emdash 1.3.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 (1451) 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 -57
  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.mjs +23 -12
  30. package/dist/astro/index.mjs.map +1 -1
  31. package/dist/astro/middleware/auth.d.mts +12 -12
  32. package/dist/astro/middleware/auth.mjs +10 -10
  33. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  34. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  35. package/dist/astro/middleware/redirect.mjs +128 -48
  36. package/dist/astro/middleware/redirect.mjs.map +1 -1
  37. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  38. package/dist/astro/middleware/request-context.mjs +12 -8
  39. package/dist/astro/middleware/request-context.mjs.map +1 -1
  40. package/dist/astro/middleware/setup.mjs +1 -1
  41. package/dist/astro/middleware.d.mts +12 -12
  42. package/dist/astro/middleware.d.mts.map +1 -1
  43. package/dist/astro/middleware.mjs +134 -124
  44. package/dist/astro/middleware.mjs.map +1 -1
  45. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +16 -16
  46. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +16 -16
  47. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -6
  48. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
  49. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +7 -7
  50. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +19 -19
  51. package/dist/astro/routes/api/admin/byline-fields/index.mjs +19 -19
  52. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +19 -19
  53. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +29 -28
  54. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  55. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +29 -28
  56. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  57. package/dist/astro/routes/api/admin/bylines/index.mjs +29 -28
  58. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +21 -21
  60. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
  61. package/dist/astro/routes/api/admin/comments/bulk.mjs +20 -20
  62. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
  63. package/dist/astro/routes/api/admin/comments/index.mjs +20 -20
  64. package/dist/astro/routes/api/admin/core-update.mjs +7 -7
  65. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  66. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  67. package/dist/astro/routes/api/admin/media-usage/activation.mjs +22 -22
  68. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +23 -23
  69. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +23 -23
  70. package/dist/astro/routes/api/admin/media-usage/progress.mjs +27 -26
  71. package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
  72. package/dist/astro/routes/api/admin/media-usage/repair.mjs +33 -32
  73. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  74. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +23 -23
  75. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +23 -23
  76. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  77. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  78. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  79. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  80. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +81 -79
  81. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  82. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
  83. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +80 -78
  84. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  85. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +80 -78
  86. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  87. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +91 -89
  88. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  89. package/dist/astro/routes/api/admin/plugins/index.mjs +81 -79
  90. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  91. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +7 -7
  92. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +80 -78
  93. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  94. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +90 -88
  95. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +80 -78
  97. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +80 -78
  99. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  100. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +92 -90
  101. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -9
  103. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +82 -80
  104. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  105. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
  106. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +81 -79
  107. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  108. package/dist/astro/routes/api/admin/plugins/updates.mjs +80 -78
  109. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  110. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
  111. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +80 -78
  112. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  113. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +7 -7
  114. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +80 -78
  115. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  116. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
  117. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +45 -43
  118. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
  119. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +45 -43
  120. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
  121. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +47 -45
  122. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
  123. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +47 -45
  124. package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
  125. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +47 -45
  126. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
  127. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +48 -46
  128. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
  129. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +48 -46
  130. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
  131. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +47 -45
  132. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
  133. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +48 -46
  134. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
  135. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +49 -47
  136. package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
  137. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +47 -45
  138. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
  139. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +47 -45
  140. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
  141. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +49 -47
  142. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
  143. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +47 -45
  144. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
  145. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +49 -47
  146. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
  147. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +47 -45
  148. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
  149. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +47 -45
  150. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
  151. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +49 -47
  152. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
  153. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +47 -45
  154. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
  155. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +47 -45
  156. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
  157. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +49 -47
  158. package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
  159. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
  160. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  161. package/dist/astro/routes/api/admin/users/_id_/index.mjs +17 -17
  162. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
  163. package/dist/astro/routes/api/admin/users/index.mjs +16 -16
  164. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  165. package/dist/astro/routes/api/auth/handover.mjs +6 -6
  166. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  167. package/dist/astro/routes/api/auth/invite/complete.mjs +21 -21
  168. package/dist/astro/routes/api/auth/invite/index.mjs +18 -18
  169. package/dist/astro/routes/api/auth/invite/register-options.mjs +19 -19
  170. package/dist/astro/routes/api/auth/logout.mjs +5 -5
  171. package/dist/astro/routes/api/auth/magic-link/send.mjs +20 -20
  172. package/dist/astro/routes/api/auth/magic-link/verify.mjs +17 -17
  173. package/dist/astro/routes/api/auth/me.mjs +17 -17
  174. package/dist/astro/routes/api/auth/mode.mjs +5 -5
  175. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +8 -8
  176. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  177. package/dist/astro/routes/api/auth/passkey/_id_.mjs +16 -16
  178. package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
  179. package/dist/astro/routes/api/auth/passkey/options.mjs +21 -21
  180. package/dist/astro/routes/api/auth/passkey/register/options.mjs +19 -19
  181. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +20 -20
  182. package/dist/astro/routes/api/auth/passkey/verify.mjs +21 -21
  183. package/dist/astro/routes/api/auth/signup/complete.mjs +21 -21
  184. package/dist/astro/routes/api/auth/signup/request.mjs +19 -19
  185. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  186. package/dist/astro/routes/api/calendar.mjs +17 -17
  187. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +13 -13
  188. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +21 -21
  189. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  190. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +20 -20
  191. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  192. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +19 -19
  193. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +6 -6
  194. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +12 -12
  195. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +36 -35
  196. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  197. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +20 -20
  198. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +40 -39
  199. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  200. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +40 -39
  201. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  202. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +6 -6
  203. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  204. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +20 -20
  205. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -1
  206. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +40 -32
  207. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  208. package/dist/astro/routes/api/content/_collection_/_id_/translations.d.mts.map +1 -1
  209. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +9 -5
  210. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs.map +1 -1
  211. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +20 -20
  212. package/dist/astro/routes/api/content/_collection_/_id_.mjs +20 -20
  213. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  214. package/dist/astro/routes/api/content/_collection_/index.mjs +17 -17
  215. package/dist/astro/routes/api/content/_collection_/trash.mjs +17 -17
  216. package/dist/astro/routes/api/dashboard.mjs +21 -15
  217. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  218. package/dist/astro/routes/api/dev/emails.mjs +5 -5
  219. package/dist/astro/routes/api/dev/scheduled-tasks.mjs +119 -117
  220. package/dist/astro/routes/api/dev/scheduled-tasks.mjs.map +1 -1
  221. package/dist/astro/routes/api/health.mjs +6 -6
  222. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  223. package/dist/astro/routes/api/import/probe.mjs +31 -29
  224. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  225. package/dist/astro/routes/api/import/wordpress/analyze.mjs +8 -8
  226. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
  227. package/dist/astro/routes/api/import/wordpress/execute.mjs +31 -30
  228. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  229. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  230. package/dist/astro/routes/api/import/wordpress/media.mjs +21 -21
  231. package/dist/astro/routes/api/import/wordpress/prepare.mjs +22 -22
  232. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  233. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +32 -31
  234. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  235. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  236. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +31 -29
  237. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  238. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  239. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +42 -40
  240. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  241. package/dist/astro/routes/api/manifest.mjs +6 -6
  242. package/dist/astro/routes/api/mcp.mjs +117 -100
  243. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  244. package/dist/astro/routes/api/media/_id_/confirm.mjs +21 -21
  245. package/dist/astro/routes/api/media/_id_/replace.mjs +18 -18
  246. package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
  247. package/dist/astro/routes/api/media/_id_/usage.mjs +35 -34
  248. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  249. package/dist/astro/routes/api/media/_id_.mjs +33 -32
  250. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  251. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
  252. package/dist/astro/routes/api/media/file/_...key_.mjs +21 -13
  253. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  254. package/dist/astro/routes/api/media/folders/_id_.mjs +18 -18
  255. package/dist/astro/routes/api/media/folders/index.mjs +18 -18
  256. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
  257. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
  258. package/dist/astro/routes/api/media/providers/index.mjs +5 -5
  259. package/dist/astro/routes/api/media/upload-url.mjs +20 -20
  260. package/dist/astro/routes/api/media.mjs +37 -36
  261. package/dist/astro/routes/api/media.mjs.map +1 -1
  262. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +22 -21
  263. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  264. package/dist/astro/routes/api/menus/_name_/items.mjs +22 -21
  265. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  266. package/dist/astro/routes/api/menus/_name_/reorder.mjs +22 -21
  267. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  268. package/dist/astro/routes/api/menus/_name_/translations.mjs +22 -21
  269. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  270. package/dist/astro/routes/api/menus/_name_.mjs +22 -21
  271. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  272. package/dist/astro/routes/api/menus/index.mjs +22 -21
  273. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  274. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  275. package/dist/astro/routes/api/oauth/device/authorize.mjs +8 -8
  276. package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
  277. package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
  278. package/dist/astro/routes/api/oauth/register.mjs +7 -7
  279. package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
  280. package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
  281. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  282. package/dist/astro/routes/api/openapi.json.mjs +22 -22
  283. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +12 -12
  284. package/dist/astro/routes/api/redirects/404s/index.mjs +23 -22
  285. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  286. package/dist/astro/routes/api/redirects/404s/summary.mjs +23 -22
  287. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  288. package/dist/astro/routes/api/redirects/_id_.mjs +24 -23
  289. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  290. package/dist/astro/routes/api/redirects/index.mjs +24 -23
  291. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  292. package/dist/astro/routes/api/relations/_id_/index.mjs +40 -39
  293. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  294. package/dist/astro/routes/api/relations/index.mjs +40 -39
  295. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  296. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
  297. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +19 -19
  298. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +80 -78
  299. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  300. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +80 -78
  301. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  302. package/dist/astro/routes/api/schema/block-types/index.mjs +80 -78
  303. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  304. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +80 -78
  305. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  306. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +80 -78
  307. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  308. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +80 -78
  309. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  310. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +80 -78
  311. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  312. package/dist/astro/routes/api/schema/collections/index.mjs +80 -78
  313. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  314. package/dist/astro/routes/api/schema/collections/reorder.mjs +80 -78
  315. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  316. package/dist/astro/routes/api/schema/index.mjs +20 -19
  317. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  318. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +80 -78
  319. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  320. package/dist/astro/routes/api/schema/orphans/index.mjs +80 -78
  321. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  322. package/dist/astro/routes/api/search/enable.mjs +23 -22
  323. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  324. package/dist/astro/routes/api/search/index.mjs +22 -21
  325. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  326. package/dist/astro/routes/api/search/rebuild.mjs +23 -22
  327. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  328. package/dist/astro/routes/api/search/stats.mjs +12 -11
  329. package/dist/astro/routes/api/search/stats.mjs.map +1 -1
  330. package/dist/astro/routes/api/search/suggest.mjs +22 -21
  331. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  332. package/dist/astro/routes/api/sections/_slug_.mjs +22 -21
  333. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  334. package/dist/astro/routes/api/sections/index.mjs +22 -21
  335. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  336. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  337. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  338. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  339. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  340. package/dist/astro/routes/api/settings/domain-notify.mjs +9 -9
  341. package/dist/astro/routes/api/settings/domain.mjs +22 -20
  342. package/dist/astro/routes/api/settings/domain.mjs.map +1 -1
  343. package/dist/astro/routes/api/settings/email.mjs +6 -6
  344. package/dist/astro/routes/api/settings.mjs +29 -27
  345. package/dist/astro/routes/api/settings.mjs.map +1 -1
  346. package/dist/astro/routes/api/setup/admin-verify.mjs +23 -23
  347. package/dist/astro/routes/api/setup/admin.mjs +20 -20
  348. package/dist/astro/routes/api/setup/dev-bypass.mjs +52 -50
  349. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  350. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  351. package/dist/astro/routes/api/setup/index.mjs +58 -56
  352. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  353. package/dist/astro/routes/api/setup/status.mjs +6 -6
  354. package/dist/astro/routes/api/site/domain-proof.mjs +16 -14
  355. package/dist/astro/routes/api/site/domain-proof.mjs.map +1 -1
  356. package/dist/astro/routes/api/snapshot.mjs +8 -8
  357. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +30 -29
  358. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  359. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +30 -29
  360. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  361. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +30 -29
  362. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  363. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +30 -29
  364. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  365. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +28 -27
  366. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  367. package/dist/astro/routes/api/taxonomies/_name_.mjs +30 -29
  368. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  369. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +44 -43
  370. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
  371. package/dist/astro/routes/api/taxonomies/index.mjs +30 -29
  372. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  373. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  374. package/dist/astro/routes/api/typegen.mjs +6 -6
  375. package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
  376. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +21 -21
  377. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
  378. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  379. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  380. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  381. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +19 -19
  382. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +24 -23
  383. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  384. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +24 -23
  385. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  386. package/dist/astro/routes/api/widget-areas/_name_.mjs +13 -12
  387. package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
  388. package/dist/astro/routes/api/widget-areas/index.mjs +24 -23
  389. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  390. package/dist/astro/routes/api/widget-components.mjs +5 -5
  391. package/dist/astro/routes/robots.txt.mjs +15 -13
  392. package/dist/astro/routes/robots.txt.mjs.map +1 -1
  393. package/dist/astro/routes/sitemap-_collection_.xml.mjs +19 -17
  394. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  395. package/dist/astro/routes/sitemap.xml.mjs +16 -14
  396. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  397. package/dist/astro/types.d.mts +17 -17
  398. package/dist/audit-B8XE-0UV.mjs +127 -0
  399. package/dist/audit-B8XE-0UV.mjs.map +1 -0
  400. package/dist/auth/providers/github.d.mts +1 -1
  401. package/dist/auth/providers/google.d.mts +1 -1
  402. package/dist/auth/providers/microsoft.d.mts +1 -1
  403. package/dist/authoritative-records-LPtrIGOY.mjs +5183 -0
  404. package/dist/authoritative-records-LPtrIGOY.mjs.map +1 -0
  405. package/dist/authorize-CoDsRRp5.mjs +74 -0
  406. package/dist/authorize-CoDsRRp5.mjs.map +1 -0
  407. package/dist/backup-2Wj-hTCN.mjs +246 -0
  408. package/dist/backup-2Wj-hTCN.mjs.map +1 -0
  409. package/dist/block-types-C3gJEe7l.mjs +132 -0
  410. package/dist/block-types-C3gJEe7l.mjs.map +1 -0
  411. package/dist/block-values-CgbMtSGU.mjs +215 -0
  412. package/dist/block-values-CgbMtSGU.mjs.map +1 -0
  413. package/dist/byline-CzGZC2Zs.mjs +922 -0
  414. package/dist/byline-CzGZC2Zs.mjs.map +1 -0
  415. package/dist/byline-fields-B1qHvRps.mjs +280 -0
  416. package/dist/byline-fields-B1qHvRps.mjs.map +1 -0
  417. package/dist/byline-fields-vYd_4Q1e.mjs +123 -0
  418. package/dist/byline-fields-vYd_4Q1e.mjs.map +1 -0
  419. package/dist/byline-registry-BhzpO41z.mjs +406 -0
  420. package/dist/byline-registry-BhzpO41z.mjs.map +1 -0
  421. package/dist/bylines-BF555iIz.mjs +150 -0
  422. package/dist/bylines-BF555iIz.mjs.map +1 -0
  423. package/dist/bylines-DJx6IWWi.mjs +234 -0
  424. package/dist/bylines-DJx6IWWi.mjs.map +1 -0
  425. package/dist/cache-BWzswWB-.mjs +151 -0
  426. package/dist/cache-BWzswWB-.mjs.map +1 -0
  427. package/dist/canonical-DjF_z6GI.mjs +174 -0
  428. package/dist/canonical-DjF_z6GI.mjs.map +1 -0
  429. package/dist/capture-triggers-D7g3fOZj.mjs +362 -0
  430. package/dist/capture-triggers-D7g3fOZj.mjs.map +1 -0
  431. package/dist/challenge-store-Cfjdvw86.mjs +51 -0
  432. package/dist/challenge-store-Cfjdvw86.mjs.map +1 -0
  433. package/dist/checksum-BF4acJwn.mjs +162 -0
  434. package/dist/checksum-BF4acJwn.mjs.map +1 -0
  435. package/dist/chrome-tags-BDs29G3g.mjs +24 -0
  436. package/dist/chrome-tags-BDs29G3g.mjs.map +1 -0
  437. package/dist/chunks-CYBOL-zn.mjs +25 -0
  438. package/dist/chunks-CYBOL-zn.mjs.map +1 -0
  439. package/dist/cli/index.mjs +67 -65
  440. package/dist/cli/index.mjs.map +1 -1
  441. package/dist/client/cf-access.d.mts +1 -1
  442. package/dist/client/index.d.mts +48 -48
  443. package/dist/client/index.d.mts.map +1 -1
  444. package/dist/client/index.mjs +4 -3
  445. package/dist/client/index.mjs.map +1 -1
  446. package/dist/collection-slugs-cache-B2J5aESO.mjs +91 -0
  447. package/dist/collection-slugs-cache-B2J5aESO.mjs.map +1 -0
  448. package/dist/comment-DV7dybcs.mjs +335 -0
  449. package/dist/comment-DV7dybcs.mjs.map +1 -0
  450. package/dist/comment-reaction-CWwqiT6x.mjs +85 -0
  451. package/dist/comment-reaction-CWwqiT6x.mjs.map +1 -0
  452. package/dist/comments-DVjWJm8X.mjs +99 -0
  453. package/dist/comments-DVjWJm8X.mjs.map +1 -0
  454. package/dist/comments-Q-ILHCEI.mjs +195 -0
  455. package/dist/comments-Q-ILHCEI.mjs.map +1 -0
  456. package/dist/components-DnOmvvgg.mjs +112 -0
  457. package/dist/components-DnOmvvgg.mjs.map +1 -0
  458. package/dist/config-9IzA83_U.d.mts +6811 -0
  459. package/dist/config-9IzA83_U.d.mts.map +1 -0
  460. package/dist/config-BdQzFtmR.mjs +228 -0
  461. package/dist/config-BdQzFtmR.mjs.map +1 -0
  462. package/dist/config-Cs2RBkJ6.d.mts +41 -0
  463. package/dist/config-Cs2RBkJ6.d.mts.map +1 -0
  464. package/dist/config-Cs_AwWXI.mjs +106 -0
  465. package/dist/config-Cs_AwWXI.mjs.map +1 -0
  466. package/dist/connection-CiXgZyCY.mjs +36 -0
  467. package/dist/connection-CiXgZyCY.mjs.map +1 -0
  468. package/dist/content-Dt0Os_WQ.mjs +2109 -0
  469. package/dist/content-Dt0Os_WQ.mjs.map +1 -0
  470. package/dist/content-list-query-BK26u9Ly.d.mts +26 -0
  471. package/dist/content-list-query-BK26u9Ly.d.mts.map +1 -0
  472. package/dist/content-policy-BLDbNJOb.mjs +46 -0
  473. package/dist/content-policy-BLDbNJOb.mjs.map +1 -0
  474. package/dist/content-repair-CjwbLy4m.mjs +442 -0
  475. package/dist/content-repair-CjwbLy4m.mjs.map +1 -0
  476. package/dist/context-ErV7UdQY.mjs +2089 -0
  477. package/dist/context-ErV7UdQY.mjs.map +1 -0
  478. package/dist/credits-BRyjafiF.mjs +110 -0
  479. package/dist/credits-BRyjafiF.mjs.map +1 -0
  480. package/dist/cron-Bm5xa7tv.mjs +306 -0
  481. package/dist/cron-Bm5xa7tv.mjs.map +1 -0
  482. package/dist/dashboard-DVxQ5XiI.mjs +168 -0
  483. package/dist/dashboard-DVxQ5XiI.mjs.map +1 -0
  484. package/dist/database/migration-lock.mjs +1 -1
  485. package/dist/db/index.d.mts +3 -3
  486. package/dist/db/index.mjs +2 -2
  487. package/dist/db/libsql-migrations.d.mts +1 -1
  488. package/dist/db/libsql-migrations.mjs +5 -5
  489. package/dist/db/libsql.d.mts +1 -1
  490. package/dist/db/postgres-migrations.d.mts +1 -1
  491. package/dist/db/postgres-migrations.mjs +5 -5
  492. package/dist/db/postgres.d.mts +1 -1
  493. package/dist/db/sqlite-migrations.d.mts +1 -1
  494. package/dist/db/sqlite-migrations.mjs +5 -5
  495. package/dist/db/sqlite.d.mts +1 -1
  496. package/dist/db/sqlite.mjs +1 -1
  497. package/dist/db-errors-unnO6yiZ.mjs +65 -0
  498. package/dist/db-errors-unnO6yiZ.mjs.map +1 -0
  499. package/dist/default-B9Tf2n94.mjs +81 -0
  500. package/dist/default-B9Tf2n94.mjs.map +1 -0
  501. package/dist/deferred-tasks-CpPEqsga.d.mts +9 -0
  502. package/dist/deferred-tasks-CpPEqsga.d.mts.map +1 -0
  503. package/dist/destination-DR3IHjmy.mjs +18 -0
  504. package/dist/destination-DR3IHjmy.mjs.map +1 -0
  505. package/dist/dev-typegen-ZeWYV8Jp.mjs +29 -0
  506. package/dist/dev-typegen-ZeWYV8Jp.mjs.map +1 -0
  507. package/dist/device-flow-BbYNZ9Xi.mjs +521 -0
  508. package/dist/device-flow-BbYNZ9Xi.mjs.map +1 -0
  509. package/dist/digest-DlBa7kJl.mjs +194 -0
  510. package/dist/digest-DlBa7kJl.mjs.map +1 -0
  511. package/dist/direct-executor-5T8gkhvA.mjs +117 -0
  512. package/dist/direct-executor-5T8gkhvA.mjs.map +1 -0
  513. package/dist/dist-DY0aOmAP.mjs +810 -0
  514. package/dist/dist-DY0aOmAP.mjs.map +1 -0
  515. package/dist/email-console-v3OM8It-.mjs +50 -0
  516. package/dist/email-console-v3OM8It-.mjs.map +1 -0
  517. package/dist/email-locale-CoZo-oZx.mjs +25 -0
  518. package/dist/email-locale-CoZo-oZx.mjs.map +1 -0
  519. package/dist/emdash-runtime-DwezbIqQ.mjs +4392 -0
  520. package/dist/emdash-runtime-DwezbIqQ.mjs.map +1 -0
  521. package/dist/enrich-C3XIJi0O.mjs +194 -0
  522. package/dist/enrich-C3XIJi0O.mjs.map +1 -0
  523. package/dist/entry-lock-CY7XpdSw.d.mts +4568 -0
  524. package/dist/entry-lock-CY7XpdSw.d.mts.map +1 -0
  525. package/dist/entry-lock-DDuWaAiP.mjs +1211 -0
  526. package/dist/entry-lock-DDuWaAiP.mjs.map +1 -0
  527. package/dist/entry-lock-D_Og9Gy3.mjs +163 -0
  528. package/dist/entry-lock-D_Og9Gy3.mjs.map +1 -0
  529. package/dist/entry-locks-Cp8_BcQQ.mjs +167 -0
  530. package/dist/entry-locks-Cp8_BcQQ.mjs.map +1 -0
  531. package/dist/env-types-Br8uywYA.mjs +38 -0
  532. package/dist/env-types-Br8uywYA.mjs.map +1 -0
  533. package/dist/error-CT2SsX5S.mjs +90 -0
  534. package/dist/error-CT2SsX5S.mjs.map +1 -0
  535. package/dist/errors-BMaCpLeS.mjs +479 -0
  536. package/dist/errors-BMaCpLeS.mjs.map +1 -0
  537. package/dist/errors-DlJwot7q.mjs +120 -0
  538. package/dist/errors-DlJwot7q.mjs.map +1 -0
  539. package/dist/escape-BfbDyuQ-.mjs +9 -0
  540. package/dist/escape-BfbDyuQ-.mjs.map +1 -0
  541. package/dist/fence-BOD3SxZG.mjs +162 -0
  542. package/dist/fence-BOD3SxZG.mjs.map +1 -0
  543. package/dist/field-defs-cache-C7sR7ZeU.mjs +77 -0
  544. package/dist/field-defs-cache-C7sR7ZeU.mjs.map +1 -0
  545. package/dist/field-map-C_rDXfdJ.mjs +84 -0
  546. package/dist/field-map-C_rDXfdJ.mjs.map +1 -0
  547. package/dist/focal-point-CgCcr1Ca.mjs +23 -0
  548. package/dist/focal-point-CgCcr1Ca.mjs.map +1 -0
  549. package/dist/fts-manager-BzFo0xx6.mjs +483 -0
  550. package/dist/fts-manager-BzFo0xx6.mjs.map +1 -0
  551. package/dist/gc-B_c3DPpi.mjs +75 -0
  552. package/dist/gc-B_c3DPpi.mjs.map +1 -0
  553. package/dist/hash-A-o2ZX8O.mjs +37 -0
  554. package/dist/hash-A-o2ZX8O.mjs.map +1 -0
  555. package/dist/hook-result-f8t7hIuu.d.mts +31 -0
  556. package/dist/hook-result-f8t7hIuu.d.mts.map +1 -0
  557. package/dist/hreflang-BpUK9Lcu.mjs +105 -0
  558. package/dist/hreflang-BpUK9Lcu.mjs.map +1 -0
  559. package/dist/hreflang-D07R-RbI.d.mts +50 -0
  560. package/dist/hreflang-D07R-RbI.d.mts.map +1 -0
  561. package/dist/http-route-dispatch-C2Ep2Uf6.mjs +342 -0
  562. package/dist/http-route-dispatch-C2Ep2Uf6.mjs.map +1 -0
  563. package/dist/identity-BivQ8wkV.mjs +35 -0
  564. package/dist/identity-BivQ8wkV.mjs.map +1 -0
  565. package/dist/import-B4UvHNJz.mjs +2126 -0
  566. package/dist/import-B4UvHNJz.mjs.map +1 -0
  567. package/dist/index-C37Ty40w.d.mts +623 -0
  568. package/dist/index-C37Ty40w.d.mts.map +1 -0
  569. package/dist/index.d.mts +23 -23
  570. package/dist/index.mjs +112 -110
  571. package/dist/install-finalization-BbYaB4wj.mjs +58 -0
  572. package/dist/install-finalization-BbYaB4wj.mjs.map +1 -0
  573. package/dist/json-recordset-BjYIWFkV.mjs +12 -0
  574. package/dist/json-recordset-BjYIWFkV.mjs.map +1 -0
  575. package/dist/json-schema-Cde7le0s.mjs +15 -0
  576. package/dist/json-schema-Cde7le0s.mjs.map +1 -0
  577. package/dist/keys-CusTXpw-.mjs +61 -0
  578. package/dist/keys-CusTXpw-.mjs.map +1 -0
  579. package/dist/kinds-DogmNB6n.mjs +974 -0
  580. package/dist/kinds-DogmNB6n.mjs.map +1 -0
  581. package/dist/lifecycle-BLCoCz4T.mjs +25 -0
  582. package/dist/lifecycle-BLCoCz4T.mjs.map +1 -0
  583. package/dist/load-Dds3KhXr.mjs +28 -0
  584. package/dist/load-Dds3KhXr.mjs.map +1 -0
  585. package/dist/loader-D4w4XE7q.mjs +1420 -0
  586. package/dist/loader-D4w4XE7q.mjs.map +1 -0
  587. package/dist/loops-IYgzQdQu.mjs +205 -0
  588. package/dist/loops-IYgzQdQu.mjs.map +1 -0
  589. package/dist/manifest-builder-CGF5kujD.mjs +196 -0
  590. package/dist/manifest-builder-CGF5kujD.mjs.map +1 -0
  591. package/dist/manifest-schema-B0BxPSjB.mjs +497 -0
  592. package/dist/manifest-schema-B0BxPSjB.mjs.map +1 -0
  593. package/dist/marketplace-DNvEGLqU.mjs +257 -0
  594. package/dist/marketplace-DNvEGLqU.mjs.map +1 -0
  595. package/dist/media/image-endpoint.d.mts +3 -2
  596. package/dist/media/image-endpoint.d.mts.map +1 -1
  597. package/dist/media/image-endpoint.mjs +17 -8
  598. package/dist/media/image-endpoint.mjs.map +1 -1
  599. package/dist/media/index.d.mts +1 -1
  600. package/dist/media/index.mjs +7 -6
  601. package/dist/media/index.mjs.map +1 -1
  602. package/dist/media/local-runtime.d.mts +14 -14
  603. package/dist/media/local-runtime.d.mts.map +1 -1
  604. package/dist/media/local-runtime.mjs +18 -13
  605. package/dist/media/local-runtime.mjs.map +1 -1
  606. package/dist/media-BL9MRrSG.mjs +294 -0
  607. package/dist/media-BL9MRrSG.mjs.map +1 -0
  608. package/dist/media-B_x5B9EA.mjs +373 -0
  609. package/dist/media-B_x5B9EA.mjs.map +1 -0
  610. package/dist/media-allowlist-CpmqBbIQ.mjs +45 -0
  611. package/dist/media-allowlist-CpmqBbIQ.mjs.map +1 -0
  612. package/dist/media-folders-CNs_A_B-.mjs +210 -0
  613. package/dist/media-folders-CNs_A_B-.mjs.map +1 -0
  614. package/dist/media-qTTHVkls.mjs +416 -0
  615. package/dist/media-qTTHVkls.mjs.map +1 -0
  616. package/dist/media-url-GJboA1fl.mjs +43 -0
  617. package/dist/media-url-GJboA1fl.mjs.map +1 -0
  618. package/dist/media-usage-ClWgrX0d.mjs +282 -0
  619. package/dist/media-usage-ClWgrX0d.mjs.map +1 -0
  620. package/dist/media-usage-activation-B8Fjtq0h.mjs +78 -0
  621. package/dist/media-usage-activation-B8Fjtq0h.mjs.map +1 -0
  622. package/dist/media-usage-work-L8-Au4j-.mjs +1036 -0
  623. package/dist/media-usage-work-L8-Au4j-.mjs.map +1 -0
  624. package/dist/media-usage-work-LXgze5j9.mjs +151 -0
  625. package/dist/media-usage-work-LXgze5j9.mjs.map +1 -0
  626. package/dist/menus-BAxcbsbv.mjs +818 -0
  627. package/dist/menus-BAxcbsbv.mjs.map +1 -0
  628. package/dist/menus-BI6oBXco.mjs +92 -0
  629. package/dist/menus-BI6oBXco.mjs.map +1 -0
  630. package/dist/menus-fvGFd4m6.mjs +3725 -0
  631. package/dist/menus-fvGFd4m6.mjs.map +1 -0
  632. package/dist/migrations/index.d.mts +1 -1
  633. package/dist/migrations/index.mjs +4 -4
  634. package/dist/mime-DwhtRyUt.mjs +81 -0
  635. package/dist/mime-DwhtRyUt.mjs.map +1 -0
  636. package/dist/mode-DIDSUwuN.mjs +23 -0
  637. package/dist/mode-DIDSUwuN.mjs.map +1 -0
  638. package/dist/node-sqlite-compat-Ddr_mlR9.mjs +63 -0
  639. package/dist/node-sqlite-compat-Ddr_mlR9.mjs.map +1 -0
  640. package/dist/normalize-Ip_hFAm8.mjs +216 -0
  641. package/dist/normalize-Ip_hFAm8.mjs.map +1 -0
  642. package/dist/oauth-authorization-CcMgeT8R.mjs +274 -0
  643. package/dist/oauth-authorization-CcMgeT8R.mjs.map +1 -0
  644. package/dist/oauth-clients-C_osi0PU.mjs +266 -0
  645. package/dist/oauth-clients-C_osi0PU.mjs.map +1 -0
  646. package/dist/oauth-state-store-DGLP-6CK.mjs +50 -0
  647. package/dist/oauth-state-store-DGLP-6CK.mjs.map +1 -0
  648. package/dist/oauth-user-lookup-z77Ee0Hm.mjs +26 -0
  649. package/dist/oauth-user-lookup-z77Ee0Hm.mjs.map +1 -0
  650. package/dist/object-cache/memory.d.mts +1 -1
  651. package/dist/object-cache-EjasjtoQ.mjs +586 -0
  652. package/dist/object-cache-EjasjtoQ.mjs.map +1 -0
  653. package/dist/options-CmUpkyKW.d.mts +81 -0
  654. package/dist/options-CmUpkyKW.d.mts.map +1 -0
  655. package/dist/ownership-DCk5NutQ.mjs +12 -0
  656. package/dist/ownership-DCk5NutQ.mjs.map +1 -0
  657. package/dist/page/index.d.mts +2 -2
  658. package/dist/page/index.mjs +14 -12
  659. package/dist/page/index.mjs.map +1 -1
  660. package/dist/parse-2W-E2f7w.mjs +81 -0
  661. package/dist/parse-2W-E2f7w.mjs.map +1 -0
  662. package/dist/parse-6pN8Xqg5.d.mts +176 -0
  663. package/dist/parse-6pN8Xqg5.d.mts.map +1 -0
  664. package/dist/passkey-config-DTTZB6EI.mjs +46 -0
  665. package/dist/passkey-config-DTTZB6EI.mjs.map +1 -0
  666. package/dist/paths-CQA62503.mjs +77 -0
  667. package/dist/paths-CQA62503.mjs.map +1 -0
  668. package/dist/patterns-CryGz_EV.mjs +159 -0
  669. package/dist/patterns-CryGz_EV.mjs.map +1 -0
  670. package/dist/placeholder-BlfXkucE.d.mts +313 -0
  671. package/dist/placeholder-BlfXkucE.d.mts.map +1 -0
  672. package/dist/plan-B95eiwnF.mjs +135 -0
  673. package/dist/plan-B95eiwnF.mjs.map +1 -0
  674. package/dist/plugin-test-runtime.d.mts +14 -14
  675. package/dist/plugin-test-runtime.d.mts.map +1 -1
  676. package/dist/plugin-test-runtime.mjs +121 -119
  677. package/dist/plugin-tool-name-BDA7m4Xa.mjs +27 -0
  678. package/dist/plugin-tool-name-BDA7m4Xa.mjs.map +1 -0
  679. package/dist/plugin-types.d.mts +2 -2
  680. package/dist/plugin-utils.d.mts +12 -12
  681. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  682. package/dist/plugins/adapt-sandbox-entry.mjs +4 -4
  683. package/dist/plugins/host.d.mts +5 -5
  684. package/dist/plugins/host.mjs +57 -55
  685. package/dist/plugins-BhxLJ008.mjs +261 -0
  686. package/dist/plugins-BhxLJ008.mjs.map +1 -0
  687. package/dist/policy-DOJ2sPqB.mjs +53 -0
  688. package/dist/policy-DOJ2sPqB.mjs.map +1 -0
  689. package/dist/portable-text-RCMpCj47.mjs +311 -0
  690. package/dist/portable-text-RCMpCj47.mjs.map +1 -0
  691. package/dist/preview-DFwL5APO.mjs +107 -0
  692. package/dist/preview-DFwL5APO.mjs.map +1 -0
  693. package/dist/protocol-B-ztxp_y.d.mts +65 -0
  694. package/dist/protocol-B-ztxp_y.d.mts.map +1 -0
  695. package/dist/public-plugin-api-routes-ik4fPZMv.mjs +316 -0
  696. package/dist/public-plugin-api-routes-ik4fPZMv.mjs.map +1 -0
  697. package/dist/public-submission-C5JZIykp.mjs +251 -0
  698. package/dist/public-submission-C5JZIykp.mjs.map +1 -0
  699. package/dist/public-url-CQwzRljH.mjs +101 -0
  700. package/dist/public-url-CQwzRljH.mjs.map +1 -0
  701. package/dist/query-BFHjCzSh.mjs +37 -0
  702. package/dist/query-BFHjCzSh.mjs.map +1 -0
  703. package/dist/query-DuwyFr5Z.mjs +41 -0
  704. package/dist/query-DuwyFr5Z.mjs.map +1 -0
  705. package/dist/query-eR_Nz70M.mjs +1157 -0
  706. package/dist/query-eR_Nz70M.mjs.map +1 -0
  707. package/dist/range-BQWPjWgQ.mjs +51 -0
  708. package/dist/range-BQWPjWgQ.mjs.map +1 -0
  709. package/dist/rate-limit-mPKeQ3sm.mjs +127 -0
  710. package/dist/rate-limit-mPKeQ3sm.mjs.map +1 -0
  711. package/dist/receipt-CmUpyuW5.mjs +43 -0
  712. package/dist/receipt-CmUpyuW5.mjs.map +1 -0
  713. package/dist/redirect-BtiMkehU.mjs +19 -0
  714. package/dist/redirect-BtiMkehU.mjs.map +1 -0
  715. package/dist/redirect-DcmNMvOs.mjs +423 -0
  716. package/dist/redirect-DcmNMvOs.mjs.map +1 -0
  717. package/dist/redirect-paths-K5i3xYfR.mjs +36 -0
  718. package/dist/redirect-paths-K5i3xYfR.mjs.map +1 -0
  719. package/dist/redirects-BA_TvtuH.mjs +148 -0
  720. package/dist/redirects-BA_TvtuH.mjs.map +1 -0
  721. package/dist/redirects-BIrRvgn4.mjs +446 -0
  722. package/dist/redirects-BIrRvgn4.mjs.map +1 -0
  723. package/dist/registry/testing.mjs +3 -3
  724. package/dist/registry-DymfZkAN.mjs +8374 -0
  725. package/dist/registry-DymfZkAN.mjs.map +1 -0
  726. package/dist/relations-DrEs3Sc1.mjs +789 -0
  727. package/dist/relations-DrEs3Sc1.mjs.map +1 -0
  728. package/dist/request-cache-5z2WzWmh.mjs +104 -0
  729. package/dist/request-cache-5z2WzWmh.mjs.map +1 -0
  730. package/dist/request-context.d.mts +12 -1
  731. package/dist/request-context.d.mts.map +1 -1
  732. package/dist/request-context.mjs.map +1 -1
  733. package/dist/request-meta-o8RIf9pa.mjs +141 -0
  734. package/dist/request-meta-o8RIf9pa.mjs.map +1 -0
  735. package/dist/resolve-CVy9xgy_.mjs +102 -0
  736. package/dist/resolve-CVy9xgy_.mjs.map +1 -0
  737. package/dist/resolve-DdNXBJSr.mjs +199 -0
  738. package/dist/resolve-DdNXBJSr.mjs.map +1 -0
  739. package/dist/revision-Dx7Uth1X.mjs +374 -0
  740. package/dist/revision-Dx7Uth1X.mjs.map +1 -0
  741. package/dist/route-cache-DAG5dPhh.mjs +20 -0
  742. package/dist/route-cache-DAG5dPhh.mjs.map +1 -0
  743. package/dist/route-wire-Xbsu8Vih.mjs +197 -0
  744. package/dist/route-wire-Xbsu8Vih.mjs.map +1 -0
  745. package/dist/routes-YQkSOsws.mjs +272 -0
  746. package/dist/routes-YQkSOsws.mjs.map +1 -0
  747. package/dist/runner-CLorw5vo.mjs +6669 -0
  748. package/dist/runner-CLorw5vo.mjs.map +1 -0
  749. package/dist/runner-g1A9P-wD.d.mts +73 -0
  750. package/dist/runner-g1A9P-wD.d.mts.map +1 -0
  751. package/dist/runtime.d.mts +13 -13
  752. package/dist/runtime.mjs +6 -5
  753. package/dist/runtime.mjs.map +1 -1
  754. package/dist/schema/project-env-types.mjs +49 -47
  755. package/dist/schema/project-env-types.mjs.map +1 -1
  756. package/dist/schema-Bss8qImF.mjs +13 -0
  757. package/dist/schema-Bss8qImF.mjs.map +1 -0
  758. package/dist/schema-C036pqEw.mjs +815 -0
  759. package/dist/schema-C036pqEw.mjs.map +1 -0
  760. package/dist/scopes-C_SoYl9x.mjs +34 -0
  761. package/dist/scopes-C_SoYl9x.mjs.map +1 -0
  762. package/dist/search-uNqCgePJ.mjs +450 -0
  763. package/dist/search-uNqCgePJ.mjs.map +1 -0
  764. package/dist/sections-BLusMa96.mjs +346 -0
  765. package/dist/sections-BLusMa96.mjs.map +1 -0
  766. package/dist/seed/index.d.mts +2 -2
  767. package/dist/seed/index.mjs +47 -45
  768. package/dist/seo/index.d.mts +3 -3
  769. package/dist/seo/index.mjs +32 -30
  770. package/dist/seo/index.mjs.map +1 -1
  771. package/dist/seo-BodxIpws.mjs +188 -0
  772. package/dist/seo-BodxIpws.mjs.map +1 -0
  773. package/dist/seo-DaMYIQY8.mjs +133 -0
  774. package/dist/seo-DaMYIQY8.mjs.map +1 -0
  775. package/dist/service-BuM1BRsA.mjs +150 -0
  776. package/dist/service-BuM1BRsA.mjs.map +1 -0
  777. package/dist/session-user-2DpQDMKw.mjs +61 -0
  778. package/dist/session-user-2DpQDMKw.mjs.map +1 -0
  779. package/dist/settings-B3ZmPF_8.mjs +73 -0
  780. package/dist/settings-B3ZmPF_8.mjs.map +1 -0
  781. package/dist/settings-P5hwPX6_.mjs +66 -0
  782. package/dist/settings-P5hwPX6_.mjs.map +1 -0
  783. package/dist/settings-yIqoN-Ok.mjs +519 -0
  784. package/dist/settings-yIqoN-Ok.mjs.map +1 -0
  785. package/dist/setup-complete-eu6MUQnt.mjs +65 -0
  786. package/dist/setup-complete-eu6MUQnt.mjs.map +1 -0
  787. package/dist/setup-nonce-CyPOapqY.mjs +25 -0
  788. package/dist/setup-nonce-CyPOapqY.mjs.map +1 -0
  789. package/dist/site-domain-8lEJl_0U.mjs +131 -0
  790. package/dist/site-domain-8lEJl_0U.mjs.map +1 -0
  791. package/dist/site-settings-uPkW0e6o.mjs +50 -0
  792. package/dist/site-settings-uPkW0e6o.mjs.map +1 -0
  793. package/dist/site-url-25SGVXwL.mjs +45 -0
  794. package/dist/site-url-25SGVXwL.mjs.map +1 -0
  795. package/dist/sitemap-name-DTK7CYnY.mjs +26 -0
  796. package/dist/sitemap-name-DTK7CYnY.mjs.map +1 -0
  797. package/dist/slug-BEDl2IJY.mjs +16 -0
  798. package/dist/slug-BEDl2IJY.mjs.map +1 -0
  799. package/dist/slugify-BDEG9pLk.mjs +22 -0
  800. package/dist/slugify-BDEG9pLk.mjs.map +1 -0
  801. package/dist/snapshot-CvkIBRLY.mjs +414 -0
  802. package/dist/snapshot-CvkIBRLY.mjs.map +1 -0
  803. package/dist/ssrf-mcCKMH6B.mjs +406 -0
  804. package/dist/ssrf-mcCKMH6B.mjs.map +1 -0
  805. package/dist/stage-BQfGzGOy.mjs +662 -0
  806. package/dist/stage-BQfGzGOy.mjs.map +1 -0
  807. package/dist/staged-B5vQGeSf.mjs +686 -0
  808. package/dist/staged-B5vQGeSf.mjs.map +1 -0
  809. package/dist/state-dO6t6OxV.mjs +178 -0
  810. package/dist/state-dO6t6OxV.mjs.map +1 -0
  811. package/dist/status-DSURZwKS.mjs +30 -0
  812. package/dist/status-DSURZwKS.mjs.map +1 -0
  813. package/dist/storage/local.d.mts +1 -1
  814. package/dist/storage/local.mjs +2 -2
  815. package/dist/storage/s3.d.mts +1 -1
  816. package/dist/storage/s3.mjs +1 -1
  817. package/dist/storage-query-Cy0SZ8iG.d.mts +1619 -0
  818. package/dist/storage-query-Cy0SZ8iG.d.mts.map +1 -0
  819. package/dist/tar-DWzcUZ_Q.mjs +449 -0
  820. package/dist/tar-DWzcUZ_Q.mjs.map +1 -0
  821. package/dist/target-C9htUbrT.mjs +27 -0
  822. package/dist/target-C9htUbrT.mjs.map +1 -0
  823. package/dist/taxonomies-By2aGvq2.mjs +729 -0
  824. package/dist/taxonomies-By2aGvq2.mjs.map +1 -0
  825. package/dist/taxonomies-CVRd_jz0.mjs +937 -0
  826. package/dist/taxonomies-CVRd_jz0.mjs.map +1 -0
  827. package/dist/taxonomy-BG_xu2Qf.mjs +563 -0
  828. package/dist/taxonomy-BG_xu2Qf.mjs.map +1 -0
  829. package/dist/tokens-U5vzgSrM.mjs +171 -0
  830. package/dist/tokens-U5vzgSrM.mjs.map +1 -0
  831. package/dist/transaction-CkoQ5wqQ.mjs +29 -0
  832. package/dist/transaction-CkoQ5wqQ.mjs.map +1 -0
  833. package/dist/transfer-DA0OSfaT.mjs +8873 -0
  834. package/dist/transfer-DA0OSfaT.mjs.map +1 -0
  835. package/dist/transfer-Pyf3d7ka.mjs +166 -0
  836. package/dist/transfer-Pyf3d7ka.mjs.map +1 -0
  837. package/dist/transfer-download-cX7SuWEy.mjs +33 -0
  838. package/dist/transfer-download-cX7SuWEy.mjs.map +1 -0
  839. package/dist/transformations-DczubD4j.mjs +196 -0
  840. package/dist/transformations-DczubD4j.mjs.map +1 -0
  841. package/dist/transport-Dm5QzpT_.d.mts +42 -0
  842. package/dist/transport-Dm5QzpT_.d.mts.map +1 -0
  843. package/dist/transport-DtIrjEFO.mjs +137 -0
  844. package/dist/transport-DtIrjEFO.mjs.map +1 -0
  845. package/dist/trusted-proxy-CDRd5Kmw.mjs +51 -0
  846. package/dist/trusted-proxy-CDRd5Kmw.mjs.map +1 -0
  847. package/dist/turnstile-Ct5YuFNY.mjs +58 -0
  848. package/dist/turnstile-Ct5YuFNY.mjs.map +1 -0
  849. package/dist/types-Bgujop4S.d.mts +374 -0
  850. package/dist/types-Bgujop4S.d.mts.map +1 -0
  851. package/dist/types-BirHUEXt.mjs +18 -0
  852. package/dist/types-BirHUEXt.mjs.map +1 -0
  853. package/dist/types-BqJgTL_y.d.mts +293 -0
  854. package/dist/types-BqJgTL_y.d.mts.map +1 -0
  855. package/dist/types-C-lrOt9T.d.mts +87 -0
  856. package/dist/types-C-lrOt9T.d.mts.map +1 -0
  857. package/dist/types-CCEHAhOv.d.mts +916 -0
  858. package/dist/types-CCEHAhOv.d.mts.map +1 -0
  859. package/dist/types-CLVwYRBr.d.mts +227 -0
  860. package/dist/types-CLVwYRBr.d.mts.map +1 -0
  861. package/dist/types-C_asjp1J.mjs +201 -0
  862. package/dist/types-C_asjp1J.mjs.map +1 -0
  863. package/dist/types-CadaL_k8.d.mts +366 -0
  864. package/dist/types-CadaL_k8.d.mts.map +1 -0
  865. package/dist/types-DVbTb4Hk.mjs +77 -0
  866. package/dist/types-DVbTb4Hk.mjs.map +1 -0
  867. package/dist/types-Ddku19Zw.d.mts +209 -0
  868. package/dist/types-Ddku19Zw.d.mts.map +1 -0
  869. package/dist/types-DwhEvIVb.mjs +133 -0
  870. package/dist/types-DwhEvIVb.mjs.map +1 -0
  871. package/dist/types-FIiGQ3PE.mjs +16 -0
  872. package/dist/types-FIiGQ3PE.mjs.map +1 -0
  873. package/dist/types-OauzCOY0.mjs +37 -0
  874. package/dist/types-OauzCOY0.mjs.map +1 -0
  875. package/dist/types-mQGTpP-4.d.mts +1741 -0
  876. package/dist/types-mQGTpP-4.d.mts.map +1 -0
  877. package/dist/types-nbjz3Mgm.d.mts +125 -0
  878. package/dist/types-nbjz3Mgm.d.mts.map +1 -0
  879. package/dist/update-check-hW32-0pf.mjs +161 -0
  880. package/dist/update-check-hW32-0pf.mjs.map +1 -0
  881. package/dist/upload-attempts-Bpik1TLF.mjs +32 -0
  882. package/dist/upload-attempts-Bpik1TLF.mjs.map +1 -0
  883. package/dist/url-DTfGDJhI.mjs +104 -0
  884. package/dist/url-DTfGDJhI.mjs.map +1 -0
  885. package/dist/url-pattern-CJeCyNij.mjs +41 -0
  886. package/dist/url-pattern-CJeCyNij.mjs.map +1 -0
  887. package/dist/user-nQInBZbE.mjs +171 -0
  888. package/dist/user-nQInBZbE.mjs.map +1 -0
  889. package/dist/utils-govudc_U.mjs +442 -0
  890. package/dist/utils-govudc_U.mjs.map +1 -0
  891. package/dist/validate-BxLvcDYh.mjs +524 -0
  892. package/dist/validate-BxLvcDYh.mjs.map +1 -0
  893. package/dist/validate-mnoVfASU.d.mts +468 -0
  894. package/dist/validate-mnoVfASU.d.mts.map +1 -0
  895. package/dist/validation-DQDEvh87.mjs +221 -0
  896. package/dist/validation-DQDEvh87.mjs.map +1 -0
  897. package/dist/version-BOFfLiVT.mjs +49 -0
  898. package/dist/version-BOFfLiVT.mjs.map +1 -0
  899. package/dist/version-Dcvx_C9g.mjs +7 -0
  900. package/dist/version-Dcvx_C9g.mjs.map +1 -0
  901. package/dist/version-DzTJ3gD7.mjs +9 -0
  902. package/dist/version-DzTJ3gD7.mjs.map +1 -0
  903. package/dist/video-BX7AI5nJ.mjs +54 -0
  904. package/dist/video-BX7AI5nJ.mjs.map +1 -0
  905. package/dist/virtual-modules-CU29aip9.mjs +515 -0
  906. package/dist/virtual-modules-CU29aip9.mjs.map +1 -0
  907. package/dist/widgets-HIeFmZxt.mjs +121 -0
  908. package/dist/widgets-HIeFmZxt.mjs.map +1 -0
  909. package/dist/wxr-taxonomies-Dy2i2ON3.d.mts +34 -0
  910. package/dist/wxr-taxonomies-Dy2i2ON3.d.mts.map +1 -0
  911. package/dist/wxr-taxonomies-DyOGhl8W.mjs +454 -0
  912. package/dist/wxr-taxonomies-DyOGhl8W.mjs.map +1 -0
  913. package/dist/zod-generator-VxCPVDpo.mjs +425 -0
  914. package/dist/zod-generator-VxCPVDpo.mjs.map +1 -0
  915. package/package.json +5 -5
  916. package/src/api/handlers/bulk-tag.ts +11 -3
  917. package/src/api/handlers/bylines.ts +6 -2
  918. package/src/api/handlers/content.ts +107 -7
  919. package/src/api/handlers/dashboard.ts +13 -6
  920. package/src/api/handlers/menus.ts +24 -10
  921. package/src/api/handlers/relations.ts +15 -1
  922. package/src/api/handlers/taxonomies.ts +27 -17
  923. package/src/astro/image-endpoint.ts +23 -2
  924. package/src/astro/integration/vite-config.ts +16 -8
  925. package/src/astro/middleware/redirect.ts +158 -63
  926. package/src/astro/middleware/request-context.ts +1 -0
  927. package/src/astro/middleware.ts +17 -4
  928. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +4 -1
  929. package/src/astro/routes/api/content/[collection]/[id]/translations.ts +14 -1
  930. package/src/astro/routes/api/dashboard.ts +2 -0
  931. package/src/astro/routes/api/media/file/[...key].ts +13 -3
  932. package/src/auth/types.ts +6 -0
  933. package/src/cli/commands/export-seed.ts +6 -4
  934. package/src/cli/commands/login.ts +2 -4
  935. package/src/client/index.ts +1 -0
  936. package/src/client/transport.ts +11 -7
  937. package/src/components/EmDashImage.astro +14 -2
  938. package/src/components/InlinePortableTextEditor.tsx +4 -1
  939. package/src/database/migrations/content-sized.ts +82 -0
  940. package/src/database/migrations/policy.ts +28 -2
  941. package/src/database/migrations/runner.ts +48 -0
  942. package/src/database/repositories/byline.ts +73 -17
  943. package/src/database/repositories/comment.ts +17 -7
  944. package/src/database/repositories/content.ts +79 -19
  945. package/src/database/repositories/menu.ts +77 -11
  946. package/src/database/repositories/taxonomy-def.ts +9 -2
  947. package/src/database/repositories/taxonomy.ts +47 -14
  948. package/src/database/repositories/types.ts +11 -0
  949. package/src/emdash-runtime.ts +37 -10
  950. package/src/fields/image.ts +1 -0
  951. package/src/i18n/config.ts +58 -10
  952. package/src/i18n/normalize.ts +16 -2
  953. package/src/i18n/query.ts +47 -0
  954. package/src/i18n/resolve.ts +8 -3
  955. package/src/import/wxr-taxonomies.ts +3 -2
  956. package/src/loader.ts +80 -22
  957. package/src/mcp/server.ts +28 -1
  958. package/src/media/caption.ts +30 -0
  959. package/src/media/image-endpoint.ts +13 -6
  960. package/src/media/local-runtime.ts +3 -0
  961. package/src/media/normalize.ts +15 -8
  962. package/src/media/responsive.ts +12 -2
  963. package/src/media/types.ts +16 -3
  964. package/src/menus/index.ts +21 -11
  965. package/src/migrations/manifest.ts +1 -0
  966. package/src/plugins/byline-access.ts +3 -1
  967. package/src/plugins/context.ts +1 -2
  968. package/src/plugins/storage-indexes.ts +7 -3
  969. package/src/query.ts +23 -13
  970. package/src/redirects/artifacts.ts +39 -5
  971. package/src/references/field-map.ts +6 -4
  972. package/src/request-context.ts +8 -0
  973. package/src/schema/collection-slugs-cache.ts +31 -17
  974. package/src/schema/registry.ts +9 -0
  975. package/src/schema/zod-generator.ts +2 -1
  976. package/src/search/fts-manager.ts +98 -28
  977. package/src/search/query.ts +31 -64
  978. package/src/seed/apply.ts +191 -87
  979. package/src/seed/types.ts +3 -1
  980. package/src/settings/index.ts +135 -35
  981. package/src/settings/version.ts +54 -0
  982. package/src/taxonomies/index.ts +95 -52
  983. package/src/taxonomies/term-counts.ts +2 -1
  984. package/src/utils/db-errors.ts +15 -0
  985. package/src/virtual-modules.d.ts +1 -0
  986. package/dist/action-token-SK8zyN7w.mjs +0 -26
  987. package/dist/action-token-SK8zyN7w.mjs.map +0 -1
  988. package/dist/activation-Dim4YMM7.mjs +0 -387
  989. package/dist/activation-Dim4YMM7.mjs.map +0 -1
  990. package/dist/adapters-F_xorvWv.d.mts +0 -173
  991. package/dist/adapters-F_xorvWv.d.mts.map +0 -1
  992. package/dist/allowed-origins-CEug-p0t.mjs +0 -116
  993. package/dist/allowed-origins-CEug-p0t.mjs.map +0 -1
  994. package/dist/api-D-7BNHoz.mjs +0 -5025
  995. package/dist/api-D-7BNHoz.mjs.map +0 -1
  996. package/dist/api-tokens-Bx38ZCQp.mjs +0 -173
  997. package/dist/api-tokens-Bx38ZCQp.mjs.map +0 -1
  998. package/dist/apply-T7ATgzCh.mjs +0 -1702
  999. package/dist/apply-T7ATgzCh.mjs.map +0 -1
  1000. package/dist/approvals-D-m6wvGl.mjs +0 -460
  1001. package/dist/approvals-D-m6wvGl.mjs.map +0 -1
  1002. package/dist/artifact-fetch-DIh7iyOV.mjs +0 -659
  1003. package/dist/artifact-fetch-DIh7iyOV.mjs.map +0 -1
  1004. package/dist/artifacts-htGyfCSt.mjs +0 -307
  1005. package/dist/artifacts-htGyfCSt.mjs.map +0 -1
  1006. package/dist/audit-_gieLVGU.mjs +0 -127
  1007. package/dist/audit-_gieLVGU.mjs.map +0 -1
  1008. package/dist/authoritative-records-CQlB3JzE.mjs +0 -5183
  1009. package/dist/authoritative-records-CQlB3JzE.mjs.map +0 -1
  1010. package/dist/authorize-DPFBGbE6.mjs +0 -74
  1011. package/dist/authorize-DPFBGbE6.mjs.map +0 -1
  1012. package/dist/backup-3FgVxiDJ.mjs +0 -246
  1013. package/dist/backup-3FgVxiDJ.mjs.map +0 -1
  1014. package/dist/block-types-CYcG56JB.mjs +0 -132
  1015. package/dist/block-types-CYcG56JB.mjs.map +0 -1
  1016. package/dist/block-values-gCX4HBSl.mjs +0 -215
  1017. package/dist/block-values-gCX4HBSl.mjs.map +0 -1
  1018. package/dist/byline-BR1qhyiw.mjs +0 -909
  1019. package/dist/byline-BR1qhyiw.mjs.map +0 -1
  1020. package/dist/byline-fields-4ClDC88c.mjs +0 -123
  1021. package/dist/byline-fields-4ClDC88c.mjs.map +0 -1
  1022. package/dist/byline-fields-BLXZnX7N.mjs +0 -280
  1023. package/dist/byline-fields-BLXZnX7N.mjs.map +0 -1
  1024. package/dist/byline-registry-dvt4N3xV.mjs +0 -406
  1025. package/dist/byline-registry-dvt4N3xV.mjs.map +0 -1
  1026. package/dist/bylines-CVOvRUL7.mjs +0 -234
  1027. package/dist/bylines-CVOvRUL7.mjs.map +0 -1
  1028. package/dist/bylines-DxOs9B7z.mjs +0 -150
  1029. package/dist/bylines-DxOs9B7z.mjs.map +0 -1
  1030. package/dist/cache-CEU9wo_h.mjs +0 -151
  1031. package/dist/cache-CEU9wo_h.mjs.map +0 -1
  1032. package/dist/canonical-BudtH-Fx.mjs +0 -174
  1033. package/dist/canonical-BudtH-Fx.mjs.map +0 -1
  1034. package/dist/capture-triggers-CT6dK9zd.mjs +0 -362
  1035. package/dist/capture-triggers-CT6dK9zd.mjs.map +0 -1
  1036. package/dist/challenge-store-C17BYx2-.mjs +0 -51
  1037. package/dist/challenge-store-C17BYx2-.mjs.map +0 -1
  1038. package/dist/checksum-CEqvfxGX.mjs +0 -162
  1039. package/dist/checksum-CEqvfxGX.mjs.map +0 -1
  1040. package/dist/chrome-tags-BIKBMZYO.mjs +0 -24
  1041. package/dist/chrome-tags-BIKBMZYO.mjs.map +0 -1
  1042. package/dist/chunks-xC4UD5-S.mjs +0 -25
  1043. package/dist/chunks-xC4UD5-S.mjs.map +0 -1
  1044. package/dist/collection-slugs-cache-e09QeJQt.mjs +0 -85
  1045. package/dist/collection-slugs-cache-e09QeJQt.mjs.map +0 -1
  1046. package/dist/comment-UvIWDKcW.mjs +0 -325
  1047. package/dist/comment-UvIWDKcW.mjs.map +0 -1
  1048. package/dist/comment-reaction-dGp6_FRo.mjs +0 -85
  1049. package/dist/comment-reaction-dGp6_FRo.mjs.map +0 -1
  1050. package/dist/comments-pej-_BUO.mjs +0 -195
  1051. package/dist/comments-pej-_BUO.mjs.map +0 -1
  1052. package/dist/comments-yiRFx3w5.mjs +0 -99
  1053. package/dist/comments-yiRFx3w5.mjs.map +0 -1
  1054. package/dist/components-Brp__9xo.mjs +0 -112
  1055. package/dist/components-Brp__9xo.mjs.map +0 -1
  1056. package/dist/config-Bsm_u_oE.d.mts +0 -6799
  1057. package/dist/config-Bsm_u_oE.d.mts.map +0 -1
  1058. package/dist/config-CFMojMFK.d.mts +0 -39
  1059. package/dist/config-CFMojMFK.d.mts.map +0 -1
  1060. package/dist/config-CvmjJcVw.mjs +0 -73
  1061. package/dist/config-CvmjJcVw.mjs.map +0 -1
  1062. package/dist/config-DBU6iUQB.mjs +0 -228
  1063. package/dist/config-DBU6iUQB.mjs.map +0 -1
  1064. package/dist/connection-BtEN_lP9.mjs +0 -36
  1065. package/dist/connection-BtEN_lP9.mjs.map +0 -1
  1066. package/dist/content-DQSRZTVw.mjs +0 -2075
  1067. package/dist/content-DQSRZTVw.mjs.map +0 -1
  1068. package/dist/content-list-query-CYKcY6Vi.d.mts +0 -26
  1069. package/dist/content-list-query-CYKcY6Vi.d.mts.map +0 -1
  1070. package/dist/content-policy-Dm32n9C6.mjs +0 -46
  1071. package/dist/content-policy-Dm32n9C6.mjs.map +0 -1
  1072. package/dist/content-repair-DNh5--x5.mjs +0 -442
  1073. package/dist/content-repair-DNh5--x5.mjs.map +0 -1
  1074. package/dist/context-BYptmCN0.mjs +0 -2090
  1075. package/dist/context-BYptmCN0.mjs.map +0 -1
  1076. package/dist/credits-B9iORdWB.mjs +0 -110
  1077. package/dist/credits-B9iORdWB.mjs.map +0 -1
  1078. package/dist/cron-D7obTIfk.mjs +0 -306
  1079. package/dist/cron-D7obTIfk.mjs.map +0 -1
  1080. package/dist/dashboard-D0jcgBD7.mjs +0 -167
  1081. package/dist/dashboard-D0jcgBD7.mjs.map +0 -1
  1082. package/dist/db-errors-CBD5yMro.mjs +0 -55
  1083. package/dist/db-errors-CBD5yMro.mjs.map +0 -1
  1084. package/dist/default-C0W-PhAp.mjs +0 -81
  1085. package/dist/default-C0W-PhAp.mjs.map +0 -1
  1086. package/dist/deferred-tasks-ZvUECSzI.d.mts +0 -9
  1087. package/dist/deferred-tasks-ZvUECSzI.d.mts.map +0 -1
  1088. package/dist/destination-r2zIAZ2S.mjs +0 -18
  1089. package/dist/destination-r2zIAZ2S.mjs.map +0 -1
  1090. package/dist/dev-typegen-EBni_pOQ.mjs +0 -29
  1091. package/dist/dev-typegen-EBni_pOQ.mjs.map +0 -1
  1092. package/dist/device-flow-BkFKBoAn.mjs +0 -521
  1093. package/dist/device-flow-BkFKBoAn.mjs.map +0 -1
  1094. package/dist/digest-DJ1tHCgy.mjs +0 -194
  1095. package/dist/digest-DJ1tHCgy.mjs.map +0 -1
  1096. package/dist/direct-executor-Cbxzg4qe.mjs +0 -117
  1097. package/dist/direct-executor-Cbxzg4qe.mjs.map +0 -1
  1098. package/dist/dist-Cfu8mMBs.mjs +0 -810
  1099. package/dist/dist-Cfu8mMBs.mjs.map +0 -1
  1100. package/dist/email-console-FFVJWb9N.mjs +0 -50
  1101. package/dist/email-console-FFVJWb9N.mjs.map +0 -1
  1102. package/dist/email-locale-BJ8DjTzZ.mjs +0 -25
  1103. package/dist/email-locale-BJ8DjTzZ.mjs.map +0 -1
  1104. package/dist/emdash-runtime-DVi7vtXC.mjs +0 -4379
  1105. package/dist/emdash-runtime-DVi7vtXC.mjs.map +0 -1
  1106. package/dist/enrich-Duu4sV3a.mjs +0 -194
  1107. package/dist/enrich-Duu4sV3a.mjs.map +0 -1
  1108. package/dist/entry-lock-C7VX0NGK.d.mts +0 -4568
  1109. package/dist/entry-lock-C7VX0NGK.d.mts.map +0 -1
  1110. package/dist/entry-lock-DLxCffFW.mjs +0 -163
  1111. package/dist/entry-lock-DLxCffFW.mjs.map +0 -1
  1112. package/dist/entry-lock-Df6-XhIu.mjs +0 -1211
  1113. package/dist/entry-lock-Df6-XhIu.mjs.map +0 -1
  1114. package/dist/entry-locks-DJAqVweV.mjs +0 -167
  1115. package/dist/entry-locks-DJAqVweV.mjs.map +0 -1
  1116. package/dist/env-types-C3FCVBWe.mjs +0 -38
  1117. package/dist/env-types-C3FCVBWe.mjs.map +0 -1
  1118. package/dist/error-CVWeIOku.mjs +0 -90
  1119. package/dist/error-CVWeIOku.mjs.map +0 -1
  1120. package/dist/errors-B4f4It-2.mjs +0 -120
  1121. package/dist/errors-B4f4It-2.mjs.map +0 -1
  1122. package/dist/errors-BOYNdIo3.mjs +0 -479
  1123. package/dist/errors-BOYNdIo3.mjs.map +0 -1
  1124. package/dist/escape-lsNq38PP.mjs +0 -9
  1125. package/dist/escape-lsNq38PP.mjs.map +0 -1
  1126. package/dist/fence-C3MUitUN.mjs +0 -162
  1127. package/dist/fence-C3MUitUN.mjs.map +0 -1
  1128. package/dist/field-defs-cache-Dez5iWJJ.mjs +0 -77
  1129. package/dist/field-defs-cache-Dez5iWJJ.mjs.map +0 -1
  1130. package/dist/field-map-Bft9LKak.mjs +0 -83
  1131. package/dist/field-map-Bft9LKak.mjs.map +0 -1
  1132. package/dist/focal-point-JX8kcOTQ.mjs +0 -23
  1133. package/dist/focal-point-JX8kcOTQ.mjs.map +0 -1
  1134. package/dist/fts-manager-Beg3e4bI.mjs +0 -443
  1135. package/dist/fts-manager-Beg3e4bI.mjs.map +0 -1
  1136. package/dist/gc-ByyAYiYE.mjs +0 -75
  1137. package/dist/gc-ByyAYiYE.mjs.map +0 -1
  1138. package/dist/hash-BJaeek87.mjs +0 -37
  1139. package/dist/hash-BJaeek87.mjs.map +0 -1
  1140. package/dist/hook-result-BrdLyOdI.d.mts +0 -31
  1141. package/dist/hook-result-BrdLyOdI.d.mts.map +0 -1
  1142. package/dist/hreflang-C8Jb-hrf.mjs +0 -105
  1143. package/dist/hreflang-C8Jb-hrf.mjs.map +0 -1
  1144. package/dist/hreflang-CY_F5OjF.d.mts +0 -50
  1145. package/dist/hreflang-CY_F5OjF.d.mts.map +0 -1
  1146. package/dist/http-route-dispatch-CyeW6iPv.mjs +0 -342
  1147. package/dist/http-route-dispatch-CyeW6iPv.mjs.map +0 -1
  1148. package/dist/identity-Cael5uTT.mjs +0 -35
  1149. package/dist/identity-Cael5uTT.mjs.map +0 -1
  1150. package/dist/import-BUXjdZUn.mjs +0 -2126
  1151. package/dist/import-BUXjdZUn.mjs.map +0 -1
  1152. package/dist/index-BB9sVisO.d.mts +0 -623
  1153. package/dist/index-BB9sVisO.d.mts.map +0 -1
  1154. package/dist/install-finalization-3JX5qQEA.mjs +0 -58
  1155. package/dist/install-finalization-3JX5qQEA.mjs.map +0 -1
  1156. package/dist/json-recordset-BUjxhr77.mjs +0 -12
  1157. package/dist/json-recordset-BUjxhr77.mjs.map +0 -1
  1158. package/dist/json-schema-v_D_pPNG.mjs +0 -15
  1159. package/dist/json-schema-v_D_pPNG.mjs.map +0 -1
  1160. package/dist/keys-CifIkT0N.mjs +0 -61
  1161. package/dist/keys-CifIkT0N.mjs.map +0 -1
  1162. package/dist/kinds-B_Qcl5pz.mjs +0 -974
  1163. package/dist/kinds-B_Qcl5pz.mjs.map +0 -1
  1164. package/dist/lifecycle-7vUJeFRe.mjs +0 -25
  1165. package/dist/lifecycle-7vUJeFRe.mjs.map +0 -1
  1166. package/dist/load-CdAG9wz-.mjs +0 -28
  1167. package/dist/load-CdAG9wz-.mjs.map +0 -1
  1168. package/dist/loader-CswroUbe.mjs +0 -1380
  1169. package/dist/loader-CswroUbe.mjs.map +0 -1
  1170. package/dist/loops-uA4iTOzd.mjs +0 -205
  1171. package/dist/loops-uA4iTOzd.mjs.map +0 -1
  1172. package/dist/manifest-builder-B8zjuH3f.mjs +0 -189
  1173. package/dist/manifest-builder-B8zjuH3f.mjs.map +0 -1
  1174. package/dist/manifest-schema-DNb4XmTS.mjs +0 -497
  1175. package/dist/manifest-schema-DNb4XmTS.mjs.map +0 -1
  1176. package/dist/marketplace-CqbgeIa7.mjs +0 -257
  1177. package/dist/marketplace-CqbgeIa7.mjs.map +0 -1
  1178. package/dist/media--dJRU6i2.mjs +0 -294
  1179. package/dist/media--dJRU6i2.mjs.map +0 -1
  1180. package/dist/media-1WC65OCB.mjs +0 -416
  1181. package/dist/media-1WC65OCB.mjs.map +0 -1
  1182. package/dist/media-Bws9f18T.mjs +0 -373
  1183. package/dist/media-Bws9f18T.mjs.map +0 -1
  1184. package/dist/media-allowlist-BJB7MFx6.mjs +0 -45
  1185. package/dist/media-allowlist-BJB7MFx6.mjs.map +0 -1
  1186. package/dist/media-folders-Dn3C16B8.mjs +0 -210
  1187. package/dist/media-folders-Dn3C16B8.mjs.map +0 -1
  1188. package/dist/media-url-BQgKvpQ5.mjs +0 -43
  1189. package/dist/media-url-BQgKvpQ5.mjs.map +0 -1
  1190. package/dist/media-usage-CF0WVcLO.mjs +0 -282
  1191. package/dist/media-usage-CF0WVcLO.mjs.map +0 -1
  1192. package/dist/media-usage-activation-C9HwVw5w.mjs +0 -78
  1193. package/dist/media-usage-activation-C9HwVw5w.mjs.map +0 -1
  1194. package/dist/media-usage-work-CkLa5-nc.mjs +0 -1036
  1195. package/dist/media-usage-work-CkLa5-nc.mjs.map +0 -1
  1196. package/dist/media-usage-work-m3AWTmmC.mjs +0 -151
  1197. package/dist/media-usage-work-m3AWTmmC.mjs.map +0 -1
  1198. package/dist/menus-BCVSSp1z.mjs +0 -753
  1199. package/dist/menus-BCVSSp1z.mjs.map +0 -1
  1200. package/dist/menus-BSzwObhV.mjs +0 -92
  1201. package/dist/menus-BSzwObhV.mjs.map +0 -1
  1202. package/dist/menus-Cl4kwdt7.mjs +0 -3721
  1203. package/dist/menus-Cl4kwdt7.mjs.map +0 -1
  1204. package/dist/mime-B5M9R53H.mjs +0 -81
  1205. package/dist/mime-B5M9R53H.mjs.map +0 -1
  1206. package/dist/mode-C-D3qICy.mjs +0 -23
  1207. package/dist/mode-C-D3qICy.mjs.map +0 -1
  1208. package/dist/node-sqlite-compat-CrKzRr0J.mjs +0 -63
  1209. package/dist/node-sqlite-compat-CrKzRr0J.mjs.map +0 -1
  1210. package/dist/normalize-BuWa0lvd.mjs +0 -191
  1211. package/dist/normalize-BuWa0lvd.mjs.map +0 -1
  1212. package/dist/oauth-authorization-TpEJrYB7.mjs +0 -274
  1213. package/dist/oauth-authorization-TpEJrYB7.mjs.map +0 -1
  1214. package/dist/oauth-clients-BT0Pg-MO.mjs +0 -266
  1215. package/dist/oauth-clients-BT0Pg-MO.mjs.map +0 -1
  1216. package/dist/oauth-state-store-CHMn_mwc.mjs +0 -50
  1217. package/dist/oauth-state-store-CHMn_mwc.mjs.map +0 -1
  1218. package/dist/oauth-user-lookup-BDgF6IVG.mjs +0 -26
  1219. package/dist/oauth-user-lookup-BDgF6IVG.mjs.map +0 -1
  1220. package/dist/object-cache-Bo6DGaC9.mjs +0 -586
  1221. package/dist/object-cache-Bo6DGaC9.mjs.map +0 -1
  1222. package/dist/options-DJWaq3Ie.d.mts +0 -81
  1223. package/dist/options-DJWaq3Ie.d.mts.map +0 -1
  1224. package/dist/ownership-MiyA7qKO.mjs +0 -12
  1225. package/dist/ownership-MiyA7qKO.mjs.map +0 -1
  1226. package/dist/parse-CWHOFc6z.d.mts +0 -176
  1227. package/dist/parse-CWHOFc6z.d.mts.map +0 -1
  1228. package/dist/parse-DgQ2NABT.mjs +0 -81
  1229. package/dist/parse-DgQ2NABT.mjs.map +0 -1
  1230. package/dist/passkey-config-D0kdzEao.mjs +0 -46
  1231. package/dist/passkey-config-D0kdzEao.mjs.map +0 -1
  1232. package/dist/paths-biDzFTY2.mjs +0 -77
  1233. package/dist/paths-biDzFTY2.mjs.map +0 -1
  1234. package/dist/patterns-CMNnYCgf.mjs +0 -159
  1235. package/dist/patterns-CMNnYCgf.mjs.map +0 -1
  1236. package/dist/placeholder-D41vk11_.d.mts +0 -306
  1237. package/dist/placeholder-D41vk11_.d.mts.map +0 -1
  1238. package/dist/plan-CCoqxNoU.mjs +0 -135
  1239. package/dist/plan-CCoqxNoU.mjs.map +0 -1
  1240. package/dist/plugin-tool-name-DDUgN_0p.mjs +0 -27
  1241. package/dist/plugin-tool-name-DDUgN_0p.mjs.map +0 -1
  1242. package/dist/plugins-COJ2L49n.mjs +0 -261
  1243. package/dist/plugins-COJ2L49n.mjs.map +0 -1
  1244. package/dist/policy-DLQ--Hnm.mjs +0 -45
  1245. package/dist/policy-DLQ--Hnm.mjs.map +0 -1
  1246. package/dist/portable-text-BH4zgkSm.mjs +0 -311
  1247. package/dist/portable-text-BH4zgkSm.mjs.map +0 -1
  1248. package/dist/preview-DLexxwp3.mjs +0 -107
  1249. package/dist/preview-DLexxwp3.mjs.map +0 -1
  1250. package/dist/protocol-79kUO7jP.d.mts +0 -65
  1251. package/dist/protocol-79kUO7jP.d.mts.map +0 -1
  1252. package/dist/public-plugin-api-routes-BuAMJ8nN.mjs +0 -316
  1253. package/dist/public-plugin-api-routes-BuAMJ8nN.mjs.map +0 -1
  1254. package/dist/public-submission-Di3TsgzX.mjs +0 -251
  1255. package/dist/public-submission-Di3TsgzX.mjs.map +0 -1
  1256. package/dist/public-url-Bt98vysr.mjs +0 -101
  1257. package/dist/public-url-Bt98vysr.mjs.map +0 -1
  1258. package/dist/query-CpnRlBh8.mjs +0 -1156
  1259. package/dist/query-CpnRlBh8.mjs.map +0 -1
  1260. package/dist/query-haKvLAWl.mjs +0 -41
  1261. package/dist/query-haKvLAWl.mjs.map +0 -1
  1262. package/dist/range-CYfeXgGK.mjs +0 -51
  1263. package/dist/range-CYfeXgGK.mjs.map +0 -1
  1264. package/dist/rate-limit-Xp4d0NBY.mjs +0 -127
  1265. package/dist/rate-limit-Xp4d0NBY.mjs.map +0 -1
  1266. package/dist/receipt-BUsQCOeM.mjs +0 -43
  1267. package/dist/receipt-BUsQCOeM.mjs.map +0 -1
  1268. package/dist/redirect-CQAV7mCo.mjs +0 -19
  1269. package/dist/redirect-CQAV7mCo.mjs.map +0 -1
  1270. package/dist/redirect-DiS_3mA4.mjs +0 -423
  1271. package/dist/redirect-DiS_3mA4.mjs.map +0 -1
  1272. package/dist/redirect-paths-CNYq7w80.mjs +0 -36
  1273. package/dist/redirect-paths-CNYq7w80.mjs.map +0 -1
  1274. package/dist/redirects-BEVSRMa2.mjs +0 -148
  1275. package/dist/redirects-BEVSRMa2.mjs.map +0 -1
  1276. package/dist/redirects-BHpy-VsZ.mjs +0 -446
  1277. package/dist/redirects-BHpy-VsZ.mjs.map +0 -1
  1278. package/dist/registry-TUVaid9Z.mjs +0 -8369
  1279. package/dist/registry-TUVaid9Z.mjs.map +0 -1
  1280. package/dist/relations-CA_QuMTU.mjs +0 -776
  1281. package/dist/relations-CA_QuMTU.mjs.map +0 -1
  1282. package/dist/request-cache-C4CIo5ad.mjs +0 -104
  1283. package/dist/request-cache-C4CIo5ad.mjs.map +0 -1
  1284. package/dist/request-meta-bwZ_NsvU.mjs +0 -141
  1285. package/dist/request-meta-bwZ_NsvU.mjs.map +0 -1
  1286. package/dist/resolve-D-kqyKns.mjs +0 -199
  1287. package/dist/resolve-D-kqyKns.mjs.map +0 -1
  1288. package/dist/resolve-DwNM-CXl.mjs +0 -101
  1289. package/dist/resolve-DwNM-CXl.mjs.map +0 -1
  1290. package/dist/revision-BVp8S0e_.mjs +0 -374
  1291. package/dist/revision-BVp8S0e_.mjs.map +0 -1
  1292. package/dist/route-cache-QSOyDEw0.mjs +0 -20
  1293. package/dist/route-cache-QSOyDEw0.mjs.map +0 -1
  1294. package/dist/route-wire-Ca_HWCZ5.mjs +0 -197
  1295. package/dist/route-wire-Ca_HWCZ5.mjs.map +0 -1
  1296. package/dist/routes-BerZFrvV.mjs +0 -272
  1297. package/dist/routes-BerZFrvV.mjs.map +0 -1
  1298. package/dist/runner-BObHz5FC.d.mts +0 -68
  1299. package/dist/runner-BObHz5FC.d.mts.map +0 -1
  1300. package/dist/runner-C5NeAkBQ.mjs +0 -6595
  1301. package/dist/runner-C5NeAkBQ.mjs.map +0 -1
  1302. package/dist/schema-C4OBuv6Z.mjs +0 -13
  1303. package/dist/schema-C4OBuv6Z.mjs.map +0 -1
  1304. package/dist/schema-DJRfvM_o.mjs +0 -815
  1305. package/dist/schema-DJRfvM_o.mjs.map +0 -1
  1306. package/dist/scopes-BU03K7Uo.mjs +0 -34
  1307. package/dist/scopes-BU03K7Uo.mjs.map +0 -1
  1308. package/dist/search-DfVzks89.mjs +0 -450
  1309. package/dist/search-DfVzks89.mjs.map +0 -1
  1310. package/dist/sections-BMy4JVUz.mjs +0 -346
  1311. package/dist/sections-BMy4JVUz.mjs.map +0 -1
  1312. package/dist/seo-ClB-dw9w.mjs +0 -188
  1313. package/dist/seo-ClB-dw9w.mjs.map +0 -1
  1314. package/dist/seo-VZYOEy8f.mjs +0 -133
  1315. package/dist/seo-VZYOEy8f.mjs.map +0 -1
  1316. package/dist/service-Bo_usgSk.mjs +0 -150
  1317. package/dist/service-Bo_usgSk.mjs.map +0 -1
  1318. package/dist/session-user-DlpPdf8L.mjs +0 -61
  1319. package/dist/session-user-DlpPdf8L.mjs.map +0 -1
  1320. package/dist/settings-CWb84sDm.mjs +0 -452
  1321. package/dist/settings-CWb84sDm.mjs.map +0 -1
  1322. package/dist/settings-DS914jjE.mjs +0 -66
  1323. package/dist/settings-DS914jjE.mjs.map +0 -1
  1324. package/dist/settings-Dd1uivmQ.mjs +0 -73
  1325. package/dist/settings-Dd1uivmQ.mjs.map +0 -1
  1326. package/dist/setup-complete-BuNxAUiN.mjs +0 -65
  1327. package/dist/setup-complete-BuNxAUiN.mjs.map +0 -1
  1328. package/dist/setup-nonce-BnEAX0iy.mjs +0 -25
  1329. package/dist/setup-nonce-BnEAX0iy.mjs.map +0 -1
  1330. package/dist/site-domain-Bq5j5bVg.mjs +0 -131
  1331. package/dist/site-domain-Bq5j5bVg.mjs.map +0 -1
  1332. package/dist/site-settings-DRHfX7bq.mjs +0 -50
  1333. package/dist/site-settings-DRHfX7bq.mjs.map +0 -1
  1334. package/dist/site-url-MB685I5X.mjs +0 -45
  1335. package/dist/site-url-MB685I5X.mjs.map +0 -1
  1336. package/dist/sitemap-name-BTg2NJJv.mjs +0 -26
  1337. package/dist/sitemap-name-BTg2NJJv.mjs.map +0 -1
  1338. package/dist/slug-aVnUV4SL.mjs +0 -16
  1339. package/dist/slug-aVnUV4SL.mjs.map +0 -1
  1340. package/dist/slugify-bu2-jKia.mjs +0 -22
  1341. package/dist/slugify-bu2-jKia.mjs.map +0 -1
  1342. package/dist/snapshot-DYsG4uOq.mjs +0 -414
  1343. package/dist/snapshot-DYsG4uOq.mjs.map +0 -1
  1344. package/dist/ssrf-BcYjyM4M.mjs +0 -406
  1345. package/dist/ssrf-BcYjyM4M.mjs.map +0 -1
  1346. package/dist/stage-D8DWgPcO.mjs +0 -662
  1347. package/dist/stage-D8DWgPcO.mjs.map +0 -1
  1348. package/dist/staged-CD_imitH.mjs +0 -686
  1349. package/dist/staged-CD_imitH.mjs.map +0 -1
  1350. package/dist/state-CFbGZziM.mjs +0 -178
  1351. package/dist/state-CFbGZziM.mjs.map +0 -1
  1352. package/dist/status-BFNdxzKc.mjs +0 -30
  1353. package/dist/status-BFNdxzKc.mjs.map +0 -1
  1354. package/dist/storage-query-DRyu3bSU.d.mts +0 -1615
  1355. package/dist/storage-query-DRyu3bSU.d.mts.map +0 -1
  1356. package/dist/tar-DFjExb9X.mjs +0 -449
  1357. package/dist/tar-DFjExb9X.mjs.map +0 -1
  1358. package/dist/target-CWZs2-o6.mjs +0 -27
  1359. package/dist/target-CWZs2-o6.mjs.map +0 -1
  1360. package/dist/taxonomies-ChnU7Mc8.mjs +0 -697
  1361. package/dist/taxonomies-ChnU7Mc8.mjs.map +0 -1
  1362. package/dist/taxonomies-Dd9JJv_a.mjs +0 -939
  1363. package/dist/taxonomies-Dd9JJv_a.mjs.map +0 -1
  1364. package/dist/taxonomy-C_C_LBAU.mjs +0 -550
  1365. package/dist/taxonomy-C_C_LBAU.mjs.map +0 -1
  1366. package/dist/tokens-BnhSnGwJ.mjs +0 -171
  1367. package/dist/tokens-BnhSnGwJ.mjs.map +0 -1
  1368. package/dist/transaction-BVYIo_yu.mjs +0 -29
  1369. package/dist/transaction-BVYIo_yu.mjs.map +0 -1
  1370. package/dist/transfer-ClH6w6BV.mjs +0 -8873
  1371. package/dist/transfer-ClH6w6BV.mjs.map +0 -1
  1372. package/dist/transfer-WmWiR3xf.mjs +0 -166
  1373. package/dist/transfer-WmWiR3xf.mjs.map +0 -1
  1374. package/dist/transfer-download--ofRj9Cw.mjs +0 -33
  1375. package/dist/transfer-download--ofRj9Cw.mjs.map +0 -1
  1376. package/dist/transformations-Bx4lYY0Y.mjs +0 -196
  1377. package/dist/transformations-Bx4lYY0Y.mjs.map +0 -1
  1378. package/dist/transport-BjbqNiPI.mjs +0 -136
  1379. package/dist/transport-BjbqNiPI.mjs.map +0 -1
  1380. package/dist/transport-DxiXnbXk.d.mts +0 -42
  1381. package/dist/transport-DxiXnbXk.d.mts.map +0 -1
  1382. package/dist/trusted-proxy-BU3Nx9g1.mjs +0 -51
  1383. package/dist/trusted-proxy-BU3Nx9g1.mjs.map +0 -1
  1384. package/dist/turnstile-CJwvsOqw.mjs +0 -58
  1385. package/dist/turnstile-CJwvsOqw.mjs.map +0 -1
  1386. package/dist/types-BA3ey2QH.d.mts +0 -87
  1387. package/dist/types-BA3ey2QH.d.mts.map +0 -1
  1388. package/dist/types-BGmQ0uXs.mjs +0 -201
  1389. package/dist/types-BGmQ0uXs.mjs.map +0 -1
  1390. package/dist/types-Bwpzb5o6.d.mts +0 -227
  1391. package/dist/types-Bwpzb5o6.d.mts.map +0 -1
  1392. package/dist/types-CNB-dj6F.d.mts +0 -289
  1393. package/dist/types-CNB-dj6F.d.mts.map +0 -1
  1394. package/dist/types-CgfFGfO5.mjs +0 -16
  1395. package/dist/types-CgfFGfO5.mjs.map +0 -1
  1396. package/dist/types-Cj0_yZkn.mjs +0 -18
  1397. package/dist/types-Cj0_yZkn.mjs.map +0 -1
  1398. package/dist/types-D2NEXtgB.mjs +0 -127
  1399. package/dist/types-D2NEXtgB.mjs.map +0 -1
  1400. package/dist/types-DCFavOii.d.mts +0 -916
  1401. package/dist/types-DCFavOii.d.mts.map +0 -1
  1402. package/dist/types-DHO7Pd25.d.mts +0 -366
  1403. package/dist/types-DHO7Pd25.d.mts.map +0 -1
  1404. package/dist/types-DvqVxZXa.d.mts +0 -125
  1405. package/dist/types-DvqVxZXa.d.mts.map +0 -1
  1406. package/dist/types-QoPHm-2w.d.mts +0 -1741
  1407. package/dist/types-QoPHm-2w.d.mts.map +0 -1
  1408. package/dist/types-RLgeIpnF.d.mts +0 -374
  1409. package/dist/types-RLgeIpnF.d.mts.map +0 -1
  1410. package/dist/types-qHVygneX.mjs +0 -77
  1411. package/dist/types-qHVygneX.mjs.map +0 -1
  1412. package/dist/types-sUHaH7lC.mjs +0 -37
  1413. package/dist/types-sUHaH7lC.mjs.map +0 -1
  1414. package/dist/types-slSqujQL.d.mts +0 -204
  1415. package/dist/types-slSqujQL.d.mts.map +0 -1
  1416. package/dist/update-check-BxNg9T6N.mjs +0 -161
  1417. package/dist/update-check-BxNg9T6N.mjs.map +0 -1
  1418. package/dist/upload-attempts-DPFC4COv.mjs +0 -32
  1419. package/dist/upload-attempts-DPFC4COv.mjs.map +0 -1
  1420. package/dist/url-Dn3IStq8.mjs +0 -104
  1421. package/dist/url-Dn3IStq8.mjs.map +0 -1
  1422. package/dist/url-pattern-QATUE_rv.mjs +0 -41
  1423. package/dist/url-pattern-QATUE_rv.mjs.map +0 -1
  1424. package/dist/user-BlCTKVAm.mjs +0 -171
  1425. package/dist/user-BlCTKVAm.mjs.map +0 -1
  1426. package/dist/utils-TPt7w2cS.mjs +0 -442
  1427. package/dist/utils-TPt7w2cS.mjs.map +0 -1
  1428. package/dist/validate-DxYhJQA-.mjs +0 -524
  1429. package/dist/validate-DxYhJQA-.mjs.map +0 -1
  1430. package/dist/validate-emKxGC5F.d.mts +0 -468
  1431. package/dist/validate-emKxGC5F.d.mts.map +0 -1
  1432. package/dist/validation-Ckq4vsVg.mjs +0 -220
  1433. package/dist/validation-Ckq4vsVg.mjs.map +0 -1
  1434. package/dist/version-BZj18Q7G.mjs +0 -9
  1435. package/dist/version-BZj18Q7G.mjs.map +0 -1
  1436. package/dist/version-DHmGpcch.mjs +0 -7
  1437. package/dist/version-DHmGpcch.mjs.map +0 -1
  1438. package/dist/video-DytCnw3L.mjs +0 -54
  1439. package/dist/video-DytCnw3L.mjs.map +0 -1
  1440. package/dist/virtual-modules-DO954n7P.mjs +0 -515
  1441. package/dist/virtual-modules-DO954n7P.mjs.map +0 -1
  1442. package/dist/widgets-DA5XmvVC.mjs +0 -121
  1443. package/dist/widgets-DA5XmvVC.mjs.map +0 -1
  1444. package/dist/wxr-taxonomies-CrMonejI.d.mts +0 -34
  1445. package/dist/wxr-taxonomies-CrMonejI.d.mts.map +0 -1
  1446. package/dist/wxr-taxonomies-RgRG0d5e.mjs +0 -453
  1447. package/dist/wxr-taxonomies-RgRG0d5e.mjs.map +0 -1
  1448. package/dist/zod-generator-D0JKy94C.mjs +0 -424
  1449. package/dist/zod-generator-D0JKy94C.mjs.map +0 -1
  1450. /package/dist/{api-tokens-CdP49zVF.mjs → api-tokens-C7l0GUAF.mjs} +0 -0
  1451. /package/dist/{ssrf-DM0E-D_8.mjs → ssrf-BBXcxG-f.mjs} +0 -0
@@ -1,387 +0,0 @@
1
- import { u as isPostgres, y as tableExists } from "./dialect-helpers-7_IqPdh9.mjs";
2
- import { n as verifyMediaUsageCaptureTriggers, t as installMediaUsageCaptureTriggers } from "./capture-triggers-CT6dK9zd.mjs";
3
- import { sql } from "kysely";
4
- import { ulid } from "ulidx";
5
-
6
- //#region src/media/usage/activation.ts
7
- const ACTIVATION_KEY = "incremental_capture";
8
- const ACTIVATION_ERROR_CODE = "MEDIA_USAGE_ACTIVATION_FAILED";
9
- const MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION = 1;
10
- var MediaUsageActivationVersionMismatchError = class extends Error {};
11
- const MEDIA_USAGE_ACTIVATION_LIMITS = Object.freeze({
12
- collectionsPerCall: 1,
13
- leaseDurationSeconds: 300
14
- });
15
- async function getMediaUsageActivationStatus(db) {
16
- const activation = await db.selectFrom("_emdash_media_usage_activation").select([
17
- "state",
18
- "runtime_generation",
19
- "collection_cursor",
20
- "drain_confirmed_at",
21
- "lease_expires_at",
22
- "attempt_count",
23
- "last_attempted_at",
24
- "last_error_code",
25
- "activated_at",
26
- "updated_at"
27
- ]).where("task_key", "=", ACTIVATION_KEY).executeTakeFirstOrThrow();
28
- assertRuntimeGeneration(activation);
29
- if (activation.state !== "expanded" && activation.state !== "activating" && activation.state !== "active") throw new Error("Invalid media usage activation state");
30
- if (!Number.isInteger(activation.attempt_count) || activation.attempt_count < 0) throw new Error("Invalid media usage activation attempt count");
31
- return {
32
- state: activation.state,
33
- collectionCursor: activation.collection_cursor,
34
- attemptCount: activation.attempt_count,
35
- drainConfirmedAt: activation.drain_confirmed_at,
36
- lastAttemptedAt: activation.last_attempted_at,
37
- lastErrorCode: activation.last_error_code === null ? null : ACTIVATION_ERROR_CODE,
38
- leaseExpiresAt: activation.lease_expires_at,
39
- activatedAt: activation.activated_at,
40
- updatedAt: activation.updated_at
41
- };
42
- }
43
- async function canResumeMediaUsageCollectionCapture(db, identity) {
44
- return await findResumableMediaUsageCollectionCaptureId(db, identity) === identity.collectionId;
45
- }
46
- async function findResumableMediaUsageCollectionCaptureId(db, identity) {
47
- const activation = await findActivationIfAvailable(db);
48
- if (!activation) return null;
49
- assertRuntimeGeneration(activation);
50
- if (activation.state !== "active") return null;
51
- const lifecycle = await db.selectFrom("_emdash_media_usage_index_status").select(["collection_id", "cursor"]).where("adapter_id", "=", "content-media").where("scope_type", "=", "collection").where("scope_key", "=", identity.collectionSlug).where("capture_state", "in", ["installing", "ready"]).executeTakeFirst();
52
- if (!lifecycle?.collection_id) return null;
53
- if (identity.creationFingerprint ? lifecycle.cursor !== identity.creationFingerprint : lifecycle.cursor !== null) return null;
54
- return lifecycle.collection_id;
55
- }
56
- async function prepareMediaUsageCollectionCapture(db, input) {
57
- const activation = await findActivationIfAvailable(db);
58
- if (!activation) return {
59
- captureRequired: false,
60
- collectionId: input.collectionId,
61
- registrationExists: input.registeredCollectionId !== void 0,
62
- resuming: false
63
- };
64
- assertRuntimeGeneration(activation);
65
- if (activation.state !== "active") return {
66
- captureRequired: false,
67
- collectionId: input.collectionId,
68
- registrationExists: input.registeredCollectionId !== void 0,
69
- resuming: false
70
- };
71
- const existing = await db.selectFrom("_emdash_media_usage_index_status").select([
72
- "collection_id",
73
- "capture_state",
74
- "cursor"
75
- ]).where("adapter_id", "=", "content-media").where("scope_type", "=", "collection").where("scope_key", "=", input.collectionSlug).executeTakeFirst();
76
- if (existing) {
77
- if (existing.collection_id && (existing.capture_state === "installing" || existing.capture_state === "ready") && (input.creationFingerprint ? existing.cursor === input.creationFingerprint : existing.cursor === null) && (input.registeredCollectionId === void 0 || input.registeredCollectionId === existing.collection_id)) return {
78
- captureRequired: true,
79
- collectionId: existing.collection_id,
80
- registrationExists: input.registeredCollectionId !== void 0,
81
- resuming: true
82
- };
83
- throw new Error("Media usage collection lifecycle identity conflict");
84
- }
85
- if (input.registeredCollectionId !== void 0) throw new Error("Media usage collection lifecycle is missing");
86
- await db.insertInto("_emdash_media_usage_index_status").values({
87
- adapter_id: "content-media",
88
- scope_type: "collection",
89
- scope_key: input.collectionSlug,
90
- status: "never",
91
- collection_id: input.collectionId,
92
- reconciliation_required: 1,
93
- capture_state: "installing",
94
- cursor: input.creationFingerprint ?? null,
95
- updated_at: timestampOffset(db, 0)
96
- }).execute();
97
- return {
98
- captureRequired: true,
99
- collectionId: input.collectionId,
100
- registrationExists: false,
101
- resuming: false
102
- };
103
- }
104
- async function installPreparedMediaUsageCollectionCapture(db, identity) {
105
- await installMediaUsageCaptureTriggers(db, identity, { replaceExisting: false });
106
- if (!await verifyMediaUsageCaptureTriggers(db, identity)) throw new Error("Media usage capture trigger verification failed");
107
- }
108
- async function markMediaUsageCollectionCaptureReady(db, identity) {
109
- const result = await db.updateTable("_emdash_media_usage_index_status").set({
110
- capture_state: "ready",
111
- updated_at: timestampOffset(db, 0)
112
- }).where("adapter_id", "=", "content-media").where("scope_type", "=", "collection").where("scope_key", "=", identity.collectionSlug).where("collection_id", "=", identity.collectionId).where("capture_state", "in", ["installing", "ready"]).where(sql`EXISTS (
113
- SELECT 1 FROM _emdash_media_usage_activation AS activation
114
- WHERE activation.task_key = ${ACTIVATION_KEY}
115
- AND activation.state = 'active'
116
- AND activation.runtime_generation = ${MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION}
117
- )`).executeTakeFirst();
118
- if (Number(result.numUpdatedRows ?? 0) === 0) throw new Error("Media usage collection readiness lost its fence");
119
- }
120
- async function finalizeMediaUsageCollectionCapture(db, identity) {
121
- const result = await db.updateTable("_emdash_media_usage_index_status").set({
122
- capture_state: "active",
123
- cursor: null,
124
- updated_at: timestampOffset(db, 0)
125
- }).where("adapter_id", "=", "content-media").where("scope_type", "=", "collection").where("scope_key", "=", identity.collectionSlug).where("collection_id", "=", identity.collectionId).where("capture_state", "=", "ready").where(sql`EXISTS (
126
- SELECT 1 FROM _emdash_collections AS collection
127
- WHERE collection.id = ${identity.collectionId}
128
- AND collection.slug = ${identity.collectionSlug}
129
- )`).where(sql`EXISTS (
130
- SELECT 1 FROM _emdash_media_usage_activation AS activation
131
- WHERE activation.task_key = ${ACTIVATION_KEY}
132
- AND activation.state = 'active'
133
- AND activation.runtime_generation = ${MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION}
134
- )`).executeTakeFirst();
135
- if (Number(result.numUpdatedRows ?? 0) === 0) throw new Error("Media usage collection activation lost its fence");
136
- }
137
- async function activateMediaUsageCapture(db, input) {
138
- if (input.writersDrained !== true) throw new Error("Media usage activation requires confirmation that writers are drained");
139
- return advanceMediaUsageActivation(db, "confirmed");
140
- }
141
- async function continueMediaUsageActivation(db) {
142
- return advanceMediaUsageActivation(db, "background");
143
- }
144
- async function advanceMediaUsageActivation(db, mode) {
145
- const before = await findActivation(db);
146
- assertRuntimeGeneration(before);
147
- if (before.state === "active") return {
148
- outcome: "active",
149
- processedCollections: 0
150
- };
151
- if (mode === "background") {
152
- if (before.state === "expanded" || before.drain_confirmed_at === null) return { outcome: "inactive" };
153
- if (before.state !== "activating") throw new Error("Invalid media usage activation state");
154
- if (before.last_error_code !== null) return { outcome: "failed" };
155
- }
156
- const leaseToken = ulid();
157
- const lease = await claimActivation(db, leaseToken, mode);
158
- if (!lease) return activationClaimLoss(db, mode);
159
- let processedCollections = 0;
160
- try {
161
- const candidates = await findActivationCandidates(db, lease.collection_cursor);
162
- for (const collection of candidates.slice(0, MEDIA_USAGE_ACTIVATION_LIMITS.collectionsPerCall)) {
163
- await requireActivationLease(db, leaseToken);
164
- await prepareCollectionForActivation(db, collection, leaseToken);
165
- await requireActivationLease(db, leaseToken);
166
- await installMediaUsageCaptureTriggers(db, {
167
- collectionId: collection.id,
168
- collectionSlug: collection.slug
169
- }, { replaceExisting: false });
170
- await requireActivationLease(db, leaseToken);
171
- if (!await verifyMediaUsageCaptureTriggers(db, {
172
- collectionId: collection.id,
173
- collectionSlug: collection.slug
174
- })) throw new Error("Media usage capture trigger verification failed");
175
- if (!await activateCollectionLifecycle(db, collection, leaseToken)) throw new Error("Media usage collection activation lost its fence");
176
- processedCollections++;
177
- }
178
- const collectionCursor = candidates[Math.min(processedCollections, candidates.length) - 1]?.slug ?? lease.collection_cursor;
179
- if (candidates.length > MEDIA_USAGE_ACTIVATION_LIMITS.collectionsPerCall) {
180
- if (!await releaseActivationBatch(db, leaseToken, collectionCursor)) throw new Error("Media usage activation cursor lost its fence");
181
- return {
182
- outcome: "activating",
183
- processedCollections,
184
- collectionCursor
185
- };
186
- }
187
- if (await findIncompleteCollection(db)) {
188
- if (!await releaseActivationBatch(db, leaseToken, null)) throw new Error("Media usage activation restart lost its fence");
189
- return {
190
- outcome: "activating",
191
- processedCollections,
192
- collectionCursor: null
193
- };
194
- }
195
- if (!await finalizeActivation(db, leaseToken, collectionCursor)) throw new Error("Media usage activation finalization lost its fence");
196
- return {
197
- outcome: "active",
198
- processedCollections
199
- };
200
- } catch (error) {
201
- if (!await activationLeaseIsLive(db, leaseToken)) return {
202
- outcome: "conflict",
203
- processedCollections
204
- };
205
- await recordActivationFailure(db, leaseToken);
206
- throw new Error("Media usage activation failed", { cause: error });
207
- }
208
- }
209
- async function findActivation(db) {
210
- return db.selectFrom("_emdash_media_usage_activation").selectAll().where("task_key", "=", ACTIVATION_KEY).executeTakeFirstOrThrow();
211
- }
212
- async function findActivationIfAvailable(db) {
213
- if (!await tableExists(db, "_emdash_media_usage_activation")) return null;
214
- return findActivation(db);
215
- }
216
- function assertRuntimeGeneration(activation) {
217
- if (activation.runtime_generation !== MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION) throw new MediaUsageActivationVersionMismatchError("Media usage activation runtime generation mismatch");
218
- }
219
- async function claimActivation(db, leaseToken, mode) {
220
- const now = timestampOffset(db, 0);
221
- const claimValues = {
222
- lease_token: leaseToken,
223
- lease_expires_at: timestampOffset(db, MEDIA_USAGE_ACTIVATION_LIMITS.leaseDurationSeconds),
224
- attempt_count: sql`attempt_count + 1`,
225
- last_attempted_at: now,
226
- updated_at: now
227
- };
228
- let claim = db.updateTable("_emdash_media_usage_activation").set(mode === "confirmed" ? {
229
- ...claimValues,
230
- state: "activating",
231
- drain_confirmed_at: now,
232
- last_error_code: null
233
- } : claimValues).where("task_key", "=", ACTIVATION_KEY).where("runtime_generation", "=", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION);
234
- if (mode === "confirmed") claim = claim.where((eb) => eb.or([eb("state", "=", "expanded"), eb.and([eb("state", "=", "activating"), eb.or([eb("lease_token", "is", null), eb.and([eb("lease_expires_at", "is not", null), timestampIsDue(db, "lease_expires_at")])])])]));
235
- else claim = claim.where("state", "=", "activating").where("drain_confirmed_at", "is not", null).where("last_error_code", "is", null).where((eb) => eb.or([eb("lease_token", "is", null), eb.and([eb("lease_expires_at", "is not", null), timestampIsDue(db, "lease_expires_at")])]));
236
- return await claim.returningAll().executeTakeFirst() ?? null;
237
- }
238
- async function activationClaimLoss(db, mode) {
239
- const current = await findActivation(db);
240
- assertRuntimeGeneration(current);
241
- if (current.state === "active") return {
242
- outcome: "active",
243
- processedCollections: 0
244
- };
245
- if (mode === "background") {
246
- if (current.state === "expanded" || current.drain_confirmed_at === null) return { outcome: "inactive" };
247
- if (current.state === "activating" && current.last_error_code !== null) return { outcome: "failed" };
248
- }
249
- if (current.state === "activating" && current.lease_token && current.lease_expires_at && await activationLeaseIsLive(db, current.lease_token)) return {
250
- outcome: "lease_active",
251
- leaseExpiresAt: current.lease_expires_at
252
- };
253
- if (mode === "background" && current.state === "activating") return {
254
- outcome: "conflict",
255
- processedCollections: 0
256
- };
257
- throw new Error("Media usage activation state is not claimable");
258
- }
259
- async function activationLeaseIsLive(db, leaseToken) {
260
- return await db.selectFrom("_emdash_media_usage_activation").select("task_key").where("task_key", "=", ACTIVATION_KEY).where("state", "=", "activating").where("runtime_generation", "=", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION).where("lease_token", "=", leaseToken).where("lease_expires_at", "is not", null).where(timestampIsLive(db, "lease_expires_at")).executeTakeFirst() !== void 0;
261
- }
262
- async function findActivationCandidates(db, collectionCursor) {
263
- let query = db.selectFrom("_emdash_collections").select(["id", "slug"]);
264
- if (collectionCursor) query = query.where("slug", ">", collectionCursor);
265
- return query.orderBy("slug", "asc").limit(MEDIA_USAGE_ACTIVATION_LIMITS.collectionsPerCall + 1).execute();
266
- }
267
- async function prepareCollectionForActivation(db, collection, leaseToken) {
268
- const now = timestampOffset(db, 0);
269
- const existingStatus = sql.ref("_emdash_media_usage_index_status.status");
270
- const existingCompletedAt = sql.ref("_emdash_media_usage_index_status.completed_at");
271
- const existingCollectionId = sql.ref("_emdash_media_usage_index_status.collection_id");
272
- const existingCaptureState = sql.ref("_emdash_media_usage_index_status.capture_state");
273
- if ((await db.insertInto("_emdash_media_usage_index_status").values({
274
- adapter_id: "content-media",
275
- scope_type: "collection",
276
- scope_key: collection.slug,
277
- status: "never",
278
- collection_id: collection.id,
279
- reconciliation_required: 1,
280
- capture_state: "installing",
281
- updated_at: now
282
- }).onConflict((conflict) => conflict.columns([
283
- "adapter_id",
284
- "scope_type",
285
- "scope_key"
286
- ]).doUpdateSet({
287
- status: sql`CASE WHEN ${existingStatus} IN ('complete', 'running') THEN 'stale' ELSE ${existingStatus} END`,
288
- completed_at: sql`CASE WHEN ${existingStatus} IN ('complete', 'running') THEN NULL ELSE ${existingCompletedAt} END`,
289
- cursor: null,
290
- collection_id: collection.id,
291
- reconciliation_required: 1,
292
- capture_state: "installing",
293
- updated_at: now
294
- }).where((eb) => eb.and([
295
- eb.or([eb(existingCollectionId, "is", null), eb(existingCollectionId, "=", collection.id)]),
296
- eb.or([eb(existingCaptureState, "is", null), eb(existingCaptureState, "!=", "deleting")]),
297
- activeActivationLease(db, leaseToken)
298
- ]))).returning("collection_id").executeTakeFirst())?.collection_id !== collection.id) throw new Error("Media usage collection lifecycle identity conflict");
299
- }
300
- async function requireActivationLease(db, leaseToken) {
301
- if (!await activationLeaseIsLive(db, leaseToken)) throw new Error("Media usage activation lease is no longer live");
302
- }
303
- async function activateCollectionLifecycle(db, collection, leaseToken) {
304
- const result = await db.updateTable("_emdash_media_usage_index_status").set({
305
- capture_state: "active",
306
- updated_at: timestampOffset(db, 0)
307
- }).where("adapter_id", "=", "content-media").where("scope_type", "=", "collection").where("scope_key", "=", collection.slug).where("collection_id", "=", collection.id).where("capture_state", "=", "installing").where(sql`EXISTS (
308
- SELECT 1 FROM _emdash_collections AS collection
309
- WHERE collection.id = ${collection.id}
310
- AND collection.slug = ${collection.slug}
311
- )`).where(activeActivationLease(db, leaseToken)).executeTakeFirst();
312
- return Number(result.numUpdatedRows ?? 0) > 0;
313
- }
314
- async function releaseActivationBatch(db, leaseToken, collectionCursor) {
315
- const result = await db.updateTable("_emdash_media_usage_activation").set({
316
- collection_cursor: collectionCursor,
317
- lease_token: null,
318
- lease_expires_at: null,
319
- updated_at: timestampOffset(db, 0)
320
- }).where("task_key", "=", ACTIVATION_KEY).where("state", "=", "activating").where("runtime_generation", "=", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION).where("lease_token", "=", leaseToken).where("lease_expires_at", "is not", null).where(timestampIsLive(db, "lease_expires_at")).executeTakeFirst();
321
- return Number(result.numUpdatedRows ?? 0) > 0;
322
- }
323
- async function findIncompleteCollection(db) {
324
- return await db.selectFrom("_emdash_collections as collection").select(["collection.id", "collection.slug"]).where((eb) => eb.not(eb.exists(eb.selectFrom("_emdash_media_usage_index_status as status").select("status.scope_key").where("status.adapter_id", "=", "content-media").where("status.scope_type", "=", "collection").whereRef("status.scope_key", "=", "collection.slug").whereRef("status.collection_id", "=", "collection.id").where("status.capture_state", "=", "active")))).orderBy("collection.slug", "asc").limit(1).executeTakeFirst() ?? null;
325
- }
326
- async function finalizeActivation(db, leaseToken, collectionCursor) {
327
- const now = timestampOffset(db, 0);
328
- const result = await db.updateTable("_emdash_media_usage_activation").set({
329
- state: "active",
330
- collection_cursor: collectionCursor,
331
- lease_token: null,
332
- lease_expires_at: null,
333
- last_error_code: null,
334
- activated_at: now,
335
- updated_at: now
336
- }).where("task_key", "=", ACTIVATION_KEY).where("state", "=", "activating").where("runtime_generation", "=", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION).where("lease_token", "=", leaseToken).where("lease_expires_at", "is not", null).where(timestampIsLive(db, "lease_expires_at")).where(sql`NOT EXISTS (
337
- SELECT 1
338
- FROM _emdash_collections AS collection
339
- WHERE NOT EXISTS (
340
- SELECT 1
341
- FROM _emdash_media_usage_index_status AS status
342
- WHERE status.adapter_id = 'content-media'
343
- AND status.scope_type = 'collection'
344
- AND status.scope_key = collection.slug
345
- AND status.collection_id = collection.id
346
- AND status.capture_state = 'active'
347
- )
348
- )`).executeTakeFirst();
349
- return Number(result.numUpdatedRows ?? 0) > 0;
350
- }
351
- async function recordActivationFailure(db, leaseToken) {
352
- await db.updateTable("_emdash_media_usage_activation").set({
353
- lease_token: null,
354
- lease_expires_at: null,
355
- last_error_code: ACTIVATION_ERROR_CODE,
356
- updated_at: timestampOffset(db, 0)
357
- }).where("task_key", "=", ACTIVATION_KEY).where("state", "=", "activating").where("runtime_generation", "=", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION).where("lease_token", "=", leaseToken).execute();
358
- }
359
- function activeActivationLease(db, leaseToken) {
360
- return sql`EXISTS (
361
- SELECT 1
362
- FROM _emdash_media_usage_activation AS activation
363
- WHERE activation.task_key = ${ACTIVATION_KEY}
364
- AND activation.state = 'activating'
365
- AND activation.runtime_generation = ${MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION}
366
- AND activation.lease_token = ${leaseToken}
367
- AND activation.lease_expires_at IS NOT NULL
368
- AND ${timestampIsLive(db, "activation.lease_expires_at")}
369
- )`;
370
- }
371
- function timestampIsDue(db, column) {
372
- return isPostgres(db) ? sql`${sql.ref(column)}::timestamptz <= clock_timestamp()` : sql`${sql.ref(column)} <= strftime('%Y-%m-%dT%H:%M:%fZ', 'now')`;
373
- }
374
- function timestampIsLive(db, column) {
375
- return isPostgres(db) ? sql`${sql.ref(column)}::timestamptz > clock_timestamp()` : sql`${sql.ref(column)} > strftime('%Y-%m-%dT%H:%M:%fZ', 'now')`;
376
- }
377
- function timestampOffset(db, seconds) {
378
- if (isPostgres(db)) return sql`to_char(
379
- clock_timestamp() AT TIME ZONE 'UTC' + (${seconds} * interval '1 second'),
380
- 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"'
381
- )`;
382
- return sql`strftime('%Y-%m-%dT%H:%M:%fZ', 'now', ${`+${seconds} seconds`})`;
383
- }
384
-
385
- //#endregion
386
- export { continueMediaUsageActivation as a, getMediaUsageActivationStatus as c, prepareMediaUsageCollectionCapture as d, canResumeMediaUsageCollectionCapture as i, installPreparedMediaUsageCollectionCapture as l, MediaUsageActivationVersionMismatchError as n, finalizeMediaUsageCollectionCapture as o, activateMediaUsageCapture as r, findResumableMediaUsageCollectionCaptureId as s, MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION as t, markMediaUsageCollectionCaptureReady as u };
387
- //# sourceMappingURL=activation-Dim4YMM7.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activation-Dim4YMM7.mjs","names":[],"sources":["../src/media/usage/activation.ts"],"sourcesContent":["import { sql, type Kysely, type RawBuilder, type Selectable } from \"kysely\";\nimport { ulid } from \"ulidx\";\n\nimport { isPostgres, tableExists } from \"../../database/dialect-helpers.js\";\nimport type { Database, MediaUsageActivationTable } from \"../../database/types.js\";\nimport {\n\tinstallMediaUsageCaptureTriggers,\n\tverifyMediaUsageCaptureTriggers,\n} from \"./capture-triggers.js\";\n\nconst ACTIVATION_KEY = \"incremental_capture\";\nconst ACTIVATION_ERROR_CODE = \"MEDIA_USAGE_ACTIVATION_FAILED\";\nexport const MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION = 1;\n\nexport class MediaUsageActivationVersionMismatchError extends Error {}\n\nexport interface MediaUsageActivationStatus {\n\tstate: \"expanded\" | \"activating\" | \"active\";\n\tcollectionCursor: string | null;\n\tattemptCount: number;\n\tdrainConfirmedAt: string | null;\n\tlastAttemptedAt: string | null;\n\tlastErrorCode: \"MEDIA_USAGE_ACTIVATION_FAILED\" | null;\n\tleaseExpiresAt: string | null;\n\tactivatedAt: string | null;\n\tupdatedAt: string;\n}\n\nexport const MEDIA_USAGE_ACTIVATION_LIMITS = Object.freeze({\n\tcollectionsPerCall: 1,\n\tleaseDurationSeconds: 5 * 60,\n});\n\nexport type MediaUsageActivationResult =\n\t| { outcome: \"active\"; processedCollections: number }\n\t| {\n\t\t\toutcome: \"activating\";\n\t\t\tprocessedCollections: number;\n\t\t\tcollectionCursor: string | null;\n\t }\n\t| { outcome: \"lease_active\"; leaseExpiresAt: string }\n\t| { outcome: \"conflict\"; processedCollections: number };\n\nexport type MediaUsageActivationContinuationResult =\n\t| MediaUsageActivationResult\n\t| { outcome: \"inactive\" | \"failed\" };\n\ntype MediaUsageActivationClaimMode = \"confirmed\" | \"background\";\n\nexport interface MediaUsageCollectionCapturePreparation {\n\tcaptureRequired: boolean;\n\tcollectionId: string;\n\tregistrationExists: boolean;\n\tresuming: boolean;\n}\n\nexport async function getMediaUsageActivationStatus(\n\tdb: Kysely<Database>,\n): Promise<MediaUsageActivationStatus> {\n\tconst activation = await db\n\t\t.selectFrom(\"_emdash_media_usage_activation\")\n\t\t.select([\n\t\t\t\"state\",\n\t\t\t\"runtime_generation\",\n\t\t\t\"collection_cursor\",\n\t\t\t\"drain_confirmed_at\",\n\t\t\t\"lease_expires_at\",\n\t\t\t\"attempt_count\",\n\t\t\t\"last_attempted_at\",\n\t\t\t\"last_error_code\",\n\t\t\t\"activated_at\",\n\t\t\t\"updated_at\",\n\t\t])\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.executeTakeFirstOrThrow();\n\tassertRuntimeGeneration(activation);\n\tif (\n\t\tactivation.state !== \"expanded\" &&\n\t\tactivation.state !== \"activating\" &&\n\t\tactivation.state !== \"active\"\n\t) {\n\t\tthrow new Error(\"Invalid media usage activation state\");\n\t}\n\tif (!Number.isInteger(activation.attempt_count) || activation.attempt_count < 0) {\n\t\tthrow new Error(\"Invalid media usage activation attempt count\");\n\t}\n\n\treturn {\n\t\tstate: activation.state,\n\t\tcollectionCursor: activation.collection_cursor,\n\t\tattemptCount: activation.attempt_count,\n\t\tdrainConfirmedAt: activation.drain_confirmed_at,\n\t\tlastAttemptedAt: activation.last_attempted_at,\n\t\tlastErrorCode: activation.last_error_code === null ? null : ACTIVATION_ERROR_CODE,\n\t\tleaseExpiresAt: activation.lease_expires_at,\n\t\tactivatedAt: activation.activated_at,\n\t\tupdatedAt: activation.updated_at,\n\t};\n}\n\nexport async function canResumeMediaUsageCollectionCapture(\n\tdb: Kysely<Database>,\n\tidentity: { collectionId: string; collectionSlug: string; creationFingerprint?: string },\n): Promise<boolean> {\n\treturn (await findResumableMediaUsageCollectionCaptureId(db, identity)) === identity.collectionId;\n}\n\nexport async function findResumableMediaUsageCollectionCaptureId(\n\tdb: Kysely<Database>,\n\tidentity: { collectionSlug: string; creationFingerprint?: string },\n): Promise<string | null> {\n\tconst activation = await findActivationIfAvailable(db);\n\tif (!activation) return null;\n\tassertRuntimeGeneration(activation);\n\tif (activation.state !== \"active\") return null;\n\n\tconst lifecycle = await db\n\t\t.selectFrom(\"_emdash_media_usage_index_status\")\n\t\t.select([\"collection_id\", \"cursor\"])\n\t\t.where(\"adapter_id\", \"=\", \"content-media\")\n\t\t.where(\"scope_type\", \"=\", \"collection\")\n\t\t.where(\"scope_key\", \"=\", identity.collectionSlug)\n\t\t.where(\"capture_state\", \"in\", [\"installing\", \"ready\"])\n\t\t.executeTakeFirst();\n\tif (!lifecycle?.collection_id) return null;\n\tif (\n\t\tidentity.creationFingerprint\n\t\t\t? lifecycle.cursor !== identity.creationFingerprint\n\t\t\t: lifecycle.cursor !== null\n\t) {\n\t\treturn null;\n\t}\n\treturn lifecycle.collection_id;\n}\n\nexport async function prepareMediaUsageCollectionCapture(\n\tdb: Kysely<Database>,\n\tinput: {\n\t\tcollectionId: string;\n\t\tcollectionSlug: string;\n\t\tcreationFingerprint?: string;\n\t\tregisteredCollectionId?: string;\n\t},\n): Promise<MediaUsageCollectionCapturePreparation> {\n\tconst activation = await findActivationIfAvailable(db);\n\tif (!activation) {\n\t\treturn {\n\t\t\tcaptureRequired: false,\n\t\t\tcollectionId: input.collectionId,\n\t\t\tregistrationExists: input.registeredCollectionId !== undefined,\n\t\t\tresuming: false,\n\t\t};\n\t}\n\tassertRuntimeGeneration(activation);\n\tif (activation.state !== \"active\") {\n\t\treturn {\n\t\t\tcaptureRequired: false,\n\t\t\tcollectionId: input.collectionId,\n\t\t\tregistrationExists: input.registeredCollectionId !== undefined,\n\t\t\tresuming: false,\n\t\t};\n\t}\n\n\tconst existing = await db\n\t\t.selectFrom(\"_emdash_media_usage_index_status\")\n\t\t.select([\"collection_id\", \"capture_state\", \"cursor\"])\n\t\t.where(\"adapter_id\", \"=\", \"content-media\")\n\t\t.where(\"scope_type\", \"=\", \"collection\")\n\t\t.where(\"scope_key\", \"=\", input.collectionSlug)\n\t\t.executeTakeFirst();\n\tif (existing) {\n\t\tif (\n\t\t\texisting.collection_id &&\n\t\t\t(existing.capture_state === \"installing\" || existing.capture_state === \"ready\") &&\n\t\t\t(input.creationFingerprint\n\t\t\t\t? existing.cursor === input.creationFingerprint\n\t\t\t\t: existing.cursor === null) &&\n\t\t\t(input.registeredCollectionId === undefined ||\n\t\t\t\tinput.registeredCollectionId === existing.collection_id)\n\t\t) {\n\t\t\treturn {\n\t\t\t\tcaptureRequired: true,\n\t\t\t\tcollectionId: existing.collection_id,\n\t\t\t\tregistrationExists: input.registeredCollectionId !== undefined,\n\t\t\t\tresuming: true,\n\t\t\t};\n\t\t}\n\t\tthrow new Error(\"Media usage collection lifecycle identity conflict\");\n\t}\n\tif (input.registeredCollectionId !== undefined) {\n\t\tthrow new Error(\"Media usage collection lifecycle is missing\");\n\t}\n\n\tawait db\n\t\t.insertInto(\"_emdash_media_usage_index_status\")\n\t\t.values({\n\t\t\tadapter_id: \"content-media\",\n\t\t\tscope_type: \"collection\",\n\t\t\tscope_key: input.collectionSlug,\n\t\t\tstatus: \"never\",\n\t\t\tcollection_id: input.collectionId,\n\t\t\treconciliation_required: 1,\n\t\t\tcapture_state: \"installing\",\n\t\t\tcursor: input.creationFingerprint ?? null,\n\t\t\tupdated_at: timestampOffset(db, 0),\n\t\t})\n\t\t.execute();\n\treturn {\n\t\tcaptureRequired: true,\n\t\tcollectionId: input.collectionId,\n\t\tregistrationExists: false,\n\t\tresuming: false,\n\t};\n}\n\nexport async function installPreparedMediaUsageCollectionCapture(\n\tdb: Kysely<Database>,\n\tidentity: { collectionId: string; collectionSlug: string },\n): Promise<void> {\n\tawait installMediaUsageCaptureTriggers(db, identity, { replaceExisting: false });\n\tif (!(await verifyMediaUsageCaptureTriggers(db, identity))) {\n\t\tthrow new Error(\"Media usage capture trigger verification failed\");\n\t}\n}\n\nexport async function markMediaUsageCollectionCaptureReady(\n\tdb: Kysely<Database>,\n\tidentity: { collectionId: string; collectionSlug: string },\n): Promise<void> {\n\tconst result = await db\n\t\t.updateTable(\"_emdash_media_usage_index_status\")\n\t\t.set({ capture_state: \"ready\", updated_at: timestampOffset(db, 0) })\n\t\t.where(\"adapter_id\", \"=\", \"content-media\")\n\t\t.where(\"scope_type\", \"=\", \"collection\")\n\t\t.where(\"scope_key\", \"=\", identity.collectionSlug)\n\t\t.where(\"collection_id\", \"=\", identity.collectionId)\n\t\t.where(\"capture_state\", \"in\", [\"installing\", \"ready\"])\n\t\t.where(\n\t\t\tsql<boolean>`EXISTS (\n\t\t\t\tSELECT 1 FROM _emdash_media_usage_activation AS activation\n\t\t\t\tWHERE activation.task_key = ${ACTIVATION_KEY}\n\t\t\t\t\tAND activation.state = 'active'\n\t\t\t\t\tAND activation.runtime_generation = ${MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION}\n\t\t\t)`,\n\t\t)\n\t\t.executeTakeFirst();\n\tif (Number(result.numUpdatedRows ?? 0) === 0) {\n\t\tthrow new Error(\"Media usage collection readiness lost its fence\");\n\t}\n}\n\nexport async function finalizeMediaUsageCollectionCapture(\n\tdb: Kysely<Database>,\n\tidentity: { collectionId: string; collectionSlug: string },\n): Promise<void> {\n\tconst result = await db\n\t\t.updateTable(\"_emdash_media_usage_index_status\")\n\t\t.set({ capture_state: \"active\", cursor: null, updated_at: timestampOffset(db, 0) })\n\t\t.where(\"adapter_id\", \"=\", \"content-media\")\n\t\t.where(\"scope_type\", \"=\", \"collection\")\n\t\t.where(\"scope_key\", \"=\", identity.collectionSlug)\n\t\t.where(\"collection_id\", \"=\", identity.collectionId)\n\t\t.where(\"capture_state\", \"=\", \"ready\")\n\t\t.where(\n\t\t\tsql<boolean>`EXISTS (\n\t\t\t\tSELECT 1 FROM _emdash_collections AS collection\n\t\t\t\tWHERE collection.id = ${identity.collectionId}\n\t\t\t\t\tAND collection.slug = ${identity.collectionSlug}\n\t\t\t)`,\n\t\t)\n\t\t.where(\n\t\t\tsql<boolean>`EXISTS (\n\t\t\t\tSELECT 1 FROM _emdash_media_usage_activation AS activation\n\t\t\t\tWHERE activation.task_key = ${ACTIVATION_KEY}\n\t\t\t\t\tAND activation.state = 'active'\n\t\t\t\t\tAND activation.runtime_generation = ${MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION}\n\t\t\t)`,\n\t\t)\n\t\t.executeTakeFirst();\n\tif (Number(result.numUpdatedRows ?? 0) === 0) {\n\t\tthrow new Error(\"Media usage collection activation lost its fence\");\n\t}\n}\n\nexport async function activateMediaUsageCapture(\n\tdb: Kysely<Database>,\n\tinput: { writersDrained: true },\n): Promise<MediaUsageActivationResult> {\n\tif (input.writersDrained !== true) {\n\t\tthrow new Error(\"Media usage activation requires confirmation that writers are drained\");\n\t}\n\treturn advanceMediaUsageActivation(db, \"confirmed\");\n}\n\nexport async function continueMediaUsageActivation(\n\tdb: Kysely<Database>,\n): Promise<MediaUsageActivationContinuationResult> {\n\treturn advanceMediaUsageActivation(db, \"background\");\n}\n\nasync function advanceMediaUsageActivation(\n\tdb: Kysely<Database>,\n\tmode: \"confirmed\",\n): Promise<MediaUsageActivationResult>;\nasync function advanceMediaUsageActivation(\n\tdb: Kysely<Database>,\n\tmode: \"background\",\n): Promise<MediaUsageActivationContinuationResult>;\nasync function advanceMediaUsageActivation(\n\tdb: Kysely<Database>,\n\tmode: MediaUsageActivationClaimMode,\n): Promise<MediaUsageActivationContinuationResult> {\n\tconst before = await findActivation(db);\n\tassertRuntimeGeneration(before);\n\tif (before.state === \"active\") {\n\t\treturn { outcome: \"active\", processedCollections: 0 };\n\t}\n\tif (mode === \"background\") {\n\t\tif (before.state === \"expanded\" || before.drain_confirmed_at === null) {\n\t\t\treturn { outcome: \"inactive\" };\n\t\t}\n\t\tif (before.state !== \"activating\") {\n\t\t\tthrow new Error(\"Invalid media usage activation state\");\n\t\t}\n\t\tif (before.last_error_code !== null) return { outcome: \"failed\" };\n\t}\n\n\tconst leaseToken = ulid();\n\tconst lease = await claimActivation(db, leaseToken, mode);\n\tif (!lease) return activationClaimLoss(db, mode);\n\n\tlet processedCollections = 0;\n\ttry {\n\t\tconst candidates = await findActivationCandidates(db, lease.collection_cursor);\n\t\tfor (const collection of candidates.slice(\n\t\t\t0,\n\t\t\tMEDIA_USAGE_ACTIVATION_LIMITS.collectionsPerCall,\n\t\t)) {\n\t\t\tawait requireActivationLease(db, leaseToken);\n\t\t\tawait prepareCollectionForActivation(db, collection, leaseToken);\n\t\t\tawait requireActivationLease(db, leaseToken);\n\t\t\tawait installMediaUsageCaptureTriggers(\n\t\t\t\tdb,\n\t\t\t\t{\n\t\t\t\t\tcollectionId: collection.id,\n\t\t\t\t\tcollectionSlug: collection.slug,\n\t\t\t\t},\n\t\t\t\t{ replaceExisting: false },\n\t\t\t);\n\t\t\tawait requireActivationLease(db, leaseToken);\n\t\t\tif (\n\t\t\t\t!(await verifyMediaUsageCaptureTriggers(db, {\n\t\t\t\t\tcollectionId: collection.id,\n\t\t\t\t\tcollectionSlug: collection.slug,\n\t\t\t\t}))\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Media usage capture trigger verification failed\");\n\t\t\t}\n\t\t\tif (!(await activateCollectionLifecycle(db, collection, leaseToken))) {\n\t\t\t\tthrow new Error(\"Media usage collection activation lost its fence\");\n\t\t\t}\n\t\t\tprocessedCollections++;\n\t\t}\n\n\t\tconst collectionCursor =\n\t\t\tcandidates[Math.min(processedCollections, candidates.length) - 1]?.slug ??\n\t\t\tlease.collection_cursor;\n\t\tif (candidates.length > MEDIA_USAGE_ACTIVATION_LIMITS.collectionsPerCall) {\n\t\t\tif (!(await releaseActivationBatch(db, leaseToken, collectionCursor))) {\n\t\t\t\tthrow new Error(\"Media usage activation cursor lost its fence\");\n\t\t\t}\n\t\t\treturn { outcome: \"activating\", processedCollections, collectionCursor };\n\t\t}\n\n\t\tconst incomplete = await findIncompleteCollection(db);\n\t\tif (incomplete) {\n\t\t\tif (!(await releaseActivationBatch(db, leaseToken, null))) {\n\t\t\t\tthrow new Error(\"Media usage activation restart lost its fence\");\n\t\t\t}\n\t\t\treturn { outcome: \"activating\", processedCollections, collectionCursor: null };\n\t\t}\n\n\t\tif (!(await finalizeActivation(db, leaseToken, collectionCursor))) {\n\t\t\tthrow new Error(\"Media usage activation finalization lost its fence\");\n\t\t}\n\t\treturn { outcome: \"active\", processedCollections };\n\t} catch (error) {\n\t\tif (!(await activationLeaseIsLive(db, leaseToken))) {\n\t\t\treturn { outcome: \"conflict\", processedCollections };\n\t\t}\n\t\tawait recordActivationFailure(db, leaseToken);\n\t\tthrow new Error(\"Media usage activation failed\", { cause: error });\n\t}\n}\n\nasync function findActivation(\n\tdb: Kysely<Database>,\n): Promise<Selectable<MediaUsageActivationTable>> {\n\treturn db\n\t\t.selectFrom(\"_emdash_media_usage_activation\")\n\t\t.selectAll()\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.executeTakeFirstOrThrow();\n}\n\nasync function findActivationIfAvailable(\n\tdb: Kysely<Database>,\n): Promise<Selectable<MediaUsageActivationTable> | null> {\n\tif (!(await tableExists(db, \"_emdash_media_usage_activation\"))) return null;\n\treturn findActivation(db);\n}\n\nfunction assertRuntimeGeneration(activation: { runtime_generation: number }): void {\n\tif (activation.runtime_generation !== MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION) {\n\t\tthrow new MediaUsageActivationVersionMismatchError(\n\t\t\t\"Media usage activation runtime generation mismatch\",\n\t\t);\n\t}\n}\n\nasync function claimActivation(\n\tdb: Kysely<Database>,\n\tleaseToken: string,\n\tmode: MediaUsageActivationClaimMode,\n): Promise<Selectable<MediaUsageActivationTable> | null> {\n\tconst now = timestampOffset(db, 0);\n\tconst claimValues = {\n\t\tlease_token: leaseToken,\n\t\tlease_expires_at: timestampOffset(db, MEDIA_USAGE_ACTIVATION_LIMITS.leaseDurationSeconds),\n\t\tattempt_count: sql<number>`attempt_count + 1`,\n\t\tlast_attempted_at: now,\n\t\tupdated_at: now,\n\t};\n\tlet claim = db\n\t\t.updateTable(\"_emdash_media_usage_activation\")\n\t\t.set(\n\t\t\tmode === \"confirmed\"\n\t\t\t\t? {\n\t\t\t\t\t\t...claimValues,\n\t\t\t\t\t\tstate: \"activating\",\n\t\t\t\t\t\tdrain_confirmed_at: now,\n\t\t\t\t\t\tlast_error_code: null,\n\t\t\t\t\t}\n\t\t\t\t: claimValues,\n\t\t)\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.where(\"runtime_generation\", \"=\", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION);\n\tif (mode === \"confirmed\") {\n\t\tclaim = claim.where((eb) =>\n\t\t\teb.or([\n\t\t\t\teb(\"state\", \"=\", \"expanded\"),\n\t\t\t\teb.and([\n\t\t\t\t\teb(\"state\", \"=\", \"activating\"),\n\t\t\t\t\teb.or([\n\t\t\t\t\t\teb(\"lease_token\", \"is\", null),\n\t\t\t\t\t\teb.and([\n\t\t\t\t\t\t\teb(\"lease_expires_at\", \"is not\", null),\n\t\t\t\t\t\t\ttimestampIsDue(db, \"lease_expires_at\"),\n\t\t\t\t\t\t]),\n\t\t\t\t\t]),\n\t\t\t\t]),\n\t\t\t]),\n\t\t);\n\t} else {\n\t\tclaim = claim\n\t\t\t.where(\"state\", \"=\", \"activating\")\n\t\t\t.where(\"drain_confirmed_at\", \"is not\", null)\n\t\t\t.where(\"last_error_code\", \"is\", null)\n\t\t\t.where((eb) =>\n\t\t\t\teb.or([\n\t\t\t\t\teb(\"lease_token\", \"is\", null),\n\t\t\t\t\teb.and([eb(\"lease_expires_at\", \"is not\", null), timestampIsDue(db, \"lease_expires_at\")]),\n\t\t\t\t]),\n\t\t\t);\n\t}\n\treturn (await claim.returningAll().executeTakeFirst()) ?? null;\n}\n\nasync function activationClaimLoss(\n\tdb: Kysely<Database>,\n\tmode: MediaUsageActivationClaimMode,\n): Promise<MediaUsageActivationContinuationResult> {\n\tconst current = await findActivation(db);\n\tassertRuntimeGeneration(current);\n\tif (current.state === \"active\") return { outcome: \"active\", processedCollections: 0 };\n\tif (mode === \"background\") {\n\t\tif (current.state === \"expanded\" || current.drain_confirmed_at === null) {\n\t\t\treturn { outcome: \"inactive\" };\n\t\t}\n\t\tif (current.state === \"activating\" && current.last_error_code !== null) {\n\t\t\treturn { outcome: \"failed\" };\n\t\t}\n\t}\n\tif (\n\t\tcurrent.state === \"activating\" &&\n\t\tcurrent.lease_token &&\n\t\tcurrent.lease_expires_at &&\n\t\t(await activationLeaseIsLive(db, current.lease_token))\n\t) {\n\t\treturn { outcome: \"lease_active\", leaseExpiresAt: current.lease_expires_at };\n\t}\n\tif (mode === \"background\" && current.state === \"activating\") {\n\t\treturn { outcome: \"conflict\", processedCollections: 0 };\n\t}\n\tthrow new Error(\"Media usage activation state is not claimable\");\n}\n\nasync function activationLeaseIsLive(db: Kysely<Database>, leaseToken: string): Promise<boolean> {\n\tconst row = await db\n\t\t.selectFrom(\"_emdash_media_usage_activation\")\n\t\t.select(\"task_key\")\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.where(\"state\", \"=\", \"activating\")\n\t\t.where(\"runtime_generation\", \"=\", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION)\n\t\t.where(\"lease_token\", \"=\", leaseToken)\n\t\t.where(\"lease_expires_at\", \"is not\", null)\n\t\t.where(timestampIsLive(db, \"lease_expires_at\"))\n\t\t.executeTakeFirst();\n\treturn row !== undefined;\n}\n\nasync function findActivationCandidates(\n\tdb: Kysely<Database>,\n\tcollectionCursor: string | null,\n): Promise<Array<{ id: string; slug: string }>> {\n\tlet query = db.selectFrom(\"_emdash_collections\").select([\"id\", \"slug\"]);\n\tif (collectionCursor) query = query.where(\"slug\", \">\", collectionCursor);\n\treturn query\n\t\t.orderBy(\"slug\", \"asc\")\n\t\t.limit(MEDIA_USAGE_ACTIVATION_LIMITS.collectionsPerCall + 1)\n\t\t.execute();\n}\n\nasync function prepareCollectionForActivation(\n\tdb: Kysely<Database>,\n\tcollection: { id: string; slug: string },\n\tleaseToken: string,\n): Promise<void> {\n\tconst now = timestampOffset(db, 0);\n\tconst existingStatus = sql.ref(\"_emdash_media_usage_index_status.status\");\n\tconst existingCompletedAt = sql.ref(\"_emdash_media_usage_index_status.completed_at\");\n\tconst existingCollectionId = sql.ref(\"_emdash_media_usage_index_status.collection_id\");\n\tconst existingCaptureState = sql.ref(\"_emdash_media_usage_index_status.capture_state\");\n\tconst row = await db\n\t\t.insertInto(\"_emdash_media_usage_index_status\")\n\t\t.values({\n\t\t\tadapter_id: \"content-media\",\n\t\t\tscope_type: \"collection\",\n\t\t\tscope_key: collection.slug,\n\t\t\tstatus: \"never\",\n\t\t\tcollection_id: collection.id,\n\t\t\treconciliation_required: 1,\n\t\t\tcapture_state: \"installing\",\n\t\t\tupdated_at: now,\n\t\t})\n\t\t.onConflict((conflict) =>\n\t\t\tconflict\n\t\t\t\t.columns([\"adapter_id\", \"scope_type\", \"scope_key\"])\n\t\t\t\t.doUpdateSet({\n\t\t\t\t\tstatus: sql<string>`CASE WHEN ${existingStatus} IN ('complete', 'running') THEN 'stale' ELSE ${existingStatus} END`,\n\t\t\t\t\tcompleted_at: sql<\n\t\t\t\t\t\tstring | null\n\t\t\t\t\t>`CASE WHEN ${existingStatus} IN ('complete', 'running') THEN NULL ELSE ${existingCompletedAt} END`,\n\t\t\t\t\tcursor: null,\n\t\t\t\t\tcollection_id: collection.id,\n\t\t\t\t\treconciliation_required: 1,\n\t\t\t\t\tcapture_state: \"installing\",\n\t\t\t\t\tupdated_at: now,\n\t\t\t\t})\n\t\t\t\t.where((eb) =>\n\t\t\t\t\teb.and([\n\t\t\t\t\t\teb.or([\n\t\t\t\t\t\t\teb(existingCollectionId, \"is\", null),\n\t\t\t\t\t\t\teb(existingCollectionId, \"=\", collection.id),\n\t\t\t\t\t\t]),\n\t\t\t\t\t\teb.or([\n\t\t\t\t\t\t\teb(existingCaptureState, \"is\", null),\n\t\t\t\t\t\t\teb(existingCaptureState, \"!=\", \"deleting\"),\n\t\t\t\t\t\t]),\n\t\t\t\t\t\tactiveActivationLease(db, leaseToken),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t)\n\t\t.returning(\"collection_id\")\n\t\t.executeTakeFirst();\n\tif (row?.collection_id !== collection.id) {\n\t\tthrow new Error(\"Media usage collection lifecycle identity conflict\");\n\t}\n}\n\nasync function requireActivationLease(db: Kysely<Database>, leaseToken: string): Promise<void> {\n\tif (!(await activationLeaseIsLive(db, leaseToken))) {\n\t\tthrow new Error(\"Media usage activation lease is no longer live\");\n\t}\n}\n\nasync function activateCollectionLifecycle(\n\tdb: Kysely<Database>,\n\tcollection: { id: string; slug: string },\n\tleaseToken: string,\n): Promise<boolean> {\n\tconst result = await db\n\t\t.updateTable(\"_emdash_media_usage_index_status\")\n\t\t.set({ capture_state: \"active\", updated_at: timestampOffset(db, 0) })\n\t\t.where(\"adapter_id\", \"=\", \"content-media\")\n\t\t.where(\"scope_type\", \"=\", \"collection\")\n\t\t.where(\"scope_key\", \"=\", collection.slug)\n\t\t.where(\"collection_id\", \"=\", collection.id)\n\t\t.where(\"capture_state\", \"=\", \"installing\")\n\t\t.where(\n\t\t\tsql<boolean>`EXISTS (\n\t\t\t\tSELECT 1 FROM _emdash_collections AS collection\n\t\t\t\tWHERE collection.id = ${collection.id}\n\t\t\t\t\tAND collection.slug = ${collection.slug}\n\t\t\t)`,\n\t\t)\n\t\t.where(activeActivationLease(db, leaseToken))\n\t\t.executeTakeFirst();\n\treturn Number(result.numUpdatedRows ?? 0) > 0;\n}\n\nasync function releaseActivationBatch(\n\tdb: Kysely<Database>,\n\tleaseToken: string,\n\tcollectionCursor: string | null,\n): Promise<boolean> {\n\tconst result = await db\n\t\t.updateTable(\"_emdash_media_usage_activation\")\n\t\t.set({\n\t\t\tcollection_cursor: collectionCursor,\n\t\t\tlease_token: null,\n\t\t\tlease_expires_at: null,\n\t\t\tupdated_at: timestampOffset(db, 0),\n\t\t})\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.where(\"state\", \"=\", \"activating\")\n\t\t.where(\"runtime_generation\", \"=\", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION)\n\t\t.where(\"lease_token\", \"=\", leaseToken)\n\t\t.where(\"lease_expires_at\", \"is not\", null)\n\t\t.where(timestampIsLive(db, \"lease_expires_at\"))\n\t\t.executeTakeFirst();\n\treturn Number(result.numUpdatedRows ?? 0) > 0;\n}\n\nasync function findIncompleteCollection(\n\tdb: Kysely<Database>,\n): Promise<{ id: string; slug: string } | null> {\n\tconst row = await db\n\t\t.selectFrom(\"_emdash_collections as collection\")\n\t\t.select([\"collection.id\", \"collection.slug\"])\n\t\t.where((eb) =>\n\t\t\teb.not(\n\t\t\t\teb.exists(\n\t\t\t\t\teb\n\t\t\t\t\t\t.selectFrom(\"_emdash_media_usage_index_status as status\")\n\t\t\t\t\t\t.select(\"status.scope_key\")\n\t\t\t\t\t\t.where(\"status.adapter_id\", \"=\", \"content-media\")\n\t\t\t\t\t\t.where(\"status.scope_type\", \"=\", \"collection\")\n\t\t\t\t\t\t.whereRef(\"status.scope_key\", \"=\", \"collection.slug\")\n\t\t\t\t\t\t.whereRef(\"status.collection_id\", \"=\", \"collection.id\")\n\t\t\t\t\t\t.where(\"status.capture_state\", \"=\", \"active\"),\n\t\t\t\t),\n\t\t\t),\n\t\t)\n\t\t.orderBy(\"collection.slug\", \"asc\")\n\t\t.limit(1)\n\t\t.executeTakeFirst();\n\treturn row ?? null;\n}\n\nasync function finalizeActivation(\n\tdb: Kysely<Database>,\n\tleaseToken: string,\n\tcollectionCursor: string | null,\n): Promise<boolean> {\n\tconst now = timestampOffset(db, 0);\n\tconst result = await db\n\t\t.updateTable(\"_emdash_media_usage_activation\")\n\t\t.set({\n\t\t\tstate: \"active\",\n\t\t\tcollection_cursor: collectionCursor,\n\t\t\tlease_token: null,\n\t\t\tlease_expires_at: null,\n\t\t\tlast_error_code: null,\n\t\t\tactivated_at: now,\n\t\t\tupdated_at: now,\n\t\t})\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.where(\"state\", \"=\", \"activating\")\n\t\t.where(\"runtime_generation\", \"=\", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION)\n\t\t.where(\"lease_token\", \"=\", leaseToken)\n\t\t.where(\"lease_expires_at\", \"is not\", null)\n\t\t.where(timestampIsLive(db, \"lease_expires_at\"))\n\t\t.where(\n\t\t\tsql<boolean>`NOT EXISTS (\n\t\t\t\tSELECT 1\n\t\t\t\tFROM _emdash_collections AS collection\n\t\t\t\tWHERE NOT EXISTS (\n\t\t\t\t\tSELECT 1\n\t\t\t\t\tFROM _emdash_media_usage_index_status AS status\n\t\t\t\t\tWHERE status.adapter_id = 'content-media'\n\t\t\t\t\t\tAND status.scope_type = 'collection'\n\t\t\t\t\t\tAND status.scope_key = collection.slug\n\t\t\t\t\t\tAND status.collection_id = collection.id\n\t\t\t\t\t\tAND status.capture_state = 'active'\n\t\t\t\t)\n\t\t\t)`,\n\t\t)\n\t\t.executeTakeFirst();\n\treturn Number(result.numUpdatedRows ?? 0) > 0;\n}\n\nasync function recordActivationFailure(db: Kysely<Database>, leaseToken: string): Promise<void> {\n\tawait db\n\t\t.updateTable(\"_emdash_media_usage_activation\")\n\t\t.set({\n\t\t\tlease_token: null,\n\t\t\tlease_expires_at: null,\n\t\t\tlast_error_code: ACTIVATION_ERROR_CODE,\n\t\t\tupdated_at: timestampOffset(db, 0),\n\t\t})\n\t\t.where(\"task_key\", \"=\", ACTIVATION_KEY)\n\t\t.where(\"state\", \"=\", \"activating\")\n\t\t.where(\"runtime_generation\", \"=\", MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION)\n\t\t.where(\"lease_token\", \"=\", leaseToken)\n\t\t.execute();\n}\n\nfunction activeActivationLease(db: Kysely<Database>, leaseToken: string): RawBuilder<boolean> {\n\treturn sql<boolean>`EXISTS (\n\t\tSELECT 1\n\t\tFROM _emdash_media_usage_activation AS activation\n\t\tWHERE activation.task_key = ${ACTIVATION_KEY}\n\t\t\tAND activation.state = 'activating'\n\t\t\tAND activation.runtime_generation = ${MEDIA_USAGE_ACTIVATION_RUNTIME_GENERATION}\n\t\t\tAND activation.lease_token = ${leaseToken}\n\t\t\tAND activation.lease_expires_at IS NOT NULL\n\t\t\tAND ${timestampIsLive(db, \"activation.lease_expires_at\")}\n\t)`;\n}\n\nfunction timestampIsDue(db: Kysely<Database>, 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\nfunction timestampIsLive(db: Kysely<Database>, 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\nfunction timestampOffset(db: Kysely<Database>, seconds: number): RawBuilder<string> {\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} seconds`})`;\n}\n"],"mappings":"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"}
@@ -1,173 +0,0 @@
1
- //#region src/db/adapters.d.ts
2
- /**
3
- * Database Adapter Functions
4
- *
5
- * These run at config time (astro.config.mjs) and return serializable descriptors.
6
- * The actual dialect is created at runtime by loading the entrypoint.
7
- *
8
- * @example
9
- * ```ts
10
- * // astro.config.mjs
11
- * import emdash from "emdash/astro";
12
- * import { sqlite } from "emdash/db";
13
- *
14
- * export default defineConfig({
15
- * integrations: [
16
- * emdash({
17
- * database: sqlite({ url: "file:./data.db" }),
18
- * }),
19
- * ],
20
- * });
21
- * ```
22
- */
23
- /**
24
- * Dialect family identifier.
25
- * Used at runtime to select dialect-specific SQL fragments.
26
- */
27
- type DatabaseDialectType = "sqlite" | "postgres";
28
- type CollectionDeletionGuardInput = {
29
- action: "fence";
30
- collectionId: string;
31
- collectionSlug: string;
32
- leaseToken: string;
33
- forceDelete: boolean;
34
- } | {
35
- action: "drop";
36
- collectionId: string;
37
- collectionSlug: string;
38
- leaseToken: string;
39
- };
40
- type CollectionDeletionGuardResult = {
41
- outcome: "fenced";
42
- } | {
43
- outcome: "has_content";
44
- } | {
45
- outcome: "stale";
46
- } | {
47
- outcome: "dropped";
48
- };
49
- type ExecuteCollectionDeletionGuard = (config: unknown, input: CollectionDeletionGuardInput) => Promise<CollectionDeletionGuardResult>;
50
- /**
51
- * Database descriptor - serializable config for virtual modules
52
- */
53
- interface DatabaseDescriptor {
54
- entrypoint: string;
55
- config: unknown;
56
- type: DatabaseDialectType;
57
- /** Deployment migration capability with configuration safe for a build artifact. */
58
- migrations?: {
59
- entrypoint: string;
60
- manifestConfig: unknown;
61
- };
62
- /**
63
- * When true, the adapter's runtime entrypoint MUST export a named
64
- * `createRequestScopedDb` function matching the signature declared in
65
- * `virtual:emdash/dialect`. The virtual-module generator re-exports it
66
- * by name, so a missing export becomes a build-time bundler error.
67
- *
68
- * The function is called once per request and decides — based on its own
69
- * runtime config (e.g. whether the user opted into D1 sessions) — whether
70
- * to return a per-request Kysely or null. Use this for features like D1
71
- * read-replica sessions, bookmark cookies, or any per-request DB handle.
72
- * The handle must address the configured database: core shares values it
73
- * caches from one handle, such as the preview secret, with later requests.
74
- *
75
- * When false or absent, the generator emits a stub that returns null and
76
- * the middleware takes its default (singleton) path.
77
- */
78
- supportsRequestScope?: boolean;
79
- /**
80
- * When true, request middleware resolves the last content-namespace
81
- * invalidation timestamp and passes it to `createRequestScopedDb`.
82
- *
83
- * Keep this unset unless request routing depends on that timestamp: reading
84
- * it may require an object-cache backend round trip.
85
- */
86
- needsLastContentWriteAt?: boolean;
87
- /**
88
- * When true, the adapter's runtime entrypoint MUST export a named
89
- * `createCoalescingDialect` function. The runtime uses this fresh dialect
90
- * only for its cold-start read batch.
91
- *
92
- * When false or absent, the virtual module exports `undefined` without
93
- * inspecting an optional entrypoint export.
94
- */
95
- supportsCoalescing?: boolean;
96
- /** The runtime entrypoint exports the deletion-specific atomic guard. */
97
- supportsCollectionDeletionGuard?: boolean;
98
- }
99
- interface SqliteConfig {
100
- /**
101
- * Database URL (e.g., "file:./data.db")
102
- */
103
- url: string;
104
- }
105
- interface LibsqlConfig {
106
- /**
107
- * Database URL (e.g., "file:./data.db" or "libsql://...")
108
- */
109
- url: string;
110
- /**
111
- * Auth token for remote libSQL
112
- */
113
- authToken?: string;
114
- migrationAuthTokenEnv?: string;
115
- }
116
- /**
117
- * SQLite database adapter (node:sqlite)
118
- *
119
- * For local development and Node.js deployments. Requires Node.js 22.16 or later.
120
- *
121
- * @example
122
- * ```ts
123
- * database: sqlite({ url: "file:./data.db" })
124
- * ```
125
- */
126
- declare function sqlite(config: SqliteConfig): DatabaseDescriptor;
127
- /**
128
- * libSQL database adapter (Turso)
129
- *
130
- * For Turso hosted databases or local libSQL.
131
- *
132
- * @example
133
- * ```ts
134
- * database: libsql({
135
- * url: "libsql://my-db.turso.io",
136
- * authToken: process.env.TURSO_AUTH_TOKEN,
137
- * })
138
- * ```
139
- */
140
- declare function libsql(config: LibsqlConfig): DatabaseDescriptor;
141
- /**
142
- * PostgreSQL connection configuration
143
- */
144
- interface PostgresConfig {
145
- connectionString?: string;
146
- host?: string;
147
- port?: number;
148
- database?: string;
149
- user?: string;
150
- password?: string;
151
- ssl?: boolean;
152
- pool?: {
153
- min?: number;
154
- max?: number; /** Maximum time to wait for a connection, in milliseconds. Uses the pg default when omitted. */
155
- connectionTimeoutMillis?: number; /** Time before an idle client is closed, in milliseconds. Uses the pg default when omitted. */
156
- idleTimeoutMillis?: number;
157
- };
158
- migrationConnectionStringEnv?: string;
159
- }
160
- /**
161
- * PostgreSQL database adapter
162
- *
163
- * For PostgreSQL deployments with connection pooling.
164
- *
165
- * @example
166
- * ```ts
167
- * database: postgres({ connectionString: process.env.DATABASE_URL })
168
- * ```
169
- */
170
- declare function postgres(config: PostgresConfig): DatabaseDescriptor;
171
- //#endregion
172
- export { ExecuteCollectionDeletionGuard as a, SqliteConfig as c, sqlite as d, DatabaseDialectType as i, libsql as l, CollectionDeletionGuardResult as n, LibsqlConfig as o, DatabaseDescriptor as r, PostgresConfig as s, CollectionDeletionGuardInput as t, postgres as u };
173
- //# sourceMappingURL=adapters-F_xorvWv.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapters-F_xorvWv.d.mts","names":[],"sources":["../src/db/adapters.ts"],"mappings":";;AA0BA;;;;;AAEA;;;;;;;;;;;;;;;AAeA;;;;AAAA,KAjBY,mBAAA;AAAA,KAEA,4BAAA;EAET,MAAA;EACA,YAAA;EACA,cAAA;EACA,UAAA;EACA,WAAA;AAAA;EAGA,MAAA;EACA,YAAA;EACA,cAAA;EACA,UAAA;AAAA;AAAA,KAGS,6BAAA;EACP,OAAA;AAAA;EACA,OAAA;AAAA;EACA,OAAA;AAAA;EACA,OAAA;AAAA;AAAA,KAEO,8BAAA,IACX,MAAA,WACA,KAAA,EAAO,4BAAA,KACH,OAAA,CAAQ,6BAAA;;;;UAmBI,kBAAA;EAChB,UAAA;EACA,MAAA;EACA,IAAA,EAAM,mBAAA;EAGL;EADD,UAAA;IACC,UAAA;IACA,cAAA;EAAA;EAqCD;;;AAGD;;;;;AAOA;;;;;;;;EA7BC,oBAAA;EAmDe;;;;;;;EA3Cf,uBAAA;EA2C+D;AAyBhE;;;;;;;EA3DC,kBAAA;EA2D+D;EAzD/D,+BAAA;AAAA;AAAA,UAGgB,YAAA;EA6Ec;;;EAzE9B,GAAA;AAAA;AAAA,UAGgB,YAAA;EA4EhB;;;EAxEA,GAAA;EA4EC;;;EAxED,SAAA;EACA,qBAAA;AAAA;AA0FD;;;;;;;;;;AAAA,iBA7EgB,MAAA,CAAO,MAAA,EAAQ,YAAA,GAAe,kBAAA;;;;;;;;;;;;;;iBAyB9B,MAAA,CAAO,MAAA,EAAQ,YAAA,GAAe,kBAAA;;;;UAuB7B,cAAA;EAChB,gBAAA;EACA,IAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA;EACA,GAAA;EACA,IAAA;IACC,GAAA;IACA,GAAA;IAEA,uBAAA;IAEA,iBAAA;EAAA;EAED,4BAAA;AAAA;;;;;;;;;;;iBAae,QAAA,CAAS,MAAA,EAAQ,cAAA,GAAiB,kBAAA"}