emdash 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1283) hide show
  1. package/dist/action-token-BdWad2YG.mjs +26 -0
  2. package/dist/action-token-BdWad2YG.mjs.map +1 -0
  3. package/dist/adapters-B4-nbElt.d.mts +173 -0
  4. package/dist/adapters-B4-nbElt.d.mts.map +1 -0
  5. package/dist/allowed-origins-CLpHGGlc.mjs +116 -0
  6. package/dist/allowed-origins-CLpHGGlc.mjs.map +1 -0
  7. package/dist/api/route-utils.d.mts +4 -4
  8. package/dist/api/route-utils.d.mts.map +1 -1
  9. package/dist/api/route-utils.mjs +39 -39
  10. package/dist/api/schemas/index.d.mts +2 -2
  11. package/dist/api/schemas/index.mjs +10 -10
  12. package/dist/api-DBw_IWoi.mjs +5024 -0
  13. package/dist/api-DBw_IWoi.mjs.map +1 -0
  14. package/dist/api-tokens-B0ZipcZ-.mjs +173 -0
  15. package/dist/api-tokens-B0ZipcZ-.mjs.map +1 -0
  16. package/dist/apply-Cx48saFC.mjs +1680 -0
  17. package/dist/apply-Cx48saFC.mjs.map +1 -0
  18. package/dist/approvals-BXgtXA2s.mjs +460 -0
  19. package/dist/approvals-BXgtXA2s.mjs.map +1 -0
  20. package/dist/artifact-fetch-DsRczRGG.mjs +659 -0
  21. package/dist/artifact-fetch-DsRczRGG.mjs.map +1 -0
  22. package/dist/artifacts-D-O-qj9C.mjs +307 -0
  23. package/dist/artifacts-D-O-qj9C.mjs.map +1 -0
  24. package/dist/astro/image-endpoint.d.mts.map +1 -1
  25. package/dist/astro/image-endpoint.mjs +26 -6
  26. package/dist/astro/image-endpoint.mjs.map +1 -1
  27. package/dist/astro/index.d.mts +14 -14
  28. package/dist/astro/index.d.mts.map +1 -1
  29. package/dist/astro/index.mjs +225 -15
  30. package/dist/astro/index.mjs.map +1 -1
  31. package/dist/astro/middleware/auth.d.mts +12 -12
  32. package/dist/astro/middleware/auth.d.mts.map +1 -1
  33. package/dist/astro/middleware/auth.mjs +15 -11
  34. package/dist/astro/middleware/auth.mjs.map +1 -1
  35. package/dist/astro/middleware/media-usage-write-fence.mjs +4 -4
  36. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  37. package/dist/astro/middleware/redirect.mjs +30 -15
  38. package/dist/astro/middleware/redirect.mjs.map +1 -1
  39. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  40. package/dist/astro/middleware/request-context.mjs +71 -44
  41. package/dist/astro/middleware/request-context.mjs.map +1 -1
  42. package/dist/astro/middleware/setup.mjs +1 -1
  43. package/dist/astro/middleware.d.mts +12 -12
  44. package/dist/astro/middleware.d.mts.map +1 -1
  45. package/dist/astro/middleware.mjs +129 -107
  46. package/dist/astro/middleware.mjs.map +1 -1
  47. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +13 -13
  48. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +13 -13
  49. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -5
  50. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs.map +1 -1
  51. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -6
  52. package/dist/astro/routes/api/admin/api-tokens/index.mjs.map +1 -1
  53. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +5 -5
  54. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +15 -15
  55. package/dist/astro/routes/api/admin/byline-fields/index.mjs +15 -15
  56. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +15 -15
  57. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +20 -20
  58. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +20 -20
  59. package/dist/astro/routes/api/admin/bylines/index.mjs +20 -20
  60. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +17 -17
  61. package/dist/astro/routes/api/admin/comments/_id_.mjs +6 -6
  62. package/dist/astro/routes/api/admin/comments/bulk.mjs +16 -16
  63. package/dist/astro/routes/api/admin/comments/counts.mjs +6 -6
  64. package/dist/astro/routes/api/admin/comments/index.mjs +16 -16
  65. package/dist/astro/routes/api/admin/core-update.mjs +6 -6
  66. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +5 -5
  67. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +4 -4
  68. package/dist/astro/routes/api/admin/media-usage/activation.mjs +17 -17
  69. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +19 -19
  70. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +19 -19
  71. package/dist/astro/routes/api/admin/media-usage/progress.mjs +16 -16
  72. package/dist/astro/routes/api/admin/media-usage/repair.mjs +22 -22
  73. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +19 -19
  74. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +19 -19
  75. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -5
  76. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -5
  77. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +7 -7
  78. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +7 -7
  79. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +63 -63
  80. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +6 -6
  81. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +62 -62
  82. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +63 -63
  83. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +72 -72
  84. package/dist/astro/routes/api/admin/plugins/index.mjs +63 -63
  85. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +6 -6
  86. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +62 -62
  87. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +71 -71
  88. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +62 -62
  89. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +63 -63
  90. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +73 -73
  91. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +8 -8
  92. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +65 -65
  93. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +6 -6
  94. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +63 -63
  95. package/dist/astro/routes/api/admin/plugins/updates.mjs +62 -62
  96. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +4 -4
  97. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +62 -62
  98. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +6 -6
  99. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +62 -62
  100. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +3 -3
  101. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +30 -30
  102. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +30 -30
  103. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +32 -32
  104. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +32 -32
  105. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +32 -32
  106. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +33 -33
  107. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +33 -33
  108. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +32 -32
  109. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +33 -33
  110. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +34 -34
  111. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +32 -32
  112. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +32 -32
  113. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +34 -34
  114. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +32 -32
  115. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +34 -34
  116. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +32 -32
  117. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +32 -32
  118. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +34 -34
  119. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +32 -32
  120. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +32 -32
  121. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +34 -34
  122. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -3
  123. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -3
  124. package/dist/astro/routes/api/admin/users/_id_/index.mjs +13 -13
  125. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +5 -5
  126. package/dist/astro/routes/api/admin/users/index.mjs +13 -13
  127. package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -5
  128. package/dist/astro/routes/api/auth/handover.d.mts +8 -0
  129. package/dist/astro/routes/api/auth/handover.d.mts.map +1 -0
  130. package/dist/astro/routes/api/auth/handover.mjs +49 -0
  131. package/dist/astro/routes/api/auth/handover.mjs.map +1 -0
  132. package/dist/astro/routes/api/auth/invite/accept.mjs +3 -3
  133. package/dist/astro/routes/api/auth/invite/complete.mjs +18 -18
  134. package/dist/astro/routes/api/auth/invite/index.mjs +15 -15
  135. package/dist/astro/routes/api/auth/invite/register-options.mjs +16 -16
  136. package/dist/astro/routes/api/auth/logout.mjs +4 -4
  137. package/dist/astro/routes/api/auth/magic-link/send.mjs +18 -17
  138. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  139. package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -1
  140. package/dist/astro/routes/api/auth/magic-link/verify.mjs +22 -16
  141. package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -1
  142. package/dist/astro/routes/api/auth/me.mjs +14 -14
  143. package/dist/astro/routes/api/auth/mode.mjs +4 -4
  144. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +7 -7
  145. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  146. package/dist/astro/routes/api/auth/passkey/_id_.mjs +13 -13
  147. package/dist/astro/routes/api/auth/passkey/index.mjs +3 -3
  148. package/dist/astro/routes/api/auth/passkey/options.d.mts.map +1 -1
  149. package/dist/astro/routes/api/auth/passkey/options.mjs +26 -19
  150. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  151. package/dist/astro/routes/api/auth/passkey/register/options.mjs +16 -16
  152. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +17 -17
  153. package/dist/astro/routes/api/auth/passkey/verify.mjs +18 -18
  154. package/dist/astro/routes/api/auth/signup/complete.mjs +18 -18
  155. package/dist/astro/routes/api/auth/signup/request.mjs +17 -16
  156. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  157. package/dist/astro/routes/api/auth/signup/verify.mjs +3 -3
  158. package/dist/astro/routes/api/calendar.mjs +14 -14
  159. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +11 -11
  160. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +17 -17
  161. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -4
  162. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +15 -15
  163. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +4 -4
  164. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +15 -15
  165. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -4
  166. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +8 -8
  167. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +23 -23
  168. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +15 -15
  169. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +27 -27
  170. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +27 -27
  171. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +4 -4
  172. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -4
  173. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +15 -15
  174. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +20 -20
  175. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -4
  176. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +15 -15
  177. package/dist/astro/routes/api/content/_collection_/_id_.mjs +15 -15
  178. package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -4
  179. package/dist/astro/routes/api/content/_collection_/index.mjs +14 -14
  180. package/dist/astro/routes/api/content/_collection_/trash.mjs +14 -14
  181. package/dist/astro/routes/api/dashboard.mjs +9 -9
  182. package/dist/astro/routes/api/dev/emails.mjs +4 -4
  183. package/dist/astro/routes/api/health.mjs +5 -5
  184. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  185. package/dist/astro/routes/api/import/probe.mjs +22 -22
  186. package/dist/astro/routes/api/import/wordpress/analyze.mjs +4 -4
  187. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
  188. package/dist/astro/routes/api/import/wordpress/execute.mjs +28 -21
  189. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  190. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  191. package/dist/astro/routes/api/import/wordpress/media.mjs +16 -16
  192. package/dist/astro/routes/api/import/wordpress/prepare.mjs +16 -16
  193. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts +8 -0
  194. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts.map +1 -1
  195. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs +67 -31
  196. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs.map +1 -1
  197. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  198. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +20 -20
  199. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  200. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +22 -22
  201. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  202. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +35 -28
  203. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  204. package/dist/astro/routes/api/manifest.mjs +8 -5
  205. package/dist/astro/routes/api/manifest.mjs.map +1 -1
  206. package/dist/astro/routes/api/mcp.mjs +81 -81
  207. package/dist/astro/routes/api/media/_id_/confirm.d.mts.map +1 -1
  208. package/dist/astro/routes/api/media/_id_/confirm.mjs +32 -16
  209. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  210. package/dist/astro/routes/api/media/_id_/replace.mjs +13 -13
  211. package/dist/astro/routes/api/media/_id_/upload.mjs +6 -6
  212. package/dist/astro/routes/api/media/_id_/usage.mjs +24 -24
  213. package/dist/astro/routes/api/media/_id_.mjs +22 -22
  214. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +5 -5
  215. package/dist/astro/routes/api/media/file/_...key_.d.mts.map +1 -1
  216. package/dist/astro/routes/api/media/file/_...key_.mjs +44 -14
  217. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  218. package/dist/astro/routes/api/media/folders/_id_.mjs +15 -15
  219. package/dist/astro/routes/api/media/folders/index.mjs +15 -15
  220. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
  221. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
  222. package/dist/astro/routes/api/media/providers/index.mjs +4 -4
  223. package/dist/astro/routes/api/media/upload-url.mjs +39 -19
  224. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  225. package/dist/astro/routes/api/media.d.mts.map +1 -1
  226. package/dist/astro/routes/api/media.mjs +33 -23
  227. package/dist/astro/routes/api/media.mjs.map +1 -1
  228. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +15 -15
  229. package/dist/astro/routes/api/menus/_name_/items.mjs +15 -15
  230. package/dist/astro/routes/api/menus/_name_/reorder.mjs +15 -15
  231. package/dist/astro/routes/api/menus/_name_/translations.mjs +15 -15
  232. package/dist/astro/routes/api/menus/_name_.mjs +15 -15
  233. package/dist/astro/routes/api/menus/index.mjs +15 -15
  234. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  235. package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -7
  236. package/dist/astro/routes/api/oauth/device/code.mjs +11 -10
  237. package/dist/astro/routes/api/oauth/device/code.mjs.map +1 -1
  238. package/dist/astro/routes/api/oauth/device/token.mjs +10 -9
  239. package/dist/astro/routes/api/oauth/device/token.mjs.map +1 -1
  240. package/dist/astro/routes/api/oauth/register.mjs +7 -6
  241. package/dist/astro/routes/api/oauth/register.mjs.map +1 -1
  242. package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -7
  243. package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -7
  244. package/dist/astro/routes/api/oauth/token.mjs +7 -7
  245. package/dist/astro/routes/api/openapi.json.mjs +21 -21
  246. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  247. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +8 -8
  248. package/dist/astro/routes/api/redirects/404s/index.mjs +18 -18
  249. package/dist/astro/routes/api/redirects/404s/summary.mjs +18 -18
  250. package/dist/astro/routes/api/redirects/_id_.mjs +18 -18
  251. package/dist/astro/routes/api/redirects/index.mjs +18 -18
  252. package/dist/astro/routes/api/relations/_id_/index.mjs +27 -27
  253. package/dist/astro/routes/api/relations/index.mjs +27 -27
  254. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -4
  255. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +15 -15
  256. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +62 -62
  257. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +62 -62
  258. package/dist/astro/routes/api/schema/block-types/index.mjs +62 -62
  259. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +62 -62
  260. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +62 -62
  261. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +62 -62
  262. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +62 -62
  263. package/dist/astro/routes/api/schema/collections/index.mjs +62 -62
  264. package/dist/astro/routes/api/schema/collections/reorder.mjs +62 -62
  265. package/dist/astro/routes/api/schema/index.mjs +10 -10
  266. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  267. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +62 -62
  268. package/dist/astro/routes/api/schema/orphans/index.mjs +62 -62
  269. package/dist/astro/routes/api/search/enable.mjs +17 -17
  270. package/dist/astro/routes/api/search/index.mjs +16 -16
  271. package/dist/astro/routes/api/search/rebuild.mjs +17 -17
  272. package/dist/astro/routes/api/search/stats.mjs +7 -7
  273. package/dist/astro/routes/api/search/suggest.mjs +16 -16
  274. package/dist/astro/routes/api/sections/_slug_.mjs +16 -16
  275. package/dist/astro/routes/api/sections/index.mjs +16 -16
  276. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +6 -6
  277. package/dist/astro/routes/api/settings/backups/archives/index.mjs +6 -6
  278. package/dist/astro/routes/api/settings/backups/export.mjs +6 -6
  279. package/dist/astro/routes/api/settings/backups/index.mjs +7 -7
  280. package/dist/astro/routes/api/settings/domain-notify.d.mts +8 -0
  281. package/dist/astro/routes/api/settings/domain-notify.d.mts.map +1 -0
  282. package/dist/astro/routes/api/settings/domain-notify.mjs +125 -0
  283. package/dist/astro/routes/api/settings/domain-notify.mjs.map +1 -0
  284. package/dist/astro/routes/api/settings/domain.d.mts +9 -0
  285. package/dist/astro/routes/api/settings/domain.d.mts.map +1 -0
  286. package/dist/astro/routes/api/settings/domain.mjs +61 -0
  287. package/dist/astro/routes/api/settings/domain.mjs.map +1 -0
  288. package/dist/astro/routes/api/settings/email.mjs +5 -5
  289. package/dist/astro/routes/api/settings.mjs +18 -18
  290. package/dist/astro/routes/api/setup/admin-verify.mjs +19 -19
  291. package/dist/astro/routes/api/setup/admin.mjs +17 -17
  292. package/dist/astro/routes/api/setup/dev-bypass.mjs +34 -34
  293. package/dist/astro/routes/api/setup/dev-reset.mjs +3 -3
  294. package/dist/astro/routes/api/setup/index.d.mts.map +1 -1
  295. package/dist/astro/routes/api/setup/index.mjs +44 -40
  296. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  297. package/dist/astro/routes/api/setup/status.mjs +5 -5
  298. package/dist/astro/routes/api/site/domain-proof.d.mts +8 -0
  299. package/dist/astro/routes/api/site/domain-proof.d.mts.map +1 -0
  300. package/dist/astro/routes/api/site/domain-proof.mjs +33 -0
  301. package/dist/astro/routes/api/site/domain-proof.mjs.map +1 -0
  302. package/dist/astro/routes/api/snapshot.mjs +7 -7
  303. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +19 -19
  304. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +19 -19
  305. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +19 -19
  306. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +19 -19
  307. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +19 -19
  308. package/dist/astro/routes/api/taxonomies/_name_.mjs +19 -19
  309. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +27 -27
  310. package/dist/astro/routes/api/taxonomies/index.mjs +19 -19
  311. package/dist/astro/routes/api/themes/preview.mjs +5 -5
  312. package/dist/astro/routes/api/typegen.mjs +5 -5
  313. package/dist/astro/routes/api/visual-editing/action-token.mjs +5 -5
  314. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +17 -17
  315. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +3 -3
  316. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  317. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  318. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  319. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +14 -14
  320. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +16 -16
  321. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +16 -16
  322. package/dist/astro/routes/api/widget-areas/_name_.mjs +6 -6
  323. package/dist/astro/routes/api/widget-areas/index.mjs +16 -16
  324. package/dist/astro/routes/api/widget-components.mjs +4 -4
  325. package/dist/astro/routes/robots.txt.mjs +4 -4
  326. package/dist/astro/routes/sitemap-_collection_.xml.d.mts.map +1 -1
  327. package/dist/astro/routes/sitemap-_collection_.xml.mjs +27 -10
  328. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  329. package/dist/astro/routes/sitemap.xml.d.mts.map +1 -1
  330. package/dist/astro/routes/sitemap.xml.mjs +11 -10
  331. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  332. package/dist/astro/types.d.mts +30 -18
  333. package/dist/astro/types.d.mts.map +1 -1
  334. package/dist/auth/providers/github.d.mts +1 -1
  335. package/dist/auth/providers/google.d.mts +1 -1
  336. package/dist/auth/providers/microsoft.d.mts +1 -1
  337. package/dist/authoritative-records-Dcs7l2H5.mjs +5183 -0
  338. package/dist/authoritative-records-Dcs7l2H5.mjs.map +1 -0
  339. package/dist/authorize-TdIGpRSE.mjs +49 -0
  340. package/dist/authorize-TdIGpRSE.mjs.map +1 -0
  341. package/dist/backup-CZt5Mzwx.mjs +246 -0
  342. package/dist/backup-CZt5Mzwx.mjs.map +1 -0
  343. package/dist/block-types-DHnkzE6u.mjs +132 -0
  344. package/dist/block-types-DHnkzE6u.mjs.map +1 -0
  345. package/dist/block-values-C4N_F2-G.mjs +175 -0
  346. package/dist/block-values-C4N_F2-G.mjs.map +1 -0
  347. package/dist/byline-BmVKOQ8l.mjs +909 -0
  348. package/dist/byline-BmVKOQ8l.mjs.map +1 -0
  349. package/dist/byline-fields-B8SDs3M_.mjs +123 -0
  350. package/dist/byline-fields-B8SDs3M_.mjs.map +1 -0
  351. package/dist/byline-fields-Bze3ZdAw.mjs +280 -0
  352. package/dist/byline-fields-Bze3ZdAw.mjs.map +1 -0
  353. package/dist/bylines-CHhR28r9.mjs +150 -0
  354. package/dist/bylines-CHhR28r9.mjs.map +1 -0
  355. package/dist/bylines-DZS4OflA.mjs +234 -0
  356. package/dist/bylines-DZS4OflA.mjs.map +1 -0
  357. package/dist/cache-x0z8t_m9.mjs +133 -0
  358. package/dist/cache-x0z8t_m9.mjs.map +1 -0
  359. package/dist/canonical-BUcKRYpG.mjs +174 -0
  360. package/dist/canonical-BUcKRYpG.mjs.map +1 -0
  361. package/dist/challenge-store-BHgdPVze.mjs +51 -0
  362. package/dist/challenge-store-BHgdPVze.mjs.map +1 -0
  363. package/dist/checksum-BYR5i7qe.mjs +162 -0
  364. package/dist/checksum-BYR5i7qe.mjs.map +1 -0
  365. package/dist/chunks-Dr5Vr0zA.mjs +25 -0
  366. package/dist/chunks-Dr5Vr0zA.mjs.map +1 -0
  367. package/dist/cli/index.mjs +44 -42
  368. package/dist/cli/index.mjs.map +1 -1
  369. package/dist/client/cf-access.d.mts +1 -1
  370. package/dist/client/index.d.mts +107 -107
  371. package/dist/client/index.d.mts.map +1 -1
  372. package/dist/client/index.mjs +2 -2
  373. package/dist/client/index.mjs.map +1 -1
  374. package/dist/comment-CWla6OHV.mjs +325 -0
  375. package/dist/comment-CWla6OHV.mjs.map +1 -0
  376. package/dist/comment-reaction-RZrcs5cW.mjs +85 -0
  377. package/dist/comment-reaction-RZrcs5cW.mjs.map +1 -0
  378. package/dist/comments-BzmIKVb2.mjs +99 -0
  379. package/dist/comments-BzmIKVb2.mjs.map +1 -0
  380. package/dist/comments-Da_dI2O1.mjs +195 -0
  381. package/dist/comments-Da_dI2O1.mjs.map +1 -0
  382. package/dist/components-oFXumpf5.mjs +112 -0
  383. package/dist/components-oFXumpf5.mjs.map +1 -0
  384. package/dist/config--wamYxBW.d.mts +39 -0
  385. package/dist/config--wamYxBW.d.mts.map +1 -0
  386. package/dist/config-Bo4eOOdV.mjs +228 -0
  387. package/dist/config-Bo4eOOdV.mjs.map +1 -0
  388. package/dist/config-C4-UxIk7.d.mts +6790 -0
  389. package/dist/config-C4-UxIk7.d.mts.map +1 -0
  390. package/dist/connection-UpzYxtE2.mjs +36 -0
  391. package/dist/connection-UpzYxtE2.mjs.map +1 -0
  392. package/dist/content-CcHrqkgp.mjs +2072 -0
  393. package/dist/content-CcHrqkgp.mjs.map +1 -0
  394. package/dist/content-list-query-Bxxdd9fv.d.mts +26 -0
  395. package/dist/content-list-query-Bxxdd9fv.d.mts.map +1 -0
  396. package/dist/content-repair-havk1F0-.mjs +442 -0
  397. package/dist/content-repair-havk1F0-.mjs.map +1 -0
  398. package/dist/context-CvhgHgSH.mjs +2043 -0
  399. package/dist/context-CvhgHgSH.mjs.map +1 -0
  400. package/dist/credits-CygUrPOi.mjs +110 -0
  401. package/dist/credits-CygUrPOi.mjs.map +1 -0
  402. package/dist/cron-C6ytTOLw.mjs +306 -0
  403. package/dist/cron-C6ytTOLw.mjs.map +1 -0
  404. package/dist/dashboard-7_FYfafc.mjs +151 -0
  405. package/dist/dashboard-7_FYfafc.mjs.map +1 -0
  406. package/dist/db/index.d.mts +3 -3
  407. package/dist/db/index.mjs +1 -1
  408. package/dist/db/libsql-migrations.d.mts +1 -1
  409. package/dist/db/libsql-migrations.mjs +4 -4
  410. package/dist/db/libsql.d.mts +1 -1
  411. package/dist/db/postgres-migrations.d.mts +1 -1
  412. package/dist/db/postgres-migrations.mjs +4 -4
  413. package/dist/db/postgres.d.mts +1 -1
  414. package/dist/db/sqlite-migrations.d.mts +1 -1
  415. package/dist/db/sqlite-migrations.mjs +4 -4
  416. package/dist/db/sqlite.d.mts +1 -1
  417. package/dist/db/sqlite.mjs +1 -1
  418. package/dist/default-CHCUkV4Z.mjs +81 -0
  419. package/dist/default-CHCUkV4Z.mjs.map +1 -0
  420. package/dist/deferred-tasks-G0xhcJTl.d.mts +9 -0
  421. package/dist/deferred-tasks-G0xhcJTl.d.mts.map +1 -0
  422. package/dist/device-flow-CzDJmQ1q.mjs +521 -0
  423. package/dist/device-flow-CzDJmQ1q.mjs.map +1 -0
  424. package/dist/digest-xJmyPv2r.mjs +194 -0
  425. package/dist/digest-xJmyPv2r.mjs.map +1 -0
  426. package/dist/direct-executor-BXiYIVJ9.mjs +104 -0
  427. package/dist/direct-executor-BXiYIVJ9.mjs.map +1 -0
  428. package/dist/email-console-7ZPApLlm.mjs +50 -0
  429. package/dist/email-console-7ZPApLlm.mjs.map +1 -0
  430. package/dist/email-locale-DFdUA6UF.mjs +25 -0
  431. package/dist/email-locale-DFdUA6UF.mjs.map +1 -0
  432. package/dist/emdash-runtime-C4oFeVpN.mjs +4363 -0
  433. package/dist/emdash-runtime-C4oFeVpN.mjs.map +1 -0
  434. package/dist/entry-lock-B4n0HdQ_.mjs +163 -0
  435. package/dist/entry-lock-B4n0HdQ_.mjs.map +1 -0
  436. package/dist/entry-lock-BAAlKYrz.d.mts +4566 -0
  437. package/dist/entry-lock-BAAlKYrz.d.mts.map +1 -0
  438. package/dist/entry-lock-Cjz0h45X.mjs +1209 -0
  439. package/dist/entry-lock-Cjz0h45X.mjs.map +1 -0
  440. package/dist/env-types-4bkF6Bqg.mjs +38 -0
  441. package/dist/env-types-4bkF6Bqg.mjs.map +1 -0
  442. package/dist/error-DxgQdaZ_.mjs +90 -0
  443. package/dist/error-DxgQdaZ_.mjs.map +1 -0
  444. package/dist/errors-CjtE5aWF.mjs +120 -0
  445. package/dist/errors-CjtE5aWF.mjs.map +1 -0
  446. package/dist/errors-hskQ0C8G.mjs +479 -0
  447. package/dist/errors-hskQ0C8G.mjs.map +1 -0
  448. package/dist/escape-ESFhYzwG.mjs +9 -0
  449. package/dist/escape-ESFhYzwG.mjs.map +1 -0
  450. package/dist/fence-vc3aHgRA.mjs +162 -0
  451. package/dist/fence-vc3aHgRA.mjs.map +1 -0
  452. package/dist/field-defs-cache-zoow36nz.mjs +77 -0
  453. package/dist/field-defs-cache-zoow36nz.mjs.map +1 -0
  454. package/dist/field-map-JD1wG0Tq.mjs +83 -0
  455. package/dist/field-map-JD1wG0Tq.mjs.map +1 -0
  456. package/dist/fts-manager-WJCN8uU6.mjs +443 -0
  457. package/dist/fts-manager-WJCN8uU6.mjs.map +1 -0
  458. package/dist/gc-CsGZiKdH.mjs +75 -0
  459. package/dist/gc-CsGZiKdH.mjs.map +1 -0
  460. package/dist/hook-result-CXjtMk7Q.d.mts +31 -0
  461. package/dist/hook-result-CXjtMk7Q.d.mts.map +1 -0
  462. package/dist/hreflang-BAma7iRr.mjs +105 -0
  463. package/dist/hreflang-BAma7iRr.mjs.map +1 -0
  464. package/dist/hreflang-BsYo4x_M.d.mts +50 -0
  465. package/dist/hreflang-BsYo4x_M.d.mts.map +1 -0
  466. package/dist/http-route-dispatch-C8G7hAK6.mjs +342 -0
  467. package/dist/http-route-dispatch-C8G7hAK6.mjs.map +1 -0
  468. package/dist/identity-BwBKM1fH.mjs +35 -0
  469. package/dist/identity-BwBKM1fH.mjs.map +1 -0
  470. package/dist/import-DJ3Z2wxE.mjs +2021 -0
  471. package/dist/import-DJ3Z2wxE.mjs.map +1 -0
  472. package/dist/index-DYsn97dY.d.mts +623 -0
  473. package/dist/index-DYsn97dY.d.mts.map +1 -0
  474. package/dist/index.d.mts +24 -24
  475. package/dist/index.mjs +87 -87
  476. package/dist/install-finalization-DCFnFSHv.mjs +58 -0
  477. package/dist/install-finalization-DCFnFSHv.mjs.map +1 -0
  478. package/dist/keys-CGvAndSp.mjs +61 -0
  479. package/dist/keys-CGvAndSp.mjs.map +1 -0
  480. package/dist/kinds-DT1W4T4Y.mjs +974 -0
  481. package/dist/kinds-DT1W4T4Y.mjs.map +1 -0
  482. package/dist/lifecycle-BzglCSY0.mjs +25 -0
  483. package/dist/lifecycle-BzglCSY0.mjs.map +1 -0
  484. package/dist/load-DjUqmf3s.mjs +28 -0
  485. package/dist/load-DjUqmf3s.mjs.map +1 -0
  486. package/dist/loader-CetY659y.mjs +1355 -0
  487. package/dist/loader-CetY659y.mjs.map +1 -0
  488. package/dist/loops-DkT1zkPH.mjs +205 -0
  489. package/dist/loops-DkT1zkPH.mjs.map +1 -0
  490. package/dist/manifest-builder-BOFCd9rX.mjs +189 -0
  491. package/dist/manifest-builder-BOFCd9rX.mjs.map +1 -0
  492. package/dist/manifest-schema-BiFBPEsp.mjs +497 -0
  493. package/dist/manifest-schema-BiFBPEsp.mjs.map +1 -0
  494. package/dist/marketplace-CUlenvZm.mjs +257 -0
  495. package/dist/marketplace-CUlenvZm.mjs.map +1 -0
  496. package/dist/media/image-endpoint.d.mts +26 -2
  497. package/dist/media/image-endpoint.d.mts.map +1 -1
  498. package/dist/media/image-endpoint.mjs +73 -3
  499. package/dist/media/image-endpoint.mjs.map +1 -1
  500. package/dist/media/index.d.mts +1 -1
  501. package/dist/media/local-runtime.d.mts +14 -14
  502. package/dist/media/local-runtime.mjs +4 -4
  503. package/dist/media-CRKsKlfK.mjs +416 -0
  504. package/dist/media-CRKsKlfK.mjs.map +1 -0
  505. package/dist/media-C_z7sRuC.mjs +294 -0
  506. package/dist/media-C_z7sRuC.mjs.map +1 -0
  507. package/dist/media-IT8hQleU.mjs +373 -0
  508. package/dist/media-IT8hQleU.mjs.map +1 -0
  509. package/dist/media-allowlist-Ct6wvnT2.mjs +45 -0
  510. package/dist/media-allowlist-Ct6wvnT2.mjs.map +1 -0
  511. package/dist/media-folders-DtMt-vAA.mjs +210 -0
  512. package/dist/media-folders-DtMt-vAA.mjs.map +1 -0
  513. package/dist/media-url-BpXLqCmf.mjs +43 -0
  514. package/dist/media-url-BpXLqCmf.mjs.map +1 -0
  515. package/dist/media-usage-DEPHZZ9X.mjs +282 -0
  516. package/dist/media-usage-DEPHZZ9X.mjs.map +1 -0
  517. package/dist/media-usage-activation-V2Siabtw.mjs +78 -0
  518. package/dist/media-usage-activation-V2Siabtw.mjs.map +1 -0
  519. package/dist/media-usage-work-Cv1OE59F.mjs +151 -0
  520. package/dist/media-usage-work-Cv1OE59F.mjs.map +1 -0
  521. package/dist/media-usage-work-cgDYGvrt.mjs +1015 -0
  522. package/dist/media-usage-work-cgDYGvrt.mjs.map +1 -0
  523. package/dist/menus-CvVYfsuk.mjs +753 -0
  524. package/dist/menus-CvVYfsuk.mjs.map +1 -0
  525. package/dist/menus-D1HC8npj.mjs +92 -0
  526. package/dist/menus-D1HC8npj.mjs.map +1 -0
  527. package/dist/menus-DL8IPIcm.mjs +3721 -0
  528. package/dist/menus-DL8IPIcm.mjs.map +1 -0
  529. package/dist/migrations/index.d.mts +1 -1
  530. package/dist/migrations/index.mjs +3 -3
  531. package/dist/mode-eieqAWLe.mjs +23 -0
  532. package/dist/mode-eieqAWLe.mjs.map +1 -0
  533. package/dist/node-sqlite-compat-VuyzJw1b.mjs +63 -0
  534. package/dist/node-sqlite-compat-VuyzJw1b.mjs.map +1 -0
  535. package/dist/oauth-authorization-B6ZJbMd2.mjs +274 -0
  536. package/dist/oauth-authorization-B6ZJbMd2.mjs.map +1 -0
  537. package/dist/oauth-clients-DVjRc9v3.mjs +266 -0
  538. package/dist/oauth-clients-DVjRc9v3.mjs.map +1 -0
  539. package/dist/oauth-state-store-CnmYYsVQ.mjs +50 -0
  540. package/dist/oauth-state-store-CnmYYsVQ.mjs.map +1 -0
  541. package/dist/oauth-user-lookup-Dz1_R5vT.mjs +26 -0
  542. package/dist/oauth-user-lookup-Dz1_R5vT.mjs.map +1 -0
  543. package/dist/object-cache/memory.d.mts +1 -1
  544. package/dist/options-BR9XZl7h.d.mts +81 -0
  545. package/dist/options-BR9XZl7h.d.mts.map +1 -0
  546. package/dist/ownership-COPyVysP.mjs +12 -0
  547. package/dist/ownership-COPyVysP.mjs.map +1 -0
  548. package/dist/page/index.d.mts +2 -2
  549. package/dist/page/index.mjs +3 -3
  550. package/dist/parse-BOGhrwSq.d.mts +174 -0
  551. package/dist/parse-BOGhrwSq.d.mts.map +1 -0
  552. package/dist/parse-Cn5aSk1N.mjs +81 -0
  553. package/dist/parse-Cn5aSk1N.mjs.map +1 -0
  554. package/dist/passkey-config-mMFRQUCj.mjs +46 -0
  555. package/dist/passkey-config-mMFRQUCj.mjs.map +1 -0
  556. package/dist/paths-BmcAdBo9.mjs +77 -0
  557. package/dist/paths-BmcAdBo9.mjs.map +1 -0
  558. package/dist/patterns-CMNnYCgf.mjs +159 -0
  559. package/dist/patterns-CMNnYCgf.mjs.map +1 -0
  560. package/dist/placeholder-nOep3_Gn.d.mts +306 -0
  561. package/dist/placeholder-nOep3_Gn.d.mts.map +1 -0
  562. package/dist/plan-CDY4K8CH.mjs +135 -0
  563. package/dist/plan-CDY4K8CH.mjs.map +1 -0
  564. package/dist/plugin-test-runtime.d.mts +14 -14
  565. package/dist/plugin-test-runtime.d.mts.map +1 -1
  566. package/dist/plugin-test-runtime.mjs +100 -100
  567. package/dist/plugin-types.d.mts +2 -2
  568. package/dist/plugin-utils.d.mts +12 -12
  569. package/dist/plugin-utils.mjs +1 -1
  570. package/dist/plugin-utils.mjs.map +1 -1
  571. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  572. package/dist/plugins/adapt-sandbox-entry.mjs +3 -3
  573. package/dist/plugins/host.d.mts +5 -5
  574. package/dist/plugins/host.mjs +35 -35
  575. package/dist/plugins-DFBpfbO3.mjs +261 -0
  576. package/dist/plugins-DFBpfbO3.mjs.map +1 -0
  577. package/dist/policy-B_2qnHSy.mjs +45 -0
  578. package/dist/policy-B_2qnHSy.mjs.map +1 -0
  579. package/dist/portable-text-Dc2YAusw.mjs +307 -0
  580. package/dist/portable-text-Dc2YAusw.mjs.map +1 -0
  581. package/dist/preview-BtzikJ9O.mjs +107 -0
  582. package/dist/preview-BtzikJ9O.mjs.map +1 -0
  583. package/dist/protocol-M268ox8L.d.mts +61 -0
  584. package/dist/protocol-M268ox8L.d.mts.map +1 -0
  585. package/dist/public-submission-BQZavgZU.mjs +251 -0
  586. package/dist/public-submission-BQZavgZU.mjs.map +1 -0
  587. package/dist/public-url-uT1Ok2Tu.mjs +101 -0
  588. package/dist/public-url-uT1Ok2Tu.mjs.map +1 -0
  589. package/dist/query-BGG3sDEd.mjs +1127 -0
  590. package/dist/query-BGG3sDEd.mjs.map +1 -0
  591. package/dist/query-C_CWlifp.mjs +41 -0
  592. package/dist/query-C_CWlifp.mjs.map +1 -0
  593. package/dist/range-CXK_kDbI.mjs +51 -0
  594. package/dist/range-CXK_kDbI.mjs.map +1 -0
  595. package/dist/rate-limit-Dvamvay-.mjs +127 -0
  596. package/dist/rate-limit-Dvamvay-.mjs.map +1 -0
  597. package/dist/receipt-BmQGzquP.mjs +43 -0
  598. package/dist/receipt-BmQGzquP.mjs.map +1 -0
  599. package/dist/redirect-B39kTQ_0.mjs +423 -0
  600. package/dist/redirect-B39kTQ_0.mjs.map +1 -0
  601. package/dist/redirect-BguJ00Pv.mjs +19 -0
  602. package/dist/redirect-BguJ00Pv.mjs.map +1 -0
  603. package/dist/redirects-C8G4BsfP.mjs +446 -0
  604. package/dist/redirects-C8G4BsfP.mjs.map +1 -0
  605. package/dist/redirects-DFT7Wr-e.mjs +148 -0
  606. package/dist/redirects-DFT7Wr-e.mjs.map +1 -0
  607. package/dist/registry/testing.mjs +3 -3
  608. package/dist/registry-DeZ27gVi.mjs +8374 -0
  609. package/dist/registry-DeZ27gVi.mjs.map +1 -0
  610. package/dist/relations-DBB1bRJW.mjs +776 -0
  611. package/dist/relations-DBB1bRJW.mjs.map +1 -0
  612. package/dist/request-context.d.mts +1 -1
  613. package/dist/request-meta-BSvkhIBX.mjs +141 -0
  614. package/dist/request-meta-BSvkhIBX.mjs.map +1 -0
  615. package/dist/resolve-BxH64HN9.mjs +100 -0
  616. package/dist/resolve-BxH64HN9.mjs.map +1 -0
  617. package/dist/route-wire-CwbWB_6O.mjs +197 -0
  618. package/dist/route-wire-CwbWB_6O.mjs.map +1 -0
  619. package/dist/routes-BfIxc7ft.mjs +272 -0
  620. package/dist/routes-BfIxc7ft.mjs.map +1 -0
  621. package/dist/runner-DkeafPBA.d.mts +68 -0
  622. package/dist/runner-DkeafPBA.d.mts.map +1 -0
  623. package/dist/runner-wqt4BrIW.mjs +6383 -0
  624. package/dist/runner-wqt4BrIW.mjs.map +1 -0
  625. package/dist/runtime.d.mts +13 -13
  626. package/dist/runtime.mjs +1 -1
  627. package/dist/schema/project-env-types.mjs +29 -29
  628. package/dist/schema-BXIW-JHi.mjs +815 -0
  629. package/dist/schema-BXIW-JHi.mjs.map +1 -0
  630. package/dist/schema-I74JwYte.mjs +13 -0
  631. package/dist/schema-I74JwYte.mjs.map +1 -0
  632. package/dist/scopes-RWZ5ft_Z.mjs +34 -0
  633. package/dist/scopes-RWZ5ft_Z.mjs.map +1 -0
  634. package/dist/search-DxwagyWS.mjs +450 -0
  635. package/dist/search-DxwagyWS.mjs.map +1 -0
  636. package/dist/sections-Ccq9ZgyD.mjs +346 -0
  637. package/dist/sections-Ccq9ZgyD.mjs.map +1 -0
  638. package/dist/seed/index.d.mts +2 -2
  639. package/dist/seed/index.mjs +27 -27
  640. package/dist/seo/index.d.mts +3 -3
  641. package/dist/seo/index.mjs +14 -14
  642. package/dist/seo-CCnfPWAQ.mjs +133 -0
  643. package/dist/seo-CCnfPWAQ.mjs.map +1 -0
  644. package/dist/seo-QCtJ1jjV.mjs +188 -0
  645. package/dist/seo-QCtJ1jjV.mjs.map +1 -0
  646. package/dist/service-DX84s2rw.mjs +150 -0
  647. package/dist/service-DX84s2rw.mjs.map +1 -0
  648. package/dist/session-user-1dtJc2zv.mjs +61 -0
  649. package/dist/session-user-1dtJc2zv.mjs.map +1 -0
  650. package/dist/settings-B1jOxAIl.mjs +443 -0
  651. package/dist/settings-B1jOxAIl.mjs.map +1 -0
  652. package/dist/settings-Bc1IBl1t.mjs +66 -0
  653. package/dist/settings-Bc1IBl1t.mjs.map +1 -0
  654. package/dist/settings-GaZ5sVgg.mjs +73 -0
  655. package/dist/settings-GaZ5sVgg.mjs.map +1 -0
  656. package/dist/setup-complete-DidMAWJS.mjs +65 -0
  657. package/dist/setup-complete-DidMAWJS.mjs.map +1 -0
  658. package/dist/setup-nonce-DKl4S4c6.mjs +25 -0
  659. package/dist/setup-nonce-DKl4S4c6.mjs.map +1 -0
  660. package/dist/site-domain-CbI51Pc2.mjs +113 -0
  661. package/dist/site-domain-CbI51Pc2.mjs.map +1 -0
  662. package/dist/site-settings-CDdT4mVm.mjs +50 -0
  663. package/dist/site-settings-CDdT4mVm.mjs.map +1 -0
  664. package/dist/site-url-CrDZaAvo.mjs +45 -0
  665. package/dist/site-url-CrDZaAvo.mjs.map +1 -0
  666. package/dist/sitemap-name-W3BTor6X.mjs +26 -0
  667. package/dist/sitemap-name-W3BTor6X.mjs.map +1 -0
  668. package/dist/slug-BJhHKoOH.mjs +16 -0
  669. package/dist/slug-BJhHKoOH.mjs.map +1 -0
  670. package/dist/slugify-bu2-jKia.mjs +22 -0
  671. package/dist/slugify-bu2-jKia.mjs.map +1 -0
  672. package/dist/snapshot-BuI_2uDe.mjs +414 -0
  673. package/dist/snapshot-BuI_2uDe.mjs.map +1 -0
  674. package/dist/ssrf-LM_0wpGA.mjs +406 -0
  675. package/dist/ssrf-LM_0wpGA.mjs.map +1 -0
  676. package/dist/stage-DhzZuYaT.mjs +662 -0
  677. package/dist/stage-DhzZuYaT.mjs.map +1 -0
  678. package/dist/staged-DboEaWsV.mjs +686 -0
  679. package/dist/staged-DboEaWsV.mjs.map +1 -0
  680. package/dist/state-DCXDzjHq.mjs +178 -0
  681. package/dist/state-DCXDzjHq.mjs.map +1 -0
  682. package/dist/status-Dl85BK39.mjs +30 -0
  683. package/dist/status-Dl85BK39.mjs.map +1 -0
  684. package/dist/storage/local.d.mts +2 -2
  685. package/dist/storage/local.d.mts.map +1 -1
  686. package/dist/storage/local.mjs +11 -4
  687. package/dist/storage/local.mjs.map +1 -1
  688. package/dist/storage/s3.d.mts +4 -2
  689. package/dist/storage/s3.d.mts.map +1 -1
  690. package/dist/storage/s3.mjs +56 -9
  691. package/dist/storage/s3.mjs.map +1 -1
  692. package/dist/storage-query-BOBmeDMD.d.mts +1615 -0
  693. package/dist/storage-query-BOBmeDMD.d.mts.map +1 -0
  694. package/dist/tar-K40edFMt.mjs +449 -0
  695. package/dist/tar-K40edFMt.mjs.map +1 -0
  696. package/dist/target-BOighEY1.mjs +27 -0
  697. package/dist/target-BOighEY1.mjs.map +1 -0
  698. package/dist/taxonomies-DQSywBvX.mjs +697 -0
  699. package/dist/taxonomies-DQSywBvX.mjs.map +1 -0
  700. package/dist/taxonomies-Dj5eaobC.mjs +939 -0
  701. package/dist/taxonomies-Dj5eaobC.mjs.map +1 -0
  702. package/dist/taxonomy-QrNmTfIZ.mjs +550 -0
  703. package/dist/taxonomy-QrNmTfIZ.mjs.map +1 -0
  704. package/dist/tokens-j5L0as2H.mjs +171 -0
  705. package/dist/tokens-j5L0as2H.mjs.map +1 -0
  706. package/dist/transfer-CYEw8Tu4.mjs +8873 -0
  707. package/dist/transfer-CYEw8Tu4.mjs.map +1 -0
  708. package/dist/transfer-DDX10hkD.mjs +166 -0
  709. package/dist/transfer-DDX10hkD.mjs.map +1 -0
  710. package/dist/transfer-download-BAqq6GJv.mjs +33 -0
  711. package/dist/transfer-download-BAqq6GJv.mjs.map +1 -0
  712. package/dist/transformations-De44wqV_.mjs +196 -0
  713. package/dist/transformations-De44wqV_.mjs.map +1 -0
  714. package/dist/transport-1QjUhCRO.d.mts +42 -0
  715. package/dist/transport-1QjUhCRO.d.mts.map +1 -0
  716. package/dist/transport-Ds5pVX7p.mjs +136 -0
  717. package/dist/transport-Ds5pVX7p.mjs.map +1 -0
  718. package/dist/trusted-proxy-d4Tk6biT.mjs +51 -0
  719. package/dist/trusted-proxy-d4Tk6biT.mjs.map +1 -0
  720. package/dist/turnstile-DaFLtyrs.mjs +58 -0
  721. package/dist/turnstile-DaFLtyrs.mjs.map +1 -0
  722. package/dist/types-B4-1P2DK.d.mts +227 -0
  723. package/dist/types-B4-1P2DK.d.mts.map +1 -0
  724. package/dist/types-BKXA0f-c.mjs +16 -0
  725. package/dist/types-BKXA0f-c.mjs.map +1 -0
  726. package/dist/types-BiHcpUoO.d.mts +374 -0
  727. package/dist/types-BiHcpUoO.d.mts.map +1 -0
  728. package/dist/types-BihhvkyN.d.mts +85 -0
  729. package/dist/types-BihhvkyN.d.mts.map +1 -0
  730. package/dist/types-Bq9Wohd7.d.mts +363 -0
  731. package/dist/types-Bq9Wohd7.d.mts.map +1 -0
  732. package/dist/types-C-Xp0CcN.mjs.map +1 -1
  733. package/dist/types-C4P7F1Vq.d.mts +1741 -0
  734. package/dist/types-C4P7F1Vq.d.mts.map +1 -0
  735. package/dist/types-CGaqwHw4.mjs +37 -0
  736. package/dist/types-CGaqwHw4.mjs.map +1 -0
  737. package/dist/types-D4ECCE4X.mjs +77 -0
  738. package/dist/types-D4ECCE4X.mjs.map +1 -0
  739. package/dist/types-DcRJp0vS.d.mts +125 -0
  740. package/dist/types-DcRJp0vS.d.mts.map +1 -0
  741. package/dist/types-Ff85fTzU.d.mts +289 -0
  742. package/dist/types-Ff85fTzU.d.mts.map +1 -0
  743. package/dist/types-UKr5Sf4y.d.mts +916 -0
  744. package/dist/types-UKr5Sf4y.d.mts.map +1 -0
  745. package/dist/types-YpN8hZW7.d.mts +204 -0
  746. package/dist/types-YpN8hZW7.d.mts.map +1 -0
  747. package/dist/update-check-DrlsK-tt.mjs +161 -0
  748. package/dist/update-check-DrlsK-tt.mjs.map +1 -0
  749. package/dist/upload-attempts-D8CPPvRU.mjs +32 -0
  750. package/dist/upload-attempts-D8CPPvRU.mjs.map +1 -0
  751. package/dist/url-pattern-Di4Nn3vP.mjs +41 -0
  752. package/dist/url-pattern-Di4Nn3vP.mjs.map +1 -0
  753. package/dist/user-B-ZdGjhI.mjs +171 -0
  754. package/dist/user-B-ZdGjhI.mjs.map +1 -0
  755. package/dist/utils-D7wL3r6-.mjs +437 -0
  756. package/dist/utils-D7wL3r6-.mjs.map +1 -0
  757. package/dist/validate-BSZbSUDk.mjs +524 -0
  758. package/dist/validate-BSZbSUDk.mjs.map +1 -0
  759. package/dist/validate-Dfv0DpZi.d.mts +468 -0
  760. package/dist/validate-Dfv0DpZi.d.mts.map +1 -0
  761. package/dist/validation-DRyC_Vm5.mjs +219 -0
  762. package/dist/validation-DRyC_Vm5.mjs.map +1 -0
  763. package/dist/version-C4kz0PcO.mjs +7 -0
  764. package/dist/version-C4kz0PcO.mjs.map +1 -0
  765. package/dist/version-jhs2BRtl.mjs +9 -0
  766. package/dist/version-jhs2BRtl.mjs.map +1 -0
  767. package/dist/video-DReZ48Un.mjs +54 -0
  768. package/dist/video-DReZ48Un.mjs.map +1 -0
  769. package/dist/virtual-modules-D0e6VbEv.mjs +516 -0
  770. package/dist/virtual-modules-D0e6VbEv.mjs.map +1 -0
  771. package/dist/widgets-BkcMzKct.mjs +121 -0
  772. package/dist/widgets-BkcMzKct.mjs.map +1 -0
  773. package/dist/wxr-taxonomies-BxI0CbTg.mjs +453 -0
  774. package/dist/wxr-taxonomies-BxI0CbTg.mjs.map +1 -0
  775. package/dist/wxr-taxonomies-Dad33GJi.d.mts +34 -0
  776. package/dist/wxr-taxonomies-Dad33GJi.d.mts.map +1 -0
  777. package/package.json +13 -10
  778. package/src/api/errors.ts +9 -0
  779. package/src/api/handlers/api-tokens.ts +12 -6
  780. package/src/api/handlers/content.ts +57 -8
  781. package/src/api/handlers/domain-move-notice.ts +94 -0
  782. package/src/api/handlers/index.ts +2 -0
  783. package/src/api/handlers/manifest.ts +5 -0
  784. package/src/api/handlers/media-usage.ts +2 -1
  785. package/src/api/handlers/media.ts +1 -0
  786. package/src/api/handlers/seo.ts +155 -59
  787. package/src/api/handlers/settings.ts +31 -1
  788. package/src/api/handlers/site-domain.ts +143 -0
  789. package/src/api/openapi/document.ts +2 -2
  790. package/src/api/public-url.ts +1 -1
  791. package/src/api/schemas/content.ts +20 -0
  792. package/src/api/schemas/media-usage.ts +7 -1
  793. package/src/api/schemas/media.ts +12 -0
  794. package/src/api/site-url.ts +53 -5
  795. package/src/api/types.ts +2 -0
  796. package/src/astro/image-endpoint.ts +46 -4
  797. package/src/astro/integration/admin-locales.ts +168 -0
  798. package/src/astro/integration/dev-env.ts +84 -0
  799. package/src/astro/integration/index.ts +49 -9
  800. package/src/astro/integration/routes.ts +20 -0
  801. package/src/astro/integration/runtime.ts +15 -0
  802. package/src/astro/integration/vite-config.ts +18 -1
  803. package/src/astro/middleware/auth.ts +16 -3
  804. package/src/astro/middleware/csp.ts +1 -0
  805. package/src/astro/middleware/redirect.ts +27 -12
  806. package/src/astro/middleware/request-context.ts +12 -6
  807. package/src/astro/middleware.ts +53 -14
  808. package/src/astro/routes/api/auth/handover.ts +58 -0
  809. package/src/astro/routes/api/auth/magic-link/verify.ts +11 -3
  810. package/src/astro/routes/api/auth/passkey/options.ts +10 -2
  811. package/src/astro/routes/api/import/wordpress/execute.ts +19 -0
  812. package/src/astro/routes/api/import/wordpress/rewrite-url-helpers.ts +80 -42
  813. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +15 -0
  814. package/src/astro/routes/api/manifest.ts +10 -0
  815. package/src/astro/routes/api/media/[id]/confirm.ts +19 -0
  816. package/src/astro/routes/api/media/file/[...key].ts +60 -12
  817. package/src/astro/routes/api/media/upload-url.ts +28 -4
  818. package/src/astro/routes/api/media.ts +15 -0
  819. package/src/astro/routes/api/schema/index.ts +1 -1
  820. package/src/astro/routes/api/settings/domain-notify.ts +76 -0
  821. package/src/astro/routes/api/settings/domain.ts +63 -0
  822. package/src/astro/routes/api/setup/index.ts +7 -0
  823. package/src/astro/routes/api/site/domain-proof.ts +28 -0
  824. package/src/astro/routes/sitemap-[collection].xml.ts +31 -8
  825. package/src/astro/routes/sitemap.xml.ts +12 -10
  826. package/src/astro/types.ts +13 -1
  827. package/src/auth/rate-limit.ts +18 -13
  828. package/src/auth/types.ts +7 -0
  829. package/src/aws-sdk.d.ts +2 -1
  830. package/src/cleanup.ts +26 -0
  831. package/src/cli/commands/export-seed.ts +2 -0
  832. package/src/cli/commands/seed.ts +5 -4
  833. package/src/client/index.ts +6 -1
  834. package/src/comments/public-submission.ts +15 -8
  835. package/src/components/CommentForm.astro +48 -8
  836. package/src/components/Comments.astro +50 -28
  837. package/src/components/EmDashImage.astro +6 -4
  838. package/src/components/Gallery.astro +4 -3
  839. package/src/components/Image.astro +4 -3
  840. package/src/components/InlinePortableTextEditor.tsx +148 -26
  841. package/src/components/Video.astro +100 -0
  842. package/src/components/index.ts +4 -1
  843. package/src/components/inline-code-block.tsx +8 -0
  844. package/src/components/webmcp-search.ts +15 -19
  845. package/src/components/widgets/RecentPosts.astro +57 -17
  846. package/src/content/converters/mark-safety.ts +3 -3
  847. package/src/content/converters/portable-text-identity.ts +1 -0
  848. package/src/content/converters/portable-text-to-prosemirror.ts +7 -0
  849. package/src/content/converters/prosemirror-to-portable-text.ts +16 -0
  850. package/src/content/converters/types.ts +22 -0
  851. package/src/content/converters/video.ts +77 -0
  852. package/src/database/datetime-storage.ts +1 -1
  853. package/src/database/migrations/runner.ts +13 -1
  854. package/src/database/repositories/comment.ts +17 -3
  855. package/src/database/repositories/content.ts +22 -3
  856. package/src/database/repositories/plugin-storage.ts +28 -19
  857. package/src/database/repositories/redirect.ts +24 -2
  858. package/src/database/repositories/taxonomy.ts +61 -46
  859. package/src/database/repositories/types.ts +2 -0
  860. package/src/emdash-runtime.ts +217 -68
  861. package/src/import/sources/wordpress-plugin.ts +3 -2
  862. package/src/import/utils.ts +2 -3
  863. package/src/index.ts +3 -0
  864. package/src/loader.ts +134 -43
  865. package/src/media/image-endpoint.ts +101 -1
  866. package/src/media/responsive.ts +14 -7
  867. package/src/media/usage/extractor.ts +19 -2
  868. package/src/media/usage/types.ts +5 -1
  869. package/src/plugin-utils.ts +1 -1
  870. package/src/plugins/context.ts +3 -7
  871. package/src/plugins/hooks.ts +1 -1
  872. package/src/plugins/http-route-dispatch.ts +5 -1
  873. package/src/plugins/manifest-schema.ts +1 -0
  874. package/src/plugins/route-error.ts +14 -0
  875. package/src/plugins/routes.ts +2 -2
  876. package/src/plugins/state.ts +36 -0
  877. package/src/plugins/types.ts +6 -0
  878. package/src/query.ts +8 -0
  879. package/src/redirects/patterns.ts +26 -2
  880. package/src/schema/registry.ts +7 -4
  881. package/src/schema/slug.ts +19 -0
  882. package/src/search/text-extraction.ts +6 -1
  883. package/src/seed/validate.ts +31 -0
  884. package/src/seo/sitemap-name.ts +22 -0
  885. package/src/storage/index.ts +2 -0
  886. package/src/storage/local.ts +10 -2
  887. package/src/storage/range.ts +54 -0
  888. package/src/storage/s3.ts +52 -8
  889. package/src/storage/types.ts +30 -3
  890. package/src/ui.ts +1 -0
  891. package/src/utils/slugify.ts +6 -1
  892. package/src/visual-editing/toolbar.ts +80 -35
  893. package/src/widgets/components.ts +4 -0
  894. package/src/widgets/index.ts +74 -82
  895. package/src/widgets/recent-posts.ts +62 -0
  896. package/dist/action-token-AgOs1UWD.mjs +0 -26
  897. package/dist/action-token-AgOs1UWD.mjs.map +0 -1
  898. package/dist/adapters-DM1oyHIN.d.mts +0 -173
  899. package/dist/adapters-DM1oyHIN.d.mts.map +0 -1
  900. package/dist/allowed-origins-CFtudhyw.mjs +0 -116
  901. package/dist/allowed-origins-CFtudhyw.mjs.map +0 -1
  902. package/dist/api-CltsXhiX.mjs +0 -4980
  903. package/dist/api-CltsXhiX.mjs.map +0 -1
  904. package/dist/api-tokens-P3mAaQgr.mjs +0 -166
  905. package/dist/api-tokens-P3mAaQgr.mjs.map +0 -1
  906. package/dist/apply-Q7uvzBWW.mjs +0 -1680
  907. package/dist/apply-Q7uvzBWW.mjs.map +0 -1
  908. package/dist/approvals-DycwI6lZ.mjs +0 -460
  909. package/dist/approvals-DycwI6lZ.mjs.map +0 -1
  910. package/dist/artifact-fetch-CWxyELVI.mjs +0 -659
  911. package/dist/artifact-fetch-CWxyELVI.mjs.map +0 -1
  912. package/dist/artifacts-UzWbysb8.mjs +0 -307
  913. package/dist/artifacts-UzWbysb8.mjs.map +0 -1
  914. package/dist/authoritative-records-dSvXCfzb.mjs +0 -5172
  915. package/dist/authoritative-records-dSvXCfzb.mjs.map +0 -1
  916. package/dist/authorize-DeWfk--K.mjs +0 -49
  917. package/dist/authorize-DeWfk--K.mjs.map +0 -1
  918. package/dist/backup-CFnbdTSJ.mjs +0 -246
  919. package/dist/backup-CFnbdTSJ.mjs.map +0 -1
  920. package/dist/block-types-C0YFSfR7.mjs +0 -132
  921. package/dist/block-types-C0YFSfR7.mjs.map +0 -1
  922. package/dist/block-values-H4E0XwE8.mjs +0 -175
  923. package/dist/block-values-H4E0XwE8.mjs.map +0 -1
  924. package/dist/byline-BhVslYLz.mjs +0 -909
  925. package/dist/byline-BhVslYLz.mjs.map +0 -1
  926. package/dist/byline-fields-DHJs0Mja.mjs +0 -280
  927. package/dist/byline-fields-DHJs0Mja.mjs.map +0 -1
  928. package/dist/byline-fields-xdxE9kxZ.mjs +0 -123
  929. package/dist/byline-fields-xdxE9kxZ.mjs.map +0 -1
  930. package/dist/bylines-B_nN9liM.mjs +0 -234
  931. package/dist/bylines-B_nN9liM.mjs.map +0 -1
  932. package/dist/bylines-C71YACkL.mjs +0 -150
  933. package/dist/bylines-C71YACkL.mjs.map +0 -1
  934. package/dist/cache-aTYCL9nK.mjs +0 -133
  935. package/dist/cache-aTYCL9nK.mjs.map +0 -1
  936. package/dist/canonical-Y1dpjCnp.mjs +0 -174
  937. package/dist/canonical-Y1dpjCnp.mjs.map +0 -1
  938. package/dist/challenge-store-CxZxPqaw.mjs +0 -51
  939. package/dist/challenge-store-CxZxPqaw.mjs.map +0 -1
  940. package/dist/checksum-DtH6m5uk.mjs +0 -162
  941. package/dist/checksum-DtH6m5uk.mjs.map +0 -1
  942. package/dist/chunks-zlGB5IQP.mjs +0 -25
  943. package/dist/chunks-zlGB5IQP.mjs.map +0 -1
  944. package/dist/comment-Bu08Wvr3.mjs +0 -313
  945. package/dist/comment-Bu08Wvr3.mjs.map +0 -1
  946. package/dist/comment-reaction-B8SfT-yM.mjs +0 -85
  947. package/dist/comment-reaction-B8SfT-yM.mjs.map +0 -1
  948. package/dist/comments-BRtp992B.mjs +0 -99
  949. package/dist/comments-BRtp992B.mjs.map +0 -1
  950. package/dist/comments-DVUYqdyC.mjs +0 -195
  951. package/dist/comments-DVUYqdyC.mjs.map +0 -1
  952. package/dist/components-CQY-Sgm-.mjs +0 -108
  953. package/dist/components-CQY-Sgm-.mjs.map +0 -1
  954. package/dist/config-B-uePMLj.d.mts +0 -39
  955. package/dist/config-B-uePMLj.d.mts.map +0 -1
  956. package/dist/config-B6BDSsz2.d.mts +0 -6712
  957. package/dist/config-B6BDSsz2.d.mts.map +0 -1
  958. package/dist/config-BsJHiQxC.mjs +0 -228
  959. package/dist/config-BsJHiQxC.mjs.map +0 -1
  960. package/dist/connection-B9pIasFd.mjs +0 -36
  961. package/dist/connection-B9pIasFd.mjs.map +0 -1
  962. package/dist/content-Dji9vEiW.mjs +0 -2063
  963. package/dist/content-Dji9vEiW.mjs.map +0 -1
  964. package/dist/content-list-query-DiNwyKtd.d.mts +0 -26
  965. package/dist/content-list-query-DiNwyKtd.d.mts.map +0 -1
  966. package/dist/content-repair-B7wnbzhN.mjs +0 -442
  967. package/dist/content-repair-B7wnbzhN.mjs.map +0 -1
  968. package/dist/context-Ctcxc8Ia.mjs +0 -2026
  969. package/dist/context-Ctcxc8Ia.mjs.map +0 -1
  970. package/dist/credits-Bu7dlobo.mjs +0 -110
  971. package/dist/credits-Bu7dlobo.mjs.map +0 -1
  972. package/dist/cron-xe5XKqA-.mjs +0 -306
  973. package/dist/cron-xe5XKqA-.mjs.map +0 -1
  974. package/dist/dashboard-B5hVHOtf.mjs +0 -151
  975. package/dist/dashboard-B5hVHOtf.mjs.map +0 -1
  976. package/dist/default-DaoYyFRS.mjs +0 -81
  977. package/dist/default-DaoYyFRS.mjs.map +0 -1
  978. package/dist/deferred-tasks-BYcDx2o_.d.mts +0 -9
  979. package/dist/deferred-tasks-BYcDx2o_.d.mts.map +0 -1
  980. package/dist/device-flow-Ma5P5d2e.mjs +0 -521
  981. package/dist/device-flow-Ma5P5d2e.mjs.map +0 -1
  982. package/dist/digest-xIpR3o64.mjs +0 -194
  983. package/dist/digest-xIpR3o64.mjs.map +0 -1
  984. package/dist/direct-executor-DMWwCey3.mjs +0 -104
  985. package/dist/direct-executor-DMWwCey3.mjs.map +0 -1
  986. package/dist/email-console-DmqVF5J_.mjs +0 -50
  987. package/dist/email-console-DmqVF5J_.mjs.map +0 -1
  988. package/dist/email-locale-Cc5YSXfJ.mjs +0 -25
  989. package/dist/email-locale-Cc5YSXfJ.mjs.map +0 -1
  990. package/dist/emdash-runtime-BlybX9Ui.mjs +0 -4249
  991. package/dist/emdash-runtime-BlybX9Ui.mjs.map +0 -1
  992. package/dist/entry-lock-De1L8qUQ.mjs +0 -163
  993. package/dist/entry-lock-De1L8qUQ.mjs.map +0 -1
  994. package/dist/entry-lock-esmMbgI9.d.mts +0 -4551
  995. package/dist/entry-lock-esmMbgI9.d.mts.map +0 -1
  996. package/dist/entry-lock-sxz2PGAT.mjs +0 -1197
  997. package/dist/entry-lock-sxz2PGAT.mjs.map +0 -1
  998. package/dist/env-types-BkjCtN13.mjs +0 -38
  999. package/dist/env-types-BkjCtN13.mjs.map +0 -1
  1000. package/dist/error-B0rgPgsQ.mjs +0 -90
  1001. package/dist/error-B0rgPgsQ.mjs.map +0 -1
  1002. package/dist/errors-CuHQRiBW.mjs +0 -120
  1003. package/dist/errors-CuHQRiBW.mjs.map +0 -1
  1004. package/dist/errors-DTE6C3K_.mjs +0 -470
  1005. package/dist/errors-DTE6C3K_.mjs.map +0 -1
  1006. package/dist/escape-nJW7dR0s.mjs +0 -9
  1007. package/dist/escape-nJW7dR0s.mjs.map +0 -1
  1008. package/dist/fence-CGw57S4v.mjs +0 -162
  1009. package/dist/fence-CGw57S4v.mjs.map +0 -1
  1010. package/dist/field-defs-cache-Bw8w499w.mjs +0 -77
  1011. package/dist/field-defs-cache-Bw8w499w.mjs.map +0 -1
  1012. package/dist/field-map-hn-D-SyH.mjs +0 -83
  1013. package/dist/field-map-hn-D-SyH.mjs.map +0 -1
  1014. package/dist/fts-manager-DacCYIe4.mjs +0 -443
  1015. package/dist/fts-manager-DacCYIe4.mjs.map +0 -1
  1016. package/dist/gc-BBplHrv6.mjs +0 -75
  1017. package/dist/gc-BBplHrv6.mjs.map +0 -1
  1018. package/dist/hook-result-DSRRxu_-.d.mts +0 -31
  1019. package/dist/hook-result-DSRRxu_-.d.mts.map +0 -1
  1020. package/dist/hreflang-CKPunvU0.mjs +0 -105
  1021. package/dist/hreflang-CKPunvU0.mjs.map +0 -1
  1022. package/dist/hreflang-egumj6WF.d.mts +0 -50
  1023. package/dist/hreflang-egumj6WF.d.mts.map +0 -1
  1024. package/dist/http-route-dispatch-DjNFZcJ2.mjs +0 -339
  1025. package/dist/http-route-dispatch-DjNFZcJ2.mjs.map +0 -1
  1026. package/dist/identity-Dfrx2_Bc.mjs +0 -35
  1027. package/dist/identity-Dfrx2_Bc.mjs.map +0 -1
  1028. package/dist/import-ROBvhbNc.mjs +0 -2021
  1029. package/dist/import-ROBvhbNc.mjs.map +0 -1
  1030. package/dist/index-B4sIdCAT.d.mts +0 -623
  1031. package/dist/index-B4sIdCAT.d.mts.map +0 -1
  1032. package/dist/install-finalization-CPM7Gged.mjs +0 -58
  1033. package/dist/install-finalization-CPM7Gged.mjs.map +0 -1
  1034. package/dist/keys-DxqxcAD4.mjs +0 -61
  1035. package/dist/keys-DxqxcAD4.mjs.map +0 -1
  1036. package/dist/kinds-BQl5gN6e.mjs +0 -974
  1037. package/dist/kinds-BQl5gN6e.mjs.map +0 -1
  1038. package/dist/lifecycle-DGQI7itS.mjs +0 -25
  1039. package/dist/lifecycle-DGQI7itS.mjs.map +0 -1
  1040. package/dist/load-DMxRl4VK.mjs +0 -28
  1041. package/dist/load-DMxRl4VK.mjs.map +0 -1
  1042. package/dist/loader-1DMiOq5s.mjs +0 -1303
  1043. package/dist/loader-1DMiOq5s.mjs.map +0 -1
  1044. package/dist/loops-Dn1i16FP.mjs +0 -205
  1045. package/dist/loops-Dn1i16FP.mjs.map +0 -1
  1046. package/dist/manifest-builder-CTw4FmZk.mjs +0 -189
  1047. package/dist/manifest-builder-CTw4FmZk.mjs.map +0 -1
  1048. package/dist/manifest-schema-gy37bD_D.mjs +0 -496
  1049. package/dist/manifest-schema-gy37bD_D.mjs.map +0 -1
  1050. package/dist/marketplace-tHWSsCUo.mjs +0 -257
  1051. package/dist/marketplace-tHWSsCUo.mjs.map +0 -1
  1052. package/dist/media-Bw-Q65ve.mjs +0 -294
  1053. package/dist/media-Bw-Q65ve.mjs.map +0 -1
  1054. package/dist/media-BzUDu7nl.mjs +0 -373
  1055. package/dist/media-BzUDu7nl.mjs.map +0 -1
  1056. package/dist/media-aahnKHze.mjs +0 -408
  1057. package/dist/media-aahnKHze.mjs.map +0 -1
  1058. package/dist/media-allowlist-RMrjo8TU.mjs +0 -45
  1059. package/dist/media-allowlist-RMrjo8TU.mjs.map +0 -1
  1060. package/dist/media-folders-kabR1oJf.mjs +0 -210
  1061. package/dist/media-folders-kabR1oJf.mjs.map +0 -1
  1062. package/dist/media-url-DloW2xrP.mjs +0 -43
  1063. package/dist/media-url-DloW2xrP.mjs.map +0 -1
  1064. package/dist/media-usage-CHHpV7ee.mjs +0 -282
  1065. package/dist/media-usage-CHHpV7ee.mjs.map +0 -1
  1066. package/dist/media-usage-activation-BinYqC_r.mjs +0 -78
  1067. package/dist/media-usage-activation-BinYqC_r.mjs.map +0 -1
  1068. package/dist/media-usage-work-C734aq6s.mjs +0 -1015
  1069. package/dist/media-usage-work-C734aq6s.mjs.map +0 -1
  1070. package/dist/media-usage-work-lxvV0-UO.mjs +0 -151
  1071. package/dist/media-usage-work-lxvV0-UO.mjs.map +0 -1
  1072. package/dist/menus-6RHNq4ZK.mjs +0 -753
  1073. package/dist/menus-6RHNq4ZK.mjs.map +0 -1
  1074. package/dist/menus-AuCTaO9W.mjs +0 -3704
  1075. package/dist/menus-AuCTaO9W.mjs.map +0 -1
  1076. package/dist/menus-BQKqf0Up.mjs +0 -92
  1077. package/dist/menus-BQKqf0Up.mjs.map +0 -1
  1078. package/dist/mode-nh0ppSX5.mjs +0 -23
  1079. package/dist/mode-nh0ppSX5.mjs.map +0 -1
  1080. package/dist/node-sqlite-compat-CDOEcc97.mjs +0 -63
  1081. package/dist/node-sqlite-compat-CDOEcc97.mjs.map +0 -1
  1082. package/dist/oauth-authorization-BtYQ80uU.mjs +0 -274
  1083. package/dist/oauth-authorization-BtYQ80uU.mjs.map +0 -1
  1084. package/dist/oauth-clients-C1S4NQHh.mjs +0 -266
  1085. package/dist/oauth-clients-C1S4NQHh.mjs.map +0 -1
  1086. package/dist/oauth-state-store-CpGi2FZH.mjs +0 -50
  1087. package/dist/oauth-state-store-CpGi2FZH.mjs.map +0 -1
  1088. package/dist/oauth-user-lookup-BNp1aFAr.mjs +0 -26
  1089. package/dist/oauth-user-lookup-BNp1aFAr.mjs.map +0 -1
  1090. package/dist/options-B41aLm1I.d.mts +0 -81
  1091. package/dist/options-B41aLm1I.d.mts.map +0 -1
  1092. package/dist/ownership-DoeAIuTg.mjs +0 -12
  1093. package/dist/ownership-DoeAIuTg.mjs.map +0 -1
  1094. package/dist/parse-CmFDTGzp.mjs +0 -81
  1095. package/dist/parse-CmFDTGzp.mjs.map +0 -1
  1096. package/dist/parse-QVS0t5oR.d.mts +0 -172
  1097. package/dist/parse-QVS0t5oR.d.mts.map +0 -1
  1098. package/dist/passkey-config-C-MxsV22.mjs +0 -46
  1099. package/dist/passkey-config-C-MxsV22.mjs.map +0 -1
  1100. package/dist/paths-kr8hAMMI.mjs +0 -77
  1101. package/dist/paths-kr8hAMMI.mjs.map +0 -1
  1102. package/dist/patterns-DyZJ67I7.mjs +0 -140
  1103. package/dist/patterns-DyZJ67I7.mjs.map +0 -1
  1104. package/dist/placeholder-Dn7MMdWr.d.mts +0 -306
  1105. package/dist/placeholder-Dn7MMdWr.d.mts.map +0 -1
  1106. package/dist/plan-CuQOeU9g.mjs +0 -135
  1107. package/dist/plan-CuQOeU9g.mjs.map +0 -1
  1108. package/dist/plugins-CGb-G98c.mjs +0 -261
  1109. package/dist/plugins-CGb-G98c.mjs.map +0 -1
  1110. package/dist/policy-C5wrDXYV.mjs +0 -45
  1111. package/dist/policy-C5wrDXYV.mjs.map +0 -1
  1112. package/dist/portable-text-BnRuiR1-.mjs +0 -307
  1113. package/dist/portable-text-BnRuiR1-.mjs.map +0 -1
  1114. package/dist/preview-xWNSR1Li.mjs +0 -107
  1115. package/dist/preview-xWNSR1Li.mjs.map +0 -1
  1116. package/dist/protocol-ClxN-m1e.d.mts +0 -61
  1117. package/dist/protocol-ClxN-m1e.d.mts.map +0 -1
  1118. package/dist/public-submission-CkmT2SKv.mjs +0 -250
  1119. package/dist/public-submission-CkmT2SKv.mjs.map +0 -1
  1120. package/dist/public-url-B5a0QAh6.mjs +0 -101
  1121. package/dist/public-url-B5a0QAh6.mjs.map +0 -1
  1122. package/dist/query-DHqFiqqH.mjs +0 -41
  1123. package/dist/query-DHqFiqqH.mjs.map +0 -1
  1124. package/dist/query-DT85BehD.mjs +0 -1125
  1125. package/dist/query-DT85BehD.mjs.map +0 -1
  1126. package/dist/rate-limit-iMvcu3eu.mjs +0 -120
  1127. package/dist/rate-limit-iMvcu3eu.mjs.map +0 -1
  1128. package/dist/receipt-Dpp1uaX9.mjs +0 -43
  1129. package/dist/receipt-Dpp1uaX9.mjs.map +0 -1
  1130. package/dist/redirect-BRoLiWQE.mjs +0 -19
  1131. package/dist/redirect-BRoLiWQE.mjs.map +0 -1
  1132. package/dist/redirect-xZNpBoGp.mjs +0 -417
  1133. package/dist/redirect-xZNpBoGp.mjs.map +0 -1
  1134. package/dist/redirects-D4EWeXAo.mjs +0 -148
  1135. package/dist/redirects-D4EWeXAo.mjs.map +0 -1
  1136. package/dist/redirects-DCKqwiWp.mjs +0 -446
  1137. package/dist/redirects-DCKqwiWp.mjs.map +0 -1
  1138. package/dist/registry-DaXmUsD4.mjs +0 -8369
  1139. package/dist/registry-DaXmUsD4.mjs.map +0 -1
  1140. package/dist/relations-JvBP8nGP.mjs +0 -776
  1141. package/dist/relations-JvBP8nGP.mjs.map +0 -1
  1142. package/dist/request-meta-B6blULFY.mjs +0 -141
  1143. package/dist/request-meta-B6blULFY.mjs.map +0 -1
  1144. package/dist/resolve-DAhHi5tn.mjs +0 -100
  1145. package/dist/resolve-DAhHi5tn.mjs.map +0 -1
  1146. package/dist/route-wire-DK600v4u.mjs +0 -197
  1147. package/dist/route-wire-DK600v4u.mjs.map +0 -1
  1148. package/dist/routes-BeZyaCzv.mjs +0 -272
  1149. package/dist/routes-BeZyaCzv.mjs.map +0 -1
  1150. package/dist/runner-CskI4Hmq.mjs +0 -6372
  1151. package/dist/runner-CskI4Hmq.mjs.map +0 -1
  1152. package/dist/runner-J3Cj6DGk.d.mts +0 -68
  1153. package/dist/runner-J3Cj6DGk.d.mts.map +0 -1
  1154. package/dist/schema-CK0ihqMR.mjs +0 -815
  1155. package/dist/schema-CK0ihqMR.mjs.map +0 -1
  1156. package/dist/schema-VtaZSrC-.mjs +0 -13
  1157. package/dist/schema-VtaZSrC-.mjs.map +0 -1
  1158. package/dist/scopes-BRnGlL9t.mjs +0 -34
  1159. package/dist/scopes-BRnGlL9t.mjs.map +0 -1
  1160. package/dist/search-D6-XK1Sn.mjs +0 -448
  1161. package/dist/search-D6-XK1Sn.mjs.map +0 -1
  1162. package/dist/sections-CBDCf7qR.mjs +0 -346
  1163. package/dist/sections-CBDCf7qR.mjs.map +0 -1
  1164. package/dist/seo-BdeEPDNW.mjs +0 -133
  1165. package/dist/seo-BdeEPDNW.mjs.map +0 -1
  1166. package/dist/seo-C61bnPuV.mjs +0 -114
  1167. package/dist/seo-C61bnPuV.mjs.map +0 -1
  1168. package/dist/service-BuRKLMxa.mjs +0 -150
  1169. package/dist/service-BuRKLMxa.mjs.map +0 -1
  1170. package/dist/session-user-CqkPtrPL.mjs +0 -61
  1171. package/dist/session-user-CqkPtrPL.mjs.map +0 -1
  1172. package/dist/settings-0u0lTthS.mjs +0 -51
  1173. package/dist/settings-0u0lTthS.mjs.map +0 -1
  1174. package/dist/settings-WHr45II1.mjs +0 -61
  1175. package/dist/settings-WHr45II1.mjs.map +0 -1
  1176. package/dist/settings-m5tIYnF0.mjs +0 -443
  1177. package/dist/settings-m5tIYnF0.mjs.map +0 -1
  1178. package/dist/setup-complete-B2_dhZZz.mjs +0 -65
  1179. package/dist/setup-complete-B2_dhZZz.mjs.map +0 -1
  1180. package/dist/setup-nonce-CJV9ftSK.mjs +0 -25
  1181. package/dist/setup-nonce-CJV9ftSK.mjs.map +0 -1
  1182. package/dist/site-settings-KJOqJW6W.mjs +0 -50
  1183. package/dist/site-settings-KJOqJW6W.mjs.map +0 -1
  1184. package/dist/site-url-Ceq_AUK0.mjs +0 -16
  1185. package/dist/site-url-Ceq_AUK0.mjs.map +0 -1
  1186. package/dist/slugify-T5GHH42D.mjs +0 -17
  1187. package/dist/slugify-T5GHH42D.mjs.map +0 -1
  1188. package/dist/snapshot-Dzsn3NZa.mjs +0 -414
  1189. package/dist/snapshot-Dzsn3NZa.mjs.map +0 -1
  1190. package/dist/ssrf-DsmvZB80.mjs +0 -406
  1191. package/dist/ssrf-DsmvZB80.mjs.map +0 -1
  1192. package/dist/stage-Csnh_yEd.mjs +0 -662
  1193. package/dist/stage-Csnh_yEd.mjs.map +0 -1
  1194. package/dist/staged-Q7pnEVvI.mjs +0 -686
  1195. package/dist/staged-Q7pnEVvI.mjs.map +0 -1
  1196. package/dist/state-kGdOMQRY.mjs +0 -153
  1197. package/dist/state-kGdOMQRY.mjs.map +0 -1
  1198. package/dist/status-D39Fpy8R.mjs +0 -30
  1199. package/dist/status-D39Fpy8R.mjs.map +0 -1
  1200. package/dist/storage-query-C7iy6eUb.d.mts +0 -1615
  1201. package/dist/storage-query-C7iy6eUb.d.mts.map +0 -1
  1202. package/dist/tar-BWiraSUY.mjs +0 -449
  1203. package/dist/tar-BWiraSUY.mjs.map +0 -1
  1204. package/dist/target-DOFs5oUC.mjs +0 -27
  1205. package/dist/target-DOFs5oUC.mjs.map +0 -1
  1206. package/dist/taxonomies-BS40Wxvi.mjs +0 -939
  1207. package/dist/taxonomies-BS40Wxvi.mjs.map +0 -1
  1208. package/dist/taxonomies-DAZU9VDd.mjs +0 -697
  1209. package/dist/taxonomies-DAZU9VDd.mjs.map +0 -1
  1210. package/dist/taxonomy-XzLE95Vx.mjs +0 -525
  1211. package/dist/taxonomy-XzLE95Vx.mjs.map +0 -1
  1212. package/dist/tokens-DSQan4p7.mjs +0 -171
  1213. package/dist/tokens-DSQan4p7.mjs.map +0 -1
  1214. package/dist/transfer-BcCVxDgf.mjs +0 -166
  1215. package/dist/transfer-BcCVxDgf.mjs.map +0 -1
  1216. package/dist/transfer-OMrancOt.mjs +0 -8873
  1217. package/dist/transfer-OMrancOt.mjs.map +0 -1
  1218. package/dist/transfer-download-Dc-ltjZY.mjs +0 -33
  1219. package/dist/transfer-download-Dc-ltjZY.mjs.map +0 -1
  1220. package/dist/transformations-Ddx7UtrY.mjs +0 -196
  1221. package/dist/transformations-Ddx7UtrY.mjs.map +0 -1
  1222. package/dist/transport-flR-Zmds.d.mts +0 -42
  1223. package/dist/transport-flR-Zmds.d.mts.map +0 -1
  1224. package/dist/transport-umzEbgYO.mjs +0 -136
  1225. package/dist/transport-umzEbgYO.mjs.map +0 -1
  1226. package/dist/trusted-proxy-BqfQFs6a.mjs +0 -51
  1227. package/dist/trusted-proxy-BqfQFs6a.mjs.map +0 -1
  1228. package/dist/turnstile-Do60baId.mjs +0 -58
  1229. package/dist/turnstile-Do60baId.mjs.map +0 -1
  1230. package/dist/types-BT1p3uyb.d.mts +0 -1735
  1231. package/dist/types-BT1p3uyb.d.mts.map +0 -1
  1232. package/dist/types-BYaPWs_F.d.mts +0 -198
  1233. package/dist/types-BYaPWs_F.d.mts.map +0 -1
  1234. package/dist/types-CLTQ9b_r.d.mts +0 -374
  1235. package/dist/types-CLTQ9b_r.d.mts.map +0 -1
  1236. package/dist/types-CPkQw2T2.d.mts +0 -85
  1237. package/dist/types-CPkQw2T2.d.mts.map +0 -1
  1238. package/dist/types-CQLvuXoZ.d.mts +0 -198
  1239. package/dist/types-CQLvuXoZ.d.mts.map +0 -1
  1240. package/dist/types-CV5xszpF.d.mts +0 -363
  1241. package/dist/types-CV5xszpF.d.mts.map +0 -1
  1242. package/dist/types-CdEMurNh.mjs +0 -77
  1243. package/dist/types-CdEMurNh.mjs.map +0 -1
  1244. package/dist/types-CxwtnuSS.mjs +0 -37
  1245. package/dist/types-CxwtnuSS.mjs.map +0 -1
  1246. package/dist/types-DGw8KMX_.mjs +0 -16
  1247. package/dist/types-DGw8KMX_.mjs.map +0 -1
  1248. package/dist/types-DOfVMPoo.d.mts +0 -125
  1249. package/dist/types-DOfVMPoo.d.mts.map +0 -1
  1250. package/dist/types-LtS0SM4F.d.mts +0 -287
  1251. package/dist/types-LtS0SM4F.d.mts.map +0 -1
  1252. package/dist/types-ifgOkcBa.d.mts +0 -916
  1253. package/dist/types-ifgOkcBa.d.mts.map +0 -1
  1254. package/dist/update-check-DOc2aBIU.mjs +0 -161
  1255. package/dist/update-check-DOc2aBIU.mjs.map +0 -1
  1256. package/dist/upload-attempts-nzdc3cay.mjs +0 -32
  1257. package/dist/upload-attempts-nzdc3cay.mjs.map +0 -1
  1258. package/dist/url-pattern-hVbqpXs6.mjs +0 -41
  1259. package/dist/url-pattern-hVbqpXs6.mjs.map +0 -1
  1260. package/dist/user-Dnp53zTq.mjs +0 -171
  1261. package/dist/user-Dnp53zTq.mjs.map +0 -1
  1262. package/dist/utils-CoV-PYhg.mjs +0 -439
  1263. package/dist/utils-CoV-PYhg.mjs.map +0 -1
  1264. package/dist/validate-CfQ9_YlD.d.mts +0 -468
  1265. package/dist/validate-CfQ9_YlD.d.mts.map +0 -1
  1266. package/dist/validate-DBX3DKtL.mjs +0 -516
  1267. package/dist/validate-DBX3DKtL.mjs.map +0 -1
  1268. package/dist/validation-BJMiDhB1.mjs +0 -219
  1269. package/dist/validation-BJMiDhB1.mjs.map +0 -1
  1270. package/dist/version-BaT8yKIT.mjs +0 -7
  1271. package/dist/version-BaT8yKIT.mjs.map +0 -1
  1272. package/dist/version-BwEGkqkx.mjs +0 -9
  1273. package/dist/version-BwEGkqkx.mjs.map +0 -1
  1274. package/dist/virtual-modules-B6vJW15k.mjs +0 -516
  1275. package/dist/virtual-modules-B6vJW15k.mjs.map +0 -1
  1276. package/dist/widgets-BkxBAgZ_.mjs +0 -126
  1277. package/dist/widgets-BkxBAgZ_.mjs.map +0 -1
  1278. package/dist/wxr-taxonomies-D7gAJyOF.mjs +0 -453
  1279. package/dist/wxr-taxonomies-D7gAJyOF.mjs.map +0 -1
  1280. package/dist/wxr-taxonomies-DM5J9AsT.d.mts +0 -34
  1281. package/dist/wxr-taxonomies-DM5J9AsT.d.mts.map +0 -1
  1282. /package/dist/{api-tokens-BLz2MtQs.mjs → api-tokens-D2zgAIEt.mjs} +0 -0
  1283. /package/dist/{ssrf-tA45vIPX.mjs → ssrf-BvNItdxk.mjs} +0 -0
@@ -5,32 +5,32 @@ import "../../../../options-DhrI7eMv.mjs";
5
5
  import "../../../../secrets-Cc_O3Kp-.mjs";
6
6
  import "../../../../base64-BQBZwXCx.mjs";
7
7
  import "../../../../object-cache-Bo6DGaC9.mjs";
8
- import "../../../../slugify-T5GHH42D.mjs";
8
+ import "../../../../slugify-bu2-jKia.mjs";
9
9
  import "../../../../request-cache-C4CIo5ad.mjs";
10
10
  import "../../../../url-Dn3IStq8.mjs";
11
11
  import "../../../../types-C-Xp0CcN.mjs";
12
- import "../../../../media-BzUDu7nl.mjs";
13
- import "../../../../loader-1DMiOq5s.mjs";
14
- import "../../../../errors-CuHQRiBW.mjs";
15
- import "../../../../errors-DTE6C3K_.mjs";
16
- import "../../../../settings-WHr45II1.mjs";
17
- import "../../../../site-settings-KJOqJW6W.mjs";
18
- import "../../../../settings-m5tIYnF0.mjs";
19
- import { t as SsrfError } from "../../../../ssrf-DsmvZB80.mjs";
20
- import { n as apiSuccess, r as handleError, t as apiError } from "../../../../error-B0rgPgsQ.mjs";
21
- import { n as parseBody, t as isParseError } from "../../../../parse-CmFDTGzp.mjs";
22
- import "../../../../redirects-D4EWeXAo.mjs";
23
- import "../../../../entry-lock-sxz2PGAT.mjs";
24
- import "../../../../media-aahnKHze.mjs";
25
- import "../../../../comments-BRtp992B.mjs";
26
- import { f as importProbeBody } from "../../../../byline-fields-DHJs0Mja.mjs";
27
- import "../../../../menus-BQKqf0Up.mjs";
28
- import "../../../../status-D39Fpy8R.mjs";
12
+ import "../../../../media-IT8hQleU.mjs";
13
+ import "../../../../loader-CetY659y.mjs";
14
+ import "../../../../errors-CjtE5aWF.mjs";
15
+ import "../../../../errors-hskQ0C8G.mjs";
16
+ import "../../../../settings-GaZ5sVgg.mjs";
17
+ import "../../../../site-settings-CDdT4mVm.mjs";
18
+ import "../../../../settings-B1jOxAIl.mjs";
19
+ import { t as SsrfError } from "../../../../ssrf-LM_0wpGA.mjs";
20
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../error-DxgQdaZ_.mjs";
21
+ import { n as parseBody, t as isParseError } from "../../../../parse-Cn5aSk1N.mjs";
22
+ import "../../../../redirects-DFT7Wr-e.mjs";
23
+ import "../../../../entry-lock-Cjz0h45X.mjs";
24
+ import "../../../../media-CRKsKlfK.mjs";
25
+ import "../../../../comments-BzmIKVb2.mjs";
26
+ import { f as importProbeBody } from "../../../../byline-fields-Bze3ZdAw.mjs";
27
+ import "../../../../menus-D1HC8npj.mjs";
28
+ import "../../../../status-Dl85BK39.mjs";
29
29
  import "../../../../api/schemas/index.mjs";
30
- import { h as probeUrl } from "../../../../import-ROBvhbNc.mjs";
31
- import "../../../../ssrf-tA45vIPX.mjs";
32
- import "../../../../utils-CoV-PYhg.mjs";
33
- import { i as requirePerm } from "../../../../authorize-DeWfk--K.mjs";
30
+ import { h as probeUrl } from "../../../../import-DJ3Z2wxE.mjs";
31
+ import "../../../../ssrf-BvNItdxk.mjs";
32
+ import "../../../../utils-D7wL3r6-.mjs";
33
+ import { i as requirePerm } from "../../../../authorize-TdIGpRSE.mjs";
34
34
 
35
35
  //#region src/astro/routes/api/import/probe.ts
36
36
  const prerender = false;
@@ -1,10 +1,10 @@
1
1
  import "../../../../../base64-BQBZwXCx.mjs";
2
2
  import { u as RESERVED_COLLECTION_SLUGS } from "../../../../../types-BGmQ0uXs.mjs";
3
3
  import "../../../../../types-C-Xp0CcN.mjs";
4
- import "../../../../../errors-CuHQRiBW.mjs";
5
- import "../../../../../errors-DTE6C3K_.mjs";
6
- import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-B0rgPgsQ.mjs";
7
- import { i as requirePerm } from "../../../../../authorize-DeWfk--K.mjs";
4
+ import "../../../../../errors-CjtE5aWF.mjs";
5
+ import "../../../../../errors-hskQ0C8G.mjs";
6
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-DxgQdaZ_.mjs";
7
+ import { i as requirePerm } from "../../../../../authorize-TdIGpRSE.mjs";
8
8
  import mime from "mime/lite";
9
9
  import { SchemaRegistry, parseWxrString } from "emdash";
10
10
 
@@ -1,17 +1,17 @@
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-BOGhrwSq.mjs";
2
+ import "../../../../../types-UKr5Sf4y.mjs";
3
+ import "../../../../../types-C4P7F1Vq.mjs";
4
+ import "../../../../../options-BR9XZl7h.mjs";
5
+ import "../../../../../entry-lock-BAAlKYrz.mjs";
6
+ import "../../../../../config-C4-UxIk7.mjs";
7
+ import "../../../../../runner-DkeafPBA.mjs";
8
+ import "../../../../../storage-query-BOBmeDMD.mjs";
9
+ import "../../../../../index-DYsn97dY.mjs";
10
+ import "../../../../../types-Bq9Wohd7.mjs";
11
+ import "../../../../../hreflang-BsYo4x_M.mjs";
12
+ import "../../../../../validate-Dfv0DpZi.mjs";
13
13
  import { EmDashHandlers, EmDashManifest } from "../../../../types.mjs";
14
- import { t as TaxonomyImportPlan } from "../../../../../wxr-taxonomies-DM5J9AsT.mjs";
14
+ import { t as TaxonomyImportPlan } from "../../../../../wxr-taxonomies-Dad33GJi.mjs";
15
15
  import { WxrPost } from "emdash";
16
16
  import { APIRoute } from "astro";
17
17
 
@@ -3,35 +3,35 @@ import "../../../../../config-CvmjJcVw.mjs";
3
3
  import "../../../../../after-PcEvMY_6.mjs";
4
4
  import "../../../../../base64-BQBZwXCx.mjs";
5
5
  import "../../../../../object-cache-Bo6DGaC9.mjs";
6
- import { n as slugify } from "../../../../../slugify-T5GHH42D.mjs";
6
+ import { n as slugify } from "../../../../../slugify-bu2-jKia.mjs";
7
7
  import "../../../../../request-cache-C4CIo5ad.mjs";
8
8
  import "../../../../../url-Dn3IStq8.mjs";
9
9
  import "../../../../../types-C-Xp0CcN.mjs";
10
- import "../../../../../taxonomy-XzLE95Vx.mjs";
10
+ import "../../../../../taxonomy-QrNmTfIZ.mjs";
11
11
  import "../../../../../resolve-D-kqyKns.mjs";
12
12
  import "../../../../../byline-registry-dvt4N3xV.mjs";
13
- import "../../../../../field-defs-cache-Bw8w499w.mjs";
14
- import { t as BylineRepository } from "../../../../../byline-BhVslYLz.mjs";
15
- import "../../../../../loader-1DMiOq5s.mjs";
13
+ import "../../../../../field-defs-cache-zoow36nz.mjs";
14
+ import { t as BylineRepository } from "../../../../../byline-BmVKOQ8l.mjs";
15
+ import "../../../../../loader-CetY659y.mjs";
16
16
  import "../../../../../collection-slugs-cache-B2Gs9Jwx.mjs";
17
- import "../../../../../taxonomies-DAZU9VDd.mjs";
18
- import "../../../../../errors-CuHQRiBW.mjs";
19
- import "../../../../../errors-DTE6C3K_.mjs";
20
- import "../../../../../settings-WHr45II1.mjs";
21
- import "../../../../../site-settings-KJOqJW6W.mjs";
22
- import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-B0rgPgsQ.mjs";
23
- import "../../../../../redirects-D4EWeXAo.mjs";
24
- import "../../../../../entry-lock-sxz2PGAT.mjs";
25
- import "../../../../../media-aahnKHze.mjs";
26
- import "../../../../../comments-BRtp992B.mjs";
27
- import { b as wxrImportConfig, v as wxrChunkCursor, y as wxrChunkState } from "../../../../../byline-fields-DHJs0Mja.mjs";
28
- import "../../../../../menus-BQKqf0Up.mjs";
29
- import "../../../../../status-D39Fpy8R.mjs";
17
+ import "../../../../../taxonomies-DQSywBvX.mjs";
18
+ import "../../../../../errors-CjtE5aWF.mjs";
19
+ import "../../../../../errors-hskQ0C8G.mjs";
20
+ import "../../../../../settings-GaZ5sVgg.mjs";
21
+ import "../../../../../site-settings-CDdT4mVm.mjs";
22
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-DxgQdaZ_.mjs";
23
+ import "../../../../../redirects-DFT7Wr-e.mjs";
24
+ import "../../../../../entry-lock-Cjz0h45X.mjs";
25
+ import "../../../../../media-CRKsKlfK.mjs";
26
+ import "../../../../../comments-BzmIKVb2.mjs";
27
+ import { b as wxrImportConfig, v as wxrChunkCursor, y as wxrChunkState } from "../../../../../byline-fields-Bze3ZdAw.mjs";
28
+ import "../../../../../menus-D1HC8npj.mjs";
29
+ import "../../../../../status-Dl85BK39.mjs";
30
30
  import "../../../../../api/schemas/index.mjs";
31
- import { g as resolveImportByline } from "../../../../../utils-CoV-PYhg.mjs";
32
- import { i as requirePerm } from "../../../../../authorize-DeWfk--K.mjs";
31
+ import { g as resolveImportByline } from "../../../../../utils-D7wL3r6-.mjs";
32
+ import { i as requirePerm } from "../../../../../authorize-TdIGpRSE.mjs";
33
33
  import { sanitizeSlug } from "./analyze.mjs";
34
- import { a as preImportWxrTaxonomies, i as mirrorTermsToLocales, n as isWxrTaxonomyConflictError, o as setPostTermAssignmentsReplacing, r as loadTaxonomyPlanFromDb, t as attachPostTaxonomies } from "../../../../../wxr-taxonomies-D7gAJyOF.mjs";
34
+ import { a as preImportWxrTaxonomies, i as mirrorTermsToLocales, n as isWxrTaxonomyConflictError, o as setPostTermAssignmentsReplacing, r as loadTaxonomyPlanFromDb, t as attachPostTaxonomies } from "../../../../../wxr-taxonomies-BxI0CbTg.mjs";
35
35
  import { gutenbergToPortableText } from "@emdash-cms/gutenberg-to-portable-text";
36
36
  import { ContentRepository, importReusableBlocksAsSections, parseWxrDate, parseWxrString } from "emdash";
37
37
 
@@ -323,6 +323,13 @@ async function importContent(posts, config, emdash, manifest, attachmentMap, loc
323
323
  error: taxError instanceof Error && taxError.message ? `Imported but failed to attach taxonomies: ${taxError.message}` : "Imported but failed to attach taxonomies"
324
324
  });
325
325
  }
326
+ if (createdItem && post.status === "future" && createdAt && Date.parse(createdAt) > Date.now()) {
327
+ const scheduled = await emdash.handleContentSchedule(collection, createdItem.id, createdAt);
328
+ if (!scheduled.success) result.errors.push({
329
+ title: post.title || "Untitled",
330
+ error: `Imported as draft but failed to schedule: ${scheduled.error?.message ?? "Unknown error"}`
331
+ });
332
+ }
326
333
  } else result.errors.push({
327
334
  title: post.title || "Untitled",
328
335
  error: typeof createResult.error === "object" && createResult.error !== null ? createResult.error.message || "Unknown error" : String(createResult.error)
@@ -1 +1 @@
1
- {"version":3,"file":"execute.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/import/wordpress/execute.ts"],"sourcesContent":["/**\n * WordPress WXR execute import endpoint\n *\n * POST /_emdash/api/import/wordpress/execute\n *\n * Accepts WXR file and import configuration, imports content into the database.\n */\n\nimport { gutenbergToPortableText } from \"@emdash-cms/gutenberg-to-portable-text\";\nimport type { APIRoute } from \"astro\";\nimport {\n\tparseWxrString,\n\tContentRepository,\n\timportReusableBlocksAsSections,\n\ttype WxrPost,\n\tparseWxrDate,\n} from \"emdash\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { wxrChunkCursor, wxrChunkState, wxrImportConfig } from \"#api/schemas.js\";\nimport { BylineRepository } from \"#db/repositories/byline.js\";\nimport { resolveImportByline } from \"#import/utils.js\";\nimport {\n\tattachPostTaxonomies,\n\tisWxrTaxonomyConflictError,\n\tloadTaxonomyPlanFromDb,\n\tmirrorTermsToLocales,\n\tpreImportWxrTaxonomies,\n\tsetPostTermAssignmentsReplacing,\n\ttype TaxonomyImportPlan,\n} from \"#import/wxr-taxonomies.js\";\nimport type { EmDashHandlers, EmDashManifest } from \"#types\";\nimport { slugify } from \"#utils/slugify.js\";\n\nimport { sanitizeSlug } from \"./analyze.js\";\n\nexport const prerender = false;\n\n/** Posts processed per Worker invocation in chunked WXR imports. */\nconst WXR_CONTENT_CHUNK_SIZE = 30;\n\n/** Phase/cursor payload for chunked WXR imports. */\ninterface WxrChunkCursor {\n\toffset: number;\n\tsource: string;\n\ttaxonomiesReady: true;\n}\n\n/** Cross-chunk state carried by the client. */\ninterface WxrChunkState {\n\ttranslationGroups: Record<string, string>;\n}\n\n/** Chunked response shape mirrors the wordpress-plugin execute endpoint. */\ninterface WxrChunkResponse {\n\tsuccess: boolean;\n\tresult: ImportResult;\n\tdone: boolean;\n\tcursor?: WxrChunkCursor;\n\tchunk?: WxrChunkState;\n}\n\nexport interface ImportConfig {\n\t/** Map WordPress post types to EmDash collections */\n\tpostTypeMappings: Record<\n\t\tstring,\n\t\t{\n\t\t\tcollection: string;\n\t\t\tenabled: boolean;\n\t\t}\n\t>;\n\t/** Whether to skip items that already exist (by slug) */\n\tskipExisting: boolean;\n\t/** Whether to import reusable blocks (wp_block) as sections */\n\timportSections?: boolean;\n\t/** Author mappings (WP author login -> EmDash user ID) */\n\tauthorMappings?: Record<string, string | null>;\n\t/** BCP 47 locale for all imported items. When omitted, defaults to defaultLocale. */\n\tlocale?: string;\n}\n\nexport interface ImportResult {\n\tsuccess: boolean;\n\timported: number;\n\tskipped: number;\n\terrors: Array<{ title: string; error: string }>;\n\tbyCollection: Record<string, number>;\n\t/** Sections import results (if enabled) */\n\tsections?: {\n\t\tcreated: number;\n\t\tskipped: number;\n\t};\n\t/** Taxonomy import results (categories, tags, custom taxonomies). */\n\ttaxonomies?: {\n\t\t/** Terms newly created during this import, keyed by taxonomy name. */\n\t\ttermsCreated: Record<string, number>;\n\t\t/** Existing terms that were re-used, keyed by taxonomy name. */\n\t\ttermsReused: Record<string, number>;\n\t\t/** Total pivot rows (post <-> term) written to `content_taxonomies`. */\n\t\tassignments: number;\n\t\t/**\n\t\t * Custom taxonomy names from the WXR file that had no matching EmDash\n\t\t * definition and were therefore skipped. Lets the admin UI surface a\n\t\t * \"create taxonomy X first\" hint without re-running the import.\n\t\t */\n\t\tmissingTaxonomies: string[];\n\t};\n}\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tconst denied = requirePerm(user, \"import:execute\");\n\tif (denied) return denied;\n\n\tif (!emdash?.handleContentCreate) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash not configured\", 500);\n\t}\n\n\ttry {\n\t\tconst emdashManifest = await emdash.getManifest();\n\n\t\tconst formData = await request.formData();\n\t\tconst fileEntry = formData.get(\"file\");\n\t\tconst file = fileEntry instanceof File ? fileEntry : null;\n\t\tconst configEntry = formData.get(\"config\");\n\t\tconst configJson = typeof configEntry === \"string\" ? configEntry : null;\n\n\t\tif (!file) {\n\t\t\treturn apiError(\"VALIDATION_ERROR\", \"No file provided\", 400);\n\t\t}\n\n\t\tif (!configJson) {\n\t\t\treturn apiError(\"VALIDATION_ERROR\", \"No config provided\", 400);\n\t\t}\n\n\t\tconst parsedConfig = parseJsonField(configJson, \"config\");\n\t\tif (\"response\" in parsedConfig) return parsedConfig.response;\n\t\tconst configResult = wxrImportConfig.safeParse(parsedConfig.value);\n\t\tif (!configResult.success) {\n\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Invalid import config\", 400);\n\t\t}\n\t\tconst config: ImportConfig = configResult.data;\n\n\t\tconst phaseEntry = formData.get(\"phase\");\n\t\tif (\n\t\t\tphaseEntry !== null &&\n\t\t\tphaseEntry !== \"taxonomy\" &&\n\t\t\tphaseEntry !== \"content\" &&\n\t\t\tphaseEntry !== \"finalize\"\n\t\t) {\n\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Invalid import phase\", 400);\n\t\t}\n\t\tconst phase = phaseEntry;\n\n\t\tconst cursorEntry = formData.get(\"cursor\");\n\t\tlet cursor: WxrChunkCursor | undefined;\n\t\tif (typeof cursorEntry === \"string\" && cursorEntry.length > 0) {\n\t\t\tconst parsedCursor = parseJsonField(cursorEntry, \"cursor\");\n\t\t\tif (\"response\" in parsedCursor) return parsedCursor.response;\n\t\t\tconst cursorResult = wxrChunkCursor.safeParse(parsedCursor.value);\n\t\t\tif (!cursorResult.success) {\n\t\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Invalid import cursor\", 400);\n\t\t\t}\n\t\t\tcursor = cursorResult.data;\n\t\t}\n\n\t\tconst chunkEntry = formData.get(\"chunk\");\n\t\tlet incomingChunk: WxrChunkState | undefined;\n\t\tif (typeof chunkEntry === \"string\" && chunkEntry.length > 0) {\n\t\t\tconst parsedChunk = parseJsonField(chunkEntry, \"chunk\");\n\t\t\tif (\"response\" in parsedChunk) return parsedChunk.response;\n\t\t\tconst chunkResult = wxrChunkState.safeParse(parsedChunk.value);\n\t\t\tif (!chunkResult.success) {\n\t\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Invalid import chunk state\", 400);\n\t\t\t}\n\t\t\tincomingChunk = chunkResult.data;\n\t\t}\n\n\t\t// Parse WXR\n\t\tconst text = await file.text();\n\t\tconst wxr = await parseWxrString(text);\n\t\tconst source = await importFingerprint(text, configJson);\n\n\t\tif (cursor && cursor.source !== source) {\n\t\t\treturn apiError(\n\t\t\t\t\"WXR_IMPORT_SOURCE_CHANGED\",\n\t\t\t\t\"The WXR file or import configuration changed after this import started\",\n\t\t\t\t409,\n\t\t\t);\n\t\t}\n\n\t\t// Build attachment ID -> URL map for featured images\n\t\tconst attachmentMap = new Map<string, string>();\n\t\tfor (const att of wxr.attachments) {\n\t\t\tif (att.id && att.url) {\n\t\t\t\tattachmentMap.set(String(att.id), att.url);\n\t\t\t}\n\t\t}\n\n\t\t// Build author login -> display name map\n\t\tconst authorDisplayNames = new Map<string, string>();\n\t\tfor (const author of wxr.authors) {\n\t\t\tif (!author.login) continue;\n\t\t\tauthorDisplayNames.set(author.login, author.displayName || author.login);\n\t\t}\n\n\t\tif (phase === \"content\") {\n\t\t\tif (!cursor?.taxonomiesReady) {\n\t\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Taxonomy preparation is not complete\", 400);\n\t\t\t}\n\t\t\tconst chunkResponse = await runContentChunk(\n\t\t\t\twxr,\n\t\t\t\tconfig,\n\t\t\t\temdash,\n\t\t\t\temdashManifest,\n\t\t\t\tattachmentMap,\n\t\t\t\tauthorDisplayNames,\n\t\t\t\tcursor,\n\t\t\t\tincomingChunk,\n\t\t\t\tsource,\n\t\t\t);\n\t\t\tif (chunkResponse instanceof Response) return chunkResponse;\n\t\t\treturn apiSuccess(chunkResponse);\n\t\t}\n\n\t\tif (phase === \"taxonomy\") {\n\t\t\tif (cursor || incomingChunk) {\n\t\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Taxonomy preparation cannot be resumed\", 400);\n\t\t\t}\n\t\t\tlet taxonomyPlan: TaxonomyImportPlan;\n\t\t\ttry {\n\t\t\t\ttaxonomyPlan = await prepareTaxonomies(wxr, emdash, config.locale);\n\t\t\t} catch (error) {\n\t\t\t\tif (isWxrTaxonomyConflictError(error)) {\n\t\t\t\t\tconsole.error(\"[WXR_IMPORT_TAXONOMY_CONFLICT]\", error);\n\t\t\t\t\treturn apiError(\"WXR_IMPORT_TAXONOMY_CONFLICT\", error.publicMessage, 409);\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tconst result = emptyImportResult();\n\t\t\tresult.taxonomies = {\n\t\t\t\ttermsCreated: taxonomyPlan.termsCreated,\n\t\t\t\ttermsReused: taxonomyPlan.termsReused,\n\t\t\t\tassignments: 0,\n\t\t\t\tmissingTaxonomies: taxonomyPlan.missingTaxonomies,\n\t\t\t};\n\t\t\treturn apiSuccess({\n\t\t\t\tsuccess: true,\n\t\t\t\tresult,\n\t\t\t\tdone: true,\n\t\t\t\tcursor: { offset: 0, source, taxonomiesReady: true as const },\n\t\t\t\tchunk: { translationGroups: {} },\n\t\t\t});\n\t\t}\n\n\t\tif (phase === \"finalize\") {\n\t\t\tif (!cursor || cursor.offset !== wxr.posts.length) {\n\t\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Content import is not complete\", 400);\n\t\t\t}\n\t\t\tconst result = emptyImportResult();\n\t\t\tif (config.importSections !== false) {\n\t\t\t\tconst sectionsResult = await importReusableBlocksAsSections(wxr.posts, emdash.db);\n\t\t\t\tresult.sections = {\n\t\t\t\t\tcreated: sectionsResult.sectionsCreated,\n\t\t\t\t\tskipped: sectionsResult.sectionsSkipped,\n\t\t\t\t};\n\t\t\t\tresult.errors.push(...sectionsResult.errors);\n\t\t\t\tresult.success = result.errors.length === 0;\n\t\t\t}\n\t\t\treturn apiSuccess({ success: result.success, result, done: true });\n\t\t}\n\n\t\tif (wxr.posts.length > WXR_CONTENT_CHUNK_SIZE) {\n\t\t\treturn apiError(\n\t\t\t\t\"WXR_IMPORT_TOO_LARGE\",\n\t\t\t\t`This WXR contains ${wxr.posts.length} posts, which exceeds the ${WXR_CONTENT_CHUNK_SIZE}-post limit for a single import request. ` +\n\t\t\t\t\t`Run the import in chunked mode or split the file into smaller exports.`,\n\t\t\t\t413,\n\t\t\t);\n\t\t}\n\n\t\t// Pre-create taxonomy terms (categories, tags, custom taxonomies) so\n\t\t// per-post assignments can resolve to existing rows. Done before any\n\t\t// content insert because WXR exports list terms at the top of the\n\t\t// file but per-item assignments only reference them by slug.\n\t\tconst taxonomyPlan = await preImportWxrTaxonomies(\n\t\t\temdash.db,\n\t\t\twxr.posts,\n\t\t\twxr.categories,\n\t\t\twxr.tags,\n\t\t\twxr.terms,\n\t\t\tconfig.locale,\n\t\t);\n\n\t\t// Multilingual imports (WPML / Polylang -- see #1080) need a term\n\t\t// row at each per-post locale, all sharing the canonical term's\n\t\t// `translation_group`. Without this, `getTermsForEntry(..., locale)`\n\t\t// on non-canonical translations comes back empty.\n\t\t//\n\t\t// The mirror raises `WxrTaxonomyConflictError` with an operator-\n\t\t// actionable message when an existing locale row has an\n\t\t// incompatible group. Surface its `publicMessage` directly so the\n\t\t// admin UI can tell the user which (taxonomy, slug, locale) needs\n\t\t// reconciliation. Other errors (DB connectivity, unexpected\n\t\t// repository failures) re-throw to the outer catch where\n\t\t// `handleError` masks them with the generic \"Failed to import\n\t\t// content\" -- exposing raw DB errors to clients would leak schema\n\t\t// names and bypass the AGENTS.md \"never expose error.message\" rule.\n\t\tconst postLocales = new Set<string>();\n\t\tfor (const post of wxr.posts) {\n\t\t\tif (post.locale) postLocales.add(post.locale);\n\t\t}\n\t\tif (postLocales.size > 0) {\n\t\t\ttry {\n\t\t\t\tawait mirrorTermsToLocales(emdash.db, taxonomyPlan, postLocales, config.locale);\n\t\t\t} catch (mirrorError) {\n\t\t\t\tif (isWxrTaxonomyConflictError(mirrorError)) {\n\t\t\t\t\tconsole.error(\"[WXR_IMPORT_TAXONOMY_CONFLICT]\", mirrorError);\n\t\t\t\t\treturn apiError(\"WXR_IMPORT_TAXONOMY_CONFLICT\", mirrorError.publicMessage, 409);\n\t\t\t\t}\n\t\t\t\tthrow mirrorError;\n\t\t\t}\n\t\t}\n\n\t\t// Import content (locale from config scopes all items)\n\t\tconst result = await importContent(\n\t\t\twxr.posts,\n\t\t\tconfig,\n\t\t\temdash,\n\t\t\temdashManifest,\n\t\t\tattachmentMap,\n\t\t\tconfig.locale,\n\t\t\tauthorDisplayNames,\n\t\t\ttaxonomyPlan,\n\t\t);\n\n\t\t// Import reusable blocks as sections (if enabled)\n\t\tif (config.importSections !== false) {\n\t\t\tconst sectionsResult = await importReusableBlocksAsSections(wxr.posts, emdash.db);\n\t\t\tresult.sections = {\n\t\t\t\tcreated: sectionsResult.sectionsCreated,\n\t\t\t\tskipped: sectionsResult.sectionsSkipped,\n\t\t\t};\n\t\t\t// Add section errors to main errors array\n\t\t\tresult.errors.push(...sectionsResult.errors);\n\t\t\tif (sectionsResult.errors.length > 0) {\n\t\t\t\tresult.success = false;\n\t\t\t}\n\t\t}\n\n\t\treturn apiSuccess(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to import content\", \"WXR_IMPORT_ERROR\");\n\t}\n};\n\nfunction parseJsonField(\n\tvalue: string,\n\tfieldName: string,\n): { value: unknown } | { response: Response } {\n\ttry {\n\t\treturn { value: JSON.parse(value) };\n\t} catch {\n\t\treturn { response: apiError(\"VALIDATION_ERROR\", `Invalid JSON in ${fieldName}`, 400) };\n\t}\n}\n\nasync function importFingerprint(text: string, configJson: string): Promise<string> {\n\tconst bytes = new TextEncoder().encode(`${configJson}\\u0000${text}`);\n\tconst digest = await crypto.subtle.digest(\"SHA-256\", bytes);\n\treturn Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nfunction emptyImportResult(): ImportResult {\n\treturn {\n\t\tsuccess: true,\n\t\timported: 0,\n\t\tskipped: 0,\n\t\terrors: [],\n\t\tbyCollection: {},\n\t};\n}\n\n/** Import a bounded WXR post chunk using taxonomy rows prepared in the prior phase. */\nasync function runContentChunk(\n\twxr: Awaited<ReturnType<typeof parseWxrString>>,\n\tconfig: ImportConfig,\n\temdash: EmDashHandlers,\n\tmanifest: EmDashManifest,\n\tattachmentMap: Map<string, string>,\n\tauthorDisplayNames: Map<string, string>,\n\tcursor: WxrChunkCursor | undefined,\n\tincomingChunk: WxrChunkState | undefined,\n\tsource: string,\n): Promise<WxrChunkResponse | Response> {\n\tconst offset = cursor?.offset ?? 0;\n\tif (offset > wxr.posts.length || (offset > 0 && offset % WXR_CONTENT_CHUNK_SIZE !== 0)) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"Invalid import cursor offset\", 400);\n\t}\n\tconst posts = wxr.posts.slice(offset, offset + WXR_CONTENT_CHUNK_SIZE);\n\tconst taxonomyPlan = await loadTaxonomyPlanFromDb(emdash.db);\n\n\t// Seed translation-group state from earlier chunks so a translation that\n\t// appears on chunk N can link to its sibling imported on chunk N-1.\n\tconst translationGroupMap = new Map<string, string>(\n\t\tObject.entries(incomingChunk?.translationGroups ?? {}),\n\t);\n\n\tconst result = await importContent(\n\t\tposts,\n\t\tconfig,\n\t\temdash,\n\t\tmanifest,\n\t\tattachmentMap,\n\t\tconfig.locale,\n\t\tauthorDisplayNames,\n\t\ttaxonomyPlan,\n\t\ttranslationGroupMap,\n\t);\n\n\tconst nextOffset = offset + posts.length;\n\tconst done = nextOffset >= wxr.posts.length;\n\n\treturn {\n\t\tsuccess: result.errors.length === 0,\n\t\tresult,\n\t\tdone,\n\t\tcursor: { offset: nextOffset, source, taxonomiesReady: true },\n\t\tchunk: { translationGroups: Object.fromEntries(translationGroupMap) },\n\t};\n}\n\nasync function prepareTaxonomies(\n\twxr: Awaited<ReturnType<typeof parseWxrString>>,\n\temdash: EmDashHandlers,\n\tlocale: string | undefined,\n): Promise<TaxonomyImportPlan> {\n\tconst taxonomyPlan = await preImportWxrTaxonomies(\n\t\temdash.db,\n\t\twxr.posts,\n\t\twxr.categories,\n\t\twxr.tags,\n\t\twxr.terms,\n\t\tlocale,\n\t);\n\tconst postLocales = new Set<string>();\n\tfor (const post of wxr.posts) {\n\t\tif (post.locale) postLocales.add(post.locale);\n\t}\n\tif (postLocales.size > 0) {\n\t\tawait mirrorTermsToLocales(emdash.db, taxonomyPlan, postLocales, locale);\n\t}\n\treturn taxonomyPlan;\n}\n\nexport async function importContent(\n\tposts: WxrPost[],\n\tconfig: ImportConfig,\n\temdash: EmDashHandlers,\n\tmanifest: EmDashManifest,\n\tattachmentMap: Map<string, string>,\n\tlocale: string | undefined,\n\tauthorDisplayNames: Map<string, string> | undefined,\n\ttaxonomyPlan: TaxonomyImportPlan,\n\ttranslationGroupMap = new Map<string, string>(),\n): Promise<ImportResult> {\n\tconst result: ImportResult = {\n\t\tsuccess: true,\n\t\timported: 0,\n\t\tskipped: 0,\n\t\terrors: [],\n\t\tbyCollection: {},\n\t\ttaxonomies: {\n\t\t\ttermsCreated: taxonomyPlan.termsCreated,\n\t\t\ttermsReused: taxonomyPlan.termsReused,\n\t\t\tassignments: 0,\n\t\t\tmissingTaxonomies: taxonomyPlan.missingTaxonomies,\n\t\t},\n\t};\n\n\t// Create content repository for checking existing items\n\tconst contentRepo = new ContentRepository(emdash.db);\n\tconst bylineRepo = new BylineRepository(emdash.db);\n\tconst bylineCache = new Map<string, string>();\n\n\tfor (const post of posts) {\n\t\tconst postType = post.postType || \"post\";\n\t\tconst mapping = config.postTypeMappings[postType];\n\n\t\t// Skip if not mapped or disabled\n\t\tif (!mapping || !mapping.enabled) {\n\t\t\tresult.skipped++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Defensive: mapping.collection is already sanitized by prepare, but the user\n\t\t// could manually edit the import config between prepare and execute.\n\t\tconst collection = sanitizeSlug(mapping.collection);\n\n\t\t// Check if collection exists in manifest\n\t\tif (!manifest?.collections[collection]) {\n\t\t\tresult.errors.push({\n\t\t\t\ttitle: post.title || \"Untitled\",\n\t\t\t\terror: `Collection \"${collection}\" does not exist`,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\ttry {\n\t\t\t// Convert content to Portable Text\n\t\t\tconst content = post.content ? gutenbergToPortableText(post.content) : [];\n\n\t\t\t// Generate slug from post name or title\n\t\t\tconst slug = post.postName || slugify(post.title || `post-${post.id || Date.now()}`);\n\n\t\t\t// Per-post locale: prefer the value extracted from WPML/Polylang\n\t\t\t// metadata; fall back to the upload-wide locale. Two translations\n\t\t\t// sharing `post_name` (e.g. /en/hello + /ar/hello) collide on the\n\t\t\t// `UNIQUE(slug, locale)` constraint when they share a locale, so\n\t\t\t// honouring the per-post value is what makes multilingual imports\n\t\t\t// land correctly. See issue #1080.\n\t\t\tconst postLocale = post.locale ?? locale;\n\n\t\t\t// Check if already exists (idempotency). Match against the\n\t\t\t// per-post locale so the same slug in different locales doesn't\n\t\t\t// false-positive as duplicate.\n\t\t\tif (config.skipExisting) {\n\t\t\t\tconst existing = await contentRepo.findBySlug(collection, slug, postLocale);\n\t\t\t\tif (existing) {\n\t\t\t\t\t// Record the translation group mapping so later\n\t\t\t\t\t// translations in this WXR can link to the existing\n\t\t\t\t\t// item. We deliberately trust the WXR's grouping over\n\t\t\t\t\t// the existing row's `translation_group`: a singleton\n\t\t\t\t\t// existing row gets folded into the WXR's group when\n\t\t\t\t\t// `handleContentCreate` resolves the new translation's\n\t\t\t\t\t// `translationOf`. Pre-existing translations that\n\t\t\t\t\t// already belong to a different group are left alone --\n\t\t\t\t\t// the user is responsible for reconciling those through\n\t\t\t\t\t// the admin if they don't match the WXR.\n\t\t\t\t\tif (post.translationGroup) {\n\t\t\t\t\t\ttranslationGroupMap.set(post.translationGroup, existing.id);\n\t\t\t\t\t}\n\t\t\t\t\tresult.skipped++;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Resolve translation group: if this post belongs to a group and\n\t\t\t// we've already imported one of its translations, link to it.\n\t\t\tlet translationOf: string | undefined;\n\t\t\tif (post.translationGroup) {\n\t\t\t\ttranslationOf = translationGroupMap.get(post.translationGroup);\n\t\t\t}\n\n\t\t\t// Map WordPress status to EmDash status\n\t\t\tconst status = mapStatus(post.status);\n\n\t\t\t// Build data object with required fields\n\t\t\tconst data: Record<string, unknown> = {\n\t\t\t\ttitle: post.title || \"Untitled\",\n\t\t\t\tcontent,\n\t\t\t\texcerpt: post.excerpt || undefined,\n\t\t\t};\n\n\t\t\t// Only add featured_image if the collection has this field and we have a value\n\t\t\tconst collectionSchema = manifest.collections[collection];\n\t\t\tconst hasFeaturedImageField = collectionSchema?.fields\n\t\t\t\t? \"featured_image\" in collectionSchema.fields\n\t\t\t\t: false;\n\t\t\tif (hasFeaturedImageField) {\n\t\t\t\tconst thumbnailId = post.meta.get(\"_thumbnail_id\");\n\t\t\t\tconst featuredImage = thumbnailId ? attachmentMap.get(String(thumbnailId)) : undefined;\n\t\t\t\tif (featuredImage) {\n\t\t\t\t\tdata.featured_image = featuredImage;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Resolve author ID from mappings\n\t\t\tlet authorId: string | undefined;\n\t\t\tif (config.authorMappings && post.creator) {\n\t\t\t\tconst mappedUserId = config.authorMappings[post.creator];\n\t\t\t\tif (mappedUserId !== undefined && mappedUserId !== null) {\n\t\t\t\t\tauthorId = mappedUserId;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst bylineId = await resolveImportByline(\n\t\t\t\tpost.creator,\n\t\t\t\tauthorDisplayNames?.get(post.creator ?? \"\") ?? post.creator,\n\t\t\t\tauthorId,\n\t\t\t\tbylineRepo,\n\t\t\t\tbylineCache,\n\t\t\t);\n\n\t\t\t// Preserve original WordPress dates using the shared WXR date parser.\n\t\t\t// Fallback chain: postDateGmt (UTC) → pubDate (RFC 2822) → postDate (site-local).\n\t\t\tconst parsedDate = parseWxrDate(post.postDateGmt, post.pubDate, post.postDate);\n\t\t\tconst createdAt = parsedDate ? parsedDate.toISOString() : undefined;\n\t\t\tconst publishedAt = status === \"published\" && createdAt ? createdAt : undefined;\n\n\t\t\t// Create the content item\n\t\t\tconst createResult = await emdash.handleContentCreate(collection, {\n\t\t\t\tdata,\n\t\t\t\tslug,\n\t\t\t\tstatus,\n\t\t\t\tauthorId,\n\t\t\t\tbylines: bylineId ? [{ bylineId }] : undefined,\n\t\t\t\tlocale: postLocale,\n\t\t\t\ttranslationOf,\n\t\t\t\tcreatedAt,\n\t\t\t\tpublishedAt,\n\t\t\t});\n\n\t\t\tif (createResult.success) {\n\t\t\t\tresult.imported++;\n\t\t\t\tresult.byCollection[collection] = (result.byCollection[collection] || 0) + 1;\n\n\t\t\t\t// `handleContentCreate` returns `data: { item, _rev? }` on\n\t\t\t\t// success (see `ApiResult<ContentResponse>` in\n\t\t\t\t// `api/handlers/content.ts`). `HandlerResponse.data` is\n\t\t\t\t// typed as `unknown` to avoid coupling the route surface to\n\t\t\t\t// internal handler types, so we narrow here.\n\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- handler contract documented at handleContentCreate\n\t\t\t\tconst createdItem = (createResult.data as { item: { id: string } } | undefined)?.item;\n\n\t\t\t\t// Track translation group: the first imported post in a group\n\t\t\t\t// becomes the anchor that later translations link to.\n\t\t\t\tif (\n\t\t\t\t\tcreatedItem &&\n\t\t\t\t\tpost.translationGroup &&\n\t\t\t\t\t!translationGroupMap.has(post.translationGroup)\n\t\t\t\t) {\n\t\t\t\t\ttranslationGroupMap.set(post.translationGroup, createdItem.id);\n\t\t\t\t}\n\n\t\t\t\t// Attach taxonomy assignments parsed from the WXR's per-item\n\t\t\t\t// <category> elements.\n\t\t\t\t//\n\t\t\t\t// Anchors (no `translationOf`) get an additive attach -- the\n\t\t\t\t// row is fresh, no inherited pivots to consider.\n\t\t\t\t//\n\t\t\t\t// Translations replace only taxonomies they explicitly carry.\n\t\t\t\t// Since assignments belong to the content translation_group,\n\t\t\t\t// that replacement is reflected in every sibling locale.\n\t\t\t\tif (createdItem) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst written = translationOf\n\t\t\t\t\t\t\t? await setPostTermAssignmentsReplacing(\n\t\t\t\t\t\t\t\t\temdash.db,\n\t\t\t\t\t\t\t\t\tcollection,\n\t\t\t\t\t\t\t\t\tcreatedItem.id,\n\t\t\t\t\t\t\t\t\tpost,\n\t\t\t\t\t\t\t\t\ttaxonomyPlan,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: await attachPostTaxonomies(\n\t\t\t\t\t\t\t\t\temdash.db,\n\t\t\t\t\t\t\t\t\tcollection,\n\t\t\t\t\t\t\t\t\tcreatedItem.id,\n\t\t\t\t\t\t\t\t\tpost,\n\t\t\t\t\t\t\t\t\ttaxonomyPlan,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\tif (result.taxonomies) {\n\t\t\t\t\t\t\tresult.taxonomies.assignments += written;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (taxError) {\n\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t`Failed to attach taxonomies for \"${post.title || \"Untitled\"}\":`,\n\t\t\t\t\t\t\ttaxError,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tresult.errors.push({\n\t\t\t\t\t\t\ttitle: post.title || \"Untitled\",\n\t\t\t\t\t\t\terror:\n\t\t\t\t\t\t\t\ttaxError instanceof Error && taxError.message\n\t\t\t\t\t\t\t\t\t? `Imported but failed to attach taxonomies: ${taxError.message}`\n\t\t\t\t\t\t\t\t\t: \"Imported but failed to attach taxonomies\",\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult.errors.push({\n\t\t\t\t\ttitle: post.title || \"Untitled\",\n\t\t\t\t\terror:\n\t\t\t\t\t\ttypeof createResult.error === \"object\" && createResult.error !== null\n\t\t\t\t\t\t\t? (createResult.error as { message?: string }).message || \"Unknown error\"\n\t\t\t\t\t\t\t: String(createResult.error),\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(`Import error for \"${post.title || \"Untitled\"}\":`, error);\n\t\t\tresult.errors.push({\n\t\t\t\ttitle: post.title || \"Untitled\",\n\t\t\t\terror: error instanceof Error && error.message ? error.message : \"Failed to import item\",\n\t\t\t});\n\t\t}\n\t}\n\n\tresult.success = result.errors.length === 0;\n\treturn result;\n}\n\nfunction mapStatus(wpStatus: string | undefined): string {\n\tswitch (wpStatus) {\n\t\tcase \"publish\":\n\t\t\treturn \"published\";\n\t\tcase \"draft\":\n\t\t\treturn \"draft\";\n\t\tcase \"pending\":\n\t\t\treturn \"draft\";\n\t\tcase \"private\":\n\t\t\treturn \"draft\";\n\t\tdefault:\n\t\t\treturn \"draft\";\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"execute.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/import/wordpress/execute.ts"],"sourcesContent":["/**\n * WordPress WXR execute import endpoint\n *\n * POST /_emdash/api/import/wordpress/execute\n *\n * Accepts WXR file and import configuration, imports content into the database.\n */\n\nimport { gutenbergToPortableText } from \"@emdash-cms/gutenberg-to-portable-text\";\nimport type { APIRoute } from \"astro\";\nimport {\n\tparseWxrString,\n\tContentRepository,\n\timportReusableBlocksAsSections,\n\ttype WxrPost,\n\tparseWxrDate,\n} from \"emdash\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, apiSuccess, handleError } from \"#api/error.js\";\nimport { wxrChunkCursor, wxrChunkState, wxrImportConfig } from \"#api/schemas.js\";\nimport { BylineRepository } from \"#db/repositories/byline.js\";\nimport { resolveImportByline } from \"#import/utils.js\";\nimport {\n\tattachPostTaxonomies,\n\tisWxrTaxonomyConflictError,\n\tloadTaxonomyPlanFromDb,\n\tmirrorTermsToLocales,\n\tpreImportWxrTaxonomies,\n\tsetPostTermAssignmentsReplacing,\n\ttype TaxonomyImportPlan,\n} from \"#import/wxr-taxonomies.js\";\nimport type { EmDashHandlers, EmDashManifest } from \"#types\";\nimport { slugify } from \"#utils/slugify.js\";\n\nimport { sanitizeSlug } from \"./analyze.js\";\n\nexport const prerender = false;\n\n/** Posts processed per Worker invocation in chunked WXR imports. */\nconst WXR_CONTENT_CHUNK_SIZE = 30;\n\n/** Phase/cursor payload for chunked WXR imports. */\ninterface WxrChunkCursor {\n\toffset: number;\n\tsource: string;\n\ttaxonomiesReady: true;\n}\n\n/** Cross-chunk state carried by the client. */\ninterface WxrChunkState {\n\ttranslationGroups: Record<string, string>;\n}\n\n/** Chunked response shape mirrors the wordpress-plugin execute endpoint. */\ninterface WxrChunkResponse {\n\tsuccess: boolean;\n\tresult: ImportResult;\n\tdone: boolean;\n\tcursor?: WxrChunkCursor;\n\tchunk?: WxrChunkState;\n}\n\nexport interface ImportConfig {\n\t/** Map WordPress post types to EmDash collections */\n\tpostTypeMappings: Record<\n\t\tstring,\n\t\t{\n\t\t\tcollection: string;\n\t\t\tenabled: boolean;\n\t\t}\n\t>;\n\t/** Whether to skip items that already exist (by slug) */\n\tskipExisting: boolean;\n\t/** Whether to import reusable blocks (wp_block) as sections */\n\timportSections?: boolean;\n\t/** Author mappings (WP author login -> EmDash user ID) */\n\tauthorMappings?: Record<string, string | null>;\n\t/** BCP 47 locale for all imported items. When omitted, defaults to defaultLocale. */\n\tlocale?: string;\n}\n\nexport interface ImportResult {\n\tsuccess: boolean;\n\timported: number;\n\tskipped: number;\n\terrors: Array<{ title: string; error: string }>;\n\tbyCollection: Record<string, number>;\n\t/** Sections import results (if enabled) */\n\tsections?: {\n\t\tcreated: number;\n\t\tskipped: number;\n\t};\n\t/** Taxonomy import results (categories, tags, custom taxonomies). */\n\ttaxonomies?: {\n\t\t/** Terms newly created during this import, keyed by taxonomy name. */\n\t\ttermsCreated: Record<string, number>;\n\t\t/** Existing terms that were re-used, keyed by taxonomy name. */\n\t\ttermsReused: Record<string, number>;\n\t\t/** Total pivot rows (post <-> term) written to `content_taxonomies`. */\n\t\tassignments: number;\n\t\t/**\n\t\t * Custom taxonomy names from the WXR file that had no matching EmDash\n\t\t * definition and were therefore skipped. Lets the admin UI surface a\n\t\t * \"create taxonomy X first\" hint without re-running the import.\n\t\t */\n\t\tmissingTaxonomies: string[];\n\t};\n}\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\n\tconst denied = requirePerm(user, \"import:execute\");\n\tif (denied) return denied;\n\n\tif (!emdash?.handleContentCreate) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash not configured\", 500);\n\t}\n\n\ttry {\n\t\tconst emdashManifest = await emdash.getManifest();\n\n\t\tconst formData = await request.formData();\n\t\tconst fileEntry = formData.get(\"file\");\n\t\tconst file = fileEntry instanceof File ? fileEntry : null;\n\t\tconst configEntry = formData.get(\"config\");\n\t\tconst configJson = typeof configEntry === \"string\" ? configEntry : null;\n\n\t\tif (!file) {\n\t\t\treturn apiError(\"VALIDATION_ERROR\", \"No file provided\", 400);\n\t\t}\n\n\t\tif (!configJson) {\n\t\t\treturn apiError(\"VALIDATION_ERROR\", \"No config provided\", 400);\n\t\t}\n\n\t\tconst parsedConfig = parseJsonField(configJson, \"config\");\n\t\tif (\"response\" in parsedConfig) return parsedConfig.response;\n\t\tconst configResult = wxrImportConfig.safeParse(parsedConfig.value);\n\t\tif (!configResult.success) {\n\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Invalid import config\", 400);\n\t\t}\n\t\tconst config: ImportConfig = configResult.data;\n\n\t\tconst phaseEntry = formData.get(\"phase\");\n\t\tif (\n\t\t\tphaseEntry !== null &&\n\t\t\tphaseEntry !== \"taxonomy\" &&\n\t\t\tphaseEntry !== \"content\" &&\n\t\t\tphaseEntry !== \"finalize\"\n\t\t) {\n\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Invalid import phase\", 400);\n\t\t}\n\t\tconst phase = phaseEntry;\n\n\t\tconst cursorEntry = formData.get(\"cursor\");\n\t\tlet cursor: WxrChunkCursor | undefined;\n\t\tif (typeof cursorEntry === \"string\" && cursorEntry.length > 0) {\n\t\t\tconst parsedCursor = parseJsonField(cursorEntry, \"cursor\");\n\t\t\tif (\"response\" in parsedCursor) return parsedCursor.response;\n\t\t\tconst cursorResult = wxrChunkCursor.safeParse(parsedCursor.value);\n\t\t\tif (!cursorResult.success) {\n\t\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Invalid import cursor\", 400);\n\t\t\t}\n\t\t\tcursor = cursorResult.data;\n\t\t}\n\n\t\tconst chunkEntry = formData.get(\"chunk\");\n\t\tlet incomingChunk: WxrChunkState | undefined;\n\t\tif (typeof chunkEntry === \"string\" && chunkEntry.length > 0) {\n\t\t\tconst parsedChunk = parseJsonField(chunkEntry, \"chunk\");\n\t\t\tif (\"response\" in parsedChunk) return parsedChunk.response;\n\t\t\tconst chunkResult = wxrChunkState.safeParse(parsedChunk.value);\n\t\t\tif (!chunkResult.success) {\n\t\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Invalid import chunk state\", 400);\n\t\t\t}\n\t\t\tincomingChunk = chunkResult.data;\n\t\t}\n\n\t\t// Parse WXR\n\t\tconst text = await file.text();\n\t\tconst wxr = await parseWxrString(text);\n\t\tconst source = await importFingerprint(text, configJson);\n\n\t\tif (cursor && cursor.source !== source) {\n\t\t\treturn apiError(\n\t\t\t\t\"WXR_IMPORT_SOURCE_CHANGED\",\n\t\t\t\t\"The WXR file or import configuration changed after this import started\",\n\t\t\t\t409,\n\t\t\t);\n\t\t}\n\n\t\t// Build attachment ID -> URL map for featured images\n\t\tconst attachmentMap = new Map<string, string>();\n\t\tfor (const att of wxr.attachments) {\n\t\t\tif (att.id && att.url) {\n\t\t\t\tattachmentMap.set(String(att.id), att.url);\n\t\t\t}\n\t\t}\n\n\t\t// Build author login -> display name map\n\t\tconst authorDisplayNames = new Map<string, string>();\n\t\tfor (const author of wxr.authors) {\n\t\t\tif (!author.login) continue;\n\t\t\tauthorDisplayNames.set(author.login, author.displayName || author.login);\n\t\t}\n\n\t\tif (phase === \"content\") {\n\t\t\tif (!cursor?.taxonomiesReady) {\n\t\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Taxonomy preparation is not complete\", 400);\n\t\t\t}\n\t\t\tconst chunkResponse = await runContentChunk(\n\t\t\t\twxr,\n\t\t\t\tconfig,\n\t\t\t\temdash,\n\t\t\t\temdashManifest,\n\t\t\t\tattachmentMap,\n\t\t\t\tauthorDisplayNames,\n\t\t\t\tcursor,\n\t\t\t\tincomingChunk,\n\t\t\t\tsource,\n\t\t\t);\n\t\t\tif (chunkResponse instanceof Response) return chunkResponse;\n\t\t\treturn apiSuccess(chunkResponse);\n\t\t}\n\n\t\tif (phase === \"taxonomy\") {\n\t\t\tif (cursor || incomingChunk) {\n\t\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Taxonomy preparation cannot be resumed\", 400);\n\t\t\t}\n\t\t\tlet taxonomyPlan: TaxonomyImportPlan;\n\t\t\ttry {\n\t\t\t\ttaxonomyPlan = await prepareTaxonomies(wxr, emdash, config.locale);\n\t\t\t} catch (error) {\n\t\t\t\tif (isWxrTaxonomyConflictError(error)) {\n\t\t\t\t\tconsole.error(\"[WXR_IMPORT_TAXONOMY_CONFLICT]\", error);\n\t\t\t\t\treturn apiError(\"WXR_IMPORT_TAXONOMY_CONFLICT\", error.publicMessage, 409);\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tconst result = emptyImportResult();\n\t\t\tresult.taxonomies = {\n\t\t\t\ttermsCreated: taxonomyPlan.termsCreated,\n\t\t\t\ttermsReused: taxonomyPlan.termsReused,\n\t\t\t\tassignments: 0,\n\t\t\t\tmissingTaxonomies: taxonomyPlan.missingTaxonomies,\n\t\t\t};\n\t\t\treturn apiSuccess({\n\t\t\t\tsuccess: true,\n\t\t\t\tresult,\n\t\t\t\tdone: true,\n\t\t\t\tcursor: { offset: 0, source, taxonomiesReady: true as const },\n\t\t\t\tchunk: { translationGroups: {} },\n\t\t\t});\n\t\t}\n\n\t\tif (phase === \"finalize\") {\n\t\t\tif (!cursor || cursor.offset !== wxr.posts.length) {\n\t\t\t\treturn apiError(\"VALIDATION_ERROR\", \"Content import is not complete\", 400);\n\t\t\t}\n\t\t\tconst result = emptyImportResult();\n\t\t\tif (config.importSections !== false) {\n\t\t\t\tconst sectionsResult = await importReusableBlocksAsSections(wxr.posts, emdash.db);\n\t\t\t\tresult.sections = {\n\t\t\t\t\tcreated: sectionsResult.sectionsCreated,\n\t\t\t\t\tskipped: sectionsResult.sectionsSkipped,\n\t\t\t\t};\n\t\t\t\tresult.errors.push(...sectionsResult.errors);\n\t\t\t\tresult.success = result.errors.length === 0;\n\t\t\t}\n\t\t\treturn apiSuccess({ success: result.success, result, done: true });\n\t\t}\n\n\t\tif (wxr.posts.length > WXR_CONTENT_CHUNK_SIZE) {\n\t\t\treturn apiError(\n\t\t\t\t\"WXR_IMPORT_TOO_LARGE\",\n\t\t\t\t`This WXR contains ${wxr.posts.length} posts, which exceeds the ${WXR_CONTENT_CHUNK_SIZE}-post limit for a single import request. ` +\n\t\t\t\t\t`Run the import in chunked mode or split the file into smaller exports.`,\n\t\t\t\t413,\n\t\t\t);\n\t\t}\n\n\t\t// Pre-create taxonomy terms (categories, tags, custom taxonomies) so\n\t\t// per-post assignments can resolve to existing rows. Done before any\n\t\t// content insert because WXR exports list terms at the top of the\n\t\t// file but per-item assignments only reference them by slug.\n\t\tconst taxonomyPlan = await preImportWxrTaxonomies(\n\t\t\temdash.db,\n\t\t\twxr.posts,\n\t\t\twxr.categories,\n\t\t\twxr.tags,\n\t\t\twxr.terms,\n\t\t\tconfig.locale,\n\t\t);\n\n\t\t// Multilingual imports (WPML / Polylang -- see #1080) need a term\n\t\t// row at each per-post locale, all sharing the canonical term's\n\t\t// `translation_group`. Without this, `getTermsForEntry(..., locale)`\n\t\t// on non-canonical translations comes back empty.\n\t\t//\n\t\t// The mirror raises `WxrTaxonomyConflictError` with an operator-\n\t\t// actionable message when an existing locale row has an\n\t\t// incompatible group. Surface its `publicMessage` directly so the\n\t\t// admin UI can tell the user which (taxonomy, slug, locale) needs\n\t\t// reconciliation. Other errors (DB connectivity, unexpected\n\t\t// repository failures) re-throw to the outer catch where\n\t\t// `handleError` masks them with the generic \"Failed to import\n\t\t// content\" -- exposing raw DB errors to clients would leak schema\n\t\t// names and bypass the AGENTS.md \"never expose error.message\" rule.\n\t\tconst postLocales = new Set<string>();\n\t\tfor (const post of wxr.posts) {\n\t\t\tif (post.locale) postLocales.add(post.locale);\n\t\t}\n\t\tif (postLocales.size > 0) {\n\t\t\ttry {\n\t\t\t\tawait mirrorTermsToLocales(emdash.db, taxonomyPlan, postLocales, config.locale);\n\t\t\t} catch (mirrorError) {\n\t\t\t\tif (isWxrTaxonomyConflictError(mirrorError)) {\n\t\t\t\t\tconsole.error(\"[WXR_IMPORT_TAXONOMY_CONFLICT]\", mirrorError);\n\t\t\t\t\treturn apiError(\"WXR_IMPORT_TAXONOMY_CONFLICT\", mirrorError.publicMessage, 409);\n\t\t\t\t}\n\t\t\t\tthrow mirrorError;\n\t\t\t}\n\t\t}\n\n\t\t// Import content (locale from config scopes all items)\n\t\tconst result = await importContent(\n\t\t\twxr.posts,\n\t\t\tconfig,\n\t\t\temdash,\n\t\t\temdashManifest,\n\t\t\tattachmentMap,\n\t\t\tconfig.locale,\n\t\t\tauthorDisplayNames,\n\t\t\ttaxonomyPlan,\n\t\t);\n\n\t\t// Import reusable blocks as sections (if enabled)\n\t\tif (config.importSections !== false) {\n\t\t\tconst sectionsResult = await importReusableBlocksAsSections(wxr.posts, emdash.db);\n\t\t\tresult.sections = {\n\t\t\t\tcreated: sectionsResult.sectionsCreated,\n\t\t\t\tskipped: sectionsResult.sectionsSkipped,\n\t\t\t};\n\t\t\t// Add section errors to main errors array\n\t\t\tresult.errors.push(...sectionsResult.errors);\n\t\t\tif (sectionsResult.errors.length > 0) {\n\t\t\t\tresult.success = false;\n\t\t\t}\n\t\t}\n\n\t\treturn apiSuccess(result);\n\t} catch (error) {\n\t\treturn handleError(error, \"Failed to import content\", \"WXR_IMPORT_ERROR\");\n\t}\n};\n\nfunction parseJsonField(\n\tvalue: string,\n\tfieldName: string,\n): { value: unknown } | { response: Response } {\n\ttry {\n\t\treturn { value: JSON.parse(value) };\n\t} catch {\n\t\treturn { response: apiError(\"VALIDATION_ERROR\", `Invalid JSON in ${fieldName}`, 400) };\n\t}\n}\n\nasync function importFingerprint(text: string, configJson: string): Promise<string> {\n\tconst bytes = new TextEncoder().encode(`${configJson}\\u0000${text}`);\n\tconst digest = await crypto.subtle.digest(\"SHA-256\", bytes);\n\treturn Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nfunction emptyImportResult(): ImportResult {\n\treturn {\n\t\tsuccess: true,\n\t\timported: 0,\n\t\tskipped: 0,\n\t\terrors: [],\n\t\tbyCollection: {},\n\t};\n}\n\n/** Import a bounded WXR post chunk using taxonomy rows prepared in the prior phase. */\nasync function runContentChunk(\n\twxr: Awaited<ReturnType<typeof parseWxrString>>,\n\tconfig: ImportConfig,\n\temdash: EmDashHandlers,\n\tmanifest: EmDashManifest,\n\tattachmentMap: Map<string, string>,\n\tauthorDisplayNames: Map<string, string>,\n\tcursor: WxrChunkCursor | undefined,\n\tincomingChunk: WxrChunkState | undefined,\n\tsource: string,\n): Promise<WxrChunkResponse | Response> {\n\tconst offset = cursor?.offset ?? 0;\n\tif (offset > wxr.posts.length || (offset > 0 && offset % WXR_CONTENT_CHUNK_SIZE !== 0)) {\n\t\treturn apiError(\"VALIDATION_ERROR\", \"Invalid import cursor offset\", 400);\n\t}\n\tconst posts = wxr.posts.slice(offset, offset + WXR_CONTENT_CHUNK_SIZE);\n\tconst taxonomyPlan = await loadTaxonomyPlanFromDb(emdash.db);\n\n\t// Seed translation-group state from earlier chunks so a translation that\n\t// appears on chunk N can link to its sibling imported on chunk N-1.\n\tconst translationGroupMap = new Map<string, string>(\n\t\tObject.entries(incomingChunk?.translationGroups ?? {}),\n\t);\n\n\tconst result = await importContent(\n\t\tposts,\n\t\tconfig,\n\t\temdash,\n\t\tmanifest,\n\t\tattachmentMap,\n\t\tconfig.locale,\n\t\tauthorDisplayNames,\n\t\ttaxonomyPlan,\n\t\ttranslationGroupMap,\n\t);\n\n\tconst nextOffset = offset + posts.length;\n\tconst done = nextOffset >= wxr.posts.length;\n\n\treturn {\n\t\tsuccess: result.errors.length === 0,\n\t\tresult,\n\t\tdone,\n\t\tcursor: { offset: nextOffset, source, taxonomiesReady: true },\n\t\tchunk: { translationGroups: Object.fromEntries(translationGroupMap) },\n\t};\n}\n\nasync function prepareTaxonomies(\n\twxr: Awaited<ReturnType<typeof parseWxrString>>,\n\temdash: EmDashHandlers,\n\tlocale: string | undefined,\n): Promise<TaxonomyImportPlan> {\n\tconst taxonomyPlan = await preImportWxrTaxonomies(\n\t\temdash.db,\n\t\twxr.posts,\n\t\twxr.categories,\n\t\twxr.tags,\n\t\twxr.terms,\n\t\tlocale,\n\t);\n\tconst postLocales = new Set<string>();\n\tfor (const post of wxr.posts) {\n\t\tif (post.locale) postLocales.add(post.locale);\n\t}\n\tif (postLocales.size > 0) {\n\t\tawait mirrorTermsToLocales(emdash.db, taxonomyPlan, postLocales, locale);\n\t}\n\treturn taxonomyPlan;\n}\n\nexport async function importContent(\n\tposts: WxrPost[],\n\tconfig: ImportConfig,\n\temdash: EmDashHandlers,\n\tmanifest: EmDashManifest,\n\tattachmentMap: Map<string, string>,\n\tlocale: string | undefined,\n\tauthorDisplayNames: Map<string, string> | undefined,\n\ttaxonomyPlan: TaxonomyImportPlan,\n\ttranslationGroupMap = new Map<string, string>(),\n): Promise<ImportResult> {\n\tconst result: ImportResult = {\n\t\tsuccess: true,\n\t\timported: 0,\n\t\tskipped: 0,\n\t\terrors: [],\n\t\tbyCollection: {},\n\t\ttaxonomies: {\n\t\t\ttermsCreated: taxonomyPlan.termsCreated,\n\t\t\ttermsReused: taxonomyPlan.termsReused,\n\t\t\tassignments: 0,\n\t\t\tmissingTaxonomies: taxonomyPlan.missingTaxonomies,\n\t\t},\n\t};\n\n\t// Create content repository for checking existing items\n\tconst contentRepo = new ContentRepository(emdash.db);\n\tconst bylineRepo = new BylineRepository(emdash.db);\n\tconst bylineCache = new Map<string, string>();\n\n\tfor (const post of posts) {\n\t\tconst postType = post.postType || \"post\";\n\t\tconst mapping = config.postTypeMappings[postType];\n\n\t\t// Skip if not mapped or disabled\n\t\tif (!mapping || !mapping.enabled) {\n\t\t\tresult.skipped++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Defensive: mapping.collection is already sanitized by prepare, but the user\n\t\t// could manually edit the import config between prepare and execute.\n\t\tconst collection = sanitizeSlug(mapping.collection);\n\n\t\t// Check if collection exists in manifest\n\t\tif (!manifest?.collections[collection]) {\n\t\t\tresult.errors.push({\n\t\t\t\ttitle: post.title || \"Untitled\",\n\t\t\t\terror: `Collection \"${collection}\" does not exist`,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\ttry {\n\t\t\t// Convert content to Portable Text\n\t\t\tconst content = post.content ? gutenbergToPortableText(post.content) : [];\n\n\t\t\t// Generate slug from post name or title\n\t\t\tconst slug = post.postName || slugify(post.title || `post-${post.id || Date.now()}`);\n\n\t\t\t// Per-post locale: prefer the value extracted from WPML/Polylang\n\t\t\t// metadata; fall back to the upload-wide locale. Two translations\n\t\t\t// sharing `post_name` (e.g. /en/hello + /ar/hello) collide on the\n\t\t\t// `UNIQUE(slug, locale)` constraint when they share a locale, so\n\t\t\t// honouring the per-post value is what makes multilingual imports\n\t\t\t// land correctly. See issue #1080.\n\t\t\tconst postLocale = post.locale ?? locale;\n\n\t\t\t// Check if already exists (idempotency). Match against the\n\t\t\t// per-post locale so the same slug in different locales doesn't\n\t\t\t// false-positive as duplicate.\n\t\t\tif (config.skipExisting) {\n\t\t\t\tconst existing = await contentRepo.findBySlug(collection, slug, postLocale);\n\t\t\t\tif (existing) {\n\t\t\t\t\t// Record the translation group mapping so later\n\t\t\t\t\t// translations in this WXR can link to the existing\n\t\t\t\t\t// item. We deliberately trust the WXR's grouping over\n\t\t\t\t\t// the existing row's `translation_group`: a singleton\n\t\t\t\t\t// existing row gets folded into the WXR's group when\n\t\t\t\t\t// `handleContentCreate` resolves the new translation's\n\t\t\t\t\t// `translationOf`. Pre-existing translations that\n\t\t\t\t\t// already belong to a different group are left alone --\n\t\t\t\t\t// the user is responsible for reconciling those through\n\t\t\t\t\t// the admin if they don't match the WXR.\n\t\t\t\t\tif (post.translationGroup) {\n\t\t\t\t\t\ttranslationGroupMap.set(post.translationGroup, existing.id);\n\t\t\t\t\t}\n\t\t\t\t\tresult.skipped++;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Resolve translation group: if this post belongs to a group and\n\t\t\t// we've already imported one of its translations, link to it.\n\t\t\tlet translationOf: string | undefined;\n\t\t\tif (post.translationGroup) {\n\t\t\t\ttranslationOf = translationGroupMap.get(post.translationGroup);\n\t\t\t}\n\n\t\t\t// Map WordPress status to EmDash status\n\t\t\tconst status = mapStatus(post.status);\n\n\t\t\t// Build data object with required fields\n\t\t\tconst data: Record<string, unknown> = {\n\t\t\t\ttitle: post.title || \"Untitled\",\n\t\t\t\tcontent,\n\t\t\t\texcerpt: post.excerpt || undefined,\n\t\t\t};\n\n\t\t\t// Only add featured_image if the collection has this field and we have a value\n\t\t\tconst collectionSchema = manifest.collections[collection];\n\t\t\tconst hasFeaturedImageField = collectionSchema?.fields\n\t\t\t\t? \"featured_image\" in collectionSchema.fields\n\t\t\t\t: false;\n\t\t\tif (hasFeaturedImageField) {\n\t\t\t\tconst thumbnailId = post.meta.get(\"_thumbnail_id\");\n\t\t\t\tconst featuredImage = thumbnailId ? attachmentMap.get(String(thumbnailId)) : undefined;\n\t\t\t\tif (featuredImage) {\n\t\t\t\t\tdata.featured_image = featuredImage;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Resolve author ID from mappings\n\t\t\tlet authorId: string | undefined;\n\t\t\tif (config.authorMappings && post.creator) {\n\t\t\t\tconst mappedUserId = config.authorMappings[post.creator];\n\t\t\t\tif (mappedUserId !== undefined && mappedUserId !== null) {\n\t\t\t\t\tauthorId = mappedUserId;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst bylineId = await resolveImportByline(\n\t\t\t\tpost.creator,\n\t\t\t\tauthorDisplayNames?.get(post.creator ?? \"\") ?? post.creator,\n\t\t\t\tauthorId,\n\t\t\t\tbylineRepo,\n\t\t\t\tbylineCache,\n\t\t\t);\n\n\t\t\t// Preserve original WordPress dates using the shared WXR date parser.\n\t\t\t// Fallback chain: postDateGmt (UTC) → pubDate (RFC 2822) → postDate (site-local).\n\t\t\tconst parsedDate = parseWxrDate(post.postDateGmt, post.pubDate, post.postDate);\n\t\t\tconst createdAt = parsedDate ? parsedDate.toISOString() : undefined;\n\t\t\tconst publishedAt = status === \"published\" && createdAt ? createdAt : undefined;\n\n\t\t\t// Create the content item\n\t\t\tconst createResult = await emdash.handleContentCreate(collection, {\n\t\t\t\tdata,\n\t\t\t\tslug,\n\t\t\t\tstatus,\n\t\t\t\tauthorId,\n\t\t\t\tbylines: bylineId ? [{ bylineId }] : undefined,\n\t\t\t\tlocale: postLocale,\n\t\t\t\ttranslationOf,\n\t\t\t\tcreatedAt,\n\t\t\t\tpublishedAt,\n\t\t\t});\n\n\t\t\tif (createResult.success) {\n\t\t\t\tresult.imported++;\n\t\t\t\tresult.byCollection[collection] = (result.byCollection[collection] || 0) + 1;\n\n\t\t\t\t// `handleContentCreate` returns `data: { item, _rev? }` on\n\t\t\t\t// success (see `ApiResult<ContentResponse>` in\n\t\t\t\t// `api/handlers/content.ts`). `HandlerResponse.data` is\n\t\t\t\t// typed as `unknown` to avoid coupling the route surface to\n\t\t\t\t// internal handler types, so we narrow here.\n\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- handler contract documented at handleContentCreate\n\t\t\t\tconst createdItem = (createResult.data as { item: { id: string } } | undefined)?.item;\n\n\t\t\t\t// Track translation group: the first imported post in a group\n\t\t\t\t// becomes the anchor that later translations link to.\n\t\t\t\tif (\n\t\t\t\t\tcreatedItem &&\n\t\t\t\t\tpost.translationGroup &&\n\t\t\t\t\t!translationGroupMap.has(post.translationGroup)\n\t\t\t\t) {\n\t\t\t\t\ttranslationGroupMap.set(post.translationGroup, createdItem.id);\n\t\t\t\t}\n\n\t\t\t\t// Attach taxonomy assignments parsed from the WXR's per-item\n\t\t\t\t// <category> elements.\n\t\t\t\t//\n\t\t\t\t// Anchors (no `translationOf`) get an additive attach -- the\n\t\t\t\t// row is fresh, no inherited pivots to consider.\n\t\t\t\t//\n\t\t\t\t// Translations replace only taxonomies they explicitly carry.\n\t\t\t\t// Since assignments belong to the content translation_group,\n\t\t\t\t// that replacement is reflected in every sibling locale.\n\t\t\t\tif (createdItem) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst written = translationOf\n\t\t\t\t\t\t\t? await setPostTermAssignmentsReplacing(\n\t\t\t\t\t\t\t\t\temdash.db,\n\t\t\t\t\t\t\t\t\tcollection,\n\t\t\t\t\t\t\t\t\tcreatedItem.id,\n\t\t\t\t\t\t\t\t\tpost,\n\t\t\t\t\t\t\t\t\ttaxonomyPlan,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: await attachPostTaxonomies(\n\t\t\t\t\t\t\t\t\temdash.db,\n\t\t\t\t\t\t\t\t\tcollection,\n\t\t\t\t\t\t\t\t\tcreatedItem.id,\n\t\t\t\t\t\t\t\t\tpost,\n\t\t\t\t\t\t\t\t\ttaxonomyPlan,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\tif (result.taxonomies) {\n\t\t\t\t\t\t\tresult.taxonomies.assignments += written;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (taxError) {\n\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t`Failed to attach taxonomies for \"${post.title || \"Untitled\"}\":`,\n\t\t\t\t\t\t\ttaxError,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tresult.errors.push({\n\t\t\t\t\t\t\ttitle: post.title || \"Untitled\",\n\t\t\t\t\t\t\terror:\n\t\t\t\t\t\t\t\ttaxError instanceof Error && taxError.message\n\t\t\t\t\t\t\t\t\t? `Imported but failed to attach taxonomies: ${taxError.message}`\n\t\t\t\t\t\t\t\t\t: \"Imported but failed to attach taxonomies\",\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tcreatedItem &&\n\t\t\t\t\tpost.status === \"future\" &&\n\t\t\t\t\tcreatedAt &&\n\t\t\t\t\tDate.parse(createdAt) > Date.now()\n\t\t\t\t) {\n\t\t\t\t\tconst scheduled = await emdash.handleContentSchedule(\n\t\t\t\t\t\tcollection,\n\t\t\t\t\t\tcreatedItem.id,\n\t\t\t\t\t\tcreatedAt,\n\t\t\t\t\t);\n\t\t\t\t\tif (!scheduled.success) {\n\t\t\t\t\t\tresult.errors.push({\n\t\t\t\t\t\t\ttitle: post.title || \"Untitled\",\n\t\t\t\t\t\t\terror: `Imported as draft but failed to schedule: ${scheduled.error?.message ?? \"Unknown error\"}`,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult.errors.push({\n\t\t\t\t\ttitle: post.title || \"Untitled\",\n\t\t\t\t\terror:\n\t\t\t\t\t\ttypeof createResult.error === \"object\" && createResult.error !== null\n\t\t\t\t\t\t\t? (createResult.error as { message?: string }).message || \"Unknown error\"\n\t\t\t\t\t\t\t: String(createResult.error),\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(`Import error for \"${post.title || \"Untitled\"}\":`, error);\n\t\t\tresult.errors.push({\n\t\t\t\ttitle: post.title || \"Untitled\",\n\t\t\t\terror: error instanceof Error && error.message ? error.message : \"Failed to import item\",\n\t\t\t});\n\t\t}\n\t}\n\n\tresult.success = result.errors.length === 0;\n\treturn result;\n}\n\nfunction mapStatus(wpStatus: string | undefined): string {\n\tswitch (wpStatus) {\n\t\tcase \"publish\":\n\t\t\treturn \"published\";\n\t\tcase \"draft\":\n\t\t\treturn \"draft\";\n\t\tcase \"pending\":\n\t\t\treturn \"draft\";\n\t\tcase \"private\":\n\t\t\treturn \"draft\";\n\t\tdefault:\n\t\t\treturn \"draft\";\n\t}\n}\n"],"mappings":"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"}
@@ -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-BOGhrwSq.mjs";
2
+ import "../../../../../types-UKr5Sf4y.mjs";
3
+ import "../../../../../types-C4P7F1Vq.mjs";
4
+ import "../../../../../options-BR9XZl7h.mjs";
5
+ import "../../../../../entry-lock-BAAlKYrz.mjs";
6
+ import "../../../../../config-C4-UxIk7.mjs";
7
+ import "../../../../../runner-DkeafPBA.mjs";
8
+ import "../../../../../storage-query-BOBmeDMD.mjs";
9
+ import "../../../../../index-DYsn97dY.mjs";
10
+ import "../../../../../types-Bq9Wohd7.mjs";
11
+ import "../../../../../hreflang-BsYo4x_M.mjs";
12
+ import "../../../../../validate-Dfv0DpZi.mjs";
13
13
  import { EmDashHandlers } from "../../../../types.mjs";
14
14
  import { AttachmentInfo } from "./analyze.mjs";
15
15
  import { APIRoute } from "astro";
@@ -4,23 +4,23 @@ import "../../../../../url-Dn3IStq8.mjs";
4
4
  import "../../../../../types-C-Xp0CcN.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-CjtE5aWF.mjs";
8
+ import "../../../../../errors-hskQ0C8G.mjs";
9
+ import "../../../../../settings-GaZ5sVgg.mjs";
10
+ import "../../../../../site-settings-CDdT4mVm.mjs";
11
+ import { a as ssrfSafeFetch, s as validateExternalUrl, t as SsrfError } from "../../../../../ssrf-LM_0wpGA.mjs";
12
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-DxgQdaZ_.mjs";
13
+ import { n as parseBody, t as isParseError } from "../../../../../parse-Cn5aSk1N.mjs";
14
+ import "../../../../../redirects-DFT7Wr-e.mjs";
15
+ import "../../../../../entry-lock-Cjz0h45X.mjs";
16
+ import "../../../../../media-CRKsKlfK.mjs";
17
+ import "../../../../../comments-BzmIKVb2.mjs";
18
+ import { p as wpMediaImportBody } from "../../../../../byline-fields-Bze3ZdAw.mjs";
19
+ import "../../../../../menus-D1HC8npj.mjs";
20
+ import "../../../../../status-Dl85BK39.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-BvNItdxk.mjs";
23
+ import { i as requirePerm } from "../../../../../authorize-TdIGpRSE.mjs";
24
24
  import { ulid } from "ulidx";
25
25
  import * as path from "node:path";
26
26
  import mime from "mime/lite";
@@ -3,21 +3,21 @@ import "../../../../../base64-BQBZwXCx.mjs";
3
3
  import { n as FIELD_TYPES } from "../../../../../types-BGmQ0uXs.mjs";
4
4
  import "../../../../../url-Dn3IStq8.mjs";
5
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 "../../../../../errors-CjtE5aWF.mjs";
7
+ import "../../../../../errors-hskQ0C8G.mjs";
8
+ import "../../../../../settings-GaZ5sVgg.mjs";
9
+ import "../../../../../site-settings-CDdT4mVm.mjs";
10
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-DxgQdaZ_.mjs";
11
+ import { n as parseBody, t as isParseError } from "../../../../../parse-Cn5aSk1N.mjs";
12
+ import "../../../../../redirects-DFT7Wr-e.mjs";
13
+ import "../../../../../entry-lock-Cjz0h45X.mjs";
14
+ import "../../../../../media-CRKsKlfK.mjs";
15
+ import "../../../../../comments-BzmIKVb2.mjs";
16
+ import { g as wpPrepareBody } from "../../../../../byline-fields-Bze3ZdAw.mjs";
17
+ import "../../../../../menus-D1HC8npj.mjs";
18
+ import "../../../../../status-Dl85BK39.mjs";
19
19
  import "../../../../../api/schemas/index.mjs";
20
- import { i as requirePerm } from "../../../../../authorize-DeWfk--K.mjs";
20
+ import { i as requirePerm } from "../../../../../authorize-TdIGpRSE.mjs";
21
21
  import { capitalize, sanitizeSlug, singularize } from "./analyze.mjs";
22
22
 
23
23
  //#region src/astro/routes/api/import/wordpress/prepare.ts
@@ -42,7 +42,7 @@ const POST = async ({ request, locals }) => {
42
42
  }
43
43
  };
44
44
  async function prepareImport(db, request) {
45
- const { SchemaRegistry } = await import("../../../../../registry-DaXmUsD4.mjs").then((n) => n.r);
45
+ const { SchemaRegistry } = await import("../../../../../registry-DeZ27gVi.mjs").then((n) => n.r);
46
46
  const registry = new SchemaRegistry(db);
47
47
  const result = {
48
48
  success: true,
@@ -108,7 +108,7 @@ async function prepareImport(db, request) {
108
108
  "post",
109
109
  "page"
110
110
  ].includes(collectionSlug)) {
111
- const { FTSManager } = await import("../../../../../fts-manager-DacCYIe4.mjs").then((n) => n.n);
111
+ const { FTSManager } = await import("../../../../../fts-manager-WJCN8uU6.mjs").then((n) => n.n);
112
112
  const ftsManager = new FTSManager(db);
113
113
  if ((await ftsManager.getSearchableFields(collectionSlug)).length > 0) try {
114
114
  await ftsManager.enableSearch(collectionSlug);
@@ -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"}