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
@@ -8,53 +8,53 @@ import "../../../object-cache-Bo6DGaC9.mjs";
8
8
  import "../../../request-cache-C4CIo5ad.mjs";
9
9
  import "../../../url-Dn3IStq8.mjs";
10
10
  import { i as InvalidCursorError, s as decodeCursor } from "../../../types-C-Xp0CcN.mjs";
11
- import "../../../media-BzUDu7nl.mjs";
11
+ import "../../../media-IT8hQleU.mjs";
12
12
  import "../../../audit-CCH3MA4Y.mjs";
13
13
  import "../../../byline-registry-dvt4N3xV.mjs";
14
- import "../../../field-defs-cache-Bw8w499w.mjs";
15
- import "../../../byline-BhVslYLz.mjs";
14
+ import "../../../field-defs-cache-zoow36nz.mjs";
15
+ import "../../../byline-BmVKOQ8l.mjs";
16
16
  import "../../../entry-locks-DJAqVweV.mjs";
17
- import "../../../fts-manager-DacCYIe4.mjs";
17
+ import "../../../fts-manager-WJCN8uU6.mjs";
18
18
  import { n as siteSettingsTag, r as taxonomyTag, t as menuTag } from "../../../chrome-tags-BIKBMZYO.mjs";
19
- import "../../../loader-1DMiOq5s.mjs";
19
+ import "../../../loader-CetY659y.mjs";
20
20
  import "../../../collection-slugs-cache-B2Gs9Jwx.mjs";
21
21
  import "../../../capture-triggers-C9JKoIdT.mjs";
22
22
  import "../../../activation-xomsCMJg.mjs";
23
- import "../../../media-usage-work-C734aq6s.mjs";
24
- import "../../../registry-DaXmUsD4.mjs";
23
+ import "../../../media-usage-work-cgDYGvrt.mjs";
24
+ import "../../../registry-DeZ27gVi.mjs";
25
25
  import "../../../hash-C4DFoJ7Z.mjs";
26
26
  import "../../../zod-generator-BQilAboC.mjs";
27
- import { r as isTransferError, t as TransferError } from "../../../errors-CuHQRiBW.mjs";
28
- import "../../../canonical-Y1dpjCnp.mjs";
29
- import { f as toSha256Digest } from "../../../digest-xIpR3o64.mjs";
30
- import "../../../errors-DTE6C3K_.mjs";
31
- import "../../../settings-WHr45II1.mjs";
32
- import "../../../site-settings-KJOqJW6W.mjs";
33
- import "../../../settings-m5tIYnF0.mjs";
34
- import { t as apiError } from "../../../error-B0rgPgsQ.mjs";
35
- import "../../../redirects-D4EWeXAo.mjs";
36
- import { Bt as contentSeoInput, Ct as updateCollectionBody, I as createTaxonomyDefBody, St as updateBlockTypeBody, Z as updateTaxonomyDefBody, dt as createBlockTypeBody, ft as createCollectionBody, hn as contentBylineInputSchema, pn as bylineUpdateBody, sn as bylineCreateBody, wt as updateFieldBody } from "../../../entry-lock-sxz2PGAT.mjs";
37
- import { t as CONTENT_TYPE_RE } from "../../../media-aahnKHze.mjs";
38
- import "../../../comments-BRtp992B.mjs";
39
- import "../../../byline-fields-DHJs0Mja.mjs";
40
- import "../../../menus-BQKqf0Up.mjs";
41
- import "../../../status-D39Fpy8R.mjs";
27
+ import { r as isTransferError, t as TransferError } from "../../../errors-CjtE5aWF.mjs";
28
+ import "../../../canonical-BUcKRYpG.mjs";
29
+ import { f as toSha256Digest } from "../../../digest-xJmyPv2r.mjs";
30
+ import "../../../errors-hskQ0C8G.mjs";
31
+ import "../../../settings-GaZ5sVgg.mjs";
32
+ import "../../../site-settings-CDdT4mVm.mjs";
33
+ import "../../../settings-B1jOxAIl.mjs";
34
+ import { t as apiError } from "../../../error-DxgQdaZ_.mjs";
35
+ import "../../../redirects-DFT7Wr-e.mjs";
36
+ import { Bt as contentSeoInput, Ct as updateCollectionBody, I as createTaxonomyDefBody, St as updateBlockTypeBody, Z as updateTaxonomyDefBody, dt as createBlockTypeBody, ft as createCollectionBody, hn as contentBylineInputSchema, pn as bylineUpdateBody, sn as bylineCreateBody, wt as updateFieldBody } from "../../../entry-lock-Cjz0h45X.mjs";
37
+ import { t as CONTENT_TYPE_RE } from "../../../media-CRKsKlfK.mjs";
38
+ import "../../../comments-BzmIKVb2.mjs";
39
+ import "../../../byline-fields-Bze3ZdAw.mjs";
40
+ import "../../../menus-D1HC8npj.mjs";
41
+ import "../../../status-Dl85BK39.mjs";
42
42
  import "../../../api/schemas/index.mjs";
43
- import { a as readSiteWriteFence, o as recordSiteWrite } from "../../../fence-CGw57S4v.mjs";
44
- import { a as hasScope$1 } from "../../../api-tokens-BLz2MtQs.mjs";
45
- import { n as convertDataForWrite, t as convertDataForRead } from "../../../portable-text-BnRuiR1-.mjs";
46
- import "../../../tar-BWiraSUY.mjs";
47
- import { i as RECORD_KINDS } from "../../../kinds-BQl5gN6e.mjs";
48
- import "../../../paths-kr8hAMMI.mjs";
49
- import "../../../transformations-Ddx7UtrY.mjs";
50
- import "../../../version-BwEGkqkx.mjs";
51
- import "../../../receipt-Dpp1uaX9.mjs";
52
- import { t as claimEntryLockForWrite } from "../../../entry-lock-De1L8qUQ.mjs";
53
- import { S as TRANSFER_SCOPES, n as TransferApprovalRepository } from "../../../approvals-DycwI6lZ.mjs";
54
- import { a as siteImportDecisionsInputSchema, t as isPlanExecutable } from "../../../plan-CuQOeU9g.mjs";
55
- import { i as TransferOperationRepository } from "../../../stage-Csnh_yEd.mjs";
56
- import { C as requestTransferApproval, E as analysisTargetContext, S as handleTransferCapabilities, T as loadImportPlan, _ as handleImportGet, c as handleExportGet, d as handleImportAdvance, f as handleImportAnalyze, h as handleImportExecute, i as handleExportAdvance, o as handleExportCreate, t as exportParamsDigest, w as openExportPackage, x as handleImportReceipt } from "../../../transfer-OMrancOt.mjs";
57
- import "../../../keys-DxqxcAD4.mjs";
43
+ import { a as readSiteWriteFence, o as recordSiteWrite } from "../../../fence-vc3aHgRA.mjs";
44
+ import { a as hasScope$1 } from "../../../api-tokens-D2zgAIEt.mjs";
45
+ import { n as convertDataForWrite, t as convertDataForRead } from "../../../portable-text-Dc2YAusw.mjs";
46
+ import "../../../tar-K40edFMt.mjs";
47
+ import { i as RECORD_KINDS } from "../../../kinds-DT1W4T4Y.mjs";
48
+ import "../../../paths-BmcAdBo9.mjs";
49
+ import "../../../transformations-De44wqV_.mjs";
50
+ import "../../../version-jhs2BRtl.mjs";
51
+ import "../../../receipt-BmQGzquP.mjs";
52
+ import { t as claimEntryLockForWrite } from "../../../entry-lock-B4n0HdQ_.mjs";
53
+ import { S as TRANSFER_SCOPES, n as TransferApprovalRepository } from "../../../approvals-BXgtXA2s.mjs";
54
+ import { a as siteImportDecisionsInputSchema, t as isPlanExecutable } from "../../../plan-CDY4K8CH.mjs";
55
+ import { i as TransferOperationRepository } from "../../../stage-DhzZuYaT.mjs";
56
+ import { C as requestTransferApproval, E as analysisTargetContext, S as handleTransferCapabilities, T as loadImportPlan, _ as handleImportGet, c as handleExportGet, d as handleImportAdvance, f as handleImportAnalyze, h as handleImportExecute, i as handleExportAdvance, o as handleExportCreate, t as exportParamsDigest, w as openExportPackage, x as handleImportReceipt } from "../../../transfer-CYEw8Tu4.mjs";
57
+ import "../../../keys-CGvAndSp.mjs";
58
58
  import { z } from "zod";
59
59
  import { Permissions, Role, canActOnOwn, hasPermission } from "@emdash-cms/auth";
60
60
  import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
@@ -677,8 +677,8 @@ async function unwrapAndInvalidate(extra, result, tags, changedEarlier = false)
677
677
  }
678
678
  async function getCollectionFields(ec, collection) {
679
679
  try {
680
- const { SchemaRegistry } = await import("../../../schema-VtaZSrC-.mjs").then((n) => n.t);
681
- const { expandCollectionBlockFields } = await import("../../../block-values-H4E0XwE8.mjs").then((n) => n.t);
680
+ const { SchemaRegistry } = await import("../../../schema-I74JwYte.mjs").then((n) => n.t);
681
+ const { expandCollectionBlockFields } = await import("../../../block-values-C4N_F2-G.mjs").then((n) => n.t);
682
682
  const col = await new SchemaRegistry(ec.db).getCollectionWithFields(collection);
683
683
  return col ? (await expandCollectionBlockFields(ec.db, col)).fields : null;
684
684
  } catch {
@@ -707,7 +707,7 @@ async function applyReadMarkdown(ec, collection, items) {
707
707
  for (const item of items) if (item.data && typeof item.data === "object") item.data = convertDataForRead(item.data, fields, false);
708
708
  }
709
709
  async function invalidateBylines() {
710
- const { invalidateBylineCache } = await import("../../../bylines-C71YACkL.mjs").then((n) => n.t);
710
+ const { invalidateBylineCache } = await import("../../../bylines-CHhR28r9.mjs").then((n) => n.t);
711
711
  invalidateBylineCache();
712
712
  }
713
713
  /**
@@ -1429,7 +1429,7 @@ function createMcpServer(pluginTools = [], request) {
1429
1429
  requireScope(extra, "content:read");
1430
1430
  const ec = getEmDash(extra);
1431
1431
  try {
1432
- const { BylineRepository } = await import("../../../byline-BhVslYLz.mjs").then((n) => n.n);
1432
+ const { BylineRepository } = await import("../../../byline-BmVKOQ8l.mjs").then((n) => n.n);
1433
1433
  return jsonResult(await new BylineRepository(ec.db).findMany({
1434
1434
  search: args.search,
1435
1435
  isGuest: args.isGuest,
@@ -1451,7 +1451,7 @@ function createMcpServer(pluginTools = [], request) {
1451
1451
  requireScope(extra, "content:read");
1452
1452
  const ec = getEmDash(extra);
1453
1453
  try {
1454
- const { BylineRepository } = await import("../../../byline-BhVslYLz.mjs").then((n) => n.n);
1454
+ const { BylineRepository } = await import("../../../byline-BmVKOQ8l.mjs").then((n) => n.n);
1455
1455
  const byline = await new BylineRepository(ec.db).findById(args.id);
1456
1456
  if (!byline) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
1457
1457
  return jsonResult(byline);
@@ -1469,7 +1469,7 @@ function createMcpServer(pluginTools = [], request) {
1469
1469
  requireRole(extra, Role.EDITOR);
1470
1470
  const ec = getEmDash(extra);
1471
1471
  try {
1472
- const { handleBylineCreate } = await import("../../../bylines-B_nN9liM.mjs").then((n) => n.t);
1472
+ const { handleBylineCreate } = await import("../../../bylines-DZS4OflA.mjs").then((n) => n.t);
1473
1473
  const result = await handleBylineCreate(ec.db, args);
1474
1474
  if (result.success) {
1475
1475
  await invalidateBylines();
@@ -1493,7 +1493,7 @@ function createMcpServer(pluginTools = [], request) {
1493
1493
  requireRole(extra, Role.EDITOR);
1494
1494
  const ec = getEmDash(extra);
1495
1495
  try {
1496
- const { handleBylineUpdate } = await import("../../../bylines-B_nN9liM.mjs").then((n) => n.t);
1496
+ const { handleBylineUpdate } = await import("../../../bylines-DZS4OflA.mjs").then((n) => n.t);
1497
1497
  const { id, ...input } = args;
1498
1498
  const result = await handleBylineUpdate(ec.db, id, input);
1499
1499
  if (result.success) {
@@ -1516,7 +1516,7 @@ function createMcpServer(pluginTools = [], request) {
1516
1516
  requireRole(extra, Role.EDITOR);
1517
1517
  const ec = getEmDash(extra);
1518
1518
  try {
1519
- const { BylineRepository } = await import("../../../byline-BhVslYLz.mjs").then((n) => n.n);
1519
+ const { BylineRepository } = await import("../../../byline-BmVKOQ8l.mjs").then((n) => n.n);
1520
1520
  const repo = new BylineRepository(ec.db);
1521
1521
  const existing = ec.hooks.hasHooks("byline:afterDelete") ? await repo.findById(args.id) : null;
1522
1522
  if (!await repo.delete(args.id)) return respondError("NOT_FOUND", `Byline '${args.id}' not found`);
@@ -1536,7 +1536,7 @@ function createMcpServer(pluginTools = [], request) {
1536
1536
  requireScope(extra, "content:read");
1537
1537
  const ec = getEmDash(extra);
1538
1538
  try {
1539
- const { handleBylineTranslations } = await import("../../../bylines-B_nN9liM.mjs").then((n) => n.t);
1539
+ const { handleBylineTranslations } = await import("../../../bylines-DZS4OflA.mjs").then((n) => n.t);
1540
1540
  return unwrap(await handleBylineTranslations(ec.db, args.id));
1541
1541
  } catch (error) {
1542
1542
  return respondHandlerError(error, "BYLINE_TRANSLATIONS_ERROR");
@@ -1552,7 +1552,7 @@ function createMcpServer(pluginTools = [], request) {
1552
1552
  requireRole(extra, Role.EDITOR);
1553
1553
  const ec = getEmDash(extra);
1554
1554
  try {
1555
- const { SchemaRegistry } = await import("../../../schema-VtaZSrC-.mjs").then((n) => n.t);
1555
+ const { SchemaRegistry } = await import("../../../schema-I74JwYte.mjs").then((n) => n.t);
1556
1556
  return jsonResult({ items: await new SchemaRegistry(ec.db).listCollections() });
1557
1557
  } catch (error) {
1558
1558
  return respondHandlerError(error, "SCHEMA_LIST_ERROR");
@@ -1568,7 +1568,7 @@ function createMcpServer(pluginTools = [], request) {
1568
1568
  requireRole(extra, Role.EDITOR);
1569
1569
  const ec = getEmDash(extra);
1570
1570
  try {
1571
- const { SchemaRegistry, expandCollectionBlockFields } = await import("../../../schema-VtaZSrC-.mjs").then((n) => n.t);
1571
+ const { SchemaRegistry, expandCollectionBlockFields } = await import("../../../schema-I74JwYte.mjs").then((n) => n.t);
1572
1572
  const collection = await new SchemaRegistry(ec.db).getCollectionWithFields(args.slug);
1573
1573
  if (!collection) return respondError("NOT_FOUND", `Collection '${args.slug}' not found`);
1574
1574
  return jsonResult(await expandCollectionBlockFields(ec.db, collection));
@@ -1585,7 +1585,7 @@ function createMcpServer(pluginTools = [], request) {
1585
1585
  requireScope(extra, "schema:read");
1586
1586
  requireRole(extra, Role.EDITOR);
1587
1587
  const ec = getEmDash(extra);
1588
- const { handleBlockTypeList } = await import("../../../block-types-C0YFSfR7.mjs").then((n) => n.t);
1588
+ const { handleBlockTypeList } = await import("../../../block-types-DHnkzE6u.mjs").then((n) => n.t);
1589
1589
  return unwrap(await handleBlockTypeList(ec.db));
1590
1590
  });
1591
1591
  server.registerTool("schema_get_block_type", {
@@ -1597,7 +1597,7 @@ function createMcpServer(pluginTools = [], request) {
1597
1597
  requireScope(extra, "schema:read");
1598
1598
  requireRole(extra, Role.EDITOR);
1599
1599
  const ec = getEmDash(extra);
1600
- const { handleBlockTypeGet } = await import("../../../block-types-C0YFSfR7.mjs").then((n) => n.t);
1600
+ const { handleBlockTypeGet } = await import("../../../block-types-DHnkzE6u.mjs").then((n) => n.t);
1601
1601
  return unwrap(await handleBlockTypeGet(ec.db, args.slug));
1602
1602
  });
1603
1603
  server.registerTool("schema_create_block_type", {
@@ -1608,7 +1608,7 @@ function createMcpServer(pluginTools = [], request) {
1608
1608
  requireScope(extra, "schema:write");
1609
1609
  requireRole(extra, Role.ADMIN);
1610
1610
  const ec = getEmDash(extra);
1611
- const { handleBlockTypeCreate } = await import("../../../block-types-C0YFSfR7.mjs").then((n) => n.t);
1611
+ const { handleBlockTypeCreate } = await import("../../../block-types-DHnkzE6u.mjs").then((n) => n.t);
1612
1612
  return unwrap(await handleBlockTypeCreate(ec.db, args));
1613
1613
  });
1614
1614
  server.registerTool("schema_update_block_type", {
@@ -1623,7 +1623,7 @@ function createMcpServer(pluginTools = [], request) {
1623
1623
  requireRole(extra, Role.ADMIN);
1624
1624
  const ec = getEmDash(extra);
1625
1625
  const { slug, ...input } = args;
1626
- const { handleBlockTypeUpdate } = await import("../../../block-types-C0YFSfR7.mjs").then((n) => n.t);
1626
+ const { handleBlockTypeUpdate } = await import("../../../block-types-DHnkzE6u.mjs").then((n) => n.t);
1627
1627
  return unwrap(await handleBlockTypeUpdate(ec.db, slug, input));
1628
1628
  });
1629
1629
  server.registerTool("schema_activate_block_type_version", {
@@ -1638,7 +1638,7 @@ function createMcpServer(pluginTools = [], request) {
1638
1638
  requireScope(extra, "schema:write");
1639
1639
  requireRole(extra, Role.ADMIN);
1640
1640
  const ec = getEmDash(extra);
1641
- const { handleBlockTypeVersionActivate } = await import("../../../block-types-C0YFSfR7.mjs").then((n) => n.t);
1641
+ const { handleBlockTypeVersionActivate } = await import("../../../block-types-DHnkzE6u.mjs").then((n) => n.t);
1642
1642
  return unwrap(await handleBlockTypeVersionActivate(ec.db, args.slug, args.version, args.expectedFingerprint));
1643
1643
  });
1644
1644
  server.registerTool("schema_create_collection", {
@@ -1660,7 +1660,7 @@ function createMcpServer(pluginTools = [], request) {
1660
1660
  requireRole(extra, Role.ADMIN);
1661
1661
  const ec = getEmDash(extra);
1662
1662
  try {
1663
- const { SchemaRegistry } = await import("../../../schema-VtaZSrC-.mjs").then((n) => n.t);
1663
+ const { SchemaRegistry } = await import("../../../schema-I74JwYte.mjs").then((n) => n.t);
1664
1664
  const collection = await new SchemaRegistry(ec.db).createCollection({
1665
1665
  slug: args.slug,
1666
1666
  label: args.label,
@@ -1691,7 +1691,7 @@ function createMcpServer(pluginTools = [], request) {
1691
1691
  requireRole(extra, Role.ADMIN);
1692
1692
  const ec = getEmDash(extra);
1693
1693
  try {
1694
- const { SchemaRegistry } = await import("../../../schema-VtaZSrC-.mjs").then((n) => n.t);
1694
+ const { SchemaRegistry } = await import("../../../schema-I74JwYte.mjs").then((n) => n.t);
1695
1695
  await new SchemaRegistry(ec.db).deleteCollection(args.slug, { force: args.force });
1696
1696
  ec.invalidateUrlPatternCache();
1697
1697
  return jsonResult({ deleted: args.slug });
@@ -1710,7 +1710,7 @@ function createMcpServer(pluginTools = [], request) {
1710
1710
  const ec = getEmDash(extra);
1711
1711
  const { slug, ...input } = args;
1712
1712
  try {
1713
- const { handleSchemaCollectionUpdate } = await import("../../../schema-CK0ihqMR.mjs").then((n) => n._);
1713
+ const { handleSchemaCollectionUpdate } = await import("../../../schema-BXIW-JHi.mjs").then((n) => n._);
1714
1714
  const result = await handleSchemaCollectionUpdate(ec.db, slug, input);
1715
1715
  if (result.success) ec.invalidateUrlPatternCache();
1716
1716
  return unwrap(result);
@@ -1769,7 +1769,7 @@ function createMcpServer(pluginTools = [], request) {
1769
1769
  requireRole(extra, Role.ADMIN);
1770
1770
  const ec = getEmDash(extra);
1771
1771
  try {
1772
- const { SchemaRegistry } = await import("../../../schema-VtaZSrC-.mjs").then((n) => n.t);
1772
+ const { SchemaRegistry } = await import("../../../schema-I74JwYte.mjs").then((n) => n.t);
1773
1773
  return jsonResult(await new SchemaRegistry(ec.db).createField(args.collection, {
1774
1774
  slug: args.slug,
1775
1775
  label: args.label,
@@ -1800,7 +1800,7 @@ function createMcpServer(pluginTools = [], request) {
1800
1800
  requireRole(extra, Role.ADMIN);
1801
1801
  const ec = getEmDash(extra);
1802
1802
  try {
1803
- const { SchemaRegistry } = await import("../../../schema-VtaZSrC-.mjs").then((n) => n.t);
1803
+ const { SchemaRegistry } = await import("../../../schema-I74JwYte.mjs").then((n) => n.t);
1804
1804
  await new SchemaRegistry(ec.db).deleteField(args.collection, args.fieldSlug);
1805
1805
  return jsonResult({
1806
1806
  deleted: args.fieldSlug,
@@ -1821,7 +1821,7 @@ function createMcpServer(pluginTools = [], request) {
1821
1821
  const ec = getEmDash(extra);
1822
1822
  const { collection, fieldSlug, ...input } = args;
1823
1823
  try {
1824
- const { handleSchemaFieldUpdate } = await import("../../../schema-CK0ihqMR.mjs").then((n) => n._);
1824
+ const { handleSchemaFieldUpdate } = await import("../../../schema-BXIW-JHi.mjs").then((n) => n._);
1825
1825
  return unwrap(await handleSchemaFieldUpdate(ec.db, collection, fieldSlug, input));
1826
1826
  } catch (error) {
1827
1827
  return respondHandlerError(error, "SCHEMA_FIELD_UPDATE_ERROR");
@@ -1953,7 +1953,7 @@ function createMcpServer(pluginTools = [], request) {
1953
1953
  };
1954
1954
  } else input = { scope: "all" };
1955
1955
  try {
1956
- const { handleMediaUsageRepair } = await import("../../../media-usage-CHHpV7ee.mjs").then((n) => n.o);
1956
+ const { handleMediaUsageRepair } = await import("../../../media-usage-DEPHZZ9X.mjs").then((n) => n.o);
1957
1957
  return unwrap(await handleMediaUsageRepair(ec.db, input));
1958
1958
  } catch (error) {
1959
1959
  return respondHandlerError(error, "MEDIA_USAGE_REPAIR_ERROR");
@@ -1974,7 +1974,7 @@ function createMcpServer(pluginTools = [], request) {
1974
1974
  requireScope(extra, "content:read");
1975
1975
  const ec = getEmDash(extra);
1976
1976
  try {
1977
- const { searchWithDb } = await import("../../../search-D6-XK1Sn.mjs").then((n) => n.t);
1977
+ const { searchWithDb } = await import("../../../search-DxwagyWS.mjs").then((n) => n.t);
1978
1978
  return jsonResult(await searchWithDb(ec.db, args.query, {
1979
1979
  collections: args.collections,
1980
1980
  locale: args.locale,
@@ -1994,7 +1994,7 @@ function createMcpServer(pluginTools = [], request) {
1994
1994
  requireScope(extra, "content:read");
1995
1995
  const ec = getEmDash(extra);
1996
1996
  try {
1997
- const { handleTaxonomyList } = await import("../../../taxonomies-BS40Wxvi.mjs").then((n) => n.m);
1997
+ const { handleTaxonomyList } = await import("../../../taxonomies-Dj5eaobC.mjs").then((n) => n.m);
1998
1998
  return unwrap(await handleTaxonomyList(ec.db, { locale: args.locale }));
1999
1999
  } catch (error) {
2000
2000
  return respondHandlerError(error, "TAXONOMY_LIST_ERROR");
@@ -2012,7 +2012,7 @@ function createMcpServer(pluginTools = [], request) {
2012
2012
  requireScope(extra, "content:read");
2013
2013
  const ec = getEmDash(extra);
2014
2014
  try {
2015
- const { handleTaxonomyGet } = await import("../../../taxonomies-BS40Wxvi.mjs").then((n) => n.m);
2015
+ const { handleTaxonomyGet } = await import("../../../taxonomies-Dj5eaobC.mjs").then((n) => n.m);
2016
2016
  return unwrap(await handleTaxonomyGet(ec.db, args.name, { locale: args.locale }));
2017
2017
  } catch (error) {
2018
2018
  return respondHandlerError(error, "TAXONOMY_GET_ERROR");
@@ -2035,7 +2035,7 @@ function createMcpServer(pluginTools = [], request) {
2035
2035
  requireRole(extra, Role.EDITOR);
2036
2036
  const ec = getEmDash(extra);
2037
2037
  try {
2038
- const { handleTaxonomyCreate } = await import("../../../taxonomies-BS40Wxvi.mjs").then((n) => n.m);
2038
+ const { handleTaxonomyCreate } = await import("../../../taxonomies-Dj5eaobC.mjs").then((n) => n.m);
2039
2039
  return unwrapAndInvalidate(extra, await handleTaxonomyCreate(ec.db, {
2040
2040
  name: args.name,
2041
2041
  label: args.label,
@@ -2065,7 +2065,7 @@ function createMcpServer(pluginTools = [], request) {
2065
2065
  requireRole(extra, Role.EDITOR);
2066
2066
  const ec = getEmDash(extra);
2067
2067
  try {
2068
- const { handleTaxonomyUpdate } = await import("../../../taxonomies-BS40Wxvi.mjs").then((n) => n.m);
2068
+ const { handleTaxonomyUpdate } = await import("../../../taxonomies-Dj5eaobC.mjs").then((n) => n.m);
2069
2069
  return unwrapAndInvalidate(extra, await handleTaxonomyUpdate(ec.db, args.name, {
2070
2070
  label: args.label,
2071
2071
  labelSingular: args.labelSingular,
@@ -2087,7 +2087,7 @@ function createMcpServer(pluginTools = [], request) {
2087
2087
  requireRole(extra, Role.EDITOR);
2088
2088
  const ec = getEmDash(extra);
2089
2089
  try {
2090
- const { handleTaxonomyDelete } = await import("../../../taxonomies-BS40Wxvi.mjs").then((n) => n.m);
2090
+ const { handleTaxonomyDelete } = await import("../../../taxonomies-Dj5eaobC.mjs").then((n) => n.m);
2091
2091
  return unwrapAndInvalidate(extra, await handleTaxonomyDelete(ec.db, args.name), [taxonomyTag(args.name)]);
2092
2092
  } catch (error) {
2093
2093
  return respondHandlerError(error, "TAXONOMY_DELETE_ERROR");
@@ -2107,11 +2107,11 @@ function createMcpServer(pluginTools = [], request) {
2107
2107
  requireScope(extra, "content:read");
2108
2108
  const ec = getEmDash(extra);
2109
2109
  try {
2110
- const { handleTaxonomyList } = await import("../../../taxonomies-BS40Wxvi.mjs").then((n) => n.m);
2110
+ const { handleTaxonomyList } = await import("../../../taxonomies-Dj5eaobC.mjs").then((n) => n.m);
2111
2111
  const listResult = await handleTaxonomyList(ec.db, { locale: args.locale });
2112
2112
  if (!listResult.success) return unwrap(listResult);
2113
2113
  if (!listResult.data.taxonomies.find((t) => t.name === args.taxonomy)) return respondError("NOT_FOUND", `Taxonomy '${args.taxonomy}' not found`);
2114
- const { TaxonomyRepository } = await import("../../../taxonomy-XzLE95Vx.mjs").then((n) => n.n);
2114
+ const { TaxonomyRepository } = await import("../../../taxonomy-QrNmTfIZ.mjs").then((n) => n.n);
2115
2115
  const repo = new TaxonomyRepository(ec.db);
2116
2116
  const limit = Math.max(1, Math.min(args.limit ?? 50, 100));
2117
2117
  let cursor;
@@ -2172,7 +2172,7 @@ function createMcpServer(pluginTools = [], request) {
2172
2172
  requireRole(extra, Role.EDITOR);
2173
2173
  const ec = getEmDash(extra);
2174
2174
  try {
2175
- const { handleTermCreate } = await import("../../../taxonomies-BS40Wxvi.mjs").then((n) => n.m);
2175
+ const { handleTermCreate } = await import("../../../taxonomies-Dj5eaobC.mjs").then((n) => n.m);
2176
2176
  return unwrapAndInvalidate(extra, await handleTermCreate(ec.db, args.taxonomy, {
2177
2177
  slug: args.slug,
2178
2178
  label: args.label,
@@ -2202,7 +2202,7 @@ function createMcpServer(pluginTools = [], request) {
2202
2202
  requireRole(extra, Role.EDITOR);
2203
2203
  const ec = getEmDash(extra);
2204
2204
  try {
2205
- const { handleTermUpdate } = await import("../../../taxonomies-BS40Wxvi.mjs").then((n) => n.m);
2205
+ const { handleTermUpdate } = await import("../../../taxonomies-Dj5eaobC.mjs").then((n) => n.m);
2206
2206
  return unwrapAndInvalidate(extra, await handleTermUpdate(ec.db, args.taxonomy, args.termSlug, {
2207
2207
  slug: args.slug,
2208
2208
  label: args.label,
@@ -2227,7 +2227,7 @@ function createMcpServer(pluginTools = [], request) {
2227
2227
  requireRole(extra, Role.EDITOR);
2228
2228
  const ec = getEmDash(extra);
2229
2229
  try {
2230
- const { handleTermDelete } = await import("../../../taxonomies-BS40Wxvi.mjs").then((n) => n.m);
2230
+ const { handleTermDelete } = await import("../../../taxonomies-Dj5eaobC.mjs").then((n) => n.m);
2231
2231
  return unwrapAndInvalidate(extra, await handleTermDelete(ec.db, args.taxonomy, args.termSlug, { locale: args.locale }), [taxonomyTag(args.taxonomy)]);
2232
2232
  } catch (error) {
2233
2233
  return respondHandlerError(error, "TAXONOMY_TERM_DELETE_ERROR");
@@ -2242,7 +2242,7 @@ function createMcpServer(pluginTools = [], request) {
2242
2242
  requireScope(extra, "content:read");
2243
2243
  const ec = getEmDash(extra);
2244
2244
  try {
2245
- const { handleTermTranslations } = await import("../../../taxonomies-BS40Wxvi.mjs").then((n) => n.m);
2245
+ const { handleTermTranslations } = await import("../../../taxonomies-Dj5eaobC.mjs").then((n) => n.m);
2246
2246
  return unwrap(await handleTermTranslations(ec.db, args.id));
2247
2247
  } catch (error) {
2248
2248
  return respondHandlerError(error, "TERM_TRANSLATIONS_ERROR");
@@ -2257,7 +2257,7 @@ function createMcpServer(pluginTools = [], request) {
2257
2257
  requireScope(extra, "content:read");
2258
2258
  const ec = getEmDash(extra);
2259
2259
  try {
2260
- const { handleMenuList } = await import("../../../menus-6RHNq4ZK.mjs").then((n) => n.d);
2260
+ const { handleMenuList } = await import("../../../menus-CvVYfsuk.mjs").then((n) => n.d);
2261
2261
  return unwrap(await handleMenuList(ec.db, { locale: args.locale }));
2262
2262
  } catch (error) {
2263
2263
  return respondHandlerError(error, "MENU_LIST_ERROR");
@@ -2275,7 +2275,7 @@ function createMcpServer(pluginTools = [], request) {
2275
2275
  requireScope(extra, "content:read");
2276
2276
  const ec = getEmDash(extra);
2277
2277
  try {
2278
- const { handleMenuGet } = await import("../../../menus-6RHNq4ZK.mjs").then((n) => n.d);
2278
+ const { handleMenuGet } = await import("../../../menus-CvVYfsuk.mjs").then((n) => n.d);
2279
2279
  return unwrap(await handleMenuGet(ec.db, args.name, { locale: args.locale }));
2280
2280
  } catch (error) {
2281
2281
  return respondHandlerError(error, "MENU_GET_ERROR");
@@ -2290,7 +2290,7 @@ function createMcpServer(pluginTools = [], request) {
2290
2290
  requireScope(extra, "content:read");
2291
2291
  const ec = getEmDash(extra);
2292
2292
  try {
2293
- const { handleMenuTranslations } = await import("../../../menus-6RHNq4ZK.mjs").then((n) => n.d);
2293
+ const { handleMenuTranslations } = await import("../../../menus-CvVYfsuk.mjs").then((n) => n.d);
2294
2294
  return unwrap(await handleMenuTranslations(ec.db, args.id));
2295
2295
  } catch (error) {
2296
2296
  return respondHandlerError(error, "MENU_TRANSLATIONS_ERROR");
@@ -2310,7 +2310,7 @@ function createMcpServer(pluginTools = [], request) {
2310
2310
  requireRole(extra, Role.EDITOR);
2311
2311
  const ec = getEmDash(extra);
2312
2312
  try {
2313
- const { handleMenuCreate } = await import("../../../menus-6RHNq4ZK.mjs").then((n) => n.d);
2313
+ const { handleMenuCreate } = await import("../../../menus-CvVYfsuk.mjs").then((n) => n.d);
2314
2314
  return unwrapAndInvalidate(extra, await handleMenuCreate(ec.db, {
2315
2315
  name: args.name,
2316
2316
  label: args.label,
@@ -2334,7 +2334,7 @@ function createMcpServer(pluginTools = [], request) {
2334
2334
  requireRole(extra, Role.EDITOR);
2335
2335
  const ec = getEmDash(extra);
2336
2336
  try {
2337
- const { handleMenuUpdate } = await import("../../../menus-6RHNq4ZK.mjs").then((n) => n.d);
2337
+ const { handleMenuUpdate } = await import("../../../menus-CvVYfsuk.mjs").then((n) => n.d);
2338
2338
  return unwrapAndInvalidate(extra, await handleMenuUpdate(ec.db, args.name, {
2339
2339
  label: args.label,
2340
2340
  locale: args.locale
@@ -2356,7 +2356,7 @@ function createMcpServer(pluginTools = [], request) {
2356
2356
  requireRole(extra, Role.EDITOR);
2357
2357
  const ec = getEmDash(extra);
2358
2358
  try {
2359
- const { handleMenuDelete } = await import("../../../menus-6RHNq4ZK.mjs").then((n) => n.d);
2359
+ const { handleMenuDelete } = await import("../../../menus-CvVYfsuk.mjs").then((n) => n.d);
2360
2360
  return unwrapAndInvalidate(extra, await handleMenuDelete(ec.db, args.name, { locale: args.locale }), [menuTag(args.name)]);
2361
2361
  } catch (error) {
2362
2362
  return respondHandlerError(error, "MENU_DELETE_ERROR");
@@ -2391,7 +2391,7 @@ function createMcpServer(pluginTools = [], request) {
2391
2391
  requireRole(extra, Role.EDITOR);
2392
2392
  const ec = getEmDash(extra);
2393
2393
  try {
2394
- const { handleMenuSetItems } = await import("../../../menus-6RHNq4ZK.mjs").then((n) => n.d);
2394
+ const { handleMenuSetItems } = await import("../../../menus-CvVYfsuk.mjs").then((n) => n.d);
2395
2395
  return unwrapAndInvalidate(extra, await handleMenuSetItems(ec.db, args.name, args.items, { locale: args.locale }), [menuTag(args.name)]);
2396
2396
  } catch (error) {
2397
2397
  return respondHandlerError(error, "MENU_SET_ITEMS_ERROR");
@@ -2443,7 +2443,7 @@ function createMcpServer(pluginTools = [], request) {
2443
2443
  requireRole(extra, Role.EDITOR);
2444
2444
  const ec = getEmDash(extra);
2445
2445
  try {
2446
- const { handleSettingsGet } = await import("../../../settings-0u0lTthS.mjs").then((n) => n.r);
2446
+ const { handleSettingsGet } = await import("../../../settings-Bc1IBl1t.mjs").then((n) => n.r);
2447
2447
  return unwrap(await handleSettingsGet(ec.db, ec.storage));
2448
2448
  } catch (error) {
2449
2449
  return respondHandlerError(error, "SETTINGS_READ_ERROR");
@@ -2469,7 +2469,7 @@ function createMcpServer(pluginTools = [], request) {
2469
2469
  requireRole(extra, Role.ADMIN);
2470
2470
  const ec = getEmDash(extra);
2471
2471
  try {
2472
- const { handleSettingsUpdate } = await import("../../../settings-0u0lTthS.mjs").then((n) => n.r);
2472
+ const { handleSettingsUpdate } = await import("../../../settings-Bc1IBl1t.mjs").then((n) => n.r);
2473
2473
  return unwrapAndInvalidate(extra, await handleSettingsUpdate(ec.db, ec.storage, args), [siteSettingsTag()]);
2474
2474
  } catch (error) {
2475
2475
  return respondHandlerError(error, "SETTINGS_UPDATE_ERROR");
@@ -1 +1 @@
1
- {"version":3,"file":"confirm.d.mts","names":[],"sources":["../../../../../../src/astro/routes/api/media/[id]/confirm.ts"],"mappings":";;;cAqBa,SAAA;;;;cAqFA,IAAA,EAAM,QAAA"}
1
+ {"version":3,"file":"confirm.d.mts","names":[],"sources":["../../../../../../src/astro/routes/api/media/[id]/confirm.ts"],"mappings":";;;cAuBa,SAAA;;;;cAqFA,IAAA,EAAM,QAAA"}
@@ -1,26 +1,27 @@
1
1
  import "../../../../../config-CvmjJcVw.mjs";
2
+ import { t as after } from "../../../../../after-PcEvMY_6.mjs";
2
3
  import "../../../../../base64-BQBZwXCx.mjs";
3
4
  import "../../../../../url-Dn3IStq8.mjs";
4
5
  import "../../../../../types-C-Xp0CcN.mjs";
5
- import { t as MediaRepository } from "../../../../../media-BzUDu7nl.mjs";
6
+ import { t as MediaRepository } from "../../../../../media-IT8hQleU.mjs";
6
7
  import "../../../../../dist-Cfu8mMBs.mjs";
7
8
  import { t as enrichImageMetadata } from "../../../../../enrich-Duu4sV3a.mjs";
8
9
  import { n as computeContentHash, t as MAX_CONTENT_HASH_BYTES } from "../../../../../hash-C4DFoJ7Z.mjs";
9
- import "../../../../../errors-CuHQRiBW.mjs";
10
- import "../../../../../errors-DTE6C3K_.mjs";
11
- import "../../../../../settings-WHr45II1.mjs";
12
- import "../../../../../site-settings-KJOqJW6W.mjs";
13
- import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-B0rgPgsQ.mjs";
14
- import { r as parseOptionalBody, t as isParseError } from "../../../../../parse-CmFDTGzp.mjs";
15
- import "../../../../../redirects-D4EWeXAo.mjs";
16
- import "../../../../../entry-lock-sxz2PGAT.mjs";
17
- import { i as mediaConfirmBody } from "../../../../../media-aahnKHze.mjs";
18
- import "../../../../../comments-BRtp992B.mjs";
19
- import "../../../../../byline-fields-DHJs0Mja.mjs";
20
- import "../../../../../menus-BQKqf0Up.mjs";
21
- import "../../../../../status-D39Fpy8R.mjs";
10
+ import "../../../../../errors-CjtE5aWF.mjs";
11
+ import "../../../../../errors-hskQ0C8G.mjs";
12
+ import "../../../../../settings-GaZ5sVgg.mjs";
13
+ import "../../../../../site-settings-CDdT4mVm.mjs";
14
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-DxgQdaZ_.mjs";
15
+ import { r as parseOptionalBody, t as isParseError } from "../../../../../parse-Cn5aSk1N.mjs";
16
+ import "../../../../../redirects-DFT7Wr-e.mjs";
17
+ import "../../../../../entry-lock-Cjz0h45X.mjs";
18
+ import { i as mediaConfirmBody } from "../../../../../media-CRKsKlfK.mjs";
19
+ import "../../../../../comments-BzmIKVb2.mjs";
20
+ import "../../../../../byline-fields-Bze3ZdAw.mjs";
21
+ import "../../../../../menus-D1HC8npj.mjs";
22
+ import "../../../../../status-Dl85BK39.mjs";
22
23
  import "../../../../../api/schemas/index.mjs";
23
- import { i as requirePerm, r as requireOwnerPerm } from "../../../../../authorize-DeWfk--K.mjs";
24
+ import { i as requirePerm, r as requireOwnerPerm } from "../../../../../authorize-TdIGpRSE.mjs";
24
25
 
25
26
  //#region src/astro/routes/api/media/[id]/confirm.ts
26
27
  const prerender = false;
@@ -167,7 +168,22 @@ const POST = async ({ params, request, locals }) => {
167
168
  }, existing.storageKey);
168
169
  if (!item) return await confirmationConflict(repo, id);
169
170
  await forgetUploadAttempt(repo, item.storageKey);
170
- return apiSuccess({ item: addUrlToMedia(item) });
171
+ const itemWithUrl = addUrlToMedia(item);
172
+ if (emdash.hooks?.hasHooks("media:afterUpload")) after(async () => {
173
+ try {
174
+ await emdash.hooks.runMediaAfterUpload({
175
+ id: itemWithUrl.id,
176
+ filename: itemWithUrl.filename,
177
+ mimeType: itemWithUrl.mimeType,
178
+ size: itemWithUrl.size,
179
+ url: itemWithUrl.url,
180
+ createdAt: itemWithUrl.createdAt
181
+ });
182
+ } catch (error) {
183
+ console.error("[media] afterUpload hook failed:", error);
184
+ }
185
+ });
186
+ return apiSuccess({ item: itemWithUrl });
171
187
  } catch (error) {
172
188
  return handleError(error, "Failed to confirm upload", "CONFIRM_ERROR");
173
189
  }
@@ -1 +1 @@
1
- {"version":3,"file":"confirm.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/media/[id]/confirm.ts"],"sourcesContent":["/**\n * Confirm media upload endpoint\n *\n * POST /_emdash/api/media/{id}/confirm\n *\n * Confirms that the client has successfully uploaded the file to storage.\n * Marks the media record as ready and optionally updates metadata.\n */\n\nimport type { APIRoute } from \"astro\";\nimport type { DownloadResult } from \"emdash\";\n\nimport { requireOwnerPerm, requirePerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { isParseError, parseOptionalBody } from \"#api/parse.js\";\nimport { mediaConfirmBody } from \"#api/schemas.js\";\nimport { MediaRepository } from \"#db/repositories/media.js\";\nimport { enrichImageMetadata } from \"#media/enrich.js\";\nimport type { MediaItem } from \"#types\";\nimport { computeContentHash, MAX_CONTENT_HASH_BYTES } from \"#utils/hash.js\";\n\nexport const prerender = false;\n\n/**\n * Max raw bytes to buffer for server-side LQIP generation at confirm time. The\n * signed-URL upload flow exists so large files bypass server buffering — re-reading\n * the whole object into a Worker's 128 MB heap to compute a blurhash would OOM\n * on the very uploads that flow was designed for. LQIP is progressive\n * enhancement: large images simply ship without a server-generated placeholder.\n */\nconst MAX_PLACEHOLDER_DOWNLOAD_BYTES = MAX_CONTENT_HASH_BYTES;\n\n/**\n * Add URL to media item (relative URL for portability)\n */\nfunction addUrlToMedia(item: MediaItem): MediaItem & { url: string } {\n\treturn {\n\t\t...item,\n\t\turl: `/_emdash/api/media/file/${item.storageKey}`,\n\t};\n}\n\nasync function cancelDownload(download: DownloadResult): Promise<void> {\n\ttry {\n\t\tawait download.body.cancel();\n\t} catch (error) {\n\t\tconsole.error(\"[media] confirm download cancellation failed:\", error);\n\t}\n}\n\nasync function forgetUploadAttempt(repo: MediaRepository, storageKey: string): Promise<void> {\n\ttry {\n\t\tawait repo.deleteUploadAttempt(storageKey);\n\t} catch (error) {\n\t\tconsole.error(\"[media] confirm upload attempt cleanup failed:\", error);\n\t}\n}\n\nasync function confirmationConflict(repo: MediaRepository, id: string): Promise<Response> {\n\tconst current = await repo.findById(id);\n\tif (!current) {\n\t\treturn apiError(\"NOT_FOUND\", `Media item not found: ${id}`, 404);\n\t}\n\tif (current.status === \"ready\") {\n\t\tawait forgetUploadAttempt(repo, current.storageKey);\n\t\treturn apiSuccess({ item: addUrlToMedia(current) });\n\t}\n\tif (current.status === \"pending\") {\n\t\treturn apiError(\"INVALID_STATE\", \"Media item changed during confirmation\", 409);\n\t}\n\treturn apiError(\"INVALID_STATE\", `Media item is not pending: ${current.status}`, 400);\n}\n\nasync function consumeDownload(download: DownloadResult): Promise<Uint8Array> {\n\tconst reader = download.body.getReader();\n\ttry {\n\t\tconst bytes = new Uint8Array(download.size);\n\t\tlet receivedSize = 0;\n\t\twhile (true) {\n\t\t\tconst { done, value } = await reader.read();\n\t\t\tif (done) break;\n\t\t\tif (receivedSize + value.byteLength > bytes.byteLength) {\n\t\t\t\tthrow new Error(\"Stored file exceeds its reported size\");\n\t\t\t}\n\t\t\tbytes.set(value, receivedSize);\n\t\t\treceivedSize += value.byteLength;\n\t\t}\n\t\tif (receivedSize !== download.size) {\n\t\t\tthrow new Error(\"Stored file size does not match its reported size\");\n\t\t}\n\t\treturn bytes;\n\t} catch (error) {\n\t\ttry {\n\t\t\tawait reader.cancel(error);\n\t\t} catch (cancelError) {\n\t\t\tconsole.error(\"[media] confirm download cancellation failed:\", cancelError);\n\t\t}\n\t\tthrow error;\n\t} finally {\n\t\treader.releaseLock();\n\t}\n}\n\n/**\n * Confirm upload completion\n */\nexport const POST: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { id } = params;\n\n\tconst denied = requirePerm(user, \"media:upload\");\n\tif (denied) return denied;\n\n\tif (!id) {\n\t\treturn apiError(\"INVALID_REQUEST\", \"Media ID is required\", 400);\n\t}\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\ttry {\n\t\tconst body = await parseOptionalBody(request, mediaConfirmBody, {});\n\t\tif (isParseError(body)) return body;\n\n\t\tconst repo = new MediaRepository(emdash.db);\n\n\t\t// Get the media item first to check status\n\t\tconst existing = await repo.findById(id);\n\t\tif (!existing) {\n\t\t\treturn apiError(\"NOT_FOUND\", `Media item not found: ${id}`, 404);\n\t\t}\n\n\t\t// Only the uploader or a user with media:edit_any can confirm/fail a pending upload\n\t\tconst ownerDenied = requireOwnerPerm(\n\t\t\tuser,\n\t\t\texisting.authorId ?? \"\",\n\t\t\t\"media:upload\",\n\t\t\t\"media:edit_any\",\n\t\t);\n\t\tif (ownerDenied) return ownerDenied;\n\n\t\tif (existing.status === \"ready\") {\n\t\t\tawait forgetUploadAttempt(repo, existing.storageKey);\n\t\t\treturn apiSuccess({ item: addUrlToMedia(existing) });\n\t\t}\n\t\tif (existing.status !== \"pending\") {\n\t\t\treturn apiError(\"INVALID_STATE\", `Media item is not pending: ${existing.status}`, 400);\n\t\t}\n\n\t\tif (body.size !== undefined && existing.size !== null && body.size !== existing.size) {\n\t\t\treturn apiError(\n\t\t\t\t\"UPLOAD_SIZE_MISMATCH\",\n\t\t\t\t\"Confirmed size does not match the pending media item\",\n\t\t\t\t400,\n\t\t\t);\n\t\t}\n\n\t\tlet confirmedSize = existing.size ?? body.size;\n\t\tlet contentHash = existing.contentHash;\n\t\tlet imageBytes: Uint8Array | undefined;\n\n\t\tif (emdash.storage) {\n\t\t\tconst exists = await emdash.storage.exists(existing.storageKey);\n\t\t\tif (!exists) {\n\t\t\t\tconst failed = await repo.markFailed(id, existing.storageKey);\n\t\t\t\tif (!failed) return await confirmationConflict(repo, id);\n\t\t\t\treturn apiError(\"FILE_NOT_FOUND\", \"File was not uploaded to storage\", 400);\n\t\t\t}\n\n\t\t\tconst storedFile = await emdash.storage.download(existing.storageKey);\n\t\t\tif (confirmedSize !== undefined && storedFile.size !== confirmedSize) {\n\t\t\t\tawait cancelDownload(storedFile);\n\t\t\t\treturn apiError(\n\t\t\t\t\t\"UPLOAD_SIZE_MISMATCH\",\n\t\t\t\t\t\"Stored file size does not match the pending media item\",\n\t\t\t\t\t400,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconfirmedSize = storedFile.size;\n\n\t\t\tconst isImage = existing.mimeType.startsWith(\"image/\");\n\t\t\tconst canBuffer = storedFile.size <= MAX_PLACEHOLDER_DOWNLOAD_BYTES;\n\t\t\tconst hasServerHash =\n\t\t\t\tcontentHash !== null && (await repo.hasUploadAttempt(existing.storageKey));\n\t\t\tif (canBuffer && (isImage || !hasServerHash)) {\n\t\t\t\tconst bytes = await consumeDownload(storedFile);\n\t\t\t\tcontentHash = bytes.byteLength > 0 ? await computeContentHash(bytes) : null;\n\t\t\t\tif (isImage && bytes.byteLength > 0) imageBytes = bytes;\n\t\t\t} else {\n\t\t\t\tif (!hasServerHash) contentHash = null;\n\t\t\t\tawait cancelDownload(storedFile);\n\t\t\t}\n\n\t\t\tif (isImage && !canBuffer) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`[media] confirm skipping placeholder: object ${existing.storageKey} reported size ${storedFile.size} bytes (> ${MAX_PLACEHOLDER_DOWNLOAD_BYTES})`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// LQIP is best-effort; oversized images skip server-side placeholders.\n\t\tlet blurhash: string | undefined;\n\t\tlet dominantColor: string | undefined;\n\t\tlet width = body.width;\n\t\tlet height = body.height;\n\t\tif (imageBytes) {\n\t\t\ttry {\n\t\t\t\tconst enriched = await enrichImageMetadata(imageBytes, existing.mimeType, {\n\t\t\t\t\tknownDimensions:\n\t\t\t\t\t\tbody.width != null && body.height != null\n\t\t\t\t\t\t\t? { width: body.width, height: body.height }\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t});\n\t\t\t\tblurhash = enriched.blurhash;\n\t\t\t\tdominantColor = enriched.dominantColor;\n\t\t\t\twidth = width ?? enriched.width;\n\t\t\t\theight = height ?? enriched.height;\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"[media] confirm placeholder generation failed:\", error);\n\t\t\t}\n\t\t}\n\n\t\t// Confirm the upload\n\t\tconst item = await repo.confirmUpload(\n\t\t\tid,\n\t\t\t{\n\t\t\t\tsize: confirmedSize,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tblurhash,\n\t\t\t\tdominantColor,\n\t\t\t\tcontentHash,\n\t\t\t},\n\t\t\texisting.storageKey,\n\t\t);\n\n\t\tif (!item) {\n\t\t\treturn await confirmationConflict(repo, id);\n\t\t}\n\n\t\tawait forgetUploadAttempt(repo, item.storageKey);\n\n\t\t// Add URL to the response (relative URL for portability)\n\t\tconst itemWithUrl = addUrlToMedia(item);\n\n\t\treturn apiSuccess({ item: itemWithUrl });\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to confirm upload\", \"CONFIRM_ERROR\");\n\t}\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"confirm.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/media/[id]/confirm.ts"],"sourcesContent":["/**\n * Confirm media upload endpoint\n *\n * POST /_emdash/api/media/{id}/confirm\n *\n * Confirms that the client has successfully uploaded the file to storage.\n * Marks the media record as ready and optionally updates metadata.\n */\n\nimport type { APIRoute } from \"astro\";\nimport type { DownloadResult } from \"emdash\";\n\nimport { requireOwnerPerm, requirePerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { isParseError, parseOptionalBody } from \"#api/parse.js\";\nimport { mediaConfirmBody } from \"#api/schemas.js\";\nimport { MediaRepository } from \"#db/repositories/media.js\";\nimport { enrichImageMetadata } from \"#media/enrich.js\";\nimport type { MediaItem } from \"#types\";\nimport { computeContentHash, MAX_CONTENT_HASH_BYTES } from \"#utils/hash.js\";\n\nimport { after } from \"../../../../../after.js\";\n\nexport const prerender = false;\n\n/**\n * Max raw bytes to buffer for server-side LQIP generation at confirm time. The\n * signed-URL upload flow exists so large files bypass server buffering — re-reading\n * the whole object into a Worker's 128 MB heap to compute a blurhash would OOM\n * on the very uploads that flow was designed for. LQIP is progressive\n * enhancement: large images simply ship without a server-generated placeholder.\n */\nconst MAX_PLACEHOLDER_DOWNLOAD_BYTES = MAX_CONTENT_HASH_BYTES;\n\n/**\n * Add URL to media item (relative URL for portability)\n */\nfunction addUrlToMedia(item: MediaItem): MediaItem & { url: string } {\n\treturn {\n\t\t...item,\n\t\turl: `/_emdash/api/media/file/${item.storageKey}`,\n\t};\n}\n\nasync function cancelDownload(download: DownloadResult): Promise<void> {\n\ttry {\n\t\tawait download.body.cancel();\n\t} catch (error) {\n\t\tconsole.error(\"[media] confirm download cancellation failed:\", error);\n\t}\n}\n\nasync function forgetUploadAttempt(repo: MediaRepository, storageKey: string): Promise<void> {\n\ttry {\n\t\tawait repo.deleteUploadAttempt(storageKey);\n\t} catch (error) {\n\t\tconsole.error(\"[media] confirm upload attempt cleanup failed:\", error);\n\t}\n}\n\nasync function confirmationConflict(repo: MediaRepository, id: string): Promise<Response> {\n\tconst current = await repo.findById(id);\n\tif (!current) {\n\t\treturn apiError(\"NOT_FOUND\", `Media item not found: ${id}`, 404);\n\t}\n\tif (current.status === \"ready\") {\n\t\tawait forgetUploadAttempt(repo, current.storageKey);\n\t\treturn apiSuccess({ item: addUrlToMedia(current) });\n\t}\n\tif (current.status === \"pending\") {\n\t\treturn apiError(\"INVALID_STATE\", \"Media item changed during confirmation\", 409);\n\t}\n\treturn apiError(\"INVALID_STATE\", `Media item is not pending: ${current.status}`, 400);\n}\n\nasync function consumeDownload(download: DownloadResult): Promise<Uint8Array> {\n\tconst reader = download.body.getReader();\n\ttry {\n\t\tconst bytes = new Uint8Array(download.size);\n\t\tlet receivedSize = 0;\n\t\twhile (true) {\n\t\t\tconst { done, value } = await reader.read();\n\t\t\tif (done) break;\n\t\t\tif (receivedSize + value.byteLength > bytes.byteLength) {\n\t\t\t\tthrow new Error(\"Stored file exceeds its reported size\");\n\t\t\t}\n\t\t\tbytes.set(value, receivedSize);\n\t\t\treceivedSize += value.byteLength;\n\t\t}\n\t\tif (receivedSize !== download.size) {\n\t\t\tthrow new Error(\"Stored file size does not match its reported size\");\n\t\t}\n\t\treturn bytes;\n\t} catch (error) {\n\t\ttry {\n\t\t\tawait reader.cancel(error);\n\t\t} catch (cancelError) {\n\t\t\tconsole.error(\"[media] confirm download cancellation failed:\", cancelError);\n\t\t}\n\t\tthrow error;\n\t} finally {\n\t\treader.releaseLock();\n\t}\n}\n\n/**\n * Confirm upload completion\n */\nexport const POST: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { id } = params;\n\n\tconst denied = requirePerm(user, \"media:upload\");\n\tif (denied) return denied;\n\n\tif (!id) {\n\t\treturn apiError(\"INVALID_REQUEST\", \"Media ID is required\", 400);\n\t}\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\ttry {\n\t\tconst body = await parseOptionalBody(request, mediaConfirmBody, {});\n\t\tif (isParseError(body)) return body;\n\n\t\tconst repo = new MediaRepository(emdash.db);\n\n\t\t// Get the media item first to check status\n\t\tconst existing = await repo.findById(id);\n\t\tif (!existing) {\n\t\t\treturn apiError(\"NOT_FOUND\", `Media item not found: ${id}`, 404);\n\t\t}\n\n\t\t// Only the uploader or a user with media:edit_any can confirm/fail a pending upload\n\t\tconst ownerDenied = requireOwnerPerm(\n\t\t\tuser,\n\t\t\texisting.authorId ?? \"\",\n\t\t\t\"media:upload\",\n\t\t\t\"media:edit_any\",\n\t\t);\n\t\tif (ownerDenied) return ownerDenied;\n\n\t\tif (existing.status === \"ready\") {\n\t\t\tawait forgetUploadAttempt(repo, existing.storageKey);\n\t\t\treturn apiSuccess({ item: addUrlToMedia(existing) });\n\t\t}\n\t\tif (existing.status !== \"pending\") {\n\t\t\treturn apiError(\"INVALID_STATE\", `Media item is not pending: ${existing.status}`, 400);\n\t\t}\n\n\t\tif (body.size !== undefined && existing.size !== null && body.size !== existing.size) {\n\t\t\treturn apiError(\n\t\t\t\t\"UPLOAD_SIZE_MISMATCH\",\n\t\t\t\t\"Confirmed size does not match the pending media item\",\n\t\t\t\t400,\n\t\t\t);\n\t\t}\n\n\t\tlet confirmedSize = existing.size ?? body.size;\n\t\tlet contentHash = existing.contentHash;\n\t\tlet imageBytes: Uint8Array | undefined;\n\n\t\tif (emdash.storage) {\n\t\t\tconst exists = await emdash.storage.exists(existing.storageKey);\n\t\t\tif (!exists) {\n\t\t\t\tconst failed = await repo.markFailed(id, existing.storageKey);\n\t\t\t\tif (!failed) return await confirmationConflict(repo, id);\n\t\t\t\treturn apiError(\"FILE_NOT_FOUND\", \"File was not uploaded to storage\", 400);\n\t\t\t}\n\n\t\t\tconst storedFile = await emdash.storage.download(existing.storageKey);\n\t\t\tif (confirmedSize !== undefined && storedFile.size !== confirmedSize) {\n\t\t\t\tawait cancelDownload(storedFile);\n\t\t\t\treturn apiError(\n\t\t\t\t\t\"UPLOAD_SIZE_MISMATCH\",\n\t\t\t\t\t\"Stored file size does not match the pending media item\",\n\t\t\t\t\t400,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconfirmedSize = storedFile.size;\n\n\t\t\tconst isImage = existing.mimeType.startsWith(\"image/\");\n\t\t\tconst canBuffer = storedFile.size <= MAX_PLACEHOLDER_DOWNLOAD_BYTES;\n\t\t\tconst hasServerHash =\n\t\t\t\tcontentHash !== null && (await repo.hasUploadAttempt(existing.storageKey));\n\t\t\tif (canBuffer && (isImage || !hasServerHash)) {\n\t\t\t\tconst bytes = await consumeDownload(storedFile);\n\t\t\t\tcontentHash = bytes.byteLength > 0 ? await computeContentHash(bytes) : null;\n\t\t\t\tif (isImage && bytes.byteLength > 0) imageBytes = bytes;\n\t\t\t} else {\n\t\t\t\tif (!hasServerHash) contentHash = null;\n\t\t\t\tawait cancelDownload(storedFile);\n\t\t\t}\n\n\t\t\tif (isImage && !canBuffer) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`[media] confirm skipping placeholder: object ${existing.storageKey} reported size ${storedFile.size} bytes (> ${MAX_PLACEHOLDER_DOWNLOAD_BYTES})`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// LQIP is best-effort; oversized images skip server-side placeholders.\n\t\tlet blurhash: string | undefined;\n\t\tlet dominantColor: string | undefined;\n\t\tlet width = body.width;\n\t\tlet height = body.height;\n\t\tif (imageBytes) {\n\t\t\ttry {\n\t\t\t\tconst enriched = await enrichImageMetadata(imageBytes, existing.mimeType, {\n\t\t\t\t\tknownDimensions:\n\t\t\t\t\t\tbody.width != null && body.height != null\n\t\t\t\t\t\t\t? { width: body.width, height: body.height }\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t});\n\t\t\t\tblurhash = enriched.blurhash;\n\t\t\t\tdominantColor = enriched.dominantColor;\n\t\t\t\twidth = width ?? enriched.width;\n\t\t\t\theight = height ?? enriched.height;\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"[media] confirm placeholder generation failed:\", error);\n\t\t\t}\n\t\t}\n\n\t\t// Confirm the upload\n\t\tconst item = await repo.confirmUpload(\n\t\t\tid,\n\t\t\t{\n\t\t\t\tsize: confirmedSize,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tblurhash,\n\t\t\t\tdominantColor,\n\t\t\t\tcontentHash,\n\t\t\t},\n\t\t\texisting.storageKey,\n\t\t);\n\n\t\tif (!item) {\n\t\t\treturn await confirmationConflict(repo, id);\n\t\t}\n\n\t\tawait forgetUploadAttempt(repo, item.storageKey);\n\n\t\t// Add URL to the response (relative URL for portability)\n\t\tconst itemWithUrl = addUrlToMedia(item);\n\n\t\tif (emdash.hooks?.hasHooks(\"media:afterUpload\")) {\n\t\t\tafter(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait emdash.hooks.runMediaAfterUpload({\n\t\t\t\t\t\tid: itemWithUrl.id,\n\t\t\t\t\t\tfilename: itemWithUrl.filename,\n\t\t\t\t\t\tmimeType: itemWithUrl.mimeType,\n\t\t\t\t\t\tsize: itemWithUrl.size,\n\t\t\t\t\t\turl: itemWithUrl.url,\n\t\t\t\t\t\tcreatedAt: itemWithUrl.createdAt,\n\t\t\t\t\t});\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(\"[media] afterUpload hook failed:\", error);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn apiSuccess({ item: itemWithUrl });\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to confirm upload\", \"CONFIRM_ERROR\");\n\t}\n};\n"],"mappings":"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"}