emdash 0.21.0 → 0.23.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 (655) hide show
  1. package/dist/{adapters-BxSmgtbF.d.mts → adapters-DAAjOID4.d.mts} +1 -1
  2. package/dist/{adapters-BxSmgtbF.d.mts.map → adapters-DAAjOID4.d.mts.map} +1 -1
  3. package/dist/after-B1IIdH3Y.mjs +29 -0
  4. package/dist/after-B1IIdH3Y.mjs.map +1 -0
  5. package/dist/{allowed-origins-BqC8cul8.mjs → allowed-origins-D5FxMUo8.mjs} +2 -2
  6. package/dist/{allowed-origins-BqC8cul8.mjs.map → allowed-origins-D5FxMUo8.mjs.map} +1 -1
  7. package/dist/api/route-utils.d.mts +3 -3
  8. package/dist/api/route-utils.mjs +20 -19
  9. package/dist/api/route-utils.mjs.map +1 -1
  10. package/dist/api/schemas/index.d.mts +2 -2
  11. package/dist/api/schemas/index.mjs +4 -4
  12. package/dist/{api-DxjIV2o8.mjs → api-BQ_yKRdG.mjs} +31 -25
  13. package/dist/api-BQ_yKRdG.mjs.map +1 -0
  14. package/dist/{api-tokens-BFFkB0jB.mjs → api-tokens-D6ppjIVi.mjs} +13 -3
  15. package/dist/api-tokens-D6ppjIVi.mjs.map +1 -0
  16. package/dist/{apply-CLjxheyb.mjs → apply-CWRyxIoO.mjs} +18 -18
  17. package/dist/{apply-CLjxheyb.mjs.map → apply-CWRyxIoO.mjs.map} +1 -1
  18. package/dist/astro/image-endpoint.d.mts +8 -0
  19. package/dist/astro/image-endpoint.d.mts.map +1 -0
  20. package/dist/astro/image-endpoint.mjs +55 -0
  21. package/dist/astro/image-endpoint.mjs.map +1 -0
  22. package/dist/astro/index.d.mts +36 -11
  23. package/dist/astro/index.d.mts.map +1 -1
  24. package/dist/astro/index.mjs +122 -26
  25. package/dist/astro/index.mjs.map +1 -1
  26. package/dist/astro/middleware/auth.d.mts +9 -9
  27. package/dist/astro/middleware/auth.d.mts.map +1 -1
  28. package/dist/astro/middleware/auth.mjs +12 -10
  29. package/dist/astro/middleware/auth.mjs.map +1 -1
  30. package/dist/astro/middleware/redirect.mjs +6 -6
  31. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  32. package/dist/astro/middleware/request-context.mjs +8 -6
  33. package/dist/astro/middleware/request-context.mjs.map +1 -1
  34. package/dist/astro/middleware/setup.mjs +1 -1
  35. package/dist/astro/middleware.d.mts +1 -1
  36. package/dist/astro/middleware.d.mts.map +1 -1
  37. package/dist/astro/middleware.mjs +444 -149
  38. package/dist/astro/middleware.mjs.map +1 -1
  39. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +7 -7
  40. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +7 -7
  41. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +5 -5
  42. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
  43. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -6
  44. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +10 -10
  45. package/dist/astro/routes/api/admin/byline-fields/index.mjs +10 -10
  46. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +10 -10
  47. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +18 -16
  48. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  49. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +18 -16
  50. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  51. package/dist/astro/routes/api/admin/bylines/index.mjs +18 -16
  52. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  53. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +15 -13
  54. package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
  55. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -6
  56. package/dist/astro/routes/api/admin/comments/_id_.mjs.map +1 -1
  57. package/dist/astro/routes/api/admin/comments/bulk.mjs +12 -10
  58. package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -6
  60. package/dist/astro/routes/api/admin/comments/counts.mjs.map +1 -1
  61. package/dist/astro/routes/api/admin/comments/index.mjs +12 -10
  62. package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
  63. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  64. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  65. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -5
  66. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -5
  67. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +41 -39
  68. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
  69. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +41 -39
  70. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
  71. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +40 -38
  72. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  73. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +40 -38
  74. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  75. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +40 -38
  76. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  77. package/dist/astro/routes/api/admin/plugins/index.mjs +40 -38
  78. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  79. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +4 -4
  80. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +40 -38
  81. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  82. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +40 -38
  83. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  84. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +40 -38
  85. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  86. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +40 -38
  87. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  88. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +41 -39
  89. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  90. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +40 -38
  91. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  92. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +41 -39
  93. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  94. package/dist/astro/routes/api/admin/plugins/updates.mjs +40 -38
  95. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +40 -38
  97. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +4 -4
  99. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +40 -38
  100. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  101. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +4 -4
  102. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -3
  103. package/dist/astro/routes/api/admin/users/_id_/index.mjs +8 -8
  104. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +5 -5
  105. package/dist/astro/routes/api/admin/users/index.mjs +7 -7
  106. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  107. package/dist/astro/routes/api/auth/invite/accept.mjs +3 -3
  108. package/dist/astro/routes/api/auth/invite/complete.mjs +12 -12
  109. package/dist/astro/routes/api/auth/invite/index.mjs +9 -9
  110. package/dist/astro/routes/api/auth/invite/register-options.mjs +11 -11
  111. package/dist/astro/routes/api/auth/logout.mjs +4 -4
  112. package/dist/astro/routes/api/auth/magic-link/send.mjs +11 -11
  113. package/dist/astro/routes/api/auth/magic-link/verify.mjs +4 -4
  114. package/dist/astro/routes/api/auth/me.mjs +8 -8
  115. package/dist/astro/routes/api/auth/mode.mjs +1 -1
  116. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +4 -4
  117. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  118. package/dist/astro/routes/api/auth/passkey/_id_.mjs +7 -7
  119. package/dist/astro/routes/api/auth/passkey/index.mjs +3 -3
  120. package/dist/astro/routes/api/auth/passkey/options.mjs +13 -13
  121. package/dist/astro/routes/api/auth/passkey/register/options.mjs +11 -11
  122. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +12 -12
  123. package/dist/astro/routes/api/auth/passkey/verify.mjs +12 -12
  124. package/dist/astro/routes/api/auth/signup/complete.mjs +12 -12
  125. package/dist/astro/routes/api/auth/signup/request.mjs +11 -11
  126. package/dist/astro/routes/api/auth/signup/verify.mjs +3 -3
  127. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +16 -15
  128. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -1
  129. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.d.mts +9 -0
  130. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.d.mts.map +1 -0
  131. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +179 -0
  132. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -0
  133. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -4
  134. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +4 -4
  135. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +4 -4
  136. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -4
  137. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +13 -13
  138. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +8 -8
  139. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +4 -4
  140. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -4
  141. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +8 -8
  142. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +17 -15
  143. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  144. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -4
  145. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +4 -4
  146. package/dist/astro/routes/api/content/_collection_/_id_.mjs +8 -8
  147. package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -4
  148. package/dist/astro/routes/api/content/_collection_/index.mjs +8 -8
  149. package/dist/astro/routes/api/content/_collection_/trash.mjs +8 -8
  150. package/dist/astro/routes/api/dashboard.mjs +10 -8
  151. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  152. package/dist/astro/routes/api/dev/emails.mjs +4 -4
  153. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  154. package/dist/astro/routes/api/import/probe.mjs +12 -12
  155. package/dist/astro/routes/api/import/wordpress/analyze.mjs +5 -5
  156. package/dist/astro/routes/api/import/wordpress/execute.d.mts +9 -9
  157. package/dist/astro/routes/api/import/wordpress/execute.mjs +17 -15
  158. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  159. package/dist/astro/routes/api/import/wordpress/media.mjs +10 -10
  160. package/dist/astro/routes/api/import/wordpress/prepare.mjs +11 -11
  161. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +10 -10
  162. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  163. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +12 -12
  164. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
  165. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +1 -1
  166. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +19 -17
  167. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  168. package/dist/astro/routes/api/manifest.mjs +5 -5
  169. package/dist/astro/routes/api/mcp.mjs +213 -46
  170. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  171. package/dist/astro/routes/api/media/_id_/confirm.mjs +8 -8
  172. package/dist/astro/routes/api/media/_id_.mjs +8 -8
  173. package/dist/astro/routes/api/media/file/_...key_.mjs +3 -3
  174. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
  175. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
  176. package/dist/astro/routes/api/media/providers/index.mjs +4 -4
  177. package/dist/astro/routes/api/media/upload-url.mjs +10 -10
  178. package/dist/astro/routes/api/media.mjs +13 -13
  179. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +11 -9
  180. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  181. package/dist/astro/routes/api/menus/_name_/items.mjs +11 -9
  182. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  183. package/dist/astro/routes/api/menus/_name_/reorder.mjs +11 -9
  184. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  185. package/dist/astro/routes/api/menus/_name_/translations.mjs +11 -9
  186. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  187. package/dist/astro/routes/api/menus/_name_.mjs +11 -9
  188. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  189. package/dist/astro/routes/api/menus/index.mjs +11 -9
  190. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  191. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  192. package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -7
  193. package/dist/astro/routes/api/oauth/device/code.mjs +10 -10
  194. package/dist/astro/routes/api/oauth/device/token.mjs +9 -9
  195. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  196. package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -7
  197. package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -7
  198. package/dist/astro/routes/api/oauth/token.mjs +7 -7
  199. package/dist/astro/routes/api/openapi.json.mjs +5 -5
  200. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +5 -5
  201. package/dist/astro/routes/api/redirects/404s/index.mjs +11 -11
  202. package/dist/astro/routes/api/redirects/404s/summary.mjs +11 -11
  203. package/dist/astro/routes/api/redirects/_id_.mjs +12 -12
  204. package/dist/astro/routes/api/redirects/index.mjs +12 -12
  205. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -4
  206. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +4 -4
  207. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +40 -38
  208. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  209. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +40 -38
  210. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  211. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +40 -38
  212. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  213. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +40 -38
  214. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  215. package/dist/astro/routes/api/schema/collections/index.mjs +40 -38
  216. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  217. package/dist/astro/routes/api/schema/index.mjs +9 -8
  218. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  219. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +40 -38
  220. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  221. package/dist/astro/routes/api/schema/orphans/index.mjs +40 -38
  222. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  223. package/dist/astro/routes/api/search/enable.mjs +11 -11
  224. package/dist/astro/routes/api/search/index.mjs +10 -10
  225. package/dist/astro/routes/api/search/rebuild.mjs +11 -11
  226. package/dist/astro/routes/api/search/stats.mjs +7 -7
  227. package/dist/astro/routes/api/search/suggest.mjs +10 -10
  228. package/dist/astro/routes/api/sections/_slug_.mjs +10 -10
  229. package/dist/astro/routes/api/sections/index.mjs +10 -10
  230. package/dist/astro/routes/api/settings/email.mjs +6 -6
  231. package/dist/astro/routes/api/settings.mjs +16 -15
  232. package/dist/astro/routes/api/settings.mjs.map +1 -1
  233. package/dist/astro/routes/api/setup/admin-verify.mjs +13 -13
  234. package/dist/astro/routes/api/setup/admin.mjs +12 -12
  235. package/dist/astro/routes/api/setup/dev-bypass.d.mts.map +1 -1
  236. package/dist/astro/routes/api/setup/dev-bypass.mjs +30 -27
  237. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  238. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  239. package/dist/astro/routes/api/setup/index.mjs +30 -28
  240. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  241. package/dist/astro/routes/api/setup/status.mjs +5 -5
  242. package/dist/astro/routes/api/snapshot.d.mts.map +1 -1
  243. package/dist/astro/routes/api/snapshot.mjs +10 -9
  244. package/dist/astro/routes/api/snapshot.mjs.map +1 -1
  245. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +16 -14
  246. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  247. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +16 -14
  248. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  249. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +16 -14
  250. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  251. package/dist/astro/routes/api/taxonomies/index.mjs +16 -14
  252. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  253. package/dist/astro/routes/api/themes/preview.mjs +8 -8
  254. package/dist/astro/routes/api/typegen.mjs +6 -6
  255. package/dist/astro/routes/api/well-known/auth.mjs +2 -2
  256. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  257. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  258. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +8 -8
  259. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +11 -11
  260. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +11 -11
  261. package/dist/astro/routes/api/widget-areas/_name_.mjs +7 -7
  262. package/dist/astro/routes/api/widget-areas/index.mjs +11 -11
  263. package/dist/astro/routes/api/widget-components.mjs +4 -4
  264. package/dist/astro/routes/robots.txt.mjs +10 -9
  265. package/dist/astro/routes/robots.txt.mjs.map +1 -1
  266. package/dist/astro/routes/sitemap-_collection_.xml.mjs +13 -12
  267. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  268. package/dist/astro/routes/sitemap.xml.mjs +11 -10
  269. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  270. package/dist/astro/types.d.mts +16 -12
  271. package/dist/astro/types.d.mts.map +1 -1
  272. package/dist/auth/providers/github.d.mts +1 -1
  273. package/dist/auth/providers/google.d.mts +1 -1
  274. package/dist/{authorize-D5gfBVU5.mjs → authorize-Cse0k7B0.mjs} +2 -2
  275. package/dist/{authorize-D5gfBVU5.mjs.map → authorize-Cse0k7B0.mjs.map} +1 -1
  276. package/dist/{base64-CqR-7kqF.mjs → base64-CmWvODNW.mjs} +1 -1
  277. package/dist/{base64-CqR-7kqF.mjs.map → base64-CmWvODNW.mjs.map} +1 -1
  278. package/dist/{byline-V_Qp1Ziw.mjs → byline-DVo-liaP.mjs} +27 -76
  279. package/dist/byline-DVo-liaP.mjs.map +1 -0
  280. package/dist/{byline-fields-B0NO1yUB.mjs → byline-fields-B-KXkg5R.mjs} +3 -3
  281. package/dist/{byline-fields-B0NO1yUB.mjs.map → byline-fields-B-KXkg5R.mjs.map} +1 -1
  282. package/dist/{byline-fields-nBVqK_Ff.mjs → byline-fields-DaMKzkhO.mjs} +2 -2
  283. package/dist/{byline-fields-nBVqK_Ff.mjs.map → byline-fields-DaMKzkhO.mjs.map} +1 -1
  284. package/dist/{byline-fields-CQJRIQkn.d.mts → byline-fields-RFPkDLRw.d.mts} +56 -31
  285. package/dist/byline-fields-RFPkDLRw.d.mts.map +1 -0
  286. package/dist/{byline-registry-DedidtqC.mjs → byline-registry-BOjqDOim.mjs} +3 -3
  287. package/dist/{byline-registry-DedidtqC.mjs.map → byline-registry-BOjqDOim.mjs.map} +1 -1
  288. package/dist/{bylines-DfGDnred.mjs → bylines-f5ppBpD5.mjs} +8 -8
  289. package/dist/{bylines-DfGDnred.mjs.map → bylines-f5ppBpD5.mjs.map} +1 -1
  290. package/dist/{bylines-B2NWnIwS.mjs → bylines-pIKgc_TL.mjs} +10 -4
  291. package/dist/{bylines-B2NWnIwS.mjs.map → bylines-pIKgc_TL.mjs.map} +1 -1
  292. package/dist/{cache-DTTHWD8n.mjs → cache-Q6V4U-Xz.mjs} +3 -3
  293. package/dist/{cache-DTTHWD8n.mjs.map → cache-Q6V4U-Xz.mjs.map} +1 -1
  294. package/dist/{challenge-store-woE0bbCf.mjs → challenge-store-LhiqMccz.mjs} +1 -1
  295. package/dist/{challenge-store-woE0bbCf.mjs.map → challenge-store-LhiqMccz.mjs.map} +1 -1
  296. package/dist/{chunks-BerYVuve.mjs → chunks-SyjZaYwV.mjs} +2 -2
  297. package/dist/{chunks-BerYVuve.mjs.map → chunks-SyjZaYwV.mjs.map} +1 -1
  298. package/dist/cli/index.mjs +29 -27
  299. package/dist/cli/index.mjs.map +1 -1
  300. package/dist/client/cf-access.d.mts +1 -1
  301. package/dist/client/index.d.mts +1 -1
  302. package/dist/client/index.mjs +2 -1
  303. package/dist/client/index.mjs.map +1 -1
  304. package/dist/{comment-sqQxNpN3.mjs → comment-80UyJJUR.mjs} +11 -3
  305. package/dist/comment-80UyJJUR.mjs.map +1 -0
  306. package/dist/comment-reaction-Dyb-AutY.mjs +85 -0
  307. package/dist/comment-reaction-Dyb-AutY.mjs.map +1 -0
  308. package/dist/{comments-D2hNuxNa.mjs → comments-Cczx7AvD.mjs} +3 -3
  309. package/dist/{comments-D2hNuxNa.mjs.map → comments-Cczx7AvD.mjs.map} +1 -1
  310. package/dist/{components-DYKp2gmo.mjs → components-CYt4uVK9.mjs} +1 -1
  311. package/dist/{components-DYKp2gmo.mjs.map → components-CYt4uVK9.mjs.map} +1 -1
  312. package/dist/{content-BIlVx-RX.mjs → content-2PTDNnoh.mjs} +22 -7
  313. package/dist/content-2PTDNnoh.mjs.map +1 -0
  314. package/dist/{context-Cm4pt1Ws.mjs → context-B1W8soLv.mjs} +64 -26
  315. package/dist/context-B1W8soLv.mjs.map +1 -0
  316. package/dist/{cron-DdEVrQ2Y.mjs → cron-C5LVoNmP.mjs} +14 -2
  317. package/dist/cron-C5LVoNmP.mjs.map +1 -0
  318. package/dist/{dashboard-C-UYpps0.mjs → dashboard-CYjpQZ6-.mjs} +4 -4
  319. package/dist/{dashboard-C-UYpps0.mjs.map → dashboard-CYjpQZ6-.mjs.map} +1 -1
  320. package/dist/database/instrumentation.d.mts +19 -0
  321. package/dist/database/instrumentation.d.mts.map +1 -1
  322. package/dist/database/instrumentation.mjs +8 -1
  323. package/dist/database/instrumentation.mjs.map +1 -1
  324. package/dist/db/index.d.mts +3 -3
  325. package/dist/db/index.mjs +1 -1
  326. package/dist/db/libsql.d.mts +1 -1
  327. package/dist/db/postgres.d.mts +1 -1
  328. package/dist/db/sqlite.d.mts +1 -1
  329. package/dist/{db-errors-BluWkwGI.mjs → db-errors-UXB1CK42.mjs} +1 -1
  330. package/dist/{db-errors-BluWkwGI.mjs.map → db-errors-UXB1CK42.mjs.map} +1 -1
  331. package/dist/{default-NHGuJzQ3.mjs → default-CeRG-Ot4.mjs} +1 -1
  332. package/dist/{default-NHGuJzQ3.mjs.map → default-CeRG-Ot4.mjs.map} +1 -1
  333. package/dist/{device-flow-BQApWgnW.mjs → device-flow-DENDCQ9F.mjs} +5 -5
  334. package/dist/{device-flow-BQApWgnW.mjs.map → device-flow-DENDCQ9F.mjs.map} +1 -1
  335. package/dist/{email-console-BbU3RbWv.mjs → email-console-DJP32ucW.mjs} +1 -1
  336. package/dist/{email-console-BbU3RbWv.mjs.map → email-console-DJP32ucW.mjs.map} +1 -1
  337. package/dist/{error-CNn_w7jf.mjs → error-Bl6kZgtt.mjs} +2 -2
  338. package/dist/{error-CNn_w7jf.mjs.map → error-Bl6kZgtt.mjs.map} +1 -1
  339. package/dist/{escape-DPgcxcpL.mjs → escape-Bjio4ZsM.mjs} +1 -1
  340. package/dist/{escape-DPgcxcpL.mjs.map → escape-Bjio4ZsM.mjs.map} +1 -1
  341. package/dist/field-defs-cache-ztrdzUGb.mjs +77 -0
  342. package/dist/field-defs-cache-ztrdzUGb.mjs.map +1 -0
  343. package/dist/{fts-manager-Cx5z8jdA.mjs → fts-manager-CQuHt-vS.mjs} +2 -2
  344. package/dist/{fts-manager-Cx5z8jdA.mjs.map → fts-manager-CQuHt-vS.mjs.map} +1 -1
  345. package/dist/{hash-DlvIFn0b.mjs → hash-DrvzIXcz.mjs} +1 -1
  346. package/dist/{hash-DlvIFn0b.mjs.map → hash-DrvzIXcz.mjs.map} +1 -1
  347. package/dist/{import-KyxT1Mbs.mjs → import-Bb1T9WJS.mjs} +4 -4
  348. package/dist/{import-KyxT1Mbs.mjs.map → import-Bb1T9WJS.mjs.map} +1 -1
  349. package/dist/{index-D2VAiumu.d.mts → index-BaIj5hIq.d.mts} +198 -21
  350. package/dist/index-BaIj5hIq.d.mts.map +1 -0
  351. package/dist/{index-uT2yR66F.d.mts → index-qbL02uhs.d.mts} +3 -3
  352. package/dist/{index-uT2yR66F.d.mts.map → index-qbL02uhs.d.mts.map} +1 -1
  353. package/dist/index.d.mts +18 -17
  354. package/dist/index.mjs +64 -61
  355. package/dist/{init-lock-DlBHjf9-.mjs → init-lock-6b309ZrF.mjs} +2 -29
  356. package/dist/init-lock-6b309ZrF.mjs.map +1 -0
  357. package/dist/{load-Dq91b_DK.mjs → load-BNo-ER8C.mjs} +2 -2
  358. package/dist/{load-Dq91b_DK.mjs.map → load-BNo-ER8C.mjs.map} +1 -1
  359. package/dist/{loader-BqWjcH3h.mjs → loader-Dn74CG1b.mjs} +70 -11
  360. package/dist/loader-Dn74CG1b.mjs.map +1 -0
  361. package/dist/{manifest-schema-DFPeqMAn.mjs → manifest-schema-BWKnQYQF.mjs} +1 -1
  362. package/dist/{manifest-schema-DFPeqMAn.mjs.map → manifest-schema-BWKnQYQF.mjs.map} +1 -1
  363. package/dist/media/image-endpoint.d.mts +74 -0
  364. package/dist/media/image-endpoint.d.mts.map +1 -0
  365. package/dist/media/image-endpoint.mjs +162 -0
  366. package/dist/media/image-endpoint.mjs.map +1 -0
  367. package/dist/media/index.d.mts +1 -1
  368. package/dist/media/index.mjs +2 -2
  369. package/dist/media/local-runtime.d.mts +19 -11
  370. package/dist/media/local-runtime.d.mts.map +1 -1
  371. package/dist/media/local-runtime.mjs +16 -13
  372. package/dist/media/local-runtime.mjs.map +1 -1
  373. package/dist/{media-JOf3pNkw.mjs → media-Bw0sA6rb.mjs} +2 -2
  374. package/dist/{media-JOf3pNkw.mjs.map → media-Bw0sA6rb.mjs.map} +1 -1
  375. package/dist/{media-allowlist-_A0SuDn4.mjs → media-allowlist-B77I5_bw.mjs} +2 -2
  376. package/dist/{media-allowlist-_A0SuDn4.mjs.map → media-allowlist-B77I5_bw.mjs.map} +1 -1
  377. package/dist/{media-url-CqLd69IO.mjs → media-url-O4rm9-SQ.mjs} +1 -1
  378. package/dist/{media-url-CqLd69IO.mjs.map → media-url-O4rm9-SQ.mjs.map} +1 -1
  379. package/dist/{menus-DX4_E01q.mjs → menus-CYs0WZoL.mjs} +20 -6
  380. package/dist/menus-CYs0WZoL.mjs.map +1 -0
  381. package/dist/{menus-Ryk9L7fT.mjs → menus-DS8VTZgo.mjs} +167 -24
  382. package/dist/menus-DS8VTZgo.mjs.map +1 -0
  383. package/dist/{mime-YbtlEtvS.mjs → mime-BTzvzJ8M.mjs} +1 -1
  384. package/dist/{mime-YbtlEtvS.mjs.map → mime-BTzvzJ8M.mjs.map} +1 -1
  385. package/dist/{mode-CGXzIbD8.mjs → mode-BB0F8xTC.mjs} +1 -1
  386. package/dist/{mode-CGXzIbD8.mjs.map → mode-BB0F8xTC.mjs.map} +1 -1
  387. package/dist/{normalize-DKsg36ty.mjs → normalize-ClbNIenm.mjs} +1 -1
  388. package/dist/{normalize-DKsg36ty.mjs.map → normalize-ClbNIenm.mjs.map} +1 -1
  389. package/dist/{oauth-authorization-C2kVyjXI.mjs → oauth-authorization-CsvzIp_F.mjs} +5 -5
  390. package/dist/{oauth-authorization-C2kVyjXI.mjs.map → oauth-authorization-CsvzIp_F.mjs.map} +1 -1
  391. package/dist/{oauth-clients-BC873NCV.mjs → oauth-clients-C9SYwEbZ.mjs} +1 -1
  392. package/dist/{oauth-clients-BC873NCV.mjs.map → oauth-clients-C9SYwEbZ.mjs.map} +1 -1
  393. package/dist/{oauth-state-store-Cd--TUaq.mjs → oauth-state-store---zrApfB.mjs} +1 -1
  394. package/dist/{oauth-state-store-Cd--TUaq.mjs.map → oauth-state-store---zrApfB.mjs.map} +1 -1
  395. package/dist/{oauth-user-lookup-e4wOvDud.mjs → oauth-user-lookup-SHsWRlG9.mjs} +1 -1
  396. package/dist/{oauth-user-lookup-e4wOvDud.mjs.map → oauth-user-lookup-SHsWRlG9.mjs.map} +1 -1
  397. package/dist/object-cache/memory.d.mts +15 -0
  398. package/dist/object-cache/memory.d.mts.map +1 -0
  399. package/dist/object-cache/memory.mjs +56 -0
  400. package/dist/object-cache/memory.mjs.map +1 -0
  401. package/dist/object-cache-SEb2IM4Z.mjs +373 -0
  402. package/dist/object-cache-SEb2IM4Z.mjs.map +1 -0
  403. package/dist/{options-9kLgkE8m.d.mts → options-CqECG0gM.d.mts} +3 -3
  404. package/dist/{options-9kLgkE8m.d.mts.map → options-CqECG0gM.d.mts.map} +1 -1
  405. package/dist/{options-BPCVnesz.mjs → options-DTTML-Tx.mjs} +1 -1
  406. package/dist/{options-BPCVnesz.mjs.map → options-DTTML-Tx.mjs.map} +1 -1
  407. package/dist/page/index.d.mts +2 -2
  408. package/dist/{parse-DzSrk1t8.mjs → parse-C9hpjUyY.mjs} +2 -2
  409. package/dist/{parse-DzSrk1t8.mjs.map → parse-C9hpjUyY.mjs.map} +1 -1
  410. package/dist/{passkey-config-BpjbE_Uv.mjs → passkey-config-C0YfSBko.mjs} +1 -1
  411. package/dist/{passkey-config-BpjbE_Uv.mjs.map → passkey-config-C0YfSBko.mjs.map} +1 -1
  412. package/dist/{patterns-p-RBdTbM.mjs → patterns-BKmjvM7K.mjs} +1 -1
  413. package/dist/{patterns-p-RBdTbM.mjs.map → patterns-BKmjvM7K.mjs.map} +1 -1
  414. package/dist/{placeholder-2xumZh4g.mjs → placeholder-B0s2mWu5.mjs} +1 -1
  415. package/dist/{placeholder-2xumZh4g.mjs.map → placeholder-B0s2mWu5.mjs.map} +1 -1
  416. package/dist/{placeholder-BevVKfay.d.mts → placeholder-QoI4gEzP.d.mts} +1 -1
  417. package/dist/{placeholder-BevVKfay.d.mts.map → placeholder-QoI4gEzP.d.mts.map} +1 -1
  418. package/dist/plugin-types.d.mts +1 -1
  419. package/dist/plugin-utils.d.mts +9 -9
  420. package/dist/plugins/adapt-sandbox-entry.d.mts +9 -9
  421. package/dist/plugins/adapt-sandbox-entry.mjs +4 -2
  422. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  423. package/dist/{transport-1cIrOb1Y.mjs → portable-text-BICg8bTk.mjs} +2 -135
  424. package/dist/portable-text-BICg8bTk.mjs.map +1 -0
  425. package/dist/{preview-Dqv2hwXr.mjs → preview-DKGCt2_p.mjs} +2 -2
  426. package/dist/{preview-Dqv2hwXr.mjs.map → preview-DKGCt2_p.mjs.map} +1 -1
  427. package/dist/{public-url-D_zARuvZ.mjs → public-url-CTVqgMmg.mjs} +1 -1
  428. package/dist/{public-url-D_zARuvZ.mjs.map → public-url-CTVqgMmg.mjs.map} +1 -1
  429. package/dist/{query-Crm038Mc.mjs → query-DgUHZLWB.mjs} +230 -31
  430. package/dist/query-DgUHZLWB.mjs.map +1 -0
  431. package/dist/{rate-limit-hRTBqmw1.mjs → rate-limit-BuQ5d4X_.mjs} +2 -2
  432. package/dist/{rate-limit-hRTBqmw1.mjs.map → rate-limit-BuQ5d4X_.mjs.map} +1 -1
  433. package/dist/{redirect-CRWIt8Zj.mjs → redirect-Bifv_yHv.mjs} +3 -3
  434. package/dist/{redirect-CRWIt8Zj.mjs.map → redirect-Bifv_yHv.mjs.map} +1 -1
  435. package/dist/{redirect-C-OOkyku.mjs → redirect-CS-PHtNh.mjs} +1 -1
  436. package/dist/{redirect-C-OOkyku.mjs.map → redirect-CS-PHtNh.mjs.map} +1 -1
  437. package/dist/{redirects-CP3TnTLO.mjs → redirects-BZ8Mxn8H.mjs} +6 -6
  438. package/dist/{redirects-CP3TnTLO.mjs.map → redirects-BZ8Mxn8H.mjs.map} +1 -1
  439. package/dist/{redirects-6Zg2SoYo.mjs → redirects-x9eFPeyi.mjs} +10 -3
  440. package/dist/redirects-x9eFPeyi.mjs.map +1 -0
  441. package/dist/{registry-diMzD1Wf.mjs → registry-CK1SS6pi.mjs} +6 -6
  442. package/dist/{registry-diMzD1Wf.mjs.map → registry-CK1SS6pi.mjs.map} +1 -1
  443. package/dist/{request-cache-UwmBAiUK.mjs → request-cache-KCNHp_RJ.mjs} +1 -1
  444. package/dist/{request-cache-UwmBAiUK.mjs.map → request-cache-KCNHp_RJ.mjs.map} +1 -1
  445. package/dist/{request-meta-DPechd0W.mjs → request-meta-CmS1tDFf.mjs} +2 -2
  446. package/dist/{request-meta-DPechd0W.mjs.map → request-meta-CmS1tDFf.mjs.map} +1 -1
  447. package/dist/{resolve-B3NUUtVY.mjs → resolve-C7I0qiR0.mjs} +1 -1
  448. package/dist/{resolve-B3NUUtVY.mjs.map → resolve-C7I0qiR0.mjs.map} +1 -1
  449. package/dist/{runner-C8vcbvCe.d.mts → runner-CEtq-6Sm.d.mts} +2 -2
  450. package/dist/{runner-C8vcbvCe.d.mts.map → runner-CEtq-6Sm.d.mts.map} +1 -1
  451. package/dist/{runner--4wMWwKM.mjs → runner-DYYnW530.mjs} +201 -170
  452. package/dist/runner-DYYnW530.mjs.map +1 -0
  453. package/dist/runtime.d.mts +10 -10
  454. package/dist/runtime.mjs +3 -3
  455. package/dist/{schema-BDOkd3OU.mjs → schema-CbFRFoM7.mjs} +13 -8
  456. package/dist/schema-CbFRFoM7.mjs.map +1 -0
  457. package/dist/{search-Bs_J_EW-.mjs → search-C-waE_YW.mjs} +4 -4
  458. package/dist/{search-Bs_J_EW-.mjs.map → search-C-waE_YW.mjs.map} +1 -1
  459. package/dist/{secrets-C8xmE6mR.mjs → secrets-BSf9pRRY.mjs} +5 -5
  460. package/dist/{secrets-C8xmE6mR.mjs.map → secrets-BSf9pRRY.mjs.map} +1 -1
  461. package/dist/{sections-P0zuBlyz.mjs → sections-osX9U-YJ.mjs} +3 -3
  462. package/dist/{sections-P0zuBlyz.mjs.map → sections-osX9U-YJ.mjs.map} +1 -1
  463. package/dist/seed/index.d.mts +2 -2
  464. package/dist/seed/index.mjs +23 -21
  465. package/dist/seo/index.d.mts +1 -1
  466. package/dist/seo/index.mjs +1 -1
  467. package/dist/{seo-DpNgGQjF.mjs → seo-4FovMwNS.mjs} +5 -2
  468. package/dist/seo-4FovMwNS.mjs.map +1 -0
  469. package/dist/{seo-CLhm-Fmb.mjs → seo-DCEF-AVr.mjs} +1 -1
  470. package/dist/{seo-CLhm-Fmb.mjs.map → seo-DCEF-AVr.mjs.map} +1 -1
  471. package/dist/{service-CDQQnT8W.mjs → service-jby1RRmU.mjs} +3 -3
  472. package/dist/{service-CDQQnT8W.mjs.map → service-jby1RRmU.mjs.map} +1 -1
  473. package/dist/session-user-B8aLtKAH.mjs +51 -0
  474. package/dist/session-user-B8aLtKAH.mjs.map +1 -0
  475. package/dist/{settings-sO0Fif4p.mjs → settings-4bRT2NIf.mjs} +3 -3
  476. package/dist/{settings-sO0Fif4p.mjs.map → settings-4bRT2NIf.mjs.map} +1 -1
  477. package/dist/{settings-BjBsmVAo.mjs → settings-t-H2jPuJ.mjs} +18 -10
  478. package/dist/settings-t-H2jPuJ.mjs.map +1 -0
  479. package/dist/{setup-complete-CMMr-oZU.mjs → setup-complete-gEiySUc-.mjs} +2 -2
  480. package/dist/{setup-complete-CMMr-oZU.mjs.map → setup-complete-gEiySUc-.mjs.map} +1 -1
  481. package/dist/{setup-nonce-169xl4fV.mjs → setup-nonce-DzS50zme.mjs} +1 -1
  482. package/dist/{setup-nonce-169xl4fV.mjs.map → setup-nonce-DzS50zme.mjs.map} +1 -1
  483. package/dist/{single-flight-cache-C0UV1Npg.mjs → single-flight-cache-Cdfkic3t.mjs} +2 -2
  484. package/dist/{single-flight-cache-C0UV1Npg.mjs.map → single-flight-cache-Cdfkic3t.mjs.map} +1 -1
  485. package/dist/{site-url-vtsuOvSD.mjs → site-url-BLebyON8.mjs} +2 -2
  486. package/dist/{site-url-vtsuOvSD.mjs.map → site-url-BLebyON8.mjs.map} +1 -1
  487. package/dist/{slugify-Cjh1ssOZ.mjs → slugify-Cce3dTdg.mjs} +1 -1
  488. package/dist/{slugify-Cjh1ssOZ.mjs.map → slugify-Cce3dTdg.mjs.map} +1 -1
  489. package/dist/{ssrf-XO05Voq6.mjs → ssrf-BRKb343l.mjs} +1 -1
  490. package/dist/{ssrf-XO05Voq6.mjs.map → ssrf-BRKb343l.mjs.map} +1 -1
  491. package/dist/{status-2gZklYuj.mjs → status-vUK0SA17.mjs} +1 -1
  492. package/dist/{status-2gZklYuj.mjs.map → status-vUK0SA17.mjs.map} +1 -1
  493. package/dist/storage/local.d.mts +1 -1
  494. package/dist/storage/local.mjs +1 -1
  495. package/dist/storage/s3.d.mts +1 -1
  496. package/dist/storage/s3.mjs +1 -1
  497. package/dist/{taxonomies-DuESHWKI.mjs → taxonomies-BBB8O-CU.mjs} +7 -7
  498. package/dist/{taxonomies-DuESHWKI.mjs.map → taxonomies-BBB8O-CU.mjs.map} +1 -1
  499. package/dist/{taxonomies-BBxYA38v.mjs → taxonomies-Dxrc_szG.mjs} +177 -123
  500. package/dist/taxonomies-Dxrc_szG.mjs.map +1 -0
  501. package/dist/{taxonomy-CdllE4oq.mjs → taxonomy-B2HQuVf5.mjs} +19 -6
  502. package/dist/taxonomy-B2HQuVf5.mjs.map +1 -0
  503. package/dist/{tokens-DMkVjxrx.mjs → tokens-LeuXF9gG.mjs} +2 -2
  504. package/dist/{tokens-DMkVjxrx.mjs.map → tokens-LeuXF9gG.mjs.map} +1 -1
  505. package/dist/{transaction-x2tJQ-A1.mjs → transaction-qfqpPVpu.mjs} +1 -1
  506. package/dist/{transaction-x2tJQ-A1.mjs.map → transaction-qfqpPVpu.mjs.map} +1 -1
  507. package/dist/{transport-jdvsZEIt.d.mts → transport-BZ-03aFT.d.mts} +1 -1
  508. package/dist/{transport-jdvsZEIt.d.mts.map → transport-BZ-03aFT.d.mts.map} +1 -1
  509. package/dist/transport-_2nBz7e9.mjs +135 -0
  510. package/dist/transport-_2nBz7e9.mjs.map +1 -0
  511. package/dist/{trusted-proxy-CHp41Fjj.mjs → trusted-proxy-DZY5WCn2.mjs} +1 -1
  512. package/dist/{trusted-proxy-CHp41Fjj.mjs.map → trusted-proxy-DZY5WCn2.mjs.map} +1 -1
  513. package/dist/{types-Del0VMij.d.mts → types-B-gIxFCE.d.mts} +9 -1
  514. package/dist/{types-Del0VMij.d.mts.map → types-B-gIxFCE.d.mts.map} +1 -1
  515. package/dist/{types-DdkL6fyv.d.mts → types-BG8_XTLj.d.mts} +1 -1
  516. package/dist/{types-DdkL6fyv.d.mts.map → types-BG8_XTLj.d.mts.map} +1 -1
  517. package/dist/{types-BTnnBYVX.d.mts → types-BWh2MjmA.d.mts} +15 -2
  518. package/dist/types-BWh2MjmA.d.mts.map +1 -0
  519. package/dist/{types-CkEuk-Zr.d.mts → types-BWqGVhFn.d.mts} +1 -1
  520. package/dist/{types-CkEuk-Zr.d.mts.map → types-BWqGVhFn.d.mts.map} +1 -1
  521. package/dist/{types-DejCHqWT.mjs → types-CQAugunJ.mjs} +1 -1
  522. package/dist/{types-DejCHqWT.mjs.map → types-CQAugunJ.mjs.map} +1 -1
  523. package/dist/{types-Bzfk2yC8.d.mts → types-CTLJYMhN.d.mts} +1 -1
  524. package/dist/{types-Bzfk2yC8.d.mts.map → types-CTLJYMhN.d.mts.map} +1 -1
  525. package/dist/{types-BFgYtuKd.d.mts → types-CUsXGRVj.d.mts} +1 -1
  526. package/dist/{types-BFgYtuKd.d.mts.map → types-CUsXGRVj.d.mts.map} +1 -1
  527. package/dist/{types-BXSUSAjt.mjs → types-DXOIbece.mjs} +3 -3
  528. package/dist/types-DXOIbece.mjs.map +1 -0
  529. package/dist/{types-u_XxjbS8.d.mts → types-DrYMm9s5.d.mts} +1 -1
  530. package/dist/{types-u_XxjbS8.d.mts.map → types-DrYMm9s5.d.mts.map} +1 -1
  531. package/dist/{types-DO7whVYU.d.mts → types-TTx8uP7V.d.mts} +2 -2
  532. package/dist/{types-DO7whVYU.d.mts.map → types-TTx8uP7V.d.mts.map} +1 -1
  533. package/dist/types-fS7-VTdR.d.mts +124 -0
  534. package/dist/types-fS7-VTdR.d.mts.map +1 -0
  535. package/dist/{types-BIduXPJk.mjs → types-tM44hEcf.mjs} +1 -1
  536. package/dist/{types-BIduXPJk.mjs.map → types-tM44hEcf.mjs.map} +1 -1
  537. package/dist/{user-C0um7wrg.mjs → user-Db-Rti_z.mjs} +3 -3
  538. package/dist/{user-C0um7wrg.mjs.map → user-Db-Rti_z.mjs.map} +1 -1
  539. package/dist/{utils-C4M981Br.mjs → utils-B7A57fm9.mjs} +2 -2
  540. package/dist/{utils-C4M981Br.mjs.map → utils-B7A57fm9.mjs.map} +1 -1
  541. package/dist/{validate-DGhQPXzI.mjs → validate-0Utjspbs.mjs} +3 -3
  542. package/dist/{validate-DGhQPXzI.mjs.map → validate-0Utjspbs.mjs.map} +1 -1
  543. package/dist/{validate-cJOiOvT2.d.mts → validate-DOFrIb-c.d.mts} +5 -5
  544. package/dist/{validate-cJOiOvT2.d.mts.map → validate-DOFrIb-c.d.mts.map} +1 -1
  545. package/dist/{validation-DVHjPM1M.mjs → validation-D9EnzH1T.mjs} +6 -6
  546. package/dist/{validation-DVHjPM1M.mjs.map → validation-D9EnzH1T.mjs.map} +1 -1
  547. package/dist/version-BgVM_1MU.mjs +7 -0
  548. package/dist/{version-BOjj_cfz.mjs.map → version-BgVM_1MU.mjs.map} +1 -1
  549. package/dist/{widgets-Ci6hLwfO.mjs → widgets-BSTzPUYa.mjs} +4 -4
  550. package/dist/{widgets-Ci6hLwfO.mjs.map → widgets-BSTzPUYa.mjs.map} +1 -1
  551. package/dist/{zod-generator-CarzgPAu.mjs → zod-generator-ElVQOav7.mjs} +51 -15
  552. package/dist/zod-generator-ElVQOav7.mjs.map +1 -0
  553. package/package.json +19 -6
  554. package/src/api/handlers/api-tokens.ts +19 -0
  555. package/src/api/handlers/comment-reactions.ts +165 -0
  556. package/src/api/handlers/schema.ts +8 -0
  557. package/src/api/schemas/bylines.ts +8 -0
  558. package/src/api/schemas/comments.ts +10 -0
  559. package/src/astro/image-endpoint.ts +84 -0
  560. package/src/astro/index.ts +6 -0
  561. package/src/astro/integration/index.ts +83 -22
  562. package/src/astro/integration/routes.ts +5 -0
  563. package/src/astro/integration/runtime.ts +65 -1
  564. package/src/astro/integration/virtual-modules.ts +40 -0
  565. package/src/astro/integration/vite-config.ts +25 -1
  566. package/src/astro/middleware/auth.ts +4 -3
  567. package/src/astro/middleware/request-context.ts +6 -1
  568. package/src/astro/middleware/scoped-db.ts +131 -0
  569. package/src/astro/middleware/stream-end-metrics.ts +15 -9
  570. package/src/astro/middleware.ts +131 -31
  571. package/src/astro/object-cache/adapters.ts +50 -0
  572. package/src/astro/prefetch.ts +77 -0
  573. package/src/astro/routes/admin.astro +5 -1
  574. package/src/astro/routes/api/comments/[collection]/[contentId]/reactions.ts +97 -0
  575. package/src/astro/routes/api/schema/index.ts +9 -3
  576. package/src/astro/routes/api/setup/dev-bypass.ts +5 -1
  577. package/src/astro/routes/api/snapshot.ts +3 -1
  578. package/src/astro/session-user.ts +57 -0
  579. package/src/astro/types.ts +1 -0
  580. package/src/cli/commands/export-seed.ts +10 -7
  581. package/src/comments/query.ts +78 -7
  582. package/src/comments/ranking.ts +58 -0
  583. package/src/components/Block.astro +71 -0
  584. package/src/components/Comments.astro +136 -1
  585. package/src/components/EmDashMedia.astro +1 -2
  586. package/src/components/Image.astro +36 -2
  587. package/src/components/InlinePortableTextEditor.tsx +10 -2
  588. package/src/components/index.ts +5 -0
  589. package/src/components/portable-text-text-align.ts +38 -0
  590. package/src/content/converters/portable-text-to-prosemirror.ts +5 -1
  591. package/src/content/converters/prosemirror-to-portable-text.ts +8 -0
  592. package/src/content/converters/types.ts +1 -0
  593. package/src/database/instrumentation.ts +21 -1
  594. package/src/database/migrations/044_comment_reactions.ts +56 -0
  595. package/src/database/migrations/runner.ts +2 -0
  596. package/src/database/repositories/byline.ts +27 -0
  597. package/src/database/repositories/comment-reaction.ts +132 -0
  598. package/src/database/repositories/comment.ts +10 -0
  599. package/src/database/repositories/content.ts +25 -3
  600. package/src/database/repositories/menu.ts +13 -1
  601. package/src/database/repositories/seo.ts +3 -0
  602. package/src/database/repositories/taxonomy.ts +13 -1
  603. package/src/database/repositories/types.ts +13 -0
  604. package/src/database/types.ts +9 -0
  605. package/src/emdash-runtime.ts +244 -75
  606. package/src/index.ts +22 -0
  607. package/src/loader.ts +97 -5
  608. package/src/mcp/server.ts +307 -20
  609. package/src/media/image-endpoint.ts +167 -0
  610. package/src/media/local-runtime.ts +18 -5
  611. package/src/menus/index.ts +11 -4
  612. package/src/object-cache/codec.ts +73 -0
  613. package/src/object-cache/index.ts +495 -0
  614. package/src/object-cache/memory.ts +91 -0
  615. package/src/object-cache/types.ts +124 -0
  616. package/src/plugins/adapt-sandbox-entry.ts +11 -1
  617. package/src/plugins/context.ts +94 -22
  618. package/src/plugins/cron.ts +18 -2
  619. package/src/plugins/routes.ts +40 -1
  620. package/src/query.ts +304 -18
  621. package/src/schema/query.ts +11 -4
  622. package/src/schema/zod-generator.ts +53 -8
  623. package/src/settings/index.ts +18 -5
  624. package/src/taxonomies/index.ts +263 -165
  625. package/src/ui.ts +5 -0
  626. package/src/virtual-modules.d.ts +24 -0
  627. package/dist/api-DxjIV2o8.mjs.map +0 -1
  628. package/dist/api-tokens-BFFkB0jB.mjs.map +0 -1
  629. package/dist/byline-V_Qp1Ziw.mjs.map +0 -1
  630. package/dist/byline-fields-CQJRIQkn.d.mts.map +0 -1
  631. package/dist/comment-sqQxNpN3.mjs.map +0 -1
  632. package/dist/content-BIlVx-RX.mjs.map +0 -1
  633. package/dist/context-Cm4pt1Ws.mjs.map +0 -1
  634. package/dist/cron-DdEVrQ2Y.mjs.map +0 -1
  635. package/dist/index-D2VAiumu.d.mts.map +0 -1
  636. package/dist/init-lock-DlBHjf9-.mjs.map +0 -1
  637. package/dist/loader-BqWjcH3h.mjs.map +0 -1
  638. package/dist/menus-DX4_E01q.mjs.map +0 -1
  639. package/dist/menus-Ryk9L7fT.mjs.map +0 -1
  640. package/dist/query-Crm038Mc.mjs.map +0 -1
  641. package/dist/redirects-6Zg2SoYo.mjs.map +0 -1
  642. package/dist/runner--4wMWwKM.mjs.map +0 -1
  643. package/dist/schema-BDOkd3OU.mjs.map +0 -1
  644. package/dist/seo-DpNgGQjF.mjs.map +0 -1
  645. package/dist/settings-BjBsmVAo.mjs.map +0 -1
  646. package/dist/taxonomies-BBxYA38v.mjs.map +0 -1
  647. package/dist/taxonomy-CdllE4oq.mjs.map +0 -1
  648. package/dist/transport-1cIrOb1Y.mjs.map +0 -1
  649. package/dist/types-BTnnBYVX.d.mts.map +0 -1
  650. package/dist/types-BXSUSAjt.mjs.map +0 -1
  651. package/dist/version-BOjj_cfz.mjs +0 -7
  652. package/dist/zod-generator-CarzgPAu.mjs.map +0 -1
  653. /package/dist/{api-tokens-C7ywRx7l.mjs → api-tokens-B4BQybOp.mjs} +0 -0
  654. /package/dist/{ssrf-CRZGzjdL.mjs → ssrf-CcX9zvMK.mjs} +0 -0
  655. /package/dist/{types-BoRm8-pp.mjs → types-BvbeGEtr.mjs} +0 -0
@@ -1,8 +1,8 @@
1
- import "../../../base64-CqR-7kqF.mjs";
2
- import "../../../types-BXSUSAjt.mjs";
3
- import { r as handleError } from "../../../error-CNn_w7jf.mjs";
4
- import { n as VERSION, t as COMMIT } from "../../../version-BOjj_cfz.mjs";
5
- import { t as getAuthMode } from "../../../mode-CGXzIbD8.mjs";
1
+ import "../../../base64-CmWvODNW.mjs";
2
+ import "../../../types-DXOIbece.mjs";
3
+ import { r as handleError } from "../../../error-Bl6kZgtt.mjs";
4
+ import { n as VERSION, t as COMMIT } from "../../../version-BgVM_1MU.mjs";
5
+ import { t as getAuthMode } from "../../../mode-BB0F8xTC.mjs";
6
6
 
7
7
  //#region src/astro/routes/api/manifest.ts
8
8
  const prerender = false;
@@ -1,11 +1,12 @@
1
- import "../../../base64-CqR-7kqF.mjs";
2
- import "../../../types-BXSUSAjt.mjs";
3
- import { t as apiError } from "../../../error-CNn_w7jf.mjs";
4
- import { En as contentBylineInputSchema, ln as contentSeoInput } from "../../../redirects-6Zg2SoYo.mjs";
5
- import "../../../byline-fields-B0NO1yUB.mjs";
6
- import "../../../status-2gZklYuj.mjs";
1
+ import "../../../base64-CmWvODNW.mjs";
2
+ import "../../../types-DXOIbece.mjs";
3
+ import { t as apiError } from "../../../error-Bl6kZgtt.mjs";
4
+ import { Dn as contentBylineInputSchema, Tn as bylineUpdateBody, un as contentSeoInput, yn as bylineCreateBody } from "../../../redirects-x9eFPeyi.mjs";
5
+ import "../../../byline-fields-B-KXkg5R.mjs";
6
+ import "../../../status-vUK0SA17.mjs";
7
7
  import "../../../api/schemas/index.mjs";
8
- import { i as hasScope } from "../../../api-tokens-C7ywRx7l.mjs";
8
+ import { i as hasScope } from "../../../api-tokens-B4BQybOp.mjs";
9
+ import { n as convertDataForWrite, t as convertDataForRead } from "../../../portable-text-BICg8bTk.mjs";
9
10
  import { z } from "zod";
10
11
  import { Role, canActOnOwn, hasPermission } from "@emdash-cms/auth";
11
12
  import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
@@ -154,6 +155,40 @@ function getExtra(extra) {
154
155
  function getEmDash(extra) {
155
156
  return getExtra(extra).emdash;
156
157
  }
158
+ async function getCollectionFields(ec, collection) {
159
+ try {
160
+ const { SchemaRegistry } = await import("../../../schema-CbFRFoM7.mjs").then((n) => n.t);
161
+ const col = await new SchemaRegistry(ec.db).getCollectionWithFields(collection);
162
+ return col ? col.fields : null;
163
+ } catch {
164
+ return null;
165
+ }
166
+ }
167
+ /**
168
+ * Convert markdown strings to Portable Text for `portableText` fields on write.
169
+ * Non-string values pass through, so callers may still send Portable Text. If
170
+ * the schema can't be loaded, data is returned unchanged for the handler to
171
+ * validate.
172
+ */
173
+ async function convertWriteData(ec, collection, data) {
174
+ const fields = await getCollectionFields(ec, collection);
175
+ if (!fields) return data;
176
+ return convertDataForWrite(data, fields);
177
+ }
178
+ /**
179
+ * Convert `portableText` field values on each item's `data` to markdown,
180
+ * mutating in place. Inverse of {@link convertWriteData}, gated on the read
181
+ * tools' `markdown` argument.
182
+ */
183
+ async function applyReadMarkdown(ec, collection, items) {
184
+ const fields = await getCollectionFields(ec, collection);
185
+ if (!fields) return;
186
+ for (const item of items) if (item.data && typeof item.data === "object") item.data = convertDataForRead(item.data, fields, false);
187
+ }
188
+ async function invalidateBylines() {
189
+ const { invalidateBylineCache } = await import("../../../bylines-f5ppBpD5.mjs").then((n) => n.t);
190
+ invalidateBylineCache();
191
+ }
157
192
  /**
158
193
  * Enforce a scope requirement on the current request.
159
194
  *
@@ -260,21 +295,27 @@ function createMcpServer() {
260
295
  cursor: z.string().min(1).max(2048).optional().describe("Pagination cursor from a previous response"),
261
296
  orderBy: z.string().optional().describe("Field to sort by (e.g. 'created_at', 'updated_at')"),
262
297
  order: z.enum(["asc", "desc"]).optional().describe("Sort direction (default 'desc')"),
263
- locale: z.string().optional().describe("Filter by locale (e.g. 'en', 'fr'). Only relevant when i18n is enabled.")
298
+ locale: z.string().optional().describe("Filter by locale (e.g. 'en', 'fr'). Only relevant when i18n is enabled."),
299
+ markdown: z.boolean().optional().describe("Return rich text (portableText) fields as Markdown strings instead of Portable Text arrays (default false).")
264
300
  }),
265
301
  annotations: { readOnlyHint: true }
266
302
  }, async (args, extra) => {
267
303
  requireScope(extra, "content:read");
268
304
  const ec = getEmDash(extra);
269
305
  const status = canReadDrafts(extra) ? args.status : "published";
270
- return unwrap(await ec.handleContentList(args.collection, {
306
+ const result = await ec.handleContentList(args.collection, {
271
307
  status,
272
308
  limit: args.limit,
273
309
  cursor: args.cursor,
274
310
  orderBy: args.orderBy,
275
311
  order: args.order,
276
312
  locale: args.locale
277
- }));
313
+ });
314
+ if (result.success && args.markdown) {
315
+ const payload = result.data;
316
+ if (payload && typeof payload === "object" && "items" in payload && Array.isArray(payload.items)) await applyReadMarkdown(ec, args.collection, payload.items);
317
+ }
318
+ return unwrap(result);
278
319
  });
279
320
  server.registerTool("content_get", {
280
321
  title: "Get Content",
@@ -282,12 +323,14 @@ function createMcpServer() {
282
323
  inputSchema: z.object({
283
324
  collection: z.string().describe("Collection slug (e.g. 'posts', 'pages')"),
284
325
  id: z.string().describe("Content item ID (ULID) or slug"),
285
- locale: z.string().optional().describe("Locale to scope slug lookup (e.g. 'fr'). Only affects slug resolution; IDs are globally unique.")
326
+ locale: z.string().optional().describe("Locale to scope slug lookup (e.g. 'fr'). Only affects slug resolution; IDs are globally unique."),
327
+ markdown: z.boolean().optional().describe("Return rich text (portableText) fields as Markdown strings instead of Portable Text arrays (default false).")
286
328
  }),
287
329
  annotations: { readOnlyHint: true }
288
330
  }, async (args, extra) => {
289
331
  requireScope(extra, "content:read");
290
- const result = await getEmDash(extra).handleContentGet(args.collection, args.id, args.locale);
332
+ const ec = getEmDash(extra);
333
+ const result = await ec.handleContentGet(args.collection, args.id, args.locale);
291
334
  if (result.success && !canReadDrafts(extra)) {
292
335
  const data = result.data && typeof result.data === "object" ? result.data : void 0;
293
336
  const item = data?.item && typeof data.item === "object" ? data.item : void 0;
@@ -299,18 +342,20 @@ function createMcpServer() {
299
342
  }
300
343
  });
301
344
  }
345
+ if (result.success && args.markdown && result.data?.item) await applyReadMarkdown(ec, args.collection, [result.data.item]);
302
346
  return unwrap(result);
303
347
  });
304
348
  server.registerTool("content_create", {
305
349
  title: "Create Content",
306
- description: "Create a new content item in a collection. The 'data' object should contain field values matching the collection's schema (use schema_get_collection to check). Rich text fields accept Portable Text JSON arrays. A slug is auto-generated if not provided. Items are created as 'draft' by default — use content_publish to make them live.",
350
+ description: "Create a new content item in a collection. The 'data' object should contain field values matching the collection's schema (use schema_get_collection to check). For rich text (portableText) fields, pass a Markdown string — converted to Portable Text automatically; prefer this. Pass a Portable Text JSON array only for complex content Markdown can't express (custom blocks, embeds). A slug is auto-generated if not provided. Items are created as 'draft' by default — use content_publish to make them live.",
307
351
  inputSchema: z.object({
308
352
  collection: z.string().describe("Collection slug (e.g. 'posts', 'pages')"),
309
353
  data: z.record(z.string(), z.unknown()).describe("Field values as key-value pairs matching the collection schema"),
310
354
  slug: z.string().optional().describe("URL slug (auto-generated from title if omitted)"),
311
355
  status: z.enum(["draft", "published"]).optional().describe("Initial status (default 'draft'). Requires publish permission."),
312
356
  locale: z.string().optional().describe("Locale for this content (e.g. 'fr'). Defaults to default locale."),
313
- translationOf: z.string().optional().describe("ID of the content item this is a translation of. Links items in the same translation group.")
357
+ translationOf: z.string().optional().describe("ID of the content item this is a translation of. Links items in the same translation group."),
358
+ 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.")
314
359
  }),
315
360
  annotations: { destructiveHint: false }
316
361
  }, async (args, extra) => {
@@ -322,17 +367,19 @@ function createMcpServer() {
322
367
  if (!source.success) return unwrap(source);
323
368
  requireOwnership(extra, extractContentAuthorId(source.data), "content:edit_own", "content:edit_any");
324
369
  }
370
+ const data = await convertWriteData(emdash, args.collection, args.data);
325
371
  if (args.status === "published") {
326
372
  if (!hasPermission({
327
373
  id: userId,
328
374
  role: getExtra(extra).userRole
329
375
  }, "content:publish_own")) throw new EmDashAuthError("Insufficient permissions: publishing requires content:publish_own", "INSUFFICIENT_PERMISSIONS");
330
376
  const result = await emdash.handleContentCreate(args.collection, {
331
- data: args.data,
377
+ data,
332
378
  slug: args.slug,
333
379
  authorId: userId,
334
380
  locale: args.locale,
335
- translationOf: args.translationOf
381
+ translationOf: args.translationOf,
382
+ bylines: args.bylines
336
383
  });
337
384
  if (!result.success) return unwrap(result);
338
385
  const itemId = extractContentId(result.data);
@@ -340,16 +387,17 @@ function createMcpServer() {
340
387
  return unwrap(result);
341
388
  }
342
389
  return unwrap(await emdash.handleContentCreate(args.collection, {
343
- data: args.data,
390
+ data,
344
391
  slug: args.slug,
345
392
  authorId: userId,
346
393
  locale: args.locale,
347
- translationOf: args.translationOf
394
+ translationOf: args.translationOf,
395
+ bylines: args.bylines
348
396
  }));
349
397
  });
350
398
  server.registerTool("content_update", {
351
399
  title: "Update Content",
352
- description: "Update an existing content item. Only include fields you want to change in the 'data' object — unspecified fields are left unchanged. Pass the _rev token from content_get to enable optimistic concurrency checking (the update fails if the item was modified since you read it). `seo` and `bylines` are persisted alongside the field updates in a single transaction. `publishedAt` requires the content:publish_any permission and is useful for migrations or correcting historical dates.",
400
+ description: "Update an existing content item. Only include fields you want to change in the 'data' object — unspecified fields are left unchanged. Rich text (portableText) fields accept a Markdown string (recommended, converted automatically); use a Portable Text JSON array only for complex content Markdown can't express (custom blocks, embeds). Pass the _rev token from content_get to enable optimistic concurrency checking (the update fails if the item was modified since you read it). `seo` and `bylines` are persisted alongside the field updates in a single transaction. `publishedAt` requires the content:publish_any permission and is useful for migrations or correcting historical dates.",
353
401
  inputSchema: z.object({
354
402
  collection: z.string().describe("Collection slug"),
355
403
  id: z.string().describe("Content item ID or slug"),
@@ -373,6 +421,7 @@ function createMcpServer() {
373
421
  if (!existing.success) return unwrap(existing);
374
422
  const ownerId = extractContentAuthorId(existing.data);
375
423
  requireOwnership(extra, ownerId, "content:edit_own", "content:edit_any");
424
+ const data = args.data ? await convertWriteData(emdash, args.collection, args.data) : args.data;
376
425
  if (args.publishedAt !== void 0) {
377
426
  if (!hasPermission({
378
427
  id: userId,
@@ -384,7 +433,7 @@ function createMcpServer() {
384
433
  requireOwnership(extra, ownerId, "content:publish_own", "content:publish_any");
385
434
  if (args.data || args.slug || args.seo !== void 0 || args.bylines !== void 0 || args.publishedAt !== void 0) {
386
435
  const updateResult = await emdash.handleContentUpdate(args.collection, resolvedId, {
387
- data: args.data,
436
+ data,
388
437
  slug: args.slug,
389
438
  authorId: userId,
390
439
  locale: args.locale,
@@ -401,7 +450,7 @@ function createMcpServer() {
401
450
  requireOwnership(extra, ownerId, "content:publish_own", "content:publish_any");
402
451
  if (args.data || args.slug || args.seo !== void 0 || args.bylines !== void 0 || args.publishedAt !== void 0) {
403
452
  const updateResult = await emdash.handleContentUpdate(args.collection, resolvedId, {
404
- data: args.data,
453
+ data,
405
454
  slug: args.slug,
406
455
  authorId: userId,
407
456
  locale: args.locale,
@@ -415,7 +464,7 @@ function createMcpServer() {
415
464
  return unwrap(await emdash.handleContentUnpublish(args.collection, resolvedId));
416
465
  }
417
466
  return unwrap(await emdash.handleContentUpdate(args.collection, resolvedId, {
418
- data: args.data,
467
+ data,
419
468
  slug: args.slug,
420
469
  authorId: userId,
421
470
  locale: args.locale,
@@ -636,6 +685,124 @@ function createMcpServer() {
636
685
  }
637
686
  return unwrap(result);
638
687
  });
688
+ server.registerTool("byline_list", {
689
+ title: "List Bylines",
690
+ description: "List bylines (author/contributor credits) with optional filtering and pagination. Bylines are standalone records referenced by content items; use the returned id with content_create/content_update or byline_get. Use the nextCursor value from the response to fetch the next page.",
691
+ inputSchema: z.object({
692
+ search: z.string().optional().describe("Filter by display name or slug substring"),
693
+ isGuest: z.boolean().optional().describe("Filter by guest (true) or linked-user (false)"),
694
+ userId: z.string().optional().describe("Filter to the byline linked to a CMS user ID"),
695
+ locale: z.string().optional().describe("Filter by locale (omit for all)"),
696
+ limit: z.number().int().min(1).max(100).optional().describe("Max items (default 50)"),
697
+ cursor: z.string().min(1).max(2048).optional().describe("Pagination cursor")
698
+ }),
699
+ annotations: { readOnlyHint: true }
700
+ }, async (args, extra) => {
701
+ requireScope(extra, "content:read");
702
+ const ec = getEmDash(extra);
703
+ try {
704
+ const { BylineRepository } = await import("../../../byline-DVo-liaP.mjs").then((n) => n.n);
705
+ return jsonResult(await new BylineRepository(ec.db).findMany({
706
+ search: args.search,
707
+ isGuest: args.isGuest,
708
+ userId: args.userId,
709
+ locale: args.locale,
710
+ limit: args.limit,
711
+ cursor: args.cursor
712
+ }));
713
+ } catch (error) {
714
+ return respondHandlerError(error, "BYLINE_LIST_ERROR");
715
+ }
716
+ });
717
+ server.registerTool("byline_get", {
718
+ title: "Get Byline",
719
+ description: "Get a single byline by its ID, including bio, avatar, website, linked user, and any custom fields.",
720
+ inputSchema: z.object({ id: z.string().describe("Byline ID") }),
721
+ annotations: { readOnlyHint: true }
722
+ }, async (args, extra) => {
723
+ requireScope(extra, "content:read");
724
+ const ec = getEmDash(extra);
725
+ try {
726
+ const { BylineRepository } = await import("../../../byline-DVo-liaP.mjs").then((n) => n.n);
727
+ const byline = await new BylineRepository(ec.db).findById(args.id);
728
+ if (!byline) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
729
+ return jsonResult(byline);
730
+ } catch (error) {
731
+ return respondHandlerError(error, "BYLINE_GET_ERROR");
732
+ }
733
+ });
734
+ server.registerTool("byline_create", {
735
+ title: "Create Byline",
736
+ description: "Create a new byline (author/contributor credit). The slug must be unique and contain only lowercase letters, digits, and hyphens. Link the byline to a CMS user via userId, or leave it as a standalone guest credit. The returned id can then be passed to content_create/content_update bylines.",
737
+ inputSchema: z.object({ ...bylineCreateBody.shape }),
738
+ annotations: { destructiveHint: false }
739
+ }, async (args, extra) => {
740
+ requireScope(extra, "content:write");
741
+ requireRole(extra, Role.EDITOR);
742
+ const ec = getEmDash(extra);
743
+ try {
744
+ const { handleBylineCreate } = await import("../../../bylines-pIKgc_TL.mjs").then((n) => n.t);
745
+ const result = await handleBylineCreate(ec.db, args);
746
+ if (result.success) await invalidateBylines();
747
+ return unwrap(result);
748
+ } catch (error) {
749
+ return respondHandlerError(error, "BYLINE_CREATE_ERROR");
750
+ }
751
+ });
752
+ server.registerTool("byline_update", {
753
+ title: "Update Byline",
754
+ description: "Update an existing byline. Any field can be omitted to leave it unchanged. Renaming the slug must not collide with another byline.",
755
+ inputSchema: z.object({
756
+ id: z.string().describe("Byline ID to update"),
757
+ ...bylineUpdateBody.shape
758
+ })
759
+ }, async (args, extra) => {
760
+ requireScope(extra, "content:write");
761
+ requireRole(extra, Role.EDITOR);
762
+ const ec = getEmDash(extra);
763
+ try {
764
+ const { handleBylineUpdate } = await import("../../../bylines-pIKgc_TL.mjs").then((n) => n.t);
765
+ const { id, ...input } = args;
766
+ const result = await handleBylineUpdate(ec.db, id, input);
767
+ if (result.success) await invalidateBylines();
768
+ return unwrap(result);
769
+ } catch (error) {
770
+ return respondHandlerError(error, "BYLINE_UPDATE_ERROR");
771
+ }
772
+ });
773
+ server.registerTool("byline_delete", {
774
+ title: "Delete Byline",
775
+ description: "Permanently delete a byline. Any content crediting this byline loses the association, and it is cleared as a primary byline where set.",
776
+ inputSchema: z.object({ id: z.string().describe("Byline ID to delete") }),
777
+ annotations: { destructiveHint: true }
778
+ }, async (args, extra) => {
779
+ requireScope(extra, "content:write");
780
+ requireRole(extra, Role.EDITOR);
781
+ const ec = getEmDash(extra);
782
+ try {
783
+ const { BylineRepository } = await import("../../../byline-DVo-liaP.mjs").then((n) => n.n);
784
+ if (!await new BylineRepository(ec.db).delete(args.id)) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
785
+ await invalidateBylines();
786
+ return jsonResult({ deleted: args.id });
787
+ } catch (error) {
788
+ return respondHandlerError(error, "BYLINE_DELETE_ERROR");
789
+ }
790
+ });
791
+ server.registerTool("byline_translations", {
792
+ title: "List Byline Translations",
793
+ description: "Return every locale variant of a byline, identified via its shared translation_group.",
794
+ inputSchema: z.object({ id: z.string().describe("Byline id (or translation_group)") }),
795
+ annotations: { readOnlyHint: true }
796
+ }, async (args, extra) => {
797
+ requireScope(extra, "content:read");
798
+ const ec = getEmDash(extra);
799
+ try {
800
+ const { handleBylineTranslations } = await import("../../../bylines-pIKgc_TL.mjs").then((n) => n.t);
801
+ return unwrap(await handleBylineTranslations(ec.db, args.id));
802
+ } catch (error) {
803
+ return respondHandlerError(error, "BYLINE_TRANSLATIONS_ERROR");
804
+ }
805
+ });
639
806
  server.registerTool("schema_list_collections", {
640
807
  title: "List Collections",
641
808
  description: "List all content collections defined in the CMS. Each collection represents a content type (e.g. posts, pages, products) with its own schema and database table. Returns slug, label, supported features, and timestamps.",
@@ -646,7 +813,7 @@ function createMcpServer() {
646
813
  requireRole(extra, Role.EDITOR);
647
814
  const ec = getEmDash(extra);
648
815
  try {
649
- const { SchemaRegistry } = await import("../../../schema-BDOkd3OU.mjs").then((n) => n.t);
816
+ const { SchemaRegistry } = await import("../../../schema-CbFRFoM7.mjs").then((n) => n.t);
650
817
  return jsonResult({ items: await new SchemaRegistry(ec.db).listCollections() });
651
818
  } catch (error) {
652
819
  return respondHandlerError(error, "SCHEMA_LIST_ERROR");
@@ -662,7 +829,7 @@ function createMcpServer() {
662
829
  requireRole(extra, Role.EDITOR);
663
830
  const ec = getEmDash(extra);
664
831
  try {
665
- const { SchemaRegistry } = await import("../../../schema-BDOkd3OU.mjs").then((n) => n.t);
832
+ const { SchemaRegistry } = await import("../../../schema-CbFRFoM7.mjs").then((n) => n.t);
666
833
  const collection = await new SchemaRegistry(ec.db).getCollectionWithFields(args.slug);
667
834
  if (!collection) return respondError("NOT_FOUND", `Collection '${args.slug}' not found`);
668
835
  return jsonResult(collection);
@@ -692,7 +859,7 @@ function createMcpServer() {
692
859
  requireRole(extra, Role.ADMIN);
693
860
  const ec = getEmDash(extra);
694
861
  try {
695
- const { SchemaRegistry } = await import("../../../schema-BDOkd3OU.mjs").then((n) => n.t);
862
+ const { SchemaRegistry } = await import("../../../schema-CbFRFoM7.mjs").then((n) => n.t);
696
863
  const collection = await new SchemaRegistry(ec.db).createCollection({
697
864
  slug: args.slug,
698
865
  label: args.label,
@@ -720,7 +887,7 @@ function createMcpServer() {
720
887
  requireRole(extra, Role.ADMIN);
721
888
  const ec = getEmDash(extra);
722
889
  try {
723
- const { SchemaRegistry } = await import("../../../schema-BDOkd3OU.mjs").then((n) => n.t);
890
+ const { SchemaRegistry } = await import("../../../schema-CbFRFoM7.mjs").then((n) => n.t);
724
891
  await new SchemaRegistry(ec.db).deleteCollection(args.slug, { force: args.force });
725
892
  ec.invalidateUrlPatternCache();
726
893
  return jsonResult({ deleted: args.slug });
@@ -774,7 +941,7 @@ function createMcpServer() {
774
941
  requireRole(extra, Role.ADMIN);
775
942
  const ec = getEmDash(extra);
776
943
  try {
777
- const { SchemaRegistry } = await import("../../../schema-BDOkd3OU.mjs").then((n) => n.t);
944
+ const { SchemaRegistry } = await import("../../../schema-CbFRFoM7.mjs").then((n) => n.t);
778
945
  return jsonResult(await new SchemaRegistry(ec.db).createField(args.collection, {
779
946
  slug: args.slug,
780
947
  label: args.label,
@@ -804,7 +971,7 @@ function createMcpServer() {
804
971
  requireRole(extra, Role.ADMIN);
805
972
  const ec = getEmDash(extra);
806
973
  try {
807
- const { SchemaRegistry } = await import("../../../schema-BDOkd3OU.mjs").then((n) => n.t);
974
+ const { SchemaRegistry } = await import("../../../schema-CbFRFoM7.mjs").then((n) => n.t);
808
975
  await new SchemaRegistry(ec.db).deleteField(args.collection, args.fieldSlug);
809
976
  return jsonResult({
810
977
  deleted: args.fieldSlug,
@@ -925,7 +1092,7 @@ function createMcpServer() {
925
1092
  requireScope(extra, "content:read");
926
1093
  const ec = getEmDash(extra);
927
1094
  try {
928
- const { searchWithDb } = await import("../../../search-Bs_J_EW-.mjs").then((n) => n.t);
1095
+ const { searchWithDb } = await import("../../../search-C-waE_YW.mjs").then((n) => n.t);
929
1096
  return jsonResult(await searchWithDb(ec.db, args.query, {
930
1097
  collections: args.collections,
931
1098
  locale: args.locale,
@@ -944,7 +1111,7 @@ function createMcpServer() {
944
1111
  requireScope(extra, "content:read");
945
1112
  const ec = getEmDash(extra);
946
1113
  try {
947
- const { handleTaxonomyList } = await import("../../../taxonomies-DuESHWKI.mjs").then((n) => n.l);
1114
+ const { handleTaxonomyList } = await import("../../../taxonomies-BBB8O-CU.mjs").then((n) => n.l);
948
1115
  return unwrap(await handleTaxonomyList(ec.db, { locale: args.locale }));
949
1116
  } catch (error) {
950
1117
  return respondHandlerError(error, "TAXONOMY_LIST_ERROR");
@@ -964,12 +1131,12 @@ function createMcpServer() {
964
1131
  requireScope(extra, "content:read");
965
1132
  const ec = getEmDash(extra);
966
1133
  try {
967
- const { handleTaxonomyList } = await import("../../../taxonomies-DuESHWKI.mjs").then((n) => n.l);
1134
+ const { handleTaxonomyList } = await import("../../../taxonomies-BBB8O-CU.mjs").then((n) => n.l);
968
1135
  const listResult = await handleTaxonomyList(ec.db, { locale: args.locale });
969
1136
  if (!listResult.success) return unwrap(listResult);
970
1137
  if (!listResult.data.taxonomies.find((t) => t.name === args.taxonomy)) return respondError("NOT_FOUND", `Taxonomy '${args.taxonomy}' not found`);
971
- const { TaxonomyRepository } = await import("../../../taxonomy-CdllE4oq.mjs").then((n) => n.n);
972
- const { decodeCursor, encodeCursor, InvalidCursorError } = await import("../../../types-BXSUSAjt.mjs").then((n) => n.o);
1138
+ const { TaxonomyRepository } = await import("../../../taxonomy-B2HQuVf5.mjs").then((n) => n.n);
1139
+ const { decodeCursor, encodeCursor, InvalidCursorError } = await import("../../../types-DXOIbece.mjs").then((n) => n.o);
973
1140
  const repo = new TaxonomyRepository(ec.db);
974
1141
  const limit = Math.min(args.limit ?? 50, 100);
975
1142
  const terms = await repo.findByName(args.taxonomy, { locale: args.locale });
@@ -1023,7 +1190,7 @@ function createMcpServer() {
1023
1190
  requireRole(extra, Role.EDITOR);
1024
1191
  const ec = getEmDash(extra);
1025
1192
  try {
1026
- const { handleTermCreate } = await import("../../../taxonomies-DuESHWKI.mjs").then((n) => n.l);
1193
+ const { handleTermCreate } = await import("../../../taxonomies-BBB8O-CU.mjs").then((n) => n.l);
1027
1194
  return unwrap(await handleTermCreate(ec.db, args.taxonomy, {
1028
1195
  slug: args.slug,
1029
1196
  label: args.label,
@@ -1052,7 +1219,7 @@ function createMcpServer() {
1052
1219
  requireRole(extra, Role.EDITOR);
1053
1220
  const ec = getEmDash(extra);
1054
1221
  try {
1055
- const { handleTermUpdate } = await import("../../../taxonomies-DuESHWKI.mjs").then((n) => n.l);
1222
+ const { handleTermUpdate } = await import("../../../taxonomies-BBB8O-CU.mjs").then((n) => n.l);
1056
1223
  return unwrap(await handleTermUpdate(ec.db, args.taxonomy, args.termSlug, {
1057
1224
  slug: args.slug,
1058
1225
  label: args.label,
@@ -1076,7 +1243,7 @@ function createMcpServer() {
1076
1243
  requireRole(extra, Role.EDITOR);
1077
1244
  const ec = getEmDash(extra);
1078
1245
  try {
1079
- const { handleTermDelete } = await import("../../../taxonomies-DuESHWKI.mjs").then((n) => n.l);
1246
+ const { handleTermDelete } = await import("../../../taxonomies-BBB8O-CU.mjs").then((n) => n.l);
1080
1247
  return unwrap(await handleTermDelete(ec.db, args.taxonomy, args.termSlug));
1081
1248
  } catch (error) {
1082
1249
  return respondHandlerError(error, "TAXONOMY_TERM_DELETE_ERROR");
@@ -1091,7 +1258,7 @@ function createMcpServer() {
1091
1258
  requireScope(extra, "content:read");
1092
1259
  const ec = getEmDash(extra);
1093
1260
  try {
1094
- const { handleTermTranslations } = await import("../../../taxonomies-DuESHWKI.mjs").then((n) => n.l);
1261
+ const { handleTermTranslations } = await import("../../../taxonomies-BBB8O-CU.mjs").then((n) => n.l);
1095
1262
  return unwrap(await handleTermTranslations(ec.db, args.id));
1096
1263
  } catch (error) {
1097
1264
  return respondHandlerError(error, "TERM_TRANSLATIONS_ERROR");
@@ -1106,7 +1273,7 @@ function createMcpServer() {
1106
1273
  requireScope(extra, "content:read");
1107
1274
  const ec = getEmDash(extra);
1108
1275
  try {
1109
- const { handleMenuList } = await import("../../../menus-DX4_E01q.mjs").then((n) => n.d);
1276
+ const { handleMenuList } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
1110
1277
  return unwrap(await handleMenuList(ec.db, { locale: args.locale }));
1111
1278
  } catch (error) {
1112
1279
  return respondHandlerError(error, "MENU_LIST_ERROR");
@@ -1124,7 +1291,7 @@ function createMcpServer() {
1124
1291
  requireScope(extra, "content:read");
1125
1292
  const ec = getEmDash(extra);
1126
1293
  try {
1127
- const { handleMenuGet } = await import("../../../menus-DX4_E01q.mjs").then((n) => n.d);
1294
+ const { handleMenuGet } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
1128
1295
  return unwrap(await handleMenuGet(ec.db, args.name, { locale: args.locale }));
1129
1296
  } catch (error) {
1130
1297
  return respondHandlerError(error, "MENU_GET_ERROR");
@@ -1139,7 +1306,7 @@ function createMcpServer() {
1139
1306
  requireScope(extra, "content:read");
1140
1307
  const ec = getEmDash(extra);
1141
1308
  try {
1142
- const { handleMenuTranslations } = await import("../../../menus-DX4_E01q.mjs").then((n) => n.d);
1309
+ const { handleMenuTranslations } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
1143
1310
  return unwrap(await handleMenuTranslations(ec.db, args.id));
1144
1311
  } catch (error) {
1145
1312
  return respondHandlerError(error, "MENU_TRANSLATIONS_ERROR");
@@ -1159,7 +1326,7 @@ function createMcpServer() {
1159
1326
  requireRole(extra, Role.EDITOR);
1160
1327
  const ec = getEmDash(extra);
1161
1328
  try {
1162
- const { handleMenuCreate } = await import("../../../menus-DX4_E01q.mjs").then((n) => n.d);
1329
+ const { handleMenuCreate } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
1163
1330
  return unwrap(await handleMenuCreate(ec.db, {
1164
1331
  name: args.name,
1165
1332
  label: args.label,
@@ -1183,7 +1350,7 @@ function createMcpServer() {
1183
1350
  requireRole(extra, Role.EDITOR);
1184
1351
  const ec = getEmDash(extra);
1185
1352
  try {
1186
- const { handleMenuUpdate } = await import("../../../menus-DX4_E01q.mjs").then((n) => n.d);
1353
+ const { handleMenuUpdate } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
1187
1354
  return unwrap(await handleMenuUpdate(ec.db, args.name, {
1188
1355
  label: args.label,
1189
1356
  locale: args.locale
@@ -1205,7 +1372,7 @@ function createMcpServer() {
1205
1372
  requireRole(extra, Role.EDITOR);
1206
1373
  const ec = getEmDash(extra);
1207
1374
  try {
1208
- const { handleMenuDelete } = await import("../../../menus-DX4_E01q.mjs").then((n) => n.d);
1375
+ const { handleMenuDelete } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
1209
1376
  return unwrap(await handleMenuDelete(ec.db, args.name, { locale: args.locale }));
1210
1377
  } catch (error) {
1211
1378
  return respondHandlerError(error, "MENU_DELETE_ERROR");
@@ -1240,7 +1407,7 @@ function createMcpServer() {
1240
1407
  requireRole(extra, Role.EDITOR);
1241
1408
  const ec = getEmDash(extra);
1242
1409
  try {
1243
- const { handleMenuSetItems } = await import("../../../menus-DX4_E01q.mjs").then((n) => n.d);
1410
+ const { handleMenuSetItems } = await import("../../../menus-CYs0WZoL.mjs").then((n) => n.d);
1244
1411
  return unwrap(await handleMenuSetItems(ec.db, args.name, args.items, { locale: args.locale }));
1245
1412
  } catch (error) {
1246
1413
  return respondHandlerError(error, "MENU_SET_ITEMS_ERROR");
@@ -1287,7 +1454,7 @@ function createMcpServer() {
1287
1454
  requireRole(extra, Role.EDITOR);
1288
1455
  const ec = getEmDash(extra);
1289
1456
  try {
1290
- const { handleSettingsGet } = await import("../../../settings-sO0Fif4p.mjs").then((n) => n.r);
1457
+ const { handleSettingsGet } = await import("../../../settings-4bRT2NIf.mjs").then((n) => n.r);
1291
1458
  return unwrap(await handleSettingsGet(ec.db, ec.storage));
1292
1459
  } catch (error) {
1293
1460
  return respondHandlerError(error, "SETTINGS_READ_ERROR");
@@ -1313,7 +1480,7 @@ function createMcpServer() {
1313
1480
  requireRole(extra, Role.ADMIN);
1314
1481
  const ec = getEmDash(extra);
1315
1482
  try {
1316
- const { handleSettingsUpdate } = await import("../../../settings-sO0Fif4p.mjs").then((n) => n.r);
1483
+ const { handleSettingsUpdate } = await import("../../../settings-4bRT2NIf.mjs").then((n) => n.r);
1317
1484
  return unwrap(await handleSettingsUpdate(ec.db, ec.storage, args));
1318
1485
  } catch (error) {
1319
1486
  return respondHandlerError(error, "SETTINGS_UPDATE_ERROR");