emdash 0.27.0 → 0.28.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 (534) hide show
  1. package/dist/{adapters-u037EnTR.d.mts → adapters-hUy8vOB-.d.mts} +1 -1
  2. package/dist/{adapters-u037EnTR.d.mts.map → adapters-hUy8vOB-.d.mts.map} +1 -1
  3. package/dist/{allowed-origins-D5FxMUo8.mjs → allowed-origins-CRsJ6BPM.mjs} +2 -2
  4. package/dist/{allowed-origins-D5FxMUo8.mjs.map → allowed-origins-CRsJ6BPM.mjs.map} +1 -1
  5. package/dist/api/route-utils.d.mts +3 -3
  6. package/dist/api/route-utils.mjs +17 -16
  7. package/dist/api/route-utils.mjs.map +1 -1
  8. package/dist/api/schemas/index.d.mts +1 -1
  9. package/dist/api/schemas/index.mjs +3 -3
  10. package/dist/{api-80kycR9o.mjs → api-BFURZn1i.mjs} +33 -23
  11. package/dist/api-BFURZn1i.mjs.map +1 -0
  12. package/dist/{api-tokens-D6ppjIVi.mjs → api-tokens-DvqeZmVq.mjs} +2 -2
  13. package/dist/{api-tokens-D6ppjIVi.mjs.map → api-tokens-DvqeZmVq.mjs.map} +1 -1
  14. package/dist/{apply-DSypk6Iu.mjs → apply-Bu-8nYHL.mjs} +111 -74
  15. package/dist/apply-Bu-8nYHL.mjs.map +1 -0
  16. package/dist/astro/index.d.mts +12 -12
  17. package/dist/astro/index.mjs +3 -3
  18. package/dist/astro/index.mjs.map +1 -1
  19. package/dist/astro/middleware/auth.d.mts +10 -10
  20. package/dist/astro/middleware/auth.d.mts.map +1 -1
  21. package/dist/astro/middleware/auth.mjs +50 -11
  22. package/dist/astro/middleware/auth.mjs.map +1 -1
  23. package/dist/astro/middleware/redirect.mjs +5 -5
  24. package/dist/astro/middleware/request-context.mjs +2 -2
  25. package/dist/astro/middleware/setup.mjs +1 -1
  26. package/dist/astro/middleware.d.mts +2 -2
  27. package/dist/astro/middleware.mjs +124 -71
  28. package/dist/astro/middleware.mjs.map +1 -1
  29. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +6 -6
  30. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +6 -6
  31. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +4 -4
  32. package/dist/astro/routes/api/admin/api-tokens/index.mjs +5 -5
  33. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +4 -4
  34. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +8 -8
  35. package/dist/astro/routes/api/admin/byline-fields/index.mjs +8 -8
  36. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +8 -8
  37. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +14 -14
  38. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +14 -14
  39. package/dist/astro/routes/api/admin/bylines/index.mjs +14 -14
  40. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +12 -12
  41. package/dist/astro/routes/api/admin/comments/_id_.mjs +6 -6
  42. package/dist/astro/routes/api/admin/comments/bulk.mjs +10 -10
  43. package/dist/astro/routes/api/admin/comments/counts.mjs +6 -6
  44. package/dist/astro/routes/api/admin/comments/index.mjs +10 -10
  45. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +4 -4
  46. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +3 -3
  47. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +4 -4
  48. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +4 -4
  49. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +37 -36
  50. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
  51. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +37 -36
  52. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
  53. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +36 -35
  54. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  55. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +36 -35
  56. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  57. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +36 -35
  58. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/plugins/index.mjs +36 -35
  60. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  61. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +3 -3
  62. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +36 -35
  63. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  64. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +36 -35
  65. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  66. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +36 -35
  67. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  68. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +36 -35
  69. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  70. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +37 -36
  71. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  72. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +36 -35
  73. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  74. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +37 -36
  75. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  76. package/dist/astro/routes/api/admin/plugins/updates.mjs +36 -35
  77. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  78. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +36 -35
  79. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  80. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +3 -3
  81. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +36 -35
  82. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  83. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +2 -2
  84. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +2 -2
  85. package/dist/astro/routes/api/admin/users/_id_/index.mjs +6 -6
  86. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +3 -3
  87. package/dist/astro/routes/api/admin/users/index.mjs +6 -6
  88. package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -5
  89. package/dist/astro/routes/api/auth/invite/accept.mjs +2 -2
  90. package/dist/astro/routes/api/auth/invite/complete.mjs +10 -10
  91. package/dist/astro/routes/api/auth/invite/index.mjs +7 -7
  92. package/dist/astro/routes/api/auth/invite/register-options.mjs +9 -9
  93. package/dist/astro/routes/api/auth/logout.mjs +3 -3
  94. package/dist/astro/routes/api/auth/magic-link/send.mjs +9 -9
  95. package/dist/astro/routes/api/auth/magic-link/verify.mjs +3 -3
  96. package/dist/astro/routes/api/auth/me.mjs +7 -7
  97. package/dist/astro/routes/api/auth/mode.mjs +1 -1
  98. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
  99. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  100. package/dist/astro/routes/api/auth/passkey/_id_.mjs +6 -6
  101. package/dist/astro/routes/api/auth/passkey/index.mjs +2 -2
  102. package/dist/astro/routes/api/auth/passkey/options.mjs +11 -11
  103. package/dist/astro/routes/api/auth/passkey/register/options.mjs +9 -9
  104. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +10 -10
  105. package/dist/astro/routes/api/auth/passkey/verify.mjs +10 -10
  106. package/dist/astro/routes/api/auth/signup/complete.mjs +10 -10
  107. package/dist/astro/routes/api/auth/signup/request.mjs +9 -9
  108. package/dist/astro/routes/api/auth/signup/verify.mjs +2 -2
  109. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +13 -13
  110. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +12 -12
  111. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +3 -3
  112. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +3 -3
  113. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +3 -3
  114. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +3 -3
  115. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +10 -10
  116. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +7 -7
  117. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +3 -3
  118. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +3 -3
  119. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +7 -7
  120. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +13 -13
  121. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +3 -3
  122. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +3 -3
  123. package/dist/astro/routes/api/content/_collection_/_id_.mjs +7 -7
  124. package/dist/astro/routes/api/content/_collection_/authors.mjs +3 -3
  125. package/dist/astro/routes/api/content/_collection_/index.mjs +7 -7
  126. package/dist/astro/routes/api/content/_collection_/trash.mjs +7 -7
  127. package/dist/astro/routes/api/dashboard.mjs +8 -8
  128. package/dist/astro/routes/api/dev/emails.mjs +3 -3
  129. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  130. package/dist/astro/routes/api/import/probe.mjs +19 -11
  131. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  132. package/dist/astro/routes/api/import/wordpress/analyze.mjs +3 -3
  133. package/dist/astro/routes/api/import/wordpress/execute.d.mts +11 -41
  134. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  135. package/dist/astro/routes/api/import/wordpress/execute.mjs +12 -407
  136. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  137. package/dist/astro/routes/api/import/wordpress/media.d.mts +10 -10
  138. package/dist/astro/routes/api/import/wordpress/media.mjs +9 -9
  139. package/dist/astro/routes/api/import/wordpress/prepare.mjs +9 -9
  140. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +19 -1
  141. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts.map +1 -1
  142. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +97 -79
  143. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  144. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  145. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +19 -11
  146. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  147. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +40 -2
  148. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -1
  149. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +519 -39
  150. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  151. package/dist/astro/routes/api/manifest.mjs +4 -4
  152. package/dist/astro/routes/api/mcp.mjs +39 -39
  153. package/dist/astro/routes/api/media/_id_/confirm.mjs +7 -7
  154. package/dist/astro/routes/api/media/_id_.mjs +7 -7
  155. package/dist/astro/routes/api/media/file/_...key_.mjs +2 -2
  156. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +3 -3
  157. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +3 -3
  158. package/dist/astro/routes/api/media/providers/index.mjs +3 -3
  159. package/dist/astro/routes/api/media/upload-url.mjs +8 -8
  160. package/dist/astro/routes/api/media.mjs +9 -9
  161. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +9 -9
  162. package/dist/astro/routes/api/menus/_name_/items.mjs +9 -9
  163. package/dist/astro/routes/api/menus/_name_/reorder.mjs +9 -9
  164. package/dist/astro/routes/api/menus/_name_/translations.mjs +9 -9
  165. package/dist/astro/routes/api/menus/_name_.mjs +9 -9
  166. package/dist/astro/routes/api/menus/index.mjs +9 -9
  167. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  168. package/dist/astro/routes/api/oauth/device/authorize.mjs +6 -6
  169. package/dist/astro/routes/api/oauth/device/code.mjs +9 -9
  170. package/dist/astro/routes/api/oauth/device/token.mjs +8 -8
  171. package/dist/astro/routes/api/oauth/register.mjs +3 -3
  172. package/dist/astro/routes/api/oauth/token/refresh.mjs +6 -6
  173. package/dist/astro/routes/api/oauth/token/revoke.mjs +6 -6
  174. package/dist/astro/routes/api/oauth/token.mjs +6 -6
  175. package/dist/astro/routes/api/openapi.json.mjs +4 -4
  176. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +4 -4
  177. package/dist/astro/routes/api/redirects/404s/index.mjs +9 -9
  178. package/dist/astro/routes/api/redirects/404s/summary.mjs +9 -9
  179. package/dist/astro/routes/api/redirects/_id_.mjs +10 -10
  180. package/dist/astro/routes/api/redirects/index.mjs +10 -10
  181. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +3 -3
  182. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +3 -3
  183. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +36 -35
  184. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  185. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +36 -35
  186. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  187. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +36 -35
  188. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  189. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +36 -35
  190. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  191. package/dist/astro/routes/api/schema/collections/index.mjs +36 -35
  192. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  193. package/dist/astro/routes/api/schema/index.mjs +7 -6
  194. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  195. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +36 -35
  196. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  197. package/dist/astro/routes/api/schema/orphans/index.mjs +36 -35
  198. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  199. package/dist/astro/routes/api/search/enable.mjs +10 -10
  200. package/dist/astro/routes/api/search/index.mjs +9 -9
  201. package/dist/astro/routes/api/search/rebuild.mjs +10 -10
  202. package/dist/astro/routes/api/search/stats.mjs +6 -6
  203. package/dist/astro/routes/api/search/suggest.mjs +9 -9
  204. package/dist/astro/routes/api/sections/_slug_.mjs +9 -9
  205. package/dist/astro/routes/api/sections/index.mjs +9 -9
  206. package/dist/astro/routes/api/settings/email.mjs +4 -4
  207. package/dist/astro/routes/api/settings.mjs +12 -12
  208. package/dist/astro/routes/api/setup/admin-verify.mjs +11 -11
  209. package/dist/astro/routes/api/setup/admin.mjs +10 -10
  210. package/dist/astro/routes/api/setup/dev-bypass.mjs +25 -24
  211. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  212. package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
  213. package/dist/astro/routes/api/setup/index.mjs +26 -25
  214. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  215. package/dist/astro/routes/api/setup/status.mjs +4 -4
  216. package/dist/astro/routes/api/snapshot.mjs +6 -6
  217. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +13 -13
  218. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +13 -13
  219. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +13 -13
  220. package/dist/astro/routes/api/taxonomies/index.mjs +13 -13
  221. package/dist/astro/routes/api/themes/preview.mjs +5 -5
  222. package/dist/astro/routes/api/typegen.mjs +5 -5
  223. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  224. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  225. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  226. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +7 -7
  227. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +9 -9
  228. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +9 -9
  229. package/dist/astro/routes/api/widget-areas/_name_.mjs +5 -5
  230. package/dist/astro/routes/api/widget-areas/index.mjs +9 -9
  231. package/dist/astro/routes/api/widget-components.mjs +3 -3
  232. package/dist/astro/routes/robots.txt.mjs +6 -6
  233. package/dist/astro/routes/sitemap-_collection_.xml.mjs +9 -9
  234. package/dist/astro/routes/sitemap.xml.mjs +7 -7
  235. package/dist/astro/types.d.mts +13 -13
  236. package/dist/auth/providers/github.d.mts +1 -1
  237. package/dist/auth/providers/google.d.mts +1 -1
  238. package/dist/{authorize-C3a_zGsM.mjs → authorize-Dz88F_Fw.mjs} +2 -2
  239. package/dist/{authorize-C3a_zGsM.mjs.map → authorize-Dz88F_Fw.mjs.map} +1 -1
  240. package/dist/{byline-DEKSVPTy.mjs → byline-Bm8ZgUP9.mjs} +6 -6
  241. package/dist/{byline-DEKSVPTy.mjs.map → byline-Bm8ZgUP9.mjs.map} +1 -1
  242. package/dist/{byline-fields-eyJMblSr.mjs → byline-fields-2Lp5Hbgf.mjs} +18 -3
  243. package/dist/byline-fields-2Lp5Hbgf.mjs.map +1 -0
  244. package/dist/{byline-fields-DaMKzkhO.mjs → byline-fields-CIx_GuN4.mjs} +1 -1
  245. package/dist/{byline-fields-DaMKzkhO.mjs.map → byline-fields-CIx_GuN4.mjs.map} +1 -1
  246. package/dist/{byline-fields-CtQ6blXd.d.mts → byline-fields-Cgrt9-aL.d.mts} +49 -34
  247. package/dist/{byline-fields-CtQ6blXd.d.mts.map → byline-fields-Cgrt9-aL.d.mts.map} +1 -1
  248. package/dist/{bylines-Ds4-otXl.mjs → bylines-6tm9mgQb.mjs} +4 -4
  249. package/dist/{bylines-Ds4-otXl.mjs.map → bylines-6tm9mgQb.mjs.map} +1 -1
  250. package/dist/{bylines-CiqgTHWF.mjs → bylines-Woq87129.mjs} +6 -6
  251. package/dist/{bylines-CiqgTHWF.mjs.map → bylines-Woq87129.mjs.map} +1 -1
  252. package/dist/{cache-Ciu3e3AF.mjs → cache-CEBAZjir.mjs} +2 -2
  253. package/dist/{cache-Ciu3e3AF.mjs.map → cache-CEBAZjir.mjs.map} +1 -1
  254. package/dist/{challenge-store-LhiqMccz.mjs → challenge-store-anhwVER0.mjs} +1 -1
  255. package/dist/{challenge-store-LhiqMccz.mjs.map → challenge-store-anhwVER0.mjs.map} +1 -1
  256. package/dist/{chunks-CZFiauig.mjs → chunks-B2isWQhr.mjs} +2 -2
  257. package/dist/{chunks-CZFiauig.mjs.map → chunks-B2isWQhr.mjs.map} +1 -1
  258. package/dist/cli/index.mjs +22 -21
  259. package/dist/cli/index.mjs.map +1 -1
  260. package/dist/client/cf-access.d.mts +1 -1
  261. package/dist/client/index.d.mts +1 -1
  262. package/dist/client/index.mjs +2 -2
  263. package/dist/{comment-CH1IrFFs.mjs → comment-CzeatwBV.mjs} +3 -3
  264. package/dist/{comment-CH1IrFFs.mjs.map → comment-CzeatwBV.mjs.map} +1 -1
  265. package/dist/{comment-reaction-kruNY-kP.mjs → comment-reaction-Cj9QJY7I.mjs} +2 -2
  266. package/dist/{comment-reaction-kruNY-kP.mjs.map → comment-reaction-Cj9QJY7I.mjs.map} +1 -1
  267. package/dist/{comments-BUJyXbgq.mjs → comments-BLE-jv5k.mjs} +3 -3
  268. package/dist/{comments-BUJyXbgq.mjs.map → comments-BLE-jv5k.mjs.map} +1 -1
  269. package/dist/{components-CYt4uVK9.mjs → components-B_sATNUc.mjs} +1 -1
  270. package/dist/{components-CYt4uVK9.mjs.map → components-B_sATNUc.mjs.map} +1 -1
  271. package/dist/{content-RmfHoWqK.mjs → content-DhgEth4k.mjs} +4 -4
  272. package/dist/{content-RmfHoWqK.mjs.map → content-DhgEth4k.mjs.map} +1 -1
  273. package/dist/content-refresh-CA4uKwzH.mjs +1531 -0
  274. package/dist/content-refresh-CA4uKwzH.mjs.map +1 -0
  275. package/dist/{context-CzUU_WzL.mjs → context-CUsR9dXL.mjs} +76 -54
  276. package/dist/context-CUsR9dXL.mjs.map +1 -0
  277. package/dist/{cron-C5LVoNmP.mjs → cron-v4FTEFR_.mjs} +1 -1
  278. package/dist/{cron-C5LVoNmP.mjs.map → cron-v4FTEFR_.mjs.map} +1 -1
  279. package/dist/{dashboard-CVyGhift.mjs → dashboard-EvEKF5en.mjs} +4 -4
  280. package/dist/{dashboard-CVyGhift.mjs.map → dashboard-EvEKF5en.mjs.map} +1 -1
  281. package/dist/db/index.d.mts +3 -3
  282. package/dist/db/index.mjs +1 -1
  283. package/dist/db/libsql.d.mts +1 -1
  284. package/dist/db/postgres.d.mts +1 -1
  285. package/dist/db/sqlite.d.mts +1 -1
  286. package/dist/{default-CeRG-Ot4.mjs → default-CM_D83Mg.mjs} +1 -1
  287. package/dist/{default-CeRG-Ot4.mjs.map → default-CM_D83Mg.mjs.map} +1 -1
  288. package/dist/{device-flow-DENDCQ9F.mjs → device-flow-CfGP18Uw.mjs} +4 -4
  289. package/dist/{device-flow-DENDCQ9F.mjs.map → device-flow-CfGP18Uw.mjs.map} +1 -1
  290. package/dist/{email-console-DJP32ucW.mjs → email-console-CIf4Lfvv.mjs} +1 -1
  291. package/dist/{email-console-DJP32ucW.mjs.map → email-console-CIf4Lfvv.mjs.map} +1 -1
  292. package/dist/{error-BHkLZk-w.mjs → error-CkAseSqZ.mjs} +2 -2
  293. package/dist/{error-BHkLZk-w.mjs.map → error-CkAseSqZ.mjs.map} +1 -1
  294. package/dist/{escape-Bjio4ZsM.mjs → escape-DqD0aCKu.mjs} +1 -1
  295. package/dist/{escape-Bjio4ZsM.mjs.map → escape-DqD0aCKu.mjs.map} +1 -1
  296. package/dist/{field-defs-cache-BA-8ZPiT.mjs → field-defs-cache-WUI88LX5.mjs} +2 -2
  297. package/dist/{field-defs-cache-BA-8ZPiT.mjs.map → field-defs-cache-WUI88LX5.mjs.map} +1 -1
  298. package/dist/{fts-manager-Db9jGavf.mjs → fts-manager-BbFaF_V8.mjs} +2 -2
  299. package/dist/{fts-manager-Db9jGavf.mjs.map → fts-manager-BbFaF_V8.mjs.map} +1 -1
  300. package/dist/{import-Bb1T9WJS.mjs → import-fYLf14Co.mjs} +514 -25
  301. package/dist/import-fYLf14Co.mjs.map +1 -0
  302. package/dist/{index-CDZZjrLT.d.mts → index-B9sIxwe4.d.mts} +21 -22
  303. package/dist/{index-CDZZjrLT.d.mts.map → index-B9sIxwe4.d.mts.map} +1 -1
  304. package/dist/{index-DGIjmUXQ.d.mts → index-Bm-Gy8Mh.d.mts} +25 -4
  305. package/dist/index-Bm-Gy8Mh.d.mts.map +1 -0
  306. package/dist/index.d.mts +18 -18
  307. package/dist/index.mjs +54 -53
  308. package/dist/{load-DpHICVPh.mjs → load-Djn3HWQS.mjs} +2 -2
  309. package/dist/{load-DpHICVPh.mjs.map → load-Djn3HWQS.mjs.map} +1 -1
  310. package/dist/{loader-4K37qA-y.mjs → loader-CB6YHeul.mjs} +6 -5
  311. package/dist/loader-CB6YHeul.mjs.map +1 -0
  312. package/dist/{manifest-schema-kPGX7VS-.mjs → manifest-schema-BHlgZM1W.mjs} +1 -1
  313. package/dist/{manifest-schema-kPGX7VS-.mjs.map → manifest-schema-BHlgZM1W.mjs.map} +1 -1
  314. package/dist/media/index.d.mts +1 -1
  315. package/dist/media/local-runtime.d.mts +12 -12
  316. package/dist/media/local-runtime.mjs +5 -5
  317. package/dist/{media-C0nRRfs1.mjs → media-BrXIaMFN.mjs} +2 -2
  318. package/dist/{media-C0nRRfs1.mjs.map → media-BrXIaMFN.mjs.map} +1 -1
  319. package/dist/{media-allowlist-Du8t1u6a.mjs → media-allowlist-CRHEeJ_i.mjs} +1 -1
  320. package/dist/{media-allowlist-Du8t1u6a.mjs.map → media-allowlist-CRHEeJ_i.mjs.map} +1 -1
  321. package/dist/{media-url-O4rm9-SQ.mjs → media-url-CKi5XSw4.mjs} +1 -1
  322. package/dist/{media-url-O4rm9-SQ.mjs.map → media-url-CKi5XSw4.mjs.map} +1 -1
  323. package/dist/{menus-SL2K0xq2.mjs → menus-Cfivc2Ad.mjs} +3 -3
  324. package/dist/{menus-SL2K0xq2.mjs.map → menus-Cfivc2Ad.mjs.map} +1 -1
  325. package/dist/{menus-DzRyC1ID.mjs → menus-CsZ2ZEK2.mjs} +16 -12
  326. package/dist/{menus-DzRyC1ID.mjs.map → menus-CsZ2ZEK2.mjs.map} +1 -1
  327. package/dist/{mode-BB0F8xTC.mjs → mode-BM9QgEmt.mjs} +1 -1
  328. package/dist/{mode-BB0F8xTC.mjs.map → mode-BM9QgEmt.mjs.map} +1 -1
  329. package/dist/{oauth-authorization-CsvzIp_F.mjs → oauth-authorization-CXWkIGT4.mjs} +4 -4
  330. package/dist/{oauth-authorization-CsvzIp_F.mjs.map → oauth-authorization-CXWkIGT4.mjs.map} +1 -1
  331. package/dist/{oauth-clients-C9SYwEbZ.mjs → oauth-clients-BmTI5rsl.mjs} +1 -1
  332. package/dist/{oauth-clients-C9SYwEbZ.mjs.map → oauth-clients-BmTI5rsl.mjs.map} +1 -1
  333. package/dist/{oauth-state-store---zrApfB.mjs → oauth-state-store-YLFLcH5F.mjs} +1 -1
  334. package/dist/{oauth-state-store---zrApfB.mjs.map → oauth-state-store-YLFLcH5F.mjs.map} +1 -1
  335. package/dist/{oauth-user-lookup-SHsWRlG9.mjs → oauth-user-lookup-Bsc_GsX-.mjs} +1 -1
  336. package/dist/{oauth-user-lookup-SHsWRlG9.mjs.map → oauth-user-lookup-Bsc_GsX-.mjs.map} +1 -1
  337. package/dist/object-cache/memory.d.mts +1 -1
  338. package/dist/{object-cache-CHbHv83-.mjs → object-cache-Bok5j2ae.mjs} +43 -3
  339. package/dist/object-cache-Bok5j2ae.mjs.map +1 -0
  340. package/dist/{options-41nCWqi9.d.mts → options-iMpRRxIe.d.mts} +3 -3
  341. package/dist/{options-41nCWqi9.d.mts.map → options-iMpRRxIe.d.mts.map} +1 -1
  342. package/dist/page/index.d.mts +2 -2
  343. package/dist/{parse-CqyZj3Hp.mjs → parse-GmjecGct.mjs} +2 -2
  344. package/dist/{parse-CqyZj3Hp.mjs.map → parse-GmjecGct.mjs.map} +1 -1
  345. package/dist/{passkey-config-C0YfSBko.mjs → passkey-config-De0ahnRg.mjs} +1 -1
  346. package/dist/{passkey-config-C0YfSBko.mjs.map → passkey-config-De0ahnRg.mjs.map} +1 -1
  347. package/dist/{placeholder-Cuce9U-m.d.mts → placeholder-BSKwzRe4.d.mts} +1 -1
  348. package/dist/{placeholder-Cuce9U-m.d.mts.map → placeholder-BSKwzRe4.d.mts.map} +1 -1
  349. package/dist/plugin-types.d.mts +1 -1
  350. package/dist/plugin-utils.d.mts +10 -10
  351. package/dist/plugins/adapt-sandbox-entry.d.mts +10 -10
  352. package/dist/plugins/adapt-sandbox-entry.mjs +2 -2
  353. package/dist/{portable-text-BICg8bTk.mjs → portable-text-cCa0cGV6.mjs} +1 -1
  354. package/dist/{portable-text-BICg8bTk.mjs.map → portable-text-cCa0cGV6.mjs.map} +1 -1
  355. package/dist/{preview-DKGCt2_p.mjs → preview-SSXNVPAC.mjs} +2 -2
  356. package/dist/{preview-DKGCt2_p.mjs.map → preview-SSXNVPAC.mjs.map} +1 -1
  357. package/dist/{public-url-CTVqgMmg.mjs → public-url-Danv47cS.mjs} +1 -1
  358. package/dist/{public-url-CTVqgMmg.mjs.map → public-url-Danv47cS.mjs.map} +1 -1
  359. package/dist/{query-B0M-9LYR.mjs → query-ByGq6ver.mjs} +14 -14
  360. package/dist/{query-B0M-9LYR.mjs.map → query-ByGq6ver.mjs.map} +1 -1
  361. package/dist/{rate-limit-BwoUdIpC.mjs → rate-limit-C_Lf63Dd.mjs} +2 -2
  362. package/dist/{rate-limit-BwoUdIpC.mjs.map → rate-limit-C_Lf63Dd.mjs.map} +1 -1
  363. package/dist/{redirect-CS-PHtNh.mjs → redirect-CoW3G-0U.mjs} +1 -1
  364. package/dist/{redirect-CS-PHtNh.mjs.map → redirect-CoW3G-0U.mjs.map} +1 -1
  365. package/dist/{redirect-lMOzG04S.mjs → redirect-IyfNirgS.mjs} +2 -2
  366. package/dist/{redirect-lMOzG04S.mjs.map → redirect-IyfNirgS.mjs.map} +1 -1
  367. package/dist/{redirects-9218MmYl.mjs → redirects-Bs1g42Ri.mjs} +4 -4
  368. package/dist/{redirects-9218MmYl.mjs.map → redirects-Bs1g42Ri.mjs.map} +1 -1
  369. package/dist/{redirects-Dcbuisoj.mjs → redirects-DXEXBAII.mjs} +2 -2
  370. package/dist/{redirects-Dcbuisoj.mjs.map → redirects-DXEXBAII.mjs.map} +1 -1
  371. package/dist/{registry-DP-iEtdR.mjs → registry-B65mUtPa.mjs} +122 -79
  372. package/dist/registry-B65mUtPa.mjs.map +1 -0
  373. package/dist/{request-meta-CmS1tDFf.mjs → request-meta-DbvXaAvU.mjs} +2 -2
  374. package/dist/{request-meta-CmS1tDFf.mjs.map → request-meta-DbvXaAvU.mjs.map} +1 -1
  375. package/dist/{resolve-C7I0qiR0.mjs → resolve-DR3wqMTy.mjs} +1 -1
  376. package/dist/{resolve-C7I0qiR0.mjs.map → resolve-DR3wqMTy.mjs.map} +1 -1
  377. package/dist/{runner-BbR3DfrL.d.mts → runner-DvFWoz8-.d.mts} +2 -2
  378. package/dist/{runner-BbR3DfrL.d.mts.map → runner-DvFWoz8-.d.mts.map} +1 -1
  379. package/dist/{runner-CFngB4WZ.mjs → runner-K8XK101B.mjs} +309 -190
  380. package/dist/runner-K8XK101B.mjs.map +1 -0
  381. package/dist/runtime.d.mts +11 -11
  382. package/dist/runtime.mjs +2 -2
  383. package/dist/{scheduled-publish-BMljtY5G.d.mts → scheduled-publish-Drffrf2a.d.mts} +1 -1
  384. package/dist/scheduled-publish-Drffrf2a.d.mts.map +1 -0
  385. package/dist/{schema-BfJ7bIXH.mjs → schema-Blhoxp3P.mjs} +5 -5
  386. package/dist/{schema-BfJ7bIXH.mjs.map → schema-Blhoxp3P.mjs.map} +1 -1
  387. package/dist/{search-C7t3PH1J.mjs → search-DZN2HZ-V.mjs} +4 -4
  388. package/dist/{search-C7t3PH1J.mjs.map → search-DZN2HZ-V.mjs.map} +1 -1
  389. package/dist/{secrets-BSf9pRRY.mjs → secrets-kp760LlD.mjs} +2 -2
  390. package/dist/{secrets-BSf9pRRY.mjs.map → secrets-kp760LlD.mjs.map} +1 -1
  391. package/dist/{sections-Dm0CVX23.mjs → sections-CpF5SaGr.mjs} +3 -3
  392. package/dist/{sections-Dm0CVX23.mjs.map → sections-CpF5SaGr.mjs.map} +1 -1
  393. package/dist/seed/index.d.mts +2 -2
  394. package/dist/seed/index.mjs +19 -18
  395. package/dist/seo/index.d.mts +1 -1
  396. package/dist/seo/index.mjs +1 -1
  397. package/dist/{seo-BkhuuaaE.mjs → seo-89-53DDs.mjs} +1 -1
  398. package/dist/{seo-BkhuuaaE.mjs.map → seo-89-53DDs.mjs.map} +1 -1
  399. package/dist/{seo-Dd3tbY_k.mjs → seo-DXu2UQnC.mjs} +3 -3
  400. package/dist/{seo-Dd3tbY_k.mjs.map → seo-DXu2UQnC.mjs.map} +1 -1
  401. package/dist/{service-CTrqp_Jy.mjs → service-DQmiBMzt.mjs} +3 -3
  402. package/dist/{service-CTrqp_Jy.mjs.map → service-DQmiBMzt.mjs.map} +1 -1
  403. package/dist/{session-user-B8aLtKAH.mjs → session-user-Cascbax7.mjs} +1 -1
  404. package/dist/{session-user-B8aLtKAH.mjs.map → session-user-Cascbax7.mjs.map} +1 -1
  405. package/dist/{settings-CZ7ZP9cW.mjs → settings-rZyHEcNT.mjs} +3 -3
  406. package/dist/{settings-CZ7ZP9cW.mjs.map → settings-rZyHEcNT.mjs.map} +1 -1
  407. package/dist/{settings-BX8cWBus.mjs → settings-zhmdKyJQ.mjs} +5 -5
  408. package/dist/{settings-BX8cWBus.mjs.map → settings-zhmdKyJQ.mjs.map} +1 -1
  409. package/dist/{setup-complete-gEiySUc-.mjs → setup-complete-Cb3LRyzy.mjs} +1 -1
  410. package/dist/{setup-complete-gEiySUc-.mjs.map → setup-complete-Cb3LRyzy.mjs.map} +1 -1
  411. package/dist/{setup-nonce-DzS50zme.mjs → setup-nonce-Z8x0tHf8.mjs} +1 -1
  412. package/dist/{setup-nonce-DzS50zme.mjs.map → setup-nonce-Z8x0tHf8.mjs.map} +1 -1
  413. package/dist/{single-flight-cache-Cdfkic3t.mjs → single-flight-cache-BG3B_GhN.mjs} +1 -1
  414. package/dist/{single-flight-cache-Cdfkic3t.mjs.map → single-flight-cache-BG3B_GhN.mjs.map} +1 -1
  415. package/dist/{site-url-BLebyON8.mjs → site-url-BBfDTgZB.mjs} +1 -1
  416. package/dist/{site-url-BLebyON8.mjs.map → site-url-BBfDTgZB.mjs.map} +1 -1
  417. package/dist/{ssrf-BRKb343l.mjs → ssrf-1g7usGBg.mjs} +1 -1
  418. package/dist/{ssrf-BRKb343l.mjs.map → ssrf-1g7usGBg.mjs.map} +1 -1
  419. package/dist/{status-vUK0SA17.mjs → status-CqJQX1QN.mjs} +1 -1
  420. package/dist/{status-vUK0SA17.mjs.map → status-CqJQX1QN.mjs.map} +1 -1
  421. package/dist/storage/local.d.mts +1 -1
  422. package/dist/storage/local.mjs +1 -1
  423. package/dist/storage/s3.d.mts +1 -1
  424. package/dist/storage/s3.mjs +1 -1
  425. package/dist/{taxonomies-DChKcVxf.mjs → taxonomies-BGBd16Eu.mjs} +4 -4
  426. package/dist/{taxonomies-DChKcVxf.mjs.map → taxonomies-BGBd16Eu.mjs.map} +1 -1
  427. package/dist/{taxonomies-ckPjz-6d.mjs → taxonomies-Cnb4F-Pb.mjs} +7 -7
  428. package/dist/{taxonomies-ckPjz-6d.mjs.map → taxonomies-Cnb4F-Pb.mjs.map} +1 -1
  429. package/dist/{taxonomy-Cru-he6s.mjs → taxonomy-BxGxZZdu.mjs} +4 -4
  430. package/dist/{taxonomy-Cru-he6s.mjs.map → taxonomy-BxGxZZdu.mjs.map} +1 -1
  431. package/dist/{tokens-LeuXF9gG.mjs → tokens-BGT0TUUo.mjs} +1 -1
  432. package/dist/{tokens-LeuXF9gG.mjs.map → tokens-BGT0TUUo.mjs.map} +1 -1
  433. package/dist/{transport-Blrl2k_o.d.mts → transport-BMDWHSgZ.d.mts} +1 -1
  434. package/dist/{transport-Blrl2k_o.d.mts.map → transport-BMDWHSgZ.d.mts.map} +1 -1
  435. package/dist/{transport-_2nBz7e9.mjs → transport-DPefPMcz.mjs} +1 -1
  436. package/dist/{transport-_2nBz7e9.mjs.map → transport-DPefPMcz.mjs.map} +1 -1
  437. package/dist/{trusted-proxy-DZY5WCn2.mjs → trusted-proxy-VTPRiX2s.mjs} +1 -1
  438. package/dist/{trusted-proxy-DZY5WCn2.mjs.map → trusted-proxy-VTPRiX2s.mjs.map} +1 -1
  439. package/dist/{types-ETmO_jQr.d.mts → types-BcLUUbbR.d.mts} +2 -2
  440. package/dist/{types-ETmO_jQr.d.mts.map → types-BcLUUbbR.d.mts.map} +1 -1
  441. package/dist/{types-BYnDBVwe.d.mts → types-CGbYowGQ.d.mts} +2 -2
  442. package/dist/{types-BYnDBVwe.d.mts.map → types-CGbYowGQ.d.mts.map} +1 -1
  443. package/dist/{types-CvuKO5Pn.d.mts → types-CgvhU-hF.d.mts} +1 -1
  444. package/dist/{types-CvuKO5Pn.d.mts.map → types-CgvhU-hF.d.mts.map} +1 -1
  445. package/dist/{types-Y09-wtyU.d.mts → types-ClUkdbWb.d.mts} +1 -1
  446. package/dist/{types-Y09-wtyU.d.mts.map → types-ClUkdbWb.d.mts.map} +1 -1
  447. package/dist/{types-DU4TSFS5.mjs → types-CuW0zWDA.mjs} +2 -2
  448. package/dist/{types-DU4TSFS5.mjs.map → types-CuW0zWDA.mjs.map} +1 -1
  449. package/dist/{types-BkZ8DUEI.d.mts → types-DmHk7vAt.d.mts} +1 -1
  450. package/dist/{types-BkZ8DUEI.d.mts.map → types-DmHk7vAt.d.mts.map} +1 -1
  451. package/dist/{types-CQAugunJ.mjs → types-Jo3UYd6b.mjs} +1 -1
  452. package/dist/{types-CQAugunJ.mjs.map → types-Jo3UYd6b.mjs.map} +1 -1
  453. package/dist/{types-xIfVRNLp.d.mts → types-_HFLRzTn.d.mts} +22 -1
  454. package/dist/types-_HFLRzTn.d.mts.map +1 -0
  455. package/dist/{types-ByChcBgE.d.mts → types-ea9sAPck.d.mts} +1 -1
  456. package/dist/{types-ByChcBgE.d.mts.map → types-ea9sAPck.d.mts.map} +1 -1
  457. package/dist/{types-CNlaBFzx.d.mts → types-g_aFIdW0.d.mts} +1 -1
  458. package/dist/{types-CNlaBFzx.d.mts.map → types-g_aFIdW0.d.mts.map} +1 -1
  459. package/dist/{types-Dbqff978.d.mts → types-vgEWF18A.d.mts} +19 -1
  460. package/dist/{types-Dbqff978.d.mts.map → types-vgEWF18A.d.mts.map} +1 -1
  461. package/dist/{user-DgGbKL9s.mjs → user-BjAOvU3Z.mjs} +3 -3
  462. package/dist/{user-DgGbKL9s.mjs.map → user-BjAOvU3Z.mjs.map} +1 -1
  463. package/dist/{utils-B7A57fm9.mjs → utils-BJXElxdw.mjs} +156 -7
  464. package/dist/utils-BJXElxdw.mjs.map +1 -0
  465. package/dist/{validate-CRkcYZAR.mjs → validate-CWSnKVIJ.mjs} +2 -2
  466. package/dist/{validate-CRkcYZAR.mjs.map → validate-CWSnKVIJ.mjs.map} +1 -1
  467. package/dist/{validate-9ECmtEpJ.d.mts → validate-Z1b86_3B.d.mts} +5 -5
  468. package/dist/{validate-9ECmtEpJ.d.mts.map → validate-Z1b86_3B.d.mts.map} +1 -1
  469. package/dist/{validation-sR26SOwD.mjs → validation-c8WjhH8z.mjs} +8 -5
  470. package/dist/{validation-sR26SOwD.mjs.map → validation-c8WjhH8z.mjs.map} +1 -1
  471. package/dist/version-CaccU7DM.mjs +7 -0
  472. package/dist/{version-CrqhKGWn.mjs.map → version-CaccU7DM.mjs.map} +1 -1
  473. package/dist/{widgets-DRgtn7Cl.mjs → widgets-hWcIicX8.mjs} +3 -3
  474. package/dist/{widgets-DRgtn7Cl.mjs.map → widgets-hWcIicX8.mjs.map} +1 -1
  475. package/dist/wxr-taxonomies-0_uxSrmf.d.mts +34 -0
  476. package/dist/wxr-taxonomies-0_uxSrmf.d.mts.map +1 -0
  477. package/dist/wxr-taxonomies-BC3OYpvx.mjs +425 -0
  478. package/dist/wxr-taxonomies-BC3OYpvx.mjs.map +1 -0
  479. package/dist/{zod-generator-C5JaV--i.mjs → zod-generator-CacrR-i8.mjs} +2 -2
  480. package/dist/{zod-generator-C5JaV--i.mjs.map → zod-generator-CacrR-i8.mjs.map} +1 -1
  481. package/package.json +7 -7
  482. package/src/api/handlers/content.ts +10 -7
  483. package/src/api/schemas/import.ts +19 -0
  484. package/src/astro/integration/runtime.ts +3 -6
  485. package/src/astro/middleware/auth.ts +9 -3
  486. package/src/astro/middleware/csp.ts +54 -3
  487. package/src/astro/routes/admin.astro +9 -0
  488. package/src/astro/routes/api/import/wordpress/rewrite-urls.ts +122 -98
  489. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +794 -44
  490. package/src/components/EmDashImage.astro +59 -23
  491. package/src/components/Image.astro +36 -35
  492. package/src/database/migrations/049_taxonomies_name_locale_index.ts +42 -0
  493. package/src/database/migrations/050_media_usage_index_status.ts +142 -0
  494. package/src/database/migrations/runner.ts +4 -0
  495. package/src/database/repositories/media-usage.ts +932 -58
  496. package/src/database/types.ts +22 -0
  497. package/src/emdash-runtime.ts +123 -3
  498. package/src/import/comments.ts +159 -0
  499. package/src/import/index.ts +8 -1
  500. package/src/import/settings.ts +65 -189
  501. package/src/import/sources/wordpress-plugin.ts +338 -42
  502. package/src/import/sources/wxr.ts +4 -1
  503. package/src/import/types.ts +12 -0
  504. package/src/import/utils.ts +207 -0
  505. package/src/import/wxr-taxonomies.ts +39 -0
  506. package/src/loader.ts +13 -2
  507. package/src/media/usage/content-fields.ts +119 -0
  508. package/src/media/usage/content-refresh.ts +524 -0
  509. package/src/media/usage/content-repair.ts +491 -0
  510. package/src/media/usage/content-snapshots.ts +435 -0
  511. package/src/media/usage/extractor.ts +4 -4
  512. package/src/media/usage/source-key.ts +22 -0
  513. package/src/menus/index.ts +17 -1
  514. package/src/object-cache/index.ts +82 -7
  515. package/src/plugins/context.ts +100 -71
  516. package/src/schema/registry.ts +240 -154
  517. package/src/seed/apply.ts +156 -99
  518. package/dist/api-80kycR9o.mjs.map +0 -1
  519. package/dist/apply-DSypk6Iu.mjs.map +0 -1
  520. package/dist/byline-fields-eyJMblSr.mjs.map +0 -1
  521. package/dist/context-CzUU_WzL.mjs.map +0 -1
  522. package/dist/import-Bb1T9WJS.mjs.map +0 -1
  523. package/dist/index-DGIjmUXQ.d.mts.map +0 -1
  524. package/dist/loader-4K37qA-y.mjs.map +0 -1
  525. package/dist/object-cache-CHbHv83-.mjs.map +0 -1
  526. package/dist/registry-DP-iEtdR.mjs.map +0 -1
  527. package/dist/runner-CFngB4WZ.mjs.map +0 -1
  528. package/dist/scheduled-publish-BMljtY5G.d.mts.map +0 -1
  529. package/dist/types-xIfVRNLp.d.mts.map +0 -1
  530. package/dist/utils-B7A57fm9.mjs.map +0 -1
  531. package/dist/version-CrqhKGWn.mjs +0 -7
  532. /package/dist/{api-tokens-B4BQybOp.mjs → api-tokens-DsvvCtdh.mjs} +0 -0
  533. /package/dist/{ssrf-CcX9zvMK.mjs → ssrf-CmuGgCq3.mjs} +0 -0
  534. /package/dist/{types-BvbeGEtr.mjs → types-DROWRxYV.mjs} +0 -0
@@ -118,4 +118,4 @@ interface PostgresConfig {
118
118
  declare function postgres(config: PostgresConfig): DatabaseDescriptor;
119
119
  //#endregion
120
120
  export { SqliteConfig as a, sqlite as c, PostgresConfig as i, DatabaseDialectType as n, libsql as o, LibsqlConfig as r, postgres as s, DatabaseDescriptor as t };
121
- //# sourceMappingURL=adapters-u037EnTR.d.mts.map
121
+ //# sourceMappingURL=adapters-hUy8vOB-.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapters-u037EnTR.d.mts","names":[],"sources":["../src/db/adapters.ts"],"mappings":";;AA0BA;;;;;AAKA;;;;;;;;;;;AAqBA;;;;;AAOA;;;KAjCY,mBAAA;;AAsDZ;;UAjDiB,kBAAA;EAChB,UAAA;EACA,MAAA;EACA,IAAA,EAAM,mBAAA;EA8CuC;;;AAqB9C;;;;;;;;;AAWA;;EA/DC,oBAAA;AAAA;AAAA,UAGgB,YAAA;EA8DhB;;;EA1DA,GAAA;AAAA;AAAA,UAGgB,YAAA;EA6DhB;;;EAzDA,GAAA;EAyD0B;AAa3B;;EAlEC,SAAA;AAAA;;;;;;;;;;;iBAae,MAAA,CAAO,MAAA,EAAQ,YAAA,GAAe,kBAAA;;;;;;;;;;;;;;iBAqB9B,MAAA,CAAO,MAAA,EAAQ,YAAA,GAAe,kBAAA;;;;UAW7B,cAAA;EAChB,gBAAA;EACA,IAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA;EACA,GAAA;EACA,IAAA;IAAS,GAAA;IAAc,GAAA;EAAA;AAAA;;;;;;;;;;;iBAaR,QAAA,CAAS,MAAA,EAAQ,cAAA,GAAiB,kBAAA"}
1
+ {"version":3,"file":"adapters-hUy8vOB-.d.mts","names":[],"sources":["../src/db/adapters.ts"],"mappings":";;AA0BA;;;;;AAKA;;;;;;;;;;;AAqBA;;;;;AAOA;;;KAjCY,mBAAA;;AAsDZ;;UAjDiB,kBAAA;EAChB,UAAA;EACA,MAAA;EACA,IAAA,EAAM,mBAAA;EA8CuC;;;AAqB9C;;;;;;;;;AAWA;;EA/DC,oBAAA;AAAA;AAAA,UAGgB,YAAA;EA8DhB;;;EA1DA,GAAA;AAAA;AAAA,UAGgB,YAAA;EA6DhB;;;EAzDA,GAAA;EAyD0B;AAa3B;;EAlEC,SAAA;AAAA;;;;;;;;;;;iBAae,MAAA,CAAO,MAAA,EAAQ,YAAA,GAAe,kBAAA;;;;;;;;;;;;;;iBAqB9B,MAAA,CAAO,MAAA,EAAQ,YAAA,GAAe,kBAAA;;;;UAW7B,cAAA;EAChB,gBAAA;EACA,IAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA;EACA,GAAA;EACA,IAAA;IAAS,GAAA;IAAc,GAAA;EAAA;AAAA;;;;;;;;;;;iBAaR,QAAA,CAAS,MAAA,EAAQ,cAAA,GAAiB,kBAAA"}
@@ -1,4 +1,4 @@
1
- import { t as getEnvAllowedOrigins } from "./public-url-CTVqgMmg.mjs";
1
+ import { t as getEnvAllowedOrigins } from "./public-url-Danv47cS.mjs";
2
2
 
3
3
  //#region src/auth/allowed-origins.ts
4
4
  /**
@@ -113,4 +113,4 @@ function isIPLiteralHostname(h) {
113
113
 
114
114
  //#endregion
115
115
  export { validateAllowedOrigins as n, validateOriginShape as r, getConfiguredAllowedOrigins as t };
116
- //# sourceMappingURL=allowed-origins-D5FxMUo8.mjs.map
116
+ //# sourceMappingURL=allowed-origins-CRsJ6BPM.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"allowed-origins-D5FxMUo8.mjs","names":[],"sources":["../src/auth/allowed-origins.ts"],"sourcesContent":["/**\n * Resolution and validation of multi-origin passkey verification.\n *\n * `allowedOrigins` lets one EmDash deployment accept passkey assertions from\n * several hostnames sharing the same `rpId` (e.g. apex + preview/staging\n * subdomains under one registrable parent). Origins come from two sources:\n *\n * - `EmDashConfig.allowedOrigins` (declared in `astro.config.mjs`)\n * - `EMDASH_ALLOWED_ORIGINS` (comma-separated runtime env var)\n *\n * Sources are merged (union of permissions, deduplicated). Each entry is\n * validated against `siteUrl` to fail loud on dead config the browser would\n * never honor.\n */\n\nimport { getEnvAllowedOrigins } from \"../api/public-url.js\";\nimport type { EmDashConfig } from \"../astro/integration/runtime.js\";\n\nexport type AllowedOriginSource = \"config.allowedOrigins\" | \"EMDASH_ALLOWED_ORIGINS\";\n\nexport interface TaggedOrigin {\n\t/** Raw entry as declared by the operator. */\n\torigin: string;\n\t/** Where the entry came from (used for source-attributed errors). */\n\tsource: AllowedOriginSource;\n}\n\n/**\n * Collect raw allowedOrigins from config and env, source-tagged.\n *\n * Returns raw values — the caller is expected to pass the result through\n * `validateAllowedOrigins()` before use in passkey verification.\n */\nexport function getConfiguredAllowedOrigins(config?: EmDashConfig): TaggedOrigin[] {\n\tconst tagged: TaggedOrigin[] = [];\n\tif (config?.allowedOrigins) {\n\t\tfor (const origin of config.allowedOrigins) {\n\t\t\tif (origin) tagged.push({ origin, source: \"config.allowedOrigins\" });\n\t\t}\n\t}\n\tfor (const origin of getEnvAllowedOrigins()) {\n\t\ttagged.push({ origin, source: \"EMDASH_ALLOWED_ORIGINS\" });\n\t}\n\treturn tagged;\n}\n\n/**\n * Validate per-entry shape rules (no `siteUrl` needed):\n * - parses as `URL`\n * - protocol is `http:` or `https:`\n * - hostname has no trailing dot (`example.com.` rejected)\n * - hostname has no empty labels (`foo..example.com` rejected)\n *\n * Returns the deduplicated, normalized origin form (`URL.origin`) of every\n * input, in input order. Throws on the first violation with a source-tagged\n * error message.\n */\nexport function validateOriginShape(tagged: TaggedOrigin[]): string[] {\n\tconst normalized: string[] = [];\n\tconst seen = new Set<string>();\n\tfor (const { origin, source } of tagged) {\n\t\tlet parsed: URL;\n\t\ttry {\n\t\t\tparsed = new URL(origin);\n\t\t} catch (e) {\n\t\t\tthrow configError(source, `invalid URL: \"${origin}\"`, e);\n\t\t}\n\t\tif (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\n\t\t\tthrow configError(\n\t\t\t\tsource,\n\t\t\t\t`origin must be http or https: \"${origin}\" (got ${parsed.protocol})`,\n\t\t\t);\n\t\t}\n\t\tif (parsed.hostname.endsWith(\".\")) {\n\t\t\tthrow configError(\n\t\t\t\tsource,\n\t\t\t\t`hostname has a trailing dot: \"${origin}\". Remove the trailing dot — assertion origins from the browser do not include it.`,\n\t\t\t);\n\t\t}\n\t\tif (parsed.hostname.split(\".\").includes(\"\")) {\n\t\t\tthrow configError(source, `hostname has empty labels: \"${origin}\"`);\n\t\t}\n\t\tif (!seen.has(parsed.origin)) {\n\t\t\tseen.add(parsed.origin);\n\t\t\tnormalized.push(parsed.origin);\n\t\t}\n\t}\n\treturn normalized;\n}\n\n/**\n * Validate the effective merged allowedOrigins set against `siteUrl`.\n *\n * Performs `validateOriginShape()` plus the siteUrl-dependent rules:\n * - Rule A: non-empty origins ⇒ `siteUrl` is set\n * - `siteUrl` hostname is not an IP literal (multi-origin requires a domain)\n * - `siteUrl` hostname has no trailing dot (cannot match assertion origins)\n * - Rule B: each origin's hostname is `siteHost` exactly or a subdomain\n *\n * Throws on first violation. Returns the deduplicated normalized origins.\n *\n * Use this at the runtime chokepoint (where config + env are merged into the\n * effective set). At Astro integration init, prefer `validateOriginShape()`\n * for shape-only checks on `config.allowedOrigins`, since `siteUrl` may be\n * supplied at runtime via `EMDASH_SITE_URL`.\n */\nexport function validateAllowedOrigins(\n\tsiteUrl: string | undefined,\n\ttagged: TaggedOrigin[],\n): string[] {\n\tconst normalized = validateOriginShape(tagged);\n\tif (normalized.length === 0) return normalized;\n\n\tif (!siteUrl) {\n\t\tthrow new Error(\n\t\t\t`EmDash config error: allowedOrigins is set (${normalized.length} ${\n\t\t\t\tnormalized.length === 1 ? \"entry\" : \"entries\"\n\t\t\t}) but siteUrl is not. Without a canonical siteUrl, rpId is derived from the request hostname, defeating multi-origin passkeys. Set siteUrl in astro.config.mjs or via EMDASH_SITE_URL.`,\n\t\t);\n\t}\n\n\tlet siteHost: string;\n\ttry {\n\t\tsiteHost = new URL(siteUrl).hostname;\n\t} catch (e) {\n\t\tthrow new Error(`EmDash config error: siteUrl is not a valid URL: \"${siteUrl}\"`, {\n\t\t\tcause: e,\n\t\t});\n\t}\n\n\tif (siteHost.endsWith(\".\")) {\n\t\tthrow new Error(\n\t\t\t`EmDash config error: siteUrl \"${siteUrl}\" has a trailing-dot hostname, which cannot match assertion origins. Remove the trailing dot when using allowedOrigins.`,\n\t\t);\n\t}\n\tif (isIPLiteralHostname(siteHost)) {\n\t\tthrow new Error(\n\t\t\t`EmDash config error: siteUrl \"${siteUrl}\" uses an IP-literal hostname. Multi-origin passkeys require a domain-based siteUrl — IP addresses cannot have valid subdomains for WebAuthn rpId.`,\n\t\t);\n\t}\n\n\tfor (const { origin, source } of tagged) {\n\t\tconst h = new URL(origin).hostname;\n\t\tif (h !== siteHost && !h.endsWith(\".\" + siteHost)) {\n\t\t\tthrow configError(\n\t\t\t\tsource,\n\t\t\t\t`\"${origin}\" is not a subdomain of siteUrl \"${siteUrl}\". Allowed origins must be the same hostname as siteUrl or a subdomain of it.`,\n\t\t\t);\n\t\t}\n\t}\n\n\treturn normalized;\n}\n\nfunction configError(source: AllowedOriginSource, detail: string, cause?: unknown): Error {\n\tconst err = new Error(`EmDash config error in ${source}: ${detail}`);\n\tif (cause !== undefined) (err as Error & { cause?: unknown }).cause = cause;\n\treturn err;\n}\n\nconst IPV4_DOTTED_DECIMAL_RE = /^\\d+(\\.\\d+){3}$/;\n\nfunction isIPLiteralHostname(h: string): boolean {\n\t// IPv6 hostnames are bracketed by URL.hostname, e.g. \"[::1]\"\n\tif (h.startsWith(\"[\")) return true;\n\t// IPv4 dotted-decimal\n\treturn IPV4_DOTTED_DECIMAL_RE.test(h);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiCA,SAAgB,4BAA4B,QAAuC;CAClF,MAAM,SAAyB,EAAE;AACjC,KAAI,QAAQ,gBACX;OAAK,MAAM,UAAU,OAAO,eAC3B,KAAI,OAAQ,QAAO,KAAK;GAAE;GAAQ,QAAQ;GAAyB,CAAC;;AAGtE,MAAK,MAAM,UAAU,sBAAsB,CAC1C,QAAO,KAAK;EAAE;EAAQ,QAAQ;EAA0B,CAAC;AAE1D,QAAO;;;;;;;;;;;;;AAcR,SAAgB,oBAAoB,QAAkC;CACrE,MAAM,aAAuB,EAAE;CAC/B,MAAM,uBAAO,IAAI,KAAa;AAC9B,MAAK,MAAM,EAAE,QAAQ,YAAY,QAAQ;EACxC,IAAI;AACJ,MAAI;AACH,YAAS,IAAI,IAAI,OAAO;WAChB,GAAG;AACX,SAAM,YAAY,QAAQ,iBAAiB,OAAO,IAAI,EAAE;;AAEzD,MAAI,OAAO,aAAa,WAAW,OAAO,aAAa,SACtD,OAAM,YACL,QACA,kCAAkC,OAAO,SAAS,OAAO,SAAS,GAClE;AAEF,MAAI,OAAO,SAAS,SAAS,IAAI,CAChC,OAAM,YACL,QACA,iCAAiC,OAAO,oFACxC;AAEF,MAAI,OAAO,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,CAC1C,OAAM,YAAY,QAAQ,+BAA+B,OAAO,GAAG;AAEpE,MAAI,CAAC,KAAK,IAAI,OAAO,OAAO,EAAE;AAC7B,QAAK,IAAI,OAAO,OAAO;AACvB,cAAW,KAAK,OAAO,OAAO;;;AAGhC,QAAO;;;;;;;;;;;;;;;;;;AAmBR,SAAgB,uBACf,SACA,QACW;CACX,MAAM,aAAa,oBAAoB,OAAO;AAC9C,KAAI,WAAW,WAAW,EAAG,QAAO;AAEpC,KAAI,CAAC,QACJ,OAAM,IAAI,MACT,+CAA+C,WAAW,OAAO,GAChE,WAAW,WAAW,IAAI,UAAU,UACpC,wLACD;CAGF,IAAI;AACJ,KAAI;AACH,aAAW,IAAI,IAAI,QAAQ,CAAC;UACpB,GAAG;AACX,QAAM,IAAI,MAAM,qDAAqD,QAAQ,IAAI,EAChF,OAAO,GACP,CAAC;;AAGH,KAAI,SAAS,SAAS,IAAI,CACzB,OAAM,IAAI,MACT,iCAAiC,QAAQ,yHACzC;AAEF,KAAI,oBAAoB,SAAS,CAChC,OAAM,IAAI,MACT,iCAAiC,QAAQ,oJACzC;AAGF,MAAK,MAAM,EAAE,QAAQ,YAAY,QAAQ;EACxC,MAAM,IAAI,IAAI,IAAI,OAAO,CAAC;AAC1B,MAAI,MAAM,YAAY,CAAC,EAAE,SAAS,MAAM,SAAS,CAChD,OAAM,YACL,QACA,IAAI,OAAO,mCAAmC,QAAQ,+EACtD;;AAIH,QAAO;;AAGR,SAAS,YAAY,QAA6B,QAAgB,OAAwB;CACzF,MAAM,sBAAM,IAAI,MAAM,0BAA0B,OAAO,IAAI,SAAS;AACpE,KAAI,UAAU,OAAW,CAAC,IAAoC,QAAQ;AACtE,QAAO;;AAGR,MAAM,yBAAyB;AAE/B,SAAS,oBAAoB,GAAoB;AAEhD,KAAI,EAAE,WAAW,IAAI,CAAE,QAAO;AAE9B,QAAO,uBAAuB,KAAK,EAAE"}
1
+ {"version":3,"file":"allowed-origins-CRsJ6BPM.mjs","names":[],"sources":["../src/auth/allowed-origins.ts"],"sourcesContent":["/**\n * Resolution and validation of multi-origin passkey verification.\n *\n * `allowedOrigins` lets one EmDash deployment accept passkey assertions from\n * several hostnames sharing the same `rpId` (e.g. apex + preview/staging\n * subdomains under one registrable parent). Origins come from two sources:\n *\n * - `EmDashConfig.allowedOrigins` (declared in `astro.config.mjs`)\n * - `EMDASH_ALLOWED_ORIGINS` (comma-separated runtime env var)\n *\n * Sources are merged (union of permissions, deduplicated). Each entry is\n * validated against `siteUrl` to fail loud on dead config the browser would\n * never honor.\n */\n\nimport { getEnvAllowedOrigins } from \"../api/public-url.js\";\nimport type { EmDashConfig } from \"../astro/integration/runtime.js\";\n\nexport type AllowedOriginSource = \"config.allowedOrigins\" | \"EMDASH_ALLOWED_ORIGINS\";\n\nexport interface TaggedOrigin {\n\t/** Raw entry as declared by the operator. */\n\torigin: string;\n\t/** Where the entry came from (used for source-attributed errors). */\n\tsource: AllowedOriginSource;\n}\n\n/**\n * Collect raw allowedOrigins from config and env, source-tagged.\n *\n * Returns raw values — the caller is expected to pass the result through\n * `validateAllowedOrigins()` before use in passkey verification.\n */\nexport function getConfiguredAllowedOrigins(config?: EmDashConfig): TaggedOrigin[] {\n\tconst tagged: TaggedOrigin[] = [];\n\tif (config?.allowedOrigins) {\n\t\tfor (const origin of config.allowedOrigins) {\n\t\t\tif (origin) tagged.push({ origin, source: \"config.allowedOrigins\" });\n\t\t}\n\t}\n\tfor (const origin of getEnvAllowedOrigins()) {\n\t\ttagged.push({ origin, source: \"EMDASH_ALLOWED_ORIGINS\" });\n\t}\n\treturn tagged;\n}\n\n/**\n * Validate per-entry shape rules (no `siteUrl` needed):\n * - parses as `URL`\n * - protocol is `http:` or `https:`\n * - hostname has no trailing dot (`example.com.` rejected)\n * - hostname has no empty labels (`foo..example.com` rejected)\n *\n * Returns the deduplicated, normalized origin form (`URL.origin`) of every\n * input, in input order. Throws on the first violation with a source-tagged\n * error message.\n */\nexport function validateOriginShape(tagged: TaggedOrigin[]): string[] {\n\tconst normalized: string[] = [];\n\tconst seen = new Set<string>();\n\tfor (const { origin, source } of tagged) {\n\t\tlet parsed: URL;\n\t\ttry {\n\t\t\tparsed = new URL(origin);\n\t\t} catch (e) {\n\t\t\tthrow configError(source, `invalid URL: \"${origin}\"`, e);\n\t\t}\n\t\tif (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\n\t\t\tthrow configError(\n\t\t\t\tsource,\n\t\t\t\t`origin must be http or https: \"${origin}\" (got ${parsed.protocol})`,\n\t\t\t);\n\t\t}\n\t\tif (parsed.hostname.endsWith(\".\")) {\n\t\t\tthrow configError(\n\t\t\t\tsource,\n\t\t\t\t`hostname has a trailing dot: \"${origin}\". Remove the trailing dot — assertion origins from the browser do not include it.`,\n\t\t\t);\n\t\t}\n\t\tif (parsed.hostname.split(\".\").includes(\"\")) {\n\t\t\tthrow configError(source, `hostname has empty labels: \"${origin}\"`);\n\t\t}\n\t\tif (!seen.has(parsed.origin)) {\n\t\t\tseen.add(parsed.origin);\n\t\t\tnormalized.push(parsed.origin);\n\t\t}\n\t}\n\treturn normalized;\n}\n\n/**\n * Validate the effective merged allowedOrigins set against `siteUrl`.\n *\n * Performs `validateOriginShape()` plus the siteUrl-dependent rules:\n * - Rule A: non-empty origins ⇒ `siteUrl` is set\n * - `siteUrl` hostname is not an IP literal (multi-origin requires a domain)\n * - `siteUrl` hostname has no trailing dot (cannot match assertion origins)\n * - Rule B: each origin's hostname is `siteHost` exactly or a subdomain\n *\n * Throws on first violation. Returns the deduplicated normalized origins.\n *\n * Use this at the runtime chokepoint (where config + env are merged into the\n * effective set). At Astro integration init, prefer `validateOriginShape()`\n * for shape-only checks on `config.allowedOrigins`, since `siteUrl` may be\n * supplied at runtime via `EMDASH_SITE_URL`.\n */\nexport function validateAllowedOrigins(\n\tsiteUrl: string | undefined,\n\ttagged: TaggedOrigin[],\n): string[] {\n\tconst normalized = validateOriginShape(tagged);\n\tif (normalized.length === 0) return normalized;\n\n\tif (!siteUrl) {\n\t\tthrow new Error(\n\t\t\t`EmDash config error: allowedOrigins is set (${normalized.length} ${\n\t\t\t\tnormalized.length === 1 ? \"entry\" : \"entries\"\n\t\t\t}) but siteUrl is not. Without a canonical siteUrl, rpId is derived from the request hostname, defeating multi-origin passkeys. Set siteUrl in astro.config.mjs or via EMDASH_SITE_URL.`,\n\t\t);\n\t}\n\n\tlet siteHost: string;\n\ttry {\n\t\tsiteHost = new URL(siteUrl).hostname;\n\t} catch (e) {\n\t\tthrow new Error(`EmDash config error: siteUrl is not a valid URL: \"${siteUrl}\"`, {\n\t\t\tcause: e,\n\t\t});\n\t}\n\n\tif (siteHost.endsWith(\".\")) {\n\t\tthrow new Error(\n\t\t\t`EmDash config error: siteUrl \"${siteUrl}\" has a trailing-dot hostname, which cannot match assertion origins. Remove the trailing dot when using allowedOrigins.`,\n\t\t);\n\t}\n\tif (isIPLiteralHostname(siteHost)) {\n\t\tthrow new Error(\n\t\t\t`EmDash config error: siteUrl \"${siteUrl}\" uses an IP-literal hostname. Multi-origin passkeys require a domain-based siteUrl — IP addresses cannot have valid subdomains for WebAuthn rpId.`,\n\t\t);\n\t}\n\n\tfor (const { origin, source } of tagged) {\n\t\tconst h = new URL(origin).hostname;\n\t\tif (h !== siteHost && !h.endsWith(\".\" + siteHost)) {\n\t\t\tthrow configError(\n\t\t\t\tsource,\n\t\t\t\t`\"${origin}\" is not a subdomain of siteUrl \"${siteUrl}\". Allowed origins must be the same hostname as siteUrl or a subdomain of it.`,\n\t\t\t);\n\t\t}\n\t}\n\n\treturn normalized;\n}\n\nfunction configError(source: AllowedOriginSource, detail: string, cause?: unknown): Error {\n\tconst err = new Error(`EmDash config error in ${source}: ${detail}`);\n\tif (cause !== undefined) (err as Error & { cause?: unknown }).cause = cause;\n\treturn err;\n}\n\nconst IPV4_DOTTED_DECIMAL_RE = /^\\d+(\\.\\d+){3}$/;\n\nfunction isIPLiteralHostname(h: string): boolean {\n\t// IPv6 hostnames are bracketed by URL.hostname, e.g. \"[::1]\"\n\tif (h.startsWith(\"[\")) return true;\n\t// IPv4 dotted-decimal\n\treturn IPV4_DOTTED_DECIMAL_RE.test(h);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiCA,SAAgB,4BAA4B,QAAuC;CAClF,MAAM,SAAyB,EAAE;AACjC,KAAI,QAAQ,gBACX;OAAK,MAAM,UAAU,OAAO,eAC3B,KAAI,OAAQ,QAAO,KAAK;GAAE;GAAQ,QAAQ;GAAyB,CAAC;;AAGtE,MAAK,MAAM,UAAU,sBAAsB,CAC1C,QAAO,KAAK;EAAE;EAAQ,QAAQ;EAA0B,CAAC;AAE1D,QAAO;;;;;;;;;;;;;AAcR,SAAgB,oBAAoB,QAAkC;CACrE,MAAM,aAAuB,EAAE;CAC/B,MAAM,uBAAO,IAAI,KAAa;AAC9B,MAAK,MAAM,EAAE,QAAQ,YAAY,QAAQ;EACxC,IAAI;AACJ,MAAI;AACH,YAAS,IAAI,IAAI,OAAO;WAChB,GAAG;AACX,SAAM,YAAY,QAAQ,iBAAiB,OAAO,IAAI,EAAE;;AAEzD,MAAI,OAAO,aAAa,WAAW,OAAO,aAAa,SACtD,OAAM,YACL,QACA,kCAAkC,OAAO,SAAS,OAAO,SAAS,GAClE;AAEF,MAAI,OAAO,SAAS,SAAS,IAAI,CAChC,OAAM,YACL,QACA,iCAAiC,OAAO,oFACxC;AAEF,MAAI,OAAO,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,CAC1C,OAAM,YAAY,QAAQ,+BAA+B,OAAO,GAAG;AAEpE,MAAI,CAAC,KAAK,IAAI,OAAO,OAAO,EAAE;AAC7B,QAAK,IAAI,OAAO,OAAO;AACvB,cAAW,KAAK,OAAO,OAAO;;;AAGhC,QAAO;;;;;;;;;;;;;;;;;;AAmBR,SAAgB,uBACf,SACA,QACW;CACX,MAAM,aAAa,oBAAoB,OAAO;AAC9C,KAAI,WAAW,WAAW,EAAG,QAAO;AAEpC,KAAI,CAAC,QACJ,OAAM,IAAI,MACT,+CAA+C,WAAW,OAAO,GAChE,WAAW,WAAW,IAAI,UAAU,UACpC,wLACD;CAGF,IAAI;AACJ,KAAI;AACH,aAAW,IAAI,IAAI,QAAQ,CAAC;UACpB,GAAG;AACX,QAAM,IAAI,MAAM,qDAAqD,QAAQ,IAAI,EAChF,OAAO,GACP,CAAC;;AAGH,KAAI,SAAS,SAAS,IAAI,CACzB,OAAM,IAAI,MACT,iCAAiC,QAAQ,yHACzC;AAEF,KAAI,oBAAoB,SAAS,CAChC,OAAM,IAAI,MACT,iCAAiC,QAAQ,oJACzC;AAGF,MAAK,MAAM,EAAE,QAAQ,YAAY,QAAQ;EACxC,MAAM,IAAI,IAAI,IAAI,OAAO,CAAC;AAC1B,MAAI,MAAM,YAAY,CAAC,EAAE,SAAS,MAAM,SAAS,CAChD,OAAM,YACL,QACA,IAAI,OAAO,mCAAmC,QAAQ,+EACtD;;AAIH,QAAO;;AAGR,SAAS,YAAY,QAA6B,QAAgB,OAAwB;CACzF,MAAM,sBAAM,IAAI,MAAM,0BAA0B,OAAO,IAAI,SAAS;AACpE,KAAI,UAAU,OAAW,CAAC,IAAoC,QAAQ;AACtE,QAAO;;AAGR,MAAM,yBAAyB;AAE/B,SAAS,oBAAoB,GAAoB;AAEhD,KAAI,EAAE,WAAW,IAAI,CAAE,QAAO;AAE9B,QAAO,uBAAuB,KAAK,EAAE"}
@@ -1,6 +1,6 @@
1
- import { a as parseQuery, c as handleError, i as parseBody, n as ParseResult, o as apiError, r as isParseError, s as apiSuccess, t as OptionsRepository } from "../options-41nCWqi9.mjs";
2
- import { t as Database } from "../types-xIfVRNLp.mjs";
3
- import { Ot as StorageCollection, kt as StorageCollectionConfig } from "../types-BYnDBVwe.mjs";
1
+ import { a as parseQuery, c as handleError, i as parseBody, n as ParseResult, o as apiError, r as isParseError, s as apiSuccess, t as OptionsRepository } from "../options-iMpRRxIe.mjs";
2
+ import { t as Database } from "../types-_HFLRzTn.mjs";
3
+ import { Ot as StorageCollection, kt as StorageCollectionConfig } from "../types-CGbYowGQ.mjs";
4
4
  import { Kysely } from "kysely";
5
5
 
6
6
  //#region src/api/setup-complete.d.ts
@@ -1,25 +1,26 @@
1
1
  import "../dialect-helpers-DRI5pyY3.mjs";
2
2
  import "../after-B1IIdH3Y.mjs";
3
- import "../object-cache-CHbHv83-.mjs";
4
- import "../content-RmfHoWqK.mjs";
3
+ import "../object-cache-Bok5j2ae.mjs";
4
+ import "../content-DhgEth4k.mjs";
5
5
  import "../base64-CmWvODNW.mjs";
6
- import "../types-DU4TSFS5.mjs";
7
- import "../media-C0nRRfs1.mjs";
8
- import "../user-DgGbKL9s.mjs";
6
+ import "../types-CuW0zWDA.mjs";
7
+ import "../media-BrXIaMFN.mjs";
8
+ import "../user-BjAOvU3Z.mjs";
9
9
  import { t as OptionsRepository } from "../options-DTTML-Tx.mjs";
10
- import { r as createStorageAccess } from "../context-CzUU_WzL.mjs";
10
+ import { r as createStorageAccess } from "../context-CUsR9dXL.mjs";
11
11
  import "../request-cache-KCNHp_RJ.mjs";
12
12
  import "../enrich-BQ0mxJRs.mjs";
13
- import "../seo-Dd3tbY_k.mjs";
14
- import "../loader-4K37qA-y.mjs";
15
- import "../settings-BX8cWBus.mjs";
16
- import "../ssrf-BRKb343l.mjs";
17
- import { n as apiSuccess, r as handleError, t as apiError } from "../error-BHkLZk-w.mjs";
18
- import { i as parseQuery, n as parseBody, t as isParseError } from "../parse-CqyZj3Hp.mjs";
19
- import "../ssrf-CcX9zvMK.mjs";
20
- import "../cron-C5LVoNmP.mjs";
21
- import { n as getPublicOrigin } from "../public-url-CTVqgMmg.mjs";
22
- import { t as finalizeSetup } from "../setup-complete-gEiySUc-.mjs";
13
+ import "../seo-DXu2UQnC.mjs";
14
+ import "../content-refresh-CA4uKwzH.mjs";
15
+ import "../loader-CB6YHeul.mjs";
16
+ import "../settings-zhmdKyJQ.mjs";
17
+ import "../ssrf-1g7usGBg.mjs";
18
+ import { n as apiSuccess, r as handleError, t as apiError } from "../error-CkAseSqZ.mjs";
19
+ import { i as parseQuery, n as parseBody, t as isParseError } from "../parse-GmjecGct.mjs";
20
+ import "../ssrf-CmuGgCq3.mjs";
21
+ import "../cron-v4FTEFR_.mjs";
22
+ import { n as getPublicOrigin } from "../public-url-Danv47cS.mjs";
23
+ import { t as finalizeSetup } from "../setup-complete-Cb3LRyzy.mjs";
23
24
 
24
25
  //#region src/api/auth-storage.ts
25
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"route-utils.mjs","names":[],"sources":["../../src/api/auth-storage.ts"],"sourcesContent":["/**\n * Auth provider storage helper.\n *\n * Gives auth provider routes access to plugin-style storage collections\n * namespaced under `auth:<providerId>`. Reuses the existing `_plugin_storage`\n * table and `PluginStorageRepository` infrastructure.\n */\n\nimport type { Kysely } from \"kysely\";\n\nimport type { Database } from \"../database/types.js\";\nimport { createStorageAccess } from \"../plugins/context.js\";\nimport type { StorageCollection, StorageCollectionConfig } from \"../plugins/types.js\";\n\n/**\n * Get storage collections for an auth provider.\n *\n * Returns a record of `StorageCollection` instances, one per declared\n * collection in the provider's `storage` config. Data is stored in the\n * shared `_plugin_storage` table under the namespace `auth:<providerId>`.\n *\n * @example\n * ```ts\n * const storage = getAuthProviderStorage(emdash.db, \"atproto\", {\n * states: { indexes: [] },\n * sessions: { indexes: [] },\n * });\n * const session = await storage.sessions.get(sessionId);\n * ```\n */\nexport function getAuthProviderStorage(\n\tdb: Kysely<Database>,\n\tproviderId: string,\n\tstorageConfig: Record<string, StorageCollectionConfig>,\n): Record<string, StorageCollection> {\n\treturn createStorageAccess(db, `auth:${providerId}`, storageConfig);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,SAAgB,uBACf,IACA,YACA,eACoC;AACpC,QAAO,oBAAoB,IAAI,QAAQ,cAAc,cAAc"}
1
+ {"version":3,"file":"route-utils.mjs","names":[],"sources":["../../src/api/auth-storage.ts"],"sourcesContent":["/**\n * Auth provider storage helper.\n *\n * Gives auth provider routes access to plugin-style storage collections\n * namespaced under `auth:<providerId>`. Reuses the existing `_plugin_storage`\n * table and `PluginStorageRepository` infrastructure.\n */\n\nimport type { Kysely } from \"kysely\";\n\nimport type { Database } from \"../database/types.js\";\nimport { createStorageAccess } from \"../plugins/context.js\";\nimport type { StorageCollection, StorageCollectionConfig } from \"../plugins/types.js\";\n\n/**\n * Get storage collections for an auth provider.\n *\n * Returns a record of `StorageCollection` instances, one per declared\n * collection in the provider's `storage` config. Data is stored in the\n * shared `_plugin_storage` table under the namespace `auth:<providerId>`.\n *\n * @example\n * ```ts\n * const storage = getAuthProviderStorage(emdash.db, \"atproto\", {\n * states: { indexes: [] },\n * sessions: { indexes: [] },\n * });\n * const session = await storage.sessions.get(sessionId);\n * ```\n */\nexport function getAuthProviderStorage(\n\tdb: Kysely<Database>,\n\tproviderId: string,\n\tstorageConfig: Record<string, StorageCollectionConfig>,\n): Record<string, StorageCollection> {\n\treturn createStorageAccess(db, `auth:${providerId}`, storageConfig);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,SAAgB,uBACf,IACA,YACA,eACoC;AACpC,QAAO,oBAAoB,IAAI,QAAQ,cAAc,cAAc"}
@@ -1,2 +1,2 @@
1
- import { $ as wpRewriteUrlsBody, $n as trashedContentItemSchema, $t as commentSchema, A as reorderWidgetsBody, An as mediaProviderListQuery, At as menuSchema, B as userSchema, Bn as contentListQuery, Bt as magicLinkSendBody, C as notFoundSummarySchema, Cn as formatFileSize, Ct as termWithCountSchema, D as updateRedirectBody, Dn as mediaItemSchema, Dt as menuItemSchema, E as redirectsListQuery, En as mediaExistingResponseSchema, Et as createMenuItemBody, F as widgetSchema, Fn as contentAuthorSchema, Ft as updateMenuItemBody, G as setupAdminVerifyBody, Gn as contentScheduleBody, Gt as passkeyVerifyBody, H as usersListQuery, Hn as contentPreviewUrlBody, Ht as passkeyRegisterOptionsBody, I as allowedDomainCreateBody, In as contentAuthorsResponseSchema, It as authMeActionBody, J as importProbeBody, Jn as contentTermsBody, Jt as adminCommentListResponseSchema, K as setupAtprotoAdminBody, Kn as contentSeoInput, Kt as signupCompleteBody, L as allowedDomainUpdateBody, Ln as contentCompareResponseSchema, Lt as inviteCompleteBody, M as widgetAreaSchema, Mn as mediaUpdateBody, Mt as menuWithItemsSchema, N as widgetAreaWithWidgetsAndCountSchema, Nn as mediaUploadUrlBody, Nt as reorderMenuItemsBody, O as createWidgetAreaBody, On as mediaListQuery, Ot as menuItemTypeEnum, P as widgetAreaWithWidgetsSchema, Pn as mediaUploadUrlResponseSchema, Pt as updateMenuBody, Q as wpPrepareBody, Qn as contentUpdateBody, Qt as commentListQuery, R as userDetailSchema, Rn as contentCreateBody, Rt as inviteCreateBody, S as notFoundSummaryResponseSchema, Sn as DEFAULT_MAX_UPLOAD_SIZE, St as termTranslationsSchema, T as redirectSchema, Tn as mediaConfirmResponseSchema, Tt as createMenuBody, U as atprotoLoginBody, Un as contentPublishBody, Ut as passkeyRegisterVerifyBody, V as userUpdateBody, Vn as contentListResponseSchema, Vt as passkeyOptionsBody, W as setupAdminBody, Wn as contentResponseSchema, Wt as passkeyRenameBody, X as wpPluginAnalyzeBody, Xn as contentTranslationsResponseSchema, Xt as commentBulkResponseSchema, Y as wpMediaImportBody, Yn as contentTranslationSchema, Yt as commentBulkBody, Z as wpPluginExecuteBody, Zn as contentTrashQuery, Zt as commentCountsResponseSchema, _ as notFoundEntrySchema, _n as orphanedTableListResponseSchema, _t as taxonomyListResponseSchema, a as bylineFieldUpdateBody, an as collectionGetQuery, ar as deleteResponseSchema, at as searchSuggestQuery, b as notFoundPruneBody, bn as updateCollectionBody, bt as termResponseSchema, c as bylineCreditSchema, cn as collectionSchema, cr as localeFilterQuery, ct as createSectionBody, d as bylineTranslationCreateBody, dn as createFieldBody, dr as slugPattern, dt as sectionsListQuery, en as commentStatusBody, er as trashedContentListResponseSchema, et as searchEnableBody, f as bylineTranslationsResponseSchema, fn as fieldListResponseSchema, fr as successEnvelope, ft as updateSectionBody, g as createRedirectBody, gn as orphanRegisterBody, gt as taxonomyDefTranslationsSchema, h as contentBylineInputSchema, hn as fieldSchema, ht as taxonomyDefSchema, i as bylineFieldReorderBody, in as publicCommentSchema, ir as cursorPaginationQuery, it as searchResultSchema, j as updateWidgetBody, jn as mediaResponseSchema, jt as menuTranslationsSchema, k as createWidgetBody, kn as mediaListResponseSchema, kt as menuListItemSchema, l as bylineListResponseSchema, ln as collectionWithFieldsResponseSchema, lr as offsetPaginationQuery, lt as sectionListResponseSchema, m as bylinesListQuery, mn as fieldResponseSchema, mt as createTermBody, n as bylineFieldDefinitionSchema, nn as createReactionBody, nr as apiErrorSchema, nt as searchRebuildBody, o as bylineFieldUsageResponseSchema, on as collectionListResponseSchema, or as httpUrl, ot as settingsUpdateBody, p as bylineUpdateBody, pn as fieldReorderBody, pt as createTaxonomyDefBody, q as setupBody, qn as contentSeoSchema, qt as signupRequestBody, r as bylineFieldListResponseSchema, rn as publicCommentListResponseSchema, rr as countResponseSchema, rt as searchResponseSchema, s as bylineCreateBody, sn as collectionResponseSchema, sr as localeCode, st as siteSettingsSchema, t as bylineFieldCreateBody, tn as createCommentBody, tr as VALID_ROLE_LEVELS, tt as searchQuery, u as bylineSummarySchema, un as createCollectionBody, ur as roleLevel, ut as sectionSchema, v as notFoundListQuery, vn as orphanedTableSchema, vt as termGetResponseSchema, w as redirectListResponseSchema, wn as mediaConfirmBody, wt as updateTermBody, x as notFoundSummaryQuery, xn as updateFieldBody, xt as termSchema, y as notFoundListResponseSchema, yn as schemaExportQuery, yt as termListResponseSchema, z as userListResponseSchema, zn as contentItemSchema, zt as inviteRegisterOptionsBody } from "../../byline-fields-CtQ6blXd.mjs";
1
+ import { $ as wpRewriteUrlsBody, $n as trashedContentItemSchema, $t as commentSchema, A as reorderWidgetsBody, An as mediaProviderListQuery, At as menuSchema, B as userSchema, Bn as contentListQuery, Bt as magicLinkSendBody, C as notFoundSummarySchema, Cn as formatFileSize, Ct as termWithCountSchema, D as updateRedirectBody, Dn as mediaItemSchema, Dt as menuItemSchema, E as redirectsListQuery, En as mediaExistingResponseSchema, Et as createMenuItemBody, F as widgetSchema, Fn as contentAuthorSchema, Ft as updateMenuItemBody, G as setupAdminVerifyBody, Gn as contentScheduleBody, Gt as passkeyVerifyBody, H as usersListQuery, Hn as contentPreviewUrlBody, Ht as passkeyRegisterOptionsBody, I as allowedDomainCreateBody, In as contentAuthorsResponseSchema, It as authMeActionBody, J as importProbeBody, Jn as contentTermsBody, Jt as adminCommentListResponseSchema, K as setupAtprotoAdminBody, Kn as contentSeoInput, Kt as signupCompleteBody, L as allowedDomainUpdateBody, Ln as contentCompareResponseSchema, Lt as inviteCompleteBody, M as widgetAreaSchema, Mn as mediaUpdateBody, Mt as menuWithItemsSchema, N as widgetAreaWithWidgetsAndCountSchema, Nn as mediaUploadUrlBody, Nt as reorderMenuItemsBody, O as createWidgetAreaBody, On as mediaListQuery, Ot as menuItemTypeEnum, P as widgetAreaWithWidgetsSchema, Pn as mediaUploadUrlResponseSchema, Pt as updateMenuBody, Q as wpPrepareBody, Qn as contentUpdateBody, Qt as commentListQuery, R as userDetailSchema, Rn as contentCreateBody, Rt as inviteCreateBody, S as notFoundSummaryResponseSchema, Sn as DEFAULT_MAX_UPLOAD_SIZE, St as termTranslationsSchema, T as redirectSchema, Tn as mediaConfirmResponseSchema, Tt as createMenuBody, U as atprotoLoginBody, Un as contentPublishBody, Ut as passkeyRegisterVerifyBody, V as userUpdateBody, Vn as contentListResponseSchema, Vt as passkeyOptionsBody, W as setupAdminBody, Wn as contentResponseSchema, Wt as passkeyRenameBody, X as wpPluginAnalyzeBody, Xn as contentTranslationsResponseSchema, Xt as commentBulkResponseSchema, Y as wpMediaImportBody, Yn as contentTranslationSchema, Yt as commentBulkBody, Z as wpPluginExecuteBody, Zn as contentTrashQuery, Zt as commentCountsResponseSchema, _ as notFoundEntrySchema, _n as orphanedTableListResponseSchema, _t as taxonomyListResponseSchema, a as bylineFieldUpdateBody, an as collectionGetQuery, ar as deleteResponseSchema, at as searchSuggestQuery, b as notFoundPruneBody, bn as updateCollectionBody, bt as termResponseSchema, c as bylineCreditSchema, cn as collectionSchema, cr as localeFilterQuery, ct as createSectionBody, d as bylineTranslationCreateBody, dn as createFieldBody, dr as slugPattern, dt as sectionsListQuery, en as commentStatusBody, er as trashedContentListResponseSchema, et as searchEnableBody, f as bylineTranslationsResponseSchema, fn as fieldListResponseSchema, fr as successEnvelope, ft as updateSectionBody, g as createRedirectBody, gn as orphanRegisterBody, gt as taxonomyDefTranslationsSchema, h as contentBylineInputSchema, hn as fieldSchema, ht as taxonomyDefSchema, i as bylineFieldReorderBody, in as publicCommentSchema, ir as cursorPaginationQuery, it as searchResultSchema, j as updateWidgetBody, jn as mediaResponseSchema, jt as menuTranslationsSchema, k as createWidgetBody, kn as mediaListResponseSchema, kt as menuListItemSchema, l as bylineListResponseSchema, ln as collectionWithFieldsResponseSchema, lr as offsetPaginationQuery, lt as sectionListResponseSchema, m as bylinesListQuery, mn as fieldResponseSchema, mt as createTermBody, n as bylineFieldDefinitionSchema, nn as createReactionBody, nr as apiErrorSchema, nt as searchRebuildBody, o as bylineFieldUsageResponseSchema, on as collectionListResponseSchema, or as httpUrl, ot as settingsUpdateBody, p as bylineUpdateBody, pn as fieldReorderBody, pt as createTaxonomyDefBody, q as setupBody, qn as contentSeoSchema, qt as signupRequestBody, r as bylineFieldListResponseSchema, rn as publicCommentListResponseSchema, rr as countResponseSchema, rt as searchResponseSchema, s as bylineCreateBody, sn as collectionResponseSchema, sr as localeCode, st as siteSettingsSchema, t as bylineFieldCreateBody, tn as createCommentBody, tr as VALID_ROLE_LEVELS, tt as searchQuery, u as bylineSummarySchema, un as createCollectionBody, ur as roleLevel, ut as sectionSchema, v as notFoundListQuery, vn as orphanedTableSchema, vt as termGetResponseSchema, w as redirectListResponseSchema, wn as mediaConfirmBody, wt as updateTermBody, x as notFoundSummaryQuery, xn as updateFieldBody, xt as termSchema, y as notFoundListResponseSchema, yn as schemaExportQuery, yt as termListResponseSchema, z as userListResponseSchema, zn as contentItemSchema, zt as inviteRegisterOptionsBody } from "../../byline-fields-Cgrt9-aL.mjs";
2
2
  export { DEFAULT_MAX_UPLOAD_SIZE, VALID_ROLE_LEVELS, adminCommentListResponseSchema, allowedDomainCreateBody, allowedDomainUpdateBody, apiErrorSchema, atprotoLoginBody, authMeActionBody, bylineCreateBody, bylineCreditSchema, bylineFieldCreateBody, bylineFieldDefinitionSchema, bylineFieldListResponseSchema, bylineFieldReorderBody, bylineFieldUpdateBody, bylineFieldUsageResponseSchema, bylineListResponseSchema, bylineSummarySchema, bylineTranslationCreateBody, bylineTranslationsResponseSchema, bylineUpdateBody, bylinesListQuery, collectionGetQuery, collectionListResponseSchema, collectionResponseSchema, collectionSchema, collectionWithFieldsResponseSchema, commentBulkBody, commentBulkResponseSchema, commentCountsResponseSchema, commentListQuery, commentSchema, commentStatusBody, contentAuthorSchema, contentAuthorsResponseSchema, contentBylineInputSchema, contentCompareResponseSchema, contentCreateBody, contentItemSchema, contentListQuery, contentListResponseSchema, contentPreviewUrlBody, contentPublishBody, contentResponseSchema, contentScheduleBody, contentSeoInput, contentSeoSchema, contentTermsBody, contentTranslationSchema, contentTranslationsResponseSchema, contentTrashQuery, contentUpdateBody, countResponseSchema, createCollectionBody, createCommentBody, createFieldBody, createMenuBody, createMenuItemBody, createReactionBody, createRedirectBody, createSectionBody, createTaxonomyDefBody, createTermBody, createWidgetAreaBody, createWidgetBody, cursorPaginationQuery, deleteResponseSchema, fieldListResponseSchema, fieldReorderBody, fieldResponseSchema, fieldSchema, formatFileSize, httpUrl, importProbeBody, inviteCompleteBody, inviteCreateBody, inviteRegisterOptionsBody, localeCode, localeFilterQuery, magicLinkSendBody, mediaConfirmBody, mediaConfirmResponseSchema, mediaExistingResponseSchema, mediaItemSchema, mediaListQuery, mediaListResponseSchema, mediaProviderListQuery, mediaResponseSchema, mediaUpdateBody, mediaUploadUrlBody, mediaUploadUrlResponseSchema, menuItemSchema, menuItemTypeEnum, menuListItemSchema, menuSchema, menuTranslationsSchema, menuWithItemsSchema, notFoundEntrySchema, notFoundListQuery, notFoundListResponseSchema, notFoundPruneBody, notFoundSummaryQuery, notFoundSummaryResponseSchema, notFoundSummarySchema, offsetPaginationQuery, orphanRegisterBody, orphanedTableListResponseSchema, orphanedTableSchema, passkeyOptionsBody, passkeyRegisterOptionsBody, passkeyRegisterVerifyBody, passkeyRenameBody, passkeyVerifyBody, publicCommentListResponseSchema, publicCommentSchema, redirectListResponseSchema, redirectSchema, redirectsListQuery, reorderMenuItemsBody, reorderWidgetsBody, roleLevel, schemaExportQuery, searchEnableBody, searchQuery, searchRebuildBody, searchResponseSchema, searchResultSchema, searchSuggestQuery, sectionListResponseSchema, sectionSchema, sectionsListQuery, settingsUpdateBody, setupAdminBody, setupAdminVerifyBody, setupAtprotoAdminBody, setupBody, signupCompleteBody, signupRequestBody, siteSettingsSchema, slugPattern, successEnvelope, taxonomyDefSchema, taxonomyDefTranslationsSchema, taxonomyListResponseSchema, termGetResponseSchema, termListResponseSchema, termResponseSchema, termSchema, termTranslationsSchema, termWithCountSchema, trashedContentItemSchema, trashedContentListResponseSchema, updateCollectionBody, updateFieldBody, updateMenuBody, updateMenuItemBody, updateRedirectBody, updateSectionBody, updateTermBody, updateWidgetBody, userDetailSchema, userListResponseSchema, userSchema, userUpdateBody, usersListQuery, widgetAreaSchema, widgetAreaWithWidgetsAndCountSchema, widgetAreaWithWidgetsSchema, widgetSchema, wpMediaImportBody, wpPluginAnalyzeBody, wpPluginExecuteBody, wpPrepareBody, wpRewriteUrlsBody };
@@ -1,5 +1,5 @@
1
- import { $ as createMenuBody, $t as contentAuthorSchema, A as searchRebuildBody, An as countResponseSchema, At as fieldListResponseSchema, B as updateSectionBody, Bt as DEFAULT_MAX_UPLOAD_SIZE, C as userDetailSchema, Cn as bylineTranslationCreateBody, Ct as collectionGetQuery, D as usersListQuery, Dn as contentBylineInputSchema, Dt as collectionWithFieldsResponseSchema, E as userUpdateBody, En as bylinesListQuery, Et as collectionSchema, F as siteSettingsSchema, Fn as localeFilterQuery, Ft as orphanedTableListResponseSchema, G as taxonomyListResponseSchema, Gt as mediaItemSchema, H as createTermBody, Ht as mediaConfirmBody, I as createSectionBody, In as offsetPaginationQuery, It as orphanedTableSchema, J as termResponseSchema, Jt as mediaProviderListQuery, K as termGetResponseSchema, Kt as mediaListQuery, L as sectionListResponseSchema, Ln as roleLevel, Lt as schemaExportQuery, M as searchResultSchema, Mn as deleteResponseSchema, Mt as fieldResponseSchema, N as searchSuggestQuery, Nn as httpUrl, Nt as fieldSchema, O as searchEnableBody, On as VALID_ROLE_LEVELS, Ot as createCollectionBody, P as settingsUpdateBody, Pn as localeCode, Pt as orphanRegisterBody, Q as updateTermBody, Qt as mediaUploadUrlResponseSchema, R as sectionSchema, Rn as slugPattern, Rt as updateCollectionBody, S as allowedDomainUpdateBody, Sn as bylineSummarySchema, St as publicCommentSchema, T as userSchema, Tn as bylineUpdateBody, Tt as collectionResponseSchema, U as taxonomyDefSchema, Ut as mediaConfirmResponseSchema, V as createTaxonomyDefBody, Vt as formatFileSize, W as taxonomyDefTranslationsSchema, Wt as mediaExistingResponseSchema, X as termTranslationsSchema, Xt as mediaUpdateBody, Y as termSchema, Yt as mediaResponseSchema, Z as termWithCountSchema, Zt as mediaUploadUrlBody, _ as widgetAreaSchema, _n as trashedContentItemSchema, _t as commentSchema, a as notFoundPruneBody, an as contentListResponseSchema, at as menuTranslationsSchema, b as widgetSchema, bn as bylineCreditSchema, bt as createReactionBody, c as notFoundSummarySchema, cn as contentResponseSchema, ct as updateMenuBody, d as redirectsListQuery, dn as contentSeoSchema, en as contentAuthorsResponseSchema, et as createMenuItemBody, f as updateRedirectBody, fn as contentTermsBody, ft as adminCommentListResponseSchema, g as updateWidgetBody, gn as contentUpdateBody, gt as commentListQuery, h as reorderWidgetsBody, hn as contentTrashQuery, ht as commentCountsResponseSchema, i as notFoundListResponseSchema, in as contentListQuery, it as menuSchema, j as searchResponseSchema, jn as cursorPaginationQuery, jt as fieldReorderBody, k as searchQuery, kn as apiErrorSchema, kt as createFieldBody, l as redirectListResponseSchema, ln as contentScheduleBody, lt as updateMenuItemBody, m as createWidgetBody, mn as contentTranslationsResponseSchema, mt as commentBulkResponseSchema, n as notFoundEntrySchema, nn as contentCreateBody, nt as menuItemTypeEnum, o as notFoundSummaryQuery, on as contentPreviewUrlBody, ot as menuWithItemsSchema, p as createWidgetAreaBody, pn as contentTranslationSchema, pt as commentBulkBody, q as termListResponseSchema, qt as mediaListResponseSchema, r as notFoundListQuery, rn as contentItemSchema, rt as menuListItemSchema, s as notFoundSummaryResponseSchema, sn as contentPublishBody, st as reorderMenuItemsBody, t as createRedirectBody, tn as contentCompareResponseSchema, tt as menuItemSchema, u as redirectSchema, un as contentSeoInput, v as widgetAreaWithWidgetsAndCountSchema, vn as trashedContentListResponseSchema, vt as commentStatusBody, w as userListResponseSchema, wn as bylineTranslationsResponseSchema, wt as collectionListResponseSchema, x as allowedDomainCreateBody, xn as bylineListResponseSchema, xt as publicCommentListResponseSchema, y as widgetAreaWithWidgetsSchema, yn as bylineCreateBody, yt as createCommentBody, z as sectionsListQuery, zn as successEnvelope, zt as updateFieldBody } from "../../redirects-Dcbuisoj.mjs";
2
- import { C as passkeyOptionsBody, D as passkeyVerifyBody, E as passkeyRenameBody, O as signupCompleteBody, S as magicLinkSendBody, T as passkeyRegisterVerifyBody, _ as wpRewriteUrlsBody, a as bylineFieldUpdateBody, b as inviteCreateBody, c as setupAdminBody, d as setupBody, f as importProbeBody, g as wpPrepareBody, h as wpPluginExecuteBody, i as bylineFieldReorderBody, k as signupRequestBody, l as setupAdminVerifyBody, m as wpPluginAnalyzeBody, n as bylineFieldDefinitionSchema, o as bylineFieldUsageResponseSchema, p as wpMediaImportBody, r as bylineFieldListResponseSchema, s as atprotoLoginBody, t as bylineFieldCreateBody, u as setupAtprotoAdminBody, v as authMeActionBody, w as passkeyRegisterOptionsBody, x as inviteRegisterOptionsBody, y as inviteCompleteBody } from "../../byline-fields-eyJMblSr.mjs";
3
- import "../../status-vUK0SA17.mjs";
1
+ import { $ as createMenuBody, $t as contentAuthorSchema, A as searchRebuildBody, An as countResponseSchema, At as fieldListResponseSchema, B as updateSectionBody, Bt as DEFAULT_MAX_UPLOAD_SIZE, C as userDetailSchema, Cn as bylineTranslationCreateBody, Ct as collectionGetQuery, D as usersListQuery, Dn as contentBylineInputSchema, Dt as collectionWithFieldsResponseSchema, E as userUpdateBody, En as bylinesListQuery, Et as collectionSchema, F as siteSettingsSchema, Fn as localeFilterQuery, Ft as orphanedTableListResponseSchema, G as taxonomyListResponseSchema, Gt as mediaItemSchema, H as createTermBody, Ht as mediaConfirmBody, I as createSectionBody, In as offsetPaginationQuery, It as orphanedTableSchema, J as termResponseSchema, Jt as mediaProviderListQuery, K as termGetResponseSchema, Kt as mediaListQuery, L as sectionListResponseSchema, Ln as roleLevel, Lt as schemaExportQuery, M as searchResultSchema, Mn as deleteResponseSchema, Mt as fieldResponseSchema, N as searchSuggestQuery, Nn as httpUrl, Nt as fieldSchema, O as searchEnableBody, On as VALID_ROLE_LEVELS, Ot as createCollectionBody, P as settingsUpdateBody, Pn as localeCode, Pt as orphanRegisterBody, Q as updateTermBody, Qt as mediaUploadUrlResponseSchema, R as sectionSchema, Rn as slugPattern, Rt as updateCollectionBody, S as allowedDomainUpdateBody, Sn as bylineSummarySchema, St as publicCommentSchema, T as userSchema, Tn as bylineUpdateBody, Tt as collectionResponseSchema, U as taxonomyDefSchema, Ut as mediaConfirmResponseSchema, V as createTaxonomyDefBody, Vt as formatFileSize, W as taxonomyDefTranslationsSchema, Wt as mediaExistingResponseSchema, X as termTranslationsSchema, Xt as mediaUpdateBody, Y as termSchema, Yt as mediaResponseSchema, Z as termWithCountSchema, Zt as mediaUploadUrlBody, _ as widgetAreaSchema, _n as trashedContentItemSchema, _t as commentSchema, a as notFoundPruneBody, an as contentListResponseSchema, at as menuTranslationsSchema, b as widgetSchema, bn as bylineCreditSchema, bt as createReactionBody, c as notFoundSummarySchema, cn as contentResponseSchema, ct as updateMenuBody, d as redirectsListQuery, dn as contentSeoSchema, en as contentAuthorsResponseSchema, et as createMenuItemBody, f as updateRedirectBody, fn as contentTermsBody, ft as adminCommentListResponseSchema, g as updateWidgetBody, gn as contentUpdateBody, gt as commentListQuery, h as reorderWidgetsBody, hn as contentTrashQuery, ht as commentCountsResponseSchema, i as notFoundListResponseSchema, in as contentListQuery, it as menuSchema, j as searchResponseSchema, jn as cursorPaginationQuery, jt as fieldReorderBody, k as searchQuery, kn as apiErrorSchema, kt as createFieldBody, l as redirectListResponseSchema, ln as contentScheduleBody, lt as updateMenuItemBody, m as createWidgetBody, mn as contentTranslationsResponseSchema, mt as commentBulkResponseSchema, n as notFoundEntrySchema, nn as contentCreateBody, nt as menuItemTypeEnum, o as notFoundSummaryQuery, on as contentPreviewUrlBody, ot as menuWithItemsSchema, p as createWidgetAreaBody, pn as contentTranslationSchema, pt as commentBulkBody, q as termListResponseSchema, qt as mediaListResponseSchema, r as notFoundListQuery, rn as contentItemSchema, rt as menuListItemSchema, s as notFoundSummaryResponseSchema, sn as contentPublishBody, st as reorderMenuItemsBody, t as createRedirectBody, tn as contentCompareResponseSchema, tt as menuItemSchema, u as redirectSchema, un as contentSeoInput, v as widgetAreaWithWidgetsAndCountSchema, vn as trashedContentListResponseSchema, vt as commentStatusBody, w as userListResponseSchema, wn as bylineTranslationsResponseSchema, wt as collectionListResponseSchema, x as allowedDomainCreateBody, xn as bylineListResponseSchema, xt as publicCommentListResponseSchema, y as widgetAreaWithWidgetsSchema, yn as bylineCreateBody, yt as createCommentBody, z as sectionsListQuery, zn as successEnvelope, zt as updateFieldBody } from "../../redirects-DXEXBAII.mjs";
2
+ import { C as passkeyOptionsBody, D as passkeyVerifyBody, E as passkeyRenameBody, O as signupCompleteBody, S as magicLinkSendBody, T as passkeyRegisterVerifyBody, _ as wpRewriteUrlsBody, a as bylineFieldUpdateBody, b as inviteCreateBody, c as setupAdminBody, d as setupBody, f as importProbeBody, g as wpPrepareBody, h as wpPluginExecuteBody, i as bylineFieldReorderBody, k as signupRequestBody, l as setupAdminVerifyBody, m as wpPluginAnalyzeBody, n as bylineFieldDefinitionSchema, o as bylineFieldUsageResponseSchema, p as wpMediaImportBody, r as bylineFieldListResponseSchema, s as atprotoLoginBody, t as bylineFieldCreateBody, u as setupAtprotoAdminBody, v as authMeActionBody, w as passkeyRegisterOptionsBody, x as inviteRegisterOptionsBody, y as inviteCompleteBody } from "../../byline-fields-2Lp5Hbgf.mjs";
3
+ import "../../status-CqJQX1QN.mjs";
4
4
 
5
5
  export { DEFAULT_MAX_UPLOAD_SIZE, VALID_ROLE_LEVELS, adminCommentListResponseSchema, allowedDomainCreateBody, allowedDomainUpdateBody, apiErrorSchema, atprotoLoginBody, authMeActionBody, bylineCreateBody, bylineCreditSchema, bylineFieldCreateBody, bylineFieldDefinitionSchema, bylineFieldListResponseSchema, bylineFieldReorderBody, bylineFieldUpdateBody, bylineFieldUsageResponseSchema, bylineListResponseSchema, bylineSummarySchema, bylineTranslationCreateBody, bylineTranslationsResponseSchema, bylineUpdateBody, bylinesListQuery, collectionGetQuery, collectionListResponseSchema, collectionResponseSchema, collectionSchema, collectionWithFieldsResponseSchema, commentBulkBody, commentBulkResponseSchema, commentCountsResponseSchema, commentListQuery, commentSchema, commentStatusBody, contentAuthorSchema, contentAuthorsResponseSchema, contentBylineInputSchema, contentCompareResponseSchema, contentCreateBody, contentItemSchema, contentListQuery, contentListResponseSchema, contentPreviewUrlBody, contentPublishBody, contentResponseSchema, contentScheduleBody, contentSeoInput, contentSeoSchema, contentTermsBody, contentTranslationSchema, contentTranslationsResponseSchema, contentTrashQuery, contentUpdateBody, countResponseSchema, createCollectionBody, createCommentBody, createFieldBody, createMenuBody, createMenuItemBody, createReactionBody, createRedirectBody, createSectionBody, createTaxonomyDefBody, createTermBody, createWidgetAreaBody, createWidgetBody, cursorPaginationQuery, deleteResponseSchema, fieldListResponseSchema, fieldReorderBody, fieldResponseSchema, fieldSchema, formatFileSize, httpUrl, importProbeBody, inviteCompleteBody, inviteCreateBody, inviteRegisterOptionsBody, localeCode, localeFilterQuery, magicLinkSendBody, mediaConfirmBody, mediaConfirmResponseSchema, mediaExistingResponseSchema, mediaItemSchema, mediaListQuery, mediaListResponseSchema, mediaProviderListQuery, mediaResponseSchema, mediaUpdateBody, mediaUploadUrlBody, mediaUploadUrlResponseSchema, menuItemSchema, menuItemTypeEnum, menuListItemSchema, menuSchema, menuTranslationsSchema, menuWithItemsSchema, notFoundEntrySchema, notFoundListQuery, notFoundListResponseSchema, notFoundPruneBody, notFoundSummaryQuery, notFoundSummaryResponseSchema, notFoundSummarySchema, offsetPaginationQuery, orphanRegisterBody, orphanedTableListResponseSchema, orphanedTableSchema, passkeyOptionsBody, passkeyRegisterOptionsBody, passkeyRegisterVerifyBody, passkeyRenameBody, passkeyVerifyBody, publicCommentListResponseSchema, publicCommentSchema, redirectListResponseSchema, redirectSchema, redirectsListQuery, reorderMenuItemsBody, reorderWidgetsBody, roleLevel, schemaExportQuery, searchEnableBody, searchQuery, searchRebuildBody, searchResponseSchema, searchResultSchema, searchSuggestQuery, sectionListResponseSchema, sectionSchema, sectionsListQuery, settingsUpdateBody, setupAdminBody, setupAdminVerifyBody, setupAtprotoAdminBody, setupBody, signupCompleteBody, signupRequestBody, siteSettingsSchema, slugPattern, successEnvelope, taxonomyDefSchema, taxonomyDefTranslationsSchema, taxonomyListResponseSchema, termGetResponseSchema, termListResponseSchema, termResponseSchema, termSchema, termTranslationsSchema, termWithCountSchema, trashedContentItemSchema, trashedContentListResponseSchema, updateCollectionBody, updateFieldBody, updateMenuBody, updateMenuItemBody, updateRedirectBody, updateSectionBody, updateTermBody, updateWidgetBody, userDetailSchema, userListResponseSchema, userSchema, userUpdateBody, usersListQuery, widgetAreaSchema, widgetAreaWithWidgetsAndCountSchema, widgetAreaWithWidgetsSchema, widgetSchema, wpMediaImportBody, wpPluginAnalyzeBody, wpPluginExecuteBody, wpPrepareBody, wpRewriteUrlsBody };
@@ -1,27 +1,27 @@
1
1
  import { r as validatePluginIdentifier, t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
2
2
  import { n as getI18nConfig, r as isI18nEnabled } from "./config-CVssduLe.mjs";
3
- import { o as invalidateCollectionCache } from "./object-cache-CHbHv83-.mjs";
4
- import { r as RevisionRepository, t as ContentRepository } from "./content-RmfHoWqK.mjs";
3
+ import { o as invalidateCollectionCache } from "./object-cache-Bok5j2ae.mjs";
4
+ import { r as RevisionRepository, t as ContentRepository } from "./content-DhgEth4k.mjs";
5
5
  import { r as encodeBase64, t as decodeBase64 } from "./base64-CmWvODNW.mjs";
6
- import { n as InvalidCursorError, r as ScheduledNotDueError, t as EmDashValidationError } from "./types-DU4TSFS5.mjs";
7
- import { t as MediaRepository } from "./media-C0nRRfs1.mjs";
8
- import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-CZFiauig.mjs";
9
- import { t as UserRepository } from "./user-DgGbKL9s.mjs";
10
- import { t as CommentRepository } from "./comment-CH1IrFFs.mjs";
6
+ import { n as InvalidCursorError, r as ScheduledNotDueError, t as EmDashValidationError } from "./types-CuW0zWDA.mjs";
7
+ import { t as MediaRepository } from "./media-BrXIaMFN.mjs";
8
+ import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-B2isWQhr.mjs";
9
+ import { t as UserRepository } from "./user-BjAOvU3Z.mjs";
10
+ import { t as CommentRepository } from "./comment-CzeatwBV.mjs";
11
11
  import { t as withTransaction } from "./transaction-qfqpPVpu.mjs";
12
- import { t as RedirectRepository } from "./redirect-lMOzG04S.mjs";
12
+ import { t as RedirectRepository } from "./redirect-IyfNirgS.mjs";
13
13
  import { r as requestCached } from "./request-cache-KCNHp_RJ.mjs";
14
- import { t as BylineRepository } from "./byline-DEKSVPTy.mjs";
14
+ import { t as BylineRepository } from "./byline-Bm8ZgUP9.mjs";
15
15
  import { r as parseAllowedMimeTypes, t as matchesMimeAllowlist } from "./mime-CCEzze7W.mjs";
16
- import { t as SeoRepository } from "./seo-Dd3tbY_k.mjs";
17
- import { r as invalidateRedirectCache } from "./cache-Ciu3e3AF.mjs";
16
+ import { t as SeoRepository } from "./seo-DXu2UQnC.mjs";
17
+ import { r as invalidateRedirectCache } from "./cache-CEBAZjir.mjs";
18
18
  import { n as isMissingTableError } from "./db-errors-CK46D-ly.mjs";
19
19
  import { n as hashString } from "./hash-DrvzIXcz.mjs";
20
- import { n as SchemaRegistry, t as SchemaError } from "./registry-DP-iEtdR.mjs";
21
- import { a as reconcileManifestAccess, i as pluginManifestSchema, r as normalizeManifestRoute } from "./manifest-schema-kPGX7VS-.mjs";
22
- import { a as normalizeCapabilities, r as declaredAccessToCapabilities } from "./types-BvbeGEtr.mjs";
23
- import { t as EmDashStorageError } from "./types-CQAugunJ.mjs";
24
- import { n as resolveAndValidateExternalUrl, t as SsrfError } from "./ssrf-BRKb343l.mjs";
20
+ import { n as SchemaRegistry, t as SchemaError } from "./registry-B65mUtPa.mjs";
21
+ import { a as reconcileManifestAccess, i as pluginManifestSchema, r as normalizeManifestRoute } from "./manifest-schema-BHlgZM1W.mjs";
22
+ import { a as normalizeCapabilities, r as declaredAccessToCapabilities } from "./types-DROWRxYV.mjs";
23
+ import { t as EmDashStorageError } from "./types-Jo3UYd6b.mjs";
24
+ import { n as resolveAndValidateExternalUrl, t as SsrfError } from "./ssrf-1g7usGBg.mjs";
25
25
  import { sql } from "kysely";
26
26
  import { createGzipDecoder, unpackTar } from "modern-tar";
27
27
  import { ClientResponseError, ClientValidationError } from "@atcute/client";
@@ -588,7 +588,7 @@ async function handleContentCreate(db, collection, body) {
588
588
  });
589
589
  if (body.bylines !== void 0) created.primaryBylineId = (await bylineRepo.setContentBylines(collection, created.id, body.bylines))[0]?.byline.translationGroup ?? null;
590
590
  if (body.translationOf) {
591
- const { TaxonomyRepository } = await import("./taxonomy-Cru-he6s.mjs").then((n) => n.n);
591
+ const { TaxonomyRepository } = await import("./taxonomy-BxGxZZdu.mjs").then((n) => n.n);
592
592
  await new TaxonomyRepository(trx).copyEntryTerms(collection, body.translationOf, created.id);
593
593
  if (body.bylines === void 0) {
594
594
  await bylineRepo.copyContentBylines(collection, body.translationOf, created.id);
@@ -807,11 +807,15 @@ async function handleContentDuplicate(db, collection, id, authorId) {
807
807
  */
808
808
  async function handleContentDelete(db, collection, id) {
809
809
  try {
810
- if (!await withTransaction(db, async (trx) => {
810
+ const result = await withTransaction(db, async (trx) => {
811
811
  const repo = new ContentRepository(trx);
812
812
  const resolvedId = await resolveId(repo, collection, id) ?? id;
813
- return repo.delete(collection, resolvedId);
814
- })) return {
813
+ return {
814
+ id: resolvedId,
815
+ deleted: await repo.delete(collection, resolvedId)
816
+ };
817
+ });
818
+ if (!result.deleted) return {
815
819
  success: false,
816
820
  error: {
817
821
  code: "NOT_FOUND",
@@ -820,7 +824,10 @@ async function handleContentDelete(db, collection, id) {
820
824
  };
821
825
  return {
822
826
  success: true,
823
- data: { deleted: true }
827
+ data: {
828
+ deleted: true,
829
+ id: result.id
830
+ }
824
831
  };
825
832
  } catch (error) {
826
833
  console.error("Content delete error:", error);
@@ -892,7 +899,10 @@ async function handleContentPermanentDelete(db, collection, id) {
892
899
  };
893
900
  return {
894
901
  success: true,
895
- data: { deleted: true }
902
+ data: {
903
+ deleted: true,
904
+ id: resolvedId
905
+ }
896
906
  };
897
907
  } catch (error) {
898
908
  console.error("Content permanent delete error:", error);
@@ -4633,4 +4643,4 @@ async function handleRegistryUpdateCheck(db, registryConfigInput) {
4633
4643
 
4634
4644
  //#endregion
4635
4645
  export { handleContentGet as $, handleSchemaFieldCreate as A, handleMediaUpdate as B, handleOrphanedTableList as C, handleSchemaCollectionGet as D, handleSchemaCollectionDelete as E, handleSchemaFieldUpdate as F, handleContentAuthors as G, handleRevisionList as H, handleMediaCreate as I, handleContentCountTrashed as J, handleContentCompare as K, handleMediaDelete as L, handleSchemaFieldGet as M, handleSchemaFieldList as N, handleSchemaCollectionList as O, handleSchemaFieldReorder as P, handleContentDuplicate as Q, handleMediaGet as R, PluginStateRepository as S, handleSchemaCollectionCreate as T, handleRevisionRestore as U, handleRevisionGet as V, generateManifest as W, handleContentDelete as X, handleContentCreate as Y, handleContentDiscardDraft as Z, loadBundleFromR2 as _, handleRegistryUpdateCheck as a, handleContentRestore as at, handlePluginGet as b, validateAggregatorUrl as c, handleContentUnpublish as ct, handleMarketplaceSearch as d, validateRev as dt, handleContentGetIncludingTrashed as et, handleMarketplaceUninstall as f, handleThemeSearch as g, handleThemeGetDetail as h, handleRegistryUpdate as i, handleContentPublish as it, handleSchemaFieldDelete as j, handleSchemaCollectionUpdate as k, handleMarketplaceGetPlugin as l, handleContentUnschedule as lt, handleMarketplaceUpdateCheck as m, handleRegistryInstall as n, handleContentListTrashed as nt, coerceRegistryConfig as o, handleContentSchedule as ot, handleMarketplaceUpdate as p, handleContentCountScheduled as q, handleRegistryUninstall as r, handleContentPermanentDelete as rt, normalizeRegistryConfig as s, handleContentTranslations as st, assertSafeArtifactUrl as t, handleContentList as tt, handleMarketplaceInstall as u, handleContentUpdate as ut, handlePluginDisable as v, handleOrphanedTableRegister as w, handlePluginList as x, handlePluginEnable as y, handleMediaList as z };
4636
- //# sourceMappingURL=api-80kycR9o.mjs.map
4646
+ //# sourceMappingURL=api-BFURZn1i.mjs.map