emdash 0.40.1 → 0.42.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 (1515) hide show
  1. package/dist/action-token-DBki7IT4.mjs +26 -0
  2. package/dist/action-token-DBki7IT4.mjs.map +1 -0
  3. package/dist/activation-DDuqAat2.mjs +387 -0
  4. package/dist/activation-DDuqAat2.mjs.map +1 -0
  5. package/dist/adapters-BrZxU6vM.d.mts +171 -0
  6. package/dist/adapters-BrZxU6vM.d.mts.map +1 -0
  7. package/dist/allowed-origins-CFtudhyw.mjs +116 -0
  8. package/dist/allowed-origins-CFtudhyw.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +5 -4
  10. package/dist/api/route-utils.d.mts.map +1 -1
  11. package/dist/api/route-utils.mjs +52 -46
  12. package/dist/api/route-utils.mjs.map +1 -1
  13. package/dist/api/schemas/index.d.mts +2 -2
  14. package/dist/api/schemas/index.mjs +11 -10
  15. package/dist/api-CFQn8VLR.mjs +4973 -0
  16. package/dist/api-CFQn8VLR.mjs.map +1 -0
  17. package/dist/api-tokens-P3mAaQgr.mjs +166 -0
  18. package/dist/api-tokens-P3mAaQgr.mjs.map +1 -0
  19. package/dist/apply-C1kq5l7p.mjs +1672 -0
  20. package/dist/apply-C1kq5l7p.mjs.map +1 -0
  21. package/dist/approvals-l9sGqPmL.mjs +460 -0
  22. package/dist/approvals-l9sGqPmL.mjs.map +1 -0
  23. package/dist/artifact-fetch-CWxyELVI.mjs +659 -0
  24. package/dist/artifact-fetch-CWxyELVI.mjs.map +1 -0
  25. package/dist/astro/index.d.mts +14 -14
  26. package/dist/astro/index.d.mts.map +1 -1
  27. package/dist/astro/index.mjs +106 -560
  28. package/dist/astro/index.mjs.map +1 -1
  29. package/dist/astro/middleware/auth.d.mts +12 -12
  30. package/dist/astro/middleware/auth.mjs +10 -10
  31. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  32. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  33. package/dist/astro/middleware/redirect.mjs +19 -9
  34. package/dist/astro/middleware/redirect.mjs.map +1 -1
  35. package/dist/astro/middleware/request-context.d.mts +2 -1
  36. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  37. package/dist/astro/middleware/request-context.mjs +15 -6
  38. package/dist/astro/middleware/request-context.mjs.map +1 -1
  39. package/dist/astro/middleware/setup.mjs +1 -1
  40. package/dist/astro/middleware.d.mts +12 -12
  41. package/dist/astro/middleware.mjs +114 -107
  42. package/dist/astro/middleware.mjs.map +1 -1
  43. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +15 -14
  44. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
  45. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +15 -14
  46. package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
  47. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -6
  48. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
  49. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +7 -7
  50. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +18 -17
  51. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
  52. package/dist/astro/routes/api/admin/byline-fields/index.mjs +18 -17
  53. package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
  54. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +18 -17
  55. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
  56. package/dist/astro/routes/api/admin/bylines/_id_/index.d.mts.map +1 -1
  57. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +36 -27
  58. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/bylines/_id_/translations.d.mts.map +1 -1
  60. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +32 -26
  61. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  62. package/dist/astro/routes/api/admin/bylines/index.d.mts.map +1 -1
  63. package/dist/astro/routes/api/admin/bylines/index.mjs +32 -26
  64. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  65. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +20 -19
  66. package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
  67. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
  68. package/dist/astro/routes/api/admin/comments/bulk.mjs +19 -18
  69. package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
  70. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
  71. package/dist/astro/routes/api/admin/comments/index.mjs +19 -18
  72. package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
  73. package/dist/astro/routes/api/admin/core-update.d.mts +8 -0
  74. package/dist/astro/routes/api/admin/core-update.d.mts.map +1 -0
  75. package/dist/astro/routes/api/admin/core-update.mjs +28 -0
  76. package/dist/astro/routes/api/admin/core-update.mjs.map +1 -0
  77. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  78. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  79. package/dist/astro/routes/api/admin/media-usage/activation.mjs +21 -20
  80. package/dist/astro/routes/api/admin/media-usage/activation.mjs.map +1 -1
  81. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +23 -22
  82. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -1
  83. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +23 -22
  84. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -1
  85. package/dist/astro/routes/api/admin/media-usage/progress.mjs +26 -25
  86. package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
  87. package/dist/astro/routes/api/admin/media-usage/repair.mjs +32 -31
  88. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  89. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +23 -22
  90. package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -1
  91. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +23 -22
  92. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -1
  93. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  94. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  95. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  96. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  97. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +75 -69
  98. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  99. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
  100. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +74 -68
  101. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +75 -69
  103. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  104. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +86 -79
  105. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  106. package/dist/astro/routes/api/admin/plugins/index.mjs +75 -69
  107. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  108. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.d.mts.map +1 -1
  109. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +10 -7
  110. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs.map +1 -1
  111. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +74 -68
  112. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  113. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +85 -78
  114. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  115. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +74 -68
  116. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  117. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +75 -69
  118. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  119. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +87 -80
  120. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  121. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -9
  122. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +77 -71
  123. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  124. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
  125. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +75 -69
  126. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  127. package/dist/astro/routes/api/admin/plugins/updates.mjs +74 -68
  128. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  129. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
  130. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +74 -68
  131. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  132. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.d.mts.map +1 -1
  133. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +10 -7
  134. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs.map +1 -1
  135. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +74 -68
  136. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  137. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
  138. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +42 -41
  139. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
  140. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +42 -41
  141. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
  142. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +44 -43
  143. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
  144. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +44 -43
  145. package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
  146. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +44 -43
  147. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
  148. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +45 -44
  149. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
  150. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +45 -44
  151. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
  152. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +44 -43
  153. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
  154. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +45 -44
  155. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
  156. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +46 -45
  157. package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
  158. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +44 -43
  159. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
  160. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +44 -43
  161. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
  162. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +46 -45
  163. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
  164. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +44 -43
  165. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
  166. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +46 -45
  167. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
  168. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +44 -43
  169. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
  170. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +44 -43
  171. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
  172. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +46 -45
  173. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
  174. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +44 -43
  175. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
  176. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +44 -43
  177. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
  178. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +46 -45
  179. package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
  180. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
  181. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  182. package/dist/astro/routes/api/admin/users/_id_/index.mjs +16 -15
  183. package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
  184. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
  185. package/dist/astro/routes/api/admin/users/index.mjs +15 -14
  186. package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
  187. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  188. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  189. package/dist/astro/routes/api/auth/invite/complete.d.mts.map +1 -1
  190. package/dist/astro/routes/api/auth/invite/complete.mjs +23 -19
  191. package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
  192. package/dist/astro/routes/api/auth/invite/index.mjs +17 -16
  193. package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
  194. package/dist/astro/routes/api/auth/invite/register-options.mjs +18 -17
  195. package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
  196. package/dist/astro/routes/api/auth/logout.mjs +5 -5
  197. package/dist/astro/routes/api/auth/magic-link/send.mjs +19 -18
  198. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  199. package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -1
  200. package/dist/astro/routes/api/auth/magic-link/verify.mjs +19 -15
  201. package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -1
  202. package/dist/astro/routes/api/auth/me.mjs +16 -15
  203. package/dist/astro/routes/api/auth/me.mjs.map +1 -1
  204. package/dist/astro/routes/api/auth/mode.mjs +5 -5
  205. package/dist/astro/routes/api/auth/oauth/_provider_/callback.d.mts.map +1 -1
  206. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +13 -4
  207. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs.map +1 -1
  208. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  209. package/dist/astro/routes/api/auth/passkey/_id_.mjs +15 -14
  210. package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
  211. package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
  212. package/dist/astro/routes/api/auth/passkey/options.mjs +20 -19
  213. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  214. package/dist/astro/routes/api/auth/passkey/register/options.mjs +18 -17
  215. package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
  216. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +19 -18
  217. package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
  218. package/dist/astro/routes/api/auth/passkey/verify.d.mts.map +1 -1
  219. package/dist/astro/routes/api/auth/passkey/verify.mjs +23 -19
  220. package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
  221. package/dist/astro/routes/api/auth/signup/complete.d.mts.map +1 -1
  222. package/dist/astro/routes/api/auth/signup/complete.mjs +23 -19
  223. package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
  224. package/dist/astro/routes/api/auth/signup/request.mjs +18 -17
  225. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  226. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  227. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +13 -13
  228. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +20 -19
  229. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
  230. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  231. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +18 -17
  232. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  233. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  234. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +18 -17
  235. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
  236. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
  237. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +12 -11
  238. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs.map +1 -1
  239. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +33 -32
  240. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  241. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +18 -17
  242. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  243. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts +1 -2
  244. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts.map +1 -1
  245. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +44 -54
  246. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  247. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +36 -30
  248. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  249. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
  250. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  251. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +18 -17
  252. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  253. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +27 -25
  254. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  255. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +5 -5
  256. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +18 -17
  257. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  258. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  259. package/dist/astro/routes/api/content/_collection_/_id_.mjs +19 -18
  260. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  261. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  262. package/dist/astro/routes/api/content/_collection_/index.mjs +16 -15
  263. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  264. package/dist/astro/routes/api/content/_collection_/trash.mjs +16 -15
  265. package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
  266. package/dist/astro/routes/api/dashboard.mjs +13 -10
  267. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  268. package/dist/astro/routes/api/dev/emails.mjs +5 -5
  269. package/dist/astro/routes/api/health.mjs +6 -6
  270. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  271. package/dist/astro/routes/api/import/probe.mjs +25 -24
  272. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  273. package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -6
  274. package/dist/astro/routes/api/import/wordpress/execute.d.mts +14 -14
  275. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  276. package/dist/astro/routes/api/import/wordpress/execute.mjs +167 -21
  277. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  278. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  279. package/dist/astro/routes/api/import/wordpress/media.mjs +20 -19
  280. package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
  281. package/dist/astro/routes/api/import/wordpress/prepare.mjs +19 -18
  282. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  283. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  284. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +29 -28
  285. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  286. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  287. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +25 -24
  288. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  289. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  290. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +36 -35
  291. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  292. package/dist/astro/routes/api/manifest.mjs +6 -6
  293. package/dist/astro/routes/api/mcp.mjs +167 -110
  294. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  295. package/dist/astro/routes/api/media/_id_/confirm.mjs +20 -19
  296. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  297. package/dist/astro/routes/api/media/_id_/replace.mjs +17 -16
  298. package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -1
  299. package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
  300. package/dist/astro/routes/api/media/_id_/usage.mjs +34 -33
  301. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  302. package/dist/astro/routes/api/media/_id_.mjs +32 -31
  303. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  304. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
  305. package/dist/astro/routes/api/media/file/_...key_.mjs +9 -9
  306. package/dist/astro/routes/api/media/folders/_id_.mjs +17 -16
  307. package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -1
  308. package/dist/astro/routes/api/media/folders/index.mjs +17 -16
  309. package/dist/astro/routes/api/media/folders/index.mjs.map +1 -1
  310. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
  311. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
  312. package/dist/astro/routes/api/media/providers/index.mjs +5 -5
  313. package/dist/astro/routes/api/media/upload-url.mjs +19 -18
  314. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  315. package/dist/astro/routes/api/media.mjs +36 -35
  316. package/dist/astro/routes/api/media.mjs.map +1 -1
  317. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +19 -18
  318. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  319. package/dist/astro/routes/api/menus/_name_/items.mjs +19 -18
  320. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  321. package/dist/astro/routes/api/menus/_name_/reorder.mjs +19 -18
  322. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  323. package/dist/astro/routes/api/menus/_name_/translations.mjs +19 -18
  324. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  325. package/dist/astro/routes/api/menus/_name_.mjs +19 -18
  326. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  327. package/dist/astro/routes/api/menus/index.mjs +19 -18
  328. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  329. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  330. package/dist/astro/routes/api/oauth/device/authorize.d.mts +2 -1
  331. package/dist/astro/routes/api/oauth/device/authorize.d.mts.map +1 -1
  332. package/dist/astro/routes/api/oauth/device/authorize.mjs +23 -9
  333. package/dist/astro/routes/api/oauth/device/authorize.mjs.map +1 -1
  334. package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
  335. package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
  336. package/dist/astro/routes/api/oauth/register.d.mts.map +1 -1
  337. package/dist/astro/routes/api/oauth/register.mjs +15 -7
  338. package/dist/astro/routes/api/oauth/register.mjs.map +1 -1
  339. package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
  340. package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
  341. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  342. package/dist/astro/routes/api/openapi.json.mjs +21 -20
  343. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  344. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +12 -11
  345. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
  346. package/dist/astro/routes/api/redirects/404s/index.mjs +20 -19
  347. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  348. package/dist/astro/routes/api/redirects/404s/summary.mjs +20 -19
  349. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  350. package/dist/astro/routes/api/redirects/_id_.mjs +20 -19
  351. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  352. package/dist/astro/routes/api/redirects/index.mjs +20 -19
  353. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  354. package/dist/astro/routes/api/relations/_id_/index.mjs +36 -30
  355. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  356. package/dist/astro/routes/api/relations/index.mjs +38 -32
  357. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  358. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
  359. package/dist/astro/routes/api/revisions/_revisionId_/restore.d.mts.map +1 -1
  360. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +26 -6
  361. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs.map +1 -1
  362. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +74 -68
  363. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  364. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +74 -68
  365. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  366. package/dist/astro/routes/api/schema/block-types/index.mjs +74 -68
  367. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  368. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +76 -70
  369. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  370. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +74 -68
  371. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  372. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +74 -68
  373. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  374. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +74 -68
  375. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  376. package/dist/astro/routes/api/schema/collections/index.mjs +74 -68
  377. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  378. package/dist/astro/routes/api/schema/collections/reorder.mjs +74 -68
  379. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  380. package/dist/astro/routes/api/schema/index.mjs +17 -16
  381. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  382. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +74 -68
  383. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  384. package/dist/astro/routes/api/schema/orphans/index.mjs +74 -68
  385. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  386. package/dist/astro/routes/api/search/enable.mjs +20 -19
  387. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  388. package/dist/astro/routes/api/search/index.mjs +19 -18
  389. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  390. package/dist/astro/routes/api/search/rebuild.mjs +20 -19
  391. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  392. package/dist/astro/routes/api/search/stats.mjs +9 -9
  393. package/dist/astro/routes/api/search/suggest.mjs +19 -18
  394. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  395. package/dist/astro/routes/api/sections/_slug_.mjs +19 -18
  396. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  397. package/dist/astro/routes/api/sections/index.mjs +19 -18
  398. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  399. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  400. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  401. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  402. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  403. package/dist/astro/routes/api/settings/email.mjs +6 -6
  404. package/dist/astro/routes/api/settings.mjs +23 -22
  405. package/dist/astro/routes/api/settings.mjs.map +1 -1
  406. package/dist/astro/routes/api/setup/admin-verify.d.mts.map +1 -1
  407. package/dist/astro/routes/api/setup/admin-verify.mjs +26 -24
  408. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  409. package/dist/astro/routes/api/setup/admin.mjs +19 -18
  410. package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
  411. package/dist/astro/routes/api/setup/dev-bypass.mjs +47 -40
  412. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  413. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  414. package/dist/astro/routes/api/setup/index.mjs +52 -45
  415. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  416. package/dist/astro/routes/api/setup/status.mjs +6 -6
  417. package/dist/astro/routes/api/snapshot.mjs +8 -8
  418. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +25 -24
  419. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  420. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +25 -24
  421. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  422. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -24
  423. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  424. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +25 -24
  425. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  426. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +24 -23
  427. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  428. package/dist/astro/routes/api/taxonomies/_name_.mjs +25 -24
  429. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  430. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +42 -40
  431. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
  432. package/dist/astro/routes/api/taxonomies/index.mjs +25 -24
  433. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  434. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  435. package/dist/astro/routes/api/typegen.d.mts.map +1 -1
  436. package/dist/astro/routes/api/typegen.mjs +8 -39
  437. package/dist/astro/routes/api/typegen.mjs.map +1 -1
  438. package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
  439. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +20 -19
  440. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs.map +1 -1
  441. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
  442. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  443. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  444. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  445. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +17 -16
  446. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  447. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +20 -19
  448. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  449. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +20 -19
  450. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  451. package/dist/astro/routes/api/widget-areas/_name_.mjs +9 -9
  452. package/dist/astro/routes/api/widget-areas/index.mjs +20 -19
  453. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  454. package/dist/astro/routes/api/widget-components.mjs +5 -5
  455. package/dist/astro/routes/robots.txt.mjs +7 -7
  456. package/dist/astro/routes/sitemap-_collection_.xml.mjs +10 -10
  457. package/dist/astro/routes/sitemap.xml.mjs +8 -8
  458. package/dist/astro/types.d.mts +30 -18
  459. package/dist/astro/types.d.mts.map +1 -1
  460. package/dist/audit-BszbE_BP.mjs +127 -0
  461. package/dist/audit-BszbE_BP.mjs.map +1 -0
  462. package/dist/auth/providers/github.d.mts +1 -1
  463. package/dist/auth/providers/google.d.mts +1 -1
  464. package/dist/authoritative-records-dSvXCfzb.mjs +5172 -0
  465. package/dist/authoritative-records-dSvXCfzb.mjs.map +1 -0
  466. package/dist/authorize-soZXK7U0.mjs +49 -0
  467. package/dist/authorize-soZXK7U0.mjs.map +1 -0
  468. package/dist/backup-DQ3CABsO.mjs +246 -0
  469. package/dist/backup-DQ3CABsO.mjs.map +1 -0
  470. package/dist/block-types-DIG_KZwi.mjs +132 -0
  471. package/dist/block-types-DIG_KZwi.mjs.map +1 -0
  472. package/dist/block-values-BrTrtA-v.mjs +175 -0
  473. package/dist/block-values-BrTrtA-v.mjs.map +1 -0
  474. package/dist/byline-02tu_Uc-.mjs +909 -0
  475. package/dist/byline-02tu_Uc-.mjs.map +1 -0
  476. package/dist/byline-fields-B01Txzyx.mjs +123 -0
  477. package/dist/byline-fields-B01Txzyx.mjs.map +1 -0
  478. package/dist/byline-fields-DHJs0Mja.mjs +280 -0
  479. package/dist/byline-fields-DHJs0Mja.mjs.map +1 -0
  480. package/dist/byline-registry-dvt4N3xV.mjs +406 -0
  481. package/dist/byline-registry-dvt4N3xV.mjs.map +1 -0
  482. package/dist/bylines-COTwmMBF.mjs +150 -0
  483. package/dist/bylines-COTwmMBF.mjs.map +1 -0
  484. package/dist/bylines-D_S8UKRX.mjs +214 -0
  485. package/dist/bylines-D_S8UKRX.mjs.map +1 -0
  486. package/dist/cache-CPanL9IO.mjs +114 -0
  487. package/dist/cache-CPanL9IO.mjs.map +1 -0
  488. package/dist/canonical-CAecl1UQ.mjs +174 -0
  489. package/dist/canonical-CAecl1UQ.mjs.map +1 -0
  490. package/dist/capture-triggers-CdZfvHtF.mjs +362 -0
  491. package/dist/capture-triggers-CdZfvHtF.mjs.map +1 -0
  492. package/dist/challenge-store-CxZxPqaw.mjs +51 -0
  493. package/dist/challenge-store-CxZxPqaw.mjs.map +1 -0
  494. package/dist/checksum-DtH6m5uk.mjs +162 -0
  495. package/dist/checksum-DtH6m5uk.mjs.map +1 -0
  496. package/dist/chrome-tags-CKELm-bo.mjs +24 -0
  497. package/dist/chrome-tags-CKELm-bo.mjs.map +1 -0
  498. package/dist/chunks-DBmkKmBH.mjs +25 -0
  499. package/dist/chunks-DBmkKmBH.mjs.map +1 -0
  500. package/dist/cli/index.mjs +380 -1620
  501. package/dist/cli/index.mjs.map +1 -1
  502. package/dist/client/cf-access.d.mts +1 -1
  503. package/dist/client/index.d.mts +39 -34
  504. package/dist/client/index.d.mts.map +1 -1
  505. package/dist/client/index.mjs +8 -3
  506. package/dist/client/index.mjs.map +1 -1
  507. package/dist/collection-deletion-JecE26cS.mjs +436 -0
  508. package/dist/collection-deletion-JecE26cS.mjs.map +1 -0
  509. package/dist/collection-deletion-processor-DgCfF3a1.mjs +217 -0
  510. package/dist/collection-deletion-processor-DgCfF3a1.mjs.map +1 -0
  511. package/dist/collection-slugs-cache-BNRAPNiu.mjs +85 -0
  512. package/dist/collection-slugs-cache-BNRAPNiu.mjs.map +1 -0
  513. package/dist/comment-Cq1UYN8_.mjs +313 -0
  514. package/dist/comment-Cq1UYN8_.mjs.map +1 -0
  515. package/dist/comment-reaction-DPeGAfjd.mjs +85 -0
  516. package/dist/comment-reaction-DPeGAfjd.mjs.map +1 -0
  517. package/dist/comments-BRtp992B.mjs +99 -0
  518. package/dist/comments-BRtp992B.mjs.map +1 -0
  519. package/dist/comments-Bi2j9IoX.mjs +195 -0
  520. package/dist/comments-Bi2j9IoX.mjs.map +1 -0
  521. package/dist/components-CQY-Sgm-.mjs +108 -0
  522. package/dist/components-CQY-Sgm-.mjs.map +1 -0
  523. package/dist/config-BnuORwSP.mjs +242 -0
  524. package/dist/config-BnuORwSP.mjs.map +1 -0
  525. package/dist/config-CDmPF4p7.d.mts +39 -0
  526. package/dist/config-CDmPF4p7.d.mts.map +1 -0
  527. package/dist/config-DHsDMpXc.d.mts +6707 -0
  528. package/dist/config-DHsDMpXc.d.mts.map +1 -0
  529. package/dist/connection-B9pIasFd.mjs +36 -0
  530. package/dist/connection-B9pIasFd.mjs.map +1 -0
  531. package/dist/content-RzEXY3QX.mjs +2020 -0
  532. package/dist/content-RzEXY3QX.mjs.map +1 -0
  533. package/dist/content-list-query-CnXfe1Nu.d.mts +26 -0
  534. package/dist/content-list-query-CnXfe1Nu.d.mts.map +1 -0
  535. package/dist/content-policy-Dm32n9C6.mjs +46 -0
  536. package/dist/content-policy-Dm32n9C6.mjs.map +1 -0
  537. package/dist/content-repair-B-k5JrVN.mjs +442 -0
  538. package/dist/content-repair-B-k5JrVN.mjs.map +1 -0
  539. package/dist/context-CtRvoSAj.mjs +2026 -0
  540. package/dist/context-CtRvoSAj.mjs.map +1 -0
  541. package/dist/credits-CAFPFhuk.mjs +110 -0
  542. package/dist/credits-CAFPFhuk.mjs.map +1 -0
  543. package/dist/cron-xe5XKqA-.mjs +306 -0
  544. package/dist/cron-xe5XKqA-.mjs.map +1 -0
  545. package/dist/dashboard-BoV4pwPP.mjs +151 -0
  546. package/dist/dashboard-BoV4pwPP.mjs.map +1 -0
  547. package/dist/db/index.d.mts +3 -3
  548. package/dist/db/index.mjs +1 -1
  549. package/dist/db/libsql-migrations.d.mts +1 -1
  550. package/dist/db/libsql-migrations.mjs +4 -4
  551. package/dist/db/libsql.d.mts +1 -1
  552. package/dist/db/postgres-migrations.d.mts +1 -1
  553. package/dist/db/postgres-migrations.mjs +4 -4
  554. package/dist/db/postgres.d.mts +1 -1
  555. package/dist/db/sqlite-migrations.d.mts +1 -1
  556. package/dist/db/sqlite-migrations.mjs +4 -4
  557. package/dist/db/sqlite.d.mts +1 -1
  558. package/dist/db/sqlite.mjs +1 -1
  559. package/dist/default-DaoYyFRS.mjs +81 -0
  560. package/dist/default-DaoYyFRS.mjs.map +1 -0
  561. package/dist/deferred-tasks-OBADxoFf.d.mts +9 -0
  562. package/dist/deferred-tasks-OBADxoFf.d.mts.map +1 -0
  563. package/dist/destination-r2zIAZ2S.mjs +18 -0
  564. package/dist/destination-r2zIAZ2S.mjs.map +1 -0
  565. package/dist/dev-typegen-8JlYYFno.mjs +29 -0
  566. package/dist/dev-typegen-8JlYYFno.mjs.map +1 -0
  567. package/dist/device-flow-CzKi6tID.mjs +521 -0
  568. package/dist/device-flow-CzKi6tID.mjs.map +1 -0
  569. package/dist/digest-DiYAoZpf.mjs +194 -0
  570. package/dist/digest-DiYAoZpf.mjs.map +1 -0
  571. package/dist/direct-executor-CsEmH_2m.mjs +104 -0
  572. package/dist/direct-executor-CsEmH_2m.mjs.map +1 -0
  573. package/dist/dist-Cfu8mMBs.mjs +810 -0
  574. package/dist/dist-Cfu8mMBs.mjs.map +1 -0
  575. package/dist/email-console-DmqVF5J_.mjs +50 -0
  576. package/dist/email-console-DmqVF5J_.mjs.map +1 -0
  577. package/dist/email-locale-B5OjmAj_.mjs +25 -0
  578. package/dist/email-locale-B5OjmAj_.mjs.map +1 -0
  579. package/dist/emdash-runtime-CMdYH2Of.mjs +4229 -0
  580. package/dist/emdash-runtime-CMdYH2Of.mjs.map +1 -0
  581. package/dist/enrich-BDdVNeDK.mjs +194 -0
  582. package/dist/enrich-BDdVNeDK.mjs.map +1 -0
  583. package/dist/entry-lock-B-1bUDxX.d.mts +4544 -0
  584. package/dist/entry-lock-B-1bUDxX.d.mts.map +1 -0
  585. package/dist/entry-lock-B5eaZEZP.mjs +163 -0
  586. package/dist/entry-lock-B5eaZEZP.mjs.map +1 -0
  587. package/dist/entry-lock-PP1JCXBB.mjs +1180 -0
  588. package/dist/entry-lock-PP1JCXBB.mjs.map +1 -0
  589. package/dist/entry-locks-DJAqVweV.mjs +167 -0
  590. package/dist/entry-locks-DJAqVweV.mjs.map +1 -0
  591. package/dist/env-types-BaTCgn-y.mjs +38 -0
  592. package/dist/env-types-BaTCgn-y.mjs.map +1 -0
  593. package/dist/error-CEdm_AWU.mjs +90 -0
  594. package/dist/error-CEdm_AWU.mjs.map +1 -0
  595. package/dist/errors-CNvATh_7.mjs +469 -0
  596. package/dist/errors-CNvATh_7.mjs.map +1 -0
  597. package/dist/errors-CjXd1LgH.mjs +120 -0
  598. package/dist/errors-CjXd1LgH.mjs.map +1 -0
  599. package/dist/escape-nJW7dR0s.mjs +9 -0
  600. package/dist/escape-nJW7dR0s.mjs.map +1 -0
  601. package/dist/fence-BrnQffdY.mjs +162 -0
  602. package/dist/fence-BrnQffdY.mjs.map +1 -0
  603. package/dist/field-defs-cache-DEkFYCDE.mjs +77 -0
  604. package/dist/field-defs-cache-DEkFYCDE.mjs.map +1 -0
  605. package/dist/field-map-Cp5hDSRU.mjs +83 -0
  606. package/dist/field-map-Cp5hDSRU.mjs.map +1 -0
  607. package/dist/focal-point-JX8kcOTQ.mjs +23 -0
  608. package/dist/focal-point-JX8kcOTQ.mjs.map +1 -0
  609. package/dist/fts-manager-DU03MxWu.mjs +443 -0
  610. package/dist/fts-manager-DU03MxWu.mjs.map +1 -0
  611. package/dist/gc-Gf9LOF42.mjs +75 -0
  612. package/dist/gc-Gf9LOF42.mjs.map +1 -0
  613. package/dist/hash-CY4QdeMJ.mjs +37 -0
  614. package/dist/hash-CY4QdeMJ.mjs.map +1 -0
  615. package/dist/hook-result-DjdVwWpw.d.mts +31 -0
  616. package/dist/hook-result-DjdVwWpw.d.mts.map +1 -0
  617. package/dist/hreflang-Bq0ahAd4.mjs +105 -0
  618. package/dist/hreflang-Bq0ahAd4.mjs.map +1 -0
  619. package/dist/hreflang-C7ETs0Tv.d.mts +50 -0
  620. package/dist/hreflang-C7ETs0Tv.d.mts.map +1 -0
  621. package/dist/http-route-dispatch-B2G7_OOm.mjs +339 -0
  622. package/dist/http-route-dispatch-B2G7_OOm.mjs.map +1 -0
  623. package/dist/identity-u3KgtUC9.mjs +35 -0
  624. package/dist/identity-u3KgtUC9.mjs.map +1 -0
  625. package/dist/import-CzP9ffo0.mjs +2020 -0
  626. package/dist/import-CzP9ffo0.mjs.map +1 -0
  627. package/dist/index-D1_ykO2u.d.mts +623 -0
  628. package/dist/index-D1_ykO2u.d.mts.map +1 -0
  629. package/dist/index.d.mts +24 -24
  630. package/dist/index.mjs +108 -102
  631. package/dist/install-finalization-TbcQozrV.mjs +58 -0
  632. package/dist/install-finalization-TbcQozrV.mjs.map +1 -0
  633. package/dist/keys-r08WvAng.mjs +61 -0
  634. package/dist/keys-r08WvAng.mjs.map +1 -0
  635. package/dist/kinds-CXY-fwQ6.mjs +974 -0
  636. package/dist/kinds-CXY-fwQ6.mjs.map +1 -0
  637. package/dist/lifecycle-CpebZNAA.mjs +25 -0
  638. package/dist/lifecycle-CpebZNAA.mjs.map +1 -0
  639. package/dist/load-dHcR5yh9.mjs +28 -0
  640. package/dist/load-dHcR5yh9.mjs.map +1 -0
  641. package/dist/loader-B_bcoE1h.mjs +1197 -0
  642. package/dist/loader-B_bcoE1h.mjs.map +1 -0
  643. package/dist/loops-Dn1i16FP.mjs +205 -0
  644. package/dist/loops-Dn1i16FP.mjs.map +1 -0
  645. package/dist/manifest-builder-D7Y8iirE.mjs +189 -0
  646. package/dist/manifest-builder-D7Y8iirE.mjs.map +1 -0
  647. package/dist/manifest-schema-gy37bD_D.mjs +496 -0
  648. package/dist/manifest-schema-gy37bD_D.mjs.map +1 -0
  649. package/dist/marketplace-tHWSsCUo.mjs +257 -0
  650. package/dist/marketplace-tHWSsCUo.mjs.map +1 -0
  651. package/dist/media/image-endpoint.mjs +1 -1
  652. package/dist/media/index.d.mts +1 -1
  653. package/dist/media/index.mjs +4 -4
  654. package/dist/media/local-runtime.d.mts +14 -14
  655. package/dist/media/local-runtime.mjs +7 -7
  656. package/dist/media-3v7mqAVX.mjs +294 -0
  657. package/dist/media-3v7mqAVX.mjs.map +1 -0
  658. package/dist/media-CputjGE1.mjs +373 -0
  659. package/dist/media-CputjGE1.mjs.map +1 -0
  660. package/dist/media-D1z_jisb.mjs +408 -0
  661. package/dist/media-D1z_jisb.mjs.map +1 -0
  662. package/dist/media-allowlist-D5a4d-RA.mjs +44 -0
  663. package/dist/media-allowlist-D5a4d-RA.mjs.map +1 -0
  664. package/dist/media-folders-D2VdVBf6.mjs +210 -0
  665. package/dist/media-folders-D2VdVBf6.mjs.map +1 -0
  666. package/dist/media-url-DloW2xrP.mjs +43 -0
  667. package/dist/media-url-DloW2xrP.mjs.map +1 -0
  668. package/dist/media-usage-B8q0owWQ.mjs +1629 -0
  669. package/dist/media-usage-B8q0owWQ.mjs.map +1 -0
  670. package/dist/media-usage-activation-CQWOOTJi.mjs +78 -0
  671. package/dist/media-usage-activation-CQWOOTJi.mjs.map +1 -0
  672. package/dist/media-usage-work-BC0qpkMD.mjs +152 -0
  673. package/dist/media-usage-work-BC0qpkMD.mjs.map +1 -0
  674. package/dist/media-usage-work-BlMjwPg8.mjs +586 -0
  675. package/dist/media-usage-work-BlMjwPg8.mjs.map +1 -0
  676. package/dist/menus-BQKqf0Up.mjs +92 -0
  677. package/dist/menus-BQKqf0Up.mjs.map +1 -0
  678. package/dist/menus-DiuhXKWf.mjs +3646 -0
  679. package/dist/menus-DiuhXKWf.mjs.map +1 -0
  680. package/dist/menus-trvc6_fW.mjs +753 -0
  681. package/dist/menus-trvc6_fW.mjs.map +1 -0
  682. package/dist/migrations/index.d.mts +1 -1
  683. package/dist/migrations/index.mjs +3 -3
  684. package/dist/mime-IZf-LHIS.mjs +36 -0
  685. package/dist/mime-IZf-LHIS.mjs.map +1 -0
  686. package/dist/mode-nh0ppSX5.mjs +23 -0
  687. package/dist/mode-nh0ppSX5.mjs.map +1 -0
  688. package/dist/node-sqlite-compat-CDOEcc97.mjs +63 -0
  689. package/dist/node-sqlite-compat-CDOEcc97.mjs.map +1 -0
  690. package/dist/normalize-BuWa0lvd.mjs +191 -0
  691. package/dist/normalize-BuWa0lvd.mjs.map +1 -0
  692. package/dist/oauth-authorization-BcRdGojQ.mjs +274 -0
  693. package/dist/oauth-authorization-BcRdGojQ.mjs.map +1 -0
  694. package/dist/oauth-clients-C-8WDTqj.mjs +266 -0
  695. package/dist/oauth-clients-C-8WDTqj.mjs.map +1 -0
  696. package/dist/oauth-state-store-CM5ZEYQS.mjs +50 -0
  697. package/dist/oauth-state-store-CM5ZEYQS.mjs.map +1 -0
  698. package/dist/oauth-user-lookup-DrrqvTZC.mjs +26 -0
  699. package/dist/oauth-user-lookup-DrrqvTZC.mjs.map +1 -0
  700. package/dist/object-cache/memory.d.mts +1 -1
  701. package/dist/object-cache-Bo6DGaC9.mjs +586 -0
  702. package/dist/object-cache-Bo6DGaC9.mjs.map +1 -0
  703. package/dist/options-C2IDQnD2.d.mts +81 -0
  704. package/dist/options-C2IDQnD2.d.mts.map +1 -0
  705. package/dist/ownership-DoeAIuTg.mjs +12 -0
  706. package/dist/ownership-DoeAIuTg.mjs.map +1 -0
  707. package/dist/page/index.d.mts +2 -2
  708. package/dist/page/index.mjs +6 -6
  709. package/dist/parse-D5Sw9wAI.d.mts +172 -0
  710. package/dist/parse-D5Sw9wAI.d.mts.map +1 -0
  711. package/dist/parse-Gt2l4Sld.mjs +81 -0
  712. package/dist/parse-Gt2l4Sld.mjs.map +1 -0
  713. package/dist/passkey-config-CkQsrcU-.mjs +46 -0
  714. package/dist/passkey-config-CkQsrcU-.mjs.map +1 -0
  715. package/dist/paths-DiENGBx5.mjs +77 -0
  716. package/dist/paths-DiENGBx5.mjs.map +1 -0
  717. package/dist/patterns-DyZJ67I7.mjs +140 -0
  718. package/dist/patterns-DyZJ67I7.mjs.map +1 -0
  719. package/dist/placeholder-Cq5wLDCX.d.mts +306 -0
  720. package/dist/placeholder-Cq5wLDCX.d.mts.map +1 -0
  721. package/dist/plan-BxCS1tl5.mjs +135 -0
  722. package/dist/plan-BxCS1tl5.mjs.map +1 -0
  723. package/dist/plugin-test-runtime.d.mts +14 -14
  724. package/dist/plugin-test-runtime.mjs +115 -108
  725. package/dist/plugin-types.d.mts +5 -3
  726. package/dist/plugin-types.d.mts.map +1 -1
  727. package/dist/plugin-types.mjs.map +1 -1
  728. package/dist/plugin-utils.d.mts +12 -12
  729. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  730. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  731. package/dist/plugins/adapt-sandbox-entry.mjs +48 -10
  732. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  733. package/dist/plugins/host.d.mts +6 -6
  734. package/dist/plugins/host.mjs +49 -43
  735. package/dist/plugins-BpLkXA1S.mjs +277 -0
  736. package/dist/plugins-BpLkXA1S.mjs.map +1 -0
  737. package/dist/policy-C1qpNxrr.mjs +45 -0
  738. package/dist/policy-C1qpNxrr.mjs.map +1 -0
  739. package/dist/portable-text-BnRuiR1-.mjs +307 -0
  740. package/dist/portable-text-BnRuiR1-.mjs.map +1 -0
  741. package/dist/preview-DU5rwz_m.mjs +107 -0
  742. package/dist/preview-DU5rwz_m.mjs.map +1 -0
  743. package/dist/protocol-B9GEhEyi.d.mts +61 -0
  744. package/dist/protocol-B9GEhEyi.d.mts.map +1 -0
  745. package/dist/public-submission-yZaTTfsC.mjs +250 -0
  746. package/dist/public-submission-yZaTTfsC.mjs.map +1 -0
  747. package/dist/public-url-B5a0QAh6.mjs +101 -0
  748. package/dist/public-url-B5a0QAh6.mjs.map +1 -0
  749. package/dist/query-6e2CQxUv.mjs +1161 -0
  750. package/dist/query-6e2CQxUv.mjs.map +1 -0
  751. package/dist/query-DC3bv__4.mjs +41 -0
  752. package/dist/query-DC3bv__4.mjs.map +1 -0
  753. package/dist/rate-limit-BXx3Ecp9.mjs +120 -0
  754. package/dist/rate-limit-BXx3Ecp9.mjs.map +1 -0
  755. package/dist/receipt-q1VK9jhj.mjs +43 -0
  756. package/dist/receipt-q1VK9jhj.mjs.map +1 -0
  757. package/dist/redirect-BvFKh8Sz.mjs +416 -0
  758. package/dist/redirect-BvFKh8Sz.mjs.map +1 -0
  759. package/dist/redirect-D1AmADlk.mjs +19 -0
  760. package/dist/redirect-D1AmADlk.mjs.map +1 -0
  761. package/dist/redirects-CWQMKYOS.mjs +446 -0
  762. package/dist/redirects-CWQMKYOS.mjs.map +1 -0
  763. package/dist/redirects-D4EWeXAo.mjs +148 -0
  764. package/dist/redirects-D4EWeXAo.mjs.map +1 -0
  765. package/dist/registry/testing.d.mts +16 -4
  766. package/dist/registry/testing.d.mts.map +1 -1
  767. package/dist/registry/testing.mjs +20 -10
  768. package/dist/registry/testing.mjs.map +1 -1
  769. package/dist/registry-CtHRqVe-.mjs +6771 -0
  770. package/dist/registry-CtHRqVe-.mjs.map +1 -0
  771. package/dist/relations-CVI2nbrn.mjs +776 -0
  772. package/dist/relations-CVI2nbrn.mjs.map +1 -0
  773. package/dist/request-cache-C4CIo5ad.mjs +104 -0
  774. package/dist/request-cache-C4CIo5ad.mjs.map +1 -0
  775. package/dist/request-context.d.mts +9 -1
  776. package/dist/request-context.d.mts.map +1 -1
  777. package/dist/request-context.mjs.map +1 -1
  778. package/dist/request-meta-B6blULFY.mjs +141 -0
  779. package/dist/request-meta-B6blULFY.mjs.map +1 -0
  780. package/dist/resolve-Cx0Pwz0-.mjs +100 -0
  781. package/dist/resolve-Cx0Pwz0-.mjs.map +1 -0
  782. package/dist/resolve-D-kqyKns.mjs +199 -0
  783. package/dist/resolve-D-kqyKns.mjs.map +1 -0
  784. package/dist/revision-CGkQA0e5.mjs +366 -0
  785. package/dist/revision-CGkQA0e5.mjs.map +1 -0
  786. package/dist/route-wire-DK600v4u.mjs +197 -0
  787. package/dist/route-wire-DK600v4u.mjs.map +1 -0
  788. package/dist/routes-DTduBPzX.mjs +272 -0
  789. package/dist/routes-DTduBPzX.mjs.map +1 -0
  790. package/dist/runner-CLpxmhl8.mjs +6197 -0
  791. package/dist/runner-CLpxmhl8.mjs.map +1 -0
  792. package/dist/runner-Ji7qyH2A.d.mts +68 -0
  793. package/dist/runner-Ji7qyH2A.d.mts.map +1 -0
  794. package/dist/runtime.d.mts +13 -13
  795. package/dist/runtime.mjs +3 -3
  796. package/dist/schema/project-env-types.d.mts +12 -0
  797. package/dist/schema/project-env-types.d.mts.map +1 -0
  798. package/dist/schema/project-env-types.mjs +86 -0
  799. package/dist/schema/project-env-types.mjs.map +1 -0
  800. package/dist/schema-BZPj3kwZ.mjs +13 -0
  801. package/dist/schema-BZPj3kwZ.mjs.map +1 -0
  802. package/dist/schema-Berj5VQx.mjs +815 -0
  803. package/dist/schema-Berj5VQx.mjs.map +1 -0
  804. package/dist/scopes-C1HJaIyf.mjs +34 -0
  805. package/dist/scopes-C1HJaIyf.mjs.map +1 -0
  806. package/dist/search-thYf8j9F.mjs +448 -0
  807. package/dist/search-thYf8j9F.mjs.map +1 -0
  808. package/dist/sections-2k1uIgJ0.mjs +346 -0
  809. package/dist/sections-2k1uIgJ0.mjs.map +1 -0
  810. package/dist/seed/index.d.mts +2 -2
  811. package/dist/seed/index.mjs +39 -32
  812. package/dist/seo/index.d.mts +3 -3
  813. package/dist/seo/index.mjs +24 -22
  814. package/dist/seo/index.mjs.map +1 -1
  815. package/dist/seo-C61bnPuV.mjs +114 -0
  816. package/dist/seo-C61bnPuV.mjs.map +1 -0
  817. package/dist/seo-DpYxmGaL.mjs +133 -0
  818. package/dist/seo-DpYxmGaL.mjs.map +1 -0
  819. package/dist/service-BFUImckH.mjs +150 -0
  820. package/dist/service-BFUImckH.mjs.map +1 -0
  821. package/dist/session-user-DVcHsFD5.mjs +61 -0
  822. package/dist/session-user-DVcHsFD5.mjs.map +1 -0
  823. package/dist/settings-B0zQj_Tj.mjs +61 -0
  824. package/dist/settings-B0zQj_Tj.mjs.map +1 -0
  825. package/dist/settings-BJjK_X7x.mjs +51 -0
  826. package/dist/settings-BJjK_X7x.mjs.map +1 -0
  827. package/dist/settings-BbVRRGDp.mjs +439 -0
  828. package/dist/settings-BbVRRGDp.mjs.map +1 -0
  829. package/dist/setup-complete-CuLcTDTU.mjs +65 -0
  830. package/dist/setup-complete-CuLcTDTU.mjs.map +1 -0
  831. package/dist/setup-nonce-CAQoY5PC.mjs +25 -0
  832. package/dist/setup-nonce-CAQoY5PC.mjs.map +1 -0
  833. package/dist/site-settings-AYFvhwQn.mjs +50 -0
  834. package/dist/site-settings-AYFvhwQn.mjs.map +1 -0
  835. package/dist/site-url-Ceq_AUK0.mjs +16 -0
  836. package/dist/site-url-Ceq_AUK0.mjs.map +1 -0
  837. package/dist/snapshot-Dzsn3NZa.mjs +414 -0
  838. package/dist/snapshot-Dzsn3NZa.mjs.map +1 -0
  839. package/dist/ssrf-DsmvZB80.mjs +406 -0
  840. package/dist/ssrf-DsmvZB80.mjs.map +1 -0
  841. package/dist/stage-Cf9PqdUB.mjs +662 -0
  842. package/dist/stage-Cf9PqdUB.mjs.map +1 -0
  843. package/dist/staged-Bw5eHbKS.mjs +686 -0
  844. package/dist/staged-Bw5eHbKS.mjs.map +1 -0
  845. package/dist/state-kGdOMQRY.mjs +153 -0
  846. package/dist/state-kGdOMQRY.mjs.map +1 -0
  847. package/dist/status-D39Fpy8R.mjs +30 -0
  848. package/dist/status-D39Fpy8R.mjs.map +1 -0
  849. package/dist/storage/local.d.mts +1 -1
  850. package/dist/storage/local.mjs +1 -1
  851. package/dist/storage/s3.d.mts +1 -1
  852. package/dist/storage/s3.mjs +1 -1
  853. package/dist/storage-query-C9bK0Dg6.d.mts +1614 -0
  854. package/dist/storage-query-C9bK0Dg6.d.mts.map +1 -0
  855. package/dist/tar-lDI_fzLD.mjs +449 -0
  856. package/dist/tar-lDI_fzLD.mjs.map +1 -0
  857. package/dist/target-DOFs5oUC.mjs +27 -0
  858. package/dist/target-DOFs5oUC.mjs.map +1 -0
  859. package/dist/taxonomies-DQGomz9p.mjs +939 -0
  860. package/dist/taxonomies-DQGomz9p.mjs.map +1 -0
  861. package/dist/taxonomies-DWv-OYT0.mjs +697 -0
  862. package/dist/taxonomies-DWv-OYT0.mjs.map +1 -0
  863. package/dist/taxonomy-BesdHIwi.mjs +525 -0
  864. package/dist/taxonomy-BesdHIwi.mjs.map +1 -0
  865. package/dist/tokens-BIGxi8sP.mjs +171 -0
  866. package/dist/tokens-BIGxi8sP.mjs.map +1 -0
  867. package/dist/transaction-BVYIo_yu.mjs +29 -0
  868. package/dist/transaction-BVYIo_yu.mjs.map +1 -0
  869. package/dist/transfer-BtzoaXLk.mjs +166 -0
  870. package/dist/transfer-BtzoaXLk.mjs.map +1 -0
  871. package/dist/transfer-DLu_6AXL.mjs +8856 -0
  872. package/dist/transfer-DLu_6AXL.mjs.map +1 -0
  873. package/dist/transfer-download-b_PCrqJJ.mjs +33 -0
  874. package/dist/transfer-download-b_PCrqJJ.mjs.map +1 -0
  875. package/dist/transformations-DdnpSdeC.mjs +196 -0
  876. package/dist/transformations-DdnpSdeC.mjs.map +1 -0
  877. package/dist/transport-flR-Zmds.d.mts +42 -0
  878. package/dist/transport-flR-Zmds.d.mts.map +1 -0
  879. package/dist/transport-umzEbgYO.mjs +136 -0
  880. package/dist/transport-umzEbgYO.mjs.map +1 -0
  881. package/dist/trusted-proxy-BqfQFs6a.mjs +51 -0
  882. package/dist/trusted-proxy-BqfQFs6a.mjs.map +1 -0
  883. package/dist/turnstile-IvQp2uyD.mjs +53 -0
  884. package/dist/turnstile-IvQp2uyD.mjs.map +1 -0
  885. package/dist/types-2V_MVPYy.d.mts +125 -0
  886. package/dist/types-2V_MVPYy.d.mts.map +1 -0
  887. package/dist/types-B-WCvzdi.d.mts +198 -0
  888. package/dist/types-B-WCvzdi.d.mts.map +1 -0
  889. package/dist/types-BGmQ0uXs.mjs +201 -0
  890. package/dist/types-BGmQ0uXs.mjs.map +1 -0
  891. package/dist/types-CVsmpTcU.mjs +18 -0
  892. package/dist/types-CVsmpTcU.mjs.map +1 -0
  893. package/dist/types-C_V-_vMS.d.mts +198 -0
  894. package/dist/types-C_V-_vMS.d.mts.map +1 -0
  895. package/dist/types-CdEMurNh.mjs +77 -0
  896. package/dist/types-CdEMurNh.mjs.map +1 -0
  897. package/dist/types-CsmwbOwa.mjs +22 -0
  898. package/dist/types-CsmwbOwa.mjs.map +1 -0
  899. package/dist/types-Cw-1it3n.d.mts +287 -0
  900. package/dist/types-Cw-1it3n.d.mts.map +1 -0
  901. package/dist/types-D7B20WFC.d.mts +374 -0
  902. package/dist/types-D7B20WFC.d.mts.map +1 -0
  903. package/dist/types-DGw8KMX_.mjs +16 -0
  904. package/dist/types-DGw8KMX_.mjs.map +1 -0
  905. package/dist/types-DZeDpzMc.d.mts +896 -0
  906. package/dist/types-DZeDpzMc.d.mts.map +1 -0
  907. package/dist/types-DuQAIPA-.d.mts +363 -0
  908. package/dist/types-DuQAIPA-.d.mts.map +1 -0
  909. package/dist/types-edRPQchz.d.mts +85 -0
  910. package/dist/types-edRPQchz.d.mts.map +1 -0
  911. package/dist/types-j6MBDjlZ.mjs +103 -0
  912. package/dist/types-j6MBDjlZ.mjs.map +1 -0
  913. package/dist/types-pOLeFKGq.d.mts +1720 -0
  914. package/dist/types-pOLeFKGq.d.mts.map +1 -0
  915. package/dist/update-check-CaZyFHZC.mjs +161 -0
  916. package/dist/update-check-CaZyFHZC.mjs.map +1 -0
  917. package/dist/upload-attempts-BodUoFBu.mjs +32 -0
  918. package/dist/upload-attempts-BodUoFBu.mjs.map +1 -0
  919. package/dist/url-Dn3IStq8.mjs +104 -0
  920. package/dist/url-Dn3IStq8.mjs.map +1 -0
  921. package/dist/url-pattern-DGAG6ZP2.mjs +41 -0
  922. package/dist/url-pattern-DGAG6ZP2.mjs.map +1 -0
  923. package/dist/user-BOvuF1sQ.mjs +171 -0
  924. package/dist/user-BOvuF1sQ.mjs.map +1 -0
  925. package/dist/utils-CoV-PYhg.mjs +439 -0
  926. package/dist/utils-CoV-PYhg.mjs.map +1 -0
  927. package/dist/validate-WkjGwBSO.mjs +516 -0
  928. package/dist/validate-WkjGwBSO.mjs.map +1 -0
  929. package/dist/validate-dK97qe7F.d.mts +468 -0
  930. package/dist/validate-dK97qe7F.d.mts.map +1 -0
  931. package/dist/validation-D-ICq_tY.mjs +219 -0
  932. package/dist/validation-D-ICq_tY.mjs.map +1 -0
  933. package/dist/version-DbT04wbH.mjs +9 -0
  934. package/dist/version-DbT04wbH.mjs.map +1 -0
  935. package/dist/version-IneBU54o.mjs +7 -0
  936. package/dist/version-IneBU54o.mjs.map +1 -0
  937. package/dist/virtual-modules-Brh6mRVe.mjs +516 -0
  938. package/dist/virtual-modules-Brh6mRVe.mjs.map +1 -0
  939. package/dist/widgets-D8T0xBYs.mjs +126 -0
  940. package/dist/widgets-D8T0xBYs.mjs.map +1 -0
  941. package/dist/wxr-taxonomies-B6iE8m9I.d.mts +34 -0
  942. package/dist/wxr-taxonomies-B6iE8m9I.d.mts.map +1 -0
  943. package/dist/wxr-taxonomies-DEzR9N7e.mjs +453 -0
  944. package/dist/wxr-taxonomies-DEzR9N7e.mjs.map +1 -0
  945. package/dist/zod-generator-DnfG5sGQ.mjs +424 -0
  946. package/dist/zod-generator-DnfG5sGQ.mjs.map +1 -0
  947. package/package.json +15 -15
  948. package/src/api/errors.ts +11 -0
  949. package/src/api/handlers/bulk-tag.ts +4 -4
  950. package/src/api/handlers/content.ts +631 -32
  951. package/src/api/handlers/device-flow.ts +74 -21
  952. package/src/api/handlers/index.ts +3 -0
  953. package/src/api/handlers/manifest.ts +81 -5
  954. package/src/api/handlers/media-upload.ts +3 -0
  955. package/src/api/handlers/media.ts +2 -2
  956. package/src/api/handlers/registry.ts +123 -70
  957. package/src/api/handlers/relations.ts +638 -157
  958. package/src/api/handlers/revision.ts +40 -2
  959. package/src/api/handlers/schema.ts +403 -1
  960. package/src/api/handlers/staged-references.ts +208 -0
  961. package/src/api/handlers/update-check.ts +236 -0
  962. package/src/api/handlers/validate-references.ts +146 -0
  963. package/src/api/redirect.ts +9 -1
  964. package/src/api/schemas/content.ts +17 -0
  965. package/src/api/schemas/import.ts +50 -14
  966. package/src/api/schemas/relations.ts +54 -44
  967. package/src/api/schemas/schema.ts +26 -6
  968. package/src/api/setup-complete.ts +49 -1
  969. package/src/api/types.ts +4 -0
  970. package/src/astro/dev-typegen.ts +15 -22
  971. package/src/astro/integration/dev-typegen.ts +32 -3
  972. package/src/astro/integration/index.ts +88 -22
  973. package/src/astro/integration/routes.ts +21 -19
  974. package/src/astro/integration/runtime.ts +33 -7
  975. package/src/astro/integration/virtual-modules.ts +1 -0
  976. package/src/astro/integration/vite-config.ts +16 -8
  977. package/src/astro/middleware/redirect.ts +15 -2
  978. package/src/astro/middleware/request-context.ts +13 -6
  979. package/src/astro/routes/api/admin/bylines/[id]/index.ts +11 -1
  980. package/src/astro/routes/api/admin/bylines/[id]/translations.ts +7 -1
  981. package/src/astro/routes/api/admin/bylines/index.ts +6 -1
  982. package/src/astro/routes/api/admin/core-update.ts +34 -0
  983. package/src/astro/routes/api/admin/plugins/marketplace/[id]/icon.ts +6 -2
  984. package/src/astro/routes/api/admin/themes/marketplace/[id]/thumbnail.ts +6 -2
  985. package/src/astro/routes/api/auth/invite/complete.ts +4 -4
  986. package/src/astro/routes/api/auth/magic-link/verify.ts +4 -1
  987. package/src/astro/routes/api/auth/oauth/[provider]/callback.ts +9 -4
  988. package/src/astro/routes/api/auth/passkey/verify.ts +4 -4
  989. package/src/astro/routes/api/auth/signup/complete.ts +4 -4
  990. package/src/astro/routes/api/content/[collection]/[id]/references/[relation]/children.ts +11 -54
  991. package/src/astro/routes/api/content/[collection]/[id].ts +3 -1
  992. package/src/astro/routes/api/import/wordpress/execute.ts +252 -6
  993. package/src/astro/routes/api/import/wordpress/prepare.ts +1 -2
  994. package/src/astro/routes/api/oauth/device/authorize.ts +33 -4
  995. package/src/astro/routes/api/oauth/register.ts +22 -2
  996. package/src/astro/routes/api/relations/index.ts +4 -4
  997. package/src/astro/routes/api/revisions/[revisionId]/restore.ts +17 -1
  998. package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +6 -2
  999. package/src/astro/routes/api/setup/admin-verify.ts +6 -5
  1000. package/src/astro/routes/api/typegen.ts +4 -46
  1001. package/src/astro/session-user.ts +14 -0
  1002. package/src/astro/types.ts +11 -0
  1003. package/src/bylines/credits.ts +149 -0
  1004. package/src/bylines/index.ts +4 -142
  1005. package/src/cli/commands/export-seed.ts +510 -89
  1006. package/src/cli/commands/seed.ts +2 -0
  1007. package/src/cli/credentials.ts +1 -60
  1008. package/src/cli/index.ts +0 -2
  1009. package/src/client/index.ts +8 -2
  1010. package/src/components/Image.astro +24 -13
  1011. package/src/components/InlinePortableTextEditor.tsx +25 -8
  1012. package/src/components/WidgetArea.astro +3 -2
  1013. package/src/content/converters/portable-text-to-prosemirror.ts +23 -17
  1014. package/src/content/converters/prosemirror-to-portable-text.ts +16 -5
  1015. package/src/content/converters/types.ts +1 -0
  1016. package/src/database/content-datetime.ts +111 -23
  1017. package/src/database/migrations/036_i18n_menus_and_taxonomies.ts +132 -92
  1018. package/src/database/migrations/086_relations_structural.ts +197 -0
  1019. package/src/database/migrations/087_reference_field_relations.ts +407 -0
  1020. package/src/database/migrations/088_cron_oneshot_utc.ts +39 -0
  1021. package/src/database/migrations/089_auto_seed_completion.ts +13 -0
  1022. package/src/database/migrations/runner.ts +8 -0
  1023. package/src/database/reference-backfill.ts +141 -0
  1024. package/src/database/repositories/comment.ts +2 -2
  1025. package/src/database/repositories/content.ts +58 -16
  1026. package/src/database/repositories/plugin-storage.ts +1 -1
  1027. package/src/database/repositories/redirect.ts +7 -2
  1028. package/src/database/repositories/relation.ts +622 -210
  1029. package/src/database/repositories/revision.ts +16 -0
  1030. package/src/database/repositories/types.ts +38 -0
  1031. package/src/database/transaction.ts +12 -1
  1032. package/src/database/types.ts +15 -6
  1033. package/src/db/node-sqlite-compat.ts +63 -37
  1034. package/src/emdash-runtime.ts +149 -46
  1035. package/src/import/wxr-taxonomies.ts +163 -88
  1036. package/src/index.ts +20 -0
  1037. package/src/loader.ts +177 -23
  1038. package/src/mcp/server.ts +90 -8
  1039. package/src/media/usage/activation.ts +18 -9
  1040. package/src/migrations/config-loader.ts +5 -0
  1041. package/src/object-cache/index.ts +19 -7
  1042. package/src/object-cache/types.ts +3 -2
  1043. package/src/plugin-types.ts +7 -0
  1044. package/src/plugins/adapt-sandbox-entry.ts +47 -12
  1045. package/src/plugins/byline-access.ts +158 -0
  1046. package/src/plugins/context.ts +7 -1
  1047. package/src/plugins/cron.ts +27 -4
  1048. package/src/plugins/hooks.ts +47 -0
  1049. package/src/plugins/host.ts +1 -0
  1050. package/src/plugins/index.ts +10 -1
  1051. package/src/plugins/manifest-schema.ts +5 -1
  1052. package/src/plugins/marketplace.ts +48 -36
  1053. package/src/plugins/sandbox/proxy.ts +1 -0
  1054. package/src/plugins/types.ts +95 -0
  1055. package/src/query.ts +464 -27
  1056. package/src/redirects/cache.ts +11 -1
  1057. package/src/redirects/destination.ts +20 -0
  1058. package/src/redirects/loops.ts +10 -6
  1059. package/src/redirects/patterns.ts +12 -30
  1060. package/src/references/field-map.ts +115 -0
  1061. package/src/references/resolve.ts +160 -0
  1062. package/src/references/staged.ts +157 -0
  1063. package/src/references/types.ts +16 -0
  1064. package/src/registry/artifact-fetch.ts +45 -271
  1065. package/src/registry/testing.ts +59 -14
  1066. package/src/request-context.ts +8 -0
  1067. package/src/schema/block-type-registry.ts +1 -1
  1068. package/src/schema/env-types.ts +37 -0
  1069. package/src/schema/project-env-types.ts +41 -0
  1070. package/src/schema/registry.ts +132 -26
  1071. package/src/schema/types.ts +63 -0
  1072. package/src/schema/url-pattern.ts +10 -0
  1073. package/src/schema/zod-generator.ts +78 -2
  1074. package/src/seed/apply.ts +553 -63
  1075. package/src/seed/ownership.ts +15 -0
  1076. package/src/seed/types.ts +36 -2
  1077. package/src/seed/validate.ts +123 -4
  1078. package/src/transfer/analyze/unique-keys.ts +3 -12
  1079. package/src/transfer/analyze/validate.ts +178 -40
  1080. package/src/transfer/analyze/values.ts +116 -2
  1081. package/src/transfer/analyze/write-rules.ts +8 -0
  1082. package/src/transfer/export/readers.ts +12 -8
  1083. package/src/transfer/format/columns.ts +26 -6
  1084. package/src/transfer/format/kinds.ts +21 -5
  1085. package/src/transfer/import/context.ts +8 -1
  1086. package/src/transfer/ops/package-index.ts +1 -1
  1087. package/src/utils/url.ts +58 -3
  1088. package/src/virtual-modules.d.ts +3 -0
  1089. package/dist/action-token-DYwe4Pk0.mjs +0 -26
  1090. package/dist/action-token-DYwe4Pk0.mjs.map +0 -1
  1091. package/dist/activation-LOkDM5WT.mjs +0 -382
  1092. package/dist/activation-LOkDM5WT.mjs.map +0 -1
  1093. package/dist/adapters-B64LbYcB.d.mts +0 -171
  1094. package/dist/adapters-B64LbYcB.d.mts.map +0 -1
  1095. package/dist/allowed-origins-CHB8oZNM.mjs +0 -116
  1096. package/dist/allowed-origins-CHB8oZNM.mjs.map +0 -1
  1097. package/dist/api-CuyNEHZG.mjs +0 -4718
  1098. package/dist/api-CuyNEHZG.mjs.map +0 -1
  1099. package/dist/api-tokens-s4i4aUp_.mjs +0 -166
  1100. package/dist/api-tokens-s4i4aUp_.mjs.map +0 -1
  1101. package/dist/apply-npY1TAhG.mjs +0 -1366
  1102. package/dist/apply-npY1TAhG.mjs.map +0 -1
  1103. package/dist/approvals-CqMfNxak.mjs +0 -460
  1104. package/dist/approvals-CqMfNxak.mjs.map +0 -1
  1105. package/dist/artifact-fetch-DZMOGZ3-.mjs +0 -818
  1106. package/dist/artifact-fetch-DZMOGZ3-.mjs.map +0 -1
  1107. package/dist/astro/routes/api/relations/_id_/translations.d.mts +0 -8
  1108. package/dist/astro/routes/api/relations/_id_/translations.d.mts.map +0 -1
  1109. package/dist/astro/routes/api/relations/_id_/translations.mjs +0 -47
  1110. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +0 -1
  1111. package/dist/audit-RfCugiSB.mjs +0 -127
  1112. package/dist/audit-RfCugiSB.mjs.map +0 -1
  1113. package/dist/authoritative-records-CoJvBXAD.mjs +0 -5172
  1114. package/dist/authoritative-records-CoJvBXAD.mjs.map +0 -1
  1115. package/dist/authorize-seCifOMJ.mjs +0 -49
  1116. package/dist/authorize-seCifOMJ.mjs.map +0 -1
  1117. package/dist/backup-BQRj3afm.mjs +0 -246
  1118. package/dist/backup-BQRj3afm.mjs.map +0 -1
  1119. package/dist/block-type-registry-DUI_3KxT.mjs +0 -6709
  1120. package/dist/block-type-registry-DUI_3KxT.mjs.map +0 -1
  1121. package/dist/block-types-BmZmLmAD.mjs +0 -132
  1122. package/dist/block-types-BmZmLmAD.mjs.map +0 -1
  1123. package/dist/block-values-C_VIPr5t.mjs +0 -175
  1124. package/dist/block-values-C_VIPr5t.mjs.map +0 -1
  1125. package/dist/byline-DYmkXqvo.mjs +0 -909
  1126. package/dist/byline-DYmkXqvo.mjs.map +0 -1
  1127. package/dist/byline-fields-D28AT-Fh.mjs +0 -123
  1128. package/dist/byline-fields-D28AT-Fh.mjs.map +0 -1
  1129. package/dist/byline-registry-gnKscbQX.mjs +0 -406
  1130. package/dist/byline-registry-gnKscbQX.mjs.map +0 -1
  1131. package/dist/bylines-BPwJqoYH.mjs +0 -232
  1132. package/dist/bylines-BPwJqoYH.mjs.map +0 -1
  1133. package/dist/bylines-ukLaYpVZ.mjs +0 -214
  1134. package/dist/bylines-ukLaYpVZ.mjs.map +0 -1
  1135. package/dist/cache-m7UEkRFV.mjs +0 -108
  1136. package/dist/cache-m7UEkRFV.mjs.map +0 -1
  1137. package/dist/canonical-YhEQezjg.mjs +0 -174
  1138. package/dist/canonical-YhEQezjg.mjs.map +0 -1
  1139. package/dist/capture-triggers-kJyl_yyM.mjs +0 -362
  1140. package/dist/capture-triggers-kJyl_yyM.mjs.map +0 -1
  1141. package/dist/challenge-store-ppU6Uv13.mjs +0 -51
  1142. package/dist/challenge-store-ppU6Uv13.mjs.map +0 -1
  1143. package/dist/checksum-B2IINIlN.mjs +0 -162
  1144. package/dist/checksum-B2IINIlN.mjs.map +0 -1
  1145. package/dist/chrome-tags-DApCQSIk.mjs +0 -24
  1146. package/dist/chrome-tags-DApCQSIk.mjs.map +0 -1
  1147. package/dist/chunks-Dms7Uxbt.mjs +0 -25
  1148. package/dist/chunks-Dms7Uxbt.mjs.map +0 -1
  1149. package/dist/collection-deletion-BIm28mo3.mjs +0 -436
  1150. package/dist/collection-deletion-BIm28mo3.mjs.map +0 -1
  1151. package/dist/collection-deletion-processor-Br6rxs3u.mjs +0 -217
  1152. package/dist/collection-deletion-processor-Br6rxs3u.mjs.map +0 -1
  1153. package/dist/collection-slugs-cache-CjGk__zp.mjs +0 -85
  1154. package/dist/collection-slugs-cache-CjGk__zp.mjs.map +0 -1
  1155. package/dist/comment-CrBl22OF.mjs +0 -313
  1156. package/dist/comment-CrBl22OF.mjs.map +0 -1
  1157. package/dist/comment-reaction-JEQ2Fpd8.mjs +0 -85
  1158. package/dist/comment-reaction-JEQ2Fpd8.mjs.map +0 -1
  1159. package/dist/comments-2ah9du9y.mjs +0 -195
  1160. package/dist/comments-2ah9du9y.mjs.map +0 -1
  1161. package/dist/comments-fHZ8ON9O.mjs +0 -99
  1162. package/dist/comments-fHZ8ON9O.mjs.map +0 -1
  1163. package/dist/components-CXbq7CSM.mjs +0 -108
  1164. package/dist/components-CXbq7CSM.mjs.map +0 -1
  1165. package/dist/config-BjEm_3xL.d.mts +0 -6537
  1166. package/dist/config-BjEm_3xL.d.mts.map +0 -1
  1167. package/dist/config-IhybvkIQ.mjs +0 -242
  1168. package/dist/config-IhybvkIQ.mjs.map +0 -1
  1169. package/dist/config-Py43JK9r.d.mts +0 -39
  1170. package/dist/config-Py43JK9r.d.mts.map +0 -1
  1171. package/dist/content-DFaIEDj9.mjs +0 -2281
  1172. package/dist/content-DFaIEDj9.mjs.map +0 -1
  1173. package/dist/content-list-query-Dra4Dalc.d.mts +0 -26
  1174. package/dist/content-list-query-Dra4Dalc.d.mts.map +0 -1
  1175. package/dist/content-policy-DFNw91-d.mjs +0 -46
  1176. package/dist/content-policy-DFNw91-d.mjs.map +0 -1
  1177. package/dist/content-repair-Q8IUrpLL.mjs +0 -442
  1178. package/dist/content-repair-Q8IUrpLL.mjs.map +0 -1
  1179. package/dist/context-BV_7t-Ua.mjs +0 -1921
  1180. package/dist/context-BV_7t-Ua.mjs.map +0 -1
  1181. package/dist/cron-7DCJwPXq.mjs +0 -284
  1182. package/dist/cron-7DCJwPXq.mjs.map +0 -1
  1183. package/dist/dashboard-BP-iJqpd.mjs +0 -151
  1184. package/dist/dashboard-BP-iJqpd.mjs.map +0 -1
  1185. package/dist/default-DQ6vsviu.mjs +0 -81
  1186. package/dist/default-DQ6vsviu.mjs.map +0 -1
  1187. package/dist/deferred-tasks-BPxXUB4x.d.mts +0 -9
  1188. package/dist/deferred-tasks-BPxXUB4x.d.mts.map +0 -1
  1189. package/dist/dev-typegen-CZaPLl3V.mjs +0 -29
  1190. package/dist/dev-typegen-CZaPLl3V.mjs.map +0 -1
  1191. package/dist/device-flow-CRd6DXmW.mjs +0 -466
  1192. package/dist/device-flow-CRd6DXmW.mjs.map +0 -1
  1193. package/dist/digest-BarSh-pN.mjs +0 -194
  1194. package/dist/digest-BarSh-pN.mjs.map +0 -1
  1195. package/dist/direct-executor-D2lNadwo.mjs +0 -104
  1196. package/dist/direct-executor-D2lNadwo.mjs.map +0 -1
  1197. package/dist/dist-BNwANFJR.mjs +0 -810
  1198. package/dist/dist-BNwANFJR.mjs.map +0 -1
  1199. package/dist/email-console-bJn3ctqA.mjs +0 -50
  1200. package/dist/email-console-bJn3ctqA.mjs.map +0 -1
  1201. package/dist/email-locale-CN6WAMx0.mjs +0 -25
  1202. package/dist/email-locale-CN6WAMx0.mjs.map +0 -1
  1203. package/dist/emdash-runtime-CtfnZmPi.mjs +0 -4186
  1204. package/dist/emdash-runtime-CtfnZmPi.mjs.map +0 -1
  1205. package/dist/enrich-Dl3kZ-lP.mjs +0 -194
  1206. package/dist/enrich-Dl3kZ-lP.mjs.map +0 -1
  1207. package/dist/entry-lock-BJYdBfXb.mjs +0 -1097
  1208. package/dist/entry-lock-BJYdBfXb.mjs.map +0 -1
  1209. package/dist/entry-lock-Cf5OoIgN.d.mts +0 -4368
  1210. package/dist/entry-lock-Cf5OoIgN.d.mts.map +0 -1
  1211. package/dist/entry-lock-DHQOxN7R.mjs +0 -163
  1212. package/dist/entry-lock-DHQOxN7R.mjs.map +0 -1
  1213. package/dist/entry-locks-D0foLdjQ.mjs +0 -167
  1214. package/dist/entry-locks-D0foLdjQ.mjs.map +0 -1
  1215. package/dist/error-CfvOHP0M.mjs +0 -90
  1216. package/dist/error-CfvOHP0M.mjs.map +0 -1
  1217. package/dist/errors-BF0_LFhW.mjs +0 -460
  1218. package/dist/errors-BF0_LFhW.mjs.map +0 -1
  1219. package/dist/errors-DgE1zJGG.mjs +0 -120
  1220. package/dist/errors-DgE1zJGG.mjs.map +0 -1
  1221. package/dist/escape-CuaZhZvL.mjs +0 -9
  1222. package/dist/escape-CuaZhZvL.mjs.map +0 -1
  1223. package/dist/fence-CMDXJYc_.mjs +0 -162
  1224. package/dist/fence-CMDXJYc_.mjs.map +0 -1
  1225. package/dist/field-defs-cache-HIgBbqZZ.mjs +0 -77
  1226. package/dist/field-defs-cache-HIgBbqZZ.mjs.map +0 -1
  1227. package/dist/focal-point-Gr34o-4o.mjs +0 -23
  1228. package/dist/focal-point-Gr34o-4o.mjs.map +0 -1
  1229. package/dist/fts-manager-S-K0laoS.mjs +0 -443
  1230. package/dist/fts-manager-S-K0laoS.mjs.map +0 -1
  1231. package/dist/gc-DjKY0Ay1.mjs +0 -75
  1232. package/dist/gc-DjKY0Ay1.mjs.map +0 -1
  1233. package/dist/hash-SDAW6zC-.mjs +0 -37
  1234. package/dist/hash-SDAW6zC-.mjs.map +0 -1
  1235. package/dist/hook-result-B5bXDgS2.d.mts +0 -31
  1236. package/dist/hook-result-B5bXDgS2.d.mts.map +0 -1
  1237. package/dist/hreflang-CbVI4paR.mjs +0 -105
  1238. package/dist/hreflang-CbVI4paR.mjs.map +0 -1
  1239. package/dist/hreflang-D5uNnsGJ.d.mts +0 -50
  1240. package/dist/hreflang-D5uNnsGJ.d.mts.map +0 -1
  1241. package/dist/http-route-dispatch-BitqzwMy.mjs +0 -339
  1242. package/dist/http-route-dispatch-BitqzwMy.mjs.map +0 -1
  1243. package/dist/identity-Be5kzutJ.mjs +0 -35
  1244. package/dist/identity-Be5kzutJ.mjs.map +0 -1
  1245. package/dist/import-YzfKCaco.mjs +0 -2020
  1246. package/dist/import-YzfKCaco.mjs.map +0 -1
  1247. package/dist/index-D-hdtLe8.d.mts +0 -623
  1248. package/dist/index-D-hdtLe8.d.mts.map +0 -1
  1249. package/dist/install-finalization-DfM1fj5x.mjs +0 -58
  1250. package/dist/install-finalization-DfM1fj5x.mjs.map +0 -1
  1251. package/dist/keys-yxLm5l35.mjs +0 -61
  1252. package/dist/keys-yxLm5l35.mjs.map +0 -1
  1253. package/dist/kinds-CRu_T5T5.mjs +0 -961
  1254. package/dist/kinds-CRu_T5T5.mjs.map +0 -1
  1255. package/dist/lifecycle-BzeGPeQ-.mjs +0 -25
  1256. package/dist/lifecycle-BzeGPeQ-.mjs.map +0 -1
  1257. package/dist/load-XgJiE6_3.mjs +0 -28
  1258. package/dist/load-XgJiE6_3.mjs.map +0 -1
  1259. package/dist/loader-BzqeR1ZN.mjs +0 -1086
  1260. package/dist/loader-BzqeR1ZN.mjs.map +0 -1
  1261. package/dist/loops-BQSzv5Zn.mjs +0 -203
  1262. package/dist/loops-BQSzv5Zn.mjs.map +0 -1
  1263. package/dist/manifest-builder-BmSAOOEF.mjs +0 -189
  1264. package/dist/manifest-builder-BmSAOOEF.mjs.map +0 -1
  1265. package/dist/manifest-schema-CY3zng_M.mjs +0 -492
  1266. package/dist/manifest-schema-CY3zng_M.mjs.map +0 -1
  1267. package/dist/media-CPXTbb1R.mjs +0 -373
  1268. package/dist/media-CPXTbb1R.mjs.map +0 -1
  1269. package/dist/media-JXRWDhw3.mjs +0 -294
  1270. package/dist/media-JXRWDhw3.mjs.map +0 -1
  1271. package/dist/media-Pu1L6xir.mjs +0 -408
  1272. package/dist/media-Pu1L6xir.mjs.map +0 -1
  1273. package/dist/media-allowlist-BSoa9Vvm.mjs +0 -44
  1274. package/dist/media-allowlist-BSoa9Vvm.mjs.map +0 -1
  1275. package/dist/media-folders-BE0oo2eX.mjs +0 -210
  1276. package/dist/media-folders-BE0oo2eX.mjs.map +0 -1
  1277. package/dist/media-url-jArBpzIG.mjs +0 -43
  1278. package/dist/media-url-jArBpzIG.mjs.map +0 -1
  1279. package/dist/media-usage-De-zeR9E.mjs +0 -1629
  1280. package/dist/media-usage-De-zeR9E.mjs.map +0 -1
  1281. package/dist/media-usage-activation-HKp7zk7W.mjs +0 -78
  1282. package/dist/media-usage-activation-HKp7zk7W.mjs.map +0 -1
  1283. package/dist/media-usage-work-C2OZLCAd.mjs +0 -586
  1284. package/dist/media-usage-work-C2OZLCAd.mjs.map +0 -1
  1285. package/dist/media-usage-work-DwUNbgvS.mjs +0 -152
  1286. package/dist/media-usage-work-DwUNbgvS.mjs.map +0 -1
  1287. package/dist/menus-BM7BPLOb.mjs +0 -139
  1288. package/dist/menus-BM7BPLOb.mjs.map +0 -1
  1289. package/dist/menus-Cm68rsAq.mjs +0 -3608
  1290. package/dist/menus-Cm68rsAq.mjs.map +0 -1
  1291. package/dist/menus-ITeAbcIF.mjs +0 -753
  1292. package/dist/menus-ITeAbcIF.mjs.map +0 -1
  1293. package/dist/mime-ChLqYwDk.mjs +0 -36
  1294. package/dist/mime-ChLqYwDk.mjs.map +0 -1
  1295. package/dist/mode-CCuKXUci.mjs +0 -23
  1296. package/dist/mode-CCuKXUci.mjs.map +0 -1
  1297. package/dist/node-sqlite-compat-CONMsl-x.mjs +0 -46
  1298. package/dist/node-sqlite-compat-CONMsl-x.mjs.map +0 -1
  1299. package/dist/normalize-CO2P8-iE.mjs +0 -191
  1300. package/dist/normalize-CO2P8-iE.mjs.map +0 -1
  1301. package/dist/oauth-authorization-DlMIL5_h.mjs +0 -274
  1302. package/dist/oauth-authorization-DlMIL5_h.mjs.map +0 -1
  1303. package/dist/oauth-clients-Djq9r_KP.mjs +0 -266
  1304. package/dist/oauth-clients-Djq9r_KP.mjs.map +0 -1
  1305. package/dist/oauth-state-store-BbjnZXNC.mjs +0 -50
  1306. package/dist/oauth-state-store-BbjnZXNC.mjs.map +0 -1
  1307. package/dist/oauth-user-lookup-vue9a64A.mjs +0 -26
  1308. package/dist/oauth-user-lookup-vue9a64A.mjs.map +0 -1
  1309. package/dist/object-cache-CqWNY5uP.mjs +0 -582
  1310. package/dist/object-cache-CqWNY5uP.mjs.map +0 -1
  1311. package/dist/options-SQCHQCPH.d.mts +0 -81
  1312. package/dist/options-SQCHQCPH.d.mts.map +0 -1
  1313. package/dist/parse-CVgO-Qai.d.mts +0 -168
  1314. package/dist/parse-CVgO-Qai.d.mts.map +0 -1
  1315. package/dist/parse-DY6OD1j_.mjs +0 -81
  1316. package/dist/parse-DY6OD1j_.mjs.map +0 -1
  1317. package/dist/passkey-config-X_H8128a.mjs +0 -46
  1318. package/dist/passkey-config-X_H8128a.mjs.map +0 -1
  1319. package/dist/paths-JxokKIbr.mjs +0 -77
  1320. package/dist/paths-JxokKIbr.mjs.map +0 -1
  1321. package/dist/patterns-BhAvqO0S.mjs +0 -145
  1322. package/dist/patterns-BhAvqO0S.mjs.map +0 -1
  1323. package/dist/placeholder-MSEd8gty.d.mts +0 -306
  1324. package/dist/placeholder-MSEd8gty.d.mts.map +0 -1
  1325. package/dist/plan-xjcWrAah.mjs +0 -135
  1326. package/dist/plan-xjcWrAah.mjs.map +0 -1
  1327. package/dist/plugins-DUXUt8B9.mjs +0 -277
  1328. package/dist/plugins-DUXUt8B9.mjs.map +0 -1
  1329. package/dist/policy-CUvwAARc.mjs +0 -45
  1330. package/dist/policy-CUvwAARc.mjs.map +0 -1
  1331. package/dist/portable-text-5O_ZGUjB.mjs +0 -307
  1332. package/dist/portable-text-5O_ZGUjB.mjs.map +0 -1
  1333. package/dist/preview-CIUcPYr6.mjs +0 -107
  1334. package/dist/preview-CIUcPYr6.mjs.map +0 -1
  1335. package/dist/protocol-B97DZaFr.d.mts +0 -61
  1336. package/dist/protocol-B97DZaFr.d.mts.map +0 -1
  1337. package/dist/public-submission-BFBUrqst.mjs +0 -250
  1338. package/dist/public-submission-BFBUrqst.mjs.map +0 -1
  1339. package/dist/public-url-Bn7U0D7-.mjs +0 -101
  1340. package/dist/public-url-Bn7U0D7-.mjs.map +0 -1
  1341. package/dist/query-B48peoRT.mjs +0 -890
  1342. package/dist/query-B48peoRT.mjs.map +0 -1
  1343. package/dist/query-C4IH0uhR.mjs +0 -41
  1344. package/dist/query-C4IH0uhR.mjs.map +0 -1
  1345. package/dist/rate-limit-BZ6nybgc.mjs +0 -120
  1346. package/dist/rate-limit-BZ6nybgc.mjs.map +0 -1
  1347. package/dist/receipt-B4wJj5Jq.mjs +0 -43
  1348. package/dist/receipt-B4wJj5Jq.mjs.map +0 -1
  1349. package/dist/redirect-B29UjdUn.mjs +0 -411
  1350. package/dist/redirect-B29UjdUn.mjs.map +0 -1
  1351. package/dist/redirect-Cd1E7VUt.mjs +0 -17
  1352. package/dist/redirect-Cd1E7VUt.mjs.map +0 -1
  1353. package/dist/redirects-Ca2MPfEG.mjs +0 -446
  1354. package/dist/redirects-Ca2MPfEG.mjs.map +0 -1
  1355. package/dist/redirects-Cv9apQKj.mjs +0 -148
  1356. package/dist/redirects-Cv9apQKj.mjs.map +0 -1
  1357. package/dist/relation-M4NUCb0b.mjs +0 -334
  1358. package/dist/relation-M4NUCb0b.mjs.map +0 -1
  1359. package/dist/relations-CCif47Oq.mjs +0 -403
  1360. package/dist/relations-CCif47Oq.mjs.map +0 -1
  1361. package/dist/relations-CK9CYUyr.mjs +0 -310
  1362. package/dist/relations-CK9CYUyr.mjs.map +0 -1
  1363. package/dist/request-cache-DzLYKm_x.mjs +0 -104
  1364. package/dist/request-cache-DzLYKm_x.mjs.map +0 -1
  1365. package/dist/request-meta-sZXt3sRo.mjs +0 -141
  1366. package/dist/request-meta-sZXt3sRo.mjs.map +0 -1
  1367. package/dist/resolve-2WbQsCvT.mjs +0 -199
  1368. package/dist/resolve-2WbQsCvT.mjs.map +0 -1
  1369. package/dist/route-wire--1hLuACz.mjs +0 -197
  1370. package/dist/route-wire--1hLuACz.mjs.map +0 -1
  1371. package/dist/routes-vrR95WR6.mjs +0 -272
  1372. package/dist/routes-vrR95WR6.mjs.map +0 -1
  1373. package/dist/runner-1y4J9fJB.mjs +0 -5742
  1374. package/dist/runner-1y4J9fJB.mjs.map +0 -1
  1375. package/dist/runner-D5_LzKXI.d.mts +0 -68
  1376. package/dist/runner-D5_LzKXI.d.mts.map +0 -1
  1377. package/dist/schema-BABiRdsH.mjs +0 -13
  1378. package/dist/schema-BABiRdsH.mjs.map +0 -1
  1379. package/dist/schema-Du3MzCG0.mjs +0 -446
  1380. package/dist/schema-Du3MzCG0.mjs.map +0 -1
  1381. package/dist/scopes-Dbk-ElhT.mjs +0 -34
  1382. package/dist/scopes-Dbk-ElhT.mjs.map +0 -1
  1383. package/dist/search-Bt1PL1jf.mjs +0 -448
  1384. package/dist/search-Bt1PL1jf.mjs.map +0 -1
  1385. package/dist/sections-Ddptx_o9.mjs +0 -346
  1386. package/dist/sections-Ddptx_o9.mjs.map +0 -1
  1387. package/dist/seo-CZT2oLtT.mjs +0 -114
  1388. package/dist/seo-CZT2oLtT.mjs.map +0 -1
  1389. package/dist/seo-D5w3-Azy.mjs +0 -133
  1390. package/dist/seo-D5w3-Azy.mjs.map +0 -1
  1391. package/dist/service-DuykXPyW.mjs +0 -150
  1392. package/dist/service-DuykXPyW.mjs.map +0 -1
  1393. package/dist/session-user-BhaVp8w0.mjs +0 -51
  1394. package/dist/session-user-BhaVp8w0.mjs.map +0 -1
  1395. package/dist/settings-B4vDl1fK.mjs +0 -439
  1396. package/dist/settings-B4vDl1fK.mjs.map +0 -1
  1397. package/dist/settings-DYidIB26.mjs +0 -61
  1398. package/dist/settings-DYidIB26.mjs.map +0 -1
  1399. package/dist/settings-Dyj6v8C4.mjs +0 -51
  1400. package/dist/settings-Dyj6v8C4.mjs.map +0 -1
  1401. package/dist/setup-complete-bOogcHWG.mjs +0 -26
  1402. package/dist/setup-complete-bOogcHWG.mjs.map +0 -1
  1403. package/dist/setup-nonce-0EGuKM4s.mjs +0 -25
  1404. package/dist/setup-nonce-0EGuKM4s.mjs.map +0 -1
  1405. package/dist/site-settings-DOgRUoFX.mjs +0 -50
  1406. package/dist/site-settings-DOgRUoFX.mjs.map +0 -1
  1407. package/dist/site-url-BU_bbxwj.mjs +0 -16
  1408. package/dist/site-url-BU_bbxwj.mjs.map +0 -1
  1409. package/dist/snapshot-PawoX-WG.mjs +0 -414
  1410. package/dist/snapshot-PawoX-WG.mjs.map +0 -1
  1411. package/dist/ssrf-CJUnJymJ.mjs +0 -406
  1412. package/dist/ssrf-CJUnJymJ.mjs.map +0 -1
  1413. package/dist/stage-DgrBz_du.mjs +0 -662
  1414. package/dist/stage-DgrBz_du.mjs.map +0 -1
  1415. package/dist/state-DDiPySSG.mjs +0 -153
  1416. package/dist/state-DDiPySSG.mjs.map +0 -1
  1417. package/dist/status-DZKIG4a9.mjs +0 -30
  1418. package/dist/status-DZKIG4a9.mjs.map +0 -1
  1419. package/dist/storage-query-FXJH5pI8.d.mts +0 -1581
  1420. package/dist/storage-query-FXJH5pI8.d.mts.map +0 -1
  1421. package/dist/tar-_1AgTYFu.mjs +0 -449
  1422. package/dist/tar-_1AgTYFu.mjs.map +0 -1
  1423. package/dist/target-_7pn2Gbg.mjs +0 -27
  1424. package/dist/target-_7pn2Gbg.mjs.map +0 -1
  1425. package/dist/taxonomies-C1IwNe8Q.mjs +0 -697
  1426. package/dist/taxonomies-C1IwNe8Q.mjs.map +0 -1
  1427. package/dist/taxonomies-C_XMoRcX.mjs +0 -939
  1428. package/dist/taxonomies-C_XMoRcX.mjs.map +0 -1
  1429. package/dist/taxonomy-C3Fu1YeH.mjs +0 -525
  1430. package/dist/taxonomy-C3Fu1YeH.mjs.map +0 -1
  1431. package/dist/tokens-u78jETkX.mjs +0 -171
  1432. package/dist/tokens-u78jETkX.mjs.map +0 -1
  1433. package/dist/transaction-BcJO4Tmc.mjs +0 -29
  1434. package/dist/transaction-BcJO4Tmc.mjs.map +0 -1
  1435. package/dist/transfer-DIGvR9Af.mjs +0 -166
  1436. package/dist/transfer-DIGvR9Af.mjs.map +0 -1
  1437. package/dist/transfer-DgeCvHnj.mjs +0 -8675
  1438. package/dist/transfer-DgeCvHnj.mjs.map +0 -1
  1439. package/dist/transfer-download-Pml7RMio.mjs +0 -33
  1440. package/dist/transfer-download-Pml7RMio.mjs.map +0 -1
  1441. package/dist/transformations-9gfpwY65.mjs +0 -196
  1442. package/dist/transformations-9gfpwY65.mjs.map +0 -1
  1443. package/dist/transport-BIfH7_hx.d.mts +0 -42
  1444. package/dist/transport-BIfH7_hx.d.mts.map +0 -1
  1445. package/dist/transport-DKWIq53q.mjs +0 -136
  1446. package/dist/transport-DKWIq53q.mjs.map +0 -1
  1447. package/dist/trusted-proxy-tKiVtyTD.mjs +0 -51
  1448. package/dist/trusted-proxy-tKiVtyTD.mjs.map +0 -1
  1449. package/dist/turnstile-DpsoyOfg.mjs +0 -53
  1450. package/dist/turnstile-DpsoyOfg.mjs.map +0 -1
  1451. package/dist/types-B4sUC2p1.d.mts +0 -198
  1452. package/dist/types-B4sUC2p1.d.mts.map +0 -1
  1453. package/dist/types-B7Lmsh1E.d.mts +0 -887
  1454. package/dist/types-B7Lmsh1E.d.mts.map +0 -1
  1455. package/dist/types-BZakh7Ym.mjs +0 -22
  1456. package/dist/types-BZakh7Ym.mjs.map +0 -1
  1457. package/dist/types-B_CppEmv.d.mts +0 -264
  1458. package/dist/types-B_CppEmv.d.mts.map +0 -1
  1459. package/dist/types-BcrBrE6-.mjs +0 -159
  1460. package/dist/types-BcrBrE6-.mjs.map +0 -1
  1461. package/dist/types-BkUg2yHx.mjs +0 -92
  1462. package/dist/types-BkUg2yHx.mjs.map +0 -1
  1463. package/dist/types-CAZgq9fO.d.mts +0 -124
  1464. package/dist/types-CAZgq9fO.d.mts.map +0 -1
  1465. package/dist/types-Cd-O03VG.d.mts +0 -363
  1466. package/dist/types-Cd-O03VG.d.mts.map +0 -1
  1467. package/dist/types-Cr-Kg-3D.d.mts +0 -1641
  1468. package/dist/types-Cr-Kg-3D.d.mts.map +0 -1
  1469. package/dist/types-D2fvWd1i.d.mts +0 -359
  1470. package/dist/types-D2fvWd1i.d.mts.map +0 -1
  1471. package/dist/types-D7HUsguf.mjs +0 -77
  1472. package/dist/types-D7HUsguf.mjs.map +0 -1
  1473. package/dist/types-DA1Te3Oy.d.mts +0 -198
  1474. package/dist/types-DA1Te3Oy.d.mts.map +0 -1
  1475. package/dist/types-DhV6Q5bP.mjs +0 -18
  1476. package/dist/types-DhV6Q5bP.mjs.map +0 -1
  1477. package/dist/types-DnnVSl6Y.d.mts +0 -85
  1478. package/dist/types-DnnVSl6Y.d.mts.map +0 -1
  1479. package/dist/types-VT4-BugW.mjs +0 -16
  1480. package/dist/types-VT4-BugW.mjs.map +0 -1
  1481. package/dist/upload-attempts-B68ZGNu9.mjs +0 -32
  1482. package/dist/upload-attempts-B68ZGNu9.mjs.map +0 -1
  1483. package/dist/url-pattern-CCeZMGOh.mjs +0 -33
  1484. package/dist/url-pattern-CCeZMGOh.mjs.map +0 -1
  1485. package/dist/user-DDSL-sGw.mjs +0 -171
  1486. package/dist/user-DDSL-sGw.mjs.map +0 -1
  1487. package/dist/utils-DdhmO9w9.mjs +0 -439
  1488. package/dist/utils-DdhmO9w9.mjs.map +0 -1
  1489. package/dist/validate-CHosPEhs.mjs +0 -453
  1490. package/dist/validate-CHosPEhs.mjs.map +0 -1
  1491. package/dist/validate-CM79QXYE.d.mts +0 -432
  1492. package/dist/validate-CM79QXYE.d.mts.map +0 -1
  1493. package/dist/validation-BFecQczG.mjs +0 -218
  1494. package/dist/validation-BFecQczG.mjs.map +0 -1
  1495. package/dist/version-BRZXVifl.mjs +0 -9
  1496. package/dist/version-BRZXVifl.mjs.map +0 -1
  1497. package/dist/version-DXsxRrob.mjs +0 -7
  1498. package/dist/version-DXsxRrob.mjs.map +0 -1
  1499. package/dist/widgets-WdV72brA.mjs +0 -126
  1500. package/dist/widgets-WdV72brA.mjs.map +0 -1
  1501. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts +0 -34
  1502. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts.map +0 -1
  1503. package/dist/wxr-taxonomies-DP6ESgMN.mjs +0 -372
  1504. package/dist/wxr-taxonomies-DP6ESgMN.mjs.map +0 -1
  1505. package/dist/zod-generator-D6uE4WiS.mjs +0 -389
  1506. package/dist/zod-generator-D6uE4WiS.mjs.map +0 -1
  1507. package/src/astro/routes/api/relations/[id]/translations.ts +0 -33
  1508. package/src/cli/commands/bundle-utils.ts +0 -408
  1509. package/src/cli/commands/bundle.ts +0 -659
  1510. package/src/cli/commands/plugin-init.ts +0 -417
  1511. package/src/cli/commands/plugin-validate.ts +0 -31
  1512. package/src/cli/commands/plugin.ts +0 -33
  1513. package/src/cli/commands/publish.ts +0 -721
  1514. /package/dist/{api-tokens-CE1ECIg0.mjs → api-tokens-BLz2MtQs.mjs} +0 -0
  1515. /package/dist/{ssrf-DpBH7aOt.mjs → ssrf-tA45vIPX.mjs} +0 -0
@@ -1,118 +1,125 @@
1
- import "./runner-1y4J9fJB.mjs";
1
+ import "./runner-CLpxmhl8.mjs";
2
2
  import "./dialect-helpers-7_IqPdh9.mjs";
3
3
  import { c as setI18nConfig, r as getI18nConfig } from "./config-CvmjJcVw.mjs";
4
4
  import "./datetime-normalization-PeiEdcRY.mjs";
5
- import "./menus-Cm68rsAq.mjs";
5
+ import "./menus-DiuhXKWf.mjs";
6
6
  import "./after-PcEvMY_6.mjs";
7
7
  import "./options-DhrI7eMv.mjs";
8
8
  import "./base64-DvnNgP7e.mjs";
9
9
  import "./secrets-CIi0nFiR.mjs";
10
- import "./content-DFaIEDj9.mjs";
11
- import "./object-cache-CqWNY5uP.mjs";
10
+ import "./content-RzEXY3QX.mjs";
11
+ import "./object-cache-Bo6DGaC9.mjs";
12
12
  import "./slugify-T5GHH42D.mjs";
13
- import "./types-BkUg2yHx.mjs";
14
- import "./media-CPXTbb1R.mjs";
15
- import "./user-DDSL-sGw.mjs";
16
- import { t as TaxonomyRepository } from "./taxonomy-C3Fu1YeH.mjs";
17
- import "./comment-CrBl22OF.mjs";
18
- import "./audit-RfCugiSB.mjs";
19
- import "./context-BV_7t-Ua.mjs";
20
- import "./menus-ITeAbcIF.mjs";
21
- import "./resolve-2WbQsCvT.mjs";
22
- import { t as RedirectRepository } from "./redirect-B29UjdUn.mjs";
23
- import "./request-cache-DzLYKm_x.mjs";
24
- import "./byline-registry-gnKscbQX.mjs";
25
- import "./field-defs-cache-HIgBbqZZ.mjs";
26
- import { t as BylineRepository } from "./byline-DYmkXqvo.mjs";
27
- import "./relation-M4NUCb0b.mjs";
28
- import "./dist-BNwANFJR.mjs";
29
- import "./enrich-Dl3kZ-lP.mjs";
30
- import "./entry-locks-D0foLdjQ.mjs";
31
- import "./seo-D5w3-Azy.mjs";
32
- import "./cache-m7UEkRFV.mjs";
33
- import "./fts-manager-S-K0laoS.mjs";
34
- import { p as saveTaxonomyStructure } from "./loader-BzqeR1ZN.mjs";
35
- import "./collection-slugs-cache-CjGk__zp.mjs";
36
- import "./taxonomies-C1IwNe8Q.mjs";
37
- import { _ as handlePluginSettingsGet, v as handlePluginSettingsUpdate } from "./api-CuyNEHZG.mjs";
38
- import "./capture-triggers-kJyl_yyM.mjs";
39
- import "./activation-LOkDM5WT.mjs";
40
- import "./block-type-registry-DUI_3KxT.mjs";
41
- import "./collection-deletion-BIm28mo3.mjs";
42
- import "./errors-DgE1zJGG.mjs";
43
- import "./canonical-YhEQezjg.mjs";
44
- import "./digest-BarSh-pN.mjs";
45
- import "./hash-SDAW6zC-.mjs";
46
- import "./zod-generator-D6uE4WiS.mjs";
47
- import "./dashboard-BP-iJqpd.mjs";
48
- import "./block-values-C_VIPr5t.mjs";
49
- import "./media-JXRWDhw3.mjs";
50
- import "./media-folders-BE0oo2eX.mjs";
51
- import "./media-usage-work-C2OZLCAd.mjs";
52
- import "./content-repair-Q8IUrpLL.mjs";
53
- import "./collection-deletion-processor-Br6rxs3u.mjs";
54
- import "./media-usage-De-zeR9E.mjs";
55
- import "./settings-DYidIB26.mjs";
56
- import "./site-settings-DOgRUoFX.mjs";
57
- import "./errors-BF0_LFhW.mjs";
58
- import "./media-usage-activation-HKp7zk7W.mjs";
59
- import "./media-usage-work-DwUNbgvS.mjs";
60
- import "./query-C4IH0uhR.mjs";
61
- import "./schema-BABiRdsH.mjs";
62
- import "./schema-Du3MzCG0.mjs";
63
- import "./block-types-BmZmLmAD.mjs";
64
- import "./seo-CZT2oLtT.mjs";
65
- import "./settings-B4vDl1fK.mjs";
66
- import "./sections-Ddptx_o9.mjs";
67
- import "./settings-Dyj6v8C4.mjs";
68
- import "./taxonomies-C_XMoRcX.mjs";
69
- import "./manifest-schema-CY3zng_M.mjs";
70
- import "./artifact-fetch-DZMOGZ3-.mjs";
71
- import "./ssrf-CJUnJymJ.mjs";
72
- import "./authoritative-records-CoJvBXAD.mjs";
73
- import "./config-IhybvkIQ.mjs";
74
- import "./error-CfvOHP0M.mjs";
75
- import "./parse-DY6OD1j_.mjs";
76
- import "./redirects-Cv9apQKj.mjs";
77
- import "./entry-lock-BJYdBfXb.mjs";
78
- import "./media-Pu1L6xir.mjs";
79
- import "./comments-fHZ8ON9O.mjs";
80
- import "./relations-CK9CYUyr.mjs";
81
- import "./menus-BM7BPLOb.mjs";
82
- import "./status-DZKIG4a9.mjs";
83
- import "./apply-npY1TAhG.mjs";
84
- import "./query-B48peoRT.mjs";
85
- import "./import-YzfKCaco.mjs";
86
- import "./redirects-Ca2MPfEG.mjs";
87
- import "./ssrf-DpBH7aOt.mjs";
88
- import "./cron-7DCJwPXq.mjs";
89
- import "./email-console-bJn3ctqA.mjs";
90
- import "./fence-CMDXJYc_.mjs";
91
- import "./route-wire--1hLuACz.mjs";
92
- import "./routes-vrR95WR6.mjs";
93
- import "./utils-DdhmO9w9.mjs";
94
- import "./tokens-u78jETkX.mjs";
95
- import "./preview-CIUcPYr6.mjs";
96
- import "./hreflang-CbVI4paR.mjs";
97
- import "./comment-reaction-JEQ2Fpd8.mjs";
98
- import "./bylines-BPwJqoYH.mjs";
99
- import "./widgets-WdV72brA.mjs";
100
- import "./validate-CHosPEhs.mjs";
101
- import "./load-XgJiE6_3.mjs";
102
- import "./search-Bt1PL1jf.mjs";
103
- import "./policy-CUvwAARc.mjs";
104
- import { n as EmDashRuntime } from "./emdash-runtime-CtfnZmPi.mjs";
105
- import "./site-url-BU_bbxwj.mjs";
106
- import "./public-submission-BFBUrqst.mjs";
107
- import "./snapshot-PawoX-WG.mjs";
108
- import "./backup-BQRj3afm.mjs";
109
- import "./comments-2ah9du9y.mjs";
110
- import "./rate-limit-BZ6nybgc.mjs";
111
- import "./service-DuykXPyW.mjs";
112
- import "./lifecycle-BzeGPeQ-.mjs";
113
- import "./api-tokens-CE1ECIg0.mjs";
114
- import "./authorize-seCifOMJ.mjs";
115
- import "./scopes-Dbk-ElhT.mjs";
116
- import { i as validateEditorDraftRequest, n as dispatchPluginEditorExtensionApiRequest, r as validateEditorDraftPatch, t as dispatchPluginApiRequest } from "./http-route-dispatch-BitqzwMy.mjs";
13
+ import "./request-cache-C4CIo5ad.mjs";
14
+ import "./url-Dn3IStq8.mjs";
15
+ import "./types-j6MBDjlZ.mjs";
16
+ import "./revision-CGkQA0e5.mjs";
17
+ import "./media-CputjGE1.mjs";
18
+ import "./user-BOvuF1sQ.mjs";
19
+ import { t as TaxonomyRepository } from "./taxonomy-BesdHIwi.mjs";
20
+ import "./comment-Cq1UYN8_.mjs";
21
+ import "./audit-BszbE_BP.mjs";
22
+ import "./context-CtRvoSAj.mjs";
23
+ import "./menus-trvc6_fW.mjs";
24
+ import "./resolve-D-kqyKns.mjs";
25
+ import { t as RedirectRepository } from "./redirect-BvFKh8Sz.mjs";
26
+ import "./byline-registry-dvt4N3xV.mjs";
27
+ import "./field-defs-cache-DEkFYCDE.mjs";
28
+ import { t as BylineRepository } from "./byline-02tu_Uc-.mjs";
29
+ import "./staged-Bw5eHbKS.mjs";
30
+ import "./dist-Cfu8mMBs.mjs";
31
+ import "./enrich-BDdVNeDK.mjs";
32
+ import "./entry-locks-DJAqVweV.mjs";
33
+ import "./seo-DpYxmGaL.mjs";
34
+ import "./cache-CPanL9IO.mjs";
35
+ import "./fts-manager-DU03MxWu.mjs";
36
+ import { m as saveTaxonomyStructure } from "./loader-B_bcoE1h.mjs";
37
+ import "./collection-slugs-cache-BNRAPNiu.mjs";
38
+ import "./taxonomies-DWv-OYT0.mjs";
39
+ import { _ as handlePluginSettingsGet, v as handlePluginSettingsUpdate } from "./api-CFQn8VLR.mjs";
40
+ import "./capture-triggers-CdZfvHtF.mjs";
41
+ import "./activation-DDuqAat2.mjs";
42
+ import "./collection-deletion-JecE26cS.mjs";
43
+ import "./registry-CtHRqVe-.mjs";
44
+ import "./hash-CY4QdeMJ.mjs";
45
+ import "./zod-generator-DnfG5sGQ.mjs";
46
+ import "./errors-CjXd1LgH.mjs";
47
+ import "./canonical-CAecl1UQ.mjs";
48
+ import "./digest-DiYAoZpf.mjs";
49
+ import "./block-values-BrTrtA-v.mjs";
50
+ import "./query-DC3bv__4.mjs";
51
+ import "./schema-BZPj3kwZ.mjs";
52
+ import "./relations-CVI2nbrn.mjs";
53
+ import "./dashboard-BoV4pwPP.mjs";
54
+ import "./config-BnuORwSP.mjs";
55
+ import "./errors-CNvATh_7.mjs";
56
+ import "./update-check-CaZyFHZC.mjs";
57
+ import "./media-3v7mqAVX.mjs";
58
+ import "./media-folders-D2VdVBf6.mjs";
59
+ import "./media-usage-work-BlMjwPg8.mjs";
60
+ import "./content-repair-B-k5JrVN.mjs";
61
+ import "./collection-deletion-processor-DgCfF3a1.mjs";
62
+ import "./media-usage-B8q0owWQ.mjs";
63
+ import "./settings-B0zQj_Tj.mjs";
64
+ import "./site-settings-AYFvhwQn.mjs";
65
+ import "./media-usage-activation-CQWOOTJi.mjs";
66
+ import "./media-usage-work-BC0qpkMD.mjs";
67
+ import "./schema-Berj5VQx.mjs";
68
+ import "./block-types-DIG_KZwi.mjs";
69
+ import "./seo-C61bnPuV.mjs";
70
+ import "./settings-BbVRRGDp.mjs";
71
+ import "./sections-2k1uIgJ0.mjs";
72
+ import "./settings-BJjK_X7x.mjs";
73
+ import "./taxonomies-DQGomz9p.mjs";
74
+ import "./manifest-schema-gy37bD_D.mjs";
75
+ import "./marketplace-tHWSsCUo.mjs";
76
+ import "./artifact-fetch-CWxyELVI.mjs";
77
+ import "./ssrf-DsmvZB80.mjs";
78
+ import "./authoritative-records-dSvXCfzb.mjs";
79
+ import "./error-CEdm_AWU.mjs";
80
+ import "./parse-Gt2l4Sld.mjs";
81
+ import "./redirects-D4EWeXAo.mjs";
82
+ import "./entry-lock-PP1JCXBB.mjs";
83
+ import "./media-D1z_jisb.mjs";
84
+ import "./comments-BRtp992B.mjs";
85
+ import "./byline-fields-DHJs0Mja.mjs";
86
+ import "./menus-BQKqf0Up.mjs";
87
+ import "./status-D39Fpy8R.mjs";
88
+ import "./apply-C1kq5l7p.mjs";
89
+ import "./query-6e2CQxUv.mjs";
90
+ import "./import-CzP9ffo0.mjs";
91
+ import "./redirects-CWQMKYOS.mjs";
92
+ import "./ssrf-tA45vIPX.mjs";
93
+ import "./credits-CAFPFhuk.mjs";
94
+ import "./cron-xe5XKqA-.mjs";
95
+ import "./email-console-DmqVF5J_.mjs";
96
+ import "./fence-BrnQffdY.mjs";
97
+ import "./route-wire-DK600v4u.mjs";
98
+ import "./routes-DTduBPzX.mjs";
99
+ import "./utils-CoV-PYhg.mjs";
100
+ import "./tokens-BIGxi8sP.mjs";
101
+ import "./preview-DU5rwz_m.mjs";
102
+ import "./hreflang-Bq0ahAd4.mjs";
103
+ import "./comment-reaction-DPeGAfjd.mjs";
104
+ import "./bylines-COTwmMBF.mjs";
105
+ import "./widgets-D8T0xBYs.mjs";
106
+ import "./validate-WkjGwBSO.mjs";
107
+ import "./load-dHcR5yh9.mjs";
108
+ import "./search-thYf8j9F.mjs";
109
+ import "./policy-C1qpNxrr.mjs";
110
+ import { n as EmDashRuntime } from "./emdash-runtime-CMdYH2Of.mjs";
111
+ import "./site-url-Ceq_AUK0.mjs";
112
+ import "./public-submission-yZaTTfsC.mjs";
113
+ import "./ownership-DoeAIuTg.mjs";
114
+ import "./snapshot-Dzsn3NZa.mjs";
115
+ import "./backup-DQ3CABsO.mjs";
116
+ import "./comments-Bi2j9IoX.mjs";
117
+ import "./rate-limit-BXx3Ecp9.mjs";
118
+ import "./service-BFUImckH.mjs";
119
+ import "./lifecycle-CpebZNAA.mjs";
120
+ import "./api-tokens-BLz2MtQs.mjs";
121
+ import "./authorize-soZXK7U0.mjs";
122
+ import "./scopes-C1HJaIyf.mjs";
123
+ import { i as validateEditorDraftRequest, n as dispatchPluginEditorExtensionApiRequest, r as validateEditorDraftPatch, t as dispatchPluginApiRequest } from "./http-route-dispatch-B2G7_OOm.mjs";
117
124
 
118
125
  export { BylineRepository, EmDashRuntime, RedirectRepository, TaxonomyRepository, dispatchPluginApiRequest, dispatchPluginEditorExtensionApiRequest, getI18nConfig, handlePluginSettingsGet, handlePluginSettingsUpdate, saveTaxonomyStructure, setI18nConfig, validateEditorDraftPatch, validateEditorDraftRequest };
@@ -1,5 +1,5 @@
1
- import { A as ContentBeforePublishHandler, An as UninstallHandler, B as ContentPolicyEvent, C as ContentAfterPublishHandler, Ct as MediaMetadataPatch, D as ContentAfterUnpublishHandler, E as ContentAfterScheduleHandler, Et as NumericDelta, F as ContentDeleteEvent, Fn as VersionedRedirect, Ft as PaginatedResult, G as ContentScheduleStateChangeEvent, H as ContentRestoreStateChangeEvent, I as ContentHookEvent, In as VersionedValue, K as ContentStateChangeEvent, M as ContentBeforeScheduleHandler, Mn as UpdateIfResult, Mt as PageMetadataHandler, N as ContentBeforeUnpublishHandler, Nn as UserInfo, O as ContentAfterUnscheduleHandler, Ot as PageFragmentEvent, S as ContentAfterDeleteHandler, St as MediaItem, T as ContentAfterSaveHandler, Ut as PluginContext, V as ContentPublishStateChangeEvent, W as ContentSchedulePolicyEvent, X as CronEvent, Z as CronHandler, _ as ConditionalDeleteResult, an as RedirectAccessWithWrite, at as EmailDeliverEvent, bt as MediaBeforeUploadHandler, c as CommentAfterCreateHandler, cn as RedirectListOptions, d as CommentBeforeCreateEvent, f as CommentBeforeCreateHandler, g as CommentModerateHandler, h as CommentModerateEvent, ht as LifecycleHandler, in as RedirectAccess, it as EmailBeforeSendHandler, j as ContentBeforeSaveHandler, jn as UpdateIfArgs, jt as PageMetadataEvent, k as ContentBeforeDeleteHandler, kn as UninstallEvent, kt as PageFragmentHandler, l as CommentAfterModerateEvent, ln as RedirectStatus, mt as LifecycleEvent, nt as EmailAfterSendHandler, on as RedirectCreateInput, ot as EmailDeliverHandler, rt as EmailBeforeSendEvent, s as CommentAfterCreateEvent, sn as RedirectInfo, t as ActorInfo, tt as EmailAfterSendEvent, u as CommentAfterModerateHandler, un as RedirectUpdateInput, v as ConditionalWriteResult, vn as SettingsAccess, vt as MediaAfterUploadEvent, w as ContentAfterRestoreHandler, wt as MediaUploadEvent, x as ContentActionOrigin, xt as MediaBytes, yt as MediaAfterUploadHandler, z as ContentPolicyDecision } from "./types-Cr-Kg-3D.mjs";
2
- import { r as SandboxHookErrorEnvelope } from "./hook-result-B5bXDgS2.mjs";
1
+ import { $ as ContentScheduleStateChangeEvent, A as ContentAfterDeleteHandler, At as MediaBytes, B as ContentBeforeScheduleHandler, Bn as UpdateIfArgs, Bt as PageMetadataEvent, C as CommentModerateEvent, Ct as LifecycleEvent, Dn as SettingsAccess, Dt as MediaAfterUploadEvent, E as ConditionalWriteResult, F as ContentAfterUnpublishHandler, Ft as NumericDelta, Gn as VersionedValue, Hn as UserInfo, I as ContentAfterUnscheduleHandler, J as ContentPolicyEvent, L as ContentBeforeDeleteHandler, Lt as PageFragmentEvent, M as ContentAfterRestoreHandler, Mt as MediaMetadataPatch, N as ContentAfterSaveHandler, Nt as MediaUploadEvent, Ot as MediaAfterUploadHandler, P as ContentAfterScheduleHandler, Q as ContentSchedulePolicyEvent, Qt as PluginContext, R as ContentBeforePublishHandler, Rn as UninstallEvent, Rt as PageFragmentHandler, T as ConditionalDeleteResult, U as ContentDeleteEvent, V as ContentBeforeUnpublishHandler, Vn as UpdateIfResult, Vt as PageMetadataHandler, W as ContentHookEvent, Wn as VersionedRedirect, Wt as PaginatedResult, X as ContentRestoreStateChangeEvent, Y as ContentPublishStateChangeEvent, _ as CommentAfterModerateEvent, _n as RedirectListOptions, a as BylineAfterDeleteHandler, at as CronHandler, b as CommentBeforeCreateHandler, dt as EmailBeforeSendEvent, et as ContentStateChangeEvent, ft as EmailBeforeSendHandler, g as CommentAfterCreateHandler, gn as RedirectInfo, h as CommentAfterCreateEvent, hn as RedirectCreateInput, i as BylineAfterDeleteEvent, it as CronEvent, j as ContentAfterPublishHandler, jt as MediaItem, k as ContentActionOrigin, kt as MediaBeforeUploadHandler, l as BylineInfo, lt as EmailAfterSendEvent, mn as RedirectAccessWithWrite, mt as EmailDeliverHandler, o as BylineAfterSaveEvent, pn as RedirectAccess, pt as EmailDeliverEvent, q as ContentPolicyDecision, s as BylineAfterSaveHandler, t as ActorInfo, ut as EmailAfterSendHandler, v as CommentAfterModerateHandler, vn as RedirectStatus, w as CommentModerateHandler, wt as LifecycleHandler, y as CommentBeforeCreateEvent, yn as RedirectUpdateInput, z as ContentBeforeSaveHandler, zn as UninstallHandler } from "./types-pOLeFKGq.mjs";
2
+ import { r as SandboxHookErrorEnvelope } from "./hook-result-DjdVwWpw.mjs";
3
3
  import { ZodType } from "zod";
4
4
  import { Permission } from "@emdash-cms/auth";
5
5
  import { PluginFormData, PluginFormData as PluginFormData$1, PluginFormDataFileEntry, PluginFormDataTextEntry, PluginRouteBodyMode, PluginRouteMethod, PluginRouteQuery, PluginRouteQuery as PluginRouteQuery$1, PluginRouteRequest, PluginRouteResponseMode } from "@emdash-cms/plugin-types";
@@ -40,6 +40,8 @@ interface HookHandlers {
40
40
  "comment:moderate": CommentModerateHandler;
41
41
  "comment:afterCreate": CommentAfterCreateHandler;
42
42
  "comment:afterModerate": CommentAfterModerateHandler;
43
+ "byline:afterSave": BylineAfterSaveHandler;
44
+ "byline:afterDelete": BylineAfterDeleteHandler;
43
45
  "page:metadata": PageMetadataHandler;
44
46
  "page:fragments": PageFragmentHandler;
45
47
  }
@@ -190,5 +192,5 @@ interface SandboxedContentBeforeSaveConfig extends Omit<HookConfig<"content:befo
190
192
  handler: SandboxedContentBeforeSaveHandler;
191
193
  }
192
194
  //#endregion
193
- export { type ActorInfo, type CommentAfterCreateEvent, type CommentAfterModerateEvent, type CommentBeforeCreateEvent, type CommentModerateEvent, type ConditionalDeleteResult, type ConditionalWriteResult, type ContentActionOrigin, type ContentDeleteEvent, type ContentHookEvent, type ContentPolicyDecision, type ContentPolicyEvent, type ContentPublishStateChangeEvent, type ContentRestoreStateChangeEvent, type ContentSchedulePolicyEvent, type ContentScheduleStateChangeEvent, type ContentStateChangeEvent, type CronEvent, type EmailAfterSendEvent, type EmailBeforeSendEvent, type EmailDeliverEvent, HookConfig, HookEntry, HookHandlers, type LifecycleEvent, type MediaAfterUploadEvent, type MediaBytes, type MediaItem, type MediaMetadataPatch, type MediaUploadEvent, type NumericDelta, type PageFragmentEvent, type PageMetadataEvent, type PaginatedResult, type PluginContext, type PluginFormData, type PluginFormDataFileEntry, type PluginFormDataTextEntry, PluginResponse, PluginResponseBody, PluginResponseInit, PluginRouteConfig, PluginRouteInput, type PluginRouteQuery, type PluginUiContext, type RedirectAccess, type RedirectAccessWithWrite, type RedirectCreateInput, type RedirectInfo, type RedirectListOptions, type RedirectStatus, type RedirectUpdateInput, RouteEntry, RouteHandler, type SandboxHookErrorEnvelope, SandboxedContentBeforeSaveConfig, SandboxedContentBeforeSaveHandler, SandboxedMcpTool, SandboxedPlugin, SandboxedRequest, SandboxedRouteContext, type SettingsAccess, type UninstallEvent, type UpdateIfArgs, type UpdateIfResult, type VersionedRedirect, type VersionedValue, pluginResponse, pluginRoute };
195
+ export { type ActorInfo, type BylineAfterDeleteEvent, type BylineAfterSaveEvent, type BylineInfo, type CommentAfterCreateEvent, type CommentAfterModerateEvent, type CommentBeforeCreateEvent, type CommentModerateEvent, type ConditionalDeleteResult, type ConditionalWriteResult, type ContentActionOrigin, type ContentDeleteEvent, type ContentHookEvent, type ContentPolicyDecision, type ContentPolicyEvent, type ContentPublishStateChangeEvent, type ContentRestoreStateChangeEvent, type ContentSchedulePolicyEvent, type ContentScheduleStateChangeEvent, type ContentStateChangeEvent, type CronEvent, type EmailAfterSendEvent, type EmailBeforeSendEvent, type EmailDeliverEvent, HookConfig, HookEntry, HookHandlers, type LifecycleEvent, type MediaAfterUploadEvent, type MediaBytes, type MediaItem, type MediaMetadataPatch, type MediaUploadEvent, type NumericDelta, type PageFragmentEvent, type PageMetadataEvent, type PaginatedResult, type PluginContext, type PluginFormData, type PluginFormDataFileEntry, type PluginFormDataTextEntry, PluginResponse, PluginResponseBody, PluginResponseInit, PluginRouteConfig, PluginRouteInput, type PluginRouteQuery, type PluginUiContext, type RedirectAccess, type RedirectAccessWithWrite, type RedirectCreateInput, type RedirectInfo, type RedirectListOptions, type RedirectStatus, type RedirectUpdateInput, RouteEntry, RouteHandler, type SandboxHookErrorEnvelope, SandboxedContentBeforeSaveConfig, SandboxedContentBeforeSaveHandler, SandboxedMcpTool, SandboxedPlugin, SandboxedRequest, SandboxedRouteContext, type SettingsAccess, type UninstallEvent, type UpdateIfArgs, type UpdateIfResult, type VersionedRedirect, type VersionedValue, pluginResponse, pluginRoute };
194
196
  //# sourceMappingURL=plugin-types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-types.d.mts","names":[],"sources":["../src/plugin-types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-types.d.mts","names":[],"sources":["../src/plugin-types.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-types.mjs","names":[],"sources":["../src/plugin-types.ts"],"sourcesContent":["/**\n * `emdash/plugin` — types and lightweight helpers for authoring sandboxed plugins.\n *\n * Type-only imports erase normally. The value exports are small identity and\n * response-builder helpers that the plugin CLI bundles into the sandbox\n * artifact without pulling in the EmDash runtime.\n *\n * Recommended authoring pattern:\n *\n * ```ts\n * import type { SandboxedPlugin } from \"emdash/plugin\";\n *\n * export default {\n * hooks: {\n * \"content:beforeSave\": async (event, ctx) => {\n * // event: ContentHookEvent, ctx: PluginContext — both inferred.\n * return event.content;\n * },\n * },\n * routes: {\n * health: async (routeCtx, ctx) => ({ ok: true }),\n * },\n * } satisfies SandboxedPlugin;\n * ```\n *\n * The `satisfies SandboxedPlugin` annotation drives full inference on\n * every hook handler. Authors should not need to annotate handler\n * params — TypeScript reads the event type from the hook name. The\n * runtime probe at build time reads `default.hooks` and `default.routes`\n * directly; the shape declared here mirrors what the probe consumes.\n *\n * Return types matter: `content:beforeSave` may return a mutated\n * `content` to override the saved fields; `content:beforeDelete` and\n * `comment:beforeCreate` may return `false` to veto; `page:metadata`\n * returns the metadata contribution. The mapped type captures these\n * per-hook return contracts so misuse fails at compile time.\n */\n\nimport type { Permission } from \"@emdash-cms/auth\";\nimport type { PluginUiContext } from \"@emdash-cms/blocks/server\";\nimport type {\n\tPluginFormData,\n\tPluginRouteBodyMode,\n\tPluginRouteMethod,\n\tPluginRouteQuery,\n\tPluginRouteRequest,\n\tPluginRouteResponseMode,\n} from \"@emdash-cms/plugin-types\";\nimport type { ZodType } from \"zod\";\n\nimport type { SandboxHookErrorEnvelope } from \"./plugins/sandbox/hook-result.js\";\nimport type {\n\tActorInfo,\n\tCommentAfterCreateEvent,\n\tCommentAfterCreateHandler,\n\tCommentAfterModerateEvent,\n\tCommentAfterModerateHandler,\n\tCommentBeforeCreateEvent,\n\tCommentBeforeCreateHandler,\n\tCommentModerateEvent,\n\tCommentModerateHandler,\n\tContentAfterDeleteHandler,\n\tContentAfterPublishHandler,\n\tContentAfterRestoreHandler,\n\tContentAfterSaveHandler,\n\tContentAfterScheduleHandler,\n\tContentAfterUnpublishHandler,\n\tContentAfterUnscheduleHandler,\n\tContentBeforePublishHandler,\n\tContentBeforeScheduleHandler,\n\tContentBeforeUnpublishHandler,\n\tContentBeforeDeleteHandler,\n\tContentBeforeSaveHandler,\n\tContentDeleteEvent,\n\tContentHookEvent,\n\tContentPublishStateChangeEvent,\n\tContentRestoreStateChangeEvent,\n\tContentScheduleStateChangeEvent,\n\tContentStateChangeEvent,\n\tCronEvent,\n\tCronHandler,\n\tEmailAfterSendEvent,\n\tEmailAfterSendHandler,\n\tEmailBeforeSendEvent,\n\tEmailBeforeSendHandler,\n\tEmailDeliverEvent,\n\tEmailDeliverHandler,\n\tLifecycleEvent,\n\tLifecycleHandler,\n\tMediaAfterUploadEvent,\n\tMediaBytes,\n\tMediaItem,\n\tMediaMetadataPatch,\n\tMediaAfterUploadHandler,\n\tMediaBeforeUploadHandler,\n\tMediaUploadEvent,\n\tPageFragmentEvent,\n\tPageFragmentHandler,\n\tPageMetadataEvent,\n\tPageMetadataHandler,\n\tPluginContext,\n\tUninstallEvent,\n\tUninstallHandler,\n\tUserInfo,\n} from \"./plugins/types.js\";\n\nexport type { PluginUiContext } from \"@emdash-cms/blocks/server\";\n\n/**\n * Map from hook name to its handler signature. Adding or changing a\n * hook signature in the runtime means updating this map; the rest of\n * the type story flows from it. Authors writing\n * `\"content:beforeSave\": async (event, ctx) => { ... }` get `event`\n * typed as `ContentHookEvent` and `ctx` as `PluginContext` for free.\n */\nexport interface HookHandlers {\n\t\"plugin:install\": LifecycleHandler;\n\t\"plugin:activate\": LifecycleHandler;\n\t\"plugin:deactivate\": LifecycleHandler;\n\t\"plugin:uninstall\": UninstallHandler;\n\t\"content:beforeSave\": ContentBeforeSaveHandler;\n\t\"content:afterSave\": ContentAfterSaveHandler;\n\t\"content:beforeDelete\": ContentBeforeDeleteHandler;\n\t\"content:afterDelete\": ContentAfterDeleteHandler;\n\t\"content:beforePublish\": ContentBeforePublishHandler;\n\t\"content:beforeSchedule\": ContentBeforeScheduleHandler;\n\t\"content:beforeUnpublish\": ContentBeforeUnpublishHandler;\n\t\"content:afterPublish\": ContentAfterPublishHandler;\n\t\"content:afterUnpublish\": ContentAfterUnpublishHandler;\n\t\"content:afterRestore\": ContentAfterRestoreHandler;\n\t\"content:afterSchedule\": ContentAfterScheduleHandler;\n\t\"content:afterUnschedule\": ContentAfterUnscheduleHandler;\n\t\"media:beforeUpload\": MediaBeforeUploadHandler;\n\t\"media:afterUpload\": MediaAfterUploadHandler;\n\tcron: CronHandler;\n\t\"email:beforeSend\": EmailBeforeSendHandler;\n\t\"email:deliver\": EmailDeliverHandler;\n\t\"email:afterSend\": EmailAfterSendHandler;\n\t\"comment:beforeCreate\": CommentBeforeCreateHandler;\n\t\"comment:moderate\": CommentModerateHandler;\n\t\"comment:afterCreate\": CommentAfterCreateHandler;\n\t\"comment:afterModerate\": CommentAfterModerateHandler;\n\t\"page:metadata\": PageMetadataHandler;\n\t\"page:fragments\": PageFragmentHandler;\n}\n\n/**\n * Hook-handler config form. The bare-function form is also accepted\n * (see `HookEntry`) — this is the long form that lets authors override\n * priority, timeout, exclusivity. `errorPolicy` and `dependencies` are\n * read by the host but rarely set by authors.\n */\nexport interface HookConfig<K extends keyof HookHandlers> {\n\thandler: HookHandlers[K];\n\tpriority?: number;\n\ttimeout?: number;\n\tdependencies?: string[];\n\terrorPolicy?: \"continue\" | \"abort\";\n\texclusive?: boolean;\n}\n\n/**\n * Either a bare handler or the config form. The build probe accepts\n * both shapes and the runtime normalises to the config form before\n * dispatch.\n */\nexport type HookEntry<K extends keyof HookHandlers> = HookHandlers[K] | HookConfig<K>;\n\n/**\n * Request fields a route handler can rely on across both trusted and\n * sandboxed execution. Trusted handlers receive a real `Request`\n * (which is structurally compatible — has `url`, `method`, `headers`);\n * sandboxed handlers receive a serialised `{ url, method, headers }`\n * record because Worker Loader can't pass `Request` objects across\n * the boundary. The shared shape is what's actually portable.\n *\n * `headers` is intentionally `Record<string, string>` rather than\n * `Headers` so the sandboxed serialised form (which is a plain\n * record) typechecks. Trusted handlers receiving a real `Headers`\n * object can still call `.get(...)`, but reading via this type's\n * indexing requires the lookup to be lowercased and exact. Authors\n * iterating headers in a portable way should use `Object.entries`.\n */\nexport interface SandboxedRequest {\n\turl: string;\n\tmethod: string;\n\theaders: Record<string, string>;\n}\n\nexport type {\n\tPluginFormData,\n\tPluginFormDataFileEntry,\n\tPluginFormDataTextEntry,\n\tPluginRouteQuery,\n} from \"@emdash-cms/plugin-types\";\n\nexport type PluginRouteInput<TMode extends PluginRouteBodyMode> = TMode extends \"none\"\n\t? PluginRouteQuery\n\t: TMode extends \"text\"\n\t\t? string\n\t\t: TMode extends \"bytes\"\n\t\t\t? Uint8Array\n\t\t\t: TMode extends \"form-data\"\n\t\t\t\t? PluginFormData\n\t\t\t\t: unknown;\n\nexport type PluginResponseBody =\n\t| { kind: \"text\"; value: string }\n\t| { kind: \"bytes\"; value: Uint8Array };\n\nexport interface PluginResponseInit {\n\tstatus?: number;\n\theaders?: HeadersInit;\n\tbody?: PluginResponseBody | null;\n}\n\nexport interface PluginResponse {\n\treadonly __emdashPluginResponse: true;\n\treadonly status: number;\n\treadonly headers: Array<[string, string]>;\n\treadonly body: PluginResponseBody | null;\n}\n\nexport function pluginResponse(init: PluginResponseInit = {}): PluginResponse {\n\tconst headers: Array<[string, string]> = [];\n\tnew Headers(init.headers).forEach((value, name) => headers.push([name, value]));\n\treturn {\n\t\t__emdashPluginResponse: true,\n\t\tstatus: init.status ?? 200,\n\t\theaders,\n\t\tbody: init.body ?? null,\n\t};\n}\n\n/**\n * Context passed to a route handler. Routes get an extra `routeCtx`\n * argument with the call-site input + the originating request, in\n * addition to the standard `PluginContext`.\n *\n * `input` is `unknown` because plugins validate it themselves — no\n * central schema for route payloads.\n */\nexport interface SandboxedRouteContext {\n\tinput: unknown;\n\trequest: SandboxedRequest;\n\trequestMeta?: unknown;\n\t/** Host-attested context for a validated Block Kit request. */\n\tui?: PluginUiContext;\n\t/**\n\t * Authenticated caller, if the route is private. Resolved and\n\t * authorized by the host before dispatch — trust it over any user id\n\t * in the request body. `undefined` for public routes and for machine\n\t * tokens with no bound user.\n\t */\n\tuser?: UserInfo;\n}\n\n/**\n * Route handler. The two-arg shape (`routeCtx`, `pluginCtx`) matches\n * how the standard-format runtime invokes routes — distinct from\n * native plugins, where routes take a single context with the input\n * merged in.\n *\n * Return type is `unknown` because routes serialise their return value\n * to JSON for the caller; authors define their own response shape.\n */\nexport type RouteHandler<TInput = unknown> = {\n\tbivarianceHack(\n\t\trouteCtx: Omit<SandboxedRouteContext, \"input\"> & { input: TInput },\n\t\tctx: PluginContext,\n\t): Promise<unknown>;\n}[\"bivarianceHack\"];\n\ninterface RouteConfigBase {\n\tpublic?: boolean;\n\tcacheControl?: string;\n\tinput?: unknown;\n\tpermission?: Permission;\n\tmethods?: PluginRouteMethod[];\n\tresponse?: PluginRouteResponseMode;\n}\n\nexport type PluginRouteConfig<TMode extends PluginRouteBodyMode> = RouteConfigBase & {\n\trequest: PluginRouteRequest & { body: TMode };\n\thandler: RouteHandler<PluginRouteInput<TMode>>;\n};\n\nexport function pluginRoute<TMode extends PluginRouteBodyMode>(\n\tconfig: PluginRouteConfig<TMode>,\n): PluginRouteConfig<TMode> {\n\treturn config;\n}\n\n/**\n * Route entry — either a bare handler or the config form with\n * `public`, `input` schema, and so on. The build probe accepts both.\n */\nexport type RouteEntry =\n\t| RouteHandler\n\t| (RouteConfigBase & {\n\t\t\thandler: RouteHandler;\n\t\t\trequest?: PluginRouteRequest;\n\t });\n\nexport interface SandboxedMcpTool {\n\tdescription: string;\n\troute: string;\n\tinput: ZodType;\n\toutput?: ZodType;\n\tdestructive?: boolean;\n}\n\n/**\n * The shape of a sandboxed plugin's default export.\n *\n * Both `hooks` and `routes` are optional — a plugin that only declares\n * one is valid. Hook keys are constrained to the runtime's hook\n * vocabulary so a typo (`\"content:beforSave\"`) is a compile error.\n * Route keys are open because route names are author-chosen URL path\n * segments.\n */\nexport interface SandboxedPlugin {\n\thooks?: {\n\t\t[K in keyof HookHandlers]?: K extends \"content:beforeSave\"\n\t\t\t? SandboxedContentBeforeSaveHandler | SandboxedContentBeforeSaveConfig\n\t\t\t: HookEntry<K>;\n\t};\n\troutes?: Record<string, RouteEntry>;\n\tmcp?: { tools: Record<string, SandboxedMcpTool> };\n}\n\nexport type SandboxedContentBeforeSaveHandler = (\n\tevent: ContentHookEvent,\n\tctx: PluginContext,\n) => Promise<Record<string, unknown> | SandboxHookErrorEnvelope | void>;\n\nexport interface SandboxedContentBeforeSaveConfig extends Omit<\n\tHookConfig<\"content:beforeSave\">,\n\t\"handler\"\n> {\n\thandler: SandboxedContentBeforeSaveHandler;\n}\n\nexport type { SandboxHookErrorEnvelope };\nexport type { NumericDelta, UpdateIfArgs, UpdateIfResult } from \"./plugins/types.js\";\n\n/**\n * Re-export of event types so plugin authors can reference them\n * explicitly when needed (helper functions, type predicates). Most\n * authors won't need these — the mapped type infers them at handler\n * call sites. But the default-export's inferred type also needs them\n * publicly nameable so `satisfies SandboxedPlugin` can produce a\n * portable `.d.mts`.\n */\nexport type {\n\tActorInfo,\n\tCommentAfterCreateEvent,\n\tCommentAfterModerateEvent,\n\tCommentBeforeCreateEvent,\n\tCommentModerateEvent,\n\tContentDeleteEvent,\n\tContentHookEvent,\n\tContentPublishStateChangeEvent,\n\tContentRestoreStateChangeEvent,\n\tContentScheduleStateChangeEvent,\n\tContentStateChangeEvent,\n\tCronEvent,\n\tEmailAfterSendEvent,\n\tEmailBeforeSendEvent,\n\tEmailDeliverEvent,\n\tLifecycleEvent,\n\tMediaAfterUploadEvent,\n\tMediaBytes,\n\tMediaItem,\n\tMediaMetadataPatch,\n\tMediaUploadEvent,\n\tPageFragmentEvent,\n\tPageMetadataEvent,\n\tPluginContext,\n\tUninstallEvent,\n};\n\nexport type {\n\tPaginatedResult,\n\tVersionedValue,\n\tConditionalWriteResult,\n\tConditionalDeleteResult,\n\tSettingsAccess,\n\tRedirectAccess,\n\tRedirectAccessWithWrite,\n\tRedirectCreateInput,\n\tRedirectInfo,\n\tRedirectListOptions,\n\tRedirectStatus,\n\tRedirectUpdateInput,\n\tVersionedRedirect,\n} from \"./plugins/types.js\";\nexport type {\n\tContentActionOrigin,\n\tContentPolicyDecision,\n\tContentPolicyEvent,\n\tContentSchedulePolicyEvent,\n} from \"./plugins/types.js\";\n"],"mappings":";AA+NA,SAAgB,eAAe,OAA2B,EAAE,EAAkB;CAC7E,MAAM,UAAmC,EAAE;AAC3C,KAAI,QAAQ,KAAK,QAAQ,CAAC,SAAS,OAAO,SAAS,QAAQ,KAAK,CAAC,MAAM,MAAM,CAAC,CAAC;AAC/E,QAAO;EACN,wBAAwB;EACxB,QAAQ,KAAK,UAAU;EACvB;EACA,MAAM,KAAK,QAAQ;EACnB;;AAwDF,SAAgB,YACf,QAC2B;AAC3B,QAAO"}
1
+ {"version":3,"file":"plugin-types.mjs","names":[],"sources":["../src/plugin-types.ts"],"sourcesContent":["/**\n * `emdash/plugin` — types and lightweight helpers for authoring sandboxed plugins.\n *\n * Type-only imports erase normally. The value exports are small identity and\n * response-builder helpers that the plugin CLI bundles into the sandbox\n * artifact without pulling in the EmDash runtime.\n *\n * Recommended authoring pattern:\n *\n * ```ts\n * import type { SandboxedPlugin } from \"emdash/plugin\";\n *\n * export default {\n * hooks: {\n * \"content:beforeSave\": async (event, ctx) => {\n * // event: ContentHookEvent, ctx: PluginContext — both inferred.\n * return event.content;\n * },\n * },\n * routes: {\n * health: async (routeCtx, ctx) => ({ ok: true }),\n * },\n * } satisfies SandboxedPlugin;\n * ```\n *\n * The `satisfies SandboxedPlugin` annotation drives full inference on\n * every hook handler. Authors should not need to annotate handler\n * params — TypeScript reads the event type from the hook name. The\n * runtime probe at build time reads `default.hooks` and `default.routes`\n * directly; the shape declared here mirrors what the probe consumes.\n *\n * Return types matter: `content:beforeSave` may return a mutated\n * `content` to override the saved fields; `content:beforeDelete` and\n * `comment:beforeCreate` may return `false` to veto; `page:metadata`\n * returns the metadata contribution. The mapped type captures these\n * per-hook return contracts so misuse fails at compile time.\n */\n\nimport type { Permission } from \"@emdash-cms/auth\";\nimport type { PluginUiContext } from \"@emdash-cms/blocks/server\";\nimport type {\n\tPluginFormData,\n\tPluginRouteBodyMode,\n\tPluginRouteMethod,\n\tPluginRouteQuery,\n\tPluginRouteRequest,\n\tPluginRouteResponseMode,\n} from \"@emdash-cms/plugin-types\";\nimport type { ZodType } from \"zod\";\n\nimport type { SandboxHookErrorEnvelope } from \"./plugins/sandbox/hook-result.js\";\nimport type {\n\tActorInfo,\n\tBylineAfterDeleteHandler,\n\tBylineAfterSaveHandler,\n\tCommentAfterCreateEvent,\n\tCommentAfterCreateHandler,\n\tCommentAfterModerateEvent,\n\tCommentAfterModerateHandler,\n\tCommentBeforeCreateEvent,\n\tCommentBeforeCreateHandler,\n\tCommentModerateEvent,\n\tCommentModerateHandler,\n\tContentAfterDeleteHandler,\n\tContentAfterPublishHandler,\n\tContentAfterRestoreHandler,\n\tContentAfterSaveHandler,\n\tContentAfterScheduleHandler,\n\tContentAfterUnpublishHandler,\n\tContentAfterUnscheduleHandler,\n\tContentBeforePublishHandler,\n\tContentBeforeScheduleHandler,\n\tContentBeforeUnpublishHandler,\n\tContentBeforeDeleteHandler,\n\tContentBeforeSaveHandler,\n\tContentDeleteEvent,\n\tContentHookEvent,\n\tContentPublishStateChangeEvent,\n\tContentRestoreStateChangeEvent,\n\tContentScheduleStateChangeEvent,\n\tContentStateChangeEvent,\n\tCronEvent,\n\tCronHandler,\n\tEmailAfterSendEvent,\n\tEmailAfterSendHandler,\n\tEmailBeforeSendEvent,\n\tEmailBeforeSendHandler,\n\tEmailDeliverEvent,\n\tEmailDeliverHandler,\n\tLifecycleEvent,\n\tLifecycleHandler,\n\tMediaAfterUploadEvent,\n\tMediaBytes,\n\tMediaItem,\n\tMediaMetadataPatch,\n\tMediaAfterUploadHandler,\n\tMediaBeforeUploadHandler,\n\tMediaUploadEvent,\n\tPageFragmentEvent,\n\tPageFragmentHandler,\n\tPageMetadataEvent,\n\tPageMetadataHandler,\n\tPluginContext,\n\tUninstallEvent,\n\tUninstallHandler,\n\tUserInfo,\n} from \"./plugins/types.js\";\n\nexport type { PluginUiContext } from \"@emdash-cms/blocks/server\";\n\n/**\n * Map from hook name to its handler signature. Adding or changing a\n * hook signature in the runtime means updating this map; the rest of\n * the type story flows from it. Authors writing\n * `\"content:beforeSave\": async (event, ctx) => { ... }` get `event`\n * typed as `ContentHookEvent` and `ctx` as `PluginContext` for free.\n */\nexport interface HookHandlers {\n\t\"plugin:install\": LifecycleHandler;\n\t\"plugin:activate\": LifecycleHandler;\n\t\"plugin:deactivate\": LifecycleHandler;\n\t\"plugin:uninstall\": UninstallHandler;\n\t\"content:beforeSave\": ContentBeforeSaveHandler;\n\t\"content:afterSave\": ContentAfterSaveHandler;\n\t\"content:beforeDelete\": ContentBeforeDeleteHandler;\n\t\"content:afterDelete\": ContentAfterDeleteHandler;\n\t\"content:beforePublish\": ContentBeforePublishHandler;\n\t\"content:beforeSchedule\": ContentBeforeScheduleHandler;\n\t\"content:beforeUnpublish\": ContentBeforeUnpublishHandler;\n\t\"content:afterPublish\": ContentAfterPublishHandler;\n\t\"content:afterUnpublish\": ContentAfterUnpublishHandler;\n\t\"content:afterRestore\": ContentAfterRestoreHandler;\n\t\"content:afterSchedule\": ContentAfterScheduleHandler;\n\t\"content:afterUnschedule\": ContentAfterUnscheduleHandler;\n\t\"media:beforeUpload\": MediaBeforeUploadHandler;\n\t\"media:afterUpload\": MediaAfterUploadHandler;\n\tcron: CronHandler;\n\t\"email:beforeSend\": EmailBeforeSendHandler;\n\t\"email:deliver\": EmailDeliverHandler;\n\t\"email:afterSend\": EmailAfterSendHandler;\n\t\"comment:beforeCreate\": CommentBeforeCreateHandler;\n\t\"comment:moderate\": CommentModerateHandler;\n\t\"comment:afterCreate\": CommentAfterCreateHandler;\n\t\"comment:afterModerate\": CommentAfterModerateHandler;\n\t\"byline:afterSave\": BylineAfterSaveHandler;\n\t\"byline:afterDelete\": BylineAfterDeleteHandler;\n\t\"page:metadata\": PageMetadataHandler;\n\t\"page:fragments\": PageFragmentHandler;\n}\n\n/**\n * Hook-handler config form. The bare-function form is also accepted\n * (see `HookEntry`) — this is the long form that lets authors override\n * priority, timeout, exclusivity. `errorPolicy` and `dependencies` are\n * read by the host but rarely set by authors.\n */\nexport interface HookConfig<K extends keyof HookHandlers> {\n\thandler: HookHandlers[K];\n\tpriority?: number;\n\ttimeout?: number;\n\tdependencies?: string[];\n\terrorPolicy?: \"continue\" | \"abort\";\n\texclusive?: boolean;\n}\n\n/**\n * Either a bare handler or the config form. The build probe accepts\n * both shapes and the runtime normalises to the config form before\n * dispatch.\n */\nexport type HookEntry<K extends keyof HookHandlers> = HookHandlers[K] | HookConfig<K>;\n\n/**\n * Request fields a route handler can rely on across both trusted and\n * sandboxed execution. Trusted handlers receive a real `Request`\n * (which is structurally compatible — has `url`, `method`, `headers`);\n * sandboxed handlers receive a serialised `{ url, method, headers }`\n * record because Worker Loader can't pass `Request` objects across\n * the boundary. The shared shape is what's actually portable.\n *\n * `headers` is intentionally `Record<string, string>` rather than\n * `Headers` so the sandboxed serialised form (which is a plain\n * record) typechecks. Trusted handlers receiving a real `Headers`\n * object can still call `.get(...)`, but reading via this type's\n * indexing requires the lookup to be lowercased and exact. Authors\n * iterating headers in a portable way should use `Object.entries`.\n */\nexport interface SandboxedRequest {\n\turl: string;\n\tmethod: string;\n\theaders: Record<string, string>;\n}\n\nexport type {\n\tPluginFormData,\n\tPluginFormDataFileEntry,\n\tPluginFormDataTextEntry,\n\tPluginRouteQuery,\n} from \"@emdash-cms/plugin-types\";\n\nexport type PluginRouteInput<TMode extends PluginRouteBodyMode> = TMode extends \"none\"\n\t? PluginRouteQuery\n\t: TMode extends \"text\"\n\t\t? string\n\t\t: TMode extends \"bytes\"\n\t\t\t? Uint8Array\n\t\t\t: TMode extends \"form-data\"\n\t\t\t\t? PluginFormData\n\t\t\t\t: unknown;\n\nexport type PluginResponseBody =\n\t| { kind: \"text\"; value: string }\n\t| { kind: \"bytes\"; value: Uint8Array };\n\nexport interface PluginResponseInit {\n\tstatus?: number;\n\theaders?: HeadersInit;\n\tbody?: PluginResponseBody | null;\n}\n\nexport interface PluginResponse {\n\treadonly __emdashPluginResponse: true;\n\treadonly status: number;\n\treadonly headers: Array<[string, string]>;\n\treadonly body: PluginResponseBody | null;\n}\n\nexport function pluginResponse(init: PluginResponseInit = {}): PluginResponse {\n\tconst headers: Array<[string, string]> = [];\n\tnew Headers(init.headers).forEach((value, name) => headers.push([name, value]));\n\treturn {\n\t\t__emdashPluginResponse: true,\n\t\tstatus: init.status ?? 200,\n\t\theaders,\n\t\tbody: init.body ?? null,\n\t};\n}\n\n/**\n * Context passed to a route handler. Routes get an extra `routeCtx`\n * argument with the call-site input + the originating request, in\n * addition to the standard `PluginContext`.\n *\n * `input` is `unknown` because plugins validate it themselves — no\n * central schema for route payloads.\n */\nexport interface SandboxedRouteContext {\n\tinput: unknown;\n\trequest: SandboxedRequest;\n\trequestMeta?: unknown;\n\t/** Host-attested context for a validated Block Kit request. */\n\tui?: PluginUiContext;\n\t/**\n\t * Authenticated caller, if the route is private. Resolved and\n\t * authorized by the host before dispatch — trust it over any user id\n\t * in the request body. `undefined` for public routes and for machine\n\t * tokens with no bound user.\n\t */\n\tuser?: UserInfo;\n}\n\n/**\n * Route handler. The two-arg shape (`routeCtx`, `pluginCtx`) matches\n * how the standard-format runtime invokes routes — distinct from\n * native plugins, where routes take a single context with the input\n * merged in.\n *\n * Return type is `unknown` because routes serialise their return value\n * to JSON for the caller; authors define their own response shape.\n */\nexport type RouteHandler<TInput = unknown> = {\n\tbivarianceHack(\n\t\trouteCtx: Omit<SandboxedRouteContext, \"input\"> & { input: TInput },\n\t\tctx: PluginContext,\n\t): Promise<unknown>;\n}[\"bivarianceHack\"];\n\ninterface RouteConfigBase {\n\tpublic?: boolean;\n\tcacheControl?: string;\n\tinput?: unknown;\n\tpermission?: Permission;\n\tmethods?: PluginRouteMethod[];\n\tresponse?: PluginRouteResponseMode;\n}\n\nexport type PluginRouteConfig<TMode extends PluginRouteBodyMode> = RouteConfigBase & {\n\trequest: PluginRouteRequest & { body: TMode };\n\thandler: RouteHandler<PluginRouteInput<TMode>>;\n};\n\nexport function pluginRoute<TMode extends PluginRouteBodyMode>(\n\tconfig: PluginRouteConfig<TMode>,\n): PluginRouteConfig<TMode> {\n\treturn config;\n}\n\n/**\n * Route entry — either a bare handler or the config form with\n * `public`, `input` schema, and so on. The build probe accepts both.\n */\nexport type RouteEntry =\n\t| RouteHandler\n\t| (RouteConfigBase & {\n\t\t\thandler: RouteHandler;\n\t\t\trequest?: PluginRouteRequest;\n\t });\n\nexport interface SandboxedMcpTool {\n\tdescription: string;\n\troute: string;\n\tinput: ZodType;\n\toutput?: ZodType;\n\tdestructive?: boolean;\n}\n\n/**\n * The shape of a sandboxed plugin's default export.\n *\n * Both `hooks` and `routes` are optional — a plugin that only declares\n * one is valid. Hook keys are constrained to the runtime's hook\n * vocabulary so a typo (`\"content:beforSave\"`) is a compile error.\n * Route keys are open because route names are author-chosen URL path\n * segments.\n */\nexport interface SandboxedPlugin {\n\thooks?: {\n\t\t[K in keyof HookHandlers]?: K extends \"content:beforeSave\"\n\t\t\t? SandboxedContentBeforeSaveHandler | SandboxedContentBeforeSaveConfig\n\t\t\t: HookEntry<K>;\n\t};\n\troutes?: Record<string, RouteEntry>;\n\tmcp?: { tools: Record<string, SandboxedMcpTool> };\n}\n\nexport type SandboxedContentBeforeSaveHandler = (\n\tevent: ContentHookEvent,\n\tctx: PluginContext,\n) => Promise<Record<string, unknown> | SandboxHookErrorEnvelope | void>;\n\nexport interface SandboxedContentBeforeSaveConfig extends Omit<\n\tHookConfig<\"content:beforeSave\">,\n\t\"handler\"\n> {\n\thandler: SandboxedContentBeforeSaveHandler;\n}\n\nexport type { SandboxHookErrorEnvelope };\nexport type { NumericDelta, UpdateIfArgs, UpdateIfResult } from \"./plugins/types.js\";\n\n/**\n * Re-export of event types so plugin authors can reference them\n * explicitly when needed (helper functions, type predicates). Most\n * authors won't need these — the mapped type infers them at handler\n * call sites. But the default-export's inferred type also needs them\n * publicly nameable so `satisfies SandboxedPlugin` can produce a\n * portable `.d.mts`.\n */\nexport type {\n\tActorInfo,\n\tCommentAfterCreateEvent,\n\tCommentAfterModerateEvent,\n\tCommentBeforeCreateEvent,\n\tCommentModerateEvent,\n\tContentDeleteEvent,\n\tContentHookEvent,\n\tContentPublishStateChangeEvent,\n\tContentRestoreStateChangeEvent,\n\tContentScheduleStateChangeEvent,\n\tContentStateChangeEvent,\n\tCronEvent,\n\tEmailAfterSendEvent,\n\tEmailBeforeSendEvent,\n\tEmailDeliverEvent,\n\tLifecycleEvent,\n\tMediaAfterUploadEvent,\n\tMediaBytes,\n\tMediaItem,\n\tMediaMetadataPatch,\n\tMediaUploadEvent,\n\tPageFragmentEvent,\n\tPageMetadataEvent,\n\tPluginContext,\n\tUninstallEvent,\n};\n\nexport type {\n\tBylineAfterDeleteEvent,\n\tBylineAfterSaveEvent,\n\tBylineInfo,\n\tPaginatedResult,\n\tVersionedValue,\n\tConditionalWriteResult,\n\tConditionalDeleteResult,\n\tSettingsAccess,\n\tRedirectAccess,\n\tRedirectAccessWithWrite,\n\tRedirectCreateInput,\n\tRedirectInfo,\n\tRedirectListOptions,\n\tRedirectStatus,\n\tRedirectUpdateInput,\n\tVersionedRedirect,\n} from \"./plugins/types.js\";\nexport type {\n\tContentActionOrigin,\n\tContentPolicyDecision,\n\tContentPolicyEvent,\n\tContentSchedulePolicyEvent,\n} from \"./plugins/types.js\";\n"],"mappings":";AAmOA,SAAgB,eAAe,OAA2B,EAAE,EAAkB;CAC7E,MAAM,UAAmC,EAAE;AAC3C,KAAI,QAAQ,KAAK,QAAQ,CAAC,SAAS,OAAO,SAAS,QAAQ,KAAK,CAAC,MAAM,MAAM,CAAC,CAAC;AAC/E,QAAO;EACN,wBAAwB;EACxB,QAAQ,KAAK,UAAU;EACvB;EACA,MAAM,KAAK,QAAQ;EACnB;;AAwDF,SAAgB,YACf,QAC2B;AAC3B,QAAO"}
@@ -1,15 +1,15 @@
1
- import "./parse-CVgO-Qai.mjs";
2
- import "./types-B7Lmsh1E.mjs";
3
- import "./types-Cr-Kg-3D.mjs";
4
- import "./options-SQCHQCPH.mjs";
5
- import "./entry-lock-Cf5OoIgN.mjs";
6
- import "./config-BjEm_3xL.mjs";
7
- import "./runner-D5_LzKXI.mjs";
8
- import "./storage-query-FXJH5pI8.mjs";
9
- import "./index-D-hdtLe8.mjs";
10
- import "./types-Cd-O03VG.mjs";
11
- import "./hreflang-D5uNnsGJ.mjs";
12
- import "./validate-CM79QXYE.mjs";
1
+ import "./parse-D5Sw9wAI.mjs";
2
+ import "./types-DZeDpzMc.mjs";
3
+ import "./types-pOLeFKGq.mjs";
4
+ import "./options-C2IDQnD2.mjs";
5
+ import "./entry-lock-B-1bUDxX.mjs";
6
+ import "./config-DHsDMpXc.mjs";
7
+ import "./runner-Ji7qyH2A.mjs";
8
+ import "./storage-query-C9bK0Dg6.mjs";
9
+ import "./index-D1_ykO2u.mjs";
10
+ import "./types-DuQAIPA-.mjs";
11
+ import "./hreflang-C7ETs0Tv.mjs";
12
+ import "./validate-dK97qe7F.mjs";
13
13
  import { EmDashHandlers } from "./astro/types.mjs";
14
14
 
15
15
  //#region src/plugin-utils.d.ts
@@ -1,16 +1,16 @@
1
- import "../parse-CVgO-Qai.mjs";
2
- import "../types-B7Lmsh1E.mjs";
3
- import { pn as ResolvedPlugin } from "../types-Cr-Kg-3D.mjs";
4
- import "../options-SQCHQCPH.mjs";
5
- import "../entry-lock-Cf5OoIgN.mjs";
6
- import { xr as PluginDescriptor } from "../config-BjEm_3xL.mjs";
7
- import "../runner-D5_LzKXI.mjs";
8
- import "../storage-query-FXJH5pI8.mjs";
9
- import "../index-D-hdtLe8.mjs";
1
+ import "../parse-D5Sw9wAI.mjs";
2
+ import "../types-DZeDpzMc.mjs";
3
+ import { Sn as ResolvedPlugin } from "../types-pOLeFKGq.mjs";
4
+ import "../options-C2IDQnD2.mjs";
5
+ import "../entry-lock-B-1bUDxX.mjs";
6
+ import { jr as PluginDescriptor } from "../config-DHsDMpXc.mjs";
7
+ import "../runner-Ji7qyH2A.mjs";
8
+ import "../storage-query-C9bK0Dg6.mjs";
9
+ import "../index-D1_ykO2u.mjs";
10
10
  import { SandboxedPlugin } from "../plugin-types.mjs";
11
- import "../types-Cd-O03VG.mjs";
12
- import "../hreflang-D5uNnsGJ.mjs";
13
- import "../validate-CM79QXYE.mjs";
11
+ import "../types-DuQAIPA-.mjs";
12
+ import "../hreflang-C7ETs0Tv.mjs";
13
+ import "../validate-dK97qe7F.mjs";
14
14
 
15
15
  //#region src/plugins/adapt-sandbox-entry.d.ts
16
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"adapt-sandbox-entry.d.mts","names":[],"sources":["../../src/plugins/adapt-sandbox-entry.ts"],"mappings":";;;;;;;;;;;;;;;;AAwJA;;;;;;;;;;;;;iBAAgB,iBAAA,CACf,UAAA,EAAY,eAAA,EACZ,UAAA,EAAY,gBAAA,GACV,cAAA"}
1
+ {"version":3,"file":"adapt-sandbox-entry.d.mts","names":[],"sources":["../../src/plugins/adapt-sandbox-entry.ts"],"mappings":";;;;;;;;;;;;;;;;AA4JA;;;;;;;;;;;;;iBAAgB,iBAAA,CACf,UAAA,EAAY,eAAA,EACZ,UAAA,EAAY,gBAAA,GACV,cAAA"}
@@ -1,9 +1,21 @@
1
- import { n as PLUGIN_CAPABILITIES, t as HOOK_NAMES } from "../manifest-schema-CY3zng_M.mjs";
2
- import { s as normalizePluginCapabilities } from "../types-BZakh7Ym.mjs";
3
- import { n as sanitizeHeadersForSandbox } from "../request-meta-sZXt3sRo.mjs";
1
+ import { n as PLUGIN_CAPABILITIES, t as HOOK_NAMES } from "../manifest-schema-gy37bD_D.mjs";
2
+ import { a as normalizePluginCapabilities } from "../types-CsmwbOwa.mjs";
3
+ import { n as sanitizeHeadersForSandbox } from "../request-meta-B6blULFY.mjs";
4
+ import { z } from "zod";
4
5
 
5
6
  //#region src/plugins/adapt-sandbox-entry.ts
6
7
  /**
8
+ * In-Process Adapter for Standard-Format Plugins
9
+ *
10
+ * Converts a standard plugin definition ({ hooks, routes }) into a
11
+ * ResolvedPlugin compatible with HookPipeline. This allows standard-format
12
+ * plugins to run in-process when placed in the `plugins: []` config array.
13
+ *
14
+ * The adapter wraps each hook and route handler so that the PluginContextFactory
15
+ * provides the same capability-gated context as the native path.
16
+ *
17
+ */
18
+ /**
7
19
  * Default hook configuration values
8
20
  */
9
21
  const DEFAULT_PRIORITY = 100;
@@ -154,16 +166,42 @@ function adaptSandboxEntry(definition, descriptor) {
154
166
  storage,
155
167
  hooks: resolvedHooks,
156
168
  routes: resolvedRoutes,
157
- mcp: { tools: Object.fromEntries(Object.entries(definition.mcp?.tools ?? {}).map(([name, tool]) => [name, {
158
- description: tool.description,
159
- route: tool.route,
160
- input: tool.input,
161
- output: tool.output,
162
- destructive: tool.destructive
163
- }])) },
169
+ mcp: { tools: {
170
+ ...Object.fromEntries((descriptor.mcp?.tools ?? []).map((tool) => [tool.name, toolFromManifest(tool)])),
171
+ ...Object.fromEntries(Object.entries(definition.mcp?.tools ?? {}).map(([name, tool]) => [name, {
172
+ description: tool.description,
173
+ route: tool.route,
174
+ input: tool.input,
175
+ output: tool.output,
176
+ destructive: tool.destructive
177
+ }]))
178
+ } },
164
179
  admin
165
180
  };
166
181
  }
182
+ /**
183
+ * An MCP tool from its serialized manifest form. The schemas are converted
184
+ * on first use: turning JSON Schema back into Zod takes milliseconds per
185
+ * tool, and this adapter runs on every cold start, public requests included.
186
+ */
187
+ function toolFromManifest(tool) {
188
+ let input;
189
+ let output;
190
+ return {
191
+ description: tool.description,
192
+ route: tool.route,
193
+ destructive: tool.destructive,
194
+ get input() {
195
+ input ??= z.fromJSONSchema({ ...tool.inputSchema });
196
+ return input;
197
+ },
198
+ get output() {
199
+ if (!tool.outputSchema) return void 0;
200
+ output ??= z.fromJSONSchema({ ...tool.outputSchema });
201
+ return output;
202
+ }
203
+ };
204
+ }
167
205
 
168
206
  //#endregion
169
207
  export { adaptSandboxEntry };
@@ -1 +1 @@
1
- {"version":3,"file":"adapt-sandbox-entry.mjs","names":[],"sources":["../../src/plugins/adapt-sandbox-entry.ts"],"sourcesContent":["/**\n * In-Process Adapter for Standard-Format Plugins\n *\n * Converts a standard plugin definition ({ hooks, routes }) into a\n * ResolvedPlugin compatible with HookPipeline. This allows standard-format\n * plugins to run in-process when placed in the `plugins: []` config array.\n *\n * The adapter wraps each hook and route handler so that the PluginContextFactory\n * provides the same capability-gated context as the native path.\n *\n */\n\nimport type { PluginDescriptor } from \"../astro/integration/runtime.js\";\nimport type { RouteEntry, RouteHandler, SandboxedPlugin } from \"../plugin-types.js\";\nimport { PLUGIN_CAPABILITIES, HOOK_NAMES } from \"./manifest-schema.js\";\nimport { sanitizeHeadersForSandbox } from \"./request-meta.js\";\nimport { normalizePluginCapabilities } from \"./types.js\";\nimport type {\n\tResolvedPlugin,\n\tResolvedPluginHooks,\n\tResolvedHook,\n\tPluginRoute,\n\tPluginCapability,\n\tPluginStorageConfig,\n\tPluginAdminConfig,\n} from \"./types.js\";\n\n/**\n * Loose per-hook entry shape used inside the adapter's iteration loop.\n *\n * `SandboxedPlugin.hooks` is a mapped type keyed by hook name, so each\n * entry's type depends on the key. When the adapter iterates with\n * `Object.entries`, the key is `string` (TypeScript can't see the\n * narrowing), so we need a *union* type that covers every hook entry\n * shape — bare handler or config form. This is that union, kept local\n * because it has no use outside the adapter.\n */\n// eslint-disable-next-line typescript-eslint/no-explicit-any -- must accept handlers with specific event types across all hook names\ntype AnyHookHandler = (...args: any[]) => Promise<any>;\ntype AnyHookEntry =\n\t| AnyHookHandler\n\t| {\n\t\t\thandler: AnyHookHandler;\n\t\t\tpriority?: number;\n\t\t\ttimeout?: number;\n\t\t\tdependencies?: string[];\n\t\t\terrorPolicy?: \"continue\" | \"abort\";\n\t\t\texclusive?: boolean;\n\t };\n\n/**\n * Default hook configuration values\n */\nconst DEFAULT_PRIORITY = 100;\nconst DEFAULT_TIMEOUT = 5000;\nconst DEFAULT_ERROR_POLICY = \"abort\" as const;\n\n/**\n * Check if a hook entry is the config form (has a `handler` property).\n */\nfunction isHookConfig(entry: AnyHookEntry): entry is Exclude<AnyHookEntry, AnyHookHandler> {\n\treturn typeof entry === \"object\" && entry !== null && \"handler\" in entry;\n}\n\n/**\n * Resolve a single hook entry to a ResolvedHook.\n *\n * Sandboxed-format hooks use the standard two-arg convention:\n * handler(event, ctx)\n *\n * The HookPipeline dispatch methods also call handlers with (event, ctx),\n * so the handler is compatible as-is — we just normalise the\n * surrounding config (priority, timeout, etc.) to its defaults.\n */\nfunction resolveSandboxedHook(entry: AnyHookEntry, pluginId: string): ResolvedHook<AnyHookHandler> {\n\tif (isHookConfig(entry)) {\n\t\treturn {\n\t\t\tpriority: entry.priority ?? DEFAULT_PRIORITY,\n\t\t\ttimeout: entry.timeout ?? DEFAULT_TIMEOUT,\n\t\t\tdependencies: entry.dependencies ?? [],\n\t\t\terrorPolicy: entry.errorPolicy ?? DEFAULT_ERROR_POLICY,\n\t\t\texclusive: entry.exclusive ?? false,\n\t\t\thandler: entry.handler,\n\t\t\tpluginId,\n\t\t};\n\t}\n\n\t// Bare function handler\n\treturn {\n\t\tpriority: DEFAULT_PRIORITY,\n\t\ttimeout: DEFAULT_TIMEOUT,\n\t\tdependencies: [],\n\t\terrorPolicy: DEFAULT_ERROR_POLICY,\n\t\texclusive: false,\n\t\thandler: entry,\n\t\tpluginId,\n\t};\n}\n\n/**\n * Normalise a `RouteEntry` (bare handler or `{ handler, public?, input? }`\n * config) to the config form. The `input` schema is intentionally typed\n * `unknown` in `RouteEntry` — sandboxed plugins describe it loosely\n * because the strict `z.ZodType<TInput>` constraint of the runtime's\n * `PluginRoute` only narrows once the route is wired into the router.\n * The wider type flows through to the runtime which validates at\n * invocation time.\n */\nfunction normalizeRouteEntry(entry: RouteEntry): {\n\thandler: RouteHandler;\n\tpublic?: boolean;\n\tcacheControl?: string;\n\tmethods?: PluginRoute[\"methods\"];\n\trequest?: PluginRoute[\"request\"];\n\tresponse?: PluginRoute[\"response\"];\n\tinput?: PluginRoute[\"input\"];\n\tpermission?: PluginRoute[\"permission\"];\n} {\n\tif (typeof entry === \"function\") {\n\t\treturn { handler: entry };\n\t}\n\treturn {\n\t\thandler: entry.handler,\n\t\tpublic: entry.public,\n\t\tpermission: entry.permission,\n\t\tcacheControl: entry.cacheControl,\n\t\tmethods: entry.methods,\n\t\trequest: entry.request,\n\t\tresponse: entry.response,\n\t\t// eslint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- RouteEntry.input is intentionally `unknown` (sandboxed plugins) and validated by the runtime at invocation time\n\t\tinput: entry.input as PluginRoute[\"input\"],\n\t};\n}\n\nconst VALID_CAPABILITIES_SET = new Set<string>(PLUGIN_CAPABILITIES);\n\nconst VALID_HOOK_NAMES_SET = new Set<string>(HOOK_NAMES);\n\n/**\n * Adapt a sandboxed plugin's default export into a ResolvedPlugin.\n *\n * This is the in-process side of sandboxed-format plugins: it takes\n * the `{ hooks, routes }` default export of a sandboxed plugin and\n * produces a `ResolvedPlugin` that enters the HookPipeline alongside\n * native plugins. The descriptor supplies identity (id, version) and\n * the trust contract (capabilities, allowedHosts, storage); the\n * definition supplies behaviour.\n *\n * @param definition - The plugin's default export (matching `SandboxedPlugin` from `emdash/plugin`).\n * @param descriptor - The plugin descriptor with id, version, capabilities, etc.\n * @returns A ResolvedPlugin compatible with HookPipeline.\n */\nexport function adaptSandboxEntry(\n\tdefinition: SandboxedPlugin,\n\tdescriptor: PluginDescriptor,\n): ResolvedPlugin {\n\tconst pluginId = descriptor.id;\n\tconst version = descriptor.version;\n\n\t// A null / array / non-object `definition` would throw a generic\n\t// `TypeError: Cannot read properties of null` further down the\n\t// loop without the plugin id; surface a useful error first.\n\tif (typeof definition !== \"object\" || definition === null || Array.isArray(definition)) {\n\t\tthrow new Error(\n\t\t\t`Plugin \"${pluginId}\" default export must be an object with ` +\n\t\t\t\t`\\`hooks\\` and/or \\`routes\\` (got ${\n\t\t\t\t\tArray.isArray(definition) ? \"array\" : typeof definition\n\t\t\t\t}). Did you forget \\`export default {...} satisfies SandboxedPlugin\\`?`,\n\t\t);\n\t}\n\n\t// Resolve hooks. `SandboxedPlugin.hooks` is keyed by hook name with\n\t// per-key entry types; iterating with `Object.entries` collapses\n\t// keys to `string`, so we treat each entry as the union `AnyHookEntry`\n\t// for the duration of the loop. The widening from the strict mapped\n\t// type to a plain record is sound because each entry still matches\n\t// one of the bare-handler / config-object shapes captured by\n\t// `AnyHookEntry`.\n\tconst resolvedHooks: ResolvedPluginHooks = {};\n\tif (definition.hooks) {\n\t\t// eslint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- widening the strict mapped type to a string-keyed record for iteration; entries still match AnyHookEntry\n\t\tconst hookMap = definition.hooks as Record<string, AnyHookEntry>;\n\t\tfor (const [hookName, entry] of Object.entries(hookMap)) {\n\t\t\tif (!VALID_HOOK_NAMES_SET.has(hookName)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Plugin \"${pluginId}\" declares unknown hook \"${hookName}\". ` +\n\t\t\t\t\t\t`Valid hooks: ${[...VALID_HOOK_NAMES_SET].join(\", \")}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\t// The resolved hook has the correct handler type for the hook name.\n\t\t\t// We store it as the generic type and let HookPipeline's typed dispatch\n\t\t\t// methods handle the type narrowing at call time.\n\t\t\t// eslint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- bridging untyped map to typed interface\n\t\t\t(resolvedHooks as Record<string, unknown>)[hookName] = resolveSandboxedHook(entry, pluginId);\n\t\t}\n\t}\n\n\t// Resolve routes: sandboxed format uses (routeCtx, pluginCtx) two-arg\n\t// pattern. Standard format (`definePlugin(...)` as the default export)\n\t// uses the public (ctx: RouteContext) single-arg pattern where\n\t// RouteContext extends PluginContext with { input, request, requestMeta }.\n\t//\n\t// The two conventions disagree on the FIRST argument (`request` is a\n\t// flattened plain object for sandboxed, a real WHATWG `Request` for\n\t// standard), so the wrapper must know which contract the handler was\n\t// written against. `definePlugin` requires `id`, and sandbox-format\n\t// default exports never carry one (identity comes from the manifest's\n\t// slug + publisher) — the same \"no id\" signal definePlugin itself\n\t// documents. Calling a single-arg standard handler with the two-arg\n\t// convention silently hands it the bare route context (JS drops the\n\t// extra argument), so `ctx.storage` / `ctx.email` / etc. are all\n\t// undefined at runtime.\n\t//\n\t// Route entries can be bare functions or `{ handler, public?, input? }`\n\t// config objects; normalise to the config shape inside the loop.\n\tconst usesPublicRouteContext = \"id\" in definition && typeof definition.id === \"string\";\n\tconst resolvedRoutes: Record<string, PluginRoute> = {};\n\tif (definition.routes) {\n\t\tfor (const [routeName, rawEntry] of Object.entries(definition.routes)) {\n\t\t\tconst normalized = normalizeRouteEntry(rawEntry);\n\t\t\tconst {\n\t\t\t\thandler,\n\t\t\t\tpublic: publicFlag,\n\t\t\t\tcacheControl,\n\t\t\t\tmethods,\n\t\t\t\trequest,\n\t\t\t\tresponse,\n\t\t\t\tinput: inputSchema,\n\t\t\t\tpermission,\n\t\t\t} = normalized;\n\t\t\tresolvedRoutes[routeName] = {\n\t\t\t\tinput: inputSchema,\n\t\t\t\tpublic: publicFlag,\n\t\t\t\tpermission,\n\t\t\t\tcacheControl,\n\t\t\t\tmethods,\n\t\t\t\trequest,\n\t\t\t\tresponse,\n\t\t\t\thandler: async (ctx) => {\n\t\t\t\t\tif (usesPublicRouteContext) {\n\t\t\t\t\t\t// The incoming ctx already IS the public RouteContext\n\t\t\t\t\t\t// (full PluginContext + input / real Request /\n\t\t\t\t\t\t// requestMeta) — pass it through unchanged.\n\t\t\t\t\t\t// eslint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- standard-format handlers are authored against the public single-arg PluginRoute contract; the sandbox RouteHandler type on `normalized` is the wider authoring union\n\t\t\t\t\t\treturn (handler as unknown as PluginRoute[\"handler\"])(ctx);\n\t\t\t\t\t}\n\t\t\t\t\t// `ctx.request` is a real WHATWG `Request` (this is the\n\t\t\t\t\t// in-process adapter; the worker-sandbox adapter handles\n\t\t\t\t\t// the serialised case). Flatten `Headers` to the plain\n\t\t\t\t\t// `Record<string, string>` shape that author-facing\n\t\t\t\t\t// `SandboxedRequest` promises so handler bodies are\n\t\t\t\t\t// identical across both adapters.\n\t\t\t\t\tconst declaredHeaders = request ? (request.headers ?? []) : undefined;\n\t\t\t\t\tconst headers = sanitizeHeadersForSandbox(ctx.request.headers, declaredHeaders);\n\t\t\t\t\tconst requestShape = {\n\t\t\t\t\t\turl: ctx.request.url,\n\t\t\t\t\t\tmethod: ctx.request.method,\n\t\t\t\t\t\theaders,\n\t\t\t\t\t};\n\t\t\t\t\tconst routeCtx = {\n\t\t\t\t\t\tinput: ctx.input,\n\t\t\t\t\t\trequest: requestShape,\n\t\t\t\t\t\trequestMeta: ctx.requestMeta,\n\t\t\t\t\t\tuser: ctx.user,\n\t\t\t\t\t\tui: ctx.ui,\n\t\t\t\t\t};\n\t\t\t\t\tconst {\n\t\t\t\t\t\tinput: _,\n\t\t\t\t\t\trequest: __,\n\t\t\t\t\t\trequestMeta: ___,\n\t\t\t\t\t\tuser: ____,\n\t\t\t\t\t\tui: _____,\n\t\t\t\t\t\t...pluginCtx\n\t\t\t\t\t} = ctx;\n\t\t\t\t\treturn handler(routeCtx, pluginCtx);\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\t// Build capabilities from descriptor.\n\t// Validate against the known set (same as defineNativePlugin). Both\n\t// current and deprecated names are accepted; deprecated names are\n\t// silently normalized to current names below so the runtime only ever\n\t// sees the canonical form.\n\tconst rawCapabilities = descriptor.capabilities ?? [];\n\tfor (const cap of rawCapabilities) {\n\t\tif (!VALID_CAPABILITIES_SET.has(cap)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Invalid capability \"${cap}\" in plugin \"${pluginId}\". ` +\n\t\t\t\t\t`Valid capabilities: ${[...VALID_CAPABILITIES_SET].join(\", \")}`,\n\t\t\t);\n\t\t}\n\t}\n\n\t// Silent normalization: rewrite deprecated names to current names.\n\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- validated above; normalization only returns capabilities from the union\n\tconst capabilities = normalizePluginCapabilities(rawCapabilities as PluginCapability[]);\n\tconst allowedHosts = descriptor.allowedHosts ?? [];\n\n\t// Build storage config from descriptor.\n\t// StorageCollectionDeclaration uses optional indexes, but PluginStorageConfig\n\t// requires them. Ensure every collection has an indexes array.\n\tconst rawStorage = descriptor.storage ?? {};\n\tconst storage: PluginStorageConfig = {};\n\tfor (const [name, config] of Object.entries(rawStorage)) {\n\t\tstorage[name] = {\n\t\t\tindexes: config.indexes ?? [],\n\t\t\tuniqueIndexes: config.uniqueIndexes,\n\t\t};\n\t}\n\n\t// Build admin config from descriptor.\n\t// Portable Text blocks and field widgets are declarative (Block Kit), so they\n\t// are forwarded for standard/sandboxed plugins just like pages and widgets —\n\t// the admin editor consumes them from the manifest. Only the site-side render\n\t// component (`componentsEntry`) stays native-only.\n\tconst admin: PluginAdminConfig = {};\n\tif (descriptor.adminPages) {\n\t\tadmin.pages = descriptor.adminPages;\n\t}\n\tif (descriptor.adminWidgets) {\n\t\tadmin.widgets = descriptor.adminWidgets;\n\t}\n\tif (descriptor.editorPanels) {\n\t\tadmin.editorPanels = descriptor.editorPanels;\n\t}\n\tif (descriptor.editorActions) {\n\t\tadmin.editorActions = descriptor.editorActions;\n\t}\n\tif (descriptor.settingsSchema) {\n\t\tadmin.settingsSchema = descriptor.settingsSchema;\n\t}\n\tif (descriptor.portableTextBlocks) {\n\t\tadmin.portableTextBlocks = descriptor.portableTextBlocks;\n\t}\n\tif (descriptor.fieldWidgets) {\n\t\tadmin.fieldWidgets = descriptor.fieldWidgets;\n\t}\n\n\treturn {\n\t\tid: pluginId,\n\t\tversion,\n\t\tcapabilities,\n\t\tallowedHosts,\n\t\tstorage,\n\t\thooks: resolvedHooks,\n\t\troutes: resolvedRoutes,\n\t\tmcp: {\n\t\t\ttools: Object.fromEntries(\n\t\t\t\tObject.entries(definition.mcp?.tools ?? {}).map(([name, tool]) => [\n\t\t\t\t\tname,\n\t\t\t\t\t{\n\t\t\t\t\t\tdescription: tool.description,\n\t\t\t\t\t\troute: tool.route,\n\t\t\t\t\t\tinput: tool.input,\n\t\t\t\t\t\toutput: tool.output,\n\t\t\t\t\t\tdestructive: tool.destructive,\n\t\t\t\t\t},\n\t\t\t\t]),\n\t\t\t),\n\t\t},\n\t\tadmin,\n\t};\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"adapt-sandbox-entry.mjs","names":[],"sources":["../../src/plugins/adapt-sandbox-entry.ts"],"sourcesContent":["/**\n * In-Process Adapter for Standard-Format Plugins\n *\n * Converts a standard plugin definition ({ hooks, routes }) into a\n * ResolvedPlugin compatible with HookPipeline. This allows standard-format\n * plugins to run in-process when placed in the `plugins: []` config array.\n *\n * The adapter wraps each hook and route handler so that the PluginContextFactory\n * provides the same capability-gated context as the native path.\n *\n */\n\nimport { z } from \"zod\";\n\nimport type { PluginDescriptor } from \"../astro/integration/runtime.js\";\nimport type { RouteEntry, RouteHandler, SandboxedPlugin } from \"../plugin-types.js\";\nimport { PLUGIN_CAPABILITIES, HOOK_NAMES } from \"./manifest-schema.js\";\nimport { sanitizeHeadersForSandbox } from \"./request-meta.js\";\nimport { normalizePluginCapabilities } from \"./types.js\";\nimport type {\n\tManifestMcpTool,\n\tResolvedPlugin,\n\tResolvedPluginHooks,\n\tResolvedHook,\n\tPluginRoute,\n\tPluginCapability,\n\tPluginMcpToolDefinition,\n\tPluginStorageConfig,\n\tPluginAdminConfig,\n} from \"./types.js\";\n\n/**\n * Loose per-hook entry shape used inside the adapter's iteration loop.\n *\n * `SandboxedPlugin.hooks` is a mapped type keyed by hook name, so each\n * entry's type depends on the key. When the adapter iterates with\n * `Object.entries`, the key is `string` (TypeScript can't see the\n * narrowing), so we need a *union* type that covers every hook entry\n * shape — bare handler or config form. This is that union, kept local\n * because it has no use outside the adapter.\n */\n// eslint-disable-next-line typescript-eslint/no-explicit-any -- must accept handlers with specific event types across all hook names\ntype AnyHookHandler = (...args: any[]) => Promise<any>;\ntype AnyHookEntry =\n\t| AnyHookHandler\n\t| {\n\t\t\thandler: AnyHookHandler;\n\t\t\tpriority?: number;\n\t\t\ttimeout?: number;\n\t\t\tdependencies?: string[];\n\t\t\terrorPolicy?: \"continue\" | \"abort\";\n\t\t\texclusive?: boolean;\n\t };\n\n/**\n * Default hook configuration values\n */\nconst DEFAULT_PRIORITY = 100;\nconst DEFAULT_TIMEOUT = 5000;\nconst DEFAULT_ERROR_POLICY = \"abort\" as const;\n\n/**\n * Check if a hook entry is the config form (has a `handler` property).\n */\nfunction isHookConfig(entry: AnyHookEntry): entry is Exclude<AnyHookEntry, AnyHookHandler> {\n\treturn typeof entry === \"object\" && entry !== null && \"handler\" in entry;\n}\n\n/**\n * Resolve a single hook entry to a ResolvedHook.\n *\n * Sandboxed-format hooks use the standard two-arg convention:\n * handler(event, ctx)\n *\n * The HookPipeline dispatch methods also call handlers with (event, ctx),\n * so the handler is compatible as-is — we just normalise the\n * surrounding config (priority, timeout, etc.) to its defaults.\n */\nfunction resolveSandboxedHook(entry: AnyHookEntry, pluginId: string): ResolvedHook<AnyHookHandler> {\n\tif (isHookConfig(entry)) {\n\t\treturn {\n\t\t\tpriority: entry.priority ?? DEFAULT_PRIORITY,\n\t\t\ttimeout: entry.timeout ?? DEFAULT_TIMEOUT,\n\t\t\tdependencies: entry.dependencies ?? [],\n\t\t\terrorPolicy: entry.errorPolicy ?? DEFAULT_ERROR_POLICY,\n\t\t\texclusive: entry.exclusive ?? false,\n\t\t\thandler: entry.handler,\n\t\t\tpluginId,\n\t\t};\n\t}\n\n\t// Bare function handler\n\treturn {\n\t\tpriority: DEFAULT_PRIORITY,\n\t\ttimeout: DEFAULT_TIMEOUT,\n\t\tdependencies: [],\n\t\terrorPolicy: DEFAULT_ERROR_POLICY,\n\t\texclusive: false,\n\t\thandler: entry,\n\t\tpluginId,\n\t};\n}\n\n/**\n * Normalise a `RouteEntry` (bare handler or `{ handler, public?, input? }`\n * config) to the config form. The `input` schema is intentionally typed\n * `unknown` in `RouteEntry` — sandboxed plugins describe it loosely\n * because the strict `z.ZodType<TInput>` constraint of the runtime's\n * `PluginRoute` only narrows once the route is wired into the router.\n * The wider type flows through to the runtime which validates at\n * invocation time.\n */\nfunction normalizeRouteEntry(entry: RouteEntry): {\n\thandler: RouteHandler;\n\tpublic?: boolean;\n\tcacheControl?: string;\n\tmethods?: PluginRoute[\"methods\"];\n\trequest?: PluginRoute[\"request\"];\n\tresponse?: PluginRoute[\"response\"];\n\tinput?: PluginRoute[\"input\"];\n\tpermission?: PluginRoute[\"permission\"];\n} {\n\tif (typeof entry === \"function\") {\n\t\treturn { handler: entry };\n\t}\n\treturn {\n\t\thandler: entry.handler,\n\t\tpublic: entry.public,\n\t\tpermission: entry.permission,\n\t\tcacheControl: entry.cacheControl,\n\t\tmethods: entry.methods,\n\t\trequest: entry.request,\n\t\tresponse: entry.response,\n\t\t// eslint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- RouteEntry.input is intentionally `unknown` (sandboxed plugins) and validated by the runtime at invocation time\n\t\tinput: entry.input as PluginRoute[\"input\"],\n\t};\n}\n\nconst VALID_CAPABILITIES_SET = new Set<string>(PLUGIN_CAPABILITIES);\n\nconst VALID_HOOK_NAMES_SET = new Set<string>(HOOK_NAMES);\n\n/**\n * Adapt a sandboxed plugin's default export into a ResolvedPlugin.\n *\n * This is the in-process side of sandboxed-format plugins: it takes\n * the `{ hooks, routes }` default export of a sandboxed plugin and\n * produces a `ResolvedPlugin` that enters the HookPipeline alongside\n * native plugins. The descriptor supplies identity (id, version) and\n * the trust contract (capabilities, allowedHosts, storage); the\n * definition supplies behaviour.\n *\n * @param definition - The plugin's default export (matching `SandboxedPlugin` from `emdash/plugin`).\n * @param descriptor - The plugin descriptor with id, version, capabilities, etc.\n * @returns A ResolvedPlugin compatible with HookPipeline.\n */\nexport function adaptSandboxEntry(\n\tdefinition: SandboxedPlugin,\n\tdescriptor: PluginDescriptor,\n): ResolvedPlugin {\n\tconst pluginId = descriptor.id;\n\tconst version = descriptor.version;\n\n\t// A null / array / non-object `definition` would throw a generic\n\t// `TypeError: Cannot read properties of null` further down the\n\t// loop without the plugin id; surface a useful error first.\n\tif (typeof definition !== \"object\" || definition === null || Array.isArray(definition)) {\n\t\tthrow new Error(\n\t\t\t`Plugin \"${pluginId}\" default export must be an object with ` +\n\t\t\t\t`\\`hooks\\` and/or \\`routes\\` (got ${\n\t\t\t\t\tArray.isArray(definition) ? \"array\" : typeof definition\n\t\t\t\t}). Did you forget \\`export default {...} satisfies SandboxedPlugin\\`?`,\n\t\t);\n\t}\n\n\t// Resolve hooks. `SandboxedPlugin.hooks` is keyed by hook name with\n\t// per-key entry types; iterating with `Object.entries` collapses\n\t// keys to `string`, so we treat each entry as the union `AnyHookEntry`\n\t// for the duration of the loop. The widening from the strict mapped\n\t// type to a plain record is sound because each entry still matches\n\t// one of the bare-handler / config-object shapes captured by\n\t// `AnyHookEntry`.\n\tconst resolvedHooks: ResolvedPluginHooks = {};\n\tif (definition.hooks) {\n\t\t// eslint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- widening the strict mapped type to a string-keyed record for iteration; entries still match AnyHookEntry\n\t\tconst hookMap = definition.hooks as Record<string, AnyHookEntry>;\n\t\tfor (const [hookName, entry] of Object.entries(hookMap)) {\n\t\t\tif (!VALID_HOOK_NAMES_SET.has(hookName)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Plugin \"${pluginId}\" declares unknown hook \"${hookName}\". ` +\n\t\t\t\t\t\t`Valid hooks: ${[...VALID_HOOK_NAMES_SET].join(\", \")}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\t// The resolved hook has the correct handler type for the hook name.\n\t\t\t// We store it as the generic type and let HookPipeline's typed dispatch\n\t\t\t// methods handle the type narrowing at call time.\n\t\t\t// eslint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- bridging untyped map to typed interface\n\t\t\t(resolvedHooks as Record<string, unknown>)[hookName] = resolveSandboxedHook(entry, pluginId);\n\t\t}\n\t}\n\n\t// Resolve routes: sandboxed format uses (routeCtx, pluginCtx) two-arg\n\t// pattern. Standard format (`definePlugin(...)` as the default export)\n\t// uses the public (ctx: RouteContext) single-arg pattern where\n\t// RouteContext extends PluginContext with { input, request, requestMeta }.\n\t//\n\t// The two conventions disagree on the FIRST argument (`request` is a\n\t// flattened plain object for sandboxed, a real WHATWG `Request` for\n\t// standard), so the wrapper must know which contract the handler was\n\t// written against. `definePlugin` requires `id`, and sandbox-format\n\t// default exports never carry one (identity comes from the manifest's\n\t// slug + publisher) — the same \"no id\" signal definePlugin itself\n\t// documents. Calling a single-arg standard handler with the two-arg\n\t// convention silently hands it the bare route context (JS drops the\n\t// extra argument), so `ctx.storage` / `ctx.email` / etc. are all\n\t// undefined at runtime.\n\t//\n\t// Route entries can be bare functions or `{ handler, public?, input? }`\n\t// config objects; normalise to the config shape inside the loop.\n\tconst usesPublicRouteContext = \"id\" in definition && typeof definition.id === \"string\";\n\tconst resolvedRoutes: Record<string, PluginRoute> = {};\n\tif (definition.routes) {\n\t\tfor (const [routeName, rawEntry] of Object.entries(definition.routes)) {\n\t\t\tconst normalized = normalizeRouteEntry(rawEntry);\n\t\t\tconst {\n\t\t\t\thandler,\n\t\t\t\tpublic: publicFlag,\n\t\t\t\tcacheControl,\n\t\t\t\tmethods,\n\t\t\t\trequest,\n\t\t\t\tresponse,\n\t\t\t\tinput: inputSchema,\n\t\t\t\tpermission,\n\t\t\t} = normalized;\n\t\t\tresolvedRoutes[routeName] = {\n\t\t\t\tinput: inputSchema,\n\t\t\t\tpublic: publicFlag,\n\t\t\t\tpermission,\n\t\t\t\tcacheControl,\n\t\t\t\tmethods,\n\t\t\t\trequest,\n\t\t\t\tresponse,\n\t\t\t\thandler: async (ctx) => {\n\t\t\t\t\tif (usesPublicRouteContext) {\n\t\t\t\t\t\t// The incoming ctx already IS the public RouteContext\n\t\t\t\t\t\t// (full PluginContext + input / real Request /\n\t\t\t\t\t\t// requestMeta) — pass it through unchanged.\n\t\t\t\t\t\t// eslint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- standard-format handlers are authored against the public single-arg PluginRoute contract; the sandbox RouteHandler type on `normalized` is the wider authoring union\n\t\t\t\t\t\treturn (handler as unknown as PluginRoute[\"handler\"])(ctx);\n\t\t\t\t\t}\n\t\t\t\t\t// `ctx.request` is a real WHATWG `Request` (this is the\n\t\t\t\t\t// in-process adapter; the worker-sandbox adapter handles\n\t\t\t\t\t// the serialised case). Flatten `Headers` to the plain\n\t\t\t\t\t// `Record<string, string>` shape that author-facing\n\t\t\t\t\t// `SandboxedRequest` promises so handler bodies are\n\t\t\t\t\t// identical across both adapters.\n\t\t\t\t\tconst declaredHeaders = request ? (request.headers ?? []) : undefined;\n\t\t\t\t\tconst headers = sanitizeHeadersForSandbox(ctx.request.headers, declaredHeaders);\n\t\t\t\t\tconst requestShape = {\n\t\t\t\t\t\turl: ctx.request.url,\n\t\t\t\t\t\tmethod: ctx.request.method,\n\t\t\t\t\t\theaders,\n\t\t\t\t\t};\n\t\t\t\t\tconst routeCtx = {\n\t\t\t\t\t\tinput: ctx.input,\n\t\t\t\t\t\trequest: requestShape,\n\t\t\t\t\t\trequestMeta: ctx.requestMeta,\n\t\t\t\t\t\tuser: ctx.user,\n\t\t\t\t\t\tui: ctx.ui,\n\t\t\t\t\t};\n\t\t\t\t\tconst {\n\t\t\t\t\t\tinput: _,\n\t\t\t\t\t\trequest: __,\n\t\t\t\t\t\trequestMeta: ___,\n\t\t\t\t\t\tuser: ____,\n\t\t\t\t\t\tui: _____,\n\t\t\t\t\t\t...pluginCtx\n\t\t\t\t\t} = ctx;\n\t\t\t\t\treturn handler(routeCtx, pluginCtx);\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\t// Build capabilities from descriptor.\n\t// Validate against the known set (same as defineNativePlugin). Both\n\t// current and deprecated names are accepted; deprecated names are\n\t// silently normalized to current names below so the runtime only ever\n\t// sees the canonical form.\n\tconst rawCapabilities = descriptor.capabilities ?? [];\n\tfor (const cap of rawCapabilities) {\n\t\tif (!VALID_CAPABILITIES_SET.has(cap)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Invalid capability \"${cap}\" in plugin \"${pluginId}\". ` +\n\t\t\t\t\t`Valid capabilities: ${[...VALID_CAPABILITIES_SET].join(\", \")}`,\n\t\t\t);\n\t\t}\n\t}\n\n\t// Silent normalization: rewrite deprecated names to current names.\n\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- validated above; normalization only returns capabilities from the union\n\tconst capabilities = normalizePluginCapabilities(rawCapabilities as PluginCapability[]);\n\tconst allowedHosts = descriptor.allowedHosts ?? [];\n\n\t// Build storage config from descriptor.\n\t// StorageCollectionDeclaration uses optional indexes, but PluginStorageConfig\n\t// requires them. Ensure every collection has an indexes array.\n\tconst rawStorage = descriptor.storage ?? {};\n\tconst storage: PluginStorageConfig = {};\n\tfor (const [name, config] of Object.entries(rawStorage)) {\n\t\tstorage[name] = {\n\t\t\tindexes: config.indexes ?? [],\n\t\t\tuniqueIndexes: config.uniqueIndexes,\n\t\t};\n\t}\n\n\t// Build admin config from descriptor.\n\t// Portable Text blocks and field widgets are declarative (Block Kit), so they\n\t// are forwarded for standard/sandboxed plugins just like pages and widgets —\n\t// the admin editor consumes them from the manifest. Only the site-side render\n\t// component (`componentsEntry`) stays native-only.\n\tconst admin: PluginAdminConfig = {};\n\tif (descriptor.adminPages) {\n\t\tadmin.pages = descriptor.adminPages;\n\t}\n\tif (descriptor.adminWidgets) {\n\t\tadmin.widgets = descriptor.adminWidgets;\n\t}\n\tif (descriptor.editorPanels) {\n\t\tadmin.editorPanels = descriptor.editorPanels;\n\t}\n\tif (descriptor.editorActions) {\n\t\tadmin.editorActions = descriptor.editorActions;\n\t}\n\tif (descriptor.settingsSchema) {\n\t\tadmin.settingsSchema = descriptor.settingsSchema;\n\t}\n\tif (descriptor.portableTextBlocks) {\n\t\tadmin.portableTextBlocks = descriptor.portableTextBlocks;\n\t}\n\tif (descriptor.fieldWidgets) {\n\t\tadmin.fieldWidgets = descriptor.fieldWidgets;\n\t}\n\n\treturn {\n\t\tid: pluginId,\n\t\tversion,\n\t\tcapabilities,\n\t\tallowedHosts,\n\t\tstorage,\n\t\thooks: resolvedHooks,\n\t\troutes: resolvedRoutes,\n\t\tmcp: {\n\t\t\ttools: {\n\t\t\t\t// `emdash-plugin build` removes `mcp` from the runtime module and\n\t\t\t\t// ships the tools in the descriptor instead.\n\t\t\t\t...Object.fromEntries(\n\t\t\t\t\t(descriptor.mcp?.tools ?? []).map((tool) => [tool.name, toolFromManifest(tool)]),\n\t\t\t\t),\n\t\t\t\t...Object.fromEntries(\n\t\t\t\t\tObject.entries(definition.mcp?.tools ?? {}).map(([name, tool]) => [\n\t\t\t\t\t\tname,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdescription: tool.description,\n\t\t\t\t\t\t\troute: tool.route,\n\t\t\t\t\t\t\tinput: tool.input,\n\t\t\t\t\t\t\toutput: tool.output,\n\t\t\t\t\t\t\tdestructive: tool.destructive,\n\t\t\t\t\t\t},\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t},\n\t\t},\n\t\tadmin,\n\t};\n}\n\n/**\n * An MCP tool from its serialized manifest form. The schemas are converted\n * on first use: turning JSON Schema back into Zod takes milliseconds per\n * tool, and this adapter runs on every cold start, public requests included.\n */\nfunction toolFromManifest(tool: ManifestMcpTool): PluginMcpToolDefinition {\n\tlet input: z.ZodType | undefined;\n\tlet output: z.ZodType | undefined;\n\treturn {\n\t\tdescription: tool.description,\n\t\troute: tool.route,\n\t\tdestructive: tool.destructive,\n\t\tget input() {\n\t\t\tinput ??= z.fromJSONSchema({ ...tool.inputSchema });\n\t\t\treturn input;\n\t\t},\n\t\tget output() {\n\t\t\tif (!tool.outputSchema) return undefined;\n\t\t\toutput ??= z.fromJSONSchema({ ...tool.outputSchema });\n\t\t\treturn output;\n\t\t},\n\t};\n}\n"],"mappings":"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"}