emdash 0.29.0 → 0.30.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 (839) hide show
  1. package/dist/{adapters-DPAkL6QF.d.mts → adapters-C0ONzkUP.d.mts} +10 -1
  2. package/dist/adapters-C0ONzkUP.d.mts.map +1 -0
  3. package/dist/{allowed-origins-FXB-FplB.mjs → allowed-origins-CCEi9bPI.mjs} +2 -2
  4. package/dist/{allowed-origins-FXB-FplB.mjs.map → allowed-origins-CCEi9bPI.mjs.map} +1 -1
  5. package/dist/api/route-utils.d.mts +3 -3
  6. package/dist/api/route-utils.d.mts.map +1 -1
  7. package/dist/api/route-utils.mjs +19 -19
  8. package/dist/api/schemas/index.d.mts +2 -2
  9. package/dist/api/schemas/index.mjs +5 -4
  10. package/dist/{api-DVbHNApo.mjs → api-b8WIiGU4.mjs} +253 -153
  11. package/dist/api-b8WIiGU4.mjs.map +1 -0
  12. package/dist/api-tokens-Cvmixds7.mjs +3 -0
  13. package/dist/{api-tokens-UYBkl17d.mjs → api-tokens-uPt8UDpx.mjs} +2 -2
  14. package/dist/{api-tokens-UYBkl17d.mjs.map → api-tokens-uPt8UDpx.mjs.map} +1 -1
  15. package/dist/{apply-D23iUV4q.mjs → apply-CmIJK9j8.mjs} +34 -37
  16. package/dist/apply-CmIJK9j8.mjs.map +1 -0
  17. package/dist/astro/index.d.mts +12 -13
  18. package/dist/astro/index.d.mts.map +1 -1
  19. package/dist/astro/index.mjs +90 -11
  20. package/dist/astro/index.mjs.map +1 -1
  21. package/dist/astro/middleware/auth.d.mts +10 -11
  22. package/dist/astro/middleware/auth.d.mts.map +1 -1
  23. package/dist/astro/middleware/auth.mjs +56 -107
  24. package/dist/astro/middleware/auth.mjs.map +1 -1
  25. package/dist/astro/middleware/redirect.mjs +7 -7
  26. package/dist/astro/middleware/request-context.mjs +4 -4
  27. package/dist/astro/middleware/request-context.mjs.map +1 -1
  28. package/dist/astro/middleware/setup.mjs +1 -1
  29. package/dist/astro/middleware.d.mts +47 -3
  30. package/dist/astro/middleware.d.mts.map +1 -1
  31. package/dist/astro/middleware.mjs +326 -110
  32. package/dist/astro/middleware.mjs.map +1 -1
  33. package/dist/astro/routes/PluginRegistry.d.mts +5 -1
  34. package/dist/astro/routes/PluginRegistry.d.mts.map +1 -1
  35. package/dist/astro/routes/PluginRegistry.mjs +2 -1
  36. package/dist/astro/routes/PluginRegistry.mjs.map +1 -1
  37. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +9 -8
  38. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
  39. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +9 -8
  40. package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
  41. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +5 -5
  42. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
  43. package/dist/astro/routes/api/admin/api-tokens/index.mjs.map +1 -1
  44. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +5 -5
  45. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +10 -9
  46. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
  47. package/dist/astro/routes/api/admin/byline-fields/index.mjs +10 -9
  48. package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
  49. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +10 -9
  50. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
  51. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +15 -14
  52. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  53. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +16 -21
  54. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  55. package/dist/astro/routes/api/admin/bylines/index.mjs +15 -14
  56. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  57. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +13 -12
  58. package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/comments/_id_.mjs +6 -6
  60. package/dist/astro/routes/api/admin/comments/bulk.mjs +11 -10
  61. package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
  62. package/dist/astro/routes/api/admin/comments/counts.mjs +6 -6
  63. package/dist/astro/routes/api/admin/comments/index.mjs +11 -10
  64. package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
  65. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +5 -5
  66. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +4 -4
  67. package/dist/astro/routes/api/admin/media-usage/repair.mjs +12 -10
  68. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  69. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -5
  70. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -5
  71. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +40 -39
  72. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
  73. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +40 -39
  74. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
  75. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +45 -39
  76. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  77. package/dist/astro/routes/api/admin/plugins/_id_/mcp.d.mts +8 -0
  78. package/dist/astro/routes/api/admin/plugins/_id_/mcp.d.mts.map +1 -0
  79. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +39 -0
  80. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs.map +1 -0
  81. package/dist/astro/routes/api/admin/plugins/_id_/settings.d.mts +9 -0
  82. package/dist/astro/routes/api/admin/plugins/_id_/settings.d.mts.map +1 -0
  83. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +78 -0
  84. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -0
  85. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +39 -38
  86. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  87. package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts.map +1 -1
  88. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +42 -39
  89. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  90. package/dist/astro/routes/api/admin/plugins/index.mjs +45 -39
  91. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  92. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +4 -4
  93. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +39 -38
  94. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  95. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts.map +1 -1
  96. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +45 -40
  97. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +39 -38
  99. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  100. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +39 -38
  101. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.d.mts.map +1 -1
  103. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +43 -40
  104. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  105. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +39 -38
  106. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  107. package/dist/astro/routes/api/admin/plugins/registry/install.d.mts.map +1 -1
  108. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +44 -41
  109. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  110. package/dist/astro/routes/api/admin/plugins/updates.mjs +40 -39
  111. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  112. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +39 -38
  113. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  114. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +4 -4
  115. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +39 -38
  116. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  117. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +4 -4
  118. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  119. package/dist/astro/routes/api/admin/users/_id_/index.mjs +9 -8
  120. package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
  121. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +5 -5
  122. package/dist/astro/routes/api/admin/users/index.mjs +9 -8
  123. package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
  124. package/dist/astro/routes/api/auth/dev-bypass.mjs +7 -7
  125. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  126. package/dist/astro/routes/api/auth/invite/complete.mjs +13 -12
  127. package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
  128. package/dist/astro/routes/api/auth/invite/index.mjs +10 -9
  129. package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
  130. package/dist/astro/routes/api/auth/invite/register-options.mjs +12 -11
  131. package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
  132. package/dist/astro/routes/api/auth/logout.mjs +4 -4
  133. package/dist/astro/routes/api/auth/magic-link/send.mjs +12 -11
  134. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  135. package/dist/astro/routes/api/auth/magic-link/verify.mjs +5 -5
  136. package/dist/astro/routes/api/auth/me.mjs +9 -8
  137. package/dist/astro/routes/api/auth/me.mjs.map +1 -1
  138. package/dist/astro/routes/api/auth/mode.d.mts.map +1 -1
  139. package/dist/astro/routes/api/auth/mode.mjs +6 -3
  140. package/dist/astro/routes/api/auth/mode.mjs.map +1 -1
  141. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +15 -5
  142. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs.map +1 -1
  143. package/dist/astro/routes/api/auth/oauth/_provider_.d.mts.map +1 -1
  144. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +11 -5
  145. package/dist/astro/routes/api/auth/oauth/_provider_.mjs.map +1 -1
  146. package/dist/astro/routes/api/auth/passkey/_id_.mjs +8 -7
  147. package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
  148. package/dist/astro/routes/api/auth/passkey/index.mjs +3 -3
  149. package/dist/astro/routes/api/auth/passkey/options.mjs +13 -12
  150. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  151. package/dist/astro/routes/api/auth/passkey/register/options.mjs +11 -10
  152. package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
  153. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +12 -11
  154. package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
  155. package/dist/astro/routes/api/auth/passkey/verify.mjs +12 -11
  156. package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
  157. package/dist/astro/routes/api/auth/signup/complete.mjs +13 -12
  158. package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
  159. package/dist/astro/routes/api/auth/signup/request.mjs +12 -11
  160. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  161. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  162. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +14 -13
  163. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -1
  164. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +13 -12
  165. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
  166. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  167. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs.map +1 -1
  168. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +5 -4
  169. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  170. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +6 -5
  171. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs.map +1 -1
  172. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
  173. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs.map +1 -1
  174. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +13 -12
  175. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  176. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +10 -8
  177. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  178. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts.map +1 -1
  179. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +20 -19
  180. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  181. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +18 -17
  182. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  183. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -4
  184. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs.map +1 -1
  185. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  186. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs.map +1 -1
  187. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +10 -8
  188. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  189. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -1
  190. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +18 -17
  191. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  192. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +5 -5
  193. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs.map +1 -1
  194. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +5 -4
  195. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  196. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  197. package/dist/astro/routes/api/content/_collection_/_id_.mjs +11 -9
  198. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  199. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  200. package/dist/astro/routes/api/content/_collection_/authors.mjs.map +1 -1
  201. package/dist/astro/routes/api/content/_collection_/index.d.mts.map +1 -1
  202. package/dist/astro/routes/api/content/_collection_/index.mjs +12 -10
  203. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  204. package/dist/astro/routes/api/content/_collection_/trash.mjs +10 -9
  205. package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
  206. package/dist/astro/routes/api/dashboard.mjs +8 -8
  207. package/dist/astro/routes/api/dev/emails.mjs +4 -4
  208. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  209. package/dist/astro/routes/api/import/probe.mjs +17 -16
  210. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  211. package/dist/astro/routes/api/import/wordpress/analyze.mjs +4 -4
  212. package/dist/astro/routes/api/import/wordpress/execute.d.mts +11 -12
  213. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  214. package/dist/astro/routes/api/import/wordpress/execute.mjs +12 -12
  215. package/dist/astro/routes/api/import/wordpress/media.d.mts +10 -11
  216. package/dist/astro/routes/api/import/wordpress/media.d.mts.map +1 -1
  217. package/dist/astro/routes/api/import/wordpress/media.mjs +11 -10
  218. package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
  219. package/dist/astro/routes/api/import/wordpress/prepare.mjs +11 -10
  220. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  221. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +11 -12
  222. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts.map +1 -1
  223. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +11 -10
  224. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  225. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  226. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +17 -16
  227. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  228. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
  229. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +11 -12
  230. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -1
  231. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +23 -22
  232. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  233. package/dist/astro/routes/api/manifest.mjs +7 -8
  234. package/dist/astro/routes/api/manifest.mjs.map +1 -1
  235. package/dist/astro/routes/api/mcp.d.mts.map +1 -1
  236. package/dist/astro/routes/api/mcp.mjs +149 -45
  237. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  238. package/dist/astro/routes/api/media/_id_/confirm.mjs +9 -8
  239. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  240. package/dist/astro/routes/api/media/_id_/usage.d.mts +8 -0
  241. package/dist/astro/routes/api/media/_id_/usage.d.mts.map +1 -0
  242. package/dist/astro/routes/api/media/_id_/usage.mjs +37 -0
  243. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -0
  244. package/dist/astro/routes/api/media/_id_.d.mts.map +1 -1
  245. package/dist/astro/routes/api/media/_id_.mjs +26 -10
  246. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  247. package/dist/astro/routes/api/media/file/_...key_.mjs +4 -3
  248. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  249. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
  250. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
  251. package/dist/astro/routes/api/media/providers/index.mjs +4 -4
  252. package/dist/astro/routes/api/media/upload-url.mjs +10 -9
  253. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  254. package/dist/astro/routes/api/media.d.mts.map +1 -1
  255. package/dist/astro/routes/api/media.mjs +31 -11
  256. package/dist/astro/routes/api/media.mjs.map +1 -1
  257. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +10 -9
  258. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  259. package/dist/astro/routes/api/menus/_name_/items.mjs +10 -9
  260. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  261. package/dist/astro/routes/api/menus/_name_/reorder.mjs +10 -9
  262. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  263. package/dist/astro/routes/api/menus/_name_/translations.mjs +10 -9
  264. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  265. package/dist/astro/routes/api/menus/_name_.mjs +10 -9
  266. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  267. package/dist/astro/routes/api/menus/index.mjs +10 -9
  268. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  269. package/dist/astro/routes/api/oauth/authorize.d.mts.map +1 -1
  270. package/dist/astro/routes/api/oauth/authorize.mjs +7 -8
  271. package/dist/astro/routes/api/oauth/authorize.mjs.map +1 -1
  272. package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -7
  273. package/dist/astro/routes/api/oauth/device/code.mjs +10 -10
  274. package/dist/astro/routes/api/oauth/device/token.mjs +9 -9
  275. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  276. package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -7
  277. package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -7
  278. package/dist/astro/routes/api/oauth/token.mjs +7 -7
  279. package/dist/astro/routes/api/openapi.json.mjs +52 -24
  280. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  281. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts.map +1 -1
  282. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +20 -32
  283. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
  284. package/dist/astro/routes/api/redirects/404s/index.mjs +12 -11
  285. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  286. package/dist/astro/routes/api/redirects/404s/summary.mjs +12 -11
  287. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  288. package/dist/astro/routes/api/redirects/_id_.mjs +13 -12
  289. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  290. package/dist/astro/routes/api/redirects/index.mjs +13 -12
  291. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  292. package/dist/astro/routes/api/relations/_id_/index.mjs +16 -15
  293. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  294. package/dist/astro/routes/api/relations/_id_/translations.mjs +11 -11
  295. package/dist/astro/routes/api/relations/index.mjs +16 -15
  296. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  297. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -4
  298. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +5 -4
  299. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs.map +1 -1
  300. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +39 -38
  301. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  302. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +39 -38
  303. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  304. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +39 -38
  305. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  306. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +39 -38
  307. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  308. package/dist/astro/routes/api/schema/collections/index.mjs +39 -38
  309. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  310. package/dist/astro/routes/api/schema/index.mjs +9 -9
  311. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +39 -38
  312. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  313. package/dist/astro/routes/api/schema/orphans/index.mjs +39 -38
  314. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  315. package/dist/astro/routes/api/search/enable.mjs +13 -12
  316. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  317. package/dist/astro/routes/api/search/index.mjs +12 -11
  318. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  319. package/dist/astro/routes/api/search/rebuild.mjs +13 -12
  320. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  321. package/dist/astro/routes/api/search/stats.mjs +8 -8
  322. package/dist/astro/routes/api/search/suggest.mjs +12 -11
  323. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  324. package/dist/astro/routes/api/sections/_slug_.mjs +12 -11
  325. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  326. package/dist/astro/routes/api/sections/index.mjs +12 -11
  327. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  328. package/dist/astro/routes/api/settings/backups/archives/_name_.d.mts +9 -0
  329. package/dist/astro/routes/api/settings/backups/archives/_name_.d.mts.map +1 -0
  330. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +48 -0
  331. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs.map +1 -0
  332. package/dist/astro/routes/api/settings/backups/archives/index.d.mts +8 -0
  333. package/dist/astro/routes/api/settings/backups/archives/index.d.mts.map +1 -0
  334. package/dist/astro/routes/api/settings/backups/archives/index.mjs +23 -0
  335. package/dist/astro/routes/api/settings/backups/archives/index.mjs.map +1 -0
  336. package/dist/astro/routes/api/settings/backups/export.d.mts +8 -0
  337. package/dist/astro/routes/api/settings/backups/export.d.mts.map +1 -0
  338. package/dist/astro/routes/api/settings/backups/export.mjs +35 -0
  339. package/dist/astro/routes/api/settings/backups/export.mjs.map +1 -0
  340. package/dist/astro/routes/api/settings/backups/index.d.mts +9 -0
  341. package/dist/astro/routes/api/settings/backups/index.d.mts.map +1 -0
  342. package/dist/astro/routes/api/settings/backups/index.mjs +52 -0
  343. package/dist/astro/routes/api/settings/backups/index.mjs.map +1 -0
  344. package/dist/astro/routes/api/settings/email.mjs +5 -5
  345. package/dist/astro/routes/api/settings.mjs +14 -13
  346. package/dist/astro/routes/api/settings.mjs.map +1 -1
  347. package/dist/astro/routes/api/setup/admin-verify.mjs +19 -15
  348. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  349. package/dist/astro/routes/api/setup/admin.mjs +18 -14
  350. package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
  351. package/dist/astro/routes/api/setup/dev-bypass.mjs +26 -26
  352. package/dist/astro/routes/api/setup/dev-reset.mjs +3 -3
  353. package/dist/astro/routes/api/setup/index.mjs +28 -27
  354. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  355. package/dist/astro/routes/api/setup/status.mjs +5 -5
  356. package/dist/astro/routes/api/snapshot.mjs +8 -215
  357. package/dist/astro/routes/api/snapshot.mjs.map +1 -1
  358. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +14 -13
  359. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  360. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +14 -13
  361. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  362. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +14 -13
  363. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  364. package/dist/astro/routes/api/taxonomies/index.mjs +14 -13
  365. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  366. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  367. package/dist/astro/routes/api/typegen.mjs +6 -6
  368. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  369. package/dist/astro/routes/api/well-known/oauth-authorization-server.d.mts.map +1 -1
  370. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +4 -3
  371. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs.map +1 -1
  372. package/dist/astro/routes/api/well-known/oauth-protected-resource.d.mts.map +1 -1
  373. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +4 -3
  374. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs.map +1 -1
  375. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +9 -8
  376. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  377. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +12 -11
  378. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  379. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +12 -11
  380. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  381. package/dist/astro/routes/api/widget-areas/_name_.mjs +7 -7
  382. package/dist/astro/routes/api/widget-areas/index.mjs +12 -11
  383. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  384. package/dist/astro/routes/api/widget-components.mjs +4 -4
  385. package/dist/astro/routes/robots.txt.mjs +7 -7
  386. package/dist/astro/routes/sitemap-_collection_.xml.mjs +9 -9
  387. package/dist/astro/routes/sitemap.xml.mjs +8 -8
  388. package/dist/astro/types.d.mts +38 -17
  389. package/dist/astro/types.d.mts.map +1 -1
  390. package/dist/auth/providers/github.d.mts +1 -1
  391. package/dist/auth/providers/google.d.mts +1 -1
  392. package/dist/{authorize-BmCwQCib.mjs → authorize-WxsiePzy.mjs} +7 -4
  393. package/dist/authorize-WxsiePzy.mjs.map +1 -0
  394. package/dist/backup-S8kFWtwD.mjs +241 -0
  395. package/dist/backup-S8kFWtwD.mjs.map +1 -0
  396. package/dist/{base64-C74Msx8h.mjs → base64-B-PsqheR.mjs} +8 -4
  397. package/dist/base64-B-PsqheR.mjs.map +1 -0
  398. package/dist/{byline-BWb5H-65.mjs → byline-XEjchwzZ.mjs} +6 -6
  399. package/dist/{byline-BWb5H-65.mjs.map → byline-XEjchwzZ.mjs.map} +1 -1
  400. package/dist/{byline-fields-DO6bAYK8.mjs → byline-fields-CdU_LTF1.mjs} +1 -1
  401. package/dist/{byline-fields-DO6bAYK8.mjs.map → byline-fields-CdU_LTF1.mjs.map} +1 -1
  402. package/dist/{bylines-BGuKFaBy.mjs → bylines-BJbT4gKS.mjs} +4 -4
  403. package/dist/{bylines-BGuKFaBy.mjs.map → bylines-BJbT4gKS.mjs.map} +1 -1
  404. package/dist/{bylines-CHojDMpj.mjs → bylines-czseViYo.mjs} +6 -6
  405. package/dist/{bylines-CHojDMpj.mjs.map → bylines-czseViYo.mjs.map} +1 -1
  406. package/dist/{cache-BeR7RfN8.mjs → cache-CGCd6AVM.mjs} +2 -2
  407. package/dist/{cache-BeR7RfN8.mjs.map → cache-CGCd6AVM.mjs.map} +1 -1
  408. package/dist/{challenge-store-B426wQ6O.mjs → challenge-store-BFzgFRog.mjs} +1 -1
  409. package/dist/{challenge-store-B426wQ6O.mjs.map → challenge-store-BFzgFRog.mjs.map} +1 -1
  410. package/dist/{chunks-BU5_nrAC.mjs → chunks-BxXyunY-.mjs} +2 -2
  411. package/dist/{chunks-BU5_nrAC.mjs.map → chunks-BxXyunY-.mjs.map} +1 -1
  412. package/dist/cli/index.mjs +138 -31
  413. package/dist/cli/index.mjs.map +1 -1
  414. package/dist/client/cf-access.d.mts +1 -1
  415. package/dist/client/index.d.mts +54 -3
  416. package/dist/client/index.d.mts.map +1 -1
  417. package/dist/client/index.mjs +16 -4
  418. package/dist/client/index.mjs.map +1 -1
  419. package/dist/{comment-SWh31kS0.mjs → comment-DPT0WKyd.mjs} +2 -2
  420. package/dist/{comment-SWh31kS0.mjs.map → comment-DPT0WKyd.mjs.map} +1 -1
  421. package/dist/{comment-reaction-DgcpziXI.mjs → comment-reaction-C65MldIB.mjs} +2 -2
  422. package/dist/{comment-reaction-DgcpziXI.mjs.map → comment-reaction-C65MldIB.mjs.map} +1 -1
  423. package/dist/{comments-kZYGppMS.mjs → comments-Bz6sCbgD.mjs} +3 -3
  424. package/dist/{comments-kZYGppMS.mjs.map → comments-Bz6sCbgD.mjs.map} +1 -1
  425. package/dist/{components-CliOkZAs.mjs → components-DZkL4Fx0.mjs} +1 -1
  426. package/dist/{components-CliOkZAs.mjs.map → components-DZkL4Fx0.mjs.map} +1 -1
  427. package/dist/{content-BO61Sx4j.mjs → content-Ci04z2z-.mjs} +53 -19
  428. package/dist/content-Ci04z2z-.mjs.map +1 -0
  429. package/dist/{content-refresh-BkkApzeS.mjs → content-refresh-D4khvC0R.mjs} +95 -3
  430. package/dist/content-refresh-D4khvC0R.mjs.map +1 -0
  431. package/dist/{context-DtSFYFuS.mjs → context-B6hc7zJL.mjs} +97 -74
  432. package/dist/context-B6hc7zJL.mjs.map +1 -0
  433. package/dist/{cron-YFJ7uNVA.mjs → cron-BlKIMD_e.mjs} +1 -1
  434. package/dist/{cron-YFJ7uNVA.mjs.map → cron-BlKIMD_e.mjs.map} +1 -1
  435. package/dist/{dashboard-xo_gPs_D.mjs → dashboard-C5NkXFbi.mjs} +4 -4
  436. package/dist/{dashboard-xo_gPs_D.mjs.map → dashboard-C5NkXFbi.mjs.map} +1 -1
  437. package/dist/db/index.d.mts +3 -3
  438. package/dist/db/index.mjs +2 -2
  439. package/dist/db/index.mjs.map +1 -1
  440. package/dist/db/libsql.d.mts +1 -1
  441. package/dist/db/postgres.d.mts +1 -1
  442. package/dist/db/sqlite.d.mts +1 -1
  443. package/dist/{db-errors-BKuXh_fi.mjs → db-errors-CcWLaRiR.mjs} +4 -2
  444. package/dist/db-errors-CcWLaRiR.mjs.map +1 -0
  445. package/dist/{default-DY5ovGUG.mjs → default-C4v9KP56.mjs} +1 -1
  446. package/dist/{default-DY5ovGUG.mjs.map → default-C4v9KP56.mjs.map} +1 -1
  447. package/dist/{device-flow-CPXQ_QfW.mjs → device-flow-BeA6lUS1.mjs} +5 -6
  448. package/dist/device-flow-BeA6lUS1.mjs.map +1 -0
  449. package/dist/{dialect-helpers-Cue7QQOR.mjs → dialect-helpers-HxEQGl_1.mjs} +57 -11
  450. package/dist/{dialect-helpers-Cue7QQOR.mjs.map → dialect-helpers-HxEQGl_1.mjs.map} +1 -1
  451. package/dist/{email-console-CjkQc7oY.mjs → email-console-C-9Ng8DM.mjs} +1 -1
  452. package/dist/{email-console-CjkQc7oY.mjs.map → email-console-C-9Ng8DM.mjs.map} +1 -1
  453. package/dist/error-CEGF6UZb.mjs +90 -0
  454. package/dist/error-CEGF6UZb.mjs.map +1 -0
  455. package/dist/{error-CfJMLSkd.mjs → errors-DtEXIQQV.mjs} +15 -84
  456. package/dist/errors-DtEXIQQV.mjs.map +1 -0
  457. package/dist/{escape-r8_GbEU2.mjs → escape-CFedIB1C.mjs} +1 -1
  458. package/dist/{escape-r8_GbEU2.mjs.map → escape-CFedIB1C.mjs.map} +1 -1
  459. package/dist/{field-defs-cache-BVrNCgSj.mjs → field-defs-cache-DvmlgP-D.mjs} +2 -2
  460. package/dist/{field-defs-cache-BVrNCgSj.mjs.map → field-defs-cache-DvmlgP-D.mjs.map} +1 -1
  461. package/dist/{fts-manager-BD9s77qh.mjs → fts-manager-DzqIBrrW.mjs} +3 -3
  462. package/dist/{fts-manager-BD9s77qh.mjs.map → fts-manager-DzqIBrrW.mjs.map} +1 -1
  463. package/dist/{hreflang-CgIxhH4k.d.mts → hreflang-CIxH_LKz.d.mts} +2 -2
  464. package/dist/{hreflang-CgIxhH4k.d.mts.map → hreflang-CIxH_LKz.d.mts.map} +1 -1
  465. package/dist/{hreflang-pAWUiPd_.mjs → hreflang-db2Tpb2o.mjs} +5 -5
  466. package/dist/{hreflang-pAWUiPd_.mjs.map → hreflang-db2Tpb2o.mjs.map} +1 -1
  467. package/dist/{import-2jHtLzsO.mjs → import-Dmkm8S1W.mjs} +4 -4
  468. package/dist/{import-2jHtLzsO.mjs.map → import-Dmkm8S1W.mjs.map} +1 -1
  469. package/dist/{index-DxjWLKGT.d.mts → index-BEui-cRd.d.mts} +3 -3
  470. package/dist/{index-DxjWLKGT.d.mts.map → index-BEui-cRd.d.mts.map} +1 -1
  471. package/dist/{index-BXOCyLj0.d.mts → index-wYnC6u4o.d.mts} +780 -15
  472. package/dist/index-wYnC6u4o.d.mts.map +1 -0
  473. package/dist/index.d.mts +18 -19
  474. package/dist/index.mjs +59 -58
  475. package/dist/{load-DgoWMdRX.mjs → load-Cx27ki1l.mjs} +2 -2
  476. package/dist/{load-DgoWMdRX.mjs.map → load-Cx27ki1l.mjs.map} +1 -1
  477. package/dist/{loader-Rb8QlGZp.mjs → loader-Be3ouI5L.mjs} +170 -6
  478. package/dist/loader-Be3ouI5L.mjs.map +1 -0
  479. package/dist/{manifest-schema-DeGNma2O.mjs → manifest-schema-bCq54i7F.mjs} +16 -2
  480. package/dist/manifest-schema-bCq54i7F.mjs.map +1 -0
  481. package/dist/media/image-endpoint.d.mts +30 -2
  482. package/dist/media/image-endpoint.d.mts.map +1 -1
  483. package/dist/media/image-endpoint.mjs +29 -3
  484. package/dist/media/image-endpoint.mjs.map +1 -1
  485. package/dist/media/index.d.mts +1 -1
  486. package/dist/media/local-runtime.d.mts +12 -13
  487. package/dist/media/local-runtime.d.mts.map +1 -1
  488. package/dist/media/local-runtime.mjs +6 -6
  489. package/dist/{media-D2ZFowpn.mjs → media-BjhhENaJ.mjs} +2 -2
  490. package/dist/{media-D2ZFowpn.mjs.map → media-BjhhENaJ.mjs.map} +1 -1
  491. package/dist/{media-allowlist-Dc05vKtt.mjs → media-allowlist-jUppPWFy.mjs} +1 -1
  492. package/dist/{media-allowlist-Dc05vKtt.mjs.map → media-allowlist-jUppPWFy.mjs.map} +1 -1
  493. package/dist/media-kIV1IxFf.mjs +243 -0
  494. package/dist/media-kIV1IxFf.mjs.map +1 -0
  495. package/dist/media-upload-D2wk3EIt.mjs +145 -0
  496. package/dist/media-upload-D2wk3EIt.mjs.map +1 -0
  497. package/dist/{media-url-DgIEYZr4.mjs → media-url-BCm5vBn6.mjs} +1 -1
  498. package/dist/{media-url-DgIEYZr4.mjs.map → media-url-BCm5vBn6.mjs.map} +1 -1
  499. package/dist/{media-usage-B__v9NMm.mjs → media-usage-CljdO1mc.mjs} +138 -5
  500. package/dist/{media-usage-B__v9NMm.mjs.map → media-usage-CljdO1mc.mjs.map} +1 -1
  501. package/dist/{menus-BtvH7Z7t.mjs → menus-BcyElFtI.mjs} +155 -12
  502. package/dist/menus-BcyElFtI.mjs.map +1 -0
  503. package/dist/{menus-BpfevlJD.mjs → menus-CZyG6rvx.mjs} +2 -2
  504. package/dist/{menus-BpfevlJD.mjs.map → menus-CZyG6rvx.mjs.map} +1 -1
  505. package/dist/{mode-BVnhGZ2o.mjs → mode-fiXRMfeA.mjs} +1 -1
  506. package/dist/{mode-BVnhGZ2o.mjs.map → mode-fiXRMfeA.mjs.map} +1 -1
  507. package/dist/{oauth-authorization-BWqWTHBK.mjs → oauth-authorization-oqfbBuMH.mjs} +5 -6
  508. package/dist/oauth-authorization-oqfbBuMH.mjs.map +1 -0
  509. package/dist/{oauth-clients-43_XADoa.mjs → oauth-clients-BlrUHAsf.mjs} +1 -1
  510. package/dist/{oauth-clients-43_XADoa.mjs.map → oauth-clients-BlrUHAsf.mjs.map} +1 -1
  511. package/dist/{oauth-state-store-BRSUEkmx.mjs → oauth-state-store-DnvjRMy6.mjs} +2 -1
  512. package/dist/{oauth-state-store-BRSUEkmx.mjs.map → oauth-state-store-DnvjRMy6.mjs.map} +1 -1
  513. package/dist/{oauth-user-lookup-Ctgemb0k.mjs → oauth-user-lookup-oUllxvAv.mjs} +1 -1
  514. package/dist/{oauth-user-lookup-Ctgemb0k.mjs.map → oauth-user-lookup-oUllxvAv.mjs.map} +1 -1
  515. package/dist/object-cache/memory.d.mts +1 -1
  516. package/dist/{options-COXGTtqd.d.mts → options-BqMkWfYa.d.mts} +6 -6
  517. package/dist/{options-COXGTtqd.d.mts.map → options-BqMkWfYa.d.mts.map} +1 -1
  518. package/dist/page/index.d.mts +2 -2
  519. package/dist/page/index.d.mts.map +1 -1
  520. package/dist/page/index.mjs.map +1 -1
  521. package/dist/{parse-GLksnn-B.mjs → parse-C_-6klII.mjs} +4 -12
  522. package/dist/{parse-GLksnn-B.mjs.map → parse-C_-6klII.mjs.map} +1 -1
  523. package/dist/{passkey-config-CjA1UbDj.mjs → passkey-config-C-SKpc0-.mjs} +1 -1
  524. package/dist/{passkey-config-CjA1UbDj.mjs.map → passkey-config-C-SKpc0-.mjs.map} +1 -1
  525. package/dist/{placeholder-DR-eeZr-.d.mts → placeholder-Dop47JMM.d.mts} +1 -1
  526. package/dist/{placeholder-DR-eeZr-.d.mts.map → placeholder-Dop47JMM.d.mts.map} +1 -1
  527. package/dist/plugin-types.d.mts +21 -2
  528. package/dist/plugin-types.d.mts.map +1 -1
  529. package/dist/plugin-utils.d.mts +18 -17
  530. package/dist/plugin-utils.d.mts.map +1 -1
  531. package/dist/plugin-utils.mjs +8 -6
  532. package/dist/plugin-utils.mjs.map +1 -1
  533. package/dist/plugins/adapt-sandbox-entry.d.mts +10 -11
  534. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  535. package/dist/plugins/adapt-sandbox-entry.mjs +15 -3
  536. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  537. package/dist/{portable-text-BAkgEKcv.mjs → portable-text-sDj92Kxv.mjs} +1 -1
  538. package/dist/{portable-text-BAkgEKcv.mjs.map → portable-text-sDj92Kxv.mjs.map} +1 -1
  539. package/dist/{preview-Rloa09Wp.mjs → preview-D4Jnbfx7.mjs} +2 -2
  540. package/dist/{preview-Rloa09Wp.mjs.map → preview-D4Jnbfx7.mjs.map} +1 -1
  541. package/dist/{public-url-C0cEvrRu.mjs → public-url-DSGTnJFw.mjs} +5 -3
  542. package/dist/public-url-DSGTnJFw.mjs.map +1 -0
  543. package/dist/{query-ZzvXyxWq.mjs → query-DR73ZNfm.mjs} +14 -14
  544. package/dist/{query-ZzvXyxWq.mjs.map → query-DR73ZNfm.mjs.map} +1 -1
  545. package/dist/{query-BxT95opY.mjs → query-Di7DOmPV.mjs} +3 -3
  546. package/dist/{query-BxT95opY.mjs.map → query-Di7DOmPV.mjs.map} +1 -1
  547. package/dist/{rate-limit-Cg4Rvc_-.mjs → rate-limit-CMj83JNW.mjs} +2 -2
  548. package/dist/{rate-limit-Cg4Rvc_-.mjs.map → rate-limit-CMj83JNW.mjs.map} +1 -1
  549. package/dist/{redirect-Ce_6Yb6z.mjs → redirect-Botom7X6.mjs} +1 -1
  550. package/dist/{redirect-Ce_6Yb6z.mjs.map → redirect-Botom7X6.mjs.map} +1 -1
  551. package/dist/{redirect-Ch3E98qZ.mjs → redirect-CgLPYflR.mjs} +10 -4
  552. package/dist/redirect-CgLPYflR.mjs.map +1 -0
  553. package/dist/{redirects-CXmVGRNZ.mjs → redirects-B7t9bKsL.mjs} +4 -4
  554. package/dist/{redirects-CXmVGRNZ.mjs.map → redirects-B7t9bKsL.mjs.map} +1 -1
  555. package/dist/{redirects-CeD7K7EX.mjs → redirects-BBq3n2Rj.mjs} +4 -175
  556. package/dist/redirects-BBq3n2Rj.mjs.map +1 -0
  557. package/dist/{registry-CyIXPi4E.mjs → registry-FV15nLge.mjs} +97 -8
  558. package/dist/registry-FV15nLge.mjs.map +1 -0
  559. package/dist/{relation-Ba68Tm4Z.mjs → relation-9M9j_UWo.mjs} +3 -3
  560. package/dist/{relation-Ba68Tm4Z.mjs.map → relation-9M9j_UWo.mjs.map} +1 -1
  561. package/dist/{relations-BmBmX4Eb.mjs → relations-5_avdrN_.mjs} +2 -2
  562. package/dist/{relations-BmBmX4Eb.mjs.map → relations-5_avdrN_.mjs.map} +1 -1
  563. package/dist/{relations-C8hVyEy0.mjs → relations-BKvO39-9.mjs} +5 -5
  564. package/dist/{relations-C8hVyEy0.mjs.map → relations-BKvO39-9.mjs.map} +1 -1
  565. package/dist/{relations-CbBpoOys.d.mts → relations-Bh8jlFsU.d.mts} +306 -4
  566. package/dist/relations-Bh8jlFsU.d.mts.map +1 -0
  567. package/dist/{request-meta-DCwktC5P.mjs → request-meta-DzXYYI-n.mjs} +2 -2
  568. package/dist/{request-meta-DCwktC5P.mjs.map → request-meta-DzXYYI-n.mjs.map} +1 -1
  569. package/dist/{runner-CiNdIk3y.d.mts → runner-Dd8m8k9F.d.mts} +2 -2
  570. package/dist/{runner-CiNdIk3y.d.mts.map → runner-Dd8m8k9F.d.mts.map} +1 -1
  571. package/dist/{runner-jt65bF7F.mjs → runner-DfnZ5eUr.mjs} +333 -199
  572. package/dist/runner-DfnZ5eUr.mjs.map +1 -0
  573. package/dist/runtime.d.mts +11 -12
  574. package/dist/runtime.d.mts.map +1 -1
  575. package/dist/runtime.mjs +4 -4
  576. package/dist/{schema-DwjufZ1S.mjs → schema-BXxlHeAf.mjs} +3 -3
  577. package/dist/{schema-DwjufZ1S.mjs.map → schema-BXxlHeAf.mjs.map} +1 -1
  578. package/dist/scopes-Bl4IwHA-.mjs +27 -0
  579. package/dist/scopes-Bl4IwHA-.mjs.map +1 -0
  580. package/dist/{search-Cl875CVE.mjs → search-Bff-7jFt.mjs} +5 -5
  581. package/dist/{search-Cl875CVE.mjs.map → search-Bff-7jFt.mjs.map} +1 -1
  582. package/dist/{secrets-CO_bEmII.mjs → secrets-CSwQIl4q.mjs} +3 -3
  583. package/dist/{secrets-CO_bEmII.mjs.map → secrets-CSwQIl4q.mjs.map} +1 -1
  584. package/dist/{sections-DTKzgoiS.mjs → sections-CwW4s1al.mjs} +3 -3
  585. package/dist/{sections-DTKzgoiS.mjs.map → sections-CwW4s1al.mjs.map} +1 -1
  586. package/dist/seed/index.d.mts +2 -2
  587. package/dist/seed/index.mjs +20 -20
  588. package/dist/seo/index.d.mts +14 -3
  589. package/dist/seo/index.d.mts.map +1 -1
  590. package/dist/seo/index.mjs +16 -16
  591. package/dist/seo/index.mjs.map +1 -1
  592. package/dist/{seo-BLm6SXzS.mjs → seo-2cmFHZns.mjs} +2 -2
  593. package/dist/{seo-BLm6SXzS.mjs.map → seo-2cmFHZns.mjs.map} +1 -1
  594. package/dist/{seo-BjrbXAd_.mjs → seo-C3GDfT0V.mjs} +1 -1
  595. package/dist/{seo-BjrbXAd_.mjs.map → seo-C3GDfT0V.mjs.map} +1 -1
  596. package/dist/{service-D6zDmKXy.mjs → service-DkGTWGIi.mjs} +3 -3
  597. package/dist/{service-D6zDmKXy.mjs.map → service-DkGTWGIi.mjs.map} +1 -1
  598. package/dist/{session-user-DoSs6YM8.mjs → session-user-DbHqKDKe.mjs} +1 -1
  599. package/dist/{session-user-DoSs6YM8.mjs.map → session-user-DbHqKDKe.mjs.map} +1 -1
  600. package/dist/{settings-CmS3TwXf.mjs → settings-C4s8hFQm.mjs} +3 -3
  601. package/dist/{settings-CmS3TwXf.mjs.map → settings-C4s8hFQm.mjs.map} +1 -1
  602. package/dist/{settings-BuQYvLfy.mjs → settings-CpA4lQFt.mjs} +4 -4
  603. package/dist/{settings-BuQYvLfy.mjs.map → settings-CpA4lQFt.mjs.map} +1 -1
  604. package/dist/{setup-complete-BPNgLHlU.mjs → setup-complete-CdIlqloh.mjs} +1 -1
  605. package/dist/{setup-complete-BPNgLHlU.mjs.map → setup-complete-CdIlqloh.mjs.map} +1 -1
  606. package/dist/{setup-nonce-DEPZX96T.mjs → setup-nonce-DqiIPr-J.mjs} +1 -1
  607. package/dist/{setup-nonce-DEPZX96T.mjs.map → setup-nonce-DqiIPr-J.mjs.map} +1 -1
  608. package/dist/{single-flight-cache-DEtW-OEG.mjs → single-flight-cache-C2exrGAi.mjs} +1 -1
  609. package/dist/{single-flight-cache-DEtW-OEG.mjs.map → single-flight-cache-C2exrGAi.mjs.map} +1 -1
  610. package/dist/{site-url-CcLy5D5s.mjs → site-url-NGJT6NTU.mjs} +1 -1
  611. package/dist/{site-url-CcLy5D5s.mjs.map → site-url-NGJT6NTU.mjs.map} +1 -1
  612. package/dist/snapshot-BdpUJKD-.mjs +216 -0
  613. package/dist/snapshot-BdpUJKD-.mjs.map +1 -0
  614. package/dist/{ssrf-TrKYJAy0.mjs → ssrf-CviKqWmq.mjs} +1 -1
  615. package/dist/{ssrf-TrKYJAy0.mjs.map → ssrf-CviKqWmq.mjs.map} +1 -1
  616. package/dist/state-xxv6ZTMv.mjs +128 -0
  617. package/dist/state-xxv6ZTMv.mjs.map +1 -0
  618. package/dist/{status-D3Gy1Zc6.mjs → status-COfycGIU.mjs} +1 -1
  619. package/dist/{status-D3Gy1Zc6.mjs.map → status-COfycGIU.mjs.map} +1 -1
  620. package/dist/storage/local.d.mts +1 -1
  621. package/dist/storage/local.mjs +1 -1
  622. package/dist/storage/s3.d.mts +1 -1
  623. package/dist/storage/s3.mjs +1 -1
  624. package/dist/{taxonomies-ClS4RKaZ.mjs → taxonomies-Ce49uIzY.mjs} +4 -4
  625. package/dist/{taxonomies-ClS4RKaZ.mjs.map → taxonomies-Ce49uIzY.mjs.map} +1 -1
  626. package/dist/{taxonomies-pUkuD6nj.mjs → taxonomies-DjSKBZpq.mjs} +7 -7
  627. package/dist/{taxonomies-pUkuD6nj.mjs.map → taxonomies-DjSKBZpq.mjs.map} +1 -1
  628. package/dist/{taxonomy-BkxbUMSw.mjs → taxonomy-DfVooU4W.mjs} +51 -13
  629. package/dist/taxonomy-DfVooU4W.mjs.map +1 -0
  630. package/dist/{tokens-BV6fgl5A.mjs → tokens-DVltpO2D.mjs} +2 -2
  631. package/dist/{tokens-BV6fgl5A.mjs.map → tokens-DVltpO2D.mjs.map} +1 -1
  632. package/dist/{transport-DTFhhPOg.mjs → transport-CKrlqSpD.mjs} +1 -1
  633. package/dist/{transport-DTFhhPOg.mjs.map → transport-CKrlqSpD.mjs.map} +1 -1
  634. package/dist/{transport-DmlmzD2U.d.mts → transport-Vd7VdqHv.d.mts} +1 -1
  635. package/dist/{transport-DmlmzD2U.d.mts.map → transport-Vd7VdqHv.d.mts.map} +1 -1
  636. package/dist/{trusted-proxy-CSgZVESw.mjs → trusted-proxy-CwjQj0YG.mjs} +1 -1
  637. package/dist/{trusted-proxy-CSgZVESw.mjs.map → trusted-proxy-CwjQj0YG.mjs.map} +1 -1
  638. package/dist/{types-B6-N9cBB.d.mts → types-B4vm81VH.d.mts} +1 -1
  639. package/dist/{types-B6-N9cBB.d.mts.map → types-B4vm81VH.d.mts.map} +1 -1
  640. package/dist/{types-Cm4Cz-8M.d.mts → types-B97jg3aW.d.mts} +6 -1
  641. package/dist/{types-Cm4Cz-8M.d.mts.map → types-B97jg3aW.d.mts.map} +1 -1
  642. package/dist/{types-BNZsPL9z.mjs → types-BD40g7zz.mjs} +1 -1
  643. package/dist/{types-BNZsPL9z.mjs.map → types-BD40g7zz.mjs.map} +1 -1
  644. package/dist/{types-QnlQIyPE.d.mts → types-BNfPHfay.d.mts} +1 -1
  645. package/dist/{types-QnlQIyPE.d.mts.map → types-BNfPHfay.d.mts.map} +1 -1
  646. package/dist/{types-DLIrNtv5.d.mts → types-BfYUPJdP.d.mts} +2 -2
  647. package/dist/{types-DLIrNtv5.d.mts.map → types-BfYUPJdP.d.mts.map} +1 -1
  648. package/dist/{types-CtDVagM4.d.mts → types-BvB7gDOD.d.mts} +38 -4
  649. package/dist/types-BvB7gDOD.d.mts.map +1 -0
  650. package/dist/{types-B_pmP7Yq.d.mts → types-C7U0HlEr.d.mts} +1 -1
  651. package/dist/{types-B_pmP7Yq.d.mts.map → types-C7U0HlEr.d.mts.map} +1 -1
  652. package/dist/{types-Ch8pFMEm.mjs → types-D1iJ3DpO.mjs} +3 -3
  653. package/dist/{types-Ch8pFMEm.mjs.map → types-D1iJ3DpO.mjs.map} +1 -1
  654. package/dist/{types-momGysZk.d.mts → types-DPKhI5ib.d.mts} +9 -1
  655. package/dist/types-DPKhI5ib.d.mts.map +1 -0
  656. package/dist/{types-BCVuUPrL.d.mts → types-Kmaxdarz.d.mts} +1 -1
  657. package/dist/{types-BCVuUPrL.d.mts.map → types-Kmaxdarz.d.mts.map} +1 -1
  658. package/dist/{types-qljd1hsL.d.mts → types-iVeZ5g6N.d.mts} +1 -1
  659. package/dist/{types-qljd1hsL.d.mts.map → types-iVeZ5g6N.d.mts.map} +1 -1
  660. package/dist/{user-DTxX_Fha.mjs → user-Bh-L1qo6.mjs} +3 -3
  661. package/dist/{user-DTxX_Fha.mjs.map → user-Bh-L1qo6.mjs.map} +1 -1
  662. package/dist/{utils-Cz8PVrl4.mjs → utils-BbUgmeZG.mjs} +1 -1
  663. package/dist/{utils-Cz8PVrl4.mjs.map → utils-BbUgmeZG.mjs.map} +1 -1
  664. package/dist/{validate-9jLuE301.d.mts → validate-DULfgpJP.d.mts} +5 -5
  665. package/dist/{validate-9jLuE301.d.mts.map → validate-DULfgpJP.d.mts.map} +1 -1
  666. package/dist/{validate-C3CpWlNt.mjs → validate-V9nCwq_-.mjs} +2 -2
  667. package/dist/{validate-C3CpWlNt.mjs.map → validate-V9nCwq_-.mjs.map} +1 -1
  668. package/dist/{validation-DM2K_NJC.mjs → validation-BsVUJfsP.mjs} +10 -10
  669. package/dist/{validation-DM2K_NJC.mjs.map → validation-BsVUJfsP.mjs.map} +1 -1
  670. package/dist/version-907opKac.mjs +7 -0
  671. package/dist/{version-BlIJvNAZ.mjs.map → version-907opKac.mjs.map} +1 -1
  672. package/dist/{widgets-B_X6_UXJ.mjs → widgets-DGv1Z04V.mjs} +3 -3
  673. package/dist/{widgets-B_X6_UXJ.mjs.map → widgets-DGv1Z04V.mjs.map} +1 -1
  674. package/dist/{wxr-taxonomies-tADW4KTa.d.mts → wxr-taxonomies-B4tMuN5T.d.mts} +1 -1
  675. package/dist/{wxr-taxonomies-tADW4KTa.d.mts.map → wxr-taxonomies-B4tMuN5T.d.mts.map} +1 -1
  676. package/dist/{wxr-taxonomies-oNJB2S81.mjs → wxr-taxonomies-Cs1N6O8z.mjs} +3 -3
  677. package/dist/{wxr-taxonomies-oNJB2S81.mjs.map → wxr-taxonomies-Cs1N6O8z.mjs.map} +1 -1
  678. package/dist/{zod-generator-CrfV79De.mjs → zod-generator-B5prQ5M4.mjs} +2 -2
  679. package/dist/{zod-generator-CrfV79De.mjs.map → zod-generator-B5prQ5M4.mjs.map} +1 -1
  680. package/package.json +8 -8
  681. package/src/api/authorize.ts +10 -1
  682. package/src/api/error.ts +5 -5
  683. package/src/api/errors.ts +14 -0
  684. package/src/api/handlers/backup.ts +312 -0
  685. package/src/api/handlers/content.ts +36 -2
  686. package/src/api/handlers/device-flow.ts +2 -3
  687. package/src/api/handlers/index.ts +16 -0
  688. package/src/api/handlers/marketplace.ts +38 -0
  689. package/src/api/handlers/media-upload.ts +210 -0
  690. package/src/api/handlers/media-usage.ts +211 -2
  691. package/src/api/handlers/oauth-authorization.ts +2 -6
  692. package/src/api/handlers/plugin-settings.ts +218 -0
  693. package/src/api/handlers/plugins.ts +41 -0
  694. package/src/api/handlers/registry.ts +39 -0
  695. package/src/api/handlers/snapshot.ts +21 -3
  696. package/src/api/openapi/document.ts +48 -6
  697. package/src/api/parse.ts +1 -15
  698. package/src/api/public-url.ts +4 -2
  699. package/src/api/schemas/common.ts +6 -2
  700. package/src/api/schemas/media-usage.ts +72 -0
  701. package/src/api/schemas/media.ts +32 -1
  702. package/src/astro/integration/index.ts +38 -0
  703. package/src/astro/integration/routes.ts +35 -0
  704. package/src/astro/integration/runtime.ts +6 -0
  705. package/src/astro/integration/virtual-modules.ts +41 -7
  706. package/src/astro/integration/vite-config.ts +17 -1
  707. package/src/astro/middleware/auth.ts +70 -78
  708. package/src/astro/middleware/csp.ts +5 -2
  709. package/src/astro/middleware.ts +86 -31
  710. package/src/astro/public-plugin-api-routes.ts +2 -1
  711. package/src/astro/routes/PluginRegistry.tsx +5 -2
  712. package/src/astro/routes/admin.astro +56 -16
  713. package/src/astro/routes/api/admin/api-tokens/index.ts +2 -2
  714. package/src/astro/routes/api/admin/bylines/[id]/translations.ts +2 -5
  715. package/src/astro/routes/api/admin/plugins/[id]/index.ts +6 -0
  716. package/src/astro/routes/api/admin/plugins/[id]/mcp.ts +42 -0
  717. package/src/astro/routes/api/admin/plugins/[id]/settings.ts +80 -0
  718. package/src/astro/routes/api/admin/plugins/[id]/update.ts +2 -0
  719. package/src/astro/routes/api/admin/plugins/index.ts +9 -0
  720. package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +2 -0
  721. package/src/astro/routes/api/admin/plugins/registry/[id]/update.ts +2 -0
  722. package/src/astro/routes/api/admin/plugins/registry/install.ts +2 -0
  723. package/src/astro/routes/api/admin/plugins/updates.ts +2 -4
  724. package/src/astro/routes/api/auth/mode.ts +6 -14
  725. package/src/astro/routes/api/auth/oauth/[provider]/callback.ts +21 -4
  726. package/src/astro/routes/api/auth/oauth/[provider].ts +24 -6
  727. package/src/astro/routes/api/content/[collection]/[id]/compare.ts +3 -4
  728. package/src/astro/routes/api/content/[collection]/[id]/duplicate.ts +2 -3
  729. package/src/astro/routes/api/content/[collection]/[id]/permanent.ts +2 -3
  730. package/src/astro/routes/api/content/[collection]/[id]/preview-url.ts +3 -4
  731. package/src/astro/routes/api/content/[collection]/[id]/references/[relation]/children.ts +4 -6
  732. package/src/astro/routes/api/content/[collection]/[id]/references/[relation]/parents.ts +2 -3
  733. package/src/astro/routes/api/content/[collection]/[id]/revisions.ts +3 -4
  734. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +4 -6
  735. package/src/astro/routes/api/content/[collection]/[id]/translations.ts +3 -4
  736. package/src/astro/routes/api/content/[collection]/[id].ts +3 -4
  737. package/src/astro/routes/api/content/[collection]/authors.ts +2 -3
  738. package/src/astro/routes/api/content/[collection]/index.ts +6 -8
  739. package/src/astro/routes/api/content/[collection]/trash.ts +2 -3
  740. package/src/astro/routes/api/manifest.ts +2 -9
  741. package/src/astro/routes/api/mcp.ts +2 -1
  742. package/src/astro/routes/api/media/[id]/usage.ts +30 -0
  743. package/src/astro/routes/api/media/[id].ts +17 -6
  744. package/src/astro/routes/api/media/file/[...key].ts +8 -0
  745. package/src/astro/routes/api/media.ts +21 -2
  746. package/src/astro/routes/api/oauth/authorize.ts +2 -6
  747. package/src/astro/routes/api/plugins/[pluginId]/[...path].ts +17 -3
  748. package/src/astro/routes/api/settings/backups/archives/[name].ts +78 -0
  749. package/src/astro/routes/api/settings/backups/archives/index.ts +33 -0
  750. package/src/astro/routes/api/settings/backups/export.ts +43 -0
  751. package/src/astro/routes/api/settings/backups/index.ts +76 -0
  752. package/src/astro/routes/api/setup/admin-verify.ts +8 -4
  753. package/src/astro/routes/api/setup/admin.ts +11 -4
  754. package/src/astro/routes/api/well-known/oauth-authorization-server.ts +4 -1
  755. package/src/astro/routes/api/well-known/oauth-protected-resource.ts +5 -1
  756. package/src/astro/types.ts +48 -2
  757. package/src/auth/api-tokens.ts +1 -0
  758. package/src/auth/oauth-state-store.ts +3 -0
  759. package/src/auth/providers/github-admin.tsx +5 -6
  760. package/src/auth/providers/google-admin.tsx +5 -6
  761. package/src/auth/scopes.ts +3 -9
  762. package/src/cli/client-factory.ts +0 -1
  763. package/src/cli/commands/bundle-utils.ts +50 -1
  764. package/src/cli/commands/bundle.ts +9 -2
  765. package/src/cli/commands/media.ts +127 -0
  766. package/src/client/index.ts +84 -2
  767. package/src/client/transport.ts +1 -1
  768. package/src/components/EmDashHead.astro +4 -8
  769. package/src/components/InlinePortableTextEditor.tsx +56 -35
  770. package/src/components/marks/Link.astro +5 -1
  771. package/src/database/dialect-helpers.ts +77 -3
  772. package/src/database/migrations/051_content_taxonomies_denorm.ts +120 -0
  773. package/src/database/migrations/052_media_usage_read_index.ts +26 -0
  774. package/src/database/migrations/053_plugin_mcp_tools.ts +21 -0
  775. package/src/database/migrations/runner.ts +6 -0
  776. package/src/database/repositories/audit.ts +2 -1
  777. package/src/database/repositories/content.ts +98 -16
  778. package/src/database/repositories/media-usage.ts +250 -1
  779. package/src/database/repositories/plugin-storage.ts +29 -32
  780. package/src/database/repositories/redirect.ts +14 -2
  781. package/src/database/repositories/taxonomy.ts +57 -8
  782. package/src/database/types.ts +23 -0
  783. package/src/db/adapters.ts +9 -0
  784. package/src/emdash-runtime.ts +310 -66
  785. package/src/loader.ts +292 -1
  786. package/src/mcp/server.ts +222 -5
  787. package/src/media/image-endpoint.ts +38 -2
  788. package/src/page/metadata.ts +27 -0
  789. package/src/plugin-types.ts +19 -0
  790. package/src/plugin-utils.ts +8 -6
  791. package/src/plugins/adapt-sandbox-entry.ts +30 -1
  792. package/src/plugins/context.ts +7 -0
  793. package/src/plugins/define-plugin.ts +16 -0
  794. package/src/plugins/manifest-schema.ts +28 -1
  795. package/src/plugins/routes.ts +27 -1
  796. package/src/plugins/sandbox/runner-options.ts +16 -0
  797. package/src/plugins/sandbox/types.ts +6 -1
  798. package/src/plugins/state.ts +17 -1
  799. package/src/plugins/storage-query.ts +67 -33
  800. package/src/plugins/types.ts +41 -0
  801. package/src/schema/registry.ts +141 -5
  802. package/src/seed/apply.ts +28 -29
  803. package/src/seo/index.ts +19 -4
  804. package/src/storage/types.ts +6 -0
  805. package/src/utils/base64.ts +7 -2
  806. package/src/utils/db-errors.ts +3 -1
  807. package/src/virtual-modules.d.ts +13 -0
  808. package/src/visual-editing/toolbar.ts +1 -1
  809. package/dist/adapters-DPAkL6QF.d.mts.map +0 -1
  810. package/dist/api-DVbHNApo.mjs.map +0 -1
  811. package/dist/api-tokens-Dk2GrJMY.mjs +0 -3
  812. package/dist/apply-D23iUV4q.mjs.map +0 -1
  813. package/dist/authorize-BmCwQCib.mjs.map +0 -1
  814. package/dist/base64-C74Msx8h.mjs.map +0 -1
  815. package/dist/content-BO61Sx4j.mjs.map +0 -1
  816. package/dist/content-refresh-BkkApzeS.mjs.map +0 -1
  817. package/dist/context-DtSFYFuS.mjs.map +0 -1
  818. package/dist/db-errors-BKuXh_fi.mjs.map +0 -1
  819. package/dist/device-flow-CPXQ_QfW.mjs.map +0 -1
  820. package/dist/error-CfJMLSkd.mjs.map +0 -1
  821. package/dist/index-BXOCyLj0.d.mts.map +0 -1
  822. package/dist/loader-Rb8QlGZp.mjs.map +0 -1
  823. package/dist/manifest-schema-DeGNma2O.mjs.map +0 -1
  824. package/dist/menus-BtvH7Z7t.mjs.map +0 -1
  825. package/dist/oauth-authorization-BWqWTHBK.mjs.map +0 -1
  826. package/dist/public-url-C0cEvrRu.mjs.map +0 -1
  827. package/dist/redirect-Ch3E98qZ.mjs.map +0 -1
  828. package/dist/redirects-CeD7K7EX.mjs.map +0 -1
  829. package/dist/registry-CyIXPi4E.mjs.map +0 -1
  830. package/dist/relations-CbBpoOys.d.mts.map +0 -1
  831. package/dist/runner-jt65bF7F.mjs.map +0 -1
  832. package/dist/scheduled-publish-DlJHGcuL.d.mts +0 -11
  833. package/dist/scheduled-publish-DlJHGcuL.d.mts.map +0 -1
  834. package/dist/taxonomy-BkxbUMSw.mjs.map +0 -1
  835. package/dist/types-CtDVagM4.d.mts.map +0 -1
  836. package/dist/types-momGysZk.d.mts.map +0 -1
  837. package/dist/version-BlIJvNAZ.mjs +0 -7
  838. /package/dist/{ssrf-B5DOv5E5.mjs → ssrf-BB__xfNM.mjs} +0 -0
  839. /package/dist/{types-DeCZBZxn.mjs → types-CK0LxPUQ.mjs} +0 -0
@@ -1,16 +1,17 @@
1
- import { _ as UpdateFieldInput, f as FieldValidation, g as UpdateCollectionInput, i as CollectionWithFields, o as CreateCollectionInput, s as CreateFieldInput, t as Collection, u as Field } from "./types-BCVuUPrL.mjs";
2
- import { f as UpdateContentInput, i as ContentItem, l as FindManyOptions, o as ContentSeoInput, r as ContentDateField, s as CreateContentInput, t as BylineSummary, u as FindManyResult } from "./types-DLIrNtv5.mjs";
3
- import { d as ContentListResponse, f as ContentResponse, h as ManifestResponse, u as ApiResult } from "./options-COXGTtqd.mjs";
4
- import { t as Database } from "./types-momGysZk.mjs";
5
- import { Ct as RequestMeta, H as HttpAccess, Lt as WhereClause, O as CronEvent, Ot as StorageCollection, R as EmailMessage, St as QueryOptions, Tt as ResolvedPlugin, Z as MediaItem$1, c as CommentBeforeCreateEvent, ct as PaginatedResult, et as PageFragmentContribution, ft as PluginCapability, gt as PluginManifest, i as CommentAfterCreateEvent, it as PageMetadataEvent, mt as PluginDefinition, o as CommentAfterModerateEvent, rt as PageMetadataContribution, tt as PageFragmentEvent, vt as PluginStorageConfig, yt as PortableTextBlockConfig, z as FieldWidgetConfig } from "./types-CtDVagM4.mjs";
6
- import { _ as MediaValue, m as MediaProviderDescriptor } from "./placeholder-DR-eeZr-.mjs";
7
- import { w as ContentBylineInput } from "./index-DxjWLKGT.mjs";
8
- import { r as AuthProviderDescriptor, t as AuthDescriptor } from "./types-B6-N9cBB.mjs";
9
- import { t as DatabaseDescriptor } from "./adapters-DPAkL6QF.mjs";
10
- import { r as ObjectCacheDescriptor } from "./types-qljd1hsL.mjs";
11
- import { d as Storage } from "./types-Cm4Cz-8M.mjs";
12
- import { i as SiteSettings, r as SiteSettingKey } from "./types-QnlQIyPE.mjs";
13
- import { Dialect, Kysely } from "kysely";
1
+ import { _ as UpdateFieldInput, f as FieldValidation, g as UpdateCollectionInput, i as CollectionWithFields, o as CreateCollectionInput, s as CreateFieldInput, t as Collection, u as Field } from "./types-Kmaxdarz.mjs";
2
+ import { f as UpdateContentInput, i as ContentItem, l as FindManyOptions, o as ContentSeoInput, r as ContentDateField, s as CreateContentInput, t as BylineSummary, u as FindManyResult } from "./types-BfYUPJdP.mjs";
3
+ import { d as ContentListResponse, f as ContentResponse, h as ManifestResponse, u as ApiResult } from "./options-BqMkWfYa.mjs";
4
+ import { t as Database } from "./types-DPKhI5ib.mjs";
5
+ import { At as StorageCollection, Ct as QueryOptions, Et as ResolvedPlugin, H as HttpAccess, O as CronEvent, R as EmailMessage, St as PublicPageContext, Z as MediaItem$1, _t as PluginMcpManifestConfig, bt as PortableTextBlockConfig, c as CommentBeforeCreateEvent, ct as PaginatedResult, et as PageFragmentContribution, ft as PluginCapability, gt as PluginManifest, i as CommentAfterCreateEvent, it as PageMetadataEvent, kt as SettingField, mt as PluginDefinition, o as CommentAfterModerateEvent, rt as PageMetadataContribution, tt as PageFragmentEvent, wt as RequestMeta, yt as PluginStorageConfig, z as FieldWidgetConfig, zt as WhereClause } from "./types-BvB7gDOD.mjs";
6
+ import { _ as MediaValue, f as MediaProvider, m as MediaProviderDescriptor, p as MediaProviderCapabilities } from "./placeholder-Dop47JMM.mjs";
7
+ import { w as ContentBylineInput } from "./index-BEui-cRd.mjs";
8
+ import { r as AuthProviderDescriptor, t as AuthDescriptor } from "./types-B4vm81VH.mjs";
9
+ import { t as DatabaseDescriptor } from "./adapters-C0ONzkUP.mjs";
10
+ import { r as ObjectCacheDescriptor } from "./types-iVeZ5g6N.mjs";
11
+ import { d as Storage } from "./types-B97jg3aW.mjs";
12
+ import { i as SiteSettings, r as SiteSettingKey } from "./types-BNfPHfay.mjs";
13
+ import { EmDashManifest } from "./astro/types.mjs";
14
+ import { Dialect, Kysely, sql } from "kysely";
14
15
  import { z } from "astro/zod";
15
16
  import { z as z$1 } from "zod";
16
17
  import "@emdash-cms/registry-client/env";
@@ -108,6 +109,19 @@ declare class ContentRepository {
108
109
  * Restore content from trash
109
110
  */
110
111
  restore(type: string, id: string): Promise<ContentItem | null>;
112
+ /**
113
+ * Re-stamp the denormalized filter + sort columns on every
114
+ * `content_taxonomies` pivot row for an entry from its authoritative `ec_*`
115
+ * row (migration 051). Called after any mutation that moves one of those
116
+ * columns so a taxonomy-filtered listing can seek the entry directly.
117
+ *
118
+ * A single correlated `UPDATE` reads the post-mutation values from `ec_*`, so
119
+ * the pivot converges to the authoritative row. This is NOT atomic with the
120
+ * `ec_*` mutation on D1 (no transactions), which is why the read path
121
+ * re-checks the real predicates on the joined `ec_*` row. Untagged entries
122
+ * have no pivot rows, so the statement is a cheap no-op for them.
123
+ */
124
+ private restampEntryPivot;
111
125
  /**
112
126
  * Permanently delete content (cannot be undone)
113
127
  */
@@ -1067,6 +1081,17 @@ declare class SchemaRegistry {
1067
1081
  * Create a new collection
1068
1082
  */
1069
1083
  createCollection(input: CreateCollectionInput): Promise<Collection>;
1084
+ /**
1085
+ * Create a seed-owned collection and all of its fields in bulk.
1086
+ *
1087
+ * Fresh seeds can define dozens of fields. Creating them through
1088
+ * `createField` performs multiple reads, one ALTER TABLE, and one media
1089
+ * usage invalidation per field, which can exhaust D1's per-request query
1090
+ * budget. This path validates the full schema before mutating it, creates
1091
+ * the complete content table in one statement, and inserts field metadata
1092
+ * in parameter-safe batches.
1093
+ */
1094
+ createSeedCollection(input: Omit<CreateCollectionInput, "source">, fields: readonly CreateFieldInput[]): Promise<void>;
1070
1095
  /**
1071
1096
  * Update a collection
1072
1097
  */
@@ -1535,6 +1560,8 @@ interface PluginDescriptor<TOptions = Record<string, unknown>> {
1535
1560
  adminPages?: PluginAdminPage[];
1536
1561
  /** Dashboard widgets */
1537
1562
  adminWidgets?: PluginDashboardWidget[];
1563
+ /** Settings schema for the auto-generated admin settings form */
1564
+ settingsSchema?: Record<string, SettingField>;
1538
1565
  /**
1539
1566
  * Portable Text block types this plugin contributes to the editor.
1540
1567
  * Declarative (Block Kit) — surfaced in the admin slash menu and consumed
@@ -1560,6 +1587,8 @@ interface PluginDescriptor<TOptions = Record<string, unknown>> {
1560
1587
  * Sandboxed plugins can only access declared collections.
1561
1588
  */
1562
1589
  storage?: Record<string, StorageCollectionDeclaration>;
1590
+ /** Serialized MCP declarations emitted by the plugin build. */
1591
+ mcp?: PluginMcpManifestConfig;
1563
1592
  }
1564
1593
  /**
1565
1594
  * Sandboxed plugin descriptor - same format as PluginDescriptor
@@ -2065,6 +2094,7 @@ interface SandboxOptions {
2065
2094
  name: string;
2066
2095
  url: string;
2067
2096
  locale: string;
2097
+ trailingSlash?: "always" | "never" | "ignore";
2068
2098
  };
2069
2099
  /** Email send callback, wired from the EmailPipeline by the runtime */
2070
2100
  emailSend?: SandboxEmailSendCallback;
@@ -2256,6 +2286,8 @@ interface SiteInfoOptions {
2256
2286
  siteUrl?: string;
2257
2287
  /** Site locale from options table */
2258
2288
  locale?: string;
2289
+ /** Astro's `trailingSlash` config (from `virtual:emdash/config`). */
2290
+ trailingSlash?: "always" | "never" | "ignore";
2259
2291
  }
2260
2292
  interface PluginContextFactoryOptions {
2261
2293
  db: Kysely<Database>;
@@ -2663,6 +2695,19 @@ declare class EmailPipeline {
2663
2695
  }
2664
2696
  //#endregion
2665
2697
  //#region src/plugins/routes.d.ts
2698
+ /**
2699
+ * Route metadata (public flag) without the handler.
2700
+ * Used by the catch-all route to decide auth before dispatch.
2701
+ */
2702
+ interface RouteMeta {
2703
+ public: boolean;
2704
+ permission?: string;
2705
+ /**
2706
+ * Cache-Control value for successful GET responses. Only ever set for
2707
+ * public routes — authenticated responses must stay `private, no-store`.
2708
+ */
2709
+ cacheControl?: string;
2710
+ }
2666
2711
  /**
2667
2712
  * Result from a route invocation
2668
2713
  */
@@ -2747,7 +2792,19 @@ interface CronScheduler {
2747
2792
  */
2748
2793
  type SystemCleanupFn = () => Promise<void>;
2749
2794
  //#endregion
2795
+ //#region src/scheduled-publish.d.ts
2796
+ /** A content item that was promoted to published by a sweep. */
2797
+ interface PublishedRef {
2798
+ collection: string;
2799
+ id: string;
2800
+ }
2801
+ //#endregion
2750
2802
  //#region src/emdash-runtime.d.ts
2803
+ /** Combined result from a single-pass page contribution collection */
2804
+ interface PageContributions {
2805
+ metadata: PageMetadataContribution[];
2806
+ fragments: PageFragmentContribution[];
2807
+ }
2751
2808
  /**
2752
2809
  * Sandboxed plugin entry from virtual module
2753
2810
  */
@@ -2762,6 +2819,8 @@ interface SandboxedPluginEntry {
2762
2819
  allowedHosts: string[];
2763
2820
  /** Declared storage collections */
2764
2821
  storage: PluginStorageConfig;
2822
+ /** Serialized MCP declarations emitted at plugin build time. */
2823
+ mcp?: PluginMcpManifestConfig;
2765
2824
  /** Admin pages */
2766
2825
  adminPages?: Array<{
2767
2826
  path: string;
@@ -2774,6 +2833,8 @@ interface SandboxedPluginEntry {
2774
2833
  title?: string;
2775
2834
  size?: string;
2776
2835
  }>;
2836
+ /** Settings schema for the auto-generated admin settings form */
2837
+ settingsSchema?: Record<string, SettingField>;
2777
2838
  /** Portable Text block types contributed to the editor (declarative Block Kit) */
2778
2839
  portableTextBlocks?: PortableTextBlockConfig[];
2779
2840
  /** Field widget types contributed for schema-field editing UIs */
@@ -2786,6 +2847,697 @@ interface SandboxedPluginEntry {
2786
2847
  */
2787
2848
  preferred?: string[];
2788
2849
  }
2850
+ /**
2851
+ * Media provider entry from virtual module
2852
+ */
2853
+ interface MediaProviderEntry {
2854
+ id: string;
2855
+ name: string;
2856
+ icon?: string;
2857
+ capabilities: MediaProviderCapabilities;
2858
+ /** Factory function to create the provider instance */
2859
+ createProvider: (ctx: MediaProviderContext) => MediaProvider;
2860
+ }
2861
+ /**
2862
+ * Context passed to media provider factory functions
2863
+ */
2864
+ interface MediaProviderContext {
2865
+ db: Kysely<Database>;
2866
+ /**
2867
+ * Resolver for the live connection, preferred over `db` by providers that
2868
+ * query EmDash's database. Resolves the current request/event-scoped
2869
+ * connection from ALS so connection-backed adapters (Postgres over
2870
+ * Hyperdrive) don't reuse the per-isolate singleton's socket across events.
2871
+ * Providers should resolve per operation rather than capturing `db` once.
2872
+ * Omitted-safe: falls back to `db` for stateless adapters (D1, Node SQLite).
2873
+ */
2874
+ getDb?: () => Kysely<Database>;
2875
+ storage: Storage | null;
2876
+ }
2877
+ /**
2878
+ * Builds the timer-based scheduler that drives cron ticks and maintenance.
2879
+ * Injected via `virtual:emdash/scheduler` so the platform — not core — decides
2880
+ * whether a long-lived heartbeat exists.
2881
+ */
2882
+ type CreateSchedulerFn = (executor: CronExecutor) => CronScheduler;
2883
+ /**
2884
+ * Dependencies injected from virtual modules (middleware reads these)
2885
+ */
2886
+ interface RuntimeDependencies {
2887
+ config: EmDashConfig;
2888
+ plugins: ResolvedPlugin[];
2889
+ createDialect: (config: any) => Dialect;
2890
+ /**
2891
+ * Factory for a dialect that batches same-turn reads into one round trip
2892
+ * ({@link EmDashRuntime.create} uses it for the cold-start read phase).
2893
+ * Present only on batching backends (D1, DO); absent backends fall back to
2894
+ * the singleton. Returns a fresh connection each call — it must never be the
2895
+ * long-lived singleton, whose coalescing buffer would be shared across
2896
+ * requests.
2897
+ */
2898
+ createCoalescingDialect?: (config: any) => Dialect | null;
2899
+ createStorage: ((config: any) => Storage) | null;
2900
+ sandboxEnabled: boolean;
2901
+ /** sandbox: false escape hatch - load sandboxed plugins in-process */
2902
+ sandboxBypassed?: boolean;
2903
+ /**
2904
+ * Factory for the timer-based cron/maintenance heartbeat. Supplied by the
2905
+ * generated `virtual:emdash/scheduler` module: a `NodeCronScheduler` factory
2906
+ * on long-lived runtimes (Node/Bun), or `null` on serverless adapters where
2907
+ * an external driver (e.g. the Cloudflare Worker's `scheduled()` Cron
2908
+ * Trigger) calls `runScheduledTasks()` instead. When absent or null, the
2909
+ * runtime starts no scheduler. Keeping the platform decision in the
2910
+ * integration means core has no adapter-specific runtime checks.
2911
+ */
2912
+ createScheduler?: CreateSchedulerFn | null;
2913
+ /** Media provider entries from virtual module */
2914
+ mediaProviderEntries?: MediaProviderEntry[];
2915
+ sandboxedPluginEntries: SandboxedPluginEntry[];
2916
+ /** Factory function supplied by the active platform adapter. */
2917
+ createSandboxRunner: SandboxRunnerFactory | null;
2918
+ }
2919
+ /**
2920
+ * Constructor parameters for `EmDashRuntime`.
2921
+ *
2922
+ * Production code should use `EmDashRuntime.create()` which discovers and
2923
+ * loads all parts (database, plugins, hooks, cron, etc.) and then calls the
2924
+ * constructor. Direct construction is supported for callers that already
2925
+ * have all the dependencies in hand — for example, integration tests that
2926
+ * supply a pre-migrated database and an empty plugin set.
2927
+ *
2928
+ * Every field corresponds 1:1 to internal state set on the runtime — none of
2929
+ * these are derived. If you don't have a value for one, see what `create()`
2930
+ * passes for that field as the canonical default.
2931
+ */
2932
+ interface EmDashRuntimeParts {
2933
+ db: Kysely<Database>;
2934
+ storage: Storage | null;
2935
+ configuredPlugins: ResolvedPlugin[];
2936
+ sandboxedPlugins: Map<string, SandboxedPluginInstance>;
2937
+ sandboxedPluginEntries: SandboxedPluginEntry[];
2938
+ hooks: HookPipeline;
2939
+ enabledPlugins: Set<string>;
2940
+ pluginStates: Map<string, string>;
2941
+ config: EmDashConfig;
2942
+ mediaProviders: Map<string, MediaProvider>;
2943
+ mediaProviderEntries: MediaProviderEntry[];
2944
+ cronExecutor: CronExecutor | null;
2945
+ cronScheduler: CronScheduler | null;
2946
+ emailPipeline: EmailPipeline | null;
2947
+ allPipelinePlugins: ResolvedPlugin[];
2948
+ pipelineFactoryOptions: {
2949
+ db: Kysely<Database>;
2950
+ getDb?: () => Kysely<Database>;
2951
+ storage?: Storage;
2952
+ siteInfo?: {
2953
+ siteName?: string;
2954
+ siteUrl?: string;
2955
+ locale?: string;
2956
+ trailingSlash?: "always" | "never" | "ignore";
2957
+ };
2958
+ };
2959
+ runtimeDeps: RuntimeDependencies;
2960
+ pipelineRef: {
2961
+ current: HookPipeline;
2962
+ };
2963
+ }
2964
+ /**
2965
+ * EmDashRuntime - singleton per worker
2966
+ */
2967
+ declare class EmDashRuntime {
2968
+ /**
2969
+ * The singleton database instance (worker-lifetime cached).
2970
+ * Use the `db` getter instead — it checks the request context first
2971
+ * for per-request overrides (D1 read replica sessions, DO multi-site).
2972
+ */
2973
+ private readonly _db;
2974
+ readonly storage: Storage | null;
2975
+ readonly configuredPlugins: ResolvedPlugin[];
2976
+ readonly sandboxedPlugins: Map<string, SandboxedPluginInstance>;
2977
+ readonly sandboxedPluginEntries: SandboxedPluginEntry[];
2978
+ /**
2979
+ * Schema registry bound to the current request/event-scoped connection.
2980
+ * Built per access (SchemaRegistry just wraps a db) against `this.db`, the
2981
+ * ALS-aware getter — never a captured snapshot of the singleton. On a
2982
+ * connection-backed adapter (Postgres over Hyperdrive) a captured singleton
2983
+ * would query a socket opened by an earlier event and trip workerd's
2984
+ * cross-request I/O guard; the catch in handlers like handleContentUpdate
2985
+ * would then silently treat a revision-enabled collection as non-revisioned
2986
+ * and write draft edits to live columns. Same reasoning as the per-call
2987
+ * registry in _buildManifest().
2988
+ */
2989
+ get schemaRegistry(): SchemaRegistry;
2990
+ private _hooks;
2991
+ readonly config: EmDashConfig;
2992
+ readonly mediaProviders: Map<string, MediaProvider>;
2993
+ readonly mediaProviderEntries: MediaProviderEntry[];
2994
+ readonly cronExecutor: CronExecutor | null;
2995
+ readonly email: EmailPipeline | null;
2996
+ private cronScheduler;
2997
+ private enabledPlugins;
2998
+ private pluginStates;
2999
+ /**
3000
+ * Isolate-lifetime guard so FTS indexes are verified at most once per
3001
+ * worker rather than on every admin request. See ensureSearchHealthy().
3002
+ * Uses the poison-immune single-flight cache (never a shared awaitable
3003
+ * promise) so a cancelled first caller can't wedge later ones.
3004
+ */
3005
+ private readonly _searchHealthCache;
3006
+ /** Current hook pipeline. Use the `hooks` getter for external access. */
3007
+ get hooks(): HookPipeline;
3008
+ /** All plugins eligible for the hook pipeline (includes built-in plugins).
3009
+ * Stored so we can rebuild the pipeline when plugins are enabled/disabled. */
3010
+ private allPipelinePlugins;
3011
+ /** Factory options for the hook pipeline context factory */
3012
+ private pipelineFactoryOptions;
3013
+ /** Dependencies needed for exclusive hook resolution */
3014
+ private runtimeDeps;
3015
+ /** Mutable ref for the cron invokeCronHook closure to read the current pipeline */
3016
+ private pipelineRef;
3017
+ /**
3018
+ * Get the database instance for the current request.
3019
+ *
3020
+ * Checks the ALS-based request context first — middleware sets a
3021
+ * per-request Kysely instance there for D1 read replica sessions
3022
+ * or DO preview databases. Falls back to the singleton instance.
3023
+ */
3024
+ get db(): Kysely<Database>;
3025
+ constructor(parts: EmDashRuntimeParts);
3026
+ /**
3027
+ * Get the sandbox runner instance (for marketplace install/update)
3028
+ */
3029
+ getSandboxRunner(): SandboxRunner | null;
3030
+ /**
3031
+ * Whether the sandbox bypass mode (sandbox: false) is active.
3032
+ * Marketplace install/update handlers use this to skip the
3033
+ * SANDBOX_NOT_AVAILABLE gate, since the bypass path loads
3034
+ * marketplace plugins in-process via syncMarketplacePlugins().
3035
+ */
3036
+ isSandboxBypassed(): boolean;
3037
+ /**
3038
+ * Publish any content whose scheduled time has passed.
3039
+ * Returns the items promoted so callers can invalidate their cache tags.
3040
+ */
3041
+ publishScheduled(): Promise<PublishedRef[]>;
3042
+ /**
3043
+ * Run the full scheduled-maintenance batch: cron tasks, scheduled
3044
+ * publishing, and system cleanup. For request-less drivers — the
3045
+ * Cloudflare `scheduled()` handler invokes this from a Cron Trigger.
3046
+ * (On Node the timer-based scheduler drives the same work itself.)
3047
+ *
3048
+ * Each step is independent and non-fatal. Returns the content promoted
3049
+ * by the publishing sweep so the caller can purge edge-cache tags.
3050
+ *
3051
+ * `onPublished` (optional) is awaited after each collection's batch so a
3052
+ * request-less driver can invalidate edge-cache tags incrementally rather
3053
+ * than only after the whole sweep — bounding stale-cache exposure if the
3054
+ * runtime is killed mid-sweep.
3055
+ */
3056
+ runScheduledTasks(options?: {
3057
+ onPublished?: (refs: PublishedRef[]) => Promise<void>;
3058
+ }): Promise<{
3059
+ published: PublishedRef[];
3060
+ }>;
3061
+ /**
3062
+ * Stop the cron scheduler gracefully.
3063
+ * Call during worker shutdown or hot-reload.
3064
+ */
3065
+ stopCron(): Promise<void>;
3066
+ /**
3067
+ * Update in-memory plugin status and rebuild the hook pipeline.
3068
+ *
3069
+ * Rebuilding the pipeline ensures disabled plugins' hooks stop firing
3070
+ * and re-enabled plugins' hooks start firing again without a restart.
3071
+ * Exclusive hook selections are re-resolved after each rebuild.
3072
+ */
3073
+ setPluginStatus(pluginId: string, status: "active" | "inactive"): Promise<void>;
3074
+ /**
3075
+ * Rebuild the hook pipeline from the current set of enabled plugins.
3076
+ *
3077
+ * Filters `allPipelinePlugins` to only those in `enabledPlugins`,
3078
+ * creates a fresh HookPipeline, re-resolves exclusive hook selections,
3079
+ * and re-wires the context factory so existing references (cron
3080
+ * callbacks, email pipeline) use the new pipeline.
3081
+ */
3082
+ private rebuildHookPipeline;
3083
+ /**
3084
+ * Synchronize marketplace plugin runtime state with DB + storage.
3085
+ *
3086
+ * Ensures install/update/uninstall changes take effect immediately in the
3087
+ * current worker: loads newly active plugins and removes uninstalled ones.
3088
+ */
3089
+ syncMarketplacePlugins(): Promise<void>;
3090
+ /**
3091
+ * Synchronize registry plugin runtime state with DB + storage.
3092
+ *
3093
+ * Mirrors {@link syncMarketplacePlugins} for plugins installed via the
3094
+ * experimental decentralized plugin registry. Called after install,
3095
+ * update, and uninstall handlers complete.
3096
+ */
3097
+ syncRegistryPlugins(): Promise<void>;
3098
+ /**
3099
+ * Internal: reconcile in-memory sandboxed-plugin state with the
3100
+ * `_plugin_state` table for the given source tier. Shared
3101
+ * implementation behind {@link syncMarketplacePlugins} and
3102
+ * {@link syncRegistryPlugins}.
3103
+ *
3104
+ * Each source tier has its own key set in `${source}PluginKeys` so a
3105
+ * sync for one tier doesn't invalidate the other.
3106
+ */
3107
+ private syncSandboxedSourcePlugins;
3108
+ /**
3109
+ * Remove a plugin from the in-memory pipeline lists by ID.
3110
+ * Mutates allPipelinePlugins and configuredPlugins in place.
3111
+ */
3112
+ private removePluginFromLists;
3113
+ /**
3114
+ * Sync marketplace plugin metadata in sandbox: false bypass mode.
3115
+ *
3116
+ * In bypass mode the noop runner can't load plugins, but admin pages,
3117
+ * widgets, and route metadata still need to refresh in-process when an
3118
+ * admin installs/updates/uninstalls a marketplace plugin. Otherwise the
3119
+ * admin UI shows stale data until the server restarts.
3120
+ *
3121
+ * Hooks and routes still won't execute under bypass (matches the
3122
+ * cold-start bypass behavior in loadMarketplacePluginsBypassed).
3123
+ *
3124
+ * Known limitation: bypass plugins are loaded via `import(dataUrl)`,
3125
+ * which Node's ESM cache keys on the full URL. Updates create fresh
3126
+ * module objects, but old ones remain cached for the worker's lifetime.
3127
+ * In practice this is a few KB per update — only matters for sites with
3128
+ * very frequent marketplace updates running long-lived processes. The
3129
+ * fix would be vm.SourceTextModule for explicit lifecycle management.
3130
+ */
3131
+ private syncMarketplacePluginsBypassed;
3132
+ /**
3133
+ * Create and initialize the runtime
3134
+ */
3135
+ static create(deps: RuntimeDependencies, timings?: Array<{
3136
+ name: string;
3137
+ dur: number;
3138
+ desc?: string;
3139
+ }>): Promise<EmDashRuntime>;
3140
+ /**
3141
+ * Get a media provider by ID
3142
+ */
3143
+ getMediaProvider(providerId: string): MediaProvider | undefined;
3144
+ /**
3145
+ * Get all media provider entries (for admin UI)
3146
+ */
3147
+ getMediaProviderList(): Array<{
3148
+ id: string;
3149
+ name: string;
3150
+ icon?: string;
3151
+ capabilities: MediaProviderCapabilities;
3152
+ }>;
3153
+ /**
3154
+ * Get or create database instance
3155
+ */
3156
+ private static getDatabase;
3157
+ /**
3158
+ * Get or create storage instance
3159
+ */
3160
+ private static getStorage;
3161
+ /**
3162
+ * Load sandboxed plugin entries as trusted in-process plugins.
3163
+ * Used by the sandbox: false debugging escape hatch.
3164
+ *
3165
+ * Imports each plugin's bundled ESM code via a data URL, adapts it
3166
+ * with adaptSandboxEntry, and returns ResolvedPlugin objects ready
3167
+ * to be merged into the pipeline plugin list.
3168
+ */
3169
+ private static loadBypassedPlugins;
3170
+ /**
3171
+ * Load sandboxed plugins using SandboxRunner
3172
+ */
3173
+ private static loadSandboxedPlugins;
3174
+ /**
3175
+ * Cold-start: load marketplace-installed plugins from site-local R2 storage
3176
+ *
3177
+ * Queries _plugin_state for source='marketplace' rows, fetches each bundle
3178
+ * from R2, and loads via SandboxRunner.
3179
+ */
3180
+ /**
3181
+ * Cold-start load of all active sandboxed plugins for one install
3182
+ * tier (marketplace or registry) from site-local R2.
3183
+ *
3184
+ * Mirrors {@link syncSandboxedSourcePlugins} but runs once at runtime
3185
+ * creation, before request traffic arrives; the sync method runs on
3186
+ * demand after install / update / uninstall handlers.
3187
+ */
3188
+ private static loadInstalledSandboxedPlugins;
3189
+ /**
3190
+ * Cold-start: load marketplace plugins in bypass mode (sandbox: false).
3191
+ *
3192
+ * Each active marketplace bundle is read, evaluated via data URL, adapted
3193
+ * with adaptSandboxEntry, and returned as a ResolvedPlugin. The caller is
3194
+ * responsible for merging these into allPipelinePlugins / configuredPlugins
3195
+ * BEFORE the hook pipeline is created, so hooks and routes register in
3196
+ * the trusted pipeline.
3197
+ *
3198
+ * Also caches manifest and route metadata so admin UI / getManifest() work.
3199
+ *
3200
+ * Returns ResolvedPlugins to be merged into the pipeline.
3201
+ */
3202
+ private static loadMarketplacePluginsBypassed;
3203
+ /**
3204
+ * Resolve exclusive hook selections on startup.
3205
+ *
3206
+ * Delegates to the shared resolveExclusiveHooks() in hooks.ts.
3207
+ * The runtime version considers all pipeline providers as "active" since
3208
+ * the pipeline was already built from only active/enabled plugins.
3209
+ */
3210
+ private static resolveExclusiveHooks;
3211
+ /**
3212
+ * Build the admin manifest from the live database.
3213
+ *
3214
+ * Used by the admin UI (sidebar collections, content editor field
3215
+ * dispatch, manifest endpoint) and by WordPress import — it's never
3216
+ * read on a public request, so this isn't on any anonymous hot path.
3217
+ *
3218
+ * No cross-request cache. The previous worker-isolate cache produced
3219
+ * a class of cross-isolate staleness bugs (#776, #873, #876, #877)
3220
+ * because Cloudflare Workers keeps multiple warm isolates per region
3221
+ * and there's no fan-out primitive to invalidate them in step. The
3222
+ * cache existed to amortize an N+1 schema query pattern; now that
3223
+ * `listCollectionsWithFields()` does the same work in two queries,
3224
+ * the rebuild is fast enough to pay on every admin request.
3225
+ *
3226
+ * Within a single request, `requestCached` deduplicates concurrent
3227
+ * callers (the manifest endpoint and an admin SSR template, say).
3228
+ */
3229
+ getManifest(): Promise<EmDashManifest>;
3230
+ /**
3231
+ * Build the manifest from the database.
3232
+ *
3233
+ * Constant query shapes via `listCollectionsWithFields()` — one query
3234
+ * for collections, one batched query for fields (chunked at
3235
+ * `SQL_BATCH_SIZE` collection IDs to stay under D1's bound-parameter
3236
+ * limit). Typical sites stay well under the chunk threshold, so this
3237
+ * is two queries in practice; never N+1.
3238
+ */
3239
+ private _buildManifest;
3240
+ /**
3241
+ * Verify and repair FTS indexes on demand. Runs at most once per worker
3242
+ * lifetime.
3243
+ *
3244
+ * Originally called from `EmDashRuntime.create()`, but on a busy D1 link
3245
+ * (e.g. SIN replica ~80-150ms per query) it added ~1.5s to every cold
3246
+ * start for a modest-sized site — more than every other init phase
3247
+ * combined. Anonymous public reads never touch the search write path,
3248
+ * so the cost isn't paid back for the vast majority of requests.
3249
+ *
3250
+ * Instead, search endpoints call this lazily: the first request that
3251
+ * actually needs the index pays the verify cost (usually fast — no
3252
+ * rebuild needed), everyone else runs cold-free.
3253
+ *
3254
+ * Uses the runtime's singleton database (`this._db`) rather than the
3255
+ * request-scoped DB. Verify reads only, but `rebuildIndex` writes, and
3256
+ * a GET search request on D1 carries a `first-unconstrained` session
3257
+ * that's free to route at a read replica — unsafe for writes. The
3258
+ * singleton always goes through the default binding, which the D1
3259
+ * adapter will promote to `first-primary` for write statements.
3260
+ *
3261
+ * Safe to call concurrently: repeated callers share the same in-flight
3262
+ * promise. Errors are swallowed internally so callers don't need to
3263
+ * defend against FTS not existing yet (pre-setup).
3264
+ */
3265
+ ensureSearchHealthy(): Promise<void>;
3266
+ handleContentList(collection: string, params: {
3267
+ cursor?: string;
3268
+ limit?: number;
3269
+ status?: string;
3270
+ orderBy?: string;
3271
+ order?: "asc" | "desc";
3272
+ locale?: string;
3273
+ q?: string;
3274
+ authorId?: string;
3275
+ dateField?: ContentDateField;
3276
+ dateFrom?: string;
3277
+ dateTo?: string;
3278
+ }): Promise<ApiResult<ContentListResponse>>;
3279
+ handleContentAuthors(collection: string): Promise<ApiResult<{
3280
+ items: ContentAuthor[];
3281
+ }>>;
3282
+ handleContentGet(collection: string, id: string, locale?: string): Promise<ApiResult<ContentResponse>>;
3283
+ handleContentGetIncludingTrashed(collection: string, id: string, locale?: string): Promise<ApiResult<ContentResponse>>;
3284
+ /**
3285
+ * If the response item has a `draftRevisionId`, replace `item.data` with
3286
+ * the draft revision's data and expose the original published values as
3287
+ * `liveData`. This makes the content_get / content_update round-trip
3288
+ * intuitive — read returns the latest content the caller has saved
3289
+ * (their pending draft), with the previously-published values still
3290
+ * accessible for compare-style flows.
3291
+ *
3292
+ * No-op when no draft exists or the response is an error.
3293
+ */
3294
+ private hydrateDraftData;
3295
+ handleContentCreate(collection: string, body: {
3296
+ data: Record<string, unknown>;
3297
+ slug?: string;
3298
+ status?: string;
3299
+ authorId?: string;
3300
+ bylines?: Array<{
3301
+ bylineId: string;
3302
+ roleLabel?: string | null;
3303
+ }>;
3304
+ locale?: string;
3305
+ translationOf?: string;
3306
+ taxonomies?: Record<string, string[]>;
3307
+ }): Promise<{
3308
+ success: false;
3309
+ error: {
3310
+ code: string;
3311
+ message: string;
3312
+ details?: Record<string, unknown>;
3313
+ };
3314
+ } | {
3315
+ success: true;
3316
+ data: ContentResponse;
3317
+ } | {
3318
+ success: false;
3319
+ error: {
3320
+ code: "VALIDATION_ERROR" | "COLLECTION_NOT_FOUND";
3321
+ message: string;
3322
+ };
3323
+ }>;
3324
+ handleContentUpdate(collection: string, id: string, body: {
3325
+ data?: Record<string, unknown>;
3326
+ slug?: string;
3327
+ status?: string;
3328
+ authorId?: string | null;
3329
+ bylines?: Array<{
3330
+ bylineId: string;
3331
+ roleLabel?: string | null;
3332
+ }>;
3333
+ seo?: {
3334
+ title?: string | null;
3335
+ description?: string | null;
3336
+ image?: string | null;
3337
+ canonical?: string | null;
3338
+ noIndex?: boolean;
3339
+ };
3340
+ taxonomies?: Record<string, string[]>;
3341
+ publishedAt?: string | null;
3342
+ locale?: string; /** Skip revision creation (used by autosave) */
3343
+ skipRevision?: boolean;
3344
+ _rev?: string;
3345
+ }): Promise<ApiResult<ContentResponse>>;
3346
+ handleContentDelete(collection: string, id: string): Promise<{
3347
+ success: false;
3348
+ error: {
3349
+ code: string;
3350
+ message: string;
3351
+ details?: Record<string, unknown>;
3352
+ };
3353
+ } | {
3354
+ success: true;
3355
+ data: {
3356
+ deleted: true;
3357
+ id: string;
3358
+ };
3359
+ } | {
3360
+ success: boolean;
3361
+ error: {
3362
+ code: string;
3363
+ message: string;
3364
+ };
3365
+ }>;
3366
+ handleContentListTrashed(collection: string, params?: {
3367
+ cursor?: string;
3368
+ limit?: number;
3369
+ }): Promise<ApiResult<{
3370
+ items: TrashedContentItem[];
3371
+ nextCursor?: string;
3372
+ }>>;
3373
+ handleContentRestore(collection: string, id: string): Promise<ApiResult<{
3374
+ restored: true;
3375
+ item: ContentItem;
3376
+ }>>;
3377
+ handleContentPermanentDelete(collection: string, id: string): Promise<ApiResult<{
3378
+ deleted: true;
3379
+ id: string;
3380
+ }>>;
3381
+ handleContentCountTrashed(collection: string): Promise<ApiResult<{
3382
+ count: number;
3383
+ }>>;
3384
+ handleContentDuplicate(collection: string, id: string, authorId?: string): Promise<ApiResult<{
3385
+ item: ContentItem;
3386
+ }>>;
3387
+ handleContentPublish(collection: string, id: string, options?: {
3388
+ publishedAt?: string;
3389
+ requireScheduledDue?: boolean;
3390
+ }): Promise<ApiResult<ContentResponse>>;
3391
+ handleContentUnpublish(collection: string, id: string): Promise<ApiResult<ContentResponse>>;
3392
+ handleContentSchedule(collection: string, id: string, scheduledAt: string): Promise<ApiResult<ContentResponse>>;
3393
+ handleContentUnschedule(collection: string, id: string): Promise<ApiResult<ContentResponse>>;
3394
+ handleContentCountScheduled(collection: string): Promise<ApiResult<{
3395
+ count: number;
3396
+ }>>;
3397
+ handleContentDiscardDraft(collection: string, id: string): Promise<ApiResult<ContentResponse>>;
3398
+ handleContentCompare(collection: string, id: string): Promise<ApiResult<{
3399
+ hasChanges: boolean;
3400
+ live: Record<string, unknown> | null;
3401
+ draft: Record<string, unknown> | null;
3402
+ }>>;
3403
+ handleContentTranslations(collection: string, id: string): Promise<ApiResult<{
3404
+ translationGroup: string;
3405
+ translations: Array<{
3406
+ id: string;
3407
+ locale: string | null;
3408
+ slug: string | null;
3409
+ status: string;
3410
+ updatedAt: string;
3411
+ }>;
3412
+ }>>;
3413
+ handleMediaList(params: {
3414
+ cursor?: string;
3415
+ limit?: number;
3416
+ mimeType?: string | readonly string[];
3417
+ q?: string;
3418
+ }): Promise<ApiResult<MediaListResponse>>;
3419
+ handleMediaGet(id: string): Promise<ApiResult<MediaResponse>>;
3420
+ handleMediaCreate(input: {
3421
+ filename: string;
3422
+ mimeType: string;
3423
+ size?: number;
3424
+ width?: number;
3425
+ height?: number;
3426
+ storageKey: string;
3427
+ contentHash?: string;
3428
+ blurhash?: string;
3429
+ dominantColor?: string;
3430
+ authorId?: string;
3431
+ }): Promise<ApiResult<MediaResponse>>;
3432
+ handleMediaUpdate(id: string, input: {
3433
+ alt?: string;
3434
+ caption?: string;
3435
+ width?: number;
3436
+ height?: number;
3437
+ }): Promise<ApiResult<MediaResponse>>;
3438
+ handleMediaDelete(id: string): Promise<ApiResult<{
3439
+ deleted: true;
3440
+ }>>;
3441
+ handleRevisionList(collection: string, entryId: string, params?: {
3442
+ limit?: number;
3443
+ }): Promise<ApiResult<RevisionListResponse>>;
3444
+ handleRevisionGet(revisionId: string): Promise<ApiResult<RevisionResponse>>;
3445
+ handleRevisionRestore(revisionId: string, callerUserId: string): Promise<ApiResult<ContentResponse>>;
3446
+ private refreshContentUsageAfterSuccessfulWrite;
3447
+ private deleteContentUsageAfterSuccessfulPermanentDelete;
3448
+ /**
3449
+ * Get route metadata for a plugin route without invoking the handler.
3450
+ * Used by the catch-all route to decide auth before dispatch.
3451
+ * Returns null if the plugin or route doesn't exist.
3452
+ */
3453
+ getPluginRouteMeta(pluginId: string, path: string): RouteMeta | null;
3454
+ /**
3455
+ * Resolve the settings schema for a runtime-installed (marketplace or
3456
+ * registry) plugin from its cached manifest. Returns `{}` for a known
3457
+ * plugin without a schema and `null` for unknown plugins, matching the
3458
+ * contract of `getPluginSettingsSchema` for build-time plugins.
3459
+ */
3460
+ getRuntimePluginSettingsSchema(pluginId: string): Record<string, SettingField> | null;
3461
+ handlePluginApiRoute(pluginId: string, _method: string, path: string, request: Request): Promise<{
3462
+ success: boolean;
3463
+ data?: unknown;
3464
+ error?: {
3465
+ code: string;
3466
+ message: string;
3467
+ };
3468
+ }>;
3469
+ getPluginMcpTools(pluginId?: string): Promise<{
3470
+ pluginId: string;
3471
+ name: string;
3472
+ description: string;
3473
+ route: string;
3474
+ permission: string;
3475
+ destructive: boolean;
3476
+ inputSchema: z$1.ZodType;
3477
+ outputSchema?: z$1.ZodType;
3478
+ }[]>;
3479
+ getEnabledPluginMcpTools(): Promise<{
3480
+ pluginId: string;
3481
+ name: string;
3482
+ description: string;
3483
+ route: string;
3484
+ permission: string;
3485
+ destructive: boolean;
3486
+ inputSchema: z$1.ZodType;
3487
+ outputSchema?: z$1.ZodType;
3488
+ }[]>;
3489
+ serializePluginMcpConsent(tools: Awaited<ReturnType<EmDashRuntime["getPluginMcpTools"]>>, pluginId: string): string;
3490
+ handlePluginMcpTool(pluginId: string, toolName: string, route: string, input: unknown, actorId: string, request: Request): Promise<{
3491
+ success: boolean;
3492
+ data?: unknown;
3493
+ error?: {
3494
+ code: string;
3495
+ message: string;
3496
+ };
3497
+ }>;
3498
+ handlePluginMcpDenied(pluginId: string, toolName: string, route: string, actorId: string, request: Request, reason: string): Promise<void>;
3499
+ private findSandboxedPlugin;
3500
+ /**
3501
+ * Normalize image/file fields in content data.
3502
+ * Fills missing dimensions, storageKey, mimeType, and filename from providers.
3503
+ */
3504
+ private normalizeMediaFields;
3505
+ private runSandboxedBeforeSave;
3506
+ private runSandboxedBeforeDelete;
3507
+ private runAfterSaveHooks;
3508
+ private runAfterDeleteHooks;
3509
+ private runDeferredContentHook;
3510
+ private runAfterPublishHooks;
3511
+ private runAfterUnpublishHooks;
3512
+ private runAfterRestoreHooks;
3513
+ private runAfterScheduleHooks;
3514
+ private runAfterUnscheduleHooks;
3515
+ private handleSandboxedRoute;
3516
+ /**
3517
+ * Cache for page contributions. Uses a WeakMap keyed on the PublicPageContext
3518
+ * object so results are collected once per page context per request, even when
3519
+ * multiple render components (EmDashHead, EmDashBodyStart, EmDashBodyEnd)
3520
+ * request contributions from the same page.
3521
+ */
3522
+ private pageContributionCache;
3523
+ /**
3524
+ * Collect all page contributions (metadata + fragments) in a single pass.
3525
+ * Results are cached by page context object identity.
3526
+ */
3527
+ collectPageContributions(page: PublicPageContext): Promise<PageContributions>;
3528
+ private doCollectPageContributions;
3529
+ /**
3530
+ * Collect page metadata contributions from trusted and sandboxed plugins.
3531
+ * Delegates to the single-pass collector and returns the metadata portion.
3532
+ */
3533
+ collectPageMetadata(page: PublicPageContext): Promise<PageMetadataContribution[]>;
3534
+ /**
3535
+ * Collect page fragment contributions from trusted plugins only.
3536
+ * Delegates to the single-pass collector and returns the fragments portion.
3537
+ */
3538
+ collectPageFragments(page: PublicPageContext): Promise<PageFragmentContribution[]>;
3539
+ private isPluginEnabled;
3540
+ }
2789
3541
  //#endregion
2790
3542
  //#region src/sections/types.d.ts
2791
3543
  /**
@@ -3880,7 +4632,20 @@ declare const pluginManifestSchema: z$1.ZodObject<{
3880
4632
  routes: z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodString, z$1.ZodObject<{
3881
4633
  name: z$1.ZodString;
3882
4634
  public: z$1.ZodOptional<z$1.ZodBoolean>;
4635
+ permission: z$1.ZodOptional<z$1.ZodString>;
4636
+ cacheControl: z$1.ZodOptional<z$1.ZodString>;
3883
4637
  }, z$1.core.$strip>]>>;
4638
+ mcp: z$1.ZodOptional<z$1.ZodObject<{
4639
+ tools: z$1.ZodArray<z$1.ZodObject<{
4640
+ name: z$1.ZodString;
4641
+ description: z$1.ZodString;
4642
+ route: z$1.ZodString;
4643
+ permission: z$1.ZodString;
4644
+ destructive: z$1.ZodBoolean;
4645
+ inputSchema: z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>;
4646
+ outputSchema: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>;
4647
+ }, z$1.core.$strip>>;
4648
+ }, z$1.core.$strip>>;
3884
4649
  admin: z$1.ZodObject<{
3885
4650
  entry: z$1.ZodOptional<z$1.ZodString>;
3886
4651
  settingsSchema: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
@@ -5355,5 +6120,5 @@ declare function extractPlainText(blocks: PortableTextBlock[] | string | null |
5355
6120
  */
5356
6121
  declare function extractSearchableFields(entry: Record<string, unknown>, fields: string[]): Record<string, string>;
5357
6122
  //#endregion
5358
- export { ReorderMenuItemsInput as $, HookPipeline as $n, handleContentUnschedule as $r, ContentEntry as $t, getEntriesByTerm as A, PortableTextCodeBlock as An, RevisionResponse as Ar, pluginManifestSchema as At, TaxonomyTerm as B, ProseMirrorNode as Bn, handleContentDelete as Br, invalidateMenuObjectCache as Bt, ReorderWidgetsInput as C, getDb as Cn, MediaResponse as Cr, NoopSandboxRunner as Ct, WidgetComponentDef as D, hashString as Dn, handleMediaList as Dr, PluginManager as Dt, WidgetArea as E, computeContentHash as En, handleMediaGet as Er, NodeCronScheduler as Et, getTerm as F, PortableTextSpan as Fn, handleContentAuthors as Fr, contentNamespace as Ft, getEntriesByByline as G, Section as Gn, handleContentList as Gr, getFallbackChain as Gt, UpdateTermInput as H, getSections as Hn, handleContentDuplicate as Hr, invalidateSchemaObjectCache as Ht, getTermsForEntries as I, PortableTextTextBlock as In, handleContentCompare as Ir, contentNamespaces as It, CreateMenuInput as J, SandboxedPluginEntry as Jn, handleContentPublish as Jr, WaitUntilFn as Jt, getMenu as K, SectionSource as Kn, handleContentListTrashed as Kr, getI18nConfig as Kt, invalidateTermCache as L, PortableTextUnknownBlock as Ln, handleContentCountScheduled as Lr, invalidateBylineObjectCache as Lt, getTaxonomyDef as M, PortableTextImageBlock as Mn, handleRevisionList as Mr, CacheNamespace as Mt, getTaxonomyDefs as N, PortableTextLinkMark as Nn, handleRevisionRestore as Nr, CachedQueryOptions as Nt, WidgetType as O, portableTextToProsemirror as On, handleMediaUpdate as Or, createPluginManager as Ot, getTaxonomyTerms as P, PortableTextMarkDef as Pn, generateManifest as Pr, cachedQuery as Pt, MenuItemType as Q, EmailPipeline as Qn, handleContentUnpublish as Qr, CollectionResult as Qt, CreateTermInput as R, ProseMirrorDocument as Rn, handleContentCountTrashed as Rr, invalidateCollectionCache as Rt, PropDef as S, emdashLoader as Sn, MediaListResponse as Sr, verifyPreviewToken as St, Widget as T, sanitizeHref as Tn, handleMediaDelete as Tr, createNoopSandboxRunner as Tt, getByline as U, CreateSectionInput as Un, handleContentGet as Ur, invalidateTaxonomyObjectCache as Ut, TaxonomyTermRow as V, getSection as Vn, handleContentDiscardDraft as Vr, invalidateObjectCache as Vt, getBylineBySlug as W, GetSectionsOptions as Wn, handleContentGetIncludingTrashed as Wr, I18nConfig as Wt, Menu as X, SystemCleanupFn as Xn, handleContentSchedule as Xr, CacheHint as Xt, CreateMenuItemInput as Y, CronScheduler as Yn, handleContentRestore as Yr, after as Yt, MenuItem as Z, PluginRouteError as Zn, handleContentTranslations as Zr, CollectionFilter as Zt, getWidgetArea as _, EmDashDatabaseError as _i, CollectionFilter$1 as _n, StorageDescriptor as _r, PreviewTokenPayload as _t, search as a, FieldDefinition as ai, TranslationSummary as an, SandboxEmailSendCallback as ar, getComments as at, CreateWidgetAreaInput as b, WhereRange as bn, SchemaRegistry as br, generatePreviewToken as bt, FTSManager as c, ImageValue as ci, getEmDashCollection as cn, SandboxRunnerFactory as cr, getSiteSetting as ct, SearchOptions as d, UserRepository as di, resolveEmDashPath as dn, SerializedRequest as dr, getPreviewToken as dt, handleContentUpdate as ei, EditFieldMeta as en, HookResult as er, UpdateMenuInput as et, SearchResponse as f, CreateMediaInput as fi, CMSAnnotation as fn, EmDashConfig as fr, isPreviewRequest as ft, Suggestion as g, DatabaseConfig as gi, createNoop as gn, S3StorageConfig as gr, GeneratePreviewTokenOptions as gt, SuggestOptions as h, ContentRepository as hi, createEditable as hn, LocalStorageConfig as hr, getPreviewUrl as ht, getSuggestions as i, image as ii, ResolvePathResult as in, SandboxEmailMessage as ir, getCommentCount as it, getEntryTerms as j, PortableTextHtmlBlock as jn, handleRevisionGet as jr, definePlugin as jt, getAllTermsForEntries as k, prosemirrorToPortableText as kn, RevisionListResponse as kr, ValidatedPluginManifest as kt, CollectionSearchOptions as l, PortableTextBlock$1 as li, getEmDashEntry as ln, SandboxUnavailableError as lr, getSiteSettings as lt, SearchStats as m, MediaRepository as mi, FieldAnnotation as mn, getStoredConfig as mr, buildPreviewUrl as mt, extractSearchableFields as n, reference as ni, EntryResult as nn, createHttpAccess as nr, GetCommentsOptions as nt, searchCollection as o, FieldUIHints as oi, TranslationsResult as on, SandboxOptions as or, getPluginSetting as ot, SearchResult as p, MediaItem as pi, EditProxy as pn, PluginDescriptor as pr, GetPreviewUrlOptions as pt, getMenus as q, UpdateSectionInput as qn, handleContentPermanentDelete as qr, isI18nEnabled as qt, getSearchStats as r, file as ri, InferCollectionData as rn, createUnrestrictedHttpAccess as rr, GetCommentsResult as rt, searchWithDb as s, FileValue as si, getEditMeta as sn, SandboxRunner as sr, getPluginSettings as st, extractPlainText as t, portableText as ti, EmDashCollections as tn, createHookPipeline as tr, UpdateMenuItemInput as tt, SearchConfig as u, PluginStorageRepository as ui, getTranslations as un, SandboxedPluginInstance as ur, setSiteSettings as ut, getWidgetAreas as v, EntryData as vn, getCollectionInfo as vr, VerifyPreviewTokenOptions as vt, UpdateWidgetInput as w, isSafeHref as wn, handleMediaCreate as wr, SandboxNotAvailableError as wt, CreateWidgetInput as x, WhereValue as xn, markContentMediaUsageCollectionStaleSafely as xr, parseContentId as xt, getWidgetComponents as y, EntryFilter as yn, SchemaError as yr, VerifyPreviewTokenResult as yt, TaxonomyDef as z, ProseMirrorMark as zn, handleContentCreate as zr, invalidateCommentObjectCache as zt };
5359
- //# sourceMappingURL=index-BXOCyLj0.d.mts.map
6123
+ export { ReorderMenuItemsInput as $, PluginRouteError as $n, handleContentSchedule as $r, ContentEntry as $t, getEntriesByTerm as A, PortableTextCodeBlock as An, handleMediaList as Ar, pluginManifestSchema as At, TaxonomyTerm as B, ProseMirrorNode as Bn, handleContentCountScheduled as Br, invalidateMenuObjectCache as Bt, ReorderWidgetsInput as C, getDb as Cn, SchemaRegistry as Cr, NoopSandboxRunner as Ct, WidgetComponentDef as D, hashString as Dn, handleMediaCreate as Dr, PluginManager as Dt, WidgetArea as E, computeContentHash as En, MediaResponse as Er, NodeCronScheduler as Et, getTerm as F, PortableTextSpan as Fn, handleRevisionList as Fr, contentNamespace as Ft, getEntriesByByline as G, Section as Gn, handleContentDuplicate as Gr, getFallbackChain as Gt, UpdateTermInput as H, getSections as Hn, handleContentCreate as Hr, invalidateSchemaObjectCache as Ht, getTermsForEntries as I, PortableTextTextBlock as In, handleRevisionRestore as Ir, contentNamespaces as It, CreateMenuInput as J, EmDashRuntime as Jn, handleContentList as Jr, WaitUntilFn as Jt, getMenu as K, SectionSource as Kn, handleContentGet as Kr, getI18nConfig as Kt, invalidateTermCache as L, PortableTextUnknownBlock as Ln, generateManifest as Lr, invalidateBylineObjectCache as Lt, getTaxonomyDef as M, PortableTextImageBlock as Mn, RevisionListResponse as Mr, CacheNamespace as Mt, getTaxonomyDefs as N, PortableTextLinkMark as Nn, RevisionResponse as Nr, CachedQueryOptions as Nt, WidgetType as O, portableTextToProsemirror as On, handleMediaDelete as Or, createPluginManager as Ot, getTaxonomyTerms as P, PortableTextMarkDef as Pn, handleRevisionGet as Pr, cachedQuery as Pt, MenuItemType as Q, SystemCleanupFn as Qn, handleContentRestore as Qr, CollectionResult as Qt, CreateTermInput as R, ProseMirrorDocument as Rn, handleContentAuthors as Rr, invalidateCollectionCache as Rt, PropDef as S, emdashLoader as Sn, SchemaError as Sr, verifyPreviewToken as St, Widget as T, sanitizeHref as Tn, MediaListResponse as Tr, createNoopSandboxRunner as Tt, getByline as U, CreateSectionInput as Un, handleContentDelete as Ur, invalidateTaxonomyObjectCache as Ut, TaxonomyTermRow as V, getSection as Vn, handleContentCountTrashed as Vr, invalidateObjectCache as Vt, getBylineBySlug as W, GetSectionsOptions as Wn, handleContentDiscardDraft as Wr, I18nConfig as Wt, Menu as X, PublishedRef as Xn, handleContentPermanentDelete as Xr, CacheHint as Xt, CreateMenuItemInput as Y, SandboxedPluginEntry as Yn, handleContentListTrashed as Yr, after as Yt, MenuItem as Z, CronScheduler as Zn, handleContentPublish as Zr, CollectionFilter as Zt, getWidgetArea as _, MediaRepository as _i, CollectionFilter$1 as _n, getStoredConfig as _r, PreviewTokenPayload as _t, search as a, reference as ai, TranslationSummary as an, createHttpAccess as ar, getComments as at, CreateWidgetAreaInput as b, EmDashDatabaseError as bi, WhereRange as bn, StorageDescriptor as br, generatePreviewToken as bt, FTSManager as c, FieldDefinition as ci, getEmDashCollection as cn, SandboxEmailSendCallback as cr, getSiteSetting as ct, SearchOptions as d, ImageValue as di, resolveEmDashPath as dn, SandboxRunnerFactory as dr, getPreviewToken as dt, handleContentTranslations as ei, EditFieldMeta as en, RouteMeta as er, UpdateMenuInput as et, SearchResponse as f, PortableTextBlock$1 as fi, CMSAnnotation as fn, SandboxUnavailableError as fr, isPreviewRequest as ft, Suggestion as g, MediaItem as gi, createNoop as gn, PluginDescriptor as gr, GeneratePreviewTokenOptions as gt, SuggestOptions as h, CreateMediaInput as hi, createEditable as hn, EmDashConfig as hr, getPreviewUrl as ht, getSuggestions as i, portableText as ii, ResolvePathResult as in, createHookPipeline as ir, getCommentCount as it, getEntryTerms as j, PortableTextHtmlBlock as jn, handleMediaUpdate as jr, definePlugin as jt, getAllTermsForEntries as k, prosemirrorToPortableText as kn, handleMediaGet as kr, ValidatedPluginManifest as kt, CollectionSearchOptions as l, FieldUIHints as li, getEmDashEntry as ln, SandboxOptions as lr, getSiteSettings as lt, SearchStats as m, UserRepository as mi, FieldAnnotation as mn, SerializedRequest as mr, buildPreviewUrl as mt, extractSearchableFields as n, handleContentUnschedule as ni, EntryResult as nn, HookPipeline as nr, GetCommentsOptions as nt, searchCollection as o, file as oi, TranslationsResult as on, createUnrestrictedHttpAccess as or, getPluginSetting as ot, SearchResult as p, PluginStorageRepository as pi, EditProxy as pn, SandboxedPluginInstance as pr, GetPreviewUrlOptions as pt, getMenus as q, UpdateSectionInput as qn, handleContentGetIncludingTrashed as qr, isI18nEnabled as qt, getSearchStats as r, handleContentUpdate as ri, InferCollectionData as rn, HookResult as rr, GetCommentsResult as rt, searchWithDb as s, image as si, getEditMeta as sn, SandboxEmailMessage as sr, getPluginSettings as st, extractPlainText as t, handleContentUnpublish as ti, EmDashCollections as tn, EmailPipeline as tr, UpdateMenuItemInput as tt, SearchConfig as u, FileValue as ui, getTranslations as un, SandboxRunner as ur, setSiteSettings as ut, getWidgetAreas as v, ContentRepository as vi, EntryData as vn, LocalStorageConfig as vr, VerifyPreviewTokenOptions as vt, UpdateWidgetInput as w, isSafeHref as wn, markContentMediaUsageCollectionStaleSafely as wr, SandboxNotAvailableError as wt, CreateWidgetInput as x, WhereValue as xn, getCollectionInfo as xr, parseContentId as xt, getWidgetComponents as y, DatabaseConfig as yi, EntryFilter as yn, S3StorageConfig as yr, VerifyPreviewTokenResult as yt, TaxonomyDef as z, ProseMirrorMark as zn, handleContentCompare as zr, invalidateCommentObjectCache as zt };
6124
+ //# sourceMappingURL=index-wYnC6u4o.d.mts.map