emdash 0.35.0 → 0.37.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 (971) hide show
  1. package/dist/activation-K0kGBWuJ.mjs +382 -0
  2. package/dist/activation-K0kGBWuJ.mjs.map +1 -0
  3. package/dist/{adapters-Bb1vG41D.d.mts → adapters-BDQwg236.d.mts} +6 -4
  4. package/dist/{adapters-Bb1vG41D.d.mts.map → adapters-BDQwg236.d.mts.map} +1 -1
  5. package/dist/{allowed-origins-DW7sYyqg.mjs → allowed-origins-BGglilcs.mjs} +2 -2
  6. package/dist/{allowed-origins-DW7sYyqg.mjs.map → allowed-origins-BGglilcs.mjs.map} +1 -1
  7. package/dist/api/route-utils.d.mts +3 -3
  8. package/dist/api/route-utils.mjs +23 -21
  9. package/dist/api/route-utils.mjs.map +1 -1
  10. package/dist/api/schemas/index.d.mts +2 -2
  11. package/dist/api/schemas/index.mjs +5 -5
  12. package/dist/api-Dz6rgoa3.mjs +10040 -0
  13. package/dist/api-Dz6rgoa3.mjs.map +1 -0
  14. package/dist/{api-tokens-KO24G1Fd.mjs → api-tokens-BSsQACNe.mjs} +2 -2
  15. package/dist/{api-tokens-KO24G1Fd.mjs.map → api-tokens-BSsQACNe.mjs.map} +1 -1
  16. package/dist/{apply-kUDt80-G.mjs → apply-B4SIOxR1.mjs} +34 -35
  17. package/dist/{apply-kUDt80-G.mjs.map → apply-B4SIOxR1.mjs.map} +1 -1
  18. package/dist/astro/image-endpoint.mjs +2 -2
  19. package/dist/astro/image-endpoint.mjs.map +1 -1
  20. package/dist/astro/index.d.mts +12 -12
  21. package/dist/astro/index.d.mts.map +1 -1
  22. package/dist/astro/index.mjs +128 -44
  23. package/dist/astro/index.mjs.map +1 -1
  24. package/dist/astro/middleware/auth.d.mts +10 -10
  25. package/dist/astro/middleware/auth.d.mts.map +1 -1
  26. package/dist/astro/middleware/auth.mjs +10 -7
  27. package/dist/astro/middleware/auth.mjs.map +1 -1
  28. package/dist/astro/middleware/media-usage-write-fence.mjs +2 -2
  29. package/dist/astro/middleware/redirect.mjs +4 -4
  30. package/dist/astro/middleware/request-context.mjs +3 -3
  31. package/dist/astro/middleware/setup.mjs +1 -1
  32. package/dist/astro/middleware.d.mts +11 -12
  33. package/dist/astro/middleware.d.mts.map +1 -1
  34. package/dist/astro/middleware.mjs +237 -1412
  35. package/dist/astro/middleware.mjs.map +1 -1
  36. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +6 -6
  37. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +6 -6
  38. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +3 -3
  39. package/dist/astro/routes/api/admin/api-tokens/index.d.mts.map +1 -1
  40. package/dist/astro/routes/api/admin/api-tokens/index.mjs +5 -5
  41. package/dist/astro/routes/api/admin/api-tokens/index.mjs.map +1 -1
  42. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +4 -4
  43. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +9 -9
  44. package/dist/astro/routes/api/admin/byline-fields/index.mjs +9 -9
  45. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +9 -9
  46. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +16 -16
  47. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +16 -16
  48. package/dist/astro/routes/api/admin/bylines/index.mjs +16 -16
  49. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +13 -13
  50. package/dist/astro/routes/api/admin/comments/_id_.mjs +5 -5
  51. package/dist/astro/routes/api/admin/comments/bulk.mjs +10 -10
  52. package/dist/astro/routes/api/admin/comments/counts.mjs +5 -5
  53. package/dist/astro/routes/api/admin/comments/index.mjs +10 -10
  54. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +4 -4
  55. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +3 -3
  56. package/dist/astro/routes/api/admin/media-usage/activation.d.mts +9 -0
  57. package/dist/astro/routes/api/admin/media-usage/activation.d.mts.map +1 -0
  58. package/dist/astro/routes/api/admin/media-usage/activation.mjs +46 -0
  59. package/dist/astro/routes/api/admin/media-usage/activation.mjs.map +1 -0
  60. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +14 -13
  61. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -1
  62. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +14 -13
  63. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -1
  64. package/dist/astro/routes/api/admin/media-usage/progress.d.mts +9 -0
  65. package/dist/astro/routes/api/admin/media-usage/progress.d.mts.map +1 -0
  66. package/dist/astro/routes/api/admin/media-usage/progress.mjs +44 -0
  67. package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -0
  68. package/dist/astro/routes/api/admin/media-usage/repair.mjs +16 -11
  69. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  70. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +14 -13
  71. package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -1
  72. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +14 -13
  73. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -1
  74. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +4 -4
  75. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs.map +1 -1
  76. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +4 -4
  77. package/dist/astro/routes/api/admin/oauth-clients/index.mjs.map +1 -1
  78. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +55 -49
  79. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
  80. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +55 -49
  81. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
  82. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +53 -47
  83. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  84. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +4 -4
  85. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +53 -47
  86. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  87. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +54 -48
  88. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  89. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +54 -48
  90. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  91. package/dist/astro/routes/api/admin/plugins/index.mjs +53 -47
  92. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  93. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
  94. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +53 -47
  95. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +54 -48
  97. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +53 -47
  99. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  100. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +54 -48
  101. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.d.mts.map +1 -1
  103. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +60 -50
  104. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  105. package/dist/astro/routes/api/admin/plugins/registry/artifact.d.mts.map +1 -1
  106. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +179 -139
  107. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  108. package/dist/astro/routes/api/admin/plugins/registry/install.d.mts.map +1 -1
  109. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +61 -51
  110. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  111. package/dist/astro/routes/api/admin/plugins/registry/verify.d.mts +8 -0
  112. package/dist/astro/routes/api/admin/plugins/registry/verify.d.mts.map +1 -0
  113. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +93 -0
  114. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -0
  115. package/dist/astro/routes/api/admin/plugins/updates.mjs +53 -47
  116. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  117. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +53 -47
  118. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  119. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
  120. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +53 -47
  121. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  122. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +2 -2
  123. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +1 -1
  124. package/dist/astro/routes/api/admin/users/_id_/index.mjs +7 -7
  125. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +3 -3
  126. package/dist/astro/routes/api/admin/users/index.mjs +6 -6
  127. package/dist/astro/routes/api/auth/dev-bypass.mjs +3 -3
  128. package/dist/astro/routes/api/auth/invite/accept.mjs +1 -1
  129. package/dist/astro/routes/api/auth/invite/complete.mjs +11 -11
  130. package/dist/astro/routes/api/auth/invite/index.mjs +8 -8
  131. package/dist/astro/routes/api/auth/invite/register-options.mjs +10 -10
  132. package/dist/astro/routes/api/auth/logout.mjs +2 -2
  133. package/dist/astro/routes/api/auth/magic-link/send.mjs +10 -10
  134. package/dist/astro/routes/api/auth/magic-link/verify.mjs +2 -2
  135. package/dist/astro/routes/api/auth/me.d.mts.map +1 -1
  136. package/dist/astro/routes/api/auth/me.mjs +19 -9
  137. package/dist/astro/routes/api/auth/me.mjs.map +1 -1
  138. package/dist/astro/routes/api/auth/mode.mjs +2 -2
  139. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +4 -4
  140. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  141. package/dist/astro/routes/api/auth/passkey/_id_.mjs +6 -6
  142. package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
  143. package/dist/astro/routes/api/auth/passkey/options.mjs +12 -12
  144. package/dist/astro/routes/api/auth/passkey/register/options.mjs +10 -10
  145. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +11 -11
  146. package/dist/astro/routes/api/auth/passkey/verify.mjs +11 -11
  147. package/dist/astro/routes/api/auth/signup/complete.mjs +11 -11
  148. package/dist/astro/routes/api/auth/signup/request.mjs +10 -10
  149. package/dist/astro/routes/api/auth/signup/verify.mjs +1 -1
  150. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +14 -14
  151. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +13 -13
  152. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
  153. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts.map +1 -1
  154. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +14 -5
  155. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  156. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +3 -3
  157. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +2 -2
  158. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +11 -11
  159. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +13 -10
  160. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  161. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +17 -15
  162. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  163. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +17 -15
  164. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  165. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +3 -3
  166. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
  167. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +8 -8
  168. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +14 -14
  169. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
  170. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts.map +1 -1
  171. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +14 -5
  172. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  173. package/dist/astro/routes/api/content/_collection_/_id_.mjs +8 -8
  174. package/dist/astro/routes/api/content/_collection_/authors.mjs +2 -2
  175. package/dist/astro/routes/api/content/_collection_/index.mjs +8 -8
  176. package/dist/astro/routes/api/content/_collection_/trash.mjs +7 -7
  177. package/dist/astro/routes/api/dashboard.mjs +8 -8
  178. package/dist/astro/routes/api/dev/emails.mjs +2 -2
  179. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  180. package/dist/astro/routes/api/import/probe.mjs +17 -17
  181. package/dist/astro/routes/api/import/wordpress/analyze.mjs +2 -2
  182. package/dist/astro/routes/api/import/wordpress/execute.d.mts +11 -11
  183. package/dist/astro/routes/api/import/wordpress/execute.mjs +13 -13
  184. package/dist/astro/routes/api/import/wordpress/media.d.mts +10 -10
  185. package/dist/astro/routes/api/import/wordpress/media.mjs +11 -11
  186. package/dist/astro/routes/api/import/wordpress/prepare.mjs +9 -9
  187. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +11 -11
  188. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +12 -10
  189. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  190. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  191. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +17 -17
  192. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +11 -11
  193. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +27 -27
  194. package/dist/astro/routes/api/manifest.mjs +4 -4
  195. package/dist/astro/routes/api/manifest.mjs.map +1 -1
  196. package/dist/astro/routes/api/mcp.mjs +188 -65
  197. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  198. package/dist/astro/routes/api/media/_id_/confirm.mjs +11 -11
  199. package/dist/astro/routes/api/media/_id_/replace.d.mts +8 -0
  200. package/dist/astro/routes/api/media/_id_/replace.d.mts.map +1 -0
  201. package/dist/astro/routes/api/media/_id_/replace.mjs +91 -0
  202. package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -0
  203. package/dist/astro/routes/api/media/_id_/upload.mjs +6 -6
  204. package/dist/astro/routes/api/media/_id_/usage.mjs +18 -13
  205. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  206. package/dist/astro/routes/api/media/_id_.d.mts.map +1 -1
  207. package/dist/astro/routes/api/media/_id_.mjs +21 -13
  208. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  209. package/dist/astro/routes/api/media/file/_...key_.d.mts.map +1 -1
  210. package/dist/astro/routes/api/media/file/_...key_.mjs +3 -2
  211. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  212. package/dist/astro/routes/api/media/folders/_id_.d.mts +10 -0
  213. package/dist/astro/routes/api/media/folders/_id_.d.mts.map +1 -0
  214. package/dist/astro/routes/api/media/folders/_id_.mjs +52 -0
  215. package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -0
  216. package/dist/astro/routes/api/media/folders/index.d.mts +9 -0
  217. package/dist/astro/routes/api/media/folders/index.d.mts.map +1 -0
  218. package/dist/astro/routes/api/media/folders/index.mjs +41 -0
  219. package/dist/astro/routes/api/media/folders/index.mjs.map +1 -0
  220. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
  221. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
  222. package/dist/astro/routes/api/media/providers/index.mjs +2 -2
  223. package/dist/astro/routes/api/media/upload-url.mjs +16 -14
  224. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  225. package/dist/astro/routes/api/media.d.mts.map +1 -1
  226. package/dist/astro/routes/api/media.mjs +59 -27
  227. package/dist/astro/routes/api/media.mjs.map +1 -1
  228. package/dist/astro/routes/api/menus/_name_/items/_id_.d.mts.map +1 -1
  229. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +20 -13
  230. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  231. package/dist/astro/routes/api/menus/_name_/items.d.mts.map +1 -1
  232. package/dist/astro/routes/api/menus/_name_/items.mjs +15 -11
  233. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  234. package/dist/astro/routes/api/menus/_name_/reorder.d.mts.map +1 -1
  235. package/dist/astro/routes/api/menus/_name_/reorder.mjs +15 -11
  236. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  237. package/dist/astro/routes/api/menus/_name_/translations.d.mts.map +1 -1
  238. package/dist/astro/routes/api/menus/_name_/translations.mjs +16 -12
  239. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  240. package/dist/astro/routes/api/menus/_name_.d.mts.map +1 -1
  241. package/dist/astro/routes/api/menus/_name_.mjs +21 -14
  242. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  243. package/dist/astro/routes/api/menus/index.d.mts.map +1 -1
  244. package/dist/astro/routes/api/menus/index.mjs +15 -11
  245. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  246. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  247. package/dist/astro/routes/api/oauth/device/authorize.mjs +5 -5
  248. package/dist/astro/routes/api/oauth/device/code.mjs +8 -8
  249. package/dist/astro/routes/api/oauth/device/token.mjs +7 -7
  250. package/dist/astro/routes/api/oauth/register.mjs +2 -2
  251. package/dist/astro/routes/api/oauth/token/refresh.mjs +5 -5
  252. package/dist/astro/routes/api/oauth/token/revoke.mjs +5 -5
  253. package/dist/astro/routes/api/oauth/token.mjs +5 -5
  254. package/dist/astro/routes/api/openapi.json.mjs +253 -40
  255. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  256. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +4 -4
  257. package/dist/astro/routes/api/redirects/404s/index.mjs +10 -10
  258. package/dist/astro/routes/api/redirects/404s/summary.mjs +10 -10
  259. package/dist/astro/routes/api/redirects/_id_.mjs +11 -11
  260. package/dist/astro/routes/api/redirects/index.mjs +11 -11
  261. package/dist/astro/routes/api/relations/_id_/index.mjs +17 -15
  262. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  263. package/dist/astro/routes/api/relations/_id_/translations.mjs +12 -10
  264. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +1 -1
  265. package/dist/astro/routes/api/relations/index.mjs +17 -15
  266. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  267. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
  268. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +3 -3
  269. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +53 -47
  270. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  271. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +53 -47
  272. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  273. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +53 -47
  274. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  275. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +53 -47
  276. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  277. package/dist/astro/routes/api/schema/collections/index.mjs +53 -47
  278. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  279. package/dist/astro/routes/api/schema/collections/reorder.mjs +53 -47
  280. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  281. package/dist/astro/routes/api/schema/index.mjs +10 -8
  282. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  283. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +53 -47
  284. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  285. package/dist/astro/routes/api/schema/orphans/index.mjs +53 -47
  286. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  287. package/dist/astro/routes/api/search/enable.mjs +10 -10
  288. package/dist/astro/routes/api/search/index.mjs +9 -9
  289. package/dist/astro/routes/api/search/rebuild.mjs +10 -10
  290. package/dist/astro/routes/api/search/stats.mjs +5 -5
  291. package/dist/astro/routes/api/search/suggest.mjs +9 -9
  292. package/dist/astro/routes/api/sections/_slug_.mjs +9 -9
  293. package/dist/astro/routes/api/sections/index.mjs +9 -9
  294. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +6 -6
  295. package/dist/astro/routes/api/settings/backups/archives/index.mjs +5 -5
  296. package/dist/astro/routes/api/settings/backups/export.mjs +6 -6
  297. package/dist/astro/routes/api/settings/backups/index.mjs +7 -7
  298. package/dist/astro/routes/api/settings/email.mjs +5 -5
  299. package/dist/astro/routes/api/settings/email.mjs.map +1 -1
  300. package/dist/astro/routes/api/settings.d.mts.map +1 -1
  301. package/dist/astro/routes/api/settings.mjs +20 -16
  302. package/dist/astro/routes/api/settings.mjs.map +1 -1
  303. package/dist/astro/routes/api/setup/admin-verify.mjs +12 -12
  304. package/dist/astro/routes/api/setup/admin.mjs +11 -11
  305. package/dist/astro/routes/api/setup/dev-bypass.d.mts.map +1 -1
  306. package/dist/astro/routes/api/setup/dev-bypass.mjs +35 -28
  307. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  308. package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
  309. package/dist/astro/routes/api/setup/index.mjs +32 -30
  310. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  311. package/dist/astro/routes/api/setup/status.mjs +3 -3
  312. package/dist/astro/routes/api/snapshot.mjs +7 -7
  313. package/dist/astro/routes/api/taxonomies/_name_/reorder.d.mts.map +1 -1
  314. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +20 -16
  315. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  316. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.d.mts.map +1 -1
  317. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +21 -17
  318. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  319. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.d.mts.map +1 -1
  320. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -18
  321. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  322. package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts.map +1 -1
  323. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +20 -16
  324. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  325. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +14 -14
  326. package/dist/astro/routes/api/taxonomies/_name_.d.mts.map +1 -1
  327. package/dist/astro/routes/api/taxonomies/_name_.mjs +26 -19
  328. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  329. package/dist/astro/routes/api/taxonomies/index.d.mts.map +1 -1
  330. package/dist/astro/routes/api/taxonomies/index.mjs +20 -16
  331. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  332. package/dist/astro/routes/api/themes/preview.mjs +5 -5
  333. package/dist/astro/routes/api/typegen.mjs +4 -4
  334. package/dist/astro/routes/api/well-known/auth.mjs +2 -2
  335. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  336. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  337. package/dist/astro/routes/api/widget-areas/_name_/reorder.d.mts.map +1 -1
  338. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +10 -8
  339. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  340. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts.map +1 -1
  341. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +17 -13
  342. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  343. package/dist/astro/routes/api/widget-areas/_name_/widgets.d.mts.map +1 -1
  344. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +15 -12
  345. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  346. package/dist/astro/routes/api/widget-areas/_name_.d.mts.map +1 -1
  347. package/dist/astro/routes/api/widget-areas/_name_.mjs +8 -6
  348. package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
  349. package/dist/astro/routes/api/widget-areas/index.d.mts.map +1 -1
  350. package/dist/astro/routes/api/widget-areas/index.mjs +15 -12
  351. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  352. package/dist/astro/routes/api/widget-components.mjs +2 -2
  353. package/dist/astro/routes/robots.txt.mjs +7 -7
  354. package/dist/astro/routes/sitemap-_collection_.xml.mjs +10 -10
  355. package/dist/astro/routes/sitemap.xml.mjs +8 -8
  356. package/dist/astro/types.d.mts +37 -17
  357. package/dist/astro/types.d.mts.map +1 -1
  358. package/dist/auth/providers/github.d.mts +1 -1
  359. package/dist/auth/providers/google.d.mts +1 -1
  360. package/dist/{authorize-DUElxgOQ.mjs → authorize-Bkf_UHhD.mjs} +2 -2
  361. package/dist/{authorize-DUElxgOQ.mjs.map → authorize-Bkf_UHhD.mjs.map} +1 -1
  362. package/dist/{backup-DWYpJlLj.mjs → backup-rwVAl9NI.mjs} +5 -5
  363. package/dist/{backup-DWYpJlLj.mjs.map → backup-rwVAl9NI.mjs.map} +1 -1
  364. package/dist/{bundle-vn56sLos.mjs → bundle-C8S2Zl6U.mjs} +4 -4
  365. package/dist/{bundle-vn56sLos.mjs.map → bundle-C8S2Zl6U.mjs.map} +1 -1
  366. package/dist/{byline-yjvWq4ip.mjs → byline-DuhF7NWl.mjs} +27 -14
  367. package/dist/byline-DuhF7NWl.mjs.map +1 -0
  368. package/dist/{byline-fields-txaLGoME.mjs → byline-fields-BovY4KYM.mjs} +2 -2
  369. package/dist/{byline-fields-txaLGoME.mjs.map → byline-fields-BovY4KYM.mjs.map} +1 -1
  370. package/dist/{byline-registry-DDun8sxh.mjs → byline-registry-Bpu9-MVs.mjs} +2 -2
  371. package/dist/{byline-registry-DDun8sxh.mjs.map → byline-registry-Bpu9-MVs.mjs.map} +1 -1
  372. package/dist/{bylines-DjXS5p0P.mjs → bylines-CJ5nd6Lw.mjs} +7 -7
  373. package/dist/{bylines-DjXS5p0P.mjs.map → bylines-CJ5nd6Lw.mjs.map} +1 -1
  374. package/dist/{bylines-Bu7pchQ4.mjs → bylines-RwBAeOF1.mjs} +3 -3
  375. package/dist/{bylines-Bu7pchQ4.mjs.map → bylines-RwBAeOF1.mjs.map} +1 -1
  376. package/dist/{cache-C46-3Irl.mjs → cache-BF5Kvn59.mjs} +4 -4
  377. package/dist/{cache-C46-3Irl.mjs.map → cache-BF5Kvn59.mjs.map} +1 -1
  378. package/dist/capture-triggers-CNW1q3HK.mjs +362 -0
  379. package/dist/capture-triggers-CNW1q3HK.mjs.map +1 -0
  380. package/dist/{challenge-store-SIL5DsF2.mjs → challenge-store-DQN_Yrck.mjs} +5 -3
  381. package/dist/challenge-store-DQN_Yrck.mjs.map +1 -0
  382. package/dist/chrome-tags-D8fiZG94.mjs +24 -0
  383. package/dist/chrome-tags-D8fiZG94.mjs.map +1 -0
  384. package/dist/{chunks-fiZ8G9RJ.mjs → chunks-C4szrD8o.mjs} +2 -2
  385. package/dist/{chunks-fiZ8G9RJ.mjs.map → chunks-C4szrD8o.mjs.map} +1 -1
  386. package/dist/cli/index.mjs +37 -53
  387. package/dist/cli/index.mjs.map +1 -1
  388. package/dist/client/cf-access.d.mts +1 -1
  389. package/dist/client/index.d.mts +74 -4
  390. package/dist/client/index.d.mts.map +1 -1
  391. package/dist/client/index.mjs +54 -2
  392. package/dist/client/index.mjs.map +1 -1
  393. package/dist/{collection-deletion-DQPvMD8R.mjs → collection-deletion-Bj07NHbj.mjs} +13 -356
  394. package/dist/collection-deletion-Bj07NHbj.mjs.map +1 -0
  395. package/dist/{comment-reaction-D-2J84UE.mjs → comment-reaction-BhrvSHml.mjs} +2 -2
  396. package/dist/{comment-reaction-D-2J84UE.mjs.map → comment-reaction-BhrvSHml.mjs.map} +1 -1
  397. package/dist/{comment-Dxlep6cE.mjs → comment-vxOzWbZN.mjs} +2 -2
  398. package/dist/{comment-Dxlep6cE.mjs.map → comment-vxOzWbZN.mjs.map} +1 -1
  399. package/dist/{comments-CTfZtLmM.mjs → comments-Ct4ensnf.mjs} +2 -2
  400. package/dist/{comments-CTfZtLmM.mjs.map → comments-Ct4ensnf.mjs.map} +1 -1
  401. package/dist/{components-CQy3lh9x.mjs → components-DJbo1z0S.mjs} +1 -1
  402. package/dist/{components-CQy3lh9x.mjs.map → components-DJbo1z0S.mjs.map} +1 -1
  403. package/dist/{config-COQzTe5Q.d.mts → config-B9eZ340f.d.mts} +1 -1
  404. package/dist/{config-COQzTe5Q.d.mts.map → config-B9eZ340f.d.mts.map} +1 -1
  405. package/dist/config-it29yDLA.mjs +1163 -0
  406. package/dist/config-it29yDLA.mjs.map +1 -0
  407. package/dist/{content-ZHCc1ngN.mjs → content-DjvM0T92.mjs} +86 -45
  408. package/dist/content-DjvM0T92.mjs.map +1 -0
  409. package/dist/{content-list-query-wJ2WN8Vp.d.mts → content-list-query-Btqd4uV2.d.mts} +1 -1
  410. package/dist/{content-list-query-wJ2WN8Vp.d.mts.map → content-list-query-Btqd4uV2.d.mts.map} +1 -1
  411. package/dist/{content-refresh-B_8SJzuU.mjs → content-refresh-Bwp-8yGy.mjs} +1139 -111
  412. package/dist/content-refresh-Bwp-8yGy.mjs.map +1 -0
  413. package/dist/{media-usage-BZCydfvu.mjs → content-repair-Czdp7jz5.mjs} +5 -196
  414. package/dist/content-repair-Czdp7jz5.mjs.map +1 -0
  415. package/dist/{context-ZldbZcle.mjs → context-CX6gxOLW.mjs} +55 -20
  416. package/dist/context-CX6gxOLW.mjs.map +1 -0
  417. package/dist/{cron-Y9aLtgrA.mjs → cron-C6o7VppJ.mjs} +1 -1
  418. package/dist/{cron-Y9aLtgrA.mjs.map → cron-C6o7VppJ.mjs.map} +1 -1
  419. package/dist/{dashboard-DvHbk_cv.mjs → dashboard-C2kTeeRI.mjs} +5 -5
  420. package/dist/{dashboard-DvHbk_cv.mjs.map → dashboard-C2kTeeRI.mjs.map} +1 -1
  421. package/dist/db/index.d.mts +3 -3
  422. package/dist/db/index.mjs +3 -3
  423. package/dist/db/index.mjs.map +1 -1
  424. package/dist/db/libsql-migrations.d.mts +1 -1
  425. package/dist/db/libsql-migrations.mjs +4 -4
  426. package/dist/db/libsql.d.mts +1 -1
  427. package/dist/db/postgres-migrations.d.mts +1 -1
  428. package/dist/db/postgres-migrations.mjs +4 -4
  429. package/dist/db/postgres.d.mts +1 -1
  430. package/dist/db/postgres.d.mts.map +1 -1
  431. package/dist/db/postgres.mjs +19 -3
  432. package/dist/db/postgres.mjs.map +1 -1
  433. package/dist/db/sqlite-migrations.d.mts +1 -1
  434. package/dist/db/sqlite-migrations.mjs +4 -4
  435. package/dist/db/sqlite.d.mts +1 -1
  436. package/dist/db/sqlite.mjs +3 -3
  437. package/dist/db/sqlite.mjs.map +1 -1
  438. package/dist/{default-DdDl3fxv.mjs → default-Clra32mw.mjs} +1 -1
  439. package/dist/{default-DdDl3fxv.mjs.map → default-Clra32mw.mjs.map} +1 -1
  440. package/dist/{deferred-tasks-SDWxrgzJ.d.mts → deferred-tasks-CvDETTJO.d.mts} +1 -1
  441. package/dist/{deferred-tasks-SDWxrgzJ.d.mts.map → deferred-tasks-CvDETTJO.d.mts.map} +1 -1
  442. package/dist/dev-typegen-DzOPfsNj.mjs +29 -0
  443. package/dist/dev-typegen-DzOPfsNj.mjs.map +1 -0
  444. package/dist/{device-flow-C0GdD_z8.mjs → device-flow-D2oCWvLJ.mjs} +5 -5
  445. package/dist/{device-flow-C0GdD_z8.mjs.map → device-flow-D2oCWvLJ.mjs.map} +1 -1
  446. package/dist/{direct-executor-CDXeJCSs.mjs → direct-executor-Bfa5_ToE.mjs} +3 -3
  447. package/dist/{direct-executor-CDXeJCSs.mjs.map → direct-executor-Bfa5_ToE.mjs.map} +1 -1
  448. package/dist/{dist-D_6CKR8z.mjs → dist-89xCrGqi.mjs} +1 -1
  449. package/dist/{dist-D_6CKR8z.mjs.map → dist-89xCrGqi.mjs.map} +1 -1
  450. package/dist/{email-console-BHNjIwiB.mjs → email-console-Dzb6uGYa.mjs} +1 -1
  451. package/dist/{email-console-BHNjIwiB.mjs.map → email-console-Dzb6uGYa.mjs.map} +1 -1
  452. package/dist/{enrich-_ySMEvEE.mjs → enrich-BX0IDp4z.mjs} +3 -3
  453. package/dist/{enrich-_ySMEvEE.mjs.map → enrich-BX0IDp4z.mjs.map} +1 -1
  454. package/dist/{error-DupyJZE2.mjs → error-DFrQjppn.mjs} +2 -2
  455. package/dist/{error-DupyJZE2.mjs.map → error-DFrQjppn.mjs.map} +1 -1
  456. package/dist/{errors-CLUPm7aD.mjs → errors-DsVoDUjJ.mjs} +24 -2
  457. package/dist/errors-DsVoDUjJ.mjs.map +1 -0
  458. package/dist/{escape-DUY2r2Zs.mjs → escape-HmHTC1Is.mjs} +1 -1
  459. package/dist/{escape-DUY2r2Zs.mjs.map → escape-HmHTC1Is.mjs.map} +1 -1
  460. package/dist/{field-defs-cache-BzwBlJrR.mjs → field-defs-cache-BM4SIRqH.mjs} +5 -5
  461. package/dist/{field-defs-cache-BzwBlJrR.mjs.map → field-defs-cache-BM4SIRqH.mjs.map} +1 -1
  462. package/dist/focal-point-BeWFo6Xx.mjs +23 -0
  463. package/dist/focal-point-BeWFo6Xx.mjs.map +1 -0
  464. package/dist/{fts-manager-DyZEohZC.mjs → fts-manager-Do1BlW2r.mjs} +3 -3
  465. package/dist/{fts-manager-DyZEohZC.mjs.map → fts-manager-Do1BlW2r.mjs.map} +1 -1
  466. package/dist/{hash-Cg0TXJPV.mjs → hash-3JJPlHF2.mjs} +1 -1
  467. package/dist/{hash-Cg0TXJPV.mjs.map → hash-3JJPlHF2.mjs.map} +1 -1
  468. package/dist/hook-result-DCh2WUpe.d.mts +31 -0
  469. package/dist/hook-result-DCh2WUpe.d.mts.map +1 -0
  470. package/dist/{hreflang-DwT2E0Sa.d.mts → hreflang-B6hbAuuO.d.mts} +2 -2
  471. package/dist/{hreflang-DwT2E0Sa.d.mts.map → hreflang-B6hbAuuO.d.mts.map} +1 -1
  472. package/dist/{hreflang-BBe83kKa.mjs → hreflang-DQbPZliA.mjs} +7 -7
  473. package/dist/{hreflang-BBe83kKa.mjs.map → hreflang-DQbPZliA.mjs.map} +1 -1
  474. package/dist/{identity-Ys6Dlc9C.mjs → identity-DksvEazf.mjs} +3 -3
  475. package/dist/{identity-Ys6Dlc9C.mjs.map → identity-DksvEazf.mjs.map} +1 -1
  476. package/dist/{import-DPkLmeXO.mjs → import-CJpaBBBT.mjs} +6 -6
  477. package/dist/{import-DPkLmeXO.mjs.map → import-CJpaBBBT.mjs.map} +1 -1
  478. package/dist/{index-BVBZj4-7.d.mts → index-BJNMCWmu.d.mts} +267 -82
  479. package/dist/index-BJNMCWmu.d.mts.map +1 -0
  480. package/dist/{index-C9KuQyO-.d.mts → index-Du8K7bWa.d.mts} +3 -3
  481. package/dist/{index-C9KuQyO-.d.mts.map → index-Du8K7bWa.d.mts.map} +1 -1
  482. package/dist/index.d.mts +22 -21
  483. package/dist/index.mjs +79 -73
  484. package/dist/{init-lock-6b309ZrF.mjs → init-lock-DJkX6Hto.mjs} +1 -1
  485. package/dist/{init-lock-6b309ZrF.mjs.map → init-lock-DJkX6Hto.mjs.map} +1 -1
  486. package/dist/{load-YJ2xl3ra.mjs → load-CawHjTOH.mjs} +2 -2
  487. package/dist/{load-YJ2xl3ra.mjs.map → load-CawHjTOH.mjs.map} +1 -1
  488. package/dist/{loader-CdG_Ci3H.mjs → loader-Z8vl7zTq.mjs} +48 -13
  489. package/dist/loader-Z8vl7zTq.mjs.map +1 -0
  490. package/dist/{manifest-builder-B252yQUf.mjs → manifest-builder-COtzuca2.mjs} +2 -2
  491. package/dist/{manifest-builder-B252yQUf.mjs.map → manifest-builder-COtzuca2.mjs.map} +1 -1
  492. package/dist/{manifest-schema-BXbUAHod.mjs → manifest-schema-BNWwR8Vd.mjs} +5 -5
  493. package/dist/manifest-schema-BNWwR8Vd.mjs.map +1 -0
  494. package/dist/media/image-endpoint.d.mts +4 -2
  495. package/dist/media/image-endpoint.d.mts.map +1 -1
  496. package/dist/media/image-endpoint.mjs +6 -4
  497. package/dist/media/image-endpoint.mjs.map +1 -1
  498. package/dist/media/index.d.mts +1 -1
  499. package/dist/media/index.mjs +13 -3
  500. package/dist/media/index.mjs.map +1 -1
  501. package/dist/media/local-runtime.d.mts +14 -12
  502. package/dist/media/local-runtime.d.mts.map +1 -1
  503. package/dist/media/local-runtime.mjs +12 -6
  504. package/dist/media/local-runtime.mjs.map +1 -1
  505. package/dist/{media-CzhAn2--.mjs → media-BBm8Wg3f.mjs} +69 -12
  506. package/dist/media-BBm8Wg3f.mjs.map +1 -0
  507. package/dist/{media-BWWWb8kg.mjs → media-BHjus86Y.mjs} +133 -9
  508. package/dist/media-BHjus86Y.mjs.map +1 -0
  509. package/dist/{media-allowlist-D6x-Us02.mjs → media-allowlist-CoTBWoDp.mjs} +3 -2
  510. package/dist/media-allowlist-CoTBWoDp.mjs.map +1 -0
  511. package/dist/media-folders-BGkATs8n.mjs +210 -0
  512. package/dist/media-folders-BGkATs8n.mjs.map +1 -0
  513. package/dist/{media-upload-CHBVn6m-.mjs → media-upload-BCidR-EY.mjs} +9 -9
  514. package/dist/{media-upload-CHBVn6m-.mjs.map → media-upload-BCidR-EY.mjs.map} +1 -1
  515. package/dist/{media-url-BvoX88FA.mjs → media-url-DHoPr0hq.mjs} +1 -1
  516. package/dist/{media-url-BvoX88FA.mjs.map → media-url-DHoPr0hq.mjs.map} +1 -1
  517. package/dist/media-usage-CdY5jhSR.mjs +1833 -0
  518. package/dist/media-usage-CdY5jhSR.mjs.map +1 -0
  519. package/dist/media-usage-activation-BgeMtK5C.mjs +78 -0
  520. package/dist/media-usage-activation-BgeMtK5C.mjs.map +1 -0
  521. package/dist/{media-usage-work-CLo_6tct.mjs → media-usage-work-CnGCdHxx.mjs} +4 -4
  522. package/dist/{media-usage-work-CLo_6tct.mjs.map → media-usage-work-CnGCdHxx.mjs.map} +1 -1
  523. package/dist/{media-usage-work-DrCbqBcl.mjs → media-usage-work-D6D9sMCA.mjs} +221 -59
  524. package/dist/media-usage-work-D6D9sMCA.mjs.map +1 -0
  525. package/dist/{media-usage-write-fence-aHEgN1zB.mjs → media-usage-write-fence-hjeD4u7s.mjs} +2 -2
  526. package/dist/{media-usage-write-fence-aHEgN1zB.mjs.map → media-usage-write-fence-hjeD4u7s.mjs.map} +1 -1
  527. package/dist/{menus-DSo5QeW0.mjs → menus-6qSwTNxG.mjs} +375 -107
  528. package/dist/menus-6qSwTNxG.mjs.map +1 -0
  529. package/dist/{menus-TCNSd2vp.mjs → menus-uvPLXMZf.mjs} +4 -4
  530. package/dist/{menus-TCNSd2vp.mjs.map → menus-uvPLXMZf.mjs.map} +1 -1
  531. package/dist/migrations/index.d.mts +1 -1
  532. package/dist/migrations/index.mjs +3 -3
  533. package/dist/{mime-DfIVjNkr.mjs → mime-CUIG6x84.mjs} +1 -1
  534. package/dist/mime-CUIG6x84.mjs.map +1 -0
  535. package/dist/{mode-BDoH_WcF.mjs → mode-DN_WneRx.mjs} +1 -1
  536. package/dist/{mode-BDoH_WcF.mjs.map → mode-DN_WneRx.mjs.map} +1 -1
  537. package/dist/node-sqlite-compat-BuJXIeMz.mjs +46 -0
  538. package/dist/node-sqlite-compat-BuJXIeMz.mjs.map +1 -0
  539. package/dist/{normalize-Bc-s_r-a.mjs → normalize-C2xNjTSG.mjs} +36 -5
  540. package/dist/normalize-C2xNjTSG.mjs.map +1 -0
  541. package/dist/{oauth-authorization-iOikmrJd.mjs → oauth-authorization-Dj6Kwc21.mjs} +5 -5
  542. package/dist/{oauth-authorization-iOikmrJd.mjs.map → oauth-authorization-Dj6Kwc21.mjs.map} +1 -1
  543. package/dist/{oauth-clients-CvI0nHMJ.mjs → oauth-clients-FD7I0J8m.mjs} +1 -1
  544. package/dist/{oauth-clients-CvI0nHMJ.mjs.map → oauth-clients-FD7I0J8m.mjs.map} +1 -1
  545. package/dist/{oauth-state-store-Ba8KZlwW.mjs → oauth-state-store-DkmDOmHs.mjs} +1 -1
  546. package/dist/{oauth-state-store-Ba8KZlwW.mjs.map → oauth-state-store-DkmDOmHs.mjs.map} +1 -1
  547. package/dist/{oauth-user-lookup-C5SQwGYC.mjs → oauth-user-lookup-CvIwGpYd.mjs} +1 -1
  548. package/dist/{oauth-user-lookup-C5SQwGYC.mjs.map → oauth-user-lookup-CvIwGpYd.mjs.map} +1 -1
  549. package/dist/object-cache/memory.d.mts +1 -1
  550. package/dist/{object-cache-71tPfV4A.mjs → object-cache-DVKnyOfy.mjs} +19 -3
  551. package/dist/object-cache-DVKnyOfy.mjs.map +1 -0
  552. package/dist/{options-CBXIHUoT.mjs → options-BHPeIbBd.mjs} +1 -1
  553. package/dist/{options-CBXIHUoT.mjs.map → options-BHPeIbBd.mjs.map} +1 -1
  554. package/dist/{options--hhz-jZ1.d.mts → options-CYb4y7hM.d.mts} +24 -11
  555. package/dist/options-CYb4y7hM.d.mts.map +1 -0
  556. package/dist/page/index.d.mts +2 -2
  557. package/dist/{parse-DFbuc-Fh.mjs → parse-Ckpg-Qfp.mjs} +2 -2
  558. package/dist/{parse-DFbuc-Fh.mjs.map → parse-Ckpg-Qfp.mjs.map} +1 -1
  559. package/dist/{passkey-config-DFAmUyuE.mjs → passkey-config-O_lj3y0k.mjs} +1 -1
  560. package/dist/{passkey-config-DFAmUyuE.mjs.map → passkey-config-O_lj3y0k.mjs.map} +1 -1
  561. package/dist/{patterns-CiyXeDgr.mjs → patterns-D9iDO3j8.mjs} +1 -1
  562. package/dist/{patterns-CiyXeDgr.mjs.map → patterns-D9iDO3j8.mjs.map} +1 -1
  563. package/dist/{placeholder-Dp0K3RkD.d.mts → placeholder-4X9BrRrp.d.mts} +7 -1
  564. package/dist/placeholder-4X9BrRrp.d.mts.map +1 -0
  565. package/dist/plugin-types.d.mts +8 -3
  566. package/dist/plugin-types.d.mts.map +1 -1
  567. package/dist/plugin-utils.d.mts +10 -10
  568. package/dist/plugins/adapt-sandbox-entry.d.mts +10 -10
  569. package/dist/plugins/adapt-sandbox-entry.mjs +2 -2
  570. package/dist/{policy-TluUIxuu.mjs → policy-Dhtwntrt.mjs} +2 -2
  571. package/dist/{policy-TluUIxuu.mjs.map → policy-Dhtwntrt.mjs.map} +1 -1
  572. package/dist/{portable-text-imBW5cHK.mjs → portable-text-U85hOafW.mjs} +1 -1
  573. package/dist/{portable-text-imBW5cHK.mjs.map → portable-text-U85hOafW.mjs.map} +1 -1
  574. package/dist/{preview-PW-nOnq4.mjs → preview-B_vJLvf8.mjs} +2 -2
  575. package/dist/{preview-PW-nOnq4.mjs.map → preview-B_vJLvf8.mjs.map} +1 -1
  576. package/dist/{protocol-DjsJHTlK.d.mts → protocol-JdD2YhY9.d.mts} +2 -2
  577. package/dist/{protocol-DjsJHTlK.d.mts.map → protocol-JdD2YhY9.d.mts.map} +1 -1
  578. package/dist/{public-url-CWoFhQT8.mjs → public-url-CarhZJgf.mjs} +1 -1
  579. package/dist/{public-url-CWoFhQT8.mjs.map → public-url-CarhZJgf.mjs.map} +1 -1
  580. package/dist/{query-zTVAR1Sl.mjs → query-BZKZcG5b.mjs} +15 -15
  581. package/dist/{query-zTVAR1Sl.mjs.map → query-BZKZcG5b.mjs.map} +1 -1
  582. package/dist/{query-BWs7O5Il.mjs → query-BndaFxxp.mjs} +5 -5
  583. package/dist/{query-BWs7O5Il.mjs.map → query-BndaFxxp.mjs.map} +1 -1
  584. package/dist/{rate-limit-Bx4g9m3p.mjs → rate-limit-BZmATC6W.mjs} +2 -2
  585. package/dist/{rate-limit-Bx4g9m3p.mjs.map → rate-limit-BZmATC6W.mjs.map} +1 -1
  586. package/dist/{redirect-COsS6SWJ.mjs → redirect-CZkbozu9.mjs} +2 -2
  587. package/dist/{redirect-COsS6SWJ.mjs.map → redirect-CZkbozu9.mjs.map} +1 -1
  588. package/dist/{redirect-BgAOGHDq.mjs → redirect-CzqnLxK-.mjs} +1 -1
  589. package/dist/{redirect-BgAOGHDq.mjs.map → redirect-CzqnLxK-.mjs.map} +1 -1
  590. package/dist/{redirects-DTDHWH31.mjs → redirects-BLNOWQTn.mjs} +64 -29
  591. package/dist/redirects-BLNOWQTn.mjs.map +1 -0
  592. package/dist/{redirects-DyChwDkG.mjs → redirects-CqzNM0KM.mjs} +5 -5
  593. package/dist/{redirects-DyChwDkG.mjs.map → redirects-CqzNM0KM.mjs.map} +1 -1
  594. package/dist/{registry-Cqa2I749.mjs → registry-AZAsRsor.mjs} +30 -126
  595. package/dist/registry-AZAsRsor.mjs.map +1 -0
  596. package/dist/{relation-BnHB0T4J.mjs → relation-04DfKRTO.mjs} +2 -2
  597. package/dist/{relation-BnHB0T4J.mjs.map → relation-04DfKRTO.mjs.map} +1 -1
  598. package/dist/{relations-BBApI4e2.mjs → relations-C4htk5sb.mjs} +7 -7
  599. package/dist/relations-C4htk5sb.mjs.map +1 -0
  600. package/dist/{relations-D5sM5fW0.mjs → relations-CcFwDJdJ.mjs} +4 -4
  601. package/dist/{relations-D5sM5fW0.mjs.map → relations-CcFwDJdJ.mjs.map} +1 -1
  602. package/dist/{relations-BHo5A8Zf.d.mts → relations-DnRK4YIT.d.mts} +347 -54
  603. package/dist/relations-DnRK4YIT.d.mts.map +1 -0
  604. package/dist/{request-cache-BSUptuJR.mjs → request-cache-DH9zdCOD.mjs} +1 -1
  605. package/dist/{request-cache-BSUptuJR.mjs.map → request-cache-DH9zdCOD.mjs.map} +1 -1
  606. package/dist/request-context.d.mts +1 -1
  607. package/dist/{request-meta-DgZJh3zG.mjs → request-meta-DYxLlnmz.mjs} +2 -2
  608. package/dist/{request-meta-DgZJh3zG.mjs.map → request-meta-DYxLlnmz.mjs.map} +1 -1
  609. package/dist/{resolve-DOhVEvty.mjs → resolve-prZ3mP7l.mjs} +1 -1
  610. package/dist/{resolve-DOhVEvty.mjs.map → resolve-prZ3mP7l.mjs.map} +1 -1
  611. package/dist/{runner-C1T11CfC.mjs → runner-BLIDKpmA.mjs} +471 -290
  612. package/dist/runner-BLIDKpmA.mjs.map +1 -0
  613. package/dist/{runner-BYHZn3Jy.d.mts → runner-YKfIMnaF.d.mts} +3 -2
  614. package/dist/runner-YKfIMnaF.d.mts.map +1 -0
  615. package/dist/runtime.d.mts +11 -11
  616. package/dist/runtime.mjs +1 -1
  617. package/dist/{schema-DZ5YVVZj.mjs → schema-CGnBeLiW.mjs} +3 -3
  618. package/dist/{schema-DZ5YVVZj.mjs.map → schema-CGnBeLiW.mjs.map} +1 -1
  619. package/dist/{schema-2AOsSn2v.mjs → schema-DYr-Vd-L.mjs} +36 -6
  620. package/dist/{schema-2AOsSn2v.mjs.map → schema-DYr-Vd-L.mjs.map} +1 -1
  621. package/dist/{scopes-8ClPF2bC.mjs → scopes-BhWvBavj.mjs} +3 -3
  622. package/dist/{scopes-8ClPF2bC.mjs.map → scopes-BhWvBavj.mjs.map} +1 -1
  623. package/dist/{search-u1QYdOCG.mjs → search-C-qDk4kx.mjs} +4 -4
  624. package/dist/{search-u1QYdOCG.mjs.map → search-C-qDk4kx.mjs.map} +1 -1
  625. package/dist/{secrets-BEgsAQEU.mjs → secrets-rEtHt-6z.mjs} +3 -3
  626. package/dist/{secrets-BEgsAQEU.mjs.map → secrets-rEtHt-6z.mjs.map} +1 -1
  627. package/dist/{sections-DmHviGyM.mjs → sections-B_nYvlwn.mjs} +2 -2
  628. package/dist/{sections-DmHviGyM.mjs.map → sections-B_nYvlwn.mjs.map} +1 -1
  629. package/dist/seed/index.d.mts +2 -2
  630. package/dist/seed/index.mjs +25 -23
  631. package/dist/seo/index.d.mts +3 -3
  632. package/dist/seo/index.mjs +17 -15
  633. package/dist/seo/index.mjs.map +1 -1
  634. package/dist/{seo-Dq4G-RrO.mjs → seo-926NRIgt.mjs} +3 -3
  635. package/dist/{seo-Dq4G-RrO.mjs.map → seo-926NRIgt.mjs.map} +1 -1
  636. package/dist/{seo-AFpVvTqr.mjs → seo-CVWkdv6x.mjs} +1 -1
  637. package/dist/{seo-AFpVvTqr.mjs.map → seo-CVWkdv6x.mjs.map} +1 -1
  638. package/dist/{service-BpArayPr.mjs → service-CJl3ZAYs.mjs} +3 -3
  639. package/dist/{service-BpArayPr.mjs.map → service-CJl3ZAYs.mjs.map} +1 -1
  640. package/dist/{session-user-BEorKVT-.mjs → session-user-BlMgqCHS.mjs} +1 -1
  641. package/dist/{session-user-BEorKVT-.mjs.map → session-user-BlMgqCHS.mjs.map} +1 -1
  642. package/dist/{settings-xRdoUZr0.mjs → settings--wobrkkC.mjs} +21 -8
  643. package/dist/settings--wobrkkC.mjs.map +1 -0
  644. package/dist/{settings-DE9xtzqd.mjs → settings-Cwm6o2jY.mjs} +3 -3
  645. package/dist/{settings-DE9xtzqd.mjs.map → settings-Cwm6o2jY.mjs.map} +1 -1
  646. package/dist/{setup-complete-BnT8pq_C.mjs → setup-complete-DQbClIN2.mjs} +2 -2
  647. package/dist/{setup-complete-BnT8pq_C.mjs.map → setup-complete-DQbClIN2.mjs.map} +1 -1
  648. package/dist/{setup-nonce-CBitf_oQ.mjs → setup-nonce-DZCFS2sn.mjs} +1 -1
  649. package/dist/{setup-nonce-CBitf_oQ.mjs.map → setup-nonce-DZCFS2sn.mjs.map} +1 -1
  650. package/dist/{single-flight-cache-B0eLKS6K.mjs → single-flight-cache-BPuGPdcN.mjs} +2 -2
  651. package/dist/{single-flight-cache-B0eLKS6K.mjs.map → single-flight-cache-BPuGPdcN.mjs.map} +1 -1
  652. package/dist/{site-url-DjpIXMXJ.mjs → site-url-BrxA_E9H.mjs} +3 -3
  653. package/dist/{site-url-DjpIXMXJ.mjs.map → site-url-BrxA_E9H.mjs.map} +1 -1
  654. package/dist/{snapshot-BBlGkb2q.mjs → snapshot--OCDTqdb.mjs} +1 -1
  655. package/dist/{snapshot-BBlGkb2q.mjs.map → snapshot--OCDTqdb.mjs.map} +1 -1
  656. package/dist/{ssrf-Cpvg_n3A.mjs → ssrf-5sIM5jzl.mjs} +23 -6
  657. package/dist/{ssrf-Cpvg_n3A.mjs.map → ssrf-5sIM5jzl.mjs.map} +1 -1
  658. package/dist/{state-DYwPue40.mjs → state-BpFVsJZB.mjs} +12 -4
  659. package/dist/state-BpFVsJZB.mjs.map +1 -0
  660. package/dist/{status-CWVYpbD8.mjs → status-B777-dXz.mjs} +1 -1
  661. package/dist/{status-CWVYpbD8.mjs.map → status-B777-dXz.mjs.map} +1 -1
  662. package/dist/storage/local.d.mts +2 -1
  663. package/dist/storage/local.d.mts.map +1 -1
  664. package/dist/storage/local.mjs +1 -1
  665. package/dist/storage/local.mjs.map +1 -1
  666. package/dist/storage/s3.d.mts +2 -1
  667. package/dist/storage/s3.d.mts.map +1 -1
  668. package/dist/storage/s3.mjs +3 -2
  669. package/dist/storage/s3.mjs.map +1 -1
  670. package/dist/{target-DixqqV5i.mjs → target-BmR0iTwz.mjs} +1 -1
  671. package/dist/{target-DixqqV5i.mjs.map → target-BmR0iTwz.mjs.map} +1 -1
  672. package/dist/{taxonomies-OHUIiIpI.mjs → taxonomies-DkAkMupr.mjs} +17 -14
  673. package/dist/taxonomies-DkAkMupr.mjs.map +1 -0
  674. package/dist/{taxonomies-BlrncHi9.mjs → taxonomies-Wfy_Lg12.mjs} +43 -17
  675. package/dist/taxonomies-Wfy_Lg12.mjs.map +1 -0
  676. package/dist/{taxonomy-BqCZ1TdU.mjs → taxonomy-tJepplLL.mjs} +5 -5
  677. package/dist/{taxonomy-BqCZ1TdU.mjs.map → taxonomy-tJepplLL.mjs.map} +1 -1
  678. package/dist/{tokens-C39klX8R.mjs → tokens-BCO1oruF.mjs} +1 -1
  679. package/dist/{tokens-C39klX8R.mjs.map → tokens-BCO1oruF.mjs.map} +1 -1
  680. package/dist/{transaction-NQj4VJ7Z.mjs → transaction-0KOpOyMu.mjs} +2 -1
  681. package/dist/{transaction-NQj4VJ7Z.mjs.map → transaction-0KOpOyMu.mjs.map} +1 -1
  682. package/dist/{transport-DBJwa-Si.mjs → transport-Dr3qtwXC.mjs} +4 -3
  683. package/dist/{transport-DBJwa-Si.mjs.map → transport-Dr3qtwXC.mjs.map} +1 -1
  684. package/dist/{transport-RQE36APG.d.mts → transport-xh6YKW2G.d.mts} +1 -1
  685. package/dist/{transport-RQE36APG.d.mts.map → transport-xh6YKW2G.d.mts.map} +1 -1
  686. package/dist/{trusted-proxy-CEVekpby.mjs → trusted-proxy-BR5F1Otp.mjs} +1 -1
  687. package/dist/{trusted-proxy-CEVekpby.mjs.map → trusted-proxy-BR5F1Otp.mjs.map} +1 -1
  688. package/dist/{types-BW1syrlw.mjs → types-3qNFPlci.mjs} +1 -1
  689. package/dist/{types-BW1syrlw.mjs.map → types-3qNFPlci.mjs.map} +1 -1
  690. package/dist/types-75KIqzL9.mjs.map +1 -1
  691. package/dist/{types-DrJrVCT1.d.mts → types-B6GrPic4.d.mts} +9 -3
  692. package/dist/{types-DrJrVCT1.d.mts.map → types-B6GrPic4.d.mts.map} +1 -1
  693. package/dist/{types-DN64_zzZ.d.mts → types-BuHW4xDE.d.mts} +11 -10
  694. package/dist/types-BuHW4xDE.d.mts.map +1 -0
  695. package/dist/{types-DWRhk9xZ.d.mts → types-C00oyCZp.d.mts} +1 -1
  696. package/dist/{types-DWRhk9xZ.d.mts.map → types-C00oyCZp.d.mts.map} +1 -1
  697. package/dist/{types-BntycPTF.d.mts → types-CDtkNSFQ.d.mts} +1 -1
  698. package/dist/{types-BntycPTF.d.mts.map → types-CDtkNSFQ.d.mts.map} +1 -1
  699. package/dist/{types-Dfk8KI5R.d.mts → types-CPeXo1wF.d.mts} +1 -1
  700. package/dist/{types-Dfk8KI5R.d.mts.map → types-CPeXo1wF.d.mts.map} +1 -1
  701. package/dist/types-CQPWhPxE.mjs.map +1 -1
  702. package/dist/{types-BcqdcT-r.d.mts → types-CXFkwEGC.d.mts} +3 -2
  703. package/dist/types-CXFkwEGC.d.mts.map +1 -0
  704. package/dist/{types-CtzytVXn.mjs → types-DM3vioBY.mjs} +1 -1
  705. package/dist/{types-CtzytVXn.mjs.map → types-DM3vioBY.mjs.map} +1 -1
  706. package/dist/{types-CXnOzDe1.d.mts → types-DczELMop.d.mts} +1 -1
  707. package/dist/{types-CXnOzDe1.d.mts.map → types-DczELMop.d.mts.map} +1 -1
  708. package/dist/types-DfuTR6dL.mjs +3 -0
  709. package/dist/{types-DQIDRKF2.d.mts → types-FV23hEoW.d.mts} +10 -1
  710. package/dist/types-FV23hEoW.d.mts.map +1 -0
  711. package/dist/{types-C2pMvO62.d.mts → types-xDMtUFnO.d.mts} +2 -1
  712. package/dist/types-xDMtUFnO.d.mts.map +1 -0
  713. package/dist/{upload-attempts-D4FS8LT6.mjs → upload-attempts-BsqoQ1fn.mjs} +1 -1
  714. package/dist/{upload-attempts-D4FS8LT6.mjs.map → upload-attempts-BsqoQ1fn.mjs.map} +1 -1
  715. package/dist/{url-pattern-BHS0V5Ng.mjs → url-pattern-D4c2czpJ.mjs} +1 -1
  716. package/dist/{url-pattern-BHS0V5Ng.mjs.map → url-pattern-D4c2czpJ.mjs.map} +1 -1
  717. package/dist/{user-DJZfUJVE.mjs → user-BTZ40aq6.mjs} +2 -2
  718. package/dist/{user-DJZfUJVE.mjs.map → user-BTZ40aq6.mjs.map} +1 -1
  719. package/dist/{utils-D4vD_Y98.mjs → utils-BKvNjjhY.mjs} +1 -1
  720. package/dist/{utils-D4vD_Y98.mjs.map → utils-BKvNjjhY.mjs.map} +1 -1
  721. package/dist/{validate-BMLBvxOC.mjs → validate-DE_LRwo9.mjs} +2 -2
  722. package/dist/{validate-BMLBvxOC.mjs.map → validate-DE_LRwo9.mjs.map} +1 -1
  723. package/dist/{validate-CTqt5nuE.d.mts → validate-DUP27OYD.d.mts} +5 -5
  724. package/dist/{validate-CTqt5nuE.d.mts.map → validate-DUP27OYD.d.mts.map} +1 -1
  725. package/dist/{validation-npvENUCB.mjs → validation-BMImFJ11.mjs} +10 -8
  726. package/dist/{validation-npvENUCB.mjs.map → validation-BMImFJ11.mjs.map} +1 -1
  727. package/dist/version-Bii3suaO.mjs +7 -0
  728. package/dist/{version-DB_fqCSI.mjs.map → version-Bii3suaO.mjs.map} +1 -1
  729. package/dist/{widgets-BD3ho7Rq.mjs → widgets-D3gJ10xU.mjs} +18 -5
  730. package/dist/widgets-D3gJ10xU.mjs.map +1 -0
  731. package/dist/{wxr-taxonomies-Ca68766D.d.mts → wxr-taxonomies-B2Og_6rU.d.mts} +1 -1
  732. package/dist/{wxr-taxonomies-Ca68766D.d.mts.map → wxr-taxonomies-B2Og_6rU.d.mts.map} +1 -1
  733. package/dist/{wxr-taxonomies-B1R3vBoD.mjs → wxr-taxonomies-Cxngsjwo.mjs} +4 -4
  734. package/dist/{wxr-taxonomies-B1R3vBoD.mjs.map → wxr-taxonomies-Cxngsjwo.mjs.map} +1 -1
  735. package/dist/{zod-generator-LC-on_Vb.mjs → zod-generator-BuYSQJB7.mjs} +32 -22
  736. package/dist/zod-generator-BuYSQJB7.mjs.map +1 -0
  737. package/package.json +20 -9
  738. package/src/api/errors.ts +22 -0
  739. package/src/api/handlers/content.ts +49 -11
  740. package/src/api/handlers/index.ts +18 -0
  741. package/src/api/handlers/manifest.ts +161 -12
  742. package/src/api/handlers/media-allowlist.ts +1 -0
  743. package/src/api/handlers/media-folders.ts +130 -0
  744. package/src/api/handlers/media-usage-activation.ts +102 -0
  745. package/src/api/handlers/media-usage.ts +108 -0
  746. package/src/api/handlers/media.ts +92 -2
  747. package/src/api/handlers/registry.ts +483 -561
  748. package/src/api/handlers/taxonomies.ts +16 -9
  749. package/src/api/openapi/document.ts +277 -7
  750. package/src/api/parse.ts +1 -1
  751. package/src/api/schemas/auth.ts +4 -4
  752. package/src/api/schemas/bylines.ts +3 -3
  753. package/src/api/schemas/comments.ts +1 -1
  754. package/src/api/schemas/common.ts +3 -2
  755. package/src/api/schemas/content.ts +78 -22
  756. package/src/api/schemas/media-usage.ts +77 -0
  757. package/src/api/schemas/media.ts +121 -0
  758. package/src/api/schemas/redirects.ts +6 -1
  759. package/src/api/schemas/schema.ts +4 -0
  760. package/src/api/schemas/setup.ts +1 -1
  761. package/src/api/schemas/taxonomies.ts +2 -2
  762. package/src/api/schemas/users.ts +1 -1
  763. package/src/api/types.ts +23 -10
  764. package/src/astro/dev-typegen.ts +35 -0
  765. package/src/astro/image-endpoint.ts +2 -2
  766. package/src/astro/integration/dev-typegen.ts +91 -0
  767. package/src/astro/integration/index.ts +9 -44
  768. package/src/astro/integration/routes.ts +23 -0
  769. package/src/astro/integration/vite-config.ts +23 -9
  770. package/src/astro/middleware/auth.ts +4 -0
  771. package/src/astro/middleware.ts +5 -7
  772. package/src/astro/routes/api/admin/api-tokens/index.ts +4 -1
  773. package/src/astro/routes/api/admin/media-usage/activation.ts +42 -0
  774. package/src/astro/routes/api/admin/media-usage/progress.ts +37 -0
  775. package/src/astro/routes/api/admin/oauth-clients/[id].ts +1 -1
  776. package/src/astro/routes/api/admin/oauth-clients/index.ts +1 -1
  777. package/src/astro/routes/api/admin/plugins/registry/[id]/update.ts +4 -0
  778. package/src/astro/routes/api/admin/plugins/registry/artifact.ts +247 -101
  779. package/src/astro/routes/api/admin/plugins/registry/install.ts +4 -0
  780. package/src/astro/routes/api/admin/plugins/registry/verify.ts +60 -0
  781. package/src/astro/routes/api/auth/me.ts +14 -2
  782. package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +8 -2
  783. package/src/astro/routes/api/content/[collection]/[id]/publish.ts +2 -1
  784. package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +6 -2
  785. package/src/astro/routes/api/manifest.ts +1 -1
  786. package/src/astro/routes/api/media/[id]/replace.ts +114 -0
  787. package/src/astro/routes/api/media/[id].ts +3 -0
  788. package/src/astro/routes/api/media/file/[...key].ts +4 -1
  789. package/src/astro/routes/api/media/folders/[id].ts +55 -0
  790. package/src/astro/routes/api/media/folders/index.ts +37 -0
  791. package/src/astro/routes/api/media/upload-url.ts +8 -4
  792. package/src/astro/routes/api/media.ts +66 -10
  793. package/src/astro/routes/api/menus/[name]/items/[id].ts +7 -2
  794. package/src/astro/routes/api/menus/[name]/items.ts +4 -1
  795. package/src/astro/routes/api/menus/[name]/reorder.ts +4 -1
  796. package/src/astro/routes/api/menus/[name]/translations.ts +4 -1
  797. package/src/astro/routes/api/menus/[name].ts +7 -2
  798. package/src/astro/routes/api/menus/index.ts +4 -1
  799. package/src/astro/routes/api/settings/email.ts +1 -1
  800. package/src/astro/routes/api/settings.ts +4 -1
  801. package/src/astro/routes/api/setup/dev-bypass.ts +12 -0
  802. package/src/astro/routes/api/taxonomies/[name]/reorder.ts +4 -1
  803. package/src/astro/routes/api/taxonomies/[name]/terms/[slug]/translations.ts +4 -1
  804. package/src/astro/routes/api/taxonomies/[name]/terms/[slug].ts +7 -2
  805. package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +4 -1
  806. package/src/astro/routes/api/taxonomies/[name].ts +7 -2
  807. package/src/astro/routes/api/taxonomies/index.ts +4 -1
  808. package/src/astro/routes/api/widget-areas/[name]/reorder.ts +3 -1
  809. package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +5 -2
  810. package/src/astro/routes/api/widget-areas/[name]/widgets.ts +3 -1
  811. package/src/astro/routes/api/widget-areas/[name].ts +3 -1
  812. package/src/astro/routes/api/widget-areas/index.ts +3 -1
  813. package/src/astro/types.ts +34 -6
  814. package/src/auth/challenge-store.ts +3 -1
  815. package/src/aws-sdk.d.ts +1 -0
  816. package/src/cache/chrome-tags.ts +24 -0
  817. package/src/client/index.ts +140 -2
  818. package/src/client/transport.ts +6 -2
  819. package/src/components/EmDashImage.astro +156 -51
  820. package/src/components/EmDashMedia.astro +2 -1
  821. package/src/components/Gallery.astro +7 -0
  822. package/src/components/InlinePortableTextEditor.tsx +136 -2
  823. package/src/components/LiveSearch.astro +23 -0
  824. package/src/components/inline-code-block.tsx +180 -49
  825. package/src/components/widgets/Archives.astro +2 -37
  826. package/src/content/converters/gallery.ts +2 -0
  827. package/src/content/converters/index.ts +2 -0
  828. package/src/content/converters/mark-safety.ts +1 -0
  829. package/src/content/converters/portable-text-identity.ts +139 -0
  830. package/src/content/converters/portable-text-to-prosemirror.ts +202 -69
  831. package/src/content/converters/prosemirror-to-portable-text.ts +96 -25
  832. package/src/content/converters/types.ts +3 -0
  833. package/src/database/connection.ts +2 -31
  834. package/src/database/index.ts +1 -1
  835. package/src/database/json-recordset.ts +16 -0
  836. package/src/database/migrations/017_authorization_codes.ts +14 -4
  837. package/src/database/migrations/019_i18n.ts +1 -1
  838. package/src/database/migrations/071_restore_content_bylines_table.ts +43 -0
  839. package/src/database/migrations/072_media_folders.ts +72 -0
  840. package/src/database/migrations/073_media_focal_point.ts +57 -0
  841. package/src/database/migrations/074_content_deleted_scheduled_index.ts +55 -0
  842. package/src/database/migrations/runner.ts +11 -3
  843. package/src/database/repositories/byline.ts +32 -16
  844. package/src/database/repositories/content.ts +119 -51
  845. package/src/database/repositories/media-folders.ts +115 -0
  846. package/src/database/repositories/media-usage-work.ts +395 -111
  847. package/src/database/repositories/media-usage.ts +1104 -47
  848. package/src/database/repositories/media.ts +156 -29
  849. package/src/database/repositories/plugin-storage.ts +74 -9
  850. package/src/database/repositories/types.ts +8 -7
  851. package/src/database/transaction.ts +1 -0
  852. package/src/database/types.ts +13 -0
  853. package/src/db/adapters.ts +10 -3
  854. package/src/db/node-sqlite-compat.ts +78 -0
  855. package/src/db/postgres.ts +23 -0
  856. package/src/db/sqlite.ts +3 -3
  857. package/src/emdash-runtime.ts +186 -251
  858. package/src/fields/boolean.ts +1 -1
  859. package/src/fields/datetime.ts +1 -1
  860. package/src/fields/file.ts +1 -1
  861. package/src/fields/image.ts +7 -1
  862. package/src/fields/integer.ts +1 -1
  863. package/src/fields/json.ts +1 -1
  864. package/src/fields/multiselect.ts +1 -1
  865. package/src/fields/number.ts +1 -1
  866. package/src/fields/portable-text.ts +1 -1
  867. package/src/fields/richtext.ts +1 -1
  868. package/src/fields/select.ts +1 -1
  869. package/src/fields/slug.ts +1 -1
  870. package/src/fields/text.ts +1 -1
  871. package/src/fields/textarea.ts +1 -1
  872. package/src/fields/types.ts +8 -4
  873. package/src/index.ts +30 -3
  874. package/src/loader.ts +63 -10
  875. package/src/mcp/server.ts +228 -24
  876. package/src/media/focal-point.ts +37 -0
  877. package/src/media/image-endpoint.ts +5 -2
  878. package/src/media/local-runtime.ts +8 -0
  879. package/src/media/mime.ts +1 -0
  880. package/src/media/normalize.ts +25 -4
  881. package/src/media/types.ts +10 -0
  882. package/src/media/usage/activation.ts +162 -35
  883. package/src/media/usage/capture-triggers.ts +19 -3
  884. package/src/media/usage/cleanup.ts +9 -8
  885. package/src/media/usage/collection-deletion-processor.ts +7 -3
  886. package/src/media/usage/collection-deletion.ts +10 -0
  887. package/src/media/usage/content-refresh.ts +258 -39
  888. package/src/media/usage/content-snapshots.ts +128 -31
  889. package/src/media/usage/extractor.ts +32 -13
  890. package/src/media/usage/maintenance-engine.ts +166 -0
  891. package/src/media/usage/reconciliation-processor.ts +106 -29
  892. package/src/media/usage/reconciliation.ts +90 -7
  893. package/src/media/usage/work-processor.ts +342 -101
  894. package/src/menus/index.ts +16 -0
  895. package/src/object-cache/index.ts +44 -2
  896. package/src/plugin-types.ts +18 -1
  897. package/src/plugins/hooks.ts +4 -1
  898. package/src/plugins/index.ts +7 -0
  899. package/src/plugins/manager.ts +2 -1
  900. package/src/plugins/manifest-schema.ts +1 -1
  901. package/src/plugins/routes.ts +3 -1
  902. package/src/plugins/sandbox/hook-result.ts +52 -0
  903. package/src/plugins/sandbox/index.ts +10 -0
  904. package/src/plugins/save-rejection.ts +20 -0
  905. package/src/plugins/scheduler/node.ts +1 -13
  906. package/src/plugins/scheduler/types.ts +0 -2
  907. package/src/plugins/state.ts +13 -3
  908. package/src/plugins/types.ts +6 -0
  909. package/src/registry/artifact-checksum.ts +15 -0
  910. package/src/registry/artifact-fetch.ts +530 -0
  911. package/src/registry/artifact-verification.ts +85 -0
  912. package/src/registry/authoritative-records.ts +180 -0
  913. package/src/registry/config.ts +24 -6
  914. package/src/registry/record-labels.ts +28 -0
  915. package/src/registry/types.ts +12 -15
  916. package/src/schema/registry.ts +26 -3
  917. package/src/schema/types.ts +1 -0
  918. package/src/schema/zod-generator.ts +28 -17
  919. package/src/security/ssrf.ts +26 -4
  920. package/src/seed/apply.ts +4 -4
  921. package/src/settings/index.ts +16 -0
  922. package/src/storage/local.ts +1 -0
  923. package/src/storage/s3.ts +2 -0
  924. package/src/storage/types.ts +2 -0
  925. package/src/taxonomies/index.ts +40 -20
  926. package/src/ui.ts +2 -0
  927. package/src/widgets/archives.ts +67 -0
  928. package/src/widgets/index.ts +16 -0
  929. package/dist/api-BeBglVxU.mjs +0 -4695
  930. package/dist/api-BeBglVxU.mjs.map +0 -1
  931. package/dist/byline-yjvWq4ip.mjs.map +0 -1
  932. package/dist/challenge-store-SIL5DsF2.mjs.map +0 -1
  933. package/dist/collection-deletion-DQPvMD8R.mjs.map +0 -1
  934. package/dist/content-ZHCc1ngN.mjs.map +0 -1
  935. package/dist/content-refresh-B_8SJzuU.mjs.map +0 -1
  936. package/dist/context-ZldbZcle.mjs.map +0 -1
  937. package/dist/errors-CLUPm7aD.mjs.map +0 -1
  938. package/dist/index-BVBZj4-7.d.mts.map +0 -1
  939. package/dist/loader-CdG_Ci3H.mjs.map +0 -1
  940. package/dist/manifest-schema-BXbUAHod.mjs.map +0 -1
  941. package/dist/media-BWWWb8kg.mjs.map +0 -1
  942. package/dist/media-CzhAn2--.mjs.map +0 -1
  943. package/dist/media-allowlist-D6x-Us02.mjs.map +0 -1
  944. package/dist/media-usage-BZCydfvu.mjs.map +0 -1
  945. package/dist/media-usage-work-DrCbqBcl.mjs.map +0 -1
  946. package/dist/menus-DSo5QeW0.mjs.map +0 -1
  947. package/dist/mime-DfIVjNkr.mjs.map +0 -1
  948. package/dist/normalize-Bc-s_r-a.mjs.map +0 -1
  949. package/dist/object-cache-71tPfV4A.mjs.map +0 -1
  950. package/dist/options--hhz-jZ1.d.mts.map +0 -1
  951. package/dist/placeholder-Dp0K3RkD.d.mts.map +0 -1
  952. package/dist/redirects-DTDHWH31.mjs.map +0 -1
  953. package/dist/registry-Cqa2I749.mjs.map +0 -1
  954. package/dist/relations-BBApI4e2.mjs.map +0 -1
  955. package/dist/relations-BHo5A8Zf.d.mts.map +0 -1
  956. package/dist/runner-BYHZn3Jy.d.mts.map +0 -1
  957. package/dist/runner-C1T11CfC.mjs.map +0 -1
  958. package/dist/settings-xRdoUZr0.mjs.map +0 -1
  959. package/dist/state-DYwPue40.mjs.map +0 -1
  960. package/dist/taxonomies-BlrncHi9.mjs.map +0 -1
  961. package/dist/taxonomies-OHUIiIpI.mjs.map +0 -1
  962. package/dist/types-BcqdcT-r.d.mts.map +0 -1
  963. package/dist/types-C2pMvO62.d.mts.map +0 -1
  964. package/dist/types-CP1CflWf.mjs +0 -3
  965. package/dist/types-DN64_zzZ.d.mts.map +0 -1
  966. package/dist/types-DQIDRKF2.d.mts.map +0 -1
  967. package/dist/version-DB_fqCSI.mjs +0 -7
  968. package/dist/widgets-BD3ho7Rq.mjs.map +0 -1
  969. package/dist/zod-generator-LC-on_Vb.mjs.map +0 -1
  970. /package/dist/{api-tokens-rIXC6LdE.mjs → api-tokens-BfYts-sq.mjs} +0 -0
  971. /package/dist/{ssrf-DpXgKsna.mjs → ssrf-Dg3cIT-b.mjs} +0 -0
@@ -1,22 +1,25 @@
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";
1
+ import { r as ContentFieldFilters } from "./content-list-query-Btqd4uV2.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-xDMtUFnO.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-BuHW4xDE.mjs";
4
+ import { d as ContentListResponse, f as ContentResponse, u as ApiResult, v as ManifestResponse } from "./options-CYb4y7hM.mjs";
5
+ import { t as Database } from "./types-FV23hEoW.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-B6GrPic4.mjs";
7
+ import { $n as MediaUsageRepairResponse, Qn as MediaUsageRepairRequest, Rn as MediaUsageActivationAdvanceRequest, Xn as MediaUsageProgress, zn as MediaUsageActivationAdvanceResponse } from "./relations-DnRK4YIT.mjs";
8
+ import { _ as MediaValue, f as MediaProvider, m as MediaProviderDescriptor, p as MediaProviderCapabilities } from "./placeholder-4X9BrRrp.mjs";
9
+ import { T as ContentBylineInput } from "./index-Du8K7bWa.mjs";
10
+ import { r as DatabaseDescriptor } from "./adapters-BDQwg236.mjs";
11
+ import { r as AuthProviderDescriptor, t as AuthDescriptor } from "./types-C00oyCZp.mjs";
12
+ import { r as ObjectCacheDescriptor } from "./types-CPeXo1wF.mjs";
13
+ import { d as Storage } from "./types-CXFkwEGC.mjs";
14
+ import { i as SiteSettings, r as SiteSettingKey } from "./types-CDtkNSFQ.mjs";
14
15
  import { EmDashManifest } from "./astro/types.mjs";
15
16
  import { Dialect, Kysely, sql } from "kysely";
16
17
  import { z } from "astro/zod";
17
- import { z as z$1 } from "zod";
18
+ import { ZodType, z as z$1 } from "zod";
18
19
  import { ManifestHookEntry, ManifestRouteEntry } from "@emdash-cms/plugin-types";
19
20
  import "@emdash-cms/registry-client/env";
21
+ import "@emdash-cms/registry-client/direct-pds";
22
+ import { Extension, Extensions, Mark, Node } from "@tiptap/core";
20
23
  import { LiveLoader } from "astro/loaders";
21
24
 
22
25
  //#region src/database/errors.d.ts
@@ -37,6 +40,7 @@ interface DatabaseConfig {
37
40
  }
38
41
  //#endregion
39
42
  //#region src/database/repositories/content.d.ts
43
+ type ContentRevisionPrecondition = Pick<ContentItem, "version" | "updatedAt">;
40
44
  /**
41
45
  * Repository for content CRUD operations
42
46
  *
@@ -99,6 +103,7 @@ declare class ContentRepository {
99
103
  * Find many content items with filtering and pagination
100
104
  */
101
105
  findMany(type: string, options?: FindManyOptions): Promise<FindManyResult<ContentItem>>;
106
+ private normalizeScheduledAt;
102
107
  /**
103
108
  * Update content
104
109
  */
@@ -135,13 +140,19 @@ declare class ContentRepository {
135
140
  /**
136
141
  * Find trashed content items
137
142
  */
138
- findTrashed(type: string, options?: Omit<FindManyOptions, "where">): Promise<FindManyResult<ContentItem & {
143
+ findTrashed(type: string, options?: Omit<FindManyOptions, "where"> & {
144
+ where?: {
145
+ locale?: string;
146
+ };
147
+ }): Promise<FindManyResult<ContentItem & {
139
148
  deletedAt: string;
140
149
  }>>;
141
150
  /**
142
151
  * Count trashed content items
143
152
  */
144
- countTrashed(type: string): Promise<number>;
153
+ countTrashed(type: string, options?: {
154
+ locale?: string;
155
+ }): Promise<number>;
145
156
  /**
146
157
  * Apply the optional `q` filter.
147
158
  *
@@ -287,14 +298,14 @@ declare class ContentRepository {
287
298
  * `expectedScheduledAt` additionally fences changes made after a sweep
288
299
  * selected the row but before publication preparation began.
289
300
  */
290
- publish(type: string, id: string, publishedAt?: string, requireDue?: boolean, expectedScheduledAt?: string, promoteRevision?: boolean, requireSlug?: boolean): Promise<ContentItem>;
301
+ publish(type: string, id: string, publishedAt?: string, requireDue?: boolean, expectedScheduledAt?: string, promoteRevision?: boolean, requireSlug?: boolean, expectedRevision?: ContentRevisionPrecondition): Promise<ContentItem>;
291
302
  /**
292
303
  * Unpublish content
293
304
  *
294
- * Removes live pointer but preserves draft. If no draft exists,
295
- * creates one from the live version so the content isn't lost.
305
+ * Removes live pointer but preserves the draft and publication date. If no
306
+ * draft exists, creates one from the live version so the content isn't lost.
296
307
  */
297
- unpublish(type: string, id: string): Promise<ContentItem>;
308
+ unpublish(type: string, id: string, expectedRevision?: ContentRevisionPrecondition): Promise<ContentItem>;
298
309
  /**
299
310
  * Set the draft revision pointer for a content item.
300
311
  *
@@ -314,7 +325,7 @@ declare class ContentRepository {
314
325
  * Clears draft_revision_id. The content table columns already hold the
315
326
  * published version, so no data sync is needed.
316
327
  */
317
- discardDraft(type: string, id: string): Promise<ContentItem>;
328
+ discardDraft(type: string, id: string, expectedRevision?: ContentRevisionPrecondition): Promise<ContentItem>;
318
329
  /**
319
330
  * Count content items with a pending schedule.
320
331
  * Includes both draft-scheduled (status='scheduled') and published
@@ -340,6 +351,12 @@ declare class ContentRepository {
340
351
  private resolveOrderField;
341
352
  }
342
353
  //#endregion
354
+ //#region src/media/focal-point.d.ts
355
+ interface FocalPointUpdate {
356
+ focalX?: number | null;
357
+ focalY?: number | null;
358
+ }
359
+ //#endregion
343
360
  //#region src/database/repositories/media.d.ts
344
361
  type MediaStatus = "pending" | "ready" | "failed";
345
362
  interface MediaItem {
@@ -349,6 +366,8 @@ interface MediaItem {
349
366
  size: number | null;
350
367
  width: number | null;
351
368
  height: number | null;
369
+ focalX: number | null;
370
+ focalY: number | null;
352
371
  alt: string | null;
353
372
  caption: string | null;
354
373
  storageKey: string;
@@ -358,6 +377,7 @@ interface MediaItem {
358
377
  dominantColor: string | null;
359
378
  createdAt: string;
360
379
  authorId: string | null;
380
+ folderId?: string | null;
361
381
  }
362
382
  interface CreateMediaInput {
363
383
  filename: string;
@@ -373,6 +393,7 @@ interface CreateMediaInput {
373
393
  dominantColor?: string;
374
394
  status?: MediaStatus;
375
395
  authorId?: string;
396
+ folderId?: string | null;
376
397
  }
377
398
  interface FindManyMediaOptions {
378
399
  limit?: number;
@@ -382,6 +403,28 @@ interface FindManyMediaOptions {
382
403
  status?: MediaStatus | "all";
383
404
  /** Case-insensitive substring matched against the filename (covers filename and extension). */
384
405
  q?: string;
406
+ /** Omit for all media, pass null for the Main library, or pass a folder ID. */
407
+ folderId?: string | null;
408
+ }
409
+ interface UpdateMediaInput extends FocalPointUpdate {
410
+ alt?: string;
411
+ caption?: string;
412
+ width?: number;
413
+ height?: number;
414
+ folderId?: string | null;
415
+ }
416
+ interface ReplaceReadyMediaInput {
417
+ size: number;
418
+ width: number;
419
+ height: number;
420
+ contentHash: string;
421
+ }
422
+ interface FindMediaPageOptions extends Omit<FindManyMediaOptions, "cursor"> {
423
+ page: number;
424
+ }
425
+ interface MediaPageResult {
426
+ items: MediaItem[];
427
+ totalCount: number;
385
428
  }
386
429
  /**
387
430
  * Media repository for database operations
@@ -403,6 +446,7 @@ declare class MediaRepository {
403
446
  storageKey: string;
404
447
  contentHash?: string;
405
448
  authorId?: string;
449
+ folderId?: string | null;
406
450
  }): Promise<MediaItem>;
407
451
  createUploadAttempt(mediaId: string, storageKey: string): Promise<void>;
408
452
  hasUploadAttempt(storageKey: string): Promise<boolean>;
@@ -435,6 +479,7 @@ declare class MediaRepository {
435
479
  * Useful for idempotent imports
436
480
  */
437
481
  findByFilename(filename: string): Promise<MediaItem | null>;
482
+ findAvailableFilename(filename: string): Promise<string>;
438
483
  /**
439
484
  * Find media by content hash
440
485
  * Used for deduplication - same content = same hash
@@ -447,10 +492,12 @@ declare class MediaRepository {
447
492
  * The cursor encodes the created_at and id of the last item.
448
493
  */
449
494
  findMany(options?: FindManyMediaOptions): Promise<FindManyResult<MediaItem>>;
495
+ findPage(options: FindMediaPageOptions): Promise<MediaPageResult>;
450
496
  /**
451
497
  * Update media metadata
452
498
  */
453
- update(id: string, input: Partial<Pick<CreateMediaInput, "alt" | "caption" | "width" | "height">>): Promise<MediaItem | null>;
499
+ update(id: string, input: UpdateMediaInput): Promise<MediaItem | null>;
500
+ replaceReadyFile(id: string, expectedStorageKey: string, input: ReplaceReadyMediaInput): Promise<MediaItem | null>;
454
501
  /**
455
502
  * Delete media item
456
503
  */
@@ -460,6 +507,7 @@ declare class MediaRepository {
460
507
  * Count media items
461
508
  */
462
509
  count(mimeType?: string | readonly string[]): Promise<number>;
510
+ private applyListFilters;
463
511
  /**
464
512
  * Delete pending uploads older than the given age.
465
513
  * Pending uploads that were never confirmed indicate abandoned upload flows.
@@ -598,11 +646,6 @@ interface PublicComment {
598
646
  }
599
647
  //#endregion
600
648
  //#region src/database/repositories/plugin-storage.d.ts
601
- /**
602
- * Plugin Storage Repository
603
- *
604
- * Implements the StorageCollection interface for a specific plugin and collection.
605
- */
606
649
  declare class PluginStorageRepository<T = unknown> implements StorageCollection<T> {
607
650
  private db;
608
651
  private pluginId;
@@ -674,7 +717,7 @@ type ColumnType = "TEXT" | "REAL" | "INTEGER" | "JSON";
674
717
  /**
675
718
  * Base field definition
676
719
  *
677
- * Note: schema uses z.ZodTypeAny to accommodate optional/default wrappers
720
+ * Note: schema uses z.ZodType to accommodate optional/default wrappers
678
721
  */
679
722
  interface FieldDefinition<_T = unknown> {
680
723
  type: string;
@@ -682,7 +725,7 @@ interface FieldDefinition<_T = unknown> {
682
725
  * The SQLite column type to use when storing this field
683
726
  */
684
727
  columnType: ColumnType;
685
- schema: z.ZodTypeAny;
728
+ schema: z.ZodType;
686
729
  options?: unknown;
687
730
  ui?: FieldUIHints;
688
731
  validation?: FieldValidation;
@@ -708,9 +751,13 @@ interface PortableTextBlock$1 {
708
751
  [key: string]: unknown;
709
752
  }
710
753
  /**
711
- * @deprecated Use MediaValue instead. ImageValue is an alias for backwards compatibility.
754
+ * Persisted image field value: the media item shown by default, plus an
755
+ * optional counterpart for dark color schemes.
712
756
  */
713
- type ImageValue = MediaValue;
757
+ interface ImageValue extends MediaValue {
758
+ /** Media item shown instead of the primary one when the page renders in a dark color scheme. */
759
+ darkVariant?: MediaValue;
760
+ }
714
761
  /**
715
762
  * Persisted file field value.
716
763
  *
@@ -740,6 +787,8 @@ interface ImageOptions {
740
787
  required?: boolean;
741
788
  maxSize?: number;
742
789
  allowedTypes?: string[];
790
+ /** Offer editors a second slot for a dark-color-scheme counterpart of the image. */
791
+ darkVariant?: boolean;
743
792
  }
744
793
  declare function image(options?: ImageOptions): FieldDefinition<ImageValue | undefined>;
745
794
  //#endregion
@@ -779,6 +828,8 @@ interface TrashedContentItem {
779
828
  type: string;
780
829
  slug: string | null;
781
830
  status: string;
831
+ locale: string | null;
832
+ translationGroup: string | null;
782
833
  data: Record<string, unknown>;
783
834
  authorId: string | null;
784
835
  createdAt: string;
@@ -909,6 +960,7 @@ declare function handleContentPermanentDelete(db: Kysely<Database>, collection:
909
960
  declare function handleContentListTrashed(db: Kysely<Database>, collection: string, options?: {
910
961
  limit?: number;
911
962
  cursor?: string;
963
+ locale?: string;
912
964
  }): Promise<ApiResult<{
913
965
  items: TrashedContentItem[];
914
966
  nextCursor?: string;
@@ -916,7 +968,9 @@ declare function handleContentListTrashed(db: Kysely<Database>, collection: stri
916
968
  /**
917
969
  * Count trashed content items
918
970
  */
919
- declare function handleContentCountTrashed(db: Kysely<Database>, collection: string): Promise<ApiResult<{
971
+ declare function handleContentCountTrashed(db: Kysely<Database>, collection: string, options?: {
972
+ locale?: string;
973
+ }): Promise<ApiResult<{
920
974
  count: number;
921
975
  }>>;
922
976
  /**
@@ -937,6 +991,7 @@ declare function handleContentPublish(db: Kysely<Database>, collection: string,
937
991
  publishedAt?: string;
938
992
  requireScheduledDue?: boolean;
939
993
  expectedScheduledAt?: string;
994
+ _rev?: string;
940
995
  }): Promise<ApiResult<ContentResponse>>;
941
996
  /**
942
997
  * Unpublish content (revert to draft).
@@ -944,7 +999,9 @@ declare function handleContentPublish(db: Kysely<Database>, collection: string,
944
999
  * Wrapped in a transaction — unpublish may create a draft revision
945
1000
  * from the live version then update the status, which is multi-step.
946
1001
  */
947
- declare function handleContentUnpublish(db: Kysely<Database>, collection: string, id: string): Promise<ApiResult<ContentResponse>>;
1002
+ declare function handleContentUnpublish(db: Kysely<Database>, collection: string, id: string, options?: {
1003
+ _rev?: string;
1004
+ }): Promise<ApiResult<ContentResponse>>;
948
1005
  /**
949
1006
  * Count scheduled content items
950
1007
  */
@@ -954,7 +1011,9 @@ declare function handleContentCountScheduled(db: Kysely<Database>, collection: s
954
1011
  /**
955
1012
  * Discard draft changes (revert to live version)
956
1013
  */
957
- declare function handleContentDiscardDraft(db: Kysely<Database>, collection: string, id: string): Promise<ApiResult<ContentResponse>>;
1014
+ declare function handleContentDiscardDraft(db: Kysely<Database>, collection: string, id: string, options?: {
1015
+ _rev?: string;
1016
+ }): Promise<ApiResult<ContentResponse>>;
958
1017
  /**
959
1018
  * Compare live and draft revisions
960
1019
  */
@@ -994,6 +1053,9 @@ interface CollectionDefinition {
994
1053
  };
995
1054
  }
996
1055
  type CollectionMap = Record<string, CollectionDefinition>;
1056
+ interface GenerateManifestOptions {
1057
+ db?: Kysely<Database> | null;
1058
+ }
997
1059
  /**
998
1060
  * Generate admin manifest from collections
999
1061
  */
@@ -1003,7 +1065,7 @@ declare function generateManifest(collections: CollectionMap, plugins?: Record<s
1003
1065
  component: string;
1004
1066
  }>;
1005
1067
  widgets?: string[];
1006
- }>): Promise<ManifestResponse>;
1068
+ }>, options?: GenerateManifestOptions): Promise<ManifestResponse>;
1007
1069
  //#endregion
1008
1070
  //#region src/api/handlers/revision.d.ts
1009
1071
  interface RevisionListResponse {
@@ -1032,6 +1094,7 @@ declare function handleRevisionRestore(db: Kysely<Database>, revisionId: string,
1032
1094
  interface MediaListResponse {
1033
1095
  items: MediaItem[];
1034
1096
  nextCursor?: string;
1097
+ totalCount?: number;
1035
1098
  }
1036
1099
  interface MediaResponse {
1037
1100
  item: MediaItem;
@@ -1041,9 +1104,11 @@ interface MediaResponse {
1041
1104
  */
1042
1105
  declare function handleMediaList(db: Kysely<Database>, params: {
1043
1106
  cursor?: string;
1107
+ page?: number;
1044
1108
  limit?: number;
1045
1109
  mimeType?: string | readonly string[];
1046
1110
  q?: string;
1111
+ folderId?: string | null;
1047
1112
  }): Promise<ApiResult<MediaListResponse>>;
1048
1113
  /**
1049
1114
  * Get single media item
@@ -1064,6 +1129,7 @@ declare function handleMediaCreate(db: Kysely<Database>, input: {
1064
1129
  blurhash?: string;
1065
1130
  dominantColor?: string;
1066
1131
  authorId?: string;
1132
+ folderId?: string | null;
1067
1133
  }): Promise<ApiResult<MediaResponse>>;
1068
1134
  /**
1069
1135
  * Update media metadata
@@ -1073,6 +1139,13 @@ declare function handleMediaUpdate(db: Kysely<Database>, id: string, input: {
1073
1139
  caption?: string;
1074
1140
  width?: number;
1075
1141
  height?: number;
1142
+ folderId?: string | null;
1143
+ } & FocalPointUpdate): Promise<ApiResult<MediaResponse>>;
1144
+ declare function handleMediaReplaceMetadata(db: Kysely<Database>, id: string, expectedStorageKey: string, input: {
1145
+ size: number;
1146
+ width: number;
1147
+ height: number;
1148
+ contentHash: string;
1076
1149
  }): Promise<ApiResult<MediaResponse>>;
1077
1150
  /**
1078
1151
  * Delete media item
@@ -1086,6 +1159,13 @@ declare function handleMediaDelete(db: Kysely<Database>, id: string): Promise<Ap
1086
1159
  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";
1087
1160
  declare function markContentMediaUsageCollectionStaleSafely(db: Kysely<Database>, collectionSlug: string, lastErrorCode: ContentMediaUsageRefreshErrorCode): Promise<boolean>;
1088
1161
  //#endregion
1162
+ //#region src/api/handlers/media-usage.d.ts
1163
+ declare function handleMediaUsageProgress(db: Kysely<Database>): Promise<ApiResult<MediaUsageProgress>>;
1164
+ declare function handleMediaUsageRepair(db: Kysely<Database>, input: MediaUsageRepairRequest): Promise<ApiResult<MediaUsageRepairResponse>>;
1165
+ //#endregion
1166
+ //#region src/api/handlers/media-usage-activation.d.ts
1167
+ declare function handleMediaUsageActivationAdvance(db: Kysely<Database>, input: MediaUsageActivationAdvanceRequest): Promise<ApiResult<MediaUsageActivationAdvanceResponse>>;
1168
+ //#endregion
1089
1169
  //#region src/schema/registry.d.ts
1090
1170
  /**
1091
1171
  * Error thrown when a schema operation fails
@@ -1104,6 +1184,10 @@ declare class SchemaError extends Error {
1104
1184
  declare class SchemaRegistry {
1105
1185
  private db;
1106
1186
  constructor(db: Kysely<Database>);
1187
+ /**
1188
+ * Notify the dev typegen hook that the schema has changed.
1189
+ */
1190
+ private notifyTypegen;
1107
1191
  /**
1108
1192
  * List all collections
1109
1193
  */
@@ -1349,15 +1433,13 @@ interface RegistryConfig {
1349
1433
  */
1350
1434
  aggregatorUrl: string;
1351
1435
  /**
1352
- * Optional comma-separated list of labeller DIDs forwarded as the
1353
- * `atproto-accept-labelers` header on every aggregator request.
1354
- *
1355
- * Format follows the atproto convention:
1356
- * `did:plc:abc;redact, did:plc:def`
1436
+ * Optional comma-separated list of bare labeller DIDs forwarded as the
1437
+ * `atproto-accept-labelers` header on every aggregator request. The
1438
+ * declaration contributes to the client's cache identity.
1357
1439
  *
1358
- * When unset, the aggregator applies its operator-default labeller set
1359
- * (typically the EmDash publisher-verification labeller and any
1360
- * additional trusted labellers the aggregator operator configured).
1440
+ * The aggregator validates the declaration and rejects unknown sources or
1441
+ * a list that omits a required source. It does not let the declaration
1442
+ * override its configured approval, block, takedown, or withdrawal policy.
1361
1443
  */
1362
1444
  acceptLabelers?: string;
1363
1445
  /**
@@ -1473,8 +1555,8 @@ interface ExperimentalConfig {
1473
1555
  * release:
1474
1556
  *
1475
1557
  * - The publisher DID associated with a `(did, slug)` pair.
1476
- * - The artifact `url`, the artifact `checksum`, and any mirror
1477
- * URLs returned for a release.
1558
+ * - The artifact source fields, checksum, and cache services returned for
1559
+ * a release.
1478
1560
  * - The published handle for a DID (used for display only;
1479
1561
  * EmDash separately verifies the DID->handle round-trip in the
1480
1562
  * admin UI before treating a handle as confirmed).
@@ -1483,7 +1565,7 @@ interface ExperimentalConfig {
1483
1565
  * installed plugin:
1484
1566
  *
1485
1567
  * - The artifact bytes hash to the checksum the aggregator
1486
- * returned (so a malicious mirror or in-transit tamper can't
1568
+ * returned (so a malicious cache or in-transit tamper can't
1487
1569
  * swap the bundle).
1488
1570
  * - The bundle's `manifest.id` matches the requested slug, and
1489
1571
  * its `manifest.version` matches the release version (so an
@@ -1506,10 +1588,9 @@ interface ExperimentalConfig {
1506
1588
  * **Recommendation.** Until full signature verification lands,
1507
1589
  * point `aggregatorUrl` only at an aggregator you operate
1508
1590
  * yourself or one you trust with the same level of authority as
1509
- * a centralized plugin source. The `policy.minimumReleaseAge` and
1510
- * `acceptLabelers` knobs partially mitigate by widening the
1511
- * detection window for takedowns, but they assume the labeller
1512
- * system is operating.
1591
+ * a centralized plugin source. `policy.minimumReleaseAge` widens
1592
+ * the detection window for takedowns. `acceptLabelers` declares a
1593
+ * request and cache identity; it does not change aggregator policy.
1513
1594
  *
1514
1595
  * Requires `sandboxRunner` to be configured -- registry plugins
1515
1596
  * always run sandboxed.
@@ -2583,9 +2664,10 @@ declare class HookPipeline {
2583
2664
  private runLifecycleHook;
2584
2665
  /**
2585
2666
  * Run content:beforeSave hooks
2586
- * Returns modified content from the pipeline
2667
+ * Returns modified content from the pipeline. `id` is the existing item's
2668
+ * ID when updating.
2587
2669
  */
2588
- runContentBeforeSave(content: Record<string, unknown>, collection: string, isNew: boolean): Promise<{
2670
+ runContentBeforeSave(content: Record<string, unknown>, collection: string, isNew: boolean, id?: string): Promise<{
2589
2671
  content: Record<string, unknown>;
2590
2672
  results: HookResult<Record<string, unknown>>[];
2591
2673
  }>;
@@ -2943,8 +3025,6 @@ interface CronScheduler {
2943
3025
  reschedule(): void;
2944
3026
  /** Register a system cleanup function to run alongside each tick. */
2945
3027
  setSystemCleanup(fn: SystemCleanupFn): void;
2946
- /** Register bounded Media Usage maintenance to run after the general tick settles. */
2947
- setMediaUsageMaintenance?(fn: SystemCleanupFn): void;
2948
3028
  }
2949
3029
  /**
2950
3030
  * System cleanup callback invoked alongside each scheduler tick.
@@ -3128,16 +3208,6 @@ interface EmDashRuntimeParts {
3128
3208
  current: HookPipeline;
3129
3209
  };
3130
3210
  }
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
- };
3141
3211
  /**
3142
3212
  * EmDashRuntime - singleton per worker
3143
3213
  */
@@ -3238,7 +3308,6 @@ declare class EmDashRuntime {
3238
3308
  }): Promise<{
3239
3309
  published: PublishedRef[];
3240
3310
  }>;
3241
- runScheduledMediaUsageTasks(): Promise<MediaUsageMaintenanceResult>;
3242
3311
  /**
3243
3312
  * Materialize plugin-declared storage indexes, once per process.
3244
3313
  *
@@ -3506,6 +3575,18 @@ declare class EmDashRuntime {
3506
3575
  } | {
3507
3576
  success: true;
3508
3577
  data: ContentResponse;
3578
+ } | {
3579
+ success: false;
3580
+ error: {
3581
+ code: "SAVE_REJECTED";
3582
+ message: string;
3583
+ };
3584
+ } | {
3585
+ success: false;
3586
+ error: {
3587
+ code: "CONTENT_HOOK_ERROR";
3588
+ message: string;
3589
+ };
3509
3590
  } | {
3510
3591
  success: false;
3511
3592
  error: {
@@ -3541,6 +3622,18 @@ declare class EmDashRuntime {
3541
3622
  message: string;
3542
3623
  details?: Record<string, unknown>;
3543
3624
  };
3625
+ } | {
3626
+ success: false;
3627
+ error: {
3628
+ code: "SAVE_REJECTED";
3629
+ message: string;
3630
+ };
3631
+ } | {
3632
+ success: false;
3633
+ error: {
3634
+ code: "CONTENT_HOOK_ERROR";
3635
+ message: string;
3636
+ };
3544
3637
  } | {
3545
3638
  liveContentChanged: boolean;
3546
3639
  success: true;
@@ -3569,6 +3662,7 @@ declare class EmDashRuntime {
3569
3662
  handleContentListTrashed(collection: string, params?: {
3570
3663
  cursor?: string;
3571
3664
  limit?: number;
3665
+ locale?: string;
3572
3666
  }): Promise<ApiResult<{
3573
3667
  items: TrashedContentItem[];
3574
3668
  nextCursor?: string;
@@ -3581,7 +3675,9 @@ declare class EmDashRuntime {
3581
3675
  deleted: true;
3582
3676
  id: string;
3583
3677
  }>>;
3584
- handleContentCountTrashed(collection: string): Promise<ApiResult<{
3678
+ handleContentCountTrashed(collection: string, params?: {
3679
+ locale?: string;
3680
+ }): Promise<ApiResult<{
3585
3681
  count: number;
3586
3682
  }>>;
3587
3683
  handleContentDuplicate(collection: string, id: string, authorId?: string): Promise<ApiResult<{
@@ -3591,14 +3687,19 @@ declare class EmDashRuntime {
3591
3687
  publishedAt?: string;
3592
3688
  requireScheduledDue?: boolean;
3593
3689
  expectedScheduledAt?: string;
3690
+ _rev?: string;
3691
+ }): Promise<ApiResult<ContentResponse>>;
3692
+ handleContentUnpublish(collection: string, id: string, options?: {
3693
+ _rev?: string;
3594
3694
  }): Promise<ApiResult<ContentResponse>>;
3595
- handleContentUnpublish(collection: string, id: string): Promise<ApiResult<ContentResponse>>;
3596
3695
  handleContentSchedule(collection: string, id: string, scheduledAt: string): Promise<ApiResult<ContentResponse>>;
3597
3696
  handleContentUnschedule(collection: string, id: string): Promise<ApiResult<ContentResponse>>;
3598
3697
  handleContentCountScheduled(collection: string): Promise<ApiResult<{
3599
3698
  count: number;
3600
3699
  }>>;
3601
- handleContentDiscardDraft(collection: string, id: string): Promise<ApiResult<ContentResponse>>;
3700
+ handleContentDiscardDraft(collection: string, id: string, options?: {
3701
+ _rev?: string;
3702
+ }): Promise<ApiResult<ContentResponse>>;
3602
3703
  handleContentCompare(collection: string, id: string): Promise<ApiResult<{
3603
3704
  hasChanges: boolean;
3604
3705
  live: Record<string, unknown> | null;
@@ -3616,9 +3717,11 @@ declare class EmDashRuntime {
3616
3717
  }>>;
3617
3718
  handleMediaList(params: {
3618
3719
  cursor?: string;
3720
+ page?: number;
3619
3721
  limit?: number;
3620
3722
  mimeType?: string | readonly string[];
3621
3723
  q?: string;
3724
+ folderId?: string | null;
3622
3725
  }): Promise<ApiResult<MediaListResponse>>;
3623
3726
  handleMediaGet(id: string): Promise<ApiResult<MediaResponse>>;
3624
3727
  handleMediaCreate(input: {
@@ -3632,12 +3735,22 @@ declare class EmDashRuntime {
3632
3735
  blurhash?: string;
3633
3736
  dominantColor?: string;
3634
3737
  authorId?: string;
3738
+ folderId?: string | null;
3635
3739
  }): Promise<ApiResult<MediaResponse>>;
3636
3740
  handleMediaUpdate(id: string, input: {
3637
3741
  alt?: string;
3638
3742
  caption?: string;
3639
3743
  width?: number;
3640
3744
  height?: number;
3745
+ folderId?: string | null;
3746
+ focalX?: number | null;
3747
+ focalY?: number | null;
3748
+ }): Promise<ApiResult<MediaResponse>>;
3749
+ handleMediaReplaceMetadata(id: string, expectedStorageKey: string, input: {
3750
+ size: number;
3751
+ width: number;
3752
+ height: number;
3753
+ contentHash: string;
3641
3754
  }): Promise<ApiResult<MediaResponse>>;
3642
3755
  handleMediaDelete(id: string): Promise<ApiResult<{
3643
3756
  deleted: true;
@@ -3903,6 +4016,7 @@ interface PortableTextImageBlock {
3903
4016
  displayWidth?: number;
3904
4017
  /** Display height for this instance (overrides original) */
3905
4018
  displayHeight?: number;
4019
+ alignment?: "left" | "center" | "right" | "wide" | "full";
3906
4020
  }
3907
4021
  /**
3908
4022
  * A single image inside a gallery block. Mirrors the shape produced by
@@ -3921,6 +4035,8 @@ interface PortableTextGalleryImage {
3921
4035
  caption?: string;
3922
4036
  width?: number;
3923
4037
  height?: number;
4038
+ focalX?: number;
4039
+ focalY?: number;
3924
4040
  /** LQIP blurhash placeholder (images only) */
3925
4041
  blurhash?: string;
3926
4042
  /** LQIP dominant-color placeholder, as a CSS color (images only) */
@@ -3991,10 +4107,18 @@ interface ProseMirrorDocument {
3991
4107
  declare function prosemirrorToPortableText(doc: ProseMirrorDocument): PortableTextBlock[];
3992
4108
  //#endregion
3993
4109
  //#region src/content/converters/portable-text-to-prosemirror.d.ts
3994
- /**
3995
- * Convert Portable Text to ProseMirror document
3996
- */
3997
- declare function portableTextToProsemirror(blocks: PortableTextBlock[]): ProseMirrorDocument;
4110
+ interface PortableTextToProsemirrorOptions {
4111
+ /**
4112
+ * Preserve custom blocks and Portable Text keys through a ProseMirror round trip.
4113
+ * Add `portableTextIdentityExtensions` to the TipTap schema when this is enabled.
4114
+ */
4115
+ preserveIdentity?: boolean;
4116
+ }
4117
+ /** Convert Portable Text to a ProseMirror document. */
4118
+ declare function portableTextToProsemirror(blocks: PortableTextBlock[], options?: PortableTextToProsemirrorOptions): ProseMirrorDocument;
4119
+ //#endregion
4120
+ //#region src/content/converters/portable-text-identity.d.ts
4121
+ declare const portableTextIdentityExtensions: Extensions;
3998
4122
  //#endregion
3999
4123
  //#region src/utils/hash.d.ts
4000
4124
  /**
@@ -4722,7 +4846,7 @@ declare function definePlugin<TStorage extends PluginStorageConfig>(definition:
4722
4846
  * to make them consistent (declaredAccess authoritative when present). Kept a
4723
4847
  * plain object (no `.transform`) because callers `.pick()`/`.extend()` it.
4724
4848
  */
4725
- declare const pluginManifestSchema: z$1.ZodObject<{
4849
+ declare const pluginManifestSchema$1: z$1.ZodObject<{
4726
4850
  id: z$1.ZodString;
4727
4851
  version: z$1.ZodString;
4728
4852
  declaredAccess: z$1.ZodOptional<z$1.ZodObject<{
@@ -4927,11 +5051,11 @@ declare const pluginManifestSchema: z$1.ZodObject<{
4927
5051
  boolean: "boolean";
4928
5052
  file: "file";
4929
5053
  slug: "slug";
5054
+ image: "image";
4930
5055
  datetime: "datetime";
4931
5056
  text: "text";
4932
- select: "select";
4933
- image: "image";
4934
5057
  integer: "integer";
5058
+ select: "select";
4935
5059
  multiSelect: "multiSelect";
4936
5060
  portableText: "portableText";
4937
5061
  reference: "reference";
@@ -4946,7 +5070,25 @@ declare const pluginManifestSchema: z$1.ZodObject<{
4946
5070
  }, z$1.core.$strip>>>;
4947
5071
  }, z$1.core.$strip>;
4948
5072
  }, z$1.core.$strip>;
4949
- type ValidatedPluginManifest = z$1.infer<typeof pluginManifestSchema>;
5073
+ type ValidatedPluginManifest = z$1.infer<typeof pluginManifestSchema$1>;
5074
+ //#endregion
5075
+ //#region src/plugins/save-rejection.d.ts
5076
+ /**
5077
+ * Thrown by a `content:beforeSave` hook to reject a save with a message
5078
+ * that is safe to show to the editor. The runtime converts it into a
5079
+ * structured `SAVE_REJECTED` API error; any other exception thrown by the
5080
+ * hook cancels the save with a generic error that hides the exception
5081
+ * message.
5082
+ */
5083
+ declare class ContentSaveRejectedError extends Error {
5084
+ readonly name = "ContentSaveRejectedError";
5085
+ }
5086
+ /**
5087
+ * Matches by name as well as by prototype: bundlers can duplicate this
5088
+ * module across SSR chunks, and an `instanceof` against the wrong copy of
5089
+ * the class would misreport a rejection as a plugin crash.
5090
+ */
5091
+ declare function isContentSaveRejection(error: unknown): error is ContentSaveRejectedError;
4950
5092
  //#endregion
4951
5093
  //#region src/plugins/manager.d.ts
4952
5094
  /**
@@ -5023,7 +5165,7 @@ declare class PluginManager {
5023
5165
  /**
5024
5166
  * Run content:beforeSave hooks across all active plugins
5025
5167
  */
5026
- runContentBeforeSave(content: Record<string, unknown>, collection: string, isNew: boolean): Promise<{
5168
+ runContentBeforeSave(content: Record<string, unknown>, collection: string, isNew: boolean, id?: string): Promise<{
5027
5169
  content: Record<string, unknown>;
5028
5170
  results: HookResult<Record<string, unknown>>[];
5029
5171
  }>;
@@ -5184,10 +5326,8 @@ declare class NodeCronScheduler implements CronScheduler {
5184
5326
  private timer;
5185
5327
  private running;
5186
5328
  private systemCleanup;
5187
- private mediaUsageMaintenance;
5188
5329
  constructor(executor: CronExecutor);
5189
5330
  setSystemCleanup(fn: SystemCleanupFn): void;
5190
- setMediaUsageMaintenance(fn: SystemCleanupFn): void;
5191
5331
  start(): void;
5192
5332
  stop(): void;
5193
5333
  reschedule(): void;
@@ -5477,6 +5617,16 @@ declare function getSiteSetting<K extends SiteSettingKey>(key: K): Promise<SiteS
5477
5617
  * ```
5478
5618
  */
5479
5619
  declare function getSiteSettings(): Promise<Partial<SiteSettings>>;
5620
+ /**
5621
+ * Get all site settings with a Workers edge-cache hint.
5622
+ *
5623
+ * Use the returned `cacheHint` with `Astro.cache.set()` so pages that render
5624
+ * settings can be purged automatically when site settings change.
5625
+ */
5626
+ declare function getSiteSettingsWithCacheHint(): Promise<{
5627
+ data: Partial<SiteSettings>;
5628
+ cacheHint: CacheHint;
5629
+ }>;
5480
5630
  /**
5481
5631
  * Set site settings (internal function used by admin API)
5482
5632
  *
@@ -5673,6 +5823,16 @@ declare function getMenus(options?: MenuQueryOptions): Promise<Array<{
5673
5823
  label: string;
5674
5824
  locale: string;
5675
5825
  }>>;
5826
+ /**
5827
+ * Get a menu by name with a Workers edge-cache hint.
5828
+ *
5829
+ * Use the returned `cacheHint` with `Astro.cache.set()` so pages that render
5830
+ * this menu can be purged automatically when the menu is edited.
5831
+ */
5832
+ declare function getMenuWithCacheHint(name: string, options?: MenuQueryOptions): Promise<{
5833
+ data: Menu | null;
5834
+ cacheHint: CacheHint;
5835
+ }>;
5676
5836
  //#endregion
5677
5837
  //#region src/bylines/index.d.ts
5678
5838
  /**
@@ -5875,12 +6035,27 @@ declare function getTaxonomyDef(name: string, options?: TaxonomyQueryOptions): P
5875
6035
  * the term list with callers that do.
5876
6036
  */
5877
6037
  declare function getTaxonomyTerms(taxonomyName: string, options?: TaxonomyTermsOptions): Promise<TaxonomyTerm[]>;
6038
+ /**
6039
+ * Get all terms of a taxonomy with a Workers edge-cache hint.
6040
+ *
6041
+ * Use the returned `cacheHint` with `Astro.cache.set()` so pages that render
6042
+ * a taxonomy facet can be purged automatically when taxonomy terms change.
6043
+ */
6044
+ declare function getTaxonomyTermsWithCacheHint(taxonomyName: string, options?: TaxonomyTermsOptions): Promise<{
6045
+ data: TaxonomyTerm[];
6046
+ cacheHint: CacheHint;
6047
+ }>;
5878
6048
  /**
5879
6049
  * Get a single term by (taxonomy, slug). Honours the fallback chain — if the
5880
6050
  * slug exists in a fallback locale, we return that row (useful for deep-linking
5881
6051
  * to a term page when the translation is missing).
6052
+ *
6053
+ * The term row and its visible-entry count are loaded and cached separately: the
6054
+ * row depends only on the taxonomy epoch, while the count adds an aggregate over
6055
+ * the whole assignment pivot and every counted collection's content epoch. A
6056
+ * caller that renders no count passes `includeCounts: false` and skips it.
5882
6057
  */
5883
- declare function getTerm(taxonomyName: string, slug: string, options?: TaxonomyQueryOptions): Promise<TaxonomyTerm | null>;
6058
+ declare function getTerm(taxonomyName: string, slug: string, options?: TaxonomyTermsOptions): Promise<TaxonomyTerm | null>;
5884
6059
  /**
5885
6060
  * Terms assigned to a content entry, resolved into the active locale and then
5886
6061
  * the configured default locale.
@@ -5964,6 +6139,16 @@ interface ReorderWidgetsInput {
5964
6139
  * row with null widget columns, which we skip when mapping.
5965
6140
  */
5966
6141
  declare function getWidgetArea(name: string): Promise<WidgetArea | null>;
6142
+ /**
6143
+ * Get a widget area by name with a Workers edge-cache hint.
6144
+ *
6145
+ * Use the returned `cacheHint` with `Astro.cache.set()` so pages that render
6146
+ * this widget area can be purged automatically when its widgets change.
6147
+ */
6148
+ declare function getWidgetAreaWithCacheHint(name: string): Promise<{
6149
+ data: WidgetArea | null;
6150
+ cacheHint: CacheHint;
6151
+ }>;
5967
6152
  /**
5968
6153
  * Get all widget areas with their widgets
5969
6154
  */
@@ -6373,5 +6558,5 @@ declare function extractPlainText(blocks: PortableTextBlock[] | string | null |
6373
6558
  */
6374
6559
  declare function extractSearchableFields(entry: Record<string, unknown>, fields: string[]): Record<string, string>;
6375
6560
  //#endregion
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
6561
+ export { CreateMenuInput as $, UpdateSectionInput as $n, handleRevisionList as $r, after as $t, WidgetComponentDef as A, PortableTextBlock$1 as Ai, computeContentHash as An, PluginDescriptor as Ar, SandboxNotAvailableError as At, getTermsForEntries as B, PortableTextMarkDef as Bn, handleMediaUsageRepair as Br, CacheNamespace as Bt, CreateWidgetAreaInput as C, reference as Ci, EntryFilter as Cn, SandboxedPluginInstance as Cr, PreviewTokenPayload as Ct, UpdateWidgetInput as D, FieldUIHints as Di, getDb as Dn, getSandboxRouteErrorDetails as Dr, parseContentId as Dt, ReorderWidgetsInput as E, FieldDefinition as Ei, emdashLoader as En, createSandboxRouteErrorEnvelope as Er, generatePreviewToken as Et, getTaxonomyDef as F, MediaItem as Fi, prosemirrorToPortableText as Fn, getCollectionInfo as Fr, ContentSaveRejectedError as Ft, TaxonomyTermRow as G, ProseMirrorMark as Gn, handleMediaDelete as Gr, invalidateBylineObjectCache as Gt, CreateTermInput as H, PortableTextTextBlock as Hn, MediaListResponse as Hr, cachedQuery as Ht, getTaxonomyDefs as I, MediaRepository as Ii, PortableTextCodeBlock as In, SchemaError as Ir, isContentSaveRejection as It, getBylineBySlug as J, getSections as Jn, handleMediaReplaceMetadata as Jr, invalidateMenuObjectCache as Jt, UpdateTermInput as K, ProseMirrorNode as Kn, handleMediaGet as Kr, invalidateCollectionCache as Kt, getTaxonomyTerms as L, ContentRepository as Li, PortableTextHtmlBlock as Ln, SchemaRegistry as Lr, ValidatedPluginManifest as Lt, getAllTermsForEntries as M, PluginStorageRepository as Mi, portableTextIdentityExtensions as Mn, LocalStorageConfig as Mr, NodeCronScheduler as Mt, getEntriesByTerm as N, UserRepository as Ni, PortableTextToProsemirrorOptions as Nn, S3StorageConfig as Nr, PluginManager as Nt, Widget as O, FileValue as Oi, isSafeHref as On, getSandboxRouteErrorEnvelope as Or, verifyPreviewToken as Ot, getEntryTerms as P, CreateMediaInput as Pi, portableTextToProsemirror as Pn, StorageDescriptor as Pr, createPluginManager as Pt, getMenus as Q, SectionSource as Qn, handleRevisionGet as Qr, WaitUntilFn as Qt, getTaxonomyTermsWithCacheHint as R, DatabaseConfig as Ri, PortableTextImageBlock as Rn, handleMediaUsageActivationAdvance as Rr, pluginManifestSchema$1 as Rt, getWidgetComponents as S, portableText as Si, EntryData as Sn, SandboxUnavailableError as Sr, GeneratePreviewTokenOptions as St, PropDef as T, image as Ti, WhereValue as Tn, createSandboxRouteError as Tr, VerifyPreviewTokenResult as Tt, TaxonomyDef as U, PortableTextUnknownBlock as Un, MediaResponse as Ur, contentNamespace as Ut, invalidateTermCache as V, PortableTextSpan as Vn, markContentMediaUsageCollectionStaleSafely as Vr, CachedQueryOptions as Vt, TaxonomyTerm as W, ProseMirrorDocument as Wn, handleMediaCreate as Wr, contentNamespaces as Wt, getMenu as X, GetSectionsOptions as Xn, RevisionListResponse as Xr, invalidateSchemaObjectCache as Xt, getEntriesByByline as Y, CreateSectionInput as Yn, handleMediaUpdate as Yr, invalidateObjectCache as Yt, getMenuWithCacheHint as Z, Section as Zn, RevisionResponse as Zr, invalidateTaxonomyObjectCache as Zt, SuggestOptions as _, handleContentSchedule as _i, EditProxy as _n, SandboxRouteErrorCode as _r, getPreviewToken as _t, search as a, handleContentCountTrashed as ai, EmDashCollections as an, PluginRouteError as ar, UpdateMenuInput as at, getWidgetAreaWithCacheHint as b, handleContentUnschedule as bi, createNoop as bn, SandboxRunner as br, buildPreviewUrl as bt, FTSManager as c, handleContentDiscardDraft as ci, ResolvePathResult as cn, EmailPipeline as cr, GetCommentsResult as ct, SearchConfig as d, handleContentGetIncludingTrashed as di, getEditMeta as dn, createHookPipeline as dr, getPluginSetting as dt, handleRevisionRestore as ei, CacheHint as en, EmDashRuntime as er, CreateMenuItemInput as et, SearchOptions as f, handleContentList as fi, getEmDashCollection as fn, createHttpAccess as fr, getPluginSettings as ft, SearchTokenizer as g, handleContentRestore as gi, CMSAnnotation as gn, SandboxOptions as gr, setSiteSettings as gt, SearchStats as h, handleContentPublish as hi, resolveEmDashPath as hn, SandboxEmailSendCallback as hr, getSiteSettingsWithCacheHint as ht, getSuggestions as i, handleContentCountScheduled as ii, EditFieldMeta as in, SystemCleanupFn as ir, ReorderMenuItemsInput as it, WidgetType as j, CompoundSelectLimitedAdapter as ji, hashString as jn, getStoredConfig as jr, createNoopSandboxRunner as jt, WidgetArea as k, ImageValue as ki, sanitizeHref as kn, EmDashConfig as kr, NoopSandboxRunner as kt, CollectionSearchOptions as l, handleContentDuplicate as li, TranslationSummary as ln, HookPipeline as lr, getCommentCount as lt, SearchResult as m, handleContentPermanentDelete as mi, getTranslations as mn, SandboxEmailMessage as mr, getSiteSettings as mt, extractSearchableFields as n, handleContentAuthors as ni, CollectionResult as nn, PublishedRef as nr, MenuItem as nt, searchCollection as o, handleContentCreate as oi, EntryResult as on, RouteCallerInput as or, UpdateMenuItemInput as ot, SearchResponse as p, handleContentListTrashed as pi, getEmDashEntry as pn, createUnrestrictedHttpAccess as pr, getSiteSetting as pt, getByline as q, getSection as qn, handleMediaList as qr, invalidateCommentObjectCache as qt, getSearchStats as r, handleContentCompare as ri, ContentEntry as rn, CronScheduler as rr, MenuItemType as rt, searchWithDb as s, handleContentDelete as si, InferCollectionData as sn, RouteMeta as sr, GetCommentsOptions as st, extractPlainText as t, generateManifest as ti, CollectionFilter as tn, SandboxedPluginEntry as tr, Menu as tt, SEARCH_TOKENIZERS as u, handleContentGet as ui, TranslationsResult as un, HookResult as ur, getComments as ut, Suggestion as v, handleContentTranslations as vi, FieldAnnotation as vn, SandboxRouteErrorDetails as vr, isPreviewRequest as vt, CreateWidgetInput as w, file as wi, WhereRange as wn, SerializedRequest as wr, VerifyPreviewTokenOptions as wt, getWidgetAreas as x, handleContentUpdate as xi, CollectionFilter$1 as xn, SandboxRunnerFactory as xr, getPreviewUrl as xt, getWidgetArea as y, handleContentUnpublish as yi, createEditable as yn, SandboxRouteErrorEnvelope as yr, GetPreviewUrlOptions as yt, getTerm as z, EmDashDatabaseError as zi, PortableTextLinkMark as zn, handleMediaUsageProgress as zr, definePlugin as zt };
6562
+ //# sourceMappingURL=index-BJNMCWmu.d.mts.map