emdash 0.39.1 → 0.40.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 (1656) hide show
  1. package/dist/action-token-DYwe4Pk0.mjs +26 -0
  2. package/dist/action-token-DYwe4Pk0.mjs.map +1 -0
  3. package/dist/activation-LOkDM5WT.mjs +382 -0
  4. package/dist/activation-LOkDM5WT.mjs.map +1 -0
  5. package/dist/adapters-B64LbYcB.d.mts +171 -0
  6. package/dist/adapters-B64LbYcB.d.mts.map +1 -0
  7. package/dist/allowed-origins-CHB8oZNM.mjs +116 -0
  8. package/dist/allowed-origins-CHB8oZNM.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +4 -4
  10. package/dist/api/route-utils.mjs +49 -40
  11. package/dist/api/route-utils.mjs.map +1 -1
  12. package/dist/api/schemas/index.d.mts +2 -2
  13. package/dist/api/schemas/index.mjs +11 -7
  14. package/dist/api-CuyNEHZG.mjs +4718 -0
  15. package/dist/api-CuyNEHZG.mjs.map +1 -0
  16. package/dist/api-tokens-CE1ECIg0.mjs +3 -0
  17. package/dist/api-tokens-s4i4aUp_.mjs +166 -0
  18. package/dist/api-tokens-s4i4aUp_.mjs.map +1 -0
  19. package/dist/apply-npY1TAhG.mjs +1366 -0
  20. package/dist/apply-npY1TAhG.mjs.map +1 -0
  21. package/dist/approvals-CqMfNxak.mjs +460 -0
  22. package/dist/approvals-CqMfNxak.mjs.map +1 -0
  23. package/dist/artifact-fetch-DZMOGZ3-.mjs +818 -0
  24. package/dist/artifact-fetch-DZMOGZ3-.mjs.map +1 -0
  25. package/dist/astro/index.d.mts +14 -14
  26. package/dist/astro/index.mjs +68 -18
  27. package/dist/astro/index.mjs.map +1 -1
  28. package/dist/astro/middleware/auth.d.mts +14 -12
  29. package/dist/astro/middleware/auth.d.mts.map +1 -1
  30. package/dist/astro/middleware/auth.mjs +26 -11
  31. package/dist/astro/middleware/auth.mjs.map +1 -1
  32. package/dist/astro/middleware/media-usage-write-fence.d.mts +9 -1
  33. package/dist/astro/middleware/media-usage-write-fence.d.mts.map +1 -1
  34. package/dist/astro/middleware/media-usage-write-fence.mjs +95 -13
  35. package/dist/astro/middleware/media-usage-write-fence.mjs.map +1 -1
  36. package/dist/astro/middleware/redirect.mjs +8 -8
  37. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  38. package/dist/astro/middleware/request-context.mjs +145 -47
  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 +130 -123
  44. package/dist/astro/middleware.mjs.map +1 -1
  45. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +14 -8
  46. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
  47. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +14 -8
  48. package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
  49. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +5 -3
  50. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs.map +1 -1
  51. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -4
  52. package/dist/astro/routes/api/admin/api-tokens/index.mjs.map +1 -1
  53. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -4
  54. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs.map +1 -1
  55. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +17 -11
  56. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
  57. package/dist/astro/routes/api/admin/byline-fields/index.mjs +17 -11
  58. package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +17 -11
  60. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
  61. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +25 -19
  62. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  63. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +25 -19
  64. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  65. package/dist/astro/routes/api/admin/bylines/index.mjs +25 -19
  66. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  67. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +19 -13
  68. package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
  69. package/dist/astro/routes/api/admin/comments/_id_.mjs +7 -5
  70. package/dist/astro/routes/api/admin/comments/_id_.mjs.map +1 -1
  71. package/dist/astro/routes/api/admin/comments/bulk.mjs +18 -12
  72. package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
  73. package/dist/astro/routes/api/admin/comments/counts.mjs +7 -5
  74. package/dist/astro/routes/api/admin/comments/counts.mjs.map +1 -1
  75. package/dist/astro/routes/api/admin/comments/index.mjs +18 -12
  76. package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
  77. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -4
  78. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs.map +1 -1
  79. package/dist/astro/routes/api/admin/hooks/exclusive/index.d.mts.map +1 -1
  80. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -6
  81. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs.map +1 -1
  82. package/dist/astro/routes/api/admin/media-usage/activation.mjs +21 -15
  83. package/dist/astro/routes/api/admin/media-usage/activation.mjs.map +1 -1
  84. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +23 -17
  85. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -1
  86. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +23 -17
  87. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -1
  88. package/dist/astro/routes/api/admin/media-usage/progress.mjs +26 -15
  89. package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
  90. package/dist/astro/routes/api/admin/media-usage/repair.mjs +32 -19
  91. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  92. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +23 -17
  93. package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -1
  94. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +23 -17
  95. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -3
  97. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -3
  99. package/dist/astro/routes/api/admin/oauth-clients/index.mjs.map +1 -1
  100. package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts.map +1 -1
  101. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +10 -8
  102. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
  103. package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts.map +1 -1
  104. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +10 -8
  105. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
  106. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +72 -62
  107. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  108. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +6 -4
  109. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs.map +1 -1
  110. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +71 -61
  111. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  112. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.d.mts.map +1 -1
  113. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +74 -64
  114. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  115. package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts.map +1 -1
  116. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +84 -74
  117. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  118. package/dist/astro/routes/api/admin/plugins/index.mjs +72 -62
  119. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  120. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +4 -2
  121. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs.map +1 -1
  122. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -61
  123. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  124. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts.map +1 -1
  125. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +83 -73
  126. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  127. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -61
  128. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  129. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.d.mts.map +1 -1
  130. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +74 -64
  131. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  132. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +85 -75
  133. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  134. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +8 -6
  135. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  136. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +76 -66
  137. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  138. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.d.mts +8 -0
  139. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.d.mts.map +1 -0
  140. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +221 -0
  141. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs.map +1 -0
  142. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +72 -62
  143. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  144. package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -61
  145. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  146. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -4
  147. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs.map +1 -1
  148. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +71 -61
  149. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  150. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +4 -2
  151. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs.map +1 -1
  152. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -61
  153. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  154. package/dist/astro/routes/api/admin/transfer/_...path_.d.mts +12 -0
  155. package/dist/astro/routes/api/admin/transfer/_...path_.d.mts.map +1 -0
  156. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +144 -0
  157. package/dist/astro/routes/api/admin/transfer/_...path_.mjs.map +1 -0
  158. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.d.mts +8 -0
  159. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.d.mts.map +1 -0
  160. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +68 -0
  161. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -0
  162. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.d.mts +8 -0
  163. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.d.mts.map +1 -0
  164. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +68 -0
  165. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -0
  166. package/dist/astro/routes/api/admin/transfer/approvals/index.d.mts +8 -0
  167. package/dist/astro/routes/api/admin/transfer/approvals/index.d.mts.map +1 -0
  168. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +67 -0
  169. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -0
  170. package/dist/astro/routes/api/admin/transfer/capabilities.d.mts +8 -0
  171. package/dist/astro/routes/api/admin/transfer/capabilities.d.mts.map +1 -0
  172. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +70 -0
  173. package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -0
  174. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.d.mts +8 -0
  175. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.d.mts.map +1 -0
  176. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +67 -0
  177. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -0
  178. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.d.mts +8 -0
  179. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.d.mts.map +1 -0
  180. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +70 -0
  181. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -0
  182. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.d.mts +8 -0
  183. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.d.mts.map +1 -0
  184. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +69 -0
  185. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -0
  186. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.d.mts +8 -0
  187. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.d.mts.map +1 -0
  188. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +66 -0
  189. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -0
  190. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.d.mts +8 -0
  191. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.d.mts.map +1 -0
  192. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +69 -0
  193. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -0
  194. package/dist/astro/routes/api/admin/transfer/exports/index.d.mts +9 -0
  195. package/dist/astro/routes/api/admin/transfer/exports/index.d.mts.map +1 -0
  196. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +91 -0
  197. package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -0
  198. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.d.mts +8 -0
  199. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.d.mts.map +1 -0
  200. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +66 -0
  201. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -0
  202. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.d.mts +8 -0
  203. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.d.mts.map +1 -0
  204. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +70 -0
  205. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -0
  206. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.d.mts +8 -0
  207. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.d.mts.map +1 -0
  208. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +78 -0
  209. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -0
  210. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.d.mts +8 -0
  211. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.d.mts.map +1 -0
  212. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +66 -0
  213. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -0
  214. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.d.mts +8 -0
  215. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.d.mts.map +1 -0
  216. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +77 -0
  217. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -0
  218. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.d.mts +8 -0
  219. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.d.mts.map +1 -0
  220. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +77 -0
  221. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -0
  222. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.d.mts +8 -0
  223. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.d.mts.map +1 -0
  224. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +66 -0
  225. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -0
  226. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.d.mts +8 -0
  227. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.d.mts.map +1 -0
  228. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +70 -0
  229. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -0
  230. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.d.mts +8 -0
  231. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.d.mts.map +1 -0
  232. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +67 -0
  233. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -0
  234. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.d.mts +8 -0
  235. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.d.mts.map +1 -0
  236. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +66 -0
  237. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -0
  238. package/dist/astro/routes/api/admin/transfer/imports/index.d.mts +9 -0
  239. package/dist/astro/routes/api/admin/transfer/imports/index.d.mts.map +1 -0
  240. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +99 -0
  241. package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -0
  242. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -1
  243. package/dist/astro/routes/api/admin/users/_id_/disable.mjs.map +1 -1
  244. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -1
  245. package/dist/astro/routes/api/admin/users/_id_/enable.mjs.map +1 -1
  246. package/dist/astro/routes/api/admin/users/_id_/index.mjs +14 -8
  247. package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
  248. package/dist/astro/routes/api/admin/users/_id_/send-recovery.d.mts.map +1 -1
  249. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +16 -6
  250. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs.map +1 -1
  251. package/dist/astro/routes/api/admin/users/index.mjs +14 -8
  252. package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
  253. package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -3
  254. package/dist/astro/routes/api/auth/dev-bypass.mjs.map +1 -1
  255. package/dist/astro/routes/api/auth/invite/accept.mjs +3 -1
  256. package/dist/astro/routes/api/auth/invite/accept.mjs.map +1 -1
  257. package/dist/astro/routes/api/auth/invite/complete.mjs +19 -13
  258. package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
  259. package/dist/astro/routes/api/auth/invite/index.d.mts.map +1 -1
  260. package/dist/astro/routes/api/auth/invite/index.mjs +24 -12
  261. package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
  262. package/dist/astro/routes/api/auth/invite/register-options.mjs +18 -12
  263. package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
  264. package/dist/astro/routes/api/auth/logout.mjs +4 -2
  265. package/dist/astro/routes/api/auth/logout.mjs.map +1 -1
  266. package/dist/astro/routes/api/auth/magic-link/send.d.mts.map +1 -1
  267. package/dist/astro/routes/api/auth/magic-link/send.mjs +29 -15
  268. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  269. package/dist/astro/routes/api/auth/magic-link/verify.d.mts +2 -1
  270. package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -1
  271. package/dist/astro/routes/api/auth/magic-link/verify.mjs +37 -17
  272. package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -1
  273. package/dist/astro/routes/api/auth/me.mjs +15 -9
  274. package/dist/astro/routes/api/auth/me.mjs.map +1 -1
  275. package/dist/astro/routes/api/auth/mode.mjs +4 -2
  276. package/dist/astro/routes/api/auth/mode.mjs.map +1 -1
  277. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +4 -4
  278. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  279. package/dist/astro/routes/api/auth/passkey/_id_.mjs +14 -8
  280. package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
  281. package/dist/astro/routes/api/auth/passkey/index.mjs +3 -1
  282. package/dist/astro/routes/api/auth/passkey/index.mjs.map +1 -1
  283. package/dist/astro/routes/api/auth/passkey/options.d.mts.map +1 -1
  284. package/dist/astro/routes/api/auth/passkey/options.mjs +21 -24
  285. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  286. package/dist/astro/routes/api/auth/passkey/register/options.mjs +18 -12
  287. package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
  288. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +19 -13
  289. package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
  290. package/dist/astro/routes/api/auth/passkey/verify.mjs +19 -13
  291. package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
  292. package/dist/astro/routes/api/auth/signup/complete.mjs +19 -13
  293. package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
  294. package/dist/astro/routes/api/auth/signup/request.mjs +18 -12
  295. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  296. package/dist/astro/routes/api/auth/signup/verify.mjs +3 -1
  297. package/dist/astro/routes/api/auth/signup/verify.mjs.map +1 -1
  298. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +14 -11
  299. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -1
  300. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +21 -15
  301. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
  302. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -2
  303. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs.map +1 -1
  304. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +18 -13
  305. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  306. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +4 -3
  307. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs.map +1 -1
  308. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +18 -13
  309. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
  310. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -2
  311. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs.map +1 -1
  312. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +10 -8
  313. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs.map +1 -1
  314. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.d.mts.map +1 -1
  315. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +68 -16
  316. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  317. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +18 -13
  318. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  319. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +31 -22
  320. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  321. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +31 -22
  322. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  323. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +4 -3
  324. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs.map +1 -1
  325. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -2
  326. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs.map +1 -1
  327. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +18 -13
  328. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  329. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -1
  330. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +38 -19
  331. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  332. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -2
  333. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs.map +1 -1
  334. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +18 -13
  335. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  336. package/dist/astro/routes/api/content/_collection_/_id_.mjs +18 -13
  337. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  338. package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -2
  339. package/dist/astro/routes/api/content/_collection_/authors.mjs.map +1 -1
  340. package/dist/astro/routes/api/content/_collection_/index.mjs +15 -10
  341. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  342. package/dist/astro/routes/api/content/_collection_/trash.mjs +15 -9
  343. package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
  344. package/dist/astro/routes/api/dashboard.mjs +11 -9
  345. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  346. package/dist/astro/routes/api/dev/emails.mjs +4 -2
  347. package/dist/astro/routes/api/dev/emails.mjs.map +1 -1
  348. package/dist/astro/routes/api/health.mjs +5 -3
  349. package/dist/astro/routes/api/health.mjs.map +1 -1
  350. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  351. package/dist/astro/routes/api/import/probe.mjs +27 -21
  352. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  353. package/dist/astro/routes/api/import/wordpress/analyze.mjs +5 -3
  354. package/dist/astro/routes/api/import/wordpress/analyze.mjs.map +1 -1
  355. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
  356. package/dist/astro/routes/api/import/wordpress/execute.mjs +18 -16
  357. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  358. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  359. package/dist/astro/routes/api/import/wordpress/media.mjs +19 -13
  360. package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
  361. package/dist/astro/routes/api/import/wordpress/prepare.mjs +18 -12
  362. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  363. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts +5 -1
  364. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts.map +1 -1
  365. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs +4 -2
  366. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs.map +1 -1
  367. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  368. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +29 -15
  369. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  370. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  371. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +27 -21
  372. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  373. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  374. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +38 -32
  375. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  376. package/dist/astro/routes/api/manifest.mjs +6 -4
  377. package/dist/astro/routes/api/manifest.mjs.map +1 -1
  378. package/dist/astro/routes/api/mcp.d.mts.map +1 -1
  379. package/dist/astro/routes/api/mcp.mjs +724 -94
  380. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  381. package/dist/astro/routes/api/media/_id_/confirm.mjs +19 -13
  382. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  383. package/dist/astro/routes/api/media/_id_/replace.mjs +16 -10
  384. package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -1
  385. package/dist/astro/routes/api/media/_id_/upload.mjs +8 -6
  386. package/dist/astro/routes/api/media/_id_/upload.mjs.map +1 -1
  387. package/dist/astro/routes/api/media/_id_/usage.mjs +34 -21
  388. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  389. package/dist/astro/routes/api/media/_id_.d.mts.map +1 -1
  390. package/dist/astro/routes/api/media/_id_.mjs +37 -26
  391. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  392. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +5 -3
  393. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs.map +1 -1
  394. package/dist/astro/routes/api/media/file/_...key_.d.mts.map +1 -1
  395. package/dist/astro/routes/api/media/file/_...key_.mjs +31 -2
  396. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  397. package/dist/astro/routes/api/media/folders/_id_.mjs +16 -10
  398. package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -1
  399. package/dist/astro/routes/api/media/folders/index.mjs +16 -10
  400. package/dist/astro/routes/api/media/folders/index.mjs.map +1 -1
  401. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -2
  402. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs.map +1 -1
  403. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -2
  404. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs.map +1 -1
  405. package/dist/astro/routes/api/media/providers/index.mjs +4 -2
  406. package/dist/astro/routes/api/media/providers/index.mjs.map +1 -1
  407. package/dist/astro/routes/api/media/upload-url.mjs +18 -12
  408. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  409. package/dist/astro/routes/api/media.mjs +36 -24
  410. package/dist/astro/routes/api/media.mjs.map +1 -1
  411. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +18 -12
  412. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  413. package/dist/astro/routes/api/menus/_name_/items.mjs +18 -12
  414. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  415. package/dist/astro/routes/api/menus/_name_/reorder.mjs +18 -12
  416. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  417. package/dist/astro/routes/api/menus/_name_/translations.mjs +18 -12
  418. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  419. package/dist/astro/routes/api/menus/_name_.mjs +18 -12
  420. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  421. package/dist/astro/routes/api/menus/index.mjs +18 -12
  422. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  423. package/dist/astro/routes/api/oauth/authorize.d.mts.map +1 -1
  424. package/dist/astro/routes/api/oauth/authorize.mjs +9 -6
  425. package/dist/astro/routes/api/oauth/authorize.mjs.map +1 -1
  426. package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -5
  427. package/dist/astro/routes/api/oauth/device/authorize.mjs.map +1 -1
  428. package/dist/astro/routes/api/oauth/device/code.mjs +10 -8
  429. package/dist/astro/routes/api/oauth/device/code.mjs.map +1 -1
  430. package/dist/astro/routes/api/oauth/device/token.mjs +9 -7
  431. package/dist/astro/routes/api/oauth/device/token.mjs.map +1 -1
  432. package/dist/astro/routes/api/oauth/register.mjs +4 -2
  433. package/dist/astro/routes/api/oauth/register.mjs.map +1 -1
  434. package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -5
  435. package/dist/astro/routes/api/oauth/token/refresh.mjs.map +1 -1
  436. package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -5
  437. package/dist/astro/routes/api/oauth/token/revoke.mjs.map +1 -1
  438. package/dist/astro/routes/api/oauth/token.mjs +7 -5
  439. package/dist/astro/routes/api/oauth/token.mjs.map +1 -1
  440. package/dist/astro/routes/api/openapi.json.mjs +497 -12
  441. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  442. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +10 -8
  443. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
  444. package/dist/astro/routes/api/redirects/404s/index.mjs +21 -15
  445. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  446. package/dist/astro/routes/api/redirects/404s/summary.mjs +21 -15
  447. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  448. package/dist/astro/routes/api/redirects/_id_.mjs +21 -15
  449. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  450. package/dist/astro/routes/api/redirects/index.mjs +21 -15
  451. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  452. package/dist/astro/routes/api/relations/_id_/index.mjs +31 -22
  453. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  454. package/dist/astro/routes/api/relations/_id_/translations.mjs +21 -16
  455. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +1 -1
  456. package/dist/astro/routes/api/relations/index.mjs +31 -22
  457. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  458. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -2
  459. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs.map +1 -1
  460. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +4 -3
  461. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs.map +1 -1
  462. package/dist/astro/routes/api/schema/block-types/_slug_/index.d.mts +9 -0
  463. package/dist/astro/routes/api/schema/block-types/_slug_/index.d.mts.map +1 -0
  464. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +102 -0
  465. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -0
  466. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.d.mts +8 -0
  467. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.d.mts.map +1 -0
  468. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +96 -0
  469. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -0
  470. package/dist/astro/routes/api/schema/block-types/index.d.mts +9 -0
  471. package/dist/astro/routes/api/schema/block-types/index.d.mts.map +1 -0
  472. package/dist/astro/routes/api/schema/block-types/index.mjs +102 -0
  473. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -0
  474. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +71 -61
  475. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  476. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +71 -61
  477. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  478. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +71 -61
  479. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  480. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +71 -61
  481. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  482. package/dist/astro/routes/api/schema/collections/index.mjs +71 -61
  483. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  484. package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -61
  485. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  486. package/dist/astro/routes/api/schema/index.mjs +17 -14
  487. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  488. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -61
  489. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  490. package/dist/astro/routes/api/schema/orphans/index.mjs +71 -61
  491. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  492. package/dist/astro/routes/api/search/enable.mjs +20 -14
  493. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  494. package/dist/astro/routes/api/search/index.mjs +19 -13
  495. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  496. package/dist/astro/routes/api/search/rebuild.mjs +20 -14
  497. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  498. package/dist/astro/routes/api/search/stats.mjs +10 -8
  499. package/dist/astro/routes/api/search/stats.mjs.map +1 -1
  500. package/dist/astro/routes/api/search/suggest.mjs +19 -13
  501. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  502. package/dist/astro/routes/api/sections/_slug_.mjs +19 -13
  503. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  504. package/dist/astro/routes/api/sections/index.mjs +19 -13
  505. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  506. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +8 -7
  507. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs.map +1 -1
  508. package/dist/astro/routes/api/settings/backups/archives/index.mjs +8 -6
  509. package/dist/astro/routes/api/settings/backups/archives/index.mjs.map +1 -1
  510. package/dist/astro/routes/api/settings/backups/export.mjs +8 -7
  511. package/dist/astro/routes/api/settings/backups/export.mjs.map +1 -1
  512. package/dist/astro/routes/api/settings/backups/index.mjs +9 -8
  513. package/dist/astro/routes/api/settings/backups/index.mjs.map +1 -1
  514. package/dist/astro/routes/api/settings/email.mjs +6 -4
  515. package/dist/astro/routes/api/settings/email.mjs.map +1 -1
  516. package/dist/astro/routes/api/settings.mjs +25 -19
  517. package/dist/astro/routes/api/settings.mjs.map +1 -1
  518. package/dist/astro/routes/api/setup/admin-verify.mjs +20 -14
  519. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  520. package/dist/astro/routes/api/setup/admin.mjs +19 -13
  521. package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
  522. package/dist/astro/routes/api/setup/dev-bypass.mjs +43 -37
  523. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  524. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -2
  525. package/dist/astro/routes/api/setup/dev-reset.mjs.map +1 -1
  526. package/dist/astro/routes/api/setup/index.d.mts.map +1 -1
  527. package/dist/astro/routes/api/setup/index.mjs +78 -43
  528. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  529. package/dist/astro/routes/api/setup/status.mjs +5 -3
  530. package/dist/astro/routes/api/setup/status.mjs.map +1 -1
  531. package/dist/astro/routes/api/snapshot.mjs +11 -9
  532. package/dist/astro/routes/api/snapshot.mjs.map +1 -1
  533. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +25 -19
  534. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  535. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +25 -19
  536. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  537. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -19
  538. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  539. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +25 -19
  540. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  541. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +24 -18
  542. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  543. package/dist/astro/routes/api/taxonomies/_name_.mjs +25 -19
  544. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  545. package/dist/astro/routes/api/taxonomies/bulk-tag.d.mts +8 -0
  546. package/dist/astro/routes/api/taxonomies/bulk-tag.d.mts.map +1 -0
  547. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +295 -0
  548. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -0
  549. package/dist/astro/routes/api/taxonomies/index.mjs +25 -19
  550. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  551. package/dist/astro/routes/api/themes/preview.mjs +7 -5
  552. package/dist/astro/routes/api/themes/preview.mjs.map +1 -1
  553. package/dist/astro/routes/api/typegen.d.mts.map +1 -1
  554. package/dist/astro/routes/api/typegen.mjs +12 -9
  555. package/dist/astro/routes/api/typegen.mjs.map +1 -1
  556. package/dist/astro/routes/api/visual-editing/action-token.mjs +7 -5
  557. package/dist/astro/routes/api/visual-editing/action-token.mjs.map +1 -1
  558. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +22 -16
  559. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs.map +1 -1
  560. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +3 -1
  561. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs.map +1 -1
  562. package/dist/astro/routes/api/well-known/auth.mjs +2 -2
  563. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  564. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  565. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +16 -10
  566. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  567. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +20 -14
  568. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  569. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +20 -14
  570. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  571. package/dist/astro/routes/api/widget-areas/_name_.mjs +10 -8
  572. package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
  573. package/dist/astro/routes/api/widget-areas/index.mjs +20 -14
  574. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  575. package/dist/astro/routes/api/widget-components.mjs +4 -2
  576. package/dist/astro/routes/api/widget-components.mjs.map +1 -1
  577. package/dist/astro/routes/robots.txt.mjs +10 -10
  578. package/dist/astro/routes/sitemap-_collection_.xml.mjs +13 -13
  579. package/dist/astro/routes/sitemap.xml.mjs +11 -11
  580. package/dist/astro/types.d.mts +25 -17
  581. package/dist/astro/types.d.mts.map +1 -1
  582. package/dist/audit-RfCugiSB.mjs +127 -0
  583. package/dist/audit-RfCugiSB.mjs.map +1 -0
  584. package/dist/auth/providers/github.d.mts +1 -1
  585. package/dist/auth/providers/google.d.mts +1 -1
  586. package/dist/authoritative-records-CoJvBXAD.mjs +5172 -0
  587. package/dist/authoritative-records-CoJvBXAD.mjs.map +1 -0
  588. package/dist/authorize-seCifOMJ.mjs +49 -0
  589. package/dist/authorize-seCifOMJ.mjs.map +1 -0
  590. package/dist/backup-BQRj3afm.mjs +246 -0
  591. package/dist/backup-BQRj3afm.mjs.map +1 -0
  592. package/dist/block-type-registry-DUI_3KxT.mjs +6709 -0
  593. package/dist/block-type-registry-DUI_3KxT.mjs.map +1 -0
  594. package/dist/block-types-BmZmLmAD.mjs +132 -0
  595. package/dist/block-types-BmZmLmAD.mjs.map +1 -0
  596. package/dist/block-values-C_VIPr5t.mjs +175 -0
  597. package/dist/block-values-C_VIPr5t.mjs.map +1 -0
  598. package/dist/byline-DYmkXqvo.mjs +909 -0
  599. package/dist/byline-DYmkXqvo.mjs.map +1 -0
  600. package/dist/byline-fields-D28AT-Fh.mjs +123 -0
  601. package/dist/byline-fields-D28AT-Fh.mjs.map +1 -0
  602. package/dist/byline-registry-gnKscbQX.mjs +406 -0
  603. package/dist/byline-registry-gnKscbQX.mjs.map +1 -0
  604. package/dist/bylines-BPwJqoYH.mjs +232 -0
  605. package/dist/bylines-BPwJqoYH.mjs.map +1 -0
  606. package/dist/bylines-ukLaYpVZ.mjs +214 -0
  607. package/dist/bylines-ukLaYpVZ.mjs.map +1 -0
  608. package/dist/cache-m7UEkRFV.mjs +108 -0
  609. package/dist/cache-m7UEkRFV.mjs.map +1 -0
  610. package/dist/canonical-YhEQezjg.mjs +174 -0
  611. package/dist/canonical-YhEQezjg.mjs.map +1 -0
  612. package/dist/capture-triggers-kJyl_yyM.mjs +362 -0
  613. package/dist/capture-triggers-kJyl_yyM.mjs.map +1 -0
  614. package/dist/challenge-store-ppU6Uv13.mjs +51 -0
  615. package/dist/challenge-store-ppU6Uv13.mjs.map +1 -0
  616. package/dist/checksum-B2IINIlN.mjs +162 -0
  617. package/dist/checksum-B2IINIlN.mjs.map +1 -0
  618. package/dist/chrome-tags-DApCQSIk.mjs +24 -0
  619. package/dist/chrome-tags-DApCQSIk.mjs.map +1 -0
  620. package/dist/chunks-Dms7Uxbt.mjs +25 -0
  621. package/dist/chunks-Dms7Uxbt.mjs.map +1 -0
  622. package/dist/cli/index.mjs +1471 -56
  623. package/dist/cli/index.mjs.map +1 -1
  624. package/dist/client/cf-access.d.mts +1 -1
  625. package/dist/client/index.d.mts +1050 -4
  626. package/dist/client/index.d.mts.map +1 -1
  627. package/dist/client/index.mjs +193 -11
  628. package/dist/client/index.mjs.map +1 -1
  629. package/dist/collection-deletion-BIm28mo3.mjs +436 -0
  630. package/dist/collection-deletion-BIm28mo3.mjs.map +1 -0
  631. package/dist/collection-deletion-processor-Br6rxs3u.mjs +217 -0
  632. package/dist/collection-deletion-processor-Br6rxs3u.mjs.map +1 -0
  633. package/dist/collection-slugs-cache-CjGk__zp.mjs +85 -0
  634. package/dist/collection-slugs-cache-CjGk__zp.mjs.map +1 -0
  635. package/dist/comment-CrBl22OF.mjs +313 -0
  636. package/dist/comment-CrBl22OF.mjs.map +1 -0
  637. package/dist/comment-reaction-JEQ2Fpd8.mjs +85 -0
  638. package/dist/comment-reaction-JEQ2Fpd8.mjs.map +1 -0
  639. package/dist/comments-2ah9du9y.mjs +195 -0
  640. package/dist/comments-2ah9du9y.mjs.map +1 -0
  641. package/dist/comments-fHZ8ON9O.mjs +99 -0
  642. package/dist/comments-fHZ8ON9O.mjs.map +1 -0
  643. package/dist/components-CXbq7CSM.mjs +108 -0
  644. package/dist/components-CXbq7CSM.mjs.map +1 -0
  645. package/dist/config-BjEm_3xL.d.mts +6537 -0
  646. package/dist/config-BjEm_3xL.d.mts.map +1 -0
  647. package/dist/config-CvmjJcVw.mjs +73 -0
  648. package/dist/config-CvmjJcVw.mjs.map +1 -0
  649. package/dist/config-IhybvkIQ.mjs +242 -0
  650. package/dist/config-IhybvkIQ.mjs.map +1 -0
  651. package/dist/config-Py43JK9r.d.mts +39 -0
  652. package/dist/config-Py43JK9r.d.mts.map +1 -0
  653. package/dist/content-DFaIEDj9.mjs +2281 -0
  654. package/dist/content-DFaIEDj9.mjs.map +1 -0
  655. package/dist/content-list-query-Dra4Dalc.d.mts +26 -0
  656. package/dist/content-list-query-Dra4Dalc.d.mts.map +1 -0
  657. package/dist/content-policy-DFNw91-d.mjs +46 -0
  658. package/dist/content-policy-DFNw91-d.mjs.map +1 -0
  659. package/dist/content-repair-Q8IUrpLL.mjs +442 -0
  660. package/dist/content-repair-Q8IUrpLL.mjs.map +1 -0
  661. package/dist/context-BV_7t-Ua.mjs +1921 -0
  662. package/dist/context-BV_7t-Ua.mjs.map +1 -0
  663. package/dist/cron-7DCJwPXq.mjs +284 -0
  664. package/dist/cron-7DCJwPXq.mjs.map +1 -0
  665. package/dist/dashboard-BP-iJqpd.mjs +151 -0
  666. package/dist/dashboard-BP-iJqpd.mjs.map +1 -0
  667. package/dist/db/index.d.mts +3 -3
  668. package/dist/db/index.mjs +3 -3
  669. package/dist/db/libsql-migrations.d.mts +1 -1
  670. package/dist/db/libsql-migrations.mjs +6 -6
  671. package/dist/db/libsql.d.mts +1 -1
  672. package/dist/db/postgres-migrations.d.mts +1 -1
  673. package/dist/db/postgres-migrations.mjs +6 -6
  674. package/dist/db/postgres.d.mts +1 -1
  675. package/dist/db/sqlite-migrations.d.mts +1 -1
  676. package/dist/db/sqlite-migrations.mjs +6 -6
  677. package/dist/db/sqlite.d.mts +1 -1
  678. package/dist/db/sqlite.mjs +2 -2
  679. package/dist/db/sqlite.mjs.map +1 -1
  680. package/dist/default-DQ6vsviu.mjs +81 -0
  681. package/dist/default-DQ6vsviu.mjs.map +1 -0
  682. package/dist/deferred-tasks-BPxXUB4x.d.mts +9 -0
  683. package/dist/deferred-tasks-BPxXUB4x.d.mts.map +1 -0
  684. package/dist/device-flow-CRd6DXmW.mjs +466 -0
  685. package/dist/device-flow-CRd6DXmW.mjs.map +1 -0
  686. package/dist/dialect-helpers-7_IqPdh9.mjs +307 -0
  687. package/dist/dialect-helpers-7_IqPdh9.mjs.map +1 -0
  688. package/dist/digest-BarSh-pN.mjs +194 -0
  689. package/dist/digest-BarSh-pN.mjs.map +1 -0
  690. package/dist/direct-executor-D2lNadwo.mjs +104 -0
  691. package/dist/direct-executor-D2lNadwo.mjs.map +1 -0
  692. package/dist/dist-BNwANFJR.mjs +810 -0
  693. package/dist/dist-BNwANFJR.mjs.map +1 -0
  694. package/dist/email-console-bJn3ctqA.mjs +50 -0
  695. package/dist/email-console-bJn3ctqA.mjs.map +1 -0
  696. package/dist/email-locale-CN6WAMx0.mjs +25 -0
  697. package/dist/email-locale-CN6WAMx0.mjs.map +1 -0
  698. package/dist/emdash-runtime-CtfnZmPi.mjs +4186 -0
  699. package/dist/emdash-runtime-CtfnZmPi.mjs.map +1 -0
  700. package/dist/enrich-Dl3kZ-lP.mjs +194 -0
  701. package/dist/enrich-Dl3kZ-lP.mjs.map +1 -0
  702. package/dist/entry-lock-BJYdBfXb.mjs +1097 -0
  703. package/dist/entry-lock-BJYdBfXb.mjs.map +1 -0
  704. package/dist/entry-lock-Cf5OoIgN.d.mts +4368 -0
  705. package/dist/entry-lock-Cf5OoIgN.d.mts.map +1 -0
  706. package/dist/entry-lock-DHQOxN7R.mjs +163 -0
  707. package/dist/entry-lock-DHQOxN7R.mjs.map +1 -0
  708. package/dist/entry-locks-D0foLdjQ.mjs +167 -0
  709. package/dist/entry-locks-D0foLdjQ.mjs.map +1 -0
  710. package/dist/error-CfvOHP0M.mjs +90 -0
  711. package/dist/error-CfvOHP0M.mjs.map +1 -0
  712. package/dist/errors-BF0_LFhW.mjs +460 -0
  713. package/dist/errors-BF0_LFhW.mjs.map +1 -0
  714. package/dist/errors-DgE1zJGG.mjs +120 -0
  715. package/dist/errors-DgE1zJGG.mjs.map +1 -0
  716. package/dist/escape-CuaZhZvL.mjs +9 -0
  717. package/dist/escape-CuaZhZvL.mjs.map +1 -0
  718. package/dist/fence-CMDXJYc_.mjs +162 -0
  719. package/dist/fence-CMDXJYc_.mjs.map +1 -0
  720. package/dist/field-defs-cache-HIgBbqZZ.mjs +77 -0
  721. package/dist/field-defs-cache-HIgBbqZZ.mjs.map +1 -0
  722. package/dist/fts-manager-S-K0laoS.mjs +443 -0
  723. package/dist/fts-manager-S-K0laoS.mjs.map +1 -0
  724. package/dist/gc-DjKY0Ay1.mjs +75 -0
  725. package/dist/gc-DjKY0Ay1.mjs.map +1 -0
  726. package/dist/hash-SDAW6zC-.mjs +37 -0
  727. package/dist/hash-SDAW6zC-.mjs.map +1 -0
  728. package/dist/hook-result-B5bXDgS2.d.mts +31 -0
  729. package/dist/hook-result-B5bXDgS2.d.mts.map +1 -0
  730. package/dist/hreflang-CbVI4paR.mjs +105 -0
  731. package/dist/hreflang-CbVI4paR.mjs.map +1 -0
  732. package/dist/hreflang-D5uNnsGJ.d.mts +50 -0
  733. package/dist/hreflang-D5uNnsGJ.d.mts.map +1 -0
  734. package/dist/http-route-dispatch-BitqzwMy.mjs +339 -0
  735. package/dist/http-route-dispatch-BitqzwMy.mjs.map +1 -0
  736. package/dist/identity-Be5kzutJ.mjs +35 -0
  737. package/dist/identity-Be5kzutJ.mjs.map +1 -0
  738. package/dist/import-YzfKCaco.mjs +2020 -0
  739. package/dist/import-YzfKCaco.mjs.map +1 -0
  740. package/dist/index-D-hdtLe8.d.mts +623 -0
  741. package/dist/index-D-hdtLe8.d.mts.map +1 -0
  742. package/dist/index.d.mts +24 -24
  743. package/dist/index.mjs +105 -93
  744. package/dist/install-finalization-DfM1fj5x.mjs +58 -0
  745. package/dist/install-finalization-DfM1fj5x.mjs.map +1 -0
  746. package/dist/keys-yxLm5l35.mjs +61 -0
  747. package/dist/keys-yxLm5l35.mjs.map +1 -0
  748. package/dist/kinds-CRu_T5T5.mjs +961 -0
  749. package/dist/kinds-CRu_T5T5.mjs.map +1 -0
  750. package/dist/lifecycle-BzeGPeQ-.mjs +25 -0
  751. package/dist/lifecycle-BzeGPeQ-.mjs.map +1 -0
  752. package/dist/load-XgJiE6_3.mjs +28 -0
  753. package/dist/load-XgJiE6_3.mjs.map +1 -0
  754. package/dist/loader-BzqeR1ZN.mjs +1086 -0
  755. package/dist/loader-BzqeR1ZN.mjs.map +1 -0
  756. package/dist/loops-BQSzv5Zn.mjs +203 -0
  757. package/dist/loops-BQSzv5Zn.mjs.map +1 -0
  758. package/dist/manifest-builder-BmSAOOEF.mjs +189 -0
  759. package/dist/manifest-builder-BmSAOOEF.mjs.map +1 -0
  760. package/dist/manifest-schema-CY3zng_M.mjs +492 -0
  761. package/dist/manifest-schema-CY3zng_M.mjs.map +1 -0
  762. package/dist/media/image-endpoint.mjs +1 -1
  763. package/dist/media/index.d.mts +1 -1
  764. package/dist/media/index.mjs +3 -3
  765. package/dist/media/local-runtime.d.mts +14 -14
  766. package/dist/media/local-runtime.d.mts.map +1 -1
  767. package/dist/media/local-runtime.mjs +15 -16
  768. package/dist/media/local-runtime.mjs.map +1 -1
  769. package/dist/media-CPXTbb1R.mjs +373 -0
  770. package/dist/media-CPXTbb1R.mjs.map +1 -0
  771. package/dist/media-JXRWDhw3.mjs +294 -0
  772. package/dist/media-JXRWDhw3.mjs.map +1 -0
  773. package/dist/media-Pu1L6xir.mjs +408 -0
  774. package/dist/media-Pu1L6xir.mjs.map +1 -0
  775. package/dist/media-allowlist-BSoa9Vvm.mjs +44 -0
  776. package/dist/media-allowlist-BSoa9Vvm.mjs.map +1 -0
  777. package/dist/media-folders-BE0oo2eX.mjs +210 -0
  778. package/dist/media-folders-BE0oo2eX.mjs.map +1 -0
  779. package/dist/media-url-jArBpzIG.mjs +43 -0
  780. package/dist/media-url-jArBpzIG.mjs.map +1 -0
  781. package/dist/media-usage-De-zeR9E.mjs +1629 -0
  782. package/dist/media-usage-De-zeR9E.mjs.map +1 -0
  783. package/dist/media-usage-activation-HKp7zk7W.mjs +78 -0
  784. package/dist/media-usage-activation-HKp7zk7W.mjs.map +1 -0
  785. package/dist/media-usage-work-C2OZLCAd.mjs +586 -0
  786. package/dist/media-usage-work-C2OZLCAd.mjs.map +1 -0
  787. package/dist/media-usage-work-DwUNbgvS.mjs +152 -0
  788. package/dist/media-usage-work-DwUNbgvS.mjs.map +1 -0
  789. package/dist/menus-BM7BPLOb.mjs +139 -0
  790. package/dist/menus-BM7BPLOb.mjs.map +1 -0
  791. package/dist/menus-Cm68rsAq.mjs +3608 -0
  792. package/dist/menus-Cm68rsAq.mjs.map +1 -0
  793. package/dist/menus-ITeAbcIF.mjs +753 -0
  794. package/dist/menus-ITeAbcIF.mjs.map +1 -0
  795. package/dist/migrations/index.d.mts +1 -1
  796. package/dist/migrations/index.mjs +5 -5
  797. package/dist/mime-ChLqYwDk.mjs +36 -0
  798. package/dist/mime-ChLqYwDk.mjs.map +1 -0
  799. package/dist/mode-CCuKXUci.mjs +23 -0
  800. package/dist/mode-CCuKXUci.mjs.map +1 -0
  801. package/dist/node-sqlite-compat-CONMsl-x.mjs +46 -0
  802. package/dist/node-sqlite-compat-CONMsl-x.mjs.map +1 -0
  803. package/dist/normalize-CO2P8-iE.mjs +191 -0
  804. package/dist/normalize-CO2P8-iE.mjs.map +1 -0
  805. package/dist/oauth-authorization-DlMIL5_h.mjs +274 -0
  806. package/dist/oauth-authorization-DlMIL5_h.mjs.map +1 -0
  807. package/dist/oauth-clients-Djq9r_KP.mjs +266 -0
  808. package/dist/oauth-clients-Djq9r_KP.mjs.map +1 -0
  809. package/dist/oauth-state-store-BbjnZXNC.mjs +50 -0
  810. package/dist/oauth-state-store-BbjnZXNC.mjs.map +1 -0
  811. package/dist/oauth-user-lookup-vue9a64A.mjs +26 -0
  812. package/dist/oauth-user-lookup-vue9a64A.mjs.map +1 -0
  813. package/dist/object-cache/memory.d.mts +1 -1
  814. package/dist/object-cache-CqWNY5uP.mjs +582 -0
  815. package/dist/object-cache-CqWNY5uP.mjs.map +1 -0
  816. package/dist/options-DhrI7eMv.mjs +208 -0
  817. package/dist/options-DhrI7eMv.mjs.map +1 -0
  818. package/dist/options-SQCHQCPH.d.mts +81 -0
  819. package/dist/options-SQCHQCPH.d.mts.map +1 -0
  820. package/dist/page/index.d.mts +2 -2
  821. package/dist/page/index.mjs +9 -9
  822. package/dist/parse-CVgO-Qai.d.mts +168 -0
  823. package/dist/parse-CVgO-Qai.d.mts.map +1 -0
  824. package/dist/parse-DY6OD1j_.mjs +81 -0
  825. package/dist/parse-DY6OD1j_.mjs.map +1 -0
  826. package/dist/passkey-config-X_H8128a.mjs +46 -0
  827. package/dist/passkey-config-X_H8128a.mjs.map +1 -0
  828. package/dist/paths-JxokKIbr.mjs +77 -0
  829. package/dist/paths-JxokKIbr.mjs.map +1 -0
  830. package/dist/patterns-BhAvqO0S.mjs +145 -0
  831. package/dist/patterns-BhAvqO0S.mjs.map +1 -0
  832. package/dist/placeholder-MSEd8gty.d.mts +306 -0
  833. package/dist/placeholder-MSEd8gty.d.mts.map +1 -0
  834. package/dist/plan-xjcWrAah.mjs +135 -0
  835. package/dist/plan-xjcWrAah.mjs.map +1 -0
  836. package/dist/plugin-test-runtime.d.mts +38 -15
  837. package/dist/plugin-test-runtime.d.mts.map +1 -1
  838. package/dist/plugin-test-runtime.mjs +112 -100
  839. package/dist/plugin-types.d.mts +2 -2
  840. package/dist/plugin-utils.d.mts +12 -12
  841. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  842. package/dist/plugins/adapt-sandbox-entry.mjs +3 -3
  843. package/dist/plugins/host.d.mts +5 -5
  844. package/dist/plugins/host.mjs +45 -37
  845. package/dist/plugins-DUXUt8B9.mjs +277 -0
  846. package/dist/plugins-DUXUt8B9.mjs.map +1 -0
  847. package/dist/policy-CUvwAARc.mjs +45 -0
  848. package/dist/policy-CUvwAARc.mjs.map +1 -0
  849. package/dist/portable-text-5O_ZGUjB.mjs +307 -0
  850. package/dist/portable-text-5O_ZGUjB.mjs.map +1 -0
  851. package/dist/preview-CIUcPYr6.mjs +107 -0
  852. package/dist/preview-CIUcPYr6.mjs.map +1 -0
  853. package/dist/protocol-B97DZaFr.d.mts +61 -0
  854. package/dist/protocol-B97DZaFr.d.mts.map +1 -0
  855. package/dist/public-submission-BFBUrqst.mjs +250 -0
  856. package/dist/public-submission-BFBUrqst.mjs.map +1 -0
  857. package/dist/public-url-Bn7U0D7-.mjs +101 -0
  858. package/dist/public-url-Bn7U0D7-.mjs.map +1 -0
  859. package/dist/query-B48peoRT.mjs +890 -0
  860. package/dist/query-B48peoRT.mjs.map +1 -0
  861. package/dist/query-C4IH0uhR.mjs +41 -0
  862. package/dist/query-C4IH0uhR.mjs.map +1 -0
  863. package/dist/rate-limit-BZ6nybgc.mjs +120 -0
  864. package/dist/rate-limit-BZ6nybgc.mjs.map +1 -0
  865. package/dist/receipt-B4wJj5Jq.mjs +43 -0
  866. package/dist/receipt-B4wJj5Jq.mjs.map +1 -0
  867. package/dist/redirect-B29UjdUn.mjs +411 -0
  868. package/dist/redirect-B29UjdUn.mjs.map +1 -0
  869. package/dist/redirect-Cd1E7VUt.mjs +17 -0
  870. package/dist/redirect-Cd1E7VUt.mjs.map +1 -0
  871. package/dist/redirects-Ca2MPfEG.mjs +446 -0
  872. package/dist/redirects-Ca2MPfEG.mjs.map +1 -0
  873. package/dist/redirects-Cv9apQKj.mjs +148 -0
  874. package/dist/redirects-Cv9apQKj.mjs.map +1 -0
  875. package/dist/registry/testing.mjs +3 -3
  876. package/dist/relation-M4NUCb0b.mjs +334 -0
  877. package/dist/relation-M4NUCb0b.mjs.map +1 -0
  878. package/dist/relations-CCif47Oq.mjs +403 -0
  879. package/dist/relations-CCif47Oq.mjs.map +1 -0
  880. package/dist/relations-CK9CYUyr.mjs +310 -0
  881. package/dist/relations-CK9CYUyr.mjs.map +1 -0
  882. package/dist/request-cache-DzLYKm_x.mjs +104 -0
  883. package/dist/request-cache-DzLYKm_x.mjs.map +1 -0
  884. package/dist/request-context.d.mts +1 -1
  885. package/dist/request-meta-sZXt3sRo.mjs +141 -0
  886. package/dist/request-meta-sZXt3sRo.mjs.map +1 -0
  887. package/dist/resolve-2WbQsCvT.mjs +199 -0
  888. package/dist/resolve-2WbQsCvT.mjs.map +1 -0
  889. package/dist/route-wire--1hLuACz.mjs +197 -0
  890. package/dist/route-wire--1hLuACz.mjs.map +1 -0
  891. package/dist/routes-vrR95WR6.mjs +272 -0
  892. package/dist/routes-vrR95WR6.mjs.map +1 -0
  893. package/dist/runner-1y4J9fJB.mjs +5742 -0
  894. package/dist/runner-1y4J9fJB.mjs.map +1 -0
  895. package/dist/runner-D5_LzKXI.d.mts +68 -0
  896. package/dist/runner-D5_LzKXI.d.mts.map +1 -0
  897. package/dist/runtime.d.mts +13 -13
  898. package/dist/runtime.mjs +4 -4
  899. package/dist/schema-BABiRdsH.mjs +13 -0
  900. package/dist/schema-BABiRdsH.mjs.map +1 -0
  901. package/dist/schema-Du3MzCG0.mjs +446 -0
  902. package/dist/schema-Du3MzCG0.mjs.map +1 -0
  903. package/dist/scopes-Dbk-ElhT.mjs +34 -0
  904. package/dist/scopes-Dbk-ElhT.mjs.map +1 -0
  905. package/dist/search-Bt1PL1jf.mjs +448 -0
  906. package/dist/search-Bt1PL1jf.mjs.map +1 -0
  907. package/dist/secrets-CIi0nFiR.mjs +341 -0
  908. package/dist/secrets-CIi0nFiR.mjs.map +1 -0
  909. package/dist/sections-Ddptx_o9.mjs +346 -0
  910. package/dist/sections-Ddptx_o9.mjs.map +1 -0
  911. package/dist/seed/index.d.mts +2 -2
  912. package/dist/seed/index.mjs +35 -30
  913. package/dist/seo/index.d.mts +3 -3
  914. package/dist/seo/index.mjs +25 -21
  915. package/dist/seo/index.mjs.map +1 -1
  916. package/dist/seo-CZT2oLtT.mjs +114 -0
  917. package/dist/seo-CZT2oLtT.mjs.map +1 -0
  918. package/dist/seo-D5w3-Azy.mjs +133 -0
  919. package/dist/seo-D5w3-Azy.mjs.map +1 -0
  920. package/dist/service-DuykXPyW.mjs +150 -0
  921. package/dist/service-DuykXPyW.mjs.map +1 -0
  922. package/dist/session-user-BhaVp8w0.mjs +51 -0
  923. package/dist/session-user-BhaVp8w0.mjs.map +1 -0
  924. package/dist/settings-B4vDl1fK.mjs +439 -0
  925. package/dist/settings-B4vDl1fK.mjs.map +1 -0
  926. package/dist/settings-DYidIB26.mjs +61 -0
  927. package/dist/settings-DYidIB26.mjs.map +1 -0
  928. package/dist/settings-Dyj6v8C4.mjs +51 -0
  929. package/dist/settings-Dyj6v8C4.mjs.map +1 -0
  930. package/dist/setup-complete-bOogcHWG.mjs +26 -0
  931. package/dist/setup-complete-bOogcHWG.mjs.map +1 -0
  932. package/dist/setup-nonce-0EGuKM4s.mjs +25 -0
  933. package/dist/setup-nonce-0EGuKM4s.mjs.map +1 -0
  934. package/dist/site-settings-DOgRUoFX.mjs +50 -0
  935. package/dist/site-settings-DOgRUoFX.mjs.map +1 -0
  936. package/dist/site-url-BU_bbxwj.mjs +16 -0
  937. package/dist/site-url-BU_bbxwj.mjs.map +1 -0
  938. package/dist/snapshot-PawoX-WG.mjs +414 -0
  939. package/dist/snapshot-PawoX-WG.mjs.map +1 -0
  940. package/dist/ssrf-CJUnJymJ.mjs +406 -0
  941. package/dist/ssrf-CJUnJymJ.mjs.map +1 -0
  942. package/dist/stage-DgrBz_du.mjs +662 -0
  943. package/dist/stage-DgrBz_du.mjs.map +1 -0
  944. package/dist/state-DDiPySSG.mjs +153 -0
  945. package/dist/state-DDiPySSG.mjs.map +1 -0
  946. package/dist/status-DZKIG4a9.mjs +30 -0
  947. package/dist/status-DZKIG4a9.mjs.map +1 -0
  948. package/dist/storage/local.d.mts +1 -1
  949. package/dist/storage/local.mjs +1 -1
  950. package/dist/storage/s3.d.mts +1 -1
  951. package/dist/storage/s3.mjs +1 -1
  952. package/dist/storage-query-FXJH5pI8.d.mts +1581 -0
  953. package/dist/storage-query-FXJH5pI8.d.mts.map +1 -0
  954. package/dist/tar-_1AgTYFu.mjs +449 -0
  955. package/dist/tar-_1AgTYFu.mjs.map +1 -0
  956. package/dist/target-_7pn2Gbg.mjs +27 -0
  957. package/dist/target-_7pn2Gbg.mjs.map +1 -0
  958. package/dist/taxonomies-C1IwNe8Q.mjs +697 -0
  959. package/dist/taxonomies-C1IwNe8Q.mjs.map +1 -0
  960. package/dist/taxonomies-C_XMoRcX.mjs +939 -0
  961. package/dist/taxonomies-C_XMoRcX.mjs.map +1 -0
  962. package/dist/taxonomy-C3Fu1YeH.mjs +525 -0
  963. package/dist/taxonomy-C3Fu1YeH.mjs.map +1 -0
  964. package/dist/tokens-u78jETkX.mjs +171 -0
  965. package/dist/tokens-u78jETkX.mjs.map +1 -0
  966. package/dist/transfer-DIGvR9Af.mjs +166 -0
  967. package/dist/transfer-DIGvR9Af.mjs.map +1 -0
  968. package/dist/transfer-DgeCvHnj.mjs +8675 -0
  969. package/dist/transfer-DgeCvHnj.mjs.map +1 -0
  970. package/dist/transfer-download-Pml7RMio.mjs +33 -0
  971. package/dist/transfer-download-Pml7RMio.mjs.map +1 -0
  972. package/dist/transformations-9gfpwY65.mjs +196 -0
  973. package/dist/transformations-9gfpwY65.mjs.map +1 -0
  974. package/dist/transport-BIfH7_hx.d.mts +42 -0
  975. package/dist/transport-BIfH7_hx.d.mts.map +1 -0
  976. package/dist/transport-DKWIq53q.mjs +136 -0
  977. package/dist/transport-DKWIq53q.mjs.map +1 -0
  978. package/dist/trusted-proxy-tKiVtyTD.mjs +51 -0
  979. package/dist/trusted-proxy-tKiVtyTD.mjs.map +1 -0
  980. package/dist/turnstile-DpsoyOfg.mjs +53 -0
  981. package/dist/turnstile-DpsoyOfg.mjs.map +1 -0
  982. package/dist/types-B4sUC2p1.d.mts +198 -0
  983. package/dist/types-B4sUC2p1.d.mts.map +1 -0
  984. package/dist/types-B7Lmsh1E.d.mts +887 -0
  985. package/dist/types-B7Lmsh1E.d.mts.map +1 -0
  986. package/dist/types-BZakh7Ym.mjs +22 -0
  987. package/dist/types-BZakh7Ym.mjs.map +1 -0
  988. package/dist/types-B_CppEmv.d.mts +264 -0
  989. package/dist/types-B_CppEmv.d.mts.map +1 -0
  990. package/dist/types-BcrBrE6-.mjs +159 -0
  991. package/dist/types-BcrBrE6-.mjs.map +1 -0
  992. package/dist/types-CAZgq9fO.d.mts +124 -0
  993. package/dist/types-CAZgq9fO.d.mts.map +1 -0
  994. package/dist/types-Cd-O03VG.d.mts +363 -0
  995. package/dist/types-Cd-O03VG.d.mts.map +1 -0
  996. package/dist/types-Cr-Kg-3D.d.mts +1641 -0
  997. package/dist/types-Cr-Kg-3D.d.mts.map +1 -0
  998. package/dist/types-D2fvWd1i.d.mts +359 -0
  999. package/dist/types-D2fvWd1i.d.mts.map +1 -0
  1000. package/dist/types-D7HUsguf.mjs +77 -0
  1001. package/dist/types-D7HUsguf.mjs.map +1 -0
  1002. package/dist/types-DA1Te3Oy.d.mts +198 -0
  1003. package/dist/types-DA1Te3Oy.d.mts.map +1 -0
  1004. package/dist/types-DhV6Q5bP.mjs +18 -0
  1005. package/dist/types-DhV6Q5bP.mjs.map +1 -0
  1006. package/dist/types-DnnVSl6Y.d.mts +85 -0
  1007. package/dist/types-DnnVSl6Y.d.mts.map +1 -0
  1008. package/dist/types-VT4-BugW.mjs +16 -0
  1009. package/dist/types-VT4-BugW.mjs.map +1 -0
  1010. package/dist/upload-attempts-B68ZGNu9.mjs +32 -0
  1011. package/dist/upload-attempts-B68ZGNu9.mjs.map +1 -0
  1012. package/dist/url-pattern-CCeZMGOh.mjs +33 -0
  1013. package/dist/url-pattern-CCeZMGOh.mjs.map +1 -0
  1014. package/dist/user-DDSL-sGw.mjs +171 -0
  1015. package/dist/user-DDSL-sGw.mjs.map +1 -0
  1016. package/dist/utils-DdhmO9w9.mjs +439 -0
  1017. package/dist/utils-DdhmO9w9.mjs.map +1 -0
  1018. package/dist/validate-CHosPEhs.mjs +453 -0
  1019. package/dist/validate-CHosPEhs.mjs.map +1 -0
  1020. package/dist/validate-CM79QXYE.d.mts +432 -0
  1021. package/dist/validate-CM79QXYE.d.mts.map +1 -0
  1022. package/dist/validation-BFecQczG.mjs +218 -0
  1023. package/dist/validation-BFecQczG.mjs.map +1 -0
  1024. package/dist/version-BRZXVifl.mjs +9 -0
  1025. package/dist/version-BRZXVifl.mjs.map +1 -0
  1026. package/dist/version-DXsxRrob.mjs +7 -0
  1027. package/dist/version-DXsxRrob.mjs.map +1 -0
  1028. package/dist/widgets-WdV72brA.mjs +126 -0
  1029. package/dist/widgets-WdV72brA.mjs.map +1 -0
  1030. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts +34 -0
  1031. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts.map +1 -0
  1032. package/dist/wxr-taxonomies-DP6ESgMN.mjs +372 -0
  1033. package/dist/wxr-taxonomies-DP6ESgMN.mjs.map +1 -0
  1034. package/dist/zod-generator-D6uE4WiS.mjs +389 -0
  1035. package/dist/zod-generator-D6uE4WiS.mjs.map +1 -0
  1036. package/package.json +6 -5
  1037. package/src/api/authorize.ts +17 -0
  1038. package/src/api/email-locale.ts +24 -0
  1039. package/src/api/errors.ts +16 -0
  1040. package/src/api/handlers/api-tokens.ts +18 -3
  1041. package/src/api/handlers/block-types.ts +129 -0
  1042. package/src/api/handlers/bulk-tag.ts +309 -0
  1043. package/src/api/handlers/comments.ts +0 -28
  1044. package/src/api/handlers/index.ts +11 -0
  1045. package/src/api/handlers/manifest.ts +8 -1
  1046. package/src/api/handlers/marketplace.ts +22 -16
  1047. package/src/api/handlers/media-upload.ts +17 -71
  1048. package/src/api/handlers/media-usage.ts +31 -12
  1049. package/src/api/handlers/media.ts +112 -13
  1050. package/src/api/handlers/schema.ts +33 -8
  1051. package/src/api/handlers/settings.ts +2 -2
  1052. package/src/api/handlers/snapshot.ts +261 -3
  1053. package/src/api/handlers/taxonomies.ts +132 -83
  1054. package/src/api/handlers/transfer.ts +1347 -0
  1055. package/src/api/handlers/validate-media-fields.ts +124 -12
  1056. package/src/api/media-usage-write-fence.ts +5 -26
  1057. package/src/api/openapi/document.ts +614 -5
  1058. package/src/api/schemas/auth.ts +7 -1
  1059. package/src/api/schemas/common.ts +5 -0
  1060. package/src/api/schemas/content.ts +20 -1
  1061. package/src/api/schemas/media-usage.ts +11 -0
  1062. package/src/api/schemas/menus.ts +1 -1
  1063. package/src/api/schemas/schema.ts +117 -0
  1064. package/src/api/schemas/settings.ts +3 -3
  1065. package/src/api/schemas/taxonomies.ts +18 -0
  1066. package/src/api/schemas/transfer.ts +249 -0
  1067. package/src/api/transfer-download.ts +36 -0
  1068. package/src/api/types.ts +3 -0
  1069. package/src/astro/integration/routes.ts +31 -0
  1070. package/src/astro/integration/vite-config.ts +36 -4
  1071. package/src/astro/middleware/auth.ts +30 -7
  1072. package/src/astro/middleware/media-usage-write-fence.ts +106 -11
  1073. package/src/astro/middleware/request-context.ts +16 -2
  1074. package/src/astro/middleware.ts +39 -18
  1075. package/src/astro/routes/admin.astro +3 -1
  1076. package/src/astro/routes/api/admin/hooks/exclusive/index.ts +1 -5
  1077. package/src/astro/routes/api/admin/plugins/[id]/disable.ts +4 -3
  1078. package/src/astro/routes/api/admin/plugins/[id]/enable.ts +4 -3
  1079. package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +4 -3
  1080. package/src/astro/routes/api/admin/plugins/[id]/update.ts +4 -3
  1081. package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +4 -3
  1082. package/src/astro/routes/api/admin/plugins/registry/[id]/uninstall.ts +4 -3
  1083. package/src/astro/routes/api/admin/plugins/registry/[id]/update.ts +3 -3
  1084. package/src/astro/routes/api/admin/plugins/registry/install.ts +3 -3
  1085. package/src/astro/routes/api/admin/plugins/registry/publisher-handle.ts +59 -0
  1086. package/src/astro/routes/api/admin/transfer/[...path].ts +143 -0
  1087. package/src/astro/routes/api/admin/transfer/approvals/[id]/approve.ts +35 -0
  1088. package/src/astro/routes/api/admin/transfer/approvals/[id]/deny.ts +35 -0
  1089. package/src/astro/routes/api/admin/transfer/approvals/index.ts +33 -0
  1090. package/src/astro/routes/api/admin/transfer/capabilities.ts +36 -0
  1091. package/src/astro/routes/api/admin/transfer/exports/[id]/advance.ts +34 -0
  1092. package/src/astro/routes/api/admin/transfer/exports/[id]/archive.ts +35 -0
  1093. package/src/astro/routes/api/admin/transfer/exports/[id]/files/[...path].ts +40 -0
  1094. package/src/astro/routes/api/admin/transfer/exports/[id]/index.ts +25 -0
  1095. package/src/astro/routes/api/admin/transfer/exports/[id]/manifest.ts +38 -0
  1096. package/src/astro/routes/api/admin/transfer/exports/index.ts +64 -0
  1097. package/src/astro/routes/api/admin/transfer/imports/[id]/abandon.ts +28 -0
  1098. package/src/astro/routes/api/admin/transfer/imports/[id]/advance.ts +37 -0
  1099. package/src/astro/routes/api/admin/transfer/imports/[id]/analyze.ts +51 -0
  1100. package/src/astro/routes/api/admin/transfer/imports/[id]/cancel.ts +27 -0
  1101. package/src/astro/routes/api/admin/transfer/imports/[id]/execute.ts +48 -0
  1102. package/src/astro/routes/api/admin/transfer/imports/[id]/files/[...path].ts +54 -0
  1103. package/src/astro/routes/api/admin/transfer/imports/[id]/index.ts +25 -0
  1104. package/src/astro/routes/api/admin/transfer/imports/[id]/missing.ts +34 -0
  1105. package/src/astro/routes/api/admin/transfer/imports/[id]/plan.ts +29 -0
  1106. package/src/astro/routes/api/admin/transfer/imports/[id]/receipt.ts +25 -0
  1107. package/src/astro/routes/api/admin/transfer/imports/index.ts +85 -0
  1108. package/src/astro/routes/api/admin/users/[id]/send-recovery.ts +9 -1
  1109. package/src/astro/routes/api/auth/invite/index.ts +15 -1
  1110. package/src/astro/routes/api/auth/magic-link/send.ts +9 -1
  1111. package/src/astro/routes/api/auth/magic-link/verify.ts +37 -39
  1112. package/src/astro/routes/api/auth/passkey/options.ts +2 -21
  1113. package/src/astro/routes/api/content/[collection]/[id]/preview-url.ts +64 -13
  1114. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +16 -1
  1115. package/src/astro/routes/api/import/wordpress/rewrite-url-helpers.ts +11 -4
  1116. package/src/astro/routes/api/mcp.ts +1 -0
  1117. package/src/astro/routes/api/media/[id].ts +5 -15
  1118. package/src/astro/routes/api/media/file/[...key].ts +30 -5
  1119. package/src/astro/routes/api/oauth/authorize.ts +4 -0
  1120. package/src/astro/routes/api/schema/block-types/[slug]/index.ts +29 -0
  1121. package/src/astro/routes/api/schema/block-types/[slug]/versions/[version]/activate.ts +31 -0
  1122. package/src/astro/routes/api/schema/block-types/index.ts +29 -0
  1123. package/src/astro/routes/api/setup/index.ts +66 -23
  1124. package/src/astro/routes/api/snapshot.ts +2 -1
  1125. package/src/astro/routes/api/taxonomies/bulk-tag.ts +29 -0
  1126. package/src/astro/routes/api/typegen.ts +8 -4
  1127. package/src/astro/types.ts +9 -0
  1128. package/src/auth/api-tokens.ts +1 -0
  1129. package/src/auth/rate-limit.ts +2 -1
  1130. package/src/auth/scopes.ts +11 -0
  1131. package/src/cleanup.ts +24 -0
  1132. package/src/cli/client-factory.ts +6 -1
  1133. package/src/cli/commands/export-seed.ts +41 -15
  1134. package/src/cli/commands/seed.ts +6 -2
  1135. package/src/cli/commands/site.ts +556 -0
  1136. package/src/cli/index.ts +2 -0
  1137. package/src/cli/site/archive.ts +273 -0
  1138. package/src/cli/site/export.ts +311 -0
  1139. package/src/cli/site/import.ts +815 -0
  1140. package/src/cli/site/shared.ts +241 -0
  1141. package/src/client/index.ts +414 -11
  1142. package/src/client/portable-text.ts +41 -0
  1143. package/src/comments/public-submission.ts +19 -11
  1144. package/src/components/Blocks.astro +46 -0
  1145. package/src/components/Columns.astro +3 -1
  1146. package/src/components/Cover.astro +3 -1
  1147. package/src/components/Gallery.astro +2 -1
  1148. package/src/components/Image.astro +51 -6
  1149. package/src/components/InlinePortableTextEditor.tsx +28 -18
  1150. package/src/components/blocks.ts +44 -0
  1151. package/src/components/index.ts +14 -4
  1152. package/src/content/converters/gallery.ts +54 -16
  1153. package/src/content/converters/image-link.ts +27 -0
  1154. package/src/content/converters/index.ts +1 -0
  1155. package/src/content/converters/portable-text-to-prosemirror.ts +10 -7
  1156. package/src/content/converters/prosemirror-to-portable-text.ts +14 -0
  1157. package/src/content/converters/types.ts +17 -0
  1158. package/src/database/content-datetime.ts +19 -2
  1159. package/src/database/migrations/035_bounded_404_log.ts +28 -39
  1160. package/src/database/migrations/083_block_types.ts +58 -0
  1161. package/src/database/migrations/084_site_transfer.ts +264 -0
  1162. package/src/database/migrations/085_taxonomy_def_groups.ts +155 -0
  1163. package/src/database/migrations/runner.ts +6 -0
  1164. package/src/database/repositories/audit.ts +10 -1
  1165. package/src/database/repositories/byline.ts +4 -1
  1166. package/src/database/repositories/content.ts +83 -11
  1167. package/src/database/repositories/media-usage.ts +43 -13
  1168. package/src/database/repositories/media.ts +72 -2
  1169. package/src/database/repositories/options.ts +12 -0
  1170. package/src/database/repositories/redirect.ts +17 -34
  1171. package/src/database/repositories/revision.ts +6 -3
  1172. package/src/database/repositories/taxonomy-def.ts +126 -0
  1173. package/src/database/repositories/taxonomy.ts +65 -26
  1174. package/src/database/types.ts +133 -1
  1175. package/src/db/sqlite.ts +1 -1
  1176. package/src/emdash-runtime.ts +315 -51
  1177. package/src/import/utils.ts +8 -1
  1178. package/src/import/wxr-taxonomies.ts +11 -67
  1179. package/src/index.ts +27 -1
  1180. package/src/loader.ts +9 -5
  1181. package/src/mcp/server.ts +533 -76
  1182. package/src/mcp/transfer.ts +569 -0
  1183. package/src/media/local-runtime.ts +5 -18
  1184. package/src/media/upload-attempts.ts +5 -0
  1185. package/src/media/url.ts +15 -0
  1186. package/src/media/usage/content-fields.ts +69 -5
  1187. package/src/media/usage/content-refresh.ts +13 -66
  1188. package/src/media/usage/content-repair.ts +10 -2
  1189. package/src/media/usage/extractor.ts +74 -3
  1190. package/src/media/usage/projection-fingerprint.ts +14 -0
  1191. package/src/media/usage/schema-invalidation.ts +72 -0
  1192. package/src/media/usage/site-settings.ts +52 -0
  1193. package/src/media/usage/types.ts +2 -0
  1194. package/src/object-cache/index.ts +69 -4
  1195. package/src/plugin-test-runtime.ts +1 -0
  1196. package/src/plugins/context.ts +104 -56
  1197. package/src/plugins/cron.ts +6 -4
  1198. package/src/plugins/define-plugin.ts +11 -1
  1199. package/src/plugins/email-console.ts +2 -0
  1200. package/src/plugins/email.ts +16 -0
  1201. package/src/plugins/hooks.ts +33 -9
  1202. package/src/plugins/manifest-schema.ts +1 -0
  1203. package/src/plugins/route-error.ts +57 -0
  1204. package/src/plugins/routes.ts +5 -60
  1205. package/src/plugins/sandbox/types.ts +22 -2
  1206. package/src/plugins/types.ts +4 -0
  1207. package/src/registry/artifact-fetch.ts +17 -4
  1208. package/src/registry/publisher-handle.ts +273 -0
  1209. package/src/schema/block-type-contract.ts +478 -0
  1210. package/src/schema/block-type-registry.ts +689 -0
  1211. package/src/schema/block-types.ts +110 -0
  1212. package/src/schema/block-values.ts +293 -0
  1213. package/src/schema/byline-registry.ts +1 -1
  1214. package/src/schema/index.ts +28 -0
  1215. package/src/schema/registry.ts +462 -12
  1216. package/src/schema/types.ts +12 -1
  1217. package/src/schema/zod-generator.ts +92 -9
  1218. package/src/search/fts-manager.ts +40 -0
  1219. package/src/seed/apply.ts +493 -88
  1220. package/src/seed/types.ts +23 -3
  1221. package/src/seed/validate.ts +131 -7
  1222. package/src/settings/index.ts +32 -9
  1223. package/src/settings/types.ts +15 -0
  1224. package/src/taxonomies/index.ts +72 -83
  1225. package/src/transfer/analyze/index.ts +45 -0
  1226. package/src/transfer/analyze/issues.ts +55 -0
  1227. package/src/transfer/analyze/plan.ts +327 -0
  1228. package/src/transfer/analyze/read.ts +134 -0
  1229. package/src/transfer/analyze/step.ts +551 -0
  1230. package/src/transfer/analyze/target.ts +269 -0
  1231. package/src/transfer/analyze/unique-keys.ts +228 -0
  1232. package/src/transfer/analyze/validate.ts +1412 -0
  1233. package/src/transfer/analyze/values.ts +227 -0
  1234. package/src/transfer/analyze/write-rules.ts +196 -0
  1235. package/src/transfer/audit.ts +38 -0
  1236. package/src/transfer/auth.ts +25 -0
  1237. package/src/transfer/container/tar.ts +242 -0
  1238. package/src/transfer/domain.ts +248 -0
  1239. package/src/transfer/errors.ts +134 -0
  1240. package/src/transfer/export/exporter.ts +1067 -0
  1241. package/src/transfer/export/fence.ts +84 -0
  1242. package/src/transfer/export/media.ts +165 -0
  1243. package/src/transfer/export/readers.ts +1164 -0
  1244. package/src/transfer/export/verify.ts +677 -0
  1245. package/src/transfer/fence.ts +193 -0
  1246. package/src/transfer/format/canonical.ts +151 -0
  1247. package/src/transfer/format/column-codec.ts +275 -0
  1248. package/src/transfer/format/columns.ts +707 -0
  1249. package/src/transfer/format/digest.ts +287 -0
  1250. package/src/transfer/format/features.ts +91 -0
  1251. package/src/transfer/format/issues.ts +39 -0
  1252. package/src/transfer/format/kinds.ts +936 -0
  1253. package/src/transfer/format/limits.ts +87 -0
  1254. package/src/transfer/format/manifest.ts +297 -0
  1255. package/src/transfer/format/media-refs.ts +716 -0
  1256. package/src/transfer/format/paths.ts +73 -0
  1257. package/src/transfer/format/plan.ts +162 -0
  1258. package/src/transfer/format/receipt.ts +43 -0
  1259. package/src/transfer/format/records.ts +127 -0
  1260. package/src/transfer/format/settings.ts +94 -0
  1261. package/src/transfer/format/transformations.ts +260 -0
  1262. package/src/transfer/format/version.ts +9 -0
  1263. package/src/transfer/gc.ts +103 -0
  1264. package/src/transfer/import/advance.ts +522 -0
  1265. package/src/transfer/import/context.ts +281 -0
  1266. package/src/transfer/import/entries.ts +186 -0
  1267. package/src/transfer/import/ids.ts +40 -0
  1268. package/src/transfer/import/index.ts +15 -0
  1269. package/src/transfer/import/media.ts +141 -0
  1270. package/src/transfer/import/rebuild.ts +300 -0
  1271. package/src/transfer/import/rows.ts +114 -0
  1272. package/src/transfer/import/scaffold.ts +221 -0
  1273. package/src/transfer/import/sql.ts +134 -0
  1274. package/src/transfer/import/stages.ts +329 -0
  1275. package/src/transfer/import/writers.ts +370 -0
  1276. package/src/transfer/index.ts +472 -0
  1277. package/src/transfer/ops/approvals.ts +359 -0
  1278. package/src/transfer/ops/budget.ts +82 -0
  1279. package/src/transfer/ops/collation.ts +21 -0
  1280. package/src/transfer/ops/identity-map.ts +142 -0
  1281. package/src/transfer/ops/media-blobs.ts +135 -0
  1282. package/src/transfer/ops/operations.ts +842 -0
  1283. package/src/transfer/ops/package-index.ts +159 -0
  1284. package/src/transfer/ops/staged-files.ts +231 -0
  1285. package/src/transfer/ops/states.ts +265 -0
  1286. package/src/transfer/ops/time.ts +54 -0
  1287. package/src/transfer/schema-importer.ts +34 -0
  1288. package/src/transfer/site-id.ts +30 -0
  1289. package/src/transfer/staging/assembler.ts +217 -0
  1290. package/src/transfer/staging/keys.ts +94 -0
  1291. package/src/transfer/staging/package.ts +229 -0
  1292. package/src/transfer/staging/stage.ts +231 -0
  1293. package/src/ui.ts +19 -0
  1294. package/src/visual-editing/toolbar.ts +125 -37
  1295. package/dist/action-token-On1sot_c.mjs +0 -26
  1296. package/dist/action-token-On1sot_c.mjs.map +0 -1
  1297. package/dist/activation-CaMfdBt1.mjs +0 -382
  1298. package/dist/activation-CaMfdBt1.mjs.map +0 -1
  1299. package/dist/adapters-Cq10K4_c.d.mts +0 -171
  1300. package/dist/adapters-Cq10K4_c.d.mts.map +0 -1
  1301. package/dist/allowed-origins-1Sa-2wZK.mjs +0 -116
  1302. package/dist/allowed-origins-1Sa-2wZK.mjs.map +0 -1
  1303. package/dist/api-BB5BoQbN.mjs +0 -4831
  1304. package/dist/api-BB5BoQbN.mjs.map +0 -1
  1305. package/dist/api-tokens-BIXItFKV.mjs +0 -163
  1306. package/dist/api-tokens-BIXItFKV.mjs.map +0 -1
  1307. package/dist/api-tokens-DS1VzN7_.mjs +0 -3
  1308. package/dist/apply-CsKm_5S5.mjs +0 -1005
  1309. package/dist/apply-CsKm_5S5.mjs.map +0 -1
  1310. package/dist/artifact-fetch-COiMhVgk.mjs +0 -813
  1311. package/dist/artifact-fetch-COiMhVgk.mjs.map +0 -1
  1312. package/dist/authoritative-records-DbqshfKD.mjs +0 -5172
  1313. package/dist/authoritative-records-DbqshfKD.mjs.map +0 -1
  1314. package/dist/authorize-BXpfMpp0.mjs +0 -40
  1315. package/dist/authorize-BXpfMpp0.mjs.map +0 -1
  1316. package/dist/backup-B4tByjBb.mjs +0 -246
  1317. package/dist/backup-B4tByjBb.mjs.map +0 -1
  1318. package/dist/byline-C8ndlnP0.mjs +0 -906
  1319. package/dist/byline-C8ndlnP0.mjs.map +0 -1
  1320. package/dist/byline-fields-CsrdvaLV.mjs +0 -123
  1321. package/dist/byline-fields-CsrdvaLV.mjs.map +0 -1
  1322. package/dist/byline-registry-D6lWzXk6.mjs +0 -406
  1323. package/dist/byline-registry-D6lWzXk6.mjs.map +0 -1
  1324. package/dist/bylines-CHP44GkL.mjs +0 -232
  1325. package/dist/bylines-CHP44GkL.mjs.map +0 -1
  1326. package/dist/bylines-DxjM4Usz.mjs +0 -214
  1327. package/dist/bylines-DxjM4Usz.mjs.map +0 -1
  1328. package/dist/cache-BByLKGPu.mjs +0 -108
  1329. package/dist/cache-BByLKGPu.mjs.map +0 -1
  1330. package/dist/capture-triggers-gxQxnxrJ.mjs +0 -362
  1331. package/dist/capture-triggers-gxQxnxrJ.mjs.map +0 -1
  1332. package/dist/challenge-store-CkRdSdd8.mjs +0 -51
  1333. package/dist/challenge-store-CkRdSdd8.mjs.map +0 -1
  1334. package/dist/checksum-Bsi2D9M1.mjs +0 -162
  1335. package/dist/checksum-Bsi2D9M1.mjs.map +0 -1
  1336. package/dist/chrome-tags-D7LGB91U.mjs +0 -24
  1337. package/dist/chrome-tags-D7LGB91U.mjs.map +0 -1
  1338. package/dist/chunks-DUK-cWXi.mjs +0 -25
  1339. package/dist/chunks-DUK-cWXi.mjs.map +0 -1
  1340. package/dist/collection-deletion-C-yQB9fq.mjs +0 -436
  1341. package/dist/collection-deletion-C-yQB9fq.mjs.map +0 -1
  1342. package/dist/collection-slugs-cache-D9auiKmI.mjs +0 -85
  1343. package/dist/collection-slugs-cache-D9auiKmI.mjs.map +0 -1
  1344. package/dist/comment-DcT8qdPK.mjs +0 -313
  1345. package/dist/comment-DcT8qdPK.mjs.map +0 -1
  1346. package/dist/comment-reaction-B6KHCLYK.mjs +0 -85
  1347. package/dist/comment-reaction-B6KHCLYK.mjs.map +0 -1
  1348. package/dist/comments-B67VRNGw.mjs +0 -204
  1349. package/dist/comments-B67VRNGw.mjs.map +0 -1
  1350. package/dist/comments-BVzzt6x5.mjs +0 -99
  1351. package/dist/comments-BVzzt6x5.mjs.map +0 -1
  1352. package/dist/components-DIl9Qzh6.mjs +0 -108
  1353. package/dist/components-DIl9Qzh6.mjs.map +0 -1
  1354. package/dist/config-B2acLeC5.mjs +0 -242
  1355. package/dist/config-B2acLeC5.mjs.map +0 -1
  1356. package/dist/config-CGVeT8Hc.mjs +0 -73
  1357. package/dist/config-CGVeT8Hc.mjs.map +0 -1
  1358. package/dist/config-Cw1Xz_Br.d.mts +0 -6387
  1359. package/dist/config-Cw1Xz_Br.d.mts.map +0 -1
  1360. package/dist/config-D3HhLON3.d.mts +0 -39
  1361. package/dist/config-D3HhLON3.d.mts.map +0 -1
  1362. package/dist/content-C0Hl3ktM.mjs +0 -2216
  1363. package/dist/content-C0Hl3ktM.mjs.map +0 -1
  1364. package/dist/content-list-query-CbPdzsna.d.mts +0 -26
  1365. package/dist/content-list-query-CbPdzsna.d.mts.map +0 -1
  1366. package/dist/content-policy-CM4skrNi.mjs +0 -46
  1367. package/dist/content-policy-CM4skrNi.mjs.map +0 -1
  1368. package/dist/content-refresh-iRBhQHr5.mjs +0 -3599
  1369. package/dist/content-refresh-iRBhQHr5.mjs.map +0 -1
  1370. package/dist/content-repair-8uHRIJkd.mjs +0 -440
  1371. package/dist/content-repair-8uHRIJkd.mjs.map +0 -1
  1372. package/dist/context-DJP3aNeR.mjs +0 -1835
  1373. package/dist/context-DJP3aNeR.mjs.map +0 -1
  1374. package/dist/cron-BcR3RN4K.mjs +0 -282
  1375. package/dist/cron-BcR3RN4K.mjs.map +0 -1
  1376. package/dist/dashboard-B0s6QKgi.mjs +0 -151
  1377. package/dist/dashboard-B0s6QKgi.mjs.map +0 -1
  1378. package/dist/default-BtlxWgh9.mjs +0 -81
  1379. package/dist/default-BtlxWgh9.mjs.map +0 -1
  1380. package/dist/deferred-tasks-Ba9fphlE.d.mts +0 -9
  1381. package/dist/deferred-tasks-Ba9fphlE.d.mts.map +0 -1
  1382. package/dist/device-flow-3E5l0fpH.mjs +0 -466
  1383. package/dist/device-flow-3E5l0fpH.mjs.map +0 -1
  1384. package/dist/dialect-helpers-CtYdsX4W.mjs +0 -307
  1385. package/dist/dialect-helpers-CtYdsX4W.mjs.map +0 -1
  1386. package/dist/direct-executor-CDr1quOq.mjs +0 -104
  1387. package/dist/direct-executor-CDr1quOq.mjs.map +0 -1
  1388. package/dist/dist-2hDLsLeq.mjs +0 -810
  1389. package/dist/dist-2hDLsLeq.mjs.map +0 -1
  1390. package/dist/email-console-gc-E3Eqj.mjs +0 -50
  1391. package/dist/email-console-gc-E3Eqj.mjs.map +0 -1
  1392. package/dist/emdash-runtime-CxxL05Z0.mjs +0 -4041
  1393. package/dist/emdash-runtime-CxxL05Z0.mjs.map +0 -1
  1394. package/dist/enrich-C2Mk0lwE.mjs +0 -194
  1395. package/dist/enrich-C2Mk0lwE.mjs.map +0 -1
  1396. package/dist/entry-lock-CwWdnFyR.mjs +0 -1520
  1397. package/dist/entry-lock-CwWdnFyR.mjs.map +0 -1
  1398. package/dist/entry-lock-D9rnj2Lu.mjs +0 -163
  1399. package/dist/entry-lock-D9rnj2Lu.mjs.map +0 -1
  1400. package/dist/entry-lock-DqkvBC6L.d.mts +0 -3503
  1401. package/dist/entry-lock-DqkvBC6L.d.mts.map +0 -1
  1402. package/dist/entry-locks-CO_KaoU5.mjs +0 -167
  1403. package/dist/entry-locks-CO_KaoU5.mjs.map +0 -1
  1404. package/dist/error-CCTCskie.mjs +0 -90
  1405. package/dist/error-CCTCskie.mjs.map +0 -1
  1406. package/dist/errors-W3PA8HqB.mjs +0 -447
  1407. package/dist/errors-W3PA8HqB.mjs.map +0 -1
  1408. package/dist/escape-DN4Qmjsl.mjs +0 -9
  1409. package/dist/escape-DN4Qmjsl.mjs.map +0 -1
  1410. package/dist/field-defs-cache-Db0pJgqn.mjs +0 -77
  1411. package/dist/field-defs-cache-Db0pJgqn.mjs.map +0 -1
  1412. package/dist/fts-manager-CjX0e5BR.mjs +0 -413
  1413. package/dist/fts-manager-CjX0e5BR.mjs.map +0 -1
  1414. package/dist/hash-CLVFzWvx.mjs +0 -37
  1415. package/dist/hash-CLVFzWvx.mjs.map +0 -1
  1416. package/dist/hook-result-KY1jq21o.d.mts +0 -31
  1417. package/dist/hook-result-KY1jq21o.d.mts.map +0 -1
  1418. package/dist/hreflang-BgS2FqhH.d.mts +0 -50
  1419. package/dist/hreflang-BgS2FqhH.d.mts.map +0 -1
  1420. package/dist/hreflang-DOQeTXpg.mjs +0 -105
  1421. package/dist/hreflang-DOQeTXpg.mjs.map +0 -1
  1422. package/dist/http-route-dispatch-MCVKiQCl.mjs +0 -339
  1423. package/dist/http-route-dispatch-MCVKiQCl.mjs.map +0 -1
  1424. package/dist/identity-vFbpuwfY.mjs +0 -35
  1425. package/dist/identity-vFbpuwfY.mjs.map +0 -1
  1426. package/dist/import-got6I69S.mjs +0 -2020
  1427. package/dist/import-got6I69S.mjs.map +0 -1
  1428. package/dist/index-CDwKDkTq.d.mts +0 -623
  1429. package/dist/index-CDwKDkTq.d.mts.map +0 -1
  1430. package/dist/install-finalization-5Os-QZ-2.mjs +0 -58
  1431. package/dist/install-finalization-5Os-QZ-2.mjs.map +0 -1
  1432. package/dist/lifecycle-7e-Lt_kX.mjs +0 -25
  1433. package/dist/lifecycle-7e-Lt_kX.mjs.map +0 -1
  1434. package/dist/load-C56XiwbV.mjs +0 -28
  1435. package/dist/load-C56XiwbV.mjs.map +0 -1
  1436. package/dist/loader-xhNQiT9T.mjs +0 -1004
  1437. package/dist/loader-xhNQiT9T.mjs.map +0 -1
  1438. package/dist/manifest-builder-Bz3nxVET.mjs +0 -189
  1439. package/dist/manifest-builder-Bz3nxVET.mjs.map +0 -1
  1440. package/dist/manifest-schema-Bkh8SeHd.mjs +0 -491
  1441. package/dist/manifest-schema-Bkh8SeHd.mjs.map +0 -1
  1442. package/dist/media-TBlKCwo7.mjs +0 -334
  1443. package/dist/media-TBlKCwo7.mjs.map +0 -1
  1444. package/dist/media-allowlist-s60eAIf6.mjs +0 -44
  1445. package/dist/media-allowlist-s60eAIf6.mjs.map +0 -1
  1446. package/dist/media-folders-ClIRLUQv.mjs +0 -210
  1447. package/dist/media-folders-ClIRLUQv.mjs.map +0 -1
  1448. package/dist/media-url-DY_ijO3B.mjs +0 -43
  1449. package/dist/media-url-DY_ijO3B.mjs.map +0 -1
  1450. package/dist/media-usage-Bd9rFPKN.mjs +0 -1833
  1451. package/dist/media-usage-Bd9rFPKN.mjs.map +0 -1
  1452. package/dist/media-usage-activation-CAhmb14O.mjs +0 -78
  1453. package/dist/media-usage-activation-CAhmb14O.mjs.map +0 -1
  1454. package/dist/media-usage-work-BPlRMOJv.mjs +0 -152
  1455. package/dist/media-usage-work-BPlRMOJv.mjs.map +0 -1
  1456. package/dist/media-usage-work-Cu5DqewW.mjs +0 -586
  1457. package/dist/media-usage-work-Cu5DqewW.mjs.map +0 -1
  1458. package/dist/media-usage-write-fence-DW5oHT7q.mjs +0 -42
  1459. package/dist/media-usage-write-fence-DW5oHT7q.mjs.map +0 -1
  1460. package/dist/menus-BUQdvXep.mjs +0 -3732
  1461. package/dist/menus-BUQdvXep.mjs.map +0 -1
  1462. package/dist/menus-DgSUodmF.mjs +0 -753
  1463. package/dist/menus-DgSUodmF.mjs.map +0 -1
  1464. package/dist/mime-CCYRC4r1.mjs +0 -36
  1465. package/dist/mime-CCYRC4r1.mjs.map +0 -1
  1466. package/dist/mode-CkmOhFqj.mjs +0 -23
  1467. package/dist/mode-CkmOhFqj.mjs.map +0 -1
  1468. package/dist/node-sqlite-compat-vpVaILnb.mjs +0 -46
  1469. package/dist/node-sqlite-compat-vpVaILnb.mjs.map +0 -1
  1470. package/dist/normalize-dChXQjwS.mjs +0 -191
  1471. package/dist/normalize-dChXQjwS.mjs.map +0 -1
  1472. package/dist/oauth-authorization-DZ-R-hmx.mjs +0 -274
  1473. package/dist/oauth-authorization-DZ-R-hmx.mjs.map +0 -1
  1474. package/dist/oauth-clients-BMPA8vjl.mjs +0 -266
  1475. package/dist/oauth-clients-BMPA8vjl.mjs.map +0 -1
  1476. package/dist/oauth-state-store-0gIdb48-.mjs +0 -50
  1477. package/dist/oauth-state-store-0gIdb48-.mjs.map +0 -1
  1478. package/dist/oauth-user-lookup-ChVW4UWu.mjs +0 -26
  1479. package/dist/oauth-user-lookup-ChVW4UWu.mjs.map +0 -1
  1480. package/dist/object-cache-DlSVbn5Y.mjs +0 -534
  1481. package/dist/object-cache-DlSVbn5Y.mjs.map +0 -1
  1482. package/dist/options-D5WcorD5.mjs +0 -200
  1483. package/dist/options-D5WcorD5.mjs.map +0 -1
  1484. package/dist/options-DAknChnw.d.mts +0 -77
  1485. package/dist/options-DAknChnw.d.mts.map +0 -1
  1486. package/dist/parse-Cr379Av9.mjs +0 -81
  1487. package/dist/parse-Cr379Av9.mjs.map +0 -1
  1488. package/dist/parse-tj9XLNO_.d.mts +0 -165
  1489. package/dist/parse-tj9XLNO_.d.mts.map +0 -1
  1490. package/dist/passkey-config-BD-wMaCf.mjs +0 -46
  1491. package/dist/passkey-config-BD-wMaCf.mjs.map +0 -1
  1492. package/dist/patterns-Do3iqi7N.mjs +0 -145
  1493. package/dist/patterns-Do3iqi7N.mjs.map +0 -1
  1494. package/dist/placeholder-CubPFn_L.d.mts +0 -306
  1495. package/dist/placeholder-CubPFn_L.d.mts.map +0 -1
  1496. package/dist/plugins-DHurtdXQ.mjs +0 -277
  1497. package/dist/plugins-DHurtdXQ.mjs.map +0 -1
  1498. package/dist/policy-pL9QLKZm.mjs +0 -45
  1499. package/dist/policy-pL9QLKZm.mjs.map +0 -1
  1500. package/dist/portable-text-oAwodbPS.mjs +0 -286
  1501. package/dist/portable-text-oAwodbPS.mjs.map +0 -1
  1502. package/dist/preview-Cup2bj8c.mjs +0 -107
  1503. package/dist/preview-Cup2bj8c.mjs.map +0 -1
  1504. package/dist/protocol-C1CNiKX4.d.mts +0 -61
  1505. package/dist/protocol-C1CNiKX4.d.mts.map +0 -1
  1506. package/dist/public-submission-Cs-pFMQK.mjs +0 -245
  1507. package/dist/public-submission-Cs-pFMQK.mjs.map +0 -1
  1508. package/dist/public-url-BWVHsfQv.mjs +0 -101
  1509. package/dist/public-url-BWVHsfQv.mjs.map +0 -1
  1510. package/dist/query-CxnFU6sz.mjs +0 -890
  1511. package/dist/query-CxnFU6sz.mjs.map +0 -1
  1512. package/dist/query-sgHYEgBW.mjs +0 -41
  1513. package/dist/query-sgHYEgBW.mjs.map +0 -1
  1514. package/dist/rate-limit-CqJn-w4h.mjs +0 -120
  1515. package/dist/rate-limit-CqJn-w4h.mjs.map +0 -1
  1516. package/dist/redirect-BrChFPIu.mjs +0 -17
  1517. package/dist/redirect-BrChFPIu.mjs.map +0 -1
  1518. package/dist/redirect-D2Yo-b6S.mjs +0 -415
  1519. package/dist/redirect-D2Yo-b6S.mjs.map +0 -1
  1520. package/dist/redirects-BCiTaIQ-.mjs +0 -146
  1521. package/dist/redirects-BCiTaIQ-.mjs.map +0 -1
  1522. package/dist/redirects-CAoL3r26.mjs +0 -644
  1523. package/dist/redirects-CAoL3r26.mjs.map +0 -1
  1524. package/dist/registry-xKzE-_m5.mjs +0 -1222
  1525. package/dist/registry-xKzE-_m5.mjs.map +0 -1
  1526. package/dist/relation-ClsWcYg2.mjs +0 -334
  1527. package/dist/relation-ClsWcYg2.mjs.map +0 -1
  1528. package/dist/relations-B4w-G5U9.mjs +0 -309
  1529. package/dist/relations-B4w-G5U9.mjs.map +0 -1
  1530. package/dist/relations-C3Td_mct.mjs +0 -403
  1531. package/dist/relations-C3Td_mct.mjs.map +0 -1
  1532. package/dist/request-cache-DaMhSQdx.mjs +0 -104
  1533. package/dist/request-cache-DaMhSQdx.mjs.map +0 -1
  1534. package/dist/request-meta-C8yl_sIs.mjs +0 -141
  1535. package/dist/request-meta-C8yl_sIs.mjs.map +0 -1
  1536. package/dist/resolve-BJIS8wKr.mjs +0 -199
  1537. package/dist/resolve-BJIS8wKr.mjs.map +0 -1
  1538. package/dist/route-wire-D66L2oaZ.mjs +0 -197
  1539. package/dist/route-wire-D66L2oaZ.mjs.map +0 -1
  1540. package/dist/routes-CWzxcZpn.mjs +0 -321
  1541. package/dist/routes-CWzxcZpn.mjs.map +0 -1
  1542. package/dist/runner-3gfxRsJG.d.mts +0 -68
  1543. package/dist/runner-3gfxRsJG.d.mts.map +0 -1
  1544. package/dist/runner-CIltKk4i.mjs +0 -5502
  1545. package/dist/runner-CIltKk4i.mjs.map +0 -1
  1546. package/dist/schema-DQIE9Htn.mjs +0 -420
  1547. package/dist/schema-DQIE9Htn.mjs.map +0 -1
  1548. package/dist/schema-ILPFMPW3.mjs +0 -9
  1549. package/dist/schema-ILPFMPW3.mjs.map +0 -1
  1550. package/dist/scopes-Bn8_rCSt.mjs +0 -27
  1551. package/dist/scopes-Bn8_rCSt.mjs.map +0 -1
  1552. package/dist/search-D6muneha.mjs +0 -448
  1553. package/dist/search-D6muneha.mjs.map +0 -1
  1554. package/dist/secrets-DNgVgz_e.mjs +0 -341
  1555. package/dist/secrets-DNgVgz_e.mjs.map +0 -1
  1556. package/dist/sections-BPCEGYWd.mjs +0 -346
  1557. package/dist/sections-BPCEGYWd.mjs.map +0 -1
  1558. package/dist/seo-BtU70b7l.mjs +0 -114
  1559. package/dist/seo-BtU70b7l.mjs.map +0 -1
  1560. package/dist/seo-rCk6pDwT.mjs +0 -133
  1561. package/dist/seo-rCk6pDwT.mjs.map +0 -1
  1562. package/dist/service-Bpy5iTX0.mjs +0 -150
  1563. package/dist/service-Bpy5iTX0.mjs.map +0 -1
  1564. package/dist/session-user-BQeS2Mrb.mjs +0 -51
  1565. package/dist/session-user-BQeS2Mrb.mjs.map +0 -1
  1566. package/dist/settings-CsoLiwpL.mjs +0 -420
  1567. package/dist/settings-CsoLiwpL.mjs.map +0 -1
  1568. package/dist/settings-DCnWtfSZ.mjs +0 -51
  1569. package/dist/settings-DCnWtfSZ.mjs.map +0 -1
  1570. package/dist/setup-complete-BrZaXpVV.mjs +0 -26
  1571. package/dist/setup-complete-BrZaXpVV.mjs.map +0 -1
  1572. package/dist/setup-nonce-Cb9-884O.mjs +0 -25
  1573. package/dist/setup-nonce-Cb9-884O.mjs.map +0 -1
  1574. package/dist/site-url-DjhYCaep.mjs +0 -16
  1575. package/dist/site-url-DjhYCaep.mjs.map +0 -1
  1576. package/dist/snapshot-C32Xuv3o.mjs +0 -233
  1577. package/dist/snapshot-C32Xuv3o.mjs.map +0 -1
  1578. package/dist/ssrf-Co1GGFZz.mjs +0 -406
  1579. package/dist/ssrf-Co1GGFZz.mjs.map +0 -1
  1580. package/dist/state-C7gCoiHr.mjs +0 -153
  1581. package/dist/state-C7gCoiHr.mjs.map +0 -1
  1582. package/dist/status-DLoBmcDz.mjs +0 -30
  1583. package/dist/status-DLoBmcDz.mjs.map +0 -1
  1584. package/dist/storage-query-CPctdMKX.d.mts +0 -1519
  1585. package/dist/storage-query-CPctdMKX.d.mts.map +0 -1
  1586. package/dist/target-CUKlGrXb.mjs +0 -27
  1587. package/dist/target-CUKlGrXb.mjs.map +0 -1
  1588. package/dist/taxonomies-Bs5dJVDJ.mjs +0 -899
  1589. package/dist/taxonomies-Bs5dJVDJ.mjs.map +0 -1
  1590. package/dist/taxonomies-DjGU22ur.mjs +0 -707
  1591. package/dist/taxonomies-DjGU22ur.mjs.map +0 -1
  1592. package/dist/taxonomy-c1Q8PMFF.mjs +0 -508
  1593. package/dist/taxonomy-c1Q8PMFF.mjs.map +0 -1
  1594. package/dist/tokens-Ns02GAma.mjs +0 -171
  1595. package/dist/tokens-Ns02GAma.mjs.map +0 -1
  1596. package/dist/transport-B8P1xsqk.mjs +0 -136
  1597. package/dist/transport-B8P1xsqk.mjs.map +0 -1
  1598. package/dist/transport-BLHZZcD_.d.mts +0 -42
  1599. package/dist/transport-BLHZZcD_.d.mts.map +0 -1
  1600. package/dist/trusted-proxy-Cg7SuD15.mjs +0 -51
  1601. package/dist/trusted-proxy-Cg7SuD15.mjs.map +0 -1
  1602. package/dist/turnstile-DWCSh_Qc.mjs +0 -53
  1603. package/dist/turnstile-DWCSh_Qc.mjs.map +0 -1
  1604. package/dist/types-B3RkqvDW.mjs +0 -156
  1605. package/dist/types-B3RkqvDW.mjs.map +0 -1
  1606. package/dist/types-BtuppOTV.mjs +0 -16
  1607. package/dist/types-BtuppOTV.mjs.map +0 -1
  1608. package/dist/types-CCR3ivXE.d.mts +0 -363
  1609. package/dist/types-CCR3ivXE.d.mts.map +0 -1
  1610. package/dist/types-CSHgU_-_.mjs +0 -18
  1611. package/dist/types-CSHgU_-_.mjs.map +0 -1
  1612. package/dist/types-CbwqGOXm.d.mts +0 -766
  1613. package/dist/types-CbwqGOXm.d.mts.map +0 -1
  1614. package/dist/types-D4RGIc2I.d.mts +0 -198
  1615. package/dist/types-D4RGIc2I.d.mts.map +0 -1
  1616. package/dist/types-DEHidMEk.d.mts +0 -1637
  1617. package/dist/types-DEHidMEk.d.mts.map +0 -1
  1618. package/dist/types-DQeU2SR7.d.mts +0 -279
  1619. package/dist/types-DQeU2SR7.d.mts.map +0 -1
  1620. package/dist/types-DxQWoQLA.d.mts +0 -264
  1621. package/dist/types-DxQWoQLA.d.mts.map +0 -1
  1622. package/dist/types-FBBnGZ2Y.d.mts +0 -198
  1623. package/dist/types-FBBnGZ2Y.d.mts.map +0 -1
  1624. package/dist/types-ZCnlropY.mjs +0 -69
  1625. package/dist/types-ZCnlropY.mjs.map +0 -1
  1626. package/dist/types-_Qtyawiy.d.mts +0 -124
  1627. package/dist/types-_Qtyawiy.d.mts.map +0 -1
  1628. package/dist/types-gC6FAoa_.d.mts +0 -75
  1629. package/dist/types-gC6FAoa_.d.mts.map +0 -1
  1630. package/dist/types-k--LneIF.mjs +0 -22
  1631. package/dist/types-k--LneIF.mjs.map +0 -1
  1632. package/dist/upload-attempts-2xdnoKGe.mjs +0 -27
  1633. package/dist/upload-attempts-2xdnoKGe.mjs.map +0 -1
  1634. package/dist/url-pattern-3m3reMzr.mjs +0 -33
  1635. package/dist/url-pattern-3m3reMzr.mjs.map +0 -1
  1636. package/dist/user-2R1gceFl.mjs +0 -171
  1637. package/dist/user-2R1gceFl.mjs.map +0 -1
  1638. package/dist/utils-CC2oNGV8.mjs +0 -435
  1639. package/dist/utils-CC2oNGV8.mjs.map +0 -1
  1640. package/dist/validate-CaFSi_Wa.mjs +0 -384
  1641. package/dist/validate-CaFSi_Wa.mjs.map +0 -1
  1642. package/dist/validate-CyQ7I3xF.d.mts +0 -410
  1643. package/dist/validate-CyQ7I3xF.d.mts.map +0 -1
  1644. package/dist/validation-nsX2uixg.mjs +0 -216
  1645. package/dist/validation-nsX2uixg.mjs.map +0 -1
  1646. package/dist/version-DGh4SL8e.mjs +0 -7
  1647. package/dist/version-DGh4SL8e.mjs.map +0 -1
  1648. package/dist/widgets-B7ued6f5.mjs +0 -126
  1649. package/dist/widgets-B7ued6f5.mjs.map +0 -1
  1650. package/dist/wxr-taxonomies-BtH3jYSg.mjs +0 -406
  1651. package/dist/wxr-taxonomies-BtH3jYSg.mjs.map +0 -1
  1652. package/dist/wxr-taxonomies-DU2ZSiGc.d.mts +0 -34
  1653. package/dist/wxr-taxonomies-DU2ZSiGc.d.mts.map +0 -1
  1654. package/dist/zod-generator-DuBjYyrI.mjs +0 -329
  1655. package/dist/zod-generator-DuBjYyrI.mjs.map +0 -1
  1656. /package/dist/{ssrf-BRpTDMV6.mjs → ssrf-DpBH7aOt.mjs} +0 -0
@@ -0,0 +1,26 @@
1
+ import { t as OptionsRepository } from "./options-DhrI7eMv.mjs";
2
+
3
+ //#region src/api/setup-complete.ts
4
+ /**
5
+ * Finalize setup after the first admin user is created.
6
+ *
7
+ * Reads the setup_state option (written by the setup wizard's step 1),
8
+ * persists site_title and site_tagline, then marks setup complete.
9
+ *
10
+ * Safe to call multiple times — checks setup_complete first and no-ops
11
+ * if already done.
12
+ */
13
+ async function finalizeSetup(db) {
14
+ const options = new OptionsRepository(db);
15
+ const setupComplete = await options.get("emdash:setup_complete");
16
+ if (setupComplete === true || setupComplete === "true") return;
17
+ const setupState = await options.get("emdash:setup_state");
18
+ if (setupState?.title && typeof setupState.title === "string") await options.set("emdash:site_title", setupState.title);
19
+ if (setupState?.tagline && typeof setupState.tagline === "string") await options.set("emdash:site_tagline", setupState.tagline);
20
+ await options.set("emdash:setup_complete", true);
21
+ await options.delete("emdash:setup_state");
22
+ }
23
+
24
+ //#endregion
25
+ export { finalizeSetup as t };
26
+ //# sourceMappingURL=setup-complete-bOogcHWG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-complete-bOogcHWG.mjs","names":[],"sources":["../src/api/setup-complete.ts"],"sourcesContent":["/**\n * Shared setup completion logic.\n *\n * Called by OAuth callbacks and the passkey verify step when the first user\n * is created during setup. Persists site title/tagline from setup state\n * and marks setup as complete.\n */\n\nimport type { Kysely } from \"kysely\";\n\nimport { OptionsRepository } from \"../database/repositories/options.js\";\nimport type { Database } from \"../database/types.js\";\n\n/**\n * Finalize setup after the first admin user is created.\n *\n * Reads the setup_state option (written by the setup wizard's step 1),\n * persists site_title and site_tagline, then marks setup complete.\n *\n * Safe to call multiple times — checks setup_complete first and no-ops\n * if already done.\n */\nexport async function finalizeSetup(db: Kysely<Database>): Promise<void> {\n\tconst options = new OptionsRepository(db);\n\n\tconst setupComplete = await options.get(\"emdash:setup_complete\");\n\tif (setupComplete === true || setupComplete === \"true\") return;\n\n\t// Persist site title/tagline from setup state (stored in step 1)\n\tconst setupState = await options.get<Record<string, unknown>>(\"emdash:setup_state\");\n\tif (setupState?.title && typeof setupState.title === \"string\") {\n\t\tawait options.set(\"emdash:site_title\", setupState.title);\n\t}\n\tif (setupState?.tagline && typeof setupState.tagline === \"string\") {\n\t\tawait options.set(\"emdash:site_tagline\", setupState.tagline);\n\t}\n\n\tawait options.set(\"emdash:setup_complete\", true);\n\tawait options.delete(\"emdash:setup_state\");\n}\n"],"mappings":";;;;;;;;;;;;AAsBA,eAAsB,cAAc,IAAqC;CACxE,MAAM,UAAU,IAAI,kBAAkB,GAAG;CAEzC,MAAM,gBAAgB,MAAM,QAAQ,IAAI,wBAAwB;AAChE,KAAI,kBAAkB,QAAQ,kBAAkB,OAAQ;CAGxD,MAAM,aAAa,MAAM,QAAQ,IAA6B,qBAAqB;AACnF,KAAI,YAAY,SAAS,OAAO,WAAW,UAAU,SACpD,OAAM,QAAQ,IAAI,qBAAqB,WAAW,MAAM;AAEzD,KAAI,YAAY,WAAW,OAAO,WAAW,YAAY,SACxD,OAAM,QAAQ,IAAI,uBAAuB,WAAW,QAAQ;AAG7D,OAAM,QAAQ,IAAI,yBAAyB,KAAK;AAChD,OAAM,QAAQ,OAAO,qBAAqB"}
@@ -0,0 +1,25 @@
1
+ //#region src/auth/setup-nonce.ts
2
+ /**
3
+ * Session binding for the first-setup admin-creation flow.
4
+ *
5
+ * Shared constants for the nonce cookie that ties /_emdash/api/setup/admin
6
+ * and /_emdash/api/setup/admin/verify to the same browser. Without this
7
+ * binding, any unauthenticated caller could POST /setup/admin during the
8
+ * setup window and substitute their own email into the stored setup state
9
+ * before the legitimate admin completes passkey verification.
10
+ *
11
+ * Implementation lives in the two route handlers; this module is just
12
+ * the name / lifetime so both ends agree.
13
+ */
14
+ /** Cookie name carrying the setup-admin session nonce. */
15
+ const SETUP_NONCE_COOKIE = "emdash_setup_nonce";
16
+ /**
17
+ * Cookie max-age in seconds. One hour is plenty of time to complete
18
+ * a passkey registration; if the user lingers longer the admin step
19
+ * can simply be retried.
20
+ */
21
+ const SETUP_NONCE_MAX_AGE_SECONDS = 3600;
22
+
23
+ //#endregion
24
+ export { SETUP_NONCE_MAX_AGE_SECONDS as n, SETUP_NONCE_COOKIE as t };
25
+ //# sourceMappingURL=setup-nonce-0EGuKM4s.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-nonce-0EGuKM4s.mjs","names":[],"sources":["../src/auth/setup-nonce.ts"],"sourcesContent":["/**\n * Session binding for the first-setup admin-creation flow.\n *\n * Shared constants for the nonce cookie that ties /_emdash/api/setup/admin\n * and /_emdash/api/setup/admin/verify to the same browser. Without this\n * binding, any unauthenticated caller could POST /setup/admin during the\n * setup window and substitute their own email into the stored setup state\n * before the legitimate admin completes passkey verification.\n *\n * Implementation lives in the two route handlers; this module is just\n * the name / lifetime so both ends agree.\n */\n\n/** Cookie name carrying the setup-admin session nonce. */\nexport const SETUP_NONCE_COOKIE = \"emdash_setup_nonce\";\n\n/**\n * Cookie max-age in seconds. One hour is plenty of time to complete\n * a passkey registration; if the user lingers longer the admin step\n * can simply be retried.\n */\nexport const SETUP_NONCE_MAX_AGE_SECONDS = 60 * 60;\n"],"mappings":";;;;;;;;;;;;;;AAcA,MAAa,qBAAqB;;;;;;AAOlC,MAAa,8BAA8B"}
@@ -0,0 +1,50 @@
1
+ import { i as settingMediaIds } from "./settings-DYidIB26.mjs";
2
+
3
+ //#region src/media/usage/site-settings.ts
4
+ /**
5
+ * Media references held by site settings.
6
+ *
7
+ * Usage reads parse these from the stored `site:*` options on every read, so
8
+ * a change through any writer of those options shows up on the next read.
9
+ */
10
+ const MEDIA_USAGE_SITE_SETTINGS = [
11
+ "logo",
12
+ "favicon",
13
+ "seo.defaultOgImage"
14
+ ];
15
+ /**
16
+ * One setting per option, which holds while each option has a single path in
17
+ * `SETTING_MEDIA_REFERENCE_PATHS`. A second path needs a setting of its own.
18
+ */
19
+ const SITE_SETTING_OPTIONS = [
20
+ ["site:logo", "logo"],
21
+ ["site:favicon", "favicon"],
22
+ ["site:seo", "seo.defaultOgImage"]
23
+ ];
24
+ const MEDIA_USAGE_SITE_SETTING_OPTIONS = SITE_SETTING_OPTIONS.map(([option]) => option);
25
+ /**
26
+ * Group the site settings that select each media item, in settings order.
27
+ *
28
+ * @param options Raw JSON option values keyed by option name.
29
+ */
30
+ function groupSiteSettingMediaUsage(options) {
31
+ const usage = /* @__PURE__ */ new Map();
32
+ for (const [option, setting] of SITE_SETTING_OPTIONS) for (const mediaId of settingMediaIds(option, parseOption(options.get(option)))) {
33
+ const settings = usage.get(mediaId);
34
+ if (settings) settings.push(setting);
35
+ else usage.set(mediaId, [setting]);
36
+ }
37
+ return usage;
38
+ }
39
+ function parseOption(value) {
40
+ if (value == null) return void 0;
41
+ try {
42
+ return JSON.parse(value);
43
+ } catch {
44
+ return;
45
+ }
46
+ }
47
+
48
+ //#endregion
49
+ export { MEDIA_USAGE_SITE_SETTING_OPTIONS as n, groupSiteSettingMediaUsage as r, MEDIA_USAGE_SITE_SETTINGS as t };
50
+ //# sourceMappingURL=site-settings-DOgRUoFX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-settings-DOgRUoFX.mjs","names":[],"sources":["../src/media/usage/site-settings.ts"],"sourcesContent":["/**\n * Media references held by site settings.\n *\n * Usage reads parse these from the stored `site:*` options on every read, so\n * a change through any writer of those options shows up on the next read.\n */\n\nimport { settingMediaIds, type PortableSettingName } from \"../../transfer/format/settings.js\";\n\nexport const MEDIA_USAGE_SITE_SETTINGS = [\"logo\", \"favicon\", \"seo.defaultOgImage\"] as const;\n\nexport type MediaUsageSiteSetting = (typeof MEDIA_USAGE_SITE_SETTINGS)[number];\n\n/**\n * One setting per option, which holds while each option has a single path in\n * `SETTING_MEDIA_REFERENCE_PATHS`. A second path needs a setting of its own.\n */\nconst SITE_SETTING_OPTIONS = [\n\t[\"site:logo\", \"logo\"],\n\t[\"site:favicon\", \"favicon\"],\n\t[\"site:seo\", \"seo.defaultOgImage\"],\n] as const satisfies readonly (readonly [PortableSettingName, MediaUsageSiteSetting])[];\n\nexport const MEDIA_USAGE_SITE_SETTING_OPTIONS = SITE_SETTING_OPTIONS.map(([option]) => option);\n\n/**\n * Group the site settings that select each media item, in settings order.\n *\n * @param options Raw JSON option values keyed by option name.\n */\nexport function groupSiteSettingMediaUsage(\n\toptions: ReadonlyMap<string, string | null>,\n): Map<string, MediaUsageSiteSetting[]> {\n\tconst usage = new Map<string, MediaUsageSiteSetting[]>();\n\tfor (const [option, setting] of SITE_SETTING_OPTIONS) {\n\t\tfor (const mediaId of settingMediaIds(option, parseOption(options.get(option)))) {\n\t\t\tconst settings = usage.get(mediaId);\n\t\t\tif (settings) settings.push(setting);\n\t\t\telse usage.set(mediaId, [setting]);\n\t\t}\n\t}\n\treturn usage;\n}\n\nfunction parseOption(value: string | null | undefined): unknown {\n\tif (value == null) return undefined;\n\ttry {\n\t\treturn JSON.parse(value);\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n"],"mappings":";;;;;;;;;AASA,MAAa,4BAA4B;CAAC;CAAQ;CAAW;CAAqB;;;;;AAQlF,MAAM,uBAAuB;CAC5B,CAAC,aAAa,OAAO;CACrB,CAAC,gBAAgB,UAAU;CAC3B,CAAC,YAAY,qBAAqB;CAClC;AAED,MAAa,mCAAmC,qBAAqB,KAAK,CAAC,YAAY,OAAO;;;;;;AAO9F,SAAgB,2BACf,SACuC;CACvC,MAAM,wBAAQ,IAAI,KAAsC;AACxD,MAAK,MAAM,CAAC,QAAQ,YAAY,qBAC/B,MAAK,MAAM,WAAW,gBAAgB,QAAQ,YAAY,QAAQ,IAAI,OAAO,CAAC,CAAC,EAAE;EAChF,MAAM,WAAW,MAAM,IAAI,QAAQ;AACnC,MAAI,SAAU,UAAS,KAAK,QAAQ;MAC/B,OAAM,IAAI,SAAS,CAAC,QAAQ,CAAC;;AAGpC,QAAO;;AAGR,SAAS,YAAY,OAA2C;AAC/D,KAAI,SAAS,KAAM,QAAO;AAC1B,KAAI;AACH,SAAO,KAAK,MAAM,MAAM;SACjB;AACP"}
@@ -0,0 +1,16 @@
1
+ import { t as OptionsRepository } from "./options-DhrI7eMv.mjs";
2
+ import { t as getConfiguredOrigin } from "./public-url-Bn7U0D7-.mjs";
3
+
4
+ //#region src/api/site-url.ts
5
+ async function getSiteBaseUrl(db, request, config) {
6
+ const configured = getConfiguredOrigin(config);
7
+ if (configured) return `${configured}/_emdash`;
8
+ const storedUrl = await new OptionsRepository(db).get("emdash:site_url");
9
+ if (storedUrl) return `${storedUrl}/_emdash`;
10
+ const url = new URL(request.url);
11
+ return `${url.protocol}//${url.host}/_emdash`;
12
+ }
13
+
14
+ //#endregion
15
+ export { getSiteBaseUrl as t };
16
+ //# sourceMappingURL=site-url-BU_bbxwj.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-url-BU_bbxwj.mjs","names":[],"sources":["../src/api/site-url.ts"],"sourcesContent":["/**\n * Resolve the canonical site base URL for use in outbound links (emails, etc.).\n *\n * Precedence mirrors `getPublicOrigin`: the operator-configured origin\n * (`config.siteUrl`, then the `EMDASH_SITE_URL`/`SITE_URL` env vars) wins,\n * then the stored `emdash:site_url` option (written once during setup on the\n * real domain), and only before setup completes does the request URL fill in.\n * A configured or stored value always beats the request, so Host header\n * spoofing cannot redirect users to attacker-controlled domains.\n */\n\nimport type { Kysely } from \"kysely\";\n\nimport { OptionsRepository } from \"../database/repositories/options.js\";\nimport type { Database } from \"../database/types.js\";\nimport { getConfiguredOrigin, type SiteUrlConfig } from \"./public-url.js\";\n\nexport async function getSiteBaseUrl(\n\tdb: Kysely<Database>,\n\trequest: Request,\n\tconfig?: SiteUrlConfig,\n): Promise<string> {\n\tconst configured = getConfiguredOrigin(config);\n\tif (configured) {\n\t\treturn `${configured}/_emdash`;\n\t}\n\tconst options = new OptionsRepository(db);\n\tconst storedUrl = await options.get<string>(\"emdash:site_url\");\n\tif (storedUrl) {\n\t\treturn `${storedUrl}/_emdash`;\n\t}\n\t// Fallback: derive from request (only reached before setup completes)\n\tconst url = new URL(request.url);\n\treturn `${url.protocol}//${url.host}/_emdash`;\n}\n"],"mappings":";;;;AAiBA,eAAsB,eACrB,IACA,SACA,QACkB;CAClB,MAAM,aAAa,oBAAoB,OAAO;AAC9C,KAAI,WACH,QAAO,GAAG,WAAW;CAGtB,MAAM,YAAY,MADF,IAAI,kBAAkB,GAAG,CACT,IAAY,kBAAkB;AAC9D,KAAI,UACH,QAAO,GAAG,UAAU;CAGrB,MAAM,MAAM,IAAI,IAAI,QAAQ,IAAI;AAChC,QAAO,GAAG,IAAI,SAAS,IAAI,IAAI,KAAK"}
@@ -0,0 +1,414 @@
1
+ import { m as listTablesLike, p as listTableColumns } from "./dialect-helpers-7_IqPdh9.mjs";
2
+ import { sql } from "kysely";
3
+
4
+ //#region src/api/handlers/snapshot.ts
5
+ /**
6
+ * Verify HMAC-SHA256 preview signature using crypto.subtle.
7
+ * Returns true if the signature is valid and not expired.
8
+ */
9
+ async function verifyPreviewSignature(source, exp, sig, secret) {
10
+ if (exp < Date.now() / 1e3) return false;
11
+ const encoder = new TextEncoder();
12
+ const key = await crypto.subtle.importKey("raw", encoder.encode(secret), {
13
+ name: "HMAC",
14
+ hash: "SHA-256"
15
+ }, false, ["verify"]);
16
+ const sigBytes = new Uint8Array(sig.length / 2);
17
+ for (let i = 0; i < sig.length; i += 2) sigBytes[i / 2] = parseInt(sig.substring(i, i + 2), 16);
18
+ return crypto.subtle.verify("HMAC", key, sigBytes, encoder.encode(`${source}:${exp}`));
19
+ }
20
+ /**
21
+ * Parse an X-Preview-Signature header value into its components.
22
+ *
23
+ * Format: "source:exp:sig" where source is a URL (contains colons),
24
+ * exp is a unix timestamp, and sig is 64 hex chars.
25
+ *
26
+ * Parses from the right since source URLs contain colons.
27
+ *
28
+ * @returns Parsed components, or null if the format is invalid
29
+ */
30
+ function parsePreviewSignatureHeader(header) {
31
+ const lastColon = header.lastIndexOf(":");
32
+ if (lastColon <= 0) return null;
33
+ const sig = header.substring(lastColon + 1);
34
+ if (sig.length !== 64) return null;
35
+ const rest = header.substring(0, lastColon);
36
+ const secondLastColon = rest.lastIndexOf(":");
37
+ if (secondLastColon <= 0) return null;
38
+ const source = rest.substring(0, secondLastColon);
39
+ const exp = parseInt(rest.substring(secondLastColon + 1), 10);
40
+ if (isNaN(exp) || source.length === 0) return null;
41
+ return {
42
+ source,
43
+ exp,
44
+ sig
45
+ };
46
+ }
47
+ const MEDIA_FILE_PREFIX = "/_emdash/api/media/file/";
48
+ const MEDIA_FILE_SUFFIX = /[?#]/;
49
+ const EXTERNAL_OR_ROOT_URL = /^(?:[a-z][a-z0-9+.-]*:|\/)/i;
50
+ /**
51
+ * Parse a JSON string value and inject `src` for local media objects.
52
+ * Returns the original string if it's not a local media value.
53
+ */
54
+ function injectMediaSrc(jsonStr, origin) {
55
+ try {
56
+ const obj = JSON.parse(jsonStr);
57
+ if (typeof obj !== "object" || obj === null || Array.isArray(obj)) return jsonStr;
58
+ if (injectMediaSrcInto(obj, origin)) return JSON.stringify(obj);
59
+ return jsonStr;
60
+ } catch {
61
+ return jsonStr;
62
+ }
63
+ }
64
+ function isRecord(value) {
65
+ return typeof value === "object" && value !== null && !Array.isArray(value);
66
+ }
67
+ /**
68
+ * Recursively walk an object and inject `src` into local media values.
69
+ * Returns true if any modifications were made.
70
+ */
71
+ function injectMediaSrcInto(obj, origin) {
72
+ let modified = false;
73
+ if ((obj.provider === "local" || !obj.provider && obj.id && obj.meta) && !obj.src) {
74
+ const storageKey = (isRecord(obj.meta) ? obj.meta : void 0)?.storageKey ?? obj.id;
75
+ if (typeof storageKey === "string" && storageKey) {
76
+ obj.src = `${origin}${MEDIA_FILE_PREFIX}${storageKey}`;
77
+ modified = true;
78
+ }
79
+ }
80
+ for (const value of Object.values(obj)) if (Array.isArray(value)) {
81
+ for (const item of value) if (isRecord(item)) {
82
+ if (injectMediaSrcInto(item, origin)) modified = true;
83
+ }
84
+ } else if (isRecord(value)) {
85
+ if (injectMediaSrcInto(value, origin)) modified = true;
86
+ }
87
+ return modified;
88
+ }
89
+ /**
90
+ * Safe identifier pattern for snapshot table names.
91
+ * More permissive than validateIdentifier() — allows leading underscores
92
+ * (needed for system tables like _emdash_collections).
93
+ */
94
+ const SAFE_TABLE_NAME = /^[a-z_][a-z0-9_]*$/;
95
+ /**
96
+ * System tables included in snapshots.
97
+ * Content tables (ec_*) are discovered dynamically.
98
+ */
99
+ const SYSTEM_TABLES = [
100
+ "_emdash_block_types",
101
+ "_emdash_block_type_versions",
102
+ "_emdash_collections",
103
+ "_emdash_fields",
104
+ "_emdash_taxonomy_defs",
105
+ "_emdash_taxonomy_def_groups",
106
+ "_emdash_menus",
107
+ "_emdash_menu_items",
108
+ "_emdash_sections",
109
+ "_emdash_widget_areas",
110
+ "_emdash_widgets",
111
+ "_emdash_seo",
112
+ "_emdash_migrations",
113
+ "content_taxonomies",
114
+ "taxonomies",
115
+ "options",
116
+ "media",
117
+ "revisions"
118
+ ];
119
+ /**
120
+ * Published snapshots are available to preview-signature callers, so every
121
+ * system table must be classified explicitly. Adding a snapshot table without
122
+ * choosing a policy is a type error rather than an accidental data export.
123
+ */
124
+ const PUBLISHED_TABLE_POLICIES = {
125
+ _emdash_block_types: "full",
126
+ _emdash_block_type_versions: "full",
127
+ _emdash_collections: "full",
128
+ _emdash_fields: "full",
129
+ _emdash_taxonomy_defs: "full",
130
+ _emdash_taxonomy_def_groups: "full",
131
+ _emdash_menus: "full",
132
+ _emdash_menu_items: "content-linked",
133
+ _emdash_sections: "full",
134
+ _emdash_widget_areas: "full",
135
+ _emdash_widgets: "full",
136
+ _emdash_seo: "content-linked",
137
+ _emdash_migrations: "full",
138
+ content_taxonomies: "content-linked",
139
+ taxonomies: "content-linked",
140
+ options: "content-linked",
141
+ media: "content-linked",
142
+ revisions: "omit"
143
+ };
144
+ const SYSTEM_TABLE_SET = new Set(SYSTEM_TABLES);
145
+ function isSystemTable(tableName) {
146
+ return SYSTEM_TABLE_SET.has(tableName);
147
+ }
148
+ /**
149
+ * Table name prefixes excluded from snapshots (auth/security data).
150
+ */
151
+ const EXCLUDED_PREFIXES = [
152
+ "_emdash_api_tokens",
153
+ "_emdash_oauth_tokens",
154
+ "_emdash_authorization_codes",
155
+ "_emdash_device_codes",
156
+ "_emdash_migrations_lock",
157
+ "_emdash_transfer_",
158
+ "_plugin_",
159
+ "users",
160
+ "sessions",
161
+ "credentials",
162
+ "challenges"
163
+ ];
164
+ /**
165
+ * Options key prefixes safe for inclusion in snapshots.
166
+ *
167
+ * The options table contains plugin secrets (plugin:*), passkey challenges
168
+ * (emdash:passkey_pending:*), and setup state that must not leak to
169
+ * preview databases. Only site-level rendering settings are needed.
170
+ */
171
+ const SAFE_OPTIONS_PREFIXES = ["site:"];
172
+ function isExcluded(tableName) {
173
+ return EXCLUDED_PREFIXES.some((prefix) => tableName.startsWith(prefix));
174
+ }
175
+ function normalizeColumnType(type) {
176
+ switch (type.toLowerCase()) {
177
+ case "smallint":
178
+ case "integer":
179
+ case "bigint":
180
+ case "boolean": return "INTEGER";
181
+ case "real":
182
+ case "double precision":
183
+ case "numeric":
184
+ case "decimal": return "REAL";
185
+ case "blob":
186
+ case "bytea": return "BLOB";
187
+ case "json":
188
+ case "jsonb": return "JSON";
189
+ default: return "TEXT";
190
+ }
191
+ }
192
+ function normalizeRows(rows, types) {
193
+ for (const row of rows) for (const [column, type] of Object.entries(types)) {
194
+ const value = row[column];
195
+ if (type === "JSON" && value !== null && value !== void 0 && typeof value !== "string") row[column] = JSON.stringify(value);
196
+ }
197
+ return rows;
198
+ }
199
+ function createPublishedProjection() {
200
+ return {
201
+ content: /* @__PURE__ */ new Map(),
202
+ taxonomyGroups: /* @__PURE__ */ new Set(),
203
+ mediaIds: /* @__PURE__ */ new Set(),
204
+ mediaStorageKeys: /* @__PURE__ */ new Set()
205
+ };
206
+ }
207
+ function readString(value) {
208
+ return typeof value === "string" && value.length > 0 ? value : null;
209
+ }
210
+ function recordPublishedContent(projection, tableName, rows) {
211
+ const references = {
212
+ ids: /* @__PURE__ */ new Set(),
213
+ translationGroups: /* @__PURE__ */ new Set()
214
+ };
215
+ for (const row of rows) {
216
+ const id = readString(row.id);
217
+ const translationGroup = readString(row.translation_group);
218
+ if (id) references.ids.add(id);
219
+ if (translationGroup) references.translationGroups.add(translationGroup);
220
+ }
221
+ projection.content.set(tableName.slice(3), references);
222
+ }
223
+ function isPublishedContentReference(projection, collection, reference) {
224
+ const collectionName = readString(collection);
225
+ const id = readString(reference);
226
+ if (!collectionName || !id) return false;
227
+ const references = projection.content.get(collectionName);
228
+ return references?.ids.has(id) === true || references?.translationGroups.has(id) === true;
229
+ }
230
+ function collectMediaReferences(value, projection) {
231
+ if (typeof value === "string") {
232
+ if (value.startsWith(MEDIA_FILE_PREFIX)) {
233
+ const storageKey = value.slice(24).split(MEDIA_FILE_SUFFIX, 1)[0];
234
+ if (storageKey) projection.mediaStorageKeys.add(storageKey);
235
+ return;
236
+ }
237
+ const trimmed = value.trimStart();
238
+ if (trimmed.startsWith("{") || trimmed.startsWith("[")) try {
239
+ collectMediaReferences(JSON.parse(value), projection);
240
+ } catch {}
241
+ return;
242
+ }
243
+ if (Array.isArray(value)) {
244
+ for (const item of value) collectMediaReferences(item, projection);
245
+ return;
246
+ }
247
+ if (!isRecord(value)) return;
248
+ const mediaId = readString(value.mediaId);
249
+ if (mediaId) projection.mediaIds.add(mediaId);
250
+ const provider = readString(value.provider);
251
+ const meta = isRecord(value.meta) ? value.meta : null;
252
+ const localMediaId = readString(value.id);
253
+ if ((provider === "local" || !provider && meta) && localMediaId) projection.mediaIds.add(localMediaId);
254
+ const storageKey = readString(value.storageKey) ?? readString(meta?.storageKey);
255
+ if (storageKey) projection.mediaStorageKeys.add(storageKey);
256
+ const assetRef = readString((isRecord(value.asset) ? value.asset : null)?._ref);
257
+ if (assetRef) {
258
+ projection.mediaIds.add(assetRef);
259
+ projection.mediaStorageKeys.add(assetRef);
260
+ }
261
+ for (const child of Object.values(value)) collectMediaReferences(child, projection);
262
+ }
263
+ function projectTaxonomyRows(rows, projection) {
264
+ const includedGroups = new Set(projection.taxonomyGroups);
265
+ const includedIds = new Set(projection.taxonomyGroups);
266
+ let changed = true;
267
+ while (changed) {
268
+ changed = false;
269
+ for (const row of rows) {
270
+ const id = readString(row.id);
271
+ const group = readString(row.translation_group);
272
+ if (!id) continue;
273
+ if (includedIds.has(id) || group && includedGroups.has(group)) {
274
+ if (!includedIds.has(id)) {
275
+ includedIds.add(id);
276
+ changed = true;
277
+ }
278
+ if (group && !includedGroups.has(group)) {
279
+ includedGroups.add(group);
280
+ changed = true;
281
+ }
282
+ const parentId = readString(row.parent_id);
283
+ if (parentId && !includedIds.has(parentId)) {
284
+ includedIds.add(parentId);
285
+ changed = true;
286
+ }
287
+ }
288
+ }
289
+ }
290
+ return rows.filter((row) => {
291
+ const id = readString(row.id);
292
+ const group = readString(row.translation_group);
293
+ return id && includedIds.has(id) || group && includedGroups.has(group);
294
+ });
295
+ }
296
+ function projectPublishedRows(tableName, rows, projection) {
297
+ switch (tableName) {
298
+ case "_emdash_seo": return rows.filter((row) => {
299
+ if (!isPublishedContentReference(projection, row.collection, row.content_id)) return false;
300
+ const image = readString(row.seo_image);
301
+ if (image) {
302
+ collectMediaReferences(image, projection);
303
+ if (!EXTERNAL_OR_ROOT_URL.test(image)) {
304
+ projection.mediaIds.add(image);
305
+ projection.mediaStorageKeys.add(image);
306
+ }
307
+ }
308
+ return true;
309
+ });
310
+ case "content_taxonomies": return rows.filter((row) => {
311
+ const published = isPublishedContentReference(projection, row.collection, row.entry_id);
312
+ const taxonomyGroup = readString(row.taxonomy_id);
313
+ if (published && taxonomyGroup) projection.taxonomyGroups.add(taxonomyGroup);
314
+ return published;
315
+ });
316
+ case "taxonomies": return projectTaxonomyRows(rows, projection);
317
+ case "_emdash_menu_items": return rows.filter((row) => {
318
+ const type = readString(row.type);
319
+ const referenceId = readString(row.reference_id);
320
+ if (!referenceId || type === "custom") return true;
321
+ if (type === "taxonomy") {
322
+ projection.taxonomyGroups.add(referenceId);
323
+ return true;
324
+ }
325
+ if (type === "collection" && !row.reference_id) return true;
326
+ return isPublishedContentReference(projection, readString(row.reference_collection) ?? (type === "post" || type === "page" ? `${type}s` : null), referenceId);
327
+ });
328
+ case "media": return rows.filter((row) => {
329
+ const id = readString(row.id);
330
+ const storageKey = readString(row.storage_key);
331
+ return id !== null && projection.mediaIds.has(id) || storageKey !== null && projection.mediaStorageKeys.has(storageKey);
332
+ });
333
+ case "options": return rows;
334
+ default: return [];
335
+ }
336
+ }
337
+ /**
338
+ * Generate a portable database snapshot.
339
+ *
340
+ * Discovers ec_* content tables dynamically, exports system tables
341
+ * needed for rendering, and includes schema info for table recreation.
342
+ */
343
+ async function generateSnapshot(db, options) {
344
+ const includeDrafts = options?.includeDrafts ?? false;
345
+ const includeTrashed = options?.includeTrashed ?? false;
346
+ const optionPrefixes = options?.optionPrefixes ?? SAFE_OPTIONS_PREFIXES;
347
+ const optionKeys = new Set(options?.optionKeys);
348
+ const publishedOnly = !includeDrafts && !includeTrashed;
349
+ const publishedProjection = createPublishedProjection();
350
+ const allTables = [...await listTablesLike(db, "ec_%"), ...SYSTEM_TABLES];
351
+ const tables = {};
352
+ const schema = {};
353
+ for (const tableName of allTables) {
354
+ if (isExcluded(tableName)) continue;
355
+ if (!SAFE_TABLE_NAME.test(tableName)) continue;
356
+ const columnInfo = await listTableColumns(db, tableName);
357
+ if (columnInfo.length === 0) continue;
358
+ const columns = columnInfo.map((column) => column.name);
359
+ const types = {};
360
+ for (const column of columnInfo) types[column.name] = normalizeColumnType(column.type);
361
+ schema[tableName] = {
362
+ columns,
363
+ types
364
+ };
365
+ let rows;
366
+ if (tableName.startsWith("ec_")) if (includeTrashed) rows = (await sql`
367
+ SELECT * FROM ${sql.ref(tableName)}
368
+ `.execute(db)).rows;
369
+ else if (includeDrafts) rows = (await sql`
370
+ SELECT * FROM ${sql.ref(tableName)}
371
+ WHERE deleted_at IS NULL
372
+ `.execute(db)).rows;
373
+ else rows = (await sql`
374
+ SELECT * FROM ${sql.ref(tableName)}
375
+ WHERE deleted_at IS NULL
376
+ AND status = 'published'
377
+ `.execute(db)).rows;
378
+ else if (publishedOnly && isSystemTable(tableName) && PUBLISHED_TABLE_POLICIES[tableName] === "omit") rows = [];
379
+ else if (tableName === "options") rows = (await sql`
380
+ SELECT * FROM ${sql.ref(tableName)}
381
+ `.execute(db)).rows.filter((row) => {
382
+ const name = typeof row.name === "string" ? row.name : "";
383
+ return optionKeys.has(name) || optionPrefixes.some((prefix) => name.startsWith(prefix));
384
+ });
385
+ else rows = (await sql`
386
+ SELECT * FROM ${sql.ref(tableName)}
387
+ `.execute(db)).rows;
388
+ if (publishedOnly) {
389
+ if (tableName.startsWith("ec_")) recordPublishedContent(publishedProjection, tableName, rows);
390
+ else if (isSystemTable(tableName) && PUBLISHED_TABLE_POLICIES[tableName] === "content-linked") rows = projectPublishedRows(tableName, rows, publishedProjection);
391
+ for (const row of rows) collectMediaReferences(row, publishedProjection);
392
+ }
393
+ if (rows.length > 0) tables[tableName] = normalizeRows(rows, types);
394
+ }
395
+ if (options?.origin) {
396
+ const origin = options.origin;
397
+ for (const [tableName, rows] of Object.entries(tables)) {
398
+ if (!tableName.startsWith("ec_")) continue;
399
+ for (const row of rows) for (const [col, value] of Object.entries(row)) {
400
+ if (typeof value !== "string" || !value.startsWith("{")) continue;
401
+ row[col] = injectMediaSrc(value, origin);
402
+ }
403
+ }
404
+ }
405
+ return {
406
+ tables,
407
+ schema,
408
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString()
409
+ };
410
+ }
411
+
412
+ //#endregion
413
+ export { parsePreviewSignatureHeader as n, verifyPreviewSignature as r, generateSnapshot as t };
414
+ //# sourceMappingURL=snapshot-PawoX-WG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-PawoX-WG.mjs","names":[],"sources":["../src/api/handlers/snapshot.ts"],"sourcesContent":["/**\n * Snapshot handler — generates a portable database snapshot.\n *\n * Returns all content tables, schema definitions, and supporting data\n * needed to render content in an isolated preview database.\n *\n * Used by:\n * - DO preview database (EmDashPreviewDB.populateFromSnapshot)\n * - Future: CLI export, backup, site migration\n */\n\nimport type { Kysely } from \"kysely\";\nimport { sql } from \"kysely\";\n\nimport { listTableColumns, listTablesLike } from \"../../database/dialect-helpers.js\";\nimport type { Database } from \"../../database/types.js\";\n\n// ─�� Preview signature verification ──────────────────────────────\n\n/**\n * Verify HMAC-SHA256 preview signature using crypto.subtle.\n * Returns true if the signature is valid and not expired.\n */\nexport async function verifyPreviewSignature(\n\tsource: string,\n\texp: number,\n\tsig: string,\n\tsecret: string,\n): Promise<boolean> {\n\tif (exp < Date.now() / 1000) return false;\n\n\tconst encoder = new TextEncoder();\n\tconst key = await crypto.subtle.importKey(\n\t\t\"raw\",\n\t\tencoder.encode(secret),\n\t\t{ name: \"HMAC\", hash: \"SHA-256\" },\n\t\tfalse,\n\t\t[\"verify\"],\n\t);\n\n\tconst sigBytes = new Uint8Array(sig.length / 2);\n\tfor (let i = 0; i < sig.length; i += 2) {\n\t\tsigBytes[i / 2] = parseInt(sig.substring(i, i + 2), 16);\n\t}\n\n\treturn crypto.subtle.verify(\"HMAC\", key, sigBytes, encoder.encode(`${source}:${exp}`));\n}\n\n/**\n * Parse an X-Preview-Signature header value into its components.\n *\n * Format: \"source:exp:sig\" where source is a URL (contains colons),\n * exp is a unix timestamp, and sig is 64 hex chars.\n *\n * Parses from the right since source URLs contain colons.\n *\n * @returns Parsed components, or null if the format is invalid\n */\nexport function parsePreviewSignatureHeader(\n\theader: string,\n): { source: string; exp: number; sig: string } | null {\n\tconst lastColon = header.lastIndexOf(\":\");\n\tif (lastColon <= 0) return null;\n\n\tconst sig = header.substring(lastColon + 1);\n\tif (sig.length !== 64) return null;\n\n\tconst rest = header.substring(0, lastColon);\n\tconst secondLastColon = rest.lastIndexOf(\":\");\n\tif (secondLastColon <= 0) return null;\n\n\tconst source = rest.substring(0, secondLastColon);\n\tconst exp = parseInt(rest.substring(secondLastColon + 1), 10);\n\n\tif (isNaN(exp) || source.length === 0) return null;\n\n\treturn { source, exp, sig };\n}\n\n// ── Media URL rewriting ─────────────────────────────────────────\n\nconst MEDIA_FILE_PREFIX = \"/_emdash/api/media/file/\";\nconst MEDIA_FILE_SUFFIX = /[?#]/;\nconst EXTERNAL_OR_ROOT_URL = /^(?:[a-z][a-z0-9+.-]*:|\\/)/i;\n\n/**\n * Parse a JSON string value and inject `src` for local media objects.\n * Returns the original string if it's not a local media value.\n */\nfunction injectMediaSrc(jsonStr: string, origin: string): string {\n\ttry {\n\t\tconst obj = JSON.parse(jsonStr);\n\t\tif (typeof obj !== \"object\" || obj === null || Array.isArray(obj)) return jsonStr;\n\t\tif (injectMediaSrcInto(obj, origin)) {\n\t\t\treturn JSON.stringify(obj);\n\t\t}\n\t\treturn jsonStr;\n\t} catch {\n\t\treturn jsonStr;\n\t}\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/**\n * Recursively walk an object and inject `src` into local media values.\n * Returns true if any modifications were made.\n */\nfunction injectMediaSrcInto(obj: Record<string, unknown>, origin: string): boolean {\n\tlet modified = false;\n\n\t// Check if this object itself is a local media value\n\tif ((obj.provider === \"local\" || (!obj.provider && obj.id && obj.meta)) && !obj.src) {\n\t\tconst meta = isRecord(obj.meta) ? obj.meta : undefined;\n\t\tconst storageKey = meta?.storageKey ?? obj.id;\n\t\tif (typeof storageKey === \"string\" && storageKey) {\n\t\t\tobj.src = `${origin}${MEDIA_FILE_PREFIX}${storageKey}`;\n\t\t\tmodified = true;\n\t\t}\n\t}\n\n\t// Recurse into nested objects/arrays (e.g. Portable Text with image blocks)\n\tfor (const value of Object.values(obj)) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (const item of value) {\n\t\t\t\tif (isRecord(item)) {\n\t\t\t\t\tif (injectMediaSrcInto(item, origin)) {\n\t\t\t\t\t\tmodified = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isRecord(value)) {\n\t\t\tif (injectMediaSrcInto(value, origin)) {\n\t\t\t\tmodified = true;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn modified;\n}\n\n// ── Snapshot generation ─────────────────────────────────────────\n\n/**\n * Safe identifier pattern for snapshot table names.\n * More permissive than validateIdentifier() — allows leading underscores\n * (needed for system tables like _emdash_collections).\n */\nconst SAFE_TABLE_NAME = /^[a-z_][a-z0-9_]*$/;\n\n/** Snapshot shape consumed by the DO preview database */\nexport interface Snapshot {\n\ttables: Record<string, Record<string, unknown>[]>;\n\tschema: Record<\n\t\tstring,\n\t\t{\n\t\t\tcolumns: string[];\n\t\t\ttypes?: Record<string, string>;\n\t\t}\n\t>;\n\tgeneratedAt: string;\n}\n\n/**\n * System tables included in snapshots.\n * Content tables (ec_*) are discovered dynamically.\n */\nconst SYSTEM_TABLES = [\n\t\"_emdash_block_types\",\n\t\"_emdash_block_type_versions\",\n\t\"_emdash_collections\",\n\t\"_emdash_fields\",\n\t\"_emdash_taxonomy_defs\",\n\t\"_emdash_taxonomy_def_groups\",\n\t\"_emdash_menus\",\n\t\"_emdash_menu_items\",\n\t\"_emdash_sections\",\n\t\"_emdash_widget_areas\",\n\t\"_emdash_widgets\",\n\t\"_emdash_seo\",\n\t\"_emdash_migrations\",\n\t\"content_taxonomies\",\n\t\"taxonomies\",\n\t\"options\",\n\t\"media\",\n\t\"revisions\",\n] as const;\n\ntype SystemTable = (typeof SYSTEM_TABLES)[number];\ntype PublishedTablePolicy = \"full\" | \"content-linked\" | \"omit\";\n\n/**\n * Published snapshots are available to preview-signature callers, so every\n * system table must be classified explicitly. Adding a snapshot table without\n * choosing a policy is a type error rather than an accidental data export.\n */\nconst PUBLISHED_TABLE_POLICIES: Record<SystemTable, PublishedTablePolicy> = {\n\t_emdash_block_types: \"full\",\n\t_emdash_block_type_versions: \"full\",\n\t_emdash_collections: \"full\",\n\t_emdash_fields: \"full\",\n\t_emdash_taxonomy_defs: \"full\",\n\t_emdash_taxonomy_def_groups: \"full\",\n\t_emdash_menus: \"full\",\n\t_emdash_menu_items: \"content-linked\",\n\t_emdash_sections: \"full\",\n\t_emdash_widget_areas: \"full\",\n\t_emdash_widgets: \"full\",\n\t_emdash_seo: \"content-linked\",\n\t_emdash_migrations: \"full\",\n\tcontent_taxonomies: \"content-linked\",\n\ttaxonomies: \"content-linked\",\n\toptions: \"content-linked\",\n\tmedia: \"content-linked\",\n\trevisions: \"omit\",\n};\n\nconst SYSTEM_TABLE_SET: ReadonlySet<string> = new Set(SYSTEM_TABLES);\n\nfunction isSystemTable(tableName: string): tableName is SystemTable {\n\treturn SYSTEM_TABLE_SET.has(tableName);\n}\n\ninterface PublishedContentReferences {\n\tids: Set<string>;\n\ttranslationGroups: Set<string>;\n}\n\ninterface PublishedProjection {\n\tcontent: Map<string, PublishedContentReferences>;\n\ttaxonomyGroups: Set<string>;\n\tmediaIds: Set<string>;\n\tmediaStorageKeys: Set<string>;\n}\n\n/**\n * Table name prefixes excluded from snapshots (auth/security data).\n */\nconst EXCLUDED_PREFIXES = [\n\t\"_emdash_api_tokens\",\n\t\"_emdash_oauth_tokens\",\n\t\"_emdash_authorization_codes\",\n\t\"_emdash_device_codes\",\n\t\"_emdash_migrations_lock\",\n\t\"_emdash_transfer_\",\n\t\"_plugin_\",\n\t\"users\",\n\t\"sessions\",\n\t\"credentials\",\n\t\"challenges\",\n];\n\n/**\n * Options key prefixes safe for inclusion in snapshots.\n *\n * The options table contains plugin secrets (plugin:*), passkey challenges\n * (emdash:passkey_pending:*), and setup state that must not leak to\n * preview databases. Only site-level rendering settings are needed.\n */\nconst SAFE_OPTIONS_PREFIXES = [\"site:\"];\n\nfunction isExcluded(tableName: string): boolean {\n\treturn EXCLUDED_PREFIXES.some((prefix) => tableName.startsWith(prefix));\n}\n\ntype SnapshotColumnType = \"TEXT\" | \"INTEGER\" | \"REAL\" | \"BLOB\" | \"JSON\";\n\nfunction normalizeColumnType(type: string): SnapshotColumnType {\n\tswitch (type.toLowerCase()) {\n\t\tcase \"smallint\":\n\t\tcase \"integer\":\n\t\tcase \"bigint\":\n\t\tcase \"boolean\":\n\t\t\treturn \"INTEGER\";\n\t\tcase \"real\":\n\t\tcase \"double precision\":\n\t\tcase \"numeric\":\n\t\tcase \"decimal\":\n\t\t\treturn \"REAL\";\n\t\tcase \"blob\":\n\t\tcase \"bytea\":\n\t\t\treturn \"BLOB\";\n\t\tcase \"json\":\n\t\tcase \"jsonb\":\n\t\t\treturn \"JSON\";\n\t\tdefault:\n\t\t\treturn \"TEXT\";\n\t}\n}\n\nfunction normalizeRows(\n\trows: Record<string, unknown>[],\n\ttypes: Record<string, SnapshotColumnType>,\n): Record<string, unknown>[] {\n\tfor (const row of rows) {\n\t\tfor (const [column, type] of Object.entries(types)) {\n\t\t\tconst value = row[column];\n\t\t\tif (type === \"JSON\" && value !== null && value !== undefined && typeof value !== \"string\") {\n\t\t\t\trow[column] = JSON.stringify(value);\n\t\t\t}\n\t\t}\n\t}\n\treturn rows;\n}\n\nfunction createPublishedProjection(): PublishedProjection {\n\treturn {\n\t\tcontent: new Map(),\n\t\ttaxonomyGroups: new Set(),\n\t\tmediaIds: new Set(),\n\t\tmediaStorageKeys: new Set(),\n\t};\n}\n\nfunction readString(value: unknown): string | null {\n\treturn typeof value === \"string\" && value.length > 0 ? value : null;\n}\n\nfunction recordPublishedContent(\n\tprojection: PublishedProjection,\n\ttableName: string,\n\trows: Record<string, unknown>[],\n): void {\n\tconst references: PublishedContentReferences = {\n\t\tids: new Set(),\n\t\ttranslationGroups: new Set(),\n\t};\n\tfor (const row of rows) {\n\t\tconst id = readString(row.id);\n\t\tconst translationGroup = readString(row.translation_group);\n\t\tif (id) references.ids.add(id);\n\t\tif (translationGroup) references.translationGroups.add(translationGroup);\n\t}\n\tprojection.content.set(tableName.slice(\"ec_\".length), references);\n}\n\nfunction isPublishedContentReference(\n\tprojection: PublishedProjection,\n\tcollection: unknown,\n\treference: unknown,\n): boolean {\n\tconst collectionName = readString(collection);\n\tconst id = readString(reference);\n\tif (!collectionName || !id) return false;\n\tconst references = projection.content.get(collectionName);\n\treturn references?.ids.has(id) === true || references?.translationGroups.has(id) === true;\n}\n\nfunction collectMediaReferences(value: unknown, projection: PublishedProjection): void {\n\tif (typeof value === \"string\") {\n\t\tif (value.startsWith(MEDIA_FILE_PREFIX)) {\n\t\t\tconst storageKey = value.slice(MEDIA_FILE_PREFIX.length).split(MEDIA_FILE_SUFFIX, 1)[0];\n\t\t\tif (storageKey) projection.mediaStorageKeys.add(storageKey);\n\t\t\treturn;\n\t\t}\n\t\tconst trimmed = value.trimStart();\n\t\tif (trimmed.startsWith(\"{\") || trimmed.startsWith(\"[\")) {\n\t\t\ttry {\n\t\t\t\tcollectMediaReferences(JSON.parse(value), projection);\n\t\t\t} catch {\n\t\t\t\t// Not structured data.\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n\tif (Array.isArray(value)) {\n\t\tfor (const item of value) collectMediaReferences(item, projection);\n\t\treturn;\n\t}\n\tif (!isRecord(value)) return;\n\n\tconst mediaId = readString(value.mediaId);\n\tif (mediaId) projection.mediaIds.add(mediaId);\n\n\tconst provider = readString(value.provider);\n\tconst meta = isRecord(value.meta) ? value.meta : null;\n\tconst localMediaId = readString(value.id);\n\tif ((provider === \"local\" || (!provider && meta)) && localMediaId) {\n\t\tprojection.mediaIds.add(localMediaId);\n\t}\n\tconst storageKey = readString(value.storageKey) ?? readString(meta?.storageKey);\n\tif (storageKey) projection.mediaStorageKeys.add(storageKey);\n\n\tconst asset = isRecord(value.asset) ? value.asset : null;\n\tconst assetRef = readString(asset?._ref);\n\tif (assetRef) {\n\t\tprojection.mediaIds.add(assetRef);\n\t\tprojection.mediaStorageKeys.add(assetRef);\n\t}\n\n\tfor (const child of Object.values(value)) collectMediaReferences(child, projection);\n}\n\nfunction projectTaxonomyRows(\n\trows: Record<string, unknown>[],\n\tprojection: PublishedProjection,\n): Record<string, unknown>[] {\n\tconst includedGroups = new Set(projection.taxonomyGroups);\n\tconst includedIds = new Set(projection.taxonomyGroups);\n\tlet changed = true;\n\twhile (changed) {\n\t\tchanged = false;\n\t\tfor (const row of rows) {\n\t\t\tconst id = readString(row.id);\n\t\t\tconst group = readString(row.translation_group);\n\t\t\tif (!id) continue;\n\t\t\tif (includedIds.has(id) || (group && includedGroups.has(group))) {\n\t\t\t\tif (!includedIds.has(id)) {\n\t\t\t\t\tincludedIds.add(id);\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tif (group && !includedGroups.has(group)) {\n\t\t\t\t\tincludedGroups.add(group);\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tconst parentId = readString(row.parent_id);\n\t\t\t\tif (parentId && !includedIds.has(parentId)) {\n\t\t\t\t\tincludedIds.add(parentId);\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn rows.filter((row) => {\n\t\tconst id = readString(row.id);\n\t\tconst group = readString(row.translation_group);\n\t\treturn (id && includedIds.has(id)) || (group && includedGroups.has(group));\n\t});\n}\n\nfunction projectPublishedRows(\n\ttableName: SystemTable,\n\trows: Record<string, unknown>[],\n\tprojection: PublishedProjection,\n): Record<string, unknown>[] {\n\tswitch (tableName) {\n\t\tcase \"_emdash_seo\":\n\t\t\treturn rows.filter((row) => {\n\t\t\t\tconst published = isPublishedContentReference(projection, row.collection, row.content_id);\n\t\t\t\tif (!published) return false;\n\t\t\t\tconst image = readString(row.seo_image);\n\t\t\t\tif (image) {\n\t\t\t\t\tcollectMediaReferences(image, projection);\n\t\t\t\t\tif (!EXTERNAL_OR_ROOT_URL.test(image)) {\n\t\t\t\t\t\tprojection.mediaIds.add(image);\n\t\t\t\t\t\tprojection.mediaStorageKeys.add(image);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t});\n\t\tcase \"content_taxonomies\":\n\t\t\treturn rows.filter((row) => {\n\t\t\t\tconst published = isPublishedContentReference(projection, row.collection, row.entry_id);\n\t\t\t\tconst taxonomyGroup = readString(row.taxonomy_id);\n\t\t\t\tif (published && taxonomyGroup) projection.taxonomyGroups.add(taxonomyGroup);\n\t\t\t\treturn published;\n\t\t\t});\n\t\tcase \"taxonomies\":\n\t\t\treturn projectTaxonomyRows(rows, projection);\n\t\tcase \"_emdash_menu_items\":\n\t\t\treturn rows.filter((row) => {\n\t\t\t\tconst type = readString(row.type);\n\t\t\t\tconst referenceId = readString(row.reference_id);\n\t\t\t\tif (!referenceId || type === \"custom\") return true;\n\t\t\t\tif (type === \"taxonomy\") {\n\t\t\t\t\tprojection.taxonomyGroups.add(referenceId);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (type === \"collection\" && !row.reference_id) return true;\n\t\t\t\tconst collection =\n\t\t\t\t\treadString(row.reference_collection) ??\n\t\t\t\t\t(type === \"post\" || type === \"page\" ? `${type}s` : null);\n\t\t\t\treturn isPublishedContentReference(projection, collection, referenceId);\n\t\t\t});\n\t\tcase \"media\":\n\t\t\treturn rows.filter((row) => {\n\t\t\t\tconst id = readString(row.id);\n\t\t\t\tconst storageKey = readString(row.storage_key);\n\t\t\t\treturn (\n\t\t\t\t\t(id !== null && projection.mediaIds.has(id)) ||\n\t\t\t\t\t(storageKey !== null && projection.mediaStorageKeys.has(storageKey))\n\t\t\t\t);\n\t\t\t});\n\t\tcase \"options\":\n\t\t\treturn rows;\n\t\tdefault:\n\t\t\treturn [];\n\t}\n}\n\nexport interface GenerateSnapshotOptions {\n\t/** Include draft and scheduled content (default: false) */\n\tincludeDrafts?: boolean;\n\t/** Include trashed content (deleted_at set). Used by backups (default: false) */\n\tincludeTrashed?: boolean;\n\t/** Origin URL for absolutizing local media URLs (e.g. \"https://mysite.com\") */\n\torigin?: string;\n\t/**\n\t * Allowlist of options-table key prefixes to include (default:\n\t * `SAFE_OPTIONS_PREFIXES`). Callers widening this must never include a\n\t * prefix that matches secrets (`emdash:preview_secret`, `plugin:`,\n\t * `emdash:passkey_pending:`) — the output may be user-downloadable.\n\t */\n\toptionPrefixes?: string[];\n\t/** Exact options-table keys to include in addition to `optionPrefixes`. */\n\toptionKeys?: string[];\n}\n\n/**\n * Generate a portable database snapshot.\n *\n * Discovers ec_* content tables dynamically, exports system tables\n * needed for rendering, and includes schema info for table recreation.\n */\nexport async function generateSnapshot(\n\tdb: Kysely<Database>,\n\toptions?: GenerateSnapshotOptions,\n): Promise<Snapshot> {\n\tconst includeDrafts = options?.includeDrafts ?? false;\n\tconst includeTrashed = options?.includeTrashed ?? false;\n\tconst optionPrefixes = options?.optionPrefixes ?? SAFE_OPTIONS_PREFIXES;\n\tconst optionKeys = new Set(options?.optionKeys);\n\tconst publishedOnly = !includeDrafts && !includeTrashed;\n\tconst publishedProjection = createPublishedProjection();\n\n\tconst contentTables = await listTablesLike(db, \"ec_%\");\n\n\t// Build list of all tables to export\n\tconst allTables = [...contentTables, ...SYSTEM_TABLES];\n\n\tconst tables: Record<string, Record<string, unknown>[]> = {};\n\tconst schema: Record<string, { columns: string[]; types?: Record<string, string> }> = {};\n\n\tfor (const tableName of allTables) {\n\t\tif (isExcluded(tableName)) continue;\n\n\t\t// Content table names come from the database catalog. Validate them\n\t\t// before passing them to sql.ref().\n\t\tif (!SAFE_TABLE_NAME.test(tableName)) continue;\n\n\t\tconst columnInfo = await listTableColumns(db, tableName);\n\t\tif (columnInfo.length === 0) continue;\n\n\t\tconst columns = columnInfo.map((column) => column.name);\n\t\tconst types: Record<string, SnapshotColumnType> = {};\n\t\tfor (const column of columnInfo) {\n\t\t\ttypes[column.name] = normalizeColumnType(column.type);\n\t\t}\n\n\t\tschema[tableName] = { columns, types };\n\n\t\tlet rows: Record<string, unknown>[];\n\n\t\tif (tableName.startsWith(\"ec_\")) {\n\t\t\tif (includeTrashed) {\n\t\t\t\trows = (\n\t\t\t\t\tawait sql<Record<string, unknown>>`\n\t\t\t\t\t\tSELECT * FROM ${sql.ref(tableName)}\n\t\t\t\t\t`.execute(db)\n\t\t\t\t).rows;\n\t\t\t} else if (includeDrafts) {\n\t\t\t\trows = (\n\t\t\t\t\tawait sql<Record<string, unknown>>`\n\t\t\t\t\t\tSELECT * FROM ${sql.ref(tableName)}\n\t\t\t\t\t\tWHERE deleted_at IS NULL\n\t\t\t\t\t`.execute(db)\n\t\t\t\t).rows;\n\t\t\t} else {\n\t\t\t\trows = (\n\t\t\t\t\tawait sql<Record<string, unknown>>`\n\t\t\t\t\t\tSELECT * FROM ${sql.ref(tableName)}\n\t\t\t\t\t\tWHERE deleted_at IS NULL\n\t\t\t\t\t\tAND status = 'published'\n\t\t\t\t\t`.execute(db)\n\t\t\t\t).rows;\n\t\t\t}\n\t\t} else if (\n\t\t\tpublishedOnly &&\n\t\t\tisSystemTable(tableName) &&\n\t\t\tPUBLISHED_TABLE_POLICIES[tableName] === \"omit\"\n\t\t) {\n\t\t\trows = [];\n\t\t} else if (tableName === \"options\") {\n\t\t\trows = (\n\t\t\t\tawait sql<Record<string, unknown>>`\n\t\t\t\t\tSELECT * FROM ${sql.ref(tableName)}\n\t\t\t\t`.execute(db)\n\t\t\t).rows.filter((row) => {\n\t\t\t\tconst name = typeof row.name === \"string\" ? row.name : \"\";\n\t\t\t\treturn optionKeys.has(name) || optionPrefixes.some((prefix) => name.startsWith(prefix));\n\t\t\t});\n\t\t} else {\n\t\t\trows = (\n\t\t\t\tawait sql<Record<string, unknown>>`\n\t\t\t\t\tSELECT * FROM ${sql.ref(tableName)}\n\t\t\t\t`.execute(db)\n\t\t\t).rows;\n\t\t}\n\n\t\tif (publishedOnly) {\n\t\t\tif (tableName.startsWith(\"ec_\")) {\n\t\t\t\trecordPublishedContent(publishedProjection, tableName, rows);\n\t\t\t} else if (\n\t\t\t\tisSystemTable(tableName) &&\n\t\t\t\tPUBLISHED_TABLE_POLICIES[tableName] === \"content-linked\"\n\t\t\t) {\n\t\t\t\trows = projectPublishedRows(tableName, rows, publishedProjection);\n\t\t\t}\n\t\t\tfor (const row of rows) collectMediaReferences(row, publishedProjection);\n\t\t}\n\n\t\tif (rows.length > 0) {\n\t\t\ttables[tableName] = normalizeRows(rows, types);\n\t\t}\n\t}\n\n\t// Absolutize local media URLs in content tables so snapshots are portable.\n\t// Local image fields are stored as JSON with provider:\"local\" and\n\t// meta.storageKey but no src — the URL is derived at render time.\n\t// For snapshots consumed by external preview services, inject src now.\n\tif (options?.origin) {\n\t\tconst origin = options.origin;\n\t\tfor (const [tableName, rows] of Object.entries(tables)) {\n\t\t\tif (!tableName.startsWith(\"ec_\")) continue;\n\t\t\tfor (const row of rows) {\n\t\t\t\tfor (const [col, value] of Object.entries(row)) {\n\t\t\t\t\tif (typeof value !== \"string\" || !value.startsWith(\"{\")) continue;\n\t\t\t\t\trow[col] = injectMediaSrc(value, origin);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\ttables,\n\t\tschema,\n\t\tgeneratedAt: new Date().toISOString(),\n\t};\n}\n"],"mappings":"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"}