emdash 0.37.0 → 0.39.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 (1445) hide show
  1. package/dist/action-token-On1sot_c.mjs +26 -0
  2. package/dist/action-token-On1sot_c.mjs.map +1 -0
  3. package/dist/activation-CaMfdBt1.mjs +382 -0
  4. package/dist/activation-CaMfdBt1.mjs.map +1 -0
  5. package/dist/adapters-Cq10K4_c.d.mts +171 -0
  6. package/dist/adapters-Cq10K4_c.d.mts.map +1 -0
  7. package/dist/after-PcEvMY_6.mjs +96 -0
  8. package/dist/after-PcEvMY_6.mjs.map +1 -0
  9. package/dist/allowed-origins-1Sa-2wZK.mjs +116 -0
  10. package/dist/allowed-origins-1Sa-2wZK.mjs.map +1 -0
  11. package/dist/api/route-utils.d.mts +4 -3
  12. package/dist/api/route-utils.d.mts.map +1 -1
  13. package/dist/api/route-utils.mjs +45 -29
  14. package/dist/api/route-utils.mjs.map +1 -1
  15. package/dist/api/schemas/index.d.mts +2 -2
  16. package/dist/api/schemas/index.mjs +7 -6
  17. package/dist/api-DmjKxPCY.mjs +4831 -0
  18. package/dist/api-DmjKxPCY.mjs.map +1 -0
  19. package/dist/api-tokens-BIXItFKV.mjs +163 -0
  20. package/dist/api-tokens-BIXItFKV.mjs.map +1 -0
  21. package/dist/apply-drpfmqrR.mjs +1005 -0
  22. package/dist/apply-drpfmqrR.mjs.map +1 -0
  23. package/dist/artifact-fetch-COiMhVgk.mjs +813 -0
  24. package/dist/artifact-fetch-COiMhVgk.mjs.map +1 -0
  25. package/dist/astro/index.d.mts +14 -12
  26. package/dist/astro/index.d.mts.map +1 -1
  27. package/dist/astro/index.mjs +123 -13
  28. package/dist/astro/index.mjs.map +1 -1
  29. package/dist/astro/middleware/auth.d.mts +12 -10
  30. package/dist/astro/middleware/auth.d.mts.map +1 -1
  31. package/dist/astro/middleware/auth.mjs +20 -11
  32. package/dist/astro/middleware/auth.mjs.map +1 -1
  33. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  34. package/dist/astro/middleware/redirect.mjs +11 -9
  35. package/dist/astro/middleware/redirect.mjs.map +1 -1
  36. package/dist/astro/middleware/request-context.d.mts +1 -1
  37. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  38. package/dist/astro/middleware/request-context.mjs +154 -28
  39. package/dist/astro/middleware/request-context.mjs.map +1 -1
  40. package/dist/astro/middleware/setup.mjs +1 -1
  41. package/dist/astro/middleware.d.mts +13 -10
  42. package/dist/astro/middleware.d.mts.map +1 -1
  43. package/dist/astro/middleware.mjs +122 -3041
  44. package/dist/astro/middleware.mjs.map +1 -1
  45. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +10 -9
  46. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
  47. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +10 -9
  48. package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
  49. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +5 -5
  50. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
  51. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -6
  52. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +13 -12
  53. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
  54. package/dist/astro/routes/api/admin/byline-fields/index.mjs +13 -12
  55. package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
  56. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +13 -12
  57. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
  58. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +22 -21
  59. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  60. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +22 -21
  61. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  62. package/dist/astro/routes/api/admin/bylines/index.mjs +22 -21
  63. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  64. package/dist/astro/routes/api/admin/comments/_id_/status.d.mts.map +1 -1
  65. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +21 -54
  66. package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
  67. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
  68. package/dist/astro/routes/api/admin/comments/bulk.mjs +15 -14
  69. package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
  70. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
  71. package/dist/astro/routes/api/admin/comments/index.mjs +15 -14
  72. package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
  73. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  74. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  75. package/dist/astro/routes/api/admin/media-usage/activation.mjs +17 -16
  76. package/dist/astro/routes/api/admin/media-usage/activation.mjs.map +1 -1
  77. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +19 -18
  78. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -1
  79. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +19 -18
  80. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -1
  81. package/dist/astro/routes/api/admin/media-usage/progress.mjs +17 -17
  82. package/dist/astro/routes/api/admin/media-usage/repair.mjs +21 -20
  83. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  84. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +19 -18
  85. package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -1
  86. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +19 -18
  87. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -1
  88. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -5
  89. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -5
  90. package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts.map +1 -1
  91. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +9 -66
  92. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
  93. package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts.map +1 -1
  94. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +9 -69
  95. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +66 -59
  97. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +6 -6
  99. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +65 -59
  100. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  101. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +70 -61
  102. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  103. package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts.map +1 -1
  104. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +87 -63
  105. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  106. package/dist/astro/routes/api/admin/plugins/index.mjs +66 -59
  107. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  108. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +4 -4
  109. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +65 -59
  110. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  111. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts.map +1 -1
  112. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +85 -63
  113. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  114. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +65 -59
  115. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  116. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +70 -61
  117. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  118. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.d.mts.map +1 -1
  119. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +90 -66
  120. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  121. package/dist/astro/routes/api/admin/plugins/registry/artifact.d.mts.map +1 -1
  122. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -7
  123. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  124. package/dist/astro/routes/api/admin/plugins/registry/install.d.mts.map +1 -1
  125. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +77 -63
  126. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  127. package/dist/astro/routes/api/admin/plugins/registry/verify.d.mts.map +1 -1
  128. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +67 -61
  129. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  130. package/dist/astro/routes/api/admin/plugins/updates.d.mts.map +1 -1
  131. package/dist/astro/routes/api/admin/plugins/updates.mjs +66 -60
  132. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  133. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.d.mts +8 -0
  134. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.d.mts.map +1 -0
  135. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +27 -0
  136. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs.map +1 -0
  137. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +65 -59
  138. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  139. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +4 -4
  140. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +65 -59
  141. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  142. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +4 -4
  143. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -3
  144. package/dist/astro/routes/api/admin/users/_id_/index.mjs +11 -10
  145. package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
  146. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +5 -5
  147. package/dist/astro/routes/api/admin/users/index.mjs +10 -9
  148. package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
  149. package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -5
  150. package/dist/astro/routes/api/auth/invite/accept.mjs +3 -3
  151. package/dist/astro/routes/api/auth/invite/complete.mjs +15 -14
  152. package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
  153. package/dist/astro/routes/api/auth/invite/index.mjs +12 -11
  154. package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
  155. package/dist/astro/routes/api/auth/invite/register-options.mjs +14 -13
  156. package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
  157. package/dist/astro/routes/api/auth/logout.mjs +4 -4
  158. package/dist/astro/routes/api/auth/magic-link/send.mjs +14 -13
  159. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  160. package/dist/astro/routes/api/auth/magic-link/verify.mjs +4 -4
  161. package/dist/astro/routes/api/auth/me.mjs +11 -10
  162. package/dist/astro/routes/api/auth/me.mjs.map +1 -1
  163. package/dist/astro/routes/api/auth/mode.mjs +4 -4
  164. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +4 -4
  165. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  166. package/dist/astro/routes/api/auth/passkey/_id_.mjs +10 -9
  167. package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
  168. package/dist/astro/routes/api/auth/passkey/index.mjs +3 -3
  169. package/dist/astro/routes/api/auth/passkey/options.mjs +16 -15
  170. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  171. package/dist/astro/routes/api/auth/passkey/register/options.mjs +14 -13
  172. package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
  173. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +15 -14
  174. package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
  175. package/dist/astro/routes/api/auth/passkey/verify.mjs +15 -14
  176. package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
  177. package/dist/astro/routes/api/auth/signup/complete.mjs +15 -14
  178. package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
  179. package/dist/astro/routes/api/auth/signup/request.mjs +14 -13
  180. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  181. package/dist/astro/routes/api/auth/signup/verify.mjs +3 -3
  182. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.d.mts.map +1 -1
  183. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +15 -211
  184. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -1
  185. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +18 -17
  186. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
  187. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -4
  188. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts.map +1 -1
  189. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +17 -11
  190. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  191. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  192. package/dist/astro/routes/api/content/_collection_/_id_/lock.d.mts +10 -0
  193. package/dist/astro/routes/api/content/_collection_/_id_/lock.d.mts.map +1 -0
  194. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +67 -0
  195. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -0
  196. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -4
  197. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.d.mts +8 -0
  198. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.d.mts.map +1 -0
  199. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +35 -0
  200. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs.map +1 -0
  201. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +16 -15
  202. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  203. package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts +9 -2
  204. package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts.map +1 -1
  205. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +28 -16
  206. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  207. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +27 -23
  208. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  209. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +27 -23
  210. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  211. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
  212. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -4
  213. package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts.map +1 -1
  214. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +27 -12
  215. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  216. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +23 -20
  217. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  218. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -4
  219. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts.map +1 -1
  220. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +25 -12
  221. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  222. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  223. package/dist/astro/routes/api/content/_collection_/_id_.mjs +27 -14
  224. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  225. package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -4
  226. package/dist/astro/routes/api/content/_collection_/index.mjs +18 -12
  227. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  228. package/dist/astro/routes/api/content/_collection_/trash.mjs +11 -10
  229. package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
  230. package/dist/astro/routes/api/dashboard.mjs +14 -12
  231. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  232. package/dist/astro/routes/api/dev/emails.mjs +4 -4
  233. package/dist/astro/routes/api/health.d.mts +8 -0
  234. package/dist/astro/routes/api/health.d.mts.map +1 -0
  235. package/dist/astro/routes/api/health.mjs +21 -0
  236. package/dist/astro/routes/api/health.mjs.map +1 -0
  237. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  238. package/dist/astro/routes/api/import/probe.mjs +25 -23
  239. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  240. package/dist/astro/routes/api/import/wordpress/analyze.mjs +5 -5
  241. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -11
  242. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  243. package/dist/astro/routes/api/import/wordpress/execute.mjs +20 -19
  244. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  245. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -10
  246. package/dist/astro/routes/api/import/wordpress/media.d.mts.map +1 -1
  247. package/dist/astro/routes/api/import/wordpress/media.mjs +15 -14
  248. package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
  249. package/dist/astro/routes/api/import/wordpress/prepare.mjs +14 -13
  250. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  251. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -11
  252. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts.map +1 -1
  253. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +18 -17
  254. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  255. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  256. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +25 -23
  257. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  258. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
  259. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -11
  260. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -1
  261. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +36 -33
  262. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  263. package/dist/astro/routes/api/manifest.mjs +17 -9
  264. package/dist/astro/routes/api/manifest.mjs.map +1 -1
  265. package/dist/astro/routes/api/mcp.d.mts.map +1 -1
  266. package/dist/astro/routes/api/mcp.mjs +192 -110
  267. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  268. package/dist/astro/routes/api/media/_id_/confirm.mjs +15 -14
  269. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  270. package/dist/astro/routes/api/media/_id_/replace.mjs +12 -11
  271. package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -1
  272. package/dist/astro/routes/api/media/_id_/upload.mjs +8 -8
  273. package/dist/astro/routes/api/media/_id_/usage.mjs +23 -22
  274. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  275. package/dist/astro/routes/api/media/_id_.mjs +22 -21
  276. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  277. package/dist/astro/routes/api/media/asset/_id_/_filename_.d.mts +8 -0
  278. package/dist/astro/routes/api/media/asset/_id_/_filename_.d.mts.map +1 -0
  279. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +52 -0
  280. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs.map +1 -0
  281. package/dist/astro/routes/api/media/file/_...key_.mjs +3 -3
  282. package/dist/astro/routes/api/media/folders/_id_.mjs +12 -11
  283. package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -1
  284. package/dist/astro/routes/api/media/folders/index.mjs +12 -11
  285. package/dist/astro/routes/api/media/folders/index.mjs.map +1 -1
  286. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
  287. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
  288. package/dist/astro/routes/api/media/providers/index.mjs +4 -4
  289. package/dist/astro/routes/api/media/upload-url.mjs +14 -13
  290. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  291. package/dist/astro/routes/api/media.mjs +26 -25
  292. package/dist/astro/routes/api/media.mjs.map +1 -1
  293. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +15 -14
  294. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  295. package/dist/astro/routes/api/menus/_name_/items.mjs +15 -14
  296. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  297. package/dist/astro/routes/api/menus/_name_/reorder.mjs +15 -14
  298. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  299. package/dist/astro/routes/api/menus/_name_/translations.mjs +15 -14
  300. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  301. package/dist/astro/routes/api/menus/_name_.mjs +15 -14
  302. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  303. package/dist/astro/routes/api/menus/index.mjs +15 -14
  304. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  305. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  306. package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -7
  307. package/dist/astro/routes/api/oauth/device/code.mjs +10 -10
  308. package/dist/astro/routes/api/oauth/device/token.mjs +9 -9
  309. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  310. package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -7
  311. package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -7
  312. package/dist/astro/routes/api/oauth/token.mjs +7 -7
  313. package/dist/astro/routes/api/openapi.json.mjs +95 -24
  314. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  315. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts +2 -1
  316. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts.map +1 -1
  317. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +22 -40
  318. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
  319. package/dist/astro/routes/api/redirects/404s/index.mjs +18 -14
  320. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  321. package/dist/astro/routes/api/redirects/404s/summary.mjs +18 -14
  322. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  323. package/dist/astro/routes/api/redirects/_id_.d.mts.map +1 -1
  324. package/dist/astro/routes/api/redirects/_id_.mjs +20 -22
  325. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  326. package/dist/astro/routes/api/redirects/index.d.mts.map +1 -1
  327. package/dist/astro/routes/api/redirects/index.mjs +19 -19
  328. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  329. package/dist/astro/routes/api/relations/_id_/index.mjs +27 -23
  330. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  331. package/dist/astro/routes/api/relations/_id_/translations.mjs +21 -18
  332. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +1 -1
  333. package/dist/astro/routes/api/relations/index.mjs +27 -23
  334. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  335. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -4
  336. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +5 -5
  337. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +65 -59
  338. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  339. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +65 -59
  340. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  341. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +65 -59
  342. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  343. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +65 -59
  344. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  345. package/dist/astro/routes/api/schema/collections/index.mjs +65 -59
  346. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  347. package/dist/astro/routes/api/schema/collections/reorder.mjs +65 -59
  348. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  349. package/dist/astro/routes/api/schema/index.mjs +16 -14
  350. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  351. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +65 -59
  352. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  353. package/dist/astro/routes/api/schema/orphans/index.mjs +65 -59
  354. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  355. package/dist/astro/routes/api/search/enable.mjs +16 -14
  356. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  357. package/dist/astro/routes/api/search/index.mjs +17 -14
  358. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  359. package/dist/astro/routes/api/search/rebuild.mjs +16 -14
  360. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  361. package/dist/astro/routes/api/search/stats.mjs +10 -9
  362. package/dist/astro/routes/api/search/stats.mjs.map +1 -1
  363. package/dist/astro/routes/api/search/suggest.mjs +15 -13
  364. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  365. package/dist/astro/routes/api/sections/_slug_.mjs +15 -13
  366. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  367. package/dist/astro/routes/api/sections/index.mjs +15 -13
  368. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  369. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +9 -8
  370. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs.map +1 -1
  371. package/dist/astro/routes/api/settings/backups/archives/index.mjs +8 -7
  372. package/dist/astro/routes/api/settings/backups/archives/index.mjs.map +1 -1
  373. package/dist/astro/routes/api/settings/backups/export.mjs +9 -8
  374. package/dist/astro/routes/api/settings/backups/export.mjs.map +1 -1
  375. package/dist/astro/routes/api/settings/backups/index.mjs +10 -9
  376. package/dist/astro/routes/api/settings/backups/index.mjs.map +1 -1
  377. package/dist/astro/routes/api/settings/email.mjs +6 -6
  378. package/dist/astro/routes/api/settings.mjs +22 -20
  379. package/dist/astro/routes/api/settings.mjs.map +1 -1
  380. package/dist/astro/routes/api/setup/admin-verify.mjs +16 -15
  381. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  382. package/dist/astro/routes/api/setup/admin.mjs +15 -14
  383. package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
  384. package/dist/astro/routes/api/setup/dev-bypass.mjs +42 -38
  385. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  386. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  387. package/dist/astro/routes/api/setup/index.mjs +43 -38
  388. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  389. package/dist/astro/routes/api/setup/status.mjs +5 -5
  390. package/dist/astro/routes/api/snapshot.mjs +11 -10
  391. package/dist/astro/routes/api/snapshot.mjs.map +1 -1
  392. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +23 -21
  393. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  394. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +23 -21
  395. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  396. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +23 -21
  397. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  398. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +23 -21
  399. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  400. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +22 -20
  401. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  402. package/dist/astro/routes/api/taxonomies/_name_.mjs +23 -21
  403. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  404. package/dist/astro/routes/api/taxonomies/index.mjs +23 -21
  405. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  406. package/dist/astro/routes/api/themes/preview.mjs +8 -8
  407. package/dist/astro/routes/api/typegen.mjs +6 -6
  408. package/dist/astro/routes/api/visual-editing/action-token.d.mts +8 -0
  409. package/dist/astro/routes/api/visual-editing/action-token.d.mts.map +1 -0
  410. package/dist/astro/routes/api/visual-editing/action-token.mjs +25 -0
  411. package/dist/astro/routes/api/visual-editing/action-token.mjs.map +1 -0
  412. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.d.mts +8 -0
  413. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.d.mts.map +1 -0
  414. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +37 -0
  415. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs.map +1 -0
  416. package/dist/astro/routes/api/visual-editing/toolbar-labels.d.mts +8 -0
  417. package/dist/astro/routes/api/visual-editing/toolbar-labels.d.mts.map +1 -0
  418. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +20 -0
  419. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs.map +1 -0
  420. package/dist/astro/routes/api/well-known/auth.mjs +2 -2
  421. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  422. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  423. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +12 -11
  424. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  425. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +16 -15
  426. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  427. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +16 -15
  428. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  429. package/dist/astro/routes/api/widget-areas/_name_.mjs +10 -10
  430. package/dist/astro/routes/api/widget-areas/index.mjs +16 -15
  431. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  432. package/dist/astro/routes/api/widget-components.mjs +4 -4
  433. package/dist/astro/routes/robots.txt.mjs +13 -12
  434. package/dist/astro/routes/robots.txt.mjs.map +1 -1
  435. package/dist/astro/routes/sitemap-_collection_.xml.d.mts.map +1 -1
  436. package/dist/astro/routes/sitemap-_collection_.xml.mjs +24 -19
  437. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  438. package/dist/astro/routes/sitemap.xml.mjs +14 -13
  439. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  440. package/dist/astro/types.d.mts +79 -26
  441. package/dist/astro/types.d.mts.map +1 -1
  442. package/dist/auth/providers/github.d.mts +1 -1
  443. package/dist/auth/providers/google.d.mts +1 -1
  444. package/dist/authoritative-records-DbqshfKD.mjs +5172 -0
  445. package/dist/authoritative-records-DbqshfKD.mjs.map +1 -0
  446. package/dist/authorize-BXpfMpp0.mjs +40 -0
  447. package/dist/authorize-BXpfMpp0.mjs.map +1 -0
  448. package/dist/backup-BsPQdwnS.mjs +246 -0
  449. package/dist/backup-BsPQdwnS.mjs.map +1 -0
  450. package/dist/base64-DvnNgP7e.mjs +63 -0
  451. package/dist/base64-DvnNgP7e.mjs.map +1 -0
  452. package/dist/byline-Doh-wt99.mjs +906 -0
  453. package/dist/byline-Doh-wt99.mjs.map +1 -0
  454. package/dist/byline-fields-CsrdvaLV.mjs +123 -0
  455. package/dist/byline-fields-CsrdvaLV.mjs.map +1 -0
  456. package/dist/byline-registry-D6lWzXk6.mjs +406 -0
  457. package/dist/byline-registry-D6lWzXk6.mjs.map +1 -0
  458. package/dist/bylines-Cop0hkoy.mjs +214 -0
  459. package/dist/bylines-Cop0hkoy.mjs.map +1 -0
  460. package/dist/bylines-kpBzHPr8.mjs +232 -0
  461. package/dist/bylines-kpBzHPr8.mjs.map +1 -0
  462. package/dist/cache-B0pOlXdM.mjs +108 -0
  463. package/dist/cache-B0pOlXdM.mjs.map +1 -0
  464. package/dist/capture-triggers-gxQxnxrJ.mjs +362 -0
  465. package/dist/capture-triggers-gxQxnxrJ.mjs.map +1 -0
  466. package/dist/challenge-store-CkRdSdd8.mjs +51 -0
  467. package/dist/challenge-store-CkRdSdd8.mjs.map +1 -0
  468. package/dist/checksum-Bsi2D9M1.mjs +162 -0
  469. package/dist/checksum-Bsi2D9M1.mjs.map +1 -0
  470. package/dist/chrome-tags-D7LGB91U.mjs +24 -0
  471. package/dist/chrome-tags-D7LGB91U.mjs.map +1 -0
  472. package/dist/chunks-BmWyou79.mjs +25 -0
  473. package/dist/chunks-BmWyou79.mjs.map +1 -0
  474. package/dist/cli/index.mjs +921 -106
  475. package/dist/cli/index.mjs.map +1 -1
  476. package/dist/client/cf-access.d.mts +1 -1
  477. package/dist/client/index.d.mts +17 -7
  478. package/dist/client/index.d.mts.map +1 -1
  479. package/dist/client/index.mjs +17 -12
  480. package/dist/client/index.mjs.map +1 -1
  481. package/dist/collection-deletion-C3Xixmkx.mjs +436 -0
  482. package/dist/collection-deletion-C3Xixmkx.mjs.map +1 -0
  483. package/dist/collection-slugs-cache-D9auiKmI.mjs +85 -0
  484. package/dist/collection-slugs-cache-D9auiKmI.mjs.map +1 -0
  485. package/dist/comment-DcT8qdPK.mjs +313 -0
  486. package/dist/comment-DcT8qdPK.mjs.map +1 -0
  487. package/dist/comment-reaction-DY5-y8Y5.mjs +85 -0
  488. package/dist/comment-reaction-DY5-y8Y5.mjs.map +1 -0
  489. package/dist/comments-B67VRNGw.mjs +204 -0
  490. package/dist/comments-B67VRNGw.mjs.map +1 -0
  491. package/dist/comments-BVzzt6x5.mjs +99 -0
  492. package/dist/comments-BVzzt6x5.mjs.map +1 -0
  493. package/dist/components-DIl9Qzh6.mjs +108 -0
  494. package/dist/components-DIl9Qzh6.mjs.map +1 -0
  495. package/dist/config-B2acLeC5.mjs +242 -0
  496. package/dist/config-B2acLeC5.mjs.map +1 -0
  497. package/dist/config-CGVeT8Hc.mjs +73 -0
  498. package/dist/config-CGVeT8Hc.mjs.map +1 -0
  499. package/dist/config-D3HhLON3.d.mts +39 -0
  500. package/dist/config-D3HhLON3.d.mts.map +1 -0
  501. package/dist/config-DS7e4EZ9.d.mts +6387 -0
  502. package/dist/config-DS7e4EZ9.d.mts.map +1 -0
  503. package/dist/content-DZ3B5qtA.mjs +2216 -0
  504. package/dist/content-DZ3B5qtA.mjs.map +1 -0
  505. package/dist/content-list-query-CbPdzsna.d.mts +26 -0
  506. package/dist/content-list-query-CbPdzsna.d.mts.map +1 -0
  507. package/dist/content-policy-CM4skrNi.mjs +46 -0
  508. package/dist/content-policy-CM4skrNi.mjs.map +1 -0
  509. package/dist/content-refresh-BHLHJgyt.mjs +3599 -0
  510. package/dist/content-refresh-BHLHJgyt.mjs.map +1 -0
  511. package/dist/content-repair-BVll5WNl.mjs +440 -0
  512. package/dist/content-repair-BVll5WNl.mjs.map +1 -0
  513. package/dist/context-B195kjqZ.mjs +1835 -0
  514. package/dist/context-B195kjqZ.mjs.map +1 -0
  515. package/dist/cron-BcR3RN4K.mjs +282 -0
  516. package/dist/cron-BcR3RN4K.mjs.map +1 -0
  517. package/dist/dashboard-CZD4G7k_.mjs +151 -0
  518. package/dist/dashboard-CZD4G7k_.mjs.map +1 -0
  519. package/dist/database/migration-lock.d.mts +37 -0
  520. package/dist/database/migration-lock.d.mts.map +1 -0
  521. package/dist/database/migration-lock.mjs +76 -0
  522. package/dist/database/migration-lock.mjs.map +1 -0
  523. package/dist/database/pg-migration-lock.d.mts +1 -1
  524. package/dist/database/pg-migration-lock.mjs +1 -1
  525. package/dist/database/pg-migration-lock.mjs.map +1 -1
  526. package/dist/datetime-normalization-PeiEdcRY.mjs +187 -0
  527. package/dist/datetime-normalization-PeiEdcRY.mjs.map +1 -0
  528. package/dist/db/index.d.mts +3 -3
  529. package/dist/db/index.mjs +4 -3
  530. package/dist/db/index.mjs.map +1 -1
  531. package/dist/db/libsql-migrations.d.mts +1 -1
  532. package/dist/db/libsql-migrations.mjs +7 -6
  533. package/dist/db/libsql-migrations.mjs.map +1 -1
  534. package/dist/db/libsql.d.mts +1 -1
  535. package/dist/db/postgres-migrations.d.mts +1 -1
  536. package/dist/db/postgres-migrations.mjs +7 -6
  537. package/dist/db/postgres-migrations.mjs.map +1 -1
  538. package/dist/db/postgres.d.mts +1 -1
  539. package/dist/db/sqlite-migrations.d.mts +1 -1
  540. package/dist/db/sqlite-migrations.mjs +7 -6
  541. package/dist/db/sqlite-migrations.mjs.map +1 -1
  542. package/dist/db/sqlite.d.mts +1 -1
  543. package/dist/db/sqlite.mjs +1 -1
  544. package/dist/db-errors-CBD5yMro.mjs +55 -0
  545. package/dist/db-errors-CBD5yMro.mjs.map +1 -0
  546. package/dist/default-BtlxWgh9.mjs +81 -0
  547. package/dist/default-BtlxWgh9.mjs.map +1 -0
  548. package/dist/deferred-tasks-Ba9fphlE.d.mts +9 -0
  549. package/dist/deferred-tasks-Ba9fphlE.d.mts.map +1 -0
  550. package/dist/dev-typegen-CZaPLl3V.mjs +29 -0
  551. package/dist/dev-typegen-CZaPLl3V.mjs.map +1 -0
  552. package/dist/device-flow-3E5l0fpH.mjs +466 -0
  553. package/dist/device-flow-3E5l0fpH.mjs.map +1 -0
  554. package/dist/dialect-helpers-CtYdsX4W.mjs +307 -0
  555. package/dist/dialect-helpers-CtYdsX4W.mjs.map +1 -0
  556. package/dist/direct-executor-ZI8E01Yt.mjs +104 -0
  557. package/dist/direct-executor-ZI8E01Yt.mjs.map +1 -0
  558. package/dist/dist-2hDLsLeq.mjs +810 -0
  559. package/dist/dist-2hDLsLeq.mjs.map +1 -0
  560. package/dist/email-console-gc-E3Eqj.mjs +50 -0
  561. package/dist/email-console-gc-E3Eqj.mjs.map +1 -0
  562. package/dist/emdash-runtime-DZGinqTL.mjs +4041 -0
  563. package/dist/emdash-runtime-DZGinqTL.mjs.map +1 -0
  564. package/dist/enrich-C2Mk0lwE.mjs +194 -0
  565. package/dist/enrich-C2Mk0lwE.mjs.map +1 -0
  566. package/dist/entry-lock-D3C99MXS.mjs +1520 -0
  567. package/dist/entry-lock-D3C99MXS.mjs.map +1 -0
  568. package/dist/entry-lock-D9rnj2Lu.mjs +163 -0
  569. package/dist/entry-lock-D9rnj2Lu.mjs.map +1 -0
  570. package/dist/entry-lock-DX7QkqEg.d.mts +3503 -0
  571. package/dist/entry-lock-DX7QkqEg.d.mts.map +1 -0
  572. package/dist/entry-locks-CO_KaoU5.mjs +167 -0
  573. package/dist/entry-locks-CO_KaoU5.mjs.map +1 -0
  574. package/dist/error-CCTCskie.mjs +90 -0
  575. package/dist/error-CCTCskie.mjs.map +1 -0
  576. package/dist/errors-W3PA8HqB.mjs +447 -0
  577. package/dist/errors-W3PA8HqB.mjs.map +1 -0
  578. package/dist/escape-DN4Qmjsl.mjs +9 -0
  579. package/dist/escape-DN4Qmjsl.mjs.map +1 -0
  580. package/dist/field-defs-cache-B337z8UJ.mjs +77 -0
  581. package/dist/field-defs-cache-B337z8UJ.mjs.map +1 -0
  582. package/dist/focal-point-Gr34o-4o.mjs +23 -0
  583. package/dist/focal-point-Gr34o-4o.mjs.map +1 -0
  584. package/dist/fts-manager-DMb0sbIQ.mjs +413 -0
  585. package/dist/fts-manager-DMb0sbIQ.mjs.map +1 -0
  586. package/dist/hash-CLVFzWvx.mjs +37 -0
  587. package/dist/hash-CLVFzWvx.mjs.map +1 -0
  588. package/dist/hook-result-KY1jq21o.d.mts +31 -0
  589. package/dist/hook-result-KY1jq21o.d.mts.map +1 -0
  590. package/dist/hreflang-BgS2FqhH.d.mts +50 -0
  591. package/dist/hreflang-BgS2FqhH.d.mts.map +1 -0
  592. package/dist/hreflang-CrJwqoeb.mjs +105 -0
  593. package/dist/hreflang-CrJwqoeb.mjs.map +1 -0
  594. package/dist/http-route-dispatch-DAKlanXb.mjs +339 -0
  595. package/dist/http-route-dispatch-DAKlanXb.mjs.map +1 -0
  596. package/dist/identity-DRGSHEEr.mjs +35 -0
  597. package/dist/identity-DRGSHEEr.mjs.map +1 -0
  598. package/dist/import-DFr5B_hC.mjs +2020 -0
  599. package/dist/import-DFr5B_hC.mjs.map +1 -0
  600. package/dist/index-CDwKDkTq.d.mts +623 -0
  601. package/dist/index-CDwKDkTq.d.mts.map +1 -0
  602. package/dist/index.d.mts +27 -22
  603. package/dist/index.mjs +101 -86
  604. package/dist/init-lock-4eRRB4Le.mjs +56 -0
  605. package/dist/init-lock-4eRRB4Le.mjs.map +1 -0
  606. package/dist/install-finalization-5Os-QZ-2.mjs +58 -0
  607. package/dist/install-finalization-5Os-QZ-2.mjs.map +1 -0
  608. package/dist/lifecycle-7e-Lt_kX.mjs +25 -0
  609. package/dist/lifecycle-7e-Lt_kX.mjs.map +1 -0
  610. package/dist/load-Cu5bvCZh.mjs +28 -0
  611. package/dist/load-Cu5bvCZh.mjs.map +1 -0
  612. package/dist/loader-t4TxaFiQ.mjs +1004 -0
  613. package/dist/loader-t4TxaFiQ.mjs.map +1 -0
  614. package/dist/manifest-builder-D31UoJCu.mjs +189 -0
  615. package/dist/manifest-builder-D31UoJCu.mjs.map +1 -0
  616. package/dist/manifest-schema-Bkh8SeHd.mjs +491 -0
  617. package/dist/manifest-schema-Bkh8SeHd.mjs.map +1 -0
  618. package/dist/media/image-endpoint.mjs +1 -1
  619. package/dist/media/index.d.mts +1 -1
  620. package/dist/media/index.mjs +4 -4
  621. package/dist/media/local-runtime.d.mts +14 -12
  622. package/dist/media/local-runtime.d.mts.map +1 -1
  623. package/dist/media/local-runtime.mjs +12 -11
  624. package/dist/media/local-runtime.mjs.map +1 -1
  625. package/dist/media-TBlKCwo7.mjs +334 -0
  626. package/dist/media-TBlKCwo7.mjs.map +1 -0
  627. package/dist/media-allowlist-s60eAIf6.mjs +44 -0
  628. package/dist/media-allowlist-s60eAIf6.mjs.map +1 -0
  629. package/dist/media-folders-ClIRLUQv.mjs +210 -0
  630. package/dist/media-folders-ClIRLUQv.mjs.map +1 -0
  631. package/dist/media-url-DY_ijO3B.mjs +43 -0
  632. package/dist/media-url-DY_ijO3B.mjs.map +1 -0
  633. package/dist/media-usage-C4NolTpQ.mjs +1833 -0
  634. package/dist/media-usage-C4NolTpQ.mjs.map +1 -0
  635. package/dist/media-usage-activation-CAhmb14O.mjs +78 -0
  636. package/dist/media-usage-activation-CAhmb14O.mjs.map +1 -0
  637. package/dist/media-usage-work-Cu5DqewW.mjs +586 -0
  638. package/dist/media-usage-work-Cu5DqewW.mjs.map +1 -0
  639. package/dist/media-usage-work-DJr3rOEN.mjs +152 -0
  640. package/dist/media-usage-work-DJr3rOEN.mjs.map +1 -0
  641. package/dist/media-usage-write-fence-DW5oHT7q.mjs +42 -0
  642. package/dist/media-usage-write-fence-DW5oHT7q.mjs.map +1 -0
  643. package/dist/menus-DbgU9z5Q.mjs +3732 -0
  644. package/dist/menus-DbgU9z5Q.mjs.map +1 -0
  645. package/dist/menus-Wy8m5NcH.mjs +753 -0
  646. package/dist/menus-Wy8m5NcH.mjs.map +1 -0
  647. package/dist/migrations/index.d.mts +2 -2
  648. package/dist/migrations/index.d.mts.map +1 -1
  649. package/dist/migrations/index.mjs +6 -5
  650. package/dist/mime-CCYRC4r1.mjs +36 -0
  651. package/dist/mime-CCYRC4r1.mjs.map +1 -0
  652. package/dist/mode-CkmOhFqj.mjs +23 -0
  653. package/dist/mode-CkmOhFqj.mjs.map +1 -0
  654. package/dist/node-sqlite-compat-vpVaILnb.mjs +46 -0
  655. package/dist/node-sqlite-compat-vpVaILnb.mjs.map +1 -0
  656. package/dist/normalize-dChXQjwS.mjs +191 -0
  657. package/dist/normalize-dChXQjwS.mjs.map +1 -0
  658. package/dist/oauth-authorization-DZ-R-hmx.mjs +274 -0
  659. package/dist/oauth-authorization-DZ-R-hmx.mjs.map +1 -0
  660. package/dist/oauth-clients-BMPA8vjl.mjs +266 -0
  661. package/dist/oauth-clients-BMPA8vjl.mjs.map +1 -0
  662. package/dist/oauth-state-store-0gIdb48-.mjs +50 -0
  663. package/dist/oauth-state-store-0gIdb48-.mjs.map +1 -0
  664. package/dist/oauth-user-lookup-ChVW4UWu.mjs +26 -0
  665. package/dist/oauth-user-lookup-ChVW4UWu.mjs.map +1 -0
  666. package/dist/object-cache/memory.d.mts +1 -1
  667. package/dist/object-cache-DlSVbn5Y.mjs +534 -0
  668. package/dist/object-cache-DlSVbn5Y.mjs.map +1 -0
  669. package/dist/options-D5WcorD5.mjs +200 -0
  670. package/dist/options-D5WcorD5.mjs.map +1 -0
  671. package/dist/options-DAknChnw.d.mts +77 -0
  672. package/dist/options-DAknChnw.d.mts.map +1 -0
  673. package/dist/page/index.d.mts +2 -2
  674. package/dist/page/index.d.mts.map +1 -1
  675. package/dist/page/index.mjs +13 -0
  676. package/dist/page/index.mjs.map +1 -1
  677. package/dist/parse-Cr379Av9.mjs +81 -0
  678. package/dist/parse-Cr379Av9.mjs.map +1 -0
  679. package/dist/parse-tj9XLNO_.d.mts +165 -0
  680. package/dist/parse-tj9XLNO_.d.mts.map +1 -0
  681. package/dist/passkey-config-BD-wMaCf.mjs +46 -0
  682. package/dist/passkey-config-BD-wMaCf.mjs.map +1 -0
  683. package/dist/patterns-Do3iqi7N.mjs +145 -0
  684. package/dist/patterns-Do3iqi7N.mjs.map +1 -0
  685. package/dist/placeholder-CubPFn_L.d.mts +306 -0
  686. package/dist/placeholder-CubPFn_L.d.mts.map +1 -0
  687. package/dist/plugin-test-runtime.d.mts +97 -0
  688. package/dist/plugin-test-runtime.d.mts.map +1 -0
  689. package/dist/plugin-test-runtime.mjs +105 -0
  690. package/dist/plugin-types.d.mts +53 -15
  691. package/dist/plugin-types.d.mts.map +1 -1
  692. package/dist/plugin-types.mjs +18 -1
  693. package/dist/plugin-types.mjs.map +1 -0
  694. package/dist/plugin-utils.d.mts +12 -10
  695. package/dist/plugin-utils.d.mts.map +1 -1
  696. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -10
  697. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  698. package/dist/plugins/adapt-sandbox-entry.mjs +18 -13
  699. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  700. package/dist/plugins/host.d.mts +7 -0
  701. package/dist/plugins/host.mjs +45 -0
  702. package/dist/plugins/http-wire.d.mts +25 -0
  703. package/dist/plugins/http-wire.d.mts.map +1 -0
  704. package/dist/plugins/http-wire.mjs +148 -0
  705. package/dist/plugins/http-wire.mjs.map +1 -0
  706. package/dist/plugins/secret-redactor.d.mts +9 -0
  707. package/dist/plugins/secret-redactor.d.mts.map +1 -0
  708. package/dist/plugins/secret-redactor.mjs +51 -0
  709. package/dist/plugins/secret-redactor.mjs.map +1 -0
  710. package/dist/plugins-DHurtdXQ.mjs +277 -0
  711. package/dist/plugins-DHurtdXQ.mjs.map +1 -0
  712. package/dist/policy-lyZnjpwz.mjs +45 -0
  713. package/dist/policy-lyZnjpwz.mjs.map +1 -0
  714. package/dist/portable-text-oAwodbPS.mjs +286 -0
  715. package/dist/portable-text-oAwodbPS.mjs.map +1 -0
  716. package/dist/preview-Cup2bj8c.mjs +107 -0
  717. package/dist/preview-Cup2bj8c.mjs.map +1 -0
  718. package/dist/protocol-C1CNiKX4.d.mts +61 -0
  719. package/dist/protocol-C1CNiKX4.d.mts.map +1 -0
  720. package/dist/public-submission-Cs-pFMQK.mjs +245 -0
  721. package/dist/public-submission-Cs-pFMQK.mjs.map +1 -0
  722. package/dist/public-url-BWVHsfQv.mjs +101 -0
  723. package/dist/public-url-BWVHsfQv.mjs.map +1 -0
  724. package/dist/query-D-lxiOgn.mjs +890 -0
  725. package/dist/query-D-lxiOgn.mjs.map +1 -0
  726. package/dist/query-D7kHKOws.mjs +41 -0
  727. package/dist/query-D7kHKOws.mjs.map +1 -0
  728. package/dist/rate-limit-CqJn-w4h.mjs +120 -0
  729. package/dist/rate-limit-CqJn-w4h.mjs.map +1 -0
  730. package/dist/redirect-BrChFPIu.mjs +17 -0
  731. package/dist/redirect-BrChFPIu.mjs.map +1 -0
  732. package/dist/redirect-D2Yo-b6S.mjs +415 -0
  733. package/dist/redirect-D2Yo-b6S.mjs.map +1 -0
  734. package/dist/redirects-BCiTaIQ-.mjs +146 -0
  735. package/dist/redirects-BCiTaIQ-.mjs.map +1 -0
  736. package/dist/redirects-ByItliuu.mjs +644 -0
  737. package/dist/redirects-ByItliuu.mjs.map +1 -0
  738. package/dist/registry/testing.d.mts +14 -0
  739. package/dist/registry/testing.d.mts.map +1 -0
  740. package/dist/registry/testing.mjs +255 -0
  741. package/dist/registry/testing.mjs.map +1 -0
  742. package/dist/registry-CkuPoZs7.mjs +1222 -0
  743. package/dist/registry-CkuPoZs7.mjs.map +1 -0
  744. package/dist/relation-XTAtOpJO.mjs +334 -0
  745. package/dist/relation-XTAtOpJO.mjs.map +1 -0
  746. package/dist/relations-B4w-G5U9.mjs +309 -0
  747. package/dist/relations-B4w-G5U9.mjs.map +1 -0
  748. package/dist/relations-O63JWBRj.mjs +403 -0
  749. package/dist/relations-O63JWBRj.mjs.map +1 -0
  750. package/dist/request-cache-DaMhSQdx.mjs +104 -0
  751. package/dist/request-cache-DaMhSQdx.mjs.map +1 -0
  752. package/dist/request-context.d.mts +1 -1
  753. package/dist/request-meta-C8yl_sIs.mjs +141 -0
  754. package/dist/request-meta-C8yl_sIs.mjs.map +1 -0
  755. package/dist/resolve-BJIS8wKr.mjs +199 -0
  756. package/dist/resolve-BJIS8wKr.mjs.map +1 -0
  757. package/dist/route-wire-D66L2oaZ.mjs +197 -0
  758. package/dist/route-wire-D66L2oaZ.mjs.map +1 -0
  759. package/dist/routes-DYsTe-oR.mjs +321 -0
  760. package/dist/routes-DYsTe-oR.mjs.map +1 -0
  761. package/dist/runner-3gfxRsJG.d.mts +68 -0
  762. package/dist/runner-3gfxRsJG.d.mts.map +1 -0
  763. package/dist/runner-ClrleR8A.mjs +5502 -0
  764. package/dist/runner-ClrleR8A.mjs.map +1 -0
  765. package/dist/runtime.d.mts +13 -11
  766. package/dist/runtime.d.mts.map +1 -1
  767. package/dist/runtime.mjs +6 -5
  768. package/dist/runtime.mjs.map +1 -1
  769. package/dist/schema-CPhPM9Do.mjs +420 -0
  770. package/dist/schema-CPhPM9Do.mjs.map +1 -0
  771. package/dist/schema-DEERRrKS.mjs +9 -0
  772. package/dist/schema-DEERRrKS.mjs.map +1 -0
  773. package/dist/scopes-Bn8_rCSt.mjs +27 -0
  774. package/dist/scopes-Bn8_rCSt.mjs.map +1 -0
  775. package/dist/search-lami_Ota.mjs +448 -0
  776. package/dist/search-lami_Ota.mjs.map +1 -0
  777. package/dist/secrets-DNgVgz_e.mjs +341 -0
  778. package/dist/secrets-DNgVgz_e.mjs.map +1 -0
  779. package/dist/sections-BIpd4Cxf.mjs +346 -0
  780. package/dist/sections-BIpd4Cxf.mjs.map +1 -0
  781. package/dist/seed/index.d.mts +2 -2
  782. package/dist/seed/index.mjs +35 -31
  783. package/dist/seo/index.d.mts +3 -3
  784. package/dist/seo/index.d.mts.map +1 -1
  785. package/dist/seo/index.mjs +27 -26
  786. package/dist/seo/index.mjs.map +1 -1
  787. package/dist/seo-BtU70b7l.mjs +114 -0
  788. package/dist/seo-BtU70b7l.mjs.map +1 -0
  789. package/dist/seo-_4qmazxz.mjs +133 -0
  790. package/dist/seo-_4qmazxz.mjs.map +1 -0
  791. package/dist/service-Bpy5iTX0.mjs +150 -0
  792. package/dist/service-Bpy5iTX0.mjs.map +1 -0
  793. package/dist/session-user-BQeS2Mrb.mjs +51 -0
  794. package/dist/session-user-BQeS2Mrb.mjs.map +1 -0
  795. package/dist/settings-DmroR53o.mjs +420 -0
  796. package/dist/settings-DmroR53o.mjs.map +1 -0
  797. package/dist/settings-g2F2a3Ub.mjs +51 -0
  798. package/dist/settings-g2F2a3Ub.mjs.map +1 -0
  799. package/dist/setup-complete-BrZaXpVV.mjs +26 -0
  800. package/dist/setup-complete-BrZaXpVV.mjs.map +1 -0
  801. package/dist/setup-nonce-Cb9-884O.mjs +25 -0
  802. package/dist/setup-nonce-Cb9-884O.mjs.map +1 -0
  803. package/dist/single-flight-cache-B5O2qhO1.mjs +104 -0
  804. package/dist/single-flight-cache-B5O2qhO1.mjs.map +1 -0
  805. package/dist/site-url-DjhYCaep.mjs +16 -0
  806. package/dist/site-url-DjhYCaep.mjs.map +1 -0
  807. package/dist/slugify-T5GHH42D.mjs +17 -0
  808. package/dist/slugify-T5GHH42D.mjs.map +1 -0
  809. package/dist/snapshot-C32Xuv3o.mjs +233 -0
  810. package/dist/snapshot-C32Xuv3o.mjs.map +1 -0
  811. package/dist/ssrf-Co1GGFZz.mjs +406 -0
  812. package/dist/ssrf-Co1GGFZz.mjs.map +1 -0
  813. package/dist/state-C7gCoiHr.mjs +153 -0
  814. package/dist/state-C7gCoiHr.mjs.map +1 -0
  815. package/dist/status-DLoBmcDz.mjs +30 -0
  816. package/dist/status-DLoBmcDz.mjs.map +1 -0
  817. package/dist/storage/local.d.mts +1 -1
  818. package/dist/storage/local.mjs +1 -1
  819. package/dist/storage/s3.d.mts +1 -1
  820. package/dist/storage/s3.mjs +1 -1
  821. package/dist/storage-query-CPctdMKX.d.mts +1519 -0
  822. package/dist/storage-query-CPctdMKX.d.mts.map +1 -0
  823. package/dist/target-CUKlGrXb.mjs +27 -0
  824. package/dist/target-CUKlGrXb.mjs.map +1 -0
  825. package/dist/taxonomies-BpqpXJUE.mjs +707 -0
  826. package/dist/taxonomies-BpqpXJUE.mjs.map +1 -0
  827. package/dist/taxonomies-ClCo4IGO.mjs +899 -0
  828. package/dist/taxonomies-ClCo4IGO.mjs.map +1 -0
  829. package/dist/taxonomy-Dj1vpw5E.mjs +508 -0
  830. package/dist/taxonomy-Dj1vpw5E.mjs.map +1 -0
  831. package/dist/tokens-Ns02GAma.mjs +171 -0
  832. package/dist/tokens-Ns02GAma.mjs.map +1 -0
  833. package/dist/transaction-BcJO4Tmc.mjs +29 -0
  834. package/dist/transaction-BcJO4Tmc.mjs.map +1 -0
  835. package/dist/transport-B8P1xsqk.mjs +136 -0
  836. package/dist/transport-B8P1xsqk.mjs.map +1 -0
  837. package/dist/transport-BLHZZcD_.d.mts +42 -0
  838. package/dist/transport-BLHZZcD_.d.mts.map +1 -0
  839. package/dist/trusted-proxy-Cg7SuD15.mjs +51 -0
  840. package/dist/trusted-proxy-Cg7SuD15.mjs.map +1 -0
  841. package/dist/turnstile-DWCSh_Qc.mjs +53 -0
  842. package/dist/turnstile-DWCSh_Qc.mjs.map +1 -0
  843. package/dist/types-B3RkqvDW.mjs +156 -0
  844. package/dist/types-B3RkqvDW.mjs.map +1 -0
  845. package/dist/types-BkUg2yHx.mjs +92 -0
  846. package/dist/types-BkUg2yHx.mjs.map +1 -0
  847. package/dist/types-BtuppOTV.mjs +16 -0
  848. package/dist/types-BtuppOTV.mjs.map +1 -0
  849. package/dist/types-CCR3ivXE.d.mts +363 -0
  850. package/dist/types-CCR3ivXE.d.mts.map +1 -0
  851. package/dist/types-CSHgU_-_.mjs +18 -0
  852. package/dist/types-CSHgU_-_.mjs.map +1 -0
  853. package/dist/types-CbwqGOXm.d.mts +766 -0
  854. package/dist/types-CbwqGOXm.d.mts.map +1 -0
  855. package/dist/types-D4RGIc2I.d.mts +198 -0
  856. package/dist/types-D4RGIc2I.d.mts.map +1 -0
  857. package/dist/types-DEHidMEk.d.mts +1637 -0
  858. package/dist/types-DEHidMEk.d.mts.map +1 -0
  859. package/dist/types-DQeU2SR7.d.mts +279 -0
  860. package/dist/types-DQeU2SR7.d.mts.map +1 -0
  861. package/dist/types-DxQWoQLA.d.mts +264 -0
  862. package/dist/types-DxQWoQLA.d.mts.map +1 -0
  863. package/dist/types-FBBnGZ2Y.d.mts +198 -0
  864. package/dist/types-FBBnGZ2Y.d.mts.map +1 -0
  865. package/dist/types-ZCnlropY.mjs +69 -0
  866. package/dist/types-ZCnlropY.mjs.map +1 -0
  867. package/dist/types-_Qtyawiy.d.mts +124 -0
  868. package/dist/types-_Qtyawiy.d.mts.map +1 -0
  869. package/dist/types-gC6FAoa_.d.mts +75 -0
  870. package/dist/types-gC6FAoa_.d.mts.map +1 -0
  871. package/dist/types-k--LneIF.mjs +22 -0
  872. package/dist/types-k--LneIF.mjs.map +1 -0
  873. package/dist/upload-attempts-2xdnoKGe.mjs +27 -0
  874. package/dist/upload-attempts-2xdnoKGe.mjs.map +1 -0
  875. package/dist/url-pattern-3m3reMzr.mjs +33 -0
  876. package/dist/url-pattern-3m3reMzr.mjs.map +1 -0
  877. package/dist/user-DroRntkx.mjs +171 -0
  878. package/dist/user-DroRntkx.mjs.map +1 -0
  879. package/dist/utils-CC2oNGV8.mjs +435 -0
  880. package/dist/utils-CC2oNGV8.mjs.map +1 -0
  881. package/dist/validate-BCP9HNDn.mjs +384 -0
  882. package/dist/validate-BCP9HNDn.mjs.map +1 -0
  883. package/dist/validate-CyQ7I3xF.d.mts +410 -0
  884. package/dist/validate-CyQ7I3xF.d.mts.map +1 -0
  885. package/dist/validate-DANX1-Qi.mjs +120 -0
  886. package/dist/validate-DANX1-Qi.mjs.map +1 -0
  887. package/dist/validation-DBy6WF94.mjs +216 -0
  888. package/dist/validation-DBy6WF94.mjs.map +1 -0
  889. package/dist/version-B57E4Uo7.mjs +7 -0
  890. package/dist/version-B57E4Uo7.mjs.map +1 -0
  891. package/dist/widgets-wQ7Xcgq8.mjs +126 -0
  892. package/dist/widgets-wQ7Xcgq8.mjs.map +1 -0
  893. package/dist/wxr-taxonomies-DIHfvEDt.mjs +406 -0
  894. package/dist/wxr-taxonomies-DIHfvEDt.mjs.map +1 -0
  895. package/dist/wxr-taxonomies-DU2ZSiGc.d.mts +34 -0
  896. package/dist/wxr-taxonomies-DU2ZSiGc.d.mts.map +1 -0
  897. package/dist/zod-generator-D_yHIWfs.mjs +329 -0
  898. package/dist/zod-generator-D_yHIWfs.mjs.map +1 -0
  899. package/package.json +39 -12
  900. package/src/api/errors.ts +23 -0
  901. package/src/api/handlers/backup.ts +11 -5
  902. package/src/api/handlers/content.ts +226 -85
  903. package/src/api/handlers/dashboard.ts +31 -1
  904. package/src/api/handlers/entry-lock.ts +206 -0
  905. package/src/api/handlers/index.ts +3 -0
  906. package/src/api/handlers/manifest.ts +5 -6
  907. package/src/api/handlers/marketplace.ts +126 -34
  908. package/src/api/handlers/media-upload.ts +31 -4
  909. package/src/api/handlers/menus.ts +9 -0
  910. package/src/api/handlers/plugin-settings.ts +35 -3
  911. package/src/api/handlers/redirects.ts +221 -138
  912. package/src/api/handlers/registry.ts +75 -29
  913. package/src/api/handlers/revision.ts +16 -27
  914. package/src/api/handlers/seo.ts +10 -1
  915. package/src/api/handlers/snapshot.ts +87 -72
  916. package/src/api/handlers/taxonomies.ts +79 -5
  917. package/src/api/handlers/validation.ts +120 -19
  918. package/src/api/openapi/document.ts +133 -11
  919. package/src/api/schemas/content.ts +32 -12
  920. package/src/api/schemas/entry-lock.ts +57 -0
  921. package/src/api/schemas/index.ts +1 -0
  922. package/src/api/schemas/schema.ts +10 -1
  923. package/src/api/schemas/search.ts +4 -0
  924. package/src/api/types.ts +4 -0
  925. package/src/astro/integration/index.ts +22 -6
  926. package/src/astro/integration/routes.ts +89 -0
  927. package/src/astro/integration/runtime.ts +40 -24
  928. package/src/astro/integration/virtual-modules.ts +4 -0
  929. package/src/astro/integration/vite-config.ts +31 -0
  930. package/src/astro/middleware/auth.ts +25 -4
  931. package/src/astro/middleware/request-context.ts +28 -10
  932. package/src/astro/middleware.ts +33 -1
  933. package/src/astro/prefetch.ts +2 -2
  934. package/src/astro/routes/api/admin/comments/[id]/status.ts +22 -58
  935. package/src/astro/routes/api/admin/plugins/[id]/disable.ts +2 -15
  936. package/src/astro/routes/api/admin/plugins/[id]/enable.ts +2 -25
  937. package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +1 -0
  938. package/src/astro/routes/api/admin/plugins/[id]/update.ts +23 -4
  939. package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +12 -2
  940. package/src/astro/routes/api/admin/plugins/registry/[id]/uninstall.ts +1 -0
  941. package/src/astro/routes/api/admin/plugins/registry/[id]/update.ts +29 -10
  942. package/src/astro/routes/api/admin/plugins/registry/artifact.ts +8 -2
  943. package/src/astro/routes/api/admin/plugins/registry/install.ts +15 -4
  944. package/src/astro/routes/api/admin/plugins/registry/verify.ts +2 -1
  945. package/src/astro/routes/api/admin/plugins/updates.ts +6 -1
  946. package/src/astro/routes/api/admin/scheduled-policy-rejections/[collection]/[id].ts +34 -0
  947. package/src/astro/routes/api/comments/[collection]/[contentId]/index.ts +4 -259
  948. package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +10 -0
  949. package/src/astro/routes/api/content/[collection]/[id]/lock.ts +133 -0
  950. package/src/astro/routes/api/content/[collection]/[id]/plugin-extensions/[pluginId]/[kind]/[extensionId].ts +29 -0
  951. package/src/astro/routes/api/content/[collection]/[id]/publish.ts +21 -4
  952. package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +30 -1
  953. package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +15 -1
  954. package/src/astro/routes/api/content/[collection]/[id].ts +27 -2
  955. package/src/astro/routes/api/content/[collection]/index.ts +3 -0
  956. package/src/astro/routes/api/health.ts +23 -0
  957. package/src/astro/routes/api/manifest.ts +14 -4
  958. package/src/astro/routes/api/mcp.ts +2 -1
  959. package/src/astro/routes/api/media/asset/[id]/[filename].ts +50 -0
  960. package/src/astro/routes/api/plugins/[pluginId]/[...path].ts +13 -81
  961. package/src/astro/routes/api/redirects/[id].ts +0 -3
  962. package/src/astro/routes/api/redirects/index.ts +0 -2
  963. package/src/astro/routes/api/search/index.ts +1 -0
  964. package/src/astro/routes/api/visual-editing/action-token.ts +36 -0
  965. package/src/astro/routes/api/visual-editing/content/[collection]/[id]/publish.ts +32 -0
  966. package/src/astro/routes/api/visual-editing/toolbar-labels.ts +16 -0
  967. package/src/astro/routes/sitemap-[collection].xml.ts +11 -4
  968. package/src/astro/types.ts +83 -12
  969. package/src/cli/commands/bundle-utils.ts +19 -19
  970. package/src/cli/commands/bundle.ts +9 -6
  971. package/src/cli/commands/content.ts +32 -6
  972. package/src/cli/commands/doctor.ts +25 -0
  973. package/src/cli/commands/export-seed.ts +195 -56
  974. package/src/cli/commands/migrate.ts +71 -23
  975. package/src/cli/commands/publish.ts +2 -2
  976. package/src/client/index.ts +34 -7
  977. package/src/comments/public-submission.ts +246 -0
  978. package/src/comments/service.ts +59 -12
  979. package/src/components/EmDashBodyEnd.astro +4 -1
  980. package/src/components/EmDashBodyStart.astro +4 -1
  981. package/src/components/EmDashHead.astro +36 -16
  982. package/src/components/Gallery.astro +18 -4
  983. package/src/components/InlineEditor.astro +3 -1
  984. package/src/components/InlinePortableTextEditor.tsx +106 -11
  985. package/src/components/PortableText.astro +4 -0
  986. package/src/components/Table.astro +147 -62
  987. package/src/components/widgets/Archives.astro +6 -5
  988. package/src/config/errors.ts +13 -0
  989. package/src/config/secrets.ts +25 -11
  990. package/src/content/converters/portable-text-to-prosemirror.ts +26 -2
  991. package/src/content/converters/prosemirror-to-portable-text.ts +35 -6
  992. package/src/content/converters/types.ts +10 -0
  993. package/src/content/known-fields.ts +44 -0
  994. package/src/database/connection.ts +5 -1
  995. package/src/database/content-datetime.ts +123 -0
  996. package/src/database/datetime-storage.ts +452 -0
  997. package/src/database/dialect-helpers.ts +161 -1
  998. package/src/database/migration-lock.ts +140 -0
  999. package/src/database/migrations/075_entry_edit_locks.ts +44 -0
  1000. package/src/database/migrations/076_collection_nav_group.ts +22 -0
  1001. package/src/database/migrations/077_plugin_storage_revisions.ts +89 -0
  1002. package/src/database/migrations/078_menu_item_translation_groups.ts +15 -0
  1003. package/src/database/migrations/079_datetime_normalization.ts +13 -0
  1004. package/src/database/migrations/080_content_translation_locale_unique.ts +88 -0
  1005. package/src/database/migrations/081_redirect_write_guards.ts +257 -0
  1006. package/src/database/migrations/082_taxonomy_translation_locale_unique.ts +49 -0
  1007. package/src/database/migrations/runner.ts +63 -15
  1008. package/src/database/pg-migration-lock.ts +2 -2
  1009. package/src/database/repositories/byline.ts +9 -0
  1010. package/src/database/repositories/comment.ts +86 -0
  1011. package/src/database/repositories/content.ts +560 -69
  1012. package/src/database/repositories/entry-locks.ts +257 -0
  1013. package/src/database/repositories/media.ts +35 -4
  1014. package/src/database/repositories/menu.ts +1 -0
  1015. package/src/database/repositories/options.ts +113 -7
  1016. package/src/database/repositories/plugin-storage.ts +159 -0
  1017. package/src/database/repositories/redirect.ts +262 -56
  1018. package/src/database/repositories/revision.ts +116 -17
  1019. package/src/database/repositories/taxonomy.ts +42 -0
  1020. package/src/database/repositories/types.ts +5 -0
  1021. package/src/database/types.ts +26 -1
  1022. package/src/datetime-normalization.ts +311 -0
  1023. package/src/db/node-sqlite-compat.ts +3 -2
  1024. package/src/emdash-runtime.ts +1994 -424
  1025. package/src/fields/image.ts +2 -0
  1026. package/src/i18n/config.ts +6 -6
  1027. package/src/i18n/resolve.ts +98 -15
  1028. package/src/index.ts +101 -0
  1029. package/src/loader.ts +49 -4
  1030. package/src/mcp/server.ts +216 -68
  1031. package/src/media/responsive.ts +23 -0
  1032. package/src/media/usage/content-refresh.ts +2 -1
  1033. package/src/media/usage/extractor.ts +50 -15
  1034. package/src/media/usage/types.ts +1 -1
  1035. package/src/menus/index.ts +64 -35
  1036. package/src/migrations/direct-executor.ts +40 -2
  1037. package/src/migrations/index.ts +1 -0
  1038. package/src/migrations/protocol.ts +11 -1
  1039. package/src/page/seo-contributions.ts +78 -1
  1040. package/src/page/seo-panel.ts +47 -0
  1041. package/src/plugin-test-runtime.ts +17 -0
  1042. package/src/plugin-types.ts +128 -21
  1043. package/src/plugins/adapt-sandbox-entry.ts +34 -27
  1044. package/src/plugins/conditional-storage.ts +30 -0
  1045. package/src/plugins/content-access.ts +170 -0
  1046. package/src/plugins/content-policy.ts +74 -0
  1047. package/src/plugins/context.ts +790 -166
  1048. package/src/plugins/cron.ts +18 -10
  1049. package/src/plugins/define-plugin.ts +55 -54
  1050. package/src/plugins/editor-draft.ts +257 -0
  1051. package/src/plugins/hooks.ts +136 -3
  1052. package/src/plugins/host.ts +29 -0
  1053. package/src/plugins/http-route-dispatch.ts +389 -0
  1054. package/src/plugins/http-wire.ts +180 -0
  1055. package/src/plugins/index.ts +97 -3
  1056. package/src/plugins/install-finalization.ts +77 -0
  1057. package/src/plugins/lifecycle.ts +47 -0
  1058. package/src/plugins/manager.ts +5 -2
  1059. package/src/plugins/manifest-schema.ts +314 -58
  1060. package/src/plugins/media.ts +166 -0
  1061. package/src/plugins/request-meta.ts +12 -2
  1062. package/src/plugins/route-wire.ts +304 -0
  1063. package/src/plugins/routes.ts +38 -5
  1064. package/src/plugins/sandbox/index.ts +4 -0
  1065. package/src/plugins/sandbox/proxy.ts +129 -0
  1066. package/src/plugins/sandbox/types.ts +83 -7
  1067. package/src/plugins/secret-redactor.ts +65 -0
  1068. package/src/plugins/settings.ts +303 -0
  1069. package/src/plugins/state.ts +26 -0
  1070. package/src/plugins/storage-query.ts +45 -0
  1071. package/src/plugins/storage-update.ts +96 -0
  1072. package/src/plugins/types.ts +602 -15
  1073. package/src/query.ts +84 -4
  1074. package/src/registry/authoritative-records.ts +26 -0
  1075. package/src/registry/config.ts +182 -31
  1076. package/src/registry/testing.ts +100 -0
  1077. package/src/registry/types.ts +12 -70
  1078. package/src/scheduled-publish.ts +70 -3
  1079. package/src/schema/collection-slugs-cache.ts +157 -0
  1080. package/src/schema/index.ts +1 -0
  1081. package/src/schema/registry.ts +64 -1
  1082. package/src/schema/types.ts +32 -6
  1083. package/src/schema/zod-generator.ts +5 -13
  1084. package/src/search/fts-manager.ts +3 -3
  1085. package/src/search/query.ts +32 -5
  1086. package/src/search/types.ts +8 -0
  1087. package/src/security/ssrf.ts +167 -141
  1088. package/src/seed/apply.ts +41 -3
  1089. package/src/seed/types.ts +13 -3
  1090. package/src/seed/validate.ts +18 -1
  1091. package/src/seo/hreflang.ts +10 -6
  1092. package/src/seo/index.ts +5 -10
  1093. package/src/seo/media-url.ts +26 -0
  1094. package/src/settings/index.ts +53 -11
  1095. package/src/taxonomies/term-counts.ts +22 -5
  1096. package/src/visual-editing/action-token.ts +31 -0
  1097. package/src/visual-editing/toolbar-bootstrap.ts +31 -6
  1098. package/src/visual-editing/toolbar.ts +103 -12
  1099. package/src/widgets/archives.ts +10 -9
  1100. package/src/widgets/index.ts +11 -1
  1101. package/dist/activation-K0kGBWuJ.mjs +0 -382
  1102. package/dist/activation-K0kGBWuJ.mjs.map +0 -1
  1103. package/dist/adapters-BDQwg236.d.mts +0 -171
  1104. package/dist/adapters-BDQwg236.d.mts.map +0 -1
  1105. package/dist/after-CBU2vkoO.mjs +0 -96
  1106. package/dist/after-CBU2vkoO.mjs.map +0 -1
  1107. package/dist/allowed-origins-BGglilcs.mjs +0 -116
  1108. package/dist/allowed-origins-BGglilcs.mjs.map +0 -1
  1109. package/dist/api-Dz6rgoa3.mjs +0 -10040
  1110. package/dist/api-Dz6rgoa3.mjs.map +0 -1
  1111. package/dist/api-tokens-BSsQACNe.mjs +0 -163
  1112. package/dist/api-tokens-BSsQACNe.mjs.map +0 -1
  1113. package/dist/apply-B4SIOxR1.mjs +0 -980
  1114. package/dist/apply-B4SIOxR1.mjs.map +0 -1
  1115. package/dist/authorize-Bkf_UHhD.mjs +0 -40
  1116. package/dist/authorize-Bkf_UHhD.mjs.map +0 -1
  1117. package/dist/backup-rwVAl9NI.mjs +0 -241
  1118. package/dist/backup-rwVAl9NI.mjs.map +0 -1
  1119. package/dist/base64-CvLhUKQv.mjs +0 -63
  1120. package/dist/base64-CvLhUKQv.mjs.map +0 -1
  1121. package/dist/bundle-C8S2Zl6U.mjs +0 -663
  1122. package/dist/bundle-C8S2Zl6U.mjs.map +0 -1
  1123. package/dist/byline-DuhF7NWl.mjs +0 -902
  1124. package/dist/byline-DuhF7NWl.mjs.map +0 -1
  1125. package/dist/byline-fields-BovY4KYM.mjs +0 -123
  1126. package/dist/byline-fields-BovY4KYM.mjs.map +0 -1
  1127. package/dist/byline-registry-Bpu9-MVs.mjs +0 -406
  1128. package/dist/byline-registry-Bpu9-MVs.mjs.map +0 -1
  1129. package/dist/bylines-CJ5nd6Lw.mjs +0 -232
  1130. package/dist/bylines-CJ5nd6Lw.mjs.map +0 -1
  1131. package/dist/bylines-RwBAeOF1.mjs +0 -214
  1132. package/dist/bylines-RwBAeOF1.mjs.map +0 -1
  1133. package/dist/cache-BF5Kvn59.mjs +0 -108
  1134. package/dist/cache-BF5Kvn59.mjs.map +0 -1
  1135. package/dist/capture-triggers-CNW1q3HK.mjs +0 -362
  1136. package/dist/capture-triggers-CNW1q3HK.mjs.map +0 -1
  1137. package/dist/challenge-store-DQN_Yrck.mjs +0 -51
  1138. package/dist/challenge-store-DQN_Yrck.mjs.map +0 -1
  1139. package/dist/chrome-tags-D8fiZG94.mjs +0 -24
  1140. package/dist/chrome-tags-D8fiZG94.mjs.map +0 -1
  1141. package/dist/chunks-C4szrD8o.mjs +0 -25
  1142. package/dist/chunks-C4szrD8o.mjs.map +0 -1
  1143. package/dist/collection-deletion-Bj07NHbj.mjs +0 -436
  1144. package/dist/collection-deletion-Bj07NHbj.mjs.map +0 -1
  1145. package/dist/comment-reaction-BhrvSHml.mjs +0 -85
  1146. package/dist/comment-reaction-BhrvSHml.mjs.map +0 -1
  1147. package/dist/comment-vxOzWbZN.mjs +0 -255
  1148. package/dist/comment-vxOzWbZN.mjs.map +0 -1
  1149. package/dist/comments-Ct4ensnf.mjs +0 -204
  1150. package/dist/comments-Ct4ensnf.mjs.map +0 -1
  1151. package/dist/components-DJbo1z0S.mjs +0 -108
  1152. package/dist/components-DJbo1z0S.mjs.map +0 -1
  1153. package/dist/config-B9eZ340f.d.mts +0 -34
  1154. package/dist/config-B9eZ340f.d.mts.map +0 -1
  1155. package/dist/config-C3EBstHi.mjs +0 -72
  1156. package/dist/config-C3EBstHi.mjs.map +0 -1
  1157. package/dist/config-it29yDLA.mjs +0 -1163
  1158. package/dist/config-it29yDLA.mjs.map +0 -1
  1159. package/dist/content-DjvM0T92.mjs +0 -1725
  1160. package/dist/content-DjvM0T92.mjs.map +0 -1
  1161. package/dist/content-list-query-Btqd4uV2.d.mts +0 -26
  1162. package/dist/content-list-query-Btqd4uV2.d.mts.map +0 -1
  1163. package/dist/content-refresh-Bwp-8yGy.mjs +0 -3588
  1164. package/dist/content-refresh-Bwp-8yGy.mjs.map +0 -1
  1165. package/dist/content-repair-Czdp7jz5.mjs +0 -440
  1166. package/dist/content-repair-Czdp7jz5.mjs.map +0 -1
  1167. package/dist/context-CX6gxOLW.mjs +0 -1068
  1168. package/dist/context-CX6gxOLW.mjs.map +0 -1
  1169. package/dist/cron-C6o7VppJ.mjs +0 -277
  1170. package/dist/cron-C6o7VppJ.mjs.map +0 -1
  1171. package/dist/dashboard-C2kTeeRI.mjs +0 -140
  1172. package/dist/dashboard-C2kTeeRI.mjs.map +0 -1
  1173. package/dist/db-errors-Cl-sKYTm.mjs +0 -55
  1174. package/dist/db-errors-Cl-sKYTm.mjs.map +0 -1
  1175. package/dist/default-Clra32mw.mjs +0 -81
  1176. package/dist/default-Clra32mw.mjs.map +0 -1
  1177. package/dist/deferred-tasks-CvDETTJO.d.mts +0 -9
  1178. package/dist/deferred-tasks-CvDETTJO.d.mts.map +0 -1
  1179. package/dist/dev-typegen-DzOPfsNj.mjs +0 -29
  1180. package/dist/dev-typegen-DzOPfsNj.mjs.map +0 -1
  1181. package/dist/device-flow-D2oCWvLJ.mjs +0 -466
  1182. package/dist/device-flow-D2oCWvLJ.mjs.map +0 -1
  1183. package/dist/dialect-helpers-BSbfaO3F.mjs +0 -202
  1184. package/dist/dialect-helpers-BSbfaO3F.mjs.map +0 -1
  1185. package/dist/direct-executor-Bfa5_ToE.mjs +0 -85
  1186. package/dist/direct-executor-Bfa5_ToE.mjs.map +0 -1
  1187. package/dist/dist-89xCrGqi.mjs +0 -810
  1188. package/dist/dist-89xCrGqi.mjs.map +0 -1
  1189. package/dist/email-console-Dzb6uGYa.mjs +0 -50
  1190. package/dist/email-console-Dzb6uGYa.mjs.map +0 -1
  1191. package/dist/enrich-BX0IDp4z.mjs +0 -194
  1192. package/dist/enrich-BX0IDp4z.mjs.map +0 -1
  1193. package/dist/error-DFrQjppn.mjs +0 -90
  1194. package/dist/error-DFrQjppn.mjs.map +0 -1
  1195. package/dist/errors-DsVoDUjJ.mjs +0 -427
  1196. package/dist/errors-DsVoDUjJ.mjs.map +0 -1
  1197. package/dist/escape-HmHTC1Is.mjs +0 -9
  1198. package/dist/escape-HmHTC1Is.mjs.map +0 -1
  1199. package/dist/field-defs-cache-BM4SIRqH.mjs +0 -77
  1200. package/dist/field-defs-cache-BM4SIRqH.mjs.map +0 -1
  1201. package/dist/focal-point-BeWFo6Xx.mjs +0 -23
  1202. package/dist/focal-point-BeWFo6Xx.mjs.map +0 -1
  1203. package/dist/fts-manager-Do1BlW2r.mjs +0 -413
  1204. package/dist/fts-manager-Do1BlW2r.mjs.map +0 -1
  1205. package/dist/hash-3JJPlHF2.mjs +0 -37
  1206. package/dist/hash-3JJPlHF2.mjs.map +0 -1
  1207. package/dist/hook-result-DCh2WUpe.d.mts +0 -31
  1208. package/dist/hook-result-DCh2WUpe.d.mts.map +0 -1
  1209. package/dist/hreflang-B6hbAuuO.d.mts +0 -48
  1210. package/dist/hreflang-B6hbAuuO.d.mts.map +0 -1
  1211. package/dist/hreflang-DQbPZliA.mjs +0 -102
  1212. package/dist/hreflang-DQbPZliA.mjs.map +0 -1
  1213. package/dist/identity-DksvEazf.mjs +0 -35
  1214. package/dist/identity-DksvEazf.mjs.map +0 -1
  1215. package/dist/import-CJpaBBBT.mjs +0 -2020
  1216. package/dist/import-CJpaBBBT.mjs.map +0 -1
  1217. package/dist/index-BJNMCWmu.d.mts +0 -6562
  1218. package/dist/index-BJNMCWmu.d.mts.map +0 -1
  1219. package/dist/index-Du8K7bWa.d.mts +0 -278
  1220. package/dist/index-Du8K7bWa.d.mts.map +0 -1
  1221. package/dist/init-lock-DJkX6Hto.mjs +0 -56
  1222. package/dist/init-lock-DJkX6Hto.mjs.map +0 -1
  1223. package/dist/load-CawHjTOH.mjs +0 -28
  1224. package/dist/load-CawHjTOH.mjs.map +0 -1
  1225. package/dist/loader-Z8vl7zTq.mjs +0 -966
  1226. package/dist/loader-Z8vl7zTq.mjs.map +0 -1
  1227. package/dist/manifest-builder-COtzuca2.mjs +0 -189
  1228. package/dist/manifest-builder-COtzuca2.mjs.map +0 -1
  1229. package/dist/manifest-schema-BNWwR8Vd.mjs +0 -301
  1230. package/dist/manifest-schema-BNWwR8Vd.mjs.map +0 -1
  1231. package/dist/media-BBm8Wg3f.mjs +0 -318
  1232. package/dist/media-BBm8Wg3f.mjs.map +0 -1
  1233. package/dist/media-BHjus86Y.mjs +0 -464
  1234. package/dist/media-BHjus86Y.mjs.map +0 -1
  1235. package/dist/media-allowlist-CoTBWoDp.mjs +0 -44
  1236. package/dist/media-allowlist-CoTBWoDp.mjs.map +0 -1
  1237. package/dist/media-folders-BGkATs8n.mjs +0 -210
  1238. package/dist/media-folders-BGkATs8n.mjs.map +0 -1
  1239. package/dist/media-upload-BCidR-EY.mjs +0 -147
  1240. package/dist/media-upload-BCidR-EY.mjs.map +0 -1
  1241. package/dist/media-url-DHoPr0hq.mjs +0 -26
  1242. package/dist/media-url-DHoPr0hq.mjs.map +0 -1
  1243. package/dist/media-usage-CdY5jhSR.mjs +0 -1833
  1244. package/dist/media-usage-CdY5jhSR.mjs.map +0 -1
  1245. package/dist/media-usage-activation-BgeMtK5C.mjs +0 -78
  1246. package/dist/media-usage-activation-BgeMtK5C.mjs.map +0 -1
  1247. package/dist/media-usage-work-CnGCdHxx.mjs +0 -152
  1248. package/dist/media-usage-work-CnGCdHxx.mjs.map +0 -1
  1249. package/dist/media-usage-work-D6D9sMCA.mjs +0 -586
  1250. package/dist/media-usage-work-D6D9sMCA.mjs.map +0 -1
  1251. package/dist/media-usage-write-fence-hjeD4u7s.mjs +0 -42
  1252. package/dist/media-usage-write-fence-hjeD4u7s.mjs.map +0 -1
  1253. package/dist/menus-6qSwTNxG.mjs +0 -4010
  1254. package/dist/menus-6qSwTNxG.mjs.map +0 -1
  1255. package/dist/menus-uvPLXMZf.mjs +0 -744
  1256. package/dist/menus-uvPLXMZf.mjs.map +0 -1
  1257. package/dist/mime-CUIG6x84.mjs +0 -36
  1258. package/dist/mime-CUIG6x84.mjs.map +0 -1
  1259. package/dist/mode-DN_WneRx.mjs +0 -23
  1260. package/dist/mode-DN_WneRx.mjs.map +0 -1
  1261. package/dist/node-sqlite-compat-BuJXIeMz.mjs +0 -46
  1262. package/dist/node-sqlite-compat-BuJXIeMz.mjs.map +0 -1
  1263. package/dist/normalize-C2xNjTSG.mjs +0 -191
  1264. package/dist/normalize-C2xNjTSG.mjs.map +0 -1
  1265. package/dist/oauth-authorization-Dj6Kwc21.mjs +0 -274
  1266. package/dist/oauth-authorization-Dj6Kwc21.mjs.map +0 -1
  1267. package/dist/oauth-clients-FD7I0J8m.mjs +0 -266
  1268. package/dist/oauth-clients-FD7I0J8m.mjs.map +0 -1
  1269. package/dist/oauth-state-store-DkmDOmHs.mjs +0 -50
  1270. package/dist/oauth-state-store-DkmDOmHs.mjs.map +0 -1
  1271. package/dist/oauth-user-lookup-CvIwGpYd.mjs +0 -26
  1272. package/dist/oauth-user-lookup-CvIwGpYd.mjs.map +0 -1
  1273. package/dist/object-cache-DVKnyOfy.mjs +0 -534
  1274. package/dist/object-cache-DVKnyOfy.mjs.map +0 -1
  1275. package/dist/options-BHPeIbBd.mjs +0 -117
  1276. package/dist/options-BHPeIbBd.mjs.map +0 -1
  1277. package/dist/options-CYb4y7hM.d.mts +0 -221
  1278. package/dist/options-CYb4y7hM.d.mts.map +0 -1
  1279. package/dist/parse-Ckpg-Qfp.mjs +0 -81
  1280. package/dist/parse-Ckpg-Qfp.mjs.map +0 -1
  1281. package/dist/passkey-config-O_lj3y0k.mjs +0 -46
  1282. package/dist/passkey-config-O_lj3y0k.mjs.map +0 -1
  1283. package/dist/patterns-D9iDO3j8.mjs +0 -145
  1284. package/dist/patterns-D9iDO3j8.mjs.map +0 -1
  1285. package/dist/placeholder-4X9BrRrp.d.mts +0 -306
  1286. package/dist/placeholder-4X9BrRrp.d.mts.map +0 -1
  1287. package/dist/policy-Dhtwntrt.mjs +0 -45
  1288. package/dist/policy-Dhtwntrt.mjs.map +0 -1
  1289. package/dist/portable-text-U85hOafW.mjs +0 -286
  1290. package/dist/portable-text-U85hOafW.mjs.map +0 -1
  1291. package/dist/preview-B_vJLvf8.mjs +0 -107
  1292. package/dist/preview-B_vJLvf8.mjs.map +0 -1
  1293. package/dist/protocol-JdD2YhY9.d.mts +0 -52
  1294. package/dist/protocol-JdD2YhY9.d.mts.map +0 -1
  1295. package/dist/public-url-CarhZJgf.mjs +0 -101
  1296. package/dist/public-url-CarhZJgf.mjs.map +0 -1
  1297. package/dist/query-BZKZcG5b.mjs +0 -881
  1298. package/dist/query-BZKZcG5b.mjs.map +0 -1
  1299. package/dist/query-BndaFxxp.mjs +0 -41
  1300. package/dist/query-BndaFxxp.mjs.map +0 -1
  1301. package/dist/rate-limit-BZmATC6W.mjs +0 -120
  1302. package/dist/rate-limit-BZmATC6W.mjs.map +0 -1
  1303. package/dist/redirect-CZkbozu9.mjs +0 -313
  1304. package/dist/redirect-CZkbozu9.mjs.map +0 -1
  1305. package/dist/redirect-CzqnLxK-.mjs +0 -17
  1306. package/dist/redirect-CzqnLxK-.mjs.map +0 -1
  1307. package/dist/redirects-BLNOWQTn.mjs +0 -1238
  1308. package/dist/redirects-BLNOWQTn.mjs.map +0 -1
  1309. package/dist/redirects-CqzNM0KM.mjs +0 -579
  1310. package/dist/redirects-CqzNM0KM.mjs.map +0 -1
  1311. package/dist/registry-AZAsRsor.mjs +0 -1179
  1312. package/dist/registry-AZAsRsor.mjs.map +0 -1
  1313. package/dist/relation-04DfKRTO.mjs +0 -334
  1314. package/dist/relation-04DfKRTO.mjs.map +0 -1
  1315. package/dist/relations-C4htk5sb.mjs +0 -309
  1316. package/dist/relations-C4htk5sb.mjs.map +0 -1
  1317. package/dist/relations-CcFwDJdJ.mjs +0 -403
  1318. package/dist/relations-CcFwDJdJ.mjs.map +0 -1
  1319. package/dist/relations-DnRK4YIT.d.mts +0 -3354
  1320. package/dist/relations-DnRK4YIT.d.mts.map +0 -1
  1321. package/dist/request-cache-DH9zdCOD.mjs +0 -104
  1322. package/dist/request-cache-DH9zdCOD.mjs.map +0 -1
  1323. package/dist/request-meta-DYxLlnmz.mjs +0 -140
  1324. package/dist/request-meta-DYxLlnmz.mjs.map +0 -1
  1325. package/dist/resolve-prZ3mP7l.mjs +0 -143
  1326. package/dist/resolve-prZ3mP7l.mjs.map +0 -1
  1327. package/dist/runner-BLIDKpmA.mjs +0 -4676
  1328. package/dist/runner-BLIDKpmA.mjs.map +0 -1
  1329. package/dist/runner-YKfIMnaF.d.mts +0 -67
  1330. package/dist/runner-YKfIMnaF.d.mts.map +0 -1
  1331. package/dist/schema-CGnBeLiW.mjs +0 -9
  1332. package/dist/schema-CGnBeLiW.mjs.map +0 -1
  1333. package/dist/schema-DYr-Vd-L.mjs +0 -420
  1334. package/dist/schema-DYr-Vd-L.mjs.map +0 -1
  1335. package/dist/scopes-BhWvBavj.mjs +0 -27
  1336. package/dist/scopes-BhWvBavj.mjs.map +0 -1
  1337. package/dist/search-C-qDk4kx.mjs +0 -439
  1338. package/dist/search-C-qDk4kx.mjs.map +0 -1
  1339. package/dist/secrets-rEtHt-6z.mjs +0 -330
  1340. package/dist/secrets-rEtHt-6z.mjs.map +0 -1
  1341. package/dist/sections-B_nYvlwn.mjs +0 -346
  1342. package/dist/sections-B_nYvlwn.mjs.map +0 -1
  1343. package/dist/seo-926NRIgt.mjs +0 -133
  1344. package/dist/seo-926NRIgt.mjs.map +0 -1
  1345. package/dist/seo-CVWkdv6x.mjs +0 -113
  1346. package/dist/seo-CVWkdv6x.mjs.map +0 -1
  1347. package/dist/service-CJl3ZAYs.mjs +0 -195
  1348. package/dist/service-CJl3ZAYs.mjs.map +0 -1
  1349. package/dist/session-user-BlMgqCHS.mjs +0 -51
  1350. package/dist/session-user-BlMgqCHS.mjs.map +0 -1
  1351. package/dist/settings--wobrkkC.mjs +0 -258
  1352. package/dist/settings--wobrkkC.mjs.map +0 -1
  1353. package/dist/settings-Cwm6o2jY.mjs +0 -51
  1354. package/dist/settings-Cwm6o2jY.mjs.map +0 -1
  1355. package/dist/setup-complete-DQbClIN2.mjs +0 -26
  1356. package/dist/setup-complete-DQbClIN2.mjs.map +0 -1
  1357. package/dist/setup-nonce-DZCFS2sn.mjs +0 -25
  1358. package/dist/setup-nonce-DZCFS2sn.mjs.map +0 -1
  1359. package/dist/single-flight-cache-BPuGPdcN.mjs +0 -104
  1360. package/dist/single-flight-cache-BPuGPdcN.mjs.map +0 -1
  1361. package/dist/site-url-BrxA_E9H.mjs +0 -16
  1362. package/dist/site-url-BrxA_E9H.mjs.map +0 -1
  1363. package/dist/slugify-B994zkXC.mjs +0 -17
  1364. package/dist/slugify-B994zkXC.mjs.map +0 -1
  1365. package/dist/snapshot--OCDTqdb.mjs +0 -216
  1366. package/dist/snapshot--OCDTqdb.mjs.map +0 -1
  1367. package/dist/ssrf-5sIM5jzl.mjs +0 -349
  1368. package/dist/ssrf-5sIM5jzl.mjs.map +0 -1
  1369. package/dist/state-BpFVsJZB.mjs +0 -136
  1370. package/dist/state-BpFVsJZB.mjs.map +0 -1
  1371. package/dist/status-B777-dXz.mjs +0 -30
  1372. package/dist/status-B777-dXz.mjs.map +0 -1
  1373. package/dist/target-BmR0iTwz.mjs +0 -27
  1374. package/dist/target-BmR0iTwz.mjs.map +0 -1
  1375. package/dist/taxonomies-DkAkMupr.mjs +0 -837
  1376. package/dist/taxonomies-DkAkMupr.mjs.map +0 -1
  1377. package/dist/taxonomies-Wfy_Lg12.mjs +0 -698
  1378. package/dist/taxonomies-Wfy_Lg12.mjs.map +0 -1
  1379. package/dist/taxonomy-tJepplLL.mjs +0 -484
  1380. package/dist/taxonomy-tJepplLL.mjs.map +0 -1
  1381. package/dist/tokens-BCO1oruF.mjs +0 -171
  1382. package/dist/tokens-BCO1oruF.mjs.map +0 -1
  1383. package/dist/transaction-0KOpOyMu.mjs +0 -29
  1384. package/dist/transaction-0KOpOyMu.mjs.map +0 -1
  1385. package/dist/transport-Dr3qtwXC.mjs +0 -136
  1386. package/dist/transport-Dr3qtwXC.mjs.map +0 -1
  1387. package/dist/transport-xh6YKW2G.d.mts +0 -42
  1388. package/dist/transport-xh6YKW2G.d.mts.map +0 -1
  1389. package/dist/trusted-proxy-BR5F1Otp.mjs +0 -51
  1390. package/dist/trusted-proxy-BR5F1Otp.mjs.map +0 -1
  1391. package/dist/types-3qNFPlci.mjs +0 -16
  1392. package/dist/types-3qNFPlci.mjs.map +0 -1
  1393. package/dist/types-75KIqzL9.mjs +0 -142
  1394. package/dist/types-75KIqzL9.mjs.map +0 -1
  1395. package/dist/types-B6GrPic4.d.mts +0 -1335
  1396. package/dist/types-B6GrPic4.d.mts.map +0 -1
  1397. package/dist/types-BuHW4xDE.d.mts +0 -259
  1398. package/dist/types-BuHW4xDE.d.mts.map +0 -1
  1399. package/dist/types-C00oyCZp.d.mts +0 -198
  1400. package/dist/types-C00oyCZp.d.mts.map +0 -1
  1401. package/dist/types-CDtkNSFQ.d.mts +0 -75
  1402. package/dist/types-CDtkNSFQ.d.mts.map +0 -1
  1403. package/dist/types-CPeXo1wF.d.mts +0 -124
  1404. package/dist/types-CPeXo1wF.d.mts.map +0 -1
  1405. package/dist/types-CQPWhPxE.mjs +0 -92
  1406. package/dist/types-CQPWhPxE.mjs.map +0 -1
  1407. package/dist/types-CXFkwEGC.d.mts +0 -198
  1408. package/dist/types-CXFkwEGC.d.mts.map +0 -1
  1409. package/dist/types-DM3vioBY.mjs +0 -18
  1410. package/dist/types-DM3vioBY.mjs.map +0 -1
  1411. package/dist/types-DczELMop.d.mts +0 -363
  1412. package/dist/types-DczELMop.d.mts.map +0 -1
  1413. package/dist/types-DfuTR6dL.mjs +0 -3
  1414. package/dist/types-FV23hEoW.d.mts +0 -743
  1415. package/dist/types-FV23hEoW.d.mts.map +0 -1
  1416. package/dist/types-xDMtUFnO.d.mts +0 -257
  1417. package/dist/types-xDMtUFnO.d.mts.map +0 -1
  1418. package/dist/upload-attempts-BsqoQ1fn.mjs +0 -27
  1419. package/dist/upload-attempts-BsqoQ1fn.mjs.map +0 -1
  1420. package/dist/url-pattern-D4c2czpJ.mjs +0 -33
  1421. package/dist/url-pattern-D4c2czpJ.mjs.map +0 -1
  1422. package/dist/user-BTZ40aq6.mjs +0 -171
  1423. package/dist/user-BTZ40aq6.mjs.map +0 -1
  1424. package/dist/utils-BKvNjjhY.mjs +0 -435
  1425. package/dist/utils-BKvNjjhY.mjs.map +0 -1
  1426. package/dist/validate-BpwoDOgt.mjs +0 -120
  1427. package/dist/validate-BpwoDOgt.mjs.map +0 -1
  1428. package/dist/validate-DE_LRwo9.mjs +0 -379
  1429. package/dist/validate-DE_LRwo9.mjs.map +0 -1
  1430. package/dist/validate-DUP27OYD.d.mts +0 -400
  1431. package/dist/validate-DUP27OYD.d.mts.map +0 -1
  1432. package/dist/validation-BMImFJ11.mjs +0 -153
  1433. package/dist/validation-BMImFJ11.mjs.map +0 -1
  1434. package/dist/version-Bii3suaO.mjs +0 -7
  1435. package/dist/version-Bii3suaO.mjs.map +0 -1
  1436. package/dist/widgets-D3gJ10xU.mjs +0 -122
  1437. package/dist/widgets-D3gJ10xU.mjs.map +0 -1
  1438. package/dist/wxr-taxonomies-B2Og_6rU.d.mts +0 -34
  1439. package/dist/wxr-taxonomies-B2Og_6rU.d.mts.map +0 -1
  1440. package/dist/wxr-taxonomies-Cxngsjwo.mjs +0 -406
  1441. package/dist/wxr-taxonomies-Cxngsjwo.mjs.map +0 -1
  1442. package/dist/zod-generator-BuYSQJB7.mjs +0 -331
  1443. package/dist/zod-generator-BuYSQJB7.mjs.map +0 -1
  1444. /package/dist/{api-tokens-BfYts-sq.mjs → api-tokens-DS1VzN7_.mjs} +0 -0
  1445. /package/dist/{ssrf-Dg3cIT-b.mjs → ssrf-BRpTDMV6.mjs} +0 -0
@@ -1,14 +1,16 @@
1
- import "../../../config-C3EBstHi.mjs";
2
- import { i as encodeBase64, t as decodeBase64 } from "../../../base64-CvLhUKQv.mjs";
3
- import { i as InvalidCursorError, o as decodeCursor } from "../../../types-CQPWhPxE.mjs";
4
- import { t as apiError } from "../../../error-DFrQjppn.mjs";
5
- import { t as CONTENT_TYPE_RE } from "../../../media-BHjus86Y.mjs";
6
- import { Cn as contentBylineInputSchema, Gt as updateFieldBody, Pt as createCollectionBody, V as createTaxonomyDefBody, Wt as updateCollectionBody, an as contentSeoInput, hn as bylineCreateBody, nt as updateTaxonomyDefBody, xn as bylineUpdateBody } from "../../../redirects-BLNOWQTn.mjs";
7
- import "../../../relations-C4htk5sb.mjs";
8
- import "../../../status-B777-dXz.mjs";
1
+ import "../../../config-CGVeT8Hc.mjs";
2
+ import { i as encodeBase64, t as decodeBase64 } from "../../../base64-DvnNgP7e.mjs";
3
+ import { i as InvalidCursorError, o as decodeCursor } from "../../../types-BkUg2yHx.mjs";
4
+ import { n as siteSettingsTag, r as taxonomyTag, t as menuTag } from "../../../chrome-tags-D7LGB91U.mjs";
5
+ import { t as apiError } from "../../../error-CCTCskie.mjs";
6
+ import "../../../redirects-BCiTaIQ-.mjs";
7
+ import { Dt as updateCollectionBody, F as createTaxonomyDefBody, Ot as updateFieldBody, X as updateTaxonomyDefBody, _r as bylineUpdateBody, _t as createCollectionBody, dr as bylineCreateBody, kt as CONTENT_TYPE_RE, tr as contentSeoInput, yr as contentBylineInputSchema } from "../../../entry-lock-D3C99MXS.mjs";
8
+ import "../../../comments-BVzzt6x5.mjs";
9
+ import "../../../relations-B4w-G5U9.mjs";
10
+ import "../../../status-DLoBmcDz.mjs";
9
11
  import "../../../api/schemas/index.mjs";
10
- import { i as hasScope$1 } from "../../../api-tokens-BfYts-sq.mjs";
11
- import { n as convertDataForWrite, t as convertDataForRead } from "../../../portable-text-U85hOafW.mjs";
12
+ import { i as hasScope$1 } from "../../../api-tokens-DS1VzN7_.mjs";
13
+ import { n as convertDataForWrite, t as convertDataForRead } from "../../../portable-text-oAwodbPS.mjs";
12
14
  import { z } from "zod";
13
15
  import { Permissions, Role, canActOnOwn, hasPermission } from "@emdash-cms/auth";
14
16
  import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
@@ -82,10 +84,12 @@ const schemaUpdateCollectionToolSchema = z.object({
82
84
  urlPattern: updateCollectionBody.shape.urlPattern.describe("New public URL pattern; pass null to clear it"),
83
85
  routable: updateCollectionBody.shape.routable.describe("Whether entries require a slug before they can be published"),
84
86
  hasSeo: updateCollectionBody.shape.hasSeo.describe("Whether the collection supports SEO metadata"),
87
+ group: updateCollectionBody.shape.group.describe("Admin sidebar folder shared with other collections of the same group; pass null to move the collection back inline"),
85
88
  commentsEnabled: updateCollectionBody.shape.commentsEnabled.describe("Whether comments are enabled for this collection"),
86
89
  commentsModeration: updateCollectionBody.shape.commentsModeration.describe("Comment moderation policy"),
87
90
  commentsClosedAfterDays: updateCollectionBody.shape.commentsClosedAfterDays.describe("Close comments after this many days; 0 keeps them open"),
88
91
  commentsAutoApproveUsers: updateCollectionBody.shape.commentsAutoApproveUsers.describe("Whether comments from authenticated users are automatically approved"),
92
+ editLocking: updateCollectionBody.shape.editLocking.describe("Whether opening an entry takes an edit lock that refuses other editors' writes"),
89
93
  titleField: updateCollectionBody.shape.titleField.describe("Field slug to use as the Title column in admin lists; pass null to fall back to the default"),
90
94
  dateField: updateCollectionBody.shape.dateField.describe("Datetime field slug to use as the Date column in admin lists; pass null to fall back to the default")
91
95
  });
@@ -252,9 +256,21 @@ function getExtra(extra) {
252
256
  function getEmDash(extra) {
253
257
  return getExtra(extra).emdash;
254
258
  }
259
+ /**
260
+ * Unwrap a write result, first invalidating `tags` in the route cache when the
261
+ * write succeeded. Pass `changedEarlier` when an earlier step of the same tool
262
+ * already changed live content, so a failure in a later step still invalidates.
263
+ */
264
+ async function unwrapAndInvalidate(extra, result, tags, changedEarlier = false) {
265
+ if (result.success || changedEarlier) {
266
+ const { cache } = getExtra(extra);
267
+ if (cache?.enabled) await cache.invalidate({ tags });
268
+ }
269
+ return unwrap(result);
270
+ }
255
271
  async function getCollectionFields(ec, collection) {
256
272
  try {
257
- const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
273
+ const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
258
274
  const col = await new SchemaRegistry(ec.db).getCollectionWithFields(collection);
259
275
  return col ? col.fields : null;
260
276
  } catch {
@@ -283,7 +299,7 @@ async function applyReadMarkdown(ec, collection, items) {
283
299
  for (const item of items) if (item.data && typeof item.data === "object") item.data = convertDataForRead(item.data, fields, false);
284
300
  }
285
301
  async function invalidateBylines() {
286
- const { invalidateBylineCache } = await import("../../../bylines-CJ5nd6Lw.mjs").then((n) => n.t);
302
+ const { invalidateBylineCache } = await import("../../../bylines-kpBzHPr8.mjs").then((n) => n.t);
287
303
  invalidateBylineCache();
288
304
  }
289
305
  /**
@@ -385,7 +401,7 @@ function createMcpServer(pluginTools = [], request) {
385
401
  return originalRegisterTool(name, config, wrapped);
386
402
  });
387
403
  for (const tool of pluginTools) {
388
- if (!(tool.permission in Permissions)) continue;
404
+ if (!Object.hasOwn(Permissions, tool.permission)) continue;
389
405
  server.registerTool(`${tool.pluginId}__${tool.name}`, {
390
406
  description: tool.description,
391
407
  inputSchema: tool.inputSchema,
@@ -403,7 +419,8 @@ function createMcpServer(pluginTools = [], request) {
403
419
  throw new EmDashAuthError(`Insufficient permission: requires ${tool.permission}`, "INSUFFICIENT_PERMISSIONS");
404
420
  }
405
421
  if (!request) return respondError("INTERNAL_ERROR", "Missing MCP request context");
406
- const result = await payload.emdash.handlePluginMcpTool(tool.pluginId, tool.name, tool.route, input, payload.userId, request, payload.user);
422
+ const routeCache = payload.cache;
423
+ const result = await payload.emdash.handlePluginMcpTool(tool.pluginId, tool.name, tool.route, input, payload.userId, request, payload.user, routeCache?.enabled ? (tags) => routeCache.invalidate({ tags }) : void 0);
407
424
  if (!result.success) return unwrap(result);
408
425
  if (tool.outputSchema) {
409
426
  if (!result.data || typeof result.data !== "object" || Array.isArray(result.data)) return respondError("INVALID_PLUGIN_OUTPUT", "Plugin tool output must be an object when outputSchema is declared");
@@ -499,7 +516,11 @@ function createMcpServer(pluginTools = [], request) {
499
516
  }, async (args, extra) => {
500
517
  requireScope(extra, "content:write");
501
518
  requireRole(extra, Role.CONTRIBUTOR);
502
- const { emdash, userId } = getExtra(extra);
519
+ const { emdash, userId, userRole } = getExtra(extra);
520
+ const actor = {
521
+ id: userId,
522
+ role: userRole
523
+ };
503
524
  if (args.translationOf) {
504
525
  const source = await emdash.handleContentGet(args.collection, args.translationOf);
505
526
  if (!source.success) return unwrap(source);
@@ -509,7 +530,7 @@ function createMcpServer(pluginTools = [], request) {
509
530
  if (args.status === "published") {
510
531
  if (!hasPermission({
511
532
  id: userId,
512
- role: getExtra(extra).userRole
533
+ role: userRole
513
534
  }, "content:publish_own")) throw new EmDashAuthError("Insufficient permissions: publishing requires content:publish_own", "INSUFFICIENT_PERMISSIONS");
514
535
  const result = await emdash.handleContentCreate(args.collection, {
515
536
  data,
@@ -518,22 +539,30 @@ function createMcpServer(pluginTools = [], request) {
518
539
  locale: args.locale,
519
540
  translationOf: args.translationOf,
520
541
  bylines: args.bylines,
521
- taxonomies: args.taxonomies
542
+ taxonomies: args.taxonomies,
543
+ actor
522
544
  });
523
545
  if (!result.success) return unwrap(result);
524
546
  const itemId = extractContentId(result.data);
525
- if (itemId) return unwrap(await emdash.handleContentPublish(args.collection, itemId));
526
- return unwrap(result);
547
+ if (itemId) return unwrapAndInvalidate(extra, await emdash.handleContentPublish(args.collection, itemId, {
548
+ actor: {
549
+ ...actor,
550
+ source: "mcp"
551
+ },
552
+ origin: { source: "mcp" }
553
+ }), [args.collection, itemId], true);
554
+ return unwrapAndInvalidate(extra, result, [args.collection]);
527
555
  }
528
- return unwrap(await emdash.handleContentCreate(args.collection, {
556
+ return unwrapAndInvalidate(extra, await emdash.handleContentCreate(args.collection, {
529
557
  data,
530
558
  slug: args.slug,
531
559
  authorId: userId,
532
560
  locale: args.locale,
533
561
  translationOf: args.translationOf,
534
562
  bylines: args.bylines,
535
- taxonomies: args.taxonomies
536
- }));
563
+ taxonomies: args.taxonomies,
564
+ actor
565
+ }), [args.collection]);
537
566
  });
538
567
  server.registerTool("content_update", {
539
568
  title: "Update Content",
@@ -555,6 +584,10 @@ function createMcpServer(pluginTools = [], request) {
555
584
  requireScope(extra, "content:write");
556
585
  requireRole(extra, Role.AUTHOR);
557
586
  const { emdash, userId, userRole } = getExtra(extra);
587
+ const actor = {
588
+ id: userId,
589
+ role: userRole
590
+ };
558
591
  const existing = await emdash.handleContentGet(args.collection, args.id, args.locale);
559
592
  if (!existing.success) return unwrap(existing);
560
593
  const ownerId = extractContentAuthorId(existing.data);
@@ -570,11 +603,12 @@ function createMcpServer(pluginTools = [], request) {
570
603
  if (args.status === "published") {
571
604
  requireOwnership(extra, ownerId, "content:publish_own", "content:publish_any");
572
605
  let rev = args._rev;
606
+ let liveChanged = false;
573
607
  if (args.data || args.slug || args.seo !== void 0 || args.bylines !== void 0 || args.taxonomies !== void 0 || args.publishedAt !== void 0) {
574
608
  const updateResult = await emdash.handleContentUpdate(args.collection, resolvedId, {
575
609
  data,
576
610
  slug: args.slug,
577
- authorId: userId,
611
+ actor,
578
612
  locale: args.locale,
579
613
  seo: args.seo,
580
614
  bylines: args.bylines,
@@ -583,18 +617,27 @@ function createMcpServer(pluginTools = [], request) {
583
617
  _rev: args._rev
584
618
  });
585
619
  if (!updateResult.success) return unwrap(updateResult);
620
+ liveChanged = updateResult.liveContentChanged !== false;
586
621
  rev = extractContentRev(updateResult.data);
587
622
  }
588
- return unwrap(await emdash.handleContentPublish(args.collection, resolvedId, { _rev: rev }));
623
+ return unwrapAndInvalidate(extra, await emdash.handleContentPublish(args.collection, resolvedId, {
624
+ _rev: rev,
625
+ actor: {
626
+ ...actor,
627
+ source: "mcp"
628
+ },
629
+ origin: { source: "mcp" }
630
+ }), [args.collection, resolvedId], liveChanged);
589
631
  }
590
632
  if (args.status === "draft") {
591
633
  requireOwnership(extra, ownerId, "content:publish_own", "content:publish_any");
592
634
  let rev = args._rev;
635
+ let liveChanged = false;
593
636
  if (args.data || args.slug || args.seo !== void 0 || args.bylines !== void 0 || args.taxonomies !== void 0 || args.publishedAt !== void 0) {
594
637
  const updateResult = await emdash.handleContentUpdate(args.collection, resolvedId, {
595
638
  data,
596
639
  slug: args.slug,
597
- authorId: userId,
640
+ actor,
598
641
  locale: args.locale,
599
642
  seo: args.seo,
600
643
  bylines: args.bylines,
@@ -603,21 +646,31 @@ function createMcpServer(pluginTools = [], request) {
603
646
  _rev: args._rev
604
647
  });
605
648
  if (!updateResult.success) return unwrap(updateResult);
649
+ liveChanged = updateResult.liveContentChanged !== false;
606
650
  rev = extractContentRev(updateResult.data);
607
651
  }
608
- return unwrap(await emdash.handleContentUnpublish(args.collection, resolvedId, { _rev: rev }));
652
+ return unwrapAndInvalidate(extra, await emdash.handleContentUnpublish(args.collection, resolvedId, {
653
+ _rev: rev,
654
+ actor: {
655
+ ...actor,
656
+ source: "mcp"
657
+ },
658
+ origin: { source: "mcp" }
659
+ }), [args.collection, resolvedId], liveChanged);
609
660
  }
610
- return unwrap(await emdash.handleContentUpdate(args.collection, resolvedId, {
661
+ const result = await emdash.handleContentUpdate(args.collection, resolvedId, {
611
662
  data,
612
663
  slug: args.slug,
613
- authorId: userId,
664
+ actor,
614
665
  locale: args.locale,
615
666
  seo: args.seo,
616
667
  bylines: args.bylines,
617
668
  taxonomies: args.taxonomies,
618
669
  publishedAt: args.publishedAt,
619
670
  _rev: args._rev
620
- }));
671
+ });
672
+ if (result.liveContentChanged === false) return unwrap(result);
673
+ return unwrapAndInvalidate(extra, result, [args.collection, resolvedId]);
621
674
  });
622
675
  server.registerTool("content_delete", {
623
676
  title: "Delete Content (Trash)",
@@ -635,11 +688,11 @@ function createMcpServer(pluginTools = [], request) {
635
688
  if (!existing.success) return unwrap(existing);
636
689
  requireOwnership(extra, extractContentAuthorId(existing.data), "content:delete_own", "content:delete_any");
637
690
  const resolvedId = extractContentId(existing.data) ?? args.id;
638
- return unwrap(await ec.handleContentDelete(args.collection, resolvedId));
691
+ return unwrapAndInvalidate(extra, await ec.handleContentDelete(args.collection, resolvedId), [args.collection, resolvedId]);
639
692
  });
640
693
  server.registerTool("content_restore", {
641
694
  title: "Restore Content",
642
- description: "Restore a soft-deleted content item from the trash back to its previous state.",
695
+ description: "Restore a soft-deleted content item from the trash. It comes back as a draft with no schedule, even if it was published or scheduled before it was trashed.",
643
696
  inputSchema: z.object({
644
697
  collection: z.string().describe("Collection slug"),
645
698
  id: z.string().describe("Content item ID or slug")
@@ -652,7 +705,7 @@ function createMcpServer(pluginTools = [], request) {
652
705
  if (!existing.success) return unwrap(existing);
653
706
  requireOwnership(extra, extractContentAuthorId(existing.data), "content:edit_own", "content:edit_any");
654
707
  const resolvedId = extractContentId(existing.data) ?? args.id;
655
- return unwrap(await ec.handleContentRestore(args.collection, resolvedId));
708
+ return unwrapAndInvalidate(extra, await ec.handleContentRestore(args.collection, resolvedId), [args.collection, resolvedId]);
656
709
  });
657
710
  server.registerTool("content_permanent_delete", {
658
711
  title: "Permanently Delete Content",
@@ -665,7 +718,7 @@ function createMcpServer(pluginTools = [], request) {
665
718
  }, async (args, extra) => {
666
719
  requireScope(extra, "content:write");
667
720
  requireRole(extra, Role.ADMIN);
668
- return unwrap(await getEmDash(extra).handleContentPermanentDelete(args.collection, args.id));
721
+ return unwrapAndInvalidate(extra, await getEmDash(extra).handleContentPermanentDelete(args.collection, args.id), [args.collection, args.id]);
669
722
  });
670
723
  server.registerTool("content_publish", {
671
724
  title: "Publish Content",
@@ -690,14 +743,20 @@ function createMcpServer(pluginTools = [], request) {
690
743
  }, "content:publish_any")) throw new EmDashAuthError("Setting publishedAt requires content:publish_any permission", "INSUFFICIENT_PERMISSIONS");
691
744
  }
692
745
  const resolvedId = extractContentId(existing.data) ?? args.id;
693
- return unwrap(await emdash.handleContentPublish(args.collection, resolvedId, {
746
+ return unwrapAndInvalidate(extra, await emdash.handleContentPublish(args.collection, resolvedId, {
694
747
  publishedAt: args.publishedAt,
695
- _rev: args._rev
696
- }));
748
+ _rev: args._rev,
749
+ actor: {
750
+ id: userId,
751
+ role: userRole,
752
+ source: "mcp"
753
+ },
754
+ origin: { source: "mcp" }
755
+ }), [args.collection, resolvedId]);
697
756
  });
698
757
  server.registerTool("content_unpublish", {
699
758
  title: "Unpublish Content",
700
- description: "Unpublish a content item, reverting it to draft status. It will no longer be visible on the live site, but its content and publication date are preserved.",
759
+ description: "Unpublish a content item, reverting it to draft status. It will no longer be visible on the live site, but its content and publication date are preserved. Any pending schedule is cancelled.",
701
760
  inputSchema: z.object({
702
761
  collection: z.string().describe("Collection slug"),
703
762
  id: z.string().describe("Content item ID or slug"),
@@ -706,12 +765,20 @@ function createMcpServer(pluginTools = [], request) {
706
765
  }, async (args, extra) => {
707
766
  requireScope(extra, "content:write");
708
767
  requireRole(extra, Role.AUTHOR);
709
- const ec = getEmDash(extra);
768
+ const { emdash: ec, userId, userRole } = getExtra(extra);
710
769
  const existing = await ec.handleContentGet(args.collection, args.id);
711
770
  if (!existing.success) return unwrap(existing);
712
771
  requireOwnership(extra, extractContentAuthorId(existing.data), "content:publish_own", "content:publish_any");
713
772
  const resolvedId = extractContentId(existing.data) ?? args.id;
714
- return unwrap(await ec.handleContentUnpublish(args.collection, resolvedId, { _rev: args._rev }));
773
+ return unwrapAndInvalidate(extra, await ec.handleContentUnpublish(args.collection, resolvedId, {
774
+ _rev: args._rev,
775
+ actor: {
776
+ id: userId,
777
+ role: userRole,
778
+ source: "mcp"
779
+ },
780
+ origin: { source: "mcp" }
781
+ }), [args.collection, resolvedId]);
715
782
  });
716
783
  server.registerTool("content_schedule", {
717
784
  title: "Schedule Content",
@@ -719,21 +786,30 @@ function createMcpServer(pluginTools = [], request) {
719
786
  inputSchema: z.object({
720
787
  collection: z.string().describe("Collection slug"),
721
788
  id: z.string().describe("Content item ID or slug"),
722
- scheduledAt: z.string().describe("ISO 8601 datetime for publication (e.g. '2025-06-01T09:00:00Z')")
789
+ _rev: z.string({ error: REV_MISSING_ERROR }).describe(REV_PARAM_DESCRIPTION),
790
+ scheduledAt: contentDateTimeInputSchema.describe("ISO 8601 datetime for publication (e.g. '2025-06-01T09:00:00Z')")
723
791
  })
724
792
  }, async (args, extra) => {
725
793
  requireScope(extra, "content:write");
726
794
  requireRole(extra, Role.AUTHOR);
727
- const ec = getEmDash(extra);
795
+ const { emdash: ec, userId, userRole } = getExtra(extra);
728
796
  const existing = await ec.handleContentGet(args.collection, args.id);
729
797
  if (!existing.success) return unwrap(existing);
730
798
  requireOwnership(extra, extractContentAuthorId(existing.data), "content:publish_own", "content:publish_any");
731
799
  const resolvedId = extractContentId(existing.data) ?? args.id;
732
- return unwrap(await ec.handleContentSchedule(args.collection, resolvedId, args.scheduledAt));
800
+ return unwrapAndInvalidate(extra, await ec.handleContentSchedule(args.collection, resolvedId, args.scheduledAt, {
801
+ _rev: args._rev,
802
+ actor: {
803
+ id: userId,
804
+ role: userRole,
805
+ source: "mcp"
806
+ },
807
+ origin: { source: "mcp" }
808
+ }), [args.collection, resolvedId]);
733
809
  });
734
810
  server.registerTool("content_unschedule", {
735
811
  title: "Cancel Scheduled Publication",
736
- description: "Cancel a previously scheduled publication. The item remains in its current status (typically 'draft' or 'scheduled'); only the scheduledAt timestamp is cleared. Idempotent — calling on an item that isn't scheduled is a no-op.",
812
+ description: "Cancel a previously scheduled publication. Scheduled drafts return to draft status; published items stay published. The scheduledAt timestamp is cleared. Idempotent — calling on an item that isn't scheduled is a no-op.",
737
813
  inputSchema: z.object({
738
814
  collection: z.string().describe("Collection slug"),
739
815
  id: z.string().describe("Content item ID or slug")
@@ -746,7 +822,7 @@ function createMcpServer(pluginTools = [], request) {
746
822
  if (!existing.success) return unwrap(existing);
747
823
  requireOwnership(extra, extractContentAuthorId(existing.data), "content:publish_own", "content:publish_any");
748
824
  const resolvedId = extractContentId(existing.data) ?? args.id;
749
- return unwrap(await ec.handleContentUnschedule(args.collection, resolvedId));
825
+ return unwrapAndInvalidate(extra, await ec.handleContentUnschedule(args.collection, resolvedId), [args.collection, resolvedId]);
750
826
  });
751
827
  server.registerTool("content_compare", {
752
828
  title: "Compare Live vs Draft",
@@ -763,7 +839,7 @@ function createMcpServer(pluginTools = [], request) {
763
839
  });
764
840
  server.registerTool("content_discard_draft", {
765
841
  title: "Discard Draft",
766
- description: "Discard the current draft changes and revert to the last published version. Only works on items that have been published at least once.",
842
+ description: "Discard the current draft revision. Published content reverts to its live version; an item without a pending draft is unchanged.",
767
843
  inputSchema: z.object({
768
844
  collection: z.string().describe("Collection slug"),
769
845
  id: z.string().describe("Content item ID or slug"),
@@ -778,7 +854,7 @@ function createMcpServer(pluginTools = [], request) {
778
854
  if (!existing.success) return unwrap(existing);
779
855
  requireOwnership(extra, extractContentAuthorId(existing.data), "content:edit_own", "content:edit_any");
780
856
  const resolvedId = extractContentId(existing.data) ?? args.id;
781
- return unwrap(await ec.handleContentDiscardDraft(args.collection, resolvedId, { _rev: args._rev }));
857
+ return unwrapAndInvalidate(extra, await ec.handleContentDiscardDraft(args.collection, resolvedId, { _rev: args._rev }), [args.collection, resolvedId]);
782
858
  });
783
859
  server.registerTool("content_list_trashed", {
784
860
  title: "List Trashed Content",
@@ -807,7 +883,7 @@ function createMcpServer(pluginTools = [], request) {
807
883
  }, async (args, extra) => {
808
884
  requireScope(extra, "content:write");
809
885
  requireRole(extra, Role.CONTRIBUTOR);
810
- return unwrap(await getEmDash(extra).handleContentDuplicate(args.collection, args.id));
886
+ return unwrapAndInvalidate(extra, await getEmDash(extra).handleContentDuplicate(args.collection, args.id), [args.collection]);
811
887
  });
812
888
  server.registerTool("content_translations", {
813
889
  title: "Get Content Translations",
@@ -849,7 +925,7 @@ function createMcpServer(pluginTools = [], request) {
849
925
  requireScope(extra, "content:read");
850
926
  const ec = getEmDash(extra);
851
927
  try {
852
- const { BylineRepository } = await import("../../../byline-DuhF7NWl.mjs").then((n) => n.n);
928
+ const { BylineRepository } = await import("../../../byline-Doh-wt99.mjs").then((n) => n.n);
853
929
  return jsonResult(await new BylineRepository(ec.db).findMany({
854
930
  search: args.search,
855
931
  isGuest: args.isGuest,
@@ -871,7 +947,7 @@ function createMcpServer(pluginTools = [], request) {
871
947
  requireScope(extra, "content:read");
872
948
  const ec = getEmDash(extra);
873
949
  try {
874
- const { BylineRepository } = await import("../../../byline-DuhF7NWl.mjs").then((n) => n.n);
950
+ const { BylineRepository } = await import("../../../byline-Doh-wt99.mjs").then((n) => n.n);
875
951
  const byline = await new BylineRepository(ec.db).findById(args.id);
876
952
  if (!byline) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
877
953
  return jsonResult(byline);
@@ -889,7 +965,7 @@ function createMcpServer(pluginTools = [], request) {
889
965
  requireRole(extra, Role.EDITOR);
890
966
  const ec = getEmDash(extra);
891
967
  try {
892
- const { handleBylineCreate } = await import("../../../bylines-RwBAeOF1.mjs").then((n) => n.t);
968
+ const { handleBylineCreate } = await import("../../../bylines-Cop0hkoy.mjs").then((n) => n.t);
893
969
  const result = await handleBylineCreate(ec.db, args);
894
970
  if (result.success) await invalidateBylines();
895
971
  return unwrap(result);
@@ -909,7 +985,7 @@ function createMcpServer(pluginTools = [], request) {
909
985
  requireRole(extra, Role.EDITOR);
910
986
  const ec = getEmDash(extra);
911
987
  try {
912
- const { handleBylineUpdate } = await import("../../../bylines-RwBAeOF1.mjs").then((n) => n.t);
988
+ const { handleBylineUpdate } = await import("../../../bylines-Cop0hkoy.mjs").then((n) => n.t);
913
989
  const { id, ...input } = args;
914
990
  const result = await handleBylineUpdate(ec.db, id, input);
915
991
  if (result.success) await invalidateBylines();
@@ -928,7 +1004,7 @@ function createMcpServer(pluginTools = [], request) {
928
1004
  requireRole(extra, Role.EDITOR);
929
1005
  const ec = getEmDash(extra);
930
1006
  try {
931
- const { BylineRepository } = await import("../../../byline-DuhF7NWl.mjs").then((n) => n.n);
1007
+ const { BylineRepository } = await import("../../../byline-Doh-wt99.mjs").then((n) => n.n);
932
1008
  if (!await new BylineRepository(ec.db).delete(args.id)) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
933
1009
  await invalidateBylines();
934
1010
  return jsonResult({ deleted: args.id });
@@ -945,7 +1021,7 @@ function createMcpServer(pluginTools = [], request) {
945
1021
  requireScope(extra, "content:read");
946
1022
  const ec = getEmDash(extra);
947
1023
  try {
948
- const { handleBylineTranslations } = await import("../../../bylines-RwBAeOF1.mjs").then((n) => n.t);
1024
+ const { handleBylineTranslations } = await import("../../../bylines-Cop0hkoy.mjs").then((n) => n.t);
949
1025
  return unwrap(await handleBylineTranslations(ec.db, args.id));
950
1026
  } catch (error) {
951
1027
  return respondHandlerError(error, "BYLINE_TRANSLATIONS_ERROR");
@@ -961,7 +1037,7 @@ function createMcpServer(pluginTools = [], request) {
961
1037
  requireRole(extra, Role.EDITOR);
962
1038
  const ec = getEmDash(extra);
963
1039
  try {
964
- const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
1040
+ const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
965
1041
  return jsonResult({ items: await new SchemaRegistry(ec.db).listCollections() });
966
1042
  } catch (error) {
967
1043
  return respondHandlerError(error, "SCHEMA_LIST_ERROR");
@@ -977,7 +1053,7 @@ function createMcpServer(pluginTools = [], request) {
977
1053
  requireRole(extra, Role.EDITOR);
978
1054
  const ec = getEmDash(extra);
979
1055
  try {
980
- const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
1056
+ const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
981
1057
  const collection = await new SchemaRegistry(ec.db).getCollectionWithFields(args.slug);
982
1058
  if (!collection) return respondError("NOT_FOUND", `Collection '${args.slug}' not found`);
983
1059
  return jsonResult(collection);
@@ -995,14 +1071,16 @@ function createMcpServer(pluginTools = [], request) {
995
1071
  description: z.string().optional().describe("Description of this collection"),
996
1072
  icon: z.string().optional().describe("Icon name for the admin UI"),
997
1073
  supports: createCollectionBody.shape.supports.describe("Features to enable (default: ['drafts', 'revisions'])"),
998
- routable: createCollectionBody.shape.routable.describe("Require a slug before publishing (default: true)")
1074
+ routable: createCollectionBody.shape.routable.describe("Require a slug before publishing (default: true)"),
1075
+ editLocking: createCollectionBody.shape.editLocking.describe("Take an edit lock when an entry is opened (default: true)"),
1076
+ group: createCollectionBody.shape.group.describe("Admin sidebar folder shared with other collections of the same group")
999
1077
  })
1000
1078
  }, async (args, extra) => {
1001
1079
  requireScope(extra, "schema:write");
1002
1080
  requireRole(extra, Role.ADMIN);
1003
1081
  const ec = getEmDash(extra);
1004
1082
  try {
1005
- const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
1083
+ const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
1006
1084
  const collection = await new SchemaRegistry(ec.db).createCollection({
1007
1085
  slug: args.slug,
1008
1086
  label: args.label,
@@ -1010,7 +1088,9 @@ function createMcpServer(pluginTools = [], request) {
1010
1088
  description: args.description,
1011
1089
  icon: args.icon,
1012
1090
  supports: args.supports,
1013
- routable: args.routable
1091
+ routable: args.routable,
1092
+ editLocking: args.editLocking,
1093
+ group: args.group
1014
1094
  });
1015
1095
  ec.invalidateUrlPatternCache();
1016
1096
  return jsonResult(collection);
@@ -1031,7 +1111,7 @@ function createMcpServer(pluginTools = [], request) {
1031
1111
  requireRole(extra, Role.ADMIN);
1032
1112
  const ec = getEmDash(extra);
1033
1113
  try {
1034
- const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
1114
+ const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
1035
1115
  await new SchemaRegistry(ec.db).deleteCollection(args.slug, { force: args.force });
1036
1116
  ec.invalidateUrlPatternCache();
1037
1117
  return jsonResult({ deleted: args.slug });
@@ -1050,7 +1130,7 @@ function createMcpServer(pluginTools = [], request) {
1050
1130
  const ec = getEmDash(extra);
1051
1131
  const { slug, ...input } = args;
1052
1132
  try {
1053
- const { handleSchemaCollectionUpdate } = await import("../../../schema-DYr-Vd-L.mjs").then((n) => n.h);
1133
+ const { handleSchemaCollectionUpdate } = await import("../../../schema-CPhPM9Do.mjs").then((n) => n.h);
1054
1134
  const result = await handleSchemaCollectionUpdate(ec.db, slug, input);
1055
1135
  if (result.success) ec.invalidateUrlPatternCache();
1056
1136
  return unwrap(result);
@@ -1105,7 +1185,7 @@ function createMcpServer(pluginTools = [], request) {
1105
1185
  requireRole(extra, Role.ADMIN);
1106
1186
  const ec = getEmDash(extra);
1107
1187
  try {
1108
- const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
1188
+ const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
1109
1189
  return jsonResult(await new SchemaRegistry(ec.db).createField(args.collection, {
1110
1190
  slug: args.slug,
1111
1191
  label: args.label,
@@ -1136,7 +1216,7 @@ function createMcpServer(pluginTools = [], request) {
1136
1216
  requireRole(extra, Role.ADMIN);
1137
1217
  const ec = getEmDash(extra);
1138
1218
  try {
1139
- const { SchemaRegistry } = await import("../../../schema-CGnBeLiW.mjs").then((n) => n.t);
1219
+ const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
1140
1220
  await new SchemaRegistry(ec.db).deleteField(args.collection, args.fieldSlug);
1141
1221
  return jsonResult({
1142
1222
  deleted: args.fieldSlug,
@@ -1157,7 +1237,7 @@ function createMcpServer(pluginTools = [], request) {
1157
1237
  const ec = getEmDash(extra);
1158
1238
  const { collection, fieldSlug, ...input } = args;
1159
1239
  try {
1160
- const { handleSchemaFieldUpdate } = await import("../../../schema-DYr-Vd-L.mjs").then((n) => n.h);
1240
+ const { handleSchemaFieldUpdate } = await import("../../../schema-CPhPM9Do.mjs").then((n) => n.h);
1161
1241
  return unwrap(await handleSchemaFieldUpdate(ec.db, collection, fieldSlug, input));
1162
1242
  } catch (error) {
1163
1243
  return respondHandlerError(error, "SCHEMA_FIELD_UPDATE_ERROR");
@@ -1228,8 +1308,7 @@ function createMcpServer(pluginTools = [], request) {
1228
1308
  const { emdash, userId } = getExtra(extra);
1229
1309
  if (!emdash.storage) return respondError("NO_STORAGE", "Storage not configured");
1230
1310
  try {
1231
- const { handleMediaUpload } = await import("../../../media-upload-BCidR-EY.mjs");
1232
- return unwrap(await handleMediaUpload(emdash.db, emdash.storage, {
1311
+ return unwrap(await emdash.handleMediaUpload({
1233
1312
  filename: args.filename,
1234
1313
  base64: args.base64,
1235
1314
  url: args.url,
@@ -1308,7 +1387,7 @@ function createMcpServer(pluginTools = [], request) {
1308
1387
  };
1309
1388
  } else input = { scope: "all" };
1310
1389
  try {
1311
- const { handleMediaUsageRepair } = await import("../../../media-usage-CdY5jhSR.mjs").then((n) => n.o);
1390
+ const { handleMediaUsageRepair } = await import("../../../media-usage-C4NolTpQ.mjs").then((n) => n.o);
1312
1391
  return unwrap(await handleMediaUsageRepair(ec.db, input));
1313
1392
  } catch (error) {
1314
1393
  return respondHandlerError(error, "MEDIA_USAGE_REPAIR_ERROR");
@@ -1329,7 +1408,7 @@ function createMcpServer(pluginTools = [], request) {
1329
1408
  requireScope(extra, "content:read");
1330
1409
  const ec = getEmDash(extra);
1331
1410
  try {
1332
- const { searchWithDb } = await import("../../../search-C-qDk4kx.mjs").then((n) => n.t);
1411
+ const { searchWithDb } = await import("../../../search-lami_Ota.mjs").then((n) => n.t);
1333
1412
  return jsonResult(await searchWithDb(ec.db, args.query, {
1334
1413
  collections: args.collections,
1335
1414
  locale: args.locale,
@@ -1349,7 +1428,7 @@ function createMcpServer(pluginTools = [], request) {
1349
1428
  requireScope(extra, "content:read");
1350
1429
  const ec = getEmDash(extra);
1351
1430
  try {
1352
- const { handleTaxonomyList } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
1431
+ const { handleTaxonomyList } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
1353
1432
  return unwrap(await handleTaxonomyList(ec.db, { locale: args.locale }));
1354
1433
  } catch (error) {
1355
1434
  return respondHandlerError(error, "TAXONOMY_LIST_ERROR");
@@ -1367,7 +1446,7 @@ function createMcpServer(pluginTools = [], request) {
1367
1446
  requireScope(extra, "content:read");
1368
1447
  const ec = getEmDash(extra);
1369
1448
  try {
1370
- const { handleTaxonomyGet } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
1449
+ const { handleTaxonomyGet } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
1371
1450
  return unwrap(await handleTaxonomyGet(ec.db, args.name, { locale: args.locale }));
1372
1451
  } catch (error) {
1373
1452
  return respondHandlerError(error, "TAXONOMY_GET_ERROR");
@@ -1390,8 +1469,8 @@ function createMcpServer(pluginTools = [], request) {
1390
1469
  requireRole(extra, Role.EDITOR);
1391
1470
  const ec = getEmDash(extra);
1392
1471
  try {
1393
- const { handleTaxonomyCreate } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
1394
- return unwrap(await handleTaxonomyCreate(ec.db, {
1472
+ const { handleTaxonomyCreate } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
1473
+ return unwrapAndInvalidate(extra, await handleTaxonomyCreate(ec.db, {
1395
1474
  name: args.name,
1396
1475
  label: args.label,
1397
1476
  labelSingular: args.labelSingular,
@@ -1399,7 +1478,7 @@ function createMcpServer(pluginTools = [], request) {
1399
1478
  collections: args.collections,
1400
1479
  locale: args.locale,
1401
1480
  translationOf: args.translationOf
1402
- }));
1481
+ }), [taxonomyTag(args.name)]);
1403
1482
  } catch (error) {
1404
1483
  return respondHandlerError(error, "TAXONOMY_CREATE_ERROR");
1405
1484
  }
@@ -1420,14 +1499,14 @@ function createMcpServer(pluginTools = [], request) {
1420
1499
  requireRole(extra, Role.EDITOR);
1421
1500
  const ec = getEmDash(extra);
1422
1501
  try {
1423
- const { handleTaxonomyUpdate } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
1424
- return unwrap(await handleTaxonomyUpdate(ec.db, args.name, {
1502
+ const { handleTaxonomyUpdate } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
1503
+ return unwrapAndInvalidate(extra, await handleTaxonomyUpdate(ec.db, args.name, {
1425
1504
  label: args.label,
1426
1505
  labelSingular: args.labelSingular,
1427
1506
  hierarchical: args.hierarchical,
1428
1507
  collections: args.collections,
1429
1508
  locale: args.locale
1430
- }));
1509
+ }), [taxonomyTag(args.name)]);
1431
1510
  } catch (error) {
1432
1511
  return respondHandlerError(error, "TAXONOMY_UPDATE_ERROR");
1433
1512
  }
@@ -1442,8 +1521,8 @@ function createMcpServer(pluginTools = [], request) {
1442
1521
  requireRole(extra, Role.EDITOR);
1443
1522
  const ec = getEmDash(extra);
1444
1523
  try {
1445
- const { handleTaxonomyDelete } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
1446
- return unwrap(await handleTaxonomyDelete(ec.db, args.name));
1524
+ const { handleTaxonomyDelete } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
1525
+ return unwrapAndInvalidate(extra, await handleTaxonomyDelete(ec.db, args.name), [taxonomyTag(args.name)]);
1447
1526
  } catch (error) {
1448
1527
  return respondHandlerError(error, "TAXONOMY_DELETE_ERROR");
1449
1528
  }
@@ -1462,11 +1541,11 @@ function createMcpServer(pluginTools = [], request) {
1462
1541
  requireScope(extra, "content:read");
1463
1542
  const ec = getEmDash(extra);
1464
1543
  try {
1465
- const { handleTaxonomyList } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
1544
+ const { handleTaxonomyList } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
1466
1545
  const listResult = await handleTaxonomyList(ec.db, { locale: args.locale });
1467
1546
  if (!listResult.success) return unwrap(listResult);
1468
1547
  if (!listResult.data.taxonomies.find((t) => t.name === args.taxonomy)) return respondError("NOT_FOUND", `Taxonomy '${args.taxonomy}' not found`);
1469
- const { TaxonomyRepository } = await import("../../../taxonomy-tJepplLL.mjs").then((n) => n.n);
1548
+ const { TaxonomyRepository } = await import("../../../taxonomy-Dj1vpw5E.mjs").then((n) => n.n);
1470
1549
  const repo = new TaxonomyRepository(ec.db);
1471
1550
  const limit = Math.min(args.limit ?? 50, 100);
1472
1551
  let cursor;
@@ -1527,52 +1606,54 @@ function createMcpServer(pluginTools = [], request) {
1527
1606
  requireRole(extra, Role.EDITOR);
1528
1607
  const ec = getEmDash(extra);
1529
1608
  try {
1530
- const { handleTermCreate } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
1531
- return unwrap(await handleTermCreate(ec.db, args.taxonomy, {
1609
+ const { handleTermCreate } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
1610
+ return unwrapAndInvalidate(extra, await handleTermCreate(ec.db, args.taxonomy, {
1532
1611
  slug: args.slug,
1533
1612
  label: args.label,
1534
1613
  parentId: args.parentId,
1535
1614
  description: args.description,
1536
1615
  locale: args.locale,
1537
1616
  translationOf: args.translationOf
1538
- }));
1617
+ }), [taxonomyTag(args.taxonomy)]);
1539
1618
  } catch (error) {
1540
1619
  return respondHandlerError(error, "TAXONOMY_TERM_CREATE_ERROR");
1541
1620
  }
1542
1621
  });
1543
1622
  server.registerTool("taxonomy_update_term", {
1544
1623
  title: "Update Taxonomy Term",
1545
- description: "Update an existing term in a taxonomy. Any field can be omitted to leave it unchanged. Renaming a term's slug must not collide with another term in the same taxonomy. Set parentId to null to detach from a parent. The new parent must exist, belong to the same taxonomy, and not introduce a cycle (a term cannot be its own ancestor). The new parent's ancestor chain must not exceed 100 levels — reparenting under a chain of 100+ ancestors is rejected.",
1624
+ description: "Update an existing term in a taxonomy. Any field can be omitted to leave it unchanged. Renaming a term's slug must not collide with another term in the same taxonomy. Set parentId to null to detach from a parent. The new parent must exist, belong to the same taxonomy, and not introduce a cycle (a term cannot be its own ancestor). The new parent's ancestor chain must not exceed 100 levels — reparenting under a chain of 100+ ancestors is rejected. Translations of a term can share a slug: pass `locale` to update a specific translation; otherwise the lowest matching locale is updated.",
1546
1625
  inputSchema: z.object({
1547
1626
  taxonomy: z.string().describe("Taxonomy name (e.g. 'categories', 'tags')"),
1548
1627
  termSlug: z.string().describe("Current slug of the term to update"),
1549
1628
  slug: z.string().optional().describe("New slug (must be unique in the taxonomy)"),
1550
1629
  label: z.string().optional().describe("New display name"),
1551
1630
  parentId: z.string().nullable().optional().describe("New parent term ID; null to detach"),
1552
- description: z.string().optional().describe("New description")
1631
+ description: z.string().optional().describe("New description"),
1632
+ locale: z.string().optional().describe("Locale of the term to update (e.g. 'fr')")
1553
1633
  })
1554
1634
  }, async (args, extra) => {
1555
1635
  requireScope(extra, "taxonomies:manage");
1556
1636
  requireRole(extra, Role.EDITOR);
1557
1637
  const ec = getEmDash(extra);
1558
1638
  try {
1559
- const { handleTermUpdate } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
1560
- return unwrap(await handleTermUpdate(ec.db, args.taxonomy, args.termSlug, {
1639
+ const { handleTermUpdate } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
1640
+ return unwrapAndInvalidate(extra, await handleTermUpdate(ec.db, args.taxonomy, args.termSlug, {
1561
1641
  slug: args.slug,
1562
1642
  label: args.label,
1563
1643
  parentId: args.parentId,
1564
1644
  description: args.description
1565
- }));
1645
+ }, { locale: args.locale }), [taxonomyTag(args.taxonomy)]);
1566
1646
  } catch (error) {
1567
1647
  return respondHandlerError(error, "TAXONOMY_TERM_UPDATE_ERROR");
1568
1648
  }
1569
1649
  });
1570
1650
  server.registerTool("taxonomy_delete_term", {
1571
1651
  title: "Delete Taxonomy Term",
1572
- description: "Permanently delete a term from a taxonomy. Any content tagged with this term loses the association. Cannot delete a term that has children — delete children first.",
1652
+ description: "Permanently delete a term from a taxonomy. Any content tagged with this term loses the association. Cannot delete a term that has children — delete children first. Translations of a term can share a slug: pass `locale` to delete a specific translation; otherwise the lowest matching locale is deleted.",
1573
1653
  inputSchema: z.object({
1574
1654
  taxonomy: z.string().describe("Taxonomy name"),
1575
- termSlug: z.string().describe("Slug of the term to delete")
1655
+ termSlug: z.string().describe("Slug of the term to delete"),
1656
+ locale: z.string().optional().describe("Locale of the term to delete (e.g. 'fr')")
1576
1657
  }),
1577
1658
  annotations: { destructiveHint: true }
1578
1659
  }, async (args, extra) => {
@@ -1580,8 +1661,8 @@ function createMcpServer(pluginTools = [], request) {
1580
1661
  requireRole(extra, Role.EDITOR);
1581
1662
  const ec = getEmDash(extra);
1582
1663
  try {
1583
- const { handleTermDelete } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
1584
- return unwrap(await handleTermDelete(ec.db, args.taxonomy, args.termSlug));
1664
+ const { handleTermDelete } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
1665
+ return unwrapAndInvalidate(extra, await handleTermDelete(ec.db, args.taxonomy, args.termSlug, { locale: args.locale }), [taxonomyTag(args.taxonomy)]);
1585
1666
  } catch (error) {
1586
1667
  return respondHandlerError(error, "TAXONOMY_TERM_DELETE_ERROR");
1587
1668
  }
@@ -1595,7 +1676,7 @@ function createMcpServer(pluginTools = [], request) {
1595
1676
  requireScope(extra, "content:read");
1596
1677
  const ec = getEmDash(extra);
1597
1678
  try {
1598
- const { handleTermTranslations } = await import("../../../taxonomies-DkAkMupr.mjs").then((n) => n.m);
1679
+ const { handleTermTranslations } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
1599
1680
  return unwrap(await handleTermTranslations(ec.db, args.id));
1600
1681
  } catch (error) {
1601
1682
  return respondHandlerError(error, "TERM_TRANSLATIONS_ERROR");
@@ -1610,7 +1691,7 @@ function createMcpServer(pluginTools = [], request) {
1610
1691
  requireScope(extra, "content:read");
1611
1692
  const ec = getEmDash(extra);
1612
1693
  try {
1613
- const { handleMenuList } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
1694
+ const { handleMenuList } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
1614
1695
  return unwrap(await handleMenuList(ec.db, { locale: args.locale }));
1615
1696
  } catch (error) {
1616
1697
  return respondHandlerError(error, "MENU_LIST_ERROR");
@@ -1628,7 +1709,7 @@ function createMcpServer(pluginTools = [], request) {
1628
1709
  requireScope(extra, "content:read");
1629
1710
  const ec = getEmDash(extra);
1630
1711
  try {
1631
- const { handleMenuGet } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
1712
+ const { handleMenuGet } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
1632
1713
  return unwrap(await handleMenuGet(ec.db, args.name, { locale: args.locale }));
1633
1714
  } catch (error) {
1634
1715
  return respondHandlerError(error, "MENU_GET_ERROR");
@@ -1643,7 +1724,7 @@ function createMcpServer(pluginTools = [], request) {
1643
1724
  requireScope(extra, "content:read");
1644
1725
  const ec = getEmDash(extra);
1645
1726
  try {
1646
- const { handleMenuTranslations } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
1727
+ const { handleMenuTranslations } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
1647
1728
  return unwrap(await handleMenuTranslations(ec.db, args.id));
1648
1729
  } catch (error) {
1649
1730
  return respondHandlerError(error, "MENU_TRANSLATIONS_ERROR");
@@ -1663,13 +1744,13 @@ function createMcpServer(pluginTools = [], request) {
1663
1744
  requireRole(extra, Role.EDITOR);
1664
1745
  const ec = getEmDash(extra);
1665
1746
  try {
1666
- const { handleMenuCreate } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
1667
- return unwrap(await handleMenuCreate(ec.db, {
1747
+ const { handleMenuCreate } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
1748
+ return unwrapAndInvalidate(extra, await handleMenuCreate(ec.db, {
1668
1749
  name: args.name,
1669
1750
  label: args.label,
1670
1751
  locale: args.locale,
1671
1752
  translationOf: args.translationOf
1672
- }));
1753
+ }), [menuTag(args.name)]);
1673
1754
  } catch (error) {
1674
1755
  return respondHandlerError(error, "MENU_CREATE_ERROR");
1675
1756
  }
@@ -1687,11 +1768,11 @@ function createMcpServer(pluginTools = [], request) {
1687
1768
  requireRole(extra, Role.EDITOR);
1688
1769
  const ec = getEmDash(extra);
1689
1770
  try {
1690
- const { handleMenuUpdate } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
1691
- return unwrap(await handleMenuUpdate(ec.db, args.name, {
1771
+ const { handleMenuUpdate } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
1772
+ return unwrapAndInvalidate(extra, await handleMenuUpdate(ec.db, args.name, {
1692
1773
  label: args.label,
1693
1774
  locale: args.locale
1694
- }));
1775
+ }), [menuTag(args.name)]);
1695
1776
  } catch (error) {
1696
1777
  return respondHandlerError(error, "MENU_UPDATE_ERROR");
1697
1778
  }
@@ -1709,8 +1790,8 @@ function createMcpServer(pluginTools = [], request) {
1709
1790
  requireRole(extra, Role.EDITOR);
1710
1791
  const ec = getEmDash(extra);
1711
1792
  try {
1712
- const { handleMenuDelete } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
1713
- return unwrap(await handleMenuDelete(ec.db, args.name, { locale: args.locale }));
1793
+ const { handleMenuDelete } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
1794
+ return unwrapAndInvalidate(extra, await handleMenuDelete(ec.db, args.name, { locale: args.locale }), [menuTag(args.name)]);
1714
1795
  } catch (error) {
1715
1796
  return respondHandlerError(error, "MENU_DELETE_ERROR");
1716
1797
  }
@@ -1744,8 +1825,8 @@ function createMcpServer(pluginTools = [], request) {
1744
1825
  requireRole(extra, Role.EDITOR);
1745
1826
  const ec = getEmDash(extra);
1746
1827
  try {
1747
- const { handleMenuSetItems } = await import("../../../menus-uvPLXMZf.mjs").then((n) => n.d);
1748
- return unwrap(await handleMenuSetItems(ec.db, args.name, args.items, { locale: args.locale }));
1828
+ const { handleMenuSetItems } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
1829
+ return unwrapAndInvalidate(extra, await handleMenuSetItems(ec.db, args.name, args.items, { locale: args.locale }), [menuTag(args.name)]);
1749
1830
  } catch (error) {
1750
1831
  return respondHandlerError(error, "MENU_SET_ITEMS_ERROR");
1751
1832
  }
@@ -1791,7 +1872,7 @@ function createMcpServer(pluginTools = [], request) {
1791
1872
  requireRole(extra, Role.EDITOR);
1792
1873
  const ec = getEmDash(extra);
1793
1874
  try {
1794
- const { handleSettingsGet } = await import("../../../settings-Cwm6o2jY.mjs").then((n) => n.r);
1875
+ const { handleSettingsGet } = await import("../../../settings-g2F2a3Ub.mjs").then((n) => n.r);
1795
1876
  return unwrap(await handleSettingsGet(ec.db, ec.storage));
1796
1877
  } catch (error) {
1797
1878
  return respondHandlerError(error, "SETTINGS_READ_ERROR");
@@ -1817,8 +1898,8 @@ function createMcpServer(pluginTools = [], request) {
1817
1898
  requireRole(extra, Role.ADMIN);
1818
1899
  const ec = getEmDash(extra);
1819
1900
  try {
1820
- const { handleSettingsUpdate } = await import("../../../settings-Cwm6o2jY.mjs").then((n) => n.r);
1821
- return unwrap(await handleSettingsUpdate(ec.db, ec.storage, args));
1901
+ const { handleSettingsUpdate } = await import("../../../settings-g2F2a3Ub.mjs").then((n) => n.r);
1902
+ return unwrapAndInvalidate(extra, await handleSettingsUpdate(ec.db, ec.storage, args), [siteSettingsTag()]);
1822
1903
  } catch (error) {
1823
1904
  return respondHandlerError(error, "SETTINGS_UPDATE_ERROR");
1824
1905
  }
@@ -1841,7 +1922,7 @@ function createMcpServer(pluginTools = [], request) {
1841
1922
  * DELETE /_emdash/api/mcp — Session close (not used in stateless mode)
1842
1923
  */
1843
1924
  const prerender = false;
1844
- const POST = async ({ request, locals }) => {
1925
+ const POST = async ({ request, locals, cache }) => {
1845
1926
  const { emdash, user } = locals;
1846
1927
  if (!emdash) return apiError("NOT_CONFIGURED", "EmDash is not initialized", 500);
1847
1928
  if (!user) return apiError("UNAUTHORIZED", "Authentication required", 401);
@@ -1858,7 +1939,8 @@ const POST = async ({ request, locals }) => {
1858
1939
  user,
1859
1940
  userId: user.id,
1860
1941
  userRole: user.role,
1861
- tokenScopes: locals.tokenScopes
1942
+ tokenScopes: locals.tokenScopes,
1943
+ cache
1862
1944
  }
1863
1945
  } });
1864
1946
  } catch (error) {