emdash 1.1.0 → 1.3.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 (1571) hide show
  1. package/dist/action-token-SK8zyN7w.mjs +26 -0
  2. package/dist/action-token-SK8zyN7w.mjs.map +1 -0
  3. package/dist/activation-Dim4YMM7.mjs +387 -0
  4. package/dist/activation-Dim4YMM7.mjs.map +1 -0
  5. package/dist/adapters-F_xorvWv.d.mts +173 -0
  6. package/dist/adapters-F_xorvWv.d.mts.map +1 -0
  7. package/dist/allowed-origins-CEug-p0t.mjs +116 -0
  8. package/dist/allowed-origins-CEug-p0t.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +4 -4
  10. package/dist/api/route-utils.d.mts.map +1 -1
  11. package/dist/api/route-utils.mjs +48 -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 +10 -10
  15. package/dist/api-D-7BNHoz.mjs +5025 -0
  16. package/dist/api-D-7BNHoz.mjs.map +1 -0
  17. package/dist/api-tokens-Bx38ZCQp.mjs +173 -0
  18. package/dist/api-tokens-Bx38ZCQp.mjs.map +1 -0
  19. package/dist/apply-T7ATgzCh.mjs +1702 -0
  20. package/dist/apply-T7ATgzCh.mjs.map +1 -0
  21. package/dist/approvals-D-m6wvGl.mjs +460 -0
  22. package/dist/approvals-D-m6wvGl.mjs.map +1 -0
  23. package/dist/artifact-fetch-DIh7iyOV.mjs +659 -0
  24. package/dist/artifact-fetch-DIh7iyOV.mjs.map +1 -0
  25. package/dist/artifacts-htGyfCSt.mjs +307 -0
  26. package/dist/artifacts-htGyfCSt.mjs.map +1 -0
  27. package/dist/astro/image-endpoint.d.mts.map +1 -1
  28. package/dist/astro/image-endpoint.mjs +26 -6
  29. package/dist/astro/image-endpoint.mjs.map +1 -1
  30. package/dist/astro/index.d.mts +14 -14
  31. package/dist/astro/index.d.mts.map +1 -1
  32. package/dist/astro/index.mjs +324 -23
  33. package/dist/astro/index.mjs.map +1 -1
  34. package/dist/astro/middleware/auth.d.mts +12 -12
  35. package/dist/astro/middleware/auth.d.mts.map +1 -1
  36. package/dist/astro/middleware/auth.mjs +18 -13
  37. package/dist/astro/middleware/auth.mjs.map +1 -1
  38. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  39. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  40. package/dist/astro/middleware/redirect.mjs +81 -46
  41. package/dist/astro/middleware/redirect.mjs.map +1 -1
  42. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  43. package/dist/astro/middleware/request-context.mjs +117 -56
  44. package/dist/astro/middleware/request-context.mjs.map +1 -1
  45. package/dist/astro/middleware/setup.mjs +1 -1
  46. package/dist/astro/middleware.d.mts +12 -12
  47. package/dist/astro/middleware.d.mts.map +1 -1
  48. package/dist/astro/middleware.mjs +145 -415
  49. package/dist/astro/middleware.mjs.map +1 -1
  50. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +14 -14
  51. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +14 -14
  52. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +7 -6
  53. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs.map +1 -1
  54. package/dist/astro/routes/api/admin/api-tokens/index.mjs +8 -7
  55. package/dist/astro/routes/api/admin/api-tokens/index.mjs.map +1 -1
  56. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -6
  57. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +16 -16
  58. package/dist/astro/routes/api/admin/byline-fields/index.mjs +16 -16
  59. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +16 -16
  60. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +22 -21
  61. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  62. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +22 -21
  63. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  64. package/dist/astro/routes/api/admin/bylines/index.mjs +22 -21
  65. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  66. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +18 -18
  67. package/dist/astro/routes/api/admin/comments/_id_.mjs +7 -7
  68. package/dist/astro/routes/api/admin/comments/bulk.mjs +17 -17
  69. package/dist/astro/routes/api/admin/comments/counts.mjs +7 -7
  70. package/dist/astro/routes/api/admin/comments/index.mjs +17 -17
  71. package/dist/astro/routes/api/admin/core-update.mjs +7 -7
  72. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  73. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  74. package/dist/astro/routes/api/admin/media-usage/activation.mjs +20 -20
  75. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +21 -21
  76. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +21 -21
  77. package/dist/astro/routes/api/admin/media-usage/progress.mjs +23 -22
  78. package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
  79. package/dist/astro/routes/api/admin/media-usage/repair.mjs +29 -28
  80. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  81. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +21 -21
  82. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +21 -21
  83. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  84. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  85. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  86. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  87. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +72 -70
  88. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  89. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
  90. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +71 -69
  91. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  92. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +71 -70
  93. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  94. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +80 -79
  95. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/plugins/index.mjs +72 -70
  97. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +7 -7
  99. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -69
  100. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  101. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +79 -78
  102. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  103. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -69
  104. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  105. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +71 -70
  106. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  107. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +81 -80
  108. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  109. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +10 -10
  110. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  111. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +73 -72
  112. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  113. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
  114. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +72 -70
  115. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  116. package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -69
  117. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  118. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +5 -5
  119. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +71 -69
  120. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  121. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +7 -7
  122. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -69
  123. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  124. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
  125. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +38 -37
  126. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
  127. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +38 -37
  128. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
  129. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +40 -39
  130. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
  131. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +40 -39
  132. package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
  133. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +40 -39
  134. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
  135. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +41 -40
  136. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
  137. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +41 -40
  138. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
  139. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +40 -39
  140. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
  141. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +41 -40
  142. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
  143. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +42 -41
  144. package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
  145. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +40 -39
  146. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
  147. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +40 -39
  148. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
  149. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +42 -41
  150. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
  151. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +40 -39
  152. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
  153. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +42 -41
  154. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
  155. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +40 -39
  156. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
  157. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +40 -39
  158. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
  159. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +42 -41
  160. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
  161. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +40 -39
  162. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
  163. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +40 -39
  164. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
  165. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +42 -41
  166. package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
  167. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +4 -4
  168. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  169. package/dist/astro/routes/api/admin/users/_id_/index.mjs +14 -14
  170. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
  171. package/dist/astro/routes/api/admin/users/index.mjs +14 -14
  172. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  173. package/dist/astro/routes/api/auth/handover.d.mts +8 -0
  174. package/dist/astro/routes/api/auth/handover.d.mts.map +1 -0
  175. package/dist/astro/routes/api/auth/handover.mjs +49 -0
  176. package/dist/astro/routes/api/auth/handover.mjs.map +1 -0
  177. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  178. package/dist/astro/routes/api/auth/invite/complete.mjs +19 -19
  179. package/dist/astro/routes/api/auth/invite/index.mjs +16 -16
  180. package/dist/astro/routes/api/auth/invite/register-options.mjs +17 -17
  181. package/dist/astro/routes/api/auth/logout.mjs +5 -5
  182. package/dist/astro/routes/api/auth/magic-link/send.mjs +19 -18
  183. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  184. package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -1
  185. package/dist/astro/routes/api/auth/magic-link/verify.mjs +23 -17
  186. package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -1
  187. package/dist/astro/routes/api/auth/me.mjs +15 -15
  188. package/dist/astro/routes/api/auth/mode.mjs +5 -5
  189. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +8 -8
  190. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  191. package/dist/astro/routes/api/auth/passkey/_id_.mjs +14 -14
  192. package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
  193. package/dist/astro/routes/api/auth/passkey/options.d.mts.map +1 -1
  194. package/dist/astro/routes/api/auth/passkey/options.mjs +27 -20
  195. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  196. package/dist/astro/routes/api/auth/passkey/register/options.mjs +17 -17
  197. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +18 -18
  198. package/dist/astro/routes/api/auth/passkey/verify.mjs +19 -19
  199. package/dist/astro/routes/api/auth/signup/complete.mjs +19 -19
  200. package/dist/astro/routes/api/auth/signup/request.mjs +18 -17
  201. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  202. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  203. package/dist/astro/routes/api/calendar.mjs +15 -15
  204. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +12 -12
  205. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +18 -18
  206. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  207. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts.map +1 -1
  208. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +18 -17
  209. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  210. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +7 -10
  211. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs.map +1 -1
  212. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +20 -17
  213. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
  214. package/dist/astro/routes/api/content/_collection_/_id_/permanent.d.mts.map +1 -1
  215. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +7 -6
  216. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs.map +1 -1
  217. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +11 -11
  218. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +30 -29
  219. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  220. package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts.map +1 -1
  221. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +18 -17
  222. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  223. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +35 -34
  224. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  225. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +35 -34
  226. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  227. package/dist/astro/routes/api/content/_collection_/_id_/restore.d.mts.map +1 -1
  228. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +7 -6
  229. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs.map +1 -1
  230. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  231. package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts.map +1 -1
  232. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +19 -18
  233. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  234. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -1
  235. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +31 -26
  236. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  237. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +5 -5
  238. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts.map +1 -1
  239. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +18 -17
  240. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  241. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  242. package/dist/astro/routes/api/content/_collection_/_id_.mjs +27 -20
  243. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  244. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  245. package/dist/astro/routes/api/content/_collection_/index.mjs +18 -21
  246. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  247. package/dist/astro/routes/api/content/_collection_/trash.mjs +15 -15
  248. package/dist/astro/routes/api/dashboard.d.mts.map +1 -1
  249. package/dist/astro/routes/api/dashboard.mjs +18 -12
  250. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  251. package/dist/astro/routes/api/dev/emails.mjs +5 -5
  252. package/dist/astro/routes/api/dev/scheduled-tasks.d.mts +12 -0
  253. package/dist/astro/routes/api/dev/scheduled-tasks.d.mts.map +1 -0
  254. package/dist/astro/routes/api/dev/scheduled-tasks.mjs +140 -0
  255. package/dist/astro/routes/api/dev/scheduled-tasks.mjs.map +1 -0
  256. package/dist/astro/routes/api/health.mjs +6 -6
  257. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  258. package/dist/astro/routes/api/import/probe.mjs +25 -23
  259. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  260. package/dist/astro/routes/api/import/wordpress/analyze.d.mts.map +1 -1
  261. package/dist/astro/routes/api/import/wordpress/analyze.mjs +7 -20
  262. package/dist/astro/routes/api/import/wordpress/analyze.mjs.map +1 -1
  263. package/dist/astro/routes/api/import/wordpress/execute.d.mts +15 -14
  264. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  265. package/dist/astro/routes/api/import/wordpress/execute.mjs +36 -30
  266. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  267. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  268. package/dist/astro/routes/api/import/wordpress/media.mjs +17 -17
  269. package/dist/astro/routes/api/import/wordpress/prepare.mjs +19 -17
  270. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  271. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts +8 -0
  272. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts.map +1 -1
  273. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs +67 -31
  274. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs.map +1 -1
  275. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  276. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +27 -26
  277. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  278. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  279. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +26 -23
  280. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  281. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  282. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -1
  283. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +63 -35
  284. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  285. package/dist/astro/routes/api/manifest.mjs +9 -6
  286. package/dist/astro/routes/api/manifest.mjs.map +1 -1
  287. package/dist/astro/routes/api/mcp.mjs +135 -101
  288. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  289. package/dist/astro/routes/api/media/_id_/confirm.d.mts.map +1 -1
  290. package/dist/astro/routes/api/media/_id_/confirm.mjs +34 -18
  291. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  292. package/dist/astro/routes/api/media/_id_/replace.mjs +15 -15
  293. package/dist/astro/routes/api/media/_id_/upload.mjs +8 -8
  294. package/dist/astro/routes/api/media/_id_/usage.mjs +31 -30
  295. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  296. package/dist/astro/routes/api/media/_id_.mjs +29 -28
  297. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  298. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
  299. package/dist/astro/routes/api/media/file/_...key_.d.mts.map +1 -1
  300. package/dist/astro/routes/api/media/file/_...key_.mjs +45 -15
  301. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  302. package/dist/astro/routes/api/media/folders/_id_.mjs +16 -16
  303. package/dist/astro/routes/api/media/folders/index.mjs +16 -16
  304. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
  305. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
  306. package/dist/astro/routes/api/media/providers/index.mjs +5 -5
  307. package/dist/astro/routes/api/media/upload-url.mjs +40 -20
  308. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  309. package/dist/astro/routes/api/media.d.mts.map +1 -1
  310. package/dist/astro/routes/api/media.mjs +40 -29
  311. package/dist/astro/routes/api/media.mjs.map +1 -1
  312. package/dist/astro/routes/api/menus/_name_/items/_id_.d.mts.map +1 -1
  313. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +19 -18
  314. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  315. package/dist/astro/routes/api/menus/_name_/items.d.mts.map +1 -1
  316. package/dist/astro/routes/api/menus/_name_/items.mjs +18 -17
  317. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  318. package/dist/astro/routes/api/menus/_name_/reorder.d.mts.map +1 -1
  319. package/dist/astro/routes/api/menus/_name_/reorder.mjs +18 -17
  320. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  321. package/dist/astro/routes/api/menus/_name_/translations.d.mts.map +1 -1
  322. package/dist/astro/routes/api/menus/_name_/translations.mjs +18 -17
  323. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  324. package/dist/astro/routes/api/menus/_name_.d.mts.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.d.mts.map +1 -1
  328. package/dist/astro/routes/api/menus/index.mjs +18 -17
  329. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  330. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  331. package/dist/astro/routes/api/oauth/device/authorize.mjs +8 -8
  332. package/dist/astro/routes/api/oauth/device/code.mjs +12 -11
  333. package/dist/astro/routes/api/oauth/device/code.mjs.map +1 -1
  334. package/dist/astro/routes/api/oauth/device/token.mjs +11 -10
  335. package/dist/astro/routes/api/oauth/device/token.mjs.map +1 -1
  336. package/dist/astro/routes/api/oauth/register.mjs +8 -7
  337. package/dist/astro/routes/api/oauth/register.mjs.map +1 -1
  338. package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
  339. package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
  340. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  341. package/dist/astro/routes/api/openapi.json.mjs +22 -22
  342. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  343. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +11 -11
  344. package/dist/astro/routes/api/redirects/404s/index.mjs +19 -19
  345. package/dist/astro/routes/api/redirects/404s/summary.mjs +19 -19
  346. package/dist/astro/routes/api/redirects/_id_.d.mts.map +1 -1
  347. package/dist/astro/routes/api/redirects/_id_.mjs +32 -23
  348. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  349. package/dist/astro/routes/api/redirects/index.d.mts.map +1 -1
  350. package/dist/astro/routes/api/redirects/index.mjs +24 -21
  351. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  352. package/dist/astro/routes/api/relations/_id_/index.mjs +35 -34
  353. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  354. package/dist/astro/routes/api/relations/index.mjs +35 -34
  355. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  356. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
  357. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +16 -16
  358. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +71 -69
  359. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  360. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +71 -69
  361. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  362. package/dist/astro/routes/api/schema/block-types/index.mjs +71 -69
  363. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  364. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +71 -69
  365. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  366. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +71 -69
  367. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  368. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +71 -69
  369. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  370. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +71 -69
  371. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  372. package/dist/astro/routes/api/schema/collections/index.mjs +71 -69
  373. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  374. package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -69
  375. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  376. package/dist/astro/routes/api/schema/index.mjs +17 -16
  377. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  378. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -69
  379. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  380. package/dist/astro/routes/api/schema/orphans/index.mjs +71 -69
  381. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  382. package/dist/astro/routes/api/search/enable.mjs +19 -18
  383. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  384. package/dist/astro/routes/api/search/index.mjs +18 -17
  385. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  386. package/dist/astro/routes/api/search/rebuild.mjs +19 -18
  387. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  388. package/dist/astro/routes/api/search/stats.mjs +9 -8
  389. package/dist/astro/routes/api/search/stats.mjs.map +1 -1
  390. package/dist/astro/routes/api/search/suggest.mjs +18 -17
  391. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  392. package/dist/astro/routes/api/sections/_slug_.mjs +18 -17
  393. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  394. package/dist/astro/routes/api/sections/index.mjs +18 -17
  395. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  396. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  397. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  398. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  399. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  400. package/dist/astro/routes/api/settings/domain-notify.d.mts +8 -0
  401. package/dist/astro/routes/api/settings/domain-notify.d.mts.map +1 -0
  402. package/dist/astro/routes/api/settings/domain-notify.mjs +125 -0
  403. package/dist/astro/routes/api/settings/domain-notify.mjs.map +1 -0
  404. package/dist/astro/routes/api/settings/domain.d.mts +9 -0
  405. package/dist/astro/routes/api/settings/domain.d.mts.map +1 -0
  406. package/dist/astro/routes/api/settings/domain.mjs +64 -0
  407. package/dist/astro/routes/api/settings/domain.mjs.map +1 -0
  408. package/dist/astro/routes/api/settings/email.mjs +6 -6
  409. package/dist/astro/routes/api/settings.d.mts.map +1 -1
  410. package/dist/astro/routes/api/settings.mjs +23 -20
  411. package/dist/astro/routes/api/settings.mjs.map +1 -1
  412. package/dist/astro/routes/api/setup/admin-verify.d.mts.map +1 -1
  413. package/dist/astro/routes/api/setup/admin-verify.mjs +25 -21
  414. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  415. package/dist/astro/routes/api/setup/admin.mjs +18 -18
  416. package/dist/astro/routes/api/setup/dev-bypass.mjs +43 -41
  417. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  418. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  419. package/dist/astro/routes/api/setup/index.d.mts.map +1 -1
  420. package/dist/astro/routes/api/setup/index.mjs +53 -47
  421. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  422. package/dist/astro/routes/api/setup/status.mjs +6 -6
  423. package/dist/astro/routes/api/site/domain-proof.d.mts +8 -0
  424. package/dist/astro/routes/api/site/domain-proof.d.mts.map +1 -0
  425. package/dist/astro/routes/api/site/domain-proof.mjs +35 -0
  426. package/dist/astro/routes/api/site/domain-proof.mjs.map +1 -0
  427. package/dist/astro/routes/api/snapshot.mjs +8 -8
  428. package/dist/astro/routes/api/taxonomies/_name_/reorder.d.mts.map +1 -1
  429. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +24 -22
  430. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  431. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.d.mts.map +1 -1
  432. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +24 -22
  433. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  434. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.d.mts.map +1 -1
  435. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -23
  436. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  437. package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts.map +1 -1
  438. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +24 -22
  439. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  440. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +22 -21
  441. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  442. package/dist/astro/routes/api/taxonomies/_name_.d.mts.map +1 -1
  443. package/dist/astro/routes/api/taxonomies/_name_.mjs +25 -23
  444. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  445. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +35 -34
  446. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
  447. package/dist/astro/routes/api/taxonomies/index.d.mts.map +1 -1
  448. package/dist/astro/routes/api/taxonomies/index.mjs +24 -22
  449. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  450. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  451. package/dist/astro/routes/api/typegen.mjs +6 -6
  452. package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
  453. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +18 -18
  454. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
  455. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  456. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  457. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  458. package/dist/astro/routes/api/widget-areas/_name_/reorder.d.mts.map +1 -1
  459. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +17 -16
  460. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  461. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts.map +1 -1
  462. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +21 -19
  463. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  464. package/dist/astro/routes/api/widget-areas/_name_/widgets.d.mts.map +1 -1
  465. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +20 -18
  466. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  467. package/dist/astro/routes/api/widget-areas/_name_.d.mts.map +1 -1
  468. package/dist/astro/routes/api/widget-areas/_name_.mjs +10 -8
  469. package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
  470. package/dist/astro/routes/api/widget-areas/index.d.mts.map +1 -1
  471. package/dist/astro/routes/api/widget-areas/index.mjs +20 -18
  472. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  473. package/dist/astro/routes/api/widget-components.mjs +5 -5
  474. package/dist/astro/routes/robots.txt.d.mts.map +1 -1
  475. package/dist/astro/routes/robots.txt.mjs +38 -5
  476. package/dist/astro/routes/robots.txt.mjs.map +1 -1
  477. package/dist/astro/routes/sitemap-_collection_.xml.d.mts.map +1 -1
  478. package/dist/astro/routes/sitemap-_collection_.xml.mjs +33 -11
  479. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  480. package/dist/astro/routes/sitemap.xml.d.mts.map +1 -1
  481. package/dist/astro/routes/sitemap.xml.mjs +17 -11
  482. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  483. package/dist/astro/types.d.mts +32 -18
  484. package/dist/astro/types.d.mts.map +1 -1
  485. package/dist/audit-_gieLVGU.mjs +127 -0
  486. package/dist/audit-_gieLVGU.mjs.map +1 -0
  487. package/dist/auth/providers/github.d.mts +1 -1
  488. package/dist/auth/providers/google.d.mts +1 -1
  489. package/dist/auth/providers/microsoft.d.mts +1 -1
  490. package/dist/authoritative-records-CQlB3JzE.mjs +5183 -0
  491. package/dist/authoritative-records-CQlB3JzE.mjs.map +1 -0
  492. package/dist/authorize-DPFBGbE6.mjs +74 -0
  493. package/dist/authorize-DPFBGbE6.mjs.map +1 -0
  494. package/dist/backup-3FgVxiDJ.mjs +246 -0
  495. package/dist/backup-3FgVxiDJ.mjs.map +1 -0
  496. package/dist/block-types-CYcG56JB.mjs +132 -0
  497. package/dist/block-types-CYcG56JB.mjs.map +1 -0
  498. package/dist/block-values-gCX4HBSl.mjs +215 -0
  499. package/dist/block-values-gCX4HBSl.mjs.map +1 -0
  500. package/dist/byline-BR1qhyiw.mjs +909 -0
  501. package/dist/byline-BR1qhyiw.mjs.map +1 -0
  502. package/dist/byline-fields-4ClDC88c.mjs +123 -0
  503. package/dist/byline-fields-4ClDC88c.mjs.map +1 -0
  504. package/dist/byline-fields-BLXZnX7N.mjs +280 -0
  505. package/dist/byline-fields-BLXZnX7N.mjs.map +1 -0
  506. package/dist/bylines-CVOvRUL7.mjs +234 -0
  507. package/dist/bylines-CVOvRUL7.mjs.map +1 -0
  508. package/dist/bylines-DxOs9B7z.mjs +150 -0
  509. package/dist/bylines-DxOs9B7z.mjs.map +1 -0
  510. package/dist/cache-CEU9wo_h.mjs +151 -0
  511. package/dist/cache-CEU9wo_h.mjs.map +1 -0
  512. package/dist/canonical-BudtH-Fx.mjs +174 -0
  513. package/dist/canonical-BudtH-Fx.mjs.map +1 -0
  514. package/dist/capture-triggers-CT6dK9zd.mjs +362 -0
  515. package/dist/capture-triggers-CT6dK9zd.mjs.map +1 -0
  516. package/dist/challenge-store-C17BYx2-.mjs +51 -0
  517. package/dist/challenge-store-C17BYx2-.mjs.map +1 -0
  518. package/dist/checksum-CEqvfxGX.mjs +162 -0
  519. package/dist/checksum-CEqvfxGX.mjs.map +1 -0
  520. package/dist/chunks-xC4UD5-S.mjs +25 -0
  521. package/dist/chunks-xC4UD5-S.mjs.map +1 -0
  522. package/dist/cli/index.mjs +134 -118
  523. package/dist/cli/index.mjs.map +1 -1
  524. package/dist/client/cf-access.d.mts +1 -1
  525. package/dist/client/index.d.mts +122 -122
  526. package/dist/client/index.d.mts.map +1 -1
  527. package/dist/client/index.mjs +12 -10
  528. package/dist/client/index.mjs.map +1 -1
  529. package/dist/collection-slugs-cache-e09QeJQt.mjs +85 -0
  530. package/dist/collection-slugs-cache-e09QeJQt.mjs.map +1 -0
  531. package/dist/comment-UvIWDKcW.mjs +325 -0
  532. package/dist/comment-UvIWDKcW.mjs.map +1 -0
  533. package/dist/comment-reaction-dGp6_FRo.mjs +85 -0
  534. package/dist/comment-reaction-dGp6_FRo.mjs.map +1 -0
  535. package/dist/comments-pej-_BUO.mjs +195 -0
  536. package/dist/comments-pej-_BUO.mjs.map +1 -0
  537. package/dist/comments-yiRFx3w5.mjs +99 -0
  538. package/dist/comments-yiRFx3w5.mjs.map +1 -0
  539. package/dist/components-Brp__9xo.mjs +112 -0
  540. package/dist/components-Brp__9xo.mjs.map +1 -0
  541. package/dist/config-Bsm_u_oE.d.mts +6799 -0
  542. package/dist/config-Bsm_u_oE.d.mts.map +1 -0
  543. package/dist/config-CFMojMFK.d.mts +39 -0
  544. package/dist/config-CFMojMFK.d.mts.map +1 -0
  545. package/dist/config-DBU6iUQB.mjs +228 -0
  546. package/dist/config-DBU6iUQB.mjs.map +1 -0
  547. package/dist/connection-BtEN_lP9.mjs +36 -0
  548. package/dist/connection-BtEN_lP9.mjs.map +1 -0
  549. package/dist/content-DQSRZTVw.mjs +2075 -0
  550. package/dist/content-DQSRZTVw.mjs.map +1 -0
  551. package/dist/content-list-query-CYKcY6Vi.d.mts +26 -0
  552. package/dist/content-list-query-CYKcY6Vi.d.mts.map +1 -0
  553. package/dist/content-repair-DNh5--x5.mjs +442 -0
  554. package/dist/content-repair-DNh5--x5.mjs.map +1 -0
  555. package/dist/context-BYptmCN0.mjs +2090 -0
  556. package/dist/context-BYptmCN0.mjs.map +1 -0
  557. package/dist/credits-B9iORdWB.mjs +110 -0
  558. package/dist/credits-B9iORdWB.mjs.map +1 -0
  559. package/dist/cron-D7obTIfk.mjs +306 -0
  560. package/dist/cron-D7obTIfk.mjs.map +1 -0
  561. package/dist/dashboard-D0jcgBD7.mjs +167 -0
  562. package/dist/dashboard-D0jcgBD7.mjs.map +1 -0
  563. package/dist/database/migration-lock.d.mts +17 -4
  564. package/dist/database/migration-lock.d.mts.map +1 -1
  565. package/dist/database/migration-lock.mjs +32 -5
  566. package/dist/database/migration-lock.mjs.map +1 -1
  567. package/dist/db/index.d.mts +3 -3
  568. package/dist/db/index.mjs +1 -1
  569. package/dist/db/libsql-migrations.d.mts +1 -1
  570. package/dist/db/libsql-migrations.mjs +4 -4
  571. package/dist/db/libsql.d.mts +1 -1
  572. package/dist/db/postgres-migrations.d.mts +1 -1
  573. package/dist/db/postgres-migrations.mjs +4 -4
  574. package/dist/db/postgres.d.mts +1 -1
  575. package/dist/db/sqlite-migrations.d.mts +1 -1
  576. package/dist/db/sqlite-migrations.mjs +4 -4
  577. package/dist/db/sqlite.d.mts +1 -1
  578. package/dist/db/sqlite.mjs +1 -1
  579. package/dist/default-C0W-PhAp.mjs +81 -0
  580. package/dist/default-C0W-PhAp.mjs.map +1 -0
  581. package/dist/deferred-tasks-ZvUECSzI.d.mts +9 -0
  582. package/dist/deferred-tasks-ZvUECSzI.d.mts.map +1 -0
  583. package/dist/dev-typegen-EBni_pOQ.mjs +29 -0
  584. package/dist/dev-typegen-EBni_pOQ.mjs.map +1 -0
  585. package/dist/device-flow-BkFKBoAn.mjs +521 -0
  586. package/dist/device-flow-BkFKBoAn.mjs.map +1 -0
  587. package/dist/digest-DJ1tHCgy.mjs +194 -0
  588. package/dist/digest-DJ1tHCgy.mjs.map +1 -0
  589. package/dist/direct-executor-Cbxzg4qe.mjs +117 -0
  590. package/dist/direct-executor-Cbxzg4qe.mjs.map +1 -0
  591. package/dist/email-console-FFVJWb9N.mjs +50 -0
  592. package/dist/email-console-FFVJWb9N.mjs.map +1 -0
  593. package/dist/email-locale-BJ8DjTzZ.mjs +25 -0
  594. package/dist/email-locale-BJ8DjTzZ.mjs.map +1 -0
  595. package/dist/emdash-runtime-DVi7vtXC.mjs +4379 -0
  596. package/dist/emdash-runtime-DVi7vtXC.mjs.map +1 -0
  597. package/dist/entry-lock-C7VX0NGK.d.mts +4568 -0
  598. package/dist/entry-lock-C7VX0NGK.d.mts.map +1 -0
  599. package/dist/entry-lock-DLxCffFW.mjs +163 -0
  600. package/dist/entry-lock-DLxCffFW.mjs.map +1 -0
  601. package/dist/entry-lock-Df6-XhIu.mjs +1211 -0
  602. package/dist/entry-lock-Df6-XhIu.mjs.map +1 -0
  603. package/dist/env-types-C3FCVBWe.mjs +38 -0
  604. package/dist/env-types-C3FCVBWe.mjs.map +1 -0
  605. package/dist/error-CVWeIOku.mjs +90 -0
  606. package/dist/error-CVWeIOku.mjs.map +1 -0
  607. package/dist/errors-B4f4It-2.mjs +120 -0
  608. package/dist/errors-B4f4It-2.mjs.map +1 -0
  609. package/dist/errors-BOYNdIo3.mjs +479 -0
  610. package/dist/errors-BOYNdIo3.mjs.map +1 -0
  611. package/dist/escape-lsNq38PP.mjs +9 -0
  612. package/dist/escape-lsNq38PP.mjs.map +1 -0
  613. package/dist/fence-C3MUitUN.mjs +162 -0
  614. package/dist/fence-C3MUitUN.mjs.map +1 -0
  615. package/dist/field-defs-cache-Dez5iWJJ.mjs +77 -0
  616. package/dist/field-defs-cache-Dez5iWJJ.mjs.map +1 -0
  617. package/dist/field-map-Bft9LKak.mjs +83 -0
  618. package/dist/field-map-Bft9LKak.mjs.map +1 -0
  619. package/dist/fts-manager-Beg3e4bI.mjs +443 -0
  620. package/dist/fts-manager-Beg3e4bI.mjs.map +1 -0
  621. package/dist/gc-ByyAYiYE.mjs +75 -0
  622. package/dist/gc-ByyAYiYE.mjs.map +1 -0
  623. package/dist/hash-BJaeek87.mjs +37 -0
  624. package/dist/hash-BJaeek87.mjs.map +1 -0
  625. package/dist/hook-result-BrdLyOdI.d.mts +31 -0
  626. package/dist/hook-result-BrdLyOdI.d.mts.map +1 -0
  627. package/dist/hreflang-C8Jb-hrf.mjs +105 -0
  628. package/dist/hreflang-C8Jb-hrf.mjs.map +1 -0
  629. package/dist/hreflang-CY_F5OjF.d.mts +50 -0
  630. package/dist/hreflang-CY_F5OjF.d.mts.map +1 -0
  631. package/dist/http-route-dispatch-CyeW6iPv.mjs +342 -0
  632. package/dist/http-route-dispatch-CyeW6iPv.mjs.map +1 -0
  633. package/dist/identity-Cael5uTT.mjs +35 -0
  634. package/dist/identity-Cael5uTT.mjs.map +1 -0
  635. package/dist/import-BUXjdZUn.mjs +2126 -0
  636. package/dist/import-BUXjdZUn.mjs.map +1 -0
  637. package/dist/index-BB9sVisO.d.mts +623 -0
  638. package/dist/index-BB9sVisO.d.mts.map +1 -0
  639. package/dist/index.d.mts +24 -24
  640. package/dist/index.mjs +97 -95
  641. package/dist/install-finalization-3JX5qQEA.mjs +58 -0
  642. package/dist/install-finalization-3JX5qQEA.mjs.map +1 -0
  643. package/dist/json-recordset-BUjxhr77.mjs +12 -0
  644. package/dist/json-recordset-BUjxhr77.mjs.map +1 -0
  645. package/dist/json-schema-v_D_pPNG.mjs +15 -0
  646. package/dist/json-schema-v_D_pPNG.mjs.map +1 -0
  647. package/dist/keys-CifIkT0N.mjs +61 -0
  648. package/dist/keys-CifIkT0N.mjs.map +1 -0
  649. package/dist/kinds-B_Qcl5pz.mjs +974 -0
  650. package/dist/kinds-B_Qcl5pz.mjs.map +1 -0
  651. package/dist/lifecycle-7vUJeFRe.mjs +25 -0
  652. package/dist/lifecycle-7vUJeFRe.mjs.map +1 -0
  653. package/dist/load-CdAG9wz-.mjs +28 -0
  654. package/dist/load-CdAG9wz-.mjs.map +1 -0
  655. package/dist/loader-CswroUbe.mjs +1380 -0
  656. package/dist/loader-CswroUbe.mjs.map +1 -0
  657. package/dist/loops-uA4iTOzd.mjs +205 -0
  658. package/dist/loops-uA4iTOzd.mjs.map +1 -0
  659. package/dist/manifest-builder-B8zjuH3f.mjs +189 -0
  660. package/dist/manifest-builder-B8zjuH3f.mjs.map +1 -0
  661. package/dist/manifest-schema-DNb4XmTS.mjs +497 -0
  662. package/dist/manifest-schema-DNb4XmTS.mjs.map +1 -0
  663. package/dist/marketplace-CqbgeIa7.mjs +257 -0
  664. package/dist/marketplace-CqbgeIa7.mjs.map +1 -0
  665. package/dist/media/image-endpoint.d.mts +26 -2
  666. package/dist/media/image-endpoint.d.mts.map +1 -1
  667. package/dist/media/image-endpoint.mjs +73 -3
  668. package/dist/media/image-endpoint.mjs.map +1 -1
  669. package/dist/media/index.d.mts +1 -1
  670. package/dist/media/local-runtime.d.mts +14 -14
  671. package/dist/media/local-runtime.mjs +10 -5
  672. package/dist/media/local-runtime.mjs.map +1 -1
  673. package/dist/media--dJRU6i2.mjs +294 -0
  674. package/dist/media--dJRU6i2.mjs.map +1 -0
  675. package/dist/media-1WC65OCB.mjs +416 -0
  676. package/dist/media-1WC65OCB.mjs.map +1 -0
  677. package/dist/media-Bws9f18T.mjs +373 -0
  678. package/dist/media-Bws9f18T.mjs.map +1 -0
  679. package/dist/media-allowlist-BJB7MFx6.mjs +45 -0
  680. package/dist/media-allowlist-BJB7MFx6.mjs.map +1 -0
  681. package/dist/media-folders-Dn3C16B8.mjs +210 -0
  682. package/dist/media-folders-Dn3C16B8.mjs.map +1 -0
  683. package/dist/media-url-BQgKvpQ5.mjs +43 -0
  684. package/dist/media-url-BQgKvpQ5.mjs.map +1 -0
  685. package/dist/media-usage-CF0WVcLO.mjs +282 -0
  686. package/dist/media-usage-CF0WVcLO.mjs.map +1 -0
  687. package/dist/media-usage-activation-C9HwVw5w.mjs +78 -0
  688. package/dist/media-usage-activation-C9HwVw5w.mjs.map +1 -0
  689. package/dist/media-usage-work-CkLa5-nc.mjs +1036 -0
  690. package/dist/media-usage-work-CkLa5-nc.mjs.map +1 -0
  691. package/dist/media-usage-work-m3AWTmmC.mjs +151 -0
  692. package/dist/media-usage-work-m3AWTmmC.mjs.map +1 -0
  693. package/dist/menus-BCVSSp1z.mjs +753 -0
  694. package/dist/menus-BCVSSp1z.mjs.map +1 -0
  695. package/dist/menus-BSzwObhV.mjs +92 -0
  696. package/dist/menus-BSzwObhV.mjs.map +1 -0
  697. package/dist/menus-Cl4kwdt7.mjs +3721 -0
  698. package/dist/menus-Cl4kwdt7.mjs.map +1 -0
  699. package/dist/migrations/index.d.mts +1 -1
  700. package/dist/migrations/index.d.mts.map +1 -1
  701. package/dist/migrations/index.mjs +3 -3
  702. package/dist/mode-C-D3qICy.mjs +23 -0
  703. package/dist/mode-C-D3qICy.mjs.map +1 -0
  704. package/dist/node-sqlite-compat-CrKzRr0J.mjs +63 -0
  705. package/dist/node-sqlite-compat-CrKzRr0J.mjs.map +1 -0
  706. package/dist/oauth-authorization-TpEJrYB7.mjs +274 -0
  707. package/dist/oauth-authorization-TpEJrYB7.mjs.map +1 -0
  708. package/dist/oauth-clients-BT0Pg-MO.mjs +266 -0
  709. package/dist/oauth-clients-BT0Pg-MO.mjs.map +1 -0
  710. package/dist/oauth-state-store-CHMn_mwc.mjs +50 -0
  711. package/dist/oauth-state-store-CHMn_mwc.mjs.map +1 -0
  712. package/dist/oauth-user-lookup-BDgF6IVG.mjs +26 -0
  713. package/dist/oauth-user-lookup-BDgF6IVG.mjs.map +1 -0
  714. package/dist/object-cache/memory.d.mts +1 -1
  715. package/dist/options-DJWaq3Ie.d.mts +81 -0
  716. package/dist/options-DJWaq3Ie.d.mts.map +1 -0
  717. package/dist/ownership-MiyA7qKO.mjs +12 -0
  718. package/dist/ownership-MiyA7qKO.mjs.map +1 -0
  719. package/dist/page/index.d.mts +2 -2
  720. package/dist/page/index.mjs +9 -4
  721. package/dist/page/index.mjs.map +1 -1
  722. package/dist/parse-CWHOFc6z.d.mts +176 -0
  723. package/dist/parse-CWHOFc6z.d.mts.map +1 -0
  724. package/dist/parse-DgQ2NABT.mjs +81 -0
  725. package/dist/parse-DgQ2NABT.mjs.map +1 -0
  726. package/dist/passkey-config-D0kdzEao.mjs +46 -0
  727. package/dist/passkey-config-D0kdzEao.mjs.map +1 -0
  728. package/dist/paths-biDzFTY2.mjs +77 -0
  729. package/dist/paths-biDzFTY2.mjs.map +1 -0
  730. package/dist/patterns-CMNnYCgf.mjs +159 -0
  731. package/dist/patterns-CMNnYCgf.mjs.map +1 -0
  732. package/dist/placeholder-D41vk11_.d.mts +306 -0
  733. package/dist/placeholder-D41vk11_.d.mts.map +1 -0
  734. package/dist/plan-CCoqxNoU.mjs +135 -0
  735. package/dist/plan-CCoqxNoU.mjs.map +1 -0
  736. package/dist/plugin-test-runtime.d.mts +14 -14
  737. package/dist/plugin-test-runtime.d.mts.map +1 -1
  738. package/dist/plugin-test-runtime.mjs +110 -108
  739. package/dist/plugin-tool-name-DDUgN_0p.mjs +27 -0
  740. package/dist/plugin-tool-name-DDUgN_0p.mjs.map +1 -0
  741. package/dist/plugin-types.d.mts +2 -2
  742. package/dist/plugin-utils.d.mts +12 -12
  743. package/dist/plugin-utils.mjs +1 -1
  744. package/dist/plugin-utils.mjs.map +1 -1
  745. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  746. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  747. package/dist/plugins/adapt-sandbox-entry.mjs +9 -8
  748. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  749. package/dist/plugins/host.d.mts +5 -5
  750. package/dist/plugins/host.mjs +46 -42
  751. package/dist/plugins-COJ2L49n.mjs +261 -0
  752. package/dist/plugins-COJ2L49n.mjs.map +1 -0
  753. package/dist/policy-DLQ--Hnm.mjs +45 -0
  754. package/dist/policy-DLQ--Hnm.mjs.map +1 -0
  755. package/dist/portable-text-BH4zgkSm.mjs +311 -0
  756. package/dist/portable-text-BH4zgkSm.mjs.map +1 -0
  757. package/dist/preview-DLexxwp3.mjs +107 -0
  758. package/dist/preview-DLexxwp3.mjs.map +1 -0
  759. package/dist/protocol-79kUO7jP.d.mts +65 -0
  760. package/dist/protocol-79kUO7jP.d.mts.map +1 -0
  761. package/dist/public-plugin-api-routes-BuAMJ8nN.mjs +316 -0
  762. package/dist/public-plugin-api-routes-BuAMJ8nN.mjs.map +1 -0
  763. package/dist/public-submission-Di3TsgzX.mjs +251 -0
  764. package/dist/public-submission-Di3TsgzX.mjs.map +1 -0
  765. package/dist/public-url-Bt98vysr.mjs +101 -0
  766. package/dist/public-url-Bt98vysr.mjs.map +1 -0
  767. package/dist/query-CpnRlBh8.mjs +1156 -0
  768. package/dist/query-CpnRlBh8.mjs.map +1 -0
  769. package/dist/query-haKvLAWl.mjs +41 -0
  770. package/dist/query-haKvLAWl.mjs.map +1 -0
  771. package/dist/range-CYfeXgGK.mjs +51 -0
  772. package/dist/range-CYfeXgGK.mjs.map +1 -0
  773. package/dist/rate-limit-Xp4d0NBY.mjs +127 -0
  774. package/dist/rate-limit-Xp4d0NBY.mjs.map +1 -0
  775. package/dist/receipt-BUsQCOeM.mjs +43 -0
  776. package/dist/receipt-BUsQCOeM.mjs.map +1 -0
  777. package/dist/redirect-CQAV7mCo.mjs +19 -0
  778. package/dist/redirect-CQAV7mCo.mjs.map +1 -0
  779. package/dist/redirect-DiS_3mA4.mjs +423 -0
  780. package/dist/redirect-DiS_3mA4.mjs.map +1 -0
  781. package/dist/redirect-paths-CNYq7w80.mjs +36 -0
  782. package/dist/redirect-paths-CNYq7w80.mjs.map +1 -0
  783. package/dist/redirects-BEVSRMa2.mjs +148 -0
  784. package/dist/redirects-BEVSRMa2.mjs.map +1 -0
  785. package/dist/redirects-BHpy-VsZ.mjs +446 -0
  786. package/dist/redirects-BHpy-VsZ.mjs.map +1 -0
  787. package/dist/registry/testing.mjs +3 -3
  788. package/dist/registry-TUVaid9Z.mjs +8369 -0
  789. package/dist/registry-TUVaid9Z.mjs.map +1 -0
  790. package/dist/relations-CA_QuMTU.mjs +776 -0
  791. package/dist/relations-CA_QuMTU.mjs.map +1 -0
  792. package/dist/request-context.d.mts +1 -1
  793. package/dist/request-meta-bwZ_NsvU.mjs +141 -0
  794. package/dist/request-meta-bwZ_NsvU.mjs.map +1 -0
  795. package/dist/resolve-DwNM-CXl.mjs +101 -0
  796. package/dist/resolve-DwNM-CXl.mjs.map +1 -0
  797. package/dist/revision-BVp8S0e_.mjs +374 -0
  798. package/dist/revision-BVp8S0e_.mjs.map +1 -0
  799. package/dist/route-cache-QSOyDEw0.mjs +20 -0
  800. package/dist/route-cache-QSOyDEw0.mjs.map +1 -0
  801. package/dist/route-wire-Ca_HWCZ5.mjs +197 -0
  802. package/dist/route-wire-Ca_HWCZ5.mjs.map +1 -0
  803. package/dist/routes-BerZFrvV.mjs +272 -0
  804. package/dist/routes-BerZFrvV.mjs.map +1 -0
  805. package/dist/runner-BObHz5FC.d.mts +68 -0
  806. package/dist/runner-BObHz5FC.d.mts.map +1 -0
  807. package/dist/runner-C5NeAkBQ.mjs +6595 -0
  808. package/dist/runner-C5NeAkBQ.mjs.map +1 -0
  809. package/dist/runtime.d.mts +13 -13
  810. package/dist/runtime.mjs +3 -2
  811. package/dist/runtime.mjs.map +1 -1
  812. package/dist/schema/project-env-types.mjs +40 -36
  813. package/dist/schema/project-env-types.mjs.map +1 -1
  814. package/dist/schema-C4OBuv6Z.mjs +13 -0
  815. package/dist/schema-C4OBuv6Z.mjs.map +1 -0
  816. package/dist/schema-DJRfvM_o.mjs +815 -0
  817. package/dist/schema-DJRfvM_o.mjs.map +1 -0
  818. package/dist/scopes-BU03K7Uo.mjs +34 -0
  819. package/dist/scopes-BU03K7Uo.mjs.map +1 -0
  820. package/dist/search-DfVzks89.mjs +450 -0
  821. package/dist/search-DfVzks89.mjs.map +1 -0
  822. package/dist/sections-BMy4JVUz.mjs +346 -0
  823. package/dist/sections-BMy4JVUz.mjs.map +1 -0
  824. package/dist/seed/index.d.mts +2 -2
  825. package/dist/seed/index.mjs +38 -34
  826. package/dist/seo/index.d.mts +3 -3
  827. package/dist/seo/index.mjs +25 -21
  828. package/dist/seo/index.mjs.map +1 -1
  829. package/dist/seo-ClB-dw9w.mjs +188 -0
  830. package/dist/seo-ClB-dw9w.mjs.map +1 -0
  831. package/dist/seo-VZYOEy8f.mjs +133 -0
  832. package/dist/seo-VZYOEy8f.mjs.map +1 -0
  833. package/dist/service-Bo_usgSk.mjs +150 -0
  834. package/dist/service-Bo_usgSk.mjs.map +1 -0
  835. package/dist/session-user-DlpPdf8L.mjs +61 -0
  836. package/dist/session-user-DlpPdf8L.mjs.map +1 -0
  837. package/dist/settings-CWb84sDm.mjs +452 -0
  838. package/dist/settings-CWb84sDm.mjs.map +1 -0
  839. package/dist/settings-DS914jjE.mjs +66 -0
  840. package/dist/settings-DS914jjE.mjs.map +1 -0
  841. package/dist/settings-Dd1uivmQ.mjs +73 -0
  842. package/dist/settings-Dd1uivmQ.mjs.map +1 -0
  843. package/dist/setup-complete-BuNxAUiN.mjs +65 -0
  844. package/dist/setup-complete-BuNxAUiN.mjs.map +1 -0
  845. package/dist/setup-nonce-BnEAX0iy.mjs +25 -0
  846. package/dist/setup-nonce-BnEAX0iy.mjs.map +1 -0
  847. package/dist/site-domain-Bq5j5bVg.mjs +131 -0
  848. package/dist/site-domain-Bq5j5bVg.mjs.map +1 -0
  849. package/dist/site-settings-DRHfX7bq.mjs +50 -0
  850. package/dist/site-settings-DRHfX7bq.mjs.map +1 -0
  851. package/dist/site-url-MB685I5X.mjs +45 -0
  852. package/dist/site-url-MB685I5X.mjs.map +1 -0
  853. package/dist/sitemap-name-BTg2NJJv.mjs +26 -0
  854. package/dist/sitemap-name-BTg2NJJv.mjs.map +1 -0
  855. package/dist/slug-aVnUV4SL.mjs +16 -0
  856. package/dist/slug-aVnUV4SL.mjs.map +1 -0
  857. package/dist/slugify-bu2-jKia.mjs +22 -0
  858. package/dist/slugify-bu2-jKia.mjs.map +1 -0
  859. package/dist/snapshot-DYsG4uOq.mjs +414 -0
  860. package/dist/snapshot-DYsG4uOq.mjs.map +1 -0
  861. package/dist/ssrf-BcYjyM4M.mjs +406 -0
  862. package/dist/ssrf-BcYjyM4M.mjs.map +1 -0
  863. package/dist/stage-D8DWgPcO.mjs +662 -0
  864. package/dist/stage-D8DWgPcO.mjs.map +1 -0
  865. package/dist/staged-CD_imitH.mjs +686 -0
  866. package/dist/staged-CD_imitH.mjs.map +1 -0
  867. package/dist/state-CFbGZziM.mjs +178 -0
  868. package/dist/state-CFbGZziM.mjs.map +1 -0
  869. package/dist/status-BFNdxzKc.mjs +30 -0
  870. package/dist/status-BFNdxzKc.mjs.map +1 -0
  871. package/dist/storage/local.d.mts +2 -2
  872. package/dist/storage/local.d.mts.map +1 -1
  873. package/dist/storage/local.mjs +12 -5
  874. package/dist/storage/local.mjs.map +1 -1
  875. package/dist/storage/s3.d.mts +4 -2
  876. package/dist/storage/s3.d.mts.map +1 -1
  877. package/dist/storage/s3.mjs +56 -9
  878. package/dist/storage/s3.mjs.map +1 -1
  879. package/dist/storage-query-DRyu3bSU.d.mts +1615 -0
  880. package/dist/storage-query-DRyu3bSU.d.mts.map +1 -0
  881. package/dist/tar-DFjExb9X.mjs +449 -0
  882. package/dist/tar-DFjExb9X.mjs.map +1 -0
  883. package/dist/target-CWZs2-o6.mjs +27 -0
  884. package/dist/target-CWZs2-o6.mjs.map +1 -0
  885. package/dist/taxonomies-ChnU7Mc8.mjs +697 -0
  886. package/dist/taxonomies-ChnU7Mc8.mjs.map +1 -0
  887. package/dist/taxonomies-Dd9JJv_a.mjs +939 -0
  888. package/dist/taxonomies-Dd9JJv_a.mjs.map +1 -0
  889. package/dist/taxonomy-C_C_LBAU.mjs +550 -0
  890. package/dist/taxonomy-C_C_LBAU.mjs.map +1 -0
  891. package/dist/tokens-BnhSnGwJ.mjs +171 -0
  892. package/dist/tokens-BnhSnGwJ.mjs.map +1 -0
  893. package/dist/transfer-ClH6w6BV.mjs +8873 -0
  894. package/dist/transfer-ClH6w6BV.mjs.map +1 -0
  895. package/dist/transfer-WmWiR3xf.mjs +166 -0
  896. package/dist/transfer-WmWiR3xf.mjs.map +1 -0
  897. package/dist/transfer-download--ofRj9Cw.mjs +33 -0
  898. package/dist/transfer-download--ofRj9Cw.mjs.map +1 -0
  899. package/dist/transformations-Bx4lYY0Y.mjs +196 -0
  900. package/dist/transformations-Bx4lYY0Y.mjs.map +1 -0
  901. package/dist/transport-BjbqNiPI.mjs +136 -0
  902. package/dist/transport-BjbqNiPI.mjs.map +1 -0
  903. package/dist/transport-DxiXnbXk.d.mts +42 -0
  904. package/dist/transport-DxiXnbXk.d.mts.map +1 -0
  905. package/dist/trusted-proxy-BU3Nx9g1.mjs +51 -0
  906. package/dist/trusted-proxy-BU3Nx9g1.mjs.map +1 -0
  907. package/dist/turnstile-CJwvsOqw.mjs +58 -0
  908. package/dist/turnstile-CJwvsOqw.mjs.map +1 -0
  909. package/dist/types-BA3ey2QH.d.mts +87 -0
  910. package/dist/types-BA3ey2QH.d.mts.map +1 -0
  911. package/dist/types-Bwpzb5o6.d.mts +227 -0
  912. package/dist/types-Bwpzb5o6.d.mts.map +1 -0
  913. package/dist/types-CNB-dj6F.d.mts +289 -0
  914. package/dist/types-CNB-dj6F.d.mts.map +1 -0
  915. package/dist/types-CgfFGfO5.mjs +16 -0
  916. package/dist/types-CgfFGfO5.mjs.map +1 -0
  917. package/dist/types-D2NEXtgB.mjs +127 -0
  918. package/dist/types-D2NEXtgB.mjs.map +1 -0
  919. package/dist/types-DCFavOii.d.mts +916 -0
  920. package/dist/types-DCFavOii.d.mts.map +1 -0
  921. package/dist/types-DHO7Pd25.d.mts +366 -0
  922. package/dist/types-DHO7Pd25.d.mts.map +1 -0
  923. package/dist/types-DvqVxZXa.d.mts +125 -0
  924. package/dist/types-DvqVxZXa.d.mts.map +1 -0
  925. package/dist/types-QoPHm-2w.d.mts +1741 -0
  926. package/dist/types-QoPHm-2w.d.mts.map +1 -0
  927. package/dist/types-RLgeIpnF.d.mts +374 -0
  928. package/dist/types-RLgeIpnF.d.mts.map +1 -0
  929. package/dist/types-qHVygneX.mjs +77 -0
  930. package/dist/types-qHVygneX.mjs.map +1 -0
  931. package/dist/types-sUHaH7lC.mjs +37 -0
  932. package/dist/types-sUHaH7lC.mjs.map +1 -0
  933. package/dist/types-slSqujQL.d.mts +204 -0
  934. package/dist/types-slSqujQL.d.mts.map +1 -0
  935. package/dist/update-check-BxNg9T6N.mjs +161 -0
  936. package/dist/update-check-BxNg9T6N.mjs.map +1 -0
  937. package/dist/upload-attempts-DPFC4COv.mjs +32 -0
  938. package/dist/upload-attempts-DPFC4COv.mjs.map +1 -0
  939. package/dist/url-pattern-QATUE_rv.mjs +41 -0
  940. package/dist/url-pattern-QATUE_rv.mjs.map +1 -0
  941. package/dist/user-BlCTKVAm.mjs +171 -0
  942. package/dist/user-BlCTKVAm.mjs.map +1 -0
  943. package/dist/utils-TPt7w2cS.mjs +442 -0
  944. package/dist/utils-TPt7w2cS.mjs.map +1 -0
  945. package/dist/validate-DxYhJQA-.mjs +524 -0
  946. package/dist/validate-DxYhJQA-.mjs.map +1 -0
  947. package/dist/validate-emKxGC5F.d.mts +468 -0
  948. package/dist/validate-emKxGC5F.d.mts.map +1 -0
  949. package/dist/validation-Ckq4vsVg.mjs +220 -0
  950. package/dist/validation-Ckq4vsVg.mjs.map +1 -0
  951. package/dist/version-BZj18Q7G.mjs +9 -0
  952. package/dist/version-BZj18Q7G.mjs.map +1 -0
  953. package/dist/version-DHmGpcch.mjs +7 -0
  954. package/dist/version-DHmGpcch.mjs.map +1 -0
  955. package/dist/video-DytCnw3L.mjs +54 -0
  956. package/dist/video-DytCnw3L.mjs.map +1 -0
  957. package/dist/virtual-modules-DO954n7P.mjs +515 -0
  958. package/dist/virtual-modules-DO954n7P.mjs.map +1 -0
  959. package/dist/widgets-DA5XmvVC.mjs +121 -0
  960. package/dist/widgets-DA5XmvVC.mjs.map +1 -0
  961. package/dist/wxr-taxonomies-CrMonejI.d.mts +34 -0
  962. package/dist/wxr-taxonomies-CrMonejI.d.mts.map +1 -0
  963. package/dist/wxr-taxonomies-RgRG0d5e.mjs +453 -0
  964. package/dist/wxr-taxonomies-RgRG0d5e.mjs.map +1 -0
  965. package/dist/zod-generator-D0JKy94C.mjs +424 -0
  966. package/dist/zod-generator-D0JKy94C.mjs.map +1 -0
  967. package/package.json +15 -11
  968. package/src/api/authorize.ts +42 -0
  969. package/src/api/errors.ts +9 -0
  970. package/src/api/handlers/api-tokens.ts +12 -6
  971. package/src/api/handlers/content.ts +57 -8
  972. package/src/api/handlers/dashboard.ts +33 -10
  973. package/src/api/handlers/domain-move-notice.ts +94 -0
  974. package/src/api/handlers/index.ts +2 -0
  975. package/src/api/handlers/manifest.ts +6 -0
  976. package/src/api/handlers/media-usage.ts +2 -1
  977. package/src/api/handlers/media.ts +1 -0
  978. package/src/api/handlers/plugins.ts +1 -0
  979. package/src/api/handlers/revision.ts +6 -2
  980. package/src/api/handlers/seo.ts +155 -59
  981. package/src/api/handlers/settings.ts +31 -1
  982. package/src/api/handlers/site-domain.ts +159 -0
  983. package/src/api/openapi/document.ts +2 -2
  984. package/src/api/public-url.ts +1 -1
  985. package/src/api/schemas/content.ts +20 -0
  986. package/src/api/schemas/media-usage.ts +7 -1
  987. package/src/api/schemas/media.ts +12 -0
  988. package/src/api/schemas/settings.ts +2 -0
  989. package/src/api/site-url.ts +53 -5
  990. package/src/api/types.ts +4 -0
  991. package/src/astro/image-endpoint.ts +46 -4
  992. package/src/astro/integration/admin-locales.ts +168 -0
  993. package/src/astro/integration/dev-env.ts +84 -0
  994. package/src/astro/integration/dev-scheduler-bridge.ts +91 -0
  995. package/src/astro/integration/index.ts +97 -10
  996. package/src/astro/integration/routes.ts +28 -0
  997. package/src/astro/integration/runtime.ts +17 -1
  998. package/src/astro/integration/virtual-modules.ts +9 -16
  999. package/src/astro/integration/vite-config.ts +22 -16
  1000. package/src/astro/middleware/auth.ts +19 -4
  1001. package/src/astro/middleware/csp.ts +1 -0
  1002. package/src/astro/middleware/redirect.ts +94 -50
  1003. package/src/astro/middleware/request-context.ts +12 -6
  1004. package/src/astro/middleware.ts +71 -17
  1005. package/src/astro/prefetch.ts +7 -5
  1006. package/src/astro/public-plugin-api-routes.ts +10 -2
  1007. package/src/astro/routes/api/admin/plugins/registry/artifact.ts +1 -1
  1008. package/src/astro/routes/api/auth/handover.ts +58 -0
  1009. package/src/astro/routes/api/auth/magic-link/verify.ts +11 -3
  1010. package/src/astro/routes/api/auth/passkey/options.ts +10 -2
  1011. package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +2 -1
  1012. package/src/astro/routes/api/content/[collection]/[id]/duplicate.ts +1 -5
  1013. package/src/astro/routes/api/content/[collection]/[id]/lock.ts +2 -2
  1014. package/src/astro/routes/api/content/[collection]/[id]/permanent.ts +2 -1
  1015. package/src/astro/routes/api/content/[collection]/[id]/publish.ts +2 -1
  1016. package/src/astro/routes/api/content/[collection]/[id]/restore.ts +2 -1
  1017. package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +3 -2
  1018. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +5 -4
  1019. package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +2 -1
  1020. package/src/astro/routes/api/content/[collection]/[id].ts +18 -6
  1021. package/src/astro/routes/api/content/[collection]/index.ts +1 -5
  1022. package/src/astro/routes/api/dashboard.ts +4 -1
  1023. package/src/astro/routes/api/dev/scheduled-tasks.ts +20 -0
  1024. package/src/astro/routes/api/import/wordpress/analyze.ts +1 -16
  1025. package/src/astro/routes/api/import/wordpress/execute.ts +27 -3
  1026. package/src/astro/routes/api/import/wordpress/rewrite-url-helpers.ts +80 -42
  1027. package/src/astro/routes/api/import/wordpress-plugin/analyze.ts +4 -1
  1028. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +49 -5
  1029. package/src/astro/routes/api/manifest.ts +10 -0
  1030. package/src/astro/routes/api/media/[id]/confirm.ts +19 -0
  1031. package/src/astro/routes/api/media/file/[...key].ts +60 -12
  1032. package/src/astro/routes/api/media/upload-url.ts +28 -4
  1033. package/src/astro/routes/api/media.ts +15 -0
  1034. package/src/astro/routes/api/menus/[name]/items/[id].ts +3 -2
  1035. package/src/astro/routes/api/menus/[name]/items.ts +2 -1
  1036. package/src/astro/routes/api/menus/[name]/reorder.ts +2 -1
  1037. package/src/astro/routes/api/menus/[name]/translations.ts +2 -1
  1038. package/src/astro/routes/api/menus/[name].ts +3 -2
  1039. package/src/astro/routes/api/menus/index.ts +2 -1
  1040. package/src/astro/routes/api/redirects/[id].ts +15 -2
  1041. package/src/astro/routes/api/redirects/index.ts +5 -1
  1042. package/src/astro/routes/api/schema/index.ts +1 -1
  1043. package/src/astro/routes/api/settings/domain-notify.ts +76 -0
  1044. package/src/astro/routes/api/settings/domain.ts +64 -0
  1045. package/src/astro/routes/api/settings.ts +2 -1
  1046. package/src/astro/routes/api/setup/admin-verify.ts +7 -1
  1047. package/src/astro/routes/api/setup/index.ts +7 -0
  1048. package/src/astro/routes/api/site/domain-proof.ts +28 -0
  1049. package/src/astro/routes/api/taxonomies/[name]/reorder.ts +2 -1
  1050. package/src/astro/routes/api/taxonomies/[name]/terms/[slug]/translations.ts +2 -1
  1051. package/src/astro/routes/api/taxonomies/[name]/terms/[slug].ts +3 -2
  1052. package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +2 -1
  1053. package/src/astro/routes/api/taxonomies/[name].ts +3 -2
  1054. package/src/astro/routes/api/taxonomies/index.ts +2 -1
  1055. package/src/astro/routes/api/widget-areas/[name]/reorder.ts +2 -1
  1056. package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +3 -2
  1057. package/src/astro/routes/api/widget-areas/[name]/widgets.ts +2 -1
  1058. package/src/astro/routes/api/widget-areas/[name].ts +2 -1
  1059. package/src/astro/routes/api/widget-areas/index.ts +2 -1
  1060. package/src/astro/routes/robots.txt.ts +33 -2
  1061. package/src/astro/routes/sitemap-[collection].xml.ts +31 -8
  1062. package/src/astro/routes/sitemap.xml.ts +12 -10
  1063. package/src/astro/types.ts +23 -2
  1064. package/src/auth/rate-limit.ts +18 -13
  1065. package/src/auth/types.ts +11 -4
  1066. package/src/aws-sdk.d.ts +2 -1
  1067. package/src/cache/redirect-paths.ts +56 -0
  1068. package/src/cache/route-cache.ts +22 -0
  1069. package/src/cleanup.ts +26 -0
  1070. package/src/cli/commands/export-seed.ts +2 -0
  1071. package/src/cli/commands/import/wordpress.ts +3 -27
  1072. package/src/cli/commands/login.ts +35 -43
  1073. package/src/cli/commands/migrate.ts +36 -4
  1074. package/src/cli/commands/seed.ts +23 -12
  1075. package/src/cli/wxr/parser.ts +2 -2
  1076. package/src/client/index.ts +18 -3
  1077. package/src/client/portable-text.ts +21 -7
  1078. package/src/comments/public-submission.ts +15 -8
  1079. package/src/comments/query.ts +8 -2
  1080. package/src/components/CommentForm.astro +50 -10
  1081. package/src/components/Comments.astro +51 -29
  1082. package/src/components/EmDashImage.astro +6 -4
  1083. package/src/components/Gallery.astro +4 -3
  1084. package/src/components/Image.astro +4 -3
  1085. package/src/components/InlinePortableTextEditor.tsx +269 -1320
  1086. package/src/components/Video.astro +100 -0
  1087. package/src/components/index.ts +4 -1
  1088. package/src/components/inline-block-types.ts +278 -0
  1089. package/src/components/inline-bubble-menu.tsx +696 -0
  1090. package/src/components/inline-code-block.tsx +8 -0
  1091. package/src/components/inline-editor-ui.tsx +1192 -0
  1092. package/src/components/inline-image.tsx +722 -0
  1093. package/src/components/inline-media-picker.tsx +1221 -0
  1094. package/src/components/inline-slash-menu.tsx +556 -0
  1095. package/src/components/webmcp-search.ts +15 -19
  1096. package/src/components/widgets/RecentPosts.astro +57 -17
  1097. package/src/content/converters/mark-safety.ts +3 -3
  1098. package/src/content/converters/portable-text-identity.ts +1 -0
  1099. package/src/content/converters/portable-text-to-prosemirror.ts +7 -0
  1100. package/src/content/converters/prosemirror-to-portable-text.ts +16 -0
  1101. package/src/content/converters/types.ts +22 -0
  1102. package/src/content/converters/video.ts +77 -0
  1103. package/src/database/collection-cleanup.ts +30 -0
  1104. package/src/database/datetime-storage.ts +337 -60
  1105. package/src/database/migration-lock.ts +43 -7
  1106. package/src/database/migrations/runner.ts +13 -1
  1107. package/src/database/repositories/comment.ts +17 -3
  1108. package/src/database/repositories/content.ts +25 -4
  1109. package/src/database/repositories/plugin-storage.ts +137 -27
  1110. package/src/database/repositories/redirect.ts +24 -2
  1111. package/src/database/repositories/revision.ts +24 -6
  1112. package/src/database/repositories/taxonomy.ts +61 -46
  1113. package/src/database/repositories/types.ts +67 -7
  1114. package/src/emdash-runtime.ts +393 -228
  1115. package/src/import/index.ts +1 -0
  1116. package/src/import/registry.ts +17 -0
  1117. package/src/import/sources/wordpress-plugin.ts +154 -11
  1118. package/src/import/types.ts +3 -0
  1119. package/src/import/utils.ts +7 -3
  1120. package/src/index.ts +3 -0
  1121. package/src/loader.ts +170 -45
  1122. package/src/mcp/json-schema.ts +14 -0
  1123. package/src/mcp/plugin-tool-name.ts +36 -0
  1124. package/src/mcp/server.ts +74 -15
  1125. package/src/media/image-endpoint.ts +101 -1
  1126. package/src/media/responsive.ts +14 -7
  1127. package/src/media/usage/collection-deletion.ts +4 -0
  1128. package/src/media/usage/extractor.ts +19 -2
  1129. package/src/media/usage/types.ts +5 -1
  1130. package/src/migrations/direct-executor.ts +42 -12
  1131. package/src/migrations/protocol.ts +6 -2
  1132. package/src/plugin-utils.ts +1 -1
  1133. package/src/plugins/adapt-sandbox-entry.ts +16 -6
  1134. package/src/plugins/context.ts +3 -7
  1135. package/src/plugins/hooks.ts +1 -1
  1136. package/src/plugins/http-route-dispatch.ts +5 -1
  1137. package/src/plugins/manifest-schema.ts +1 -0
  1138. package/src/plugins/route-error.ts +14 -0
  1139. package/src/plugins/routes.ts +2 -2
  1140. package/src/plugins/state.ts +41 -8
  1141. package/src/plugins/types.ts +6 -0
  1142. package/src/query.ts +59 -10
  1143. package/src/redirects/cache.ts +34 -2
  1144. package/src/redirects/patterns.ts +26 -2
  1145. package/src/schema/block-values.ts +80 -17
  1146. package/src/schema/registry.ts +16 -5
  1147. package/src/schema/slug.ts +19 -0
  1148. package/src/search/query.ts +3 -1
  1149. package/src/search/text-extraction.ts +6 -1
  1150. package/src/seed/apply.ts +32 -8
  1151. package/src/seed/validate.ts +31 -0
  1152. package/src/seo/sitemap-name.ts +22 -0
  1153. package/src/settings/index.ts +20 -0
  1154. package/src/settings/types.ts +2 -0
  1155. package/src/storage/index.ts +2 -0
  1156. package/src/storage/local.ts +10 -2
  1157. package/src/storage/range.ts +54 -0
  1158. package/src/storage/s3.ts +52 -8
  1159. package/src/storage/types.ts +30 -3
  1160. package/src/ui.ts +1 -0
  1161. package/src/utils/slugify.ts +6 -1
  1162. package/src/visual-editing/toolbar.ts +126 -47
  1163. package/src/widgets/components.ts +4 -0
  1164. package/src/widgets/index.ts +74 -82
  1165. package/src/widgets/recent-posts.ts +62 -0
  1166. package/dist/action-token-AgOs1UWD.mjs +0 -26
  1167. package/dist/action-token-AgOs1UWD.mjs.map +0 -1
  1168. package/dist/activation-xomsCMJg.mjs +0 -387
  1169. package/dist/activation-xomsCMJg.mjs.map +0 -1
  1170. package/dist/adapters-DM1oyHIN.d.mts +0 -173
  1171. package/dist/adapters-DM1oyHIN.d.mts.map +0 -1
  1172. package/dist/allowed-origins-CFtudhyw.mjs +0 -116
  1173. package/dist/allowed-origins-CFtudhyw.mjs.map +0 -1
  1174. package/dist/api-CltsXhiX.mjs +0 -4980
  1175. package/dist/api-CltsXhiX.mjs.map +0 -1
  1176. package/dist/api-tokens-P3mAaQgr.mjs +0 -166
  1177. package/dist/api-tokens-P3mAaQgr.mjs.map +0 -1
  1178. package/dist/apply-Q7uvzBWW.mjs +0 -1680
  1179. package/dist/apply-Q7uvzBWW.mjs.map +0 -1
  1180. package/dist/approvals-DycwI6lZ.mjs +0 -460
  1181. package/dist/approvals-DycwI6lZ.mjs.map +0 -1
  1182. package/dist/artifact-fetch-CWxyELVI.mjs +0 -659
  1183. package/dist/artifact-fetch-CWxyELVI.mjs.map +0 -1
  1184. package/dist/artifacts-UzWbysb8.mjs +0 -307
  1185. package/dist/artifacts-UzWbysb8.mjs.map +0 -1
  1186. package/dist/audit-CCH3MA4Y.mjs +0 -127
  1187. package/dist/audit-CCH3MA4Y.mjs.map +0 -1
  1188. package/dist/authoritative-records-dSvXCfzb.mjs +0 -5172
  1189. package/dist/authoritative-records-dSvXCfzb.mjs.map +0 -1
  1190. package/dist/authorize-DeWfk--K.mjs +0 -49
  1191. package/dist/authorize-DeWfk--K.mjs.map +0 -1
  1192. package/dist/backup-CFnbdTSJ.mjs +0 -246
  1193. package/dist/backup-CFnbdTSJ.mjs.map +0 -1
  1194. package/dist/block-types-C0YFSfR7.mjs +0 -132
  1195. package/dist/block-types-C0YFSfR7.mjs.map +0 -1
  1196. package/dist/block-values-H4E0XwE8.mjs +0 -175
  1197. package/dist/block-values-H4E0XwE8.mjs.map +0 -1
  1198. package/dist/byline-BhVslYLz.mjs +0 -909
  1199. package/dist/byline-BhVslYLz.mjs.map +0 -1
  1200. package/dist/byline-fields-DHJs0Mja.mjs +0 -280
  1201. package/dist/byline-fields-DHJs0Mja.mjs.map +0 -1
  1202. package/dist/byline-fields-xdxE9kxZ.mjs +0 -123
  1203. package/dist/byline-fields-xdxE9kxZ.mjs.map +0 -1
  1204. package/dist/bylines-B_nN9liM.mjs +0 -234
  1205. package/dist/bylines-B_nN9liM.mjs.map +0 -1
  1206. package/dist/bylines-C71YACkL.mjs +0 -150
  1207. package/dist/bylines-C71YACkL.mjs.map +0 -1
  1208. package/dist/cache-aTYCL9nK.mjs +0 -133
  1209. package/dist/cache-aTYCL9nK.mjs.map +0 -1
  1210. package/dist/canonical-Y1dpjCnp.mjs +0 -174
  1211. package/dist/canonical-Y1dpjCnp.mjs.map +0 -1
  1212. package/dist/capture-triggers-C9JKoIdT.mjs +0 -362
  1213. package/dist/capture-triggers-C9JKoIdT.mjs.map +0 -1
  1214. package/dist/challenge-store-CxZxPqaw.mjs +0 -51
  1215. package/dist/challenge-store-CxZxPqaw.mjs.map +0 -1
  1216. package/dist/checksum-DtH6m5uk.mjs +0 -162
  1217. package/dist/checksum-DtH6m5uk.mjs.map +0 -1
  1218. package/dist/chunks-zlGB5IQP.mjs +0 -25
  1219. package/dist/chunks-zlGB5IQP.mjs.map +0 -1
  1220. package/dist/collection-slugs-cache-B2Gs9Jwx.mjs +0 -85
  1221. package/dist/collection-slugs-cache-B2Gs9Jwx.mjs.map +0 -1
  1222. package/dist/comment-Bu08Wvr3.mjs +0 -313
  1223. package/dist/comment-Bu08Wvr3.mjs.map +0 -1
  1224. package/dist/comment-reaction-B8SfT-yM.mjs +0 -85
  1225. package/dist/comment-reaction-B8SfT-yM.mjs.map +0 -1
  1226. package/dist/comments-BRtp992B.mjs +0 -99
  1227. package/dist/comments-BRtp992B.mjs.map +0 -1
  1228. package/dist/comments-DVUYqdyC.mjs +0 -195
  1229. package/dist/comments-DVUYqdyC.mjs.map +0 -1
  1230. package/dist/components-CQY-Sgm-.mjs +0 -108
  1231. package/dist/components-CQY-Sgm-.mjs.map +0 -1
  1232. package/dist/config-B-uePMLj.d.mts +0 -39
  1233. package/dist/config-B-uePMLj.d.mts.map +0 -1
  1234. package/dist/config-B6BDSsz2.d.mts +0 -6712
  1235. package/dist/config-B6BDSsz2.d.mts.map +0 -1
  1236. package/dist/config-BsJHiQxC.mjs +0 -228
  1237. package/dist/config-BsJHiQxC.mjs.map +0 -1
  1238. package/dist/connection-B9pIasFd.mjs +0 -36
  1239. package/dist/connection-B9pIasFd.mjs.map +0 -1
  1240. package/dist/content-Dji9vEiW.mjs +0 -2063
  1241. package/dist/content-Dji9vEiW.mjs.map +0 -1
  1242. package/dist/content-list-query-DiNwyKtd.d.mts +0 -26
  1243. package/dist/content-list-query-DiNwyKtd.d.mts.map +0 -1
  1244. package/dist/content-repair-B7wnbzhN.mjs +0 -442
  1245. package/dist/content-repair-B7wnbzhN.mjs.map +0 -1
  1246. package/dist/context-Ctcxc8Ia.mjs +0 -2026
  1247. package/dist/context-Ctcxc8Ia.mjs.map +0 -1
  1248. package/dist/credits-Bu7dlobo.mjs +0 -110
  1249. package/dist/credits-Bu7dlobo.mjs.map +0 -1
  1250. package/dist/cron-xe5XKqA-.mjs +0 -306
  1251. package/dist/cron-xe5XKqA-.mjs.map +0 -1
  1252. package/dist/dashboard-B5hVHOtf.mjs +0 -151
  1253. package/dist/dashboard-B5hVHOtf.mjs.map +0 -1
  1254. package/dist/default-DaoYyFRS.mjs +0 -81
  1255. package/dist/default-DaoYyFRS.mjs.map +0 -1
  1256. package/dist/deferred-tasks-BYcDx2o_.d.mts +0 -9
  1257. package/dist/deferred-tasks-BYcDx2o_.d.mts.map +0 -1
  1258. package/dist/dev-typegen-Dtl8AfS6.mjs +0 -29
  1259. package/dist/dev-typegen-Dtl8AfS6.mjs.map +0 -1
  1260. package/dist/device-flow-Ma5P5d2e.mjs +0 -521
  1261. package/dist/device-flow-Ma5P5d2e.mjs.map +0 -1
  1262. package/dist/digest-xIpR3o64.mjs +0 -194
  1263. package/dist/digest-xIpR3o64.mjs.map +0 -1
  1264. package/dist/direct-executor-DMWwCey3.mjs +0 -104
  1265. package/dist/direct-executor-DMWwCey3.mjs.map +0 -1
  1266. package/dist/email-console-DmqVF5J_.mjs +0 -50
  1267. package/dist/email-console-DmqVF5J_.mjs.map +0 -1
  1268. package/dist/email-locale-Cc5YSXfJ.mjs +0 -25
  1269. package/dist/email-locale-Cc5YSXfJ.mjs.map +0 -1
  1270. package/dist/emdash-runtime-BlybX9Ui.mjs +0 -4249
  1271. package/dist/emdash-runtime-BlybX9Ui.mjs.map +0 -1
  1272. package/dist/entry-lock-De1L8qUQ.mjs +0 -163
  1273. package/dist/entry-lock-De1L8qUQ.mjs.map +0 -1
  1274. package/dist/entry-lock-esmMbgI9.d.mts +0 -4551
  1275. package/dist/entry-lock-esmMbgI9.d.mts.map +0 -1
  1276. package/dist/entry-lock-sxz2PGAT.mjs +0 -1197
  1277. package/dist/entry-lock-sxz2PGAT.mjs.map +0 -1
  1278. package/dist/env-types-BkjCtN13.mjs +0 -38
  1279. package/dist/env-types-BkjCtN13.mjs.map +0 -1
  1280. package/dist/error-B0rgPgsQ.mjs +0 -90
  1281. package/dist/error-B0rgPgsQ.mjs.map +0 -1
  1282. package/dist/errors-CuHQRiBW.mjs +0 -120
  1283. package/dist/errors-CuHQRiBW.mjs.map +0 -1
  1284. package/dist/errors-DTE6C3K_.mjs +0 -470
  1285. package/dist/errors-DTE6C3K_.mjs.map +0 -1
  1286. package/dist/escape-nJW7dR0s.mjs +0 -9
  1287. package/dist/escape-nJW7dR0s.mjs.map +0 -1
  1288. package/dist/fence-CGw57S4v.mjs +0 -162
  1289. package/dist/fence-CGw57S4v.mjs.map +0 -1
  1290. package/dist/field-defs-cache-Bw8w499w.mjs +0 -77
  1291. package/dist/field-defs-cache-Bw8w499w.mjs.map +0 -1
  1292. package/dist/field-map-hn-D-SyH.mjs +0 -83
  1293. package/dist/field-map-hn-D-SyH.mjs.map +0 -1
  1294. package/dist/fts-manager-DacCYIe4.mjs +0 -443
  1295. package/dist/fts-manager-DacCYIe4.mjs.map +0 -1
  1296. package/dist/gc-BBplHrv6.mjs +0 -75
  1297. package/dist/gc-BBplHrv6.mjs.map +0 -1
  1298. package/dist/hash-C4DFoJ7Z.mjs +0 -37
  1299. package/dist/hash-C4DFoJ7Z.mjs.map +0 -1
  1300. package/dist/hook-result-DSRRxu_-.d.mts +0 -31
  1301. package/dist/hook-result-DSRRxu_-.d.mts.map +0 -1
  1302. package/dist/hreflang-CKPunvU0.mjs +0 -105
  1303. package/dist/hreflang-CKPunvU0.mjs.map +0 -1
  1304. package/dist/hreflang-egumj6WF.d.mts +0 -50
  1305. package/dist/hreflang-egumj6WF.d.mts.map +0 -1
  1306. package/dist/http-route-dispatch-DjNFZcJ2.mjs +0 -339
  1307. package/dist/http-route-dispatch-DjNFZcJ2.mjs.map +0 -1
  1308. package/dist/identity-Dfrx2_Bc.mjs +0 -35
  1309. package/dist/identity-Dfrx2_Bc.mjs.map +0 -1
  1310. package/dist/import-ROBvhbNc.mjs +0 -2021
  1311. package/dist/import-ROBvhbNc.mjs.map +0 -1
  1312. package/dist/index-B4sIdCAT.d.mts +0 -623
  1313. package/dist/index-B4sIdCAT.d.mts.map +0 -1
  1314. package/dist/install-finalization-CPM7Gged.mjs +0 -58
  1315. package/dist/install-finalization-CPM7Gged.mjs.map +0 -1
  1316. package/dist/keys-DxqxcAD4.mjs +0 -61
  1317. package/dist/keys-DxqxcAD4.mjs.map +0 -1
  1318. package/dist/kinds-BQl5gN6e.mjs +0 -974
  1319. package/dist/kinds-BQl5gN6e.mjs.map +0 -1
  1320. package/dist/lifecycle-DGQI7itS.mjs +0 -25
  1321. package/dist/lifecycle-DGQI7itS.mjs.map +0 -1
  1322. package/dist/load-DMxRl4VK.mjs +0 -28
  1323. package/dist/load-DMxRl4VK.mjs.map +0 -1
  1324. package/dist/loader-1DMiOq5s.mjs +0 -1303
  1325. package/dist/loader-1DMiOq5s.mjs.map +0 -1
  1326. package/dist/loops-Dn1i16FP.mjs +0 -205
  1327. package/dist/loops-Dn1i16FP.mjs.map +0 -1
  1328. package/dist/manifest-builder-CTw4FmZk.mjs +0 -189
  1329. package/dist/manifest-builder-CTw4FmZk.mjs.map +0 -1
  1330. package/dist/manifest-schema-gy37bD_D.mjs +0 -496
  1331. package/dist/manifest-schema-gy37bD_D.mjs.map +0 -1
  1332. package/dist/marketplace-tHWSsCUo.mjs +0 -257
  1333. package/dist/marketplace-tHWSsCUo.mjs.map +0 -1
  1334. package/dist/media-Bw-Q65ve.mjs +0 -294
  1335. package/dist/media-Bw-Q65ve.mjs.map +0 -1
  1336. package/dist/media-BzUDu7nl.mjs +0 -373
  1337. package/dist/media-BzUDu7nl.mjs.map +0 -1
  1338. package/dist/media-aahnKHze.mjs +0 -408
  1339. package/dist/media-aahnKHze.mjs.map +0 -1
  1340. package/dist/media-allowlist-RMrjo8TU.mjs +0 -45
  1341. package/dist/media-allowlist-RMrjo8TU.mjs.map +0 -1
  1342. package/dist/media-folders-kabR1oJf.mjs +0 -210
  1343. package/dist/media-folders-kabR1oJf.mjs.map +0 -1
  1344. package/dist/media-url-DloW2xrP.mjs +0 -43
  1345. package/dist/media-url-DloW2xrP.mjs.map +0 -1
  1346. package/dist/media-usage-CHHpV7ee.mjs +0 -282
  1347. package/dist/media-usage-CHHpV7ee.mjs.map +0 -1
  1348. package/dist/media-usage-activation-BinYqC_r.mjs +0 -78
  1349. package/dist/media-usage-activation-BinYqC_r.mjs.map +0 -1
  1350. package/dist/media-usage-work-C734aq6s.mjs +0 -1015
  1351. package/dist/media-usage-work-C734aq6s.mjs.map +0 -1
  1352. package/dist/media-usage-work-lxvV0-UO.mjs +0 -151
  1353. package/dist/media-usage-work-lxvV0-UO.mjs.map +0 -1
  1354. package/dist/menus-6RHNq4ZK.mjs +0 -753
  1355. package/dist/menus-6RHNq4ZK.mjs.map +0 -1
  1356. package/dist/menus-AuCTaO9W.mjs +0 -3704
  1357. package/dist/menus-AuCTaO9W.mjs.map +0 -1
  1358. package/dist/menus-BQKqf0Up.mjs +0 -92
  1359. package/dist/menus-BQKqf0Up.mjs.map +0 -1
  1360. package/dist/mode-nh0ppSX5.mjs +0 -23
  1361. package/dist/mode-nh0ppSX5.mjs.map +0 -1
  1362. package/dist/node-sqlite-compat-CDOEcc97.mjs +0 -63
  1363. package/dist/node-sqlite-compat-CDOEcc97.mjs.map +0 -1
  1364. package/dist/oauth-authorization-BtYQ80uU.mjs +0 -274
  1365. package/dist/oauth-authorization-BtYQ80uU.mjs.map +0 -1
  1366. package/dist/oauth-clients-C1S4NQHh.mjs +0 -266
  1367. package/dist/oauth-clients-C1S4NQHh.mjs.map +0 -1
  1368. package/dist/oauth-state-store-CpGi2FZH.mjs +0 -50
  1369. package/dist/oauth-state-store-CpGi2FZH.mjs.map +0 -1
  1370. package/dist/oauth-user-lookup-BNp1aFAr.mjs +0 -26
  1371. package/dist/oauth-user-lookup-BNp1aFAr.mjs.map +0 -1
  1372. package/dist/options-B41aLm1I.d.mts +0 -81
  1373. package/dist/options-B41aLm1I.d.mts.map +0 -1
  1374. package/dist/ownership-DoeAIuTg.mjs +0 -12
  1375. package/dist/ownership-DoeAIuTg.mjs.map +0 -1
  1376. package/dist/parse-CmFDTGzp.mjs +0 -81
  1377. package/dist/parse-CmFDTGzp.mjs.map +0 -1
  1378. package/dist/parse-QVS0t5oR.d.mts +0 -172
  1379. package/dist/parse-QVS0t5oR.d.mts.map +0 -1
  1380. package/dist/passkey-config-C-MxsV22.mjs +0 -46
  1381. package/dist/passkey-config-C-MxsV22.mjs.map +0 -1
  1382. package/dist/paths-kr8hAMMI.mjs +0 -77
  1383. package/dist/paths-kr8hAMMI.mjs.map +0 -1
  1384. package/dist/patterns-DyZJ67I7.mjs +0 -140
  1385. package/dist/patterns-DyZJ67I7.mjs.map +0 -1
  1386. package/dist/placeholder-Dn7MMdWr.d.mts +0 -306
  1387. package/dist/placeholder-Dn7MMdWr.d.mts.map +0 -1
  1388. package/dist/plan-CuQOeU9g.mjs +0 -135
  1389. package/dist/plan-CuQOeU9g.mjs.map +0 -1
  1390. package/dist/plugins-CGb-G98c.mjs +0 -261
  1391. package/dist/plugins-CGb-G98c.mjs.map +0 -1
  1392. package/dist/policy-C5wrDXYV.mjs +0 -45
  1393. package/dist/policy-C5wrDXYV.mjs.map +0 -1
  1394. package/dist/portable-text-BnRuiR1-.mjs +0 -307
  1395. package/dist/portable-text-BnRuiR1-.mjs.map +0 -1
  1396. package/dist/preview-xWNSR1Li.mjs +0 -107
  1397. package/dist/preview-xWNSR1Li.mjs.map +0 -1
  1398. package/dist/protocol-ClxN-m1e.d.mts +0 -61
  1399. package/dist/protocol-ClxN-m1e.d.mts.map +0 -1
  1400. package/dist/public-submission-CkmT2SKv.mjs +0 -250
  1401. package/dist/public-submission-CkmT2SKv.mjs.map +0 -1
  1402. package/dist/public-url-B5a0QAh6.mjs +0 -101
  1403. package/dist/public-url-B5a0QAh6.mjs.map +0 -1
  1404. package/dist/query-DHqFiqqH.mjs +0 -41
  1405. package/dist/query-DHqFiqqH.mjs.map +0 -1
  1406. package/dist/query-DT85BehD.mjs +0 -1125
  1407. package/dist/query-DT85BehD.mjs.map +0 -1
  1408. package/dist/rate-limit-iMvcu3eu.mjs +0 -120
  1409. package/dist/rate-limit-iMvcu3eu.mjs.map +0 -1
  1410. package/dist/receipt-Dpp1uaX9.mjs +0 -43
  1411. package/dist/receipt-Dpp1uaX9.mjs.map +0 -1
  1412. package/dist/redirect-BRoLiWQE.mjs +0 -19
  1413. package/dist/redirect-BRoLiWQE.mjs.map +0 -1
  1414. package/dist/redirect-xZNpBoGp.mjs +0 -417
  1415. package/dist/redirect-xZNpBoGp.mjs.map +0 -1
  1416. package/dist/redirects-D4EWeXAo.mjs +0 -148
  1417. package/dist/redirects-D4EWeXAo.mjs.map +0 -1
  1418. package/dist/redirects-DCKqwiWp.mjs +0 -446
  1419. package/dist/redirects-DCKqwiWp.mjs.map +0 -1
  1420. package/dist/registry-DaXmUsD4.mjs +0 -8369
  1421. package/dist/registry-DaXmUsD4.mjs.map +0 -1
  1422. package/dist/relations-JvBP8nGP.mjs +0 -776
  1423. package/dist/relations-JvBP8nGP.mjs.map +0 -1
  1424. package/dist/request-meta-B6blULFY.mjs +0 -141
  1425. package/dist/request-meta-B6blULFY.mjs.map +0 -1
  1426. package/dist/resolve-DAhHi5tn.mjs +0 -100
  1427. package/dist/resolve-DAhHi5tn.mjs.map +0 -1
  1428. package/dist/revision-BWEH2qQB.mjs +0 -368
  1429. package/dist/revision-BWEH2qQB.mjs.map +0 -1
  1430. package/dist/route-wire-DK600v4u.mjs +0 -197
  1431. package/dist/route-wire-DK600v4u.mjs.map +0 -1
  1432. package/dist/routes-BeZyaCzv.mjs +0 -272
  1433. package/dist/routes-BeZyaCzv.mjs.map +0 -1
  1434. package/dist/runner-CskI4Hmq.mjs +0 -6372
  1435. package/dist/runner-CskI4Hmq.mjs.map +0 -1
  1436. package/dist/runner-J3Cj6DGk.d.mts +0 -68
  1437. package/dist/runner-J3Cj6DGk.d.mts.map +0 -1
  1438. package/dist/schema-CK0ihqMR.mjs +0 -815
  1439. package/dist/schema-CK0ihqMR.mjs.map +0 -1
  1440. package/dist/schema-VtaZSrC-.mjs +0 -13
  1441. package/dist/schema-VtaZSrC-.mjs.map +0 -1
  1442. package/dist/scopes-BRnGlL9t.mjs +0 -34
  1443. package/dist/scopes-BRnGlL9t.mjs.map +0 -1
  1444. package/dist/search-D6-XK1Sn.mjs +0 -448
  1445. package/dist/search-D6-XK1Sn.mjs.map +0 -1
  1446. package/dist/sections-CBDCf7qR.mjs +0 -346
  1447. package/dist/sections-CBDCf7qR.mjs.map +0 -1
  1448. package/dist/seo-BdeEPDNW.mjs +0 -133
  1449. package/dist/seo-BdeEPDNW.mjs.map +0 -1
  1450. package/dist/seo-C61bnPuV.mjs +0 -114
  1451. package/dist/seo-C61bnPuV.mjs.map +0 -1
  1452. package/dist/service-BuRKLMxa.mjs +0 -150
  1453. package/dist/service-BuRKLMxa.mjs.map +0 -1
  1454. package/dist/session-user-CqkPtrPL.mjs +0 -61
  1455. package/dist/session-user-CqkPtrPL.mjs.map +0 -1
  1456. package/dist/settings-0u0lTthS.mjs +0 -51
  1457. package/dist/settings-0u0lTthS.mjs.map +0 -1
  1458. package/dist/settings-WHr45II1.mjs +0 -61
  1459. package/dist/settings-WHr45II1.mjs.map +0 -1
  1460. package/dist/settings-m5tIYnF0.mjs +0 -443
  1461. package/dist/settings-m5tIYnF0.mjs.map +0 -1
  1462. package/dist/setup-complete-B2_dhZZz.mjs +0 -65
  1463. package/dist/setup-complete-B2_dhZZz.mjs.map +0 -1
  1464. package/dist/setup-nonce-CJV9ftSK.mjs +0 -25
  1465. package/dist/setup-nonce-CJV9ftSK.mjs.map +0 -1
  1466. package/dist/site-settings-KJOqJW6W.mjs +0 -50
  1467. package/dist/site-settings-KJOqJW6W.mjs.map +0 -1
  1468. package/dist/site-url-Ceq_AUK0.mjs +0 -16
  1469. package/dist/site-url-Ceq_AUK0.mjs.map +0 -1
  1470. package/dist/slugify-T5GHH42D.mjs +0 -17
  1471. package/dist/slugify-T5GHH42D.mjs.map +0 -1
  1472. package/dist/snapshot-Dzsn3NZa.mjs +0 -414
  1473. package/dist/snapshot-Dzsn3NZa.mjs.map +0 -1
  1474. package/dist/ssrf-DsmvZB80.mjs +0 -406
  1475. package/dist/ssrf-DsmvZB80.mjs.map +0 -1
  1476. package/dist/stage-Csnh_yEd.mjs +0 -662
  1477. package/dist/stage-Csnh_yEd.mjs.map +0 -1
  1478. package/dist/staged-Q7pnEVvI.mjs +0 -686
  1479. package/dist/staged-Q7pnEVvI.mjs.map +0 -1
  1480. package/dist/state-kGdOMQRY.mjs +0 -153
  1481. package/dist/state-kGdOMQRY.mjs.map +0 -1
  1482. package/dist/status-D39Fpy8R.mjs +0 -30
  1483. package/dist/status-D39Fpy8R.mjs.map +0 -1
  1484. package/dist/storage-query-C7iy6eUb.d.mts +0 -1615
  1485. package/dist/storage-query-C7iy6eUb.d.mts.map +0 -1
  1486. package/dist/tar-BWiraSUY.mjs +0 -449
  1487. package/dist/tar-BWiraSUY.mjs.map +0 -1
  1488. package/dist/target-DOFs5oUC.mjs +0 -27
  1489. package/dist/target-DOFs5oUC.mjs.map +0 -1
  1490. package/dist/taxonomies-BS40Wxvi.mjs +0 -939
  1491. package/dist/taxonomies-BS40Wxvi.mjs.map +0 -1
  1492. package/dist/taxonomies-DAZU9VDd.mjs +0 -697
  1493. package/dist/taxonomies-DAZU9VDd.mjs.map +0 -1
  1494. package/dist/taxonomy-XzLE95Vx.mjs +0 -525
  1495. package/dist/taxonomy-XzLE95Vx.mjs.map +0 -1
  1496. package/dist/tokens-DSQan4p7.mjs +0 -171
  1497. package/dist/tokens-DSQan4p7.mjs.map +0 -1
  1498. package/dist/transfer-BcCVxDgf.mjs +0 -166
  1499. package/dist/transfer-BcCVxDgf.mjs.map +0 -1
  1500. package/dist/transfer-OMrancOt.mjs +0 -8873
  1501. package/dist/transfer-OMrancOt.mjs.map +0 -1
  1502. package/dist/transfer-download-Dc-ltjZY.mjs +0 -33
  1503. package/dist/transfer-download-Dc-ltjZY.mjs.map +0 -1
  1504. package/dist/transformations-Ddx7UtrY.mjs +0 -196
  1505. package/dist/transformations-Ddx7UtrY.mjs.map +0 -1
  1506. package/dist/transport-flR-Zmds.d.mts +0 -42
  1507. package/dist/transport-flR-Zmds.d.mts.map +0 -1
  1508. package/dist/transport-umzEbgYO.mjs +0 -136
  1509. package/dist/transport-umzEbgYO.mjs.map +0 -1
  1510. package/dist/trusted-proxy-BqfQFs6a.mjs +0 -51
  1511. package/dist/trusted-proxy-BqfQFs6a.mjs.map +0 -1
  1512. package/dist/turnstile-Do60baId.mjs +0 -58
  1513. package/dist/turnstile-Do60baId.mjs.map +0 -1
  1514. package/dist/types-BT1p3uyb.d.mts +0 -1735
  1515. package/dist/types-BT1p3uyb.d.mts.map +0 -1
  1516. package/dist/types-BYaPWs_F.d.mts +0 -198
  1517. package/dist/types-BYaPWs_F.d.mts.map +0 -1
  1518. package/dist/types-C-Xp0CcN.mjs +0 -103
  1519. package/dist/types-C-Xp0CcN.mjs.map +0 -1
  1520. package/dist/types-CLTQ9b_r.d.mts +0 -374
  1521. package/dist/types-CLTQ9b_r.d.mts.map +0 -1
  1522. package/dist/types-CPkQw2T2.d.mts +0 -85
  1523. package/dist/types-CPkQw2T2.d.mts.map +0 -1
  1524. package/dist/types-CQLvuXoZ.d.mts +0 -198
  1525. package/dist/types-CQLvuXoZ.d.mts.map +0 -1
  1526. package/dist/types-CV5xszpF.d.mts +0 -363
  1527. package/dist/types-CV5xszpF.d.mts.map +0 -1
  1528. package/dist/types-CdEMurNh.mjs +0 -77
  1529. package/dist/types-CdEMurNh.mjs.map +0 -1
  1530. package/dist/types-CxwtnuSS.mjs +0 -37
  1531. package/dist/types-CxwtnuSS.mjs.map +0 -1
  1532. package/dist/types-DGw8KMX_.mjs +0 -16
  1533. package/dist/types-DGw8KMX_.mjs.map +0 -1
  1534. package/dist/types-DOfVMPoo.d.mts +0 -125
  1535. package/dist/types-DOfVMPoo.d.mts.map +0 -1
  1536. package/dist/types-LtS0SM4F.d.mts +0 -287
  1537. package/dist/types-LtS0SM4F.d.mts.map +0 -1
  1538. package/dist/types-ifgOkcBa.d.mts +0 -916
  1539. package/dist/types-ifgOkcBa.d.mts.map +0 -1
  1540. package/dist/update-check-DOc2aBIU.mjs +0 -161
  1541. package/dist/update-check-DOc2aBIU.mjs.map +0 -1
  1542. package/dist/upload-attempts-nzdc3cay.mjs +0 -32
  1543. package/dist/upload-attempts-nzdc3cay.mjs.map +0 -1
  1544. package/dist/url-pattern-hVbqpXs6.mjs +0 -41
  1545. package/dist/url-pattern-hVbqpXs6.mjs.map +0 -1
  1546. package/dist/user-Dnp53zTq.mjs +0 -171
  1547. package/dist/user-Dnp53zTq.mjs.map +0 -1
  1548. package/dist/utils-CoV-PYhg.mjs +0 -439
  1549. package/dist/utils-CoV-PYhg.mjs.map +0 -1
  1550. package/dist/validate-CfQ9_YlD.d.mts +0 -468
  1551. package/dist/validate-CfQ9_YlD.d.mts.map +0 -1
  1552. package/dist/validate-DBX3DKtL.mjs +0 -516
  1553. package/dist/validate-DBX3DKtL.mjs.map +0 -1
  1554. package/dist/validation-BJMiDhB1.mjs +0 -219
  1555. package/dist/validation-BJMiDhB1.mjs.map +0 -1
  1556. package/dist/version-BaT8yKIT.mjs +0 -7
  1557. package/dist/version-BaT8yKIT.mjs.map +0 -1
  1558. package/dist/version-BwEGkqkx.mjs +0 -9
  1559. package/dist/version-BwEGkqkx.mjs.map +0 -1
  1560. package/dist/virtual-modules-B6vJW15k.mjs +0 -516
  1561. package/dist/virtual-modules-B6vJW15k.mjs.map +0 -1
  1562. package/dist/widgets-BkxBAgZ_.mjs +0 -126
  1563. package/dist/widgets-BkxBAgZ_.mjs.map +0 -1
  1564. package/dist/wxr-taxonomies-D7gAJyOF.mjs +0 -453
  1565. package/dist/wxr-taxonomies-D7gAJyOF.mjs.map +0 -1
  1566. package/dist/wxr-taxonomies-DM5J9AsT.d.mts +0 -34
  1567. package/dist/wxr-taxonomies-DM5J9AsT.d.mts.map +0 -1
  1568. package/dist/zod-generator-BQilAboC.mjs +0 -424
  1569. package/dist/zod-generator-BQilAboC.mjs.map +0 -1
  1570. /package/dist/{api-tokens-BLz2MtQs.mjs → api-tokens-CdP49zVF.mjs} +0 -0
  1571. /package/dist/{ssrf-tA45vIPX.mjs → ssrf-DM0E-D_8.mjs} +0 -0
@@ -0,0 +1,1615 @@
1
+ import { f as UpdateContentInput, i as ContentItem, l as FindManyOptions, s as CreateContentInput, t as BylineSummary, u as FindManyResult } from "./types-CNB-dj6F.mjs";
2
+ import { t as Database } from "./types-DCFavOii.mjs";
3
+ import { $ as ContentSchedulePolicyEvent, An as StorageCollection, Bt as PageMetadataContribution, Cn as ResolvedPlugin, D as ContentAccess, Dn as SettingField, Dt as MediaAccess, E as ConditionalWriteResult, En as SchemaAccess, G as ContentItem$1, Gt as PaginatedResult, H as ContentCreateOptions, Hn as UpdateIfResult, J as ContentPolicyEvent, Kn as VersionedValue, Lt as PageFragmentContribution, Mt as MediaItem$1, Nt as MediaMetadataPatch, O as ContentAccessWithWrite, On as SettingsAccess, Pn as TaxonomyAccessWithWrite, Q as ContentSaveHookDetails, Qt as PluginContentCreateCallback, Rt as PageFragmentEvent, St as HttpAccess, T as ConditionalDeleteResult, Un as UserInfo, Vt as PageMetadataEvent, Wn as VersionedContentItem, Xt as PluginComment, Zt as PluginCommentStatus, _ as CommentAfterModerateEvent, an as PluginManifest, at as CronEvent, gt as EmailMessage, h as CommentAfterCreateEvent, hn as RedirectAccessWithWrite, it as CronAccess, jt as MediaBytes, kn as SiteInfo, m as CommentAccess, mn as RedirectAccess, pn as QueryOptions, qn as WhereClause, r as BylineAccess, rt as ContentWriteInput, st as CronTaskInfo, t as ActorInfo, xn as RequestMeta, y as CommentBeforeCreateEvent } from "./types-QoPHm-2w.mjs";
4
+ import { t as OptionsRepository } from "./options-DJWaq3Ie.mjs";
5
+ import { p as Storage } from "./types-Bwpzb5o6.mjs";
6
+ import { Kysely } from "kysely";
7
+ import { PluginUiContext } from "@emdash-cms/blocks/server";
8
+
9
+ //#region src/config/secrets.d.ts
10
+ /**
11
+ * A parsed encryption key with its kid (key id) fingerprint.
12
+ *
13
+ * `kid` is the first 8 chars of the SHA-256 hash of the decoded key bytes
14
+ * (lowercase hex), used to tag envelopes so the decryptor can pick the right
15
+ * key during rotation.
16
+ */
17
+ interface ParsedEncryptionKey {
18
+ /** 8-char lowercase hex fingerprint derived from the decoded key bytes. */
19
+ kid: string;
20
+ /** The 32 raw key bytes, ready for `crypto.subtle.importKey`. */
21
+ key: Uint8Array;
22
+ /** The original env-var-formatted string (kept for re-emit; never log). */
23
+ raw: string;
24
+ }
25
+ /** Environment-variable shape consulted by the resolver. */
26
+ interface SecretsEnv {
27
+ /**
28
+ * Read by `validateEncryptionKeyAtStartup` and the plugin-secret encryption
29
+ * layer. **Not** consulted by `resolveSecrets`,
30
+ * so a malformed value can't 500 the preview/comment hot paths.
31
+ */
32
+ EMDASH_ENCRYPTION_KEY?: string;
33
+ EMDASH_PREVIEW_SECRET?: string;
34
+ /** Legacy alias; new docs point at EMDASH_PREVIEW_SECRET. */
35
+ PREVIEW_SECRET?: string;
36
+ EMDASH_IP_SALT?: string;
37
+ /**
38
+ * Legacy fallback. Prior code derived the IP salt from
39
+ * `EMDASH_AUTH_SECRET || AUTH_SECRET || "emdash-ip-salt"`. We preserve
40
+ * the env-var fallback (so existing installs keep their stable salt)
41
+ * but no longer read it from `import.meta.env` in route handlers.
42
+ */
43
+ EMDASH_AUTH_SECRET?: string;
44
+ /** Legacy alias. */
45
+ AUTH_SECRET?: string;
46
+ }
47
+ /**
48
+ * Resolve the encryption keys used for plugin secret settings.
49
+ *
50
+ * This is deliberately separate from `resolveSecrets`: plugin settings are
51
+ * not on the anonymous request path, and a missing or malformed key must only
52
+ * fail operations that need encrypted plugin settings.
53
+ */
54
+ declare function resolvePluginEncryptionKeys(env?: SecretsEnv): Promise<ParsedEncryptionKey[] | null>;
55
+ //#endregion
56
+ //#region src/datetime-normalization.d.ts
57
+ interface DatetimeFieldDescriptor {
58
+ slug: string;
59
+ type: "datetime" | "repeater";
60
+ datetimeSubFields?: readonly string[];
61
+ }
62
+ //#endregion
63
+ //#region src/database/content-datetime.d.ts
64
+ interface UrlFieldDescriptor {
65
+ slug: string;
66
+ urlSubFields?: readonly string[];
67
+ }
68
+ interface DatetimeContext {
69
+ timezone: string;
70
+ fields: DatetimeFieldDescriptor[];
71
+ urlFields: UrlFieldDescriptor[];
72
+ writableFieldSlugs: ReadonlySet<string>;
73
+ }
74
+ /**
75
+ * Datetime contexts by collection slug, shared so that a bulk write reads each
76
+ * collection's context once. A cached context doesn't see later writes to the
77
+ * `site:timezone` setting or to field definitions, so share one only across
78
+ * work that makes neither.
79
+ */
80
+ type DatetimeContextCache = Map<string, Promise<DatetimeContext>>;
81
+ //#endregion
82
+ //#region src/database/repositories/content.d.ts
83
+ type ContentRevisionPrecondition = Pick<ContentItem, "version" | "updatedAt">;
84
+ /**
85
+ * Repository for content CRUD operations
86
+ *
87
+ * Content is stored in per-collection tables (ec_posts, ec_pages, etc.)
88
+ * Each field becomes a real column in the table.
89
+ */
90
+ declare class ContentRepository {
91
+ private db;
92
+ private readonly datetimeContexts?;
93
+ private readonly datetimes;
94
+ constructor(db: Kysely<Database>, datetimeContexts?: DatetimeContextCache | undefined);
95
+ /**
96
+ * Create a new content item
97
+ */
98
+ create(input: CreateContentInput): Promise<ContentItem>;
99
+ /**
100
+ * Generate a unique slug for a content item within a collection.
101
+ *
102
+ * Checks the collection table for existing slugs that match `baseSlug`
103
+ * (optionally scoped to a locale) and appends a numeric suffix (`-1`,
104
+ * `-2`, etc.) on collision to guarantee uniqueness.
105
+ *
106
+ * Returns null when slug normalization cannot produce a value.
107
+ */
108
+ generateUniqueSlug(type: string, text: string, locale?: string): Promise<string | null>;
109
+ /**
110
+ * Duplicate a content item
111
+ * Creates a new draft copy with "(Copy)" appended to the title.
112
+ * A slug is auto-generated from the new title by the handler layer.
113
+ */
114
+ duplicate(type: string, id: string, authorId?: string): Promise<ContentItem>;
115
+ /**
116
+ * Find content by ID
117
+ */
118
+ findById(type: string, id: string): Promise<ContentItem | null>;
119
+ findManyByIds(type: string, ids: string[], options?: {
120
+ includeTrashed?: boolean;
121
+ }): Promise<Map<string, ContentItem>>;
122
+ findManyBySlugsInLocale(type: string, slugs: string[], locale: string, options?: {
123
+ includeTrashed?: boolean;
124
+ }): Promise<Map<string, ContentItem>>;
125
+ /**
126
+ * Find content by id, including trashed (soft-deleted) items.
127
+ * Used by restore endpoint for ownership checks.
128
+ *
129
+ * `deletedAt` rides along because the row is already in hand: a caller that
130
+ * has to know whether the row is trashed before touching anything else would
131
+ * otherwise pay a second read for a column this row already carries.
132
+ */
133
+ findByIdIncludingTrashed(type: string, id: string): Promise<(ContentItem & {
134
+ deletedAt: string | null;
135
+ }) | null>;
136
+ /**
137
+ * Find content by ID or slug. Tries ID first if it looks like a ULID,
138
+ * otherwise tries slug. Falls back to the other if the first lookup misses.
139
+ */
140
+ findByIdOrSlug(type: string, identifier: string, locale?: string): Promise<ContentItem | null>;
141
+ /**
142
+ * Find content by ID or slug, including trashed (soft-deleted) items.
143
+ * Used by restore/permanent-delete endpoints.
144
+ */
145
+ findByIdOrSlugIncludingTrashed(type: string, identifier: string, locale?: string): Promise<ContentItem | null>;
146
+ isTrashed(type: string, id: string): Promise<boolean>;
147
+ private _findByIdOrSlug;
148
+ /**
149
+ * Find content by slug
150
+ */
151
+ findBySlug(type: string, slug: string, locale?: string): Promise<ContentItem | null>;
152
+ /**
153
+ * Find content by slug, including trashed (soft-deleted) items.
154
+ * Used by restore/permanent-delete endpoints.
155
+ */
156
+ findBySlugIncludingTrashed(type: string, slug: string, locale?: string): Promise<ContentItem | null>;
157
+ /**
158
+ * Find many content items with filtering and pagination
159
+ */
160
+ findMany(type: string, options?: FindManyOptions): Promise<FindManyResult<ContentItem>>;
161
+ /**
162
+ * Update content
163
+ */
164
+ update(type: string, id: string, input: UpdateContentInput): Promise<ContentItem>;
165
+ restoreRevision(type: string, id: string, revisionData: Record<string, unknown>, authorId: string): Promise<{
166
+ item: ContentItem;
167
+ revisionId: string;
168
+ }>;
169
+ restoreDraftRevision(type: string, id: string, revisionData: Record<string, unknown>, authorId: string): Promise<string | null>;
170
+ /**
171
+ * Update plugin-authored fields without letting content columns diverge
172
+ * from the revision pointers that publication promotes.
173
+ */
174
+ updateDraftAware(type: string, id: string, input: UpdateContentInput): Promise<ContentItem>;
175
+ private deleteUnstagedRevision;
176
+ private replaceDraftRevisionForUpdate;
177
+ /**
178
+ * Copy non-translatable field values to every other entry in the
179
+ * translation group, trashed entries included.
180
+ *
181
+ * Only the fields present in `data` are copied. With `previous`, `data` is
182
+ * the entry's complete new state and only the fields whose value differs
183
+ * from `previous` are copied, an absent field as null. An entry that already
184
+ * holds every copied value is left untouched, so its `updated_at` does not
185
+ * move.
186
+ *
187
+ * On collections with revisions a changed entry also gets a new live
188
+ * revision, because republishing and unpublishing read that revision rather
189
+ * than the columns. A pending draft takes a value only where it still holds
190
+ * the entry's previous value, so an unpublished edit to the field survives.
191
+ */
192
+ syncNonTranslatableFields(type: string, sourceId: string, translationGroup: string, data: Record<string, unknown>, options?: {
193
+ previous?: Record<string, unknown>;
194
+ }): Promise<void>;
195
+ private syncSiblingValues;
196
+ /**
197
+ * Delete content (soft delete - moves to trash)
198
+ */
199
+ delete(type: string, id: string): Promise<boolean>;
200
+ /**
201
+ * Restore content from trash
202
+ *
203
+ * The entry comes back as a draft with no schedule. The live version is not
204
+ * copied into a draft revision: collections without revisions save to the
205
+ * columns, and a draft revision would hide those saves.
206
+ */
207
+ restore(type: string, id: string, expectedRevision?: ContentRevisionPrecondition): Promise<ContentItem | null>;
208
+ /**
209
+ * Permanently delete content (cannot be undone)
210
+ */
211
+ /**
212
+ * Permanently delete a soft-deleted content row.
213
+ *
214
+ * Returns `true` only when a soft-deleted (trashed) row was removed.
215
+ * Returns `false` when no row exists OR when the row exists but is live —
216
+ * the caller is responsible for distinguishing these cases (typically via
217
+ * a follow-up `findByIdOrSlugIncludingTrashed` to surface NOT_FOUND vs
218
+ * NOT_TRASHED). The `AND deleted_at IS NOT NULL` clause is the safety net
219
+ * that prevents permanent delete from bypassing the trash workflow.
220
+ */
221
+ permanentDelete(type: string, id: string): Promise<boolean>;
222
+ /**
223
+ * Find trashed content items
224
+ */
225
+ findTrashed(type: string, options?: Omit<FindManyOptions, "where"> & {
226
+ where?: {
227
+ locale?: string;
228
+ };
229
+ }): Promise<FindManyResult<ContentItem & {
230
+ deletedAt: string;
231
+ }>>;
232
+ /**
233
+ * Count trashed content items
234
+ */
235
+ countTrashed(type: string, options?: {
236
+ locale?: string;
237
+ }): Promise<number>;
238
+ /**
239
+ * Apply the optional `q` filter.
240
+ *
241
+ * When the handler sets `useFts` (collection has a healthy FTS5 index
242
+ * covering the display columns; SQLite only), the filter is served from
243
+ * the index: a token-prefix MATCH against `_emdash_fts_<slug>` OR'd with
244
+ * an index-served `slug GLOB 'term*'` prefix (the slug is not in the FTS
245
+ * index). Both sides are index-backed, so SQLite's OR optimization avoids
246
+ * the full-table scan the LIKE fallback needs (#1517). The trade-off is
247
+ * search semantics: token-prefix matching instead of arbitrary substring.
248
+ *
249
+ * Fallback (Postgres, search disabled, or no usable terms): case-
250
+ * insensitive substring LIKE across the handler-resolved `searchColumns`
251
+ * (OR'd). User input is treated literally (LIKE wildcards escaped) and
252
+ * `lower()` is applied on both sides for SQLite/Postgres parity.
253
+ */
254
+ private applySearchFilter;
255
+ /**
256
+ * Apply the optional inclusive date-range filter. The field is mapped
257
+ * through `DATE_FILTER_COLUMNS` (a closed whitelist), and bounds compare
258
+ * lexicographically against the stored ISO 8601 timestamps. A `publishedAt`
259
+ * range naturally excludes never-published rows (their column is NULL).
260
+ */
261
+ private applyDateFilter;
262
+ /**
263
+ * Apply the optional byline filter as a correlated (NOT) EXISTS against
264
+ * `_emdash_content_bylines`.
265
+ *
266
+ * Correlating from the content table preserves the outer sort index so
267
+ * `LIMIT` can short-circuit. `mode: "none"` tests the junction rather than
268
+ * `primary_byline_id` because the two are written in the same call but
269
+ * are not atomically consistent, so the junction is authoritative.
270
+ *
271
+ * Whether a credit *renders* is locale-scoped; whether one *exists* is
272
+ * not. Both are needed: the first decides what the filter matches, the
273
+ * second decides whether the author fallback applies at all.
274
+ */
275
+ private applyBylineFilter;
276
+ /**
277
+ * Count content items
278
+ */
279
+ count(type: string, where?: FindManyOptions["where"]): Promise<number>;
280
+ private countWithResolvedFilters;
281
+ /**
282
+ * Distinct, non-null `author_id` values across the collection's live
283
+ * (non-trashed) content. Used to populate the admin author filter with
284
+ * only the users who have actually authored entries, rather than the
285
+ * full user directory (which requires admin privileges to read).
286
+ */
287
+ findDistinctAuthorIds(type: string): Promise<string[]>;
288
+ getStats(type: string, now?: Date): Promise<{
289
+ total: number;
290
+ published: number;
291
+ draft: number;
292
+ scheduled: number;
293
+ overdueScheduled: number;
294
+ }>;
295
+ /**
296
+ * Schedule content for future publishing
297
+ *
298
+ * Sets status to 'scheduled' and stores the scheduled publish time.
299
+ * The content will be auto-published when the scheduled time is reached.
300
+ */
301
+ schedule(type: string, id: string, scheduledAt: string, currentTime?: Date, expectedRevision?: ContentRevisionPrecondition): Promise<ContentItem>;
302
+ /**
303
+ * Unschedule content
304
+ *
305
+ * Clears the scheduled time. Published posts stay published;
306
+ * draft/scheduled posts revert to 'draft'.
307
+ */
308
+ unschedule(type: string, id: string, expectedRevision?: ContentRevisionPrecondition): Promise<ContentItem>;
309
+ /**
310
+ * Find content that is ready to be published
311
+ *
312
+ * Returns all content where scheduled_at <= now, regardless of status.
313
+ * This covers both draft-scheduled posts (status='scheduled') and
314
+ * published posts with scheduled draft changes (status='published').
315
+ *
316
+ * `limit` (optional) caps how many due rows are returned, oldest-due first.
317
+ * The scheduled-publishing sweep passes a limit so a large backlog can't
318
+ * fan out unbounded publish/webhook work in a single tick (and blow a Worker
319
+ * invocation's CPU/subrequest budget); the remainder drains on later ticks.
320
+ */
321
+ findReadyToPublish(type: string, limit?: number, currentTime?: Date, after?: {
322
+ scheduledAt: string;
323
+ id: string;
324
+ }): Promise<ContentItem[]>;
325
+ findTranslationIds(type: string, translationGroup: string): Promise<string[]>;
326
+ findTranslationIdsForGroups(type: string, translationGroups: string[]): Promise<Map<string, string[]>>;
327
+ /**
328
+ * Find all translations in a translation group
329
+ */
330
+ findTranslations(type: string, translationGroup: string): Promise<ContentItem[]>;
331
+ /**
332
+ * Whether any row still shares `translationGroup`, trashed rows included.
333
+ * Group-keyed satellite data (term assignments, reference edges) is owned by
334
+ * the group, not by a single locale row, so a purge may only cascade to it
335
+ * once nothing is left to own it — and a trashed sibling is still restorable.
336
+ */
337
+ hasTranslationsIncludingTrashed(type: string, translationGroup: string, options?: {
338
+ excludeId?: string;
339
+ }): Promise<boolean>;
340
+ /**
341
+ * Batch variant of {@link findTranslations}: every (non-deleted) locale
342
+ * variant for any of `translationGroups`, in one `WHERE translation_group IN
343
+ * (...)` query chunked at `SQL_BATCH_SIZE` for D1's bind-parameter limit.
344
+ * Lets callers resolve many edge groups without an N+1 per group. The caller
345
+ * groups the flat result by `translationGroup` itself.
346
+ *
347
+ * `translation_group` leads the sort so the ordering follows
348
+ * `idx_{table}_del_tg_locale` past its `deleted_at` equality; callers group by
349
+ * `translationGroup`, so the per-group locale order they rely on is preserved.
350
+ *
351
+ * `publishedOnly` restricts the result to `status = 'published'` — reference
352
+ * reads pass this for callers without `content:read_drafts` so draft/scheduled
353
+ * entries never leak through an edge traversal.
354
+ *
355
+ * A reference edge stores only a collection slug (no SQL FK), so the table may
356
+ * have been dropped since the edge was written. That is a tolerated dangling
357
+ * state, not an error: a missing table resolves to no rows, mirroring how the
358
+ * content read handlers treat `isMissingTableError`.
359
+ */
360
+ findTranslationsForGroups(type: string, translationGroups: string[], options?: {
361
+ publishedOnly?: boolean;
362
+ }): Promise<ContentItem[]>;
363
+ /**
364
+ * Batch variant of {@link findByIdOrSlug}: resolve many identifiers (each an
365
+ * id OR a slug) within `type` in a constant number of queries — one `WHERE id
366
+ * IN (...)` and one `WHERE slug IN (...)`, each chunked at `SQL_BATCH_SIZE`.
367
+ * Returns a map from the input identifier to its resolved item; identifiers
368
+ * that match nothing are absent. Used on write paths that accept a list of
369
+ * references, so a single request doesn't fan out to an N+1 of point lookups.
370
+ *
371
+ * Resolution mirrors {@link findByIdOrSlug}: a ULID-shaped identifier prefers
372
+ * the id match and falls back to slug; anything else prefers the slug match
373
+ * and falls back to id. Slug matches collapse to the lowest-locale variant
374
+ * (`ORDER BY locale ASC`), matching the slug-without-locale lookup.
375
+ */
376
+ findManyByIdOrSlug(type: string, identifiers: string[]): Promise<Map<string, ContentItem>>;
377
+ /**
378
+ * Publish the current draft
379
+ *
380
+ * Promotes draft_revision_id to live_revision_id and clears draft pointer.
381
+ * Syncs the draft revision's data into the content table columns so the
382
+ * content table always reflects the published version.
383
+ * If no draft revision exists, creates one from current data and publishes it.
384
+ * When `promoteRevision` is false, publishes the current content-table data
385
+ * by changing lifecycle metadata only.
386
+ *
387
+ * `publishedAt` (optional) overrides the publication timestamp. If omitted,
388
+ * the existing `published_at` is preserved (idempotent re-publish keeps the
389
+ * original date) and falls back to the current time on first publish. Pass
390
+ * an explicit value to backdate a publish (e.g. when migrating content from
391
+ * another CMS).
392
+ *
393
+ * `requireDue` gates the final update on the row still being due.
394
+ * `expectedScheduledAt` additionally fences changes made after a sweep
395
+ * selected the row but before publication preparation began.
396
+ */
397
+ publish(type: string, id: string, publishedAt?: string, requireDue?: boolean, expectedScheduledAt?: string, promoteRevision?: boolean, requireSlug?: boolean, expectedRevision?: ContentRevisionPrecondition, currentTime?: Date): Promise<ContentItem>;
398
+ /**
399
+ * Unpublish content
400
+ *
401
+ * Removes live pointer and cancels any pending schedule, but preserves the
402
+ * draft and publication date. If no draft exists, creates one from the live
403
+ * version so the content isn't lost.
404
+ */
405
+ unpublish(type: string, id: string, expectedRevision?: ContentRevisionPrecondition): Promise<ContentItem>;
406
+ /**
407
+ * Set the draft revision pointer for a content item.
408
+ *
409
+ * Used by seed/import paths that stage a new revision's data before
410
+ * promoting it to live via `publish()`.
411
+ *
412
+ * Validates that the content item exists and is not soft-deleted, that
413
+ * the revision exists, and that the revision belongs to the same
414
+ * collection and entry. Without these checks, a caller could leave the
415
+ * content row pointing at a missing or unrelated revision.
416
+ */
417
+ setDraftRevision(type: string, id: string, revisionId: string): Promise<void>;
418
+ replaceDraftRevision(type: string, id: string, revisionId: string, expected: Pick<ContentItem, "version" | "liveRevisionId" | "draftRevisionId">): Promise<boolean>;
419
+ /**
420
+ * Discard pending draft changes
421
+ *
422
+ * Clears draft_revision_id. The content table columns already hold the
423
+ * published version, so no data sync is needed.
424
+ */
425
+ discardDraft(type: string, id: string, expectedRevision?: ContentRevisionPrecondition): Promise<ContentItem>;
426
+ /**
427
+ * Count content items with a pending schedule.
428
+ * Includes both draft-scheduled (status='scheduled') and published
429
+ * posts with scheduled draft changes (status='published', scheduled_at set).
430
+ */
431
+ countScheduled(type: string): Promise<number>;
432
+ /**
433
+ * Map database row to ContentItem
434
+ * Extracts system columns and puts content fields in data
435
+ * Excludes null values from data to match input semantics
436
+ */
437
+ private mapRow;
438
+ private normalizeFilterScalar;
439
+ private normalizeFieldFilter;
440
+ private collectionExists;
441
+ private resolveFieldFilters;
442
+ private applyFieldFilters;
443
+ /**
444
+ * Map order field names to database columns.
445
+ * Only allows known fields to prevent column enumeration via crafted orderBy values.
446
+ */
447
+ private mapOrderField;
448
+ private resolveOrderField;
449
+ }
450
+ //#endregion
451
+ //#region src/media/focal-point.d.ts
452
+ interface FocalPointUpdate {
453
+ focalX?: number | null;
454
+ focalY?: number | null;
455
+ }
456
+ //#endregion
457
+ //#region src/database/repositories/media.d.ts
458
+ type MediaStatus = "pending" | "ready" | "failed";
459
+ interface MediaItem {
460
+ id: string;
461
+ filename: string;
462
+ mimeType: string;
463
+ size: number | null;
464
+ width: number | null;
465
+ height: number | null;
466
+ focalX: number | null;
467
+ focalY: number | null;
468
+ alt: string | null;
469
+ caption: string | null;
470
+ storageKey: string;
471
+ status: MediaStatus;
472
+ contentHash: string | null;
473
+ blurhash: string | null;
474
+ dominantColor: string | null;
475
+ createdAt: string;
476
+ authorId: string | null;
477
+ folderId?: string | null;
478
+ }
479
+ interface CreateMediaInput {
480
+ filename: string;
481
+ mimeType: string;
482
+ size?: number;
483
+ width?: number;
484
+ height?: number;
485
+ alt?: string;
486
+ caption?: string;
487
+ storageKey: string;
488
+ contentHash?: string;
489
+ blurhash?: string;
490
+ dominantColor?: string;
491
+ status?: MediaStatus;
492
+ authorId?: string;
493
+ folderId?: string | null;
494
+ }
495
+ interface FindManyMediaOptions {
496
+ limit?: number;
497
+ cursor?: string;
498
+ /** Filter by MIME type. Pass a string for a single prefix/exact, or an array to match any. Strings ending with "/" are treated as LIKE prefix matches; others are exact equality. */
499
+ mimeType?: string | readonly string[];
500
+ status?: MediaStatus | "all";
501
+ /** Case-insensitive substring matched against the filename (covers filename and extension). */
502
+ q?: string;
503
+ /** Omit for all media, pass null for the Main library, or pass a folder ID. */
504
+ folderId?: string | null;
505
+ }
506
+ interface UpdateMediaInput extends FocalPointUpdate {
507
+ alt?: string | null;
508
+ caption?: string | null;
509
+ width?: number;
510
+ height?: number;
511
+ folderId?: string | null;
512
+ }
513
+ interface ReplaceReadyMediaInput {
514
+ size: number;
515
+ width: number;
516
+ height: number;
517
+ contentHash: string;
518
+ }
519
+ interface FindMediaPageOptions extends Omit<FindManyMediaOptions, "cursor"> {
520
+ page: number;
521
+ }
522
+ interface MediaPageResult {
523
+ items: MediaItem[];
524
+ totalCount: number;
525
+ }
526
+ /**
527
+ * Media repository for database operations
528
+ */
529
+ declare class MediaRepository {
530
+ private db;
531
+ constructor(db: Kysely<Database>);
532
+ /**
533
+ * Create a new media item
534
+ */
535
+ create(input: CreateMediaInput): Promise<MediaItem>;
536
+ /**
537
+ * Create a pending media item (for signed URL upload flow)
538
+ */
539
+ createPending(input: {
540
+ filename: string;
541
+ mimeType: string;
542
+ size?: number;
543
+ storageKey: string;
544
+ contentHash?: string;
545
+ authorId?: string;
546
+ folderId?: string | null;
547
+ }): Promise<MediaItem>;
548
+ createUploadAttempt(mediaId: string, storageKey: string): Promise<void>;
549
+ /**
550
+ * Register a stored object for cleanup before its media row is removed,
551
+ * so a failed storage delete is retried by the cleanup sweep instead of
552
+ * leaving the object unreferenced and unreachable.
553
+ */
554
+ trackStorageKeyForCleanup(mediaId: string, storageKey: string): Promise<void>;
555
+ hasUploadAttempt(storageKey: string): Promise<boolean>;
556
+ claimUploadAttemptForCleanup(storageKey: string): Promise<boolean>;
557
+ deleteUploadAttempt(storageKey: string): Promise<void>;
558
+ deferUploadAttemptCleanup(storageKey: string): Promise<void>;
559
+ deleteCompletedUploadAttempts(): Promise<number>;
560
+ findUploadAttemptsForCleanup(maxAgeMs?: number, limit?: number): Promise<string[]>;
561
+ publishPendingStorageKey(id: string, expectedStorageKey: string, storageKey: string, contentHash?: string): Promise<boolean>;
562
+ /**
563
+ * Confirm upload (mark as ready)
564
+ */
565
+ confirmUpload(id: string, metadata?: {
566
+ width?: number;
567
+ height?: number;
568
+ size?: number;
569
+ blurhash?: string;
570
+ dominantColor?: string;
571
+ contentHash?: string | null;
572
+ }, expectedStorageKey?: string): Promise<MediaItem | null>;
573
+ /**
574
+ * Mark upload as failed
575
+ */
576
+ markFailed(id: string, expectedStorageKey?: string): Promise<MediaItem | null>;
577
+ /**
578
+ * Find the pending media row minted for a signed upload URL.
579
+ */
580
+ findPendingByStorageKey(storageKey: string): Promise<MediaItem | null>;
581
+ /**
582
+ * Find media by ID
583
+ */
584
+ findById(id: string): Promise<MediaItem | null>;
585
+ /**
586
+ * Find media by filename
587
+ * Useful for idempotent imports
588
+ */
589
+ findByFilename(filename: string): Promise<MediaItem | null>;
590
+ findAvailableFilename(filename: string): Promise<string>;
591
+ /**
592
+ * Find media by content hash
593
+ * Used for deduplication - same content = same hash
594
+ */
595
+ findByContentHash(contentHash: string): Promise<MediaItem | null>;
596
+ /**
597
+ * Find many media items with cursor pagination
598
+ *
599
+ * Uses keyset pagination (cursor-based) for consistent results.
600
+ * The cursor encodes the created_at and id of the last item.
601
+ */
602
+ findMany(options?: FindManyMediaOptions): Promise<FindManyResult<MediaItem>>;
603
+ findPage(options: FindMediaPageOptions): Promise<MediaPageResult>;
604
+ /**
605
+ * Update media metadata
606
+ */
607
+ update(id: string, input: UpdateMediaInput): Promise<MediaItem | null>;
608
+ updateReadyMetadata(id: string, input: Pick<UpdateMediaInput, "alt" | "caption" | "focalX" | "focalY">): Promise<MediaItem | null>;
609
+ replaceReadyFile(id: string, expectedStorageKey: string, input: ReplaceReadyMediaInput): Promise<MediaItem | null>;
610
+ /**
611
+ * Delete media item
612
+ */
613
+ deleteWithStorageKey(id: string): Promise<string | null>;
614
+ isStorageKeyReferenced(storageKey: string): Promise<boolean>;
615
+ delete(id: string): Promise<boolean>;
616
+ /**
617
+ * Count media items
618
+ */
619
+ count(mimeType?: string | readonly string[]): Promise<number>;
620
+ private applyListFilters;
621
+ /**
622
+ * Delete pending uploads older than the given age.
623
+ * Pending uploads that were never confirmed indicate abandoned upload flows.
624
+ *
625
+ * Returns the storage keys of deleted rows so callers can remove the
626
+ * corresponding files from object storage.
627
+ */
628
+ cleanupPendingUploads(maxAgeMs?: number): Promise<string[]>;
629
+ /**
630
+ * Convert database row to MediaItem
631
+ */
632
+ private rowToItem;
633
+ }
634
+ //#endregion
635
+ //#region src/database/repositories/plugin-storage.d.ts
636
+ declare class PluginStorageRepository<T = unknown> implements StorageCollection<T> {
637
+ private db;
638
+ private pluginId;
639
+ private collection;
640
+ private indexedFields;
641
+ constructor(db: Kysely<Database>, pluginId: string, collection: string, indexes: Array<string | string[]>);
642
+ /**
643
+ * Get a document by ID
644
+ */
645
+ get(id: string): Promise<T | null>;
646
+ /**
647
+ * Store a document
648
+ */
649
+ put(id: string, data: T): Promise<void>;
650
+ getVersioned(id: string): Promise<VersionedValue<T> | null>;
651
+ compareAndSet(id: string, expectedRevision: string | null, data: T): Promise<ConditionalWriteResult>;
652
+ compareAndDelete(id: string, expectedRevision: string): Promise<ConditionalDeleteResult>;
653
+ /**
654
+ * Delete a document
655
+ */
656
+ delete(id: string): Promise<boolean>;
657
+ /**
658
+ * Check if a document exists
659
+ */
660
+ exists(id: string): Promise<boolean>;
661
+ /**
662
+ * Get multiple documents by ID
663
+ */
664
+ getMany(ids: string[]): Promise<Map<string, T>>;
665
+ /**
666
+ * Store multiple documents
667
+ */
668
+ putMany(items: Array<{
669
+ id: string;
670
+ data: T;
671
+ }>): Promise<void>;
672
+ /**
673
+ * Delete multiple documents
674
+ */
675
+ deleteMany(ids: string[]): Promise<number>;
676
+ /**
677
+ * Query documents with filters
678
+ */
679
+ query(options?: QueryOptions): Promise<PaginatedResult<{
680
+ id: string;
681
+ data: T;
682
+ }>>;
683
+ /**
684
+ * Count documents matching a filter
685
+ */
686
+ count(where?: WhereClause): Promise<number>;
687
+ updateIf(id: string, args: unknown): Promise<UpdateIfResult<T>>;
688
+ }
689
+ //#endregion
690
+ //#region src/plugins/hooks.d.ts
691
+ type HookNameV2 = "plugin:install" | "plugin:activate" | "plugin:deactivate" | "plugin:uninstall" | "content:beforeSave" | "content:afterSave" | "content:beforeDelete" | "content:afterDelete" | "content:beforePublish" | "content:beforeSchedule" | "content:beforeUnpublish" | "content:afterPublish" | "content:afterUnpublish" | "content:afterRestore" | "content:afterSchedule" | "content:afterUnschedule" | "media:beforeUpload" | "media:afterUpload" | "cron" | "email:beforeSend" | "email:deliver" | "email:afterSend" | "comment:beforeCreate" | "comment:moderate" | "comment:afterCreate" | "comment:afterModerate" | "byline:afterSave" | "byline:afterDelete" | "page:metadata" | "page:fragments";
692
+ type ContentPolicyHookName = "content:beforePublish" | "content:beforeSchedule" | "content:beforeUnpublish";
693
+ type ContentPolicyRunResult = {
694
+ cancellation?: {
695
+ pluginId: string;
696
+ reason: string;
697
+ };
698
+ results: HookResult<void>[];
699
+ };
700
+ /**
701
+ * Hook execution result
702
+ */
703
+ interface HookResult<T> {
704
+ success: boolean;
705
+ value?: T;
706
+ error?: Error;
707
+ pluginId: string;
708
+ duration: number;
709
+ }
710
+ /**
711
+ * Hook pipeline for executing hooks in order
712
+ */
713
+ declare class HookPipeline {
714
+ private hooks;
715
+ private pluginMap;
716
+ private contextFactory;
717
+ /** Stored so setContextFactory can merge incrementally. */
718
+ private contextFactoryOptions;
719
+ /** Hook names where at least one handler declared exclusive: true */
720
+ private exclusiveHookNames;
721
+ /**
722
+ * Selected provider plugin ID for each exclusive hook.
723
+ * Set by the PluginManager after resolution.
724
+ */
725
+ private exclusiveSelections;
726
+ constructor(plugins: ResolvedPlugin[], factoryOptions?: PluginContextFactoryOptions);
727
+ /**
728
+ * Set or update the context factory options.
729
+ *
730
+ * When called on a pipeline that already has a factory, the new options
731
+ * are merged on top of the existing ones so that callers don't need to
732
+ * repeat every field (e.g. adding `cronReschedule` without losing
733
+ * `storage` / `getUploadUrl`).
734
+ */
735
+ setContextFactory(options: Partial<PluginContextFactoryOptions>): void;
736
+ /**
737
+ * Get context for a plugin
738
+ */
739
+ private getContext;
740
+ /**
741
+ * Get typed hooks for a specific hook name.
742
+ * The internal map stores ResolvedHook<unknown>, but we know each name
743
+ * maps to a specific handler type via HookHandlerMap.
744
+ *
745
+ * Exclusive hooks that have a selected provider are filtered out — they
746
+ * should only run via invokeExclusiveHook(), not in the regular pipeline.
747
+ */
748
+ private getTypedHooks;
749
+ /**
750
+ * Register all hooks from plugins.
751
+ *
752
+ * Registers each hook name individually to preserve type safety. The
753
+ * internal map stores ResolvedHook<unknown> since it's keyed by string,
754
+ * but getTypedHooks() restores the correct handler type on retrieval.
755
+ */
756
+ private registerPlugins;
757
+ /**
758
+ * Maps hook names to the capability required to register them.
759
+ *
760
+ * Hooks not listed here have no capability requirement (e.g. lifecycle
761
+ * hooks, cron). Any plugin declaring a listed hook without the required
762
+ * capability will have that hook silently skipped at registration time.
763
+ */
764
+ private static readonly HOOK_REQUIRED_CAPABILITY;
765
+ /**
766
+ * Register a single plugin's hook by name
767
+ */
768
+ private registerPluginHook;
769
+ /**
770
+ * Register a single hook
771
+ */
772
+ private registerHook;
773
+ /**
774
+ * Sort hooks by priority and dependencies
775
+ */
776
+ private sortHooks;
777
+ /**
778
+ * Execute a hook with timeout
779
+ */
780
+ private executeWithTimeout;
781
+ /**
782
+ * Run plugin:install hooks
783
+ */
784
+ runPluginInstall(pluginId: string): Promise<HookResult<void>[]>;
785
+ /**
786
+ * Run plugin:activate hooks
787
+ */
788
+ runPluginActivate(pluginId: string): Promise<HookResult<void>[]>;
789
+ /**
790
+ * Run plugin:deactivate hooks
791
+ */
792
+ runPluginDeactivate(pluginId: string): Promise<HookResult<void>[]>;
793
+ /**
794
+ * Run plugin:uninstall hooks
795
+ */
796
+ runPluginUninstall(pluginId: string, deleteData: boolean): Promise<HookResult<void>[]>;
797
+ private runLifecycleHook;
798
+ /**
799
+ * Run content:beforeSave hooks
800
+ * Returns modified content from the pipeline. `id` is the existing item's
801
+ * ID when updating. `actor` is the authenticated user that triggered the
802
+ * save, when one is available.
803
+ */
804
+ runContentBeforeSave(content: Record<string, unknown>, collection: string, isNew: boolean, id?: string, actor?: ActorInfo, details?: ContentSaveHookDetails): Promise<{
805
+ content: Record<string, unknown>;
806
+ results: HookResult<Record<string, unknown>>[];
807
+ }>;
808
+ /**
809
+ * Run content:afterSave hooks
810
+ */
811
+ runContentAfterSave(content: Record<string, unknown>, collection: string, isNew: boolean, actor?: ActorInfo, excludePluginId?: string, details?: ContentSaveHookDetails): Promise<HookResult<void>[]>;
812
+ /**
813
+ * Run content:beforeDelete hooks
814
+ * Returns whether deletion is allowed
815
+ */
816
+ runContentBeforeDelete(id: string, collection: string): Promise<{
817
+ allowed: boolean;
818
+ results: HookResult<boolean>[];
819
+ }>;
820
+ /**
821
+ * Run content:afterDelete hooks
822
+ */
823
+ runContentAfterDelete(id: string, collection: string, permanent: boolean): Promise<HookResult<void>[]>;
824
+ runContentPolicy(name: "content:beforePublish", event: ContentPolicyEvent): Promise<ContentPolicyRunResult>;
825
+ runContentPolicy(name: "content:beforeSchedule", event: ContentSchedulePolicyEvent): Promise<ContentPolicyRunResult>;
826
+ runContentPolicy(name: "content:beforeUnpublish", event: ContentPolicyEvent): Promise<ContentPolicyRunResult>;
827
+ runContentPolicy(name: ContentPolicyHookName, event: ContentPolicyEvent | ContentSchedulePolicyEvent): Promise<ContentPolicyRunResult>;
828
+ private runContentPolicyHooks;
829
+ /**
830
+ * Run content state-change hooks that all share the same event shape.
831
+ */
832
+ private runContentStateChangeHook;
833
+ /**
834
+ * Run content:afterPublish hooks (fire-and-forget).
835
+ */
836
+ runContentAfterPublish(content: Record<string, unknown>, collection: string): Promise<HookResult<void>[]>;
837
+ /**
838
+ * Run content:afterUnpublish hooks (fire-and-forget).
839
+ */
840
+ runContentAfterUnpublish(content: Record<string, unknown>, collection: string): Promise<HookResult<void>[]>;
841
+ /**
842
+ * Run content:afterRestore hooks (fire-and-forget).
843
+ */
844
+ runContentAfterRestore(content: Record<string, unknown>, collection: string): Promise<HookResult<void>[]>;
845
+ /**
846
+ * Run content:afterSchedule hooks (fire-and-forget).
847
+ */
848
+ runContentAfterSchedule(content: Record<string, unknown>, collection: string): Promise<HookResult<void>[]>;
849
+ /**
850
+ * Run content:afterUnschedule hooks (fire-and-forget).
851
+ */
852
+ runContentAfterUnschedule(content: Record<string, unknown>, collection: string): Promise<HookResult<void>[]>;
853
+ /**
854
+ * Run media:beforeUpload hooks
855
+ */
856
+ runMediaBeforeUpload(file: {
857
+ name: string;
858
+ type: string;
859
+ size: number;
860
+ }): Promise<{
861
+ file: {
862
+ name: string;
863
+ type: string;
864
+ size: number;
865
+ };
866
+ results: HookResult<{
867
+ name: string;
868
+ type: string;
869
+ size: number;
870
+ }>[];
871
+ }>;
872
+ /**
873
+ * Run media:afterUpload hooks
874
+ */
875
+ runMediaAfterUpload(media: {
876
+ id: string;
877
+ filename: string;
878
+ mimeType: string;
879
+ size: number | null;
880
+ url: string;
881
+ createdAt: string;
882
+ }): Promise<HookResult<void>[]>;
883
+ /**
884
+ * Invoke the cron hook for a specific plugin.
885
+ *
886
+ * Unlike other hooks which broadcast to all plugins, the cron hook is
887
+ * dispatched only to the target plugin — the one that owns the task.
888
+ */
889
+ invokeCronHook(pluginId: string, event: CronEvent): Promise<HookResult<void>>;
890
+ /**
891
+ * Run email:beforeSend hooks (middleware pipeline).
892
+ *
893
+ * Each handler receives the message and returns a modified message or
894
+ * `false` to cancel delivery. The pipeline chains message transformations —
895
+ * each handler receives the output of the previous one.
896
+ */
897
+ runEmailBeforeSend(message: EmailMessage, source: string): Promise<{
898
+ message: EmailMessage | false;
899
+ results: HookResult<EmailMessage | false>[];
900
+ }>;
901
+ /**
902
+ * Run email:afterSend hooks (fire-and-forget).
903
+ *
904
+ * Errors are logged but don't propagate — they don't affect the caller.
905
+ */
906
+ runEmailAfterSend(message: EmailMessage, source: string): Promise<HookResult<void>[]>;
907
+ /**
908
+ * Run comment:beforeCreate hooks (middleware pipeline).
909
+ *
910
+ * Each handler receives the event and returns a modified event or
911
+ * `false` to reject the comment. The pipeline chains transformations —
912
+ * each handler receives the output of the previous one.
913
+ */
914
+ runCommentBeforeCreate(event: CommentBeforeCreateEvent): Promise<CommentBeforeCreateEvent | false>;
915
+ /**
916
+ * Run comment:afterCreate hooks (fire-and-forget).
917
+ *
918
+ * Errors are logged but don't propagate — they don't affect the caller.
919
+ */
920
+ runCommentAfterCreate(event: CommentAfterCreateEvent): Promise<void>;
921
+ /**
922
+ * Run comment:afterModerate hooks (fire-and-forget).
923
+ *
924
+ * Errors are logged but don't propagate — they don't affect the caller.
925
+ */
926
+ runCommentAfterModerate(event: CommentAfterModerateEvent): Promise<void>;
927
+ /** Run byline:afterSave hooks. Errors are logged and never propagate. */
928
+ runBylineAfterSave(byline: BylineSummary, isNew: boolean): Promise<void>;
929
+ /** Run byline:afterDelete hooks. Errors are logged and never propagate. */
930
+ runBylineAfterDelete(byline: BylineSummary): Promise<void>;
931
+ private runLoggedHook;
932
+ /**
933
+ * Run page:metadata hooks. Each handler returns contributions that are
934
+ * merged by the metadata collector. Errors are logged but don't propagate.
935
+ */
936
+ runPageMetadata(event: PageMetadataEvent): Promise<Array<{
937
+ pluginId: string;
938
+ contributions: PageMetadataContribution[];
939
+ }>>;
940
+ /**
941
+ * Run page:fragments hooks. Only trusted plugins should be registered
942
+ * for this hook. Errors are logged but don't propagate.
943
+ */
944
+ runPageFragments(event: PageFragmentEvent): Promise<Array<{
945
+ pluginId: string;
946
+ contributions: PageFragmentContribution[];
947
+ }>>;
948
+ /**
949
+ * Check if any hooks are registered for a given name
950
+ */
951
+ hasHooks(name: HookNameV2): boolean;
952
+ /**
953
+ * Get hook count for debugging
954
+ */
955
+ getHookCount(name: HookNameV2): number;
956
+ /**
957
+ * Get all registered hook names
958
+ */
959
+ getRegisteredHooks(): HookNameV2[];
960
+ /**
961
+ * Returns hook names where at least one handler declared exclusive: true
962
+ */
963
+ getRegisteredExclusiveHooks(): string[];
964
+ /**
965
+ * Check if a hook is exclusive
966
+ */
967
+ isExclusiveHook(name: string): boolean;
968
+ /**
969
+ * Set the selected provider for an exclusive hook.
970
+ * Called by PluginManager after resolution.
971
+ */
972
+ setExclusiveSelection(hookName: string, pluginId: string): void;
973
+ /**
974
+ * Clear the selected provider for an exclusive hook.
975
+ */
976
+ clearExclusiveSelection(hookName: string): void;
977
+ /**
978
+ * Get the selected provider for an exclusive hook (if any).
979
+ */
980
+ getExclusiveSelection(hookName: string): string | undefined;
981
+ /**
982
+ * Get all plugins that registered a handler for a given exclusive hook.
983
+ */
984
+ getExclusiveHookProviders(hookName: string): Array<{
985
+ pluginId: string;
986
+ }>;
987
+ /**
988
+ * Get all plugins that registered a non-exclusive handler for a given
989
+ * hook (e.g. `email:beforeSend`, `email:afterSend`), preserving priority
990
+ * order. Partitions with `getExclusiveHookProviders()`, which returns
991
+ * plugins whose registration is marked `exclusive: true`.
992
+ */
993
+ getHookProviders(hookName: string): Array<{
994
+ pluginId: string;
995
+ }>;
996
+ /**
997
+ * Invoke an exclusive hook — dispatch only to the selected provider.
998
+ * Returns null if no provider is selected or if the selected hook
999
+ * is not found in the pipeline.
1000
+ *
1001
+ * This is a generic dispatch used by the email pipeline and other
1002
+ * exclusive hook consumers. The handler type is unknown — callers
1003
+ * must know the expected signature.
1004
+ *
1005
+ * Errors are isolated: a failing handler returns an error result
1006
+ * instead of propagating the exception to the caller.
1007
+ */
1008
+ invokeExclusiveHook(hookName: string, event: unknown): Promise<{
1009
+ result: unknown;
1010
+ pluginId: string;
1011
+ error?: Error;
1012
+ duration: number;
1013
+ } | null>;
1014
+ }
1015
+ /**
1016
+ * Create a hook pipeline from plugins
1017
+ */
1018
+ declare function createHookPipeline(plugins: ResolvedPlugin[], factoryOptions?: PluginContextFactoryOptions): HookPipeline;
1019
+ //#endregion
1020
+ //#region src/plugins/email.d.ts
1021
+ /**
1022
+ * EmailPipeline orchestrates email delivery through the plugin hook system.
1023
+ *
1024
+ * The pipeline runs in three stages:
1025
+ * 1. email:beforeSend — middleware hooks that can transform or cancel messages
1026
+ * 2. email:deliver — exclusive hook dispatching to the selected provider
1027
+ * 3. email:afterSend — fire-and-forget hooks for logging/analytics
1028
+ */
1029
+ declare class EmailPipeline {
1030
+ private pipeline;
1031
+ constructor(pipeline: HookPipeline);
1032
+ /**
1033
+ * Replace the underlying hook pipeline.
1034
+ *
1035
+ * Called by the runtime when rebuilding the hook pipeline after a
1036
+ * plugin is enabled or disabled, so the email pipeline dispatches
1037
+ * to the current set of active hooks.
1038
+ */
1039
+ setPipeline(pipeline: HookPipeline): void;
1040
+ /**
1041
+ * Send an email through the full pipeline.
1042
+ *
1043
+ * @param message - The email to send
1044
+ * @param source - Where the email originated ("system" for auth, plugin ID for plugins)
1045
+ * @throws EmailNotConfiguredError if no provider is selected
1046
+ * @throws EmailRecursionError if called re-entrantly from within a hook
1047
+ * @throws Error if the provider handler throws
1048
+ */
1049
+ send(message: EmailMessage, source: string): Promise<void>;
1050
+ /**
1051
+ * Inner send implementation, separated from the recursion guard.
1052
+ */
1053
+ private sendInner;
1054
+ /**
1055
+ * Check if an email provider is configured and available.
1056
+ *
1057
+ * Returns true if an email:deliver provider is selected in the exclusive
1058
+ * hook system. Plugins and auth code use this to decide whether to show
1059
+ * "send invite" vs "copy invite link" UI.
1060
+ */
1061
+ isAvailable(): boolean;
1062
+ }
1063
+ //#endregion
1064
+ //#region src/plugins/settings.d.ts
1065
+ interface EncryptedPluginSetting {
1066
+ $emdash: "plugin-setting";
1067
+ v: 1;
1068
+ kid: string;
1069
+ iv: string;
1070
+ ciphertext: string;
1071
+ }
1072
+ declare class PluginSettingEncryptionError extends Error {
1073
+ readonly name = "PluginSettingEncryptionError";
1074
+ readonly code: "PLUGIN_SETTING_ENCRYPTION_KEY_MISSING" | "PLUGIN_SETTING_ENCRYPTION_KEY_UNKNOWN" | "PLUGIN_SETTING_ENCRYPTION_FAILED" | "PLUGIN_SETTING_DECRYPTION_FAILED";
1075
+ constructor(code: PluginSettingEncryptionError["code"], message: string);
1076
+ }
1077
+ declare function isEncryptedPluginSetting(value: unknown): value is EncryptedPluginSetting;
1078
+ declare function encryptPluginSetting(pluginId: string, key: string, value: string, keys?: ParsedEncryptionKey[] | null): Promise<EncryptedPluginSetting>;
1079
+ declare function decodePluginSettingValue<T = unknown>(pluginId: string, key: string, value: unknown, schema: Record<string, SettingField>, keys?: ParsedEncryptionKey[] | null, onSecret?: (key: string, value: string) => void): Promise<T>;
1080
+ declare function createSettingsAccess(optionsRepo: OptionsRepository, pluginId: string, schema?: Record<string, SettingField>, keys?: ParsedEncryptionKey[] | null, onSecret?: (key: string, value: string) => void): SettingsAccess;
1081
+ //#endregion
1082
+ //#region src/plugins/content-access.d.ts
1083
+ declare function createContentAccess(db: Kysely<Database>, accessOptions?: {
1084
+ site?: SiteInfo;
1085
+ revisions?: boolean;
1086
+ }): ContentAccess;
1087
+ //#endregion
1088
+ //#region src/plugins/context.d.ts
1089
+ declare function createSchemaAccess(db: Kysely<Database>): SchemaAccess;
1090
+ declare function createCommentAccess(db: Kysely<Database>, moderate?: (id: string, status: PluginCommentStatus, expectedStatus: PluginCommentStatus) => Promise<PluginComment>): CommentAccess;
1091
+ declare class RedirectAccessError extends Error {
1092
+ readonly code: string;
1093
+ readonly name = "RedirectAccessError";
1094
+ constructor(code: string, message: string);
1095
+ }
1096
+ declare function createRedirectAccess(db: Kysely<Database>): RedirectAccess;
1097
+ declare function createRedirectAccess(db: Kysely<Database>, writable: true): RedirectAccessWithWrite;
1098
+ /**
1099
+ * Called immediately before a plugin content write; it throws to refuse the
1100
+ * write. When it returns a function, that function is called once the write
1101
+ * has succeeded.
1102
+ */
1103
+ type ContentWriteGuard = () => Promise<void | (() => Promise<void>)>;
1104
+ /**
1105
+ * Create full content access with write operations.
1106
+ *
1107
+ * `create` and `update` accept a reserved `seo` key in their `data`
1108
+ * argument. When present, it is routed to the core SEO panel
1109
+ * (`_emdash_seo`) via `SeoRepository.upsert`, in the same transaction as
1110
+ * the content write. The returned `ContentItem.seo` reflects the resulting
1111
+ * SEO state for SEO-enabled collections.
1112
+ */
1113
+ declare function createContentAccessWithWrite(db: Kysely<Database>, beforeContentWrite?: ContentWriteGuard, accessOptions?: {
1114
+ site?: SiteInfo;
1115
+ revisions?: boolean;
1116
+ }, contentCreate?: (data: {
1117
+ collection: string;
1118
+ input: ContentWriteInput;
1119
+ options?: ContentCreateOptions;
1120
+ }) => Promise<ContentItem$1>): ContentAccessWithWrite;
1121
+ /**
1122
+ * Create read-only media access
1123
+ */
1124
+ declare function createMediaAccess(db: Kysely<Database>): MediaAccess;
1125
+ /**
1126
+ * Create HTTP access with host validation and SSRF protection.
1127
+ *
1128
+ * Uses redirect: "manual" to re-validate each redirect target before dispatch.
1129
+ */
1130
+ declare function createHttpAccess(pluginId: string, allowedHosts: string[], fetchImpl?: typeof fetch): HttpAccess;
1131
+ /**
1132
+ * Create unrestricted HTTP access (for plugins with network:request:unrestricted capability).
1133
+ * No host validation, but applies SSRF protection on redirect targets to
1134
+ * prevent plugins from being tricked into reaching internal services.
1135
+ */
1136
+ declare function createUnrestrictedHttpAccess(pluginId: string, fetchImpl?: typeof fetch): HttpAccess;
1137
+ /**
1138
+ * Options for creating site info
1139
+ */
1140
+ interface SiteInfoOptions {
1141
+ /** Site name from options table */
1142
+ siteName?: string;
1143
+ /** Site URL, resolved by the runtime in the same order as links in emails */
1144
+ siteUrl?: string;
1145
+ /** Site locale from options table */
1146
+ locale?: string;
1147
+ /** Astro's `trailingSlash` config (from `virtual:emdash/config`). */
1148
+ trailingSlash?: "always" | "never" | "ignore";
1149
+ }
1150
+ interface PluginContextFactoryOptions {
1151
+ db: Kysely<Database>;
1152
+ beforeContentWrite?: ContentWriteGuard;
1153
+ contentCreate?: PluginContentCreateCallback;
1154
+ contentActions?: ContentActionCallbacks;
1155
+ /**
1156
+ * Resolver for the database connection, preferred over `db` when present.
1157
+ * Called per `createContext()` so connection-backed adapters (e.g. Postgres
1158
+ * over Hyperdrive) get the current request/event-scoped connection from ALS
1159
+ * rather than a snapshot of the per-isolate singleton — reusing the
1160
+ * singleton's socket from a later event trips workerd's cross-request I/O
1161
+ * guard. When omitted, `db` is used directly (correct for stateless
1162
+ * adapters like D1 and Node SQLite). `db` remains required as the fallback.
1163
+ */
1164
+ getDb?: () => Kysely<Database>;
1165
+ /**
1166
+ * Storage backend for direct media uploads.
1167
+ * If not provided, upload() will throw.
1168
+ */
1169
+ storage?: Storage;
1170
+ /**
1171
+ * Explicit provider for `ctx.media.getUploadUrl()`. Optional: when omitted
1172
+ * but `storage` is configured, the factory derives a working `getUploadUrl()`
1173
+ * (and `upload()`) from storage. Only when neither `getUploadUrl` nor
1174
+ * `storage` is present do media write operations become unavailable.
1175
+ */
1176
+ getUploadUrl?: (filename: string, contentType: string) => Promise<{
1177
+ uploadUrl: string;
1178
+ mediaId: string;
1179
+ }>;
1180
+ /**
1181
+ * Site information for ctx.site and ctx.url().
1182
+ * If not provided, site info will have empty defaults.
1183
+ */
1184
+ siteInfo?: SiteInfoOptions;
1185
+ /**
1186
+ * Callback to notify the cron scheduler that the next due time may have changed.
1187
+ * If not provided, ctx.cron will not be available.
1188
+ */
1189
+ cronReschedule?: () => void;
1190
+ /** Clock used to calculate the first run of recurring plugin tasks. */
1191
+ now?: () => Date;
1192
+ /**
1193
+ * Email pipeline instance for ctx.email.
1194
+ * If not provided (or no provider configured), ctx.email will be undefined.
1195
+ */
1196
+ emailPipeline?: EmailPipeline;
1197
+ /**
1198
+ * Pre-resolved list of trusted proxy header names (from the runtime
1199
+ * `EmDashConfig.trustedProxyHeaders` or the env var). Plugin route
1200
+ * handlers pass this to `extractRequestMeta` so plugins see the same
1201
+ * client IP the core auth path does.
1202
+ */
1203
+ trustedProxyHeaders?: string[];
1204
+ commentModerate?: (pluginId: string, id: string, status: PluginCommentStatus, expectedStatus: PluginCommentStatus) => Promise<PluginComment>;
1205
+ }
1206
+ interface ContentActionCallbacks {
1207
+ /** Register a sandbox invocation before it can call a content action. */
1208
+ begin?(pluginId: string, invocationId: string, invalidateContentCache?: (tags: string[]) => Promise<void>): void;
1209
+ /** Release queued after-hooks; `final: false` keeps late actions self-scheduling after timeout. */
1210
+ flush(pluginId: string, invocationId?: string, final?: boolean): Promise<void>;
1211
+ getVersioned(pluginId: string, collection: string, id: string): Promise<VersionedContentItem | null>;
1212
+ publish(pluginId: string, collection: string, id: string, options: {
1213
+ _rev: string;
1214
+ }, invocationId?: string, invalidateContentCache?: (tags: string[]) => Promise<void>): Promise<VersionedContentItem>;
1215
+ unpublish(pluginId: string, collection: string, id: string, options: {
1216
+ _rev: string;
1217
+ }, invocationId?: string, invalidateContentCache?: (tags: string[]) => Promise<void>): Promise<VersionedContentItem>;
1218
+ schedule(pluginId: string, collection: string, id: string, options: {
1219
+ scheduledAt: string;
1220
+ _rev: string;
1221
+ }, invocationId?: string, invalidateContentCache?: (tags: string[]) => Promise<void>): Promise<VersionedContentItem>;
1222
+ unschedule(pluginId: string, collection: string, id: string, options: {
1223
+ _rev: string;
1224
+ }, invocationId?: string, invalidateContentCache?: (tags: string[]) => Promise<void>): Promise<VersionedContentItem>;
1225
+ getTrashedVersioned(pluginId: string, collection: string, id: string): Promise<VersionedContentItem | null>;
1226
+ restore(pluginId: string, collection: string, id: string, options: {
1227
+ _rev: string;
1228
+ }, invocationId?: string, invalidateContentCache?: (tags: string[]) => Promise<void>): Promise<VersionedContentItem>;
1229
+ }
1230
+ //#endregion
1231
+ //#region src/plugins/sandbox/types.d.ts
1232
+ /**
1233
+ * Resource limits for sandboxed plugins.
1234
+ * Enforced by the sandbox runtime (e.g., Worker Loader).
1235
+ */
1236
+ interface ResourceLimits {
1237
+ /** CPU time per invocation in milliseconds (default: 50ms) */
1238
+ cpuMs?: number;
1239
+ /** Memory limit in MB (default: 128MB) */
1240
+ memoryMb?: number;
1241
+ /** Maximum subrequests per invocation (default: 10) */
1242
+ subrequests?: number;
1243
+ /** Wall-clock time limit in milliseconds (default: 30000ms) */
1244
+ wallTimeMs?: number;
1245
+ }
1246
+ /**
1247
+ * Storage interface for loading plugin code.
1248
+ * Could be R2, local filesystem, or any other storage backend.
1249
+ */
1250
+ interface PluginCodeStorage {
1251
+ /** Get plugin bundle code by path */
1252
+ get(path: string): Promise<string | null>;
1253
+ /** Check if a bundle exists */
1254
+ exists(path: string): Promise<boolean>;
1255
+ }
1256
+ /**
1257
+ * Serialized email message for sandbox RPC transport.
1258
+ * Matches the core EmailMessage type but uses only serializable fields.
1259
+ */
1260
+ interface SandboxEmailMessage {
1261
+ to: string;
1262
+ cc?: string[];
1263
+ replyTo?: string;
1264
+ subject: string;
1265
+ text: string;
1266
+ html?: string;
1267
+ }
1268
+ /**
1269
+ * Callback for sending email from a sandboxed plugin.
1270
+ * The sandbox runner wires this up from the EmailPipeline.
1271
+ *
1272
+ * @param message - The email message to send
1273
+ * @param pluginId - The sending plugin's ID (used as source)
1274
+ */
1275
+ type SandboxEmailSendCallback = (message: SandboxEmailMessage, pluginId: string) => Promise<void>;
1276
+ type SandboxCommentModerateCallback = (pluginId: string, id: string, status: PluginCommentStatus, expectedStatus: PluginCommentStatus) => Promise<PluginComment>;
1277
+ type SandboxContentCreateCallback = (pluginId: string, collection: string, data: ContentWriteInput, options?: ContentCreateOptions & {
1278
+ originHook?: "content:beforeSave" | "content:afterSave";
1279
+ sandboxOrigin?: true;
1280
+ }) => Promise<ContentItem$1>;
1281
+ type SandboxHttpFetchCallback = typeof fetch;
1282
+ /**
1283
+ * Options for creating a sandbox runner
1284
+ */
1285
+ interface SandboxOptions {
1286
+ /** Storage interface for loading plugin code */
1287
+ storage?: PluginCodeStorage;
1288
+ /** Database for bridge operations */
1289
+ db: Kysely<Database>;
1290
+ /**
1291
+ * Called immediately before a sandboxed plugin content mutation; it throws
1292
+ * to refuse the write. When it returns a function, the bridge calls that
1293
+ * function once the write has succeeded.
1294
+ */
1295
+ beforeContentWrite?: () => Promise<void | (() => Promise<void>)>;
1296
+ /** Runtime-owned taxonomy mutation surface used by sandbox bridges. */
1297
+ taxonomyWrite?: TaxonomyAccessWithWrite;
1298
+ contentActions?: ContentActionCallbacks;
1299
+ /** Clock used to calculate recurring plugin task schedules. */
1300
+ now?: () => Date;
1301
+ /** Default resource limits */
1302
+ limits?: ResourceLimits;
1303
+ /** Site info for plugin context (injected into wrapper at generation time) */
1304
+ siteInfo?: {
1305
+ name: string;
1306
+ url: string;
1307
+ locale: string;
1308
+ trailingSlash?: "always" | "never" | "ignore";
1309
+ };
1310
+ /** Email send callback, wired from the EmailPipeline by the runtime */
1311
+ emailSend?: SandboxEmailSendCallback;
1312
+ commentModerate?: SandboxCommentModerateCallback;
1313
+ /** Optional host HTTP transport used by test hosts and custom runtimes. */
1314
+ httpFetch?: SandboxHttpFetchCallback;
1315
+ /**
1316
+ * Media storage adapter for sandboxed plugin byte reads, uploads, and deletes.
1317
+ * Each operation remains gated by its own media capability.
1318
+ */
1319
+ mediaStorage?: {
1320
+ upload(options: {
1321
+ key: string;
1322
+ body: Uint8Array;
1323
+ contentType: string;
1324
+ }): Promise<unknown>;
1325
+ download(key: string): Promise<{
1326
+ body: ReadableStream<Uint8Array>;
1327
+ contentType: string;
1328
+ size: number;
1329
+ }>;
1330
+ delete(key: string): Promise<unknown>;
1331
+ };
1332
+ /** Worker Loader name suffix. The plugin's logical ID remains unchanged. */
1333
+ isolateKey?: string;
1334
+ }
1335
+ /**
1336
+ * Handle to a sandboxed plugin running inside an isolate. Returned
1337
+ * by `SandboxRunner.load` and held by the runtime's cache so hooks /
1338
+ * routes can be invoked across the isolate boundary. Distinct from
1339
+ * the author-facing `SandboxedPlugin` type in `emdash/plugin`, which
1340
+ * describes the source-level shape of a plugin's default export.
1341
+ */
1342
+ interface SandboxedPluginInstance {
1343
+ /** Unique identifier: `${manifest.id}:${manifest.version}` */
1344
+ readonly id: string;
1345
+ /**
1346
+ * Invoke a hook in the sandboxed plugin.
1347
+ *
1348
+ * @param hookName - Name of the hook (e.g., "content:beforeSave")
1349
+ * @param event - Event data to pass to the hook
1350
+ * @returns Hook result (transformed content, void, etc.)
1351
+ */
1352
+ invokeHook(hookName: string, event: unknown): Promise<unknown>;
1353
+ /**
1354
+ * Invoke an API route in the sandboxed plugin.
1355
+ *
1356
+ * @param routeName - Name of the route
1357
+ * @param input - Validated input data
1358
+ * @param request - Serialized request info for context
1359
+ * @returns Route response data
1360
+ */
1361
+ invokeRoute(routeName: string, input: unknown, request: SerializedRequest, options?: SandboxInvocationOptions): Promise<unknown>;
1362
+ /**
1363
+ * Change whether the plugin may access host services.
1364
+ * Deactivation revokes credentials synchronously; reactivation issues fresh credentials.
1365
+ */
1366
+ setActive?(active: boolean): void;
1367
+ /**
1368
+ * Terminate the sandboxed plugin.
1369
+ * Releases resources and prevents further invocations.
1370
+ */
1371
+ terminate(): Promise<void>;
1372
+ }
1373
+ interface SandboxInvocationOptions {
1374
+ invalidateContentCache?: (tags: string[]) => Promise<void>;
1375
+ }
1376
+ /**
1377
+ * Serialized request for RPC transport.
1378
+ * Worker Loader can't pass Request objects directly.
1379
+ */
1380
+ interface SerializedRequest {
1381
+ url: string;
1382
+ method: string;
1383
+ headers: Record<string, string>;
1384
+ /** Normalized request metadata extracted before RPC serialization */
1385
+ meta: RequestMeta;
1386
+ /** Host-attested context for a validated Block Kit request. */
1387
+ ui?: PluginUiContext;
1388
+ /**
1389
+ * Authenticated caller for private routes, resolved by the host before
1390
+ * dispatch. Undefined for public routes and unbound machine tokens.
1391
+ */
1392
+ user?: UserInfo;
1393
+ }
1394
+ declare const SANDBOX_ROUTE_ERROR_DEFINITIONS: {
1395
+ readonly MEDIA_USAGE_ACTIVATION_IN_PROGRESS: {
1396
+ readonly message: "Media usage activation is in progress";
1397
+ readonly status: 503;
1398
+ };
1399
+ readonly MEDIA_USAGE_ACTIVATION_CHECK_FAILED: {
1400
+ readonly message: "Unable to verify media usage activation state";
1401
+ readonly status: 503;
1402
+ };
1403
+ readonly TRANSFER_IMPORT_IN_PROGRESS: {
1404
+ readonly message: "A site import is in progress or incomplete; writes are disabled";
1405
+ readonly status: 503;
1406
+ };
1407
+ readonly TRANSFER_FENCE_CHECK_FAILED: {
1408
+ readonly message: "Unable to verify whether site writes are allowed";
1409
+ readonly status: 503;
1410
+ };
1411
+ };
1412
+ type SandboxRouteErrorCode = keyof typeof SANDBOX_ROUTE_ERROR_DEFINITIONS;
1413
+ interface SandboxRouteErrorDetails {
1414
+ code: SandboxRouteErrorCode;
1415
+ message: string;
1416
+ status: 503;
1417
+ }
1418
+ interface SandboxRouteErrorEnvelope {
1419
+ __emdashSandboxRouteError: true;
1420
+ error: SandboxRouteErrorDetails;
1421
+ }
1422
+ declare function getSandboxRouteErrorDetails(error: unknown): SandboxRouteErrorDetails | null;
1423
+ declare function createSandboxRouteError(code: SandboxRouteErrorCode): Error & SandboxRouteErrorDetails;
1424
+ declare function createSandboxRouteErrorEnvelope(error: unknown): SandboxRouteErrorEnvelope | null;
1425
+ declare function getSandboxRouteErrorEnvelope(value: unknown): SandboxRouteErrorEnvelope | null;
1426
+ /**
1427
+ * Sandbox runner interface.
1428
+ * Platform adapters implement this to provide plugin isolation.
1429
+ */
1430
+ interface SandboxRunner {
1431
+ /**
1432
+ * Check if sandboxing is available on this platform.
1433
+ * Returns false for platforms that don't support isolation.
1434
+ */
1435
+ isAvailable(): boolean;
1436
+ /**
1437
+ * Check if the sandbox runtime is currently healthy.
1438
+ * For in-process runners this always returns true.
1439
+ * For sidecar-based runners (workerd), returns false if the
1440
+ * child process has crashed and hasn't been restarted yet.
1441
+ */
1442
+ isHealthy(): boolean;
1443
+ /**
1444
+ * Why the runner cannot run plugins, once isAvailable() or isHealthy()
1445
+ * has returned false. A lowercase clause without a final period: callers
1446
+ * append it to their own message after a colon.
1447
+ *
1448
+ * Making this required breaks runners implemented outside this repository.
1449
+ */
1450
+ unavailableReason?(): string;
1451
+ /**
1452
+ * Load a sandboxed plugin from code.
1453
+ *
1454
+ * @param manifest - Plugin manifest with metadata and capabilities
1455
+ * @param code - The bundled plugin JavaScript code
1456
+ * @returns A sandboxed plugin instance
1457
+ * @throws If sandboxing is not available or plugin can't be loaded
1458
+ */
1459
+ load(manifest: PluginManifest, code: string): Promise<SandboxedPluginInstance>;
1460
+ /**
1461
+ * Set the email send callback for sandboxed plugins.
1462
+ * Called after the EmailPipeline is created, since the pipeline
1463
+ * doesn't exist when the sandbox runner is constructed.
1464
+ */
1465
+ setEmailSend(callback: SandboxEmailSendCallback | null): void;
1466
+ setCommentModerate?(callback: SandboxCommentModerateCallback | null): void;
1467
+ setContentCreate?(callback: SandboxContentCreateCallback | null): void;
1468
+ setContentActions?(callback: ContentActionCallbacks | null): void;
1469
+ /** Wake a long-lived scheduler after a sandboxed plugin changes its tasks. */
1470
+ setCronReschedule?(callback: (() => void) | null): void;
1471
+ /**
1472
+ * Terminate all loaded sandboxed plugins.
1473
+ * Called during shutdown or when reconfiguring.
1474
+ */
1475
+ terminateAll(): Promise<void>;
1476
+ }
1477
+ /**
1478
+ * Error thrown when the sandbox runtime is unavailable.
1479
+ * This happens when the sidecar process has crashed or hasn't started.
1480
+ */
1481
+ declare class SandboxUnavailableError extends Error {
1482
+ constructor(pluginId: string, reason: string);
1483
+ }
1484
+ /**
1485
+ * Factory function type for creating sandbox runners.
1486
+ * Exported by platform adapters (e.g., @emdash-cms/cloudflare/sandbox).
1487
+ *
1488
+ * @example
1489
+ * ```typescript
1490
+ * // In @emdash-cms/cloudflare/sandbox
1491
+ * export const createSandboxRunner: SandboxRunnerFactory = (options) => {
1492
+ * return new CloudflareSandboxRunner(options);
1493
+ * };
1494
+ * ```
1495
+ */
1496
+ type SandboxRunnerFactory = (options: SandboxOptions) => SandboxRunner;
1497
+ //#endregion
1498
+ //#region src/plugins/cron.d.ts
1499
+ /**
1500
+ * Callback to invoke a plugin's cron hook.
1501
+ * Provided by PluginManager so CronExecutor stays decoupled from the hook pipeline.
1502
+ */
1503
+ type InvokeCronHookFn = (pluginId: string, event: CronEvent) => Promise<void>;
1504
+ /**
1505
+ * Callback to notify the scheduler that the next due time may have changed.
1506
+ */
1507
+ type RescheduleFn = () => void;
1508
+ /**
1509
+ * Executes overdue cron tasks.
1510
+ *
1511
+ * Called by the platform driver: the NodeCronScheduler timer on Node, or the
1512
+ * Worker's `scheduled()` handler (via runScheduledTasks) on Cloudflare.
1513
+ * Stateless — all state lives in the database.
1514
+ */
1515
+ declare class CronExecutor {
1516
+ private invokeCronHook;
1517
+ private readonly now;
1518
+ /**
1519
+ * Resolves the database connection to use for this tick. A resolver (not a
1520
+ * captured instance) so connection-backed adapters work across events: on
1521
+ * Cloudflare the `scheduled()` handler installs an event-scoped connection
1522
+ * in ALS, and this resolves to it instead of the per-isolate singleton
1523
+ * whose socket belongs to an earlier request. Accepts a plain `Kysely` too
1524
+ * (wrapped in a constant resolver) for callers/tests that don't need ALS.
1525
+ */
1526
+ private readonly resolveDb;
1527
+ constructor(db: Kysely<Database> | (() => Kysely<Database>), invokeCronHook: InvokeCronHookFn, now?: () => Date);
1528
+ private get db();
1529
+ /**
1530
+ * Process all overdue tasks.
1531
+ *
1532
+ * 1. Atomically claim tasks whose next_run_at <= now, status = idle, enabled = 1.
1533
+ * 2. For each claimed task, invoke the plugin's cron hook.
1534
+ * 3. On success: compute next_run_at and reset to idle, or delete one-shots.
1535
+ * 4. On failure: reset to idle (retry on next tick).
1536
+ */
1537
+ tick(): Promise<number>;
1538
+ /**
1539
+ * Recover tasks stuck in 'running' for more than STALE_LOCK_MINUTES.
1540
+ * These likely crashed mid-execution.
1541
+ */
1542
+ recoverStaleLocks(): Promise<number>;
1543
+ /**
1544
+ * Get the next due time across all enabled tasks.
1545
+ * Returns null if no tasks are scheduled.
1546
+ */
1547
+ getNextDueTime(): Promise<string | null>;
1548
+ }
1549
+ /**
1550
+ * Per-plugin cron API implementation.
1551
+ * Scoped to a single plugin ID — plugins cannot see or modify other plugins' tasks.
1552
+ */
1553
+ declare class CronAccessImpl implements CronAccess {
1554
+ private db;
1555
+ private pluginId;
1556
+ private reschedule;
1557
+ private readonly now;
1558
+ constructor(db: Kysely<Database>, pluginId: string, reschedule: RescheduleFn, now?: () => Date);
1559
+ schedule(name: string, opts: {
1560
+ schedule: string;
1561
+ data?: Record<string, unknown>;
1562
+ }): Promise<void>;
1563
+ cancel(name: string): Promise<void>;
1564
+ list(): Promise<CronTaskInfo[]>;
1565
+ }
1566
+ //#endregion
1567
+ //#region src/plugins/byline-access.d.ts
1568
+ /**
1569
+ * Create read-only byline access (gated on `bylines:read`).
1570
+ */
1571
+ declare function createBylineAccess(db: Kysely<Database>): BylineAccess;
1572
+ //#endregion
1573
+ //#region src/plugins/media.d.ts
1574
+ declare const DEFAULT_PLUGIN_MEDIA_READ_BYTES: number;
1575
+ declare const MAX_PLUGIN_MEDIA_READ_BYTES: number;
1576
+ declare function toPluginMediaItem(item: MediaItem): MediaItem$1;
1577
+ declare function readPluginMediaBytes(db: Kysely<Database>, storage: Pick<Storage, "download"> | undefined, id: string, options?: {
1578
+ maxBytes?: number;
1579
+ }): Promise<MediaBytes>;
1580
+ declare function updatePluginMediaMetadata(db: Kysely<Database>, id: string, patch: MediaMetadataPatch): Promise<MediaItem$1>;
1581
+ declare function parsePluginMediaMetadataPatch(value: unknown): MediaMetadataPatch;
1582
+ //#endregion
1583
+ //#region src/plugins/storage-query.d.ts
1584
+ /**
1585
+ * Error thrown when a guarded `updateIf` loses a concurrent race by aborting
1586
+ * rather than resolving to `{ applied: false }`.
1587
+ *
1588
+ * `updateIf`'s `{ applied: false }` contract (row absent OR guard failed)
1589
+ * assumes READ COMMITTED — the default. There, a losing concurrent writer
1590
+ * re-evaluates the guard against the winner's freshly committed row and
1591
+ * cleanly resolves to `{ applied: false }`. Two aborts escape that contract:
1592
+ *
1593
+ * - `40001` (serialization_failure), only above READ COMMITTED, where the
1594
+ * loser cannot re-read against a newer snapshot.
1595
+ * - `40P01` (deadlock_detected), at any isolation level, when transactions
1596
+ * take row locks in opposite order.
1597
+ *
1598
+ * This error surfaces either abort so the caller can retry the write.
1599
+ *
1600
+ * The no-oversell SAFETY invariant holds either way: a losing writer NEVER
1601
+ * applies its update — it either sees `{ applied: false }` or throws here.
1602
+ */
1603
+ declare class StorageSerializationError extends Error {
1604
+ readonly code = "STORAGE_SERIALIZATION_FAILURE";
1605
+ readonly retryable = true;
1606
+ /** The Postgres SQLSTATE that triggered this error (`40001` / `40P01`). */
1607
+ readonly sqlState?: string;
1608
+ constructor(message: string, options?: {
1609
+ cause?: unknown;
1610
+ sqlState?: string;
1611
+ });
1612
+ }
1613
+ //#endregion
1614
+ export { MediaItem as $, ContentActionCallbacks as A, createContentAccess as B, SandboxUnavailableError as C, createSandboxRouteErrorEnvelope as D, createSandboxRouteError as E, createHttpAccess as F, encryptPluginSetting as G, PluginSettingEncryptionError as H, createMediaAccess as I, HookPipeline as J, isEncryptedPluginSetting as K, createRedirectAccess as L, RedirectAccessError as M, createCommentAccess as N, getSandboxRouteErrorDetails as O, createContentAccessWithWrite as P, CreateMediaInput as Q, createSchemaAccess as R, SandboxRunnerFactory as S, SerializedRequest as T, createSettingsAccess as U, EncryptedPluginSetting as V, decodePluginSettingValue as W, createHookPipeline as X, HookResult as Y, PluginStorageRepository as Z, SandboxOptions as _, readPluginMediaBytes as a, SandboxRouteErrorEnvelope as b, createBylineAccess as c, SandboxCommentModerateCallback as d, MediaRepository as et, SandboxContentCreateCallback as f, SandboxInvocationOptions as g, SandboxHttpFetchCallback as h, parsePluginMediaMetadataPatch as i, resolvePluginEncryptionKeys as it, ContentWriteGuard as j, getSandboxRouteErrorEnvelope as k, CronAccessImpl as l, SandboxEmailSendCallback as m, DEFAULT_PLUGIN_MEDIA_READ_BYTES as n, ContentRepository as nt, toPluginMediaItem as o, SandboxEmailMessage as p, EmailPipeline as q, MAX_PLUGIN_MEDIA_READ_BYTES as r, DatetimeContextCache as rt, updatePluginMediaMetadata as s, StorageSerializationError as t, FocalPointUpdate as tt, CronExecutor as u, SandboxRouteErrorCode as v, SandboxedPluginInstance as w, SandboxRunner as x, SandboxRouteErrorDetails as y, createUnrestrictedHttpAccess as z };
1615
+ //# sourceMappingURL=storage-query-DRyu3bSU.d.mts.map