emdash 0.40.0 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1258) hide show
  1. package/dist/action-token-CbKDcPJi.mjs +26 -0
  2. package/dist/action-token-CbKDcPJi.mjs.map +1 -0
  3. package/dist/activation-PtniBLt9.mjs +382 -0
  4. package/dist/activation-PtniBLt9.mjs.map +1 -0
  5. package/dist/adapters-C_Tf5x90.d.mts +171 -0
  6. package/dist/adapters-C_Tf5x90.d.mts.map +1 -0
  7. package/dist/allowed-origins-U1z4TdEZ.mjs +116 -0
  8. package/dist/allowed-origins-U1z4TdEZ.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +4 -4
  10. package/dist/api/route-utils.mjs +46 -45
  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 +10 -10
  14. package/dist/api-CXwQkV_m.mjs +5122 -0
  15. package/dist/api-CXwQkV_m.mjs.map +1 -0
  16. package/dist/api-tokens-89WlohEN.mjs +166 -0
  17. package/dist/api-tokens-89WlohEN.mjs.map +1 -0
  18. package/dist/apply-Do3KNnUk.mjs +1659 -0
  19. package/dist/apply-Do3KNnUk.mjs.map +1 -0
  20. package/dist/approvals-CAX9Yw33.mjs +460 -0
  21. package/dist/approvals-CAX9Yw33.mjs.map +1 -0
  22. package/dist/artifact-fetch-B9W4CEST.mjs +659 -0
  23. package/dist/artifact-fetch-B9W4CEST.mjs.map +1 -0
  24. package/dist/astro/index.d.mts +14 -14
  25. package/dist/astro/index.mjs +26 -30
  26. package/dist/astro/index.mjs.map +1 -1
  27. package/dist/astro/middleware/auth.d.mts +12 -12
  28. package/dist/astro/middleware/auth.mjs +10 -10
  29. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  30. package/dist/astro/middleware/redirect.mjs +7 -7
  31. package/dist/astro/middleware/request-context.mjs +3 -3
  32. package/dist/astro/middleware/setup.mjs +1 -1
  33. package/dist/astro/middleware.d.mts +12 -12
  34. package/dist/astro/middleware.d.mts.map +1 -1
  35. package/dist/astro/middleware.mjs +110 -106
  36. package/dist/astro/middleware.mjs.map +1 -1
  37. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +14 -14
  38. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +14 -14
  39. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -6
  40. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
  41. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +7 -7
  42. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +17 -17
  43. package/dist/astro/routes/api/admin/byline-fields/index.mjs +17 -17
  44. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +17 -17
  45. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +23 -23
  46. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +23 -23
  47. package/dist/astro/routes/api/admin/bylines/index.mjs +23 -23
  48. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +18 -18
  49. package/dist/astro/routes/api/admin/comments/_id_.mjs +7 -7
  50. package/dist/astro/routes/api/admin/comments/bulk.mjs +17 -17
  51. package/dist/astro/routes/api/admin/comments/counts.mjs +7 -7
  52. package/dist/astro/routes/api/admin/comments/index.mjs +17 -17
  53. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  54. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  55. package/dist/astro/routes/api/admin/media-usage/activation.mjs +20 -20
  56. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +22 -22
  57. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +22 -22
  58. package/dist/astro/routes/api/admin/media-usage/progress.mjs +25 -25
  59. package/dist/astro/routes/api/admin/media-usage/repair.mjs +31 -31
  60. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +22 -22
  61. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +22 -22
  62. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  63. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  64. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  65. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  66. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +72 -68
  67. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  68. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
  69. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +71 -67
  70. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  71. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +72 -68
  72. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  73. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +82 -78
  74. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  75. package/dist/astro/routes/api/admin/plugins/index.mjs +72 -68
  76. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  77. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +5 -5
  78. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -67
  79. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  80. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +81 -77
  81. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  82. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -67
  83. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  84. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +72 -68
  85. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  86. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +83 -79
  87. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  88. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -9
  89. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +74 -70
  90. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  91. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
  92. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +72 -68
  93. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  94. package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -67
  95. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
  97. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +71 -67
  98. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  99. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +5 -5
  100. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -67
  101. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
  103. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +40 -40
  104. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +40 -40
  105. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +42 -42
  106. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +42 -42
  107. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +42 -42
  108. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +43 -43
  109. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +43 -43
  110. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +42 -42
  111. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +43 -43
  112. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +44 -44
  113. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +42 -42
  114. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +42 -42
  115. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +44 -44
  116. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +42 -42
  117. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +44 -44
  118. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +42 -42
  119. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +42 -42
  120. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +44 -44
  121. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +42 -42
  122. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +42 -42
  123. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +44 -44
  124. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
  125. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  126. package/dist/astro/routes/api/admin/users/_id_/index.mjs +15 -15
  127. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
  128. package/dist/astro/routes/api/admin/users/index.mjs +14 -14
  129. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  130. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  131. package/dist/astro/routes/api/auth/invite/complete.mjs +18 -18
  132. package/dist/astro/routes/api/auth/invite/index.mjs +16 -16
  133. package/dist/astro/routes/api/auth/invite/register-options.mjs +17 -17
  134. package/dist/astro/routes/api/auth/logout.mjs +5 -5
  135. package/dist/astro/routes/api/auth/magic-link/send.mjs +18 -18
  136. package/dist/astro/routes/api/auth/magic-link/verify.mjs +14 -14
  137. package/dist/astro/routes/api/auth/me.mjs +15 -15
  138. package/dist/astro/routes/api/auth/mode.mjs +5 -5
  139. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
  140. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  141. package/dist/astro/routes/api/auth/passkey/_id_.mjs +14 -14
  142. package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
  143. package/dist/astro/routes/api/auth/passkey/options.mjs +19 -19
  144. package/dist/astro/routes/api/auth/passkey/register/options.mjs +17 -17
  145. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +18 -18
  146. package/dist/astro/routes/api/auth/passkey/verify.mjs +18 -18
  147. package/dist/astro/routes/api/auth/signup/complete.mjs +18 -18
  148. package/dist/astro/routes/api/auth/signup/request.mjs +17 -17
  149. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  150. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +12 -12
  151. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +18 -18
  152. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  153. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +17 -17
  154. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  155. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +17 -17
  156. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
  157. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +11 -11
  158. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +31 -31
  159. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +17 -17
  160. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts +1 -2
  161. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts.map +1 -1
  162. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +42 -53
  163. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  164. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +34 -29
  165. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  166. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
  167. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  168. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +17 -17
  169. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +25 -24
  170. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  171. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +5 -5
  172. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +17 -17
  173. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  174. package/dist/astro/routes/api/content/_collection_/_id_.mjs +18 -18
  175. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  176. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  177. package/dist/astro/routes/api/content/_collection_/index.mjs +15 -15
  178. package/dist/astro/routes/api/content/_collection_/trash.mjs +15 -15
  179. package/dist/astro/routes/api/dashboard.mjs +10 -9
  180. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  181. package/dist/astro/routes/api/dev/emails.mjs +5 -5
  182. package/dist/astro/routes/api/health.mjs +6 -6
  183. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  184. package/dist/astro/routes/api/import/probe.mjs +23 -23
  185. package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -6
  186. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
  187. package/dist/astro/routes/api/import/wordpress/execute.mjs +16 -16
  188. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  189. package/dist/astro/routes/api/import/wordpress/media.mjs +19 -19
  190. package/dist/astro/routes/api/import/wordpress/prepare.mjs +18 -18
  191. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  192. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +28 -28
  193. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  194. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +23 -23
  195. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  196. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +34 -34
  197. package/dist/astro/routes/api/manifest.mjs +6 -6
  198. package/dist/astro/routes/api/mcp.mjs +98 -118
  199. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  200. package/dist/astro/routes/api/media/_id_/confirm.mjs +19 -19
  201. package/dist/astro/routes/api/media/_id_/replace.mjs +16 -16
  202. package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
  203. package/dist/astro/routes/api/media/_id_/usage.mjs +33 -33
  204. package/dist/astro/routes/api/media/_id_.mjs +31 -31
  205. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
  206. package/dist/astro/routes/api/media/file/_...key_.mjs +9 -9
  207. package/dist/astro/routes/api/media/folders/_id_.mjs +16 -16
  208. package/dist/astro/routes/api/media/folders/index.mjs +16 -16
  209. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
  210. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
  211. package/dist/astro/routes/api/media/providers/index.mjs +5 -5
  212. package/dist/astro/routes/api/media/upload-url.mjs +18 -18
  213. package/dist/astro/routes/api/media.mjs +35 -35
  214. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +17 -17
  215. package/dist/astro/routes/api/menus/_name_/items.mjs +17 -17
  216. package/dist/astro/routes/api/menus/_name_/reorder.mjs +17 -17
  217. package/dist/astro/routes/api/menus/_name_/translations.mjs +17 -17
  218. package/dist/astro/routes/api/menus/_name_.mjs +17 -17
  219. package/dist/astro/routes/api/menus/index.mjs +17 -17
  220. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  221. package/dist/astro/routes/api/oauth/device/authorize.d.mts +2 -1
  222. package/dist/astro/routes/api/oauth/device/authorize.d.mts.map +1 -1
  223. package/dist/astro/routes/api/oauth/device/authorize.mjs +23 -9
  224. package/dist/astro/routes/api/oauth/device/authorize.mjs.map +1 -1
  225. package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
  226. package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
  227. package/dist/astro/routes/api/oauth/register.mjs +5 -5
  228. package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
  229. package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
  230. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  231. package/dist/astro/routes/api/openapi.json.mjs +20 -20
  232. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +11 -11
  233. package/dist/astro/routes/api/redirects/404s/index.mjs +19 -19
  234. package/dist/astro/routes/api/redirects/404s/summary.mjs +19 -19
  235. package/dist/astro/routes/api/redirects/_id_.mjs +19 -19
  236. package/dist/astro/routes/api/redirects/index.mjs +19 -19
  237. package/dist/astro/routes/api/relations/_id_/index.mjs +34 -29
  238. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  239. package/dist/astro/routes/api/relations/index.mjs +36 -31
  240. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  241. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
  242. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +5 -5
  243. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +71 -67
  244. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  245. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +71 -67
  246. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  247. package/dist/astro/routes/api/schema/block-types/index.mjs +71 -67
  248. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  249. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +73 -69
  250. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  251. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +71 -67
  252. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  253. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +71 -67
  254. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  255. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +71 -67
  256. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  257. package/dist/astro/routes/api/schema/collections/index.mjs +71 -67
  258. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  259. package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -67
  260. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  261. package/dist/astro/routes/api/schema/index.mjs +16 -16
  262. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -67
  263. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  264. package/dist/astro/routes/api/schema/orphans/index.mjs +71 -67
  265. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  266. package/dist/astro/routes/api/search/enable.mjs +19 -19
  267. package/dist/astro/routes/api/search/index.mjs +18 -18
  268. package/dist/astro/routes/api/search/rebuild.mjs +19 -19
  269. package/dist/astro/routes/api/search/stats.mjs +9 -9
  270. package/dist/astro/routes/api/search/suggest.mjs +18 -18
  271. package/dist/astro/routes/api/sections/_slug_.mjs +18 -18
  272. package/dist/astro/routes/api/sections/index.mjs +18 -18
  273. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  274. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  275. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  276. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  277. package/dist/astro/routes/api/settings/email.mjs +6 -6
  278. package/dist/astro/routes/api/settings.mjs +21 -21
  279. package/dist/astro/routes/api/setup/admin-verify.mjs +19 -19
  280. package/dist/astro/routes/api/setup/admin.mjs +18 -18
  281. package/dist/astro/routes/api/setup/dev-bypass.mjs +45 -39
  282. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  283. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  284. package/dist/astro/routes/api/setup/index.d.mts.map +1 -1
  285. package/dist/astro/routes/api/setup/index.mjs +80 -49
  286. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  287. package/dist/astro/routes/api/setup/status.mjs +6 -6
  288. package/dist/astro/routes/api/snapshot.mjs +9 -9
  289. package/dist/astro/routes/api/snapshot.mjs.map +1 -1
  290. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +23 -23
  291. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +23 -23
  292. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +23 -23
  293. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +23 -23
  294. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +22 -22
  295. package/dist/astro/routes/api/taxonomies/_name_.mjs +23 -23
  296. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +36 -35
  297. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
  298. package/dist/astro/routes/api/taxonomies/index.mjs +23 -23
  299. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  300. package/dist/astro/routes/api/typegen.mjs +8 -8
  301. package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
  302. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +19 -19
  303. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
  304. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  305. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  306. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  307. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +16 -16
  308. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +19 -19
  309. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +19 -19
  310. package/dist/astro/routes/api/widget-areas/_name_.mjs +9 -9
  311. package/dist/astro/routes/api/widget-areas/index.mjs +19 -19
  312. package/dist/astro/routes/api/widget-components.mjs +5 -5
  313. package/dist/astro/routes/robots.txt.mjs +6 -6
  314. package/dist/astro/routes/sitemap-_collection_.xml.mjs +9 -9
  315. package/dist/astro/routes/sitemap.xml.mjs +7 -7
  316. package/dist/astro/types.d.mts +28 -18
  317. package/dist/astro/types.d.mts.map +1 -1
  318. package/dist/audit-CrgmE9LE.mjs +127 -0
  319. package/dist/audit-CrgmE9LE.mjs.map +1 -0
  320. package/dist/auth/providers/github.d.mts +1 -1
  321. package/dist/auth/providers/google.d.mts +1 -1
  322. package/dist/authoritative-records-C2YzIdbu.mjs +5172 -0
  323. package/dist/authoritative-records-C2YzIdbu.mjs.map +1 -0
  324. package/dist/authorize-WgdKF8QY.mjs +49 -0
  325. package/dist/authorize-WgdKF8QY.mjs.map +1 -0
  326. package/dist/backup-Ck8_lMO3.mjs +246 -0
  327. package/dist/backup-Ck8_lMO3.mjs.map +1 -0
  328. package/dist/block-types-BQ90asVI.mjs +132 -0
  329. package/dist/block-types-BQ90asVI.mjs.map +1 -0
  330. package/dist/block-values-ACFqgB1D.mjs +175 -0
  331. package/dist/block-values-ACFqgB1D.mjs.map +1 -0
  332. package/dist/bundle-Db1iNMv_.mjs +667 -0
  333. package/dist/bundle-Db1iNMv_.mjs.map +1 -0
  334. package/dist/byline-BayaYGoj.mjs +909 -0
  335. package/dist/byline-BayaYGoj.mjs.map +1 -0
  336. package/dist/byline-fields-B8HH-35f.mjs +254 -0
  337. package/dist/byline-fields-B8HH-35f.mjs.map +1 -0
  338. package/dist/byline-fields-hMPjf6Eu.mjs +123 -0
  339. package/dist/byline-fields-hMPjf6Eu.mjs.map +1 -0
  340. package/dist/byline-registry-B_EK_TQf.mjs +406 -0
  341. package/dist/byline-registry-B_EK_TQf.mjs.map +1 -0
  342. package/dist/bylines-DFAaFXWi.mjs +214 -0
  343. package/dist/bylines-DFAaFXWi.mjs.map +1 -0
  344. package/dist/bylines-DkIxUxmr.mjs +232 -0
  345. package/dist/bylines-DkIxUxmr.mjs.map +1 -0
  346. package/dist/cache-DkvhQ8XE.mjs +108 -0
  347. package/dist/cache-DkvhQ8XE.mjs.map +1 -0
  348. package/dist/canonical-CcSuuTlH.mjs +174 -0
  349. package/dist/canonical-CcSuuTlH.mjs.map +1 -0
  350. package/dist/capture-triggers-DJEoOTOq.mjs +362 -0
  351. package/dist/capture-triggers-DJEoOTOq.mjs.map +1 -0
  352. package/dist/challenge-store-CvBl81AQ.mjs +51 -0
  353. package/dist/challenge-store-CvBl81AQ.mjs.map +1 -0
  354. package/dist/checksum-CClweQzI.mjs +162 -0
  355. package/dist/checksum-CClweQzI.mjs.map +1 -0
  356. package/dist/chrome-tags-D5caJwwp.mjs +24 -0
  357. package/dist/chrome-tags-D5caJwwp.mjs.map +1 -0
  358. package/dist/chunks-DwBaj8aT.mjs +25 -0
  359. package/dist/chunks-DwBaj8aT.mjs.map +1 -0
  360. package/dist/cli/index.mjs +374 -761
  361. package/dist/cli/index.mjs.map +1 -1
  362. package/dist/client/cf-access.d.mts +1 -1
  363. package/dist/client/index.d.mts +18 -18
  364. package/dist/client/index.mjs +2 -2
  365. package/dist/collection-deletion-CLCdXsnV.mjs +436 -0
  366. package/dist/collection-deletion-CLCdXsnV.mjs.map +1 -0
  367. package/dist/collection-deletion-processor-hNw8x01F.mjs +217 -0
  368. package/dist/collection-deletion-processor-hNw8x01F.mjs.map +1 -0
  369. package/dist/collection-slugs-cache-CUuiduLq.mjs +85 -0
  370. package/dist/collection-slugs-cache-CUuiduLq.mjs.map +1 -0
  371. package/dist/comment-D2uvL63j.mjs +313 -0
  372. package/dist/comment-D2uvL63j.mjs.map +1 -0
  373. package/dist/comment-reaction-DevUuzg4.mjs +85 -0
  374. package/dist/comment-reaction-DevUuzg4.mjs.map +1 -0
  375. package/dist/comments-Cq0s7_hO.mjs +195 -0
  376. package/dist/comments-Cq0s7_hO.mjs.map +1 -0
  377. package/dist/comments-M4EDYAHw.mjs +99 -0
  378. package/dist/comments-M4EDYAHw.mjs.map +1 -0
  379. package/dist/components-CuIGwXMs.mjs +108 -0
  380. package/dist/components-CuIGwXMs.mjs.map +1 -0
  381. package/dist/config-52Ea5IWt.d.mts +39 -0
  382. package/dist/config-52Ea5IWt.d.mts.map +1 -0
  383. package/dist/config-CCz3xOLc.mjs +242 -0
  384. package/dist/config-CCz3xOLc.mjs.map +1 -0
  385. package/dist/config-D3d5Qudq.d.mts +6669 -0
  386. package/dist/config-D3d5Qudq.d.mts.map +1 -0
  387. package/dist/content-CbnufDsM.mjs +2018 -0
  388. package/dist/content-CbnufDsM.mjs.map +1 -0
  389. package/dist/content-list-query-D_7B1FE5.d.mts +26 -0
  390. package/dist/content-list-query-D_7B1FE5.d.mts.map +1 -0
  391. package/dist/content-policy-CYu6K1KB.mjs +46 -0
  392. package/dist/content-policy-CYu6K1KB.mjs.map +1 -0
  393. package/dist/content-repair-DlDUgFGp.mjs +442 -0
  394. package/dist/content-repair-DlDUgFGp.mjs.map +1 -0
  395. package/dist/context-CGQLA1-a.mjs +1922 -0
  396. package/dist/context-CGQLA1-a.mjs.map +1 -0
  397. package/dist/cron-c4D5C5Fx.mjs +284 -0
  398. package/dist/cron-c4D5C5Fx.mjs.map +1 -0
  399. package/dist/dashboard-CBq9kmOn.mjs +151 -0
  400. package/dist/dashboard-CBq9kmOn.mjs.map +1 -0
  401. package/dist/db/index.d.mts +3 -3
  402. package/dist/db/index.mjs +1 -1
  403. package/dist/db/libsql-migrations.d.mts +1 -1
  404. package/dist/db/libsql-migrations.mjs +4 -4
  405. package/dist/db/libsql.d.mts +1 -1
  406. package/dist/db/postgres-migrations.d.mts +1 -1
  407. package/dist/db/postgres-migrations.mjs +4 -4
  408. package/dist/db/postgres.d.mts +1 -1
  409. package/dist/db/sqlite-migrations.d.mts +1 -1
  410. package/dist/db/sqlite-migrations.mjs +4 -4
  411. package/dist/db/sqlite.d.mts +1 -1
  412. package/dist/db/sqlite.mjs +1 -1
  413. package/dist/default-DPsys51U.mjs +81 -0
  414. package/dist/default-DPsys51U.mjs.map +1 -0
  415. package/dist/deferred-tasks-CZ7rzBdo.d.mts +9 -0
  416. package/dist/deferred-tasks-CZ7rzBdo.d.mts.map +1 -0
  417. package/dist/dev-typegen-HRxwLRcT.mjs +29 -0
  418. package/dist/dev-typegen-HRxwLRcT.mjs.map +1 -0
  419. package/dist/device-flow-OcSqE9uY.mjs +521 -0
  420. package/dist/device-flow-OcSqE9uY.mjs.map +1 -0
  421. package/dist/digest-DVZ--cE9.mjs +194 -0
  422. package/dist/digest-DVZ--cE9.mjs.map +1 -0
  423. package/dist/direct-executor-DyjAqkpT.mjs +104 -0
  424. package/dist/direct-executor-DyjAqkpT.mjs.map +1 -0
  425. package/dist/dist-FPR93_xf.mjs +810 -0
  426. package/dist/dist-FPR93_xf.mjs.map +1 -0
  427. package/dist/email-console-DyQIgEnz.mjs +50 -0
  428. package/dist/email-console-DyQIgEnz.mjs.map +1 -0
  429. package/dist/email-locale-BYb16rVd.mjs +25 -0
  430. package/dist/email-locale-BYb16rVd.mjs.map +1 -0
  431. package/dist/emdash-runtime-CrzxJFmF.mjs +4214 -0
  432. package/dist/emdash-runtime-CrzxJFmF.mjs.map +1 -0
  433. package/dist/enrich-DBtCncE2.mjs +194 -0
  434. package/dist/enrich-DBtCncE2.mjs.map +1 -0
  435. package/dist/entry-lock-BN5y4YbO.d.mts +4481 -0
  436. package/dist/entry-lock-BN5y4YbO.d.mts.map +1 -0
  437. package/dist/entry-lock-BaRBHCsH.mjs +1173 -0
  438. package/dist/entry-lock-BaRBHCsH.mjs.map +1 -0
  439. package/dist/entry-lock-C6NcnZPV.mjs +163 -0
  440. package/dist/entry-lock-C6NcnZPV.mjs.map +1 -0
  441. package/dist/entry-locks-BTyQLdbC.mjs +167 -0
  442. package/dist/entry-locks-BTyQLdbC.mjs.map +1 -0
  443. package/dist/error-BfsNNrIE.mjs +90 -0
  444. package/dist/error-BfsNNrIE.mjs.map +1 -0
  445. package/dist/errors-BN1QAnEY.mjs +460 -0
  446. package/dist/errors-BN1QAnEY.mjs.map +1 -0
  447. package/dist/errors-Bt3goF8I.mjs +120 -0
  448. package/dist/errors-Bt3goF8I.mjs.map +1 -0
  449. package/dist/escape-BveidMa2.mjs +9 -0
  450. package/dist/escape-BveidMa2.mjs.map +1 -0
  451. package/dist/fence-Bb_IbCxI.mjs +162 -0
  452. package/dist/fence-Bb_IbCxI.mjs.map +1 -0
  453. package/dist/field-defs-cache-CsZctvbu.mjs +77 -0
  454. package/dist/field-defs-cache-CsZctvbu.mjs.map +1 -0
  455. package/dist/field-map-6m9rF49t.mjs +83 -0
  456. package/dist/field-map-6m9rF49t.mjs.map +1 -0
  457. package/dist/focal-point-CZ3d1wK5.mjs +23 -0
  458. package/dist/focal-point-CZ3d1wK5.mjs.map +1 -0
  459. package/dist/fts-manager-CCaZTp8y.mjs +443 -0
  460. package/dist/fts-manager-CCaZTp8y.mjs.map +1 -0
  461. package/dist/gc-xowRjczI.mjs +75 -0
  462. package/dist/gc-xowRjczI.mjs.map +1 -0
  463. package/dist/hash-COVK27Pc.mjs +37 -0
  464. package/dist/hash-COVK27Pc.mjs.map +1 -0
  465. package/dist/hook-result-CYSk0XFe.d.mts +31 -0
  466. package/dist/hook-result-CYSk0XFe.d.mts.map +1 -0
  467. package/dist/hreflang-CChPV7jx.mjs +105 -0
  468. package/dist/hreflang-CChPV7jx.mjs.map +1 -0
  469. package/dist/hreflang-DRslq3QI.d.mts +50 -0
  470. package/dist/hreflang-DRslq3QI.d.mts.map +1 -0
  471. package/dist/http-route-dispatch-CAdp2onn.mjs +339 -0
  472. package/dist/http-route-dispatch-CAdp2onn.mjs.map +1 -0
  473. package/dist/identity-NVTOOQyq.mjs +35 -0
  474. package/dist/identity-NVTOOQyq.mjs.map +1 -0
  475. package/dist/import-wpSO2N0x.mjs +2020 -0
  476. package/dist/import-wpSO2N0x.mjs.map +1 -0
  477. package/dist/index-CDs2wq4X.d.mts +623 -0
  478. package/dist/index-CDs2wq4X.d.mts.map +1 -0
  479. package/dist/index.d.mts +24 -24
  480. package/dist/index.mjs +103 -101
  481. package/dist/install-finalization-D9R9R-W8.mjs +58 -0
  482. package/dist/install-finalization-D9R9R-W8.mjs.map +1 -0
  483. package/dist/keys-Bck6LBfF.mjs +61 -0
  484. package/dist/keys-Bck6LBfF.mjs.map +1 -0
  485. package/dist/kinds-CYmRESWj.mjs +974 -0
  486. package/dist/kinds-CYmRESWj.mjs.map +1 -0
  487. package/dist/lifecycle-C815ZQfV.mjs +25 -0
  488. package/dist/lifecycle-C815ZQfV.mjs.map +1 -0
  489. package/dist/load-D99axixL.mjs +28 -0
  490. package/dist/load-D99axixL.mjs.map +1 -0
  491. package/dist/loader-CrRPfkHS.mjs +1197 -0
  492. package/dist/loader-CrRPfkHS.mjs.map +1 -0
  493. package/dist/loops-DMKlygqX.mjs +203 -0
  494. package/dist/loops-DMKlygqX.mjs.map +1 -0
  495. package/dist/manifest-builder-BQzCHNgB.mjs +189 -0
  496. package/dist/manifest-builder-BQzCHNgB.mjs.map +1 -0
  497. package/dist/manifest-schema-Ci2gmd0u.mjs +492 -0
  498. package/dist/manifest-schema-Ci2gmd0u.mjs.map +1 -0
  499. package/dist/media/image-endpoint.mjs +1 -1
  500. package/dist/media/index.d.mts +1 -1
  501. package/dist/media/index.mjs +4 -4
  502. package/dist/media/local-runtime.d.mts +14 -14
  503. package/dist/media/local-runtime.mjs +6 -6
  504. package/dist/media-BUQePMxP.mjs +373 -0
  505. package/dist/media-BUQePMxP.mjs.map +1 -0
  506. package/dist/media-DH8ibNlY.mjs +294 -0
  507. package/dist/media-DH8ibNlY.mjs.map +1 -0
  508. package/dist/media-OEIQ3bVc.mjs +408 -0
  509. package/dist/media-OEIQ3bVc.mjs.map +1 -0
  510. package/dist/media-allowlist-pYtaBA95.mjs +44 -0
  511. package/dist/media-allowlist-pYtaBA95.mjs.map +1 -0
  512. package/dist/media-folders-Bf8_s4de.mjs +210 -0
  513. package/dist/media-folders-Bf8_s4de.mjs.map +1 -0
  514. package/dist/media-url-C6klEuNd.mjs +43 -0
  515. package/dist/media-url-C6klEuNd.mjs.map +1 -0
  516. package/dist/media-usage-D7Y64m6v.mjs +1629 -0
  517. package/dist/media-usage-D7Y64m6v.mjs.map +1 -0
  518. package/dist/media-usage-activation-DrqbmgLA.mjs +78 -0
  519. package/dist/media-usage-activation-DrqbmgLA.mjs.map +1 -0
  520. package/dist/media-usage-work-DommYhYA.mjs +152 -0
  521. package/dist/media-usage-work-DommYhYA.mjs.map +1 -0
  522. package/dist/media-usage-work-HU63hNDu.mjs +586 -0
  523. package/dist/media-usage-work-HU63hNDu.mjs.map +1 -0
  524. package/dist/menus-BQfusWEC.mjs +3608 -0
  525. package/dist/menus-BQfusWEC.mjs.map +1 -0
  526. package/dist/menus-BtwjQt5s.mjs +753 -0
  527. package/dist/menus-BtwjQt5s.mjs.map +1 -0
  528. package/dist/menus-p_M1V7J_.mjs +139 -0
  529. package/dist/menus-p_M1V7J_.mjs.map +1 -0
  530. package/dist/migrations/index.d.mts +1 -1
  531. package/dist/migrations/index.mjs +3 -3
  532. package/dist/mime-C94qBG-P.mjs +36 -0
  533. package/dist/mime-C94qBG-P.mjs.map +1 -0
  534. package/dist/mode-DpYW3w6U.mjs +23 -0
  535. package/dist/mode-DpYW3w6U.mjs.map +1 -0
  536. package/dist/node-sqlite-compat-pWFw0lcc.mjs +46 -0
  537. package/dist/node-sqlite-compat-pWFw0lcc.mjs.map +1 -0
  538. package/dist/normalize-DduyxBjf.mjs +191 -0
  539. package/dist/normalize-DduyxBjf.mjs.map +1 -0
  540. package/dist/oauth-authorization-DAXsH1H9.mjs +274 -0
  541. package/dist/oauth-authorization-DAXsH1H9.mjs.map +1 -0
  542. package/dist/oauth-clients-DENiDQri.mjs +266 -0
  543. package/dist/oauth-clients-DENiDQri.mjs.map +1 -0
  544. package/dist/oauth-state-store-y8mEYVq9.mjs +50 -0
  545. package/dist/oauth-state-store-y8mEYVq9.mjs.map +1 -0
  546. package/dist/oauth-user-lookup-CtTYAy-O.mjs +26 -0
  547. package/dist/oauth-user-lookup-CtTYAy-O.mjs.map +1 -0
  548. package/dist/object-cache/memory.d.mts +1 -1
  549. package/dist/options-BYa1FgIM.d.mts +81 -0
  550. package/dist/options-BYa1FgIM.d.mts.map +1 -0
  551. package/dist/page/index.d.mts +2 -2
  552. package/dist/page/index.mjs +5 -5
  553. package/dist/parse-CORGGhHf.mjs +81 -0
  554. package/dist/parse-CORGGhHf.mjs.map +1 -0
  555. package/dist/parse-avNM1xWV.d.mts +168 -0
  556. package/dist/parse-avNM1xWV.d.mts.map +1 -0
  557. package/dist/passkey-config-Dih5YeIS.mjs +46 -0
  558. package/dist/passkey-config-Dih5YeIS.mjs.map +1 -0
  559. package/dist/paths-d51RFm8M.mjs +77 -0
  560. package/dist/paths-d51RFm8M.mjs.map +1 -0
  561. package/dist/patterns-CoqlXUvk.mjs +145 -0
  562. package/dist/patterns-CoqlXUvk.mjs.map +1 -0
  563. package/dist/placeholder-D2aksPMF.d.mts +306 -0
  564. package/dist/placeholder-D2aksPMF.d.mts.map +1 -0
  565. package/dist/plan-DqeZKuaR.mjs +135 -0
  566. package/dist/plan-DqeZKuaR.mjs.map +1 -0
  567. package/dist/plugin-test-runtime.d.mts +14 -14
  568. package/dist/plugin-test-runtime.mjs +110 -107
  569. package/dist/plugin-types.d.mts +2 -2
  570. package/dist/plugin-utils.d.mts +12 -12
  571. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  572. package/dist/plugins/adapt-sandbox-entry.mjs +3 -3
  573. package/dist/plugins/host.d.mts +5 -5
  574. package/dist/plugins/host.mjs +42 -41
  575. package/dist/plugins-Bb7oqjQA.mjs +277 -0
  576. package/dist/plugins-Bb7oqjQA.mjs.map +1 -0
  577. package/dist/policy-BcEqut3n.mjs +45 -0
  578. package/dist/policy-BcEqut3n.mjs.map +1 -0
  579. package/dist/portable-text-DXE8ymtD.mjs +307 -0
  580. package/dist/portable-text-DXE8ymtD.mjs.map +1 -0
  581. package/dist/preview-DEDWbwA_.mjs +107 -0
  582. package/dist/preview-DEDWbwA_.mjs.map +1 -0
  583. package/dist/protocol-BJbTzvwl.d.mts +61 -0
  584. package/dist/protocol-BJbTzvwl.d.mts.map +1 -0
  585. package/dist/public-submission-D9c9S14m.mjs +250 -0
  586. package/dist/public-submission-D9c9S14m.mjs.map +1 -0
  587. package/dist/public-url-CIRe-2T6.mjs +101 -0
  588. package/dist/public-url-CIRe-2T6.mjs.map +1 -0
  589. package/dist/query-BzifXlPS.mjs +1156 -0
  590. package/dist/query-BzifXlPS.mjs.map +1 -0
  591. package/dist/query-OzMJ6vJP.mjs +41 -0
  592. package/dist/query-OzMJ6vJP.mjs.map +1 -0
  593. package/dist/rate-limit-Csp60Vik.mjs +120 -0
  594. package/dist/rate-limit-Csp60Vik.mjs.map +1 -0
  595. package/dist/receipt-B-aU4hpJ.mjs +43 -0
  596. package/dist/receipt-B-aU4hpJ.mjs.map +1 -0
  597. package/dist/redirect-CDSw1sU3.mjs +17 -0
  598. package/dist/redirect-CDSw1sU3.mjs.map +1 -0
  599. package/dist/redirect-D1ArbO85.mjs +411 -0
  600. package/dist/redirect-D1ArbO85.mjs.map +1 -0
  601. package/dist/redirects-BjTwDTsV.mjs +148 -0
  602. package/dist/redirects-BjTwDTsV.mjs.map +1 -0
  603. package/dist/redirects-Ck50kH3n.mjs +446 -0
  604. package/dist/redirects-Ck50kH3n.mjs.map +1 -0
  605. package/dist/registry/testing.mjs +3 -3
  606. package/dist/registry-CFcNCayZ.mjs +6754 -0
  607. package/dist/registry-CFcNCayZ.mjs.map +1 -0
  608. package/dist/relations-Cfaa1fDl.mjs +776 -0
  609. package/dist/relations-Cfaa1fDl.mjs.map +1 -0
  610. package/dist/request-cache-iHRlHx1d.mjs +104 -0
  611. package/dist/request-cache-iHRlHx1d.mjs.map +1 -0
  612. package/dist/request-context.d.mts +1 -1
  613. package/dist/request-meta-D47mqyev.mjs +141 -0
  614. package/dist/request-meta-D47mqyev.mjs.map +1 -0
  615. package/dist/resolve-BPE8sMvx.mjs +99 -0
  616. package/dist/resolve-BPE8sMvx.mjs.map +1 -0
  617. package/dist/resolve-C0s1E_fH.mjs +199 -0
  618. package/dist/resolve-C0s1E_fH.mjs.map +1 -0
  619. package/dist/revision-j1p4-bOj.mjs +302 -0
  620. package/dist/revision-j1p4-bOj.mjs.map +1 -0
  621. package/dist/route-wire-C9PJV9aL.mjs +197 -0
  622. package/dist/route-wire-C9PJV9aL.mjs.map +1 -0
  623. package/dist/routes-lyYw0mMf.mjs +272 -0
  624. package/dist/routes-lyYw0mMf.mjs.map +1 -0
  625. package/dist/runner-B3eyB9Gb.mjs +6121 -0
  626. package/dist/runner-B3eyB9Gb.mjs.map +1 -0
  627. package/dist/runner-DoYH2Jcu.d.mts +68 -0
  628. package/dist/runner-DoYH2Jcu.d.mts.map +1 -0
  629. package/dist/runtime.d.mts +13 -13
  630. package/dist/runtime.mjs +3 -3
  631. package/dist/schema-BAayK46S.mjs +13 -0
  632. package/dist/schema-BAayK46S.mjs.map +1 -0
  633. package/dist/schema-Gqcl-8G4.mjs +815 -0
  634. package/dist/schema-Gqcl-8G4.mjs.map +1 -0
  635. package/dist/scopes-BqPOKoKf.mjs +34 -0
  636. package/dist/scopes-BqPOKoKf.mjs.map +1 -0
  637. package/dist/search-YJKPIEV6.mjs +448 -0
  638. package/dist/search-YJKPIEV6.mjs.map +1 -0
  639. package/dist/sections-BR_e-wK5.mjs +346 -0
  640. package/dist/sections-BR_e-wK5.mjs.map +1 -0
  641. package/dist/seed/index.d.mts +2 -2
  642. package/dist/seed/index.mjs +37 -31
  643. package/dist/seo/index.d.mts +3 -3
  644. package/dist/seo/index.mjs +22 -21
  645. package/dist/seo/index.mjs.map +1 -1
  646. package/dist/seo-Dsj8hy3j.mjs +114 -0
  647. package/dist/seo-Dsj8hy3j.mjs.map +1 -0
  648. package/dist/seo-XvH4LNNp.mjs +133 -0
  649. package/dist/seo-XvH4LNNp.mjs.map +1 -0
  650. package/dist/service-BsVG05gS.mjs +150 -0
  651. package/dist/service-BsVG05gS.mjs.map +1 -0
  652. package/dist/session-user-DgKbYrlj.mjs +51 -0
  653. package/dist/session-user-DgKbYrlj.mjs.map +1 -0
  654. package/dist/settings-CNPUntkh.mjs +51 -0
  655. package/dist/settings-CNPUntkh.mjs.map +1 -0
  656. package/dist/settings-D5EHi0Tk.mjs +439 -0
  657. package/dist/settings-D5EHi0Tk.mjs.map +1 -0
  658. package/dist/settings-DSfE7wOa.mjs +61 -0
  659. package/dist/settings-DSfE7wOa.mjs.map +1 -0
  660. package/dist/setup-complete-B8W8sJ9v.mjs +26 -0
  661. package/dist/setup-complete-B8W8sJ9v.mjs.map +1 -0
  662. package/dist/setup-nonce-DnSBP260.mjs +25 -0
  663. package/dist/setup-nonce-DnSBP260.mjs.map +1 -0
  664. package/dist/site-settings-NGzdrt7O.mjs +50 -0
  665. package/dist/site-settings-NGzdrt7O.mjs.map +1 -0
  666. package/dist/site-url-D6JB7tLW.mjs +16 -0
  667. package/dist/site-url-D6JB7tLW.mjs.map +1 -0
  668. package/dist/snapshot-CdcwwWAf.mjs +414 -0
  669. package/dist/snapshot-CdcwwWAf.mjs.map +1 -0
  670. package/dist/ssrf-Dv0_tRpo.mjs +406 -0
  671. package/dist/ssrf-Dv0_tRpo.mjs.map +1 -0
  672. package/dist/stage-CUjhED3P.mjs +662 -0
  673. package/dist/stage-CUjhED3P.mjs.map +1 -0
  674. package/dist/staged-C36IWXff.mjs +659 -0
  675. package/dist/staged-C36IWXff.mjs.map +1 -0
  676. package/dist/state-CKouMCSY.mjs +153 -0
  677. package/dist/state-CKouMCSY.mjs.map +1 -0
  678. package/dist/status-lzyj4Uu7.mjs +30 -0
  679. package/dist/status-lzyj4Uu7.mjs.map +1 -0
  680. package/dist/storage/local.d.mts +1 -1
  681. package/dist/storage/local.mjs +1 -1
  682. package/dist/storage/s3.d.mts +1 -1
  683. package/dist/storage/s3.mjs +1 -1
  684. package/dist/storage-query-B-cWcTjJ.d.mts +1594 -0
  685. package/dist/storage-query-B-cWcTjJ.d.mts.map +1 -0
  686. package/dist/tar-DsTXX6ch.mjs +449 -0
  687. package/dist/tar-DsTXX6ch.mjs.map +1 -0
  688. package/dist/target-DLQCwp_Z.mjs +27 -0
  689. package/dist/target-DLQCwp_Z.mjs.map +1 -0
  690. package/dist/taxonomies-BlAjr4BL.mjs +697 -0
  691. package/dist/taxonomies-BlAjr4BL.mjs.map +1 -0
  692. package/dist/taxonomies-Byyo7LOZ.mjs +939 -0
  693. package/dist/taxonomies-Byyo7LOZ.mjs.map +1 -0
  694. package/dist/taxonomy-CKDwM61Y.mjs +525 -0
  695. package/dist/taxonomy-CKDwM61Y.mjs.map +1 -0
  696. package/dist/tokens-BojXlk49.mjs +171 -0
  697. package/dist/tokens-BojXlk49.mjs.map +1 -0
  698. package/dist/transaction-DLPQWik1.mjs +29 -0
  699. package/dist/transaction-DLPQWik1.mjs.map +1 -0
  700. package/dist/transfer-XSTh2BCr.mjs +8706 -0
  701. package/dist/transfer-XSTh2BCr.mjs.map +1 -0
  702. package/dist/transfer-download-DkoCDA9d.mjs +33 -0
  703. package/dist/transfer-download-DkoCDA9d.mjs.map +1 -0
  704. package/dist/transfer-iQ26J-RT.mjs +166 -0
  705. package/dist/transfer-iQ26J-RT.mjs.map +1 -0
  706. package/dist/transformations-C7RQabKQ.mjs +196 -0
  707. package/dist/transformations-C7RQabKQ.mjs.map +1 -0
  708. package/dist/transport-D3RulfD6.mjs +136 -0
  709. package/dist/transport-D3RulfD6.mjs.map +1 -0
  710. package/dist/transport-DhlZlf4D.d.mts +42 -0
  711. package/dist/transport-DhlZlf4D.d.mts.map +1 -0
  712. package/dist/trusted-proxy-B6ECOZJc.mjs +51 -0
  713. package/dist/trusted-proxy-B6ECOZJc.mjs.map +1 -0
  714. package/dist/turnstile-lqUiY7lP.mjs +53 -0
  715. package/dist/turnstile-lqUiY7lP.mjs.map +1 -0
  716. package/dist/types-4Dn9bZhu.mjs +77 -0
  717. package/dist/types-4Dn9bZhu.mjs.map +1 -0
  718. package/dist/types-5LSo7PPx.d.mts +85 -0
  719. package/dist/types-5LSo7PPx.d.mts.map +1 -0
  720. package/dist/types-BQ3hwYJT.d.mts +896 -0
  721. package/dist/types-BQ3hwYJT.d.mts.map +1 -0
  722. package/dist/types-BYEk7qo3.d.mts +198 -0
  723. package/dist/types-BYEk7qo3.d.mts.map +1 -0
  724. package/dist/types-CJKsWVFR.mjs +199 -0
  725. package/dist/types-CJKsWVFR.mjs.map +1 -0
  726. package/dist/types-Ca_w8mmY.d.mts +363 -0
  727. package/dist/types-Ca_w8mmY.d.mts.map +1 -0
  728. package/dist/types-CkE41ZAG.mjs +18 -0
  729. package/dist/types-CkE41ZAG.mjs.map +1 -0
  730. package/dist/types-D0aJW2uR.d.mts +1641 -0
  731. package/dist/types-D0aJW2uR.d.mts.map +1 -0
  732. package/dist/types-DbpN4Qto.d.mts +372 -0
  733. package/dist/types-DbpN4Qto.d.mts.map +1 -0
  734. package/dist/types-ILDI1sdY.mjs +16 -0
  735. package/dist/types-ILDI1sdY.mjs.map +1 -0
  736. package/dist/types-OC5c-edM.mjs +22 -0
  737. package/dist/types-OC5c-edM.mjs.map +1 -0
  738. package/dist/types-aOOxRSx6.mjs +103 -0
  739. package/dist/types-aOOxRSx6.mjs.map +1 -0
  740. package/dist/types-m1WbUffD.d.mts +198 -0
  741. package/dist/types-m1WbUffD.d.mts.map +1 -0
  742. package/dist/types-uxLoPBio.d.mts +124 -0
  743. package/dist/types-uxLoPBio.d.mts.map +1 -0
  744. package/dist/types-we5uR-tV.d.mts +287 -0
  745. package/dist/types-we5uR-tV.d.mts.map +1 -0
  746. package/dist/upload-attempts-DduMy6B0.mjs +32 -0
  747. package/dist/upload-attempts-DduMy6B0.mjs.map +1 -0
  748. package/dist/url-pattern-B3EwxAAk.mjs +33 -0
  749. package/dist/url-pattern-B3EwxAAk.mjs.map +1 -0
  750. package/dist/user-ElwQjTQT.mjs +171 -0
  751. package/dist/user-ElwQjTQT.mjs.map +1 -0
  752. package/dist/utils-BlAXmfOG.mjs +439 -0
  753. package/dist/utils-BlAXmfOG.mjs.map +1 -0
  754. package/dist/validate-CH0X5b2c.d.mts +468 -0
  755. package/dist/validate-CH0X5b2c.d.mts.map +1 -0
  756. package/dist/validate-CfgRpcjA.mjs +492 -0
  757. package/dist/validate-CfgRpcjA.mjs.map +1 -0
  758. package/dist/validation-DvYJtv4k.mjs +218 -0
  759. package/dist/validation-DvYJtv4k.mjs.map +1 -0
  760. package/dist/version-DgYjhTud.mjs +9 -0
  761. package/dist/version-DgYjhTud.mjs.map +1 -0
  762. package/dist/version-Dq71scUb.mjs +7 -0
  763. package/dist/version-Dq71scUb.mjs.map +1 -0
  764. package/dist/widgets-ChFIj0be.mjs +126 -0
  765. package/dist/widgets-ChFIj0be.mjs.map +1 -0
  766. package/dist/wxr-taxonomies-CBZMp2YX.mjs +372 -0
  767. package/dist/wxr-taxonomies-CBZMp2YX.mjs.map +1 -0
  768. package/dist/wxr-taxonomies-DlKDpWN1.d.mts +34 -0
  769. package/dist/wxr-taxonomies-DlKDpWN1.d.mts.map +1 -0
  770. package/dist/zod-generator-DmTKI-Ig.mjs +426 -0
  771. package/dist/zod-generator-DmTKI-Ig.mjs.map +1 -0
  772. package/package.json +7 -6
  773. package/src/api/handlers/content.ts +593 -16
  774. package/src/api/handlers/device-flow.ts +74 -21
  775. package/src/api/handlers/index.ts +1 -0
  776. package/src/api/handlers/manifest.ts +79 -5
  777. package/src/api/handlers/media-upload.ts +17 -71
  778. package/src/api/handlers/media.ts +97 -3
  779. package/src/api/handlers/relations.ts +638 -157
  780. package/src/api/handlers/revision.ts +30 -0
  781. package/src/api/handlers/schema.ts +403 -1
  782. package/src/api/handlers/snapshot.ts +257 -3
  783. package/src/api/handlers/staged-references.ts +142 -0
  784. package/src/api/handlers/validate-references.ts +146 -0
  785. package/src/api/schemas/content.ts +13 -0
  786. package/src/api/schemas/relations.ts +54 -44
  787. package/src/api/schemas/schema.ts +14 -0
  788. package/src/astro/integration/routes.ts +15 -19
  789. package/src/astro/integration/vite-config.ts +10 -4
  790. package/src/astro/middleware.ts +1 -0
  791. package/src/astro/routes/api/content/[collection]/[id]/references/[relation]/children.ts +11 -54
  792. package/src/astro/routes/api/content/[collection]/[id].ts +3 -1
  793. package/src/astro/routes/api/oauth/device/authorize.ts +33 -4
  794. package/src/astro/routes/api/relations/index.ts +4 -4
  795. package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +6 -2
  796. package/src/astro/routes/api/setup/index.ts +66 -23
  797. package/src/astro/routes/api/snapshot.ts +2 -1
  798. package/src/astro/types.ts +10 -0
  799. package/src/cleanup.ts +10 -0
  800. package/src/cli/commands/export-seed.ts +510 -89
  801. package/src/components/Columns.astro +3 -1
  802. package/src/components/Cover.astro +3 -1
  803. package/src/components/WidgetArea.astro +3 -2
  804. package/src/database/migrations/086_relations_structural.ts +197 -0
  805. package/src/database/migrations/087_reference_field_relations.ts +407 -0
  806. package/src/database/migrations/runner.ts +4 -0
  807. package/src/database/reference-backfill.ts +141 -0
  808. package/src/database/repositories/content.ts +43 -8
  809. package/src/database/repositories/media.ts +40 -1
  810. package/src/database/repositories/redirect.ts +17 -34
  811. package/src/database/repositories/relation.ts +620 -208
  812. package/src/database/repositories/revision.ts +16 -0
  813. package/src/database/repositories/types.ts +38 -0
  814. package/src/database/transaction.ts +12 -1
  815. package/src/database/types.ts +14 -5
  816. package/src/emdash-runtime.ts +114 -11
  817. package/src/index.ts +11 -0
  818. package/src/loader.ts +169 -22
  819. package/src/mcp/server.ts +13 -48
  820. package/src/query.ts +455 -25
  821. package/src/references/field-map.ts +115 -0
  822. package/src/references/resolve.ts +160 -0
  823. package/src/references/staged.ts +117 -0
  824. package/src/references/types.ts +16 -0
  825. package/src/registry/artifact-fetch.ts +45 -271
  826. package/src/schema/registry.ts +99 -24
  827. package/src/schema/types.ts +58 -0
  828. package/src/schema/zod-generator.ts +67 -1
  829. package/src/seed/apply.ts +841 -103
  830. package/src/seed/types.ts +36 -2
  831. package/src/seed/validate.ts +78 -2
  832. package/src/transfer/analyze/unique-keys.ts +3 -12
  833. package/src/transfer/analyze/validate.ts +65 -39
  834. package/src/transfer/analyze/values.ts +12 -1
  835. package/src/transfer/export/readers.ts +12 -8
  836. package/src/transfer/format/columns.ts +26 -6
  837. package/src/transfer/format/kinds.ts +21 -5
  838. package/src/transfer/import/context.ts +8 -1
  839. package/src/transfer/ops/package-index.ts +1 -1
  840. package/dist/action-token-DYwe4Pk0.mjs +0 -26
  841. package/dist/action-token-DYwe4Pk0.mjs.map +0 -1
  842. package/dist/activation-LOkDM5WT.mjs +0 -382
  843. package/dist/activation-LOkDM5WT.mjs.map +0 -1
  844. package/dist/adapters-B64LbYcB.d.mts +0 -171
  845. package/dist/adapters-B64LbYcB.d.mts.map +0 -1
  846. package/dist/allowed-origins-CHB8oZNM.mjs +0 -116
  847. package/dist/allowed-origins-CHB8oZNM.mjs.map +0 -1
  848. package/dist/api-cFFZpyS0.mjs +0 -4718
  849. package/dist/api-cFFZpyS0.mjs.map +0 -1
  850. package/dist/api-tokens-s4i4aUp_.mjs +0 -166
  851. package/dist/api-tokens-s4i4aUp_.mjs.map +0 -1
  852. package/dist/apply-CoT603H3.mjs +0 -1163
  853. package/dist/apply-CoT603H3.mjs.map +0 -1
  854. package/dist/approvals-CqMfNxak.mjs +0 -460
  855. package/dist/approvals-CqMfNxak.mjs.map +0 -1
  856. package/dist/artifact-fetch-DZMOGZ3-.mjs +0 -818
  857. package/dist/artifact-fetch-DZMOGZ3-.mjs.map +0 -1
  858. package/dist/astro/routes/api/relations/_id_/translations.d.mts +0 -8
  859. package/dist/astro/routes/api/relations/_id_/translations.d.mts.map +0 -1
  860. package/dist/astro/routes/api/relations/_id_/translations.mjs +0 -47
  861. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +0 -1
  862. package/dist/audit-RfCugiSB.mjs +0 -127
  863. package/dist/audit-RfCugiSB.mjs.map +0 -1
  864. package/dist/authoritative-records-CoJvBXAD.mjs +0 -5172
  865. package/dist/authoritative-records-CoJvBXAD.mjs.map +0 -1
  866. package/dist/authorize-seCifOMJ.mjs +0 -49
  867. package/dist/authorize-seCifOMJ.mjs.map +0 -1
  868. package/dist/backup-CBu0LrXf.mjs +0 -246
  869. package/dist/backup-CBu0LrXf.mjs.map +0 -1
  870. package/dist/block-type-registry-DUI_3KxT.mjs +0 -6709
  871. package/dist/block-type-registry-DUI_3KxT.mjs.map +0 -1
  872. package/dist/block-types-BmZmLmAD.mjs +0 -132
  873. package/dist/block-types-BmZmLmAD.mjs.map +0 -1
  874. package/dist/block-values-C_VIPr5t.mjs +0 -175
  875. package/dist/block-values-C_VIPr5t.mjs.map +0 -1
  876. package/dist/byline-DYmkXqvo.mjs +0 -909
  877. package/dist/byline-DYmkXqvo.mjs.map +0 -1
  878. package/dist/byline-fields-D28AT-Fh.mjs +0 -123
  879. package/dist/byline-fields-D28AT-Fh.mjs.map +0 -1
  880. package/dist/byline-registry-gnKscbQX.mjs +0 -406
  881. package/dist/byline-registry-gnKscbQX.mjs.map +0 -1
  882. package/dist/bylines-BPwJqoYH.mjs +0 -232
  883. package/dist/bylines-BPwJqoYH.mjs.map +0 -1
  884. package/dist/bylines-ukLaYpVZ.mjs +0 -214
  885. package/dist/bylines-ukLaYpVZ.mjs.map +0 -1
  886. package/dist/cache-m7UEkRFV.mjs +0 -108
  887. package/dist/cache-m7UEkRFV.mjs.map +0 -1
  888. package/dist/canonical-YhEQezjg.mjs +0 -174
  889. package/dist/canonical-YhEQezjg.mjs.map +0 -1
  890. package/dist/capture-triggers-kJyl_yyM.mjs +0 -362
  891. package/dist/capture-triggers-kJyl_yyM.mjs.map +0 -1
  892. package/dist/challenge-store-ppU6Uv13.mjs +0 -51
  893. package/dist/challenge-store-ppU6Uv13.mjs.map +0 -1
  894. package/dist/checksum-B2IINIlN.mjs +0 -162
  895. package/dist/checksum-B2IINIlN.mjs.map +0 -1
  896. package/dist/chrome-tags-DApCQSIk.mjs +0 -24
  897. package/dist/chrome-tags-DApCQSIk.mjs.map +0 -1
  898. package/dist/chunks-Dms7Uxbt.mjs +0 -25
  899. package/dist/chunks-Dms7Uxbt.mjs.map +0 -1
  900. package/dist/collection-deletion-BIm28mo3.mjs +0 -436
  901. package/dist/collection-deletion-BIm28mo3.mjs.map +0 -1
  902. package/dist/collection-deletion-processor-Br6rxs3u.mjs +0 -217
  903. package/dist/collection-deletion-processor-Br6rxs3u.mjs.map +0 -1
  904. package/dist/collection-slugs-cache-CjGk__zp.mjs +0 -85
  905. package/dist/collection-slugs-cache-CjGk__zp.mjs.map +0 -1
  906. package/dist/comment-CrBl22OF.mjs +0 -313
  907. package/dist/comment-CrBl22OF.mjs.map +0 -1
  908. package/dist/comment-reaction-JEQ2Fpd8.mjs +0 -85
  909. package/dist/comment-reaction-JEQ2Fpd8.mjs.map +0 -1
  910. package/dist/comments-2ah9du9y.mjs +0 -195
  911. package/dist/comments-2ah9du9y.mjs.map +0 -1
  912. package/dist/comments-fHZ8ON9O.mjs +0 -99
  913. package/dist/comments-fHZ8ON9O.mjs.map +0 -1
  914. package/dist/components-CXbq7CSM.mjs +0 -108
  915. package/dist/components-CXbq7CSM.mjs.map +0 -1
  916. package/dist/config-5ii2haYu.d.mts +0 -6528
  917. package/dist/config-5ii2haYu.d.mts.map +0 -1
  918. package/dist/config-IhybvkIQ.mjs +0 -242
  919. package/dist/config-IhybvkIQ.mjs.map +0 -1
  920. package/dist/config-Py43JK9r.d.mts +0 -39
  921. package/dist/config-Py43JK9r.d.mts.map +0 -1
  922. package/dist/content-DFaIEDj9.mjs +0 -2281
  923. package/dist/content-DFaIEDj9.mjs.map +0 -1
  924. package/dist/content-list-query-Dra4Dalc.d.mts +0 -26
  925. package/dist/content-list-query-Dra4Dalc.d.mts.map +0 -1
  926. package/dist/content-policy-DFNw91-d.mjs +0 -46
  927. package/dist/content-policy-DFNw91-d.mjs.map +0 -1
  928. package/dist/content-repair-Q8IUrpLL.mjs +0 -442
  929. package/dist/content-repair-Q8IUrpLL.mjs.map +0 -1
  930. package/dist/context-BeGccdUX.mjs +0 -1921
  931. package/dist/context-BeGccdUX.mjs.map +0 -1
  932. package/dist/cron-7DCJwPXq.mjs +0 -284
  933. package/dist/cron-7DCJwPXq.mjs.map +0 -1
  934. package/dist/dashboard-DjrB-xxZ.mjs +0 -151
  935. package/dist/dashboard-DjrB-xxZ.mjs.map +0 -1
  936. package/dist/default-DQ6vsviu.mjs +0 -81
  937. package/dist/default-DQ6vsviu.mjs.map +0 -1
  938. package/dist/deferred-tasks-BPxXUB4x.d.mts +0 -9
  939. package/dist/deferred-tasks-BPxXUB4x.d.mts.map +0 -1
  940. package/dist/dev-typegen-CZaPLl3V.mjs +0 -29
  941. package/dist/dev-typegen-CZaPLl3V.mjs.map +0 -1
  942. package/dist/device-flow-CRd6DXmW.mjs +0 -466
  943. package/dist/device-flow-CRd6DXmW.mjs.map +0 -1
  944. package/dist/digest-BarSh-pN.mjs +0 -194
  945. package/dist/digest-BarSh-pN.mjs.map +0 -1
  946. package/dist/direct-executor-BmuFJJZV.mjs +0 -104
  947. package/dist/direct-executor-BmuFJJZV.mjs.map +0 -1
  948. package/dist/dist-BNwANFJR.mjs +0 -810
  949. package/dist/dist-BNwANFJR.mjs.map +0 -1
  950. package/dist/email-console-bJn3ctqA.mjs +0 -50
  951. package/dist/email-console-bJn3ctqA.mjs.map +0 -1
  952. package/dist/email-locale-CN6WAMx0.mjs +0 -25
  953. package/dist/email-locale-CN6WAMx0.mjs.map +0 -1
  954. package/dist/emdash-runtime-DAjghyEG.mjs +0 -4186
  955. package/dist/emdash-runtime-DAjghyEG.mjs.map +0 -1
  956. package/dist/enrich-Dl3kZ-lP.mjs +0 -194
  957. package/dist/enrich-Dl3kZ-lP.mjs.map +0 -1
  958. package/dist/entry-lock-BJYdBfXb.mjs +0 -1097
  959. package/dist/entry-lock-BJYdBfXb.mjs.map +0 -1
  960. package/dist/entry-lock-DHQOxN7R.mjs +0 -163
  961. package/dist/entry-lock-DHQOxN7R.mjs.map +0 -1
  962. package/dist/entry-lock-DVhCt49A.d.mts +0 -4368
  963. package/dist/entry-lock-DVhCt49A.d.mts.map +0 -1
  964. package/dist/entry-locks-D0foLdjQ.mjs +0 -167
  965. package/dist/entry-locks-D0foLdjQ.mjs.map +0 -1
  966. package/dist/error-CfvOHP0M.mjs +0 -90
  967. package/dist/error-CfvOHP0M.mjs.map +0 -1
  968. package/dist/errors-BF0_LFhW.mjs +0 -460
  969. package/dist/errors-BF0_LFhW.mjs.map +0 -1
  970. package/dist/errors-DgE1zJGG.mjs +0 -120
  971. package/dist/errors-DgE1zJGG.mjs.map +0 -1
  972. package/dist/escape-CuaZhZvL.mjs +0 -9
  973. package/dist/escape-CuaZhZvL.mjs.map +0 -1
  974. package/dist/fence-CMDXJYc_.mjs +0 -162
  975. package/dist/fence-CMDXJYc_.mjs.map +0 -1
  976. package/dist/field-defs-cache-HIgBbqZZ.mjs +0 -77
  977. package/dist/field-defs-cache-HIgBbqZZ.mjs.map +0 -1
  978. package/dist/focal-point-Gr34o-4o.mjs +0 -23
  979. package/dist/focal-point-Gr34o-4o.mjs.map +0 -1
  980. package/dist/fts-manager-S-K0laoS.mjs +0 -443
  981. package/dist/fts-manager-S-K0laoS.mjs.map +0 -1
  982. package/dist/gc-DjKY0Ay1.mjs +0 -75
  983. package/dist/gc-DjKY0Ay1.mjs.map +0 -1
  984. package/dist/hash-SDAW6zC-.mjs +0 -37
  985. package/dist/hash-SDAW6zC-.mjs.map +0 -1
  986. package/dist/hook-result-B5bXDgS2.d.mts +0 -31
  987. package/dist/hook-result-B5bXDgS2.d.mts.map +0 -1
  988. package/dist/hreflang-D5uNnsGJ.d.mts +0 -50
  989. package/dist/hreflang-D5uNnsGJ.d.mts.map +0 -1
  990. package/dist/hreflang-DMFBL2eb.mjs +0 -105
  991. package/dist/hreflang-DMFBL2eb.mjs.map +0 -1
  992. package/dist/http-route-dispatch-BitqzwMy.mjs +0 -339
  993. package/dist/http-route-dispatch-BitqzwMy.mjs.map +0 -1
  994. package/dist/identity-IyNWwXr6.mjs +0 -35
  995. package/dist/identity-IyNWwXr6.mjs.map +0 -1
  996. package/dist/import-C3JZplWq.mjs +0 -2020
  997. package/dist/import-C3JZplWq.mjs.map +0 -1
  998. package/dist/index-D-hdtLe8.d.mts +0 -623
  999. package/dist/index-D-hdtLe8.d.mts.map +0 -1
  1000. package/dist/install-finalization-DfM1fj5x.mjs +0 -58
  1001. package/dist/install-finalization-DfM1fj5x.mjs.map +0 -1
  1002. package/dist/keys-yxLm5l35.mjs +0 -61
  1003. package/dist/keys-yxLm5l35.mjs.map +0 -1
  1004. package/dist/kinds-CRu_T5T5.mjs +0 -961
  1005. package/dist/kinds-CRu_T5T5.mjs.map +0 -1
  1006. package/dist/lifecycle-BzeGPeQ-.mjs +0 -25
  1007. package/dist/lifecycle-BzeGPeQ-.mjs.map +0 -1
  1008. package/dist/load-XgJiE6_3.mjs +0 -28
  1009. package/dist/load-XgJiE6_3.mjs.map +0 -1
  1010. package/dist/loader-BzqeR1ZN.mjs +0 -1086
  1011. package/dist/loader-BzqeR1ZN.mjs.map +0 -1
  1012. package/dist/loops-BQSzv5Zn.mjs +0 -203
  1013. package/dist/loops-BQSzv5Zn.mjs.map +0 -1
  1014. package/dist/manifest-builder-B8zR-73J.mjs +0 -189
  1015. package/dist/manifest-builder-B8zR-73J.mjs.map +0 -1
  1016. package/dist/manifest-schema-CY3zng_M.mjs +0 -492
  1017. package/dist/manifest-schema-CY3zng_M.mjs.map +0 -1
  1018. package/dist/media-Pu1L6xir.mjs +0 -408
  1019. package/dist/media-Pu1L6xir.mjs.map +0 -1
  1020. package/dist/media-Qp5S3eH3.mjs +0 -355
  1021. package/dist/media-Qp5S3eH3.mjs.map +0 -1
  1022. package/dist/media-allowlist-BSoa9Vvm.mjs +0 -44
  1023. package/dist/media-allowlist-BSoa9Vvm.mjs.map +0 -1
  1024. package/dist/media-folders-BE0oo2eX.mjs +0 -210
  1025. package/dist/media-folders-BE0oo2eX.mjs.map +0 -1
  1026. package/dist/media-h7tOiDLj.mjs +0 -221
  1027. package/dist/media-h7tOiDLj.mjs.map +0 -1
  1028. package/dist/media-url-jArBpzIG.mjs +0 -43
  1029. package/dist/media-url-jArBpzIG.mjs.map +0 -1
  1030. package/dist/media-usage-My-Vi-ex.mjs +0 -1629
  1031. package/dist/media-usage-My-Vi-ex.mjs.map +0 -1
  1032. package/dist/media-usage-activation-HKp7zk7W.mjs +0 -78
  1033. package/dist/media-usage-activation-HKp7zk7W.mjs.map +0 -1
  1034. package/dist/media-usage-work-C2OZLCAd.mjs +0 -586
  1035. package/dist/media-usage-work-C2OZLCAd.mjs.map +0 -1
  1036. package/dist/media-usage-work-DwUNbgvS.mjs +0 -152
  1037. package/dist/media-usage-work-DwUNbgvS.mjs.map +0 -1
  1038. package/dist/menus-BM7BPLOb.mjs +0 -139
  1039. package/dist/menus-BM7BPLOb.mjs.map +0 -1
  1040. package/dist/menus-ITeAbcIF.mjs +0 -753
  1041. package/dist/menus-ITeAbcIF.mjs.map +0 -1
  1042. package/dist/menus-TsSGmSR4.mjs +0 -3608
  1043. package/dist/menus-TsSGmSR4.mjs.map +0 -1
  1044. package/dist/mime-ChLqYwDk.mjs +0 -36
  1045. package/dist/mime-ChLqYwDk.mjs.map +0 -1
  1046. package/dist/mode-CCuKXUci.mjs +0 -23
  1047. package/dist/mode-CCuKXUci.mjs.map +0 -1
  1048. package/dist/node-sqlite-compat-CONMsl-x.mjs +0 -46
  1049. package/dist/node-sqlite-compat-CONMsl-x.mjs.map +0 -1
  1050. package/dist/normalize-CO2P8-iE.mjs +0 -191
  1051. package/dist/normalize-CO2P8-iE.mjs.map +0 -1
  1052. package/dist/oauth-authorization-DlMIL5_h.mjs +0 -274
  1053. package/dist/oauth-authorization-DlMIL5_h.mjs.map +0 -1
  1054. package/dist/oauth-clients-Djq9r_KP.mjs +0 -266
  1055. package/dist/oauth-clients-Djq9r_KP.mjs.map +0 -1
  1056. package/dist/oauth-state-store-BbjnZXNC.mjs +0 -50
  1057. package/dist/oauth-state-store-BbjnZXNC.mjs.map +0 -1
  1058. package/dist/oauth-user-lookup-vue9a64A.mjs +0 -26
  1059. package/dist/oauth-user-lookup-vue9a64A.mjs.map +0 -1
  1060. package/dist/options-SQCHQCPH.d.mts +0 -81
  1061. package/dist/options-SQCHQCPH.d.mts.map +0 -1
  1062. package/dist/parse-CVgO-Qai.d.mts +0 -168
  1063. package/dist/parse-CVgO-Qai.d.mts.map +0 -1
  1064. package/dist/parse-DY6OD1j_.mjs +0 -81
  1065. package/dist/parse-DY6OD1j_.mjs.map +0 -1
  1066. package/dist/passkey-config-X_H8128a.mjs +0 -46
  1067. package/dist/passkey-config-X_H8128a.mjs.map +0 -1
  1068. package/dist/paths-JxokKIbr.mjs +0 -77
  1069. package/dist/paths-JxokKIbr.mjs.map +0 -1
  1070. package/dist/patterns-BhAvqO0S.mjs +0 -145
  1071. package/dist/patterns-BhAvqO0S.mjs.map +0 -1
  1072. package/dist/placeholder-MSEd8gty.d.mts +0 -306
  1073. package/dist/placeholder-MSEd8gty.d.mts.map +0 -1
  1074. package/dist/plan-xjcWrAah.mjs +0 -135
  1075. package/dist/plan-xjcWrAah.mjs.map +0 -1
  1076. package/dist/plugins-DUXUt8B9.mjs +0 -277
  1077. package/dist/plugins-DUXUt8B9.mjs.map +0 -1
  1078. package/dist/policy-CUvwAARc.mjs +0 -45
  1079. package/dist/policy-CUvwAARc.mjs.map +0 -1
  1080. package/dist/portable-text-5O_ZGUjB.mjs +0 -307
  1081. package/dist/portable-text-5O_ZGUjB.mjs.map +0 -1
  1082. package/dist/preview-CIUcPYr6.mjs +0 -107
  1083. package/dist/preview-CIUcPYr6.mjs.map +0 -1
  1084. package/dist/protocol-B97DZaFr.d.mts +0 -61
  1085. package/dist/protocol-B97DZaFr.d.mts.map +0 -1
  1086. package/dist/public-submission-BFBUrqst.mjs +0 -250
  1087. package/dist/public-submission-BFBUrqst.mjs.map +0 -1
  1088. package/dist/public-url-Bn7U0D7-.mjs +0 -101
  1089. package/dist/public-url-Bn7U0D7-.mjs.map +0 -1
  1090. package/dist/query-B48peoRT.mjs +0 -890
  1091. package/dist/query-B48peoRT.mjs.map +0 -1
  1092. package/dist/query-C4IH0uhR.mjs +0 -41
  1093. package/dist/query-C4IH0uhR.mjs.map +0 -1
  1094. package/dist/rate-limit-BZ6nybgc.mjs +0 -120
  1095. package/dist/rate-limit-BZ6nybgc.mjs.map +0 -1
  1096. package/dist/receipt-B4wJj5Jq.mjs +0 -43
  1097. package/dist/receipt-B4wJj5Jq.mjs.map +0 -1
  1098. package/dist/redirect-Cd1E7VUt.mjs +0 -17
  1099. package/dist/redirect-Cd1E7VUt.mjs.map +0 -1
  1100. package/dist/redirect-iJf5fltD.mjs +0 -415
  1101. package/dist/redirect-iJf5fltD.mjs.map +0 -1
  1102. package/dist/redirects-CYu1u1aK.mjs +0 -446
  1103. package/dist/redirects-CYu1u1aK.mjs.map +0 -1
  1104. package/dist/redirects-Cv9apQKj.mjs +0 -148
  1105. package/dist/redirects-Cv9apQKj.mjs.map +0 -1
  1106. package/dist/relation-M4NUCb0b.mjs +0 -334
  1107. package/dist/relation-M4NUCb0b.mjs.map +0 -1
  1108. package/dist/relations-CCif47Oq.mjs +0 -403
  1109. package/dist/relations-CCif47Oq.mjs.map +0 -1
  1110. package/dist/relations-CK9CYUyr.mjs +0 -310
  1111. package/dist/relations-CK9CYUyr.mjs.map +0 -1
  1112. package/dist/request-cache-DzLYKm_x.mjs +0 -104
  1113. package/dist/request-cache-DzLYKm_x.mjs.map +0 -1
  1114. package/dist/request-meta-sZXt3sRo.mjs +0 -141
  1115. package/dist/request-meta-sZXt3sRo.mjs.map +0 -1
  1116. package/dist/resolve-2WbQsCvT.mjs +0 -199
  1117. package/dist/resolve-2WbQsCvT.mjs.map +0 -1
  1118. package/dist/route-wire--1hLuACz.mjs +0 -197
  1119. package/dist/route-wire--1hLuACz.mjs.map +0 -1
  1120. package/dist/routes-CUsM40Cc.mjs +0 -272
  1121. package/dist/routes-CUsM40Cc.mjs.map +0 -1
  1122. package/dist/runner-1y4J9fJB.mjs +0 -5742
  1123. package/dist/runner-1y4J9fJB.mjs.map +0 -1
  1124. package/dist/runner-D5_LzKXI.d.mts +0 -68
  1125. package/dist/runner-D5_LzKXI.d.mts.map +0 -1
  1126. package/dist/schema-BABiRdsH.mjs +0 -13
  1127. package/dist/schema-BABiRdsH.mjs.map +0 -1
  1128. package/dist/schema-Du3MzCG0.mjs +0 -446
  1129. package/dist/schema-Du3MzCG0.mjs.map +0 -1
  1130. package/dist/scopes-Dbk-ElhT.mjs +0 -34
  1131. package/dist/scopes-Dbk-ElhT.mjs.map +0 -1
  1132. package/dist/search-Bt1PL1jf.mjs +0 -448
  1133. package/dist/search-Bt1PL1jf.mjs.map +0 -1
  1134. package/dist/sections-Ddptx_o9.mjs +0 -346
  1135. package/dist/sections-Ddptx_o9.mjs.map +0 -1
  1136. package/dist/seo-CZT2oLtT.mjs +0 -114
  1137. package/dist/seo-CZT2oLtT.mjs.map +0 -1
  1138. package/dist/seo-D5w3-Azy.mjs +0 -133
  1139. package/dist/seo-D5w3-Azy.mjs.map +0 -1
  1140. package/dist/service-DuykXPyW.mjs +0 -150
  1141. package/dist/service-DuykXPyW.mjs.map +0 -1
  1142. package/dist/session-user-BhaVp8w0.mjs +0 -51
  1143. package/dist/session-user-BhaVp8w0.mjs.map +0 -1
  1144. package/dist/settings-2xNYr90o.mjs +0 -51
  1145. package/dist/settings-2xNYr90o.mjs.map +0 -1
  1146. package/dist/settings-CgjRWGW9.mjs +0 -439
  1147. package/dist/settings-CgjRWGW9.mjs.map +0 -1
  1148. package/dist/settings-DYidIB26.mjs +0 -61
  1149. package/dist/settings-DYidIB26.mjs.map +0 -1
  1150. package/dist/setup-complete-bOogcHWG.mjs +0 -26
  1151. package/dist/setup-complete-bOogcHWG.mjs.map +0 -1
  1152. package/dist/setup-nonce-0EGuKM4s.mjs +0 -25
  1153. package/dist/setup-nonce-0EGuKM4s.mjs.map +0 -1
  1154. package/dist/site-settings-DOgRUoFX.mjs +0 -50
  1155. package/dist/site-settings-DOgRUoFX.mjs.map +0 -1
  1156. package/dist/site-url-BU_bbxwj.mjs +0 -16
  1157. package/dist/site-url-BU_bbxwj.mjs.map +0 -1
  1158. package/dist/snapshot-CugwUqKQ.mjs +0 -237
  1159. package/dist/snapshot-CugwUqKQ.mjs.map +0 -1
  1160. package/dist/ssrf-CJUnJymJ.mjs +0 -406
  1161. package/dist/ssrf-CJUnJymJ.mjs.map +0 -1
  1162. package/dist/stage-DgrBz_du.mjs +0 -662
  1163. package/dist/stage-DgrBz_du.mjs.map +0 -1
  1164. package/dist/state-DDiPySSG.mjs +0 -153
  1165. package/dist/state-DDiPySSG.mjs.map +0 -1
  1166. package/dist/status-DZKIG4a9.mjs +0 -30
  1167. package/dist/status-DZKIG4a9.mjs.map +0 -1
  1168. package/dist/storage-query-Bdv7A62k.d.mts +0 -1576
  1169. package/dist/storage-query-Bdv7A62k.d.mts.map +0 -1
  1170. package/dist/tar-_1AgTYFu.mjs +0 -449
  1171. package/dist/tar-_1AgTYFu.mjs.map +0 -1
  1172. package/dist/target-_7pn2Gbg.mjs +0 -27
  1173. package/dist/target-_7pn2Gbg.mjs.map +0 -1
  1174. package/dist/taxonomies-C1IwNe8Q.mjs +0 -697
  1175. package/dist/taxonomies-C1IwNe8Q.mjs.map +0 -1
  1176. package/dist/taxonomies-C_XMoRcX.mjs +0 -939
  1177. package/dist/taxonomies-C_XMoRcX.mjs.map +0 -1
  1178. package/dist/taxonomy-C3Fu1YeH.mjs +0 -525
  1179. package/dist/taxonomy-C3Fu1YeH.mjs.map +0 -1
  1180. package/dist/tokens-u78jETkX.mjs +0 -171
  1181. package/dist/tokens-u78jETkX.mjs.map +0 -1
  1182. package/dist/transaction-BcJO4Tmc.mjs +0 -29
  1183. package/dist/transaction-BcJO4Tmc.mjs.map +0 -1
  1184. package/dist/transfer-BhUCrgDc.mjs +0 -8675
  1185. package/dist/transfer-BhUCrgDc.mjs.map +0 -1
  1186. package/dist/transfer-DIGvR9Af.mjs +0 -166
  1187. package/dist/transfer-DIGvR9Af.mjs.map +0 -1
  1188. package/dist/transfer-download-Pml7RMio.mjs +0 -33
  1189. package/dist/transfer-download-Pml7RMio.mjs.map +0 -1
  1190. package/dist/transformations-9gfpwY65.mjs +0 -196
  1191. package/dist/transformations-9gfpwY65.mjs.map +0 -1
  1192. package/dist/transport-BIfH7_hx.d.mts +0 -42
  1193. package/dist/transport-BIfH7_hx.d.mts.map +0 -1
  1194. package/dist/transport-DKWIq53q.mjs +0 -136
  1195. package/dist/transport-DKWIq53q.mjs.map +0 -1
  1196. package/dist/trusted-proxy-tKiVtyTD.mjs +0 -51
  1197. package/dist/trusted-proxy-tKiVtyTD.mjs.map +0 -1
  1198. package/dist/turnstile-DpsoyOfg.mjs +0 -53
  1199. package/dist/turnstile-DpsoyOfg.mjs.map +0 -1
  1200. package/dist/types-B4sUC2p1.d.mts +0 -198
  1201. package/dist/types-B4sUC2p1.d.mts.map +0 -1
  1202. package/dist/types-B7Lmsh1E.d.mts +0 -887
  1203. package/dist/types-B7Lmsh1E.d.mts.map +0 -1
  1204. package/dist/types-BZakh7Ym.mjs +0 -22
  1205. package/dist/types-BZakh7Ym.mjs.map +0 -1
  1206. package/dist/types-B_CppEmv.d.mts +0 -264
  1207. package/dist/types-B_CppEmv.d.mts.map +0 -1
  1208. package/dist/types-BcrBrE6-.mjs +0 -159
  1209. package/dist/types-BcrBrE6-.mjs.map +0 -1
  1210. package/dist/types-BkUg2yHx.mjs +0 -92
  1211. package/dist/types-BkUg2yHx.mjs.map +0 -1
  1212. package/dist/types-CAZgq9fO.d.mts +0 -124
  1213. package/dist/types-CAZgq9fO.d.mts.map +0 -1
  1214. package/dist/types-Cd-O03VG.d.mts +0 -363
  1215. package/dist/types-Cd-O03VG.d.mts.map +0 -1
  1216. package/dist/types-Cr-Kg-3D.d.mts +0 -1641
  1217. package/dist/types-Cr-Kg-3D.d.mts.map +0 -1
  1218. package/dist/types-D2fvWd1i.d.mts +0 -359
  1219. package/dist/types-D2fvWd1i.d.mts.map +0 -1
  1220. package/dist/types-D7HUsguf.mjs +0 -77
  1221. package/dist/types-D7HUsguf.mjs.map +0 -1
  1222. package/dist/types-DA1Te3Oy.d.mts +0 -198
  1223. package/dist/types-DA1Te3Oy.d.mts.map +0 -1
  1224. package/dist/types-DhV6Q5bP.mjs +0 -18
  1225. package/dist/types-DhV6Q5bP.mjs.map +0 -1
  1226. package/dist/types-DnnVSl6Y.d.mts +0 -85
  1227. package/dist/types-DnnVSl6Y.d.mts.map +0 -1
  1228. package/dist/types-VT4-BugW.mjs +0 -16
  1229. package/dist/types-VT4-BugW.mjs.map +0 -1
  1230. package/dist/upload-attempts-B68ZGNu9.mjs +0 -32
  1231. package/dist/upload-attempts-B68ZGNu9.mjs.map +0 -1
  1232. package/dist/url-pattern-CCeZMGOh.mjs +0 -33
  1233. package/dist/url-pattern-CCeZMGOh.mjs.map +0 -1
  1234. package/dist/user-DDSL-sGw.mjs +0 -171
  1235. package/dist/user-DDSL-sGw.mjs.map +0 -1
  1236. package/dist/utils-DdhmO9w9.mjs +0 -439
  1237. package/dist/utils-DdhmO9w9.mjs.map +0 -1
  1238. package/dist/validate-CHosPEhs.mjs +0 -453
  1239. package/dist/validate-CHosPEhs.mjs.map +0 -1
  1240. package/dist/validate-CM79QXYE.d.mts +0 -432
  1241. package/dist/validate-CM79QXYE.d.mts.map +0 -1
  1242. package/dist/validation-BFecQczG.mjs +0 -218
  1243. package/dist/validation-BFecQczG.mjs.map +0 -1
  1244. package/dist/version-BRZXVifl.mjs +0 -9
  1245. package/dist/version-BRZXVifl.mjs.map +0 -1
  1246. package/dist/version-DUQDHgrf.mjs +0 -7
  1247. package/dist/version-DUQDHgrf.mjs.map +0 -1
  1248. package/dist/widgets-WdV72brA.mjs +0 -126
  1249. package/dist/widgets-WdV72brA.mjs.map +0 -1
  1250. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts +0 -34
  1251. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts.map +0 -1
  1252. package/dist/wxr-taxonomies-DP6ESgMN.mjs +0 -372
  1253. package/dist/wxr-taxonomies-DP6ESgMN.mjs.map +0 -1
  1254. package/dist/zod-generator-D6uE4WiS.mjs +0 -389
  1255. package/dist/zod-generator-D6uE4WiS.mjs.map +0 -1
  1256. package/src/astro/routes/api/relations/[id]/translations.ts +0 -33
  1257. /package/dist/{api-tokens-CE1ECIg0.mjs → api-tokens-FaG1zPsj.mjs} +0 -0
  1258. /package/dist/{ssrf-DpBH7aOt.mjs → ssrf-DZOt8Qof.mjs} +0 -0
@@ -0,0 +1,33 @@
1
+ //#region src/api/transfer-download.ts
2
+ const DOWNLOAD_HEADERS = {
3
+ "Cache-Control": "private, no-store",
4
+ "X-Content-Type-Options": "nosniff"
5
+ };
6
+ /** A downloaded package file: raw bytes with their size and SHA-256 ETag. */
7
+ function exportFileResponse(file) {
8
+ return new Response(file.body, {
9
+ status: 200,
10
+ headers: {
11
+ ...DOWNLOAD_HEADERS,
12
+ "Content-Type": file.path === "manifest.json" ? "application/json" : "application/octet-stream",
13
+ "Content-Length": String(file.bytes),
14
+ "Content-Disposition": "attachment",
15
+ ETag: `"${file.sha256}"`
16
+ }
17
+ });
18
+ }
19
+ /** A streamed `.emdash` archive of an export. */
20
+ function exportArchiveResponse(operationId, body) {
21
+ return new Response(body, {
22
+ status: 200,
23
+ headers: {
24
+ ...DOWNLOAD_HEADERS,
25
+ "Content-Type": "application/x-tar",
26
+ "Content-Disposition": `attachment; filename="emdash-site-${operationId}.emdash"`
27
+ }
28
+ });
29
+ }
30
+
31
+ //#endregion
32
+ export { exportFileResponse as n, exportArchiveResponse as t };
33
+ //# sourceMappingURL=transfer-download-DkoCDA9d.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-download-DkoCDA9d.mjs","names":[],"sources":["../src/api/transfer-download.ts"],"sourcesContent":["import type { ExportFileStream } from \"./handlers/transfer.js\";\n\nconst DOWNLOAD_HEADERS = {\n\t\"Cache-Control\": \"private, no-store\",\n\t\"X-Content-Type-Options\": \"nosniff\",\n};\n\n/** A downloaded package file: raw bytes with their size and SHA-256 ETag. */\nexport function exportFileResponse(file: ExportFileStream): Response {\n\treturn new Response(file.body, {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t...DOWNLOAD_HEADERS,\n\t\t\t\"Content-Type\":\n\t\t\t\tfile.path === \"manifest.json\" ? \"application/json\" : \"application/octet-stream\",\n\t\t\t\"Content-Length\": String(file.bytes),\n\t\t\t\"Content-Disposition\": \"attachment\",\n\t\t\tETag: `\"${file.sha256}\"`,\n\t\t},\n\t});\n}\n\n/** A streamed `.emdash` archive of an export. */\nexport function exportArchiveResponse(\n\toperationId: string,\n\tbody: ReadableStream<Uint8Array>,\n): Response {\n\treturn new Response(body, {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t...DOWNLOAD_HEADERS,\n\t\t\t\"Content-Type\": \"application/x-tar\",\n\t\t\t\"Content-Disposition\": `attachment; filename=\"emdash-site-${operationId}.emdash\"`,\n\t\t},\n\t});\n}\n"],"mappings":";AAEA,MAAM,mBAAmB;CACxB,iBAAiB;CACjB,0BAA0B;CAC1B;;AAGD,SAAgB,mBAAmB,MAAkC;AACpE,QAAO,IAAI,SAAS,KAAK,MAAM;EAC9B,QAAQ;EACR,SAAS;GACR,GAAG;GACH,gBACC,KAAK,SAAS,kBAAkB,qBAAqB;GACtD,kBAAkB,OAAO,KAAK,MAAM;GACpC,uBAAuB;GACvB,MAAM,IAAI,KAAK,OAAO;GACtB;EACD,CAAC;;;AAIH,SAAgB,sBACf,aACA,MACW;AACX,QAAO,IAAI,SAAS,MAAM;EACzB,QAAQ;EACR,SAAS;GACR,GAAG;GACH,gBAAgB;GAChB,uBAAuB,qCAAqC,YAAY;GACxE;EACD,CAAC"}
@@ -0,0 +1,166 @@
1
+ import { d as IMPORT_STATES, l as EXPORT_STATES, t as APPROVAL_STATUSES } from "./approvals-CAX9Yw33.mjs";
2
+ import { a as siteImportDecisionsInputSchema, o as siteImportPlanSchema } from "./plan-DqeZKuaR.mjs";
3
+ import { z } from "zod";
4
+
5
+ //#region src/api/schemas/transfer.ts
6
+ const sha256DigestSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/);
7
+ const transferPaginationQuery = z.object({
8
+ cursor: z.string().min(1).max(2048).optional().meta({ description: "Opaque cursor from the previous page's `nextCursor`" }),
9
+ limit: z.coerce.number().int().min(1).max(100).optional().default(50).meta({ description: "Maximum number of items to return (1-100, default 50)" })
10
+ });
11
+ const transferApprovalListQuery = transferPaginationQuery.extend({ status: z.enum(APPROVAL_STATUSES).optional().meta({ description: "Only approvals in this status" }) });
12
+ const transferImportAnalyzeBody = z.object({ decisions: siteImportDecisionsInputSchema.optional().meta({ description: "Principal mappings and site title/tagline choices. Applied once analysis has produced a plan; omitted values keep the plan's defaults." }) }).meta({ id: "TransferImportAnalyzeBody" });
13
+ const transferOperationSchema = z.object({
14
+ id: z.string(),
15
+ kind: z.enum(["export", "import"]),
16
+ state: z.union([z.enum(EXPORT_STATES), z.enum(IMPORT_STATES)]),
17
+ stage: z.string().nullable(),
18
+ cursor: z.unknown().nullable(),
19
+ progress: z.object({
20
+ done: z.number().int().min(0),
21
+ total: z.number().int().min(0),
22
+ records: z.number().int().min(0).optional().meta({ description: "Records an export has written so far" }),
23
+ bytesDone: z.number().int().min(0).optional(),
24
+ bytesTotal: z.number().int().min(0).optional()
25
+ }).nullable(),
26
+ options: z.unknown(),
27
+ idempotencyKey: z.string().nullable(),
28
+ packageDigest: sha256DigestSchema.nullable(),
29
+ planDigest: sha256DigestSchema.nullable(),
30
+ originSiteId: z.string().nullable(),
31
+ receipt: z.unknown().nullable(),
32
+ errorCode: z.string().nullable(),
33
+ errorDetail: z.record(z.string(), z.unknown()).nullable(),
34
+ writeEpoch: z.number().int(),
35
+ attemptCount: z.number().int(),
36
+ leaseExpiresAt: z.string().nullable(),
37
+ runtimeGeneration: z.number().int(),
38
+ cancelRequestedAt: z.string().nullable(),
39
+ mutationStartedAt: z.string().nullable(),
40
+ createdBy: z.string(),
41
+ createdAt: z.string(),
42
+ updatedAt: z.string(),
43
+ completedAt: z.string().nullable(),
44
+ expiresAt: z.string().nullable(),
45
+ stagingCollectedAt: z.string().nullable()
46
+ }).meta({ id: "TransferOperation" });
47
+ const transferOperationResponseSchema = z.object({ operation: transferOperationSchema }).meta({ id: "TransferOperationResponse" });
48
+ const transferOperationListResponseSchema = z.object({
49
+ items: z.array(transferOperationSchema),
50
+ nextCursor: z.string().optional()
51
+ }).meta({ id: "TransferOperationListResponse" });
52
+ const transferMissingFileSchema = z.object({
53
+ path: z.string(),
54
+ bytes: z.number().int().min(0),
55
+ sha256: z.string().regex(/^[0-9a-f]{64}$/)
56
+ }).meta({ id: "TransferMissingFile" });
57
+ const transferMissingFilesResponseSchema = z.object({
58
+ items: z.array(transferMissingFileSchema),
59
+ nextCursor: z.string().optional()
60
+ }).meta({ id: "TransferMissingFilesResponse" });
61
+ const transferImportCreateResponseSchema = z.object({
62
+ operation: transferOperationSchema,
63
+ created: z.boolean(),
64
+ missing: transferMissingFilesResponseSchema
65
+ }).meta({ id: "TransferImportCreateResponse" });
66
+ const transferImportStatusResponseSchema = z.object({
67
+ operation: transferOperationSchema,
68
+ files: z.object({
69
+ declared: z.number().int().min(0),
70
+ verified: z.number().int().min(0)
71
+ })
72
+ }).meta({ id: "TransferImportStatusResponse" });
73
+ const transferFileUploadResponseSchema = z.object({
74
+ path: z.string(),
75
+ bytes: z.number().int().min(0),
76
+ alreadyVerified: z.boolean(),
77
+ remaining: z.number().int().min(0)
78
+ }).meta({ id: "TransferFileUploadResponse" });
79
+ const transferImportAnalyzeResponseSchema = z.object({
80
+ operation: transferOperationSchema,
81
+ plan: siteImportPlanSchema.optional(),
82
+ planDigest: sha256DigestSchema.optional(),
83
+ nextRequestInMs: z.number().int().min(0).nullable()
84
+ }).meta({ id: "TransferImportAnalyzeResponse" });
85
+ const transferImportPlanResponseSchema = z.object({
86
+ plan: siteImportPlanSchema,
87
+ planDigest: sha256DigestSchema
88
+ }).meta({ id: "TransferImportPlanResponse" });
89
+ const transferCapabilitiesSchema = z.object({
90
+ formatVersions: z.array(z.string()),
91
+ features: z.array(z.string()),
92
+ optionalFeatures: z.array(z.string()),
93
+ limits: z.object({
94
+ manifestBytes: z.number().int(),
95
+ recordLineBytes: z.number().int(),
96
+ chunkBytes: z.number().int(),
97
+ chunkRecords: z.number().int(),
98
+ totalRecords: z.number().int(),
99
+ totalFiles: z.number().int(),
100
+ indexChunks: z.number().int(),
101
+ jsonDepth: z.number().int(),
102
+ maxBlobBytes: z.number().int()
103
+ }),
104
+ portableDomain: z.object({
105
+ empty: z.boolean(),
106
+ blockers: z.array(z.record(z.string(), z.string())),
107
+ seededScaffold: z.array(z.record(z.string(), z.string()))
108
+ })
109
+ }).meta({ id: "TransferCapabilities" });
110
+ const transferApprovalSchema = z.object({
111
+ id: z.string(),
112
+ status: z.enum(APPROVAL_STATUSES),
113
+ action: z.enum(["export", "import"]),
114
+ userId: z.string(),
115
+ requestedByTokenId: z.string().nullable(),
116
+ approvedBy: z.string().nullable(),
117
+ operationId: z.string().nullable(),
118
+ paramsDigest: sha256DigestSchema.nullable(),
119
+ packageDigest: sha256DigestSchema.nullable(),
120
+ planDigest: sha256DigestSchema.nullable(),
121
+ expiresAt: z.string(),
122
+ createdAt: z.string(),
123
+ decidedAt: z.string().nullable(),
124
+ consumedAt: z.string().nullable()
125
+ }).meta({ id: "TransferApproval" });
126
+ const transferApprovalResponseSchema = z.object({ approval: transferApprovalSchema }).meta({ id: "TransferApprovalResponse" });
127
+ const transferApprovalListResponseSchema = z.object({
128
+ items: z.array(transferApprovalSchema),
129
+ nextCursor: z.string().optional()
130
+ }).meta({ id: "TransferApprovalListResponse" });
131
+ const transferImportExecuteBody = z.object({
132
+ packageDigest: sha256DigestSchema,
133
+ planDigest: sha256DigestSchema
134
+ }).meta({ id: "TransferImportExecuteBody" });
135
+ const transferExportCreateBody = z.strictObject({ comments: z.boolean().optional().meta({ description: "Include comments and reactions (default true)" }) }).meta({ id: "TransferExportCreateBody" });
136
+ const transferExportCreateResponseSchema = z.object({
137
+ operation: transferOperationSchema,
138
+ created: z.boolean()
139
+ }).meta({ id: "TransferExportCreateResponse" });
140
+ const transferAdvanceResponseSchema = z.object({
141
+ operation: transferOperationSchema,
142
+ nextRequestInMs: z.number().int().min(0).nullable()
143
+ }).meta({ id: "TransferAdvanceResponse" });
144
+ const transferImportReceiptSchema = z.object({
145
+ operationId: z.string(),
146
+ packageDigest: sha256DigestSchema,
147
+ planDigest: sha256DigestSchema,
148
+ targetSiteId: z.string(),
149
+ originSiteId: z.string(),
150
+ formatVersion: z.string(),
151
+ importerEmDashVersion: z.string(),
152
+ completedAt: z.string(),
153
+ logicalDigest: sha256DigestSchema,
154
+ counts: z.record(z.string(), z.number().int().min(0)),
155
+ warnings: z.array(z.object({
156
+ code: z.string(),
157
+ message: z.string()
158
+ })),
159
+ verification: z.literal("verified"),
160
+ receiptDigest: sha256DigestSchema.meta({ description: "Digest of the canonical JSON of every other receipt field" })
161
+ }).meta({ id: "TransferImportReceipt" });
162
+ const transferImportReceiptResponseSchema = z.object({ receipt: transferImportReceiptSchema }).meta({ id: "TransferImportReceiptResponse" });
163
+
164
+ //#endregion
165
+ export { transferOperationListResponseSchema as _, transferCapabilitiesSchema as a, transferFileUploadResponseSchema as c, transferImportCreateResponseSchema as d, transferImportExecuteBody as f, transferMissingFilesResponseSchema as g, transferImportStatusResponseSchema as h, transferApprovalResponseSchema as i, transferImportAnalyzeBody as l, transferImportReceiptResponseSchema as m, transferApprovalListQuery as n, transferExportCreateBody as o, transferImportPlanResponseSchema as p, transferApprovalListResponseSchema as r, transferExportCreateResponseSchema as s, transferAdvanceResponseSchema as t, transferImportAnalyzeResponseSchema as u, transferOperationResponseSchema as v, transferPaginationQuery as y };
166
+ //# sourceMappingURL=transfer-iQ26J-RT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-iQ26J-RT.mjs","names":[],"sources":["../src/api/schemas/transfer.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport {\n\tsiteImportDecisionsInputSchema,\n\tsiteImportPlanSchema,\n} from \"../../transfer/format/plan.js\";\nimport { APPROVAL_STATUSES } from \"../../transfer/ops/approvals.js\";\nimport { EXPORT_STATES, IMPORT_STATES } from \"../../transfer/ops/states.js\";\n\nconst sha256DigestSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/);\n\nexport const transferPaginationQuery = z.object({\n\tcursor: z.string().min(1).max(2048).optional().meta({\n\t\tdescription: \"Opaque cursor from the previous page's `nextCursor`\",\n\t}),\n\tlimit: z.coerce.number().int().min(1).max(100).optional().default(50).meta({\n\t\tdescription: \"Maximum number of items to return (1-100, default 50)\",\n\t}),\n});\n\nexport const transferApprovalListQuery = transferPaginationQuery.extend({\n\tstatus: z\n\t\t.enum(APPROVAL_STATUSES)\n\t\t.optional()\n\t\t.meta({ description: \"Only approvals in this status\" }),\n});\n\nexport const transferImportAnalyzeBody = z\n\t.object({\n\t\tdecisions: siteImportDecisionsInputSchema.optional().meta({\n\t\t\tdescription:\n\t\t\t\t\"Principal mappings and site title/tagline choices. Applied once analysis has produced a plan; omitted values keep the plan's defaults.\",\n\t\t}),\n\t})\n\t.meta({ id: \"TransferImportAnalyzeBody\" });\n\nexport const transferOperationSchema = z\n\t.object({\n\t\tid: z.string(),\n\t\tkind: z.enum([\"export\", \"import\"]),\n\t\tstate: z.union([z.enum(EXPORT_STATES), z.enum(IMPORT_STATES)]),\n\t\tstage: z.string().nullable(),\n\t\tcursor: z.unknown().nullable(),\n\t\tprogress: z\n\t\t\t.object({\n\t\t\t\tdone: z.number().int().min(0),\n\t\t\t\ttotal: z.number().int().min(0),\n\t\t\t\trecords: z.number().int().min(0).optional().meta({\n\t\t\t\t\tdescription: \"Records an export has written so far\",\n\t\t\t\t}),\n\t\t\t\tbytesDone: z.number().int().min(0).optional(),\n\t\t\t\tbytesTotal: z.number().int().min(0).optional(),\n\t\t\t})\n\t\t\t.nullable(),\n\t\toptions: z.unknown(),\n\t\tidempotencyKey: z.string().nullable(),\n\t\tpackageDigest: sha256DigestSchema.nullable(),\n\t\tplanDigest: sha256DigestSchema.nullable(),\n\t\toriginSiteId: z.string().nullable(),\n\t\treceipt: z.unknown().nullable(),\n\t\terrorCode: z.string().nullable(),\n\t\terrorDetail: z.record(z.string(), z.unknown()).nullable(),\n\t\twriteEpoch: z.number().int(),\n\t\tattemptCount: z.number().int(),\n\t\tleaseExpiresAt: z.string().nullable(),\n\t\truntimeGeneration: z.number().int(),\n\t\tcancelRequestedAt: z.string().nullable(),\n\t\tmutationStartedAt: z.string().nullable(),\n\t\tcreatedBy: z.string(),\n\t\tcreatedAt: z.string(),\n\t\tupdatedAt: z.string(),\n\t\tcompletedAt: z.string().nullable(),\n\t\texpiresAt: z.string().nullable(),\n\t\tstagingCollectedAt: z.string().nullable(),\n\t})\n\t.meta({ id: \"TransferOperation\" });\n\nexport const transferOperationResponseSchema = z\n\t.object({ operation: transferOperationSchema })\n\t.meta({ id: \"TransferOperationResponse\" });\n\nexport const transferOperationListResponseSchema = z\n\t.object({\n\t\titems: z.array(transferOperationSchema),\n\t\tnextCursor: z.string().optional(),\n\t})\n\t.meta({ id: \"TransferOperationListResponse\" });\n\nexport const transferMissingFileSchema = z\n\t.object({\n\t\tpath: z.string(),\n\t\tbytes: z.number().int().min(0),\n\t\tsha256: z.string().regex(/^[0-9a-f]{64}$/),\n\t})\n\t.meta({ id: \"TransferMissingFile\" });\n\nexport const transferMissingFilesResponseSchema = z\n\t.object({\n\t\titems: z.array(transferMissingFileSchema),\n\t\tnextCursor: z.string().optional(),\n\t})\n\t.meta({ id: \"TransferMissingFilesResponse\" });\n\nexport const transferImportCreateResponseSchema = z\n\t.object({\n\t\toperation: transferOperationSchema,\n\t\tcreated: z.boolean(),\n\t\tmissing: transferMissingFilesResponseSchema,\n\t})\n\t.meta({ id: \"TransferImportCreateResponse\" });\n\nexport const transferImportStatusResponseSchema = z\n\t.object({\n\t\toperation: transferOperationSchema,\n\t\tfiles: z.object({\n\t\t\tdeclared: z.number().int().min(0),\n\t\t\tverified: z.number().int().min(0),\n\t\t}),\n\t})\n\t.meta({ id: \"TransferImportStatusResponse\" });\n\nexport const transferFileUploadResponseSchema = z\n\t.object({\n\t\tpath: z.string(),\n\t\tbytes: z.number().int().min(0),\n\t\talreadyVerified: z.boolean(),\n\t\tremaining: z.number().int().min(0),\n\t})\n\t.meta({ id: \"TransferFileUploadResponse\" });\n\nexport const transferImportAnalyzeResponseSchema = z\n\t.object({\n\t\toperation: transferOperationSchema,\n\t\tplan: siteImportPlanSchema.optional(),\n\t\tplanDigest: sha256DigestSchema.optional(),\n\t\tnextRequestInMs: z.number().int().min(0).nullable(),\n\t})\n\t.meta({ id: \"TransferImportAnalyzeResponse\" });\n\nexport const transferImportPlanResponseSchema = z\n\t.object({\n\t\tplan: siteImportPlanSchema,\n\t\tplanDigest: sha256DigestSchema,\n\t})\n\t.meta({ id: \"TransferImportPlanResponse\" });\n\nexport const transferCapabilitiesSchema = z\n\t.object({\n\t\tformatVersions: z.array(z.string()),\n\t\tfeatures: z.array(z.string()),\n\t\toptionalFeatures: z.array(z.string()),\n\t\tlimits: z.object({\n\t\t\tmanifestBytes: z.number().int(),\n\t\t\trecordLineBytes: z.number().int(),\n\t\t\tchunkBytes: z.number().int(),\n\t\t\tchunkRecords: z.number().int(),\n\t\t\ttotalRecords: z.number().int(),\n\t\t\ttotalFiles: z.number().int(),\n\t\t\tindexChunks: z.number().int(),\n\t\t\tjsonDepth: z.number().int(),\n\t\t\tmaxBlobBytes: z.number().int(),\n\t\t}),\n\t\tportableDomain: z.object({\n\t\t\tempty: z.boolean(),\n\t\t\tblockers: z.array(z.record(z.string(), z.string())),\n\t\t\tseededScaffold: z.array(z.record(z.string(), z.string())),\n\t\t}),\n\t})\n\t.meta({ id: \"TransferCapabilities\" });\n\nexport const transferApprovalSchema = z\n\t.object({\n\t\tid: z.string(),\n\t\tstatus: z.enum(APPROVAL_STATUSES),\n\t\taction: z.enum([\"export\", \"import\"]),\n\t\tuserId: z.string(),\n\t\trequestedByTokenId: z.string().nullable(),\n\t\tapprovedBy: z.string().nullable(),\n\t\toperationId: z.string().nullable(),\n\t\tparamsDigest: sha256DigestSchema.nullable(),\n\t\tpackageDigest: sha256DigestSchema.nullable(),\n\t\tplanDigest: sha256DigestSchema.nullable(),\n\t\texpiresAt: z.string(),\n\t\tcreatedAt: z.string(),\n\t\tdecidedAt: z.string().nullable(),\n\t\tconsumedAt: z.string().nullable(),\n\t})\n\t.meta({ id: \"TransferApproval\" });\n\nexport const transferApprovalResponseSchema = z\n\t.object({ approval: transferApprovalSchema })\n\t.meta({ id: \"TransferApprovalResponse\" });\n\nexport const transferApprovalListResponseSchema = z\n\t.object({\n\t\titems: z.array(transferApprovalSchema),\n\t\tnextCursor: z.string().optional(),\n\t})\n\t.meta({ id: \"TransferApprovalListResponse\" });\n\nexport const transferImportExecuteBody = z\n\t.object({\n\t\tpackageDigest: sha256DigestSchema,\n\t\tplanDigest: sha256DigestSchema,\n\t})\n\t.meta({ id: \"TransferImportExecuteBody\" });\n\nexport const transferExportCreateBody = z\n\t.strictObject({\n\t\tcomments: z.boolean().optional().meta({\n\t\t\tdescription: \"Include comments and reactions (default true)\",\n\t\t}),\n\t})\n\t.meta({ id: \"TransferExportCreateBody\" });\n\nexport const transferExportCreateResponseSchema = z\n\t.object({ operation: transferOperationSchema, created: z.boolean() })\n\t.meta({ id: \"TransferExportCreateResponse\" });\n\nexport const transferAdvanceResponseSchema = z\n\t.object({\n\t\toperation: transferOperationSchema,\n\t\tnextRequestInMs: z.number().int().min(0).nullable(),\n\t})\n\t.meta({ id: \"TransferAdvanceResponse\" });\n\nexport const transferImportReceiptSchema = z\n\t.object({\n\t\toperationId: z.string(),\n\t\tpackageDigest: sha256DigestSchema,\n\t\tplanDigest: sha256DigestSchema,\n\t\ttargetSiteId: z.string(),\n\t\toriginSiteId: z.string(),\n\t\tformatVersion: z.string(),\n\t\timporterEmDashVersion: z.string(),\n\t\tcompletedAt: z.string(),\n\t\tlogicalDigest: sha256DigestSchema,\n\t\tcounts: z.record(z.string(), z.number().int().min(0)),\n\t\twarnings: z.array(z.object({ code: z.string(), message: z.string() })),\n\t\tverification: z.literal(\"verified\"),\n\t\treceiptDigest: sha256DigestSchema.meta({\n\t\t\tdescription: \"Digest of the canonical JSON of every other receipt field\",\n\t\t}),\n\t})\n\t.meta({ id: \"TransferImportReceipt\" });\n\nexport const transferImportReceiptResponseSchema = z\n\t.object({ receipt: transferImportReceiptSchema })\n\t.meta({ id: \"TransferImportReceiptResponse\" });\n"],"mappings":"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"}
@@ -0,0 +1,196 @@
1
+ import { h as portableIdSchema, i as RECORD_KINDS } from "./kinds-CYmRESWj.mjs";
2
+ import { z } from "zod";
3
+
4
+ //#region src/transfer/format/transformations.ts
5
+ /**
6
+ * Declared transformations: every way the target state may legitimately
7
+ * differ from the package's records.
8
+ *
9
+ * Two families exist:
10
+ * - Export transformations are applied by the exporter and declared in
11
+ * `manifest.transformations` (the package already reflects them).
12
+ * - Import transformations are decided during analysis, declared in the plan
13
+ * (and therefore covered by the plan digest), applied by the importer, and
14
+ * predicted by verification with {@link applyTransformations}.
15
+ *
16
+ * A plan lists the package's export transformations ahead of its import
17
+ * transformations, so it declares every difference from the origin site.
18
+ * Plan warnings never repeat a transformation.
19
+ *
20
+ * Storage-key placeholders are not a transformation: verification converts
21
+ * target keys back to placeholders with `rewriteMediaRefs(…, { mode: "verify" })`.
22
+ */
23
+ const EXPORT_TRANSFORMATION_CODES = [
24
+ "soft_orphan_dropped",
25
+ "avatar_nulled",
26
+ "redirect_duplicate_dropped",
27
+ "media_not_ready_dropped",
28
+ "media_url_relativized",
29
+ "orphan_dropped",
30
+ "orphan_reference_nulled",
31
+ "media_ref_unlinked",
32
+ "unknown_storage_key"
33
+ ];
34
+ const IMPORT_TRANSFORMATION_CODES = [
35
+ "principal_mapped",
36
+ "principal_unmapped",
37
+ "seeded_scaffold_removed",
38
+ "redirect_loop_disabled",
39
+ "search_unsupported",
40
+ "float4_rounded",
41
+ "locale_recased"
42
+ ];
43
+ const recordKindSchema = z.enum(RECORD_KINDS);
44
+ const count = z.number().int().nonnegative();
45
+ const MAX_LISTED_IDS = 1e4;
46
+ const MAX_LISTED_LOCALES = 1e3;
47
+ const localeSchema = z.string().min(1).max(64);
48
+ /**
49
+ * Declared in `manifest.transformations`, sorted by `(code, kind)`.
50
+ * `unknown_storage_key` counts records that refer to a media file URL or
51
+ * storage key the origin media table does not know; those references are
52
+ * exported unchanged and will not resolve on the target.
53
+ */
54
+ const exportTransformationSchema = z.strictObject({
55
+ code: z.enum(EXPORT_TRANSFORMATION_CODES),
56
+ kind: recordKindSchema,
57
+ count
58
+ });
59
+ const importTransformationSchema = z.discriminatedUnion("code", [
60
+ z.strictObject({
61
+ code: z.literal("principal_mapped"),
62
+ count
63
+ }),
64
+ z.strictObject({
65
+ code: z.literal("principal_unmapped"),
66
+ count
67
+ }),
68
+ z.strictObject({
69
+ code: z.literal("seeded_scaffold_removed"),
70
+ count,
71
+ items: z.array(z.strictObject({
72
+ type: z.string().max(64),
73
+ id: portableIdSchema
74
+ })).max(MAX_LISTED_IDS)
75
+ }),
76
+ z.strictObject({
77
+ code: z.literal("redirect_loop_disabled"),
78
+ kind: z.literal("redirect"),
79
+ ids: z.array(portableIdSchema).max(MAX_LISTED_IDS)
80
+ }),
81
+ z.strictObject({
82
+ code: z.literal("search_unsupported"),
83
+ kind: z.literal("collection"),
84
+ ids: z.array(portableIdSchema).max(MAX_LISTED_IDS)
85
+ }),
86
+ z.strictObject({
87
+ code: z.literal("float4_rounded"),
88
+ count
89
+ }),
90
+ z.strictObject({
91
+ code: z.literal("locale_recased"),
92
+ locales: z.array(z.strictObject({
93
+ from: localeSchema,
94
+ to: localeSchema
95
+ })).max(MAX_LISTED_LOCALES)
96
+ })
97
+ ]);
98
+ const planTransformationSchema = z.union([exportTransformationSchema, importTransformationSchema]);
99
+ const compiled = /* @__PURE__ */ new WeakMap();
100
+ function compile(plan, context) {
101
+ const cached = compiled.get(plan);
102
+ if (cached && cached.fieldColumnTypes === context.fieldColumnTypes) return cached;
103
+ const disabledRedirects = /* @__PURE__ */ new Set();
104
+ const searchDisabled = /* @__PURE__ */ new Set();
105
+ const locales = /* @__PURE__ */ new Map();
106
+ let float4 = false;
107
+ for (const transformation of plan.transformations) switch (transformation.code) {
108
+ case "redirect_loop_disabled":
109
+ for (const id of transformation.ids) disabledRedirects.add(id);
110
+ break;
111
+ case "search_unsupported":
112
+ for (const id of transformation.ids) searchDisabled.add(id);
113
+ break;
114
+ case "float4_rounded":
115
+ float4 = true;
116
+ break;
117
+ case "locale_recased":
118
+ for (const { from, to } of transformation.locales) locales.set(from, to);
119
+ break;
120
+ default: break;
121
+ }
122
+ const result = {
123
+ principalMappings: plan.decisions.principalMappings,
124
+ disabledRedirects,
125
+ searchDisabled,
126
+ float4,
127
+ locales,
128
+ fieldColumnTypes: context.fieldColumnTypes
129
+ };
130
+ compiled.set(plan, result);
131
+ return result;
132
+ }
133
+ function mapPrincipal(record, property, mappings) {
134
+ const principal = record[property];
135
+ if (typeof principal !== "string") return;
136
+ const target = Object.hasOwn(mappings, principal) ? mappings[principal] : null;
137
+ if (target === null || target === void 0) delete record[property];
138
+ else record[property] = target;
139
+ }
140
+ function fround(value) {
141
+ return typeof value === "number" ? Math.fround(value) : value;
142
+ }
143
+ /**
144
+ * Predict the target form of a package record: the record as the exporter's
145
+ * reader would produce it from the target, minus storage-key placeholder
146
+ * resolution. Returns a new object; never mutates `record`. `principal`
147
+ * records are returned unchanged (they are never written to the target).
148
+ */
149
+ function applyTransformations(record, plan, context) {
150
+ const rules = compile(plan, context);
151
+ const next = { ...record };
152
+ switch (record.kind) {
153
+ case "media":
154
+ mapPrincipal(next, "authorPrincipal", rules.principalMappings);
155
+ if (rules.float4) {
156
+ if (next.focalX !== void 0) next.focalX = fround(next.focalX);
157
+ if (next.focalY !== void 0) next.focalY = fround(next.focalY);
158
+ }
159
+ break;
160
+ case "revision":
161
+ case "comment":
162
+ mapPrincipal(next, "authorPrincipal", rules.principalMappings);
163
+ break;
164
+ case "byline":
165
+ mapPrincipal(next, "userPrincipal", rules.principalMappings);
166
+ break;
167
+ case "entry":
168
+ mapPrincipal(next, "authorPrincipal", rules.principalMappings);
169
+ if (rules.float4) {
170
+ const fields = { ...record.fields };
171
+ const types = rules.fieldColumnTypes.get(record.collection);
172
+ for (const [slug, value] of Object.entries(fields)) if (types?.get(slug) === "REAL") fields[slug] = fround(value);
173
+ next.fields = fields;
174
+ }
175
+ break;
176
+ case "redirect":
177
+ if (rules.disabledRedirects.has(record.id)) next.enabled = false;
178
+ break;
179
+ case "collection": {
180
+ const config = record.searchConfig;
181
+ if (rules.searchDisabled.has(record.id) && config !== null && typeof config === "object" && !Array.isArray(config) && config.enabled === true) next.searchConfig = {
182
+ ...config,
183
+ enabled: false
184
+ };
185
+ break;
186
+ }
187
+ default: break;
188
+ }
189
+ const recased = typeof next.locale === "string" ? rules.locales.get(next.locale) : void 0;
190
+ if (recased !== void 0) next.locale = recased;
191
+ return next;
192
+ }
193
+
194
+ //#endregion
195
+ export { planTransformationSchema as a, exportTransformationSchema as i, IMPORT_TRANSFORMATION_CODES as n, applyTransformations as r, EXPORT_TRANSFORMATION_CODES as t };
196
+ //# sourceMappingURL=transformations-C7RQabKQ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformations-C7RQabKQ.mjs","names":[],"sources":["../src/transfer/format/transformations.ts"],"sourcesContent":["/**\n * Declared transformations: every way the target state may legitimately\n * differ from the package's records.\n *\n * Two families exist:\n * - Export transformations are applied by the exporter and declared in\n * `manifest.transformations` (the package already reflects them).\n * - Import transformations are decided during analysis, declared in the plan\n * (and therefore covered by the plan digest), applied by the importer, and\n * predicted by verification with {@link applyTransformations}.\n *\n * A plan lists the package's export transformations ahead of its import\n * transformations, so it declares every difference from the origin site.\n * Plan warnings never repeat a transformation.\n *\n * Storage-key placeholders are not a transformation: verification converts\n * target keys back to placeholders with `rewriteMediaRefs(…, { mode: \"verify\" })`.\n */\n\nimport { z } from \"zod\";\n\nimport type { SitePackageRecord } from \"./kinds.js\";\nimport { portableIdSchema, RECORD_KINDS } from \"./kinds.js\";\n\nexport const EXPORT_TRANSFORMATION_CODES = [\n\t\"soft_orphan_dropped\",\n\t\"avatar_nulled\",\n\t\"redirect_duplicate_dropped\",\n\t\"media_not_ready_dropped\",\n\t\"media_url_relativized\",\n\t\"orphan_dropped\",\n\t\"orphan_reference_nulled\",\n\t\"media_ref_unlinked\",\n\t\"unknown_storage_key\",\n] as const;\n\nexport type ExportTransformationCode = (typeof EXPORT_TRANSFORMATION_CODES)[number];\n\nexport const IMPORT_TRANSFORMATION_CODES = [\n\t\"principal_mapped\",\n\t\"principal_unmapped\",\n\t\"seeded_scaffold_removed\",\n\t\"redirect_loop_disabled\",\n\t\"search_unsupported\",\n\t\"float4_rounded\",\n\t\"locale_recased\",\n] as const;\n\nexport type ImportTransformationCode = (typeof IMPORT_TRANSFORMATION_CODES)[number];\n\nconst recordKindSchema = z.enum(RECORD_KINDS);\nconst count = z.number().int().nonnegative();\nconst MAX_LISTED_IDS = 10_000;\nconst MAX_LISTED_LOCALES = 1000;\nconst localeSchema = z.string().min(1).max(64);\n\n/**\n * Declared in `manifest.transformations`, sorted by `(code, kind)`.\n * `unknown_storage_key` counts records that refer to a media file URL or\n * storage key the origin media table does not know; those references are\n * exported unchanged and will not resolve on the target.\n */\nexport const exportTransformationSchema = z.strictObject({\n\tcode: z.enum(EXPORT_TRANSFORMATION_CODES),\n\tkind: recordKindSchema,\n\tcount,\n});\n\nexport type ExportTransformation = z.infer<typeof exportTransformationSchema>;\n\nexport const importTransformationSchema = z.discriminatedUnion(\"code\", [\n\t/** Principal references rewritten to target users per `decisions.principalMappings`. */\n\tz.strictObject({ code: z.literal(\"principal_mapped\"), count }),\n\t/** Principal references removed (mapping is null or absent). */\n\tz.strictObject({ code: z.literal(\"principal_unmapped\"), count }),\n\t/** Seeded target scaffold deleted before the schema stage. */\n\tz.strictObject({\n\t\tcode: z.literal(\"seeded_scaffold_removed\"),\n\t\tcount,\n\t\titems: z\n\t\t\t.array(z.strictObject({ type: z.string().max(64), id: portableIdSchema }))\n\t\t\t.max(MAX_LISTED_IDS),\n\t}),\n\t/** Redirects that form a loop are imported disabled. */\n\tz.strictObject({\n\t\tcode: z.literal(\"redirect_loop_disabled\"),\n\t\tkind: z.literal(\"redirect\"),\n\t\tids: z.array(portableIdSchema).max(MAX_LISTED_IDS),\n\t}),\n\t/** Full-text search cannot be enabled on the target; `searchConfig.enabled` becomes false. */\n\tz.strictObject({\n\t\tcode: z.literal(\"search_unsupported\"),\n\t\tkind: z.literal(\"collection\"),\n\t\tids: z.array(portableIdSchema).max(MAX_LISTED_IDS),\n\t}),\n\t/** The target stores REAL columns as float4; values are rounded with `Math.fround`. */\n\tz.strictObject({ code: z.literal(\"float4_rounded\"), count }),\n\t/** Locales written with the target's casing (`pt-br` → `pt-BR`). */\n\tz.strictObject({\n\t\tcode: z.literal(\"locale_recased\"),\n\t\tlocales: z\n\t\t\t.array(z.strictObject({ from: localeSchema, to: localeSchema }))\n\t\t\t.max(MAX_LISTED_LOCALES),\n\t}),\n]);\n\nexport type ImportTransformation = z.infer<typeof importTransformationSchema>;\n\nexport const planTransformationSchema = z.union([\n\texportTransformationSchema,\n\timportTransformationSchema,\n]);\n\nexport type PlanTransformation = z.infer<typeof planTransformationSchema>;\n\nexport interface TransformationPlan {\n\ttransformations: readonly PlanTransformation[];\n\tdecisions: { principalMappings: Readonly<Record<string, string | null>> };\n}\n\nexport type FieldColumnType = \"TEXT\" | \"REAL\" | \"INTEGER\" | \"JSON\";\n\nexport interface TransformationContext {\n\t/** Column type of every entry field, by collection slug then field slug (from package `field` records). */\n\tfieldColumnTypes: ReadonlyMap<string, ReadonlyMap<string, FieldColumnType>>;\n}\n\ninterface CompiledTransformations {\n\tprincipalMappings: Readonly<Record<string, string | null>>;\n\tdisabledRedirects: ReadonlySet<string>;\n\tsearchDisabled: ReadonlySet<string>;\n\tfloat4: boolean;\n\tlocales: ReadonlyMap<string, string>;\n\tfieldColumnTypes: TransformationContext[\"fieldColumnTypes\"];\n}\n\nconst compiled = new WeakMap<TransformationPlan, CompiledTransformations>();\n\nfunction compile(\n\tplan: TransformationPlan,\n\tcontext: TransformationContext,\n): CompiledTransformations {\n\tconst cached = compiled.get(plan);\n\tif (cached && cached.fieldColumnTypes === context.fieldColumnTypes) return cached;\n\tconst disabledRedirects = new Set<string>();\n\tconst searchDisabled = new Set<string>();\n\tconst locales = new Map<string, string>();\n\tlet float4 = false;\n\tfor (const transformation of plan.transformations) {\n\t\tswitch (transformation.code) {\n\t\t\tcase \"redirect_loop_disabled\":\n\t\t\t\tfor (const id of transformation.ids) disabledRedirects.add(id);\n\t\t\t\tbreak;\n\t\t\tcase \"search_unsupported\":\n\t\t\t\tfor (const id of transformation.ids) searchDisabled.add(id);\n\t\t\t\tbreak;\n\t\t\tcase \"float4_rounded\":\n\t\t\t\tfloat4 = true;\n\t\t\t\tbreak;\n\t\t\tcase \"locale_recased\":\n\t\t\t\tfor (const { from, to } of transformation.locales) locales.set(from, to);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tconst result: CompiledTransformations = {\n\t\tprincipalMappings: plan.decisions.principalMappings,\n\t\tdisabledRedirects,\n\t\tsearchDisabled,\n\t\tfloat4,\n\t\tlocales,\n\t\tfieldColumnTypes: context.fieldColumnTypes,\n\t};\n\tcompiled.set(plan, result);\n\treturn result;\n}\n\nfunction mapPrincipal(\n\trecord: Record<string, unknown>,\n\tproperty: string,\n\tmappings: Readonly<Record<string, string | null>>,\n): void {\n\tconst principal = record[property];\n\tif (typeof principal !== \"string\") return;\n\tconst target = Object.hasOwn(mappings, principal) ? mappings[principal] : null;\n\tif (target === null || target === undefined) delete record[property];\n\telse record[property] = target;\n}\n\nfunction fround(value: unknown): unknown {\n\treturn typeof value === \"number\" ? Math.fround(value) : value;\n}\n\n/**\n * Predict the target form of a package record: the record as the exporter's\n * reader would produce it from the target, minus storage-key placeholder\n * resolution. Returns a new object; never mutates `record`. `principal`\n * records are returned unchanged (they are never written to the target).\n */\nexport function applyTransformations<R extends SitePackageRecord>(\n\trecord: R,\n\tplan: TransformationPlan,\n\tcontext: TransformationContext,\n): R {\n\tconst rules = compile(plan, context);\n\tconst next: Record<string, unknown> = { ...record };\n\n\tswitch (record.kind) {\n\t\tcase \"media\":\n\t\t\tmapPrincipal(next, \"authorPrincipal\", rules.principalMappings);\n\t\t\tif (rules.float4) {\n\t\t\t\tif (next.focalX !== undefined) next.focalX = fround(next.focalX);\n\t\t\t\tif (next.focalY !== undefined) next.focalY = fround(next.focalY);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"revision\":\n\t\tcase \"comment\":\n\t\t\tmapPrincipal(next, \"authorPrincipal\", rules.principalMappings);\n\t\t\tbreak;\n\t\tcase \"byline\":\n\t\t\tmapPrincipal(next, \"userPrincipal\", rules.principalMappings);\n\t\t\tbreak;\n\t\tcase \"entry\": {\n\t\t\tmapPrincipal(next, \"authorPrincipal\", rules.principalMappings);\n\t\t\tif (rules.float4) {\n\t\t\t\tconst fields: Record<string, unknown> = { ...record.fields };\n\t\t\t\tconst types = rules.fieldColumnTypes.get(record.collection);\n\t\t\t\tfor (const [slug, value] of Object.entries(fields)) {\n\t\t\t\t\tif (types?.get(slug) === \"REAL\") fields[slug] = fround(value);\n\t\t\t\t}\n\t\t\t\tnext.fields = fields;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"redirect\":\n\t\t\tif (rules.disabledRedirects.has(record.id)) next.enabled = false;\n\t\t\tbreak;\n\t\tcase \"collection\": {\n\t\t\tconst config = record.searchConfig;\n\t\t\tif (\n\t\t\t\trules.searchDisabled.has(record.id) &&\n\t\t\t\tconfig !== null &&\n\t\t\t\ttypeof config === \"object\" &&\n\t\t\t\t!Array.isArray(config) &&\n\t\t\t\tconfig.enabled === true\n\t\t\t) {\n\t\t\t\tnext.searchConfig = { ...config, enabled: false };\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\tconst recased = typeof next.locale === \"string\" ? rules.locales.get(next.locale) : undefined;\n\tif (recased !== undefined) next.locale = recased;\n\n\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- a copy of `record` with only same-kind properties changed or removed\n\treturn next as R;\n}\n"],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ //#region src/client/transport.ts
2
+ /**
3
+ * Transport layer for the EmDash client.
4
+ *
5
+ * Implements a composable interceptor pipeline that modifies requests
6
+ * and responses. The client calls `transport.fetch(request)` — everything
7
+ * else (auth, CSRF, retry) is handled by interceptors.
8
+ */
9
+ const COOKIE_NAME_VALUE_PATTERN = /^([^;]+)/;
10
+ function baseFetch(request) {
11
+ return globalThis.fetch(request);
12
+ }
13
+ /**
14
+ * Creates a fetch function that runs requests through an interceptor pipeline.
15
+ */
16
+ function createTransport(options = {}) {
17
+ const interceptors = options.interceptors ?? [];
18
+ let chain = baseFetch;
19
+ for (let i = interceptors.length - 1; i >= 0; i--) {
20
+ const interceptor = interceptors[i];
21
+ const next = chain;
22
+ chain = (req) => interceptor(req, next);
23
+ }
24
+ return { fetch: chain };
25
+ }
26
+ /**
27
+ * Adds X-EmDash-Request: 1 and Origin headers to mutation requests
28
+ * (POST, PUT, DELETE). The custom header satisfies EmDash's CSRF check;
29
+ * the Origin header satisfies Astro's built-in origin verification which
30
+ * rejects server-side POST requests that lack a matching Origin.
31
+ */
32
+ function csrfInterceptor() {
33
+ const MUTATION_METHODS = new Set([
34
+ "POST",
35
+ "PUT",
36
+ "DELETE",
37
+ "PATCH"
38
+ ]);
39
+ return (request, next) => {
40
+ if (MUTATION_METHODS.has(request.method)) {
41
+ const headers = new Headers(request.headers);
42
+ headers.set("X-EmDash-Request", "1");
43
+ if (!headers.has("Origin")) {
44
+ const url = new URL(request.url);
45
+ headers.set("Origin", url.origin);
46
+ }
47
+ return next(new Request(request, { headers }));
48
+ }
49
+ return next(request);
50
+ };
51
+ }
52
+ /**
53
+ * Adds Authorization: Bearer header from a static token.
54
+ */
55
+ function tokenInterceptor(token) {
56
+ return (request, next) => {
57
+ const headers = new Headers(request.headers);
58
+ headers.set("Authorization", `Bearer ${token}`);
59
+ return next(new Request(request, { headers }));
60
+ };
61
+ }
62
+ /**
63
+ * Dev bypass interceptor. Calls the dev-bypass endpoint on first request
64
+ * to establish a session, then forwards the session cookie on subsequent
65
+ * requests.
66
+ */
67
+ function devBypassInterceptor(baseUrl) {
68
+ let sessionCookie = null;
69
+ let initializing = null;
70
+ async function init() {
71
+ const bypassUrl = new URL("/_emdash/api/auth/dev-bypass", baseUrl);
72
+ const res = await globalThis.fetch(bypassUrl, { redirect: "manual" });
73
+ const setCookie = res.headers.get("set-cookie");
74
+ if (setCookie) {
75
+ const match = setCookie.match(COOKIE_NAME_VALUE_PATTERN);
76
+ if (match) sessionCookie = match[1];
77
+ }
78
+ if (res.body) await res.text().catch(() => {});
79
+ }
80
+ return async (request, next) => {
81
+ if (!sessionCookie) {
82
+ if (!initializing) initializing = init();
83
+ await initializing;
84
+ }
85
+ if (sessionCookie) {
86
+ const headers = new Headers(request.headers);
87
+ const existing = headers.get("cookie");
88
+ headers.set("cookie", existing ? `${existing}; ${sessionCookie}` : sessionCookie);
89
+ return next(new Request(request, { headers }));
90
+ }
91
+ return next(request);
92
+ };
93
+ }
94
+ /**
95
+ * Auto-refreshes expired OAuth tokens on 401 responses.
96
+ * Requires a refresh token and the token endpoint URL.
97
+ */
98
+ function refreshInterceptor(options) {
99
+ let refreshing = null;
100
+ async function refresh() {
101
+ const res = await globalThis.fetch(options.tokenEndpoint, {
102
+ method: "POST",
103
+ headers: { "Content-Type": "application/json" },
104
+ body: JSON.stringify({
105
+ grant_type: "refresh_token",
106
+ refresh_token: options.refreshToken
107
+ })
108
+ });
109
+ if (!res.ok) return null;
110
+ const json = await res.json();
111
+ const tokenData = json.data && typeof json.data === "object" && "access_token" in json.data ? json.data : json;
112
+ const expiresAt = tokenData.expires_in ? new Date(Date.now() + tokenData.expires_in * 1e3).toISOString() : new Date(Date.now() + 36e5).toISOString();
113
+ if (options.onTokenRefreshed) options.onTokenRefreshed(tokenData.access_token, tokenData.refresh_token ?? options.refreshToken, expiresAt);
114
+ return tokenData.access_token;
115
+ }
116
+ return async (request, next) => {
117
+ const retryTemplate = request.body ? request.clone() : request;
118
+ const response = await next(request);
119
+ if (response.status === 401) {
120
+ if (!refreshing) refreshing = refresh().finally(() => {
121
+ refreshing = null;
122
+ });
123
+ const newToken = await refreshing;
124
+ if (newToken) {
125
+ const headers = new Headers(retryTemplate.headers);
126
+ headers.set("Authorization", `Bearer ${newToken}`);
127
+ return next(new Request(retryTemplate, { headers }));
128
+ }
129
+ }
130
+ return response;
131
+ };
132
+ }
133
+
134
+ //#endregion
135
+ export { tokenInterceptor as a, refreshInterceptor as i, csrfInterceptor as n, devBypassInterceptor as r, createTransport as t };
136
+ //# sourceMappingURL=transport-D3RulfD6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-D3RulfD6.mjs","names":[],"sources":["../src/client/transport.ts"],"sourcesContent":["/**\n * Transport layer for the EmDash client.\n *\n * Implements a composable interceptor pipeline that modifies requests\n * and responses. The client calls `transport.fetch(request)` — everything\n * else (auth, CSRF, retry) is handled by interceptors.\n */\n\n// Regex patterns for transport utilities\nconst COOKIE_NAME_VALUE_PATTERN = /^([^;]+)/;\n\n/**\n * An interceptor can modify the request, call next(), inspect\n * the response, and optionally retry.\n */\nexport type Interceptor = (\n\trequest: Request,\n\tnext: (request: Request) => Promise<Response>,\n) => Promise<Response>;\n\nexport interface TransportOptions {\n\tinterceptors?: Interceptor[];\n}\n\nfunction baseFetch(request: Request): Promise<Response> {\n\treturn globalThis.fetch(request);\n}\n\n/**\n * Creates a fetch function that runs requests through an interceptor pipeline.\n */\nexport function createTransport(options: TransportOptions = {}): {\n\tfetch: (request: Request) => Promise<Response>;\n} {\n\tconst interceptors = options.interceptors ?? [];\n\n\t// Build the chain once — interceptors don't change after construction\n\tlet chain: (request: Request) => Promise<Response> = baseFetch;\n\tfor (let i = interceptors.length - 1; i >= 0; i--) {\n\t\tconst interceptor = interceptors[i];\n\t\tconst next = chain;\n\t\tchain = (req) => interceptor(req, next);\n\t}\n\n\treturn { fetch: chain };\n}\n\n// ---------------------------------------------------------------------------\n// Built-in interceptors\n// ---------------------------------------------------------------------------\n\n/**\n * Adds X-EmDash-Request: 1 and Origin headers to mutation requests\n * (POST, PUT, DELETE). The custom header satisfies EmDash's CSRF check;\n * the Origin header satisfies Astro's built-in origin verification which\n * rejects server-side POST requests that lack a matching Origin.\n */\nexport function csrfInterceptor(): Interceptor {\n\tconst MUTATION_METHODS = new Set([\"POST\", \"PUT\", \"DELETE\", \"PATCH\"]);\n\n\treturn (request, next) => {\n\t\tif (MUTATION_METHODS.has(request.method)) {\n\t\t\tconst headers = new Headers(request.headers);\n\t\t\theaders.set(\"X-EmDash-Request\", \"1\");\n\t\t\tif (!headers.has(\"Origin\")) {\n\t\t\t\tconst url = new URL(request.url);\n\t\t\t\theaders.set(\"Origin\", url.origin);\n\t\t\t}\n\t\t\treturn next(new Request(request, { headers }));\n\t\t}\n\t\treturn next(request);\n\t};\n}\n\n/**\n * Adds Authorization: Bearer header from a static token.\n */\nexport function tokenInterceptor(token: string): Interceptor {\n\treturn (request, next) => {\n\t\tconst headers = new Headers(request.headers);\n\t\theaders.set(\"Authorization\", `Bearer ${token}`);\n\t\treturn next(new Request(request, { headers }));\n\t};\n}\n\n/**\n * Dev bypass interceptor. Calls the dev-bypass endpoint on first request\n * to establish a session, then forwards the session cookie on subsequent\n * requests.\n */\nexport function devBypassInterceptor(baseUrl: string): Interceptor {\n\tlet sessionCookie: string | null = null;\n\tlet initializing: Promise<void> | null = null;\n\n\tasync function init(): Promise<void> {\n\t\tconst bypassUrl = new URL(\"/_emdash/api/auth/dev-bypass\", baseUrl);\n\t\tconst res = await globalThis.fetch(bypassUrl, { redirect: \"manual\" });\n\n\t\t// Extract session cookie from Set-Cookie header\n\t\tconst setCookie = res.headers.get(\"set-cookie\");\n\t\tif (setCookie) {\n\t\t\t// Extract just the cookie name=value part\n\t\t\tconst match = setCookie.match(COOKIE_NAME_VALUE_PATTERN);\n\t\t\tif (match) {\n\t\t\t\tsessionCookie = match[1]!;\n\t\t\t}\n\t\t}\n\n\t\t// Consume the response body\n\t\tif (res.body) {\n\t\t\tawait res.text().catch(() => {});\n\t\t}\n\t}\n\n\treturn async (request, next) => {\n\t\t// Ensure we've initialized (only once, even with concurrent requests)\n\t\tif (!sessionCookie) {\n\t\t\tif (!initializing) {\n\t\t\t\tinitializing = init();\n\t\t\t}\n\t\t\tawait initializing;\n\t\t}\n\n\t\tif (sessionCookie) {\n\t\t\tconst headers = new Headers(request.headers);\n\t\t\tconst existing = headers.get(\"cookie\");\n\t\t\theaders.set(\"cookie\", existing ? `${existing}; ${sessionCookie}` : sessionCookie);\n\t\t\treturn next(new Request(request, { headers }));\n\t\t}\n\n\t\treturn next(request);\n\t};\n}\n\n/**\n * Auto-refreshes expired OAuth tokens on 401 responses.\n * Requires a refresh token and the token endpoint URL.\n */\nexport function refreshInterceptor(options: {\n\trefreshToken: string;\n\ttokenEndpoint: string;\n\tonTokenRefreshed?: (accessToken: string, refreshToken: string, expiresAt: string) => void;\n}): Interceptor {\n\tlet refreshing: Promise<string | null> | null = null;\n\n\tasync function refresh(): Promise<string | null> {\n\t\tconst res = await globalThis.fetch(options.tokenEndpoint, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\tbody: JSON.stringify({\n\t\t\t\tgrant_type: \"refresh_token\",\n\t\t\t\trefresh_token: options.refreshToken,\n\t\t\t}),\n\t\t});\n\n\t\tif (!res.ok) return null;\n\n\t\tinterface TokenFields {\n\t\t\taccess_token: string;\n\t\t\trefresh_token?: string;\n\t\t\texpires_in?: number;\n\t\t}\n\n\t\tconst json = (await res.json()) as Record<string, unknown>;\n\n\t\t// The token endpoint wraps the response in { success, data: ... } via apiSuccess.\n\t\t// Handle both wrapped and bare shapes for robustness.\n\t\tconst tokenData: TokenFields =\n\t\t\tjson.data && typeof json.data === \"object\" && \"access_token\" in json.data\n\t\t\t\t? (json.data as TokenFields)\n\t\t\t\t: (json as unknown as TokenFields);\n\n\t\tconst expiresAt = tokenData.expires_in\n\t\t\t? new Date(Date.now() + tokenData.expires_in * 1000).toISOString()\n\t\t\t: new Date(Date.now() + 3600_000).toISOString();\n\n\t\tif (options.onTokenRefreshed) {\n\t\t\toptions.onTokenRefreshed(\n\t\t\t\ttokenData.access_token,\n\t\t\t\ttokenData.refresh_token ?? options.refreshToken,\n\t\t\t\texpiresAt,\n\t\t\t);\n\t\t}\n\n\t\treturn tokenData.access_token;\n\t}\n\n\treturn async (request, next) => {\n\t\t// A request body can only be read once; clone before sending so the\n\t\t// 401 retry has an unconsumed request to rebuild from.\n\t\tconst retryTemplate = request.body ? request.clone() : request;\n\n\t\tconst response = await next(request);\n\n\t\tif (response.status === 401) {\n\t\t\t// Try to refresh\n\t\t\tif (!refreshing) {\n\t\t\t\trefreshing = refresh().finally(() => {\n\t\t\t\t\trefreshing = null;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst newToken = await refreshing;\n\t\t\tif (newToken) {\n\t\t\t\t// Retry with new token\n\t\t\t\tconst headers = new Headers(retryTemplate.headers);\n\t\t\t\theaders.set(\"Authorization\", `Bearer ${newToken}`);\n\t\t\t\treturn next(new Request(retryTemplate, { headers }));\n\t\t\t}\n\t\t}\n\n\t\treturn response;\n\t};\n}\n"],"mappings":"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"}