emdash 0.40.1 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1515) hide show
  1. package/dist/action-token-DBki7IT4.mjs +26 -0
  2. package/dist/action-token-DBki7IT4.mjs.map +1 -0
  3. package/dist/activation-DDuqAat2.mjs +387 -0
  4. package/dist/activation-DDuqAat2.mjs.map +1 -0
  5. package/dist/adapters-BrZxU6vM.d.mts +171 -0
  6. package/dist/adapters-BrZxU6vM.d.mts.map +1 -0
  7. package/dist/allowed-origins-CFtudhyw.mjs +116 -0
  8. package/dist/allowed-origins-CFtudhyw.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +5 -4
  10. package/dist/api/route-utils.d.mts.map +1 -1
  11. package/dist/api/route-utils.mjs +52 -46
  12. package/dist/api/route-utils.mjs.map +1 -1
  13. package/dist/api/schemas/index.d.mts +2 -2
  14. package/dist/api/schemas/index.mjs +11 -10
  15. package/dist/api-CFQn8VLR.mjs +4973 -0
  16. package/dist/api-CFQn8VLR.mjs.map +1 -0
  17. package/dist/api-tokens-P3mAaQgr.mjs +166 -0
  18. package/dist/api-tokens-P3mAaQgr.mjs.map +1 -0
  19. package/dist/apply-C1kq5l7p.mjs +1672 -0
  20. package/dist/apply-C1kq5l7p.mjs.map +1 -0
  21. package/dist/approvals-l9sGqPmL.mjs +460 -0
  22. package/dist/approvals-l9sGqPmL.mjs.map +1 -0
  23. package/dist/artifact-fetch-CWxyELVI.mjs +659 -0
  24. package/dist/artifact-fetch-CWxyELVI.mjs.map +1 -0
  25. package/dist/astro/index.d.mts +14 -14
  26. package/dist/astro/index.d.mts.map +1 -1
  27. package/dist/astro/index.mjs +106 -560
  28. package/dist/astro/index.mjs.map +1 -1
  29. package/dist/astro/middleware/auth.d.mts +12 -12
  30. package/dist/astro/middleware/auth.mjs +10 -10
  31. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  32. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  33. package/dist/astro/middleware/redirect.mjs +19 -9
  34. package/dist/astro/middleware/redirect.mjs.map +1 -1
  35. package/dist/astro/middleware/request-context.d.mts +2 -1
  36. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  37. package/dist/astro/middleware/request-context.mjs +15 -6
  38. package/dist/astro/middleware/request-context.mjs.map +1 -1
  39. package/dist/astro/middleware/setup.mjs +1 -1
  40. package/dist/astro/middleware.d.mts +12 -12
  41. package/dist/astro/middleware.mjs +114 -107
  42. package/dist/astro/middleware.mjs.map +1 -1
  43. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +15 -14
  44. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
  45. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +15 -14
  46. package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
  47. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -6
  48. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
  49. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +7 -7
  50. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +18 -17
  51. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
  52. package/dist/astro/routes/api/admin/byline-fields/index.mjs +18 -17
  53. package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
  54. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +18 -17
  55. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
  56. package/dist/astro/routes/api/admin/bylines/_id_/index.d.mts.map +1 -1
  57. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +36 -27
  58. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/bylines/_id_/translations.d.mts.map +1 -1
  60. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +32 -26
  61. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  62. package/dist/astro/routes/api/admin/bylines/index.d.mts.map +1 -1
  63. package/dist/astro/routes/api/admin/bylines/index.mjs +32 -26
  64. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  65. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +20 -19
  66. package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
  67. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
  68. package/dist/astro/routes/api/admin/comments/bulk.mjs +19 -18
  69. package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
  70. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
  71. package/dist/astro/routes/api/admin/comments/index.mjs +19 -18
  72. package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
  73. package/dist/astro/routes/api/admin/core-update.d.mts +8 -0
  74. package/dist/astro/routes/api/admin/core-update.d.mts.map +1 -0
  75. package/dist/astro/routes/api/admin/core-update.mjs +28 -0
  76. package/dist/astro/routes/api/admin/core-update.mjs.map +1 -0
  77. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  78. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  79. package/dist/astro/routes/api/admin/media-usage/activation.mjs +21 -20
  80. package/dist/astro/routes/api/admin/media-usage/activation.mjs.map +1 -1
  81. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +23 -22
  82. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -1
  83. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +23 -22
  84. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -1
  85. package/dist/astro/routes/api/admin/media-usage/progress.mjs +26 -25
  86. package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
  87. package/dist/astro/routes/api/admin/media-usage/repair.mjs +32 -31
  88. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  89. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +23 -22
  90. package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -1
  91. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +23 -22
  92. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -1
  93. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  94. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  95. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  96. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  97. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +75 -69
  98. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  99. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
  100. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +74 -68
  101. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +75 -69
  103. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  104. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +86 -79
  105. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  106. package/dist/astro/routes/api/admin/plugins/index.mjs +75 -69
  107. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  108. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.d.mts.map +1 -1
  109. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +10 -7
  110. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs.map +1 -1
  111. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +74 -68
  112. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  113. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +85 -78
  114. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  115. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +74 -68
  116. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  117. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +75 -69
  118. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  119. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +87 -80
  120. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  121. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -9
  122. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +77 -71
  123. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  124. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
  125. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +75 -69
  126. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  127. package/dist/astro/routes/api/admin/plugins/updates.mjs +74 -68
  128. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  129. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
  130. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +74 -68
  131. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  132. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.d.mts.map +1 -1
  133. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +10 -7
  134. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs.map +1 -1
  135. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +74 -68
  136. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  137. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
  138. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +42 -41
  139. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
  140. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +42 -41
  141. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
  142. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +44 -43
  143. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
  144. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +44 -43
  145. package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
  146. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +44 -43
  147. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
  148. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +45 -44
  149. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
  150. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +45 -44
  151. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
  152. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +44 -43
  153. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
  154. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +45 -44
  155. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
  156. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +46 -45
  157. package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
  158. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +44 -43
  159. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
  160. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +44 -43
  161. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
  162. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +46 -45
  163. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
  164. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +44 -43
  165. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
  166. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +46 -45
  167. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
  168. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +44 -43
  169. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
  170. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +44 -43
  171. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
  172. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +46 -45
  173. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
  174. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +44 -43
  175. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
  176. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +44 -43
  177. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
  178. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +46 -45
  179. package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
  180. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
  181. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  182. package/dist/astro/routes/api/admin/users/_id_/index.mjs +16 -15
  183. package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
  184. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
  185. package/dist/astro/routes/api/admin/users/index.mjs +15 -14
  186. package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
  187. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  188. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  189. package/dist/astro/routes/api/auth/invite/complete.d.mts.map +1 -1
  190. package/dist/astro/routes/api/auth/invite/complete.mjs +23 -19
  191. package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
  192. package/dist/astro/routes/api/auth/invite/index.mjs +17 -16
  193. package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
  194. package/dist/astro/routes/api/auth/invite/register-options.mjs +18 -17
  195. package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
  196. package/dist/astro/routes/api/auth/logout.mjs +5 -5
  197. package/dist/astro/routes/api/auth/magic-link/send.mjs +19 -18
  198. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  199. package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -1
  200. package/dist/astro/routes/api/auth/magic-link/verify.mjs +19 -15
  201. package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -1
  202. package/dist/astro/routes/api/auth/me.mjs +16 -15
  203. package/dist/astro/routes/api/auth/me.mjs.map +1 -1
  204. package/dist/astro/routes/api/auth/mode.mjs +5 -5
  205. package/dist/astro/routes/api/auth/oauth/_provider_/callback.d.mts.map +1 -1
  206. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +13 -4
  207. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs.map +1 -1
  208. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  209. package/dist/astro/routes/api/auth/passkey/_id_.mjs +15 -14
  210. package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
  211. package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
  212. package/dist/astro/routes/api/auth/passkey/options.mjs +20 -19
  213. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  214. package/dist/astro/routes/api/auth/passkey/register/options.mjs +18 -17
  215. package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
  216. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +19 -18
  217. package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
  218. package/dist/astro/routes/api/auth/passkey/verify.d.mts.map +1 -1
  219. package/dist/astro/routes/api/auth/passkey/verify.mjs +23 -19
  220. package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
  221. package/dist/astro/routes/api/auth/signup/complete.d.mts.map +1 -1
  222. package/dist/astro/routes/api/auth/signup/complete.mjs +23 -19
  223. package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
  224. package/dist/astro/routes/api/auth/signup/request.mjs +18 -17
  225. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  226. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  227. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +13 -13
  228. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +20 -19
  229. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
  230. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  231. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +18 -17
  232. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  233. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  234. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +18 -17
  235. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
  236. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
  237. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +12 -11
  238. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs.map +1 -1
  239. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +33 -32
  240. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  241. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +18 -17
  242. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  243. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts +1 -2
  244. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts.map +1 -1
  245. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +44 -54
  246. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  247. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +36 -30
  248. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  249. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
  250. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  251. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +18 -17
  252. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  253. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +27 -25
  254. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  255. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +5 -5
  256. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +18 -17
  257. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  258. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  259. package/dist/astro/routes/api/content/_collection_/_id_.mjs +19 -18
  260. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  261. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  262. package/dist/astro/routes/api/content/_collection_/index.mjs +16 -15
  263. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  264. package/dist/astro/routes/api/content/_collection_/trash.mjs +16 -15
  265. package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
  266. package/dist/astro/routes/api/dashboard.mjs +13 -10
  267. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  268. package/dist/astro/routes/api/dev/emails.mjs +5 -5
  269. package/dist/astro/routes/api/health.mjs +6 -6
  270. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  271. package/dist/astro/routes/api/import/probe.mjs +25 -24
  272. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  273. package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -6
  274. package/dist/astro/routes/api/import/wordpress/execute.d.mts +14 -14
  275. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  276. package/dist/astro/routes/api/import/wordpress/execute.mjs +167 -21
  277. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  278. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  279. package/dist/astro/routes/api/import/wordpress/media.mjs +20 -19
  280. package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
  281. package/dist/astro/routes/api/import/wordpress/prepare.mjs +19 -18
  282. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  283. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  284. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +29 -28
  285. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  286. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  287. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +25 -24
  288. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  289. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  290. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +36 -35
  291. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  292. package/dist/astro/routes/api/manifest.mjs +6 -6
  293. package/dist/astro/routes/api/mcp.mjs +167 -110
  294. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  295. package/dist/astro/routes/api/media/_id_/confirm.mjs +20 -19
  296. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  297. package/dist/astro/routes/api/media/_id_/replace.mjs +17 -16
  298. package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -1
  299. package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
  300. package/dist/astro/routes/api/media/_id_/usage.mjs +34 -33
  301. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  302. package/dist/astro/routes/api/media/_id_.mjs +32 -31
  303. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  304. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
  305. package/dist/astro/routes/api/media/file/_...key_.mjs +9 -9
  306. package/dist/astro/routes/api/media/folders/_id_.mjs +17 -16
  307. package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -1
  308. package/dist/astro/routes/api/media/folders/index.mjs +17 -16
  309. package/dist/astro/routes/api/media/folders/index.mjs.map +1 -1
  310. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
  311. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
  312. package/dist/astro/routes/api/media/providers/index.mjs +5 -5
  313. package/dist/astro/routes/api/media/upload-url.mjs +19 -18
  314. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  315. package/dist/astro/routes/api/media.mjs +36 -35
  316. package/dist/astro/routes/api/media.mjs.map +1 -1
  317. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +19 -18
  318. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  319. package/dist/astro/routes/api/menus/_name_/items.mjs +19 -18
  320. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  321. package/dist/astro/routes/api/menus/_name_/reorder.mjs +19 -18
  322. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  323. package/dist/astro/routes/api/menus/_name_/translations.mjs +19 -18
  324. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  325. package/dist/astro/routes/api/menus/_name_.mjs +19 -18
  326. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  327. package/dist/astro/routes/api/menus/index.mjs +19 -18
  328. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  329. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  330. package/dist/astro/routes/api/oauth/device/authorize.d.mts +2 -1
  331. package/dist/astro/routes/api/oauth/device/authorize.d.mts.map +1 -1
  332. package/dist/astro/routes/api/oauth/device/authorize.mjs +23 -9
  333. package/dist/astro/routes/api/oauth/device/authorize.mjs.map +1 -1
  334. package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
  335. package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
  336. package/dist/astro/routes/api/oauth/register.d.mts.map +1 -1
  337. package/dist/astro/routes/api/oauth/register.mjs +15 -7
  338. package/dist/astro/routes/api/oauth/register.mjs.map +1 -1
  339. package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
  340. package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
  341. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  342. package/dist/astro/routes/api/openapi.json.mjs +21 -20
  343. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  344. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +12 -11
  345. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
  346. package/dist/astro/routes/api/redirects/404s/index.mjs +20 -19
  347. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  348. package/dist/astro/routes/api/redirects/404s/summary.mjs +20 -19
  349. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  350. package/dist/astro/routes/api/redirects/_id_.mjs +20 -19
  351. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  352. package/dist/astro/routes/api/redirects/index.mjs +20 -19
  353. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  354. package/dist/astro/routes/api/relations/_id_/index.mjs +36 -30
  355. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  356. package/dist/astro/routes/api/relations/index.mjs +38 -32
  357. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  358. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
  359. package/dist/astro/routes/api/revisions/_revisionId_/restore.d.mts.map +1 -1
  360. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +26 -6
  361. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs.map +1 -1
  362. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +74 -68
  363. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  364. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +74 -68
  365. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  366. package/dist/astro/routes/api/schema/block-types/index.mjs +74 -68
  367. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  368. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +76 -70
  369. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  370. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +74 -68
  371. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  372. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +74 -68
  373. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  374. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +74 -68
  375. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  376. package/dist/astro/routes/api/schema/collections/index.mjs +74 -68
  377. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  378. package/dist/astro/routes/api/schema/collections/reorder.mjs +74 -68
  379. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  380. package/dist/astro/routes/api/schema/index.mjs +17 -16
  381. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  382. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +74 -68
  383. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  384. package/dist/astro/routes/api/schema/orphans/index.mjs +74 -68
  385. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  386. package/dist/astro/routes/api/search/enable.mjs +20 -19
  387. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  388. package/dist/astro/routes/api/search/index.mjs +19 -18
  389. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  390. package/dist/astro/routes/api/search/rebuild.mjs +20 -19
  391. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  392. package/dist/astro/routes/api/search/stats.mjs +9 -9
  393. package/dist/astro/routes/api/search/suggest.mjs +19 -18
  394. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  395. package/dist/astro/routes/api/sections/_slug_.mjs +19 -18
  396. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  397. package/dist/astro/routes/api/sections/index.mjs +19 -18
  398. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  399. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  400. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  401. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  402. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  403. package/dist/astro/routes/api/settings/email.mjs +6 -6
  404. package/dist/astro/routes/api/settings.mjs +23 -22
  405. package/dist/astro/routes/api/settings.mjs.map +1 -1
  406. package/dist/astro/routes/api/setup/admin-verify.d.mts.map +1 -1
  407. package/dist/astro/routes/api/setup/admin-verify.mjs +26 -24
  408. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  409. package/dist/astro/routes/api/setup/admin.mjs +19 -18
  410. package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
  411. package/dist/astro/routes/api/setup/dev-bypass.mjs +47 -40
  412. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  413. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  414. package/dist/astro/routes/api/setup/index.mjs +52 -45
  415. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  416. package/dist/astro/routes/api/setup/status.mjs +6 -6
  417. package/dist/astro/routes/api/snapshot.mjs +8 -8
  418. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +25 -24
  419. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  420. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +25 -24
  421. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  422. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -24
  423. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  424. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +25 -24
  425. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  426. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +24 -23
  427. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  428. package/dist/astro/routes/api/taxonomies/_name_.mjs +25 -24
  429. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  430. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +42 -40
  431. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
  432. package/dist/astro/routes/api/taxonomies/index.mjs +25 -24
  433. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  434. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  435. package/dist/astro/routes/api/typegen.d.mts.map +1 -1
  436. package/dist/astro/routes/api/typegen.mjs +8 -39
  437. package/dist/astro/routes/api/typegen.mjs.map +1 -1
  438. package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
  439. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +20 -19
  440. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs.map +1 -1
  441. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
  442. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  443. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  444. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  445. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +17 -16
  446. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  447. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +20 -19
  448. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  449. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +20 -19
  450. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  451. package/dist/astro/routes/api/widget-areas/_name_.mjs +9 -9
  452. package/dist/astro/routes/api/widget-areas/index.mjs +20 -19
  453. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  454. package/dist/astro/routes/api/widget-components.mjs +5 -5
  455. package/dist/astro/routes/robots.txt.mjs +7 -7
  456. package/dist/astro/routes/sitemap-_collection_.xml.mjs +10 -10
  457. package/dist/astro/routes/sitemap.xml.mjs +8 -8
  458. package/dist/astro/types.d.mts +30 -18
  459. package/dist/astro/types.d.mts.map +1 -1
  460. package/dist/audit-BszbE_BP.mjs +127 -0
  461. package/dist/audit-BszbE_BP.mjs.map +1 -0
  462. package/dist/auth/providers/github.d.mts +1 -1
  463. package/dist/auth/providers/google.d.mts +1 -1
  464. package/dist/authoritative-records-dSvXCfzb.mjs +5172 -0
  465. package/dist/authoritative-records-dSvXCfzb.mjs.map +1 -0
  466. package/dist/authorize-soZXK7U0.mjs +49 -0
  467. package/dist/authorize-soZXK7U0.mjs.map +1 -0
  468. package/dist/backup-DQ3CABsO.mjs +246 -0
  469. package/dist/backup-DQ3CABsO.mjs.map +1 -0
  470. package/dist/block-types-DIG_KZwi.mjs +132 -0
  471. package/dist/block-types-DIG_KZwi.mjs.map +1 -0
  472. package/dist/block-values-BrTrtA-v.mjs +175 -0
  473. package/dist/block-values-BrTrtA-v.mjs.map +1 -0
  474. package/dist/byline-02tu_Uc-.mjs +909 -0
  475. package/dist/byline-02tu_Uc-.mjs.map +1 -0
  476. package/dist/byline-fields-B01Txzyx.mjs +123 -0
  477. package/dist/byline-fields-B01Txzyx.mjs.map +1 -0
  478. package/dist/byline-fields-DHJs0Mja.mjs +280 -0
  479. package/dist/byline-fields-DHJs0Mja.mjs.map +1 -0
  480. package/dist/byline-registry-dvt4N3xV.mjs +406 -0
  481. package/dist/byline-registry-dvt4N3xV.mjs.map +1 -0
  482. package/dist/bylines-COTwmMBF.mjs +150 -0
  483. package/dist/bylines-COTwmMBF.mjs.map +1 -0
  484. package/dist/bylines-D_S8UKRX.mjs +214 -0
  485. package/dist/bylines-D_S8UKRX.mjs.map +1 -0
  486. package/dist/cache-CPanL9IO.mjs +114 -0
  487. package/dist/cache-CPanL9IO.mjs.map +1 -0
  488. package/dist/canonical-CAecl1UQ.mjs +174 -0
  489. package/dist/canonical-CAecl1UQ.mjs.map +1 -0
  490. package/dist/capture-triggers-CdZfvHtF.mjs +362 -0
  491. package/dist/capture-triggers-CdZfvHtF.mjs.map +1 -0
  492. package/dist/challenge-store-CxZxPqaw.mjs +51 -0
  493. package/dist/challenge-store-CxZxPqaw.mjs.map +1 -0
  494. package/dist/checksum-DtH6m5uk.mjs +162 -0
  495. package/dist/checksum-DtH6m5uk.mjs.map +1 -0
  496. package/dist/chrome-tags-CKELm-bo.mjs +24 -0
  497. package/dist/chrome-tags-CKELm-bo.mjs.map +1 -0
  498. package/dist/chunks-DBmkKmBH.mjs +25 -0
  499. package/dist/chunks-DBmkKmBH.mjs.map +1 -0
  500. package/dist/cli/index.mjs +380 -1620
  501. package/dist/cli/index.mjs.map +1 -1
  502. package/dist/client/cf-access.d.mts +1 -1
  503. package/dist/client/index.d.mts +39 -34
  504. package/dist/client/index.d.mts.map +1 -1
  505. package/dist/client/index.mjs +8 -3
  506. package/dist/client/index.mjs.map +1 -1
  507. package/dist/collection-deletion-JecE26cS.mjs +436 -0
  508. package/dist/collection-deletion-JecE26cS.mjs.map +1 -0
  509. package/dist/collection-deletion-processor-DgCfF3a1.mjs +217 -0
  510. package/dist/collection-deletion-processor-DgCfF3a1.mjs.map +1 -0
  511. package/dist/collection-slugs-cache-BNRAPNiu.mjs +85 -0
  512. package/dist/collection-slugs-cache-BNRAPNiu.mjs.map +1 -0
  513. package/dist/comment-Cq1UYN8_.mjs +313 -0
  514. package/dist/comment-Cq1UYN8_.mjs.map +1 -0
  515. package/dist/comment-reaction-DPeGAfjd.mjs +85 -0
  516. package/dist/comment-reaction-DPeGAfjd.mjs.map +1 -0
  517. package/dist/comments-BRtp992B.mjs +99 -0
  518. package/dist/comments-BRtp992B.mjs.map +1 -0
  519. package/dist/comments-Bi2j9IoX.mjs +195 -0
  520. package/dist/comments-Bi2j9IoX.mjs.map +1 -0
  521. package/dist/components-CQY-Sgm-.mjs +108 -0
  522. package/dist/components-CQY-Sgm-.mjs.map +1 -0
  523. package/dist/config-BnuORwSP.mjs +242 -0
  524. package/dist/config-BnuORwSP.mjs.map +1 -0
  525. package/dist/config-CDmPF4p7.d.mts +39 -0
  526. package/dist/config-CDmPF4p7.d.mts.map +1 -0
  527. package/dist/config-DHsDMpXc.d.mts +6707 -0
  528. package/dist/config-DHsDMpXc.d.mts.map +1 -0
  529. package/dist/connection-B9pIasFd.mjs +36 -0
  530. package/dist/connection-B9pIasFd.mjs.map +1 -0
  531. package/dist/content-RzEXY3QX.mjs +2020 -0
  532. package/dist/content-RzEXY3QX.mjs.map +1 -0
  533. package/dist/content-list-query-CnXfe1Nu.d.mts +26 -0
  534. package/dist/content-list-query-CnXfe1Nu.d.mts.map +1 -0
  535. package/dist/content-policy-Dm32n9C6.mjs +46 -0
  536. package/dist/content-policy-Dm32n9C6.mjs.map +1 -0
  537. package/dist/content-repair-B-k5JrVN.mjs +442 -0
  538. package/dist/content-repair-B-k5JrVN.mjs.map +1 -0
  539. package/dist/context-CtRvoSAj.mjs +2026 -0
  540. package/dist/context-CtRvoSAj.mjs.map +1 -0
  541. package/dist/credits-CAFPFhuk.mjs +110 -0
  542. package/dist/credits-CAFPFhuk.mjs.map +1 -0
  543. package/dist/cron-xe5XKqA-.mjs +306 -0
  544. package/dist/cron-xe5XKqA-.mjs.map +1 -0
  545. package/dist/dashboard-BoV4pwPP.mjs +151 -0
  546. package/dist/dashboard-BoV4pwPP.mjs.map +1 -0
  547. package/dist/db/index.d.mts +3 -3
  548. package/dist/db/index.mjs +1 -1
  549. package/dist/db/libsql-migrations.d.mts +1 -1
  550. package/dist/db/libsql-migrations.mjs +4 -4
  551. package/dist/db/libsql.d.mts +1 -1
  552. package/dist/db/postgres-migrations.d.mts +1 -1
  553. package/dist/db/postgres-migrations.mjs +4 -4
  554. package/dist/db/postgres.d.mts +1 -1
  555. package/dist/db/sqlite-migrations.d.mts +1 -1
  556. package/dist/db/sqlite-migrations.mjs +4 -4
  557. package/dist/db/sqlite.d.mts +1 -1
  558. package/dist/db/sqlite.mjs +1 -1
  559. package/dist/default-DaoYyFRS.mjs +81 -0
  560. package/dist/default-DaoYyFRS.mjs.map +1 -0
  561. package/dist/deferred-tasks-OBADxoFf.d.mts +9 -0
  562. package/dist/deferred-tasks-OBADxoFf.d.mts.map +1 -0
  563. package/dist/destination-r2zIAZ2S.mjs +18 -0
  564. package/dist/destination-r2zIAZ2S.mjs.map +1 -0
  565. package/dist/dev-typegen-8JlYYFno.mjs +29 -0
  566. package/dist/dev-typegen-8JlYYFno.mjs.map +1 -0
  567. package/dist/device-flow-CzKi6tID.mjs +521 -0
  568. package/dist/device-flow-CzKi6tID.mjs.map +1 -0
  569. package/dist/digest-DiYAoZpf.mjs +194 -0
  570. package/dist/digest-DiYAoZpf.mjs.map +1 -0
  571. package/dist/direct-executor-CsEmH_2m.mjs +104 -0
  572. package/dist/direct-executor-CsEmH_2m.mjs.map +1 -0
  573. package/dist/dist-Cfu8mMBs.mjs +810 -0
  574. package/dist/dist-Cfu8mMBs.mjs.map +1 -0
  575. package/dist/email-console-DmqVF5J_.mjs +50 -0
  576. package/dist/email-console-DmqVF5J_.mjs.map +1 -0
  577. package/dist/email-locale-B5OjmAj_.mjs +25 -0
  578. package/dist/email-locale-B5OjmAj_.mjs.map +1 -0
  579. package/dist/emdash-runtime-CMdYH2Of.mjs +4229 -0
  580. package/dist/emdash-runtime-CMdYH2Of.mjs.map +1 -0
  581. package/dist/enrich-BDdVNeDK.mjs +194 -0
  582. package/dist/enrich-BDdVNeDK.mjs.map +1 -0
  583. package/dist/entry-lock-B-1bUDxX.d.mts +4544 -0
  584. package/dist/entry-lock-B-1bUDxX.d.mts.map +1 -0
  585. package/dist/entry-lock-B5eaZEZP.mjs +163 -0
  586. package/dist/entry-lock-B5eaZEZP.mjs.map +1 -0
  587. package/dist/entry-lock-PP1JCXBB.mjs +1180 -0
  588. package/dist/entry-lock-PP1JCXBB.mjs.map +1 -0
  589. package/dist/entry-locks-DJAqVweV.mjs +167 -0
  590. package/dist/entry-locks-DJAqVweV.mjs.map +1 -0
  591. package/dist/env-types-BaTCgn-y.mjs +38 -0
  592. package/dist/env-types-BaTCgn-y.mjs.map +1 -0
  593. package/dist/error-CEdm_AWU.mjs +90 -0
  594. package/dist/error-CEdm_AWU.mjs.map +1 -0
  595. package/dist/errors-CNvATh_7.mjs +469 -0
  596. package/dist/errors-CNvATh_7.mjs.map +1 -0
  597. package/dist/errors-CjXd1LgH.mjs +120 -0
  598. package/dist/errors-CjXd1LgH.mjs.map +1 -0
  599. package/dist/escape-nJW7dR0s.mjs +9 -0
  600. package/dist/escape-nJW7dR0s.mjs.map +1 -0
  601. package/dist/fence-BrnQffdY.mjs +162 -0
  602. package/dist/fence-BrnQffdY.mjs.map +1 -0
  603. package/dist/field-defs-cache-DEkFYCDE.mjs +77 -0
  604. package/dist/field-defs-cache-DEkFYCDE.mjs.map +1 -0
  605. package/dist/field-map-Cp5hDSRU.mjs +83 -0
  606. package/dist/field-map-Cp5hDSRU.mjs.map +1 -0
  607. package/dist/focal-point-JX8kcOTQ.mjs +23 -0
  608. package/dist/focal-point-JX8kcOTQ.mjs.map +1 -0
  609. package/dist/fts-manager-DU03MxWu.mjs +443 -0
  610. package/dist/fts-manager-DU03MxWu.mjs.map +1 -0
  611. package/dist/gc-Gf9LOF42.mjs +75 -0
  612. package/dist/gc-Gf9LOF42.mjs.map +1 -0
  613. package/dist/hash-CY4QdeMJ.mjs +37 -0
  614. package/dist/hash-CY4QdeMJ.mjs.map +1 -0
  615. package/dist/hook-result-DjdVwWpw.d.mts +31 -0
  616. package/dist/hook-result-DjdVwWpw.d.mts.map +1 -0
  617. package/dist/hreflang-Bq0ahAd4.mjs +105 -0
  618. package/dist/hreflang-Bq0ahAd4.mjs.map +1 -0
  619. package/dist/hreflang-C7ETs0Tv.d.mts +50 -0
  620. package/dist/hreflang-C7ETs0Tv.d.mts.map +1 -0
  621. package/dist/http-route-dispatch-B2G7_OOm.mjs +339 -0
  622. package/dist/http-route-dispatch-B2G7_OOm.mjs.map +1 -0
  623. package/dist/identity-u3KgtUC9.mjs +35 -0
  624. package/dist/identity-u3KgtUC9.mjs.map +1 -0
  625. package/dist/import-CzP9ffo0.mjs +2020 -0
  626. package/dist/import-CzP9ffo0.mjs.map +1 -0
  627. package/dist/index-D1_ykO2u.d.mts +623 -0
  628. package/dist/index-D1_ykO2u.d.mts.map +1 -0
  629. package/dist/index.d.mts +24 -24
  630. package/dist/index.mjs +108 -102
  631. package/dist/install-finalization-TbcQozrV.mjs +58 -0
  632. package/dist/install-finalization-TbcQozrV.mjs.map +1 -0
  633. package/dist/keys-r08WvAng.mjs +61 -0
  634. package/dist/keys-r08WvAng.mjs.map +1 -0
  635. package/dist/kinds-CXY-fwQ6.mjs +974 -0
  636. package/dist/kinds-CXY-fwQ6.mjs.map +1 -0
  637. package/dist/lifecycle-CpebZNAA.mjs +25 -0
  638. package/dist/lifecycle-CpebZNAA.mjs.map +1 -0
  639. package/dist/load-dHcR5yh9.mjs +28 -0
  640. package/dist/load-dHcR5yh9.mjs.map +1 -0
  641. package/dist/loader-B_bcoE1h.mjs +1197 -0
  642. package/dist/loader-B_bcoE1h.mjs.map +1 -0
  643. package/dist/loops-Dn1i16FP.mjs +205 -0
  644. package/dist/loops-Dn1i16FP.mjs.map +1 -0
  645. package/dist/manifest-builder-D7Y8iirE.mjs +189 -0
  646. package/dist/manifest-builder-D7Y8iirE.mjs.map +1 -0
  647. package/dist/manifest-schema-gy37bD_D.mjs +496 -0
  648. package/dist/manifest-schema-gy37bD_D.mjs.map +1 -0
  649. package/dist/marketplace-tHWSsCUo.mjs +257 -0
  650. package/dist/marketplace-tHWSsCUo.mjs.map +1 -0
  651. package/dist/media/image-endpoint.mjs +1 -1
  652. package/dist/media/index.d.mts +1 -1
  653. package/dist/media/index.mjs +4 -4
  654. package/dist/media/local-runtime.d.mts +14 -14
  655. package/dist/media/local-runtime.mjs +7 -7
  656. package/dist/media-3v7mqAVX.mjs +294 -0
  657. package/dist/media-3v7mqAVX.mjs.map +1 -0
  658. package/dist/media-CputjGE1.mjs +373 -0
  659. package/dist/media-CputjGE1.mjs.map +1 -0
  660. package/dist/media-D1z_jisb.mjs +408 -0
  661. package/dist/media-D1z_jisb.mjs.map +1 -0
  662. package/dist/media-allowlist-D5a4d-RA.mjs +44 -0
  663. package/dist/media-allowlist-D5a4d-RA.mjs.map +1 -0
  664. package/dist/media-folders-D2VdVBf6.mjs +210 -0
  665. package/dist/media-folders-D2VdVBf6.mjs.map +1 -0
  666. package/dist/media-url-DloW2xrP.mjs +43 -0
  667. package/dist/media-url-DloW2xrP.mjs.map +1 -0
  668. package/dist/media-usage-B8q0owWQ.mjs +1629 -0
  669. package/dist/media-usage-B8q0owWQ.mjs.map +1 -0
  670. package/dist/media-usage-activation-CQWOOTJi.mjs +78 -0
  671. package/dist/media-usage-activation-CQWOOTJi.mjs.map +1 -0
  672. package/dist/media-usage-work-BC0qpkMD.mjs +152 -0
  673. package/dist/media-usage-work-BC0qpkMD.mjs.map +1 -0
  674. package/dist/media-usage-work-BlMjwPg8.mjs +586 -0
  675. package/dist/media-usage-work-BlMjwPg8.mjs.map +1 -0
  676. package/dist/menus-BQKqf0Up.mjs +92 -0
  677. package/dist/menus-BQKqf0Up.mjs.map +1 -0
  678. package/dist/menus-DiuhXKWf.mjs +3646 -0
  679. package/dist/menus-DiuhXKWf.mjs.map +1 -0
  680. package/dist/menus-trvc6_fW.mjs +753 -0
  681. package/dist/menus-trvc6_fW.mjs.map +1 -0
  682. package/dist/migrations/index.d.mts +1 -1
  683. package/dist/migrations/index.mjs +3 -3
  684. package/dist/mime-IZf-LHIS.mjs +36 -0
  685. package/dist/mime-IZf-LHIS.mjs.map +1 -0
  686. package/dist/mode-nh0ppSX5.mjs +23 -0
  687. package/dist/mode-nh0ppSX5.mjs.map +1 -0
  688. package/dist/node-sqlite-compat-CDOEcc97.mjs +63 -0
  689. package/dist/node-sqlite-compat-CDOEcc97.mjs.map +1 -0
  690. package/dist/normalize-BuWa0lvd.mjs +191 -0
  691. package/dist/normalize-BuWa0lvd.mjs.map +1 -0
  692. package/dist/oauth-authorization-BcRdGojQ.mjs +274 -0
  693. package/dist/oauth-authorization-BcRdGojQ.mjs.map +1 -0
  694. package/dist/oauth-clients-C-8WDTqj.mjs +266 -0
  695. package/dist/oauth-clients-C-8WDTqj.mjs.map +1 -0
  696. package/dist/oauth-state-store-CM5ZEYQS.mjs +50 -0
  697. package/dist/oauth-state-store-CM5ZEYQS.mjs.map +1 -0
  698. package/dist/oauth-user-lookup-DrrqvTZC.mjs +26 -0
  699. package/dist/oauth-user-lookup-DrrqvTZC.mjs.map +1 -0
  700. package/dist/object-cache/memory.d.mts +1 -1
  701. package/dist/object-cache-Bo6DGaC9.mjs +586 -0
  702. package/dist/object-cache-Bo6DGaC9.mjs.map +1 -0
  703. package/dist/options-C2IDQnD2.d.mts +81 -0
  704. package/dist/options-C2IDQnD2.d.mts.map +1 -0
  705. package/dist/ownership-DoeAIuTg.mjs +12 -0
  706. package/dist/ownership-DoeAIuTg.mjs.map +1 -0
  707. package/dist/page/index.d.mts +2 -2
  708. package/dist/page/index.mjs +6 -6
  709. package/dist/parse-D5Sw9wAI.d.mts +172 -0
  710. package/dist/parse-D5Sw9wAI.d.mts.map +1 -0
  711. package/dist/parse-Gt2l4Sld.mjs +81 -0
  712. package/dist/parse-Gt2l4Sld.mjs.map +1 -0
  713. package/dist/passkey-config-CkQsrcU-.mjs +46 -0
  714. package/dist/passkey-config-CkQsrcU-.mjs.map +1 -0
  715. package/dist/paths-DiENGBx5.mjs +77 -0
  716. package/dist/paths-DiENGBx5.mjs.map +1 -0
  717. package/dist/patterns-DyZJ67I7.mjs +140 -0
  718. package/dist/patterns-DyZJ67I7.mjs.map +1 -0
  719. package/dist/placeholder-Cq5wLDCX.d.mts +306 -0
  720. package/dist/placeholder-Cq5wLDCX.d.mts.map +1 -0
  721. package/dist/plan-BxCS1tl5.mjs +135 -0
  722. package/dist/plan-BxCS1tl5.mjs.map +1 -0
  723. package/dist/plugin-test-runtime.d.mts +14 -14
  724. package/dist/plugin-test-runtime.mjs +115 -108
  725. package/dist/plugin-types.d.mts +5 -3
  726. package/dist/plugin-types.d.mts.map +1 -1
  727. package/dist/plugin-types.mjs.map +1 -1
  728. package/dist/plugin-utils.d.mts +12 -12
  729. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  730. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  731. package/dist/plugins/adapt-sandbox-entry.mjs +48 -10
  732. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  733. package/dist/plugins/host.d.mts +6 -6
  734. package/dist/plugins/host.mjs +49 -43
  735. package/dist/plugins-BpLkXA1S.mjs +277 -0
  736. package/dist/plugins-BpLkXA1S.mjs.map +1 -0
  737. package/dist/policy-C1qpNxrr.mjs +45 -0
  738. package/dist/policy-C1qpNxrr.mjs.map +1 -0
  739. package/dist/portable-text-BnRuiR1-.mjs +307 -0
  740. package/dist/portable-text-BnRuiR1-.mjs.map +1 -0
  741. package/dist/preview-DU5rwz_m.mjs +107 -0
  742. package/dist/preview-DU5rwz_m.mjs.map +1 -0
  743. package/dist/protocol-B9GEhEyi.d.mts +61 -0
  744. package/dist/protocol-B9GEhEyi.d.mts.map +1 -0
  745. package/dist/public-submission-yZaTTfsC.mjs +250 -0
  746. package/dist/public-submission-yZaTTfsC.mjs.map +1 -0
  747. package/dist/public-url-B5a0QAh6.mjs +101 -0
  748. package/dist/public-url-B5a0QAh6.mjs.map +1 -0
  749. package/dist/query-6e2CQxUv.mjs +1161 -0
  750. package/dist/query-6e2CQxUv.mjs.map +1 -0
  751. package/dist/query-DC3bv__4.mjs +41 -0
  752. package/dist/query-DC3bv__4.mjs.map +1 -0
  753. package/dist/rate-limit-BXx3Ecp9.mjs +120 -0
  754. package/dist/rate-limit-BXx3Ecp9.mjs.map +1 -0
  755. package/dist/receipt-q1VK9jhj.mjs +43 -0
  756. package/dist/receipt-q1VK9jhj.mjs.map +1 -0
  757. package/dist/redirect-BvFKh8Sz.mjs +416 -0
  758. package/dist/redirect-BvFKh8Sz.mjs.map +1 -0
  759. package/dist/redirect-D1AmADlk.mjs +19 -0
  760. package/dist/redirect-D1AmADlk.mjs.map +1 -0
  761. package/dist/redirects-CWQMKYOS.mjs +446 -0
  762. package/dist/redirects-CWQMKYOS.mjs.map +1 -0
  763. package/dist/redirects-D4EWeXAo.mjs +148 -0
  764. package/dist/redirects-D4EWeXAo.mjs.map +1 -0
  765. package/dist/registry/testing.d.mts +16 -4
  766. package/dist/registry/testing.d.mts.map +1 -1
  767. package/dist/registry/testing.mjs +20 -10
  768. package/dist/registry/testing.mjs.map +1 -1
  769. package/dist/registry-CtHRqVe-.mjs +6771 -0
  770. package/dist/registry-CtHRqVe-.mjs.map +1 -0
  771. package/dist/relations-CVI2nbrn.mjs +776 -0
  772. package/dist/relations-CVI2nbrn.mjs.map +1 -0
  773. package/dist/request-cache-C4CIo5ad.mjs +104 -0
  774. package/dist/request-cache-C4CIo5ad.mjs.map +1 -0
  775. package/dist/request-context.d.mts +9 -1
  776. package/dist/request-context.d.mts.map +1 -1
  777. package/dist/request-context.mjs.map +1 -1
  778. package/dist/request-meta-B6blULFY.mjs +141 -0
  779. package/dist/request-meta-B6blULFY.mjs.map +1 -0
  780. package/dist/resolve-Cx0Pwz0-.mjs +100 -0
  781. package/dist/resolve-Cx0Pwz0-.mjs.map +1 -0
  782. package/dist/resolve-D-kqyKns.mjs +199 -0
  783. package/dist/resolve-D-kqyKns.mjs.map +1 -0
  784. package/dist/revision-CGkQA0e5.mjs +366 -0
  785. package/dist/revision-CGkQA0e5.mjs.map +1 -0
  786. package/dist/route-wire-DK600v4u.mjs +197 -0
  787. package/dist/route-wire-DK600v4u.mjs.map +1 -0
  788. package/dist/routes-DTduBPzX.mjs +272 -0
  789. package/dist/routes-DTduBPzX.mjs.map +1 -0
  790. package/dist/runner-CLpxmhl8.mjs +6197 -0
  791. package/dist/runner-CLpxmhl8.mjs.map +1 -0
  792. package/dist/runner-Ji7qyH2A.d.mts +68 -0
  793. package/dist/runner-Ji7qyH2A.d.mts.map +1 -0
  794. package/dist/runtime.d.mts +13 -13
  795. package/dist/runtime.mjs +3 -3
  796. package/dist/schema/project-env-types.d.mts +12 -0
  797. package/dist/schema/project-env-types.d.mts.map +1 -0
  798. package/dist/schema/project-env-types.mjs +86 -0
  799. package/dist/schema/project-env-types.mjs.map +1 -0
  800. package/dist/schema-BZPj3kwZ.mjs +13 -0
  801. package/dist/schema-BZPj3kwZ.mjs.map +1 -0
  802. package/dist/schema-Berj5VQx.mjs +815 -0
  803. package/dist/schema-Berj5VQx.mjs.map +1 -0
  804. package/dist/scopes-C1HJaIyf.mjs +34 -0
  805. package/dist/scopes-C1HJaIyf.mjs.map +1 -0
  806. package/dist/search-thYf8j9F.mjs +448 -0
  807. package/dist/search-thYf8j9F.mjs.map +1 -0
  808. package/dist/sections-2k1uIgJ0.mjs +346 -0
  809. package/dist/sections-2k1uIgJ0.mjs.map +1 -0
  810. package/dist/seed/index.d.mts +2 -2
  811. package/dist/seed/index.mjs +39 -32
  812. package/dist/seo/index.d.mts +3 -3
  813. package/dist/seo/index.mjs +24 -22
  814. package/dist/seo/index.mjs.map +1 -1
  815. package/dist/seo-C61bnPuV.mjs +114 -0
  816. package/dist/seo-C61bnPuV.mjs.map +1 -0
  817. package/dist/seo-DpYxmGaL.mjs +133 -0
  818. package/dist/seo-DpYxmGaL.mjs.map +1 -0
  819. package/dist/service-BFUImckH.mjs +150 -0
  820. package/dist/service-BFUImckH.mjs.map +1 -0
  821. package/dist/session-user-DVcHsFD5.mjs +61 -0
  822. package/dist/session-user-DVcHsFD5.mjs.map +1 -0
  823. package/dist/settings-B0zQj_Tj.mjs +61 -0
  824. package/dist/settings-B0zQj_Tj.mjs.map +1 -0
  825. package/dist/settings-BJjK_X7x.mjs +51 -0
  826. package/dist/settings-BJjK_X7x.mjs.map +1 -0
  827. package/dist/settings-BbVRRGDp.mjs +439 -0
  828. package/dist/settings-BbVRRGDp.mjs.map +1 -0
  829. package/dist/setup-complete-CuLcTDTU.mjs +65 -0
  830. package/dist/setup-complete-CuLcTDTU.mjs.map +1 -0
  831. package/dist/setup-nonce-CAQoY5PC.mjs +25 -0
  832. package/dist/setup-nonce-CAQoY5PC.mjs.map +1 -0
  833. package/dist/site-settings-AYFvhwQn.mjs +50 -0
  834. package/dist/site-settings-AYFvhwQn.mjs.map +1 -0
  835. package/dist/site-url-Ceq_AUK0.mjs +16 -0
  836. package/dist/site-url-Ceq_AUK0.mjs.map +1 -0
  837. package/dist/snapshot-Dzsn3NZa.mjs +414 -0
  838. package/dist/snapshot-Dzsn3NZa.mjs.map +1 -0
  839. package/dist/ssrf-DsmvZB80.mjs +406 -0
  840. package/dist/ssrf-DsmvZB80.mjs.map +1 -0
  841. package/dist/stage-Cf9PqdUB.mjs +662 -0
  842. package/dist/stage-Cf9PqdUB.mjs.map +1 -0
  843. package/dist/staged-Bw5eHbKS.mjs +686 -0
  844. package/dist/staged-Bw5eHbKS.mjs.map +1 -0
  845. package/dist/state-kGdOMQRY.mjs +153 -0
  846. package/dist/state-kGdOMQRY.mjs.map +1 -0
  847. package/dist/status-D39Fpy8R.mjs +30 -0
  848. package/dist/status-D39Fpy8R.mjs.map +1 -0
  849. package/dist/storage/local.d.mts +1 -1
  850. package/dist/storage/local.mjs +1 -1
  851. package/dist/storage/s3.d.mts +1 -1
  852. package/dist/storage/s3.mjs +1 -1
  853. package/dist/storage-query-C9bK0Dg6.d.mts +1614 -0
  854. package/dist/storage-query-C9bK0Dg6.d.mts.map +1 -0
  855. package/dist/tar-lDI_fzLD.mjs +449 -0
  856. package/dist/tar-lDI_fzLD.mjs.map +1 -0
  857. package/dist/target-DOFs5oUC.mjs +27 -0
  858. package/dist/target-DOFs5oUC.mjs.map +1 -0
  859. package/dist/taxonomies-DQGomz9p.mjs +939 -0
  860. package/dist/taxonomies-DQGomz9p.mjs.map +1 -0
  861. package/dist/taxonomies-DWv-OYT0.mjs +697 -0
  862. package/dist/taxonomies-DWv-OYT0.mjs.map +1 -0
  863. package/dist/taxonomy-BesdHIwi.mjs +525 -0
  864. package/dist/taxonomy-BesdHIwi.mjs.map +1 -0
  865. package/dist/tokens-BIGxi8sP.mjs +171 -0
  866. package/dist/tokens-BIGxi8sP.mjs.map +1 -0
  867. package/dist/transaction-BVYIo_yu.mjs +29 -0
  868. package/dist/transaction-BVYIo_yu.mjs.map +1 -0
  869. package/dist/transfer-BtzoaXLk.mjs +166 -0
  870. package/dist/transfer-BtzoaXLk.mjs.map +1 -0
  871. package/dist/transfer-DLu_6AXL.mjs +8856 -0
  872. package/dist/transfer-DLu_6AXL.mjs.map +1 -0
  873. package/dist/transfer-download-b_PCrqJJ.mjs +33 -0
  874. package/dist/transfer-download-b_PCrqJJ.mjs.map +1 -0
  875. package/dist/transformations-DdnpSdeC.mjs +196 -0
  876. package/dist/transformations-DdnpSdeC.mjs.map +1 -0
  877. package/dist/transport-flR-Zmds.d.mts +42 -0
  878. package/dist/transport-flR-Zmds.d.mts.map +1 -0
  879. package/dist/transport-umzEbgYO.mjs +136 -0
  880. package/dist/transport-umzEbgYO.mjs.map +1 -0
  881. package/dist/trusted-proxy-BqfQFs6a.mjs +51 -0
  882. package/dist/trusted-proxy-BqfQFs6a.mjs.map +1 -0
  883. package/dist/turnstile-IvQp2uyD.mjs +53 -0
  884. package/dist/turnstile-IvQp2uyD.mjs.map +1 -0
  885. package/dist/types-2V_MVPYy.d.mts +125 -0
  886. package/dist/types-2V_MVPYy.d.mts.map +1 -0
  887. package/dist/types-B-WCvzdi.d.mts +198 -0
  888. package/dist/types-B-WCvzdi.d.mts.map +1 -0
  889. package/dist/types-BGmQ0uXs.mjs +201 -0
  890. package/dist/types-BGmQ0uXs.mjs.map +1 -0
  891. package/dist/types-CVsmpTcU.mjs +18 -0
  892. package/dist/types-CVsmpTcU.mjs.map +1 -0
  893. package/dist/types-C_V-_vMS.d.mts +198 -0
  894. package/dist/types-C_V-_vMS.d.mts.map +1 -0
  895. package/dist/types-CdEMurNh.mjs +77 -0
  896. package/dist/types-CdEMurNh.mjs.map +1 -0
  897. package/dist/types-CsmwbOwa.mjs +22 -0
  898. package/dist/types-CsmwbOwa.mjs.map +1 -0
  899. package/dist/types-Cw-1it3n.d.mts +287 -0
  900. package/dist/types-Cw-1it3n.d.mts.map +1 -0
  901. package/dist/types-D7B20WFC.d.mts +374 -0
  902. package/dist/types-D7B20WFC.d.mts.map +1 -0
  903. package/dist/types-DGw8KMX_.mjs +16 -0
  904. package/dist/types-DGw8KMX_.mjs.map +1 -0
  905. package/dist/types-DZeDpzMc.d.mts +896 -0
  906. package/dist/types-DZeDpzMc.d.mts.map +1 -0
  907. package/dist/types-DuQAIPA-.d.mts +363 -0
  908. package/dist/types-DuQAIPA-.d.mts.map +1 -0
  909. package/dist/types-edRPQchz.d.mts +85 -0
  910. package/dist/types-edRPQchz.d.mts.map +1 -0
  911. package/dist/types-j6MBDjlZ.mjs +103 -0
  912. package/dist/types-j6MBDjlZ.mjs.map +1 -0
  913. package/dist/types-pOLeFKGq.d.mts +1720 -0
  914. package/dist/types-pOLeFKGq.d.mts.map +1 -0
  915. package/dist/update-check-CaZyFHZC.mjs +161 -0
  916. package/dist/update-check-CaZyFHZC.mjs.map +1 -0
  917. package/dist/upload-attempts-BodUoFBu.mjs +32 -0
  918. package/dist/upload-attempts-BodUoFBu.mjs.map +1 -0
  919. package/dist/url-Dn3IStq8.mjs +104 -0
  920. package/dist/url-Dn3IStq8.mjs.map +1 -0
  921. package/dist/url-pattern-DGAG6ZP2.mjs +41 -0
  922. package/dist/url-pattern-DGAG6ZP2.mjs.map +1 -0
  923. package/dist/user-BOvuF1sQ.mjs +171 -0
  924. package/dist/user-BOvuF1sQ.mjs.map +1 -0
  925. package/dist/utils-CoV-PYhg.mjs +439 -0
  926. package/dist/utils-CoV-PYhg.mjs.map +1 -0
  927. package/dist/validate-WkjGwBSO.mjs +516 -0
  928. package/dist/validate-WkjGwBSO.mjs.map +1 -0
  929. package/dist/validate-dK97qe7F.d.mts +468 -0
  930. package/dist/validate-dK97qe7F.d.mts.map +1 -0
  931. package/dist/validation-D-ICq_tY.mjs +219 -0
  932. package/dist/validation-D-ICq_tY.mjs.map +1 -0
  933. package/dist/version-DbT04wbH.mjs +9 -0
  934. package/dist/version-DbT04wbH.mjs.map +1 -0
  935. package/dist/version-IneBU54o.mjs +7 -0
  936. package/dist/version-IneBU54o.mjs.map +1 -0
  937. package/dist/virtual-modules-Brh6mRVe.mjs +516 -0
  938. package/dist/virtual-modules-Brh6mRVe.mjs.map +1 -0
  939. package/dist/widgets-D8T0xBYs.mjs +126 -0
  940. package/dist/widgets-D8T0xBYs.mjs.map +1 -0
  941. package/dist/wxr-taxonomies-B6iE8m9I.d.mts +34 -0
  942. package/dist/wxr-taxonomies-B6iE8m9I.d.mts.map +1 -0
  943. package/dist/wxr-taxonomies-DEzR9N7e.mjs +453 -0
  944. package/dist/wxr-taxonomies-DEzR9N7e.mjs.map +1 -0
  945. package/dist/zod-generator-DnfG5sGQ.mjs +424 -0
  946. package/dist/zod-generator-DnfG5sGQ.mjs.map +1 -0
  947. package/package.json +15 -15
  948. package/src/api/errors.ts +11 -0
  949. package/src/api/handlers/bulk-tag.ts +4 -4
  950. package/src/api/handlers/content.ts +631 -32
  951. package/src/api/handlers/device-flow.ts +74 -21
  952. package/src/api/handlers/index.ts +3 -0
  953. package/src/api/handlers/manifest.ts +81 -5
  954. package/src/api/handlers/media-upload.ts +3 -0
  955. package/src/api/handlers/media.ts +2 -2
  956. package/src/api/handlers/registry.ts +123 -70
  957. package/src/api/handlers/relations.ts +638 -157
  958. package/src/api/handlers/revision.ts +40 -2
  959. package/src/api/handlers/schema.ts +403 -1
  960. package/src/api/handlers/staged-references.ts +208 -0
  961. package/src/api/handlers/update-check.ts +236 -0
  962. package/src/api/handlers/validate-references.ts +146 -0
  963. package/src/api/redirect.ts +9 -1
  964. package/src/api/schemas/content.ts +17 -0
  965. package/src/api/schemas/import.ts +50 -14
  966. package/src/api/schemas/relations.ts +54 -44
  967. package/src/api/schemas/schema.ts +26 -6
  968. package/src/api/setup-complete.ts +49 -1
  969. package/src/api/types.ts +4 -0
  970. package/src/astro/dev-typegen.ts +15 -22
  971. package/src/astro/integration/dev-typegen.ts +32 -3
  972. package/src/astro/integration/index.ts +88 -22
  973. package/src/astro/integration/routes.ts +21 -19
  974. package/src/astro/integration/runtime.ts +33 -7
  975. package/src/astro/integration/virtual-modules.ts +1 -0
  976. package/src/astro/integration/vite-config.ts +16 -8
  977. package/src/astro/middleware/redirect.ts +15 -2
  978. package/src/astro/middleware/request-context.ts +13 -6
  979. package/src/astro/routes/api/admin/bylines/[id]/index.ts +11 -1
  980. package/src/astro/routes/api/admin/bylines/[id]/translations.ts +7 -1
  981. package/src/astro/routes/api/admin/bylines/index.ts +6 -1
  982. package/src/astro/routes/api/admin/core-update.ts +34 -0
  983. package/src/astro/routes/api/admin/plugins/marketplace/[id]/icon.ts +6 -2
  984. package/src/astro/routes/api/admin/themes/marketplace/[id]/thumbnail.ts +6 -2
  985. package/src/astro/routes/api/auth/invite/complete.ts +4 -4
  986. package/src/astro/routes/api/auth/magic-link/verify.ts +4 -1
  987. package/src/astro/routes/api/auth/oauth/[provider]/callback.ts +9 -4
  988. package/src/astro/routes/api/auth/passkey/verify.ts +4 -4
  989. package/src/astro/routes/api/auth/signup/complete.ts +4 -4
  990. package/src/astro/routes/api/content/[collection]/[id]/references/[relation]/children.ts +11 -54
  991. package/src/astro/routes/api/content/[collection]/[id].ts +3 -1
  992. package/src/astro/routes/api/import/wordpress/execute.ts +252 -6
  993. package/src/astro/routes/api/import/wordpress/prepare.ts +1 -2
  994. package/src/astro/routes/api/oauth/device/authorize.ts +33 -4
  995. package/src/astro/routes/api/oauth/register.ts +22 -2
  996. package/src/astro/routes/api/relations/index.ts +4 -4
  997. package/src/astro/routes/api/revisions/[revisionId]/restore.ts +17 -1
  998. package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +6 -2
  999. package/src/astro/routes/api/setup/admin-verify.ts +6 -5
  1000. package/src/astro/routes/api/typegen.ts +4 -46
  1001. package/src/astro/session-user.ts +14 -0
  1002. package/src/astro/types.ts +11 -0
  1003. package/src/bylines/credits.ts +149 -0
  1004. package/src/bylines/index.ts +4 -142
  1005. package/src/cli/commands/export-seed.ts +510 -89
  1006. package/src/cli/commands/seed.ts +2 -0
  1007. package/src/cli/credentials.ts +1 -60
  1008. package/src/cli/index.ts +0 -2
  1009. package/src/client/index.ts +8 -2
  1010. package/src/components/Image.astro +24 -13
  1011. package/src/components/InlinePortableTextEditor.tsx +25 -8
  1012. package/src/components/WidgetArea.astro +3 -2
  1013. package/src/content/converters/portable-text-to-prosemirror.ts +23 -17
  1014. package/src/content/converters/prosemirror-to-portable-text.ts +16 -5
  1015. package/src/content/converters/types.ts +1 -0
  1016. package/src/database/content-datetime.ts +111 -23
  1017. package/src/database/migrations/036_i18n_menus_and_taxonomies.ts +132 -92
  1018. package/src/database/migrations/086_relations_structural.ts +197 -0
  1019. package/src/database/migrations/087_reference_field_relations.ts +407 -0
  1020. package/src/database/migrations/088_cron_oneshot_utc.ts +39 -0
  1021. package/src/database/migrations/089_auto_seed_completion.ts +13 -0
  1022. package/src/database/migrations/runner.ts +8 -0
  1023. package/src/database/reference-backfill.ts +141 -0
  1024. package/src/database/repositories/comment.ts +2 -2
  1025. package/src/database/repositories/content.ts +58 -16
  1026. package/src/database/repositories/plugin-storage.ts +1 -1
  1027. package/src/database/repositories/redirect.ts +7 -2
  1028. package/src/database/repositories/relation.ts +622 -210
  1029. package/src/database/repositories/revision.ts +16 -0
  1030. package/src/database/repositories/types.ts +38 -0
  1031. package/src/database/transaction.ts +12 -1
  1032. package/src/database/types.ts +15 -6
  1033. package/src/db/node-sqlite-compat.ts +63 -37
  1034. package/src/emdash-runtime.ts +149 -46
  1035. package/src/import/wxr-taxonomies.ts +163 -88
  1036. package/src/index.ts +20 -0
  1037. package/src/loader.ts +177 -23
  1038. package/src/mcp/server.ts +90 -8
  1039. package/src/media/usage/activation.ts +18 -9
  1040. package/src/migrations/config-loader.ts +5 -0
  1041. package/src/object-cache/index.ts +19 -7
  1042. package/src/object-cache/types.ts +3 -2
  1043. package/src/plugin-types.ts +7 -0
  1044. package/src/plugins/adapt-sandbox-entry.ts +47 -12
  1045. package/src/plugins/byline-access.ts +158 -0
  1046. package/src/plugins/context.ts +7 -1
  1047. package/src/plugins/cron.ts +27 -4
  1048. package/src/plugins/hooks.ts +47 -0
  1049. package/src/plugins/host.ts +1 -0
  1050. package/src/plugins/index.ts +10 -1
  1051. package/src/plugins/manifest-schema.ts +5 -1
  1052. package/src/plugins/marketplace.ts +48 -36
  1053. package/src/plugins/sandbox/proxy.ts +1 -0
  1054. package/src/plugins/types.ts +95 -0
  1055. package/src/query.ts +464 -27
  1056. package/src/redirects/cache.ts +11 -1
  1057. package/src/redirects/destination.ts +20 -0
  1058. package/src/redirects/loops.ts +10 -6
  1059. package/src/redirects/patterns.ts +12 -30
  1060. package/src/references/field-map.ts +115 -0
  1061. package/src/references/resolve.ts +160 -0
  1062. package/src/references/staged.ts +157 -0
  1063. package/src/references/types.ts +16 -0
  1064. package/src/registry/artifact-fetch.ts +45 -271
  1065. package/src/registry/testing.ts +59 -14
  1066. package/src/request-context.ts +8 -0
  1067. package/src/schema/block-type-registry.ts +1 -1
  1068. package/src/schema/env-types.ts +37 -0
  1069. package/src/schema/project-env-types.ts +41 -0
  1070. package/src/schema/registry.ts +132 -26
  1071. package/src/schema/types.ts +63 -0
  1072. package/src/schema/url-pattern.ts +10 -0
  1073. package/src/schema/zod-generator.ts +78 -2
  1074. package/src/seed/apply.ts +553 -63
  1075. package/src/seed/ownership.ts +15 -0
  1076. package/src/seed/types.ts +36 -2
  1077. package/src/seed/validate.ts +123 -4
  1078. package/src/transfer/analyze/unique-keys.ts +3 -12
  1079. package/src/transfer/analyze/validate.ts +178 -40
  1080. package/src/transfer/analyze/values.ts +116 -2
  1081. package/src/transfer/analyze/write-rules.ts +8 -0
  1082. package/src/transfer/export/readers.ts +12 -8
  1083. package/src/transfer/format/columns.ts +26 -6
  1084. package/src/transfer/format/kinds.ts +21 -5
  1085. package/src/transfer/import/context.ts +8 -1
  1086. package/src/transfer/ops/package-index.ts +1 -1
  1087. package/src/utils/url.ts +58 -3
  1088. package/src/virtual-modules.d.ts +3 -0
  1089. package/dist/action-token-DYwe4Pk0.mjs +0 -26
  1090. package/dist/action-token-DYwe4Pk0.mjs.map +0 -1
  1091. package/dist/activation-LOkDM5WT.mjs +0 -382
  1092. package/dist/activation-LOkDM5WT.mjs.map +0 -1
  1093. package/dist/adapters-B64LbYcB.d.mts +0 -171
  1094. package/dist/adapters-B64LbYcB.d.mts.map +0 -1
  1095. package/dist/allowed-origins-CHB8oZNM.mjs +0 -116
  1096. package/dist/allowed-origins-CHB8oZNM.mjs.map +0 -1
  1097. package/dist/api-CuyNEHZG.mjs +0 -4718
  1098. package/dist/api-CuyNEHZG.mjs.map +0 -1
  1099. package/dist/api-tokens-s4i4aUp_.mjs +0 -166
  1100. package/dist/api-tokens-s4i4aUp_.mjs.map +0 -1
  1101. package/dist/apply-npY1TAhG.mjs +0 -1366
  1102. package/dist/apply-npY1TAhG.mjs.map +0 -1
  1103. package/dist/approvals-CqMfNxak.mjs +0 -460
  1104. package/dist/approvals-CqMfNxak.mjs.map +0 -1
  1105. package/dist/artifact-fetch-DZMOGZ3-.mjs +0 -818
  1106. package/dist/artifact-fetch-DZMOGZ3-.mjs.map +0 -1
  1107. package/dist/astro/routes/api/relations/_id_/translations.d.mts +0 -8
  1108. package/dist/astro/routes/api/relations/_id_/translations.d.mts.map +0 -1
  1109. package/dist/astro/routes/api/relations/_id_/translations.mjs +0 -47
  1110. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +0 -1
  1111. package/dist/audit-RfCugiSB.mjs +0 -127
  1112. package/dist/audit-RfCugiSB.mjs.map +0 -1
  1113. package/dist/authoritative-records-CoJvBXAD.mjs +0 -5172
  1114. package/dist/authoritative-records-CoJvBXAD.mjs.map +0 -1
  1115. package/dist/authorize-seCifOMJ.mjs +0 -49
  1116. package/dist/authorize-seCifOMJ.mjs.map +0 -1
  1117. package/dist/backup-BQRj3afm.mjs +0 -246
  1118. package/dist/backup-BQRj3afm.mjs.map +0 -1
  1119. package/dist/block-type-registry-DUI_3KxT.mjs +0 -6709
  1120. package/dist/block-type-registry-DUI_3KxT.mjs.map +0 -1
  1121. package/dist/block-types-BmZmLmAD.mjs +0 -132
  1122. package/dist/block-types-BmZmLmAD.mjs.map +0 -1
  1123. package/dist/block-values-C_VIPr5t.mjs +0 -175
  1124. package/dist/block-values-C_VIPr5t.mjs.map +0 -1
  1125. package/dist/byline-DYmkXqvo.mjs +0 -909
  1126. package/dist/byline-DYmkXqvo.mjs.map +0 -1
  1127. package/dist/byline-fields-D28AT-Fh.mjs +0 -123
  1128. package/dist/byline-fields-D28AT-Fh.mjs.map +0 -1
  1129. package/dist/byline-registry-gnKscbQX.mjs +0 -406
  1130. package/dist/byline-registry-gnKscbQX.mjs.map +0 -1
  1131. package/dist/bylines-BPwJqoYH.mjs +0 -232
  1132. package/dist/bylines-BPwJqoYH.mjs.map +0 -1
  1133. package/dist/bylines-ukLaYpVZ.mjs +0 -214
  1134. package/dist/bylines-ukLaYpVZ.mjs.map +0 -1
  1135. package/dist/cache-m7UEkRFV.mjs +0 -108
  1136. package/dist/cache-m7UEkRFV.mjs.map +0 -1
  1137. package/dist/canonical-YhEQezjg.mjs +0 -174
  1138. package/dist/canonical-YhEQezjg.mjs.map +0 -1
  1139. package/dist/capture-triggers-kJyl_yyM.mjs +0 -362
  1140. package/dist/capture-triggers-kJyl_yyM.mjs.map +0 -1
  1141. package/dist/challenge-store-ppU6Uv13.mjs +0 -51
  1142. package/dist/challenge-store-ppU6Uv13.mjs.map +0 -1
  1143. package/dist/checksum-B2IINIlN.mjs +0 -162
  1144. package/dist/checksum-B2IINIlN.mjs.map +0 -1
  1145. package/dist/chrome-tags-DApCQSIk.mjs +0 -24
  1146. package/dist/chrome-tags-DApCQSIk.mjs.map +0 -1
  1147. package/dist/chunks-Dms7Uxbt.mjs +0 -25
  1148. package/dist/chunks-Dms7Uxbt.mjs.map +0 -1
  1149. package/dist/collection-deletion-BIm28mo3.mjs +0 -436
  1150. package/dist/collection-deletion-BIm28mo3.mjs.map +0 -1
  1151. package/dist/collection-deletion-processor-Br6rxs3u.mjs +0 -217
  1152. package/dist/collection-deletion-processor-Br6rxs3u.mjs.map +0 -1
  1153. package/dist/collection-slugs-cache-CjGk__zp.mjs +0 -85
  1154. package/dist/collection-slugs-cache-CjGk__zp.mjs.map +0 -1
  1155. package/dist/comment-CrBl22OF.mjs +0 -313
  1156. package/dist/comment-CrBl22OF.mjs.map +0 -1
  1157. package/dist/comment-reaction-JEQ2Fpd8.mjs +0 -85
  1158. package/dist/comment-reaction-JEQ2Fpd8.mjs.map +0 -1
  1159. package/dist/comments-2ah9du9y.mjs +0 -195
  1160. package/dist/comments-2ah9du9y.mjs.map +0 -1
  1161. package/dist/comments-fHZ8ON9O.mjs +0 -99
  1162. package/dist/comments-fHZ8ON9O.mjs.map +0 -1
  1163. package/dist/components-CXbq7CSM.mjs +0 -108
  1164. package/dist/components-CXbq7CSM.mjs.map +0 -1
  1165. package/dist/config-BjEm_3xL.d.mts +0 -6537
  1166. package/dist/config-BjEm_3xL.d.mts.map +0 -1
  1167. package/dist/config-IhybvkIQ.mjs +0 -242
  1168. package/dist/config-IhybvkIQ.mjs.map +0 -1
  1169. package/dist/config-Py43JK9r.d.mts +0 -39
  1170. package/dist/config-Py43JK9r.d.mts.map +0 -1
  1171. package/dist/content-DFaIEDj9.mjs +0 -2281
  1172. package/dist/content-DFaIEDj9.mjs.map +0 -1
  1173. package/dist/content-list-query-Dra4Dalc.d.mts +0 -26
  1174. package/dist/content-list-query-Dra4Dalc.d.mts.map +0 -1
  1175. package/dist/content-policy-DFNw91-d.mjs +0 -46
  1176. package/dist/content-policy-DFNw91-d.mjs.map +0 -1
  1177. package/dist/content-repair-Q8IUrpLL.mjs +0 -442
  1178. package/dist/content-repair-Q8IUrpLL.mjs.map +0 -1
  1179. package/dist/context-BV_7t-Ua.mjs +0 -1921
  1180. package/dist/context-BV_7t-Ua.mjs.map +0 -1
  1181. package/dist/cron-7DCJwPXq.mjs +0 -284
  1182. package/dist/cron-7DCJwPXq.mjs.map +0 -1
  1183. package/dist/dashboard-BP-iJqpd.mjs +0 -151
  1184. package/dist/dashboard-BP-iJqpd.mjs.map +0 -1
  1185. package/dist/default-DQ6vsviu.mjs +0 -81
  1186. package/dist/default-DQ6vsviu.mjs.map +0 -1
  1187. package/dist/deferred-tasks-BPxXUB4x.d.mts +0 -9
  1188. package/dist/deferred-tasks-BPxXUB4x.d.mts.map +0 -1
  1189. package/dist/dev-typegen-CZaPLl3V.mjs +0 -29
  1190. package/dist/dev-typegen-CZaPLl3V.mjs.map +0 -1
  1191. package/dist/device-flow-CRd6DXmW.mjs +0 -466
  1192. package/dist/device-flow-CRd6DXmW.mjs.map +0 -1
  1193. package/dist/digest-BarSh-pN.mjs +0 -194
  1194. package/dist/digest-BarSh-pN.mjs.map +0 -1
  1195. package/dist/direct-executor-D2lNadwo.mjs +0 -104
  1196. package/dist/direct-executor-D2lNadwo.mjs.map +0 -1
  1197. package/dist/dist-BNwANFJR.mjs +0 -810
  1198. package/dist/dist-BNwANFJR.mjs.map +0 -1
  1199. package/dist/email-console-bJn3ctqA.mjs +0 -50
  1200. package/dist/email-console-bJn3ctqA.mjs.map +0 -1
  1201. package/dist/email-locale-CN6WAMx0.mjs +0 -25
  1202. package/dist/email-locale-CN6WAMx0.mjs.map +0 -1
  1203. package/dist/emdash-runtime-CtfnZmPi.mjs +0 -4186
  1204. package/dist/emdash-runtime-CtfnZmPi.mjs.map +0 -1
  1205. package/dist/enrich-Dl3kZ-lP.mjs +0 -194
  1206. package/dist/enrich-Dl3kZ-lP.mjs.map +0 -1
  1207. package/dist/entry-lock-BJYdBfXb.mjs +0 -1097
  1208. package/dist/entry-lock-BJYdBfXb.mjs.map +0 -1
  1209. package/dist/entry-lock-Cf5OoIgN.d.mts +0 -4368
  1210. package/dist/entry-lock-Cf5OoIgN.d.mts.map +0 -1
  1211. package/dist/entry-lock-DHQOxN7R.mjs +0 -163
  1212. package/dist/entry-lock-DHQOxN7R.mjs.map +0 -1
  1213. package/dist/entry-locks-D0foLdjQ.mjs +0 -167
  1214. package/dist/entry-locks-D0foLdjQ.mjs.map +0 -1
  1215. package/dist/error-CfvOHP0M.mjs +0 -90
  1216. package/dist/error-CfvOHP0M.mjs.map +0 -1
  1217. package/dist/errors-BF0_LFhW.mjs +0 -460
  1218. package/dist/errors-BF0_LFhW.mjs.map +0 -1
  1219. package/dist/errors-DgE1zJGG.mjs +0 -120
  1220. package/dist/errors-DgE1zJGG.mjs.map +0 -1
  1221. package/dist/escape-CuaZhZvL.mjs +0 -9
  1222. package/dist/escape-CuaZhZvL.mjs.map +0 -1
  1223. package/dist/fence-CMDXJYc_.mjs +0 -162
  1224. package/dist/fence-CMDXJYc_.mjs.map +0 -1
  1225. package/dist/field-defs-cache-HIgBbqZZ.mjs +0 -77
  1226. package/dist/field-defs-cache-HIgBbqZZ.mjs.map +0 -1
  1227. package/dist/focal-point-Gr34o-4o.mjs +0 -23
  1228. package/dist/focal-point-Gr34o-4o.mjs.map +0 -1
  1229. package/dist/fts-manager-S-K0laoS.mjs +0 -443
  1230. package/dist/fts-manager-S-K0laoS.mjs.map +0 -1
  1231. package/dist/gc-DjKY0Ay1.mjs +0 -75
  1232. package/dist/gc-DjKY0Ay1.mjs.map +0 -1
  1233. package/dist/hash-SDAW6zC-.mjs +0 -37
  1234. package/dist/hash-SDAW6zC-.mjs.map +0 -1
  1235. package/dist/hook-result-B5bXDgS2.d.mts +0 -31
  1236. package/dist/hook-result-B5bXDgS2.d.mts.map +0 -1
  1237. package/dist/hreflang-CbVI4paR.mjs +0 -105
  1238. package/dist/hreflang-CbVI4paR.mjs.map +0 -1
  1239. package/dist/hreflang-D5uNnsGJ.d.mts +0 -50
  1240. package/dist/hreflang-D5uNnsGJ.d.mts.map +0 -1
  1241. package/dist/http-route-dispatch-BitqzwMy.mjs +0 -339
  1242. package/dist/http-route-dispatch-BitqzwMy.mjs.map +0 -1
  1243. package/dist/identity-Be5kzutJ.mjs +0 -35
  1244. package/dist/identity-Be5kzutJ.mjs.map +0 -1
  1245. package/dist/import-YzfKCaco.mjs +0 -2020
  1246. package/dist/import-YzfKCaco.mjs.map +0 -1
  1247. package/dist/index-D-hdtLe8.d.mts +0 -623
  1248. package/dist/index-D-hdtLe8.d.mts.map +0 -1
  1249. package/dist/install-finalization-DfM1fj5x.mjs +0 -58
  1250. package/dist/install-finalization-DfM1fj5x.mjs.map +0 -1
  1251. package/dist/keys-yxLm5l35.mjs +0 -61
  1252. package/dist/keys-yxLm5l35.mjs.map +0 -1
  1253. package/dist/kinds-CRu_T5T5.mjs +0 -961
  1254. package/dist/kinds-CRu_T5T5.mjs.map +0 -1
  1255. package/dist/lifecycle-BzeGPeQ-.mjs +0 -25
  1256. package/dist/lifecycle-BzeGPeQ-.mjs.map +0 -1
  1257. package/dist/load-XgJiE6_3.mjs +0 -28
  1258. package/dist/load-XgJiE6_3.mjs.map +0 -1
  1259. package/dist/loader-BzqeR1ZN.mjs +0 -1086
  1260. package/dist/loader-BzqeR1ZN.mjs.map +0 -1
  1261. package/dist/loops-BQSzv5Zn.mjs +0 -203
  1262. package/dist/loops-BQSzv5Zn.mjs.map +0 -1
  1263. package/dist/manifest-builder-BmSAOOEF.mjs +0 -189
  1264. package/dist/manifest-builder-BmSAOOEF.mjs.map +0 -1
  1265. package/dist/manifest-schema-CY3zng_M.mjs +0 -492
  1266. package/dist/manifest-schema-CY3zng_M.mjs.map +0 -1
  1267. package/dist/media-CPXTbb1R.mjs +0 -373
  1268. package/dist/media-CPXTbb1R.mjs.map +0 -1
  1269. package/dist/media-JXRWDhw3.mjs +0 -294
  1270. package/dist/media-JXRWDhw3.mjs.map +0 -1
  1271. package/dist/media-Pu1L6xir.mjs +0 -408
  1272. package/dist/media-Pu1L6xir.mjs.map +0 -1
  1273. package/dist/media-allowlist-BSoa9Vvm.mjs +0 -44
  1274. package/dist/media-allowlist-BSoa9Vvm.mjs.map +0 -1
  1275. package/dist/media-folders-BE0oo2eX.mjs +0 -210
  1276. package/dist/media-folders-BE0oo2eX.mjs.map +0 -1
  1277. package/dist/media-url-jArBpzIG.mjs +0 -43
  1278. package/dist/media-url-jArBpzIG.mjs.map +0 -1
  1279. package/dist/media-usage-De-zeR9E.mjs +0 -1629
  1280. package/dist/media-usage-De-zeR9E.mjs.map +0 -1
  1281. package/dist/media-usage-activation-HKp7zk7W.mjs +0 -78
  1282. package/dist/media-usage-activation-HKp7zk7W.mjs.map +0 -1
  1283. package/dist/media-usage-work-C2OZLCAd.mjs +0 -586
  1284. package/dist/media-usage-work-C2OZLCAd.mjs.map +0 -1
  1285. package/dist/media-usage-work-DwUNbgvS.mjs +0 -152
  1286. package/dist/media-usage-work-DwUNbgvS.mjs.map +0 -1
  1287. package/dist/menus-BM7BPLOb.mjs +0 -139
  1288. package/dist/menus-BM7BPLOb.mjs.map +0 -1
  1289. package/dist/menus-Cm68rsAq.mjs +0 -3608
  1290. package/dist/menus-Cm68rsAq.mjs.map +0 -1
  1291. package/dist/menus-ITeAbcIF.mjs +0 -753
  1292. package/dist/menus-ITeAbcIF.mjs.map +0 -1
  1293. package/dist/mime-ChLqYwDk.mjs +0 -36
  1294. package/dist/mime-ChLqYwDk.mjs.map +0 -1
  1295. package/dist/mode-CCuKXUci.mjs +0 -23
  1296. package/dist/mode-CCuKXUci.mjs.map +0 -1
  1297. package/dist/node-sqlite-compat-CONMsl-x.mjs +0 -46
  1298. package/dist/node-sqlite-compat-CONMsl-x.mjs.map +0 -1
  1299. package/dist/normalize-CO2P8-iE.mjs +0 -191
  1300. package/dist/normalize-CO2P8-iE.mjs.map +0 -1
  1301. package/dist/oauth-authorization-DlMIL5_h.mjs +0 -274
  1302. package/dist/oauth-authorization-DlMIL5_h.mjs.map +0 -1
  1303. package/dist/oauth-clients-Djq9r_KP.mjs +0 -266
  1304. package/dist/oauth-clients-Djq9r_KP.mjs.map +0 -1
  1305. package/dist/oauth-state-store-BbjnZXNC.mjs +0 -50
  1306. package/dist/oauth-state-store-BbjnZXNC.mjs.map +0 -1
  1307. package/dist/oauth-user-lookup-vue9a64A.mjs +0 -26
  1308. package/dist/oauth-user-lookup-vue9a64A.mjs.map +0 -1
  1309. package/dist/object-cache-CqWNY5uP.mjs +0 -582
  1310. package/dist/object-cache-CqWNY5uP.mjs.map +0 -1
  1311. package/dist/options-SQCHQCPH.d.mts +0 -81
  1312. package/dist/options-SQCHQCPH.d.mts.map +0 -1
  1313. package/dist/parse-CVgO-Qai.d.mts +0 -168
  1314. package/dist/parse-CVgO-Qai.d.mts.map +0 -1
  1315. package/dist/parse-DY6OD1j_.mjs +0 -81
  1316. package/dist/parse-DY6OD1j_.mjs.map +0 -1
  1317. package/dist/passkey-config-X_H8128a.mjs +0 -46
  1318. package/dist/passkey-config-X_H8128a.mjs.map +0 -1
  1319. package/dist/paths-JxokKIbr.mjs +0 -77
  1320. package/dist/paths-JxokKIbr.mjs.map +0 -1
  1321. package/dist/patterns-BhAvqO0S.mjs +0 -145
  1322. package/dist/patterns-BhAvqO0S.mjs.map +0 -1
  1323. package/dist/placeholder-MSEd8gty.d.mts +0 -306
  1324. package/dist/placeholder-MSEd8gty.d.mts.map +0 -1
  1325. package/dist/plan-xjcWrAah.mjs +0 -135
  1326. package/dist/plan-xjcWrAah.mjs.map +0 -1
  1327. package/dist/plugins-DUXUt8B9.mjs +0 -277
  1328. package/dist/plugins-DUXUt8B9.mjs.map +0 -1
  1329. package/dist/policy-CUvwAARc.mjs +0 -45
  1330. package/dist/policy-CUvwAARc.mjs.map +0 -1
  1331. package/dist/portable-text-5O_ZGUjB.mjs +0 -307
  1332. package/dist/portable-text-5O_ZGUjB.mjs.map +0 -1
  1333. package/dist/preview-CIUcPYr6.mjs +0 -107
  1334. package/dist/preview-CIUcPYr6.mjs.map +0 -1
  1335. package/dist/protocol-B97DZaFr.d.mts +0 -61
  1336. package/dist/protocol-B97DZaFr.d.mts.map +0 -1
  1337. package/dist/public-submission-BFBUrqst.mjs +0 -250
  1338. package/dist/public-submission-BFBUrqst.mjs.map +0 -1
  1339. package/dist/public-url-Bn7U0D7-.mjs +0 -101
  1340. package/dist/public-url-Bn7U0D7-.mjs.map +0 -1
  1341. package/dist/query-B48peoRT.mjs +0 -890
  1342. package/dist/query-B48peoRT.mjs.map +0 -1
  1343. package/dist/query-C4IH0uhR.mjs +0 -41
  1344. package/dist/query-C4IH0uhR.mjs.map +0 -1
  1345. package/dist/rate-limit-BZ6nybgc.mjs +0 -120
  1346. package/dist/rate-limit-BZ6nybgc.mjs.map +0 -1
  1347. package/dist/receipt-B4wJj5Jq.mjs +0 -43
  1348. package/dist/receipt-B4wJj5Jq.mjs.map +0 -1
  1349. package/dist/redirect-B29UjdUn.mjs +0 -411
  1350. package/dist/redirect-B29UjdUn.mjs.map +0 -1
  1351. package/dist/redirect-Cd1E7VUt.mjs +0 -17
  1352. package/dist/redirect-Cd1E7VUt.mjs.map +0 -1
  1353. package/dist/redirects-Ca2MPfEG.mjs +0 -446
  1354. package/dist/redirects-Ca2MPfEG.mjs.map +0 -1
  1355. package/dist/redirects-Cv9apQKj.mjs +0 -148
  1356. package/dist/redirects-Cv9apQKj.mjs.map +0 -1
  1357. package/dist/relation-M4NUCb0b.mjs +0 -334
  1358. package/dist/relation-M4NUCb0b.mjs.map +0 -1
  1359. package/dist/relations-CCif47Oq.mjs +0 -403
  1360. package/dist/relations-CCif47Oq.mjs.map +0 -1
  1361. package/dist/relations-CK9CYUyr.mjs +0 -310
  1362. package/dist/relations-CK9CYUyr.mjs.map +0 -1
  1363. package/dist/request-cache-DzLYKm_x.mjs +0 -104
  1364. package/dist/request-cache-DzLYKm_x.mjs.map +0 -1
  1365. package/dist/request-meta-sZXt3sRo.mjs +0 -141
  1366. package/dist/request-meta-sZXt3sRo.mjs.map +0 -1
  1367. package/dist/resolve-2WbQsCvT.mjs +0 -199
  1368. package/dist/resolve-2WbQsCvT.mjs.map +0 -1
  1369. package/dist/route-wire--1hLuACz.mjs +0 -197
  1370. package/dist/route-wire--1hLuACz.mjs.map +0 -1
  1371. package/dist/routes-vrR95WR6.mjs +0 -272
  1372. package/dist/routes-vrR95WR6.mjs.map +0 -1
  1373. package/dist/runner-1y4J9fJB.mjs +0 -5742
  1374. package/dist/runner-1y4J9fJB.mjs.map +0 -1
  1375. package/dist/runner-D5_LzKXI.d.mts +0 -68
  1376. package/dist/runner-D5_LzKXI.d.mts.map +0 -1
  1377. package/dist/schema-BABiRdsH.mjs +0 -13
  1378. package/dist/schema-BABiRdsH.mjs.map +0 -1
  1379. package/dist/schema-Du3MzCG0.mjs +0 -446
  1380. package/dist/schema-Du3MzCG0.mjs.map +0 -1
  1381. package/dist/scopes-Dbk-ElhT.mjs +0 -34
  1382. package/dist/scopes-Dbk-ElhT.mjs.map +0 -1
  1383. package/dist/search-Bt1PL1jf.mjs +0 -448
  1384. package/dist/search-Bt1PL1jf.mjs.map +0 -1
  1385. package/dist/sections-Ddptx_o9.mjs +0 -346
  1386. package/dist/sections-Ddptx_o9.mjs.map +0 -1
  1387. package/dist/seo-CZT2oLtT.mjs +0 -114
  1388. package/dist/seo-CZT2oLtT.mjs.map +0 -1
  1389. package/dist/seo-D5w3-Azy.mjs +0 -133
  1390. package/dist/seo-D5w3-Azy.mjs.map +0 -1
  1391. package/dist/service-DuykXPyW.mjs +0 -150
  1392. package/dist/service-DuykXPyW.mjs.map +0 -1
  1393. package/dist/session-user-BhaVp8w0.mjs +0 -51
  1394. package/dist/session-user-BhaVp8w0.mjs.map +0 -1
  1395. package/dist/settings-B4vDl1fK.mjs +0 -439
  1396. package/dist/settings-B4vDl1fK.mjs.map +0 -1
  1397. package/dist/settings-DYidIB26.mjs +0 -61
  1398. package/dist/settings-DYidIB26.mjs.map +0 -1
  1399. package/dist/settings-Dyj6v8C4.mjs +0 -51
  1400. package/dist/settings-Dyj6v8C4.mjs.map +0 -1
  1401. package/dist/setup-complete-bOogcHWG.mjs +0 -26
  1402. package/dist/setup-complete-bOogcHWG.mjs.map +0 -1
  1403. package/dist/setup-nonce-0EGuKM4s.mjs +0 -25
  1404. package/dist/setup-nonce-0EGuKM4s.mjs.map +0 -1
  1405. package/dist/site-settings-DOgRUoFX.mjs +0 -50
  1406. package/dist/site-settings-DOgRUoFX.mjs.map +0 -1
  1407. package/dist/site-url-BU_bbxwj.mjs +0 -16
  1408. package/dist/site-url-BU_bbxwj.mjs.map +0 -1
  1409. package/dist/snapshot-PawoX-WG.mjs +0 -414
  1410. package/dist/snapshot-PawoX-WG.mjs.map +0 -1
  1411. package/dist/ssrf-CJUnJymJ.mjs +0 -406
  1412. package/dist/ssrf-CJUnJymJ.mjs.map +0 -1
  1413. package/dist/stage-DgrBz_du.mjs +0 -662
  1414. package/dist/stage-DgrBz_du.mjs.map +0 -1
  1415. package/dist/state-DDiPySSG.mjs +0 -153
  1416. package/dist/state-DDiPySSG.mjs.map +0 -1
  1417. package/dist/status-DZKIG4a9.mjs +0 -30
  1418. package/dist/status-DZKIG4a9.mjs.map +0 -1
  1419. package/dist/storage-query-FXJH5pI8.d.mts +0 -1581
  1420. package/dist/storage-query-FXJH5pI8.d.mts.map +0 -1
  1421. package/dist/tar-_1AgTYFu.mjs +0 -449
  1422. package/dist/tar-_1AgTYFu.mjs.map +0 -1
  1423. package/dist/target-_7pn2Gbg.mjs +0 -27
  1424. package/dist/target-_7pn2Gbg.mjs.map +0 -1
  1425. package/dist/taxonomies-C1IwNe8Q.mjs +0 -697
  1426. package/dist/taxonomies-C1IwNe8Q.mjs.map +0 -1
  1427. package/dist/taxonomies-C_XMoRcX.mjs +0 -939
  1428. package/dist/taxonomies-C_XMoRcX.mjs.map +0 -1
  1429. package/dist/taxonomy-C3Fu1YeH.mjs +0 -525
  1430. package/dist/taxonomy-C3Fu1YeH.mjs.map +0 -1
  1431. package/dist/tokens-u78jETkX.mjs +0 -171
  1432. package/dist/tokens-u78jETkX.mjs.map +0 -1
  1433. package/dist/transaction-BcJO4Tmc.mjs +0 -29
  1434. package/dist/transaction-BcJO4Tmc.mjs.map +0 -1
  1435. package/dist/transfer-DIGvR9Af.mjs +0 -166
  1436. package/dist/transfer-DIGvR9Af.mjs.map +0 -1
  1437. package/dist/transfer-DgeCvHnj.mjs +0 -8675
  1438. package/dist/transfer-DgeCvHnj.mjs.map +0 -1
  1439. package/dist/transfer-download-Pml7RMio.mjs +0 -33
  1440. package/dist/transfer-download-Pml7RMio.mjs.map +0 -1
  1441. package/dist/transformations-9gfpwY65.mjs +0 -196
  1442. package/dist/transformations-9gfpwY65.mjs.map +0 -1
  1443. package/dist/transport-BIfH7_hx.d.mts +0 -42
  1444. package/dist/transport-BIfH7_hx.d.mts.map +0 -1
  1445. package/dist/transport-DKWIq53q.mjs +0 -136
  1446. package/dist/transport-DKWIq53q.mjs.map +0 -1
  1447. package/dist/trusted-proxy-tKiVtyTD.mjs +0 -51
  1448. package/dist/trusted-proxy-tKiVtyTD.mjs.map +0 -1
  1449. package/dist/turnstile-DpsoyOfg.mjs +0 -53
  1450. package/dist/turnstile-DpsoyOfg.mjs.map +0 -1
  1451. package/dist/types-B4sUC2p1.d.mts +0 -198
  1452. package/dist/types-B4sUC2p1.d.mts.map +0 -1
  1453. package/dist/types-B7Lmsh1E.d.mts +0 -887
  1454. package/dist/types-B7Lmsh1E.d.mts.map +0 -1
  1455. package/dist/types-BZakh7Ym.mjs +0 -22
  1456. package/dist/types-BZakh7Ym.mjs.map +0 -1
  1457. package/dist/types-B_CppEmv.d.mts +0 -264
  1458. package/dist/types-B_CppEmv.d.mts.map +0 -1
  1459. package/dist/types-BcrBrE6-.mjs +0 -159
  1460. package/dist/types-BcrBrE6-.mjs.map +0 -1
  1461. package/dist/types-BkUg2yHx.mjs +0 -92
  1462. package/dist/types-BkUg2yHx.mjs.map +0 -1
  1463. package/dist/types-CAZgq9fO.d.mts +0 -124
  1464. package/dist/types-CAZgq9fO.d.mts.map +0 -1
  1465. package/dist/types-Cd-O03VG.d.mts +0 -363
  1466. package/dist/types-Cd-O03VG.d.mts.map +0 -1
  1467. package/dist/types-Cr-Kg-3D.d.mts +0 -1641
  1468. package/dist/types-Cr-Kg-3D.d.mts.map +0 -1
  1469. package/dist/types-D2fvWd1i.d.mts +0 -359
  1470. package/dist/types-D2fvWd1i.d.mts.map +0 -1
  1471. package/dist/types-D7HUsguf.mjs +0 -77
  1472. package/dist/types-D7HUsguf.mjs.map +0 -1
  1473. package/dist/types-DA1Te3Oy.d.mts +0 -198
  1474. package/dist/types-DA1Te3Oy.d.mts.map +0 -1
  1475. package/dist/types-DhV6Q5bP.mjs +0 -18
  1476. package/dist/types-DhV6Q5bP.mjs.map +0 -1
  1477. package/dist/types-DnnVSl6Y.d.mts +0 -85
  1478. package/dist/types-DnnVSl6Y.d.mts.map +0 -1
  1479. package/dist/types-VT4-BugW.mjs +0 -16
  1480. package/dist/types-VT4-BugW.mjs.map +0 -1
  1481. package/dist/upload-attempts-B68ZGNu9.mjs +0 -32
  1482. package/dist/upload-attempts-B68ZGNu9.mjs.map +0 -1
  1483. package/dist/url-pattern-CCeZMGOh.mjs +0 -33
  1484. package/dist/url-pattern-CCeZMGOh.mjs.map +0 -1
  1485. package/dist/user-DDSL-sGw.mjs +0 -171
  1486. package/dist/user-DDSL-sGw.mjs.map +0 -1
  1487. package/dist/utils-DdhmO9w9.mjs +0 -439
  1488. package/dist/utils-DdhmO9w9.mjs.map +0 -1
  1489. package/dist/validate-CHosPEhs.mjs +0 -453
  1490. package/dist/validate-CHosPEhs.mjs.map +0 -1
  1491. package/dist/validate-CM79QXYE.d.mts +0 -432
  1492. package/dist/validate-CM79QXYE.d.mts.map +0 -1
  1493. package/dist/validation-BFecQczG.mjs +0 -218
  1494. package/dist/validation-BFecQczG.mjs.map +0 -1
  1495. package/dist/version-BRZXVifl.mjs +0 -9
  1496. package/dist/version-BRZXVifl.mjs.map +0 -1
  1497. package/dist/version-DXsxRrob.mjs +0 -7
  1498. package/dist/version-DXsxRrob.mjs.map +0 -1
  1499. package/dist/widgets-WdV72brA.mjs +0 -126
  1500. package/dist/widgets-WdV72brA.mjs.map +0 -1
  1501. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts +0 -34
  1502. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts.map +0 -1
  1503. package/dist/wxr-taxonomies-DP6ESgMN.mjs +0 -372
  1504. package/dist/wxr-taxonomies-DP6ESgMN.mjs.map +0 -1
  1505. package/dist/zod-generator-D6uE4WiS.mjs +0 -389
  1506. package/dist/zod-generator-D6uE4WiS.mjs.map +0 -1
  1507. package/src/astro/routes/api/relations/[id]/translations.ts +0 -33
  1508. package/src/cli/commands/bundle-utils.ts +0 -408
  1509. package/src/cli/commands/bundle.ts +0 -659
  1510. package/src/cli/commands/plugin-init.ts +0 -417
  1511. package/src/cli/commands/plugin-validate.ts +0 -31
  1512. package/src/cli/commands/plugin.ts +0 -33
  1513. package/src/cli/commands/publish.ts +0 -721
  1514. /package/dist/{api-tokens-CE1ECIg0.mjs → api-tokens-BLz2MtQs.mjs} +0 -0
  1515. /package/dist/{ssrf-DpBH7aOt.mjs → ssrf-tA45vIPX.mjs} +0 -0
@@ -0,0 +1,460 @@
1
+ import { u as isPostgres } from "./dialect-helpers-7_IqPdh9.mjs";
2
+ import { t as TransferError } from "./errors-CjXd1LgH.mjs";
3
+ import { o as TRANSFER_LIMITS } from "./canonical-CAecl1UQ.mjs";
4
+ import { a as isSha256Digest } from "./digest-DiYAoZpf.mjs";
5
+ import { i as RECORD_KINDS } from "./kinds-CXY-fwQ6.mjs";
6
+ import { sql } from "kysely";
7
+ import { z } from "zod";
8
+ import { ulid } from "ulidx";
9
+ import { TRANSFER_SCOPES } from "@emdash-cms/auth";
10
+
11
+ //#region src/transfer/auth.ts
12
+ /** Token scope a bearer-token caller needs for each transfer action. */
13
+ const TRANSFER_ACTION_SCOPE = Object.freeze({
14
+ export: "transfer:export",
15
+ analyze: "transfer:analyze",
16
+ execute: "transfer:execute"
17
+ });
18
+ /** RBAC permission a session caller needs for each transfer action. */
19
+ const TRANSFER_ACTION_PERMISSION = Object.freeze({
20
+ export: "transfer:export",
21
+ analyze: "transfer:import",
22
+ execute: "transfer:import"
23
+ });
24
+ /** Actions an MCP approval grant can authorize. */
25
+ const TRANSFER_APPROVAL_ACTIONS = ["export", "import"];
26
+
27
+ //#endregion
28
+ //#region src/transfer/ops/states.ts
29
+ /**
30
+ * Transfer operation states, stages, and typed cursors.
31
+ *
32
+ * Export: pending → running → complete | failed | expired
33
+ * Import: uploading → analyzing → planned → running → verifying
34
+ * → complete | failed | cancelled | abandoned | expired
35
+ *
36
+ * An import "occupies" the target from creation until it reaches a terminal
37
+ * state. A failed or cancelled import that already started writing
38
+ * (`mutation_started_at` set) keeps occupying the target, and keeps site
39
+ * writes fenced, until it is explicitly abandoned. The partial unique index
40
+ * `idx__emdash_transfer_operations_active_import` (migration 084) enforces
41
+ * one occupying import per target with the same predicate as
42
+ * {@link isOccupyingImport}.
43
+ */
44
+ const TRANSFER_RUNTIME_GENERATION = 1;
45
+ const TRANSFER_OPERATION_KINDS = ["export", "import"];
46
+ const EXPORT_STATES = [
47
+ "pending",
48
+ "running",
49
+ "complete",
50
+ "failed",
51
+ "expired"
52
+ ];
53
+ const IMPORT_STATES = [
54
+ "uploading",
55
+ "analyzing",
56
+ "planned",
57
+ "running",
58
+ "verifying",
59
+ "complete",
60
+ "failed",
61
+ "cancelled",
62
+ "abandoned",
63
+ "expired"
64
+ ];
65
+ const OPERATION_KINDS = new Set(TRANSFER_OPERATION_KINDS);
66
+ const OPERATION_STATES = new Set([...EXPORT_STATES, ...IMPORT_STATES]);
67
+ function isTransferOperationKind(value) {
68
+ return OPERATION_KINDS.has(value);
69
+ }
70
+ function isTransferOperationState(value) {
71
+ return OPERATION_STATES.has(value);
72
+ }
73
+ /** Import states before execution starts; they expire after the pending TTL. */
74
+ const PRE_EXECUTION_IMPORT_STATES = [
75
+ "uploading",
76
+ "analyzing",
77
+ "planned"
78
+ ];
79
+ /** Import states in which the importer is writing to the target. */
80
+ const EXECUTING_IMPORT_STATES = ["running", "verifying"];
81
+ const TERMINAL_EXPORT_STATES = [
82
+ "complete",
83
+ "failed",
84
+ "expired"
85
+ ];
86
+ const TERMINAL_IMPORT_STATES = [
87
+ "complete",
88
+ "failed",
89
+ "cancelled",
90
+ "abandoned",
91
+ "expired"
92
+ ];
93
+ function isTerminalState(kind, state) {
94
+ return kind === "export" ? TERMINAL_EXPORT_STATES.includes(state) : TERMINAL_IMPORT_STATES.includes(state);
95
+ }
96
+ /**
97
+ * Import stages in execution order. The record stages write the kinds listed
98
+ * in `IMPORT_STAGE_KINDS` (format/kinds.ts).
99
+ */
100
+ const IMPORT_STAGES = [
101
+ "reserve",
102
+ "clear_scaffold",
103
+ "schema",
104
+ "media",
105
+ "terms_bylines",
106
+ "content",
107
+ "relations",
108
+ "presentation",
109
+ "rebuild",
110
+ "verify"
111
+ ];
112
+ const REBUILD_STEPS = [
113
+ "search",
114
+ "media_usage",
115
+ "options",
116
+ "taxonomies",
117
+ "caches"
118
+ ];
119
+ const recordKindSchema = z.enum(RECORD_KINDS);
120
+ const nonNegativeInt = z.number().int().nonnegative();
121
+ /** Next record to process in a package stream: chunk `seq`, zero-based `line`. */
122
+ const streamPositionSchema = z.strictObject({
123
+ kind: recordKindSchema,
124
+ seq: nonNegativeInt,
125
+ line: nonNegativeInt
126
+ });
127
+ /** Last stream-order key processed (`depth` only for topological kinds). */
128
+ const streamKeySchema = z.strictObject({
129
+ id: z.string(),
130
+ depth: nonNegativeInt.optional()
131
+ });
132
+ /**
133
+ * Optimistic-read fence captured before an export attempt and re-checked
134
+ * after it. `writeEpoch` is the export operation's `write_epoch` column,
135
+ * which fenced writes bump while the export runs.
136
+ */
137
+ const exportFenceSchema = z.strictObject({
138
+ writeEpoch: nonNegativeInt,
139
+ tables: z.array(z.strictObject({
140
+ table: z.string(),
141
+ count: nonNegativeInt,
142
+ maxChanged: z.string().optional(),
143
+ maxId: z.string().optional()
144
+ }))
145
+ });
146
+ const exportAttempt = z.number().int().min(1);
147
+ const exportCursorSchema = z.discriminatedUnion("stage", [
148
+ z.strictObject({
149
+ stage: z.literal("export_records"),
150
+ attempt: exportAttempt,
151
+ fence: exportFenceSchema,
152
+ kind: recordKindSchema,
153
+ collection: z.string().optional(),
154
+ after: streamKeySchema.nullable(),
155
+ nextSeq: nonNegativeInt,
156
+ summary: z.json().optional()
157
+ }),
158
+ z.strictObject({
159
+ stage: z.literal("export_media"),
160
+ attempt: exportAttempt,
161
+ fence: exportFenceSchema,
162
+ afterMediaId: z.string().nullable(),
163
+ summary: z.json().optional()
164
+ }),
165
+ z.strictObject({
166
+ stage: z.literal("export_finalize"),
167
+ attempt: exportAttempt,
168
+ fence: exportFenceSchema,
169
+ nextIndexSeq: nonNegativeInt,
170
+ afterPath: z.string().nullable(),
171
+ summary: z.json().optional()
172
+ }),
173
+ z.strictObject({
174
+ stage: z.literal("export_validate"),
175
+ position: streamPositionSchema.nullable(),
176
+ validation: z.json().optional()
177
+ })
178
+ ]);
179
+ const analysisCursorSchema = z.discriminatedUnion("stage", [
180
+ z.strictObject({
181
+ stage: z.literal("analyze_structure"),
182
+ nextIndexSeq: nonNegativeInt
183
+ }),
184
+ z.strictObject({
185
+ stage: z.literal("analyze_records"),
186
+ position: streamPositionSchema
187
+ }),
188
+ z.strictObject({
189
+ stage: z.literal("analyze_references"),
190
+ check: nonNegativeInt,
191
+ after: z.string().nullable()
192
+ }),
193
+ z.strictObject({ stage: z.literal("analyze_target") })
194
+ ]);
195
+ const recordStage = (stage) => z.strictObject({
196
+ stage: z.literal(stage),
197
+ position: streamPositionSchema
198
+ });
199
+ const importCursorSchema = z.discriminatedUnion("stage", [
200
+ z.strictObject({ stage: z.literal("reserve") }),
201
+ z.strictObject({
202
+ stage: z.literal("clear_scaffold"),
203
+ step: nonNegativeInt
204
+ }),
205
+ recordStage("schema"),
206
+ recordStage("media"),
207
+ recordStage("terms_bylines"),
208
+ recordStage("content"),
209
+ recordStage("relations"),
210
+ recordStage("presentation"),
211
+ z.strictObject({
212
+ stage: z.literal("rebuild"),
213
+ step: z.enum(REBUILD_STEPS),
214
+ after: z.string().nullable()
215
+ }),
216
+ z.strictObject({
217
+ stage: z.literal("verify"),
218
+ position: streamPositionSchema.nullable(),
219
+ mediaAfter: z.string().nullable(),
220
+ mismatches: nonNegativeInt,
221
+ verifier: z.json().optional()
222
+ })
223
+ ]);
224
+ const transferCursorSchema = z.union([
225
+ exportCursorSchema,
226
+ analysisCursorSchema,
227
+ importCursorSchema
228
+ ]);
229
+ /**
230
+ * Bounded progress summary shown by status endpoints. `done` of `total`
231
+ * counts stages (and, for an export, record kinds). `records` is the number
232
+ * of records an export has written so far; the byte counts cover package
233
+ * files once they are known.
234
+ */
235
+ const transferProgressSchema = z.strictObject({
236
+ done: nonNegativeInt,
237
+ total: nonNegativeInt,
238
+ records: nonNegativeInt.optional(),
239
+ bytesDone: nonNegativeInt.optional(),
240
+ bytesTotal: nonNegativeInt.optional()
241
+ });
242
+
243
+ //#endregion
244
+ //#region src/transfer/ops/time.ts
245
+ /**
246
+ * Database-clock timestamps for transfer state. Every lease and expiry
247
+ * comparison runs in SQL against the database clock, never a worker clock,
248
+ * and every stored timestamp uses the sortable `YYYY-MM-DDTHH:MM:SS.sssZ`
249
+ * form so plain string comparison orders them.
250
+ */
251
+ function timestampOffset(db, seconds) {
252
+ if (!Number.isFinite(seconds)) throw new RangeError("Invalid timestamp offset");
253
+ if (isPostgres(db)) return sql`to_char(
254
+ clock_timestamp() AT TIME ZONE 'UTC' + (${seconds} * interval '1 second'),
255
+ 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"'
256
+ )`;
257
+ return sql`strftime('%Y-%m-%dT%H:%M:%fZ', 'now', ${`${seconds >= 0 ? "+" : ""}${seconds} seconds`})`;
258
+ }
259
+ function timestampNow(db) {
260
+ return timestampOffset(db, 0);
261
+ }
262
+ /** `column <= now` */
263
+ function timestampIsDue(db, column) {
264
+ return isPostgres(db) ? sql`${sql.ref(column)}::timestamptz <= clock_timestamp()` : sql`${sql.ref(column)} <= strftime('%Y-%m-%dT%H:%M:%fZ', 'now')`;
265
+ }
266
+ /** `column > now` */
267
+ function timestampIsLive(db, column) {
268
+ return isPostgres(db) ? sql`${sql.ref(column)}::timestamptz > clock_timestamp()` : sql`${sql.ref(column)} > strftime('%Y-%m-%dT%H:%M:%fZ', 'now')`;
269
+ }
270
+ /** `column <= now - seconds` */
271
+ function timestampIsOlderThan(db, column, seconds) {
272
+ if (!Number.isFinite(seconds) || seconds < 0) throw new RangeError("Invalid timestamp age");
273
+ return isPostgres(db) ? sql`${sql.ref(column)}::timestamptz <= clock_timestamp() - (${seconds} * interval '1 second')` : sql`${sql.ref(column)} <= strftime('%Y-%m-%dT%H:%M:%fZ', 'now', ${`-${seconds} seconds`})`;
274
+ }
275
+
276
+ //#endregion
277
+ //#region src/transfer/ops/approvals.ts
278
+ const APPROVAL_STATUSES = [
279
+ "pending",
280
+ "approved",
281
+ "denied",
282
+ "consumed",
283
+ "expired"
284
+ ];
285
+ const STATUS_SET = new Set(APPROVAL_STATUSES);
286
+ const ACTION_SET = new Set(TRANSFER_APPROVAL_ACTIONS);
287
+ function isApprovalStatus(value) {
288
+ return STATUS_SET.has(value);
289
+ }
290
+ function isApprovalAction(value) {
291
+ return ACTION_SET.has(value);
292
+ }
293
+ function toApproval(row) {
294
+ const { status, action } = row;
295
+ if (!isApprovalStatus(status) || !isApprovalAction(action)) throw new TransferError("TRANSFER_APPROVAL_INVALID", "Unknown approval status or action");
296
+ return {
297
+ id: row.id,
298
+ status,
299
+ action,
300
+ userId: row.user_id,
301
+ requestedByTokenId: row.requested_by_token_id,
302
+ approvedBy: row.approved_by,
303
+ operationId: row.operation_id,
304
+ paramsDigest: isSha256Digest(row.params_digest) ? row.params_digest : null,
305
+ packageDigest: isSha256Digest(row.package_digest) ? row.package_digest : null,
306
+ planDigest: isSha256Digest(row.plan_digest) ? row.plan_digest : null,
307
+ expiresAt: row.expires_at,
308
+ createdAt: row.created_at,
309
+ decidedAt: row.decided_at,
310
+ consumedAt: row.consumed_at
311
+ };
312
+ }
313
+ /** Every column a grant binds besides user and action, with the value it must hold (undefined = NULL). */
314
+ function boundColumns(binding) {
315
+ return [
316
+ ["operation_id", binding.operationId],
317
+ ["params_digest", binding.paramsDigest],
318
+ ["package_digest", binding.packageDigest],
319
+ ["plan_digest", binding.planDigest],
320
+ ["requested_by_token_id", binding.tokenId]
321
+ ];
322
+ }
323
+ function invalid() {
324
+ return new TransferError("TRANSFER_APPROVAL_INVALID", "Approval is missing, expired, or does not match");
325
+ }
326
+ var TransferApprovalRepository = class {
327
+ constructor(db) {
328
+ this.db = db;
329
+ }
330
+ async createPending(input) {
331
+ if (input.action === "import" && (!input.packageDigest || !input.planDigest)) throw new TransferError("TRANSFER_APPROVAL_INVALID", "An import approval must bind a package digest and a plan digest");
332
+ return toApproval(await this.db.insertInto("_emdash_transfer_approvals").values({
333
+ id: ulid(),
334
+ status: "pending",
335
+ action: input.action,
336
+ user_id: input.userId,
337
+ requested_by_token_id: input.requestedByTokenId ?? null,
338
+ approved_by: null,
339
+ operation_id: input.operationId ?? null,
340
+ params_digest: input.paramsDigest ?? null,
341
+ package_digest: input.packageDigest ?? null,
342
+ plan_digest: input.planDigest ?? null,
343
+ expires_at: timestampOffset(this.db, input.ttlSeconds ?? TRANSFER_LIMITS.approvalTtlSeconds),
344
+ decided_at: null,
345
+ consumed_at: null
346
+ }).returningAll().executeTakeFirstOrThrow());
347
+ }
348
+ async get(id) {
349
+ const row = await this.db.selectFrom("_emdash_transfer_approvals").selectAll().where("id", "=", id).executeTakeFirst();
350
+ return row ? toApproval(row) : null;
351
+ }
352
+ /**
353
+ * Approve a pending, unexpired grant. The grant then stays usable for the
354
+ * approval TTL from now.
355
+ */
356
+ async approve(id, approvedBy, options = {}) {
357
+ return this.decide(id, "approved", approvedBy, options.ttlSeconds);
358
+ }
359
+ async deny(id, deniedBy) {
360
+ return this.decide(id, "denied", deniedBy);
361
+ }
362
+ async decide(id, status, decidedBy, ttlSeconds) {
363
+ const now = timestampNow(this.db);
364
+ const row = await this.db.updateTable("_emdash_transfer_approvals").set({
365
+ status,
366
+ approved_by: decidedBy,
367
+ decided_at: now,
368
+ ...status === "approved" ? { expires_at: timestampOffset(this.db, ttlSeconds ?? TRANSFER_LIMITS.approvalTtlSeconds) } : {}
369
+ }).where("id", "=", id).where("status", "=", "pending").where(timestampIsLive(this.db, "expires_at")).returningAll().executeTakeFirst();
370
+ if (!row) throw invalid();
371
+ return toApproval(row);
372
+ }
373
+ /**
374
+ * Consume an approved grant in one statement. Every digest or operation id
375
+ * the grant was created with must be supplied and equal; a grant created
376
+ * without one must be consumed without it. The same holds for the token:
377
+ * a grant requested by token `T` can only be consumed by a caller
378
+ * authenticated with `T` (pass `tokenId`), and a grant requested without a
379
+ * token only by a caller without one. Throws `TRANSFER_APPROVAL_INVALID`
380
+ * otherwise.
381
+ */
382
+ async consume(id, binding) {
383
+ const now = timestampNow(this.db);
384
+ let query = this.db.updateTable("_emdash_transfer_approvals").set({
385
+ status: "consumed",
386
+ consumed_at: now
387
+ }).where("id", "=", id).where("status", "=", "approved").where(timestampIsLive(this.db, "expires_at")).where("user_id", "=", binding.userId).where("action", "=", binding.action);
388
+ for (const [column, value] of boundColumns(binding)) query = value === void 0 ? query.where(column, "is", null) : query.where(column, "=", value);
389
+ const row = await query.returningAll().executeTakeFirst();
390
+ if (!row) throw invalid();
391
+ return toApproval(row);
392
+ }
393
+ /**
394
+ * Return a grant `consume` took back to `approved`, for when the
395
+ * operation it was consumed for could not be started. Its expiry is
396
+ * unchanged, so an expired grant stays unusable.
397
+ */
398
+ async restore(id) {
399
+ await this.db.updateTable("_emdash_transfer_approvals").set({
400
+ status: "approved",
401
+ consumed_at: null
402
+ }).where("id", "=", id).where("status", "=", "consumed").execute();
403
+ }
404
+ /**
405
+ * The newest pending, unexpired grant with exactly this binding, so a
406
+ * caller retrying without an approval id reuses its open request instead
407
+ * of adding another one for an admin to review.
408
+ */
409
+ async findPending(binding) {
410
+ let query = this.db.selectFrom("_emdash_transfer_approvals").selectAll().where("status", "=", "pending").where(timestampIsLive(this.db, "expires_at")).where("user_id", "=", binding.userId).where("action", "=", binding.action);
411
+ for (const [column, value] of boundColumns(binding)) query = value === void 0 ? query.where(column, "is", null) : query.where(column, "=", value);
412
+ const row = await query.orderBy("created_at", "desc").orderBy("id", "desc").executeTakeFirst();
413
+ return row ? toApproval(row) : null;
414
+ }
415
+ /**
416
+ * Whether a grant for `action` on `operationId` was consumed by this user
417
+ * authenticated with this token (or, without `tokenId`, without a token).
418
+ */
419
+ async hasConsumed(binding) {
420
+ let query = this.db.selectFrom("_emdash_transfer_approvals").select("id").where("status", "=", "consumed").where("user_id", "=", binding.userId).where("action", "=", binding.action).where("operation_id", "=", binding.operationId);
421
+ query = binding.tokenId === void 0 ? query.where("requested_by_token_id", "is", null) : query.where("requested_by_token_id", "=", binding.tokenId);
422
+ return await query.executeTakeFirst() !== void 0;
423
+ }
424
+ /**
425
+ * Record the operation a consumed export grant created. Export grants are
426
+ * requested before the operation exists, so they bind no operation id
427
+ * until they are used.
428
+ */
429
+ async linkOperation(id, operationId) {
430
+ await this.db.updateTable("_emdash_transfer_approvals").set({ operation_id: operationId }).where("id", "=", id).where("status", "=", "consumed").where("action", "=", "export").where("operation_id", "is", null).execute();
431
+ }
432
+ /** Approvals newest first. */
433
+ async list(options = {}) {
434
+ const limit = Math.min(Math.max(options.limit ?? 50, 1), 100);
435
+ let query = this.db.selectFrom("_emdash_transfer_approvals").selectAll();
436
+ if (options.userId) query = query.where("user_id", "=", options.userId);
437
+ if (options.status) query = query.where("status", "=", options.status);
438
+ const cursor = options.cursor;
439
+ if (cursor) query = query.where((eb) => eb.or([eb("created_at", "<", cursor.createdAt), eb.and([eb("created_at", "=", cursor.createdAt), eb("id", "<", cursor.id)])]));
440
+ const rows = await query.orderBy("created_at", "desc").orderBy("id", "desc").limit(limit + 1).execute();
441
+ const items = rows.slice(0, limit).map(toApproval);
442
+ const last = items.at(-1);
443
+ return rows.length > limit && last ? {
444
+ items,
445
+ next: {
446
+ createdAt: last.createdAt,
447
+ id: last.id
448
+ }
449
+ } : { items };
450
+ }
451
+ /** Mark pending and approved grants past their expiry as `expired`; returns how many. */
452
+ async expireDue() {
453
+ const result = await this.db.updateTable("_emdash_transfer_approvals").set({ status: "expired" }).where("status", "in", ["pending", "approved"]).where(timestampIsDue(this.db, "expires_at")).executeTakeFirst();
454
+ return Number(result.numUpdatedRows ?? 0n);
455
+ }
456
+ };
457
+
458
+ //#endregion
459
+ export { TRANSFER_SCOPES as S, isTerminalState as _, timestampIsOlderThan as a, transferCursorSchema as b, EXECUTING_IMPORT_STATES as c, IMPORT_STATES as d, PRE_EXECUTION_IMPORT_STATES as f, analysisCursorSchema as g, TRANSFER_RUNTIME_GENERATION as h, timestampIsLive as i, EXPORT_STATES as l, TERMINAL_IMPORT_STATES as m, TransferApprovalRepository as n, timestampNow as o, REBUILD_STEPS as p, timestampIsDue as r, timestampOffset as s, APPROVAL_STATUSES as t, IMPORT_STAGES as u, isTransferOperationKind as v, transferProgressSchema as x, isTransferOperationState as y };
460
+ //# sourceMappingURL=approvals-l9sGqPmL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals-l9sGqPmL.mjs","names":[],"sources":["../src/transfer/auth.ts","../src/transfer/ops/states.ts","../src/transfer/ops/time.ts","../src/transfer/ops/approvals.ts"],"sourcesContent":["import type { Permission, TransferScope } from \"@emdash-cms/auth\";\n\nexport { TRANSFER_SCOPES, isTransferScope } from \"@emdash-cms/auth\";\nexport type { TransferScope } from \"@emdash-cms/auth\";\n\nexport type TransferAction = \"export\" | \"analyze\" | \"execute\";\n\n/** Token scope a bearer-token caller needs for each transfer action. */\nexport const TRANSFER_ACTION_SCOPE = Object.freeze({\n\texport: \"transfer:export\",\n\tanalyze: \"transfer:analyze\",\n\texecute: \"transfer:execute\",\n} as const satisfies Record<TransferAction, TransferScope>);\n\n/** RBAC permission a session caller needs for each transfer action. */\nexport const TRANSFER_ACTION_PERMISSION = Object.freeze({\n\texport: \"transfer:export\",\n\tanalyze: \"transfer:import\",\n\texecute: \"transfer:import\",\n} as const satisfies Record<TransferAction, Permission>);\n\n/** Actions an MCP approval grant can authorize. */\nexport const TRANSFER_APPROVAL_ACTIONS = [\"export\", \"import\"] as const;\n\nexport type TransferApprovalAction = (typeof TRANSFER_APPROVAL_ACTIONS)[number];\n","/**\n * Transfer operation states, stages, and typed cursors.\n *\n * Export: pending → running → complete | failed | expired\n * Import: uploading → analyzing → planned → running → verifying\n * → complete | failed | cancelled | abandoned | expired\n *\n * An import \"occupies\" the target from creation until it reaches a terminal\n * state. A failed or cancelled import that already started writing\n * (`mutation_started_at` set) keeps occupying the target, and keeps site\n * writes fenced, until it is explicitly abandoned. The partial unique index\n * `idx__emdash_transfer_operations_active_import` (migration 084) enforces\n * one occupying import per target with the same predicate as\n * {@link isOccupyingImport}.\n */\n\nimport { z } from \"zod\";\n\nimport { RECORD_KINDS } from \"../format/kinds.js\";\n\nexport const TRANSFER_RUNTIME_GENERATION = 1;\n\nexport const TRANSFER_OPERATION_KINDS = [\"export\", \"import\"] as const;\nexport type TransferOperationKind = (typeof TRANSFER_OPERATION_KINDS)[number];\n\nexport const EXPORT_STATES = [\"pending\", \"running\", \"complete\", \"failed\", \"expired\"] as const;\nexport type ExportState = (typeof EXPORT_STATES)[number];\n\nexport const IMPORT_STATES = [\n\t\"uploading\",\n\t\"analyzing\",\n\t\"planned\",\n\t\"running\",\n\t\"verifying\",\n\t\"complete\",\n\t\"failed\",\n\t\"cancelled\",\n\t\"abandoned\",\n\t\"expired\",\n] as const;\nexport type ImportState = (typeof IMPORT_STATES)[number];\n\nexport type TransferOperationState = ExportState | ImportState;\n\nconst OPERATION_KINDS: ReadonlySet<string> = new Set(TRANSFER_OPERATION_KINDS);\nconst OPERATION_STATES: ReadonlySet<string> = new Set([...EXPORT_STATES, ...IMPORT_STATES]);\n\nexport function isTransferOperationKind(value: string): value is TransferOperationKind {\n\treturn OPERATION_KINDS.has(value);\n}\n\nexport function isTransferOperationState(value: string): value is TransferOperationState {\n\treturn OPERATION_STATES.has(value);\n}\n\n/** Import states before execution starts; they expire after the pending TTL. */\nexport const PRE_EXECUTION_IMPORT_STATES = [\"uploading\", \"analyzing\", \"planned\"] as const;\n\n/** Import states in which the importer is writing to the target. */\nexport const EXECUTING_IMPORT_STATES = [\"running\", \"verifying\"] as const;\n\nexport const TERMINAL_EXPORT_STATES: readonly ExportState[] = [\"complete\", \"failed\", \"expired\"];\nexport const TERMINAL_IMPORT_STATES: readonly ImportState[] = [\n\t\"complete\",\n\t\"failed\",\n\t\"cancelled\",\n\t\"abandoned\",\n\t\"expired\",\n];\n\nexport function isTerminalState(kind: TransferOperationKind, state: string): boolean {\n\treturn kind === \"export\"\n\t\t? (TERMINAL_EXPORT_STATES as readonly string[]).includes(state)\n\t\t: (TERMINAL_IMPORT_STATES as readonly string[]).includes(state);\n}\n\n/** Whether an import occupies the target (see the module comment). */\nexport function isOccupyingImport(state: string, mutationStarted: boolean): boolean {\n\tif ((PRE_EXECUTION_IMPORT_STATES as readonly string[]).includes(state)) return true;\n\tif ((EXECUTING_IMPORT_STATES as readonly string[]).includes(state)) return true;\n\treturn (state === \"failed\" || state === \"cancelled\") && mutationStarted;\n}\n\n/** Whether an import fences site writes: executing, or incomplete after writing started. */\nexport function isWriteFencingImport(state: string, mutationStarted: boolean): boolean {\n\tif ((EXECUTING_IMPORT_STATES as readonly string[]).includes(state)) return true;\n\treturn (state === \"failed\" || state === \"cancelled\") && mutationStarted;\n}\n\n// ── Stages ──────────────────────────────────────────────────────\n\nexport const EXPORT_STAGES = [\n\t\"export_records\",\n\t\"export_media\",\n\t\"export_finalize\",\n\t\"export_validate\",\n] as const;\nexport type ExportStage = (typeof EXPORT_STAGES)[number];\n\nexport const ANALYSIS_STAGES = [\n\t\"analyze_structure\",\n\t\"analyze_records\",\n\t\"analyze_references\",\n\t\"analyze_target\",\n] as const;\nexport type AnalysisStage = (typeof ANALYSIS_STAGES)[number];\n\n/**\n * Import stages in execution order. The record stages write the kinds listed\n * in `IMPORT_STAGE_KINDS` (format/kinds.ts).\n */\nexport const IMPORT_STAGES = [\n\t\"reserve\",\n\t\"clear_scaffold\",\n\t\"schema\",\n\t\"media\",\n\t\"terms_bylines\",\n\t\"content\",\n\t\"relations\",\n\t\"presentation\",\n\t\"rebuild\",\n\t\"verify\",\n] as const;\nexport type ImportStage = (typeof IMPORT_STAGES)[number];\n\nexport const REBUILD_STEPS = [\"search\", \"media_usage\", \"options\", \"taxonomies\", \"caches\"] as const;\nexport type RebuildStep = (typeof REBUILD_STEPS)[number];\n\n// ── Cursors ─────────────────────────────────────────────────────\n\nconst recordKindSchema = z.enum(RECORD_KINDS);\nconst nonNegativeInt = z.number().int().nonnegative();\n\n/** Next record to process in a package stream: chunk `seq`, zero-based `line`. */\nexport const streamPositionSchema = z.strictObject({\n\tkind: recordKindSchema,\n\tseq: nonNegativeInt,\n\tline: nonNegativeInt,\n});\nexport type StreamPosition = z.infer<typeof streamPositionSchema>;\n\n/** Last stream-order key processed (`depth` only for topological kinds). */\nexport const streamKeySchema = z.strictObject({\n\tid: z.string(),\n\tdepth: nonNegativeInt.optional(),\n});\n\n/**\n * Optimistic-read fence captured before an export attempt and re-checked\n * after it. `writeEpoch` is the export operation's `write_epoch` column,\n * which fenced writes bump while the export runs.\n */\nexport const exportFenceSchema = z.strictObject({\n\twriteEpoch: nonNegativeInt,\n\ttables: z.array(\n\t\tz.strictObject({\n\t\t\ttable: z.string(),\n\t\t\tcount: nonNegativeInt,\n\t\t\tmaxChanged: z.string().optional(),\n\t\t\tmaxId: z.string().optional(),\n\t\t}),\n\t),\n});\nexport type ExportFence = z.infer<typeof exportFenceSchema>;\n\nconst exportAttempt = z.number().int().min(1);\n\nexport const exportCursorSchema = z.discriminatedUnion(\"stage\", [\n\tz.strictObject({\n\t\tstage: z.literal(\"export_records\"),\n\t\tattempt: exportAttempt,\n\t\tfence: exportFenceSchema,\n\t\tkind: recordKindSchema,\n\t\t/** For `entry`, the collection slug being read. */\n\t\tcollection: z.string().optional(),\n\t\tafter: streamKeySchema.nullable(),\n\t\tnextSeq: nonNegativeInt,\n\t\t/** Exporter-owned running totals (see `transfer/export`). */\n\t\tsummary: z.json().optional(),\n\t}),\n\tz.strictObject({\n\t\tstage: z.literal(\"export_media\"),\n\t\tattempt: exportAttempt,\n\t\tfence: exportFenceSchema,\n\t\tafterMediaId: z.string().nullable(),\n\t\tsummary: z.json().optional(),\n\t}),\n\tz.strictObject({\n\t\tstage: z.literal(\"export_finalize\"),\n\t\tattempt: exportAttempt,\n\t\tfence: exportFenceSchema,\n\t\tnextIndexSeq: nonNegativeInt,\n\t\tafterPath: z.string().nullable(),\n\t\tsummary: z.json().optional(),\n\t}),\n\tz.strictObject({\n\t\tstage: z.literal(\"export_validate\"),\n\t\tposition: streamPositionSchema.nullable(),\n\t\t/** Exporter-owned validation progress (see `transfer/export`). */\n\t\tvalidation: z.json().optional(),\n\t}),\n]);\nexport type ExportCursor = z.infer<typeof exportCursorSchema>;\n\nexport const analysisCursorSchema = z.discriminatedUnion(\"stage\", [\n\tz.strictObject({ stage: z.literal(\"analyze_structure\"), nextIndexSeq: nonNegativeInt }),\n\tz.strictObject({ stage: z.literal(\"analyze_records\"), position: streamPositionSchema }),\n\tz.strictObject({\n\t\tstage: z.literal(\"analyze_references\"),\n\t\tcheck: nonNegativeInt,\n\t\tafter: z.string().nullable(),\n\t}),\n\tz.strictObject({ stage: z.literal(\"analyze_target\") }),\n]);\nexport type AnalysisCursor = z.infer<typeof analysisCursorSchema>;\n\nconst recordStage = <S extends string>(stage: S) =>\n\tz.strictObject({ stage: z.literal(stage), position: streamPositionSchema });\n\nexport const importCursorSchema = z.discriminatedUnion(\"stage\", [\n\tz.strictObject({ stage: z.literal(\"reserve\") }),\n\tz.strictObject({ stage: z.literal(\"clear_scaffold\"), step: nonNegativeInt }),\n\trecordStage(\"schema\"),\n\trecordStage(\"media\"),\n\trecordStage(\"terms_bylines\"),\n\trecordStage(\"content\"),\n\trecordStage(\"relations\"),\n\trecordStage(\"presentation\"),\n\tz.strictObject({\n\t\tstage: z.literal(\"rebuild\"),\n\t\tstep: z.enum(REBUILD_STEPS),\n\t\tafter: z.string().nullable(),\n\t}),\n\tz.strictObject({\n\t\tstage: z.literal(\"verify\"),\n\t\tposition: streamPositionSchema.nullable(),\n\t\tmediaAfter: z.string().nullable(),\n\t\tmismatches: nonNegativeInt,\n\t\t/** The verifier's own resumable state, stored as given. */\n\t\tverifier: z.json().optional(),\n\t}),\n]);\nexport type ImportCursor = z.infer<typeof importCursorSchema>;\n\nexport const transferCursorSchema = z.union([\n\texportCursorSchema,\n\tanalysisCursorSchema,\n\timportCursorSchema,\n]);\nexport type TransferCursor = ExportCursor | AnalysisCursor | ImportCursor;\n\n/**\n * Bounded progress summary shown by status endpoints. `done` of `total`\n * counts stages (and, for an export, record kinds). `records` is the number\n * of records an export has written so far; the byte counts cover package\n * files once they are known.\n */\nexport const transferProgressSchema = z.strictObject({\n\tdone: nonNegativeInt,\n\ttotal: nonNegativeInt,\n\trecords: nonNegativeInt.optional(),\n\tbytesDone: nonNegativeInt.optional(),\n\tbytesTotal: nonNegativeInt.optional(),\n});\nexport type TransferProgress = z.infer<typeof transferProgressSchema>;\n","/**\n * Database-clock timestamps for transfer state. Every lease and expiry\n * comparison runs in SQL against the database clock, never a worker clock,\n * and every stored timestamp uses the sortable `YYYY-MM-DDTHH:MM:SS.sssZ`\n * form so plain string comparison orders them.\n */\n\nimport { sql, type Kysely, type RawBuilder } from \"kysely\";\n\nimport { isPostgres } from \"../../database/dialect-helpers.js\";\nimport type { Database } from \"../../database/types.js\";\n\ntype AnyKysely = Kysely<Database>;\n\nexport function timestampOffset(db: AnyKysely, seconds: number): RawBuilder<string> {\n\tif (!Number.isFinite(seconds)) throw new RangeError(\"Invalid timestamp offset\");\n\tif (isPostgres(db)) {\n\t\treturn sql<string>`to_char(\n\t\t\tclock_timestamp() AT TIME ZONE 'UTC' + (${seconds} * interval '1 second'),\n\t\t\t'YYYY-MM-DD\"T\"HH24:MI:SS.MS\"Z\"'\n\t\t)`;\n\t}\n\treturn sql<string>`strftime('%Y-%m-%dT%H:%M:%fZ', 'now', ${`${seconds >= 0 ? \"+\" : \"\"}${seconds} seconds`})`;\n}\n\nexport function timestampNow(db: AnyKysely): RawBuilder<string> {\n\treturn timestampOffset(db, 0);\n}\n\n/** `column <= now` */\nexport function timestampIsDue(db: AnyKysely, column: string): RawBuilder<boolean> {\n\treturn isPostgres(db)\n\t\t? sql<boolean>`${sql.ref(column)}::timestamptz <= clock_timestamp()`\n\t\t: sql<boolean>`${sql.ref(column)} <= strftime('%Y-%m-%dT%H:%M:%fZ', 'now')`;\n}\n\n/** `column > now` */\nexport function timestampIsLive(db: AnyKysely, column: string): RawBuilder<boolean> {\n\treturn isPostgres(db)\n\t\t? sql<boolean>`${sql.ref(column)}::timestamptz > clock_timestamp()`\n\t\t: sql<boolean>`${sql.ref(column)} > strftime('%Y-%m-%dT%H:%M:%fZ', 'now')`;\n}\n\n/** `column <= now - seconds` */\nexport function timestampIsOlderThan(\n\tdb: AnyKysely,\n\tcolumn: string,\n\tseconds: number,\n): RawBuilder<boolean> {\n\tif (!Number.isFinite(seconds) || seconds < 0) throw new RangeError(\"Invalid timestamp age\");\n\treturn isPostgres(db)\n\t\t? sql<boolean>`${sql.ref(column)}::timestamptz <= clock_timestamp() - (${seconds} * interval '1 second')`\n\t\t: sql<boolean>`${sql.ref(column)} <= strftime('%Y-%m-%dT%H:%M:%fZ', 'now', ${`-${seconds} seconds`})`;\n}\n","/**\n * One-time approval grants that let an MCP caller without a transfer scope\n * start an export or import.\n *\n * Flow: the MCP tool creates a `pending` approval and fails with\n * `TRANSFER_APPROVAL_REQUIRED { approvalId }`; an admin approves it in a\n * session (never via MCP or a token); the MCP caller retries with the\n * approval id, and `consume` atomically turns an `approved`, unexpired grant\n * whose binding matches into `consumed`; `restore` hands it back if the\n * operation then fails to start. Each grant is bound to the user it is for,\n * the action, and every digest it was created with.\n */\n\nimport type { Kysely, Selectable } from \"kysely\";\nimport { ulid } from \"ulidx\";\n\nimport type { Database, TransferApprovalTable } from \"../../database/types.js\";\nimport { TRANSFER_APPROVAL_ACTIONS, type TransferApprovalAction } from \"../auth.js\";\nimport { TransferError } from \"../errors.js\";\nimport { isSha256Digest, type Sha256Digest } from \"../format/digest.js\";\nimport { TRANSFER_LIMITS } from \"../format/limits.js\";\nimport { timestampIsDue, timestampIsLive, timestampNow, timestampOffset } from \"./time.js\";\n\nexport const APPROVAL_STATUSES = [\"pending\", \"approved\", \"denied\", \"consumed\", \"expired\"] as const;\nexport type ApprovalStatus = (typeof APPROVAL_STATUSES)[number];\n\nexport interface TransferApproval {\n\tid: string;\n\tstatus: ApprovalStatus;\n\taction: TransferApprovalAction;\n\tuserId: string;\n\trequestedByTokenId: string | null;\n\tapprovedBy: string | null;\n\toperationId: string | null;\n\tparamsDigest: Sha256Digest | null;\n\tpackageDigest: Sha256Digest | null;\n\tplanDigest: Sha256Digest | null;\n\texpiresAt: string;\n\tcreatedAt: string;\n\tdecidedAt: string | null;\n\tconsumedAt: string | null;\n}\n\nexport interface ApprovalBinding {\n\tuserId: string;\n\taction: TransferApprovalAction;\n\toperationId?: string;\n\tparamsDigest?: Sha256Digest;\n\tpackageDigest?: Sha256Digest;\n\tplanDigest?: Sha256Digest;\n}\n\nconst STATUS_SET: ReadonlySet<string> = new Set(APPROVAL_STATUSES);\nconst ACTION_SET: ReadonlySet<string> = new Set(TRANSFER_APPROVAL_ACTIONS);\n\nfunction isApprovalStatus(value: string): value is ApprovalStatus {\n\treturn STATUS_SET.has(value);\n}\n\nfunction isApprovalAction(value: string): value is TransferApprovalAction {\n\treturn ACTION_SET.has(value);\n}\n\nfunction toApproval(row: Selectable<TransferApprovalTable>): TransferApproval {\n\tconst { status, action } = row;\n\tif (!isApprovalStatus(status) || !isApprovalAction(action)) {\n\t\tthrow new TransferError(\"TRANSFER_APPROVAL_INVALID\", \"Unknown approval status or action\");\n\t}\n\treturn {\n\t\tid: row.id,\n\t\tstatus,\n\t\taction,\n\t\tuserId: row.user_id,\n\t\trequestedByTokenId: row.requested_by_token_id,\n\t\tapprovedBy: row.approved_by,\n\t\toperationId: row.operation_id,\n\t\tparamsDigest: isSha256Digest(row.params_digest) ? row.params_digest : null,\n\t\tpackageDigest: isSha256Digest(row.package_digest) ? row.package_digest : null,\n\t\tplanDigest: isSha256Digest(row.plan_digest) ? row.plan_digest : null,\n\t\texpiresAt: row.expires_at,\n\t\tcreatedAt: row.created_at,\n\t\tdecidedAt: row.decided_at,\n\t\tconsumedAt: row.consumed_at,\n\t};\n}\n\ntype BoundColumn =\n\t| \"operation_id\"\n\t| \"params_digest\"\n\t| \"package_digest\"\n\t| \"plan_digest\"\n\t| \"requested_by_token_id\";\n\n/** Every column a grant binds besides user and action, with the value it must hold (undefined = NULL). */\nfunction boundColumns(\n\tbinding: ApprovalBinding & { tokenId?: string },\n): ReadonlyArray<readonly [BoundColumn, string | undefined]> {\n\treturn [\n\t\t[\"operation_id\", binding.operationId],\n\t\t[\"params_digest\", binding.paramsDigest],\n\t\t[\"package_digest\", binding.packageDigest],\n\t\t[\"plan_digest\", binding.planDigest],\n\t\t[\"requested_by_token_id\", binding.tokenId],\n\t];\n}\n\nfunction invalid(): TransferError {\n\treturn new TransferError(\n\t\t\"TRANSFER_APPROVAL_INVALID\",\n\t\t\"Approval is missing, expired, or does not match\",\n\t);\n}\n\nexport class TransferApprovalRepository {\n\tconstructor(private readonly db: Kysely<Database>) {}\n\n\tasync createPending(\n\t\tinput: ApprovalBinding & { requestedByTokenId?: string; ttlSeconds?: number },\n\t): Promise<TransferApproval> {\n\t\tif (input.action === \"import\" && (!input.packageDigest || !input.planDigest)) {\n\t\t\tthrow new TransferError(\n\t\t\t\t\"TRANSFER_APPROVAL_INVALID\",\n\t\t\t\t\"An import approval must bind a package digest and a plan digest\",\n\t\t\t);\n\t\t}\n\t\tconst row = await this.db\n\t\t\t.insertInto(\"_emdash_transfer_approvals\")\n\t\t\t.values({\n\t\t\t\tid: ulid(),\n\t\t\t\tstatus: \"pending\",\n\t\t\t\taction: input.action,\n\t\t\t\tuser_id: input.userId,\n\t\t\t\trequested_by_token_id: input.requestedByTokenId ?? null,\n\t\t\t\tapproved_by: null,\n\t\t\t\toperation_id: input.operationId ?? null,\n\t\t\t\tparams_digest: input.paramsDigest ?? null,\n\t\t\t\tpackage_digest: input.packageDigest ?? null,\n\t\t\t\tplan_digest: input.planDigest ?? null,\n\t\t\t\texpires_at: timestampOffset(\n\t\t\t\t\tthis.db,\n\t\t\t\t\tinput.ttlSeconds ?? TRANSFER_LIMITS.approvalTtlSeconds,\n\t\t\t\t),\n\t\t\t\tdecided_at: null,\n\t\t\t\tconsumed_at: null,\n\t\t\t})\n\t\t\t.returningAll()\n\t\t\t.executeTakeFirstOrThrow();\n\t\treturn toApproval(row);\n\t}\n\n\tasync get(id: string): Promise<TransferApproval | null> {\n\t\tconst row = await this.db\n\t\t\t.selectFrom(\"_emdash_transfer_approvals\")\n\t\t\t.selectAll()\n\t\t\t.where(\"id\", \"=\", id)\n\t\t\t.executeTakeFirst();\n\t\treturn row ? toApproval(row) : null;\n\t}\n\n\t/**\n\t * Approve a pending, unexpired grant. The grant then stays usable for the\n\t * approval TTL from now.\n\t */\n\tasync approve(\n\t\tid: string,\n\t\tapprovedBy: string,\n\t\toptions: { ttlSeconds?: number } = {},\n\t): Promise<TransferApproval> {\n\t\treturn this.decide(id, \"approved\", approvedBy, options.ttlSeconds);\n\t}\n\n\tasync deny(id: string, deniedBy: string): Promise<TransferApproval> {\n\t\treturn this.decide(id, \"denied\", deniedBy);\n\t}\n\n\tprivate async decide(\n\t\tid: string,\n\t\tstatus: \"approved\" | \"denied\",\n\t\tdecidedBy: string,\n\t\tttlSeconds?: number,\n\t): Promise<TransferApproval> {\n\t\tconst now = timestampNow(this.db);\n\t\tconst row = await this.db\n\t\t\t.updateTable(\"_emdash_transfer_approvals\")\n\t\t\t.set({\n\t\t\t\tstatus,\n\t\t\t\tapproved_by: decidedBy,\n\t\t\t\tdecided_at: now,\n\t\t\t\t...(status === \"approved\"\n\t\t\t\t\t? {\n\t\t\t\t\t\t\texpires_at: timestampOffset(\n\t\t\t\t\t\t\t\tthis.db,\n\t\t\t\t\t\t\t\tttlSeconds ?? TRANSFER_LIMITS.approvalTtlSeconds,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t})\n\t\t\t.where(\"id\", \"=\", id)\n\t\t\t.where(\"status\", \"=\", \"pending\")\n\t\t\t.where(timestampIsLive(this.db, \"expires_at\"))\n\t\t\t.returningAll()\n\t\t\t.executeTakeFirst();\n\t\tif (!row) throw invalid();\n\t\treturn toApproval(row);\n\t}\n\n\t/**\n\t * Consume an approved grant in one statement. Every digest or operation id\n\t * the grant was created with must be supplied and equal; a grant created\n\t * without one must be consumed without it. The same holds for the token:\n\t * a grant requested by token `T` can only be consumed by a caller\n\t * authenticated with `T` (pass `tokenId`), and a grant requested without a\n\t * token only by a caller without one. Throws `TRANSFER_APPROVAL_INVALID`\n\t * otherwise.\n\t */\n\tasync consume(\n\t\tid: string,\n\t\tbinding: ApprovalBinding & { tokenId?: string },\n\t): Promise<TransferApproval> {\n\t\tconst now = timestampNow(this.db);\n\t\tlet query = this.db\n\t\t\t.updateTable(\"_emdash_transfer_approvals\")\n\t\t\t.set({ status: \"consumed\", consumed_at: now })\n\t\t\t.where(\"id\", \"=\", id)\n\t\t\t.where(\"status\", \"=\", \"approved\")\n\t\t\t.where(timestampIsLive(this.db, \"expires_at\"))\n\t\t\t.where(\"user_id\", \"=\", binding.userId)\n\t\t\t.where(\"action\", \"=\", binding.action);\n\t\tfor (const [column, value] of boundColumns(binding)) {\n\t\t\tquery =\n\t\t\t\tvalue === undefined ? query.where(column, \"is\", null) : query.where(column, \"=\", value);\n\t\t}\n\t\tconst row = await query.returningAll().executeTakeFirst();\n\t\tif (!row) throw invalid();\n\t\treturn toApproval(row);\n\t}\n\n\t/**\n\t * Return a grant `consume` took back to `approved`, for when the\n\t * operation it was consumed for could not be started. Its expiry is\n\t * unchanged, so an expired grant stays unusable.\n\t */\n\tasync restore(id: string): Promise<void> {\n\t\tawait this.db\n\t\t\t.updateTable(\"_emdash_transfer_approvals\")\n\t\t\t.set({ status: \"approved\", consumed_at: null })\n\t\t\t.where(\"id\", \"=\", id)\n\t\t\t.where(\"status\", \"=\", \"consumed\")\n\t\t\t.execute();\n\t}\n\n\t/**\n\t * The newest pending, unexpired grant with exactly this binding, so a\n\t * caller retrying without an approval id reuses its open request instead\n\t * of adding another one for an admin to review.\n\t */\n\tasync findPending(\n\t\tbinding: ApprovalBinding & { tokenId?: string },\n\t): Promise<TransferApproval | null> {\n\t\tlet query = this.db\n\t\t\t.selectFrom(\"_emdash_transfer_approvals\")\n\t\t\t.selectAll()\n\t\t\t.where(\"status\", \"=\", \"pending\")\n\t\t\t.where(timestampIsLive(this.db, \"expires_at\"))\n\t\t\t.where(\"user_id\", \"=\", binding.userId)\n\t\t\t.where(\"action\", \"=\", binding.action);\n\t\tfor (const [column, value] of boundColumns(binding)) {\n\t\t\tquery =\n\t\t\t\tvalue === undefined ? query.where(column, \"is\", null) : query.where(column, \"=\", value);\n\t\t}\n\t\tconst row = await query.orderBy(\"created_at\", \"desc\").orderBy(\"id\", \"desc\").executeTakeFirst();\n\t\treturn row ? toApproval(row) : null;\n\t}\n\n\t/**\n\t * Whether a grant for `action` on `operationId` was consumed by this user\n\t * authenticated with this token (or, without `tokenId`, without a token).\n\t */\n\tasync hasConsumed(binding: {\n\t\tuserId: string;\n\t\taction: TransferApprovalAction;\n\t\toperationId: string;\n\t\ttokenId?: string;\n\t}): Promise<boolean> {\n\t\tlet query = this.db\n\t\t\t.selectFrom(\"_emdash_transfer_approvals\")\n\t\t\t.select(\"id\")\n\t\t\t.where(\"status\", \"=\", \"consumed\")\n\t\t\t.where(\"user_id\", \"=\", binding.userId)\n\t\t\t.where(\"action\", \"=\", binding.action)\n\t\t\t.where(\"operation_id\", \"=\", binding.operationId);\n\t\tquery =\n\t\t\tbinding.tokenId === undefined\n\t\t\t\t? query.where(\"requested_by_token_id\", \"is\", null)\n\t\t\t\t: query.where(\"requested_by_token_id\", \"=\", binding.tokenId);\n\t\treturn (await query.executeTakeFirst()) !== undefined;\n\t}\n\n\t/**\n\t * Record the operation a consumed export grant created. Export grants are\n\t * requested before the operation exists, so they bind no operation id\n\t * until they are used.\n\t */\n\tasync linkOperation(id: string, operationId: string): Promise<void> {\n\t\tawait this.db\n\t\t\t.updateTable(\"_emdash_transfer_approvals\")\n\t\t\t.set({ operation_id: operationId })\n\t\t\t.where(\"id\", \"=\", id)\n\t\t\t.where(\"status\", \"=\", \"consumed\")\n\t\t\t.where(\"action\", \"=\", \"export\")\n\t\t\t.where(\"operation_id\", \"is\", null)\n\t\t\t.execute();\n\t}\n\n\t/** Approvals newest first. */\n\tasync list(\n\t\toptions: {\n\t\t\tuserId?: string;\n\t\t\tstatus?: ApprovalStatus;\n\t\t\tlimit?: number;\n\t\t\tcursor?: { createdAt: string; id: string };\n\t\t} = {},\n\t): Promise<{ items: TransferApproval[]; next?: { createdAt: string; id: string } }> {\n\t\tconst limit = Math.min(Math.max(options.limit ?? 50, 1), 100);\n\t\tlet query = this.db.selectFrom(\"_emdash_transfer_approvals\").selectAll();\n\t\tif (options.userId) query = query.where(\"user_id\", \"=\", options.userId);\n\t\tif (options.status) query = query.where(\"status\", \"=\", options.status);\n\t\tconst cursor = options.cursor;\n\t\tif (cursor) {\n\t\t\tquery = query.where((eb) =>\n\t\t\t\teb.or([\n\t\t\t\t\teb(\"created_at\", \"<\", cursor.createdAt),\n\t\t\t\t\teb.and([eb(\"created_at\", \"=\", cursor.createdAt), eb(\"id\", \"<\", cursor.id)]),\n\t\t\t\t]),\n\t\t\t);\n\t\t}\n\t\tconst rows = await query\n\t\t\t.orderBy(\"created_at\", \"desc\")\n\t\t\t.orderBy(\"id\", \"desc\")\n\t\t\t.limit(limit + 1)\n\t\t\t.execute();\n\t\tconst items = rows.slice(0, limit).map(toApproval);\n\t\tconst last = items.at(-1);\n\t\treturn rows.length > limit && last\n\t\t\t? { items, next: { createdAt: last.createdAt, id: last.id } }\n\t\t\t: { items };\n\t}\n\n\t/** Mark pending and approved grants past their expiry as `expired`; returns how many. */\n\tasync expireDue(): Promise<number> {\n\t\tconst result = await this.db\n\t\t\t.updateTable(\"_emdash_transfer_approvals\")\n\t\t\t.set({ status: \"expired\" })\n\t\t\t.where(\"status\", \"in\", [\"pending\", \"approved\"])\n\t\t\t.where(timestampIsDue(this.db, \"expires_at\"))\n\t\t\t.executeTakeFirst();\n\t\treturn Number(result.numUpdatedRows ?? 0n);\n\t}\n}\n"],"mappings":"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"}