emdash 1.1.0 → 1.3.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 (1571) hide show
  1. package/dist/action-token-SK8zyN7w.mjs +26 -0
  2. package/dist/action-token-SK8zyN7w.mjs.map +1 -0
  3. package/dist/activation-Dim4YMM7.mjs +387 -0
  4. package/dist/activation-Dim4YMM7.mjs.map +1 -0
  5. package/dist/adapters-F_xorvWv.d.mts +173 -0
  6. package/dist/adapters-F_xorvWv.d.mts.map +1 -0
  7. package/dist/allowed-origins-CEug-p0t.mjs +116 -0
  8. package/dist/allowed-origins-CEug-p0t.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +4 -4
  10. package/dist/api/route-utils.d.mts.map +1 -1
  11. package/dist/api/route-utils.mjs +48 -46
  12. package/dist/api/route-utils.mjs.map +1 -1
  13. package/dist/api/schemas/index.d.mts +2 -2
  14. package/dist/api/schemas/index.mjs +10 -10
  15. package/dist/api-D-7BNHoz.mjs +5025 -0
  16. package/dist/api-D-7BNHoz.mjs.map +1 -0
  17. package/dist/api-tokens-Bx38ZCQp.mjs +173 -0
  18. package/dist/api-tokens-Bx38ZCQp.mjs.map +1 -0
  19. package/dist/apply-T7ATgzCh.mjs +1702 -0
  20. package/dist/apply-T7ATgzCh.mjs.map +1 -0
  21. package/dist/approvals-D-m6wvGl.mjs +460 -0
  22. package/dist/approvals-D-m6wvGl.mjs.map +1 -0
  23. package/dist/artifact-fetch-DIh7iyOV.mjs +659 -0
  24. package/dist/artifact-fetch-DIh7iyOV.mjs.map +1 -0
  25. package/dist/artifacts-htGyfCSt.mjs +307 -0
  26. package/dist/artifacts-htGyfCSt.mjs.map +1 -0
  27. package/dist/astro/image-endpoint.d.mts.map +1 -1
  28. package/dist/astro/image-endpoint.mjs +26 -6
  29. package/dist/astro/image-endpoint.mjs.map +1 -1
  30. package/dist/astro/index.d.mts +14 -14
  31. package/dist/astro/index.d.mts.map +1 -1
  32. package/dist/astro/index.mjs +324 -23
  33. package/dist/astro/index.mjs.map +1 -1
  34. package/dist/astro/middleware/auth.d.mts +12 -12
  35. package/dist/astro/middleware/auth.d.mts.map +1 -1
  36. package/dist/astro/middleware/auth.mjs +18 -13
  37. package/dist/astro/middleware/auth.mjs.map +1 -1
  38. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  39. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  40. package/dist/astro/middleware/redirect.mjs +81 -46
  41. package/dist/astro/middleware/redirect.mjs.map +1 -1
  42. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  43. package/dist/astro/middleware/request-context.mjs +117 -56
  44. package/dist/astro/middleware/request-context.mjs.map +1 -1
  45. package/dist/astro/middleware/setup.mjs +1 -1
  46. package/dist/astro/middleware.d.mts +12 -12
  47. package/dist/astro/middleware.d.mts.map +1 -1
  48. package/dist/astro/middleware.mjs +145 -415
  49. package/dist/astro/middleware.mjs.map +1 -1
  50. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +14 -14
  51. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +14 -14
  52. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +7 -6
  53. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs.map +1 -1
  54. package/dist/astro/routes/api/admin/api-tokens/index.mjs +8 -7
  55. package/dist/astro/routes/api/admin/api-tokens/index.mjs.map +1 -1
  56. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -6
  57. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +16 -16
  58. package/dist/astro/routes/api/admin/byline-fields/index.mjs +16 -16
  59. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +16 -16
  60. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +22 -21
  61. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  62. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +22 -21
  63. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  64. package/dist/astro/routes/api/admin/bylines/index.mjs +22 -21
  65. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  66. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +18 -18
  67. package/dist/astro/routes/api/admin/comments/_id_.mjs +7 -7
  68. package/dist/astro/routes/api/admin/comments/bulk.mjs +17 -17
  69. package/dist/astro/routes/api/admin/comments/counts.mjs +7 -7
  70. package/dist/astro/routes/api/admin/comments/index.mjs +17 -17
  71. package/dist/astro/routes/api/admin/core-update.mjs +7 -7
  72. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  73. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  74. package/dist/astro/routes/api/admin/media-usage/activation.mjs +20 -20
  75. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +21 -21
  76. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +21 -21
  77. package/dist/astro/routes/api/admin/media-usage/progress.mjs +23 -22
  78. package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
  79. package/dist/astro/routes/api/admin/media-usage/repair.mjs +29 -28
  80. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  81. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +21 -21
  82. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +21 -21
  83. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  84. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  85. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  86. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  87. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +72 -70
  88. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  89. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
  90. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +71 -69
  91. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  92. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +71 -70
  93. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  94. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +80 -79
  95. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/plugins/index.mjs +72 -70
  97. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +7 -7
  99. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -69
  100. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  101. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +79 -78
  102. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  103. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -69
  104. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  105. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +71 -70
  106. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  107. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +81 -80
  108. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  109. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +10 -10
  110. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  111. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +73 -72
  112. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  113. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
  114. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +72 -70
  115. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  116. package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -69
  117. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  118. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +5 -5
  119. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +71 -69
  120. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  121. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +7 -7
  122. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -69
  123. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  124. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
  125. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +38 -37
  126. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
  127. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +38 -37
  128. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
  129. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +40 -39
  130. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
  131. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +40 -39
  132. package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
  133. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +40 -39
  134. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
  135. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +41 -40
  136. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
  137. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +41 -40
  138. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
  139. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +40 -39
  140. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
  141. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +41 -40
  142. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
  143. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +42 -41
  144. package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
  145. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +40 -39
  146. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
  147. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +40 -39
  148. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
  149. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +42 -41
  150. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
  151. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +40 -39
  152. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
  153. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +42 -41
  154. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
  155. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +40 -39
  156. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
  157. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +40 -39
  158. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
  159. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +42 -41
  160. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
  161. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +40 -39
  162. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
  163. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +40 -39
  164. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
  165. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +42 -41
  166. package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
  167. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +4 -4
  168. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  169. package/dist/astro/routes/api/admin/users/_id_/index.mjs +14 -14
  170. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
  171. package/dist/astro/routes/api/admin/users/index.mjs +14 -14
  172. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  173. package/dist/astro/routes/api/auth/handover.d.mts +8 -0
  174. package/dist/astro/routes/api/auth/handover.d.mts.map +1 -0
  175. package/dist/astro/routes/api/auth/handover.mjs +49 -0
  176. package/dist/astro/routes/api/auth/handover.mjs.map +1 -0
  177. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  178. package/dist/astro/routes/api/auth/invite/complete.mjs +19 -19
  179. package/dist/astro/routes/api/auth/invite/index.mjs +16 -16
  180. package/dist/astro/routes/api/auth/invite/register-options.mjs +17 -17
  181. package/dist/astro/routes/api/auth/logout.mjs +5 -5
  182. package/dist/astro/routes/api/auth/magic-link/send.mjs +19 -18
  183. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  184. package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -1
  185. package/dist/astro/routes/api/auth/magic-link/verify.mjs +23 -17
  186. package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -1
  187. package/dist/astro/routes/api/auth/me.mjs +15 -15
  188. package/dist/astro/routes/api/auth/mode.mjs +5 -5
  189. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +8 -8
  190. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  191. package/dist/astro/routes/api/auth/passkey/_id_.mjs +14 -14
  192. package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
  193. package/dist/astro/routes/api/auth/passkey/options.d.mts.map +1 -1
  194. package/dist/astro/routes/api/auth/passkey/options.mjs +27 -20
  195. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  196. package/dist/astro/routes/api/auth/passkey/register/options.mjs +17 -17
  197. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +18 -18
  198. package/dist/astro/routes/api/auth/passkey/verify.mjs +19 -19
  199. package/dist/astro/routes/api/auth/signup/complete.mjs +19 -19
  200. package/dist/astro/routes/api/auth/signup/request.mjs +18 -17
  201. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  202. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  203. package/dist/astro/routes/api/calendar.mjs +15 -15
  204. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +12 -12
  205. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +18 -18
  206. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  207. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts.map +1 -1
  208. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +18 -17
  209. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  210. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +7 -10
  211. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs.map +1 -1
  212. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +20 -17
  213. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
  214. package/dist/astro/routes/api/content/_collection_/_id_/permanent.d.mts.map +1 -1
  215. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +7 -6
  216. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs.map +1 -1
  217. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +11 -11
  218. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +30 -29
  219. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  220. package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts.map +1 -1
  221. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +18 -17
  222. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  223. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +35 -34
  224. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  225. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +35 -34
  226. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  227. package/dist/astro/routes/api/content/_collection_/_id_/restore.d.mts.map +1 -1
  228. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +7 -6
  229. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs.map +1 -1
  230. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  231. package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts.map +1 -1
  232. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +19 -18
  233. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  234. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -1
  235. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +31 -26
  236. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  237. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +5 -5
  238. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts.map +1 -1
  239. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +18 -17
  240. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  241. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  242. package/dist/astro/routes/api/content/_collection_/_id_.mjs +27 -20
  243. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  244. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  245. package/dist/astro/routes/api/content/_collection_/index.mjs +18 -21
  246. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  247. package/dist/astro/routes/api/content/_collection_/trash.mjs +15 -15
  248. package/dist/astro/routes/api/dashboard.d.mts.map +1 -1
  249. package/dist/astro/routes/api/dashboard.mjs +18 -12
  250. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  251. package/dist/astro/routes/api/dev/emails.mjs +5 -5
  252. package/dist/astro/routes/api/dev/scheduled-tasks.d.mts +12 -0
  253. package/dist/astro/routes/api/dev/scheduled-tasks.d.mts.map +1 -0
  254. package/dist/astro/routes/api/dev/scheduled-tasks.mjs +140 -0
  255. package/dist/astro/routes/api/dev/scheduled-tasks.mjs.map +1 -0
  256. package/dist/astro/routes/api/health.mjs +6 -6
  257. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  258. package/dist/astro/routes/api/import/probe.mjs +25 -23
  259. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  260. package/dist/astro/routes/api/import/wordpress/analyze.d.mts.map +1 -1
  261. package/dist/astro/routes/api/import/wordpress/analyze.mjs +7 -20
  262. package/dist/astro/routes/api/import/wordpress/analyze.mjs.map +1 -1
  263. package/dist/astro/routes/api/import/wordpress/execute.d.mts +15 -14
  264. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  265. package/dist/astro/routes/api/import/wordpress/execute.mjs +36 -30
  266. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  267. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  268. package/dist/astro/routes/api/import/wordpress/media.mjs +17 -17
  269. package/dist/astro/routes/api/import/wordpress/prepare.mjs +19 -17
  270. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  271. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts +8 -0
  272. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts.map +1 -1
  273. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs +67 -31
  274. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs.map +1 -1
  275. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  276. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +27 -26
  277. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  278. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  279. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +26 -23
  280. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  281. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  282. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -1
  283. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +63 -35
  284. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  285. package/dist/astro/routes/api/manifest.mjs +9 -6
  286. package/dist/astro/routes/api/manifest.mjs.map +1 -1
  287. package/dist/astro/routes/api/mcp.mjs +135 -101
  288. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  289. package/dist/astro/routes/api/media/_id_/confirm.d.mts.map +1 -1
  290. package/dist/astro/routes/api/media/_id_/confirm.mjs +34 -18
  291. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  292. package/dist/astro/routes/api/media/_id_/replace.mjs +15 -15
  293. package/dist/astro/routes/api/media/_id_/upload.mjs +8 -8
  294. package/dist/astro/routes/api/media/_id_/usage.mjs +31 -30
  295. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  296. package/dist/astro/routes/api/media/_id_.mjs +29 -28
  297. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  298. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
  299. package/dist/astro/routes/api/media/file/_...key_.d.mts.map +1 -1
  300. package/dist/astro/routes/api/media/file/_...key_.mjs +45 -15
  301. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  302. package/dist/astro/routes/api/media/folders/_id_.mjs +16 -16
  303. package/dist/astro/routes/api/media/folders/index.mjs +16 -16
  304. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
  305. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
  306. package/dist/astro/routes/api/media/providers/index.mjs +5 -5
  307. package/dist/astro/routes/api/media/upload-url.mjs +40 -20
  308. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  309. package/dist/astro/routes/api/media.d.mts.map +1 -1
  310. package/dist/astro/routes/api/media.mjs +40 -29
  311. package/dist/astro/routes/api/media.mjs.map +1 -1
  312. package/dist/astro/routes/api/menus/_name_/items/_id_.d.mts.map +1 -1
  313. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +19 -18
  314. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  315. package/dist/astro/routes/api/menus/_name_/items.d.mts.map +1 -1
  316. package/dist/astro/routes/api/menus/_name_/items.mjs +18 -17
  317. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  318. package/dist/astro/routes/api/menus/_name_/reorder.d.mts.map +1 -1
  319. package/dist/astro/routes/api/menus/_name_/reorder.mjs +18 -17
  320. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  321. package/dist/astro/routes/api/menus/_name_/translations.d.mts.map +1 -1
  322. package/dist/astro/routes/api/menus/_name_/translations.mjs +18 -17
  323. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  324. package/dist/astro/routes/api/menus/_name_.d.mts.map +1 -1
  325. package/dist/astro/routes/api/menus/_name_.mjs +19 -18
  326. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  327. package/dist/astro/routes/api/menus/index.d.mts.map +1 -1
  328. package/dist/astro/routes/api/menus/index.mjs +18 -17
  329. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  330. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  331. package/dist/astro/routes/api/oauth/device/authorize.mjs +8 -8
  332. package/dist/astro/routes/api/oauth/device/code.mjs +12 -11
  333. package/dist/astro/routes/api/oauth/device/code.mjs.map +1 -1
  334. package/dist/astro/routes/api/oauth/device/token.mjs +11 -10
  335. package/dist/astro/routes/api/oauth/device/token.mjs.map +1 -1
  336. package/dist/astro/routes/api/oauth/register.mjs +8 -7
  337. package/dist/astro/routes/api/oauth/register.mjs.map +1 -1
  338. package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
  339. package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
  340. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  341. package/dist/astro/routes/api/openapi.json.mjs +22 -22
  342. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  343. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +11 -11
  344. package/dist/astro/routes/api/redirects/404s/index.mjs +19 -19
  345. package/dist/astro/routes/api/redirects/404s/summary.mjs +19 -19
  346. package/dist/astro/routes/api/redirects/_id_.d.mts.map +1 -1
  347. package/dist/astro/routes/api/redirects/_id_.mjs +32 -23
  348. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  349. package/dist/astro/routes/api/redirects/index.d.mts.map +1 -1
  350. package/dist/astro/routes/api/redirects/index.mjs +24 -21
  351. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  352. package/dist/astro/routes/api/relations/_id_/index.mjs +35 -34
  353. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  354. package/dist/astro/routes/api/relations/index.mjs +35 -34
  355. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  356. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
  357. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +16 -16
  358. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +71 -69
  359. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  360. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +71 -69
  361. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  362. package/dist/astro/routes/api/schema/block-types/index.mjs +71 -69
  363. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  364. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +71 -69
  365. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  366. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +71 -69
  367. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  368. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +71 -69
  369. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  370. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +71 -69
  371. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  372. package/dist/astro/routes/api/schema/collections/index.mjs +71 -69
  373. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  374. package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -69
  375. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  376. package/dist/astro/routes/api/schema/index.mjs +17 -16
  377. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  378. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -69
  379. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  380. package/dist/astro/routes/api/schema/orphans/index.mjs +71 -69
  381. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  382. package/dist/astro/routes/api/search/enable.mjs +19 -18
  383. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  384. package/dist/astro/routes/api/search/index.mjs +18 -17
  385. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  386. package/dist/astro/routes/api/search/rebuild.mjs +19 -18
  387. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  388. package/dist/astro/routes/api/search/stats.mjs +9 -8
  389. package/dist/astro/routes/api/search/stats.mjs.map +1 -1
  390. package/dist/astro/routes/api/search/suggest.mjs +18 -17
  391. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  392. package/dist/astro/routes/api/sections/_slug_.mjs +18 -17
  393. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  394. package/dist/astro/routes/api/sections/index.mjs +18 -17
  395. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  396. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  397. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  398. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  399. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  400. package/dist/astro/routes/api/settings/domain-notify.d.mts +8 -0
  401. package/dist/astro/routes/api/settings/domain-notify.d.mts.map +1 -0
  402. package/dist/astro/routes/api/settings/domain-notify.mjs +125 -0
  403. package/dist/astro/routes/api/settings/domain-notify.mjs.map +1 -0
  404. package/dist/astro/routes/api/settings/domain.d.mts +9 -0
  405. package/dist/astro/routes/api/settings/domain.d.mts.map +1 -0
  406. package/dist/astro/routes/api/settings/domain.mjs +64 -0
  407. package/dist/astro/routes/api/settings/domain.mjs.map +1 -0
  408. package/dist/astro/routes/api/settings/email.mjs +6 -6
  409. package/dist/astro/routes/api/settings.d.mts.map +1 -1
  410. package/dist/astro/routes/api/settings.mjs +23 -20
  411. package/dist/astro/routes/api/settings.mjs.map +1 -1
  412. package/dist/astro/routes/api/setup/admin-verify.d.mts.map +1 -1
  413. package/dist/astro/routes/api/setup/admin-verify.mjs +25 -21
  414. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  415. package/dist/astro/routes/api/setup/admin.mjs +18 -18
  416. package/dist/astro/routes/api/setup/dev-bypass.mjs +43 -41
  417. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  418. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  419. package/dist/astro/routes/api/setup/index.d.mts.map +1 -1
  420. package/dist/astro/routes/api/setup/index.mjs +53 -47
  421. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  422. package/dist/astro/routes/api/setup/status.mjs +6 -6
  423. package/dist/astro/routes/api/site/domain-proof.d.mts +8 -0
  424. package/dist/astro/routes/api/site/domain-proof.d.mts.map +1 -0
  425. package/dist/astro/routes/api/site/domain-proof.mjs +35 -0
  426. package/dist/astro/routes/api/site/domain-proof.mjs.map +1 -0
  427. package/dist/astro/routes/api/snapshot.mjs +8 -8
  428. package/dist/astro/routes/api/taxonomies/_name_/reorder.d.mts.map +1 -1
  429. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +24 -22
  430. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  431. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.d.mts.map +1 -1
  432. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +24 -22
  433. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  434. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.d.mts.map +1 -1
  435. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -23
  436. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  437. package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts.map +1 -1
  438. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +24 -22
  439. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  440. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +22 -21
  441. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  442. package/dist/astro/routes/api/taxonomies/_name_.d.mts.map +1 -1
  443. package/dist/astro/routes/api/taxonomies/_name_.mjs +25 -23
  444. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  445. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +35 -34
  446. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
  447. package/dist/astro/routes/api/taxonomies/index.d.mts.map +1 -1
  448. package/dist/astro/routes/api/taxonomies/index.mjs +24 -22
  449. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  450. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  451. package/dist/astro/routes/api/typegen.mjs +6 -6
  452. package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
  453. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +18 -18
  454. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
  455. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  456. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  457. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  458. package/dist/astro/routes/api/widget-areas/_name_/reorder.d.mts.map +1 -1
  459. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +17 -16
  460. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  461. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts.map +1 -1
  462. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +21 -19
  463. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  464. package/dist/astro/routes/api/widget-areas/_name_/widgets.d.mts.map +1 -1
  465. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +20 -18
  466. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  467. package/dist/astro/routes/api/widget-areas/_name_.d.mts.map +1 -1
  468. package/dist/astro/routes/api/widget-areas/_name_.mjs +10 -8
  469. package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
  470. package/dist/astro/routes/api/widget-areas/index.d.mts.map +1 -1
  471. package/dist/astro/routes/api/widget-areas/index.mjs +20 -18
  472. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  473. package/dist/astro/routes/api/widget-components.mjs +5 -5
  474. package/dist/astro/routes/robots.txt.d.mts.map +1 -1
  475. package/dist/astro/routes/robots.txt.mjs +38 -5
  476. package/dist/astro/routes/robots.txt.mjs.map +1 -1
  477. package/dist/astro/routes/sitemap-_collection_.xml.d.mts.map +1 -1
  478. package/dist/astro/routes/sitemap-_collection_.xml.mjs +33 -11
  479. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  480. package/dist/astro/routes/sitemap.xml.d.mts.map +1 -1
  481. package/dist/astro/routes/sitemap.xml.mjs +17 -11
  482. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  483. package/dist/astro/types.d.mts +32 -18
  484. package/dist/astro/types.d.mts.map +1 -1
  485. package/dist/audit-_gieLVGU.mjs +127 -0
  486. package/dist/audit-_gieLVGU.mjs.map +1 -0
  487. package/dist/auth/providers/github.d.mts +1 -1
  488. package/dist/auth/providers/google.d.mts +1 -1
  489. package/dist/auth/providers/microsoft.d.mts +1 -1
  490. package/dist/authoritative-records-CQlB3JzE.mjs +5183 -0
  491. package/dist/authoritative-records-CQlB3JzE.mjs.map +1 -0
  492. package/dist/authorize-DPFBGbE6.mjs +74 -0
  493. package/dist/authorize-DPFBGbE6.mjs.map +1 -0
  494. package/dist/backup-3FgVxiDJ.mjs +246 -0
  495. package/dist/backup-3FgVxiDJ.mjs.map +1 -0
  496. package/dist/block-types-CYcG56JB.mjs +132 -0
  497. package/dist/block-types-CYcG56JB.mjs.map +1 -0
  498. package/dist/block-values-gCX4HBSl.mjs +215 -0
  499. package/dist/block-values-gCX4HBSl.mjs.map +1 -0
  500. package/dist/byline-BR1qhyiw.mjs +909 -0
  501. package/dist/byline-BR1qhyiw.mjs.map +1 -0
  502. package/dist/byline-fields-4ClDC88c.mjs +123 -0
  503. package/dist/byline-fields-4ClDC88c.mjs.map +1 -0
  504. package/dist/byline-fields-BLXZnX7N.mjs +280 -0
  505. package/dist/byline-fields-BLXZnX7N.mjs.map +1 -0
  506. package/dist/bylines-CVOvRUL7.mjs +234 -0
  507. package/dist/bylines-CVOvRUL7.mjs.map +1 -0
  508. package/dist/bylines-DxOs9B7z.mjs +150 -0
  509. package/dist/bylines-DxOs9B7z.mjs.map +1 -0
  510. package/dist/cache-CEU9wo_h.mjs +151 -0
  511. package/dist/cache-CEU9wo_h.mjs.map +1 -0
  512. package/dist/canonical-BudtH-Fx.mjs +174 -0
  513. package/dist/canonical-BudtH-Fx.mjs.map +1 -0
  514. package/dist/capture-triggers-CT6dK9zd.mjs +362 -0
  515. package/dist/capture-triggers-CT6dK9zd.mjs.map +1 -0
  516. package/dist/challenge-store-C17BYx2-.mjs +51 -0
  517. package/dist/challenge-store-C17BYx2-.mjs.map +1 -0
  518. package/dist/checksum-CEqvfxGX.mjs +162 -0
  519. package/dist/checksum-CEqvfxGX.mjs.map +1 -0
  520. package/dist/chunks-xC4UD5-S.mjs +25 -0
  521. package/dist/chunks-xC4UD5-S.mjs.map +1 -0
  522. package/dist/cli/index.mjs +134 -118
  523. package/dist/cli/index.mjs.map +1 -1
  524. package/dist/client/cf-access.d.mts +1 -1
  525. package/dist/client/index.d.mts +122 -122
  526. package/dist/client/index.d.mts.map +1 -1
  527. package/dist/client/index.mjs +12 -10
  528. package/dist/client/index.mjs.map +1 -1
  529. package/dist/collection-slugs-cache-e09QeJQt.mjs +85 -0
  530. package/dist/collection-slugs-cache-e09QeJQt.mjs.map +1 -0
  531. package/dist/comment-UvIWDKcW.mjs +325 -0
  532. package/dist/comment-UvIWDKcW.mjs.map +1 -0
  533. package/dist/comment-reaction-dGp6_FRo.mjs +85 -0
  534. package/dist/comment-reaction-dGp6_FRo.mjs.map +1 -0
  535. package/dist/comments-pej-_BUO.mjs +195 -0
  536. package/dist/comments-pej-_BUO.mjs.map +1 -0
  537. package/dist/comments-yiRFx3w5.mjs +99 -0
  538. package/dist/comments-yiRFx3w5.mjs.map +1 -0
  539. package/dist/components-Brp__9xo.mjs +112 -0
  540. package/dist/components-Brp__9xo.mjs.map +1 -0
  541. package/dist/config-Bsm_u_oE.d.mts +6799 -0
  542. package/dist/config-Bsm_u_oE.d.mts.map +1 -0
  543. package/dist/config-CFMojMFK.d.mts +39 -0
  544. package/dist/config-CFMojMFK.d.mts.map +1 -0
  545. package/dist/config-DBU6iUQB.mjs +228 -0
  546. package/dist/config-DBU6iUQB.mjs.map +1 -0
  547. package/dist/connection-BtEN_lP9.mjs +36 -0
  548. package/dist/connection-BtEN_lP9.mjs.map +1 -0
  549. package/dist/content-DQSRZTVw.mjs +2075 -0
  550. package/dist/content-DQSRZTVw.mjs.map +1 -0
  551. package/dist/content-list-query-CYKcY6Vi.d.mts +26 -0
  552. package/dist/content-list-query-CYKcY6Vi.d.mts.map +1 -0
  553. package/dist/content-repair-DNh5--x5.mjs +442 -0
  554. package/dist/content-repair-DNh5--x5.mjs.map +1 -0
  555. package/dist/context-BYptmCN0.mjs +2090 -0
  556. package/dist/context-BYptmCN0.mjs.map +1 -0
  557. package/dist/credits-B9iORdWB.mjs +110 -0
  558. package/dist/credits-B9iORdWB.mjs.map +1 -0
  559. package/dist/cron-D7obTIfk.mjs +306 -0
  560. package/dist/cron-D7obTIfk.mjs.map +1 -0
  561. package/dist/dashboard-D0jcgBD7.mjs +167 -0
  562. package/dist/dashboard-D0jcgBD7.mjs.map +1 -0
  563. package/dist/database/migration-lock.d.mts +17 -4
  564. package/dist/database/migration-lock.d.mts.map +1 -1
  565. package/dist/database/migration-lock.mjs +32 -5
  566. package/dist/database/migration-lock.mjs.map +1 -1
  567. package/dist/db/index.d.mts +3 -3
  568. package/dist/db/index.mjs +1 -1
  569. package/dist/db/libsql-migrations.d.mts +1 -1
  570. package/dist/db/libsql-migrations.mjs +4 -4
  571. package/dist/db/libsql.d.mts +1 -1
  572. package/dist/db/postgres-migrations.d.mts +1 -1
  573. package/dist/db/postgres-migrations.mjs +4 -4
  574. package/dist/db/postgres.d.mts +1 -1
  575. package/dist/db/sqlite-migrations.d.mts +1 -1
  576. package/dist/db/sqlite-migrations.mjs +4 -4
  577. package/dist/db/sqlite.d.mts +1 -1
  578. package/dist/db/sqlite.mjs +1 -1
  579. package/dist/default-C0W-PhAp.mjs +81 -0
  580. package/dist/default-C0W-PhAp.mjs.map +1 -0
  581. package/dist/deferred-tasks-ZvUECSzI.d.mts +9 -0
  582. package/dist/deferred-tasks-ZvUECSzI.d.mts.map +1 -0
  583. package/dist/dev-typegen-EBni_pOQ.mjs +29 -0
  584. package/dist/dev-typegen-EBni_pOQ.mjs.map +1 -0
  585. package/dist/device-flow-BkFKBoAn.mjs +521 -0
  586. package/dist/device-flow-BkFKBoAn.mjs.map +1 -0
  587. package/dist/digest-DJ1tHCgy.mjs +194 -0
  588. package/dist/digest-DJ1tHCgy.mjs.map +1 -0
  589. package/dist/direct-executor-Cbxzg4qe.mjs +117 -0
  590. package/dist/direct-executor-Cbxzg4qe.mjs.map +1 -0
  591. package/dist/email-console-FFVJWb9N.mjs +50 -0
  592. package/dist/email-console-FFVJWb9N.mjs.map +1 -0
  593. package/dist/email-locale-BJ8DjTzZ.mjs +25 -0
  594. package/dist/email-locale-BJ8DjTzZ.mjs.map +1 -0
  595. package/dist/emdash-runtime-DVi7vtXC.mjs +4379 -0
  596. package/dist/emdash-runtime-DVi7vtXC.mjs.map +1 -0
  597. package/dist/entry-lock-C7VX0NGK.d.mts +4568 -0
  598. package/dist/entry-lock-C7VX0NGK.d.mts.map +1 -0
  599. package/dist/entry-lock-DLxCffFW.mjs +163 -0
  600. package/dist/entry-lock-DLxCffFW.mjs.map +1 -0
  601. package/dist/entry-lock-Df6-XhIu.mjs +1211 -0
  602. package/dist/entry-lock-Df6-XhIu.mjs.map +1 -0
  603. package/dist/env-types-C3FCVBWe.mjs +38 -0
  604. package/dist/env-types-C3FCVBWe.mjs.map +1 -0
  605. package/dist/error-CVWeIOku.mjs +90 -0
  606. package/dist/error-CVWeIOku.mjs.map +1 -0
  607. package/dist/errors-B4f4It-2.mjs +120 -0
  608. package/dist/errors-B4f4It-2.mjs.map +1 -0
  609. package/dist/errors-BOYNdIo3.mjs +479 -0
  610. package/dist/errors-BOYNdIo3.mjs.map +1 -0
  611. package/dist/escape-lsNq38PP.mjs +9 -0
  612. package/dist/escape-lsNq38PP.mjs.map +1 -0
  613. package/dist/fence-C3MUitUN.mjs +162 -0
  614. package/dist/fence-C3MUitUN.mjs.map +1 -0
  615. package/dist/field-defs-cache-Dez5iWJJ.mjs +77 -0
  616. package/dist/field-defs-cache-Dez5iWJJ.mjs.map +1 -0
  617. package/dist/field-map-Bft9LKak.mjs +83 -0
  618. package/dist/field-map-Bft9LKak.mjs.map +1 -0
  619. package/dist/fts-manager-Beg3e4bI.mjs +443 -0
  620. package/dist/fts-manager-Beg3e4bI.mjs.map +1 -0
  621. package/dist/gc-ByyAYiYE.mjs +75 -0
  622. package/dist/gc-ByyAYiYE.mjs.map +1 -0
  623. package/dist/hash-BJaeek87.mjs +37 -0
  624. package/dist/hash-BJaeek87.mjs.map +1 -0
  625. package/dist/hook-result-BrdLyOdI.d.mts +31 -0
  626. package/dist/hook-result-BrdLyOdI.d.mts.map +1 -0
  627. package/dist/hreflang-C8Jb-hrf.mjs +105 -0
  628. package/dist/hreflang-C8Jb-hrf.mjs.map +1 -0
  629. package/dist/hreflang-CY_F5OjF.d.mts +50 -0
  630. package/dist/hreflang-CY_F5OjF.d.mts.map +1 -0
  631. package/dist/http-route-dispatch-CyeW6iPv.mjs +342 -0
  632. package/dist/http-route-dispatch-CyeW6iPv.mjs.map +1 -0
  633. package/dist/identity-Cael5uTT.mjs +35 -0
  634. package/dist/identity-Cael5uTT.mjs.map +1 -0
  635. package/dist/import-BUXjdZUn.mjs +2126 -0
  636. package/dist/import-BUXjdZUn.mjs.map +1 -0
  637. package/dist/index-BB9sVisO.d.mts +623 -0
  638. package/dist/index-BB9sVisO.d.mts.map +1 -0
  639. package/dist/index.d.mts +24 -24
  640. package/dist/index.mjs +97 -95
  641. package/dist/install-finalization-3JX5qQEA.mjs +58 -0
  642. package/dist/install-finalization-3JX5qQEA.mjs.map +1 -0
  643. package/dist/json-recordset-BUjxhr77.mjs +12 -0
  644. package/dist/json-recordset-BUjxhr77.mjs.map +1 -0
  645. package/dist/json-schema-v_D_pPNG.mjs +15 -0
  646. package/dist/json-schema-v_D_pPNG.mjs.map +1 -0
  647. package/dist/keys-CifIkT0N.mjs +61 -0
  648. package/dist/keys-CifIkT0N.mjs.map +1 -0
  649. package/dist/kinds-B_Qcl5pz.mjs +974 -0
  650. package/dist/kinds-B_Qcl5pz.mjs.map +1 -0
  651. package/dist/lifecycle-7vUJeFRe.mjs +25 -0
  652. package/dist/lifecycle-7vUJeFRe.mjs.map +1 -0
  653. package/dist/load-CdAG9wz-.mjs +28 -0
  654. package/dist/load-CdAG9wz-.mjs.map +1 -0
  655. package/dist/loader-CswroUbe.mjs +1380 -0
  656. package/dist/loader-CswroUbe.mjs.map +1 -0
  657. package/dist/loops-uA4iTOzd.mjs +205 -0
  658. package/dist/loops-uA4iTOzd.mjs.map +1 -0
  659. package/dist/manifest-builder-B8zjuH3f.mjs +189 -0
  660. package/dist/manifest-builder-B8zjuH3f.mjs.map +1 -0
  661. package/dist/manifest-schema-DNb4XmTS.mjs +497 -0
  662. package/dist/manifest-schema-DNb4XmTS.mjs.map +1 -0
  663. package/dist/marketplace-CqbgeIa7.mjs +257 -0
  664. package/dist/marketplace-CqbgeIa7.mjs.map +1 -0
  665. package/dist/media/image-endpoint.d.mts +26 -2
  666. package/dist/media/image-endpoint.d.mts.map +1 -1
  667. package/dist/media/image-endpoint.mjs +73 -3
  668. package/dist/media/image-endpoint.mjs.map +1 -1
  669. package/dist/media/index.d.mts +1 -1
  670. package/dist/media/local-runtime.d.mts +14 -14
  671. package/dist/media/local-runtime.mjs +10 -5
  672. package/dist/media/local-runtime.mjs.map +1 -1
  673. package/dist/media--dJRU6i2.mjs +294 -0
  674. package/dist/media--dJRU6i2.mjs.map +1 -0
  675. package/dist/media-1WC65OCB.mjs +416 -0
  676. package/dist/media-1WC65OCB.mjs.map +1 -0
  677. package/dist/media-Bws9f18T.mjs +373 -0
  678. package/dist/media-Bws9f18T.mjs.map +1 -0
  679. package/dist/media-allowlist-BJB7MFx6.mjs +45 -0
  680. package/dist/media-allowlist-BJB7MFx6.mjs.map +1 -0
  681. package/dist/media-folders-Dn3C16B8.mjs +210 -0
  682. package/dist/media-folders-Dn3C16B8.mjs.map +1 -0
  683. package/dist/media-url-BQgKvpQ5.mjs +43 -0
  684. package/dist/media-url-BQgKvpQ5.mjs.map +1 -0
  685. package/dist/media-usage-CF0WVcLO.mjs +282 -0
  686. package/dist/media-usage-CF0WVcLO.mjs.map +1 -0
  687. package/dist/media-usage-activation-C9HwVw5w.mjs +78 -0
  688. package/dist/media-usage-activation-C9HwVw5w.mjs.map +1 -0
  689. package/dist/media-usage-work-CkLa5-nc.mjs +1036 -0
  690. package/dist/media-usage-work-CkLa5-nc.mjs.map +1 -0
  691. package/dist/media-usage-work-m3AWTmmC.mjs +151 -0
  692. package/dist/media-usage-work-m3AWTmmC.mjs.map +1 -0
  693. package/dist/menus-BCVSSp1z.mjs +753 -0
  694. package/dist/menus-BCVSSp1z.mjs.map +1 -0
  695. package/dist/menus-BSzwObhV.mjs +92 -0
  696. package/dist/menus-BSzwObhV.mjs.map +1 -0
  697. package/dist/menus-Cl4kwdt7.mjs +3721 -0
  698. package/dist/menus-Cl4kwdt7.mjs.map +1 -0
  699. package/dist/migrations/index.d.mts +1 -1
  700. package/dist/migrations/index.d.mts.map +1 -1
  701. package/dist/migrations/index.mjs +3 -3
  702. package/dist/mode-C-D3qICy.mjs +23 -0
  703. package/dist/mode-C-D3qICy.mjs.map +1 -0
  704. package/dist/node-sqlite-compat-CrKzRr0J.mjs +63 -0
  705. package/dist/node-sqlite-compat-CrKzRr0J.mjs.map +1 -0
  706. package/dist/oauth-authorization-TpEJrYB7.mjs +274 -0
  707. package/dist/oauth-authorization-TpEJrYB7.mjs.map +1 -0
  708. package/dist/oauth-clients-BT0Pg-MO.mjs +266 -0
  709. package/dist/oauth-clients-BT0Pg-MO.mjs.map +1 -0
  710. package/dist/oauth-state-store-CHMn_mwc.mjs +50 -0
  711. package/dist/oauth-state-store-CHMn_mwc.mjs.map +1 -0
  712. package/dist/oauth-user-lookup-BDgF6IVG.mjs +26 -0
  713. package/dist/oauth-user-lookup-BDgF6IVG.mjs.map +1 -0
  714. package/dist/object-cache/memory.d.mts +1 -1
  715. package/dist/options-DJWaq3Ie.d.mts +81 -0
  716. package/dist/options-DJWaq3Ie.d.mts.map +1 -0
  717. package/dist/ownership-MiyA7qKO.mjs +12 -0
  718. package/dist/ownership-MiyA7qKO.mjs.map +1 -0
  719. package/dist/page/index.d.mts +2 -2
  720. package/dist/page/index.mjs +9 -4
  721. package/dist/page/index.mjs.map +1 -1
  722. package/dist/parse-CWHOFc6z.d.mts +176 -0
  723. package/dist/parse-CWHOFc6z.d.mts.map +1 -0
  724. package/dist/parse-DgQ2NABT.mjs +81 -0
  725. package/dist/parse-DgQ2NABT.mjs.map +1 -0
  726. package/dist/passkey-config-D0kdzEao.mjs +46 -0
  727. package/dist/passkey-config-D0kdzEao.mjs.map +1 -0
  728. package/dist/paths-biDzFTY2.mjs +77 -0
  729. package/dist/paths-biDzFTY2.mjs.map +1 -0
  730. package/dist/patterns-CMNnYCgf.mjs +159 -0
  731. package/dist/patterns-CMNnYCgf.mjs.map +1 -0
  732. package/dist/placeholder-D41vk11_.d.mts +306 -0
  733. package/dist/placeholder-D41vk11_.d.mts.map +1 -0
  734. package/dist/plan-CCoqxNoU.mjs +135 -0
  735. package/dist/plan-CCoqxNoU.mjs.map +1 -0
  736. package/dist/plugin-test-runtime.d.mts +14 -14
  737. package/dist/plugin-test-runtime.d.mts.map +1 -1
  738. package/dist/plugin-test-runtime.mjs +110 -108
  739. package/dist/plugin-tool-name-DDUgN_0p.mjs +27 -0
  740. package/dist/plugin-tool-name-DDUgN_0p.mjs.map +1 -0
  741. package/dist/plugin-types.d.mts +2 -2
  742. package/dist/plugin-utils.d.mts +12 -12
  743. package/dist/plugin-utils.mjs +1 -1
  744. package/dist/plugin-utils.mjs.map +1 -1
  745. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  746. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  747. package/dist/plugins/adapt-sandbox-entry.mjs +9 -8
  748. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  749. package/dist/plugins/host.d.mts +5 -5
  750. package/dist/plugins/host.mjs +46 -42
  751. package/dist/plugins-COJ2L49n.mjs +261 -0
  752. package/dist/plugins-COJ2L49n.mjs.map +1 -0
  753. package/dist/policy-DLQ--Hnm.mjs +45 -0
  754. package/dist/policy-DLQ--Hnm.mjs.map +1 -0
  755. package/dist/portable-text-BH4zgkSm.mjs +311 -0
  756. package/dist/portable-text-BH4zgkSm.mjs.map +1 -0
  757. package/dist/preview-DLexxwp3.mjs +107 -0
  758. package/dist/preview-DLexxwp3.mjs.map +1 -0
  759. package/dist/protocol-79kUO7jP.d.mts +65 -0
  760. package/dist/protocol-79kUO7jP.d.mts.map +1 -0
  761. package/dist/public-plugin-api-routes-BuAMJ8nN.mjs +316 -0
  762. package/dist/public-plugin-api-routes-BuAMJ8nN.mjs.map +1 -0
  763. package/dist/public-submission-Di3TsgzX.mjs +251 -0
  764. package/dist/public-submission-Di3TsgzX.mjs.map +1 -0
  765. package/dist/public-url-Bt98vysr.mjs +101 -0
  766. package/dist/public-url-Bt98vysr.mjs.map +1 -0
  767. package/dist/query-CpnRlBh8.mjs +1156 -0
  768. package/dist/query-CpnRlBh8.mjs.map +1 -0
  769. package/dist/query-haKvLAWl.mjs +41 -0
  770. package/dist/query-haKvLAWl.mjs.map +1 -0
  771. package/dist/range-CYfeXgGK.mjs +51 -0
  772. package/dist/range-CYfeXgGK.mjs.map +1 -0
  773. package/dist/rate-limit-Xp4d0NBY.mjs +127 -0
  774. package/dist/rate-limit-Xp4d0NBY.mjs.map +1 -0
  775. package/dist/receipt-BUsQCOeM.mjs +43 -0
  776. package/dist/receipt-BUsQCOeM.mjs.map +1 -0
  777. package/dist/redirect-CQAV7mCo.mjs +19 -0
  778. package/dist/redirect-CQAV7mCo.mjs.map +1 -0
  779. package/dist/redirect-DiS_3mA4.mjs +423 -0
  780. package/dist/redirect-DiS_3mA4.mjs.map +1 -0
  781. package/dist/redirect-paths-CNYq7w80.mjs +36 -0
  782. package/dist/redirect-paths-CNYq7w80.mjs.map +1 -0
  783. package/dist/redirects-BEVSRMa2.mjs +148 -0
  784. package/dist/redirects-BEVSRMa2.mjs.map +1 -0
  785. package/dist/redirects-BHpy-VsZ.mjs +446 -0
  786. package/dist/redirects-BHpy-VsZ.mjs.map +1 -0
  787. package/dist/registry/testing.mjs +3 -3
  788. package/dist/registry-TUVaid9Z.mjs +8369 -0
  789. package/dist/registry-TUVaid9Z.mjs.map +1 -0
  790. package/dist/relations-CA_QuMTU.mjs +776 -0
  791. package/dist/relations-CA_QuMTU.mjs.map +1 -0
  792. package/dist/request-context.d.mts +1 -1
  793. package/dist/request-meta-bwZ_NsvU.mjs +141 -0
  794. package/dist/request-meta-bwZ_NsvU.mjs.map +1 -0
  795. package/dist/resolve-DwNM-CXl.mjs +101 -0
  796. package/dist/resolve-DwNM-CXl.mjs.map +1 -0
  797. package/dist/revision-BVp8S0e_.mjs +374 -0
  798. package/dist/revision-BVp8S0e_.mjs.map +1 -0
  799. package/dist/route-cache-QSOyDEw0.mjs +20 -0
  800. package/dist/route-cache-QSOyDEw0.mjs.map +1 -0
  801. package/dist/route-wire-Ca_HWCZ5.mjs +197 -0
  802. package/dist/route-wire-Ca_HWCZ5.mjs.map +1 -0
  803. package/dist/routes-BerZFrvV.mjs +272 -0
  804. package/dist/routes-BerZFrvV.mjs.map +1 -0
  805. package/dist/runner-BObHz5FC.d.mts +68 -0
  806. package/dist/runner-BObHz5FC.d.mts.map +1 -0
  807. package/dist/runner-C5NeAkBQ.mjs +6595 -0
  808. package/dist/runner-C5NeAkBQ.mjs.map +1 -0
  809. package/dist/runtime.d.mts +13 -13
  810. package/dist/runtime.mjs +3 -2
  811. package/dist/runtime.mjs.map +1 -1
  812. package/dist/schema/project-env-types.mjs +40 -36
  813. package/dist/schema/project-env-types.mjs.map +1 -1
  814. package/dist/schema-C4OBuv6Z.mjs +13 -0
  815. package/dist/schema-C4OBuv6Z.mjs.map +1 -0
  816. package/dist/schema-DJRfvM_o.mjs +815 -0
  817. package/dist/schema-DJRfvM_o.mjs.map +1 -0
  818. package/dist/scopes-BU03K7Uo.mjs +34 -0
  819. package/dist/scopes-BU03K7Uo.mjs.map +1 -0
  820. package/dist/search-DfVzks89.mjs +450 -0
  821. package/dist/search-DfVzks89.mjs.map +1 -0
  822. package/dist/sections-BMy4JVUz.mjs +346 -0
  823. package/dist/sections-BMy4JVUz.mjs.map +1 -0
  824. package/dist/seed/index.d.mts +2 -2
  825. package/dist/seed/index.mjs +38 -34
  826. package/dist/seo/index.d.mts +3 -3
  827. package/dist/seo/index.mjs +25 -21
  828. package/dist/seo/index.mjs.map +1 -1
  829. package/dist/seo-ClB-dw9w.mjs +188 -0
  830. package/dist/seo-ClB-dw9w.mjs.map +1 -0
  831. package/dist/seo-VZYOEy8f.mjs +133 -0
  832. package/dist/seo-VZYOEy8f.mjs.map +1 -0
  833. package/dist/service-Bo_usgSk.mjs +150 -0
  834. package/dist/service-Bo_usgSk.mjs.map +1 -0
  835. package/dist/session-user-DlpPdf8L.mjs +61 -0
  836. package/dist/session-user-DlpPdf8L.mjs.map +1 -0
  837. package/dist/settings-CWb84sDm.mjs +452 -0
  838. package/dist/settings-CWb84sDm.mjs.map +1 -0
  839. package/dist/settings-DS914jjE.mjs +66 -0
  840. package/dist/settings-DS914jjE.mjs.map +1 -0
  841. package/dist/settings-Dd1uivmQ.mjs +73 -0
  842. package/dist/settings-Dd1uivmQ.mjs.map +1 -0
  843. package/dist/setup-complete-BuNxAUiN.mjs +65 -0
  844. package/dist/setup-complete-BuNxAUiN.mjs.map +1 -0
  845. package/dist/setup-nonce-BnEAX0iy.mjs +25 -0
  846. package/dist/setup-nonce-BnEAX0iy.mjs.map +1 -0
  847. package/dist/site-domain-Bq5j5bVg.mjs +131 -0
  848. package/dist/site-domain-Bq5j5bVg.mjs.map +1 -0
  849. package/dist/site-settings-DRHfX7bq.mjs +50 -0
  850. package/dist/site-settings-DRHfX7bq.mjs.map +1 -0
  851. package/dist/site-url-MB685I5X.mjs +45 -0
  852. package/dist/site-url-MB685I5X.mjs.map +1 -0
  853. package/dist/sitemap-name-BTg2NJJv.mjs +26 -0
  854. package/dist/sitemap-name-BTg2NJJv.mjs.map +1 -0
  855. package/dist/slug-aVnUV4SL.mjs +16 -0
  856. package/dist/slug-aVnUV4SL.mjs.map +1 -0
  857. package/dist/slugify-bu2-jKia.mjs +22 -0
  858. package/dist/slugify-bu2-jKia.mjs.map +1 -0
  859. package/dist/snapshot-DYsG4uOq.mjs +414 -0
  860. package/dist/snapshot-DYsG4uOq.mjs.map +1 -0
  861. package/dist/ssrf-BcYjyM4M.mjs +406 -0
  862. package/dist/ssrf-BcYjyM4M.mjs.map +1 -0
  863. package/dist/stage-D8DWgPcO.mjs +662 -0
  864. package/dist/stage-D8DWgPcO.mjs.map +1 -0
  865. package/dist/staged-CD_imitH.mjs +686 -0
  866. package/dist/staged-CD_imitH.mjs.map +1 -0
  867. package/dist/state-CFbGZziM.mjs +178 -0
  868. package/dist/state-CFbGZziM.mjs.map +1 -0
  869. package/dist/status-BFNdxzKc.mjs +30 -0
  870. package/dist/status-BFNdxzKc.mjs.map +1 -0
  871. package/dist/storage/local.d.mts +2 -2
  872. package/dist/storage/local.d.mts.map +1 -1
  873. package/dist/storage/local.mjs +12 -5
  874. package/dist/storage/local.mjs.map +1 -1
  875. package/dist/storage/s3.d.mts +4 -2
  876. package/dist/storage/s3.d.mts.map +1 -1
  877. package/dist/storage/s3.mjs +56 -9
  878. package/dist/storage/s3.mjs.map +1 -1
  879. package/dist/storage-query-DRyu3bSU.d.mts +1615 -0
  880. package/dist/storage-query-DRyu3bSU.d.mts.map +1 -0
  881. package/dist/tar-DFjExb9X.mjs +449 -0
  882. package/dist/tar-DFjExb9X.mjs.map +1 -0
  883. package/dist/target-CWZs2-o6.mjs +27 -0
  884. package/dist/target-CWZs2-o6.mjs.map +1 -0
  885. package/dist/taxonomies-ChnU7Mc8.mjs +697 -0
  886. package/dist/taxonomies-ChnU7Mc8.mjs.map +1 -0
  887. package/dist/taxonomies-Dd9JJv_a.mjs +939 -0
  888. package/dist/taxonomies-Dd9JJv_a.mjs.map +1 -0
  889. package/dist/taxonomy-C_C_LBAU.mjs +550 -0
  890. package/dist/taxonomy-C_C_LBAU.mjs.map +1 -0
  891. package/dist/tokens-BnhSnGwJ.mjs +171 -0
  892. package/dist/tokens-BnhSnGwJ.mjs.map +1 -0
  893. package/dist/transfer-ClH6w6BV.mjs +8873 -0
  894. package/dist/transfer-ClH6w6BV.mjs.map +1 -0
  895. package/dist/transfer-WmWiR3xf.mjs +166 -0
  896. package/dist/transfer-WmWiR3xf.mjs.map +1 -0
  897. package/dist/transfer-download--ofRj9Cw.mjs +33 -0
  898. package/dist/transfer-download--ofRj9Cw.mjs.map +1 -0
  899. package/dist/transformations-Bx4lYY0Y.mjs +196 -0
  900. package/dist/transformations-Bx4lYY0Y.mjs.map +1 -0
  901. package/dist/transport-BjbqNiPI.mjs +136 -0
  902. package/dist/transport-BjbqNiPI.mjs.map +1 -0
  903. package/dist/transport-DxiXnbXk.d.mts +42 -0
  904. package/dist/transport-DxiXnbXk.d.mts.map +1 -0
  905. package/dist/trusted-proxy-BU3Nx9g1.mjs +51 -0
  906. package/dist/trusted-proxy-BU3Nx9g1.mjs.map +1 -0
  907. package/dist/turnstile-CJwvsOqw.mjs +58 -0
  908. package/dist/turnstile-CJwvsOqw.mjs.map +1 -0
  909. package/dist/types-BA3ey2QH.d.mts +87 -0
  910. package/dist/types-BA3ey2QH.d.mts.map +1 -0
  911. package/dist/types-Bwpzb5o6.d.mts +227 -0
  912. package/dist/types-Bwpzb5o6.d.mts.map +1 -0
  913. package/dist/types-CNB-dj6F.d.mts +289 -0
  914. package/dist/types-CNB-dj6F.d.mts.map +1 -0
  915. package/dist/types-CgfFGfO5.mjs +16 -0
  916. package/dist/types-CgfFGfO5.mjs.map +1 -0
  917. package/dist/types-D2NEXtgB.mjs +127 -0
  918. package/dist/types-D2NEXtgB.mjs.map +1 -0
  919. package/dist/types-DCFavOii.d.mts +916 -0
  920. package/dist/types-DCFavOii.d.mts.map +1 -0
  921. package/dist/types-DHO7Pd25.d.mts +366 -0
  922. package/dist/types-DHO7Pd25.d.mts.map +1 -0
  923. package/dist/types-DvqVxZXa.d.mts +125 -0
  924. package/dist/types-DvqVxZXa.d.mts.map +1 -0
  925. package/dist/types-QoPHm-2w.d.mts +1741 -0
  926. package/dist/types-QoPHm-2w.d.mts.map +1 -0
  927. package/dist/types-RLgeIpnF.d.mts +374 -0
  928. package/dist/types-RLgeIpnF.d.mts.map +1 -0
  929. package/dist/types-qHVygneX.mjs +77 -0
  930. package/dist/types-qHVygneX.mjs.map +1 -0
  931. package/dist/types-sUHaH7lC.mjs +37 -0
  932. package/dist/types-sUHaH7lC.mjs.map +1 -0
  933. package/dist/types-slSqujQL.d.mts +204 -0
  934. package/dist/types-slSqujQL.d.mts.map +1 -0
  935. package/dist/update-check-BxNg9T6N.mjs +161 -0
  936. package/dist/update-check-BxNg9T6N.mjs.map +1 -0
  937. package/dist/upload-attempts-DPFC4COv.mjs +32 -0
  938. package/dist/upload-attempts-DPFC4COv.mjs.map +1 -0
  939. package/dist/url-pattern-QATUE_rv.mjs +41 -0
  940. package/dist/url-pattern-QATUE_rv.mjs.map +1 -0
  941. package/dist/user-BlCTKVAm.mjs +171 -0
  942. package/dist/user-BlCTKVAm.mjs.map +1 -0
  943. package/dist/utils-TPt7w2cS.mjs +442 -0
  944. package/dist/utils-TPt7w2cS.mjs.map +1 -0
  945. package/dist/validate-DxYhJQA-.mjs +524 -0
  946. package/dist/validate-DxYhJQA-.mjs.map +1 -0
  947. package/dist/validate-emKxGC5F.d.mts +468 -0
  948. package/dist/validate-emKxGC5F.d.mts.map +1 -0
  949. package/dist/validation-Ckq4vsVg.mjs +220 -0
  950. package/dist/validation-Ckq4vsVg.mjs.map +1 -0
  951. package/dist/version-BZj18Q7G.mjs +9 -0
  952. package/dist/version-BZj18Q7G.mjs.map +1 -0
  953. package/dist/version-DHmGpcch.mjs +7 -0
  954. package/dist/version-DHmGpcch.mjs.map +1 -0
  955. package/dist/video-DytCnw3L.mjs +54 -0
  956. package/dist/video-DytCnw3L.mjs.map +1 -0
  957. package/dist/virtual-modules-DO954n7P.mjs +515 -0
  958. package/dist/virtual-modules-DO954n7P.mjs.map +1 -0
  959. package/dist/widgets-DA5XmvVC.mjs +121 -0
  960. package/dist/widgets-DA5XmvVC.mjs.map +1 -0
  961. package/dist/wxr-taxonomies-CrMonejI.d.mts +34 -0
  962. package/dist/wxr-taxonomies-CrMonejI.d.mts.map +1 -0
  963. package/dist/wxr-taxonomies-RgRG0d5e.mjs +453 -0
  964. package/dist/wxr-taxonomies-RgRG0d5e.mjs.map +1 -0
  965. package/dist/zod-generator-D0JKy94C.mjs +424 -0
  966. package/dist/zod-generator-D0JKy94C.mjs.map +1 -0
  967. package/package.json +15 -11
  968. package/src/api/authorize.ts +42 -0
  969. package/src/api/errors.ts +9 -0
  970. package/src/api/handlers/api-tokens.ts +12 -6
  971. package/src/api/handlers/content.ts +57 -8
  972. package/src/api/handlers/dashboard.ts +33 -10
  973. package/src/api/handlers/domain-move-notice.ts +94 -0
  974. package/src/api/handlers/index.ts +2 -0
  975. package/src/api/handlers/manifest.ts +6 -0
  976. package/src/api/handlers/media-usage.ts +2 -1
  977. package/src/api/handlers/media.ts +1 -0
  978. package/src/api/handlers/plugins.ts +1 -0
  979. package/src/api/handlers/revision.ts +6 -2
  980. package/src/api/handlers/seo.ts +155 -59
  981. package/src/api/handlers/settings.ts +31 -1
  982. package/src/api/handlers/site-domain.ts +159 -0
  983. package/src/api/openapi/document.ts +2 -2
  984. package/src/api/public-url.ts +1 -1
  985. package/src/api/schemas/content.ts +20 -0
  986. package/src/api/schemas/media-usage.ts +7 -1
  987. package/src/api/schemas/media.ts +12 -0
  988. package/src/api/schemas/settings.ts +2 -0
  989. package/src/api/site-url.ts +53 -5
  990. package/src/api/types.ts +4 -0
  991. package/src/astro/image-endpoint.ts +46 -4
  992. package/src/astro/integration/admin-locales.ts +168 -0
  993. package/src/astro/integration/dev-env.ts +84 -0
  994. package/src/astro/integration/dev-scheduler-bridge.ts +91 -0
  995. package/src/astro/integration/index.ts +97 -10
  996. package/src/astro/integration/routes.ts +28 -0
  997. package/src/astro/integration/runtime.ts +17 -1
  998. package/src/astro/integration/virtual-modules.ts +9 -16
  999. package/src/astro/integration/vite-config.ts +22 -16
  1000. package/src/astro/middleware/auth.ts +19 -4
  1001. package/src/astro/middleware/csp.ts +1 -0
  1002. package/src/astro/middleware/redirect.ts +94 -50
  1003. package/src/astro/middleware/request-context.ts +12 -6
  1004. package/src/astro/middleware.ts +71 -17
  1005. package/src/astro/prefetch.ts +7 -5
  1006. package/src/astro/public-plugin-api-routes.ts +10 -2
  1007. package/src/astro/routes/api/admin/plugins/registry/artifact.ts +1 -1
  1008. package/src/astro/routes/api/auth/handover.ts +58 -0
  1009. package/src/astro/routes/api/auth/magic-link/verify.ts +11 -3
  1010. package/src/astro/routes/api/auth/passkey/options.ts +10 -2
  1011. package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +2 -1
  1012. package/src/astro/routes/api/content/[collection]/[id]/duplicate.ts +1 -5
  1013. package/src/astro/routes/api/content/[collection]/[id]/lock.ts +2 -2
  1014. package/src/astro/routes/api/content/[collection]/[id]/permanent.ts +2 -1
  1015. package/src/astro/routes/api/content/[collection]/[id]/publish.ts +2 -1
  1016. package/src/astro/routes/api/content/[collection]/[id]/restore.ts +2 -1
  1017. package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +3 -2
  1018. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +5 -4
  1019. package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +2 -1
  1020. package/src/astro/routes/api/content/[collection]/[id].ts +18 -6
  1021. package/src/astro/routes/api/content/[collection]/index.ts +1 -5
  1022. package/src/astro/routes/api/dashboard.ts +4 -1
  1023. package/src/astro/routes/api/dev/scheduled-tasks.ts +20 -0
  1024. package/src/astro/routes/api/import/wordpress/analyze.ts +1 -16
  1025. package/src/astro/routes/api/import/wordpress/execute.ts +27 -3
  1026. package/src/astro/routes/api/import/wordpress/rewrite-url-helpers.ts +80 -42
  1027. package/src/astro/routes/api/import/wordpress-plugin/analyze.ts +4 -1
  1028. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +49 -5
  1029. package/src/astro/routes/api/manifest.ts +10 -0
  1030. package/src/astro/routes/api/media/[id]/confirm.ts +19 -0
  1031. package/src/astro/routes/api/media/file/[...key].ts +60 -12
  1032. package/src/astro/routes/api/media/upload-url.ts +28 -4
  1033. package/src/astro/routes/api/media.ts +15 -0
  1034. package/src/astro/routes/api/menus/[name]/items/[id].ts +3 -2
  1035. package/src/astro/routes/api/menus/[name]/items.ts +2 -1
  1036. package/src/astro/routes/api/menus/[name]/reorder.ts +2 -1
  1037. package/src/astro/routes/api/menus/[name]/translations.ts +2 -1
  1038. package/src/astro/routes/api/menus/[name].ts +3 -2
  1039. package/src/astro/routes/api/menus/index.ts +2 -1
  1040. package/src/astro/routes/api/redirects/[id].ts +15 -2
  1041. package/src/astro/routes/api/redirects/index.ts +5 -1
  1042. package/src/astro/routes/api/schema/index.ts +1 -1
  1043. package/src/astro/routes/api/settings/domain-notify.ts +76 -0
  1044. package/src/astro/routes/api/settings/domain.ts +64 -0
  1045. package/src/astro/routes/api/settings.ts +2 -1
  1046. package/src/astro/routes/api/setup/admin-verify.ts +7 -1
  1047. package/src/astro/routes/api/setup/index.ts +7 -0
  1048. package/src/astro/routes/api/site/domain-proof.ts +28 -0
  1049. package/src/astro/routes/api/taxonomies/[name]/reorder.ts +2 -1
  1050. package/src/astro/routes/api/taxonomies/[name]/terms/[slug]/translations.ts +2 -1
  1051. package/src/astro/routes/api/taxonomies/[name]/terms/[slug].ts +3 -2
  1052. package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +2 -1
  1053. package/src/astro/routes/api/taxonomies/[name].ts +3 -2
  1054. package/src/astro/routes/api/taxonomies/index.ts +2 -1
  1055. package/src/astro/routes/api/widget-areas/[name]/reorder.ts +2 -1
  1056. package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +3 -2
  1057. package/src/astro/routes/api/widget-areas/[name]/widgets.ts +2 -1
  1058. package/src/astro/routes/api/widget-areas/[name].ts +2 -1
  1059. package/src/astro/routes/api/widget-areas/index.ts +2 -1
  1060. package/src/astro/routes/robots.txt.ts +33 -2
  1061. package/src/astro/routes/sitemap-[collection].xml.ts +31 -8
  1062. package/src/astro/routes/sitemap.xml.ts +12 -10
  1063. package/src/astro/types.ts +23 -2
  1064. package/src/auth/rate-limit.ts +18 -13
  1065. package/src/auth/types.ts +11 -4
  1066. package/src/aws-sdk.d.ts +2 -1
  1067. package/src/cache/redirect-paths.ts +56 -0
  1068. package/src/cache/route-cache.ts +22 -0
  1069. package/src/cleanup.ts +26 -0
  1070. package/src/cli/commands/export-seed.ts +2 -0
  1071. package/src/cli/commands/import/wordpress.ts +3 -27
  1072. package/src/cli/commands/login.ts +35 -43
  1073. package/src/cli/commands/migrate.ts +36 -4
  1074. package/src/cli/commands/seed.ts +23 -12
  1075. package/src/cli/wxr/parser.ts +2 -2
  1076. package/src/client/index.ts +18 -3
  1077. package/src/client/portable-text.ts +21 -7
  1078. package/src/comments/public-submission.ts +15 -8
  1079. package/src/comments/query.ts +8 -2
  1080. package/src/components/CommentForm.astro +50 -10
  1081. package/src/components/Comments.astro +51 -29
  1082. package/src/components/EmDashImage.astro +6 -4
  1083. package/src/components/Gallery.astro +4 -3
  1084. package/src/components/Image.astro +4 -3
  1085. package/src/components/InlinePortableTextEditor.tsx +269 -1320
  1086. package/src/components/Video.astro +100 -0
  1087. package/src/components/index.ts +4 -1
  1088. package/src/components/inline-block-types.ts +278 -0
  1089. package/src/components/inline-bubble-menu.tsx +696 -0
  1090. package/src/components/inline-code-block.tsx +8 -0
  1091. package/src/components/inline-editor-ui.tsx +1192 -0
  1092. package/src/components/inline-image.tsx +722 -0
  1093. package/src/components/inline-media-picker.tsx +1221 -0
  1094. package/src/components/inline-slash-menu.tsx +556 -0
  1095. package/src/components/webmcp-search.ts +15 -19
  1096. package/src/components/widgets/RecentPosts.astro +57 -17
  1097. package/src/content/converters/mark-safety.ts +3 -3
  1098. package/src/content/converters/portable-text-identity.ts +1 -0
  1099. package/src/content/converters/portable-text-to-prosemirror.ts +7 -0
  1100. package/src/content/converters/prosemirror-to-portable-text.ts +16 -0
  1101. package/src/content/converters/types.ts +22 -0
  1102. package/src/content/converters/video.ts +77 -0
  1103. package/src/database/collection-cleanup.ts +30 -0
  1104. package/src/database/datetime-storage.ts +337 -60
  1105. package/src/database/migration-lock.ts +43 -7
  1106. package/src/database/migrations/runner.ts +13 -1
  1107. package/src/database/repositories/comment.ts +17 -3
  1108. package/src/database/repositories/content.ts +25 -4
  1109. package/src/database/repositories/plugin-storage.ts +137 -27
  1110. package/src/database/repositories/redirect.ts +24 -2
  1111. package/src/database/repositories/revision.ts +24 -6
  1112. package/src/database/repositories/taxonomy.ts +61 -46
  1113. package/src/database/repositories/types.ts +67 -7
  1114. package/src/emdash-runtime.ts +393 -228
  1115. package/src/import/index.ts +1 -0
  1116. package/src/import/registry.ts +17 -0
  1117. package/src/import/sources/wordpress-plugin.ts +154 -11
  1118. package/src/import/types.ts +3 -0
  1119. package/src/import/utils.ts +7 -3
  1120. package/src/index.ts +3 -0
  1121. package/src/loader.ts +170 -45
  1122. package/src/mcp/json-schema.ts +14 -0
  1123. package/src/mcp/plugin-tool-name.ts +36 -0
  1124. package/src/mcp/server.ts +74 -15
  1125. package/src/media/image-endpoint.ts +101 -1
  1126. package/src/media/responsive.ts +14 -7
  1127. package/src/media/usage/collection-deletion.ts +4 -0
  1128. package/src/media/usage/extractor.ts +19 -2
  1129. package/src/media/usage/types.ts +5 -1
  1130. package/src/migrations/direct-executor.ts +42 -12
  1131. package/src/migrations/protocol.ts +6 -2
  1132. package/src/plugin-utils.ts +1 -1
  1133. package/src/plugins/adapt-sandbox-entry.ts +16 -6
  1134. package/src/plugins/context.ts +3 -7
  1135. package/src/plugins/hooks.ts +1 -1
  1136. package/src/plugins/http-route-dispatch.ts +5 -1
  1137. package/src/plugins/manifest-schema.ts +1 -0
  1138. package/src/plugins/route-error.ts +14 -0
  1139. package/src/plugins/routes.ts +2 -2
  1140. package/src/plugins/state.ts +41 -8
  1141. package/src/plugins/types.ts +6 -0
  1142. package/src/query.ts +59 -10
  1143. package/src/redirects/cache.ts +34 -2
  1144. package/src/redirects/patterns.ts +26 -2
  1145. package/src/schema/block-values.ts +80 -17
  1146. package/src/schema/registry.ts +16 -5
  1147. package/src/schema/slug.ts +19 -0
  1148. package/src/search/query.ts +3 -1
  1149. package/src/search/text-extraction.ts +6 -1
  1150. package/src/seed/apply.ts +32 -8
  1151. package/src/seed/validate.ts +31 -0
  1152. package/src/seo/sitemap-name.ts +22 -0
  1153. package/src/settings/index.ts +20 -0
  1154. package/src/settings/types.ts +2 -0
  1155. package/src/storage/index.ts +2 -0
  1156. package/src/storage/local.ts +10 -2
  1157. package/src/storage/range.ts +54 -0
  1158. package/src/storage/s3.ts +52 -8
  1159. package/src/storage/types.ts +30 -3
  1160. package/src/ui.ts +1 -0
  1161. package/src/utils/slugify.ts +6 -1
  1162. package/src/visual-editing/toolbar.ts +126 -47
  1163. package/src/widgets/components.ts +4 -0
  1164. package/src/widgets/index.ts +74 -82
  1165. package/src/widgets/recent-posts.ts +62 -0
  1166. package/dist/action-token-AgOs1UWD.mjs +0 -26
  1167. package/dist/action-token-AgOs1UWD.mjs.map +0 -1
  1168. package/dist/activation-xomsCMJg.mjs +0 -387
  1169. package/dist/activation-xomsCMJg.mjs.map +0 -1
  1170. package/dist/adapters-DM1oyHIN.d.mts +0 -173
  1171. package/dist/adapters-DM1oyHIN.d.mts.map +0 -1
  1172. package/dist/allowed-origins-CFtudhyw.mjs +0 -116
  1173. package/dist/allowed-origins-CFtudhyw.mjs.map +0 -1
  1174. package/dist/api-CltsXhiX.mjs +0 -4980
  1175. package/dist/api-CltsXhiX.mjs.map +0 -1
  1176. package/dist/api-tokens-P3mAaQgr.mjs +0 -166
  1177. package/dist/api-tokens-P3mAaQgr.mjs.map +0 -1
  1178. package/dist/apply-Q7uvzBWW.mjs +0 -1680
  1179. package/dist/apply-Q7uvzBWW.mjs.map +0 -1
  1180. package/dist/approvals-DycwI6lZ.mjs +0 -460
  1181. package/dist/approvals-DycwI6lZ.mjs.map +0 -1
  1182. package/dist/artifact-fetch-CWxyELVI.mjs +0 -659
  1183. package/dist/artifact-fetch-CWxyELVI.mjs.map +0 -1
  1184. package/dist/artifacts-UzWbysb8.mjs +0 -307
  1185. package/dist/artifacts-UzWbysb8.mjs.map +0 -1
  1186. package/dist/audit-CCH3MA4Y.mjs +0 -127
  1187. package/dist/audit-CCH3MA4Y.mjs.map +0 -1
  1188. package/dist/authoritative-records-dSvXCfzb.mjs +0 -5172
  1189. package/dist/authoritative-records-dSvXCfzb.mjs.map +0 -1
  1190. package/dist/authorize-DeWfk--K.mjs +0 -49
  1191. package/dist/authorize-DeWfk--K.mjs.map +0 -1
  1192. package/dist/backup-CFnbdTSJ.mjs +0 -246
  1193. package/dist/backup-CFnbdTSJ.mjs.map +0 -1
  1194. package/dist/block-types-C0YFSfR7.mjs +0 -132
  1195. package/dist/block-types-C0YFSfR7.mjs.map +0 -1
  1196. package/dist/block-values-H4E0XwE8.mjs +0 -175
  1197. package/dist/block-values-H4E0XwE8.mjs.map +0 -1
  1198. package/dist/byline-BhVslYLz.mjs +0 -909
  1199. package/dist/byline-BhVslYLz.mjs.map +0 -1
  1200. package/dist/byline-fields-DHJs0Mja.mjs +0 -280
  1201. package/dist/byline-fields-DHJs0Mja.mjs.map +0 -1
  1202. package/dist/byline-fields-xdxE9kxZ.mjs +0 -123
  1203. package/dist/byline-fields-xdxE9kxZ.mjs.map +0 -1
  1204. package/dist/bylines-B_nN9liM.mjs +0 -234
  1205. package/dist/bylines-B_nN9liM.mjs.map +0 -1
  1206. package/dist/bylines-C71YACkL.mjs +0 -150
  1207. package/dist/bylines-C71YACkL.mjs.map +0 -1
  1208. package/dist/cache-aTYCL9nK.mjs +0 -133
  1209. package/dist/cache-aTYCL9nK.mjs.map +0 -1
  1210. package/dist/canonical-Y1dpjCnp.mjs +0 -174
  1211. package/dist/canonical-Y1dpjCnp.mjs.map +0 -1
  1212. package/dist/capture-triggers-C9JKoIdT.mjs +0 -362
  1213. package/dist/capture-triggers-C9JKoIdT.mjs.map +0 -1
  1214. package/dist/challenge-store-CxZxPqaw.mjs +0 -51
  1215. package/dist/challenge-store-CxZxPqaw.mjs.map +0 -1
  1216. package/dist/checksum-DtH6m5uk.mjs +0 -162
  1217. package/dist/checksum-DtH6m5uk.mjs.map +0 -1
  1218. package/dist/chunks-zlGB5IQP.mjs +0 -25
  1219. package/dist/chunks-zlGB5IQP.mjs.map +0 -1
  1220. package/dist/collection-slugs-cache-B2Gs9Jwx.mjs +0 -85
  1221. package/dist/collection-slugs-cache-B2Gs9Jwx.mjs.map +0 -1
  1222. package/dist/comment-Bu08Wvr3.mjs +0 -313
  1223. package/dist/comment-Bu08Wvr3.mjs.map +0 -1
  1224. package/dist/comment-reaction-B8SfT-yM.mjs +0 -85
  1225. package/dist/comment-reaction-B8SfT-yM.mjs.map +0 -1
  1226. package/dist/comments-BRtp992B.mjs +0 -99
  1227. package/dist/comments-BRtp992B.mjs.map +0 -1
  1228. package/dist/comments-DVUYqdyC.mjs +0 -195
  1229. package/dist/comments-DVUYqdyC.mjs.map +0 -1
  1230. package/dist/components-CQY-Sgm-.mjs +0 -108
  1231. package/dist/components-CQY-Sgm-.mjs.map +0 -1
  1232. package/dist/config-B-uePMLj.d.mts +0 -39
  1233. package/dist/config-B-uePMLj.d.mts.map +0 -1
  1234. package/dist/config-B6BDSsz2.d.mts +0 -6712
  1235. package/dist/config-B6BDSsz2.d.mts.map +0 -1
  1236. package/dist/config-BsJHiQxC.mjs +0 -228
  1237. package/dist/config-BsJHiQxC.mjs.map +0 -1
  1238. package/dist/connection-B9pIasFd.mjs +0 -36
  1239. package/dist/connection-B9pIasFd.mjs.map +0 -1
  1240. package/dist/content-Dji9vEiW.mjs +0 -2063
  1241. package/dist/content-Dji9vEiW.mjs.map +0 -1
  1242. package/dist/content-list-query-DiNwyKtd.d.mts +0 -26
  1243. package/dist/content-list-query-DiNwyKtd.d.mts.map +0 -1
  1244. package/dist/content-repair-B7wnbzhN.mjs +0 -442
  1245. package/dist/content-repair-B7wnbzhN.mjs.map +0 -1
  1246. package/dist/context-Ctcxc8Ia.mjs +0 -2026
  1247. package/dist/context-Ctcxc8Ia.mjs.map +0 -1
  1248. package/dist/credits-Bu7dlobo.mjs +0 -110
  1249. package/dist/credits-Bu7dlobo.mjs.map +0 -1
  1250. package/dist/cron-xe5XKqA-.mjs +0 -306
  1251. package/dist/cron-xe5XKqA-.mjs.map +0 -1
  1252. package/dist/dashboard-B5hVHOtf.mjs +0 -151
  1253. package/dist/dashboard-B5hVHOtf.mjs.map +0 -1
  1254. package/dist/default-DaoYyFRS.mjs +0 -81
  1255. package/dist/default-DaoYyFRS.mjs.map +0 -1
  1256. package/dist/deferred-tasks-BYcDx2o_.d.mts +0 -9
  1257. package/dist/deferred-tasks-BYcDx2o_.d.mts.map +0 -1
  1258. package/dist/dev-typegen-Dtl8AfS6.mjs +0 -29
  1259. package/dist/dev-typegen-Dtl8AfS6.mjs.map +0 -1
  1260. package/dist/device-flow-Ma5P5d2e.mjs +0 -521
  1261. package/dist/device-flow-Ma5P5d2e.mjs.map +0 -1
  1262. package/dist/digest-xIpR3o64.mjs +0 -194
  1263. package/dist/digest-xIpR3o64.mjs.map +0 -1
  1264. package/dist/direct-executor-DMWwCey3.mjs +0 -104
  1265. package/dist/direct-executor-DMWwCey3.mjs.map +0 -1
  1266. package/dist/email-console-DmqVF5J_.mjs +0 -50
  1267. package/dist/email-console-DmqVF5J_.mjs.map +0 -1
  1268. package/dist/email-locale-Cc5YSXfJ.mjs +0 -25
  1269. package/dist/email-locale-Cc5YSXfJ.mjs.map +0 -1
  1270. package/dist/emdash-runtime-BlybX9Ui.mjs +0 -4249
  1271. package/dist/emdash-runtime-BlybX9Ui.mjs.map +0 -1
  1272. package/dist/entry-lock-De1L8qUQ.mjs +0 -163
  1273. package/dist/entry-lock-De1L8qUQ.mjs.map +0 -1
  1274. package/dist/entry-lock-esmMbgI9.d.mts +0 -4551
  1275. package/dist/entry-lock-esmMbgI9.d.mts.map +0 -1
  1276. package/dist/entry-lock-sxz2PGAT.mjs +0 -1197
  1277. package/dist/entry-lock-sxz2PGAT.mjs.map +0 -1
  1278. package/dist/env-types-BkjCtN13.mjs +0 -38
  1279. package/dist/env-types-BkjCtN13.mjs.map +0 -1
  1280. package/dist/error-B0rgPgsQ.mjs +0 -90
  1281. package/dist/error-B0rgPgsQ.mjs.map +0 -1
  1282. package/dist/errors-CuHQRiBW.mjs +0 -120
  1283. package/dist/errors-CuHQRiBW.mjs.map +0 -1
  1284. package/dist/errors-DTE6C3K_.mjs +0 -470
  1285. package/dist/errors-DTE6C3K_.mjs.map +0 -1
  1286. package/dist/escape-nJW7dR0s.mjs +0 -9
  1287. package/dist/escape-nJW7dR0s.mjs.map +0 -1
  1288. package/dist/fence-CGw57S4v.mjs +0 -162
  1289. package/dist/fence-CGw57S4v.mjs.map +0 -1
  1290. package/dist/field-defs-cache-Bw8w499w.mjs +0 -77
  1291. package/dist/field-defs-cache-Bw8w499w.mjs.map +0 -1
  1292. package/dist/field-map-hn-D-SyH.mjs +0 -83
  1293. package/dist/field-map-hn-D-SyH.mjs.map +0 -1
  1294. package/dist/fts-manager-DacCYIe4.mjs +0 -443
  1295. package/dist/fts-manager-DacCYIe4.mjs.map +0 -1
  1296. package/dist/gc-BBplHrv6.mjs +0 -75
  1297. package/dist/gc-BBplHrv6.mjs.map +0 -1
  1298. package/dist/hash-C4DFoJ7Z.mjs +0 -37
  1299. package/dist/hash-C4DFoJ7Z.mjs.map +0 -1
  1300. package/dist/hook-result-DSRRxu_-.d.mts +0 -31
  1301. package/dist/hook-result-DSRRxu_-.d.mts.map +0 -1
  1302. package/dist/hreflang-CKPunvU0.mjs +0 -105
  1303. package/dist/hreflang-CKPunvU0.mjs.map +0 -1
  1304. package/dist/hreflang-egumj6WF.d.mts +0 -50
  1305. package/dist/hreflang-egumj6WF.d.mts.map +0 -1
  1306. package/dist/http-route-dispatch-DjNFZcJ2.mjs +0 -339
  1307. package/dist/http-route-dispatch-DjNFZcJ2.mjs.map +0 -1
  1308. package/dist/identity-Dfrx2_Bc.mjs +0 -35
  1309. package/dist/identity-Dfrx2_Bc.mjs.map +0 -1
  1310. package/dist/import-ROBvhbNc.mjs +0 -2021
  1311. package/dist/import-ROBvhbNc.mjs.map +0 -1
  1312. package/dist/index-B4sIdCAT.d.mts +0 -623
  1313. package/dist/index-B4sIdCAT.d.mts.map +0 -1
  1314. package/dist/install-finalization-CPM7Gged.mjs +0 -58
  1315. package/dist/install-finalization-CPM7Gged.mjs.map +0 -1
  1316. package/dist/keys-DxqxcAD4.mjs +0 -61
  1317. package/dist/keys-DxqxcAD4.mjs.map +0 -1
  1318. package/dist/kinds-BQl5gN6e.mjs +0 -974
  1319. package/dist/kinds-BQl5gN6e.mjs.map +0 -1
  1320. package/dist/lifecycle-DGQI7itS.mjs +0 -25
  1321. package/dist/lifecycle-DGQI7itS.mjs.map +0 -1
  1322. package/dist/load-DMxRl4VK.mjs +0 -28
  1323. package/dist/load-DMxRl4VK.mjs.map +0 -1
  1324. package/dist/loader-1DMiOq5s.mjs +0 -1303
  1325. package/dist/loader-1DMiOq5s.mjs.map +0 -1
  1326. package/dist/loops-Dn1i16FP.mjs +0 -205
  1327. package/dist/loops-Dn1i16FP.mjs.map +0 -1
  1328. package/dist/manifest-builder-CTw4FmZk.mjs +0 -189
  1329. package/dist/manifest-builder-CTw4FmZk.mjs.map +0 -1
  1330. package/dist/manifest-schema-gy37bD_D.mjs +0 -496
  1331. package/dist/manifest-schema-gy37bD_D.mjs.map +0 -1
  1332. package/dist/marketplace-tHWSsCUo.mjs +0 -257
  1333. package/dist/marketplace-tHWSsCUo.mjs.map +0 -1
  1334. package/dist/media-Bw-Q65ve.mjs +0 -294
  1335. package/dist/media-Bw-Q65ve.mjs.map +0 -1
  1336. package/dist/media-BzUDu7nl.mjs +0 -373
  1337. package/dist/media-BzUDu7nl.mjs.map +0 -1
  1338. package/dist/media-aahnKHze.mjs +0 -408
  1339. package/dist/media-aahnKHze.mjs.map +0 -1
  1340. package/dist/media-allowlist-RMrjo8TU.mjs +0 -45
  1341. package/dist/media-allowlist-RMrjo8TU.mjs.map +0 -1
  1342. package/dist/media-folders-kabR1oJf.mjs +0 -210
  1343. package/dist/media-folders-kabR1oJf.mjs.map +0 -1
  1344. package/dist/media-url-DloW2xrP.mjs +0 -43
  1345. package/dist/media-url-DloW2xrP.mjs.map +0 -1
  1346. package/dist/media-usage-CHHpV7ee.mjs +0 -282
  1347. package/dist/media-usage-CHHpV7ee.mjs.map +0 -1
  1348. package/dist/media-usage-activation-BinYqC_r.mjs +0 -78
  1349. package/dist/media-usage-activation-BinYqC_r.mjs.map +0 -1
  1350. package/dist/media-usage-work-C734aq6s.mjs +0 -1015
  1351. package/dist/media-usage-work-C734aq6s.mjs.map +0 -1
  1352. package/dist/media-usage-work-lxvV0-UO.mjs +0 -151
  1353. package/dist/media-usage-work-lxvV0-UO.mjs.map +0 -1
  1354. package/dist/menus-6RHNq4ZK.mjs +0 -753
  1355. package/dist/menus-6RHNq4ZK.mjs.map +0 -1
  1356. package/dist/menus-AuCTaO9W.mjs +0 -3704
  1357. package/dist/menus-AuCTaO9W.mjs.map +0 -1
  1358. package/dist/menus-BQKqf0Up.mjs +0 -92
  1359. package/dist/menus-BQKqf0Up.mjs.map +0 -1
  1360. package/dist/mode-nh0ppSX5.mjs +0 -23
  1361. package/dist/mode-nh0ppSX5.mjs.map +0 -1
  1362. package/dist/node-sqlite-compat-CDOEcc97.mjs +0 -63
  1363. package/dist/node-sqlite-compat-CDOEcc97.mjs.map +0 -1
  1364. package/dist/oauth-authorization-BtYQ80uU.mjs +0 -274
  1365. package/dist/oauth-authorization-BtYQ80uU.mjs.map +0 -1
  1366. package/dist/oauth-clients-C1S4NQHh.mjs +0 -266
  1367. package/dist/oauth-clients-C1S4NQHh.mjs.map +0 -1
  1368. package/dist/oauth-state-store-CpGi2FZH.mjs +0 -50
  1369. package/dist/oauth-state-store-CpGi2FZH.mjs.map +0 -1
  1370. package/dist/oauth-user-lookup-BNp1aFAr.mjs +0 -26
  1371. package/dist/oauth-user-lookup-BNp1aFAr.mjs.map +0 -1
  1372. package/dist/options-B41aLm1I.d.mts +0 -81
  1373. package/dist/options-B41aLm1I.d.mts.map +0 -1
  1374. package/dist/ownership-DoeAIuTg.mjs +0 -12
  1375. package/dist/ownership-DoeAIuTg.mjs.map +0 -1
  1376. package/dist/parse-CmFDTGzp.mjs +0 -81
  1377. package/dist/parse-CmFDTGzp.mjs.map +0 -1
  1378. package/dist/parse-QVS0t5oR.d.mts +0 -172
  1379. package/dist/parse-QVS0t5oR.d.mts.map +0 -1
  1380. package/dist/passkey-config-C-MxsV22.mjs +0 -46
  1381. package/dist/passkey-config-C-MxsV22.mjs.map +0 -1
  1382. package/dist/paths-kr8hAMMI.mjs +0 -77
  1383. package/dist/paths-kr8hAMMI.mjs.map +0 -1
  1384. package/dist/patterns-DyZJ67I7.mjs +0 -140
  1385. package/dist/patterns-DyZJ67I7.mjs.map +0 -1
  1386. package/dist/placeholder-Dn7MMdWr.d.mts +0 -306
  1387. package/dist/placeholder-Dn7MMdWr.d.mts.map +0 -1
  1388. package/dist/plan-CuQOeU9g.mjs +0 -135
  1389. package/dist/plan-CuQOeU9g.mjs.map +0 -1
  1390. package/dist/plugins-CGb-G98c.mjs +0 -261
  1391. package/dist/plugins-CGb-G98c.mjs.map +0 -1
  1392. package/dist/policy-C5wrDXYV.mjs +0 -45
  1393. package/dist/policy-C5wrDXYV.mjs.map +0 -1
  1394. package/dist/portable-text-BnRuiR1-.mjs +0 -307
  1395. package/dist/portable-text-BnRuiR1-.mjs.map +0 -1
  1396. package/dist/preview-xWNSR1Li.mjs +0 -107
  1397. package/dist/preview-xWNSR1Li.mjs.map +0 -1
  1398. package/dist/protocol-ClxN-m1e.d.mts +0 -61
  1399. package/dist/protocol-ClxN-m1e.d.mts.map +0 -1
  1400. package/dist/public-submission-CkmT2SKv.mjs +0 -250
  1401. package/dist/public-submission-CkmT2SKv.mjs.map +0 -1
  1402. package/dist/public-url-B5a0QAh6.mjs +0 -101
  1403. package/dist/public-url-B5a0QAh6.mjs.map +0 -1
  1404. package/dist/query-DHqFiqqH.mjs +0 -41
  1405. package/dist/query-DHqFiqqH.mjs.map +0 -1
  1406. package/dist/query-DT85BehD.mjs +0 -1125
  1407. package/dist/query-DT85BehD.mjs.map +0 -1
  1408. package/dist/rate-limit-iMvcu3eu.mjs +0 -120
  1409. package/dist/rate-limit-iMvcu3eu.mjs.map +0 -1
  1410. package/dist/receipt-Dpp1uaX9.mjs +0 -43
  1411. package/dist/receipt-Dpp1uaX9.mjs.map +0 -1
  1412. package/dist/redirect-BRoLiWQE.mjs +0 -19
  1413. package/dist/redirect-BRoLiWQE.mjs.map +0 -1
  1414. package/dist/redirect-xZNpBoGp.mjs +0 -417
  1415. package/dist/redirect-xZNpBoGp.mjs.map +0 -1
  1416. package/dist/redirects-D4EWeXAo.mjs +0 -148
  1417. package/dist/redirects-D4EWeXAo.mjs.map +0 -1
  1418. package/dist/redirects-DCKqwiWp.mjs +0 -446
  1419. package/dist/redirects-DCKqwiWp.mjs.map +0 -1
  1420. package/dist/registry-DaXmUsD4.mjs +0 -8369
  1421. package/dist/registry-DaXmUsD4.mjs.map +0 -1
  1422. package/dist/relations-JvBP8nGP.mjs +0 -776
  1423. package/dist/relations-JvBP8nGP.mjs.map +0 -1
  1424. package/dist/request-meta-B6blULFY.mjs +0 -141
  1425. package/dist/request-meta-B6blULFY.mjs.map +0 -1
  1426. package/dist/resolve-DAhHi5tn.mjs +0 -100
  1427. package/dist/resolve-DAhHi5tn.mjs.map +0 -1
  1428. package/dist/revision-BWEH2qQB.mjs +0 -368
  1429. package/dist/revision-BWEH2qQB.mjs.map +0 -1
  1430. package/dist/route-wire-DK600v4u.mjs +0 -197
  1431. package/dist/route-wire-DK600v4u.mjs.map +0 -1
  1432. package/dist/routes-BeZyaCzv.mjs +0 -272
  1433. package/dist/routes-BeZyaCzv.mjs.map +0 -1
  1434. package/dist/runner-CskI4Hmq.mjs +0 -6372
  1435. package/dist/runner-CskI4Hmq.mjs.map +0 -1
  1436. package/dist/runner-J3Cj6DGk.d.mts +0 -68
  1437. package/dist/runner-J3Cj6DGk.d.mts.map +0 -1
  1438. package/dist/schema-CK0ihqMR.mjs +0 -815
  1439. package/dist/schema-CK0ihqMR.mjs.map +0 -1
  1440. package/dist/schema-VtaZSrC-.mjs +0 -13
  1441. package/dist/schema-VtaZSrC-.mjs.map +0 -1
  1442. package/dist/scopes-BRnGlL9t.mjs +0 -34
  1443. package/dist/scopes-BRnGlL9t.mjs.map +0 -1
  1444. package/dist/search-D6-XK1Sn.mjs +0 -448
  1445. package/dist/search-D6-XK1Sn.mjs.map +0 -1
  1446. package/dist/sections-CBDCf7qR.mjs +0 -346
  1447. package/dist/sections-CBDCf7qR.mjs.map +0 -1
  1448. package/dist/seo-BdeEPDNW.mjs +0 -133
  1449. package/dist/seo-BdeEPDNW.mjs.map +0 -1
  1450. package/dist/seo-C61bnPuV.mjs +0 -114
  1451. package/dist/seo-C61bnPuV.mjs.map +0 -1
  1452. package/dist/service-BuRKLMxa.mjs +0 -150
  1453. package/dist/service-BuRKLMxa.mjs.map +0 -1
  1454. package/dist/session-user-CqkPtrPL.mjs +0 -61
  1455. package/dist/session-user-CqkPtrPL.mjs.map +0 -1
  1456. package/dist/settings-0u0lTthS.mjs +0 -51
  1457. package/dist/settings-0u0lTthS.mjs.map +0 -1
  1458. package/dist/settings-WHr45II1.mjs +0 -61
  1459. package/dist/settings-WHr45II1.mjs.map +0 -1
  1460. package/dist/settings-m5tIYnF0.mjs +0 -443
  1461. package/dist/settings-m5tIYnF0.mjs.map +0 -1
  1462. package/dist/setup-complete-B2_dhZZz.mjs +0 -65
  1463. package/dist/setup-complete-B2_dhZZz.mjs.map +0 -1
  1464. package/dist/setup-nonce-CJV9ftSK.mjs +0 -25
  1465. package/dist/setup-nonce-CJV9ftSK.mjs.map +0 -1
  1466. package/dist/site-settings-KJOqJW6W.mjs +0 -50
  1467. package/dist/site-settings-KJOqJW6W.mjs.map +0 -1
  1468. package/dist/site-url-Ceq_AUK0.mjs +0 -16
  1469. package/dist/site-url-Ceq_AUK0.mjs.map +0 -1
  1470. package/dist/slugify-T5GHH42D.mjs +0 -17
  1471. package/dist/slugify-T5GHH42D.mjs.map +0 -1
  1472. package/dist/snapshot-Dzsn3NZa.mjs +0 -414
  1473. package/dist/snapshot-Dzsn3NZa.mjs.map +0 -1
  1474. package/dist/ssrf-DsmvZB80.mjs +0 -406
  1475. package/dist/ssrf-DsmvZB80.mjs.map +0 -1
  1476. package/dist/stage-Csnh_yEd.mjs +0 -662
  1477. package/dist/stage-Csnh_yEd.mjs.map +0 -1
  1478. package/dist/staged-Q7pnEVvI.mjs +0 -686
  1479. package/dist/staged-Q7pnEVvI.mjs.map +0 -1
  1480. package/dist/state-kGdOMQRY.mjs +0 -153
  1481. package/dist/state-kGdOMQRY.mjs.map +0 -1
  1482. package/dist/status-D39Fpy8R.mjs +0 -30
  1483. package/dist/status-D39Fpy8R.mjs.map +0 -1
  1484. package/dist/storage-query-C7iy6eUb.d.mts +0 -1615
  1485. package/dist/storage-query-C7iy6eUb.d.mts.map +0 -1
  1486. package/dist/tar-BWiraSUY.mjs +0 -449
  1487. package/dist/tar-BWiraSUY.mjs.map +0 -1
  1488. package/dist/target-DOFs5oUC.mjs +0 -27
  1489. package/dist/target-DOFs5oUC.mjs.map +0 -1
  1490. package/dist/taxonomies-BS40Wxvi.mjs +0 -939
  1491. package/dist/taxonomies-BS40Wxvi.mjs.map +0 -1
  1492. package/dist/taxonomies-DAZU9VDd.mjs +0 -697
  1493. package/dist/taxonomies-DAZU9VDd.mjs.map +0 -1
  1494. package/dist/taxonomy-XzLE95Vx.mjs +0 -525
  1495. package/dist/taxonomy-XzLE95Vx.mjs.map +0 -1
  1496. package/dist/tokens-DSQan4p7.mjs +0 -171
  1497. package/dist/tokens-DSQan4p7.mjs.map +0 -1
  1498. package/dist/transfer-BcCVxDgf.mjs +0 -166
  1499. package/dist/transfer-BcCVxDgf.mjs.map +0 -1
  1500. package/dist/transfer-OMrancOt.mjs +0 -8873
  1501. package/dist/transfer-OMrancOt.mjs.map +0 -1
  1502. package/dist/transfer-download-Dc-ltjZY.mjs +0 -33
  1503. package/dist/transfer-download-Dc-ltjZY.mjs.map +0 -1
  1504. package/dist/transformations-Ddx7UtrY.mjs +0 -196
  1505. package/dist/transformations-Ddx7UtrY.mjs.map +0 -1
  1506. package/dist/transport-flR-Zmds.d.mts +0 -42
  1507. package/dist/transport-flR-Zmds.d.mts.map +0 -1
  1508. package/dist/transport-umzEbgYO.mjs +0 -136
  1509. package/dist/transport-umzEbgYO.mjs.map +0 -1
  1510. package/dist/trusted-proxy-BqfQFs6a.mjs +0 -51
  1511. package/dist/trusted-proxy-BqfQFs6a.mjs.map +0 -1
  1512. package/dist/turnstile-Do60baId.mjs +0 -58
  1513. package/dist/turnstile-Do60baId.mjs.map +0 -1
  1514. package/dist/types-BT1p3uyb.d.mts +0 -1735
  1515. package/dist/types-BT1p3uyb.d.mts.map +0 -1
  1516. package/dist/types-BYaPWs_F.d.mts +0 -198
  1517. package/dist/types-BYaPWs_F.d.mts.map +0 -1
  1518. package/dist/types-C-Xp0CcN.mjs +0 -103
  1519. package/dist/types-C-Xp0CcN.mjs.map +0 -1
  1520. package/dist/types-CLTQ9b_r.d.mts +0 -374
  1521. package/dist/types-CLTQ9b_r.d.mts.map +0 -1
  1522. package/dist/types-CPkQw2T2.d.mts +0 -85
  1523. package/dist/types-CPkQw2T2.d.mts.map +0 -1
  1524. package/dist/types-CQLvuXoZ.d.mts +0 -198
  1525. package/dist/types-CQLvuXoZ.d.mts.map +0 -1
  1526. package/dist/types-CV5xszpF.d.mts +0 -363
  1527. package/dist/types-CV5xszpF.d.mts.map +0 -1
  1528. package/dist/types-CdEMurNh.mjs +0 -77
  1529. package/dist/types-CdEMurNh.mjs.map +0 -1
  1530. package/dist/types-CxwtnuSS.mjs +0 -37
  1531. package/dist/types-CxwtnuSS.mjs.map +0 -1
  1532. package/dist/types-DGw8KMX_.mjs +0 -16
  1533. package/dist/types-DGw8KMX_.mjs.map +0 -1
  1534. package/dist/types-DOfVMPoo.d.mts +0 -125
  1535. package/dist/types-DOfVMPoo.d.mts.map +0 -1
  1536. package/dist/types-LtS0SM4F.d.mts +0 -287
  1537. package/dist/types-LtS0SM4F.d.mts.map +0 -1
  1538. package/dist/types-ifgOkcBa.d.mts +0 -916
  1539. package/dist/types-ifgOkcBa.d.mts.map +0 -1
  1540. package/dist/update-check-DOc2aBIU.mjs +0 -161
  1541. package/dist/update-check-DOc2aBIU.mjs.map +0 -1
  1542. package/dist/upload-attempts-nzdc3cay.mjs +0 -32
  1543. package/dist/upload-attempts-nzdc3cay.mjs.map +0 -1
  1544. package/dist/url-pattern-hVbqpXs6.mjs +0 -41
  1545. package/dist/url-pattern-hVbqpXs6.mjs.map +0 -1
  1546. package/dist/user-Dnp53zTq.mjs +0 -171
  1547. package/dist/user-Dnp53zTq.mjs.map +0 -1
  1548. package/dist/utils-CoV-PYhg.mjs +0 -439
  1549. package/dist/utils-CoV-PYhg.mjs.map +0 -1
  1550. package/dist/validate-CfQ9_YlD.d.mts +0 -468
  1551. package/dist/validate-CfQ9_YlD.d.mts.map +0 -1
  1552. package/dist/validate-DBX3DKtL.mjs +0 -516
  1553. package/dist/validate-DBX3DKtL.mjs.map +0 -1
  1554. package/dist/validation-BJMiDhB1.mjs +0 -219
  1555. package/dist/validation-BJMiDhB1.mjs.map +0 -1
  1556. package/dist/version-BaT8yKIT.mjs +0 -7
  1557. package/dist/version-BaT8yKIT.mjs.map +0 -1
  1558. package/dist/version-BwEGkqkx.mjs +0 -9
  1559. package/dist/version-BwEGkqkx.mjs.map +0 -1
  1560. package/dist/virtual-modules-B6vJW15k.mjs +0 -516
  1561. package/dist/virtual-modules-B6vJW15k.mjs.map +0 -1
  1562. package/dist/widgets-BkxBAgZ_.mjs +0 -126
  1563. package/dist/widgets-BkxBAgZ_.mjs.map +0 -1
  1564. package/dist/wxr-taxonomies-D7gAJyOF.mjs +0 -453
  1565. package/dist/wxr-taxonomies-D7gAJyOF.mjs.map +0 -1
  1566. package/dist/wxr-taxonomies-DM5J9AsT.d.mts +0 -34
  1567. package/dist/wxr-taxonomies-DM5J9AsT.d.mts.map +0 -1
  1568. package/dist/zod-generator-BQilAboC.mjs +0 -424
  1569. package/dist/zod-generator-BQilAboC.mjs.map +0 -1
  1570. /package/dist/{api-tokens-BLz2MtQs.mjs → api-tokens-CdP49zVF.mjs} +0 -0
  1571. /package/dist/{ssrf-tA45vIPX.mjs → ssrf-DM0E-D_8.mjs} +0 -0
@@ -1,15 +1,15 @@
1
- import "../../../../../parse-QVS0t5oR.mjs";
2
- import "../../../../../types-ifgOkcBa.mjs";
3
- import "../../../../../types-BT1p3uyb.mjs";
4
- import "../../../../../options-B41aLm1I.mjs";
5
- import "../../../../../entry-lock-esmMbgI9.mjs";
6
- import "../../../../../config-B6BDSsz2.mjs";
7
- import "../../../../../runner-J3Cj6DGk.mjs";
8
- import "../../../../../storage-query-C7iy6eUb.mjs";
9
- import "../../../../../index-B4sIdCAT.mjs";
10
- import "../../../../../types-CV5xszpF.mjs";
11
- import "../../../../../hreflang-egumj6WF.mjs";
12
- import "../../../../../validate-CfQ9_YlD.mjs";
1
+ import "../../../../../parse-CWHOFc6z.mjs";
2
+ import "../../../../../types-DCFavOii.mjs";
3
+ import "../../../../../types-QoPHm-2w.mjs";
4
+ import "../../../../../options-DJWaq3Ie.mjs";
5
+ import "../../../../../entry-lock-C7VX0NGK.mjs";
6
+ import "../../../../../config-Bsm_u_oE.mjs";
7
+ import "../../../../../runner-BObHz5FC.mjs";
8
+ import "../../../../../storage-query-DRyu3bSU.mjs";
9
+ import "../../../../../index-BB9sVisO.mjs";
10
+ import "../../../../../types-DHO7Pd25.mjs";
11
+ import "../../../../../hreflang-CY_F5OjF.mjs";
12
+ import "../../../../../validate-emKxGC5F.mjs";
13
13
  import { EmDashHandlers } from "../../../../types.mjs";
14
14
  import { AttachmentInfo } from "./analyze.mjs";
15
15
  import { APIRoute } from "astro";
@@ -1,26 +1,26 @@
1
1
  import "../../../../../config-CvmjJcVw.mjs";
2
2
  import "../../../../../base64-BQBZwXCx.mjs";
3
3
  import "../../../../../url-Dn3IStq8.mjs";
4
- import "../../../../../types-C-Xp0CcN.mjs";
4
+ import "../../../../../types-D2NEXtgB.mjs";
5
5
  import "../../../../../dist-Cfu8mMBs.mjs";
6
6
  import { t as enrichImageMetadata } from "../../../../../enrich-Duu4sV3a.mjs";
7
- import "../../../../../errors-CuHQRiBW.mjs";
8
- import "../../../../../errors-DTE6C3K_.mjs";
9
- import "../../../../../settings-WHr45II1.mjs";
10
- import "../../../../../site-settings-KJOqJW6W.mjs";
11
- import { a as ssrfSafeFetch, s as validateExternalUrl, t as SsrfError } from "../../../../../ssrf-DsmvZB80.mjs";
12
- import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-B0rgPgsQ.mjs";
13
- import { n as parseBody, t as isParseError } from "../../../../../parse-CmFDTGzp.mjs";
14
- import "../../../../../redirects-D4EWeXAo.mjs";
15
- import "../../../../../entry-lock-sxz2PGAT.mjs";
16
- import "../../../../../media-aahnKHze.mjs";
17
- import "../../../../../comments-BRtp992B.mjs";
18
- import { p as wpMediaImportBody } from "../../../../../byline-fields-DHJs0Mja.mjs";
19
- import "../../../../../menus-BQKqf0Up.mjs";
20
- import "../../../../../status-D39Fpy8R.mjs";
7
+ import "../../../../../errors-B4f4It-2.mjs";
8
+ import "../../../../../errors-BOYNdIo3.mjs";
9
+ import "../../../../../settings-Dd1uivmQ.mjs";
10
+ import "../../../../../site-settings-DRHfX7bq.mjs";
11
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-CVWeIOku.mjs";
12
+ import { a as ssrfSafeFetch, s as validateExternalUrl, t as SsrfError } from "../../../../../ssrf-BcYjyM4M.mjs";
13
+ import { n as parseBody, t as isParseError } from "../../../../../parse-DgQ2NABT.mjs";
14
+ import "../../../../../redirects-BEVSRMa2.mjs";
15
+ import "../../../../../entry-lock-Df6-XhIu.mjs";
16
+ import "../../../../../media-1WC65OCB.mjs";
17
+ import "../../../../../comments-yiRFx3w5.mjs";
18
+ import { p as wpMediaImportBody } from "../../../../../byline-fields-BLXZnX7N.mjs";
19
+ import "../../../../../menus-BSzwObhV.mjs";
20
+ import "../../../../../status-BFNdxzKc.mjs";
21
21
  import "../../../../../api/schemas/index.mjs";
22
- import "../../../../../ssrf-tA45vIPX.mjs";
23
- import { i as requirePerm } from "../../../../../authorize-DeWfk--K.mjs";
22
+ import "../../../../../ssrf-DM0E-D_8.mjs";
23
+ import { o as requirePerm } from "../../../../../authorize-DPFBGbE6.mjs";
24
24
  import { ulid } from "ulidx";
25
25
  import * as path from "node:path";
26
26
  import mime from "mime/lite";
@@ -1,23 +1,25 @@
1
1
  import "../../../../../config-CvmjJcVw.mjs";
2
2
  import "../../../../../base64-BQBZwXCx.mjs";
3
3
  import { n as FIELD_TYPES } from "../../../../../types-BGmQ0uXs.mjs";
4
+ import "../../../../../slugify-bu2-jKia.mjs";
4
5
  import "../../../../../url-Dn3IStq8.mjs";
5
- import "../../../../../types-C-Xp0CcN.mjs";
6
- import "../../../../../errors-CuHQRiBW.mjs";
7
- import "../../../../../errors-DTE6C3K_.mjs";
8
- import "../../../../../settings-WHr45II1.mjs";
9
- import "../../../../../site-settings-KJOqJW6W.mjs";
10
- import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-B0rgPgsQ.mjs";
11
- import { n as parseBody, t as isParseError } from "../../../../../parse-CmFDTGzp.mjs";
12
- import "../../../../../redirects-D4EWeXAo.mjs";
13
- import "../../../../../entry-lock-sxz2PGAT.mjs";
14
- import "../../../../../media-aahnKHze.mjs";
15
- import "../../../../../comments-BRtp992B.mjs";
16
- import { g as wpPrepareBody } from "../../../../../byline-fields-DHJs0Mja.mjs";
17
- import "../../../../../menus-BQKqf0Up.mjs";
18
- import "../../../../../status-D39Fpy8R.mjs";
6
+ import "../../../../../types-D2NEXtgB.mjs";
7
+ import "../../../../../errors-B4f4It-2.mjs";
8
+ import "../../../../../errors-BOYNdIo3.mjs";
9
+ import "../../../../../settings-Dd1uivmQ.mjs";
10
+ import "../../../../../site-settings-DRHfX7bq.mjs";
11
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-CVWeIOku.mjs";
12
+ import { n as parseBody, t as isParseError } from "../../../../../parse-DgQ2NABT.mjs";
13
+ import "../../../../../redirects-BEVSRMa2.mjs";
14
+ import "../../../../../entry-lock-Df6-XhIu.mjs";
15
+ import "../../../../../media-1WC65OCB.mjs";
16
+ import "../../../../../comments-yiRFx3w5.mjs";
17
+ import { g as wpPrepareBody } from "../../../../../byline-fields-BLXZnX7N.mjs";
18
+ import "../../../../../menus-BSzwObhV.mjs";
19
+ import "../../../../../status-BFNdxzKc.mjs";
19
20
  import "../../../../../api/schemas/index.mjs";
20
- import { i as requirePerm } from "../../../../../authorize-DeWfk--K.mjs";
21
+ import "../../../../../utils-TPt7w2cS.mjs";
22
+ import { o as requirePerm } from "../../../../../authorize-DPFBGbE6.mjs";
21
23
  import { capitalize, sanitizeSlug, singularize } from "./analyze.mjs";
22
24
 
23
25
  //#region src/astro/routes/api/import/wordpress/prepare.ts
@@ -42,7 +44,7 @@ const POST = async ({ request, locals }) => {
42
44
  }
43
45
  };
44
46
  async function prepareImport(db, request) {
45
- const { SchemaRegistry } = await import("../../../../../registry-DaXmUsD4.mjs").then((n) => n.r);
47
+ const { SchemaRegistry } = await import("../../../../../registry-TUVaid9Z.mjs").then((n) => n.r);
46
48
  const registry = new SchemaRegistry(db);
47
49
  const result = {
48
50
  success: true,
@@ -108,7 +110,7 @@ async function prepareImport(db, request) {
108
110
  "post",
109
111
  "page"
110
112
  ].includes(collectionSlug)) {
111
- const { FTSManager } = await import("../../../../../fts-manager-DacCYIe4.mjs").then((n) => n.n);
113
+ const { FTSManager } = await import("../../../../../fts-manager-Beg3e4bI.mjs").then((n) => n.n);
112
114
  const ftsManager = new FTSManager(db);
113
115
  if ((await ftsManager.getSearchableFields(collectionSlug)).length > 0) try {
114
116
  await ftsManager.enableSearch(collectionSlug);
@@ -1 +1 @@
1
- {"version":3,"file":"prepare.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/import/wordpress/prepare.ts"],"sourcesContent":["/**\n * WordPress import prepare endpoint\n *\n * POST /_emdash/api/import/wordpress/prepare\n *\n * Creates collections and fields needed for import.\n * This is called after analyze, before execute.\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { wpPrepareBody } from \"#api/schemas.js\";\nimport { FIELD_TYPES, type FieldType } from \"#schema/types.js\";\nimport type { EmDashHandlers } from \"#types\";\n\nimport { capitalize, sanitizeSlug, singularize, type ImportFieldDef } from \"./analyze.js\";\n\n/** Validate that a string is a known FieldType, returning undefined if not */\nfunction asFieldType(value: string): FieldType | undefined {\n\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- validated by includes check\n\treturn (FIELD_TYPES as readonly string[]).includes(value) ? (value as FieldType) : undefined;\n}\n\nexport const prerender = false;\n\ninterface PrepareRequest {\n\tpostTypes: Array<{\n\t\tname: string;\n\t\tcollection: string;\n\t\tfields: ImportFieldDef[];\n\t}>;\n}\n\nexport interface PrepareResult {\n\tsuccess: boolean;\n\tcollectionsCreated: string[];\n\tfieldsCreated: Array<{ collection: string; field: string }>;\n\terrors: Array<{ collection: string; error: string }>;\n}\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash not configured\", 500);\n\t}\n\n\tconst denied = requirePerm(user, \"import:execute\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst body = await parseBody(request, wpPrepareBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await prepareImport(emdash.db, body);\n\n\t\t// Invalidate the URL pattern cache when prepare adds new collections so\n\t\t// public routing picks up their patterns immediately. The manifest\n\t\t// itself is built fresh per admin request, so cross-request\n\t\t// staleness (the original failure mode in #747) is no longer\n\t\t// possible — the execute step always reads live schema.\n\t\tif (result.collectionsCreated.length > 0) {\n\t\t\temdash.invalidateUrlPatternCache();\n\t\t}\n\n\t\treturn apiSuccess(result, result.success ? 200 : 400);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to prepare import\", \"WXR_PREPARE_ERROR\");\n\t}\n};\n\nasync function prepareImport(\n\tdb: NonNullable<EmDashHandlers[\"db\"]>,\n\trequest: PrepareRequest,\n): Promise<PrepareResult> {\n\tconst { SchemaRegistry } = await import(\"#schema/registry.js\");\n\tconst registry = new SchemaRegistry(db);\n\n\tconst result: PrepareResult = {\n\t\tsuccess: true,\n\t\tcollectionsCreated: [],\n\t\tfieldsCreated: [],\n\t\terrors: [],\n\t};\n\n\tfor (const postType of request.postTypes) {\n\t\tconst collectionSlug = sanitizeSlug(postType.collection);\n\n\t\ttry {\n\t\t\t// Check if collection exists\n\t\t\tlet collection = await registry.getCollection(collectionSlug);\n\n\t\t\tif (!collection) {\n\t\t\t\t// Create the collection\n\t\t\t\tconst label = capitalize(collectionSlug);\n\t\t\t\tconst labelSingular = capitalize(singularize(collectionSlug));\n\n\t\t\t\t// Enable search by default for posts and pages\n\t\t\t\tconst isSearchable = [\"posts\", \"pages\", \"post\", \"page\"].includes(collectionSlug);\n\t\t\t\tconst supports: (\"revisions\" | \"drafts\" | \"search\")[] = [\"revisions\", \"drafts\"];\n\t\t\t\tif (isSearchable) {\n\t\t\t\t\tsupports.push(\"search\");\n\t\t\t\t}\n\n\t\t\t\t// Default URL patterns for known post types\n\t\t\t\tconst urlPattern =\n\t\t\t\t\tcollectionSlug === \"pages\"\n\t\t\t\t\t\t? \"/{slug}\"\n\t\t\t\t\t\t: collectionSlug === \"posts\"\n\t\t\t\t\t\t\t? \"/blog/{slug}\"\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\tcollection = await registry.createCollection({\n\t\t\t\t\tslug: collectionSlug,\n\t\t\t\t\tlabel,\n\t\t\t\t\tlabelSingular,\n\t\t\t\t\tdescription: `Imported from WordPress post type: ${postType.name}`,\n\t\t\t\t\tsupports,\n\t\t\t\t\turlPattern,\n\t\t\t\t});\n\n\t\t\t\tresult.collectionsCreated.push(collectionSlug);\n\t\t\t}\n\n\t\t\t// Create missing fields\n\t\t\tconst existingFields = await registry.listFields(collection.id);\n\t\t\tconst existingFieldSlugs = new Set(existingFields.map((f) => f.slug));\n\n\t\t\tfor (const field of postType.fields) {\n\t\t\t\tif (existingFieldSlugs.has(field.slug)) {\n\t\t\t\t\t// Field already exists - skip\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst fieldType = asFieldType(field.type);\n\t\t\t\tif (!fieldType) {\n\t\t\t\t\tresult.errors.push({\n\t\t\t\t\t\tcollection: collectionSlug,\n\t\t\t\t\t\terror: `Unknown field type \"${field.type}\" for field \"${field.slug}\"`,\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tawait registry.createField(collectionSlug, {\n\t\t\t\t\tslug: field.slug,\n\t\t\t\t\tlabel: field.label,\n\t\t\t\t\ttype: fieldType,\n\t\t\t\t\trequired: field.required,\n\t\t\t\t\tunique: false,\n\t\t\t\t\tsearchable: field.searchable ?? false,\n\t\t\t\t\tsortOrder: existingFields.length + result.fieldsCreated.length,\n\t\t\t\t});\n\n\t\t\t\tresult.fieldsCreated.push({\n\t\t\t\t\tcollection: collectionSlug,\n\t\t\t\t\tfield: field.slug,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Enable search if collection supports it and has searchable fields\n\t\t\tconst isSearchable = [\"posts\", \"pages\", \"post\", \"page\"].includes(collectionSlug);\n\t\t\tif (isSearchable) {\n\t\t\t\tconst { FTSManager } = await import(\"#search/fts-manager.js\");\n\t\t\t\tconst ftsManager = new FTSManager(db);\n\n\t\t\t\tconst searchableFields = await ftsManager.getSearchableFields(collectionSlug);\n\t\t\t\tif (searchableFields.length > 0) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait ftsManager.enableSearch(collectionSlug);\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Ignore - search can be enabled manually later\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(`Prepare error for collection \"${collectionSlug}\":`, error);\n\t\t\tresult.success = false;\n\t\t\tresult.errors.push({\n\t\t\t\tcollection: collectionSlug,\n\t\t\t\terror: \"Failed to prepare collection\",\n\t\t\t});\n\t\t}\n\t}\n\n\treturn result;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"prepare.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/import/wordpress/prepare.ts"],"sourcesContent":["/**\n * WordPress import prepare endpoint\n *\n * POST /_emdash/api/import/wordpress/prepare\n *\n * Creates collections and fields needed for import.\n * This is called after analyze, before execute.\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { wpPrepareBody } from \"#api/schemas.js\";\nimport { FIELD_TYPES, type FieldType } from \"#schema/types.js\";\nimport type { EmDashHandlers } from \"#types\";\n\nimport { capitalize, sanitizeSlug, singularize, type ImportFieldDef } from \"./analyze.js\";\n\n/** Validate that a string is a known FieldType, returning undefined if not */\nfunction asFieldType(value: string): FieldType | undefined {\n\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- validated by includes check\n\treturn (FIELD_TYPES as readonly string[]).includes(value) ? (value as FieldType) : undefined;\n}\n\nexport const prerender = false;\n\ninterface PrepareRequest {\n\tpostTypes: Array<{\n\t\tname: string;\n\t\tcollection: string;\n\t\tfields: ImportFieldDef[];\n\t}>;\n}\n\nexport interface PrepareResult {\n\tsuccess: boolean;\n\tcollectionsCreated: string[];\n\tfieldsCreated: Array<{ collection: string; field: string }>;\n\terrors: Array<{ collection: string; error: string }>;\n}\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash not configured\", 500);\n\t}\n\n\tconst denied = requirePerm(user, \"import:execute\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst body = await parseBody(request, wpPrepareBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst result = await prepareImport(emdash.db, body);\n\n\t\t// Invalidate the URL pattern cache when prepare adds new collections so\n\t\t// public routing picks up their patterns immediately. The manifest\n\t\t// itself is built fresh per admin request, so cross-request\n\t\t// staleness (the original failure mode in #747) is no longer\n\t\t// possible — the execute step always reads live schema.\n\t\tif (result.collectionsCreated.length > 0) {\n\t\t\temdash.invalidateUrlPatternCache();\n\t\t}\n\n\t\treturn apiSuccess(result, result.success ? 200 : 400);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to prepare import\", \"WXR_PREPARE_ERROR\");\n\t}\n};\n\nasync function prepareImport(\n\tdb: NonNullable<EmDashHandlers[\"db\"]>,\n\trequest: PrepareRequest,\n): Promise<PrepareResult> {\n\tconst { SchemaRegistry } = await import(\"#schema/registry.js\");\n\tconst registry = new SchemaRegistry(db);\n\n\tconst result: PrepareResult = {\n\t\tsuccess: true,\n\t\tcollectionsCreated: [],\n\t\tfieldsCreated: [],\n\t\terrors: [],\n\t};\n\n\tfor (const postType of request.postTypes) {\n\t\tconst collectionSlug = sanitizeSlug(postType.collection);\n\n\t\ttry {\n\t\t\t// Check if collection exists\n\t\t\tlet collection = await registry.getCollection(collectionSlug);\n\n\t\t\tif (!collection) {\n\t\t\t\t// Create the collection\n\t\t\t\tconst label = capitalize(collectionSlug);\n\t\t\t\tconst labelSingular = capitalize(singularize(collectionSlug));\n\n\t\t\t\t// Enable search by default for posts and pages\n\t\t\t\tconst isSearchable = [\"posts\", \"pages\", \"post\", \"page\"].includes(collectionSlug);\n\t\t\t\tconst supports: (\"revisions\" | \"drafts\" | \"search\")[] = [\"revisions\", \"drafts\"];\n\t\t\t\tif (isSearchable) {\n\t\t\t\t\tsupports.push(\"search\");\n\t\t\t\t}\n\n\t\t\t\t// Default URL patterns for known post types\n\t\t\t\tconst urlPattern =\n\t\t\t\t\tcollectionSlug === \"pages\"\n\t\t\t\t\t\t? \"/{slug}\"\n\t\t\t\t\t\t: collectionSlug === \"posts\"\n\t\t\t\t\t\t\t? \"/blog/{slug}\"\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\tcollection = await registry.createCollection({\n\t\t\t\t\tslug: collectionSlug,\n\t\t\t\t\tlabel,\n\t\t\t\t\tlabelSingular,\n\t\t\t\t\tdescription: `Imported from WordPress post type: ${postType.name}`,\n\t\t\t\t\tsupports,\n\t\t\t\t\turlPattern,\n\t\t\t\t});\n\n\t\t\t\tresult.collectionsCreated.push(collectionSlug);\n\t\t\t}\n\n\t\t\t// Create missing fields\n\t\t\tconst existingFields = await registry.listFields(collection.id);\n\t\t\tconst existingFieldSlugs = new Set(existingFields.map((f) => f.slug));\n\n\t\t\tfor (const field of postType.fields) {\n\t\t\t\tif (existingFieldSlugs.has(field.slug)) {\n\t\t\t\t\t// Field already exists - skip\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst fieldType = asFieldType(field.type);\n\t\t\t\tif (!fieldType) {\n\t\t\t\t\tresult.errors.push({\n\t\t\t\t\t\tcollection: collectionSlug,\n\t\t\t\t\t\terror: `Unknown field type \"${field.type}\" for field \"${field.slug}\"`,\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tawait registry.createField(collectionSlug, {\n\t\t\t\t\tslug: field.slug,\n\t\t\t\t\tlabel: field.label,\n\t\t\t\t\ttype: fieldType,\n\t\t\t\t\trequired: field.required,\n\t\t\t\t\tunique: false,\n\t\t\t\t\tsearchable: field.searchable ?? false,\n\t\t\t\t\tsortOrder: existingFields.length + result.fieldsCreated.length,\n\t\t\t\t});\n\n\t\t\t\tresult.fieldsCreated.push({\n\t\t\t\t\tcollection: collectionSlug,\n\t\t\t\t\tfield: field.slug,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Enable search if collection supports it and has searchable fields\n\t\t\tconst isSearchable = [\"posts\", \"pages\", \"post\", \"page\"].includes(collectionSlug);\n\t\t\tif (isSearchable) {\n\t\t\t\tconst { FTSManager } = await import(\"#search/fts-manager.js\");\n\t\t\t\tconst ftsManager = new FTSManager(db);\n\n\t\t\t\tconst searchableFields = await ftsManager.getSearchableFields(collectionSlug);\n\t\t\t\tif (searchableFields.length > 0) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait ftsManager.enableSearch(collectionSlug);\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Ignore - search can be enabled manually later\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(`Prepare error for collection \"${collectionSlug}\":`, error);\n\t\t\tresult.success = false;\n\t\t\tresult.errors.push({\n\t\t\t\tcollection: collectionSlug,\n\t\t\t\terror: \"Failed to prepare collection\",\n\t\t\t});\n\t\t}\n\t}\n\n\treturn result;\n}\n"],"mappings":"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"}
@@ -49,6 +49,14 @@ interface PortableTextBlock {
49
49
  columns?: Array<{
50
50
  content?: PortableTextBlock[];
51
51
  }>;
52
+ content?: PortableTextBlock[];
53
+ markDefs?: Array<Record<string, unknown>>;
54
+ rows?: Array<{
55
+ cells?: Array<{
56
+ markDefs?: Array<Record<string, unknown>>;
57
+ }>;
58
+ }>;
59
+ buttons?: Array<Record<string, unknown>>;
52
60
  [key: string]: unknown;
53
61
  }
54
62
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite-url-helpers.d.mts","names":[],"sources":["../../../../../../src/astro/routes/api/import/wordpress/rewrite-url-helpers.ts"],"mappings":";;AAUA;;iBAAgB,UAAA,CAAW,GAAA;;;AAgB3B;;;;iBAAgB,YAAA,CAAa,GAAA;AAQ7B;;;;AAAA,iBAAgB,eAAA,CAAgB,MAAA,EAAQ,MAAA,mBAAyB,GAAA;;;;;AAmBjE;;;;;iBAAgB,eAAA,CAAgB,KAAA;;;;iBAgBhB,eAAA,CACf,GAAA,UACA,QAAA,EAAU,MAAA,kBACV,OAAA,EAAS,GAAA;;;;UAuBO,iBAAA;EAChB,KAAA;EACA,IAAA;EACA,KAAA;IACC,KAAA;IACA,IAAA;IACA,GAAA;EAAA;EAMS;EAHV,IAAA;IAAkB,IAAA;IAAe,KAAA;EAAA;EAEjC,MAAA,GAAS,iBAAA;EACT,OAAA,GAAU,KAAA;IAAQ,OAAA,GAAU,iBAAA;EAAA;EAAA,CAC3B,GAAA;AAAA;;;;iBAMc,uBAAA,CACf,MAAA,EAAQ,iBAAA,IACR,QAAA,EAAU,MAAA,kBACV,OAAA,EAAS,GAAA;EACL,OAAA;EAAkB,aAAA;AAAA;;;;iBA6DP,iBAAA,CACf,KAAA,UACA,QAAA,EAAU,MAAA,kBACV,OAAA,EAAS,GAAA;EACL,QAAA;EAAkB,OAAA;EAAkB,aAAA;AAAA"}
1
+ {"version":3,"file":"rewrite-url-helpers.d.mts","names":[],"sources":["../../../../../../src/astro/routes/api/import/wordpress/rewrite-url-helpers.ts"],"mappings":";;AAUA;;iBAAgB,UAAA,CAAW,GAAA;;;AAgB3B;;;;iBAAgB,YAAA,CAAa,GAAA;AAQ7B;;;;AAAA,iBAAgB,eAAA,CAAgB,MAAA,EAAQ,MAAA,mBAAyB,GAAA;;;;;AAmBjE;;;;;iBAAgB,eAAA,CAAgB,KAAA;;;;iBAgBhB,eAAA,CACf,GAAA,UACA,QAAA,EAAU,MAAA,kBACV,OAAA,EAAS,GAAA;;;;UAuBO,iBAAA;EAChB,KAAA;EACA,IAAA;EACA,KAAA;IACC,KAAA;IACA,IAAA;IACA,GAAA;EAAA;EAMS;EAHV,IAAA;IAAkB,IAAA;IAAe,KAAA;EAAA;EAEjC,MAAA,GAAS,iBAAA;EACT,OAAA,GAAU,KAAA;IAAQ,OAAA,GAAU,iBAAA;EAAA;EAC5B,OAAA,GAAU,iBAAA;EACV,QAAA,GAAW,KAAA,CAAM,MAAA;EACjB,IAAA,GAAO,KAAA;IAAQ,KAAA,GAAQ,KAAA;MAAQ,QAAA,GAAW,KAAA,CAAM,MAAA;IAAA;EAAA;EAChD,OAAA,GAAU,KAAA,CAAM,MAAA;EAAA,CACf,GAAA;AAAA;;;;iBAMc,uBAAA,CACf,MAAA,EAAQ,iBAAA,IACR,QAAA,EAAU,MAAA,kBACV,OAAA,EAAS,GAAA;EACL,OAAA;EAAkB,aAAA;AAAA;;;;iBA+FP,iBAAA,CACf,KAAA,UACA,QAAA,EAAU,MAAA,kBACV,OAAA,EAAS,GAAA;EACL,QAAA;EAAkB,OAAA;EAAkB,aAAA;AAAA"}
@@ -72,42 +72,78 @@ function findMatchingUrl(url, exactMap, baseMap) {
72
72
  function rewritePortableTextUrls(blocks, exactMap, baseMap) {
73
73
  let changed = false;
74
74
  let urlsRewritten = 0;
75
- for (const block of blocks) {
76
- if (block._type === "image" && block.asset?.url) {
77
- const newUrl = findMatchingUrl(block.asset.url, exactMap, baseMap);
78
- if (newUrl) {
79
- block.asset.url = newUrl;
80
- block.asset._ref = newUrl;
81
- changed = true;
82
- urlsRewritten++;
83
- }
84
- }
85
- if (block._type === "image" && block.link) {
86
- const linkHref = typeof block.link === "string" ? block.link : block.link.href;
87
- const newUrl = linkHref ? findMatchingUrl(linkHref, exactMap, baseMap) : null;
88
- if (newUrl) {
89
- if (typeof block.link === "string") block.link = newUrl;
90
- else block.link.href = newUrl;
91
- changed = true;
92
- urlsRewritten++;
93
- }
75
+ const rewriteField = (target, key) => {
76
+ const value = target[key];
77
+ const newUrl = typeof value === "string" ? findMatchingUrl(value, exactMap, baseMap) : null;
78
+ if (!newUrl) return false;
79
+ target[key] = newUrl;
80
+ changed = true;
81
+ urlsRewritten++;
82
+ return true;
83
+ };
84
+ const rewriteHtml = (target, count = true) => {
85
+ if (typeof target.html !== "string") return;
86
+ const result = rewriteStringUrls(target.html, exactMap, baseMap);
87
+ if (result.changed) {
88
+ target.html = result.newValue;
89
+ changed = true;
90
+ if (count) urlsRewritten += result.urlsRewritten;
94
91
  }
95
- if (block._type === "gallery" && Array.isArray(block.images)) {
96
- const result = rewritePortableTextUrls(block.images, exactMap, baseMap);
97
- if (result.changed) {
98
- changed = true;
99
- urlsRewritten += result.urlsRewritten;
100
- }
92
+ };
93
+ const rewriteMarkDefs = (markDefs) => {
94
+ for (const def of markDefs ?? []) rewriteField(def, "href");
95
+ };
96
+ const rewriteNested = (content) => {
97
+ if (!Array.isArray(content)) return;
98
+ const result = rewritePortableTextUrls(content, exactMap, baseMap);
99
+ if (result.changed) {
100
+ changed = true;
101
+ urlsRewritten += result.urlsRewritten;
101
102
  }
102
- if (block._type === "columns" && Array.isArray(block.columns)) {
103
- for (const column of block.columns) if (Array.isArray(column.content)) {
104
- const result = rewritePortableTextUrls(column.content, exactMap, baseMap);
105
- if (result.changed) {
103
+ };
104
+ for (const block of blocks) switch (block._type) {
105
+ case "image":
106
+ if (block.asset?.url) {
107
+ const newUrl = findMatchingUrl(block.asset.url, exactMap, baseMap);
108
+ if (newUrl) {
109
+ block.asset.url = newUrl;
110
+ block.asset._ref = newUrl;
106
111
  changed = true;
107
- urlsRewritten += result.urlsRewritten;
112
+ urlsRewritten++;
108
113
  }
109
114
  }
110
- }
115
+ if (typeof block.link === "string") rewriteField(block, "link");
116
+ else if (block.link) rewriteField(block.link, "href");
117
+ break;
118
+ case "gallery":
119
+ rewriteNested(block.images);
120
+ break;
121
+ case "columns":
122
+ for (const column of block.columns ?? []) rewriteNested(column.content);
123
+ break;
124
+ case "cover":
125
+ rewriteField(block, "backgroundImage");
126
+ rewriteNested(block.content);
127
+ break;
128
+ case "block":
129
+ rewriteMarkDefs(block.markDefs);
130
+ break;
131
+ case "table":
132
+ for (const row of block.rows ?? []) for (const cell of row.cells ?? []) rewriteMarkDefs(cell.markDefs);
133
+ break;
134
+ case "file":
135
+ case "button":
136
+ rewriteField(block, "url");
137
+ break;
138
+ case "embed":
139
+ rewriteHtml(block, !rewriteField(block, "url"));
140
+ break;
141
+ case "htmlBlock":
142
+ rewriteHtml(block);
143
+ break;
144
+ case "buttons":
145
+ for (const button of block.buttons ?? []) rewriteField(button, "url");
146
+ break;
111
147
  }
112
148
  return {
113
149
  changed,
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite-url-helpers.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/import/wordpress/rewrite-url-helpers.ts"],"sourcesContent":["const REGEX_SPECIAL_CHARS = /[.*+?^${}()|[\\]\\\\]/g;\nconst WORDPRESS_IMAGE_SIZE_SUFFIX = /-\\d+x\\d+(?=\\.[^./?#]+$)/;\nconst BASE_URL_EXTENSION = /^(.+)(\\.[^./?#]+)$/;\nconst QUERY_BEFORE_FRAGMENT = /^[^#]*\\?/;\n/** What may follow a URL in a string field: its end, a quote, a tag, or the punctuation of prose. */\nconst URL_END = `(?=$|[\"'\\\\s<>)\\\\],;:!?]|\\\\.(?=$|[\"'\\\\s<>)\\\\]]))`;\n\n/**\n * Strip query parameters from a URL for base matching\n */\nexport function getBaseUrl(url: string): string {\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\treturn `${parsed.origin}${parsed.pathname}`;\n\t} catch {\n\t\t// If URL parsing fails, try simple string split\n\t\treturn url.split(\"?\")[0] || url;\n\t}\n}\n\n/**\n * Whether a URL map key carries a query string, which makes it one URL rather\n * than a file: `https://example.com/?attachment_id=7` is an attachment's page,\n * and its base is the home page. Such a key is matched exactly, never by its\n * base, or every link to the home page would be rewritten with it.\n */\nexport function carriesQuery(url: string): boolean {\n\treturn QUERY_BEFORE_FRAGMENT.test(url);\n}\n\n/**\n * Build a map of base URLs to new URLs for flexible matching. A key that\n * carries a query has no base entry (see `carriesQuery`).\n */\nexport function buildBaseUrlMap(urlMap: Record<string, string>): Map<string, string> {\n\tconst baseMap = new Map<string, string>();\n\tfor (const [oldUrl, newUrl] of Object.entries(urlMap)) {\n\t\tif (carriesQuery(oldUrl)) continue;\n\t\tconst baseUrl = getBaseUrl(oldUrl);\n\t\tbaseMap.set(baseUrl, newUrl);\n\t}\n\treturn baseMap;\n}\n\n/**\n * Extract the URL to match from a stored media field value.\n *\n * Image/file columns hold a JSON-stringified MediaValue\n * (e.g. `{\"provider\":\"external\",\"id\":\"\",\"src\":\"https://.../hero.jpg\"}`), but legacy\n * rows may hold a bare URL string. Returns the inner `src` for a MediaValue, otherwise\n * the value unchanged. Without this, the whole JSON blob is passed to findMatchingUrl()\n * and the embedded URL is never matched.\n */\nexport function extractMediaUrl(value: string): string {\n\ttry {\n\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- shape validated below\n\t\tconst parsed = JSON.parse(value) as { src?: unknown };\n\t\tif (parsed && typeof parsed.src === \"string\") {\n\t\t\treturn parsed.src;\n\t\t}\n\t} catch {\n\t\t// Not JSON — treat the column value as a bare URL.\n\t}\n\treturn value;\n}\n\n/**\n * Find matching new URL for a given URL, checking exact, base, and WordPress image-size matches\n */\nexport function findMatchingUrl(\n\turl: string,\n\texactMap: Record<string, string>,\n\tbaseMap: Map<string, string>,\n): string | null {\n\tif (exactMap[url]) {\n\t\treturn exactMap[url];\n\t}\n\n\tconst baseUrl = getBaseUrl(url);\n\tconst baseMatch = baseMap.get(baseUrl);\n\tif (baseMatch) {\n\t\treturn baseMatch;\n\t}\n\n\tconst wordPressImageMatch = baseMap.get(stripWordPressImageSizeSuffix(baseUrl));\n\tif (wordPressImageMatch) {\n\t\treturn wordPressImageMatch;\n\t}\n\n\treturn null;\n}\n\n/**\n * Portable Text block type (simplified for URL rewriting)\n */\nexport interface PortableTextBlock {\n\t_type: string;\n\t_key?: string;\n\tasset?: {\n\t\t_type?: string;\n\t\t_ref?: string;\n\t\turl?: string;\n\t};\n\t/** Linked-image target: legacy string, or `{ href, blank? }` from the editor */\n\tlink?: string | { href?: string; blank?: boolean };\n\t// For nested content like galleries\n\timages?: PortableTextBlock[];\n\tcolumns?: Array<{ content?: PortableTextBlock[] }>;\n\t[key: string]: unknown;\n}\n\n/**\n * Rewrite URLs in a Portable Text array, returning whether any changes were made\n */\nexport function rewritePortableTextUrls(\n\tblocks: PortableTextBlock[],\n\texactMap: Record<string, string>,\n\tbaseMap: Map<string, string>,\n): { changed: boolean; urlsRewritten: number } {\n\tlet changed = false;\n\tlet urlsRewritten = 0;\n\n\tfor (const block of blocks) {\n\t\t// Handle image blocks\n\t\tif (block._type === \"image\" && block.asset?.url) {\n\t\t\tconst newUrl = findMatchingUrl(block.asset.url, exactMap, baseMap);\n\t\t\tif (newUrl) {\n\t\t\t\tblock.asset.url = newUrl;\n\t\t\t\tblock.asset._ref = newUrl; // Also update the reference\n\t\t\t\tchanged = true;\n\t\t\t\turlsRewritten++;\n\t\t\t}\n\t\t}\n\n\t\t// Handle image link URLs (for linked images). The link is a bare string on\n\t\t// freshly imported content and `{ href, blank? }` once edited in the editor.\n\t\tif (block._type === \"image\" && block.link) {\n\t\t\tconst linkHref = typeof block.link === \"string\" ? block.link : block.link.href;\n\t\t\tconst newUrl = linkHref ? findMatchingUrl(linkHref, exactMap, baseMap) : null;\n\t\t\tif (newUrl) {\n\t\t\t\tif (typeof block.link === \"string\") {\n\t\t\t\t\tblock.link = newUrl;\n\t\t\t\t} else {\n\t\t\t\t\tblock.link.href = newUrl;\n\t\t\t\t}\n\t\t\t\tchanged = true;\n\t\t\t\turlsRewritten++;\n\t\t\t}\n\t\t}\n\n\t\t// Handle gallery blocks with nested images\n\t\tif (block._type === \"gallery\" && Array.isArray(block.images)) {\n\t\t\tconst result = rewritePortableTextUrls(block.images, exactMap, baseMap);\n\t\t\tif (result.changed) {\n\t\t\t\tchanged = true;\n\t\t\t\turlsRewritten += result.urlsRewritten;\n\t\t\t}\n\t\t}\n\n\t\t// Handle columns blocks with nested content\n\t\tif (block._type === \"columns\" && Array.isArray(block.columns)) {\n\t\t\tfor (const column of block.columns) {\n\t\t\t\tif (Array.isArray(column.content)) {\n\t\t\t\t\tconst result = rewritePortableTextUrls(column.content, exactMap, baseMap);\n\t\t\t\t\tif (result.changed) {\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\turlsRewritten += result.urlsRewritten;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { changed, urlsRewritten };\n}\n\n/**\n * Rewrite URLs in a string field using simple string replacement\n */\nexport function rewriteStringUrls(\n\tvalue: string,\n\texactMap: Record<string, string>,\n\tbaseMap: Map<string, string>,\n): { newValue: string; changed: boolean; urlsRewritten: number } {\n\tlet newValue = value;\n\tlet changed = false;\n\tlet urlsRewritten = 0;\n\n\t// Try exact matches first. A key that carries a query is replaced only where\n\t// the URL ends with it: `?attachment_id=7` is not the start of `?attachment_id=71`.\n\tfor (const [oldUrl, newUrl] of Object.entries(exactMap)) {\n\t\tif (!newValue.includes(oldUrl)) continue;\n\t\tconst replaced = carriesQuery(oldUrl)\n\t\t\t? newValue.replace(new RegExp(`${escapeRegExp(oldUrl)}${URL_END}`, \"g\"), () => newUrl)\n\t\t\t: newValue.split(oldUrl).join(newUrl);\n\t\tif (replaced === newValue) continue;\n\t\tnewValue = replaced;\n\t\tchanged = true;\n\t\turlsRewritten++;\n\t}\n\n\t// For base URL matching in strings, we need to be more careful\n\t// Only match if we find a URL that starts with the base\n\tfor (const [baseUrl, newUrl] of baseMap.entries()) {\n\t\t// Look for the base URL followed by optional query string or end\n\t\tconst regex = buildBaseUrlMatchRegex(baseUrl);\n\t\tconst matches = newValue.match(regex);\n\t\tif (matches) {\n\t\t\tfor (const match of matches) {\n\t\t\t\t// Don't replace if we already have an exact match in the map\n\t\t\t\tif (!exactMap[match]) {\n\t\t\t\t\tnewValue = newValue.split(match).join(newUrl);\n\t\t\t\t\tchanged = true;\n\t\t\t\t\turlsRewritten++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { newValue, changed, urlsRewritten };\n}\n\n/**\n * Escape special regex characters in a string\n */\nfunction escapeRegExp(string: string): string {\n\treturn string.replace(REGEX_SPECIAL_CHARS, \"\\\\$&\");\n}\n\nfunction stripWordPressImageSizeSuffix(url: string): string {\n\treturn url.replace(WORDPRESS_IMAGE_SIZE_SUFFIX, \"\");\n}\n\nfunction buildBaseUrlMatchRegex(baseUrl: string): RegExp {\n\tconst extensionMatch = BASE_URL_EXTENSION.exec(baseUrl);\n\tconst basePattern = extensionMatch\n\t\t? `${escapeRegExp(extensionMatch[1])}(?:-\\\\d+x\\\\d+)?${escapeRegExp(extensionMatch[2])}`\n\t\t: escapeRegExp(baseUrl);\n\n\treturn new RegExp(`${basePattern}(\\\\?[^\"'\\\\s]*)?${URL_END}`, \"g\");\n}\n"],"mappings":";AAAA,MAAM,sBAAsB;AAC5B,MAAM,8BAA8B;AACpC,MAAM,qBAAqB;AAC3B,MAAM,wBAAwB;;AAE9B,MAAM,UAAU;;;;AAKhB,SAAgB,WAAW,KAAqB;AAC/C,KAAI;EACH,MAAM,SAAS,IAAI,IAAI,IAAI;AAC3B,SAAO,GAAG,OAAO,SAAS,OAAO;SAC1B;AAEP,SAAO,IAAI,MAAM,IAAI,CAAC,MAAM;;;;;;;;;AAU9B,SAAgB,aAAa,KAAsB;AAClD,QAAO,sBAAsB,KAAK,IAAI;;;;;;AAOvC,SAAgB,gBAAgB,QAAqD;CACpF,MAAM,0BAAU,IAAI,KAAqB;AACzC,MAAK,MAAM,CAAC,QAAQ,WAAW,OAAO,QAAQ,OAAO,EAAE;AACtD,MAAI,aAAa,OAAO,CAAE;EAC1B,MAAM,UAAU,WAAW,OAAO;AAClC,UAAQ,IAAI,SAAS,OAAO;;AAE7B,QAAO;;;;;;;;;;;AAYR,SAAgB,gBAAgB,OAAuB;AACtD,KAAI;EAEH,MAAM,SAAS,KAAK,MAAM,MAAM;AAChC,MAAI,UAAU,OAAO,OAAO,QAAQ,SACnC,QAAO,OAAO;SAER;AAGR,QAAO;;;;;AAMR,SAAgB,gBACf,KACA,UACA,SACgB;AAChB,KAAI,SAAS,KACZ,QAAO,SAAS;CAGjB,MAAM,UAAU,WAAW,IAAI;CAC/B,MAAM,YAAY,QAAQ,IAAI,QAAQ;AACtC,KAAI,UACH,QAAO;CAGR,MAAM,sBAAsB,QAAQ,IAAI,8BAA8B,QAAQ,CAAC;AAC/E,KAAI,oBACH,QAAO;AAGR,QAAO;;;;;AAyBR,SAAgB,wBACf,QACA,UACA,SAC8C;CAC9C,IAAI,UAAU;CACd,IAAI,gBAAgB;AAEpB,MAAK,MAAM,SAAS,QAAQ;AAE3B,MAAI,MAAM,UAAU,WAAW,MAAM,OAAO,KAAK;GAChD,MAAM,SAAS,gBAAgB,MAAM,MAAM,KAAK,UAAU,QAAQ;AAClE,OAAI,QAAQ;AACX,UAAM,MAAM,MAAM;AAClB,UAAM,MAAM,OAAO;AACnB,cAAU;AACV;;;AAMF,MAAI,MAAM,UAAU,WAAW,MAAM,MAAM;GAC1C,MAAM,WAAW,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO,MAAM,KAAK;GAC1E,MAAM,SAAS,WAAW,gBAAgB,UAAU,UAAU,QAAQ,GAAG;AACzE,OAAI,QAAQ;AACX,QAAI,OAAO,MAAM,SAAS,SACzB,OAAM,OAAO;QAEb,OAAM,KAAK,OAAO;AAEnB,cAAU;AACV;;;AAKF,MAAI,MAAM,UAAU,aAAa,MAAM,QAAQ,MAAM,OAAO,EAAE;GAC7D,MAAM,SAAS,wBAAwB,MAAM,QAAQ,UAAU,QAAQ;AACvE,OAAI,OAAO,SAAS;AACnB,cAAU;AACV,qBAAiB,OAAO;;;AAK1B,MAAI,MAAM,UAAU,aAAa,MAAM,QAAQ,MAAM,QAAQ,EAC5D;QAAK,MAAM,UAAU,MAAM,QAC1B,KAAI,MAAM,QAAQ,OAAO,QAAQ,EAAE;IAClC,MAAM,SAAS,wBAAwB,OAAO,SAAS,UAAU,QAAQ;AACzE,QAAI,OAAO,SAAS;AACnB,eAAU;AACV,sBAAiB,OAAO;;;;;AAO7B,QAAO;EAAE;EAAS;EAAe;;;;;AAMlC,SAAgB,kBACf,OACA,UACA,SACgE;CAChE,IAAI,WAAW;CACf,IAAI,UAAU;CACd,IAAI,gBAAgB;AAIpB,MAAK,MAAM,CAAC,QAAQ,WAAW,OAAO,QAAQ,SAAS,EAAE;AACxD,MAAI,CAAC,SAAS,SAAS,OAAO,CAAE;EAChC,MAAM,WAAW,aAAa,OAAO,GAClC,SAAS,QAAQ,IAAI,OAAO,GAAG,aAAa,OAAO,GAAG,WAAW,IAAI,QAAQ,OAAO,GACpF,SAAS,MAAM,OAAO,CAAC,KAAK,OAAO;AACtC,MAAI,aAAa,SAAU;AAC3B,aAAW;AACX,YAAU;AACV;;AAKD,MAAK,MAAM,CAAC,SAAS,WAAW,QAAQ,SAAS,EAAE;EAElD,MAAM,QAAQ,uBAAuB,QAAQ;EAC7C,MAAM,UAAU,SAAS,MAAM,MAAM;AACrC,MAAI,SACH;QAAK,MAAM,SAAS,QAEnB,KAAI,CAAC,SAAS,QAAQ;AACrB,eAAW,SAAS,MAAM,MAAM,CAAC,KAAK,OAAO;AAC7C,cAAU;AACV;;;;AAMJ,QAAO;EAAE;EAAU;EAAS;EAAe;;;;;AAM5C,SAAS,aAAa,QAAwB;AAC7C,QAAO,OAAO,QAAQ,qBAAqB,OAAO;;AAGnD,SAAS,8BAA8B,KAAqB;AAC3D,QAAO,IAAI,QAAQ,6BAA6B,GAAG;;AAGpD,SAAS,uBAAuB,SAAyB;CACxD,MAAM,iBAAiB,mBAAmB,KAAK,QAAQ;CACvD,MAAM,cAAc,iBACjB,GAAG,aAAa,eAAe,GAAG,CAAC,iBAAiB,aAAa,eAAe,GAAG,KACnF,aAAa,QAAQ;AAExB,QAAO,IAAI,OAAO,GAAG,YAAY,iBAAiB,WAAW,IAAI"}
1
+ {"version":3,"file":"rewrite-url-helpers.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/import/wordpress/rewrite-url-helpers.ts"],"sourcesContent":["const REGEX_SPECIAL_CHARS = /[.*+?^${}()|[\\]\\\\]/g;\nconst WORDPRESS_IMAGE_SIZE_SUFFIX = /-\\d+x\\d+(?=\\.[^./?#]+$)/;\nconst BASE_URL_EXTENSION = /^(.+)(\\.[^./?#]+)$/;\nconst QUERY_BEFORE_FRAGMENT = /^[^#]*\\?/;\n/** What may follow a URL in a string field: its end, a quote, a tag, or the punctuation of prose. */\nconst URL_END = `(?=$|[\"'\\\\s<>)\\\\],;:!?]|\\\\.(?=$|[\"'\\\\s<>)\\\\]]))`;\n\n/**\n * Strip query parameters from a URL for base matching\n */\nexport function getBaseUrl(url: string): string {\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\treturn `${parsed.origin}${parsed.pathname}`;\n\t} catch {\n\t\t// If URL parsing fails, try simple string split\n\t\treturn url.split(\"?\")[0] || url;\n\t}\n}\n\n/**\n * Whether a URL map key carries a query string, which makes it one URL rather\n * than a file: `https://example.com/?attachment_id=7` is an attachment's page,\n * and its base is the home page. Such a key is matched exactly, never by its\n * base, or every link to the home page would be rewritten with it.\n */\nexport function carriesQuery(url: string): boolean {\n\treturn QUERY_BEFORE_FRAGMENT.test(url);\n}\n\n/**\n * Build a map of base URLs to new URLs for flexible matching. A key that\n * carries a query has no base entry (see `carriesQuery`).\n */\nexport function buildBaseUrlMap(urlMap: Record<string, string>): Map<string, string> {\n\tconst baseMap = new Map<string, string>();\n\tfor (const [oldUrl, newUrl] of Object.entries(urlMap)) {\n\t\tif (carriesQuery(oldUrl)) continue;\n\t\tconst baseUrl = getBaseUrl(oldUrl);\n\t\tbaseMap.set(baseUrl, newUrl);\n\t}\n\treturn baseMap;\n}\n\n/**\n * Extract the URL to match from a stored media field value.\n *\n * Image/file columns hold a JSON-stringified MediaValue\n * (e.g. `{\"provider\":\"external\",\"id\":\"\",\"src\":\"https://.../hero.jpg\"}`), but legacy\n * rows may hold a bare URL string. Returns the inner `src` for a MediaValue, otherwise\n * the value unchanged. Without this, the whole JSON blob is passed to findMatchingUrl()\n * and the embedded URL is never matched.\n */\nexport function extractMediaUrl(value: string): string {\n\ttry {\n\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- shape validated below\n\t\tconst parsed = JSON.parse(value) as { src?: unknown };\n\t\tif (parsed && typeof parsed.src === \"string\") {\n\t\t\treturn parsed.src;\n\t\t}\n\t} catch {\n\t\t// Not JSON — treat the column value as a bare URL.\n\t}\n\treturn value;\n}\n\n/**\n * Find matching new URL for a given URL, checking exact, base, and WordPress image-size matches\n */\nexport function findMatchingUrl(\n\turl: string,\n\texactMap: Record<string, string>,\n\tbaseMap: Map<string, string>,\n): string | null {\n\tif (exactMap[url]) {\n\t\treturn exactMap[url];\n\t}\n\n\tconst baseUrl = getBaseUrl(url);\n\tconst baseMatch = baseMap.get(baseUrl);\n\tif (baseMatch) {\n\t\treturn baseMatch;\n\t}\n\n\tconst wordPressImageMatch = baseMap.get(stripWordPressImageSizeSuffix(baseUrl));\n\tif (wordPressImageMatch) {\n\t\treturn wordPressImageMatch;\n\t}\n\n\treturn null;\n}\n\n/**\n * Portable Text block type (simplified for URL rewriting)\n */\nexport interface PortableTextBlock {\n\t_type: string;\n\t_key?: string;\n\tasset?: {\n\t\t_type?: string;\n\t\t_ref?: string;\n\t\turl?: string;\n\t};\n\t/** Linked-image target: legacy string, or `{ href, blank? }` from the editor */\n\tlink?: string | { href?: string; blank?: boolean };\n\t// For nested content like galleries\n\timages?: PortableTextBlock[];\n\tcolumns?: Array<{ content?: PortableTextBlock[] }>;\n\tcontent?: PortableTextBlock[];\n\tmarkDefs?: Array<Record<string, unknown>>;\n\trows?: Array<{ cells?: Array<{ markDefs?: Array<Record<string, unknown>> }> }>;\n\tbuttons?: Array<Record<string, unknown>>;\n\t[key: string]: unknown;\n}\n\n/**\n * Rewrite URLs in a Portable Text array, returning whether any changes were made\n */\nexport function rewritePortableTextUrls(\n\tblocks: PortableTextBlock[],\n\texactMap: Record<string, string>,\n\tbaseMap: Map<string, string>,\n): { changed: boolean; urlsRewritten: number } {\n\tlet changed = false;\n\tlet urlsRewritten = 0;\n\n\tconst rewriteField = (target: Record<string, unknown>, key: string): boolean => {\n\t\tconst value = target[key];\n\t\tconst newUrl = typeof value === \"string\" ? findMatchingUrl(value, exactMap, baseMap) : null;\n\t\tif (!newUrl) return false;\n\t\ttarget[key] = newUrl;\n\t\tchanged = true;\n\t\turlsRewritten++;\n\t\treturn true;\n\t};\n\tconst rewriteHtml = (target: Record<string, unknown>, count = true) => {\n\t\tif (typeof target.html !== \"string\") return;\n\t\tconst result = rewriteStringUrls(target.html, exactMap, baseMap);\n\t\tif (result.changed) {\n\t\t\ttarget.html = result.newValue;\n\t\t\tchanged = true;\n\t\t\tif (count) urlsRewritten += result.urlsRewritten;\n\t\t}\n\t};\n\tconst rewriteMarkDefs = (markDefs: Array<Record<string, unknown>> | undefined) => {\n\t\tfor (const def of markDefs ?? []) rewriteField(def, \"href\");\n\t};\n\tconst rewriteNested = (content: PortableTextBlock[] | undefined) => {\n\t\tif (!Array.isArray(content)) return;\n\t\tconst result = rewritePortableTextUrls(content, exactMap, baseMap);\n\t\tif (result.changed) {\n\t\t\tchanged = true;\n\t\t\turlsRewritten += result.urlsRewritten;\n\t\t}\n\t};\n\n\tfor (const block of blocks) {\n\t\tswitch (block._type) {\n\t\t\tcase \"image\":\n\t\t\t\tif (block.asset?.url) {\n\t\t\t\t\tconst newUrl = findMatchingUrl(block.asset.url, exactMap, baseMap);\n\t\t\t\t\tif (newUrl) {\n\t\t\t\t\t\tblock.asset.url = newUrl;\n\t\t\t\t\t\tblock.asset._ref = newUrl; // Also update the reference\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\turlsRewritten++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// The link is a bare string on freshly imported content and\n\t\t\t\t// `{ href, blank? }` once edited in the editor.\n\t\t\t\tif (typeof block.link === \"string\") {\n\t\t\t\t\trewriteField(block, \"link\");\n\t\t\t\t} else if (block.link) {\n\t\t\t\t\trewriteField(block.link, \"href\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"gallery\":\n\t\t\t\trewriteNested(block.images);\n\t\t\t\tbreak;\n\t\t\tcase \"columns\":\n\t\t\t\tfor (const column of block.columns ?? []) rewriteNested(column.content);\n\t\t\t\tbreak;\n\t\t\tcase \"cover\":\n\t\t\t\trewriteField(block, \"backgroundImage\");\n\t\t\t\trewriteNested(block.content);\n\t\t\t\tbreak;\n\t\t\tcase \"block\":\n\t\t\t\trewriteMarkDefs(block.markDefs);\n\t\t\t\tbreak;\n\t\t\tcase \"table\":\n\t\t\t\tfor (const row of block.rows ?? []) {\n\t\t\t\t\tfor (const cell of row.cells ?? []) rewriteMarkDefs(cell.markDefs);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"file\":\n\t\t\tcase \"button\":\n\t\t\t\trewriteField(block, \"url\");\n\t\t\t\tbreak;\n\t\t\tcase \"embed\":\n\t\t\t\t// The html carries the same media URL; count it only when the url didn't match\n\t\t\t\trewriteHtml(block, !rewriteField(block, \"url\"));\n\t\t\t\tbreak;\n\t\t\tcase \"htmlBlock\":\n\t\t\t\trewriteHtml(block);\n\t\t\t\tbreak;\n\t\t\tcase \"buttons\":\n\t\t\t\tfor (const button of block.buttons ?? []) rewriteField(button, \"url\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn { changed, urlsRewritten };\n}\n\n/**\n * Rewrite URLs in a string field using simple string replacement\n */\nexport function rewriteStringUrls(\n\tvalue: string,\n\texactMap: Record<string, string>,\n\tbaseMap: Map<string, string>,\n): { newValue: string; changed: boolean; urlsRewritten: number } {\n\tlet newValue = value;\n\tlet changed = false;\n\tlet urlsRewritten = 0;\n\n\t// Try exact matches first. A key that carries a query is replaced only where\n\t// the URL ends with it: `?attachment_id=7` is not the start of `?attachment_id=71`.\n\tfor (const [oldUrl, newUrl] of Object.entries(exactMap)) {\n\t\tif (!newValue.includes(oldUrl)) continue;\n\t\tconst replaced = carriesQuery(oldUrl)\n\t\t\t? newValue.replace(new RegExp(`${escapeRegExp(oldUrl)}${URL_END}`, \"g\"), () => newUrl)\n\t\t\t: newValue.split(oldUrl).join(newUrl);\n\t\tif (replaced === newValue) continue;\n\t\tnewValue = replaced;\n\t\tchanged = true;\n\t\turlsRewritten++;\n\t}\n\n\t// For base URL matching in strings, we need to be more careful\n\t// Only match if we find a URL that starts with the base\n\tfor (const [baseUrl, newUrl] of baseMap.entries()) {\n\t\t// Look for the base URL followed by optional query string or end\n\t\tconst regex = buildBaseUrlMatchRegex(baseUrl);\n\t\tconst matches = newValue.match(regex);\n\t\tif (matches) {\n\t\t\tfor (const match of matches) {\n\t\t\t\t// Don't replace if we already have an exact match in the map\n\t\t\t\tif (!exactMap[match]) {\n\t\t\t\t\tnewValue = newValue.split(match).join(newUrl);\n\t\t\t\t\tchanged = true;\n\t\t\t\t\turlsRewritten++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { newValue, changed, urlsRewritten };\n}\n\n/**\n * Escape special regex characters in a string\n */\nfunction escapeRegExp(string: string): string {\n\treturn string.replace(REGEX_SPECIAL_CHARS, \"\\\\$&\");\n}\n\nfunction stripWordPressImageSizeSuffix(url: string): string {\n\treturn url.replace(WORDPRESS_IMAGE_SIZE_SUFFIX, \"\");\n}\n\nfunction buildBaseUrlMatchRegex(baseUrl: string): RegExp {\n\tconst extensionMatch = BASE_URL_EXTENSION.exec(baseUrl);\n\tconst basePattern = extensionMatch\n\t\t? `${escapeRegExp(extensionMatch[1])}(?:-\\\\d+x\\\\d+)?${escapeRegExp(extensionMatch[2])}`\n\t\t: escapeRegExp(baseUrl);\n\n\treturn new RegExp(`${basePattern}(\\\\?[^\"'\\\\s]*)?${URL_END}`, \"g\");\n}\n"],"mappings":"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"}
@@ -1,16 +1,16 @@
1
- import "../../../../../parse-QVS0t5oR.mjs";
2
- import "../../../../../types-ifgOkcBa.mjs";
3
- import "../../../../../types-BT1p3uyb.mjs";
4
- import "../../../../../options-B41aLm1I.mjs";
5
- import "../../../../../entry-lock-esmMbgI9.mjs";
6
- import { f as MediaProvider } from "../../../../../placeholder-Dn7MMdWr.mjs";
7
- import { Xr as markContentMediaUsageCollectionStaleSafely } from "../../../../../config-B6BDSsz2.mjs";
8
- import "../../../../../runner-J3Cj6DGk.mjs";
9
- import "../../../../../storage-query-C7iy6eUb.mjs";
10
- import "../../../../../index-B4sIdCAT.mjs";
11
- import "../../../../../types-CV5xszpF.mjs";
12
- import "../../../../../hreflang-egumj6WF.mjs";
13
- import "../../../../../validate-CfQ9_YlD.mjs";
1
+ import "../../../../../parse-CWHOFc6z.mjs";
2
+ import "../../../../../types-DCFavOii.mjs";
3
+ import "../../../../../types-QoPHm-2w.mjs";
4
+ import "../../../../../options-DJWaq3Ie.mjs";
5
+ import "../../../../../entry-lock-C7VX0NGK.mjs";
6
+ import { f as MediaProvider } from "../../../../../placeholder-D41vk11_.mjs";
7
+ import { Zr as markContentMediaUsageCollectionStaleSafely } from "../../../../../config-Bsm_u_oE.mjs";
8
+ import "../../../../../runner-BObHz5FC.mjs";
9
+ import "../../../../../storage-query-DRyu3bSU.mjs";
10
+ import "../../../../../index-BB9sVisO.mjs";
11
+ import "../../../../../types-DHO7Pd25.mjs";
12
+ import "../../../../../hreflang-CY_F5OjF.mjs";
13
+ import "../../../../../validate-emKxGC5F.mjs";
14
14
  import { EmDashHandlers } from "../../../../types.mjs";
15
15
  import { APIRoute } from "astro";
16
16
 
@@ -4,33 +4,34 @@ import "../../../../../config-CvmjJcVw.mjs";
4
4
  import "../../../../../base64-BQBZwXCx.mjs";
5
5
  import "../../../../../request-cache-C4CIo5ad.mjs";
6
6
  import "../../../../../url-Dn3IStq8.mjs";
7
- import "../../../../../types-C-Xp0CcN.mjs";
7
+ import "../../../../../types-D2NEXtgB.mjs";
8
8
  import { n as normalizeMediaValue } from "../../../../../normalize-BuWa0lvd.mjs";
9
- import "../../../../../fts-manager-DacCYIe4.mjs";
10
- import "../../../../../collection-slugs-cache-B2Gs9Jwx.mjs";
11
- import "../../../../../capture-triggers-C9JKoIdT.mjs";
12
- import "../../../../../activation-xomsCMJg.mjs";
13
- import "../../../../../media-usage-work-C734aq6s.mjs";
14
- import { U as markContentMediaUsageCollectionStaleSafely } from "../../../../../registry-DaXmUsD4.mjs";
15
- import "../../../../../hash-C4DFoJ7Z.mjs";
16
- import "../../../../../zod-generator-BQilAboC.mjs";
17
- import "../../../../../errors-CuHQRiBW.mjs";
18
- import "../../../../../canonical-Y1dpjCnp.mjs";
19
- import "../../../../../digest-xIpR3o64.mjs";
20
- import "../../../../../errors-DTE6C3K_.mjs";
21
- import "../../../../../settings-WHr45II1.mjs";
22
- import "../../../../../site-settings-KJOqJW6W.mjs";
23
- import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-B0rgPgsQ.mjs";
24
- import { n as parseBody, t as isParseError } from "../../../../../parse-CmFDTGzp.mjs";
25
- import "../../../../../redirects-D4EWeXAo.mjs";
26
- import "../../../../../entry-lock-sxz2PGAT.mjs";
27
- import "../../../../../media-aahnKHze.mjs";
28
- import "../../../../../comments-BRtp992B.mjs";
29
- import { _ as wpRewriteUrlsBody } from "../../../../../byline-fields-DHJs0Mja.mjs";
30
- import "../../../../../menus-BQKqf0Up.mjs";
31
- import "../../../../../status-D39Fpy8R.mjs";
9
+ import "../../../../../fts-manager-Beg3e4bI.mjs";
10
+ import "../../../../../json-recordset-BUjxhr77.mjs";
11
+ import "../../../../../collection-slugs-cache-e09QeJQt.mjs";
12
+ import "../../../../../media-usage-work-CkLa5-nc.mjs";
13
+ import "../../../../../capture-triggers-CT6dK9zd.mjs";
14
+ import "../../../../../activation-Dim4YMM7.mjs";
15
+ import { U as markContentMediaUsageCollectionStaleSafely } from "../../../../../registry-TUVaid9Z.mjs";
16
+ import "../../../../../hash-BJaeek87.mjs";
17
+ import "../../../../../zod-generator-D0JKy94C.mjs";
18
+ import "../../../../../errors-B4f4It-2.mjs";
19
+ import "../../../../../canonical-BudtH-Fx.mjs";
20
+ import "../../../../../digest-DJ1tHCgy.mjs";
21
+ import "../../../../../errors-BOYNdIo3.mjs";
22
+ import "../../../../../settings-Dd1uivmQ.mjs";
23
+ import "../../../../../site-settings-DRHfX7bq.mjs";
24
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-CVWeIOku.mjs";
25
+ import { n as parseBody, t as isParseError } from "../../../../../parse-DgQ2NABT.mjs";
26
+ import "../../../../../redirects-BEVSRMa2.mjs";
27
+ import "../../../../../entry-lock-Df6-XhIu.mjs";
28
+ import "../../../../../media-1WC65OCB.mjs";
29
+ import "../../../../../comments-yiRFx3w5.mjs";
30
+ import { _ as wpRewriteUrlsBody } from "../../../../../byline-fields-BLXZnX7N.mjs";
31
+ import "../../../../../menus-BSzwObhV.mjs";
32
+ import "../../../../../status-BFNdxzKc.mjs";
32
33
  import "../../../../../api/schemas/index.mjs";
33
- import { i as requirePerm } from "../../../../../authorize-DeWfk--K.mjs";
34
+ import { o as requirePerm } from "../../../../../authorize-DPFBGbE6.mjs";
34
35
  import { buildBaseUrlMap, extractMediaUrl, findMatchingUrl, rewritePortableTextUrls, rewriteStringUrls } from "./rewrite-url-helpers.mjs";
35
36
  import { sql } from "kysely";
36
37
 
@@ -57,7 +58,7 @@ const POST = async ({ request, locals }) => {
57
58
  }
58
59
  };
59
60
  async function rewriteUrls(db, urlMap, getProvider, collections, markUsageCollectionStale = markContentMediaUsageCollectionStaleSafely) {
60
- const { SchemaRegistry } = await import("../../../../../registry-DaXmUsD4.mjs").then((n) => n.r);
61
+ const { SchemaRegistry } = await import("../../../../../registry-TUVaid9Z.mjs").then((n) => n.r);
61
62
  const registry = new SchemaRegistry(db);
62
63
  const result = {
63
64
  updated: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite-urls.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/import/wordpress/rewrite-urls.ts"],"sourcesContent":["/**\n * WordPress URL rewrite endpoint\n *\n * POST /_emdash/api/import/wordpress/rewrite-urls\n *\n * Rewrites old WordPress media URLs in Portable Text content\n * to point to newly imported EmDash media URLs.\n *\n * Handles URL variants (e.g., image.jpg vs image.jpg?w=200) by matching\n * on the base URL path without query parameters.\n */\n\nimport type { APIRoute } from \"astro\";\nimport { sql } from \"kysely\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { wpRewriteUrlsBody } from \"#api/schemas.js\";\nimport { validateIdentifier } from \"#db/validate.js\";\nimport { normalizeMediaValue } from \"#media/normalize.js\";\nimport type { MediaProvider } from \"#media/types.js\";\nimport { markContentMediaUsageCollectionStaleSafely } from \"#media/usage/content-refresh.js\";\nimport type { EmDashHandlers } from \"#types\";\n\nimport {\n\tbuildBaseUrlMap,\n\textractMediaUrl,\n\tfindMatchingUrl,\n\trewritePortableTextUrls,\n\trewriteStringUrls,\n} from \"./rewrite-url-helpers.js\";\nimport type { PortableTextBlock } from \"./rewrite-url-helpers.js\";\n\nexport interface RewriteUrlsResult {\n\t/** Total items updated */\n\tupdated: number;\n\t/** Updates by collection */\n\tbyCollection: Record<string, number>;\n\t/** URLs that were rewritten */\n\turlsRewritten: number;\n\t/** Any errors encountered */\n\terrors: Array<{ collection: string; id: string; error: string }>;\n}\n\nexport const prerender = false;\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NO_DB\", \"Database not initialized\", 500);\n\t}\n\n\tconst denied = requirePerm(user, \"import:execute\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst body = await parseBody(request, wpRewriteUrlsBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst urlEntries = Object.entries(body.urlMap);\n\t\tif (urlEntries.length === 0) {\n\t\t\treturn apiSuccess({\n\t\t\t\tupdated: 0,\n\t\t\t\tbyCollection: {},\n\t\t\t\turlsRewritten: 0,\n\t\t\t\terrors: [],\n\t\t\t});\n\t\t}\n\n\t\tconst getProvider = (id: string) => emdash.getMediaProvider(id);\n\t\tconst result = await rewriteUrls(emdash.db, body.urlMap, getProvider, body.collections);\n\n\t\treturn apiSuccess(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to rewrite URLs\", \"REWRITE_ERROR\");\n\t}\n};\n\nexport async function rewriteUrls(\n\tdb: NonNullable<EmDashHandlers[\"db\"]>,\n\turlMap: Record<string, string>,\n\tgetProvider: (id: string) => MediaProvider | undefined,\n\tcollections?: string[],\n\tmarkUsageCollectionStale: typeof markContentMediaUsageCollectionStaleSafely = markContentMediaUsageCollectionStaleSafely,\n): Promise<RewriteUrlsResult> {\n\tconst { SchemaRegistry } = await import(\"#schema/registry.js\");\n\tconst registry = new SchemaRegistry(db);\n\n\tconst result: RewriteUrlsResult = {\n\t\tupdated: 0,\n\t\tbyCollection: {},\n\t\turlsRewritten: 0,\n\t\terrors: [],\n\t};\n\tconst staleMarkedCollections = new Set<string>();\n\tconst staleMarkFailedCollections = new Set<string>();\n\tconst markCollectionStale = async (collectionSlug: string): Promise<void> => {\n\t\tif (staleMarkedCollections.has(collectionSlug)) return;\n\t\tconst marked = await markUsageCollectionStale(db, collectionSlug, \"CONTENT_USAGE_STALE\");\n\t\tif (marked) {\n\t\t\tstaleMarkedCollections.add(collectionSlug);\n\t\t\tstaleMarkFailedCollections.delete(collectionSlug);\n\t\t} else {\n\t\t\tstaleMarkFailedCollections.add(collectionSlug);\n\t\t}\n\t};\n\n\t// Build base URL map for flexible matching\n\tconst baseMap = buildBaseUrlMap(urlMap);\n\n\t// Get all collections or filter to specified ones\n\tconst allCollections = await registry.listCollections();\n\tconst targetCollections = collections?.length\n\t\t? allCollections.filter((c) => collections.includes(c.slug))\n\t\t: allCollections;\n\n\ttry {\n\t\tfor (const collection of targetCollections) {\n\t\t\t// Get fields that might contain URLs\n\t\t\tconst fields = await registry.listFields(collection.id);\n\t\t\tconst portableTextFields = fields.filter((f) => f.type === \"portableText\");\n\t\t\tconst stringFields = fields.filter((f) => [\"text\", \"string\"].includes(f.type));\n\t\t\t// Image and file fields store URLs directly as TEXT\n\t\t\tconst mediaFields = fields.filter((f) => [\"image\", \"file\"].includes(f.type));\n\n\t\t\tif (portableTextFields.length === 0 && stringFields.length === 0 && mediaFields.length === 0)\n\t\t\t\tcontinue;\n\n\t\t\t// Get table name\n\t\t\tvalidateIdentifier(collection.slug, \"collection slug\");\n\t\t\tconst tableName = `ec_${collection.slug}`;\n\n\t\t\ttry {\n\t\t\t\t// Query all rows\n\t\t\t\tconst rows = await sql<{ id: string; [key: string]: unknown }>`\n\t\t\t\tSELECT * FROM ${sql.ref(tableName)}\n\t\t\t\tWHERE deleted_at IS NULL\n\t\t\t`.execute(db);\n\n\t\t\t\tfor (const row of rows.rows) {\n\t\t\t\t\tlet rowUpdated = false;\n\t\t\t\t\tconst updates: Record<string, unknown> = {};\n\t\t\t\t\tlet rowUrlsRewritten = 0;\n\n\t\t\t\t\t// Handle Portable Text fields - parse JSON and rewrite URLs in blocks\n\t\t\t\t\tfor (const field of portableTextFields) {\n\t\t\t\t\t\tconst value = row[field.slug];\n\t\t\t\t\t\tif (!value || typeof value !== \"string\") continue;\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- JSON.parse returns unknown; validated by Array.isArray below\n\t\t\t\t\t\t\tconst blocks = JSON.parse(value) as PortableTextBlock[];\n\t\t\t\t\t\t\tif (!Array.isArray(blocks)) continue;\n\n\t\t\t\t\t\t\tconst rewriteResult = rewritePortableTextUrls(blocks, urlMap, baseMap);\n\n\t\t\t\t\t\t\tif (rewriteResult.changed) {\n\t\t\t\t\t\t\t\tupdates[field.slug] = JSON.stringify(blocks);\n\t\t\t\t\t\t\t\trowUpdated = true;\n\t\t\t\t\t\t\t\trowUrlsRewritten += rewriteResult.urlsRewritten;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// Not valid JSON, try string replacement as fallback\n\t\t\t\t\t\t\tconst stringResult = rewriteStringUrls(value, urlMap, baseMap);\n\t\t\t\t\t\t\tif (stringResult.changed) {\n\t\t\t\t\t\t\t\tupdates[field.slug] = stringResult.newValue;\n\t\t\t\t\t\t\t\trowUpdated = true;\n\t\t\t\t\t\t\t\trowUrlsRewritten += stringResult.urlsRewritten;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Handle string/text fields - simple string replacement\n\t\t\t\t\tfor (const field of stringFields) {\n\t\t\t\t\t\tconst value = row[field.slug];\n\t\t\t\t\t\tif (!value || typeof value !== \"string\") continue;\n\n\t\t\t\t\t\tconst stringResult = rewriteStringUrls(value, urlMap, baseMap);\n\t\t\t\t\t\tif (stringResult.changed) {\n\t\t\t\t\t\t\tupdates[field.slug] = stringResult.newValue;\n\t\t\t\t\t\t\trowUpdated = true;\n\t\t\t\t\t\t\trowUrlsRewritten += stringResult.urlsRewritten;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Handle image/file fields - normalize to MediaValue objects\n\t\t\t\t\tfor (const field of mediaFields) {\n\t\t\t\t\t\tconst value = row[field.slug];\n\t\t\t\t\t\tif (!value || typeof value !== \"string\") continue;\n\n\t\t\t\t\t\t// Values are stored as JSON MediaValue objects (e.g. featured_image from\n\t\t\t\t\t\t// import normalizes to {\"provider\":\"external\",\"src\":\"<wp url>\"}). Match on the\n\t\t\t\t\t\t// inner `src`, falling back to the raw value for legacy bare-URL rows.\n\t\t\t\t\t\tconst newUrl = findMatchingUrl(extractMediaUrl(value), urlMap, baseMap);\n\t\t\t\t\t\tif (newUrl) {\n\t\t\t\t\t\t\t// Normalize into a proper MediaValue instead of storing a bare URL\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst normalized = await normalizeMediaValue(newUrl, getProvider);\n\t\t\t\t\t\t\t\tupdates[field.slug] = normalized ? JSON.stringify(normalized) : newUrl;\n\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\tupdates[field.slug] = newUrl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trowUpdated = true;\n\t\t\t\t\t\t\trowUrlsRewritten++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (rowUpdated) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Build update query dynamically\n\t\t\t\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- Kysely dynamic table requires type assertion\n\t\t\t\t\t\t\tlet query = db.updateTable(tableName as any).where(\"id\", \"=\", row.id);\n\n\t\t\t\t\t\t\tfor (const [key, value] of Object.entries(updates)) {\n\t\t\t\t\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- Kysely dynamic column update requires type assertion\n\t\t\t\t\t\t\t\tquery = query.set({ [key]: value } as any);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tawait query.execute();\n\n\t\t\t\t\t\t\tresult.updated++;\n\t\t\t\t\t\t\tresult.urlsRewritten += rowUrlsRewritten;\n\t\t\t\t\t\t\tresult.byCollection[collection.slug] =\n\t\t\t\t\t\t\t\t(result.byCollection[collection.slug] || 0) + 1;\n\t\t\t\t\t\t\tawait markCollectionStale(collection.slug);\n\t\t\t\t\t\t} catch (updateError) {\n\t\t\t\t\t\t\tresult.errors.push({\n\t\t\t\t\t\t\t\tcollection: collection.slug,\n\t\t\t\t\t\t\t\tid: row.id,\n\t\t\t\t\t\t\t\terror: updateError instanceof Error ? updateError.message : \"Update failed\",\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (queryError) {\n\t\t\t\tresult.errors.push({\n\t\t\t\t\tcollection: collection.slug,\n\t\t\t\t\tid: \"*\",\n\t\t\t\t\terror: queryError instanceof Error ? queryError.message : \"Query failed for collection\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} finally {\n\t\tfor (const collectionSlug of staleMarkFailedCollections) {\n\t\t\tif (staleMarkedCollections.has(collectionSlug)) continue;\n\t\t\tconst marked = await markUsageCollectionStale(db, collectionSlug, \"CONTENT_USAGE_STALE\");\n\t\t\tif (marked) staleMarkedCollections.add(collectionSlug);\n\t\t}\n\t}\n\n\treturn result;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAa,YAAY;AAEzB,MAAa,OAAiB,OAAO,EAAE,SAAS,aAAa;CAC5D,MAAM,EAAE,QAAQ,SAAS;AAEzB,KAAI,CAAC,QAAQ,GACZ,QAAO,SAAS,SAAS,4BAA4B,IAAI;CAG1D,MAAM,SAAS,YAAY,MAAM,iBAAiB;AAClD,KAAI,OAAQ,QAAO;AAEnB,KAAI;EACH,MAAM,OAAO,MAAM,UAAU,SAAS,kBAAkB;AACxD,MAAI,aAAa,KAAK,CAAE,QAAO;AAG/B,MADmB,OAAO,QAAQ,KAAK,OAAO,CAC/B,WAAW,EACzB,QAAO,WAAW;GACjB,SAAS;GACT,cAAc,EAAE;GAChB,eAAe;GACf,QAAQ,EAAE;GACV,CAAC;EAGH,MAAM,eAAe,OAAe,OAAO,iBAAiB,GAAG;AAG/D,SAAO,WAFQ,MAAM,YAAY,OAAO,IAAI,KAAK,QAAQ,aAAa,KAAK,YAAY,CAE9D;UACjB,OAAO;AACf,SAAO,YAAY,OAAO,0BAA0B,gBAAgB;;;AAItE,eAAsB,YACrB,IACA,QACA,aACA,aACA,2BAA8E,4CACjD;CAC7B,MAAM,EAAE,mBAAmB,MAAM,OAAO;CACxC,MAAM,WAAW,IAAI,eAAe,GAAG;CAEvC,MAAM,SAA4B;EACjC,SAAS;EACT,cAAc,EAAE;EAChB,eAAe;EACf,QAAQ,EAAE;EACV;CACD,MAAM,yCAAyB,IAAI,KAAa;CAChD,MAAM,6CAA6B,IAAI,KAAa;CACpD,MAAM,sBAAsB,OAAO,mBAA0C;AAC5E,MAAI,uBAAuB,IAAI,eAAe,CAAE;AAEhD,MADe,MAAM,yBAAyB,IAAI,gBAAgB,sBAAsB,EAC5E;AACX,0BAAuB,IAAI,eAAe;AAC1C,8BAA2B,OAAO,eAAe;QAEjD,4BAA2B,IAAI,eAAe;;CAKhD,MAAM,UAAU,gBAAgB,OAAO;CAGvC,MAAM,iBAAiB,MAAM,SAAS,iBAAiB;CACvD,MAAM,oBAAoB,aAAa,SACpC,eAAe,QAAQ,MAAM,YAAY,SAAS,EAAE,KAAK,CAAC,GAC1D;AAEH,KAAI;AACH,OAAK,MAAM,cAAc,mBAAmB;GAE3C,MAAM,SAAS,MAAM,SAAS,WAAW,WAAW,GAAG;GACvD,MAAM,qBAAqB,OAAO,QAAQ,MAAM,EAAE,SAAS,eAAe;GAC1E,MAAM,eAAe,OAAO,QAAQ,MAAM,CAAC,QAAQ,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC;GAE9E,MAAM,cAAc,OAAO,QAAQ,MAAM,CAAC,SAAS,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;AAE5E,OAAI,mBAAmB,WAAW,KAAK,aAAa,WAAW,KAAK,YAAY,WAAW,EAC1F;AAGD,sBAAmB,WAAW,MAAM,kBAAkB;GACtD,MAAM,YAAY,MAAM,WAAW;AAEnC,OAAI;IAEH,MAAM,OAAO,MAAM,GAA2C;oBAC9C,IAAI,IAAI,UAAU,CAAC;;KAElC,QAAQ,GAAG;AAEZ,SAAK,MAAM,OAAO,KAAK,MAAM;KAC5B,IAAI,aAAa;KACjB,MAAM,UAAmC,EAAE;KAC3C,IAAI,mBAAmB;AAGvB,UAAK,MAAM,SAAS,oBAAoB;MACvC,MAAM,QAAQ,IAAI,MAAM;AACxB,UAAI,CAAC,SAAS,OAAO,UAAU,SAAU;AAEzC,UAAI;OAEH,MAAM,SAAS,KAAK,MAAM,MAAM;AAChC,WAAI,CAAC,MAAM,QAAQ,OAAO,CAAE;OAE5B,MAAM,gBAAgB,wBAAwB,QAAQ,QAAQ,QAAQ;AAEtE,WAAI,cAAc,SAAS;AAC1B,gBAAQ,MAAM,QAAQ,KAAK,UAAU,OAAO;AAC5C,qBAAa;AACb,4BAAoB,cAAc;;cAE5B;OAEP,MAAM,eAAe,kBAAkB,OAAO,QAAQ,QAAQ;AAC9D,WAAI,aAAa,SAAS;AACzB,gBAAQ,MAAM,QAAQ,aAAa;AACnC,qBAAa;AACb,4BAAoB,aAAa;;;;AAMpC,UAAK,MAAM,SAAS,cAAc;MACjC,MAAM,QAAQ,IAAI,MAAM;AACxB,UAAI,CAAC,SAAS,OAAO,UAAU,SAAU;MAEzC,MAAM,eAAe,kBAAkB,OAAO,QAAQ,QAAQ;AAC9D,UAAI,aAAa,SAAS;AACzB,eAAQ,MAAM,QAAQ,aAAa;AACnC,oBAAa;AACb,2BAAoB,aAAa;;;AAKnC,UAAK,MAAM,SAAS,aAAa;MAChC,MAAM,QAAQ,IAAI,MAAM;AACxB,UAAI,CAAC,SAAS,OAAO,UAAU,SAAU;MAKzC,MAAM,SAAS,gBAAgB,gBAAgB,MAAM,EAAE,QAAQ,QAAQ;AACvE,UAAI,QAAQ;AAEX,WAAI;QACH,MAAM,aAAa,MAAM,oBAAoB,QAAQ,YAAY;AACjE,gBAAQ,MAAM,QAAQ,aAAa,KAAK,UAAU,WAAW,GAAG;eACzD;AACP,gBAAQ,MAAM,QAAQ;;AAEvB,oBAAa;AACb;;;AAIF,SAAI,WACH,KAAI;MAGH,IAAI,QAAQ,GAAG,YAAY,UAAiB,CAAC,MAAM,MAAM,KAAK,IAAI,GAAG;AAErE,WAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,CAEjD,SAAQ,MAAM,IAAI,GAAG,MAAM,OAAO,CAAQ;AAG3C,YAAM,MAAM,SAAS;AAErB,aAAO;AACP,aAAO,iBAAiB;AACxB,aAAO,aAAa,WAAW,SAC7B,OAAO,aAAa,WAAW,SAAS,KAAK;AAC/C,YAAM,oBAAoB,WAAW,KAAK;cAClC,aAAa;AACrB,aAAO,OAAO,KAAK;OAClB,YAAY,WAAW;OACvB,IAAI,IAAI;OACR,OAAO,uBAAuB,QAAQ,YAAY,UAAU;OAC5D,CAAC;;;YAIG,YAAY;AACpB,WAAO,OAAO,KAAK;KAClB,YAAY,WAAW;KACvB,IAAI;KACJ,OAAO,sBAAsB,QAAQ,WAAW,UAAU;KAC1D,CAAC;;;WAGK;AACT,OAAK,MAAM,kBAAkB,4BAA4B;AACxD,OAAI,uBAAuB,IAAI,eAAe,CAAE;AAEhD,OADe,MAAM,yBAAyB,IAAI,gBAAgB,sBAAsB,CAC5E,wBAAuB,IAAI,eAAe;;;AAIxD,QAAO"}
1
+ {"version":3,"file":"rewrite-urls.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/import/wordpress/rewrite-urls.ts"],"sourcesContent":["/**\n * WordPress URL rewrite endpoint\n *\n * POST /_emdash/api/import/wordpress/rewrite-urls\n *\n * Rewrites old WordPress media URLs in Portable Text content\n * to point to newly imported EmDash media URLs.\n *\n * Handles URL variants (e.g., image.jpg vs image.jpg?w=200) by matching\n * on the base URL path without query parameters.\n */\n\nimport type { APIRoute } from \"astro\";\nimport { sql } from \"kysely\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { wpRewriteUrlsBody } from \"#api/schemas.js\";\nimport { validateIdentifier } from \"#db/validate.js\";\nimport { normalizeMediaValue } from \"#media/normalize.js\";\nimport type { MediaProvider } from \"#media/types.js\";\nimport { markContentMediaUsageCollectionStaleSafely } from \"#media/usage/content-refresh.js\";\nimport type { EmDashHandlers } from \"#types\";\n\nimport {\n\tbuildBaseUrlMap,\n\textractMediaUrl,\n\tfindMatchingUrl,\n\trewritePortableTextUrls,\n\trewriteStringUrls,\n} from \"./rewrite-url-helpers.js\";\nimport type { PortableTextBlock } from \"./rewrite-url-helpers.js\";\n\nexport interface RewriteUrlsResult {\n\t/** Total items updated */\n\tupdated: number;\n\t/** Updates by collection */\n\tbyCollection: Record<string, number>;\n\t/** URLs that were rewritten */\n\turlsRewritten: number;\n\t/** Any errors encountered */\n\terrors: Array<{ collection: string; id: string; error: string }>;\n}\n\nexport const prerender = false;\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NO_DB\", \"Database not initialized\", 500);\n\t}\n\n\tconst denied = requirePerm(user, \"import:execute\");\n\tif (denied) return denied;\n\n\ttry {\n\t\tconst body = await parseBody(request, wpRewriteUrlsBody);\n\t\tif (isParseError(body)) return body;\n\n\t\tconst urlEntries = Object.entries(body.urlMap);\n\t\tif (urlEntries.length === 0) {\n\t\t\treturn apiSuccess({\n\t\t\t\tupdated: 0,\n\t\t\t\tbyCollection: {},\n\t\t\t\turlsRewritten: 0,\n\t\t\t\terrors: [],\n\t\t\t});\n\t\t}\n\n\t\tconst getProvider = (id: string) => emdash.getMediaProvider(id);\n\t\tconst result = await rewriteUrls(emdash.db, body.urlMap, getProvider, body.collections);\n\n\t\treturn apiSuccess(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to rewrite URLs\", \"REWRITE_ERROR\");\n\t}\n};\n\nexport async function rewriteUrls(\n\tdb: NonNullable<EmDashHandlers[\"db\"]>,\n\turlMap: Record<string, string>,\n\tgetProvider: (id: string) => MediaProvider | undefined,\n\tcollections?: string[],\n\tmarkUsageCollectionStale: typeof markContentMediaUsageCollectionStaleSafely = markContentMediaUsageCollectionStaleSafely,\n): Promise<RewriteUrlsResult> {\n\tconst { SchemaRegistry } = await import(\"#schema/registry.js\");\n\tconst registry = new SchemaRegistry(db);\n\n\tconst result: RewriteUrlsResult = {\n\t\tupdated: 0,\n\t\tbyCollection: {},\n\t\turlsRewritten: 0,\n\t\terrors: [],\n\t};\n\tconst staleMarkedCollections = new Set<string>();\n\tconst staleMarkFailedCollections = new Set<string>();\n\tconst markCollectionStale = async (collectionSlug: string): Promise<void> => {\n\t\tif (staleMarkedCollections.has(collectionSlug)) return;\n\t\tconst marked = await markUsageCollectionStale(db, collectionSlug, \"CONTENT_USAGE_STALE\");\n\t\tif (marked) {\n\t\t\tstaleMarkedCollections.add(collectionSlug);\n\t\t\tstaleMarkFailedCollections.delete(collectionSlug);\n\t\t} else {\n\t\t\tstaleMarkFailedCollections.add(collectionSlug);\n\t\t}\n\t};\n\n\t// Build base URL map for flexible matching\n\tconst baseMap = buildBaseUrlMap(urlMap);\n\n\t// Get all collections or filter to specified ones\n\tconst allCollections = await registry.listCollections();\n\tconst targetCollections = collections?.length\n\t\t? allCollections.filter((c) => collections.includes(c.slug))\n\t\t: allCollections;\n\n\ttry {\n\t\tfor (const collection of targetCollections) {\n\t\t\t// Get fields that might contain URLs\n\t\t\tconst fields = await registry.listFields(collection.id);\n\t\t\tconst portableTextFields = fields.filter((f) => f.type === \"portableText\");\n\t\t\tconst stringFields = fields.filter((f) => [\"text\", \"string\"].includes(f.type));\n\t\t\t// Image and file fields store URLs directly as TEXT\n\t\t\tconst mediaFields = fields.filter((f) => [\"image\", \"file\"].includes(f.type));\n\n\t\t\tif (portableTextFields.length === 0 && stringFields.length === 0 && mediaFields.length === 0)\n\t\t\t\tcontinue;\n\n\t\t\t// Get table name\n\t\t\tvalidateIdentifier(collection.slug, \"collection slug\");\n\t\t\tconst tableName = `ec_${collection.slug}`;\n\n\t\t\ttry {\n\t\t\t\t// Query all rows\n\t\t\t\tconst rows = await sql<{ id: string; [key: string]: unknown }>`\n\t\t\t\tSELECT * FROM ${sql.ref(tableName)}\n\t\t\t\tWHERE deleted_at IS NULL\n\t\t\t`.execute(db);\n\n\t\t\t\tfor (const row of rows.rows) {\n\t\t\t\t\tlet rowUpdated = false;\n\t\t\t\t\tconst updates: Record<string, unknown> = {};\n\t\t\t\t\tlet rowUrlsRewritten = 0;\n\n\t\t\t\t\t// Handle Portable Text fields - parse JSON and rewrite URLs in blocks\n\t\t\t\t\tfor (const field of portableTextFields) {\n\t\t\t\t\t\tconst value = row[field.slug];\n\t\t\t\t\t\tif (!value || typeof value !== \"string\") continue;\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- JSON.parse returns unknown; validated by Array.isArray below\n\t\t\t\t\t\t\tconst blocks = JSON.parse(value) as PortableTextBlock[];\n\t\t\t\t\t\t\tif (!Array.isArray(blocks)) continue;\n\n\t\t\t\t\t\t\tconst rewriteResult = rewritePortableTextUrls(blocks, urlMap, baseMap);\n\n\t\t\t\t\t\t\tif (rewriteResult.changed) {\n\t\t\t\t\t\t\t\tupdates[field.slug] = JSON.stringify(blocks);\n\t\t\t\t\t\t\t\trowUpdated = true;\n\t\t\t\t\t\t\t\trowUrlsRewritten += rewriteResult.urlsRewritten;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// Not valid JSON, try string replacement as fallback\n\t\t\t\t\t\t\tconst stringResult = rewriteStringUrls(value, urlMap, baseMap);\n\t\t\t\t\t\t\tif (stringResult.changed) {\n\t\t\t\t\t\t\t\tupdates[field.slug] = stringResult.newValue;\n\t\t\t\t\t\t\t\trowUpdated = true;\n\t\t\t\t\t\t\t\trowUrlsRewritten += stringResult.urlsRewritten;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Handle string/text fields - simple string replacement\n\t\t\t\t\tfor (const field of stringFields) {\n\t\t\t\t\t\tconst value = row[field.slug];\n\t\t\t\t\t\tif (!value || typeof value !== \"string\") continue;\n\n\t\t\t\t\t\tconst stringResult = rewriteStringUrls(value, urlMap, baseMap);\n\t\t\t\t\t\tif (stringResult.changed) {\n\t\t\t\t\t\t\tupdates[field.slug] = stringResult.newValue;\n\t\t\t\t\t\t\trowUpdated = true;\n\t\t\t\t\t\t\trowUrlsRewritten += stringResult.urlsRewritten;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Handle image/file fields - normalize to MediaValue objects\n\t\t\t\t\tfor (const field of mediaFields) {\n\t\t\t\t\t\tconst value = row[field.slug];\n\t\t\t\t\t\tif (!value || typeof value !== \"string\") continue;\n\n\t\t\t\t\t\t// Values are stored as JSON MediaValue objects (e.g. featured_image from\n\t\t\t\t\t\t// import normalizes to {\"provider\":\"external\",\"src\":\"<wp url>\"}). Match on the\n\t\t\t\t\t\t// inner `src`, falling back to the raw value for legacy bare-URL rows.\n\t\t\t\t\t\tconst newUrl = findMatchingUrl(extractMediaUrl(value), urlMap, baseMap);\n\t\t\t\t\t\tif (newUrl) {\n\t\t\t\t\t\t\t// Normalize into a proper MediaValue instead of storing a bare URL\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst normalized = await normalizeMediaValue(newUrl, getProvider);\n\t\t\t\t\t\t\t\tupdates[field.slug] = normalized ? JSON.stringify(normalized) : newUrl;\n\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\tupdates[field.slug] = newUrl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trowUpdated = true;\n\t\t\t\t\t\t\trowUrlsRewritten++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (rowUpdated) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Build update query dynamically\n\t\t\t\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- Kysely dynamic table requires type assertion\n\t\t\t\t\t\t\tlet query = db.updateTable(tableName as any).where(\"id\", \"=\", row.id);\n\n\t\t\t\t\t\t\tfor (const [key, value] of Object.entries(updates)) {\n\t\t\t\t\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- Kysely dynamic column update requires type assertion\n\t\t\t\t\t\t\t\tquery = query.set({ [key]: value } as any);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tawait query.execute();\n\n\t\t\t\t\t\t\tresult.updated++;\n\t\t\t\t\t\t\tresult.urlsRewritten += rowUrlsRewritten;\n\t\t\t\t\t\t\tresult.byCollection[collection.slug] =\n\t\t\t\t\t\t\t\t(result.byCollection[collection.slug] || 0) + 1;\n\t\t\t\t\t\t\tawait markCollectionStale(collection.slug);\n\t\t\t\t\t\t} catch (updateError) {\n\t\t\t\t\t\t\tresult.errors.push({\n\t\t\t\t\t\t\t\tcollection: collection.slug,\n\t\t\t\t\t\t\t\tid: row.id,\n\t\t\t\t\t\t\t\terror: updateError instanceof Error ? updateError.message : \"Update failed\",\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (queryError) {\n\t\t\t\tresult.errors.push({\n\t\t\t\t\tcollection: collection.slug,\n\t\t\t\t\tid: \"*\",\n\t\t\t\t\terror: queryError instanceof Error ? queryError.message : \"Query failed for collection\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} finally {\n\t\tfor (const collectionSlug of staleMarkFailedCollections) {\n\t\t\tif (staleMarkedCollections.has(collectionSlug)) continue;\n\t\t\tconst marked = await markUsageCollectionStale(db, collectionSlug, \"CONTENT_USAGE_STALE\");\n\t\t\tif (marked) staleMarkedCollections.add(collectionSlug);\n\t\t}\n\t}\n\n\treturn result;\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { o as ImportAnalysis } from "../../../../../types-CV5xszpF.mjs";
1
+ import { o as ImportAnalysis } from "../../../../../types-DHO7Pd25.mjs";
2
2
  import { APIRoute } from "astro";
3
3
 
4
4
  //#region src/astro/routes/api/import/wordpress-plugin/analyze.d.ts