emdash 1.2.0 → 1.3.1

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 (1592) hide show
  1. package/dist/action-token-B1ds4laA.mjs +26 -0
  2. package/dist/action-token-B1ds4laA.mjs.map +1 -0
  3. package/dist/activation-sGF9br3X.mjs +387 -0
  4. package/dist/activation-sGF9br3X.mjs.map +1 -0
  5. package/dist/adapters-BOMSX9PU.d.mts +173 -0
  6. package/dist/adapters-BOMSX9PU.d.mts.map +1 -0
  7. package/dist/allowed-origins-CovsTkm3.mjs +116 -0
  8. package/dist/allowed-origins-CovsTkm3.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +4 -4
  10. package/dist/api/route-utils.mjs +59 -55
  11. package/dist/api/route-utils.mjs.map +1 -1
  12. package/dist/api/schemas/index.d.mts +1 -1
  13. package/dist/api/schemas/index.mjs +11 -11
  14. package/dist/api-C_LxFnOm.mjs +5077 -0
  15. package/dist/api-C_LxFnOm.mjs.map +1 -0
  16. package/dist/api-tokens-DQ9Ee-vP.mjs +173 -0
  17. package/dist/api-tokens-DQ9Ee-vP.mjs.map +1 -0
  18. package/dist/apply-CLjfxvyH.mjs +1758 -0
  19. package/dist/apply-CLjfxvyH.mjs.map +1 -0
  20. package/dist/approvals-ocK89i4H.mjs +460 -0
  21. package/dist/approvals-ocK89i4H.mjs.map +1 -0
  22. package/dist/artifact-fetch-CgvvpoWQ.mjs +659 -0
  23. package/dist/artifact-fetch-CgvvpoWQ.mjs.map +1 -0
  24. package/dist/artifacts-DwOYYBQm.mjs +323 -0
  25. package/dist/artifacts-DwOYYBQm.mjs.map +1 -0
  26. package/dist/astro/image-endpoint.mjs +12 -2
  27. package/dist/astro/image-endpoint.mjs.map +1 -1
  28. package/dist/astro/index.d.mts +14 -14
  29. package/dist/astro/index.d.mts.map +1 -1
  30. package/dist/astro/index.mjs +122 -20
  31. package/dist/astro/index.mjs.map +1 -1
  32. package/dist/astro/middleware/auth.d.mts +12 -12
  33. package/dist/astro/middleware/auth.d.mts.map +1 -1
  34. package/dist/astro/middleware/auth.mjs +12 -11
  35. package/dist/astro/middleware/auth.mjs.map +1 -1
  36. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  37. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  38. package/dist/astro/middleware/redirect.mjs +161 -61
  39. package/dist/astro/middleware/redirect.mjs.map +1 -1
  40. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  41. package/dist/astro/middleware/request-context.mjs +58 -20
  42. package/dist/astro/middleware/request-context.mjs.map +1 -1
  43. package/dist/astro/middleware/setup.mjs +1 -1
  44. package/dist/astro/middleware.d.mts +12 -12
  45. package/dist/astro/middleware.d.mts.map +1 -1
  46. package/dist/astro/middleware.mjs +137 -419
  47. package/dist/astro/middleware.mjs.map +1 -1
  48. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +16 -16
  49. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +16 -16
  50. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -6
  51. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
  52. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +7 -7
  53. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +19 -19
  54. package/dist/astro/routes/api/admin/byline-fields/index.mjs +19 -19
  55. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +19 -19
  56. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +29 -27
  57. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  58. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +29 -27
  59. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  60. package/dist/astro/routes/api/admin/bylines/index.mjs +29 -27
  61. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  62. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +21 -21
  63. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
  64. package/dist/astro/routes/api/admin/comments/bulk.mjs +20 -20
  65. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
  66. package/dist/astro/routes/api/admin/comments/index.mjs +20 -20
  67. package/dist/astro/routes/api/admin/core-update.mjs +7 -7
  68. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  69. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  70. package/dist/astro/routes/api/admin/media-usage/activation.mjs +22 -22
  71. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +23 -23
  72. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +23 -23
  73. package/dist/astro/routes/api/admin/media-usage/progress.mjs +27 -25
  74. package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
  75. package/dist/astro/routes/api/admin/media-usage/repair.mjs +33 -31
  76. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  77. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +23 -23
  78. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +23 -23
  79. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  80. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  81. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  82. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  83. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +81 -77
  84. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  85. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
  86. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +80 -76
  87. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  88. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +80 -77
  89. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  90. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +91 -88
  91. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  92. package/dist/astro/routes/api/admin/plugins/index.mjs +81 -77
  93. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  94. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +7 -7
  95. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +80 -76
  96. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  97. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +90 -87
  98. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  99. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +80 -76
  100. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  101. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +80 -77
  102. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  103. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +92 -89
  104. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  105. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +10 -10
  106. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  107. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +82 -79
  108. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  109. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
  110. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +81 -77
  111. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  112. package/dist/astro/routes/api/admin/plugins/updates.mjs +80 -76
  113. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  114. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
  115. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +80 -76
  116. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  117. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +7 -7
  118. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +80 -76
  119. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  120. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
  121. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +45 -42
  122. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
  123. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +45 -42
  124. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
  125. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +47 -44
  126. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
  127. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +47 -44
  128. package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
  129. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +47 -44
  130. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
  131. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +48 -45
  132. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
  133. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +48 -45
  134. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
  135. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +47 -44
  136. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
  137. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +48 -45
  138. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
  139. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +49 -46
  140. package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
  141. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +47 -44
  142. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
  143. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +47 -44
  144. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
  145. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +49 -46
  146. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
  147. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +47 -44
  148. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
  149. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +49 -46
  150. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
  151. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +47 -44
  152. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
  153. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +47 -44
  154. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
  155. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +49 -46
  156. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
  157. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +47 -44
  158. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
  159. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +47 -44
  160. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
  161. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +49 -46
  162. package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
  163. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
  164. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  165. package/dist/astro/routes/api/admin/users/_id_/index.mjs +17 -17
  166. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
  167. package/dist/astro/routes/api/admin/users/index.mjs +16 -16
  168. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  169. package/dist/astro/routes/api/auth/handover.mjs +6 -6
  170. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  171. package/dist/astro/routes/api/auth/invite/complete.mjs +21 -21
  172. package/dist/astro/routes/api/auth/invite/index.mjs +18 -18
  173. package/dist/astro/routes/api/auth/invite/register-options.mjs +19 -19
  174. package/dist/astro/routes/api/auth/logout.mjs +5 -5
  175. package/dist/astro/routes/api/auth/magic-link/send.mjs +20 -20
  176. package/dist/astro/routes/api/auth/magic-link/verify.mjs +17 -17
  177. package/dist/astro/routes/api/auth/me.mjs +17 -17
  178. package/dist/astro/routes/api/auth/mode.mjs +5 -5
  179. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +8 -8
  180. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  181. package/dist/astro/routes/api/auth/passkey/_id_.mjs +16 -16
  182. package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
  183. package/dist/astro/routes/api/auth/passkey/options.mjs +21 -21
  184. package/dist/astro/routes/api/auth/passkey/register/options.mjs +19 -19
  185. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +20 -20
  186. package/dist/astro/routes/api/auth/passkey/verify.mjs +21 -21
  187. package/dist/astro/routes/api/auth/signup/complete.mjs +21 -21
  188. package/dist/astro/routes/api/auth/signup/request.mjs +19 -19
  189. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  190. package/dist/astro/routes/api/calendar.mjs +17 -17
  191. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +13 -13
  192. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +21 -21
  193. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  194. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts.map +1 -1
  195. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +21 -20
  196. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  197. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +7 -10
  198. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs.map +1 -1
  199. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +23 -20
  200. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
  201. package/dist/astro/routes/api/content/_collection_/_id_/permanent.d.mts.map +1 -1
  202. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +7 -6
  203. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs.map +1 -1
  204. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +12 -12
  205. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +36 -34
  206. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  207. package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts.map +1 -1
  208. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +21 -20
  209. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  210. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +40 -38
  211. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  212. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +40 -38
  213. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  214. package/dist/astro/routes/api/content/_collection_/_id_/restore.d.mts.map +1 -1
  215. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +7 -6
  216. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs.map +1 -1
  217. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  218. package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts.map +1 -1
  219. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +22 -21
  220. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  221. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -1
  222. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +46 -33
  223. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  224. package/dist/astro/routes/api/content/_collection_/_id_/translations.d.mts.map +1 -1
  225. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +9 -5
  226. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs.map +1 -1
  227. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts.map +1 -1
  228. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +21 -20
  229. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  230. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  231. package/dist/astro/routes/api/content/_collection_/_id_.mjs +30 -23
  232. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  233. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  234. package/dist/astro/routes/api/content/_collection_/index.mjs +20 -23
  235. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  236. package/dist/astro/routes/api/content/_collection_/trash.mjs +17 -17
  237. package/dist/astro/routes/api/dashboard.d.mts.map +1 -1
  238. package/dist/astro/routes/api/dashboard.mjs +27 -15
  239. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  240. package/dist/astro/routes/api/dev/emails.mjs +5 -5
  241. package/dist/astro/routes/api/dev/scheduled-tasks.d.mts +12 -0
  242. package/dist/astro/routes/api/dev/scheduled-tasks.d.mts.map +1 -0
  243. package/dist/astro/routes/api/dev/scheduled-tasks.mjs +142 -0
  244. package/dist/astro/routes/api/dev/scheduled-tasks.mjs.map +1 -0
  245. package/dist/astro/routes/api/health.mjs +6 -6
  246. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  247. package/dist/astro/routes/api/import/probe.mjs +31 -27
  248. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  249. package/dist/astro/routes/api/import/wordpress/analyze.d.mts.map +1 -1
  250. package/dist/astro/routes/api/import/wordpress/analyze.mjs +8 -21
  251. package/dist/astro/routes/api/import/wordpress/analyze.mjs.map +1 -1
  252. package/dist/astro/routes/api/import/wordpress/execute.d.mts +15 -14
  253. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  254. package/dist/astro/routes/api/import/wordpress/execute.mjs +36 -36
  255. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  256. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  257. package/dist/astro/routes/api/import/wordpress/media.mjs +21 -21
  258. package/dist/astro/routes/api/import/wordpress/prepare.mjs +22 -20
  259. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  260. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  261. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +32 -30
  262. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  263. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  264. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +32 -27
  265. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  266. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  267. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -1
  268. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +66 -43
  269. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  270. package/dist/astro/routes/api/manifest.mjs +6 -6
  271. package/dist/astro/routes/api/mcp.mjs +160 -109
  272. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  273. package/dist/astro/routes/api/media/_id_/confirm.mjs +21 -21
  274. package/dist/astro/routes/api/media/_id_/replace.mjs +18 -18
  275. package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
  276. package/dist/astro/routes/api/media/_id_/usage.mjs +35 -33
  277. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  278. package/dist/astro/routes/api/media/_id_.mjs +33 -31
  279. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  280. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
  281. package/dist/astro/routes/api/media/file/_...key_.mjs +21 -13
  282. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  283. package/dist/astro/routes/api/media/folders/_id_.mjs +18 -18
  284. package/dist/astro/routes/api/media/folders/index.mjs +18 -18
  285. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
  286. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
  287. package/dist/astro/routes/api/media/providers/index.mjs +5 -5
  288. package/dist/astro/routes/api/media/upload-url.mjs +20 -20
  289. package/dist/astro/routes/api/media.mjs +37 -35
  290. package/dist/astro/routes/api/media.mjs.map +1 -1
  291. package/dist/astro/routes/api/menus/_name_/items/_id_.d.mts.map +1 -1
  292. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +24 -22
  293. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  294. package/dist/astro/routes/api/menus/_name_/items.d.mts.map +1 -1
  295. package/dist/astro/routes/api/menus/_name_/items.mjs +23 -21
  296. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  297. package/dist/astro/routes/api/menus/_name_/reorder.d.mts.map +1 -1
  298. package/dist/astro/routes/api/menus/_name_/reorder.mjs +23 -21
  299. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  300. package/dist/astro/routes/api/menus/_name_/translations.d.mts.map +1 -1
  301. package/dist/astro/routes/api/menus/_name_/translations.mjs +23 -21
  302. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  303. package/dist/astro/routes/api/menus/_name_.d.mts.map +1 -1
  304. package/dist/astro/routes/api/menus/_name_.mjs +24 -22
  305. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  306. package/dist/astro/routes/api/menus/index.d.mts.map +1 -1
  307. package/dist/astro/routes/api/menus/index.mjs +23 -21
  308. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  309. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  310. package/dist/astro/routes/api/oauth/device/authorize.mjs +8 -8
  311. package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
  312. package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
  313. package/dist/astro/routes/api/oauth/register.mjs +7 -7
  314. package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
  315. package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
  316. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  317. package/dist/astro/routes/api/openapi.json.mjs +22 -22
  318. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +12 -12
  319. package/dist/astro/routes/api/redirects/404s/index.mjs +23 -22
  320. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  321. package/dist/astro/routes/api/redirects/404s/summary.mjs +23 -22
  322. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  323. package/dist/astro/routes/api/redirects/_id_.d.mts.map +1 -1
  324. package/dist/astro/routes/api/redirects/_id_.mjs +36 -26
  325. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  326. package/dist/astro/routes/api/redirects/index.d.mts.map +1 -1
  327. package/dist/astro/routes/api/redirects/index.mjs +28 -24
  328. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  329. package/dist/astro/routes/api/relations/_id_/index.mjs +40 -38
  330. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  331. package/dist/astro/routes/api/relations/index.mjs +40 -38
  332. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  333. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
  334. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +19 -19
  335. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +80 -76
  336. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  337. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +80 -76
  338. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  339. package/dist/astro/routes/api/schema/block-types/index.mjs +80 -76
  340. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  341. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +80 -76
  342. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  343. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +80 -76
  344. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  345. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +80 -76
  346. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  347. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +80 -76
  348. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  349. package/dist/astro/routes/api/schema/collections/index.mjs +80 -76
  350. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  351. package/dist/astro/routes/api/schema/collections/reorder.mjs +80 -76
  352. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  353. package/dist/astro/routes/api/schema/index.mjs +20 -18
  354. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  355. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +80 -76
  356. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  357. package/dist/astro/routes/api/schema/orphans/index.mjs +80 -76
  358. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  359. package/dist/astro/routes/api/search/enable.mjs +23 -21
  360. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  361. package/dist/astro/routes/api/search/index.mjs +22 -20
  362. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  363. package/dist/astro/routes/api/search/rebuild.mjs +23 -21
  364. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  365. package/dist/astro/routes/api/search/stats.mjs +12 -10
  366. package/dist/astro/routes/api/search/stats.mjs.map +1 -1
  367. package/dist/astro/routes/api/search/suggest.mjs +22 -20
  368. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  369. package/dist/astro/routes/api/sections/_slug_.mjs +22 -20
  370. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  371. package/dist/astro/routes/api/sections/index.mjs +22 -20
  372. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  373. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  374. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  375. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  376. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  377. package/dist/astro/routes/api/settings/domain-notify.mjs +9 -9
  378. package/dist/astro/routes/api/settings/domain.d.mts.map +1 -1
  379. package/dist/astro/routes/api/settings/domain.mjs +23 -18
  380. package/dist/astro/routes/api/settings/domain.mjs.map +1 -1
  381. package/dist/astro/routes/api/settings/email.mjs +6 -6
  382. package/dist/astro/routes/api/settings.d.mts.map +1 -1
  383. package/dist/astro/routes/api/settings.mjs +30 -25
  384. package/dist/astro/routes/api/settings.mjs.map +1 -1
  385. package/dist/astro/routes/api/setup/admin-verify.d.mts.map +1 -1
  386. package/dist/astro/routes/api/setup/admin-verify.mjs +27 -23
  387. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  388. package/dist/astro/routes/api/setup/admin.mjs +20 -20
  389. package/dist/astro/routes/api/setup/dev-bypass.mjs +52 -48
  390. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  391. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  392. package/dist/astro/routes/api/setup/index.mjs +58 -54
  393. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  394. package/dist/astro/routes/api/setup/status.mjs +6 -6
  395. package/dist/astro/routes/api/site/domain-proof.mjs +16 -12
  396. package/dist/astro/routes/api/site/domain-proof.mjs.map +1 -1
  397. package/dist/astro/routes/api/snapshot.mjs +8 -8
  398. package/dist/astro/routes/api/taxonomies/_name_/reorder.d.mts.map +1 -1
  399. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +31 -28
  400. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  401. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.d.mts.map +1 -1
  402. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +31 -28
  403. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  404. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.d.mts.map +1 -1
  405. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +32 -29
  406. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  407. package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts.map +1 -1
  408. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +31 -28
  409. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  410. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +28 -26
  411. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  412. package/dist/astro/routes/api/taxonomies/_name_.d.mts.map +1 -1
  413. package/dist/astro/routes/api/taxonomies/_name_.mjs +32 -29
  414. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  415. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +44 -42
  416. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
  417. package/dist/astro/routes/api/taxonomies/index.d.mts.map +1 -1
  418. package/dist/astro/routes/api/taxonomies/index.mjs +31 -28
  419. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  420. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  421. package/dist/astro/routes/api/typegen.mjs +6 -6
  422. package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
  423. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +21 -21
  424. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
  425. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  426. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  427. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  428. package/dist/astro/routes/api/widget-areas/_name_/reorder.d.mts.map +1 -1
  429. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +20 -19
  430. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  431. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts.map +1 -1
  432. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +26 -23
  433. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  434. package/dist/astro/routes/api/widget-areas/_name_/widgets.d.mts.map +1 -1
  435. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +25 -22
  436. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  437. package/dist/astro/routes/api/widget-areas/_name_.d.mts.map +1 -1
  438. package/dist/astro/routes/api/widget-areas/_name_.mjs +14 -11
  439. package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
  440. package/dist/astro/routes/api/widget-areas/index.d.mts.map +1 -1
  441. package/dist/astro/routes/api/widget-areas/index.mjs +25 -22
  442. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  443. package/dist/astro/routes/api/widget-components.mjs +5 -5
  444. package/dist/astro/routes/robots.txt.d.mts.map +1 -1
  445. package/dist/astro/routes/robots.txt.mjs +43 -8
  446. package/dist/astro/routes/robots.txt.mjs.map +1 -1
  447. package/dist/astro/routes/sitemap-_collection_.xml.mjs +19 -12
  448. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  449. package/dist/astro/routes/sitemap.xml.mjs +16 -9
  450. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  451. package/dist/astro/types.d.mts +19 -17
  452. package/dist/astro/types.d.mts.map +1 -1
  453. package/dist/audit-B8XE-0UV.mjs +127 -0
  454. package/dist/audit-B8XE-0UV.mjs.map +1 -0
  455. package/dist/auth/providers/github.d.mts +1 -1
  456. package/dist/auth/providers/google.d.mts +1 -1
  457. package/dist/auth/providers/microsoft.d.mts +1 -1
  458. package/dist/authoritative-records-LPtrIGOY.mjs +5183 -0
  459. package/dist/authoritative-records-LPtrIGOY.mjs.map +1 -0
  460. package/dist/authorize-CoDsRRp5.mjs +74 -0
  461. package/dist/authorize-CoDsRRp5.mjs.map +1 -0
  462. package/dist/backup-2Wj-hTCN.mjs +246 -0
  463. package/dist/backup-2Wj-hTCN.mjs.map +1 -0
  464. package/dist/block-types-C3gJEe7l.mjs +132 -0
  465. package/dist/block-types-C3gJEe7l.mjs.map +1 -0
  466. package/dist/block-values-CgbMtSGU.mjs +215 -0
  467. package/dist/block-values-CgbMtSGU.mjs.map +1 -0
  468. package/dist/byline-CzGZC2Zs.mjs +922 -0
  469. package/dist/byline-CzGZC2Zs.mjs.map +1 -0
  470. package/dist/byline-fields-B1qHvRps.mjs +280 -0
  471. package/dist/byline-fields-B1qHvRps.mjs.map +1 -0
  472. package/dist/byline-fields-vYd_4Q1e.mjs +123 -0
  473. package/dist/byline-fields-vYd_4Q1e.mjs.map +1 -0
  474. package/dist/byline-registry-BhzpO41z.mjs +406 -0
  475. package/dist/byline-registry-BhzpO41z.mjs.map +1 -0
  476. package/dist/bylines-BF555iIz.mjs +150 -0
  477. package/dist/bylines-BF555iIz.mjs.map +1 -0
  478. package/dist/bylines-DJx6IWWi.mjs +234 -0
  479. package/dist/bylines-DJx6IWWi.mjs.map +1 -0
  480. package/dist/cache-BWzswWB-.mjs +151 -0
  481. package/dist/cache-BWzswWB-.mjs.map +1 -0
  482. package/dist/canonical-DjF_z6GI.mjs +174 -0
  483. package/dist/canonical-DjF_z6GI.mjs.map +1 -0
  484. package/dist/capture-triggers-D7g3fOZj.mjs +362 -0
  485. package/dist/capture-triggers-D7g3fOZj.mjs.map +1 -0
  486. package/dist/challenge-store-Cfjdvw86.mjs +51 -0
  487. package/dist/challenge-store-Cfjdvw86.mjs.map +1 -0
  488. package/dist/checksum-BF4acJwn.mjs +162 -0
  489. package/dist/checksum-BF4acJwn.mjs.map +1 -0
  490. package/dist/chrome-tags-BDs29G3g.mjs +24 -0
  491. package/dist/chrome-tags-BDs29G3g.mjs.map +1 -0
  492. package/dist/chunks-CYBOL-zn.mjs +25 -0
  493. package/dist/chunks-CYBOL-zn.mjs.map +1 -0
  494. package/dist/cli/index.mjs +146 -130
  495. package/dist/cli/index.mjs.map +1 -1
  496. package/dist/client/cf-access.d.mts +1 -1
  497. package/dist/client/index.d.mts +47 -47
  498. package/dist/client/index.d.mts.map +1 -1
  499. package/dist/client/index.mjs +14 -11
  500. package/dist/client/index.mjs.map +1 -1
  501. package/dist/collection-slugs-cache-B2J5aESO.mjs +91 -0
  502. package/dist/collection-slugs-cache-B2J5aESO.mjs.map +1 -0
  503. package/dist/comment-DV7dybcs.mjs +335 -0
  504. package/dist/comment-DV7dybcs.mjs.map +1 -0
  505. package/dist/comment-reaction-CWwqiT6x.mjs +85 -0
  506. package/dist/comment-reaction-CWwqiT6x.mjs.map +1 -0
  507. package/dist/comments-DVjWJm8X.mjs +99 -0
  508. package/dist/comments-DVjWJm8X.mjs.map +1 -0
  509. package/dist/comments-Q-ILHCEI.mjs +195 -0
  510. package/dist/comments-Q-ILHCEI.mjs.map +1 -0
  511. package/dist/components-DnOmvvgg.mjs +112 -0
  512. package/dist/components-DnOmvvgg.mjs.map +1 -0
  513. package/dist/config-9IzA83_U.d.mts +6811 -0
  514. package/dist/config-9IzA83_U.d.mts.map +1 -0
  515. package/dist/config-BdQzFtmR.mjs +228 -0
  516. package/dist/config-BdQzFtmR.mjs.map +1 -0
  517. package/dist/config-Cs2RBkJ6.d.mts +41 -0
  518. package/dist/config-Cs2RBkJ6.d.mts.map +1 -0
  519. package/dist/config-Cs_AwWXI.mjs +106 -0
  520. package/dist/config-Cs_AwWXI.mjs.map +1 -0
  521. package/dist/connection-CiXgZyCY.mjs +36 -0
  522. package/dist/connection-CiXgZyCY.mjs.map +1 -0
  523. package/dist/content-Dt0Os_WQ.mjs +2109 -0
  524. package/dist/content-Dt0Os_WQ.mjs.map +1 -0
  525. package/dist/content-list-query-BK26u9Ly.d.mts +26 -0
  526. package/dist/content-list-query-BK26u9Ly.d.mts.map +1 -0
  527. package/dist/content-policy-BLDbNJOb.mjs +46 -0
  528. package/dist/content-policy-BLDbNJOb.mjs.map +1 -0
  529. package/dist/content-repair-CjwbLy4m.mjs +442 -0
  530. package/dist/content-repair-CjwbLy4m.mjs.map +1 -0
  531. package/dist/context-ErV7UdQY.mjs +2089 -0
  532. package/dist/context-ErV7UdQY.mjs.map +1 -0
  533. package/dist/credits-BRyjafiF.mjs +110 -0
  534. package/dist/credits-BRyjafiF.mjs.map +1 -0
  535. package/dist/cron-Bm5xa7tv.mjs +306 -0
  536. package/dist/cron-Bm5xa7tv.mjs.map +1 -0
  537. package/dist/dashboard-DVxQ5XiI.mjs +168 -0
  538. package/dist/dashboard-DVxQ5XiI.mjs.map +1 -0
  539. package/dist/database/migration-lock.d.mts +17 -4
  540. package/dist/database/migration-lock.d.mts.map +1 -1
  541. package/dist/database/migration-lock.mjs +33 -6
  542. package/dist/database/migration-lock.mjs.map +1 -1
  543. package/dist/db/index.d.mts +3 -3
  544. package/dist/db/index.mjs +2 -2
  545. package/dist/db/libsql-migrations.d.mts +1 -1
  546. package/dist/db/libsql-migrations.mjs +5 -5
  547. package/dist/db/libsql.d.mts +1 -1
  548. package/dist/db/postgres-migrations.d.mts +1 -1
  549. package/dist/db/postgres-migrations.mjs +5 -5
  550. package/dist/db/postgres.d.mts +1 -1
  551. package/dist/db/sqlite-migrations.d.mts +1 -1
  552. package/dist/db/sqlite-migrations.mjs +5 -5
  553. package/dist/db/sqlite.d.mts +1 -1
  554. package/dist/db/sqlite.mjs +1 -1
  555. package/dist/db-errors-unnO6yiZ.mjs +65 -0
  556. package/dist/db-errors-unnO6yiZ.mjs.map +1 -0
  557. package/dist/default-B9Tf2n94.mjs +81 -0
  558. package/dist/default-B9Tf2n94.mjs.map +1 -0
  559. package/dist/deferred-tasks-CpPEqsga.d.mts +9 -0
  560. package/dist/deferred-tasks-CpPEqsga.d.mts.map +1 -0
  561. package/dist/destination-DR3IHjmy.mjs +18 -0
  562. package/dist/destination-DR3IHjmy.mjs.map +1 -0
  563. package/dist/dev-typegen-ZeWYV8Jp.mjs +29 -0
  564. package/dist/dev-typegen-ZeWYV8Jp.mjs.map +1 -0
  565. package/dist/device-flow-BbYNZ9Xi.mjs +521 -0
  566. package/dist/device-flow-BbYNZ9Xi.mjs.map +1 -0
  567. package/dist/digest-DlBa7kJl.mjs +194 -0
  568. package/dist/digest-DlBa7kJl.mjs.map +1 -0
  569. package/dist/direct-executor-5T8gkhvA.mjs +117 -0
  570. package/dist/direct-executor-5T8gkhvA.mjs.map +1 -0
  571. package/dist/dist-DY0aOmAP.mjs +810 -0
  572. package/dist/dist-DY0aOmAP.mjs.map +1 -0
  573. package/dist/email-console-v3OM8It-.mjs +50 -0
  574. package/dist/email-console-v3OM8It-.mjs.map +1 -0
  575. package/dist/email-locale-CoZo-oZx.mjs +25 -0
  576. package/dist/email-locale-CoZo-oZx.mjs.map +1 -0
  577. package/dist/emdash-runtime-DwezbIqQ.mjs +4392 -0
  578. package/dist/emdash-runtime-DwezbIqQ.mjs.map +1 -0
  579. package/dist/enrich-C3XIJi0O.mjs +194 -0
  580. package/dist/enrich-C3XIJi0O.mjs.map +1 -0
  581. package/dist/entry-lock-CY7XpdSw.d.mts +4568 -0
  582. package/dist/entry-lock-CY7XpdSw.d.mts.map +1 -0
  583. package/dist/entry-lock-DDuWaAiP.mjs +1211 -0
  584. package/dist/entry-lock-DDuWaAiP.mjs.map +1 -0
  585. package/dist/entry-lock-D_Og9Gy3.mjs +163 -0
  586. package/dist/entry-lock-D_Og9Gy3.mjs.map +1 -0
  587. package/dist/entry-locks-Cp8_BcQQ.mjs +167 -0
  588. package/dist/entry-locks-Cp8_BcQQ.mjs.map +1 -0
  589. package/dist/env-types-Br8uywYA.mjs +38 -0
  590. package/dist/env-types-Br8uywYA.mjs.map +1 -0
  591. package/dist/error-CT2SsX5S.mjs +90 -0
  592. package/dist/error-CT2SsX5S.mjs.map +1 -0
  593. package/dist/errors-BMaCpLeS.mjs +479 -0
  594. package/dist/errors-BMaCpLeS.mjs.map +1 -0
  595. package/dist/errors-DlJwot7q.mjs +120 -0
  596. package/dist/errors-DlJwot7q.mjs.map +1 -0
  597. package/dist/escape-BfbDyuQ-.mjs +9 -0
  598. package/dist/escape-BfbDyuQ-.mjs.map +1 -0
  599. package/dist/fence-BOD3SxZG.mjs +162 -0
  600. package/dist/fence-BOD3SxZG.mjs.map +1 -0
  601. package/dist/field-defs-cache-C7sR7ZeU.mjs +77 -0
  602. package/dist/field-defs-cache-C7sR7ZeU.mjs.map +1 -0
  603. package/dist/field-map-C_rDXfdJ.mjs +84 -0
  604. package/dist/field-map-C_rDXfdJ.mjs.map +1 -0
  605. package/dist/focal-point-CgCcr1Ca.mjs +23 -0
  606. package/dist/focal-point-CgCcr1Ca.mjs.map +1 -0
  607. package/dist/fts-manager-BzFo0xx6.mjs +483 -0
  608. package/dist/fts-manager-BzFo0xx6.mjs.map +1 -0
  609. package/dist/gc-B_c3DPpi.mjs +75 -0
  610. package/dist/gc-B_c3DPpi.mjs.map +1 -0
  611. package/dist/hash-A-o2ZX8O.mjs +37 -0
  612. package/dist/hash-A-o2ZX8O.mjs.map +1 -0
  613. package/dist/hook-result-f8t7hIuu.d.mts +31 -0
  614. package/dist/hook-result-f8t7hIuu.d.mts.map +1 -0
  615. package/dist/hreflang-BpUK9Lcu.mjs +105 -0
  616. package/dist/hreflang-BpUK9Lcu.mjs.map +1 -0
  617. package/dist/hreflang-D07R-RbI.d.mts +50 -0
  618. package/dist/hreflang-D07R-RbI.d.mts.map +1 -0
  619. package/dist/http-route-dispatch-C2Ep2Uf6.mjs +342 -0
  620. package/dist/http-route-dispatch-C2Ep2Uf6.mjs.map +1 -0
  621. package/dist/identity-BivQ8wkV.mjs +35 -0
  622. package/dist/identity-BivQ8wkV.mjs.map +1 -0
  623. package/dist/import-B4UvHNJz.mjs +2126 -0
  624. package/dist/import-B4UvHNJz.mjs.map +1 -0
  625. package/dist/index-C37Ty40w.d.mts +623 -0
  626. package/dist/index-C37Ty40w.d.mts.map +1 -0
  627. package/dist/index.d.mts +23 -23
  628. package/dist/index.mjs +112 -108
  629. package/dist/install-finalization-BbYaB4wj.mjs +58 -0
  630. package/dist/install-finalization-BbYaB4wj.mjs.map +1 -0
  631. package/dist/json-recordset-BjYIWFkV.mjs +12 -0
  632. package/dist/json-recordset-BjYIWFkV.mjs.map +1 -0
  633. package/dist/json-schema-Cde7le0s.mjs +15 -0
  634. package/dist/json-schema-Cde7le0s.mjs.map +1 -0
  635. package/dist/keys-CusTXpw-.mjs +61 -0
  636. package/dist/keys-CusTXpw-.mjs.map +1 -0
  637. package/dist/kinds-DogmNB6n.mjs +974 -0
  638. package/dist/kinds-DogmNB6n.mjs.map +1 -0
  639. package/dist/lifecycle-BLCoCz4T.mjs +25 -0
  640. package/dist/lifecycle-BLCoCz4T.mjs.map +1 -0
  641. package/dist/load-Dds3KhXr.mjs +28 -0
  642. package/dist/load-Dds3KhXr.mjs.map +1 -0
  643. package/dist/loader-D4w4XE7q.mjs +1420 -0
  644. package/dist/loader-D4w4XE7q.mjs.map +1 -0
  645. package/dist/loops-IYgzQdQu.mjs +205 -0
  646. package/dist/loops-IYgzQdQu.mjs.map +1 -0
  647. package/dist/manifest-builder-CGF5kujD.mjs +196 -0
  648. package/dist/manifest-builder-CGF5kujD.mjs.map +1 -0
  649. package/dist/manifest-schema-B0BxPSjB.mjs +497 -0
  650. package/dist/manifest-schema-B0BxPSjB.mjs.map +1 -0
  651. package/dist/marketplace-DNvEGLqU.mjs +257 -0
  652. package/dist/marketplace-DNvEGLqU.mjs.map +1 -0
  653. package/dist/media/image-endpoint.d.mts +3 -2
  654. package/dist/media/image-endpoint.d.mts.map +1 -1
  655. package/dist/media/image-endpoint.mjs +17 -8
  656. package/dist/media/image-endpoint.mjs.map +1 -1
  657. package/dist/media/index.d.mts +1 -1
  658. package/dist/media/index.mjs +7 -6
  659. package/dist/media/index.mjs.map +1 -1
  660. package/dist/media/local-runtime.d.mts +14 -14
  661. package/dist/media/local-runtime.d.mts.map +1 -1
  662. package/dist/media/local-runtime.mjs +18 -8
  663. package/dist/media/local-runtime.mjs.map +1 -1
  664. package/dist/media-BL9MRrSG.mjs +294 -0
  665. package/dist/media-BL9MRrSG.mjs.map +1 -0
  666. package/dist/media-B_x5B9EA.mjs +373 -0
  667. package/dist/media-B_x5B9EA.mjs.map +1 -0
  668. package/dist/media-allowlist-CpmqBbIQ.mjs +45 -0
  669. package/dist/media-allowlist-CpmqBbIQ.mjs.map +1 -0
  670. package/dist/media-folders-CNs_A_B-.mjs +210 -0
  671. package/dist/media-folders-CNs_A_B-.mjs.map +1 -0
  672. package/dist/media-qTTHVkls.mjs +416 -0
  673. package/dist/media-qTTHVkls.mjs.map +1 -0
  674. package/dist/media-url-GJboA1fl.mjs +43 -0
  675. package/dist/media-url-GJboA1fl.mjs.map +1 -0
  676. package/dist/media-usage-ClWgrX0d.mjs +282 -0
  677. package/dist/media-usage-ClWgrX0d.mjs.map +1 -0
  678. package/dist/media-usage-activation-B8Fjtq0h.mjs +78 -0
  679. package/dist/media-usage-activation-B8Fjtq0h.mjs.map +1 -0
  680. package/dist/media-usage-work-L8-Au4j-.mjs +1036 -0
  681. package/dist/media-usage-work-L8-Au4j-.mjs.map +1 -0
  682. package/dist/media-usage-work-LXgze5j9.mjs +151 -0
  683. package/dist/media-usage-work-LXgze5j9.mjs.map +1 -0
  684. package/dist/menus-BAxcbsbv.mjs +818 -0
  685. package/dist/menus-BAxcbsbv.mjs.map +1 -0
  686. package/dist/menus-BI6oBXco.mjs +92 -0
  687. package/dist/menus-BI6oBXco.mjs.map +1 -0
  688. package/dist/menus-fvGFd4m6.mjs +3725 -0
  689. package/dist/menus-fvGFd4m6.mjs.map +1 -0
  690. package/dist/migrations/index.d.mts +1 -1
  691. package/dist/migrations/index.d.mts.map +1 -1
  692. package/dist/migrations/index.mjs +4 -4
  693. package/dist/mime-DwhtRyUt.mjs +81 -0
  694. package/dist/mime-DwhtRyUt.mjs.map +1 -0
  695. package/dist/mode-DIDSUwuN.mjs +23 -0
  696. package/dist/mode-DIDSUwuN.mjs.map +1 -0
  697. package/dist/node-sqlite-compat-Ddr_mlR9.mjs +63 -0
  698. package/dist/node-sqlite-compat-Ddr_mlR9.mjs.map +1 -0
  699. package/dist/normalize-Ip_hFAm8.mjs +216 -0
  700. package/dist/normalize-Ip_hFAm8.mjs.map +1 -0
  701. package/dist/oauth-authorization-CcMgeT8R.mjs +274 -0
  702. package/dist/oauth-authorization-CcMgeT8R.mjs.map +1 -0
  703. package/dist/oauth-clients-C_osi0PU.mjs +266 -0
  704. package/dist/oauth-clients-C_osi0PU.mjs.map +1 -0
  705. package/dist/oauth-state-store-DGLP-6CK.mjs +50 -0
  706. package/dist/oauth-state-store-DGLP-6CK.mjs.map +1 -0
  707. package/dist/oauth-user-lookup-z77Ee0Hm.mjs +26 -0
  708. package/dist/oauth-user-lookup-z77Ee0Hm.mjs.map +1 -0
  709. package/dist/object-cache/memory.d.mts +1 -1
  710. package/dist/object-cache-EjasjtoQ.mjs +586 -0
  711. package/dist/object-cache-EjasjtoQ.mjs.map +1 -0
  712. package/dist/options-CmUpkyKW.d.mts +81 -0
  713. package/dist/options-CmUpkyKW.d.mts.map +1 -0
  714. package/dist/ownership-DCk5NutQ.mjs +12 -0
  715. package/dist/ownership-DCk5NutQ.mjs.map +1 -0
  716. package/dist/page/index.d.mts +2 -2
  717. package/dist/page/index.mjs +14 -7
  718. package/dist/page/index.mjs.map +1 -1
  719. package/dist/parse-2W-E2f7w.mjs +81 -0
  720. package/dist/parse-2W-E2f7w.mjs.map +1 -0
  721. package/dist/parse-6pN8Xqg5.d.mts +176 -0
  722. package/dist/parse-6pN8Xqg5.d.mts.map +1 -0
  723. package/dist/passkey-config-DTTZB6EI.mjs +46 -0
  724. package/dist/passkey-config-DTTZB6EI.mjs.map +1 -0
  725. package/dist/paths-CQA62503.mjs +77 -0
  726. package/dist/paths-CQA62503.mjs.map +1 -0
  727. package/dist/patterns-CryGz_EV.mjs +159 -0
  728. package/dist/patterns-CryGz_EV.mjs.map +1 -0
  729. package/dist/placeholder-BlfXkucE.d.mts +313 -0
  730. package/dist/placeholder-BlfXkucE.d.mts.map +1 -0
  731. package/dist/plan-B95eiwnF.mjs +135 -0
  732. package/dist/plan-B95eiwnF.mjs.map +1 -0
  733. package/dist/plugin-test-runtime.d.mts +14 -14
  734. package/dist/plugin-test-runtime.d.mts.map +1 -1
  735. package/dist/plugin-test-runtime.mjs +121 -117
  736. package/dist/plugin-tool-name-BDA7m4Xa.mjs +27 -0
  737. package/dist/plugin-tool-name-BDA7m4Xa.mjs.map +1 -0
  738. package/dist/plugin-types.d.mts +2 -2
  739. package/dist/plugin-utils.d.mts +12 -12
  740. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  741. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  742. package/dist/plugins/adapt-sandbox-entry.mjs +9 -8
  743. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  744. package/dist/plugins/host.d.mts +5 -5
  745. package/dist/plugins/host.mjs +57 -51
  746. package/dist/plugins-BhxLJ008.mjs +261 -0
  747. package/dist/plugins-BhxLJ008.mjs.map +1 -0
  748. package/dist/policy-DOJ2sPqB.mjs +53 -0
  749. package/dist/policy-DOJ2sPqB.mjs.map +1 -0
  750. package/dist/portable-text-RCMpCj47.mjs +311 -0
  751. package/dist/portable-text-RCMpCj47.mjs.map +1 -0
  752. package/dist/preview-DFwL5APO.mjs +107 -0
  753. package/dist/preview-DFwL5APO.mjs.map +1 -0
  754. package/dist/protocol-B-ztxp_y.d.mts +65 -0
  755. package/dist/protocol-B-ztxp_y.d.mts.map +1 -0
  756. package/dist/public-plugin-api-routes-ik4fPZMv.mjs +316 -0
  757. package/dist/public-plugin-api-routes-ik4fPZMv.mjs.map +1 -0
  758. package/dist/public-submission-C5JZIykp.mjs +251 -0
  759. package/dist/public-submission-C5JZIykp.mjs.map +1 -0
  760. package/dist/public-url-CQwzRljH.mjs +101 -0
  761. package/dist/public-url-CQwzRljH.mjs.map +1 -0
  762. package/dist/query-BFHjCzSh.mjs +37 -0
  763. package/dist/query-BFHjCzSh.mjs.map +1 -0
  764. package/dist/query-DuwyFr5Z.mjs +41 -0
  765. package/dist/query-DuwyFr5Z.mjs.map +1 -0
  766. package/dist/query-eR_Nz70M.mjs +1157 -0
  767. package/dist/query-eR_Nz70M.mjs.map +1 -0
  768. package/dist/range-BQWPjWgQ.mjs +51 -0
  769. package/dist/range-BQWPjWgQ.mjs.map +1 -0
  770. package/dist/rate-limit-mPKeQ3sm.mjs +127 -0
  771. package/dist/rate-limit-mPKeQ3sm.mjs.map +1 -0
  772. package/dist/receipt-CmUpyuW5.mjs +43 -0
  773. package/dist/receipt-CmUpyuW5.mjs.map +1 -0
  774. package/dist/redirect-BtiMkehU.mjs +19 -0
  775. package/dist/redirect-BtiMkehU.mjs.map +1 -0
  776. package/dist/redirect-DcmNMvOs.mjs +423 -0
  777. package/dist/redirect-DcmNMvOs.mjs.map +1 -0
  778. package/dist/redirect-paths-K5i3xYfR.mjs +36 -0
  779. package/dist/redirect-paths-K5i3xYfR.mjs.map +1 -0
  780. package/dist/redirects-BA_TvtuH.mjs +148 -0
  781. package/dist/redirects-BA_TvtuH.mjs.map +1 -0
  782. package/dist/redirects-BIrRvgn4.mjs +446 -0
  783. package/dist/redirects-BIrRvgn4.mjs.map +1 -0
  784. package/dist/registry/testing.mjs +3 -3
  785. package/dist/registry-DymfZkAN.mjs +8374 -0
  786. package/dist/registry-DymfZkAN.mjs.map +1 -0
  787. package/dist/relations-DrEs3Sc1.mjs +789 -0
  788. package/dist/relations-DrEs3Sc1.mjs.map +1 -0
  789. package/dist/request-cache-5z2WzWmh.mjs +104 -0
  790. package/dist/request-cache-5z2WzWmh.mjs.map +1 -0
  791. package/dist/request-context.d.mts +12 -1
  792. package/dist/request-context.d.mts.map +1 -1
  793. package/dist/request-context.mjs.map +1 -1
  794. package/dist/request-meta-o8RIf9pa.mjs +141 -0
  795. package/dist/request-meta-o8RIf9pa.mjs.map +1 -0
  796. package/dist/resolve-CVy9xgy_.mjs +102 -0
  797. package/dist/resolve-CVy9xgy_.mjs.map +1 -0
  798. package/dist/resolve-DdNXBJSr.mjs +199 -0
  799. package/dist/resolve-DdNXBJSr.mjs.map +1 -0
  800. package/dist/revision-Dx7Uth1X.mjs +374 -0
  801. package/dist/revision-Dx7Uth1X.mjs.map +1 -0
  802. package/dist/route-cache-DAG5dPhh.mjs +20 -0
  803. package/dist/route-cache-DAG5dPhh.mjs.map +1 -0
  804. package/dist/route-wire-Xbsu8Vih.mjs +197 -0
  805. package/dist/route-wire-Xbsu8Vih.mjs.map +1 -0
  806. package/dist/routes-YQkSOsws.mjs +272 -0
  807. package/dist/routes-YQkSOsws.mjs.map +1 -0
  808. package/dist/runner-CLorw5vo.mjs +6669 -0
  809. package/dist/runner-CLorw5vo.mjs.map +1 -0
  810. package/dist/runner-g1A9P-wD.d.mts +73 -0
  811. package/dist/runner-g1A9P-wD.d.mts.map +1 -0
  812. package/dist/runtime.d.mts +13 -13
  813. package/dist/runtime.mjs +6 -4
  814. package/dist/runtime.mjs.map +1 -1
  815. package/dist/schema/project-env-types.mjs +49 -43
  816. package/dist/schema/project-env-types.mjs.map +1 -1
  817. package/dist/schema-Bss8qImF.mjs +13 -0
  818. package/dist/schema-Bss8qImF.mjs.map +1 -0
  819. package/dist/schema-C036pqEw.mjs +815 -0
  820. package/dist/schema-C036pqEw.mjs.map +1 -0
  821. package/dist/scopes-C_SoYl9x.mjs +34 -0
  822. package/dist/scopes-C_SoYl9x.mjs.map +1 -0
  823. package/dist/search-uNqCgePJ.mjs +450 -0
  824. package/dist/search-uNqCgePJ.mjs.map +1 -0
  825. package/dist/sections-BLusMa96.mjs +346 -0
  826. package/dist/sections-BLusMa96.mjs.map +1 -0
  827. package/dist/seed/index.d.mts +2 -2
  828. package/dist/seed/index.mjs +47 -41
  829. package/dist/seo/index.d.mts +3 -3
  830. package/dist/seo/index.mjs +32 -26
  831. package/dist/seo/index.mjs.map +1 -1
  832. package/dist/seo-BodxIpws.mjs +188 -0
  833. package/dist/seo-BodxIpws.mjs.map +1 -0
  834. package/dist/seo-DaMYIQY8.mjs +133 -0
  835. package/dist/seo-DaMYIQY8.mjs.map +1 -0
  836. package/dist/service-BuM1BRsA.mjs +150 -0
  837. package/dist/service-BuM1BRsA.mjs.map +1 -0
  838. package/dist/session-user-2DpQDMKw.mjs +61 -0
  839. package/dist/session-user-2DpQDMKw.mjs.map +1 -0
  840. package/dist/settings-B3ZmPF_8.mjs +73 -0
  841. package/dist/settings-B3ZmPF_8.mjs.map +1 -0
  842. package/dist/settings-P5hwPX6_.mjs +66 -0
  843. package/dist/settings-P5hwPX6_.mjs.map +1 -0
  844. package/dist/settings-yIqoN-Ok.mjs +519 -0
  845. package/dist/settings-yIqoN-Ok.mjs.map +1 -0
  846. package/dist/setup-complete-eu6MUQnt.mjs +65 -0
  847. package/dist/setup-complete-eu6MUQnt.mjs.map +1 -0
  848. package/dist/setup-nonce-CyPOapqY.mjs +25 -0
  849. package/dist/setup-nonce-CyPOapqY.mjs.map +1 -0
  850. package/dist/site-domain-8lEJl_0U.mjs +131 -0
  851. package/dist/site-domain-8lEJl_0U.mjs.map +1 -0
  852. package/dist/site-settings-uPkW0e6o.mjs +50 -0
  853. package/dist/site-settings-uPkW0e6o.mjs.map +1 -0
  854. package/dist/site-url-25SGVXwL.mjs +45 -0
  855. package/dist/site-url-25SGVXwL.mjs.map +1 -0
  856. package/dist/sitemap-name-DTK7CYnY.mjs +26 -0
  857. package/dist/sitemap-name-DTK7CYnY.mjs.map +1 -0
  858. package/dist/slug-BEDl2IJY.mjs +16 -0
  859. package/dist/slug-BEDl2IJY.mjs.map +1 -0
  860. package/dist/slugify-BDEG9pLk.mjs +22 -0
  861. package/dist/slugify-BDEG9pLk.mjs.map +1 -0
  862. package/dist/snapshot-CvkIBRLY.mjs +414 -0
  863. package/dist/snapshot-CvkIBRLY.mjs.map +1 -0
  864. package/dist/ssrf-mcCKMH6B.mjs +406 -0
  865. package/dist/ssrf-mcCKMH6B.mjs.map +1 -0
  866. package/dist/stage-BQfGzGOy.mjs +662 -0
  867. package/dist/stage-BQfGzGOy.mjs.map +1 -0
  868. package/dist/staged-B5vQGeSf.mjs +686 -0
  869. package/dist/staged-B5vQGeSf.mjs.map +1 -0
  870. package/dist/state-dO6t6OxV.mjs +178 -0
  871. package/dist/state-dO6t6OxV.mjs.map +1 -0
  872. package/dist/status-DSURZwKS.mjs +30 -0
  873. package/dist/status-DSURZwKS.mjs.map +1 -0
  874. package/dist/storage/local.d.mts +1 -1
  875. package/dist/storage/local.mjs +3 -3
  876. package/dist/storage/s3.d.mts +1 -1
  877. package/dist/storage/s3.mjs +1 -1
  878. package/dist/storage-query-Cy0SZ8iG.d.mts +1619 -0
  879. package/dist/storage-query-Cy0SZ8iG.d.mts.map +1 -0
  880. package/dist/tar-DWzcUZ_Q.mjs +449 -0
  881. package/dist/tar-DWzcUZ_Q.mjs.map +1 -0
  882. package/dist/target-C9htUbrT.mjs +27 -0
  883. package/dist/target-C9htUbrT.mjs.map +1 -0
  884. package/dist/taxonomies-By2aGvq2.mjs +729 -0
  885. package/dist/taxonomies-By2aGvq2.mjs.map +1 -0
  886. package/dist/taxonomies-CVRd_jz0.mjs +937 -0
  887. package/dist/taxonomies-CVRd_jz0.mjs.map +1 -0
  888. package/dist/taxonomy-BG_xu2Qf.mjs +563 -0
  889. package/dist/taxonomy-BG_xu2Qf.mjs.map +1 -0
  890. package/dist/tokens-U5vzgSrM.mjs +171 -0
  891. package/dist/tokens-U5vzgSrM.mjs.map +1 -0
  892. package/dist/transaction-CkoQ5wqQ.mjs +29 -0
  893. package/dist/transaction-CkoQ5wqQ.mjs.map +1 -0
  894. package/dist/transfer-DA0OSfaT.mjs +8873 -0
  895. package/dist/transfer-DA0OSfaT.mjs.map +1 -0
  896. package/dist/transfer-Pyf3d7ka.mjs +166 -0
  897. package/dist/transfer-Pyf3d7ka.mjs.map +1 -0
  898. package/dist/transfer-download-cX7SuWEy.mjs +33 -0
  899. package/dist/transfer-download-cX7SuWEy.mjs.map +1 -0
  900. package/dist/transformations-DczubD4j.mjs +196 -0
  901. package/dist/transformations-DczubD4j.mjs.map +1 -0
  902. package/dist/transport-Dm5QzpT_.d.mts +42 -0
  903. package/dist/transport-Dm5QzpT_.d.mts.map +1 -0
  904. package/dist/transport-DtIrjEFO.mjs +137 -0
  905. package/dist/transport-DtIrjEFO.mjs.map +1 -0
  906. package/dist/trusted-proxy-CDRd5Kmw.mjs +51 -0
  907. package/dist/trusted-proxy-CDRd5Kmw.mjs.map +1 -0
  908. package/dist/turnstile-Ct5YuFNY.mjs +58 -0
  909. package/dist/turnstile-Ct5YuFNY.mjs.map +1 -0
  910. package/dist/types-Bgujop4S.d.mts +374 -0
  911. package/dist/types-Bgujop4S.d.mts.map +1 -0
  912. package/dist/types-BirHUEXt.mjs +18 -0
  913. package/dist/types-BirHUEXt.mjs.map +1 -0
  914. package/dist/types-BqJgTL_y.d.mts +293 -0
  915. package/dist/types-BqJgTL_y.d.mts.map +1 -0
  916. package/dist/types-C-lrOt9T.d.mts +87 -0
  917. package/dist/types-C-lrOt9T.d.mts.map +1 -0
  918. package/dist/types-CCEHAhOv.d.mts +916 -0
  919. package/dist/types-CCEHAhOv.d.mts.map +1 -0
  920. package/dist/types-CLVwYRBr.d.mts +227 -0
  921. package/dist/types-CLVwYRBr.d.mts.map +1 -0
  922. package/dist/types-C_asjp1J.mjs +201 -0
  923. package/dist/types-C_asjp1J.mjs.map +1 -0
  924. package/dist/types-CadaL_k8.d.mts +366 -0
  925. package/dist/types-CadaL_k8.d.mts.map +1 -0
  926. package/dist/types-DVbTb4Hk.mjs +77 -0
  927. package/dist/types-DVbTb4Hk.mjs.map +1 -0
  928. package/dist/types-Ddku19Zw.d.mts +209 -0
  929. package/dist/types-Ddku19Zw.d.mts.map +1 -0
  930. package/dist/types-DwhEvIVb.mjs +133 -0
  931. package/dist/types-DwhEvIVb.mjs.map +1 -0
  932. package/dist/types-FIiGQ3PE.mjs +16 -0
  933. package/dist/types-FIiGQ3PE.mjs.map +1 -0
  934. package/dist/types-OauzCOY0.mjs +37 -0
  935. package/dist/types-OauzCOY0.mjs.map +1 -0
  936. package/dist/types-mQGTpP-4.d.mts +1741 -0
  937. package/dist/types-mQGTpP-4.d.mts.map +1 -0
  938. package/dist/types-nbjz3Mgm.d.mts +125 -0
  939. package/dist/types-nbjz3Mgm.d.mts.map +1 -0
  940. package/dist/update-check-hW32-0pf.mjs +161 -0
  941. package/dist/update-check-hW32-0pf.mjs.map +1 -0
  942. package/dist/upload-attempts-Bpik1TLF.mjs +32 -0
  943. package/dist/upload-attempts-Bpik1TLF.mjs.map +1 -0
  944. package/dist/url-DTfGDJhI.mjs +104 -0
  945. package/dist/url-DTfGDJhI.mjs.map +1 -0
  946. package/dist/url-pattern-CJeCyNij.mjs +41 -0
  947. package/dist/url-pattern-CJeCyNij.mjs.map +1 -0
  948. package/dist/user-nQInBZbE.mjs +171 -0
  949. package/dist/user-nQInBZbE.mjs.map +1 -0
  950. package/dist/utils-govudc_U.mjs +442 -0
  951. package/dist/utils-govudc_U.mjs.map +1 -0
  952. package/dist/validate-BxLvcDYh.mjs +524 -0
  953. package/dist/validate-BxLvcDYh.mjs.map +1 -0
  954. package/dist/validate-mnoVfASU.d.mts +468 -0
  955. package/dist/validate-mnoVfASU.d.mts.map +1 -0
  956. package/dist/validation-DQDEvh87.mjs +221 -0
  957. package/dist/validation-DQDEvh87.mjs.map +1 -0
  958. package/dist/version-BOFfLiVT.mjs +49 -0
  959. package/dist/version-BOFfLiVT.mjs.map +1 -0
  960. package/dist/version-Dcvx_C9g.mjs +7 -0
  961. package/dist/version-Dcvx_C9g.mjs.map +1 -0
  962. package/dist/version-DzTJ3gD7.mjs +9 -0
  963. package/dist/version-DzTJ3gD7.mjs.map +1 -0
  964. package/dist/video-BX7AI5nJ.mjs +54 -0
  965. package/dist/video-BX7AI5nJ.mjs.map +1 -0
  966. package/dist/virtual-modules-CU29aip9.mjs +515 -0
  967. package/dist/virtual-modules-CU29aip9.mjs.map +1 -0
  968. package/dist/widgets-HIeFmZxt.mjs +121 -0
  969. package/dist/widgets-HIeFmZxt.mjs.map +1 -0
  970. package/dist/wxr-taxonomies-Dy2i2ON3.d.mts +34 -0
  971. package/dist/wxr-taxonomies-Dy2i2ON3.d.mts.map +1 -0
  972. package/dist/wxr-taxonomies-DyOGhl8W.mjs +454 -0
  973. package/dist/wxr-taxonomies-DyOGhl8W.mjs.map +1 -0
  974. package/dist/zod-generator-VxCPVDpo.mjs +425 -0
  975. package/dist/zod-generator-VxCPVDpo.mjs.map +1 -0
  976. package/package.json +7 -6
  977. package/src/api/authorize.ts +42 -0
  978. package/src/api/handlers/bulk-tag.ts +11 -3
  979. package/src/api/handlers/bylines.ts +6 -2
  980. package/src/api/handlers/content.ts +107 -7
  981. package/src/api/handlers/dashboard.ts +44 -14
  982. package/src/api/handlers/manifest.ts +1 -0
  983. package/src/api/handlers/menus.ts +24 -10
  984. package/src/api/handlers/plugins.ts +1 -0
  985. package/src/api/handlers/relations.ts +15 -1
  986. package/src/api/handlers/revision.ts +6 -2
  987. package/src/api/handlers/site-domain.ts +26 -10
  988. package/src/api/handlers/taxonomies.ts +27 -17
  989. package/src/api/schemas/settings.ts +2 -0
  990. package/src/api/types.ts +2 -0
  991. package/src/astro/image-endpoint.ts +23 -2
  992. package/src/astro/integration/dev-scheduler-bridge.ts +91 -0
  993. package/src/astro/integration/index.ts +48 -1
  994. package/src/astro/integration/routes.ts +8 -0
  995. package/src/astro/integration/runtime.ts +2 -1
  996. package/src/astro/integration/virtual-modules.ts +9 -16
  997. package/src/astro/integration/vite-config.ts +20 -23
  998. package/src/astro/middleware/auth.ts +3 -1
  999. package/src/astro/middleware/redirect.ts +202 -78
  1000. package/src/astro/middleware/request-context.ts +1 -0
  1001. package/src/astro/middleware.ts +35 -7
  1002. package/src/astro/prefetch.ts +7 -5
  1003. package/src/astro/public-plugin-api-routes.ts +10 -2
  1004. package/src/astro/routes/api/admin/plugins/registry/artifact.ts +1 -1
  1005. package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +2 -1
  1006. package/src/astro/routes/api/content/[collection]/[id]/duplicate.ts +1 -5
  1007. package/src/astro/routes/api/content/[collection]/[id]/lock.ts +2 -2
  1008. package/src/astro/routes/api/content/[collection]/[id]/permanent.ts +2 -1
  1009. package/src/astro/routes/api/content/[collection]/[id]/publish.ts +2 -1
  1010. package/src/astro/routes/api/content/[collection]/[id]/restore.ts +2 -1
  1011. package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +3 -2
  1012. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +9 -5
  1013. package/src/astro/routes/api/content/[collection]/[id]/translations.ts +14 -1
  1014. package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +2 -1
  1015. package/src/astro/routes/api/content/[collection]/[id].ts +18 -6
  1016. package/src/astro/routes/api/content/[collection]/index.ts +1 -5
  1017. package/src/astro/routes/api/dashboard.ts +6 -1
  1018. package/src/astro/routes/api/dev/scheduled-tasks.ts +20 -0
  1019. package/src/astro/routes/api/import/wordpress/analyze.ts +1 -16
  1020. package/src/astro/routes/api/import/wordpress/execute.ts +8 -3
  1021. package/src/astro/routes/api/import/wordpress-plugin/analyze.ts +4 -1
  1022. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +34 -5
  1023. package/src/astro/routes/api/media/file/[...key].ts +13 -3
  1024. package/src/astro/routes/api/menus/[name]/items/[id].ts +3 -2
  1025. package/src/astro/routes/api/menus/[name]/items.ts +2 -1
  1026. package/src/astro/routes/api/menus/[name]/reorder.ts +2 -1
  1027. package/src/astro/routes/api/menus/[name]/translations.ts +2 -1
  1028. package/src/astro/routes/api/menus/[name].ts +3 -2
  1029. package/src/astro/routes/api/menus/index.ts +2 -1
  1030. package/src/astro/routes/api/redirects/[id].ts +15 -2
  1031. package/src/astro/routes/api/redirects/index.ts +5 -1
  1032. package/src/astro/routes/api/settings/domain.ts +2 -1
  1033. package/src/astro/routes/api/settings.ts +2 -1
  1034. package/src/astro/routes/api/setup/admin-verify.ts +7 -1
  1035. package/src/astro/routes/api/taxonomies/[name]/reorder.ts +2 -1
  1036. package/src/astro/routes/api/taxonomies/[name]/terms/[slug]/translations.ts +2 -1
  1037. package/src/astro/routes/api/taxonomies/[name]/terms/[slug].ts +3 -2
  1038. package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +2 -1
  1039. package/src/astro/routes/api/taxonomies/[name].ts +3 -2
  1040. package/src/astro/routes/api/taxonomies/index.ts +2 -1
  1041. package/src/astro/routes/api/widget-areas/[name]/reorder.ts +2 -1
  1042. package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +3 -2
  1043. package/src/astro/routes/api/widget-areas/[name]/widgets.ts +2 -1
  1044. package/src/astro/routes/api/widget-areas/[name].ts +2 -1
  1045. package/src/astro/routes/api/widget-areas/index.ts +2 -1
  1046. package/src/astro/routes/robots.txt.ts +33 -2
  1047. package/src/astro/types.ts +10 -1
  1048. package/src/auth/types.ts +10 -4
  1049. package/src/cache/redirect-paths.ts +56 -0
  1050. package/src/cache/route-cache.ts +22 -0
  1051. package/src/cli/commands/export-seed.ts +6 -4
  1052. package/src/cli/commands/import/wordpress.ts +3 -27
  1053. package/src/cli/commands/login.ts +37 -47
  1054. package/src/cli/commands/migrate.ts +36 -4
  1055. package/src/cli/commands/seed.ts +18 -8
  1056. package/src/cli/wxr/parser.ts +2 -2
  1057. package/src/client/index.ts +13 -2
  1058. package/src/client/portable-text.ts +21 -7
  1059. package/src/client/transport.ts +11 -7
  1060. package/src/comments/query.ts +8 -2
  1061. package/src/components/CommentForm.astro +2 -2
  1062. package/src/components/Comments.astro +1 -1
  1063. package/src/components/EmDashImage.astro +14 -2
  1064. package/src/components/InlinePortableTextEditor.tsx +156 -1326
  1065. package/src/components/inline-block-types.ts +278 -0
  1066. package/src/components/inline-bubble-menu.tsx +696 -0
  1067. package/src/components/inline-editor-ui.tsx +1192 -0
  1068. package/src/components/inline-image.tsx +722 -0
  1069. package/src/components/inline-media-picker.tsx +1221 -0
  1070. package/src/components/inline-slash-menu.tsx +556 -0
  1071. package/src/database/collection-cleanup.ts +30 -0
  1072. package/src/database/datetime-storage.ts +337 -60
  1073. package/src/database/migration-lock.ts +43 -7
  1074. package/src/database/migrations/content-sized.ts +82 -0
  1075. package/src/database/migrations/policy.ts +28 -2
  1076. package/src/database/migrations/runner.ts +48 -0
  1077. package/src/database/repositories/byline.ts +73 -17
  1078. package/src/database/repositories/comment.ts +17 -7
  1079. package/src/database/repositories/content.ts +82 -20
  1080. package/src/database/repositories/menu.ts +77 -11
  1081. package/src/database/repositories/plugin-storage.ts +109 -8
  1082. package/src/database/repositories/revision.ts +24 -6
  1083. package/src/database/repositories/taxonomy-def.ts +9 -2
  1084. package/src/database/repositories/taxonomy.ts +47 -14
  1085. package/src/database/repositories/types.ts +76 -7
  1086. package/src/emdash-runtime.ts +213 -170
  1087. package/src/fields/image.ts +1 -0
  1088. package/src/i18n/config.ts +58 -10
  1089. package/src/i18n/normalize.ts +16 -2
  1090. package/src/i18n/query.ts +47 -0
  1091. package/src/i18n/resolve.ts +8 -3
  1092. package/src/import/index.ts +1 -0
  1093. package/src/import/registry.ts +17 -0
  1094. package/src/import/sources/wordpress-plugin.ts +151 -9
  1095. package/src/import/types.ts +3 -0
  1096. package/src/import/utils.ts +5 -0
  1097. package/src/import/wxr-taxonomies.ts +3 -2
  1098. package/src/loader.ts +116 -24
  1099. package/src/mcp/json-schema.ts +14 -0
  1100. package/src/mcp/plugin-tool-name.ts +36 -0
  1101. package/src/mcp/server.ts +102 -16
  1102. package/src/media/caption.ts +30 -0
  1103. package/src/media/image-endpoint.ts +13 -6
  1104. package/src/media/local-runtime.ts +3 -0
  1105. package/src/media/normalize.ts +15 -8
  1106. package/src/media/responsive.ts +12 -2
  1107. package/src/media/types.ts +16 -3
  1108. package/src/media/usage/collection-deletion.ts +4 -0
  1109. package/src/menus/index.ts +21 -11
  1110. package/src/migrations/direct-executor.ts +42 -12
  1111. package/src/migrations/manifest.ts +1 -0
  1112. package/src/migrations/protocol.ts +6 -2
  1113. package/src/plugins/adapt-sandbox-entry.ts +16 -6
  1114. package/src/plugins/byline-access.ts +3 -1
  1115. package/src/plugins/context.ts +1 -2
  1116. package/src/plugins/state.ts +5 -8
  1117. package/src/plugins/storage-indexes.ts +7 -3
  1118. package/src/query.ts +74 -23
  1119. package/src/redirects/artifacts.ts +39 -5
  1120. package/src/redirects/cache.ts +34 -2
  1121. package/src/references/field-map.ts +6 -4
  1122. package/src/request-context.ts +8 -0
  1123. package/src/schema/block-values.ts +80 -17
  1124. package/src/schema/collection-slugs-cache.ts +31 -17
  1125. package/src/schema/registry.ts +18 -1
  1126. package/src/schema/zod-generator.ts +2 -1
  1127. package/src/search/fts-manager.ts +98 -28
  1128. package/src/search/query.ts +34 -65
  1129. package/src/seed/apply.ts +222 -94
  1130. package/src/seed/types.ts +3 -1
  1131. package/src/settings/index.ts +155 -35
  1132. package/src/settings/types.ts +2 -0
  1133. package/src/settings/version.ts +54 -0
  1134. package/src/taxonomies/index.ts +95 -52
  1135. package/src/taxonomies/term-counts.ts +2 -1
  1136. package/src/utils/db-errors.ts +15 -0
  1137. package/src/virtual-modules.d.ts +1 -0
  1138. package/src/visual-editing/toolbar.ts +46 -12
  1139. package/dist/action-token-BdWad2YG.mjs +0 -26
  1140. package/dist/action-token-BdWad2YG.mjs.map +0 -1
  1141. package/dist/activation-xomsCMJg.mjs +0 -387
  1142. package/dist/activation-xomsCMJg.mjs.map +0 -1
  1143. package/dist/adapters-B4-nbElt.d.mts +0 -173
  1144. package/dist/adapters-B4-nbElt.d.mts.map +0 -1
  1145. package/dist/allowed-origins-CLpHGGlc.mjs +0 -116
  1146. package/dist/allowed-origins-CLpHGGlc.mjs.map +0 -1
  1147. package/dist/api-DBw_IWoi.mjs +0 -5024
  1148. package/dist/api-DBw_IWoi.mjs.map +0 -1
  1149. package/dist/api-tokens-B0ZipcZ-.mjs +0 -173
  1150. package/dist/api-tokens-B0ZipcZ-.mjs.map +0 -1
  1151. package/dist/apply-Cx48saFC.mjs +0 -1680
  1152. package/dist/apply-Cx48saFC.mjs.map +0 -1
  1153. package/dist/approvals-BXgtXA2s.mjs +0 -460
  1154. package/dist/approvals-BXgtXA2s.mjs.map +0 -1
  1155. package/dist/artifact-fetch-DsRczRGG.mjs +0 -659
  1156. package/dist/artifact-fetch-DsRczRGG.mjs.map +0 -1
  1157. package/dist/artifacts-D-O-qj9C.mjs +0 -307
  1158. package/dist/artifacts-D-O-qj9C.mjs.map +0 -1
  1159. package/dist/audit-CCH3MA4Y.mjs +0 -127
  1160. package/dist/audit-CCH3MA4Y.mjs.map +0 -1
  1161. package/dist/authoritative-records-Dcs7l2H5.mjs +0 -5183
  1162. package/dist/authoritative-records-Dcs7l2H5.mjs.map +0 -1
  1163. package/dist/authorize-TdIGpRSE.mjs +0 -49
  1164. package/dist/authorize-TdIGpRSE.mjs.map +0 -1
  1165. package/dist/backup-CZt5Mzwx.mjs +0 -246
  1166. package/dist/backup-CZt5Mzwx.mjs.map +0 -1
  1167. package/dist/block-types-DHnkzE6u.mjs +0 -132
  1168. package/dist/block-types-DHnkzE6u.mjs.map +0 -1
  1169. package/dist/block-values-C4N_F2-G.mjs +0 -175
  1170. package/dist/block-values-C4N_F2-G.mjs.map +0 -1
  1171. package/dist/byline-BmVKOQ8l.mjs +0 -909
  1172. package/dist/byline-BmVKOQ8l.mjs.map +0 -1
  1173. package/dist/byline-fields-B8SDs3M_.mjs +0 -123
  1174. package/dist/byline-fields-B8SDs3M_.mjs.map +0 -1
  1175. package/dist/byline-fields-Bze3ZdAw.mjs +0 -280
  1176. package/dist/byline-fields-Bze3ZdAw.mjs.map +0 -1
  1177. package/dist/byline-registry-dvt4N3xV.mjs +0 -406
  1178. package/dist/byline-registry-dvt4N3xV.mjs.map +0 -1
  1179. package/dist/bylines-CHhR28r9.mjs +0 -150
  1180. package/dist/bylines-CHhR28r9.mjs.map +0 -1
  1181. package/dist/bylines-DZS4OflA.mjs +0 -234
  1182. package/dist/bylines-DZS4OflA.mjs.map +0 -1
  1183. package/dist/cache-x0z8t_m9.mjs +0 -133
  1184. package/dist/cache-x0z8t_m9.mjs.map +0 -1
  1185. package/dist/canonical-BUcKRYpG.mjs +0 -174
  1186. package/dist/canonical-BUcKRYpG.mjs.map +0 -1
  1187. package/dist/capture-triggers-C9JKoIdT.mjs +0 -362
  1188. package/dist/capture-triggers-C9JKoIdT.mjs.map +0 -1
  1189. package/dist/challenge-store-BHgdPVze.mjs +0 -51
  1190. package/dist/challenge-store-BHgdPVze.mjs.map +0 -1
  1191. package/dist/checksum-BYR5i7qe.mjs +0 -162
  1192. package/dist/checksum-BYR5i7qe.mjs.map +0 -1
  1193. package/dist/chrome-tags-BIKBMZYO.mjs +0 -24
  1194. package/dist/chrome-tags-BIKBMZYO.mjs.map +0 -1
  1195. package/dist/chunks-Dr5Vr0zA.mjs +0 -25
  1196. package/dist/chunks-Dr5Vr0zA.mjs.map +0 -1
  1197. package/dist/collection-slugs-cache-B2Gs9Jwx.mjs +0 -85
  1198. package/dist/collection-slugs-cache-B2Gs9Jwx.mjs.map +0 -1
  1199. package/dist/comment-CWla6OHV.mjs +0 -325
  1200. package/dist/comment-CWla6OHV.mjs.map +0 -1
  1201. package/dist/comment-reaction-RZrcs5cW.mjs +0 -85
  1202. package/dist/comment-reaction-RZrcs5cW.mjs.map +0 -1
  1203. package/dist/comments-BzmIKVb2.mjs +0 -99
  1204. package/dist/comments-BzmIKVb2.mjs.map +0 -1
  1205. package/dist/comments-Da_dI2O1.mjs +0 -195
  1206. package/dist/comments-Da_dI2O1.mjs.map +0 -1
  1207. package/dist/components-oFXumpf5.mjs +0 -112
  1208. package/dist/components-oFXumpf5.mjs.map +0 -1
  1209. package/dist/config--wamYxBW.d.mts +0 -39
  1210. package/dist/config--wamYxBW.d.mts.map +0 -1
  1211. package/dist/config-Bo4eOOdV.mjs +0 -228
  1212. package/dist/config-Bo4eOOdV.mjs.map +0 -1
  1213. package/dist/config-C4-UxIk7.d.mts +0 -6790
  1214. package/dist/config-C4-UxIk7.d.mts.map +0 -1
  1215. package/dist/config-CvmjJcVw.mjs +0 -73
  1216. package/dist/config-CvmjJcVw.mjs.map +0 -1
  1217. package/dist/connection-UpzYxtE2.mjs +0 -36
  1218. package/dist/connection-UpzYxtE2.mjs.map +0 -1
  1219. package/dist/content-CcHrqkgp.mjs +0 -2072
  1220. package/dist/content-CcHrqkgp.mjs.map +0 -1
  1221. package/dist/content-list-query-Bxxdd9fv.d.mts +0 -26
  1222. package/dist/content-list-query-Bxxdd9fv.d.mts.map +0 -1
  1223. package/dist/content-policy-Dm32n9C6.mjs +0 -46
  1224. package/dist/content-policy-Dm32n9C6.mjs.map +0 -1
  1225. package/dist/content-repair-havk1F0-.mjs +0 -442
  1226. package/dist/content-repair-havk1F0-.mjs.map +0 -1
  1227. package/dist/context-CvhgHgSH.mjs +0 -2043
  1228. package/dist/context-CvhgHgSH.mjs.map +0 -1
  1229. package/dist/credits-CygUrPOi.mjs +0 -110
  1230. package/dist/credits-CygUrPOi.mjs.map +0 -1
  1231. package/dist/cron-C6ytTOLw.mjs +0 -306
  1232. package/dist/cron-C6ytTOLw.mjs.map +0 -1
  1233. package/dist/dashboard-7_FYfafc.mjs +0 -151
  1234. package/dist/dashboard-7_FYfafc.mjs.map +0 -1
  1235. package/dist/db-errors-CBD5yMro.mjs +0 -55
  1236. package/dist/db-errors-CBD5yMro.mjs.map +0 -1
  1237. package/dist/default-CHCUkV4Z.mjs +0 -81
  1238. package/dist/default-CHCUkV4Z.mjs.map +0 -1
  1239. package/dist/deferred-tasks-G0xhcJTl.d.mts +0 -9
  1240. package/dist/deferred-tasks-G0xhcJTl.d.mts.map +0 -1
  1241. package/dist/destination-r2zIAZ2S.mjs +0 -18
  1242. package/dist/destination-r2zIAZ2S.mjs.map +0 -1
  1243. package/dist/dev-typegen-Dtl8AfS6.mjs +0 -29
  1244. package/dist/dev-typegen-Dtl8AfS6.mjs.map +0 -1
  1245. package/dist/device-flow-CzDJmQ1q.mjs +0 -521
  1246. package/dist/device-flow-CzDJmQ1q.mjs.map +0 -1
  1247. package/dist/digest-xJmyPv2r.mjs +0 -194
  1248. package/dist/digest-xJmyPv2r.mjs.map +0 -1
  1249. package/dist/direct-executor-BXiYIVJ9.mjs +0 -104
  1250. package/dist/direct-executor-BXiYIVJ9.mjs.map +0 -1
  1251. package/dist/dist-Cfu8mMBs.mjs +0 -810
  1252. package/dist/dist-Cfu8mMBs.mjs.map +0 -1
  1253. package/dist/email-console-7ZPApLlm.mjs +0 -50
  1254. package/dist/email-console-7ZPApLlm.mjs.map +0 -1
  1255. package/dist/email-locale-DFdUA6UF.mjs +0 -25
  1256. package/dist/email-locale-DFdUA6UF.mjs.map +0 -1
  1257. package/dist/emdash-runtime-C4oFeVpN.mjs +0 -4363
  1258. package/dist/emdash-runtime-C4oFeVpN.mjs.map +0 -1
  1259. package/dist/enrich-Duu4sV3a.mjs +0 -194
  1260. package/dist/enrich-Duu4sV3a.mjs.map +0 -1
  1261. package/dist/entry-lock-B4n0HdQ_.mjs +0 -163
  1262. package/dist/entry-lock-B4n0HdQ_.mjs.map +0 -1
  1263. package/dist/entry-lock-BAAlKYrz.d.mts +0 -4566
  1264. package/dist/entry-lock-BAAlKYrz.d.mts.map +0 -1
  1265. package/dist/entry-lock-Cjz0h45X.mjs +0 -1209
  1266. package/dist/entry-lock-Cjz0h45X.mjs.map +0 -1
  1267. package/dist/entry-locks-DJAqVweV.mjs +0 -167
  1268. package/dist/entry-locks-DJAqVweV.mjs.map +0 -1
  1269. package/dist/env-types-4bkF6Bqg.mjs +0 -38
  1270. package/dist/env-types-4bkF6Bqg.mjs.map +0 -1
  1271. package/dist/error-DxgQdaZ_.mjs +0 -90
  1272. package/dist/error-DxgQdaZ_.mjs.map +0 -1
  1273. package/dist/errors-CjtE5aWF.mjs +0 -120
  1274. package/dist/errors-CjtE5aWF.mjs.map +0 -1
  1275. package/dist/errors-hskQ0C8G.mjs +0 -479
  1276. package/dist/errors-hskQ0C8G.mjs.map +0 -1
  1277. package/dist/escape-ESFhYzwG.mjs +0 -9
  1278. package/dist/escape-ESFhYzwG.mjs.map +0 -1
  1279. package/dist/fence-vc3aHgRA.mjs +0 -162
  1280. package/dist/fence-vc3aHgRA.mjs.map +0 -1
  1281. package/dist/field-defs-cache-zoow36nz.mjs +0 -77
  1282. package/dist/field-defs-cache-zoow36nz.mjs.map +0 -1
  1283. package/dist/field-map-JD1wG0Tq.mjs +0 -83
  1284. package/dist/field-map-JD1wG0Tq.mjs.map +0 -1
  1285. package/dist/focal-point-JX8kcOTQ.mjs +0 -23
  1286. package/dist/focal-point-JX8kcOTQ.mjs.map +0 -1
  1287. package/dist/fts-manager-WJCN8uU6.mjs +0 -443
  1288. package/dist/fts-manager-WJCN8uU6.mjs.map +0 -1
  1289. package/dist/gc-CsGZiKdH.mjs +0 -75
  1290. package/dist/gc-CsGZiKdH.mjs.map +0 -1
  1291. package/dist/hash-C4DFoJ7Z.mjs +0 -37
  1292. package/dist/hash-C4DFoJ7Z.mjs.map +0 -1
  1293. package/dist/hook-result-CXjtMk7Q.d.mts +0 -31
  1294. package/dist/hook-result-CXjtMk7Q.d.mts.map +0 -1
  1295. package/dist/hreflang-BAma7iRr.mjs +0 -105
  1296. package/dist/hreflang-BAma7iRr.mjs.map +0 -1
  1297. package/dist/hreflang-BsYo4x_M.d.mts +0 -50
  1298. package/dist/hreflang-BsYo4x_M.d.mts.map +0 -1
  1299. package/dist/http-route-dispatch-C8G7hAK6.mjs +0 -342
  1300. package/dist/http-route-dispatch-C8G7hAK6.mjs.map +0 -1
  1301. package/dist/identity-BwBKM1fH.mjs +0 -35
  1302. package/dist/identity-BwBKM1fH.mjs.map +0 -1
  1303. package/dist/import-DJ3Z2wxE.mjs +0 -2021
  1304. package/dist/import-DJ3Z2wxE.mjs.map +0 -1
  1305. package/dist/index-DYsn97dY.d.mts +0 -623
  1306. package/dist/index-DYsn97dY.d.mts.map +0 -1
  1307. package/dist/install-finalization-DCFnFSHv.mjs +0 -58
  1308. package/dist/install-finalization-DCFnFSHv.mjs.map +0 -1
  1309. package/dist/keys-CGvAndSp.mjs +0 -61
  1310. package/dist/keys-CGvAndSp.mjs.map +0 -1
  1311. package/dist/kinds-DT1W4T4Y.mjs +0 -974
  1312. package/dist/kinds-DT1W4T4Y.mjs.map +0 -1
  1313. package/dist/lifecycle-BzglCSY0.mjs +0 -25
  1314. package/dist/lifecycle-BzglCSY0.mjs.map +0 -1
  1315. package/dist/load-DjUqmf3s.mjs +0 -28
  1316. package/dist/load-DjUqmf3s.mjs.map +0 -1
  1317. package/dist/loader-CetY659y.mjs +0 -1355
  1318. package/dist/loader-CetY659y.mjs.map +0 -1
  1319. package/dist/loops-DkT1zkPH.mjs +0 -205
  1320. package/dist/loops-DkT1zkPH.mjs.map +0 -1
  1321. package/dist/manifest-builder-BOFCd9rX.mjs +0 -189
  1322. package/dist/manifest-builder-BOFCd9rX.mjs.map +0 -1
  1323. package/dist/manifest-schema-BiFBPEsp.mjs +0 -497
  1324. package/dist/manifest-schema-BiFBPEsp.mjs.map +0 -1
  1325. package/dist/marketplace-CUlenvZm.mjs +0 -257
  1326. package/dist/marketplace-CUlenvZm.mjs.map +0 -1
  1327. package/dist/media-CRKsKlfK.mjs +0 -416
  1328. package/dist/media-CRKsKlfK.mjs.map +0 -1
  1329. package/dist/media-C_z7sRuC.mjs +0 -294
  1330. package/dist/media-C_z7sRuC.mjs.map +0 -1
  1331. package/dist/media-IT8hQleU.mjs +0 -373
  1332. package/dist/media-IT8hQleU.mjs.map +0 -1
  1333. package/dist/media-allowlist-Ct6wvnT2.mjs +0 -45
  1334. package/dist/media-allowlist-Ct6wvnT2.mjs.map +0 -1
  1335. package/dist/media-folders-DtMt-vAA.mjs +0 -210
  1336. package/dist/media-folders-DtMt-vAA.mjs.map +0 -1
  1337. package/dist/media-url-BpXLqCmf.mjs +0 -43
  1338. package/dist/media-url-BpXLqCmf.mjs.map +0 -1
  1339. package/dist/media-usage-DEPHZZ9X.mjs +0 -282
  1340. package/dist/media-usage-DEPHZZ9X.mjs.map +0 -1
  1341. package/dist/media-usage-activation-V2Siabtw.mjs +0 -78
  1342. package/dist/media-usage-activation-V2Siabtw.mjs.map +0 -1
  1343. package/dist/media-usage-work-Cv1OE59F.mjs +0 -151
  1344. package/dist/media-usage-work-Cv1OE59F.mjs.map +0 -1
  1345. package/dist/media-usage-work-cgDYGvrt.mjs +0 -1015
  1346. package/dist/media-usage-work-cgDYGvrt.mjs.map +0 -1
  1347. package/dist/menus-CvVYfsuk.mjs +0 -753
  1348. package/dist/menus-CvVYfsuk.mjs.map +0 -1
  1349. package/dist/menus-D1HC8npj.mjs +0 -92
  1350. package/dist/menus-D1HC8npj.mjs.map +0 -1
  1351. package/dist/menus-DL8IPIcm.mjs +0 -3721
  1352. package/dist/menus-DL8IPIcm.mjs.map +0 -1
  1353. package/dist/mime-B5M9R53H.mjs +0 -81
  1354. package/dist/mime-B5M9R53H.mjs.map +0 -1
  1355. package/dist/mode-eieqAWLe.mjs +0 -23
  1356. package/dist/mode-eieqAWLe.mjs.map +0 -1
  1357. package/dist/node-sqlite-compat-VuyzJw1b.mjs +0 -63
  1358. package/dist/node-sqlite-compat-VuyzJw1b.mjs.map +0 -1
  1359. package/dist/normalize-BuWa0lvd.mjs +0 -191
  1360. package/dist/normalize-BuWa0lvd.mjs.map +0 -1
  1361. package/dist/oauth-authorization-B6ZJbMd2.mjs +0 -274
  1362. package/dist/oauth-authorization-B6ZJbMd2.mjs.map +0 -1
  1363. package/dist/oauth-clients-DVjRc9v3.mjs +0 -266
  1364. package/dist/oauth-clients-DVjRc9v3.mjs.map +0 -1
  1365. package/dist/oauth-state-store-CnmYYsVQ.mjs +0 -50
  1366. package/dist/oauth-state-store-CnmYYsVQ.mjs.map +0 -1
  1367. package/dist/oauth-user-lookup-Dz1_R5vT.mjs +0 -26
  1368. package/dist/oauth-user-lookup-Dz1_R5vT.mjs.map +0 -1
  1369. package/dist/object-cache-Bo6DGaC9.mjs +0 -586
  1370. package/dist/object-cache-Bo6DGaC9.mjs.map +0 -1
  1371. package/dist/options-BR9XZl7h.d.mts +0 -81
  1372. package/dist/options-BR9XZl7h.d.mts.map +0 -1
  1373. package/dist/ownership-COPyVysP.mjs +0 -12
  1374. package/dist/ownership-COPyVysP.mjs.map +0 -1
  1375. package/dist/parse-BOGhrwSq.d.mts +0 -174
  1376. package/dist/parse-BOGhrwSq.d.mts.map +0 -1
  1377. package/dist/parse-Cn5aSk1N.mjs +0 -81
  1378. package/dist/parse-Cn5aSk1N.mjs.map +0 -1
  1379. package/dist/passkey-config-mMFRQUCj.mjs +0 -46
  1380. package/dist/passkey-config-mMFRQUCj.mjs.map +0 -1
  1381. package/dist/paths-BmcAdBo9.mjs +0 -77
  1382. package/dist/paths-BmcAdBo9.mjs.map +0 -1
  1383. package/dist/patterns-CMNnYCgf.mjs +0 -159
  1384. package/dist/patterns-CMNnYCgf.mjs.map +0 -1
  1385. package/dist/placeholder-nOep3_Gn.d.mts +0 -306
  1386. package/dist/placeholder-nOep3_Gn.d.mts.map +0 -1
  1387. package/dist/plan-CDY4K8CH.mjs +0 -135
  1388. package/dist/plan-CDY4K8CH.mjs.map +0 -1
  1389. package/dist/plugins-DFBpfbO3.mjs +0 -261
  1390. package/dist/plugins-DFBpfbO3.mjs.map +0 -1
  1391. package/dist/policy-B_2qnHSy.mjs +0 -45
  1392. package/dist/policy-B_2qnHSy.mjs.map +0 -1
  1393. package/dist/portable-text-Dc2YAusw.mjs +0 -307
  1394. package/dist/portable-text-Dc2YAusw.mjs.map +0 -1
  1395. package/dist/preview-BtzikJ9O.mjs +0 -107
  1396. package/dist/preview-BtzikJ9O.mjs.map +0 -1
  1397. package/dist/protocol-M268ox8L.d.mts +0 -61
  1398. package/dist/protocol-M268ox8L.d.mts.map +0 -1
  1399. package/dist/public-submission-BQZavgZU.mjs +0 -251
  1400. package/dist/public-submission-BQZavgZU.mjs.map +0 -1
  1401. package/dist/public-url-uT1Ok2Tu.mjs +0 -101
  1402. package/dist/public-url-uT1Ok2Tu.mjs.map +0 -1
  1403. package/dist/query-BGG3sDEd.mjs +0 -1127
  1404. package/dist/query-BGG3sDEd.mjs.map +0 -1
  1405. package/dist/query-C_CWlifp.mjs +0 -41
  1406. package/dist/query-C_CWlifp.mjs.map +0 -1
  1407. package/dist/range-CXK_kDbI.mjs +0 -51
  1408. package/dist/range-CXK_kDbI.mjs.map +0 -1
  1409. package/dist/rate-limit-Dvamvay-.mjs +0 -127
  1410. package/dist/rate-limit-Dvamvay-.mjs.map +0 -1
  1411. package/dist/receipt-BmQGzquP.mjs +0 -43
  1412. package/dist/receipt-BmQGzquP.mjs.map +0 -1
  1413. package/dist/redirect-B39kTQ_0.mjs +0 -423
  1414. package/dist/redirect-B39kTQ_0.mjs.map +0 -1
  1415. package/dist/redirect-BguJ00Pv.mjs +0 -19
  1416. package/dist/redirect-BguJ00Pv.mjs.map +0 -1
  1417. package/dist/redirects-C8G4BsfP.mjs +0 -446
  1418. package/dist/redirects-C8G4BsfP.mjs.map +0 -1
  1419. package/dist/redirects-DFT7Wr-e.mjs +0 -148
  1420. package/dist/redirects-DFT7Wr-e.mjs.map +0 -1
  1421. package/dist/registry-DeZ27gVi.mjs +0 -8374
  1422. package/dist/registry-DeZ27gVi.mjs.map +0 -1
  1423. package/dist/relations-DBB1bRJW.mjs +0 -776
  1424. package/dist/relations-DBB1bRJW.mjs.map +0 -1
  1425. package/dist/request-cache-C4CIo5ad.mjs +0 -104
  1426. package/dist/request-cache-C4CIo5ad.mjs.map +0 -1
  1427. package/dist/request-meta-BSvkhIBX.mjs +0 -141
  1428. package/dist/request-meta-BSvkhIBX.mjs.map +0 -1
  1429. package/dist/resolve-BxH64HN9.mjs +0 -100
  1430. package/dist/resolve-BxH64HN9.mjs.map +0 -1
  1431. package/dist/resolve-D-kqyKns.mjs +0 -199
  1432. package/dist/resolve-D-kqyKns.mjs.map +0 -1
  1433. package/dist/revision-BWEH2qQB.mjs +0 -368
  1434. package/dist/revision-BWEH2qQB.mjs.map +0 -1
  1435. package/dist/route-wire-CwbWB_6O.mjs +0 -197
  1436. package/dist/route-wire-CwbWB_6O.mjs.map +0 -1
  1437. package/dist/routes-BfIxc7ft.mjs +0 -272
  1438. package/dist/routes-BfIxc7ft.mjs.map +0 -1
  1439. package/dist/runner-DkeafPBA.d.mts +0 -68
  1440. package/dist/runner-DkeafPBA.d.mts.map +0 -1
  1441. package/dist/runner-wqt4BrIW.mjs +0 -6383
  1442. package/dist/runner-wqt4BrIW.mjs.map +0 -1
  1443. package/dist/schema-BXIW-JHi.mjs +0 -815
  1444. package/dist/schema-BXIW-JHi.mjs.map +0 -1
  1445. package/dist/schema-I74JwYte.mjs +0 -13
  1446. package/dist/schema-I74JwYte.mjs.map +0 -1
  1447. package/dist/scopes-RWZ5ft_Z.mjs +0 -34
  1448. package/dist/scopes-RWZ5ft_Z.mjs.map +0 -1
  1449. package/dist/search-DxwagyWS.mjs +0 -450
  1450. package/dist/search-DxwagyWS.mjs.map +0 -1
  1451. package/dist/sections-Ccq9ZgyD.mjs +0 -346
  1452. package/dist/sections-Ccq9ZgyD.mjs.map +0 -1
  1453. package/dist/seo-CCnfPWAQ.mjs +0 -133
  1454. package/dist/seo-CCnfPWAQ.mjs.map +0 -1
  1455. package/dist/seo-QCtJ1jjV.mjs +0 -188
  1456. package/dist/seo-QCtJ1jjV.mjs.map +0 -1
  1457. package/dist/service-DX84s2rw.mjs +0 -150
  1458. package/dist/service-DX84s2rw.mjs.map +0 -1
  1459. package/dist/session-user-1dtJc2zv.mjs +0 -61
  1460. package/dist/session-user-1dtJc2zv.mjs.map +0 -1
  1461. package/dist/settings-B1jOxAIl.mjs +0 -443
  1462. package/dist/settings-B1jOxAIl.mjs.map +0 -1
  1463. package/dist/settings-Bc1IBl1t.mjs +0 -66
  1464. package/dist/settings-Bc1IBl1t.mjs.map +0 -1
  1465. package/dist/settings-GaZ5sVgg.mjs +0 -73
  1466. package/dist/settings-GaZ5sVgg.mjs.map +0 -1
  1467. package/dist/setup-complete-DidMAWJS.mjs +0 -65
  1468. package/dist/setup-complete-DidMAWJS.mjs.map +0 -1
  1469. package/dist/setup-nonce-DKl4S4c6.mjs +0 -25
  1470. package/dist/setup-nonce-DKl4S4c6.mjs.map +0 -1
  1471. package/dist/site-domain-CbI51Pc2.mjs +0 -113
  1472. package/dist/site-domain-CbI51Pc2.mjs.map +0 -1
  1473. package/dist/site-settings-CDdT4mVm.mjs +0 -50
  1474. package/dist/site-settings-CDdT4mVm.mjs.map +0 -1
  1475. package/dist/site-url-CrDZaAvo.mjs +0 -45
  1476. package/dist/site-url-CrDZaAvo.mjs.map +0 -1
  1477. package/dist/sitemap-name-W3BTor6X.mjs +0 -26
  1478. package/dist/sitemap-name-W3BTor6X.mjs.map +0 -1
  1479. package/dist/slug-BJhHKoOH.mjs +0 -16
  1480. package/dist/slug-BJhHKoOH.mjs.map +0 -1
  1481. package/dist/slugify-bu2-jKia.mjs +0 -22
  1482. package/dist/slugify-bu2-jKia.mjs.map +0 -1
  1483. package/dist/snapshot-BuI_2uDe.mjs +0 -414
  1484. package/dist/snapshot-BuI_2uDe.mjs.map +0 -1
  1485. package/dist/ssrf-LM_0wpGA.mjs +0 -406
  1486. package/dist/ssrf-LM_0wpGA.mjs.map +0 -1
  1487. package/dist/stage-DhzZuYaT.mjs +0 -662
  1488. package/dist/stage-DhzZuYaT.mjs.map +0 -1
  1489. package/dist/staged-DboEaWsV.mjs +0 -686
  1490. package/dist/staged-DboEaWsV.mjs.map +0 -1
  1491. package/dist/state-DCXDzjHq.mjs +0 -178
  1492. package/dist/state-DCXDzjHq.mjs.map +0 -1
  1493. package/dist/status-Dl85BK39.mjs +0 -30
  1494. package/dist/status-Dl85BK39.mjs.map +0 -1
  1495. package/dist/storage-query-BOBmeDMD.d.mts +0 -1615
  1496. package/dist/storage-query-BOBmeDMD.d.mts.map +0 -1
  1497. package/dist/tar-K40edFMt.mjs +0 -449
  1498. package/dist/tar-K40edFMt.mjs.map +0 -1
  1499. package/dist/target-BOighEY1.mjs +0 -27
  1500. package/dist/target-BOighEY1.mjs.map +0 -1
  1501. package/dist/taxonomies-DQSywBvX.mjs +0 -697
  1502. package/dist/taxonomies-DQSywBvX.mjs.map +0 -1
  1503. package/dist/taxonomies-Dj5eaobC.mjs +0 -939
  1504. package/dist/taxonomies-Dj5eaobC.mjs.map +0 -1
  1505. package/dist/taxonomy-QrNmTfIZ.mjs +0 -550
  1506. package/dist/taxonomy-QrNmTfIZ.mjs.map +0 -1
  1507. package/dist/tokens-j5L0as2H.mjs +0 -171
  1508. package/dist/tokens-j5L0as2H.mjs.map +0 -1
  1509. package/dist/transaction-BVYIo_yu.mjs +0 -29
  1510. package/dist/transaction-BVYIo_yu.mjs.map +0 -1
  1511. package/dist/transfer-CYEw8Tu4.mjs +0 -8873
  1512. package/dist/transfer-CYEw8Tu4.mjs.map +0 -1
  1513. package/dist/transfer-DDX10hkD.mjs +0 -166
  1514. package/dist/transfer-DDX10hkD.mjs.map +0 -1
  1515. package/dist/transfer-download-BAqq6GJv.mjs +0 -33
  1516. package/dist/transfer-download-BAqq6GJv.mjs.map +0 -1
  1517. package/dist/transformations-De44wqV_.mjs +0 -196
  1518. package/dist/transformations-De44wqV_.mjs.map +0 -1
  1519. package/dist/transport-1QjUhCRO.d.mts +0 -42
  1520. package/dist/transport-1QjUhCRO.d.mts.map +0 -1
  1521. package/dist/transport-Ds5pVX7p.mjs +0 -136
  1522. package/dist/transport-Ds5pVX7p.mjs.map +0 -1
  1523. package/dist/trusted-proxy-d4Tk6biT.mjs +0 -51
  1524. package/dist/trusted-proxy-d4Tk6biT.mjs.map +0 -1
  1525. package/dist/turnstile-DaFLtyrs.mjs +0 -58
  1526. package/dist/turnstile-DaFLtyrs.mjs.map +0 -1
  1527. package/dist/types-B4-1P2DK.d.mts +0 -227
  1528. package/dist/types-B4-1P2DK.d.mts.map +0 -1
  1529. package/dist/types-BGmQ0uXs.mjs +0 -201
  1530. package/dist/types-BGmQ0uXs.mjs.map +0 -1
  1531. package/dist/types-BKXA0f-c.mjs +0 -16
  1532. package/dist/types-BKXA0f-c.mjs.map +0 -1
  1533. package/dist/types-BiHcpUoO.d.mts +0 -374
  1534. package/dist/types-BiHcpUoO.d.mts.map +0 -1
  1535. package/dist/types-BihhvkyN.d.mts +0 -85
  1536. package/dist/types-BihhvkyN.d.mts.map +0 -1
  1537. package/dist/types-Bq9Wohd7.d.mts +0 -363
  1538. package/dist/types-Bq9Wohd7.d.mts.map +0 -1
  1539. package/dist/types-C-Xp0CcN.mjs +0 -103
  1540. package/dist/types-C-Xp0CcN.mjs.map +0 -1
  1541. package/dist/types-C4P7F1Vq.d.mts +0 -1741
  1542. package/dist/types-C4P7F1Vq.d.mts.map +0 -1
  1543. package/dist/types-CGaqwHw4.mjs +0 -37
  1544. package/dist/types-CGaqwHw4.mjs.map +0 -1
  1545. package/dist/types-Cj0_yZkn.mjs +0 -18
  1546. package/dist/types-Cj0_yZkn.mjs.map +0 -1
  1547. package/dist/types-D4ECCE4X.mjs +0 -77
  1548. package/dist/types-D4ECCE4X.mjs.map +0 -1
  1549. package/dist/types-DcRJp0vS.d.mts +0 -125
  1550. package/dist/types-DcRJp0vS.d.mts.map +0 -1
  1551. package/dist/types-Ff85fTzU.d.mts +0 -289
  1552. package/dist/types-Ff85fTzU.d.mts.map +0 -1
  1553. package/dist/types-UKr5Sf4y.d.mts +0 -916
  1554. package/dist/types-UKr5Sf4y.d.mts.map +0 -1
  1555. package/dist/types-YpN8hZW7.d.mts +0 -204
  1556. package/dist/types-YpN8hZW7.d.mts.map +0 -1
  1557. package/dist/update-check-DrlsK-tt.mjs +0 -161
  1558. package/dist/update-check-DrlsK-tt.mjs.map +0 -1
  1559. package/dist/upload-attempts-D8CPPvRU.mjs +0 -32
  1560. package/dist/upload-attempts-D8CPPvRU.mjs.map +0 -1
  1561. package/dist/url-Dn3IStq8.mjs +0 -104
  1562. package/dist/url-Dn3IStq8.mjs.map +0 -1
  1563. package/dist/url-pattern-Di4Nn3vP.mjs +0 -41
  1564. package/dist/url-pattern-Di4Nn3vP.mjs.map +0 -1
  1565. package/dist/user-B-ZdGjhI.mjs +0 -171
  1566. package/dist/user-B-ZdGjhI.mjs.map +0 -1
  1567. package/dist/utils-D7wL3r6-.mjs +0 -437
  1568. package/dist/utils-D7wL3r6-.mjs.map +0 -1
  1569. package/dist/validate-BSZbSUDk.mjs +0 -524
  1570. package/dist/validate-BSZbSUDk.mjs.map +0 -1
  1571. package/dist/validate-Dfv0DpZi.d.mts +0 -468
  1572. package/dist/validate-Dfv0DpZi.d.mts.map +0 -1
  1573. package/dist/validation-DRyC_Vm5.mjs +0 -219
  1574. package/dist/validation-DRyC_Vm5.mjs.map +0 -1
  1575. package/dist/version-C4kz0PcO.mjs +0 -7
  1576. package/dist/version-C4kz0PcO.mjs.map +0 -1
  1577. package/dist/version-jhs2BRtl.mjs +0 -9
  1578. package/dist/version-jhs2BRtl.mjs.map +0 -1
  1579. package/dist/video-DReZ48Un.mjs +0 -54
  1580. package/dist/video-DReZ48Un.mjs.map +0 -1
  1581. package/dist/virtual-modules-D0e6VbEv.mjs +0 -516
  1582. package/dist/virtual-modules-D0e6VbEv.mjs.map +0 -1
  1583. package/dist/widgets-BkcMzKct.mjs +0 -121
  1584. package/dist/widgets-BkcMzKct.mjs.map +0 -1
  1585. package/dist/wxr-taxonomies-BxI0CbTg.mjs +0 -453
  1586. package/dist/wxr-taxonomies-BxI0CbTg.mjs.map +0 -1
  1587. package/dist/wxr-taxonomies-Dad33GJi.d.mts +0 -34
  1588. package/dist/wxr-taxonomies-Dad33GJi.d.mts.map +0 -1
  1589. package/dist/zod-generator-BQilAboC.mjs +0 -424
  1590. package/dist/zod-generator-BQilAboC.mjs.map +0 -1
  1591. /package/dist/{api-tokens-D2zgAIEt.mjs → api-tokens-C7l0GUAF.mjs} +0 -0
  1592. /package/dist/{ssrf-BvNItdxk.mjs → ssrf-BBXcxG-f.mjs} +0 -0
@@ -1,460 +0,0 @@
1
- import { u as isPostgres } from "./dialect-helpers-7_IqPdh9.mjs";
2
- import { t as TransferError } from "./errors-CjtE5aWF.mjs";
3
- import { o as TRANSFER_LIMITS } from "./canonical-BUcKRYpG.mjs";
4
- import { a as isSha256Digest } from "./digest-xJmyPv2r.mjs";
5
- import { i as RECORD_KINDS } from "./kinds-DT1W4T4Y.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-BXgtXA2s.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"approvals-BXgtXA2s.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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"}