emdash 1.1.0 → 1.2.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 (1283) hide show
  1. package/dist/action-token-BdWad2YG.mjs +26 -0
  2. package/dist/action-token-BdWad2YG.mjs.map +1 -0
  3. package/dist/adapters-B4-nbElt.d.mts +173 -0
  4. package/dist/adapters-B4-nbElt.d.mts.map +1 -0
  5. package/dist/allowed-origins-CLpHGGlc.mjs +116 -0
  6. package/dist/allowed-origins-CLpHGGlc.mjs.map +1 -0
  7. package/dist/api/route-utils.d.mts +4 -4
  8. package/dist/api/route-utils.d.mts.map +1 -1
  9. package/dist/api/route-utils.mjs +39 -39
  10. package/dist/api/schemas/index.d.mts +2 -2
  11. package/dist/api/schemas/index.mjs +10 -10
  12. package/dist/api-DBw_IWoi.mjs +5024 -0
  13. package/dist/api-DBw_IWoi.mjs.map +1 -0
  14. package/dist/api-tokens-B0ZipcZ-.mjs +173 -0
  15. package/dist/api-tokens-B0ZipcZ-.mjs.map +1 -0
  16. package/dist/apply-Cx48saFC.mjs +1680 -0
  17. package/dist/apply-Cx48saFC.mjs.map +1 -0
  18. package/dist/approvals-BXgtXA2s.mjs +460 -0
  19. package/dist/approvals-BXgtXA2s.mjs.map +1 -0
  20. package/dist/artifact-fetch-DsRczRGG.mjs +659 -0
  21. package/dist/artifact-fetch-DsRczRGG.mjs.map +1 -0
  22. package/dist/artifacts-D-O-qj9C.mjs +307 -0
  23. package/dist/artifacts-D-O-qj9C.mjs.map +1 -0
  24. package/dist/astro/image-endpoint.d.mts.map +1 -1
  25. package/dist/astro/image-endpoint.mjs +26 -6
  26. package/dist/astro/image-endpoint.mjs.map +1 -1
  27. package/dist/astro/index.d.mts +14 -14
  28. package/dist/astro/index.d.mts.map +1 -1
  29. package/dist/astro/index.mjs +225 -15
  30. package/dist/astro/index.mjs.map +1 -1
  31. package/dist/astro/middleware/auth.d.mts +12 -12
  32. package/dist/astro/middleware/auth.d.mts.map +1 -1
  33. package/dist/astro/middleware/auth.mjs +15 -11
  34. package/dist/astro/middleware/auth.mjs.map +1 -1
  35. package/dist/astro/middleware/media-usage-write-fence.mjs +4 -4
  36. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  37. package/dist/astro/middleware/redirect.mjs +30 -15
  38. package/dist/astro/middleware/redirect.mjs.map +1 -1
  39. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  40. package/dist/astro/middleware/request-context.mjs +71 -44
  41. package/dist/astro/middleware/request-context.mjs.map +1 -1
  42. package/dist/astro/middleware/setup.mjs +1 -1
  43. package/dist/astro/middleware.d.mts +12 -12
  44. package/dist/astro/middleware.d.mts.map +1 -1
  45. package/dist/astro/middleware.mjs +129 -107
  46. package/dist/astro/middleware.mjs.map +1 -1
  47. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +13 -13
  48. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +13 -13
  49. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -5
  50. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs.map +1 -1
  51. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -6
  52. package/dist/astro/routes/api/admin/api-tokens/index.mjs.map +1 -1
  53. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +5 -5
  54. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +15 -15
  55. package/dist/astro/routes/api/admin/byline-fields/index.mjs +15 -15
  56. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +15 -15
  57. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +20 -20
  58. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +20 -20
  59. package/dist/astro/routes/api/admin/bylines/index.mjs +20 -20
  60. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +17 -17
  61. package/dist/astro/routes/api/admin/comments/_id_.mjs +6 -6
  62. package/dist/astro/routes/api/admin/comments/bulk.mjs +16 -16
  63. package/dist/astro/routes/api/admin/comments/counts.mjs +6 -6
  64. package/dist/astro/routes/api/admin/comments/index.mjs +16 -16
  65. package/dist/astro/routes/api/admin/core-update.mjs +6 -6
  66. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +5 -5
  67. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +4 -4
  68. package/dist/astro/routes/api/admin/media-usage/activation.mjs +17 -17
  69. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +19 -19
  70. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +19 -19
  71. package/dist/astro/routes/api/admin/media-usage/progress.mjs +16 -16
  72. package/dist/astro/routes/api/admin/media-usage/repair.mjs +22 -22
  73. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +19 -19
  74. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +19 -19
  75. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -5
  76. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -5
  77. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +7 -7
  78. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +7 -7
  79. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +63 -63
  80. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +6 -6
  81. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +62 -62
  82. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +63 -63
  83. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +72 -72
  84. package/dist/astro/routes/api/admin/plugins/index.mjs +63 -63
  85. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +6 -6
  86. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +62 -62
  87. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +71 -71
  88. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +62 -62
  89. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +63 -63
  90. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +73 -73
  91. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +8 -8
  92. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +65 -65
  93. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +6 -6
  94. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +63 -63
  95. package/dist/astro/routes/api/admin/plugins/updates.mjs +62 -62
  96. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +4 -4
  97. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +62 -62
  98. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +6 -6
  99. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +62 -62
  100. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +3 -3
  101. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +30 -30
  102. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +30 -30
  103. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +32 -32
  104. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +32 -32
  105. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +32 -32
  106. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +33 -33
  107. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +33 -33
  108. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +32 -32
  109. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +33 -33
  110. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +34 -34
  111. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +32 -32
  112. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +32 -32
  113. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +34 -34
  114. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +32 -32
  115. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +34 -34
  116. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +32 -32
  117. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +32 -32
  118. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +34 -34
  119. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +32 -32
  120. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +32 -32
  121. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +34 -34
  122. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -3
  123. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -3
  124. package/dist/astro/routes/api/admin/users/_id_/index.mjs +13 -13
  125. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +5 -5
  126. package/dist/astro/routes/api/admin/users/index.mjs +13 -13
  127. package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -5
  128. package/dist/astro/routes/api/auth/handover.d.mts +8 -0
  129. package/dist/astro/routes/api/auth/handover.d.mts.map +1 -0
  130. package/dist/astro/routes/api/auth/handover.mjs +49 -0
  131. package/dist/astro/routes/api/auth/handover.mjs.map +1 -0
  132. package/dist/astro/routes/api/auth/invite/accept.mjs +3 -3
  133. package/dist/astro/routes/api/auth/invite/complete.mjs +18 -18
  134. package/dist/astro/routes/api/auth/invite/index.mjs +15 -15
  135. package/dist/astro/routes/api/auth/invite/register-options.mjs +16 -16
  136. package/dist/astro/routes/api/auth/logout.mjs +4 -4
  137. package/dist/astro/routes/api/auth/magic-link/send.mjs +18 -17
  138. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  139. package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -1
  140. package/dist/astro/routes/api/auth/magic-link/verify.mjs +22 -16
  141. package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -1
  142. package/dist/astro/routes/api/auth/me.mjs +14 -14
  143. package/dist/astro/routes/api/auth/mode.mjs +4 -4
  144. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +7 -7
  145. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  146. package/dist/astro/routes/api/auth/passkey/_id_.mjs +13 -13
  147. package/dist/astro/routes/api/auth/passkey/index.mjs +3 -3
  148. package/dist/astro/routes/api/auth/passkey/options.d.mts.map +1 -1
  149. package/dist/astro/routes/api/auth/passkey/options.mjs +26 -19
  150. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  151. package/dist/astro/routes/api/auth/passkey/register/options.mjs +16 -16
  152. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +17 -17
  153. package/dist/astro/routes/api/auth/passkey/verify.mjs +18 -18
  154. package/dist/astro/routes/api/auth/signup/complete.mjs +18 -18
  155. package/dist/astro/routes/api/auth/signup/request.mjs +17 -16
  156. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  157. package/dist/astro/routes/api/auth/signup/verify.mjs +3 -3
  158. package/dist/astro/routes/api/calendar.mjs +14 -14
  159. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +11 -11
  160. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +17 -17
  161. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -4
  162. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +15 -15
  163. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +4 -4
  164. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +15 -15
  165. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -4
  166. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +8 -8
  167. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +23 -23
  168. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +15 -15
  169. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +27 -27
  170. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +27 -27
  171. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +4 -4
  172. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -4
  173. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +15 -15
  174. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +20 -20
  175. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -4
  176. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +15 -15
  177. package/dist/astro/routes/api/content/_collection_/_id_.mjs +15 -15
  178. package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -4
  179. package/dist/astro/routes/api/content/_collection_/index.mjs +14 -14
  180. package/dist/astro/routes/api/content/_collection_/trash.mjs +14 -14
  181. package/dist/astro/routes/api/dashboard.mjs +9 -9
  182. package/dist/astro/routes/api/dev/emails.mjs +4 -4
  183. package/dist/astro/routes/api/health.mjs +5 -5
  184. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  185. package/dist/astro/routes/api/import/probe.mjs +22 -22
  186. package/dist/astro/routes/api/import/wordpress/analyze.mjs +4 -4
  187. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
  188. package/dist/astro/routes/api/import/wordpress/execute.mjs +28 -21
  189. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  190. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  191. package/dist/astro/routes/api/import/wordpress/media.mjs +16 -16
  192. package/dist/astro/routes/api/import/wordpress/prepare.mjs +16 -16
  193. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts +8 -0
  194. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts.map +1 -1
  195. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs +67 -31
  196. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs.map +1 -1
  197. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  198. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +20 -20
  199. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  200. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +22 -22
  201. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  202. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +35 -28
  203. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  204. package/dist/astro/routes/api/manifest.mjs +8 -5
  205. package/dist/astro/routes/api/manifest.mjs.map +1 -1
  206. package/dist/astro/routes/api/mcp.mjs +81 -81
  207. package/dist/astro/routes/api/media/_id_/confirm.d.mts.map +1 -1
  208. package/dist/astro/routes/api/media/_id_/confirm.mjs +32 -16
  209. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  210. package/dist/astro/routes/api/media/_id_/replace.mjs +13 -13
  211. package/dist/astro/routes/api/media/_id_/upload.mjs +6 -6
  212. package/dist/astro/routes/api/media/_id_/usage.mjs +24 -24
  213. package/dist/astro/routes/api/media/_id_.mjs +22 -22
  214. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +5 -5
  215. package/dist/astro/routes/api/media/file/_...key_.d.mts.map +1 -1
  216. package/dist/astro/routes/api/media/file/_...key_.mjs +44 -14
  217. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  218. package/dist/astro/routes/api/media/folders/_id_.mjs +15 -15
  219. package/dist/astro/routes/api/media/folders/index.mjs +15 -15
  220. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
  221. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
  222. package/dist/astro/routes/api/media/providers/index.mjs +4 -4
  223. package/dist/astro/routes/api/media/upload-url.mjs +39 -19
  224. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  225. package/dist/astro/routes/api/media.d.mts.map +1 -1
  226. package/dist/astro/routes/api/media.mjs +33 -23
  227. package/dist/astro/routes/api/media.mjs.map +1 -1
  228. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +15 -15
  229. package/dist/astro/routes/api/menus/_name_/items.mjs +15 -15
  230. package/dist/astro/routes/api/menus/_name_/reorder.mjs +15 -15
  231. package/dist/astro/routes/api/menus/_name_/translations.mjs +15 -15
  232. package/dist/astro/routes/api/menus/_name_.mjs +15 -15
  233. package/dist/astro/routes/api/menus/index.mjs +15 -15
  234. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  235. package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -7
  236. package/dist/astro/routes/api/oauth/device/code.mjs +11 -10
  237. package/dist/astro/routes/api/oauth/device/code.mjs.map +1 -1
  238. package/dist/astro/routes/api/oauth/device/token.mjs +10 -9
  239. package/dist/astro/routes/api/oauth/device/token.mjs.map +1 -1
  240. package/dist/astro/routes/api/oauth/register.mjs +7 -6
  241. package/dist/astro/routes/api/oauth/register.mjs.map +1 -1
  242. package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -7
  243. package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -7
  244. package/dist/astro/routes/api/oauth/token.mjs +7 -7
  245. package/dist/astro/routes/api/openapi.json.mjs +21 -21
  246. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  247. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +8 -8
  248. package/dist/astro/routes/api/redirects/404s/index.mjs +18 -18
  249. package/dist/astro/routes/api/redirects/404s/summary.mjs +18 -18
  250. package/dist/astro/routes/api/redirects/_id_.mjs +18 -18
  251. package/dist/astro/routes/api/redirects/index.mjs +18 -18
  252. package/dist/astro/routes/api/relations/_id_/index.mjs +27 -27
  253. package/dist/astro/routes/api/relations/index.mjs +27 -27
  254. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -4
  255. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +15 -15
  256. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +62 -62
  257. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +62 -62
  258. package/dist/astro/routes/api/schema/block-types/index.mjs +62 -62
  259. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +62 -62
  260. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +62 -62
  261. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +62 -62
  262. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +62 -62
  263. package/dist/astro/routes/api/schema/collections/index.mjs +62 -62
  264. package/dist/astro/routes/api/schema/collections/reorder.mjs +62 -62
  265. package/dist/astro/routes/api/schema/index.mjs +10 -10
  266. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  267. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +62 -62
  268. package/dist/astro/routes/api/schema/orphans/index.mjs +62 -62
  269. package/dist/astro/routes/api/search/enable.mjs +17 -17
  270. package/dist/astro/routes/api/search/index.mjs +16 -16
  271. package/dist/astro/routes/api/search/rebuild.mjs +17 -17
  272. package/dist/astro/routes/api/search/stats.mjs +7 -7
  273. package/dist/astro/routes/api/search/suggest.mjs +16 -16
  274. package/dist/astro/routes/api/sections/_slug_.mjs +16 -16
  275. package/dist/astro/routes/api/sections/index.mjs +16 -16
  276. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +6 -6
  277. package/dist/astro/routes/api/settings/backups/archives/index.mjs +6 -6
  278. package/dist/astro/routes/api/settings/backups/export.mjs +6 -6
  279. package/dist/astro/routes/api/settings/backups/index.mjs +7 -7
  280. package/dist/astro/routes/api/settings/domain-notify.d.mts +8 -0
  281. package/dist/astro/routes/api/settings/domain-notify.d.mts.map +1 -0
  282. package/dist/astro/routes/api/settings/domain-notify.mjs +125 -0
  283. package/dist/astro/routes/api/settings/domain-notify.mjs.map +1 -0
  284. package/dist/astro/routes/api/settings/domain.d.mts +9 -0
  285. package/dist/astro/routes/api/settings/domain.d.mts.map +1 -0
  286. package/dist/astro/routes/api/settings/domain.mjs +61 -0
  287. package/dist/astro/routes/api/settings/domain.mjs.map +1 -0
  288. package/dist/astro/routes/api/settings/email.mjs +5 -5
  289. package/dist/astro/routes/api/settings.mjs +18 -18
  290. package/dist/astro/routes/api/setup/admin-verify.mjs +19 -19
  291. package/dist/astro/routes/api/setup/admin.mjs +17 -17
  292. package/dist/astro/routes/api/setup/dev-bypass.mjs +34 -34
  293. package/dist/astro/routes/api/setup/dev-reset.mjs +3 -3
  294. package/dist/astro/routes/api/setup/index.d.mts.map +1 -1
  295. package/dist/astro/routes/api/setup/index.mjs +44 -40
  296. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  297. package/dist/astro/routes/api/setup/status.mjs +5 -5
  298. package/dist/astro/routes/api/site/domain-proof.d.mts +8 -0
  299. package/dist/astro/routes/api/site/domain-proof.d.mts.map +1 -0
  300. package/dist/astro/routes/api/site/domain-proof.mjs +33 -0
  301. package/dist/astro/routes/api/site/domain-proof.mjs.map +1 -0
  302. package/dist/astro/routes/api/snapshot.mjs +7 -7
  303. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +19 -19
  304. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +19 -19
  305. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +19 -19
  306. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +19 -19
  307. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +19 -19
  308. package/dist/astro/routes/api/taxonomies/_name_.mjs +19 -19
  309. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +27 -27
  310. package/dist/astro/routes/api/taxonomies/index.mjs +19 -19
  311. package/dist/astro/routes/api/themes/preview.mjs +5 -5
  312. package/dist/astro/routes/api/typegen.mjs +5 -5
  313. package/dist/astro/routes/api/visual-editing/action-token.mjs +5 -5
  314. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +17 -17
  315. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +3 -3
  316. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  317. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  318. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  319. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +14 -14
  320. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +16 -16
  321. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +16 -16
  322. package/dist/astro/routes/api/widget-areas/_name_.mjs +6 -6
  323. package/dist/astro/routes/api/widget-areas/index.mjs +16 -16
  324. package/dist/astro/routes/api/widget-components.mjs +4 -4
  325. package/dist/astro/routes/robots.txt.mjs +4 -4
  326. package/dist/astro/routes/sitemap-_collection_.xml.d.mts.map +1 -1
  327. package/dist/astro/routes/sitemap-_collection_.xml.mjs +27 -10
  328. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  329. package/dist/astro/routes/sitemap.xml.d.mts.map +1 -1
  330. package/dist/astro/routes/sitemap.xml.mjs +11 -10
  331. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  332. package/dist/astro/types.d.mts +30 -18
  333. package/dist/astro/types.d.mts.map +1 -1
  334. package/dist/auth/providers/github.d.mts +1 -1
  335. package/dist/auth/providers/google.d.mts +1 -1
  336. package/dist/auth/providers/microsoft.d.mts +1 -1
  337. package/dist/authoritative-records-Dcs7l2H5.mjs +5183 -0
  338. package/dist/authoritative-records-Dcs7l2H5.mjs.map +1 -0
  339. package/dist/authorize-TdIGpRSE.mjs +49 -0
  340. package/dist/authorize-TdIGpRSE.mjs.map +1 -0
  341. package/dist/backup-CZt5Mzwx.mjs +246 -0
  342. package/dist/backup-CZt5Mzwx.mjs.map +1 -0
  343. package/dist/block-types-DHnkzE6u.mjs +132 -0
  344. package/dist/block-types-DHnkzE6u.mjs.map +1 -0
  345. package/dist/block-values-C4N_F2-G.mjs +175 -0
  346. package/dist/block-values-C4N_F2-G.mjs.map +1 -0
  347. package/dist/byline-BmVKOQ8l.mjs +909 -0
  348. package/dist/byline-BmVKOQ8l.mjs.map +1 -0
  349. package/dist/byline-fields-B8SDs3M_.mjs +123 -0
  350. package/dist/byline-fields-B8SDs3M_.mjs.map +1 -0
  351. package/dist/byline-fields-Bze3ZdAw.mjs +280 -0
  352. package/dist/byline-fields-Bze3ZdAw.mjs.map +1 -0
  353. package/dist/bylines-CHhR28r9.mjs +150 -0
  354. package/dist/bylines-CHhR28r9.mjs.map +1 -0
  355. package/dist/bylines-DZS4OflA.mjs +234 -0
  356. package/dist/bylines-DZS4OflA.mjs.map +1 -0
  357. package/dist/cache-x0z8t_m9.mjs +133 -0
  358. package/dist/cache-x0z8t_m9.mjs.map +1 -0
  359. package/dist/canonical-BUcKRYpG.mjs +174 -0
  360. package/dist/canonical-BUcKRYpG.mjs.map +1 -0
  361. package/dist/challenge-store-BHgdPVze.mjs +51 -0
  362. package/dist/challenge-store-BHgdPVze.mjs.map +1 -0
  363. package/dist/checksum-BYR5i7qe.mjs +162 -0
  364. package/dist/checksum-BYR5i7qe.mjs.map +1 -0
  365. package/dist/chunks-Dr5Vr0zA.mjs +25 -0
  366. package/dist/chunks-Dr5Vr0zA.mjs.map +1 -0
  367. package/dist/cli/index.mjs +44 -42
  368. package/dist/cli/index.mjs.map +1 -1
  369. package/dist/client/cf-access.d.mts +1 -1
  370. package/dist/client/index.d.mts +107 -107
  371. package/dist/client/index.d.mts.map +1 -1
  372. package/dist/client/index.mjs +2 -2
  373. package/dist/client/index.mjs.map +1 -1
  374. package/dist/comment-CWla6OHV.mjs +325 -0
  375. package/dist/comment-CWla6OHV.mjs.map +1 -0
  376. package/dist/comment-reaction-RZrcs5cW.mjs +85 -0
  377. package/dist/comment-reaction-RZrcs5cW.mjs.map +1 -0
  378. package/dist/comments-BzmIKVb2.mjs +99 -0
  379. package/dist/comments-BzmIKVb2.mjs.map +1 -0
  380. package/dist/comments-Da_dI2O1.mjs +195 -0
  381. package/dist/comments-Da_dI2O1.mjs.map +1 -0
  382. package/dist/components-oFXumpf5.mjs +112 -0
  383. package/dist/components-oFXumpf5.mjs.map +1 -0
  384. package/dist/config--wamYxBW.d.mts +39 -0
  385. package/dist/config--wamYxBW.d.mts.map +1 -0
  386. package/dist/config-Bo4eOOdV.mjs +228 -0
  387. package/dist/config-Bo4eOOdV.mjs.map +1 -0
  388. package/dist/config-C4-UxIk7.d.mts +6790 -0
  389. package/dist/config-C4-UxIk7.d.mts.map +1 -0
  390. package/dist/connection-UpzYxtE2.mjs +36 -0
  391. package/dist/connection-UpzYxtE2.mjs.map +1 -0
  392. package/dist/content-CcHrqkgp.mjs +2072 -0
  393. package/dist/content-CcHrqkgp.mjs.map +1 -0
  394. package/dist/content-list-query-Bxxdd9fv.d.mts +26 -0
  395. package/dist/content-list-query-Bxxdd9fv.d.mts.map +1 -0
  396. package/dist/content-repair-havk1F0-.mjs +442 -0
  397. package/dist/content-repair-havk1F0-.mjs.map +1 -0
  398. package/dist/context-CvhgHgSH.mjs +2043 -0
  399. package/dist/context-CvhgHgSH.mjs.map +1 -0
  400. package/dist/credits-CygUrPOi.mjs +110 -0
  401. package/dist/credits-CygUrPOi.mjs.map +1 -0
  402. package/dist/cron-C6ytTOLw.mjs +306 -0
  403. package/dist/cron-C6ytTOLw.mjs.map +1 -0
  404. package/dist/dashboard-7_FYfafc.mjs +151 -0
  405. package/dist/dashboard-7_FYfafc.mjs.map +1 -0
  406. package/dist/db/index.d.mts +3 -3
  407. package/dist/db/index.mjs +1 -1
  408. package/dist/db/libsql-migrations.d.mts +1 -1
  409. package/dist/db/libsql-migrations.mjs +4 -4
  410. package/dist/db/libsql.d.mts +1 -1
  411. package/dist/db/postgres-migrations.d.mts +1 -1
  412. package/dist/db/postgres-migrations.mjs +4 -4
  413. package/dist/db/postgres.d.mts +1 -1
  414. package/dist/db/sqlite-migrations.d.mts +1 -1
  415. package/dist/db/sqlite-migrations.mjs +4 -4
  416. package/dist/db/sqlite.d.mts +1 -1
  417. package/dist/db/sqlite.mjs +1 -1
  418. package/dist/default-CHCUkV4Z.mjs +81 -0
  419. package/dist/default-CHCUkV4Z.mjs.map +1 -0
  420. package/dist/deferred-tasks-G0xhcJTl.d.mts +9 -0
  421. package/dist/deferred-tasks-G0xhcJTl.d.mts.map +1 -0
  422. package/dist/device-flow-CzDJmQ1q.mjs +521 -0
  423. package/dist/device-flow-CzDJmQ1q.mjs.map +1 -0
  424. package/dist/digest-xJmyPv2r.mjs +194 -0
  425. package/dist/digest-xJmyPv2r.mjs.map +1 -0
  426. package/dist/direct-executor-BXiYIVJ9.mjs +104 -0
  427. package/dist/direct-executor-BXiYIVJ9.mjs.map +1 -0
  428. package/dist/email-console-7ZPApLlm.mjs +50 -0
  429. package/dist/email-console-7ZPApLlm.mjs.map +1 -0
  430. package/dist/email-locale-DFdUA6UF.mjs +25 -0
  431. package/dist/email-locale-DFdUA6UF.mjs.map +1 -0
  432. package/dist/emdash-runtime-C4oFeVpN.mjs +4363 -0
  433. package/dist/emdash-runtime-C4oFeVpN.mjs.map +1 -0
  434. package/dist/entry-lock-B4n0HdQ_.mjs +163 -0
  435. package/dist/entry-lock-B4n0HdQ_.mjs.map +1 -0
  436. package/dist/entry-lock-BAAlKYrz.d.mts +4566 -0
  437. package/dist/entry-lock-BAAlKYrz.d.mts.map +1 -0
  438. package/dist/entry-lock-Cjz0h45X.mjs +1209 -0
  439. package/dist/entry-lock-Cjz0h45X.mjs.map +1 -0
  440. package/dist/env-types-4bkF6Bqg.mjs +38 -0
  441. package/dist/env-types-4bkF6Bqg.mjs.map +1 -0
  442. package/dist/error-DxgQdaZ_.mjs +90 -0
  443. package/dist/error-DxgQdaZ_.mjs.map +1 -0
  444. package/dist/errors-CjtE5aWF.mjs +120 -0
  445. package/dist/errors-CjtE5aWF.mjs.map +1 -0
  446. package/dist/errors-hskQ0C8G.mjs +479 -0
  447. package/dist/errors-hskQ0C8G.mjs.map +1 -0
  448. package/dist/escape-ESFhYzwG.mjs +9 -0
  449. package/dist/escape-ESFhYzwG.mjs.map +1 -0
  450. package/dist/fence-vc3aHgRA.mjs +162 -0
  451. package/dist/fence-vc3aHgRA.mjs.map +1 -0
  452. package/dist/field-defs-cache-zoow36nz.mjs +77 -0
  453. package/dist/field-defs-cache-zoow36nz.mjs.map +1 -0
  454. package/dist/field-map-JD1wG0Tq.mjs +83 -0
  455. package/dist/field-map-JD1wG0Tq.mjs.map +1 -0
  456. package/dist/fts-manager-WJCN8uU6.mjs +443 -0
  457. package/dist/fts-manager-WJCN8uU6.mjs.map +1 -0
  458. package/dist/gc-CsGZiKdH.mjs +75 -0
  459. package/dist/gc-CsGZiKdH.mjs.map +1 -0
  460. package/dist/hook-result-CXjtMk7Q.d.mts +31 -0
  461. package/dist/hook-result-CXjtMk7Q.d.mts.map +1 -0
  462. package/dist/hreflang-BAma7iRr.mjs +105 -0
  463. package/dist/hreflang-BAma7iRr.mjs.map +1 -0
  464. package/dist/hreflang-BsYo4x_M.d.mts +50 -0
  465. package/dist/hreflang-BsYo4x_M.d.mts.map +1 -0
  466. package/dist/http-route-dispatch-C8G7hAK6.mjs +342 -0
  467. package/dist/http-route-dispatch-C8G7hAK6.mjs.map +1 -0
  468. package/dist/identity-BwBKM1fH.mjs +35 -0
  469. package/dist/identity-BwBKM1fH.mjs.map +1 -0
  470. package/dist/import-DJ3Z2wxE.mjs +2021 -0
  471. package/dist/import-DJ3Z2wxE.mjs.map +1 -0
  472. package/dist/index-DYsn97dY.d.mts +623 -0
  473. package/dist/index-DYsn97dY.d.mts.map +1 -0
  474. package/dist/index.d.mts +24 -24
  475. package/dist/index.mjs +87 -87
  476. package/dist/install-finalization-DCFnFSHv.mjs +58 -0
  477. package/dist/install-finalization-DCFnFSHv.mjs.map +1 -0
  478. package/dist/keys-CGvAndSp.mjs +61 -0
  479. package/dist/keys-CGvAndSp.mjs.map +1 -0
  480. package/dist/kinds-DT1W4T4Y.mjs +974 -0
  481. package/dist/kinds-DT1W4T4Y.mjs.map +1 -0
  482. package/dist/lifecycle-BzglCSY0.mjs +25 -0
  483. package/dist/lifecycle-BzglCSY0.mjs.map +1 -0
  484. package/dist/load-DjUqmf3s.mjs +28 -0
  485. package/dist/load-DjUqmf3s.mjs.map +1 -0
  486. package/dist/loader-CetY659y.mjs +1355 -0
  487. package/dist/loader-CetY659y.mjs.map +1 -0
  488. package/dist/loops-DkT1zkPH.mjs +205 -0
  489. package/dist/loops-DkT1zkPH.mjs.map +1 -0
  490. package/dist/manifest-builder-BOFCd9rX.mjs +189 -0
  491. package/dist/manifest-builder-BOFCd9rX.mjs.map +1 -0
  492. package/dist/manifest-schema-BiFBPEsp.mjs +497 -0
  493. package/dist/manifest-schema-BiFBPEsp.mjs.map +1 -0
  494. package/dist/marketplace-CUlenvZm.mjs +257 -0
  495. package/dist/marketplace-CUlenvZm.mjs.map +1 -0
  496. package/dist/media/image-endpoint.d.mts +26 -2
  497. package/dist/media/image-endpoint.d.mts.map +1 -1
  498. package/dist/media/image-endpoint.mjs +73 -3
  499. package/dist/media/image-endpoint.mjs.map +1 -1
  500. package/dist/media/index.d.mts +1 -1
  501. package/dist/media/local-runtime.d.mts +14 -14
  502. package/dist/media/local-runtime.mjs +4 -4
  503. package/dist/media-CRKsKlfK.mjs +416 -0
  504. package/dist/media-CRKsKlfK.mjs.map +1 -0
  505. package/dist/media-C_z7sRuC.mjs +294 -0
  506. package/dist/media-C_z7sRuC.mjs.map +1 -0
  507. package/dist/media-IT8hQleU.mjs +373 -0
  508. package/dist/media-IT8hQleU.mjs.map +1 -0
  509. package/dist/media-allowlist-Ct6wvnT2.mjs +45 -0
  510. package/dist/media-allowlist-Ct6wvnT2.mjs.map +1 -0
  511. package/dist/media-folders-DtMt-vAA.mjs +210 -0
  512. package/dist/media-folders-DtMt-vAA.mjs.map +1 -0
  513. package/dist/media-url-BpXLqCmf.mjs +43 -0
  514. package/dist/media-url-BpXLqCmf.mjs.map +1 -0
  515. package/dist/media-usage-DEPHZZ9X.mjs +282 -0
  516. package/dist/media-usage-DEPHZZ9X.mjs.map +1 -0
  517. package/dist/media-usage-activation-V2Siabtw.mjs +78 -0
  518. package/dist/media-usage-activation-V2Siabtw.mjs.map +1 -0
  519. package/dist/media-usage-work-Cv1OE59F.mjs +151 -0
  520. package/dist/media-usage-work-Cv1OE59F.mjs.map +1 -0
  521. package/dist/media-usage-work-cgDYGvrt.mjs +1015 -0
  522. package/dist/media-usage-work-cgDYGvrt.mjs.map +1 -0
  523. package/dist/menus-CvVYfsuk.mjs +753 -0
  524. package/dist/menus-CvVYfsuk.mjs.map +1 -0
  525. package/dist/menus-D1HC8npj.mjs +92 -0
  526. package/dist/menus-D1HC8npj.mjs.map +1 -0
  527. package/dist/menus-DL8IPIcm.mjs +3721 -0
  528. package/dist/menus-DL8IPIcm.mjs.map +1 -0
  529. package/dist/migrations/index.d.mts +1 -1
  530. package/dist/migrations/index.mjs +3 -3
  531. package/dist/mode-eieqAWLe.mjs +23 -0
  532. package/dist/mode-eieqAWLe.mjs.map +1 -0
  533. package/dist/node-sqlite-compat-VuyzJw1b.mjs +63 -0
  534. package/dist/node-sqlite-compat-VuyzJw1b.mjs.map +1 -0
  535. package/dist/oauth-authorization-B6ZJbMd2.mjs +274 -0
  536. package/dist/oauth-authorization-B6ZJbMd2.mjs.map +1 -0
  537. package/dist/oauth-clients-DVjRc9v3.mjs +266 -0
  538. package/dist/oauth-clients-DVjRc9v3.mjs.map +1 -0
  539. package/dist/oauth-state-store-CnmYYsVQ.mjs +50 -0
  540. package/dist/oauth-state-store-CnmYYsVQ.mjs.map +1 -0
  541. package/dist/oauth-user-lookup-Dz1_R5vT.mjs +26 -0
  542. package/dist/oauth-user-lookup-Dz1_R5vT.mjs.map +1 -0
  543. package/dist/object-cache/memory.d.mts +1 -1
  544. package/dist/options-BR9XZl7h.d.mts +81 -0
  545. package/dist/options-BR9XZl7h.d.mts.map +1 -0
  546. package/dist/ownership-COPyVysP.mjs +12 -0
  547. package/dist/ownership-COPyVysP.mjs.map +1 -0
  548. package/dist/page/index.d.mts +2 -2
  549. package/dist/page/index.mjs +3 -3
  550. package/dist/parse-BOGhrwSq.d.mts +174 -0
  551. package/dist/parse-BOGhrwSq.d.mts.map +1 -0
  552. package/dist/parse-Cn5aSk1N.mjs +81 -0
  553. package/dist/parse-Cn5aSk1N.mjs.map +1 -0
  554. package/dist/passkey-config-mMFRQUCj.mjs +46 -0
  555. package/dist/passkey-config-mMFRQUCj.mjs.map +1 -0
  556. package/dist/paths-BmcAdBo9.mjs +77 -0
  557. package/dist/paths-BmcAdBo9.mjs.map +1 -0
  558. package/dist/patterns-CMNnYCgf.mjs +159 -0
  559. package/dist/patterns-CMNnYCgf.mjs.map +1 -0
  560. package/dist/placeholder-nOep3_Gn.d.mts +306 -0
  561. package/dist/placeholder-nOep3_Gn.d.mts.map +1 -0
  562. package/dist/plan-CDY4K8CH.mjs +135 -0
  563. package/dist/plan-CDY4K8CH.mjs.map +1 -0
  564. package/dist/plugin-test-runtime.d.mts +14 -14
  565. package/dist/plugin-test-runtime.d.mts.map +1 -1
  566. package/dist/plugin-test-runtime.mjs +100 -100
  567. package/dist/plugin-types.d.mts +2 -2
  568. package/dist/plugin-utils.d.mts +12 -12
  569. package/dist/plugin-utils.mjs +1 -1
  570. package/dist/plugin-utils.mjs.map +1 -1
  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 +35 -35
  575. package/dist/plugins-DFBpfbO3.mjs +261 -0
  576. package/dist/plugins-DFBpfbO3.mjs.map +1 -0
  577. package/dist/policy-B_2qnHSy.mjs +45 -0
  578. package/dist/policy-B_2qnHSy.mjs.map +1 -0
  579. package/dist/portable-text-Dc2YAusw.mjs +307 -0
  580. package/dist/portable-text-Dc2YAusw.mjs.map +1 -0
  581. package/dist/preview-BtzikJ9O.mjs +107 -0
  582. package/dist/preview-BtzikJ9O.mjs.map +1 -0
  583. package/dist/protocol-M268ox8L.d.mts +61 -0
  584. package/dist/protocol-M268ox8L.d.mts.map +1 -0
  585. package/dist/public-submission-BQZavgZU.mjs +251 -0
  586. package/dist/public-submission-BQZavgZU.mjs.map +1 -0
  587. package/dist/public-url-uT1Ok2Tu.mjs +101 -0
  588. package/dist/public-url-uT1Ok2Tu.mjs.map +1 -0
  589. package/dist/query-BGG3sDEd.mjs +1127 -0
  590. package/dist/query-BGG3sDEd.mjs.map +1 -0
  591. package/dist/query-C_CWlifp.mjs +41 -0
  592. package/dist/query-C_CWlifp.mjs.map +1 -0
  593. package/dist/range-CXK_kDbI.mjs +51 -0
  594. package/dist/range-CXK_kDbI.mjs.map +1 -0
  595. package/dist/rate-limit-Dvamvay-.mjs +127 -0
  596. package/dist/rate-limit-Dvamvay-.mjs.map +1 -0
  597. package/dist/receipt-BmQGzquP.mjs +43 -0
  598. package/dist/receipt-BmQGzquP.mjs.map +1 -0
  599. package/dist/redirect-B39kTQ_0.mjs +423 -0
  600. package/dist/redirect-B39kTQ_0.mjs.map +1 -0
  601. package/dist/redirect-BguJ00Pv.mjs +19 -0
  602. package/dist/redirect-BguJ00Pv.mjs.map +1 -0
  603. package/dist/redirects-C8G4BsfP.mjs +446 -0
  604. package/dist/redirects-C8G4BsfP.mjs.map +1 -0
  605. package/dist/redirects-DFT7Wr-e.mjs +148 -0
  606. package/dist/redirects-DFT7Wr-e.mjs.map +1 -0
  607. package/dist/registry/testing.mjs +3 -3
  608. package/dist/registry-DeZ27gVi.mjs +8374 -0
  609. package/dist/registry-DeZ27gVi.mjs.map +1 -0
  610. package/dist/relations-DBB1bRJW.mjs +776 -0
  611. package/dist/relations-DBB1bRJW.mjs.map +1 -0
  612. package/dist/request-context.d.mts +1 -1
  613. package/dist/request-meta-BSvkhIBX.mjs +141 -0
  614. package/dist/request-meta-BSvkhIBX.mjs.map +1 -0
  615. package/dist/resolve-BxH64HN9.mjs +100 -0
  616. package/dist/resolve-BxH64HN9.mjs.map +1 -0
  617. package/dist/route-wire-CwbWB_6O.mjs +197 -0
  618. package/dist/route-wire-CwbWB_6O.mjs.map +1 -0
  619. package/dist/routes-BfIxc7ft.mjs +272 -0
  620. package/dist/routes-BfIxc7ft.mjs.map +1 -0
  621. package/dist/runner-DkeafPBA.d.mts +68 -0
  622. package/dist/runner-DkeafPBA.d.mts.map +1 -0
  623. package/dist/runner-wqt4BrIW.mjs +6383 -0
  624. package/dist/runner-wqt4BrIW.mjs.map +1 -0
  625. package/dist/runtime.d.mts +13 -13
  626. package/dist/runtime.mjs +1 -1
  627. package/dist/schema/project-env-types.mjs +29 -29
  628. package/dist/schema-BXIW-JHi.mjs +815 -0
  629. package/dist/schema-BXIW-JHi.mjs.map +1 -0
  630. package/dist/schema-I74JwYte.mjs +13 -0
  631. package/dist/schema-I74JwYte.mjs.map +1 -0
  632. package/dist/scopes-RWZ5ft_Z.mjs +34 -0
  633. package/dist/scopes-RWZ5ft_Z.mjs.map +1 -0
  634. package/dist/search-DxwagyWS.mjs +450 -0
  635. package/dist/search-DxwagyWS.mjs.map +1 -0
  636. package/dist/sections-Ccq9ZgyD.mjs +346 -0
  637. package/dist/sections-Ccq9ZgyD.mjs.map +1 -0
  638. package/dist/seed/index.d.mts +2 -2
  639. package/dist/seed/index.mjs +27 -27
  640. package/dist/seo/index.d.mts +3 -3
  641. package/dist/seo/index.mjs +14 -14
  642. package/dist/seo-CCnfPWAQ.mjs +133 -0
  643. package/dist/seo-CCnfPWAQ.mjs.map +1 -0
  644. package/dist/seo-QCtJ1jjV.mjs +188 -0
  645. package/dist/seo-QCtJ1jjV.mjs.map +1 -0
  646. package/dist/service-DX84s2rw.mjs +150 -0
  647. package/dist/service-DX84s2rw.mjs.map +1 -0
  648. package/dist/session-user-1dtJc2zv.mjs +61 -0
  649. package/dist/session-user-1dtJc2zv.mjs.map +1 -0
  650. package/dist/settings-B1jOxAIl.mjs +443 -0
  651. package/dist/settings-B1jOxAIl.mjs.map +1 -0
  652. package/dist/settings-Bc1IBl1t.mjs +66 -0
  653. package/dist/settings-Bc1IBl1t.mjs.map +1 -0
  654. package/dist/settings-GaZ5sVgg.mjs +73 -0
  655. package/dist/settings-GaZ5sVgg.mjs.map +1 -0
  656. package/dist/setup-complete-DidMAWJS.mjs +65 -0
  657. package/dist/setup-complete-DidMAWJS.mjs.map +1 -0
  658. package/dist/setup-nonce-DKl4S4c6.mjs +25 -0
  659. package/dist/setup-nonce-DKl4S4c6.mjs.map +1 -0
  660. package/dist/site-domain-CbI51Pc2.mjs +113 -0
  661. package/dist/site-domain-CbI51Pc2.mjs.map +1 -0
  662. package/dist/site-settings-CDdT4mVm.mjs +50 -0
  663. package/dist/site-settings-CDdT4mVm.mjs.map +1 -0
  664. package/dist/site-url-CrDZaAvo.mjs +45 -0
  665. package/dist/site-url-CrDZaAvo.mjs.map +1 -0
  666. package/dist/sitemap-name-W3BTor6X.mjs +26 -0
  667. package/dist/sitemap-name-W3BTor6X.mjs.map +1 -0
  668. package/dist/slug-BJhHKoOH.mjs +16 -0
  669. package/dist/slug-BJhHKoOH.mjs.map +1 -0
  670. package/dist/slugify-bu2-jKia.mjs +22 -0
  671. package/dist/slugify-bu2-jKia.mjs.map +1 -0
  672. package/dist/snapshot-BuI_2uDe.mjs +414 -0
  673. package/dist/snapshot-BuI_2uDe.mjs.map +1 -0
  674. package/dist/ssrf-LM_0wpGA.mjs +406 -0
  675. package/dist/ssrf-LM_0wpGA.mjs.map +1 -0
  676. package/dist/stage-DhzZuYaT.mjs +662 -0
  677. package/dist/stage-DhzZuYaT.mjs.map +1 -0
  678. package/dist/staged-DboEaWsV.mjs +686 -0
  679. package/dist/staged-DboEaWsV.mjs.map +1 -0
  680. package/dist/state-DCXDzjHq.mjs +178 -0
  681. package/dist/state-DCXDzjHq.mjs.map +1 -0
  682. package/dist/status-Dl85BK39.mjs +30 -0
  683. package/dist/status-Dl85BK39.mjs.map +1 -0
  684. package/dist/storage/local.d.mts +2 -2
  685. package/dist/storage/local.d.mts.map +1 -1
  686. package/dist/storage/local.mjs +11 -4
  687. package/dist/storage/local.mjs.map +1 -1
  688. package/dist/storage/s3.d.mts +4 -2
  689. package/dist/storage/s3.d.mts.map +1 -1
  690. package/dist/storage/s3.mjs +56 -9
  691. package/dist/storage/s3.mjs.map +1 -1
  692. package/dist/storage-query-BOBmeDMD.d.mts +1615 -0
  693. package/dist/storage-query-BOBmeDMD.d.mts.map +1 -0
  694. package/dist/tar-K40edFMt.mjs +449 -0
  695. package/dist/tar-K40edFMt.mjs.map +1 -0
  696. package/dist/target-BOighEY1.mjs +27 -0
  697. package/dist/target-BOighEY1.mjs.map +1 -0
  698. package/dist/taxonomies-DQSywBvX.mjs +697 -0
  699. package/dist/taxonomies-DQSywBvX.mjs.map +1 -0
  700. package/dist/taxonomies-Dj5eaobC.mjs +939 -0
  701. package/dist/taxonomies-Dj5eaobC.mjs.map +1 -0
  702. package/dist/taxonomy-QrNmTfIZ.mjs +550 -0
  703. package/dist/taxonomy-QrNmTfIZ.mjs.map +1 -0
  704. package/dist/tokens-j5L0as2H.mjs +171 -0
  705. package/dist/tokens-j5L0as2H.mjs.map +1 -0
  706. package/dist/transfer-CYEw8Tu4.mjs +8873 -0
  707. package/dist/transfer-CYEw8Tu4.mjs.map +1 -0
  708. package/dist/transfer-DDX10hkD.mjs +166 -0
  709. package/dist/transfer-DDX10hkD.mjs.map +1 -0
  710. package/dist/transfer-download-BAqq6GJv.mjs +33 -0
  711. package/dist/transfer-download-BAqq6GJv.mjs.map +1 -0
  712. package/dist/transformations-De44wqV_.mjs +196 -0
  713. package/dist/transformations-De44wqV_.mjs.map +1 -0
  714. package/dist/transport-1QjUhCRO.d.mts +42 -0
  715. package/dist/transport-1QjUhCRO.d.mts.map +1 -0
  716. package/dist/transport-Ds5pVX7p.mjs +136 -0
  717. package/dist/transport-Ds5pVX7p.mjs.map +1 -0
  718. package/dist/trusted-proxy-d4Tk6biT.mjs +51 -0
  719. package/dist/trusted-proxy-d4Tk6biT.mjs.map +1 -0
  720. package/dist/turnstile-DaFLtyrs.mjs +58 -0
  721. package/dist/turnstile-DaFLtyrs.mjs.map +1 -0
  722. package/dist/types-B4-1P2DK.d.mts +227 -0
  723. package/dist/types-B4-1P2DK.d.mts.map +1 -0
  724. package/dist/types-BKXA0f-c.mjs +16 -0
  725. package/dist/types-BKXA0f-c.mjs.map +1 -0
  726. package/dist/types-BiHcpUoO.d.mts +374 -0
  727. package/dist/types-BiHcpUoO.d.mts.map +1 -0
  728. package/dist/types-BihhvkyN.d.mts +85 -0
  729. package/dist/types-BihhvkyN.d.mts.map +1 -0
  730. package/dist/types-Bq9Wohd7.d.mts +363 -0
  731. package/dist/types-Bq9Wohd7.d.mts.map +1 -0
  732. package/dist/types-C-Xp0CcN.mjs.map +1 -1
  733. package/dist/types-C4P7F1Vq.d.mts +1741 -0
  734. package/dist/types-C4P7F1Vq.d.mts.map +1 -0
  735. package/dist/types-CGaqwHw4.mjs +37 -0
  736. package/dist/types-CGaqwHw4.mjs.map +1 -0
  737. package/dist/types-D4ECCE4X.mjs +77 -0
  738. package/dist/types-D4ECCE4X.mjs.map +1 -0
  739. package/dist/types-DcRJp0vS.d.mts +125 -0
  740. package/dist/types-DcRJp0vS.d.mts.map +1 -0
  741. package/dist/types-Ff85fTzU.d.mts +289 -0
  742. package/dist/types-Ff85fTzU.d.mts.map +1 -0
  743. package/dist/types-UKr5Sf4y.d.mts +916 -0
  744. package/dist/types-UKr5Sf4y.d.mts.map +1 -0
  745. package/dist/types-YpN8hZW7.d.mts +204 -0
  746. package/dist/types-YpN8hZW7.d.mts.map +1 -0
  747. package/dist/update-check-DrlsK-tt.mjs +161 -0
  748. package/dist/update-check-DrlsK-tt.mjs.map +1 -0
  749. package/dist/upload-attempts-D8CPPvRU.mjs +32 -0
  750. package/dist/upload-attempts-D8CPPvRU.mjs.map +1 -0
  751. package/dist/url-pattern-Di4Nn3vP.mjs +41 -0
  752. package/dist/url-pattern-Di4Nn3vP.mjs.map +1 -0
  753. package/dist/user-B-ZdGjhI.mjs +171 -0
  754. package/dist/user-B-ZdGjhI.mjs.map +1 -0
  755. package/dist/utils-D7wL3r6-.mjs +437 -0
  756. package/dist/utils-D7wL3r6-.mjs.map +1 -0
  757. package/dist/validate-BSZbSUDk.mjs +524 -0
  758. package/dist/validate-BSZbSUDk.mjs.map +1 -0
  759. package/dist/validate-Dfv0DpZi.d.mts +468 -0
  760. package/dist/validate-Dfv0DpZi.d.mts.map +1 -0
  761. package/dist/validation-DRyC_Vm5.mjs +219 -0
  762. package/dist/validation-DRyC_Vm5.mjs.map +1 -0
  763. package/dist/version-C4kz0PcO.mjs +7 -0
  764. package/dist/version-C4kz0PcO.mjs.map +1 -0
  765. package/dist/version-jhs2BRtl.mjs +9 -0
  766. package/dist/version-jhs2BRtl.mjs.map +1 -0
  767. package/dist/video-DReZ48Un.mjs +54 -0
  768. package/dist/video-DReZ48Un.mjs.map +1 -0
  769. package/dist/virtual-modules-D0e6VbEv.mjs +516 -0
  770. package/dist/virtual-modules-D0e6VbEv.mjs.map +1 -0
  771. package/dist/widgets-BkcMzKct.mjs +121 -0
  772. package/dist/widgets-BkcMzKct.mjs.map +1 -0
  773. package/dist/wxr-taxonomies-BxI0CbTg.mjs +453 -0
  774. package/dist/wxr-taxonomies-BxI0CbTg.mjs.map +1 -0
  775. package/dist/wxr-taxonomies-Dad33GJi.d.mts +34 -0
  776. package/dist/wxr-taxonomies-Dad33GJi.d.mts.map +1 -0
  777. package/package.json +13 -10
  778. package/src/api/errors.ts +9 -0
  779. package/src/api/handlers/api-tokens.ts +12 -6
  780. package/src/api/handlers/content.ts +57 -8
  781. package/src/api/handlers/domain-move-notice.ts +94 -0
  782. package/src/api/handlers/index.ts +2 -0
  783. package/src/api/handlers/manifest.ts +5 -0
  784. package/src/api/handlers/media-usage.ts +2 -1
  785. package/src/api/handlers/media.ts +1 -0
  786. package/src/api/handlers/seo.ts +155 -59
  787. package/src/api/handlers/settings.ts +31 -1
  788. package/src/api/handlers/site-domain.ts +143 -0
  789. package/src/api/openapi/document.ts +2 -2
  790. package/src/api/public-url.ts +1 -1
  791. package/src/api/schemas/content.ts +20 -0
  792. package/src/api/schemas/media-usage.ts +7 -1
  793. package/src/api/schemas/media.ts +12 -0
  794. package/src/api/site-url.ts +53 -5
  795. package/src/api/types.ts +2 -0
  796. package/src/astro/image-endpoint.ts +46 -4
  797. package/src/astro/integration/admin-locales.ts +168 -0
  798. package/src/astro/integration/dev-env.ts +84 -0
  799. package/src/astro/integration/index.ts +49 -9
  800. package/src/astro/integration/routes.ts +20 -0
  801. package/src/astro/integration/runtime.ts +15 -0
  802. package/src/astro/integration/vite-config.ts +18 -1
  803. package/src/astro/middleware/auth.ts +16 -3
  804. package/src/astro/middleware/csp.ts +1 -0
  805. package/src/astro/middleware/redirect.ts +27 -12
  806. package/src/astro/middleware/request-context.ts +12 -6
  807. package/src/astro/middleware.ts +53 -14
  808. package/src/astro/routes/api/auth/handover.ts +58 -0
  809. package/src/astro/routes/api/auth/magic-link/verify.ts +11 -3
  810. package/src/astro/routes/api/auth/passkey/options.ts +10 -2
  811. package/src/astro/routes/api/import/wordpress/execute.ts +19 -0
  812. package/src/astro/routes/api/import/wordpress/rewrite-url-helpers.ts +80 -42
  813. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +15 -0
  814. package/src/astro/routes/api/manifest.ts +10 -0
  815. package/src/astro/routes/api/media/[id]/confirm.ts +19 -0
  816. package/src/astro/routes/api/media/file/[...key].ts +60 -12
  817. package/src/astro/routes/api/media/upload-url.ts +28 -4
  818. package/src/astro/routes/api/media.ts +15 -0
  819. package/src/astro/routes/api/schema/index.ts +1 -1
  820. package/src/astro/routes/api/settings/domain-notify.ts +76 -0
  821. package/src/astro/routes/api/settings/domain.ts +63 -0
  822. package/src/astro/routes/api/setup/index.ts +7 -0
  823. package/src/astro/routes/api/site/domain-proof.ts +28 -0
  824. package/src/astro/routes/sitemap-[collection].xml.ts +31 -8
  825. package/src/astro/routes/sitemap.xml.ts +12 -10
  826. package/src/astro/types.ts +13 -1
  827. package/src/auth/rate-limit.ts +18 -13
  828. package/src/auth/types.ts +7 -0
  829. package/src/aws-sdk.d.ts +2 -1
  830. package/src/cleanup.ts +26 -0
  831. package/src/cli/commands/export-seed.ts +2 -0
  832. package/src/cli/commands/seed.ts +5 -4
  833. package/src/client/index.ts +6 -1
  834. package/src/comments/public-submission.ts +15 -8
  835. package/src/components/CommentForm.astro +48 -8
  836. package/src/components/Comments.astro +50 -28
  837. package/src/components/EmDashImage.astro +6 -4
  838. package/src/components/Gallery.astro +4 -3
  839. package/src/components/Image.astro +4 -3
  840. package/src/components/InlinePortableTextEditor.tsx +148 -26
  841. package/src/components/Video.astro +100 -0
  842. package/src/components/index.ts +4 -1
  843. package/src/components/inline-code-block.tsx +8 -0
  844. package/src/components/webmcp-search.ts +15 -19
  845. package/src/components/widgets/RecentPosts.astro +57 -17
  846. package/src/content/converters/mark-safety.ts +3 -3
  847. package/src/content/converters/portable-text-identity.ts +1 -0
  848. package/src/content/converters/portable-text-to-prosemirror.ts +7 -0
  849. package/src/content/converters/prosemirror-to-portable-text.ts +16 -0
  850. package/src/content/converters/types.ts +22 -0
  851. package/src/content/converters/video.ts +77 -0
  852. package/src/database/datetime-storage.ts +1 -1
  853. package/src/database/migrations/runner.ts +13 -1
  854. package/src/database/repositories/comment.ts +17 -3
  855. package/src/database/repositories/content.ts +22 -3
  856. package/src/database/repositories/plugin-storage.ts +28 -19
  857. package/src/database/repositories/redirect.ts +24 -2
  858. package/src/database/repositories/taxonomy.ts +61 -46
  859. package/src/database/repositories/types.ts +2 -0
  860. package/src/emdash-runtime.ts +217 -68
  861. package/src/import/sources/wordpress-plugin.ts +3 -2
  862. package/src/import/utils.ts +2 -3
  863. package/src/index.ts +3 -0
  864. package/src/loader.ts +134 -43
  865. package/src/media/image-endpoint.ts +101 -1
  866. package/src/media/responsive.ts +14 -7
  867. package/src/media/usage/extractor.ts +19 -2
  868. package/src/media/usage/types.ts +5 -1
  869. package/src/plugin-utils.ts +1 -1
  870. package/src/plugins/context.ts +3 -7
  871. package/src/plugins/hooks.ts +1 -1
  872. package/src/plugins/http-route-dispatch.ts +5 -1
  873. package/src/plugins/manifest-schema.ts +1 -0
  874. package/src/plugins/route-error.ts +14 -0
  875. package/src/plugins/routes.ts +2 -2
  876. package/src/plugins/state.ts +36 -0
  877. package/src/plugins/types.ts +6 -0
  878. package/src/query.ts +8 -0
  879. package/src/redirects/patterns.ts +26 -2
  880. package/src/schema/registry.ts +7 -4
  881. package/src/schema/slug.ts +19 -0
  882. package/src/search/text-extraction.ts +6 -1
  883. package/src/seed/validate.ts +31 -0
  884. package/src/seo/sitemap-name.ts +22 -0
  885. package/src/storage/index.ts +2 -0
  886. package/src/storage/local.ts +10 -2
  887. package/src/storage/range.ts +54 -0
  888. package/src/storage/s3.ts +52 -8
  889. package/src/storage/types.ts +30 -3
  890. package/src/ui.ts +1 -0
  891. package/src/utils/slugify.ts +6 -1
  892. package/src/visual-editing/toolbar.ts +80 -35
  893. package/src/widgets/components.ts +4 -0
  894. package/src/widgets/index.ts +74 -82
  895. package/src/widgets/recent-posts.ts +62 -0
  896. package/dist/action-token-AgOs1UWD.mjs +0 -26
  897. package/dist/action-token-AgOs1UWD.mjs.map +0 -1
  898. package/dist/adapters-DM1oyHIN.d.mts +0 -173
  899. package/dist/adapters-DM1oyHIN.d.mts.map +0 -1
  900. package/dist/allowed-origins-CFtudhyw.mjs +0 -116
  901. package/dist/allowed-origins-CFtudhyw.mjs.map +0 -1
  902. package/dist/api-CltsXhiX.mjs +0 -4980
  903. package/dist/api-CltsXhiX.mjs.map +0 -1
  904. package/dist/api-tokens-P3mAaQgr.mjs +0 -166
  905. package/dist/api-tokens-P3mAaQgr.mjs.map +0 -1
  906. package/dist/apply-Q7uvzBWW.mjs +0 -1680
  907. package/dist/apply-Q7uvzBWW.mjs.map +0 -1
  908. package/dist/approvals-DycwI6lZ.mjs +0 -460
  909. package/dist/approvals-DycwI6lZ.mjs.map +0 -1
  910. package/dist/artifact-fetch-CWxyELVI.mjs +0 -659
  911. package/dist/artifact-fetch-CWxyELVI.mjs.map +0 -1
  912. package/dist/artifacts-UzWbysb8.mjs +0 -307
  913. package/dist/artifacts-UzWbysb8.mjs.map +0 -1
  914. package/dist/authoritative-records-dSvXCfzb.mjs +0 -5172
  915. package/dist/authoritative-records-dSvXCfzb.mjs.map +0 -1
  916. package/dist/authorize-DeWfk--K.mjs +0 -49
  917. package/dist/authorize-DeWfk--K.mjs.map +0 -1
  918. package/dist/backup-CFnbdTSJ.mjs +0 -246
  919. package/dist/backup-CFnbdTSJ.mjs.map +0 -1
  920. package/dist/block-types-C0YFSfR7.mjs +0 -132
  921. package/dist/block-types-C0YFSfR7.mjs.map +0 -1
  922. package/dist/block-values-H4E0XwE8.mjs +0 -175
  923. package/dist/block-values-H4E0XwE8.mjs.map +0 -1
  924. package/dist/byline-BhVslYLz.mjs +0 -909
  925. package/dist/byline-BhVslYLz.mjs.map +0 -1
  926. package/dist/byline-fields-DHJs0Mja.mjs +0 -280
  927. package/dist/byline-fields-DHJs0Mja.mjs.map +0 -1
  928. package/dist/byline-fields-xdxE9kxZ.mjs +0 -123
  929. package/dist/byline-fields-xdxE9kxZ.mjs.map +0 -1
  930. package/dist/bylines-B_nN9liM.mjs +0 -234
  931. package/dist/bylines-B_nN9liM.mjs.map +0 -1
  932. package/dist/bylines-C71YACkL.mjs +0 -150
  933. package/dist/bylines-C71YACkL.mjs.map +0 -1
  934. package/dist/cache-aTYCL9nK.mjs +0 -133
  935. package/dist/cache-aTYCL9nK.mjs.map +0 -1
  936. package/dist/canonical-Y1dpjCnp.mjs +0 -174
  937. package/dist/canonical-Y1dpjCnp.mjs.map +0 -1
  938. package/dist/challenge-store-CxZxPqaw.mjs +0 -51
  939. package/dist/challenge-store-CxZxPqaw.mjs.map +0 -1
  940. package/dist/checksum-DtH6m5uk.mjs +0 -162
  941. package/dist/checksum-DtH6m5uk.mjs.map +0 -1
  942. package/dist/chunks-zlGB5IQP.mjs +0 -25
  943. package/dist/chunks-zlGB5IQP.mjs.map +0 -1
  944. package/dist/comment-Bu08Wvr3.mjs +0 -313
  945. package/dist/comment-Bu08Wvr3.mjs.map +0 -1
  946. package/dist/comment-reaction-B8SfT-yM.mjs +0 -85
  947. package/dist/comment-reaction-B8SfT-yM.mjs.map +0 -1
  948. package/dist/comments-BRtp992B.mjs +0 -99
  949. package/dist/comments-BRtp992B.mjs.map +0 -1
  950. package/dist/comments-DVUYqdyC.mjs +0 -195
  951. package/dist/comments-DVUYqdyC.mjs.map +0 -1
  952. package/dist/components-CQY-Sgm-.mjs +0 -108
  953. package/dist/components-CQY-Sgm-.mjs.map +0 -1
  954. package/dist/config-B-uePMLj.d.mts +0 -39
  955. package/dist/config-B-uePMLj.d.mts.map +0 -1
  956. package/dist/config-B6BDSsz2.d.mts +0 -6712
  957. package/dist/config-B6BDSsz2.d.mts.map +0 -1
  958. package/dist/config-BsJHiQxC.mjs +0 -228
  959. package/dist/config-BsJHiQxC.mjs.map +0 -1
  960. package/dist/connection-B9pIasFd.mjs +0 -36
  961. package/dist/connection-B9pIasFd.mjs.map +0 -1
  962. package/dist/content-Dji9vEiW.mjs +0 -2063
  963. package/dist/content-Dji9vEiW.mjs.map +0 -1
  964. package/dist/content-list-query-DiNwyKtd.d.mts +0 -26
  965. package/dist/content-list-query-DiNwyKtd.d.mts.map +0 -1
  966. package/dist/content-repair-B7wnbzhN.mjs +0 -442
  967. package/dist/content-repair-B7wnbzhN.mjs.map +0 -1
  968. package/dist/context-Ctcxc8Ia.mjs +0 -2026
  969. package/dist/context-Ctcxc8Ia.mjs.map +0 -1
  970. package/dist/credits-Bu7dlobo.mjs +0 -110
  971. package/dist/credits-Bu7dlobo.mjs.map +0 -1
  972. package/dist/cron-xe5XKqA-.mjs +0 -306
  973. package/dist/cron-xe5XKqA-.mjs.map +0 -1
  974. package/dist/dashboard-B5hVHOtf.mjs +0 -151
  975. package/dist/dashboard-B5hVHOtf.mjs.map +0 -1
  976. package/dist/default-DaoYyFRS.mjs +0 -81
  977. package/dist/default-DaoYyFRS.mjs.map +0 -1
  978. package/dist/deferred-tasks-BYcDx2o_.d.mts +0 -9
  979. package/dist/deferred-tasks-BYcDx2o_.d.mts.map +0 -1
  980. package/dist/device-flow-Ma5P5d2e.mjs +0 -521
  981. package/dist/device-flow-Ma5P5d2e.mjs.map +0 -1
  982. package/dist/digest-xIpR3o64.mjs +0 -194
  983. package/dist/digest-xIpR3o64.mjs.map +0 -1
  984. package/dist/direct-executor-DMWwCey3.mjs +0 -104
  985. package/dist/direct-executor-DMWwCey3.mjs.map +0 -1
  986. package/dist/email-console-DmqVF5J_.mjs +0 -50
  987. package/dist/email-console-DmqVF5J_.mjs.map +0 -1
  988. package/dist/email-locale-Cc5YSXfJ.mjs +0 -25
  989. package/dist/email-locale-Cc5YSXfJ.mjs.map +0 -1
  990. package/dist/emdash-runtime-BlybX9Ui.mjs +0 -4249
  991. package/dist/emdash-runtime-BlybX9Ui.mjs.map +0 -1
  992. package/dist/entry-lock-De1L8qUQ.mjs +0 -163
  993. package/dist/entry-lock-De1L8qUQ.mjs.map +0 -1
  994. package/dist/entry-lock-esmMbgI9.d.mts +0 -4551
  995. package/dist/entry-lock-esmMbgI9.d.mts.map +0 -1
  996. package/dist/entry-lock-sxz2PGAT.mjs +0 -1197
  997. package/dist/entry-lock-sxz2PGAT.mjs.map +0 -1
  998. package/dist/env-types-BkjCtN13.mjs +0 -38
  999. package/dist/env-types-BkjCtN13.mjs.map +0 -1
  1000. package/dist/error-B0rgPgsQ.mjs +0 -90
  1001. package/dist/error-B0rgPgsQ.mjs.map +0 -1
  1002. package/dist/errors-CuHQRiBW.mjs +0 -120
  1003. package/dist/errors-CuHQRiBW.mjs.map +0 -1
  1004. package/dist/errors-DTE6C3K_.mjs +0 -470
  1005. package/dist/errors-DTE6C3K_.mjs.map +0 -1
  1006. package/dist/escape-nJW7dR0s.mjs +0 -9
  1007. package/dist/escape-nJW7dR0s.mjs.map +0 -1
  1008. package/dist/fence-CGw57S4v.mjs +0 -162
  1009. package/dist/fence-CGw57S4v.mjs.map +0 -1
  1010. package/dist/field-defs-cache-Bw8w499w.mjs +0 -77
  1011. package/dist/field-defs-cache-Bw8w499w.mjs.map +0 -1
  1012. package/dist/field-map-hn-D-SyH.mjs +0 -83
  1013. package/dist/field-map-hn-D-SyH.mjs.map +0 -1
  1014. package/dist/fts-manager-DacCYIe4.mjs +0 -443
  1015. package/dist/fts-manager-DacCYIe4.mjs.map +0 -1
  1016. package/dist/gc-BBplHrv6.mjs +0 -75
  1017. package/dist/gc-BBplHrv6.mjs.map +0 -1
  1018. package/dist/hook-result-DSRRxu_-.d.mts +0 -31
  1019. package/dist/hook-result-DSRRxu_-.d.mts.map +0 -1
  1020. package/dist/hreflang-CKPunvU0.mjs +0 -105
  1021. package/dist/hreflang-CKPunvU0.mjs.map +0 -1
  1022. package/dist/hreflang-egumj6WF.d.mts +0 -50
  1023. package/dist/hreflang-egumj6WF.d.mts.map +0 -1
  1024. package/dist/http-route-dispatch-DjNFZcJ2.mjs +0 -339
  1025. package/dist/http-route-dispatch-DjNFZcJ2.mjs.map +0 -1
  1026. package/dist/identity-Dfrx2_Bc.mjs +0 -35
  1027. package/dist/identity-Dfrx2_Bc.mjs.map +0 -1
  1028. package/dist/import-ROBvhbNc.mjs +0 -2021
  1029. package/dist/import-ROBvhbNc.mjs.map +0 -1
  1030. package/dist/index-B4sIdCAT.d.mts +0 -623
  1031. package/dist/index-B4sIdCAT.d.mts.map +0 -1
  1032. package/dist/install-finalization-CPM7Gged.mjs +0 -58
  1033. package/dist/install-finalization-CPM7Gged.mjs.map +0 -1
  1034. package/dist/keys-DxqxcAD4.mjs +0 -61
  1035. package/dist/keys-DxqxcAD4.mjs.map +0 -1
  1036. package/dist/kinds-BQl5gN6e.mjs +0 -974
  1037. package/dist/kinds-BQl5gN6e.mjs.map +0 -1
  1038. package/dist/lifecycle-DGQI7itS.mjs +0 -25
  1039. package/dist/lifecycle-DGQI7itS.mjs.map +0 -1
  1040. package/dist/load-DMxRl4VK.mjs +0 -28
  1041. package/dist/load-DMxRl4VK.mjs.map +0 -1
  1042. package/dist/loader-1DMiOq5s.mjs +0 -1303
  1043. package/dist/loader-1DMiOq5s.mjs.map +0 -1
  1044. package/dist/loops-Dn1i16FP.mjs +0 -205
  1045. package/dist/loops-Dn1i16FP.mjs.map +0 -1
  1046. package/dist/manifest-builder-CTw4FmZk.mjs +0 -189
  1047. package/dist/manifest-builder-CTw4FmZk.mjs.map +0 -1
  1048. package/dist/manifest-schema-gy37bD_D.mjs +0 -496
  1049. package/dist/manifest-schema-gy37bD_D.mjs.map +0 -1
  1050. package/dist/marketplace-tHWSsCUo.mjs +0 -257
  1051. package/dist/marketplace-tHWSsCUo.mjs.map +0 -1
  1052. package/dist/media-Bw-Q65ve.mjs +0 -294
  1053. package/dist/media-Bw-Q65ve.mjs.map +0 -1
  1054. package/dist/media-BzUDu7nl.mjs +0 -373
  1055. package/dist/media-BzUDu7nl.mjs.map +0 -1
  1056. package/dist/media-aahnKHze.mjs +0 -408
  1057. package/dist/media-aahnKHze.mjs.map +0 -1
  1058. package/dist/media-allowlist-RMrjo8TU.mjs +0 -45
  1059. package/dist/media-allowlist-RMrjo8TU.mjs.map +0 -1
  1060. package/dist/media-folders-kabR1oJf.mjs +0 -210
  1061. package/dist/media-folders-kabR1oJf.mjs.map +0 -1
  1062. package/dist/media-url-DloW2xrP.mjs +0 -43
  1063. package/dist/media-url-DloW2xrP.mjs.map +0 -1
  1064. package/dist/media-usage-CHHpV7ee.mjs +0 -282
  1065. package/dist/media-usage-CHHpV7ee.mjs.map +0 -1
  1066. package/dist/media-usage-activation-BinYqC_r.mjs +0 -78
  1067. package/dist/media-usage-activation-BinYqC_r.mjs.map +0 -1
  1068. package/dist/media-usage-work-C734aq6s.mjs +0 -1015
  1069. package/dist/media-usage-work-C734aq6s.mjs.map +0 -1
  1070. package/dist/media-usage-work-lxvV0-UO.mjs +0 -151
  1071. package/dist/media-usage-work-lxvV0-UO.mjs.map +0 -1
  1072. package/dist/menus-6RHNq4ZK.mjs +0 -753
  1073. package/dist/menus-6RHNq4ZK.mjs.map +0 -1
  1074. package/dist/menus-AuCTaO9W.mjs +0 -3704
  1075. package/dist/menus-AuCTaO9W.mjs.map +0 -1
  1076. package/dist/menus-BQKqf0Up.mjs +0 -92
  1077. package/dist/menus-BQKqf0Up.mjs.map +0 -1
  1078. package/dist/mode-nh0ppSX5.mjs +0 -23
  1079. package/dist/mode-nh0ppSX5.mjs.map +0 -1
  1080. package/dist/node-sqlite-compat-CDOEcc97.mjs +0 -63
  1081. package/dist/node-sqlite-compat-CDOEcc97.mjs.map +0 -1
  1082. package/dist/oauth-authorization-BtYQ80uU.mjs +0 -274
  1083. package/dist/oauth-authorization-BtYQ80uU.mjs.map +0 -1
  1084. package/dist/oauth-clients-C1S4NQHh.mjs +0 -266
  1085. package/dist/oauth-clients-C1S4NQHh.mjs.map +0 -1
  1086. package/dist/oauth-state-store-CpGi2FZH.mjs +0 -50
  1087. package/dist/oauth-state-store-CpGi2FZH.mjs.map +0 -1
  1088. package/dist/oauth-user-lookup-BNp1aFAr.mjs +0 -26
  1089. package/dist/oauth-user-lookup-BNp1aFAr.mjs.map +0 -1
  1090. package/dist/options-B41aLm1I.d.mts +0 -81
  1091. package/dist/options-B41aLm1I.d.mts.map +0 -1
  1092. package/dist/ownership-DoeAIuTg.mjs +0 -12
  1093. package/dist/ownership-DoeAIuTg.mjs.map +0 -1
  1094. package/dist/parse-CmFDTGzp.mjs +0 -81
  1095. package/dist/parse-CmFDTGzp.mjs.map +0 -1
  1096. package/dist/parse-QVS0t5oR.d.mts +0 -172
  1097. package/dist/parse-QVS0t5oR.d.mts.map +0 -1
  1098. package/dist/passkey-config-C-MxsV22.mjs +0 -46
  1099. package/dist/passkey-config-C-MxsV22.mjs.map +0 -1
  1100. package/dist/paths-kr8hAMMI.mjs +0 -77
  1101. package/dist/paths-kr8hAMMI.mjs.map +0 -1
  1102. package/dist/patterns-DyZJ67I7.mjs +0 -140
  1103. package/dist/patterns-DyZJ67I7.mjs.map +0 -1
  1104. package/dist/placeholder-Dn7MMdWr.d.mts +0 -306
  1105. package/dist/placeholder-Dn7MMdWr.d.mts.map +0 -1
  1106. package/dist/plan-CuQOeU9g.mjs +0 -135
  1107. package/dist/plan-CuQOeU9g.mjs.map +0 -1
  1108. package/dist/plugins-CGb-G98c.mjs +0 -261
  1109. package/dist/plugins-CGb-G98c.mjs.map +0 -1
  1110. package/dist/policy-C5wrDXYV.mjs +0 -45
  1111. package/dist/policy-C5wrDXYV.mjs.map +0 -1
  1112. package/dist/portable-text-BnRuiR1-.mjs +0 -307
  1113. package/dist/portable-text-BnRuiR1-.mjs.map +0 -1
  1114. package/dist/preview-xWNSR1Li.mjs +0 -107
  1115. package/dist/preview-xWNSR1Li.mjs.map +0 -1
  1116. package/dist/protocol-ClxN-m1e.d.mts +0 -61
  1117. package/dist/protocol-ClxN-m1e.d.mts.map +0 -1
  1118. package/dist/public-submission-CkmT2SKv.mjs +0 -250
  1119. package/dist/public-submission-CkmT2SKv.mjs.map +0 -1
  1120. package/dist/public-url-B5a0QAh6.mjs +0 -101
  1121. package/dist/public-url-B5a0QAh6.mjs.map +0 -1
  1122. package/dist/query-DHqFiqqH.mjs +0 -41
  1123. package/dist/query-DHqFiqqH.mjs.map +0 -1
  1124. package/dist/query-DT85BehD.mjs +0 -1125
  1125. package/dist/query-DT85BehD.mjs.map +0 -1
  1126. package/dist/rate-limit-iMvcu3eu.mjs +0 -120
  1127. package/dist/rate-limit-iMvcu3eu.mjs.map +0 -1
  1128. package/dist/receipt-Dpp1uaX9.mjs +0 -43
  1129. package/dist/receipt-Dpp1uaX9.mjs.map +0 -1
  1130. package/dist/redirect-BRoLiWQE.mjs +0 -19
  1131. package/dist/redirect-BRoLiWQE.mjs.map +0 -1
  1132. package/dist/redirect-xZNpBoGp.mjs +0 -417
  1133. package/dist/redirect-xZNpBoGp.mjs.map +0 -1
  1134. package/dist/redirects-D4EWeXAo.mjs +0 -148
  1135. package/dist/redirects-D4EWeXAo.mjs.map +0 -1
  1136. package/dist/redirects-DCKqwiWp.mjs +0 -446
  1137. package/dist/redirects-DCKqwiWp.mjs.map +0 -1
  1138. package/dist/registry-DaXmUsD4.mjs +0 -8369
  1139. package/dist/registry-DaXmUsD4.mjs.map +0 -1
  1140. package/dist/relations-JvBP8nGP.mjs +0 -776
  1141. package/dist/relations-JvBP8nGP.mjs.map +0 -1
  1142. package/dist/request-meta-B6blULFY.mjs +0 -141
  1143. package/dist/request-meta-B6blULFY.mjs.map +0 -1
  1144. package/dist/resolve-DAhHi5tn.mjs +0 -100
  1145. package/dist/resolve-DAhHi5tn.mjs.map +0 -1
  1146. package/dist/route-wire-DK600v4u.mjs +0 -197
  1147. package/dist/route-wire-DK600v4u.mjs.map +0 -1
  1148. package/dist/routes-BeZyaCzv.mjs +0 -272
  1149. package/dist/routes-BeZyaCzv.mjs.map +0 -1
  1150. package/dist/runner-CskI4Hmq.mjs +0 -6372
  1151. package/dist/runner-CskI4Hmq.mjs.map +0 -1
  1152. package/dist/runner-J3Cj6DGk.d.mts +0 -68
  1153. package/dist/runner-J3Cj6DGk.d.mts.map +0 -1
  1154. package/dist/schema-CK0ihqMR.mjs +0 -815
  1155. package/dist/schema-CK0ihqMR.mjs.map +0 -1
  1156. package/dist/schema-VtaZSrC-.mjs +0 -13
  1157. package/dist/schema-VtaZSrC-.mjs.map +0 -1
  1158. package/dist/scopes-BRnGlL9t.mjs +0 -34
  1159. package/dist/scopes-BRnGlL9t.mjs.map +0 -1
  1160. package/dist/search-D6-XK1Sn.mjs +0 -448
  1161. package/dist/search-D6-XK1Sn.mjs.map +0 -1
  1162. package/dist/sections-CBDCf7qR.mjs +0 -346
  1163. package/dist/sections-CBDCf7qR.mjs.map +0 -1
  1164. package/dist/seo-BdeEPDNW.mjs +0 -133
  1165. package/dist/seo-BdeEPDNW.mjs.map +0 -1
  1166. package/dist/seo-C61bnPuV.mjs +0 -114
  1167. package/dist/seo-C61bnPuV.mjs.map +0 -1
  1168. package/dist/service-BuRKLMxa.mjs +0 -150
  1169. package/dist/service-BuRKLMxa.mjs.map +0 -1
  1170. package/dist/session-user-CqkPtrPL.mjs +0 -61
  1171. package/dist/session-user-CqkPtrPL.mjs.map +0 -1
  1172. package/dist/settings-0u0lTthS.mjs +0 -51
  1173. package/dist/settings-0u0lTthS.mjs.map +0 -1
  1174. package/dist/settings-WHr45II1.mjs +0 -61
  1175. package/dist/settings-WHr45II1.mjs.map +0 -1
  1176. package/dist/settings-m5tIYnF0.mjs +0 -443
  1177. package/dist/settings-m5tIYnF0.mjs.map +0 -1
  1178. package/dist/setup-complete-B2_dhZZz.mjs +0 -65
  1179. package/dist/setup-complete-B2_dhZZz.mjs.map +0 -1
  1180. package/dist/setup-nonce-CJV9ftSK.mjs +0 -25
  1181. package/dist/setup-nonce-CJV9ftSK.mjs.map +0 -1
  1182. package/dist/site-settings-KJOqJW6W.mjs +0 -50
  1183. package/dist/site-settings-KJOqJW6W.mjs.map +0 -1
  1184. package/dist/site-url-Ceq_AUK0.mjs +0 -16
  1185. package/dist/site-url-Ceq_AUK0.mjs.map +0 -1
  1186. package/dist/slugify-T5GHH42D.mjs +0 -17
  1187. package/dist/slugify-T5GHH42D.mjs.map +0 -1
  1188. package/dist/snapshot-Dzsn3NZa.mjs +0 -414
  1189. package/dist/snapshot-Dzsn3NZa.mjs.map +0 -1
  1190. package/dist/ssrf-DsmvZB80.mjs +0 -406
  1191. package/dist/ssrf-DsmvZB80.mjs.map +0 -1
  1192. package/dist/stage-Csnh_yEd.mjs +0 -662
  1193. package/dist/stage-Csnh_yEd.mjs.map +0 -1
  1194. package/dist/staged-Q7pnEVvI.mjs +0 -686
  1195. package/dist/staged-Q7pnEVvI.mjs.map +0 -1
  1196. package/dist/state-kGdOMQRY.mjs +0 -153
  1197. package/dist/state-kGdOMQRY.mjs.map +0 -1
  1198. package/dist/status-D39Fpy8R.mjs +0 -30
  1199. package/dist/status-D39Fpy8R.mjs.map +0 -1
  1200. package/dist/storage-query-C7iy6eUb.d.mts +0 -1615
  1201. package/dist/storage-query-C7iy6eUb.d.mts.map +0 -1
  1202. package/dist/tar-BWiraSUY.mjs +0 -449
  1203. package/dist/tar-BWiraSUY.mjs.map +0 -1
  1204. package/dist/target-DOFs5oUC.mjs +0 -27
  1205. package/dist/target-DOFs5oUC.mjs.map +0 -1
  1206. package/dist/taxonomies-BS40Wxvi.mjs +0 -939
  1207. package/dist/taxonomies-BS40Wxvi.mjs.map +0 -1
  1208. package/dist/taxonomies-DAZU9VDd.mjs +0 -697
  1209. package/dist/taxonomies-DAZU9VDd.mjs.map +0 -1
  1210. package/dist/taxonomy-XzLE95Vx.mjs +0 -525
  1211. package/dist/taxonomy-XzLE95Vx.mjs.map +0 -1
  1212. package/dist/tokens-DSQan4p7.mjs +0 -171
  1213. package/dist/tokens-DSQan4p7.mjs.map +0 -1
  1214. package/dist/transfer-BcCVxDgf.mjs +0 -166
  1215. package/dist/transfer-BcCVxDgf.mjs.map +0 -1
  1216. package/dist/transfer-OMrancOt.mjs +0 -8873
  1217. package/dist/transfer-OMrancOt.mjs.map +0 -1
  1218. package/dist/transfer-download-Dc-ltjZY.mjs +0 -33
  1219. package/dist/transfer-download-Dc-ltjZY.mjs.map +0 -1
  1220. package/dist/transformations-Ddx7UtrY.mjs +0 -196
  1221. package/dist/transformations-Ddx7UtrY.mjs.map +0 -1
  1222. package/dist/transport-flR-Zmds.d.mts +0 -42
  1223. package/dist/transport-flR-Zmds.d.mts.map +0 -1
  1224. package/dist/transport-umzEbgYO.mjs +0 -136
  1225. package/dist/transport-umzEbgYO.mjs.map +0 -1
  1226. package/dist/trusted-proxy-BqfQFs6a.mjs +0 -51
  1227. package/dist/trusted-proxy-BqfQFs6a.mjs.map +0 -1
  1228. package/dist/turnstile-Do60baId.mjs +0 -58
  1229. package/dist/turnstile-Do60baId.mjs.map +0 -1
  1230. package/dist/types-BT1p3uyb.d.mts +0 -1735
  1231. package/dist/types-BT1p3uyb.d.mts.map +0 -1
  1232. package/dist/types-BYaPWs_F.d.mts +0 -198
  1233. package/dist/types-BYaPWs_F.d.mts.map +0 -1
  1234. package/dist/types-CLTQ9b_r.d.mts +0 -374
  1235. package/dist/types-CLTQ9b_r.d.mts.map +0 -1
  1236. package/dist/types-CPkQw2T2.d.mts +0 -85
  1237. package/dist/types-CPkQw2T2.d.mts.map +0 -1
  1238. package/dist/types-CQLvuXoZ.d.mts +0 -198
  1239. package/dist/types-CQLvuXoZ.d.mts.map +0 -1
  1240. package/dist/types-CV5xszpF.d.mts +0 -363
  1241. package/dist/types-CV5xszpF.d.mts.map +0 -1
  1242. package/dist/types-CdEMurNh.mjs +0 -77
  1243. package/dist/types-CdEMurNh.mjs.map +0 -1
  1244. package/dist/types-CxwtnuSS.mjs +0 -37
  1245. package/dist/types-CxwtnuSS.mjs.map +0 -1
  1246. package/dist/types-DGw8KMX_.mjs +0 -16
  1247. package/dist/types-DGw8KMX_.mjs.map +0 -1
  1248. package/dist/types-DOfVMPoo.d.mts +0 -125
  1249. package/dist/types-DOfVMPoo.d.mts.map +0 -1
  1250. package/dist/types-LtS0SM4F.d.mts +0 -287
  1251. package/dist/types-LtS0SM4F.d.mts.map +0 -1
  1252. package/dist/types-ifgOkcBa.d.mts +0 -916
  1253. package/dist/types-ifgOkcBa.d.mts.map +0 -1
  1254. package/dist/update-check-DOc2aBIU.mjs +0 -161
  1255. package/dist/update-check-DOc2aBIU.mjs.map +0 -1
  1256. package/dist/upload-attempts-nzdc3cay.mjs +0 -32
  1257. package/dist/upload-attempts-nzdc3cay.mjs.map +0 -1
  1258. package/dist/url-pattern-hVbqpXs6.mjs +0 -41
  1259. package/dist/url-pattern-hVbqpXs6.mjs.map +0 -1
  1260. package/dist/user-Dnp53zTq.mjs +0 -171
  1261. package/dist/user-Dnp53zTq.mjs.map +0 -1
  1262. package/dist/utils-CoV-PYhg.mjs +0 -439
  1263. package/dist/utils-CoV-PYhg.mjs.map +0 -1
  1264. package/dist/validate-CfQ9_YlD.d.mts +0 -468
  1265. package/dist/validate-CfQ9_YlD.d.mts.map +0 -1
  1266. package/dist/validate-DBX3DKtL.mjs +0 -516
  1267. package/dist/validate-DBX3DKtL.mjs.map +0 -1
  1268. package/dist/validation-BJMiDhB1.mjs +0 -219
  1269. package/dist/validation-BJMiDhB1.mjs.map +0 -1
  1270. package/dist/version-BaT8yKIT.mjs +0 -7
  1271. package/dist/version-BaT8yKIT.mjs.map +0 -1
  1272. package/dist/version-BwEGkqkx.mjs +0 -9
  1273. package/dist/version-BwEGkqkx.mjs.map +0 -1
  1274. package/dist/virtual-modules-B6vJW15k.mjs +0 -516
  1275. package/dist/virtual-modules-B6vJW15k.mjs.map +0 -1
  1276. package/dist/widgets-BkxBAgZ_.mjs +0 -126
  1277. package/dist/widgets-BkxBAgZ_.mjs.map +0 -1
  1278. package/dist/wxr-taxonomies-D7gAJyOF.mjs +0 -453
  1279. package/dist/wxr-taxonomies-D7gAJyOF.mjs.map +0 -1
  1280. package/dist/wxr-taxonomies-DM5J9AsT.d.mts +0 -34
  1281. package/dist/wxr-taxonomies-DM5J9AsT.d.mts.map +0 -1
  1282. /package/dist/{api-tokens-BLz2MtQs.mjs → api-tokens-D2zgAIEt.mjs} +0 -0
  1283. /package/dist/{ssrf-tA45vIPX.mjs → ssrf-BvNItdxk.mjs} +0 -0
@@ -1,33 +0,0 @@
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-Dc-ltjZY.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transfer-download-Dc-ltjZY.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"}
@@ -1,196 +0,0 @@
1
- import { h as portableIdSchema, i as RECORD_KINDS } from "./kinds-BQl5gN6e.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-Ddx7UtrY.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformations-Ddx7UtrY.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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"}
@@ -1,42 +0,0 @@
1
- //#region src/client/transport.d.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
- /**
10
- * An interceptor can modify the request, call next(), inspect
11
- * the response, and optionally retry.
12
- */
13
- type Interceptor = (request: Request, next: (request: Request) => Promise<Response>) => Promise<Response>;
14
- interface TransportOptions {
15
- interceptors?: Interceptor[];
16
- }
17
- /**
18
- * Creates a fetch function that runs requests through an interceptor pipeline.
19
- */
20
- declare function createTransport(options?: TransportOptions): {
21
- fetch: (request: Request) => Promise<Response>;
22
- };
23
- /**
24
- * Adds X-EmDash-Request: 1 and Origin headers to mutation requests
25
- * (POST, PUT, DELETE). The custom header satisfies EmDash's CSRF check;
26
- * the Origin header satisfies Astro's built-in origin verification which
27
- * rejects server-side POST requests that lack a matching Origin.
28
- */
29
- declare function csrfInterceptor(): Interceptor;
30
- /**
31
- * Adds Authorization: Bearer header from a static token.
32
- */
33
- declare function tokenInterceptor(token: string): Interceptor;
34
- /**
35
- * Dev bypass interceptor. Calls the dev-bypass endpoint on first request
36
- * to establish a session, then forwards the session cookie on subsequent
37
- * requests.
38
- */
39
- declare function devBypassInterceptor(baseUrl: string): Interceptor;
40
- //#endregion
41
- export { tokenInterceptor as a, devBypassInterceptor as i, createTransport as n, csrfInterceptor as r, Interceptor as t };
42
- //# sourceMappingURL=transport-flR-Zmds.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport-flR-Zmds.d.mts","names":[],"sources":["../src/client/transport.ts"],"mappings":";;AAeA;;;;;;;;;;KAAY,WAAA,IACX,OAAA,EAAS,OAAA,EACT,IAAA,GAAO,OAAA,EAAS,OAAA,KAAY,OAAA,CAAQ,QAAA,MAChC,OAAA,CAAQ,QAAA;AAAA,UAEI,gBAAA;EAChB,YAAA,GAAe,WAAA;AAAA;;;;iBAUA,eAAA,CAAgB,OAAA,GAAS,gBAAA;EACxC,KAAA,GAAQ,OAAA,EAAS,OAAA,KAAY,OAAA,CAAQ,QAAA;AAAA;;;AAZtC;;;;iBAqCgB,eAAA,CAAA,GAAmB,WAAA;AA1BnC;;;AAAA,iBA8CgB,gBAAA,CAAiB,KAAA,WAAgB,WAAA;;;;;;iBAajC,oBAAA,CAAqB,OAAA,WAAkB,WAAA"}
@@ -1,136 +0,0 @@
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-umzEbgYO.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport-umzEbgYO.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":";;;;;;;;AASA,MAAM,4BAA4B;AAelC,SAAS,UAAU,SAAqC;AACvD,QAAO,WAAW,MAAM,QAAQ;;;;;AAMjC,SAAgB,gBAAgB,UAA4B,EAAE,EAE5D;CACD,MAAM,eAAe,QAAQ,gBAAgB,EAAE;CAG/C,IAAI,QAAiD;AACrD,MAAK,IAAI,IAAI,aAAa,SAAS,GAAG,KAAK,GAAG,KAAK;EAClD,MAAM,cAAc,aAAa;EACjC,MAAM,OAAO;AACb,WAAS,QAAQ,YAAY,KAAK,KAAK;;AAGxC,QAAO,EAAE,OAAO,OAAO;;;;;;;;AAaxB,SAAgB,kBAA+B;CAC9C,MAAM,mBAAmB,IAAI,IAAI;EAAC;EAAQ;EAAO;EAAU;EAAQ,CAAC;AAEpE,SAAQ,SAAS,SAAS;AACzB,MAAI,iBAAiB,IAAI,QAAQ,OAAO,EAAE;GACzC,MAAM,UAAU,IAAI,QAAQ,QAAQ,QAAQ;AAC5C,WAAQ,IAAI,oBAAoB,IAAI;AACpC,OAAI,CAAC,QAAQ,IAAI,SAAS,EAAE;IAC3B,MAAM,MAAM,IAAI,IAAI,QAAQ,IAAI;AAChC,YAAQ,IAAI,UAAU,IAAI,OAAO;;AAElC,UAAO,KAAK,IAAI,QAAQ,SAAS,EAAE,SAAS,CAAC,CAAC;;AAE/C,SAAO,KAAK,QAAQ;;;;;;AAOtB,SAAgB,iBAAiB,OAA4B;AAC5D,SAAQ,SAAS,SAAS;EACzB,MAAM,UAAU,IAAI,QAAQ,QAAQ,QAAQ;AAC5C,UAAQ,IAAI,iBAAiB,UAAU,QAAQ;AAC/C,SAAO,KAAK,IAAI,QAAQ,SAAS,EAAE,SAAS,CAAC,CAAC;;;;;;;;AAShD,SAAgB,qBAAqB,SAA8B;CAClE,IAAI,gBAA+B;CACnC,IAAI,eAAqC;CAEzC,eAAe,OAAsB;EACpC,MAAM,YAAY,IAAI,IAAI,gCAAgC,QAAQ;EAClE,MAAM,MAAM,MAAM,WAAW,MAAM,WAAW,EAAE,UAAU,UAAU,CAAC;EAGrE,MAAM,YAAY,IAAI,QAAQ,IAAI,aAAa;AAC/C,MAAI,WAAW;GAEd,MAAM,QAAQ,UAAU,MAAM,0BAA0B;AACxD,OAAI,MACH,iBAAgB,MAAM;;AAKxB,MAAI,IAAI,KACP,OAAM,IAAI,MAAM,CAAC,YAAY,GAAG;;AAIlC,QAAO,OAAO,SAAS,SAAS;AAE/B,MAAI,CAAC,eAAe;AACnB,OAAI,CAAC,aACJ,gBAAe,MAAM;AAEtB,SAAM;;AAGP,MAAI,eAAe;GAClB,MAAM,UAAU,IAAI,QAAQ,QAAQ,QAAQ;GAC5C,MAAM,WAAW,QAAQ,IAAI,SAAS;AACtC,WAAQ,IAAI,UAAU,WAAW,GAAG,SAAS,IAAI,kBAAkB,cAAc;AACjF,UAAO,KAAK,IAAI,QAAQ,SAAS,EAAE,SAAS,CAAC,CAAC;;AAG/C,SAAO,KAAK,QAAQ;;;;;;;AAQtB,SAAgB,mBAAmB,SAInB;CACf,IAAI,aAA4C;CAEhD,eAAe,UAAkC;EAChD,MAAM,MAAM,MAAM,WAAW,MAAM,QAAQ,eAAe;GACzD,QAAQ;GACR,SAAS,EAAE,gBAAgB,oBAAoB;GAC/C,MAAM,KAAK,UAAU;IACpB,YAAY;IACZ,eAAe,QAAQ;IACvB,CAAC;GACF,CAAC;AAEF,MAAI,CAAC,IAAI,GAAI,QAAO;EAQpB,MAAM,OAAQ,MAAM,IAAI,MAAM;EAI9B,MAAM,YACL,KAAK,QAAQ,OAAO,KAAK,SAAS,YAAY,kBAAkB,KAAK,OACjE,KAAK,OACL;EAEL,MAAM,YAAY,UAAU,aACzB,IAAI,KAAK,KAAK,KAAK,GAAG,UAAU,aAAa,IAAK,CAAC,aAAa,GAChE,IAAI,KAAK,KAAK,KAAK,GAAG,KAAS,CAAC,aAAa;AAEhD,MAAI,QAAQ,iBACX,SAAQ,iBACP,UAAU,cACV,UAAU,iBAAiB,QAAQ,cACnC,UACA;AAGF,SAAO,UAAU;;AAGlB,QAAO,OAAO,SAAS,SAAS;EAG/B,MAAM,gBAAgB,QAAQ,OAAO,QAAQ,OAAO,GAAG;EAEvD,MAAM,WAAW,MAAM,KAAK,QAAQ;AAEpC,MAAI,SAAS,WAAW,KAAK;AAE5B,OAAI,CAAC,WACJ,cAAa,SAAS,CAAC,cAAc;AACpC,iBAAa;KACZ;GAGH,MAAM,WAAW,MAAM;AACvB,OAAI,UAAU;IAEb,MAAM,UAAU,IAAI,QAAQ,cAAc,QAAQ;AAClD,YAAQ,IAAI,iBAAiB,UAAU,WAAW;AAClD,WAAO,KAAK,IAAI,QAAQ,eAAe,EAAE,SAAS,CAAC,CAAC;;;AAItD,SAAO"}
@@ -1,51 +0,0 @@
1
- //#region src/auth/trusted-proxy.ts
2
- /**
3
- * RFC 7230 token — valid characters for an HTTP header name. Invalid names
4
- * passed to `Headers.get()` throw a TypeError at runtime, which would
5
- * otherwise surface as a 500 from every auth route.
6
- */
7
- const HEADER_NAME_PATTERN = /^[!#$%&'*+\-.^_`|~0-9a-z]+$/;
8
- /**
9
- * Normalise a list of header names the way both the config path and any
10
- * caller passing a pre-resolved list should do: trim, lowercase, drop
11
- * empty, drop anything that isn't a valid RFC 7230 token. Invalid names
12
- * would crash `Headers.get()` at runtime.
13
- */
14
- function normalizeTrustedHeaders(names) {
15
- return names.map((h) => h.trim().toLowerCase()).filter((h) => h.length > 0 && HEADER_NAME_PATTERN.test(h));
16
- }
17
- function isValidHeaderName(name) {
18
- return HEADER_NAME_PATTERN.test(name);
19
- }
20
- /** Cache for the env-derived value. `null` means "not yet parsed". */
21
- let _envCache = null;
22
- function getEnvTrustedHeaders() {
23
- if (_envCache !== null) return _envCache;
24
- let raw;
25
- try {
26
- const importMetaEnv = import.meta.env;
27
- raw = (typeof process !== "undefined" ? process.env?.EMDASH_TRUSTED_PROXY_HEADERS : void 0) || importMetaEnv?.EMDASH_TRUSTED_PROXY_HEADERS;
28
- } catch {
29
- raw = void 0;
30
- }
31
- if (!raw) {
32
- _envCache = [];
33
- return _envCache;
34
- }
35
- _envCache = raw.split(",").map((s) => s.trim().toLowerCase()).filter((s) => s.length > 0 && isValidHeaderName(s));
36
- return _envCache;
37
- }
38
- /**
39
- * Return the lowercased list of headers to trust for client-IP resolution.
40
- *
41
- * When `config?.trustedProxyHeaders` is explicitly set (even to `[]`), it
42
- * wins. Otherwise fall through to the env var, then to `[]`.
43
- */
44
- function getTrustedProxyHeaders(config) {
45
- if (config && config.trustedProxyHeaders !== void 0) return config.trustedProxyHeaders.map((h) => h.trim().toLowerCase()).filter((h) => h.length > 0 && isValidHeaderName(h));
46
- return getEnvTrustedHeaders();
47
- }
48
-
49
- //#endregion
50
- export { normalizeTrustedHeaders as n, getTrustedProxyHeaders as t };
51
- //# sourceMappingURL=trusted-proxy-BqfQFs6a.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trusted-proxy-BqfQFs6a.mjs","names":[],"sources":["../src/auth/trusted-proxy.ts"],"sourcesContent":["/**\n * Resolve the list of client-IP headers the operator trusts.\n *\n * Resolution order:\n * 1. `config.trustedProxyHeaders` — explicit opt-in via astro.config.mjs.\n * An empty array is respected (means \"trust nothing, ignore env\").\n * 2. `EMDASH_TRUSTED_PROXY_HEADERS` env var — comma-separated header names.\n * 3. `[]` — default, no trusted headers.\n *\n * Operators must only set this when they control the reverse proxy.\n * Untrusted clients can set any header they like; trusting headers from\n * an open network defeats rate limiting.\n *\n * Header names are returned lowercased because HTTP header lookups are\n * case-insensitive.\n */\n\nimport type { EmDashConfig } from \"../astro/integration/runtime.js\";\n\n/**\n * RFC 7230 token — valid characters for an HTTP header name. Invalid names\n * passed to `Headers.get()` throw a TypeError at runtime, which would\n * otherwise surface as a 500 from every auth route.\n */\nconst HEADER_NAME_PATTERN = /^[!#$%&'*+\\-.^_`|~0-9a-z]+$/;\n\n/**\n * Normalise a list of header names the way both the config path and any\n * caller passing a pre-resolved list should do: trim, lowercase, drop\n * empty, drop anything that isn't a valid RFC 7230 token. Invalid names\n * would crash `Headers.get()` at runtime.\n */\nexport function normalizeTrustedHeaders(names: readonly string[]): string[] {\n\treturn names\n\t\t.map((h) => h.trim().toLowerCase())\n\t\t.filter((h) => h.length > 0 && HEADER_NAME_PATTERN.test(h));\n}\n\nfunction isValidHeaderName(name: string): boolean {\n\treturn HEADER_NAME_PATTERN.test(name);\n}\n\n/** Cache for the env-derived value. `null` means \"not yet parsed\". */\nlet _envCache: string[] | null = null;\n\n/** Test-only: clear the env cache so a fresh value is read on next call. */\nexport function _resetTrustedProxyHeadersCache(): void {\n\t_envCache = null;\n}\n\nfunction getEnvTrustedHeaders(): string[] {\n\tif (_envCache !== null) return _envCache;\n\tlet raw: string | undefined;\n\ttry {\n\t\t// Prefer process.env so SSR/container deployments can override this\n\t\t// value at runtime (Vite/Astro inline import.meta.env at build time,\n\t\t// which locks the value into the bundle). Fall back to import.meta.env\n\t\t// for bundler-managed environments where process.env isn't populated.\n\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- import.meta.env shape varies by bundler\n\t\tconst importMetaEnv = (import.meta as unknown as { env?: Record<string, string | undefined> })\n\t\t\t.env;\n\t\traw =\n\t\t\t(typeof process !== \"undefined\" ? process.env?.EMDASH_TRUSTED_PROXY_HEADERS : undefined) ||\n\t\t\timportMetaEnv?.EMDASH_TRUSTED_PROXY_HEADERS;\n\t} catch {\n\t\traw = undefined;\n\t}\n\tif (!raw) {\n\t\t_envCache = [];\n\t\treturn _envCache;\n\t}\n\t_envCache = raw\n\t\t.split(\",\")\n\t\t.map((s) => s.trim().toLowerCase())\n\t\t.filter((s) => s.length > 0 && isValidHeaderName(s));\n\treturn _envCache;\n}\n\n/**\n * Return the lowercased list of headers to trust for client-IP resolution.\n *\n * When `config?.trustedProxyHeaders` is explicitly set (even to `[]`), it\n * wins. Otherwise fall through to the env var, then to `[]`.\n */\nexport function getTrustedProxyHeaders(config: EmDashConfig | null | undefined): string[] {\n\tif (config && config.trustedProxyHeaders !== undefined) {\n\t\treturn config.trustedProxyHeaders\n\t\t\t.map((h) => h.trim().toLowerCase())\n\t\t\t.filter((h) => h.length > 0 && isValidHeaderName(h));\n\t}\n\treturn getEnvTrustedHeaders();\n}\n"],"mappings":";;;;;;AAwBA,MAAM,sBAAsB;;;;;;;AAQ5B,SAAgB,wBAAwB,OAAoC;AAC3E,QAAO,MACL,KAAK,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAClC,QAAQ,MAAM,EAAE,SAAS,KAAK,oBAAoB,KAAK,EAAE,CAAC;;AAG7D,SAAS,kBAAkB,MAAuB;AACjD,QAAO,oBAAoB,KAAK,KAAK;;;AAItC,IAAI,YAA6B;AAOjC,SAAS,uBAAiC;AACzC,KAAI,cAAc,KAAM,QAAO;CAC/B,IAAI;AACJ,KAAI;EAMH,MAAM,gBAAiB,OAAO,KAC5B;AACF,SACE,OAAO,YAAY,cAAc,QAAQ,KAAK,+BAA+B,WAC9E,eAAe;SACT;AACP,QAAM;;AAEP,KAAI,CAAC,KAAK;AACT,cAAY,EAAE;AACd,SAAO;;AAER,aAAY,IACV,MAAM,IAAI,CACV,KAAK,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAClC,QAAQ,MAAM,EAAE,SAAS,KAAK,kBAAkB,EAAE,CAAC;AACrD,QAAO;;;;;;;;AASR,SAAgB,uBAAuB,QAAmD;AACzF,KAAI,UAAU,OAAO,wBAAwB,OAC5C,QAAO,OAAO,oBACZ,KAAK,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAClC,QAAQ,MAAM,EAAE,SAAS,KAAK,kBAAkB,EAAE,CAAC;AAEtD,QAAO,sBAAsB"}
@@ -1,58 +0,0 @@
1
- //#region src/comments/turnstile.ts
2
- /**
3
- * Server-side Turnstile verification for public comment submissions.
4
- *
5
- * The comment form widget (`CommentForm.astro`) submits a `turnstileToken`;
6
- * this verifies it against Cloudflare's siteverify API. Enforcement is
7
- * opt-in: it only runs when the operator configures the Turnstile secret
8
- * key (`EMDASH_TURNSTILE_SECRET_KEY` or `TURNSTILE_SECRET_KEY`), so
9
- * existing non-Turnstile sites are unaffected.
10
- *
11
- * Mirrors `verifyTurnstile` in `@emdash-cms/plugin-forms` (not imported —
12
- * core doesn't depend on plugin packages).
13
- */
14
- const SITEVERIFY_URL = "https://challenges.cloudflare.com/turnstile/v0/siteverify";
15
- /**
16
- * Resolve the configured Turnstile secret key, or `""` when Turnstile
17
- * enforcement is not configured.
18
- *
19
- * Reads `process.env` only: Vite replaces `import.meta.env` at build time,
20
- * which would bake a build-machine secret into the bundle and hide a secret
21
- * set on the deployment platform.
22
- */
23
- function getTurnstileSecretKey() {
24
- const env = typeof process !== "undefined" && process.env ? process.env : {};
25
- return env.EMDASH_TURNSTILE_SECRET_KEY || env.TURNSTILE_SECRET_KEY || "";
26
- }
27
- /**
28
- * Verify a Turnstile response token via siteverify.
29
- *
30
- * Fails closed: a missing token, a failed verification, and a siteverify
31
- * transport error all return `false` — when the operator has configured a
32
- * secret, an unverifiable submission must not be persisted.
33
- */
34
- async function verifyTurnstileToken(token, secretKey, remoteIp) {
35
- if (!token) return false;
36
- const body = {
37
- secret: secretKey,
38
- response: token
39
- };
40
- if (remoteIp) body.remoteip = remoteIp;
41
- try {
42
- const data = await (await fetch(SITEVERIFY_URL, {
43
- method: "POST",
44
- headers: { "Content-Type": "application/json" },
45
- body: JSON.stringify(body),
46
- signal: AbortSignal.timeout(1e4)
47
- })).json();
48
- if (!data.success) console.warn("[comments] Turnstile verification failed:", data["error-codes"] ?? []);
49
- return data.success === true;
50
- } catch (error) {
51
- console.error("[comments] Turnstile siteverify request failed:", error instanceof Error ? error.message : error);
52
- return false;
53
- }
54
- }
55
-
56
- //#endregion
57
- export { getTurnstileSecretKey, verifyTurnstileToken };
58
- //# sourceMappingURL=turnstile-Do60baId.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"turnstile-Do60baId.mjs","names":[],"sources":["../src/comments/turnstile.ts"],"sourcesContent":["/**\n * Server-side Turnstile verification for public comment submissions.\n *\n * The comment form widget (`CommentForm.astro`) submits a `turnstileToken`;\n * this verifies it against Cloudflare's siteverify API. Enforcement is\n * opt-in: it only runs when the operator configures the Turnstile secret\n * key (`EMDASH_TURNSTILE_SECRET_KEY` or `TURNSTILE_SECRET_KEY`), so\n * existing non-Turnstile sites are unaffected.\n *\n * Mirrors `verifyTurnstile` in `@emdash-cms/plugin-forms` (not imported —\n * core doesn't depend on plugin packages).\n */\n\nconst SITEVERIFY_URL = \"https://challenges.cloudflare.com/turnstile/v0/siteverify\";\n\n/**\n * Resolve the configured Turnstile secret key, or `\"\"` when Turnstile\n * enforcement is not configured.\n *\n * Reads `process.env` only: Vite replaces `import.meta.env` at build time,\n * which would bake a build-machine secret into the bundle and hide a secret\n * set on the deployment platform.\n */\nexport function getTurnstileSecretKey(): string {\n\tconst env = typeof process !== \"undefined\" && process.env ? process.env : {};\n\treturn env.EMDASH_TURNSTILE_SECRET_KEY || env.TURNSTILE_SECRET_KEY || \"\";\n}\n\n/**\n * Verify a Turnstile response token via siteverify.\n *\n * Fails closed: a missing token, a failed verification, and a siteverify\n * transport error all return `false` — when the operator has configured a\n * secret, an unverifiable submission must not be persisted.\n */\nexport async function verifyTurnstileToken(\n\ttoken: string | undefined,\n\tsecretKey: string,\n\tremoteIp?: string | null,\n): Promise<boolean> {\n\tif (!token) return false;\n\n\tconst body: Record<string, string> = { secret: secretKey, response: token };\n\tif (remoteIp) {\n\t\tbody.remoteip = remoteIp;\n\t}\n\n\ttry {\n\t\tconst res = await fetch(SITEVERIFY_URL, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\tbody: JSON.stringify(body),\n\t\t\t// Fail closed *quickly* if siteverify is slow — without a timeout\n\t\t\t// the comment POST would hang until the runtime kills it\n\t\t\tsignal: AbortSignal.timeout(10_000),\n\t\t});\n\t\tconst data: { success?: boolean; \"error-codes\"?: string[] } = await res.json();\n\t\tif (!data.success) {\n\t\t\tconsole.warn(\"[comments] Turnstile verification failed:\", data[\"error-codes\"] ?? []);\n\t\t}\n\t\treturn data.success === true;\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t\"[comments] Turnstile siteverify request failed:\",\n\t\t\terror instanceof Error ? error.message : error,\n\t\t);\n\t\treturn false;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAaA,MAAM,iBAAiB;;;;;;;;;AAUvB,SAAgB,wBAAgC;CAC/C,MAAM,MAAM,OAAO,YAAY,eAAe,QAAQ,MAAM,QAAQ,MAAM,EAAE;AAC5E,QAAO,IAAI,+BAA+B,IAAI,wBAAwB;;;;;;;;;AAUvE,eAAsB,qBACrB,OACA,WACA,UACmB;AACnB,KAAI,CAAC,MAAO,QAAO;CAEnB,MAAM,OAA+B;EAAE,QAAQ;EAAW,UAAU;EAAO;AAC3E,KAAI,SACH,MAAK,WAAW;AAGjB,KAAI;EASH,MAAM,OAAwD,OARlD,MAAM,MAAM,gBAAgB;GACvC,QAAQ;GACR,SAAS,EAAE,gBAAgB,oBAAoB;GAC/C,MAAM,KAAK,UAAU,KAAK;GAG1B,QAAQ,YAAY,QAAQ,IAAO;GACnC,CAAC,EACsE,MAAM;AAC9E,MAAI,CAAC,KAAK,QACT,SAAQ,KAAK,6CAA6C,KAAK,kBAAkB,EAAE,CAAC;AAErF,SAAO,KAAK,YAAY;UAChB,OAAO;AACf,UAAQ,MACP,mDACA,iBAAiB,QAAQ,MAAM,UAAU,MACzC;AACD,SAAO"}