emdash 0.33.0 → 0.35.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 (916) hide show
  1. package/dist/{adapters-BMyNSSZi.d.mts → adapters-Bb1vG41D.d.mts} +33 -2
  2. package/dist/adapters-Bb1vG41D.d.mts.map +1 -0
  3. package/dist/{allowed-origins-CG1pACtS.mjs → allowed-origins-DW7sYyqg.mjs} +2 -2
  4. package/dist/{allowed-origins-CG1pACtS.mjs.map → allowed-origins-DW7sYyqg.mjs.map} +1 -1
  5. package/dist/api/route-utils.d.mts +3 -3
  6. package/dist/api/route-utils.mjs +22 -21
  7. package/dist/api/route-utils.mjs.map +1 -1
  8. package/dist/api/schemas/index.d.mts +2 -2
  9. package/dist/api/schemas/index.mjs +6 -5
  10. package/dist/{api-D2hunekQ.mjs → api-BeBglVxU.mjs} +98 -407
  11. package/dist/api-BeBglVxU.mjs.map +1 -0
  12. package/dist/{api-tokens-CSND0i1z.mjs → api-tokens-KO24G1Fd.mjs} +2 -2
  13. package/dist/{api-tokens-CSND0i1z.mjs.map → api-tokens-KO24G1Fd.mjs.map} +1 -1
  14. package/dist/{apply-kwNEJW2l.mjs → apply-kUDt80-G.mjs} +131 -107
  15. package/dist/apply-kUDt80-G.mjs.map +1 -0
  16. package/dist/astro/index.d.mts +12 -12
  17. package/dist/astro/index.d.mts.map +1 -1
  18. package/dist/astro/index.mjs +163 -49
  19. package/dist/astro/index.mjs.map +1 -1
  20. package/dist/astro/middleware/auth.d.mts +10 -10
  21. package/dist/astro/middleware/auth.mjs +8 -8
  22. package/dist/astro/middleware/media-usage-write-fence.d.mts +7 -0
  23. package/dist/astro/middleware/media-usage-write-fence.d.mts.map +1 -0
  24. package/dist/astro/middleware/media-usage-write-fence.mjs +35 -0
  25. package/dist/astro/middleware/media-usage-write-fence.mjs.map +1 -0
  26. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  27. package/dist/astro/middleware/redirect.mjs +10 -7
  28. package/dist/astro/middleware/redirect.mjs.map +1 -1
  29. package/dist/astro/middleware/request-context.mjs +3 -3
  30. package/dist/astro/middleware/setup.mjs +1 -1
  31. package/dist/astro/middleware.d.mts +12 -11
  32. package/dist/astro/middleware.d.mts.map +1 -1
  33. package/dist/astro/middleware.mjs +1763 -173
  34. package/dist/astro/middleware.mjs.map +1 -1
  35. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +9 -8
  36. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
  37. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +9 -8
  38. package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
  39. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +5 -5
  40. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
  41. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -6
  42. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +12 -11
  43. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
  44. package/dist/astro/routes/api/admin/byline-fields/index.mjs +12 -11
  45. package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
  46. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +12 -11
  47. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
  48. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +17 -17
  49. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +17 -17
  50. package/dist/astro/routes/api/admin/bylines/index.mjs +17 -17
  51. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +14 -13
  52. package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
  53. package/dist/astro/routes/api/admin/comments/_id_.mjs +6 -6
  54. package/dist/astro/routes/api/admin/comments/bulk.mjs +12 -11
  55. package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
  56. package/dist/astro/routes/api/admin/comments/counts.mjs +6 -6
  57. package/dist/astro/routes/api/admin/comments/index.mjs +12 -11
  58. package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +5 -5
  60. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +4 -4
  61. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.d.mts +8 -0
  62. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.d.mts.map +1 -0
  63. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +36 -0
  64. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -0
  65. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.d.mts +8 -0
  66. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.d.mts.map +1 -0
  67. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +36 -0
  68. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -0
  69. package/dist/astro/routes/api/admin/media-usage/repair.mjs +15 -14
  70. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  71. package/dist/astro/routes/api/admin/media-usage/work/index.d.mts +8 -0
  72. package/dist/astro/routes/api/admin/media-usage/work/index.d.mts.map +1 -0
  73. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +37 -0
  74. package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -0
  75. package/dist/astro/routes/api/admin/media-usage/work/retry.d.mts +8 -0
  76. package/dist/astro/routes/api/admin/media-usage/work/retry.d.mts.map +1 -0
  77. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +37 -0
  78. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -0
  79. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -5
  80. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -5
  81. package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts.map +1 -1
  82. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +51 -43
  83. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
  84. package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts.map +1 -1
  85. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +51 -43
  86. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
  87. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +47 -42
  88. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  89. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +6 -6
  90. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +47 -42
  91. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  92. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.d.mts.map +1 -1
  93. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +50 -42
  94. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  95. package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts.map +1 -1
  96. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +50 -42
  97. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/plugins/index.mjs +47 -42
  99. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  100. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +4 -4
  101. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +47 -42
  102. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  103. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts.map +1 -1
  104. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +50 -42
  105. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  106. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +47 -42
  107. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  108. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.d.mts.map +1 -1
  109. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +50 -42
  110. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  111. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.d.mts.map +1 -1
  112. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +51 -43
  113. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  114. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +47 -42
  115. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  116. package/dist/astro/routes/api/admin/plugins/registry/install.d.mts.map +1 -1
  117. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +51 -43
  118. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  119. package/dist/astro/routes/api/admin/plugins/updates.mjs +47 -42
  120. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  121. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +47 -42
  122. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  123. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +4 -4
  124. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +47 -42
  125. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  126. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -3
  127. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -3
  128. package/dist/astro/routes/api/admin/users/_id_/index.mjs +9 -8
  129. package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
  130. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +4 -4
  131. package/dist/astro/routes/api/admin/users/index.mjs +9 -8
  132. package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
  133. package/dist/astro/routes/api/auth/dev-bypass.d.mts.map +1 -1
  134. package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -9
  135. package/dist/astro/routes/api/auth/dev-bypass.mjs.map +1 -1
  136. package/dist/astro/routes/api/auth/invite/accept.mjs +3 -3
  137. package/dist/astro/routes/api/auth/invite/complete.mjs +13 -12
  138. package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
  139. package/dist/astro/routes/api/auth/invite/index.mjs +10 -9
  140. package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
  141. package/dist/astro/routes/api/auth/invite/register-options.mjs +12 -11
  142. package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
  143. package/dist/astro/routes/api/auth/logout.mjs +4 -4
  144. package/dist/astro/routes/api/auth/magic-link/send.mjs +12 -11
  145. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  146. package/dist/astro/routes/api/auth/magic-link/verify.mjs +4 -4
  147. package/dist/astro/routes/api/auth/me.mjs +10 -9
  148. package/dist/astro/routes/api/auth/me.mjs.map +1 -1
  149. package/dist/astro/routes/api/auth/mode.mjs +4 -4
  150. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
  151. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  152. package/dist/astro/routes/api/auth/passkey/_id_.mjs +9 -8
  153. package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
  154. package/dist/astro/routes/api/auth/passkey/index.mjs +3 -3
  155. package/dist/astro/routes/api/auth/passkey/options.mjs +14 -13
  156. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  157. package/dist/astro/routes/api/auth/passkey/register/options.mjs +12 -11
  158. package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
  159. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +13 -12
  160. package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
  161. package/dist/astro/routes/api/auth/passkey/verify.mjs +13 -12
  162. package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
  163. package/dist/astro/routes/api/auth/signup/complete.mjs +13 -12
  164. package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
  165. package/dist/astro/routes/api/auth/signup/request.mjs +12 -11
  166. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  167. package/dist/astro/routes/api/auth/signup/verify.mjs +3 -3
  168. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +15 -14
  169. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -1
  170. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +14 -13
  171. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
  172. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -4
  173. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +5 -5
  174. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  175. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -4
  176. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +13 -13
  177. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +11 -10
  178. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  179. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +18 -17
  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 -5
  184. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -4
  185. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +11 -10
  186. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  187. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -1
  188. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +44 -31
  189. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  190. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -4
  191. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +5 -5
  192. package/dist/astro/routes/api/content/_collection_/_id_.mjs +11 -10
  193. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  194. package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -4
  195. package/dist/astro/routes/api/content/_collection_/index.mjs +11 -10
  196. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  197. package/dist/astro/routes/api/content/_collection_/trash.mjs +10 -9
  198. package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
  199. package/dist/astro/routes/api/dashboard.mjs +10 -8
  200. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  201. package/dist/astro/routes/api/dev/emails.mjs +4 -4
  202. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  203. package/dist/astro/routes/api/import/probe.mjs +18 -16
  204. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  205. package/dist/astro/routes/api/import/wordpress/analyze.mjs +5 -5
  206. package/dist/astro/routes/api/import/wordpress/execute.d.mts +11 -11
  207. package/dist/astro/routes/api/import/wordpress/execute.mjs +15 -15
  208. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  209. package/dist/astro/routes/api/import/wordpress/media.d.mts +10 -10
  210. package/dist/astro/routes/api/import/wordpress/media.mjs +14 -12
  211. package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
  212. package/dist/astro/routes/api/import/wordpress/prepare.mjs +13 -12
  213. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  214. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +11 -11
  215. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +14 -14
  216. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  217. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +18 -16
  218. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  219. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
  220. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +11 -11
  221. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +28 -27
  222. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  223. package/dist/astro/routes/api/manifest.mjs +5 -5
  224. package/dist/astro/routes/api/mcp.d.mts.map +1 -1
  225. package/dist/astro/routes/api/mcp.mjs +174 -72
  226. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  227. package/dist/astro/routes/api/media/_id_/confirm.mjs +13 -11
  228. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  229. package/dist/astro/routes/api/media/_id_/upload.mjs +6 -6
  230. package/dist/astro/routes/api/media/_id_/usage.mjs +17 -16
  231. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  232. package/dist/astro/routes/api/media/_id_.mjs +16 -15
  233. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  234. package/dist/astro/routes/api/media/file/_...key_.mjs +3 -3
  235. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
  236. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
  237. package/dist/astro/routes/api/media/providers/index.mjs +4 -4
  238. package/dist/astro/routes/api/media/upload-url.mjs +11 -10
  239. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  240. package/dist/astro/routes/api/media.mjs +18 -15
  241. package/dist/astro/routes/api/media.mjs.map +1 -1
  242. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +11 -11
  243. package/dist/astro/routes/api/menus/_name_/items.mjs +11 -11
  244. package/dist/astro/routes/api/menus/_name_/reorder.mjs +11 -11
  245. package/dist/astro/routes/api/menus/_name_/translations.mjs +11 -11
  246. package/dist/astro/routes/api/menus/_name_.mjs +11 -11
  247. package/dist/astro/routes/api/menus/index.mjs +11 -11
  248. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  249. package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -7
  250. package/dist/astro/routes/api/oauth/device/code.mjs +10 -10
  251. package/dist/astro/routes/api/oauth/device/token.mjs +9 -9
  252. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  253. package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -7
  254. package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -7
  255. package/dist/astro/routes/api/oauth/token.mjs +7 -7
  256. package/dist/astro/routes/api/openapi.json.mjs +152 -6
  257. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  258. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts.map +1 -1
  259. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +8 -7
  260. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
  261. package/dist/astro/routes/api/redirects/404s/index.mjs +12 -11
  262. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  263. package/dist/astro/routes/api/redirects/404s/summary.mjs +12 -11
  264. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  265. package/dist/astro/routes/api/redirects/_id_.mjs +13 -12
  266. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  267. package/dist/astro/routes/api/redirects/index.mjs +13 -12
  268. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  269. package/dist/astro/routes/api/relations/_id_/index.mjs +18 -17
  270. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  271. package/dist/astro/routes/api/relations/_id_/translations.mjs +13 -12
  272. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +1 -1
  273. package/dist/astro/routes/api/relations/index.mjs +18 -17
  274. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  275. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -4
  276. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +5 -5
  277. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +47 -42
  278. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  279. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +47 -42
  280. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  281. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +47 -42
  282. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  283. package/dist/astro/routes/api/schema/collections/_slug_/index.d.mts.map +1 -1
  284. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +47 -42
  285. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  286. package/dist/astro/routes/api/schema/collections/index.mjs +47 -42
  287. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  288. package/dist/astro/routes/api/schema/collections/reorder.mjs +47 -42
  289. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  290. package/dist/astro/routes/api/schema/index.mjs +10 -9
  291. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  292. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +47 -42
  293. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  294. package/dist/astro/routes/api/schema/orphans/index.mjs +47 -42
  295. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  296. package/dist/astro/routes/api/search/enable.mjs +13 -13
  297. package/dist/astro/routes/api/search/index.mjs +12 -12
  298. package/dist/astro/routes/api/search/rebuild.mjs +13 -13
  299. package/dist/astro/routes/api/search/stats.mjs +8 -8
  300. package/dist/astro/routes/api/search/suggest.mjs +12 -12
  301. package/dist/astro/routes/api/sections/_slug_.mjs +12 -11
  302. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  303. package/dist/astro/routes/api/sections/index.mjs +12 -11
  304. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  305. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  306. package/dist/astro/routes/api/settings/backups/archives/index.mjs +6 -6
  307. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  308. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  309. package/dist/astro/routes/api/settings/email.mjs +5 -5
  310. package/dist/astro/routes/api/settings.mjs +14 -13
  311. package/dist/astro/routes/api/settings.mjs.map +1 -1
  312. package/dist/astro/routes/api/setup/admin-verify.mjs +14 -13
  313. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  314. package/dist/astro/routes/api/setup/admin.mjs +13 -12
  315. package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
  316. package/dist/astro/routes/api/setup/dev-bypass.d.mts.map +1 -1
  317. package/dist/astro/routes/api/setup/dev-bypass.mjs +30 -31
  318. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  319. package/dist/astro/routes/api/setup/dev-reset.mjs +3 -3
  320. package/dist/astro/routes/api/setup/index.d.mts.map +1 -1
  321. package/dist/astro/routes/api/setup/index.mjs +31 -35
  322. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  323. package/dist/astro/routes/api/setup/status.mjs +5 -5
  324. package/dist/astro/routes/api/snapshot.mjs +8 -8
  325. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +16 -15
  326. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  327. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +16 -15
  328. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  329. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +16 -15
  330. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  331. package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts.map +1 -1
  332. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +18 -16
  333. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  334. package/dist/astro/routes/api/taxonomies/_name_/translations.d.mts +8 -0
  335. package/dist/astro/routes/api/taxonomies/_name_/translations.d.mts.map +1 -0
  336. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +46 -0
  337. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -0
  338. package/dist/astro/routes/api/taxonomies/_name_.d.mts +19 -0
  339. package/dist/astro/routes/api/taxonomies/_name_.d.mts.map +1 -0
  340. package/dist/astro/routes/api/taxonomies/_name_.mjs +88 -0
  341. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -0
  342. package/dist/astro/routes/api/taxonomies/index.mjs +16 -15
  343. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  344. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  345. package/dist/astro/routes/api/typegen.mjs +6 -6
  346. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  347. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  348. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  349. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +10 -9
  350. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  351. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +12 -11
  352. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  353. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +12 -11
  354. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  355. package/dist/astro/routes/api/widget-areas/_name_.mjs +7 -6
  356. package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
  357. package/dist/astro/routes/api/widget-areas/index.mjs +12 -11
  358. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  359. package/dist/astro/routes/api/widget-components.mjs +4 -4
  360. package/dist/astro/routes/robots.txt.mjs +7 -6
  361. package/dist/astro/routes/robots.txt.mjs.map +1 -1
  362. package/dist/astro/routes/sitemap-_collection_.xml.mjs +10 -10
  363. package/dist/astro/routes/sitemap.xml.mjs +8 -7
  364. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  365. package/dist/astro/types.d.mts +35 -17
  366. package/dist/astro/types.d.mts.map +1 -1
  367. package/dist/auth/providers/github.d.mts +1 -1
  368. package/dist/auth/providers/google.d.mts +1 -1
  369. package/dist/{authorize-qRhWQnel.mjs → authorize-DUElxgOQ.mjs} +2 -2
  370. package/dist/{authorize-qRhWQnel.mjs.map → authorize-DUElxgOQ.mjs.map} +1 -1
  371. package/dist/{backup-CtA6LDNw.mjs → backup-DWYpJlLj.mjs} +4 -4
  372. package/dist/{backup-CtA6LDNw.mjs.map → backup-DWYpJlLj.mjs.map} +1 -1
  373. package/dist/{base64-B-PsqheR.mjs → base64-CvLhUKQv.mjs} +1 -1
  374. package/dist/{base64-B-PsqheR.mjs.map → base64-CvLhUKQv.mjs.map} +1 -1
  375. package/dist/bundle-vn56sLos.mjs +663 -0
  376. package/dist/bundle-vn56sLos.mjs.map +1 -0
  377. package/dist/{byline-fields-CNc0Yq5i.mjs → byline-fields-txaLGoME.mjs} +2 -2
  378. package/dist/{byline-fields-CNc0Yq5i.mjs.map → byline-fields-txaLGoME.mjs.map} +1 -1
  379. package/dist/{byline-registry-ZkPKqEwC.mjs → byline-registry-DDun8sxh.mjs} +2 -2
  380. package/dist/{byline-registry-ZkPKqEwC.mjs.map → byline-registry-DDun8sxh.mjs.map} +1 -1
  381. package/dist/{byline-Cp6csL84.mjs → byline-yjvWq4ip.mjs} +5 -5
  382. package/dist/{byline-Cp6csL84.mjs.map → byline-yjvWq4ip.mjs.map} +1 -1
  383. package/dist/{bylines-cf-C9lmF.mjs → bylines-Bu7pchQ4.mjs} +5 -5
  384. package/dist/{bylines-cf-C9lmF.mjs.map → bylines-Bu7pchQ4.mjs.map} +1 -1
  385. package/dist/{bylines-CEj5CdT4.mjs → bylines-DjXS5p0P.mjs} +7 -7
  386. package/dist/{bylines-CEj5CdT4.mjs.map → bylines-DjXS5p0P.mjs.map} +1 -1
  387. package/dist/{cache-C9FptTFR.mjs → cache-C46-3Irl.mjs} +3 -3
  388. package/dist/{cache-C9FptTFR.mjs.map → cache-C46-3Irl.mjs.map} +1 -1
  389. package/dist/{challenge-store-D9VNKELo.mjs → challenge-store-SIL5DsF2.mjs} +1 -1
  390. package/dist/{challenge-store-D9VNKELo.mjs.map → challenge-store-SIL5DsF2.mjs.map} +1 -1
  391. package/dist/{chunks-DbYzib_k.mjs → chunks-fiZ8G9RJ.mjs} +2 -2
  392. package/dist/{chunks-DbYzib_k.mjs.map → chunks-fiZ8G9RJ.mjs.map} +1 -1
  393. package/dist/cli/index.mjs +655 -677
  394. package/dist/cli/index.mjs.map +1 -1
  395. package/dist/client/cf-access.d.mts +1 -1
  396. package/dist/client/index.d.mts +74 -4
  397. package/dist/client/index.d.mts.map +1 -1
  398. package/dist/client/index.mjs +25 -2
  399. package/dist/client/index.mjs.map +1 -1
  400. package/dist/collection-deletion-DQPvMD8R.mjs +779 -0
  401. package/dist/collection-deletion-DQPvMD8R.mjs.map +1 -0
  402. package/dist/{comment-BIkJ6Fil.mjs → comment-Dxlep6cE.mjs} +2 -2
  403. package/dist/{comment-BIkJ6Fil.mjs.map → comment-Dxlep6cE.mjs.map} +1 -1
  404. package/dist/{comment-reaction-D-laEceb.mjs → comment-reaction-D-2J84UE.mjs} +2 -2
  405. package/dist/{comment-reaction-D-laEceb.mjs.map → comment-reaction-D-2J84UE.mjs.map} +1 -1
  406. package/dist/{comments-0_w6KChA.mjs → comments-CTfZtLmM.mjs} +3 -3
  407. package/dist/{comments-0_w6KChA.mjs.map → comments-CTfZtLmM.mjs.map} +1 -1
  408. package/dist/{components-BPxrRjpE.mjs → components-CQy3lh9x.mjs} +1 -1
  409. package/dist/{components-BPxrRjpE.mjs.map → components-CQy3lh9x.mjs.map} +1 -1
  410. package/dist/{config-DyF3OKg_.mjs → config-C3EBstHi.mjs} +18 -2
  411. package/dist/config-C3EBstHi.mjs.map +1 -0
  412. package/dist/config-COQzTe5Q.d.mts +34 -0
  413. package/dist/config-COQzTe5Q.d.mts.map +1 -0
  414. package/dist/{content-CJ94NEx5.mjs → content-ZHCc1ngN.mjs} +509 -78
  415. package/dist/content-ZHCc1ngN.mjs.map +1 -0
  416. package/dist/content-list-query-wJ2WN8Vp.d.mts +26 -0
  417. package/dist/content-list-query-wJ2WN8Vp.d.mts.map +1 -0
  418. package/dist/content-refresh-B_8SJzuU.mjs +2560 -0
  419. package/dist/content-refresh-B_8SJzuU.mjs.map +1 -0
  420. package/dist/{context-C_1nrqnW.mjs → context-ZldbZcle.mjs} +25 -17
  421. package/dist/context-ZldbZcle.mjs.map +1 -0
  422. package/dist/{cron-DRV-UC4K.mjs → cron-Y9aLtgrA.mjs} +1 -1
  423. package/dist/{cron-DRV-UC4K.mjs.map → cron-Y9aLtgrA.mjs.map} +1 -1
  424. package/dist/{dashboard-DINnNVVU.mjs → dashboard-DvHbk_cv.mjs} +44 -10
  425. package/dist/dashboard-DvHbk_cv.mjs.map +1 -0
  426. package/dist/db/index.d.mts +4 -4
  427. package/dist/db/index.mjs +31 -8
  428. package/dist/db/index.mjs.map +1 -1
  429. package/dist/db/libsql-migrations.d.mts +11 -0
  430. package/dist/db/libsql-migrations.d.mts.map +1 -0
  431. package/dist/db/libsql-migrations.mjs +57 -0
  432. package/dist/db/libsql-migrations.mjs.map +1 -0
  433. package/dist/db/libsql.d.mts +1 -1
  434. package/dist/db/postgres-migrations.d.mts +10 -0
  435. package/dist/db/postgres-migrations.d.mts.map +1 -0
  436. package/dist/db/postgres-migrations.mjs +47 -0
  437. package/dist/db/postgres-migrations.mjs.map +1 -0
  438. package/dist/db/postgres.d.mts +1 -1
  439. package/dist/db/sqlite-migrations.d.mts +10 -0
  440. package/dist/db/sqlite-migrations.d.mts.map +1 -0
  441. package/dist/db/sqlite-migrations.mjs +28 -0
  442. package/dist/db/sqlite-migrations.mjs.map +1 -0
  443. package/dist/db/sqlite.d.mts +1 -1
  444. package/dist/{db-errors-CcWLaRiR.mjs → db-errors-Cl-sKYTm.mjs} +1 -1
  445. package/dist/{db-errors-CcWLaRiR.mjs.map → db-errors-Cl-sKYTm.mjs.map} +1 -1
  446. package/dist/{default-BD2FG0xV.mjs → default-DdDl3fxv.mjs} +1 -1
  447. package/dist/{default-BD2FG0xV.mjs.map → default-DdDl3fxv.mjs.map} +1 -1
  448. package/dist/{deferred-tasks-C-WRCcKo.d.mts → deferred-tasks-SDWxrgzJ.d.mts} +1 -1
  449. package/dist/{deferred-tasks-C-WRCcKo.d.mts.map → deferred-tasks-SDWxrgzJ.d.mts.map} +1 -1
  450. package/dist/{device-flow-CTqd8mud.mjs → device-flow-C0GdD_z8.mjs} +4 -4
  451. package/dist/{device-flow-CTqd8mud.mjs.map → device-flow-C0GdD_z8.mjs.map} +1 -1
  452. package/dist/direct-executor-CDXeJCSs.mjs +85 -0
  453. package/dist/direct-executor-CDXeJCSs.mjs.map +1 -0
  454. package/dist/dist-D_6CKR8z.mjs +810 -0
  455. package/dist/dist-D_6CKR8z.mjs.map +1 -0
  456. package/dist/{email-console-C6WdcWbL.mjs → email-console-BHNjIwiB.mjs} +1 -1
  457. package/dist/{email-console-C6WdcWbL.mjs.map → email-console-BHNjIwiB.mjs.map} +1 -1
  458. package/dist/{enrich-CFJJgxs_.mjs → enrich-_ySMEvEE.mjs} +2 -2
  459. package/dist/{enrich-CFJJgxs_.mjs.map → enrich-_ySMEvEE.mjs.map} +1 -1
  460. package/dist/{error-oh_9i6bR.mjs → error-DupyJZE2.mjs} +3 -3
  461. package/dist/{error-oh_9i6bR.mjs.map → error-DupyJZE2.mjs.map} +1 -1
  462. package/dist/{errors-BucQ8VYz.mjs → errors-CLUPm7aD.mjs} +14 -2
  463. package/dist/errors-CLUPm7aD.mjs.map +1 -0
  464. package/dist/{escape-CXps5F_v.mjs → escape-DUY2r2Zs.mjs} +1 -1
  465. package/dist/{escape-CXps5F_v.mjs.map → escape-DUY2r2Zs.mjs.map} +1 -1
  466. package/dist/{field-defs-cache-WD82dMQq.mjs → field-defs-cache-BzwBlJrR.mjs} +4 -4
  467. package/dist/{field-defs-cache-WD82dMQq.mjs.map → field-defs-cache-BzwBlJrR.mjs.map} +1 -1
  468. package/dist/{fts-manager-BITakW_R.mjs → fts-manager-DyZEohZC.mjs} +76 -50
  469. package/dist/fts-manager-DyZEohZC.mjs.map +1 -0
  470. package/dist/{hreflang-BdZuVBhL.mjs → hreflang-BBe83kKa.mjs} +7 -7
  471. package/dist/{hreflang-BdZuVBhL.mjs.map → hreflang-BBe83kKa.mjs.map} +1 -1
  472. package/dist/{hreflang-BaLCNcDx.d.mts → hreflang-DwT2E0Sa.d.mts} +2 -2
  473. package/dist/{hreflang-BaLCNcDx.d.mts.map → hreflang-DwT2E0Sa.d.mts.map} +1 -1
  474. package/dist/identity-Ys6Dlc9C.mjs +35 -0
  475. package/dist/identity-Ys6Dlc9C.mjs.map +1 -0
  476. package/dist/{import-C-9uqyT3.mjs → import-DPkLmeXO.mjs} +5 -5
  477. package/dist/{import-C-9uqyT3.mjs.map → import-DPkLmeXO.mjs.map} +1 -1
  478. package/dist/{index-M37iz29I.d.mts → index-BVBZj4-7.d.mts} +236 -104
  479. package/dist/index-BVBZj4-7.d.mts.map +1 -0
  480. package/dist/{index-MGw47uWq.d.mts → index-C9KuQyO-.d.mts} +5 -10
  481. package/dist/index-C9KuQyO-.d.mts.map +1 -0
  482. package/dist/index.d.mts +21 -19
  483. package/dist/index.mjs +73 -67
  484. package/dist/{init-lock-DJkX6Hto.mjs → init-lock-6b309ZrF.mjs} +1 -1
  485. package/dist/{init-lock-DJkX6Hto.mjs.map → init-lock-6b309ZrF.mjs.map} +1 -1
  486. package/dist/{load-DV1DZuUJ.mjs → load-YJ2xl3ra.mjs} +2 -2
  487. package/dist/{load-DV1DZuUJ.mjs.map → load-YJ2xl3ra.mjs.map} +1 -1
  488. package/dist/{loader-CGugY7Zl.mjs → loader-CdG_Ci3H.mjs} +95 -53
  489. package/dist/loader-CdG_Ci3H.mjs.map +1 -0
  490. package/dist/manifest-builder-B252yQUf.mjs +189 -0
  491. package/dist/manifest-builder-B252yQUf.mjs.map +1 -0
  492. package/dist/{manifest-schema-Da7kj23y.mjs → manifest-schema-BXbUAHod.mjs} +1 -1
  493. package/dist/{manifest-schema-Da7kj23y.mjs.map → manifest-schema-BXbUAHod.mjs.map} +1 -1
  494. package/dist/media/image-endpoint.mjs +1 -1
  495. package/dist/media/index.d.mts +1 -1
  496. package/dist/media/index.mjs +3 -2
  497. package/dist/media/index.mjs.map +1 -1
  498. package/dist/media/local-runtime.d.mts +12 -12
  499. package/dist/media/local-runtime.mjs +6 -5
  500. package/dist/media/local-runtime.mjs.map +1 -1
  501. package/dist/{media-OhYL-7Io.mjs → media-BWWWb8kg.mjs} +92 -3
  502. package/dist/media-BWWWb8kg.mjs.map +1 -0
  503. package/dist/{media-BP7S-nHT.mjs → media-CzhAn2--.mjs} +2 -2
  504. package/dist/{media-BP7S-nHT.mjs.map → media-CzhAn2--.mjs.map} +1 -1
  505. package/dist/{media-allowlist-D-peH1H5.mjs → media-allowlist-D6x-Us02.mjs} +14 -3
  506. package/dist/media-allowlist-D6x-Us02.mjs.map +1 -0
  507. package/dist/{media-upload-DtrwU2B0.mjs → media-upload-CHBVn6m-.mjs} +10 -8
  508. package/dist/{media-upload-DtrwU2B0.mjs.map → media-upload-CHBVn6m-.mjs.map} +1 -1
  509. package/dist/{media-url-DYs_YLOx.mjs → media-url-BvoX88FA.mjs} +1 -1
  510. package/dist/{media-url-DYs_YLOx.mjs.map → media-url-BvoX88FA.mjs.map} +1 -1
  511. package/dist/{media-usage-BlxfTkN0.mjs → media-usage-BZCydfvu.mjs} +137 -60
  512. package/dist/media-usage-BZCydfvu.mjs.map +1 -0
  513. package/dist/media-usage-work-CLo_6tct.mjs +152 -0
  514. package/dist/media-usage-work-CLo_6tct.mjs.map +1 -0
  515. package/dist/media-usage-work-DrCbqBcl.mjs +424 -0
  516. package/dist/media-usage-work-DrCbqBcl.mjs.map +1 -0
  517. package/dist/media-usage-write-fence-aHEgN1zB.mjs +42 -0
  518. package/dist/media-usage-write-fence-aHEgN1zB.mjs.map +1 -0
  519. package/dist/{menus-Y54RDPIN.mjs → menus-DSo5QeW0.mjs} +351 -95
  520. package/dist/menus-DSo5QeW0.mjs.map +1 -0
  521. package/dist/{menus-BcQWxeXu.mjs → menus-TCNSd2vp.mjs} +3 -3
  522. package/dist/{menus-BcQWxeXu.mjs.map → menus-TCNSd2vp.mjs.map} +1 -1
  523. package/dist/migrations/index.d.mts +22 -0
  524. package/dist/migrations/index.d.mts.map +1 -0
  525. package/dist/migrations/index.mjs +7 -0
  526. package/dist/{mode-BWyTBe3I.mjs → mode-BDoH_WcF.mjs} +1 -1
  527. package/dist/{mode-BWyTBe3I.mjs.map → mode-BDoH_WcF.mjs.map} +1 -1
  528. package/dist/{normalize-C-SHXmra.mjs → normalize-Bc-s_r-a.mjs} +1 -1
  529. package/dist/{normalize-C-SHXmra.mjs.map → normalize-Bc-s_r-a.mjs.map} +1 -1
  530. package/dist/{oauth-authorization-ClvktmrL.mjs → oauth-authorization-iOikmrJd.mjs} +4 -4
  531. package/dist/{oauth-authorization-ClvktmrL.mjs.map → oauth-authorization-iOikmrJd.mjs.map} +1 -1
  532. package/dist/{oauth-clients-8ao-U66l.mjs → oauth-clients-CvI0nHMJ.mjs} +1 -1
  533. package/dist/{oauth-clients-8ao-U66l.mjs.map → oauth-clients-CvI0nHMJ.mjs.map} +1 -1
  534. package/dist/{oauth-state-store-B1ofdTiQ.mjs → oauth-state-store-Ba8KZlwW.mjs} +1 -1
  535. package/dist/{oauth-state-store-B1ofdTiQ.mjs.map → oauth-state-store-Ba8KZlwW.mjs.map} +1 -1
  536. package/dist/{oauth-user-lookup-CscEuIiR.mjs → oauth-user-lookup-C5SQwGYC.mjs} +1 -1
  537. package/dist/{oauth-user-lookup-CscEuIiR.mjs.map → oauth-user-lookup-C5SQwGYC.mjs.map} +1 -1
  538. package/dist/object-cache/memory.d.mts +1 -1
  539. package/dist/{options-CA4eVX6P.d.mts → options--hhz-jZ1.d.mts} +4 -3
  540. package/dist/options--hhz-jZ1.d.mts.map +1 -0
  541. package/dist/page/index.d.mts +2 -2
  542. package/dist/{parse-CJKNuewM.mjs → parse-DFbuc-Fh.mjs} +2 -2
  543. package/dist/{parse-CJKNuewM.mjs.map → parse-DFbuc-Fh.mjs.map} +1 -1
  544. package/dist/{passkey-config-D-zrzMJI.mjs → passkey-config-DFAmUyuE.mjs} +1 -1
  545. package/dist/{passkey-config-D-zrzMJI.mjs.map → passkey-config-DFAmUyuE.mjs.map} +1 -1
  546. package/dist/{placeholder-DaeNS-VG.d.mts → placeholder-Dp0K3RkD.d.mts} +1 -1
  547. package/dist/{placeholder-DaeNS-VG.d.mts.map → placeholder-Dp0K3RkD.d.mts.map} +1 -1
  548. package/dist/plugin-types.d.mts +8 -1
  549. package/dist/plugin-types.d.mts.map +1 -1
  550. package/dist/plugin-utils.d.mts +10 -10
  551. package/dist/plugins/adapt-sandbox-entry.d.mts +10 -10
  552. package/dist/plugins/adapt-sandbox-entry.mjs +7 -4
  553. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  554. package/dist/policy-TluUIxuu.mjs +45 -0
  555. package/dist/policy-TluUIxuu.mjs.map +1 -0
  556. package/dist/{portable-text-B_kqBmXB.mjs → portable-text-imBW5cHK.mjs} +1 -1
  557. package/dist/{portable-text-B_kqBmXB.mjs.map → portable-text-imBW5cHK.mjs.map} +1 -1
  558. package/dist/{preview-BU6PaLpM.mjs → preview-PW-nOnq4.mjs} +2 -2
  559. package/dist/{preview-BU6PaLpM.mjs.map → preview-PW-nOnq4.mjs.map} +1 -1
  560. package/dist/protocol-DjsJHTlK.d.mts +52 -0
  561. package/dist/protocol-DjsJHTlK.d.mts.map +1 -0
  562. package/dist/{public-url-Ox9oOlgp.mjs → public-url-CWoFhQT8.mjs} +1 -1
  563. package/dist/{public-url-Ox9oOlgp.mjs.map → public-url-CWoFhQT8.mjs.map} +1 -1
  564. package/dist/{query-rC9HKv1N.mjs → query-BWs7O5Il.mjs} +3 -3
  565. package/dist/{query-rC9HKv1N.mjs.map → query-BWs7O5Il.mjs.map} +1 -1
  566. package/dist/{query-C5w7PsRQ.mjs → query-zTVAR1Sl.mjs} +31 -49
  567. package/dist/query-zTVAR1Sl.mjs.map +1 -0
  568. package/dist/{rate-limit-kug6q99V.mjs → rate-limit-Bx4g9m3p.mjs} +2 -2
  569. package/dist/{rate-limit-kug6q99V.mjs.map → rate-limit-Bx4g9m3p.mjs.map} +1 -1
  570. package/dist/{redirect-Egf2R9yP.mjs → redirect-BgAOGHDq.mjs} +1 -1
  571. package/dist/{redirect-Egf2R9yP.mjs.map → redirect-BgAOGHDq.mjs.map} +1 -1
  572. package/dist/{redirect-DIJxXKOG.mjs → redirect-COsS6SWJ.mjs} +2 -2
  573. package/dist/{redirect-DIJxXKOG.mjs.map → redirect-COsS6SWJ.mjs.map} +1 -1
  574. package/dist/{redirects-G8wAhWAf.mjs → redirects-DTDHWH31.mjs} +133 -14
  575. package/dist/redirects-DTDHWH31.mjs.map +1 -0
  576. package/dist/{redirects-Bzm812bY.mjs → redirects-DyChwDkG.mjs} +4 -4
  577. package/dist/{redirects-Bzm812bY.mjs.map → redirects-DyChwDkG.mjs.map} +1 -1
  578. package/dist/registry-Cqa2I749.mjs +1275 -0
  579. package/dist/registry-Cqa2I749.mjs.map +1 -0
  580. package/dist/{relation-Cbe3Sd3m.mjs → relation-BnHB0T4J.mjs} +3 -3
  581. package/dist/{relation-Cbe3Sd3m.mjs.map → relation-BnHB0T4J.mjs.map} +1 -1
  582. package/dist/{relations-Bw_E1TXo.mjs → relations-BBApI4e2.mjs} +3 -3
  583. package/dist/{relations-Bw_E1TXo.mjs.map → relations-BBApI4e2.mjs.map} +1 -1
  584. package/dist/{relations-G2ta7GIl.d.mts → relations-BHo5A8Zf.d.mts} +367 -33
  585. package/dist/relations-BHo5A8Zf.d.mts.map +1 -0
  586. package/dist/{relations-qHwpUe66.mjs → relations-D5sM5fW0.mjs} +6 -6
  587. package/dist/{relations-qHwpUe66.mjs.map → relations-D5sM5fW0.mjs.map} +1 -1
  588. package/dist/request-context.d.mts +1 -1
  589. package/dist/{request-meta-Df-jFbAd.mjs → request-meta-DgZJh3zG.mjs} +2 -2
  590. package/dist/{request-meta-Df-jFbAd.mjs.map → request-meta-DgZJh3zG.mjs.map} +1 -1
  591. package/dist/{resolve-DZzG4HqM.mjs → resolve-DOhVEvty.mjs} +2 -2
  592. package/dist/{resolve-DZzG4HqM.mjs.map → resolve-DOhVEvty.mjs.map} +1 -1
  593. package/dist/{runner-BaADli8l.d.mts → runner-BYHZn3Jy.d.mts} +16 -3
  594. package/dist/runner-BYHZn3Jy.d.mts.map +1 -0
  595. package/dist/{runner-BFTrkYhu.mjs → runner-C1T11CfC.mjs} +1190 -257
  596. package/dist/runner-C1T11CfC.mjs.map +1 -0
  597. package/dist/runtime.d.mts +11 -11
  598. package/dist/runtime.mjs +4 -3
  599. package/dist/runtime.mjs.map +1 -1
  600. package/dist/schema-2AOsSn2v.mjs +390 -0
  601. package/dist/schema-2AOsSn2v.mjs.map +1 -0
  602. package/dist/{schema-CiQXr6_F.mjs → schema-DZ5YVVZj.mjs} +3 -3
  603. package/dist/{schema-CiQXr6_F.mjs.map → schema-DZ5YVVZj.mjs.map} +1 -1
  604. package/dist/{scopes-CNJVT5i5.mjs → scopes-8ClPF2bC.mjs} +3 -3
  605. package/dist/{scopes-CNJVT5i5.mjs.map → scopes-8ClPF2bC.mjs.map} +1 -1
  606. package/dist/{search-FZhx5dDU.mjs → search-u1QYdOCG.mjs} +25 -15
  607. package/dist/search-u1QYdOCG.mjs.map +1 -0
  608. package/dist/{secrets-DLd8RXee.mjs → secrets-BEgsAQEU.mjs} +3 -3
  609. package/dist/{secrets-DLd8RXee.mjs.map → secrets-BEgsAQEU.mjs.map} +1 -1
  610. package/dist/{sections-BrIrMUCn.mjs → sections-DmHviGyM.mjs} +3 -3
  611. package/dist/{sections-BrIrMUCn.mjs.map → sections-DmHviGyM.mjs.map} +1 -1
  612. package/dist/seed/index.d.mts +2 -2
  613. package/dist/seed/index.mjs +24 -22
  614. package/dist/seo/index.d.mts +3 -3
  615. package/dist/seo/index.mjs +16 -15
  616. package/dist/seo/index.mjs.map +1 -1
  617. package/dist/{seo-CobNfOvb.mjs → seo-AFpVvTqr.mjs} +5 -3
  618. package/dist/seo-AFpVvTqr.mjs.map +1 -0
  619. package/dist/{seo-DTHRntNC.mjs → seo-Dq4G-RrO.mjs} +2 -2
  620. package/dist/{seo-DTHRntNC.mjs.map → seo-Dq4G-RrO.mjs.map} +1 -1
  621. package/dist/{service-B-pYGPgR.mjs → service-BpArayPr.mjs} +3 -3
  622. package/dist/{service-B-pYGPgR.mjs.map → service-BpArayPr.mjs.map} +1 -1
  623. package/dist/{session-user-BvM9-zNl.mjs → session-user-BEorKVT-.mjs} +1 -1
  624. package/dist/{session-user-BvM9-zNl.mjs.map → session-user-BEorKVT-.mjs.map} +1 -1
  625. package/dist/{settings-DPHau-WH.mjs → settings-DE9xtzqd.mjs} +3 -3
  626. package/dist/{settings-DPHau-WH.mjs.map → settings-DE9xtzqd.mjs.map} +1 -1
  627. package/dist/{settings-kJhGiQ4z.mjs → settings-xRdoUZr0.mjs} +4 -4
  628. package/dist/{settings-kJhGiQ4z.mjs.map → settings-xRdoUZr0.mjs.map} +1 -1
  629. package/dist/{setup-complete-u50Qm8rY.mjs → setup-complete-BnT8pq_C.mjs} +1 -1
  630. package/dist/{setup-complete-u50Qm8rY.mjs.map → setup-complete-BnT8pq_C.mjs.map} +1 -1
  631. package/dist/{setup-nonce-DCjiiOD2.mjs → setup-nonce-CBitf_oQ.mjs} +1 -1
  632. package/dist/{setup-nonce-DCjiiOD2.mjs.map → setup-nonce-CBitf_oQ.mjs.map} +1 -1
  633. package/dist/{single-flight-cache-DW3w11Pu.mjs → single-flight-cache-B0eLKS6K.mjs} +2 -2
  634. package/dist/{single-flight-cache-DW3w11Pu.mjs.map → single-flight-cache-B0eLKS6K.mjs.map} +1 -1
  635. package/dist/{site-url-I-lJ5kma.mjs → site-url-DjpIXMXJ.mjs} +2 -2
  636. package/dist/{site-url-I-lJ5kma.mjs.map → site-url-DjpIXMXJ.mjs.map} +1 -1
  637. package/dist/slugify-B994zkXC.mjs +17 -0
  638. package/dist/slugify-B994zkXC.mjs.map +1 -0
  639. package/dist/{snapshot-I_fjLDaD.mjs → snapshot-BBlGkb2q.mjs} +1 -1
  640. package/dist/{snapshot-I_fjLDaD.mjs.map → snapshot-BBlGkb2q.mjs.map} +1 -1
  641. package/dist/{ssrf-CTa6v21i.mjs → ssrf-Cpvg_n3A.mjs} +1 -1
  642. package/dist/{ssrf-CTa6v21i.mjs.map → ssrf-Cpvg_n3A.mjs.map} +1 -1
  643. package/dist/{state-CQvoefYP.mjs → state-DYwPue40.mjs} +1 -1
  644. package/dist/{state-CQvoefYP.mjs.map → state-DYwPue40.mjs.map} +1 -1
  645. package/dist/{status-CIsmlC1E.mjs → status-CWVYpbD8.mjs} +1 -1
  646. package/dist/{status-CIsmlC1E.mjs.map → status-CWVYpbD8.mjs.map} +1 -1
  647. package/dist/storage/local.d.mts +1 -1
  648. package/dist/storage/local.mjs +3 -3
  649. package/dist/storage/s3.d.mts +1 -1
  650. package/dist/storage/s3.mjs +1 -1
  651. package/dist/target-DixqqV5i.mjs +27 -0
  652. package/dist/target-DixqqV5i.mjs.map +1 -0
  653. package/dist/{taxonomies-CLN1N92E.mjs → taxonomies-BlrncHi9.mjs} +75 -64
  654. package/dist/taxonomies-BlrncHi9.mjs.map +1 -0
  655. package/dist/{taxonomies-CKuaZER5.mjs → taxonomies-OHUIiIpI.mjs} +280 -56
  656. package/dist/taxonomies-OHUIiIpI.mjs.map +1 -0
  657. package/dist/{taxonomy-pOrB2kZe.mjs → taxonomy-BqCZ1TdU.mjs} +131 -78
  658. package/dist/taxonomy-BqCZ1TdU.mjs.map +1 -0
  659. package/dist/{tokens-DagaJGK8.mjs → tokens-C39klX8R.mjs} +2 -2
  660. package/dist/{tokens-DagaJGK8.mjs.map → tokens-C39klX8R.mjs.map} +1 -1
  661. package/dist/{transport-DVsa5YYo.mjs → transport-DBJwa-Si.mjs} +1 -1
  662. package/dist/{transport-DVsa5YYo.mjs.map → transport-DBJwa-Si.mjs.map} +1 -1
  663. package/dist/{transport-CAwTaTp_.d.mts → transport-RQE36APG.d.mts} +1 -1
  664. package/dist/{transport-CAwTaTp_.d.mts.map → transport-RQE36APG.d.mts.map} +1 -1
  665. package/dist/{trusted-proxy-D20_7fyX.mjs → trusted-proxy-CEVekpby.mjs} +1 -1
  666. package/dist/{trusted-proxy-D20_7fyX.mjs.map → trusted-proxy-CEVekpby.mjs.map} +1 -1
  667. package/dist/{types-NBI3rF-_.mjs → types-75KIqzL9.mjs} +18 -2
  668. package/dist/types-75KIqzL9.mjs.map +1 -0
  669. package/dist/{types-BjxTKxrZ.mjs → types-BW1syrlw.mjs} +1 -1
  670. package/dist/{types-BjxTKxrZ.mjs.map → types-BW1syrlw.mjs.map} +1 -1
  671. package/dist/{types-DLG4IFEQ.d.mts → types-BcqdcT-r.d.mts} +1 -1
  672. package/dist/{types-DLG4IFEQ.d.mts.map → types-BcqdcT-r.d.mts.map} +1 -1
  673. package/dist/{types-LoagAGzH.d.mts → types-BntycPTF.d.mts} +1 -1
  674. package/dist/{types-LoagAGzH.d.mts.map → types-BntycPTF.d.mts.map} +1 -1
  675. package/dist/{types-BnFP1M3J.d.mts → types-C2pMvO62.d.mts} +32 -10
  676. package/dist/types-C2pMvO62.d.mts.map +1 -0
  677. package/dist/{types-Cd8iuS1J.mjs → types-CQPWhPxE.mjs} +9 -12
  678. package/dist/types-CQPWhPxE.mjs.map +1 -0
  679. package/dist/{types-C8oz_ayJ.d.mts → types-CXnOzDe1.d.mts} +1 -1
  680. package/dist/{types-C8oz_ayJ.d.mts.map → types-CXnOzDe1.d.mts.map} +1 -1
  681. package/dist/types-CtzytVXn.mjs.map +1 -1
  682. package/dist/{types-BGWPMiBO.d.mts → types-DN64_zzZ.d.mts} +44 -5
  683. package/dist/types-DN64_zzZ.d.mts.map +1 -0
  684. package/dist/{types-Dc4ntQjQ.d.mts → types-DQIDRKF2.d.mts} +124 -1
  685. package/dist/types-DQIDRKF2.d.mts.map +1 -0
  686. package/dist/{types-CbUcuxxc.d.mts → types-DWRhk9xZ.d.mts} +1 -1
  687. package/dist/{types-CbUcuxxc.d.mts.map → types-DWRhk9xZ.d.mts.map} +1 -1
  688. package/dist/{types-BK6U01Ro.d.mts → types-Dfk8KI5R.d.mts} +1 -1
  689. package/dist/{types-BK6U01Ro.d.mts.map → types-Dfk8KI5R.d.mts.map} +1 -1
  690. package/dist/{types-Cz8hNch2.d.mts → types-DrJrVCT1.d.mts} +25 -5
  691. package/dist/types-DrJrVCT1.d.mts.map +1 -0
  692. package/dist/{upload-attempts-D8QAFLUJ.mjs → upload-attempts-D4FS8LT6.mjs} +1 -1
  693. package/dist/{upload-attempts-D8QAFLUJ.mjs.map → upload-attempts-D4FS8LT6.mjs.map} +1 -1
  694. package/dist/url-pattern-BHS0V5Ng.mjs +33 -0
  695. package/dist/url-pattern-BHS0V5Ng.mjs.map +1 -0
  696. package/dist/{user-DBrq4UVq.mjs → user-DJZfUJVE.mjs} +3 -3
  697. package/dist/{user-DBrq4UVq.mjs.map → user-DJZfUJVE.mjs.map} +1 -1
  698. package/dist/{utils-hLzi_2Fn.mjs → utils-D4vD_Y98.mjs} +3 -3
  699. package/dist/{utils-hLzi_2Fn.mjs.map → utils-D4vD_Y98.mjs.map} +1 -1
  700. package/dist/{validate-mKo3RxBM.mjs → validate-BMLBvxOC.mjs} +24 -5
  701. package/dist/validate-BMLBvxOC.mjs.map +1 -0
  702. package/dist/{validate-C3oSmA7F.d.mts → validate-CTqt5nuE.d.mts} +15 -7
  703. package/dist/validate-CTqt5nuE.d.mts.map +1 -0
  704. package/dist/{validation-BgpucsvF.mjs → validation-npvENUCB.mjs} +11 -10
  705. package/dist/{validation-BgpucsvF.mjs.map → validation-npvENUCB.mjs.map} +1 -1
  706. package/dist/version-DB_fqCSI.mjs +7 -0
  707. package/dist/{version-C4PnpmoV.mjs.map → version-DB_fqCSI.mjs.map} +1 -1
  708. package/dist/{widgets-CJJtkiKh.mjs → widgets-BD3ho7Rq.mjs} +3 -3
  709. package/dist/{widgets-CJJtkiKh.mjs.map → widgets-BD3ho7Rq.mjs.map} +1 -1
  710. package/dist/{wxr-taxonomies-9PPSy8X6.mjs → wxr-taxonomies-B1R3vBoD.mjs} +13 -32
  711. package/dist/{wxr-taxonomies-9PPSy8X6.mjs.map → wxr-taxonomies-B1R3vBoD.mjs.map} +1 -1
  712. package/dist/{wxr-taxonomies-Bkpp_2tK.d.mts → wxr-taxonomies-Ca68766D.d.mts} +1 -1
  713. package/dist/{wxr-taxonomies-Bkpp_2tK.d.mts.map → wxr-taxonomies-Ca68766D.d.mts.map} +1 -1
  714. package/dist/{zod-generator-CG64Hnbh.mjs → zod-generator-LC-on_Vb.mjs} +52 -5
  715. package/dist/zod-generator-LC-on_Vb.mjs.map +1 -0
  716. package/package.json +32 -8
  717. package/src/api/errors.ts +12 -0
  718. package/src/api/handlers/content.ts +127 -29
  719. package/src/api/handlers/dashboard.ts +12 -2
  720. package/src/api/handlers/index.ts +16 -0
  721. package/src/api/handlers/manifest.ts +2 -0
  722. package/src/api/handlers/media-allowlist.ts +13 -2
  723. package/src/api/handlers/media-usage-work.ts +188 -0
  724. package/src/api/handlers/media-usage.ts +5 -3
  725. package/src/api/handlers/schema.ts +9 -3
  726. package/src/api/handlers/seo.ts +5 -2
  727. package/src/api/handlers/taxonomies.ts +345 -82
  728. package/src/api/media-usage-write-fence.ts +64 -0
  729. package/src/api/openapi/document.ts +199 -0
  730. package/src/api/schemas/common.ts +3 -1
  731. package/src/api/schemas/content.ts +122 -1
  732. package/src/api/schemas/media-usage.ts +133 -0
  733. package/src/api/schemas/schema.ts +78 -3
  734. package/src/api/schemas/taxonomies.ts +40 -8
  735. package/src/api/types.ts +1 -0
  736. package/src/astro/integration/index.ts +101 -56
  737. package/src/astro/integration/routes.ts +34 -4
  738. package/src/astro/integration/runtime.ts +18 -0
  739. package/src/astro/integration/virtual-modules.ts +25 -1
  740. package/src/astro/integration/vite-config.ts +16 -1
  741. package/src/astro/middleware/media-usage-write-fence.ts +30 -0
  742. package/src/astro/middleware/redirect.ts +12 -2
  743. package/src/astro/middleware/scoped-db.ts +21 -0
  744. package/src/astro/middleware.ts +140 -16
  745. package/src/astro/routes/api/admin/media-usage/collection-deletions/index.ts +22 -0
  746. package/src/astro/routes/api/admin/media-usage/collection-deletions/retry.ts +22 -0
  747. package/src/astro/routes/api/admin/media-usage/work/index.ts +26 -0
  748. package/src/astro/routes/api/admin/media-usage/work/retry.ts +26 -0
  749. package/src/astro/routes/api/admin/plugins/[id]/disable.ts +4 -0
  750. package/src/astro/routes/api/admin/plugins/[id]/enable.ts +4 -0
  751. package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +4 -0
  752. package/src/astro/routes/api/admin/plugins/[id]/update.ts +4 -0
  753. package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +4 -0
  754. package/src/astro/routes/api/admin/plugins/registry/[id]/uninstall.ts +4 -0
  755. package/src/astro/routes/api/admin/plugins/registry/[id]/update.ts +4 -0
  756. package/src/astro/routes/api/admin/plugins/registry/install.ts +4 -0
  757. package/src/astro/routes/api/auth/dev-bypass.ts +0 -4
  758. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +67 -31
  759. package/src/astro/routes/api/import/wordpress/execute.ts +3 -10
  760. package/src/astro/routes/api/mcp.ts +1 -0
  761. package/src/astro/routes/api/plugins/[pluginId]/[...path].ts +7 -1
  762. package/src/astro/routes/api/schema/collections/[slug]/index.ts +1 -7
  763. package/src/astro/routes/api/setup/dev-bypass.ts +2 -7
  764. package/src/astro/routes/api/setup/index.ts +5 -13
  765. package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +1 -0
  766. package/src/astro/routes/api/taxonomies/[name]/translations.ts +48 -0
  767. package/src/astro/routes/api/taxonomies/[name].ts +102 -0
  768. package/src/astro/types.ts +25 -4
  769. package/src/cleanup.ts +6 -12
  770. package/src/cli/commands/doctor.ts +193 -6
  771. package/src/cli/commands/export-seed.ts +4 -1
  772. package/src/cli/commands/migrate.ts +593 -0
  773. package/src/cli/index.ts +2 -23
  774. package/src/client/index.ts +119 -0
  775. package/src/components/Block.astro +12 -0
  776. package/src/components/InlinePortableTextEditor.tsx +89 -1
  777. package/src/content/converters/mark-safety.ts +120 -0
  778. package/src/content/converters/portable-text-to-prosemirror.ts +25 -16
  779. package/src/content/converters/prosemirror-to-portable-text.ts +12 -2
  780. package/src/content-list-query.ts +29 -0
  781. package/src/database/index.ts +8 -2
  782. package/src/database/migrations/060_collection_admin_config.ts +16 -0
  783. package/src/database/migrations/061_media_usage_cleanup.ts +77 -0
  784. package/src/database/migrations/062_media_usage_cleanup_fence.ts +295 -0
  785. package/src/database/migrations/063_media_usage_incremental_work.ts +397 -0
  786. package/src/database/migrations/064_fts_plain_text.ts +253 -0
  787. package/src/database/migrations/065_media_usage_collection_deletion.ts +85 -0
  788. package/src/database/migrations/066_media_usage_reconciliation.ts +115 -0
  789. package/src/database/migrations/067_indexed_content_fields.ts +39 -0
  790. package/src/database/migrations/068_content_taxonomy_entry_groups.ts +61 -0
  791. package/src/database/migrations/069_collection_title_date_fields.ts +45 -0
  792. package/src/database/migrations/070_collection_routable.ts +18 -0
  793. package/src/database/migrations/policy.ts +70 -0
  794. package/src/database/migrations/runner.ts +71 -3
  795. package/src/database/repositories/content.ts +861 -96
  796. package/src/database/repositories/media-usage-work.ts +848 -0
  797. package/src/database/repositories/media-usage.ts +1502 -138
  798. package/src/database/repositories/revision.ts +17 -6
  799. package/src/database/repositories/taxonomy.ts +234 -103
  800. package/src/database/repositories/types.ts +51 -2
  801. package/src/database/types.ts +134 -16
  802. package/src/db/adapters.ts +78 -2
  803. package/src/db/index.ts +6 -1
  804. package/src/db/libsql-migrations.ts +72 -0
  805. package/src/db/postgres-migrations.ts +59 -0
  806. package/src/db/sqlite-migrations.ts +37 -0
  807. package/src/emdash-runtime.ts +271 -35
  808. package/src/fields/file.ts +7 -4
  809. package/src/fields/image.ts +8 -1
  810. package/src/fields/types.ts +18 -5
  811. package/src/i18n/config.ts +32 -0
  812. package/src/i18n/normalize.ts +31 -0
  813. package/src/i18n/repair-locale-casing.ts +0 -14
  814. package/src/i18n/taxonomy-locale-diagnostic.ts +47 -0
  815. package/src/import/wxr-taxonomies.ts +7 -47
  816. package/src/index.ts +32 -3
  817. package/src/loader.ts +119 -65
  818. package/src/mcp/server.ts +242 -34
  819. package/src/media/usage/activation.ts +626 -0
  820. package/src/media/usage/capture-triggers.ts +543 -0
  821. package/src/media/usage/cleanup.ts +305 -0
  822. package/src/media/usage/collection-deletion-processor.ts +356 -0
  823. package/src/media/usage/collection-deletion.ts +836 -0
  824. package/src/media/usage/content-fields.ts +40 -3
  825. package/src/media/usage/content-refresh.ts +356 -47
  826. package/src/media/usage/content-repair.ts +180 -61
  827. package/src/media/usage/content-snapshots.ts +85 -105
  828. package/src/media/usage/projection-fingerprint.ts +129 -0
  829. package/src/media/usage/reconciliation-processor.ts +372 -0
  830. package/src/media/usage/reconciliation.ts +1117 -0
  831. package/src/media/usage/source-key.ts +4 -0
  832. package/src/media/usage/types.ts +2 -0
  833. package/src/media/usage/work-processor.ts +248 -0
  834. package/src/menus/index.ts +246 -141
  835. package/src/migrations/config-loader.ts +205 -0
  836. package/src/migrations/direct-executor.ts +141 -0
  837. package/src/migrations/identity.ts +46 -0
  838. package/src/migrations/index.ts +19 -0
  839. package/src/migrations/integration-metadata.ts +67 -0
  840. package/src/migrations/manifest-builder.ts +55 -0
  841. package/src/migrations/manifest-writer.ts +63 -0
  842. package/src/migrations/manifest.ts +197 -0
  843. package/src/migrations/protocol.ts +59 -0
  844. package/src/migrations/target.ts +35 -0
  845. package/src/plugin-types.ts +8 -0
  846. package/src/plugins/adapt-sandbox-entry.ts +24 -5
  847. package/src/plugins/context.ts +24 -7
  848. package/src/plugins/index.ts +9 -0
  849. package/src/plugins/routes.ts +43 -1
  850. package/src/plugins/sandbox/index.ts +10 -1
  851. package/src/plugins/sandbox/types.ts +78 -1
  852. package/src/plugins/scheduler/node.ts +13 -1
  853. package/src/plugins/scheduler/types.ts +2 -0
  854. package/src/plugins/types.ts +39 -2
  855. package/src/query.ts +29 -37
  856. package/src/scheduler-health.ts +46 -0
  857. package/src/schema/registry.ts +777 -255
  858. package/src/schema/types.ts +50 -8
  859. package/src/schema/url-pattern.ts +33 -0
  860. package/src/schema/zod-generator.ts +77 -5
  861. package/src/search/fts-manager.ts +117 -76
  862. package/src/search/query.ts +32 -11
  863. package/src/search/types.ts +2 -0
  864. package/src/seed/apply.ts +68 -15
  865. package/src/seed/types.ts +11 -3
  866. package/src/seed/validate.ts +52 -2
  867. package/src/taxonomies/index.ts +77 -75
  868. package/src/taxonomies/term-counts.ts +21 -8
  869. package/src/utils/slugify.ts +1 -29
  870. package/src/virtual-modules.d.ts +24 -0
  871. package/dist/adapters-BMyNSSZi.d.mts.map +0 -1
  872. package/dist/api-D2hunekQ.mjs.map +0 -1
  873. package/dist/apply-kwNEJW2l.mjs.map +0 -1
  874. package/dist/config-DyF3OKg_.mjs.map +0 -1
  875. package/dist/content-CJ94NEx5.mjs.map +0 -1
  876. package/dist/content-refresh-Xw7aKmou.mjs +0 -1629
  877. package/dist/content-refresh-Xw7aKmou.mjs.map +0 -1
  878. package/dist/context-C_1nrqnW.mjs.map +0 -1
  879. package/dist/dashboard-DINnNVVU.mjs.map +0 -1
  880. package/dist/errors-BucQ8VYz.mjs.map +0 -1
  881. package/dist/fts-manager-BITakW_R.mjs.map +0 -1
  882. package/dist/index-M37iz29I.d.mts.map +0 -1
  883. package/dist/index-MGw47uWq.d.mts.map +0 -1
  884. package/dist/loader-CGugY7Zl.mjs.map +0 -1
  885. package/dist/media-OhYL-7Io.mjs.map +0 -1
  886. package/dist/media-allowlist-D-peH1H5.mjs.map +0 -1
  887. package/dist/media-usage-BlxfTkN0.mjs.map +0 -1
  888. package/dist/menus-Y54RDPIN.mjs.map +0 -1
  889. package/dist/options-CA4eVX6P.d.mts.map +0 -1
  890. package/dist/query-C5w7PsRQ.mjs.map +0 -1
  891. package/dist/redirects-G8wAhWAf.mjs.map +0 -1
  892. package/dist/registry-Dbodb4Uo.mjs +0 -840
  893. package/dist/registry-Dbodb4Uo.mjs.map +0 -1
  894. package/dist/relations-G2ta7GIl.d.mts.map +0 -1
  895. package/dist/runner-BFTrkYhu.mjs.map +0 -1
  896. package/dist/runner-BaADli8l.d.mts.map +0 -1
  897. package/dist/search-FZhx5dDU.mjs.map +0 -1
  898. package/dist/seo-CobNfOvb.mjs.map +0 -1
  899. package/dist/slugify-C_tqlU4G.mjs +0 -30
  900. package/dist/slugify-C_tqlU4G.mjs.map +0 -1
  901. package/dist/taxonomies-CKuaZER5.mjs.map +0 -1
  902. package/dist/taxonomies-CLN1N92E.mjs.map +0 -1
  903. package/dist/taxonomy-pOrB2kZe.mjs.map +0 -1
  904. package/dist/types-BGWPMiBO.d.mts.map +0 -1
  905. package/dist/types-BnFP1M3J.d.mts.map +0 -1
  906. package/dist/types-Cd8iuS1J.mjs.map +0 -1
  907. package/dist/types-Cz8hNch2.d.mts.map +0 -1
  908. package/dist/types-Dc4ntQjQ.d.mts.map +0 -1
  909. package/dist/types-NBI3rF-_.mjs.map +0 -1
  910. package/dist/validate-C3oSmA7F.d.mts.map +0 -1
  911. package/dist/validate-mKo3RxBM.mjs.map +0 -1
  912. package/dist/version-C4PnpmoV.mjs +0 -7
  913. package/dist/zod-generator-CG64Hnbh.mjs.map +0 -1
  914. /package/dist/{api-tokens-Dai9dND0.mjs → api-tokens-rIXC6LdE.mjs} +0 -0
  915. /package/dist/{ssrf-Cj568Dgs.mjs → ssrf-DpXgKsna.mjs} +0 -0
  916. /package/dist/{types-DKuWPYV5.mjs → types-CP1CflWf.mjs} +0 -0
@@ -1,15 +1,16 @@
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-BnFP1M3J.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-BGWPMiBO.mjs";
3
- import { d as ContentListResponse, f as ContentResponse, h as ManifestResponse, u as ApiResult } from "./options-CA4eVX6P.mjs";
4
- import { t as Database } from "./types-Dc4ntQjQ.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-Cz8hNch2.mjs";
6
- import { _ as MediaValue, f as MediaProvider, m as MediaProviderDescriptor, p as MediaProviderCapabilities } from "./placeholder-DaeNS-VG.mjs";
7
- import { w as ContentBylineInput } from "./index-MGw47uWq.mjs";
8
- import { t as DatabaseDescriptor } from "./adapters-BMyNSSZi.mjs";
9
- import { r as AuthProviderDescriptor, t as AuthDescriptor } from "./types-CbUcuxxc.mjs";
10
- import { r as ObjectCacheDescriptor } from "./types-BK6U01Ro.mjs";
11
- import { d as Storage } from "./types-DLG4IFEQ.mjs";
12
- import { i as SiteSettings, r as SiteSettingKey } from "./types-LoagAGzH.mjs";
1
+ import { r as ContentFieldFilters } from "./content-list-query-wJ2WN8Vp.mjs";
2
+ import { _ as UpdateCollectionInput, a as CollectionWithFields, c as CreateFieldInput, d as Field, p as FieldValidation, s as CreateCollectionInput, t as Collection, v as UpdateFieldInput } from "./types-C2pMvO62.mjs";
3
+ 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-DN64_zzZ.mjs";
4
+ import { d as ContentListResponse, f as ContentResponse, h as ManifestResponse, u as ApiResult } from "./options--hhz-jZ1.mjs";
5
+ import { t as Database } from "./types-DQIDRKF2.mjs";
6
+ import { At as SettingField, B as FieldWidgetConfig, Bt as UserInfo, Ct as PublicPageContext, Dt as ResolvedPlugin, Q as MediaItem$1, Tt as RequestMeta, U as HttpAccess, Vt as WhereClause, _t as PluginManifest, at as PageMetadataEvent, bt as PluginStorageConfig, c as CommentBeforeCreateEvent, ht as PluginDefinition, i as CommentAfterCreateEvent, it as PageMetadataContribution, jt as StorageCollection, k as CronEvent, lt as PaginatedResult, nt as PageFragmentEvent, o as CommentAfterModerateEvent, pt as PluginCapability, tt as PageFragmentContribution, vt as PluginMcpManifestConfig, wt as QueryOptions, xt as PortableTextBlockConfig, z as EmailMessage } from "./types-DrJrVCT1.mjs";
7
+ import { _ as MediaValue, f as MediaProvider, m as MediaProviderDescriptor, p as MediaProviderCapabilities } from "./placeholder-Dp0K3RkD.mjs";
8
+ import { T as ContentBylineInput } from "./index-C9KuQyO-.mjs";
9
+ import { r as DatabaseDescriptor } from "./adapters-Bb1vG41D.mjs";
10
+ import { r as AuthProviderDescriptor, t as AuthDescriptor } from "./types-DWRhk9xZ.mjs";
11
+ import { r as ObjectCacheDescriptor } from "./types-Dfk8KI5R.mjs";
12
+ import { d as Storage } from "./types-BcqdcT-r.mjs";
13
+ import { i as SiteSettings, r as SiteSettingKey } from "./types-BntycPTF.mjs";
13
14
  import { EmDashManifest } from "./astro/types.mjs";
14
15
  import { Dialect, Kysely, sql } from "kysely";
15
16
  import { z } from "astro/zod";
@@ -56,7 +57,7 @@ declare class ContentRepository {
56
57
  * (optionally scoped to a locale) and appends a numeric suffix (`-1`,
57
58
  * `-2`, etc.) on collision to guarantee uniqueness.
58
59
  *
59
- * Returns `null` if `baseSlug` is empty after slugification.
60
+ * Returns null when slug normalization cannot produce a value.
60
61
  */
61
62
  generateUniqueSlug(type: string, text: string, locale?: string): Promise<string | null>;
62
63
  /**
@@ -102,6 +103,13 @@ declare class ContentRepository {
102
103
  * Update content
103
104
  */
104
105
  update(type: string, id: string, input: UpdateContentInput): Promise<ContentItem>;
106
+ /**
107
+ * Update plugin-authored fields without letting content columns diverge
108
+ * from the revision pointers that publication promotes.
109
+ */
110
+ updateDraftAware(type: string, id: string, input: UpdateContentInput): Promise<ContentItem>;
111
+ private deleteUnstagedRevision;
112
+ private replaceDraftRevisionForUpdate;
105
113
  /**
106
114
  * Delete content (soft delete - moves to trash)
107
115
  */
@@ -110,19 +118,6 @@ declare class ContentRepository {
110
118
  * Restore content from trash
111
119
  */
112
120
  restore(type: string, id: string): Promise<ContentItem | null>;
113
- /**
114
- * Re-stamp the denormalized filter + sort columns on every
115
- * `content_taxonomies` pivot row for an entry from its authoritative `ec_*`
116
- * row (migration 051). Called after any mutation that moves one of those
117
- * columns so a taxonomy-filtered listing can seek the entry directly.
118
- *
119
- * A single correlated `UPDATE` reads the post-mutation values from `ec_*`, so
120
- * the pivot converges to the authoritative row. This is NOT atomic with the
121
- * `ec_*` mutation on D1 (no transactions), which is why the read path
122
- * re-checks the real predicates on the joined `ec_*` row. Untagged entries
123
- * have no pivot rows, so the statement is a cheap no-op for them.
124
- */
125
- private restampEntryPivot;
126
121
  /**
127
122
  * Permanently delete content (cannot be undone)
128
123
  */
@@ -171,10 +166,25 @@ declare class ContentRepository {
171
166
  * range naturally excludes never-published rows (their column is NULL).
172
167
  */
173
168
  private applyDateFilter;
169
+ /**
170
+ * Apply the optional byline filter as a correlated (NOT) EXISTS against
171
+ * `_emdash_content_bylines`.
172
+ *
173
+ * Correlating from the content table preserves the outer sort index so
174
+ * `LIMIT` can short-circuit. `mode: "none"` tests the junction rather than
175
+ * `primary_byline_id` because the two are written in the same call but
176
+ * are not atomically consistent, so the junction is authoritative.
177
+ *
178
+ * Whether a credit *renders* is locale-scoped; whether one *exists* is
179
+ * not. Both are needed: the first decides what the filter matches, the
180
+ * second decides whether the author fallback applies at all.
181
+ */
182
+ private applyBylineFilter;
174
183
  /**
175
184
  * Count content items
176
185
  */
177
186
  count(type: string, where?: FindManyOptions["where"]): Promise<number>;
187
+ private countWithResolvedFilters;
178
188
  /**
179
189
  * Distinct, non-null `author_id` values across the collection's live
180
190
  * (non-trashed) content. Used to populate the admin author filter with
@@ -182,11 +192,12 @@ declare class ContentRepository {
182
192
  * full user directory (which requires admin privileges to read).
183
193
  */
184
194
  findDistinctAuthorIds(type: string): Promise<string[]>;
185
- getStats(type: string): Promise<{
195
+ getStats(type: string, now?: Date): Promise<{
186
196
  total: number;
187
197
  published: number;
188
198
  draft: number;
189
199
  scheduled: number;
200
+ overdueScheduled: number;
190
201
  }>;
191
202
  /**
192
203
  * Schedule content for future publishing
@@ -263,6 +274,8 @@ declare class ContentRepository {
263
274
  * Syncs the draft revision's data into the content table columns so the
264
275
  * content table always reflects the published version.
265
276
  * If no draft revision exists, creates one from current data and publishes it.
277
+ * When `promoteRevision` is false, publishes the current content-table data
278
+ * by changing lifecycle metadata only.
266
279
  *
267
280
  * `publishedAt` (optional) overrides the publication timestamp. If omitted,
268
281
  * the existing `published_at` is preserved (idempotent re-publish keeps the
@@ -274,7 +287,7 @@ declare class ContentRepository {
274
287
  * `expectedScheduledAt` additionally fences changes made after a sweep
275
288
  * selected the row but before publication preparation began.
276
289
  */
277
- publish(type: string, id: string, publishedAt?: string, requireDue?: boolean, expectedScheduledAt?: string): Promise<ContentItem>;
290
+ publish(type: string, id: string, publishedAt?: string, requireDue?: boolean, expectedScheduledAt?: string, promoteRevision?: boolean, requireSlug?: boolean): Promise<ContentItem>;
278
291
  /**
279
292
  * Unpublish content
280
293
  *
@@ -314,11 +327,17 @@ declare class ContentRepository {
314
327
  * Excludes null values from data to match input semantics
315
328
  */
316
329
  private mapRow;
330
+ private normalizeFilterScalar;
331
+ private normalizeFieldFilter;
332
+ private collectionExists;
333
+ private resolveFieldFilters;
334
+ private applyFieldFilters;
317
335
  /**
318
336
  * Map order field names to database columns.
319
337
  * Only allows known fields to prevent column enumeration via crafted orderBy values.
320
338
  */
321
339
  private mapOrderField;
340
+ private resolveOrderField;
322
341
  }
323
342
  //#endregion
324
343
  //#region src/database/repositories/media.d.ts
@@ -693,14 +712,27 @@ interface PortableTextBlock$1 {
693
712
  */
694
713
  type ImageValue = MediaValue;
695
714
  /**
696
- * File field value
715
+ * Persisted file field value.
716
+ *
717
+ * File values are references with cached metadata, not implicitly hydrated
718
+ * media records. Use the media provider API when current metadata is needed.
697
719
  */
698
720
  interface FileValue {
699
721
  id: string;
700
- url: string;
701
- filename: string;
702
- mimeType: string;
703
- size: number;
722
+ /** Legacy cached URL. Provider-backed values commonly omit this. */
723
+ url?: string;
724
+ /** Direct URL used by external media providers. */
725
+ src?: string;
726
+ /** Cached original filename, when available. */
727
+ filename?: string;
728
+ /** Cached MIME type, when available. */
729
+ mimeType?: string;
730
+ /** Cached file size in bytes, when persisted with the value. */
731
+ size?: number;
732
+ /** Media provider ID. Defaults to `local` when omitted. */
733
+ provider?: string;
734
+ /** Provider-specific data needed to resolve or render the file. */
735
+ meta?: Record<string, unknown>;
704
736
  }
705
737
  //#endregion
706
738
  //#region src/fields/image.d.ts
@@ -769,6 +801,10 @@ declare function handleContentList(db: Kysely<Database>, collection: string, par
769
801
  dateField?: ContentDateField;
770
802
  dateFrom?: string;
771
803
  dateTo?: string;
804
+ bylines?: string[];
805
+ bylinesNone?: boolean;
806
+ includeInferredBylines?: boolean;
807
+ fieldFilters?: ContentFieldFilters;
772
808
  }): Promise<ApiResult<ContentListResponse>>;
773
809
  /** A content author option for the admin author filter. */
774
810
  interface ContentAuthor {
@@ -806,7 +842,7 @@ declare function handleContentGetIncludingTrashed(db: Kysely<Database>, collecti
806
842
  */
807
843
  declare function handleContentCreate(db: Kysely<Database>, collection: string, body: {
808
844
  data: Record<string, unknown>;
809
- slug?: string;
845
+ slug?: string | null;
810
846
  status?: string;
811
847
  authorId?: string;
812
848
  bylines?: ContentBylineInput[];
@@ -826,7 +862,7 @@ declare function handleContentCreate(db: Kysely<Database>, collection: string, b
826
862
  */
827
863
  declare function handleContentUpdate(db: Kysely<Database>, collection: string, id: string, body: {
828
864
  data?: Record<string, unknown>;
829
- slug?: string;
865
+ slug?: string | null;
830
866
  status?: string;
831
867
  authorId?: string | null;
832
868
  bylines?: ContentBylineInput[];
@@ -954,6 +990,7 @@ interface CollectionDefinition {
954
990
  label: string;
955
991
  labelSingular?: string;
956
992
  supports?: string[];
993
+ routable?: boolean;
957
994
  };
958
995
  }
959
996
  type CollectionMap = Record<string, CollectionDefinition>;
@@ -1046,7 +1083,7 @@ declare function handleMediaDelete(db: Kysely<Database>, id: string): Promise<Ap
1046
1083
  }>>;
1047
1084
  //#endregion
1048
1085
  //#region src/media/usage/content-refresh.d.ts
1049
- type ContentMediaUsageRefreshErrorCode = "CONTENT_NOT_FOUND" | "DRAFT_REVISION_NOT_FOUND" | "DRAFT_REVISION_MISMATCH" | "DRAFT_REVISION_INVALID" | "CONTENT_USAGE_REFRESH_ERROR" | "CONTENT_USAGE_DELETE_ERROR" | "CONTENT_USAGE_GENERATION_CONFLICT" | "CONTENT_USAGE_STALE";
1086
+ type ContentMediaUsageRefreshErrorCode = "CONTENT_NOT_FOUND" | "DRAFT_REVISION_NOT_FOUND" | "DRAFT_REVISION_MISMATCH" | "DRAFT_REVISION_INVALID" | "CONTENT_USAGE_REFRESH_ERROR" | "CONTENT_USAGE_DELETE_ERROR" | "CONTENT_USAGE_GENERATION_CONFLICT" | "CONTENT_USAGE_RESOURCE_LIMIT" | "CONTENT_USAGE_STALE";
1050
1087
  declare function markContentMediaUsageCollectionStaleSafely(db: Kysely<Database>, collectionSlug: string, lastErrorCode: ContentMediaUsageRefreshErrorCode): Promise<boolean>;
1051
1088
  //#endregion
1052
1089
  //#region src/schema/registry.d.ts
@@ -1096,6 +1133,12 @@ declare class SchemaRegistry {
1096
1133
  * a manifest that is now built fresh per admin request (no cache).
1097
1134
  */
1098
1135
  listCollectionsWithFields(): Promise<CollectionWithFields[]>;
1136
+ /**
1137
+ * Validate `titleField`/`dateField` against the collection's fields:
1138
+ * `titleField` must be a text-like field; `dateField` must be a `datetime` field.
1139
+ * Only truthy values are checked (undefined = unchanged, null/"" = cleared).
1140
+ */
1141
+ private validateTitleDateFields;
1099
1142
  /**
1100
1143
  * Create a new collection
1101
1144
  */
@@ -1111,6 +1154,7 @@ declare class SchemaRegistry {
1111
1154
  * in parameter-safe batches.
1112
1155
  */
1113
1156
  createSeedCollection(input: Omit<CreateCollectionInput, "source">, fields: readonly CreateFieldInput[]): Promise<void>;
1157
+ private assertSeedFieldDefinitions;
1114
1158
  /**
1115
1159
  * Update a collection
1116
1160
  */
@@ -1173,6 +1217,10 @@ declare class SchemaRegistry {
1173
1217
  * Create a content table for a collection
1174
1218
  */
1175
1219
  private createContentTable;
1220
+ private getFieldIndexName;
1221
+ private getLocaleFieldIndexName;
1222
+ private createFieldIndex;
1223
+ private dropFieldIndex;
1176
1224
  /**
1177
1225
  * Add a column to a content table
1178
1226
  */
@@ -1264,6 +1312,13 @@ declare class SchemaRegistry {
1264
1312
  */
1265
1313
  declare function getCollectionInfo(slug: string): Promise<Collection | null>;
1266
1314
  //#endregion
1315
+ //#region src/database/migrations/policy.d.ts
1316
+ type RuntimeMigrationMode = "auto" | "check" | "manual";
1317
+ interface RuntimeMigrationConfig {
1318
+ runtime: RuntimeMigrationMode;
1319
+ dev?: RuntimeMigrationMode;
1320
+ }
1321
+ //#endregion
1267
1322
  //#region src/registry/types.d.ts
1268
1323
  /**
1269
1324
  * Public types for the experimental plugin registry.
@@ -1655,6 +1710,8 @@ interface EmDashConfig {
1655
1710
  * ```
1656
1711
  */
1657
1712
  database?: DatabaseDescriptor;
1713
+ /** Core database migration behavior at runtime. Defaults to `auto`. */
1714
+ migrations?: RuntimeMigrationConfig;
1658
1715
  /**
1659
1716
  * Storage configuration (for media)
1660
1717
  */
@@ -1918,6 +1975,19 @@ interface EmDashConfig {
1918
1975
  */
1919
1976
  allowedOrigins?: string[];
1920
1977
  trustedProxyHeaders?: string[];
1978
+ /**
1979
+ * User middleware that wraps the complete EmDash request pipeline.
1980
+ *
1981
+ * Before `next()` it runs before EmDash initializes its runtime or database,
1982
+ * so `locals.emdash`, the authenticated user, and request-scoped EmDash state
1983
+ * are unavailable. This allows cached responses and request gates to return
1984
+ * without paying initialization cost. When it calls `next()`, the resolved
1985
+ * response includes EmDash HTML injection and all other response mutations,
1986
+ * allowing the middleware to finalize caching and response headers safely.
1987
+ */
1988
+ middleware?: {
1989
+ /** Astro middleware module entrypoint. */outer: string | URL;
1990
+ };
1921
1991
  /**
1922
1992
  * Enable playground mode for ephemeral "try EmDash" sites.
1923
1993
  *
@@ -2126,6 +2196,8 @@ interface SandboxOptions {
2126
2196
  storage?: PluginCodeStorage;
2127
2197
  /** Database for bridge operations */
2128
2198
  db: Kysely<Database>;
2199
+ /** Called immediately before a sandboxed plugin content mutation. */
2200
+ beforeContentWrite?: () => Promise<void>;
2129
2201
  /** Default resource limits */
2130
2202
  limits?: ResourceLimits;
2131
2203
  /** Site info for plugin context (injected into wrapper at generation time) */
@@ -2194,7 +2266,36 @@ interface SerializedRequest {
2194
2266
  headers: Record<string, string>;
2195
2267
  /** Normalized request metadata extracted before RPC serialization */
2196
2268
  meta: RequestMeta;
2269
+ /**
2270
+ * Authenticated caller for private routes, resolved by the host before
2271
+ * dispatch. Undefined for public routes and unbound machine tokens.
2272
+ */
2273
+ user?: UserInfo;
2274
+ }
2275
+ declare const SANDBOX_ROUTE_ERROR_DEFINITIONS: {
2276
+ readonly MEDIA_USAGE_ACTIVATION_IN_PROGRESS: {
2277
+ readonly message: "Media usage activation is in progress";
2278
+ readonly status: 503;
2279
+ };
2280
+ readonly MEDIA_USAGE_ACTIVATION_CHECK_FAILED: {
2281
+ readonly message: "Unable to verify media usage activation state";
2282
+ readonly status: 503;
2283
+ };
2284
+ };
2285
+ type SandboxRouteErrorCode = keyof typeof SANDBOX_ROUTE_ERROR_DEFINITIONS;
2286
+ interface SandboxRouteErrorDetails {
2287
+ code: SandboxRouteErrorCode;
2288
+ message: string;
2289
+ status: 503;
2197
2290
  }
2291
+ interface SandboxRouteErrorEnvelope {
2292
+ __emdashSandboxRouteError: true;
2293
+ error: SandboxRouteErrorDetails;
2294
+ }
2295
+ declare function getSandboxRouteErrorDetails(error: unknown): SandboxRouteErrorDetails | null;
2296
+ declare function createSandboxRouteError(code: SandboxRouteErrorCode): Error & SandboxRouteErrorDetails;
2297
+ declare function createSandboxRouteErrorEnvelope(error: unknown): SandboxRouteErrorEnvelope | null;
2298
+ declare function getSandboxRouteErrorEnvelope(value: unknown): SandboxRouteErrorEnvelope | null;
2198
2299
  /**
2199
2300
  * Sandbox runner interface.
2200
2301
  * Platform adapters implement this to provide plugin isolation.
@@ -2330,6 +2431,7 @@ interface SiteInfoOptions {
2330
2431
  }
2331
2432
  interface PluginContextFactoryOptions {
2332
2433
  db: Kysely<Database>;
2434
+ beforeContentWrite?: () => Promise<void>;
2333
2435
  /**
2334
2436
  * Resolver for the database connection, preferred over `db` when present.
2335
2437
  * Called per `createContext()` so connection-backed adapters (e.g. Postgres
@@ -2760,6 +2862,18 @@ interface RouteResult<T = unknown> {
2760
2862
  };
2761
2863
  status: number;
2762
2864
  }
2865
+ /**
2866
+ * Host-side user shape accepted when dispatching a plugin route. Structurally
2867
+ * matches `User` from `@emdash-cms/auth` so hosts can pass `locals.user`
2868
+ * directly without the plugin layer depending on the auth package.
2869
+ */
2870
+ interface RouteCallerInput {
2871
+ id: string;
2872
+ email: string;
2873
+ name: string | null;
2874
+ role: number;
2875
+ createdAt: Date | string;
2876
+ }
2763
2877
  /**
2764
2878
  * Route invocation options
2765
2879
  */
@@ -2768,6 +2882,11 @@ interface InvokeRouteOptions {
2768
2882
  request: Request;
2769
2883
  /** Request body (already parsed) */
2770
2884
  body?: unknown;
2885
+ /**
2886
+ * Authenticated caller resolved by the host, exposed to the handler as
2887
+ * `ctx.user`. Undefined for public routes and unbound machine tokens.
2888
+ */
2889
+ user?: UserInfo;
2771
2890
  }
2772
2891
  /**
2773
2892
  * Error class for plugin routes
@@ -2824,6 +2943,8 @@ interface CronScheduler {
2824
2943
  reschedule(): void;
2825
2944
  /** Register a system cleanup function to run alongside each tick. */
2826
2945
  setSystemCleanup(fn: SystemCleanupFn): void;
2946
+ /** Register bounded Media Usage maintenance to run after the general tick settles. */
2947
+ setMediaUsageMaintenance?(fn: SystemCleanupFn): void;
2827
2948
  }
2828
2949
  /**
2829
2950
  * System cleanup callback invoked alongside each scheduler tick.
@@ -2928,6 +3049,8 @@ type CreateSchedulerFn = (executor: CronExecutor) => CronScheduler;
2928
3049
  */
2929
3050
  interface RuntimeDependencies {
2930
3051
  config: EmDashConfig;
3052
+ /** Effective migration mode, resolved once by the runtime entrypoint. */
3053
+ migrationMode?: RuntimeMigrationMode;
2931
3054
  plugins: ResolvedPlugin[];
2932
3055
  createDialect: (config: any) => Dialect;
2933
3056
  /**
@@ -2991,6 +3114,7 @@ interface EmDashRuntimeParts {
2991
3114
  pipelineFactoryOptions: {
2992
3115
  db: Kysely<Database>;
2993
3116
  getDb?: () => Kysely<Database>;
3117
+ beforeContentWrite?: () => Promise<void>;
2994
3118
  storage?: Storage;
2995
3119
  siteInfo?: {
2996
3120
  siteName?: string;
@@ -3004,6 +3128,16 @@ interface EmDashRuntimeParts {
3004
3128
  current: HookPipeline;
3005
3129
  };
3006
3130
  }
3131
+ type MediaUsageMaintenanceTaskClass = "entry_work" | "collection_deletion" | "reconciliation";
3132
+ type MediaUsageMaintenanceResult = {
3133
+ outcome: "inactive" | "admission_closed";
3134
+ taskClass: null;
3135
+ turn: null;
3136
+ } | {
3137
+ outcome: "processed";
3138
+ taskClass: MediaUsageMaintenanceTaskClass;
3139
+ turn: number;
3140
+ };
3007
3141
  /**
3008
3142
  * EmDashRuntime - singleton per worker
3009
3143
  */
@@ -3084,6 +3218,7 @@ declare class EmDashRuntime {
3084
3218
  * Returns the items promoted so callers can invalidate their cache tags.
3085
3219
  */
3086
3220
  publishScheduled(): Promise<PublishedRef[]>;
3221
+ private publishScheduledWithFence;
3087
3222
  /**
3088
3223
  * Run the full scheduled-maintenance batch: cron tasks, scheduled
3089
3224
  * publishing, and system cleanup. For request-less drivers — the
@@ -3103,6 +3238,7 @@ declare class EmDashRuntime {
3103
3238
  }): Promise<{
3104
3239
  published: PublishedRef[];
3105
3240
  }>;
3241
+ runScheduledMediaUsageTasks(): Promise<MediaUsageMaintenanceResult>;
3106
3242
  /**
3107
3243
  * Materialize plugin-declared storage indexes, once per process.
3108
3244
  *
@@ -3327,6 +3463,10 @@ declare class EmDashRuntime {
3327
3463
  dateField?: ContentDateField;
3328
3464
  dateFrom?: string;
3329
3465
  dateTo?: string;
3466
+ bylines?: string[];
3467
+ bylinesNone?: boolean;
3468
+ includeInferredBylines?: boolean;
3469
+ fieldFilters?: ContentFieldFilters;
3330
3470
  }): Promise<ApiResult<ContentListResponse>>;
3331
3471
  handleContentAuthors(collection: string): Promise<ApiResult<{
3332
3472
  items: ContentAuthor[];
@@ -3346,7 +3486,7 @@ declare class EmDashRuntime {
3346
3486
  private hydrateDraftData;
3347
3487
  handleContentCreate(collection: string, body: {
3348
3488
  data: Record<string, unknown>;
3349
- slug?: string;
3489
+ slug?: string | null;
3350
3490
  status?: string;
3351
3491
  authorId?: string;
3352
3492
  bylines?: Array<{
@@ -3375,7 +3515,7 @@ declare class EmDashRuntime {
3375
3515
  }>;
3376
3516
  handleContentUpdate(collection: string, id: string, body: {
3377
3517
  data?: Record<string, unknown>;
3378
- slug?: string;
3518
+ slug?: string | null;
3379
3519
  status?: string;
3380
3520
  authorId?: string | null;
3381
3521
  bylines?: Array<{
@@ -3523,13 +3663,14 @@ declare class EmDashRuntime {
3523
3663
  * contract of `getPluginSettingsSchema` for build-time plugins.
3524
3664
  */
3525
3665
  getRuntimePluginSettingsSchema(pluginId: string): Record<string, SettingField> | null;
3526
- handlePluginApiRoute(pluginId: string, _method: string, path: string, request: Request): Promise<{
3666
+ handlePluginApiRoute(pluginId: string, _method: string, path: string, request: Request, user?: RouteCallerInput | null): Promise<{
3527
3667
  success: boolean;
3528
3668
  data?: unknown;
3529
3669
  error?: {
3530
3670
  code: string;
3531
3671
  message: string;
3532
3672
  };
3673
+ status?: number;
3533
3674
  }>;
3534
3675
  getPluginMcpTools(pluginId?: string): Promise<{
3535
3676
  pluginId: string;
@@ -3552,13 +3693,14 @@ declare class EmDashRuntime {
3552
3693
  outputSchema?: z$1.ZodType;
3553
3694
  }[]>;
3554
3695
  serializePluginMcpConsent(tools: Awaited<ReturnType<EmDashRuntime["getPluginMcpTools"]>>, pluginId: string): string;
3555
- handlePluginMcpTool(pluginId: string, toolName: string, route: string, input: unknown, actorId: string, request: Request): Promise<{
3696
+ handlePluginMcpTool(pluginId: string, toolName: string, route: string, input: unknown, actorId: string, request: Request, caller?: RouteCallerInput | null): Promise<{
3556
3697
  success: boolean;
3557
3698
  data?: unknown;
3558
3699
  error?: {
3559
3700
  code: string;
3560
3701
  message: string;
3561
3702
  };
3703
+ status?: number;
3562
3704
  }>;
3563
3705
  handlePluginMcpDenied(pluginId: string, toolName: string, route: string, actorId: string, request: Request, reason: string): Promise<void>;
3564
3706
  private findSandboxedPlugin;
@@ -4440,36 +4582,6 @@ type WaitUntilFn = (promise: Promise<unknown>) => void;
4440
4582
  */
4441
4583
  declare function after(fn: () => void | Promise<void>): void;
4442
4584
  //#endregion
4443
- //#region src/i18n/config.d.ts
4444
- /**
4445
- * EmDash i18n Configuration
4446
- *
4447
- * Reads locale configuration from the virtual module (sourced from Astro config).
4448
- * Initialized during runtime startup, then available via getI18nConfig().
4449
- */
4450
- interface I18nConfig {
4451
- defaultLocale: string;
4452
- locales: string[];
4453
- fallback?: Record<string, string>;
4454
- prefixDefaultLocale?: boolean;
4455
- }
4456
- /**
4457
- * Get the current i18n config.
4458
- * Returns null if i18n is not configured.
4459
- */
4460
- declare function getI18nConfig(): I18nConfig | null;
4461
- /**
4462
- * Check if i18n is enabled.
4463
- * Returns true when multiple locales are configured.
4464
- */
4465
- declare function isI18nEnabled(): boolean;
4466
- /**
4467
- * Resolve fallback locale chain for a given locale.
4468
- * Returns array of locales to try, from most preferred to least.
4469
- * Always ends with defaultLocale.
4470
- */
4471
- declare function getFallbackChain(locale: string): string[];
4472
- //#endregion
4473
4585
  //#region src/object-cache/index.d.ts
4474
4586
  /** Options for {@link cachedQuery}. */
4475
4587
  interface CachedQueryOptions<T> {
@@ -4813,13 +4925,13 @@ declare const pluginManifestSchema: z$1.ZodObject<{
4813
4925
  string: "string";
4814
4926
  number: "number";
4815
4927
  boolean: "boolean";
4816
- slug: "slug";
4817
4928
  file: "file";
4818
- image: "image";
4929
+ slug: "slug";
4819
4930
  datetime: "datetime";
4820
4931
  text: "text";
4821
- integer: "integer";
4822
4932
  select: "select";
4933
+ image: "image";
4934
+ integer: "integer";
4823
4935
  multiSelect: "multiSelect";
4824
4936
  portableText: "portableText";
4825
4937
  reference: "reference";
@@ -5072,8 +5184,10 @@ declare class NodeCronScheduler implements CronScheduler {
5072
5184
  private timer;
5073
5185
  private running;
5074
5186
  private systemCleanup;
5187
+ private mediaUsageMaintenance;
5075
5188
  constructor(executor: CronExecutor);
5076
5189
  setSystemCleanup(fn: SystemCleanupFn): void;
5190
+ setMediaUsageMaintenance(fn: SystemCleanupFn): void;
5077
5191
  start(): void;
5078
5192
  stop(): void;
5079
5193
  reschedule(): void;
@@ -5768,8 +5882,8 @@ declare function getTaxonomyTerms(taxonomyName: string, options?: TaxonomyTermsO
5768
5882
  */
5769
5883
  declare function getTerm(taxonomyName: string, slug: string, options?: TaxonomyQueryOptions): Promise<TaxonomyTerm | null>;
5770
5884
  /**
5771
- * Terms assigned to a content entry, resolved into the active locale. Terms
5772
- * whose translation_group lacks a row in the requested locale are omitted.
5885
+ * Terms assigned to a content entry, resolved into the active locale and then
5886
+ * the configured default locale.
5773
5887
  */
5774
5888
  declare function getEntryTerms(collection: string, entryId: string, taxonomyName?: string, options?: TaxonomyQueryOptions): Promise<TaxonomyTerm[]>;
5775
5889
  /**
@@ -5875,6 +5989,8 @@ interface SearchConfig {
5875
5989
  enabled: boolean;
5876
5990
  /** Field weights for ranking (higher = more important) */
5877
5991
  weights?: Record<string, number>;
5992
+ /** Field slug used as the result title, from the collection's titleField. */
5993
+ titleField?: string;
5878
5994
  /** FTS5 tokenizer configuration (defaults to English Porter stemming) */
5879
5995
  tokenize?: SearchTokenizer;
5880
5996
  }
@@ -6013,6 +6129,30 @@ declare class FTSManager {
6013
6129
  * @param tokenize - Optional FTS5 tokenizer configuration
6014
6130
  */
6015
6131
  createFtsTable(collectionSlug: string, searchableFields: string[], _weights?: Record<string, number>, tokenize?: SearchTokenizer): Promise<void>;
6132
+ /**
6133
+ * SQL expression producing the indexed value for one searchable field.
6134
+ *
6135
+ * Portable Text fields are stored as JSON; indexing the raw JSON pollutes
6136
+ * the index with structural tokens (`_type`, style values like `normal`,
6137
+ * `_key` ULIDs) and makes snippets show JSON fragments. Extract the prose
6138
+ * instead: every JSON string under a `text`, `alt`, `caption`, or `code`
6139
+ * key (span text, image alt/caption, code blocks). This is a superset of
6140
+ * `extractPlainText` in text-extraction.ts, which walks only known block
6141
+ * shapes — the SQL variant takes those keys at any depth, so search and
6142
+ * the extractPlainText consumers (vectorize/ai-search) can see different
6143
+ * text for the same document. Only JSON documents
6144
+ * (arrays/objects) are extracted; legacy rows holding a bare string or a
6145
+ * JSON scalar (`Some title`, `2024`) are indexed as-is. Extraction must
6146
+ * live in SQL because the sync triggers cannot call into JS.
6147
+ *
6148
+ * `ref` must be a validated column reference (`NEW.x`, `OLD.x`, `"x"`).
6149
+ */
6150
+ private searchValueExpr;
6151
+ /**
6152
+ * Field type per slug for a collection, for choosing the indexed-value
6153
+ * expression. Fields missing from the schema fall back to raw indexing.
6154
+ */
6155
+ private getFieldTypes;
6016
6156
  /**
6017
6157
  * Create triggers to keep FTS table in sync with content table.
6018
6158
  *
@@ -6021,31 +6161,20 @@ declare class FTSManager {
6021
6161
  * search index and ensures the FTS row count matches the non-deleted
6022
6162
  * content count (which `verifyAndRepairIndex` relies on).
6023
6163
  *
6024
- * IMPORTANT: The FTS5 virtual table is created with `content='ec_<slug>'`
6025
- * which makes it an *external content* FTS5 table. For external-content
6026
- * tables, removing a row must use the documented `'delete'` command and
6027
- * supply the OLD column values explicitly, e.g.:
6028
- *
6029
- * INSERT INTO fts(fts, rowid, col1, col2)
6030
- * VALUES('delete', OLD.rowid, OLD.col1, OLD.col2);
6031
- *
6032
- * Using `DELETE FROM fts WHERE rowid = OLD.rowid` is the correct form
6033
- * for *contentless* tables but is unsafe for external-content tables:
6034
- * FTS5 then reads column values from the backing content table, which
6035
- * in an AFTER UPDATE trigger already holds the NEW values. The wrong
6036
- * tokens get removed and the inverted index drifts out of sync until
6037
- * SQLite raises `SQLITE_CORRUPT_VTAB` on the next mutation. See
6038
- * https://www.sqlite.org/fts5.html#external_content_tables.
6039
- *
6040
- * The UPDATE and DELETE triggers gate the `'delete'` on
6041
- * `OLD.deleted_at IS NULL` because the INSERT trigger never indexed
6042
- * rows that were already soft-deleted. Issuing `'delete'` for a rowid
6043
- * that was never inserted into the FTS index is itself a corruption
6044
- * trigger -- FTS5's `'delete'` is not a no-op on missing rowids and
6045
- * raises `SQLITE_CORRUPT_VTAB`. Affected paths include restore-from-
6046
- * trash (UPDATE where `OLD.deleted_at IS NOT NULL`), permanent-delete
6047
- * from trash (DELETE on a soft-deleted row), and any edit on a row
6048
- * that's currently in the trash.
6164
+ * The FTS table stores its own values (no `content=` option), so removal
6165
+ * is a plain `DELETE FROM fts WHERE rowid = OLD.rowid` — a harmless no-op
6166
+ * for rows that were never indexed (soft-deleted content). The
6167
+ * external-content `'delete'`-command choreography and its corruption
6168
+ * modes (migration 039) do not apply to self-contained tables.
6169
+ *
6170
+ * `INSERT OR REPLACE` keeps the insert path idempotent: re-running a
6171
+ * populate (D1 has no migration lock, so two isolates can race) converges
6172
+ * on one index row per content row instead of failing on the rowid
6173
+ * constraint.
6174
+ *
6175
+ * The trigger SQL emitted here MUST stay in lock-step with migration
6176
+ * `064_fts_plain_text.ts`. If this changes again, add a new migration
6177
+ * rather than editing shipped ones — migrations are forward-only.
6049
6178
  */
6050
6179
  private createTriggers;
6051
6180
  /**
@@ -6063,7 +6192,10 @@ declare class FTSManager {
6063
6192
  */
6064
6193
  rebuildIndex(collectionSlug: string, searchableFields: string[], weights?: Record<string, number>, tokenize?: SearchTokenizer): Promise<void>;
6065
6194
  /**
6066
- * Populate the FTS table from existing content
6195
+ * Populate the FTS table from existing content.
6196
+ *
6197
+ * `INSERT OR REPLACE` so a concurrent double-populate (D1 has no
6198
+ * migration lock) converges instead of failing on the rowid constraint.
6067
6199
  */
6068
6200
  populateFromContent(collectionSlug: string, searchableFields: string[]): Promise<void>;
6069
6201
  /**
@@ -6084,7 +6216,7 @@ declare class FTSManager {
6084
6216
  * `title` is not a system column on `ec_*` tables -- it exists only when a
6085
6217
  * collection defines a field with slug `title`. Search and suggestion SQL
6086
6218
  * that selects `c.title` must check this first; otherwise collections
6087
- * without a title field raise "no such column: c.title" (#1178).
6219
+ * without a title field raise "no such column: c.title".
6088
6220
  */
6089
6221
  hasTitleColumn(collectionSlug: string): Promise<boolean>;
6090
6222
  /**
@@ -6241,5 +6373,5 @@ declare function extractPlainText(blocks: PortableTextBlock[] | string | null |
6241
6373
  */
6242
6374
  declare function extractSearchableFields(entry: Record<string, unknown>, fields: string[]): Record<string, string>;
6243
6375
  //#endregion
6244
- export { MenuItem as $, CronScheduler as $n, handleContentPublish as $r, CollectionFilter as $t, WidgetType as A, portableTextToProsemirror as An, handleMediaDelete as Ar, createPluginManager as At, CreateTermInput as B, ProseMirrorDocument as Bn, handleContentAuthors as Br, invalidateCollectionCache as Bt, CreateWidgetInput as C, EmDashDatabaseError as Ci, WhereValue as Cn, getCollectionInfo as Cr, parseContentId as Ct, Widget as D, sanitizeHref as Dn, MediaListResponse as Dr, createNoopSandboxRunner as Dt, UpdateWidgetInput as E, isSafeHref as En, markContentMediaUsageCollectionStaleSafely as Er, SandboxNotAvailableError as Et, getTaxonomyDefs as F, PortableTextLinkMark as Fn, RevisionResponse as Fr, CachedQueryOptions as Ft, getByline as G, CreateSectionInput as Gn, handleContentDelete as Gr, invalidateTaxonomyObjectCache as Gt, TaxonomyTerm as H, ProseMirrorNode as Hn, handleContentCountScheduled as Hr, invalidateMenuObjectCache as Ht, getTaxonomyTerms as I, PortableTextMarkDef as In, handleRevisionGet as Ir, cachedQuery as It, getMenu as J, SectionSource as Jn, handleContentGet as Jr, getI18nConfig as Jt, getBylineBySlug as K, GetSectionsOptions as Kn, handleContentDiscardDraft as Kr, I18nConfig as Kt, getTerm as L, PortableTextSpan as Ln, handleRevisionList as Lr, contentNamespace as Lt, getEntriesByTerm as M, PortableTextCodeBlock as Mn, handleMediaList as Mr, pluginManifestSchema as Mt, getEntryTerms as N, PortableTextHtmlBlock as Nn, handleMediaUpdate as Nr, definePlugin as Nt, WidgetArea as O, computeContentHash as On, MediaResponse as Or, NodeCronScheduler as Ot, getTaxonomyDef as P, PortableTextImageBlock as Pn, RevisionListResponse as Pr, CacheNamespace as Pt, Menu as Q, PublishedRef as Qn, handleContentPermanentDelete as Qr, CacheHint as Qt, getTermsForEntries as R, PortableTextTextBlock as Rn, handleRevisionRestore as Rr, contentNamespaces as Rt, CreateWidgetAreaInput as S, DatabaseConfig as Si, WhereRange as Sn, StorageDescriptor as Sr, generatePreviewToken as St, ReorderWidgetsInput as T, getDb as Tn, SchemaRegistry as Tr, NoopSandboxRunner as Tt, TaxonomyTermRow as U, getSection as Un, handleContentCountTrashed as Ur, invalidateObjectCache as Ut, TaxonomyDef as V, ProseMirrorMark as Vn, handleContentCompare as Vr, invalidateCommentObjectCache as Vt, UpdateTermInput as W, getSections as Wn, handleContentCreate as Wr, invalidateSchemaObjectCache as Wt, CreateMenuInput as X, EmDashRuntime as Xn, handleContentList as Xr, WaitUntilFn as Xt, getMenus as Y, UpdateSectionInput as Yn, handleContentGetIncludingTrashed as Yr, isI18nEnabled as Yt, CreateMenuItemInput as Z, SandboxedPluginEntry as Zn, handleContentListTrashed as Zr, after as Zt, SuggestOptions as _, UserRepository as _i, createEditable as _n, EmDashConfig as _r, getPreviewUrl as _t, search as a, handleContentUpdate as ai, InferCollectionData as an, HookResult as ar, GetCommentsResult as at, getWidgetAreas as b, MediaRepository as bi, EntryData as bn, LocalStorageConfig as br, VerifyPreviewTokenOptions as bt, FTSManager as c, file as ci, TranslationsResult as cn, createUnrestrictedHttpAccess as cr, getPluginSetting as ct, SearchConfig as d, FieldUIHints as di, getEmDashEntry as dn, SandboxOptions as dr, getSiteSettings as dt, handleContentRestore as ei, CollectionResult as en, SystemCleanupFn as er, MenuItemType as et, SearchOptions as f, FileValue as fi, getTranslations as fn, SandboxRunner as fr, setSiteSettings as ft, SearchTokenizer as g, PluginStorageRepository as gi, FieldAnnotation as gn, SerializedRequest as gr, buildPreviewUrl as gt, SearchStats as h, CompoundSelectLimitedAdapter as hi, EditProxy as hn, SandboxedPluginInstance as hr, GetPreviewUrlOptions as ht, getSuggestions as i, handleContentUnschedule as ii, EntryResult as in, HookPipeline as ir, GetCommentsOptions as it, getAllTermsForEntries as j, prosemirrorToPortableText as jn, handleMediaGet as jr, ValidatedPluginManifest as jt, WidgetComponentDef as k, hashString as kn, handleMediaCreate as kr, PluginManager as kt, CollectionSearchOptions as l, image as li, getEditMeta as ln, SandboxEmailMessage as lr, getPluginSettings as lt, SearchResult as m, PortableTextBlock$1 as mi, CMSAnnotation as mn, SandboxUnavailableError as mr, isPreviewRequest as mt, extractSearchableFields as n, handleContentTranslations as ni, EditFieldMeta as nn, RouteMeta as nr, UpdateMenuInput as nt, searchCollection as o, portableText as oi, ResolvePathResult as on, createHookPipeline as or, getCommentCount as ot, SearchResponse as p, ImageValue as pi, resolveEmDashPath as pn, SandboxRunnerFactory as pr, getPreviewToken as pt, getEntriesByByline as q, Section as qn, handleContentDuplicate as qr, getFallbackChain as qt, getSearchStats as r, handleContentUnpublish as ri, EmDashCollections as rn, EmailPipeline as rr, UpdateMenuItemInput as rt, searchWithDb as s, reference as si, TranslationSummary as sn, createHttpAccess as sr, getComments as st, extractPlainText as t, handleContentSchedule as ti, ContentEntry as tn, PluginRouteError as tr, ReorderMenuItemsInput as tt, SEARCH_TOKENIZERS as u, FieldDefinition as ui, getEmDashCollection as un, SandboxEmailSendCallback as ur, getSiteSetting as ut, Suggestion as v, CreateMediaInput as vi, createNoop as vn, PluginDescriptor as vr, GeneratePreviewTokenOptions as vt, PropDef as w, emdashLoader as wn, SchemaError as wr, verifyPreviewToken as wt, getWidgetComponents as x, ContentRepository as xi, EntryFilter as xn, S3StorageConfig as xr, VerifyPreviewTokenResult as xt, getWidgetArea as y, MediaItem as yi, CollectionFilter$1 as yn, getStoredConfig as yr, PreviewTokenPayload as yt, invalidateTermCache as z, PortableTextUnknownBlock as zn, generateManifest as zr, invalidateBylineObjectCache as zt };
6245
- //# sourceMappingURL=index-M37iz29I.d.mts.map
6376
+ export { MenuItem as $, RouteCallerInput as $n, handleContentGet as $r, EmDashCollections as $t, WidgetType as A, PortableTextImageBlock as An, SchemaRegistry as Ar, createPluginManager as At, CreateTermInput as B, getSections as Bn, RevisionResponse as Br, invalidateCollectionCache as Bt, CreateWidgetInput as C, CreateMediaInput as Ci, sanitizeHref as Cn, PluginDescriptor as Cr, parseContentId as Ct, Widget as D, DatabaseConfig as Di, prosemirrorToPortableText as Dn, StorageDescriptor as Dr, createNoopSandboxRunner as Dt, UpdateWidgetInput as E, ContentRepository as Ei, portableTextToProsemirror as En, S3StorageConfig as Er, SandboxNotAvailableError as Et, getTaxonomyDefs as F, PortableTextUnknownBlock as Fn, handleMediaDelete as Fr, CachedQueryOptions as Ft, getByline as G, UpdateSectionInput as Gn, handleContentAuthors as Gr, invalidateTaxonomyObjectCache as Gt, TaxonomyTerm as H, GetSectionsOptions as Hn, handleRevisionList as Hr, invalidateMenuObjectCache as Ht, getTaxonomyTerms as I, ProseMirrorDocument as In, handleMediaGet as Ir, cachedQuery as It, getMenu as J, SandboxedPluginEntry as Jn, handleContentCountTrashed as Jr, CacheHint as Jt, getBylineBySlug as K, EmDashRuntime as Kn, handleContentCompare as Kr, WaitUntilFn as Kt, getTerm as L, ProseMirrorMark as Ln, handleMediaList as Lr, contentNamespace as Lt, getEntriesByTerm as M, PortableTextMarkDef as Mn, MediaListResponse as Mr, pluginManifestSchema as Mt, getEntryTerms as N, PortableTextSpan as Nn, MediaResponse as Nr, definePlugin as Nt, WidgetArea as O, EmDashDatabaseError as Oi, PortableTextCodeBlock as On, getCollectionInfo as Or, NodeCronScheduler as Ot, getTaxonomyDef as P, PortableTextTextBlock as Pn, handleMediaCreate as Pr, CacheNamespace as Pt, Menu as Q, PluginRouteError as Qn, handleContentDuplicate as Qr, EditFieldMeta as Qt, getTermsForEntries as R, ProseMirrorNode as Rn, handleMediaUpdate as Rr, contentNamespaces as Rt, CreateWidgetAreaInput as S, UserRepository as Si, isSafeHref as Sn, EmDashConfig as Sr, generatePreviewToken as St, ReorderWidgetsInput as T, MediaRepository as Ti, hashString as Tn, LocalStorageConfig as Tr, NoopSandboxRunner as Tt, TaxonomyTermRow as U, Section as Un, handleRevisionRestore as Ur, invalidateObjectCache as Ut, TaxonomyDef as V, CreateSectionInput as Vn, handleRevisionGet as Vr, invalidateCommentObjectCache as Vt, UpdateTermInput as W, SectionSource as Wn, generateManifest as Wr, invalidateSchemaObjectCache as Wt, CreateMenuInput as X, CronScheduler as Xn, handleContentDelete as Xr, CollectionResult as Xt, getMenus as Y, PublishedRef as Yn, handleContentCreate as Yr, CollectionFilter as Yt, CreateMenuItemInput as Z, SystemCleanupFn as Zn, handleContentDiscardDraft as Zr, ContentEntry as Zt, SuggestOptions as _, FileValue as _i, EntryFilter as _n, SerializedRequest as _r, getPreviewUrl as _t, search as a, handleContentRestore as ai, getEditMeta as an, createHttpAccess as ar, GetCommentsResult as at, getWidgetAreas as b, CompoundSelectLimitedAdapter as bi, emdashLoader as bn, getSandboxRouteErrorDetails as br, VerifyPreviewTokenOptions as bt, FTSManager as c, handleContentUnpublish as ci, getTranslations as cn, SandboxEmailSendCallback as cr, getPluginSetting as ct, SearchConfig as d, portableText as di, EditProxy as dn, SandboxRouteErrorDetails as dr, getSiteSettings as dt, handleContentGetIncludingTrashed as ei, EntryResult as en, RouteMeta as er, MenuItemType as et, SearchOptions as f, reference as fi, FieldAnnotation as fn, SandboxRouteErrorEnvelope as fr, setSiteSettings as ft, SearchTokenizer as g, FieldUIHints as gi, EntryData as gn, SandboxedPluginInstance as gr, buildPreviewUrl as gt, SearchStats as h, FieldDefinition as hi, CollectionFilter$1 as hn, SandboxUnavailableError as hr, GetPreviewUrlOptions as ht, getSuggestions as i, handleContentPublish as ii, TranslationsResult as in, createHookPipeline as ir, GetCommentsOptions as it, getAllTermsForEntries as j, PortableTextLinkMark as jn, markContentMediaUsageCollectionStaleSafely as jr, ValidatedPluginManifest as jt, WidgetComponentDef as k, PortableTextHtmlBlock as kn, SchemaError as kr, PluginManager as kt, CollectionSearchOptions as l, handleContentUnschedule as li, resolveEmDashPath as ln, SandboxOptions as lr, getPluginSettings as lt, SearchResult as m, image as mi, createNoop as mn, SandboxRunnerFactory as mr, isPreviewRequest as mt, extractSearchableFields as n, handleContentListTrashed as ni, ResolvePathResult as nn, HookPipeline as nr, UpdateMenuInput as nt, searchCollection as o, handleContentSchedule as oi, getEmDashCollection as on, createUnrestrictedHttpAccess as or, getCommentCount as ot, SearchResponse as p, file as pi, createEditable as pn, SandboxRunner as pr, getPreviewToken as pt, getEntriesByByline as q, MediaUsageMaintenanceResult as qn, handleContentCountScheduled as qr, after as qt, getSearchStats as r, handleContentPermanentDelete as ri, TranslationSummary as rn, HookResult as rr, UpdateMenuItemInput as rt, searchWithDb as s, handleContentTranslations as si, getEmDashEntry as sn, SandboxEmailMessage as sr, getComments as st, extractPlainText as t, handleContentList as ti, InferCollectionData as tn, EmailPipeline as tr, ReorderMenuItemsInput as tt, SEARCH_TOKENIZERS as u, handleContentUpdate as ui, CMSAnnotation as un, SandboxRouteErrorCode as ur, getSiteSetting as ut, Suggestion as v, ImageValue as vi, WhereRange as vn, createSandboxRouteError as vr, GeneratePreviewTokenOptions as vt, PropDef as w, MediaItem as wi, computeContentHash as wn, getStoredConfig as wr, verifyPreviewToken as wt, getWidgetComponents as x, PluginStorageRepository as xi, getDb as xn, getSandboxRouteErrorEnvelope as xr, VerifyPreviewTokenResult as xt, getWidgetArea as y, PortableTextBlock$1 as yi, WhereValue as yn, createSandboxRouteErrorEnvelope as yr, PreviewTokenPayload as yt, invalidateTermCache as z, getSection as zn, RevisionListResponse as zr, invalidateBylineObjectCache as zt };
6377
+ //# sourceMappingURL=index-BVBZj4-7.d.mts.map