emdash 0.39.0 → 0.40.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 (1650) hide show
  1. package/dist/action-token-DYwe4Pk0.mjs +26 -0
  2. package/dist/action-token-DYwe4Pk0.mjs.map +1 -0
  3. package/dist/activation-LOkDM5WT.mjs +382 -0
  4. package/dist/activation-LOkDM5WT.mjs.map +1 -0
  5. package/dist/adapters-B64LbYcB.d.mts +171 -0
  6. package/dist/adapters-B64LbYcB.d.mts.map +1 -0
  7. package/dist/allowed-origins-CHB8oZNM.mjs +116 -0
  8. package/dist/allowed-origins-CHB8oZNM.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +4 -4
  10. package/dist/api/route-utils.mjs +49 -40
  11. package/dist/api/route-utils.mjs.map +1 -1
  12. package/dist/api/schemas/index.d.mts +2 -2
  13. package/dist/api/schemas/index.mjs +11 -7
  14. package/dist/api-cFFZpyS0.mjs +4718 -0
  15. package/dist/api-cFFZpyS0.mjs.map +1 -0
  16. package/dist/api-tokens-CE1ECIg0.mjs +3 -0
  17. package/dist/api-tokens-s4i4aUp_.mjs +166 -0
  18. package/dist/api-tokens-s4i4aUp_.mjs.map +1 -0
  19. package/dist/apply-CoT603H3.mjs +1163 -0
  20. package/dist/apply-CoT603H3.mjs.map +1 -0
  21. package/dist/approvals-CqMfNxak.mjs +460 -0
  22. package/dist/approvals-CqMfNxak.mjs.map +1 -0
  23. package/dist/artifact-fetch-DZMOGZ3-.mjs +818 -0
  24. package/dist/artifact-fetch-DZMOGZ3-.mjs.map +1 -0
  25. package/dist/astro/index.d.mts +14 -14
  26. package/dist/astro/index.mjs +62 -12
  27. package/dist/astro/index.mjs.map +1 -1
  28. package/dist/astro/middleware/auth.d.mts +14 -12
  29. package/dist/astro/middleware/auth.d.mts.map +1 -1
  30. package/dist/astro/middleware/auth.mjs +26 -11
  31. package/dist/astro/middleware/auth.mjs.map +1 -1
  32. package/dist/astro/middleware/media-usage-write-fence.d.mts +9 -1
  33. package/dist/astro/middleware/media-usage-write-fence.d.mts.map +1 -1
  34. package/dist/astro/middleware/media-usage-write-fence.mjs +95 -13
  35. package/dist/astro/middleware/media-usage-write-fence.mjs.map +1 -1
  36. package/dist/astro/middleware/redirect.mjs +8 -8
  37. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  38. package/dist/astro/middleware/request-context.mjs +145 -47
  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 +12 -12
  42. package/dist/astro/middleware.d.mts.map +1 -1
  43. package/dist/astro/middleware.mjs +129 -122
  44. package/dist/astro/middleware.mjs.map +1 -1
  45. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +14 -8
  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 +14 -8
  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 -3
  50. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs.map +1 -1
  51. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -4
  52. package/dist/astro/routes/api/admin/api-tokens/index.mjs.map +1 -1
  53. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -4
  54. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs.map +1 -1
  55. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +17 -11
  56. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
  57. package/dist/astro/routes/api/admin/byline-fields/index.mjs +17 -11
  58. package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +17 -11
  60. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
  61. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +25 -19
  62. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  63. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +25 -19
  64. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  65. package/dist/astro/routes/api/admin/bylines/index.mjs +25 -19
  66. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  67. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +19 -13
  68. package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
  69. package/dist/astro/routes/api/admin/comments/_id_.mjs +7 -5
  70. package/dist/astro/routes/api/admin/comments/_id_.mjs.map +1 -1
  71. package/dist/astro/routes/api/admin/comments/bulk.mjs +18 -12
  72. package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
  73. package/dist/astro/routes/api/admin/comments/counts.mjs +7 -5
  74. package/dist/astro/routes/api/admin/comments/counts.mjs.map +1 -1
  75. package/dist/astro/routes/api/admin/comments/index.mjs +18 -12
  76. package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
  77. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -4
  78. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs.map +1 -1
  79. package/dist/astro/routes/api/admin/hooks/exclusive/index.d.mts.map +1 -1
  80. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -6
  81. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs.map +1 -1
  82. package/dist/astro/routes/api/admin/media-usage/activation.mjs +21 -15
  83. package/dist/astro/routes/api/admin/media-usage/activation.mjs.map +1 -1
  84. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +23 -17
  85. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -1
  86. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +23 -17
  87. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -1
  88. package/dist/astro/routes/api/admin/media-usage/progress.mjs +26 -15
  89. package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
  90. package/dist/astro/routes/api/admin/media-usage/repair.mjs +32 -19
  91. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  92. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +23 -17
  93. package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -1
  94. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +23 -17
  95. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -3
  97. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -3
  99. package/dist/astro/routes/api/admin/oauth-clients/index.mjs.map +1 -1
  100. package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts.map +1 -1
  101. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +10 -8
  102. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
  103. package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts.map +1 -1
  104. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +10 -8
  105. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
  106. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +72 -61
  107. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  108. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +6 -4
  109. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs.map +1 -1
  110. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +71 -60
  111. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  112. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.d.mts.map +1 -1
  113. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +74 -63
  114. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  115. package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts.map +1 -1
  116. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +84 -73
  117. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  118. package/dist/astro/routes/api/admin/plugins/index.mjs +72 -61
  119. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  120. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +4 -2
  121. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs.map +1 -1
  122. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -60
  123. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  124. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts.map +1 -1
  125. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +83 -72
  126. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  127. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -60
  128. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  129. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.d.mts.map +1 -1
  130. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +74 -63
  131. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  132. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +85 -74
  133. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  134. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +8 -6
  135. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  136. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +76 -65
  137. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  138. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.d.mts +8 -0
  139. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.d.mts.map +1 -0
  140. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +221 -0
  141. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs.map +1 -0
  142. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +72 -61
  143. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  144. package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -60
  145. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  146. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -4
  147. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs.map +1 -1
  148. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +71 -60
  149. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  150. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +4 -2
  151. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs.map +1 -1
  152. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -60
  153. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  154. package/dist/astro/routes/api/admin/transfer/_...path_.d.mts +12 -0
  155. package/dist/astro/routes/api/admin/transfer/_...path_.d.mts.map +1 -0
  156. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +144 -0
  157. package/dist/astro/routes/api/admin/transfer/_...path_.mjs.map +1 -0
  158. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.d.mts +8 -0
  159. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.d.mts.map +1 -0
  160. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +68 -0
  161. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -0
  162. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.d.mts +8 -0
  163. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.d.mts.map +1 -0
  164. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +68 -0
  165. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -0
  166. package/dist/astro/routes/api/admin/transfer/approvals/index.d.mts +8 -0
  167. package/dist/astro/routes/api/admin/transfer/approvals/index.d.mts.map +1 -0
  168. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +67 -0
  169. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -0
  170. package/dist/astro/routes/api/admin/transfer/capabilities.d.mts +8 -0
  171. package/dist/astro/routes/api/admin/transfer/capabilities.d.mts.map +1 -0
  172. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +70 -0
  173. package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -0
  174. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.d.mts +8 -0
  175. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.d.mts.map +1 -0
  176. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +67 -0
  177. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -0
  178. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.d.mts +8 -0
  179. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.d.mts.map +1 -0
  180. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +70 -0
  181. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -0
  182. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.d.mts +8 -0
  183. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.d.mts.map +1 -0
  184. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +69 -0
  185. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -0
  186. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.d.mts +8 -0
  187. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.d.mts.map +1 -0
  188. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +66 -0
  189. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -0
  190. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.d.mts +8 -0
  191. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.d.mts.map +1 -0
  192. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +69 -0
  193. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -0
  194. package/dist/astro/routes/api/admin/transfer/exports/index.d.mts +9 -0
  195. package/dist/astro/routes/api/admin/transfer/exports/index.d.mts.map +1 -0
  196. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +91 -0
  197. package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -0
  198. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.d.mts +8 -0
  199. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.d.mts.map +1 -0
  200. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +66 -0
  201. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -0
  202. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.d.mts +8 -0
  203. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.d.mts.map +1 -0
  204. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +70 -0
  205. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -0
  206. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.d.mts +8 -0
  207. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.d.mts.map +1 -0
  208. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +78 -0
  209. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -0
  210. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.d.mts +8 -0
  211. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.d.mts.map +1 -0
  212. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +66 -0
  213. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -0
  214. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.d.mts +8 -0
  215. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.d.mts.map +1 -0
  216. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +77 -0
  217. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -0
  218. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.d.mts +8 -0
  219. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.d.mts.map +1 -0
  220. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +77 -0
  221. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -0
  222. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.d.mts +8 -0
  223. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.d.mts.map +1 -0
  224. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +66 -0
  225. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -0
  226. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.d.mts +8 -0
  227. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.d.mts.map +1 -0
  228. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +70 -0
  229. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -0
  230. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.d.mts +8 -0
  231. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.d.mts.map +1 -0
  232. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +67 -0
  233. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -0
  234. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.d.mts +8 -0
  235. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.d.mts.map +1 -0
  236. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +66 -0
  237. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -0
  238. package/dist/astro/routes/api/admin/transfer/imports/index.d.mts +9 -0
  239. package/dist/astro/routes/api/admin/transfer/imports/index.d.mts.map +1 -0
  240. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +99 -0
  241. package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -0
  242. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -1
  243. package/dist/astro/routes/api/admin/users/_id_/disable.mjs.map +1 -1
  244. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -1
  245. package/dist/astro/routes/api/admin/users/_id_/enable.mjs.map +1 -1
  246. package/dist/astro/routes/api/admin/users/_id_/index.mjs +14 -8
  247. package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
  248. package/dist/astro/routes/api/admin/users/_id_/send-recovery.d.mts.map +1 -1
  249. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +16 -6
  250. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs.map +1 -1
  251. package/dist/astro/routes/api/admin/users/index.mjs +14 -8
  252. package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
  253. package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -3
  254. package/dist/astro/routes/api/auth/dev-bypass.mjs.map +1 -1
  255. package/dist/astro/routes/api/auth/invite/accept.mjs +3 -1
  256. package/dist/astro/routes/api/auth/invite/accept.mjs.map +1 -1
  257. package/dist/astro/routes/api/auth/invite/complete.mjs +19 -13
  258. package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
  259. package/dist/astro/routes/api/auth/invite/index.d.mts.map +1 -1
  260. package/dist/astro/routes/api/auth/invite/index.mjs +24 -12
  261. package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
  262. package/dist/astro/routes/api/auth/invite/register-options.mjs +18 -12
  263. package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
  264. package/dist/astro/routes/api/auth/logout.mjs +4 -2
  265. package/dist/astro/routes/api/auth/logout.mjs.map +1 -1
  266. package/dist/astro/routes/api/auth/magic-link/send.d.mts.map +1 -1
  267. package/dist/astro/routes/api/auth/magic-link/send.mjs +29 -15
  268. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  269. package/dist/astro/routes/api/auth/magic-link/verify.d.mts +2 -1
  270. package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -1
  271. package/dist/astro/routes/api/auth/magic-link/verify.mjs +37 -17
  272. package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -1
  273. package/dist/astro/routes/api/auth/me.mjs +15 -9
  274. package/dist/astro/routes/api/auth/me.mjs.map +1 -1
  275. package/dist/astro/routes/api/auth/mode.mjs +4 -2
  276. package/dist/astro/routes/api/auth/mode.mjs.map +1 -1
  277. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +4 -4
  278. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  279. package/dist/astro/routes/api/auth/passkey/_id_.mjs +14 -8
  280. package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
  281. package/dist/astro/routes/api/auth/passkey/index.mjs +3 -1
  282. package/dist/astro/routes/api/auth/passkey/index.mjs.map +1 -1
  283. package/dist/astro/routes/api/auth/passkey/options.d.mts.map +1 -1
  284. package/dist/astro/routes/api/auth/passkey/options.mjs +21 -24
  285. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  286. package/dist/astro/routes/api/auth/passkey/register/options.mjs +18 -12
  287. package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
  288. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +19 -13
  289. package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
  290. package/dist/astro/routes/api/auth/passkey/verify.mjs +19 -13
  291. package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
  292. package/dist/astro/routes/api/auth/signup/complete.mjs +19 -13
  293. package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
  294. package/dist/astro/routes/api/auth/signup/request.mjs +18 -12
  295. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  296. package/dist/astro/routes/api/auth/signup/verify.mjs +3 -1
  297. package/dist/astro/routes/api/auth/signup/verify.mjs.map +1 -1
  298. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +14 -11
  299. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -1
  300. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +21 -15
  301. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
  302. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -2
  303. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs.map +1 -1
  304. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +18 -13
  305. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  306. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +4 -3
  307. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs.map +1 -1
  308. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +18 -13
  309. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
  310. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -2
  311. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs.map +1 -1
  312. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +10 -8
  313. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs.map +1 -1
  314. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.d.mts.map +1 -1
  315. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +68 -16
  316. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  317. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +18 -13
  318. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  319. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +31 -22
  320. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  321. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +31 -22
  322. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  323. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +4 -3
  324. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs.map +1 -1
  325. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -2
  326. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs.map +1 -1
  327. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +18 -13
  328. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  329. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -1
  330. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +38 -19
  331. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  332. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -2
  333. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs.map +1 -1
  334. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +18 -13
  335. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  336. package/dist/astro/routes/api/content/_collection_/_id_.mjs +18 -13
  337. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  338. package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -2
  339. package/dist/astro/routes/api/content/_collection_/authors.mjs.map +1 -1
  340. package/dist/astro/routes/api/content/_collection_/index.mjs +15 -10
  341. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  342. package/dist/astro/routes/api/content/_collection_/trash.mjs +15 -9
  343. package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
  344. package/dist/astro/routes/api/dashboard.mjs +11 -9
  345. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  346. package/dist/astro/routes/api/dev/emails.mjs +4 -2
  347. package/dist/astro/routes/api/dev/emails.mjs.map +1 -1
  348. package/dist/astro/routes/api/health.mjs +5 -3
  349. package/dist/astro/routes/api/health.mjs.map +1 -1
  350. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  351. package/dist/astro/routes/api/import/probe.mjs +27 -21
  352. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  353. package/dist/astro/routes/api/import/wordpress/analyze.mjs +5 -3
  354. package/dist/astro/routes/api/import/wordpress/analyze.mjs.map +1 -1
  355. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
  356. package/dist/astro/routes/api/import/wordpress/execute.mjs +18 -16
  357. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  358. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  359. package/dist/astro/routes/api/import/wordpress/media.mjs +19 -13
  360. package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
  361. package/dist/astro/routes/api/import/wordpress/prepare.mjs +18 -12
  362. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  363. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts +5 -1
  364. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts.map +1 -1
  365. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs +4 -2
  366. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs.map +1 -1
  367. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  368. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +29 -15
  369. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  370. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  371. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +27 -21
  372. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  373. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  374. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +38 -32
  375. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  376. package/dist/astro/routes/api/manifest.mjs +6 -4
  377. package/dist/astro/routes/api/manifest.mjs.map +1 -1
  378. package/dist/astro/routes/api/mcp.d.mts.map +1 -1
  379. package/dist/astro/routes/api/mcp.mjs +717 -67
  380. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  381. package/dist/astro/routes/api/media/_id_/confirm.mjs +19 -13
  382. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  383. package/dist/astro/routes/api/media/_id_/replace.mjs +16 -10
  384. package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -1
  385. package/dist/astro/routes/api/media/_id_/upload.mjs +8 -6
  386. package/dist/astro/routes/api/media/_id_/upload.mjs.map +1 -1
  387. package/dist/astro/routes/api/media/_id_/usage.mjs +34 -21
  388. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  389. package/dist/astro/routes/api/media/_id_.d.mts.map +1 -1
  390. package/dist/astro/routes/api/media/_id_.mjs +37 -26
  391. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  392. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +5 -3
  393. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs.map +1 -1
  394. package/dist/astro/routes/api/media/file/_...key_.d.mts.map +1 -1
  395. package/dist/astro/routes/api/media/file/_...key_.mjs +31 -2
  396. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  397. package/dist/astro/routes/api/media/folders/_id_.mjs +16 -10
  398. package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -1
  399. package/dist/astro/routes/api/media/folders/index.mjs +16 -10
  400. package/dist/astro/routes/api/media/folders/index.mjs.map +1 -1
  401. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -2
  402. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs.map +1 -1
  403. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -2
  404. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs.map +1 -1
  405. package/dist/astro/routes/api/media/providers/index.mjs +4 -2
  406. package/dist/astro/routes/api/media/providers/index.mjs.map +1 -1
  407. package/dist/astro/routes/api/media/upload-url.mjs +18 -12
  408. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  409. package/dist/astro/routes/api/media.mjs +36 -24
  410. package/dist/astro/routes/api/media.mjs.map +1 -1
  411. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +18 -12
  412. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  413. package/dist/astro/routes/api/menus/_name_/items.mjs +18 -12
  414. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  415. package/dist/astro/routes/api/menus/_name_/reorder.mjs +18 -12
  416. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  417. package/dist/astro/routes/api/menus/_name_/translations.mjs +18 -12
  418. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  419. package/dist/astro/routes/api/menus/_name_.mjs +18 -12
  420. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  421. package/dist/astro/routes/api/menus/index.mjs +18 -12
  422. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  423. package/dist/astro/routes/api/oauth/authorize.d.mts.map +1 -1
  424. package/dist/astro/routes/api/oauth/authorize.mjs +9 -6
  425. package/dist/astro/routes/api/oauth/authorize.mjs.map +1 -1
  426. package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -5
  427. package/dist/astro/routes/api/oauth/device/authorize.mjs.map +1 -1
  428. package/dist/astro/routes/api/oauth/device/code.mjs +10 -8
  429. package/dist/astro/routes/api/oauth/device/code.mjs.map +1 -1
  430. package/dist/astro/routes/api/oauth/device/token.mjs +9 -7
  431. package/dist/astro/routes/api/oauth/device/token.mjs.map +1 -1
  432. package/dist/astro/routes/api/oauth/register.mjs +4 -2
  433. package/dist/astro/routes/api/oauth/register.mjs.map +1 -1
  434. package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -5
  435. package/dist/astro/routes/api/oauth/token/refresh.mjs.map +1 -1
  436. package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -5
  437. package/dist/astro/routes/api/oauth/token/revoke.mjs.map +1 -1
  438. package/dist/astro/routes/api/oauth/token.mjs +7 -5
  439. package/dist/astro/routes/api/oauth/token.mjs.map +1 -1
  440. package/dist/astro/routes/api/openapi.json.mjs +497 -12
  441. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  442. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +10 -8
  443. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
  444. package/dist/astro/routes/api/redirects/404s/index.mjs +21 -15
  445. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  446. package/dist/astro/routes/api/redirects/404s/summary.mjs +21 -15
  447. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  448. package/dist/astro/routes/api/redirects/_id_.mjs +21 -15
  449. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  450. package/dist/astro/routes/api/redirects/index.mjs +21 -15
  451. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  452. package/dist/astro/routes/api/relations/_id_/index.mjs +31 -22
  453. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  454. package/dist/astro/routes/api/relations/_id_/translations.mjs +21 -16
  455. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +1 -1
  456. package/dist/astro/routes/api/relations/index.mjs +31 -22
  457. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  458. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -2
  459. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs.map +1 -1
  460. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +4 -3
  461. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs.map +1 -1
  462. package/dist/astro/routes/api/schema/block-types/_slug_/index.d.mts +9 -0
  463. package/dist/astro/routes/api/schema/block-types/_slug_/index.d.mts.map +1 -0
  464. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +102 -0
  465. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -0
  466. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.d.mts +8 -0
  467. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.d.mts.map +1 -0
  468. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +96 -0
  469. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -0
  470. package/dist/astro/routes/api/schema/block-types/index.d.mts +9 -0
  471. package/dist/astro/routes/api/schema/block-types/index.d.mts.map +1 -0
  472. package/dist/astro/routes/api/schema/block-types/index.mjs +102 -0
  473. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -0
  474. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +71 -60
  475. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  476. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +71 -60
  477. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  478. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +71 -60
  479. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  480. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +71 -60
  481. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  482. package/dist/astro/routes/api/schema/collections/index.mjs +71 -60
  483. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  484. package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -60
  485. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  486. package/dist/astro/routes/api/schema/index.mjs +17 -14
  487. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  488. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -60
  489. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  490. package/dist/astro/routes/api/schema/orphans/index.mjs +71 -60
  491. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  492. package/dist/astro/routes/api/search/enable.mjs +20 -14
  493. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  494. package/dist/astro/routes/api/search/index.mjs +19 -13
  495. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  496. package/dist/astro/routes/api/search/rebuild.mjs +20 -14
  497. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  498. package/dist/astro/routes/api/search/stats.mjs +10 -8
  499. package/dist/astro/routes/api/search/stats.mjs.map +1 -1
  500. package/dist/astro/routes/api/search/suggest.mjs +19 -13
  501. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  502. package/dist/astro/routes/api/sections/_slug_.mjs +19 -13
  503. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  504. package/dist/astro/routes/api/sections/index.mjs +19 -13
  505. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  506. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +8 -7
  507. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs.map +1 -1
  508. package/dist/astro/routes/api/settings/backups/archives/index.mjs +8 -6
  509. package/dist/astro/routes/api/settings/backups/archives/index.mjs.map +1 -1
  510. package/dist/astro/routes/api/settings/backups/export.mjs +8 -7
  511. package/dist/astro/routes/api/settings/backups/export.mjs.map +1 -1
  512. package/dist/astro/routes/api/settings/backups/index.mjs +9 -8
  513. package/dist/astro/routes/api/settings/backups/index.mjs.map +1 -1
  514. package/dist/astro/routes/api/settings/email.mjs +6 -4
  515. package/dist/astro/routes/api/settings/email.mjs.map +1 -1
  516. package/dist/astro/routes/api/settings.mjs +25 -19
  517. package/dist/astro/routes/api/settings.mjs.map +1 -1
  518. package/dist/astro/routes/api/setup/admin-verify.mjs +20 -14
  519. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  520. package/dist/astro/routes/api/setup/admin.mjs +19 -13
  521. package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
  522. package/dist/astro/routes/api/setup/dev-bypass.mjs +43 -37
  523. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  524. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -2
  525. package/dist/astro/routes/api/setup/dev-reset.mjs.map +1 -1
  526. package/dist/astro/routes/api/setup/index.mjs +48 -38
  527. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  528. package/dist/astro/routes/api/setup/status.mjs +5 -3
  529. package/dist/astro/routes/api/setup/status.mjs.map +1 -1
  530. package/dist/astro/routes/api/snapshot.mjs +10 -8
  531. package/dist/astro/routes/api/snapshot.mjs.map +1 -1
  532. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +25 -19
  533. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  534. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +25 -19
  535. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  536. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -19
  537. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  538. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +25 -19
  539. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  540. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +24 -18
  541. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  542. package/dist/astro/routes/api/taxonomies/_name_.mjs +25 -19
  543. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  544. package/dist/astro/routes/api/taxonomies/bulk-tag.d.mts +8 -0
  545. package/dist/astro/routes/api/taxonomies/bulk-tag.d.mts.map +1 -0
  546. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +295 -0
  547. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -0
  548. package/dist/astro/routes/api/taxonomies/index.mjs +25 -19
  549. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  550. package/dist/astro/routes/api/themes/preview.mjs +7 -5
  551. package/dist/astro/routes/api/themes/preview.mjs.map +1 -1
  552. package/dist/astro/routes/api/typegen.d.mts.map +1 -1
  553. package/dist/astro/routes/api/typegen.mjs +12 -9
  554. package/dist/astro/routes/api/typegen.mjs.map +1 -1
  555. package/dist/astro/routes/api/visual-editing/action-token.mjs +7 -5
  556. package/dist/astro/routes/api/visual-editing/action-token.mjs.map +1 -1
  557. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +22 -16
  558. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs.map +1 -1
  559. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +3 -1
  560. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs.map +1 -1
  561. package/dist/astro/routes/api/well-known/auth.mjs +2 -2
  562. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  563. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  564. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +16 -10
  565. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  566. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +20 -14
  567. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  568. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +20 -14
  569. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  570. package/dist/astro/routes/api/widget-areas/_name_.mjs +10 -8
  571. package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
  572. package/dist/astro/routes/api/widget-areas/index.mjs +20 -14
  573. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  574. package/dist/astro/routes/api/widget-components.mjs +4 -2
  575. package/dist/astro/routes/api/widget-components.mjs.map +1 -1
  576. package/dist/astro/routes/robots.txt.mjs +10 -10
  577. package/dist/astro/routes/sitemap-_collection_.xml.mjs +13 -13
  578. package/dist/astro/routes/sitemap.xml.mjs +11 -11
  579. package/dist/astro/types.d.mts +21 -17
  580. package/dist/astro/types.d.mts.map +1 -1
  581. package/dist/audit-RfCugiSB.mjs +127 -0
  582. package/dist/audit-RfCugiSB.mjs.map +1 -0
  583. package/dist/auth/providers/github.d.mts +1 -1
  584. package/dist/auth/providers/google.d.mts +1 -1
  585. package/dist/authoritative-records-CoJvBXAD.mjs +5172 -0
  586. package/dist/authoritative-records-CoJvBXAD.mjs.map +1 -0
  587. package/dist/authorize-seCifOMJ.mjs +49 -0
  588. package/dist/authorize-seCifOMJ.mjs.map +1 -0
  589. package/dist/backup-CBu0LrXf.mjs +246 -0
  590. package/dist/backup-CBu0LrXf.mjs.map +1 -0
  591. package/dist/block-type-registry-DUI_3KxT.mjs +6709 -0
  592. package/dist/block-type-registry-DUI_3KxT.mjs.map +1 -0
  593. package/dist/block-types-BmZmLmAD.mjs +132 -0
  594. package/dist/block-types-BmZmLmAD.mjs.map +1 -0
  595. package/dist/block-values-C_VIPr5t.mjs +175 -0
  596. package/dist/block-values-C_VIPr5t.mjs.map +1 -0
  597. package/dist/byline-DYmkXqvo.mjs +909 -0
  598. package/dist/byline-DYmkXqvo.mjs.map +1 -0
  599. package/dist/byline-fields-D28AT-Fh.mjs +123 -0
  600. package/dist/byline-fields-D28AT-Fh.mjs.map +1 -0
  601. package/dist/byline-registry-gnKscbQX.mjs +406 -0
  602. package/dist/byline-registry-gnKscbQX.mjs.map +1 -0
  603. package/dist/bylines-BPwJqoYH.mjs +232 -0
  604. package/dist/bylines-BPwJqoYH.mjs.map +1 -0
  605. package/dist/bylines-ukLaYpVZ.mjs +214 -0
  606. package/dist/bylines-ukLaYpVZ.mjs.map +1 -0
  607. package/dist/cache-m7UEkRFV.mjs +108 -0
  608. package/dist/cache-m7UEkRFV.mjs.map +1 -0
  609. package/dist/canonical-YhEQezjg.mjs +174 -0
  610. package/dist/canonical-YhEQezjg.mjs.map +1 -0
  611. package/dist/capture-triggers-kJyl_yyM.mjs +362 -0
  612. package/dist/capture-triggers-kJyl_yyM.mjs.map +1 -0
  613. package/dist/challenge-store-ppU6Uv13.mjs +51 -0
  614. package/dist/challenge-store-ppU6Uv13.mjs.map +1 -0
  615. package/dist/checksum-B2IINIlN.mjs +162 -0
  616. package/dist/checksum-B2IINIlN.mjs.map +1 -0
  617. package/dist/chrome-tags-DApCQSIk.mjs +24 -0
  618. package/dist/chrome-tags-DApCQSIk.mjs.map +1 -0
  619. package/dist/chunks-Dms7Uxbt.mjs +25 -0
  620. package/dist/chunks-Dms7Uxbt.mjs.map +1 -0
  621. package/dist/cli/index.mjs +1471 -56
  622. package/dist/cli/index.mjs.map +1 -1
  623. package/dist/client/cf-access.d.mts +1 -1
  624. package/dist/client/index.d.mts +1050 -4
  625. package/dist/client/index.d.mts.map +1 -1
  626. package/dist/client/index.mjs +193 -11
  627. package/dist/client/index.mjs.map +1 -1
  628. package/dist/collection-deletion-BIm28mo3.mjs +436 -0
  629. package/dist/collection-deletion-BIm28mo3.mjs.map +1 -0
  630. package/dist/collection-deletion-processor-Br6rxs3u.mjs +217 -0
  631. package/dist/collection-deletion-processor-Br6rxs3u.mjs.map +1 -0
  632. package/dist/collection-slugs-cache-CjGk__zp.mjs +85 -0
  633. package/dist/collection-slugs-cache-CjGk__zp.mjs.map +1 -0
  634. package/dist/comment-CrBl22OF.mjs +313 -0
  635. package/dist/comment-CrBl22OF.mjs.map +1 -0
  636. package/dist/comment-reaction-JEQ2Fpd8.mjs +85 -0
  637. package/dist/comment-reaction-JEQ2Fpd8.mjs.map +1 -0
  638. package/dist/comments-2ah9du9y.mjs +195 -0
  639. package/dist/comments-2ah9du9y.mjs.map +1 -0
  640. package/dist/comments-fHZ8ON9O.mjs +99 -0
  641. package/dist/comments-fHZ8ON9O.mjs.map +1 -0
  642. package/dist/components-CXbq7CSM.mjs +108 -0
  643. package/dist/components-CXbq7CSM.mjs.map +1 -0
  644. package/dist/config-5ii2haYu.d.mts +6528 -0
  645. package/dist/config-5ii2haYu.d.mts.map +1 -0
  646. package/dist/config-CvmjJcVw.mjs +73 -0
  647. package/dist/config-CvmjJcVw.mjs.map +1 -0
  648. package/dist/config-IhybvkIQ.mjs +242 -0
  649. package/dist/config-IhybvkIQ.mjs.map +1 -0
  650. package/dist/config-Py43JK9r.d.mts +39 -0
  651. package/dist/config-Py43JK9r.d.mts.map +1 -0
  652. package/dist/content-DFaIEDj9.mjs +2281 -0
  653. package/dist/content-DFaIEDj9.mjs.map +1 -0
  654. package/dist/content-list-query-Dra4Dalc.d.mts +26 -0
  655. package/dist/content-list-query-Dra4Dalc.d.mts.map +1 -0
  656. package/dist/content-policy-DFNw91-d.mjs +46 -0
  657. package/dist/content-policy-DFNw91-d.mjs.map +1 -0
  658. package/dist/content-repair-Q8IUrpLL.mjs +442 -0
  659. package/dist/content-repair-Q8IUrpLL.mjs.map +1 -0
  660. package/dist/context-BeGccdUX.mjs +1921 -0
  661. package/dist/context-BeGccdUX.mjs.map +1 -0
  662. package/dist/cron-7DCJwPXq.mjs +284 -0
  663. package/dist/cron-7DCJwPXq.mjs.map +1 -0
  664. package/dist/dashboard-DjrB-xxZ.mjs +151 -0
  665. package/dist/dashboard-DjrB-xxZ.mjs.map +1 -0
  666. package/dist/db/index.d.mts +3 -3
  667. package/dist/db/index.mjs +3 -3
  668. package/dist/db/libsql-migrations.d.mts +1 -1
  669. package/dist/db/libsql-migrations.mjs +6 -6
  670. package/dist/db/libsql.d.mts +1 -1
  671. package/dist/db/postgres-migrations.d.mts +1 -1
  672. package/dist/db/postgres-migrations.mjs +6 -6
  673. package/dist/db/postgres.d.mts +1 -1
  674. package/dist/db/sqlite-migrations.d.mts +1 -1
  675. package/dist/db/sqlite-migrations.mjs +6 -6
  676. package/dist/db/sqlite.d.mts +1 -1
  677. package/dist/db/sqlite.mjs +2 -2
  678. package/dist/db/sqlite.mjs.map +1 -1
  679. package/dist/default-DQ6vsviu.mjs +81 -0
  680. package/dist/default-DQ6vsviu.mjs.map +1 -0
  681. package/dist/deferred-tasks-BPxXUB4x.d.mts +9 -0
  682. package/dist/deferred-tasks-BPxXUB4x.d.mts.map +1 -0
  683. package/dist/device-flow-CRd6DXmW.mjs +466 -0
  684. package/dist/device-flow-CRd6DXmW.mjs.map +1 -0
  685. package/dist/dialect-helpers-7_IqPdh9.mjs +307 -0
  686. package/dist/dialect-helpers-7_IqPdh9.mjs.map +1 -0
  687. package/dist/digest-BarSh-pN.mjs +194 -0
  688. package/dist/digest-BarSh-pN.mjs.map +1 -0
  689. package/dist/direct-executor-BmuFJJZV.mjs +104 -0
  690. package/dist/direct-executor-BmuFJJZV.mjs.map +1 -0
  691. package/dist/dist-BNwANFJR.mjs +810 -0
  692. package/dist/dist-BNwANFJR.mjs.map +1 -0
  693. package/dist/email-console-bJn3ctqA.mjs +50 -0
  694. package/dist/email-console-bJn3ctqA.mjs.map +1 -0
  695. package/dist/email-locale-CN6WAMx0.mjs +25 -0
  696. package/dist/email-locale-CN6WAMx0.mjs.map +1 -0
  697. package/dist/emdash-runtime-DAjghyEG.mjs +4186 -0
  698. package/dist/emdash-runtime-DAjghyEG.mjs.map +1 -0
  699. package/dist/enrich-Dl3kZ-lP.mjs +194 -0
  700. package/dist/enrich-Dl3kZ-lP.mjs.map +1 -0
  701. package/dist/entry-lock-BJYdBfXb.mjs +1097 -0
  702. package/dist/entry-lock-BJYdBfXb.mjs.map +1 -0
  703. package/dist/entry-lock-DHQOxN7R.mjs +163 -0
  704. package/dist/entry-lock-DHQOxN7R.mjs.map +1 -0
  705. package/dist/entry-lock-DVhCt49A.d.mts +4368 -0
  706. package/dist/entry-lock-DVhCt49A.d.mts.map +1 -0
  707. package/dist/entry-locks-D0foLdjQ.mjs +167 -0
  708. package/dist/entry-locks-D0foLdjQ.mjs.map +1 -0
  709. package/dist/error-CfvOHP0M.mjs +90 -0
  710. package/dist/error-CfvOHP0M.mjs.map +1 -0
  711. package/dist/errors-BF0_LFhW.mjs +460 -0
  712. package/dist/errors-BF0_LFhW.mjs.map +1 -0
  713. package/dist/errors-DgE1zJGG.mjs +120 -0
  714. package/dist/errors-DgE1zJGG.mjs.map +1 -0
  715. package/dist/escape-CuaZhZvL.mjs +9 -0
  716. package/dist/escape-CuaZhZvL.mjs.map +1 -0
  717. package/dist/fence-CMDXJYc_.mjs +162 -0
  718. package/dist/fence-CMDXJYc_.mjs.map +1 -0
  719. package/dist/field-defs-cache-HIgBbqZZ.mjs +77 -0
  720. package/dist/field-defs-cache-HIgBbqZZ.mjs.map +1 -0
  721. package/dist/fts-manager-S-K0laoS.mjs +443 -0
  722. package/dist/fts-manager-S-K0laoS.mjs.map +1 -0
  723. package/dist/gc-DjKY0Ay1.mjs +75 -0
  724. package/dist/gc-DjKY0Ay1.mjs.map +1 -0
  725. package/dist/hash-SDAW6zC-.mjs +37 -0
  726. package/dist/hash-SDAW6zC-.mjs.map +1 -0
  727. package/dist/hook-result-B5bXDgS2.d.mts +31 -0
  728. package/dist/hook-result-B5bXDgS2.d.mts.map +1 -0
  729. package/dist/hreflang-D5uNnsGJ.d.mts +50 -0
  730. package/dist/hreflang-D5uNnsGJ.d.mts.map +1 -0
  731. package/dist/hreflang-DMFBL2eb.mjs +105 -0
  732. package/dist/hreflang-DMFBL2eb.mjs.map +1 -0
  733. package/dist/http-route-dispatch-BitqzwMy.mjs +339 -0
  734. package/dist/http-route-dispatch-BitqzwMy.mjs.map +1 -0
  735. package/dist/identity-IyNWwXr6.mjs +35 -0
  736. package/dist/identity-IyNWwXr6.mjs.map +1 -0
  737. package/dist/import-C3JZplWq.mjs +2020 -0
  738. package/dist/import-C3JZplWq.mjs.map +1 -0
  739. package/dist/index-D-hdtLe8.d.mts +623 -0
  740. package/dist/index-D-hdtLe8.d.mts.map +1 -0
  741. package/dist/index.d.mts +24 -24
  742. package/dist/index.mjs +105 -93
  743. package/dist/install-finalization-DfM1fj5x.mjs +58 -0
  744. package/dist/install-finalization-DfM1fj5x.mjs.map +1 -0
  745. package/dist/keys-yxLm5l35.mjs +61 -0
  746. package/dist/keys-yxLm5l35.mjs.map +1 -0
  747. package/dist/kinds-CRu_T5T5.mjs +961 -0
  748. package/dist/kinds-CRu_T5T5.mjs.map +1 -0
  749. package/dist/lifecycle-BzeGPeQ-.mjs +25 -0
  750. package/dist/lifecycle-BzeGPeQ-.mjs.map +1 -0
  751. package/dist/load-XgJiE6_3.mjs +28 -0
  752. package/dist/load-XgJiE6_3.mjs.map +1 -0
  753. package/dist/loader-BzqeR1ZN.mjs +1086 -0
  754. package/dist/loader-BzqeR1ZN.mjs.map +1 -0
  755. package/dist/loops-BQSzv5Zn.mjs +203 -0
  756. package/dist/loops-BQSzv5Zn.mjs.map +1 -0
  757. package/dist/manifest-builder-B8zR-73J.mjs +189 -0
  758. package/dist/manifest-builder-B8zR-73J.mjs.map +1 -0
  759. package/dist/manifest-schema-CY3zng_M.mjs +492 -0
  760. package/dist/manifest-schema-CY3zng_M.mjs.map +1 -0
  761. package/dist/media/image-endpoint.mjs +1 -1
  762. package/dist/media/index.d.mts +1 -1
  763. package/dist/media/index.mjs +3 -3
  764. package/dist/media/local-runtime.d.mts +14 -14
  765. package/dist/media/local-runtime.d.mts.map +1 -1
  766. package/dist/media/local-runtime.mjs +15 -16
  767. package/dist/media/local-runtime.mjs.map +1 -1
  768. package/dist/media-Pu1L6xir.mjs +408 -0
  769. package/dist/media-Pu1L6xir.mjs.map +1 -0
  770. package/dist/media-Qp5S3eH3.mjs +355 -0
  771. package/dist/media-Qp5S3eH3.mjs.map +1 -0
  772. package/dist/media-allowlist-BSoa9Vvm.mjs +44 -0
  773. package/dist/media-allowlist-BSoa9Vvm.mjs.map +1 -0
  774. package/dist/media-folders-BE0oo2eX.mjs +210 -0
  775. package/dist/media-folders-BE0oo2eX.mjs.map +1 -0
  776. package/dist/media-h7tOiDLj.mjs +221 -0
  777. package/dist/media-h7tOiDLj.mjs.map +1 -0
  778. package/dist/media-url-jArBpzIG.mjs +43 -0
  779. package/dist/media-url-jArBpzIG.mjs.map +1 -0
  780. package/dist/media-usage-My-Vi-ex.mjs +1629 -0
  781. package/dist/media-usage-My-Vi-ex.mjs.map +1 -0
  782. package/dist/media-usage-activation-HKp7zk7W.mjs +78 -0
  783. package/dist/media-usage-activation-HKp7zk7W.mjs.map +1 -0
  784. package/dist/media-usage-work-C2OZLCAd.mjs +586 -0
  785. package/dist/media-usage-work-C2OZLCAd.mjs.map +1 -0
  786. package/dist/media-usage-work-DwUNbgvS.mjs +152 -0
  787. package/dist/media-usage-work-DwUNbgvS.mjs.map +1 -0
  788. package/dist/menus-BM7BPLOb.mjs +139 -0
  789. package/dist/menus-BM7BPLOb.mjs.map +1 -0
  790. package/dist/menus-ITeAbcIF.mjs +753 -0
  791. package/dist/menus-ITeAbcIF.mjs.map +1 -0
  792. package/dist/menus-TsSGmSR4.mjs +3608 -0
  793. package/dist/menus-TsSGmSR4.mjs.map +1 -0
  794. package/dist/migrations/index.d.mts +1 -1
  795. package/dist/migrations/index.mjs +5 -5
  796. package/dist/mime-ChLqYwDk.mjs +36 -0
  797. package/dist/mime-ChLqYwDk.mjs.map +1 -0
  798. package/dist/mode-CCuKXUci.mjs +23 -0
  799. package/dist/mode-CCuKXUci.mjs.map +1 -0
  800. package/dist/node-sqlite-compat-CONMsl-x.mjs +46 -0
  801. package/dist/node-sqlite-compat-CONMsl-x.mjs.map +1 -0
  802. package/dist/normalize-CO2P8-iE.mjs +191 -0
  803. package/dist/normalize-CO2P8-iE.mjs.map +1 -0
  804. package/dist/oauth-authorization-DlMIL5_h.mjs +274 -0
  805. package/dist/oauth-authorization-DlMIL5_h.mjs.map +1 -0
  806. package/dist/oauth-clients-Djq9r_KP.mjs +266 -0
  807. package/dist/oauth-clients-Djq9r_KP.mjs.map +1 -0
  808. package/dist/oauth-state-store-BbjnZXNC.mjs +50 -0
  809. package/dist/oauth-state-store-BbjnZXNC.mjs.map +1 -0
  810. package/dist/oauth-user-lookup-vue9a64A.mjs +26 -0
  811. package/dist/oauth-user-lookup-vue9a64A.mjs.map +1 -0
  812. package/dist/object-cache/memory.d.mts +1 -1
  813. package/dist/object-cache-CqWNY5uP.mjs +582 -0
  814. package/dist/object-cache-CqWNY5uP.mjs.map +1 -0
  815. package/dist/options-DhrI7eMv.mjs +208 -0
  816. package/dist/options-DhrI7eMv.mjs.map +1 -0
  817. package/dist/options-SQCHQCPH.d.mts +81 -0
  818. package/dist/options-SQCHQCPH.d.mts.map +1 -0
  819. package/dist/page/index.d.mts +2 -2
  820. package/dist/page/index.mjs +9 -9
  821. package/dist/parse-CVgO-Qai.d.mts +168 -0
  822. package/dist/parse-CVgO-Qai.d.mts.map +1 -0
  823. package/dist/parse-DY6OD1j_.mjs +81 -0
  824. package/dist/parse-DY6OD1j_.mjs.map +1 -0
  825. package/dist/passkey-config-X_H8128a.mjs +46 -0
  826. package/dist/passkey-config-X_H8128a.mjs.map +1 -0
  827. package/dist/paths-JxokKIbr.mjs +77 -0
  828. package/dist/paths-JxokKIbr.mjs.map +1 -0
  829. package/dist/patterns-BhAvqO0S.mjs +145 -0
  830. package/dist/patterns-BhAvqO0S.mjs.map +1 -0
  831. package/dist/placeholder-MSEd8gty.d.mts +306 -0
  832. package/dist/placeholder-MSEd8gty.d.mts.map +1 -0
  833. package/dist/plan-xjcWrAah.mjs +135 -0
  834. package/dist/plan-xjcWrAah.mjs.map +1 -0
  835. package/dist/plugin-test-runtime.d.mts +38 -15
  836. package/dist/plugin-test-runtime.d.mts.map +1 -1
  837. package/dist/plugin-test-runtime.mjs +112 -99
  838. package/dist/plugin-types.d.mts +2 -2
  839. package/dist/plugin-utils.d.mts +12 -12
  840. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  841. package/dist/plugins/adapt-sandbox-entry.mjs +3 -3
  842. package/dist/plugins/host.d.mts +5 -5
  843. package/dist/plugins/host.mjs +45 -37
  844. package/dist/plugins-DUXUt8B9.mjs +277 -0
  845. package/dist/plugins-DUXUt8B9.mjs.map +1 -0
  846. package/dist/policy-CUvwAARc.mjs +45 -0
  847. package/dist/policy-CUvwAARc.mjs.map +1 -0
  848. package/dist/portable-text-5O_ZGUjB.mjs +307 -0
  849. package/dist/portable-text-5O_ZGUjB.mjs.map +1 -0
  850. package/dist/preview-CIUcPYr6.mjs +107 -0
  851. package/dist/preview-CIUcPYr6.mjs.map +1 -0
  852. package/dist/protocol-B97DZaFr.d.mts +61 -0
  853. package/dist/protocol-B97DZaFr.d.mts.map +1 -0
  854. package/dist/public-submission-BFBUrqst.mjs +250 -0
  855. package/dist/public-submission-BFBUrqst.mjs.map +1 -0
  856. package/dist/public-url-Bn7U0D7-.mjs +101 -0
  857. package/dist/public-url-Bn7U0D7-.mjs.map +1 -0
  858. package/dist/query-B48peoRT.mjs +890 -0
  859. package/dist/query-B48peoRT.mjs.map +1 -0
  860. package/dist/query-C4IH0uhR.mjs +41 -0
  861. package/dist/query-C4IH0uhR.mjs.map +1 -0
  862. package/dist/rate-limit-BZ6nybgc.mjs +120 -0
  863. package/dist/rate-limit-BZ6nybgc.mjs.map +1 -0
  864. package/dist/receipt-B4wJj5Jq.mjs +43 -0
  865. package/dist/receipt-B4wJj5Jq.mjs.map +1 -0
  866. package/dist/redirect-Cd1E7VUt.mjs +17 -0
  867. package/dist/redirect-Cd1E7VUt.mjs.map +1 -0
  868. package/dist/redirect-iJf5fltD.mjs +415 -0
  869. package/dist/redirect-iJf5fltD.mjs.map +1 -0
  870. package/dist/redirects-CYu1u1aK.mjs +446 -0
  871. package/dist/redirects-CYu1u1aK.mjs.map +1 -0
  872. package/dist/redirects-Cv9apQKj.mjs +148 -0
  873. package/dist/redirects-Cv9apQKj.mjs.map +1 -0
  874. package/dist/registry/testing.mjs +3 -3
  875. package/dist/relation-M4NUCb0b.mjs +334 -0
  876. package/dist/relation-M4NUCb0b.mjs.map +1 -0
  877. package/dist/relations-CCif47Oq.mjs +403 -0
  878. package/dist/relations-CCif47Oq.mjs.map +1 -0
  879. package/dist/relations-CK9CYUyr.mjs +310 -0
  880. package/dist/relations-CK9CYUyr.mjs.map +1 -0
  881. package/dist/request-cache-DzLYKm_x.mjs +104 -0
  882. package/dist/request-cache-DzLYKm_x.mjs.map +1 -0
  883. package/dist/request-context.d.mts +1 -1
  884. package/dist/request-meta-sZXt3sRo.mjs +141 -0
  885. package/dist/request-meta-sZXt3sRo.mjs.map +1 -0
  886. package/dist/resolve-2WbQsCvT.mjs +199 -0
  887. package/dist/resolve-2WbQsCvT.mjs.map +1 -0
  888. package/dist/route-wire--1hLuACz.mjs +197 -0
  889. package/dist/route-wire--1hLuACz.mjs.map +1 -0
  890. package/dist/routes-CUsM40Cc.mjs +272 -0
  891. package/dist/routes-CUsM40Cc.mjs.map +1 -0
  892. package/dist/runner-1y4J9fJB.mjs +5742 -0
  893. package/dist/runner-1y4J9fJB.mjs.map +1 -0
  894. package/dist/runner-D5_LzKXI.d.mts +68 -0
  895. package/dist/runner-D5_LzKXI.d.mts.map +1 -0
  896. package/dist/runtime.d.mts +13 -13
  897. package/dist/runtime.mjs +4 -4
  898. package/dist/schema-BABiRdsH.mjs +13 -0
  899. package/dist/schema-BABiRdsH.mjs.map +1 -0
  900. package/dist/schema-Du3MzCG0.mjs +446 -0
  901. package/dist/schema-Du3MzCG0.mjs.map +1 -0
  902. package/dist/scopes-Dbk-ElhT.mjs +34 -0
  903. package/dist/scopes-Dbk-ElhT.mjs.map +1 -0
  904. package/dist/search-Bt1PL1jf.mjs +448 -0
  905. package/dist/search-Bt1PL1jf.mjs.map +1 -0
  906. package/dist/secrets-CIi0nFiR.mjs +341 -0
  907. package/dist/secrets-CIi0nFiR.mjs.map +1 -0
  908. package/dist/sections-Ddptx_o9.mjs +346 -0
  909. package/dist/sections-Ddptx_o9.mjs.map +1 -0
  910. package/dist/seed/index.d.mts +2 -2
  911. package/dist/seed/index.mjs +35 -30
  912. package/dist/seo/index.d.mts +3 -3
  913. package/dist/seo/index.mjs +25 -21
  914. package/dist/seo/index.mjs.map +1 -1
  915. package/dist/seo-CZT2oLtT.mjs +114 -0
  916. package/dist/seo-CZT2oLtT.mjs.map +1 -0
  917. package/dist/seo-D5w3-Azy.mjs +133 -0
  918. package/dist/seo-D5w3-Azy.mjs.map +1 -0
  919. package/dist/service-DuykXPyW.mjs +150 -0
  920. package/dist/service-DuykXPyW.mjs.map +1 -0
  921. package/dist/session-user-BhaVp8w0.mjs +51 -0
  922. package/dist/session-user-BhaVp8w0.mjs.map +1 -0
  923. package/dist/settings-2xNYr90o.mjs +51 -0
  924. package/dist/settings-2xNYr90o.mjs.map +1 -0
  925. package/dist/settings-CgjRWGW9.mjs +439 -0
  926. package/dist/settings-CgjRWGW9.mjs.map +1 -0
  927. package/dist/settings-DYidIB26.mjs +61 -0
  928. package/dist/settings-DYidIB26.mjs.map +1 -0
  929. package/dist/setup-complete-bOogcHWG.mjs +26 -0
  930. package/dist/setup-complete-bOogcHWG.mjs.map +1 -0
  931. package/dist/setup-nonce-0EGuKM4s.mjs +25 -0
  932. package/dist/setup-nonce-0EGuKM4s.mjs.map +1 -0
  933. package/dist/site-settings-DOgRUoFX.mjs +50 -0
  934. package/dist/site-settings-DOgRUoFX.mjs.map +1 -0
  935. package/dist/site-url-BU_bbxwj.mjs +16 -0
  936. package/dist/site-url-BU_bbxwj.mjs.map +1 -0
  937. package/dist/snapshot-CugwUqKQ.mjs +237 -0
  938. package/dist/snapshot-CugwUqKQ.mjs.map +1 -0
  939. package/dist/ssrf-CJUnJymJ.mjs +406 -0
  940. package/dist/ssrf-CJUnJymJ.mjs.map +1 -0
  941. package/dist/stage-DgrBz_du.mjs +662 -0
  942. package/dist/stage-DgrBz_du.mjs.map +1 -0
  943. package/dist/state-DDiPySSG.mjs +153 -0
  944. package/dist/state-DDiPySSG.mjs.map +1 -0
  945. package/dist/status-DZKIG4a9.mjs +30 -0
  946. package/dist/status-DZKIG4a9.mjs.map +1 -0
  947. package/dist/storage/local.d.mts +1 -1
  948. package/dist/storage/local.mjs +1 -1
  949. package/dist/storage/s3.d.mts +1 -1
  950. package/dist/storage/s3.mjs +1 -1
  951. package/dist/storage-query-Bdv7A62k.d.mts +1576 -0
  952. package/dist/storage-query-Bdv7A62k.d.mts.map +1 -0
  953. package/dist/tar-_1AgTYFu.mjs +449 -0
  954. package/dist/tar-_1AgTYFu.mjs.map +1 -0
  955. package/dist/target-_7pn2Gbg.mjs +27 -0
  956. package/dist/target-_7pn2Gbg.mjs.map +1 -0
  957. package/dist/taxonomies-C1IwNe8Q.mjs +697 -0
  958. package/dist/taxonomies-C1IwNe8Q.mjs.map +1 -0
  959. package/dist/taxonomies-C_XMoRcX.mjs +939 -0
  960. package/dist/taxonomies-C_XMoRcX.mjs.map +1 -0
  961. package/dist/taxonomy-C3Fu1YeH.mjs +525 -0
  962. package/dist/taxonomy-C3Fu1YeH.mjs.map +1 -0
  963. package/dist/tokens-u78jETkX.mjs +171 -0
  964. package/dist/tokens-u78jETkX.mjs.map +1 -0
  965. package/dist/transfer-BhUCrgDc.mjs +8675 -0
  966. package/dist/transfer-BhUCrgDc.mjs.map +1 -0
  967. package/dist/transfer-DIGvR9Af.mjs +166 -0
  968. package/dist/transfer-DIGvR9Af.mjs.map +1 -0
  969. package/dist/transfer-download-Pml7RMio.mjs +33 -0
  970. package/dist/transfer-download-Pml7RMio.mjs.map +1 -0
  971. package/dist/transformations-9gfpwY65.mjs +196 -0
  972. package/dist/transformations-9gfpwY65.mjs.map +1 -0
  973. package/dist/transport-BIfH7_hx.d.mts +42 -0
  974. package/dist/transport-BIfH7_hx.d.mts.map +1 -0
  975. package/dist/transport-DKWIq53q.mjs +136 -0
  976. package/dist/transport-DKWIq53q.mjs.map +1 -0
  977. package/dist/trusted-proxy-tKiVtyTD.mjs +51 -0
  978. package/dist/trusted-proxy-tKiVtyTD.mjs.map +1 -0
  979. package/dist/turnstile-DpsoyOfg.mjs +53 -0
  980. package/dist/turnstile-DpsoyOfg.mjs.map +1 -0
  981. package/dist/types-B4sUC2p1.d.mts +198 -0
  982. package/dist/types-B4sUC2p1.d.mts.map +1 -0
  983. package/dist/types-B7Lmsh1E.d.mts +887 -0
  984. package/dist/types-B7Lmsh1E.d.mts.map +1 -0
  985. package/dist/types-BZakh7Ym.mjs +22 -0
  986. package/dist/types-BZakh7Ym.mjs.map +1 -0
  987. package/dist/types-B_CppEmv.d.mts +264 -0
  988. package/dist/types-B_CppEmv.d.mts.map +1 -0
  989. package/dist/types-BcrBrE6-.mjs +159 -0
  990. package/dist/types-BcrBrE6-.mjs.map +1 -0
  991. package/dist/types-CAZgq9fO.d.mts +124 -0
  992. package/dist/types-CAZgq9fO.d.mts.map +1 -0
  993. package/dist/types-Cd-O03VG.d.mts +363 -0
  994. package/dist/types-Cd-O03VG.d.mts.map +1 -0
  995. package/dist/types-Cr-Kg-3D.d.mts +1641 -0
  996. package/dist/types-Cr-Kg-3D.d.mts.map +1 -0
  997. package/dist/types-D2fvWd1i.d.mts +359 -0
  998. package/dist/types-D2fvWd1i.d.mts.map +1 -0
  999. package/dist/types-D7HUsguf.mjs +77 -0
  1000. package/dist/types-D7HUsguf.mjs.map +1 -0
  1001. package/dist/types-DA1Te3Oy.d.mts +198 -0
  1002. package/dist/types-DA1Te3Oy.d.mts.map +1 -0
  1003. package/dist/types-DhV6Q5bP.mjs +18 -0
  1004. package/dist/types-DhV6Q5bP.mjs.map +1 -0
  1005. package/dist/types-DnnVSl6Y.d.mts +85 -0
  1006. package/dist/types-DnnVSl6Y.d.mts.map +1 -0
  1007. package/dist/types-VT4-BugW.mjs +16 -0
  1008. package/dist/types-VT4-BugW.mjs.map +1 -0
  1009. package/dist/upload-attempts-B68ZGNu9.mjs +32 -0
  1010. package/dist/upload-attempts-B68ZGNu9.mjs.map +1 -0
  1011. package/dist/url-pattern-CCeZMGOh.mjs +33 -0
  1012. package/dist/url-pattern-CCeZMGOh.mjs.map +1 -0
  1013. package/dist/user-DDSL-sGw.mjs +171 -0
  1014. package/dist/user-DDSL-sGw.mjs.map +1 -0
  1015. package/dist/utils-DdhmO9w9.mjs +439 -0
  1016. package/dist/utils-DdhmO9w9.mjs.map +1 -0
  1017. package/dist/validate-CHosPEhs.mjs +453 -0
  1018. package/dist/validate-CHosPEhs.mjs.map +1 -0
  1019. package/dist/validate-CM79QXYE.d.mts +432 -0
  1020. package/dist/validate-CM79QXYE.d.mts.map +1 -0
  1021. package/dist/validation-BFecQczG.mjs +218 -0
  1022. package/dist/validation-BFecQczG.mjs.map +1 -0
  1023. package/dist/version-BRZXVifl.mjs +9 -0
  1024. package/dist/version-BRZXVifl.mjs.map +1 -0
  1025. package/dist/version-DUQDHgrf.mjs +7 -0
  1026. package/dist/version-DUQDHgrf.mjs.map +1 -0
  1027. package/dist/widgets-WdV72brA.mjs +126 -0
  1028. package/dist/widgets-WdV72brA.mjs.map +1 -0
  1029. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts +34 -0
  1030. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts.map +1 -0
  1031. package/dist/wxr-taxonomies-DP6ESgMN.mjs +372 -0
  1032. package/dist/wxr-taxonomies-DP6ESgMN.mjs.map +1 -0
  1033. package/dist/zod-generator-D6uE4WiS.mjs +389 -0
  1034. package/dist/zod-generator-D6uE4WiS.mjs.map +1 -0
  1035. package/package.json +6 -5
  1036. package/src/api/authorize.ts +17 -0
  1037. package/src/api/email-locale.ts +24 -0
  1038. package/src/api/errors.ts +16 -0
  1039. package/src/api/handlers/api-tokens.ts +18 -3
  1040. package/src/api/handlers/block-types.ts +129 -0
  1041. package/src/api/handlers/bulk-tag.ts +309 -0
  1042. package/src/api/handlers/comments.ts +0 -28
  1043. package/src/api/handlers/index.ts +10 -0
  1044. package/src/api/handlers/manifest.ts +8 -1
  1045. package/src/api/handlers/marketplace.ts +22 -16
  1046. package/src/api/handlers/media-usage.ts +31 -12
  1047. package/src/api/handlers/media.ts +19 -14
  1048. package/src/api/handlers/schema.ts +33 -8
  1049. package/src/api/handlers/settings.ts +2 -2
  1050. package/src/api/handlers/snapshot.ts +4 -0
  1051. package/src/api/handlers/taxonomies.ts +132 -83
  1052. package/src/api/handlers/transfer.ts +1347 -0
  1053. package/src/api/handlers/validate-media-fields.ts +124 -12
  1054. package/src/api/media-usage-write-fence.ts +5 -26
  1055. package/src/api/openapi/document.ts +614 -5
  1056. package/src/api/schemas/auth.ts +7 -1
  1057. package/src/api/schemas/common.ts +5 -0
  1058. package/src/api/schemas/content.ts +20 -1
  1059. package/src/api/schemas/media-usage.ts +11 -0
  1060. package/src/api/schemas/menus.ts +1 -1
  1061. package/src/api/schemas/schema.ts +117 -0
  1062. package/src/api/schemas/settings.ts +3 -3
  1063. package/src/api/schemas/taxonomies.ts +18 -0
  1064. package/src/api/schemas/transfer.ts +249 -0
  1065. package/src/api/transfer-download.ts +36 -0
  1066. package/src/api/types.ts +3 -0
  1067. package/src/astro/integration/routes.ts +31 -0
  1068. package/src/astro/integration/vite-config.ts +26 -0
  1069. package/src/astro/middleware/auth.ts +30 -7
  1070. package/src/astro/middleware/media-usage-write-fence.ts +106 -11
  1071. package/src/astro/middleware/request-context.ts +16 -2
  1072. package/src/astro/middleware.ts +38 -18
  1073. package/src/astro/routes/admin.astro +3 -1
  1074. package/src/astro/routes/api/admin/hooks/exclusive/index.ts +1 -5
  1075. package/src/astro/routes/api/admin/plugins/[id]/disable.ts +4 -3
  1076. package/src/astro/routes/api/admin/plugins/[id]/enable.ts +4 -3
  1077. package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +4 -3
  1078. package/src/astro/routes/api/admin/plugins/[id]/update.ts +4 -3
  1079. package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +4 -3
  1080. package/src/astro/routes/api/admin/plugins/registry/[id]/uninstall.ts +4 -3
  1081. package/src/astro/routes/api/admin/plugins/registry/[id]/update.ts +3 -3
  1082. package/src/astro/routes/api/admin/plugins/registry/install.ts +3 -3
  1083. package/src/astro/routes/api/admin/plugins/registry/publisher-handle.ts +59 -0
  1084. package/src/astro/routes/api/admin/transfer/[...path].ts +143 -0
  1085. package/src/astro/routes/api/admin/transfer/approvals/[id]/approve.ts +35 -0
  1086. package/src/astro/routes/api/admin/transfer/approvals/[id]/deny.ts +35 -0
  1087. package/src/astro/routes/api/admin/transfer/approvals/index.ts +33 -0
  1088. package/src/astro/routes/api/admin/transfer/capabilities.ts +36 -0
  1089. package/src/astro/routes/api/admin/transfer/exports/[id]/advance.ts +34 -0
  1090. package/src/astro/routes/api/admin/transfer/exports/[id]/archive.ts +35 -0
  1091. package/src/astro/routes/api/admin/transfer/exports/[id]/files/[...path].ts +40 -0
  1092. package/src/astro/routes/api/admin/transfer/exports/[id]/index.ts +25 -0
  1093. package/src/astro/routes/api/admin/transfer/exports/[id]/manifest.ts +38 -0
  1094. package/src/astro/routes/api/admin/transfer/exports/index.ts +64 -0
  1095. package/src/astro/routes/api/admin/transfer/imports/[id]/abandon.ts +28 -0
  1096. package/src/astro/routes/api/admin/transfer/imports/[id]/advance.ts +37 -0
  1097. package/src/astro/routes/api/admin/transfer/imports/[id]/analyze.ts +51 -0
  1098. package/src/astro/routes/api/admin/transfer/imports/[id]/cancel.ts +27 -0
  1099. package/src/astro/routes/api/admin/transfer/imports/[id]/execute.ts +48 -0
  1100. package/src/astro/routes/api/admin/transfer/imports/[id]/files/[...path].ts +54 -0
  1101. package/src/astro/routes/api/admin/transfer/imports/[id]/index.ts +25 -0
  1102. package/src/astro/routes/api/admin/transfer/imports/[id]/missing.ts +34 -0
  1103. package/src/astro/routes/api/admin/transfer/imports/[id]/plan.ts +29 -0
  1104. package/src/astro/routes/api/admin/transfer/imports/[id]/receipt.ts +25 -0
  1105. package/src/astro/routes/api/admin/transfer/imports/index.ts +85 -0
  1106. package/src/astro/routes/api/admin/users/[id]/send-recovery.ts +9 -1
  1107. package/src/astro/routes/api/auth/invite/index.ts +15 -1
  1108. package/src/astro/routes/api/auth/magic-link/send.ts +9 -1
  1109. package/src/astro/routes/api/auth/magic-link/verify.ts +37 -39
  1110. package/src/astro/routes/api/auth/passkey/options.ts +2 -21
  1111. package/src/astro/routes/api/content/[collection]/[id]/preview-url.ts +64 -13
  1112. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +16 -1
  1113. package/src/astro/routes/api/import/wordpress/rewrite-url-helpers.ts +11 -4
  1114. package/src/astro/routes/api/mcp.ts +1 -0
  1115. package/src/astro/routes/api/media/[id].ts +5 -15
  1116. package/src/astro/routes/api/media/file/[...key].ts +30 -5
  1117. package/src/astro/routes/api/oauth/authorize.ts +4 -0
  1118. package/src/astro/routes/api/schema/block-types/[slug]/index.ts +29 -0
  1119. package/src/astro/routes/api/schema/block-types/[slug]/versions/[version]/activate.ts +31 -0
  1120. package/src/astro/routes/api/schema/block-types/index.ts +29 -0
  1121. package/src/astro/routes/api/taxonomies/bulk-tag.ts +29 -0
  1122. package/src/astro/routes/api/typegen.ts +8 -4
  1123. package/src/astro/types.ts +4 -0
  1124. package/src/auth/api-tokens.ts +1 -0
  1125. package/src/auth/rate-limit.ts +2 -1
  1126. package/src/auth/scopes.ts +11 -0
  1127. package/src/cleanup.ts +14 -0
  1128. package/src/cli/client-factory.ts +6 -1
  1129. package/src/cli/commands/export-seed.ts +41 -15
  1130. package/src/cli/commands/seed.ts +6 -2
  1131. package/src/cli/commands/site.ts +556 -0
  1132. package/src/cli/index.ts +2 -0
  1133. package/src/cli/site/archive.ts +273 -0
  1134. package/src/cli/site/export.ts +311 -0
  1135. package/src/cli/site/import.ts +815 -0
  1136. package/src/cli/site/shared.ts +241 -0
  1137. package/src/client/index.ts +414 -11
  1138. package/src/client/portable-text.ts +41 -0
  1139. package/src/comments/public-submission.ts +19 -11
  1140. package/src/components/Blocks.astro +46 -0
  1141. package/src/components/Gallery.astro +2 -1
  1142. package/src/components/Image.astro +51 -6
  1143. package/src/components/InlinePortableTextEditor.tsx +28 -18
  1144. package/src/components/blocks.ts +44 -0
  1145. package/src/components/index.ts +14 -4
  1146. package/src/content/converters/gallery.ts +54 -16
  1147. package/src/content/converters/image-link.ts +27 -0
  1148. package/src/content/converters/index.ts +1 -0
  1149. package/src/content/converters/portable-text-to-prosemirror.ts +10 -7
  1150. package/src/content/converters/prosemirror-to-portable-text.ts +14 -0
  1151. package/src/content/converters/types.ts +17 -0
  1152. package/src/database/content-datetime.ts +19 -2
  1153. package/src/database/migrations/035_bounded_404_log.ts +28 -39
  1154. package/src/database/migrations/081_redirect_write_guards.ts +7 -4
  1155. package/src/database/migrations/083_block_types.ts +58 -0
  1156. package/src/database/migrations/084_site_transfer.ts +264 -0
  1157. package/src/database/migrations/085_taxonomy_def_groups.ts +155 -0
  1158. package/src/database/migrations/runner.ts +6 -0
  1159. package/src/database/repositories/audit.ts +10 -1
  1160. package/src/database/repositories/byline.ts +4 -1
  1161. package/src/database/repositories/content.ts +83 -11
  1162. package/src/database/repositories/media-usage.ts +43 -13
  1163. package/src/database/repositories/media.ts +32 -1
  1164. package/src/database/repositories/options.ts +12 -0
  1165. package/src/database/repositories/revision.ts +6 -3
  1166. package/src/database/repositories/taxonomy-def.ts +126 -0
  1167. package/src/database/repositories/taxonomy.ts +65 -26
  1168. package/src/database/types.ts +133 -1
  1169. package/src/db/sqlite.ts +1 -1
  1170. package/src/emdash-runtime.ts +287 -51
  1171. package/src/import/utils.ts +8 -1
  1172. package/src/import/wxr-taxonomies.ts +11 -67
  1173. package/src/index.ts +26 -1
  1174. package/src/loader.ts +9 -5
  1175. package/src/mcp/server.ts +521 -29
  1176. package/src/mcp/transfer.ts +569 -0
  1177. package/src/media/local-runtime.ts +5 -18
  1178. package/src/media/upload-attempts.ts +5 -0
  1179. package/src/media/url.ts +15 -0
  1180. package/src/media/usage/content-fields.ts +69 -5
  1181. package/src/media/usage/content-refresh.ts +13 -66
  1182. package/src/media/usage/content-repair.ts +10 -2
  1183. package/src/media/usage/extractor.ts +74 -3
  1184. package/src/media/usage/projection-fingerprint.ts +14 -0
  1185. package/src/media/usage/schema-invalidation.ts +72 -0
  1186. package/src/media/usage/site-settings.ts +52 -0
  1187. package/src/media/usage/types.ts +2 -0
  1188. package/src/object-cache/index.ts +69 -4
  1189. package/src/plugin-test-runtime.ts +1 -0
  1190. package/src/plugins/context.ts +104 -56
  1191. package/src/plugins/cron.ts +6 -4
  1192. package/src/plugins/define-plugin.ts +11 -1
  1193. package/src/plugins/email-console.ts +2 -0
  1194. package/src/plugins/email.ts +16 -0
  1195. package/src/plugins/hooks.ts +33 -9
  1196. package/src/plugins/manifest-schema.ts +1 -0
  1197. package/src/plugins/route-error.ts +57 -0
  1198. package/src/plugins/routes.ts +5 -60
  1199. package/src/plugins/sandbox/types.ts +22 -2
  1200. package/src/plugins/types.ts +4 -0
  1201. package/src/registry/artifact-fetch.ts +17 -4
  1202. package/src/registry/publisher-handle.ts +273 -0
  1203. package/src/schema/block-type-contract.ts +478 -0
  1204. package/src/schema/block-type-registry.ts +689 -0
  1205. package/src/schema/block-types.ts +110 -0
  1206. package/src/schema/block-values.ts +293 -0
  1207. package/src/schema/byline-registry.ts +1 -1
  1208. package/src/schema/index.ts +28 -0
  1209. package/src/schema/registry.ts +462 -12
  1210. package/src/schema/types.ts +12 -1
  1211. package/src/schema/zod-generator.ts +92 -9
  1212. package/src/search/fts-manager.ts +40 -0
  1213. package/src/seed/apply.ts +173 -49
  1214. package/src/seed/types.ts +23 -3
  1215. package/src/seed/validate.ts +131 -7
  1216. package/src/settings/index.ts +32 -9
  1217. package/src/settings/types.ts +15 -0
  1218. package/src/taxonomies/index.ts +72 -83
  1219. package/src/transfer/analyze/index.ts +45 -0
  1220. package/src/transfer/analyze/issues.ts +55 -0
  1221. package/src/transfer/analyze/plan.ts +327 -0
  1222. package/src/transfer/analyze/read.ts +134 -0
  1223. package/src/transfer/analyze/step.ts +551 -0
  1224. package/src/transfer/analyze/target.ts +269 -0
  1225. package/src/transfer/analyze/unique-keys.ts +228 -0
  1226. package/src/transfer/analyze/validate.ts +1412 -0
  1227. package/src/transfer/analyze/values.ts +227 -0
  1228. package/src/transfer/analyze/write-rules.ts +196 -0
  1229. package/src/transfer/audit.ts +38 -0
  1230. package/src/transfer/auth.ts +25 -0
  1231. package/src/transfer/container/tar.ts +242 -0
  1232. package/src/transfer/domain.ts +248 -0
  1233. package/src/transfer/errors.ts +134 -0
  1234. package/src/transfer/export/exporter.ts +1067 -0
  1235. package/src/transfer/export/fence.ts +84 -0
  1236. package/src/transfer/export/media.ts +165 -0
  1237. package/src/transfer/export/readers.ts +1164 -0
  1238. package/src/transfer/export/verify.ts +677 -0
  1239. package/src/transfer/fence.ts +193 -0
  1240. package/src/transfer/format/canonical.ts +151 -0
  1241. package/src/transfer/format/column-codec.ts +275 -0
  1242. package/src/transfer/format/columns.ts +707 -0
  1243. package/src/transfer/format/digest.ts +287 -0
  1244. package/src/transfer/format/features.ts +91 -0
  1245. package/src/transfer/format/issues.ts +39 -0
  1246. package/src/transfer/format/kinds.ts +936 -0
  1247. package/src/transfer/format/limits.ts +87 -0
  1248. package/src/transfer/format/manifest.ts +297 -0
  1249. package/src/transfer/format/media-refs.ts +716 -0
  1250. package/src/transfer/format/paths.ts +73 -0
  1251. package/src/transfer/format/plan.ts +162 -0
  1252. package/src/transfer/format/receipt.ts +43 -0
  1253. package/src/transfer/format/records.ts +127 -0
  1254. package/src/transfer/format/settings.ts +94 -0
  1255. package/src/transfer/format/transformations.ts +260 -0
  1256. package/src/transfer/format/version.ts +9 -0
  1257. package/src/transfer/gc.ts +103 -0
  1258. package/src/transfer/import/advance.ts +522 -0
  1259. package/src/transfer/import/context.ts +281 -0
  1260. package/src/transfer/import/entries.ts +186 -0
  1261. package/src/transfer/import/ids.ts +40 -0
  1262. package/src/transfer/import/index.ts +15 -0
  1263. package/src/transfer/import/media.ts +141 -0
  1264. package/src/transfer/import/rebuild.ts +300 -0
  1265. package/src/transfer/import/rows.ts +114 -0
  1266. package/src/transfer/import/scaffold.ts +221 -0
  1267. package/src/transfer/import/sql.ts +134 -0
  1268. package/src/transfer/import/stages.ts +329 -0
  1269. package/src/transfer/import/writers.ts +370 -0
  1270. package/src/transfer/index.ts +472 -0
  1271. package/src/transfer/ops/approvals.ts +359 -0
  1272. package/src/transfer/ops/budget.ts +82 -0
  1273. package/src/transfer/ops/collation.ts +21 -0
  1274. package/src/transfer/ops/identity-map.ts +142 -0
  1275. package/src/transfer/ops/media-blobs.ts +135 -0
  1276. package/src/transfer/ops/operations.ts +842 -0
  1277. package/src/transfer/ops/package-index.ts +159 -0
  1278. package/src/transfer/ops/staged-files.ts +231 -0
  1279. package/src/transfer/ops/states.ts +265 -0
  1280. package/src/transfer/ops/time.ts +54 -0
  1281. package/src/transfer/schema-importer.ts +34 -0
  1282. package/src/transfer/site-id.ts +30 -0
  1283. package/src/transfer/staging/assembler.ts +217 -0
  1284. package/src/transfer/staging/keys.ts +94 -0
  1285. package/src/transfer/staging/package.ts +229 -0
  1286. package/src/transfer/staging/stage.ts +231 -0
  1287. package/src/ui.ts +19 -0
  1288. package/src/visual-editing/toolbar.ts +125 -37
  1289. package/dist/action-token-On1sot_c.mjs +0 -26
  1290. package/dist/action-token-On1sot_c.mjs.map +0 -1
  1291. package/dist/activation-CaMfdBt1.mjs +0 -382
  1292. package/dist/activation-CaMfdBt1.mjs.map +0 -1
  1293. package/dist/adapters-Cq10K4_c.d.mts +0 -171
  1294. package/dist/adapters-Cq10K4_c.d.mts.map +0 -1
  1295. package/dist/allowed-origins-1Sa-2wZK.mjs +0 -116
  1296. package/dist/allowed-origins-1Sa-2wZK.mjs.map +0 -1
  1297. package/dist/api-DmjKxPCY.mjs +0 -4831
  1298. package/dist/api-DmjKxPCY.mjs.map +0 -1
  1299. package/dist/api-tokens-BIXItFKV.mjs +0 -163
  1300. package/dist/api-tokens-BIXItFKV.mjs.map +0 -1
  1301. package/dist/api-tokens-DS1VzN7_.mjs +0 -3
  1302. package/dist/apply-drpfmqrR.mjs +0 -1005
  1303. package/dist/apply-drpfmqrR.mjs.map +0 -1
  1304. package/dist/artifact-fetch-COiMhVgk.mjs +0 -813
  1305. package/dist/artifact-fetch-COiMhVgk.mjs.map +0 -1
  1306. package/dist/authoritative-records-DbqshfKD.mjs +0 -5172
  1307. package/dist/authoritative-records-DbqshfKD.mjs.map +0 -1
  1308. package/dist/authorize-BXpfMpp0.mjs +0 -40
  1309. package/dist/authorize-BXpfMpp0.mjs.map +0 -1
  1310. package/dist/backup-BsPQdwnS.mjs +0 -246
  1311. package/dist/backup-BsPQdwnS.mjs.map +0 -1
  1312. package/dist/byline-Doh-wt99.mjs +0 -906
  1313. package/dist/byline-Doh-wt99.mjs.map +0 -1
  1314. package/dist/byline-fields-CsrdvaLV.mjs +0 -123
  1315. package/dist/byline-fields-CsrdvaLV.mjs.map +0 -1
  1316. package/dist/byline-registry-D6lWzXk6.mjs +0 -406
  1317. package/dist/byline-registry-D6lWzXk6.mjs.map +0 -1
  1318. package/dist/bylines-Cop0hkoy.mjs +0 -214
  1319. package/dist/bylines-Cop0hkoy.mjs.map +0 -1
  1320. package/dist/bylines-kpBzHPr8.mjs +0 -232
  1321. package/dist/bylines-kpBzHPr8.mjs.map +0 -1
  1322. package/dist/cache-B0pOlXdM.mjs +0 -108
  1323. package/dist/cache-B0pOlXdM.mjs.map +0 -1
  1324. package/dist/capture-triggers-gxQxnxrJ.mjs +0 -362
  1325. package/dist/capture-triggers-gxQxnxrJ.mjs.map +0 -1
  1326. package/dist/challenge-store-CkRdSdd8.mjs +0 -51
  1327. package/dist/challenge-store-CkRdSdd8.mjs.map +0 -1
  1328. package/dist/checksum-Bsi2D9M1.mjs +0 -162
  1329. package/dist/checksum-Bsi2D9M1.mjs.map +0 -1
  1330. package/dist/chrome-tags-D7LGB91U.mjs +0 -24
  1331. package/dist/chrome-tags-D7LGB91U.mjs.map +0 -1
  1332. package/dist/chunks-BmWyou79.mjs +0 -25
  1333. package/dist/chunks-BmWyou79.mjs.map +0 -1
  1334. package/dist/collection-deletion-C3Xixmkx.mjs +0 -436
  1335. package/dist/collection-deletion-C3Xixmkx.mjs.map +0 -1
  1336. package/dist/collection-slugs-cache-D9auiKmI.mjs +0 -85
  1337. package/dist/collection-slugs-cache-D9auiKmI.mjs.map +0 -1
  1338. package/dist/comment-DcT8qdPK.mjs +0 -313
  1339. package/dist/comment-DcT8qdPK.mjs.map +0 -1
  1340. package/dist/comment-reaction-DY5-y8Y5.mjs +0 -85
  1341. package/dist/comment-reaction-DY5-y8Y5.mjs.map +0 -1
  1342. package/dist/comments-B67VRNGw.mjs +0 -204
  1343. package/dist/comments-B67VRNGw.mjs.map +0 -1
  1344. package/dist/comments-BVzzt6x5.mjs +0 -99
  1345. package/dist/comments-BVzzt6x5.mjs.map +0 -1
  1346. package/dist/components-DIl9Qzh6.mjs +0 -108
  1347. package/dist/components-DIl9Qzh6.mjs.map +0 -1
  1348. package/dist/config-B2acLeC5.mjs +0 -242
  1349. package/dist/config-B2acLeC5.mjs.map +0 -1
  1350. package/dist/config-CGVeT8Hc.mjs +0 -73
  1351. package/dist/config-CGVeT8Hc.mjs.map +0 -1
  1352. package/dist/config-D3HhLON3.d.mts +0 -39
  1353. package/dist/config-D3HhLON3.d.mts.map +0 -1
  1354. package/dist/config-DS7e4EZ9.d.mts +0 -6387
  1355. package/dist/config-DS7e4EZ9.d.mts.map +0 -1
  1356. package/dist/content-DZ3B5qtA.mjs +0 -2216
  1357. package/dist/content-DZ3B5qtA.mjs.map +0 -1
  1358. package/dist/content-list-query-CbPdzsna.d.mts +0 -26
  1359. package/dist/content-list-query-CbPdzsna.d.mts.map +0 -1
  1360. package/dist/content-policy-CM4skrNi.mjs +0 -46
  1361. package/dist/content-policy-CM4skrNi.mjs.map +0 -1
  1362. package/dist/content-refresh-BHLHJgyt.mjs +0 -3599
  1363. package/dist/content-refresh-BHLHJgyt.mjs.map +0 -1
  1364. package/dist/content-repair-BVll5WNl.mjs +0 -440
  1365. package/dist/content-repair-BVll5WNl.mjs.map +0 -1
  1366. package/dist/context-B195kjqZ.mjs +0 -1835
  1367. package/dist/context-B195kjqZ.mjs.map +0 -1
  1368. package/dist/cron-BcR3RN4K.mjs +0 -282
  1369. package/dist/cron-BcR3RN4K.mjs.map +0 -1
  1370. package/dist/dashboard-CZD4G7k_.mjs +0 -151
  1371. package/dist/dashboard-CZD4G7k_.mjs.map +0 -1
  1372. package/dist/default-BtlxWgh9.mjs +0 -81
  1373. package/dist/default-BtlxWgh9.mjs.map +0 -1
  1374. package/dist/deferred-tasks-Ba9fphlE.d.mts +0 -9
  1375. package/dist/deferred-tasks-Ba9fphlE.d.mts.map +0 -1
  1376. package/dist/device-flow-3E5l0fpH.mjs +0 -466
  1377. package/dist/device-flow-3E5l0fpH.mjs.map +0 -1
  1378. package/dist/dialect-helpers-CtYdsX4W.mjs +0 -307
  1379. package/dist/dialect-helpers-CtYdsX4W.mjs.map +0 -1
  1380. package/dist/direct-executor-ZI8E01Yt.mjs +0 -104
  1381. package/dist/direct-executor-ZI8E01Yt.mjs.map +0 -1
  1382. package/dist/dist-2hDLsLeq.mjs +0 -810
  1383. package/dist/dist-2hDLsLeq.mjs.map +0 -1
  1384. package/dist/email-console-gc-E3Eqj.mjs +0 -50
  1385. package/dist/email-console-gc-E3Eqj.mjs.map +0 -1
  1386. package/dist/emdash-runtime-DZGinqTL.mjs +0 -4041
  1387. package/dist/emdash-runtime-DZGinqTL.mjs.map +0 -1
  1388. package/dist/enrich-C2Mk0lwE.mjs +0 -194
  1389. package/dist/enrich-C2Mk0lwE.mjs.map +0 -1
  1390. package/dist/entry-lock-D3C99MXS.mjs +0 -1520
  1391. package/dist/entry-lock-D3C99MXS.mjs.map +0 -1
  1392. package/dist/entry-lock-D9rnj2Lu.mjs +0 -163
  1393. package/dist/entry-lock-D9rnj2Lu.mjs.map +0 -1
  1394. package/dist/entry-lock-DX7QkqEg.d.mts +0 -3503
  1395. package/dist/entry-lock-DX7QkqEg.d.mts.map +0 -1
  1396. package/dist/entry-locks-CO_KaoU5.mjs +0 -167
  1397. package/dist/entry-locks-CO_KaoU5.mjs.map +0 -1
  1398. package/dist/error-CCTCskie.mjs +0 -90
  1399. package/dist/error-CCTCskie.mjs.map +0 -1
  1400. package/dist/errors-W3PA8HqB.mjs +0 -447
  1401. package/dist/errors-W3PA8HqB.mjs.map +0 -1
  1402. package/dist/escape-DN4Qmjsl.mjs +0 -9
  1403. package/dist/escape-DN4Qmjsl.mjs.map +0 -1
  1404. package/dist/field-defs-cache-B337z8UJ.mjs +0 -77
  1405. package/dist/field-defs-cache-B337z8UJ.mjs.map +0 -1
  1406. package/dist/fts-manager-DMb0sbIQ.mjs +0 -413
  1407. package/dist/fts-manager-DMb0sbIQ.mjs.map +0 -1
  1408. package/dist/hash-CLVFzWvx.mjs +0 -37
  1409. package/dist/hash-CLVFzWvx.mjs.map +0 -1
  1410. package/dist/hook-result-KY1jq21o.d.mts +0 -31
  1411. package/dist/hook-result-KY1jq21o.d.mts.map +0 -1
  1412. package/dist/hreflang-BgS2FqhH.d.mts +0 -50
  1413. package/dist/hreflang-BgS2FqhH.d.mts.map +0 -1
  1414. package/dist/hreflang-CrJwqoeb.mjs +0 -105
  1415. package/dist/hreflang-CrJwqoeb.mjs.map +0 -1
  1416. package/dist/http-route-dispatch-DAKlanXb.mjs +0 -339
  1417. package/dist/http-route-dispatch-DAKlanXb.mjs.map +0 -1
  1418. package/dist/identity-DRGSHEEr.mjs +0 -35
  1419. package/dist/identity-DRGSHEEr.mjs.map +0 -1
  1420. package/dist/import-DFr5B_hC.mjs +0 -2020
  1421. package/dist/import-DFr5B_hC.mjs.map +0 -1
  1422. package/dist/index-CDwKDkTq.d.mts +0 -623
  1423. package/dist/index-CDwKDkTq.d.mts.map +0 -1
  1424. package/dist/install-finalization-5Os-QZ-2.mjs +0 -58
  1425. package/dist/install-finalization-5Os-QZ-2.mjs.map +0 -1
  1426. package/dist/lifecycle-7e-Lt_kX.mjs +0 -25
  1427. package/dist/lifecycle-7e-Lt_kX.mjs.map +0 -1
  1428. package/dist/load-Cu5bvCZh.mjs +0 -28
  1429. package/dist/load-Cu5bvCZh.mjs.map +0 -1
  1430. package/dist/loader-t4TxaFiQ.mjs +0 -1004
  1431. package/dist/loader-t4TxaFiQ.mjs.map +0 -1
  1432. package/dist/manifest-builder-D31UoJCu.mjs +0 -189
  1433. package/dist/manifest-builder-D31UoJCu.mjs.map +0 -1
  1434. package/dist/manifest-schema-Bkh8SeHd.mjs +0 -491
  1435. package/dist/manifest-schema-Bkh8SeHd.mjs.map +0 -1
  1436. package/dist/media-TBlKCwo7.mjs +0 -334
  1437. package/dist/media-TBlKCwo7.mjs.map +0 -1
  1438. package/dist/media-allowlist-s60eAIf6.mjs +0 -44
  1439. package/dist/media-allowlist-s60eAIf6.mjs.map +0 -1
  1440. package/dist/media-folders-ClIRLUQv.mjs +0 -210
  1441. package/dist/media-folders-ClIRLUQv.mjs.map +0 -1
  1442. package/dist/media-url-DY_ijO3B.mjs +0 -43
  1443. package/dist/media-url-DY_ijO3B.mjs.map +0 -1
  1444. package/dist/media-usage-C4NolTpQ.mjs +0 -1833
  1445. package/dist/media-usage-C4NolTpQ.mjs.map +0 -1
  1446. package/dist/media-usage-activation-CAhmb14O.mjs +0 -78
  1447. package/dist/media-usage-activation-CAhmb14O.mjs.map +0 -1
  1448. package/dist/media-usage-work-Cu5DqewW.mjs +0 -586
  1449. package/dist/media-usage-work-Cu5DqewW.mjs.map +0 -1
  1450. package/dist/media-usage-work-DJr3rOEN.mjs +0 -152
  1451. package/dist/media-usage-work-DJr3rOEN.mjs.map +0 -1
  1452. package/dist/media-usage-write-fence-DW5oHT7q.mjs +0 -42
  1453. package/dist/media-usage-write-fence-DW5oHT7q.mjs.map +0 -1
  1454. package/dist/menus-DbgU9z5Q.mjs +0 -3732
  1455. package/dist/menus-DbgU9z5Q.mjs.map +0 -1
  1456. package/dist/menus-Wy8m5NcH.mjs +0 -753
  1457. package/dist/menus-Wy8m5NcH.mjs.map +0 -1
  1458. package/dist/mime-CCYRC4r1.mjs +0 -36
  1459. package/dist/mime-CCYRC4r1.mjs.map +0 -1
  1460. package/dist/mode-CkmOhFqj.mjs +0 -23
  1461. package/dist/mode-CkmOhFqj.mjs.map +0 -1
  1462. package/dist/node-sqlite-compat-vpVaILnb.mjs +0 -46
  1463. package/dist/node-sqlite-compat-vpVaILnb.mjs.map +0 -1
  1464. package/dist/normalize-dChXQjwS.mjs +0 -191
  1465. package/dist/normalize-dChXQjwS.mjs.map +0 -1
  1466. package/dist/oauth-authorization-DZ-R-hmx.mjs +0 -274
  1467. package/dist/oauth-authorization-DZ-R-hmx.mjs.map +0 -1
  1468. package/dist/oauth-clients-BMPA8vjl.mjs +0 -266
  1469. package/dist/oauth-clients-BMPA8vjl.mjs.map +0 -1
  1470. package/dist/oauth-state-store-0gIdb48-.mjs +0 -50
  1471. package/dist/oauth-state-store-0gIdb48-.mjs.map +0 -1
  1472. package/dist/oauth-user-lookup-ChVW4UWu.mjs +0 -26
  1473. package/dist/oauth-user-lookup-ChVW4UWu.mjs.map +0 -1
  1474. package/dist/object-cache-DlSVbn5Y.mjs +0 -534
  1475. package/dist/object-cache-DlSVbn5Y.mjs.map +0 -1
  1476. package/dist/options-D5WcorD5.mjs +0 -200
  1477. package/dist/options-D5WcorD5.mjs.map +0 -1
  1478. package/dist/options-DAknChnw.d.mts +0 -77
  1479. package/dist/options-DAknChnw.d.mts.map +0 -1
  1480. package/dist/parse-Cr379Av9.mjs +0 -81
  1481. package/dist/parse-Cr379Av9.mjs.map +0 -1
  1482. package/dist/parse-tj9XLNO_.d.mts +0 -165
  1483. package/dist/parse-tj9XLNO_.d.mts.map +0 -1
  1484. package/dist/passkey-config-BD-wMaCf.mjs +0 -46
  1485. package/dist/passkey-config-BD-wMaCf.mjs.map +0 -1
  1486. package/dist/patterns-Do3iqi7N.mjs +0 -145
  1487. package/dist/patterns-Do3iqi7N.mjs.map +0 -1
  1488. package/dist/placeholder-CubPFn_L.d.mts +0 -306
  1489. package/dist/placeholder-CubPFn_L.d.mts.map +0 -1
  1490. package/dist/plugins-DHurtdXQ.mjs +0 -277
  1491. package/dist/plugins-DHurtdXQ.mjs.map +0 -1
  1492. package/dist/policy-lyZnjpwz.mjs +0 -45
  1493. package/dist/policy-lyZnjpwz.mjs.map +0 -1
  1494. package/dist/portable-text-oAwodbPS.mjs +0 -286
  1495. package/dist/portable-text-oAwodbPS.mjs.map +0 -1
  1496. package/dist/preview-Cup2bj8c.mjs +0 -107
  1497. package/dist/preview-Cup2bj8c.mjs.map +0 -1
  1498. package/dist/protocol-C1CNiKX4.d.mts +0 -61
  1499. package/dist/protocol-C1CNiKX4.d.mts.map +0 -1
  1500. package/dist/public-submission-Cs-pFMQK.mjs +0 -245
  1501. package/dist/public-submission-Cs-pFMQK.mjs.map +0 -1
  1502. package/dist/public-url-BWVHsfQv.mjs +0 -101
  1503. package/dist/public-url-BWVHsfQv.mjs.map +0 -1
  1504. package/dist/query-D-lxiOgn.mjs +0 -890
  1505. package/dist/query-D-lxiOgn.mjs.map +0 -1
  1506. package/dist/query-D7kHKOws.mjs +0 -41
  1507. package/dist/query-D7kHKOws.mjs.map +0 -1
  1508. package/dist/rate-limit-CqJn-w4h.mjs +0 -120
  1509. package/dist/rate-limit-CqJn-w4h.mjs.map +0 -1
  1510. package/dist/redirect-BrChFPIu.mjs +0 -17
  1511. package/dist/redirect-BrChFPIu.mjs.map +0 -1
  1512. package/dist/redirect-D2Yo-b6S.mjs +0 -415
  1513. package/dist/redirect-D2Yo-b6S.mjs.map +0 -1
  1514. package/dist/redirects-BCiTaIQ-.mjs +0 -146
  1515. package/dist/redirects-BCiTaIQ-.mjs.map +0 -1
  1516. package/dist/redirects-ByItliuu.mjs +0 -644
  1517. package/dist/redirects-ByItliuu.mjs.map +0 -1
  1518. package/dist/registry-CkuPoZs7.mjs +0 -1222
  1519. package/dist/registry-CkuPoZs7.mjs.map +0 -1
  1520. package/dist/relation-XTAtOpJO.mjs +0 -334
  1521. package/dist/relation-XTAtOpJO.mjs.map +0 -1
  1522. package/dist/relations-B4w-G5U9.mjs +0 -309
  1523. package/dist/relations-B4w-G5U9.mjs.map +0 -1
  1524. package/dist/relations-O63JWBRj.mjs +0 -403
  1525. package/dist/relations-O63JWBRj.mjs.map +0 -1
  1526. package/dist/request-cache-DaMhSQdx.mjs +0 -104
  1527. package/dist/request-cache-DaMhSQdx.mjs.map +0 -1
  1528. package/dist/request-meta-C8yl_sIs.mjs +0 -141
  1529. package/dist/request-meta-C8yl_sIs.mjs.map +0 -1
  1530. package/dist/resolve-BJIS8wKr.mjs +0 -199
  1531. package/dist/resolve-BJIS8wKr.mjs.map +0 -1
  1532. package/dist/route-wire-D66L2oaZ.mjs +0 -197
  1533. package/dist/route-wire-D66L2oaZ.mjs.map +0 -1
  1534. package/dist/routes-DYsTe-oR.mjs +0 -321
  1535. package/dist/routes-DYsTe-oR.mjs.map +0 -1
  1536. package/dist/runner-3gfxRsJG.d.mts +0 -68
  1537. package/dist/runner-3gfxRsJG.d.mts.map +0 -1
  1538. package/dist/runner-ClrleR8A.mjs +0 -5502
  1539. package/dist/runner-ClrleR8A.mjs.map +0 -1
  1540. package/dist/schema-CPhPM9Do.mjs +0 -420
  1541. package/dist/schema-CPhPM9Do.mjs.map +0 -1
  1542. package/dist/schema-DEERRrKS.mjs +0 -9
  1543. package/dist/schema-DEERRrKS.mjs.map +0 -1
  1544. package/dist/scopes-Bn8_rCSt.mjs +0 -27
  1545. package/dist/scopes-Bn8_rCSt.mjs.map +0 -1
  1546. package/dist/search-lami_Ota.mjs +0 -448
  1547. package/dist/search-lami_Ota.mjs.map +0 -1
  1548. package/dist/secrets-DNgVgz_e.mjs +0 -341
  1549. package/dist/secrets-DNgVgz_e.mjs.map +0 -1
  1550. package/dist/sections-BIpd4Cxf.mjs +0 -346
  1551. package/dist/sections-BIpd4Cxf.mjs.map +0 -1
  1552. package/dist/seo-BtU70b7l.mjs +0 -114
  1553. package/dist/seo-BtU70b7l.mjs.map +0 -1
  1554. package/dist/seo-_4qmazxz.mjs +0 -133
  1555. package/dist/seo-_4qmazxz.mjs.map +0 -1
  1556. package/dist/service-Bpy5iTX0.mjs +0 -150
  1557. package/dist/service-Bpy5iTX0.mjs.map +0 -1
  1558. package/dist/session-user-BQeS2Mrb.mjs +0 -51
  1559. package/dist/session-user-BQeS2Mrb.mjs.map +0 -1
  1560. package/dist/settings-DmroR53o.mjs +0 -420
  1561. package/dist/settings-DmroR53o.mjs.map +0 -1
  1562. package/dist/settings-g2F2a3Ub.mjs +0 -51
  1563. package/dist/settings-g2F2a3Ub.mjs.map +0 -1
  1564. package/dist/setup-complete-BrZaXpVV.mjs +0 -26
  1565. package/dist/setup-complete-BrZaXpVV.mjs.map +0 -1
  1566. package/dist/setup-nonce-Cb9-884O.mjs +0 -25
  1567. package/dist/setup-nonce-Cb9-884O.mjs.map +0 -1
  1568. package/dist/site-url-DjhYCaep.mjs +0 -16
  1569. package/dist/site-url-DjhYCaep.mjs.map +0 -1
  1570. package/dist/snapshot-C32Xuv3o.mjs +0 -233
  1571. package/dist/snapshot-C32Xuv3o.mjs.map +0 -1
  1572. package/dist/ssrf-Co1GGFZz.mjs +0 -406
  1573. package/dist/ssrf-Co1GGFZz.mjs.map +0 -1
  1574. package/dist/state-C7gCoiHr.mjs +0 -153
  1575. package/dist/state-C7gCoiHr.mjs.map +0 -1
  1576. package/dist/status-DLoBmcDz.mjs +0 -30
  1577. package/dist/status-DLoBmcDz.mjs.map +0 -1
  1578. package/dist/storage-query-CPctdMKX.d.mts +0 -1519
  1579. package/dist/storage-query-CPctdMKX.d.mts.map +0 -1
  1580. package/dist/target-CUKlGrXb.mjs +0 -27
  1581. package/dist/target-CUKlGrXb.mjs.map +0 -1
  1582. package/dist/taxonomies-BpqpXJUE.mjs +0 -707
  1583. package/dist/taxonomies-BpqpXJUE.mjs.map +0 -1
  1584. package/dist/taxonomies-ClCo4IGO.mjs +0 -899
  1585. package/dist/taxonomies-ClCo4IGO.mjs.map +0 -1
  1586. package/dist/taxonomy-Dj1vpw5E.mjs +0 -508
  1587. package/dist/taxonomy-Dj1vpw5E.mjs.map +0 -1
  1588. package/dist/tokens-Ns02GAma.mjs +0 -171
  1589. package/dist/tokens-Ns02GAma.mjs.map +0 -1
  1590. package/dist/transport-B8P1xsqk.mjs +0 -136
  1591. package/dist/transport-B8P1xsqk.mjs.map +0 -1
  1592. package/dist/transport-BLHZZcD_.d.mts +0 -42
  1593. package/dist/transport-BLHZZcD_.d.mts.map +0 -1
  1594. package/dist/trusted-proxy-Cg7SuD15.mjs +0 -51
  1595. package/dist/trusted-proxy-Cg7SuD15.mjs.map +0 -1
  1596. package/dist/turnstile-DWCSh_Qc.mjs +0 -53
  1597. package/dist/turnstile-DWCSh_Qc.mjs.map +0 -1
  1598. package/dist/types-B3RkqvDW.mjs +0 -156
  1599. package/dist/types-B3RkqvDW.mjs.map +0 -1
  1600. package/dist/types-BtuppOTV.mjs +0 -16
  1601. package/dist/types-BtuppOTV.mjs.map +0 -1
  1602. package/dist/types-CCR3ivXE.d.mts +0 -363
  1603. package/dist/types-CCR3ivXE.d.mts.map +0 -1
  1604. package/dist/types-CSHgU_-_.mjs +0 -18
  1605. package/dist/types-CSHgU_-_.mjs.map +0 -1
  1606. package/dist/types-CbwqGOXm.d.mts +0 -766
  1607. package/dist/types-CbwqGOXm.d.mts.map +0 -1
  1608. package/dist/types-D4RGIc2I.d.mts +0 -198
  1609. package/dist/types-D4RGIc2I.d.mts.map +0 -1
  1610. package/dist/types-DEHidMEk.d.mts +0 -1637
  1611. package/dist/types-DEHidMEk.d.mts.map +0 -1
  1612. package/dist/types-DQeU2SR7.d.mts +0 -279
  1613. package/dist/types-DQeU2SR7.d.mts.map +0 -1
  1614. package/dist/types-DxQWoQLA.d.mts +0 -264
  1615. package/dist/types-DxQWoQLA.d.mts.map +0 -1
  1616. package/dist/types-FBBnGZ2Y.d.mts +0 -198
  1617. package/dist/types-FBBnGZ2Y.d.mts.map +0 -1
  1618. package/dist/types-ZCnlropY.mjs +0 -69
  1619. package/dist/types-ZCnlropY.mjs.map +0 -1
  1620. package/dist/types-_Qtyawiy.d.mts +0 -124
  1621. package/dist/types-_Qtyawiy.d.mts.map +0 -1
  1622. package/dist/types-gC6FAoa_.d.mts +0 -75
  1623. package/dist/types-gC6FAoa_.d.mts.map +0 -1
  1624. package/dist/types-k--LneIF.mjs +0 -22
  1625. package/dist/types-k--LneIF.mjs.map +0 -1
  1626. package/dist/upload-attempts-2xdnoKGe.mjs +0 -27
  1627. package/dist/upload-attempts-2xdnoKGe.mjs.map +0 -1
  1628. package/dist/url-pattern-3m3reMzr.mjs +0 -33
  1629. package/dist/url-pattern-3m3reMzr.mjs.map +0 -1
  1630. package/dist/user-DroRntkx.mjs +0 -171
  1631. package/dist/user-DroRntkx.mjs.map +0 -1
  1632. package/dist/utils-CC2oNGV8.mjs +0 -435
  1633. package/dist/utils-CC2oNGV8.mjs.map +0 -1
  1634. package/dist/validate-BCP9HNDn.mjs +0 -384
  1635. package/dist/validate-BCP9HNDn.mjs.map +0 -1
  1636. package/dist/validate-CyQ7I3xF.d.mts +0 -410
  1637. package/dist/validate-CyQ7I3xF.d.mts.map +0 -1
  1638. package/dist/validation-DBy6WF94.mjs +0 -216
  1639. package/dist/validation-DBy6WF94.mjs.map +0 -1
  1640. package/dist/version-B57E4Uo7.mjs +0 -7
  1641. package/dist/version-B57E4Uo7.mjs.map +0 -1
  1642. package/dist/widgets-wQ7Xcgq8.mjs +0 -126
  1643. package/dist/widgets-wQ7Xcgq8.mjs.map +0 -1
  1644. package/dist/wxr-taxonomies-DIHfvEDt.mjs +0 -406
  1645. package/dist/wxr-taxonomies-DIHfvEDt.mjs.map +0 -1
  1646. package/dist/wxr-taxonomies-DU2ZSiGc.d.mts +0 -34
  1647. package/dist/wxr-taxonomies-DU2ZSiGc.d.mts.map +0 -1
  1648. package/dist/zod-generator-D_yHIWfs.mjs +0 -329
  1649. package/dist/zod-generator-D_yHIWfs.mjs.map +0 -1
  1650. /package/dist/{ssrf-BRpTDMV6.mjs → ssrf-DpBH7aOt.mjs} +0 -0
@@ -1,21 +1,401 @@
1
- import "../../../config-CGVeT8Hc.mjs";
1
+ import "../../../dialect-helpers-7_IqPdh9.mjs";
2
+ import { r as getI18nConfig } from "../../../config-CvmjJcVw.mjs";
3
+ import "../../../after-PcEvMY_6.mjs";
4
+ import "../../../options-DhrI7eMv.mjs";
2
5
  import { i as encodeBase64, t as decodeBase64 } from "../../../base64-DvnNgP7e.mjs";
6
+ import "../../../secrets-CIi0nFiR.mjs";
7
+ import "../../../object-cache-CqWNY5uP.mjs";
3
8
  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
+ import "../../../media-Qp5S3eH3.mjs";
10
+ import "../../../audit-RfCugiSB.mjs";
11
+ import "../../../request-cache-DzLYKm_x.mjs";
12
+ import "../../../byline-registry-gnKscbQX.mjs";
13
+ import "../../../field-defs-cache-HIgBbqZZ.mjs";
14
+ import "../../../byline-DYmkXqvo.mjs";
15
+ import "../../../fts-manager-S-K0laoS.mjs";
16
+ import { n as siteSettingsTag, r as taxonomyTag, t as menuTag } from "../../../chrome-tags-DApCQSIk.mjs";
17
+ import "../../../loader-BzqeR1ZN.mjs";
18
+ import "../../../collection-slugs-cache-CjGk__zp.mjs";
19
+ import "../../../capture-triggers-kJyl_yyM.mjs";
20
+ import "../../../activation-LOkDM5WT.mjs";
21
+ import "../../../block-type-registry-DUI_3KxT.mjs";
22
+ import "../../../collection-deletion-BIm28mo3.mjs";
23
+ import { r as isTransferError, t as TransferError } from "../../../errors-DgE1zJGG.mjs";
24
+ import "../../../canonical-YhEQezjg.mjs";
25
+ import { f as toSha256Digest } from "../../../digest-BarSh-pN.mjs";
26
+ import "../../../hash-SDAW6zC-.mjs";
27
+ import "../../../zod-generator-D6uE4WiS.mjs";
28
+ import "../../../collection-deletion-processor-Br6rxs3u.mjs";
29
+ import "../../../settings-DYidIB26.mjs";
30
+ import "../../../site-settings-DOgRUoFX.mjs";
31
+ import "../../../errors-BF0_LFhW.mjs";
32
+ import "../../../settings-CgjRWGW9.mjs";
33
+ import { t as apiError } from "../../../error-CfvOHP0M.mjs";
34
+ import "../../../redirects-Cv9apQKj.mjs";
35
+ import { Ct as updateCollectionBody, I as createTaxonomyDefBody, St as updateBlockTypeBody, Yt as bylineCreateBody, Z as updateTaxonomyDefBody, dt as createBlockTypeBody, ft as createCollectionBody, rn as contentBylineInputSchema, tn as bylineUpdateBody, wt as updateFieldBody, zt as contentSeoInput } from "../../../entry-lock-BJYdBfXb.mjs";
36
+ import { t as CONTENT_TYPE_RE } from "../../../media-Pu1L6xir.mjs";
37
+ import "../../../comments-fHZ8ON9O.mjs";
38
+ import "../../../relations-CK9CYUyr.mjs";
39
+ import "../../../menus-BM7BPLOb.mjs";
40
+ import "../../../status-DZKIG4a9.mjs";
11
41
  import "../../../api/schemas/index.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";
42
+ import { a as readSiteWriteFence, o as recordSiteWrite } from "../../../fence-CMDXJYc_.mjs";
43
+ import { a as hasScope$1 } from "../../../api-tokens-CE1ECIg0.mjs";
44
+ import { n as convertDataForWrite, t as convertDataForRead } from "../../../portable-text-5O_ZGUjB.mjs";
45
+ import "../../../tar-_1AgTYFu.mjs";
46
+ import { i as RECORD_KINDS } from "../../../kinds-CRu_T5T5.mjs";
47
+ import "../../../paths-JxokKIbr.mjs";
48
+ import "../../../transformations-9gfpwY65.mjs";
49
+ import "../../../version-BRZXVifl.mjs";
50
+ import "../../../receipt-B4wJj5Jq.mjs";
51
+ import { S as TRANSFER_SCOPES, n as TransferApprovalRepository } from "../../../approvals-CqMfNxak.mjs";
52
+ import { a as siteImportDecisionsInputSchema, t as isPlanExecutable } from "../../../plan-xjcWrAah.mjs";
53
+ import { i as TransferOperationRepository } from "../../../stage-DgrBz_du.mjs";
54
+ import { C as requestTransferApproval, E as analysisTargetContext, S as handleTransferCapabilities, T as loadImportPlan, _ as handleImportGet, c as handleExportGet, d as handleImportAdvance, f as handleImportAnalyze, h as handleImportExecute, i as handleExportAdvance, o as handleExportCreate, t as exportParamsDigest, w as openExportPackage, x as handleImportReceipt } from "../../../transfer-BhUCrgDc.mjs";
55
+ import "../../../keys-yxLm5l35.mjs";
14
56
  import { z } from "zod";
15
57
  import { Permissions, Role, canActOnOwn, hasPermission } from "@emdash-cms/auth";
16
58
  import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
17
59
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
18
60
 
61
+ //#region src/mcp/transfer.ts
62
+ /** Plan principals, warnings, and blockers listed per call; the totals are always reported. */
63
+ const MCP_PLAN_LIST_LIMIT = 50;
64
+ function failure(code, message, details) {
65
+ return {
66
+ success: false,
67
+ error: details === void 0 ? {
68
+ code,
69
+ message
70
+ } : {
71
+ code,
72
+ message,
73
+ details
74
+ }
75
+ };
76
+ }
77
+ function transferFailure(error, fallbackCode) {
78
+ if (isTransferError(error)) return failure(error.code, error.message);
79
+ console.error("[transfer] MCP tool failed:", error);
80
+ return failure(fallbackCode, "Site transfer request failed");
81
+ }
82
+ function storageMissing() {
83
+ return failure("STORAGE_NOT_CONFIGURED", "No storage backend is configured");
84
+ }
85
+ function tokenRequired() {
86
+ return failure("INSUFFICIENT_SCOPE", "Approval grants need a caller authenticated with an API or OAuth token");
87
+ }
88
+ function summarizeOperation(operation) {
89
+ const progress = operation.progress;
90
+ return {
91
+ id: operation.id,
92
+ kind: operation.kind,
93
+ state: operation.state,
94
+ stage: operation.stage,
95
+ progress: progress ? {
96
+ done: progress.done,
97
+ total: progress.total,
98
+ ...progress.records === void 0 ? {} : { records: progress.records },
99
+ ...progress.bytesDone === void 0 ? {} : { bytesDone: progress.bytesDone },
100
+ ...progress.bytesTotal === void 0 ? {} : { bytesTotal: progress.bytesTotal }
101
+ } : null,
102
+ packageDigest: operation.packageDigest,
103
+ planDigest: operation.planDigest,
104
+ error: operation.errorCode ? { code: operation.errorCode } : null,
105
+ createdAt: operation.createdAt,
106
+ updatedAt: operation.updatedAt,
107
+ completedAt: operation.completedAt,
108
+ expiresAt: operation.expiresAt
109
+ };
110
+ }
111
+ function summarizeIssue(issue) {
112
+ return {
113
+ code: issue.code,
114
+ message: issue.message,
115
+ ...issue.kind === void 0 ? {} : { kind: issue.kind },
116
+ ...issue.id === void 0 ? {} : { id: issue.id },
117
+ ...issue.count === void 0 ? {} : { count: issue.count },
118
+ ...issue.detail === void 0 ? {} : { detail: { ...issue.detail } }
119
+ };
120
+ }
121
+ /** How many records a transformation touches; its listed ids and values are not returned. */
122
+ function transformationCount(item) {
123
+ switch (item.code) {
124
+ case "redirect_loop_disabled":
125
+ case "search_unsupported": return item.ids.length;
126
+ case "locale_recased": return item.locales.length;
127
+ default: return item.count;
128
+ }
129
+ }
130
+ function summarizePlan(plan, planDigest) {
131
+ return {
132
+ packageDigest: plan.packageDigest,
133
+ planDigest,
134
+ executable: isPlanExecutable(plan),
135
+ origin: {
136
+ siteId: plan.origin.siteId,
137
+ packageId: plan.origin.packageId,
138
+ createdAt: plan.origin.createdAt,
139
+ emdashVersion: plan.origin.createdByEmDashVersion
140
+ },
141
+ counts: { ...plan.counts },
142
+ bytes: {
143
+ records: plan.bytes.records,
144
+ media: plan.bytes.media
145
+ },
146
+ principals: {
147
+ total: plan.principals.length,
148
+ items: plan.principals.toSorted((a, b) => b.references - a.references || a.id.localeCompare(b.id)).slice(0, MCP_PLAN_LIST_LIMIT).map((principal) => ({
149
+ id: principal.id,
150
+ displayName: principal.displayName,
151
+ references: principal.references,
152
+ suggestedUserId: principal.suggestedUserId ?? null,
153
+ mappedUserId: plan.decisions.principalMappings[principal.id] ?? null
154
+ }))
155
+ },
156
+ decisions: {
157
+ siteTitle: plan.decisions.siteTitle,
158
+ siteTagline: plan.decisions.siteTagline
159
+ },
160
+ transformations: plan.transformations.map((item) => ({
161
+ code: item.code,
162
+ ..."kind" in item ? { kind: item.kind } : {},
163
+ count: transformationCount(item)
164
+ })),
165
+ warnings: {
166
+ total: plan.warnings.length,
167
+ items: plan.warnings.slice(0, MCP_PLAN_LIST_LIMIT).map(summarizeIssue)
168
+ },
169
+ blockers: {
170
+ total: plan.blockers.length,
171
+ items: plan.blockers.slice(0, MCP_PLAN_LIST_LIMIT).map(summarizeIssue)
172
+ },
173
+ estimatedSteps: plan.estimatedSteps
174
+ };
175
+ }
176
+ /**
177
+ * Whether `caller` may drive or read `operationId` through a grant it
178
+ * consumed for it, in place of the transfer scope.
179
+ */
180
+ async function hasOperationGrant(db, caller, action, operationId) {
181
+ if (caller.tokenId === void 0) return false;
182
+ return new TransferApprovalRepository(db).hasConsumed({
183
+ userId: caller.userId,
184
+ action,
185
+ operationId,
186
+ tokenId: caller.tokenId
187
+ });
188
+ }
189
+ async function transferCapabilities(context) {
190
+ return handleTransferCapabilities(context.db, analysisTargetContext({
191
+ i18n: getI18nConfig(),
192
+ maxUploadSize: context.maxUploadSize
193
+ }));
194
+ }
195
+ async function startExport(context, caller, input) {
196
+ const options = input.comments === void 0 ? {} : { comments: input.comments };
197
+ if (!input.scoped) {
198
+ if (caller.tokenId === void 0) return tokenRequired();
199
+ if (input.approvalId === void 0) return withInstruction(await requestTransferApproval(context.db, {
200
+ userId: caller.userId,
201
+ action: "export",
202
+ paramsDigest: await exportParamsDigest(options),
203
+ requestedByTokenId: caller.tokenId
204
+ }));
205
+ }
206
+ const created = await handleExportCreate(context.db, {
207
+ userId: caller.userId,
208
+ options,
209
+ ...input.scoped || input.approvalId === void 0 ? {} : { approval: {
210
+ id: input.approvalId,
211
+ tokenId: caller.tokenId
212
+ } }
213
+ });
214
+ if (!created.success) return created;
215
+ return {
216
+ success: true,
217
+ data: { operation: summarizeOperation(created.data.operation) }
218
+ };
219
+ }
220
+ /**
221
+ * Put the approval id and the next step in the message text, which is all
222
+ * many MCP clients show the model; `details` carries the same values.
223
+ */
224
+ function withInstruction(result) {
225
+ if (result.success || result.error.code !== "TRANSFER_APPROVAL_REQUIRED") return result;
226
+ const details = result.error.details ?? {};
227
+ const approvalId = String(details.approvalId);
228
+ return failure("TRANSFER_APPROVAL_REQUIRED", `Approval ${approvalId} is pending until ${String(details.expiresAt)}. An admin must approve it in the EmDash admin under Settings → Transfer. Then call this tool again with the same arguments and approvalId "${approvalId}".`, details);
229
+ }
230
+ async function exportTotals(db, storage, operationId) {
231
+ const manifest = await openExportPackage({
232
+ db,
233
+ storage,
234
+ operation: await new TransferOperationRepository(db).require(operationId)
235
+ }).manifest();
236
+ const byKind = {};
237
+ let total = 0;
238
+ for (const kind of RECORD_KINDS) {
239
+ const summary = manifest.records[kind];
240
+ if (!summary) continue;
241
+ byKind[kind] = summary.count;
242
+ total += summary.count;
243
+ }
244
+ return {
245
+ records: {
246
+ total,
247
+ byKind
248
+ },
249
+ media: {
250
+ count: manifest.media.count,
251
+ totalBytes: manifest.media.totalBytes
252
+ },
253
+ files: {
254
+ count: manifest.files.count,
255
+ totalBytes: manifest.files.totalBytes
256
+ }
257
+ };
258
+ }
259
+ async function exportStatus(context, input) {
260
+ let operation;
261
+ let nextRequestInMs;
262
+ if (input.advance) {
263
+ if (!context.storage) return storageMissing();
264
+ const step = await handleExportAdvance(context.db, context.storage, { operationId: input.operationId });
265
+ if (!step.success) return step;
266
+ operation = step.data.operation;
267
+ nextRequestInMs = step.data.nextRequestInMs;
268
+ } else {
269
+ const read = await handleExportGet(context.db, input.operationId);
270
+ if (!read.success) return read;
271
+ operation = read.data.operation;
272
+ nextRequestInMs = operation.state === "pending" || operation.state === "running" ? 0 : null;
273
+ }
274
+ const status = {
275
+ operation: summarizeOperation(operation),
276
+ nextRequestInMs
277
+ };
278
+ if (operation.state === "complete" && operation.stagingCollectedAt === null) {
279
+ if (!context.storage) return storageMissing();
280
+ try {
281
+ status.totals = await exportTotals(context.db, context.storage, operation.id);
282
+ } catch (error) {
283
+ return transferFailure(error, "TRANSFER_EXPORT_ERROR");
284
+ }
285
+ }
286
+ return {
287
+ success: true,
288
+ data: status
289
+ };
290
+ }
291
+ async function analyzeImport(context, input) {
292
+ if (!context.storage) return storageMissing();
293
+ const result = await handleImportAnalyze(context.db, context.storage, {
294
+ operationId: input.operationId,
295
+ decisions: input.decisions,
296
+ target: analysisTargetContext({
297
+ i18n: getI18nConfig(),
298
+ maxUploadSize: context.maxUploadSize
299
+ })
300
+ });
301
+ if (!result.success) return result;
302
+ const { operation, plan, planDigest, nextRequestInMs } = result.data;
303
+ return {
304
+ success: true,
305
+ data: {
306
+ operation: summarizeOperation(operation),
307
+ ...plan && planDigest ? { plan: summarizePlan(plan, planDigest) } : {},
308
+ nextRequestInMs
309
+ }
310
+ };
311
+ }
312
+ /**
313
+ * Check what `handleImportExecute` would, before a pending grant is created,
314
+ * so an admin is only ever asked to approve an import that can run.
315
+ */
316
+ async function assertExecutable(context, input) {
317
+ const operation = await new TransferOperationRepository(context.db).get(input.operationId);
318
+ if (!operation || operation.kind !== "import") throw new TransferError("TRANSFER_OPERATION_NOT_FOUND", "Transfer operation not found");
319
+ if (operation.packageDigest !== input.packageDigest) throw new TransferError("TRANSFER_PACKAGE_DIGEST_MISMATCH", "Package digest does not match");
320
+ if (operation.planDigest === null || operation.planDigest !== input.planDigest) throw new TransferError("TRANSFER_PLAN_DIGEST_MISMATCH", "Plan digest does not match");
321
+ if (operation.state !== "planned") throw new TransferError("TRANSFER_INVALID_STATE", "Import is not waiting to be started");
322
+ const plan = await loadImportPlan(context.storage, operation);
323
+ if (!plan || !isPlanExecutable(plan)) throw new TransferError("TRANSFER_PLAN_BLOCKED", "The import plan has blockers");
324
+ }
325
+ async function startImport(context, caller, input) {
326
+ const storage = context.storage;
327
+ if (!storage) return storageMissing();
328
+ if (!input.scoped) {
329
+ if (caller.tokenId === void 0) return tokenRequired();
330
+ if (input.approvalId === void 0) {
331
+ try {
332
+ await assertExecutable({
333
+ ...context,
334
+ storage
335
+ }, input);
336
+ } catch (error) {
337
+ return transferFailure(error, "TRANSFER_IMPORT_ERROR");
338
+ }
339
+ return withInstruction(await requestTransferApproval(context.db, {
340
+ userId: caller.userId,
341
+ action: "import",
342
+ operationId: input.operationId,
343
+ packageDigest: input.packageDigest,
344
+ planDigest: input.planDigest,
345
+ requestedByTokenId: caller.tokenId
346
+ }));
347
+ }
348
+ }
349
+ const executed = await handleImportExecute(context.db, storage, {
350
+ operationId: input.operationId,
351
+ userId: caller.userId,
352
+ packageDigest: input.packageDigest,
353
+ planDigest: input.planDigest,
354
+ ...input.scoped || input.approvalId === void 0 ? {} : { approval: {
355
+ id: input.approvalId,
356
+ tokenId: caller.tokenId
357
+ } }
358
+ });
359
+ if (!executed.success) return executed;
360
+ return {
361
+ success: true,
362
+ data: { operation: summarizeOperation(executed.data.operation) }
363
+ };
364
+ }
365
+ async function importStatus(context, operationId) {
366
+ const result = await handleImportGet(context.db, operationId);
367
+ if (!result.success) return result;
368
+ return {
369
+ success: true,
370
+ data: {
371
+ operation: summarizeOperation(result.data.operation),
372
+ files: {
373
+ declared: result.data.files.declared,
374
+ verified: result.data.files.verified
375
+ }
376
+ }
377
+ };
378
+ }
379
+ async function resumeImport(context, caller, operationId) {
380
+ if (!context.storage) return storageMissing();
381
+ const step = await handleImportAdvance(context.db, context.storage, {
382
+ operationId,
383
+ userId: caller.userId
384
+ });
385
+ if (!step.success) return step;
386
+ return {
387
+ success: true,
388
+ data: {
389
+ operation: summarizeOperation(step.data.operation),
390
+ nextRequestInMs: step.data.nextRequestInMs
391
+ }
392
+ };
393
+ }
394
+ async function importReceipt(context, operationId) {
395
+ return handleImportReceipt(context.db, operationId);
396
+ }
397
+
398
+ //#endregion
19
399
  //#region src/mcp/server.ts
20
400
  const COLLECTION_SLUG_PATTERN = /^[a-z][a-z0-9_]*$/;
21
401
  /** http(s) scheme matcher used by `settings_update` URL validation. */
@@ -30,6 +410,25 @@ const REV_PARAM_DESCRIPTION = "Revision token proving you have read the current
30
410
  * read the schema, so the message says where the token comes from.
31
411
  */
32
412
  const REV_MISSING_ERROR = "_rev is required: call content_get for this item and pass back the _rev it returns.";
413
+ const SHA256_DIGEST_PATTERN = /^sha256:[0-9a-f]{64}$/;
414
+ const transferOperationIdSchema = z.string().regex(/^[0-9A-Za-z_-]{1,64}$/, "Invalid operation id").describe("Transfer operation id");
415
+ const transferApprovalIdSchema = z.string().min(1).max(64).describe("Approval id from an earlier TRANSFER_APPROVAL_REQUIRED error, once approved");
416
+ /**
417
+ * The site transfer tools. Like the transfer REST API they are exempt from
418
+ * the site write fence, so an import started over MCP can be driven to
419
+ * completion over MCP.
420
+ */
421
+ const TRANSFER_TOOL_NAMES = new Set([
422
+ "site_transfer_capabilities",
423
+ "site_export_start",
424
+ "site_export_status",
425
+ "site_import_analyze",
426
+ "site_import_start",
427
+ "site_import_status",
428
+ "site_import_resume",
429
+ "site_import_receipt"
430
+ ]);
431
+ const APPROVAL_FLOW_DESCRIPTION = "If the token lacks the scope, the first call fails with TRANSFER_APPROVAL_REQUIRED and details.approvalId; an admin must approve that request in the EmDash admin (Settings → Transfer). Then repeat the call with the same arguments plus approvalId. Approvals are single-use, bound to this user, this token, and these exact arguments, and expire 15 minutes after they are requested or approved.";
33
432
  const TAXONOMY_CURSOR_VERSION = 2;
34
433
  const MAX_TAXONOMY_CURSOR_LENGTH = 2048;
35
434
  const contentDateTimeInputSchema = z.iso.datetime({
@@ -54,7 +453,7 @@ const settingsSocialSchema = z.object({
54
453
  });
55
454
  const settingsSeoSchema = z.object({
56
455
  titleSeparator: z.string().max(10).optional().describe("Separator between page title and site title (e.g. ' | ')"),
57
- defaultOgImage: settingsMediaReferenceSchema.optional().describe("Default Open Graph image when content has none"),
456
+ defaultOgImage: settingsMediaReferenceSchema.nullable().optional().describe("Default Open Graph image when content has none; null removes it"),
58
457
  robotsTxt: z.string().max(5e3).optional().describe("Custom robots.txt body. Leave unset for the EmDash default."),
59
458
  googleVerification: z.string().max(100).optional().describe("Google Search Console verification token"),
60
459
  bingVerification: z.string().max(100).optional().describe("Bing Webmaster Tools verification token")
@@ -270,9 +669,10 @@ async function unwrapAndInvalidate(extra, result, tags, changedEarlier = false)
270
669
  }
271
670
  async function getCollectionFields(ec, collection) {
272
671
  try {
273
- const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
672
+ const { SchemaRegistry } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
673
+ const { expandCollectionBlockFields } = await import("../../../block-values-C_VIPr5t.mjs").then((n) => n.t);
274
674
  const col = await new SchemaRegistry(ec.db).getCollectionWithFields(collection);
275
- return col ? col.fields : null;
675
+ return col ? (await expandCollectionBlockFields(ec.db, col)).fields : null;
276
676
  } catch {
277
677
  return null;
278
678
  }
@@ -299,7 +699,7 @@ async function applyReadMarkdown(ec, collection, items) {
299
699
  for (const item of items) if (item.data && typeof item.data === "object") item.data = convertDataForRead(item.data, fields, false);
300
700
  }
301
701
  async function invalidateBylines() {
302
- const { invalidateBylineCache } = await import("../../../bylines-kpBzHPr8.mjs").then((n) => n.t);
702
+ const { invalidateBylineCache } = await import("../../../bylines-BPwJqoYH.mjs").then((n) => n.t);
303
703
  invalidateBylineCache();
304
704
  }
305
705
  /**
@@ -324,6 +724,46 @@ function requireRole(extra, minRole) {
324
724
  if (getExtra(extra).userRole < minRole) throw new EmDashAuthError("Insufficient permissions for this operation", "INSUFFICIENT_PERMISSIONS");
325
725
  }
326
726
  /**
727
+ * Whether the caller's token holds `scope` (`transfer:*`: any transfer
728
+ * scope). A caller without token scopes holds none.
729
+ */
730
+ function transferScopeHeld(extra, scope) {
731
+ const { tokenScopes } = getExtra(extra);
732
+ if (!tokenScopes) return false;
733
+ if (scope === "transfer:*") return TRANSFER_SCOPES.some((held) => hasScope$1(tokenScopes, held));
734
+ return hasScope$1(tokenScopes, scope);
735
+ }
736
+ function insufficientTransferScope(scope) {
737
+ return new EmDashAuthError(`Insufficient scope: requires ${scope === "transfer:*" ? TRANSFER_SCOPES.join(" or ") : scope}`, "INSUFFICIENT_SCOPE");
738
+ }
739
+ function requireTransferScope(extra, scope) {
740
+ if (!transferScopeHeld(extra, scope)) throw insufficientTransferScope(scope);
741
+ }
742
+ /**
743
+ * Require `scope`, or a grant this user consumed with this token to start
744
+ * `operationId`.
745
+ */
746
+ async function requireTransferAccess(extra, scope, action, operationId) {
747
+ if (transferScopeHeld(extra, scope)) return;
748
+ const { emdash, userId, tokenId } = getExtra(extra);
749
+ if (await hasOperationGrant(emdash.db, {
750
+ userId,
751
+ tokenId
752
+ }, action, operationId)) return;
753
+ throw insufficientTransferScope(scope);
754
+ }
755
+ function transferContext(extra) {
756
+ const { emdash } = getExtra(extra);
757
+ return {
758
+ db: emdash.db,
759
+ storage: emdash.storage,
760
+ maxUploadSize: emdash.config.maxUploadSize
761
+ };
762
+ }
763
+ function transferDigest(value) {
764
+ return toSha256Digest(value.slice(7));
765
+ }
766
+ /**
327
767
  * Whether the current user may read non-published content (drafts, scheduled,
328
768
  * trashed, revisions, compare). SUBSCRIBER may hold content:read for
329
769
  * member-only published content but must not see drafts.
@@ -391,9 +831,16 @@ function createMcpServer(pluginTools = [], request) {
391
831
  }, { capabilities: { logging: {} } });
392
832
  const originalRegisterTool = server.registerTool.bind(server);
393
833
  server.registerTool = ((name, config, callback) => {
834
+ const fenced = config.annotations?.readOnlyHint !== true && !TRANSFER_TOOL_NAMES.has(name);
394
835
  const wrapped = async (...callbackArgs) => {
395
836
  try {
396
- return await callback(...callbackArgs);
837
+ if (!fenced) return await callback(...callbackArgs);
838
+ const { db } = getEmDash(callbackArgs.at(-1));
839
+ const fence = await readSiteWriteFence(db);
840
+ if (fence.error) return respondError(fence.error.code, fence.error.message);
841
+ const result = await callback(...callbackArgs);
842
+ if (fence.exportRunning && !("isError" in result && result.isError)) await recordSiteWrite(db);
843
+ return result;
397
844
  } catch (error) {
398
845
  return respondHandlerError(error, "INTERNAL_ERROR");
399
846
  }
@@ -509,6 +956,8 @@ function createMcpServer(pluginTools = [], request) {
509
956
  status: z.enum(["draft", "published"]).optional().describe("Initial status (default 'draft'). Requires publish permission."),
510
957
  locale: z.string().optional().describe("Locale for this content (e.g. 'fr'). Defaults to default locale."),
511
958
  translationOf: z.string().optional().describe("ID of the content item this is a translation of. Links items in the same translation group."),
959
+ migrateBlocks: z.boolean().optional().describe("Allow retained blocks to migrate to their type's active version"),
960
+ replaceBlocks: z.boolean().optional().describe("Treat an entirely keyless blocks array as an explicit replacement"),
512
961
  bylines: z.array(contentBylineInputSchema).optional().describe("Bylines to credit. Each entry references an existing byline by id (see byline_list / byline_create) with an optional roleLabel. The first entry becomes the primary byline."),
513
962
  taxonomies: z.record(z.string(), z.array(z.string())).optional().describe("Taxonomy term assignments as { taxonomyName: [termSlug, ...] }. Term slugs are resolved in the entry's locale. Call taxonomy_list to see available taxonomies and taxonomy_list_terms to look up slugs. Missing keys leave that taxonomy unchanged.")
514
963
  }),
@@ -540,6 +989,8 @@ function createMcpServer(pluginTools = [], request) {
540
989
  translationOf: args.translationOf,
541
990
  bylines: args.bylines,
542
991
  taxonomies: args.taxonomies,
992
+ migrateBlocks: args.migrateBlocks,
993
+ replaceBlocks: args.replaceBlocks,
543
994
  actor
544
995
  });
545
996
  if (!result.success) return unwrap(result);
@@ -561,6 +1012,8 @@ function createMcpServer(pluginTools = [], request) {
561
1012
  translationOf: args.translationOf,
562
1013
  bylines: args.bylines,
563
1014
  taxonomies: args.taxonomies,
1015
+ migrateBlocks: args.migrateBlocks,
1016
+ replaceBlocks: args.replaceBlocks,
564
1017
  actor
565
1018
  }), [args.collection]);
566
1019
  });
@@ -578,6 +1031,8 @@ function createMcpServer(pluginTools = [], request) {
578
1031
  bylines: z.array(contentBylineInputSchema).optional().describe("Replace the byline list for this item. The first entry becomes the primary byline. Pass an empty array to clear all bylines."),
579
1032
  taxonomies: z.record(z.string(), z.array(z.string())).optional().describe("Replace taxonomy term assignments as { taxonomyName: [termSlug, ...] }. Term slugs are resolved in the entry's locale. Only named taxonomies are touched; other taxonomies are left unchanged. Pass an empty array to clear a taxonomy."),
580
1033
  publishedAt: contentDateTimeInputSchema.nullish().describe("Override the publication timestamp (ISO 8601). Requires content:publish_any permission. Pass null to clear. Useful for content migrations."),
1034
+ migrateBlocks: z.boolean().optional().describe("Allow existing blocks to migrate to their type's active version"),
1035
+ replaceBlocks: z.boolean().optional().describe("Treat an entirely keyless blocks array as an explicit replacement"),
581
1036
  _rev: z.string({ error: REV_MISSING_ERROR }).describe(REV_PARAM_DESCRIPTION)
582
1037
  })
583
1038
  }, async (args, extra) => {
@@ -614,6 +1069,8 @@ function createMcpServer(pluginTools = [], request) {
614
1069
  bylines: args.bylines,
615
1070
  taxonomies: args.taxonomies,
616
1071
  publishedAt: args.publishedAt,
1072
+ migrateBlocks: args.migrateBlocks,
1073
+ replaceBlocks: args.replaceBlocks,
617
1074
  _rev: args._rev
618
1075
  });
619
1076
  if (!updateResult.success) return unwrap(updateResult);
@@ -643,6 +1100,8 @@ function createMcpServer(pluginTools = [], request) {
643
1100
  bylines: args.bylines,
644
1101
  taxonomies: args.taxonomies,
645
1102
  publishedAt: args.publishedAt,
1103
+ migrateBlocks: args.migrateBlocks,
1104
+ replaceBlocks: args.replaceBlocks,
646
1105
  _rev: args._rev
647
1106
  });
648
1107
  if (!updateResult.success) return unwrap(updateResult);
@@ -667,6 +1126,8 @@ function createMcpServer(pluginTools = [], request) {
667
1126
  bylines: args.bylines,
668
1127
  taxonomies: args.taxonomies,
669
1128
  publishedAt: args.publishedAt,
1129
+ migrateBlocks: args.migrateBlocks,
1130
+ replaceBlocks: args.replaceBlocks,
670
1131
  _rev: args._rev
671
1132
  });
672
1133
  if (result.liveContentChanged === false) return unwrap(result);
@@ -883,7 +1344,12 @@ function createMcpServer(pluginTools = [], request) {
883
1344
  }, async (args, extra) => {
884
1345
  requireScope(extra, "content:write");
885
1346
  requireRole(extra, Role.CONTRIBUTOR);
886
- return unwrapAndInvalidate(extra, await getEmDash(extra).handleContentDuplicate(args.collection, args.id), [args.collection]);
1347
+ const { emdash, userId } = getExtra(extra);
1348
+ const existing = await emdash.handleContentGet(args.collection, args.id);
1349
+ if (!existing.success) return unwrap(existing);
1350
+ requireOwnership(extra, extractContentAuthorId(existing.data), "content:edit_own", "content:edit_any");
1351
+ const resolvedId = extractContentId(existing.data) ?? args.id;
1352
+ return unwrapAndInvalidate(extra, await emdash.handleContentDuplicate(args.collection, resolvedId, userId), [args.collection]);
887
1353
  });
888
1354
  server.registerTool("content_translations", {
889
1355
  title: "Get Content Translations",
@@ -925,7 +1391,7 @@ function createMcpServer(pluginTools = [], request) {
925
1391
  requireScope(extra, "content:read");
926
1392
  const ec = getEmDash(extra);
927
1393
  try {
928
- const { BylineRepository } = await import("../../../byline-Doh-wt99.mjs").then((n) => n.n);
1394
+ const { BylineRepository } = await import("../../../byline-DYmkXqvo.mjs").then((n) => n.n);
929
1395
  return jsonResult(await new BylineRepository(ec.db).findMany({
930
1396
  search: args.search,
931
1397
  isGuest: args.isGuest,
@@ -947,7 +1413,7 @@ function createMcpServer(pluginTools = [], request) {
947
1413
  requireScope(extra, "content:read");
948
1414
  const ec = getEmDash(extra);
949
1415
  try {
950
- const { BylineRepository } = await import("../../../byline-Doh-wt99.mjs").then((n) => n.n);
1416
+ const { BylineRepository } = await import("../../../byline-DYmkXqvo.mjs").then((n) => n.n);
951
1417
  const byline = await new BylineRepository(ec.db).findById(args.id);
952
1418
  if (!byline) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
953
1419
  return jsonResult(byline);
@@ -965,7 +1431,7 @@ function createMcpServer(pluginTools = [], request) {
965
1431
  requireRole(extra, Role.EDITOR);
966
1432
  const ec = getEmDash(extra);
967
1433
  try {
968
- const { handleBylineCreate } = await import("../../../bylines-Cop0hkoy.mjs").then((n) => n.t);
1434
+ const { handleBylineCreate } = await import("../../../bylines-ukLaYpVZ.mjs").then((n) => n.t);
969
1435
  const result = await handleBylineCreate(ec.db, args);
970
1436
  if (result.success) await invalidateBylines();
971
1437
  return unwrap(result);
@@ -985,7 +1451,7 @@ function createMcpServer(pluginTools = [], request) {
985
1451
  requireRole(extra, Role.EDITOR);
986
1452
  const ec = getEmDash(extra);
987
1453
  try {
988
- const { handleBylineUpdate } = await import("../../../bylines-Cop0hkoy.mjs").then((n) => n.t);
1454
+ const { handleBylineUpdate } = await import("../../../bylines-ukLaYpVZ.mjs").then((n) => n.t);
989
1455
  const { id, ...input } = args;
990
1456
  const result = await handleBylineUpdate(ec.db, id, input);
991
1457
  if (result.success) await invalidateBylines();
@@ -1004,7 +1470,7 @@ function createMcpServer(pluginTools = [], request) {
1004
1470
  requireRole(extra, Role.EDITOR);
1005
1471
  const ec = getEmDash(extra);
1006
1472
  try {
1007
- const { BylineRepository } = await import("../../../byline-Doh-wt99.mjs").then((n) => n.n);
1473
+ const { BylineRepository } = await import("../../../byline-DYmkXqvo.mjs").then((n) => n.n);
1008
1474
  if (!await new BylineRepository(ec.db).delete(args.id)) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
1009
1475
  await invalidateBylines();
1010
1476
  return jsonResult({ deleted: args.id });
@@ -1021,7 +1487,7 @@ function createMcpServer(pluginTools = [], request) {
1021
1487
  requireScope(extra, "content:read");
1022
1488
  const ec = getEmDash(extra);
1023
1489
  try {
1024
- const { handleBylineTranslations } = await import("../../../bylines-Cop0hkoy.mjs").then((n) => n.t);
1490
+ const { handleBylineTranslations } = await import("../../../bylines-ukLaYpVZ.mjs").then((n) => n.t);
1025
1491
  return unwrap(await handleBylineTranslations(ec.db, args.id));
1026
1492
  } catch (error) {
1027
1493
  return respondHandlerError(error, "BYLINE_TRANSLATIONS_ERROR");
@@ -1037,7 +1503,7 @@ function createMcpServer(pluginTools = [], request) {
1037
1503
  requireRole(extra, Role.EDITOR);
1038
1504
  const ec = getEmDash(extra);
1039
1505
  try {
1040
- const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
1506
+ const { SchemaRegistry } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
1041
1507
  return jsonResult({ items: await new SchemaRegistry(ec.db).listCollections() });
1042
1508
  } catch (error) {
1043
1509
  return respondHandlerError(error, "SCHEMA_LIST_ERROR");
@@ -1045,7 +1511,7 @@ function createMcpServer(pluginTools = [], request) {
1045
1511
  });
1046
1512
  server.registerTool("schema_get_collection", {
1047
1513
  title: "Get Collection Schema",
1048
- description: "Get detailed info about a collection including all field definitions. Fields describe the data model: name, type (string, text, number, boolean, datetime, portableText, image, reference, json, select, multiSelect, slug), constraints, and validation rules. Use this to understand what data content_create and content_update expect.",
1514
+ description: "Get detailed info about a collection including all field definitions. Fields describe the data model: name, type (string, text, number, boolean, datetime, portableText, image, reference, json, select, multiSelect, slug, blocks), constraints, and validation rules. Blocks fields include every allowed and retired block type version. Use this to understand what data content_create and content_update expect.",
1049
1515
  inputSchema: z.object({ slug: z.string().describe("Collection slug (e.g. 'posts'). Use schema_list_collections to see available slugs.") }),
1050
1516
  annotations: { readOnlyHint: true }
1051
1517
  }, async (args, extra) => {
@@ -1053,14 +1519,79 @@ function createMcpServer(pluginTools = [], request) {
1053
1519
  requireRole(extra, Role.EDITOR);
1054
1520
  const ec = getEmDash(extra);
1055
1521
  try {
1056
- const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
1522
+ const { SchemaRegistry, expandCollectionBlockFields } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
1057
1523
  const collection = await new SchemaRegistry(ec.db).getCollectionWithFields(args.slug);
1058
1524
  if (!collection) return respondError("NOT_FOUND", `Collection '${args.slug}' not found`);
1059
- return jsonResult(collection);
1525
+ return jsonResult(await expandCollectionBlockFields(ec.db, collection));
1060
1526
  } catch (error) {
1061
1527
  return respondHandlerError(error, "SCHEMA_GET_ERROR");
1062
1528
  }
1063
1529
  });
1530
+ server.registerTool("schema_list_block_types", {
1531
+ title: "List Block Types",
1532
+ description: "List every database-owned block type and all retained versions.",
1533
+ inputSchema: z.object({}),
1534
+ annotations: { readOnlyHint: true }
1535
+ }, async (_args, extra) => {
1536
+ requireScope(extra, "schema:read");
1537
+ requireRole(extra, Role.EDITOR);
1538
+ const ec = getEmDash(extra);
1539
+ const { handleBlockTypeList } = await import("../../../block-types-BmZmLmAD.mjs").then((n) => n.t);
1540
+ return unwrap(await handleBlockTypeList(ec.db));
1541
+ });
1542
+ server.registerTool("schema_get_block_type", {
1543
+ title: "Get Block Type",
1544
+ description: "Get one block type, including active, inactive, and historical versions.",
1545
+ inputSchema: z.object({ slug: z.string().describe("Block type slug") }),
1546
+ annotations: { readOnlyHint: true }
1547
+ }, async (args, extra) => {
1548
+ requireScope(extra, "schema:read");
1549
+ requireRole(extra, Role.EDITOR);
1550
+ const ec = getEmDash(extra);
1551
+ const { handleBlockTypeGet } = await import("../../../block-types-BmZmLmAD.mjs").then((n) => n.t);
1552
+ return unwrap(await handleBlockTypeGet(ec.db, args.slug));
1553
+ });
1554
+ server.registerTool("schema_create_block_type", {
1555
+ title: "Create Block Type",
1556
+ description: "Create a block type with active version 1.",
1557
+ inputSchema: z.object(createBlockTypeBody.shape)
1558
+ }, async (args, extra) => {
1559
+ requireScope(extra, "schema:write");
1560
+ requireRole(extra, Role.ADMIN);
1561
+ const ec = getEmDash(extra);
1562
+ const { handleBlockTypeCreate } = await import("../../../block-types-BmZmLmAD.mjs").then((n) => n.t);
1563
+ return unwrap(await handleBlockTypeCreate(ec.db, args));
1564
+ });
1565
+ server.registerTool("schema_update_block_type", {
1566
+ title: "Update Block Type",
1567
+ description: "Update presentation or compatible fields in place. Set breaking to create an inactive retained version.",
1568
+ inputSchema: z.object({
1569
+ slug: z.string(),
1570
+ ...updateBlockTypeBody.shape
1571
+ })
1572
+ }, async (args, extra) => {
1573
+ requireScope(extra, "schema:write");
1574
+ requireRole(extra, Role.ADMIN);
1575
+ const ec = getEmDash(extra);
1576
+ const { slug, ...input } = args;
1577
+ const { handleBlockTypeUpdate } = await import("../../../block-types-BmZmLmAD.mjs").then((n) => n.t);
1578
+ return unwrap(await handleBlockTypeUpdate(ec.db, slug, input));
1579
+ });
1580
+ server.registerTool("schema_activate_block_type_version", {
1581
+ title: "Activate Block Type Version",
1582
+ description: "Make a retained version the active version used by newly created blocks.",
1583
+ inputSchema: z.object({
1584
+ slug: z.string(),
1585
+ version: z.number().int().positive(),
1586
+ expectedFingerprint: z.string().min(1)
1587
+ })
1588
+ }, async (args, extra) => {
1589
+ requireScope(extra, "schema:write");
1590
+ requireRole(extra, Role.ADMIN);
1591
+ const ec = getEmDash(extra);
1592
+ const { handleBlockTypeVersionActivate } = await import("../../../block-types-BmZmLmAD.mjs").then((n) => n.t);
1593
+ return unwrap(await handleBlockTypeVersionActivate(ec.db, args.slug, args.version, args.expectedFingerprint));
1594
+ });
1064
1595
  server.registerTool("schema_create_collection", {
1065
1596
  title: "Create Collection",
1066
1597
  description: "Create a new content collection (content type). This creates a database table and schema definition. The slug must be lowercase alphanumeric with underscores, starting with a letter. Supports: 'drafts' (draft/publish workflow), 'revisions' (version history), 'preview' (live preview), 'scheduling' (timed publish), 'search' (full-text indexing), and 'seo' (SEO metadata).",
@@ -1080,7 +1611,7 @@ function createMcpServer(pluginTools = [], request) {
1080
1611
  requireRole(extra, Role.ADMIN);
1081
1612
  const ec = getEmDash(extra);
1082
1613
  try {
1083
- const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
1614
+ const { SchemaRegistry } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
1084
1615
  const collection = await new SchemaRegistry(ec.db).createCollection({
1085
1616
  slug: args.slug,
1086
1617
  label: args.label,
@@ -1111,7 +1642,7 @@ function createMcpServer(pluginTools = [], request) {
1111
1642
  requireRole(extra, Role.ADMIN);
1112
1643
  const ec = getEmDash(extra);
1113
1644
  try {
1114
- const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
1645
+ const { SchemaRegistry } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
1115
1646
  await new SchemaRegistry(ec.db).deleteCollection(args.slug, { force: args.force });
1116
1647
  ec.invalidateUrlPatternCache();
1117
1648
  return jsonResult({ deleted: args.slug });
@@ -1130,7 +1661,7 @@ function createMcpServer(pluginTools = [], request) {
1130
1661
  const ec = getEmDash(extra);
1131
1662
  const { slug, ...input } = args;
1132
1663
  try {
1133
- const { handleSchemaCollectionUpdate } = await import("../../../schema-CPhPM9Do.mjs").then((n) => n.h);
1664
+ const { handleSchemaCollectionUpdate } = await import("../../../schema-Du3MzCG0.mjs").then((n) => n.h);
1134
1665
  const result = await handleSchemaCollectionUpdate(ec.db, slug, input);
1135
1666
  if (result.success) ec.invalidateUrlPatternCache();
1136
1667
  return unwrap(result);
@@ -1140,7 +1671,7 @@ function createMcpServer(pluginTools = [], request) {
1140
1671
  });
1141
1672
  server.registerTool("schema_create_field", {
1142
1673
  title: "Add Field to Collection",
1143
- description: "Add a new field to a collection's schema. This adds a column to the database table. Field types: string (short text), text (long text), number (decimal), integer, boolean, datetime, select (single choice), multiSelect (multiple), portableText (rich text), image, file, reference (link to another collection), json, slug (URL-safe id). For select/multiSelect, provide choices in validation.options array.",
1674
+ description: "Add a new field to a collection's schema. This adds a column to the database table. Field types: string (short text), text (long text), number (decimal), integer, boolean, datetime, select (single choice), multiSelect (multiple), portableText (rich text), image, file, reference (link to another collection), json, slug (URL-safe id), or blocks. For select/multiSelect, provide choices in validation.options array.",
1144
1675
  inputSchema: z.object({
1145
1676
  collection: z.string().describe("Collection slug to add the field to"),
1146
1677
  slug: z.string().regex(COLLECTION_SLUG_PATTERN).describe("Field identifier (lowercase letters, numbers, underscores)"),
@@ -1159,7 +1690,8 @@ function createMcpServer(pluginTools = [], request) {
1159
1690
  "file",
1160
1691
  "reference",
1161
1692
  "json",
1162
- "slug"
1693
+ "slug",
1694
+ "blocks"
1163
1695
  ]).describe("Data type for this field"),
1164
1696
  required: z.boolean().optional().describe("Whether the field is required (default false)"),
1165
1697
  unique: z.boolean().optional().describe("Whether values must be unique (default false)"),
@@ -1170,7 +1702,10 @@ function createMcpServer(pluginTools = [], request) {
1170
1702
  minLength: z.number().optional(),
1171
1703
  maxLength: z.number().optional(),
1172
1704
  pattern: z.string().optional(),
1173
- options: z.array(z.string()).optional().describe("Allowed values for select/multiSelect")
1705
+ options: z.array(z.string()).optional().describe("Allowed values for select/multiSelect"),
1706
+ allowedTypes: z.array(z.string()).optional().describe("Ordered block type slugs allowed by a blocks field"),
1707
+ minItems: z.number().int().min(0).optional(),
1708
+ maxItems: z.number().int().min(1).optional()
1174
1709
  }).optional().describe("Validation constraints"),
1175
1710
  options: z.object({
1176
1711
  collection: z.string().optional().describe("Target collection slug for reference fields"),
@@ -1185,7 +1720,7 @@ function createMcpServer(pluginTools = [], request) {
1185
1720
  requireRole(extra, Role.ADMIN);
1186
1721
  const ec = getEmDash(extra);
1187
1722
  try {
1188
- const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
1723
+ const { SchemaRegistry } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
1189
1724
  return jsonResult(await new SchemaRegistry(ec.db).createField(args.collection, {
1190
1725
  slug: args.slug,
1191
1726
  label: args.label,
@@ -1216,7 +1751,7 @@ function createMcpServer(pluginTools = [], request) {
1216
1751
  requireRole(extra, Role.ADMIN);
1217
1752
  const ec = getEmDash(extra);
1218
1753
  try {
1219
- const { SchemaRegistry } = await import("../../../schema-DEERRrKS.mjs").then((n) => n.t);
1754
+ const { SchemaRegistry } = await import("../../../schema-BABiRdsH.mjs").then((n) => n.t);
1220
1755
  await new SchemaRegistry(ec.db).deleteField(args.collection, args.fieldSlug);
1221
1756
  return jsonResult({
1222
1757
  deleted: args.fieldSlug,
@@ -1237,7 +1772,7 @@ function createMcpServer(pluginTools = [], request) {
1237
1772
  const ec = getEmDash(extra);
1238
1773
  const { collection, fieldSlug, ...input } = args;
1239
1774
  try {
1240
- const { handleSchemaFieldUpdate } = await import("../../../schema-CPhPM9Do.mjs").then((n) => n.h);
1775
+ const { handleSchemaFieldUpdate } = await import("../../../schema-Du3MzCG0.mjs").then((n) => n.h);
1241
1776
  return unwrap(await handleSchemaFieldUpdate(ec.db, collection, fieldSlug, input));
1242
1777
  } catch (error) {
1243
1778
  return respondHandlerError(error, "SCHEMA_FIELD_UPDATE_ERROR");
@@ -1387,7 +1922,7 @@ function createMcpServer(pluginTools = [], request) {
1387
1922
  };
1388
1923
  } else input = { scope: "all" };
1389
1924
  try {
1390
- const { handleMediaUsageRepair } = await import("../../../media-usage-C4NolTpQ.mjs").then((n) => n.o);
1925
+ const { handleMediaUsageRepair } = await import("../../../media-usage-My-Vi-ex.mjs").then((n) => n.o);
1391
1926
  return unwrap(await handleMediaUsageRepair(ec.db, input));
1392
1927
  } catch (error) {
1393
1928
  return respondHandlerError(error, "MEDIA_USAGE_REPAIR_ERROR");
@@ -1408,7 +1943,7 @@ function createMcpServer(pluginTools = [], request) {
1408
1943
  requireScope(extra, "content:read");
1409
1944
  const ec = getEmDash(extra);
1410
1945
  try {
1411
- const { searchWithDb } = await import("../../../search-lami_Ota.mjs").then((n) => n.t);
1946
+ const { searchWithDb } = await import("../../../search-Bt1PL1jf.mjs").then((n) => n.t);
1412
1947
  return jsonResult(await searchWithDb(ec.db, args.query, {
1413
1948
  collections: args.collections,
1414
1949
  locale: args.locale,
@@ -1428,7 +1963,7 @@ function createMcpServer(pluginTools = [], request) {
1428
1963
  requireScope(extra, "content:read");
1429
1964
  const ec = getEmDash(extra);
1430
1965
  try {
1431
- const { handleTaxonomyList } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
1966
+ const { handleTaxonomyList } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
1432
1967
  return unwrap(await handleTaxonomyList(ec.db, { locale: args.locale }));
1433
1968
  } catch (error) {
1434
1969
  return respondHandlerError(error, "TAXONOMY_LIST_ERROR");
@@ -1446,7 +1981,7 @@ function createMcpServer(pluginTools = [], request) {
1446
1981
  requireScope(extra, "content:read");
1447
1982
  const ec = getEmDash(extra);
1448
1983
  try {
1449
- const { handleTaxonomyGet } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
1984
+ const { handleTaxonomyGet } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
1450
1985
  return unwrap(await handleTaxonomyGet(ec.db, args.name, { locale: args.locale }));
1451
1986
  } catch (error) {
1452
1987
  return respondHandlerError(error, "TAXONOMY_GET_ERROR");
@@ -1454,13 +1989,13 @@ function createMcpServer(pluginTools = [], request) {
1454
1989
  });
1455
1990
  server.registerTool("taxonomy_create", {
1456
1991
  title: "Create Taxonomy Definition",
1457
- description: "Create a new taxonomy definition. Definitions are per-locale; pass `locale` when the same taxonomy name exists in multiple translations. `collections` names which content types the taxonomy applies to. If `translationOf` is set, the new definition joins the source's translation group and inherits `hierarchical` and `collections` from the source when those fields are omitted.",
1992
+ description: "Create a taxonomy definition in one locale. `label` and `labelSingular` belong to that locale; `hierarchical` and `collections` belong to the taxonomy and are the same in every locale. `collections` names which content types the taxonomy applies to. A definition for a name that already exists in another locale joins that taxonomy and takes its `hierarchical` and `collections`; passing different values is an error (change them with taxonomy_update).",
1458
1993
  inputSchema: z.object({
1459
1994
  name: createTaxonomyDefBody.shape.name.describe("Taxonomy name (lowercase letters, numbers, underscores)"),
1460
1995
  label: createTaxonomyDefBody.shape.label.describe("Display name"),
1461
1996
  labelSingular: createTaxonomyDefBody.shape.labelSingular.describe("Singular form of the display name"),
1462
- hierarchical: createTaxonomyDefBody.shape.hierarchical.describe("Whether the taxonomy supports parent/child terms (defaults to false, or inherited from translationOf)"),
1463
- collections: createTaxonomyDefBody.shape.collections.describe("Collection slugs this taxonomy applies to (defaults to [], or inherited from translationOf)"),
1997
+ hierarchical: createTaxonomyDefBody.shape.hierarchical.describe("Whether the taxonomy supports parent/child terms, in every locale (defaults to false; must match when the taxonomy exists in another locale)"),
1998
+ collections: createTaxonomyDefBody.shape.collections.describe("Collection slugs this taxonomy applies to, in every locale (defaults to []; must match when the taxonomy exists in another locale)"),
1464
1999
  locale: z.string().optional().describe("Locale for this definition (e.g. 'fr-fr')"),
1465
2000
  translationOf: z.string().optional().describe("Existing taxonomy definition id to create this locale variant from")
1466
2001
  })
@@ -1469,7 +2004,7 @@ function createMcpServer(pluginTools = [], request) {
1469
2004
  requireRole(extra, Role.EDITOR);
1470
2005
  const ec = getEmDash(extra);
1471
2006
  try {
1472
- const { handleTaxonomyCreate } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
2007
+ const { handleTaxonomyCreate } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
1473
2008
  return unwrapAndInvalidate(extra, await handleTaxonomyCreate(ec.db, {
1474
2009
  name: args.name,
1475
2010
  label: args.label,
@@ -1485,13 +2020,13 @@ function createMcpServer(pluginTools = [], request) {
1485
2020
  });
1486
2021
  server.registerTool("taxonomy_update", {
1487
2022
  title: "Update Taxonomy Definition",
1488
- description: "Update an existing taxonomy definition. The taxonomy `name` cannot be changed. Pass `locale` to update a specific translation; otherwise the lowest matching locale is updated. Any field may be omitted to leave it unchanged.",
2023
+ description: "Update an existing taxonomy definition. The taxonomy `name` cannot be changed. Pass `locale` to update a specific translation's `label` and `labelSingular`; otherwise the lowest matching locale is updated. `hierarchical` and `collections` change for every locale. Any field may be omitted to leave it unchanged.",
1489
2024
  inputSchema: z.object({
1490
2025
  name: z.string().describe("Taxonomy name to update"),
1491
2026
  label: updateTaxonomyDefBody.shape.label.describe("New display name"),
1492
2027
  labelSingular: updateTaxonomyDefBody.shape.labelSingular.describe("New singular display name; pass null to clear"),
1493
- hierarchical: updateTaxonomyDefBody.shape.hierarchical.describe("Whether the taxonomy supports parent/child terms"),
1494
- collections: updateTaxonomyDefBody.shape.collections.describe("Collection slugs this taxonomy applies to"),
2028
+ hierarchical: updateTaxonomyDefBody.shape.hierarchical.describe("Whether the taxonomy supports parent/child terms, in every locale"),
2029
+ collections: updateTaxonomyDefBody.shape.collections.describe("Collection slugs this taxonomy applies to, in every locale"),
1495
2030
  locale: z.string().optional().describe("Locale of the definition to update")
1496
2031
  })
1497
2032
  }, async (args, extra) => {
@@ -1499,7 +2034,7 @@ function createMcpServer(pluginTools = [], request) {
1499
2034
  requireRole(extra, Role.EDITOR);
1500
2035
  const ec = getEmDash(extra);
1501
2036
  try {
1502
- const { handleTaxonomyUpdate } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
2037
+ const { handleTaxonomyUpdate } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
1503
2038
  return unwrapAndInvalidate(extra, await handleTaxonomyUpdate(ec.db, args.name, {
1504
2039
  label: args.label,
1505
2040
  labelSingular: args.labelSingular,
@@ -1521,7 +2056,7 @@ function createMcpServer(pluginTools = [], request) {
1521
2056
  requireRole(extra, Role.EDITOR);
1522
2057
  const ec = getEmDash(extra);
1523
2058
  try {
1524
- const { handleTaxonomyDelete } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
2059
+ const { handleTaxonomyDelete } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
1525
2060
  return unwrapAndInvalidate(extra, await handleTaxonomyDelete(ec.db, args.name), [taxonomyTag(args.name)]);
1526
2061
  } catch (error) {
1527
2062
  return respondHandlerError(error, "TAXONOMY_DELETE_ERROR");
@@ -1541,11 +2076,11 @@ function createMcpServer(pluginTools = [], request) {
1541
2076
  requireScope(extra, "content:read");
1542
2077
  const ec = getEmDash(extra);
1543
2078
  try {
1544
- const { handleTaxonomyList } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
2079
+ const { handleTaxonomyList } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
1545
2080
  const listResult = await handleTaxonomyList(ec.db, { locale: args.locale });
1546
2081
  if (!listResult.success) return unwrap(listResult);
1547
2082
  if (!listResult.data.taxonomies.find((t) => t.name === args.taxonomy)) return respondError("NOT_FOUND", `Taxonomy '${args.taxonomy}' not found`);
1548
- const { TaxonomyRepository } = await import("../../../taxonomy-Dj1vpw5E.mjs").then((n) => n.n);
2083
+ const { TaxonomyRepository } = await import("../../../taxonomy-C3Fu1YeH.mjs").then((n) => n.n);
1549
2084
  const repo = new TaxonomyRepository(ec.db);
1550
2085
  const limit = Math.min(args.limit ?? 50, 100);
1551
2086
  let cursor;
@@ -1599,14 +2134,14 @@ function createMcpServer(pluginTools = [], request) {
1599
2134
  parentId: z.string().optional().describe("Parent term ID for hierarchical taxonomies"),
1600
2135
  description: z.string().optional().describe("Description of the term"),
1601
2136
  locale: z.string().optional().describe("Locale for the new term (e.g. 'es')"),
1602
- translationOf: z.string().optional().describe("Term id to join as a translation (same translation_group)")
2137
+ translationOf: z.string().optional().describe("Term id to join as a translation (same translation_group). The new term takes that term's parent and position; a different parentId moves the term in every locale")
1603
2138
  })
1604
2139
  }, async (args, extra) => {
1605
2140
  requireScope(extra, "taxonomies:manage");
1606
2141
  requireRole(extra, Role.EDITOR);
1607
2142
  const ec = getEmDash(extra);
1608
2143
  try {
1609
- const { handleTermCreate } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
2144
+ const { handleTermCreate } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
1610
2145
  return unwrapAndInvalidate(extra, await handleTermCreate(ec.db, args.taxonomy, {
1611
2146
  slug: args.slug,
1612
2147
  label: args.label,
@@ -1636,7 +2171,7 @@ function createMcpServer(pluginTools = [], request) {
1636
2171
  requireRole(extra, Role.EDITOR);
1637
2172
  const ec = getEmDash(extra);
1638
2173
  try {
1639
- const { handleTermUpdate } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
2174
+ const { handleTermUpdate } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
1640
2175
  return unwrapAndInvalidate(extra, await handleTermUpdate(ec.db, args.taxonomy, args.termSlug, {
1641
2176
  slug: args.slug,
1642
2177
  label: args.label,
@@ -1661,7 +2196,7 @@ function createMcpServer(pluginTools = [], request) {
1661
2196
  requireRole(extra, Role.EDITOR);
1662
2197
  const ec = getEmDash(extra);
1663
2198
  try {
1664
- const { handleTermDelete } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
2199
+ const { handleTermDelete } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
1665
2200
  return unwrapAndInvalidate(extra, await handleTermDelete(ec.db, args.taxonomy, args.termSlug, { locale: args.locale }), [taxonomyTag(args.taxonomy)]);
1666
2201
  } catch (error) {
1667
2202
  return respondHandlerError(error, "TAXONOMY_TERM_DELETE_ERROR");
@@ -1676,7 +2211,7 @@ function createMcpServer(pluginTools = [], request) {
1676
2211
  requireScope(extra, "content:read");
1677
2212
  const ec = getEmDash(extra);
1678
2213
  try {
1679
- const { handleTermTranslations } = await import("../../../taxonomies-ClCo4IGO.mjs").then((n) => n.m);
2214
+ const { handleTermTranslations } = await import("../../../taxonomies-C_XMoRcX.mjs").then((n) => n.m);
1680
2215
  return unwrap(await handleTermTranslations(ec.db, args.id));
1681
2216
  } catch (error) {
1682
2217
  return respondHandlerError(error, "TERM_TRANSLATIONS_ERROR");
@@ -1691,7 +2226,7 @@ function createMcpServer(pluginTools = [], request) {
1691
2226
  requireScope(extra, "content:read");
1692
2227
  const ec = getEmDash(extra);
1693
2228
  try {
1694
- const { handleMenuList } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
2229
+ const { handleMenuList } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
1695
2230
  return unwrap(await handleMenuList(ec.db, { locale: args.locale }));
1696
2231
  } catch (error) {
1697
2232
  return respondHandlerError(error, "MENU_LIST_ERROR");
@@ -1709,7 +2244,7 @@ function createMcpServer(pluginTools = [], request) {
1709
2244
  requireScope(extra, "content:read");
1710
2245
  const ec = getEmDash(extra);
1711
2246
  try {
1712
- const { handleMenuGet } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
2247
+ const { handleMenuGet } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
1713
2248
  return unwrap(await handleMenuGet(ec.db, args.name, { locale: args.locale }));
1714
2249
  } catch (error) {
1715
2250
  return respondHandlerError(error, "MENU_GET_ERROR");
@@ -1724,7 +2259,7 @@ function createMcpServer(pluginTools = [], request) {
1724
2259
  requireScope(extra, "content:read");
1725
2260
  const ec = getEmDash(extra);
1726
2261
  try {
1727
- const { handleMenuTranslations } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
2262
+ const { handleMenuTranslations } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
1728
2263
  return unwrap(await handleMenuTranslations(ec.db, args.id));
1729
2264
  } catch (error) {
1730
2265
  return respondHandlerError(error, "MENU_TRANSLATIONS_ERROR");
@@ -1744,7 +2279,7 @@ function createMcpServer(pluginTools = [], request) {
1744
2279
  requireRole(extra, Role.EDITOR);
1745
2280
  const ec = getEmDash(extra);
1746
2281
  try {
1747
- const { handleMenuCreate } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
2282
+ const { handleMenuCreate } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
1748
2283
  return unwrapAndInvalidate(extra, await handleMenuCreate(ec.db, {
1749
2284
  name: args.name,
1750
2285
  label: args.label,
@@ -1768,7 +2303,7 @@ function createMcpServer(pluginTools = [], request) {
1768
2303
  requireRole(extra, Role.EDITOR);
1769
2304
  const ec = getEmDash(extra);
1770
2305
  try {
1771
- const { handleMenuUpdate } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
2306
+ const { handleMenuUpdate } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
1772
2307
  return unwrapAndInvalidate(extra, await handleMenuUpdate(ec.db, args.name, {
1773
2308
  label: args.label,
1774
2309
  locale: args.locale
@@ -1790,7 +2325,7 @@ function createMcpServer(pluginTools = [], request) {
1790
2325
  requireRole(extra, Role.EDITOR);
1791
2326
  const ec = getEmDash(extra);
1792
2327
  try {
1793
- const { handleMenuDelete } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
2328
+ const { handleMenuDelete } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
1794
2329
  return unwrapAndInvalidate(extra, await handleMenuDelete(ec.db, args.name, { locale: args.locale }), [menuTag(args.name)]);
1795
2330
  } catch (error) {
1796
2331
  return respondHandlerError(error, "MENU_DELETE_ERROR");
@@ -1825,7 +2360,7 @@ function createMcpServer(pluginTools = [], request) {
1825
2360
  requireRole(extra, Role.EDITOR);
1826
2361
  const ec = getEmDash(extra);
1827
2362
  try {
1828
- const { handleMenuSetItems } = await import("../../../menus-Wy8m5NcH.mjs").then((n) => n.d);
2363
+ const { handleMenuSetItems } = await import("../../../menus-ITeAbcIF.mjs").then((n) => n.d);
1829
2364
  return unwrapAndInvalidate(extra, await handleMenuSetItems(ec.db, args.name, args.items, { locale: args.locale }), [menuTag(args.name)]);
1830
2365
  } catch (error) {
1831
2366
  return respondHandlerError(error, "MENU_SET_ITEMS_ERROR");
@@ -1872,7 +2407,7 @@ function createMcpServer(pluginTools = [], request) {
1872
2407
  requireRole(extra, Role.EDITOR);
1873
2408
  const ec = getEmDash(extra);
1874
2409
  try {
1875
- const { handleSettingsGet } = await import("../../../settings-g2F2a3Ub.mjs").then((n) => n.r);
2410
+ const { handleSettingsGet } = await import("../../../settings-2xNYr90o.mjs").then((n) => n.r);
1876
2411
  return unwrap(await handleSettingsGet(ec.db, ec.storage));
1877
2412
  } catch (error) {
1878
2413
  return respondHandlerError(error, "SETTINGS_READ_ERROR");
@@ -1880,12 +2415,12 @@ function createMcpServer(pluginTools = [], request) {
1880
2415
  });
1881
2416
  server.registerTool("settings_update", {
1882
2417
  title: "Update Site Settings",
1883
- description: "Update one or more site-wide settings. This is a partial update: only the fields provided are changed; omitted fields are left as-is. Returns the full settings object after the update. To set a media reference (logo, favicon, seo.defaultOgImage), pass an object with `mediaId` (and optional `alt`) — the media item must already exist (use media_create first).",
2418
+ description: "Update one or more site-wide settings. This is a partial update: only the fields provided are changed; omitted fields are left as-is. Returns the full settings object after the update. To set a media reference (logo, favicon, seo.defaultOgImage), pass an object with `mediaId` (and optional `alt`) — the media item must already exist (use media_create first), or pass null to remove it.",
1884
2419
  inputSchema: z.object({
1885
2420
  title: z.string().optional().describe("Site title"),
1886
2421
  tagline: z.string().optional().describe("Site tagline / short description"),
1887
- logo: settingsMediaReferenceSchema.optional().describe("Logo media reference ({ mediaId, alt? })"),
1888
- favicon: settingsMediaReferenceSchema.optional().describe("Favicon media reference ({ mediaId, alt? })"),
2422
+ logo: settingsMediaReferenceSchema.nullable().optional().describe("Logo media reference ({ mediaId, alt? }); null removes it"),
2423
+ favicon: settingsMediaReferenceSchema.nullable().optional().describe("Favicon media reference ({ mediaId, alt? }); null removes it"),
1889
2424
  url: z.union([z.url().refine((u) => HTTP_SCHEME_PATTERN.test(u), "URL must use http or https"), z.literal("")]).optional().describe("Canonical site URL (http or https). Empty string clears it."),
1890
2425
  postsPerPage: z.number().int().min(1).max(100).optional().describe("Default page size for content listings"),
1891
2426
  dateFormat: z.string().optional().describe("Date format token string"),
@@ -1898,12 +2433,126 @@ function createMcpServer(pluginTools = [], request) {
1898
2433
  requireRole(extra, Role.ADMIN);
1899
2434
  const ec = getEmDash(extra);
1900
2435
  try {
1901
- const { handleSettingsUpdate } = await import("../../../settings-g2F2a3Ub.mjs").then((n) => n.r);
2436
+ const { handleSettingsUpdate } = await import("../../../settings-2xNYr90o.mjs").then((n) => n.r);
1902
2437
  return unwrapAndInvalidate(extra, await handleSettingsUpdate(ec.db, ec.storage, args), [siteSettingsTag()]);
1903
2438
  } catch (error) {
1904
2439
  return respondHandlerError(error, "SETTINGS_UPDATE_ERROR");
1905
2440
  }
1906
2441
  });
2442
+ server.registerTool("site_transfer_capabilities", {
2443
+ title: "Get Site Transfer Capabilities",
2444
+ description: "Site package format versions, features, and limits this site supports, and whether it can receive an import (its portable content is empty) with the reasons it cannot. Requires any transfer scope (transfer:export, transfer:analyze, or transfer:execute).",
2445
+ inputSchema: z.object({}),
2446
+ annotations: { readOnlyHint: true }
2447
+ }, async (_args, extra) => {
2448
+ requireRole(extra, Role.ADMIN);
2449
+ requireTransferScope(extra, "transfer:*");
2450
+ return unwrap(await transferCapabilities(transferContext(extra)));
2451
+ });
2452
+ server.registerTool("site_export_start", {
2453
+ title: "Start Site Export",
2454
+ description: "Start exporting the whole site as a portable site package (schema, content, media, settings; never users, credentials, or secrets). Returns the operation id and status only; drive it with site_export_status. The package itself is downloaded outside MCP, from the admin or the CLI. Requires the transfer:export scope. " + APPROVAL_FLOW_DESCRIPTION,
2455
+ inputSchema: z.object({
2456
+ comments: z.boolean().optional().describe("Include comments and reactions (default true)"),
2457
+ approvalId: transferApprovalIdSchema.optional()
2458
+ })
2459
+ }, async (args, extra) => {
2460
+ requireRole(extra, Role.ADMIN);
2461
+ const scoped = transferScopeHeld(extra, "transfer:export");
2462
+ const { userId, tokenId } = getExtra(extra);
2463
+ return unwrap(await startExport(transferContext(extra), {
2464
+ userId,
2465
+ tokenId
2466
+ }, {
2467
+ ...args,
2468
+ scoped
2469
+ }));
2470
+ });
2471
+ server.registerTool("site_export_status", {
2472
+ title: "Get Site Export Status",
2473
+ description: "Report an export's state, stage, and progress, and once it is complete its package digest and record and media totals. By default each call also runs one bounded export step, so call it repeatedly until nextRequestInMs is null; pass advance: false to only read. Requires the transfer:export scope, or the approval that started this export (same token).",
2474
+ inputSchema: z.object({
2475
+ operationId: transferOperationIdSchema,
2476
+ advance: z.boolean().optional().describe("Run one bounded export step before reporting (default true)")
2477
+ })
2478
+ }, async (args, extra) => {
2479
+ requireRole(extra, Role.ADMIN);
2480
+ await requireTransferAccess(extra, "transfer:export", "export", args.operationId);
2481
+ return unwrap(await exportStatus(transferContext(extra), {
2482
+ operationId: args.operationId,
2483
+ advance: args.advance ?? true
2484
+ }));
2485
+ });
2486
+ server.registerTool("site_import_analyze", {
2487
+ title: "Analyze Site Import",
2488
+ description: "Validate an uploaded site package against this site and produce an import plan. The package must already be uploaded over HTTP, from the admin or the CLI; MCP never carries package bytes. Each call runs one bounded analysis step: repeat until nextRequestInMs is null, then read plan (counts, principals with suggested user mappings, warnings, blockers, packageDigest, planDigest). Pass decisions to map principals or keep this site's title and tagline; that produces a new planDigest. Principal emails are never returned. Writes no site content. Requires the transfer:analyze scope.",
2489
+ inputSchema: z.object({
2490
+ operationId: transferOperationIdSchema,
2491
+ decisions: siteImportDecisionsInputSchema.optional().describe("principalMappings (principal id to target user id, or null to drop the reference) and siteTitle / siteTagline ('package' or 'target'). Omitted values keep the plan defaults.")
2492
+ })
2493
+ }, async (args, extra) => {
2494
+ requireRole(extra, Role.ADMIN);
2495
+ requireTransferScope(extra, "transfer:analyze");
2496
+ return unwrap(await analyzeImport(transferContext(extra), args));
2497
+ });
2498
+ server.registerTool("site_import_start", {
2499
+ title: "Start Site Import",
2500
+ description: "Start importing an analyzed package into this site. packageDigest and planDigest must be the values from the latest site_import_analyze plan, which must have no blockers. Returns the operation id and status; drive it with site_import_resume. The site refuses ordinary content writes until the import completes or an admin abandons it. Requires the transfer:execute scope. " + APPROVAL_FLOW_DESCRIPTION,
2501
+ inputSchema: z.object({
2502
+ operationId: transferOperationIdSchema,
2503
+ packageDigest: z.string().regex(SHA256_DIGEST_PATTERN, "Expected sha256:<64 hex>").describe("Package digest from the plan"),
2504
+ planDigest: z.string().regex(SHA256_DIGEST_PATTERN, "Expected sha256:<64 hex>").describe("Plan digest from the latest analysis"),
2505
+ approvalId: transferApprovalIdSchema.optional()
2506
+ }),
2507
+ annotations: { destructiveHint: true }
2508
+ }, async (args, extra) => {
2509
+ requireRole(extra, Role.ADMIN);
2510
+ const scoped = transferScopeHeld(extra, "transfer:execute");
2511
+ const { userId, tokenId } = getExtra(extra);
2512
+ return unwrap(await startImport(transferContext(extra), {
2513
+ userId,
2514
+ tokenId
2515
+ }, {
2516
+ operationId: args.operationId,
2517
+ packageDigest: transferDigest(args.packageDigest),
2518
+ planDigest: transferDigest(args.planDigest),
2519
+ approvalId: args.approvalId,
2520
+ scoped
2521
+ }));
2522
+ });
2523
+ server.registerTool("site_import_status", {
2524
+ title: "Get Site Import Status",
2525
+ description: "Report an import's state, stage, progress, digests, and uploaded file counts. Does not advance the import. Requires any transfer scope, or the approval that started this import (same token).",
2526
+ inputSchema: z.object({ operationId: transferOperationIdSchema }),
2527
+ annotations: { readOnlyHint: true }
2528
+ }, async (args, extra) => {
2529
+ requireRole(extra, Role.ADMIN);
2530
+ await requireTransferAccess(extra, "transfer:*", "import", args.operationId);
2531
+ return unwrap(await importStatus(transferContext(extra), args.operationId));
2532
+ });
2533
+ server.registerTool("site_import_resume", {
2534
+ title: "Resume Site Import",
2535
+ description: "Run one bounded step of a started import and report its status. Call repeatedly until nextRequestInMs is null; safe to repeat after a disconnect. Requires the transfer:execute scope, or the approval that started this import (same token).",
2536
+ inputSchema: z.object({ operationId: transferOperationIdSchema })
2537
+ }, async (args, extra) => {
2538
+ requireRole(extra, Role.ADMIN);
2539
+ await requireTransferAccess(extra, "transfer:execute", "import", args.operationId);
2540
+ const { userId, tokenId } = getExtra(extra);
2541
+ return unwrap(await resumeImport(transferContext(extra), {
2542
+ userId,
2543
+ tokenId
2544
+ }, args.operationId));
2545
+ });
2546
+ server.registerTool("site_import_receipt", {
2547
+ title: "Get Site Import Receipt",
2548
+ description: "Return the verified receipt of a completed import: package and plan digests, origin and target site ids, logical digest, record counts, warnings, and the receipt's own digest. Requires any transfer scope, or the approval that started this import (same token).",
2549
+ inputSchema: z.object({ operationId: transferOperationIdSchema }),
2550
+ annotations: { readOnlyHint: true }
2551
+ }, async (args, extra) => {
2552
+ requireRole(extra, Role.ADMIN);
2553
+ await requireTransferAccess(extra, "transfer:*", "import", args.operationId);
2554
+ return unwrap(await importReceipt(transferContext(extra), args.operationId));
2555
+ });
1907
2556
  return server;
1908
2557
  }
1909
2558
 
@@ -1940,6 +2589,7 @@ const POST = async ({ request, locals, cache }) => {
1940
2589
  userId: user.id,
1941
2590
  userRole: user.role,
1942
2591
  tokenScopes: locals.tokenScopes,
2592
+ tokenId: locals.tokenId,
1943
2593
  cache
1944
2594
  }
1945
2595
  } });