emdash 0.37.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 (1445) 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 -29
  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 +123 -13
  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 -9
  35. package/dist/astro/middleware/redirect.mjs.map +1 -1
  36. package/dist/astro/middleware/request-context.d.mts +1 -1
  37. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  38. package/dist/astro/middleware/request-context.mjs +154 -28
  39. package/dist/astro/middleware/request-context.mjs.map +1 -1
  40. package/dist/astro/middleware/setup.mjs +1 -1
  41. package/dist/astro/middleware.d.mts +13 -10
  42. package/dist/astro/middleware.d.mts.map +1 -1
  43. package/dist/astro/middleware.mjs +122 -3041
  44. package/dist/astro/middleware.mjs.map +1 -1
  45. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +10 -9
  46. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
  47. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +10 -9
  48. package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
  49. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +5 -5
  50. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
  51. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -6
  52. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +13 -12
  53. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
  54. package/dist/astro/routes/api/admin/byline-fields/index.mjs +13 -12
  55. package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
  56. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +13 -12
  57. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
  58. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +22 -21
  59. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  60. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +22 -21
  61. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  62. package/dist/astro/routes/api/admin/bylines/index.mjs +22 -21
  63. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  64. package/dist/astro/routes/api/admin/comments/_id_/status.d.mts.map +1 -1
  65. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +21 -54
  66. package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
  67. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
  68. package/dist/astro/routes/api/admin/comments/bulk.mjs +15 -14
  69. package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
  70. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
  71. package/dist/astro/routes/api/admin/comments/index.mjs +15 -14
  72. package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
  73. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  74. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  75. package/dist/astro/routes/api/admin/media-usage/activation.mjs +17 -16
  76. package/dist/astro/routes/api/admin/media-usage/activation.mjs.map +1 -1
  77. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +19 -18
  78. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -1
  79. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +19 -18
  80. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -1
  81. package/dist/astro/routes/api/admin/media-usage/progress.mjs +17 -17
  82. package/dist/astro/routes/api/admin/media-usage/repair.mjs +21 -20
  83. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  84. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +19 -18
  85. package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -1
  86. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +19 -18
  87. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -1
  88. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -5
  89. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -5
  90. package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts.map +1 -1
  91. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +9 -66
  92. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs.map +1 -1
  93. package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts.map +1 -1
  94. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +9 -69
  95. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +66 -59
  97. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +6 -6
  99. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +65 -59
  100. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  101. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +70 -61
  102. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  103. package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts.map +1 -1
  104. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +87 -63
  105. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  106. package/dist/astro/routes/api/admin/plugins/index.mjs +66 -59
  107. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  108. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +4 -4
  109. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +65 -59
  110. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  111. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts.map +1 -1
  112. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +85 -63
  113. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  114. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +65 -59
  115. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  116. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +70 -61
  117. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  118. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.d.mts.map +1 -1
  119. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +90 -66
  120. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  121. package/dist/astro/routes/api/admin/plugins/registry/artifact.d.mts.map +1 -1
  122. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -7
  123. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  124. package/dist/astro/routes/api/admin/plugins/registry/install.d.mts.map +1 -1
  125. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +77 -63
  126. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  127. package/dist/astro/routes/api/admin/plugins/registry/verify.d.mts.map +1 -1
  128. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +67 -61
  129. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  130. package/dist/astro/routes/api/admin/plugins/updates.d.mts.map +1 -1
  131. package/dist/astro/routes/api/admin/plugins/updates.mjs +66 -60
  132. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  133. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.d.mts +8 -0
  134. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.d.mts.map +1 -0
  135. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +27 -0
  136. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs.map +1 -0
  137. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +65 -59
  138. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  139. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +4 -4
  140. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +65 -59
  141. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  142. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +4 -4
  143. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -3
  144. package/dist/astro/routes/api/admin/users/_id_/index.mjs +11 -10
  145. package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
  146. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +5 -5
  147. package/dist/astro/routes/api/admin/users/index.mjs +10 -9
  148. package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
  149. package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -5
  150. package/dist/astro/routes/api/auth/invite/accept.mjs +3 -3
  151. package/dist/astro/routes/api/auth/invite/complete.mjs +15 -14
  152. package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
  153. package/dist/astro/routes/api/auth/invite/index.mjs +12 -11
  154. package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
  155. package/dist/astro/routes/api/auth/invite/register-options.mjs +14 -13
  156. package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
  157. package/dist/astro/routes/api/auth/logout.mjs +4 -4
  158. package/dist/astro/routes/api/auth/magic-link/send.mjs +14 -13
  159. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  160. package/dist/astro/routes/api/auth/magic-link/verify.mjs +4 -4
  161. package/dist/astro/routes/api/auth/me.mjs +11 -10
  162. package/dist/astro/routes/api/auth/me.mjs.map +1 -1
  163. package/dist/astro/routes/api/auth/mode.mjs +4 -4
  164. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +4 -4
  165. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  166. package/dist/astro/routes/api/auth/passkey/_id_.mjs +10 -9
  167. package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
  168. package/dist/astro/routes/api/auth/passkey/index.mjs +3 -3
  169. package/dist/astro/routes/api/auth/passkey/options.mjs +16 -15
  170. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  171. package/dist/astro/routes/api/auth/passkey/register/options.mjs +14 -13
  172. package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
  173. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +15 -14
  174. package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
  175. package/dist/astro/routes/api/auth/passkey/verify.mjs +15 -14
  176. package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
  177. package/dist/astro/routes/api/auth/signup/complete.mjs +15 -14
  178. package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
  179. package/dist/astro/routes/api/auth/signup/request.mjs +14 -13
  180. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  181. package/dist/astro/routes/api/auth/signup/verify.mjs +3 -3
  182. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.d.mts.map +1 -1
  183. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +15 -211
  184. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs.map +1 -1
  185. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +18 -17
  186. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
  187. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -4
  188. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts.map +1 -1
  189. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +17 -11
  190. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  191. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  192. package/dist/astro/routes/api/content/_collection_/_id_/lock.d.mts +10 -0
  193. package/dist/astro/routes/api/content/_collection_/_id_/lock.d.mts.map +1 -0
  194. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +67 -0
  195. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -0
  196. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -4
  197. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.d.mts +8 -0
  198. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.d.mts.map +1 -0
  199. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +35 -0
  200. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs.map +1 -0
  201. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +16 -15
  202. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  203. package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts +9 -2
  204. package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts.map +1 -1
  205. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +28 -16
  206. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  207. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +27 -23
  208. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  209. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +27 -23
  210. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  211. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
  212. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -4
  213. package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts.map +1 -1
  214. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +27 -12
  215. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  216. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +23 -20
  217. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  218. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -4
  219. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts.map +1 -1
  220. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +25 -12
  221. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  222. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  223. package/dist/astro/routes/api/content/_collection_/_id_.mjs +27 -14
  224. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  225. package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -4
  226. package/dist/astro/routes/api/content/_collection_/index.mjs +18 -12
  227. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  228. package/dist/astro/routes/api/content/_collection_/trash.mjs +11 -10
  229. package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
  230. package/dist/astro/routes/api/dashboard.mjs +14 -12
  231. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  232. package/dist/astro/routes/api/dev/emails.mjs +4 -4
  233. package/dist/astro/routes/api/health.d.mts +8 -0
  234. package/dist/astro/routes/api/health.d.mts.map +1 -0
  235. package/dist/astro/routes/api/health.mjs +21 -0
  236. package/dist/astro/routes/api/health.mjs.map +1 -0
  237. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  238. package/dist/astro/routes/api/import/probe.mjs +25 -23
  239. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  240. package/dist/astro/routes/api/import/wordpress/analyze.mjs +5 -5
  241. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -11
  242. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  243. package/dist/astro/routes/api/import/wordpress/execute.mjs +20 -19
  244. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  245. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -10
  246. package/dist/astro/routes/api/import/wordpress/media.d.mts.map +1 -1
  247. package/dist/astro/routes/api/import/wordpress/media.mjs +15 -14
  248. package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
  249. package/dist/astro/routes/api/import/wordpress/prepare.mjs +14 -13
  250. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  251. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -11
  252. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts.map +1 -1
  253. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +18 -17
  254. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  255. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  256. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +25 -23
  257. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  258. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
  259. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -11
  260. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -1
  261. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +36 -33
  262. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  263. package/dist/astro/routes/api/manifest.mjs +17 -9
  264. package/dist/astro/routes/api/manifest.mjs.map +1 -1
  265. package/dist/astro/routes/api/mcp.d.mts.map +1 -1
  266. package/dist/astro/routes/api/mcp.mjs +192 -110
  267. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  268. package/dist/astro/routes/api/media/_id_/confirm.mjs +15 -14
  269. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  270. package/dist/astro/routes/api/media/_id_/replace.mjs +12 -11
  271. package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -1
  272. package/dist/astro/routes/api/media/_id_/upload.mjs +8 -8
  273. package/dist/astro/routes/api/media/_id_/usage.mjs +23 -22
  274. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  275. package/dist/astro/routes/api/media/_id_.mjs +22 -21
  276. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  277. package/dist/astro/routes/api/media/asset/_id_/_filename_.d.mts +8 -0
  278. package/dist/astro/routes/api/media/asset/_id_/_filename_.d.mts.map +1 -0
  279. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +52 -0
  280. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs.map +1 -0
  281. package/dist/astro/routes/api/media/file/_...key_.mjs +3 -3
  282. package/dist/astro/routes/api/media/folders/_id_.mjs +12 -11
  283. package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -1
  284. package/dist/astro/routes/api/media/folders/index.mjs +12 -11
  285. package/dist/astro/routes/api/media/folders/index.mjs.map +1 -1
  286. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
  287. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
  288. package/dist/astro/routes/api/media/providers/index.mjs +4 -4
  289. package/dist/astro/routes/api/media/upload-url.mjs +14 -13
  290. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  291. package/dist/astro/routes/api/media.mjs +26 -25
  292. package/dist/astro/routes/api/media.mjs.map +1 -1
  293. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +15 -14
  294. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  295. package/dist/astro/routes/api/menus/_name_/items.mjs +15 -14
  296. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  297. package/dist/astro/routes/api/menus/_name_/reorder.mjs +15 -14
  298. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  299. package/dist/astro/routes/api/menus/_name_/translations.mjs +15 -14
  300. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  301. package/dist/astro/routes/api/menus/_name_.mjs +15 -14
  302. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  303. package/dist/astro/routes/api/menus/index.mjs +15 -14
  304. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  305. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  306. package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -7
  307. package/dist/astro/routes/api/oauth/device/code.mjs +10 -10
  308. package/dist/astro/routes/api/oauth/device/token.mjs +9 -9
  309. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  310. package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -7
  311. package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -7
  312. package/dist/astro/routes/api/oauth/token.mjs +7 -7
  313. package/dist/astro/routes/api/openapi.json.mjs +95 -24
  314. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  315. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts +2 -1
  316. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts.map +1 -1
  317. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +22 -40
  318. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
  319. package/dist/astro/routes/api/redirects/404s/index.mjs +18 -14
  320. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  321. package/dist/astro/routes/api/redirects/404s/summary.mjs +18 -14
  322. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  323. package/dist/astro/routes/api/redirects/_id_.d.mts.map +1 -1
  324. package/dist/astro/routes/api/redirects/_id_.mjs +20 -22
  325. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  326. package/dist/astro/routes/api/redirects/index.d.mts.map +1 -1
  327. package/dist/astro/routes/api/redirects/index.mjs +19 -19
  328. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  329. package/dist/astro/routes/api/relations/_id_/index.mjs +27 -23
  330. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  331. package/dist/astro/routes/api/relations/_id_/translations.mjs +21 -18
  332. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +1 -1
  333. package/dist/astro/routes/api/relations/index.mjs +27 -23
  334. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  335. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -4
  336. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +5 -5
  337. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +65 -59
  338. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  339. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +65 -59
  340. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  341. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +65 -59
  342. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  343. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +65 -59
  344. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  345. package/dist/astro/routes/api/schema/collections/index.mjs +65 -59
  346. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  347. package/dist/astro/routes/api/schema/collections/reorder.mjs +65 -59
  348. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  349. package/dist/astro/routes/api/schema/index.mjs +16 -14
  350. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  351. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +65 -59
  352. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  353. package/dist/astro/routes/api/schema/orphans/index.mjs +65 -59
  354. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  355. package/dist/astro/routes/api/search/enable.mjs +16 -14
  356. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  357. package/dist/astro/routes/api/search/index.mjs +17 -14
  358. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  359. package/dist/astro/routes/api/search/rebuild.mjs +16 -14
  360. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  361. package/dist/astro/routes/api/search/stats.mjs +10 -9
  362. package/dist/astro/routes/api/search/stats.mjs.map +1 -1
  363. package/dist/astro/routes/api/search/suggest.mjs +15 -13
  364. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  365. package/dist/astro/routes/api/sections/_slug_.mjs +15 -13
  366. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  367. package/dist/astro/routes/api/sections/index.mjs +15 -13
  368. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  369. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +9 -8
  370. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs.map +1 -1
  371. package/dist/astro/routes/api/settings/backups/archives/index.mjs +8 -7
  372. package/dist/astro/routes/api/settings/backups/archives/index.mjs.map +1 -1
  373. package/dist/astro/routes/api/settings/backups/export.mjs +9 -8
  374. package/dist/astro/routes/api/settings/backups/export.mjs.map +1 -1
  375. package/dist/astro/routes/api/settings/backups/index.mjs +10 -9
  376. package/dist/astro/routes/api/settings/backups/index.mjs.map +1 -1
  377. package/dist/astro/routes/api/settings/email.mjs +6 -6
  378. package/dist/astro/routes/api/settings.mjs +22 -20
  379. package/dist/astro/routes/api/settings.mjs.map +1 -1
  380. package/dist/astro/routes/api/setup/admin-verify.mjs +16 -15
  381. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  382. package/dist/astro/routes/api/setup/admin.mjs +15 -14
  383. package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
  384. package/dist/astro/routes/api/setup/dev-bypass.mjs +42 -38
  385. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  386. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  387. package/dist/astro/routes/api/setup/index.mjs +43 -38
  388. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  389. package/dist/astro/routes/api/setup/status.mjs +5 -5
  390. package/dist/astro/routes/api/snapshot.mjs +11 -10
  391. package/dist/astro/routes/api/snapshot.mjs.map +1 -1
  392. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +23 -21
  393. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  394. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +23 -21
  395. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  396. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +23 -21
  397. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  398. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +23 -21
  399. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  400. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +22 -20
  401. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  402. package/dist/astro/routes/api/taxonomies/_name_.mjs +23 -21
  403. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  404. package/dist/astro/routes/api/taxonomies/index.mjs +23 -21
  405. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  406. package/dist/astro/routes/api/themes/preview.mjs +8 -8
  407. package/dist/astro/routes/api/typegen.mjs +6 -6
  408. package/dist/astro/routes/api/visual-editing/action-token.d.mts +8 -0
  409. package/dist/astro/routes/api/visual-editing/action-token.d.mts.map +1 -0
  410. package/dist/astro/routes/api/visual-editing/action-token.mjs +25 -0
  411. package/dist/astro/routes/api/visual-editing/action-token.mjs.map +1 -0
  412. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.d.mts +8 -0
  413. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.d.mts.map +1 -0
  414. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +37 -0
  415. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs.map +1 -0
  416. package/dist/astro/routes/api/visual-editing/toolbar-labels.d.mts +8 -0
  417. package/dist/astro/routes/api/visual-editing/toolbar-labels.d.mts.map +1 -0
  418. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +20 -0
  419. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs.map +1 -0
  420. package/dist/astro/routes/api/well-known/auth.mjs +2 -2
  421. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  422. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  423. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +12 -11
  424. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  425. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +16 -15
  426. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  427. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +16 -15
  428. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  429. package/dist/astro/routes/api/widget-areas/_name_.mjs +10 -10
  430. package/dist/astro/routes/api/widget-areas/index.mjs +16 -15
  431. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  432. package/dist/astro/routes/api/widget-components.mjs +4 -4
  433. package/dist/astro/routes/robots.txt.mjs +13 -12
  434. package/dist/astro/routes/robots.txt.mjs.map +1 -1
  435. package/dist/astro/routes/sitemap-_collection_.xml.d.mts.map +1 -1
  436. package/dist/astro/routes/sitemap-_collection_.xml.mjs +24 -19
  437. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  438. package/dist/astro/routes/sitemap.xml.mjs +14 -13
  439. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  440. package/dist/astro/types.d.mts +79 -26
  441. package/dist/astro/types.d.mts.map +1 -1
  442. package/dist/auth/providers/github.d.mts +1 -1
  443. package/dist/auth/providers/google.d.mts +1 -1
  444. package/dist/authoritative-records-DbqshfKD.mjs +5172 -0
  445. package/dist/authoritative-records-DbqshfKD.mjs.map +1 -0
  446. package/dist/authorize-BXpfMpp0.mjs +40 -0
  447. package/dist/authorize-BXpfMpp0.mjs.map +1 -0
  448. package/dist/backup-BsPQdwnS.mjs +246 -0
  449. package/dist/backup-BsPQdwnS.mjs.map +1 -0
  450. package/dist/base64-DvnNgP7e.mjs +63 -0
  451. package/dist/base64-DvnNgP7e.mjs.map +1 -0
  452. package/dist/byline-Doh-wt99.mjs +906 -0
  453. package/dist/byline-Doh-wt99.mjs.map +1 -0
  454. package/dist/byline-fields-CsrdvaLV.mjs +123 -0
  455. package/dist/byline-fields-CsrdvaLV.mjs.map +1 -0
  456. package/dist/byline-registry-D6lWzXk6.mjs +406 -0
  457. package/dist/byline-registry-D6lWzXk6.mjs.map +1 -0
  458. package/dist/bylines-Cop0hkoy.mjs +214 -0
  459. package/dist/bylines-Cop0hkoy.mjs.map +1 -0
  460. package/dist/bylines-kpBzHPr8.mjs +232 -0
  461. package/dist/bylines-kpBzHPr8.mjs.map +1 -0
  462. package/dist/cache-B0pOlXdM.mjs +108 -0
  463. package/dist/cache-B0pOlXdM.mjs.map +1 -0
  464. package/dist/capture-triggers-gxQxnxrJ.mjs +362 -0
  465. package/dist/capture-triggers-gxQxnxrJ.mjs.map +1 -0
  466. package/dist/challenge-store-CkRdSdd8.mjs +51 -0
  467. package/dist/challenge-store-CkRdSdd8.mjs.map +1 -0
  468. package/dist/checksum-Bsi2D9M1.mjs +162 -0
  469. package/dist/checksum-Bsi2D9M1.mjs.map +1 -0
  470. package/dist/chrome-tags-D7LGB91U.mjs +24 -0
  471. package/dist/chrome-tags-D7LGB91U.mjs.map +1 -0
  472. package/dist/chunks-BmWyou79.mjs +25 -0
  473. package/dist/chunks-BmWyou79.mjs.map +1 -0
  474. package/dist/cli/index.mjs +921 -106
  475. package/dist/cli/index.mjs.map +1 -1
  476. package/dist/client/cf-access.d.mts +1 -1
  477. package/dist/client/index.d.mts +17 -7
  478. package/dist/client/index.d.mts.map +1 -1
  479. package/dist/client/index.mjs +17 -12
  480. package/dist/client/index.mjs.map +1 -1
  481. package/dist/collection-deletion-C3Xixmkx.mjs +436 -0
  482. package/dist/collection-deletion-C3Xixmkx.mjs.map +1 -0
  483. package/dist/collection-slugs-cache-D9auiKmI.mjs +85 -0
  484. package/dist/collection-slugs-cache-D9auiKmI.mjs.map +1 -0
  485. package/dist/comment-DcT8qdPK.mjs +313 -0
  486. package/dist/comment-DcT8qdPK.mjs.map +1 -0
  487. package/dist/comment-reaction-DY5-y8Y5.mjs +85 -0
  488. package/dist/comment-reaction-DY5-y8Y5.mjs.map +1 -0
  489. package/dist/comments-B67VRNGw.mjs +204 -0
  490. package/dist/comments-B67VRNGw.mjs.map +1 -0
  491. package/dist/comments-BVzzt6x5.mjs +99 -0
  492. package/dist/comments-BVzzt6x5.mjs.map +1 -0
  493. package/dist/components-DIl9Qzh6.mjs +108 -0
  494. package/dist/components-DIl9Qzh6.mjs.map +1 -0
  495. package/dist/config-B2acLeC5.mjs +242 -0
  496. package/dist/config-B2acLeC5.mjs.map +1 -0
  497. package/dist/config-CGVeT8Hc.mjs +73 -0
  498. package/dist/config-CGVeT8Hc.mjs.map +1 -0
  499. package/dist/config-D3HhLON3.d.mts +39 -0
  500. package/dist/config-D3HhLON3.d.mts.map +1 -0
  501. package/dist/config-DS7e4EZ9.d.mts +6387 -0
  502. package/dist/config-DS7e4EZ9.d.mts.map +1 -0
  503. package/dist/content-DZ3B5qtA.mjs +2216 -0
  504. package/dist/content-DZ3B5qtA.mjs.map +1 -0
  505. package/dist/content-list-query-CbPdzsna.d.mts +26 -0
  506. package/dist/content-list-query-CbPdzsna.d.mts.map +1 -0
  507. package/dist/content-policy-CM4skrNi.mjs +46 -0
  508. package/dist/content-policy-CM4skrNi.mjs.map +1 -0
  509. package/dist/content-refresh-BHLHJgyt.mjs +3599 -0
  510. package/dist/content-refresh-BHLHJgyt.mjs.map +1 -0
  511. package/dist/content-repair-BVll5WNl.mjs +440 -0
  512. package/dist/content-repair-BVll5WNl.mjs.map +1 -0
  513. package/dist/context-B195kjqZ.mjs +1835 -0
  514. package/dist/context-B195kjqZ.mjs.map +1 -0
  515. package/dist/cron-BcR3RN4K.mjs +282 -0
  516. package/dist/cron-BcR3RN4K.mjs.map +1 -0
  517. package/dist/dashboard-CZD4G7k_.mjs +151 -0
  518. package/dist/dashboard-CZD4G7k_.mjs.map +1 -0
  519. package/dist/database/migration-lock.d.mts +37 -0
  520. package/dist/database/migration-lock.d.mts.map +1 -0
  521. package/dist/database/migration-lock.mjs +76 -0
  522. package/dist/database/migration-lock.mjs.map +1 -0
  523. package/dist/database/pg-migration-lock.d.mts +1 -1
  524. package/dist/database/pg-migration-lock.mjs +1 -1
  525. package/dist/database/pg-migration-lock.mjs.map +1 -1
  526. package/dist/datetime-normalization-PeiEdcRY.mjs +187 -0
  527. package/dist/datetime-normalization-PeiEdcRY.mjs.map +1 -0
  528. package/dist/db/index.d.mts +3 -3
  529. package/dist/db/index.mjs +4 -3
  530. package/dist/db/index.mjs.map +1 -1
  531. package/dist/db/libsql-migrations.d.mts +1 -1
  532. package/dist/db/libsql-migrations.mjs +7 -6
  533. package/dist/db/libsql-migrations.mjs.map +1 -1
  534. package/dist/db/libsql.d.mts +1 -1
  535. package/dist/db/postgres-migrations.d.mts +1 -1
  536. package/dist/db/postgres-migrations.mjs +7 -6
  537. package/dist/db/postgres-migrations.mjs.map +1 -1
  538. package/dist/db/postgres.d.mts +1 -1
  539. package/dist/db/sqlite-migrations.d.mts +1 -1
  540. package/dist/db/sqlite-migrations.mjs +7 -6
  541. package/dist/db/sqlite-migrations.mjs.map +1 -1
  542. package/dist/db/sqlite.d.mts +1 -1
  543. package/dist/db/sqlite.mjs +1 -1
  544. package/dist/db-errors-CBD5yMro.mjs +55 -0
  545. package/dist/db-errors-CBD5yMro.mjs.map +1 -0
  546. package/dist/default-BtlxWgh9.mjs +81 -0
  547. package/dist/default-BtlxWgh9.mjs.map +1 -0
  548. package/dist/deferred-tasks-Ba9fphlE.d.mts +9 -0
  549. package/dist/deferred-tasks-Ba9fphlE.d.mts.map +1 -0
  550. package/dist/dev-typegen-CZaPLl3V.mjs +29 -0
  551. package/dist/dev-typegen-CZaPLl3V.mjs.map +1 -0
  552. package/dist/device-flow-3E5l0fpH.mjs +466 -0
  553. package/dist/device-flow-3E5l0fpH.mjs.map +1 -0
  554. package/dist/dialect-helpers-CtYdsX4W.mjs +307 -0
  555. package/dist/dialect-helpers-CtYdsX4W.mjs.map +1 -0
  556. package/dist/direct-executor-ZI8E01Yt.mjs +104 -0
  557. package/dist/direct-executor-ZI8E01Yt.mjs.map +1 -0
  558. package/dist/dist-2hDLsLeq.mjs +810 -0
  559. package/dist/dist-2hDLsLeq.mjs.map +1 -0
  560. package/dist/email-console-gc-E3Eqj.mjs +50 -0
  561. package/dist/email-console-gc-E3Eqj.mjs.map +1 -0
  562. package/dist/emdash-runtime-DZGinqTL.mjs +4041 -0
  563. package/dist/emdash-runtime-DZGinqTL.mjs.map +1 -0
  564. package/dist/enrich-C2Mk0lwE.mjs +194 -0
  565. package/dist/enrich-C2Mk0lwE.mjs.map +1 -0
  566. package/dist/entry-lock-D3C99MXS.mjs +1520 -0
  567. package/dist/entry-lock-D3C99MXS.mjs.map +1 -0
  568. package/dist/entry-lock-D9rnj2Lu.mjs +163 -0
  569. package/dist/entry-lock-D9rnj2Lu.mjs.map +1 -0
  570. package/dist/entry-lock-DX7QkqEg.d.mts +3503 -0
  571. package/dist/entry-lock-DX7QkqEg.d.mts.map +1 -0
  572. package/dist/entry-locks-CO_KaoU5.mjs +167 -0
  573. package/dist/entry-locks-CO_KaoU5.mjs.map +1 -0
  574. package/dist/error-CCTCskie.mjs +90 -0
  575. package/dist/error-CCTCskie.mjs.map +1 -0
  576. package/dist/errors-W3PA8HqB.mjs +447 -0
  577. package/dist/errors-W3PA8HqB.mjs.map +1 -0
  578. package/dist/escape-DN4Qmjsl.mjs +9 -0
  579. package/dist/escape-DN4Qmjsl.mjs.map +1 -0
  580. package/dist/field-defs-cache-B337z8UJ.mjs +77 -0
  581. package/dist/field-defs-cache-B337z8UJ.mjs.map +1 -0
  582. package/dist/focal-point-Gr34o-4o.mjs +23 -0
  583. package/dist/focal-point-Gr34o-4o.mjs.map +1 -0
  584. package/dist/fts-manager-DMb0sbIQ.mjs +413 -0
  585. package/dist/fts-manager-DMb0sbIQ.mjs.map +1 -0
  586. package/dist/hash-CLVFzWvx.mjs +37 -0
  587. package/dist/hash-CLVFzWvx.mjs.map +1 -0
  588. package/dist/hook-result-KY1jq21o.d.mts +31 -0
  589. package/dist/hook-result-KY1jq21o.d.mts.map +1 -0
  590. package/dist/hreflang-BgS2FqhH.d.mts +50 -0
  591. package/dist/hreflang-BgS2FqhH.d.mts.map +1 -0
  592. package/dist/hreflang-CrJwqoeb.mjs +105 -0
  593. package/dist/hreflang-CrJwqoeb.mjs.map +1 -0
  594. package/dist/http-route-dispatch-DAKlanXb.mjs +339 -0
  595. package/dist/http-route-dispatch-DAKlanXb.mjs.map +1 -0
  596. package/dist/identity-DRGSHEEr.mjs +35 -0
  597. package/dist/identity-DRGSHEEr.mjs.map +1 -0
  598. package/dist/import-DFr5B_hC.mjs +2020 -0
  599. package/dist/import-DFr5B_hC.mjs.map +1 -0
  600. package/dist/index-CDwKDkTq.d.mts +623 -0
  601. package/dist/index-CDwKDkTq.d.mts.map +1 -0
  602. package/dist/index.d.mts +27 -22
  603. package/dist/index.mjs +101 -86
  604. package/dist/init-lock-4eRRB4Le.mjs +56 -0
  605. package/dist/init-lock-4eRRB4Le.mjs.map +1 -0
  606. package/dist/install-finalization-5Os-QZ-2.mjs +58 -0
  607. package/dist/install-finalization-5Os-QZ-2.mjs.map +1 -0
  608. package/dist/lifecycle-7e-Lt_kX.mjs +25 -0
  609. package/dist/lifecycle-7e-Lt_kX.mjs.map +1 -0
  610. package/dist/load-Cu5bvCZh.mjs +28 -0
  611. package/dist/load-Cu5bvCZh.mjs.map +1 -0
  612. package/dist/loader-t4TxaFiQ.mjs +1004 -0
  613. package/dist/loader-t4TxaFiQ.mjs.map +1 -0
  614. package/dist/manifest-builder-D31UoJCu.mjs +189 -0
  615. package/dist/manifest-builder-D31UoJCu.mjs.map +1 -0
  616. package/dist/manifest-schema-Bkh8SeHd.mjs +491 -0
  617. package/dist/manifest-schema-Bkh8SeHd.mjs.map +1 -0
  618. package/dist/media/image-endpoint.mjs +1 -1
  619. package/dist/media/index.d.mts +1 -1
  620. package/dist/media/index.mjs +4 -4
  621. package/dist/media/local-runtime.d.mts +14 -12
  622. package/dist/media/local-runtime.d.mts.map +1 -1
  623. package/dist/media/local-runtime.mjs +12 -11
  624. package/dist/media/local-runtime.mjs.map +1 -1
  625. package/dist/media-TBlKCwo7.mjs +334 -0
  626. package/dist/media-TBlKCwo7.mjs.map +1 -0
  627. package/dist/media-allowlist-s60eAIf6.mjs +44 -0
  628. package/dist/media-allowlist-s60eAIf6.mjs.map +1 -0
  629. package/dist/media-folders-ClIRLUQv.mjs +210 -0
  630. package/dist/media-folders-ClIRLUQv.mjs.map +1 -0
  631. package/dist/media-url-DY_ijO3B.mjs +43 -0
  632. package/dist/media-url-DY_ijO3B.mjs.map +1 -0
  633. package/dist/media-usage-C4NolTpQ.mjs +1833 -0
  634. package/dist/media-usage-C4NolTpQ.mjs.map +1 -0
  635. package/dist/media-usage-activation-CAhmb14O.mjs +78 -0
  636. package/dist/media-usage-activation-CAhmb14O.mjs.map +1 -0
  637. package/dist/media-usage-work-Cu5DqewW.mjs +586 -0
  638. package/dist/media-usage-work-Cu5DqewW.mjs.map +1 -0
  639. package/dist/media-usage-work-DJr3rOEN.mjs +152 -0
  640. package/dist/media-usage-work-DJr3rOEN.mjs.map +1 -0
  641. package/dist/media-usage-write-fence-DW5oHT7q.mjs +42 -0
  642. package/dist/media-usage-write-fence-DW5oHT7q.mjs.map +1 -0
  643. package/dist/menus-DbgU9z5Q.mjs +3732 -0
  644. package/dist/menus-DbgU9z5Q.mjs.map +1 -0
  645. package/dist/menus-Wy8m5NcH.mjs +753 -0
  646. package/dist/menus-Wy8m5NcH.mjs.map +1 -0
  647. package/dist/migrations/index.d.mts +2 -2
  648. package/dist/migrations/index.d.mts.map +1 -1
  649. package/dist/migrations/index.mjs +6 -5
  650. package/dist/mime-CCYRC4r1.mjs +36 -0
  651. package/dist/mime-CCYRC4r1.mjs.map +1 -0
  652. package/dist/mode-CkmOhFqj.mjs +23 -0
  653. package/dist/mode-CkmOhFqj.mjs.map +1 -0
  654. package/dist/node-sqlite-compat-vpVaILnb.mjs +46 -0
  655. package/dist/node-sqlite-compat-vpVaILnb.mjs.map +1 -0
  656. package/dist/normalize-dChXQjwS.mjs +191 -0
  657. package/dist/normalize-dChXQjwS.mjs.map +1 -0
  658. package/dist/oauth-authorization-DZ-R-hmx.mjs +274 -0
  659. package/dist/oauth-authorization-DZ-R-hmx.mjs.map +1 -0
  660. package/dist/oauth-clients-BMPA8vjl.mjs +266 -0
  661. package/dist/oauth-clients-BMPA8vjl.mjs.map +1 -0
  662. package/dist/oauth-state-store-0gIdb48-.mjs +50 -0
  663. package/dist/oauth-state-store-0gIdb48-.mjs.map +1 -0
  664. package/dist/oauth-user-lookup-ChVW4UWu.mjs +26 -0
  665. package/dist/oauth-user-lookup-ChVW4UWu.mjs.map +1 -0
  666. package/dist/object-cache/memory.d.mts +1 -1
  667. package/dist/object-cache-DlSVbn5Y.mjs +534 -0
  668. package/dist/object-cache-DlSVbn5Y.mjs.map +1 -0
  669. package/dist/options-D5WcorD5.mjs +200 -0
  670. package/dist/options-D5WcorD5.mjs.map +1 -0
  671. package/dist/options-DAknChnw.d.mts +77 -0
  672. package/dist/options-DAknChnw.d.mts.map +1 -0
  673. package/dist/page/index.d.mts +2 -2
  674. package/dist/page/index.d.mts.map +1 -1
  675. package/dist/page/index.mjs +13 -0
  676. package/dist/page/index.mjs.map +1 -1
  677. package/dist/parse-Cr379Av9.mjs +81 -0
  678. package/dist/parse-Cr379Av9.mjs.map +1 -0
  679. package/dist/parse-tj9XLNO_.d.mts +165 -0
  680. package/dist/parse-tj9XLNO_.d.mts.map +1 -0
  681. package/dist/passkey-config-BD-wMaCf.mjs +46 -0
  682. package/dist/passkey-config-BD-wMaCf.mjs.map +1 -0
  683. package/dist/patterns-Do3iqi7N.mjs +145 -0
  684. package/dist/patterns-Do3iqi7N.mjs.map +1 -0
  685. package/dist/placeholder-CubPFn_L.d.mts +306 -0
  686. package/dist/placeholder-CubPFn_L.d.mts.map +1 -0
  687. package/dist/plugin-test-runtime.d.mts +97 -0
  688. package/dist/plugin-test-runtime.d.mts.map +1 -0
  689. package/dist/plugin-test-runtime.mjs +105 -0
  690. package/dist/plugin-types.d.mts +53 -15
  691. package/dist/plugin-types.d.mts.map +1 -1
  692. package/dist/plugin-types.mjs +18 -1
  693. package/dist/plugin-types.mjs.map +1 -0
  694. package/dist/plugin-utils.d.mts +12 -10
  695. package/dist/plugin-utils.d.mts.map +1 -1
  696. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -10
  697. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  698. package/dist/plugins/adapt-sandbox-entry.mjs +18 -13
  699. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  700. package/dist/plugins/host.d.mts +7 -0
  701. package/dist/plugins/host.mjs +45 -0
  702. package/dist/plugins/http-wire.d.mts +25 -0
  703. package/dist/plugins/http-wire.d.mts.map +1 -0
  704. package/dist/plugins/http-wire.mjs +148 -0
  705. package/dist/plugins/http-wire.mjs.map +1 -0
  706. package/dist/plugins/secret-redactor.d.mts +9 -0
  707. package/dist/plugins/secret-redactor.d.mts.map +1 -0
  708. package/dist/plugins/secret-redactor.mjs +51 -0
  709. package/dist/plugins/secret-redactor.mjs.map +1 -0
  710. package/dist/plugins-DHurtdXQ.mjs +277 -0
  711. package/dist/plugins-DHurtdXQ.mjs.map +1 -0
  712. package/dist/policy-lyZnjpwz.mjs +45 -0
  713. package/dist/policy-lyZnjpwz.mjs.map +1 -0
  714. package/dist/portable-text-oAwodbPS.mjs +286 -0
  715. package/dist/portable-text-oAwodbPS.mjs.map +1 -0
  716. package/dist/preview-Cup2bj8c.mjs +107 -0
  717. package/dist/preview-Cup2bj8c.mjs.map +1 -0
  718. package/dist/protocol-C1CNiKX4.d.mts +61 -0
  719. package/dist/protocol-C1CNiKX4.d.mts.map +1 -0
  720. package/dist/public-submission-Cs-pFMQK.mjs +245 -0
  721. package/dist/public-submission-Cs-pFMQK.mjs.map +1 -0
  722. package/dist/public-url-BWVHsfQv.mjs +101 -0
  723. package/dist/public-url-BWVHsfQv.mjs.map +1 -0
  724. package/dist/query-D-lxiOgn.mjs +890 -0
  725. package/dist/query-D-lxiOgn.mjs.map +1 -0
  726. package/dist/query-D7kHKOws.mjs +41 -0
  727. package/dist/query-D7kHKOws.mjs.map +1 -0
  728. package/dist/rate-limit-CqJn-w4h.mjs +120 -0
  729. package/dist/rate-limit-CqJn-w4h.mjs.map +1 -0
  730. package/dist/redirect-BrChFPIu.mjs +17 -0
  731. package/dist/redirect-BrChFPIu.mjs.map +1 -0
  732. package/dist/redirect-D2Yo-b6S.mjs +415 -0
  733. package/dist/redirect-D2Yo-b6S.mjs.map +1 -0
  734. package/dist/redirects-BCiTaIQ-.mjs +146 -0
  735. package/dist/redirects-BCiTaIQ-.mjs.map +1 -0
  736. package/dist/redirects-ByItliuu.mjs +644 -0
  737. package/dist/redirects-ByItliuu.mjs.map +1 -0
  738. package/dist/registry/testing.d.mts +14 -0
  739. package/dist/registry/testing.d.mts.map +1 -0
  740. package/dist/registry/testing.mjs +255 -0
  741. package/dist/registry/testing.mjs.map +1 -0
  742. package/dist/registry-CkuPoZs7.mjs +1222 -0
  743. package/dist/registry-CkuPoZs7.mjs.map +1 -0
  744. package/dist/relation-XTAtOpJO.mjs +334 -0
  745. package/dist/relation-XTAtOpJO.mjs.map +1 -0
  746. package/dist/relations-B4w-G5U9.mjs +309 -0
  747. package/dist/relations-B4w-G5U9.mjs.map +1 -0
  748. package/dist/relations-O63JWBRj.mjs +403 -0
  749. package/dist/relations-O63JWBRj.mjs.map +1 -0
  750. package/dist/request-cache-DaMhSQdx.mjs +104 -0
  751. package/dist/request-cache-DaMhSQdx.mjs.map +1 -0
  752. package/dist/request-context.d.mts +1 -1
  753. package/dist/request-meta-C8yl_sIs.mjs +141 -0
  754. package/dist/request-meta-C8yl_sIs.mjs.map +1 -0
  755. package/dist/resolve-BJIS8wKr.mjs +199 -0
  756. package/dist/resolve-BJIS8wKr.mjs.map +1 -0
  757. package/dist/route-wire-D66L2oaZ.mjs +197 -0
  758. package/dist/route-wire-D66L2oaZ.mjs.map +1 -0
  759. package/dist/routes-DYsTe-oR.mjs +321 -0
  760. package/dist/routes-DYsTe-oR.mjs.map +1 -0
  761. package/dist/runner-3gfxRsJG.d.mts +68 -0
  762. package/dist/runner-3gfxRsJG.d.mts.map +1 -0
  763. package/dist/runner-ClrleR8A.mjs +5502 -0
  764. package/dist/runner-ClrleR8A.mjs.map +1 -0
  765. package/dist/runtime.d.mts +13 -11
  766. package/dist/runtime.d.mts.map +1 -1
  767. package/dist/runtime.mjs +6 -5
  768. package/dist/runtime.mjs.map +1 -1
  769. package/dist/schema-CPhPM9Do.mjs +420 -0
  770. package/dist/schema-CPhPM9Do.mjs.map +1 -0
  771. package/dist/schema-DEERRrKS.mjs +9 -0
  772. package/dist/schema-DEERRrKS.mjs.map +1 -0
  773. package/dist/scopes-Bn8_rCSt.mjs +27 -0
  774. package/dist/scopes-Bn8_rCSt.mjs.map +1 -0
  775. package/dist/search-lami_Ota.mjs +448 -0
  776. package/dist/search-lami_Ota.mjs.map +1 -0
  777. package/dist/secrets-DNgVgz_e.mjs +341 -0
  778. package/dist/secrets-DNgVgz_e.mjs.map +1 -0
  779. package/dist/sections-BIpd4Cxf.mjs +346 -0
  780. package/dist/sections-BIpd4Cxf.mjs.map +1 -0
  781. package/dist/seed/index.d.mts +2 -2
  782. package/dist/seed/index.mjs +35 -31
  783. package/dist/seo/index.d.mts +3 -3
  784. package/dist/seo/index.d.mts.map +1 -1
  785. package/dist/seo/index.mjs +27 -26
  786. package/dist/seo/index.mjs.map +1 -1
  787. package/dist/seo-BtU70b7l.mjs +114 -0
  788. package/dist/seo-BtU70b7l.mjs.map +1 -0
  789. package/dist/seo-_4qmazxz.mjs +133 -0
  790. package/dist/seo-_4qmazxz.mjs.map +1 -0
  791. package/dist/service-Bpy5iTX0.mjs +150 -0
  792. package/dist/service-Bpy5iTX0.mjs.map +1 -0
  793. package/dist/session-user-BQeS2Mrb.mjs +51 -0
  794. package/dist/session-user-BQeS2Mrb.mjs.map +1 -0
  795. package/dist/settings-DmroR53o.mjs +420 -0
  796. package/dist/settings-DmroR53o.mjs.map +1 -0
  797. package/dist/settings-g2F2a3Ub.mjs +51 -0
  798. package/dist/settings-g2F2a3Ub.mjs.map +1 -0
  799. package/dist/setup-complete-BrZaXpVV.mjs +26 -0
  800. package/dist/setup-complete-BrZaXpVV.mjs.map +1 -0
  801. package/dist/setup-nonce-Cb9-884O.mjs +25 -0
  802. package/dist/setup-nonce-Cb9-884O.mjs.map +1 -0
  803. package/dist/single-flight-cache-B5O2qhO1.mjs +104 -0
  804. package/dist/single-flight-cache-B5O2qhO1.mjs.map +1 -0
  805. package/dist/site-url-DjhYCaep.mjs +16 -0
  806. package/dist/site-url-DjhYCaep.mjs.map +1 -0
  807. package/dist/slugify-T5GHH42D.mjs +17 -0
  808. package/dist/slugify-T5GHH42D.mjs.map +1 -0
  809. package/dist/snapshot-C32Xuv3o.mjs +233 -0
  810. package/dist/snapshot-C32Xuv3o.mjs.map +1 -0
  811. package/dist/ssrf-Co1GGFZz.mjs +406 -0
  812. package/dist/ssrf-Co1GGFZz.mjs.map +1 -0
  813. package/dist/state-C7gCoiHr.mjs +153 -0
  814. package/dist/state-C7gCoiHr.mjs.map +1 -0
  815. package/dist/status-DLoBmcDz.mjs +30 -0
  816. package/dist/status-DLoBmcDz.mjs.map +1 -0
  817. package/dist/storage/local.d.mts +1 -1
  818. package/dist/storage/local.mjs +1 -1
  819. package/dist/storage/s3.d.mts +1 -1
  820. package/dist/storage/s3.mjs +1 -1
  821. package/dist/storage-query-CPctdMKX.d.mts +1519 -0
  822. package/dist/storage-query-CPctdMKX.d.mts.map +1 -0
  823. package/dist/target-CUKlGrXb.mjs +27 -0
  824. package/dist/target-CUKlGrXb.mjs.map +1 -0
  825. package/dist/taxonomies-BpqpXJUE.mjs +707 -0
  826. package/dist/taxonomies-BpqpXJUE.mjs.map +1 -0
  827. package/dist/taxonomies-ClCo4IGO.mjs +899 -0
  828. package/dist/taxonomies-ClCo4IGO.mjs.map +1 -0
  829. package/dist/taxonomy-Dj1vpw5E.mjs +508 -0
  830. package/dist/taxonomy-Dj1vpw5E.mjs.map +1 -0
  831. package/dist/tokens-Ns02GAma.mjs +171 -0
  832. package/dist/tokens-Ns02GAma.mjs.map +1 -0
  833. package/dist/transaction-BcJO4Tmc.mjs +29 -0
  834. package/dist/transaction-BcJO4Tmc.mjs.map +1 -0
  835. package/dist/transport-B8P1xsqk.mjs +136 -0
  836. package/dist/transport-B8P1xsqk.mjs.map +1 -0
  837. package/dist/transport-BLHZZcD_.d.mts +42 -0
  838. package/dist/transport-BLHZZcD_.d.mts.map +1 -0
  839. package/dist/trusted-proxy-Cg7SuD15.mjs +51 -0
  840. package/dist/trusted-proxy-Cg7SuD15.mjs.map +1 -0
  841. package/dist/turnstile-DWCSh_Qc.mjs +53 -0
  842. package/dist/turnstile-DWCSh_Qc.mjs.map +1 -0
  843. package/dist/types-B3RkqvDW.mjs +156 -0
  844. package/dist/types-B3RkqvDW.mjs.map +1 -0
  845. package/dist/types-BkUg2yHx.mjs +92 -0
  846. package/dist/types-BkUg2yHx.mjs.map +1 -0
  847. package/dist/types-BtuppOTV.mjs +16 -0
  848. package/dist/types-BtuppOTV.mjs.map +1 -0
  849. package/dist/types-CCR3ivXE.d.mts +363 -0
  850. package/dist/types-CCR3ivXE.d.mts.map +1 -0
  851. package/dist/types-CSHgU_-_.mjs +18 -0
  852. package/dist/types-CSHgU_-_.mjs.map +1 -0
  853. package/dist/types-CbwqGOXm.d.mts +766 -0
  854. package/dist/types-CbwqGOXm.d.mts.map +1 -0
  855. package/dist/types-D4RGIc2I.d.mts +198 -0
  856. package/dist/types-D4RGIc2I.d.mts.map +1 -0
  857. package/dist/types-DEHidMEk.d.mts +1637 -0
  858. package/dist/types-DEHidMEk.d.mts.map +1 -0
  859. package/dist/types-DQeU2SR7.d.mts +279 -0
  860. package/dist/types-DQeU2SR7.d.mts.map +1 -0
  861. package/dist/types-DxQWoQLA.d.mts +264 -0
  862. package/dist/types-DxQWoQLA.d.mts.map +1 -0
  863. package/dist/types-FBBnGZ2Y.d.mts +198 -0
  864. package/dist/types-FBBnGZ2Y.d.mts.map +1 -0
  865. package/dist/types-ZCnlropY.mjs +69 -0
  866. package/dist/types-ZCnlropY.mjs.map +1 -0
  867. package/dist/types-_Qtyawiy.d.mts +124 -0
  868. package/dist/types-_Qtyawiy.d.mts.map +1 -0
  869. package/dist/types-gC6FAoa_.d.mts +75 -0
  870. package/dist/types-gC6FAoa_.d.mts.map +1 -0
  871. package/dist/types-k--LneIF.mjs +22 -0
  872. package/dist/types-k--LneIF.mjs.map +1 -0
  873. package/dist/upload-attempts-2xdnoKGe.mjs +27 -0
  874. package/dist/upload-attempts-2xdnoKGe.mjs.map +1 -0
  875. package/dist/url-pattern-3m3reMzr.mjs +33 -0
  876. package/dist/url-pattern-3m3reMzr.mjs.map +1 -0
  877. package/dist/user-DroRntkx.mjs +171 -0
  878. package/dist/user-DroRntkx.mjs.map +1 -0
  879. package/dist/utils-CC2oNGV8.mjs +435 -0
  880. package/dist/utils-CC2oNGV8.mjs.map +1 -0
  881. package/dist/validate-BCP9HNDn.mjs +384 -0
  882. package/dist/validate-BCP9HNDn.mjs.map +1 -0
  883. package/dist/validate-CyQ7I3xF.d.mts +410 -0
  884. package/dist/validate-CyQ7I3xF.d.mts.map +1 -0
  885. package/dist/validate-DANX1-Qi.mjs +120 -0
  886. package/dist/validate-DANX1-Qi.mjs.map +1 -0
  887. package/dist/validation-DBy6WF94.mjs +216 -0
  888. package/dist/validation-DBy6WF94.mjs.map +1 -0
  889. package/dist/version-B57E4Uo7.mjs +7 -0
  890. package/dist/version-B57E4Uo7.mjs.map +1 -0
  891. package/dist/widgets-wQ7Xcgq8.mjs +126 -0
  892. package/dist/widgets-wQ7Xcgq8.mjs.map +1 -0
  893. package/dist/wxr-taxonomies-DIHfvEDt.mjs +406 -0
  894. package/dist/wxr-taxonomies-DIHfvEDt.mjs.map +1 -0
  895. package/dist/wxr-taxonomies-DU2ZSiGc.d.mts +34 -0
  896. package/dist/wxr-taxonomies-DU2ZSiGc.d.mts.map +1 -0
  897. package/dist/zod-generator-D_yHIWfs.mjs +329 -0
  898. package/dist/zod-generator-D_yHIWfs.mjs.map +1 -0
  899. package/package.json +39 -12
  900. package/src/api/errors.ts +23 -0
  901. package/src/api/handlers/backup.ts +11 -5
  902. package/src/api/handlers/content.ts +226 -85
  903. package/src/api/handlers/dashboard.ts +31 -1
  904. package/src/api/handlers/entry-lock.ts +206 -0
  905. package/src/api/handlers/index.ts +3 -0
  906. package/src/api/handlers/manifest.ts +5 -6
  907. package/src/api/handlers/marketplace.ts +126 -34
  908. package/src/api/handlers/media-upload.ts +31 -4
  909. package/src/api/handlers/menus.ts +9 -0
  910. package/src/api/handlers/plugin-settings.ts +35 -3
  911. package/src/api/handlers/redirects.ts +221 -138
  912. package/src/api/handlers/registry.ts +75 -29
  913. package/src/api/handlers/revision.ts +16 -27
  914. package/src/api/handlers/seo.ts +10 -1
  915. package/src/api/handlers/snapshot.ts +87 -72
  916. package/src/api/handlers/taxonomies.ts +79 -5
  917. package/src/api/handlers/validation.ts +120 -19
  918. package/src/api/openapi/document.ts +133 -11
  919. package/src/api/schemas/content.ts +32 -12
  920. package/src/api/schemas/entry-lock.ts +57 -0
  921. package/src/api/schemas/index.ts +1 -0
  922. package/src/api/schemas/schema.ts +10 -1
  923. package/src/api/schemas/search.ts +4 -0
  924. package/src/api/types.ts +4 -0
  925. package/src/astro/integration/index.ts +22 -6
  926. package/src/astro/integration/routes.ts +89 -0
  927. package/src/astro/integration/runtime.ts +40 -24
  928. package/src/astro/integration/virtual-modules.ts +4 -0
  929. package/src/astro/integration/vite-config.ts +31 -0
  930. package/src/astro/middleware/auth.ts +25 -4
  931. package/src/astro/middleware/request-context.ts +28 -10
  932. package/src/astro/middleware.ts +33 -1
  933. package/src/astro/prefetch.ts +2 -2
  934. package/src/astro/routes/api/admin/comments/[id]/status.ts +22 -58
  935. package/src/astro/routes/api/admin/plugins/[id]/disable.ts +2 -15
  936. package/src/astro/routes/api/admin/plugins/[id]/enable.ts +2 -25
  937. package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +1 -0
  938. package/src/astro/routes/api/admin/plugins/[id]/update.ts +23 -4
  939. package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +12 -2
  940. package/src/astro/routes/api/admin/plugins/registry/[id]/uninstall.ts +1 -0
  941. package/src/astro/routes/api/admin/plugins/registry/[id]/update.ts +29 -10
  942. package/src/astro/routes/api/admin/plugins/registry/artifact.ts +8 -2
  943. package/src/astro/routes/api/admin/plugins/registry/install.ts +15 -4
  944. package/src/astro/routes/api/admin/plugins/registry/verify.ts +2 -1
  945. package/src/astro/routes/api/admin/plugins/updates.ts +6 -1
  946. package/src/astro/routes/api/admin/scheduled-policy-rejections/[collection]/[id].ts +34 -0
  947. package/src/astro/routes/api/comments/[collection]/[contentId]/index.ts +4 -259
  948. package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +10 -0
  949. package/src/astro/routes/api/content/[collection]/[id]/lock.ts +133 -0
  950. package/src/astro/routes/api/content/[collection]/[id]/plugin-extensions/[pluginId]/[kind]/[extensionId].ts +29 -0
  951. package/src/astro/routes/api/content/[collection]/[id]/publish.ts +21 -4
  952. package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +30 -1
  953. package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +15 -1
  954. package/src/astro/routes/api/content/[collection]/[id].ts +27 -2
  955. package/src/astro/routes/api/content/[collection]/index.ts +3 -0
  956. package/src/astro/routes/api/health.ts +23 -0
  957. package/src/astro/routes/api/manifest.ts +14 -4
  958. package/src/astro/routes/api/mcp.ts +2 -1
  959. package/src/astro/routes/api/media/asset/[id]/[filename].ts +50 -0
  960. package/src/astro/routes/api/plugins/[pluginId]/[...path].ts +13 -81
  961. package/src/astro/routes/api/redirects/[id].ts +0 -3
  962. package/src/astro/routes/api/redirects/index.ts +0 -2
  963. package/src/astro/routes/api/search/index.ts +1 -0
  964. package/src/astro/routes/api/visual-editing/action-token.ts +36 -0
  965. package/src/astro/routes/api/visual-editing/content/[collection]/[id]/publish.ts +32 -0
  966. package/src/astro/routes/api/visual-editing/toolbar-labels.ts +16 -0
  967. package/src/astro/routes/sitemap-[collection].xml.ts +11 -4
  968. package/src/astro/types.ts +83 -12
  969. package/src/cli/commands/bundle-utils.ts +19 -19
  970. package/src/cli/commands/bundle.ts +9 -6
  971. package/src/cli/commands/content.ts +32 -6
  972. package/src/cli/commands/doctor.ts +25 -0
  973. package/src/cli/commands/export-seed.ts +195 -56
  974. package/src/cli/commands/migrate.ts +71 -23
  975. package/src/cli/commands/publish.ts +2 -2
  976. package/src/client/index.ts +34 -7
  977. package/src/comments/public-submission.ts +246 -0
  978. package/src/comments/service.ts +59 -12
  979. package/src/components/EmDashBodyEnd.astro +4 -1
  980. package/src/components/EmDashBodyStart.astro +4 -1
  981. package/src/components/EmDashHead.astro +36 -16
  982. package/src/components/Gallery.astro +18 -4
  983. package/src/components/InlineEditor.astro +3 -1
  984. package/src/components/InlinePortableTextEditor.tsx +106 -11
  985. package/src/components/PortableText.astro +4 -0
  986. package/src/components/Table.astro +147 -62
  987. package/src/components/widgets/Archives.astro +6 -5
  988. package/src/config/errors.ts +13 -0
  989. package/src/config/secrets.ts +25 -11
  990. package/src/content/converters/portable-text-to-prosemirror.ts +26 -2
  991. package/src/content/converters/prosemirror-to-portable-text.ts +35 -6
  992. package/src/content/converters/types.ts +10 -0
  993. package/src/content/known-fields.ts +44 -0
  994. package/src/database/connection.ts +5 -1
  995. package/src/database/content-datetime.ts +123 -0
  996. package/src/database/datetime-storage.ts +452 -0
  997. package/src/database/dialect-helpers.ts +161 -1
  998. package/src/database/migration-lock.ts +140 -0
  999. package/src/database/migrations/075_entry_edit_locks.ts +44 -0
  1000. package/src/database/migrations/076_collection_nav_group.ts +22 -0
  1001. package/src/database/migrations/077_plugin_storage_revisions.ts +89 -0
  1002. package/src/database/migrations/078_menu_item_translation_groups.ts +15 -0
  1003. package/src/database/migrations/079_datetime_normalization.ts +13 -0
  1004. package/src/database/migrations/080_content_translation_locale_unique.ts +88 -0
  1005. package/src/database/migrations/081_redirect_write_guards.ts +257 -0
  1006. package/src/database/migrations/082_taxonomy_translation_locale_unique.ts +49 -0
  1007. package/src/database/migrations/runner.ts +63 -15
  1008. package/src/database/pg-migration-lock.ts +2 -2
  1009. package/src/database/repositories/byline.ts +9 -0
  1010. package/src/database/repositories/comment.ts +86 -0
  1011. package/src/database/repositories/content.ts +560 -69
  1012. package/src/database/repositories/entry-locks.ts +257 -0
  1013. package/src/database/repositories/media.ts +35 -4
  1014. package/src/database/repositories/menu.ts +1 -0
  1015. package/src/database/repositories/options.ts +113 -7
  1016. package/src/database/repositories/plugin-storage.ts +159 -0
  1017. package/src/database/repositories/redirect.ts +262 -56
  1018. package/src/database/repositories/revision.ts +116 -17
  1019. package/src/database/repositories/taxonomy.ts +42 -0
  1020. package/src/database/repositories/types.ts +5 -0
  1021. package/src/database/types.ts +26 -1
  1022. package/src/datetime-normalization.ts +311 -0
  1023. package/src/db/node-sqlite-compat.ts +3 -2
  1024. package/src/emdash-runtime.ts +1994 -424
  1025. package/src/fields/image.ts +2 -0
  1026. package/src/i18n/config.ts +6 -6
  1027. package/src/i18n/resolve.ts +98 -15
  1028. package/src/index.ts +101 -0
  1029. package/src/loader.ts +49 -4
  1030. package/src/mcp/server.ts +216 -68
  1031. package/src/media/responsive.ts +23 -0
  1032. package/src/media/usage/content-refresh.ts +2 -1
  1033. package/src/media/usage/extractor.ts +50 -15
  1034. package/src/media/usage/types.ts +1 -1
  1035. package/src/menus/index.ts +64 -35
  1036. package/src/migrations/direct-executor.ts +40 -2
  1037. package/src/migrations/index.ts +1 -0
  1038. package/src/migrations/protocol.ts +11 -1
  1039. package/src/page/seo-contributions.ts +78 -1
  1040. package/src/page/seo-panel.ts +47 -0
  1041. package/src/plugin-test-runtime.ts +17 -0
  1042. package/src/plugin-types.ts +128 -21
  1043. package/src/plugins/adapt-sandbox-entry.ts +34 -27
  1044. package/src/plugins/conditional-storage.ts +30 -0
  1045. package/src/plugins/content-access.ts +170 -0
  1046. package/src/plugins/content-policy.ts +74 -0
  1047. package/src/plugins/context.ts +790 -166
  1048. package/src/plugins/cron.ts +18 -10
  1049. package/src/plugins/define-plugin.ts +55 -54
  1050. package/src/plugins/editor-draft.ts +257 -0
  1051. package/src/plugins/hooks.ts +136 -3
  1052. package/src/plugins/host.ts +29 -0
  1053. package/src/plugins/http-route-dispatch.ts +389 -0
  1054. package/src/plugins/http-wire.ts +180 -0
  1055. package/src/plugins/index.ts +97 -3
  1056. package/src/plugins/install-finalization.ts +77 -0
  1057. package/src/plugins/lifecycle.ts +47 -0
  1058. package/src/plugins/manager.ts +5 -2
  1059. package/src/plugins/manifest-schema.ts +314 -58
  1060. package/src/plugins/media.ts +166 -0
  1061. package/src/plugins/request-meta.ts +12 -2
  1062. package/src/plugins/route-wire.ts +304 -0
  1063. package/src/plugins/routes.ts +38 -5
  1064. package/src/plugins/sandbox/index.ts +4 -0
  1065. package/src/plugins/sandbox/proxy.ts +129 -0
  1066. package/src/plugins/sandbox/types.ts +83 -7
  1067. package/src/plugins/secret-redactor.ts +65 -0
  1068. package/src/plugins/settings.ts +303 -0
  1069. package/src/plugins/state.ts +26 -0
  1070. package/src/plugins/storage-query.ts +45 -0
  1071. package/src/plugins/storage-update.ts +96 -0
  1072. package/src/plugins/types.ts +602 -15
  1073. package/src/query.ts +84 -4
  1074. package/src/registry/authoritative-records.ts +26 -0
  1075. package/src/registry/config.ts +182 -31
  1076. package/src/registry/testing.ts +100 -0
  1077. package/src/registry/types.ts +12 -70
  1078. package/src/scheduled-publish.ts +70 -3
  1079. package/src/schema/collection-slugs-cache.ts +157 -0
  1080. package/src/schema/index.ts +1 -0
  1081. package/src/schema/registry.ts +64 -1
  1082. package/src/schema/types.ts +32 -6
  1083. package/src/schema/zod-generator.ts +5 -13
  1084. package/src/search/fts-manager.ts +3 -3
  1085. package/src/search/query.ts +32 -5
  1086. package/src/search/types.ts +8 -0
  1087. package/src/security/ssrf.ts +167 -141
  1088. package/src/seed/apply.ts +41 -3
  1089. package/src/seed/types.ts +13 -3
  1090. package/src/seed/validate.ts +18 -1
  1091. package/src/seo/hreflang.ts +10 -6
  1092. package/src/seo/index.ts +5 -10
  1093. package/src/seo/media-url.ts +26 -0
  1094. package/src/settings/index.ts +53 -11
  1095. package/src/taxonomies/term-counts.ts +22 -5
  1096. package/src/visual-editing/action-token.ts +31 -0
  1097. package/src/visual-editing/toolbar-bootstrap.ts +31 -6
  1098. package/src/visual-editing/toolbar.ts +103 -12
  1099. package/src/widgets/archives.ts +10 -9
  1100. package/src/widgets/index.ts +11 -1
  1101. package/dist/activation-K0kGBWuJ.mjs +0 -382
  1102. package/dist/activation-K0kGBWuJ.mjs.map +0 -1
  1103. package/dist/adapters-BDQwg236.d.mts +0 -171
  1104. package/dist/adapters-BDQwg236.d.mts.map +0 -1
  1105. package/dist/after-CBU2vkoO.mjs +0 -96
  1106. package/dist/after-CBU2vkoO.mjs.map +0 -1
  1107. package/dist/allowed-origins-BGglilcs.mjs +0 -116
  1108. package/dist/allowed-origins-BGglilcs.mjs.map +0 -1
  1109. package/dist/api-Dz6rgoa3.mjs +0 -10040
  1110. package/dist/api-Dz6rgoa3.mjs.map +0 -1
  1111. package/dist/api-tokens-BSsQACNe.mjs +0 -163
  1112. package/dist/api-tokens-BSsQACNe.mjs.map +0 -1
  1113. package/dist/apply-B4SIOxR1.mjs +0 -980
  1114. package/dist/apply-B4SIOxR1.mjs.map +0 -1
  1115. package/dist/authorize-Bkf_UHhD.mjs +0 -40
  1116. package/dist/authorize-Bkf_UHhD.mjs.map +0 -1
  1117. package/dist/backup-rwVAl9NI.mjs +0 -241
  1118. package/dist/backup-rwVAl9NI.mjs.map +0 -1
  1119. package/dist/base64-CvLhUKQv.mjs +0 -63
  1120. package/dist/base64-CvLhUKQv.mjs.map +0 -1
  1121. package/dist/bundle-C8S2Zl6U.mjs +0 -663
  1122. package/dist/bundle-C8S2Zl6U.mjs.map +0 -1
  1123. package/dist/byline-DuhF7NWl.mjs +0 -902
  1124. package/dist/byline-DuhF7NWl.mjs.map +0 -1
  1125. package/dist/byline-fields-BovY4KYM.mjs +0 -123
  1126. package/dist/byline-fields-BovY4KYM.mjs.map +0 -1
  1127. package/dist/byline-registry-Bpu9-MVs.mjs +0 -406
  1128. package/dist/byline-registry-Bpu9-MVs.mjs.map +0 -1
  1129. package/dist/bylines-CJ5nd6Lw.mjs +0 -232
  1130. package/dist/bylines-CJ5nd6Lw.mjs.map +0 -1
  1131. package/dist/bylines-RwBAeOF1.mjs +0 -214
  1132. package/dist/bylines-RwBAeOF1.mjs.map +0 -1
  1133. package/dist/cache-BF5Kvn59.mjs +0 -108
  1134. package/dist/cache-BF5Kvn59.mjs.map +0 -1
  1135. package/dist/capture-triggers-CNW1q3HK.mjs +0 -362
  1136. package/dist/capture-triggers-CNW1q3HK.mjs.map +0 -1
  1137. package/dist/challenge-store-DQN_Yrck.mjs +0 -51
  1138. package/dist/challenge-store-DQN_Yrck.mjs.map +0 -1
  1139. package/dist/chrome-tags-D8fiZG94.mjs +0 -24
  1140. package/dist/chrome-tags-D8fiZG94.mjs.map +0 -1
  1141. package/dist/chunks-C4szrD8o.mjs +0 -25
  1142. package/dist/chunks-C4szrD8o.mjs.map +0 -1
  1143. package/dist/collection-deletion-Bj07NHbj.mjs +0 -436
  1144. package/dist/collection-deletion-Bj07NHbj.mjs.map +0 -1
  1145. package/dist/comment-reaction-BhrvSHml.mjs +0 -85
  1146. package/dist/comment-reaction-BhrvSHml.mjs.map +0 -1
  1147. package/dist/comment-vxOzWbZN.mjs +0 -255
  1148. package/dist/comment-vxOzWbZN.mjs.map +0 -1
  1149. package/dist/comments-Ct4ensnf.mjs +0 -204
  1150. package/dist/comments-Ct4ensnf.mjs.map +0 -1
  1151. package/dist/components-DJbo1z0S.mjs +0 -108
  1152. package/dist/components-DJbo1z0S.mjs.map +0 -1
  1153. package/dist/config-B9eZ340f.d.mts +0 -34
  1154. package/dist/config-B9eZ340f.d.mts.map +0 -1
  1155. package/dist/config-C3EBstHi.mjs +0 -72
  1156. package/dist/config-C3EBstHi.mjs.map +0 -1
  1157. package/dist/config-it29yDLA.mjs +0 -1163
  1158. package/dist/config-it29yDLA.mjs.map +0 -1
  1159. package/dist/content-DjvM0T92.mjs +0 -1725
  1160. package/dist/content-DjvM0T92.mjs.map +0 -1
  1161. package/dist/content-list-query-Btqd4uV2.d.mts +0 -26
  1162. package/dist/content-list-query-Btqd4uV2.d.mts.map +0 -1
  1163. package/dist/content-refresh-Bwp-8yGy.mjs +0 -3588
  1164. package/dist/content-refresh-Bwp-8yGy.mjs.map +0 -1
  1165. package/dist/content-repair-Czdp7jz5.mjs +0 -440
  1166. package/dist/content-repair-Czdp7jz5.mjs.map +0 -1
  1167. package/dist/context-CX6gxOLW.mjs +0 -1068
  1168. package/dist/context-CX6gxOLW.mjs.map +0 -1
  1169. package/dist/cron-C6o7VppJ.mjs +0 -277
  1170. package/dist/cron-C6o7VppJ.mjs.map +0 -1
  1171. package/dist/dashboard-C2kTeeRI.mjs +0 -140
  1172. package/dist/dashboard-C2kTeeRI.mjs.map +0 -1
  1173. package/dist/db-errors-Cl-sKYTm.mjs +0 -55
  1174. package/dist/db-errors-Cl-sKYTm.mjs.map +0 -1
  1175. package/dist/default-Clra32mw.mjs +0 -81
  1176. package/dist/default-Clra32mw.mjs.map +0 -1
  1177. package/dist/deferred-tasks-CvDETTJO.d.mts +0 -9
  1178. package/dist/deferred-tasks-CvDETTJO.d.mts.map +0 -1
  1179. package/dist/dev-typegen-DzOPfsNj.mjs +0 -29
  1180. package/dist/dev-typegen-DzOPfsNj.mjs.map +0 -1
  1181. package/dist/device-flow-D2oCWvLJ.mjs +0 -466
  1182. package/dist/device-flow-D2oCWvLJ.mjs.map +0 -1
  1183. package/dist/dialect-helpers-BSbfaO3F.mjs +0 -202
  1184. package/dist/dialect-helpers-BSbfaO3F.mjs.map +0 -1
  1185. package/dist/direct-executor-Bfa5_ToE.mjs +0 -85
  1186. package/dist/direct-executor-Bfa5_ToE.mjs.map +0 -1
  1187. package/dist/dist-89xCrGqi.mjs +0 -810
  1188. package/dist/dist-89xCrGqi.mjs.map +0 -1
  1189. package/dist/email-console-Dzb6uGYa.mjs +0 -50
  1190. package/dist/email-console-Dzb6uGYa.mjs.map +0 -1
  1191. package/dist/enrich-BX0IDp4z.mjs +0 -194
  1192. package/dist/enrich-BX0IDp4z.mjs.map +0 -1
  1193. package/dist/error-DFrQjppn.mjs +0 -90
  1194. package/dist/error-DFrQjppn.mjs.map +0 -1
  1195. package/dist/errors-DsVoDUjJ.mjs +0 -427
  1196. package/dist/errors-DsVoDUjJ.mjs.map +0 -1
  1197. package/dist/escape-HmHTC1Is.mjs +0 -9
  1198. package/dist/escape-HmHTC1Is.mjs.map +0 -1
  1199. package/dist/field-defs-cache-BM4SIRqH.mjs +0 -77
  1200. package/dist/field-defs-cache-BM4SIRqH.mjs.map +0 -1
  1201. package/dist/focal-point-BeWFo6Xx.mjs +0 -23
  1202. package/dist/focal-point-BeWFo6Xx.mjs.map +0 -1
  1203. package/dist/fts-manager-Do1BlW2r.mjs +0 -413
  1204. package/dist/fts-manager-Do1BlW2r.mjs.map +0 -1
  1205. package/dist/hash-3JJPlHF2.mjs +0 -37
  1206. package/dist/hash-3JJPlHF2.mjs.map +0 -1
  1207. package/dist/hook-result-DCh2WUpe.d.mts +0 -31
  1208. package/dist/hook-result-DCh2WUpe.d.mts.map +0 -1
  1209. package/dist/hreflang-B6hbAuuO.d.mts +0 -48
  1210. package/dist/hreflang-B6hbAuuO.d.mts.map +0 -1
  1211. package/dist/hreflang-DQbPZliA.mjs +0 -102
  1212. package/dist/hreflang-DQbPZliA.mjs.map +0 -1
  1213. package/dist/identity-DksvEazf.mjs +0 -35
  1214. package/dist/identity-DksvEazf.mjs.map +0 -1
  1215. package/dist/import-CJpaBBBT.mjs +0 -2020
  1216. package/dist/import-CJpaBBBT.mjs.map +0 -1
  1217. package/dist/index-BJNMCWmu.d.mts +0 -6562
  1218. package/dist/index-BJNMCWmu.d.mts.map +0 -1
  1219. package/dist/index-Du8K7bWa.d.mts +0 -278
  1220. package/dist/index-Du8K7bWa.d.mts.map +0 -1
  1221. package/dist/init-lock-DJkX6Hto.mjs +0 -56
  1222. package/dist/init-lock-DJkX6Hto.mjs.map +0 -1
  1223. package/dist/load-CawHjTOH.mjs +0 -28
  1224. package/dist/load-CawHjTOH.mjs.map +0 -1
  1225. package/dist/loader-Z8vl7zTq.mjs +0 -966
  1226. package/dist/loader-Z8vl7zTq.mjs.map +0 -1
  1227. package/dist/manifest-builder-COtzuca2.mjs +0 -189
  1228. package/dist/manifest-builder-COtzuca2.mjs.map +0 -1
  1229. package/dist/manifest-schema-BNWwR8Vd.mjs +0 -301
  1230. package/dist/manifest-schema-BNWwR8Vd.mjs.map +0 -1
  1231. package/dist/media-BBm8Wg3f.mjs +0 -318
  1232. package/dist/media-BBm8Wg3f.mjs.map +0 -1
  1233. package/dist/media-BHjus86Y.mjs +0 -464
  1234. package/dist/media-BHjus86Y.mjs.map +0 -1
  1235. package/dist/media-allowlist-CoTBWoDp.mjs +0 -44
  1236. package/dist/media-allowlist-CoTBWoDp.mjs.map +0 -1
  1237. package/dist/media-folders-BGkATs8n.mjs +0 -210
  1238. package/dist/media-folders-BGkATs8n.mjs.map +0 -1
  1239. package/dist/media-upload-BCidR-EY.mjs +0 -147
  1240. package/dist/media-upload-BCidR-EY.mjs.map +0 -1
  1241. package/dist/media-url-DHoPr0hq.mjs +0 -26
  1242. package/dist/media-url-DHoPr0hq.mjs.map +0 -1
  1243. package/dist/media-usage-CdY5jhSR.mjs +0 -1833
  1244. package/dist/media-usage-CdY5jhSR.mjs.map +0 -1
  1245. package/dist/media-usage-activation-BgeMtK5C.mjs +0 -78
  1246. package/dist/media-usage-activation-BgeMtK5C.mjs.map +0 -1
  1247. package/dist/media-usage-work-CnGCdHxx.mjs +0 -152
  1248. package/dist/media-usage-work-CnGCdHxx.mjs.map +0 -1
  1249. package/dist/media-usage-work-D6D9sMCA.mjs +0 -586
  1250. package/dist/media-usage-work-D6D9sMCA.mjs.map +0 -1
  1251. package/dist/media-usage-write-fence-hjeD4u7s.mjs +0 -42
  1252. package/dist/media-usage-write-fence-hjeD4u7s.mjs.map +0 -1
  1253. package/dist/menus-6qSwTNxG.mjs +0 -4010
  1254. package/dist/menus-6qSwTNxG.mjs.map +0 -1
  1255. package/dist/menus-uvPLXMZf.mjs +0 -744
  1256. package/dist/menus-uvPLXMZf.mjs.map +0 -1
  1257. package/dist/mime-CUIG6x84.mjs +0 -36
  1258. package/dist/mime-CUIG6x84.mjs.map +0 -1
  1259. package/dist/mode-DN_WneRx.mjs +0 -23
  1260. package/dist/mode-DN_WneRx.mjs.map +0 -1
  1261. package/dist/node-sqlite-compat-BuJXIeMz.mjs +0 -46
  1262. package/dist/node-sqlite-compat-BuJXIeMz.mjs.map +0 -1
  1263. package/dist/normalize-C2xNjTSG.mjs +0 -191
  1264. package/dist/normalize-C2xNjTSG.mjs.map +0 -1
  1265. package/dist/oauth-authorization-Dj6Kwc21.mjs +0 -274
  1266. package/dist/oauth-authorization-Dj6Kwc21.mjs.map +0 -1
  1267. package/dist/oauth-clients-FD7I0J8m.mjs +0 -266
  1268. package/dist/oauth-clients-FD7I0J8m.mjs.map +0 -1
  1269. package/dist/oauth-state-store-DkmDOmHs.mjs +0 -50
  1270. package/dist/oauth-state-store-DkmDOmHs.mjs.map +0 -1
  1271. package/dist/oauth-user-lookup-CvIwGpYd.mjs +0 -26
  1272. package/dist/oauth-user-lookup-CvIwGpYd.mjs.map +0 -1
  1273. package/dist/object-cache-DVKnyOfy.mjs +0 -534
  1274. package/dist/object-cache-DVKnyOfy.mjs.map +0 -1
  1275. package/dist/options-BHPeIbBd.mjs +0 -117
  1276. package/dist/options-BHPeIbBd.mjs.map +0 -1
  1277. package/dist/options-CYb4y7hM.d.mts +0 -221
  1278. package/dist/options-CYb4y7hM.d.mts.map +0 -1
  1279. package/dist/parse-Ckpg-Qfp.mjs +0 -81
  1280. package/dist/parse-Ckpg-Qfp.mjs.map +0 -1
  1281. package/dist/passkey-config-O_lj3y0k.mjs +0 -46
  1282. package/dist/passkey-config-O_lj3y0k.mjs.map +0 -1
  1283. package/dist/patterns-D9iDO3j8.mjs +0 -145
  1284. package/dist/patterns-D9iDO3j8.mjs.map +0 -1
  1285. package/dist/placeholder-4X9BrRrp.d.mts +0 -306
  1286. package/dist/placeholder-4X9BrRrp.d.mts.map +0 -1
  1287. package/dist/policy-Dhtwntrt.mjs +0 -45
  1288. package/dist/policy-Dhtwntrt.mjs.map +0 -1
  1289. package/dist/portable-text-U85hOafW.mjs +0 -286
  1290. package/dist/portable-text-U85hOafW.mjs.map +0 -1
  1291. package/dist/preview-B_vJLvf8.mjs +0 -107
  1292. package/dist/preview-B_vJLvf8.mjs.map +0 -1
  1293. package/dist/protocol-JdD2YhY9.d.mts +0 -52
  1294. package/dist/protocol-JdD2YhY9.d.mts.map +0 -1
  1295. package/dist/public-url-CarhZJgf.mjs +0 -101
  1296. package/dist/public-url-CarhZJgf.mjs.map +0 -1
  1297. package/dist/query-BZKZcG5b.mjs +0 -881
  1298. package/dist/query-BZKZcG5b.mjs.map +0 -1
  1299. package/dist/query-BndaFxxp.mjs +0 -41
  1300. package/dist/query-BndaFxxp.mjs.map +0 -1
  1301. package/dist/rate-limit-BZmATC6W.mjs +0 -120
  1302. package/dist/rate-limit-BZmATC6W.mjs.map +0 -1
  1303. package/dist/redirect-CZkbozu9.mjs +0 -313
  1304. package/dist/redirect-CZkbozu9.mjs.map +0 -1
  1305. package/dist/redirect-CzqnLxK-.mjs +0 -17
  1306. package/dist/redirect-CzqnLxK-.mjs.map +0 -1
  1307. package/dist/redirects-BLNOWQTn.mjs +0 -1238
  1308. package/dist/redirects-BLNOWQTn.mjs.map +0 -1
  1309. package/dist/redirects-CqzNM0KM.mjs +0 -579
  1310. package/dist/redirects-CqzNM0KM.mjs.map +0 -1
  1311. package/dist/registry-AZAsRsor.mjs +0 -1179
  1312. package/dist/registry-AZAsRsor.mjs.map +0 -1
  1313. package/dist/relation-04DfKRTO.mjs +0 -334
  1314. package/dist/relation-04DfKRTO.mjs.map +0 -1
  1315. package/dist/relations-C4htk5sb.mjs +0 -309
  1316. package/dist/relations-C4htk5sb.mjs.map +0 -1
  1317. package/dist/relations-CcFwDJdJ.mjs +0 -403
  1318. package/dist/relations-CcFwDJdJ.mjs.map +0 -1
  1319. package/dist/relations-DnRK4YIT.d.mts +0 -3354
  1320. package/dist/relations-DnRK4YIT.d.mts.map +0 -1
  1321. package/dist/request-cache-DH9zdCOD.mjs +0 -104
  1322. package/dist/request-cache-DH9zdCOD.mjs.map +0 -1
  1323. package/dist/request-meta-DYxLlnmz.mjs +0 -140
  1324. package/dist/request-meta-DYxLlnmz.mjs.map +0 -1
  1325. package/dist/resolve-prZ3mP7l.mjs +0 -143
  1326. package/dist/resolve-prZ3mP7l.mjs.map +0 -1
  1327. package/dist/runner-BLIDKpmA.mjs +0 -4676
  1328. package/dist/runner-BLIDKpmA.mjs.map +0 -1
  1329. package/dist/runner-YKfIMnaF.d.mts +0 -67
  1330. package/dist/runner-YKfIMnaF.d.mts.map +0 -1
  1331. package/dist/schema-CGnBeLiW.mjs +0 -9
  1332. package/dist/schema-CGnBeLiW.mjs.map +0 -1
  1333. package/dist/schema-DYr-Vd-L.mjs +0 -420
  1334. package/dist/schema-DYr-Vd-L.mjs.map +0 -1
  1335. package/dist/scopes-BhWvBavj.mjs +0 -27
  1336. package/dist/scopes-BhWvBavj.mjs.map +0 -1
  1337. package/dist/search-C-qDk4kx.mjs +0 -439
  1338. package/dist/search-C-qDk4kx.mjs.map +0 -1
  1339. package/dist/secrets-rEtHt-6z.mjs +0 -330
  1340. package/dist/secrets-rEtHt-6z.mjs.map +0 -1
  1341. package/dist/sections-B_nYvlwn.mjs +0 -346
  1342. package/dist/sections-B_nYvlwn.mjs.map +0 -1
  1343. package/dist/seo-926NRIgt.mjs +0 -133
  1344. package/dist/seo-926NRIgt.mjs.map +0 -1
  1345. package/dist/seo-CVWkdv6x.mjs +0 -113
  1346. package/dist/seo-CVWkdv6x.mjs.map +0 -1
  1347. package/dist/service-CJl3ZAYs.mjs +0 -195
  1348. package/dist/service-CJl3ZAYs.mjs.map +0 -1
  1349. package/dist/session-user-BlMgqCHS.mjs +0 -51
  1350. package/dist/session-user-BlMgqCHS.mjs.map +0 -1
  1351. package/dist/settings--wobrkkC.mjs +0 -258
  1352. package/dist/settings--wobrkkC.mjs.map +0 -1
  1353. package/dist/settings-Cwm6o2jY.mjs +0 -51
  1354. package/dist/settings-Cwm6o2jY.mjs.map +0 -1
  1355. package/dist/setup-complete-DQbClIN2.mjs +0 -26
  1356. package/dist/setup-complete-DQbClIN2.mjs.map +0 -1
  1357. package/dist/setup-nonce-DZCFS2sn.mjs +0 -25
  1358. package/dist/setup-nonce-DZCFS2sn.mjs.map +0 -1
  1359. package/dist/single-flight-cache-BPuGPdcN.mjs +0 -104
  1360. package/dist/single-flight-cache-BPuGPdcN.mjs.map +0 -1
  1361. package/dist/site-url-BrxA_E9H.mjs +0 -16
  1362. package/dist/site-url-BrxA_E9H.mjs.map +0 -1
  1363. package/dist/slugify-B994zkXC.mjs +0 -17
  1364. package/dist/slugify-B994zkXC.mjs.map +0 -1
  1365. package/dist/snapshot--OCDTqdb.mjs +0 -216
  1366. package/dist/snapshot--OCDTqdb.mjs.map +0 -1
  1367. package/dist/ssrf-5sIM5jzl.mjs +0 -349
  1368. package/dist/ssrf-5sIM5jzl.mjs.map +0 -1
  1369. package/dist/state-BpFVsJZB.mjs +0 -136
  1370. package/dist/state-BpFVsJZB.mjs.map +0 -1
  1371. package/dist/status-B777-dXz.mjs +0 -30
  1372. package/dist/status-B777-dXz.mjs.map +0 -1
  1373. package/dist/target-BmR0iTwz.mjs +0 -27
  1374. package/dist/target-BmR0iTwz.mjs.map +0 -1
  1375. package/dist/taxonomies-DkAkMupr.mjs +0 -837
  1376. package/dist/taxonomies-DkAkMupr.mjs.map +0 -1
  1377. package/dist/taxonomies-Wfy_Lg12.mjs +0 -698
  1378. package/dist/taxonomies-Wfy_Lg12.mjs.map +0 -1
  1379. package/dist/taxonomy-tJepplLL.mjs +0 -484
  1380. package/dist/taxonomy-tJepplLL.mjs.map +0 -1
  1381. package/dist/tokens-BCO1oruF.mjs +0 -171
  1382. package/dist/tokens-BCO1oruF.mjs.map +0 -1
  1383. package/dist/transaction-0KOpOyMu.mjs +0 -29
  1384. package/dist/transaction-0KOpOyMu.mjs.map +0 -1
  1385. package/dist/transport-Dr3qtwXC.mjs +0 -136
  1386. package/dist/transport-Dr3qtwXC.mjs.map +0 -1
  1387. package/dist/transport-xh6YKW2G.d.mts +0 -42
  1388. package/dist/transport-xh6YKW2G.d.mts.map +0 -1
  1389. package/dist/trusted-proxy-BR5F1Otp.mjs +0 -51
  1390. package/dist/trusted-proxy-BR5F1Otp.mjs.map +0 -1
  1391. package/dist/types-3qNFPlci.mjs +0 -16
  1392. package/dist/types-3qNFPlci.mjs.map +0 -1
  1393. package/dist/types-75KIqzL9.mjs +0 -142
  1394. package/dist/types-75KIqzL9.mjs.map +0 -1
  1395. package/dist/types-B6GrPic4.d.mts +0 -1335
  1396. package/dist/types-B6GrPic4.d.mts.map +0 -1
  1397. package/dist/types-BuHW4xDE.d.mts +0 -259
  1398. package/dist/types-BuHW4xDE.d.mts.map +0 -1
  1399. package/dist/types-C00oyCZp.d.mts +0 -198
  1400. package/dist/types-C00oyCZp.d.mts.map +0 -1
  1401. package/dist/types-CDtkNSFQ.d.mts +0 -75
  1402. package/dist/types-CDtkNSFQ.d.mts.map +0 -1
  1403. package/dist/types-CPeXo1wF.d.mts +0 -124
  1404. package/dist/types-CPeXo1wF.d.mts.map +0 -1
  1405. package/dist/types-CQPWhPxE.mjs +0 -92
  1406. package/dist/types-CQPWhPxE.mjs.map +0 -1
  1407. package/dist/types-CXFkwEGC.d.mts +0 -198
  1408. package/dist/types-CXFkwEGC.d.mts.map +0 -1
  1409. package/dist/types-DM3vioBY.mjs +0 -18
  1410. package/dist/types-DM3vioBY.mjs.map +0 -1
  1411. package/dist/types-DczELMop.d.mts +0 -363
  1412. package/dist/types-DczELMop.d.mts.map +0 -1
  1413. package/dist/types-DfuTR6dL.mjs +0 -3
  1414. package/dist/types-FV23hEoW.d.mts +0 -743
  1415. package/dist/types-FV23hEoW.d.mts.map +0 -1
  1416. package/dist/types-xDMtUFnO.d.mts +0 -257
  1417. package/dist/types-xDMtUFnO.d.mts.map +0 -1
  1418. package/dist/upload-attempts-BsqoQ1fn.mjs +0 -27
  1419. package/dist/upload-attempts-BsqoQ1fn.mjs.map +0 -1
  1420. package/dist/url-pattern-D4c2czpJ.mjs +0 -33
  1421. package/dist/url-pattern-D4c2czpJ.mjs.map +0 -1
  1422. package/dist/user-BTZ40aq6.mjs +0 -171
  1423. package/dist/user-BTZ40aq6.mjs.map +0 -1
  1424. package/dist/utils-BKvNjjhY.mjs +0 -435
  1425. package/dist/utils-BKvNjjhY.mjs.map +0 -1
  1426. package/dist/validate-BpwoDOgt.mjs +0 -120
  1427. package/dist/validate-BpwoDOgt.mjs.map +0 -1
  1428. package/dist/validate-DE_LRwo9.mjs +0 -379
  1429. package/dist/validate-DE_LRwo9.mjs.map +0 -1
  1430. package/dist/validate-DUP27OYD.d.mts +0 -400
  1431. package/dist/validate-DUP27OYD.d.mts.map +0 -1
  1432. package/dist/validation-BMImFJ11.mjs +0 -153
  1433. package/dist/validation-BMImFJ11.mjs.map +0 -1
  1434. package/dist/version-Bii3suaO.mjs +0 -7
  1435. package/dist/version-Bii3suaO.mjs.map +0 -1
  1436. package/dist/widgets-D3gJ10xU.mjs +0 -122
  1437. package/dist/widgets-D3gJ10xU.mjs.map +0 -1
  1438. package/dist/wxr-taxonomies-B2Og_6rU.d.mts +0 -34
  1439. package/dist/wxr-taxonomies-B2Og_6rU.d.mts.map +0 -1
  1440. package/dist/wxr-taxonomies-Cxngsjwo.mjs +0 -406
  1441. package/dist/wxr-taxonomies-Cxngsjwo.mjs.map +0 -1
  1442. package/dist/zod-generator-BuYSQJB7.mjs +0 -331
  1443. package/dist/zod-generator-BuYSQJB7.mjs.map +0 -1
  1444. /package/dist/{api-tokens-BfYts-sq.mjs → api-tokens-DS1VzN7_.mjs} +0 -0
  1445. /package/dist/{ssrf-Dg3cIT-b.mjs → ssrf-BRpTDMV6.mjs} +0 -0
@@ -1,1238 +0,0 @@
1
- import { i as MAX_COLLECTION_LIST_COLUMNS } from "./types-75KIqzL9.mjs";
2
- import { t as SQL_BATCH_SIZE } from "./chunks-C4szrD8o.mjs";
3
- import { t as SEARCH_TOKENIZERS } from "./types-DM3vioBY.mjs";
4
- import { Ct as slugPattern, St as roleLevel, gt as cursorPaginationQuery, vt as httpUrl, yt as localeCode } from "./media-BHjus86Y.mjs";
5
- import { t as compileUrlPattern } from "./url-pattern-D4c2czpJ.mjs";
6
- import { n as isTerminalStatus, t as REDIRECT_RULE_STATUSES } from "./status-B777-dXz.mjs";
7
- import { z } from "zod";
8
-
9
- //#region src/api/schemas/bylines.ts
10
- /** Slug pattern: lowercase letters, digits, and hyphens; must start with a letter */
11
- const bylineSlugPattern = /^[a-z][a-z0-9-]*$/;
12
- const bylineSummarySchema = z.object({
13
- id: z.string(),
14
- slug: z.string(),
15
- displayName: z.string(),
16
- bio: z.string().nullable(),
17
- avatarMediaId: z.string().nullable(),
18
- avatarStorageKey: z.string().nullish(),
19
- avatarAlt: z.string().nullish(),
20
- avatarBlurhash: z.string().nullish(),
21
- avatarDominantColor: z.string().nullish(),
22
- websiteUrl: z.string().nullable(),
23
- userId: z.string().nullable(),
24
- isGuest: z.boolean(),
25
- createdAt: z.string(),
26
- updatedAt: z.string(),
27
- locale: z.string(),
28
- translationGroup: z.string().nullable(),
29
- customFields: z.record(z.string(), z.union([
30
- z.string(),
31
- z.boolean(),
32
- z.null()
33
- ])).optional()
34
- }).meta({ id: "BylineSummary" });
35
- const bylineCreditSchema = z.object({
36
- byline: bylineSummarySchema,
37
- sortOrder: z.number().int(),
38
- roleLabel: z.string().nullable(),
39
- source: z.enum(["explicit", "inferred"]).optional().meta({ description: "Whether this credit was explicitly assigned or inferred from authorId" })
40
- }).meta({ id: "BylineCredit" });
41
- const contentBylineInputSchema = z.object({
42
- bylineId: z.string().min(1),
43
- roleLabel: z.string().nullish()
44
- }).meta({ id: "ContentBylineInput" });
45
- const bylinesListQuery = cursorPaginationQuery.extend({
46
- search: z.string().optional(),
47
- isGuest: z.coerce.boolean().optional(),
48
- userId: z.string().optional(),
49
- locale: localeCode.optional()
50
- }).meta({ id: "BylinesListQuery" });
51
- const bylineCreateBody = z.object({
52
- slug: z.string().min(1).regex(bylineSlugPattern, "Slug must contain only lowercase letters, digits, and hyphens"),
53
- displayName: z.string().min(1),
54
- bio: z.string().nullish(),
55
- avatarMediaId: z.string().nullish(),
56
- websiteUrl: httpUrl.nullish(),
57
- userId: z.string().nullish(),
58
- isGuest: z.boolean().optional(),
59
- locale: localeCode.optional(),
60
- translationOf: z.string().min(1).optional(),
61
- customFields: z.record(z.string(), z.unknown()).optional()
62
- }).meta({ id: "BylineCreateBody" });
63
- const bylineTranslationCreateBody = z.object({
64
- locale: localeCode,
65
- slug: z.string().min(1).regex(bylineSlugPattern, "Slug must contain only lowercase letters, digits, and hyphens").optional(),
66
- displayName: z.string().min(1).optional(),
67
- bio: z.string().nullish(),
68
- avatarMediaId: z.string().nullish(),
69
- websiteUrl: httpUrl.nullish()
70
- }).meta({ id: "BylineTranslationCreateBody" });
71
- const bylineTranslationsResponseSchema = z.object({ items: z.array(bylineSummarySchema) }).meta({ id: "BylineTranslationsResponse" });
72
- const bylineUpdateBody = z.object({
73
- slug: z.string().min(1).regex(bylineSlugPattern, "Slug must contain only lowercase letters, digits, and hyphens").optional(),
74
- displayName: z.string().min(1).optional(),
75
- bio: z.string().nullish(),
76
- avatarMediaId: z.string().nullish(),
77
- websiteUrl: httpUrl.nullish(),
78
- userId: z.string().nullish(),
79
- isGuest: z.boolean().optional(),
80
- customFields: z.record(z.string(), z.unknown()).optional()
81
- }).meta({ id: "BylineUpdateBody" });
82
- const bylineListResponseSchema = z.object({
83
- items: z.array(bylineSummarySchema),
84
- nextCursor: z.string().optional()
85
- }).meta({ id: "BylineListResponse" });
86
-
87
- //#endregion
88
- //#region src/api/schemas/content.ts
89
- const contentDateTime = z.iso.datetime({
90
- offset: true,
91
- message: "must be an ISO 8601 datetime"
92
- }).or(z.iso.datetime({
93
- offset: true,
94
- precision: -1,
95
- message: "must be an ISO 8601 datetime"
96
- }));
97
- /** SEO input — per-content meta fields */
98
- const contentSeoInput = z.object({
99
- title: z.string().max(200).nullish(),
100
- description: z.string().max(500).nullish(),
101
- image: z.string().nullish(),
102
- canonical: httpUrl.nullish(),
103
- noIndex: z.boolean().optional()
104
- }).meta({ id: "ContentSeoInput" });
105
- /** ISO 8601 date or datetime bound for the content-list date range filter. */
106
- const contentDateBound = z.union([contentDateTime, z.iso.date({ message: "must be an ISO 8601 date" })]).optional();
107
- /**
108
- * Byline ids for the content-list filter: either the literal `none` or a
109
- * comma-separated list, parsed into an array.
110
- *
111
- * The 25-id cap keeps the `IN (...)` clause clear of D1's bound-parameter
112
- * ceiling once the rest of the list query's placeholders are counted
113
- * (`SQL_BATCH_SIZE` is 50 for a query binding nothing else).
114
- */
115
- const bylineFilterParam = z.string().trim().min(1).max(2e3).optional().transform((value) => value === void 0 ? void 0 : value === "none" ? "none" : [...new Set(value.split(",").map((id) => id.trim()))].filter((id) => id.length > 0)).refine((value) => value === void 0 || value === "none" || value.length <= 25, { message: "at most 25 bylines may be selected" }).refine((value) => value === void 0 || value === "none" || value.length > 0, { message: "must contain at least one byline id" });
116
- /** Query-string boolean. Explicit values only — `z.coerce.boolean()` reads "false" as true. */
117
- const booleanParam = z.enum([
118
- "1",
119
- "0",
120
- "true",
121
- "false"
122
- ]).optional().transform((value) => value === "1" || value === "true");
123
- const contentFieldComparable = z.union([z.string().max(2048), z.number()]);
124
- const contentFieldFilterScalar = z.union([
125
- contentFieldComparable,
126
- z.boolean(),
127
- z.null()
128
- ]);
129
- const contentFieldFilterValue = z.union([
130
- contentFieldFilterScalar,
131
- z.object({ in: z.array(z.union([contentFieldComparable, z.boolean()])).min(1).max(SQL_BATCH_SIZE) }).strict(),
132
- z.object({
133
- gt: contentFieldComparable.optional(),
134
- gte: contentFieldComparable.optional(),
135
- lt: contentFieldComparable.optional(),
136
- lte: contentFieldComparable.optional()
137
- }).strict().refine((value) => Object.values(value).some((bound) => bound !== void 0), { message: "Range filter must include at least one bound" })
138
- ]);
139
- function contentFieldFilterOperandCount(value) {
140
- if (value === null) return 0;
141
- if (!value || typeof value !== "object" || Array.isArray(value)) return 1;
142
- if ("in" in value && Array.isArray(value.in)) return value.in.length;
143
- return Object.values(value).filter((bound) => bound !== void 0).length;
144
- }
145
- /** AND-combined filters over custom fields explicitly marked as indexed. */
146
- const contentFieldFiltersSchema = z.record(z.string().max(128).regex(/^[a-z][a-z0-9_]*$/, "must be a safe field identifier"), contentFieldFilterValue).refine((filters) => Object.keys(filters).length <= 20, { message: "At most 20 indexed field filters are allowed" }).refine((filters) => Object.values(filters).reduce((total, value) => total + contentFieldFilterOperandCount(value), 0) <= SQL_BATCH_SIZE, { message: `Indexed field filters have a total operand budget of ${SQL_BATCH_SIZE}` });
147
- const contentFieldFiltersQuery = z.string().max(8192).transform((value, ctx) => {
148
- try {
149
- return JSON.parse(value);
150
- } catch {
151
- ctx.addIssue({
152
- code: "custom",
153
- message: "must be valid JSON"
154
- });
155
- return z.NEVER;
156
- }
157
- }).pipe(contentFieldFiltersSchema);
158
- const contentListQuery = cursorPaginationQuery.extend({
159
- status: z.string().optional(),
160
- orderBy: z.string().optional(),
161
- order: z.enum(["asc", "desc"]).optional(),
162
- locale: localeCode.optional(),
163
- q: z.string().trim().min(1).max(200).optional(),
164
- authorId: z.string().min(1).max(64).optional(),
165
- dateField: z.enum([
166
- "createdAt",
167
- "updatedAt",
168
- "publishedAt"
169
- ]).optional(),
170
- dateFrom: contentDateBound,
171
- dateTo: contentDateBound,
172
- bylines: bylineFilterParam,
173
- includeInferredBylines: booleanParam,
174
- fieldFilters: contentFieldFiltersQuery.optional()
175
- }).transform(({ bylines, ...rest }) => ({
176
- ...rest,
177
- bylinesNone: bylines === "none",
178
- bylines: bylines === "none" ? void 0 : bylines
179
- })).meta({ id: "ContentListQuery" });
180
- /** ISO 8601 datetime for `publishedAt` / `createdAt`. Routes gate writes behind `content:publish_any`. */
181
- const contentDateOverride = contentDateTime.nullish();
182
- const contentCreateBody = z.object({
183
- data: z.record(z.string(), z.unknown()),
184
- slug: z.string().nullish(),
185
- status: z.enum(["draft"]).optional(),
186
- bylines: z.array(contentBylineInputSchema).optional(),
187
- locale: localeCode.optional(),
188
- translationOf: z.string().optional(),
189
- seo: contentSeoInput.optional(),
190
- taxonomies: z.record(z.string(), z.array(z.string())).optional().meta({ description: "Taxonomy term assignments as { taxonomyName: [termSlug, ...] }, resolved in the entry's locale." }),
191
- publishedAt: contentDateOverride,
192
- createdAt: contentDateOverride
193
- }).meta({ id: "ContentCreateBody" });
194
- const contentUpdateBody = z.object({
195
- data: z.record(z.string(), z.unknown()).optional(),
196
- slug: z.string().nullish(),
197
- status: z.enum(["draft"]).optional(),
198
- authorId: z.string().nullish(),
199
- bylines: z.array(contentBylineInputSchema).optional(),
200
- _rev: z.string().optional().meta({ description: "Opaque revision token for optimistic concurrency" }),
201
- skipRevision: z.boolean().optional(),
202
- seo: contentSeoInput.optional(),
203
- taxonomies: z.record(z.string(), z.array(z.string())).optional().meta({ description: "Replace taxonomy assignments as { taxonomyName: [termSlug, ...] }. Only named taxonomies are touched; pass an empty array to clear a taxonomy." }),
204
- publishedAt: contentDateOverride
205
- }).meta({ id: "ContentUpdateBody" });
206
- const contentScheduleBody = z.object({ scheduledAt: z.string().min(1, "scheduledAt is required").meta({
207
- description: "ISO 8601 datetime for scheduled publishing",
208
- examples: ["2025-06-15T09:00:00Z"]
209
- }) }).meta({ id: "ContentScheduleBody" });
210
- const contentRevisionConditionBody = z.object({ _rev: z.string().optional().meta({ description: "Opaque revision token for optimistic concurrency" }) });
211
- const contentPublishBody = contentRevisionConditionBody.extend({ publishedAt: contentDateTime.optional().meta({ description: "Optional ISO 8601 datetime to backdate the publish (e.g. when migrating content). Requires content:publish_any permission. Without this, existing published_at is preserved on re-publish." }) }).meta({ id: "ContentPublishBody" });
212
- const contentPreviewUrlBody = z.object({
213
- expiresIn: z.union([z.string(), z.number()]).optional(),
214
- pathPattern: z.string().optional()
215
- }).meta({ id: "ContentPreviewUrlBody" });
216
- const contentTermsBody = z.object({ termIds: z.array(z.string()) }).meta({ id: "ContentTermsBody" });
217
- /** A single term variant returned as part of an entry's term assignments. */
218
- const contentEntryTermSchema = z.object({
219
- id: z.string(),
220
- name: z.string().meta({ description: "Taxonomy name" }),
221
- slug: z.string(),
222
- label: z.string(),
223
- parentId: z.string().nullable(),
224
- locale: localeCode,
225
- translationGroup: z.string().nullable()
226
- }).meta({ id: "ContentEntryTerm" });
227
- /** Term assignments response for the content terms endpoint. */
228
- const contentTermsResponseSchema = z.object({
229
- terms: z.array(contentEntryTermSchema),
230
- unresolved: z.array(z.object({
231
- translationGroup: z.string(),
232
- availableLocales: z.array(localeCode),
233
- translations: z.array(z.object({
234
- id: z.string(),
235
- slug: z.string(),
236
- locale: localeCode
237
- }))
238
- })),
239
- entryLocale: localeCode,
240
- defaultLocale: localeCode,
241
- implicitDefaultLocale: z.boolean()
242
- }).meta({ id: "ContentTermsResponse" });
243
- const contentTrashQuery = cursorPaginationQuery.extend({ locale: localeCode.optional().meta({ description: "Restrict the trash listing to entries in this locale" }) }).meta({ id: "ContentTrashQuery" });
244
- /** SEO metadata on a content item */
245
- const contentSeoSchema = z.object({
246
- title: z.string().nullable(),
247
- description: z.string().nullable(),
248
- image: z.string().nullable(),
249
- canonical: z.string().nullable(),
250
- noIndex: z.boolean()
251
- }).meta({ id: "ContentSeo" });
252
- /** A single content item as returned by the API */
253
- const contentItemSchema = z.object({
254
- id: z.string(),
255
- type: z.string().meta({ description: "Collection slug this item belongs to" }),
256
- slug: z.string().nullable(),
257
- status: z.string().meta({ description: "draft, published, or scheduled" }),
258
- data: z.record(z.string(), z.unknown()).meta({ description: "User-defined field values" }),
259
- authorId: z.string().nullable(),
260
- primaryBylineId: z.string().nullable(),
261
- byline: bylineSummarySchema.nullable().optional(),
262
- bylines: z.array(bylineCreditSchema).optional(),
263
- createdAt: z.string(),
264
- updatedAt: z.string(),
265
- publishedAt: z.string().nullable(),
266
- scheduledAt: z.string().nullable(),
267
- liveRevisionId: z.string().nullable(),
268
- draftRevisionId: z.string().nullable(),
269
- version: z.number().int(),
270
- locale: z.string().nullable(),
271
- translationGroup: z.string().nullable(),
272
- seo: contentSeoSchema.optional()
273
- }).meta({ id: "ContentItem" });
274
- /** Response for single content item endpoints (get, create, update) */
275
- const contentResponseSchema = z.object({
276
- item: contentItemSchema,
277
- _rev: z.string().optional().meta({ description: "Opaque revision token for optimistic concurrency" })
278
- }).meta({ id: "ContentResponse" });
279
- /** Response for content list endpoints */
280
- const contentListResponseSchema = z.object({
281
- items: z.array(contentItemSchema),
282
- nextCursor: z.string().optional(),
283
- total: z.number().int().nonnegative().optional()
284
- }).meta({ id: "ContentListResponse" });
285
- /** A distinct content author for the admin author filter */
286
- const contentAuthorSchema = z.object({
287
- id: z.string(),
288
- name: z.string().nullable(),
289
- email: z.string(),
290
- avatarUrl: z.string().nullable()
291
- }).meta({ id: "ContentAuthor" });
292
- /** Response for the content authors endpoint */
293
- const contentAuthorsResponseSchema = z.object({ items: z.array(contentAuthorSchema) }).meta({ id: "ContentAuthorsResponse" });
294
- /** Trashed content item */
295
- const trashedContentItemSchema = z.object({
296
- id: z.string(),
297
- type: z.string(),
298
- slug: z.string().nullable(),
299
- status: z.string(),
300
- locale: z.string().nullable(),
301
- translationGroup: z.string().nullable(),
302
- data: z.record(z.string(), z.unknown()),
303
- authorId: z.string().nullable(),
304
- createdAt: z.string(),
305
- updatedAt: z.string(),
306
- publishedAt: z.string().nullable(),
307
- deletedAt: z.string()
308
- }).meta({ id: "TrashedContentItem" });
309
- /** Response for trashed content list */
310
- const trashedContentListResponseSchema = z.object({
311
- items: z.array(trashedContentItemSchema),
312
- nextCursor: z.string().optional()
313
- }).meta({ id: "TrashedContentListResponse" });
314
- /** Response for content compare (live vs draft) */
315
- const contentCompareResponseSchema = z.object({
316
- hasChanges: z.boolean(),
317
- live: z.record(z.string(), z.unknown()).nullable(),
318
- draft: z.record(z.string(), z.unknown()).nullable()
319
- }).meta({ id: "ContentCompareResponse" });
320
- /** Translation summary for a content item */
321
- const contentTranslationSchema = z.object({
322
- id: z.string(),
323
- locale: z.string().nullable(),
324
- slug: z.string().nullable(),
325
- status: z.string(),
326
- updatedAt: z.string()
327
- });
328
- /** Response for content translations endpoint */
329
- const contentTranslationsResponseSchema = z.object({
330
- translationGroup: z.string(),
331
- translations: z.array(contentTranslationSchema)
332
- }).meta({ id: "ContentTranslationsResponse" });
333
-
334
- //#endregion
335
- //#region src/api/schemas/schema.ts
336
- const collectionSupportValues = z.enum([
337
- "drafts",
338
- "revisions",
339
- "preview",
340
- "scheduling",
341
- "search",
342
- "seo"
343
- ]);
344
- const collectionSourcePattern = /^(template:.+|import:.+|manual|discovered|seed)$/;
345
- const collectionListColumns = z.array(z.string().min(1).max(63).regex(slugPattern, "Invalid field slug format"));
346
- const collectionAdminInputConfig = z.object({ listColumns: collectionListColumns.max(MAX_COLLECTION_LIST_COLUMNS, `At most ${MAX_COLLECTION_LIST_COLUMNS} list columns are allowed`).optional() });
347
- const collectionAdminResponseConfig = z.object({ listColumns: collectionListColumns.optional() });
348
- const fieldTypeValues = z.enum([
349
- "string",
350
- "text",
351
- "url",
352
- "number",
353
- "integer",
354
- "boolean",
355
- "datetime",
356
- "select",
357
- "multiSelect",
358
- "portableText",
359
- "image",
360
- "file",
361
- "reference",
362
- "json",
363
- "slug",
364
- "repeater"
365
- ]);
366
- const repeaterSubFieldSchema = z.object({
367
- slug: z.string().min(1).max(63).regex(slugPattern, "Invalid slug format"),
368
- type: z.enum([
369
- "string",
370
- "text",
371
- "url",
372
- "number",
373
- "integer",
374
- "boolean",
375
- "datetime",
376
- "select",
377
- "image"
378
- ]),
379
- label: z.string().min(1),
380
- required: z.boolean().optional(),
381
- options: z.array(z.string()).optional()
382
- });
383
- const urlPatternValue = z.string().superRefine((pattern, ctx) => {
384
- try {
385
- compileUrlPattern(pattern);
386
- } catch {
387
- ctx.addIssue({
388
- code: "custom",
389
- message: "Invalid URL pattern"
390
- });
391
- }
392
- });
393
- const fieldValidation = z.object({
394
- required: z.boolean().optional(),
395
- min: z.number().optional(),
396
- max: z.number().optional(),
397
- minLength: z.number().int().min(0).optional(),
398
- maxLength: z.number().int().min(0).optional(),
399
- pattern: z.string().optional(),
400
- options: z.array(z.string()).optional(),
401
- subFields: z.array(repeaterSubFieldSchema).min(1).optional(),
402
- minItems: z.number().int().min(0).optional(),
403
- maxItems: z.number().int().min(1).optional(),
404
- allowedMimeTypes: z.array(z.string().regex(/^[a-z0-9][a-z0-9!#$&^_+\-.]*\/[a-z0-9!#$&^_+\-.]*$/i, "Invalid MIME type")).min(1, "allowedMimeTypes must not be empty — omit the field to allow all types").max(64, "allowedMimeTypes may contain at most 64 entries").optional()
405
- }).superRefine((validation, ctx) => {
406
- for (const [minimum, maximum] of [
407
- ["min", "max"],
408
- ["minLength", "maxLength"],
409
- ["minItems", "maxItems"]
410
- ]) {
411
- const minimumValue = validation[minimum];
412
- const maximumValue = validation[maximum];
413
- if (minimumValue !== void 0 && maximumValue !== void 0 && minimumValue > maximumValue) ctx.addIssue({
414
- code: "custom",
415
- path: [maximum],
416
- message: `${maximum} must be greater than or equal to ${minimum}`
417
- });
418
- }
419
- if (validation.pattern !== void 0) try {
420
- RegExp(validation.pattern);
421
- } catch {
422
- ctx.addIssue({
423
- code: "custom",
424
- path: ["pattern"],
425
- message: "Invalid validation pattern"
426
- });
427
- }
428
- }).optional();
429
- const fieldWidgetOptions = z.record(z.string(), z.unknown()).optional();
430
- const createCollectionBody = z.object({
431
- slug: z.string().min(1).max(63).regex(slugPattern, "Invalid slug format"),
432
- label: z.string().min(1),
433
- labelSingular: z.string().optional(),
434
- description: z.string().optional(),
435
- icon: z.string().optional(),
436
- admin: collectionAdminInputConfig.optional(),
437
- supports: z.array(collectionSupportValues).optional(),
438
- source: z.string().regex(collectionSourcePattern).optional(),
439
- urlPattern: urlPatternValue.optional(),
440
- routable: z.boolean().optional(),
441
- hasSeo: z.boolean().optional(),
442
- hidden: z.boolean().optional(),
443
- sortOrder: z.number().int().nullish()
444
- }).meta({ id: "CreateCollectionBody" });
445
- const updateCollectionBody = z.object({
446
- label: z.string().min(1).optional(),
447
- labelSingular: z.string().optional(),
448
- description: z.string().optional(),
449
- icon: z.string().optional(),
450
- admin: collectionAdminInputConfig.optional(),
451
- supports: z.array(collectionSupportValues).optional(),
452
- urlPattern: urlPatternValue.nullish(),
453
- routable: z.boolean().optional(),
454
- hasSeo: z.boolean().optional(),
455
- hidden: z.boolean().optional(),
456
- sortOrder: z.number().int().nullish(),
457
- commentsEnabled: z.boolean().optional(),
458
- commentsModeration: z.enum([
459
- "all",
460
- "first_time",
461
- "none"
462
- ]).optional(),
463
- commentsClosedAfterDays: z.number().int().min(0).optional(),
464
- commentsAutoApproveUsers: z.boolean().optional(),
465
- titleField: z.string().min(1).max(63).regex(slugPattern, "Invalid field slug format").nullish(),
466
- dateField: z.string().min(1).max(63).regex(slugPattern, "Invalid field slug format").nullish()
467
- }).meta({ id: "UpdateCollectionBody" });
468
- const createFieldBody = z.object({
469
- slug: z.string().min(1).max(63).regex(slugPattern, "Invalid slug format"),
470
- label: z.string().min(1),
471
- type: fieldTypeValues,
472
- required: z.boolean().optional(),
473
- unique: z.boolean().optional(),
474
- defaultValue: z.unknown().optional(),
475
- validation: fieldValidation.nullable(),
476
- widget: z.string().optional(),
477
- options: fieldWidgetOptions,
478
- sortOrder: z.number().int().min(0).optional(),
479
- searchable: z.boolean().optional(),
480
- indexed: z.boolean().optional(),
481
- translatable: z.boolean().optional()
482
- }).meta({ id: "CreateFieldBody" });
483
- const updateFieldBody = z.object({
484
- label: z.string().min(1).optional(),
485
- type: fieldTypeValues.optional(),
486
- required: z.boolean().optional(),
487
- unique: z.boolean().optional(),
488
- defaultValue: z.unknown().optional(),
489
- validation: fieldValidation.nullable(),
490
- widget: z.string().optional(),
491
- options: fieldWidgetOptions,
492
- sortOrder: z.number().int().min(0).optional(),
493
- searchable: z.boolean().optional(),
494
- indexed: z.boolean().optional(),
495
- translatable: z.boolean().optional()
496
- }).meta({ id: "UpdateFieldBody" });
497
- const fieldReorderBody = z.object({ fieldSlugs: z.array(z.string().min(1)) }).meta({ id: "FieldReorderBody" });
498
- const collectionReorderBody = z.object({ slugs: z.array(z.string().min(1)) }).meta({ id: "CollectionReorderBody" });
499
- const orphanRegisterBody = z.object({
500
- label: z.string().optional(),
501
- labelSingular: z.string().optional(),
502
- description: z.string().optional()
503
- }).meta({ id: "OrphanRegisterBody" });
504
- const schemaExportQuery = z.object({ format: z.string().optional() });
505
- const collectionGetQuery = z.object({ includeFields: z.string().transform((v) => v === "true").optional() });
506
- const collectionSchema = z.object({
507
- id: z.string(),
508
- slug: z.string(),
509
- label: z.string(),
510
- labelSingular: z.string().nullable(),
511
- description: z.string().nullable(),
512
- icon: z.string().nullable(),
513
- admin: collectionAdminResponseConfig.optional(),
514
- supports: z.array(z.string()),
515
- source: z.string().nullable(),
516
- urlPattern: z.string().nullable(),
517
- routable: z.boolean(),
518
- hasSeo: z.boolean(),
519
- hidden: z.boolean(),
520
- sortOrder: z.number().int().nullable(),
521
- createdAt: z.string(),
522
- updatedAt: z.string(),
523
- titleField: z.string().nullish(),
524
- dateField: z.string().nullish()
525
- }).meta({ id: "Collection" });
526
- const fieldSchema = z.object({
527
- id: z.string(),
528
- collectionId: z.string(),
529
- slug: z.string(),
530
- label: z.string(),
531
- type: fieldTypeValues,
532
- required: z.boolean(),
533
- unique: z.boolean(),
534
- defaultValue: z.unknown().nullable(),
535
- validation: z.record(z.string(), z.unknown()).nullable(),
536
- widget: z.string().nullable(),
537
- options: z.record(z.string(), z.unknown()).nullable(),
538
- sortOrder: z.number().int(),
539
- searchable: z.boolean(),
540
- indexed: z.boolean(),
541
- translatable: z.boolean(),
542
- createdAt: z.string(),
543
- updatedAt: z.string()
544
- }).meta({ id: "Field" });
545
- const collectionResponseSchema = z.object({ item: collectionSchema }).meta({ id: "CollectionResponse" });
546
- const collectionWithFieldsResponseSchema = z.object({ item: collectionSchema.extend({ fields: z.array(fieldSchema) }) }).meta({ id: "CollectionWithFieldsResponse" });
547
- const collectionListResponseSchema = z.object({ items: z.array(collectionSchema) }).meta({ id: "CollectionListResponse" });
548
- const fieldResponseSchema = z.object({ item: fieldSchema }).meta({ id: "FieldResponse" });
549
- const fieldListResponseSchema = z.object({ items: z.array(fieldSchema) }).meta({ id: "FieldListResponse" });
550
- const orphanedTableSchema = z.object({
551
- slug: z.string(),
552
- tableName: z.string(),
553
- rowCount: z.number().int()
554
- }).meta({ id: "OrphanedTable" });
555
- const orphanedTableListResponseSchema = z.object({ items: z.array(orphanedTableSchema) }).meta({ id: "OrphanedTableListResponse" });
556
-
557
- //#endregion
558
- //#region src/api/schemas/comments.ts
559
- const createCommentBody = z.object({
560
- authorName: z.string().min(1).max(100),
561
- authorEmail: z.email(),
562
- body: z.string().min(1).max(5e3),
563
- parentId: z.string().optional(),
564
- website_url: z.string().optional(),
565
- turnstileToken: z.string().max(2048).optional()
566
- }).meta({ id: "CreateCommentBody" });
567
- const createReactionBody = z.object({
568
- commentId: z.string().min(1),
569
- reaction: z.string().min(1).max(20).default("like"),
570
- website_url: z.string().optional()
571
- }).meta({ id: "CreateReactionBody" });
572
- const commentStatusBody = z.object({ status: z.enum([
573
- "approved",
574
- "pending",
575
- "spam",
576
- "trash"
577
- ]) }).meta({ id: "CommentStatusBody" });
578
- const commentBulkBody = z.object({
579
- ids: z.array(z.string().min(1)).min(1).max(100),
580
- action: z.enum([
581
- "approve",
582
- "spam",
583
- "trash",
584
- "delete"
585
- ])
586
- }).meta({ id: "CommentBulkBody" });
587
- const commentListQuery = z.object({
588
- status: z.enum([
589
- "pending",
590
- "approved",
591
- "spam",
592
- "trash"
593
- ]).optional(),
594
- collection: z.string().optional(),
595
- search: z.string().optional(),
596
- limit: z.coerce.number().int().min(1).max(100).optional().default(50),
597
- cursor: z.string().max(2048).optional()
598
- }).meta({ id: "CommentListQuery" });
599
- const commentStatusValues = z.enum([
600
- "pending",
601
- "approved",
602
- "spam",
603
- "trash"
604
- ]);
605
- /**
606
- * Public-facing comment (no email/IP).
607
- *
608
- * `replies` is recursive in practice (each reply can have replies), but we
609
- * model it as a single level here to avoid circular type inference issues
610
- * with tsgo. OpenAPI consumers should treat replies as the same shape.
611
- */
612
- const publicCommentSchema = z.object({
613
- id: z.string(),
614
- authorName: z.string(),
615
- isRegisteredUser: z.boolean(),
616
- body: z.string(),
617
- parentId: z.string().nullable(),
618
- createdAt: z.string(),
619
- replies: z.array(z.any()).optional()
620
- }).meta({ id: "PublicComment" });
621
- /** Admin comment with full details */
622
- const commentSchema = z.object({
623
- id: z.string(),
624
- collection: z.string(),
625
- contentId: z.string(),
626
- authorName: z.string(),
627
- authorEmail: z.string(),
628
- body: z.string(),
629
- status: commentStatusValues,
630
- parentId: z.string().nullable(),
631
- ipHash: z.string().nullable(),
632
- createdAt: z.string(),
633
- updatedAt: z.string()
634
- }).meta({ id: "Comment" });
635
- const publicCommentListResponseSchema = z.object({
636
- items: z.array(publicCommentSchema),
637
- nextCursor: z.string().optional(),
638
- total: z.number().int()
639
- }).meta({ id: "PublicCommentListResponse" });
640
- const adminCommentListResponseSchema = z.object({
641
- items: z.array(commentSchema),
642
- nextCursor: z.string().optional()
643
- }).meta({ id: "AdminCommentListResponse" });
644
- const commentCountsResponseSchema = z.object({
645
- pending: z.number().int(),
646
- approved: z.number().int(),
647
- spam: z.number().int(),
648
- trash: z.number().int()
649
- }).meta({ id: "CommentCountsResponse" });
650
- const commentBulkResponseSchema = z.object({ affected: z.number().int() }).meta({ id: "CommentBulkResponse" });
651
-
652
- //#endregion
653
- //#region src/utils/url.ts
654
- /**
655
- * URL scheme validation utilities
656
- *
657
- * Prevents XSS via dangerous URL schemes (javascript:, data:, vbscript:, etc.)
658
- * by allowlisting known-safe schemes before rendering into href attributes.
659
- */
660
- /**
661
- * Matches URLs that are safe to render in href attributes.
662
- *
663
- * Allowed:
664
- * - http:// and https://
665
- * - mailto: and tel:
666
- * - Relative paths (starting with /)
667
- * - Fragment links (starting with #)
668
- * - Protocol-relative URLs are NOT allowed (starting with //) as they can
669
- * redirect to attacker-controlled hosts.
670
- */
671
- const SAFE_URL_SCHEME_RE = /^(https?:|mailto:|tel:|\/(?!\/)|#)/i;
672
- /**
673
- * Returns the URL unchanged if it uses a safe scheme, otherwise returns "#".
674
- *
675
- * Use this at the render layer as the primary defense against XSS via
676
- * dangerous URL schemes like `javascript:`, `data:`, or `vbscript:`.
677
- *
678
- * @example
679
- * ```ts
680
- * sanitizeHref("https://example.com") // "https://example.com"
681
- * sanitizeHref("/about") // "/about"
682
- * sanitizeHref("#section") // "#section"
683
- * sanitizeHref("mailto:a@b.com") // "mailto:a@b.com"
684
- * sanitizeHref("javascript:alert(1)") // "#"
685
- * sanitizeHref("data:text/html,<script>") // "#"
686
- * sanitizeHref("") // "#"
687
- * ```
688
- */
689
- function sanitizeHref(url) {
690
- if (!url) return "#";
691
- return SAFE_URL_SCHEME_RE.test(url) ? url : "#";
692
- }
693
- /**
694
- * Returns true if the URL uses a safe scheme for rendering in href attributes.
695
- */
696
- function isSafeHref(url) {
697
- return SAFE_URL_SCHEME_RE.test(url);
698
- }
699
-
700
- //#endregion
701
- //#region src/api/schemas/menus.ts
702
- /**
703
- * Allowed menu item types. `custom` uses `customUrl`; the others resolve a URL
704
- * from `referenceCollection` + `referenceId` (a translation_group id).
705
- */
706
- const menuItemTypeEnum = z.enum([
707
- "custom",
708
- "page",
709
- "post",
710
- "taxonomy",
711
- "collection"
712
- ]);
713
- const safeHref = z.string().trim().refine(isSafeHref, "URL must use http, https, mailto, tel, a relative path, or a fragment identifier");
714
- const createMenuBody = z.object({
715
- name: z.string().min(1),
716
- label: z.string().min(1),
717
- locale: localeCode.optional(),
718
- translationOf: z.string().min(1).optional()
719
- }).strict().meta({ id: "CreateMenuBody" });
720
- const updateMenuBody = z.object({ label: z.string().min(1).optional() }).strict().meta({ id: "UpdateMenuBody" });
721
- const createMenuItemBody = z.object({
722
- type: menuItemTypeEnum,
723
- label: z.string().min(1),
724
- referenceCollection: z.string().optional(),
725
- referenceId: z.string().optional(),
726
- customUrl: safeHref.optional(),
727
- target: z.string().optional(),
728
- titleAttr: z.string().optional(),
729
- cssClasses: z.string().optional(),
730
- parentId: z.string().optional(),
731
- sortOrder: z.number().int().min(0).optional()
732
- }).strict().meta({ id: "CreateMenuItemBody" });
733
- const updateMenuItemBody = z.object({
734
- label: z.string().min(1).optional(),
735
- customUrl: safeHref.optional(),
736
- target: z.string().optional(),
737
- titleAttr: z.string().optional(),
738
- cssClasses: z.string().optional(),
739
- parentId: z.string().nullish(),
740
- sortOrder: z.number().int().min(0).optional()
741
- }).strict().meta({ id: "UpdateMenuItemBody" });
742
- const reorderMenuItemsBody = z.object({ items: z.array(z.object({
743
- id: z.string().min(1),
744
- parentId: z.string().nullable(),
745
- sortOrder: z.number().int().min(0)
746
- })) }).meta({ id: "ReorderMenuItemsBody" });
747
- const menuSchema = z.object({
748
- id: z.string(),
749
- name: z.string(),
750
- label: z.string(),
751
- createdAt: z.string(),
752
- updatedAt: z.string(),
753
- locale: z.string(),
754
- translationGroup: z.string().nullable()
755
- }).meta({ id: "Menu" });
756
- const menuItemSchema = z.object({
757
- id: z.string(),
758
- menuId: z.string(),
759
- parentId: z.string().nullable(),
760
- sortOrder: z.number().int(),
761
- type: z.string(),
762
- referenceCollection: z.string().nullable(),
763
- referenceId: z.string().nullable(),
764
- customUrl: z.string().nullable(),
765
- label: z.string(),
766
- titleAttr: z.string().nullable(),
767
- target: z.string().nullable(),
768
- cssClasses: z.string().nullable(),
769
- createdAt: z.string(),
770
- locale: z.string(),
771
- translationGroup: z.string().nullable()
772
- }).meta({ id: "MenuItem" });
773
- const menuTranslationsSchema = z.object({
774
- translationGroup: z.string().nullable(),
775
- translations: z.array(z.object({
776
- id: z.string(),
777
- name: z.string(),
778
- label: z.string(),
779
- locale: z.string(),
780
- updatedAt: z.string()
781
- }))
782
- }).meta({ id: "MenuTranslations" });
783
- const menuListItemSchema = menuSchema.extend({ itemCount: z.number().int() }).meta({ id: "MenuListItem" });
784
- const menuWithItemsSchema = menuSchema.extend({ items: z.array(menuItemSchema) }).meta({ id: "MenuWithItems" });
785
-
786
- //#endregion
787
- //#region src/api/schemas/taxonomies.ts
788
- const collectionSlug = z.string().min(1).max(63).regex(/^[a-z][a-z0-9_]*$/, "Invalid collection slug format");
789
- const createTaxonomyDefBody = z.object({
790
- name: z.string().min(1).max(63).regex(/^[a-z][a-z0-9_]*$/, "Name must be lowercase alphanumeric with underscores"),
791
- label: z.string().min(1).max(200),
792
- labelSingular: z.string().min(1).max(200).optional(),
793
- hierarchical: z.boolean().optional(),
794
- collections: z.array(collectionSlug).max(100).optional(),
795
- locale: localeCode.optional(),
796
- translationOf: z.string().min(1).optional()
797
- }).meta({ id: "CreateTaxonomyDefBody" });
798
- /**
799
- * `name` and `locale` are absent on purpose: both identify the definition row
800
- * being written, and `.strict()` turns an attempt to change either into a 400
801
- * rather than a silently ignored field.
802
- */
803
- const updateTaxonomyDefBody = z.object({
804
- label: z.string().min(1).max(200).optional(),
805
- labelSingular: z.string().min(1).max(200).nullish(),
806
- hierarchical: z.boolean().optional(),
807
- collections: z.array(collectionSlug).max(100).optional()
808
- }).strict().meta({ id: "UpdateTaxonomyDefBody" });
809
- const createTermBody = z.object({
810
- slug: z.string().min(1).optional().meta({ description: "Term slug. Omit to derive a unique slug from the label." }),
811
- label: z.string().min(1),
812
- parentId: z.string().nullish(),
813
- description: z.string().optional(),
814
- locale: localeCode.optional(),
815
- translationOf: z.string().min(1).optional()
816
- }).meta({ id: "CreateTermBody" });
817
- const updateTermBody = z.object({
818
- slug: z.string().min(1).optional(),
819
- label: z.string().min(1).optional(),
820
- parentId: z.string().nullish(),
821
- description: z.string().optional()
822
- }).meta({ id: "UpdateTermBody" });
823
- const reorderTermsBody = z.object({
824
- parentId: z.string().min(1).nullish().meta({ description: "Parent term whose children are being ordered (translation_group or row id). Omit or null for the top level, which for a flat taxonomy is every term." }),
825
- ids: z.array(z.string().min(1)).max(100).meta({ description: "Terms to move, in the desired order — each a row id or translation_group. May be a subset of the group: the listed terms are permuted within the positions they already occupy and every other member keeps its place. An id outside the group is rejected with REORDER_MISMATCH." })
826
- }).strict().meta({ id: "ReorderTermsBody" });
827
- const termListQuery = z.object({
828
- locale: localeCode.optional(),
829
- includeCounts: z.enum(["true", "false"]).transform((v) => v === "true").optional().default(true).meta({ description: "Include each term's visible-usage count. Pass false to skip the aggregate; `count` is then absent from every term." }),
830
- resolveFallback: z.enum(["true", "false"]).transform((value) => value === "true").optional().default(false).meta({ description: "Resolve one term per translation group, preferring the requested locale and then the configured default locale." })
831
- }).meta({ id: "TermListQuery" });
832
- const taxonomyDefSchema = z.object({
833
- id: z.string(),
834
- name: z.string(),
835
- label: z.string(),
836
- labelSingular: z.string().optional(),
837
- hierarchical: z.boolean(),
838
- collections: z.array(z.string()),
839
- locale: z.string(),
840
- translationGroup: z.string().nullable()
841
- }).meta({ id: "TaxonomyDef" });
842
- const taxonomyDefTranslationsSchema = z.object({
843
- translationGroup: z.string().nullable(),
844
- translations: z.array(z.object({
845
- id: z.string(),
846
- name: z.string(),
847
- label: z.string(),
848
- locale: z.string()
849
- }))
850
- }).meta({ id: "TaxonomyDefTranslations" });
851
- const taxonomyListResponseSchema = z.object({ taxonomies: z.array(taxonomyDefSchema) }).meta({ id: "TaxonomyListResponse" });
852
- const taxonomyResponseSchema = z.object({ taxonomy: taxonomyDefSchema }).meta({ id: "TaxonomyResponse" });
853
- const termSchema = z.object({
854
- id: z.string(),
855
- name: z.string(),
856
- slug: z.string(),
857
- label: z.string(),
858
- parentId: z.string().nullable(),
859
- description: z.string().optional(),
860
- locale: z.string(),
861
- translationGroup: z.string().nullable()
862
- }).meta({ id: "Term" });
863
- const termTranslationsSchema = z.object({
864
- translationGroup: z.string().nullable(),
865
- translations: z.array(z.object({
866
- id: z.string(),
867
- slug: z.string(),
868
- label: z.string(),
869
- locale: z.string()
870
- }))
871
- }).meta({ id: "TermTranslations" });
872
- const termWithCountSchema = z.object({
873
- id: z.string(),
874
- name: z.string(),
875
- slug: z.string(),
876
- label: z.string(),
877
- parentId: z.string().nullable(),
878
- description: z.string().optional(),
879
- count: z.number().int().optional(),
880
- children: z.array(z.lazy(() => termWithCountSchema)),
881
- locale: z.string(),
882
- translationGroup: z.string().nullable()
883
- }).meta({ id: "TermWithCount" });
884
- const termListResponseSchema = z.object({ terms: z.array(termWithCountSchema) }).meta({ id: "TermListResponse" });
885
- const termResponseSchema = z.object({ term: termSchema }).meta({ id: "TermResponse" });
886
- const termReorderResponseSchema = z.object({ reordered: z.literal(true) }).meta({ id: "TermReorderResponse" });
887
- const termGetResponseSchema = z.object({ term: termSchema.extend({
888
- count: z.number().int(),
889
- children: z.array(z.object({
890
- id: z.string(),
891
- slug: z.string(),
892
- label: z.string()
893
- }))
894
- }) }).meta({ id: "TermGetResponse" });
895
-
896
- //#endregion
897
- //#region src/api/schemas/sections.ts
898
- const sectionSource = z.enum([
899
- "theme",
900
- "user",
901
- "import"
902
- ]);
903
- const sectionsListQuery = z.object({
904
- source: sectionSource.optional(),
905
- search: z.string().optional(),
906
- limit: z.coerce.number().int().min(1).max(100).optional().default(50),
907
- cursor: z.string().max(2048).optional()
908
- }).meta({ id: "SectionsListQuery" });
909
- const createSectionBody = z.object({
910
- slug: z.string().min(1),
911
- title: z.string().min(1),
912
- description: z.string().optional(),
913
- keywords: z.array(z.string()).optional(),
914
- content: z.array(z.record(z.string(), z.unknown())),
915
- previewMediaId: z.string().optional(),
916
- source: z.enum(["user", "import"]).optional(),
917
- themeId: z.string().optional()
918
- }).meta({ id: "CreateSectionBody" });
919
- const updateSectionBody = z.object({
920
- slug: z.string().min(1).optional(),
921
- title: z.string().min(1).optional(),
922
- description: z.string().optional(),
923
- keywords: z.array(z.string()).optional(),
924
- content: z.array(z.record(z.string(), z.unknown())).optional(),
925
- previewMediaId: z.string().nullish()
926
- }).meta({ id: "UpdateSectionBody" });
927
- const sectionSchema = z.object({
928
- id: z.string(),
929
- slug: z.string(),
930
- title: z.string(),
931
- description: z.string().nullable(),
932
- keywords: z.array(z.string()).nullable(),
933
- content: z.array(z.record(z.string(), z.unknown())),
934
- previewMediaId: z.string().nullable(),
935
- source: z.string(),
936
- themeId: z.string().nullable(),
937
- createdAt: z.string(),
938
- updatedAt: z.string()
939
- }).meta({ id: "Section" });
940
- const sectionListResponseSchema = z.object({
941
- items: z.array(sectionSchema),
942
- nextCursor: z.string().optional()
943
- }).meta({ id: "SectionListResponse" });
944
-
945
- //#endregion
946
- //#region src/api/schemas/settings.ts
947
- const mediaReferenceInput = z.object({
948
- mediaId: z.string(),
949
- alt: z.string().optional()
950
- });
951
- const socialSettings = z.object({
952
- twitter: z.string().optional(),
953
- github: z.string().optional(),
954
- facebook: z.string().optional(),
955
- instagram: z.string().optional(),
956
- linkedin: z.string().optional(),
957
- youtube: z.string().optional()
958
- });
959
- const seoSettingsInput = z.object({
960
- titleSeparator: z.string().max(10).optional(),
961
- defaultOgImage: mediaReferenceInput.optional(),
962
- robotsTxt: z.string().max(5e3).optional(),
963
- googleVerification: z.string().max(100).optional(),
964
- bingVerification: z.string().max(100).optional()
965
- });
966
- const settingsUpdateBody = z.object({
967
- title: z.string().optional(),
968
- tagline: z.string().optional(),
969
- logo: mediaReferenceInput.optional(),
970
- favicon: mediaReferenceInput.optional(),
971
- url: z.union([httpUrl, z.literal("")]).optional(),
972
- postsPerPage: z.number().int().min(1).max(100).optional(),
973
- dateFormat: z.string().optional(),
974
- timezone: z.string().optional(),
975
- social: socialSettings.optional(),
976
- seo: seoSettingsInput.optional()
977
- }).meta({ id: "SettingsUpdateBody" });
978
- const mediaReferenceResponse = z.object({
979
- mediaId: z.string(),
980
- alt: z.string().optional(),
981
- url: z.string().optional(),
982
- contentType: z.string().optional(),
983
- width: z.number().int().optional(),
984
- height: z.number().int().optional()
985
- });
986
- const seoSettingsResponse = z.object({
987
- titleSeparator: z.string().max(10).optional(),
988
- defaultOgImage: mediaReferenceResponse.optional(),
989
- robotsTxt: z.string().max(5e3).optional(),
990
- googleVerification: z.string().max(100).optional(),
991
- bingVerification: z.string().max(100).optional()
992
- });
993
- const siteSettingsSchema = z.object({
994
- title: z.string().optional(),
995
- tagline: z.string().optional(),
996
- logo: mediaReferenceResponse.optional(),
997
- favicon: mediaReferenceResponse.optional(),
998
- url: z.string().optional(),
999
- postsPerPage: z.number().int().optional(),
1000
- dateFormat: z.string().optional(),
1001
- timezone: z.string().optional(),
1002
- social: socialSettings.optional(),
1003
- seo: seoSettingsResponse.optional()
1004
- }).meta({ id: "SiteSettings" });
1005
-
1006
- //#endregion
1007
- //#region src/api/schemas/search.ts
1008
- const searchQuery = z.object({
1009
- q: z.string().min(1),
1010
- collections: z.string().optional(),
1011
- status: z.string().optional(),
1012
- locale: localeCode.optional(),
1013
- limit: z.coerce.number().int().min(1).max(100).optional(),
1014
- cursor: z.string().optional()
1015
- }).meta({ id: "SearchQuery" });
1016
- const searchSuggestQuery = z.object({
1017
- q: z.string().min(1),
1018
- collections: z.string().optional(),
1019
- locale: localeCode.optional(),
1020
- limit: z.coerce.number().int().min(1).max(20).optional()
1021
- }).meta({ id: "SearchSuggestQuery" });
1022
- const searchRebuildBody = z.object({ collection: z.string().min(1) }).meta({ id: "SearchRebuildBody" });
1023
- const searchEnableBody = z.object({
1024
- collection: z.string().min(1),
1025
- enabled: z.boolean(),
1026
- weights: z.record(z.string(), z.number()).optional(),
1027
- tokenize: z.enum(SEARCH_TOKENIZERS).optional()
1028
- }).meta({ id: "SearchEnableBody" });
1029
- const searchResultSchema = z.object({
1030
- collection: z.string(),
1031
- id: z.string(),
1032
- slug: z.string().nullable(),
1033
- locale: z.string(),
1034
- title: z.string().optional(),
1035
- snippet: z.string().optional(),
1036
- score: z.number()
1037
- }).meta({ id: "SearchResult" });
1038
- const searchResponseSchema = z.object({
1039
- items: z.array(searchResultSchema),
1040
- nextCursor: z.string().optional()
1041
- }).meta({ id: "SearchResponse" });
1042
-
1043
- //#endregion
1044
- //#region src/api/schemas/users.ts
1045
- const usersListQuery = z.object({
1046
- search: z.string().optional(),
1047
- role: z.string().optional(),
1048
- cursor: z.string().max(2048).optional(),
1049
- limit: z.coerce.number().int().min(1).max(100).optional().default(50)
1050
- }).meta({ id: "UsersListQuery" });
1051
- const userUpdateBody = z.object({
1052
- name: z.string().optional(),
1053
- email: z.email().optional(),
1054
- role: roleLevel.optional()
1055
- }).meta({ id: "UserUpdateBody" });
1056
- const allowedDomainCreateBody = z.object({
1057
- domain: z.string().min(1),
1058
- defaultRole: roleLevel
1059
- }).meta({ id: "AllowedDomainCreateBody" });
1060
- const allowedDomainUpdateBody = z.object({
1061
- enabled: z.boolean().optional(),
1062
- defaultRole: roleLevel.optional()
1063
- }).meta({ id: "AllowedDomainUpdateBody" });
1064
- const userSchema = z.object({
1065
- id: z.string(),
1066
- email: z.string(),
1067
- name: z.string().nullable(),
1068
- avatarUrl: z.string().nullable(),
1069
- role: z.number().int(),
1070
- emailVerified: z.boolean(),
1071
- disabled: z.boolean(),
1072
- createdAt: z.string(),
1073
- updatedAt: z.string(),
1074
- lastLogin: z.string().nullable(),
1075
- credentialCount: z.number().int().optional(),
1076
- oauthProviders: z.array(z.string()).optional()
1077
- }).meta({ id: "User" });
1078
- const userListResponseSchema = z.object({
1079
- items: z.array(userSchema),
1080
- nextCursor: z.string().optional()
1081
- }).meta({ id: "UserListResponse" });
1082
- const userDetailSchema = z.object({
1083
- id: z.string(),
1084
- email: z.string(),
1085
- name: z.string().nullable(),
1086
- avatarUrl: z.string().nullable(),
1087
- role: z.number().int(),
1088
- emailVerified: z.boolean(),
1089
- disabled: z.boolean(),
1090
- createdAt: z.string(),
1091
- updatedAt: z.string(),
1092
- lastLogin: z.string().nullable(),
1093
- credentials: z.array(z.object({
1094
- id: z.string(),
1095
- name: z.string().nullable(),
1096
- deviceType: z.string().nullable(),
1097
- createdAt: z.string(),
1098
- lastUsedAt: z.string()
1099
- })),
1100
- oauthAccounts: z.array(z.object({
1101
- provider: z.string(),
1102
- createdAt: z.string()
1103
- }))
1104
- }).meta({ id: "UserDetail" });
1105
-
1106
- //#endregion
1107
- //#region src/api/schemas/widgets.ts
1108
- const widgetType = z.enum([
1109
- "content",
1110
- "menu",
1111
- "component"
1112
- ]);
1113
- const createWidgetAreaBody = z.object({
1114
- name: z.string().min(1),
1115
- label: z.string().min(1),
1116
- description: z.string().optional()
1117
- }).meta({ id: "CreateWidgetAreaBody" });
1118
- const createWidgetBody = z.object({
1119
- type: widgetType,
1120
- title: z.string().optional(),
1121
- content: z.array(z.record(z.string(), z.unknown())).optional(),
1122
- menuName: z.string().optional(),
1123
- componentId: z.string().optional(),
1124
- componentProps: z.record(z.string(), z.unknown()).optional()
1125
- }).meta({ id: "CreateWidgetBody" });
1126
- const updateWidgetBody = z.object({
1127
- type: widgetType.optional(),
1128
- title: z.string().optional(),
1129
- content: z.array(z.record(z.string(), z.unknown())).optional(),
1130
- menuName: z.string().optional(),
1131
- componentId: z.string().optional(),
1132
- componentProps: z.record(z.string(), z.unknown()).optional()
1133
- }).meta({ id: "UpdateWidgetBody" });
1134
- const reorderWidgetsBody = z.object({ widgetIds: z.array(z.string().min(1)) }).meta({ id: "ReorderWidgetsBody" });
1135
- const widgetAreaSchema = z.object({
1136
- id: z.string(),
1137
- name: z.string(),
1138
- label: z.string(),
1139
- description: z.string().nullable(),
1140
- created_at: z.string(),
1141
- updated_at: z.string()
1142
- }).meta({ id: "WidgetArea" });
1143
- const widgetSchema = z.object({
1144
- id: z.string(),
1145
- type: widgetType,
1146
- title: z.string().optional(),
1147
- content: z.array(z.record(z.string(), z.unknown())).optional(),
1148
- menuName: z.string().optional(),
1149
- componentId: z.string().optional(),
1150
- componentProps: z.record(z.string(), z.unknown()).optional()
1151
- }).meta({ id: "Widget" });
1152
- const widgetAreaWithWidgetsSchema = widgetAreaSchema.extend({ widgets: z.array(widgetSchema) }).meta({ id: "WidgetAreaWithWidgets" });
1153
- const widgetAreaWithWidgetsAndCountSchema = widgetAreaWithWidgetsSchema.extend({ widgetCount: z.number().int() }).meta({ id: "WidgetAreaWithWidgetsAndCount" });
1154
-
1155
- //#endregion
1156
- //#region src/api/schemas/redirects.ts
1157
- const redirectType = z.coerce.number().int().refine((n) => REDIRECT_RULE_STATUSES.includes(n), { message: "Redirect type must be 301, 302, 307, 308, 410, or 451" });
1158
- /** Matches CR or LF characters */
1159
- const CRLF = /[\r\n]/;
1160
- /** Path must start with / and not be protocol-relative, contain no CRLF, and no path traversal */
1161
- const urlPath = z.string().min(1).refine((s) => s.startsWith("/") && !s.startsWith("//"), { message: "Must be a path starting with / (no protocol-relative URLs)" }).refine((s) => !CRLF.test(s), { message: "URL must not contain newline characters" }).refine((s) => {
1162
- try {
1163
- return !decodeURIComponent(s).split("/").includes("..");
1164
- } catch {
1165
- return false;
1166
- }
1167
- }, { message: "URL must not contain path traversal segments" });
1168
- const createRedirectBody = z.object({
1169
- source: urlPath,
1170
- destination: z.union([urlPath, z.literal("")]).optional(),
1171
- type: redirectType.optional().default(301),
1172
- enabled: z.boolean().optional().default(true),
1173
- groupName: z.string().nullish()
1174
- }).refine((o) => isTerminalStatus(o.type ?? 301) || !!o.destination, {
1175
- message: "destination is required for redirect types (301, 302, 307, 308)",
1176
- path: ["destination"]
1177
- }).meta({ id: "CreateRedirectBody" });
1178
- const updateRedirectBody = z.object({
1179
- source: urlPath.optional(),
1180
- destination: z.union([urlPath, z.literal("")]).optional(),
1181
- type: redirectType.optional(),
1182
- enabled: z.boolean().optional(),
1183
- groupName: z.string().nullish()
1184
- }).refine((o) => Object.values(o).some((v) => v !== void 0), { message: "At least one field must be provided" }).meta({ id: "UpdateRedirectBody" });
1185
- const redirectsListQuery = cursorPaginationQuery.extend({
1186
- search: z.string().optional(),
1187
- group: z.string().optional(),
1188
- enabled: z.enum(["true", "false"]).transform((v) => v === "true").optional(),
1189
- auto: z.enum(["true", "false"]).transform((v) => v === "true").optional()
1190
- }).meta({ id: "RedirectsListQuery" });
1191
- const notFoundListQuery = cursorPaginationQuery.extend({ search: z.string().optional() }).meta({ id: "NotFoundListQuery" });
1192
- const notFoundSummaryQuery = z.object({ limit: z.coerce.number().int().min(1).max(100).optional().default(50) });
1193
- const notFoundPruneBody = z.object({ olderThan: z.iso.datetime({ message: "olderThan must be an ISO 8601 datetime" }).or(z.iso.datetime({
1194
- precision: -1,
1195
- message: "olderThan must be an ISO 8601 datetime"
1196
- })) }).meta({ id: "NotFoundPruneBody" });
1197
- const redirectSchema = z.object({
1198
- id: z.string(),
1199
- source: z.string(),
1200
- destination: z.string(),
1201
- type: z.number().int(),
1202
- isPattern: z.boolean(),
1203
- enabled: z.boolean(),
1204
- hits: z.number().int(),
1205
- lastHitAt: z.string().nullable(),
1206
- groupName: z.string().nullable(),
1207
- auto: z.boolean(),
1208
- createdAt: z.string(),
1209
- updatedAt: z.string()
1210
- }).meta({ id: "Redirect" });
1211
- const redirectListResponseSchema = z.object({
1212
- items: z.array(redirectSchema),
1213
- nextCursor: z.string().optional(),
1214
- loopRedirectIds: z.array(z.string()).optional()
1215
- }).meta({ id: "RedirectListResponse" });
1216
- const notFoundEntrySchema = z.object({
1217
- id: z.string(),
1218
- path: z.string(),
1219
- referrer: z.string().nullable(),
1220
- userAgent: z.string().nullable(),
1221
- ip: z.string().nullable(),
1222
- createdAt: z.string()
1223
- }).meta({ id: "NotFoundEntry" });
1224
- const notFoundListResponseSchema = z.object({
1225
- items: z.array(notFoundEntrySchema),
1226
- nextCursor: z.string().optional()
1227
- }).meta({ id: "NotFoundListResponse" });
1228
- const notFoundSummarySchema = z.object({
1229
- path: z.string(),
1230
- count: z.number().int(),
1231
- lastSeen: z.string(),
1232
- topReferrer: z.string().nullable()
1233
- }).meta({ id: "NotFoundSummary" });
1234
- const notFoundSummaryResponseSchema = z.object({ items: z.array(notFoundSummarySchema) }).meta({ id: "NotFoundSummaryResponse" });
1235
-
1236
- //#endregion
1237
- export { termSchema as $, contentListResponseSchema as $t, searchRebuildBody as A, collectionReorderBody as At, updateSectionBody as B, orphanRegisterBody as Bt, userDetailSchema as C, contentBylineInputSchema as Cn, commentStatusBody as Ct, usersListQuery as D, publicCommentSchema as Dt, userUpdateBody as E, publicCommentListResponseSchema as Et, siteSettingsSchema as F, createFieldBody as Ft, taxonomyDefTranslationsSchema as G, updateFieldBody as Gt, createTermBody as H, orphanedTableSchema as Ht, createSectionBody as I, fieldListResponseSchema as It, termGetResponseSchema as J, contentCompareResponseSchema as Jt, taxonomyListResponseSchema as K, contentAuthorSchema as Kt, sectionListResponseSchema as L, fieldReorderBody as Lt, searchResultSchema as M, collectionSchema as Mt, searchSuggestQuery as N, collectionWithFieldsResponseSchema as Nt, searchEnableBody as O, collectionGetQuery as Ot, settingsUpdateBody as P, createCollectionBody as Pt, termResponseSchema as Q, contentListQuery as Qt, sectionSchema as R, fieldResponseSchema as Rt, allowedDomainUpdateBody as S, bylinesListQuery as Sn, commentSchema as St, userSchema as T, createReactionBody as Tt, reorderTermsBody as U, schemaExportQuery as Ut, createTaxonomyDefBody as V, orphanedTableListResponseSchema as Vt, taxonomyDefSchema as W, updateCollectionBody as Wt, termListResponseSchema as X, contentFieldFiltersSchema as Xt, termListQuery as Y, contentCreateBody as Yt, termReorderResponseSchema as Z, contentItemSchema as Zt, widgetAreaSchema as _, bylineListResponseSchema as _n, adminCommentListResponseSchema as _t, notFoundPruneBody as a, contentSeoInput as an, createMenuItemBody as at, widgetSchema as b, bylineTranslationsResponseSchema as bn, commentCountsResponseSchema as bt, notFoundSummarySchema as c, contentTermsResponseSchema as cn, menuListItemSchema as ct, redirectsListQuery as d, contentTrashQuery as dn, menuWithItemsSchema as dt, contentPreviewUrlBody as en, termTranslationsSchema as et, updateRedirectBody as f, contentUpdateBody as fn, reorderMenuItemsBody as ft, updateWidgetBody as g, bylineCreditSchema as gn, sanitizeHref as gt, reorderWidgetsBody as h, bylineCreateBody as hn, isSafeHref as ht, notFoundListResponseSchema as i, contentScheduleBody as in, createMenuBody as it, searchResponseSchema as j, collectionResponseSchema as jt, searchQuery as k, collectionListResponseSchema as kt, redirectListResponseSchema as l, contentTranslationSchema as ln, menuSchema as lt, createWidgetBody as m, trashedContentListResponseSchema as mn, updateMenuItemBody as mt, notFoundEntrySchema as n, contentResponseSchema as nn, updateTaxonomyDefBody as nt, notFoundSummaryQuery as o, contentSeoSchema as on, menuItemSchema as ot, createWidgetAreaBody as p, trashedContentItemSchema as pn, updateMenuBody as pt, taxonomyResponseSchema as q, contentAuthorsResponseSchema as qt, notFoundListQuery as r, contentRevisionConditionBody as rn, updateTermBody as rt, notFoundSummaryResponseSchema as s, contentTermsBody as sn, menuItemTypeEnum as st, createRedirectBody as t, contentPublishBody as tn, termWithCountSchema as tt, redirectSchema as u, contentTranslationsResponseSchema as un, menuTranslationsSchema as ut, widgetAreaWithWidgetsAndCountSchema as v, bylineSummarySchema as vn, commentBulkBody as vt, userListResponseSchema as w, createCommentBody as wt, allowedDomainCreateBody as x, bylineUpdateBody as xn, commentListQuery as xt, widgetAreaWithWidgetsSchema as y, bylineTranslationCreateBody as yn, commentBulkResponseSchema as yt, sectionsListQuery as z, fieldSchema as zt };
1238
- //# sourceMappingURL=redirects-BLNOWQTn.mjs.map