emdash 1.3.0 → 1.3.1

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 (1451) hide show
  1. package/dist/action-token-B1ds4laA.mjs +26 -0
  2. package/dist/action-token-B1ds4laA.mjs.map +1 -0
  3. package/dist/activation-sGF9br3X.mjs +387 -0
  4. package/dist/activation-sGF9br3X.mjs.map +1 -0
  5. package/dist/adapters-BOMSX9PU.d.mts +173 -0
  6. package/dist/adapters-BOMSX9PU.d.mts.map +1 -0
  7. package/dist/allowed-origins-CovsTkm3.mjs +116 -0
  8. package/dist/allowed-origins-CovsTkm3.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +4 -4
  10. package/dist/api/route-utils.mjs +59 -57
  11. package/dist/api/route-utils.mjs.map +1 -1
  12. package/dist/api/schemas/index.d.mts +1 -1
  13. package/dist/api/schemas/index.mjs +11 -11
  14. package/dist/api-C_LxFnOm.mjs +5077 -0
  15. package/dist/api-C_LxFnOm.mjs.map +1 -0
  16. package/dist/api-tokens-DQ9Ee-vP.mjs +173 -0
  17. package/dist/api-tokens-DQ9Ee-vP.mjs.map +1 -0
  18. package/dist/apply-CLjfxvyH.mjs +1758 -0
  19. package/dist/apply-CLjfxvyH.mjs.map +1 -0
  20. package/dist/approvals-ocK89i4H.mjs +460 -0
  21. package/dist/approvals-ocK89i4H.mjs.map +1 -0
  22. package/dist/artifact-fetch-CgvvpoWQ.mjs +659 -0
  23. package/dist/artifact-fetch-CgvvpoWQ.mjs.map +1 -0
  24. package/dist/artifacts-DwOYYBQm.mjs +323 -0
  25. package/dist/artifacts-DwOYYBQm.mjs.map +1 -0
  26. package/dist/astro/image-endpoint.mjs +12 -2
  27. package/dist/astro/image-endpoint.mjs.map +1 -1
  28. package/dist/astro/index.d.mts +14 -14
  29. package/dist/astro/index.mjs +23 -12
  30. package/dist/astro/index.mjs.map +1 -1
  31. package/dist/astro/middleware/auth.d.mts +12 -12
  32. package/dist/astro/middleware/auth.mjs +10 -10
  33. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  34. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  35. package/dist/astro/middleware/redirect.mjs +128 -48
  36. package/dist/astro/middleware/redirect.mjs.map +1 -1
  37. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  38. package/dist/astro/middleware/request-context.mjs +12 -8
  39. package/dist/astro/middleware/request-context.mjs.map +1 -1
  40. package/dist/astro/middleware/setup.mjs +1 -1
  41. package/dist/astro/middleware.d.mts +12 -12
  42. package/dist/astro/middleware.d.mts.map +1 -1
  43. package/dist/astro/middleware.mjs +134 -124
  44. package/dist/astro/middleware.mjs.map +1 -1
  45. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +16 -16
  46. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +16 -16
  47. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -6
  48. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
  49. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +7 -7
  50. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +19 -19
  51. package/dist/astro/routes/api/admin/byline-fields/index.mjs +19 -19
  52. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +19 -19
  53. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +29 -28
  54. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  55. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +29 -28
  56. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  57. package/dist/astro/routes/api/admin/bylines/index.mjs +29 -28
  58. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +21 -21
  60. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
  61. package/dist/astro/routes/api/admin/comments/bulk.mjs +20 -20
  62. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
  63. package/dist/astro/routes/api/admin/comments/index.mjs +20 -20
  64. package/dist/astro/routes/api/admin/core-update.mjs +7 -7
  65. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  66. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  67. package/dist/astro/routes/api/admin/media-usage/activation.mjs +22 -22
  68. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +23 -23
  69. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +23 -23
  70. package/dist/astro/routes/api/admin/media-usage/progress.mjs +27 -26
  71. package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
  72. package/dist/astro/routes/api/admin/media-usage/repair.mjs +33 -32
  73. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  74. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +23 -23
  75. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +23 -23
  76. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  77. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  78. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  79. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  80. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +81 -79
  81. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  82. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
  83. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +80 -78
  84. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  85. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +80 -78
  86. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  87. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +91 -89
  88. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  89. package/dist/astro/routes/api/admin/plugins/index.mjs +81 -79
  90. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  91. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +7 -7
  92. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +80 -78
  93. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  94. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +90 -88
  95. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +80 -78
  97. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +80 -78
  99. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  100. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +92 -90
  101. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -9
  103. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +82 -80
  104. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  105. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
  106. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +81 -79
  107. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  108. package/dist/astro/routes/api/admin/plugins/updates.mjs +80 -78
  109. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  110. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
  111. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +80 -78
  112. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  113. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +7 -7
  114. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +80 -78
  115. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  116. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
  117. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +45 -43
  118. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
  119. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +45 -43
  120. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
  121. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +47 -45
  122. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
  123. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +47 -45
  124. package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
  125. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +47 -45
  126. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
  127. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +48 -46
  128. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
  129. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +48 -46
  130. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
  131. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +47 -45
  132. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
  133. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +48 -46
  134. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
  135. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +49 -47
  136. package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
  137. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +47 -45
  138. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
  139. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +47 -45
  140. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
  141. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +49 -47
  142. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
  143. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +47 -45
  144. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
  145. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +49 -47
  146. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
  147. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +47 -45
  148. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
  149. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +47 -45
  150. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
  151. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +49 -47
  152. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
  153. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +47 -45
  154. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
  155. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +47 -45
  156. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
  157. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +49 -47
  158. package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
  159. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
  160. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  161. package/dist/astro/routes/api/admin/users/_id_/index.mjs +17 -17
  162. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
  163. package/dist/astro/routes/api/admin/users/index.mjs +16 -16
  164. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  165. package/dist/astro/routes/api/auth/handover.mjs +6 -6
  166. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  167. package/dist/astro/routes/api/auth/invite/complete.mjs +21 -21
  168. package/dist/astro/routes/api/auth/invite/index.mjs +18 -18
  169. package/dist/astro/routes/api/auth/invite/register-options.mjs +19 -19
  170. package/dist/astro/routes/api/auth/logout.mjs +5 -5
  171. package/dist/astro/routes/api/auth/magic-link/send.mjs +20 -20
  172. package/dist/astro/routes/api/auth/magic-link/verify.mjs +17 -17
  173. package/dist/astro/routes/api/auth/me.mjs +17 -17
  174. package/dist/astro/routes/api/auth/mode.mjs +5 -5
  175. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +8 -8
  176. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  177. package/dist/astro/routes/api/auth/passkey/_id_.mjs +16 -16
  178. package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
  179. package/dist/astro/routes/api/auth/passkey/options.mjs +21 -21
  180. package/dist/astro/routes/api/auth/passkey/register/options.mjs +19 -19
  181. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +20 -20
  182. package/dist/astro/routes/api/auth/passkey/verify.mjs +21 -21
  183. package/dist/astro/routes/api/auth/signup/complete.mjs +21 -21
  184. package/dist/astro/routes/api/auth/signup/request.mjs +19 -19
  185. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  186. package/dist/astro/routes/api/calendar.mjs +17 -17
  187. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +13 -13
  188. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +21 -21
  189. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  190. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +20 -20
  191. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  192. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +19 -19
  193. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +6 -6
  194. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +12 -12
  195. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +36 -35
  196. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  197. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +20 -20
  198. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +40 -39
  199. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  200. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +40 -39
  201. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  202. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +6 -6
  203. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  204. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +20 -20
  205. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -1
  206. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +40 -32
  207. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  208. package/dist/astro/routes/api/content/_collection_/_id_/translations.d.mts.map +1 -1
  209. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +9 -5
  210. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs.map +1 -1
  211. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +20 -20
  212. package/dist/astro/routes/api/content/_collection_/_id_.mjs +20 -20
  213. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  214. package/dist/astro/routes/api/content/_collection_/index.mjs +17 -17
  215. package/dist/astro/routes/api/content/_collection_/trash.mjs +17 -17
  216. package/dist/astro/routes/api/dashboard.mjs +21 -15
  217. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  218. package/dist/astro/routes/api/dev/emails.mjs +5 -5
  219. package/dist/astro/routes/api/dev/scheduled-tasks.mjs +119 -117
  220. package/dist/astro/routes/api/dev/scheduled-tasks.mjs.map +1 -1
  221. package/dist/astro/routes/api/health.mjs +6 -6
  222. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  223. package/dist/astro/routes/api/import/probe.mjs +31 -29
  224. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  225. package/dist/astro/routes/api/import/wordpress/analyze.mjs +8 -8
  226. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
  227. package/dist/astro/routes/api/import/wordpress/execute.mjs +31 -30
  228. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  229. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  230. package/dist/astro/routes/api/import/wordpress/media.mjs +21 -21
  231. package/dist/astro/routes/api/import/wordpress/prepare.mjs +22 -22
  232. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  233. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +32 -31
  234. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  235. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  236. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +31 -29
  237. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  238. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  239. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +42 -40
  240. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  241. package/dist/astro/routes/api/manifest.mjs +6 -6
  242. package/dist/astro/routes/api/mcp.mjs +117 -100
  243. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  244. package/dist/astro/routes/api/media/_id_/confirm.mjs +21 -21
  245. package/dist/astro/routes/api/media/_id_/replace.mjs +18 -18
  246. package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
  247. package/dist/astro/routes/api/media/_id_/usage.mjs +35 -34
  248. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  249. package/dist/astro/routes/api/media/_id_.mjs +33 -32
  250. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  251. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
  252. package/dist/astro/routes/api/media/file/_...key_.mjs +21 -13
  253. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  254. package/dist/astro/routes/api/media/folders/_id_.mjs +18 -18
  255. package/dist/astro/routes/api/media/folders/index.mjs +18 -18
  256. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
  257. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
  258. package/dist/astro/routes/api/media/providers/index.mjs +5 -5
  259. package/dist/astro/routes/api/media/upload-url.mjs +20 -20
  260. package/dist/astro/routes/api/media.mjs +37 -36
  261. package/dist/astro/routes/api/media.mjs.map +1 -1
  262. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +22 -21
  263. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  264. package/dist/astro/routes/api/menus/_name_/items.mjs +22 -21
  265. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  266. package/dist/astro/routes/api/menus/_name_/reorder.mjs +22 -21
  267. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  268. package/dist/astro/routes/api/menus/_name_/translations.mjs +22 -21
  269. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  270. package/dist/astro/routes/api/menus/_name_.mjs +22 -21
  271. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  272. package/dist/astro/routes/api/menus/index.mjs +22 -21
  273. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  274. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  275. package/dist/astro/routes/api/oauth/device/authorize.mjs +8 -8
  276. package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
  277. package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
  278. package/dist/astro/routes/api/oauth/register.mjs +7 -7
  279. package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
  280. package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
  281. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  282. package/dist/astro/routes/api/openapi.json.mjs +22 -22
  283. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +12 -12
  284. package/dist/astro/routes/api/redirects/404s/index.mjs +23 -22
  285. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  286. package/dist/astro/routes/api/redirects/404s/summary.mjs +23 -22
  287. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  288. package/dist/astro/routes/api/redirects/_id_.mjs +24 -23
  289. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  290. package/dist/astro/routes/api/redirects/index.mjs +24 -23
  291. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  292. package/dist/astro/routes/api/relations/_id_/index.mjs +40 -39
  293. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  294. package/dist/astro/routes/api/relations/index.mjs +40 -39
  295. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  296. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
  297. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +19 -19
  298. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +80 -78
  299. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  300. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +80 -78
  301. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  302. package/dist/astro/routes/api/schema/block-types/index.mjs +80 -78
  303. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  304. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +80 -78
  305. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  306. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +80 -78
  307. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  308. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +80 -78
  309. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  310. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +80 -78
  311. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  312. package/dist/astro/routes/api/schema/collections/index.mjs +80 -78
  313. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  314. package/dist/astro/routes/api/schema/collections/reorder.mjs +80 -78
  315. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  316. package/dist/astro/routes/api/schema/index.mjs +20 -19
  317. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  318. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +80 -78
  319. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  320. package/dist/astro/routes/api/schema/orphans/index.mjs +80 -78
  321. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  322. package/dist/astro/routes/api/search/enable.mjs +23 -22
  323. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  324. package/dist/astro/routes/api/search/index.mjs +22 -21
  325. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  326. package/dist/astro/routes/api/search/rebuild.mjs +23 -22
  327. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  328. package/dist/astro/routes/api/search/stats.mjs +12 -11
  329. package/dist/astro/routes/api/search/stats.mjs.map +1 -1
  330. package/dist/astro/routes/api/search/suggest.mjs +22 -21
  331. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  332. package/dist/astro/routes/api/sections/_slug_.mjs +22 -21
  333. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  334. package/dist/astro/routes/api/sections/index.mjs +22 -21
  335. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  336. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  337. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  338. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  339. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  340. package/dist/astro/routes/api/settings/domain-notify.mjs +9 -9
  341. package/dist/astro/routes/api/settings/domain.mjs +22 -20
  342. package/dist/astro/routes/api/settings/domain.mjs.map +1 -1
  343. package/dist/astro/routes/api/settings/email.mjs +6 -6
  344. package/dist/astro/routes/api/settings.mjs +29 -27
  345. package/dist/astro/routes/api/settings.mjs.map +1 -1
  346. package/dist/astro/routes/api/setup/admin-verify.mjs +23 -23
  347. package/dist/astro/routes/api/setup/admin.mjs +20 -20
  348. package/dist/astro/routes/api/setup/dev-bypass.mjs +52 -50
  349. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  350. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  351. package/dist/astro/routes/api/setup/index.mjs +58 -56
  352. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  353. package/dist/astro/routes/api/setup/status.mjs +6 -6
  354. package/dist/astro/routes/api/site/domain-proof.mjs +16 -14
  355. package/dist/astro/routes/api/site/domain-proof.mjs.map +1 -1
  356. package/dist/astro/routes/api/snapshot.mjs +8 -8
  357. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +30 -29
  358. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  359. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +30 -29
  360. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  361. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +30 -29
  362. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  363. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +30 -29
  364. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  365. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +28 -27
  366. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  367. package/dist/astro/routes/api/taxonomies/_name_.mjs +30 -29
  368. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  369. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +44 -43
  370. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
  371. package/dist/astro/routes/api/taxonomies/index.mjs +30 -29
  372. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  373. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  374. package/dist/astro/routes/api/typegen.mjs +6 -6
  375. package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
  376. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +21 -21
  377. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
  378. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  379. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  380. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  381. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +19 -19
  382. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +24 -23
  383. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  384. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +24 -23
  385. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  386. package/dist/astro/routes/api/widget-areas/_name_.mjs +13 -12
  387. package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
  388. package/dist/astro/routes/api/widget-areas/index.mjs +24 -23
  389. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  390. package/dist/astro/routes/api/widget-components.mjs +5 -5
  391. package/dist/astro/routes/robots.txt.mjs +15 -13
  392. package/dist/astro/routes/robots.txt.mjs.map +1 -1
  393. package/dist/astro/routes/sitemap-_collection_.xml.mjs +19 -17
  394. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  395. package/dist/astro/routes/sitemap.xml.mjs +16 -14
  396. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  397. package/dist/astro/types.d.mts +17 -17
  398. package/dist/audit-B8XE-0UV.mjs +127 -0
  399. package/dist/audit-B8XE-0UV.mjs.map +1 -0
  400. package/dist/auth/providers/github.d.mts +1 -1
  401. package/dist/auth/providers/google.d.mts +1 -1
  402. package/dist/auth/providers/microsoft.d.mts +1 -1
  403. package/dist/authoritative-records-LPtrIGOY.mjs +5183 -0
  404. package/dist/authoritative-records-LPtrIGOY.mjs.map +1 -0
  405. package/dist/authorize-CoDsRRp5.mjs +74 -0
  406. package/dist/authorize-CoDsRRp5.mjs.map +1 -0
  407. package/dist/backup-2Wj-hTCN.mjs +246 -0
  408. package/dist/backup-2Wj-hTCN.mjs.map +1 -0
  409. package/dist/block-types-C3gJEe7l.mjs +132 -0
  410. package/dist/block-types-C3gJEe7l.mjs.map +1 -0
  411. package/dist/block-values-CgbMtSGU.mjs +215 -0
  412. package/dist/block-values-CgbMtSGU.mjs.map +1 -0
  413. package/dist/byline-CzGZC2Zs.mjs +922 -0
  414. package/dist/byline-CzGZC2Zs.mjs.map +1 -0
  415. package/dist/byline-fields-B1qHvRps.mjs +280 -0
  416. package/dist/byline-fields-B1qHvRps.mjs.map +1 -0
  417. package/dist/byline-fields-vYd_4Q1e.mjs +123 -0
  418. package/dist/byline-fields-vYd_4Q1e.mjs.map +1 -0
  419. package/dist/byline-registry-BhzpO41z.mjs +406 -0
  420. package/dist/byline-registry-BhzpO41z.mjs.map +1 -0
  421. package/dist/bylines-BF555iIz.mjs +150 -0
  422. package/dist/bylines-BF555iIz.mjs.map +1 -0
  423. package/dist/bylines-DJx6IWWi.mjs +234 -0
  424. package/dist/bylines-DJx6IWWi.mjs.map +1 -0
  425. package/dist/cache-BWzswWB-.mjs +151 -0
  426. package/dist/cache-BWzswWB-.mjs.map +1 -0
  427. package/dist/canonical-DjF_z6GI.mjs +174 -0
  428. package/dist/canonical-DjF_z6GI.mjs.map +1 -0
  429. package/dist/capture-triggers-D7g3fOZj.mjs +362 -0
  430. package/dist/capture-triggers-D7g3fOZj.mjs.map +1 -0
  431. package/dist/challenge-store-Cfjdvw86.mjs +51 -0
  432. package/dist/challenge-store-Cfjdvw86.mjs.map +1 -0
  433. package/dist/checksum-BF4acJwn.mjs +162 -0
  434. package/dist/checksum-BF4acJwn.mjs.map +1 -0
  435. package/dist/chrome-tags-BDs29G3g.mjs +24 -0
  436. package/dist/chrome-tags-BDs29G3g.mjs.map +1 -0
  437. package/dist/chunks-CYBOL-zn.mjs +25 -0
  438. package/dist/chunks-CYBOL-zn.mjs.map +1 -0
  439. package/dist/cli/index.mjs +67 -65
  440. package/dist/cli/index.mjs.map +1 -1
  441. package/dist/client/cf-access.d.mts +1 -1
  442. package/dist/client/index.d.mts +48 -48
  443. package/dist/client/index.d.mts.map +1 -1
  444. package/dist/client/index.mjs +4 -3
  445. package/dist/client/index.mjs.map +1 -1
  446. package/dist/collection-slugs-cache-B2J5aESO.mjs +91 -0
  447. package/dist/collection-slugs-cache-B2J5aESO.mjs.map +1 -0
  448. package/dist/comment-DV7dybcs.mjs +335 -0
  449. package/dist/comment-DV7dybcs.mjs.map +1 -0
  450. package/dist/comment-reaction-CWwqiT6x.mjs +85 -0
  451. package/dist/comment-reaction-CWwqiT6x.mjs.map +1 -0
  452. package/dist/comments-DVjWJm8X.mjs +99 -0
  453. package/dist/comments-DVjWJm8X.mjs.map +1 -0
  454. package/dist/comments-Q-ILHCEI.mjs +195 -0
  455. package/dist/comments-Q-ILHCEI.mjs.map +1 -0
  456. package/dist/components-DnOmvvgg.mjs +112 -0
  457. package/dist/components-DnOmvvgg.mjs.map +1 -0
  458. package/dist/config-9IzA83_U.d.mts +6811 -0
  459. package/dist/config-9IzA83_U.d.mts.map +1 -0
  460. package/dist/config-BdQzFtmR.mjs +228 -0
  461. package/dist/config-BdQzFtmR.mjs.map +1 -0
  462. package/dist/config-Cs2RBkJ6.d.mts +41 -0
  463. package/dist/config-Cs2RBkJ6.d.mts.map +1 -0
  464. package/dist/config-Cs_AwWXI.mjs +106 -0
  465. package/dist/config-Cs_AwWXI.mjs.map +1 -0
  466. package/dist/connection-CiXgZyCY.mjs +36 -0
  467. package/dist/connection-CiXgZyCY.mjs.map +1 -0
  468. package/dist/content-Dt0Os_WQ.mjs +2109 -0
  469. package/dist/content-Dt0Os_WQ.mjs.map +1 -0
  470. package/dist/content-list-query-BK26u9Ly.d.mts +26 -0
  471. package/dist/content-list-query-BK26u9Ly.d.mts.map +1 -0
  472. package/dist/content-policy-BLDbNJOb.mjs +46 -0
  473. package/dist/content-policy-BLDbNJOb.mjs.map +1 -0
  474. package/dist/content-repair-CjwbLy4m.mjs +442 -0
  475. package/dist/content-repair-CjwbLy4m.mjs.map +1 -0
  476. package/dist/context-ErV7UdQY.mjs +2089 -0
  477. package/dist/context-ErV7UdQY.mjs.map +1 -0
  478. package/dist/credits-BRyjafiF.mjs +110 -0
  479. package/dist/credits-BRyjafiF.mjs.map +1 -0
  480. package/dist/cron-Bm5xa7tv.mjs +306 -0
  481. package/dist/cron-Bm5xa7tv.mjs.map +1 -0
  482. package/dist/dashboard-DVxQ5XiI.mjs +168 -0
  483. package/dist/dashboard-DVxQ5XiI.mjs.map +1 -0
  484. package/dist/database/migration-lock.mjs +1 -1
  485. package/dist/db/index.d.mts +3 -3
  486. package/dist/db/index.mjs +2 -2
  487. package/dist/db/libsql-migrations.d.mts +1 -1
  488. package/dist/db/libsql-migrations.mjs +5 -5
  489. package/dist/db/libsql.d.mts +1 -1
  490. package/dist/db/postgres-migrations.d.mts +1 -1
  491. package/dist/db/postgres-migrations.mjs +5 -5
  492. package/dist/db/postgres.d.mts +1 -1
  493. package/dist/db/sqlite-migrations.d.mts +1 -1
  494. package/dist/db/sqlite-migrations.mjs +5 -5
  495. package/dist/db/sqlite.d.mts +1 -1
  496. package/dist/db/sqlite.mjs +1 -1
  497. package/dist/db-errors-unnO6yiZ.mjs +65 -0
  498. package/dist/db-errors-unnO6yiZ.mjs.map +1 -0
  499. package/dist/default-B9Tf2n94.mjs +81 -0
  500. package/dist/default-B9Tf2n94.mjs.map +1 -0
  501. package/dist/deferred-tasks-CpPEqsga.d.mts +9 -0
  502. package/dist/deferred-tasks-CpPEqsga.d.mts.map +1 -0
  503. package/dist/destination-DR3IHjmy.mjs +18 -0
  504. package/dist/destination-DR3IHjmy.mjs.map +1 -0
  505. package/dist/dev-typegen-ZeWYV8Jp.mjs +29 -0
  506. package/dist/dev-typegen-ZeWYV8Jp.mjs.map +1 -0
  507. package/dist/device-flow-BbYNZ9Xi.mjs +521 -0
  508. package/dist/device-flow-BbYNZ9Xi.mjs.map +1 -0
  509. package/dist/digest-DlBa7kJl.mjs +194 -0
  510. package/dist/digest-DlBa7kJl.mjs.map +1 -0
  511. package/dist/direct-executor-5T8gkhvA.mjs +117 -0
  512. package/dist/direct-executor-5T8gkhvA.mjs.map +1 -0
  513. package/dist/dist-DY0aOmAP.mjs +810 -0
  514. package/dist/dist-DY0aOmAP.mjs.map +1 -0
  515. package/dist/email-console-v3OM8It-.mjs +50 -0
  516. package/dist/email-console-v3OM8It-.mjs.map +1 -0
  517. package/dist/email-locale-CoZo-oZx.mjs +25 -0
  518. package/dist/email-locale-CoZo-oZx.mjs.map +1 -0
  519. package/dist/emdash-runtime-DwezbIqQ.mjs +4392 -0
  520. package/dist/emdash-runtime-DwezbIqQ.mjs.map +1 -0
  521. package/dist/enrich-C3XIJi0O.mjs +194 -0
  522. package/dist/enrich-C3XIJi0O.mjs.map +1 -0
  523. package/dist/entry-lock-CY7XpdSw.d.mts +4568 -0
  524. package/dist/entry-lock-CY7XpdSw.d.mts.map +1 -0
  525. package/dist/entry-lock-DDuWaAiP.mjs +1211 -0
  526. package/dist/entry-lock-DDuWaAiP.mjs.map +1 -0
  527. package/dist/entry-lock-D_Og9Gy3.mjs +163 -0
  528. package/dist/entry-lock-D_Og9Gy3.mjs.map +1 -0
  529. package/dist/entry-locks-Cp8_BcQQ.mjs +167 -0
  530. package/dist/entry-locks-Cp8_BcQQ.mjs.map +1 -0
  531. package/dist/env-types-Br8uywYA.mjs +38 -0
  532. package/dist/env-types-Br8uywYA.mjs.map +1 -0
  533. package/dist/error-CT2SsX5S.mjs +90 -0
  534. package/dist/error-CT2SsX5S.mjs.map +1 -0
  535. package/dist/errors-BMaCpLeS.mjs +479 -0
  536. package/dist/errors-BMaCpLeS.mjs.map +1 -0
  537. package/dist/errors-DlJwot7q.mjs +120 -0
  538. package/dist/errors-DlJwot7q.mjs.map +1 -0
  539. package/dist/escape-BfbDyuQ-.mjs +9 -0
  540. package/dist/escape-BfbDyuQ-.mjs.map +1 -0
  541. package/dist/fence-BOD3SxZG.mjs +162 -0
  542. package/dist/fence-BOD3SxZG.mjs.map +1 -0
  543. package/dist/field-defs-cache-C7sR7ZeU.mjs +77 -0
  544. package/dist/field-defs-cache-C7sR7ZeU.mjs.map +1 -0
  545. package/dist/field-map-C_rDXfdJ.mjs +84 -0
  546. package/dist/field-map-C_rDXfdJ.mjs.map +1 -0
  547. package/dist/focal-point-CgCcr1Ca.mjs +23 -0
  548. package/dist/focal-point-CgCcr1Ca.mjs.map +1 -0
  549. package/dist/fts-manager-BzFo0xx6.mjs +483 -0
  550. package/dist/fts-manager-BzFo0xx6.mjs.map +1 -0
  551. package/dist/gc-B_c3DPpi.mjs +75 -0
  552. package/dist/gc-B_c3DPpi.mjs.map +1 -0
  553. package/dist/hash-A-o2ZX8O.mjs +37 -0
  554. package/dist/hash-A-o2ZX8O.mjs.map +1 -0
  555. package/dist/hook-result-f8t7hIuu.d.mts +31 -0
  556. package/dist/hook-result-f8t7hIuu.d.mts.map +1 -0
  557. package/dist/hreflang-BpUK9Lcu.mjs +105 -0
  558. package/dist/hreflang-BpUK9Lcu.mjs.map +1 -0
  559. package/dist/hreflang-D07R-RbI.d.mts +50 -0
  560. package/dist/hreflang-D07R-RbI.d.mts.map +1 -0
  561. package/dist/http-route-dispatch-C2Ep2Uf6.mjs +342 -0
  562. package/dist/http-route-dispatch-C2Ep2Uf6.mjs.map +1 -0
  563. package/dist/identity-BivQ8wkV.mjs +35 -0
  564. package/dist/identity-BivQ8wkV.mjs.map +1 -0
  565. package/dist/import-B4UvHNJz.mjs +2126 -0
  566. package/dist/import-B4UvHNJz.mjs.map +1 -0
  567. package/dist/index-C37Ty40w.d.mts +623 -0
  568. package/dist/index-C37Ty40w.d.mts.map +1 -0
  569. package/dist/index.d.mts +23 -23
  570. package/dist/index.mjs +112 -110
  571. package/dist/install-finalization-BbYaB4wj.mjs +58 -0
  572. package/dist/install-finalization-BbYaB4wj.mjs.map +1 -0
  573. package/dist/json-recordset-BjYIWFkV.mjs +12 -0
  574. package/dist/json-recordset-BjYIWFkV.mjs.map +1 -0
  575. package/dist/json-schema-Cde7le0s.mjs +15 -0
  576. package/dist/json-schema-Cde7le0s.mjs.map +1 -0
  577. package/dist/keys-CusTXpw-.mjs +61 -0
  578. package/dist/keys-CusTXpw-.mjs.map +1 -0
  579. package/dist/kinds-DogmNB6n.mjs +974 -0
  580. package/dist/kinds-DogmNB6n.mjs.map +1 -0
  581. package/dist/lifecycle-BLCoCz4T.mjs +25 -0
  582. package/dist/lifecycle-BLCoCz4T.mjs.map +1 -0
  583. package/dist/load-Dds3KhXr.mjs +28 -0
  584. package/dist/load-Dds3KhXr.mjs.map +1 -0
  585. package/dist/loader-D4w4XE7q.mjs +1420 -0
  586. package/dist/loader-D4w4XE7q.mjs.map +1 -0
  587. package/dist/loops-IYgzQdQu.mjs +205 -0
  588. package/dist/loops-IYgzQdQu.mjs.map +1 -0
  589. package/dist/manifest-builder-CGF5kujD.mjs +196 -0
  590. package/dist/manifest-builder-CGF5kujD.mjs.map +1 -0
  591. package/dist/manifest-schema-B0BxPSjB.mjs +497 -0
  592. package/dist/manifest-schema-B0BxPSjB.mjs.map +1 -0
  593. package/dist/marketplace-DNvEGLqU.mjs +257 -0
  594. package/dist/marketplace-DNvEGLqU.mjs.map +1 -0
  595. package/dist/media/image-endpoint.d.mts +3 -2
  596. package/dist/media/image-endpoint.d.mts.map +1 -1
  597. package/dist/media/image-endpoint.mjs +17 -8
  598. package/dist/media/image-endpoint.mjs.map +1 -1
  599. package/dist/media/index.d.mts +1 -1
  600. package/dist/media/index.mjs +7 -6
  601. package/dist/media/index.mjs.map +1 -1
  602. package/dist/media/local-runtime.d.mts +14 -14
  603. package/dist/media/local-runtime.d.mts.map +1 -1
  604. package/dist/media/local-runtime.mjs +18 -13
  605. package/dist/media/local-runtime.mjs.map +1 -1
  606. package/dist/media-BL9MRrSG.mjs +294 -0
  607. package/dist/media-BL9MRrSG.mjs.map +1 -0
  608. package/dist/media-B_x5B9EA.mjs +373 -0
  609. package/dist/media-B_x5B9EA.mjs.map +1 -0
  610. package/dist/media-allowlist-CpmqBbIQ.mjs +45 -0
  611. package/dist/media-allowlist-CpmqBbIQ.mjs.map +1 -0
  612. package/dist/media-folders-CNs_A_B-.mjs +210 -0
  613. package/dist/media-folders-CNs_A_B-.mjs.map +1 -0
  614. package/dist/media-qTTHVkls.mjs +416 -0
  615. package/dist/media-qTTHVkls.mjs.map +1 -0
  616. package/dist/media-url-GJboA1fl.mjs +43 -0
  617. package/dist/media-url-GJboA1fl.mjs.map +1 -0
  618. package/dist/media-usage-ClWgrX0d.mjs +282 -0
  619. package/dist/media-usage-ClWgrX0d.mjs.map +1 -0
  620. package/dist/media-usage-activation-B8Fjtq0h.mjs +78 -0
  621. package/dist/media-usage-activation-B8Fjtq0h.mjs.map +1 -0
  622. package/dist/media-usage-work-L8-Au4j-.mjs +1036 -0
  623. package/dist/media-usage-work-L8-Au4j-.mjs.map +1 -0
  624. package/dist/media-usage-work-LXgze5j9.mjs +151 -0
  625. package/dist/media-usage-work-LXgze5j9.mjs.map +1 -0
  626. package/dist/menus-BAxcbsbv.mjs +818 -0
  627. package/dist/menus-BAxcbsbv.mjs.map +1 -0
  628. package/dist/menus-BI6oBXco.mjs +92 -0
  629. package/dist/menus-BI6oBXco.mjs.map +1 -0
  630. package/dist/menus-fvGFd4m6.mjs +3725 -0
  631. package/dist/menus-fvGFd4m6.mjs.map +1 -0
  632. package/dist/migrations/index.d.mts +1 -1
  633. package/dist/migrations/index.mjs +4 -4
  634. package/dist/mime-DwhtRyUt.mjs +81 -0
  635. package/dist/mime-DwhtRyUt.mjs.map +1 -0
  636. package/dist/mode-DIDSUwuN.mjs +23 -0
  637. package/dist/mode-DIDSUwuN.mjs.map +1 -0
  638. package/dist/node-sqlite-compat-Ddr_mlR9.mjs +63 -0
  639. package/dist/node-sqlite-compat-Ddr_mlR9.mjs.map +1 -0
  640. package/dist/normalize-Ip_hFAm8.mjs +216 -0
  641. package/dist/normalize-Ip_hFAm8.mjs.map +1 -0
  642. package/dist/oauth-authorization-CcMgeT8R.mjs +274 -0
  643. package/dist/oauth-authorization-CcMgeT8R.mjs.map +1 -0
  644. package/dist/oauth-clients-C_osi0PU.mjs +266 -0
  645. package/dist/oauth-clients-C_osi0PU.mjs.map +1 -0
  646. package/dist/oauth-state-store-DGLP-6CK.mjs +50 -0
  647. package/dist/oauth-state-store-DGLP-6CK.mjs.map +1 -0
  648. package/dist/oauth-user-lookup-z77Ee0Hm.mjs +26 -0
  649. package/dist/oauth-user-lookup-z77Ee0Hm.mjs.map +1 -0
  650. package/dist/object-cache/memory.d.mts +1 -1
  651. package/dist/object-cache-EjasjtoQ.mjs +586 -0
  652. package/dist/object-cache-EjasjtoQ.mjs.map +1 -0
  653. package/dist/options-CmUpkyKW.d.mts +81 -0
  654. package/dist/options-CmUpkyKW.d.mts.map +1 -0
  655. package/dist/ownership-DCk5NutQ.mjs +12 -0
  656. package/dist/ownership-DCk5NutQ.mjs.map +1 -0
  657. package/dist/page/index.d.mts +2 -2
  658. package/dist/page/index.mjs +14 -12
  659. package/dist/page/index.mjs.map +1 -1
  660. package/dist/parse-2W-E2f7w.mjs +81 -0
  661. package/dist/parse-2W-E2f7w.mjs.map +1 -0
  662. package/dist/parse-6pN8Xqg5.d.mts +176 -0
  663. package/dist/parse-6pN8Xqg5.d.mts.map +1 -0
  664. package/dist/passkey-config-DTTZB6EI.mjs +46 -0
  665. package/dist/passkey-config-DTTZB6EI.mjs.map +1 -0
  666. package/dist/paths-CQA62503.mjs +77 -0
  667. package/dist/paths-CQA62503.mjs.map +1 -0
  668. package/dist/patterns-CryGz_EV.mjs +159 -0
  669. package/dist/patterns-CryGz_EV.mjs.map +1 -0
  670. package/dist/placeholder-BlfXkucE.d.mts +313 -0
  671. package/dist/placeholder-BlfXkucE.d.mts.map +1 -0
  672. package/dist/plan-B95eiwnF.mjs +135 -0
  673. package/dist/plan-B95eiwnF.mjs.map +1 -0
  674. package/dist/plugin-test-runtime.d.mts +14 -14
  675. package/dist/plugin-test-runtime.d.mts.map +1 -1
  676. package/dist/plugin-test-runtime.mjs +121 -119
  677. package/dist/plugin-tool-name-BDA7m4Xa.mjs +27 -0
  678. package/dist/plugin-tool-name-BDA7m4Xa.mjs.map +1 -0
  679. package/dist/plugin-types.d.mts +2 -2
  680. package/dist/plugin-utils.d.mts +12 -12
  681. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  682. package/dist/plugins/adapt-sandbox-entry.mjs +4 -4
  683. package/dist/plugins/host.d.mts +5 -5
  684. package/dist/plugins/host.mjs +57 -55
  685. package/dist/plugins-BhxLJ008.mjs +261 -0
  686. package/dist/plugins-BhxLJ008.mjs.map +1 -0
  687. package/dist/policy-DOJ2sPqB.mjs +53 -0
  688. package/dist/policy-DOJ2sPqB.mjs.map +1 -0
  689. package/dist/portable-text-RCMpCj47.mjs +311 -0
  690. package/dist/portable-text-RCMpCj47.mjs.map +1 -0
  691. package/dist/preview-DFwL5APO.mjs +107 -0
  692. package/dist/preview-DFwL5APO.mjs.map +1 -0
  693. package/dist/protocol-B-ztxp_y.d.mts +65 -0
  694. package/dist/protocol-B-ztxp_y.d.mts.map +1 -0
  695. package/dist/public-plugin-api-routes-ik4fPZMv.mjs +316 -0
  696. package/dist/public-plugin-api-routes-ik4fPZMv.mjs.map +1 -0
  697. package/dist/public-submission-C5JZIykp.mjs +251 -0
  698. package/dist/public-submission-C5JZIykp.mjs.map +1 -0
  699. package/dist/public-url-CQwzRljH.mjs +101 -0
  700. package/dist/public-url-CQwzRljH.mjs.map +1 -0
  701. package/dist/query-BFHjCzSh.mjs +37 -0
  702. package/dist/query-BFHjCzSh.mjs.map +1 -0
  703. package/dist/query-DuwyFr5Z.mjs +41 -0
  704. package/dist/query-DuwyFr5Z.mjs.map +1 -0
  705. package/dist/query-eR_Nz70M.mjs +1157 -0
  706. package/dist/query-eR_Nz70M.mjs.map +1 -0
  707. package/dist/range-BQWPjWgQ.mjs +51 -0
  708. package/dist/range-BQWPjWgQ.mjs.map +1 -0
  709. package/dist/rate-limit-mPKeQ3sm.mjs +127 -0
  710. package/dist/rate-limit-mPKeQ3sm.mjs.map +1 -0
  711. package/dist/receipt-CmUpyuW5.mjs +43 -0
  712. package/dist/receipt-CmUpyuW5.mjs.map +1 -0
  713. package/dist/redirect-BtiMkehU.mjs +19 -0
  714. package/dist/redirect-BtiMkehU.mjs.map +1 -0
  715. package/dist/redirect-DcmNMvOs.mjs +423 -0
  716. package/dist/redirect-DcmNMvOs.mjs.map +1 -0
  717. package/dist/redirect-paths-K5i3xYfR.mjs +36 -0
  718. package/dist/redirect-paths-K5i3xYfR.mjs.map +1 -0
  719. package/dist/redirects-BA_TvtuH.mjs +148 -0
  720. package/dist/redirects-BA_TvtuH.mjs.map +1 -0
  721. package/dist/redirects-BIrRvgn4.mjs +446 -0
  722. package/dist/redirects-BIrRvgn4.mjs.map +1 -0
  723. package/dist/registry/testing.mjs +3 -3
  724. package/dist/registry-DymfZkAN.mjs +8374 -0
  725. package/dist/registry-DymfZkAN.mjs.map +1 -0
  726. package/dist/relations-DrEs3Sc1.mjs +789 -0
  727. package/dist/relations-DrEs3Sc1.mjs.map +1 -0
  728. package/dist/request-cache-5z2WzWmh.mjs +104 -0
  729. package/dist/request-cache-5z2WzWmh.mjs.map +1 -0
  730. package/dist/request-context.d.mts +12 -1
  731. package/dist/request-context.d.mts.map +1 -1
  732. package/dist/request-context.mjs.map +1 -1
  733. package/dist/request-meta-o8RIf9pa.mjs +141 -0
  734. package/dist/request-meta-o8RIf9pa.mjs.map +1 -0
  735. package/dist/resolve-CVy9xgy_.mjs +102 -0
  736. package/dist/resolve-CVy9xgy_.mjs.map +1 -0
  737. package/dist/resolve-DdNXBJSr.mjs +199 -0
  738. package/dist/resolve-DdNXBJSr.mjs.map +1 -0
  739. package/dist/revision-Dx7Uth1X.mjs +374 -0
  740. package/dist/revision-Dx7Uth1X.mjs.map +1 -0
  741. package/dist/route-cache-DAG5dPhh.mjs +20 -0
  742. package/dist/route-cache-DAG5dPhh.mjs.map +1 -0
  743. package/dist/route-wire-Xbsu8Vih.mjs +197 -0
  744. package/dist/route-wire-Xbsu8Vih.mjs.map +1 -0
  745. package/dist/routes-YQkSOsws.mjs +272 -0
  746. package/dist/routes-YQkSOsws.mjs.map +1 -0
  747. package/dist/runner-CLorw5vo.mjs +6669 -0
  748. package/dist/runner-CLorw5vo.mjs.map +1 -0
  749. package/dist/runner-g1A9P-wD.d.mts +73 -0
  750. package/dist/runner-g1A9P-wD.d.mts.map +1 -0
  751. package/dist/runtime.d.mts +13 -13
  752. package/dist/runtime.mjs +6 -5
  753. package/dist/runtime.mjs.map +1 -1
  754. package/dist/schema/project-env-types.mjs +49 -47
  755. package/dist/schema/project-env-types.mjs.map +1 -1
  756. package/dist/schema-Bss8qImF.mjs +13 -0
  757. package/dist/schema-Bss8qImF.mjs.map +1 -0
  758. package/dist/schema-C036pqEw.mjs +815 -0
  759. package/dist/schema-C036pqEw.mjs.map +1 -0
  760. package/dist/scopes-C_SoYl9x.mjs +34 -0
  761. package/dist/scopes-C_SoYl9x.mjs.map +1 -0
  762. package/dist/search-uNqCgePJ.mjs +450 -0
  763. package/dist/search-uNqCgePJ.mjs.map +1 -0
  764. package/dist/sections-BLusMa96.mjs +346 -0
  765. package/dist/sections-BLusMa96.mjs.map +1 -0
  766. package/dist/seed/index.d.mts +2 -2
  767. package/dist/seed/index.mjs +47 -45
  768. package/dist/seo/index.d.mts +3 -3
  769. package/dist/seo/index.mjs +32 -30
  770. package/dist/seo/index.mjs.map +1 -1
  771. package/dist/seo-BodxIpws.mjs +188 -0
  772. package/dist/seo-BodxIpws.mjs.map +1 -0
  773. package/dist/seo-DaMYIQY8.mjs +133 -0
  774. package/dist/seo-DaMYIQY8.mjs.map +1 -0
  775. package/dist/service-BuM1BRsA.mjs +150 -0
  776. package/dist/service-BuM1BRsA.mjs.map +1 -0
  777. package/dist/session-user-2DpQDMKw.mjs +61 -0
  778. package/dist/session-user-2DpQDMKw.mjs.map +1 -0
  779. package/dist/settings-B3ZmPF_8.mjs +73 -0
  780. package/dist/settings-B3ZmPF_8.mjs.map +1 -0
  781. package/dist/settings-P5hwPX6_.mjs +66 -0
  782. package/dist/settings-P5hwPX6_.mjs.map +1 -0
  783. package/dist/settings-yIqoN-Ok.mjs +519 -0
  784. package/dist/settings-yIqoN-Ok.mjs.map +1 -0
  785. package/dist/setup-complete-eu6MUQnt.mjs +65 -0
  786. package/dist/setup-complete-eu6MUQnt.mjs.map +1 -0
  787. package/dist/setup-nonce-CyPOapqY.mjs +25 -0
  788. package/dist/setup-nonce-CyPOapqY.mjs.map +1 -0
  789. package/dist/site-domain-8lEJl_0U.mjs +131 -0
  790. package/dist/site-domain-8lEJl_0U.mjs.map +1 -0
  791. package/dist/site-settings-uPkW0e6o.mjs +50 -0
  792. package/dist/site-settings-uPkW0e6o.mjs.map +1 -0
  793. package/dist/site-url-25SGVXwL.mjs +45 -0
  794. package/dist/site-url-25SGVXwL.mjs.map +1 -0
  795. package/dist/sitemap-name-DTK7CYnY.mjs +26 -0
  796. package/dist/sitemap-name-DTK7CYnY.mjs.map +1 -0
  797. package/dist/slug-BEDl2IJY.mjs +16 -0
  798. package/dist/slug-BEDl2IJY.mjs.map +1 -0
  799. package/dist/slugify-BDEG9pLk.mjs +22 -0
  800. package/dist/slugify-BDEG9pLk.mjs.map +1 -0
  801. package/dist/snapshot-CvkIBRLY.mjs +414 -0
  802. package/dist/snapshot-CvkIBRLY.mjs.map +1 -0
  803. package/dist/ssrf-mcCKMH6B.mjs +406 -0
  804. package/dist/ssrf-mcCKMH6B.mjs.map +1 -0
  805. package/dist/stage-BQfGzGOy.mjs +662 -0
  806. package/dist/stage-BQfGzGOy.mjs.map +1 -0
  807. package/dist/staged-B5vQGeSf.mjs +686 -0
  808. package/dist/staged-B5vQGeSf.mjs.map +1 -0
  809. package/dist/state-dO6t6OxV.mjs +178 -0
  810. package/dist/state-dO6t6OxV.mjs.map +1 -0
  811. package/dist/status-DSURZwKS.mjs +30 -0
  812. package/dist/status-DSURZwKS.mjs.map +1 -0
  813. package/dist/storage/local.d.mts +1 -1
  814. package/dist/storage/local.mjs +2 -2
  815. package/dist/storage/s3.d.mts +1 -1
  816. package/dist/storage/s3.mjs +1 -1
  817. package/dist/storage-query-Cy0SZ8iG.d.mts +1619 -0
  818. package/dist/storage-query-Cy0SZ8iG.d.mts.map +1 -0
  819. package/dist/tar-DWzcUZ_Q.mjs +449 -0
  820. package/dist/tar-DWzcUZ_Q.mjs.map +1 -0
  821. package/dist/target-C9htUbrT.mjs +27 -0
  822. package/dist/target-C9htUbrT.mjs.map +1 -0
  823. package/dist/taxonomies-By2aGvq2.mjs +729 -0
  824. package/dist/taxonomies-By2aGvq2.mjs.map +1 -0
  825. package/dist/taxonomies-CVRd_jz0.mjs +937 -0
  826. package/dist/taxonomies-CVRd_jz0.mjs.map +1 -0
  827. package/dist/taxonomy-BG_xu2Qf.mjs +563 -0
  828. package/dist/taxonomy-BG_xu2Qf.mjs.map +1 -0
  829. package/dist/tokens-U5vzgSrM.mjs +171 -0
  830. package/dist/tokens-U5vzgSrM.mjs.map +1 -0
  831. package/dist/transaction-CkoQ5wqQ.mjs +29 -0
  832. package/dist/transaction-CkoQ5wqQ.mjs.map +1 -0
  833. package/dist/transfer-DA0OSfaT.mjs +8873 -0
  834. package/dist/transfer-DA0OSfaT.mjs.map +1 -0
  835. package/dist/transfer-Pyf3d7ka.mjs +166 -0
  836. package/dist/transfer-Pyf3d7ka.mjs.map +1 -0
  837. package/dist/transfer-download-cX7SuWEy.mjs +33 -0
  838. package/dist/transfer-download-cX7SuWEy.mjs.map +1 -0
  839. package/dist/transformations-DczubD4j.mjs +196 -0
  840. package/dist/transformations-DczubD4j.mjs.map +1 -0
  841. package/dist/transport-Dm5QzpT_.d.mts +42 -0
  842. package/dist/transport-Dm5QzpT_.d.mts.map +1 -0
  843. package/dist/transport-DtIrjEFO.mjs +137 -0
  844. package/dist/transport-DtIrjEFO.mjs.map +1 -0
  845. package/dist/trusted-proxy-CDRd5Kmw.mjs +51 -0
  846. package/dist/trusted-proxy-CDRd5Kmw.mjs.map +1 -0
  847. package/dist/turnstile-Ct5YuFNY.mjs +58 -0
  848. package/dist/turnstile-Ct5YuFNY.mjs.map +1 -0
  849. package/dist/types-Bgujop4S.d.mts +374 -0
  850. package/dist/types-Bgujop4S.d.mts.map +1 -0
  851. package/dist/types-BirHUEXt.mjs +18 -0
  852. package/dist/types-BirHUEXt.mjs.map +1 -0
  853. package/dist/types-BqJgTL_y.d.mts +293 -0
  854. package/dist/types-BqJgTL_y.d.mts.map +1 -0
  855. package/dist/types-C-lrOt9T.d.mts +87 -0
  856. package/dist/types-C-lrOt9T.d.mts.map +1 -0
  857. package/dist/types-CCEHAhOv.d.mts +916 -0
  858. package/dist/types-CCEHAhOv.d.mts.map +1 -0
  859. package/dist/types-CLVwYRBr.d.mts +227 -0
  860. package/dist/types-CLVwYRBr.d.mts.map +1 -0
  861. package/dist/types-C_asjp1J.mjs +201 -0
  862. package/dist/types-C_asjp1J.mjs.map +1 -0
  863. package/dist/types-CadaL_k8.d.mts +366 -0
  864. package/dist/types-CadaL_k8.d.mts.map +1 -0
  865. package/dist/types-DVbTb4Hk.mjs +77 -0
  866. package/dist/types-DVbTb4Hk.mjs.map +1 -0
  867. package/dist/types-Ddku19Zw.d.mts +209 -0
  868. package/dist/types-Ddku19Zw.d.mts.map +1 -0
  869. package/dist/types-DwhEvIVb.mjs +133 -0
  870. package/dist/types-DwhEvIVb.mjs.map +1 -0
  871. package/dist/types-FIiGQ3PE.mjs +16 -0
  872. package/dist/types-FIiGQ3PE.mjs.map +1 -0
  873. package/dist/types-OauzCOY0.mjs +37 -0
  874. package/dist/types-OauzCOY0.mjs.map +1 -0
  875. package/dist/types-mQGTpP-4.d.mts +1741 -0
  876. package/dist/types-mQGTpP-4.d.mts.map +1 -0
  877. package/dist/types-nbjz3Mgm.d.mts +125 -0
  878. package/dist/types-nbjz3Mgm.d.mts.map +1 -0
  879. package/dist/update-check-hW32-0pf.mjs +161 -0
  880. package/dist/update-check-hW32-0pf.mjs.map +1 -0
  881. package/dist/upload-attempts-Bpik1TLF.mjs +32 -0
  882. package/dist/upload-attempts-Bpik1TLF.mjs.map +1 -0
  883. package/dist/url-DTfGDJhI.mjs +104 -0
  884. package/dist/url-DTfGDJhI.mjs.map +1 -0
  885. package/dist/url-pattern-CJeCyNij.mjs +41 -0
  886. package/dist/url-pattern-CJeCyNij.mjs.map +1 -0
  887. package/dist/user-nQInBZbE.mjs +171 -0
  888. package/dist/user-nQInBZbE.mjs.map +1 -0
  889. package/dist/utils-govudc_U.mjs +442 -0
  890. package/dist/utils-govudc_U.mjs.map +1 -0
  891. package/dist/validate-BxLvcDYh.mjs +524 -0
  892. package/dist/validate-BxLvcDYh.mjs.map +1 -0
  893. package/dist/validate-mnoVfASU.d.mts +468 -0
  894. package/dist/validate-mnoVfASU.d.mts.map +1 -0
  895. package/dist/validation-DQDEvh87.mjs +221 -0
  896. package/dist/validation-DQDEvh87.mjs.map +1 -0
  897. package/dist/version-BOFfLiVT.mjs +49 -0
  898. package/dist/version-BOFfLiVT.mjs.map +1 -0
  899. package/dist/version-Dcvx_C9g.mjs +7 -0
  900. package/dist/version-Dcvx_C9g.mjs.map +1 -0
  901. package/dist/version-DzTJ3gD7.mjs +9 -0
  902. package/dist/version-DzTJ3gD7.mjs.map +1 -0
  903. package/dist/video-BX7AI5nJ.mjs +54 -0
  904. package/dist/video-BX7AI5nJ.mjs.map +1 -0
  905. package/dist/virtual-modules-CU29aip9.mjs +515 -0
  906. package/dist/virtual-modules-CU29aip9.mjs.map +1 -0
  907. package/dist/widgets-HIeFmZxt.mjs +121 -0
  908. package/dist/widgets-HIeFmZxt.mjs.map +1 -0
  909. package/dist/wxr-taxonomies-Dy2i2ON3.d.mts +34 -0
  910. package/dist/wxr-taxonomies-Dy2i2ON3.d.mts.map +1 -0
  911. package/dist/wxr-taxonomies-DyOGhl8W.mjs +454 -0
  912. package/dist/wxr-taxonomies-DyOGhl8W.mjs.map +1 -0
  913. package/dist/zod-generator-VxCPVDpo.mjs +425 -0
  914. package/dist/zod-generator-VxCPVDpo.mjs.map +1 -0
  915. package/package.json +5 -5
  916. package/src/api/handlers/bulk-tag.ts +11 -3
  917. package/src/api/handlers/bylines.ts +6 -2
  918. package/src/api/handlers/content.ts +107 -7
  919. package/src/api/handlers/dashboard.ts +13 -6
  920. package/src/api/handlers/menus.ts +24 -10
  921. package/src/api/handlers/relations.ts +15 -1
  922. package/src/api/handlers/taxonomies.ts +27 -17
  923. package/src/astro/image-endpoint.ts +23 -2
  924. package/src/astro/integration/vite-config.ts +16 -8
  925. package/src/astro/middleware/redirect.ts +158 -63
  926. package/src/astro/middleware/request-context.ts +1 -0
  927. package/src/astro/middleware.ts +17 -4
  928. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +4 -1
  929. package/src/astro/routes/api/content/[collection]/[id]/translations.ts +14 -1
  930. package/src/astro/routes/api/dashboard.ts +2 -0
  931. package/src/astro/routes/api/media/file/[...key].ts +13 -3
  932. package/src/auth/types.ts +6 -0
  933. package/src/cli/commands/export-seed.ts +6 -4
  934. package/src/cli/commands/login.ts +2 -4
  935. package/src/client/index.ts +1 -0
  936. package/src/client/transport.ts +11 -7
  937. package/src/components/EmDashImage.astro +14 -2
  938. package/src/components/InlinePortableTextEditor.tsx +4 -1
  939. package/src/database/migrations/content-sized.ts +82 -0
  940. package/src/database/migrations/policy.ts +28 -2
  941. package/src/database/migrations/runner.ts +48 -0
  942. package/src/database/repositories/byline.ts +73 -17
  943. package/src/database/repositories/comment.ts +17 -7
  944. package/src/database/repositories/content.ts +79 -19
  945. package/src/database/repositories/menu.ts +77 -11
  946. package/src/database/repositories/taxonomy-def.ts +9 -2
  947. package/src/database/repositories/taxonomy.ts +47 -14
  948. package/src/database/repositories/types.ts +11 -0
  949. package/src/emdash-runtime.ts +37 -10
  950. package/src/fields/image.ts +1 -0
  951. package/src/i18n/config.ts +58 -10
  952. package/src/i18n/normalize.ts +16 -2
  953. package/src/i18n/query.ts +47 -0
  954. package/src/i18n/resolve.ts +8 -3
  955. package/src/import/wxr-taxonomies.ts +3 -2
  956. package/src/loader.ts +80 -22
  957. package/src/mcp/server.ts +28 -1
  958. package/src/media/caption.ts +30 -0
  959. package/src/media/image-endpoint.ts +13 -6
  960. package/src/media/local-runtime.ts +3 -0
  961. package/src/media/normalize.ts +15 -8
  962. package/src/media/responsive.ts +12 -2
  963. package/src/media/types.ts +16 -3
  964. package/src/menus/index.ts +21 -11
  965. package/src/migrations/manifest.ts +1 -0
  966. package/src/plugins/byline-access.ts +3 -1
  967. package/src/plugins/context.ts +1 -2
  968. package/src/plugins/storage-indexes.ts +7 -3
  969. package/src/query.ts +23 -13
  970. package/src/redirects/artifacts.ts +39 -5
  971. package/src/references/field-map.ts +6 -4
  972. package/src/request-context.ts +8 -0
  973. package/src/schema/collection-slugs-cache.ts +31 -17
  974. package/src/schema/registry.ts +9 -0
  975. package/src/schema/zod-generator.ts +2 -1
  976. package/src/search/fts-manager.ts +98 -28
  977. package/src/search/query.ts +31 -64
  978. package/src/seed/apply.ts +191 -87
  979. package/src/seed/types.ts +3 -1
  980. package/src/settings/index.ts +135 -35
  981. package/src/settings/version.ts +54 -0
  982. package/src/taxonomies/index.ts +95 -52
  983. package/src/taxonomies/term-counts.ts +2 -1
  984. package/src/utils/db-errors.ts +15 -0
  985. package/src/virtual-modules.d.ts +1 -0
  986. package/dist/action-token-SK8zyN7w.mjs +0 -26
  987. package/dist/action-token-SK8zyN7w.mjs.map +0 -1
  988. package/dist/activation-Dim4YMM7.mjs +0 -387
  989. package/dist/activation-Dim4YMM7.mjs.map +0 -1
  990. package/dist/adapters-F_xorvWv.d.mts +0 -173
  991. package/dist/adapters-F_xorvWv.d.mts.map +0 -1
  992. package/dist/allowed-origins-CEug-p0t.mjs +0 -116
  993. package/dist/allowed-origins-CEug-p0t.mjs.map +0 -1
  994. package/dist/api-D-7BNHoz.mjs +0 -5025
  995. package/dist/api-D-7BNHoz.mjs.map +0 -1
  996. package/dist/api-tokens-Bx38ZCQp.mjs +0 -173
  997. package/dist/api-tokens-Bx38ZCQp.mjs.map +0 -1
  998. package/dist/apply-T7ATgzCh.mjs +0 -1702
  999. package/dist/apply-T7ATgzCh.mjs.map +0 -1
  1000. package/dist/approvals-D-m6wvGl.mjs +0 -460
  1001. package/dist/approvals-D-m6wvGl.mjs.map +0 -1
  1002. package/dist/artifact-fetch-DIh7iyOV.mjs +0 -659
  1003. package/dist/artifact-fetch-DIh7iyOV.mjs.map +0 -1
  1004. package/dist/artifacts-htGyfCSt.mjs +0 -307
  1005. package/dist/artifacts-htGyfCSt.mjs.map +0 -1
  1006. package/dist/audit-_gieLVGU.mjs +0 -127
  1007. package/dist/audit-_gieLVGU.mjs.map +0 -1
  1008. package/dist/authoritative-records-CQlB3JzE.mjs +0 -5183
  1009. package/dist/authoritative-records-CQlB3JzE.mjs.map +0 -1
  1010. package/dist/authorize-DPFBGbE6.mjs +0 -74
  1011. package/dist/authorize-DPFBGbE6.mjs.map +0 -1
  1012. package/dist/backup-3FgVxiDJ.mjs +0 -246
  1013. package/dist/backup-3FgVxiDJ.mjs.map +0 -1
  1014. package/dist/block-types-CYcG56JB.mjs +0 -132
  1015. package/dist/block-types-CYcG56JB.mjs.map +0 -1
  1016. package/dist/block-values-gCX4HBSl.mjs +0 -215
  1017. package/dist/block-values-gCX4HBSl.mjs.map +0 -1
  1018. package/dist/byline-BR1qhyiw.mjs +0 -909
  1019. package/dist/byline-BR1qhyiw.mjs.map +0 -1
  1020. package/dist/byline-fields-4ClDC88c.mjs +0 -123
  1021. package/dist/byline-fields-4ClDC88c.mjs.map +0 -1
  1022. package/dist/byline-fields-BLXZnX7N.mjs +0 -280
  1023. package/dist/byline-fields-BLXZnX7N.mjs.map +0 -1
  1024. package/dist/byline-registry-dvt4N3xV.mjs +0 -406
  1025. package/dist/byline-registry-dvt4N3xV.mjs.map +0 -1
  1026. package/dist/bylines-CVOvRUL7.mjs +0 -234
  1027. package/dist/bylines-CVOvRUL7.mjs.map +0 -1
  1028. package/dist/bylines-DxOs9B7z.mjs +0 -150
  1029. package/dist/bylines-DxOs9B7z.mjs.map +0 -1
  1030. package/dist/cache-CEU9wo_h.mjs +0 -151
  1031. package/dist/cache-CEU9wo_h.mjs.map +0 -1
  1032. package/dist/canonical-BudtH-Fx.mjs +0 -174
  1033. package/dist/canonical-BudtH-Fx.mjs.map +0 -1
  1034. package/dist/capture-triggers-CT6dK9zd.mjs +0 -362
  1035. package/dist/capture-triggers-CT6dK9zd.mjs.map +0 -1
  1036. package/dist/challenge-store-C17BYx2-.mjs +0 -51
  1037. package/dist/challenge-store-C17BYx2-.mjs.map +0 -1
  1038. package/dist/checksum-CEqvfxGX.mjs +0 -162
  1039. package/dist/checksum-CEqvfxGX.mjs.map +0 -1
  1040. package/dist/chrome-tags-BIKBMZYO.mjs +0 -24
  1041. package/dist/chrome-tags-BIKBMZYO.mjs.map +0 -1
  1042. package/dist/chunks-xC4UD5-S.mjs +0 -25
  1043. package/dist/chunks-xC4UD5-S.mjs.map +0 -1
  1044. package/dist/collection-slugs-cache-e09QeJQt.mjs +0 -85
  1045. package/dist/collection-slugs-cache-e09QeJQt.mjs.map +0 -1
  1046. package/dist/comment-UvIWDKcW.mjs +0 -325
  1047. package/dist/comment-UvIWDKcW.mjs.map +0 -1
  1048. package/dist/comment-reaction-dGp6_FRo.mjs +0 -85
  1049. package/dist/comment-reaction-dGp6_FRo.mjs.map +0 -1
  1050. package/dist/comments-pej-_BUO.mjs +0 -195
  1051. package/dist/comments-pej-_BUO.mjs.map +0 -1
  1052. package/dist/comments-yiRFx3w5.mjs +0 -99
  1053. package/dist/comments-yiRFx3w5.mjs.map +0 -1
  1054. package/dist/components-Brp__9xo.mjs +0 -112
  1055. package/dist/components-Brp__9xo.mjs.map +0 -1
  1056. package/dist/config-Bsm_u_oE.d.mts +0 -6799
  1057. package/dist/config-Bsm_u_oE.d.mts.map +0 -1
  1058. package/dist/config-CFMojMFK.d.mts +0 -39
  1059. package/dist/config-CFMojMFK.d.mts.map +0 -1
  1060. package/dist/config-CvmjJcVw.mjs +0 -73
  1061. package/dist/config-CvmjJcVw.mjs.map +0 -1
  1062. package/dist/config-DBU6iUQB.mjs +0 -228
  1063. package/dist/config-DBU6iUQB.mjs.map +0 -1
  1064. package/dist/connection-BtEN_lP9.mjs +0 -36
  1065. package/dist/connection-BtEN_lP9.mjs.map +0 -1
  1066. package/dist/content-DQSRZTVw.mjs +0 -2075
  1067. package/dist/content-DQSRZTVw.mjs.map +0 -1
  1068. package/dist/content-list-query-CYKcY6Vi.d.mts +0 -26
  1069. package/dist/content-list-query-CYKcY6Vi.d.mts.map +0 -1
  1070. package/dist/content-policy-Dm32n9C6.mjs +0 -46
  1071. package/dist/content-policy-Dm32n9C6.mjs.map +0 -1
  1072. package/dist/content-repair-DNh5--x5.mjs +0 -442
  1073. package/dist/content-repair-DNh5--x5.mjs.map +0 -1
  1074. package/dist/context-BYptmCN0.mjs +0 -2090
  1075. package/dist/context-BYptmCN0.mjs.map +0 -1
  1076. package/dist/credits-B9iORdWB.mjs +0 -110
  1077. package/dist/credits-B9iORdWB.mjs.map +0 -1
  1078. package/dist/cron-D7obTIfk.mjs +0 -306
  1079. package/dist/cron-D7obTIfk.mjs.map +0 -1
  1080. package/dist/dashboard-D0jcgBD7.mjs +0 -167
  1081. package/dist/dashboard-D0jcgBD7.mjs.map +0 -1
  1082. package/dist/db-errors-CBD5yMro.mjs +0 -55
  1083. package/dist/db-errors-CBD5yMro.mjs.map +0 -1
  1084. package/dist/default-C0W-PhAp.mjs +0 -81
  1085. package/dist/default-C0W-PhAp.mjs.map +0 -1
  1086. package/dist/deferred-tasks-ZvUECSzI.d.mts +0 -9
  1087. package/dist/deferred-tasks-ZvUECSzI.d.mts.map +0 -1
  1088. package/dist/destination-r2zIAZ2S.mjs +0 -18
  1089. package/dist/destination-r2zIAZ2S.mjs.map +0 -1
  1090. package/dist/dev-typegen-EBni_pOQ.mjs +0 -29
  1091. package/dist/dev-typegen-EBni_pOQ.mjs.map +0 -1
  1092. package/dist/device-flow-BkFKBoAn.mjs +0 -521
  1093. package/dist/device-flow-BkFKBoAn.mjs.map +0 -1
  1094. package/dist/digest-DJ1tHCgy.mjs +0 -194
  1095. package/dist/digest-DJ1tHCgy.mjs.map +0 -1
  1096. package/dist/direct-executor-Cbxzg4qe.mjs +0 -117
  1097. package/dist/direct-executor-Cbxzg4qe.mjs.map +0 -1
  1098. package/dist/dist-Cfu8mMBs.mjs +0 -810
  1099. package/dist/dist-Cfu8mMBs.mjs.map +0 -1
  1100. package/dist/email-console-FFVJWb9N.mjs +0 -50
  1101. package/dist/email-console-FFVJWb9N.mjs.map +0 -1
  1102. package/dist/email-locale-BJ8DjTzZ.mjs +0 -25
  1103. package/dist/email-locale-BJ8DjTzZ.mjs.map +0 -1
  1104. package/dist/emdash-runtime-DVi7vtXC.mjs +0 -4379
  1105. package/dist/emdash-runtime-DVi7vtXC.mjs.map +0 -1
  1106. package/dist/enrich-Duu4sV3a.mjs +0 -194
  1107. package/dist/enrich-Duu4sV3a.mjs.map +0 -1
  1108. package/dist/entry-lock-C7VX0NGK.d.mts +0 -4568
  1109. package/dist/entry-lock-C7VX0NGK.d.mts.map +0 -1
  1110. package/dist/entry-lock-DLxCffFW.mjs +0 -163
  1111. package/dist/entry-lock-DLxCffFW.mjs.map +0 -1
  1112. package/dist/entry-lock-Df6-XhIu.mjs +0 -1211
  1113. package/dist/entry-lock-Df6-XhIu.mjs.map +0 -1
  1114. package/dist/entry-locks-DJAqVweV.mjs +0 -167
  1115. package/dist/entry-locks-DJAqVweV.mjs.map +0 -1
  1116. package/dist/env-types-C3FCVBWe.mjs +0 -38
  1117. package/dist/env-types-C3FCVBWe.mjs.map +0 -1
  1118. package/dist/error-CVWeIOku.mjs +0 -90
  1119. package/dist/error-CVWeIOku.mjs.map +0 -1
  1120. package/dist/errors-B4f4It-2.mjs +0 -120
  1121. package/dist/errors-B4f4It-2.mjs.map +0 -1
  1122. package/dist/errors-BOYNdIo3.mjs +0 -479
  1123. package/dist/errors-BOYNdIo3.mjs.map +0 -1
  1124. package/dist/escape-lsNq38PP.mjs +0 -9
  1125. package/dist/escape-lsNq38PP.mjs.map +0 -1
  1126. package/dist/fence-C3MUitUN.mjs +0 -162
  1127. package/dist/fence-C3MUitUN.mjs.map +0 -1
  1128. package/dist/field-defs-cache-Dez5iWJJ.mjs +0 -77
  1129. package/dist/field-defs-cache-Dez5iWJJ.mjs.map +0 -1
  1130. package/dist/field-map-Bft9LKak.mjs +0 -83
  1131. package/dist/field-map-Bft9LKak.mjs.map +0 -1
  1132. package/dist/focal-point-JX8kcOTQ.mjs +0 -23
  1133. package/dist/focal-point-JX8kcOTQ.mjs.map +0 -1
  1134. package/dist/fts-manager-Beg3e4bI.mjs +0 -443
  1135. package/dist/fts-manager-Beg3e4bI.mjs.map +0 -1
  1136. package/dist/gc-ByyAYiYE.mjs +0 -75
  1137. package/dist/gc-ByyAYiYE.mjs.map +0 -1
  1138. package/dist/hash-BJaeek87.mjs +0 -37
  1139. package/dist/hash-BJaeek87.mjs.map +0 -1
  1140. package/dist/hook-result-BrdLyOdI.d.mts +0 -31
  1141. package/dist/hook-result-BrdLyOdI.d.mts.map +0 -1
  1142. package/dist/hreflang-C8Jb-hrf.mjs +0 -105
  1143. package/dist/hreflang-C8Jb-hrf.mjs.map +0 -1
  1144. package/dist/hreflang-CY_F5OjF.d.mts +0 -50
  1145. package/dist/hreflang-CY_F5OjF.d.mts.map +0 -1
  1146. package/dist/http-route-dispatch-CyeW6iPv.mjs +0 -342
  1147. package/dist/http-route-dispatch-CyeW6iPv.mjs.map +0 -1
  1148. package/dist/identity-Cael5uTT.mjs +0 -35
  1149. package/dist/identity-Cael5uTT.mjs.map +0 -1
  1150. package/dist/import-BUXjdZUn.mjs +0 -2126
  1151. package/dist/import-BUXjdZUn.mjs.map +0 -1
  1152. package/dist/index-BB9sVisO.d.mts +0 -623
  1153. package/dist/index-BB9sVisO.d.mts.map +0 -1
  1154. package/dist/install-finalization-3JX5qQEA.mjs +0 -58
  1155. package/dist/install-finalization-3JX5qQEA.mjs.map +0 -1
  1156. package/dist/json-recordset-BUjxhr77.mjs +0 -12
  1157. package/dist/json-recordset-BUjxhr77.mjs.map +0 -1
  1158. package/dist/json-schema-v_D_pPNG.mjs +0 -15
  1159. package/dist/json-schema-v_D_pPNG.mjs.map +0 -1
  1160. package/dist/keys-CifIkT0N.mjs +0 -61
  1161. package/dist/keys-CifIkT0N.mjs.map +0 -1
  1162. package/dist/kinds-B_Qcl5pz.mjs +0 -974
  1163. package/dist/kinds-B_Qcl5pz.mjs.map +0 -1
  1164. package/dist/lifecycle-7vUJeFRe.mjs +0 -25
  1165. package/dist/lifecycle-7vUJeFRe.mjs.map +0 -1
  1166. package/dist/load-CdAG9wz-.mjs +0 -28
  1167. package/dist/load-CdAG9wz-.mjs.map +0 -1
  1168. package/dist/loader-CswroUbe.mjs +0 -1380
  1169. package/dist/loader-CswroUbe.mjs.map +0 -1
  1170. package/dist/loops-uA4iTOzd.mjs +0 -205
  1171. package/dist/loops-uA4iTOzd.mjs.map +0 -1
  1172. package/dist/manifest-builder-B8zjuH3f.mjs +0 -189
  1173. package/dist/manifest-builder-B8zjuH3f.mjs.map +0 -1
  1174. package/dist/manifest-schema-DNb4XmTS.mjs +0 -497
  1175. package/dist/manifest-schema-DNb4XmTS.mjs.map +0 -1
  1176. package/dist/marketplace-CqbgeIa7.mjs +0 -257
  1177. package/dist/marketplace-CqbgeIa7.mjs.map +0 -1
  1178. package/dist/media--dJRU6i2.mjs +0 -294
  1179. package/dist/media--dJRU6i2.mjs.map +0 -1
  1180. package/dist/media-1WC65OCB.mjs +0 -416
  1181. package/dist/media-1WC65OCB.mjs.map +0 -1
  1182. package/dist/media-Bws9f18T.mjs +0 -373
  1183. package/dist/media-Bws9f18T.mjs.map +0 -1
  1184. package/dist/media-allowlist-BJB7MFx6.mjs +0 -45
  1185. package/dist/media-allowlist-BJB7MFx6.mjs.map +0 -1
  1186. package/dist/media-folders-Dn3C16B8.mjs +0 -210
  1187. package/dist/media-folders-Dn3C16B8.mjs.map +0 -1
  1188. package/dist/media-url-BQgKvpQ5.mjs +0 -43
  1189. package/dist/media-url-BQgKvpQ5.mjs.map +0 -1
  1190. package/dist/media-usage-CF0WVcLO.mjs +0 -282
  1191. package/dist/media-usage-CF0WVcLO.mjs.map +0 -1
  1192. package/dist/media-usage-activation-C9HwVw5w.mjs +0 -78
  1193. package/dist/media-usage-activation-C9HwVw5w.mjs.map +0 -1
  1194. package/dist/media-usage-work-CkLa5-nc.mjs +0 -1036
  1195. package/dist/media-usage-work-CkLa5-nc.mjs.map +0 -1
  1196. package/dist/media-usage-work-m3AWTmmC.mjs +0 -151
  1197. package/dist/media-usage-work-m3AWTmmC.mjs.map +0 -1
  1198. package/dist/menus-BCVSSp1z.mjs +0 -753
  1199. package/dist/menus-BCVSSp1z.mjs.map +0 -1
  1200. package/dist/menus-BSzwObhV.mjs +0 -92
  1201. package/dist/menus-BSzwObhV.mjs.map +0 -1
  1202. package/dist/menus-Cl4kwdt7.mjs +0 -3721
  1203. package/dist/menus-Cl4kwdt7.mjs.map +0 -1
  1204. package/dist/mime-B5M9R53H.mjs +0 -81
  1205. package/dist/mime-B5M9R53H.mjs.map +0 -1
  1206. package/dist/mode-C-D3qICy.mjs +0 -23
  1207. package/dist/mode-C-D3qICy.mjs.map +0 -1
  1208. package/dist/node-sqlite-compat-CrKzRr0J.mjs +0 -63
  1209. package/dist/node-sqlite-compat-CrKzRr0J.mjs.map +0 -1
  1210. package/dist/normalize-BuWa0lvd.mjs +0 -191
  1211. package/dist/normalize-BuWa0lvd.mjs.map +0 -1
  1212. package/dist/oauth-authorization-TpEJrYB7.mjs +0 -274
  1213. package/dist/oauth-authorization-TpEJrYB7.mjs.map +0 -1
  1214. package/dist/oauth-clients-BT0Pg-MO.mjs +0 -266
  1215. package/dist/oauth-clients-BT0Pg-MO.mjs.map +0 -1
  1216. package/dist/oauth-state-store-CHMn_mwc.mjs +0 -50
  1217. package/dist/oauth-state-store-CHMn_mwc.mjs.map +0 -1
  1218. package/dist/oauth-user-lookup-BDgF6IVG.mjs +0 -26
  1219. package/dist/oauth-user-lookup-BDgF6IVG.mjs.map +0 -1
  1220. package/dist/object-cache-Bo6DGaC9.mjs +0 -586
  1221. package/dist/object-cache-Bo6DGaC9.mjs.map +0 -1
  1222. package/dist/options-DJWaq3Ie.d.mts +0 -81
  1223. package/dist/options-DJWaq3Ie.d.mts.map +0 -1
  1224. package/dist/ownership-MiyA7qKO.mjs +0 -12
  1225. package/dist/ownership-MiyA7qKO.mjs.map +0 -1
  1226. package/dist/parse-CWHOFc6z.d.mts +0 -176
  1227. package/dist/parse-CWHOFc6z.d.mts.map +0 -1
  1228. package/dist/parse-DgQ2NABT.mjs +0 -81
  1229. package/dist/parse-DgQ2NABT.mjs.map +0 -1
  1230. package/dist/passkey-config-D0kdzEao.mjs +0 -46
  1231. package/dist/passkey-config-D0kdzEao.mjs.map +0 -1
  1232. package/dist/paths-biDzFTY2.mjs +0 -77
  1233. package/dist/paths-biDzFTY2.mjs.map +0 -1
  1234. package/dist/patterns-CMNnYCgf.mjs +0 -159
  1235. package/dist/patterns-CMNnYCgf.mjs.map +0 -1
  1236. package/dist/placeholder-D41vk11_.d.mts +0 -306
  1237. package/dist/placeholder-D41vk11_.d.mts.map +0 -1
  1238. package/dist/plan-CCoqxNoU.mjs +0 -135
  1239. package/dist/plan-CCoqxNoU.mjs.map +0 -1
  1240. package/dist/plugin-tool-name-DDUgN_0p.mjs +0 -27
  1241. package/dist/plugin-tool-name-DDUgN_0p.mjs.map +0 -1
  1242. package/dist/plugins-COJ2L49n.mjs +0 -261
  1243. package/dist/plugins-COJ2L49n.mjs.map +0 -1
  1244. package/dist/policy-DLQ--Hnm.mjs +0 -45
  1245. package/dist/policy-DLQ--Hnm.mjs.map +0 -1
  1246. package/dist/portable-text-BH4zgkSm.mjs +0 -311
  1247. package/dist/portable-text-BH4zgkSm.mjs.map +0 -1
  1248. package/dist/preview-DLexxwp3.mjs +0 -107
  1249. package/dist/preview-DLexxwp3.mjs.map +0 -1
  1250. package/dist/protocol-79kUO7jP.d.mts +0 -65
  1251. package/dist/protocol-79kUO7jP.d.mts.map +0 -1
  1252. package/dist/public-plugin-api-routes-BuAMJ8nN.mjs +0 -316
  1253. package/dist/public-plugin-api-routes-BuAMJ8nN.mjs.map +0 -1
  1254. package/dist/public-submission-Di3TsgzX.mjs +0 -251
  1255. package/dist/public-submission-Di3TsgzX.mjs.map +0 -1
  1256. package/dist/public-url-Bt98vysr.mjs +0 -101
  1257. package/dist/public-url-Bt98vysr.mjs.map +0 -1
  1258. package/dist/query-CpnRlBh8.mjs +0 -1156
  1259. package/dist/query-CpnRlBh8.mjs.map +0 -1
  1260. package/dist/query-haKvLAWl.mjs +0 -41
  1261. package/dist/query-haKvLAWl.mjs.map +0 -1
  1262. package/dist/range-CYfeXgGK.mjs +0 -51
  1263. package/dist/range-CYfeXgGK.mjs.map +0 -1
  1264. package/dist/rate-limit-Xp4d0NBY.mjs +0 -127
  1265. package/dist/rate-limit-Xp4d0NBY.mjs.map +0 -1
  1266. package/dist/receipt-BUsQCOeM.mjs +0 -43
  1267. package/dist/receipt-BUsQCOeM.mjs.map +0 -1
  1268. package/dist/redirect-CQAV7mCo.mjs +0 -19
  1269. package/dist/redirect-CQAV7mCo.mjs.map +0 -1
  1270. package/dist/redirect-DiS_3mA4.mjs +0 -423
  1271. package/dist/redirect-DiS_3mA4.mjs.map +0 -1
  1272. package/dist/redirect-paths-CNYq7w80.mjs +0 -36
  1273. package/dist/redirect-paths-CNYq7w80.mjs.map +0 -1
  1274. package/dist/redirects-BEVSRMa2.mjs +0 -148
  1275. package/dist/redirects-BEVSRMa2.mjs.map +0 -1
  1276. package/dist/redirects-BHpy-VsZ.mjs +0 -446
  1277. package/dist/redirects-BHpy-VsZ.mjs.map +0 -1
  1278. package/dist/registry-TUVaid9Z.mjs +0 -8369
  1279. package/dist/registry-TUVaid9Z.mjs.map +0 -1
  1280. package/dist/relations-CA_QuMTU.mjs +0 -776
  1281. package/dist/relations-CA_QuMTU.mjs.map +0 -1
  1282. package/dist/request-cache-C4CIo5ad.mjs +0 -104
  1283. package/dist/request-cache-C4CIo5ad.mjs.map +0 -1
  1284. package/dist/request-meta-bwZ_NsvU.mjs +0 -141
  1285. package/dist/request-meta-bwZ_NsvU.mjs.map +0 -1
  1286. package/dist/resolve-D-kqyKns.mjs +0 -199
  1287. package/dist/resolve-D-kqyKns.mjs.map +0 -1
  1288. package/dist/resolve-DwNM-CXl.mjs +0 -101
  1289. package/dist/resolve-DwNM-CXl.mjs.map +0 -1
  1290. package/dist/revision-BVp8S0e_.mjs +0 -374
  1291. package/dist/revision-BVp8S0e_.mjs.map +0 -1
  1292. package/dist/route-cache-QSOyDEw0.mjs +0 -20
  1293. package/dist/route-cache-QSOyDEw0.mjs.map +0 -1
  1294. package/dist/route-wire-Ca_HWCZ5.mjs +0 -197
  1295. package/dist/route-wire-Ca_HWCZ5.mjs.map +0 -1
  1296. package/dist/routes-BerZFrvV.mjs +0 -272
  1297. package/dist/routes-BerZFrvV.mjs.map +0 -1
  1298. package/dist/runner-BObHz5FC.d.mts +0 -68
  1299. package/dist/runner-BObHz5FC.d.mts.map +0 -1
  1300. package/dist/runner-C5NeAkBQ.mjs +0 -6595
  1301. package/dist/runner-C5NeAkBQ.mjs.map +0 -1
  1302. package/dist/schema-C4OBuv6Z.mjs +0 -13
  1303. package/dist/schema-C4OBuv6Z.mjs.map +0 -1
  1304. package/dist/schema-DJRfvM_o.mjs +0 -815
  1305. package/dist/schema-DJRfvM_o.mjs.map +0 -1
  1306. package/dist/scopes-BU03K7Uo.mjs +0 -34
  1307. package/dist/scopes-BU03K7Uo.mjs.map +0 -1
  1308. package/dist/search-DfVzks89.mjs +0 -450
  1309. package/dist/search-DfVzks89.mjs.map +0 -1
  1310. package/dist/sections-BMy4JVUz.mjs +0 -346
  1311. package/dist/sections-BMy4JVUz.mjs.map +0 -1
  1312. package/dist/seo-ClB-dw9w.mjs +0 -188
  1313. package/dist/seo-ClB-dw9w.mjs.map +0 -1
  1314. package/dist/seo-VZYOEy8f.mjs +0 -133
  1315. package/dist/seo-VZYOEy8f.mjs.map +0 -1
  1316. package/dist/service-Bo_usgSk.mjs +0 -150
  1317. package/dist/service-Bo_usgSk.mjs.map +0 -1
  1318. package/dist/session-user-DlpPdf8L.mjs +0 -61
  1319. package/dist/session-user-DlpPdf8L.mjs.map +0 -1
  1320. package/dist/settings-CWb84sDm.mjs +0 -452
  1321. package/dist/settings-CWb84sDm.mjs.map +0 -1
  1322. package/dist/settings-DS914jjE.mjs +0 -66
  1323. package/dist/settings-DS914jjE.mjs.map +0 -1
  1324. package/dist/settings-Dd1uivmQ.mjs +0 -73
  1325. package/dist/settings-Dd1uivmQ.mjs.map +0 -1
  1326. package/dist/setup-complete-BuNxAUiN.mjs +0 -65
  1327. package/dist/setup-complete-BuNxAUiN.mjs.map +0 -1
  1328. package/dist/setup-nonce-BnEAX0iy.mjs +0 -25
  1329. package/dist/setup-nonce-BnEAX0iy.mjs.map +0 -1
  1330. package/dist/site-domain-Bq5j5bVg.mjs +0 -131
  1331. package/dist/site-domain-Bq5j5bVg.mjs.map +0 -1
  1332. package/dist/site-settings-DRHfX7bq.mjs +0 -50
  1333. package/dist/site-settings-DRHfX7bq.mjs.map +0 -1
  1334. package/dist/site-url-MB685I5X.mjs +0 -45
  1335. package/dist/site-url-MB685I5X.mjs.map +0 -1
  1336. package/dist/sitemap-name-BTg2NJJv.mjs +0 -26
  1337. package/dist/sitemap-name-BTg2NJJv.mjs.map +0 -1
  1338. package/dist/slug-aVnUV4SL.mjs +0 -16
  1339. package/dist/slug-aVnUV4SL.mjs.map +0 -1
  1340. package/dist/slugify-bu2-jKia.mjs +0 -22
  1341. package/dist/slugify-bu2-jKia.mjs.map +0 -1
  1342. package/dist/snapshot-DYsG4uOq.mjs +0 -414
  1343. package/dist/snapshot-DYsG4uOq.mjs.map +0 -1
  1344. package/dist/ssrf-BcYjyM4M.mjs +0 -406
  1345. package/dist/ssrf-BcYjyM4M.mjs.map +0 -1
  1346. package/dist/stage-D8DWgPcO.mjs +0 -662
  1347. package/dist/stage-D8DWgPcO.mjs.map +0 -1
  1348. package/dist/staged-CD_imitH.mjs +0 -686
  1349. package/dist/staged-CD_imitH.mjs.map +0 -1
  1350. package/dist/state-CFbGZziM.mjs +0 -178
  1351. package/dist/state-CFbGZziM.mjs.map +0 -1
  1352. package/dist/status-BFNdxzKc.mjs +0 -30
  1353. package/dist/status-BFNdxzKc.mjs.map +0 -1
  1354. package/dist/storage-query-DRyu3bSU.d.mts +0 -1615
  1355. package/dist/storage-query-DRyu3bSU.d.mts.map +0 -1
  1356. package/dist/tar-DFjExb9X.mjs +0 -449
  1357. package/dist/tar-DFjExb9X.mjs.map +0 -1
  1358. package/dist/target-CWZs2-o6.mjs +0 -27
  1359. package/dist/target-CWZs2-o6.mjs.map +0 -1
  1360. package/dist/taxonomies-ChnU7Mc8.mjs +0 -697
  1361. package/dist/taxonomies-ChnU7Mc8.mjs.map +0 -1
  1362. package/dist/taxonomies-Dd9JJv_a.mjs +0 -939
  1363. package/dist/taxonomies-Dd9JJv_a.mjs.map +0 -1
  1364. package/dist/taxonomy-C_C_LBAU.mjs +0 -550
  1365. package/dist/taxonomy-C_C_LBAU.mjs.map +0 -1
  1366. package/dist/tokens-BnhSnGwJ.mjs +0 -171
  1367. package/dist/tokens-BnhSnGwJ.mjs.map +0 -1
  1368. package/dist/transaction-BVYIo_yu.mjs +0 -29
  1369. package/dist/transaction-BVYIo_yu.mjs.map +0 -1
  1370. package/dist/transfer-ClH6w6BV.mjs +0 -8873
  1371. package/dist/transfer-ClH6w6BV.mjs.map +0 -1
  1372. package/dist/transfer-WmWiR3xf.mjs +0 -166
  1373. package/dist/transfer-WmWiR3xf.mjs.map +0 -1
  1374. package/dist/transfer-download--ofRj9Cw.mjs +0 -33
  1375. package/dist/transfer-download--ofRj9Cw.mjs.map +0 -1
  1376. package/dist/transformations-Bx4lYY0Y.mjs +0 -196
  1377. package/dist/transformations-Bx4lYY0Y.mjs.map +0 -1
  1378. package/dist/transport-BjbqNiPI.mjs +0 -136
  1379. package/dist/transport-BjbqNiPI.mjs.map +0 -1
  1380. package/dist/transport-DxiXnbXk.d.mts +0 -42
  1381. package/dist/transport-DxiXnbXk.d.mts.map +0 -1
  1382. package/dist/trusted-proxy-BU3Nx9g1.mjs +0 -51
  1383. package/dist/trusted-proxy-BU3Nx9g1.mjs.map +0 -1
  1384. package/dist/turnstile-CJwvsOqw.mjs +0 -58
  1385. package/dist/turnstile-CJwvsOqw.mjs.map +0 -1
  1386. package/dist/types-BA3ey2QH.d.mts +0 -87
  1387. package/dist/types-BA3ey2QH.d.mts.map +0 -1
  1388. package/dist/types-BGmQ0uXs.mjs +0 -201
  1389. package/dist/types-BGmQ0uXs.mjs.map +0 -1
  1390. package/dist/types-Bwpzb5o6.d.mts +0 -227
  1391. package/dist/types-Bwpzb5o6.d.mts.map +0 -1
  1392. package/dist/types-CNB-dj6F.d.mts +0 -289
  1393. package/dist/types-CNB-dj6F.d.mts.map +0 -1
  1394. package/dist/types-CgfFGfO5.mjs +0 -16
  1395. package/dist/types-CgfFGfO5.mjs.map +0 -1
  1396. package/dist/types-Cj0_yZkn.mjs +0 -18
  1397. package/dist/types-Cj0_yZkn.mjs.map +0 -1
  1398. package/dist/types-D2NEXtgB.mjs +0 -127
  1399. package/dist/types-D2NEXtgB.mjs.map +0 -1
  1400. package/dist/types-DCFavOii.d.mts +0 -916
  1401. package/dist/types-DCFavOii.d.mts.map +0 -1
  1402. package/dist/types-DHO7Pd25.d.mts +0 -366
  1403. package/dist/types-DHO7Pd25.d.mts.map +0 -1
  1404. package/dist/types-DvqVxZXa.d.mts +0 -125
  1405. package/dist/types-DvqVxZXa.d.mts.map +0 -1
  1406. package/dist/types-QoPHm-2w.d.mts +0 -1741
  1407. package/dist/types-QoPHm-2w.d.mts.map +0 -1
  1408. package/dist/types-RLgeIpnF.d.mts +0 -374
  1409. package/dist/types-RLgeIpnF.d.mts.map +0 -1
  1410. package/dist/types-qHVygneX.mjs +0 -77
  1411. package/dist/types-qHVygneX.mjs.map +0 -1
  1412. package/dist/types-sUHaH7lC.mjs +0 -37
  1413. package/dist/types-sUHaH7lC.mjs.map +0 -1
  1414. package/dist/types-slSqujQL.d.mts +0 -204
  1415. package/dist/types-slSqujQL.d.mts.map +0 -1
  1416. package/dist/update-check-BxNg9T6N.mjs +0 -161
  1417. package/dist/update-check-BxNg9T6N.mjs.map +0 -1
  1418. package/dist/upload-attempts-DPFC4COv.mjs +0 -32
  1419. package/dist/upload-attempts-DPFC4COv.mjs.map +0 -1
  1420. package/dist/url-Dn3IStq8.mjs +0 -104
  1421. package/dist/url-Dn3IStq8.mjs.map +0 -1
  1422. package/dist/url-pattern-QATUE_rv.mjs +0 -41
  1423. package/dist/url-pattern-QATUE_rv.mjs.map +0 -1
  1424. package/dist/user-BlCTKVAm.mjs +0 -171
  1425. package/dist/user-BlCTKVAm.mjs.map +0 -1
  1426. package/dist/utils-TPt7w2cS.mjs +0 -442
  1427. package/dist/utils-TPt7w2cS.mjs.map +0 -1
  1428. package/dist/validate-DxYhJQA-.mjs +0 -524
  1429. package/dist/validate-DxYhJQA-.mjs.map +0 -1
  1430. package/dist/validate-emKxGC5F.d.mts +0 -468
  1431. package/dist/validate-emKxGC5F.d.mts.map +0 -1
  1432. package/dist/validation-Ckq4vsVg.mjs +0 -220
  1433. package/dist/validation-Ckq4vsVg.mjs.map +0 -1
  1434. package/dist/version-BZj18Q7G.mjs +0 -9
  1435. package/dist/version-BZj18Q7G.mjs.map +0 -1
  1436. package/dist/version-DHmGpcch.mjs +0 -7
  1437. package/dist/version-DHmGpcch.mjs.map +0 -1
  1438. package/dist/video-DytCnw3L.mjs +0 -54
  1439. package/dist/video-DytCnw3L.mjs.map +0 -1
  1440. package/dist/virtual-modules-DO954n7P.mjs +0 -515
  1441. package/dist/virtual-modules-DO954n7P.mjs.map +0 -1
  1442. package/dist/widgets-DA5XmvVC.mjs +0 -121
  1443. package/dist/widgets-DA5XmvVC.mjs.map +0 -1
  1444. package/dist/wxr-taxonomies-CrMonejI.d.mts +0 -34
  1445. package/dist/wxr-taxonomies-CrMonejI.d.mts.map +0 -1
  1446. package/dist/wxr-taxonomies-RgRG0d5e.mjs +0 -453
  1447. package/dist/wxr-taxonomies-RgRG0d5e.mjs.map +0 -1
  1448. package/dist/zod-generator-D0JKy94C.mjs +0 -424
  1449. package/dist/zod-generator-D0JKy94C.mjs.map +0 -1
  1450. /package/dist/{api-tokens-CdP49zVF.mjs → api-tokens-C7l0GUAF.mjs} +0 -0
  1451. /package/dist/{ssrf-DM0E-D_8.mjs → ssrf-BBXcxG-f.mjs} +0 -0
@@ -1,939 +0,0 @@
1
- import { d as __exportAll } from "./runner-C5NeAkBQ.mjs";
2
- import { o as resolveConfiguredLocale, r as getI18nConfig } from "./config-CvmjJcVw.mjs";
3
- import { t as withTransaction } from "./transaction-BVYIo_yu.mjs";
4
- import { t as TaxonomyRepository } from "./taxonomy-C_C_LBAU.mjs";
5
- import { g as selectTaxonomyDefs, h as saveTaxonomyStructure, m as parseTaxonomyCollections, p as findTaxonomyStructure } from "./loader-CswroUbe.mjs";
6
- import { d as invalidateTermCache, p as fetchVisibleTermCounts, u as invalidateTaxonomyDefsCache } from "./taxonomies-ChnU7Mc8.mjs";
7
- import { sql } from "kysely";
8
- import { ulid } from "ulidx";
9
-
10
- //#region src/api/handlers/taxonomies.ts
11
- /**
12
- * Taxonomy and term CRUD handlers.
13
- *
14
- * i18n: terms and defs are per-locale. `(name, slug, locale)` is unique for
15
- * terms; `(name, locale)` for defs. Translations of the same term/def share a
16
- * `translation_group`. The content_taxonomies pivot stores translation_groups
17
- * so assignments span every locale of a post.
18
- *
19
- * A def's `label` and `labelSingular` belong to its locale; `hierarchical` and
20
- * `collections` belong to the taxonomy and read and write the same through
21
- * every locale.
22
- */
23
- var taxonomies_exports = /* @__PURE__ */ __exportAll({
24
- handleTaxonomyCreate: () => handleTaxonomyCreate,
25
- handleTaxonomyDefTranslations: () => handleTaxonomyDefTranslations,
26
- handleTaxonomyDelete: () => handleTaxonomyDelete,
27
- handleTaxonomyGet: () => handleTaxonomyGet,
28
- handleTaxonomyList: () => handleTaxonomyList,
29
- handleTaxonomyUpdate: () => handleTaxonomyUpdate,
30
- handleTermCreate: () => handleTermCreate,
31
- handleTermDelete: () => handleTermDelete,
32
- handleTermGet: () => handleTermGet,
33
- handleTermList: () => handleTermList,
34
- handleTermReorder: () => handleTermReorder,
35
- handleTermTranslations: () => handleTermTranslations,
36
- handleTermUpdate: () => handleTermUpdate
37
- });
38
- const NAME_PATTERN = /^[a-z][a-z0-9_]*$/;
39
- const MAX_GENERATED_TERM_SLUG_ATTEMPTS = 16;
40
- function isTermSlugUniqueViolation(error) {
41
- const message = error instanceof Error ? error.message.toLowerCase() : "";
42
- return (message.includes("unique constraint failed") || message.includes("duplicate key")) && message.includes("slug");
43
- }
44
- function isTermTranslationLocaleUniqueViolation(error) {
45
- const message = error instanceof Error ? error.message.toLowerCase() : "";
46
- return (message.includes("unique constraint failed") || message.includes("duplicate key")) && (message.includes("translation_group") || message.includes("idx_taxonomies_translation_group_locale_unique"));
47
- }
48
- /**
49
- * Build tree structure from flat terms
50
- */
51
- function buildTree(flatTerms, resolveByGroup = false) {
52
- const byLocaleGroup = /* @__PURE__ */ new Map();
53
- const roots = [];
54
- for (const term of flatTerms) {
55
- const key = resolveByGroup ? term.translationGroup ?? term.id : `${term.locale}::${term.translationGroup ?? term.id}`;
56
- byLocaleGroup.set(key, term);
57
- }
58
- for (const term of flatTerms) {
59
- const parent = term.parentId ? byLocaleGroup.get(resolveByGroup ? term.parentId : `${term.locale}::${term.parentId}`) : void 0;
60
- if (parent) parent.children.push(term);
61
- else roots.push(term);
62
- }
63
- return roots;
64
- }
65
- function taxonomyDefNotFound(name, locale) {
66
- return {
67
- success: false,
68
- error: {
69
- code: "NOT_FOUND",
70
- message: `Taxonomy '${name}' not found${locale !== void 0 ? ` in locale '${locale}'` : ""}`
71
- }
72
- };
73
- }
74
- /** Look up the exact definition addressed by a mutation. */
75
- async function requireTaxonomyDef(db, name, locale) {
76
- let query = selectTaxonomyDefs(db).where("d.name", "=", name);
77
- if (locale !== void 0) query = query.where("d.locale", "=", locale);
78
- const def = await query.orderBy("d.locale", "asc").orderBy("d.id", "asc").executeTakeFirst();
79
- return def ? {
80
- success: true,
81
- def
82
- } : taxonomyDefNotFound(name, locale);
83
- }
84
- /**
85
- * Prefer the requested locale, then the configured default. Incomplete
86
- * translation groups fall back deterministically so their terms remain usable.
87
- */
88
- async function requireTaxonomyDefWithFallback(db, name, locale) {
89
- const defs = await selectTaxonomyDefs(db).where("d.name", "=", name).orderBy("d.locale", "asc").orderBy("d.id", "asc").execute();
90
- const defaultLocale = getI18nConfig()?.defaultLocale;
91
- const def = (locale ? defs.find((candidate) => candidate.locale === locale) : void 0) ?? (defaultLocale ? defs.find((candidate) => candidate.locale === defaultLocale) : void 0) ?? defs[0];
92
- return def ? {
93
- success: true,
94
- def
95
- } : taxonomyDefNotFound(name, locale);
96
- }
97
- function validateHierarchicalParent(def, taxonomyName, parentId) {
98
- if (parentId === void 0 || parentId === null || def.hierarchical === 1) return null;
99
- return {
100
- code: "VALIDATION_ERROR",
101
- message: `Taxonomy '${taxonomyName}' is not hierarchical and cannot have parent terms`
102
- };
103
- }
104
- /** The subset of `slugs` that still has a row in `_emdash_collections`. */
105
- async function findExistingCollections(db, slugs) {
106
- if (slugs.length === 0) return /* @__PURE__ */ new Set();
107
- const rows = await db.selectFrom("_emdash_collections").select("slug").where("slug", "in", [...slugs]).execute();
108
- return new Set(rows.map((r) => r.slug));
109
- }
110
- /**
111
- * Reject a `collections` list naming collections that don't exist. Shared by
112
- * create and update so both fail the same way instead of storing a reference
113
- * that reads back filtered out.
114
- */
115
- async function validateCollections(db, collections) {
116
- const existing = await findExistingCollections(db, collections);
117
- const invalid = collections.filter((slug) => !existing.has(slug));
118
- if (invalid.length === 0) return null;
119
- return {
120
- code: "VALIDATION_ERROR",
121
- message: `Unknown collection(s): ${invalid.join(", ")}`
122
- };
123
- }
124
- /**
125
- * Shape one definition row for a response, dropping collection references whose
126
- * collection is gone. Storage is untouched — re-creating the collection
127
- * re-links automatically, same as `handleTaxonomyList`.
128
- */
129
- async function toTaxonomyResponse(db, row) {
130
- const def = rowToDef(row);
131
- const realCollections = await findExistingCollections(db, def.collections);
132
- return { taxonomy: {
133
- ...def,
134
- collections: def.collections.filter((slug) => realCollections.has(slug))
135
- } };
136
- }
137
- function rowToDef(row) {
138
- return {
139
- id: row.id,
140
- name: row.name,
141
- label: row.label,
142
- labelSingular: row.label_singular ?? void 0,
143
- hierarchical: row.hierarchical === 1,
144
- collections: parseTaxonomyCollections(row.collections),
145
- locale: row.locale,
146
- translationGroup: row.translation_group
147
- };
148
- }
149
- /**
150
- * List all taxonomy definitions
151
- */
152
- async function handleTaxonomyList(db, options = {}) {
153
- try {
154
- const locale = options.locale ? resolveConfiguredLocale(options.locale) : void 0;
155
- let query = selectTaxonomyDefs(db);
156
- if (locale !== void 0) query = query.where("d.locale", "=", locale);
157
- const [rows, collectionRows] = await Promise.all([query.execute(), db.selectFrom("_emdash_collections").select("slug").execute()]);
158
- const realCollections = new Set(collectionRows.map((r) => r.slug));
159
- return {
160
- success: true,
161
- data: { taxonomies: rows.map((row) => {
162
- const def = rowToDef(row);
163
- return {
164
- ...def,
165
- collections: def.collections.filter((slug) => realCollections.has(slug))
166
- };
167
- }) }
168
- };
169
- } catch {
170
- return {
171
- success: false,
172
- error: {
173
- code: "TAXONOMY_LIST_ERROR",
174
- message: "Failed to list taxonomies"
175
- }
176
- };
177
- }
178
- }
179
- /**
180
- * Get a single taxonomy definition by name.
181
- *
182
- * Definitions are per-locale, so `locale` picks which one. Without it the
183
- * configured default locale wins, then the lowest locale code.
184
- */
185
- async function handleTaxonomyGet(db, name, options = {}) {
186
- try {
187
- const lookup = await requireTaxonomyDefWithFallback(db, name, options.locale ? resolveConfiguredLocale(options.locale) : void 0);
188
- if (!lookup.success) return lookup;
189
- return {
190
- success: true,
191
- data: await toTaxonomyResponse(db, lookup.def)
192
- };
193
- } catch {
194
- return {
195
- success: false,
196
- error: {
197
- code: "TAXONOMY_GET_ERROR",
198
- message: "Failed to get taxonomy"
199
- }
200
- };
201
- }
202
- }
203
- /**
204
- * Create a taxonomy definition in one locale.
205
- *
206
- * When the taxonomy already exists in another locale, the new definition joins
207
- * it whether or not `translationOf` is given, and takes its `hierarchical` and
208
- * `collections`. A differing value sent with it is rejected rather than applied
209
- * to every locale; changing the structure is an update.
210
- */
211
- async function handleTaxonomyCreate(db, input) {
212
- try {
213
- const locale = resolveConfiguredLocale(input.locale ?? getI18nConfig()?.defaultLocale ?? "en");
214
- if (!NAME_PATTERN.test(input.name)) return {
215
- success: false,
216
- error: {
217
- code: "VALIDATION_ERROR",
218
- message: "Taxonomy name must start with a letter and contain only lowercase letters, numbers, and underscores"
219
- }
220
- };
221
- if (input.translationOf) {
222
- const source = await db.selectFrom("_emdash_taxonomy_defs").select("name").where("id", "=", input.translationOf).executeTakeFirst();
223
- if (!source) return {
224
- success: false,
225
- error: {
226
- code: "NOT_FOUND",
227
- message: "Source taxonomy for translation not found"
228
- }
229
- };
230
- if (source.name !== input.name) return {
231
- success: false,
232
- error: {
233
- code: "VALIDATION_ERROR",
234
- message: `A translation of taxonomy '${source.name}' must use the same name`
235
- }
236
- };
237
- }
238
- if (input.collections !== void 0) {
239
- const collectionError = await validateCollections(db, input.collections);
240
- if (collectionError) return {
241
- success: false,
242
- error: collectionError
243
- };
244
- }
245
- if (await db.selectFrom("_emdash_taxonomy_defs").select("id").where("name", "=", input.name).where("locale", "=", locale).executeTakeFirst()) return {
246
- success: false,
247
- error: {
248
- code: "CONFLICT",
249
- message: `Taxonomy '${input.name}' already exists in locale '${locale}'`
250
- }
251
- };
252
- const id = ulid();
253
- const existingStructure = await findTaxonomyStructure(db, input.name);
254
- if (existingStructure && !await matchesStructure(db, existingStructure, input)) return {
255
- success: false,
256
- error: {
257
- code: "VALIDATION_ERROR",
258
- message: `Taxonomy '${input.name}' already exists in another locale with a different hierarchical or collections value; change them with an update`
259
- }
260
- };
261
- const structure = existingStructure ?? {
262
- hierarchical: input.hierarchical ?? false,
263
- collections: [...new Set(input.collections ?? [])]
264
- };
265
- const groupId = existingStructure?.id ?? id;
266
- await withTransaction(db, async (trx) => {
267
- await trx.insertInto("_emdash_taxonomy_defs").values({
268
- id,
269
- name: input.name,
270
- label: input.label,
271
- label_singular: input.labelSingular ?? null,
272
- hierarchical: structure.hierarchical ? 1 : 0,
273
- collections: JSON.stringify(structure.collections),
274
- locale,
275
- translation_group: groupId
276
- }).execute();
277
- await saveTaxonomyStructure(trx, input.name, groupId, structure, {});
278
- });
279
- invalidateTaxonomyDefsCache();
280
- return {
281
- success: true,
282
- data: { taxonomy: rowToDef(await selectTaxonomyDefs(db).where("d.id", "=", id).executeTakeFirstOrThrow()) }
283
- };
284
- } catch (error) {
285
- if (error instanceof Error && error.message.includes("UNIQUE constraint failed")) return {
286
- success: false,
287
- error: {
288
- code: "CONFLICT",
289
- message: `Taxonomy '${input.name}' already exists`
290
- }
291
- };
292
- return {
293
- success: false,
294
- error: {
295
- code: "TAXONOMY_CREATE_ERROR",
296
- message: "Failed to create taxonomy"
297
- }
298
- };
299
- }
300
- }
301
- /**
302
- * Whether the `hierarchical` and `collections` a request sends, if any, equal
303
- * `structure` as a read returns it, without collections that no longer exist.
304
- */
305
- async function matchesStructure(db, structure, input) {
306
- if (input.hierarchical !== void 0 && input.hierarchical !== structure.hierarchical) return false;
307
- if (input.collections === void 0) return true;
308
- const existing = await findExistingCollections(db, structure.collections);
309
- const visible = structure.collections.filter((collection) => existing.has(collection));
310
- const sent = new Set(input.collections);
311
- return sent.size === visible.length && visible.every((collection) => sent.has(collection));
312
- }
313
- /**
314
- * Update a taxonomy definition.
315
- *
316
- * `label` and `labelSingular` write the one row `(name, locale)` resolves to.
317
- * `hierarchical` and `collections` write the taxonomy, so every locale changes.
318
- * `name` and `locale` are immutable (renaming would strand the terms, which are
319
- * keyed on `name`).
320
- */
321
- async function handleTaxonomyUpdate(db, name, input) {
322
- try {
323
- const lookup = await requireTaxonomyDef(db, name, input.locale ? resolveConfiguredLocale(input.locale) : void 0);
324
- if (!lookup.success) return lookup;
325
- const collections = input.collections ? [...new Set(input.collections)] : void 0;
326
- if (collections !== void 0) {
327
- const collectionError = await validateCollections(db, collections);
328
- if (collectionError) return {
329
- success: false,
330
- error: collectionError
331
- };
332
- }
333
- const updates = {};
334
- if (input.label !== void 0) updates.label = input.label;
335
- if (input.labelSingular !== void 0) updates.label_singular = input.labelSingular;
336
- const structureChanged = input.hierarchical !== void 0 || collections !== void 0;
337
- if (Object.keys(updates).length > 0 || structureChanged) {
338
- const def = lookup.def;
339
- await withTransaction(db, async (trx) => {
340
- if (Object.keys(updates).length > 0) await trx.updateTable("_emdash_taxonomy_defs").set(updates).where("id", "=", def.id).execute();
341
- if (structureChanged) await saveTaxonomyStructure(trx, name, def.translation_group ?? def.id, {
342
- hierarchical: input.hierarchical ?? def.hierarchical === 1,
343
- collections: collections ?? parseTaxonomyCollections(def.collections)
344
- }, {
345
- hierarchical: input.hierarchical,
346
- collections
347
- });
348
- });
349
- invalidateTaxonomyDefsCache();
350
- }
351
- return {
352
- success: true,
353
- data: await toTaxonomyResponse(db, await selectTaxonomyDefs(db).where("d.id", "=", lookup.def.id).executeTakeFirstOrThrow())
354
- };
355
- } catch {
356
- return {
357
- success: false,
358
- error: {
359
- code: "TAXONOMY_UPDATE_ERROR",
360
- message: "Failed to update taxonomy"
361
- }
362
- };
363
- }
364
- }
365
- /**
366
- * Delete a taxonomy: every locale's definition, every term under that name in
367
- * every locale, and the term assignments those terms hold.
368
- *
369
- * There is no locale scope and no non-empty guard. Terms are keyed on `name`
370
- * rather than on a definition row, so leaving one locale's definition behind
371
- * would leave the taxonomy half-deleted — a definition with no terms, or terms
372
- * no definition describes.
373
- */
374
- async function handleTaxonomyDelete(db, name) {
375
- try {
376
- const lookup = await requireTaxonomyDef(db, name);
377
- if (!lookup.success) return lookup;
378
- await withTransaction(db, async (trx) => {
379
- await trx.deleteFrom("content_taxonomies").where("taxonomy_id", "in", (eb) => eb.selectFrom("taxonomies").select(sql`coalesce(translation_group, id)`.as("group")).where("name", "=", name)).execute();
380
- await trx.deleteFrom("taxonomies").where("name", "=", name).execute();
381
- await trx.deleteFrom("_emdash_taxonomy_defs").where("name", "=", name).execute();
382
- await trx.deleteFrom("_emdash_taxonomy_def_groups").where("name", "=", name).execute();
383
- });
384
- invalidateTaxonomyDefsCache();
385
- return {
386
- success: true,
387
- data: { deleted: true }
388
- };
389
- } catch (error) {
390
- console.error("[taxonomies] delete failed:", error);
391
- return {
392
- success: false,
393
- error: {
394
- code: "TAXONOMY_DELETE_ERROR",
395
- message: "Failed to delete taxonomy"
396
- }
397
- };
398
- }
399
- }
400
- /**
401
- * List every locale translation of a taxonomy def (by id or translation_group).
402
- */
403
- async function handleTaxonomyDefTranslations(db, idOrGroup) {
404
- try {
405
- const anchor = await db.selectFrom("_emdash_taxonomy_defs").selectAll().where((eb) => eb.or([eb("id", "=", idOrGroup), eb("translation_group", "=", idOrGroup)])).executeTakeFirst();
406
- if (!anchor) return {
407
- success: false,
408
- error: {
409
- code: "NOT_FOUND",
410
- message: "Taxonomy not found"
411
- }
412
- };
413
- const group = anchor.translation_group ?? anchor.id;
414
- return {
415
- success: true,
416
- data: {
417
- translationGroup: group,
418
- translations: (await db.selectFrom("_emdash_taxonomy_defs").selectAll().where("translation_group", "=", group).orderBy("locale", "asc").execute()).map((r) => ({
419
- id: r.id,
420
- name: r.name,
421
- label: r.label,
422
- locale: r.locale
423
- }))
424
- }
425
- };
426
- } catch {
427
- return {
428
- success: false,
429
- error: {
430
- code: "TAXONOMY_TRANSLATIONS_ERROR",
431
- message: "Failed to list taxonomy translations"
432
- }
433
- };
434
- }
435
- }
436
- /**
437
- * List all terms for a taxonomy (returns tree for hierarchical taxonomies)
438
- */
439
- async function handleTermList(db, taxonomyName, options = {}) {
440
- try {
441
- if (options.resolveFallback && !options.locale) return {
442
- success: false,
443
- error: {
444
- code: "VALIDATION_ERROR",
445
- message: "A locale is required when resolving taxonomy fallbacks"
446
- }
447
- };
448
- const locale = options.locale ? resolveConfiguredLocale(options.locale) : void 0;
449
- const lookup = await requireTaxonomyDefWithFallback(db, taxonomyName, locale);
450
- if (!lookup.success) return lookup;
451
- const repo = new TaxonomyRepository(db);
452
- const terms = options.resolveFallback && locale ? await repo.findByNameResolved(taxonomyName, locale, getI18nConfig()?.defaultLocale ?? "en") : await repo.findByName(taxonomyName, { locale });
453
- const countsByGroup = options.includeCounts ?? true ? await fetchVisibleTermCounts(db, taxonomyName, parseTaxonomyCollections(lookup.def.collections), locale) : void 0;
454
- const termData = terms.map((term) => ({
455
- id: term.id,
456
- name: term.name,
457
- slug: term.slug,
458
- label: term.label,
459
- parentId: term.parentId,
460
- description: typeof term.data?.description === "string" ? term.data.description : void 0,
461
- children: [],
462
- ...countsByGroup && { count: countsByGroup.get(term.translationGroup ?? term.id) ?? 0 },
463
- locale: term.locale,
464
- translationGroup: term.translationGroup
465
- }));
466
- return {
467
- success: true,
468
- data: { terms: lookup.def.hierarchical === 1 ? buildTree(termData, options.resolveFallback && !!locale) : termData }
469
- };
470
- } catch (error) {
471
- console.error("[taxonomies] term list failed:", error);
472
- return {
473
- success: false,
474
- error: {
475
- code: "TERM_LIST_ERROR",
476
- message: "Failed to list terms"
477
- }
478
- };
479
- }
480
- }
481
- /**
482
- * Set the manual order of one sibling group.
483
- *
484
- * `ids` names the terms to move, in the desired order; each is a row id or a
485
- * translation_group and resolves to the latter, because a position belongs to a
486
- * term rather than to one of its locales. Reordering never reparents — moving a
487
- * term under a different parent is a term update.
488
- *
489
- * The group is `(taxonomy, parentId)` and has no locale: `parentId` is the
490
- * parent's translation_group (a row id is accepted and resolved), and `null`
491
- * selects the top level — which for a flat taxonomy is every term.
492
- *
493
- * `ids` may be a *subset* of the group, and the listed terms are permuted
494
- * within the positions they already occupy. A locale only renders the terms
495
- * translated into it, so a caller often cannot name every member; a member left
496
- * out keeps its place, which is also what makes a stale list harmless.
497
- */
498
- async function handleTermReorder(db, taxonomyName, input) {
499
- try {
500
- const lookup = await requireTaxonomyDef(db, taxonomyName);
501
- if (!lookup.success) return lookup;
502
- const repo = new TaxonomyRepository(db);
503
- let parentId = input.parentId ?? null;
504
- if (parentId !== null) {
505
- const parent = await repo.findById(parentId);
506
- if (parent) parentId = parent.translationGroup ?? parent.id;
507
- }
508
- const members = await repo.findByName(taxonomyName, { parentId });
509
- const siblings = [];
510
- const seen = /* @__PURE__ */ new Set();
511
- const resolve = /* @__PURE__ */ new Map();
512
- for (const term of members) {
513
- const group = term.translationGroup ?? term.id;
514
- if (!seen.has(group)) {
515
- seen.add(group);
516
- siblings.push({
517
- group,
518
- position: term.sortOrder
519
- });
520
- }
521
- resolve.set(group, group);
522
- resolve.set(term.id, group);
523
- }
524
- const groups = [];
525
- for (const id of input.ids) {
526
- const group = resolve.get(id);
527
- if (!group) return {
528
- success: false,
529
- error: {
530
- code: "REORDER_MISMATCH",
531
- message: `Term "${id}" is not in the sibling group being reordered`
532
- }
533
- };
534
- if (groups.includes(group)) return {
535
- success: false,
536
- error: {
537
- code: "REORDER_MISMATCH",
538
- message: `Term "${id}" is listed more than once`
539
- }
540
- };
541
- groups.push(group);
542
- }
543
- await repo.reorder(groups, siblings);
544
- invalidateTermCache();
545
- return {
546
- success: true,
547
- data: { reordered: true }
548
- };
549
- } catch (error) {
550
- console.error("[taxonomies] term reorder failed:", error);
551
- return {
552
- success: false,
553
- error: {
554
- code: "TERM_REORDER_ERROR",
555
- message: "Failed to reorder terms"
556
- }
557
- };
558
- }
559
- }
560
- /**
561
- * Validate a parent term reference for create/update.
562
- *
563
- * Returns `null` on success or a structured error message that callers
564
- * wrap in their own ApiResult.
565
- *
566
- * - `parentId === undefined` -> no-op (no parent change requested).
567
- * - `parentId === null` -> caller intends to detach; no-op here.
568
- * - parent must exist (FK exists -> term row not soft-deleted).
569
- * - parent must live in the same taxonomy.
570
- * - reject a parent in the term's own translation_group (self-parent),
571
- * including the create path: a translation inherits its source's group, so
572
- * `selfGroup` carries that prospective group when `termId` is absent.
573
- * - walk up the parent chain to detect cycles, on create against `selfGroup`,
574
- * since a translation under another parent moves the existing term.
575
- */
576
- async function validateParentTerm(repo, taxonomyName, termId, parentId, selfGroup) {
577
- if (parentId === void 0 || parentId === null) return null;
578
- const parent = await repo.findById(parentId);
579
- if (!parent) return {
580
- code: "VALIDATION_ERROR",
581
- message: `Parent term '${parentId}' not found`
582
- };
583
- if (parent.name !== taxonomyName) return {
584
- code: "VALIDATION_ERROR",
585
- message: `Parent term '${parentId}' belongs to taxonomy '${parent.name}', not '${taxonomyName}'`
586
- };
587
- const parentGroup = parent.translationGroup ?? parent.id;
588
- let termGroup = selfGroup ?? null;
589
- if (termId !== void 0) {
590
- const term = await repo.findById(termId);
591
- termGroup = term ? term.translationGroup ?? term.id : termId;
592
- }
593
- if (termGroup !== null && parentGroup === termGroup) return {
594
- code: "VALIDATION_ERROR",
595
- message: "A term cannot be its own parent"
596
- };
597
- const MAX_DEPTH = 100;
598
- let cursor = parent.parentId;
599
- let steps = 0;
600
- while (cursor !== null && steps < MAX_DEPTH) {
601
- if (termGroup !== null && cursor === termGroup) return {
602
- code: "VALIDATION_ERROR",
603
- message: "Cycle detected: cannot make a descendant the parent"
604
- };
605
- const next = await repo.findById(cursor);
606
- if (!next) break;
607
- cursor = next.parentId;
608
- steps++;
609
- }
610
- if (cursor !== null && steps >= MAX_DEPTH) return {
611
- code: "VALIDATION_ERROR",
612
- message: "Parent chain exceeds maximum depth"
613
- };
614
- return null;
615
- }
616
- /**
617
- * Create a new term in a taxonomy
618
- */
619
- async function handleTermCreate(db, taxonomyName, input) {
620
- let attemptedSlug = input.slug;
621
- let effectiveLocale = input.locale ?? getI18nConfig()?.defaultLocale ?? "en";
622
- try {
623
- const locale = resolveConfiguredLocale(input.locale ?? getI18nConfig()?.defaultLocale ?? "en");
624
- effectiveLocale = locale;
625
- const lookup = await requireTaxonomyDefWithFallback(db, taxonomyName, locale);
626
- if (!lookup.success) return lookup;
627
- const repo = new TaxonomyRepository(db);
628
- const parentId = input.parentId === "" || input.parentId === void 0 ? void 0 : input.parentId;
629
- const hierarchyError = validateHierarchicalParent(lookup.def, taxonomyName, parentId);
630
- if (hierarchyError) return {
631
- success: false,
632
- error: hierarchyError
633
- };
634
- if (input.slug === void 0 ? null : await repo.findBySlug(taxonomyName, input.slug, locale)) return {
635
- success: false,
636
- error: {
637
- code: "CONFLICT",
638
- message: `Term '${input.slug}' already exists in '${taxonomyName}' (${locale})`
639
- }
640
- };
641
- let selfGroup = null;
642
- if (input.translationOf) {
643
- const source = await repo.findById(input.translationOf);
644
- if (!source) return {
645
- success: false,
646
- error: {
647
- code: "VALIDATION_ERROR",
648
- message: `Translation source '${input.translationOf}' not found`
649
- }
650
- };
651
- if (source.name !== taxonomyName) return {
652
- success: false,
653
- error: {
654
- code: "VALIDATION_ERROR",
655
- message: `Translation source '${input.translationOf}' belongs to taxonomy '${source.name}', not '${taxonomyName}'`
656
- }
657
- };
658
- selfGroup = source.translationGroup ?? source.id;
659
- if ((await repo.findTranslations(selfGroup)).some((translation) => translation.locale === locale)) return {
660
- success: false,
661
- error: {
662
- code: "CONFLICT",
663
- message: `Term translation already exists for locale '${locale}'`
664
- }
665
- };
666
- }
667
- const parentError = await validateParentTerm(repo, taxonomyName, void 0, parentId, selfGroup);
668
- if (parentError) return {
669
- success: false,
670
- error: parentError
671
- };
672
- const create = (slug) => repo.create({
673
- name: taxonomyName,
674
- slug,
675
- label: input.label,
676
- parentId: parentId ?? void 0,
677
- data: input.description ? { description: input.description } : void 0,
678
- locale,
679
- translationOf: input.translationOf
680
- });
681
- let term;
682
- let lastSlugConflict;
683
- if (input.slug !== void 0) term = await create(input.slug);
684
- else for (let attempt = 0; attempt < MAX_GENERATED_TERM_SLUG_ATTEMPTS; attempt++) {
685
- attemptedSlug = await repo.generateUniqueSlug(taxonomyName, input.label, locale);
686
- try {
687
- term = await create(attemptedSlug);
688
- break;
689
- } catch (error) {
690
- if (!isTermSlugUniqueViolation(error)) throw error;
691
- lastSlugConflict = error;
692
- }
693
- }
694
- if (!term) throw lastSlugConflict ?? /* @__PURE__ */ new Error("Failed to create taxonomy term");
695
- invalidateTermCache();
696
- return {
697
- success: true,
698
- data: { term: {
699
- id: term.id,
700
- name: term.name,
701
- slug: term.slug,
702
- label: term.label,
703
- parentId: term.parentId,
704
- description: typeof term.data?.description === "string" ? term.data.description : void 0,
705
- locale: term.locale,
706
- translationGroup: term.translationGroup
707
- } }
708
- };
709
- } catch (error) {
710
- if (isTermTranslationLocaleUniqueViolation(error)) return {
711
- success: false,
712
- error: {
713
- code: "CONFLICT",
714
- message: `Term translation already exists for locale '${effectiveLocale}'`
715
- }
716
- };
717
- if (isTermSlugUniqueViolation(error)) return {
718
- success: false,
719
- error: {
720
- code: "CONFLICT",
721
- message: `Term with slug '${attemptedSlug ?? "(generated)"}' already exists in taxonomy '${taxonomyName}'`
722
- }
723
- };
724
- return {
725
- success: false,
726
- error: {
727
- code: "TERM_CREATE_ERROR",
728
- message: "Failed to create term"
729
- }
730
- };
731
- }
732
- }
733
- /**
734
- * Get a single term by slug
735
- */
736
- async function handleTermGet(db, taxonomyName, termSlug, options = {}) {
737
- try {
738
- const repo = new TaxonomyRepository(db);
739
- const locale = options.locale ? resolveConfiguredLocale(options.locale) : void 0;
740
- const term = await repo.findBySlug(taxonomyName, termSlug, locale);
741
- if (!term) return {
742
- success: false,
743
- error: {
744
- code: "NOT_FOUND",
745
- message: `Term '${termSlug}' not found in taxonomy '${taxonomyName}'`
746
- }
747
- };
748
- const lookup = await requireTaxonomyDefWithFallback(db, taxonomyName, locale);
749
- const count = (await fetchVisibleTermCounts(db, taxonomyName, lookup.success ? parseTaxonomyCollections(lookup.def.collections) : [], locale ?? term.locale)).get(term.translationGroup ?? term.id) ?? 0;
750
- const children = await repo.findChildren(term.id, term.locale);
751
- return {
752
- success: true,
753
- data: { term: {
754
- id: term.id,
755
- name: term.name,
756
- slug: term.slug,
757
- label: term.label,
758
- parentId: term.parentId,
759
- description: typeof term.data?.description === "string" ? term.data.description : void 0,
760
- count,
761
- children: children.map((c) => ({
762
- id: c.id,
763
- slug: c.slug,
764
- label: c.label
765
- })),
766
- locale: term.locale,
767
- translationGroup: term.translationGroup
768
- } }
769
- };
770
- } catch {
771
- return {
772
- success: false,
773
- error: {
774
- code: "TERM_GET_ERROR",
775
- message: "Failed to get term"
776
- }
777
- };
778
- }
779
- }
780
- /** List every translation of a term (by id or translation_group). */
781
- async function handleTermTranslations(db, idOrGroup) {
782
- try {
783
- const anchor = await db.selectFrom("taxonomies").selectAll().where((eb) => eb.or([eb("id", "=", idOrGroup), eb("translation_group", "=", idOrGroup)])).executeTakeFirst();
784
- if (!anchor) return {
785
- success: false,
786
- error: {
787
- code: "NOT_FOUND",
788
- message: "Term not found"
789
- }
790
- };
791
- const group = anchor.translation_group ?? anchor.id;
792
- return {
793
- success: true,
794
- data: {
795
- translationGroup: group,
796
- translations: (await db.selectFrom("taxonomies").selectAll().where("translation_group", "=", group).orderBy("locale", "asc").execute()).map((r) => ({
797
- id: r.id,
798
- slug: r.slug,
799
- label: r.label,
800
- locale: r.locale
801
- }))
802
- }
803
- };
804
- } catch {
805
- return {
806
- success: false,
807
- error: {
808
- code: "TERM_TRANSLATIONS_ERROR",
809
- message: "Failed to list term translations"
810
- }
811
- };
812
- }
813
- }
814
- /**
815
- * Update a term
816
- */
817
- async function handleTermUpdate(db, taxonomyName, termSlug, input, options = {}) {
818
- try {
819
- const repo = new TaxonomyRepository(db);
820
- const locale = options.locale ? resolveConfiguredLocale(options.locale) : void 0;
821
- const term = await repo.findBySlug(taxonomyName, termSlug, locale);
822
- if (!term) return {
823
- success: false,
824
- error: {
825
- code: "NOT_FOUND",
826
- message: `Term '${termSlug}' not found in taxonomy '${taxonomyName}'`
827
- }
828
- };
829
- const newSlug = input.slug === "" || input.slug === void 0 ? void 0 : input.slug;
830
- const newParentId = input.parentId === "" || input.parentId === void 0 ? void 0 : input.parentId;
831
- if (newParentId !== void 0 && newParentId !== null) {
832
- const lookup = await requireTaxonomyDefWithFallback(db, taxonomyName, term.locale);
833
- if (!lookup.success) return lookup;
834
- const hierarchyError = validateHierarchicalParent(lookup.def, taxonomyName, newParentId);
835
- if (hierarchyError) return {
836
- success: false,
837
- error: hierarchyError
838
- };
839
- }
840
- if (newSlug !== void 0 && newSlug !== termSlug) {
841
- const existing = await repo.findBySlug(taxonomyName, newSlug, locale);
842
- if (existing && existing.id !== term.id) return {
843
- success: false,
844
- error: {
845
- code: "CONFLICT",
846
- message: `Term with slug '${newSlug}' already exists in taxonomy '${taxonomyName}'`
847
- }
848
- };
849
- }
850
- const parentError = await validateParentTerm(repo, taxonomyName, term.id, newParentId);
851
- if (parentError) return {
852
- success: false,
853
- error: parentError
854
- };
855
- const updated = await repo.update(term.id, {
856
- slug: newSlug,
857
- label: input.label,
858
- parentId: newParentId,
859
- data: input.description !== void 0 ? { description: input.description } : void 0
860
- });
861
- invalidateTermCache();
862
- if (!updated) return {
863
- success: false,
864
- error: {
865
- code: "TERM_UPDATE_ERROR",
866
- message: "Failed to update term"
867
- }
868
- };
869
- return {
870
- success: true,
871
- data: { term: {
872
- id: updated.id,
873
- name: updated.name,
874
- slug: updated.slug,
875
- label: updated.label,
876
- parentId: updated.parentId,
877
- description: typeof updated.data?.description === "string" ? updated.data.description : void 0,
878
- locale: updated.locale,
879
- translationGroup: updated.translationGroup
880
- } }
881
- };
882
- } catch {
883
- return {
884
- success: false,
885
- error: {
886
- code: "TERM_UPDATE_ERROR",
887
- message: "Failed to update term"
888
- }
889
- };
890
- }
891
- }
892
- /**
893
- * Delete a term
894
- */
895
- async function handleTermDelete(db, taxonomyName, termSlug, options = {}) {
896
- try {
897
- const repo = new TaxonomyRepository(db);
898
- const locale = options.locale ? resolveConfiguredLocale(options.locale) : void 0;
899
- const term = await repo.findBySlug(taxonomyName, termSlug, locale);
900
- if (!term) return {
901
- success: false,
902
- error: {
903
- code: "NOT_FOUND",
904
- message: `Term '${termSlug}' not found in taxonomy '${taxonomyName}'`
905
- }
906
- };
907
- if ((await repo.findChildren(term.id)).length > 0) return {
908
- success: false,
909
- error: {
910
- code: "VALIDATION_ERROR",
911
- message: "Cannot delete term with children. Delete children first."
912
- }
913
- };
914
- if (!await repo.delete(term.id)) return {
915
- success: false,
916
- error: {
917
- code: "TERM_DELETE_ERROR",
918
- message: "Failed to delete term"
919
- }
920
- };
921
- invalidateTermCache();
922
- return {
923
- success: true,
924
- data: { deleted: true }
925
- };
926
- } catch {
927
- return {
928
- success: false,
929
- error: {
930
- code: "TERM_DELETE_ERROR",
931
- message: "Failed to delete term"
932
- }
933
- };
934
- }
935
- }
936
-
937
- //#endregion
938
- export { handleTaxonomyList as a, handleTermDelete as c, handleTermReorder as d, handleTermTranslations as f, handleTaxonomyGet as i, handleTermGet as l, taxonomies_exports as m, handleTaxonomyDefTranslations as n, handleTaxonomyUpdate as o, handleTermUpdate as p, handleTaxonomyDelete as r, handleTermCreate as s, handleTaxonomyCreate as t, handleTermList as u };
939
- //# sourceMappingURL=taxonomies-Dd9JJv_a.mjs.map