emdash 0.38.0 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1394) hide show
  1. package/dist/action-token-On1sot_c.mjs +26 -0
  2. package/dist/action-token-On1sot_c.mjs.map +1 -0
  3. package/dist/activation-CaMfdBt1.mjs +382 -0
  4. package/dist/activation-CaMfdBt1.mjs.map +1 -0
  5. package/dist/adapters-Cq10K4_c.d.mts +171 -0
  6. package/dist/adapters-Cq10K4_c.d.mts.map +1 -0
  7. package/dist/after-PcEvMY_6.mjs +96 -0
  8. package/dist/after-PcEvMY_6.mjs.map +1 -0
  9. package/dist/allowed-origins-1Sa-2wZK.mjs +116 -0
  10. package/dist/allowed-origins-1Sa-2wZK.mjs.map +1 -0
  11. package/dist/api/route-utils.d.mts +4 -3
  12. package/dist/api/route-utils.d.mts.map +1 -1
  13. package/dist/api/route-utils.mjs +45 -30
  14. package/dist/api/route-utils.mjs.map +1 -1
  15. package/dist/api/schemas/index.d.mts +2 -2
  16. package/dist/api/schemas/index.mjs +7 -6
  17. package/dist/api-DmjKxPCY.mjs +4831 -0
  18. package/dist/api-DmjKxPCY.mjs.map +1 -0
  19. package/dist/api-tokens-BIXItFKV.mjs +163 -0
  20. package/dist/api-tokens-BIXItFKV.mjs.map +1 -0
  21. package/dist/apply-drpfmqrR.mjs +1005 -0
  22. package/dist/apply-drpfmqrR.mjs.map +1 -0
  23. package/dist/artifact-fetch-COiMhVgk.mjs +813 -0
  24. package/dist/artifact-fetch-COiMhVgk.mjs.map +1 -0
  25. package/dist/astro/index.d.mts +14 -12
  26. package/dist/astro/index.d.mts.map +1 -1
  27. package/dist/astro/index.mjs +99 -15
  28. package/dist/astro/index.mjs.map +1 -1
  29. package/dist/astro/middleware/auth.d.mts +12 -10
  30. package/dist/astro/middleware/auth.d.mts.map +1 -1
  31. package/dist/astro/middleware/auth.mjs +20 -11
  32. package/dist/astro/middleware/auth.mjs.map +1 -1
  33. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  34. package/dist/astro/middleware/redirect.mjs +11 -11
  35. package/dist/astro/middleware/request-context.d.mts +1 -1
  36. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  37. package/dist/astro/middleware/request-context.mjs +154 -28
  38. package/dist/astro/middleware/request-context.mjs.map +1 -1
  39. package/dist/astro/middleware/setup.mjs +1 -1
  40. package/dist/astro/middleware.d.mts +13 -10
  41. package/dist/astro/middleware.d.mts.map +1 -1
  42. package/dist/astro/middleware.mjs +114 -3062
  43. package/dist/astro/middleware.mjs.map +1 -1
  44. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +10 -9
  45. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
  46. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +10 -9
  47. package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
  48. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +5 -5
  49. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
  50. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -6
  51. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +13 -12
  52. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
  53. package/dist/astro/routes/api/admin/byline-fields/index.mjs +13 -12
  54. package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
  55. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +13 -12
  56. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
  57. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +22 -21
  58. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +22 -21
  60. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  61. package/dist/astro/routes/api/admin/bylines/index.mjs +22 -21
  62. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  63. package/dist/astro/routes/api/admin/comments/_id_/status.d.mts.map +1 -1
  64. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +21 -54
  65. package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
  66. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
  67. package/dist/astro/routes/api/admin/comments/bulk.mjs +15 -14
  68. package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
  69. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
  70. package/dist/astro/routes/api/admin/comments/index.mjs +15 -14
  71. package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
  72. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  73. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  74. package/dist/astro/routes/api/admin/media-usage/activation.mjs +17 -16
  75. package/dist/astro/routes/api/admin/media-usage/activation.mjs.map +1 -1
  76. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +19 -18
  77. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -1
  78. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +19 -18
  79. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -1
  80. package/dist/astro/routes/api/admin/media-usage/progress.mjs +17 -17
  81. package/dist/astro/routes/api/admin/media-usage/repair.mjs +21 -20
  82. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  83. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +19 -18
  84. package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -1
  85. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +19 -18
  86. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -1
  87. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -5
  88. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -5
  89. package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts.map +1 -1
  90. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +9 -69
  91. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
  92. package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts.map +1 -1
  93. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +9 -72
  94. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
  95. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +66 -62
  96. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  97. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +6 -6
  98. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +65 -62
  99. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  100. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +70 -64
  101. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts.map +1 -1
  103. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +87 -66
  104. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  105. package/dist/astro/routes/api/admin/plugins/index.mjs +66 -62
  106. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  107. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +4 -4
  108. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +65 -62
  109. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  110. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts.map +1 -1
  111. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +85 -66
  112. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  113. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +65 -62
  114. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  115. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +70 -64
  116. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  117. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.d.mts.map +1 -1
  118. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +90 -69
  119. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  120. package/dist/astro/routes/api/admin/plugins/registry/artifact.d.mts.map +1 -1
  121. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -8
  122. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  123. package/dist/astro/routes/api/admin/plugins/registry/install.d.mts.map +1 -1
  124. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +77 -66
  125. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  126. package/dist/astro/routes/api/admin/plugins/registry/verify.d.mts.map +1 -1
  127. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +67 -64
  128. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  129. package/dist/astro/routes/api/admin/plugins/updates.d.mts.map +1 -1
  130. package/dist/astro/routes/api/admin/plugins/updates.mjs +66 -63
  131. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  132. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.d.mts +8 -0
  133. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.d.mts.map +1 -0
  134. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +27 -0
  135. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs.map +1 -0
  136. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +65 -62
  137. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  138. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +4 -4
  139. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +65 -62
  140. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  141. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +4 -4
  142. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -3
  143. package/dist/astro/routes/api/admin/users/_id_/index.mjs +11 -10
  144. package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
  145. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +5 -5
  146. package/dist/astro/routes/api/admin/users/index.mjs +10 -9
  147. package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
  148. package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -5
  149. package/dist/astro/routes/api/auth/invite/accept.mjs +3 -3
  150. package/dist/astro/routes/api/auth/invite/complete.mjs +15 -14
  151. package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
  152. package/dist/astro/routes/api/auth/invite/index.mjs +12 -11
  153. package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
  154. package/dist/astro/routes/api/auth/invite/register-options.mjs +14 -13
  155. package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
  156. package/dist/astro/routes/api/auth/logout.mjs +4 -4
  157. package/dist/astro/routes/api/auth/magic-link/send.mjs +14 -13
  158. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  159. package/dist/astro/routes/api/auth/magic-link/verify.mjs +4 -4
  160. package/dist/astro/routes/api/auth/me.mjs +11 -10
  161. package/dist/astro/routes/api/auth/me.mjs.map +1 -1
  162. package/dist/astro/routes/api/auth/mode.mjs +4 -4
  163. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +4 -4
  164. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  165. package/dist/astro/routes/api/auth/passkey/_id_.mjs +10 -9
  166. package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
  167. package/dist/astro/routes/api/auth/passkey/index.mjs +3 -3
  168. package/dist/astro/routes/api/auth/passkey/options.mjs +16 -15
  169. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  170. package/dist/astro/routes/api/auth/passkey/register/options.mjs +14 -13
  171. package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
  172. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +15 -14
  173. package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
  174. package/dist/astro/routes/api/auth/passkey/verify.mjs +15 -14
  175. package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
  176. package/dist/astro/routes/api/auth/signup/complete.mjs +15 -14
  177. package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
  178. package/dist/astro/routes/api/auth/signup/request.mjs +14 -13
  179. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  180. package/dist/astro/routes/api/auth/signup/verify.mjs +3 -3
  181. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.d.mts.map +1 -1
  182. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +15 -211
  183. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -1
  184. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +18 -17
  185. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
  186. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -4
  187. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +15 -14
  188. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  189. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  190. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +15 -14
  191. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
  192. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -4
  193. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.d.mts +8 -0
  194. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.d.mts.map +1 -0
  195. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +35 -0
  196. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs.map +1 -0
  197. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +16 -15
  198. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  199. package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts +9 -2
  200. package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts.map +1 -1
  201. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +25 -18
  202. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  203. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +27 -25
  204. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  205. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +27 -25
  206. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  207. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
  208. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -4
  209. package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts.map +1 -1
  210. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +23 -15
  211. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  212. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +23 -21
  213. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  214. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -4
  215. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +23 -15
  216. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  217. package/dist/astro/routes/api/content/_collection_/_id_.mjs +15 -14
  218. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  219. package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -4
  220. package/dist/astro/routes/api/content/_collection_/index.mjs +12 -11
  221. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  222. package/dist/astro/routes/api/content/_collection_/trash.mjs +11 -10
  223. package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
  224. package/dist/astro/routes/api/dashboard.mjs +14 -12
  225. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  226. package/dist/astro/routes/api/dev/emails.mjs +4 -4
  227. package/dist/astro/routes/api/health.d.mts +8 -0
  228. package/dist/astro/routes/api/health.d.mts.map +1 -0
  229. package/dist/astro/routes/api/health.mjs +21 -0
  230. package/dist/astro/routes/api/health.mjs.map +1 -0
  231. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  232. package/dist/astro/routes/api/import/probe.mjs +25 -23
  233. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  234. package/dist/astro/routes/api/import/wordpress/analyze.mjs +5 -5
  235. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -11
  236. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  237. package/dist/astro/routes/api/import/wordpress/execute.mjs +20 -20
  238. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -10
  239. package/dist/astro/routes/api/import/wordpress/media.d.mts.map +1 -1
  240. package/dist/astro/routes/api/import/wordpress/media.mjs +15 -14
  241. package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
  242. package/dist/astro/routes/api/import/wordpress/prepare.mjs +14 -13
  243. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  244. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -11
  245. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts.map +1 -1
  246. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +18 -17
  247. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  248. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  249. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +25 -23
  250. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  251. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
  252. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -11
  253. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -1
  254. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +36 -34
  255. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  256. package/dist/astro/routes/api/manifest.mjs +17 -9
  257. package/dist/astro/routes/api/manifest.mjs.map +1 -1
  258. package/dist/astro/routes/api/mcp.d.mts.map +1 -1
  259. package/dist/astro/routes/api/mcp.mjs +167 -101
  260. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  261. package/dist/astro/routes/api/media/_id_/confirm.mjs +15 -14
  262. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  263. package/dist/astro/routes/api/media/_id_/replace.mjs +12 -11
  264. package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -1
  265. package/dist/astro/routes/api/media/_id_/upload.mjs +8 -8
  266. package/dist/astro/routes/api/media/_id_/usage.mjs +23 -22
  267. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  268. package/dist/astro/routes/api/media/_id_.mjs +22 -21
  269. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  270. package/dist/astro/routes/api/media/asset/_id_/_filename_.d.mts +8 -0
  271. package/dist/astro/routes/api/media/asset/_id_/_filename_.d.mts.map +1 -0
  272. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +52 -0
  273. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs.map +1 -0
  274. package/dist/astro/routes/api/media/file/_...key_.mjs +3 -3
  275. package/dist/astro/routes/api/media/folders/_id_.mjs +12 -11
  276. package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -1
  277. package/dist/astro/routes/api/media/folders/index.mjs +12 -11
  278. package/dist/astro/routes/api/media/folders/index.mjs.map +1 -1
  279. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
  280. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
  281. package/dist/astro/routes/api/media/providers/index.mjs +4 -4
  282. package/dist/astro/routes/api/media/upload-url.mjs +14 -13
  283. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  284. package/dist/astro/routes/api/media.mjs +26 -25
  285. package/dist/astro/routes/api/media.mjs.map +1 -1
  286. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +15 -14
  287. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  288. package/dist/astro/routes/api/menus/_name_/items.mjs +15 -14
  289. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  290. package/dist/astro/routes/api/menus/_name_/reorder.mjs +15 -14
  291. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  292. package/dist/astro/routes/api/menus/_name_/translations.mjs +15 -14
  293. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  294. package/dist/astro/routes/api/menus/_name_.mjs +15 -14
  295. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  296. package/dist/astro/routes/api/menus/index.mjs +15 -14
  297. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  298. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  299. package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -7
  300. package/dist/astro/routes/api/oauth/device/code.mjs +10 -10
  301. package/dist/astro/routes/api/oauth/device/token.mjs +9 -9
  302. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  303. package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -7
  304. package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -7
  305. package/dist/astro/routes/api/oauth/token.mjs +7 -7
  306. package/dist/astro/routes/api/openapi.json.mjs +28 -23
  307. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  308. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts +2 -1
  309. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts.map +1 -1
  310. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +22 -40
  311. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
  312. package/dist/astro/routes/api/redirects/404s/index.mjs +18 -15
  313. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  314. package/dist/astro/routes/api/redirects/404s/summary.mjs +18 -15
  315. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  316. package/dist/astro/routes/api/redirects/_id_.d.mts.map +1 -1
  317. package/dist/astro/routes/api/redirects/_id_.mjs +20 -23
  318. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  319. package/dist/astro/routes/api/redirects/index.d.mts.map +1 -1
  320. package/dist/astro/routes/api/redirects/index.mjs +19 -20
  321. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  322. package/dist/astro/routes/api/relations/_id_/index.mjs +27 -25
  323. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  324. package/dist/astro/routes/api/relations/_id_/translations.mjs +21 -20
  325. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +1 -1
  326. package/dist/astro/routes/api/relations/index.mjs +27 -25
  327. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  328. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -4
  329. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +5 -5
  330. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +65 -62
  331. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  332. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +65 -62
  333. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  334. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +65 -62
  335. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  336. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +65 -62
  337. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  338. package/dist/astro/routes/api/schema/collections/index.mjs +65 -62
  339. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  340. package/dist/astro/routes/api/schema/collections/reorder.mjs +65 -62
  341. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  342. package/dist/astro/routes/api/schema/index.mjs +16 -16
  343. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +65 -62
  344. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  345. package/dist/astro/routes/api/schema/orphans/index.mjs +65 -62
  346. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  347. package/dist/astro/routes/api/search/enable.mjs +16 -15
  348. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  349. package/dist/astro/routes/api/search/index.mjs +17 -15
  350. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  351. package/dist/astro/routes/api/search/rebuild.mjs +16 -15
  352. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  353. package/dist/astro/routes/api/search/stats.mjs +10 -10
  354. package/dist/astro/routes/api/search/suggest.mjs +15 -14
  355. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  356. package/dist/astro/routes/api/sections/_slug_.mjs +15 -14
  357. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  358. package/dist/astro/routes/api/sections/index.mjs +15 -14
  359. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  360. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +9 -9
  361. package/dist/astro/routes/api/settings/backups/archives/index.mjs +8 -8
  362. package/dist/astro/routes/api/settings/backups/export.mjs +9 -9
  363. package/dist/astro/routes/api/settings/backups/index.mjs +10 -10
  364. package/dist/astro/routes/api/settings/email.mjs +6 -6
  365. package/dist/astro/routes/api/settings.mjs +22 -20
  366. package/dist/astro/routes/api/settings.mjs.map +1 -1
  367. package/dist/astro/routes/api/setup/admin-verify.mjs +16 -15
  368. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  369. package/dist/astro/routes/api/setup/admin.mjs +15 -14
  370. package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
  371. package/dist/astro/routes/api/setup/dev-bypass.mjs +42 -40
  372. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  373. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  374. package/dist/astro/routes/api/setup/index.mjs +43 -40
  375. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  376. package/dist/astro/routes/api/setup/status.mjs +5 -5
  377. package/dist/astro/routes/api/snapshot.mjs +11 -11
  378. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +23 -22
  379. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  380. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +23 -22
  381. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  382. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +23 -22
  383. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  384. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +23 -22
  385. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  386. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +22 -21
  387. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  388. package/dist/astro/routes/api/taxonomies/_name_.mjs +23 -22
  389. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  390. package/dist/astro/routes/api/taxonomies/index.mjs +23 -22
  391. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  392. package/dist/astro/routes/api/themes/preview.mjs +8 -8
  393. package/dist/astro/routes/api/typegen.mjs +6 -6
  394. package/dist/astro/routes/api/visual-editing/action-token.d.mts +8 -0
  395. package/dist/astro/routes/api/visual-editing/action-token.d.mts.map +1 -0
  396. package/dist/astro/routes/api/visual-editing/action-token.mjs +25 -0
  397. package/dist/astro/routes/api/visual-editing/action-token.mjs.map +1 -0
  398. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.d.mts +8 -0
  399. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.d.mts.map +1 -0
  400. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +37 -0
  401. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs.map +1 -0
  402. package/dist/astro/routes/api/visual-editing/toolbar-labels.d.mts +8 -0
  403. package/dist/astro/routes/api/visual-editing/toolbar-labels.d.mts.map +1 -0
  404. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +20 -0
  405. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs.map +1 -0
  406. package/dist/astro/routes/api/well-known/auth.mjs +2 -2
  407. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  408. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  409. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +12 -11
  410. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  411. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +16 -15
  412. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  413. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +16 -15
  414. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  415. package/dist/astro/routes/api/widget-areas/_name_.mjs +10 -10
  416. package/dist/astro/routes/api/widget-areas/index.mjs +16 -15
  417. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  418. package/dist/astro/routes/api/widget-components.mjs +4 -4
  419. package/dist/astro/routes/robots.txt.mjs +13 -12
  420. package/dist/astro/routes/robots.txt.mjs.map +1 -1
  421. package/dist/astro/routes/sitemap-_collection_.xml.d.mts.map +1 -1
  422. package/dist/astro/routes/sitemap-_collection_.xml.mjs +23 -19
  423. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  424. package/dist/astro/routes/sitemap.xml.mjs +14 -13
  425. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  426. package/dist/astro/types.d.mts +61 -23
  427. package/dist/astro/types.d.mts.map +1 -1
  428. package/dist/auth/providers/github.d.mts +1 -1
  429. package/dist/auth/providers/google.d.mts +1 -1
  430. package/dist/authoritative-records-DbqshfKD.mjs +5172 -0
  431. package/dist/authoritative-records-DbqshfKD.mjs.map +1 -0
  432. package/dist/authorize-BXpfMpp0.mjs +40 -0
  433. package/dist/authorize-BXpfMpp0.mjs.map +1 -0
  434. package/dist/backup-BsPQdwnS.mjs +246 -0
  435. package/dist/backup-BsPQdwnS.mjs.map +1 -0
  436. package/dist/base64-DvnNgP7e.mjs +63 -0
  437. package/dist/base64-DvnNgP7e.mjs.map +1 -0
  438. package/dist/byline-Doh-wt99.mjs +906 -0
  439. package/dist/byline-Doh-wt99.mjs.map +1 -0
  440. package/dist/byline-fields-CsrdvaLV.mjs +123 -0
  441. package/dist/byline-fields-CsrdvaLV.mjs.map +1 -0
  442. package/dist/byline-registry-D6lWzXk6.mjs +406 -0
  443. package/dist/byline-registry-D6lWzXk6.mjs.map +1 -0
  444. package/dist/bylines-Cop0hkoy.mjs +214 -0
  445. package/dist/bylines-Cop0hkoy.mjs.map +1 -0
  446. package/dist/bylines-kpBzHPr8.mjs +232 -0
  447. package/dist/bylines-kpBzHPr8.mjs.map +1 -0
  448. package/dist/cache-B0pOlXdM.mjs +108 -0
  449. package/dist/cache-B0pOlXdM.mjs.map +1 -0
  450. package/dist/capture-triggers-gxQxnxrJ.mjs +362 -0
  451. package/dist/capture-triggers-gxQxnxrJ.mjs.map +1 -0
  452. package/dist/challenge-store-CkRdSdd8.mjs +51 -0
  453. package/dist/challenge-store-CkRdSdd8.mjs.map +1 -0
  454. package/dist/checksum-Bsi2D9M1.mjs +162 -0
  455. package/dist/checksum-Bsi2D9M1.mjs.map +1 -0
  456. package/dist/chrome-tags-D7LGB91U.mjs +24 -0
  457. package/dist/chrome-tags-D7LGB91U.mjs.map +1 -0
  458. package/dist/chunks-BmWyou79.mjs +25 -0
  459. package/dist/chunks-BmWyou79.mjs.map +1 -0
  460. package/dist/cli/index.mjs +889 -102
  461. package/dist/cli/index.mjs.map +1 -1
  462. package/dist/client/cf-access.d.mts +1 -1
  463. package/dist/client/index.d.mts +2 -2
  464. package/dist/client/index.mjs +2 -2
  465. package/dist/collection-deletion-C3Xixmkx.mjs +436 -0
  466. package/dist/collection-deletion-C3Xixmkx.mjs.map +1 -0
  467. package/dist/collection-slugs-cache-D9auiKmI.mjs +85 -0
  468. package/dist/collection-slugs-cache-D9auiKmI.mjs.map +1 -0
  469. package/dist/comment-DcT8qdPK.mjs +313 -0
  470. package/dist/comment-DcT8qdPK.mjs.map +1 -0
  471. package/dist/comment-reaction-DY5-y8Y5.mjs +85 -0
  472. package/dist/comment-reaction-DY5-y8Y5.mjs.map +1 -0
  473. package/dist/comments-B67VRNGw.mjs +204 -0
  474. package/dist/comments-B67VRNGw.mjs.map +1 -0
  475. package/dist/comments-BVzzt6x5.mjs +99 -0
  476. package/dist/comments-BVzzt6x5.mjs.map +1 -0
  477. package/dist/components-DIl9Qzh6.mjs +108 -0
  478. package/dist/components-DIl9Qzh6.mjs.map +1 -0
  479. package/dist/config-B2acLeC5.mjs +242 -0
  480. package/dist/config-B2acLeC5.mjs.map +1 -0
  481. package/dist/config-CGVeT8Hc.mjs +73 -0
  482. package/dist/config-CGVeT8Hc.mjs.map +1 -0
  483. package/dist/config-D3HhLON3.d.mts +39 -0
  484. package/dist/config-D3HhLON3.d.mts.map +1 -0
  485. package/dist/config-DS7e4EZ9.d.mts +6387 -0
  486. package/dist/config-DS7e4EZ9.d.mts.map +1 -0
  487. package/dist/content-DZ3B5qtA.mjs +2216 -0
  488. package/dist/content-DZ3B5qtA.mjs.map +1 -0
  489. package/dist/content-list-query-CbPdzsna.d.mts +26 -0
  490. package/dist/content-list-query-CbPdzsna.d.mts.map +1 -0
  491. package/dist/content-policy-CM4skrNi.mjs +46 -0
  492. package/dist/content-policy-CM4skrNi.mjs.map +1 -0
  493. package/dist/content-refresh-BHLHJgyt.mjs +3599 -0
  494. package/dist/content-refresh-BHLHJgyt.mjs.map +1 -0
  495. package/dist/content-repair-BVll5WNl.mjs +440 -0
  496. package/dist/content-repair-BVll5WNl.mjs.map +1 -0
  497. package/dist/context-B195kjqZ.mjs +1835 -0
  498. package/dist/context-B195kjqZ.mjs.map +1 -0
  499. package/dist/cron-BcR3RN4K.mjs +282 -0
  500. package/dist/cron-BcR3RN4K.mjs.map +1 -0
  501. package/dist/dashboard-CZD4G7k_.mjs +151 -0
  502. package/dist/dashboard-CZD4G7k_.mjs.map +1 -0
  503. package/dist/database/migration-lock.d.mts +37 -0
  504. package/dist/database/migration-lock.d.mts.map +1 -0
  505. package/dist/database/migration-lock.mjs +76 -0
  506. package/dist/database/migration-lock.mjs.map +1 -0
  507. package/dist/database/pg-migration-lock.d.mts +1 -1
  508. package/dist/database/pg-migration-lock.mjs +1 -1
  509. package/dist/database/pg-migration-lock.mjs.map +1 -1
  510. package/dist/datetime-normalization-PeiEdcRY.mjs +187 -0
  511. package/dist/datetime-normalization-PeiEdcRY.mjs.map +1 -0
  512. package/dist/db/index.d.mts +3 -3
  513. package/dist/db/index.mjs +4 -3
  514. package/dist/db/index.mjs.map +1 -1
  515. package/dist/db/libsql-migrations.d.mts +1 -1
  516. package/dist/db/libsql-migrations.mjs +7 -6
  517. package/dist/db/libsql-migrations.mjs.map +1 -1
  518. package/dist/db/libsql.d.mts +1 -1
  519. package/dist/db/postgres-migrations.d.mts +1 -1
  520. package/dist/db/postgres-migrations.mjs +7 -6
  521. package/dist/db/postgres-migrations.mjs.map +1 -1
  522. package/dist/db/postgres.d.mts +1 -1
  523. package/dist/db/sqlite-migrations.d.mts +1 -1
  524. package/dist/db/sqlite-migrations.mjs +7 -6
  525. package/dist/db/sqlite-migrations.mjs.map +1 -1
  526. package/dist/db/sqlite.d.mts +1 -1
  527. package/dist/db/sqlite.mjs +1 -1
  528. package/dist/db-errors-CBD5yMro.mjs +55 -0
  529. package/dist/db-errors-CBD5yMro.mjs.map +1 -0
  530. package/dist/default-BtlxWgh9.mjs +81 -0
  531. package/dist/default-BtlxWgh9.mjs.map +1 -0
  532. package/dist/deferred-tasks-Ba9fphlE.d.mts +9 -0
  533. package/dist/deferred-tasks-Ba9fphlE.d.mts.map +1 -0
  534. package/dist/dev-typegen-CZaPLl3V.mjs +29 -0
  535. package/dist/dev-typegen-CZaPLl3V.mjs.map +1 -0
  536. package/dist/device-flow-3E5l0fpH.mjs +466 -0
  537. package/dist/device-flow-3E5l0fpH.mjs.map +1 -0
  538. package/dist/dialect-helpers-CtYdsX4W.mjs +307 -0
  539. package/dist/dialect-helpers-CtYdsX4W.mjs.map +1 -0
  540. package/dist/direct-executor-ZI8E01Yt.mjs +104 -0
  541. package/dist/direct-executor-ZI8E01Yt.mjs.map +1 -0
  542. package/dist/dist-2hDLsLeq.mjs +810 -0
  543. package/dist/dist-2hDLsLeq.mjs.map +1 -0
  544. package/dist/email-console-gc-E3Eqj.mjs +50 -0
  545. package/dist/email-console-gc-E3Eqj.mjs.map +1 -0
  546. package/dist/emdash-runtime-DZGinqTL.mjs +4041 -0
  547. package/dist/emdash-runtime-DZGinqTL.mjs.map +1 -0
  548. package/dist/enrich-C2Mk0lwE.mjs +194 -0
  549. package/dist/enrich-C2Mk0lwE.mjs.map +1 -0
  550. package/dist/entry-lock-D3C99MXS.mjs +1520 -0
  551. package/dist/entry-lock-D3C99MXS.mjs.map +1 -0
  552. package/dist/entry-lock-D9rnj2Lu.mjs +163 -0
  553. package/dist/entry-lock-D9rnj2Lu.mjs.map +1 -0
  554. package/dist/entry-lock-DX7QkqEg.d.mts +3503 -0
  555. package/dist/entry-lock-DX7QkqEg.d.mts.map +1 -0
  556. package/dist/entry-locks-CO_KaoU5.mjs +167 -0
  557. package/dist/entry-locks-CO_KaoU5.mjs.map +1 -0
  558. package/dist/error-CCTCskie.mjs +90 -0
  559. package/dist/error-CCTCskie.mjs.map +1 -0
  560. package/dist/errors-W3PA8HqB.mjs +447 -0
  561. package/dist/errors-W3PA8HqB.mjs.map +1 -0
  562. package/dist/escape-DN4Qmjsl.mjs +9 -0
  563. package/dist/escape-DN4Qmjsl.mjs.map +1 -0
  564. package/dist/field-defs-cache-B337z8UJ.mjs +77 -0
  565. package/dist/field-defs-cache-B337z8UJ.mjs.map +1 -0
  566. package/dist/focal-point-Gr34o-4o.mjs +23 -0
  567. package/dist/focal-point-Gr34o-4o.mjs.map +1 -0
  568. package/dist/fts-manager-DMb0sbIQ.mjs +413 -0
  569. package/dist/fts-manager-DMb0sbIQ.mjs.map +1 -0
  570. package/dist/hash-CLVFzWvx.mjs +37 -0
  571. package/dist/hash-CLVFzWvx.mjs.map +1 -0
  572. package/dist/hook-result-KY1jq21o.d.mts +31 -0
  573. package/dist/hook-result-KY1jq21o.d.mts.map +1 -0
  574. package/dist/hreflang-BgS2FqhH.d.mts +50 -0
  575. package/dist/hreflang-BgS2FqhH.d.mts.map +1 -0
  576. package/dist/hreflang-CrJwqoeb.mjs +105 -0
  577. package/dist/hreflang-CrJwqoeb.mjs.map +1 -0
  578. package/dist/http-route-dispatch-DAKlanXb.mjs +339 -0
  579. package/dist/http-route-dispatch-DAKlanXb.mjs.map +1 -0
  580. package/dist/identity-DRGSHEEr.mjs +35 -0
  581. package/dist/identity-DRGSHEEr.mjs.map +1 -0
  582. package/dist/import-DFr5B_hC.mjs +2020 -0
  583. package/dist/import-DFr5B_hC.mjs.map +1 -0
  584. package/dist/index-CDwKDkTq.d.mts +623 -0
  585. package/dist/index-CDwKDkTq.d.mts.map +1 -0
  586. package/dist/index.d.mts +27 -22
  587. package/dist/index.mjs +101 -89
  588. package/dist/init-lock-4eRRB4Le.mjs +56 -0
  589. package/dist/init-lock-4eRRB4Le.mjs.map +1 -0
  590. package/dist/install-finalization-5Os-QZ-2.mjs +58 -0
  591. package/dist/install-finalization-5Os-QZ-2.mjs.map +1 -0
  592. package/dist/lifecycle-7e-Lt_kX.mjs +25 -0
  593. package/dist/lifecycle-7e-Lt_kX.mjs.map +1 -0
  594. package/dist/load-Cu5bvCZh.mjs +28 -0
  595. package/dist/load-Cu5bvCZh.mjs.map +1 -0
  596. package/dist/loader-t4TxaFiQ.mjs +1004 -0
  597. package/dist/loader-t4TxaFiQ.mjs.map +1 -0
  598. package/dist/manifest-builder-D31UoJCu.mjs +189 -0
  599. package/dist/manifest-builder-D31UoJCu.mjs.map +1 -0
  600. package/dist/manifest-schema-Bkh8SeHd.mjs +491 -0
  601. package/dist/manifest-schema-Bkh8SeHd.mjs.map +1 -0
  602. package/dist/media/image-endpoint.mjs +1 -1
  603. package/dist/media/index.d.mts +1 -1
  604. package/dist/media/index.mjs +4 -4
  605. package/dist/media/local-runtime.d.mts +14 -12
  606. package/dist/media/local-runtime.d.mts.map +1 -1
  607. package/dist/media/local-runtime.mjs +12 -11
  608. package/dist/media/local-runtime.mjs.map +1 -1
  609. package/dist/media-TBlKCwo7.mjs +334 -0
  610. package/dist/media-TBlKCwo7.mjs.map +1 -0
  611. package/dist/media-allowlist-s60eAIf6.mjs +44 -0
  612. package/dist/media-allowlist-s60eAIf6.mjs.map +1 -0
  613. package/dist/media-folders-ClIRLUQv.mjs +210 -0
  614. package/dist/media-folders-ClIRLUQv.mjs.map +1 -0
  615. package/dist/media-url-DY_ijO3B.mjs +43 -0
  616. package/dist/media-url-DY_ijO3B.mjs.map +1 -0
  617. package/dist/media-usage-C4NolTpQ.mjs +1833 -0
  618. package/dist/media-usage-C4NolTpQ.mjs.map +1 -0
  619. package/dist/media-usage-activation-CAhmb14O.mjs +78 -0
  620. package/dist/media-usage-activation-CAhmb14O.mjs.map +1 -0
  621. package/dist/media-usage-work-Cu5DqewW.mjs +586 -0
  622. package/dist/media-usage-work-Cu5DqewW.mjs.map +1 -0
  623. package/dist/media-usage-work-DJr3rOEN.mjs +152 -0
  624. package/dist/media-usage-work-DJr3rOEN.mjs.map +1 -0
  625. package/dist/media-usage-write-fence-DW5oHT7q.mjs +42 -0
  626. package/dist/media-usage-write-fence-DW5oHT7q.mjs.map +1 -0
  627. package/dist/menus-DbgU9z5Q.mjs +3732 -0
  628. package/dist/menus-DbgU9z5Q.mjs.map +1 -0
  629. package/dist/menus-Wy8m5NcH.mjs +753 -0
  630. package/dist/menus-Wy8m5NcH.mjs.map +1 -0
  631. package/dist/migrations/index.d.mts +2 -2
  632. package/dist/migrations/index.d.mts.map +1 -1
  633. package/dist/migrations/index.mjs +6 -5
  634. package/dist/mime-CCYRC4r1.mjs +36 -0
  635. package/dist/mime-CCYRC4r1.mjs.map +1 -0
  636. package/dist/mode-CkmOhFqj.mjs +23 -0
  637. package/dist/mode-CkmOhFqj.mjs.map +1 -0
  638. package/dist/node-sqlite-compat-vpVaILnb.mjs +46 -0
  639. package/dist/node-sqlite-compat-vpVaILnb.mjs.map +1 -0
  640. package/dist/normalize-dChXQjwS.mjs +191 -0
  641. package/dist/normalize-dChXQjwS.mjs.map +1 -0
  642. package/dist/oauth-authorization-DZ-R-hmx.mjs +274 -0
  643. package/dist/oauth-authorization-DZ-R-hmx.mjs.map +1 -0
  644. package/dist/oauth-clients-BMPA8vjl.mjs +266 -0
  645. package/dist/oauth-clients-BMPA8vjl.mjs.map +1 -0
  646. package/dist/oauth-state-store-0gIdb48-.mjs +50 -0
  647. package/dist/oauth-state-store-0gIdb48-.mjs.map +1 -0
  648. package/dist/oauth-user-lookup-ChVW4UWu.mjs +26 -0
  649. package/dist/oauth-user-lookup-ChVW4UWu.mjs.map +1 -0
  650. package/dist/object-cache/memory.d.mts +1 -1
  651. package/dist/object-cache-DlSVbn5Y.mjs +534 -0
  652. package/dist/object-cache-DlSVbn5Y.mjs.map +1 -0
  653. package/dist/options-D5WcorD5.mjs +200 -0
  654. package/dist/options-D5WcorD5.mjs.map +1 -0
  655. package/dist/options-DAknChnw.d.mts +77 -0
  656. package/dist/options-DAknChnw.d.mts.map +1 -0
  657. package/dist/page/index.d.mts +2 -2
  658. package/dist/page/index.mjs +12 -11
  659. package/dist/page/index.mjs.map +1 -1
  660. package/dist/parse-Cr379Av9.mjs +81 -0
  661. package/dist/parse-Cr379Av9.mjs.map +1 -0
  662. package/dist/parse-tj9XLNO_.d.mts +165 -0
  663. package/dist/parse-tj9XLNO_.d.mts.map +1 -0
  664. package/dist/passkey-config-BD-wMaCf.mjs +46 -0
  665. package/dist/passkey-config-BD-wMaCf.mjs.map +1 -0
  666. package/dist/patterns-Do3iqi7N.mjs +145 -0
  667. package/dist/patterns-Do3iqi7N.mjs.map +1 -0
  668. package/dist/placeholder-CubPFn_L.d.mts +306 -0
  669. package/dist/placeholder-CubPFn_L.d.mts.map +1 -0
  670. package/dist/plugin-test-runtime.d.mts +97 -0
  671. package/dist/plugin-test-runtime.d.mts.map +1 -0
  672. package/dist/plugin-test-runtime.mjs +105 -0
  673. package/dist/plugin-types.d.mts +53 -15
  674. package/dist/plugin-types.d.mts.map +1 -1
  675. package/dist/plugin-types.mjs +18 -1
  676. package/dist/plugin-types.mjs.map +1 -0
  677. package/dist/plugin-utils.d.mts +12 -10
  678. package/dist/plugin-utils.d.mts.map +1 -1
  679. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -10
  680. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  681. package/dist/plugins/adapt-sandbox-entry.mjs +18 -13
  682. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  683. package/dist/plugins/host.d.mts +7 -0
  684. package/dist/plugins/host.mjs +45 -0
  685. package/dist/plugins/http-wire.d.mts +25 -0
  686. package/dist/plugins/http-wire.d.mts.map +1 -0
  687. package/dist/plugins/http-wire.mjs +148 -0
  688. package/dist/plugins/http-wire.mjs.map +1 -0
  689. package/dist/plugins/secret-redactor.d.mts +9 -0
  690. package/dist/plugins/secret-redactor.d.mts.map +1 -0
  691. package/dist/plugins/secret-redactor.mjs +51 -0
  692. package/dist/plugins/secret-redactor.mjs.map +1 -0
  693. package/dist/plugins-DHurtdXQ.mjs +277 -0
  694. package/dist/plugins-DHurtdXQ.mjs.map +1 -0
  695. package/dist/policy-lyZnjpwz.mjs +45 -0
  696. package/dist/policy-lyZnjpwz.mjs.map +1 -0
  697. package/dist/portable-text-oAwodbPS.mjs +286 -0
  698. package/dist/portable-text-oAwodbPS.mjs.map +1 -0
  699. package/dist/preview-Cup2bj8c.mjs +107 -0
  700. package/dist/preview-Cup2bj8c.mjs.map +1 -0
  701. package/dist/protocol-C1CNiKX4.d.mts +61 -0
  702. package/dist/protocol-C1CNiKX4.d.mts.map +1 -0
  703. package/dist/public-submission-Cs-pFMQK.mjs +245 -0
  704. package/dist/public-submission-Cs-pFMQK.mjs.map +1 -0
  705. package/dist/public-url-BWVHsfQv.mjs +101 -0
  706. package/dist/public-url-BWVHsfQv.mjs.map +1 -0
  707. package/dist/query-D-lxiOgn.mjs +890 -0
  708. package/dist/query-D-lxiOgn.mjs.map +1 -0
  709. package/dist/query-D7kHKOws.mjs +41 -0
  710. package/dist/query-D7kHKOws.mjs.map +1 -0
  711. package/dist/rate-limit-CqJn-w4h.mjs +120 -0
  712. package/dist/rate-limit-CqJn-w4h.mjs.map +1 -0
  713. package/dist/redirect-BrChFPIu.mjs +17 -0
  714. package/dist/redirect-BrChFPIu.mjs.map +1 -0
  715. package/dist/redirect-D2Yo-b6S.mjs +415 -0
  716. package/dist/redirect-D2Yo-b6S.mjs.map +1 -0
  717. package/dist/redirects-BCiTaIQ-.mjs +146 -0
  718. package/dist/redirects-BCiTaIQ-.mjs.map +1 -0
  719. package/dist/redirects-ByItliuu.mjs +644 -0
  720. package/dist/redirects-ByItliuu.mjs.map +1 -0
  721. package/dist/registry/testing.d.mts +14 -0
  722. package/dist/registry/testing.d.mts.map +1 -0
  723. package/dist/registry/testing.mjs +255 -0
  724. package/dist/registry/testing.mjs.map +1 -0
  725. package/dist/registry-CkuPoZs7.mjs +1222 -0
  726. package/dist/registry-CkuPoZs7.mjs.map +1 -0
  727. package/dist/relation-XTAtOpJO.mjs +334 -0
  728. package/dist/relation-XTAtOpJO.mjs.map +1 -0
  729. package/dist/relations-B4w-G5U9.mjs +309 -0
  730. package/dist/relations-B4w-G5U9.mjs.map +1 -0
  731. package/dist/relations-O63JWBRj.mjs +403 -0
  732. package/dist/relations-O63JWBRj.mjs.map +1 -0
  733. package/dist/request-cache-DaMhSQdx.mjs +104 -0
  734. package/dist/request-cache-DaMhSQdx.mjs.map +1 -0
  735. package/dist/request-context.d.mts +1 -1
  736. package/dist/request-meta-C8yl_sIs.mjs +141 -0
  737. package/dist/request-meta-C8yl_sIs.mjs.map +1 -0
  738. package/dist/resolve-BJIS8wKr.mjs +199 -0
  739. package/dist/resolve-BJIS8wKr.mjs.map +1 -0
  740. package/dist/route-wire-D66L2oaZ.mjs +197 -0
  741. package/dist/route-wire-D66L2oaZ.mjs.map +1 -0
  742. package/dist/routes-DYsTe-oR.mjs +321 -0
  743. package/dist/routes-DYsTe-oR.mjs.map +1 -0
  744. package/dist/runner-3gfxRsJG.d.mts +68 -0
  745. package/dist/runner-3gfxRsJG.d.mts.map +1 -0
  746. package/dist/runner-ClrleR8A.mjs +5502 -0
  747. package/dist/runner-ClrleR8A.mjs.map +1 -0
  748. package/dist/runtime.d.mts +13 -11
  749. package/dist/runtime.d.mts.map +1 -1
  750. package/dist/runtime.mjs +6 -6
  751. package/dist/schema-CPhPM9Do.mjs +420 -0
  752. package/dist/schema-CPhPM9Do.mjs.map +1 -0
  753. package/dist/schema-DEERRrKS.mjs +9 -0
  754. package/dist/schema-DEERRrKS.mjs.map +1 -0
  755. package/dist/scopes-Bn8_rCSt.mjs +27 -0
  756. package/dist/scopes-Bn8_rCSt.mjs.map +1 -0
  757. package/dist/search-lami_Ota.mjs +448 -0
  758. package/dist/search-lami_Ota.mjs.map +1 -0
  759. package/dist/secrets-DNgVgz_e.mjs +341 -0
  760. package/dist/secrets-DNgVgz_e.mjs.map +1 -0
  761. package/dist/sections-BIpd4Cxf.mjs +346 -0
  762. package/dist/sections-BIpd4Cxf.mjs.map +1 -0
  763. package/dist/seed/index.d.mts +2 -2
  764. package/dist/seed/index.mjs +35 -33
  765. package/dist/seo/index.d.mts +3 -3
  766. package/dist/seo/index.mjs +26 -24
  767. package/dist/seo/index.mjs.map +1 -1
  768. package/dist/seo-BtU70b7l.mjs +114 -0
  769. package/dist/seo-BtU70b7l.mjs.map +1 -0
  770. package/dist/seo-_4qmazxz.mjs +133 -0
  771. package/dist/seo-_4qmazxz.mjs.map +1 -0
  772. package/dist/service-Bpy5iTX0.mjs +150 -0
  773. package/dist/service-Bpy5iTX0.mjs.map +1 -0
  774. package/dist/session-user-BQeS2Mrb.mjs +51 -0
  775. package/dist/session-user-BQeS2Mrb.mjs.map +1 -0
  776. package/dist/settings-DmroR53o.mjs +420 -0
  777. package/dist/settings-DmroR53o.mjs.map +1 -0
  778. package/dist/settings-g2F2a3Ub.mjs +51 -0
  779. package/dist/settings-g2F2a3Ub.mjs.map +1 -0
  780. package/dist/setup-complete-BrZaXpVV.mjs +26 -0
  781. package/dist/setup-complete-BrZaXpVV.mjs.map +1 -0
  782. package/dist/setup-nonce-Cb9-884O.mjs +25 -0
  783. package/dist/setup-nonce-Cb9-884O.mjs.map +1 -0
  784. package/dist/single-flight-cache-B5O2qhO1.mjs +104 -0
  785. package/dist/single-flight-cache-B5O2qhO1.mjs.map +1 -0
  786. package/dist/site-url-DjhYCaep.mjs +16 -0
  787. package/dist/site-url-DjhYCaep.mjs.map +1 -0
  788. package/dist/slugify-T5GHH42D.mjs +17 -0
  789. package/dist/slugify-T5GHH42D.mjs.map +1 -0
  790. package/dist/snapshot-C32Xuv3o.mjs +233 -0
  791. package/dist/snapshot-C32Xuv3o.mjs.map +1 -0
  792. package/dist/ssrf-Co1GGFZz.mjs +406 -0
  793. package/dist/ssrf-Co1GGFZz.mjs.map +1 -0
  794. package/dist/state-C7gCoiHr.mjs +153 -0
  795. package/dist/state-C7gCoiHr.mjs.map +1 -0
  796. package/dist/status-DLoBmcDz.mjs +30 -0
  797. package/dist/status-DLoBmcDz.mjs.map +1 -0
  798. package/dist/storage/local.d.mts +1 -1
  799. package/dist/storage/local.mjs +1 -1
  800. package/dist/storage/s3.d.mts +1 -1
  801. package/dist/storage/s3.mjs +1 -1
  802. package/dist/storage-query-CPctdMKX.d.mts +1519 -0
  803. package/dist/storage-query-CPctdMKX.d.mts.map +1 -0
  804. package/dist/target-CUKlGrXb.mjs +27 -0
  805. package/dist/target-CUKlGrXb.mjs.map +1 -0
  806. package/dist/taxonomies-BpqpXJUE.mjs +707 -0
  807. package/dist/taxonomies-BpqpXJUE.mjs.map +1 -0
  808. package/dist/taxonomies-ClCo4IGO.mjs +899 -0
  809. package/dist/taxonomies-ClCo4IGO.mjs.map +1 -0
  810. package/dist/taxonomy-Dj1vpw5E.mjs +508 -0
  811. package/dist/taxonomy-Dj1vpw5E.mjs.map +1 -0
  812. package/dist/tokens-Ns02GAma.mjs +171 -0
  813. package/dist/tokens-Ns02GAma.mjs.map +1 -0
  814. package/dist/transaction-BcJO4Tmc.mjs +29 -0
  815. package/dist/transaction-BcJO4Tmc.mjs.map +1 -0
  816. package/dist/transport-B8P1xsqk.mjs +136 -0
  817. package/dist/transport-B8P1xsqk.mjs.map +1 -0
  818. package/dist/transport-BLHZZcD_.d.mts +42 -0
  819. package/dist/transport-BLHZZcD_.d.mts.map +1 -0
  820. package/dist/trusted-proxy-Cg7SuD15.mjs +51 -0
  821. package/dist/trusted-proxy-Cg7SuD15.mjs.map +1 -0
  822. package/dist/turnstile-DWCSh_Qc.mjs +53 -0
  823. package/dist/turnstile-DWCSh_Qc.mjs.map +1 -0
  824. package/dist/types-B3RkqvDW.mjs +156 -0
  825. package/dist/types-B3RkqvDW.mjs.map +1 -0
  826. package/dist/types-BkUg2yHx.mjs +92 -0
  827. package/dist/types-BkUg2yHx.mjs.map +1 -0
  828. package/dist/types-BtuppOTV.mjs +16 -0
  829. package/dist/types-BtuppOTV.mjs.map +1 -0
  830. package/dist/types-CCR3ivXE.d.mts +363 -0
  831. package/dist/types-CCR3ivXE.d.mts.map +1 -0
  832. package/dist/types-CSHgU_-_.mjs +18 -0
  833. package/dist/types-CSHgU_-_.mjs.map +1 -0
  834. package/dist/types-CbwqGOXm.d.mts +766 -0
  835. package/dist/types-CbwqGOXm.d.mts.map +1 -0
  836. package/dist/types-D4RGIc2I.d.mts +198 -0
  837. package/dist/types-D4RGIc2I.d.mts.map +1 -0
  838. package/dist/types-DEHidMEk.d.mts +1637 -0
  839. package/dist/types-DEHidMEk.d.mts.map +1 -0
  840. package/dist/types-DQeU2SR7.d.mts +279 -0
  841. package/dist/types-DQeU2SR7.d.mts.map +1 -0
  842. package/dist/types-DxQWoQLA.d.mts +264 -0
  843. package/dist/types-DxQWoQLA.d.mts.map +1 -0
  844. package/dist/types-FBBnGZ2Y.d.mts +198 -0
  845. package/dist/types-FBBnGZ2Y.d.mts.map +1 -0
  846. package/dist/types-ZCnlropY.mjs +69 -0
  847. package/dist/types-ZCnlropY.mjs.map +1 -0
  848. package/dist/types-_Qtyawiy.d.mts +124 -0
  849. package/dist/types-_Qtyawiy.d.mts.map +1 -0
  850. package/dist/types-gC6FAoa_.d.mts +75 -0
  851. package/dist/types-gC6FAoa_.d.mts.map +1 -0
  852. package/dist/types-k--LneIF.mjs +22 -0
  853. package/dist/types-k--LneIF.mjs.map +1 -0
  854. package/dist/upload-attempts-2xdnoKGe.mjs +27 -0
  855. package/dist/upload-attempts-2xdnoKGe.mjs.map +1 -0
  856. package/dist/url-pattern-3m3reMzr.mjs +33 -0
  857. package/dist/url-pattern-3m3reMzr.mjs.map +1 -0
  858. package/dist/user-DroRntkx.mjs +171 -0
  859. package/dist/user-DroRntkx.mjs.map +1 -0
  860. package/dist/utils-CC2oNGV8.mjs +435 -0
  861. package/dist/utils-CC2oNGV8.mjs.map +1 -0
  862. package/dist/validate-BCP9HNDn.mjs +384 -0
  863. package/dist/validate-BCP9HNDn.mjs.map +1 -0
  864. package/dist/validate-CyQ7I3xF.d.mts +410 -0
  865. package/dist/validate-CyQ7I3xF.d.mts.map +1 -0
  866. package/dist/validate-DANX1-Qi.mjs +120 -0
  867. package/dist/validate-DANX1-Qi.mjs.map +1 -0
  868. package/dist/validation-DBy6WF94.mjs +216 -0
  869. package/dist/validation-DBy6WF94.mjs.map +1 -0
  870. package/dist/version-B57E4Uo7.mjs +7 -0
  871. package/dist/version-B57E4Uo7.mjs.map +1 -0
  872. package/dist/widgets-wQ7Xcgq8.mjs +126 -0
  873. package/dist/widgets-wQ7Xcgq8.mjs.map +1 -0
  874. package/dist/wxr-taxonomies-DIHfvEDt.mjs +406 -0
  875. package/dist/wxr-taxonomies-DIHfvEDt.mjs.map +1 -0
  876. package/dist/wxr-taxonomies-DU2ZSiGc.d.mts +34 -0
  877. package/dist/wxr-taxonomies-DU2ZSiGc.d.mts.map +1 -0
  878. package/dist/zod-generator-D_yHIWfs.mjs +329 -0
  879. package/dist/zod-generator-D_yHIWfs.mjs.map +1 -0
  880. package/package.json +36 -11
  881. package/src/api/errors.ts +16 -0
  882. package/src/api/handlers/backup.ts +11 -5
  883. package/src/api/handlers/content.ts +160 -6
  884. package/src/api/handlers/dashboard.ts +31 -1
  885. package/src/api/handlers/index.ts +3 -0
  886. package/src/api/handlers/manifest.ts +4 -6
  887. package/src/api/handlers/marketplace.ts +99 -15
  888. package/src/api/handlers/media-upload.ts +31 -4
  889. package/src/api/handlers/plugin-settings.ts +35 -3
  890. package/src/api/handlers/redirects.ts +221 -138
  891. package/src/api/handlers/registry.ts +62 -21
  892. package/src/api/handlers/revision.ts +14 -26
  893. package/src/api/handlers/snapshot.ts +4 -1
  894. package/src/api/handlers/taxonomies.ts +70 -5
  895. package/src/api/handlers/validation.ts +120 -19
  896. package/src/api/openapi/document.ts +34 -17
  897. package/src/api/schemas/content.ts +26 -14
  898. package/src/api/schemas/entry-lock.ts +9 -0
  899. package/src/api/schemas/search.ts +4 -0
  900. package/src/api/types.ts +2 -0
  901. package/src/astro/integration/index.ts +16 -3
  902. package/src/astro/integration/routes.ts +84 -0
  903. package/src/astro/integration/runtime.ts +31 -23
  904. package/src/astro/integration/virtual-modules.ts +4 -0
  905. package/src/astro/integration/vite-config.ts +1 -0
  906. package/src/astro/middleware/auth.ts +25 -4
  907. package/src/astro/middleware/request-context.ts +28 -10
  908. package/src/astro/middleware.ts +17 -1
  909. package/src/astro/prefetch.ts +2 -2
  910. package/src/astro/routes/api/admin/comments/[id]/status.ts +22 -58
  911. package/src/astro/routes/api/admin/plugins/[id]/disable.ts +2 -15
  912. package/src/astro/routes/api/admin/plugins/[id]/enable.ts +2 -25
  913. package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +1 -0
  914. package/src/astro/routes/api/admin/plugins/[id]/update.ts +23 -4
  915. package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +12 -2
  916. package/src/astro/routes/api/admin/plugins/registry/[id]/uninstall.ts +1 -0
  917. package/src/astro/routes/api/admin/plugins/registry/[id]/update.ts +29 -10
  918. package/src/astro/routes/api/admin/plugins/registry/artifact.ts +8 -2
  919. package/src/astro/routes/api/admin/plugins/registry/install.ts +15 -4
  920. package/src/astro/routes/api/admin/plugins/registry/verify.ts +2 -1
  921. package/src/astro/routes/api/admin/plugins/updates.ts +6 -1
  922. package/src/astro/routes/api/admin/scheduled-policy-rejections/[collection]/[id].ts +34 -0
  923. package/src/astro/routes/api/comments/[collection]/[contentId]/index.ts +4 -259
  924. package/src/astro/routes/api/content/[collection]/[id]/plugin-extensions/[pluginId]/[kind]/[extensionId].ts +29 -0
  925. package/src/astro/routes/api/content/[collection]/[id]/publish.ts +10 -3
  926. package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +10 -1
  927. package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +5 -1
  928. package/src/astro/routes/api/health.ts +23 -0
  929. package/src/astro/routes/api/manifest.ts +14 -4
  930. package/src/astro/routes/api/mcp.ts +2 -1
  931. package/src/astro/routes/api/media/asset/[id]/[filename].ts +50 -0
  932. package/src/astro/routes/api/plugins/[pluginId]/[...path].ts +13 -81
  933. package/src/astro/routes/api/redirects/[id].ts +0 -3
  934. package/src/astro/routes/api/redirects/index.ts +0 -2
  935. package/src/astro/routes/api/search/index.ts +1 -0
  936. package/src/astro/routes/api/visual-editing/action-token.ts +36 -0
  937. package/src/astro/routes/api/visual-editing/content/[collection]/[id]/publish.ts +32 -0
  938. package/src/astro/routes/api/visual-editing/toolbar-labels.ts +16 -0
  939. package/src/astro/routes/sitemap-[collection].xml.ts +7 -4
  940. package/src/astro/types.ts +70 -9
  941. package/src/cli/commands/bundle-utils.ts +19 -19
  942. package/src/cli/commands/bundle.ts +9 -6
  943. package/src/cli/commands/content.ts +1 -1
  944. package/src/cli/commands/doctor.ts +25 -0
  945. package/src/cli/commands/export-seed.ts +193 -56
  946. package/src/cli/commands/migrate.ts +71 -23
  947. package/src/cli/commands/publish.ts +2 -2
  948. package/src/comments/public-submission.ts +246 -0
  949. package/src/comments/service.ts +59 -12
  950. package/src/components/EmDashHead.astro +1 -0
  951. package/src/components/widgets/Archives.astro +6 -5
  952. package/src/config/secrets.ts +25 -11
  953. package/src/content/known-fields.ts +44 -0
  954. package/src/database/connection.ts +5 -1
  955. package/src/database/content-datetime.ts +123 -0
  956. package/src/database/datetime-storage.ts +452 -0
  957. package/src/database/dialect-helpers.ts +36 -1
  958. package/src/database/migration-lock.ts +140 -0
  959. package/src/database/migrations/078_menu_item_translation_groups.ts +15 -0
  960. package/src/database/migrations/079_datetime_normalization.ts +13 -0
  961. package/src/database/migrations/080_content_translation_locale_unique.ts +88 -0
  962. package/src/database/migrations/081_redirect_write_guards.ts +257 -0
  963. package/src/database/migrations/082_taxonomy_translation_locale_unique.ts +49 -0
  964. package/src/database/migrations/runner.ts +57 -15
  965. package/src/database/pg-migration-lock.ts +2 -2
  966. package/src/database/repositories/byline.ts +9 -0
  967. package/src/database/repositories/comment.ts +86 -0
  968. package/src/database/repositories/content.ts +391 -69
  969. package/src/database/repositories/media.ts +35 -4
  970. package/src/database/repositories/menu.ts +1 -0
  971. package/src/database/repositories/options.ts +46 -4
  972. package/src/database/repositories/redirect.ts +259 -64
  973. package/src/database/repositories/revision.ts +116 -17
  974. package/src/database/repositories/taxonomy.ts +34 -0
  975. package/src/database/repositories/types.ts +2 -0
  976. package/src/database/types.ts +11 -0
  977. package/src/datetime-normalization.ts +311 -0
  978. package/src/db/node-sqlite-compat.ts +3 -2
  979. package/src/emdash-runtime.ts +1925 -422
  980. package/src/fields/image.ts +2 -0
  981. package/src/i18n/config.ts +6 -6
  982. package/src/i18n/resolve.ts +54 -11
  983. package/src/index.ts +87 -0
  984. package/src/loader.ts +14 -0
  985. package/src/mcp/server.ts +194 -64
  986. package/src/media/usage/extractor.ts +50 -15
  987. package/src/media/usage/types.ts +1 -1
  988. package/src/menus/index.ts +49 -16
  989. package/src/migrations/direct-executor.ts +40 -2
  990. package/src/migrations/index.ts +1 -0
  991. package/src/migrations/protocol.ts +11 -1
  992. package/src/plugin-test-runtime.ts +17 -0
  993. package/src/plugin-types.ts +119 -21
  994. package/src/plugins/adapt-sandbox-entry.ts +34 -27
  995. package/src/plugins/content-access.ts +170 -0
  996. package/src/plugins/content-policy.ts +74 -0
  997. package/src/plugins/context.ts +742 -150
  998. package/src/plugins/cron.ts +18 -10
  999. package/src/plugins/define-plugin.ts +55 -54
  1000. package/src/plugins/editor-draft.ts +257 -0
  1001. package/src/plugins/hooks.ts +129 -2
  1002. package/src/plugins/host.ts +29 -0
  1003. package/src/plugins/http-route-dispatch.ts +389 -0
  1004. package/src/plugins/http-wire.ts +180 -0
  1005. package/src/plugins/index.ts +88 -3
  1006. package/src/plugins/install-finalization.ts +77 -0
  1007. package/src/plugins/lifecycle.ts +47 -0
  1008. package/src/plugins/manifest-schema.ts +314 -58
  1009. package/src/plugins/media.ts +166 -0
  1010. package/src/plugins/request-meta.ts +12 -2
  1011. package/src/plugins/route-wire.ts +304 -0
  1012. package/src/plugins/routes.ts +38 -5
  1013. package/src/plugins/sandbox/index.ts +4 -0
  1014. package/src/plugins/sandbox/proxy.ts +129 -0
  1015. package/src/plugins/sandbox/types.ts +67 -5
  1016. package/src/plugins/secret-redactor.ts +65 -0
  1017. package/src/plugins/settings.ts +303 -0
  1018. package/src/plugins/state.ts +26 -0
  1019. package/src/plugins/types.ts +488 -15
  1020. package/src/query.ts +55 -1
  1021. package/src/registry/authoritative-records.ts +26 -0
  1022. package/src/registry/config.ts +70 -22
  1023. package/src/registry/testing.ts +100 -0
  1024. package/src/registry/types.ts +7 -64
  1025. package/src/scheduled-publish.ts +70 -3
  1026. package/src/schema/index.ts +1 -0
  1027. package/src/schema/registry.ts +45 -1
  1028. package/src/schema/types.ts +7 -0
  1029. package/src/schema/zod-generator.ts +5 -13
  1030. package/src/search/fts-manager.ts +3 -3
  1031. package/src/search/query.ts +32 -5
  1032. package/src/search/types.ts +8 -0
  1033. package/src/seed/apply.ts +37 -3
  1034. package/src/seed/types.ts +6 -1
  1035. package/src/seo/hreflang.ts +9 -6
  1036. package/src/settings/index.ts +53 -11
  1037. package/src/visual-editing/action-token.ts +31 -0
  1038. package/src/visual-editing/toolbar-bootstrap.ts +31 -6
  1039. package/src/visual-editing/toolbar.ts +103 -12
  1040. package/src/widgets/archives.ts +10 -9
  1041. package/src/widgets/index.ts +11 -1
  1042. package/dist/activation-DyNTe_Tl.mjs +0 -382
  1043. package/dist/activation-DyNTe_Tl.mjs.map +0 -1
  1044. package/dist/adapters-DCEgOBXi.d.mts +0 -171
  1045. package/dist/adapters-DCEgOBXi.d.mts.map +0 -1
  1046. package/dist/after-CBU2vkoO.mjs +0 -96
  1047. package/dist/after-CBU2vkoO.mjs.map +0 -1
  1048. package/dist/allowed-origins-GFUVavRj.mjs +0 -116
  1049. package/dist/allowed-origins-GFUVavRj.mjs.map +0 -1
  1050. package/dist/api-BvxJmnFY.mjs +0 -10094
  1051. package/dist/api-BvxJmnFY.mjs.map +0 -1
  1052. package/dist/api-tokens-xpGqMHrC.mjs +0 -163
  1053. package/dist/api-tokens-xpGqMHrC.mjs.map +0 -1
  1054. package/dist/apply-DLmM3R7f.mjs +0 -984
  1055. package/dist/apply-DLmM3R7f.mjs.map +0 -1
  1056. package/dist/artifact-fetch-P2JXVwOq.mjs +0 -972
  1057. package/dist/artifact-fetch-P2JXVwOq.mjs.map +0 -1
  1058. package/dist/authorize-C2QHlWSS.mjs +0 -40
  1059. package/dist/authorize-C2QHlWSS.mjs.map +0 -1
  1060. package/dist/backup-oS8ft5Cm.mjs +0 -241
  1061. package/dist/backup-oS8ft5Cm.mjs.map +0 -1
  1062. package/dist/base64-CvLhUKQv.mjs +0 -63
  1063. package/dist/base64-CvLhUKQv.mjs.map +0 -1
  1064. package/dist/bundle-CL0JjIPx.mjs +0 -663
  1065. package/dist/bundle-CL0JjIPx.mjs.map +0 -1
  1066. package/dist/byline-Vdi85CsZ.mjs +0 -902
  1067. package/dist/byline-Vdi85CsZ.mjs.map +0 -1
  1068. package/dist/byline-fields-DPVRFMz2.mjs +0 -123
  1069. package/dist/byline-fields-DPVRFMz2.mjs.map +0 -1
  1070. package/dist/byline-registry-BxDGIO0I.mjs +0 -406
  1071. package/dist/byline-registry-BxDGIO0I.mjs.map +0 -1
  1072. package/dist/bylines-BX8QhcTk.mjs +0 -232
  1073. package/dist/bylines-BX8QhcTk.mjs.map +0 -1
  1074. package/dist/bylines-w-E1IEQd.mjs +0 -214
  1075. package/dist/bylines-w-E1IEQd.mjs.map +0 -1
  1076. package/dist/cache--7HKu5Xm.mjs +0 -108
  1077. package/dist/cache--7HKu5Xm.mjs.map +0 -1
  1078. package/dist/capture-triggers-CeAsC76Z.mjs +0 -362
  1079. package/dist/capture-triggers-CeAsC76Z.mjs.map +0 -1
  1080. package/dist/challenge-store-BIOak-tp.mjs +0 -51
  1081. package/dist/challenge-store-BIOak-tp.mjs.map +0 -1
  1082. package/dist/chrome-tags-DzDQBCjX.mjs +0 -24
  1083. package/dist/chrome-tags-DzDQBCjX.mjs.map +0 -1
  1084. package/dist/chunks-VG_tyqnP.mjs +0 -25
  1085. package/dist/chunks-VG_tyqnP.mjs.map +0 -1
  1086. package/dist/collection-deletion-BCwaWTDw.mjs +0 -436
  1087. package/dist/collection-deletion-BCwaWTDw.mjs.map +0 -1
  1088. package/dist/collection-slugs-cache-7lTmNzeA.mjs +0 -85
  1089. package/dist/collection-slugs-cache-7lTmNzeA.mjs.map +0 -1
  1090. package/dist/comment-reaction-CDyvPQRj.mjs +0 -85
  1091. package/dist/comment-reaction-CDyvPQRj.mjs.map +0 -1
  1092. package/dist/comment-vxOzWbZN.mjs +0 -255
  1093. package/dist/comment-vxOzWbZN.mjs.map +0 -1
  1094. package/dist/comments-VzmVLyaC.mjs +0 -204
  1095. package/dist/comments-VzmVLyaC.mjs.map +0 -1
  1096. package/dist/components-CL6Wkdk-.mjs +0 -108
  1097. package/dist/components-CL6Wkdk-.mjs.map +0 -1
  1098. package/dist/config--eWjQJE5.mjs +0 -217
  1099. package/dist/config--eWjQJE5.mjs.map +0 -1
  1100. package/dist/config-C3EBstHi.mjs +0 -72
  1101. package/dist/config-C3EBstHi.mjs.map +0 -1
  1102. package/dist/config-CGAhyOjP.d.mts +0 -6653
  1103. package/dist/config-CGAhyOjP.d.mts.map +0 -1
  1104. package/dist/config-ChFzshGd.d.mts +0 -34
  1105. package/dist/config-ChFzshGd.d.mts.map +0 -1
  1106. package/dist/content-CNfMWuhY.mjs +0 -1841
  1107. package/dist/content-CNfMWuhY.mjs.map +0 -1
  1108. package/dist/content-list-query-B8d4UQp9.d.mts +0 -26
  1109. package/dist/content-list-query-B8d4UQp9.d.mts.map +0 -1
  1110. package/dist/content-refresh-GTMyi2Xy.mjs +0 -3588
  1111. package/dist/content-refresh-GTMyi2Xy.mjs.map +0 -1
  1112. package/dist/content-repair-CIMt5C0U.mjs +0 -440
  1113. package/dist/content-repair-CIMt5C0U.mjs.map +0 -1
  1114. package/dist/context-C9PB8vGd.mjs +0 -1308
  1115. package/dist/context-C9PB8vGd.mjs.map +0 -1
  1116. package/dist/cron-DHAy9oyq.mjs +0 -277
  1117. package/dist/cron-DHAy9oyq.mjs.map +0 -1
  1118. package/dist/dashboard-BNSvAN8A.mjs +0 -140
  1119. package/dist/dashboard-BNSvAN8A.mjs.map +0 -1
  1120. package/dist/db-errors-Cl-sKYTm.mjs +0 -55
  1121. package/dist/db-errors-Cl-sKYTm.mjs.map +0 -1
  1122. package/dist/default-ByZ0JqZo.mjs +0 -81
  1123. package/dist/default-ByZ0JqZo.mjs.map +0 -1
  1124. package/dist/deferred-tasks-Cu4NSJpa.d.mts +0 -9
  1125. package/dist/deferred-tasks-Cu4NSJpa.d.mts.map +0 -1
  1126. package/dist/dev-typegen-DHT7lcMU.mjs +0 -29
  1127. package/dist/dev-typegen-DHT7lcMU.mjs.map +0 -1
  1128. package/dist/device-flow-Cf6bhCCT.mjs +0 -466
  1129. package/dist/device-flow-Cf6bhCCT.mjs.map +0 -1
  1130. package/dist/dialect-helpers-BcQvkHgn.mjs +0 -283
  1131. package/dist/dialect-helpers-BcQvkHgn.mjs.map +0 -1
  1132. package/dist/direct-executor-yAyUGSqB.mjs +0 -85
  1133. package/dist/direct-executor-yAyUGSqB.mjs.map +0 -1
  1134. package/dist/dist-BAsh8dbf.mjs +0 -810
  1135. package/dist/dist-BAsh8dbf.mjs.map +0 -1
  1136. package/dist/email-console-DNup1Fku.mjs +0 -50
  1137. package/dist/email-console-DNup1Fku.mjs.map +0 -1
  1138. package/dist/enrich-t2Xvjdqa.mjs +0 -194
  1139. package/dist/enrich-t2Xvjdqa.mjs.map +0 -1
  1140. package/dist/entry-lock-BEr8gDkG.mjs +0 -163
  1141. package/dist/entry-lock-BEr8gDkG.mjs.map +0 -1
  1142. package/dist/entry-lock-CGAtrwAR.d.mts +0 -3409
  1143. package/dist/entry-lock-CGAtrwAR.d.mts.map +0 -1
  1144. package/dist/entry-lock-DIYHAaSw.mjs +0 -1281
  1145. package/dist/entry-lock-DIYHAaSw.mjs.map +0 -1
  1146. package/dist/entry-locks-BEcX7ET0.mjs +0 -167
  1147. package/dist/entry-locks-BEcX7ET0.mjs.map +0 -1
  1148. package/dist/error-BDcFyoRt.mjs +0 -90
  1149. package/dist/error-BDcFyoRt.mjs.map +0 -1
  1150. package/dist/errors-DvMdNrgf.mjs +0 -434
  1151. package/dist/errors-DvMdNrgf.mjs.map +0 -1
  1152. package/dist/escape-B3asJC6W.mjs +0 -9
  1153. package/dist/escape-B3asJC6W.mjs.map +0 -1
  1154. package/dist/field-defs-cache-Cf5FHK0M.mjs +0 -77
  1155. package/dist/field-defs-cache-Cf5FHK0M.mjs.map +0 -1
  1156. package/dist/focal-point-BeWFo6Xx.mjs +0 -23
  1157. package/dist/focal-point-BeWFo6Xx.mjs.map +0 -1
  1158. package/dist/fts-manager-iddym8cd.mjs +0 -413
  1159. package/dist/fts-manager-iddym8cd.mjs.map +0 -1
  1160. package/dist/hash-BRweX6jz.mjs +0 -37
  1161. package/dist/hash-BRweX6jz.mjs.map +0 -1
  1162. package/dist/hook-result-BrshYHLx.d.mts +0 -31
  1163. package/dist/hook-result-BrshYHLx.d.mts.map +0 -1
  1164. package/dist/hreflang-CQpu5bMy.d.mts +0 -48
  1165. package/dist/hreflang-CQpu5bMy.d.mts.map +0 -1
  1166. package/dist/hreflang-DshnweTC.mjs +0 -103
  1167. package/dist/hreflang-DshnweTC.mjs.map +0 -1
  1168. package/dist/identity-CjGKDq8J.mjs +0 -35
  1169. package/dist/identity-CjGKDq8J.mjs.map +0 -1
  1170. package/dist/import-D96g2otw.mjs +0 -2020
  1171. package/dist/import-D96g2otw.mjs.map +0 -1
  1172. package/dist/index-1ECYpfiF.d.mts +0 -278
  1173. package/dist/index-1ECYpfiF.d.mts.map +0 -1
  1174. package/dist/init-lock-CFNBe_iH.mjs +0 -56
  1175. package/dist/init-lock-CFNBe_iH.mjs.map +0 -1
  1176. package/dist/load-DPtY9cZo.mjs +0 -28
  1177. package/dist/load-DPtY9cZo.mjs.map +0 -1
  1178. package/dist/loader-WJi6GFRn.mjs +0 -1004
  1179. package/dist/loader-WJi6GFRn.mjs.map +0 -1
  1180. package/dist/manifest-builder-BfNlGQIA.mjs +0 -189
  1181. package/dist/manifest-builder-BfNlGQIA.mjs.map +0 -1
  1182. package/dist/manifest-schema-CILooI5J.mjs +0 -301
  1183. package/dist/manifest-schema-CILooI5J.mjs.map +0 -1
  1184. package/dist/media-BBm8Wg3f.mjs +0 -318
  1185. package/dist/media-BBm8Wg3f.mjs.map +0 -1
  1186. package/dist/media-C1EIZKh1.mjs +0 -464
  1187. package/dist/media-C1EIZKh1.mjs.map +0 -1
  1188. package/dist/media-allowlist-elXJgb_K.mjs +0 -44
  1189. package/dist/media-allowlist-elXJgb_K.mjs.map +0 -1
  1190. package/dist/media-folders-DASfX_DH.mjs +0 -210
  1191. package/dist/media-folders-DASfX_DH.mjs.map +0 -1
  1192. package/dist/media-upload-C7_AQJ5v.mjs +0 -147
  1193. package/dist/media-upload-C7_AQJ5v.mjs.map +0 -1
  1194. package/dist/media-url-8dVl1loq.mjs +0 -43
  1195. package/dist/media-url-8dVl1loq.mjs.map +0 -1
  1196. package/dist/media-usage-C1EswMTq.mjs +0 -1833
  1197. package/dist/media-usage-C1EswMTq.mjs.map +0 -1
  1198. package/dist/media-usage-activation-CrHNltlL.mjs +0 -78
  1199. package/dist/media-usage-activation-CrHNltlL.mjs.map +0 -1
  1200. package/dist/media-usage-work-C5B1zT1c.mjs +0 -586
  1201. package/dist/media-usage-work-C5B1zT1c.mjs.map +0 -1
  1202. package/dist/media-usage-work-IkQx_Yz6.mjs +0 -152
  1203. package/dist/media-usage-work-IkQx_Yz6.mjs.map +0 -1
  1204. package/dist/media-usage-write-fence-B9anjOSg.mjs +0 -42
  1205. package/dist/media-usage-write-fence-B9anjOSg.mjs.map +0 -1
  1206. package/dist/menus-D8mC4eaN.mjs +0 -3989
  1207. package/dist/menus-D8mC4eaN.mjs.map +0 -1
  1208. package/dist/menus-UdwjHZJC.mjs +0 -752
  1209. package/dist/menus-UdwjHZJC.mjs.map +0 -1
  1210. package/dist/mime-DYpsOAny.mjs +0 -36
  1211. package/dist/mime-DYpsOAny.mjs.map +0 -1
  1212. package/dist/mode-Dm4BHhRH.mjs +0 -23
  1213. package/dist/mode-Dm4BHhRH.mjs.map +0 -1
  1214. package/dist/node-sqlite-compat-2sezm-Zd.mjs +0 -46
  1215. package/dist/node-sqlite-compat-2sezm-Zd.mjs.map +0 -1
  1216. package/dist/normalize-4nkKGsuW.mjs +0 -191
  1217. package/dist/normalize-4nkKGsuW.mjs.map +0 -1
  1218. package/dist/oauth-authorization-BxE_lURD.mjs +0 -274
  1219. package/dist/oauth-authorization-BxE_lURD.mjs.map +0 -1
  1220. package/dist/oauth-clients-DJIdOdq0.mjs +0 -266
  1221. package/dist/oauth-clients-DJIdOdq0.mjs.map +0 -1
  1222. package/dist/oauth-state-store-CsdxP57n.mjs +0 -50
  1223. package/dist/oauth-state-store-CsdxP57n.mjs.map +0 -1
  1224. package/dist/oauth-user-lookup-HzzW-dkF.mjs +0 -26
  1225. package/dist/oauth-user-lookup-HzzW-dkF.mjs.map +0 -1
  1226. package/dist/object-cache-DVKnyOfy.mjs +0 -534
  1227. package/dist/object-cache-DVKnyOfy.mjs.map +0 -1
  1228. package/dist/options-D1FBiAv1.mjs +0 -172
  1229. package/dist/options-D1FBiAv1.mjs.map +0 -1
  1230. package/dist/options-D8Y0VHc7.d.mts +0 -227
  1231. package/dist/options-D8Y0VHc7.d.mts.map +0 -1
  1232. package/dist/parse-WRg5C3NX.mjs +0 -81
  1233. package/dist/parse-WRg5C3NX.mjs.map +0 -1
  1234. package/dist/passkey-config-qIdO-wF6.mjs +0 -46
  1235. package/dist/passkey-config-qIdO-wF6.mjs.map +0 -1
  1236. package/dist/patterns-DC8CLptu.mjs +0 -145
  1237. package/dist/patterns-DC8CLptu.mjs.map +0 -1
  1238. package/dist/placeholder-COrvARyD.d.mts +0 -306
  1239. package/dist/placeholder-COrvARyD.d.mts.map +0 -1
  1240. package/dist/policy-XCfb-IE9.mjs +0 -45
  1241. package/dist/policy-XCfb-IE9.mjs.map +0 -1
  1242. package/dist/portable-text-BS3d5n-0.mjs +0 -286
  1243. package/dist/portable-text-BS3d5n-0.mjs.map +0 -1
  1244. package/dist/preview-BxwsGgGp.mjs +0 -107
  1245. package/dist/preview-BxwsGgGp.mjs.map +0 -1
  1246. package/dist/protocol-CLn58-nw.d.mts +0 -52
  1247. package/dist/protocol-CLn58-nw.d.mts.map +0 -1
  1248. package/dist/public-url-FWWAvnre.mjs +0 -101
  1249. package/dist/public-url-FWWAvnre.mjs.map +0 -1
  1250. package/dist/query-DygOte9M.mjs +0 -890
  1251. package/dist/query-DygOte9M.mjs.map +0 -1
  1252. package/dist/query-gtXT03Wc.mjs +0 -41
  1253. package/dist/query-gtXT03Wc.mjs.map +0 -1
  1254. package/dist/rate-limit-CQUPm0dh.mjs +0 -120
  1255. package/dist/rate-limit-CQUPm0dh.mjs.map +0 -1
  1256. package/dist/redirect-D1cWafi6.mjs +0 -17
  1257. package/dist/redirect-D1cWafi6.mjs.map +0 -1
  1258. package/dist/redirect-DId44BS1.mjs +0 -326
  1259. package/dist/redirect-DId44BS1.mjs.map +0 -1
  1260. package/dist/redirects-DN-ZE33W.mjs +0 -579
  1261. package/dist/redirects-DN-ZE33W.mjs.map +0 -1
  1262. package/dist/registry-DTqaqxed.mjs +0 -1195
  1263. package/dist/registry-DTqaqxed.mjs.map +0 -1
  1264. package/dist/relation-DxgCHOBw.mjs +0 -334
  1265. package/dist/relation-DxgCHOBw.mjs.map +0 -1
  1266. package/dist/relations-KKDSLUwS.mjs +0 -403
  1267. package/dist/relations-KKDSLUwS.mjs.map +0 -1
  1268. package/dist/relations-rOmbndUJ.mjs +0 -309
  1269. package/dist/relations-rOmbndUJ.mjs.map +0 -1
  1270. package/dist/request-cache-DAZZmesc.mjs +0 -104
  1271. package/dist/request-cache-DAZZmesc.mjs.map +0 -1
  1272. package/dist/request-meta-BgjUQLQ-.mjs +0 -140
  1273. package/dist/request-meta-BgjUQLQ-.mjs.map +0 -1
  1274. package/dist/resolve-Cy0aWSRj.mjs +0 -176
  1275. package/dist/resolve-Cy0aWSRj.mjs.map +0 -1
  1276. package/dist/runner-CfwysRM0.d.mts +0 -67
  1277. package/dist/runner-CfwysRM0.d.mts.map +0 -1
  1278. package/dist/runner-nEzvnogG.mjs +0 -4800
  1279. package/dist/runner-nEzvnogG.mjs.map +0 -1
  1280. package/dist/schema-CRu38Pr5.mjs +0 -9
  1281. package/dist/schema-CRu38Pr5.mjs.map +0 -1
  1282. package/dist/schema-DifxndJx.mjs +0 -420
  1283. package/dist/schema-DifxndJx.mjs.map +0 -1
  1284. package/dist/scopes-D5A1OZbq.mjs +0 -27
  1285. package/dist/scopes-D5A1OZbq.mjs.map +0 -1
  1286. package/dist/search-DEPFSBFq.mjs +0 -439
  1287. package/dist/search-DEPFSBFq.mjs.map +0 -1
  1288. package/dist/secrets-CdfzLdoO.mjs +0 -330
  1289. package/dist/secrets-CdfzLdoO.mjs.map +0 -1
  1290. package/dist/sections-3X52kmIR.mjs +0 -346
  1291. package/dist/sections-3X52kmIR.mjs.map +0 -1
  1292. package/dist/seo-Bw68KxRc.mjs +0 -133
  1293. package/dist/seo-Bw68KxRc.mjs.map +0 -1
  1294. package/dist/seo-C4AmbsMU.mjs +0 -114
  1295. package/dist/seo-C4AmbsMU.mjs.map +0 -1
  1296. package/dist/service-J_-Vgo7R.mjs +0 -195
  1297. package/dist/service-J_-Vgo7R.mjs.map +0 -1
  1298. package/dist/session-user-CbnMMwk6.mjs +0 -51
  1299. package/dist/session-user-CbnMMwk6.mjs.map +0 -1
  1300. package/dist/settings-AnEFYICn.mjs +0 -51
  1301. package/dist/settings-AnEFYICn.mjs.map +0 -1
  1302. package/dist/settings-DcMjREe5.mjs +0 -258
  1303. package/dist/settings-DcMjREe5.mjs.map +0 -1
  1304. package/dist/setup-complete-BClXXTvr.mjs +0 -26
  1305. package/dist/setup-complete-BClXXTvr.mjs.map +0 -1
  1306. package/dist/setup-nonce-BheRa4RG.mjs +0 -25
  1307. package/dist/setup-nonce-BheRa4RG.mjs.map +0 -1
  1308. package/dist/single-flight-cache-jaswDzmQ.mjs +0 -104
  1309. package/dist/single-flight-cache-jaswDzmQ.mjs.map +0 -1
  1310. package/dist/site-url-Bqf-ea3N.mjs +0 -16
  1311. package/dist/site-url-Bqf-ea3N.mjs.map +0 -1
  1312. package/dist/slugify-B994zkXC.mjs +0 -17
  1313. package/dist/slugify-B994zkXC.mjs.map +0 -1
  1314. package/dist/snapshot-C4CtXntb.mjs +0 -232
  1315. package/dist/snapshot-C4CtXntb.mjs.map +0 -1
  1316. package/dist/ssrf-gl4gFNhw.mjs +0 -406
  1317. package/dist/ssrf-gl4gFNhw.mjs.map +0 -1
  1318. package/dist/state-1F6IOhdQ.mjs +0 -136
  1319. package/dist/state-1F6IOhdQ.mjs.map +0 -1
  1320. package/dist/status-Cenfk_r5.mjs +0 -30
  1321. package/dist/status-Cenfk_r5.mjs.map +0 -1
  1322. package/dist/target-CRzeTs8G.mjs +0 -27
  1323. package/dist/target-CRzeTs8G.mjs.map +0 -1
  1324. package/dist/taxonomies-BOdxuZpV.mjs +0 -844
  1325. package/dist/taxonomies-BOdxuZpV.mjs.map +0 -1
  1326. package/dist/taxonomies-NcFDq5Gg.mjs +0 -707
  1327. package/dist/taxonomies-NcFDq5Gg.mjs.map +0 -1
  1328. package/dist/taxonomy-DP1vny4K.mjs +0 -492
  1329. package/dist/taxonomy-DP1vny4K.mjs.map +0 -1
  1330. package/dist/tokens-CDk8ox9p.mjs +0 -171
  1331. package/dist/tokens-CDk8ox9p.mjs.map +0 -1
  1332. package/dist/transaction-0KOpOyMu.mjs +0 -29
  1333. package/dist/transaction-0KOpOyMu.mjs.map +0 -1
  1334. package/dist/transport-BVn4tVb9.d.mts +0 -42
  1335. package/dist/transport-BVn4tVb9.d.mts.map +0 -1
  1336. package/dist/transport-DP0JI-8i.mjs +0 -136
  1337. package/dist/transport-DP0JI-8i.mjs.map +0 -1
  1338. package/dist/trusted-proxy-BTM6UxqD.mjs +0 -51
  1339. package/dist/trusted-proxy-BTM6UxqD.mjs.map +0 -1
  1340. package/dist/types-2n848aVW.d.mts +0 -198
  1341. package/dist/types-2n848aVW.d.mts.map +0 -1
  1342. package/dist/types-A2cN6a4a.mjs +0 -3
  1343. package/dist/types-BMXnRIrX.mjs +0 -144
  1344. package/dist/types-BMXnRIrX.mjs.map +0 -1
  1345. package/dist/types-BouXpOsa.d.mts +0 -1446
  1346. package/dist/types-BouXpOsa.d.mts.map +0 -1
  1347. package/dist/types-ByG2coLw.mjs +0 -16
  1348. package/dist/types-ByG2coLw.mjs.map +0 -1
  1349. package/dist/types-CQPWhPxE.mjs +0 -92
  1350. package/dist/types-CQPWhPxE.mjs.map +0 -1
  1351. package/dist/types-DEfNJ__A.d.mts +0 -75
  1352. package/dist/types-DEfNJ__A.d.mts.map +0 -1
  1353. package/dist/types-DKcKSbtB.d.mts +0 -273
  1354. package/dist/types-DKcKSbtB.d.mts.map +0 -1
  1355. package/dist/types-DRYs7uTL.d.mts +0 -198
  1356. package/dist/types-DRYs7uTL.d.mts.map +0 -1
  1357. package/dist/types-DaEg7KX2.d.mts +0 -363
  1358. package/dist/types-DaEg7KX2.d.mts.map +0 -1
  1359. package/dist/types-LU8utpP_.d.mts +0 -262
  1360. package/dist/types-LU8utpP_.d.mts.map +0 -1
  1361. package/dist/types-VpYfPUxN.d.mts +0 -124
  1362. package/dist/types-VpYfPUxN.d.mts.map +0 -1
  1363. package/dist/types-c9GP7Dj5.mjs +0 -18
  1364. package/dist/types-c9GP7Dj5.mjs.map +0 -1
  1365. package/dist/types-tJWDK__M.d.mts +0 -756
  1366. package/dist/types-tJWDK__M.d.mts.map +0 -1
  1367. package/dist/upload-attempts-C6S2y-lp.mjs +0 -27
  1368. package/dist/upload-attempts-C6S2y-lp.mjs.map +0 -1
  1369. package/dist/url-pattern-UYtxVTuj.mjs +0 -33
  1370. package/dist/url-pattern-UYtxVTuj.mjs.map +0 -1
  1371. package/dist/user-DIsIXogT.mjs +0 -171
  1372. package/dist/user-DIsIXogT.mjs.map +0 -1
  1373. package/dist/utils-BicP5Qbg.mjs +0 -435
  1374. package/dist/utils-BicP5Qbg.mjs.map +0 -1
  1375. package/dist/validate-BpwoDOgt.mjs +0 -120
  1376. package/dist/validate-BpwoDOgt.mjs.map +0 -1
  1377. package/dist/validate-D8VPn4Hv.mjs +0 -384
  1378. package/dist/validate-D8VPn4Hv.mjs.map +0 -1
  1379. package/dist/validate-Df6Dvwbw.d.mts +0 -405
  1380. package/dist/validate-Df6Dvwbw.d.mts.map +0 -1
  1381. package/dist/validation-CzMJn9Ku.mjs +0 -155
  1382. package/dist/validation-CzMJn9Ku.mjs.map +0 -1
  1383. package/dist/version-CK67_SXX.mjs +0 -7
  1384. package/dist/version-CK67_SXX.mjs.map +0 -1
  1385. package/dist/widgets-RFVAxQl3.mjs +0 -122
  1386. package/dist/widgets-RFVAxQl3.mjs.map +0 -1
  1387. package/dist/wxr-taxonomies-BX4yQL9s.d.mts +0 -34
  1388. package/dist/wxr-taxonomies-BX4yQL9s.d.mts.map +0 -1
  1389. package/dist/wxr-taxonomies-Csdp7yde.mjs +0 -406
  1390. package/dist/wxr-taxonomies-Csdp7yde.mjs.map +0 -1
  1391. package/dist/zod-generator-CNRGdnBY.mjs +0 -331
  1392. package/dist/zod-generator-CNRGdnBY.mjs.map +0 -1
  1393. /package/dist/{api-tokens-B_lfpmH3.mjs → api-tokens-DS1VzN7_.mjs} +0 -0
  1394. /package/dist/{ssrf-TQhaljuI.mjs → ssrf-BRpTDMV6.mjs} +0 -0
@@ -0,0 +1,707 @@
1
+ import { u as __exportAll } from "./runner-ClrleR8A.mjs";
2
+ import { n as isMissingTableError } from "./db-errors-CBD5yMro.mjs";
3
+ import { t as validateIdentifier } from "./validate-DANX1-Qi.mjs";
4
+ import { i as compoundSelectLimit, n as buildStatusCondition } from "./dialect-helpers-CtYdsX4W.mjs";
5
+ import { r as getI18nConfig } from "./config-CGVeT8Hc.mjs";
6
+ import { getRequestContext } from "./request-context.mjs";
7
+ import { m as isObjectCacheActive, n as cachedQuery, p as invalidateTaxonomyObjectCache, r as contentCacheNamespaces, t as CacheNamespace } from "./object-cache-DlSVbn5Y.mjs";
8
+ import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-BmWyou79.mjs";
9
+ import { n as resolveLocale, r as resolveLocaleChain } from "./resolve-BJIS8wKr.mjs";
10
+ import { i as setRequestCacheEntry, n as peekRequestCache, r as requestCached } from "./request-cache-DaMhSQdx.mjs";
11
+ import { r as taxonomyTag } from "./chrome-tags-D7LGB91U.mjs";
12
+ import { l as resetTaxonomyNamesCache, s as getDb } from "./loader-t4TxaFiQ.mjs";
13
+ import { n as noteStaleRegisteredCollections, t as filterToRegisteredCollections } from "./collection-slugs-cache-D9auiKmI.mjs";
14
+ import { sql } from "kysely";
15
+
16
+ //#region src/taxonomies/term-counts.ts
17
+ /**
18
+ * Per-collection count branch. `taxonomy_id` stores the term's
19
+ * translation_group, so results are keyed by group (locale-independent) and
20
+ * each assignment is counted once per content translation group. When a
21
+ * locale is provided, only that group's matching content row contributes.
22
+ *
23
+ * Scoping to the taxonomy uses `translation_group IN (...)` rather than a
24
+ * join on `taxonomies.id` — the anchor row (id == group) can be deleted while
25
+ * sibling translations survive, and a plain join on `translation_group` would
26
+ * multiply counts by the number of locales.
27
+ *
28
+ * CROSS JOIN with the join predicate in WHERE keeps stats-blind SQLite/D1 from
29
+ * reordering content_taxonomies out of the outer position; it touches ec_* only
30
+ * through the translation-group index. Postgres treats this as an ordinary
31
+ * inner join and plans freely.
32
+ */
33
+ function collectionBranch(db, taxonomyName, collection, locale) {
34
+ return sql`
35
+ SELECT ct.taxonomy_id AS taxonomy_id, COUNT(DISTINCT e.translation_group) AS count
36
+ FROM content_taxonomies AS ct
37
+ CROSS JOIN ${sql.ref(`ec_${collection}`)} AS e
38
+ WHERE e.translation_group = ct.entry_id
39
+ AND ct.collection = ${collection}
40
+ AND ct.taxonomy_id IN (SELECT translation_group FROM taxonomies WHERE name = ${taxonomyName})
41
+ ${locale ? sql`AND e.locale = ${locale}` : sql``}
42
+ AND ${buildStatusCondition(db, "published", "e")}
43
+ AND e.deleted_at IS NULL
44
+ GROUP BY ct.taxonomy_id`;
45
+ }
46
+ async function runCounts(db, taxonomyName, collections, locale) {
47
+ const branches = collections.map((collection) => collectionBranch(db, taxonomyName, collection, locale));
48
+ const result = await sql`
49
+ SELECT taxonomy_id, SUM(count) AS count
50
+ FROM (${sql.join(branches, sql` UNION ALL `)}) AS per_collection
51
+ GROUP BY taxonomy_id`.execute(db);
52
+ const counts = /* @__PURE__ */ new Map();
53
+ for (const row of result.rows) counts.set(row.taxonomy_id, Number(row.count));
54
+ return counts;
55
+ }
56
+ function addCounts(into, from) {
57
+ for (const [group, count] of from) into.set(group, (into.get(group) ?? 0) + count);
58
+ }
59
+ /**
60
+ * Counts for one batch of collections, degrading to a query per collection
61
+ * when a declared collection has no ec_* table so the rest still contribute.
62
+ */
63
+ async function runBatch(db, taxonomyName, collections, locale) {
64
+ try {
65
+ return await runCounts(db, taxonomyName, collections, locale);
66
+ } catch (error) {
67
+ if (!isMissingTableError(error)) throw error;
68
+ noteStaleRegisteredCollections();
69
+ }
70
+ const counts = /* @__PURE__ */ new Map();
71
+ for (const collection of collections) try {
72
+ addCounts(counts, await runCounts(db, taxonomyName, [collection], locale));
73
+ } catch (error) {
74
+ if (!isMissingTableError(error)) throw error;
75
+ }
76
+ return counts;
77
+ }
78
+ /**
79
+ * Count publicly-visible term assignments for one taxonomy, keyed by the
80
+ * term's translation_group (what `content_taxonomies.taxonomy_id` stores).
81
+ * When `locale` is provided, only entries in that locale contribute. Omitting
82
+ * it preserves the locale-agnostic API used by legacy callers.
83
+ *
84
+ * Counts are scoped to the taxonomy's declared collections — pass
85
+ * `TaxonomyDef.collections` (`_emdash_taxonomy_defs.collections`). Declared
86
+ * collections without a `_emdash_collections` row (the migration-seeded
87
+ * defaults declare `posts` unconditionally) are filtered out before any SQL
88
+ * is built, so no statement referencing a missing `ec_*` table is sent — a
89
+ * failed statement is logged by the database even when the caller recovers,
90
+ * flooding D1 observability with phantom errors. The missing-table guards in
91
+ * `runBatch` stay as the backstop for registry/table drift (e.g. a partially
92
+ * applied D1 create) and for a table dropped mid-flight, yielding a
93
+ * partial-but-correct count rather than a throw.
94
+ *
95
+ * One database round-trip for the whole taxonomy (UNION ALL across
96
+ * collections). On a backend that caps compound-SELECT terms — D1 allows five
97
+ * — the branches are split into one statement per batch, since a taxonomy
98
+ * declaring more collections than that would otherwise take down every path
99
+ * that shows counts. Per-collection sums are commutative, so batching cannot
100
+ * change the total.
101
+ *
102
+ * Callers on the public render path should go through the request-cached
103
+ * wrapper in `taxonomies/index.ts` so a page rendering both the widget and a
104
+ * term detail shares one computation.
105
+ */
106
+ async function fetchVisibleTermCounts(db, taxonomyName, collections, locale) {
107
+ const unique = [...new Set(collections)];
108
+ for (const collection of unique) validateIdentifier(collection, "collection slug");
109
+ if (unique.length === 0) return /* @__PURE__ */ new Map();
110
+ const present = await filterToRegisteredCollections(db, unique);
111
+ if (present.length === 0) return /* @__PURE__ */ new Map();
112
+ const limit = compoundSelectLimit(db);
113
+ const batched = limit === null ? [present] : chunks(present, limit);
114
+ const batches = await Promise.all(batched.map((batch) => runBatch(db, taxonomyName, batch, locale)));
115
+ const counts = /* @__PURE__ */ new Map();
116
+ for (const batch of batches) addCounts(counts, batch);
117
+ return counts;
118
+ }
119
+
120
+ //#endregion
121
+ //#region src/taxonomies/index.ts
122
+ /**
123
+ * Runtime API for taxonomies.
124
+ *
125
+ * All helpers are locale-aware. When a locale is not passed explicitly we fall
126
+ * back to the request context or the configured `defaultLocale` (see
127
+ * `i18n/resolve.ts`).
128
+ *
129
+ * Because `content_taxonomies.taxonomy_id` stores the translation_group (not a
130
+ * specific term id), and `entry_id` stores the content translation_group, one
131
+ * assignment resolves to the requested locale on both sides.
132
+ */
133
+ var taxonomies_exports = /* @__PURE__ */ __exportAll({
134
+ getAllTermsForEntries: () => getAllTermsForEntries,
135
+ getEntriesByTerm: () => getEntriesByTerm,
136
+ getEntryTerms: () => getEntryTerms,
137
+ getTaxonomyDef: () => getTaxonomyDef,
138
+ getTaxonomyDefs: () => getTaxonomyDefs,
139
+ getTaxonomyTerms: () => getTaxonomyTerms,
140
+ getTaxonomyTermsWithCacheHint: () => getTaxonomyTermsWithCacheHint,
141
+ getTerm: () => getTerm,
142
+ getTermsForEntries: () => getTermsForEntries,
143
+ invalidateTaxonomyDefsCache: () => invalidateTaxonomyDefsCache,
144
+ invalidateTermCache: () => invalidateTermCache,
145
+ primeFoldedEntryTerms: () => primeFoldedEntryTerms
146
+ });
147
+ async function selectEntryTermRows(db, collection, entryIds, taxonomyName, locale) {
148
+ validateIdentifier(collection, "collection slug");
149
+ const tableName = `ec_${collection}`;
150
+ const preferredLocale = locale ? sql`${locale}` : sql`content.locale`;
151
+ const defaultLocale = getI18nConfig()?.defaultLocale ?? "en";
152
+ return (await sql`
153
+ SELECT content.id AS entry_id,
154
+ coalesce(exact_term.id, default_term.id) AS id,
155
+ coalesce(exact_term.name, default_term.name) AS name,
156
+ coalesce(exact_term.slug, default_term.slug) AS slug,
157
+ coalesce(exact_term.label, default_term.label) AS label,
158
+ coalesce(exact_term.parent_id, default_term.parent_id) AS parent_id,
159
+ coalesce(exact_term.locale, default_term.locale) AS locale,
160
+ coalesce(exact_term.translation_group, default_term.translation_group) AS translation_group
161
+ FROM ${sql.ref(tableName)} AS content
162
+ INNER JOIN content_taxonomies AS pivot
163
+ ON pivot.entry_id = content.translation_group
164
+ AND pivot.collection = ${collection}
165
+ LEFT JOIN taxonomies AS exact_term
166
+ ON exact_term.translation_group = pivot.taxonomy_id
167
+ AND exact_term.locale = ${preferredLocale}
168
+ LEFT JOIN taxonomies AS default_term
169
+ ON default_term.translation_group = pivot.taxonomy_id
170
+ AND default_term.locale = ${defaultLocale}
171
+ WHERE content.id IN (${sql.join(entryIds.map((id) => sql`${id}`))})
172
+ AND coalesce(exact_term.id, default_term.id) IS NOT NULL
173
+ ${taxonomyName ? sql`AND coalesce(exact_term.name, default_term.name) = ${taxonomyName}` : sql``}
174
+ ORDER BY coalesce(exact_term.label, default_term.label) ASC
175
+ `.execute(db)).rows;
176
+ }
177
+ /** Invalidate cached taxonomy term data and any content that hydrates terms. */
178
+ function invalidateTermCache() {
179
+ invalidateTaxonomyObjectCache();
180
+ }
181
+ const TAXONOMY_DEFS_CACHE_KEY = Symbol.for("emdash:taxonomy-defs");
182
+ const taxonomyDefsStore = globalThis;
183
+ const defsHolder = taxonomyDefsStore[TAXONOMY_DEFS_CACHE_KEY] ?? (() => {
184
+ const h = {
185
+ version: 0,
186
+ cache: /* @__PURE__ */ new Map()
187
+ };
188
+ taxonomyDefsStore[TAXONOMY_DEFS_CACHE_KEY] = h;
189
+ return h;
190
+ })();
191
+ /**
192
+ * Invalidate the isolate-wide taxonomy-definitions cache (and the related
193
+ * loader taxonomy-names cache). Called from every taxonomy-def write path
194
+ * (`handleTaxonomyCreate`/`Update`/`Delete`, seed application). Other isolates
195
+ * refresh on their next recycle — staleness bounded by isolate lifetime.
196
+ */
197
+ function invalidateTaxonomyDefsCache() {
198
+ defsHolder.version++;
199
+ defsHolder.cache.clear();
200
+ resetTaxonomyNamesCache();
201
+ invalidateTaxonomyObjectCache();
202
+ }
203
+ /**
204
+ * Fetch taxonomy definitions straight from the database (no caching).
205
+ */
206
+ async function fetchTaxonomyDefs(locale) {
207
+ let query = (await getDb()).selectFrom("_emdash_taxonomy_defs").selectAll();
208
+ if (locale !== void 0) query = query.where("locale", "=", locale);
209
+ return (await query.execute()).map(rowToTaxonomyDef);
210
+ }
211
+ /**
212
+ * Resolve taxonomy defs through the isolate fallback cache, bypassing it for
213
+ * isolated databases. The returned promise is cached (not the resolved value)
214
+ * so concurrent cold-isolate readers share one in-flight query; a rejection
215
+ * evicts the entry so the next caller retries.
216
+ */
217
+ function loadTaxonomyDefs(localeKey, locale) {
218
+ if (getRequestContext()?.dbIsIsolated === true) return fetchTaxonomyDefs(locale);
219
+ const existing = defsHolder.cache.get(localeKey);
220
+ if (existing && existing.version === defsHolder.version) return existing.promise;
221
+ const version = defsHolder.version;
222
+ const promise = fetchTaxonomyDefs(locale).catch((error) => {
223
+ const current = defsHolder.cache.get(localeKey);
224
+ if (current && current.promise === promise) defsHolder.cache.delete(localeKey);
225
+ throw error;
226
+ });
227
+ defsHolder.cache.set(localeKey, {
228
+ version,
229
+ promise
230
+ });
231
+ return promise;
232
+ }
233
+ /**
234
+ * Get every taxonomy definition. Definitions are per-locale (one row per
235
+ * locale inside the same translation_group) — by default we resolve to the
236
+ * active locale.
237
+ *
238
+ * Two-tier cache: per-request via `requestCached` (so a single render that
239
+ * hydrates terms for several collections pays at most one call), then
240
+ * per-isolate via the global holder (so warm renders issue zero queries).
241
+ * The `requestCached` key is unchanged so `getTaxonomyDef`'s peek still hits.
242
+ */
243
+ async function getTaxonomyDefs(options = {}) {
244
+ const locale = resolveLocale(options.locale);
245
+ const localeKey = locale ?? "*";
246
+ return requestCached(`taxonomy-defs:${localeKey}`, async () => {
247
+ if (await isObjectCacheActive()) return cachedQuery({
248
+ namespace: CacheNamespace.TAXONOMIES,
249
+ key: `defs:${localeKey}`,
250
+ load: () => fetchTaxonomyDefs(locale)
251
+ });
252
+ return loadTaxonomyDefs(localeKey, locale);
253
+ });
254
+ }
255
+ /**
256
+ * Get a single taxonomy definition by name. Uses the fallback chain so even
257
+ * if there is no translation for the active locale we still return something.
258
+ *
259
+ * If `getTaxonomyDefs()` has already loaded the full list in this request
260
+ * (which happens during entry-term hydration on every page that renders a
261
+ * collection), search the matching def in memory rather than running a
262
+ * second query against `_emdash_taxonomy_defs`.
263
+ */
264
+ async function getTaxonomyDef(name, options = {}) {
265
+ const chain = resolveLocaleChain(options.locale);
266
+ const allDefs = peekRequestCache(`taxonomy-defs:${resolveLocale(options.locale) ?? "*"}`);
267
+ if (allDefs) {
268
+ const defs = await allDefs;
269
+ if (chain.length === 0) return defs.find((d) => d.name === name) ?? null;
270
+ for (const locale of chain) {
271
+ const found = defs.find((d) => d.name === name && d.locale === locale);
272
+ if (found) return found;
273
+ }
274
+ return null;
275
+ }
276
+ return requestCached(`taxonomy-def:${name}:${chain.join(",")}`, async () => {
277
+ const db = await getDb();
278
+ if (chain.length === 0) {
279
+ const row = await db.selectFrom("_emdash_taxonomy_defs").selectAll().where("name", "=", name).orderBy("locale", "asc").executeTakeFirst();
280
+ return row ? rowToTaxonomyDef(row) : null;
281
+ }
282
+ for (const locale of chain) {
283
+ const row = await db.selectFrom("_emdash_taxonomy_defs").selectAll().where("name", "=", name).where("locale", "=", locale).executeTakeFirst();
284
+ if (row) return rowToTaxonomyDef(row);
285
+ }
286
+ return null;
287
+ });
288
+ }
289
+ /**
290
+ * Object-cache namespaces for values that embed visible term counts: the
291
+ * taxonomy epoch (term/assignment writes) plus each counted collection's
292
+ * content epoch, so publishing, unpublishing, or trashing an entry
293
+ * invalidates the cached count promptly. Both content namespace generations
294
+ * participate so rolling deployments preserve invalidation in either direction.
295
+ */
296
+ function termCountNamespaces(collections) {
297
+ return [...[...new Set(collections)].flatMap((collection) => contentCacheNamespaces(collection)), CacheNamespace.TAXONOMIES];
298
+ }
299
+ /**
300
+ * All terms of a taxonomy in a specific locale (flat for non-hierarchical,
301
+ * tree for hierarchical).
302
+ *
303
+ * The term list and the visible-entry counts are loaded and cached separately:
304
+ * the list depends only on the taxonomy epoch, while the counts additionally
305
+ * depend on every counted collection's content epoch and cost an aggregate over
306
+ * the whole assignment pivot. Callers that don't render counts pass
307
+ * `includeCounts: false` and skip that aggregate entirely, while still sharing
308
+ * the term list with callers that do.
309
+ */
310
+ async function getTaxonomyTerms(taxonomyName, options = {}) {
311
+ const locale = resolveLocale(options.locale);
312
+ const def = await getTaxonomyDef(taxonomyName, options);
313
+ if (!def) return [];
314
+ if (options.includeCounts === false) return getTermList(def, locale);
315
+ const [terms, counts] = await Promise.all([getTermList(def, locale), getVisibleTermCounts(def.name, def.collections, locale)]);
316
+ return withCounts(terms, counts);
317
+ }
318
+ /**
319
+ * Get all terms of a taxonomy with a Workers edge-cache hint.
320
+ *
321
+ * Use the returned `cacheHint` with `Astro.cache.set()` so pages that render
322
+ * a taxonomy facet can be purged automatically when taxonomy terms change.
323
+ */
324
+ async function getTaxonomyTermsWithCacheHint(taxonomyName, options = {}) {
325
+ return {
326
+ data: await getTaxonomyTerms(taxonomyName, options),
327
+ cacheHint: { tags: [taxonomyTag(taxonomyName)] }
328
+ };
329
+ }
330
+ /** Terms without counts, under the cache keys the layout prefetch warms. */
331
+ function getTermList(def, locale) {
332
+ const localeKey = locale ?? "*";
333
+ return requestCached(`taxonomy-terms:${def.name}:${localeKey}`, () => cachedQuery({
334
+ namespace: CacheNamespace.TAXONOMIES,
335
+ key: `termList:${def.name}:${localeKey}`,
336
+ load: () => loadTaxonomyTerms(def, locale)
337
+ }));
338
+ }
339
+ /**
340
+ * Copy a term list with counts attached. Counts are keyed by translation_group
341
+ * (what the pivot stores) and are locale-independent. Rebuilds every node so
342
+ * the shared, cached count-free list is never mutated.
343
+ */
344
+ function withCounts(terms, counts) {
345
+ return terms.map((term) => ({
346
+ ...term,
347
+ count: counts.get(term.translationGroup ?? term.id) ?? 0,
348
+ children: withCounts(term.children, counts)
349
+ }));
350
+ }
351
+ async function loadTaxonomyTerms(def, locale) {
352
+ let termsQuery = (await getDb()).selectFrom("taxonomies").selectAll().where("name", "=", def.name).orderBy("sort_order", "asc").orderBy("label", "asc");
353
+ if (locale !== void 0) termsQuery = termsQuery.where("locale", "=", locale);
354
+ const flatTerms = (await termsQuery.execute()).map((row) => ({
355
+ id: row.id,
356
+ name: row.name,
357
+ slug: row.slug,
358
+ label: row.label,
359
+ parent_id: row.parent_id,
360
+ data: row.data,
361
+ locale: row.locale,
362
+ translation_group: row.translation_group
363
+ }));
364
+ if (def.hierarchical) return buildTree(flatTerms);
365
+ return flatTerms.map((term) => ({
366
+ id: term.id,
367
+ name: term.name,
368
+ slug: term.slug,
369
+ label: term.label,
370
+ description: term.data ? JSON.parse(term.data).description : void 0,
371
+ children: [],
372
+ locale: term.locale,
373
+ translationGroup: term.translation_group
374
+ }));
375
+ }
376
+ /**
377
+ * Per-translation-group visible-usage counts for one taxonomy, in a single
378
+ * round-trip (see `fetchVisibleTermCounts`). The pivot identity is the
379
+ * translation group, while entry rows are scoped to the resolved locale.
380
+ * Request and object cache keys include that locale so translated views never
381
+ * reuse each other's visible counts.
382
+ */
383
+ function getVisibleTermCounts(taxonomyName, collections, locale) {
384
+ const scope = [...new Set(collections)].toSorted().join(",");
385
+ const localeScope = locale ?? "*";
386
+ return requestCached(`taxonomy-term-counts:${taxonomyName}:${scope}:${localeScope}`, async () => {
387
+ const entries = await cachedQuery({
388
+ namespace: termCountNamespaces(collections),
389
+ key: `termCounts:${taxonomyName}:${scope}:${localeScope}`,
390
+ load: async () => {
391
+ return [...await fetchVisibleTermCounts(await getDb(), taxonomyName, collections, locale)];
392
+ }
393
+ });
394
+ return new Map(entries);
395
+ });
396
+ }
397
+ /**
398
+ * Get a single term by (taxonomy, slug). Honours the fallback chain — if the
399
+ * slug exists in a fallback locale, we return that row (useful for deep-linking
400
+ * to a term page when the translation is missing).
401
+ *
402
+ * The term row and its visible-entry count are loaded and cached separately: the
403
+ * row depends only on the taxonomy epoch, while the count adds an aggregate over
404
+ * the whole assignment pivot and every counted collection's content epoch. A
405
+ * caller that renders no count passes `includeCounts: false` and skips it.
406
+ */
407
+ async function getTerm(taxonomyName, slug, options = {}) {
408
+ const chain = resolveLocaleChain(options.locale);
409
+ const term = await getTermRow(taxonomyName, slug, chain);
410
+ if (!term) return null;
411
+ if (options.includeCounts === false) return term;
412
+ const counts = await getVisibleTermCounts(taxonomyName, (await getTaxonomyDef(taxonomyName, options))?.collections ?? [], chain[0] ?? term.locale);
413
+ return {
414
+ ...term,
415
+ count: counts.get(term.translationGroup ?? term.id) ?? 0
416
+ };
417
+ }
418
+ /** A single term with its children, without counts, under the taxonomy epoch. */
419
+ function getTermRow(taxonomyName, slug, chain) {
420
+ return cachedQuery({
421
+ namespace: CacheNamespace.TAXONOMIES,
422
+ key: `term:${taxonomyName}:${slug}:${chain.join(",")}`,
423
+ load: () => loadTerm(taxonomyName, slug, chain)
424
+ });
425
+ }
426
+ async function loadTerm(taxonomyName, slug, chain) {
427
+ const db = await getDb();
428
+ let row;
429
+ const selectTerm = () => db.selectFrom("taxonomies").selectAll().where("name", "=", taxonomyName).where("slug", "=", slug);
430
+ if (chain.length === 0) row = await selectTerm().orderBy("locale", "asc").executeTakeFirst();
431
+ else {
432
+ row = void 0;
433
+ for (const locale of chain) {
434
+ row = await selectTerm().where("locale", "=", locale).executeTakeFirst();
435
+ if (row) break;
436
+ }
437
+ }
438
+ if (!row) return null;
439
+ let childrenQuery = db.selectFrom("taxonomies").selectAll().where("parent_id", "=", row.translation_group ?? row.id).orderBy("sort_order", "asc").orderBy("label", "asc");
440
+ const termLocale = row.locale;
441
+ if (termLocale) childrenQuery = childrenQuery.where("locale", "=", termLocale);
442
+ const children = (await childrenQuery.execute()).map((child) => ({
443
+ id: child.id,
444
+ name: child.name,
445
+ slug: child.slug,
446
+ label: child.label,
447
+ parentId: child.parent_id ?? void 0,
448
+ children: [],
449
+ locale: child.locale,
450
+ translationGroup: child.translation_group
451
+ }));
452
+ return {
453
+ id: row.id,
454
+ name: row.name,
455
+ slug: row.slug,
456
+ label: row.label,
457
+ parentId: row.parent_id ?? void 0,
458
+ description: row.data ? JSON.parse(row.data).description : void 0,
459
+ children,
460
+ locale: row.locale,
461
+ translationGroup: row.translation_group
462
+ };
463
+ }
464
+ /**
465
+ * Terms assigned to a content entry, resolved into the active locale and then
466
+ * the configured default locale.
467
+ */
468
+ function getEntryTerms(collection, entryId, taxonomyName, options = {}) {
469
+ const locale = resolveLocale(options.locale);
470
+ return requestCached(`terms:${collection}:${entryId}:${taxonomyName ?? "*"}:${locale ?? "*"}`, () => cachedQuery({
471
+ namespace: [...contentCacheNamespaces(collection), CacheNamespace.TAXONOMIES],
472
+ key: `entryTerms:${collection}:${entryId}:${taxonomyName ?? "*"}:${locale ?? "*"}`,
473
+ load: async () => {
474
+ return (await selectEntryTermRows(await getDb(), collection, [entryId], taxonomyName, locale)).map((row) => ({
475
+ id: row.id,
476
+ name: row.name,
477
+ slug: row.slug,
478
+ label: row.label,
479
+ parentId: row.parent_id ?? void 0,
480
+ children: [],
481
+ locale: row.locale,
482
+ translationGroup: row.translation_group
483
+ }));
484
+ }
485
+ }));
486
+ }
487
+ /**
488
+ * Terms for multiple entries of one taxonomy, single query.
489
+ */
490
+ async function getTermsForEntries(collection, entryIds, taxonomyName, options = {}) {
491
+ const uniqueIds = [...new Set(entryIds)];
492
+ if (uniqueIds.length === 0) return /* @__PURE__ */ new Map();
493
+ const locale = resolveLocale(options.locale);
494
+ const localeKey = locale ?? "*";
495
+ const load = async () => {
496
+ const result = /* @__PURE__ */ new Map();
497
+ for (const id of uniqueIds) result.set(id, []);
498
+ const missedIds = [];
499
+ const cacheReads = [];
500
+ for (const id of uniqueIds) {
501
+ const cached = peekRequestCache(`terms:${collection}:${id}:${taxonomyName}:${localeKey}`);
502
+ if (cached) cacheReads.push(cached.then((terms) => ({
503
+ id,
504
+ terms
505
+ }), () => ({
506
+ id,
507
+ miss: true
508
+ })));
509
+ else missedIds.push(id);
510
+ }
511
+ for (const read of await Promise.all(cacheReads)) {
512
+ if ("miss" in read) {
513
+ missedIds.push(read.id);
514
+ continue;
515
+ }
516
+ result.set(read.id, read.terms.map((t) => ({
517
+ ...t,
518
+ children: [...t.children]
519
+ })));
520
+ }
521
+ if (missedIds.length === 0) return [...result.entries()];
522
+ const db = await getDb();
523
+ for (const chunk of chunks(missedIds, SQL_BATCH_SIZE)) {
524
+ let rows;
525
+ try {
526
+ rows = await selectEntryTermRows(db, collection, chunk, taxonomyName, locale);
527
+ } catch (error) {
528
+ if (isMissingTableError(error)) return [...result.entries()];
529
+ throw error;
530
+ }
531
+ for (const row of rows) {
532
+ const term = {
533
+ id: row.id,
534
+ name: row.name,
535
+ slug: row.slug,
536
+ label: row.label,
537
+ parentId: row.parent_id ?? void 0,
538
+ children: [],
539
+ locale: row.locale,
540
+ translationGroup: row.translation_group
541
+ };
542
+ const terms = result.get(row.entry_id);
543
+ if (terms) terms.push(term);
544
+ }
545
+ }
546
+ return [...result.entries()];
547
+ };
548
+ const idKey = uniqueIds.toSorted().join(",");
549
+ const pairs = idKey.length <= 256 ? await cachedQuery({
550
+ namespace: [...contentCacheNamespaces(collection), CacheNamespace.TAXONOMIES],
551
+ key: `termsForEntries:${collection}:${taxonomyName}:${locale ?? "*"}:${idKey}`,
552
+ load
553
+ }) : await load();
554
+ return new Map(pairs);
555
+ }
556
+ /**
557
+ * Batch-fetch terms for multiple entries across ALL taxonomies in one query.
558
+ * Primes the request-cache for subsequent per-entry calls to `getEntryTerms`.
559
+ */
560
+ async function getAllTermsForEntries(collection, entryIds, options = {}) {
561
+ const result = /* @__PURE__ */ new Map();
562
+ const uniqueIds = [...new Set(entryIds)];
563
+ for (const id of uniqueIds) result.set(id, {});
564
+ if (uniqueIds.length === 0) return result;
565
+ const db = await getDb();
566
+ const locale = resolveLocale(options.locale);
567
+ const applicableTaxonomyNames = await getCollectionTaxonomyNames(collection, { locale });
568
+ for (const chunk of chunks(uniqueIds, SQL_BATCH_SIZE)) {
569
+ let rows;
570
+ try {
571
+ rows = await selectEntryTermRows(db, collection, chunk, void 0, locale);
572
+ } catch (error) {
573
+ if (isMissingTableError(error)) {
574
+ for (const id of uniqueIds) primeEntryTermsCache(collection, id, {}, applicableTaxonomyNames, locale);
575
+ return result;
576
+ }
577
+ throw error;
578
+ }
579
+ for (const row of rows) {
580
+ const term = {
581
+ id: row.id,
582
+ name: row.name,
583
+ slug: row.slug,
584
+ label: row.label,
585
+ parentId: row.parent_id ?? void 0,
586
+ children: [],
587
+ locale: row.locale,
588
+ translationGroup: row.translation_group
589
+ };
590
+ const byTaxonomy = result.get(row.entry_id);
591
+ if (!byTaxonomy) continue;
592
+ const existing = byTaxonomy[row.name];
593
+ if (existing) existing.push(term);
594
+ else byTaxonomy[row.name] = [term];
595
+ }
596
+ }
597
+ for (const [entryId, byTaxonomy] of result) primeEntryTermsCache(collection, entryId, byTaxonomy, applicableTaxonomyNames, locale);
598
+ return result;
599
+ }
600
+ /**
601
+ * Return the list of taxonomy names applicable to a collection, request-
602
+ * cached so a page render only pays for it once.
603
+ *
604
+ * Returns an empty list when taxonomies haven't been defined yet.
605
+ */
606
+ async function getCollectionTaxonomyNames(collection, options) {
607
+ try {
608
+ return (await getTaxonomyDefs(options)).filter((d) => d.collections.includes(collection)).map((d) => d.name);
609
+ } catch (error) {
610
+ if (isMissingTableError(error)) return [];
611
+ throw error;
612
+ }
613
+ }
614
+ /**
615
+ * Pre-populate the request-cache for every getEntryTerms call-shape that
616
+ * could hit this entry:
617
+ *
618
+ * getEntryTerms(collection, entryId) -> key `terms:C:E:*`
619
+ * getEntryTerms(collection, entryId, "tag") -> key `terms:C:E:tag`
620
+ * getEntryTerms(collection, entryId, "category") -> key `terms:C:E:category`
621
+ * ...one per taxonomy that applies to this collection
622
+ *
623
+ * Taxonomies with no rows on this entry are seeded with `[]` so legacy
624
+ * callers short-circuit to the cached empty array instead of re-querying.
625
+ */
626
+ function primeEntryTermsCache(collection, entryId, byTaxonomy, applicableTaxonomyNames, locale) {
627
+ const localeKey = locale ?? "*";
628
+ for (const name of applicableTaxonomyNames) setRequestCacheEntry(`terms:${collection}:${entryId}:${name}:${localeKey}`, byTaxonomy[name] ?? []);
629
+ for (const [name, terms] of Object.entries(byTaxonomy)) setRequestCacheEntry(`terms:${collection}:${entryId}:${name}:${localeKey}`, terms);
630
+ const allTerms = Object.values(byTaxonomy).flat();
631
+ setRequestCacheEntry(`terms:${collection}:${entryId}:*:${localeKey}`, allTerms);
632
+ }
633
+ /**
634
+ * Prime the per-entry request cache from terms that were folded into the
635
+ * content query (query.ts `hydrateEntryTerms` fast path), so subsequent
636
+ * `getEntryTerms` calls in the same render hit the cache instead of issuing an
637
+ * N+1 query. Seeds the wildcard key and one key per taxonomy present on the
638
+ * entry — purely from the folded data, with no DB lookup.
639
+ *
640
+ * Unlike `getAllTermsForEntries`, this deliberately does NOT seed `[]` for
641
+ * taxonomies that apply to the collection but have no rows on the entry: doing
642
+ * so would require a `getTaxonomyDefs` query, adding a round trip to every fold
643
+ * render to serve the rarer `getEntryTerms(id, absentTaxonomy)` case from cache.
644
+ * That call simply falls through to its own cached query. Keeping the key shape
645
+ * here (rather than in query.ts) prevents the two from drifting.
646
+ */
647
+ function primeFoldedEntryTerms(collection, perEntry, options = {}) {
648
+ if (perEntry.length === 0) return;
649
+ const locale = resolveLocale(options.locale);
650
+ for (const { entryId, byTaxonomy } of perEntry) primeEntryTermsCache(collection, entryId, byTaxonomy, [], locale);
651
+ }
652
+ /**
653
+ * Get entries by term. Both the lookup (term slug in the active locale) and
654
+ * the content query respect the active locale.
655
+ */
656
+ async function getEntriesByTerm(collection, taxonomyName, termSlug, options = {}) {
657
+ const { getEmDashCollection } = await import("./query-D-lxiOgn.mjs").then((n) => n.o);
658
+ const queryOptions = { where: { [taxonomyName]: termSlug } };
659
+ if (options.locale !== void 0) queryOptions.locale = options.locale;
660
+ const { entries } = await getEmDashCollection(collection, queryOptions);
661
+ return entries;
662
+ }
663
+ function rowToTaxonomyDef(row) {
664
+ return {
665
+ id: row.id,
666
+ name: row.name,
667
+ label: row.label,
668
+ labelSingular: row.label_singular ?? void 0,
669
+ hierarchical: row.hierarchical === 1,
670
+ collections: row.collections ? JSON.parse(row.collections) : [],
671
+ locale: row.locale,
672
+ translationGroup: row.translation_group
673
+ };
674
+ }
675
+ /**
676
+ * Build tree structure from flat terms
677
+ */
678
+ function buildTree(flatTerms) {
679
+ const byLocaleGroup = /* @__PURE__ */ new Map();
680
+ const nodes = [];
681
+ const roots = [];
682
+ for (const term of flatTerms) {
683
+ const node = {
684
+ id: term.id,
685
+ name: term.name,
686
+ slug: term.slug,
687
+ label: term.label,
688
+ parentId: term.parent_id ?? void 0,
689
+ description: term.data ? JSON.parse(term.data).description : void 0,
690
+ children: [],
691
+ locale: term.locale,
692
+ translationGroup: term.translation_group
693
+ };
694
+ byLocaleGroup.set(`${term.locale}::${term.translation_group ?? term.id}`, node);
695
+ nodes.push(node);
696
+ }
697
+ for (const node of nodes) {
698
+ const parent = node.parentId ? byLocaleGroup.get(`${node.locale}::${node.parentId}`) : void 0;
699
+ if (parent) parent.children.push(node);
700
+ else roots.push(node);
701
+ }
702
+ return roots;
703
+ }
704
+
705
+ //#endregion
706
+ export { getTaxonomyDefs as a, getTerm as c, invalidateTermCache as d, taxonomies_exports as f, getTaxonomyDef as i, getTermsForEntries as l, getEntriesByTerm as n, getTaxonomyTerms as o, fetchVisibleTermCounts as p, getEntryTerms as r, getTaxonomyTermsWithCacheHint as s, getAllTermsForEntries as t, invalidateTaxonomyDefsCache as u };
707
+ //# sourceMappingURL=taxonomies-BpqpXJUE.mjs.map