emdash 0.40.0 → 0.41.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 (1258) hide show
  1. package/dist/action-token-CbKDcPJi.mjs +26 -0
  2. package/dist/action-token-CbKDcPJi.mjs.map +1 -0
  3. package/dist/activation-PtniBLt9.mjs +382 -0
  4. package/dist/activation-PtniBLt9.mjs.map +1 -0
  5. package/dist/adapters-C_Tf5x90.d.mts +171 -0
  6. package/dist/adapters-C_Tf5x90.d.mts.map +1 -0
  7. package/dist/allowed-origins-U1z4TdEZ.mjs +116 -0
  8. package/dist/allowed-origins-U1z4TdEZ.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +4 -4
  10. package/dist/api/route-utils.mjs +46 -45
  11. package/dist/api/route-utils.mjs.map +1 -1
  12. package/dist/api/schemas/index.d.mts +2 -2
  13. package/dist/api/schemas/index.mjs +10 -10
  14. package/dist/api-CXwQkV_m.mjs +5122 -0
  15. package/dist/api-CXwQkV_m.mjs.map +1 -0
  16. package/dist/api-tokens-89WlohEN.mjs +166 -0
  17. package/dist/api-tokens-89WlohEN.mjs.map +1 -0
  18. package/dist/apply-Do3KNnUk.mjs +1659 -0
  19. package/dist/apply-Do3KNnUk.mjs.map +1 -0
  20. package/dist/approvals-CAX9Yw33.mjs +460 -0
  21. package/dist/approvals-CAX9Yw33.mjs.map +1 -0
  22. package/dist/artifact-fetch-B9W4CEST.mjs +659 -0
  23. package/dist/artifact-fetch-B9W4CEST.mjs.map +1 -0
  24. package/dist/astro/index.d.mts +14 -14
  25. package/dist/astro/index.mjs +26 -30
  26. package/dist/astro/index.mjs.map +1 -1
  27. package/dist/astro/middleware/auth.d.mts +12 -12
  28. package/dist/astro/middleware/auth.mjs +10 -10
  29. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  30. package/dist/astro/middleware/redirect.mjs +7 -7
  31. package/dist/astro/middleware/request-context.mjs +3 -3
  32. package/dist/astro/middleware/setup.mjs +1 -1
  33. package/dist/astro/middleware.d.mts +12 -12
  34. package/dist/astro/middleware.d.mts.map +1 -1
  35. package/dist/astro/middleware.mjs +110 -106
  36. package/dist/astro/middleware.mjs.map +1 -1
  37. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +14 -14
  38. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +14 -14
  39. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -6
  40. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
  41. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +7 -7
  42. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +17 -17
  43. package/dist/astro/routes/api/admin/byline-fields/index.mjs +17 -17
  44. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +17 -17
  45. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +23 -23
  46. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +23 -23
  47. package/dist/astro/routes/api/admin/bylines/index.mjs +23 -23
  48. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +18 -18
  49. package/dist/astro/routes/api/admin/comments/_id_.mjs +7 -7
  50. package/dist/astro/routes/api/admin/comments/bulk.mjs +17 -17
  51. package/dist/astro/routes/api/admin/comments/counts.mjs +7 -7
  52. package/dist/astro/routes/api/admin/comments/index.mjs +17 -17
  53. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  54. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  55. package/dist/astro/routes/api/admin/media-usage/activation.mjs +20 -20
  56. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +22 -22
  57. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +22 -22
  58. package/dist/astro/routes/api/admin/media-usage/progress.mjs +25 -25
  59. package/dist/astro/routes/api/admin/media-usage/repair.mjs +31 -31
  60. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +22 -22
  61. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +22 -22
  62. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  63. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  64. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  65. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  66. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +72 -68
  67. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  68. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
  69. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +71 -67
  70. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  71. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +72 -68
  72. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  73. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +82 -78
  74. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  75. package/dist/astro/routes/api/admin/plugins/index.mjs +72 -68
  76. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  77. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +5 -5
  78. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -67
  79. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  80. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +81 -77
  81. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  82. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -67
  83. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  84. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +72 -68
  85. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  86. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +83 -79
  87. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  88. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -9
  89. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +74 -70
  90. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  91. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
  92. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +72 -68
  93. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  94. package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -67
  95. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
  97. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +71 -67
  98. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  99. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +5 -5
  100. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -67
  101. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
  103. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +40 -40
  104. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +40 -40
  105. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +42 -42
  106. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +42 -42
  107. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +42 -42
  108. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +43 -43
  109. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +43 -43
  110. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +42 -42
  111. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +43 -43
  112. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +44 -44
  113. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +42 -42
  114. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +42 -42
  115. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +44 -44
  116. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +42 -42
  117. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +44 -44
  118. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +42 -42
  119. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +42 -42
  120. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +44 -44
  121. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +42 -42
  122. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +42 -42
  123. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +44 -44
  124. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
  125. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  126. package/dist/astro/routes/api/admin/users/_id_/index.mjs +15 -15
  127. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
  128. package/dist/astro/routes/api/admin/users/index.mjs +14 -14
  129. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  130. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  131. package/dist/astro/routes/api/auth/invite/complete.mjs +18 -18
  132. package/dist/astro/routes/api/auth/invite/index.mjs +16 -16
  133. package/dist/astro/routes/api/auth/invite/register-options.mjs +17 -17
  134. package/dist/astro/routes/api/auth/logout.mjs +5 -5
  135. package/dist/astro/routes/api/auth/magic-link/send.mjs +18 -18
  136. package/dist/astro/routes/api/auth/magic-link/verify.mjs +14 -14
  137. package/dist/astro/routes/api/auth/me.mjs +15 -15
  138. package/dist/astro/routes/api/auth/mode.mjs +5 -5
  139. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
  140. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  141. package/dist/astro/routes/api/auth/passkey/_id_.mjs +14 -14
  142. package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
  143. package/dist/astro/routes/api/auth/passkey/options.mjs +19 -19
  144. package/dist/astro/routes/api/auth/passkey/register/options.mjs +17 -17
  145. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +18 -18
  146. package/dist/astro/routes/api/auth/passkey/verify.mjs +18 -18
  147. package/dist/astro/routes/api/auth/signup/complete.mjs +18 -18
  148. package/dist/astro/routes/api/auth/signup/request.mjs +17 -17
  149. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  150. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +12 -12
  151. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +18 -18
  152. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  153. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +17 -17
  154. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  155. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +17 -17
  156. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
  157. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +11 -11
  158. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +31 -31
  159. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +17 -17
  160. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts +1 -2
  161. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts.map +1 -1
  162. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +42 -53
  163. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  164. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +34 -29
  165. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  166. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
  167. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  168. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +17 -17
  169. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +25 -24
  170. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  171. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +5 -5
  172. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +17 -17
  173. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  174. package/dist/astro/routes/api/content/_collection_/_id_.mjs +18 -18
  175. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  176. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  177. package/dist/astro/routes/api/content/_collection_/index.mjs +15 -15
  178. package/dist/astro/routes/api/content/_collection_/trash.mjs +15 -15
  179. package/dist/astro/routes/api/dashboard.mjs +10 -9
  180. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  181. package/dist/astro/routes/api/dev/emails.mjs +5 -5
  182. package/dist/astro/routes/api/health.mjs +6 -6
  183. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  184. package/dist/astro/routes/api/import/probe.mjs +23 -23
  185. package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -6
  186. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
  187. package/dist/astro/routes/api/import/wordpress/execute.mjs +16 -16
  188. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  189. package/dist/astro/routes/api/import/wordpress/media.mjs +19 -19
  190. package/dist/astro/routes/api/import/wordpress/prepare.mjs +18 -18
  191. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  192. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +28 -28
  193. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  194. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +23 -23
  195. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  196. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +34 -34
  197. package/dist/astro/routes/api/manifest.mjs +6 -6
  198. package/dist/astro/routes/api/mcp.mjs +98 -118
  199. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  200. package/dist/astro/routes/api/media/_id_/confirm.mjs +19 -19
  201. package/dist/astro/routes/api/media/_id_/replace.mjs +16 -16
  202. package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
  203. package/dist/astro/routes/api/media/_id_/usage.mjs +33 -33
  204. package/dist/astro/routes/api/media/_id_.mjs +31 -31
  205. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
  206. package/dist/astro/routes/api/media/file/_...key_.mjs +9 -9
  207. package/dist/astro/routes/api/media/folders/_id_.mjs +16 -16
  208. package/dist/astro/routes/api/media/folders/index.mjs +16 -16
  209. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
  210. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
  211. package/dist/astro/routes/api/media/providers/index.mjs +5 -5
  212. package/dist/astro/routes/api/media/upload-url.mjs +18 -18
  213. package/dist/astro/routes/api/media.mjs +35 -35
  214. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +17 -17
  215. package/dist/astro/routes/api/menus/_name_/items.mjs +17 -17
  216. package/dist/astro/routes/api/menus/_name_/reorder.mjs +17 -17
  217. package/dist/astro/routes/api/menus/_name_/translations.mjs +17 -17
  218. package/dist/astro/routes/api/menus/_name_.mjs +17 -17
  219. package/dist/astro/routes/api/menus/index.mjs +17 -17
  220. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  221. package/dist/astro/routes/api/oauth/device/authorize.d.mts +2 -1
  222. package/dist/astro/routes/api/oauth/device/authorize.d.mts.map +1 -1
  223. package/dist/astro/routes/api/oauth/device/authorize.mjs +23 -9
  224. package/dist/astro/routes/api/oauth/device/authorize.mjs.map +1 -1
  225. package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
  226. package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
  227. package/dist/astro/routes/api/oauth/register.mjs +5 -5
  228. package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
  229. package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
  230. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  231. package/dist/astro/routes/api/openapi.json.mjs +20 -20
  232. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +11 -11
  233. package/dist/astro/routes/api/redirects/404s/index.mjs +19 -19
  234. package/dist/astro/routes/api/redirects/404s/summary.mjs +19 -19
  235. package/dist/astro/routes/api/redirects/_id_.mjs +19 -19
  236. package/dist/astro/routes/api/redirects/index.mjs +19 -19
  237. package/dist/astro/routes/api/relations/_id_/index.mjs +34 -29
  238. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  239. package/dist/astro/routes/api/relations/index.mjs +36 -31
  240. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  241. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
  242. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +5 -5
  243. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +71 -67
  244. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  245. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +71 -67
  246. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  247. package/dist/astro/routes/api/schema/block-types/index.mjs +71 -67
  248. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  249. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +73 -69
  250. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  251. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +71 -67
  252. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  253. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +71 -67
  254. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  255. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +71 -67
  256. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  257. package/dist/astro/routes/api/schema/collections/index.mjs +71 -67
  258. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  259. package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -67
  260. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  261. package/dist/astro/routes/api/schema/index.mjs +16 -16
  262. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -67
  263. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  264. package/dist/astro/routes/api/schema/orphans/index.mjs +71 -67
  265. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  266. package/dist/astro/routes/api/search/enable.mjs +19 -19
  267. package/dist/astro/routes/api/search/index.mjs +18 -18
  268. package/dist/astro/routes/api/search/rebuild.mjs +19 -19
  269. package/dist/astro/routes/api/search/stats.mjs +9 -9
  270. package/dist/astro/routes/api/search/suggest.mjs +18 -18
  271. package/dist/astro/routes/api/sections/_slug_.mjs +18 -18
  272. package/dist/astro/routes/api/sections/index.mjs +18 -18
  273. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  274. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  275. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  276. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  277. package/dist/astro/routes/api/settings/email.mjs +6 -6
  278. package/dist/astro/routes/api/settings.mjs +21 -21
  279. package/dist/astro/routes/api/setup/admin-verify.mjs +19 -19
  280. package/dist/astro/routes/api/setup/admin.mjs +18 -18
  281. package/dist/astro/routes/api/setup/dev-bypass.mjs +45 -39
  282. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  283. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  284. package/dist/astro/routes/api/setup/index.d.mts.map +1 -1
  285. package/dist/astro/routes/api/setup/index.mjs +80 -49
  286. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  287. package/dist/astro/routes/api/setup/status.mjs +6 -6
  288. package/dist/astro/routes/api/snapshot.mjs +9 -9
  289. package/dist/astro/routes/api/snapshot.mjs.map +1 -1
  290. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +23 -23
  291. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +23 -23
  292. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +23 -23
  293. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +23 -23
  294. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +22 -22
  295. package/dist/astro/routes/api/taxonomies/_name_.mjs +23 -23
  296. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +36 -35
  297. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
  298. package/dist/astro/routes/api/taxonomies/index.mjs +23 -23
  299. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  300. package/dist/astro/routes/api/typegen.mjs +8 -8
  301. package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
  302. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +19 -19
  303. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
  304. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  305. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  306. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  307. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +16 -16
  308. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +19 -19
  309. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +19 -19
  310. package/dist/astro/routes/api/widget-areas/_name_.mjs +9 -9
  311. package/dist/astro/routes/api/widget-areas/index.mjs +19 -19
  312. package/dist/astro/routes/api/widget-components.mjs +5 -5
  313. package/dist/astro/routes/robots.txt.mjs +6 -6
  314. package/dist/astro/routes/sitemap-_collection_.xml.mjs +9 -9
  315. package/dist/astro/routes/sitemap.xml.mjs +7 -7
  316. package/dist/astro/types.d.mts +28 -18
  317. package/dist/astro/types.d.mts.map +1 -1
  318. package/dist/audit-CrgmE9LE.mjs +127 -0
  319. package/dist/audit-CrgmE9LE.mjs.map +1 -0
  320. package/dist/auth/providers/github.d.mts +1 -1
  321. package/dist/auth/providers/google.d.mts +1 -1
  322. package/dist/authoritative-records-C2YzIdbu.mjs +5172 -0
  323. package/dist/authoritative-records-C2YzIdbu.mjs.map +1 -0
  324. package/dist/authorize-WgdKF8QY.mjs +49 -0
  325. package/dist/authorize-WgdKF8QY.mjs.map +1 -0
  326. package/dist/backup-Ck8_lMO3.mjs +246 -0
  327. package/dist/backup-Ck8_lMO3.mjs.map +1 -0
  328. package/dist/block-types-BQ90asVI.mjs +132 -0
  329. package/dist/block-types-BQ90asVI.mjs.map +1 -0
  330. package/dist/block-values-ACFqgB1D.mjs +175 -0
  331. package/dist/block-values-ACFqgB1D.mjs.map +1 -0
  332. package/dist/bundle-Db1iNMv_.mjs +667 -0
  333. package/dist/bundle-Db1iNMv_.mjs.map +1 -0
  334. package/dist/byline-BayaYGoj.mjs +909 -0
  335. package/dist/byline-BayaYGoj.mjs.map +1 -0
  336. package/dist/byline-fields-B8HH-35f.mjs +254 -0
  337. package/dist/byline-fields-B8HH-35f.mjs.map +1 -0
  338. package/dist/byline-fields-hMPjf6Eu.mjs +123 -0
  339. package/dist/byline-fields-hMPjf6Eu.mjs.map +1 -0
  340. package/dist/byline-registry-B_EK_TQf.mjs +406 -0
  341. package/dist/byline-registry-B_EK_TQf.mjs.map +1 -0
  342. package/dist/bylines-DFAaFXWi.mjs +214 -0
  343. package/dist/bylines-DFAaFXWi.mjs.map +1 -0
  344. package/dist/bylines-DkIxUxmr.mjs +232 -0
  345. package/dist/bylines-DkIxUxmr.mjs.map +1 -0
  346. package/dist/cache-DkvhQ8XE.mjs +108 -0
  347. package/dist/cache-DkvhQ8XE.mjs.map +1 -0
  348. package/dist/canonical-CcSuuTlH.mjs +174 -0
  349. package/dist/canonical-CcSuuTlH.mjs.map +1 -0
  350. package/dist/capture-triggers-DJEoOTOq.mjs +362 -0
  351. package/dist/capture-triggers-DJEoOTOq.mjs.map +1 -0
  352. package/dist/challenge-store-CvBl81AQ.mjs +51 -0
  353. package/dist/challenge-store-CvBl81AQ.mjs.map +1 -0
  354. package/dist/checksum-CClweQzI.mjs +162 -0
  355. package/dist/checksum-CClweQzI.mjs.map +1 -0
  356. package/dist/chrome-tags-D5caJwwp.mjs +24 -0
  357. package/dist/chrome-tags-D5caJwwp.mjs.map +1 -0
  358. package/dist/chunks-DwBaj8aT.mjs +25 -0
  359. package/dist/chunks-DwBaj8aT.mjs.map +1 -0
  360. package/dist/cli/index.mjs +374 -761
  361. package/dist/cli/index.mjs.map +1 -1
  362. package/dist/client/cf-access.d.mts +1 -1
  363. package/dist/client/index.d.mts +18 -18
  364. package/dist/client/index.mjs +2 -2
  365. package/dist/collection-deletion-CLCdXsnV.mjs +436 -0
  366. package/dist/collection-deletion-CLCdXsnV.mjs.map +1 -0
  367. package/dist/collection-deletion-processor-hNw8x01F.mjs +217 -0
  368. package/dist/collection-deletion-processor-hNw8x01F.mjs.map +1 -0
  369. package/dist/collection-slugs-cache-CUuiduLq.mjs +85 -0
  370. package/dist/collection-slugs-cache-CUuiduLq.mjs.map +1 -0
  371. package/dist/comment-D2uvL63j.mjs +313 -0
  372. package/dist/comment-D2uvL63j.mjs.map +1 -0
  373. package/dist/comment-reaction-DevUuzg4.mjs +85 -0
  374. package/dist/comment-reaction-DevUuzg4.mjs.map +1 -0
  375. package/dist/comments-Cq0s7_hO.mjs +195 -0
  376. package/dist/comments-Cq0s7_hO.mjs.map +1 -0
  377. package/dist/comments-M4EDYAHw.mjs +99 -0
  378. package/dist/comments-M4EDYAHw.mjs.map +1 -0
  379. package/dist/components-CuIGwXMs.mjs +108 -0
  380. package/dist/components-CuIGwXMs.mjs.map +1 -0
  381. package/dist/config-52Ea5IWt.d.mts +39 -0
  382. package/dist/config-52Ea5IWt.d.mts.map +1 -0
  383. package/dist/config-CCz3xOLc.mjs +242 -0
  384. package/dist/config-CCz3xOLc.mjs.map +1 -0
  385. package/dist/config-D3d5Qudq.d.mts +6669 -0
  386. package/dist/config-D3d5Qudq.d.mts.map +1 -0
  387. package/dist/content-CbnufDsM.mjs +2018 -0
  388. package/dist/content-CbnufDsM.mjs.map +1 -0
  389. package/dist/content-list-query-D_7B1FE5.d.mts +26 -0
  390. package/dist/content-list-query-D_7B1FE5.d.mts.map +1 -0
  391. package/dist/content-policy-CYu6K1KB.mjs +46 -0
  392. package/dist/content-policy-CYu6K1KB.mjs.map +1 -0
  393. package/dist/content-repair-DlDUgFGp.mjs +442 -0
  394. package/dist/content-repair-DlDUgFGp.mjs.map +1 -0
  395. package/dist/context-CGQLA1-a.mjs +1922 -0
  396. package/dist/context-CGQLA1-a.mjs.map +1 -0
  397. package/dist/cron-c4D5C5Fx.mjs +284 -0
  398. package/dist/cron-c4D5C5Fx.mjs.map +1 -0
  399. package/dist/dashboard-CBq9kmOn.mjs +151 -0
  400. package/dist/dashboard-CBq9kmOn.mjs.map +1 -0
  401. package/dist/db/index.d.mts +3 -3
  402. package/dist/db/index.mjs +1 -1
  403. package/dist/db/libsql-migrations.d.mts +1 -1
  404. package/dist/db/libsql-migrations.mjs +4 -4
  405. package/dist/db/libsql.d.mts +1 -1
  406. package/dist/db/postgres-migrations.d.mts +1 -1
  407. package/dist/db/postgres-migrations.mjs +4 -4
  408. package/dist/db/postgres.d.mts +1 -1
  409. package/dist/db/sqlite-migrations.d.mts +1 -1
  410. package/dist/db/sqlite-migrations.mjs +4 -4
  411. package/dist/db/sqlite.d.mts +1 -1
  412. package/dist/db/sqlite.mjs +1 -1
  413. package/dist/default-DPsys51U.mjs +81 -0
  414. package/dist/default-DPsys51U.mjs.map +1 -0
  415. package/dist/deferred-tasks-CZ7rzBdo.d.mts +9 -0
  416. package/dist/deferred-tasks-CZ7rzBdo.d.mts.map +1 -0
  417. package/dist/dev-typegen-HRxwLRcT.mjs +29 -0
  418. package/dist/dev-typegen-HRxwLRcT.mjs.map +1 -0
  419. package/dist/device-flow-OcSqE9uY.mjs +521 -0
  420. package/dist/device-flow-OcSqE9uY.mjs.map +1 -0
  421. package/dist/digest-DVZ--cE9.mjs +194 -0
  422. package/dist/digest-DVZ--cE9.mjs.map +1 -0
  423. package/dist/direct-executor-DyjAqkpT.mjs +104 -0
  424. package/dist/direct-executor-DyjAqkpT.mjs.map +1 -0
  425. package/dist/dist-FPR93_xf.mjs +810 -0
  426. package/dist/dist-FPR93_xf.mjs.map +1 -0
  427. package/dist/email-console-DyQIgEnz.mjs +50 -0
  428. package/dist/email-console-DyQIgEnz.mjs.map +1 -0
  429. package/dist/email-locale-BYb16rVd.mjs +25 -0
  430. package/dist/email-locale-BYb16rVd.mjs.map +1 -0
  431. package/dist/emdash-runtime-CrzxJFmF.mjs +4214 -0
  432. package/dist/emdash-runtime-CrzxJFmF.mjs.map +1 -0
  433. package/dist/enrich-DBtCncE2.mjs +194 -0
  434. package/dist/enrich-DBtCncE2.mjs.map +1 -0
  435. package/dist/entry-lock-BN5y4YbO.d.mts +4481 -0
  436. package/dist/entry-lock-BN5y4YbO.d.mts.map +1 -0
  437. package/dist/entry-lock-BaRBHCsH.mjs +1173 -0
  438. package/dist/entry-lock-BaRBHCsH.mjs.map +1 -0
  439. package/dist/entry-lock-C6NcnZPV.mjs +163 -0
  440. package/dist/entry-lock-C6NcnZPV.mjs.map +1 -0
  441. package/dist/entry-locks-BTyQLdbC.mjs +167 -0
  442. package/dist/entry-locks-BTyQLdbC.mjs.map +1 -0
  443. package/dist/error-BfsNNrIE.mjs +90 -0
  444. package/dist/error-BfsNNrIE.mjs.map +1 -0
  445. package/dist/errors-BN1QAnEY.mjs +460 -0
  446. package/dist/errors-BN1QAnEY.mjs.map +1 -0
  447. package/dist/errors-Bt3goF8I.mjs +120 -0
  448. package/dist/errors-Bt3goF8I.mjs.map +1 -0
  449. package/dist/escape-BveidMa2.mjs +9 -0
  450. package/dist/escape-BveidMa2.mjs.map +1 -0
  451. package/dist/fence-Bb_IbCxI.mjs +162 -0
  452. package/dist/fence-Bb_IbCxI.mjs.map +1 -0
  453. package/dist/field-defs-cache-CsZctvbu.mjs +77 -0
  454. package/dist/field-defs-cache-CsZctvbu.mjs.map +1 -0
  455. package/dist/field-map-6m9rF49t.mjs +83 -0
  456. package/dist/field-map-6m9rF49t.mjs.map +1 -0
  457. package/dist/focal-point-CZ3d1wK5.mjs +23 -0
  458. package/dist/focal-point-CZ3d1wK5.mjs.map +1 -0
  459. package/dist/fts-manager-CCaZTp8y.mjs +443 -0
  460. package/dist/fts-manager-CCaZTp8y.mjs.map +1 -0
  461. package/dist/gc-xowRjczI.mjs +75 -0
  462. package/dist/gc-xowRjczI.mjs.map +1 -0
  463. package/dist/hash-COVK27Pc.mjs +37 -0
  464. package/dist/hash-COVK27Pc.mjs.map +1 -0
  465. package/dist/hook-result-CYSk0XFe.d.mts +31 -0
  466. package/dist/hook-result-CYSk0XFe.d.mts.map +1 -0
  467. package/dist/hreflang-CChPV7jx.mjs +105 -0
  468. package/dist/hreflang-CChPV7jx.mjs.map +1 -0
  469. package/dist/hreflang-DRslq3QI.d.mts +50 -0
  470. package/dist/hreflang-DRslq3QI.d.mts.map +1 -0
  471. package/dist/http-route-dispatch-CAdp2onn.mjs +339 -0
  472. package/dist/http-route-dispatch-CAdp2onn.mjs.map +1 -0
  473. package/dist/identity-NVTOOQyq.mjs +35 -0
  474. package/dist/identity-NVTOOQyq.mjs.map +1 -0
  475. package/dist/import-wpSO2N0x.mjs +2020 -0
  476. package/dist/import-wpSO2N0x.mjs.map +1 -0
  477. package/dist/index-CDs2wq4X.d.mts +623 -0
  478. package/dist/index-CDs2wq4X.d.mts.map +1 -0
  479. package/dist/index.d.mts +24 -24
  480. package/dist/index.mjs +103 -101
  481. package/dist/install-finalization-D9R9R-W8.mjs +58 -0
  482. package/dist/install-finalization-D9R9R-W8.mjs.map +1 -0
  483. package/dist/keys-Bck6LBfF.mjs +61 -0
  484. package/dist/keys-Bck6LBfF.mjs.map +1 -0
  485. package/dist/kinds-CYmRESWj.mjs +974 -0
  486. package/dist/kinds-CYmRESWj.mjs.map +1 -0
  487. package/dist/lifecycle-C815ZQfV.mjs +25 -0
  488. package/dist/lifecycle-C815ZQfV.mjs.map +1 -0
  489. package/dist/load-D99axixL.mjs +28 -0
  490. package/dist/load-D99axixL.mjs.map +1 -0
  491. package/dist/loader-CrRPfkHS.mjs +1197 -0
  492. package/dist/loader-CrRPfkHS.mjs.map +1 -0
  493. package/dist/loops-DMKlygqX.mjs +203 -0
  494. package/dist/loops-DMKlygqX.mjs.map +1 -0
  495. package/dist/manifest-builder-BQzCHNgB.mjs +189 -0
  496. package/dist/manifest-builder-BQzCHNgB.mjs.map +1 -0
  497. package/dist/manifest-schema-Ci2gmd0u.mjs +492 -0
  498. package/dist/manifest-schema-Ci2gmd0u.mjs.map +1 -0
  499. package/dist/media/image-endpoint.mjs +1 -1
  500. package/dist/media/index.d.mts +1 -1
  501. package/dist/media/index.mjs +4 -4
  502. package/dist/media/local-runtime.d.mts +14 -14
  503. package/dist/media/local-runtime.mjs +6 -6
  504. package/dist/media-BUQePMxP.mjs +373 -0
  505. package/dist/media-BUQePMxP.mjs.map +1 -0
  506. package/dist/media-DH8ibNlY.mjs +294 -0
  507. package/dist/media-DH8ibNlY.mjs.map +1 -0
  508. package/dist/media-OEIQ3bVc.mjs +408 -0
  509. package/dist/media-OEIQ3bVc.mjs.map +1 -0
  510. package/dist/media-allowlist-pYtaBA95.mjs +44 -0
  511. package/dist/media-allowlist-pYtaBA95.mjs.map +1 -0
  512. package/dist/media-folders-Bf8_s4de.mjs +210 -0
  513. package/dist/media-folders-Bf8_s4de.mjs.map +1 -0
  514. package/dist/media-url-C6klEuNd.mjs +43 -0
  515. package/dist/media-url-C6klEuNd.mjs.map +1 -0
  516. package/dist/media-usage-D7Y64m6v.mjs +1629 -0
  517. package/dist/media-usage-D7Y64m6v.mjs.map +1 -0
  518. package/dist/media-usage-activation-DrqbmgLA.mjs +78 -0
  519. package/dist/media-usage-activation-DrqbmgLA.mjs.map +1 -0
  520. package/dist/media-usage-work-DommYhYA.mjs +152 -0
  521. package/dist/media-usage-work-DommYhYA.mjs.map +1 -0
  522. package/dist/media-usage-work-HU63hNDu.mjs +586 -0
  523. package/dist/media-usage-work-HU63hNDu.mjs.map +1 -0
  524. package/dist/menus-BQfusWEC.mjs +3608 -0
  525. package/dist/menus-BQfusWEC.mjs.map +1 -0
  526. package/dist/menus-BtwjQt5s.mjs +753 -0
  527. package/dist/menus-BtwjQt5s.mjs.map +1 -0
  528. package/dist/menus-p_M1V7J_.mjs +139 -0
  529. package/dist/menus-p_M1V7J_.mjs.map +1 -0
  530. package/dist/migrations/index.d.mts +1 -1
  531. package/dist/migrations/index.mjs +3 -3
  532. package/dist/mime-C94qBG-P.mjs +36 -0
  533. package/dist/mime-C94qBG-P.mjs.map +1 -0
  534. package/dist/mode-DpYW3w6U.mjs +23 -0
  535. package/dist/mode-DpYW3w6U.mjs.map +1 -0
  536. package/dist/node-sqlite-compat-pWFw0lcc.mjs +46 -0
  537. package/dist/node-sqlite-compat-pWFw0lcc.mjs.map +1 -0
  538. package/dist/normalize-DduyxBjf.mjs +191 -0
  539. package/dist/normalize-DduyxBjf.mjs.map +1 -0
  540. package/dist/oauth-authorization-DAXsH1H9.mjs +274 -0
  541. package/dist/oauth-authorization-DAXsH1H9.mjs.map +1 -0
  542. package/dist/oauth-clients-DENiDQri.mjs +266 -0
  543. package/dist/oauth-clients-DENiDQri.mjs.map +1 -0
  544. package/dist/oauth-state-store-y8mEYVq9.mjs +50 -0
  545. package/dist/oauth-state-store-y8mEYVq9.mjs.map +1 -0
  546. package/dist/oauth-user-lookup-CtTYAy-O.mjs +26 -0
  547. package/dist/oauth-user-lookup-CtTYAy-O.mjs.map +1 -0
  548. package/dist/object-cache/memory.d.mts +1 -1
  549. package/dist/options-BYa1FgIM.d.mts +81 -0
  550. package/dist/options-BYa1FgIM.d.mts.map +1 -0
  551. package/dist/page/index.d.mts +2 -2
  552. package/dist/page/index.mjs +5 -5
  553. package/dist/parse-CORGGhHf.mjs +81 -0
  554. package/dist/parse-CORGGhHf.mjs.map +1 -0
  555. package/dist/parse-avNM1xWV.d.mts +168 -0
  556. package/dist/parse-avNM1xWV.d.mts.map +1 -0
  557. package/dist/passkey-config-Dih5YeIS.mjs +46 -0
  558. package/dist/passkey-config-Dih5YeIS.mjs.map +1 -0
  559. package/dist/paths-d51RFm8M.mjs +77 -0
  560. package/dist/paths-d51RFm8M.mjs.map +1 -0
  561. package/dist/patterns-CoqlXUvk.mjs +145 -0
  562. package/dist/patterns-CoqlXUvk.mjs.map +1 -0
  563. package/dist/placeholder-D2aksPMF.d.mts +306 -0
  564. package/dist/placeholder-D2aksPMF.d.mts.map +1 -0
  565. package/dist/plan-DqeZKuaR.mjs +135 -0
  566. package/dist/plan-DqeZKuaR.mjs.map +1 -0
  567. package/dist/plugin-test-runtime.d.mts +14 -14
  568. package/dist/plugin-test-runtime.mjs +110 -107
  569. package/dist/plugin-types.d.mts +2 -2
  570. package/dist/plugin-utils.d.mts +12 -12
  571. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  572. package/dist/plugins/adapt-sandbox-entry.mjs +3 -3
  573. package/dist/plugins/host.d.mts +5 -5
  574. package/dist/plugins/host.mjs +42 -41
  575. package/dist/plugins-Bb7oqjQA.mjs +277 -0
  576. package/dist/plugins-Bb7oqjQA.mjs.map +1 -0
  577. package/dist/policy-BcEqut3n.mjs +45 -0
  578. package/dist/policy-BcEqut3n.mjs.map +1 -0
  579. package/dist/portable-text-DXE8ymtD.mjs +307 -0
  580. package/dist/portable-text-DXE8ymtD.mjs.map +1 -0
  581. package/dist/preview-DEDWbwA_.mjs +107 -0
  582. package/dist/preview-DEDWbwA_.mjs.map +1 -0
  583. package/dist/protocol-BJbTzvwl.d.mts +61 -0
  584. package/dist/protocol-BJbTzvwl.d.mts.map +1 -0
  585. package/dist/public-submission-D9c9S14m.mjs +250 -0
  586. package/dist/public-submission-D9c9S14m.mjs.map +1 -0
  587. package/dist/public-url-CIRe-2T6.mjs +101 -0
  588. package/dist/public-url-CIRe-2T6.mjs.map +1 -0
  589. package/dist/query-BzifXlPS.mjs +1156 -0
  590. package/dist/query-BzifXlPS.mjs.map +1 -0
  591. package/dist/query-OzMJ6vJP.mjs +41 -0
  592. package/dist/query-OzMJ6vJP.mjs.map +1 -0
  593. package/dist/rate-limit-Csp60Vik.mjs +120 -0
  594. package/dist/rate-limit-Csp60Vik.mjs.map +1 -0
  595. package/dist/receipt-B-aU4hpJ.mjs +43 -0
  596. package/dist/receipt-B-aU4hpJ.mjs.map +1 -0
  597. package/dist/redirect-CDSw1sU3.mjs +17 -0
  598. package/dist/redirect-CDSw1sU3.mjs.map +1 -0
  599. package/dist/redirect-D1ArbO85.mjs +411 -0
  600. package/dist/redirect-D1ArbO85.mjs.map +1 -0
  601. package/dist/redirects-BjTwDTsV.mjs +148 -0
  602. package/dist/redirects-BjTwDTsV.mjs.map +1 -0
  603. package/dist/redirects-Ck50kH3n.mjs +446 -0
  604. package/dist/redirects-Ck50kH3n.mjs.map +1 -0
  605. package/dist/registry/testing.mjs +3 -3
  606. package/dist/registry-CFcNCayZ.mjs +6754 -0
  607. package/dist/registry-CFcNCayZ.mjs.map +1 -0
  608. package/dist/relations-Cfaa1fDl.mjs +776 -0
  609. package/dist/relations-Cfaa1fDl.mjs.map +1 -0
  610. package/dist/request-cache-iHRlHx1d.mjs +104 -0
  611. package/dist/request-cache-iHRlHx1d.mjs.map +1 -0
  612. package/dist/request-context.d.mts +1 -1
  613. package/dist/request-meta-D47mqyev.mjs +141 -0
  614. package/dist/request-meta-D47mqyev.mjs.map +1 -0
  615. package/dist/resolve-BPE8sMvx.mjs +99 -0
  616. package/dist/resolve-BPE8sMvx.mjs.map +1 -0
  617. package/dist/resolve-C0s1E_fH.mjs +199 -0
  618. package/dist/resolve-C0s1E_fH.mjs.map +1 -0
  619. package/dist/revision-j1p4-bOj.mjs +302 -0
  620. package/dist/revision-j1p4-bOj.mjs.map +1 -0
  621. package/dist/route-wire-C9PJV9aL.mjs +197 -0
  622. package/dist/route-wire-C9PJV9aL.mjs.map +1 -0
  623. package/dist/routes-lyYw0mMf.mjs +272 -0
  624. package/dist/routes-lyYw0mMf.mjs.map +1 -0
  625. package/dist/runner-B3eyB9Gb.mjs +6121 -0
  626. package/dist/runner-B3eyB9Gb.mjs.map +1 -0
  627. package/dist/runner-DoYH2Jcu.d.mts +68 -0
  628. package/dist/runner-DoYH2Jcu.d.mts.map +1 -0
  629. package/dist/runtime.d.mts +13 -13
  630. package/dist/runtime.mjs +3 -3
  631. package/dist/schema-BAayK46S.mjs +13 -0
  632. package/dist/schema-BAayK46S.mjs.map +1 -0
  633. package/dist/schema-Gqcl-8G4.mjs +815 -0
  634. package/dist/schema-Gqcl-8G4.mjs.map +1 -0
  635. package/dist/scopes-BqPOKoKf.mjs +34 -0
  636. package/dist/scopes-BqPOKoKf.mjs.map +1 -0
  637. package/dist/search-YJKPIEV6.mjs +448 -0
  638. package/dist/search-YJKPIEV6.mjs.map +1 -0
  639. package/dist/sections-BR_e-wK5.mjs +346 -0
  640. package/dist/sections-BR_e-wK5.mjs.map +1 -0
  641. package/dist/seed/index.d.mts +2 -2
  642. package/dist/seed/index.mjs +37 -31
  643. package/dist/seo/index.d.mts +3 -3
  644. package/dist/seo/index.mjs +22 -21
  645. package/dist/seo/index.mjs.map +1 -1
  646. package/dist/seo-Dsj8hy3j.mjs +114 -0
  647. package/dist/seo-Dsj8hy3j.mjs.map +1 -0
  648. package/dist/seo-XvH4LNNp.mjs +133 -0
  649. package/dist/seo-XvH4LNNp.mjs.map +1 -0
  650. package/dist/service-BsVG05gS.mjs +150 -0
  651. package/dist/service-BsVG05gS.mjs.map +1 -0
  652. package/dist/session-user-DgKbYrlj.mjs +51 -0
  653. package/dist/session-user-DgKbYrlj.mjs.map +1 -0
  654. package/dist/settings-CNPUntkh.mjs +51 -0
  655. package/dist/settings-CNPUntkh.mjs.map +1 -0
  656. package/dist/settings-D5EHi0Tk.mjs +439 -0
  657. package/dist/settings-D5EHi0Tk.mjs.map +1 -0
  658. package/dist/settings-DSfE7wOa.mjs +61 -0
  659. package/dist/settings-DSfE7wOa.mjs.map +1 -0
  660. package/dist/setup-complete-B8W8sJ9v.mjs +26 -0
  661. package/dist/setup-complete-B8W8sJ9v.mjs.map +1 -0
  662. package/dist/setup-nonce-DnSBP260.mjs +25 -0
  663. package/dist/setup-nonce-DnSBP260.mjs.map +1 -0
  664. package/dist/site-settings-NGzdrt7O.mjs +50 -0
  665. package/dist/site-settings-NGzdrt7O.mjs.map +1 -0
  666. package/dist/site-url-D6JB7tLW.mjs +16 -0
  667. package/dist/site-url-D6JB7tLW.mjs.map +1 -0
  668. package/dist/snapshot-CdcwwWAf.mjs +414 -0
  669. package/dist/snapshot-CdcwwWAf.mjs.map +1 -0
  670. package/dist/ssrf-Dv0_tRpo.mjs +406 -0
  671. package/dist/ssrf-Dv0_tRpo.mjs.map +1 -0
  672. package/dist/stage-CUjhED3P.mjs +662 -0
  673. package/dist/stage-CUjhED3P.mjs.map +1 -0
  674. package/dist/staged-C36IWXff.mjs +659 -0
  675. package/dist/staged-C36IWXff.mjs.map +1 -0
  676. package/dist/state-CKouMCSY.mjs +153 -0
  677. package/dist/state-CKouMCSY.mjs.map +1 -0
  678. package/dist/status-lzyj4Uu7.mjs +30 -0
  679. package/dist/status-lzyj4Uu7.mjs.map +1 -0
  680. package/dist/storage/local.d.mts +1 -1
  681. package/dist/storage/local.mjs +1 -1
  682. package/dist/storage/s3.d.mts +1 -1
  683. package/dist/storage/s3.mjs +1 -1
  684. package/dist/storage-query-B-cWcTjJ.d.mts +1594 -0
  685. package/dist/storage-query-B-cWcTjJ.d.mts.map +1 -0
  686. package/dist/tar-DsTXX6ch.mjs +449 -0
  687. package/dist/tar-DsTXX6ch.mjs.map +1 -0
  688. package/dist/target-DLQCwp_Z.mjs +27 -0
  689. package/dist/target-DLQCwp_Z.mjs.map +1 -0
  690. package/dist/taxonomies-BlAjr4BL.mjs +697 -0
  691. package/dist/taxonomies-BlAjr4BL.mjs.map +1 -0
  692. package/dist/taxonomies-Byyo7LOZ.mjs +939 -0
  693. package/dist/taxonomies-Byyo7LOZ.mjs.map +1 -0
  694. package/dist/taxonomy-CKDwM61Y.mjs +525 -0
  695. package/dist/taxonomy-CKDwM61Y.mjs.map +1 -0
  696. package/dist/tokens-BojXlk49.mjs +171 -0
  697. package/dist/tokens-BojXlk49.mjs.map +1 -0
  698. package/dist/transaction-DLPQWik1.mjs +29 -0
  699. package/dist/transaction-DLPQWik1.mjs.map +1 -0
  700. package/dist/transfer-XSTh2BCr.mjs +8706 -0
  701. package/dist/transfer-XSTh2BCr.mjs.map +1 -0
  702. package/dist/transfer-download-DkoCDA9d.mjs +33 -0
  703. package/dist/transfer-download-DkoCDA9d.mjs.map +1 -0
  704. package/dist/transfer-iQ26J-RT.mjs +166 -0
  705. package/dist/transfer-iQ26J-RT.mjs.map +1 -0
  706. package/dist/transformations-C7RQabKQ.mjs +196 -0
  707. package/dist/transformations-C7RQabKQ.mjs.map +1 -0
  708. package/dist/transport-D3RulfD6.mjs +136 -0
  709. package/dist/transport-D3RulfD6.mjs.map +1 -0
  710. package/dist/transport-DhlZlf4D.d.mts +42 -0
  711. package/dist/transport-DhlZlf4D.d.mts.map +1 -0
  712. package/dist/trusted-proxy-B6ECOZJc.mjs +51 -0
  713. package/dist/trusted-proxy-B6ECOZJc.mjs.map +1 -0
  714. package/dist/turnstile-lqUiY7lP.mjs +53 -0
  715. package/dist/turnstile-lqUiY7lP.mjs.map +1 -0
  716. package/dist/types-4Dn9bZhu.mjs +77 -0
  717. package/dist/types-4Dn9bZhu.mjs.map +1 -0
  718. package/dist/types-5LSo7PPx.d.mts +85 -0
  719. package/dist/types-5LSo7PPx.d.mts.map +1 -0
  720. package/dist/types-BQ3hwYJT.d.mts +896 -0
  721. package/dist/types-BQ3hwYJT.d.mts.map +1 -0
  722. package/dist/types-BYEk7qo3.d.mts +198 -0
  723. package/dist/types-BYEk7qo3.d.mts.map +1 -0
  724. package/dist/types-CJKsWVFR.mjs +199 -0
  725. package/dist/types-CJKsWVFR.mjs.map +1 -0
  726. package/dist/types-Ca_w8mmY.d.mts +363 -0
  727. package/dist/types-Ca_w8mmY.d.mts.map +1 -0
  728. package/dist/types-CkE41ZAG.mjs +18 -0
  729. package/dist/types-CkE41ZAG.mjs.map +1 -0
  730. package/dist/types-D0aJW2uR.d.mts +1641 -0
  731. package/dist/types-D0aJW2uR.d.mts.map +1 -0
  732. package/dist/types-DbpN4Qto.d.mts +372 -0
  733. package/dist/types-DbpN4Qto.d.mts.map +1 -0
  734. package/dist/types-ILDI1sdY.mjs +16 -0
  735. package/dist/types-ILDI1sdY.mjs.map +1 -0
  736. package/dist/types-OC5c-edM.mjs +22 -0
  737. package/dist/types-OC5c-edM.mjs.map +1 -0
  738. package/dist/types-aOOxRSx6.mjs +103 -0
  739. package/dist/types-aOOxRSx6.mjs.map +1 -0
  740. package/dist/types-m1WbUffD.d.mts +198 -0
  741. package/dist/types-m1WbUffD.d.mts.map +1 -0
  742. package/dist/types-uxLoPBio.d.mts +124 -0
  743. package/dist/types-uxLoPBio.d.mts.map +1 -0
  744. package/dist/types-we5uR-tV.d.mts +287 -0
  745. package/dist/types-we5uR-tV.d.mts.map +1 -0
  746. package/dist/upload-attempts-DduMy6B0.mjs +32 -0
  747. package/dist/upload-attempts-DduMy6B0.mjs.map +1 -0
  748. package/dist/url-pattern-B3EwxAAk.mjs +33 -0
  749. package/dist/url-pattern-B3EwxAAk.mjs.map +1 -0
  750. package/dist/user-ElwQjTQT.mjs +171 -0
  751. package/dist/user-ElwQjTQT.mjs.map +1 -0
  752. package/dist/utils-BlAXmfOG.mjs +439 -0
  753. package/dist/utils-BlAXmfOG.mjs.map +1 -0
  754. package/dist/validate-CH0X5b2c.d.mts +468 -0
  755. package/dist/validate-CH0X5b2c.d.mts.map +1 -0
  756. package/dist/validate-CfgRpcjA.mjs +492 -0
  757. package/dist/validate-CfgRpcjA.mjs.map +1 -0
  758. package/dist/validation-DvYJtv4k.mjs +218 -0
  759. package/dist/validation-DvYJtv4k.mjs.map +1 -0
  760. package/dist/version-DgYjhTud.mjs +9 -0
  761. package/dist/version-DgYjhTud.mjs.map +1 -0
  762. package/dist/version-Dq71scUb.mjs +7 -0
  763. package/dist/version-Dq71scUb.mjs.map +1 -0
  764. package/dist/widgets-ChFIj0be.mjs +126 -0
  765. package/dist/widgets-ChFIj0be.mjs.map +1 -0
  766. package/dist/wxr-taxonomies-CBZMp2YX.mjs +372 -0
  767. package/dist/wxr-taxonomies-CBZMp2YX.mjs.map +1 -0
  768. package/dist/wxr-taxonomies-DlKDpWN1.d.mts +34 -0
  769. package/dist/wxr-taxonomies-DlKDpWN1.d.mts.map +1 -0
  770. package/dist/zod-generator-DmTKI-Ig.mjs +426 -0
  771. package/dist/zod-generator-DmTKI-Ig.mjs.map +1 -0
  772. package/package.json +7 -6
  773. package/src/api/handlers/content.ts +593 -16
  774. package/src/api/handlers/device-flow.ts +74 -21
  775. package/src/api/handlers/index.ts +1 -0
  776. package/src/api/handlers/manifest.ts +79 -5
  777. package/src/api/handlers/media-upload.ts +17 -71
  778. package/src/api/handlers/media.ts +97 -3
  779. package/src/api/handlers/relations.ts +638 -157
  780. package/src/api/handlers/revision.ts +30 -0
  781. package/src/api/handlers/schema.ts +403 -1
  782. package/src/api/handlers/snapshot.ts +257 -3
  783. package/src/api/handlers/staged-references.ts +142 -0
  784. package/src/api/handlers/validate-references.ts +146 -0
  785. package/src/api/schemas/content.ts +13 -0
  786. package/src/api/schemas/relations.ts +54 -44
  787. package/src/api/schemas/schema.ts +14 -0
  788. package/src/astro/integration/routes.ts +15 -19
  789. package/src/astro/integration/vite-config.ts +10 -4
  790. package/src/astro/middleware.ts +1 -0
  791. package/src/astro/routes/api/content/[collection]/[id]/references/[relation]/children.ts +11 -54
  792. package/src/astro/routes/api/content/[collection]/[id].ts +3 -1
  793. package/src/astro/routes/api/oauth/device/authorize.ts +33 -4
  794. package/src/astro/routes/api/relations/index.ts +4 -4
  795. package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +6 -2
  796. package/src/astro/routes/api/setup/index.ts +66 -23
  797. package/src/astro/routes/api/snapshot.ts +2 -1
  798. package/src/astro/types.ts +10 -0
  799. package/src/cleanup.ts +10 -0
  800. package/src/cli/commands/export-seed.ts +510 -89
  801. package/src/components/Columns.astro +3 -1
  802. package/src/components/Cover.astro +3 -1
  803. package/src/components/WidgetArea.astro +3 -2
  804. package/src/database/migrations/086_relations_structural.ts +197 -0
  805. package/src/database/migrations/087_reference_field_relations.ts +407 -0
  806. package/src/database/migrations/runner.ts +4 -0
  807. package/src/database/reference-backfill.ts +141 -0
  808. package/src/database/repositories/content.ts +43 -8
  809. package/src/database/repositories/media.ts +40 -1
  810. package/src/database/repositories/redirect.ts +17 -34
  811. package/src/database/repositories/relation.ts +620 -208
  812. package/src/database/repositories/revision.ts +16 -0
  813. package/src/database/repositories/types.ts +38 -0
  814. package/src/database/transaction.ts +12 -1
  815. package/src/database/types.ts +14 -5
  816. package/src/emdash-runtime.ts +114 -11
  817. package/src/index.ts +11 -0
  818. package/src/loader.ts +169 -22
  819. package/src/mcp/server.ts +13 -48
  820. package/src/query.ts +455 -25
  821. package/src/references/field-map.ts +115 -0
  822. package/src/references/resolve.ts +160 -0
  823. package/src/references/staged.ts +117 -0
  824. package/src/references/types.ts +16 -0
  825. package/src/registry/artifact-fetch.ts +45 -271
  826. package/src/schema/registry.ts +99 -24
  827. package/src/schema/types.ts +58 -0
  828. package/src/schema/zod-generator.ts +67 -1
  829. package/src/seed/apply.ts +841 -103
  830. package/src/seed/types.ts +36 -2
  831. package/src/seed/validate.ts +78 -2
  832. package/src/transfer/analyze/unique-keys.ts +3 -12
  833. package/src/transfer/analyze/validate.ts +65 -39
  834. package/src/transfer/analyze/values.ts +12 -1
  835. package/src/transfer/export/readers.ts +12 -8
  836. package/src/transfer/format/columns.ts +26 -6
  837. package/src/transfer/format/kinds.ts +21 -5
  838. package/src/transfer/import/context.ts +8 -1
  839. package/src/transfer/ops/package-index.ts +1 -1
  840. package/dist/action-token-DYwe4Pk0.mjs +0 -26
  841. package/dist/action-token-DYwe4Pk0.mjs.map +0 -1
  842. package/dist/activation-LOkDM5WT.mjs +0 -382
  843. package/dist/activation-LOkDM5WT.mjs.map +0 -1
  844. package/dist/adapters-B64LbYcB.d.mts +0 -171
  845. package/dist/adapters-B64LbYcB.d.mts.map +0 -1
  846. package/dist/allowed-origins-CHB8oZNM.mjs +0 -116
  847. package/dist/allowed-origins-CHB8oZNM.mjs.map +0 -1
  848. package/dist/api-cFFZpyS0.mjs +0 -4718
  849. package/dist/api-cFFZpyS0.mjs.map +0 -1
  850. package/dist/api-tokens-s4i4aUp_.mjs +0 -166
  851. package/dist/api-tokens-s4i4aUp_.mjs.map +0 -1
  852. package/dist/apply-CoT603H3.mjs +0 -1163
  853. package/dist/apply-CoT603H3.mjs.map +0 -1
  854. package/dist/approvals-CqMfNxak.mjs +0 -460
  855. package/dist/approvals-CqMfNxak.mjs.map +0 -1
  856. package/dist/artifact-fetch-DZMOGZ3-.mjs +0 -818
  857. package/dist/artifact-fetch-DZMOGZ3-.mjs.map +0 -1
  858. package/dist/astro/routes/api/relations/_id_/translations.d.mts +0 -8
  859. package/dist/astro/routes/api/relations/_id_/translations.d.mts.map +0 -1
  860. package/dist/astro/routes/api/relations/_id_/translations.mjs +0 -47
  861. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +0 -1
  862. package/dist/audit-RfCugiSB.mjs +0 -127
  863. package/dist/audit-RfCugiSB.mjs.map +0 -1
  864. package/dist/authoritative-records-CoJvBXAD.mjs +0 -5172
  865. package/dist/authoritative-records-CoJvBXAD.mjs.map +0 -1
  866. package/dist/authorize-seCifOMJ.mjs +0 -49
  867. package/dist/authorize-seCifOMJ.mjs.map +0 -1
  868. package/dist/backup-CBu0LrXf.mjs +0 -246
  869. package/dist/backup-CBu0LrXf.mjs.map +0 -1
  870. package/dist/block-type-registry-DUI_3KxT.mjs +0 -6709
  871. package/dist/block-type-registry-DUI_3KxT.mjs.map +0 -1
  872. package/dist/block-types-BmZmLmAD.mjs +0 -132
  873. package/dist/block-types-BmZmLmAD.mjs.map +0 -1
  874. package/dist/block-values-C_VIPr5t.mjs +0 -175
  875. package/dist/block-values-C_VIPr5t.mjs.map +0 -1
  876. package/dist/byline-DYmkXqvo.mjs +0 -909
  877. package/dist/byline-DYmkXqvo.mjs.map +0 -1
  878. package/dist/byline-fields-D28AT-Fh.mjs +0 -123
  879. package/dist/byline-fields-D28AT-Fh.mjs.map +0 -1
  880. package/dist/byline-registry-gnKscbQX.mjs +0 -406
  881. package/dist/byline-registry-gnKscbQX.mjs.map +0 -1
  882. package/dist/bylines-BPwJqoYH.mjs +0 -232
  883. package/dist/bylines-BPwJqoYH.mjs.map +0 -1
  884. package/dist/bylines-ukLaYpVZ.mjs +0 -214
  885. package/dist/bylines-ukLaYpVZ.mjs.map +0 -1
  886. package/dist/cache-m7UEkRFV.mjs +0 -108
  887. package/dist/cache-m7UEkRFV.mjs.map +0 -1
  888. package/dist/canonical-YhEQezjg.mjs +0 -174
  889. package/dist/canonical-YhEQezjg.mjs.map +0 -1
  890. package/dist/capture-triggers-kJyl_yyM.mjs +0 -362
  891. package/dist/capture-triggers-kJyl_yyM.mjs.map +0 -1
  892. package/dist/challenge-store-ppU6Uv13.mjs +0 -51
  893. package/dist/challenge-store-ppU6Uv13.mjs.map +0 -1
  894. package/dist/checksum-B2IINIlN.mjs +0 -162
  895. package/dist/checksum-B2IINIlN.mjs.map +0 -1
  896. package/dist/chrome-tags-DApCQSIk.mjs +0 -24
  897. package/dist/chrome-tags-DApCQSIk.mjs.map +0 -1
  898. package/dist/chunks-Dms7Uxbt.mjs +0 -25
  899. package/dist/chunks-Dms7Uxbt.mjs.map +0 -1
  900. package/dist/collection-deletion-BIm28mo3.mjs +0 -436
  901. package/dist/collection-deletion-BIm28mo3.mjs.map +0 -1
  902. package/dist/collection-deletion-processor-Br6rxs3u.mjs +0 -217
  903. package/dist/collection-deletion-processor-Br6rxs3u.mjs.map +0 -1
  904. package/dist/collection-slugs-cache-CjGk__zp.mjs +0 -85
  905. package/dist/collection-slugs-cache-CjGk__zp.mjs.map +0 -1
  906. package/dist/comment-CrBl22OF.mjs +0 -313
  907. package/dist/comment-CrBl22OF.mjs.map +0 -1
  908. package/dist/comment-reaction-JEQ2Fpd8.mjs +0 -85
  909. package/dist/comment-reaction-JEQ2Fpd8.mjs.map +0 -1
  910. package/dist/comments-2ah9du9y.mjs +0 -195
  911. package/dist/comments-2ah9du9y.mjs.map +0 -1
  912. package/dist/comments-fHZ8ON9O.mjs +0 -99
  913. package/dist/comments-fHZ8ON9O.mjs.map +0 -1
  914. package/dist/components-CXbq7CSM.mjs +0 -108
  915. package/dist/components-CXbq7CSM.mjs.map +0 -1
  916. package/dist/config-5ii2haYu.d.mts +0 -6528
  917. package/dist/config-5ii2haYu.d.mts.map +0 -1
  918. package/dist/config-IhybvkIQ.mjs +0 -242
  919. package/dist/config-IhybvkIQ.mjs.map +0 -1
  920. package/dist/config-Py43JK9r.d.mts +0 -39
  921. package/dist/config-Py43JK9r.d.mts.map +0 -1
  922. package/dist/content-DFaIEDj9.mjs +0 -2281
  923. package/dist/content-DFaIEDj9.mjs.map +0 -1
  924. package/dist/content-list-query-Dra4Dalc.d.mts +0 -26
  925. package/dist/content-list-query-Dra4Dalc.d.mts.map +0 -1
  926. package/dist/content-policy-DFNw91-d.mjs +0 -46
  927. package/dist/content-policy-DFNw91-d.mjs.map +0 -1
  928. package/dist/content-repair-Q8IUrpLL.mjs +0 -442
  929. package/dist/content-repair-Q8IUrpLL.mjs.map +0 -1
  930. package/dist/context-BeGccdUX.mjs +0 -1921
  931. package/dist/context-BeGccdUX.mjs.map +0 -1
  932. package/dist/cron-7DCJwPXq.mjs +0 -284
  933. package/dist/cron-7DCJwPXq.mjs.map +0 -1
  934. package/dist/dashboard-DjrB-xxZ.mjs +0 -151
  935. package/dist/dashboard-DjrB-xxZ.mjs.map +0 -1
  936. package/dist/default-DQ6vsviu.mjs +0 -81
  937. package/dist/default-DQ6vsviu.mjs.map +0 -1
  938. package/dist/deferred-tasks-BPxXUB4x.d.mts +0 -9
  939. package/dist/deferred-tasks-BPxXUB4x.d.mts.map +0 -1
  940. package/dist/dev-typegen-CZaPLl3V.mjs +0 -29
  941. package/dist/dev-typegen-CZaPLl3V.mjs.map +0 -1
  942. package/dist/device-flow-CRd6DXmW.mjs +0 -466
  943. package/dist/device-flow-CRd6DXmW.mjs.map +0 -1
  944. package/dist/digest-BarSh-pN.mjs +0 -194
  945. package/dist/digest-BarSh-pN.mjs.map +0 -1
  946. package/dist/direct-executor-BmuFJJZV.mjs +0 -104
  947. package/dist/direct-executor-BmuFJJZV.mjs.map +0 -1
  948. package/dist/dist-BNwANFJR.mjs +0 -810
  949. package/dist/dist-BNwANFJR.mjs.map +0 -1
  950. package/dist/email-console-bJn3ctqA.mjs +0 -50
  951. package/dist/email-console-bJn3ctqA.mjs.map +0 -1
  952. package/dist/email-locale-CN6WAMx0.mjs +0 -25
  953. package/dist/email-locale-CN6WAMx0.mjs.map +0 -1
  954. package/dist/emdash-runtime-DAjghyEG.mjs +0 -4186
  955. package/dist/emdash-runtime-DAjghyEG.mjs.map +0 -1
  956. package/dist/enrich-Dl3kZ-lP.mjs +0 -194
  957. package/dist/enrich-Dl3kZ-lP.mjs.map +0 -1
  958. package/dist/entry-lock-BJYdBfXb.mjs +0 -1097
  959. package/dist/entry-lock-BJYdBfXb.mjs.map +0 -1
  960. package/dist/entry-lock-DHQOxN7R.mjs +0 -163
  961. package/dist/entry-lock-DHQOxN7R.mjs.map +0 -1
  962. package/dist/entry-lock-DVhCt49A.d.mts +0 -4368
  963. package/dist/entry-lock-DVhCt49A.d.mts.map +0 -1
  964. package/dist/entry-locks-D0foLdjQ.mjs +0 -167
  965. package/dist/entry-locks-D0foLdjQ.mjs.map +0 -1
  966. package/dist/error-CfvOHP0M.mjs +0 -90
  967. package/dist/error-CfvOHP0M.mjs.map +0 -1
  968. package/dist/errors-BF0_LFhW.mjs +0 -460
  969. package/dist/errors-BF0_LFhW.mjs.map +0 -1
  970. package/dist/errors-DgE1zJGG.mjs +0 -120
  971. package/dist/errors-DgE1zJGG.mjs.map +0 -1
  972. package/dist/escape-CuaZhZvL.mjs +0 -9
  973. package/dist/escape-CuaZhZvL.mjs.map +0 -1
  974. package/dist/fence-CMDXJYc_.mjs +0 -162
  975. package/dist/fence-CMDXJYc_.mjs.map +0 -1
  976. package/dist/field-defs-cache-HIgBbqZZ.mjs +0 -77
  977. package/dist/field-defs-cache-HIgBbqZZ.mjs.map +0 -1
  978. package/dist/focal-point-Gr34o-4o.mjs +0 -23
  979. package/dist/focal-point-Gr34o-4o.mjs.map +0 -1
  980. package/dist/fts-manager-S-K0laoS.mjs +0 -443
  981. package/dist/fts-manager-S-K0laoS.mjs.map +0 -1
  982. package/dist/gc-DjKY0Ay1.mjs +0 -75
  983. package/dist/gc-DjKY0Ay1.mjs.map +0 -1
  984. package/dist/hash-SDAW6zC-.mjs +0 -37
  985. package/dist/hash-SDAW6zC-.mjs.map +0 -1
  986. package/dist/hook-result-B5bXDgS2.d.mts +0 -31
  987. package/dist/hook-result-B5bXDgS2.d.mts.map +0 -1
  988. package/dist/hreflang-D5uNnsGJ.d.mts +0 -50
  989. package/dist/hreflang-D5uNnsGJ.d.mts.map +0 -1
  990. package/dist/hreflang-DMFBL2eb.mjs +0 -105
  991. package/dist/hreflang-DMFBL2eb.mjs.map +0 -1
  992. package/dist/http-route-dispatch-BitqzwMy.mjs +0 -339
  993. package/dist/http-route-dispatch-BitqzwMy.mjs.map +0 -1
  994. package/dist/identity-IyNWwXr6.mjs +0 -35
  995. package/dist/identity-IyNWwXr6.mjs.map +0 -1
  996. package/dist/import-C3JZplWq.mjs +0 -2020
  997. package/dist/import-C3JZplWq.mjs.map +0 -1
  998. package/dist/index-D-hdtLe8.d.mts +0 -623
  999. package/dist/index-D-hdtLe8.d.mts.map +0 -1
  1000. package/dist/install-finalization-DfM1fj5x.mjs +0 -58
  1001. package/dist/install-finalization-DfM1fj5x.mjs.map +0 -1
  1002. package/dist/keys-yxLm5l35.mjs +0 -61
  1003. package/dist/keys-yxLm5l35.mjs.map +0 -1
  1004. package/dist/kinds-CRu_T5T5.mjs +0 -961
  1005. package/dist/kinds-CRu_T5T5.mjs.map +0 -1
  1006. package/dist/lifecycle-BzeGPeQ-.mjs +0 -25
  1007. package/dist/lifecycle-BzeGPeQ-.mjs.map +0 -1
  1008. package/dist/load-XgJiE6_3.mjs +0 -28
  1009. package/dist/load-XgJiE6_3.mjs.map +0 -1
  1010. package/dist/loader-BzqeR1ZN.mjs +0 -1086
  1011. package/dist/loader-BzqeR1ZN.mjs.map +0 -1
  1012. package/dist/loops-BQSzv5Zn.mjs +0 -203
  1013. package/dist/loops-BQSzv5Zn.mjs.map +0 -1
  1014. package/dist/manifest-builder-B8zR-73J.mjs +0 -189
  1015. package/dist/manifest-builder-B8zR-73J.mjs.map +0 -1
  1016. package/dist/manifest-schema-CY3zng_M.mjs +0 -492
  1017. package/dist/manifest-schema-CY3zng_M.mjs.map +0 -1
  1018. package/dist/media-Pu1L6xir.mjs +0 -408
  1019. package/dist/media-Pu1L6xir.mjs.map +0 -1
  1020. package/dist/media-Qp5S3eH3.mjs +0 -355
  1021. package/dist/media-Qp5S3eH3.mjs.map +0 -1
  1022. package/dist/media-allowlist-BSoa9Vvm.mjs +0 -44
  1023. package/dist/media-allowlist-BSoa9Vvm.mjs.map +0 -1
  1024. package/dist/media-folders-BE0oo2eX.mjs +0 -210
  1025. package/dist/media-folders-BE0oo2eX.mjs.map +0 -1
  1026. package/dist/media-h7tOiDLj.mjs +0 -221
  1027. package/dist/media-h7tOiDLj.mjs.map +0 -1
  1028. package/dist/media-url-jArBpzIG.mjs +0 -43
  1029. package/dist/media-url-jArBpzIG.mjs.map +0 -1
  1030. package/dist/media-usage-My-Vi-ex.mjs +0 -1629
  1031. package/dist/media-usage-My-Vi-ex.mjs.map +0 -1
  1032. package/dist/media-usage-activation-HKp7zk7W.mjs +0 -78
  1033. package/dist/media-usage-activation-HKp7zk7W.mjs.map +0 -1
  1034. package/dist/media-usage-work-C2OZLCAd.mjs +0 -586
  1035. package/dist/media-usage-work-C2OZLCAd.mjs.map +0 -1
  1036. package/dist/media-usage-work-DwUNbgvS.mjs +0 -152
  1037. package/dist/media-usage-work-DwUNbgvS.mjs.map +0 -1
  1038. package/dist/menus-BM7BPLOb.mjs +0 -139
  1039. package/dist/menus-BM7BPLOb.mjs.map +0 -1
  1040. package/dist/menus-ITeAbcIF.mjs +0 -753
  1041. package/dist/menus-ITeAbcIF.mjs.map +0 -1
  1042. package/dist/menus-TsSGmSR4.mjs +0 -3608
  1043. package/dist/menus-TsSGmSR4.mjs.map +0 -1
  1044. package/dist/mime-ChLqYwDk.mjs +0 -36
  1045. package/dist/mime-ChLqYwDk.mjs.map +0 -1
  1046. package/dist/mode-CCuKXUci.mjs +0 -23
  1047. package/dist/mode-CCuKXUci.mjs.map +0 -1
  1048. package/dist/node-sqlite-compat-CONMsl-x.mjs +0 -46
  1049. package/dist/node-sqlite-compat-CONMsl-x.mjs.map +0 -1
  1050. package/dist/normalize-CO2P8-iE.mjs +0 -191
  1051. package/dist/normalize-CO2P8-iE.mjs.map +0 -1
  1052. package/dist/oauth-authorization-DlMIL5_h.mjs +0 -274
  1053. package/dist/oauth-authorization-DlMIL5_h.mjs.map +0 -1
  1054. package/dist/oauth-clients-Djq9r_KP.mjs +0 -266
  1055. package/dist/oauth-clients-Djq9r_KP.mjs.map +0 -1
  1056. package/dist/oauth-state-store-BbjnZXNC.mjs +0 -50
  1057. package/dist/oauth-state-store-BbjnZXNC.mjs.map +0 -1
  1058. package/dist/oauth-user-lookup-vue9a64A.mjs +0 -26
  1059. package/dist/oauth-user-lookup-vue9a64A.mjs.map +0 -1
  1060. package/dist/options-SQCHQCPH.d.mts +0 -81
  1061. package/dist/options-SQCHQCPH.d.mts.map +0 -1
  1062. package/dist/parse-CVgO-Qai.d.mts +0 -168
  1063. package/dist/parse-CVgO-Qai.d.mts.map +0 -1
  1064. package/dist/parse-DY6OD1j_.mjs +0 -81
  1065. package/dist/parse-DY6OD1j_.mjs.map +0 -1
  1066. package/dist/passkey-config-X_H8128a.mjs +0 -46
  1067. package/dist/passkey-config-X_H8128a.mjs.map +0 -1
  1068. package/dist/paths-JxokKIbr.mjs +0 -77
  1069. package/dist/paths-JxokKIbr.mjs.map +0 -1
  1070. package/dist/patterns-BhAvqO0S.mjs +0 -145
  1071. package/dist/patterns-BhAvqO0S.mjs.map +0 -1
  1072. package/dist/placeholder-MSEd8gty.d.mts +0 -306
  1073. package/dist/placeholder-MSEd8gty.d.mts.map +0 -1
  1074. package/dist/plan-xjcWrAah.mjs +0 -135
  1075. package/dist/plan-xjcWrAah.mjs.map +0 -1
  1076. package/dist/plugins-DUXUt8B9.mjs +0 -277
  1077. package/dist/plugins-DUXUt8B9.mjs.map +0 -1
  1078. package/dist/policy-CUvwAARc.mjs +0 -45
  1079. package/dist/policy-CUvwAARc.mjs.map +0 -1
  1080. package/dist/portable-text-5O_ZGUjB.mjs +0 -307
  1081. package/dist/portable-text-5O_ZGUjB.mjs.map +0 -1
  1082. package/dist/preview-CIUcPYr6.mjs +0 -107
  1083. package/dist/preview-CIUcPYr6.mjs.map +0 -1
  1084. package/dist/protocol-B97DZaFr.d.mts +0 -61
  1085. package/dist/protocol-B97DZaFr.d.mts.map +0 -1
  1086. package/dist/public-submission-BFBUrqst.mjs +0 -250
  1087. package/dist/public-submission-BFBUrqst.mjs.map +0 -1
  1088. package/dist/public-url-Bn7U0D7-.mjs +0 -101
  1089. package/dist/public-url-Bn7U0D7-.mjs.map +0 -1
  1090. package/dist/query-B48peoRT.mjs +0 -890
  1091. package/dist/query-B48peoRT.mjs.map +0 -1
  1092. package/dist/query-C4IH0uhR.mjs +0 -41
  1093. package/dist/query-C4IH0uhR.mjs.map +0 -1
  1094. package/dist/rate-limit-BZ6nybgc.mjs +0 -120
  1095. package/dist/rate-limit-BZ6nybgc.mjs.map +0 -1
  1096. package/dist/receipt-B4wJj5Jq.mjs +0 -43
  1097. package/dist/receipt-B4wJj5Jq.mjs.map +0 -1
  1098. package/dist/redirect-Cd1E7VUt.mjs +0 -17
  1099. package/dist/redirect-Cd1E7VUt.mjs.map +0 -1
  1100. package/dist/redirect-iJf5fltD.mjs +0 -415
  1101. package/dist/redirect-iJf5fltD.mjs.map +0 -1
  1102. package/dist/redirects-CYu1u1aK.mjs +0 -446
  1103. package/dist/redirects-CYu1u1aK.mjs.map +0 -1
  1104. package/dist/redirects-Cv9apQKj.mjs +0 -148
  1105. package/dist/redirects-Cv9apQKj.mjs.map +0 -1
  1106. package/dist/relation-M4NUCb0b.mjs +0 -334
  1107. package/dist/relation-M4NUCb0b.mjs.map +0 -1
  1108. package/dist/relations-CCif47Oq.mjs +0 -403
  1109. package/dist/relations-CCif47Oq.mjs.map +0 -1
  1110. package/dist/relations-CK9CYUyr.mjs +0 -310
  1111. package/dist/relations-CK9CYUyr.mjs.map +0 -1
  1112. package/dist/request-cache-DzLYKm_x.mjs +0 -104
  1113. package/dist/request-cache-DzLYKm_x.mjs.map +0 -1
  1114. package/dist/request-meta-sZXt3sRo.mjs +0 -141
  1115. package/dist/request-meta-sZXt3sRo.mjs.map +0 -1
  1116. package/dist/resolve-2WbQsCvT.mjs +0 -199
  1117. package/dist/resolve-2WbQsCvT.mjs.map +0 -1
  1118. package/dist/route-wire--1hLuACz.mjs +0 -197
  1119. package/dist/route-wire--1hLuACz.mjs.map +0 -1
  1120. package/dist/routes-CUsM40Cc.mjs +0 -272
  1121. package/dist/routes-CUsM40Cc.mjs.map +0 -1
  1122. package/dist/runner-1y4J9fJB.mjs +0 -5742
  1123. package/dist/runner-1y4J9fJB.mjs.map +0 -1
  1124. package/dist/runner-D5_LzKXI.d.mts +0 -68
  1125. package/dist/runner-D5_LzKXI.d.mts.map +0 -1
  1126. package/dist/schema-BABiRdsH.mjs +0 -13
  1127. package/dist/schema-BABiRdsH.mjs.map +0 -1
  1128. package/dist/schema-Du3MzCG0.mjs +0 -446
  1129. package/dist/schema-Du3MzCG0.mjs.map +0 -1
  1130. package/dist/scopes-Dbk-ElhT.mjs +0 -34
  1131. package/dist/scopes-Dbk-ElhT.mjs.map +0 -1
  1132. package/dist/search-Bt1PL1jf.mjs +0 -448
  1133. package/dist/search-Bt1PL1jf.mjs.map +0 -1
  1134. package/dist/sections-Ddptx_o9.mjs +0 -346
  1135. package/dist/sections-Ddptx_o9.mjs.map +0 -1
  1136. package/dist/seo-CZT2oLtT.mjs +0 -114
  1137. package/dist/seo-CZT2oLtT.mjs.map +0 -1
  1138. package/dist/seo-D5w3-Azy.mjs +0 -133
  1139. package/dist/seo-D5w3-Azy.mjs.map +0 -1
  1140. package/dist/service-DuykXPyW.mjs +0 -150
  1141. package/dist/service-DuykXPyW.mjs.map +0 -1
  1142. package/dist/session-user-BhaVp8w0.mjs +0 -51
  1143. package/dist/session-user-BhaVp8w0.mjs.map +0 -1
  1144. package/dist/settings-2xNYr90o.mjs +0 -51
  1145. package/dist/settings-2xNYr90o.mjs.map +0 -1
  1146. package/dist/settings-CgjRWGW9.mjs +0 -439
  1147. package/dist/settings-CgjRWGW9.mjs.map +0 -1
  1148. package/dist/settings-DYidIB26.mjs +0 -61
  1149. package/dist/settings-DYidIB26.mjs.map +0 -1
  1150. package/dist/setup-complete-bOogcHWG.mjs +0 -26
  1151. package/dist/setup-complete-bOogcHWG.mjs.map +0 -1
  1152. package/dist/setup-nonce-0EGuKM4s.mjs +0 -25
  1153. package/dist/setup-nonce-0EGuKM4s.mjs.map +0 -1
  1154. package/dist/site-settings-DOgRUoFX.mjs +0 -50
  1155. package/dist/site-settings-DOgRUoFX.mjs.map +0 -1
  1156. package/dist/site-url-BU_bbxwj.mjs +0 -16
  1157. package/dist/site-url-BU_bbxwj.mjs.map +0 -1
  1158. package/dist/snapshot-CugwUqKQ.mjs +0 -237
  1159. package/dist/snapshot-CugwUqKQ.mjs.map +0 -1
  1160. package/dist/ssrf-CJUnJymJ.mjs +0 -406
  1161. package/dist/ssrf-CJUnJymJ.mjs.map +0 -1
  1162. package/dist/stage-DgrBz_du.mjs +0 -662
  1163. package/dist/stage-DgrBz_du.mjs.map +0 -1
  1164. package/dist/state-DDiPySSG.mjs +0 -153
  1165. package/dist/state-DDiPySSG.mjs.map +0 -1
  1166. package/dist/status-DZKIG4a9.mjs +0 -30
  1167. package/dist/status-DZKIG4a9.mjs.map +0 -1
  1168. package/dist/storage-query-Bdv7A62k.d.mts +0 -1576
  1169. package/dist/storage-query-Bdv7A62k.d.mts.map +0 -1
  1170. package/dist/tar-_1AgTYFu.mjs +0 -449
  1171. package/dist/tar-_1AgTYFu.mjs.map +0 -1
  1172. package/dist/target-_7pn2Gbg.mjs +0 -27
  1173. package/dist/target-_7pn2Gbg.mjs.map +0 -1
  1174. package/dist/taxonomies-C1IwNe8Q.mjs +0 -697
  1175. package/dist/taxonomies-C1IwNe8Q.mjs.map +0 -1
  1176. package/dist/taxonomies-C_XMoRcX.mjs +0 -939
  1177. package/dist/taxonomies-C_XMoRcX.mjs.map +0 -1
  1178. package/dist/taxonomy-C3Fu1YeH.mjs +0 -525
  1179. package/dist/taxonomy-C3Fu1YeH.mjs.map +0 -1
  1180. package/dist/tokens-u78jETkX.mjs +0 -171
  1181. package/dist/tokens-u78jETkX.mjs.map +0 -1
  1182. package/dist/transaction-BcJO4Tmc.mjs +0 -29
  1183. package/dist/transaction-BcJO4Tmc.mjs.map +0 -1
  1184. package/dist/transfer-BhUCrgDc.mjs +0 -8675
  1185. package/dist/transfer-BhUCrgDc.mjs.map +0 -1
  1186. package/dist/transfer-DIGvR9Af.mjs +0 -166
  1187. package/dist/transfer-DIGvR9Af.mjs.map +0 -1
  1188. package/dist/transfer-download-Pml7RMio.mjs +0 -33
  1189. package/dist/transfer-download-Pml7RMio.mjs.map +0 -1
  1190. package/dist/transformations-9gfpwY65.mjs +0 -196
  1191. package/dist/transformations-9gfpwY65.mjs.map +0 -1
  1192. package/dist/transport-BIfH7_hx.d.mts +0 -42
  1193. package/dist/transport-BIfH7_hx.d.mts.map +0 -1
  1194. package/dist/transport-DKWIq53q.mjs +0 -136
  1195. package/dist/transport-DKWIq53q.mjs.map +0 -1
  1196. package/dist/trusted-proxy-tKiVtyTD.mjs +0 -51
  1197. package/dist/trusted-proxy-tKiVtyTD.mjs.map +0 -1
  1198. package/dist/turnstile-DpsoyOfg.mjs +0 -53
  1199. package/dist/turnstile-DpsoyOfg.mjs.map +0 -1
  1200. package/dist/types-B4sUC2p1.d.mts +0 -198
  1201. package/dist/types-B4sUC2p1.d.mts.map +0 -1
  1202. package/dist/types-B7Lmsh1E.d.mts +0 -887
  1203. package/dist/types-B7Lmsh1E.d.mts.map +0 -1
  1204. package/dist/types-BZakh7Ym.mjs +0 -22
  1205. package/dist/types-BZakh7Ym.mjs.map +0 -1
  1206. package/dist/types-B_CppEmv.d.mts +0 -264
  1207. package/dist/types-B_CppEmv.d.mts.map +0 -1
  1208. package/dist/types-BcrBrE6-.mjs +0 -159
  1209. package/dist/types-BcrBrE6-.mjs.map +0 -1
  1210. package/dist/types-BkUg2yHx.mjs +0 -92
  1211. package/dist/types-BkUg2yHx.mjs.map +0 -1
  1212. package/dist/types-CAZgq9fO.d.mts +0 -124
  1213. package/dist/types-CAZgq9fO.d.mts.map +0 -1
  1214. package/dist/types-Cd-O03VG.d.mts +0 -363
  1215. package/dist/types-Cd-O03VG.d.mts.map +0 -1
  1216. package/dist/types-Cr-Kg-3D.d.mts +0 -1641
  1217. package/dist/types-Cr-Kg-3D.d.mts.map +0 -1
  1218. package/dist/types-D2fvWd1i.d.mts +0 -359
  1219. package/dist/types-D2fvWd1i.d.mts.map +0 -1
  1220. package/dist/types-D7HUsguf.mjs +0 -77
  1221. package/dist/types-D7HUsguf.mjs.map +0 -1
  1222. package/dist/types-DA1Te3Oy.d.mts +0 -198
  1223. package/dist/types-DA1Te3Oy.d.mts.map +0 -1
  1224. package/dist/types-DhV6Q5bP.mjs +0 -18
  1225. package/dist/types-DhV6Q5bP.mjs.map +0 -1
  1226. package/dist/types-DnnVSl6Y.d.mts +0 -85
  1227. package/dist/types-DnnVSl6Y.d.mts.map +0 -1
  1228. package/dist/types-VT4-BugW.mjs +0 -16
  1229. package/dist/types-VT4-BugW.mjs.map +0 -1
  1230. package/dist/upload-attempts-B68ZGNu9.mjs +0 -32
  1231. package/dist/upload-attempts-B68ZGNu9.mjs.map +0 -1
  1232. package/dist/url-pattern-CCeZMGOh.mjs +0 -33
  1233. package/dist/url-pattern-CCeZMGOh.mjs.map +0 -1
  1234. package/dist/user-DDSL-sGw.mjs +0 -171
  1235. package/dist/user-DDSL-sGw.mjs.map +0 -1
  1236. package/dist/utils-DdhmO9w9.mjs +0 -439
  1237. package/dist/utils-DdhmO9w9.mjs.map +0 -1
  1238. package/dist/validate-CHosPEhs.mjs +0 -453
  1239. package/dist/validate-CHosPEhs.mjs.map +0 -1
  1240. package/dist/validate-CM79QXYE.d.mts +0 -432
  1241. package/dist/validate-CM79QXYE.d.mts.map +0 -1
  1242. package/dist/validation-BFecQczG.mjs +0 -218
  1243. package/dist/validation-BFecQczG.mjs.map +0 -1
  1244. package/dist/version-BRZXVifl.mjs +0 -9
  1245. package/dist/version-BRZXVifl.mjs.map +0 -1
  1246. package/dist/version-DUQDHgrf.mjs +0 -7
  1247. package/dist/version-DUQDHgrf.mjs.map +0 -1
  1248. package/dist/widgets-WdV72brA.mjs +0 -126
  1249. package/dist/widgets-WdV72brA.mjs.map +0 -1
  1250. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts +0 -34
  1251. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts.map +0 -1
  1252. package/dist/wxr-taxonomies-DP6ESgMN.mjs +0 -372
  1253. package/dist/wxr-taxonomies-DP6ESgMN.mjs.map +0 -1
  1254. package/dist/zod-generator-D6uE4WiS.mjs +0 -389
  1255. package/dist/zod-generator-D6uE4WiS.mjs.map +0 -1
  1256. package/src/astro/routes/api/relations/[id]/translations.ts +0 -33
  1257. /package/dist/{api-tokens-CE1ECIg0.mjs → api-tokens-FaG1zPsj.mjs} +0 -0
  1258. /package/dist/{ssrf-DpBH7aOt.mjs → ssrf-DZOt8Qof.mjs} +0 -0
@@ -1,1097 +0,0 @@
1
- import { a as MAX_COLLECTION_GROUP_LENGTH, o as MAX_COLLECTION_LIST_COLUMNS } from "./types-BcrBrE6-.mjs";
2
- import { t as SQL_BATCH_SIZE } from "./chunks-Dms7Uxbt.mjs";
3
- import { t as SEARCH_TOKENIZERS } from "./types-DhV6Q5bP.mjs";
4
- import { C as roleLevel, g as cursorPaginationQuery, v as httpUrl, w as slugPattern, y as localeCode } from "./redirects-Cv9apQKj.mjs";
5
- import { t as compileUrlPattern } from "./url-pattern-CCeZMGOh.mjs";
6
- import { z } from "zod";
7
-
8
- //#region src/api/schemas/bylines.ts
9
- /** Slug pattern: lowercase letters, digits, and hyphens; must start with a letter */
10
- const bylineSlugPattern = /^[a-z][a-z0-9-]*$/;
11
- const bylineSummarySchema = z.object({
12
- id: z.string(),
13
- slug: z.string(),
14
- displayName: z.string(),
15
- bio: z.string().nullable(),
16
- avatarMediaId: z.string().nullable(),
17
- avatarStorageKey: z.string().nullish(),
18
- avatarAlt: z.string().nullish(),
19
- avatarBlurhash: z.string().nullish(),
20
- avatarDominantColor: z.string().nullish(),
21
- websiteUrl: z.string().nullable(),
22
- userId: z.string().nullable(),
23
- isGuest: z.boolean(),
24
- createdAt: z.string(),
25
- updatedAt: z.string(),
26
- locale: z.string(),
27
- translationGroup: z.string().nullable(),
28
- customFields: z.record(z.string(), z.union([
29
- z.string(),
30
- z.boolean(),
31
- z.null()
32
- ])).optional()
33
- }).meta({ id: "BylineSummary" });
34
- const bylineCreditSchema = z.object({
35
- byline: bylineSummarySchema,
36
- sortOrder: z.number().int(),
37
- roleLabel: z.string().nullable(),
38
- source: z.enum(["explicit", "inferred"]).optional().meta({ description: "Whether this credit was explicitly assigned or inferred from authorId" })
39
- }).meta({ id: "BylineCredit" });
40
- const contentBylineInputSchema = z.object({
41
- bylineId: z.string().min(1),
42
- roleLabel: z.string().nullish()
43
- }).meta({ id: "ContentBylineInput" });
44
- const bylinesListQuery = cursorPaginationQuery.extend({
45
- search: z.string().optional(),
46
- isGuest: z.coerce.boolean().optional(),
47
- userId: z.string().optional(),
48
- locale: localeCode.optional()
49
- }).meta({ id: "BylinesListQuery" });
50
- const bylineCreateBody = z.object({
51
- slug: z.string().min(1).regex(bylineSlugPattern, "Slug must contain only lowercase letters, digits, and hyphens"),
52
- displayName: z.string().min(1),
53
- bio: z.string().nullish(),
54
- avatarMediaId: z.string().nullish(),
55
- websiteUrl: httpUrl.nullish(),
56
- userId: z.string().nullish(),
57
- isGuest: z.boolean().optional(),
58
- locale: localeCode.optional(),
59
- translationOf: z.string().min(1).optional(),
60
- customFields: z.record(z.string(), z.unknown()).optional()
61
- }).meta({ id: "BylineCreateBody" });
62
- const bylineTranslationCreateBody = z.object({
63
- locale: localeCode,
64
- slug: z.string().min(1).regex(bylineSlugPattern, "Slug must contain only lowercase letters, digits, and hyphens").optional(),
65
- displayName: z.string().min(1).optional(),
66
- bio: z.string().nullish(),
67
- avatarMediaId: z.string().nullish(),
68
- websiteUrl: httpUrl.nullish()
69
- }).meta({ id: "BylineTranslationCreateBody" });
70
- const bylineTranslationsResponseSchema = z.object({ items: z.array(bylineSummarySchema) }).meta({ id: "BylineTranslationsResponse" });
71
- const bylineUpdateBody = z.object({
72
- slug: z.string().min(1).regex(bylineSlugPattern, "Slug must contain only lowercase letters, digits, and hyphens").optional(),
73
- displayName: z.string().min(1).optional(),
74
- bio: z.string().nullish(),
75
- avatarMediaId: z.string().nullish(),
76
- websiteUrl: httpUrl.nullish(),
77
- userId: z.string().nullish(),
78
- isGuest: z.boolean().optional(),
79
- customFields: z.record(z.string(), z.unknown()).optional()
80
- }).meta({ id: "BylineUpdateBody" });
81
- const bylineListResponseSchema = z.object({
82
- items: z.array(bylineSummarySchema),
83
- nextCursor: z.string().optional()
84
- }).meta({ id: "BylineListResponse" });
85
-
86
- //#endregion
87
- //#region src/api/schemas/content.ts
88
- const contentDateTime = z.iso.datetime({
89
- offset: true,
90
- message: "must be an ISO 8601 datetime"
91
- }).or(z.iso.datetime({
92
- offset: true,
93
- precision: -1,
94
- message: "must be an ISO 8601 datetime"
95
- }));
96
- /** SEO input — per-content meta fields */
97
- const contentSeoInput = z.object({
98
- title: z.string().max(200).nullish(),
99
- description: z.string().max(500).nullish(),
100
- image: z.string().nullish(),
101
- canonical: httpUrl.nullish(),
102
- noIndex: z.boolean().optional()
103
- }).meta({ id: "ContentSeoInput" });
104
- /** ISO 8601 date or datetime bound for the content-list date range filter. */
105
- const contentDateBound = z.union([contentDateTime, z.iso.date({ message: "must be an ISO 8601 date" })]).optional();
106
- /**
107
- * Byline ids for the content-list filter: either the literal `none` or a
108
- * comma-separated list, parsed into an array.
109
- *
110
- * The 25-id cap keeps the `IN (...)` clause clear of D1's bound-parameter
111
- * ceiling once the rest of the list query's placeholders are counted
112
- * (`SQL_BATCH_SIZE` is 50 for a query binding nothing else).
113
- */
114
- 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" });
115
- /** Query-string boolean. Explicit values only — `z.coerce.boolean()` reads "false" as true. */
116
- const booleanParam = z.enum([
117
- "1",
118
- "0",
119
- "true",
120
- "false"
121
- ]).optional().transform((value) => value === "1" || value === "true");
122
- const contentFieldComparable = z.union([z.string().max(2048), z.number()]);
123
- const contentFieldFilterScalar = z.union([
124
- contentFieldComparable,
125
- z.boolean(),
126
- z.null()
127
- ]);
128
- const contentFieldFilterValue = z.union([
129
- contentFieldFilterScalar,
130
- z.object({ in: z.array(z.union([contentFieldComparable, z.boolean()])).min(1).max(SQL_BATCH_SIZE) }).strict(),
131
- z.object({
132
- gt: contentFieldComparable.optional(),
133
- gte: contentFieldComparable.optional(),
134
- lt: contentFieldComparable.optional(),
135
- lte: contentFieldComparable.optional()
136
- }).strict().refine((value) => Object.values(value).some((bound) => bound !== void 0), { message: "Range filter must include at least one bound" })
137
- ]);
138
- function contentFieldFilterOperandCount(value) {
139
- if (value === null) return 0;
140
- if (!value || typeof value !== "object" || Array.isArray(value)) return 1;
141
- if ("in" in value && Array.isArray(value.in)) return value.in.length;
142
- return Object.values(value).filter((bound) => bound !== void 0).length;
143
- }
144
- /** AND-combined filters over custom fields explicitly marked as indexed. */
145
- 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}` });
146
- const contentFieldFiltersQuery = z.string().max(8192).transform((value, ctx) => {
147
- try {
148
- return JSON.parse(value);
149
- } catch {
150
- ctx.addIssue({
151
- code: "custom",
152
- message: "must be valid JSON"
153
- });
154
- return z.NEVER;
155
- }
156
- }).pipe(contentFieldFiltersSchema);
157
- /** Statuses the content list can filter by. */
158
- const CONTENT_STATUSES = [
159
- "draft",
160
- "published",
161
- "scheduled",
162
- "archived",
163
- "pending",
164
- "private",
165
- "future"
166
- ];
167
- const contentListQuery = cursorPaginationQuery.extend({
168
- status: z.enum([...CONTENT_STATUSES, "all"]).optional().transform((status) => status === "all" ? void 0 : status),
169
- orderBy: z.string().optional(),
170
- order: z.enum(["asc", "desc"]).optional(),
171
- locale: localeCode.optional(),
172
- q: z.string().trim().min(1).max(200).optional(),
173
- authorId: z.string().min(1).max(64).optional(),
174
- dateField: z.enum([
175
- "createdAt",
176
- "updatedAt",
177
- "publishedAt"
178
- ]).optional(),
179
- dateFrom: contentDateBound,
180
- dateTo: contentDateBound,
181
- bylines: bylineFilterParam,
182
- includeInferredBylines: booleanParam,
183
- fieldFilters: contentFieldFiltersQuery.optional()
184
- }).transform(({ bylines, ...rest }) => ({
185
- ...rest,
186
- bylinesNone: bylines === "none",
187
- bylines: bylines === "none" ? void 0 : bylines
188
- })).meta({ id: "ContentListQuery" });
189
- /** ISO 8601 datetime for `publishedAt` / `createdAt`. Routes gate writes behind `content:publish_any`. */
190
- const contentDateOverride = contentDateTime.nullish();
191
- const overrideLockFlag = z.boolean().optional().meta({ description: "Write even though another editor holds this entry's edit lock. Without it the write is refused with 409 ENTRY_LOCKED." });
192
- const contentCreateBody = z.object({
193
- data: z.record(z.string(), z.unknown()),
194
- slug: z.string().nullish(),
195
- status: z.enum(["draft"]).optional(),
196
- bylines: z.array(contentBylineInputSchema).optional(),
197
- locale: localeCode.optional(),
198
- translationOf: z.string().optional(),
199
- seo: contentSeoInput.optional(),
200
- taxonomies: z.record(z.string(), z.array(z.string())).optional().meta({ description: "Taxonomy term assignments as { taxonomyName: [termSlug, ...] }, resolved in the entry's locale." }),
201
- publishedAt: contentDateOverride,
202
- createdAt: contentDateOverride,
203
- migrateBlocks: z.boolean().optional(),
204
- replaceBlocks: z.boolean().optional()
205
- }).meta({ id: "ContentCreateBody" });
206
- const contentUpdateBody = z.object({
207
- data: z.record(z.string(), z.unknown()).optional(),
208
- slug: z.string().nullish(),
209
- status: z.enum(["draft"]).optional(),
210
- authorId: z.string().nullish(),
211
- bylines: z.array(contentBylineInputSchema).optional(),
212
- _rev: z.string().optional().meta({ description: "Opaque revision token for optimistic concurrency" }),
213
- skipRevision: z.boolean().optional(),
214
- overrideLock: overrideLockFlag,
215
- seo: contentSeoInput.optional(),
216
- 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." }),
217
- publishedAt: contentDateOverride,
218
- migrateBlocks: z.boolean().optional(),
219
- replaceBlocks: z.boolean().optional()
220
- }).meta({ id: "ContentUpdateBody" });
221
- const contentScheduleBody = z.object({
222
- scheduledAt: contentDateTime.meta({
223
- description: "ISO 8601 datetime with Z or an explicit offset for scheduled publishing",
224
- examples: ["2025-06-15T09:00:00Z"]
225
- }),
226
- overrideLock: overrideLockFlag,
227
- _rev: z.string().optional().meta({ description: "Opaque revision token for optimistic concurrency" })
228
- }).meta({ id: "ContentScheduleBody" });
229
- const contentRevisionConditionBody = z.object({
230
- _rev: z.string().optional().meta({ description: "Opaque revision token for optimistic concurrency" }),
231
- overrideLock: overrideLockFlag
232
- }).meta({ id: "ContentRevisionConditionBody" });
233
- 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" });
234
- const contentPreviewUrlBody = z.object({
235
- expiresIn: z.union([z.string(), z.number()]).optional(),
236
- pathPattern: z.string().optional()
237
- }).meta({ id: "ContentPreviewUrlBody" });
238
- const contentTermsBody = z.object({ termIds: z.array(z.string()) }).meta({ id: "ContentTermsBody" });
239
- /** A single term variant returned as part of an entry's term assignments. */
240
- const contentEntryTermSchema = z.object({
241
- id: z.string(),
242
- name: z.string().meta({ description: "Taxonomy name" }),
243
- slug: z.string(),
244
- label: z.string(),
245
- parentId: z.string().nullable(),
246
- locale: localeCode,
247
- translationGroup: z.string().nullable()
248
- }).meta({ id: "ContentEntryTerm" });
249
- /** Term assignments response for the content terms endpoint. */
250
- const contentTermsResponseSchema = z.object({
251
- terms: z.array(contentEntryTermSchema),
252
- unresolved: z.array(z.object({
253
- translationGroup: z.string(),
254
- availableLocales: z.array(localeCode),
255
- translations: z.array(z.object({
256
- id: z.string(),
257
- slug: z.string(),
258
- locale: localeCode
259
- }))
260
- })),
261
- entryLocale: localeCode,
262
- defaultLocale: localeCode,
263
- implicitDefaultLocale: z.boolean()
264
- }).meta({ id: "ContentTermsResponse" });
265
- const contentTrashQuery = cursorPaginationQuery.extend({ locale: localeCode.optional().meta({ description: "Restrict the trash listing to entries in this locale" }) }).meta({ id: "ContentTrashQuery" });
266
- /** SEO metadata on a content item */
267
- const contentSeoSchema = z.object({
268
- title: z.string().nullable(),
269
- description: z.string().nullable(),
270
- image: z.string().nullable(),
271
- canonical: z.string().nullable(),
272
- noIndex: z.boolean()
273
- }).meta({ id: "ContentSeo" });
274
- /** A single content item as returned by the API */
275
- const contentItemSchema = z.object({
276
- id: z.string(),
277
- type: z.string().meta({ description: "Collection slug this item belongs to" }),
278
- slug: z.string().nullable(),
279
- status: z.string().meta({ description: "draft, published, or scheduled" }),
280
- data: z.record(z.string(), z.unknown()).meta({ description: "User-defined field values" }),
281
- authorId: z.string().nullable(),
282
- primaryBylineId: z.string().nullable(),
283
- byline: bylineSummarySchema.nullable().optional(),
284
- bylines: z.array(bylineCreditSchema).optional(),
285
- createdAt: z.string(),
286
- updatedAt: z.string(),
287
- publishedAt: z.string().nullable(),
288
- scheduledAt: z.string().nullable(),
289
- liveRevisionId: z.string().nullable(),
290
- draftRevisionId: z.string().nullable(),
291
- version: z.number().int(),
292
- locale: z.string().nullable(),
293
- translationGroup: z.string().nullable(),
294
- seo: contentSeoSchema.optional()
295
- }).meta({ id: "ContentItem" });
296
- /** Response for single content item endpoints (get, create, update) */
297
- const contentResponseSchema = z.object({
298
- item: contentItemSchema,
299
- _rev: z.string().optional().meta({ description: "Opaque revision token for optimistic concurrency" })
300
- }).meta({ id: "ContentResponse" });
301
- /** Response for restoring an item from trash */
302
- const contentRestoreResponseSchema = z.object({
303
- restored: z.literal(true),
304
- item: contentItemSchema,
305
- _rev: z.string().meta({ description: "Opaque revision token for optimistic concurrency" })
306
- }).meta({ id: "ContentRestoreResponse" });
307
- /** Response for content list endpoints */
308
- const contentListResponseSchema = z.object({
309
- items: z.array(contentItemSchema),
310
- nextCursor: z.string().optional(),
311
- total: z.number().int().nonnegative().optional()
312
- }).meta({ id: "ContentListResponse" });
313
- /** A distinct content author for the admin author filter */
314
- const contentAuthorSchema = z.object({
315
- id: z.string(),
316
- name: z.string().nullable(),
317
- email: z.string(),
318
- avatarUrl: z.string().nullable()
319
- }).meta({ id: "ContentAuthor" });
320
- /** Response for the content authors endpoint */
321
- const contentAuthorsResponseSchema = z.object({ items: z.array(contentAuthorSchema) }).meta({ id: "ContentAuthorsResponse" });
322
- /** Trashed content item */
323
- const trashedContentItemSchema = z.object({
324
- id: z.string(),
325
- type: z.string(),
326
- slug: z.string().nullable(),
327
- status: z.string(),
328
- locale: z.string().nullable(),
329
- translationGroup: z.string().nullable(),
330
- data: z.record(z.string(), z.unknown()),
331
- authorId: z.string().nullable(),
332
- createdAt: z.string(),
333
- updatedAt: z.string(),
334
- publishedAt: z.string().nullable(),
335
- deletedAt: z.string()
336
- }).meta({ id: "TrashedContentItem" });
337
- /** Response for trashed content list */
338
- const trashedContentListResponseSchema = z.object({
339
- items: z.array(trashedContentItemSchema),
340
- nextCursor: z.string().optional()
341
- }).meta({ id: "TrashedContentListResponse" });
342
- /** Response for content compare (live vs draft) */
343
- const contentCompareResponseSchema = z.object({
344
- hasChanges: z.boolean(),
345
- live: z.record(z.string(), z.unknown()).nullable(),
346
- draft: z.record(z.string(), z.unknown()).nullable()
347
- }).meta({ id: "ContentCompareResponse" });
348
- /** Translation summary for a content item */
349
- const contentTranslationSchema = z.object({
350
- id: z.string(),
351
- locale: z.string().nullable(),
352
- slug: z.string().nullable(),
353
- status: z.string(),
354
- updatedAt: z.string()
355
- });
356
- /** Response for content translations endpoint */
357
- const contentTranslationsResponseSchema = z.object({
358
- translationGroup: z.string(),
359
- translations: z.array(contentTranslationSchema)
360
- }).meta({ id: "ContentTranslationsResponse" });
361
-
362
- //#endregion
363
- //#region src/api/schemas/schema.ts
364
- const collectionSupportValues = z.enum([
365
- "drafts",
366
- "revisions",
367
- "preview",
368
- "scheduling",
369
- "search",
370
- "seo"
371
- ]);
372
- const collectionSourcePattern = /^(template:.+|import:.+|manual|discovered|seed)$/;
373
- const collectionListColumns = z.array(z.string().min(1).max(63).regex(slugPattern, "Invalid field slug format"));
374
- const collectionAdminInputConfig = z.object({ listColumns: collectionListColumns.max(MAX_COLLECTION_LIST_COLUMNS, `At most ${MAX_COLLECTION_LIST_COLUMNS} list columns are allowed`).optional() });
375
- const collectionAdminResponseConfig = z.object({ listColumns: collectionListColumns.optional() });
376
- const fieldTypeValues = z.enum([
377
- "string",
378
- "text",
379
- "url",
380
- "number",
381
- "integer",
382
- "boolean",
383
- "datetime",
384
- "select",
385
- "multiSelect",
386
- "portableText",
387
- "image",
388
- "file",
389
- "reference",
390
- "json",
391
- "slug",
392
- "repeater",
393
- "blocks"
394
- ]);
395
- const repeaterSubFieldSchema = z.object({
396
- slug: z.string().min(1).max(63).regex(slugPattern, "Invalid slug format"),
397
- type: z.enum([
398
- "string",
399
- "text",
400
- "url",
401
- "number",
402
- "integer",
403
- "boolean",
404
- "datetime",
405
- "select",
406
- "image"
407
- ]),
408
- label: z.string().min(1),
409
- required: z.boolean().optional(),
410
- options: z.array(z.string()).optional()
411
- });
412
- const urlPatternValue = z.string().superRefine((pattern, ctx) => {
413
- try {
414
- compileUrlPattern(pattern);
415
- } catch {
416
- ctx.addIssue({
417
- code: "custom",
418
- message: "Invalid URL pattern"
419
- });
420
- }
421
- });
422
- const fieldValidation = z.object({
423
- required: z.boolean().optional(),
424
- min: z.number().optional(),
425
- max: z.number().optional(),
426
- minLength: z.number().int().min(0).optional(),
427
- maxLength: z.number().int().min(0).optional(),
428
- pattern: z.string().optional(),
429
- options: z.array(z.string()).optional(),
430
- subFields: z.array(repeaterSubFieldSchema).min(1).optional(),
431
- minItems: z.number().int().min(0).optional(),
432
- maxItems: z.number().int().min(1).optional(),
433
- 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(),
434
- allowedTypes: z.array(z.string().min(1).max(63).regex(slugPattern)).optional(),
435
- retiredTypes: z.array(z.string().min(1).max(63).regex(slugPattern)).optional()
436
- }).superRefine((validation, ctx) => {
437
- for (const [minimum, maximum] of [
438
- ["min", "max"],
439
- ["minLength", "maxLength"],
440
- ["minItems", "maxItems"]
441
- ]) {
442
- const minimumValue = validation[minimum];
443
- const maximumValue = validation[maximum];
444
- if (minimumValue !== void 0 && maximumValue !== void 0 && minimumValue > maximumValue) ctx.addIssue({
445
- code: "custom",
446
- path: [maximum],
447
- message: `${maximum} must be greater than or equal to ${minimum}`
448
- });
449
- }
450
- if (validation.pattern !== void 0) try {
451
- RegExp(validation.pattern);
452
- } catch {
453
- ctx.addIssue({
454
- code: "custom",
455
- path: ["pattern"],
456
- message: "Invalid validation pattern"
457
- });
458
- }
459
- }).optional();
460
- const fieldWidgetOptions = z.record(z.string(), z.unknown()).optional();
461
- /** Admin sidebar folder label; an empty string clears it like `null`. */
462
- const navGroupValue = z.string().trim().max(MAX_COLLECTION_GROUP_LENGTH);
463
- const createCollectionBody = z.object({
464
- slug: z.string().min(1).max(63).regex(slugPattern, "Invalid slug format"),
465
- label: z.string().min(1),
466
- labelSingular: z.string().optional(),
467
- description: z.string().optional(),
468
- icon: z.string().optional(),
469
- admin: collectionAdminInputConfig.optional(),
470
- supports: z.array(collectionSupportValues).optional(),
471
- source: z.string().regex(collectionSourcePattern).optional(),
472
- urlPattern: urlPatternValue.optional(),
473
- routable: z.boolean().optional(),
474
- hasSeo: z.boolean().optional(),
475
- hidden: z.boolean().optional(),
476
- sortOrder: z.number().int().nullish(),
477
- editLocking: z.boolean().optional(),
478
- group: navGroupValue.nullish()
479
- }).meta({ id: "CreateCollectionBody" });
480
- const updateCollectionBody = z.object({
481
- label: z.string().min(1).optional(),
482
- labelSingular: z.string().optional(),
483
- description: z.string().optional(),
484
- icon: z.string().optional(),
485
- admin: collectionAdminInputConfig.optional(),
486
- supports: z.array(collectionSupportValues).optional(),
487
- urlPattern: urlPatternValue.nullish(),
488
- routable: z.boolean().optional(),
489
- hasSeo: z.boolean().optional(),
490
- hidden: z.boolean().optional(),
491
- sortOrder: z.number().int().nullish(),
492
- group: navGroupValue.nullish(),
493
- commentsEnabled: z.boolean().optional(),
494
- commentsModeration: z.enum([
495
- "all",
496
- "first_time",
497
- "none"
498
- ]).optional(),
499
- commentsClosedAfterDays: z.number().int().min(0).optional(),
500
- commentsAutoApproveUsers: z.boolean().optional(),
501
- editLocking: z.boolean().optional(),
502
- titleField: z.string().min(1).max(63).regex(slugPattern, "Invalid field slug format").nullish(),
503
- dateField: z.string().min(1).max(63).regex(slugPattern, "Invalid field slug format").nullish()
504
- }).meta({ id: "UpdateCollectionBody" });
505
- const createFieldBody = z.object({
506
- slug: z.string().min(1).max(63).regex(slugPattern, "Invalid slug format"),
507
- label: z.string().min(1),
508
- type: fieldTypeValues,
509
- required: z.boolean().optional(),
510
- unique: z.boolean().optional(),
511
- defaultValue: z.unknown().optional(),
512
- validation: fieldValidation.nullable(),
513
- widget: z.string().optional(),
514
- options: fieldWidgetOptions,
515
- sortOrder: z.number().int().min(0).optional(),
516
- searchable: z.boolean().optional(),
517
- indexed: z.boolean().optional(),
518
- translatable: z.boolean().optional()
519
- }).meta({ id: "CreateFieldBody" });
520
- const updateFieldBody = z.object({
521
- label: z.string().min(1).optional(),
522
- type: fieldTypeValues.optional(),
523
- required: z.boolean().optional(),
524
- unique: z.boolean().optional(),
525
- defaultValue: z.unknown().optional(),
526
- validation: fieldValidation.nullable(),
527
- widget: z.string().optional(),
528
- options: fieldWidgetOptions,
529
- sortOrder: z.number().int().min(0).optional(),
530
- searchable: z.boolean().optional(),
531
- indexed: z.boolean().optional(),
532
- translatable: z.boolean().optional()
533
- }).meta({ id: "UpdateFieldBody" });
534
- const fieldReorderBody = z.object({ fieldSlugs: z.array(z.string().min(1)) }).meta({ id: "FieldReorderBody" });
535
- const collectionReorderBody = z.object({ slugs: z.array(z.string().min(1)) }).meta({ id: "CollectionReorderBody" });
536
- const orphanRegisterBody = z.object({
537
- label: z.string().optional(),
538
- labelSingular: z.string().optional(),
539
- description: z.string().optional()
540
- }).meta({ id: "OrphanRegisterBody" });
541
- const schemaExportQuery = z.object({ format: z.string().optional() });
542
- const blockFieldTypeValues = z.enum([
543
- "string",
544
- "text",
545
- "url",
546
- "number",
547
- "integer",
548
- "boolean",
549
- "datetime",
550
- "select",
551
- "multiSelect",
552
- "portableText",
553
- "image",
554
- "file",
555
- "repeater"
556
- ]);
557
- const blockFieldValidation = z.object({
558
- min: z.number().optional(),
559
- max: z.number().optional(),
560
- minLength: z.number().int().min(0).optional(),
561
- maxLength: z.number().int().min(0).optional(),
562
- pattern: z.string().optional(),
563
- options: z.array(z.string()).optional(),
564
- subFields: z.array(repeaterSubFieldSchema).min(1).optional(),
565
- minItems: z.number().int().min(0).optional(),
566
- maxItems: z.number().int().min(1).optional(),
567
- allowedMimeTypes: z.array(z.string()).min(1).max(64).optional()
568
- }).strict().optional();
569
- const blockFieldDefinitionSchema = z.object({
570
- slug: z.string().min(1).max(63).regex(slugPattern, "Invalid field slug format"),
571
- label: z.string().min(1).max(200),
572
- type: blockFieldTypeValues,
573
- required: z.boolean().optional(),
574
- defaultValue: z.unknown().optional(),
575
- validation: blockFieldValidation,
576
- options: z.object({ darkVariant: z.boolean().optional() }).strict().optional()
577
- }).strict();
578
- const createBlockTypeBody = z.object({
579
- slug: z.string().min(1).max(63).regex(slugPattern, "Invalid block type slug format"),
580
- label: z.string().min(1).max(200),
581
- description: z.string().optional(),
582
- icon: z.string().optional(),
583
- category: z.string().optional(),
584
- fields: z.array(blockFieldDefinitionSchema)
585
- }).strict().meta({ id: "CreateBlockTypeBody" });
586
- const updateBlockTypeBody = z.object({
587
- expectedFingerprint: z.string().min(1),
588
- label: z.string().min(1).max(200).optional(),
589
- description: z.string().nullish(),
590
- icon: z.string().nullish(),
591
- category: z.string().nullish(),
592
- fields: z.array(blockFieldDefinitionSchema).optional(),
593
- breaking: z.boolean().optional()
594
- }).strict().meta({ id: "UpdateBlockTypeBody" });
595
- const activateBlockTypeVersionBody = z.object({ expectedFingerprint: z.string().min(1) }).strict().meta({ id: "ActivateBlockTypeVersionBody" });
596
- const collectionGetQuery = z.object({ includeFields: z.string().transform((v) => v === "true").optional() });
597
- const collectionSchema = z.object({
598
- id: z.string(),
599
- slug: z.string(),
600
- label: z.string(),
601
- labelSingular: z.string().nullable(),
602
- description: z.string().nullable(),
603
- icon: z.string().nullable(),
604
- admin: collectionAdminResponseConfig.optional(),
605
- supports: z.array(z.string()),
606
- source: z.string().nullable(),
607
- urlPattern: z.string().nullable(),
608
- routable: z.boolean(),
609
- hasSeo: z.boolean(),
610
- hidden: z.boolean(),
611
- sortOrder: z.number().int().nullable(),
612
- editLocking: z.boolean(),
613
- group: z.string().nullish(),
614
- createdAt: z.string(),
615
- updatedAt: z.string(),
616
- titleField: z.string().nullish(),
617
- dateField: z.string().nullish()
618
- }).meta({ id: "Collection" });
619
- const fieldSchema = z.object({
620
- id: z.string(),
621
- collectionId: z.string(),
622
- slug: z.string(),
623
- label: z.string(),
624
- type: fieldTypeValues,
625
- required: z.boolean(),
626
- unique: z.boolean(),
627
- defaultValue: z.unknown().nullable(),
628
- validation: z.record(z.string(), z.unknown()).nullable(),
629
- widget: z.string().nullable(),
630
- options: z.record(z.string(), z.unknown()).nullable(),
631
- blockTypes: z.array(z.lazy(() => blockTypeSchema)).optional(),
632
- blockTypeFingerprint: z.string().optional(),
633
- sortOrder: z.number().int(),
634
- searchable: z.boolean(),
635
- indexed: z.boolean(),
636
- translatable: z.boolean(),
637
- createdAt: z.string(),
638
- updatedAt: z.string()
639
- }).meta({ id: "Field" });
640
- const collectionResponseSchema = z.object({ item: collectionSchema }).meta({ id: "CollectionResponse" });
641
- const collectionWithFieldsResponseSchema = z.object({ item: collectionSchema.extend({ fields: z.array(fieldSchema) }) }).meta({ id: "CollectionWithFieldsResponse" });
642
- const collectionListResponseSchema = z.object({ items: z.array(collectionSchema) }).meta({ id: "CollectionListResponse" });
643
- const fieldResponseSchema = z.object({ item: fieldSchema }).meta({ id: "FieldResponse" });
644
- const fieldListResponseSchema = z.object({ items: z.array(fieldSchema) }).meta({ id: "FieldListResponse" });
645
- const blockTypeVersionSchema = z.object({
646
- id: z.string(),
647
- blockTypeId: z.string(),
648
- version: z.number().int().positive(),
649
- fields: z.array(blockFieldDefinitionSchema),
650
- fingerprint: z.string(),
651
- active: z.boolean(),
652
- unsupportedTypes: z.array(z.object({
653
- type: z.string(),
654
- path: z.string()
655
- }).strict()).optional(),
656
- createdAt: z.string(),
657
- updatedAt: z.string()
658
- }).meta({ id: "BlockTypeVersion" });
659
- const blockTypeSchema = z.object({
660
- id: z.string(),
661
- slug: z.string(),
662
- label: z.string(),
663
- description: z.string().optional(),
664
- icon: z.string().optional(),
665
- category: z.string().optional(),
666
- currentVersion: z.number().int().positive(),
667
- source: z.enum(["user", "seed"]),
668
- versions: z.array(blockTypeVersionSchema),
669
- createdAt: z.string(),
670
- updatedAt: z.string()
671
- }).meta({ id: "BlockType" });
672
- const blockTypeResponseSchema = z.object({ item: blockTypeSchema }).meta({ id: "BlockTypeResponse" });
673
- const blockTypeListResponseSchema = z.object({ items: z.array(blockTypeSchema) }).meta({ id: "BlockTypeListResponse" });
674
- const orphanedTableSchema = z.object({
675
- slug: z.string(),
676
- tableName: z.string(),
677
- rowCount: z.number().int()
678
- }).meta({ id: "OrphanedTable" });
679
- const orphanedTableListResponseSchema = z.object({ items: z.array(orphanedTableSchema) }).meta({ id: "OrphanedTableListResponse" });
680
-
681
- //#endregion
682
- //#region src/api/schemas/taxonomies.ts
683
- const collectionSlug = z.string().min(1).max(63).regex(/^[a-z][a-z0-9_]*$/, "Invalid collection slug format");
684
- const createTaxonomyDefBody = z.object({
685
- name: z.string().min(1).max(63).regex(/^[a-z][a-z0-9_]*$/, "Name must be lowercase alphanumeric with underscores"),
686
- label: z.string().min(1).max(200),
687
- labelSingular: z.string().min(1).max(200).optional(),
688
- hierarchical: z.boolean().optional(),
689
- collections: z.array(collectionSlug).max(100).optional(),
690
- locale: localeCode.optional(),
691
- translationOf: z.string().min(1).optional()
692
- }).meta({ id: "CreateTaxonomyDefBody" });
693
- /**
694
- * `name` and `locale` are absent on purpose: both identify the definition row
695
- * being written, and `.strict()` turns an attempt to change either into a 400
696
- * rather than a silently ignored field.
697
- */
698
- const updateTaxonomyDefBody = z.object({
699
- label: z.string().min(1).max(200).optional(),
700
- labelSingular: z.string().min(1).max(200).nullish(),
701
- hierarchical: z.boolean().optional(),
702
- collections: z.array(collectionSlug).max(100).optional()
703
- }).strict().meta({ id: "UpdateTaxonomyDefBody" });
704
- const createTermBody = z.object({
705
- slug: z.string().min(1).optional().meta({ description: "Term slug. Omit to derive a unique slug from the label." }),
706
- label: z.string().min(1),
707
- parentId: z.string().nullish(),
708
- description: z.string().optional(),
709
- locale: localeCode.optional(),
710
- translationOf: z.string().min(1).optional()
711
- }).meta({ id: "CreateTermBody" });
712
- const bulkTagBody = z.object({
713
- termId: z.string().min(1),
714
- apply: z.boolean().default(false),
715
- refreshOnly: z.boolean().optional(),
716
- items: z.array(z.union([z.object({
717
- collection: collectionSlug,
718
- id: z.string().min(1)
719
- }).strict(), z.object({ url: z.string().min(1).max(2048) }).strict()])).min(1).max(50)
720
- }).strict().meta({ id: "BulkTagBody" });
721
- const updateTermBody = z.object({
722
- slug: z.string().min(1).optional(),
723
- label: z.string().min(1).optional(),
724
- parentId: z.string().nullish(),
725
- description: z.string().optional()
726
- }).meta({ id: "UpdateTermBody" });
727
- const reorderTermsBody = z.object({
728
- 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." }),
729
- 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." })
730
- }).strict().meta({ id: "ReorderTermsBody" });
731
- const termListQuery = z.object({
732
- locale: localeCode.optional(),
733
- 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." }),
734
- 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." })
735
- }).meta({ id: "TermListQuery" });
736
- const taxonomyDefSchema = z.object({
737
- id: z.string(),
738
- name: z.string(),
739
- label: z.string(),
740
- labelSingular: z.string().optional(),
741
- hierarchical: z.boolean(),
742
- collections: z.array(z.string()),
743
- locale: z.string(),
744
- translationGroup: z.string().nullable()
745
- }).meta({ id: "TaxonomyDef" });
746
- const taxonomyDefTranslationsSchema = z.object({
747
- translationGroup: z.string().nullable(),
748
- translations: z.array(z.object({
749
- id: z.string(),
750
- name: z.string(),
751
- label: z.string(),
752
- locale: z.string()
753
- }))
754
- }).meta({ id: "TaxonomyDefTranslations" });
755
- const taxonomyListResponseSchema = z.object({ taxonomies: z.array(taxonomyDefSchema) }).meta({ id: "TaxonomyListResponse" });
756
- const taxonomyResponseSchema = z.object({ taxonomy: taxonomyDefSchema }).meta({ id: "TaxonomyResponse" });
757
- const termSchema = z.object({
758
- id: z.string(),
759
- name: z.string(),
760
- slug: z.string(),
761
- label: z.string(),
762
- parentId: z.string().nullable(),
763
- description: z.string().optional(),
764
- locale: z.string(),
765
- translationGroup: z.string().nullable()
766
- }).meta({ id: "Term" });
767
- const termTranslationsSchema = z.object({
768
- translationGroup: z.string().nullable(),
769
- translations: z.array(z.object({
770
- id: z.string(),
771
- slug: z.string(),
772
- label: z.string(),
773
- locale: z.string()
774
- }))
775
- }).meta({ id: "TermTranslations" });
776
- const termWithCountSchema = z.object({
777
- id: z.string(),
778
- name: z.string(),
779
- slug: z.string(),
780
- label: z.string(),
781
- parentId: z.string().nullable(),
782
- description: z.string().optional(),
783
- count: z.number().int().optional(),
784
- children: z.array(z.lazy(() => termWithCountSchema)),
785
- locale: z.string(),
786
- translationGroup: z.string().nullable()
787
- }).meta({ id: "TermWithCount" });
788
- const termListResponseSchema = z.object({ terms: z.array(termWithCountSchema) }).meta({ id: "TermListResponse" });
789
- const termResponseSchema = z.object({ term: termSchema }).meta({ id: "TermResponse" });
790
- const termReorderResponseSchema = z.object({ reordered: z.literal(true) }).meta({ id: "TermReorderResponse" });
791
- const termGetResponseSchema = z.object({ term: termSchema.extend({
792
- count: z.number().int(),
793
- children: z.array(z.object({
794
- id: z.string(),
795
- slug: z.string(),
796
- label: z.string()
797
- }))
798
- }) }).meta({ id: "TermGetResponse" });
799
-
800
- //#endregion
801
- //#region src/api/schemas/sections.ts
802
- const sectionSource = z.enum([
803
- "theme",
804
- "user",
805
- "import"
806
- ]);
807
- const sectionsListQuery = z.object({
808
- source: sectionSource.optional(),
809
- search: z.string().optional(),
810
- limit: z.coerce.number().int().min(1).max(100).optional().default(50),
811
- cursor: z.string().max(2048).optional()
812
- }).meta({ id: "SectionsListQuery" });
813
- const createSectionBody = z.object({
814
- slug: z.string().min(1),
815
- title: z.string().min(1),
816
- description: z.string().optional(),
817
- keywords: z.array(z.string()).optional(),
818
- content: z.array(z.record(z.string(), z.unknown())),
819
- previewMediaId: z.string().optional(),
820
- source: z.enum(["user", "import"]).optional(),
821
- themeId: z.string().optional()
822
- }).meta({ id: "CreateSectionBody" });
823
- const updateSectionBody = z.object({
824
- slug: z.string().min(1).optional(),
825
- title: z.string().min(1).optional(),
826
- description: z.string().optional(),
827
- keywords: z.array(z.string()).optional(),
828
- content: z.array(z.record(z.string(), z.unknown())).optional(),
829
- previewMediaId: z.string().nullish()
830
- }).meta({ id: "UpdateSectionBody" });
831
- const sectionSchema = z.object({
832
- id: z.string(),
833
- slug: z.string(),
834
- title: z.string(),
835
- description: z.string().nullable(),
836
- keywords: z.array(z.string()).nullable(),
837
- content: z.array(z.record(z.string(), z.unknown())),
838
- previewMediaId: z.string().nullable(),
839
- source: z.string(),
840
- themeId: z.string().nullable(),
841
- createdAt: z.string(),
842
- updatedAt: z.string()
843
- }).meta({ id: "Section" });
844
- const sectionListResponseSchema = z.object({
845
- items: z.array(sectionSchema),
846
- nextCursor: z.string().optional()
847
- }).meta({ id: "SectionListResponse" });
848
-
849
- //#endregion
850
- //#region src/api/schemas/settings.ts
851
- const mediaReferenceInput = z.object({
852
- mediaId: z.string(),
853
- alt: z.string().optional()
854
- });
855
- const socialSettings = z.object({
856
- twitter: z.string().optional(),
857
- github: z.string().optional(),
858
- facebook: z.string().optional(),
859
- instagram: z.string().optional(),
860
- linkedin: z.string().optional(),
861
- youtube: z.string().optional()
862
- });
863
- const seoSettingsInput = z.object({
864
- titleSeparator: z.string().max(10).optional(),
865
- defaultOgImage: mediaReferenceInput.nullable().optional(),
866
- robotsTxt: z.string().max(5e3).optional(),
867
- googleVerification: z.string().max(100).optional(),
868
- bingVerification: z.string().max(100).optional()
869
- });
870
- const settingsUpdateBody = z.object({
871
- title: z.string().optional(),
872
- tagline: z.string().optional(),
873
- logo: mediaReferenceInput.nullable().optional(),
874
- favicon: mediaReferenceInput.nullable().optional(),
875
- url: z.union([httpUrl, z.literal("")]).optional(),
876
- postsPerPage: z.number().int().min(1).max(100).optional(),
877
- dateFormat: z.string().optional(),
878
- timezone: z.string().optional(),
879
- social: socialSettings.optional(),
880
- seo: seoSettingsInput.optional()
881
- }).meta({ id: "SettingsUpdateBody" });
882
- const mediaReferenceResponse = z.object({
883
- mediaId: z.string(),
884
- alt: z.string().optional(),
885
- url: z.string().optional(),
886
- contentType: z.string().optional(),
887
- width: z.number().int().optional(),
888
- height: z.number().int().optional()
889
- });
890
- const seoSettingsResponse = z.object({
891
- titleSeparator: z.string().max(10).optional(),
892
- defaultOgImage: mediaReferenceResponse.optional(),
893
- robotsTxt: z.string().max(5e3).optional(),
894
- googleVerification: z.string().max(100).optional(),
895
- bingVerification: z.string().max(100).optional()
896
- });
897
- const siteSettingsSchema = z.object({
898
- title: z.string().optional(),
899
- tagline: z.string().optional(),
900
- logo: mediaReferenceResponse.optional(),
901
- favicon: mediaReferenceResponse.optional(),
902
- url: z.string().optional(),
903
- postsPerPage: z.number().int().optional(),
904
- dateFormat: z.string().optional(),
905
- timezone: z.string().optional(),
906
- social: socialSettings.optional(),
907
- seo: seoSettingsResponse.optional()
908
- }).meta({ id: "SiteSettings" });
909
-
910
- //#endregion
911
- //#region src/api/schemas/search.ts
912
- const searchQuery = z.object({
913
- q: z.string().min(1),
914
- collections: z.string().optional(),
915
- status: z.string().optional(),
916
- locale: localeCode.optional(),
917
- limit: z.coerce.number().int().min(1).max(100).optional(),
918
- cursor: z.string().optional(),
919
- scope: z.enum(["all", "title"]).optional().meta({ description: "Which indexed fields to match against. 'title' matches only the collection's title field; collections without an indexed title field return no results. Defaults to 'all'." })
920
- }).meta({ id: "SearchQuery" });
921
- const searchSuggestQuery = z.object({
922
- q: z.string().min(1),
923
- collections: z.string().optional(),
924
- locale: localeCode.optional(),
925
- limit: z.coerce.number().int().min(1).max(20).optional()
926
- }).meta({ id: "SearchSuggestQuery" });
927
- const searchRebuildBody = z.object({ collection: z.string().min(1) }).meta({ id: "SearchRebuildBody" });
928
- const searchEnableBody = z.object({
929
- collection: z.string().min(1),
930
- enabled: z.boolean(),
931
- weights: z.record(z.string(), z.number()).optional(),
932
- tokenize: z.enum(SEARCH_TOKENIZERS).optional()
933
- }).meta({ id: "SearchEnableBody" });
934
- const searchResultSchema = z.object({
935
- collection: z.string(),
936
- id: z.string(),
937
- slug: z.string().nullable(),
938
- locale: z.string(),
939
- title: z.string().optional(),
940
- snippet: z.string().optional(),
941
- score: z.number()
942
- }).meta({ id: "SearchResult" });
943
- const searchResponseSchema = z.object({
944
- items: z.array(searchResultSchema),
945
- nextCursor: z.string().optional()
946
- }).meta({ id: "SearchResponse" });
947
-
948
- //#endregion
949
- //#region src/api/schemas/users.ts
950
- const usersListQuery = z.object({
951
- search: z.string().optional(),
952
- role: z.string().optional(),
953
- cursor: z.string().max(2048).optional(),
954
- limit: z.coerce.number().int().min(1).max(100).optional().default(50)
955
- }).meta({ id: "UsersListQuery" });
956
- const userUpdateBody = z.object({
957
- name: z.string().optional(),
958
- email: z.email().optional(),
959
- role: roleLevel.optional()
960
- }).meta({ id: "UserUpdateBody" });
961
- const allowedDomainCreateBody = z.object({
962
- domain: z.string().min(1),
963
- defaultRole: roleLevel
964
- }).meta({ id: "AllowedDomainCreateBody" });
965
- const allowedDomainUpdateBody = z.object({
966
- enabled: z.boolean().optional(),
967
- defaultRole: roleLevel.optional()
968
- }).meta({ id: "AllowedDomainUpdateBody" });
969
- const userSchema = z.object({
970
- id: z.string(),
971
- email: z.string(),
972
- name: z.string().nullable(),
973
- avatarUrl: z.string().nullable(),
974
- role: z.number().int(),
975
- emailVerified: z.boolean(),
976
- disabled: z.boolean(),
977
- createdAt: z.string(),
978
- updatedAt: z.string(),
979
- lastLogin: z.string().nullable(),
980
- credentialCount: z.number().int().optional(),
981
- oauthProviders: z.array(z.string()).optional()
982
- }).meta({ id: "User" });
983
- const userListResponseSchema = z.object({
984
- items: z.array(userSchema),
985
- nextCursor: z.string().optional()
986
- }).meta({ id: "UserListResponse" });
987
- const userDetailSchema = z.object({
988
- id: z.string(),
989
- email: z.string(),
990
- name: z.string().nullable(),
991
- avatarUrl: z.string().nullable(),
992
- role: z.number().int(),
993
- emailVerified: z.boolean(),
994
- disabled: z.boolean(),
995
- createdAt: z.string(),
996
- updatedAt: z.string(),
997
- lastLogin: z.string().nullable(),
998
- credentials: z.array(z.object({
999
- id: z.string(),
1000
- name: z.string().nullable(),
1001
- deviceType: z.string().nullable(),
1002
- createdAt: z.string(),
1003
- lastUsedAt: z.string()
1004
- })),
1005
- oauthAccounts: z.array(z.object({
1006
- provider: z.string(),
1007
- createdAt: z.string()
1008
- }))
1009
- }).meta({ id: "UserDetail" });
1010
-
1011
- //#endregion
1012
- //#region src/api/schemas/widgets.ts
1013
- const widgetType = z.enum([
1014
- "content",
1015
- "menu",
1016
- "component"
1017
- ]);
1018
- const createWidgetAreaBody = z.object({
1019
- name: z.string().min(1),
1020
- label: z.string().min(1),
1021
- description: z.string().optional()
1022
- }).meta({ id: "CreateWidgetAreaBody" });
1023
- const createWidgetBody = z.object({
1024
- type: widgetType,
1025
- title: z.string().optional(),
1026
- content: z.array(z.record(z.string(), z.unknown())).optional(),
1027
- menuName: z.string().optional(),
1028
- componentId: z.string().optional(),
1029
- componentProps: z.record(z.string(), z.unknown()).optional()
1030
- }).meta({ id: "CreateWidgetBody" });
1031
- const updateWidgetBody = z.object({
1032
- type: widgetType.optional(),
1033
- title: z.string().optional(),
1034
- content: z.array(z.record(z.string(), z.unknown())).optional(),
1035
- menuName: z.string().optional(),
1036
- componentId: z.string().optional(),
1037
- componentProps: z.record(z.string(), z.unknown()).optional()
1038
- }).meta({ id: "UpdateWidgetBody" });
1039
- const reorderWidgetsBody = z.object({ widgetIds: z.array(z.string().min(1)) }).meta({ id: "ReorderWidgetsBody" });
1040
- const widgetAreaSchema = z.object({
1041
- id: z.string(),
1042
- name: z.string(),
1043
- label: z.string(),
1044
- description: z.string().nullable(),
1045
- created_at: z.string(),
1046
- updated_at: z.string()
1047
- }).meta({ id: "WidgetArea" });
1048
- const widgetSchema = z.object({
1049
- id: z.string(),
1050
- type: widgetType,
1051
- title: z.string().optional(),
1052
- content: z.array(z.record(z.string(), z.unknown())).optional(),
1053
- menuName: z.string().optional(),
1054
- componentId: z.string().optional(),
1055
- componentProps: z.record(z.string(), z.unknown()).optional()
1056
- }).meta({ id: "Widget" });
1057
- const widgetAreaWithWidgetsSchema = widgetAreaSchema.extend({ widgets: z.array(widgetSchema) }).meta({ id: "WidgetAreaWithWidgets" });
1058
- const widgetAreaWithWidgetsAndCountSchema = widgetAreaWithWidgetsSchema.extend({ widgetCount: z.number().int() }).meta({ id: "WidgetAreaWithWidgetsAndCount" });
1059
-
1060
- //#endregion
1061
- //#region src/api/schemas/entry-lock.ts
1062
- const entryLockAcquireBody = z.object({
1063
- takeover: z.boolean().optional().meta({ description: "Take the lock from whoever holds it. Their next heartbeat or save reports the new holder." }),
1064
- token: z.string().min(1).max(128).optional().meta({ description: "Identifies the caller's editing session. Send the same value on DELETE so a release from one tab does not drop a lock another tab of the same account still relies on." })
1065
- }).meta({ id: "EntryLockAcquireBody" });
1066
- const entryLockHolderSchema = z.object({
1067
- userId: z.string(),
1068
- userName: z.string().nullable(),
1069
- acquiredAt: z.string(),
1070
- expiresAt: z.string()
1071
- }).meta({ id: "EntryLockHolder" });
1072
- const entryLockStatusSchema = z.object({
1073
- enabled: z.boolean().meta({ description: "Whether the collection takes edit locks at all" }),
1074
- holder: entryLockHolderSchema.nullable(),
1075
- heldByCaller: z.boolean()
1076
- }).meta({ id: "EntryLockStatus" });
1077
- const entryLockReleaseResponseSchema = z.object({ released: z.boolean() }).meta({ id: "EntryLockReleaseResponse" });
1078
- const entryLockConflictSchema = z.object({
1079
- success: z.literal(false),
1080
- error: z.object({
1081
- code: z.literal("ENTRY_LOCKED"),
1082
- message: z.string(),
1083
- details: entryLockHolderSchema
1084
- })
1085
- });
1086
- const entryMutationConflictSchema = z.object({
1087
- success: z.literal(false),
1088
- error: z.object({
1089
- code: z.string().meta({ examples: ["CONFLICT", "ENTRY_LOCKED"] }),
1090
- message: z.string(),
1091
- details: entryLockHolderSchema.optional()
1092
- })
1093
- });
1094
-
1095
- //#endregion
1096
- export { activateBlockTypeVersionBody as $, bylineTranslationCreateBody as $t, createSectionBody as A, contentItemSchema as At, taxonomyDefTranslationsSchema as B, contentSeoSchema as Bt, searchQuery as C, updateCollectionBody as Ct, searchSuggestQuery as D, contentCompareResponseSchema as Dt, searchResultSchema as E, contentAuthorsResponseSchema as Et, bulkTagBody as F, contentResponseSchema as Ft, termListResponseSchema as G, contentTrashQuery as Gt, taxonomyResponseSchema as H, contentTermsResponseSchema as Ht, createTaxonomyDefBody as I, contentRestoreResponseSchema as It, termSchema as J, trashedContentListResponseSchema as Jt, termReorderResponseSchema as K, contentUpdateBody as Kt, createTermBody as L, contentRevisionConditionBody as Lt, sectionSchema as M, contentListResponseSchema as Mt, sectionsListQuery as N, contentPreviewUrlBody as Nt, settingsUpdateBody as O, contentCreateBody as Ot, updateSectionBody as P, contentPublishBody as Pt, updateTermBody as Q, bylineSummarySchema as Qt, reorderTermsBody as R, contentScheduleBody as Rt, searchEnableBody as S, updateBlockTypeBody as St, searchResponseSchema as T, contentAuthorSchema as Tt, termGetResponseSchema as U, contentTranslationSchema as Ut, taxonomyListResponseSchema as V, contentTermsBody as Vt, termListQuery as W, contentTranslationsResponseSchema as Wt, termWithCountSchema as X, bylineCreditSchema as Xt, termTranslationsSchema as Y, bylineCreateBody as Yt, updateTaxonomyDefBody as Z, bylineListResponseSchema as Zt, userDetailSchema as _, fieldSchema as _t, entryLockStatusSchema as a, collectionGetQuery as at, userUpdateBody as b, orphanedTableSchema as bt, createWidgetBody as c, collectionResponseSchema as ct, widgetAreaSchema as d, createBlockTypeBody as dt, bylineTranslationsResponseSchema as en, blockFieldDefinitionSchema as et, widgetAreaWithWidgetsAndCountSchema as f, createCollectionBody as ft, allowedDomainUpdateBody as g, fieldResponseSchema as gt, allowedDomainCreateBody as h, fieldReorderBody as ht, entryLockReleaseResponseSchema as i, blockTypeVersionSchema as it, sectionListResponseSchema as j, contentListQuery as jt, siteSettingsSchema as k, contentFieldFiltersSchema as kt, reorderWidgetsBody as l, collectionSchema as lt, widgetSchema as m, fieldListResponseSchema as mt, entryLockConflictSchema as n, bylinesListQuery as nn, blockTypeResponseSchema as nt, entryMutationConflictSchema as o, collectionListResponseSchema as ot, widgetAreaWithWidgetsSchema as p, createFieldBody as pt, termResponseSchema as q, trashedContentItemSchema as qt, entryLockHolderSchema as r, contentBylineInputSchema as rn, blockTypeSchema as rt, createWidgetAreaBody as s, collectionReorderBody as st, entryLockAcquireBody as t, bylineUpdateBody as tn, blockTypeListResponseSchema as tt, updateWidgetBody as u, collectionWithFieldsResponseSchema as ut, userListResponseSchema as v, orphanRegisterBody as vt, searchRebuildBody as w, updateFieldBody as wt, usersListQuery as x, schemaExportQuery as xt, userSchema as y, orphanedTableListResponseSchema as yt, taxonomyDefSchema as z, contentSeoInput as zt };
1097
- //# sourceMappingURL=entry-lock-BJYdBfXb.mjs.map