emdash 1.0.1 → 1.2.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 (1439) hide show
  1. package/dist/action-token-BdWad2YG.mjs +26 -0
  2. package/dist/action-token-BdWad2YG.mjs.map +1 -0
  3. package/dist/activation-xomsCMJg.mjs +387 -0
  4. package/dist/activation-xomsCMJg.mjs.map +1 -0
  5. package/dist/adapters-B4-nbElt.d.mts +173 -0
  6. package/dist/adapters-B4-nbElt.d.mts.map +1 -0
  7. package/dist/allowed-origins-CLpHGGlc.mjs +116 -0
  8. package/dist/allowed-origins-CLpHGGlc.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +4 -4
  10. package/dist/api/route-utils.d.mts.map +1 -1
  11. package/dist/api/route-utils.mjs +49 -48
  12. package/dist/api/route-utils.mjs.map +1 -1
  13. package/dist/api/schemas/index.d.mts +2 -2
  14. package/dist/api/schemas/index.mjs +10 -10
  15. package/dist/api-DBw_IWoi.mjs +5024 -0
  16. package/dist/api-DBw_IWoi.mjs.map +1 -0
  17. package/dist/api-tokens-B0ZipcZ-.mjs +173 -0
  18. package/dist/api-tokens-B0ZipcZ-.mjs.map +1 -0
  19. package/dist/apply-Cx48saFC.mjs +1680 -0
  20. package/dist/apply-Cx48saFC.mjs.map +1 -0
  21. package/dist/approvals-BXgtXA2s.mjs +460 -0
  22. package/dist/approvals-BXgtXA2s.mjs.map +1 -0
  23. package/dist/artifact-fetch-DsRczRGG.mjs +659 -0
  24. package/dist/artifact-fetch-DsRczRGG.mjs.map +1 -0
  25. package/dist/artifacts-D-O-qj9C.mjs +307 -0
  26. package/dist/artifacts-D-O-qj9C.mjs.map +1 -0
  27. package/dist/astro/image-endpoint.d.mts.map +1 -1
  28. package/dist/astro/image-endpoint.mjs +26 -6
  29. package/dist/astro/image-endpoint.mjs.map +1 -1
  30. package/dist/astro/index.d.mts +14 -14
  31. package/dist/astro/index.d.mts.map +1 -1
  32. package/dist/astro/index.mjs +253 -17
  33. package/dist/astro/index.mjs.map +1 -1
  34. package/dist/astro/middleware/auth.d.mts +12 -12
  35. package/dist/astro/middleware/auth.d.mts.map +1 -1
  36. package/dist/astro/middleware/auth.mjs +18 -13
  37. package/dist/astro/middleware/auth.mjs.map +1 -1
  38. package/dist/astro/middleware/media-usage-write-fence.mjs +6 -6
  39. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  40. package/dist/astro/middleware/redirect.mjs +34 -32
  41. package/dist/astro/middleware/redirect.mjs.map +1 -1
  42. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  43. package/dist/astro/middleware/request-context.mjs +99 -60
  44. package/dist/astro/middleware/request-context.mjs.map +1 -1
  45. package/dist/astro/middleware/setup.mjs +1 -1
  46. package/dist/astro/middleware.d.mts +12 -12
  47. package/dist/astro/middleware.d.mts.map +1 -1
  48. package/dist/astro/middleware.mjs +233 -128
  49. package/dist/astro/middleware.mjs.map +1 -1
  50. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +15 -15
  51. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +15 -15
  52. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +8 -7
  53. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs.map +1 -1
  54. package/dist/astro/routes/api/admin/api-tokens/index.mjs +9 -8
  55. package/dist/astro/routes/api/admin/api-tokens/index.mjs.map +1 -1
  56. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +7 -7
  57. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +17 -17
  58. package/dist/astro/routes/api/admin/byline-fields/index.mjs +17 -17
  59. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +17 -17
  60. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +22 -22
  61. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +22 -23
  62. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  63. package/dist/astro/routes/api/admin/bylines/index.mjs +23 -23
  64. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  65. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +19 -19
  66. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
  67. package/dist/astro/routes/api/admin/comments/bulk.mjs +18 -18
  68. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
  69. package/dist/astro/routes/api/admin/comments/index.mjs +18 -18
  70. package/dist/astro/routes/api/admin/core-update.mjs +8 -8
  71. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +7 -7
  72. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +6 -6
  73. package/dist/astro/routes/api/admin/media-usage/activation.mjs +21 -21
  74. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +22 -22
  75. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +22 -22
  76. package/dist/astro/routes/api/admin/media-usage/progress.mjs +23 -23
  77. package/dist/astro/routes/api/admin/media-usage/repair.mjs +29 -29
  78. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +22 -22
  79. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +22 -22
  80. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +7 -7
  81. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +7 -7
  82. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +9 -9
  83. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +9 -9
  84. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +73 -72
  85. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  86. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +8 -8
  87. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +71 -70
  88. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  89. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +72 -71
  90. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  91. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +82 -81
  92. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  93. package/dist/astro/routes/api/admin/plugins/index.mjs +72 -71
  94. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  95. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +8 -8
  96. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -70
  97. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +81 -80
  99. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  100. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -70
  101. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +72 -71
  103. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  104. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +83 -82
  105. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  106. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +10 -10
  107. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +74 -73
  108. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  109. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +8 -8
  110. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +72 -71
  111. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  112. package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -70
  113. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  114. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
  115. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +71 -70
  116. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  117. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +8 -8
  118. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -70
  119. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  120. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +5 -5
  121. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +39 -39
  122. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +39 -39
  123. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +41 -41
  124. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +41 -41
  125. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +41 -41
  126. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +42 -42
  127. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +42 -42
  128. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +41 -41
  129. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +42 -42
  130. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +43 -43
  131. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +41 -41
  132. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +41 -41
  133. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +43 -43
  134. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +41 -41
  135. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +43 -43
  136. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +41 -41
  137. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +41 -41
  138. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +43 -43
  139. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +41 -41
  140. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +41 -41
  141. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +43 -43
  142. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
  143. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +5 -5
  144. package/dist/astro/routes/api/admin/users/_id_/index.mjs +15 -15
  145. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +7 -7
  146. package/dist/astro/routes/api/admin/users/index.mjs +15 -15
  147. package/dist/astro/routes/api/auth/dev-bypass.mjs +7 -7
  148. package/dist/astro/routes/api/auth/handover.d.mts +8 -0
  149. package/dist/astro/routes/api/auth/handover.d.mts.map +1 -0
  150. package/dist/astro/routes/api/auth/handover.mjs +49 -0
  151. package/dist/astro/routes/api/auth/handover.mjs.map +1 -0
  152. package/dist/astro/routes/api/auth/invite/accept.mjs +5 -5
  153. package/dist/astro/routes/api/auth/invite/complete.mjs +20 -20
  154. package/dist/astro/routes/api/auth/invite/index.mjs +17 -17
  155. package/dist/astro/routes/api/auth/invite/register-options.mjs +18 -18
  156. package/dist/astro/routes/api/auth/logout.mjs +6 -6
  157. package/dist/astro/routes/api/auth/magic-link/send.mjs +20 -19
  158. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  159. package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -1
  160. package/dist/astro/routes/api/auth/magic-link/verify.mjs +24 -18
  161. package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -1
  162. package/dist/astro/routes/api/auth/me.mjs +16 -16
  163. package/dist/astro/routes/api/auth/mode.mjs +6 -6
  164. package/dist/astro/routes/api/auth/oauth/_provider_/callback.d.mts.map +1 -1
  165. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +36 -13
  166. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs.map +1 -1
  167. package/dist/astro/routes/api/auth/oauth/_provider_.d.mts.map +1 -1
  168. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +20 -5
  169. package/dist/astro/routes/api/auth/oauth/_provider_.mjs.map +1 -1
  170. package/dist/astro/routes/api/auth/passkey/_id_.mjs +15 -15
  171. package/dist/astro/routes/api/auth/passkey/index.mjs +5 -5
  172. package/dist/astro/routes/api/auth/passkey/options.d.mts.map +1 -1
  173. package/dist/astro/routes/api/auth/passkey/options.mjs +28 -21
  174. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  175. package/dist/astro/routes/api/auth/passkey/register/options.mjs +18 -18
  176. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +19 -19
  177. package/dist/astro/routes/api/auth/passkey/verify.mjs +20 -20
  178. package/dist/astro/routes/api/auth/signup/complete.mjs +20 -20
  179. package/dist/astro/routes/api/auth/signup/request.mjs +19 -18
  180. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  181. package/dist/astro/routes/api/auth/signup/verify.mjs +5 -5
  182. package/dist/astro/routes/api/calendar.d.mts +8 -0
  183. package/dist/astro/routes/api/calendar.d.mts.map +1 -0
  184. package/dist/astro/routes/api/calendar.mjs +204 -0
  185. package/dist/astro/routes/api/calendar.mjs.map +1 -0
  186. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +14 -14
  187. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +20 -20
  188. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +6 -6
  189. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +17 -17
  190. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +6 -6
  191. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +17 -17
  192. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +6 -6
  193. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +12 -12
  194. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +31 -31
  195. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +17 -17
  196. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +35 -35
  197. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +35 -35
  198. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +6 -6
  199. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +6 -6
  200. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +17 -17
  201. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +25 -25
  202. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +6 -6
  203. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +17 -17
  204. package/dist/astro/routes/api/content/_collection_/_id_.mjs +17 -17
  205. package/dist/astro/routes/api/content/_collection_/authors.mjs +6 -6
  206. package/dist/astro/routes/api/content/_collection_/index.mjs +16 -16
  207. package/dist/astro/routes/api/content/_collection_/trash.mjs +16 -16
  208. package/dist/astro/routes/api/dashboard.mjs +12 -12
  209. package/dist/astro/routes/api/dev/emails.mjs +6 -6
  210. package/dist/astro/routes/api/health.mjs +7 -7
  211. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  212. package/dist/astro/routes/api/import/probe.mjs +25 -25
  213. package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -6
  214. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
  215. package/dist/astro/routes/api/import/wordpress/execute.mjs +31 -24
  216. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  217. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  218. package/dist/astro/routes/api/import/wordpress/media.mjs +20 -20
  219. package/dist/astro/routes/api/import/wordpress/prepare.mjs +18 -18
  220. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts +8 -0
  221. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.d.mts.map +1 -1
  222. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs +67 -31
  223. package/dist/astro/routes/api/import/wordpress/rewrite-url-helpers.mjs.map +1 -1
  224. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  225. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +27 -27
  226. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  227. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +25 -25
  228. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
  229. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  230. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +40 -33
  231. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  232. package/dist/astro/routes/api/manifest.mjs +10 -7
  233. package/dist/astro/routes/api/manifest.mjs.map +1 -1
  234. package/dist/astro/routes/api/mcp.mjs +94 -94
  235. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  236. package/dist/astro/routes/api/media/_id_/confirm.d.mts.map +1 -1
  237. package/dist/astro/routes/api/media/_id_/confirm.mjs +36 -20
  238. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  239. package/dist/astro/routes/api/media/_id_/replace.mjs +17 -17
  240. package/dist/astro/routes/api/media/_id_/upload.mjs +10 -10
  241. package/dist/astro/routes/api/media/_id_/usage.mjs +31 -31
  242. package/dist/astro/routes/api/media/_id_.mjs +29 -29
  243. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +7 -7
  244. package/dist/astro/routes/api/media/file/_...key_.d.mts.map +1 -1
  245. package/dist/astro/routes/api/media/file/_...key_.mjs +46 -16
  246. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  247. package/dist/astro/routes/api/media/folders/_id_.mjs +17 -17
  248. package/dist/astro/routes/api/media/folders/index.mjs +17 -17
  249. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +6 -6
  250. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +6 -6
  251. package/dist/astro/routes/api/media/providers/index.mjs +6 -6
  252. package/dist/astro/routes/api/media/upload-url.mjs +45 -25
  253. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  254. package/dist/astro/routes/api/media.d.mts.map +1 -1
  255. package/dist/astro/routes/api/media.mjs +47 -36
  256. package/dist/astro/routes/api/media.mjs.map +1 -1
  257. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +18 -18
  258. package/dist/astro/routes/api/menus/_name_/items.mjs +18 -18
  259. package/dist/astro/routes/api/menus/_name_/reorder.mjs +18 -18
  260. package/dist/astro/routes/api/menus/_name_/translations.mjs +18 -18
  261. package/dist/astro/routes/api/menus/_name_.mjs +18 -18
  262. package/dist/astro/routes/api/menus/index.mjs +18 -18
  263. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  264. package/dist/astro/routes/api/oauth/device/authorize.mjs +9 -9
  265. package/dist/astro/routes/api/oauth/device/code.mjs +13 -12
  266. package/dist/astro/routes/api/oauth/device/code.mjs.map +1 -1
  267. package/dist/astro/routes/api/oauth/device/token.mjs +12 -11
  268. package/dist/astro/routes/api/oauth/device/token.mjs.map +1 -1
  269. package/dist/astro/routes/api/oauth/register.mjs +9 -8
  270. package/dist/astro/routes/api/oauth/register.mjs.map +1 -1
  271. package/dist/astro/routes/api/oauth/token/refresh.mjs +9 -9
  272. package/dist/astro/routes/api/oauth/token/revoke.mjs +9 -9
  273. package/dist/astro/routes/api/oauth/token.mjs +9 -9
  274. package/dist/astro/routes/api/openapi.json.mjs +23 -23
  275. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  276. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +12 -12
  277. package/dist/astro/routes/api/redirects/404s/index.mjs +20 -19
  278. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  279. package/dist/astro/routes/api/redirects/404s/summary.mjs +20 -19
  280. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  281. package/dist/astro/routes/api/redirects/_id_.mjs +20 -19
  282. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  283. package/dist/astro/routes/api/redirects/index.mjs +20 -19
  284. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  285. package/dist/astro/routes/api/relations/_id_/index.mjs +35 -35
  286. package/dist/astro/routes/api/relations/index.mjs +35 -35
  287. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +6 -6
  288. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +17 -17
  289. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +71 -70
  290. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  291. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +71 -70
  292. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  293. package/dist/astro/routes/api/schema/block-types/index.mjs +71 -70
  294. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  295. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +71 -70
  296. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  297. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +71 -70
  298. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  299. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +71 -70
  300. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  301. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +71 -70
  302. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  303. package/dist/astro/routes/api/schema/collections/index.mjs +71 -70
  304. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  305. package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -70
  306. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  307. package/dist/astro/routes/api/schema/index.mjs +17 -17
  308. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  309. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -70
  310. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  311. package/dist/astro/routes/api/schema/orphans/index.mjs +71 -70
  312. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  313. package/dist/astro/routes/api/search/enable.mjs +19 -19
  314. package/dist/astro/routes/api/search/index.mjs +18 -18
  315. package/dist/astro/routes/api/search/rebuild.mjs +19 -19
  316. package/dist/astro/routes/api/search/stats.mjs +9 -9
  317. package/dist/astro/routes/api/search/suggest.mjs +18 -18
  318. package/dist/astro/routes/api/sections/_slug_.mjs +18 -18
  319. package/dist/astro/routes/api/sections/index.mjs +18 -18
  320. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +8 -8
  321. package/dist/astro/routes/api/settings/backups/archives/index.mjs +8 -8
  322. package/dist/astro/routes/api/settings/backups/export.mjs +8 -8
  323. package/dist/astro/routes/api/settings/backups/index.mjs +9 -9
  324. package/dist/astro/routes/api/settings/domain-notify.d.mts +8 -0
  325. package/dist/astro/routes/api/settings/domain-notify.d.mts.map +1 -0
  326. package/dist/astro/routes/api/settings/domain-notify.mjs +125 -0
  327. package/dist/astro/routes/api/settings/domain-notify.mjs.map +1 -0
  328. package/dist/astro/routes/api/settings/domain.d.mts +9 -0
  329. package/dist/astro/routes/api/settings/domain.d.mts.map +1 -0
  330. package/dist/astro/routes/api/settings/domain.mjs +61 -0
  331. package/dist/astro/routes/api/settings/domain.mjs.map +1 -0
  332. package/dist/astro/routes/api/settings/email.mjs +7 -7
  333. package/dist/astro/routes/api/settings.mjs +22 -22
  334. package/dist/astro/routes/api/setup/admin-verify.mjs +21 -21
  335. package/dist/astro/routes/api/setup/admin.mjs +19 -19
  336. package/dist/astro/routes/api/setup/dev-bypass.mjs +43 -43
  337. package/dist/astro/routes/api/setup/dev-reset.mjs +5 -5
  338. package/dist/astro/routes/api/setup/index.d.mts.map +1 -1
  339. package/dist/astro/routes/api/setup/index.mjs +59 -50
  340. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  341. package/dist/astro/routes/api/setup/status.mjs +7 -7
  342. package/dist/astro/routes/api/site/domain-proof.d.mts +8 -0
  343. package/dist/astro/routes/api/site/domain-proof.d.mts.map +1 -0
  344. package/dist/astro/routes/api/site/domain-proof.mjs +33 -0
  345. package/dist/astro/routes/api/site/domain-proof.mjs.map +1 -0
  346. package/dist/astro/routes/api/snapshot.mjs +10 -10
  347. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +23 -23
  348. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +23 -23
  349. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +23 -23
  350. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +23 -23
  351. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +22 -22
  352. package/dist/astro/routes/api/taxonomies/_name_.mjs +23 -23
  353. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +36 -36
  354. package/dist/astro/routes/api/taxonomies/index.mjs +23 -23
  355. package/dist/astro/routes/api/themes/preview.mjs +8 -8
  356. package/dist/astro/routes/api/typegen.mjs +7 -7
  357. package/dist/astro/routes/api/visual-editing/action-token.mjs +8 -8
  358. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +20 -20
  359. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +5 -5
  360. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  361. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  362. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  363. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +17 -17
  364. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +19 -19
  365. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +19 -19
  366. package/dist/astro/routes/api/widget-areas/_name_.mjs +9 -9
  367. package/dist/astro/routes/api/widget-areas/index.mjs +19 -19
  368. package/dist/astro/routes/api/widget-components.mjs +6 -6
  369. package/dist/astro/routes/robots.txt.mjs +7 -7
  370. package/dist/astro/routes/sitemap-_collection_.xml.d.mts.map +1 -1
  371. package/dist/astro/routes/sitemap-_collection_.xml.mjs +30 -13
  372. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  373. package/dist/astro/routes/sitemap.xml.d.mts.map +1 -1
  374. package/dist/astro/routes/sitemap.xml.mjs +14 -13
  375. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  376. package/dist/astro/types.d.mts +30 -18
  377. package/dist/astro/types.d.mts.map +1 -1
  378. package/dist/audit-CCH3MA4Y.mjs +127 -0
  379. package/dist/audit-CCH3MA4Y.mjs.map +1 -0
  380. package/dist/auth/providers/github.d.mts +1 -1
  381. package/dist/auth/providers/google.d.mts +1 -1
  382. package/dist/auth/providers/microsoft.d.mts +27 -0
  383. package/dist/auth/providers/microsoft.d.mts.map +1 -0
  384. package/dist/auth/providers/microsoft.mjs +20 -0
  385. package/dist/auth/providers/microsoft.mjs.map +1 -0
  386. package/dist/authoritative-records-Dcs7l2H5.mjs +5183 -0
  387. package/dist/authoritative-records-Dcs7l2H5.mjs.map +1 -0
  388. package/dist/authorize-TdIGpRSE.mjs +49 -0
  389. package/dist/authorize-TdIGpRSE.mjs.map +1 -0
  390. package/dist/backup-CZt5Mzwx.mjs +246 -0
  391. package/dist/backup-CZt5Mzwx.mjs.map +1 -0
  392. package/dist/base64-BQBZwXCx.mjs +63 -0
  393. package/dist/base64-BQBZwXCx.mjs.map +1 -0
  394. package/dist/block-types-DHnkzE6u.mjs +132 -0
  395. package/dist/block-types-DHnkzE6u.mjs.map +1 -0
  396. package/dist/block-values-C4N_F2-G.mjs +175 -0
  397. package/dist/block-values-C4N_F2-G.mjs.map +1 -0
  398. package/dist/byline-BmVKOQ8l.mjs +909 -0
  399. package/dist/byline-BmVKOQ8l.mjs.map +1 -0
  400. package/dist/byline-fields-B8SDs3M_.mjs +123 -0
  401. package/dist/byline-fields-B8SDs3M_.mjs.map +1 -0
  402. package/dist/byline-fields-Bze3ZdAw.mjs +280 -0
  403. package/dist/byline-fields-Bze3ZdAw.mjs.map +1 -0
  404. package/dist/bylines-CHhR28r9.mjs +150 -0
  405. package/dist/bylines-CHhR28r9.mjs.map +1 -0
  406. package/dist/bylines-DZS4OflA.mjs +234 -0
  407. package/dist/bylines-DZS4OflA.mjs.map +1 -0
  408. package/dist/cache-x0z8t_m9.mjs +133 -0
  409. package/dist/cache-x0z8t_m9.mjs.map +1 -0
  410. package/dist/canonical-BUcKRYpG.mjs +174 -0
  411. package/dist/canonical-BUcKRYpG.mjs.map +1 -0
  412. package/dist/capture-triggers-C9JKoIdT.mjs +362 -0
  413. package/dist/capture-triggers-C9JKoIdT.mjs.map +1 -0
  414. package/dist/challenge-store-BHgdPVze.mjs +51 -0
  415. package/dist/challenge-store-BHgdPVze.mjs.map +1 -0
  416. package/dist/checksum-BYR5i7qe.mjs +162 -0
  417. package/dist/checksum-BYR5i7qe.mjs.map +1 -0
  418. package/dist/chrome-tags-BIKBMZYO.mjs +24 -0
  419. package/dist/chrome-tags-BIKBMZYO.mjs.map +1 -0
  420. package/dist/chunks-Dr5Vr0zA.mjs +25 -0
  421. package/dist/chunks-Dr5Vr0zA.mjs.map +1 -0
  422. package/dist/cli/index.mjs +54 -52
  423. package/dist/cli/index.mjs.map +1 -1
  424. package/dist/client/cf-access.d.mts +1 -1
  425. package/dist/client/index.d.mts +34 -34
  426. package/dist/client/index.d.mts.map +1 -1
  427. package/dist/client/index.mjs +2 -2
  428. package/dist/client/index.mjs.map +1 -1
  429. package/dist/collection-slugs-cache-B2Gs9Jwx.mjs +85 -0
  430. package/dist/collection-slugs-cache-B2Gs9Jwx.mjs.map +1 -0
  431. package/dist/comment-CWla6OHV.mjs +325 -0
  432. package/dist/comment-CWla6OHV.mjs.map +1 -0
  433. package/dist/comment-reaction-RZrcs5cW.mjs +85 -0
  434. package/dist/comment-reaction-RZrcs5cW.mjs.map +1 -0
  435. package/dist/comments-BzmIKVb2.mjs +99 -0
  436. package/dist/comments-BzmIKVb2.mjs.map +1 -0
  437. package/dist/comments-Da_dI2O1.mjs +195 -0
  438. package/dist/comments-Da_dI2O1.mjs.map +1 -0
  439. package/dist/components-oFXumpf5.mjs +112 -0
  440. package/dist/components-oFXumpf5.mjs.map +1 -0
  441. package/dist/config--wamYxBW.d.mts +39 -0
  442. package/dist/config--wamYxBW.d.mts.map +1 -0
  443. package/dist/config-Bo4eOOdV.mjs +228 -0
  444. package/dist/config-Bo4eOOdV.mjs.map +1 -0
  445. package/dist/config-C4-UxIk7.d.mts +6790 -0
  446. package/dist/config-C4-UxIk7.d.mts.map +1 -0
  447. package/dist/connection-UpzYxtE2.mjs +36 -0
  448. package/dist/connection-UpzYxtE2.mjs.map +1 -0
  449. package/dist/content-CcHrqkgp.mjs +2072 -0
  450. package/dist/content-CcHrqkgp.mjs.map +1 -0
  451. package/dist/content-list-query-Bxxdd9fv.d.mts +26 -0
  452. package/dist/content-list-query-Bxxdd9fv.d.mts.map +1 -0
  453. package/dist/content-repair-havk1F0-.mjs +442 -0
  454. package/dist/content-repair-havk1F0-.mjs.map +1 -0
  455. package/dist/context-CvhgHgSH.mjs +2043 -0
  456. package/dist/context-CvhgHgSH.mjs.map +1 -0
  457. package/dist/credits-CygUrPOi.mjs +110 -0
  458. package/dist/credits-CygUrPOi.mjs.map +1 -0
  459. package/dist/cron-C6ytTOLw.mjs +306 -0
  460. package/dist/cron-C6ytTOLw.mjs.map +1 -0
  461. package/dist/dashboard-7_FYfafc.mjs +151 -0
  462. package/dist/dashboard-7_FYfafc.mjs.map +1 -0
  463. package/dist/db/index.d.mts +3 -3
  464. package/dist/db/index.mjs +1 -1
  465. package/dist/db/index.mjs.map +1 -1
  466. package/dist/db/libsql-migrations.d.mts +1 -1
  467. package/dist/db/libsql-migrations.mjs +5 -5
  468. package/dist/db/libsql.d.mts +1 -1
  469. package/dist/db/postgres-migrations.d.mts +1 -1
  470. package/dist/db/postgres-migrations.mjs +4 -4
  471. package/dist/db/postgres.d.mts +1 -1
  472. package/dist/db/sqlite-migrations.d.mts +1 -1
  473. package/dist/db/sqlite-migrations.mjs +4 -4
  474. package/dist/db/sqlite.d.mts +1 -1
  475. package/dist/db/sqlite.mjs +1 -1
  476. package/dist/default-CHCUkV4Z.mjs +81 -0
  477. package/dist/default-CHCUkV4Z.mjs.map +1 -0
  478. package/dist/deferred-tasks-G0xhcJTl.d.mts +9 -0
  479. package/dist/deferred-tasks-G0xhcJTl.d.mts.map +1 -0
  480. package/dist/dev-typegen-Dtl8AfS6.mjs +29 -0
  481. package/dist/dev-typegen-Dtl8AfS6.mjs.map +1 -0
  482. package/dist/device-flow-CzDJmQ1q.mjs +521 -0
  483. package/dist/device-flow-CzDJmQ1q.mjs.map +1 -0
  484. package/dist/digest-xJmyPv2r.mjs +194 -0
  485. package/dist/digest-xJmyPv2r.mjs.map +1 -0
  486. package/dist/direct-executor-BXiYIVJ9.mjs +104 -0
  487. package/dist/direct-executor-BXiYIVJ9.mjs.map +1 -0
  488. package/dist/email-console-7ZPApLlm.mjs +50 -0
  489. package/dist/email-console-7ZPApLlm.mjs.map +1 -0
  490. package/dist/email-locale-DFdUA6UF.mjs +25 -0
  491. package/dist/email-locale-DFdUA6UF.mjs.map +1 -0
  492. package/dist/emdash-runtime-C4oFeVpN.mjs +4363 -0
  493. package/dist/emdash-runtime-C4oFeVpN.mjs.map +1 -0
  494. package/dist/enrich-Duu4sV3a.mjs +194 -0
  495. package/dist/enrich-Duu4sV3a.mjs.map +1 -0
  496. package/dist/entry-lock-B4n0HdQ_.mjs +163 -0
  497. package/dist/entry-lock-B4n0HdQ_.mjs.map +1 -0
  498. package/dist/entry-lock-BAAlKYrz.d.mts +4566 -0
  499. package/dist/entry-lock-BAAlKYrz.d.mts.map +1 -0
  500. package/dist/entry-lock-Cjz0h45X.mjs +1209 -0
  501. package/dist/entry-lock-Cjz0h45X.mjs.map +1 -0
  502. package/dist/env-types-4bkF6Bqg.mjs +38 -0
  503. package/dist/env-types-4bkF6Bqg.mjs.map +1 -0
  504. package/dist/error-DxgQdaZ_.mjs +90 -0
  505. package/dist/error-DxgQdaZ_.mjs.map +1 -0
  506. package/dist/errors-CjtE5aWF.mjs +120 -0
  507. package/dist/errors-CjtE5aWF.mjs.map +1 -0
  508. package/dist/errors-hskQ0C8G.mjs +479 -0
  509. package/dist/errors-hskQ0C8G.mjs.map +1 -0
  510. package/dist/escape-ESFhYzwG.mjs +9 -0
  511. package/dist/escape-ESFhYzwG.mjs.map +1 -0
  512. package/dist/fence-vc3aHgRA.mjs +162 -0
  513. package/dist/fence-vc3aHgRA.mjs.map +1 -0
  514. package/dist/field-defs-cache-zoow36nz.mjs +77 -0
  515. package/dist/field-defs-cache-zoow36nz.mjs.map +1 -0
  516. package/dist/field-map-JD1wG0Tq.mjs +83 -0
  517. package/dist/field-map-JD1wG0Tq.mjs.map +1 -0
  518. package/dist/fts-manager-WJCN8uU6.mjs +443 -0
  519. package/dist/fts-manager-WJCN8uU6.mjs.map +1 -0
  520. package/dist/gc-CsGZiKdH.mjs +75 -0
  521. package/dist/gc-CsGZiKdH.mjs.map +1 -0
  522. package/dist/hash-C4DFoJ7Z.mjs +37 -0
  523. package/dist/hash-C4DFoJ7Z.mjs.map +1 -0
  524. package/dist/hook-result-CXjtMk7Q.d.mts +31 -0
  525. package/dist/hook-result-CXjtMk7Q.d.mts.map +1 -0
  526. package/dist/hreflang-BAma7iRr.mjs +105 -0
  527. package/dist/hreflang-BAma7iRr.mjs.map +1 -0
  528. package/dist/hreflang-BsYo4x_M.d.mts +50 -0
  529. package/dist/hreflang-BsYo4x_M.d.mts.map +1 -0
  530. package/dist/http-route-dispatch-C8G7hAK6.mjs +342 -0
  531. package/dist/http-route-dispatch-C8G7hAK6.mjs.map +1 -0
  532. package/dist/identity-BwBKM1fH.mjs +35 -0
  533. package/dist/identity-BwBKM1fH.mjs.map +1 -0
  534. package/dist/import-DJ3Z2wxE.mjs +2021 -0
  535. package/dist/import-DJ3Z2wxE.mjs.map +1 -0
  536. package/dist/index-DYsn97dY.d.mts +623 -0
  537. package/dist/index-DYsn97dY.d.mts.map +1 -0
  538. package/dist/index.d.mts +24 -24
  539. package/dist/index.mjs +99 -98
  540. package/dist/init-lock-BGmew3r1.mjs +56 -0
  541. package/dist/init-lock-BGmew3r1.mjs.map +1 -0
  542. package/dist/install-finalization-DCFnFSHv.mjs +58 -0
  543. package/dist/install-finalization-DCFnFSHv.mjs.map +1 -0
  544. package/dist/keys-CGvAndSp.mjs +61 -0
  545. package/dist/keys-CGvAndSp.mjs.map +1 -0
  546. package/dist/kinds-DT1W4T4Y.mjs +974 -0
  547. package/dist/kinds-DT1W4T4Y.mjs.map +1 -0
  548. package/dist/lifecycle-BzglCSY0.mjs +25 -0
  549. package/dist/lifecycle-BzglCSY0.mjs.map +1 -0
  550. package/dist/load-DjUqmf3s.mjs +28 -0
  551. package/dist/load-DjUqmf3s.mjs.map +1 -0
  552. package/dist/loader-CetY659y.mjs +1355 -0
  553. package/dist/loader-CetY659y.mjs.map +1 -0
  554. package/dist/loops-DkT1zkPH.mjs +205 -0
  555. package/dist/loops-DkT1zkPH.mjs.map +1 -0
  556. package/dist/manifest-builder-BOFCd9rX.mjs +189 -0
  557. package/dist/manifest-builder-BOFCd9rX.mjs.map +1 -0
  558. package/dist/manifest-schema-BiFBPEsp.mjs +497 -0
  559. package/dist/manifest-schema-BiFBPEsp.mjs.map +1 -0
  560. package/dist/marketplace-CUlenvZm.mjs +257 -0
  561. package/dist/marketplace-CUlenvZm.mjs.map +1 -0
  562. package/dist/media/image-endpoint.d.mts +26 -2
  563. package/dist/media/image-endpoint.d.mts.map +1 -1
  564. package/dist/media/image-endpoint.mjs +73 -3
  565. package/dist/media/image-endpoint.mjs.map +1 -1
  566. package/dist/media/index.d.mts +1 -1
  567. package/dist/media/index.mjs +1 -1
  568. package/dist/media/local-runtime.d.mts +14 -14
  569. package/dist/media/local-runtime.mjs +7 -7
  570. package/dist/media-CRKsKlfK.mjs +416 -0
  571. package/dist/media-CRKsKlfK.mjs.map +1 -0
  572. package/dist/media-C_z7sRuC.mjs +294 -0
  573. package/dist/media-C_z7sRuC.mjs.map +1 -0
  574. package/dist/media-IT8hQleU.mjs +373 -0
  575. package/dist/media-IT8hQleU.mjs.map +1 -0
  576. package/dist/media-allowlist-Ct6wvnT2.mjs +45 -0
  577. package/dist/media-allowlist-Ct6wvnT2.mjs.map +1 -0
  578. package/dist/media-folders-DtMt-vAA.mjs +210 -0
  579. package/dist/media-folders-DtMt-vAA.mjs.map +1 -0
  580. package/dist/media-url-BpXLqCmf.mjs +43 -0
  581. package/dist/media-url-BpXLqCmf.mjs.map +1 -0
  582. package/dist/media-usage-DEPHZZ9X.mjs +282 -0
  583. package/dist/media-usage-DEPHZZ9X.mjs.map +1 -0
  584. package/dist/media-usage-activation-V2Siabtw.mjs +78 -0
  585. package/dist/media-usage-activation-V2Siabtw.mjs.map +1 -0
  586. package/dist/media-usage-work-Cv1OE59F.mjs +151 -0
  587. package/dist/media-usage-work-Cv1OE59F.mjs.map +1 -0
  588. package/dist/media-usage-work-cgDYGvrt.mjs +1015 -0
  589. package/dist/media-usage-work-cgDYGvrt.mjs.map +1 -0
  590. package/dist/menus-CvVYfsuk.mjs +753 -0
  591. package/dist/menus-CvVYfsuk.mjs.map +1 -0
  592. package/dist/menus-D1HC8npj.mjs +92 -0
  593. package/dist/menus-D1HC8npj.mjs.map +1 -0
  594. package/dist/menus-DL8IPIcm.mjs +3721 -0
  595. package/dist/menus-DL8IPIcm.mjs.map +1 -0
  596. package/dist/migrations/index.d.mts +1 -1
  597. package/dist/migrations/index.mjs +3 -3
  598. package/dist/mime-B5M9R53H.mjs +81 -0
  599. package/dist/mime-B5M9R53H.mjs.map +1 -0
  600. package/dist/mode-eieqAWLe.mjs +23 -0
  601. package/dist/mode-eieqAWLe.mjs.map +1 -0
  602. package/dist/node-sqlite-compat-VuyzJw1b.mjs +63 -0
  603. package/dist/node-sqlite-compat-VuyzJw1b.mjs.map +1 -0
  604. package/dist/oauth-authorization-B6ZJbMd2.mjs +274 -0
  605. package/dist/oauth-authorization-B6ZJbMd2.mjs.map +1 -0
  606. package/dist/oauth-clients-DVjRc9v3.mjs +266 -0
  607. package/dist/oauth-clients-DVjRc9v3.mjs.map +1 -0
  608. package/dist/oauth-state-store-CnmYYsVQ.mjs +50 -0
  609. package/dist/oauth-state-store-CnmYYsVQ.mjs.map +1 -0
  610. package/dist/oauth-user-lookup-Dz1_R5vT.mjs +26 -0
  611. package/dist/oauth-user-lookup-Dz1_R5vT.mjs.map +1 -0
  612. package/dist/object-cache/memory.d.mts +1 -1
  613. package/dist/options-BR9XZl7h.d.mts +81 -0
  614. package/dist/options-BR9XZl7h.d.mts.map +1 -0
  615. package/dist/ownership-COPyVysP.mjs +12 -0
  616. package/dist/ownership-COPyVysP.mjs.map +1 -0
  617. package/dist/page/index.d.mts +2 -2
  618. package/dist/page/index.mjs +6 -6
  619. package/dist/parse-BOGhrwSq.d.mts +174 -0
  620. package/dist/parse-BOGhrwSq.d.mts.map +1 -0
  621. package/dist/parse-Cn5aSk1N.mjs +81 -0
  622. package/dist/parse-Cn5aSk1N.mjs.map +1 -0
  623. package/dist/passkey-config-mMFRQUCj.mjs +46 -0
  624. package/dist/passkey-config-mMFRQUCj.mjs.map +1 -0
  625. package/dist/paths-BmcAdBo9.mjs +77 -0
  626. package/dist/paths-BmcAdBo9.mjs.map +1 -0
  627. package/dist/patterns-CMNnYCgf.mjs +159 -0
  628. package/dist/patterns-CMNnYCgf.mjs.map +1 -0
  629. package/dist/placeholder-nOep3_Gn.d.mts +306 -0
  630. package/dist/placeholder-nOep3_Gn.d.mts.map +1 -0
  631. package/dist/plan-CDY4K8CH.mjs +135 -0
  632. package/dist/plan-CDY4K8CH.mjs.map +1 -0
  633. package/dist/plugin-test-runtime.d.mts +14 -14
  634. package/dist/plugin-test-runtime.d.mts.map +1 -1
  635. package/dist/plugin-test-runtime.mjs +111 -110
  636. package/dist/plugin-types.d.mts +2 -2
  637. package/dist/plugin-utils.d.mts +12 -12
  638. package/dist/plugin-utils.mjs +1 -1
  639. package/dist/plugin-utils.mjs.map +1 -1
  640. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  641. package/dist/plugins/adapt-sandbox-entry.mjs +3 -3
  642. package/dist/plugins/host.d.mts +5 -5
  643. package/dist/plugins/host.mjs +45 -44
  644. package/dist/plugins-DFBpfbO3.mjs +261 -0
  645. package/dist/plugins-DFBpfbO3.mjs.map +1 -0
  646. package/dist/policy-B_2qnHSy.mjs +45 -0
  647. package/dist/policy-B_2qnHSy.mjs.map +1 -0
  648. package/dist/portable-text-Dc2YAusw.mjs +307 -0
  649. package/dist/portable-text-Dc2YAusw.mjs.map +1 -0
  650. package/dist/preview-BtzikJ9O.mjs +107 -0
  651. package/dist/preview-BtzikJ9O.mjs.map +1 -0
  652. package/dist/protocol-M268ox8L.d.mts +61 -0
  653. package/dist/protocol-M268ox8L.d.mts.map +1 -0
  654. package/dist/public-submission-BQZavgZU.mjs +251 -0
  655. package/dist/public-submission-BQZavgZU.mjs.map +1 -0
  656. package/dist/public-url-uT1Ok2Tu.mjs +101 -0
  657. package/dist/public-url-uT1Ok2Tu.mjs.map +1 -0
  658. package/dist/query-BGG3sDEd.mjs +1127 -0
  659. package/dist/query-BGG3sDEd.mjs.map +1 -0
  660. package/dist/query-C_CWlifp.mjs +41 -0
  661. package/dist/query-C_CWlifp.mjs.map +1 -0
  662. package/dist/range-CXK_kDbI.mjs +51 -0
  663. package/dist/range-CXK_kDbI.mjs.map +1 -0
  664. package/dist/rate-limit-Dvamvay-.mjs +127 -0
  665. package/dist/rate-limit-Dvamvay-.mjs.map +1 -0
  666. package/dist/receipt-BmQGzquP.mjs +43 -0
  667. package/dist/receipt-BmQGzquP.mjs.map +1 -0
  668. package/dist/redirect-B39kTQ_0.mjs +423 -0
  669. package/dist/redirect-B39kTQ_0.mjs.map +1 -0
  670. package/dist/redirect-BguJ00Pv.mjs +19 -0
  671. package/dist/redirect-BguJ00Pv.mjs.map +1 -0
  672. package/dist/redirects-C8G4BsfP.mjs +446 -0
  673. package/dist/redirects-C8G4BsfP.mjs.map +1 -0
  674. package/dist/redirects-DFT7Wr-e.mjs +148 -0
  675. package/dist/redirects-DFT7Wr-e.mjs.map +1 -0
  676. package/dist/registry/testing.mjs +3 -3
  677. package/dist/registry-DeZ27gVi.mjs +8374 -0
  678. package/dist/registry-DeZ27gVi.mjs.map +1 -0
  679. package/dist/relations-DBB1bRJW.mjs +776 -0
  680. package/dist/relations-DBB1bRJW.mjs.map +1 -0
  681. package/dist/request-context.d.mts +2 -2
  682. package/dist/request-context.mjs.map +1 -1
  683. package/dist/request-meta-BSvkhIBX.mjs +141 -0
  684. package/dist/request-meta-BSvkhIBX.mjs.map +1 -0
  685. package/dist/resolve-BxH64HN9.mjs +100 -0
  686. package/dist/resolve-BxH64HN9.mjs.map +1 -0
  687. package/dist/revision-BWEH2qQB.mjs +368 -0
  688. package/dist/revision-BWEH2qQB.mjs.map +1 -0
  689. package/dist/route-wire-CwbWB_6O.mjs +197 -0
  690. package/dist/route-wire-CwbWB_6O.mjs.map +1 -0
  691. package/dist/routes-BfIxc7ft.mjs +272 -0
  692. package/dist/routes-BfIxc7ft.mjs.map +1 -0
  693. package/dist/runner-DkeafPBA.d.mts +68 -0
  694. package/dist/runner-DkeafPBA.d.mts.map +1 -0
  695. package/dist/runner-wqt4BrIW.mjs +6383 -0
  696. package/dist/runner-wqt4BrIW.mjs.map +1 -0
  697. package/dist/runtime.d.mts +13 -13
  698. package/dist/runtime.mjs +3 -3
  699. package/dist/schema/project-env-types.mjs +38 -38
  700. package/dist/schema-BXIW-JHi.mjs +815 -0
  701. package/dist/schema-BXIW-JHi.mjs.map +1 -0
  702. package/dist/schema-I74JwYte.mjs +13 -0
  703. package/dist/schema-I74JwYte.mjs.map +1 -0
  704. package/dist/scopes-RWZ5ft_Z.mjs +34 -0
  705. package/dist/scopes-RWZ5ft_Z.mjs.map +1 -0
  706. package/dist/search-DxwagyWS.mjs +450 -0
  707. package/dist/search-DxwagyWS.mjs.map +1 -0
  708. package/dist/secrets-Cc_O3Kp-.mjs +369 -0
  709. package/dist/secrets-Cc_O3Kp-.mjs.map +1 -0
  710. package/dist/sections-Ccq9ZgyD.mjs +346 -0
  711. package/dist/sections-Ccq9ZgyD.mjs.map +1 -0
  712. package/dist/seed/index.d.mts +2 -2
  713. package/dist/seed/index.mjs +36 -36
  714. package/dist/seo/index.d.mts +3 -3
  715. package/dist/seo/index.mjs +23 -23
  716. package/dist/seo-CCnfPWAQ.mjs +133 -0
  717. package/dist/seo-CCnfPWAQ.mjs.map +1 -0
  718. package/dist/seo-QCtJ1jjV.mjs +188 -0
  719. package/dist/seo-QCtJ1jjV.mjs.map +1 -0
  720. package/dist/service-DX84s2rw.mjs +150 -0
  721. package/dist/service-DX84s2rw.mjs.map +1 -0
  722. package/dist/session-user-1dtJc2zv.mjs +61 -0
  723. package/dist/session-user-1dtJc2zv.mjs.map +1 -0
  724. package/dist/settings-B1jOxAIl.mjs +443 -0
  725. package/dist/settings-B1jOxAIl.mjs.map +1 -0
  726. package/dist/settings-Bc1IBl1t.mjs +66 -0
  727. package/dist/settings-Bc1IBl1t.mjs.map +1 -0
  728. package/dist/settings-GaZ5sVgg.mjs +73 -0
  729. package/dist/settings-GaZ5sVgg.mjs.map +1 -0
  730. package/dist/setup-complete-DidMAWJS.mjs +65 -0
  731. package/dist/setup-complete-DidMAWJS.mjs.map +1 -0
  732. package/dist/setup-nonce-DKl4S4c6.mjs +25 -0
  733. package/dist/setup-nonce-DKl4S4c6.mjs.map +1 -0
  734. package/dist/single-flight-cache-D0EaGbN1.mjs +104 -0
  735. package/dist/single-flight-cache-D0EaGbN1.mjs.map +1 -0
  736. package/dist/site-domain-CbI51Pc2.mjs +113 -0
  737. package/dist/site-domain-CbI51Pc2.mjs.map +1 -0
  738. package/dist/site-settings-CDdT4mVm.mjs +50 -0
  739. package/dist/site-settings-CDdT4mVm.mjs.map +1 -0
  740. package/dist/site-url-CrDZaAvo.mjs +45 -0
  741. package/dist/site-url-CrDZaAvo.mjs.map +1 -0
  742. package/dist/sitemap-name-W3BTor6X.mjs +26 -0
  743. package/dist/sitemap-name-W3BTor6X.mjs.map +1 -0
  744. package/dist/slug-BJhHKoOH.mjs +16 -0
  745. package/dist/slug-BJhHKoOH.mjs.map +1 -0
  746. package/dist/slugify-bu2-jKia.mjs +22 -0
  747. package/dist/slugify-bu2-jKia.mjs.map +1 -0
  748. package/dist/snapshot-BuI_2uDe.mjs +414 -0
  749. package/dist/snapshot-BuI_2uDe.mjs.map +1 -0
  750. package/dist/ssrf-LM_0wpGA.mjs +406 -0
  751. package/dist/ssrf-LM_0wpGA.mjs.map +1 -0
  752. package/dist/stage-DhzZuYaT.mjs +662 -0
  753. package/dist/stage-DhzZuYaT.mjs.map +1 -0
  754. package/dist/staged-DboEaWsV.mjs +686 -0
  755. package/dist/staged-DboEaWsV.mjs.map +1 -0
  756. package/dist/state-DCXDzjHq.mjs +178 -0
  757. package/dist/state-DCXDzjHq.mjs.map +1 -0
  758. package/dist/status-Dl85BK39.mjs +30 -0
  759. package/dist/status-Dl85BK39.mjs.map +1 -0
  760. package/dist/storage/local.d.mts +2 -2
  761. package/dist/storage/local.d.mts.map +1 -1
  762. package/dist/storage/local.mjs +12 -5
  763. package/dist/storage/local.mjs.map +1 -1
  764. package/dist/storage/s3.d.mts +4 -2
  765. package/dist/storage/s3.d.mts.map +1 -1
  766. package/dist/storage/s3.mjs +56 -9
  767. package/dist/storage/s3.mjs.map +1 -1
  768. package/dist/storage-query-BOBmeDMD.d.mts +1615 -0
  769. package/dist/storage-query-BOBmeDMD.d.mts.map +1 -0
  770. package/dist/tar-K40edFMt.mjs +449 -0
  771. package/dist/tar-K40edFMt.mjs.map +1 -0
  772. package/dist/target-BOighEY1.mjs +27 -0
  773. package/dist/target-BOighEY1.mjs.map +1 -0
  774. package/dist/taxonomies-DQSywBvX.mjs +697 -0
  775. package/dist/taxonomies-DQSywBvX.mjs.map +1 -0
  776. package/dist/taxonomies-Dj5eaobC.mjs +939 -0
  777. package/dist/taxonomies-Dj5eaobC.mjs.map +1 -0
  778. package/dist/taxonomy-QrNmTfIZ.mjs +550 -0
  779. package/dist/taxonomy-QrNmTfIZ.mjs.map +1 -0
  780. package/dist/tokens-j5L0as2H.mjs +171 -0
  781. package/dist/tokens-j5L0as2H.mjs.map +1 -0
  782. package/dist/transfer-CYEw8Tu4.mjs +8873 -0
  783. package/dist/transfer-CYEw8Tu4.mjs.map +1 -0
  784. package/dist/transfer-DDX10hkD.mjs +166 -0
  785. package/dist/transfer-DDX10hkD.mjs.map +1 -0
  786. package/dist/transfer-download-BAqq6GJv.mjs +33 -0
  787. package/dist/transfer-download-BAqq6GJv.mjs.map +1 -0
  788. package/dist/transformations-De44wqV_.mjs +196 -0
  789. package/dist/transformations-De44wqV_.mjs.map +1 -0
  790. package/dist/transport-1QjUhCRO.d.mts +42 -0
  791. package/dist/transport-1QjUhCRO.d.mts.map +1 -0
  792. package/dist/transport-Ds5pVX7p.mjs +136 -0
  793. package/dist/transport-Ds5pVX7p.mjs.map +1 -0
  794. package/dist/trusted-proxy-d4Tk6biT.mjs +51 -0
  795. package/dist/trusted-proxy-d4Tk6biT.mjs.map +1 -0
  796. package/dist/turnstile-DaFLtyrs.mjs +58 -0
  797. package/dist/turnstile-DaFLtyrs.mjs.map +1 -0
  798. package/dist/types-B4-1P2DK.d.mts +227 -0
  799. package/dist/types-B4-1P2DK.d.mts.map +1 -0
  800. package/dist/types-BKXA0f-c.mjs +16 -0
  801. package/dist/types-BKXA0f-c.mjs.map +1 -0
  802. package/dist/types-BiHcpUoO.d.mts +374 -0
  803. package/dist/types-BiHcpUoO.d.mts.map +1 -0
  804. package/dist/types-BihhvkyN.d.mts +85 -0
  805. package/dist/types-BihhvkyN.d.mts.map +1 -0
  806. package/dist/types-Bq9Wohd7.d.mts +363 -0
  807. package/dist/types-Bq9Wohd7.d.mts.map +1 -0
  808. package/dist/types-C-Xp0CcN.mjs +103 -0
  809. package/dist/types-C-Xp0CcN.mjs.map +1 -0
  810. package/dist/types-C4P7F1Vq.d.mts +1741 -0
  811. package/dist/types-C4P7F1Vq.d.mts.map +1 -0
  812. package/dist/types-CGaqwHw4.mjs +37 -0
  813. package/dist/types-CGaqwHw4.mjs.map +1 -0
  814. package/dist/types-Cj0_yZkn.mjs +18 -0
  815. package/dist/types-Cj0_yZkn.mjs.map +1 -0
  816. package/dist/types-D4ECCE4X.mjs +77 -0
  817. package/dist/types-D4ECCE4X.mjs.map +1 -0
  818. package/dist/types-DcRJp0vS.d.mts +125 -0
  819. package/dist/types-DcRJp0vS.d.mts.map +1 -0
  820. package/dist/types-Ff85fTzU.d.mts +289 -0
  821. package/dist/types-Ff85fTzU.d.mts.map +1 -0
  822. package/dist/types-UKr5Sf4y.d.mts +916 -0
  823. package/dist/types-UKr5Sf4y.d.mts.map +1 -0
  824. package/dist/types-YpN8hZW7.d.mts +204 -0
  825. package/dist/types-YpN8hZW7.d.mts.map +1 -0
  826. package/dist/update-check-DrlsK-tt.mjs +161 -0
  827. package/dist/update-check-DrlsK-tt.mjs.map +1 -0
  828. package/dist/upload-attempts-D8CPPvRU.mjs +32 -0
  829. package/dist/upload-attempts-D8CPPvRU.mjs.map +1 -0
  830. package/dist/url-pattern-Di4Nn3vP.mjs +41 -0
  831. package/dist/url-pattern-Di4Nn3vP.mjs.map +1 -0
  832. package/dist/user-B-ZdGjhI.mjs +171 -0
  833. package/dist/user-B-ZdGjhI.mjs.map +1 -0
  834. package/dist/utils-D7wL3r6-.mjs +437 -0
  835. package/dist/utils-D7wL3r6-.mjs.map +1 -0
  836. package/dist/validate-BSZbSUDk.mjs +524 -0
  837. package/dist/validate-BSZbSUDk.mjs.map +1 -0
  838. package/dist/validate-Dfv0DpZi.d.mts +468 -0
  839. package/dist/validate-Dfv0DpZi.d.mts.map +1 -0
  840. package/dist/validation-DRyC_Vm5.mjs +219 -0
  841. package/dist/validation-DRyC_Vm5.mjs.map +1 -0
  842. package/dist/version-C4kz0PcO.mjs +7 -0
  843. package/dist/version-C4kz0PcO.mjs.map +1 -0
  844. package/dist/version-jhs2BRtl.mjs +9 -0
  845. package/dist/version-jhs2BRtl.mjs.map +1 -0
  846. package/dist/video-DReZ48Un.mjs +54 -0
  847. package/dist/video-DReZ48Un.mjs.map +1 -0
  848. package/dist/virtual-modules-D0e6VbEv.mjs +516 -0
  849. package/dist/virtual-modules-D0e6VbEv.mjs.map +1 -0
  850. package/dist/widgets-BkcMzKct.mjs +121 -0
  851. package/dist/widgets-BkcMzKct.mjs.map +1 -0
  852. package/dist/wxr-taxonomies-BxI0CbTg.mjs +453 -0
  853. package/dist/wxr-taxonomies-BxI0CbTg.mjs.map +1 -0
  854. package/dist/wxr-taxonomies-Dad33GJi.d.mts +34 -0
  855. package/dist/wxr-taxonomies-Dad33GJi.d.mts.map +1 -0
  856. package/dist/zod-generator-BQilAboC.mjs +424 -0
  857. package/dist/zod-generator-BQilAboC.mjs.map +1 -0
  858. package/package.json +19 -10
  859. package/src/api/errors.ts +12 -0
  860. package/src/api/handlers/api-tokens.ts +12 -6
  861. package/src/api/handlers/bylines.ts +24 -3
  862. package/src/api/handlers/calendar.ts +246 -0
  863. package/src/api/handlers/content.ts +69 -13
  864. package/src/api/handlers/domain-move-notice.ts +94 -0
  865. package/src/api/handlers/index.ts +2 -0
  866. package/src/api/handlers/manifest.ts +5 -0
  867. package/src/api/handlers/media-allowlist.ts +1 -0
  868. package/src/api/handlers/media-upload.ts +13 -10
  869. package/src/api/handlers/media-usage.ts +2 -1
  870. package/src/api/handlers/media.ts +1 -0
  871. package/src/api/handlers/plugins.ts +21 -29
  872. package/src/api/handlers/redirects.ts +6 -6
  873. package/src/api/handlers/seo.ts +155 -59
  874. package/src/api/handlers/settings.ts +31 -1
  875. package/src/api/handlers/site-domain.ts +143 -0
  876. package/src/api/openapi/document.ts +2 -2
  877. package/src/api/public-url.ts +1 -1
  878. package/src/api/schemas/bylines.ts +3 -1
  879. package/src/api/schemas/content.ts +36 -0
  880. package/src/api/schemas/media-usage.ts +7 -1
  881. package/src/api/schemas/media.ts +12 -0
  882. package/src/api/site-url.ts +53 -5
  883. package/src/api/types.ts +2 -0
  884. package/src/astro/image-endpoint.ts +46 -4
  885. package/src/astro/integration/admin-locales.ts +168 -0
  886. package/src/astro/integration/dev-env.ts +84 -0
  887. package/src/astro/integration/index.ts +67 -10
  888. package/src/astro/integration/routes.ts +25 -0
  889. package/src/astro/integration/runtime.ts +15 -0
  890. package/src/astro/integration/vite-config.ts +29 -1
  891. package/src/astro/middleware/auth.ts +16 -3
  892. package/src/astro/middleware/csp.ts +2 -0
  893. package/src/astro/middleware/redirect.ts +47 -21
  894. package/src/astro/middleware/request-context.ts +64 -31
  895. package/src/astro/middleware.ts +150 -26
  896. package/src/astro/prefetch.ts +10 -3
  897. package/src/astro/routes/api/admin/bylines/[id]/translations.ts +0 -5
  898. package/src/astro/routes/api/admin/bylines/index.ts +1 -1
  899. package/src/astro/routes/api/admin/plugins/[id]/index.ts +1 -0
  900. package/src/astro/routes/api/auth/handover.ts +58 -0
  901. package/src/astro/routes/api/auth/magic-link/verify.ts +11 -3
  902. package/src/astro/routes/api/auth/oauth/[provider]/callback.ts +56 -4
  903. package/src/astro/routes/api/auth/oauth/[provider].ts +37 -4
  904. package/src/astro/routes/api/auth/passkey/options.ts +10 -2
  905. package/src/astro/routes/api/calendar.ts +35 -0
  906. package/src/astro/routes/api/import/wordpress/execute.ts +19 -0
  907. package/src/astro/routes/api/import/wordpress/rewrite-url-helpers.ts +80 -42
  908. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +15 -0
  909. package/src/astro/routes/api/manifest.ts +10 -0
  910. package/src/astro/routes/api/media/[id]/confirm.ts +19 -0
  911. package/src/astro/routes/api/media/file/[...key].ts +60 -12
  912. package/src/astro/routes/api/media/upload-url.ts +35 -7
  913. package/src/astro/routes/api/media.ts +24 -5
  914. package/src/astro/routes/api/schema/index.ts +1 -1
  915. package/src/astro/routes/api/settings/domain-notify.ts +76 -0
  916. package/src/astro/routes/api/settings/domain.ts +63 -0
  917. package/src/astro/routes/api/setup/index.ts +21 -2
  918. package/src/astro/routes/api/site/domain-proof.ts +28 -0
  919. package/src/astro/routes/sitemap-[collection].xml.ts +31 -8
  920. package/src/astro/routes/sitemap.xml.ts +12 -10
  921. package/src/astro/types.ts +13 -1
  922. package/src/auth/providers/microsoft-admin.tsx +31 -0
  923. package/src/auth/providers/microsoft.ts +47 -0
  924. package/src/auth/rate-limit.ts +18 -13
  925. package/src/auth/types.ts +7 -0
  926. package/src/aws-sdk.d.ts +2 -1
  927. package/src/cleanup.ts +26 -0
  928. package/src/cli/commands/export-seed.ts +2 -0
  929. package/src/cli/commands/seed.ts +5 -4
  930. package/src/client/index.ts +6 -1
  931. package/src/comments/public-submission.ts +15 -8
  932. package/src/comments/turnstile.ts +6 -1
  933. package/src/components/CommentForm.astro +48 -8
  934. package/src/components/Comments.astro +50 -28
  935. package/src/components/EmDashImage.astro +6 -4
  936. package/src/components/Gallery.astro +4 -3
  937. package/src/components/HtmlBlock.astro +17 -6
  938. package/src/components/HtmlBlockFrame.astro +63 -0
  939. package/src/components/Iframe.astro +141 -0
  940. package/src/components/Image.astro +4 -3
  941. package/src/components/InlinePortableTextEditor.tsx +156 -33
  942. package/src/components/Video.astro +100 -0
  943. package/src/components/WebMcpSearch.astro +80 -0
  944. package/src/components/index.ts +8 -2
  945. package/src/components/inline-code-block.tsx +8 -0
  946. package/src/components/webmcp-search.ts +138 -0
  947. package/src/components/widgets/RecentPosts.astro +57 -17
  948. package/src/config/secrets.ts +27 -15
  949. package/src/content/converters/mark-safety.ts +3 -3
  950. package/src/content/converters/portable-text-identity.ts +2 -0
  951. package/src/content/converters/portable-text-to-prosemirror.ts +43 -2
  952. package/src/content/converters/prosemirror-to-portable-text.ts +44 -2
  953. package/src/content/converters/types.ts +46 -0
  954. package/src/content/converters/video.ts +77 -0
  955. package/src/database/content-datetime.ts +11 -4
  956. package/src/database/datetime-storage.ts +1 -1
  957. package/src/database/migrations/090_redirect_enable_loop_guard.ts +70 -0
  958. package/src/database/migrations/091_redirect_artifacts.ts +141 -0
  959. package/src/database/migrations/runner.ts +17 -1
  960. package/src/database/repositories/comment.ts +17 -3
  961. package/src/database/repositories/content.ts +103 -29
  962. package/src/database/repositories/plugin-storage.ts +28 -19
  963. package/src/database/repositories/redirect.ts +30 -3
  964. package/src/database/repositories/taxonomy.ts +61 -46
  965. package/src/database/repositories/types.ts +2 -0
  966. package/src/database/request-scoped.ts +34 -0
  967. package/src/database/types.ts +23 -0
  968. package/src/db/adapters.ts +2 -0
  969. package/src/emdash-runtime.ts +245 -71
  970. package/src/import/menus.ts +3 -0
  971. package/src/import/sources/wordpress-plugin.ts +3 -2
  972. package/src/import/utils.ts +2 -3
  973. package/src/index.ts +4 -0
  974. package/src/loader.ts +360 -98
  975. package/src/mcp/server.ts +12 -4
  976. package/src/media/image-endpoint.ts +101 -1
  977. package/src/media/mime.ts +21 -0
  978. package/src/media/responsive.ts +14 -7
  979. package/src/media/usage/extractor.ts +19 -2
  980. package/src/media/usage/types.ts +5 -1
  981. package/src/menus/index.ts +30 -26
  982. package/src/plugin-utils.ts +1 -1
  983. package/src/plugins/context.ts +3 -7
  984. package/src/plugins/hooks.ts +11 -1
  985. package/src/plugins/http-route-dispatch.ts +5 -1
  986. package/src/plugins/manager.ts +12 -2
  987. package/src/plugins/manifest-schema.ts +1 -0
  988. package/src/plugins/route-error.ts +14 -0
  989. package/src/plugins/routes.ts +2 -2
  990. package/src/plugins/state.ts +36 -0
  991. package/src/plugins/types.ts +22 -0
  992. package/src/query.ts +20 -29
  993. package/src/redirects/artifacts.ts +460 -0
  994. package/src/redirects/cache.ts +76 -41
  995. package/src/redirects/patterns.ts +26 -2
  996. package/src/request-context.ts +1 -1
  997. package/src/schema/registry.ts +7 -4
  998. package/src/schema/slug.ts +19 -0
  999. package/src/search/text-extraction.ts +6 -1
  1000. package/src/seed/apply.ts +65 -57
  1001. package/src/seed/validate.ts +31 -0
  1002. package/src/seo/sitemap-name.ts +22 -0
  1003. package/src/settings/index.ts +17 -12
  1004. package/src/storage/index.ts +2 -0
  1005. package/src/storage/local.ts +10 -2
  1006. package/src/storage/range.ts +54 -0
  1007. package/src/storage/s3.ts +52 -8
  1008. package/src/storage/types.ts +30 -3
  1009. package/src/transfer/format/columns.ts +3 -0
  1010. package/src/transfer/import/rebuild.ts +17 -2
  1011. package/src/transfer/import/scaffold.ts +16 -9
  1012. package/src/ui.ts +2 -0
  1013. package/src/utils/sanitize.ts +14 -9
  1014. package/src/utils/slugify.ts +6 -1
  1015. package/src/virtual-modules.d.ts +3 -0
  1016. package/src/visual-editing/toolbar.ts +80 -35
  1017. package/src/widgets/components.ts +4 -0
  1018. package/src/widgets/index.ts +74 -82
  1019. package/src/widgets/recent-posts.ts +62 -0
  1020. package/dist/action-token-D2KE1Rqf.mjs +0 -26
  1021. package/dist/action-token-D2KE1Rqf.mjs.map +0 -1
  1022. package/dist/activation-DDuqAat2.mjs +0 -387
  1023. package/dist/activation-DDuqAat2.mjs.map +0 -1
  1024. package/dist/adapters-Ds-1Pmkm.d.mts +0 -171
  1025. package/dist/adapters-Ds-1Pmkm.d.mts.map +0 -1
  1026. package/dist/allowed-origins-D78QvbTO.mjs +0 -116
  1027. package/dist/allowed-origins-D78QvbTO.mjs.map +0 -1
  1028. package/dist/api-BBZlif0y.mjs +0 -4974
  1029. package/dist/api-BBZlif0y.mjs.map +0 -1
  1030. package/dist/api-tokens-BGbfWZVO.mjs +0 -166
  1031. package/dist/api-tokens-BGbfWZVO.mjs.map +0 -1
  1032. package/dist/apply-CDNV4JJ-.mjs +0 -1672
  1033. package/dist/apply-CDNV4JJ-.mjs.map +0 -1
  1034. package/dist/approvals-CVvJSEBF.mjs +0 -460
  1035. package/dist/approvals-CVvJSEBF.mjs.map +0 -1
  1036. package/dist/artifact-fetch-CGK0DQLj.mjs +0 -659
  1037. package/dist/artifact-fetch-CGK0DQLj.mjs.map +0 -1
  1038. package/dist/audit-BszbE_BP.mjs +0 -127
  1039. package/dist/audit-BszbE_BP.mjs.map +0 -1
  1040. package/dist/authoritative-records-ChM8dTeV.mjs +0 -5172
  1041. package/dist/authoritative-records-ChM8dTeV.mjs.map +0 -1
  1042. package/dist/authorize-CTGywswM.mjs +0 -49
  1043. package/dist/authorize-CTGywswM.mjs.map +0 -1
  1044. package/dist/backup-CDrPP8fI.mjs +0 -246
  1045. package/dist/backup-CDrPP8fI.mjs.map +0 -1
  1046. package/dist/base64-DvnNgP7e.mjs +0 -63
  1047. package/dist/base64-DvnNgP7e.mjs.map +0 -1
  1048. package/dist/block-types-nNEaPkvx.mjs +0 -132
  1049. package/dist/block-types-nNEaPkvx.mjs.map +0 -1
  1050. package/dist/block-values-Bho1nsZF.mjs +0 -175
  1051. package/dist/block-values-Bho1nsZF.mjs.map +0 -1
  1052. package/dist/byline-02tu_Uc-.mjs +0 -909
  1053. package/dist/byline-02tu_Uc-.mjs.map +0 -1
  1054. package/dist/byline-fields-BYbTptTU.mjs +0 -280
  1055. package/dist/byline-fields-BYbTptTU.mjs.map +0 -1
  1056. package/dist/byline-fields-BjQH-1z9.mjs +0 -123
  1057. package/dist/byline-fields-BjQH-1z9.mjs.map +0 -1
  1058. package/dist/bylines-VytjeHBI.mjs +0 -214
  1059. package/dist/bylines-VytjeHBI.mjs.map +0 -1
  1060. package/dist/bylines-gyWBWUUc.mjs +0 -150
  1061. package/dist/bylines-gyWBWUUc.mjs.map +0 -1
  1062. package/dist/cache-CPanL9IO.mjs +0 -114
  1063. package/dist/cache-CPanL9IO.mjs.map +0 -1
  1064. package/dist/canonical-CAecl1UQ.mjs +0 -174
  1065. package/dist/canonical-CAecl1UQ.mjs.map +0 -1
  1066. package/dist/capture-triggers-CdZfvHtF.mjs +0 -362
  1067. package/dist/capture-triggers-CdZfvHtF.mjs.map +0 -1
  1068. package/dist/challenge-store-VePApay4.mjs +0 -51
  1069. package/dist/challenge-store-VePApay4.mjs.map +0 -1
  1070. package/dist/checksum-BSIhEAYW.mjs +0 -162
  1071. package/dist/checksum-BSIhEAYW.mjs.map +0 -1
  1072. package/dist/chrome-tags-CKELm-bo.mjs +0 -24
  1073. package/dist/chrome-tags-CKELm-bo.mjs.map +0 -1
  1074. package/dist/chunks-DBmkKmBH.mjs +0 -25
  1075. package/dist/chunks-DBmkKmBH.mjs.map +0 -1
  1076. package/dist/collection-slugs-cache-BNRAPNiu.mjs +0 -85
  1077. package/dist/collection-slugs-cache-BNRAPNiu.mjs.map +0 -1
  1078. package/dist/comment-Cq1UYN8_.mjs +0 -313
  1079. package/dist/comment-Cq1UYN8_.mjs.map +0 -1
  1080. package/dist/comment-reaction-B5sZzSoA.mjs +0 -85
  1081. package/dist/comment-reaction-B5sZzSoA.mjs.map +0 -1
  1082. package/dist/comments-B3F-ETyh.mjs +0 -195
  1083. package/dist/comments-B3F-ETyh.mjs.map +0 -1
  1084. package/dist/comments-zrTgWBSg.mjs +0 -99
  1085. package/dist/comments-zrTgWBSg.mjs.map +0 -1
  1086. package/dist/components-Dbf4Eq16.mjs +0 -108
  1087. package/dist/components-Dbf4Eq16.mjs.map +0 -1
  1088. package/dist/config-BCM5sQP7.d.mts +0 -6688
  1089. package/dist/config-BCM5sQP7.d.mts.map +0 -1
  1090. package/dist/config-CXPcy2iY.mjs +0 -228
  1091. package/dist/config-CXPcy2iY.mjs.map +0 -1
  1092. package/dist/config-CZkZBuBK.d.mts +0 -39
  1093. package/dist/config-CZkZBuBK.d.mts.map +0 -1
  1094. package/dist/connection-C5GIciX9.mjs +0 -36
  1095. package/dist/connection-C5GIciX9.mjs.map +0 -1
  1096. package/dist/content-RzEXY3QX.mjs +0 -2020
  1097. package/dist/content-RzEXY3QX.mjs.map +0 -1
  1098. package/dist/content-list-query-B6P37Ug_.d.mts +0 -26
  1099. package/dist/content-list-query-B6P37Ug_.d.mts.map +0 -1
  1100. package/dist/content-repair-BDVsYXWK.mjs +0 -442
  1101. package/dist/content-repair-BDVsYXWK.mjs.map +0 -1
  1102. package/dist/context-BpTIzY5h.mjs +0 -2026
  1103. package/dist/context-BpTIzY5h.mjs.map +0 -1
  1104. package/dist/credits-JOE92Gr7.mjs +0 -110
  1105. package/dist/credits-JOE92Gr7.mjs.map +0 -1
  1106. package/dist/cron-ktyapbdB.mjs +0 -306
  1107. package/dist/cron-ktyapbdB.mjs.map +0 -1
  1108. package/dist/dashboard-BoV4pwPP.mjs +0 -151
  1109. package/dist/dashboard-BoV4pwPP.mjs.map +0 -1
  1110. package/dist/default-B7KnYwtQ.mjs +0 -81
  1111. package/dist/default-B7KnYwtQ.mjs.map +0 -1
  1112. package/dist/deferred-tasks-eaUIqXj8.d.mts +0 -9
  1113. package/dist/deferred-tasks-eaUIqXj8.d.mts.map +0 -1
  1114. package/dist/dev-typegen-8JlYYFno.mjs +0 -29
  1115. package/dist/dev-typegen-8JlYYFno.mjs.map +0 -1
  1116. package/dist/device-flow-BlV_z24g.mjs +0 -521
  1117. package/dist/device-flow-BlV_z24g.mjs.map +0 -1
  1118. package/dist/digest-DiYAoZpf.mjs +0 -194
  1119. package/dist/digest-DiYAoZpf.mjs.map +0 -1
  1120. package/dist/direct-executor-Db8xA3zg.mjs +0 -104
  1121. package/dist/direct-executor-Db8xA3zg.mjs.map +0 -1
  1122. package/dist/email-console-Dm78wSmg.mjs +0 -50
  1123. package/dist/email-console-Dm78wSmg.mjs.map +0 -1
  1124. package/dist/email-locale-B4X9LXe9.mjs +0 -25
  1125. package/dist/email-locale-B4X9LXe9.mjs.map +0 -1
  1126. package/dist/emdash-runtime-BakQ6io7.mjs +0 -4239
  1127. package/dist/emdash-runtime-BakQ6io7.mjs.map +0 -1
  1128. package/dist/enrich-BDdVNeDK.mjs +0 -194
  1129. package/dist/enrich-BDdVNeDK.mjs.map +0 -1
  1130. package/dist/entry-lock-DY8B-xcr.d.mts +0 -4544
  1131. package/dist/entry-lock-DY8B-xcr.d.mts.map +0 -1
  1132. package/dist/entry-lock-DrUAdTzf.mjs +0 -163
  1133. package/dist/entry-lock-DrUAdTzf.mjs.map +0 -1
  1134. package/dist/entry-lock-yIkBduqJ.mjs +0 -1180
  1135. package/dist/entry-lock-yIkBduqJ.mjs.map +0 -1
  1136. package/dist/env-types-DkHYR2pl.mjs +0 -38
  1137. package/dist/env-types-DkHYR2pl.mjs.map +0 -1
  1138. package/dist/error-DIYXAVk4.mjs +0 -90
  1139. package/dist/error-DIYXAVk4.mjs.map +0 -1
  1140. package/dist/errors-CNvATh_7.mjs +0 -469
  1141. package/dist/errors-CNvATh_7.mjs.map +0 -1
  1142. package/dist/errors-CjXd1LgH.mjs +0 -120
  1143. package/dist/errors-CjXd1LgH.mjs.map +0 -1
  1144. package/dist/escape-B1GM0yJU.mjs +0 -9
  1145. package/dist/escape-B1GM0yJU.mjs.map +0 -1
  1146. package/dist/fence-8MaKKWhp.mjs +0 -162
  1147. package/dist/fence-8MaKKWhp.mjs.map +0 -1
  1148. package/dist/field-defs-cache-DEkFYCDE.mjs +0 -77
  1149. package/dist/field-defs-cache-DEkFYCDE.mjs.map +0 -1
  1150. package/dist/field-map-D7ioN0r0.mjs +0 -83
  1151. package/dist/field-map-D7ioN0r0.mjs.map +0 -1
  1152. package/dist/fts-manager-DU03MxWu.mjs +0 -443
  1153. package/dist/fts-manager-DU03MxWu.mjs.map +0 -1
  1154. package/dist/gc-DMiE7ezk.mjs +0 -75
  1155. package/dist/gc-DMiE7ezk.mjs.map +0 -1
  1156. package/dist/hash-CY4QdeMJ.mjs +0 -37
  1157. package/dist/hash-CY4QdeMJ.mjs.map +0 -1
  1158. package/dist/hook-result-Cb67D3P3.d.mts +0 -31
  1159. package/dist/hook-result-Cb67D3P3.d.mts.map +0 -1
  1160. package/dist/hreflang-Bterc3b7.mjs +0 -105
  1161. package/dist/hreflang-Bterc3b7.mjs.map +0 -1
  1162. package/dist/hreflang-uIBOE5yg.d.mts +0 -50
  1163. package/dist/hreflang-uIBOE5yg.d.mts.map +0 -1
  1164. package/dist/http-route-dispatch-DubjTibD.mjs +0 -339
  1165. package/dist/http-route-dispatch-DubjTibD.mjs.map +0 -1
  1166. package/dist/identity-DJ-5AcdG.mjs +0 -35
  1167. package/dist/identity-DJ-5AcdG.mjs.map +0 -1
  1168. package/dist/import-DEfuIgRz.mjs +0 -2020
  1169. package/dist/import-DEfuIgRz.mjs.map +0 -1
  1170. package/dist/index-xCy3j0f6.d.mts +0 -623
  1171. package/dist/index-xCy3j0f6.d.mts.map +0 -1
  1172. package/dist/init-lock-4eRRB4Le.mjs +0 -56
  1173. package/dist/init-lock-4eRRB4Le.mjs.map +0 -1
  1174. package/dist/install-finalization-DeGRbaVa.mjs +0 -58
  1175. package/dist/install-finalization-DeGRbaVa.mjs.map +0 -1
  1176. package/dist/keys-DWwMxdZh.mjs +0 -61
  1177. package/dist/keys-DWwMxdZh.mjs.map +0 -1
  1178. package/dist/kinds-D1A-00-F.mjs +0 -974
  1179. package/dist/kinds-D1A-00-F.mjs.map +0 -1
  1180. package/dist/lifecycle-BWtBGNEn.mjs +0 -25
  1181. package/dist/lifecycle-BWtBGNEn.mjs.map +0 -1
  1182. package/dist/load-BR1NEa_3.mjs +0 -28
  1183. package/dist/load-BR1NEa_3.mjs.map +0 -1
  1184. package/dist/loader-D4edocWH.mjs +0 -1197
  1185. package/dist/loader-D4edocWH.mjs.map +0 -1
  1186. package/dist/loops-DLaHFrvI.mjs +0 -205
  1187. package/dist/loops-DLaHFrvI.mjs.map +0 -1
  1188. package/dist/manifest-builder-8jsSLR7s.mjs +0 -189
  1189. package/dist/manifest-builder-8jsSLR7s.mjs.map +0 -1
  1190. package/dist/manifest-schema-DcZjRNEv.mjs +0 -496
  1191. package/dist/manifest-schema-DcZjRNEv.mjs.map +0 -1
  1192. package/dist/marketplace-CNxjq10S.mjs +0 -257
  1193. package/dist/marketplace-CNxjq10S.mjs.map +0 -1
  1194. package/dist/media-3v7mqAVX.mjs +0 -294
  1195. package/dist/media-3v7mqAVX.mjs.map +0 -1
  1196. package/dist/media-Bs6qmlVl.mjs +0 -408
  1197. package/dist/media-Bs6qmlVl.mjs.map +0 -1
  1198. package/dist/media-CputjGE1.mjs +0 -373
  1199. package/dist/media-CputjGE1.mjs.map +0 -1
  1200. package/dist/media-allowlist-isqF1gAh.mjs +0 -44
  1201. package/dist/media-allowlist-isqF1gAh.mjs.map +0 -1
  1202. package/dist/media-folders-D2VdVBf6.mjs +0 -210
  1203. package/dist/media-folders-D2VdVBf6.mjs.map +0 -1
  1204. package/dist/media-url-DbkMY3y6.mjs +0 -43
  1205. package/dist/media-url-DbkMY3y6.mjs.map +0 -1
  1206. package/dist/media-usage-activation-BaT4AlNI.mjs +0 -78
  1207. package/dist/media-usage-activation-BaT4AlNI.mjs.map +0 -1
  1208. package/dist/media-usage-v43L0kR_.mjs +0 -282
  1209. package/dist/media-usage-v43L0kR_.mjs.map +0 -1
  1210. package/dist/media-usage-work-CY8gIeU-.mjs +0 -151
  1211. package/dist/media-usage-work-CY8gIeU-.mjs.map +0 -1
  1212. package/dist/media-usage-work-VO108Q9E.mjs +0 -1015
  1213. package/dist/media-usage-work-VO108Q9E.mjs.map +0 -1
  1214. package/dist/menus-BYyeRemR.mjs +0 -3647
  1215. package/dist/menus-BYyeRemR.mjs.map +0 -1
  1216. package/dist/menus-mC_XTxD7.mjs +0 -92
  1217. package/dist/menus-mC_XTxD7.mjs.map +0 -1
  1218. package/dist/menus-trvc6_fW.mjs +0 -753
  1219. package/dist/menus-trvc6_fW.mjs.map +0 -1
  1220. package/dist/mime-IZf-LHIS.mjs +0 -36
  1221. package/dist/mime-IZf-LHIS.mjs.map +0 -1
  1222. package/dist/mode-B9-gMXL9.mjs +0 -23
  1223. package/dist/mode-B9-gMXL9.mjs.map +0 -1
  1224. package/dist/node-sqlite-compat-DztcWs4y.mjs +0 -63
  1225. package/dist/node-sqlite-compat-DztcWs4y.mjs.map +0 -1
  1226. package/dist/oauth-authorization-BIHy9SGU.mjs +0 -274
  1227. package/dist/oauth-authorization-BIHy9SGU.mjs.map +0 -1
  1228. package/dist/oauth-clients-BZWZvKXa.mjs +0 -266
  1229. package/dist/oauth-clients-BZWZvKXa.mjs.map +0 -1
  1230. package/dist/oauth-state-store-CxXTjXdI.mjs +0 -50
  1231. package/dist/oauth-state-store-CxXTjXdI.mjs.map +0 -1
  1232. package/dist/oauth-user-lookup-GWojfxRl.mjs +0 -26
  1233. package/dist/oauth-user-lookup-GWojfxRl.mjs.map +0 -1
  1234. package/dist/options-DRF6dlXY.d.mts +0 -81
  1235. package/dist/options-DRF6dlXY.d.mts.map +0 -1
  1236. package/dist/ownership-Bd77AmJz.mjs +0 -12
  1237. package/dist/ownership-Bd77AmJz.mjs.map +0 -1
  1238. package/dist/parse-5Y0W39xR.mjs +0 -81
  1239. package/dist/parse-5Y0W39xR.mjs.map +0 -1
  1240. package/dist/parse-BPblgoa-.d.mts +0 -172
  1241. package/dist/parse-BPblgoa-.d.mts.map +0 -1
  1242. package/dist/passkey-config-PiQ5cBnt.mjs +0 -46
  1243. package/dist/passkey-config-PiQ5cBnt.mjs.map +0 -1
  1244. package/dist/paths-DkS74lBM.mjs +0 -77
  1245. package/dist/paths-DkS74lBM.mjs.map +0 -1
  1246. package/dist/patterns-DyZJ67I7.mjs +0 -140
  1247. package/dist/patterns-DyZJ67I7.mjs.map +0 -1
  1248. package/dist/placeholder-Bez2282x.d.mts +0 -306
  1249. package/dist/placeholder-Bez2282x.d.mts.map +0 -1
  1250. package/dist/plan-Lw7iGnGD.mjs +0 -135
  1251. package/dist/plan-Lw7iGnGD.mjs.map +0 -1
  1252. package/dist/plugins-D7xSh1Lu.mjs +0 -277
  1253. package/dist/plugins-D7xSh1Lu.mjs.map +0 -1
  1254. package/dist/policy-DMRiMdLn.mjs +0 -45
  1255. package/dist/policy-DMRiMdLn.mjs.map +0 -1
  1256. package/dist/portable-text-kcyN3F-a.mjs +0 -307
  1257. package/dist/portable-text-kcyN3F-a.mjs.map +0 -1
  1258. package/dist/preview--2VDLaND.mjs +0 -107
  1259. package/dist/preview--2VDLaND.mjs.map +0 -1
  1260. package/dist/protocol-FvwLA8P-.d.mts +0 -61
  1261. package/dist/protocol-FvwLA8P-.d.mts.map +0 -1
  1262. package/dist/public-submission-BRyK76U8.mjs +0 -250
  1263. package/dist/public-submission-BRyK76U8.mjs.map +0 -1
  1264. package/dist/public-url-7j0cpCFc.mjs +0 -101
  1265. package/dist/public-url-7j0cpCFc.mjs.map +0 -1
  1266. package/dist/query-BRNTde3V.mjs +0 -41
  1267. package/dist/query-BRNTde3V.mjs.map +0 -1
  1268. package/dist/query-DyYYWOKk.mjs +0 -1161
  1269. package/dist/query-DyYYWOKk.mjs.map +0 -1
  1270. package/dist/rate-limit-D0BcE76H.mjs +0 -120
  1271. package/dist/rate-limit-D0BcE76H.mjs.map +0 -1
  1272. package/dist/receipt-C4icyHlC.mjs +0 -43
  1273. package/dist/receipt-C4icyHlC.mjs.map +0 -1
  1274. package/dist/redirect-9DbtxSNG.mjs +0 -19
  1275. package/dist/redirect-9DbtxSNG.mjs.map +0 -1
  1276. package/dist/redirect-BvFKh8Sz.mjs +0 -416
  1277. package/dist/redirect-BvFKh8Sz.mjs.map +0 -1
  1278. package/dist/redirects-1nhdEaTq.mjs +0 -148
  1279. package/dist/redirects-1nhdEaTq.mjs.map +0 -1
  1280. package/dist/redirects-D1yMnSR9.mjs +0 -446
  1281. package/dist/redirects-D1yMnSR9.mjs.map +0 -1
  1282. package/dist/registry-CzPJNu3H.mjs +0 -8366
  1283. package/dist/registry-CzPJNu3H.mjs.map +0 -1
  1284. package/dist/relations-C8JpSkU6.mjs +0 -776
  1285. package/dist/relations-C8JpSkU6.mjs.map +0 -1
  1286. package/dist/request-meta-Bs60XW1m.mjs +0 -141
  1287. package/dist/request-meta-Bs60XW1m.mjs.map +0 -1
  1288. package/dist/resolve-BHWgMU_X.mjs +0 -100
  1289. package/dist/resolve-BHWgMU_X.mjs.map +0 -1
  1290. package/dist/revision-CGkQA0e5.mjs +0 -366
  1291. package/dist/revision-CGkQA0e5.mjs.map +0 -1
  1292. package/dist/route-wire-ClUVQduA.mjs +0 -197
  1293. package/dist/route-wire-ClUVQduA.mjs.map +0 -1
  1294. package/dist/routes-D2GFl3B7.mjs +0 -272
  1295. package/dist/routes-D2GFl3B7.mjs.map +0 -1
  1296. package/dist/runner-CLpxmhl8.mjs +0 -6197
  1297. package/dist/runner-CLpxmhl8.mjs.map +0 -1
  1298. package/dist/runner-CWl76CH3.d.mts +0 -68
  1299. package/dist/runner-CWl76CH3.d.mts.map +0 -1
  1300. package/dist/schema-27XefSYG.mjs +0 -13
  1301. package/dist/schema-27XefSYG.mjs.map +0 -1
  1302. package/dist/schema-Btvj3BMh.mjs +0 -815
  1303. package/dist/schema-Btvj3BMh.mjs.map +0 -1
  1304. package/dist/scopes-DGCj6K4p.mjs +0 -34
  1305. package/dist/scopes-DGCj6K4p.mjs.map +0 -1
  1306. package/dist/search-pZRRmWjh.mjs +0 -448
  1307. package/dist/search-pZRRmWjh.mjs.map +0 -1
  1308. package/dist/secrets-CIi0nFiR.mjs +0 -341
  1309. package/dist/secrets-CIi0nFiR.mjs.map +0 -1
  1310. package/dist/sections-CIhqs3Ao.mjs +0 -346
  1311. package/dist/sections-CIhqs3Ao.mjs.map +0 -1
  1312. package/dist/seo-DifeiGdl.mjs +0 -114
  1313. package/dist/seo-DifeiGdl.mjs.map +0 -1
  1314. package/dist/seo-DpYxmGaL.mjs +0 -133
  1315. package/dist/seo-DpYxmGaL.mjs.map +0 -1
  1316. package/dist/service-COVdVpSK.mjs +0 -150
  1317. package/dist/service-COVdVpSK.mjs.map +0 -1
  1318. package/dist/session-user-C6IEjuty.mjs +0 -61
  1319. package/dist/session-user-C6IEjuty.mjs.map +0 -1
  1320. package/dist/settings-CwcrX-Ay.mjs +0 -61
  1321. package/dist/settings-CwcrX-Ay.mjs.map +0 -1
  1322. package/dist/settings-D_cJtT48.mjs +0 -439
  1323. package/dist/settings-D_cJtT48.mjs.map +0 -1
  1324. package/dist/settings-tnPQN3Z2.mjs +0 -51
  1325. package/dist/settings-tnPQN3Z2.mjs.map +0 -1
  1326. package/dist/setup-complete-BOrI10UY.mjs +0 -65
  1327. package/dist/setup-complete-BOrI10UY.mjs.map +0 -1
  1328. package/dist/setup-nonce-0XTBLTsX.mjs +0 -25
  1329. package/dist/setup-nonce-0XTBLTsX.mjs.map +0 -1
  1330. package/dist/single-flight-cache-B5O2qhO1.mjs +0 -104
  1331. package/dist/single-flight-cache-B5O2qhO1.mjs.map +0 -1
  1332. package/dist/site-settings-B7vGFRDT.mjs +0 -50
  1333. package/dist/site-settings-B7vGFRDT.mjs.map +0 -1
  1334. package/dist/site-url-wEYRMHBv.mjs +0 -16
  1335. package/dist/site-url-wEYRMHBv.mjs.map +0 -1
  1336. package/dist/slugify-T5GHH42D.mjs +0 -17
  1337. package/dist/slugify-T5GHH42D.mjs.map +0 -1
  1338. package/dist/snapshot-W36KbLmc.mjs +0 -414
  1339. package/dist/snapshot-W36KbLmc.mjs.map +0 -1
  1340. package/dist/ssrf-CRJ-xom5.mjs +0 -406
  1341. package/dist/ssrf-CRJ-xom5.mjs.map +0 -1
  1342. package/dist/stage-DA0NrTRZ.mjs +0 -662
  1343. package/dist/stage-DA0NrTRZ.mjs.map +0 -1
  1344. package/dist/staged-Bw5eHbKS.mjs +0 -686
  1345. package/dist/staged-Bw5eHbKS.mjs.map +0 -1
  1346. package/dist/state-BTlprvUF.mjs +0 -153
  1347. package/dist/state-BTlprvUF.mjs.map +0 -1
  1348. package/dist/status-C6IrSLMT.mjs +0 -30
  1349. package/dist/status-C6IrSLMT.mjs.map +0 -1
  1350. package/dist/storage-query-CdVF2bng.d.mts +0 -1614
  1351. package/dist/storage-query-CdVF2bng.d.mts.map +0 -1
  1352. package/dist/tar-BGOZARjy.mjs +0 -449
  1353. package/dist/tar-BGOZARjy.mjs.map +0 -1
  1354. package/dist/target-YhYH_0uc.mjs +0 -27
  1355. package/dist/target-YhYH_0uc.mjs.map +0 -1
  1356. package/dist/taxonomies-DK_XBrmT.mjs +0 -697
  1357. package/dist/taxonomies-DK_XBrmT.mjs.map +0 -1
  1358. package/dist/taxonomies-S1M3rUC0.mjs +0 -939
  1359. package/dist/taxonomies-S1M3rUC0.mjs.map +0 -1
  1360. package/dist/taxonomy-BesdHIwi.mjs +0 -525
  1361. package/dist/taxonomy-BesdHIwi.mjs.map +0 -1
  1362. package/dist/tokens-B_ffPF1q.mjs +0 -171
  1363. package/dist/tokens-B_ffPF1q.mjs.map +0 -1
  1364. package/dist/transfer-9fVSxyrV.mjs +0 -166
  1365. package/dist/transfer-9fVSxyrV.mjs.map +0 -1
  1366. package/dist/transfer-B7LUTaYD.mjs +0 -8855
  1367. package/dist/transfer-B7LUTaYD.mjs.map +0 -1
  1368. package/dist/transfer-download-BdNq4VWN.mjs +0 -33
  1369. package/dist/transfer-download-BdNq4VWN.mjs.map +0 -1
  1370. package/dist/transformations-BtQdvyly.mjs +0 -196
  1371. package/dist/transformations-BtQdvyly.mjs.map +0 -1
  1372. package/dist/transport-CriYXY1c.mjs +0 -136
  1373. package/dist/transport-CriYXY1c.mjs.map +0 -1
  1374. package/dist/transport-SnhS6xku.d.mts +0 -42
  1375. package/dist/transport-SnhS6xku.d.mts.map +0 -1
  1376. package/dist/trusted-proxy-C0eHXPd-.mjs +0 -51
  1377. package/dist/trusted-proxy-C0eHXPd-.mjs.map +0 -1
  1378. package/dist/turnstile-BNPrWd1e.mjs +0 -53
  1379. package/dist/turnstile-BNPrWd1e.mjs.map +0 -1
  1380. package/dist/types-B8sF_kE5.d.mts +0 -287
  1381. package/dist/types-B8sF_kE5.d.mts.map +0 -1
  1382. package/dist/types-BYVIYOlD.d.mts +0 -1720
  1383. package/dist/types-BYVIYOlD.d.mts.map +0 -1
  1384. package/dist/types-Bs4bi95j.d.mts +0 -374
  1385. package/dist/types-Bs4bi95j.d.mts.map +0 -1
  1386. package/dist/types-CGuODCZi.d.mts +0 -198
  1387. package/dist/types-CGuODCZi.d.mts.map +0 -1
  1388. package/dist/types-CVsmpTcU.mjs +0 -18
  1389. package/dist/types-CVsmpTcU.mjs.map +0 -1
  1390. package/dist/types-ClFEExxn.mjs +0 -37
  1391. package/dist/types-ClFEExxn.mjs.map +0 -1
  1392. package/dist/types-D994zUWB.d.mts +0 -85
  1393. package/dist/types-D994zUWB.d.mts.map +0 -1
  1394. package/dist/types-DAj1ByJQ.d.mts +0 -125
  1395. package/dist/types-DAj1ByJQ.d.mts.map +0 -1
  1396. package/dist/types-Dlv6esp4.mjs +0 -77
  1397. package/dist/types-Dlv6esp4.mjs.map +0 -1
  1398. package/dist/types-Dr1LVwL7.d.mts +0 -363
  1399. package/dist/types-Dr1LVwL7.d.mts.map +0 -1
  1400. package/dist/types-MN9bOQ1g.d.mts +0 -198
  1401. package/dist/types-MN9bOQ1g.d.mts.map +0 -1
  1402. package/dist/types-d2Szb1oz.mjs +0 -16
  1403. package/dist/types-d2Szb1oz.mjs.map +0 -1
  1404. package/dist/types-ibtP7GEA.d.mts +0 -896
  1405. package/dist/types-ibtP7GEA.d.mts.map +0 -1
  1406. package/dist/types-j6MBDjlZ.mjs +0 -103
  1407. package/dist/types-j6MBDjlZ.mjs.map +0 -1
  1408. package/dist/update-check-D8No-E5s.mjs +0 -161
  1409. package/dist/update-check-D8No-E5s.mjs.map +0 -1
  1410. package/dist/upload-attempts-BodUoFBu.mjs +0 -32
  1411. package/dist/upload-attempts-BodUoFBu.mjs.map +0 -1
  1412. package/dist/url-pattern-DGAG6ZP2.mjs +0 -41
  1413. package/dist/url-pattern-DGAG6ZP2.mjs.map +0 -1
  1414. package/dist/user-BOvuF1sQ.mjs +0 -171
  1415. package/dist/user-BOvuF1sQ.mjs.map +0 -1
  1416. package/dist/utils-Dr01wRKt.mjs +0 -439
  1417. package/dist/utils-Dr01wRKt.mjs.map +0 -1
  1418. package/dist/validate-BttYU7NK.mjs +0 -516
  1419. package/dist/validate-BttYU7NK.mjs.map +0 -1
  1420. package/dist/validate-Df09inbC.d.mts +0 -468
  1421. package/dist/validate-Df09inbC.d.mts.map +0 -1
  1422. package/dist/validation-DH2WRwWO.mjs +0 -219
  1423. package/dist/validation-DH2WRwWO.mjs.map +0 -1
  1424. package/dist/version-BbygH8CT.mjs +0 -7
  1425. package/dist/version-BbygH8CT.mjs.map +0 -1
  1426. package/dist/version-CseoDDOd.mjs +0 -9
  1427. package/dist/version-CseoDDOd.mjs.map +0 -1
  1428. package/dist/virtual-modules-82GlnQyG.mjs +0 -516
  1429. package/dist/virtual-modules-82GlnQyG.mjs.map +0 -1
  1430. package/dist/widgets-DMAgGcQt.mjs +0 -126
  1431. package/dist/widgets-DMAgGcQt.mjs.map +0 -1
  1432. package/dist/wxr-taxonomies-Bi5kFSxQ.mjs +0 -453
  1433. package/dist/wxr-taxonomies-Bi5kFSxQ.mjs.map +0 -1
  1434. package/dist/wxr-taxonomies-y_FpYlDn.d.mts +0 -34
  1435. package/dist/wxr-taxonomies-y_FpYlDn.d.mts.map +0 -1
  1436. package/dist/zod-generator-DnfG5sGQ.mjs +0 -424
  1437. package/dist/zod-generator-DnfG5sGQ.mjs.map +0 -1
  1438. /package/dist/{api-tokens-B4COohsb.mjs → api-tokens-D2zgAIEt.mjs} +0 -0
  1439. /package/dist/{ssrf-sC4_5rxm.mjs → ssrf-BvNItdxk.mjs} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.json.mjs","names":["toJSONSchema$1"],"sources":["../../../../../../node_modules/.pnpm/zod-openapi@5.4.6_zod@4.5.4/node_modules/zod-openapi/dist/components-DiNDbisK.mjs","../../../../../../node_modules/.pnpm/zod-openapi@5.4.6_zod@4.5.4/node_modules/zod-openapi/dist/index.mjs","../../../../src/api/openapi/document.ts","../../../../src/astro/routes/api/openapi.json.ts"],"sourcesContent":["import { globalRegistry } from \"zod/v4/core\";\nimport { globalRegistry as globalRegistry$1, object, registry, toJSONSchema as toJSONSchema$1 } from \"zod/v4\";\n\n//#region src/zod.ts\nconst isAnyZodType = (schema) => typeof schema === \"object\" && schema !== null && \"_zod\" in schema;\n\n//#endregion\n//#region src/create/examples.ts\nconst createExamples = (examples, registry$1, path) => {\n\tif (!examples) return;\n\tconst examplesObject = {};\n\tfor (const [name, example] of Object.entries(examples)) examplesObject[name] = registry$1.addExample(example, [...path, name]);\n\treturn examplesObject;\n};\n\n//#endregion\n//#region src/create/content.ts\nconst createMediaTypeObject = (mediaType, ctx, path) => {\n\tconst { schema, examples, ...rest } = mediaType;\n\tconst mediaTypeObject = rest;\n\tif (isAnyZodType(schema)) mediaTypeObject.schema = ctx.registry.addSchema(schema, [...path, \"schema\"], {\n\t\tio: ctx.io,\n\t\tsource: { type: \"mediaType\" }\n\t});\n\telse mediaTypeObject.schema = schema;\n\tif (examples) mediaTypeObject.examples = createExamples(examples, ctx.registry, [...path, \"examples\"]);\n\treturn mediaTypeObject;\n};\nconst createContent = (content, ctx, path) => {\n\tconst contentObject = {};\n\tfor (const [mediaType, mediaTypeObject] of Object.entries(content)) if (mediaTypeObject) contentObject[mediaType] = createMediaTypeObject(mediaTypeObject, ctx, [...path, mediaType]);\n\treturn contentObject;\n};\n\n//#endregion\n//#region src/create/object.ts\nconst unwrapZodObject = (zodType, io, path) => {\n\tconst def = zodType._zod.def;\n\tswitch (def.type) {\n\t\tcase \"object\": return zodType;\n\t\tcase \"lazy\": return unwrapZodObject(def.getter(), io, path);\n\t\tcase \"pipe\":\n\t\t\tif (io === \"input\") return unwrapZodObject(def.in, io, path);\n\t\t\treturn unwrapZodObject(def.out, io, path);\n\t}\n\tthrow new Error(`Failed to unwrap ZodObject from type: ${zodType._zod.def.type} at ${path.join(\" > \")}`);\n};\nconst isRequired = (zodType, io) => {\n\tif (io === \"input\") return zodType._zod.optin === void 0;\n\treturn zodType._zod.optout === void 0;\n};\n\n//#endregion\n//#region src/create/headers.ts\nconst createHeaders = (headers, registry$1, path) => {\n\tif (!headers) return;\n\tif (isAnyZodType(headers)) {\n\t\tconst zodObject = unwrapZodObject(headers, \"output\", path);\n\t\tconst headersObject = {};\n\t\tfor (const [key, zodSchema] of Object.entries(zodObject._zod.def.shape)) headersObject[key] = registry$1.addHeader(zodSchema, [...path, key]);\n\t\treturn headersObject;\n\t}\n\treturn headers;\n};\n\n//#endregion\n//#region src/create/links.ts\nconst createLinks = (links, registry$1, path) => {\n\tif (!links) return;\n\tconst linksObject = {};\n\tfor (const [name, link] of Object.entries(links)) linksObject[name] = registry$1.addLink(link, [...path, name]);\n\treturn linksObject;\n};\n\n//#endregion\n//#region src/create/parameters.ts\nconst createManualParameters = (parameters, registry$1, path) => {\n\tif (!parameters) return;\n\tconst parameterObjects = [];\n\tfor (const parameter of parameters) {\n\t\tif (isAnyZodType(parameter)) {\n\t\t\tconst paramObject = registry$1.addParameter(parameter, [...path, \"parameters\"]);\n\t\t\tparameterObjects.push(paramObject);\n\t\t\tcontinue;\n\t\t}\n\t\tparameterObjects.push(parameter);\n\t}\n\treturn parameterObjects;\n};\nconst createParameters = (requestParams, registry$1, path) => {\n\tif (!requestParams) return;\n\tconst parameterObjects = [];\n\tfor (const [location, schema] of Object.entries(requestParams ?? {})) {\n\t\tconst zodObject = unwrapZodObject(schema, \"input\", path);\n\t\tfor (const [name, zodSchema] of Object.entries(zodObject._zod.def.shape)) {\n\t\t\tconst paramObject = registry$1.addParameter(zodSchema, [\n\t\t\t\t...path,\n\t\t\t\tlocation,\n\t\t\t\tname\n\t\t\t], { location: {\n\t\t\t\tin: location,\n\t\t\t\tname\n\t\t\t} });\n\t\t\tparameterObjects.push(paramObject);\n\t\t}\n\t}\n\treturn parameterObjects;\n};\n\n//#endregion\n//#region src/create/specificationExtension.ts\nconst isISpecificationExtension = (key) => key.startsWith(\"x-\");\n\n//#endregion\n//#region src/create/callbacks.ts\nconst createCallbacks = (callbacks, registry$1, path) => {\n\tif (!callbacks) return;\n\tconst callbacksObject = {};\n\tfor (const [name, value] of Object.entries(callbacks)) {\n\t\tif (isISpecificationExtension(name)) {\n\t\t\tcallbacksObject[name] = value;\n\t\t\tcontinue;\n\t\t}\n\t\tcallbacksObject[name] = registry$1.addCallback(value, [...path, name]);\n\t}\n\treturn callbacksObject;\n};\n\n//#endregion\n//#region src/create/responses.ts\nconst createResponses = (responses, registry$1, path) => {\n\tif (!responses) return;\n\tconst responsesObject = {};\n\tfor (const [statusCode, response] of Object.entries(responses)) {\n\t\tif (!response) continue;\n\t\tif (isISpecificationExtension(statusCode)) {\n\t\t\tresponsesObject[statusCode] = response;\n\t\t\tcontinue;\n\t\t}\n\t\tif (\"$ref\" in response) {\n\t\t\tresponsesObject[statusCode] = response;\n\t\t\tcontinue;\n\t\t}\n\t\tresponsesObject[statusCode] = registry$1.addResponse(response, [...path, statusCode]);\n\t}\n\treturn responsesObject;\n};\n\n//#endregion\n//#region src/create/paths.ts\nconst createOperation = (operation, registry$1, path) => {\n\tconst { parameters, requestParams, requestBody, responses, callbacks, ...rest } = operation;\n\tconst operationObject = rest;\n\tconst maybeManualParameters = createManualParameters(parameters, registry$1, [...path, \"parameters\"]);\n\tconst maybeRequestParams = createParameters(requestParams, registry$1, [...path, \"requestParams\"]);\n\tif (maybeRequestParams || maybeManualParameters) operationObject.parameters = [...maybeRequestParams ?? [], ...maybeManualParameters ?? []];\n\tconst maybeRequestBody = requestBody && registry$1.addRequestBody(requestBody, path);\n\tif (maybeRequestBody) operationObject.requestBody = maybeRequestBody;\n\tconst maybeResponses = createResponses(responses, registry$1, [...path, \"responses\"]);\n\tif (maybeResponses) operationObject.responses = maybeResponses;\n\tconst maybeCallbacks = createCallbacks(callbacks, registry$1, [...path, \"callbacks\"]);\n\tif (maybeCallbacks) operationObject.callbacks = maybeCallbacks;\n\treturn operationObject;\n};\nconst createPaths = (paths, registry$1, path) => {\n\tif (!paths) return;\n\tconst pathsObject = {};\n\tfor (const [singlePath, pathItemObject] of Object.entries(paths)) {\n\t\tif (isISpecificationExtension(singlePath)) {\n\t\t\tpathsObject[singlePath] = pathItemObject;\n\t\t\tcontinue;\n\t\t}\n\t\tpathsObject[singlePath] = registry$1.addPathItem(pathItemObject, [...path, singlePath]);\n\t}\n\treturn pathsObject;\n};\n\n//#endregion\n//#region src/openapi.ts\nconst openApiVersions = [\n\t\"3.0.0\",\n\t\"3.0.1\",\n\t\"3.0.2\",\n\t\"3.0.3\",\n\t\"3.1.0\",\n\t\"3.1.1\"\n];\nconst satisfiesVersion = (test, against) => openApiVersions.indexOf(test) >= openApiVersions.indexOf(against);\n\n//#endregion\n//#region src/create/schema/override.ts\nconst override = (ctx) => {\n\tconst def = ctx.zodSchema._zod.def;\n\tswitch (def.type) {\n\t\tcase \"bigint\":\n\t\t\tctx.jsonSchema.type = \"integer\";\n\t\t\tctx.jsonSchema.format = \"int64\";\n\t\t\tbreak;\n\t\tcase \"union\": {\n\t\t\tif (\"discriminator\" in def && typeof def.discriminator === \"string\") {\n\t\t\t\tctx.jsonSchema.oneOf ??= ctx.jsonSchema.anyOf;\n\t\t\t\tdelete ctx.jsonSchema.anyOf;\n\t\t\t\tctx.jsonSchema.type = \"object\";\n\t\t\t\tctx.jsonSchema.discriminator = { propertyName: def.discriminator };\n\t\t\t\tconst mapping = {};\n\t\t\t\tfor (const [index, obj] of Object.entries(ctx.jsonSchema.oneOf)) {\n\t\t\t\t\tconst ref = obj.$ref;\n\t\t\t\t\tif (!ref) {\n\t\t\t\t\t\tdelete ctx.jsonSchema.discriminator;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst discriminatorValues = def.options[Number(index)]._zod.propValues?.[def.discriminator];\n\t\t\t\t\tif (!discriminatorValues?.size) return;\n\t\t\t\t\tfor (const value of [...discriminatorValues ?? []]) {\n\t\t\t\t\t\tif (typeof value !== \"string\" && typeof value !== \"number\" && typeof value !== \"boolean\") return;\n\t\t\t\t\t\tmapping[String(value)] = ref;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tctx.jsonSchema.discriminator.mapping = mapping;\n\t\t\t}\n\t\t\tconst meta = globalRegistry$1.get(ctx.zodSchema);\n\t\t\tif (typeof meta?.unionOneOf === \"boolean\") {\n\t\t\t\tif (meta.unionOneOf) {\n\t\t\t\t\tctx.jsonSchema.oneOf = ctx.jsonSchema.anyOf;\n\t\t\t\t\tdelete ctx.jsonSchema.anyOf;\n\t\t\t\t}\n\t\t\t\tdelete ctx.jsonSchema.unionOneOf;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"date\":\n\t\t\tctx.jsonSchema.type = \"string\";\n\t\t\tbreak;\n\t\tcase \"literal\":\n\t\t\tif (def.values.includes(void 0)) break;\n\t\t\tbreak;\n\t\tcase \"undefined\":\n\t\t\tctx.jsonSchema.not = {};\n\t\t\tbreak;\n\t}\n};\nconst validate = (ctx, opts, previousContext) => {\n\tif (previousContext.context && ctx.zodSchema._zod.parent !== previousContext.context.zodSchema) {\n\t\tif (previousContext.context.zodSchema._zod.def.type === \"pipe\") throw new Error(`Zod transform found at ${previousContext.context.path.join(\" > \")} are not supported in output schemas. Please use \\`.overwrite()\\` or wrap the schema in a \\`.pipe()\\` or assign it manual metadata with \\`.meta()\\``);\n\t\tthrow new Error(`Zod schema of type \\`${previousContext.context.zodSchema._zod.def.type}\\` at ${previousContext.context?.path.join(\" > \")} cannot be represented in OpenAPI. Please assign it metadata with \\`.meta()\\``);\n\t}\n\tpreviousContext.context = void 0;\n\tif (Object.keys(ctx.jsonSchema).length) return;\n\tconst def = ctx.zodSchema._zod.def;\n\tconst allowEmptySchema = opts.allowEmptySchema?.[def.type];\n\tif (allowEmptySchema === true || allowEmptySchema?.[ctx.io]) return;\n\tswitch (def.type) {\n\t\tcase \"optional\":\n\t\t\tvalidate({\n\t\t\t\t...ctx,\n\t\t\t\tzodSchema: def.innerType\n\t\t\t}, opts, previousContext);\n\t\t\treturn;\n\t\tcase \"any\": return;\n\t\tcase \"unknown\": return;\n\t\tcase \"pipe\":\n\t\t\tif (ctx.io === \"output\") {\n\t\t\t\tif (!ctx.zodSchema._zod.parent) {\n\t\t\t\t\tpreviousContext.context = ctx;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\tcase \"transform\":\n\t\t\tif (ctx.io === \"output\") return;\n\t\t\tbreak;\n\t\tcase \"literal\":\n\t\t\tif (def.values.includes(void 0)) throw new Error(`Zod literal at ${ctx.path.join(\" > \")} cannot include \\`undefined\\` as a value. Please use \\`z.undefined()\\` or \\`.optional()\\` instead.`);\n\t\t\treturn;\n\t\tcase \"custom\": if (!ctx.zodSchema._zod.parent) {\n\t\t\tpreviousContext.context = ctx;\n\t\t\treturn;\n\t\t}\n\t}\n\tthrow new Error(`Zod schema of type \\`${def.type}\\` at ${ctx.path.join(\" > \")} cannot be represented in OpenAPI. Please assign it metadata with \\`.meta()\\``);\n};\n\n//#endregion\n//#region src/create/schema/rename.ts\nconst renameComponents = (components, outputIds, ctx, refPath) => {\n\tconst componentsToRename = /* @__PURE__ */ new Map();\n\tif (ctx.io === \"input\") return componentsToRename;\n\tconst componentDependencies = /* @__PURE__ */ new Map();\n\tconst stringifiedComponents = /* @__PURE__ */ new Map();\n\tfor (const [key, value] of Object.entries(components)) {\n\t\tconst stringified = JSON.stringify(value);\n\t\tconst regex = new RegExp(`\"${refPath}([^\"]+)\"`, \"g\");\n\t\tconst matches = stringified.matchAll(regex);\n\t\tconst dependencies = /* @__PURE__ */ new Set();\n\t\tfor (const match of matches) {\n\t\t\tconst dep = match[1];\n\t\t\tif (dep !== key) dependencies.add(dep);\n\t\t}\n\t\tstringifiedComponents.set(key, stringified);\n\t\tcomponentDependencies.set(key, { dependencies });\n\t}\n\tfor (const [key] of stringifiedComponents) {\n\t\tif (!ctx.registry.components.schemas.ids.get(key)) continue;\n\t\tif (isDependencyPure(componentDependencies, stringifiedComponents, ctx.registry, key)) continue;\n\t\tconst newName = outputIds.get(key) ?? `${key}${ctx.opts.outputIdSuffix ?? \"Output\"}`;\n\t\tcomponentsToRename.set(key, newName);\n\t\tcomponents[newName] = components[key];\n\t\tdelete components[key];\n\t}\n\treturn componentsToRename;\n};\nconst isDependencyPure = (componentDependencies, stringifiedComponents, registry$1, key, visited = /* @__PURE__ */ new Set()) => {\n\tif (visited.has(key)) return true;\n\tconst dependencies = componentDependencies.get(key);\n\tif (dependencies.pure !== void 0) return dependencies.pure;\n\tconst stringified = stringifiedComponents.get(key);\n\tconst component = registry$1.components.schemas.ids.get(key);\n\tif (component && stringified !== JSON.stringify(component)) {\n\t\tdependencies.pure = false;\n\t\treturn false;\n\t}\n\tvisited.add(key);\n\tconst result = [...dependencies.dependencies].every((dep) => isDependencyPure(componentDependencies, stringifiedComponents, registry$1, dep, new Set(visited)));\n\tdependencies.pure = result;\n\treturn result;\n};\n\n//#endregion\n//#region src/create/schema/schema.ts\nconst createSchema = (schema, ctx = {}) => {\n\tctx.registry ??= createRegistry({ schemas: ctx.schemaComponents });\n\tctx.opts ??= {};\n\tctx.io ??= \"output\";\n\tconst registrySchemas = Object.fromEntries(ctx.registry.components.schemas[ctx.io]);\n\tconst schemas = { zodOpenApiCreateSchema: { zodType: schema } };\n\tObject.assign(schemas, registrySchemas);\n\tconst jsonSchemas = createSchemas(schemas, {\n\t\tregistry: ctx.registry,\n\t\tio: ctx.io,\n\t\topts: {\n\t\t\t...ctx.opts,\n\t\t\tschemaRefPath: ctx.schemaRefPath\n\t\t},\n\t\topenapiVersion: ctx.openapiVersion\n\t});\n\treturn {\n\t\tschema: jsonSchemas.schemas.zodOpenApiCreateSchema,\n\t\tcomponents: jsonSchemas.components\n\t};\n};\nconst zodOpenApiMetadataFields = [\n\t\"param\",\n\t\"header\",\n\t\"unusedIO\",\n\t\"override\",\n\t\"outputId\"\n];\nconst deleteZodOpenApiMeta = (jsonSchema) => {\n\tzodOpenApiMetadataFields.forEach((field) => {\n\t\tdelete jsonSchema[field];\n\t});\n};\nconst deleteInvalidJsonSchemaFields = (jsonSchema) => {\n\tdelete jsonSchema.$schema;\n\tdelete jsonSchema.id;\n\tdelete jsonSchema.$id;\n};\nconst createSchemas = (schemas, ctx) => {\n\tconst refPath = ctx.opts.schemaRefPath ?? \"#/components/schemas/\";\n\tconst entries = {};\n\tfor (const [name, { zodType }] of Object.entries(schemas)) entries[name] = zodType;\n\tconst zodRegistry = registry();\n\tzodRegistry.add(object(entries), { id: \"zodOpenApiCreateSchema\" });\n\tfor (const [id, { zodType }] of ctx.registry.components.schemas.manual) zodRegistry.add(zodType, { id });\n\tconst outputIds = /* @__PURE__ */ new Map();\n\tconst defsName = satisfiesVersion(ctx.openapiVersion ?? \"3.1.0\", \"3.1.0\") ? \"$defs\" : \"definitions\";\n\tconst previousContext = {};\n\tconst jsonSchema = toJSONSchema$1(zodRegistry, {\n\t\toverride(context) {\n\t\t\tconst meta = globalRegistry$1.get(context.zodSchema);\n\t\t\tif (meta?.outputId && meta?.id) outputIds.set(meta.id, meta.outputId);\n\t\t\tif (context.jsonSchema.$ref) return;\n\t\t\tconst enrichedContext = {\n\t\t\t\t...context,\n\t\t\t\tio: ctx.io\n\t\t\t};\n\t\t\toverride(enrichedContext);\n\t\t\tif (typeof ctx.opts.override === \"function\") ctx.opts.override(enrichedContext);\n\t\t\tif (typeof meta?.override === \"function\") {\n\t\t\t\tmeta.override(enrichedContext);\n\t\t\t\tdelete context.jsonSchema.override;\n\t\t\t}\n\t\t\tif (typeof meta?.override === \"object\" && meta.override !== null) {\n\t\t\t\tObject.assign(context.jsonSchema, meta.override);\n\t\t\t\tdelete context.jsonSchema.override;\n\t\t\t}\n\t\t\tdeleteInvalidJsonSchemaFields(context.jsonSchema);\n\t\t\tdeleteZodOpenApiMeta(context.jsonSchema);\n\t\t\tvalidate(enrichedContext, ctx.opts, previousContext);\n\t\t},\n\t\tio: ctx.io,\n\t\tunrepresentable: \"any\",\n\t\treused: ctx.opts.reused,\n\t\tcycles: ctx.opts.cycles,\n\t\ttarget: satisfiesVersion(ctx.openapiVersion ?? \"3.1.0\", \"3.1.0\") ? void 0 : \"openapi-3.0\",\n\t\turi: (id) => id === \"__shared\" ? `#ZOD_OPENAPI/${id}` : `#ZOD_OPENAPI/__shared#/${defsName}/${id}`\n\t});\n\tconst components = jsonSchema.schemas.__shared?.[defsName] ?? {};\n\tjsonSchema.schemas.__shared ??= { [defsName]: components };\n\tconst dynamicComponents = /* @__PURE__ */ new Map();\n\tfor (const [key, value] of Object.entries(components)) {\n\t\tdeleteInvalidJsonSchemaFields(value);\n\t\tif (/^schema\\d+$/.test(key)) {\n\t\t\tconst newName = `__schema${ctx.registry.components.schemas.dynamicSchemaCount++}`;\n\t\t\tdynamicComponents.set(key, `\"${refPath}${newName}\"`);\n\t\t\tif (newName !== key) {\n\t\t\t\tcomponents[newName] = value;\n\t\t\t\tdelete components[key];\n\t\t\t}\n\t\t}\n\t}\n\tfor (const [key] of ctx.registry.components.schemas.manual) {\n\t\tconst manualComponent = jsonSchema.schemas[key];\n\t\tif (!manualComponent) continue;\n\t\tdeleteInvalidJsonSchemaFields(manualComponent);\n\t}\n\tconst manualUsed = {};\n\tconst parsedJsonSchema = JSON.parse(JSON.stringify(jsonSchema).replace(/\"#ZOD_OPENAPI\\/__shared#\\/(?:\\$defs|definitions)\\/([^\"]+)\"/g, (_, match) => {\n\t\tconst dynamic = dynamicComponents.get(match);\n\t\tif (dynamic) return dynamic;\n\t\tif (ctx.registry.components.schemas.manual.get(match)) manualUsed[match] = true;\n\t\treturn `\"${refPath}${match}\"`;\n\t}));\n\tconst parsedComponents = parsedJsonSchema.schemas.__shared?.[defsName] ?? {};\n\tparsedJsonSchema.schemas.__shared ??= { [defsName]: parsedComponents };\n\tfor (const [key] of ctx.registry.components.schemas.manual) {\n\t\tconst manualComponent = parsedJsonSchema.schemas[key];\n\t\tif (!manualComponent) continue;\n\t\tif (manualUsed[key]) {\n\t\t\tif (parsedComponents[key]) throw new Error(`Component \"${key}\" is already registered as a component in the registry`);\n\t\t\tparsedComponents[key] = manualComponent;\n\t\t}\n\t}\n\tconst componentsToRename = renameComponents(parsedComponents, outputIds, ctx, refPath);\n\tif (!componentsToRename.size) {\n\t\tconst parsedSchemas = parsedJsonSchema.schemas.zodOpenApiCreateSchema?.properties;\n\t\tdelete parsedJsonSchema.schemas.zodOpenApiCreateSchema;\n\t\tdelete parsedJsonSchema.schemas.__shared;\n\t\treturn {\n\t\t\tschemas: parsedSchemas,\n\t\t\tcomponents: parsedComponents,\n\t\t\tmanual: parsedJsonSchema.schemas\n\t\t};\n\t}\n\tconst renamedJsonSchema = JSON.parse(JSON.stringify(parsedJsonSchema).replace(new RegExp(`\"${refPath}([^\"]+)\"`, \"g\"), (_, match) => {\n\t\tconst replacement = componentsToRename.get(match);\n\t\tif (replacement) return `\"${refPath}${replacement}\"`;\n\t\treturn `\"${refPath}${match}\"`;\n\t}));\n\tconst renamedSchemas = renamedJsonSchema.schemas.zodOpenApiCreateSchema?.properties;\n\tconst renamedComponents = renamedJsonSchema.schemas.__shared?.[defsName] ?? {};\n\tdelete renamedJsonSchema.schemas.zodOpenApiCreateSchema;\n\tdelete renamedJsonSchema.schemas.__shared;\n\treturn {\n\t\tschemas: renamedSchemas,\n\t\tcomponents: renamedComponents,\n\t\tmanual: renamedJsonSchema.schemas\n\t};\n};\n\n//#endregion\n//#region src/create/components.ts\nconst createRegistry = (components) => {\n\tconst registry$1 = {\n\t\tcomponents: {\n\t\t\tschemas: {\n\t\t\t\tdynamicSchemaCount: 0,\n\t\t\t\tinput: /* @__PURE__ */ new Map(),\n\t\t\t\toutput: /* @__PURE__ */ new Map(),\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tmanual: /* @__PURE__ */ new Map()\n\t\t\t},\n\t\t\theaders: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\trequestBodies: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\tparameters: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\tcallbacks: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\tpathItems: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\tsecuritySchemes: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\tlinks: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\texamples: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t}\n\t\t},\n\t\taddSchema: (schema, path, opts) => {\n\t\t\tconst schemaObject = {};\n\t\t\tregistry$1.components.schemas[opts.io].set(path.join(\" > \"), {\n\t\t\t\tschemaObject,\n\t\t\t\tzodType: schema,\n\t\t\t\tsource: {\n\t\t\t\t\tpath,\n\t\t\t\t\t...opts?.source\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn schemaObject;\n\t\t},\n\t\taddParameter: (parameter, path, opts) => {\n\t\t\tconst seenParameter = registry$1.components.parameters.seen.get(parameter);\n\t\t\tif (seenParameter) return seenParameter;\n\t\t\tconst meta = globalRegistry.get(parameter);\n\t\t\tconst name = opts?.location?.name ?? meta?.param?.name;\n\t\t\tconst inLocation = opts?.location?.in ?? meta?.param?.in;\n\t\t\tif (opts?.location?.name && meta?.param?.name || opts?.location?.in && meta?.param?.in) throw new Error(`Parameter at ${path.join(\" > \")} has both \\`.meta({ param: { name, in } })\\` and \\`.meta({ param: { location: { in, name } } })\\` information`);\n\t\t\tif (!name || !inLocation) throw new Error(`Parameter at ${path.join(\" > \")} is missing \\`.meta({ param: { name, in } })\\` information`);\n\t\t\tconst schemaObject = registry$1.addSchema(parameter, [\n\t\t\t\t...path,\n\t\t\t\tinLocation,\n\t\t\t\tname,\n\t\t\t\t\"schema\"\n\t\t\t], {\n\t\t\t\tio: \"input\",\n\t\t\t\tsource: {\n\t\t\t\t\ttype: \"parameter\",\n\t\t\t\t\tlocation: {\n\t\t\t\t\t\tin: inLocation,\n\t\t\t\t\t\tname\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst { id: metaId, examples, ...rest } = meta?.param ?? {};\n\t\t\tconst parameterObject = {\n\t\t\t\tin: inLocation,\n\t\t\t\tname,\n\t\t\t\tschema: schemaObject,\n\t\t\t\t...rest\n\t\t\t};\n\t\t\tconst examplesObject = createExamples(examples, registry$1, [\n\t\t\t\t...path,\n\t\t\t\tinLocation,\n\t\t\t\tname,\n\t\t\t\t\"examples\"\n\t\t\t]);\n\t\t\tif (examplesObject) parameterObject.examples = examplesObject;\n\t\t\tif (isRequired(parameter, \"input\")) parameterObject.required = true;\n\t\t\tif (!parameterObject.description && meta?.description) parameterObject.description = meta.description;\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.parameters.ids.has(id)) throw new Error(`Schema \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/parameters/${id}` };\n\t\t\t\tregistry$1.components.parameters.seen.set(parameter, ref);\n\t\t\t\tregistry$1.components.parameters.ids.set(id, parameterObject);\n\t\t\t\tif (opts?.manualId) return parameterObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tif (opts?.location?.name || opts?.location?.in) return parameterObject;\n\t\t\tregistry$1.components.parameters.seen.set(parameter, parameterObject);\n\t\t\treturn parameterObject;\n\t\t},\n\t\taddHeader: (header, path, opts) => {\n\t\t\tconst seenHeader = registry$1.components.headers.seen.get(header);\n\t\t\tif (seenHeader) return seenHeader;\n\t\t\tconst meta = globalRegistry.get(header);\n\t\t\tconst { id: metaId, ...rest } = meta?.header ?? {};\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tconst headerObject = rest;\n\t\t\tif (isRequired(header, \"output\")) headerObject.required = true;\n\t\t\tif (!headerObject.description && meta?.description) headerObject.description = meta.description;\n\t\t\theaderObject.schema = registry$1.addSchema(header, [...path, \"schema\"], {\n\t\t\t\tio: \"output\",\n\t\t\t\tsource: { type: \"header\" }\n\t\t\t});\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.schemas.ids.has(id)) throw new Error(`Schema \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/headers/${id}` };\n\t\t\t\tregistry$1.components.headers.ids.set(id, headerObject);\n\t\t\t\tregistry$1.components.headers.seen.set(header, ref);\n\t\t\t\tif (opts?.manualId) return headerObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.headers.seen.set(header, headerObject);\n\t\t\treturn headerObject;\n\t\t},\n\t\taddRequestBody: (requestBody, path, opts) => {\n\t\t\tconst seenRequestBody = registry$1.components.requestBodies.seen.get(requestBody);\n\t\t\tif (seenRequestBody) return seenRequestBody;\n\t\t\tconst { content, id: metaId, ...rest } = requestBody;\n\t\t\tconst requestBodyObject = {\n\t\t\t\t...rest,\n\t\t\t\tcontent: createContent(content, {\n\t\t\t\t\tregistry: registry$1,\n\t\t\t\t\tio: \"input\"\n\t\t\t\t}, [...path, \"content\"])\n\t\t\t};\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.requestBodies.ids.has(id)) throw new Error(`RequestBody \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/requestBodies/${id}` };\n\t\t\t\tregistry$1.components.requestBodies.ids.set(id, requestBodyObject);\n\t\t\t\tregistry$1.components.requestBodies.seen.set(requestBody, ref);\n\t\t\t\tif (opts?.manualId) return requestBodyObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.requestBodies.seen.set(requestBody, requestBodyObject);\n\t\t\treturn requestBodyObject;\n\t\t},\n\t\taddPathItem: (pathItem, path, opts) => {\n\t\t\tconst seenPathItem = registry$1.components.pathItems.seen.get(pathItem);\n\t\t\tif (seenPathItem) return seenPathItem;\n\t\t\tconst pathItemObject = {};\n\t\t\tconst { id: metaId, ...rest } = pathItem;\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tfor (const [key, value] of Object.entries(rest)) {\n\t\t\t\tif (isISpecificationExtension(key)) {\n\t\t\t\t\tpathItemObject[key] = value;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (key === \"get\" || key === \"put\" || key === \"post\" || key === \"delete\" || key === \"options\" || key === \"head\" || key === \"patch\" || key === \"trace\") {\n\t\t\t\t\tpathItemObject[key] = createOperation(value, registry$1, [...path, key]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (key === \"parameters\") {\n\t\t\t\t\tpathItemObject[key] = createManualParameters(value, registry$1, [...path, key]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tpathItemObject[key] = value;\n\t\t\t}\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.pathItems.ids.has(id)) throw new Error(`PathItem \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/pathItems/${id}` };\n\t\t\t\tregistry$1.components.pathItems.ids.set(id, pathItemObject);\n\t\t\t\tregistry$1.components.pathItems.seen.set(pathItem, ref);\n\t\t\t\tif (opts?.manualId) return pathItemObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.pathItems.seen.set(pathItem, pathItemObject);\n\t\t\treturn pathItemObject;\n\t\t},\n\t\taddResponse: (response, path, opts) => {\n\t\t\tconst seenResponse = registry$1.components.responses.seen.get(response);\n\t\t\tif (seenResponse) return seenResponse;\n\t\t\tconst { content, headers, links, id: metaId, ...rest } = response;\n\t\t\tconst responseObject = rest;\n\t\t\tconst maybeHeaders = createHeaders(headers, registry$1, [...path, \"headers\"]);\n\t\t\tif (maybeHeaders) responseObject.headers = maybeHeaders;\n\t\t\tif (content) responseObject.content = createContent(content, {\n\t\t\t\tregistry: registry$1,\n\t\t\t\tio: \"output\"\n\t\t\t}, [...path, \"content\"]);\n\t\t\tif (links) responseObject.links = createLinks(links, registry$1, [...path, \"links\"]);\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.responses.ids.has(id)) throw new Error(`Response \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/responses/${id}` };\n\t\t\t\tregistry$1.components.responses.ids.set(id, responseObject);\n\t\t\t\tregistry$1.components.responses.seen.set(response, ref);\n\t\t\t\tif (opts?.manualId) return responseObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.responses.seen.set(response, responseObject);\n\t\t\treturn responseObject;\n\t\t},\n\t\taddCallback: (callback, path, opts) => {\n\t\t\tconst seenCallback = registry$1.components.callbacks.seen.get(callback);\n\t\t\tif (seenCallback) return seenCallback;\n\t\t\tconst { id: metaId, ...rest } = callback;\n\t\t\tconst callbackObject = {};\n\t\t\tfor (const [name, pathItem] of Object.entries(rest)) {\n\t\t\t\tif (isISpecificationExtension(name)) {\n\t\t\t\t\tcallbackObject[name] = pathItem;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcallbackObject[name] = registry$1.addPathItem(pathItem, [...path, name]);\n\t\t\t}\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.callbacks.ids.has(id)) throw new Error(`Callback \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/callbacks/${id}` };\n\t\t\t\tregistry$1.components.callbacks.ids.set(id, callbackObject);\n\t\t\t\tregistry$1.components.callbacks.seen.set(callback, ref);\n\t\t\t\tif (opts?.manualId) return callbackObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.callbacks.seen.set(callback, callbackObject);\n\t\t\treturn callbackObject;\n\t\t},\n\t\taddSecurityScheme: (securityScheme, path, opts) => {\n\t\t\tconst seenSecurityScheme = registry$1.components.securitySchemes.seen.get(securityScheme);\n\t\t\tif (seenSecurityScheme) return seenSecurityScheme;\n\t\t\tconst { id: metaId, ...rest } = securityScheme;\n\t\t\tconst securitySchemeObject = rest;\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.securitySchemes.ids.has(id)) throw new Error(`SecurityScheme \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/securitySchemes/${id}` };\n\t\t\t\tregistry$1.components.securitySchemes.ids.set(id, securitySchemeObject);\n\t\t\t\tregistry$1.components.securitySchemes.seen.set(securityScheme, ref);\n\t\t\t\tif (opts?.manualId) return securitySchemeObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.securitySchemes.seen.set(securityScheme, securitySchemeObject);\n\t\t\treturn securitySchemeObject;\n\t\t},\n\t\taddLink: (link, path, opts) => {\n\t\t\tconst seenLink = registry$1.components.links.seen.get(link);\n\t\t\tif (seenLink) return seenLink;\n\t\t\tconst { id: metaId, ...rest } = link;\n\t\t\tconst linkObject = rest;\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.links.ids.has(id)) throw new Error(`Link \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/links/${id}` };\n\t\t\t\tregistry$1.components.links.ids.set(id, linkObject);\n\t\t\t\tregistry$1.components.links.seen.set(link, ref);\n\t\t\t\tif (opts?.manualId) return linkObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.links.seen.set(link, linkObject);\n\t\t\treturn linkObject;\n\t\t},\n\t\taddExample: (example, path, opts) => {\n\t\t\tconst seenExample = registry$1.components.examples.seen.get(example);\n\t\t\tif (seenExample) return seenExample;\n\t\t\tconst { id: metaId, ...rest } = example;\n\t\t\tconst exampleObject = rest;\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.examples.ids.has(id)) throw new Error(`Example \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/examples/${id}` };\n\t\t\t\tregistry$1.components.examples.ids.set(id, exampleObject);\n\t\t\t\tregistry$1.components.examples.seen.set(example, ref);\n\t\t\t\tif (opts?.manualId) return exampleObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.examples.seen.set(example, exampleObject);\n\t\t\treturn exampleObject;\n\t\t}\n\t};\n\tregisterSchemas(components?.schemas, registry$1);\n\tregisterParameters(components?.parameters, registry$1);\n\tregisterHeaders(components?.headers, registry$1);\n\tregisterResponses(components?.responses, registry$1);\n\tregisterPathItems(components?.pathItems, registry$1);\n\tregisterRequestBodies(components?.requestBodies, registry$1);\n\tregisterCallbacks(components?.callbacks, registry$1);\n\tregisterSecuritySchemes(components?.securitySchemes, registry$1);\n\tregisterLinks(components?.links, registry$1);\n\tregisterExamples(components?.examples, registry$1);\n\treturn registry$1;\n};\nconst registerSchemas = (schemas, registry$1) => {\n\tif (!schemas) return;\n\tfor (const [key, schema] of Object.entries(schemas)) {\n\t\tif (isAnyZodType(schema)) {\n\t\t\tconst id = globalRegistry.get(schema)?.id ?? key;\n\t\t\tregistry$1.components.schemas.manual.set(id, {\n\t\t\t\tinput: { schemaObject: {} },\n\t\t\t\toutput: { schemaObject: {} },\n\t\t\t\tzodType: schema\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tregistry$1.components.schemas.ids.set(key, schema);\n\t}\n};\nconst registerParameters = (parameters, registry$1) => {\n\tif (!parameters) return;\n\tfor (const [key, schema] of Object.entries(parameters)) {\n\t\tif (isAnyZodType(schema)) {\n\t\t\tconst path = [\n\t\t\t\t\"components\",\n\t\t\t\t\"parameters\",\n\t\t\t\tkey\n\t\t\t];\n\t\t\tregistry$1.addParameter(schema, path, { manualId: key });\n\t\t\tcontinue;\n\t\t}\n\t\tregistry$1.components.parameters.ids.set(key, schema);\n\t}\n};\nconst registerHeaders = (headers, registry$1) => {\n\tif (!headers) return;\n\tfor (const [key, schema] of Object.entries(headers)) {\n\t\tif (isAnyZodType(schema)) {\n\t\t\tconst path = [\n\t\t\t\t\"components\",\n\t\t\t\t\"headers\",\n\t\t\t\tkey\n\t\t\t];\n\t\t\tregistry$1.addHeader(schema, path, { manualId: key });\n\t\t\tcontinue;\n\t\t}\n\t\tregistry$1.components.headers.ids.set(key, schema);\n\t}\n};\nconst registerResponses = (responses, registry$1) => {\n\tif (!responses) return;\n\tfor (const [key, schema] of Object.entries(responses)) {\n\t\tconst responseObject = registry$1.addResponse(schema, [\n\t\t\t\"components\",\n\t\t\t\"responses\",\n\t\t\tkey\n\t\t], { manualId: key });\n\t\tregistry$1.components.responses.ids.set(key, responseObject);\n\t\tregistry$1.components.responses.seen.set(schema, responseObject);\n\t}\n};\nconst registerRequestBodies = (requestBodies, registry$1) => {\n\tif (!requestBodies) return;\n\tfor (const [key, schema] of Object.entries(requestBodies)) {\n\t\tif (isAnyZodType(schema)) {\n\t\t\tregistry$1.addRequestBody(schema, [\n\t\t\t\t\"components\",\n\t\t\t\t\"requestBodies\",\n\t\t\t\tkey\n\t\t\t], { manualId: key });\n\t\t\tcontinue;\n\t\t}\n\t\tregistry$1.components.requestBodies.ids.set(key, schema);\n\t}\n};\nconst registerCallbacks = (callbacks, registry$1) => {\n\tif (!callbacks) return;\n\tfor (const [key, schema] of Object.entries(callbacks)) registry$1.addCallback(schema, [\n\t\t\"components\",\n\t\t\"callbacks\",\n\t\tkey\n\t], { manualId: key });\n};\nconst registerPathItems = (pathItems, registry$1) => {\n\tif (!pathItems) return;\n\tfor (const [key, schema] of Object.entries(pathItems)) registry$1.addPathItem(schema, [\n\t\t\"components\",\n\t\t\"pathItems\",\n\t\tkey\n\t], { manualId: key });\n};\nconst registerSecuritySchemes = (securitySchemes, registry$1) => {\n\tif (!securitySchemes) return;\n\tfor (const [key, schema] of Object.entries(securitySchemes)) registry$1.addSecurityScheme(schema, [\n\t\t\"components\",\n\t\t\"securitySchemes\",\n\t\tkey\n\t], { manualId: key });\n};\nconst registerLinks = (links, registry$1) => {\n\tif (!links) return;\n\tfor (const [key, schema] of Object.entries(links)) registry$1.addLink(schema, [\n\t\t\"components\",\n\t\t\"links\",\n\t\tkey\n\t], { manualId: key });\n};\nconst registerExamples = (examples, registry$1) => {\n\tif (!examples) return;\n\tfor (const [key, schema] of Object.entries(examples)) registry$1.components.examples.ids.set(key, schema);\n};\nconst createIOSchemas = (ctx) => {\n\tconst { schemas, components, manual } = createSchemas(Object.fromEntries(ctx.registry.components.schemas[ctx.io]), ctx);\n\tfor (const [key, schema] of Object.entries(components)) ctx.registry.components.schemas.ids.set(key, schema);\n\tfor (const [key, schema] of Object.entries(schemas)) {\n\t\tconst ioSchema = ctx.registry.components.schemas[ctx.io].get(key);\n\t\tif (ioSchema) Object.assign(ioSchema.schemaObject, schema);\n\t}\n\tfor (const [key, value] of Object.entries(manual)) {\n\t\tconst manualSchema = ctx.registry.components.schemas.manual.get(key);\n\t\tif (!manualSchema) continue;\n\t\tif (components[key]) manualSchema[ctx.io].used = true;\n\t\tObject.assign(manualSchema[ctx.io].schemaObject, value);\n\t}\n};\nconst createManualSchemas = (registry$1) => {\n\tfor (const [key, value] of registry$1.components.schemas.manual) if (!value.input.used) {\n\t\tconst schema = value[globalRegistry.get(value.zodType)?.unusedIO ?? \"output\"].schemaObject;\n\t\tregistry$1.components.schemas.ids.set(key, schema);\n\t}\n};\nconst createComponents = (registry$1, opts, openapiVersion) => {\n\tcreateIOSchemas({\n\t\tregistry: registry$1,\n\t\tio: \"input\",\n\t\topts,\n\t\topenapiVersion\n\t});\n\tcreateIOSchemas({\n\t\tregistry: registry$1,\n\t\tio: \"output\",\n\t\topts,\n\t\topenapiVersion\n\t});\n\tcreateManualSchemas(registry$1);\n\tconst components = {};\n\tif (registry$1.components.schemas.ids.size > 0) components.schemas = Object.fromEntries(registry$1.components.schemas.ids);\n\tif (registry$1.components.headers.ids.size > 0) components.headers = Object.fromEntries(registry$1.components.headers.ids);\n\tif (registry$1.components.requestBodies.ids.size > 0) components.requestBodies = Object.fromEntries(registry$1.components.requestBodies.ids);\n\tif (registry$1.components.responses.ids.size > 0) components.responses = Object.fromEntries(registry$1.components.responses.ids);\n\tif (registry$1.components.parameters.ids.size > 0) components.parameters = Object.fromEntries(registry$1.components.parameters.ids);\n\tif (registry$1.components.callbacks.ids.size > 0) components.callbacks = Object.fromEntries(registry$1.components.callbacks.ids);\n\tif (registry$1.components.pathItems.ids.size > 0) components.pathItems = Object.fromEntries(registry$1.components.pathItems.ids);\n\tif (registry$1.components.securitySchemes.ids.size > 0) components.securitySchemes = Object.fromEntries(registry$1.components.securitySchemes.ids);\n\tif (registry$1.components.links.ids.size > 0) components.links = Object.fromEntries(registry$1.components.links.ids);\n\tif (registry$1.components.examples.ids.size > 0) components.examples = Object.fromEntries(registry$1.components.examples.ids);\n\treturn components;\n};\n\n//#endregion\nexport { unwrapZodObject as a, createPaths as i, createRegistry as n, isAnyZodType as o, createSchema as r, createComponents as t };","import { i as createPaths, n as createRegistry, r as createSchema, t as createComponents } from \"./components-DiNDbisK.mjs\";\n\n//#region src/create/document.ts\nconst createDocument = (zodOpenApiObject, opts = {}) => {\n\tconst { paths, webhooks, components, ...rest } = zodOpenApiObject;\n\tconst document = rest;\n\tconst registry = createRegistry(components);\n\tconst createdPaths = createPaths(paths, registry, [\"paths\"]);\n\tif (createdPaths) document.paths = createdPaths;\n\tconst createdWebhooks = createPaths(webhooks, registry, [\"webhooks\"]);\n\tif (createdWebhooks) document.webhooks = createdWebhooks;\n\tconst createdComponents = createComponents(registry, opts, zodOpenApiObject.openapi);\n\tif (Object.keys(createdComponents).length > 0) document.components = createdComponents;\n\treturn document;\n};\n\n//#endregion\n//#region packages/openapi3-ts/src/dist/oas31.ts\nvar oas31_exports = {};\n\n//#endregion\nexport { createDocument, createSchema, oas31_exports as oas31 };","/**\n * OpenAPI 3.1 document generator.\n *\n * Builds the full OpenAPI spec from Zod schemas. The Zod schemas are the\n * single source of truth -- we never hand-write OpenAPI YAML.\n *\n * Covers all public API domains.\n */\n\nimport { z } from \"zod\";\nimport { createDocument, type ZodOpenApiPathsObject, type oas31 } from \"zod-openapi\";\n\nimport {\n\tcommentBulkBody,\n\tcommentBulkResponseSchema,\n\tcommentCountsResponseSchema,\n\tcommentListQuery,\n\tcommentSchema,\n\tcommentStatusBody,\n\tcreateCommentBody,\n\tadminCommentListResponseSchema,\n\tpublicCommentListResponseSchema,\n} from \"../schemas/comments.js\";\nimport {\n\tapiErrorSchema,\n\tdeleteResponseSchema,\n\tmediaDeleteResponseSchema,\n\tsuccessEnvelope,\n} from \"../schemas/common.js\";\nimport {\n\tcontentCompareResponseSchema,\n\tcontentAuthorsResponseSchema,\n\tcontentCreateBody,\n\tcontentItemSchema,\n\tcontentListQuery,\n\tcontentListResponseSchema,\n\tcontentPublishBody,\n\tcontentRestoreResponseSchema,\n\tcontentRevisionConditionBody,\n\tcontentResponseSchema,\n\tcontentScheduleBody,\n\tcontentTermsBody,\n\tcontentTermsResponseSchema,\n\tcontentTrashQuery,\n\tcontentTranslationsResponseSchema,\n\tcontentUpdateBody,\n\ttrashedContentListResponseSchema,\n} from \"../schemas/content.js\";\nimport {\n\tentryLockAcquireBody,\n\tentryMutationConflictSchema,\n\tentryLockReleaseResponseSchema,\n\tentryLockStatusSchema,\n} from \"../schemas/entry-lock.js\";\nimport {\n\tmediaUsageDetailsQuery,\n\tmediaUsageDetailsResponseSchema,\n\tmediaUsageProgressSchema,\n\tmediaUsageProgressAdvanceResponseSchema,\n\tmediaUsageCollectionDeletionListQuery,\n\tmediaUsageCollectionDeletionListResponseSchema,\n\tmediaUsageCollectionDeletionRetryBody,\n\tmediaUsageCollectionDeletionRetryResponseSchema,\n\tmediaUsageActivationStatusSchema,\n\tmediaUsageActivationAdvanceBody,\n\tmediaUsageActivationAdvanceResponseSchema,\n\tmediaUsageActivationConflictSchema,\n\tmediaUsageRepairBody,\n\tmediaUsageRepairResponseSchema,\n\tmediaUsageWorkListQuery,\n\tmediaUsageWorkListResponseSchema,\n\tmediaUsageWorkRetryBody,\n\tmediaUsageWorkRetryConflictSchema,\n\tmediaUsageWorkRetryResponseSchema,\n} from \"../schemas/media-usage.js\";\nimport {\n\tDEFAULT_MAX_UPLOAD_SIZE,\n\tmediaConfirmBody,\n\tmediaConfirmResponseSchema,\n\tmediaDirectUploadBody,\n\tmediaExistingResponseSchema,\n\tmediaFolderBody,\n\tmediaFolderIdSchema,\n\tmediaFolderListQuery,\n\tmediaFolderListResponseSchema,\n\tmediaFolderResponseSchema,\n\tmediaGetQuery,\n\tmediaListQuery,\n\tmediaListReadResponseSchema,\n\tmediaListResponseSchema,\n\tmediaReadResponseSchema,\n\tmediaReplaceBody,\n\tmediaReplaceResponseSchema,\n\tmediaResponseSchema,\n\tmediaStreamUploadResponseSchema,\n\tmediaUpdateBody,\n\tmediaUploadUrlBody,\n\tmediaUploadUrlResponseSchema,\n\tmediaUploadResponseSchema,\n} from \"../schemas/media.js\";\nimport {\n\tcreateMenuBody,\n\tcreateMenuItemBody,\n\tmenuListItemSchema,\n\tmenuItemSchema,\n\tmenuWithItemsSchema,\n\treorderMenuItemsBody,\n\tupdateMenuBody,\n\tupdateMenuItemBody,\n} from \"../schemas/menus.js\";\nimport {\n\tcreateRedirectBody,\n\tnotFoundListQuery,\n\tnotFoundPruneBody,\n\tnotFoundListResponseSchema,\n\tnotFoundSummaryResponseSchema,\n\tredirectListResponseSchema,\n\tredirectSchema,\n\tredirectsListQuery,\n\tupdateRedirectBody,\n} from \"../schemas/redirects.js\";\nimport {\n\tcollectionGetQuery,\n\tcollectionListResponseSchema,\n\tcollectionResponseSchema,\n\tcollectionWithFieldsResponseSchema,\n\tcreateCollectionBody,\n\tcreateFieldBody,\n\tfieldListResponseSchema,\n\tcollectionReorderBody,\n\tfieldReorderBody,\n\tfieldResponseSchema,\n\torphanedTableListResponseSchema,\n\torphanRegisterBody,\n\tupdateCollectionBody,\n\tupdateFieldBody,\n\tactivateBlockTypeVersionBody,\n\tblockTypeListResponseSchema,\n\tblockTypeResponseSchema,\n\tcreateBlockTypeBody,\n\tupdateBlockTypeBody,\n} from \"../schemas/schema.js\";\nimport {\n\tsearchEnableBody,\n\tsearchQuery,\n\tsearchRebuildBody,\n\tsearchResponseSchema,\n\tsearchSuggestQuery,\n} from \"../schemas/search.js\";\nimport {\n\tcreateSectionBody,\n\tsectionListResponseSchema,\n\tsectionSchema,\n\tsectionsListQuery,\n\tupdateSectionBody,\n} from \"../schemas/sections.js\";\nimport { settingsUpdateBody, siteSettingsSchema } from \"../schemas/settings.js\";\nimport {\n\tcreateTermBody,\n\treorderTermsBody,\n\ttaxonomyDefTranslationsSchema,\n\ttaxonomyListResponseSchema,\n\ttaxonomyResponseSchema,\n\ttermGetResponseSchema,\n\ttermListQuery,\n\ttermListResponseSchema,\n\ttermReorderResponseSchema,\n\ttermResponseSchema,\n\tupdateTaxonomyDefBody,\n\tupdateTermBody,\n} from \"../schemas/taxonomies.js\";\nimport {\n\ttransferApprovalListQuery,\n\ttransferApprovalListResponseSchema,\n\ttransferApprovalResponseSchema,\n\ttransferCapabilitiesSchema,\n\ttransferFileUploadResponseSchema,\n\ttransferImportAnalyzeBody,\n\ttransferImportAnalyzeResponseSchema,\n\ttransferImportCreateResponseSchema,\n\ttransferImportPlanResponseSchema,\n\ttransferImportStatusResponseSchema,\n\ttransferMissingFilesResponseSchema,\n\ttransferOperationListResponseSchema,\n\ttransferOperationResponseSchema,\n\ttransferPaginationQuery,\n\ttransferAdvanceResponseSchema,\n\ttransferExportCreateBody,\n\ttransferExportCreateResponseSchema,\n\ttransferImportExecuteBody,\n\ttransferImportReceiptResponseSchema,\n} from \"../schemas/transfer.js\";\nimport {\n\tallowedDomainCreateBody,\n\tallowedDomainUpdateBody,\n\tuserDetailSchema,\n\tuserListResponseSchema,\n\tuserSchema,\n\tuserUpdateBody,\n\tusersListQuery,\n} from \"../schemas/users.js\";\nimport {\n\tcreateWidgetAreaBody,\n\tcreateWidgetBody,\n\treorderWidgetsBody,\n\tupdateWidgetBody,\n\twidgetAreaSchema,\n\twidgetAreaWithWidgetsAndCountSchema,\n\twidgetAreaWithWidgetsSchema,\n\twidgetSchema,\n} from \"../schemas/widgets.js\";\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nconst JSON_CONTENT = \"application/json\";\nconst MULTIPART_CONTENT = \"multipart/form-data\";\n\n/** Standard error responses shared across all authenticated endpoints */\nfunction standardErrors(\n\t...codes: number[]\n): Record<\n\tstring,\n\t{ description: string; content: Record<string, { schema: typeof apiErrorSchema }> }\n> {\n\tconst responses: Record<\n\t\tstring,\n\t\t{ description: string; content: Record<string, { schema: typeof apiErrorSchema }> }\n\t> = {};\n\tconst errorMap: Record<number, string> = {\n\t\t400: \"Bad Request\",\n\t\t401: \"Not authenticated\",\n\t\t403: \"Forbidden\",\n\t\t404: \"Not Found\",\n\t\t409: \"Conflict\",\n\t\t410: \"Gone\",\n\t\t411: \"Length Required\",\n\t\t413: \"Payload Too Large\",\n\t\t422: \"Unprocessable Entity\",\n\t\t500: \"Internal Server Error\",\n\t\t503: \"Service Unavailable\",\n\t};\n\tfor (const code of codes) {\n\t\tresponses[String(code)] = {\n\t\t\tdescription: errorMap[code] ?? `Error ${code}`,\n\t\t\tcontent: { [JSON_CONTENT]: { schema: apiErrorSchema } },\n\t\t};\n\t}\n\treturn responses;\n}\n\n/** Common auth error responses (401 + 403) */\nconst authErrors = standardErrors(401, 403);\n\nconst entryPathParams = z.object({\n\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\tid: z.string().meta({ description: \"Content ID or slug\" }),\n});\n\n/** 409 for optimistic-concurrency or edit-lock conflicts. */\nconst entryMutationConflict = {\n\t\"409\": {\n\t\tdescription: \"The content changed or another editor holds its edit lock\",\n\t\tcontent: {\n\t\t\t[JSON_CONTENT]: { schema: entryMutationConflictSchema },\n\t\t},\n\t},\n};\n\n// ---------------------------------------------------------------------------\n// Content routes\n// ---------------------------------------------------------------------------\n\nconst contentPaths = {\n\t\"/_emdash/api/content/{collection}\": {\n\t\tget: {\n\t\t\toperationId: \"listContent\",\n\t\t\tsummary: \"List content items\",\n\t\t\tdescription: \"Returns a paginated list of content items in the specified collection.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\", examples: [\"posts\"] }),\n\t\t\t\t}),\n\t\t\t\tquery: contentListQuery,\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Content list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentListResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createContent\",\n\t\t\tsummary: \"Create a content item\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentCreateBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 422, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}\": {\n\t\tget: {\n\t\t\toperationId: \"getContent\",\n\t\t\tsummary: \"Get a content item\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t\tquery: z.object({\n\t\t\t\t\tlocale: z.string().optional().meta({ description: \"Locale filter\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateContent\",\n\t\t\tsummary: \"Update a content item\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t\tquery: z.object({\n\t\t\t\t\tlocale: z.string().optional().meta({ description: \"Locale filter\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentUpdateBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 422, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteContent\",\n\t\t\tsummary: \"Delete a content item (soft delete)\",\n\t\t\tdescription:\n\t\t\t\t\"Moves the content item to trash. Use the permanent delete endpoint to remove permanently.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: entryPathParams,\n\t\t\t\tquery: z.object({\n\t\t\t\t\toverrideLock: z.enum([\"true\", \"false\"]).optional().meta({\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\"Delete even though another editor holds this entry's edit lock. Without it the delete is refused with 409 ENTRY_LOCKED.\",\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(deleteResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t\t...entryMutationConflict,\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/publish\": {\n\t\tpost: {\n\t\t\toperationId: \"publishContent\",\n\t\t\tsummary: \"Publish a content item\",\n\t\t\tdescription:\n\t\t\t\t\"Promotes the current draft to live content and clears any pending schedule. An optional revision token rejects stale publication attempts.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentPublishBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Published content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t...entryMutationConflict,\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/unpublish\": {\n\t\tpost: {\n\t\t\toperationId: \"unpublishContent\",\n\t\t\tsummary: \"Unpublish a content item\",\n\t\t\tdescription: \"Reverts content to draft status.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentRevisionConditionBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Unpublished content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t...entryMutationConflict,\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/schedule\": {\n\t\tpost: {\n\t\t\toperationId: \"scheduleContent\",\n\t\t\tsummary: \"Schedule content for future publishing\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentScheduleBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Scheduled content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t...entryMutationConflict,\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"unscheduleContent\",\n\t\t\tsummary: \"Cancel scheduled publishing\",\n\t\t\tdescription:\n\t\t\t\t\"Clears the scheduled publication time. A scheduled draft returns to draft status; a published item stays published.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: entryPathParams,\n\t\t\t\tquery: z.object({\n\t\t\t\t\toverrideLock: z.enum([\"true\", \"false\"]).optional().meta({\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\"Unschedule even though another editor holds this entry's edit lock. Without it the request is refused with 409 ENTRY_LOCKED.\",\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Unscheduled content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t\t...entryMutationConflict,\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/duplicate\": {\n\t\tpost: {\n\t\t\toperationId: \"duplicateContent\",\n\t\t\tsummary: \"Duplicate a content item\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Duplicated content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ item: contentItemSchema })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/restore\": {\n\t\tpost: {\n\t\t\toperationId: \"restoreContent\",\n\t\t\tsummary: \"Restore a content item from trash\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Restored\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentRestoreResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/permanent\": {\n\t\tdelete: {\n\t\t\toperationId: \"permanentDeleteContent\",\n\t\t\tsummary: \"Permanently delete a content item\",\n\t\t\tdescription: \"Permanently removes a trashed content item. This cannot be undone.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Permanently deleted\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(deleteResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/compare\": {\n\t\tget: {\n\t\t\toperationId: \"compareContent\",\n\t\t\tsummary: \"Compare live and draft revisions\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Comparison result\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentCompareResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/discard-draft\": {\n\t\tpost: {\n\t\t\toperationId: \"discardDraft\",\n\t\t\tsummary: \"Discard draft changes\",\n\t\t\tdescription: \"Reverts the content item to its live (published) version.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentRevisionConditionBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Content item reverted to live version\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t...entryMutationConflict,\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/lock\": {\n\t\tget: {\n\t\t\toperationId: \"getEntryLock\",\n\t\t\tsummary: \"Read the entry's edit lock\",\n\t\t\tdescription: \"Reports who is holding the entry, if anyone, without changing the lease.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: entryPathParams,\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Current lock state\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(entryLockStatusSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"acquireEntryLock\",\n\t\t\tsummary: \"Take or refresh the entry's edit lock\",\n\t\t\tdescription:\n\t\t\t\t\"Takes the lock for the caller, or reports who holds it. `heldByCaller` \" +\n\t\t\t\t\"tells the two apart. The lease lasts seven minutes; repeating this call \" +\n\t\t\t\t\"and every save on the entry extend it. `takeover` claims the lock from \" +\n\t\t\t\t\"whoever holds it; their next heartbeat or save reports the new holder.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: entryPathParams,\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: entryLockAcquireBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Lock state after the attempt\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(entryLockStatusSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"releaseEntryLock\",\n\t\t\tsummary: \"Release the caller's edit lock\",\n\t\t\tdescription:\n\t\t\t\t\"Releases the lock only when the caller holds it; `released` is false otherwise.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: entryPathParams,\n\t\t\t\tquery: z.object({\n\t\t\t\t\ttoken: z.string().optional().meta({\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\"The session token sent on acquire. With it, only the tab that last claimed the lock releases it.\",\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Whether a lock was released\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(entryLockReleaseResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/translations\": {\n\t\tget: {\n\t\t\toperationId: \"getContentTranslations\",\n\t\t\tsummary: \"Get translations for a content item\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Translation group members\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentTranslationsResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/terms/{taxonomy}\": {\n\t\tget: {\n\t\t\toperationId: \"getContentTerms\",\n\t\t\tsummary: \"Get taxonomy terms assigned to a content item\",\n\t\t\tdescription:\n\t\t\t\t\"Returns the terms of one taxonomy that are assigned to the content item, resolved to the item's locale with fallback to the site default.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t\ttaxonomy: z.string().meta({ description: \"Taxonomy name\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Terms assigned to the content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentTermsResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"setContentTerms\",\n\t\t\tsummary: \"Set taxonomy terms on a content item\",\n\t\t\tdescription:\n\t\t\t\t\"Assign a set of terms to the content item for the named taxonomy, replacing any existing assignments for that taxonomy. Every term id must belong to the named taxonomy.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t\ttaxonomy: z.string().meta({ description: \"Taxonomy name\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentTermsBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Terms updated\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentTermsResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/authors\": {\n\t\tget: {\n\t\t\toperationId: \"listContentAuthors\",\n\t\t\tsummary: \"List distinct authors of a collection's content\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Content authors\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentAuthorsResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/content/{collection}/trash\": {\n\t\tget: {\n\t\t\toperationId: \"listTrashedContent\",\n\t\t\tsummary: \"List trashed content items\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t}),\n\t\t\t\tquery: contentTrashQuery,\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Trashed content list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(trashedContentListResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Media routes\n// ---------------------------------------------------------------------------\n\nfunction buildMediaPaths(maxUploadSize: number) {\n\treturn {\n\t\t\"/_emdash/api/media\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"listMedia\",\n\t\t\t\tsummary: \"List media items\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Lists media items. Set `includeUsage=1` to attach coverage-aware advisory usage counts; a count may be null when the caller cannot read draft-derived usage.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: { query: mediaListQuery },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media list\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaListReadResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tpost: {\n\t\t\t\toperationId: \"uploadMedia\",\n\t\t\t\tsummary: \"Upload a media item\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: { [MULTIPART_CONTENT]: { schema: mediaDirectUploadBody } },\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Existing deduplicated media item\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(mediaUploadResponseSchema) } },\n\t\t\t\t\t},\n\t\t\t\t\t\"201\": {\n\t\t\t\t\t\tdescription: \"Created media item\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(mediaUploadResponseSchema) } },\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 413, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/folders\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"listMediaFolders\",\n\t\t\t\tsummary: \"List media folders\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: { query: mediaFolderListQuery },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media folder list\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaFolderListResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tpost: {\n\t\t\t\toperationId: \"createMediaFolder\",\n\t\t\t\tsummary: \"Create a media folder\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: mediaFolderBody } } },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"201\": {\n\t\t\t\t\t\tdescription: \"Created media folder\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaFolderResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/folders/{id}\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"getMediaFolder\",\n\t\t\t\tsummary: \"Get a media folder\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: mediaFolderIdSchema.meta({ description: \"Media folder ID\" }) }),\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media folder\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaFolderResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tput: {\n\t\t\t\toperationId: \"updateMediaFolder\",\n\t\t\t\tsummary: \"Update a media folder\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: mediaFolderIdSchema.meta({ description: \"Media folder ID\" }) }),\n\t\t\t\t},\n\t\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: mediaFolderBody } } },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Updated media folder\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaFolderResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tdelete: {\n\t\t\t\toperationId: \"deleteMediaFolder\",\n\t\t\t\tsummary: \"Delete a media folder\",\n\t\t\t\tdescription: \"Deletes the folder and returns its media to the Main library.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: mediaFolderIdSchema.meta({ description: \"Media folder ID\" }) }),\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Deleted media folder\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/{id}\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"getMedia\",\n\t\t\t\tsummary: \"Get a media item\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Gets a media item. Set `includeUsage=1` to attach a coverage-aware advisory usage count; the count may be null when the caller cannot read draft-derived usage.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t\tquery: mediaGetQuery,\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media item\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(mediaReadResponseSchema) } },\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tput: {\n\t\t\t\toperationId: \"updateMedia\",\n\t\t\t\tsummary: \"Update media metadata\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t},\n\t\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: mediaUpdateBody } } },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Updated media item\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(mediaResponseSchema) } },\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tdelete: {\n\t\t\t\toperationId: \"deleteMedia\",\n\t\t\t\tsummary: \"Delete a media item\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(mediaDeleteResponseSchema) } },\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/{id}/usage\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"getMediaUsage\",\n\t\t\t\tsummary: \"Get media usage details\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Returns paginated content entry groups whose current indexed sources reference a local media item, and the site settings that select it. Results include aggregate coverage and are advisory during concurrent writes. Requires media read and draft-content read permission; token-authenticated callers also require admin scope.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t\tquery: mediaUsageDetailsQuery,\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Entry-grouped media usage details\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaUsageDetailsResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/{id}/replace\": {\n\t\t\tput: {\n\t\t\t\toperationId: \"replaceMediaImage\",\n\t\t\t\tsummary: \"Replace a media image\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Overwrites a ready local image under its existing storage key and refreshes its file metadata while preserving its media ID, filename, and URL. The replacement may use different dimensions or an aspect ratio from the original.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t},\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: { [MULTIPART_CONTENT]: { schema: mediaReplaceBody } },\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Replaced media item\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(mediaReplaceResponseSchema) } },\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 413, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/repair\": {\n\t\t\tpost: {\n\t\t\t\toperationId: \"repairMediaUsage\",\n\t\t\t\tsummary: \"Repair media usage indexes\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Repairs content media usage indexes for one collection or all collections. The request succeeds with HTTP 200 when a structured repair result is produced; inspect `data.status` because it may be `failed` or `stale`.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageRepairBody } },\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media usage repair result\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaUsageRepairResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 413, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/progress\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"getMediaUsageProgress\",\n\t\t\t\tsummary: \"Get media usage indexing progress\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Returns aggregate indexing readiness for current content collections after controlled activation is active. Requires `schema:manage`; bearer tokens also require the `admin` scope.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Aggregate media usage indexing progress\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaUsageProgressSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(409),\n\t\t\t\t\t...standardErrors(500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tpost: {\n\t\t\t\toperationId: \"advanceMediaUsageProgress\",\n\t\t\t\tsummary: \"Advance media usage indexing\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Runs one bounded Media Usage maintenance step and returns the stored activation and indexing state. Requires `schema:manage`; bearer tokens also require the `admin` scope.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media Usage progress after one maintenance step\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\t\tschema: successEnvelope(mediaUsageProgressAdvanceResponseSchema),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(409),\n\t\t\t\t\t...standardErrors(500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/work\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"listMediaUsageWork\",\n\t\t\t\tsummary: \"List durable media usage work\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Returns one bounded cursor page of durable entry-indexing work for a current collection. Requires `schema:manage`; bearer tokens also require the `admin` scope. The response omits lease tokens, work versions, indexed content, media references, raw errors, and an exact backlog count.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: { query: mediaUsageWorkListQuery },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Bounded media usage work page\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaUsageWorkListResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/activation\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"getMediaUsageActivation\",\n\t\t\t\tsummary: \"Get media usage activation status\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Returns the redacted status of controlled Media Usage capture activation. This operation is read-only and does not start or resume activation. Requires `schema:manage`; bearer tokens also require the `admin` scope.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media usage activation status\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaUsageActivationStatusSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(409, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tpost: {\n\t\t\t\toperationId: \"advanceMediaUsageActivation\",\n\t\t\t\tsummary: \"Advance media usage activation\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Starts, resumes, or retries exactly one bounded activation batch after the operator confirms that all writers are drained. Continue setup through the Media Usage progress endpoint. Requires `schema:manage`; bearer tokens also require the `admin` scope.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageActivationAdvanceBody } },\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Current media usage activation progress\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\t\tschema: successEnvelope(mediaUsageActivationAdvanceResponseSchema),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 500),\n\t\t\t\t\t\"409\": {\n\t\t\t\t\t\tdescription: \"Activation is busy, changed ownership, or is incompatible\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageActivationConflictSchema } },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/work/retry\": {\n\t\t\tpost: {\n\t\t\t\toperationId: \"retryMediaUsageWork\",\n\t\t\t\tsummary: \"Retry one durable media usage job\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Idempotently reopens or creates one entry-indexing job for a current immutable collection identity. Requires `schema:manage`; bearer tokens also require the `admin` scope. A live worker lease or a concurrent work change returns a stable conflict without exposing ownership tokens.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageWorkRetryBody } },\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Current pending work state\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaUsageWorkRetryResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t\t\"409\": {\n\t\t\t\t\t\tdescription: \"The job has a live lease or changed concurrently\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageWorkRetryConflictSchema } },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/collection-deletions\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"listMediaUsageCollectionDeletions\",\n\t\t\t\tsummary: \"List durable collection deletions\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Returns a bounded, redacted cursor page of collection deletion work. Requires `schema:manage`; bearer tokens also require the `admin` scope.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: { query: mediaUsageCollectionDeletionListQuery },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Bounded collection deletion page\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\t\tschema: successEnvelope(mediaUsageCollectionDeletionListResponseSchema),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/collection-deletions/retry\": {\n\t\t\tpost: {\n\t\t\t\toperationId: \"retryMediaUsageCollectionDeletion\",\n\t\t\t\tsummary: \"Retry one collection deletion\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageCollectionDeletionRetryBody } },\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Pending collection deletion state\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\t\tschema: successEnvelope(mediaUsageCollectionDeletionRetryResponseSchema),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t\t\"409\": {\n\t\t\t\t\t\tdescription: \"The deletion has a live lease or changed concurrently\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageWorkRetryConflictSchema } },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/upload-url\": {\n\t\t\tpost: {\n\t\t\t\toperationId: \"getMediaUploadUrl\",\n\t\t\t\tsummary: \"Get a media upload target\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Returns either a signed direct-to-storage URL or a same-origin streaming target. Creates a pending media record.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: mediaUploadUrlBody(maxUploadSize) } } },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Upload URL or existing media (deduplication)\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\t\tz.union([mediaUploadUrlResponseSchema, mediaExistingResponseSchema]),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/{id}/confirm\": {\n\t\t\tpost: {\n\t\t\t\toperationId: \"confirmMediaUpload\",\n\t\t\t\tsummary: \"Confirm a media upload\",\n\t\t\t\tdescription: \"Marks a pending media record as ready after the file has been uploaded.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t},\n\t\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: mediaConfirmBody } } },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Confirmed media item with URL\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaConfirmResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/{id}/upload\": {\n\t\t\tput: {\n\t\t\t\toperationId: \"uploadPendingMedia\",\n\t\t\t\tsummary: \"Upload a pending media file through EmDash\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Streams a file to storage when the configured adapter cannot provide a signed upload URL. The Content-Type and byte count must match the pending media item.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t},\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\"*/*\": {\n\t\t\t\t\t\t\tschema: z.string().meta({ format: \"binary\" }),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"File uploaded and ready for confirmation\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaStreamUploadResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 413, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t} as const;\n}\n\n// ---------------------------------------------------------------------------\n// Schema routes\n// ---------------------------------------------------------------------------\n\nconst schemaPaths = {\n\t\"/_emdash/api/schema/block-types\": {\n\t\tget: {\n\t\t\toperationId: \"listBlockTypes\",\n\t\t\tsummary: \"List block types\",\n\t\t\ttags: [\"Schema\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Block type list\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(blockTypeListResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createBlockType\",\n\t\t\tsummary: \"Create a block type\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createBlockTypeBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created block type\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(blockTypeResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/block-types/{slug}\": {\n\t\tget: {\n\t\t\toperationId: \"getBlockType\",\n\t\t\tsummary: \"Get a block type\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: { path: z.object({ slug: z.string() }) },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Block type\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(blockTypeResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateBlockType\",\n\t\t\tsummary: \"Update a block type\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: { path: z.object({ slug: z.string() }) },\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateBlockTypeBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated block type\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(blockTypeResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/block-types/{slug}/versions/{version}/activate\": {\n\t\tpost: {\n\t\t\toperationId: \"activateBlockTypeVersion\",\n\t\t\tsummary: \"Activate a block type version\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string(), version: z.coerce.number().int().positive() }),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: activateBlockTypeVersionBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Activated block type\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(blockTypeResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/collections\": {\n\t\tget: {\n\t\t\toperationId: \"listCollections\",\n\t\t\tsummary: \"List all collections\",\n\t\t\ttags: [\"Schema\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Collection list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(collectionListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createCollection\",\n\t\t\tsummary: \"Create a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createCollectionBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created collection\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(collectionResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/collections/{slug}\": {\n\t\tget: {\n\t\t\toperationId: \"getCollection\",\n\t\t\tsummary: \"Get a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Collection slug\" }) }),\n\t\t\t\tquery: collectionGetQuery,\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Collection (optionally with fields)\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.union([\n\t\t\t\t\t\t\t\t\tcollectionResponseSchema.shape.item,\n\t\t\t\t\t\t\t\t\tcollectionWithFieldsResponseSchema.shape.item,\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateCollection\",\n\t\t\tsummary: \"Update a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Collection slug\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateCollectionBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated collection\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(collectionResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteCollection\",\n\t\t\tsummary: \"Delete a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Collection slug\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/collections/{slug}/fields\": {\n\t\tget: {\n\t\t\toperationId: \"listFields\",\n\t\t\tsummary: \"List fields for a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Collection slug\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Field list\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(fieldListResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createField\",\n\t\t\tsummary: \"Create a field\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Collection slug\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createFieldBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created field\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(fieldResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/collections/{slug}/fields/{fieldSlug}\": {\n\t\tget: {\n\t\t\toperationId: \"getField\",\n\t\t\tsummary: \"Get a field\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tslug: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tfieldSlug: z.string().meta({ description: \"Field slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Field\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(fieldResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateField\",\n\t\t\tsummary: \"Update a field\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tslug: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tfieldSlug: z.string().meta({ description: \"Field slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateFieldBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated field\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(fieldResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteField\",\n\t\t\tsummary: \"Delete a field\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tslug: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tfieldSlug: z.string().meta({ description: \"Field slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/collections/reorder\": {\n\t\tpost: {\n\t\t\toperationId: \"reorderCollections\",\n\t\t\tsummary: \"Reorder collections in the admin sidebar\",\n\t\t\tdescription:\n\t\t\t\t\"Sets the sidebar order. Collections omitted from the list lose their explicit position and fall back to alphabetical order after the ordered ones.\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: collectionReorderBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Reordered\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ success: z.literal(true) })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/collections/{slug}/fields/reorder\": {\n\t\tpost: {\n\t\t\toperationId: \"reorderFields\",\n\t\t\tsummary: \"Reorder fields in a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Collection slug\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: fieldReorderBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Reordered\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ success: z.literal(true) })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/orphans\": {\n\t\tget: {\n\t\t\toperationId: \"listOrphanedTables\",\n\t\t\tsummary: \"List orphaned content tables\",\n\t\t\tdescription: \"Finds ec_* tables without matching collection definitions.\",\n\t\t\ttags: [\"Schema\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Orphaned tables\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(orphanedTableListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/orphans/{slug}\": {\n\t\tpost: {\n\t\t\toperationId: \"registerOrphanedTable\",\n\t\t\tsummary: \"Register an orphaned table as a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tslug: z.string().meta({ description: \"Table slug (without ec_ prefix)\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: orphanRegisterBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Registered collection\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(collectionResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Comments routes\n// ---------------------------------------------------------------------------\n\nconst commentsPaths = {\n\t\"/_emdash/api/comments/{collection}/{contentId}\": {\n\t\tget: {\n\t\t\toperationId: \"listPublicComments\",\n\t\t\tsummary: \"List approved comments for content\",\n\t\t\tdescription: \"Public endpoint. Returns approved comments with optional threading.\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tcontentId: z.string().meta({ description: \"Content ID\" }),\n\t\t\t\t}),\n\t\t\t\tquery: z.object({\n\t\t\t\t\tlimit: z.coerce.number().int().min(1).max(100).optional(),\n\t\t\t\t\tcursor: z.string().optional(),\n\t\t\t\t\tthreaded: z\n\t\t\t\t\t\t.enum([\"true\", \"false\"])\n\t\t\t\t\t\t.transform((v) => v === \"true\")\n\t\t\t\t\t\t.optional(),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Comment list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(publicCommentListResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createComment\",\n\t\t\tsummary: \"Submit a new comment\",\n\t\t\tdescription: \"Public endpoint. Comment enters moderation queue.\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tcontentId: z.string().meta({ description: \"Content ID\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createCommentBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Comment created (pending moderation)\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ id: z.string(), status: z.string() })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...standardErrors(400, 429, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/comments\": {\n\t\tget: {\n\t\t\toperationId: \"listAdminComments\",\n\t\t\tsummary: \"List comments for moderation\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestParams: { query: commentListQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Comment moderation inbox\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(adminCommentListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/comments/counts\": {\n\t\tget: {\n\t\t\toperationId: \"getCommentCounts\",\n\t\t\tsummary: \"Get comment status counts\",\n\t\t\ttags: [\"Comments\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Counts by status\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(commentCountsResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/comments/bulk\": {\n\t\tpost: {\n\t\t\toperationId: \"bulkCommentAction\",\n\t\t\tsummary: \"Bulk approve, spam, trash, or delete comments\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: commentBulkBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Bulk action result\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(commentBulkResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/comments/{id}\": {\n\t\tget: {\n\t\t\toperationId: \"getComment\",\n\t\t\tsummary: \"Get a single comment\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Comment ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Comment\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(commentSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteComment\",\n\t\t\tsummary: \"Permanently delete a comment\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Comment ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/comments/{id}/status\": {\n\t\tput: {\n\t\t\toperationId: \"updateCommentStatus\",\n\t\t\tsummary: \"Change comment status\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Comment ID\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: commentStatusBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated comment\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(commentSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Taxonomy routes\n// ---------------------------------------------------------------------------\n\nconst taxonomyPaths = {\n\t\"/_emdash/api/taxonomies\": {\n\t\tget: {\n\t\t\toperationId: \"listTaxonomies\",\n\t\t\tsummary: \"List all taxonomy definitions\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Taxonomy list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(taxonomyListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/taxonomies/{name}\": {\n\t\tget: {\n\t\t\toperationId: \"getTaxonomy\",\n\t\t\tsummary: \"Get a taxonomy definition\",\n\t\t\tdescription:\n\t\t\t\t\"Definitions are per-locale; `locale` picks one. Without it the configured default locale is returned, falling back to the lowest locale code.\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t\tquery: z.object({\n\t\t\t\t\tlocale: z.string().optional().meta({ description: \"Locale filter\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Taxonomy definition\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(taxonomyResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateTaxonomy\",\n\t\t\tsummary: \"Update a taxonomy definition\",\n\t\t\tdescription:\n\t\t\t\t\"Writes `label` and `labelSingular` to the single definition `name` + `locale` resolves to. `hierarchical` and `collections` belong to the taxonomy and change for every locale. `name` and `locale` cannot be changed — terms are keyed on `name`, and each locale is its own definition row.\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t\tquery: z.object({\n\t\t\t\t\tlocale: z.string().optional().meta({ description: \"Locale of the definition to update\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateTaxonomyDefBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated taxonomy definition\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(taxonomyResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteTaxonomy\",\n\t\t\tsummary: \"Delete a taxonomy, its terms, and their content assignments\",\n\t\t\tdescription:\n\t\t\t\t\"Destructive and unscoped: every locale's definition goes, along with every term under the name and the assignments those terms hold. There is no locale parameter and no guard on a taxonomy that is still in use.\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/taxonomies/{name}/translations\": {\n\t\tget: {\n\t\t\toperationId: \"listTaxonomyTranslations\",\n\t\t\tsummary: \"List every locale variant of a taxonomy definition\",\n\t\t\tdescription:\n\t\t\t\t\"Create a translation with `POST /_emdash/api/taxonomies` and `translationOf` set to a definition id from this list.\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t\tquery: z.object({\n\t\t\t\t\tlocale: z\n\t\t\t\t\t\t.string()\n\t\t\t\t\t\t.optional()\n\t\t\t\t\t\t.meta({ description: \"Locale of the definition to resolve the group from\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Translations sharing a translation_group\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(taxonomyDefTranslationsSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/taxonomies/{name}/reorder\": {\n\t\tpost: {\n\t\t\toperationId: \"reorderTerms\",\n\t\t\tsummary: \"Set the manual order of one sibling group of terms\",\n\t\t\tdescription:\n\t\t\t\t\"`ids` names the terms to move, in the desired order, and may be a subset of the group — the listed terms are permuted within the positions they already occupy. A position belongs to a term across every locale, so there is no `locale` parameter. Ordering never reparents — use the term update endpoint to change a parent.\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: reorderTermsBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The group in its new order\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(termReorderResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/taxonomies/{name}/terms\": {\n\t\tget: {\n\t\t\toperationId: \"listTerms\",\n\t\t\tsummary: \"List terms for a taxonomy\",\n\t\t\tdescription: \"Returns a tree for hierarchical taxonomies, flat list otherwise.\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t\tquery: termListQuery,\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Term list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(termListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createTerm\",\n\t\t\tsummary: \"Create a term\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createTermBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created term\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(termResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/taxonomies/{name}/terms/{slug}\": {\n\t\tget: {\n\t\t\toperationId: \"getTerm\",\n\t\t\tsummary: \"Get a term by slug\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Taxonomy name\" }),\n\t\t\t\t\tslug: z.string().meta({ description: \"Term slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Term with children and count\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(termGetResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateTerm\",\n\t\t\tsummary: \"Update a term\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Taxonomy name\" }),\n\t\t\t\t\tslug: z.string().meta({ description: \"Term slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateTermBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated term\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(termResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteTerm\",\n\t\t\tsummary: \"Delete a term\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Taxonomy name\" }),\n\t\t\t\t\tslug: z.string().meta({ description: \"Term slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Menu routes\n// ---------------------------------------------------------------------------\n\nconst menuPaths = {\n\t\"/_emdash/api/menus\": {\n\t\tget: {\n\t\t\toperationId: \"listMenus\",\n\t\t\tsummary: \"List all menus with item counts\",\n\t\t\ttags: [\"Menus\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Menu list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.array(menuListItemSchema)),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createMenu\",\n\t\t\tsummary: \"Create a menu\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createMenuBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created menu\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(menuWithItemsSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/menus/{name}\": {\n\t\tget: {\n\t\t\toperationId: \"getMenu\",\n\t\t\tsummary: \"Get a menu with all items\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Menu name\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Menu with items\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(menuWithItemsSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateMenu\",\n\t\t\tsummary: \"Update a menu\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Menu name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateMenuBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated menu\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(menuWithItemsSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteMenu\",\n\t\t\tsummary: \"Delete a menu and its items\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Menu name\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/menus/{name}/items\": {\n\t\tpost: {\n\t\t\toperationId: \"createMenuItem\",\n\t\t\tsummary: \"Add an item to a menu\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Menu name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createMenuItemBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created menu item\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(menuItemSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/menus/{name}/items/{id}\": {\n\t\tput: {\n\t\t\toperationId: \"updateMenuItem\",\n\t\t\tsummary: \"Update a menu item\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Menu name\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Menu item id\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateMenuItemBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated menu item\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(menuItemSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteMenuItem\",\n\t\t\tsummary: \"Delete a menu item\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Menu name\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Menu item id\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/menus/{name}/reorder\": {\n\t\tpost: {\n\t\t\toperationId: \"reorderMenuItems\",\n\t\t\tsummary: \"Batch reorder menu items\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Menu name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: reorderMenuItemsBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Reordered items\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.array(menuItemSchema)),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Section routes\n// ---------------------------------------------------------------------------\n\nconst sectionPaths = {\n\t\"/_emdash/api/sections\": {\n\t\tget: {\n\t\t\toperationId: \"listSections\",\n\t\t\tsummary: \"List sections\",\n\t\t\ttags: [\"Sections\"],\n\t\t\trequestParams: { query: sectionsListQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Section list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(sectionListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createSection\",\n\t\t\tsummary: \"Create a section\",\n\t\t\ttags: [\"Sections\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createSectionBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created section\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(sectionSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/sections/{slug}\": {\n\t\tget: {\n\t\t\toperationId: \"getSection\",\n\t\t\tsummary: \"Get a section by slug\",\n\t\t\ttags: [\"Sections\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Section slug\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Section\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(sectionSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateSection\",\n\t\t\tsummary: \"Update a section\",\n\t\t\ttags: [\"Sections\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Section slug\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateSectionBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated section\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(sectionSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteSection\",\n\t\t\tsummary: \"Delete a section\",\n\t\t\ttags: [\"Sections\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Section slug\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(403, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Widget routes\n// ---------------------------------------------------------------------------\n\nconst widgetPaths = {\n\t\"/_emdash/api/widget-areas\": {\n\t\tget: {\n\t\t\toperationId: \"listWidgetAreas\",\n\t\t\tsummary: \"List all widget areas\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Widget area list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({ items: z.array(widgetAreaWithWidgetsAndCountSchema) }),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createWidgetArea\",\n\t\t\tsummary: \"Create a widget area\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createWidgetAreaBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created widget area\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(widgetAreaSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/widget-areas/{name}\": {\n\t\tget: {\n\t\t\toperationId: \"getWidgetArea\",\n\t\t\tsummary: \"Get a widget area with widgets\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Widget area name\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Widget area with widgets\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(widgetAreaWithWidgetsSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteWidgetArea\",\n\t\t\tsummary: \"Delete a widget area and its widgets\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Widget area name\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/widget-areas/{name}/widgets\": {\n\t\tpost: {\n\t\t\toperationId: \"createWidget\",\n\t\t\tsummary: \"Add a widget to an area\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Widget area name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createWidgetBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created widget\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(widgetSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/widget-areas/{name}/widgets/{id}\": {\n\t\tput: {\n\t\t\toperationId: \"updateWidget\",\n\t\t\tsummary: \"Update a widget\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Widget area name\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Widget ID\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateWidgetBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated widget\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(widgetSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteWidget\",\n\t\t\tsummary: \"Delete a widget\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Widget area name\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Widget ID\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/widget-areas/{name}/reorder\": {\n\t\tpost: {\n\t\t\toperationId: \"reorderWidgets\",\n\t\t\tsummary: \"Reorder widgets in an area\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Widget area name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: reorderWidgetsBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Reordered\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ success: z.literal(true) })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Settings routes\n// ---------------------------------------------------------------------------\n\nconst settingsPaths = {\n\t\"/_emdash/api/settings\": {\n\t\tget: {\n\t\t\toperationId: \"getSettings\",\n\t\t\tsummary: \"Get site settings\",\n\t\t\ttags: [\"Settings\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Site settings\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(siteSettingsSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateSettings\",\n\t\t\tsummary: \"Update site settings\",\n\t\t\ttags: [\"Settings\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: settingsUpdateBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated settings\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(siteSettingsSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Search routes\n// ---------------------------------------------------------------------------\n\nconst searchPaths = {\n\t\"/_emdash/api/search\": {\n\t\tget: {\n\t\t\toperationId: \"search\",\n\t\t\tsummary: \"Full-text search across collections\",\n\t\t\ttags: [\"Search\"],\n\t\t\trequestParams: { query: searchQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Search results\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(searchResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/search/suggest\": {\n\t\tget: {\n\t\t\toperationId: \"searchSuggest\",\n\t\t\tsummary: \"Autocomplete search suggestions\",\n\t\t\ttags: [\"Search\"],\n\t\t\trequestParams: { query: searchSuggestQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Search suggestions\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(searchResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/search/rebuild\": {\n\t\tpost: {\n\t\t\toperationId: \"rebuildSearchIndex\",\n\t\t\tsummary: \"Rebuild the search index for a collection\",\n\t\t\ttags: [\"Search\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: searchRebuildBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Rebuild started\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\tcollection: z.string(),\n\t\t\t\t\t\t\t\t\tindexed: z.number().int(),\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/search/enable\": {\n\t\tpost: {\n\t\t\toperationId: \"enableSearch\",\n\t\t\tsummary: \"Enable or disable search for a collection\",\n\t\t\ttags: [\"Search\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: searchEnableBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Search config updated\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\tcollection: z.string(),\n\t\t\t\t\t\t\t\t\tenabled: z.boolean(),\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/search/stats\": {\n\t\tget: {\n\t\t\toperationId: \"getSearchStats\",\n\t\t\tsummary: \"Get search index statistics\",\n\t\t\ttags: [\"Search\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Search stats per collection\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\tcollections: z.array(\n\t\t\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\t\t\tcollection: z.string(),\n\t\t\t\t\t\t\t\t\t\t\tenabled: z.boolean(),\n\t\t\t\t\t\t\t\t\t\t\tindexed: z.number().int(),\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Redirect routes\n// ---------------------------------------------------------------------------\n\nconst redirectPaths = {\n\t\"/_emdash/api/redirects\": {\n\t\tget: {\n\t\t\toperationId: \"listRedirects\",\n\t\t\tsummary: \"List redirects\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestParams: { query: redirectsListQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Redirect list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(redirectListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createRedirect\",\n\t\t\tsummary: \"Create a redirect rule\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createRedirectBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created redirect\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(redirectSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/redirects/{id}\": {\n\t\tget: {\n\t\t\toperationId: \"getRedirect\",\n\t\t\tsummary: \"Get a redirect\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Redirect ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Redirect\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(redirectSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateRedirect\",\n\t\t\tsummary: \"Update a redirect\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Redirect ID\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateRedirectBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated redirect\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(redirectSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteRedirect\",\n\t\t\tsummary: \"Delete a redirect\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Redirect ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/redirects/404s\": {\n\t\tget: {\n\t\t\toperationId: \"listNotFoundEntries\",\n\t\t\tsummary: \"List 404 log entries\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestParams: { query: notFoundListQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"404 log entries\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(notFoundListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"clearNotFoundLog\",\n\t\t\tsummary: \"Clear all 404 log entries\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Cleared\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ deleted: z.number().int() })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"pruneNotFoundLog\",\n\t\t\tsummary: \"Prune old 404 log entries\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: notFoundPruneBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Pruned\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ deleted: z.number().int() })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/redirects/404s/summary\": {\n\t\tget: {\n\t\t\toperationId: \"getNotFoundSummary\",\n\t\t\tsummary: \"Get 404 summary grouped by path\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"404 summary\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(notFoundSummaryResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// User management routes\n// ---------------------------------------------------------------------------\n\nconst userPaths = {\n\t\"/_emdash/api/admin/users\": {\n\t\tget: {\n\t\t\toperationId: \"listUsers\",\n\t\t\tsummary: \"List users\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: { query: usersListQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"User list\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(userListResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/users/{id}\": {\n\t\tget: {\n\t\t\toperationId: \"getUser\",\n\t\t\tsummary: \"Get user details\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"User ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"User detail\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ item: userDetailSchema })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateUser\",\n\t\t\tsummary: \"Update a user\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"User ID\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: userUpdateBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated user\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ item: userSchema })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/users/{id}/disable\": {\n\t\tpost: {\n\t\t\toperationId: \"disableUser\",\n\t\t\tsummary: \"Disable a user account\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"User ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"User disabled\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ item: userSchema })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/users/{id}/enable\": {\n\t\tpost: {\n\t\t\toperationId: \"enableUser\",\n\t\t\tsummary: \"Enable a user account\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"User ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"User enabled\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ item: userSchema })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/allowed-domains\": {\n\t\tget: {\n\t\t\toperationId: \"listAllowedDomains\",\n\t\t\tsummary: \"List allowed email domains\",\n\t\t\ttags: [\"Users\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Allowed domains list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\titems: z.array(\n\t\t\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\t\t\tdomain: z.string(),\n\t\t\t\t\t\t\t\t\t\t\tdefaultRole: z.number().int(),\n\t\t\t\t\t\t\t\t\t\t\tenabled: z.boolean(),\n\t\t\t\t\t\t\t\t\t\t\tcreatedAt: z.string(),\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createAllowedDomain\",\n\t\t\tsummary: \"Add an allowed email domain\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: allowedDomainCreateBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\tdomain: z.string(),\n\t\t\t\t\t\t\t\t\tdefaultRole: z.number().int(),\n\t\t\t\t\t\t\t\t\tenabled: z.boolean(),\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/allowed-domains/{domain}\": {\n\t\tput: {\n\t\t\toperationId: \"updateAllowedDomain\",\n\t\t\tsummary: \"Update an allowed domain\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ domain: z.string().meta({ description: \"Domain name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: allowedDomainUpdateBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\tdomain: z.string(),\n\t\t\t\t\t\t\t\t\tdefaultRole: z.number().int(),\n\t\t\t\t\t\t\t\t\tenabled: z.boolean(),\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteAllowedDomain\",\n\t\t\tsummary: \"Remove an allowed domain\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ domain: z.string().meta({ description: \"Domain name\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Site transfer routes\n// ---------------------------------------------------------------------------\n\nconst TRANSFER_AUTH =\n\t\"Session users need the `transfer:import` permission (admins); bearer tokens need `admin` or the scope named here.\";\n\nconst importPathParams = z.object({\n\tid: z.string().meta({ description: \"Import operation ID\" }),\n});\n\nconst exportPathParams = z.object({\n\tid: z.string().meta({ description: \"Export operation ID\" }),\n});\n\nconst EXPORT_AUTH =\n\t\"Session users need the `transfer:export` permission (admins); bearer tokens need the `transfer:export` scope. Any holder of both can read any export.\";\n\nconst approvalPathParams = z.object({\n\tid: z.string().meta({ description: \"Approval ID\" }),\n});\n\nconst transferPaths = {\n\t\"/_emdash/api/admin/transfer/capabilities\": {\n\t\tget: {\n\t\t\toperationId: \"getTransferCapabilities\",\n\t\t\tsummary: \"Get site transfer capabilities\",\n\t\t\tdescription:\n\t\t\t\t\"Returns the supported package format versions, features, and limits, and whether this site can receive an import (`portableDomain`, with the reasons it cannot). Session users need `transfer:export` or `transfer:import`; bearer tokens need any transfer scope.\",\n\t\t\ttags: [\"Transfer\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Transfer capabilities\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(transferCapabilitiesSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports\": {\n\t\tget: {\n\t\t\toperationId: \"listTransferImports\",\n\t\t\tsummary: \"List site imports\",\n\t\t\tdescription: `Returns imports newest first. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\` or \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { query: transferPaginationQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"One page of imports\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferOperationListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createTransferImport\",\n\t\t\tsummary: \"Create a site import\",\n\t\t\tdescription: `The request body is the package's \\`manifest.json\\`, byte for byte (at most 8 MiB). An optional \\`Idempotency-Key\\` header returns the existing operation on retry; reusing a key with a different manifest fails with \\`TRANSFER_IDEMPOTENCY_CONFLICT\\`. The response lists the first files to upload. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestBody: {\n\t\t\t\trequired: true,\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: z.string().meta({ format: \"binary\" }) } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Existing import for this idempotency key\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferImportCreateResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Import created\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferImportCreateResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 413, 422, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}\": {\n\t\tget: {\n\t\t\toperationId: \"getTransferImport\",\n\t\t\tsummary: \"Get a site import\",\n\t\t\tdescription: `Returns the import and how many of its files are uploaded. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\` or \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Import status\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferImportStatusResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/missing\": {\n\t\tget: {\n\t\t\toperationId: \"listTransferImportMissingFiles\",\n\t\t\tsummary: \"List package files still to upload\",\n\t\t\tdescription: `Returns declared files that are not uploaded yet, in path order. Uploading an index chunk declares the files it lists, so list again after each round of uploads until the list is empty. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams, query: transferPaginationQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"One page of missing files\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferMissingFilesResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/files/{path}\": {\n\t\tput: {\n\t\t\toperationId: \"uploadTransferImportFile\",\n\t\t\tsummary: \"Upload one package file\",\n\t\t\tdescription: `Streams one declared package file (\\`index/…\\`, \\`records/…\\`, or \\`media/…\\`; the path keeps its slashes). \\`Content-Length\\` is required and must equal the declared size, and the bytes must match the declared SHA-256. Media files may not exceed the site's \\`maxUploadSize\\`. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: importPathParams.extend({\n\t\t\t\t\tpath: z.string().meta({ description: \"Package file path\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\trequired: true,\n\t\t\t\tcontent: { \"application/octet-stream\": { schema: z.string().meta({ format: \"binary\" }) } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"File stored and verified\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferFileUploadResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 411, 413, 422, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/analyze\": {\n\t\tpost: {\n\t\t\toperationId: \"analyzeTransferImport\",\n\t\t\tsummary: \"Advance import analysis\",\n\t\t\tdescription: `Runs one bounded analysis step once every file is uploaded. Call again after \\`nextRequestInMs\\` until it is null; the response then includes the plan and its digest. Submitted decisions are applied once the import is planned. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\trequestBody: {\n\t\t\t\trequired: false,\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: transferImportAnalyzeBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Analysis progress, or the plan\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferImportAnalyzeResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 422, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/plan\": {\n\t\tget: {\n\t\t\toperationId: \"getTransferImportPlan\",\n\t\t\tsummary: \"Get an import plan\",\n\t\t\tdescription: `${TRANSFER_AUTH} Scope: \\`transfer:analyze\\` or \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The plan and its digest\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferImportPlanResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/cancel\": {\n\t\tpost: {\n\t\t\toperationId: \"cancelTransferImport\",\n\t\t\tsummary: \"Cancel a site import\",\n\t\t\tdescription: `A step in progress stops after its current batch. ${TRANSFER_AUTH} Scope: \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The cancelled import\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferOperationResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/abandon\": {\n\t\tpost: {\n\t\t\toperationId: \"abandonTransferImport\",\n\t\t\tsummary: \"Abandon a failed or cancelled import\",\n\t\t\tdescription: `Lifts the site write fence after an import failed or was cancelled. Data the import already wrote stays in place. ${TRANSFER_AUTH} Scope: \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The abandoned import\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferOperationResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/execute\": {\n\t\tpost: {\n\t\t\toperationId: \"executeTransferImport\",\n\t\t\tsummary: \"Start a planned import\",\n\t\t\tdescription: `Starts a planned import once the reviewed package and plan digests match. The plan must have no blockers. Then call \\`advance\\` until \\`nextRequestInMs\\` is null. ${TRANSFER_AUTH} Scope: \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\trequestBody: {\n\t\t\t\trequired: true,\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: transferImportExecuteBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The import, marked for execution\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferOperationResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/advance\": {\n\t\tpost: {\n\t\t\toperationId: \"advanceTransferImport\",\n\t\t\tsummary: \"Advance an executing import\",\n\t\t\tdescription: `Runs one bounded import step. Retryable failures are recorded on the import and delay \\`nextRequestInMs\\`; it is null once the import has ended. While the import runs, and after it fails or is cancelled until it is abandoned, other site writes return 503 \\`TRANSFER_IMPORT_IN_PROGRESS\\`. ${TRANSFER_AUTH} Scope: \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The import after one step\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(transferAdvanceResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/receipt\": {\n\t\tget: {\n\t\t\toperationId: \"getTransferImportReceipt\",\n\t\t\tsummary: \"Get an import receipt\",\n\t\t\tdescription: `The verified receipt of a complete import; its \\`receiptDigest\\` covers every other field. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\` or \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The receipt\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferImportReceiptResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/exports\": {\n\t\tget: {\n\t\t\toperationId: \"listTransferExports\",\n\t\t\tsummary: \"List site exports\",\n\t\t\tdescription: `Returns exports newest first. ${EXPORT_AUTH}`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { query: transferPaginationQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"One page of exports\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferOperationListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createTransferExport\",\n\t\t\tsummary: \"Start a site export\",\n\t\t\tdescription: `Creates an export; call \\`advance\\` until \\`nextRequestInMs\\` is null. An optional \\`Idempotency-Key\\` header returns the existing export on retry. ${EXPORT_AUTH}`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestBody: {\n\t\t\t\trequired: false,\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: transferExportCreateBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Existing export for this idempotency key\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferExportCreateResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Export created\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferExportCreateResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/exports/{id}\": {\n\t\tget: {\n\t\t\toperationId: \"getTransferExport\",\n\t\t\tsummary: \"Get a site export\",\n\t\t\tdescription: EXPORT_AUTH,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: exportPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Export status\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferOperationResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/exports/{id}/advance\": {\n\t\tpost: {\n\t\t\toperationId: \"advanceTransferExport\",\n\t\t\tsummary: \"Advance a site export\",\n\t\t\tdescription: `Runs one bounded export step; \\`nextRequestInMs\\` is null once the export has ended. ${EXPORT_AUTH}`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: exportPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The export after one step\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(transferAdvanceResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/exports/{id}/manifest\": {\n\t\tget: {\n\t\t\toperationId: \"getTransferExportManifest\",\n\t\t\tsummary: \"Download an export manifest\",\n\t\t\tdescription: `The complete export's \\`manifest.json\\`, byte for byte; its SHA-256 is the package digest. ${EXPORT_AUTH}`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: exportPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The manifest\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: z.string().meta({ format: \"binary\" }) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 410, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/exports/{id}/files/{path}\": {\n\t\tget: {\n\t\t\toperationId: \"downloadTransferExportFile\",\n\t\t\tsummary: \"Download one export file\",\n\t\t\tdescription: `Streams one index chunk, record chunk, or media blob listed by the export (the path keeps its slashes). \\`Content-Length\\` and the \\`ETag\\` (hex SHA-256) describe the file; the stream fails partway if the stored bytes no longer match. ${EXPORT_AUTH}`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: exportPathParams.extend({\n\t\t\t\t\tpath: z.string().meta({ description: \"Package file path\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The file\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\"application/octet-stream\": { schema: z.string().meta({ format: \"binary\" }) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 410, 422, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/exports/{id}/archive\": {\n\t\tget: {\n\t\t\toperationId: \"downloadTransferExportArchive\",\n\t\t\tsummary: \"Download an export archive\",\n\t\t\tdescription: `Streams the complete export as one \\`.emdash\\` tar archive, manifest first. On Workers the whole archive streams within one request; large sites should download files individually. ${EXPORT_AUTH}`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: exportPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The archive\",\n\t\t\t\t\tcontent: { \"application/x-tar\": { schema: z.string().meta({ format: \"binary\" }) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 410, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/approvals\": {\n\t\tget: {\n\t\t\toperationId: \"listTransferApprovals\",\n\t\t\tsummary: \"List transfer approvals\",\n\t\t\tdescription:\n\t\t\t\t\"Approval grants requested by MCP callers, newest first. Signed-in sessions only (`transfer:export` or `transfer:import`); bearer tokens are refused.\",\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { query: transferApprovalListQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"One page of approvals\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferApprovalListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/approvals/{id}/approve\": {\n\t\tpost: {\n\t\t\toperationId: \"approveTransferApproval\",\n\t\t\tsummary: \"Approve a transfer request\",\n\t\t\tdescription:\n\t\t\t\t\"Approves a pending grant; the requester can use it once within 15 minutes. Signed-in sessions only, with the permission for the grant's action; bearer tokens are refused.\",\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: approvalPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The approved grant\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferApprovalResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/approvals/{id}/deny\": {\n\t\tpost: {\n\t\t\toperationId: \"denyTransferApproval\",\n\t\t\tsummary: \"Deny a transfer request\",\n\t\t\tdescription:\n\t\t\t\t\"Denies a pending grant. Signed-in sessions only, with the permission for the grant's action; bearer tokens are refused.\",\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: approvalPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The denied grant\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferApprovalResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Merge all paths\n// ---------------------------------------------------------------------------\n\nfunction buildAllPaths(maxUploadSize: number) {\n\treturn {\n\t\t...contentPaths,\n\t\t...buildMediaPaths(maxUploadSize),\n\t\t...schemaPaths,\n\t\t...commentsPaths,\n\t\t...taxonomyPaths,\n\t\t...menuPaths,\n\t\t...sectionPaths,\n\t\t...widgetPaths,\n\t\t...settingsPaths,\n\t\t...searchPaths,\n\t\t...redirectPaths,\n\t\t...userPaths,\n\t\t...transferPaths,\n\t} as const;\n}\n\n// ---------------------------------------------------------------------------\n// Document\n// ---------------------------------------------------------------------------\n\n/**\n * Generate the OpenAPI 3.1 document for the EmDash CMS API.\n *\n * Covers: Content, Media, Schema, Comments, Taxonomies, Menus,\n * Sections, Widgets, Settings, Search, Redirects, Users, Transfer.\n */\nexport function generateOpenApiDocument(\n\toptions: { maxUploadSize?: number } = {},\n): oas31.OpenAPIObject {\n\tconst maxUploadSize = options.maxUploadSize ?? DEFAULT_MAX_UPLOAD_SIZE;\n\treturn createDocument({\n\t\topenapi: \"3.1.0\",\n\t\tinfo: {\n\t\t\ttitle: \"EmDash CMS API\",\n\t\t\tversion: \"0.1.0\",\n\t\t\tdescription:\n\t\t\t\t\"REST API for the EmDash CMS. All endpoints require authentication and return responses wrapped in a `{ success, data }` envelope.\",\n\t\t},\n\t\tservers: [\n\t\t\t{\n\t\t\t\turl: \"{baseUrl}\",\n\t\t\t\tdescription: \"CMS instance\",\n\t\t\t\t// Note: `description` on server variables is valid per OAS 3.1 spec but\n\t\t\t\t// swagger-parser rejects it as an unevaluated property. Omitted as a workaround.\n\t\t\t\tvariables: {\n\t\t\t\t\tbaseUrl: {\n\t\t\t\t\t\tdefault: \"http://localhost:4321\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\ttags: [\n\t\t\t{\n\t\t\t\tname: \"Content\",\n\t\t\t\tdescription: \"CRUD operations for content items across collections\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Media\",\n\t\t\t\tdescription: \"Media library — upload, manage, and serve files\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Schema\",\n\t\t\t\tdescription: \"Collection and field management\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Comments\",\n\t\t\t\tdescription: \"Public comments and admin moderation\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Taxonomies\",\n\t\t\t\tdescription: \"Taxonomy definitions and terms\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Menus\",\n\t\t\t\tdescription: \"Navigation menu management\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Sections\",\n\t\t\t\tdescription: \"Reusable content sections\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Widgets\",\n\t\t\t\tdescription: \"Widget areas and widget management\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Settings\",\n\t\t\t\tdescription: \"Site-wide settings\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Search\",\n\t\t\t\tdescription: \"Full-text search and index management\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Redirects\",\n\t\t\t\tdescription: \"Redirect rules and 404 logging\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Users\",\n\t\t\t\tdescription: \"User management and access control\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Transfer\",\n\t\t\t\tdescription: \"Whole-site export and import (site packages)\",\n\t\t\t},\n\t\t],\n\t\tcomponents: {\n\t\t\tschemas: {\n\t\t\t\t// Preserve the previously published component while media reads use richer schemas.\n\t\t\t\tMediaListResponse: mediaListResponseSchema,\n\t\t\t},\n\t\t\tsecuritySchemes: {\n\t\t\t\tsession: {\n\t\t\t\t\ttype: \"apiKey\",\n\t\t\t\t\tin: \"cookie\",\n\t\t\t\t\tname: \"emdash_session\",\n\t\t\t\t\tdescription: \"Session cookie set by the auth endpoints\",\n\t\t\t\t},\n\t\t\t\tbearer: {\n\t\t\t\t\ttype: \"http\",\n\t\t\t\t\tscheme: \"bearer\",\n\t\t\t\t\tdescription: \"OAuth2 or API token\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tsecurity: [{ session: [] }, { bearer: [] }],\n\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- readonly const paths are compatible at runtime\n\t\tpaths: buildAllPaths(maxUploadSize) as unknown as ZodOpenApiPathsObject,\n\t});\n}\n","/**\n * OpenAPI spec endpoint\n *\n * GET /_emdash/api/openapi.json\n *\n * Returns the generated OpenAPI 3.1 document. The spec is generated once\n * and cached for the lifetime of the process.\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { handleError } from \"../../../api/error.js\";\nimport { generateOpenApiDocument } from \"../../../api/openapi/index.js\";\n\nexport const prerender = false;\n\n// Use globalThis with Symbol.for to survive Vite's SSR module duplication\nconst OPENAPI_CACHE_KEY = Symbol.for(\"emdash.openapi.cachedSpec\");\n\nfunction getCachedSpec(): string | null {\n\tconst val = (globalThis as Record<symbol, unknown>)[OPENAPI_CACHE_KEY];\n\treturn typeof val === \"string\" ? val : null;\n}\n\nfunction setCachedSpec(spec: string): void {\n\t(globalThis as Record<symbol, unknown>)[OPENAPI_CACHE_KEY] = spec;\n}\n\nexport const GET: APIRoute = async ({ locals }) => {\n\tconst { emdash } = locals;\n\n\tlet spec = getCachedSpec();\n\tif (!spec && emdash) {\n\t\ttry {\n\t\t\tconst doc = generateOpenApiDocument({ maxUploadSize: emdash.config.maxUploadSize });\n\t\t\tspec = JSON.stringify(doc);\n\t\t\tsetCachedSpec(spec);\n\t\t} catch (error) {\n\t\t\treturn handleError(error, \"Failed to generate OpenAPI document\", \"OPENAPI_ERROR\");\n\t\t}\n\t}\n\n\tif (!spec) {\n\t\ttry {\n\t\t\tspec = JSON.stringify(generateOpenApiDocument());\n\t\t} catch (error) {\n\t\t\treturn handleError(error, \"Failed to generate OpenAPI document\", \"OPENAPI_ERROR\");\n\t\t}\n\t}\n\n\treturn new Response(spec, {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\"Cache-Control\": \"private, no-store\",\n\t\t\t\"Access-Control-Allow-Origin\": \"*\",\n\t\t},\n\t});\n};\n"],"x_google_ignoreList":[0,1],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,gBAAgB,WAAW,OAAO,WAAW,YAAY,WAAW,QAAQ,UAAU;AAI5F,MAAM,kBAAkB,UAAU,YAAY,SAAS;AACtD,KAAI,CAAC,SAAU;CACf,MAAM,iBAAiB,EAAE;AACzB,MAAK,MAAM,CAAC,MAAM,YAAY,OAAO,QAAQ,SAAS,CAAE,gBAAe,QAAQ,WAAW,WAAW,SAAS,CAAC,GAAG,MAAM,KAAK,CAAC;AAC9H,QAAO;;AAKR,MAAM,yBAAyB,WAAW,KAAK,SAAS;CACvD,MAAM,EAAE,QAAQ,UAAU,GAAG,SAAS;CACtC,MAAM,kBAAkB;AACxB,KAAI,aAAa,OAAO,CAAE,iBAAgB,SAAS,IAAI,SAAS,UAAU,QAAQ,CAAC,GAAG,MAAM,SAAS,EAAE;EACtG,IAAI,IAAI;EACR,QAAQ,EAAE,MAAM,aAAa;EAC7B,CAAC;KACG,iBAAgB,SAAS;AAC9B,KAAI,SAAU,iBAAgB,WAAW,eAAe,UAAU,IAAI,UAAU,CAAC,GAAG,MAAM,WAAW,CAAC;AACtG,QAAO;;AAER,MAAM,iBAAiB,SAAS,KAAK,SAAS;CAC7C,MAAM,gBAAgB,EAAE;AACxB,MAAK,MAAM,CAAC,WAAW,oBAAoB,OAAO,QAAQ,QAAQ,CAAE,KAAI,gBAAiB,eAAc,aAAa,sBAAsB,iBAAiB,KAAK,CAAC,GAAG,MAAM,UAAU,CAAC;AACrL,QAAO;;AAKR,MAAM,mBAAmB,SAAS,IAAI,SAAS;CAC9C,MAAM,MAAM,QAAQ,KAAK;AACzB,SAAQ,IAAI,MAAZ;EACC,KAAK,SAAU,QAAO;EACtB,KAAK,OAAQ,QAAO,gBAAgB,IAAI,QAAQ,EAAE,IAAI,KAAK;EAC3D,KAAK;AACJ,OAAI,OAAO,QAAS,QAAO,gBAAgB,IAAI,IAAI,IAAI,KAAK;AAC5D,UAAO,gBAAgB,IAAI,KAAK,IAAI,KAAK;;AAE3C,OAAM,IAAI,MAAM,yCAAyC,QAAQ,KAAK,IAAI,KAAK,MAAM,KAAK,KAAK,MAAM,GAAG;;AAEzG,MAAM,cAAc,SAAS,OAAO;AACnC,KAAI,OAAO,QAAS,QAAO,QAAQ,KAAK,UAAU,KAAK;AACvD,QAAO,QAAQ,KAAK,WAAW,KAAK;;AAKrC,MAAM,iBAAiB,SAAS,YAAY,SAAS;AACpD,KAAI,CAAC,QAAS;AACd,KAAI,aAAa,QAAQ,EAAE;EAC1B,MAAM,YAAY,gBAAgB,SAAS,UAAU,KAAK;EAC1D,MAAM,gBAAgB,EAAE;AACxB,OAAK,MAAM,CAAC,KAAK,cAAc,OAAO,QAAQ,UAAU,KAAK,IAAI,MAAM,CAAE,eAAc,OAAO,WAAW,UAAU,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC;AAC7I,SAAO;;AAER,QAAO;;AAKR,MAAM,eAAe,OAAO,YAAY,SAAS;AAChD,KAAI,CAAC,MAAO;CACZ,MAAM,cAAc,EAAE;AACtB,MAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,MAAM,CAAE,aAAY,QAAQ,WAAW,QAAQ,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC;AAC/G,QAAO;;AAKR,MAAM,0BAA0B,YAAY,YAAY,SAAS;AAChE,KAAI,CAAC,WAAY;CACjB,MAAM,mBAAmB,EAAE;AAC3B,MAAK,MAAM,aAAa,YAAY;AACnC,MAAI,aAAa,UAAU,EAAE;GAC5B,MAAM,cAAc,WAAW,aAAa,WAAW,CAAC,GAAG,MAAM,aAAa,CAAC;AAC/E,oBAAiB,KAAK,YAAY;AAClC;;AAED,mBAAiB,KAAK,UAAU;;AAEjC,QAAO;;AAER,MAAM,oBAAoB,eAAe,YAAY,SAAS;AAC7D,KAAI,CAAC,cAAe;CACpB,MAAM,mBAAmB,EAAE;AAC3B,MAAK,MAAM,CAAC,UAAU,WAAW,OAAO,QAAQ,iBAAiB,EAAE,CAAC,EAAE;EACrE,MAAM,YAAY,gBAAgB,QAAQ,SAAS,KAAK;AACxD,OAAK,MAAM,CAAC,MAAM,cAAc,OAAO,QAAQ,UAAU,KAAK,IAAI,MAAM,EAAE;GACzE,MAAM,cAAc,WAAW,aAAa,WAAW;IACtD,GAAG;IACH;IACA;IACA,EAAE,EAAE,UAAU;IACd,IAAI;IACJ;IACA,EAAE,CAAC;AACJ,oBAAiB,KAAK,YAAY;;;AAGpC,QAAO;;AAKR,MAAM,6BAA6B,QAAQ,IAAI,WAAW,KAAK;AAI/D,MAAM,mBAAmB,WAAW,YAAY,SAAS;AACxD,KAAI,CAAC,UAAW;CAChB,MAAM,kBAAkB,EAAE;AAC1B,MAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,UAAU,EAAE;AACtD,MAAI,0BAA0B,KAAK,EAAE;AACpC,mBAAgB,QAAQ;AACxB;;AAED,kBAAgB,QAAQ,WAAW,YAAY,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC;;AAEvE,QAAO;;AAKR,MAAM,mBAAmB,WAAW,YAAY,SAAS;AACxD,KAAI,CAAC,UAAW;CAChB,MAAM,kBAAkB,EAAE;AAC1B,MAAK,MAAM,CAAC,YAAY,aAAa,OAAO,QAAQ,UAAU,EAAE;AAC/D,MAAI,CAAC,SAAU;AACf,MAAI,0BAA0B,WAAW,EAAE;AAC1C,mBAAgB,cAAc;AAC9B;;AAED,MAAI,UAAU,UAAU;AACvB,mBAAgB,cAAc;AAC9B;;AAED,kBAAgB,cAAc,WAAW,YAAY,UAAU,CAAC,GAAG,MAAM,WAAW,CAAC;;AAEtF,QAAO;;AAKR,MAAM,mBAAmB,WAAW,YAAY,SAAS;CACxD,MAAM,EAAE,YAAY,eAAe,aAAa,WAAW,WAAW,GAAG,SAAS;CAClF,MAAM,kBAAkB;CACxB,MAAM,wBAAwB,uBAAuB,YAAY,YAAY,CAAC,GAAG,MAAM,aAAa,CAAC;CACrG,MAAM,qBAAqB,iBAAiB,eAAe,YAAY,CAAC,GAAG,MAAM,gBAAgB,CAAC;AAClG,KAAI,sBAAsB,sBAAuB,iBAAgB,aAAa,CAAC,GAAG,sBAAsB,EAAE,EAAE,GAAG,yBAAyB,EAAE,CAAC;CAC3I,MAAM,mBAAmB,eAAe,WAAW,eAAe,aAAa,KAAK;AACpF,KAAI,iBAAkB,iBAAgB,cAAc;CACpD,MAAM,iBAAiB,gBAAgB,WAAW,YAAY,CAAC,GAAG,MAAM,YAAY,CAAC;AACrF,KAAI,eAAgB,iBAAgB,YAAY;CAChD,MAAM,iBAAiB,gBAAgB,WAAW,YAAY,CAAC,GAAG,MAAM,YAAY,CAAC;AACrF,KAAI,eAAgB,iBAAgB,YAAY;AAChD,QAAO;;AAER,MAAM,eAAe,OAAO,YAAY,SAAS;AAChD,KAAI,CAAC,MAAO;CACZ,MAAM,cAAc,EAAE;AACtB,MAAK,MAAM,CAAC,YAAY,mBAAmB,OAAO,QAAQ,MAAM,EAAE;AACjE,MAAI,0BAA0B,WAAW,EAAE;AAC1C,eAAY,cAAc;AAC1B;;AAED,cAAY,cAAc,WAAW,YAAY,gBAAgB,CAAC,GAAG,MAAM,WAAW,CAAC;;AAExF,QAAO;;AAKR,MAAM,kBAAkB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;AACD,MAAM,oBAAoB,MAAM,YAAY,gBAAgB,QAAQ,KAAK,IAAI,gBAAgB,QAAQ,QAAQ;AAI7G,MAAM,YAAY,QAAQ;CACzB,MAAM,MAAM,IAAI,UAAU,KAAK;AAC/B,SAAQ,IAAI,MAAZ;EACC,KAAK;AACJ,OAAI,WAAW,OAAO;AACtB,OAAI,WAAW,SAAS;AACxB;EACD,KAAK,SAAS;AACb,OAAI,mBAAmB,OAAO,OAAO,IAAI,kBAAkB,UAAU;AACpE,QAAI,WAAW,UAAU,IAAI,WAAW;AACxC,WAAO,IAAI,WAAW;AACtB,QAAI,WAAW,OAAO;AACtB,QAAI,WAAW,gBAAgB,EAAE,cAAc,IAAI,eAAe;IAClE,MAAM,UAAU,EAAE;AAClB,SAAK,MAAM,CAAC,OAAO,QAAQ,OAAO,QAAQ,IAAI,WAAW,MAAM,EAAE;KAChE,MAAM,MAAM,IAAI;AAChB,SAAI,CAAC,KAAK;AACT,aAAO,IAAI,WAAW;AACtB;;KAED,MAAM,sBAAsB,IAAI,QAAQ,OAAO,MAAM,EAAE,KAAK,aAAa,IAAI;AAC7E,SAAI,CAAC,qBAAqB,KAAM;AAChC,UAAK,MAAM,SAAS,CAAC,GAAG,uBAAuB,EAAE,CAAC,EAAE;AACnD,UAAI,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO,UAAU,UAAW;AAC1F,cAAQ,OAAO,MAAM,IAAI;;;AAG3B,QAAI,WAAW,cAAc,UAAU;;GAExC,MAAM,OAAO,iBAAiB,IAAI,IAAI,UAAU;AAChD,OAAI,OAAO,MAAM,eAAe,WAAW;AAC1C,QAAI,KAAK,YAAY;AACpB,SAAI,WAAW,QAAQ,IAAI,WAAW;AACtC,YAAO,IAAI,WAAW;;AAEvB,WAAO,IAAI,WAAW;;AAEvB;;EAED,KAAK;AACJ,OAAI,WAAW,OAAO;AACtB;EACD,KAAK;AACJ,OAAI,IAAI,OAAO,SAAS,KAAK,EAAE,CAAE;AACjC;EACD,KAAK;AACJ,OAAI,WAAW,MAAM,EAAE;AACvB;;;AAGH,MAAM,YAAY,KAAK,MAAM,oBAAoB;AAChD,KAAI,gBAAgB,WAAW,IAAI,UAAU,KAAK,WAAW,gBAAgB,QAAQ,WAAW;AAC/F,MAAI,gBAAgB,QAAQ,UAAU,KAAK,IAAI,SAAS,OAAQ,OAAM,IAAI,MAAM,0BAA0B,gBAAgB,QAAQ,KAAK,KAAK,MAAM,CAAC,qJAAqJ;AACxS,QAAM,IAAI,MAAM,wBAAwB,gBAAgB,QAAQ,UAAU,KAAK,IAAI,KAAK,QAAQ,gBAAgB,SAAS,KAAK,KAAK,MAAM,CAAC,+EAA+E;;AAE1N,iBAAgB,UAAU,KAAK;AAC/B,KAAI,OAAO,KAAK,IAAI,WAAW,CAAC,OAAQ;CACxC,MAAM,MAAM,IAAI,UAAU,KAAK;CAC/B,MAAM,mBAAmB,KAAK,mBAAmB,IAAI;AACrD,KAAI,qBAAqB,QAAQ,mBAAmB,IAAI,IAAK;AAC7D,SAAQ,IAAI,MAAZ;EACC,KAAK;AACJ,YAAS;IACR,GAAG;IACH,WAAW,IAAI;IACf,EAAE,MAAM,gBAAgB;AACzB;EACD,KAAK,MAAO;EACZ,KAAK,UAAW;EAChB,KAAK;AACJ,OAAI,IAAI,OAAO,UACd;QAAI,CAAC,IAAI,UAAU,KAAK,QAAQ;AAC/B,qBAAgB,UAAU;AAC1B;;;AAGF;EACD,KAAK;AACJ,OAAI,IAAI,OAAO,SAAU;AACzB;EACD,KAAK;AACJ,OAAI,IAAI,OAAO,SAAS,KAAK,EAAE,CAAE,OAAM,IAAI,MAAM,kBAAkB,IAAI,KAAK,KAAK,MAAM,CAAC,oGAAoG;AAC5L;EACD,KAAK,SAAU,KAAI,CAAC,IAAI,UAAU,KAAK,QAAQ;AAC9C,mBAAgB,UAAU;AAC1B;;;AAGF,OAAM,IAAI,MAAM,wBAAwB,IAAI,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,CAAC,+EAA+E;;AAK9J,MAAM,oBAAoB,YAAY,WAAW,KAAK,YAAY;CACjE,MAAM,qCAAqC,IAAI,KAAK;AACpD,KAAI,IAAI,OAAO,QAAS,QAAO;CAC/B,MAAM,wCAAwC,IAAI,KAAK;CACvD,MAAM,wCAAwC,IAAI,KAAK;AACvD,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,WAAW,EAAE;EACtD,MAAM,cAAc,KAAK,UAAU,MAAM;EACzC,MAAM,QAAQ,IAAI,OAAO,IAAI,QAAQ,WAAW,IAAI;EACpD,MAAM,UAAU,YAAY,SAAS,MAAM;EAC3C,MAAM,+BAA+B,IAAI,KAAK;AAC9C,OAAK,MAAM,SAAS,SAAS;GAC5B,MAAM,MAAM,MAAM;AAClB,OAAI,QAAQ,IAAK,cAAa,IAAI,IAAI;;AAEvC,wBAAsB,IAAI,KAAK,YAAY;AAC3C,wBAAsB,IAAI,KAAK,EAAE,cAAc,CAAC;;AAEjD,MAAK,MAAM,CAAC,QAAQ,uBAAuB;AAC1C,MAAI,CAAC,IAAI,SAAS,WAAW,QAAQ,IAAI,IAAI,IAAI,CAAE;AACnD,MAAI,iBAAiB,uBAAuB,uBAAuB,IAAI,UAAU,IAAI,CAAE;EACvF,MAAM,UAAU,UAAU,IAAI,IAAI,IAAI,GAAG,MAAM,IAAI,KAAK,kBAAkB;AAC1E,qBAAmB,IAAI,KAAK,QAAQ;AACpC,aAAW,WAAW,WAAW;AACjC,SAAO,WAAW;;AAEnB,QAAO;;AAER,MAAM,oBAAoB,uBAAuB,uBAAuB,YAAY,KAAK,0BAA0B,IAAI,KAAK,KAAK;AAChI,KAAI,QAAQ,IAAI,IAAI,CAAE,QAAO;CAC7B,MAAM,eAAe,sBAAsB,IAAI,IAAI;AACnD,KAAI,aAAa,SAAS,KAAK,EAAG,QAAO,aAAa;CACtD,MAAM,cAAc,sBAAsB,IAAI,IAAI;CAClD,MAAM,YAAY,WAAW,WAAW,QAAQ,IAAI,IAAI,IAAI;AAC5D,KAAI,aAAa,gBAAgB,KAAK,UAAU,UAAU,EAAE;AAC3D,eAAa,OAAO;AACpB,SAAO;;AAER,SAAQ,IAAI,IAAI;CAChB,MAAM,SAAS,CAAC,GAAG,aAAa,aAAa,CAAC,OAAO,QAAQ,iBAAiB,uBAAuB,uBAAuB,YAAY,KAAK,IAAI,IAAI,QAAQ,CAAC,CAAC;AAC/J,cAAa,OAAO;AACpB,QAAO;;AA0BR,MAAM,2BAA2B;CAChC;CACA;CACA;CACA;CACA;CACA;AACD,MAAM,wBAAwB,eAAe;AAC5C,0BAAyB,SAAS,UAAU;AAC3C,SAAO,WAAW;GACjB;;AAEH,MAAM,iCAAiC,eAAe;AACrD,QAAO,WAAW;AAClB,QAAO,WAAW;AAClB,QAAO,WAAW;;AAEnB,MAAM,iBAAiB,SAAS,QAAQ;CACvC,MAAM,UAAU,IAAI,KAAK,iBAAiB;CAC1C,MAAM,UAAU,EAAE;AAClB,MAAK,MAAM,CAAC,MAAM,EAAE,cAAc,OAAO,QAAQ,QAAQ,CAAE,SAAQ,QAAQ;CAC3E,MAAM,cAAc,UAAU;AAC9B,aAAY,IAAI,OAAO,QAAQ,EAAE,EAAE,IAAI,0BAA0B,CAAC;AAClE,MAAK,MAAM,CAAC,IAAI,EAAE,cAAc,IAAI,SAAS,WAAW,QAAQ,OAAQ,aAAY,IAAI,SAAS,EAAE,IAAI,CAAC;CACxG,MAAM,4BAA4B,IAAI,KAAK;CAC3C,MAAM,WAAW,iBAAiB,IAAI,kBAAkB,SAAS,QAAQ,GAAG,UAAU;CACtF,MAAM,kBAAkB,EAAE;CAC1B,MAAM,aAAaA,aAAe,aAAa;EAC9C,SAAS,SAAS;GACjB,MAAM,OAAO,iBAAiB,IAAI,QAAQ,UAAU;AACpD,OAAI,MAAM,YAAY,MAAM,GAAI,WAAU,IAAI,KAAK,IAAI,KAAK,SAAS;AACrE,OAAI,QAAQ,WAAW,KAAM;GAC7B,MAAM,kBAAkB;IACvB,GAAG;IACH,IAAI,IAAI;IACR;AACD,YAAS,gBAAgB;AACzB,OAAI,OAAO,IAAI,KAAK,aAAa,WAAY,KAAI,KAAK,SAAS,gBAAgB;AAC/E,OAAI,OAAO,MAAM,aAAa,YAAY;AACzC,SAAK,SAAS,gBAAgB;AAC9B,WAAO,QAAQ,WAAW;;AAE3B,OAAI,OAAO,MAAM,aAAa,YAAY,KAAK,aAAa,MAAM;AACjE,WAAO,OAAO,QAAQ,YAAY,KAAK,SAAS;AAChD,WAAO,QAAQ,WAAW;;AAE3B,iCAA8B,QAAQ,WAAW;AACjD,wBAAqB,QAAQ,WAAW;AACxC,YAAS,iBAAiB,IAAI,MAAM,gBAAgB;;EAErD,IAAI,IAAI;EACR,iBAAiB;EACjB,QAAQ,IAAI,KAAK;EACjB,QAAQ,IAAI,KAAK;EACjB,QAAQ,iBAAiB,IAAI,kBAAkB,SAAS,QAAQ,GAAG,KAAK,IAAI;EAC5E,MAAM,OAAO,OAAO,aAAa,gBAAgB,OAAO,0BAA0B,SAAS,GAAG;EAC9F,CAAC;CACF,MAAM,aAAa,WAAW,QAAQ,WAAW,aAAa,EAAE;AAChE,YAAW,QAAQ,aAAa,GAAG,WAAW,YAAY;CAC1D,MAAM,oCAAoC,IAAI,KAAK;AACnD,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,WAAW,EAAE;AACtD,gCAA8B,MAAM;AACpC,MAAI,cAAc,KAAK,IAAI,EAAE;GAC5B,MAAM,UAAU,WAAW,IAAI,SAAS,WAAW,QAAQ;AAC3D,qBAAkB,IAAI,KAAK,IAAI,UAAU,QAAQ,GAAG;AACpD,OAAI,YAAY,KAAK;AACpB,eAAW,WAAW;AACtB,WAAO,WAAW;;;;AAIrB,MAAK,MAAM,CAAC,QAAQ,IAAI,SAAS,WAAW,QAAQ,QAAQ;EAC3D,MAAM,kBAAkB,WAAW,QAAQ;AAC3C,MAAI,CAAC,gBAAiB;AACtB,gCAA8B,gBAAgB;;CAE/C,MAAM,aAAa,EAAE;CACrB,MAAM,mBAAmB,KAAK,MAAM,KAAK,UAAU,WAAW,CAAC,QAAQ,gEAAgE,GAAG,UAAU;EACnJ,MAAM,UAAU,kBAAkB,IAAI,MAAM;AAC5C,MAAI,QAAS,QAAO;AACpB,MAAI,IAAI,SAAS,WAAW,QAAQ,OAAO,IAAI,MAAM,CAAE,YAAW,SAAS;AAC3E,SAAO,IAAI,UAAU,MAAM;GAC1B,CAAC;CACH,MAAM,mBAAmB,iBAAiB,QAAQ,WAAW,aAAa,EAAE;AAC5E,kBAAiB,QAAQ,aAAa,GAAG,WAAW,kBAAkB;AACtE,MAAK,MAAM,CAAC,QAAQ,IAAI,SAAS,WAAW,QAAQ,QAAQ;EAC3D,MAAM,kBAAkB,iBAAiB,QAAQ;AACjD,MAAI,CAAC,gBAAiB;AACtB,MAAI,WAAW,MAAM;AACpB,OAAI,iBAAiB,KAAM,OAAM,IAAI,MAAM,cAAc,IAAI,wDAAwD;AACrH,oBAAiB,OAAO;;;CAG1B,MAAM,qBAAqB,iBAAiB,kBAAkB,WAAW,KAAK,QAAQ;AACtF,KAAI,CAAC,mBAAmB,MAAM;EAC7B,MAAM,gBAAgB,iBAAiB,QAAQ,wBAAwB;AACvE,SAAO,iBAAiB,QAAQ;AAChC,SAAO,iBAAiB,QAAQ;AAChC,SAAO;GACN,SAAS;GACT,YAAY;GACZ,QAAQ,iBAAiB;GACzB;;CAEF,MAAM,oBAAoB,KAAK,MAAM,KAAK,UAAU,iBAAiB,CAAC,QAAQ,IAAI,OAAO,IAAI,QAAQ,WAAW,IAAI,GAAG,GAAG,UAAU;EACnI,MAAM,cAAc,mBAAmB,IAAI,MAAM;AACjD,MAAI,YAAa,QAAO,IAAI,UAAU,YAAY;AAClD,SAAO,IAAI,UAAU,MAAM;GAC1B,CAAC;CACH,MAAM,iBAAiB,kBAAkB,QAAQ,wBAAwB;CACzE,MAAM,oBAAoB,kBAAkB,QAAQ,WAAW,aAAa,EAAE;AAC9E,QAAO,kBAAkB,QAAQ;AACjC,QAAO,kBAAkB,QAAQ;AACjC,QAAO;EACN,SAAS;EACT,YAAY;EACZ,QAAQ,kBAAkB;EAC1B;;AAKF,MAAM,kBAAkB,eAAe;CACtC,MAAM,aAAa;EAClB,YAAY;GACX,SAAS;IACR,oBAAoB;IACpB,uBAAuB,IAAI,KAAK;IAChC,wBAAwB,IAAI,KAAK;IACjC,qBAAqB,IAAI,KAAK;IAC9B,wBAAwB,IAAI,KAAK;IACjC;GACD,SAAS;IACR,qBAAqB,IAAI,KAAK;IAC9B,sBAAsB,IAAI,SAAS;IACnC;GACD,eAAe;IACd,qBAAqB,IAAI,KAAK;IAC9B,sBAAsB,IAAI,SAAS;IACnC;GACD,WAAW;IACV,qBAAqB,IAAI,KAAK;IAC9B,sBAAsB,IAAI,SAAS;IACnC;GACD,YAAY;IACX,qBAAqB,IAAI,KAAK;IAC9B,sBAAsB,IAAI,SAAS;IACnC;GACD,WAAW;IACV,qBAAqB,IAAI,KAAK;IAC9B,sBAAsB,IAAI,SAAS;IACnC;GACD,WAAW;IACV,qBAAqB,IAAI,KAAK;IAC9B,sBAAsB,IAAI,SAAS;IACnC;GACD,iBAAiB;IAChB,qBAAqB,IAAI,KAAK;IAC9B,sBAAsB,IAAI,SAAS;IACnC;GACD,OAAO;IACN,qBAAqB,IAAI,KAAK;IAC9B,sBAAsB,IAAI,SAAS;IACnC;GACD,UAAU;IACT,qBAAqB,IAAI,KAAK;IAC9B,sBAAsB,IAAI,SAAS;IACnC;GACD;EACD,YAAY,QAAQ,MAAM,SAAS;GAClC,MAAM,eAAe,EAAE;AACvB,cAAW,WAAW,QAAQ,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE;IAC5D;IACA,SAAS;IACT,QAAQ;KACP;KACA,GAAG,MAAM;KACT;IACD,CAAC;AACF,UAAO;;EAER,eAAe,WAAW,MAAM,SAAS;GACxC,MAAM,gBAAgB,WAAW,WAAW,WAAW,KAAK,IAAI,UAAU;AAC1E,OAAI,cAAe,QAAO;GAC1B,MAAM,OAAO,eAAe,IAAI,UAAU;GAC1C,MAAM,OAAO,MAAM,UAAU,QAAQ,MAAM,OAAO;GAClD,MAAM,aAAa,MAAM,UAAU,MAAM,MAAM,OAAO;AACtD,OAAI,MAAM,UAAU,QAAQ,MAAM,OAAO,QAAQ,MAAM,UAAU,MAAM,MAAM,OAAO,GAAI,OAAM,IAAI,MAAM,gBAAgB,KAAK,KAAK,MAAM,CAAC,+GAA+G;AACxP,OAAI,CAAC,QAAQ,CAAC,WAAY,OAAM,IAAI,MAAM,gBAAgB,KAAK,KAAK,MAAM,CAAC,4DAA4D;GACvI,MAAM,eAAe,WAAW,UAAU,WAAW;IACpD,GAAG;IACH;IACA;IACA;IACA,EAAE;IACF,IAAI;IACJ,QAAQ;KACP,MAAM;KACN,UAAU;MACT,IAAI;MACJ;MACA;KACD;IACD,CAAC;GACF,MAAM,EAAE,IAAI,QAAQ,UAAU,GAAG,SAAS,MAAM,SAAS,EAAE;GAC3D,MAAM,kBAAkB;IACvB,IAAI;IACJ;IACA,QAAQ;IACR,GAAG;IACH;GACD,MAAM,iBAAiB,eAAe,UAAU,YAAY;IAC3D,GAAG;IACH;IACA;IACA;IACA,CAAC;AACF,OAAI,eAAgB,iBAAgB,WAAW;AAC/C,OAAI,WAAW,WAAW,QAAQ,CAAE,iBAAgB,WAAW;AAC/D,OAAI,CAAC,gBAAgB,eAAe,MAAM,YAAa,iBAAgB,cAAc,KAAK;GAC1F,MAAM,KAAK,UAAU,MAAM;AAC3B,OAAI,IAAI;AACP,QAAI,WAAW,WAAW,WAAW,IAAI,IAAI,GAAG,CAAE,OAAM,IAAI,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,MAAM,CAAC,wBAAwB;IAChI,MAAM,MAAM,EAAE,MAAM,2BAA2B,MAAM;AACrD,eAAW,WAAW,WAAW,KAAK,IAAI,WAAW,IAAI;AACzD,eAAW,WAAW,WAAW,IAAI,IAAI,IAAI,gBAAgB;AAC7D,QAAI,MAAM,SAAU,QAAO;AAC3B,WAAO;;AAER,OAAI,MAAM,UAAU,QAAQ,MAAM,UAAU,GAAI,QAAO;AACvD,cAAW,WAAW,WAAW,KAAK,IAAI,WAAW,gBAAgB;AACrE,UAAO;;EAER,YAAY,QAAQ,MAAM,SAAS;GAClC,MAAM,aAAa,WAAW,WAAW,QAAQ,KAAK,IAAI,OAAO;AACjE,OAAI,WAAY,QAAO;GACvB,MAAM,OAAO,eAAe,IAAI,OAAO;GACvC,MAAM,EAAE,IAAI,QAAQ,GAAG,SAAS,MAAM,UAAU,EAAE;GAClD,MAAM,KAAK,UAAU,MAAM;GAC3B,MAAM,eAAe;AACrB,OAAI,WAAW,QAAQ,SAAS,CAAE,cAAa,WAAW;AAC1D,OAAI,CAAC,aAAa,eAAe,MAAM,YAAa,cAAa,cAAc,KAAK;AACpF,gBAAa,SAAS,WAAW,UAAU,QAAQ,CAAC,GAAG,MAAM,SAAS,EAAE;IACvE,IAAI;IACJ,QAAQ,EAAE,MAAM,UAAU;IAC1B,CAAC;AACF,OAAI,IAAI;AACP,QAAI,WAAW,WAAW,QAAQ,IAAI,IAAI,GAAG,CAAE,OAAM,IAAI,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,MAAM,CAAC,wBAAwB;IAC7H,MAAM,MAAM,EAAE,MAAM,wBAAwB,MAAM;AAClD,eAAW,WAAW,QAAQ,IAAI,IAAI,IAAI,aAAa;AACvD,eAAW,WAAW,QAAQ,KAAK,IAAI,QAAQ,IAAI;AACnD,QAAI,MAAM,SAAU,QAAO;AAC3B,WAAO;;AAER,cAAW,WAAW,QAAQ,KAAK,IAAI,QAAQ,aAAa;AAC5D,UAAO;;EAER,iBAAiB,aAAa,MAAM,SAAS;GAC5C,MAAM,kBAAkB,WAAW,WAAW,cAAc,KAAK,IAAI,YAAY;AACjF,OAAI,gBAAiB,QAAO;GAC5B,MAAM,EAAE,SAAS,IAAI,QAAQ,GAAG,SAAS;GACzC,MAAM,oBAAoB;IACzB,GAAG;IACH,SAAS,cAAc,SAAS;KAC/B,UAAU;KACV,IAAI;KACJ,EAAE,CAAC,GAAG,MAAM,UAAU,CAAC;IACxB;GACD,MAAM,KAAK,UAAU,MAAM;AAC3B,OAAI,IAAI;AACP,QAAI,WAAW,WAAW,cAAc,IAAI,IAAI,GAAG,CAAE,OAAM,IAAI,MAAM,gBAAgB,GAAG,OAAO,KAAK,KAAK,MAAM,CAAC,wBAAwB;IACxI,MAAM,MAAM,EAAE,MAAM,8BAA8B,MAAM;AACxD,eAAW,WAAW,cAAc,IAAI,IAAI,IAAI,kBAAkB;AAClE,eAAW,WAAW,cAAc,KAAK,IAAI,aAAa,IAAI;AAC9D,QAAI,MAAM,SAAU,QAAO;AAC3B,WAAO;;AAER,cAAW,WAAW,cAAc,KAAK,IAAI,aAAa,kBAAkB;AAC5E,UAAO;;EAER,cAAc,UAAU,MAAM,SAAS;GACtC,MAAM,eAAe,WAAW,WAAW,UAAU,KAAK,IAAI,SAAS;AACvE,OAAI,aAAc,QAAO;GACzB,MAAM,iBAAiB,EAAE;GACzB,MAAM,EAAE,IAAI,QAAQ,GAAG,SAAS;GAChC,MAAM,KAAK,UAAU,MAAM;AAC3B,QAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,EAAE;AAChD,QAAI,0BAA0B,IAAI,EAAE;AACnC,oBAAe,OAAO;AACtB;;AAED,QAAI,QAAQ,SAAS,QAAQ,SAAS,QAAQ,UAAU,QAAQ,YAAY,QAAQ,aAAa,QAAQ,UAAU,QAAQ,WAAW,QAAQ,SAAS;AACtJ,oBAAe,OAAO,gBAAgB,OAAO,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC;AACxE;;AAED,QAAI,QAAQ,cAAc;AACzB,oBAAe,OAAO,uBAAuB,OAAO,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC;AAC/E;;AAED,mBAAe,OAAO;;AAEvB,OAAI,IAAI;AACP,QAAI,WAAW,WAAW,UAAU,IAAI,IAAI,GAAG,CAAE,OAAM,IAAI,MAAM,aAAa,GAAG,OAAO,KAAK,KAAK,MAAM,CAAC,wBAAwB;IACjI,MAAM,MAAM,EAAE,MAAM,0BAA0B,MAAM;AACpD,eAAW,WAAW,UAAU,IAAI,IAAI,IAAI,eAAe;AAC3D,eAAW,WAAW,UAAU,KAAK,IAAI,UAAU,IAAI;AACvD,QAAI,MAAM,SAAU,QAAO;AAC3B,WAAO;;AAER,cAAW,WAAW,UAAU,KAAK,IAAI,UAAU,eAAe;AAClE,UAAO;;EAER,cAAc,UAAU,MAAM,SAAS;GACtC,MAAM,eAAe,WAAW,WAAW,UAAU,KAAK,IAAI,SAAS;AACvE,OAAI,aAAc,QAAO;GACzB,MAAM,EAAE,SAAS,SAAS,OAAO,IAAI,QAAQ,GAAG,SAAS;GACzD,MAAM,iBAAiB;GACvB,MAAM,eAAe,cAAc,SAAS,YAAY,CAAC,GAAG,MAAM,UAAU,CAAC;AAC7E,OAAI,aAAc,gBAAe,UAAU;AAC3C,OAAI,QAAS,gBAAe,UAAU,cAAc,SAAS;IAC5D,UAAU;IACV,IAAI;IACJ,EAAE,CAAC,GAAG,MAAM,UAAU,CAAC;AACxB,OAAI,MAAO,gBAAe,QAAQ,YAAY,OAAO,YAAY,CAAC,GAAG,MAAM,QAAQ,CAAC;GACpF,MAAM,KAAK,UAAU,MAAM;AAC3B,OAAI,IAAI;AACP,QAAI,WAAW,WAAW,UAAU,IAAI,IAAI,GAAG,CAAE,OAAM,IAAI,MAAM,aAAa,GAAG,OAAO,KAAK,KAAK,MAAM,CAAC,wBAAwB;IACjI,MAAM,MAAM,EAAE,MAAM,0BAA0B,MAAM;AACpD,eAAW,WAAW,UAAU,IAAI,IAAI,IAAI,eAAe;AAC3D,eAAW,WAAW,UAAU,KAAK,IAAI,UAAU,IAAI;AACvD,QAAI,MAAM,SAAU,QAAO;AAC3B,WAAO;;AAER,cAAW,WAAW,UAAU,KAAK,IAAI,UAAU,eAAe;AAClE,UAAO;;EAER,cAAc,UAAU,MAAM,SAAS;GACtC,MAAM,eAAe,WAAW,WAAW,UAAU,KAAK,IAAI,SAAS;AACvE,OAAI,aAAc,QAAO;GACzB,MAAM,EAAE,IAAI,QAAQ,GAAG,SAAS;GAChC,MAAM,iBAAiB,EAAE;AACzB,QAAK,MAAM,CAAC,MAAM,aAAa,OAAO,QAAQ,KAAK,EAAE;AACpD,QAAI,0BAA0B,KAAK,EAAE;AACpC,oBAAe,QAAQ;AACvB;;AAED,mBAAe,QAAQ,WAAW,YAAY,UAAU,CAAC,GAAG,MAAM,KAAK,CAAC;;GAEzE,MAAM,KAAK,UAAU,MAAM;AAC3B,OAAI,IAAI;AACP,QAAI,WAAW,WAAW,UAAU,IAAI,IAAI,GAAG,CAAE,OAAM,IAAI,MAAM,aAAa,GAAG,OAAO,KAAK,KAAK,MAAM,CAAC,wBAAwB;IACjI,MAAM,MAAM,EAAE,MAAM,0BAA0B,MAAM;AACpD,eAAW,WAAW,UAAU,IAAI,IAAI,IAAI,eAAe;AAC3D,eAAW,WAAW,UAAU,KAAK,IAAI,UAAU,IAAI;AACvD,QAAI,MAAM,SAAU,QAAO;AAC3B,WAAO;;AAER,cAAW,WAAW,UAAU,KAAK,IAAI,UAAU,eAAe;AAClE,UAAO;;EAER,oBAAoB,gBAAgB,MAAM,SAAS;GAClD,MAAM,qBAAqB,WAAW,WAAW,gBAAgB,KAAK,IAAI,eAAe;AACzF,OAAI,mBAAoB,QAAO;GAC/B,MAAM,EAAE,IAAI,QAAQ,GAAG,SAAS;GAChC,MAAM,uBAAuB;GAC7B,MAAM,KAAK,UAAU,MAAM;AAC3B,OAAI,IAAI;AACP,QAAI,WAAW,WAAW,gBAAgB,IAAI,IAAI,GAAG,CAAE,OAAM,IAAI,MAAM,mBAAmB,GAAG,OAAO,KAAK,KAAK,MAAM,CAAC,wBAAwB;IAC7I,MAAM,MAAM,EAAE,MAAM,gCAAgC,MAAM;AAC1D,eAAW,WAAW,gBAAgB,IAAI,IAAI,IAAI,qBAAqB;AACvE,eAAW,WAAW,gBAAgB,KAAK,IAAI,gBAAgB,IAAI;AACnE,QAAI,MAAM,SAAU,QAAO;AAC3B,WAAO;;AAER,cAAW,WAAW,gBAAgB,KAAK,IAAI,gBAAgB,qBAAqB;AACpF,UAAO;;EAER,UAAU,MAAM,MAAM,SAAS;GAC9B,MAAM,WAAW,WAAW,WAAW,MAAM,KAAK,IAAI,KAAK;AAC3D,OAAI,SAAU,QAAO;GACrB,MAAM,EAAE,IAAI,QAAQ,GAAG,SAAS;GAChC,MAAM,aAAa;GACnB,MAAM,KAAK,UAAU,MAAM;AAC3B,OAAI,IAAI;AACP,QAAI,WAAW,WAAW,MAAM,IAAI,IAAI,GAAG,CAAE,OAAM,IAAI,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,MAAM,CAAC,wBAAwB;IACzH,MAAM,MAAM,EAAE,MAAM,sBAAsB,MAAM;AAChD,eAAW,WAAW,MAAM,IAAI,IAAI,IAAI,WAAW;AACnD,eAAW,WAAW,MAAM,KAAK,IAAI,MAAM,IAAI;AAC/C,QAAI,MAAM,SAAU,QAAO;AAC3B,WAAO;;AAER,cAAW,WAAW,MAAM,KAAK,IAAI,MAAM,WAAW;AACtD,UAAO;;EAER,aAAa,SAAS,MAAM,SAAS;GACpC,MAAM,cAAc,WAAW,WAAW,SAAS,KAAK,IAAI,QAAQ;AACpE,OAAI,YAAa,QAAO;GACxB,MAAM,EAAE,IAAI,QAAQ,GAAG,SAAS;GAChC,MAAM,gBAAgB;GACtB,MAAM,KAAK,UAAU,MAAM;AAC3B,OAAI,IAAI;AACP,QAAI,WAAW,WAAW,SAAS,IAAI,IAAI,GAAG,CAAE,OAAM,IAAI,MAAM,YAAY,GAAG,OAAO,KAAK,KAAK,MAAM,CAAC,wBAAwB;IAC/H,MAAM,MAAM,EAAE,MAAM,yBAAyB,MAAM;AACnD,eAAW,WAAW,SAAS,IAAI,IAAI,IAAI,cAAc;AACzD,eAAW,WAAW,SAAS,KAAK,IAAI,SAAS,IAAI;AACrD,QAAI,MAAM,SAAU,QAAO;AAC3B,WAAO;;AAER,cAAW,WAAW,SAAS,KAAK,IAAI,SAAS,cAAc;AAC/D,UAAO;;EAER;AACD,iBAAgB,YAAY,SAAS,WAAW;AAChD,oBAAmB,YAAY,YAAY,WAAW;AACtD,iBAAgB,YAAY,SAAS,WAAW;AAChD,mBAAkB,YAAY,WAAW,WAAW;AACpD,mBAAkB,YAAY,WAAW,WAAW;AACpD,uBAAsB,YAAY,eAAe,WAAW;AAC5D,mBAAkB,YAAY,WAAW,WAAW;AACpD,yBAAwB,YAAY,iBAAiB,WAAW;AAChE,eAAc,YAAY,OAAO,WAAW;AAC5C,kBAAiB,YAAY,UAAU,WAAW;AAClD,QAAO;;AAER,MAAM,mBAAmB,SAAS,eAAe;AAChD,KAAI,CAAC,QAAS;AACd,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,QAAQ,EAAE;AACpD,MAAI,aAAa,OAAO,EAAE;GACzB,MAAM,KAAK,eAAe,IAAI,OAAO,EAAE,MAAM;AAC7C,cAAW,WAAW,QAAQ,OAAO,IAAI,IAAI;IAC5C,OAAO,EAAE,cAAc,EAAE,EAAE;IAC3B,QAAQ,EAAE,cAAc,EAAE,EAAE;IAC5B,SAAS;IACT,CAAC;AACF;;AAED,aAAW,WAAW,QAAQ,IAAI,IAAI,KAAK,OAAO;;;AAGpD,MAAM,sBAAsB,YAAY,eAAe;AACtD,KAAI,CAAC,WAAY;AACjB,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,WAAW,EAAE;AACvD,MAAI,aAAa,OAAO,EAAE;GACzB,MAAM,OAAO;IACZ;IACA;IACA;IACA;AACD,cAAW,aAAa,QAAQ,MAAM,EAAE,UAAU,KAAK,CAAC;AACxD;;AAED,aAAW,WAAW,WAAW,IAAI,IAAI,KAAK,OAAO;;;AAGvD,MAAM,mBAAmB,SAAS,eAAe;AAChD,KAAI,CAAC,QAAS;AACd,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,QAAQ,EAAE;AACpD,MAAI,aAAa,OAAO,EAAE;GACzB,MAAM,OAAO;IACZ;IACA;IACA;IACA;AACD,cAAW,UAAU,QAAQ,MAAM,EAAE,UAAU,KAAK,CAAC;AACrD;;AAED,aAAW,WAAW,QAAQ,IAAI,IAAI,KAAK,OAAO;;;AAGpD,MAAM,qBAAqB,WAAW,eAAe;AACpD,KAAI,CAAC,UAAW;AAChB,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,UAAU,EAAE;EACtD,MAAM,iBAAiB,WAAW,YAAY,QAAQ;GACrD;GACA;GACA;GACA,EAAE,EAAE,UAAU,KAAK,CAAC;AACrB,aAAW,WAAW,UAAU,IAAI,IAAI,KAAK,eAAe;AAC5D,aAAW,WAAW,UAAU,KAAK,IAAI,QAAQ,eAAe;;;AAGlE,MAAM,yBAAyB,eAAe,eAAe;AAC5D,KAAI,CAAC,cAAe;AACpB,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,cAAc,EAAE;AAC1D,MAAI,aAAa,OAAO,EAAE;AACzB,cAAW,eAAe,QAAQ;IACjC;IACA;IACA;IACA,EAAE,EAAE,UAAU,KAAK,CAAC;AACrB;;AAED,aAAW,WAAW,cAAc,IAAI,IAAI,KAAK,OAAO;;;AAG1D,MAAM,qBAAqB,WAAW,eAAe;AACpD,KAAI,CAAC,UAAW;AAChB,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,UAAU,CAAE,YAAW,YAAY,QAAQ;EACrF;EACA;EACA;EACA,EAAE,EAAE,UAAU,KAAK,CAAC;;AAEtB,MAAM,qBAAqB,WAAW,eAAe;AACpD,KAAI,CAAC,UAAW;AAChB,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,UAAU,CAAE,YAAW,YAAY,QAAQ;EACrF;EACA;EACA;EACA,EAAE,EAAE,UAAU,KAAK,CAAC;;AAEtB,MAAM,2BAA2B,iBAAiB,eAAe;AAChE,KAAI,CAAC,gBAAiB;AACtB,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,gBAAgB,CAAE,YAAW,kBAAkB,QAAQ;EACjG;EACA;EACA;EACA,EAAE,EAAE,UAAU,KAAK,CAAC;;AAEtB,MAAM,iBAAiB,OAAO,eAAe;AAC5C,KAAI,CAAC,MAAO;AACZ,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,MAAM,CAAE,YAAW,QAAQ,QAAQ;EAC7E;EACA;EACA;EACA,EAAE,EAAE,UAAU,KAAK,CAAC;;AAEtB,MAAM,oBAAoB,UAAU,eAAe;AAClD,KAAI,CAAC,SAAU;AACf,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,SAAS,CAAE,YAAW,WAAW,SAAS,IAAI,IAAI,KAAK,OAAO;;AAE1G,MAAM,mBAAmB,QAAQ;CAChC,MAAM,EAAE,SAAS,YAAY,WAAW,cAAc,OAAO,YAAY,IAAI,SAAS,WAAW,QAAQ,IAAI,IAAI,EAAE,IAAI;AACvH,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,WAAW,CAAE,KAAI,SAAS,WAAW,QAAQ,IAAI,IAAI,KAAK,OAAO;AAC5G,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,QAAQ,EAAE;EACpD,MAAM,WAAW,IAAI,SAAS,WAAW,QAAQ,IAAI,IAAI,IAAI,IAAI;AACjE,MAAI,SAAU,QAAO,OAAO,SAAS,cAAc,OAAO;;AAE3D,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,EAAE;EAClD,MAAM,eAAe,IAAI,SAAS,WAAW,QAAQ,OAAO,IAAI,IAAI;AACpE,MAAI,CAAC,aAAc;AACnB,MAAI,WAAW,KAAM,cAAa,IAAI,IAAI,OAAO;AACjD,SAAO,OAAO,aAAa,IAAI,IAAI,cAAc,MAAM;;;AAGzD,MAAM,uBAAuB,eAAe;AAC3C,MAAK,MAAM,CAAC,KAAK,UAAU,WAAW,WAAW,QAAQ,OAAQ,KAAI,CAAC,MAAM,MAAM,MAAM;EACvF,MAAM,SAAS,MAAM,eAAe,IAAI,MAAM,QAAQ,EAAE,YAAY,UAAU;AAC9E,aAAW,WAAW,QAAQ,IAAI,IAAI,KAAK,OAAO;;;AAGpD,MAAM,oBAAoB,YAAY,MAAM,mBAAmB;AAC9D,iBAAgB;EACf,UAAU;EACV,IAAI;EACJ;EACA;EACA,CAAC;AACF,iBAAgB;EACf,UAAU;EACV,IAAI;EACJ;EACA;EACA,CAAC;AACF,qBAAoB,WAAW;CAC/B,MAAM,aAAa,EAAE;AACrB,KAAI,WAAW,WAAW,QAAQ,IAAI,OAAO,EAAG,YAAW,UAAU,OAAO,YAAY,WAAW,WAAW,QAAQ,IAAI;AAC1H,KAAI,WAAW,WAAW,QAAQ,IAAI,OAAO,EAAG,YAAW,UAAU,OAAO,YAAY,WAAW,WAAW,QAAQ,IAAI;AAC1H,KAAI,WAAW,WAAW,cAAc,IAAI,OAAO,EAAG,YAAW,gBAAgB,OAAO,YAAY,WAAW,WAAW,cAAc,IAAI;AAC5I,KAAI,WAAW,WAAW,UAAU,IAAI,OAAO,EAAG,YAAW,YAAY,OAAO,YAAY,WAAW,WAAW,UAAU,IAAI;AAChI,KAAI,WAAW,WAAW,WAAW,IAAI,OAAO,EAAG,YAAW,aAAa,OAAO,YAAY,WAAW,WAAW,WAAW,IAAI;AACnI,KAAI,WAAW,WAAW,UAAU,IAAI,OAAO,EAAG,YAAW,YAAY,OAAO,YAAY,WAAW,WAAW,UAAU,IAAI;AAChI,KAAI,WAAW,WAAW,UAAU,IAAI,OAAO,EAAG,YAAW,YAAY,OAAO,YAAY,WAAW,WAAW,UAAU,IAAI;AAChI,KAAI,WAAW,WAAW,gBAAgB,IAAI,OAAO,EAAG,YAAW,kBAAkB,OAAO,YAAY,WAAW,WAAW,gBAAgB,IAAI;AAClJ,KAAI,WAAW,WAAW,MAAM,IAAI,OAAO,EAAG,YAAW,QAAQ,OAAO,YAAY,WAAW,WAAW,MAAM,IAAI;AACpH,KAAI,WAAW,WAAW,SAAS,IAAI,OAAO,EAAG,YAAW,WAAW,OAAO,YAAY,WAAW,WAAW,SAAS,IAAI;AAC7H,QAAO;;;;;AC35BR,MAAM,kBAAkB,kBAAkB,OAAO,EAAE,KAAK;CACvD,MAAM,EAAE,OAAO,UAAU,YAAY,GAAG,SAAS;CACjD,MAAM,WAAW;CACjB,MAAM,WAAW,eAAe,WAAW;CAC3C,MAAM,eAAe,YAAY,OAAO,UAAU,CAAC,QAAQ,CAAC;AAC5D,KAAI,aAAc,UAAS,QAAQ;CACnC,MAAM,kBAAkB,YAAY,UAAU,UAAU,CAAC,WAAW,CAAC;AACrE,KAAI,gBAAiB,UAAS,WAAW;CACzC,MAAM,oBAAoB,iBAAiB,UAAU,MAAM,iBAAiB,QAAQ;AACpF,KAAI,OAAO,KAAK,kBAAkB,CAAC,SAAS,EAAG,UAAS,aAAa;AACrE,QAAO;;;;;;;;;;;;;AC2MR,MAAM,eAAe;AACrB,MAAM,oBAAoB;;AAG1B,SAAS,eACR,GAAG,OAIF;CACD,MAAM,YAGF,EAAE;CACN,MAAM,WAAmC;EACxC,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL;AACD,MAAK,MAAM,QAAQ,MAClB,WAAU,OAAO,KAAK,IAAI;EACzB,aAAa,SAAS,SAAS,SAAS;EACxC,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,EAAE;EACvD;AAEF,QAAO;;;AAIR,MAAM,aAAa,eAAe,KAAK,IAAI;AAE3C,MAAM,kBAAkB,EAAE,OAAO;CAChC,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;CAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,sBAAsB,CAAC;CAC1D,CAAC;;AAGF,MAAM,wBAAwB,EAC7B,OAAO;CACN,aAAa;CACb,SAAS,GACP,eAAe,EAAE,QAAQ,6BAA6B,EACvD;CACD,EACD;AAMD,MAAM,eAAe;CACpB,qCAAqC;EACpC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aAAa;GACb,MAAM,CAAC,UAAU;GACjB,eAAe;IACd,MAAM,EAAE,OAAO,EACd,YAAY,EAAE,QAAQ,CAAC,KAAK;KAAE,aAAa;KAAmB,UAAU,CAAC,QAAQ;KAAE,CAAC,EACpF,CAAC;IACF,OAAO;IACP;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,0BAA0B,EAClD,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,IAAI;IACtB;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,UAAU;GACjB,eAAe,EACd,MAAM,EAAE,OAAO,EACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC,EAC/D,CAAC,EACF;GACD,aAAa,EACZ,SAAS,GAAG,eAAe,EAAE,QAAQ,mBAAmB,EAAE,EAC1D;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,sBAAsB,EAC9C,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CAED,0CAA0C;EACzC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,UAAU;GACjB,eAAe;IACd,MAAM,EAAE,OAAO;KACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;KAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,sBAAsB,CAAC;KAC1D,CAAC;IACF,OAAO,EAAE,OAAO,EACf,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC,EACpE,CAAC;IACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,sBAAsB,EAC9C,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,UAAU;GACjB,eAAe;IACd,MAAM,EAAE,OAAO;KACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;KAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,sBAAsB,CAAC;KAC1D,CAAC;IACF,OAAO,EAAE,OAAO,EACf,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC,EACpE,CAAC;IACF;GACD,aAAa,EACZ,SAAS,GAAG,eAAe,EAAE,QAAQ,mBAAmB,EAAE,EAC1D;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,sBAAsB,EAC9C,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,KAAK,KAAK,IAAI;IAC1C;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,UAAU;GACjB,eAAe;IACd,MAAM;IACN,OAAO,EAAE,OAAO,EACf,cAAc,EAAE,KAAK,CAAC,QAAQ,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,EACvD,aACC,2HACD,CAAC,EACF,CAAC;IACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,qBAAqB,EAC7C,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B,GAAG;IACH;GACD;EACD;CAED,kDAAkD,EACjD,MAAM;EACL,aAAa;EACb,SAAS;EACT,aACC;EACD,MAAM,CAAC,UAAU;EACjB,eAAe,EACd,MAAM,EAAE,OAAO;GACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;GAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,sBAAsB,CAAC;GAC1D,CAAC,EACF;EACD,aAAa,EACZ,SAAS,GAAG,eAAe,EAAE,QAAQ,oBAAoB,EAAE,EAC3D;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,sBAAsB,EAC9C,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC,GAAG;GACH;EACD,EACD;CAED,oDAAoD,EACnD,MAAM;EACL,aAAa;EACb,SAAS;EACT,aAAa;EACb,MAAM,CAAC,UAAU;EACjB,eAAe,EACd,MAAM,EAAE,OAAO;GACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;GAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,sBAAsB,CAAC;GAC1D,CAAC,EACF;EACD,aAAa,EACZ,SAAS,GAAG,eAAe,EAAE,QAAQ,8BAA8B,EAAE,EACrE;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,sBAAsB,EAC9C,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC,GAAG;GACH;EACD,EACD;CAED,mDAAmD;EAClD,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,UAAU;GACjB,eAAe,EACd,MAAM,EAAE,OAAO;IACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;IAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,sBAAsB,CAAC;IAC1D,CAAC,EACF;GACD,aAAa,EACZ,SAAS,GAAG,eAAe,EAAE,QAAQ,qBAAqB,EAAE,EAC5D;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,sBAAsB,EAC9C,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC,GAAG;IACH;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,UAAU;GACjB,eAAe;IACd,MAAM;IACN,OAAO,EAAE,OAAO,EACf,cAAc,EAAE,KAAK,CAAC,QAAQ,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,EACvD,aACC,gIACD,CAAC,EACF,CAAC;IACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,sBAAsB,EAC9C,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B,GAAG;IACH;GACD;EACD;CAED,oDAAoD,EACnD,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,UAAU;EACjB,eAAe,EACd,MAAM,EAAE,OAAO;GACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;GAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,sBAAsB,CAAC;GAC1D,CAAC,EACF;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC,CAAC,EAC9D,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,IAAI;GAC3B;EACD,EACD;CAED,kDAAkD,EACjD,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,UAAU;EACjB,eAAe,EACd,MAAM,EAAE,OAAO;GACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;GAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,cAAc,CAAC;GAClD,CAAC,EACF;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,6BAA6B,EACrD,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CAED,oDAAoD,EACnD,QAAQ;EACP,aAAa;EACb,SAAS;EACT,aAAa;EACb,MAAM,CAAC,UAAU;EACjB,eAAe,EACd,MAAM,EAAE,OAAO;GACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;GAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,cAAc,CAAC;GAClD,CAAC,EACF;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,qBAAqB,EAC7C,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,IAAI;GAC3B;EACD,EACD;CAED,kDAAkD,EACjD,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,UAAU;EACjB,eAAe,EACd,MAAM,EAAE,OAAO;GACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;GAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,sBAAsB,CAAC;GAC1D,CAAC,EACF;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,6BAA6B,EACrD,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,IAAI;GAC3B;EACD,EACD;CAED,wDAAwD,EACvD,MAAM;EACL,aAAa;EACb,SAAS;EACT,aAAa;EACb,MAAM,CAAC,UAAU;EACjB,eAAe,EACd,MAAM,EAAE,OAAO;GACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;GAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,sBAAsB,CAAC;GAC1D,CAAC,EACF;EACD,aAAa,EACZ,SAAS,GAAG,eAAe,EAAE,QAAQ,8BAA8B,EAAE,EACrE;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,sBAAsB,EAC9C,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC,GAAG;GACH;EACD,EACD;CAED,+CAA+C;EAC9C,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aAAa;GACb,MAAM,CAAC,UAAU;GACjB,eAAe,EACd,MAAM,iBACN;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,sBAAsB,EAAE,EAClE;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,aACC;GAID,MAAM,CAAC,UAAU;GACjB,eAAe,EACd,MAAM,iBACN;GACD,aAAa,EACZ,SAAS,GAAG,eAAe,EAAE,QAAQ,sBAAsB,EAAE,EAC7D;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,sBAAsB,EAAE,EAClE;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,UAAU;GACjB,eAAe;IACd,MAAM;IACN,OAAO,EAAE,OAAO,EACf,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EACjC,aACC,oGACD,CAAC,EACF,CAAC;IACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,+BAA+B,EAAE,EAC3E;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD;CAED,uDAAuD,EACtD,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,UAAU;EACjB,eAAe,EACd,MAAM,EAAE,OAAO;GACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;GAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,sBAAsB,CAAC;GAC1D,CAAC,EACF;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,kCAAkC,EAC1D,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,IAAI;GAC3B;EACD,EACD;CAED,2DAA2D;EAC1D,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,UAAU;GACjB,eAAe,EACd,MAAM,EAAE,OAAO;IACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;IAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,sBAAsB,CAAC;IAC1D,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC;IAC3D,CAAC,EACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,2BAA2B,EACnD,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,UAAU;GACjB,eAAe,EACd,MAAM,EAAE,OAAO;IACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;IAC/D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,sBAAsB,CAAC;IAC1D,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC;IAC3D,CAAC,EACF;GACD,aAAa,EACZ,SAAS,GAAG,eAAe,EAAE,QAAQ,kBAAkB,EAAE,EACzD;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,2BAA2B,EACnD,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CAED,6CAA6C,EAC5C,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,UAAU;EACjB,eAAe,EACd,MAAM,EAAE,OAAO,EACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC,EAC/D,CAAC,EACF;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,6BAA6B,EACrD,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD,2CAA2C,EAC1C,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,UAAU;EACjB,eAAe;GACd,MAAM,EAAE,OAAO,EACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC,EAC/D,CAAC;GACF,OAAO;GACP;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,iCAAiC,EACzD,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD;AAMD,SAAS,gBAAgB,eAAuB;AAC/C,QAAO;EACN,sBAAsB;GACrB,KAAK;IACJ,aAAa;IACb,SAAS;IACT,aACC;IACD,MAAM,CAAC,QAAQ;IACf,eAAe,EAAE,OAAO,gBAAgB;IACxC,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,4BAA4B,EAAE,EACxE;MACD;KACD,GAAG;KACH,GAAG,eAAe,KAAK,IAAI;KAC3B;IACD;GACD,MAAM;IACL,aAAa;IACb,SAAS;IACT,MAAM,CAAC,QAAQ;IACf,aAAa;KACZ,UAAU;KACV,SAAS,GAAG,oBAAoB,EAAE,QAAQ,uBAAuB,EAAE;KACnE;IACD,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,0BAA0B,EAAE,EAAE;MACnF;KACD,OAAO;MACN,aAAa;MACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,0BAA0B,EAAE,EAAE;MACnF;KACD,GAAG;KACH,GAAG,eAAe,KAAK,KAAK,IAAI;KAChC;IACD;GACD;EACD,8BAA8B;GAC7B,KAAK;IACJ,aAAa;IACb,SAAS;IACT,MAAM,CAAC,QAAQ;IACf,eAAe,EAAE,OAAO,sBAAsB;IAC9C,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,8BAA8B,EAAE,EAC1E;MACD;KACD,GAAG;KACH,GAAG,eAAe,KAAK,IAAI;KAC3B;IACD;GACD,MAAM;IACL,aAAa;IACb,SAAS;IACT,MAAM,CAAC,QAAQ;IACf,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,iBAAiB,EAAE,EAAE;IACzE,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,0BAA0B,EAAE,EACtE;MACD;KACD,GAAG;KACH,GAAG,eAAe,KAAK,KAAK,IAAI;KAChC;IACD;GACD;EACD,mCAAmC;GAClC,KAAK;IACJ,aAAa;IACb,SAAS;IACT,MAAM,CAAC,QAAQ;IACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,oBAAoB,KAAK,EAAE,aAAa,mBAAmB,CAAC,EAAE,CAAC,EACpF;IACD,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,0BAA0B,EAAE,EACtE;MACD;KACD,GAAG;KACH,GAAG,eAAe,KAAK,KAAK,IAAI;KAChC;IACD;GACD,KAAK;IACJ,aAAa;IACb,SAAS;IACT,MAAM,CAAC,QAAQ;IACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,oBAAoB,KAAK,EAAE,aAAa,mBAAmB,CAAC,EAAE,CAAC,EACpF;IACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,iBAAiB,EAAE,EAAE;IACzE,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,0BAA0B,EAAE,EACtE;MACD;KACD,GAAG;KACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;KACrC;IACD;GACD,QAAQ;IACP,aAAa;IACb,SAAS;IACT,aAAa;IACb,MAAM,CAAC,QAAQ;IACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,oBAAoB,KAAK,EAAE,aAAa,mBAAmB,CAAC,EAAE,CAAC,EACpF;IACD,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EACjE;MACD;KACD,GAAG;KACH,GAAG,eAAe,KAAK,KAAK,IAAI;KAChC;IACD;GACD;EACD,2BAA2B;GAC1B,KAAK;IACJ,aAAa;IACb,SAAS;IACT,aACC;IACD,MAAM,CAAC,QAAQ;IACf,eAAe;KACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,YAAY,CAAC,EAAE,CAAC;KACpE,OAAO;KACP;IACD,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,wBAAwB,EAAE,EAAE;MACjF;KACD,GAAG;KACH,GAAG,eAAe,KAAK,KAAK,IAAI;KAChC;IACD;GACD,KAAK;IACJ,aAAa;IACb,SAAS;IACT,MAAM,CAAC,QAAQ;IACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,YAAY,CAAC,EAAE,CAAC,EACpE;IACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,iBAAiB,EAAE,EAAE;IACzE,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,oBAAoB,EAAE,EAAE;MAC7E;KACD,GAAG;KACH,GAAG,eAAe,KAAK,KAAK,IAAI;KAChC;IACD;GACD,QAAQ;IACP,aAAa;IACb,SAAS;IACT,MAAM,CAAC,QAAQ;IACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,YAAY,CAAC,EAAE,CAAC,EACpE;IACD,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,0BAA0B,EAAE,EAAE;MACnF;KACD,GAAG;KACH,GAAG,eAAe,KAAK,IAAI;KAC3B;IACD;GACD;EACD,iCAAiC,EAChC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,QAAQ;GACf,eAAe;IACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,YAAY,CAAC,EAAE,CAAC;IACpE,OAAO;IACP;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,gCAAgC,EAAE,EAC5E;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD,EACD;EACD,mCAAmC,EAClC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,QAAQ;GACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,YAAY,CAAC,EAAE,CAAC,EACpE;GACD,aAAa;IACZ,UAAU;IACV,SAAS,GAAG,oBAAoB,EAAE,QAAQ,kBAAkB,EAAE;IAC9D;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,2BAA2B,EAAE,EAAE;KACpF;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;IACrC;GACD,EACD;EACD,yCAAyC,EACxC,MAAM;GACL,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,QAAQ;GACf,aAAa;IACZ,UAAU;IACV,SAAS,GAAG,eAAe,EAAE,QAAQ,sBAAsB,EAAE;IAC7D;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,+BAA+B,EAAE,EAC3E;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD,EACD;EACD,2CAA2C;GAC1C,KAAK;IACJ,aAAa;IACb,SAAS;IACT,aACC;IACD,MAAM,CAAC,QAAQ;IACf,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,yBAAyB,EAAE,EACrE;MACD;KACD,GAAG;KACH,GAAG,eAAe,IAAI;KACtB,GAAG,eAAe,IAAI;KACtB;IACD;GACD,MAAM;IACL,aAAa;IACb,SAAS;IACT,aACC;IACD,MAAM,CAAC,QAAQ;IACf,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,wCAAwC,EAChE,EACD;MACD;KACD,GAAG;KACH,GAAG,eAAe,IAAI;KACtB,GAAG,eAAe,IAAI;KACtB;IACD;GACD;EACD,uCAAuC,EACtC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,QAAQ;GACf,eAAe,EAAE,OAAO,yBAAyB;GACjD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,iCAAiC,EAAE,EAC7E;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD,EACD;EACD,6CAA6C;GAC5C,KAAK;IACJ,aAAa;IACb,SAAS;IACT,aACC;IACD,MAAM,CAAC,QAAQ;IACf,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,iCAAiC,EAAE,EAC7E;MACD;KACD,GAAG;KACH,GAAG,eAAe,KAAK,IAAI;KAC3B;IACD;GACD,MAAM;IACL,aAAa;IACb,SAAS;IACT,aACC;IACD,MAAM,CAAC,QAAQ;IACf,aAAa;KACZ,UAAU;KACV,SAAS,GAAG,eAAe,EAAE,QAAQ,iCAAiC,EAAE;KACxE;IACD,WAAW;KACV,OAAO;MACN,aAAa;MACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,0CAA0C,EAClE,EACD;MACD;KACD,GAAG;KACH,GAAG,eAAe,KAAK,IAAI;KAC3B,OAAO;MACN,aAAa;MACb,SAAS,GAAG,eAAe,EAAE,QAAQ,oCAAoC,EAAE;MAC3E;KACD;IACD;GACD;EACD,6CAA6C,EAC5C,MAAM;GACL,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,QAAQ;GACf,aAAa;IACZ,UAAU;IACV,SAAS,GAAG,eAAe,EAAE,QAAQ,yBAAyB,EAAE;IAChE;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,kCAAkC,EAAE,EAC9E;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,mCAAmC,EAAE;KAC1E;IACD;GACD,EACD;EACD,uDAAuD,EACtD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,QAAQ;GACf,eAAe,EAAE,OAAO,uCAAuC;GAC/D,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,+CAA+C,EACvE,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD,EACD;EACD,6DAA6D,EAC5D,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,aAAa;IACZ,UAAU;IACV,SAAS,GAAG,eAAe,EAAE,QAAQ,uCAAuC,EAAE;IAC9E;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,gDAAgD,EACxE,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,mCAAmC,EAAE;KAC1E;IACD;GACD,EACD;EACD,iCAAiC,EAChC,MAAM;GACL,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,QAAQ;GACf,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,mBAAmB,cAAc,EAAE,EAAE,EAAE;GAC3F,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBACP,EAAE,MAAM,CAAC,8BAA8B,4BAA4B,CAAC,CACpE,EACD,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD,EACD;EACD,mCAAmC,EAClC,MAAM;GACL,aAAa;GACb,SAAS;GACT,aAAa;GACb,MAAM,CAAC,QAAQ;GACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,YAAY,CAAC,EAAE,CAAC,EACpE;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,kBAAkB,EAAE,EAAE;GAC1E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,2BAA2B,EAAE,EACvE;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;IACrC;GACD,EACD;EACD,kCAAkC,EACjC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,QAAQ;GACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,YAAY,CAAC,EAAE,CAAC,EACpE;GACD,aAAa;IACZ,UAAU;IACV,SAAS,EACR,OAAO,EACN,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,UAAU,CAAC,EAC7C,EACD;IACD;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,gCAAgC,EAAE,EAC5E;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;IACrC;GACD,EACD;EACD;;AAOF,MAAM,cAAc;CACnB,mCAAmC;EAClC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,4BAA4B,EAAE,EAAE;KACrF;IACD,GAAG;IACH,GAAG,eAAe,IAAI;IACtB;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,qBAAqB,EAAE,EAAE;GAC7E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,wBAAwB,EAAE,EAAE;KACjF;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD,0CAA0C;EACzC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;GACvD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,wBAAwB,EAAE,EAAE;KACjF;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;GACvD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,qBAAqB,EAAE,EAAE;GAC7E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,wBAAwB,EAAE,EAAE;KACjF;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;IACrC;GACD;EACD;CACD,sEAAsE,EACrE,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,SAAS;EAChB,eAAe,EACd,MAAM,EAAE,OAAO;GAAE,MAAM,EAAE,QAAQ;GAAE,SAAS,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,UAAU;GAAE,CAAC,EACjF;EACD,aAAa,EACZ,SAAS,GAAG,eAAe,EAAE,QAAQ,8BAA8B,EAAE,EACrE;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,wBAAwB,EAAE,EAAE;IACjF;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;GACrC;EACD,EACD;CACD,mCAAmC;EAClC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,6BAA6B,EAAE,EACzE;KACD;IACD,GAAG;IACH,GAAG,eAAe,IAAI;IACtB;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,sBAAsB,EAAE,EAAE;GAC9E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,yBAAyB,EAAE,EACrE;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD,0CAA0C;EACzC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,eAAe;IACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC,EAAE,CAAC;IAC7E,OAAO;IACP;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBACP,EAAE,MAAM,CACP,yBAAyB,MAAM,MAC/B,mCAAmC,MAAM,KACzC,CAAC,CACF,EACD,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC,EAAE,CAAC,EAC7E;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,sBAAsB,EAAE,EAAE;GAC9E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,yBAAyB,EAAE,EACrE;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC,EAAE,CAAC,EAC7E;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;KAC9E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD;CACD,iDAAiD;EAChD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC,EAAE,CAAC,EAC7E;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,wBAAwB,EAAE,EAAE;KACjF;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC,EAAE,CAAC,EAC7E;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,iBAAiB,EAAE,EAAE;GACzE,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,oBAAoB,EAAE,EAAE;KAC7E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD,6DAA6D;EAC5D,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,eAAe,EACd,MAAM,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;IACzD,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,cAAc,CAAC;IACzD,CAAC,EACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,oBAAoB,EAAE,EAAE;KAC7E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,eAAe,EACd,MAAM,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;IACzD,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,cAAc,CAAC;IACzD,CAAC,EACF;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,iBAAiB,EAAE,EAAE;GACzE,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,oBAAoB,EAAE,EAAE;KAC7E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,MAAM,CAAC,SAAS;GAChB,eAAe,EACd,MAAM,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;IACzD,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,cAAc,CAAC;IACzD,CAAC,EACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;KAC9E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD;CACD,2CAA2C,EAC1C,MAAM;EACL,aAAa;EACb,SAAS;EACT,aACC;EACD,MAAM,CAAC,SAAS;EAChB,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,uBAAuB,EAAE,EAAE;EAC/E,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,CAAC,CAAC,EAC/D,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD,yDAAyD,EACxD,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,SAAS;EAChB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC,EAAE,CAAC,EAC7E;EACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,kBAAkB,EAAE,EAAE;EAC1E,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,CAAC,CAAC,EAC/D,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD,+BAA+B,EAC9B,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aAAa;EACb,MAAM,CAAC,SAAS;EAChB,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,gCAAgC,EAAE,EAC5E;IACD;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD,sCAAsC,EACrC,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,SAAS;EAChB,eAAe,EACd,MAAM,EAAE,OAAO,EACd,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mCAAmC,CAAC,EACzE,CAAC,EACF;EACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,oBAAoB,EAAE,EAAE;EAC5E,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,yBAAyB,EAAE,EACrE;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD;AAMD,MAAM,gBAAgB;CACrB,kDAAkD;EACjD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aAAa;GACb,MAAM,CAAC,WAAW;GAClB,eAAe;IACd,MAAM,EAAE,OAAO;KACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;KAC/D,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,cAAc,CAAC;KACzD,CAAC;IACF,OAAO,EAAE,OAAO;KACf,OAAO,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU;KACzD,QAAQ,EAAE,QAAQ,CAAC,UAAU;KAC7B,UAAU,EACR,KAAK,CAAC,QAAQ,QAAQ,CAAC,CACvB,WAAW,MAAM,MAAM,OAAO,CAC9B,UAAU;KACZ,CAAC;IACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,gCAAgC,EACxD,EACD;KACD;IACD,GAAG,eAAe,IAAI;IACtB;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,aAAa;GACb,MAAM,CAAC,WAAW;GAClB,eAAe,EACd,MAAM,EAAE,OAAO;IACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,mBAAmB,CAAC;IAC/D,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,cAAc,CAAC;IACzD,CAAC,EACF;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,mBAAmB,EAAE,EAAE;GAC3E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,OAAO;MAAE,IAAI,EAAE,QAAQ;MAAE,QAAQ,EAAE,QAAQ;MAAE,CAAC,CAAC,EACzE,EACD;KACD;IACD,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD,+BAA+B,EAC9B,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,OAAO,kBAAkB;EAC1C,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,+BAA+B,EAAE,EAC3E;IACD;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD,sCAAsC,EACrC,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,WAAW;EAClB,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,4BAA4B,EAAE,EACxE;IACD;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD,oCAAoC,EACnC,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,WAAW;EAClB,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,iBAAiB,EAAE,EAAE;EACzE,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,0BAA0B,EAAE,EACtE;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,IAAI;GAC3B;EACD,EACD;CACD,oCAAoC;EACnC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,WAAW;GAClB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,cAAc,CAAC,EAAE,CAAC,EACtE;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,cAAc,EAAE,EAAE;KACvE;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,MAAM,CAAC,WAAW;GAClB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,cAAc,CAAC,EAAE,CAAC,EACtE;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;KAC9E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD;CACD,2CAA2C,EAC1C,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,WAAW;EAClB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,cAAc,CAAC,EAAE,CAAC,EACtE;EACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,mBAAmB,EAAE,EAAE;EAC3E,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,cAAc,EAAE,EAAE;IACvE;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD;AAMD,MAAM,gBAAgB;CACrB,2BAA2B,EAC1B,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,aAAa;EACpB,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,2BAA2B,EAAE,EACvE;IACD;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD,kCAAkC;EACjC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,aAAa;GACpB,eAAe;IACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC,EAAE,CAAC;IAC3E,OAAO,EAAE,OAAO,EACf,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC,EACpE,CAAC;IACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,uBAAuB,EAAE,EAAE;KAChF;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,aAAa;GACpB,eAAe;IACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC,EAAE,CAAC;IAC3E,OAAO,EAAE,OAAO,EACf,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,sCAAsC,CAAC,EACzF,CAAC;IACF;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,uBAAuB,EAAE,EAAE;GAC/E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,uBAAuB,EAAE,EAAE;KAChF;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,aACC;GACD,MAAM,CAAC,aAAa;GACpB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC,EAAE,CAAC,EAC3E;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;KAC9E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD;CACD,+CAA+C,EAC9C,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aACC;EACD,MAAM,CAAC,aAAa;EACpB,eAAe;GACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC,EAAE,CAAC;GAC3E,OAAO,EAAE,OAAO,EACf,QAAQ,EACN,QAAQ,CACR,UAAU,CACV,KAAK,EAAE,aAAa,sDAAsD,CAAC,EAC7E,CAAC;GACF;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,8BAA8B,EAAE,EAC1E;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD,0CAA0C,EACzC,MAAM;EACL,aAAa;EACb,SAAS;EACT,aACC;EACD,MAAM,CAAC,aAAa;EACpB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC,EAAE,CAAC,EAC3E;EACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,kBAAkB,EAAE,EAAE;EAC1E,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,0BAA0B,EAAE,EACtE;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD,wCAAwC;EACvC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aAAa;GACb,MAAM,CAAC,aAAa;GACpB,eAAe;IACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC,EAAE,CAAC;IAC3E,OAAO;IACP;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,uBAAuB,EAAE,EACnE;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,aAAa;GACpB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC,EAAE,CAAC,EAC3E;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,EAAE,EAAE;GACxE,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,mBAAmB,EAAE,EAC/D;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD,+CAA+C;EAC9C,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,aAAa;GACpB,eAAe,EACd,MAAM,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC;IACvD,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAa,CAAC;IACnD,CAAC,EACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,sBAAsB,EAAE,EAClE;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,aAAa;GACpB,eAAe,EACd,MAAM,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC;IACvD,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAa,CAAC;IACnD,CAAC,EACF;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,EAAE,EAAE;GACxE,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,mBAAmB,EAAE,EAC/D;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;IACrC;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,MAAM,CAAC,aAAa;GACpB,eAAe,EACd,MAAM,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,iBAAiB,CAAC;IACvD,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAa,CAAC;IACnD,CAAC,EACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;KAC9E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD;AAMD,MAAM,YAAY;CACjB,sBAAsB;EACrB,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,MAAM,mBAAmB,CAAC,EACpD,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,IAAI;IACtB;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,EAAE,EAAE;GACxE,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,oBAAoB,EAAE,EAChE;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD,6BAA6B;EAC5B,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAa,CAAC,EAAE,CAAC,EACvE;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,oBAAoB,EAAE,EAChE;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAa,CAAC,EAAE,CAAC,EACvE;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,EAAE,EAAE;GACxE,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,oBAAoB,EAAE,EAChE;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAa,CAAC,EAAE,CAAC,EACvE;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;KAC9E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD;CACD,mCAAmC,EAClC,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,QAAQ;EACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAa,CAAC,EAAE,CAAC,EACvE;EACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,oBAAoB,EAAE,EAAE;EAC5E,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,eAAe,EAAE,EAAE;IACxE;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD,wCAAwC;EACvC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,eAAe,EACd,MAAM,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAa,CAAC;IACnD,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,gBAAgB,CAAC;IACpD,CAAC,EACF;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,oBAAoB,EAAE,EAAE;GAC5E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,eAAe,EAAE,EAAE;KACxE;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,eAAe,EACd,MAAM,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAa,CAAC;IACnD,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,gBAAgB,CAAC;IACpD,CAAC,EACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;KAC9E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD;CACD,qCAAqC,EACpC,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,QAAQ;EACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAa,CAAC,EAAE,CAAC,EACvE;EACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,sBAAsB,EAAE,EAAE;EAC9E,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,MAAM,eAAe,CAAC,EAChD,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD;AAMD,MAAM,eAAe;CACpB,yBAAyB;EACxB,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,WAAW;GAClB,eAAe,EAAE,OAAO,mBAAmB;GAC3C,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,0BAA0B,EAAE,EACtE;KACD;IACD,GAAG;IACH,GAAG,eAAe,IAAI;IACtB;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,WAAW;GAClB,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,mBAAmB,EAAE,EAAE;GAC3E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,cAAc,EAAE,EAAE;KACvE;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD,gCAAgC;EAC/B,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,WAAW;GAClB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,gBAAgB,CAAC,EAAE,CAAC,EAC1E;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,cAAc,EAAE,EAAE;KACvE;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,WAAW;GAClB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,gBAAgB,CAAC,EAAE,CAAC,EAC1E;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,mBAAmB,EAAE,EAAE;GAC3E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,cAAc,EAAE,EAAE;KACvE;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;IACrC;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,MAAM,CAAC,WAAW;GAClB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,gBAAgB,CAAC,EAAE,CAAC,EAC1E;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;KAC9E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD;AAMD,MAAM,cAAc;CACnB,6BAA6B;EAC5B,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,UAAU;GACjB,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBACP,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,EAAE,CAAC,CACjE,EACD,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,IAAI;IACtB;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,UAAU;GACjB,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,sBAAsB,EAAE,EAAE;GAC9E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,iBAAiB,EAAE,EAAE;KAC1E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD,oCAAoC;EACnC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,UAAU;GACjB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,oBAAoB,CAAC,EAAE,CAAC,EAC9E;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,4BAA4B,EAAE,EACxE;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,MAAM,CAAC,UAAU;GACjB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,oBAAoB,CAAC,EAAE,CAAC,EAC9E;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;KAC9E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD;CACD,4CAA4C,EAC3C,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,UAAU;EACjB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,oBAAoB,CAAC,EAAE,CAAC,EAC9E;EACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,kBAAkB,EAAE,EAAE;EAC1E,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,aAAa,EAAE,EAAE;IACtE;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD,iDAAiD;EAChD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,UAAU;GACjB,eAAe,EACd,MAAM,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,oBAAoB,CAAC;IAC1D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAa,CAAC;IACjD,CAAC,EACF;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,kBAAkB,EAAE,EAAE;GAC1E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,aAAa,EAAE,EAAE;KACtE;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,MAAM,CAAC,UAAU;GACjB,eAAe,EACd,MAAM,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,oBAAoB,CAAC;IAC1D,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,aAAa,CAAC;IACjD,CAAC,EACF;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;KAC9E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD;CACD,4CAA4C,EAC3C,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,UAAU;EACjB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,oBAAoB,CAAC,EAAE,CAAC,EAC9E;EACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,oBAAoB,EAAE,EAAE;EAC5E,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,CAAC,CAAC,EAC/D,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD;AAMD,MAAM,gBAAgB,EACrB,yBAAyB;CACxB,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,WAAW;EAClB,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,mBAAmB,EAAE,EAAE;IAC5E;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD;CACD,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,WAAW;EAClB,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,oBAAoB,EAAE,EAAE;EAC5E,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,mBAAmB,EAAE,EAAE;IAC5E;GACD,GAAG;GACH,GAAG,eAAe,KAAK,IAAI;GAC3B;EACD;CACD,EACD;AAMD,MAAM,cAAc;CACnB,uBAAuB,EACtB,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,SAAS;EAChB,eAAe,EAAE,OAAO,aAAa;EACrC,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;IAC9E;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD,+BAA+B,EAC9B,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,SAAS;EAChB,eAAe,EAAE,OAAO,oBAAoB;EAC5C,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;IAC9E;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD,+BAA+B,EAC9B,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,SAAS;EAChB,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,mBAAmB,EAAE,EAAE;EAC3E,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBACP,EAAE,OAAO;KACR,YAAY,EAAE,QAAQ;KACtB,SAAS,EAAE,QAAQ,CAAC,KAAK;KACzB,CAAC,CACF,EACD,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,IAAI;GAC3B;EACD,EACD;CACD,8BAA8B,EAC7B,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,SAAS;EAChB,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,kBAAkB,EAAE,EAAE;EAC1E,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBACP,EAAE,OAAO;KACR,YAAY,EAAE,QAAQ;KACtB,SAAS,EAAE,SAAS;KACpB,CAAC,CACF,EACD,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,IAAI;GAC3B;EACD,EACD;CACD,6BAA6B,EAC5B,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,SAAS;EAChB,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBACP,EAAE,OAAO,EACR,aAAa,EAAE,MACd,EAAE,OAAO;KACR,YAAY,EAAE,QAAQ;KACtB,SAAS,EAAE,SAAS;KACpB,SAAS,EAAE,QAAQ,CAAC,KAAK;KACzB,CAAC,CACF,EACD,CAAC,CACF,EACD,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD;AAMD,MAAM,gBAAgB;CACrB,0BAA0B;EACzB,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,YAAY;GACnB,eAAe,EAAE,OAAO,oBAAoB;GAC5C,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,2BAA2B,EAAE,EACvE;KACD;IACD,GAAG;IACH,GAAG,eAAe,IAAI;IACtB;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,YAAY;GACnB,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,oBAAoB,EAAE,EAAE;GAC5E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,eAAe,EAAE,EAAE;KACxE;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD,+BAA+B;EAC9B,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,YAAY;GACnB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,eAAe,CAAC,EAAE,CAAC,EACvE;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,eAAe,EAAE,EAAE;KACxE;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,YAAY;GACnB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,eAAe,CAAC,EAAE,CAAC,EACvE;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,oBAAoB,EAAE,EAAE;GAC5E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,eAAe,EAAE,EAAE;KACxE;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;IACrC;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,MAAM,CAAC,YAAY;GACnB,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,eAAe,CAAC,EAAE,CAAC,EACvE;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;KAC9E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD;CACD,+BAA+B;EAC9B,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,YAAY;GACnB,eAAe,EAAE,OAAO,mBAAmB;GAC3C,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,2BAA2B,EAAE,EACvE;KACD;IACD,GAAG;IACH,GAAG,eAAe,IAAI;IACtB;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,MAAM,CAAC,YAAY;GACnB,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAChE,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,IAAI;IACtB;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,YAAY;GACnB,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,mBAAmB,EAAE,EAAE;GAC3E,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAChE,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD;CACD,uCAAuC,EACtC,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,YAAY;EACnB,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,8BAA8B,EAAE,EAC1E;IACD;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD;AAMD,MAAM,YAAY;CACjB,4BAA4B,EAC3B,KAAK;EACJ,aAAa;EACb,SAAS;EACT,MAAM,CAAC,QAAQ;EACf,eAAe,EAAE,OAAO,gBAAgB;EACxC,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,uBAAuB,EAAE,EAAE;IAChF;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD,iCAAiC;EAChC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,WAAW,CAAC,EAAE,CAAC,EACnE;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC,CAAC,EAC7D,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,WAAW,CAAC,EAAE,CAAC,EACnE;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,EAAE,EAAE;GACxE,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC,CAAC,EACvD,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;IACrC;GACD;EACD;CACD,yCAAyC,EACxC,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,QAAQ;EACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,WAAW,CAAC,EAAE,CAAC,EACnE;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC,CAAC,EACvD,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD,wCAAwC,EACvC,MAAM;EACL,aAAa;EACb,SAAS;EACT,MAAM,CAAC,QAAQ;EACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,WAAW,CAAC,EAAE,CAAC,EACnE;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EACf,QAAQ,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC,CAAC,EACvD,EACD;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,IAAI;GAC3B;EACD,EACD;CACD,sCAAsC;EACrC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBACP,EAAE,OAAO,EACR,OAAO,EAAE,MACR,EAAE,OAAO;MACR,QAAQ,EAAE,QAAQ;MAClB,aAAa,EAAE,QAAQ,CAAC,KAAK;MAC7B,SAAS,EAAE,SAAS;MACpB,WAAW,EAAE,QAAQ;MACrB,CAAC,CACF,EACD,CAAC,CACF,EACD,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,IAAI;IACtB;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,yBAAyB,EAAE,EAAE;GACjF,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBACP,EAAE,OAAO;MACR,QAAQ,EAAE,QAAQ;MAClB,aAAa,EAAE,QAAQ,CAAC,KAAK;MAC7B,SAAS,EAAE,SAAS;MACpB,CAAC,CACF,EACD,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD,+CAA+C;EAC9C,KAAK;GACJ,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,eAAe,CAAC,EAAE,CAAC,EAC3E;GACD,aAAa,EAAE,SAAS,GAAG,eAAe,EAAE,QAAQ,yBAAyB,EAAE,EAAE;GACjF,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EACf,QAAQ,gBACP,EAAE,OAAO;MACR,QAAQ,EAAE,QAAQ;MAClB,aAAa,EAAE,QAAQ,CAAC,KAAK;MAC7B,SAAS,EAAE,SAAS;MACpB,CAAC,CACF,EACD,EACD;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,QAAQ;GACP,aAAa;GACb,SAAS;GACT,MAAM,CAAC,QAAQ;GACf,eAAe,EACd,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,eAAe,CAAC,EAAE,CAAC,EAC3E;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,qBAAqB,EAAE,EAAE;KAC9E;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD;CACD;AAMD,MAAM,gBACL;AAED,MAAM,mBAAmB,EAAE,OAAO,EACjC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,uBAAuB,CAAC,EAC3D,CAAC;AAEF,MAAM,mBAAmB,EAAE,OAAO,EACjC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,uBAAuB,CAAC,EAC3D,CAAC;AAEF,MAAM,cACL;AAED,MAAM,qBAAqB,EAAE,OAAO,EACnC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,eAAe,CAAC,EACnD,CAAC;AAEF,MAAM,gBAAgB;CACrB,4CAA4C,EAC3C,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aACC;EACD,MAAM,CAAC,WAAW;EAClB,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,2BAA2B,EAAE,EAAE;IACpF;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD,uCAAuC;EACtC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aAAa,iCAAiC,cAAc;GAC5D,MAAM,CAAC,WAAW;GAClB,eAAe,EAAE,OAAO,yBAAyB;GACjD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,oCAAoC,EAAE,EAChF;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,aAAa,2SAA2S,cAAc;GACtU,MAAM,CAAC,WAAW;GAClB,aAAa;IACZ,UAAU;IACV,SAAS,GAAG,eAAe,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,UAAU,CAAC,EAAE,EAAE;IAC9E;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,mCAAmC,EAAE,EAC/E;KACD;IACD,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,mCAAmC,EAAE,EAC/E;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI;IAC/C;GACD;EACD;CACD,4CAA4C,EAC3C,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aAAa,8DAA8D,cAAc;EACzF,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,kBAAkB;EACzC,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,mCAAmC,EAAE,EAC/E;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,IAAI;GAC3B;EACD,EACD;CACD,oDAAoD,EACnD,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aAAa,6LAA6L,cAAc;EACxN,MAAM,CAAC,WAAW;EAClB,eAAe;GAAE,MAAM;GAAkB,OAAO;GAAyB;EACzE,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,mCAAmC,EAAE,EAC/E;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD,yDAAyD,EACxD,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aAAa,wRAAwR,cAAc;EACnT,MAAM,CAAC,WAAW;EAClB,eAAe,EACd,MAAM,iBAAiB,OAAO,EAC7B,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,qBAAqB,CAAC,EAC3D,CAAC,EACF;EACD,aAAa;GACZ,UAAU;GACV,SAAS,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,UAAU,CAAC,EAAE,EAAE;GAC1F;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,iCAAiC,EAAE,EAC7E;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI;GACzD;EACD,EACD;CACD,oDAAoD,EACnD,MAAM;EACL,aAAa;EACb,SAAS;EACT,aAAa,sOAAsO,cAAc;EACjQ,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,kBAAkB;EACzC,aAAa;GACZ,UAAU;GACV,SAAS,GAAG,eAAe,EAAE,QAAQ,2BAA2B,EAAE;GAClE;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,oCAAoC,EAAE,EAChF;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI;GAC/C;EACD,EACD;CACD,iDAAiD,EAChD,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aAAa,GAAG,cAAc;EAC9B,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,kBAAkB;EACzC,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,iCAAiC,EAAE,EAC7E;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;GACrC;EACD,EACD;CACD,mDAAmD,EAClD,MAAM;EACL,aAAa;EACb,SAAS;EACT,aAAa,qDAAqD,cAAc;EAChF,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,kBAAkB;EACzC,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,gCAAgC,EAAE,EAC5E;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD,oDAAoD,EACnD,MAAM;EACL,aAAa;EACb,SAAS;EACT,aAAa,qHAAqH,cAAc;EAChJ,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,kBAAkB;EACzC,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,gCAAgC,EAAE,EAC5E;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD,oDAAoD,EACnD,MAAM;EACL,aAAa;EACb,SAAS;EACT,aAAa,sKAAsK,cAAc;EACjM,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,kBAAkB;EACzC,aAAa;GACZ,UAAU;GACV,SAAS,GAAG,eAAe,EAAE,QAAQ,2BAA2B,EAAE;GAClE;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,gCAAgC,EAAE,EAC5E;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,KAAK,KAAK,IAAI;GAC1C;EACD,EACD;CACD,oDAAoD,EACnD,MAAM;EACL,aAAa;EACb,SAAS;EACT,aAAa,mSAAmS,cAAc;EAC9T,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,kBAAkB;EACzC,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,8BAA8B,EAAE,EAAE;IACvF;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;GACrC;EACD,EACD;CACD,oDAAoD,EACnD,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aAAa,8FAA8F,cAAc;EACzH,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,kBAAkB;EACzC,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,oCAAoC,EAAE,EAChF;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,IAAI;GAChC;EACD,EACD;CACD,uCAAuC;EACtC,KAAK;GACJ,aAAa;GACb,SAAS;GACT,aAAa,iCAAiC;GAC9C,MAAM,CAAC,WAAW;GAClB,eAAe,EAAE,OAAO,yBAAyB;GACjD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,oCAAoC,EAAE,EAChF;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,IAAI;IAC3B;GACD;EACD,MAAM;GACL,aAAa;GACb,SAAS;GACT,aAAa,uJAAuJ;GACpK,MAAM,CAAC,WAAW;GAClB,aAAa;IACZ,UAAU;IACV,SAAS,GAAG,eAAe,EAAE,QAAQ,0BAA0B,EAAE;IACjE;GACD,WAAW;IACV,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,mCAAmC,EAAE,EAC/E;KACD;IACD,OAAO;KACN,aAAa;KACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,mCAAmC,EAAE,EAC/E;KACD;IACD,GAAG;IACH,GAAG,eAAe,KAAK,KAAK,IAAI;IAChC;GACD;EACD;CACD,4CAA4C,EAC3C,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aAAa;EACb,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,kBAAkB;EACzC,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,gCAAgC,EAAE,EAC5E;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,IAAI;GAC3B;EACD,EACD;CACD,oDAAoD,EACnD,MAAM;EACL,aAAa;EACb,SAAS;EACT,aAAa,wFAAwF;EACrG,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,kBAAkB;EACzC,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,gBAAgB,8BAA8B,EAAE,EAAE;IACvF;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,KAAK,IAAI;GACrC;EACD,EACD;CACD,qDAAqD,EACpD,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aAAa,8FAA8F;EAC3G,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,kBAAkB;EACzC,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GAAG,eAAe,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,UAAU,CAAC,EAAE,EAAE;IAC9E;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,KAAK,KAAK,IAAI;GAC1C;EACD,EACD;CACD,yDAAyD,EACxD,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aAAa,8OAA8O;EAC3P,MAAM,CAAC,WAAW;EAClB,eAAe,EACd,MAAM,iBAAiB,OAAO,EAC7B,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,qBAAqB,CAAC,EAC3D,CAAC,EACF;EACD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,EACR,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,UAAU,CAAC,EAAE,EAC7E;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI;GAC/C;EACD,EACD;CACD,oDAAoD,EACnD,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aAAa,wLAAwL;EACrM,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,kBAAkB;EACzC,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,UAAU,CAAC,EAAE,EAAE;IACnF;GACD,GAAG;GACH,GAAG,eAAe,KAAK,KAAK,KAAK,KAAK,IAAI;GAC1C;EACD,EACD;CACD,yCAAyC,EACxC,KAAK;EACJ,aAAa;EACb,SAAS;EACT,aACC;EACD,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,OAAO,2BAA2B;EACnD,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,mCAAmC,EAAE,EAC/E;IACD;GACD,GAAG;GACH,GAAG,eAAe,KAAK,IAAI;GAC3B;EACD,EACD;CACD,sDAAsD,EACrD,MAAM;EACL,aAAa;EACb,SAAS;EACT,aACC;EACD,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,oBAAoB;EAC3C,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,+BAA+B,EAAE,EAC3E;IACD;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD,mDAAmD,EAClD,MAAM;EACL,aAAa;EACb,SAAS;EACT,aACC;EACD,MAAM,CAAC,WAAW;EAClB,eAAe,EAAE,MAAM,oBAAoB;EAC3C,WAAW;GACV,OAAO;IACN,aAAa;IACb,SAAS,GACP,eAAe,EAAE,QAAQ,gBAAgB,+BAA+B,EAAE,EAC3E;IACD;GACD,GAAG;GACH,GAAG,eAAe,IAAI;GACtB;EACD,EACD;CACD;AAMD,SAAS,cAAc,eAAuB;AAC7C,QAAO;EACN,GAAG;EACH,GAAG,gBAAgB,cAAc;EACjC,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH;;;;;;;;AAaF,SAAgB,wBACf,UAAsC,EAAE,EAClB;CACtB,MAAM,gBAAgB,QAAQ,iBAAiB;AAC/C,QAAO,eAAe;EACrB,SAAS;EACT,MAAM;GACL,OAAO;GACP,SAAS;GACT,aACC;GACD;EACD,SAAS,CACR;GACC,KAAK;GACL,aAAa;GAGb,WAAW,EACV,SAAS,EACR,SAAS,yBACT,EACD;GACD,CACD;EACD,MAAM;GACL;IACC,MAAM;IACN,aAAa;IACb;GACD;IACC,MAAM;IACN,aAAa;IACb;GACD;IACC,MAAM;IACN,aAAa;IACb;GACD;IACC,MAAM;IACN,aAAa;IACb;GACD;IACC,MAAM;IACN,aAAa;IACb;GACD;IACC,MAAM;IACN,aAAa;IACb;GACD;IACC,MAAM;IACN,aAAa;IACb;GACD;IACC,MAAM;IACN,aAAa;IACb;GACD;IACC,MAAM;IACN,aAAa;IACb;GACD;IACC,MAAM;IACN,aAAa;IACb;GACD;IACC,MAAM;IACN,aAAa;IACb;GACD;IACC,MAAM;IACN,aAAa;IACb;GACD;IACC,MAAM;IACN,aAAa;IACb;GACD;EACD,YAAY;GACX,SAAS,EAER,mBAAmB,yBACnB;GACD,iBAAiB;IAChB,SAAS;KACR,MAAM;KACN,IAAI;KACJ,MAAM;KACN,aAAa;KACb;IACD,QAAQ;KACP,MAAM;KACN,QAAQ;KACR,aAAa;KACb;IACD;GACD;EACD,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;EAE3C,OAAO,cAAc,cAAc;EACnC,CAAC;;;;;ACjqHH,MAAa,YAAY;AAGzB,MAAM,oBAAoB,OAAO,IAAI,4BAA4B;AAEjE,SAAS,gBAA+B;CACvC,MAAM,MAAO,WAAuC;AACpD,QAAO,OAAO,QAAQ,WAAW,MAAM;;AAGxC,SAAS,cAAc,MAAoB;AAC1C,CAAC,WAAuC,qBAAqB;;AAG9D,MAAa,MAAgB,OAAO,EAAE,aAAa;CAClD,MAAM,EAAE,WAAW;CAEnB,IAAI,OAAO,eAAe;AAC1B,KAAI,CAAC,QAAQ,OACZ,KAAI;EACH,MAAM,MAAM,wBAAwB,EAAE,eAAe,OAAO,OAAO,eAAe,CAAC;AACnF,SAAO,KAAK,UAAU,IAAI;AAC1B,gBAAc,KAAK;UACX,OAAO;AACf,SAAO,YAAY,OAAO,uCAAuC,gBAAgB;;AAInF,KAAI,CAAC,KACJ,KAAI;AACH,SAAO,KAAK,UAAU,yBAAyB,CAAC;UACxC,OAAO;AACf,SAAO,YAAY,OAAO,uCAAuC,gBAAgB;;AAInF,QAAO,IAAI,SAAS,MAAM;EACzB,QAAQ;EACR,SAAS;GACR,gBAAgB;GAChB,iBAAiB;GACjB,+BAA+B;GAC/B;EACD,CAAC"}
1
+ {"version":3,"file":"openapi.json.mjs","names":["toJSONSchema$1"],"sources":["../../../../../../node_modules/.pnpm/zod-openapi@5.4.6_zod@4.5.4/node_modules/zod-openapi/dist/components-DiNDbisK.mjs","../../../../../../node_modules/.pnpm/zod-openapi@5.4.6_zod@4.5.4/node_modules/zod-openapi/dist/index.mjs","../../../../src/api/openapi/document.ts","../../../../src/astro/routes/api/openapi.json.ts"],"sourcesContent":["import { globalRegistry } from \"zod/v4/core\";\nimport { globalRegistry as globalRegistry$1, object, registry, toJSONSchema as toJSONSchema$1 } from \"zod/v4\";\n\n//#region src/zod.ts\nconst isAnyZodType = (schema) => typeof schema === \"object\" && schema !== null && \"_zod\" in schema;\n\n//#endregion\n//#region src/create/examples.ts\nconst createExamples = (examples, registry$1, path) => {\n\tif (!examples) return;\n\tconst examplesObject = {};\n\tfor (const [name, example] of Object.entries(examples)) examplesObject[name] = registry$1.addExample(example, [...path, name]);\n\treturn examplesObject;\n};\n\n//#endregion\n//#region src/create/content.ts\nconst createMediaTypeObject = (mediaType, ctx, path) => {\n\tconst { schema, examples, ...rest } = mediaType;\n\tconst mediaTypeObject = rest;\n\tif (isAnyZodType(schema)) mediaTypeObject.schema = ctx.registry.addSchema(schema, [...path, \"schema\"], {\n\t\tio: ctx.io,\n\t\tsource: { type: \"mediaType\" }\n\t});\n\telse mediaTypeObject.schema = schema;\n\tif (examples) mediaTypeObject.examples = createExamples(examples, ctx.registry, [...path, \"examples\"]);\n\treturn mediaTypeObject;\n};\nconst createContent = (content, ctx, path) => {\n\tconst contentObject = {};\n\tfor (const [mediaType, mediaTypeObject] of Object.entries(content)) if (mediaTypeObject) contentObject[mediaType] = createMediaTypeObject(mediaTypeObject, ctx, [...path, mediaType]);\n\treturn contentObject;\n};\n\n//#endregion\n//#region src/create/object.ts\nconst unwrapZodObject = (zodType, io, path) => {\n\tconst def = zodType._zod.def;\n\tswitch (def.type) {\n\t\tcase \"object\": return zodType;\n\t\tcase \"lazy\": return unwrapZodObject(def.getter(), io, path);\n\t\tcase \"pipe\":\n\t\t\tif (io === \"input\") return unwrapZodObject(def.in, io, path);\n\t\t\treturn unwrapZodObject(def.out, io, path);\n\t}\n\tthrow new Error(`Failed to unwrap ZodObject from type: ${zodType._zod.def.type} at ${path.join(\" > \")}`);\n};\nconst isRequired = (zodType, io) => {\n\tif (io === \"input\") return zodType._zod.optin === void 0;\n\treturn zodType._zod.optout === void 0;\n};\n\n//#endregion\n//#region src/create/headers.ts\nconst createHeaders = (headers, registry$1, path) => {\n\tif (!headers) return;\n\tif (isAnyZodType(headers)) {\n\t\tconst zodObject = unwrapZodObject(headers, \"output\", path);\n\t\tconst headersObject = {};\n\t\tfor (const [key, zodSchema] of Object.entries(zodObject._zod.def.shape)) headersObject[key] = registry$1.addHeader(zodSchema, [...path, key]);\n\t\treturn headersObject;\n\t}\n\treturn headers;\n};\n\n//#endregion\n//#region src/create/links.ts\nconst createLinks = (links, registry$1, path) => {\n\tif (!links) return;\n\tconst linksObject = {};\n\tfor (const [name, link] of Object.entries(links)) linksObject[name] = registry$1.addLink(link, [...path, name]);\n\treturn linksObject;\n};\n\n//#endregion\n//#region src/create/parameters.ts\nconst createManualParameters = (parameters, registry$1, path) => {\n\tif (!parameters) return;\n\tconst parameterObjects = [];\n\tfor (const parameter of parameters) {\n\t\tif (isAnyZodType(parameter)) {\n\t\t\tconst paramObject = registry$1.addParameter(parameter, [...path, \"parameters\"]);\n\t\t\tparameterObjects.push(paramObject);\n\t\t\tcontinue;\n\t\t}\n\t\tparameterObjects.push(parameter);\n\t}\n\treturn parameterObjects;\n};\nconst createParameters = (requestParams, registry$1, path) => {\n\tif (!requestParams) return;\n\tconst parameterObjects = [];\n\tfor (const [location, schema] of Object.entries(requestParams ?? {})) {\n\t\tconst zodObject = unwrapZodObject(schema, \"input\", path);\n\t\tfor (const [name, zodSchema] of Object.entries(zodObject._zod.def.shape)) {\n\t\t\tconst paramObject = registry$1.addParameter(zodSchema, [\n\t\t\t\t...path,\n\t\t\t\tlocation,\n\t\t\t\tname\n\t\t\t], { location: {\n\t\t\t\tin: location,\n\t\t\t\tname\n\t\t\t} });\n\t\t\tparameterObjects.push(paramObject);\n\t\t}\n\t}\n\treturn parameterObjects;\n};\n\n//#endregion\n//#region src/create/specificationExtension.ts\nconst isISpecificationExtension = (key) => key.startsWith(\"x-\");\n\n//#endregion\n//#region src/create/callbacks.ts\nconst createCallbacks = (callbacks, registry$1, path) => {\n\tif (!callbacks) return;\n\tconst callbacksObject = {};\n\tfor (const [name, value] of Object.entries(callbacks)) {\n\t\tif (isISpecificationExtension(name)) {\n\t\t\tcallbacksObject[name] = value;\n\t\t\tcontinue;\n\t\t}\n\t\tcallbacksObject[name] = registry$1.addCallback(value, [...path, name]);\n\t}\n\treturn callbacksObject;\n};\n\n//#endregion\n//#region src/create/responses.ts\nconst createResponses = (responses, registry$1, path) => {\n\tif (!responses) return;\n\tconst responsesObject = {};\n\tfor (const [statusCode, response] of Object.entries(responses)) {\n\t\tif (!response) continue;\n\t\tif (isISpecificationExtension(statusCode)) {\n\t\t\tresponsesObject[statusCode] = response;\n\t\t\tcontinue;\n\t\t}\n\t\tif (\"$ref\" in response) {\n\t\t\tresponsesObject[statusCode] = response;\n\t\t\tcontinue;\n\t\t}\n\t\tresponsesObject[statusCode] = registry$1.addResponse(response, [...path, statusCode]);\n\t}\n\treturn responsesObject;\n};\n\n//#endregion\n//#region src/create/paths.ts\nconst createOperation = (operation, registry$1, path) => {\n\tconst { parameters, requestParams, requestBody, responses, callbacks, ...rest } = operation;\n\tconst operationObject = rest;\n\tconst maybeManualParameters = createManualParameters(parameters, registry$1, [...path, \"parameters\"]);\n\tconst maybeRequestParams = createParameters(requestParams, registry$1, [...path, \"requestParams\"]);\n\tif (maybeRequestParams || maybeManualParameters) operationObject.parameters = [...maybeRequestParams ?? [], ...maybeManualParameters ?? []];\n\tconst maybeRequestBody = requestBody && registry$1.addRequestBody(requestBody, path);\n\tif (maybeRequestBody) operationObject.requestBody = maybeRequestBody;\n\tconst maybeResponses = createResponses(responses, registry$1, [...path, \"responses\"]);\n\tif (maybeResponses) operationObject.responses = maybeResponses;\n\tconst maybeCallbacks = createCallbacks(callbacks, registry$1, [...path, \"callbacks\"]);\n\tif (maybeCallbacks) operationObject.callbacks = maybeCallbacks;\n\treturn operationObject;\n};\nconst createPaths = (paths, registry$1, path) => {\n\tif (!paths) return;\n\tconst pathsObject = {};\n\tfor (const [singlePath, pathItemObject] of Object.entries(paths)) {\n\t\tif (isISpecificationExtension(singlePath)) {\n\t\t\tpathsObject[singlePath] = pathItemObject;\n\t\t\tcontinue;\n\t\t}\n\t\tpathsObject[singlePath] = registry$1.addPathItem(pathItemObject, [...path, singlePath]);\n\t}\n\treturn pathsObject;\n};\n\n//#endregion\n//#region src/openapi.ts\nconst openApiVersions = [\n\t\"3.0.0\",\n\t\"3.0.1\",\n\t\"3.0.2\",\n\t\"3.0.3\",\n\t\"3.1.0\",\n\t\"3.1.1\"\n];\nconst satisfiesVersion = (test, against) => openApiVersions.indexOf(test) >= openApiVersions.indexOf(against);\n\n//#endregion\n//#region src/create/schema/override.ts\nconst override = (ctx) => {\n\tconst def = ctx.zodSchema._zod.def;\n\tswitch (def.type) {\n\t\tcase \"bigint\":\n\t\t\tctx.jsonSchema.type = \"integer\";\n\t\t\tctx.jsonSchema.format = \"int64\";\n\t\t\tbreak;\n\t\tcase \"union\": {\n\t\t\tif (\"discriminator\" in def && typeof def.discriminator === \"string\") {\n\t\t\t\tctx.jsonSchema.oneOf ??= ctx.jsonSchema.anyOf;\n\t\t\t\tdelete ctx.jsonSchema.anyOf;\n\t\t\t\tctx.jsonSchema.type = \"object\";\n\t\t\t\tctx.jsonSchema.discriminator = { propertyName: def.discriminator };\n\t\t\t\tconst mapping = {};\n\t\t\t\tfor (const [index, obj] of Object.entries(ctx.jsonSchema.oneOf)) {\n\t\t\t\t\tconst ref = obj.$ref;\n\t\t\t\t\tif (!ref) {\n\t\t\t\t\t\tdelete ctx.jsonSchema.discriminator;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst discriminatorValues = def.options[Number(index)]._zod.propValues?.[def.discriminator];\n\t\t\t\t\tif (!discriminatorValues?.size) return;\n\t\t\t\t\tfor (const value of [...discriminatorValues ?? []]) {\n\t\t\t\t\t\tif (typeof value !== \"string\" && typeof value !== \"number\" && typeof value !== \"boolean\") return;\n\t\t\t\t\t\tmapping[String(value)] = ref;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tctx.jsonSchema.discriminator.mapping = mapping;\n\t\t\t}\n\t\t\tconst meta = globalRegistry$1.get(ctx.zodSchema);\n\t\t\tif (typeof meta?.unionOneOf === \"boolean\") {\n\t\t\t\tif (meta.unionOneOf) {\n\t\t\t\t\tctx.jsonSchema.oneOf = ctx.jsonSchema.anyOf;\n\t\t\t\t\tdelete ctx.jsonSchema.anyOf;\n\t\t\t\t}\n\t\t\t\tdelete ctx.jsonSchema.unionOneOf;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"date\":\n\t\t\tctx.jsonSchema.type = \"string\";\n\t\t\tbreak;\n\t\tcase \"literal\":\n\t\t\tif (def.values.includes(void 0)) break;\n\t\t\tbreak;\n\t\tcase \"undefined\":\n\t\t\tctx.jsonSchema.not = {};\n\t\t\tbreak;\n\t}\n};\nconst validate = (ctx, opts, previousContext) => {\n\tif (previousContext.context && ctx.zodSchema._zod.parent !== previousContext.context.zodSchema) {\n\t\tif (previousContext.context.zodSchema._zod.def.type === \"pipe\") throw new Error(`Zod transform found at ${previousContext.context.path.join(\" > \")} are not supported in output schemas. Please use \\`.overwrite()\\` or wrap the schema in a \\`.pipe()\\` or assign it manual metadata with \\`.meta()\\``);\n\t\tthrow new Error(`Zod schema of type \\`${previousContext.context.zodSchema._zod.def.type}\\` at ${previousContext.context?.path.join(\" > \")} cannot be represented in OpenAPI. Please assign it metadata with \\`.meta()\\``);\n\t}\n\tpreviousContext.context = void 0;\n\tif (Object.keys(ctx.jsonSchema).length) return;\n\tconst def = ctx.zodSchema._zod.def;\n\tconst allowEmptySchema = opts.allowEmptySchema?.[def.type];\n\tif (allowEmptySchema === true || allowEmptySchema?.[ctx.io]) return;\n\tswitch (def.type) {\n\t\tcase \"optional\":\n\t\t\tvalidate({\n\t\t\t\t...ctx,\n\t\t\t\tzodSchema: def.innerType\n\t\t\t}, opts, previousContext);\n\t\t\treturn;\n\t\tcase \"any\": return;\n\t\tcase \"unknown\": return;\n\t\tcase \"pipe\":\n\t\t\tif (ctx.io === \"output\") {\n\t\t\t\tif (!ctx.zodSchema._zod.parent) {\n\t\t\t\t\tpreviousContext.context = ctx;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\tcase \"transform\":\n\t\t\tif (ctx.io === \"output\") return;\n\t\t\tbreak;\n\t\tcase \"literal\":\n\t\t\tif (def.values.includes(void 0)) throw new Error(`Zod literal at ${ctx.path.join(\" > \")} cannot include \\`undefined\\` as a value. Please use \\`z.undefined()\\` or \\`.optional()\\` instead.`);\n\t\t\treturn;\n\t\tcase \"custom\": if (!ctx.zodSchema._zod.parent) {\n\t\t\tpreviousContext.context = ctx;\n\t\t\treturn;\n\t\t}\n\t}\n\tthrow new Error(`Zod schema of type \\`${def.type}\\` at ${ctx.path.join(\" > \")} cannot be represented in OpenAPI. Please assign it metadata with \\`.meta()\\``);\n};\n\n//#endregion\n//#region src/create/schema/rename.ts\nconst renameComponents = (components, outputIds, ctx, refPath) => {\n\tconst componentsToRename = /* @__PURE__ */ new Map();\n\tif (ctx.io === \"input\") return componentsToRename;\n\tconst componentDependencies = /* @__PURE__ */ new Map();\n\tconst stringifiedComponents = /* @__PURE__ */ new Map();\n\tfor (const [key, value] of Object.entries(components)) {\n\t\tconst stringified = JSON.stringify(value);\n\t\tconst regex = new RegExp(`\"${refPath}([^\"]+)\"`, \"g\");\n\t\tconst matches = stringified.matchAll(regex);\n\t\tconst dependencies = /* @__PURE__ */ new Set();\n\t\tfor (const match of matches) {\n\t\t\tconst dep = match[1];\n\t\t\tif (dep !== key) dependencies.add(dep);\n\t\t}\n\t\tstringifiedComponents.set(key, stringified);\n\t\tcomponentDependencies.set(key, { dependencies });\n\t}\n\tfor (const [key] of stringifiedComponents) {\n\t\tif (!ctx.registry.components.schemas.ids.get(key)) continue;\n\t\tif (isDependencyPure(componentDependencies, stringifiedComponents, ctx.registry, key)) continue;\n\t\tconst newName = outputIds.get(key) ?? `${key}${ctx.opts.outputIdSuffix ?? \"Output\"}`;\n\t\tcomponentsToRename.set(key, newName);\n\t\tcomponents[newName] = components[key];\n\t\tdelete components[key];\n\t}\n\treturn componentsToRename;\n};\nconst isDependencyPure = (componentDependencies, stringifiedComponents, registry$1, key, visited = /* @__PURE__ */ new Set()) => {\n\tif (visited.has(key)) return true;\n\tconst dependencies = componentDependencies.get(key);\n\tif (dependencies.pure !== void 0) return dependencies.pure;\n\tconst stringified = stringifiedComponents.get(key);\n\tconst component = registry$1.components.schemas.ids.get(key);\n\tif (component && stringified !== JSON.stringify(component)) {\n\t\tdependencies.pure = false;\n\t\treturn false;\n\t}\n\tvisited.add(key);\n\tconst result = [...dependencies.dependencies].every((dep) => isDependencyPure(componentDependencies, stringifiedComponents, registry$1, dep, new Set(visited)));\n\tdependencies.pure = result;\n\treturn result;\n};\n\n//#endregion\n//#region src/create/schema/schema.ts\nconst createSchema = (schema, ctx = {}) => {\n\tctx.registry ??= createRegistry({ schemas: ctx.schemaComponents });\n\tctx.opts ??= {};\n\tctx.io ??= \"output\";\n\tconst registrySchemas = Object.fromEntries(ctx.registry.components.schemas[ctx.io]);\n\tconst schemas = { zodOpenApiCreateSchema: { zodType: schema } };\n\tObject.assign(schemas, registrySchemas);\n\tconst jsonSchemas = createSchemas(schemas, {\n\t\tregistry: ctx.registry,\n\t\tio: ctx.io,\n\t\topts: {\n\t\t\t...ctx.opts,\n\t\t\tschemaRefPath: ctx.schemaRefPath\n\t\t},\n\t\topenapiVersion: ctx.openapiVersion\n\t});\n\treturn {\n\t\tschema: jsonSchemas.schemas.zodOpenApiCreateSchema,\n\t\tcomponents: jsonSchemas.components\n\t};\n};\nconst zodOpenApiMetadataFields = [\n\t\"param\",\n\t\"header\",\n\t\"unusedIO\",\n\t\"override\",\n\t\"outputId\"\n];\nconst deleteZodOpenApiMeta = (jsonSchema) => {\n\tzodOpenApiMetadataFields.forEach((field) => {\n\t\tdelete jsonSchema[field];\n\t});\n};\nconst deleteInvalidJsonSchemaFields = (jsonSchema) => {\n\tdelete jsonSchema.$schema;\n\tdelete jsonSchema.id;\n\tdelete jsonSchema.$id;\n};\nconst createSchemas = (schemas, ctx) => {\n\tconst refPath = ctx.opts.schemaRefPath ?? \"#/components/schemas/\";\n\tconst entries = {};\n\tfor (const [name, { zodType }] of Object.entries(schemas)) entries[name] = zodType;\n\tconst zodRegistry = registry();\n\tzodRegistry.add(object(entries), { id: \"zodOpenApiCreateSchema\" });\n\tfor (const [id, { zodType }] of ctx.registry.components.schemas.manual) zodRegistry.add(zodType, { id });\n\tconst outputIds = /* @__PURE__ */ new Map();\n\tconst defsName = satisfiesVersion(ctx.openapiVersion ?? \"3.1.0\", \"3.1.0\") ? \"$defs\" : \"definitions\";\n\tconst previousContext = {};\n\tconst jsonSchema = toJSONSchema$1(zodRegistry, {\n\t\toverride(context) {\n\t\t\tconst meta = globalRegistry$1.get(context.zodSchema);\n\t\t\tif (meta?.outputId && meta?.id) outputIds.set(meta.id, meta.outputId);\n\t\t\tif (context.jsonSchema.$ref) return;\n\t\t\tconst enrichedContext = {\n\t\t\t\t...context,\n\t\t\t\tio: ctx.io\n\t\t\t};\n\t\t\toverride(enrichedContext);\n\t\t\tif (typeof ctx.opts.override === \"function\") ctx.opts.override(enrichedContext);\n\t\t\tif (typeof meta?.override === \"function\") {\n\t\t\t\tmeta.override(enrichedContext);\n\t\t\t\tdelete context.jsonSchema.override;\n\t\t\t}\n\t\t\tif (typeof meta?.override === \"object\" && meta.override !== null) {\n\t\t\t\tObject.assign(context.jsonSchema, meta.override);\n\t\t\t\tdelete context.jsonSchema.override;\n\t\t\t}\n\t\t\tdeleteInvalidJsonSchemaFields(context.jsonSchema);\n\t\t\tdeleteZodOpenApiMeta(context.jsonSchema);\n\t\t\tvalidate(enrichedContext, ctx.opts, previousContext);\n\t\t},\n\t\tio: ctx.io,\n\t\tunrepresentable: \"any\",\n\t\treused: ctx.opts.reused,\n\t\tcycles: ctx.opts.cycles,\n\t\ttarget: satisfiesVersion(ctx.openapiVersion ?? \"3.1.0\", \"3.1.0\") ? void 0 : \"openapi-3.0\",\n\t\turi: (id) => id === \"__shared\" ? `#ZOD_OPENAPI/${id}` : `#ZOD_OPENAPI/__shared#/${defsName}/${id}`\n\t});\n\tconst components = jsonSchema.schemas.__shared?.[defsName] ?? {};\n\tjsonSchema.schemas.__shared ??= { [defsName]: components };\n\tconst dynamicComponents = /* @__PURE__ */ new Map();\n\tfor (const [key, value] of Object.entries(components)) {\n\t\tdeleteInvalidJsonSchemaFields(value);\n\t\tif (/^schema\\d+$/.test(key)) {\n\t\t\tconst newName = `__schema${ctx.registry.components.schemas.dynamicSchemaCount++}`;\n\t\t\tdynamicComponents.set(key, `\"${refPath}${newName}\"`);\n\t\t\tif (newName !== key) {\n\t\t\t\tcomponents[newName] = value;\n\t\t\t\tdelete components[key];\n\t\t\t}\n\t\t}\n\t}\n\tfor (const [key] of ctx.registry.components.schemas.manual) {\n\t\tconst manualComponent = jsonSchema.schemas[key];\n\t\tif (!manualComponent) continue;\n\t\tdeleteInvalidJsonSchemaFields(manualComponent);\n\t}\n\tconst manualUsed = {};\n\tconst parsedJsonSchema = JSON.parse(JSON.stringify(jsonSchema).replace(/\"#ZOD_OPENAPI\\/__shared#\\/(?:\\$defs|definitions)\\/([^\"]+)\"/g, (_, match) => {\n\t\tconst dynamic = dynamicComponents.get(match);\n\t\tif (dynamic) return dynamic;\n\t\tif (ctx.registry.components.schemas.manual.get(match)) manualUsed[match] = true;\n\t\treturn `\"${refPath}${match}\"`;\n\t}));\n\tconst parsedComponents = parsedJsonSchema.schemas.__shared?.[defsName] ?? {};\n\tparsedJsonSchema.schemas.__shared ??= { [defsName]: parsedComponents };\n\tfor (const [key] of ctx.registry.components.schemas.manual) {\n\t\tconst manualComponent = parsedJsonSchema.schemas[key];\n\t\tif (!manualComponent) continue;\n\t\tif (manualUsed[key]) {\n\t\t\tif (parsedComponents[key]) throw new Error(`Component \"${key}\" is already registered as a component in the registry`);\n\t\t\tparsedComponents[key] = manualComponent;\n\t\t}\n\t}\n\tconst componentsToRename = renameComponents(parsedComponents, outputIds, ctx, refPath);\n\tif (!componentsToRename.size) {\n\t\tconst parsedSchemas = parsedJsonSchema.schemas.zodOpenApiCreateSchema?.properties;\n\t\tdelete parsedJsonSchema.schemas.zodOpenApiCreateSchema;\n\t\tdelete parsedJsonSchema.schemas.__shared;\n\t\treturn {\n\t\t\tschemas: parsedSchemas,\n\t\t\tcomponents: parsedComponents,\n\t\t\tmanual: parsedJsonSchema.schemas\n\t\t};\n\t}\n\tconst renamedJsonSchema = JSON.parse(JSON.stringify(parsedJsonSchema).replace(new RegExp(`\"${refPath}([^\"]+)\"`, \"g\"), (_, match) => {\n\t\tconst replacement = componentsToRename.get(match);\n\t\tif (replacement) return `\"${refPath}${replacement}\"`;\n\t\treturn `\"${refPath}${match}\"`;\n\t}));\n\tconst renamedSchemas = renamedJsonSchema.schemas.zodOpenApiCreateSchema?.properties;\n\tconst renamedComponents = renamedJsonSchema.schemas.__shared?.[defsName] ?? {};\n\tdelete renamedJsonSchema.schemas.zodOpenApiCreateSchema;\n\tdelete renamedJsonSchema.schemas.__shared;\n\treturn {\n\t\tschemas: renamedSchemas,\n\t\tcomponents: renamedComponents,\n\t\tmanual: renamedJsonSchema.schemas\n\t};\n};\n\n//#endregion\n//#region src/create/components.ts\nconst createRegistry = (components) => {\n\tconst registry$1 = {\n\t\tcomponents: {\n\t\t\tschemas: {\n\t\t\t\tdynamicSchemaCount: 0,\n\t\t\t\tinput: /* @__PURE__ */ new Map(),\n\t\t\t\toutput: /* @__PURE__ */ new Map(),\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tmanual: /* @__PURE__ */ new Map()\n\t\t\t},\n\t\t\theaders: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\trequestBodies: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\tparameters: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\tcallbacks: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\tpathItems: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\tsecuritySchemes: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\tlinks: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t},\n\t\t\texamples: {\n\t\t\t\tids: /* @__PURE__ */ new Map(),\n\t\t\t\tseen: /* @__PURE__ */ new WeakMap()\n\t\t\t}\n\t\t},\n\t\taddSchema: (schema, path, opts) => {\n\t\t\tconst schemaObject = {};\n\t\t\tregistry$1.components.schemas[opts.io].set(path.join(\" > \"), {\n\t\t\t\tschemaObject,\n\t\t\t\tzodType: schema,\n\t\t\t\tsource: {\n\t\t\t\t\tpath,\n\t\t\t\t\t...opts?.source\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn schemaObject;\n\t\t},\n\t\taddParameter: (parameter, path, opts) => {\n\t\t\tconst seenParameter = registry$1.components.parameters.seen.get(parameter);\n\t\t\tif (seenParameter) return seenParameter;\n\t\t\tconst meta = globalRegistry.get(parameter);\n\t\t\tconst name = opts?.location?.name ?? meta?.param?.name;\n\t\t\tconst inLocation = opts?.location?.in ?? meta?.param?.in;\n\t\t\tif (opts?.location?.name && meta?.param?.name || opts?.location?.in && meta?.param?.in) throw new Error(`Parameter at ${path.join(\" > \")} has both \\`.meta({ param: { name, in } })\\` and \\`.meta({ param: { location: { in, name } } })\\` information`);\n\t\t\tif (!name || !inLocation) throw new Error(`Parameter at ${path.join(\" > \")} is missing \\`.meta({ param: { name, in } })\\` information`);\n\t\t\tconst schemaObject = registry$1.addSchema(parameter, [\n\t\t\t\t...path,\n\t\t\t\tinLocation,\n\t\t\t\tname,\n\t\t\t\t\"schema\"\n\t\t\t], {\n\t\t\t\tio: \"input\",\n\t\t\t\tsource: {\n\t\t\t\t\ttype: \"parameter\",\n\t\t\t\t\tlocation: {\n\t\t\t\t\t\tin: inLocation,\n\t\t\t\t\t\tname\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst { id: metaId, examples, ...rest } = meta?.param ?? {};\n\t\t\tconst parameterObject = {\n\t\t\t\tin: inLocation,\n\t\t\t\tname,\n\t\t\t\tschema: schemaObject,\n\t\t\t\t...rest\n\t\t\t};\n\t\t\tconst examplesObject = createExamples(examples, registry$1, [\n\t\t\t\t...path,\n\t\t\t\tinLocation,\n\t\t\t\tname,\n\t\t\t\t\"examples\"\n\t\t\t]);\n\t\t\tif (examplesObject) parameterObject.examples = examplesObject;\n\t\t\tif (isRequired(parameter, \"input\")) parameterObject.required = true;\n\t\t\tif (!parameterObject.description && meta?.description) parameterObject.description = meta.description;\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.parameters.ids.has(id)) throw new Error(`Schema \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/parameters/${id}` };\n\t\t\t\tregistry$1.components.parameters.seen.set(parameter, ref);\n\t\t\t\tregistry$1.components.parameters.ids.set(id, parameterObject);\n\t\t\t\tif (opts?.manualId) return parameterObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tif (opts?.location?.name || opts?.location?.in) return parameterObject;\n\t\t\tregistry$1.components.parameters.seen.set(parameter, parameterObject);\n\t\t\treturn parameterObject;\n\t\t},\n\t\taddHeader: (header, path, opts) => {\n\t\t\tconst seenHeader = registry$1.components.headers.seen.get(header);\n\t\t\tif (seenHeader) return seenHeader;\n\t\t\tconst meta = globalRegistry.get(header);\n\t\t\tconst { id: metaId, ...rest } = meta?.header ?? {};\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tconst headerObject = rest;\n\t\t\tif (isRequired(header, \"output\")) headerObject.required = true;\n\t\t\tif (!headerObject.description && meta?.description) headerObject.description = meta.description;\n\t\t\theaderObject.schema = registry$1.addSchema(header, [...path, \"schema\"], {\n\t\t\t\tio: \"output\",\n\t\t\t\tsource: { type: \"header\" }\n\t\t\t});\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.schemas.ids.has(id)) throw new Error(`Schema \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/headers/${id}` };\n\t\t\t\tregistry$1.components.headers.ids.set(id, headerObject);\n\t\t\t\tregistry$1.components.headers.seen.set(header, ref);\n\t\t\t\tif (opts?.manualId) return headerObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.headers.seen.set(header, headerObject);\n\t\t\treturn headerObject;\n\t\t},\n\t\taddRequestBody: (requestBody, path, opts) => {\n\t\t\tconst seenRequestBody = registry$1.components.requestBodies.seen.get(requestBody);\n\t\t\tif (seenRequestBody) return seenRequestBody;\n\t\t\tconst { content, id: metaId, ...rest } = requestBody;\n\t\t\tconst requestBodyObject = {\n\t\t\t\t...rest,\n\t\t\t\tcontent: createContent(content, {\n\t\t\t\t\tregistry: registry$1,\n\t\t\t\t\tio: \"input\"\n\t\t\t\t}, [...path, \"content\"])\n\t\t\t};\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.requestBodies.ids.has(id)) throw new Error(`RequestBody \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/requestBodies/${id}` };\n\t\t\t\tregistry$1.components.requestBodies.ids.set(id, requestBodyObject);\n\t\t\t\tregistry$1.components.requestBodies.seen.set(requestBody, ref);\n\t\t\t\tif (opts?.manualId) return requestBodyObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.requestBodies.seen.set(requestBody, requestBodyObject);\n\t\t\treturn requestBodyObject;\n\t\t},\n\t\taddPathItem: (pathItem, path, opts) => {\n\t\t\tconst seenPathItem = registry$1.components.pathItems.seen.get(pathItem);\n\t\t\tif (seenPathItem) return seenPathItem;\n\t\t\tconst pathItemObject = {};\n\t\t\tconst { id: metaId, ...rest } = pathItem;\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tfor (const [key, value] of Object.entries(rest)) {\n\t\t\t\tif (isISpecificationExtension(key)) {\n\t\t\t\t\tpathItemObject[key] = value;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (key === \"get\" || key === \"put\" || key === \"post\" || key === \"delete\" || key === \"options\" || key === \"head\" || key === \"patch\" || key === \"trace\") {\n\t\t\t\t\tpathItemObject[key] = createOperation(value, registry$1, [...path, key]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (key === \"parameters\") {\n\t\t\t\t\tpathItemObject[key] = createManualParameters(value, registry$1, [...path, key]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tpathItemObject[key] = value;\n\t\t\t}\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.pathItems.ids.has(id)) throw new Error(`PathItem \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/pathItems/${id}` };\n\t\t\t\tregistry$1.components.pathItems.ids.set(id, pathItemObject);\n\t\t\t\tregistry$1.components.pathItems.seen.set(pathItem, ref);\n\t\t\t\tif (opts?.manualId) return pathItemObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.pathItems.seen.set(pathItem, pathItemObject);\n\t\t\treturn pathItemObject;\n\t\t},\n\t\taddResponse: (response, path, opts) => {\n\t\t\tconst seenResponse = registry$1.components.responses.seen.get(response);\n\t\t\tif (seenResponse) return seenResponse;\n\t\t\tconst { content, headers, links, id: metaId, ...rest } = response;\n\t\t\tconst responseObject = rest;\n\t\t\tconst maybeHeaders = createHeaders(headers, registry$1, [...path, \"headers\"]);\n\t\t\tif (maybeHeaders) responseObject.headers = maybeHeaders;\n\t\t\tif (content) responseObject.content = createContent(content, {\n\t\t\t\tregistry: registry$1,\n\t\t\t\tio: \"output\"\n\t\t\t}, [...path, \"content\"]);\n\t\t\tif (links) responseObject.links = createLinks(links, registry$1, [...path, \"links\"]);\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.responses.ids.has(id)) throw new Error(`Response \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/responses/${id}` };\n\t\t\t\tregistry$1.components.responses.ids.set(id, responseObject);\n\t\t\t\tregistry$1.components.responses.seen.set(response, ref);\n\t\t\t\tif (opts?.manualId) return responseObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.responses.seen.set(response, responseObject);\n\t\t\treturn responseObject;\n\t\t},\n\t\taddCallback: (callback, path, opts) => {\n\t\t\tconst seenCallback = registry$1.components.callbacks.seen.get(callback);\n\t\t\tif (seenCallback) return seenCallback;\n\t\t\tconst { id: metaId, ...rest } = callback;\n\t\t\tconst callbackObject = {};\n\t\t\tfor (const [name, pathItem] of Object.entries(rest)) {\n\t\t\t\tif (isISpecificationExtension(name)) {\n\t\t\t\t\tcallbackObject[name] = pathItem;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcallbackObject[name] = registry$1.addPathItem(pathItem, [...path, name]);\n\t\t\t}\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.callbacks.ids.has(id)) throw new Error(`Callback \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/callbacks/${id}` };\n\t\t\t\tregistry$1.components.callbacks.ids.set(id, callbackObject);\n\t\t\t\tregistry$1.components.callbacks.seen.set(callback, ref);\n\t\t\t\tif (opts?.manualId) return callbackObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.callbacks.seen.set(callback, callbackObject);\n\t\t\treturn callbackObject;\n\t\t},\n\t\taddSecurityScheme: (securityScheme, path, opts) => {\n\t\t\tconst seenSecurityScheme = registry$1.components.securitySchemes.seen.get(securityScheme);\n\t\t\tif (seenSecurityScheme) return seenSecurityScheme;\n\t\t\tconst { id: metaId, ...rest } = securityScheme;\n\t\t\tconst securitySchemeObject = rest;\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.securitySchemes.ids.has(id)) throw new Error(`SecurityScheme \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/securitySchemes/${id}` };\n\t\t\t\tregistry$1.components.securitySchemes.ids.set(id, securitySchemeObject);\n\t\t\t\tregistry$1.components.securitySchemes.seen.set(securityScheme, ref);\n\t\t\t\tif (opts?.manualId) return securitySchemeObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.securitySchemes.seen.set(securityScheme, securitySchemeObject);\n\t\t\treturn securitySchemeObject;\n\t\t},\n\t\taddLink: (link, path, opts) => {\n\t\t\tconst seenLink = registry$1.components.links.seen.get(link);\n\t\t\tif (seenLink) return seenLink;\n\t\t\tconst { id: metaId, ...rest } = link;\n\t\t\tconst linkObject = rest;\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.links.ids.has(id)) throw new Error(`Link \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/links/${id}` };\n\t\t\t\tregistry$1.components.links.ids.set(id, linkObject);\n\t\t\t\tregistry$1.components.links.seen.set(link, ref);\n\t\t\t\tif (opts?.manualId) return linkObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.links.seen.set(link, linkObject);\n\t\t\treturn linkObject;\n\t\t},\n\t\taddExample: (example, path, opts) => {\n\t\t\tconst seenExample = registry$1.components.examples.seen.get(example);\n\t\t\tif (seenExample) return seenExample;\n\t\t\tconst { id: metaId, ...rest } = example;\n\t\t\tconst exampleObject = rest;\n\t\t\tconst id = metaId ?? opts?.manualId;\n\t\t\tif (id) {\n\t\t\t\tif (registry$1.components.examples.ids.has(id)) throw new Error(`Example \"${id}\" at ${path.join(\" > \")} is already registered`);\n\t\t\t\tconst ref = { $ref: `#/components/examples/${id}` };\n\t\t\t\tregistry$1.components.examples.ids.set(id, exampleObject);\n\t\t\t\tregistry$1.components.examples.seen.set(example, ref);\n\t\t\t\tif (opts?.manualId) return exampleObject;\n\t\t\t\treturn ref;\n\t\t\t}\n\t\t\tregistry$1.components.examples.seen.set(example, exampleObject);\n\t\t\treturn exampleObject;\n\t\t}\n\t};\n\tregisterSchemas(components?.schemas, registry$1);\n\tregisterParameters(components?.parameters, registry$1);\n\tregisterHeaders(components?.headers, registry$1);\n\tregisterResponses(components?.responses, registry$1);\n\tregisterPathItems(components?.pathItems, registry$1);\n\tregisterRequestBodies(components?.requestBodies, registry$1);\n\tregisterCallbacks(components?.callbacks, registry$1);\n\tregisterSecuritySchemes(components?.securitySchemes, registry$1);\n\tregisterLinks(components?.links, registry$1);\n\tregisterExamples(components?.examples, registry$1);\n\treturn registry$1;\n};\nconst registerSchemas = (schemas, registry$1) => {\n\tif (!schemas) return;\n\tfor (const [key, schema] of Object.entries(schemas)) {\n\t\tif (isAnyZodType(schema)) {\n\t\t\tconst id = globalRegistry.get(schema)?.id ?? key;\n\t\t\tregistry$1.components.schemas.manual.set(id, {\n\t\t\t\tinput: { schemaObject: {} },\n\t\t\t\toutput: { schemaObject: {} },\n\t\t\t\tzodType: schema\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tregistry$1.components.schemas.ids.set(key, schema);\n\t}\n};\nconst registerParameters = (parameters, registry$1) => {\n\tif (!parameters) return;\n\tfor (const [key, schema] of Object.entries(parameters)) {\n\t\tif (isAnyZodType(schema)) {\n\t\t\tconst path = [\n\t\t\t\t\"components\",\n\t\t\t\t\"parameters\",\n\t\t\t\tkey\n\t\t\t];\n\t\t\tregistry$1.addParameter(schema, path, { manualId: key });\n\t\t\tcontinue;\n\t\t}\n\t\tregistry$1.components.parameters.ids.set(key, schema);\n\t}\n};\nconst registerHeaders = (headers, registry$1) => {\n\tif (!headers) return;\n\tfor (const [key, schema] of Object.entries(headers)) {\n\t\tif (isAnyZodType(schema)) {\n\t\t\tconst path = [\n\t\t\t\t\"components\",\n\t\t\t\t\"headers\",\n\t\t\t\tkey\n\t\t\t];\n\t\t\tregistry$1.addHeader(schema, path, { manualId: key });\n\t\t\tcontinue;\n\t\t}\n\t\tregistry$1.components.headers.ids.set(key, schema);\n\t}\n};\nconst registerResponses = (responses, registry$1) => {\n\tif (!responses) return;\n\tfor (const [key, schema] of Object.entries(responses)) {\n\t\tconst responseObject = registry$1.addResponse(schema, [\n\t\t\t\"components\",\n\t\t\t\"responses\",\n\t\t\tkey\n\t\t], { manualId: key });\n\t\tregistry$1.components.responses.ids.set(key, responseObject);\n\t\tregistry$1.components.responses.seen.set(schema, responseObject);\n\t}\n};\nconst registerRequestBodies = (requestBodies, registry$1) => {\n\tif (!requestBodies) return;\n\tfor (const [key, schema] of Object.entries(requestBodies)) {\n\t\tif (isAnyZodType(schema)) {\n\t\t\tregistry$1.addRequestBody(schema, [\n\t\t\t\t\"components\",\n\t\t\t\t\"requestBodies\",\n\t\t\t\tkey\n\t\t\t], { manualId: key });\n\t\t\tcontinue;\n\t\t}\n\t\tregistry$1.components.requestBodies.ids.set(key, schema);\n\t}\n};\nconst registerCallbacks = (callbacks, registry$1) => {\n\tif (!callbacks) return;\n\tfor (const [key, schema] of Object.entries(callbacks)) registry$1.addCallback(schema, [\n\t\t\"components\",\n\t\t\"callbacks\",\n\t\tkey\n\t], { manualId: key });\n};\nconst registerPathItems = (pathItems, registry$1) => {\n\tif (!pathItems) return;\n\tfor (const [key, schema] of Object.entries(pathItems)) registry$1.addPathItem(schema, [\n\t\t\"components\",\n\t\t\"pathItems\",\n\t\tkey\n\t], { manualId: key });\n};\nconst registerSecuritySchemes = (securitySchemes, registry$1) => {\n\tif (!securitySchemes) return;\n\tfor (const [key, schema] of Object.entries(securitySchemes)) registry$1.addSecurityScheme(schema, [\n\t\t\"components\",\n\t\t\"securitySchemes\",\n\t\tkey\n\t], { manualId: key });\n};\nconst registerLinks = (links, registry$1) => {\n\tif (!links) return;\n\tfor (const [key, schema] of Object.entries(links)) registry$1.addLink(schema, [\n\t\t\"components\",\n\t\t\"links\",\n\t\tkey\n\t], { manualId: key });\n};\nconst registerExamples = (examples, registry$1) => {\n\tif (!examples) return;\n\tfor (const [key, schema] of Object.entries(examples)) registry$1.components.examples.ids.set(key, schema);\n};\nconst createIOSchemas = (ctx) => {\n\tconst { schemas, components, manual } = createSchemas(Object.fromEntries(ctx.registry.components.schemas[ctx.io]), ctx);\n\tfor (const [key, schema] of Object.entries(components)) ctx.registry.components.schemas.ids.set(key, schema);\n\tfor (const [key, schema] of Object.entries(schemas)) {\n\t\tconst ioSchema = ctx.registry.components.schemas[ctx.io].get(key);\n\t\tif (ioSchema) Object.assign(ioSchema.schemaObject, schema);\n\t}\n\tfor (const [key, value] of Object.entries(manual)) {\n\t\tconst manualSchema = ctx.registry.components.schemas.manual.get(key);\n\t\tif (!manualSchema) continue;\n\t\tif (components[key]) manualSchema[ctx.io].used = true;\n\t\tObject.assign(manualSchema[ctx.io].schemaObject, value);\n\t}\n};\nconst createManualSchemas = (registry$1) => {\n\tfor (const [key, value] of registry$1.components.schemas.manual) if (!value.input.used) {\n\t\tconst schema = value[globalRegistry.get(value.zodType)?.unusedIO ?? \"output\"].schemaObject;\n\t\tregistry$1.components.schemas.ids.set(key, schema);\n\t}\n};\nconst createComponents = (registry$1, opts, openapiVersion) => {\n\tcreateIOSchemas({\n\t\tregistry: registry$1,\n\t\tio: \"input\",\n\t\topts,\n\t\topenapiVersion\n\t});\n\tcreateIOSchemas({\n\t\tregistry: registry$1,\n\t\tio: \"output\",\n\t\topts,\n\t\topenapiVersion\n\t});\n\tcreateManualSchemas(registry$1);\n\tconst components = {};\n\tif (registry$1.components.schemas.ids.size > 0) components.schemas = Object.fromEntries(registry$1.components.schemas.ids);\n\tif (registry$1.components.headers.ids.size > 0) components.headers = Object.fromEntries(registry$1.components.headers.ids);\n\tif (registry$1.components.requestBodies.ids.size > 0) components.requestBodies = Object.fromEntries(registry$1.components.requestBodies.ids);\n\tif (registry$1.components.responses.ids.size > 0) components.responses = Object.fromEntries(registry$1.components.responses.ids);\n\tif (registry$1.components.parameters.ids.size > 0) components.parameters = Object.fromEntries(registry$1.components.parameters.ids);\n\tif (registry$1.components.callbacks.ids.size > 0) components.callbacks = Object.fromEntries(registry$1.components.callbacks.ids);\n\tif (registry$1.components.pathItems.ids.size > 0) components.pathItems = Object.fromEntries(registry$1.components.pathItems.ids);\n\tif (registry$1.components.securitySchemes.ids.size > 0) components.securitySchemes = Object.fromEntries(registry$1.components.securitySchemes.ids);\n\tif (registry$1.components.links.ids.size > 0) components.links = Object.fromEntries(registry$1.components.links.ids);\n\tif (registry$1.components.examples.ids.size > 0) components.examples = Object.fromEntries(registry$1.components.examples.ids);\n\treturn components;\n};\n\n//#endregion\nexport { unwrapZodObject as a, createPaths as i, createRegistry as n, isAnyZodType as o, createSchema as r, createComponents as t };","import { i as createPaths, n as createRegistry, r as createSchema, t as createComponents } from \"./components-DiNDbisK.mjs\";\n\n//#region src/create/document.ts\nconst createDocument = (zodOpenApiObject, opts = {}) => {\n\tconst { paths, webhooks, components, ...rest } = zodOpenApiObject;\n\tconst document = rest;\n\tconst registry = createRegistry(components);\n\tconst createdPaths = createPaths(paths, registry, [\"paths\"]);\n\tif (createdPaths) document.paths = createdPaths;\n\tconst createdWebhooks = createPaths(webhooks, registry, [\"webhooks\"]);\n\tif (createdWebhooks) document.webhooks = createdWebhooks;\n\tconst createdComponents = createComponents(registry, opts, zodOpenApiObject.openapi);\n\tif (Object.keys(createdComponents).length > 0) document.components = createdComponents;\n\treturn document;\n};\n\n//#endregion\n//#region packages/openapi3-ts/src/dist/oas31.ts\nvar oas31_exports = {};\n\n//#endregion\nexport { createDocument, createSchema, oas31_exports as oas31 };","/**\n * OpenAPI 3.1 document generator.\n *\n * Builds the full OpenAPI spec from Zod schemas. The Zod schemas are the\n * single source of truth -- we never hand-write OpenAPI YAML.\n *\n * Covers all public API domains.\n */\n\nimport { z } from \"zod\";\nimport { createDocument, type ZodOpenApiPathsObject, type oas31 } from \"zod-openapi\";\n\nimport {\n\tcommentBulkBody,\n\tcommentBulkResponseSchema,\n\tcommentCountsResponseSchema,\n\tcommentListQuery,\n\tcommentSchema,\n\tcommentStatusBody,\n\tcreateCommentBody,\n\tadminCommentListResponseSchema,\n\tpublicCommentListResponseSchema,\n} from \"../schemas/comments.js\";\nimport {\n\tapiErrorSchema,\n\tdeleteResponseSchema,\n\tmediaDeleteResponseSchema,\n\tsuccessEnvelope,\n} from \"../schemas/common.js\";\nimport {\n\tcontentCompareResponseSchema,\n\tcontentAuthorsResponseSchema,\n\tcontentCreateBody,\n\tcontentItemSchema,\n\tcontentListQuery,\n\tcontentListResponseSchema,\n\tcontentPublishBody,\n\tcontentRestoreResponseSchema,\n\tcontentRevisionConditionBody,\n\tcontentResponseSchema,\n\tcontentScheduleBody,\n\tcontentTermsBody,\n\tcontentTermsResponseSchema,\n\tcontentTrashQuery,\n\tcontentTranslationsResponseSchema,\n\tcontentUpdateBody,\n\ttrashedContentListResponseSchema,\n} from \"../schemas/content.js\";\nimport {\n\tentryLockAcquireBody,\n\tentryMutationConflictSchema,\n\tentryLockReleaseResponseSchema,\n\tentryLockStatusSchema,\n} from \"../schemas/entry-lock.js\";\nimport {\n\tmediaUsageDetailsQuery,\n\tmediaUsageDetailsResponseSchema,\n\tmediaUsageProgressSchema,\n\tmediaUsageProgressAdvanceResponseSchema,\n\tmediaUsageCollectionDeletionListQuery,\n\tmediaUsageCollectionDeletionListResponseSchema,\n\tmediaUsageCollectionDeletionRetryBody,\n\tmediaUsageCollectionDeletionRetryResponseSchema,\n\tmediaUsageActivationStatusSchema,\n\tmediaUsageActivationAdvanceBody,\n\tmediaUsageActivationAdvanceResponseSchema,\n\tmediaUsageActivationConflictSchema,\n\tmediaUsageRepairBody,\n\tmediaUsageRepairResponseSchema,\n\tmediaUsageWorkListQuery,\n\tmediaUsageWorkListResponseSchema,\n\tmediaUsageWorkRetryBody,\n\tmediaUsageWorkRetryConflictSchema,\n\tmediaUsageWorkRetryResponseSchema,\n} from \"../schemas/media-usage.js\";\nimport {\n\tDEFAULT_MAX_UPLOAD_SIZE,\n\tmediaConfirmBody,\n\tmediaConfirmResponseSchema,\n\tmediaDirectUploadBody,\n\tmediaExistingResponseSchema,\n\tmediaFolderBody,\n\tmediaFolderIdSchema,\n\tmediaFolderListQuery,\n\tmediaFolderListResponseSchema,\n\tmediaFolderResponseSchema,\n\tmediaGetQuery,\n\tmediaListQuery,\n\tmediaListReadResponseSchema,\n\tmediaListResponseSchema,\n\tmediaReadResponseSchema,\n\tmediaReplaceBody,\n\tmediaReplaceResponseSchema,\n\tmediaResponseSchema,\n\tmediaStreamUploadResponseSchema,\n\tmediaUpdateBody,\n\tmediaUploadUrlBody,\n\tmediaUploadUrlResponseSchema,\n\tmediaUploadResponseSchema,\n} from \"../schemas/media.js\";\nimport {\n\tcreateMenuBody,\n\tcreateMenuItemBody,\n\tmenuListItemSchema,\n\tmenuItemSchema,\n\tmenuWithItemsSchema,\n\treorderMenuItemsBody,\n\tupdateMenuBody,\n\tupdateMenuItemBody,\n} from \"../schemas/menus.js\";\nimport {\n\tcreateRedirectBody,\n\tnotFoundListQuery,\n\tnotFoundPruneBody,\n\tnotFoundListResponseSchema,\n\tnotFoundSummaryResponseSchema,\n\tredirectListResponseSchema,\n\tredirectSchema,\n\tredirectsListQuery,\n\tupdateRedirectBody,\n} from \"../schemas/redirects.js\";\nimport {\n\tcollectionGetQuery,\n\tcollectionListResponseSchema,\n\tcollectionResponseSchema,\n\tcollectionWithFieldsResponseSchema,\n\tcreateCollectionBody,\n\tcreateFieldBody,\n\tfieldListResponseSchema,\n\tcollectionReorderBody,\n\tfieldReorderBody,\n\tfieldResponseSchema,\n\torphanedTableListResponseSchema,\n\torphanRegisterBody,\n\tupdateCollectionBody,\n\tupdateFieldBody,\n\tactivateBlockTypeVersionBody,\n\tblockTypeListResponseSchema,\n\tblockTypeResponseSchema,\n\tcreateBlockTypeBody,\n\tupdateBlockTypeBody,\n} from \"../schemas/schema.js\";\nimport {\n\tsearchEnableBody,\n\tsearchQuery,\n\tsearchRebuildBody,\n\tsearchResponseSchema,\n\tsearchSuggestQuery,\n} from \"../schemas/search.js\";\nimport {\n\tcreateSectionBody,\n\tsectionListResponseSchema,\n\tsectionSchema,\n\tsectionsListQuery,\n\tupdateSectionBody,\n} from \"../schemas/sections.js\";\nimport { settingsUpdateBody, siteSettingsSchema } from \"../schemas/settings.js\";\nimport {\n\tcreateTermBody,\n\treorderTermsBody,\n\ttaxonomyDefTranslationsSchema,\n\ttaxonomyListResponseSchema,\n\ttaxonomyResponseSchema,\n\ttermGetResponseSchema,\n\ttermListQuery,\n\ttermListResponseSchema,\n\ttermReorderResponseSchema,\n\ttermResponseSchema,\n\tupdateTaxonomyDefBody,\n\tupdateTermBody,\n} from \"../schemas/taxonomies.js\";\nimport {\n\ttransferApprovalListQuery,\n\ttransferApprovalListResponseSchema,\n\ttransferApprovalResponseSchema,\n\ttransferCapabilitiesSchema,\n\ttransferFileUploadResponseSchema,\n\ttransferImportAnalyzeBody,\n\ttransferImportAnalyzeResponseSchema,\n\ttransferImportCreateResponseSchema,\n\ttransferImportPlanResponseSchema,\n\ttransferImportStatusResponseSchema,\n\ttransferMissingFilesResponseSchema,\n\ttransferOperationListResponseSchema,\n\ttransferOperationResponseSchema,\n\ttransferPaginationQuery,\n\ttransferAdvanceResponseSchema,\n\ttransferExportCreateBody,\n\ttransferExportCreateResponseSchema,\n\ttransferImportExecuteBody,\n\ttransferImportReceiptResponseSchema,\n} from \"../schemas/transfer.js\";\nimport {\n\tallowedDomainCreateBody,\n\tallowedDomainUpdateBody,\n\tuserDetailSchema,\n\tuserListResponseSchema,\n\tuserSchema,\n\tuserUpdateBody,\n\tusersListQuery,\n} from \"../schemas/users.js\";\nimport {\n\tcreateWidgetAreaBody,\n\tcreateWidgetBody,\n\treorderWidgetsBody,\n\tupdateWidgetBody,\n\twidgetAreaSchema,\n\twidgetAreaWithWidgetsAndCountSchema,\n\twidgetAreaWithWidgetsSchema,\n\twidgetSchema,\n} from \"../schemas/widgets.js\";\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nconst JSON_CONTENT = \"application/json\";\nconst MULTIPART_CONTENT = \"multipart/form-data\";\n\n/** Standard error responses shared across all authenticated endpoints */\nfunction standardErrors(\n\t...codes: number[]\n): Record<\n\tstring,\n\t{ description: string; content: Record<string, { schema: typeof apiErrorSchema }> }\n> {\n\tconst responses: Record<\n\t\tstring,\n\t\t{ description: string; content: Record<string, { schema: typeof apiErrorSchema }> }\n\t> = {};\n\tconst errorMap: Record<number, string> = {\n\t\t400: \"Bad Request\",\n\t\t401: \"Not authenticated\",\n\t\t403: \"Forbidden\",\n\t\t404: \"Not Found\",\n\t\t409: \"Conflict\",\n\t\t410: \"Gone\",\n\t\t411: \"Length Required\",\n\t\t413: \"Payload Too Large\",\n\t\t422: \"Unprocessable Entity\",\n\t\t500: \"Internal Server Error\",\n\t\t503: \"Service Unavailable\",\n\t};\n\tfor (const code of codes) {\n\t\tresponses[String(code)] = {\n\t\t\tdescription: errorMap[code] ?? `Error ${code}`,\n\t\t\tcontent: { [JSON_CONTENT]: { schema: apiErrorSchema } },\n\t\t};\n\t}\n\treturn responses;\n}\n\n/** Common auth error responses (401 + 403) */\nconst authErrors = standardErrors(401, 403);\n\nconst entryPathParams = z.object({\n\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\tid: z.string().meta({ description: \"Content ID or slug\" }),\n});\n\n/** 409 for optimistic-concurrency or edit-lock conflicts. */\nconst entryMutationConflict = {\n\t\"409\": {\n\t\tdescription: \"The content changed or another editor holds its edit lock\",\n\t\tcontent: {\n\t\t\t[JSON_CONTENT]: { schema: entryMutationConflictSchema },\n\t\t},\n\t},\n};\n\n// ---------------------------------------------------------------------------\n// Content routes\n// ---------------------------------------------------------------------------\n\nconst contentPaths = {\n\t\"/_emdash/api/content/{collection}\": {\n\t\tget: {\n\t\t\toperationId: \"listContent\",\n\t\t\tsummary: \"List content items\",\n\t\t\tdescription: \"Returns a paginated list of content items in the specified collection.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\", examples: [\"posts\"] }),\n\t\t\t\t}),\n\t\t\t\tquery: contentListQuery,\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Content list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentListResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createContent\",\n\t\t\tsummary: \"Create a content item\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentCreateBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 422, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}\": {\n\t\tget: {\n\t\t\toperationId: \"getContent\",\n\t\t\tsummary: \"Get a content item\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t\tquery: z.object({\n\t\t\t\t\tlocale: z.string().optional().meta({ description: \"Locale filter\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateContent\",\n\t\t\tsummary: \"Update a content item\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t\tquery: z.object({\n\t\t\t\t\tlocale: z.string().optional().meta({ description: \"Locale filter\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentUpdateBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 422, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteContent\",\n\t\t\tsummary: \"Delete a content item (soft delete)\",\n\t\t\tdescription:\n\t\t\t\t\"Moves the content item to trash. Use the permanent delete endpoint to remove permanently.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: entryPathParams,\n\t\t\t\tquery: z.object({\n\t\t\t\t\toverrideLock: z.enum([\"true\", \"false\"]).optional().meta({\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\"Delete even though another editor holds this entry's edit lock. Without it the delete is refused with 409 ENTRY_LOCKED.\",\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(deleteResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t\t...entryMutationConflict,\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/publish\": {\n\t\tpost: {\n\t\t\toperationId: \"publishContent\",\n\t\t\tsummary: \"Publish a content item\",\n\t\t\tdescription:\n\t\t\t\t\"Promotes the current draft to live content and clears any pending schedule. An optional revision token rejects stale publication attempts.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentPublishBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Published content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t...entryMutationConflict,\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/unpublish\": {\n\t\tpost: {\n\t\t\toperationId: \"unpublishContent\",\n\t\t\tsummary: \"Unpublish a content item\",\n\t\t\tdescription: \"Reverts content to draft status.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentRevisionConditionBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Unpublished content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t...entryMutationConflict,\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/schedule\": {\n\t\tpost: {\n\t\t\toperationId: \"scheduleContent\",\n\t\t\tsummary: \"Schedule content for future publishing\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentScheduleBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Scheduled content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t...entryMutationConflict,\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"unscheduleContent\",\n\t\t\tsummary: \"Cancel scheduled publishing\",\n\t\t\tdescription:\n\t\t\t\t\"Clears the scheduled publication time. A scheduled draft returns to draft status; a published item stays published.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: entryPathParams,\n\t\t\t\tquery: z.object({\n\t\t\t\t\toverrideLock: z.enum([\"true\", \"false\"]).optional().meta({\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\"Unschedule even though another editor holds this entry's edit lock. Without it the request is refused with 409 ENTRY_LOCKED.\",\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Unscheduled content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t\t...entryMutationConflict,\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/duplicate\": {\n\t\tpost: {\n\t\t\toperationId: \"duplicateContent\",\n\t\t\tsummary: \"Duplicate a content item\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Duplicated content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ item: contentItemSchema })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/restore\": {\n\t\tpost: {\n\t\t\toperationId: \"restoreContent\",\n\t\t\tsummary: \"Restore a content item from trash\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Restored\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentRestoreResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/permanent\": {\n\t\tdelete: {\n\t\t\toperationId: \"permanentDeleteContent\",\n\t\t\tsummary: \"Permanently delete a content item\",\n\t\t\tdescription: \"Permanently removes a trashed content item. This cannot be undone.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Permanently deleted\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(deleteResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/compare\": {\n\t\tget: {\n\t\t\toperationId: \"compareContent\",\n\t\t\tsummary: \"Compare live and draft revisions\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Comparison result\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentCompareResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/discard-draft\": {\n\t\tpost: {\n\t\t\toperationId: \"discardDraft\",\n\t\t\tsummary: \"Discard draft changes\",\n\t\t\tdescription: \"Reverts the content item to its live (published) version.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentRevisionConditionBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Content item reverted to live version\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t...entryMutationConflict,\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/lock\": {\n\t\tget: {\n\t\t\toperationId: \"getEntryLock\",\n\t\t\tsummary: \"Read the entry's edit lock\",\n\t\t\tdescription: \"Reports who is holding the entry, if anyone, without changing the lease.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: entryPathParams,\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Current lock state\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(entryLockStatusSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"acquireEntryLock\",\n\t\t\tsummary: \"Take or refresh the entry's edit lock\",\n\t\t\tdescription:\n\t\t\t\t\"Takes the lock for the caller, or reports who holds it. `heldByCaller` \" +\n\t\t\t\t\"tells the two apart. The lease lasts seven minutes; repeating this call \" +\n\t\t\t\t\"and every save on the entry extend it. `takeover` claims the lock from \" +\n\t\t\t\t\"whoever holds it; their next heartbeat or save reports the new holder.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: entryPathParams,\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: entryLockAcquireBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Lock state after the attempt\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(entryLockStatusSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"releaseEntryLock\",\n\t\t\tsummary: \"Release the caller's edit lock\",\n\t\t\tdescription:\n\t\t\t\t\"Releases the lock only when the caller holds it; `released` is false otherwise.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: entryPathParams,\n\t\t\t\tquery: z.object({\n\t\t\t\t\ttoken: z.string().optional().meta({\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\"The session token sent on acquire. With it, only the tab that last claimed the lock releases it.\",\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Whether a lock was released\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(entryLockReleaseResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/translations\": {\n\t\tget: {\n\t\t\toperationId: \"getContentTranslations\",\n\t\t\tsummary: \"Get translations for a content item\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Translation group members\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentTranslationsResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/{id}/terms/{taxonomy}\": {\n\t\tget: {\n\t\t\toperationId: \"getContentTerms\",\n\t\t\tsummary: \"Get taxonomy terms assigned to a content item\",\n\t\t\tdescription:\n\t\t\t\t\"Returns the terms of one taxonomy that are assigned to the content item, resolved to the item's locale with fallback to the site default.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t\ttaxonomy: z.string().meta({ description: \"Taxonomy name\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Terms assigned to the content item\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentTermsResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"setContentTerms\",\n\t\t\tsummary: \"Set taxonomy terms on a content item\",\n\t\t\tdescription:\n\t\t\t\t\"Assign a set of terms to the content item for the named taxonomy, replacing any existing assignments for that taxonomy. Every term id must belong to the named taxonomy.\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Content ID or slug\" }),\n\t\t\t\t\ttaxonomy: z.string().meta({ description: \"Taxonomy name\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: contentTermsBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Terms updated\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentTermsResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\n\t\"/_emdash/api/content/{collection}/authors\": {\n\t\tget: {\n\t\t\toperationId: \"listContentAuthors\",\n\t\t\tsummary: \"List distinct authors of a collection's content\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Content authors\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(contentAuthorsResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/content/{collection}/trash\": {\n\t\tget: {\n\t\t\toperationId: \"listTrashedContent\",\n\t\t\tsummary: \"List trashed content items\",\n\t\t\ttags: [\"Content\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t}),\n\t\t\t\tquery: contentTrashQuery,\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Trashed content list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(trashedContentListResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Media routes\n// ---------------------------------------------------------------------------\n\nfunction buildMediaPaths(maxUploadSize: number) {\n\treturn {\n\t\t\"/_emdash/api/media\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"listMedia\",\n\t\t\t\tsummary: \"List media items\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Lists media items. Set `includeUsage=1` to attach coverage-aware advisory usage counts; a count may be null when the caller cannot read draft-derived usage.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: { query: mediaListQuery },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media list\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaListReadResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tpost: {\n\t\t\t\toperationId: \"uploadMedia\",\n\t\t\t\tsummary: \"Upload a media item\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: { [MULTIPART_CONTENT]: { schema: mediaDirectUploadBody } },\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Existing deduplicated media item\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(mediaUploadResponseSchema) } },\n\t\t\t\t\t},\n\t\t\t\t\t\"201\": {\n\t\t\t\t\t\tdescription: \"Created media item\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(mediaUploadResponseSchema) } },\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 413, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/folders\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"listMediaFolders\",\n\t\t\t\tsummary: \"List media folders\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: { query: mediaFolderListQuery },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media folder list\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaFolderListResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tpost: {\n\t\t\t\toperationId: \"createMediaFolder\",\n\t\t\t\tsummary: \"Create a media folder\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: mediaFolderBody } } },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"201\": {\n\t\t\t\t\t\tdescription: \"Created media folder\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaFolderResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/folders/{id}\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"getMediaFolder\",\n\t\t\t\tsummary: \"Get a media folder\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: mediaFolderIdSchema.meta({ description: \"Media folder ID\" }) }),\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media folder\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaFolderResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tput: {\n\t\t\t\toperationId: \"updateMediaFolder\",\n\t\t\t\tsummary: \"Update a media folder\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: mediaFolderIdSchema.meta({ description: \"Media folder ID\" }) }),\n\t\t\t\t},\n\t\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: mediaFolderBody } } },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Updated media folder\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaFolderResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tdelete: {\n\t\t\t\toperationId: \"deleteMediaFolder\",\n\t\t\t\tsummary: \"Delete a media folder\",\n\t\t\t\tdescription: \"Deletes the folder and returns its media to the Main library.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: mediaFolderIdSchema.meta({ description: \"Media folder ID\" }) }),\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Deleted media folder\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/{id}\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"getMedia\",\n\t\t\t\tsummary: \"Get a media item\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Gets a media item. Set `includeUsage=1` to attach a coverage-aware advisory usage count; the count may be null when the caller cannot read draft-derived usage.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t\tquery: mediaGetQuery,\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media item\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(mediaReadResponseSchema) } },\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tput: {\n\t\t\t\toperationId: \"updateMedia\",\n\t\t\t\tsummary: \"Update media metadata\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t},\n\t\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: mediaUpdateBody } } },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Updated media item\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(mediaResponseSchema) } },\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tdelete: {\n\t\t\t\toperationId: \"deleteMedia\",\n\t\t\t\tsummary: \"Delete a media item\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(mediaDeleteResponseSchema) } },\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/{id}/usage\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"getMediaUsage\",\n\t\t\t\tsummary: \"Get media usage details\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Returns paginated content entry groups whose current indexed sources reference a local media item, and the site settings that select it. Results include aggregate coverage and are advisory during concurrent writes. Requires media read and draft-content read permission; token-authenticated callers also require admin scope.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t\tquery: mediaUsageDetailsQuery,\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Entry-grouped media usage details\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaUsageDetailsResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/{id}/replace\": {\n\t\t\tput: {\n\t\t\t\toperationId: \"replaceMediaImage\",\n\t\t\t\tsummary: \"Replace a media image\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Overwrites a ready local image under its existing storage key and refreshes its file metadata while preserving its media ID, filename, and URL. The replacement may use different dimensions or an aspect ratio from the original.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t},\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: { [MULTIPART_CONTENT]: { schema: mediaReplaceBody } },\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Replaced media item\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(mediaReplaceResponseSchema) } },\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 413, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/repair\": {\n\t\t\tpost: {\n\t\t\t\toperationId: \"repairMediaUsage\",\n\t\t\t\tsummary: \"Repair media usage indexes\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Repairs content media usage indexes for one collection or all collections. The request succeeds with HTTP 200 when a structured repair result is produced; inspect `data.status` because it may be `failed` or `stale`.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageRepairBody } },\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media usage repair result\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaUsageRepairResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 413, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/progress\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"getMediaUsageProgress\",\n\t\t\t\tsummary: \"Get media usage indexing progress\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Returns aggregate indexing readiness for current content collections after controlled activation is active. Requires `schema:manage`; bearer tokens also require the `admin` scope.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Aggregate media usage indexing progress\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaUsageProgressSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(409),\n\t\t\t\t\t...standardErrors(500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tpost: {\n\t\t\t\toperationId: \"advanceMediaUsageProgress\",\n\t\t\t\tsummary: \"Advance media usage indexing\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Runs one bounded Media Usage maintenance step and returns the stored activation and indexing state. Requires `schema:manage`; bearer tokens also require the `admin` scope.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media Usage progress after one maintenance step\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\t\tschema: successEnvelope(mediaUsageProgressAdvanceResponseSchema),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(409),\n\t\t\t\t\t...standardErrors(500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/work\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"listMediaUsageWork\",\n\t\t\t\tsummary: \"List durable media usage work\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Returns one bounded cursor page of durable entry-indexing work for a current collection. Requires `schema:manage`; bearer tokens also require the `admin` scope. The response omits lease tokens, work versions, indexed content, media references, raw errors, and an exact backlog count.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: { query: mediaUsageWorkListQuery },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Bounded media usage work page\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaUsageWorkListResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/activation\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"getMediaUsageActivation\",\n\t\t\t\tsummary: \"Get media usage activation status\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Returns the redacted status of controlled Media Usage capture activation. This operation is read-only and does not start or resume activation. Requires `schema:manage`; bearer tokens also require the `admin` scope.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Media usage activation status\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaUsageActivationStatusSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(409, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tpost: {\n\t\t\t\toperationId: \"advanceMediaUsageActivation\",\n\t\t\t\tsummary: \"Advance media usage activation\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Starts, resumes, or retries exactly one bounded activation batch after the operator confirms that all writers are drained. Continue setup through the Media Usage progress endpoint. Requires `schema:manage`; bearer tokens also require the `admin` scope.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageActivationAdvanceBody } },\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Current media usage activation progress\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\t\tschema: successEnvelope(mediaUsageActivationAdvanceResponseSchema),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 500),\n\t\t\t\t\t\"409\": {\n\t\t\t\t\t\tdescription: \"Activation is busy, changed ownership, or is incompatible\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageActivationConflictSchema } },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/work/retry\": {\n\t\t\tpost: {\n\t\t\t\toperationId: \"retryMediaUsageWork\",\n\t\t\t\tsummary: \"Retry one durable media usage job\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Idempotently reopens or creates one entry-indexing job for a current immutable collection identity. Requires `schema:manage`; bearer tokens also require the `admin` scope. A live worker lease or a concurrent work change returns a stable conflict without exposing ownership tokens.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageWorkRetryBody } },\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Current pending work state\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaUsageWorkRetryResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t\t\"409\": {\n\t\t\t\t\t\tdescription: \"The job has a live lease or changed concurrently\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageWorkRetryConflictSchema } },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/collection-deletions\": {\n\t\t\tget: {\n\t\t\t\toperationId: \"listMediaUsageCollectionDeletions\",\n\t\t\t\tsummary: \"List durable collection deletions\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Returns a bounded, redacted cursor page of collection deletion work. Requires `schema:manage`; bearer tokens also require the `admin` scope.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: { query: mediaUsageCollectionDeletionListQuery },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Bounded collection deletion page\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\t\tschema: successEnvelope(mediaUsageCollectionDeletionListResponseSchema),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/admin/media-usage/collection-deletions/retry\": {\n\t\t\tpost: {\n\t\t\t\toperationId: \"retryMediaUsageCollectionDeletion\",\n\t\t\t\tsummary: \"Retry one collection deletion\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageCollectionDeletionRetryBody } },\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Pending collection deletion state\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\t\tschema: successEnvelope(mediaUsageCollectionDeletionRetryResponseSchema),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t\t\t\"409\": {\n\t\t\t\t\t\tdescription: \"The deletion has a live lease or changed concurrently\",\n\t\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: mediaUsageWorkRetryConflictSchema } },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/upload-url\": {\n\t\t\tpost: {\n\t\t\t\toperationId: \"getMediaUploadUrl\",\n\t\t\t\tsummary: \"Get a media upload target\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Returns either a signed direct-to-storage URL or a same-origin streaming target. Creates a pending media record.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: mediaUploadUrlBody(maxUploadSize) } } },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Upload URL or existing media (deduplication)\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\t\tz.union([mediaUploadUrlResponseSchema, mediaExistingResponseSchema]),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/{id}/confirm\": {\n\t\t\tpost: {\n\t\t\t\toperationId: \"confirmMediaUpload\",\n\t\t\t\tsummary: \"Confirm a media upload\",\n\t\t\t\tdescription: \"Marks a pending media record as ready after the file has been uploaded.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t},\n\t\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: mediaConfirmBody } } },\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"Confirmed media item with URL\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaConfirmResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"/_emdash/api/media/{id}/upload\": {\n\t\t\tput: {\n\t\t\t\toperationId: \"uploadPendingMedia\",\n\t\t\t\tsummary: \"Upload a pending media file through EmDash\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Streams a file to storage when the configured adapter cannot provide a signed upload URL. The Content-Type and byte count must match the pending media item.\",\n\t\t\t\ttags: [\"Media\"],\n\t\t\t\trequestParams: {\n\t\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Media ID\" }) }),\n\t\t\t\t},\n\t\t\t\trequestBody: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\"*/*\": {\n\t\t\t\t\t\t\tschema: z.string().meta({ format: \"binary\" }),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tresponses: {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\tdescription: \"File uploaded and ready for confirmation\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(mediaStreamUploadResponseSchema) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t...authErrors,\n\t\t\t\t\t...standardErrors(400, 404, 413, 500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t} as const;\n}\n\n// ---------------------------------------------------------------------------\n// Schema routes\n// ---------------------------------------------------------------------------\n\nconst schemaPaths = {\n\t\"/_emdash/api/schema/block-types\": {\n\t\tget: {\n\t\t\toperationId: \"listBlockTypes\",\n\t\t\tsummary: \"List block types\",\n\t\t\ttags: [\"Schema\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Block type list\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(blockTypeListResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createBlockType\",\n\t\t\tsummary: \"Create a block type\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createBlockTypeBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created block type\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(blockTypeResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/block-types/{slug}\": {\n\t\tget: {\n\t\t\toperationId: \"getBlockType\",\n\t\t\tsummary: \"Get a block type\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: { path: z.object({ slug: z.string() }) },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Block type\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(blockTypeResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateBlockType\",\n\t\t\tsummary: \"Update a block type\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: { path: z.object({ slug: z.string() }) },\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateBlockTypeBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated block type\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(blockTypeResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/block-types/{slug}/versions/{version}/activate\": {\n\t\tpost: {\n\t\t\toperationId: \"activateBlockTypeVersion\",\n\t\t\tsummary: \"Activate a block type version\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string(), version: z.coerce.number().int().positive() }),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: activateBlockTypeVersionBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Activated block type\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(blockTypeResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/collections\": {\n\t\tget: {\n\t\t\toperationId: \"listCollections\",\n\t\t\tsummary: \"List all collections\",\n\t\t\ttags: [\"Schema\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Collection list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(collectionListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createCollection\",\n\t\t\tsummary: \"Create a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createCollectionBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created collection\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(collectionResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/collections/{slug}\": {\n\t\tget: {\n\t\t\toperationId: \"getCollection\",\n\t\t\tsummary: \"Get a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Collection slug\" }) }),\n\t\t\t\tquery: collectionGetQuery,\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Collection (optionally with fields)\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.union([\n\t\t\t\t\t\t\t\t\tcollectionResponseSchema.shape.item,\n\t\t\t\t\t\t\t\t\tcollectionWithFieldsResponseSchema.shape.item,\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateCollection\",\n\t\t\tsummary: \"Update a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Collection slug\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateCollectionBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated collection\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(collectionResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteCollection\",\n\t\t\tsummary: \"Delete a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Collection slug\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/collections/{slug}/fields\": {\n\t\tget: {\n\t\t\toperationId: \"listFields\",\n\t\t\tsummary: \"List fields for a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Collection slug\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Field list\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(fieldListResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createField\",\n\t\t\tsummary: \"Create a field\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Collection slug\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createFieldBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created field\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(fieldResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/collections/{slug}/fields/{fieldSlug}\": {\n\t\tget: {\n\t\t\toperationId: \"getField\",\n\t\t\tsummary: \"Get a field\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tslug: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tfieldSlug: z.string().meta({ description: \"Field slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Field\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(fieldResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateField\",\n\t\t\tsummary: \"Update a field\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tslug: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tfieldSlug: z.string().meta({ description: \"Field slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateFieldBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated field\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(fieldResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteField\",\n\t\t\tsummary: \"Delete a field\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tslug: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tfieldSlug: z.string().meta({ description: \"Field slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/collections/reorder\": {\n\t\tpost: {\n\t\t\toperationId: \"reorderCollections\",\n\t\t\tsummary: \"Reorder collections in the admin sidebar\",\n\t\t\tdescription:\n\t\t\t\t\"Sets the sidebar order. Collections omitted from the list lose their explicit position and fall back to alphabetical order after the ordered ones.\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: collectionReorderBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Reordered\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ success: z.literal(true) })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/collections/{slug}/fields/reorder\": {\n\t\tpost: {\n\t\t\toperationId: \"reorderFields\",\n\t\t\tsummary: \"Reorder fields in a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Collection slug\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: fieldReorderBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Reordered\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ success: z.literal(true) })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/orphans\": {\n\t\tget: {\n\t\t\toperationId: \"listOrphanedTables\",\n\t\t\tsummary: \"List orphaned content tables\",\n\t\t\tdescription: \"Finds ec_* tables without matching collection definitions.\",\n\t\t\ttags: [\"Schema\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Orphaned tables\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(orphanedTableListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/schema/orphans/{slug}\": {\n\t\tpost: {\n\t\t\toperationId: \"registerOrphanedTable\",\n\t\t\tsummary: \"Register an orphaned table as a collection\",\n\t\t\ttags: [\"Schema\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tslug: z.string().meta({ description: \"Table slug (without ec_ prefix)\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: orphanRegisterBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Registered collection\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(collectionResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Comments routes\n// ---------------------------------------------------------------------------\n\nconst commentsPaths = {\n\t\"/_emdash/api/comments/{collection}/{contentId}\": {\n\t\tget: {\n\t\t\toperationId: \"listPublicComments\",\n\t\t\tsummary: \"List approved comments for content\",\n\t\t\tdescription: \"Public endpoint. Returns approved comments with optional threading.\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tcontentId: z.string().meta({ description: \"Content ID\" }),\n\t\t\t\t}),\n\t\t\t\tquery: z.object({\n\t\t\t\t\tlimit: z.coerce.number().int().min(1).max(100).optional(),\n\t\t\t\t\tcursor: z.string().optional(),\n\t\t\t\t\tthreaded: z\n\t\t\t\t\t\t.enum([\"true\", \"false\"])\n\t\t\t\t\t\t.transform((v) => v === \"true\")\n\t\t\t\t\t\t.optional(),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Comment list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(publicCommentListResponseSchema),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createComment\",\n\t\t\tsummary: \"Submit a new comment\",\n\t\t\tdescription: \"Public endpoint. Comment enters moderation queue.\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tcollection: z.string().meta({ description: \"Collection slug\" }),\n\t\t\t\t\tcontentId: z.string().meta({ description: \"Content ID\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createCommentBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Comment created (pending moderation)\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ id: z.string(), status: z.string() })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...standardErrors(400, 429, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/comments\": {\n\t\tget: {\n\t\t\toperationId: \"listAdminComments\",\n\t\t\tsummary: \"List comments for moderation\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestParams: { query: commentListQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Comment moderation inbox\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(adminCommentListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/comments/counts\": {\n\t\tget: {\n\t\t\toperationId: \"getCommentCounts\",\n\t\t\tsummary: \"Get comment status counts\",\n\t\t\ttags: [\"Comments\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Counts by status\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(commentCountsResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/comments/bulk\": {\n\t\tpost: {\n\t\t\toperationId: \"bulkCommentAction\",\n\t\t\tsummary: \"Bulk approve, spam, trash, or delete comments\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: commentBulkBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Bulk action result\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(commentBulkResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/comments/{id}\": {\n\t\tget: {\n\t\t\toperationId: \"getComment\",\n\t\t\tsummary: \"Get a single comment\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Comment ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Comment\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(commentSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteComment\",\n\t\t\tsummary: \"Permanently delete a comment\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Comment ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/comments/{id}/status\": {\n\t\tput: {\n\t\t\toperationId: \"updateCommentStatus\",\n\t\t\tsummary: \"Change comment status\",\n\t\t\ttags: [\"Comments\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Comment ID\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: commentStatusBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated comment\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(commentSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Taxonomy routes\n// ---------------------------------------------------------------------------\n\nconst taxonomyPaths = {\n\t\"/_emdash/api/taxonomies\": {\n\t\tget: {\n\t\t\toperationId: \"listTaxonomies\",\n\t\t\tsummary: \"List all taxonomy definitions\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Taxonomy list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(taxonomyListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/taxonomies/{name}\": {\n\t\tget: {\n\t\t\toperationId: \"getTaxonomy\",\n\t\t\tsummary: \"Get a taxonomy definition\",\n\t\t\tdescription:\n\t\t\t\t\"Definitions are per-locale; `locale` picks one. Without it the configured default locale is returned, falling back to the lowest locale code.\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t\tquery: z.object({\n\t\t\t\t\tlocale: z.string().optional().meta({ description: \"Locale filter\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Taxonomy definition\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(taxonomyResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateTaxonomy\",\n\t\t\tsummary: \"Update a taxonomy definition\",\n\t\t\tdescription:\n\t\t\t\t\"Writes `label` and `labelSingular` to the single definition `name` + `locale` resolves to. `hierarchical` and `collections` belong to the taxonomy and change for every locale. `name` and `locale` cannot be changed — terms are keyed on `name`, and each locale is its own definition row.\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t\tquery: z.object({\n\t\t\t\t\tlocale: z.string().optional().meta({ description: \"Locale of the definition to update\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateTaxonomyDefBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated taxonomy definition\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(taxonomyResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteTaxonomy\",\n\t\t\tsummary: \"Delete a taxonomy, its terms, and their content assignments\",\n\t\t\tdescription:\n\t\t\t\t\"Destructive and unscoped: every locale's definition goes, along with every term under the name and the assignments those terms hold. There is no locale parameter and no guard on a taxonomy that is still in use.\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/taxonomies/{name}/translations\": {\n\t\tget: {\n\t\t\toperationId: \"listTaxonomyTranslations\",\n\t\t\tsummary: \"List every locale variant of a taxonomy definition\",\n\t\t\tdescription:\n\t\t\t\t\"Create a translation with `POST /_emdash/api/taxonomies` and `translationOf` set to a definition id from this list.\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t\tquery: z.object({\n\t\t\t\t\tlocale: z\n\t\t\t\t\t\t.string()\n\t\t\t\t\t\t.optional()\n\t\t\t\t\t\t.meta({ description: \"Locale of the definition to resolve the group from\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Translations sharing a translation_group\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(taxonomyDefTranslationsSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/taxonomies/{name}/reorder\": {\n\t\tpost: {\n\t\t\toperationId: \"reorderTerms\",\n\t\t\tsummary: \"Set the manual order of one sibling group of terms\",\n\t\t\tdescription:\n\t\t\t\t\"`ids` names the terms to move, in the desired order, and may be a subset of the group — the listed terms are permuted within the positions they already occupy. A position belongs to a term across every locale, so there is no `locale` parameter. Ordering never reparents — use the term update endpoint to change a parent.\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: reorderTermsBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The group in its new order\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(termReorderResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/taxonomies/{name}/terms\": {\n\t\tget: {\n\t\t\toperationId: \"listTerms\",\n\t\t\tsummary: \"List terms for a taxonomy\",\n\t\t\tdescription: \"Returns a tree for hierarchical taxonomies, flat list otherwise.\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t\tquery: termListQuery,\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Term list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(termListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createTerm\",\n\t\t\tsummary: \"Create a term\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Taxonomy name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createTermBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created term\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(termResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/taxonomies/{name}/terms/{slug}\": {\n\t\tget: {\n\t\t\toperationId: \"getTerm\",\n\t\t\tsummary: \"Get a term by slug\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Taxonomy name\" }),\n\t\t\t\t\tslug: z.string().meta({ description: \"Term slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Term with children and count\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(termGetResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateTerm\",\n\t\t\tsummary: \"Update a term\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Taxonomy name\" }),\n\t\t\t\t\tslug: z.string().meta({ description: \"Term slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateTermBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated term\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(termResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteTerm\",\n\t\t\tsummary: \"Delete a term\",\n\t\t\ttags: [\"Taxonomies\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Taxonomy name\" }),\n\t\t\t\t\tslug: z.string().meta({ description: \"Term slug\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Menu routes\n// ---------------------------------------------------------------------------\n\nconst menuPaths = {\n\t\"/_emdash/api/menus\": {\n\t\tget: {\n\t\t\toperationId: \"listMenus\",\n\t\t\tsummary: \"List all menus with item counts\",\n\t\t\ttags: [\"Menus\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Menu list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.array(menuListItemSchema)),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createMenu\",\n\t\t\tsummary: \"Create a menu\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createMenuBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created menu\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(menuWithItemsSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/menus/{name}\": {\n\t\tget: {\n\t\t\toperationId: \"getMenu\",\n\t\t\tsummary: \"Get a menu with all items\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Menu name\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Menu with items\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(menuWithItemsSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateMenu\",\n\t\t\tsummary: \"Update a menu\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Menu name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateMenuBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated menu\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(menuWithItemsSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteMenu\",\n\t\t\tsummary: \"Delete a menu and its items\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Menu name\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/menus/{name}/items\": {\n\t\tpost: {\n\t\t\toperationId: \"createMenuItem\",\n\t\t\tsummary: \"Add an item to a menu\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Menu name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createMenuItemBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created menu item\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(menuItemSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/menus/{name}/items/{id}\": {\n\t\tput: {\n\t\t\toperationId: \"updateMenuItem\",\n\t\t\tsummary: \"Update a menu item\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Menu name\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Menu item id\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateMenuItemBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated menu item\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(menuItemSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteMenuItem\",\n\t\t\tsummary: \"Delete a menu item\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Menu name\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Menu item id\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/menus/{name}/reorder\": {\n\t\tpost: {\n\t\t\toperationId: \"reorderMenuItems\",\n\t\t\tsummary: \"Batch reorder menu items\",\n\t\t\ttags: [\"Menus\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Menu name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: reorderMenuItemsBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Reordered items\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.array(menuItemSchema)),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Section routes\n// ---------------------------------------------------------------------------\n\nconst sectionPaths = {\n\t\"/_emdash/api/sections\": {\n\t\tget: {\n\t\t\toperationId: \"listSections\",\n\t\t\tsummary: \"List sections\",\n\t\t\ttags: [\"Sections\"],\n\t\t\trequestParams: { query: sectionsListQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Section list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(sectionListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createSection\",\n\t\t\tsummary: \"Create a section\",\n\t\t\ttags: [\"Sections\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createSectionBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created section\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(sectionSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/sections/{slug}\": {\n\t\tget: {\n\t\t\toperationId: \"getSection\",\n\t\t\tsummary: \"Get a section by slug\",\n\t\t\ttags: [\"Sections\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Section slug\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Section\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(sectionSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateSection\",\n\t\t\tsummary: \"Update a section\",\n\t\t\ttags: [\"Sections\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Section slug\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateSectionBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated section\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(sectionSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteSection\",\n\t\t\tsummary: \"Delete a section\",\n\t\t\ttags: [\"Sections\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ slug: z.string().meta({ description: \"Section slug\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(403, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Widget routes\n// ---------------------------------------------------------------------------\n\nconst widgetPaths = {\n\t\"/_emdash/api/widget-areas\": {\n\t\tget: {\n\t\t\toperationId: \"listWidgetAreas\",\n\t\t\tsummary: \"List all widget areas\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Widget area list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({ items: z.array(widgetAreaWithWidgetsAndCountSchema) }),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createWidgetArea\",\n\t\t\tsummary: \"Create a widget area\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createWidgetAreaBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created widget area\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(widgetAreaSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/widget-areas/{name}\": {\n\t\tget: {\n\t\t\toperationId: \"getWidgetArea\",\n\t\t\tsummary: \"Get a widget area with widgets\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Widget area name\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Widget area with widgets\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(widgetAreaWithWidgetsSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteWidgetArea\",\n\t\t\tsummary: \"Delete a widget area and its widgets\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Widget area name\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/widget-areas/{name}/widgets\": {\n\t\tpost: {\n\t\t\toperationId: \"createWidget\",\n\t\t\tsummary: \"Add a widget to an area\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Widget area name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createWidgetBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created widget\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(widgetSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/widget-areas/{name}/widgets/{id}\": {\n\t\tput: {\n\t\t\toperationId: \"updateWidget\",\n\t\t\tsummary: \"Update a widget\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Widget area name\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Widget ID\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateWidgetBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated widget\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(widgetSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteWidget\",\n\t\t\tsummary: \"Delete a widget\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({\n\t\t\t\t\tname: z.string().meta({ description: \"Widget area name\" }),\n\t\t\t\t\tid: z.string().meta({ description: \"Widget ID\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/widget-areas/{name}/reorder\": {\n\t\tpost: {\n\t\t\toperationId: \"reorderWidgets\",\n\t\t\tsummary: \"Reorder widgets in an area\",\n\t\t\ttags: [\"Widgets\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ name: z.string().meta({ description: \"Widget area name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: reorderWidgetsBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Reordered\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ success: z.literal(true) })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Settings routes\n// ---------------------------------------------------------------------------\n\nconst settingsPaths = {\n\t\"/_emdash/api/settings\": {\n\t\tget: {\n\t\t\toperationId: \"getSettings\",\n\t\t\tsummary: \"Get site settings\",\n\t\t\ttags: [\"Settings\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Site settings\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(siteSettingsSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateSettings\",\n\t\t\tsummary: \"Update site settings\",\n\t\t\ttags: [\"Settings\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: settingsUpdateBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated settings\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(siteSettingsSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Search routes\n// ---------------------------------------------------------------------------\n\nconst searchPaths = {\n\t\"/_emdash/api/search\": {\n\t\tget: {\n\t\t\toperationId: \"search\",\n\t\t\tsummary: \"Full-text search across collections\",\n\t\t\ttags: [\"Search\"],\n\t\t\trequestParams: { query: searchQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Search results\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(searchResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/search/suggest\": {\n\t\tget: {\n\t\t\toperationId: \"searchSuggest\",\n\t\t\tsummary: \"Autocomplete search suggestions\",\n\t\t\ttags: [\"Search\"],\n\t\t\trequestParams: { query: searchSuggestQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Search suggestions\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(searchResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/search/rebuild\": {\n\t\tpost: {\n\t\t\toperationId: \"rebuildSearchIndex\",\n\t\t\tsummary: \"Rebuild the search index for a collection\",\n\t\t\ttags: [\"Search\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: searchRebuildBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Rebuild started\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\tcollection: z.string(),\n\t\t\t\t\t\t\t\t\tindexed: z.number().int(),\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/search/enable\": {\n\t\tpost: {\n\t\t\toperationId: \"enableSearch\",\n\t\t\tsummary: \"Enable or disable search for a collection\",\n\t\t\ttags: [\"Search\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: searchEnableBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Search config updated\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\tcollection: z.string(),\n\t\t\t\t\t\t\t\t\tenabled: z.boolean(),\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/search/stats\": {\n\t\tget: {\n\t\t\toperationId: \"getSearchStats\",\n\t\t\tsummary: \"Get search index statistics\",\n\t\t\ttags: [\"Search\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Search stats per collection\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\tcollections: z.array(\n\t\t\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\t\t\tcollection: z.string(),\n\t\t\t\t\t\t\t\t\t\t\tenabled: z.boolean(),\n\t\t\t\t\t\t\t\t\t\t\tindexed: z.number().int(),\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Redirect routes\n// ---------------------------------------------------------------------------\n\nconst redirectPaths = {\n\t\"/_emdash/api/redirects\": {\n\t\tget: {\n\t\t\toperationId: \"listRedirects\",\n\t\t\tsummary: \"List redirects\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestParams: { query: redirectsListQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Redirect list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(redirectListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createRedirect\",\n\t\t\tsummary: \"Create a redirect rule\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: createRedirectBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created redirect\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(redirectSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/redirects/{id}\": {\n\t\tget: {\n\t\t\toperationId: \"getRedirect\",\n\t\t\tsummary: \"Get a redirect\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Redirect ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Redirect\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(redirectSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateRedirect\",\n\t\t\tsummary: \"Update a redirect\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Redirect ID\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: updateRedirectBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated redirect\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(redirectSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteRedirect\",\n\t\t\tsummary: \"Delete a redirect\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"Redirect ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/redirects/404s\": {\n\t\tget: {\n\t\t\toperationId: \"listNotFoundEntries\",\n\t\t\tsummary: \"List 404 log entries\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestParams: { query: notFoundListQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"404 log entries\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(notFoundListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"clearNotFoundLog\",\n\t\t\tsummary: \"Clear all 404 log entries\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Cleared\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ deleted: z.number().int() })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"pruneNotFoundLog\",\n\t\t\tsummary: \"Prune old 404 log entries\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: notFoundPruneBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Pruned\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ deleted: z.number().int() })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/redirects/404s/summary\": {\n\t\tget: {\n\t\t\toperationId: \"getNotFoundSummary\",\n\t\t\tsummary: \"Get 404 summary grouped by path\",\n\t\t\ttags: [\"Redirects\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"404 summary\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(notFoundSummaryResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// User management routes\n// ---------------------------------------------------------------------------\n\nconst userPaths = {\n\t\"/_emdash/api/admin/users\": {\n\t\tget: {\n\t\t\toperationId: \"listUsers\",\n\t\t\tsummary: \"List users\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: { query: usersListQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"User list\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(userListResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/users/{id}\": {\n\t\tget: {\n\t\t\toperationId: \"getUser\",\n\t\t\tsummary: \"Get user details\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"User ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"User detail\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ item: userDetailSchema })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tput: {\n\t\t\toperationId: \"updateUser\",\n\t\t\tsummary: \"Update a user\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"User ID\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: userUpdateBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated user\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ item: userSchema })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/users/{id}/disable\": {\n\t\tpost: {\n\t\t\toperationId: \"disableUser\",\n\t\t\tsummary: \"Disable a user account\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"User ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"User disabled\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ item: userSchema })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/users/{id}/enable\": {\n\t\tpost: {\n\t\t\toperationId: \"enableUser\",\n\t\t\tsummary: \"Enable a user account\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ id: z.string().meta({ description: \"User ID\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"User enabled\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(z.object({ item: userSchema })),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/allowed-domains\": {\n\t\tget: {\n\t\t\toperationId: \"listAllowedDomains\",\n\t\t\tsummary: \"List allowed email domains\",\n\t\t\ttags: [\"Users\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Allowed domains list\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\titems: z.array(\n\t\t\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\t\t\tdomain: z.string(),\n\t\t\t\t\t\t\t\t\t\t\tdefaultRole: z.number().int(),\n\t\t\t\t\t\t\t\t\t\t\tenabled: z.boolean(),\n\t\t\t\t\t\t\t\t\t\t\tcreatedAt: z.string(),\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createAllowedDomain\",\n\t\t\tsummary: \"Add an allowed email domain\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: allowedDomainCreateBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Created\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\tdomain: z.string(),\n\t\t\t\t\t\t\t\t\tdefaultRole: z.number().int(),\n\t\t\t\t\t\t\t\t\tenabled: z.boolean(),\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/allowed-domains/{domain}\": {\n\t\tput: {\n\t\t\toperationId: \"updateAllowedDomain\",\n\t\t\tsummary: \"Update an allowed domain\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ domain: z.string().meta({ description: \"Domain name\" }) }),\n\t\t\t},\n\t\t\trequestBody: { content: { [JSON_CONTENT]: { schema: allowedDomainUpdateBody } } },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Updated\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: {\n\t\t\t\t\t\t\tschema: successEnvelope(\n\t\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\t\tdomain: z.string(),\n\t\t\t\t\t\t\t\t\tdefaultRole: z.number().int(),\n\t\t\t\t\t\t\t\t\tenabled: z.boolean(),\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t\tdelete: {\n\t\t\toperationId: \"deleteAllowedDomain\",\n\t\t\tsummary: \"Remove an allowed domain\",\n\t\t\ttags: [\"Users\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: z.object({ domain: z.string().meta({ description: \"Domain name\" }) }),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Deleted\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(deleteResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Site transfer routes\n// ---------------------------------------------------------------------------\n\nconst TRANSFER_AUTH =\n\t\"Session users need the `transfer:import` permission (admins); bearer tokens need `admin` or the scope named here.\";\n\nconst importPathParams = z.object({\n\tid: z.string().meta({ description: \"Import operation ID\" }),\n});\n\nconst exportPathParams = z.object({\n\tid: z.string().meta({ description: \"Export operation ID\" }),\n});\n\nconst EXPORT_AUTH =\n\t\"Session users need the `transfer:export` permission (admins); bearer tokens need the `transfer:export` scope. Any holder of both can read any export.\";\n\nconst approvalPathParams = z.object({\n\tid: z.string().meta({ description: \"Approval ID\" }),\n});\n\nconst transferPaths = {\n\t\"/_emdash/api/admin/transfer/capabilities\": {\n\t\tget: {\n\t\t\toperationId: \"getTransferCapabilities\",\n\t\t\tsummary: \"Get site transfer capabilities\",\n\t\t\tdescription:\n\t\t\t\t\"Returns the supported package format versions, features, and limits, and whether this site can receive an import (`portableDomain`, with the reasons it cannot). Session users need `transfer:export` or `transfer:import`; bearer tokens need any transfer scope.\",\n\t\t\ttags: [\"Transfer\"],\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Transfer capabilities\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(transferCapabilitiesSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports\": {\n\t\tget: {\n\t\t\toperationId: \"listTransferImports\",\n\t\t\tsummary: \"List site imports\",\n\t\t\tdescription: `Returns imports newest first. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\` or \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { query: transferPaginationQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"One page of imports\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferOperationListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createTransferImport\",\n\t\t\tsummary: \"Create a site import\",\n\t\t\tdescription: `The request body is the package's \\`manifest.json\\`, byte for byte (at most 8 MiB). An optional \\`Idempotency-Key\\` header returns the existing operation on retry; reusing a key with a different manifest fails with \\`TRANSFER_IDEMPOTENCY_CONFLICT\\`. The response lists the first files to upload. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestBody: {\n\t\t\t\trequired: true,\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: z.string().meta({ format: \"binary\" }) } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Existing import for this idempotency key\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferImportCreateResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Import created\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferImportCreateResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 413, 422, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}\": {\n\t\tget: {\n\t\t\toperationId: \"getTransferImport\",\n\t\t\tsummary: \"Get a site import\",\n\t\t\tdescription: `Returns the import and how many of its files are uploaded. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\` or \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Import status\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferImportStatusResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/missing\": {\n\t\tget: {\n\t\t\toperationId: \"listTransferImportMissingFiles\",\n\t\t\tsummary: \"List package files still to upload\",\n\t\t\tdescription: `Returns declared files that are not uploaded yet, in path order. Uploading an index chunk declares the files it lists, so list again after each round of uploads until the list is empty. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams, query: transferPaginationQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"One page of missing files\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferMissingFilesResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/files/{path}\": {\n\t\tput: {\n\t\t\toperationId: \"uploadTransferImportFile\",\n\t\t\tsummary: \"Upload one package file\",\n\t\t\tdescription: `Streams one declared package file (\\`index/…\\`, \\`records/…\\`, or \\`media/…\\`; the path keeps its slashes). \\`Content-Length\\` is required and must equal the declared size, and the bytes must match the declared SHA-256. Media files may not exceed the site's \\`maxUploadSize\\`. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: importPathParams.extend({\n\t\t\t\t\tpath: z.string().meta({ description: \"Package file path\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\trequestBody: {\n\t\t\t\trequired: true,\n\t\t\t\tcontent: { \"application/octet-stream\": { schema: z.string().meta({ format: \"binary\" }) } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"File stored and verified\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferFileUploadResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 411, 413, 422, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/analyze\": {\n\t\tpost: {\n\t\t\toperationId: \"analyzeTransferImport\",\n\t\t\tsummary: \"Advance import analysis\",\n\t\t\tdescription: `Runs one bounded analysis step once every file is uploaded. Call again after \\`nextRequestInMs\\` until it is null; the response then includes the plan and its digest. Submitted decisions are applied once the import is planned. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\trequestBody: {\n\t\t\t\trequired: false,\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: transferImportAnalyzeBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Analysis progress, or the plan\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferImportAnalyzeResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 422, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/plan\": {\n\t\tget: {\n\t\t\toperationId: \"getTransferImportPlan\",\n\t\t\tsummary: \"Get an import plan\",\n\t\t\tdescription: `${TRANSFER_AUTH} Scope: \\`transfer:analyze\\` or \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The plan and its digest\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferImportPlanResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/cancel\": {\n\t\tpost: {\n\t\t\toperationId: \"cancelTransferImport\",\n\t\t\tsummary: \"Cancel a site import\",\n\t\t\tdescription: `A step in progress stops after its current batch. ${TRANSFER_AUTH} Scope: \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The cancelled import\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferOperationResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/abandon\": {\n\t\tpost: {\n\t\t\toperationId: \"abandonTransferImport\",\n\t\t\tsummary: \"Abandon a failed or cancelled import\",\n\t\t\tdescription: `Lifts the site write fence after an import failed or was cancelled. Data the import already wrote stays in place. ${TRANSFER_AUTH} Scope: \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The abandoned import\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferOperationResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/execute\": {\n\t\tpost: {\n\t\t\toperationId: \"executeTransferImport\",\n\t\t\tsummary: \"Start a planned import\",\n\t\t\tdescription: `Starts a planned import once the reviewed package and plan digests match. The plan must have no blockers. Then call \\`advance\\` until \\`nextRequestInMs\\` is null. ${TRANSFER_AUTH} Scope: \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\trequestBody: {\n\t\t\t\trequired: true,\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: transferImportExecuteBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The import, marked for execution\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferOperationResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 404, 409, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/advance\": {\n\t\tpost: {\n\t\t\toperationId: \"advanceTransferImport\",\n\t\t\tsummary: \"Advance an executing import\",\n\t\t\tdescription: `Runs one bounded import step. Retryable failures are recorded on the import and delay \\`nextRequestInMs\\`; it is null once the import has ended. While the import runs, and after it fails or is cancelled until it is abandoned, other site writes return 503 \\`TRANSFER_IMPORT_IN_PROGRESS\\`. ${TRANSFER_AUTH} Scope: \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The import after one step\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(transferAdvanceResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/imports/{id}/receipt\": {\n\t\tget: {\n\t\t\toperationId: \"getTransferImportReceipt\",\n\t\t\tsummary: \"Get an import receipt\",\n\t\t\tdescription: `The verified receipt of a complete import; its \\`receiptDigest\\` covers every other field. ${TRANSFER_AUTH} Scope: \\`transfer:analyze\\` or \\`transfer:execute\\`.`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: importPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The receipt\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferImportReceiptResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/exports\": {\n\t\tget: {\n\t\t\toperationId: \"listTransferExports\",\n\t\t\tsummary: \"List site exports\",\n\t\t\tdescription: `Returns exports newest first. ${EXPORT_AUTH}`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { query: transferPaginationQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"One page of exports\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferOperationListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t\tpost: {\n\t\t\toperationId: \"createTransferExport\",\n\t\t\tsummary: \"Start a site export\",\n\t\t\tdescription: `Creates an export; call \\`advance\\` until \\`nextRequestInMs\\` is null. An optional \\`Idempotency-Key\\` header returns the existing export on retry. ${EXPORT_AUTH}`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestBody: {\n\t\t\t\trequired: false,\n\t\t\t\tcontent: { [JSON_CONTENT]: { schema: transferExportCreateBody } },\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Existing export for this idempotency key\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferExportCreateResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"201\": {\n\t\t\t\t\tdescription: \"Export created\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferExportCreateResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 409, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/exports/{id}\": {\n\t\tget: {\n\t\t\toperationId: \"getTransferExport\",\n\t\t\tsummary: \"Get a site export\",\n\t\t\tdescription: EXPORT_AUTH,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: exportPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"Export status\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferOperationResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/exports/{id}/advance\": {\n\t\tpost: {\n\t\t\toperationId: \"advanceTransferExport\",\n\t\t\tsummary: \"Advance a site export\",\n\t\t\tdescription: `Runs one bounded export step; \\`nextRequestInMs\\` is null once the export has ended. ${EXPORT_AUTH}`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: exportPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The export after one step\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: successEnvelope(transferAdvanceResponseSchema) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/exports/{id}/manifest\": {\n\t\tget: {\n\t\t\toperationId: \"getTransferExportManifest\",\n\t\t\tsummary: \"Download an export manifest\",\n\t\t\tdescription: `The complete export's \\`manifest.json\\`, byte for byte; its SHA-256 is the package digest. ${EXPORT_AUTH}`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: exportPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The manifest\",\n\t\t\t\t\tcontent: { [JSON_CONTENT]: { schema: z.string().meta({ format: \"binary\" }) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 410, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/exports/{id}/files/{path}\": {\n\t\tget: {\n\t\t\toperationId: \"downloadTransferExportFile\",\n\t\t\tsummary: \"Download one export file\",\n\t\t\tdescription: `Streams one index chunk, record chunk, or media blob listed by the export (the path keeps its slashes). \\`Content-Length\\` and the \\`ETag\\` (hex SHA-256) describe the file; the stream fails partway if the stored bytes no longer match. ${EXPORT_AUTH}`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: {\n\t\t\t\tpath: exportPathParams.extend({\n\t\t\t\t\tpath: z.string().meta({ description: \"Package file path\" }),\n\t\t\t\t}),\n\t\t\t},\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The file\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\"application/octet-stream\": { schema: z.string().meta({ format: \"binary\" }) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 410, 422, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/exports/{id}/archive\": {\n\t\tget: {\n\t\t\toperationId: \"downloadTransferExportArchive\",\n\t\t\tsummary: \"Download an export archive\",\n\t\t\tdescription: `Streams the complete export as one \\`.emdash\\` tar archive, manifest first. On Workers the whole archive streams within one request; large sites should download files individually. ${EXPORT_AUTH}`,\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: exportPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The archive\",\n\t\t\t\t\tcontent: { \"application/x-tar\": { schema: z.string().meta({ format: \"binary\" }) } },\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(404, 409, 410, 500, 503),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/approvals\": {\n\t\tget: {\n\t\t\toperationId: \"listTransferApprovals\",\n\t\t\tsummary: \"List transfer approvals\",\n\t\t\tdescription:\n\t\t\t\t\"Approval grants requested by MCP callers, newest first. Signed-in sessions only (`transfer:export` or `transfer:import`); bearer tokens are refused.\",\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { query: transferApprovalListQuery },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"One page of approvals\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferApprovalListResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(400, 500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/approvals/{id}/approve\": {\n\t\tpost: {\n\t\t\toperationId: \"approveTransferApproval\",\n\t\t\tsummary: \"Approve a transfer request\",\n\t\t\tdescription:\n\t\t\t\t\"Approves a pending grant; the requester can use it once within 15 minutes. Signed-in sessions only, with the permission for the grant's action; bearer tokens are refused.\",\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: approvalPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The approved grant\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferApprovalResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n\t\"/_emdash/api/admin/transfer/approvals/{id}/deny\": {\n\t\tpost: {\n\t\t\toperationId: \"denyTransferApproval\",\n\t\t\tsummary: \"Deny a transfer request\",\n\t\t\tdescription:\n\t\t\t\t\"Denies a pending grant. Signed-in sessions only, with the permission for the grant's action; bearer tokens are refused.\",\n\t\t\ttags: [\"Transfer\"],\n\t\t\trequestParams: { path: approvalPathParams },\n\t\t\tresponses: {\n\t\t\t\t\"200\": {\n\t\t\t\t\tdescription: \"The denied grant\",\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[JSON_CONTENT]: { schema: successEnvelope(transferApprovalResponseSchema) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...authErrors,\n\t\t\t\t...standardErrors(500),\n\t\t\t},\n\t\t},\n\t},\n} as const;\n\n// ---------------------------------------------------------------------------\n// Merge all paths\n// ---------------------------------------------------------------------------\n\nfunction buildAllPaths(maxUploadSize: number) {\n\treturn {\n\t\t...contentPaths,\n\t\t...buildMediaPaths(maxUploadSize),\n\t\t...schemaPaths,\n\t\t...commentsPaths,\n\t\t...taxonomyPaths,\n\t\t...menuPaths,\n\t\t...sectionPaths,\n\t\t...widgetPaths,\n\t\t...settingsPaths,\n\t\t...searchPaths,\n\t\t...redirectPaths,\n\t\t...userPaths,\n\t\t...transferPaths,\n\t} as const;\n}\n\n// ---------------------------------------------------------------------------\n// Document\n// ---------------------------------------------------------------------------\n\n/**\n * Generate the OpenAPI 3.1 document for the EmDash CMS API.\n *\n * Covers: Content, Media, Schema, Comments, Taxonomies, Menus,\n * Sections, Widgets, Settings, Search, Redirects, Users, Transfer.\n */\nexport function generateOpenApiDocument(\n\toptions: { maxUploadSize?: number } = {},\n): oas31.OpenAPIObject {\n\tconst maxUploadSize = options.maxUploadSize ?? DEFAULT_MAX_UPLOAD_SIZE;\n\treturn createDocument({\n\t\topenapi: \"3.1.0\",\n\t\tinfo: {\n\t\t\ttitle: \"EmDash CMS API\",\n\t\t\tversion: \"0.1.0\",\n\t\t\tdescription:\n\t\t\t\t\"REST API for the EmDash CMS. All endpoints require authentication and return responses wrapped in a `{ success, data }` envelope.\",\n\t\t},\n\t\tservers: [\n\t\t\t{\n\t\t\t\turl: \"{baseUrl}\",\n\t\t\t\tdescription: \"CMS instance\",\n\t\t\t\t// Note: `description` on server variables is valid per OAS 3.1 spec but\n\t\t\t\t// swagger-parser rejects it as an unevaluated property. Omitted as a workaround.\n\t\t\t\tvariables: {\n\t\t\t\t\tbaseUrl: {\n\t\t\t\t\t\tdefault: \"http://localhost:4321\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\ttags: [\n\t\t\t{\n\t\t\t\tname: \"Content\",\n\t\t\t\tdescription: \"CRUD operations for content items across collections\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Media\",\n\t\t\t\tdescription: \"Media library — upload, manage, and serve files\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Schema\",\n\t\t\t\tdescription: \"Collection and field management\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Comments\",\n\t\t\t\tdescription: \"Public comments and admin moderation\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Taxonomies\",\n\t\t\t\tdescription: \"Taxonomy definitions and terms\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Menus\",\n\t\t\t\tdescription: \"Navigation menu management\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Sections\",\n\t\t\t\tdescription: \"Reusable content sections\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Widgets\",\n\t\t\t\tdescription: \"Widget areas and widget management\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Settings\",\n\t\t\t\tdescription: \"Site-wide settings\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Search\",\n\t\t\t\tdescription: \"Full-text search and index management\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Redirects\",\n\t\t\t\tdescription: \"Redirect rules and 404 logging\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Users\",\n\t\t\t\tdescription: \"User management and access control\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Transfer\",\n\t\t\t\tdescription: \"Whole-site export and import (site packages)\",\n\t\t\t},\n\t\t],\n\t\tcomponents: {\n\t\t\tschemas: {\n\t\t\t\t// Preserve the previously published component while media reads use richer schemas.\n\t\t\t\tMediaListResponse: mediaListResponseSchema,\n\t\t\t},\n\t\t\tsecuritySchemes: {\n\t\t\t\tsession: {\n\t\t\t\t\ttype: \"apiKey\",\n\t\t\t\t\tin: \"cookie\",\n\t\t\t\t\tname: \"emdash_session\",\n\t\t\t\t\tdescription: \"Session cookie set by the auth endpoints\",\n\t\t\t\t},\n\t\t\t\tbearer: {\n\t\t\t\t\ttype: \"http\",\n\t\t\t\t\tscheme: \"bearer\",\n\t\t\t\t\tdescription: \"OAuth2 or API token\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tsecurity: [{ session: [] }, { bearer: [] }],\n\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- readonly const paths are compatible at runtime\n\t\tpaths: buildAllPaths(maxUploadSize) as unknown as ZodOpenApiPathsObject,\n\t});\n}\n","/**\n * OpenAPI spec endpoint\n *\n * GET /_emdash/api/openapi.json\n *\n * Returns the generated OpenAPI 3.1 document. The spec is generated once\n * and cached for the lifetime of the process.\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { handleError } from \"../../../api/error.js\";\nimport { generateOpenApiDocument } from \"../../../api/openapi/index.js\";\n\nexport const prerender = false;\n\n// Use globalThis with Symbol.for to survive Vite's SSR module duplication\nconst OPENAPI_CACHE_KEY = Symbol.for(\"emdash.openapi.cachedSpec\");\n\nfunction getCachedSpec(): string | null {\n\tconst val = (globalThis as Record<symbol, unknown>)[OPENAPI_CACHE_KEY];\n\treturn typeof val === \"string\" ? val : null;\n}\n\nfunction setCachedSpec(spec: string): void {\n\t(globalThis as Record<symbol, unknown>)[OPENAPI_CACHE_KEY] = spec;\n}\n\nexport const GET: APIRoute = async ({ locals }) => {\n\tconst { emdash } = locals;\n\n\tlet spec = getCachedSpec();\n\tif (!spec && emdash) {\n\t\ttry {\n\t\t\tconst doc = generateOpenApiDocument({ maxUploadSize: emdash.config.maxUploadSize });\n\t\t\tspec = JSON.stringify(doc);\n\t\t\tsetCachedSpec(spec);\n\t\t} catch (error) {\n\t\t\treturn handleError(error, \"Failed to generate OpenAPI document\", \"OPENAPI_ERROR\");\n\t\t}\n\t}\n\n\tif (!spec) {\n\t\ttry {\n\t\t\tspec = JSON.stringify(generateOpenApiDocument());\n\t\t} catch (error) {\n\t\t\treturn handleError(error, \"Failed to generate OpenAPI document\", \"OPENAPI_ERROR\");\n\t\t}\n\t}\n\n\treturn new Response(spec, {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\"Cache-Control\": \"private, no-store\",\n\t\t\t\"Access-Control-Allow-Origin\": \"*\",\n\t\t},\n\t});\n};\n"],"x_google_ignoreList":[0,1],"mappings":"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"}