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,4 +1,4 @@
1
- import { t as Interceptor } from "../transport-SnhS6xku.mjs";
1
+ import { t as Interceptor } from "../transport-1QjUhCRO.mjs";
2
2
 
3
3
  //#region src/client/cf-access.d.ts
4
4
  /**
@@ -1,7 +1,7 @@
1
- import { r as ContentFieldFilters } from "../content-list-query-B6P37Ug_.mjs";
2
- import { j as UpdateBlockTypeInput, k as CreateBlockTypeInput, w as BlockType } from "../types-Bs4bi95j.mjs";
3
- import "../types-ibtP7GEA.mjs";
4
- import { a as tokenInterceptor, i as devBypassInterceptor, n as createTransport, r as csrfInterceptor, t as Interceptor } from "../transport-SnhS6xku.mjs";
1
+ import { r as ContentFieldFilters } from "../content-list-query-Bxxdd9fv.mjs";
2
+ import { j as UpdateBlockTypeInput, k as CreateBlockTypeInput, w as BlockType } from "../types-BiHcpUoO.mjs";
3
+ import "../types-UKr5Sf4y.mjs";
4
+ import { a as tokenInterceptor, i as devBypassInterceptor, n as createTransport, r as csrfInterceptor, t as Interceptor } from "../transport-1QjUhCRO.mjs";
5
5
  import { Kysely } from "kysely";
6
6
  import { z } from "zod";
7
7
 
@@ -65,9 +65,9 @@ declare const siteImportPlanSchema: z.ZodObject<{
65
65
  emdashVersion: z.ZodString;
66
66
  }, z.core.$strict>;
67
67
  counts: z.ZodRecord<z.ZodEnum<{
68
- seo: "seo";
69
- media: "media";
70
68
  byline: "byline";
69
+ media: "media";
70
+ seo: "seo";
71
71
  collection: "collection";
72
72
  setting: "setting";
73
73
  relation: "relation";
@@ -140,9 +140,9 @@ declare const siteImportPlanSchema: z.ZodObject<{
140
140
  unknown_storage_key: "unknown_storage_key";
141
141
  }>;
142
142
  kind: z.ZodEnum<{
143
- seo: "seo";
144
- media: "media";
145
143
  byline: "byline";
144
+ media: "media";
145
+ seo: "seo";
146
146
  collection: "collection";
147
147
  setting: "setting";
148
148
  relation: "relation";
@@ -212,9 +212,9 @@ declare const siteImportPlanSchema: z.ZodObject<{
212
212
  }>;
213
213
  message: z.ZodString;
214
214
  kind: z.ZodOptional<z.ZodEnum<{
215
- seo: "seo";
216
- media: "media";
217
215
  byline: "byline";
216
+ media: "media";
217
+ seo: "seo";
218
218
  collection: "collection";
219
219
  setting: "setting";
220
220
  relation: "relation";
@@ -273,9 +273,9 @@ declare const siteImportPlanSchema: z.ZodObject<{
273
273
  }>;
274
274
  message: z.ZodString;
275
275
  kind: z.ZodOptional<z.ZodEnum<{
276
- seo: "seo";
277
- media: "media";
278
276
  byline: "byline";
277
+ media: "media";
278
+ seo: "seo";
279
279
  collection: "collection";
280
280
  setting: "setting";
281
281
  relation: "relation";
@@ -361,9 +361,9 @@ declare const exportCursorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
361
361
  }, z.core.$strict>>;
362
362
  }, z.core.$strict>;
363
363
  kind: z.ZodEnum<{
364
- seo: "seo";
365
- media: "media";
366
364
  byline: "byline";
365
+ media: "media";
366
+ seo: "seo";
367
367
  collection: "collection";
368
368
  setting: "setting";
369
369
  relation: "relation";
@@ -431,9 +431,9 @@ declare const exportCursorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
431
431
  stage: z.ZodLiteral<"export_validate">;
432
432
  position: z.ZodNullable<z.ZodObject<{
433
433
  kind: z.ZodEnum<{
434
- seo: "seo";
435
- media: "media";
436
434
  byline: "byline";
435
+ media: "media";
436
+ seo: "seo";
437
437
  collection: "collection";
438
438
  setting: "setting";
439
439
  relation: "relation";
@@ -474,9 +474,9 @@ declare const analysisCursorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
474
474
  stage: z.ZodLiteral<"analyze_records">;
475
475
  position: z.ZodObject<{
476
476
  kind: z.ZodEnum<{
477
- seo: "seo";
478
- media: "media";
479
477
  byline: "byline";
478
+ media: "media";
479
+ seo: "seo";
480
480
  collection: "collection";
481
481
  setting: "setting";
482
482
  relation: "relation";
@@ -524,9 +524,9 @@ declare const importCursorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
524
524
  stage: z.ZodLiteral<"schema">;
525
525
  position: z.ZodObject<{
526
526
  kind: z.ZodEnum<{
527
- seo: "seo";
528
- media: "media";
529
527
  byline: "byline";
528
+ media: "media";
529
+ seo: "seo";
530
530
  collection: "collection";
531
531
  setting: "setting";
532
532
  relation: "relation";
@@ -561,9 +561,9 @@ declare const importCursorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
561
561
  stage: z.ZodLiteral<"media">;
562
562
  position: z.ZodObject<{
563
563
  kind: z.ZodEnum<{
564
- seo: "seo";
565
- media: "media";
566
564
  byline: "byline";
565
+ media: "media";
566
+ seo: "seo";
567
567
  collection: "collection";
568
568
  setting: "setting";
569
569
  relation: "relation";
@@ -598,9 +598,9 @@ declare const importCursorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
598
598
  stage: z.ZodLiteral<"terms_bylines">;
599
599
  position: z.ZodObject<{
600
600
  kind: z.ZodEnum<{
601
- seo: "seo";
602
- media: "media";
603
601
  byline: "byline";
602
+ media: "media";
603
+ seo: "seo";
604
604
  collection: "collection";
605
605
  setting: "setting";
606
606
  relation: "relation";
@@ -635,9 +635,9 @@ declare const importCursorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
635
635
  stage: z.ZodLiteral<"content">;
636
636
  position: z.ZodObject<{
637
637
  kind: z.ZodEnum<{
638
- seo: "seo";
639
- media: "media";
640
638
  byline: "byline";
639
+ media: "media";
640
+ seo: "seo";
641
641
  collection: "collection";
642
642
  setting: "setting";
643
643
  relation: "relation";
@@ -672,9 +672,9 @@ declare const importCursorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
672
672
  stage: z.ZodLiteral<"relations">;
673
673
  position: z.ZodObject<{
674
674
  kind: z.ZodEnum<{
675
- seo: "seo";
676
- media: "media";
677
675
  byline: "byline";
676
+ media: "media";
677
+ seo: "seo";
678
678
  collection: "collection";
679
679
  setting: "setting";
680
680
  relation: "relation";
@@ -709,9 +709,9 @@ declare const importCursorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
709
709
  stage: z.ZodLiteral<"presentation">;
710
710
  position: z.ZodObject<{
711
711
  kind: z.ZodEnum<{
712
- seo: "seo";
713
- media: "media";
714
712
  byline: "byline";
713
+ media: "media";
714
+ seo: "seo";
715
715
  collection: "collection";
716
716
  setting: "setting";
717
717
  relation: "relation";
@@ -745,9 +745,9 @@ declare const importCursorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
745
745
  }, z.core.$strict>, z.ZodObject<{
746
746
  stage: z.ZodLiteral<"rebuild">;
747
747
  step: z.ZodEnum<{
748
+ search: "search";
748
749
  taxonomies: "taxonomies";
749
750
  options: "options";
750
- search: "search";
751
751
  media_usage: "media_usage";
752
752
  caches: "caches";
753
753
  }>;
@@ -756,9 +756,9 @@ declare const importCursorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
756
756
  stage: z.ZodLiteral<"verify">;
757
757
  position: z.ZodNullable<z.ZodObject<{
758
758
  kind: z.ZodEnum<{
759
- seo: "seo";
760
- media: "media";
761
759
  byline: "byline";
760
+ media: "media";
761
+ seo: "seo";
762
762
  collection: "collection";
763
763
  setting: "setting";
764
764
  relation: "relation";
@@ -989,7 +989,7 @@ interface MediaUsageOccurrenceDetail {
989
989
  fieldSlug: string;
990
990
  fieldPath: string;
991
991
  occurrenceIndex: number;
992
- referenceType: "image_field" | "file_field" | "portable_text_image" | "unknown";
992
+ referenceType: "image_field" | "file_field" | "portable_text_image" | "portable_text_video" | "unknown";
993
993
  }
994
994
  /** Indexed references from one visible content source */
995
995
  interface MediaUsageSourceDetail {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/transfer/format/digest.ts","../../src/transfer/format/plan.ts","../../src/transfer/format/receipt.ts","../../src/transfer/errors.ts","../../src/transfer/ops/states.ts","../../src/transfer/ops/operations.ts","../../src/client/portable-text.ts","../../src/client/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/transfer/format/digest.ts","../../src/transfer/format/plan.ts","../../src/transfer/format/receipt.ts","../../src/transfer/errors.ts","../../src/transfer/ops/states.ts","../../src/transfer/ops/operations.ts","../../src/client/portable-text.ts","../../src/client/index.ts"],"mappings":";;;;;;;;;;;;;;;;AA+BA;;;;;;;;ACwDA;;;;;;;;;KDxDY,YAAA;;;;cCwDC,8BAAA,EAA8B,CAAA,CAAA,SAAA;;;;;;;;;;;KAM/B,wBAAA,GAA2B,CAAA,CAAE,KAAA,QAAa,8BAAA;AAAA,cAmBzC,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4BrB,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;;;cC9H/B,uBAAA,EAAuB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;KAkBxB,iBAAA,GAAoB,CAAA,CAAE,KAAA,QAAa,uBAAA;;;;;;;;KC0EnC,mBAAA,GAAsB,QAAA,CAAS,MAAA;;;cCpF9B,wBAAA;AAAA,KACD,qBAAA,WAAgC,wBAAA;AAAA,cAE/B,aAAA;AAAA,KACD,WAAA,WAAsB,aAAA;AAAA,cAErB,aAAA;AAAA,KAYD,WAAA,WAAsB,aAAA;AAAA,KAEtB,sBAAA,GAAyB,WAAA,GAAc,WAAA;AAAA,cA6HtC,kBAAA,EAAkB,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmCnB,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,kBAAA;AAAA,cAE7B,oBAAA,EAAoB,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAUrB,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,cAK/B,kBAAA,EAAkB,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuBnB,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,kBAAA;AAAA,KAO9B,cAAA,GAAiB,YAAA,GAAe,cAAA,GAAiB,YAAA;;;;;;;cAQhD,sBAAA,EAAsB,CAAA,CAAA,SAAA;;;;;;;KAOvB,gBAAA,GAAmB,CAAA,CAAE,KAAA,QAAa,sBAAA;;;UCtN7B,mBAAA;EAChB,EAAA;EACA,IAAA,EAAM,qBAAA;EACN,KAAA,EAAO,sBAAA;EACP,KAAA;EACA,MAAA,EAAQ,cAAA;EACR,QAAA,EAAU,gBAAA;EACV,OAAA;EACA,cAAA;EACA,aAAA,EAAe,YAAA;EACf,UAAA,EAAY,YAAA;EACZ,YAAA;;;;;EAKA,aAAA;EACA,OAAA,EAAS,iBAAA;EACT,SAAA;EACA,WAAA,EAAa,mBAAA;EACb,UAAA;EACA,YAAA;EACA,UAAA;EACA,cAAA;EACA,iBAAA;EACA,iBAAA;EACA,iBAAA;EACA,SAAA;EACA,SAAA;EACA,SAAA;EACA,WAAA;EACA,SAAA;EACA,kBAAA;AAAA;;;;;KAOW,uBAAA,GAA0B,IAAA,CAAK,mBAAA;;;;;;;;;;;AL1D3C;AAAA,UMjBiB,iBAAA;EAChB,KAAA;EACA,IAAA;EACA,KAAA;EACA,KAAA;EACA,QAAA;EACA,QAAA,GAAW,OAAA;EACX,QAAA,GAAW,gBAAA;EAAA,CACV,GAAA;AAAA;AAAA,UAGQ,gBAAA;EACT,KAAA;EACA,IAAA;EACA,IAAA;EACA,KAAA;EAAA,CACC,GAAA;AAAA;AAAA,UAGQ,OAAA;EACT,IAAA;EACA,KAAA;EACA,IAAA;EAAA,CACC,GAAA;AAAA;;;;;iBAgBc,sBAAA,CAAuB,MAAA,EAAQ,iBAAA;;;;;iBA6H/B,sBAAA,CAAuB,QAAA,WAAmB,iBAAA;;;UCtGzC,mBAAA;;EAEhB,OAAA;;EAEA,KAAA;ENO0C;EML1C,YAAA;ENK0C;EMH1C,cAAA,IAAkB,WAAA,UAAqB,SAAA;;EAEvC,SAAA;;EAEA,YAAA,GAAe,WAAA;AAAA;;UAIC,QAAA;EAChB,IAAA;EACA,OAAA;EACA,OAAA,GAAU,MAAA;AAAA;;UAIM,cAAA;EAChB,OAAA;EACA,IAAA,EAAM,CAAA;AAAA;;UAIU,UAAA;EAChB,KAAA,EAAO,CAAA;EACP,UAAA;AAAA;;UAIgB,WAAA;EAChB,EAAA;EACA,IAAA;EACA,IAAA;EACA,MAAA;EACA,IAAA,EAAM,MAAA;EACN,QAAA;EACA,SAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,cAAA;EACA,eAAA;EACA,MAAA;EACA,gBAAA;EACA,IAAA;AAAA;ANdD;AAAA,UMkBiB,UAAA;EAChB,IAAA;EACA,KAAA;EACA,aAAA;EACA,WAAA;EACA,IAAA;EACA,QAAA;AAAA;;UAIgB,oBAAA,SAA6B,UAAA;EAC7C,MAAA,EAAQ,KAAA;AAAA;;UAIQ,KAAA;EAChB,IAAA;EACA,KAAA;EACA,IAAA;EACA,QAAA;EACA,MAAA;EACA,YAAA;EACA,UAAA;EACA,MAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA,GAAa,SAAA;EACb,oBAAA;AAAA;;KAIW,wBAAA;;UAUK,kBAAA;EAChB,KAAA;EACA,MAAA,EAAQ,wBAAA;AAAA;;UAIQ,iBAAA;EAChB,KAAA;EACA,QAAA,EAAU,kBAAA;AAAA;;UAIM,0BAAA;EAChB,SAAA;EACA,SAAA;EACA,eAAA;EACA,aAAA;AAAA;;UASgB,sBAAA;EAChB,OAAA;EACA,WAAA,EAAa,0BAAA;AAAA;;UAIG,qBAAA;EAChB,UAAA;EACA,SAAA;EACA,KAAA;EACA,IAAA;EACA,MAAA;EACA,MAAA;EACA,WAAA;EACA,SAAA;EACA,OAAA,EAAS,sBAAA;AAAA;;UAIO,2BAAA;EAChB,OAAA;AAAA;;UAIgB,yBAAA;EAChB,KAAA,EAAO,qBAAA;EACP,UAAA;EACA,YAAA,EAAc,2BAAA;EACd,QAAA,EAAU,kBAAA;AAAA;;UAIM,SAAA;EAChB,EAAA;EACA,QAAA;EACA,GAAA;EACA,QAAA;EACA,IAAA;EACA,KAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,GAAA;EACA,OAAA;EACA,SAAA;EACA,SAAA;EACA,QAAA;EACA,KAAA,GAAQ,iBAAA;AAAA;;UAIQ,qBAAA;EAChB,EAAA;EACA,QAAA;AAAA;;UAIgB,WAAA;EAChB,EAAA;EACA,IAAA;AAAA;;KAIW,qBAAA;EAA0B,KAAA;EAAqB,UAAA;AAAA;EAAyB,KAAA;AAAA;;KAGxE,sBAAA;;UAGK,iCAAA;EAChB,UAAA;EACA,MAAA,EAAQ,sBAAA;EACR,kBAAA;EACA,iBAAA;EACA,kBAAA;EACA,kBAAA;EACA,aAAA;EACA,SAAA;EACA,WAAA;AAAA;;UAIgB,wBAAA;EAChB,MAAA,EAAQ,sBAAA;EACR,kBAAA;EACA,iBAAA;EACA,kBAAA;EACA,kBAAA;EACA,WAAA,EAAa,iCAAA;AAAA;AAAA,UAGG,kBAAA;EAChB,MAAA;EACA,gBAAA;EACA,gBAAA;AAAA;AAAA,UAGgB,iCAAA;EAChB,UAAA,EAAY,0BAAA;EACZ,QAAA,EAAU,kBAAA;EACV,eAAA;AAAA;;KAIW,mBAAA;;UAGK,kBAAA;EAChB,YAAA;EACA,cAAA;EACA,SAAA;EACA,KAAA,EAAO,mBAAA;EACP,YAAA;EACA,aAAA;EACA,cAAA;EACA,eAAA;EACA,aAAA;EACA,SAAA;AAAA;;UAIgB,yBAAA;EAChB,UAAA;EACA,KAAA,GAAQ,mBAAA;EACR,KAAA;EACA,MAAA;AAAA;;UAIgB,0BAAA;EAChB,KAAA,EAAO,kBAAA;EACP,UAAA;AAAA;;UAIgB,wBAAA;EAChB,YAAA;EACA,SAAA;AAAA;;UAIgB,2BAAA;EAChB,OAAA;EACA,IAAA,EAAM,kBAAA;AAAA;AAAA,UAGU,0BAAA;EAChB,KAAA;EACA,gBAAA;EACA,YAAA;EACA,gBAAA;EACA,eAAA;EACA,aAAA;EACA,cAAA;EACA,WAAA;EACA,SAAA;AAAA;AAAA,UAGgB,gCAAA;EAChB,cAAA;AAAA;AAAA,UAGgB,mCAAA;EAChB,OAAA;EACA,oBAAA;EACA,UAAA,EAAY,0BAAA;AAAA;AAAA,KAGD,iCAAA;AAAA,KACA,iCAAA;AAAA,UAQK,gCAAA;EAChB,YAAA;EACA,cAAA;EACA,KAAA,EAAO,iCAAA;EACP,KAAA,EAAO,iCAAA;EACP,YAAA;EACA,aAAA;EACA,cAAA;EACA,aAAA;EACA,SAAA;AAAA;AAAA,UAEgB,wCAAA;EAChB,KAAA,EAAO,gCAAA;EACP,UAAA;AAAA;;UAIgB,YAAA;EAChB,EAAA;EACA,UAAA;EACA,KAAA;EACA,OAAA;EACA,KAAA;AAAA;;UAIgB,QAAA;EAChB,IAAA;EACA,KAAA;EACA,YAAA;AAAA;;UAIgB,IAAA;EAChB,EAAA;EACA,IAAA;EACA,KAAA;EACA,QAAA;EACA,WAAA;EACA,KAAA;AAAA;;UAIgB,IAAA;EAChB,IAAA;EACA,KAAA;AAAA;;UAIgB,aAAA,SAAsB,IAAA;EACtC,KAAA,EAAO,QAAA;AAAA;;UAIS,QAAA;EAChB,EAAA;EACA,IAAA;EACA,KAAA;EACA,SAAA;EACA,mBAAA;EACA,WAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;AAAA;;UAIgB,YAAA;EAChB,WAAA,EAAa,KAAA;IACZ,IAAA;IACA,KAAA;IACA,aAAA;IACA,WAAA;IACA,IAAA;IACA,QAAA;IACA,MAAA,EAAQ,KAAA;MACP,IAAA;MACA,KAAA;MACA,IAAA;MACA,QAAA;MACA,MAAA;MACA,YAAA;MACA,UAAA;MACA,MAAA;MACA,OAAA;IAAA;EAAA;EAGF,OAAA;AAAA;;UAIgB,QAAA;EAChB,OAAA;EACA,IAAA;EACA,WAAA,EAAa,MAAA;IAGX,KAAA;IACA,aAAA;IACA,QAAA;IACA,MAAA,EAAQ,MAAA;MAAiB,IAAA;MAAc,KAAA;MAAgB,QAAA;IAAA;EAAA;AAAA;;UAMzC,WAAA;EAChB,EAAA;EACA,KAAA;EACA,IAAA;EACA,IAAA;EACA,QAAA;AAAA;;KAIW,iBAAA,GAAoB,uBAAA;;UAGf,oBAAA;EAChB,cAAA;EACA,QAAA;EACA,gBAAA;EACA,MAAA;IACC,aAAA;IACA,eAAA;IACA,UAAA;IACA,YAAA;IACA,YAAA;IACA,UAAA;IACA,WAAA;IACA,SAAA;IACA,YAAA;EAAA;EAED,cAAA;IACC,KAAA;IACA,QAAA,EAAU,KAAA,CAAM,MAAA;IAChB,cAAA,EAAgB,KAAA,CAAM,MAAA;EAAA;AAAA;;UAKP,qBAAA;EAChB,SAAA,EAAW,iBAAA;;EAEX,eAAA;AAAA;;UAIgB,mBAAA;EAChB,IAAA;EACA,KAAA;EACA,MAAA;AAAA;AAAA,UAGgB,0BAAA;EAChB,SAAA,EAAW,iBAAA;EACX,OAAA;EACA,OAAA,EAAS,UAAA,CAAW,mBAAA;AAAA;AAAA,UAGJ,wBAAA;EAChB,IAAA;EACA,KAAA;;EAEA,eAAA;;EAEA,SAAA;AAAA;AAAA,UAGgB,2BAAA;EAChB,SAAA,EAAW,iBAAA;EACX,IAAA,GAAO,cAAA;EACP,UAAA,GAAa,YAAA;;EAEb,eAAA;AAAA;AAAA,UAGgB,oBAAA;EAChB,SAAA,EAAW,iBAAA;EACX,KAAA;IAAS,QAAA;IAAkB,QAAA;EAAA;AAAA;;UAIX,oBAAA;EAChB,IAAA,EAAM,cAAA,CAAe,UAAA;;EAErB,KAAA;;EAEA,MAAA;AAAA;AAAA,cAOY,cAAA,SAAuB,KAAA;EAAA,SAElB,MAAA;EAAA,SACA,IAAA;EAAA,SAEA,OAAA,GAAU,MAAA;cAHV,MAAA,UACA,IAAA,UAChB,OAAA,UACgB,OAAA,GAAU,MAAA;AAAA;AAAA,cAOf,iBAAA,SAA0B,KAAA;cAC1B,OAAA;AAAA;AAAA,cAUA,YAAA;EAAA,iBACK,OAAA;EAAA,iBACA,SAAA;;UAGT,gBAAA;cAEI,OAAA,EAAS,mBAAA;;EAwCf,WAAA,CAAA,GAAe,OAAA,CAAQ,UAAA;;EAMvB,UAAA,CAAW,IAAA,WAAe,OAAA,CAAQ,oBAAA;EAgBlC,UAAA,CAAA,GAAc,OAAA,CAAQ,SAAA;EAKtB,SAAA,CAAU,IAAA,WAAe,OAAA,CAAQ,SAAA;EAQjC,eAAA,CAAgB,KAAA,EAAO,oBAAA,GAAuB,OAAA,CAAQ,SAAA;EAKtD,eAAA,CAAgB,IAAA,UAAc,KAAA,EAAO,oBAAA,GAAuB,OAAA,CAAQ,SAAA;EASpE,wBAAA,CACL,IAAA,UACA,OAAA,UACA,mBAAA,WACE,OAAA,CAAQ,SAAA;;EAUL,gBAAA,CAAiB,KAAA;IACtB,IAAA;IACA,KAAA;IACA,aAAA;IACA,WAAA;IACA,IAAA;IACA,QAAA;EAAA,IACG,OAAA,CAAQ,UAAA;;EAMN,gBAAA,CAAiB,IAAA,WAAe,OAAA;;EAKhC,WAAA,CACL,UAAA,UACA,KAAA;IACC,IAAA;IACA,IAAA;IACA,KAAA;IACA,QAAA;IACA,MAAA;IACA,YAAA;IACA,UAAA;IACA,MAAA;IACA,OAAA;IACA,SAAA;EAAA,IAEC,OAAA,CAAQ,KAAA;;EAYL,WAAA,CAAY,UAAA,UAAoB,SAAA,WAAoB,OAAA;;EASpD,QAAA,CAAA,GAAY,OAAA,CAAQ,QAAA;;EAKpB,YAAA,CAAA,GAAgB,OAAA,CAAQ,YAAA;;EAKxB,WAAA,CAAA,GAAe,OAAA;;EAWf,IAAA,CACL,UAAA,UACA,OAAA;IACC,MAAA;IACA,KAAA;IACA,MAAA;IACA,OAAA;IACA,KAAA;IACA,MAAA;IAEA,YAAA,GAAe,mBAAA;EAAA,IAEd,OAAA,CAAQ,UAAA,CAAW,WAAA;;EAkBf,OAAA,CACN,UAAA,UACA,OAAA;IACC,MAAA;IACA,KAAA;IACA,OAAA;IACA,KAAA;IACA,MAAA;IAEA,YAAA,GAAe,mBAAA;EAAA,IAEd,cAAA,CAAe,WAAA;;;;;EAeZ,GAAA,CACL,UAAA,UACA,EAAA,UACA,OAAA;IAAY,GAAA;IAAe,MAAA;EAAA,IACzB,OAAA,CAAQ,WAAA;;EA+BL,MAAA,CACL,UAAA,UACA,KAAA;IACC,IAAA,EAAM,MAAA;IACN,IAAA;IACA,MAAA;IACA,MAAA;IACA,aAAA;IACA,aAAA;IACA,aAAA;EAAA,IAEC,OAAA,CAAQ,WAAA;;;;;;EAkBL,MAAA,CACL,UAAA,UACA,EAAA,UACA,KAAA;IACC,IAAA,GAAO,MAAA;IACP,IAAA;IACA,MAAA;IACA,IAAA;IACA,MAAA;IACA,aAAA;IACA,aAAA;IAEA,YAAA;EAAA,IAEC,OAAA,CAAQ,WAAA;;EAiCL,MAAA,CACL,UAAA,UACA,EAAA,UACA,OAAA;IAAW,YAAA;EAAA,IACT,OAAA;;EASG,OAAA,CACL,UAAA,UACA,EAAA,UACA,OAAA;IAAW,YAAA;EAAA,IACT,OAAA;;EASG,SAAA,CACL,UAAA,UACA,EAAA,UACA,OAAA;IAAW,YAAA;EAAA,IACT,OAAA;;EASG,QAAA,CACL,UAAA,UACA,EAAA,UACA,OAAA;IAAW,EAAA;IAAY,YAAA;EAAA,IACrB,OAAA;;EASG,OAAA,CAAQ,UAAA,UAAoB,EAAA,WAAa,OAAA;;EAQzC,OAAA,CACL,UAAA,UACA,EAAA,WACE,OAAA;IACF,UAAA;IACA,IAAA,EAAM,MAAA;IACN,KAAA,EAAO,MAAA;EAAA;;EAUF,YAAA,CACL,UAAA,UACA,EAAA,UACA,OAAA;IAAW,YAAA;EAAA,IACT,OAAA;;;;;EAYG,YAAA,CACL,UAAA,UACA,EAAA,WACE,OAAA;IACF,gBAAA;IACA,YAAA,EAAc,KAAA;MACb,EAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;MACA,SAAA;IAAA;EAAA;;EAcI,SAAA,CAAU,OAAA;IACf,QAAA;IACA,KAAA;IACA,MAAA;IACA,IAAA;IACA,YAAA;IACA,QAAA;EAAA,IACG,OAAA,CAAQ,UAAA,CAAW,SAAA;IAAe,UAAA;EAAA;;EAqBhC,QAAA,CAAS,EAAA,UAAY,OAAA;IAAY,YAAA;EAAA,IAA2B,OAAA,CAAQ,SAAA;;EAapE,eAAA,CACL,OAAA;IAAW,KAAA;IAAgB,MAAA;IAAiB,CAAA;EAAA,IAC1C,OAAA,CAAQ,UAAA,CAAW,WAAA;;EAUhB,cAAA,CAAe,EAAA,WAAa,OAAA,CAAQ,WAAA;;EASpC,iBAAA,CAAkB,IAAA,WAAe,OAAA,CAAQ,WAAA;;EAMzC,iBAAA,CAAkB,EAAA,UAAY,IAAA,WAAe,OAAA,CAAQ,WAAA;;EAUrD,iBAAA,CAAkB,EAAA,WAAa,OAAA;;EAK/B,cAAA,CAAe,EAAA,UAAY,QAAA,kBAA0B,OAAA,CAAQ,qBAAA;;EAU7D,aAAA,CACL,EAAA,UACA,OAAA;IAAY,KAAA;IAAgB,MAAA;EAAA,IAC1B,OAAA,CAAQ,yBAAA;;EAaL,WAAA,CACL,IAAA,EAAM,UAAA,GAAa,IAAA,EACnB,QAAA,UACA,OAAA;IAAY,GAAA;IAAc,OAAA;IAAkB,WAAA;EAAA,IAC1C,OAAA,CAAQ,SAAA;;EA4BL,WAAA,CAAY,EAAA,WAAa,OAAA;;EAKzB,gBAAA,CAAiB,KAAA,EAAO,qBAAA,GAAwB,OAAA,CAAQ,wBAAA;;EAKxD,qBAAA,CAAA,GAAyB,OAAA,CAAQ,kBAAA;;EAKjC,yBAAA,CAAA,GAA6B,OAAA,CAAQ,iCAAA;;EAKrC,uBAAA,CAAA,GAA2B,OAAA,CAAQ,0BAAA;;EAKnC,2BAAA,CACL,KAAA,EAAO,gCAAA,GACL,OAAA,CAAQ,mCAAA;;EASL,kBAAA,CACL,OAAA,EAAS,yBAAA,GACP,OAAA,CAAQ,0BAAA;;EASL,mBAAA,CAAoB,KAAA,EAAO,wBAAA,GAA2B,OAAA,CAAQ,2BAAA;EAQ9D,4BAAA,CACL,OAAA;IACC,KAAA,GAAQ,iCAAA;IACR,KAAA;IACA,MAAA;EAAA,IAEC,OAAA,CAAQ,wCAAA;EAQL,4BAAA,CAA6B,YAAA,WAAuB,OAAA;IACzD,OAAA;IACA,IAAA,EAAM,gCAAA;EAAA;;EAYD,MAAA,CACL,KAAA,UACA,OAAA;IAAY,UAAA;IAAqB,MAAA;IAAiB,KAAA;EAAA,IAChD,OAAA,CAAQ,YAAA;;EAeL,UAAA,CAAA,GAAc,OAAA,CAAQ,QAAA;;;;;;EAUtB,KAAA,CACL,QAAA,UACA,OAAA;IAAY,KAAA;IAAgB,MAAA;IAAiB,aAAA;EAAA,IAC3C,OAAA,CAAQ,UAAA,CAAW,IAAA;;EAgBhB,UAAA,CACL,QAAA,UACA,KAAA;IAAS,IAAA;IAAc,KAAA;IAAe,QAAA;IAAmB,WAAA;EAAA,IACvD,OAAA,CAAQ,IAAA;;EASL,KAAA,CAAA,GAAS,OAAA,CAAQ,IAAA;;EAMjB,IAAA,CAAK,IAAA,WAAe,OAAA,CAAQ,aAAA;;EAS5B,KAAA,CAAM,OAAA;IACX,MAAA;IACA,KAAA;IACA,MAAA;EAAA,IACG,OAAA,CAAQ,UAAA,CAAW,WAAA;;EAcjB,oBAAA,CAAA,GAAwB,OAAA,CAAQ,oBAAA;;;;;EAQhC,oBAAA,CACL,OAAA;IAAW,QAAA;EAAA,GACX,OAAA;IAAW,cAAA;EAAA,IACT,OAAA;IAAU,SAAA,EAAW,iBAAA;IAAmB,OAAA;EAAA;;EAKrC,kBAAA,CAAmB,OAAA;IACxB,KAAA;IACA,MAAA;EAAA,IACG,OAAA,CAAQ,UAAA,CAAW,iBAAA;EAIjB,iBAAA,CAAkB,EAAA,WAAa,OAAA;IAAU,SAAA,EAAW,iBAAA;EAAA;;EAKpD,qBAAA,CAAsB,EAAA,WAAa,OAAA,CAAQ,qBAAA;;EAK3C,sBAAA,CAAuB,EAAA,WAAa,OAAA,CAAQ,UAAA;;;;;;EAc5C,kBAAA,CAAmB,EAAA,UAAY,IAAA,WAAe,OAAA,CAAQ,oBAAA;;;;;;EAqBtD,oBAAA,CACL,QAAA,EAAU,UAAA,EACV,OAAA;IAAW,cAAA;EAAA,IACT,OAAA,CAAQ,0BAAA;;EAWL,kBAAA,CAAmB,OAAA;IACxB,KAAA;IACA,MAAA;EAAA,IACG,OAAA,CAAQ,UAAA,CAAW,iBAAA;EAIjB,iBAAA,CAAkB,EAAA,WAAa,OAAA,CAAQ,oBAAA;;EAKvC,qBAAA,CACL,EAAA,UACA,OAAA;IAAY,KAAA;IAAgB,MAAA;EAAA,IAC1B,OAAA,CAAQ,UAAA,CAAW,mBAAA;;;;;EAWhB,wBAAA,CACL,EAAA,UACA,IAAA,UACA,IAAA,EAAM,UAAA,GAAa,cAAA,CAAe,UAAA,GAClC,KAAA,WACE,OAAA,CAAQ,wBAAA;ENn0Cc;;;;;EMy1CnB,qBAAA,CACL,EAAA,UACA,SAAA,GAAY,wBAAA,GACV,OAAA,CAAQ,2BAAA;EAQL,kBAAA,CACL,EAAA,WACE,OAAA;IAAU,IAAA,EAAM,cAAA;IAAgB,UAAA,EAAY,YAAA;EAAA;;EAKzC,qBAAA,CACL,EAAA,UACA,KAAA;IAAS,aAAA;IAAuB,UAAA;EAAA,IAC9B,OAAA;IAAU,SAAA,EAAW,iBAAA;EAAA;;EAQlB,qBAAA,CAAsB,EAAA,WAAa,OAAA,CAAQ,qBAAA;EAI3C,qBAAA,CAAsB,EAAA,WAAa,OAAA;IAAU,OAAA,EAAS,iBAAA;EAAA;;;;;;EAStD,oBAAA,CAAqB,EAAA,WAAa,OAAA;IAAU,SAAA,EAAW,iBAAA;EAAA;;;;;EAQvD,qBAAA,CAAsB,EAAA,WAAa,OAAA;IAAU,SAAA,EAAW,iBAAA;EAAA;ELzgD3B;EAAA,QKkhDrB,OAAA;;UAaA,UAAA;;UAkBA,IAAA;;UAoBA,QAAA;;UAyBA,eAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { i as portableTextToMarkdown, n as convertDataForWrite, r as markdownToPortableText, t as convertDataForRead } from "../portable-text-kcyN3F-a.mjs";
2
- import { a as tokenInterceptor, i as refreshInterceptor, n as csrfInterceptor, r as devBypassInterceptor, t as createTransport } from "../transport-CriYXY1c.mjs";
1
+ import { i as portableTextToMarkdown, n as convertDataForWrite, r as markdownToPortableText, t as convertDataForRead } from "../portable-text-Dc2YAusw.mjs";
2
+ import { a as tokenInterceptor, i as refreshInterceptor, n as csrfInterceptor, r as devBypassInterceptor, t as createTransport } from "../transport-Ds5pVX7p.mjs";
3
3
  import mime from "mime/lite";
4
4
 
5
5
  //#region src/client/index.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/client/index.ts"],"sourcesContent":["/**\n * EmDashClient — typed HTTP client for the EmDash REST API.\n *\n * Handles auth, CSRF, PT ↔ Markdown conversion, and optional `_rev`\n * concurrency tokens. Shared foundation for the CLI and future MCP server.\n *\n * @example\n * ```ts\n * import { EmDashClient } from \"emdash/client\";\n *\n * const client = new EmDashClient({\n * baseUrl: \"http://localhost:4321\",\n * devBypass: true,\n * });\n *\n * const posts = await client.list(\"posts\", { status: \"published\" });\n * ```\n */\n\nimport mime from \"mime/lite\";\n\nimport type { ContentFieldFilters } from \"../content-list-query.js\";\nimport type {\n\tBlockType,\n\tCreateBlockTypeInput,\n\tUpdateBlockTypeInput,\n} from \"../schema/block-types.js\";\nimport type { Sha256Digest } from \"../transfer/format/digest.js\";\nimport type { SiteImportDecisionsInput, SiteImportPlan } from \"../transfer/format/plan.js\";\nimport type { SiteImportReceipt } from \"../transfer/format/receipt.js\";\nimport type { PublicTransferOperation } from \"../transfer/ops/operations.js\";\nimport type { FieldSchema } from \"./portable-text.js\";\nimport { convertDataForRead, convertDataForWrite } from \"./portable-text.js\";\nimport type { Interceptor } from \"./transport.js\";\nimport {\n\tcreateTransport,\n\tcsrfInterceptor,\n\tdevBypassInterceptor,\n\trefreshInterceptor,\n\ttokenInterceptor,\n} from \"./transport.js\";\n\n// Regex patterns for client utilities\nconst TRAILING_SLASH_PATTERN = /\\/$/;\nconst DECIMAL_PATTERN = /^\\d+$/;\nconst SHA256_ETAG_PATTERN = /^\"([0-9a-f]{64})\"$/;\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction mimeFromFilename(filename: string): string {\n\treturn mime.getType(filename) ?? \"application/octet-stream\";\n}\n\nfunction idempotencyHeader(request: { idempotencyKey?: string }): Record<string, string> {\n\treturn request.idempotencyKey === undefined ? {} : { \"Idempotency-Key\": request.idempotencyKey };\n}\n\nfunction pageQuery(options?: { limit?: number; cursor?: string }): string {\n\tconst params = new URLSearchParams();\n\tif (options?.limit !== undefined) params.set(\"limit\", String(options.limit));\n\tif (options?.cursor !== undefined) params.set(\"cursor\", options.cursor);\n\tconst qs = params.toString();\n\treturn qs ? `?${qs}` : \"\";\n}\n\n/** Encode a site package path (`records/post/000000.ndjson`) segment by segment */\nfunction encodePackagePath(path: string): string {\n\treturn path.split(\"/\").map(encodeURIComponent).join(\"/\");\n}\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface EmDashClientOptions {\n\t/** Base URL of the EmDash instance */\n\tbaseUrl: string;\n\t/** API token (ec_pat_...) or OAuth token (ec_oat_...) */\n\ttoken?: string;\n\t/** OAuth refresh token for auto-refresh on 401 */\n\trefreshToken?: string;\n\t/** Called when a token is refreshed (for persisting new access token) */\n\tonTokenRefresh?: (accessToken: string, expiresIn: number) => void;\n\t/** Use dev-bypass authentication (localhost only) */\n\tdevBypass?: boolean;\n\t/** Additional request interceptors */\n\tinterceptors?: Interceptor[];\n}\n\n/** Standard API error shape */\nexport interface ApiError {\n\tcode: string;\n\tmessage: string;\n\tdetails?: Record<string, unknown>;\n}\n\n/** Standard API response wrapper */\nexport interface ClientResponse<T> {\n\tsuccess: true;\n\tdata: T;\n}\n\n/** Paginated list response */\nexport interface ListResult<T> {\n\titems: T[];\n\tnextCursor?: string;\n}\n\n/** Content item as returned by the API */\nexport interface ContentItem {\n\tid: string;\n\ttype: string;\n\tslug: string | null;\n\tstatus: string;\n\tdata: Record<string, unknown>;\n\tauthorId: string | null;\n\tcreatedAt: string;\n\tupdatedAt: string;\n\tpublishedAt: string | null;\n\tscheduledAt: string | null;\n\tliveRevisionId: string | null;\n\tdraftRevisionId: string | null;\n\tlocale: string | null;\n\ttranslationGroup: string | null;\n\t_rev?: string;\n}\n\n/** Collection metadata */\nexport interface Collection {\n\tslug: string;\n\tlabel: string;\n\tlabelSingular: string;\n\tdescription?: string;\n\ticon?: string;\n\tsupports: string[];\n}\n\n/** Collection with fields */\nexport interface CollectionWithFields extends Collection {\n\tfields: Field[];\n}\n\n/** Field metadata */\nexport interface Field {\n\tslug: string;\n\tlabel: string;\n\ttype: string;\n\trequired: boolean;\n\tunique: boolean;\n\tdefaultValue?: unknown;\n\tvalidation?: unknown;\n\twidget?: string;\n\toptions?: unknown;\n\tsortOrder?: number;\n\tblockTypes?: BlockType[];\n\tblockTypeFingerprint?: string;\n}\n\n/** Aggregate trust state for media usage reads */\nexport type MediaUsageCoverageStatus =\n\t| \"complete\"\n\t| \"never\"\n\t| \"running\"\n\t| \"partial\"\n\t| \"failed\"\n\t| \"stale\"\n\t| \"unknown\";\n\n/** Aggregate media usage coverage across all content collections */\nexport interface MediaUsageCoverage {\n\tscope: \"all_content_collections\";\n\tstatus: MediaUsageCoverageStatus;\n}\n\n/** Coverage-aware usage count for a media item */\nexport interface MediaUsageSummary {\n\tcount: number | null;\n\tcoverage: MediaUsageCoverage;\n}\n\n/** One indexed media reference within a content source */\nexport interface MediaUsageOccurrenceDetail {\n\tfieldSlug: string;\n\tfieldPath: string;\n\toccurrenceIndex: number;\n\treferenceType: \"image_field\" | \"file_field\" | \"portable_text_image\" | \"unknown\";\n}\n\n/** Indexed references from one visible content source */\nexport interface MediaUsageSourceDetail {\n\tvariant: \"columns\" | \"draft_overlay\";\n\toccurrences: MediaUsageOccurrenceDetail[];\n}\n\n/** One content entry that references a media item */\nexport interface MediaUsageEntryDetail {\n\tcollection: string;\n\tcontentId: string;\n\ttitle: string | null;\n\tslug: string | null;\n\tlocale: string | null;\n\tstatus: string | null;\n\tscheduledAt: string | null;\n\tdeletedAt: string | null;\n\tsources: MediaUsageSourceDetail[];\n}\n\n/** A site setting that selects a media item */\nexport interface MediaUsageSiteSettingDetail {\n\tsetting: \"logo\" | \"favicon\" | \"seo.defaultOgImage\";\n}\n\n/** Entry-grouped media usage details */\nexport interface MediaUsageDetailsResponse {\n\titems: MediaUsageEntryDetail[];\n\tnextCursor?: string;\n\tsiteSettings: MediaUsageSiteSettingDetail[];\n\tcoverage: MediaUsageCoverage;\n}\n\n/** Media item */\nexport interface MediaItem {\n\tid: string;\n\tfilename: string;\n\tkey: string;\n\tmimeType: string;\n\tsize: number;\n\twidth?: number;\n\theight?: number;\n\tfocalX?: number | null;\n\tfocalY?: number | null;\n\talt?: string;\n\tcaption?: string;\n\tcreatedAt: string;\n\tupdatedAt: string;\n\tfolderId?: string | null;\n\tusage?: MediaUsageSummary;\n}\n\n/** Result of assigning local media to a folder or the Main library */\nexport interface MediaFolderAssignment {\n\tid: string;\n\tfolderId: string | null;\n}\n\n/** Flat media-library folder */\nexport interface MediaFolder {\n\tid: string;\n\tname: string;\n}\n\n/** Media usage repair request */\nexport type MediaUsageRepairInput = { scope: \"collection\"; collection: string } | { scope: \"all\" };\n\n/** Media usage repair status */\nexport type MediaUsageRepairStatus = \"complete\" | \"partial\" | \"failed\" | \"stale\";\n\n/** Per-collection media usage repair summary */\nexport interface MediaUsageRepairCollectionSummary {\n\tcollection: string;\n\tstatus: MediaUsageRepairStatus;\n\tindexedSourceCount: number;\n\tfailedSourceCount: number;\n\tskippedSourceCount: number;\n\tdeletedSourceCount: number;\n\tlastErrorCode: string | null;\n\tstartedAt: string;\n\tcompletedAt: string | null;\n}\n\n/** Media usage repair response */\nexport interface MediaUsageRepairResponse {\n\tstatus: MediaUsageRepairStatus;\n\tindexedSourceCount: number;\n\tfailedSourceCount: number;\n\tskippedSourceCount: number;\n\tdeletedSourceCount: number;\n\tcollections: MediaUsageRepairCollectionSummary[];\n}\n\nexport interface MediaUsageProgress {\n\tstatus: \"indexing\" | \"ready\" | \"needs_attention\";\n\treadyCollections: number;\n\ttotalCollections: number;\n}\n\nexport interface MediaUsageProgressAdvanceResponse {\n\tactivation: MediaUsageActivationStatus;\n\tprogress: MediaUsageProgress | null;\n\tnextRequestInMs: 0 | 30_000 | null;\n}\n\n/** Durable media usage entry-work state */\nexport type MediaUsageWorkState = \"pending\" | \"retry\" | \"leased\" | \"failed\";\n\n/** Redacted operator view of one durable media usage job */\nexport interface MediaUsageWorkItem {\n\tcollectionId: string;\n\tcollectionSlug: string;\n\tcontentId: string;\n\tstate: MediaUsageWorkState;\n\tattemptCount: number;\n\tnextAttemptAt: string;\n\tleaseExpiresAt: string | null;\n\tlastAttemptedAt: string | null;\n\tlastErrorCode: string | null;\n\tupdatedAt: string;\n}\n\n/** Filters and pagination for durable media usage work */\nexport interface MediaUsageWorkListOptions {\n\tcollection: string;\n\tstate?: MediaUsageWorkState;\n\tlimit?: number;\n\tcursor?: string;\n}\n\n/** One bounded page of durable media usage work */\nexport interface MediaUsageWorkListResponse {\n\titems: MediaUsageWorkItem[];\n\tnextCursor?: string;\n}\n\n/** Identity for explicitly retrying one durable media usage job */\nexport interface MediaUsageWorkRetryInput {\n\tcollectionId: string;\n\tcontentId: string;\n}\n\n/** Result of explicitly retrying one durable media usage job */\nexport interface MediaUsageWorkRetryResponse {\n\tchanged: boolean;\n\titem: MediaUsageWorkItem;\n}\n\nexport interface MediaUsageActivationStatus {\n\tstate: \"expanded\" | \"activating\" | \"active\";\n\tcollectionCursor: string | null;\n\tattemptCount: number;\n\tdrainConfirmedAt: string | null;\n\tlastAttemptedAt: string | null;\n\tlastErrorCode: \"MEDIA_USAGE_ACTIVATION_FAILED\" | null;\n\tleaseExpiresAt: string | null;\n\tactivatedAt: string | null;\n\tupdatedAt: string;\n}\n\nexport interface MediaUsageActivationAdvanceInput {\n\twritersDrained: true;\n}\n\nexport interface MediaUsageActivationAdvanceResponse {\n\toutcome: \"activating\" | \"active\";\n\tprocessedCollections: number;\n\tactivation: MediaUsageActivationStatus;\n}\n\nexport type MediaUsageCollectionDeletionState = \"pending\" | \"retry\" | \"leased\" | \"failed\";\nexport type MediaUsageCollectionDeletionPhase =\n\t| \"fence\"\n\t| \"registry\"\n\t| \"table\"\n\t| \"work\"\n\t| \"sources\"\n\t| \"status\"\n\t| \"finalize\";\nexport interface MediaUsageCollectionDeletionItem {\n\tcollectionId: string;\n\tcollectionSlug: string;\n\tstate: MediaUsageCollectionDeletionState;\n\tphase: MediaUsageCollectionDeletionPhase;\n\tattemptCount: number;\n\tnextAttemptAt: string;\n\tleaseExpiresAt: string | null;\n\tlastErrorCode: string | null;\n\tupdatedAt: string;\n}\nexport interface MediaUsageCollectionDeletionListResponse {\n\titems: MediaUsageCollectionDeletionItem[];\n\tnextCursor?: string;\n}\n\n/** Search result */\nexport interface SearchResult {\n\tid: string;\n\tcollection: string;\n\ttitle: string;\n\texcerpt?: string;\n\tscore: number;\n}\n\n/** Taxonomy */\nexport interface Taxonomy {\n\tname: string;\n\tlabel: string;\n\thierarchical: boolean;\n}\n\n/** Taxonomy term */\nexport interface Term {\n\tid: string;\n\tslug: string;\n\tlabel: string;\n\tparentId?: string | null;\n\tdescription?: string;\n\tcount?: number;\n}\n\n/** Menu */\nexport interface Menu {\n\tname: string;\n\tlabel: string;\n}\n\n/** Menu with items */\nexport interface MenuWithItems extends Menu {\n\titems: MenuItem[];\n}\n\n/** Menu item */\nexport interface MenuItem {\n\tid: string;\n\ttype: string;\n\tlabel: string;\n\tcustomUrl?: string;\n\treferenceCollection?: string;\n\treferenceId?: string;\n\ttarget?: string;\n\tparentId?: string | null;\n\tsortOrder: number;\n}\n\n/** Full schema export (returned by /api/schema) */\nexport interface SchemaExport {\n\tcollections: Array<{\n\t\tslug: string;\n\t\tlabel: string;\n\t\tlabelSingular: string;\n\t\tdescription?: string;\n\t\ticon?: string;\n\t\tsupports: string[];\n\t\tfields: Array<{\n\t\t\tslug: string;\n\t\t\tlabel: string;\n\t\t\ttype: string;\n\t\t\trequired: boolean;\n\t\t\tunique: boolean;\n\t\t\tdefaultValue?: unknown;\n\t\t\tvalidation?: unknown;\n\t\t\twidget?: string;\n\t\t\toptions?: unknown;\n\t\t}>;\n\t}>;\n\tversion: string;\n}\n\n/** Manifest — full schema + field descriptors */\nexport interface Manifest {\n\tversion: string;\n\thash: string;\n\tcollections: Record<\n\t\tstring,\n\t\t{\n\t\t\tlabel: string;\n\t\t\tlabelSingular: string;\n\t\t\tsupports: string[];\n\t\t\tfields: Record<string, { kind: string; label?: string; required?: boolean }>;\n\t\t}\n\t>;\n}\n\n/** User as listed by the admin users API */\nexport interface UserSummary {\n\tid: string;\n\temail: string;\n\tname: string | null;\n\trole: number;\n\tdisabled: boolean;\n}\n\n/** A site transfer operation (export or import) */\nexport type TransferOperation = PublicTransferOperation;\n\n/** Site transfer capabilities of an instance */\nexport interface TransferCapabilities {\n\tformatVersions: string[];\n\tfeatures: string[];\n\toptionalFeatures: string[];\n\tlimits: {\n\t\tmanifestBytes: number;\n\t\trecordLineBytes: number;\n\t\tchunkBytes: number;\n\t\tchunkRecords: number;\n\t\ttotalRecords: number;\n\t\ttotalFiles: number;\n\t\tindexChunks: number;\n\t\tjsonDepth: number;\n\t\tmaxBlobBytes: number;\n\t};\n\tportableDomain: {\n\t\tempty: boolean;\n\t\tblockers: Array<Record<string, string>>;\n\t\tseededScaffold: Array<Record<string, string>>;\n\t};\n}\n\n/** Result of one bounded `advance` step */\nexport interface TransferAdvanceResult {\n\toperation: TransferOperation;\n\t/** Milliseconds until the next step should be requested, or null once the operation has ended. */\n\tnextRequestInMs: number | null;\n}\n\n/** A package file the import has declared but not yet received */\nexport interface TransferPackageFile {\n\tpath: string;\n\tbytes: number;\n\tsha256: string;\n}\n\nexport interface TransferImportCreateResult {\n\toperation: TransferOperation;\n\tcreated: boolean;\n\tmissing: ListResult<TransferPackageFile>;\n}\n\nexport interface TransferFileUploadResult {\n\tpath: string;\n\tbytes: number;\n\t/** True when the file was already stored and the uploaded bytes matched it. */\n\talreadyVerified: boolean;\n\t/** Declared files still to upload. */\n\tremaining: number;\n}\n\nexport interface TransferImportAnalyzeResult {\n\toperation: TransferOperation;\n\tplan?: SiteImportPlan;\n\tplanDigest?: Sha256Digest;\n\t/** Milliseconds until the next step should be requested, or null once analysis has ended. */\n\tnextRequestInMs: number | null;\n}\n\nexport interface TransferImportStatus {\n\toperation: TransferOperation;\n\tfiles: { declared: number; verified: number };\n}\n\n/** A downloaded export file, streamed */\nexport interface TransferFileDownload {\n\tbody: ReadableStream<Uint8Array>;\n\t/** Size from `Content-Length`, when sent */\n\tbytes: number | null;\n\t/** Hex SHA-256 from the `ETag`, when sent */\n\tsha256: string | null;\n}\n\n// ---------------------------------------------------------------------------\n// Client errors\n// ---------------------------------------------------------------------------\n\nexport class EmDashApiError extends Error {\n\tconstructor(\n\t\tpublic readonly status: number,\n\t\tpublic readonly code: string,\n\t\tmessage: string,\n\t\tpublic readonly details?: Record<string, unknown>,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"EmDashApiError\";\n\t}\n}\n\nexport class EmDashClientError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"EmDashClientError\";\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// Client\n// ---------------------------------------------------------------------------\n\nexport class EmDashClient {\n\tprivate readonly baseUrl: string;\n\tprivate readonly transport: { fetch: (request: Request) => Promise<Response> };\n\n\t/** Cached field schemas per collection for PT conversion */\n\tprivate fieldSchemaCache = new Map<string, FieldSchema[]>();\n\n\tconstructor(options: EmDashClientOptions) {\n\t\tthis.baseUrl = options.baseUrl.replace(TRAILING_SLASH_PATTERN, \"\");\n\n\t\t// Build interceptor chain\n\t\tconst interceptors: Interceptor[] = [csrfInterceptor()];\n\n\t\tif (options.token) {\n\t\t\tinterceptors.push(tokenInterceptor(options.token));\n\t\t} else if (options.devBypass) {\n\t\t\tinterceptors.push(devBypassInterceptor(this.baseUrl));\n\t\t}\n\n\t\t// Auto-refresh expired OAuth tokens\n\t\tif (options.refreshToken) {\n\t\t\tinterceptors.push(\n\t\t\t\trefreshInterceptor({\n\t\t\t\t\trefreshToken: options.refreshToken,\n\t\t\t\t\ttokenEndpoint: `${this.baseUrl}/_emdash/api/oauth/token/refresh`,\n\t\t\t\t\tonTokenRefreshed: options.onTokenRefresh\n\t\t\t\t\t\t? (accessToken, _refreshToken, expiresAt) => {\n\t\t\t\t\t\t\t\tconst expiresIn = Math.floor((new Date(expiresAt).getTime() - Date.now()) / 1000);\n\t\t\t\t\t\t\t\toptions.onTokenRefresh!(accessToken, expiresIn);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tif (options.interceptors) {\n\t\t\tinterceptors.push(...options.interceptors);\n\t\t}\n\n\t\tthis.transport = createTransport({ interceptors });\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Schema\n\t// -----------------------------------------------------------------------\n\n\t/** List all collections */\n\tasync collections(): Promise<Collection[]> {\n\t\tconst data = await this.request<{ items: Collection[] }>(\"GET\", \"/schema/collections\");\n\t\treturn data.items;\n\t}\n\n\t/** Get a single collection with its fields */\n\tasync collection(slug: string): Promise<CollectionWithFields> {\n\t\tconst data = await this.request<{ item: CollectionWithFields }>(\n\t\t\t\"GET\",\n\t\t\t`/schema/collections/${encodeURIComponent(slug)}?includeFields=true`,\n\t\t);\n\t\tconst col = data.item;\n\t\t// Cache field schemas for PT conversion\n\t\tif (col.fields) {\n\t\t\tthis.fieldSchemaCache.set(\n\t\t\t\tslug,\n\t\t\t\tcol.fields.map((f) => ({ slug: f.slug, type: f.type, blockTypes: f.blockTypes })),\n\t\t\t);\n\t\t}\n\t\treturn col;\n\t}\n\n\tasync blockTypes(): Promise<BlockType[]> {\n\t\tconst data = await this.request<{ items: BlockType[] }>(\"GET\", \"/schema/block-types\");\n\t\treturn data.items;\n\t}\n\n\tasync blockType(slug: string): Promise<BlockType> {\n\t\tconst data = await this.request<{ item: BlockType }>(\n\t\t\t\"GET\",\n\t\t\t`/schema/block-types/${encodeURIComponent(slug)}`,\n\t\t);\n\t\treturn data.item;\n\t}\n\n\tasync createBlockType(input: CreateBlockTypeInput): Promise<BlockType> {\n\t\tconst data = await this.request<{ item: BlockType }>(\"POST\", \"/schema/block-types\", input);\n\t\treturn data.item;\n\t}\n\n\tasync updateBlockType(slug: string, input: UpdateBlockTypeInput): Promise<BlockType> {\n\t\tconst data = await this.request<{ item: BlockType }>(\n\t\t\t\"PUT\",\n\t\t\t`/schema/block-types/${encodeURIComponent(slug)}`,\n\t\t\tinput,\n\t\t);\n\t\treturn data.item;\n\t}\n\n\tasync activateBlockTypeVersion(\n\t\tslug: string,\n\t\tversion: number,\n\t\texpectedFingerprint: string,\n\t): Promise<BlockType> {\n\t\tconst data = await this.request<{ item: BlockType }>(\n\t\t\t\"POST\",\n\t\t\t`/schema/block-types/${encodeURIComponent(slug)}/versions/${version}/activate`,\n\t\t\t{ expectedFingerprint },\n\t\t);\n\t\treturn data.item;\n\t}\n\n\t/** Create a collection */\n\tasync createCollection(input: {\n\t\tslug: string;\n\t\tlabel: string;\n\t\tlabelSingular?: string;\n\t\tdescription?: string;\n\t\ticon?: string;\n\t\tsupports?: string[];\n\t}): Promise<Collection> {\n\t\tconst data = await this.request<{ item: Collection }>(\"POST\", \"/schema/collections\", input);\n\t\treturn data.item;\n\t}\n\n\t/** Delete a collection */\n\tasync deleteCollection(slug: string): Promise<void> {\n\t\tawait this.request<unknown>(\"DELETE\", `/schema/collections/${encodeURIComponent(slug)}`);\n\t}\n\n\t/** Create a field on a collection */\n\tasync createField(\n\t\tcollection: string,\n\t\tinput: {\n\t\t\tslug: string;\n\t\t\ttype: string;\n\t\t\tlabel: string;\n\t\t\trequired?: boolean;\n\t\t\tunique?: boolean;\n\t\t\tdefaultValue?: unknown;\n\t\t\tvalidation?: unknown;\n\t\t\twidget?: string;\n\t\t\toptions?: unknown;\n\t\t\tsortOrder?: number;\n\t\t},\n\t): Promise<Field> {\n\t\tconst data = await this.request<{ item: Field }>(\n\t\t\t\"POST\",\n\t\t\t`/schema/collections/${encodeURIComponent(collection)}/fields`,\n\t\t\tinput,\n\t\t);\n\t\t// Invalidate field cache\n\t\tthis.fieldSchemaCache.delete(collection);\n\t\treturn data.item;\n\t}\n\n\t/** Delete a field from a collection */\n\tasync deleteField(collection: string, fieldSlug: string): Promise<void> {\n\t\tawait this.request<unknown>(\n\t\t\t\"DELETE\",\n\t\t\t`/schema/collections/${encodeURIComponent(collection)}/fields/${encodeURIComponent(fieldSlug)}`,\n\t\t);\n\t\tthis.fieldSchemaCache.delete(collection);\n\t}\n\n\t/** Get full manifest (schema + field descriptors + features) */\n\tasync manifest(): Promise<Manifest> {\n\t\treturn this.request<Manifest>(\"GET\", \"/manifest\");\n\t}\n\n\t/** Export full schema as JSON (used by `emdash types`) */\n\tasync schemaExport(): Promise<SchemaExport> {\n\t\treturn this.request<SchemaExport>(\"GET\", \"/schema\");\n\t}\n\n\t/** Export schema as TypeScript type definitions (used by `emdash types`) */\n\tasync schemaTypes(): Promise<string> {\n\t\tconst response = await this.requestRaw(\"GET\", \"/schema?format=typescript\");\n\t\tawait this.assertOk(response);\n\t\treturn response.text();\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Content\n\t// -----------------------------------------------------------------------\n\n\t/** List content in a collection */\n\tasync list(\n\t\tcollection: string,\n\t\toptions?: {\n\t\t\tstatus?: string;\n\t\t\tlimit?: number;\n\t\t\tcursor?: string;\n\t\t\torderBy?: string;\n\t\t\torder?: \"asc\" | \"desc\";\n\t\t\tlocale?: string;\n\t\t\t/** AND-combined filters over custom fields explicitly marked as indexed. */\n\t\t\tfieldFilters?: ContentFieldFilters;\n\t\t},\n\t): Promise<ListResult<ContentItem>> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.status) params.set(\"status\", options.status);\n\t\tif (options?.limit) params.set(\"limit\", String(options.limit));\n\t\tif (options?.cursor) params.set(\"cursor\", options.cursor);\n\t\tif (options?.orderBy) params.set(\"orderBy\", options.orderBy);\n\t\tif (options?.order) params.set(\"order\", options.order);\n\t\tif (options?.locale) params.set(\"locale\", options.locale);\n\t\tif (options?.fieldFilters && Object.keys(options.fieldFilters).length > 0) {\n\t\t\tparams.set(\"fieldFilters\", JSON.stringify(options.fieldFilters));\n\t\t}\n\n\t\tconst qs = params.toString();\n\t\tconst path = `/content/${encodeURIComponent(collection)}${qs ? `?${qs}` : \"\"}`;\n\t\treturn this.request<ListResult<ContentItem>>(\"GET\", path);\n\t}\n\n\t/** Async iterator that auto-follows cursors */\n\tasync *listAll(\n\t\tcollection: string,\n\t\toptions?: {\n\t\t\tstatus?: string;\n\t\t\tlimit?: number;\n\t\t\torderBy?: string;\n\t\t\torder?: \"asc\" | \"desc\";\n\t\t\tlocale?: string;\n\t\t\t/** AND-combined filters over custom fields explicitly marked as indexed. */\n\t\t\tfieldFilters?: ContentFieldFilters;\n\t\t},\n\t): AsyncGenerator<ContentItem> {\n\t\tlet cursor: string | undefined;\n\t\tdo {\n\t\t\tconst result = await this.list(collection, { ...options, cursor });\n\t\t\tfor (const item of result.items) {\n\t\t\t\tyield item;\n\t\t\t}\n\t\t\tcursor = result.nextCursor;\n\t\t} while (cursor);\n\t}\n\n\t/**\n\t * Get a single content item. Returns the item with a `_rev` token\n\t * that can be passed to update() for optimistic concurrency.\n\t */\n\tasync get(\n\t\tcollection: string,\n\t\tid: string,\n\t\toptions?: { raw?: boolean; locale?: string },\n\t): Promise<ContentItem> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.locale) params.set(\"locale\", options.locale);\n\t\tconst qs = params.size > 0 ? `?${params}` : \"\";\n\t\tconst result = await this.requestRaw(\n\t\t\t\"GET\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}${qs}`,\n\t\t);\n\t\tif (!result.ok) {\n\t\t\tawait this.assertOk(result);\n\t\t}\n\n\t\tconst raw = (await result.json()) as { data: { item: ContentItem; _rev?: string } };\n\t\tconst json = raw.data;\n\t\tconst item = json.item;\n\n\t\t// Attach _rev to the item so callers can pass it back on update\n\t\tif (json._rev) {\n\t\t\titem._rev = json._rev;\n\t\t}\n\n\t\t// Convert PT fields to markdown unless raw is requested\n\t\tif (!options?.raw && item.data) {\n\t\t\tconst fields = await this.getFieldSchemas(collection);\n\t\t\titem.data = convertDataForRead(item.data, fields, false);\n\t\t}\n\n\t\treturn item;\n\t}\n\n\t/** Create a new content item */\n\tasync create(\n\t\tcollection: string,\n\t\tinput: {\n\t\t\tdata: Record<string, unknown>;\n\t\t\tslug?: string;\n\t\t\tstatus?: string;\n\t\t\tlocale?: string;\n\t\t\ttranslationOf?: string;\n\t\t\tmigrateBlocks?: boolean;\n\t\t\treplaceBlocks?: boolean;\n\t\t},\n\t): Promise<ContentItem> {\n\t\t// Convert markdown strings to PT for portableText fields\n\t\tconst fields = await this.getFieldSchemas(collection);\n\t\tconst data = convertDataForWrite(input.data, fields);\n\n\t\tconst result = await this.request<{ item: ContentItem }>(\n\t\t\t\"POST\",\n\t\t\t`/content/${encodeURIComponent(collection)}`,\n\t\t\t{ ...input, data },\n\t\t);\n\t\treturn result.item;\n\t}\n\n\t/**\n\t * Update a content item. Pass `_rev` from a prior get() for optimistic\n\t * concurrency — the server returns 409 if the item has changed.\n\t * Omit `_rev` for a blind write (no conflict detection).\n\t */\n\tasync update(\n\t\tcollection: string,\n\t\tid: string,\n\t\tinput: {\n\t\t\tdata?: Record<string, unknown>;\n\t\t\tslug?: string;\n\t\t\tstatus?: string;\n\t\t\t_rev?: string;\n\t\t\tlocale?: string;\n\t\t\tmigrateBlocks?: boolean;\n\t\t\treplaceBlocks?: boolean;\n\t\t\t/** Write even though another editor holds this entry's edit lock. */\n\t\t\toverrideLock?: boolean;\n\t\t},\n\t): Promise<ContentItem> {\n\t\t// Convert markdown strings to PT\n\t\tlet data = input.data;\n\t\tif (data) {\n\t\t\tconst fields = await this.getFieldSchemas(collection);\n\t\t\tdata = convertDataForWrite(data, fields);\n\t\t}\n\n\t\tconst body = {\n\t\t\tdata,\n\t\t\tslug: input.slug,\n\t\t\tstatus: input.status,\n\t\t\tmigrateBlocks: input.migrateBlocks,\n\t\t\treplaceBlocks: input.replaceBlocks,\n\t\t\t...(input._rev ? { _rev: input._rev } : {}),\n\t\t\t...(input.overrideLock ? { overrideLock: true } : {}),\n\t\t};\n\t\tconst params = new URLSearchParams();\n\t\tif (input.locale) params.set(\"locale\", input.locale);\n\t\tconst result = await this.request<{ item: ContentItem; _rev?: string }>(\n\t\t\t\"PUT\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}${params.toString() ? `?${params}` : \"\"}`,\n\t\t\tbody,\n\t\t);\n\n\t\tconst item = result.item;\n\t\tif (result._rev) {\n\t\t\titem._rev = result._rev;\n\t\t}\n\t\treturn item;\n\t}\n\n\t/** Delete (soft) a content item */\n\tasync delete(\n\t\tcollection: string,\n\t\tid: string,\n\t\toptions: { overrideLock?: boolean } = {},\n\t): Promise<void> {\n\t\tconst query = options.overrideLock ? \"?overrideLock=true\" : \"\";\n\t\tawait this.request<unknown>(\n\t\t\t\"DELETE\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}${query}`,\n\t\t);\n\t}\n\n\t/** Publish a content item */\n\tasync publish(\n\t\tcollection: string,\n\t\tid: string,\n\t\toptions: { overrideLock?: boolean } = {},\n\t): Promise<void> {\n\t\tawait this.request<unknown>(\n\t\t\t\"POST\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/publish`,\n\t\t\toptions.overrideLock ? { overrideLock: true } : undefined,\n\t\t);\n\t}\n\n\t/** Unpublish a content item */\n\tasync unpublish(\n\t\tcollection: string,\n\t\tid: string,\n\t\toptions: { overrideLock?: boolean } = {},\n\t): Promise<void> {\n\t\tawait this.request<unknown>(\n\t\t\t\"POST\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/unpublish`,\n\t\t\toptions.overrideLock ? { overrideLock: true } : undefined,\n\t\t);\n\t}\n\n\t/** Schedule publishing */\n\tasync schedule(\n\t\tcollection: string,\n\t\tid: string,\n\t\toptions: { at: string; overrideLock?: boolean },\n\t): Promise<void> {\n\t\tawait this.request<unknown>(\n\t\t\t\"POST\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/schedule`,\n\t\t\t{ scheduledAt: options.at, ...(options.overrideLock ? { overrideLock: true } : {}) },\n\t\t);\n\t}\n\n\t/** Restore a trashed content item */\n\tasync restore(collection: string, id: string): Promise<void> {\n\t\tawait this.request<unknown>(\n\t\t\t\"POST\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/restore`,\n\t\t);\n\t}\n\n\t/** Compare live and draft revisions */\n\tasync compare(\n\t\tcollection: string,\n\t\tid: string,\n\t): Promise<{\n\t\thasChanges: boolean;\n\t\tlive: Record<string, unknown> | null;\n\t\tdraft: Record<string, unknown> | null;\n\t}> {\n\t\treturn this.request<{\n\t\t\thasChanges: boolean;\n\t\t\tlive: Record<string, unknown> | null;\n\t\t\tdraft: Record<string, unknown> | null;\n\t\t}>(\"GET\", `/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/compare`);\n\t}\n\n\t/** Discard draft revision, reverting to the published version */\n\tasync discardDraft(\n\t\tcollection: string,\n\t\tid: string,\n\t\toptions: { overrideLock?: boolean } = {},\n\t): Promise<void> {\n\t\tawait this.request<unknown>(\n\t\t\t\"POST\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/discard-draft`,\n\t\t\toptions.overrideLock ? { overrideLock: true } : undefined,\n\t\t);\n\t}\n\n\t/**\n\t * Get all translations of a content item.\n\t * Returns the translation group ID and a summary of each locale version.\n\t */\n\tasync translations(\n\t\tcollection: string,\n\t\tid: string,\n\t): Promise<{\n\t\ttranslationGroup: string;\n\t\ttranslations: Array<{\n\t\t\tid: string;\n\t\t\tlocale: string | null;\n\t\t\tslug: string | null;\n\t\t\tstatus: string;\n\t\t\tupdatedAt: string;\n\t\t}>;\n\t}> {\n\t\treturn this.request(\n\t\t\t\"GET\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/translations`,\n\t\t);\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Media\n\t// -----------------------------------------------------------------------\n\n\t/** List media items */\n\tasync mediaList(options?: {\n\t\tmimeType?: string;\n\t\tlimit?: number;\n\t\tcursor?: string;\n\t\tpage?: number;\n\t\tincludeUsage?: boolean;\n\t\tfolderId?: string | null;\n\t}): Promise<ListResult<MediaItem> & { totalCount?: number }> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.mimeType) params.set(\"mimeType\", options.mimeType);\n\t\tif (options?.limit) params.set(\"limit\", String(options.limit));\n\t\tif (options?.cursor) params.set(\"cursor\", options.cursor);\n\t\tif (options?.page !== undefined) params.set(\"page\", String(options.page));\n\t\tif (options?.includeUsage === true) params.set(\"includeUsage\", \"1\");\n\t\tif (options?.folderId === null) {\n\t\t\tparams.set(\"folderId\", \"unfiled\");\n\t\t} else if (options?.folderId !== undefined) {\n\t\t\tparams.set(\"folderId\", options.folderId);\n\t\t}\n\n\t\tconst qs = params.toString();\n\t\treturn this.request<ListResult<MediaItem> & { totalCount?: number }>(\n\t\t\t\"GET\",\n\t\t\t`/media${qs ? `?${qs}` : \"\"}`,\n\t\t);\n\t}\n\n\t/** Get a single media item */\n\tasync mediaGet(id: string, options?: { includeUsage?: boolean }): Promise<MediaItem> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.includeUsage === true) params.set(\"includeUsage\", \"1\");\n\n\t\tconst qs = params.toString();\n\t\tconst data = await this.request<{ item: MediaItem }>(\n\t\t\t\"GET\",\n\t\t\t`/media/${encodeURIComponent(id)}${qs ? `?${qs}` : \"\"}`,\n\t\t);\n\t\treturn data.item;\n\t}\n\n\t/** List media folders */\n\tasync mediaFolderList(\n\t\toptions: { limit?: number; cursor?: string; q?: string } = {},\n\t): Promise<ListResult<MediaFolder>> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options.limit !== undefined) params.set(\"limit\", String(options.limit));\n\t\tif (options.cursor !== undefined) params.set(\"cursor\", options.cursor);\n\t\tif (options.q !== undefined) params.set(\"q\", options.q);\n\t\tconst qs = params.toString();\n\t\treturn this.request<ListResult<MediaFolder>>(\"GET\", `/media/folders${qs ? `?${qs}` : \"\"}`);\n\t}\n\n\t/** Get one media folder */\n\tasync mediaFolderGet(id: string): Promise<MediaFolder> {\n\t\tconst data = await this.request<{ item: MediaFolder }>(\n\t\t\t\"GET\",\n\t\t\t`/media/folders/${encodeURIComponent(id)}`,\n\t\t);\n\t\treturn data.item;\n\t}\n\n\t/** Create a media folder */\n\tasync mediaFolderCreate(name: string): Promise<MediaFolder> {\n\t\tconst data = await this.request<{ item: MediaFolder }>(\"POST\", \"/media/folders\", { name });\n\t\treturn data.item;\n\t}\n\n\t/** Rename a media folder */\n\tasync mediaFolderUpdate(id: string, name: string): Promise<MediaFolder> {\n\t\tconst data = await this.request<{ item: MediaFolder }>(\n\t\t\t\"PUT\",\n\t\t\t`/media/folders/${encodeURIComponent(id)}`,\n\t\t\t{ name },\n\t\t);\n\t\treturn data.item;\n\t}\n\n\t/** Delete a media folder */\n\tasync mediaFolderDelete(id: string): Promise<void> {\n\t\tawait this.request<unknown>(\"DELETE\", `/media/folders/${encodeURIComponent(id)}`);\n\t}\n\n\t/** Assign media to a folder, or return it to the Main library */\n\tasync mediaSetFolder(id: string, folderId: string | null): Promise<MediaFolderAssignment> {\n\t\tconst data = await this.request<{ item: MediaFolderAssignment }>(\n\t\t\t\"PUT\",\n\t\t\t`/media/${encodeURIComponent(id)}`,\n\t\t\t{ folderId },\n\t\t);\n\t\treturn { id: data.item.id, folderId: data.item.folderId };\n\t}\n\n\t/** Get entry-grouped usage details for a media item */\n\tasync mediaGetUsage(\n\t\tid: string,\n\t\toptions?: { limit?: number; cursor?: string },\n\t): Promise<MediaUsageDetailsResponse> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.limit !== undefined) params.set(\"limit\", String(options.limit));\n\t\tif (options?.cursor !== undefined) params.set(\"cursor\", options.cursor);\n\n\t\tconst qs = params.toString();\n\t\treturn this.request<MediaUsageDetailsResponse>(\n\t\t\t\"GET\",\n\t\t\t`/media/${encodeURIComponent(id)}/usage${qs ? `?${qs}` : \"\"}`,\n\t\t);\n\t}\n\n\t/** Upload a media file */\n\tasync mediaUpload(\n\t\tfile: Uint8Array | Blob,\n\t\tfilename: string,\n\t\toptions?: { alt?: string; caption?: string; contentType?: string },\n\t): Promise<MediaItem> {\n\t\tconst formData = new FormData();\n\n\t\t// Handle different file types\n\t\tif (file instanceof Blob) {\n\t\t\tformData.append(\"file\", file, filename);\n\t\t} else {\n\t\t\tconst mimeType = options?.contentType ?? mimeFromFilename(filename);\n\t\t\tformData.append(\"file\", new Blob([file as BlobPart], { type: mimeType }), filename);\n\t\t}\n\n\t\tif (options?.alt) formData.append(\"alt\", options.alt);\n\t\tif (options?.caption) formData.append(\"caption\", options.caption);\n\n\t\tconst url = `${this.baseUrl}/_emdash/api/media`;\n\t\tconst request = new Request(url, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: formData,\n\t\t});\n\n\t\tconst response = await this.transport.fetch(request);\n\t\tawait this.assertOk(response);\n\n\t\tconst raw = (await response.json()) as { data: { item: MediaItem } };\n\t\treturn raw.data.item;\n\t}\n\n\t/** Delete a media item */\n\tasync mediaDelete(id: string): Promise<void> {\n\t\tawait this.request<unknown>(\"DELETE\", `/media/${encodeURIComponent(id)}`);\n\t}\n\n\t/** Repair content media usage indexes for one collection or all collections */\n\tasync mediaRepairUsage(input: MediaUsageRepairInput): Promise<MediaUsageRepairResponse> {\n\t\treturn this.request<MediaUsageRepairResponse>(\"POST\", \"/admin/media-usage/repair\", input);\n\t}\n\n\t/** Read aggregate Media Usage indexing progress */\n\tasync mediaGetUsageProgress(): Promise<MediaUsageProgress> {\n\t\treturn this.request<MediaUsageProgress>(\"GET\", \"/admin/media-usage/progress\");\n\t}\n\n\t/** Advance exactly one Media Usage maintenance step */\n\tasync mediaAdvanceUsageProgress(): Promise<MediaUsageProgressAdvanceResponse> {\n\t\treturn this.request<MediaUsageProgressAdvanceResponse>(\"POST\", \"/admin/media-usage/progress\");\n\t}\n\n\t/** Read the redacted controlled-activation status */\n\tasync mediaGetUsageActivation(): Promise<MediaUsageActivationStatus> {\n\t\treturn this.request<MediaUsageActivationStatus>(\"GET\", \"/admin/media-usage/activation\");\n\t}\n\n\t/** Advance exactly one controlled-activation batch */\n\tasync mediaAdvanceUsageActivation(\n\t\tinput: MediaUsageActivationAdvanceInput,\n\t): Promise<MediaUsageActivationAdvanceResponse> {\n\t\treturn this.request<MediaUsageActivationAdvanceResponse>(\n\t\t\t\"POST\",\n\t\t\t\"/admin/media-usage/activation\",\n\t\t\tinput,\n\t\t);\n\t}\n\n\t/** List a bounded page of durable media usage entry work */\n\tasync mediaListUsageWork(\n\t\toptions: MediaUsageWorkListOptions,\n\t): Promise<MediaUsageWorkListResponse> {\n\t\tconst params = new URLSearchParams({ collection: options.collection });\n\t\tif (options.state) params.set(\"state\", options.state);\n\t\tif (options.limit !== undefined) params.set(\"limit\", String(options.limit));\n\t\tif (options.cursor) params.set(\"cursor\", options.cursor);\n\t\treturn this.request<MediaUsageWorkListResponse>(\"GET\", `/admin/media-usage/work?${params}`);\n\t}\n\n\t/** Explicitly retry one durable media usage entry job */\n\tasync mediaRetryUsageWork(input: MediaUsageWorkRetryInput): Promise<MediaUsageWorkRetryResponse> {\n\t\treturn this.request<MediaUsageWorkRetryResponse>(\n\t\t\t\"POST\",\n\t\t\t\"/admin/media-usage/work/retry\",\n\t\t\tinput,\n\t\t);\n\t}\n\n\tasync mediaListCollectionDeletions(\n\t\toptions: {\n\t\t\tstate?: MediaUsageCollectionDeletionState;\n\t\t\tlimit?: number;\n\t\t\tcursor?: string;\n\t\t} = {},\n\t): Promise<MediaUsageCollectionDeletionListResponse> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options.state) params.set(\"state\", options.state);\n\t\tif (options.limit !== undefined) params.set(\"limit\", String(options.limit));\n\t\tif (options.cursor) params.set(\"cursor\", options.cursor);\n\t\treturn this.request(\"GET\", `/admin/media-usage/collection-deletions?${params}`);\n\t}\n\n\tasync mediaRetryCollectionDeletion(collectionId: string): Promise<{\n\t\tchanged: boolean;\n\t\titem: MediaUsageCollectionDeletionItem;\n\t}> {\n\t\treturn this.request(\"POST\", \"/admin/media-usage/collection-deletions/retry\", {\n\t\t\tcollectionId,\n\t\t});\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Search\n\t// -----------------------------------------------------------------------\n\n\t/** Full-text search */\n\tasync search(\n\t\tquery: string,\n\t\toptions?: { collection?: string; locale?: string; limit?: number },\n\t): Promise<SearchResult[]> {\n\t\tconst params = new URLSearchParams({ q: query });\n\t\tif (options?.collection) params.set(\"collections\", options.collection);\n\t\tif (options?.locale) params.set(\"locale\", options.locale);\n\t\tif (options?.limit) params.set(\"limit\", String(options.limit));\n\n\t\tconst data = await this.request<{ items: SearchResult[] }>(\"GET\", `/search?${params}`);\n\t\treturn data.items;\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Taxonomies\n\t// -----------------------------------------------------------------------\n\n\t/** List taxonomies */\n\tasync taxonomies(): Promise<Taxonomy[]> {\n\t\tconst data = await this.request<{ taxonomies: Taxonomy[] }>(\"GET\", \"/taxonomies\");\n\t\treturn data.taxonomies;\n\t}\n\n\t/**\n\t * List terms in a taxonomy. Visible-usage counts are included by default.\n\t * Pass `includeCounts: false` to skip the aggregate; `count` is then omitted\n\t * from each term.\n\t */\n\tasync terms(\n\t\ttaxonomy: string,\n\t\toptions?: { limit?: number; cursor?: string; includeCounts?: boolean },\n\t): Promise<ListResult<Term>> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.limit) params.set(\"limit\", String(options.limit));\n\t\tif (options?.cursor) params.set(\"cursor\", options.cursor);\n\t\tif (options?.includeCounts !== undefined)\n\t\t\tparams.set(\"includeCounts\", String(options.includeCounts));\n\n\t\tconst qs = params.toString();\n\t\tconst data = await this.request<{ terms: Term[] }>(\n\t\t\t\"GET\",\n\t\t\t`/taxonomies/${encodeURIComponent(taxonomy)}/terms${qs ? `?${qs}` : \"\"}`,\n\t\t);\n\t\treturn { items: data.terms };\n\t}\n\n\t/** Create a taxonomy term */\n\tasync createTerm(\n\t\ttaxonomy: string,\n\t\tinput: { slug: string; label: string; parentId?: string; description?: string },\n\t): Promise<Term> {\n\t\treturn this.request<Term>(\"POST\", `/taxonomies/${encodeURIComponent(taxonomy)}/terms`, input);\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Menus\n\t// -----------------------------------------------------------------------\n\n\t/** List menus */\n\tasync menus(): Promise<Menu[]> {\n\t\t// Handler returns a bare array, not { items: [...] }\n\t\treturn this.request<Menu[]>(\"GET\", \"/menus\");\n\t}\n\n\t/** Get a menu with its items */\n\tasync menu(name: string): Promise<MenuWithItems> {\n\t\treturn this.request<MenuWithItems>(\"GET\", `/menus/${encodeURIComponent(name)}`);\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Users\n\t// -----------------------------------------------------------------------\n\n\t/** List users (admin only) */\n\tasync users(options?: {\n\t\tsearch?: string;\n\t\tlimit?: number;\n\t\tcursor?: string;\n\t}): Promise<ListResult<UserSummary>> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.search) params.set(\"search\", options.search);\n\t\tif (options?.limit) params.set(\"limit\", String(options.limit));\n\t\tif (options?.cursor) params.set(\"cursor\", options.cursor);\n\t\tconst qs = params.toString();\n\t\treturn this.request<ListResult<UserSummary>>(\"GET\", `/admin/users${qs ? `?${qs}` : \"\"}`);\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Site transfer\n\t// -----------------------------------------------------------------------\n\n\t/** Formats, features, limits, and whether this site can receive an import */\n\tasync transferCapabilities(): Promise<TransferCapabilities> {\n\t\treturn this.request<TransferCapabilities>(\"GET\", \"/admin/transfer/capabilities\");\n\t}\n\n\t/**\n\t * Start a site export. With an idempotency key, repeating the call returns\n\t * the export first created with that key.\n\t */\n\tasync transferExportCreate(\n\t\toptions: { comments?: boolean } = {},\n\t\trequest: { idempotencyKey?: string } = {},\n\t): Promise<{ operation: TransferOperation; created: boolean }> {\n\t\treturn this.request(\"POST\", \"/admin/transfer/exports\", options, idempotencyHeader(request));\n\t}\n\n\t/** List exports, newest first */\n\tasync transferExportList(options?: {\n\t\tlimit?: number;\n\t\tcursor?: string;\n\t}): Promise<ListResult<TransferOperation>> {\n\t\treturn this.request(\"GET\", `/admin/transfer/exports${pageQuery(options)}`);\n\t}\n\n\tasync transferExportGet(id: string): Promise<{ operation: TransferOperation }> {\n\t\treturn this.request(\"GET\", `/admin/transfer/exports/${encodeURIComponent(id)}`);\n\t}\n\n\t/** Run one bounded export step */\n\tasync transferExportAdvance(id: string): Promise<TransferAdvanceResult> {\n\t\treturn this.request(\"POST\", `/admin/transfer/exports/${encodeURIComponent(id)}/advance`);\n\t}\n\n\t/** The complete export's `manifest.json`, byte for byte */\n\tasync transferExportManifest(id: string): Promise<Uint8Array> {\n\t\tconst response = await this.requestRaw(\n\t\t\t\"GET\",\n\t\t\t`/admin/transfer/exports/${encodeURIComponent(id)}/manifest`,\n\t\t);\n\t\tawait this.assertOk(response);\n\t\treturn new Uint8Array(await response.arrayBuffer());\n\t}\n\n\t/**\n\t * Stream one file of a complete export. The server ends the stream with an\n\t * error if the stored bytes no longer match the export, so callers must\n\t * still check the size and digest of what they receive.\n\t */\n\tasync transferExportFile(id: string, path: string): Promise<TransferFileDownload> {\n\t\tconst response = await this.requestRaw(\n\t\t\t\"GET\",\n\t\t\t`/admin/transfer/exports/${encodeURIComponent(id)}/files/${encodePackagePath(path)}`,\n\t\t);\n\t\tawait this.assertOk(response);\n\t\tif (!response.body) throw new EmDashClientError(`Empty response for ${path}`);\n\t\tconst length = response.headers.get(\"Content-Length\");\n\t\tconst etag = response.headers.get(\"ETag\");\n\t\treturn {\n\t\t\tbody: response.body,\n\t\t\tbytes: length !== null && DECIMAL_PATTERN.test(length) ? Number(length) : null,\n\t\t\tsha256: etag ? (SHA256_ETAG_PATTERN.exec(etag)?.[1] ?? null) : null,\n\t\t};\n\t}\n\n\t/**\n\t * Create an import from a package's `manifest.json` bytes. With an\n\t * idempotency key, repeating the call with the same manifest returns the\n\t * import first created with that key.\n\t */\n\tasync transferImportCreate(\n\t\tmanifest: Uint8Array,\n\t\trequest: { idempotencyKey?: string } = {},\n\t): Promise<TransferImportCreateResult> {\n\t\tconst response = await this.send(\"POST\", \"/admin/transfer/imports\", {\n\t\t\tbody: manifest,\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...idempotencyHeader(request) },\n\t\t});\n\t\tawait this.assertOk(response);\n\t\tconst json = (await response.json()) as { data: TransferImportCreateResult };\n\t\treturn json.data;\n\t}\n\n\t/** List imports, newest first */\n\tasync transferImportList(options?: {\n\t\tlimit?: number;\n\t\tcursor?: string;\n\t}): Promise<ListResult<TransferOperation>> {\n\t\treturn this.request(\"GET\", `/admin/transfer/imports${pageQuery(options)}`);\n\t}\n\n\tasync transferImportGet(id: string): Promise<TransferImportStatus> {\n\t\treturn this.request(\"GET\", `/admin/transfer/imports/${encodeURIComponent(id)}`);\n\t}\n\n\t/** Declared package files not uploaded yet, in path order */\n\tasync transferImportMissing(\n\t\tid: string,\n\t\toptions?: { limit?: number; cursor?: string },\n\t): Promise<ListResult<TransferPackageFile>> {\n\t\treturn this.request(\n\t\t\t\"GET\",\n\t\t\t`/admin/transfer/imports/${encodeURIComponent(id)}/missing${pageQuery(options)}`,\n\t\t);\n\t}\n\n\t/**\n\t * Upload one declared package file. `bytes` must be the file's exact size;\n\t * a stream body is sent with that `Content-Length`.\n\t */\n\tasync transferImportUploadFile(\n\t\tid: string,\n\t\tpath: string,\n\t\tbody: Uint8Array | ReadableStream<Uint8Array>,\n\t\tbytes: number,\n\t): Promise<TransferFileUploadResult> {\n\t\tconst response = await this.send(\n\t\t\t\"PUT\",\n\t\t\t`/admin/transfer/imports/${encodeURIComponent(id)}/files/${encodePackagePath(path)}`,\n\t\t\t{\n\t\t\t\tbody,\n\t\t\t\theaders: {\n\t\t\t\t\t\"Content-Type\": \"application/octet-stream\",\n\t\t\t\t\t\"Content-Length\": String(bytes),\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\tawait this.assertOk(response);\n\t\tconst json = (await response.json()) as { data: TransferFileUploadResult };\n\t\treturn json.data;\n\t}\n\n\t/**\n\t * Run one bounded analysis step. Once the import is planned the result\n\t * carries the plan; `decisions` are then applied, producing a new plan\n\t * digest.\n\t */\n\tasync transferImportAnalyze(\n\t\tid: string,\n\t\tdecisions?: SiteImportDecisionsInput,\n\t): Promise<TransferImportAnalyzeResult> {\n\t\treturn this.request(\n\t\t\t\"POST\",\n\t\t\t`/admin/transfer/imports/${encodeURIComponent(id)}/analyze`,\n\t\t\tdecisions === undefined ? undefined : { decisions },\n\t\t);\n\t}\n\n\tasync transferImportPlan(\n\t\tid: string,\n\t): Promise<{ plan: SiteImportPlan; planDigest: Sha256Digest }> {\n\t\treturn this.request(\"GET\", `/admin/transfer/imports/${encodeURIComponent(id)}/plan`);\n\t}\n\n\t/** Start a planned import. Both digests must match the reviewed package and plan. */\n\tasync transferImportExecute(\n\t\tid: string,\n\t\tinput: { packageDigest: string; planDigest: string },\n\t): Promise<{ operation: TransferOperation }> {\n\t\treturn this.request(\"POST\", `/admin/transfer/imports/${encodeURIComponent(id)}/execute`, {\n\t\t\tpackageDigest: input.packageDigest,\n\t\t\tplanDigest: input.planDigest,\n\t\t});\n\t}\n\n\t/** Run one bounded step of an executing import */\n\tasync transferImportAdvance(id: string): Promise<TransferAdvanceResult> {\n\t\treturn this.request(\"POST\", `/admin/transfer/imports/${encodeURIComponent(id)}/advance`);\n\t}\n\n\tasync transferImportReceipt(id: string): Promise<{ receipt: SiteImportReceipt }> {\n\t\treturn this.request(\"GET\", `/admin/transfer/imports/${encodeURIComponent(id)}/receipt`);\n\t}\n\n\t/**\n\t * Cancel an import. An idle import is cancelled at once; a step in\n\t * progress stops after its current batch, so the returned operation may\n\t * still be executing with `cancelRequestedAt` set.\n\t */\n\tasync transferImportCancel(id: string): Promise<{ operation: TransferOperation }> {\n\t\treturn this.request(\"POST\", `/admin/transfer/imports/${encodeURIComponent(id)}/cancel`);\n\t}\n\n\t/**\n\t * Abandon a failed or cancelled import, lifting the site write fence it\n\t * holds. Data the import already wrote stays in place.\n\t */\n\tasync transferImportAbandon(id: string): Promise<{ operation: TransferOperation }> {\n\t\treturn this.request(\"POST\", `/admin/transfer/imports/${encodeURIComponent(id)}/abandon`);\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Internal helpers\n\t// -----------------------------------------------------------------------\n\n\t/** Make a typed JSON request to the API */\n\tprivate async request<T>(\n\t\tmethod: string,\n\t\tpath: string,\n\t\tbody?: unknown,\n\t\textraHeaders?: Record<string, string>,\n\t): Promise<T> {\n\t\tconst response = await this.requestRaw(method, path, body, extraHeaders);\n\t\tawait this.assertOk(response);\n\t\tconst json = (await response.json()) as { data: T };\n\t\treturn json.data;\n\t}\n\n\t/** Make a raw request — caller handles response */\n\tprivate async requestRaw(\n\t\tmethod: string,\n\t\tpath: string,\n\t\tbody?: unknown,\n\t\textraHeaders?: Record<string, string>,\n\t): Promise<Response> {\n\t\tconst headers: Record<string, string> = { ...extraHeaders };\n\n\t\tlet requestBody: string | undefined;\n\t\tif (body !== undefined) {\n\t\t\theaders[\"Content-Type\"] = \"application/json\";\n\t\t\trequestBody = JSON.stringify(body);\n\t\t}\n\n\t\treturn this.send(method, path, { body: requestBody, headers });\n\t}\n\n\t/** Send a request with an arbitrary body; the caller handles the response */\n\tprivate async send(\n\t\tmethod: string,\n\t\tpath: string,\n\t\tinit: {\n\t\t\tbody?: string | Uint8Array | ReadableStream<Uint8Array>;\n\t\t\theaders?: Record<string, string>;\n\t\t},\n\t): Promise<Response> {\n\t\tconst url = `${this.baseUrl}/_emdash/api${path}`;\n\t\tconst request = new Request(url, {\n\t\t\tmethod,\n\t\t\theaders: { Accept: \"application/json\", ...init.headers },\n\t\t\tbody: init.body as BodyInit | undefined,\n\t\t\t...(init.body instanceof ReadableStream ? { duplex: \"half\" } : {}),\n\t\t});\n\n\t\treturn this.transport.fetch(request);\n\t}\n\n\t/** Assert a response is OK, throw typed error if not */\n\tprivate async assertOk(response: Response): Promise<void> {\n\t\tif (response.ok) return;\n\n\t\tlet code = \"UNKNOWN_ERROR\";\n\t\tlet message = `HTTP ${response.status}`;\n\t\tlet details: Record<string, unknown> | undefined;\n\n\t\ttry {\n\t\t\tconst json = (await response.json()) as {\n\t\t\t\terror?: { code?: string; message?: string; details?: Record<string, unknown> };\n\t\t\t};\n\t\t\tif (json.error) {\n\t\t\t\tcode = json.error.code ?? code;\n\t\t\t\tmessage = json.error.message ?? message;\n\t\t\t\tdetails = json.error.details;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Response body isn't JSON — use status text\n\t\t\tmessage = response.statusText || message;\n\t\t}\n\n\t\tthrow new EmDashApiError(response.status, code, message, details);\n\t}\n\n\t/** Get cached field schemas for a collection, fetching if needed */\n\tprivate async getFieldSchemas(collection: string): Promise<FieldSchema[]> {\n\t\tlet cached = this.fieldSchemaCache.get(collection);\n\t\tif (cached) return cached;\n\n\t\ttry {\n\t\t\tconst col = await this.collection(collection);\n\t\t\tcached = col.fields.map((f) => ({ slug: f.slug, type: f.type, blockTypes: f.blockTypes }));\n\t\t\tthis.fieldSchemaCache.set(collection, cached);\n\t\t\treturn cached;\n\t\t} catch {\n\t\t\t// If we can't fetch the schema, skip conversion\n\t\t\treturn [];\n\t\t}\n\t}\n}\n\ntype _AssertTrue<T extends true> = T;\ntype _MediaRepairUsageRequiresExplicitInput = _AssertTrue<\n\tParameters<EmDashClient[\"mediaRepairUsage\"]> extends [MediaUsageRepairInput] ? true : false\n>;\n\nexport type { SiteImportDecisionsInput, SiteImportPlan, SiteImportReceipt, Sha256Digest };\n\n// Re-export transport types for interceptor authors\nexport type { Interceptor } from \"./transport.js\";\nexport {\n\tcreateTransport,\n\tcsrfInterceptor,\n\ttokenInterceptor,\n\tdevBypassInterceptor,\n} from \"./transport.js\";\nexport { portableTextToMarkdown, markdownToPortableText } from \"./portable-text.js\";\nexport type { PortableTextBlock } from \"./portable-text.js\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/client/index.ts"],"sourcesContent":["/**\n * EmDashClient — typed HTTP client for the EmDash REST API.\n *\n * Handles auth, CSRF, PT ↔ Markdown conversion, and optional `_rev`\n * concurrency tokens. Shared foundation for the CLI and future MCP server.\n *\n * @example\n * ```ts\n * import { EmDashClient } from \"emdash/client\";\n *\n * const client = new EmDashClient({\n * baseUrl: \"http://localhost:4321\",\n * devBypass: true,\n * });\n *\n * const posts = await client.list(\"posts\", { status: \"published\" });\n * ```\n */\n\nimport mime from \"mime/lite\";\n\nimport type { ContentFieldFilters } from \"../content-list-query.js\";\nimport type {\n\tBlockType,\n\tCreateBlockTypeInput,\n\tUpdateBlockTypeInput,\n} from \"../schema/block-types.js\";\nimport type { Sha256Digest } from \"../transfer/format/digest.js\";\nimport type { SiteImportDecisionsInput, SiteImportPlan } from \"../transfer/format/plan.js\";\nimport type { SiteImportReceipt } from \"../transfer/format/receipt.js\";\nimport type { PublicTransferOperation } from \"../transfer/ops/operations.js\";\nimport type { FieldSchema } from \"./portable-text.js\";\nimport { convertDataForRead, convertDataForWrite } from \"./portable-text.js\";\nimport type { Interceptor } from \"./transport.js\";\nimport {\n\tcreateTransport,\n\tcsrfInterceptor,\n\tdevBypassInterceptor,\n\trefreshInterceptor,\n\ttokenInterceptor,\n} from \"./transport.js\";\n\n// Regex patterns for client utilities\nconst TRAILING_SLASH_PATTERN = /\\/$/;\nconst DECIMAL_PATTERN = /^\\d+$/;\nconst SHA256_ETAG_PATTERN = /^\"([0-9a-f]{64})\"$/;\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction mimeFromFilename(filename: string): string {\n\treturn mime.getType(filename) ?? \"application/octet-stream\";\n}\n\nfunction idempotencyHeader(request: { idempotencyKey?: string }): Record<string, string> {\n\treturn request.idempotencyKey === undefined ? {} : { \"Idempotency-Key\": request.idempotencyKey };\n}\n\nfunction pageQuery(options?: { limit?: number; cursor?: string }): string {\n\tconst params = new URLSearchParams();\n\tif (options?.limit !== undefined) params.set(\"limit\", String(options.limit));\n\tif (options?.cursor !== undefined) params.set(\"cursor\", options.cursor);\n\tconst qs = params.toString();\n\treturn qs ? `?${qs}` : \"\";\n}\n\n/** Encode a site package path (`records/post/000000.ndjson`) segment by segment */\nfunction encodePackagePath(path: string): string {\n\treturn path.split(\"/\").map(encodeURIComponent).join(\"/\");\n}\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface EmDashClientOptions {\n\t/** Base URL of the EmDash instance */\n\tbaseUrl: string;\n\t/** API token (ec_pat_...) or OAuth token (ec_oat_...) */\n\ttoken?: string;\n\t/** OAuth refresh token for auto-refresh on 401 */\n\trefreshToken?: string;\n\t/** Called when a token is refreshed (for persisting new access token) */\n\tonTokenRefresh?: (accessToken: string, expiresIn: number) => void;\n\t/** Use dev-bypass authentication (localhost only) */\n\tdevBypass?: boolean;\n\t/** Additional request interceptors */\n\tinterceptors?: Interceptor[];\n}\n\n/** Standard API error shape */\nexport interface ApiError {\n\tcode: string;\n\tmessage: string;\n\tdetails?: Record<string, unknown>;\n}\n\n/** Standard API response wrapper */\nexport interface ClientResponse<T> {\n\tsuccess: true;\n\tdata: T;\n}\n\n/** Paginated list response */\nexport interface ListResult<T> {\n\titems: T[];\n\tnextCursor?: string;\n}\n\n/** Content item as returned by the API */\nexport interface ContentItem {\n\tid: string;\n\ttype: string;\n\tslug: string | null;\n\tstatus: string;\n\tdata: Record<string, unknown>;\n\tauthorId: string | null;\n\tcreatedAt: string;\n\tupdatedAt: string;\n\tpublishedAt: string | null;\n\tscheduledAt: string | null;\n\tliveRevisionId: string | null;\n\tdraftRevisionId: string | null;\n\tlocale: string | null;\n\ttranslationGroup: string | null;\n\t_rev?: string;\n}\n\n/** Collection metadata */\nexport interface Collection {\n\tslug: string;\n\tlabel: string;\n\tlabelSingular: string;\n\tdescription?: string;\n\ticon?: string;\n\tsupports: string[];\n}\n\n/** Collection with fields */\nexport interface CollectionWithFields extends Collection {\n\tfields: Field[];\n}\n\n/** Field metadata */\nexport interface Field {\n\tslug: string;\n\tlabel: string;\n\ttype: string;\n\trequired: boolean;\n\tunique: boolean;\n\tdefaultValue?: unknown;\n\tvalidation?: unknown;\n\twidget?: string;\n\toptions?: unknown;\n\tsortOrder?: number;\n\tblockTypes?: BlockType[];\n\tblockTypeFingerprint?: string;\n}\n\n/** Aggregate trust state for media usage reads */\nexport type MediaUsageCoverageStatus =\n\t| \"complete\"\n\t| \"never\"\n\t| \"running\"\n\t| \"partial\"\n\t| \"failed\"\n\t| \"stale\"\n\t| \"unknown\";\n\n/** Aggregate media usage coverage across all content collections */\nexport interface MediaUsageCoverage {\n\tscope: \"all_content_collections\";\n\tstatus: MediaUsageCoverageStatus;\n}\n\n/** Coverage-aware usage count for a media item */\nexport interface MediaUsageSummary {\n\tcount: number | null;\n\tcoverage: MediaUsageCoverage;\n}\n\n/** One indexed media reference within a content source */\nexport interface MediaUsageOccurrenceDetail {\n\tfieldSlug: string;\n\tfieldPath: string;\n\toccurrenceIndex: number;\n\treferenceType:\n\t\t| \"image_field\"\n\t\t| \"file_field\"\n\t\t| \"portable_text_image\"\n\t\t| \"portable_text_video\"\n\t\t| \"unknown\";\n}\n\n/** Indexed references from one visible content source */\nexport interface MediaUsageSourceDetail {\n\tvariant: \"columns\" | \"draft_overlay\";\n\toccurrences: MediaUsageOccurrenceDetail[];\n}\n\n/** One content entry that references a media item */\nexport interface MediaUsageEntryDetail {\n\tcollection: string;\n\tcontentId: string;\n\ttitle: string | null;\n\tslug: string | null;\n\tlocale: string | null;\n\tstatus: string | null;\n\tscheduledAt: string | null;\n\tdeletedAt: string | null;\n\tsources: MediaUsageSourceDetail[];\n}\n\n/** A site setting that selects a media item */\nexport interface MediaUsageSiteSettingDetail {\n\tsetting: \"logo\" | \"favicon\" | \"seo.defaultOgImage\";\n}\n\n/** Entry-grouped media usage details */\nexport interface MediaUsageDetailsResponse {\n\titems: MediaUsageEntryDetail[];\n\tnextCursor?: string;\n\tsiteSettings: MediaUsageSiteSettingDetail[];\n\tcoverage: MediaUsageCoverage;\n}\n\n/** Media item */\nexport interface MediaItem {\n\tid: string;\n\tfilename: string;\n\tkey: string;\n\tmimeType: string;\n\tsize: number;\n\twidth?: number;\n\theight?: number;\n\tfocalX?: number | null;\n\tfocalY?: number | null;\n\talt?: string;\n\tcaption?: string;\n\tcreatedAt: string;\n\tupdatedAt: string;\n\tfolderId?: string | null;\n\tusage?: MediaUsageSummary;\n}\n\n/** Result of assigning local media to a folder or the Main library */\nexport interface MediaFolderAssignment {\n\tid: string;\n\tfolderId: string | null;\n}\n\n/** Flat media-library folder */\nexport interface MediaFolder {\n\tid: string;\n\tname: string;\n}\n\n/** Media usage repair request */\nexport type MediaUsageRepairInput = { scope: \"collection\"; collection: string } | { scope: \"all\" };\n\n/** Media usage repair status */\nexport type MediaUsageRepairStatus = \"complete\" | \"partial\" | \"failed\" | \"stale\";\n\n/** Per-collection media usage repair summary */\nexport interface MediaUsageRepairCollectionSummary {\n\tcollection: string;\n\tstatus: MediaUsageRepairStatus;\n\tindexedSourceCount: number;\n\tfailedSourceCount: number;\n\tskippedSourceCount: number;\n\tdeletedSourceCount: number;\n\tlastErrorCode: string | null;\n\tstartedAt: string;\n\tcompletedAt: string | null;\n}\n\n/** Media usage repair response */\nexport interface MediaUsageRepairResponse {\n\tstatus: MediaUsageRepairStatus;\n\tindexedSourceCount: number;\n\tfailedSourceCount: number;\n\tskippedSourceCount: number;\n\tdeletedSourceCount: number;\n\tcollections: MediaUsageRepairCollectionSummary[];\n}\n\nexport interface MediaUsageProgress {\n\tstatus: \"indexing\" | \"ready\" | \"needs_attention\";\n\treadyCollections: number;\n\ttotalCollections: number;\n}\n\nexport interface MediaUsageProgressAdvanceResponse {\n\tactivation: MediaUsageActivationStatus;\n\tprogress: MediaUsageProgress | null;\n\tnextRequestInMs: 0 | 30_000 | null;\n}\n\n/** Durable media usage entry-work state */\nexport type MediaUsageWorkState = \"pending\" | \"retry\" | \"leased\" | \"failed\";\n\n/** Redacted operator view of one durable media usage job */\nexport interface MediaUsageWorkItem {\n\tcollectionId: string;\n\tcollectionSlug: string;\n\tcontentId: string;\n\tstate: MediaUsageWorkState;\n\tattemptCount: number;\n\tnextAttemptAt: string;\n\tleaseExpiresAt: string | null;\n\tlastAttemptedAt: string | null;\n\tlastErrorCode: string | null;\n\tupdatedAt: string;\n}\n\n/** Filters and pagination for durable media usage work */\nexport interface MediaUsageWorkListOptions {\n\tcollection: string;\n\tstate?: MediaUsageWorkState;\n\tlimit?: number;\n\tcursor?: string;\n}\n\n/** One bounded page of durable media usage work */\nexport interface MediaUsageWorkListResponse {\n\titems: MediaUsageWorkItem[];\n\tnextCursor?: string;\n}\n\n/** Identity for explicitly retrying one durable media usage job */\nexport interface MediaUsageWorkRetryInput {\n\tcollectionId: string;\n\tcontentId: string;\n}\n\n/** Result of explicitly retrying one durable media usage job */\nexport interface MediaUsageWorkRetryResponse {\n\tchanged: boolean;\n\titem: MediaUsageWorkItem;\n}\n\nexport interface MediaUsageActivationStatus {\n\tstate: \"expanded\" | \"activating\" | \"active\";\n\tcollectionCursor: string | null;\n\tattemptCount: number;\n\tdrainConfirmedAt: string | null;\n\tlastAttemptedAt: string | null;\n\tlastErrorCode: \"MEDIA_USAGE_ACTIVATION_FAILED\" | null;\n\tleaseExpiresAt: string | null;\n\tactivatedAt: string | null;\n\tupdatedAt: string;\n}\n\nexport interface MediaUsageActivationAdvanceInput {\n\twritersDrained: true;\n}\n\nexport interface MediaUsageActivationAdvanceResponse {\n\toutcome: \"activating\" | \"active\";\n\tprocessedCollections: number;\n\tactivation: MediaUsageActivationStatus;\n}\n\nexport type MediaUsageCollectionDeletionState = \"pending\" | \"retry\" | \"leased\" | \"failed\";\nexport type MediaUsageCollectionDeletionPhase =\n\t| \"fence\"\n\t| \"registry\"\n\t| \"table\"\n\t| \"work\"\n\t| \"sources\"\n\t| \"status\"\n\t| \"finalize\";\nexport interface MediaUsageCollectionDeletionItem {\n\tcollectionId: string;\n\tcollectionSlug: string;\n\tstate: MediaUsageCollectionDeletionState;\n\tphase: MediaUsageCollectionDeletionPhase;\n\tattemptCount: number;\n\tnextAttemptAt: string;\n\tleaseExpiresAt: string | null;\n\tlastErrorCode: string | null;\n\tupdatedAt: string;\n}\nexport interface MediaUsageCollectionDeletionListResponse {\n\titems: MediaUsageCollectionDeletionItem[];\n\tnextCursor?: string;\n}\n\n/** Search result */\nexport interface SearchResult {\n\tid: string;\n\tcollection: string;\n\ttitle: string;\n\texcerpt?: string;\n\tscore: number;\n}\n\n/** Taxonomy */\nexport interface Taxonomy {\n\tname: string;\n\tlabel: string;\n\thierarchical: boolean;\n}\n\n/** Taxonomy term */\nexport interface Term {\n\tid: string;\n\tslug: string;\n\tlabel: string;\n\tparentId?: string | null;\n\tdescription?: string;\n\tcount?: number;\n}\n\n/** Menu */\nexport interface Menu {\n\tname: string;\n\tlabel: string;\n}\n\n/** Menu with items */\nexport interface MenuWithItems extends Menu {\n\titems: MenuItem[];\n}\n\n/** Menu item */\nexport interface MenuItem {\n\tid: string;\n\ttype: string;\n\tlabel: string;\n\tcustomUrl?: string;\n\treferenceCollection?: string;\n\treferenceId?: string;\n\ttarget?: string;\n\tparentId?: string | null;\n\tsortOrder: number;\n}\n\n/** Full schema export (returned by /api/schema) */\nexport interface SchemaExport {\n\tcollections: Array<{\n\t\tslug: string;\n\t\tlabel: string;\n\t\tlabelSingular: string;\n\t\tdescription?: string;\n\t\ticon?: string;\n\t\tsupports: string[];\n\t\tfields: Array<{\n\t\t\tslug: string;\n\t\t\tlabel: string;\n\t\t\ttype: string;\n\t\t\trequired: boolean;\n\t\t\tunique: boolean;\n\t\t\tdefaultValue?: unknown;\n\t\t\tvalidation?: unknown;\n\t\t\twidget?: string;\n\t\t\toptions?: unknown;\n\t\t}>;\n\t}>;\n\tversion: string;\n}\n\n/** Manifest — full schema + field descriptors */\nexport interface Manifest {\n\tversion: string;\n\thash: string;\n\tcollections: Record<\n\t\tstring,\n\t\t{\n\t\t\tlabel: string;\n\t\t\tlabelSingular: string;\n\t\t\tsupports: string[];\n\t\t\tfields: Record<string, { kind: string; label?: string; required?: boolean }>;\n\t\t}\n\t>;\n}\n\n/** User as listed by the admin users API */\nexport interface UserSummary {\n\tid: string;\n\temail: string;\n\tname: string | null;\n\trole: number;\n\tdisabled: boolean;\n}\n\n/** A site transfer operation (export or import) */\nexport type TransferOperation = PublicTransferOperation;\n\n/** Site transfer capabilities of an instance */\nexport interface TransferCapabilities {\n\tformatVersions: string[];\n\tfeatures: string[];\n\toptionalFeatures: string[];\n\tlimits: {\n\t\tmanifestBytes: number;\n\t\trecordLineBytes: number;\n\t\tchunkBytes: number;\n\t\tchunkRecords: number;\n\t\ttotalRecords: number;\n\t\ttotalFiles: number;\n\t\tindexChunks: number;\n\t\tjsonDepth: number;\n\t\tmaxBlobBytes: number;\n\t};\n\tportableDomain: {\n\t\tempty: boolean;\n\t\tblockers: Array<Record<string, string>>;\n\t\tseededScaffold: Array<Record<string, string>>;\n\t};\n}\n\n/** Result of one bounded `advance` step */\nexport interface TransferAdvanceResult {\n\toperation: TransferOperation;\n\t/** Milliseconds until the next step should be requested, or null once the operation has ended. */\n\tnextRequestInMs: number | null;\n}\n\n/** A package file the import has declared but not yet received */\nexport interface TransferPackageFile {\n\tpath: string;\n\tbytes: number;\n\tsha256: string;\n}\n\nexport interface TransferImportCreateResult {\n\toperation: TransferOperation;\n\tcreated: boolean;\n\tmissing: ListResult<TransferPackageFile>;\n}\n\nexport interface TransferFileUploadResult {\n\tpath: string;\n\tbytes: number;\n\t/** True when the file was already stored and the uploaded bytes matched it. */\n\talreadyVerified: boolean;\n\t/** Declared files still to upload. */\n\tremaining: number;\n}\n\nexport interface TransferImportAnalyzeResult {\n\toperation: TransferOperation;\n\tplan?: SiteImportPlan;\n\tplanDigest?: Sha256Digest;\n\t/** Milliseconds until the next step should be requested, or null once analysis has ended. */\n\tnextRequestInMs: number | null;\n}\n\nexport interface TransferImportStatus {\n\toperation: TransferOperation;\n\tfiles: { declared: number; verified: number };\n}\n\n/** A downloaded export file, streamed */\nexport interface TransferFileDownload {\n\tbody: ReadableStream<Uint8Array>;\n\t/** Size from `Content-Length`, when sent */\n\tbytes: number | null;\n\t/** Hex SHA-256 from the `ETag`, when sent */\n\tsha256: string | null;\n}\n\n// ---------------------------------------------------------------------------\n// Client errors\n// ---------------------------------------------------------------------------\n\nexport class EmDashApiError extends Error {\n\tconstructor(\n\t\tpublic readonly status: number,\n\t\tpublic readonly code: string,\n\t\tmessage: string,\n\t\tpublic readonly details?: Record<string, unknown>,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"EmDashApiError\";\n\t}\n}\n\nexport class EmDashClientError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"EmDashClientError\";\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// Client\n// ---------------------------------------------------------------------------\n\nexport class EmDashClient {\n\tprivate readonly baseUrl: string;\n\tprivate readonly transport: { fetch: (request: Request) => Promise<Response> };\n\n\t/** Cached field schemas per collection for PT conversion */\n\tprivate fieldSchemaCache = new Map<string, FieldSchema[]>();\n\n\tconstructor(options: EmDashClientOptions) {\n\t\tthis.baseUrl = options.baseUrl.replace(TRAILING_SLASH_PATTERN, \"\");\n\n\t\t// Build interceptor chain\n\t\tconst interceptors: Interceptor[] = [csrfInterceptor()];\n\n\t\tif (options.token) {\n\t\t\tinterceptors.push(tokenInterceptor(options.token));\n\t\t} else if (options.devBypass) {\n\t\t\tinterceptors.push(devBypassInterceptor(this.baseUrl));\n\t\t}\n\n\t\t// Auto-refresh expired OAuth tokens\n\t\tif (options.refreshToken) {\n\t\t\tinterceptors.push(\n\t\t\t\trefreshInterceptor({\n\t\t\t\t\trefreshToken: options.refreshToken,\n\t\t\t\t\ttokenEndpoint: `${this.baseUrl}/_emdash/api/oauth/token/refresh`,\n\t\t\t\t\tonTokenRefreshed: options.onTokenRefresh\n\t\t\t\t\t\t? (accessToken, _refreshToken, expiresAt) => {\n\t\t\t\t\t\t\t\tconst expiresIn = Math.floor((new Date(expiresAt).getTime() - Date.now()) / 1000);\n\t\t\t\t\t\t\t\toptions.onTokenRefresh!(accessToken, expiresIn);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tif (options.interceptors) {\n\t\t\tinterceptors.push(...options.interceptors);\n\t\t}\n\n\t\tthis.transport = createTransport({ interceptors });\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Schema\n\t// -----------------------------------------------------------------------\n\n\t/** List all collections */\n\tasync collections(): Promise<Collection[]> {\n\t\tconst data = await this.request<{ items: Collection[] }>(\"GET\", \"/schema/collections\");\n\t\treturn data.items;\n\t}\n\n\t/** Get a single collection with its fields */\n\tasync collection(slug: string): Promise<CollectionWithFields> {\n\t\tconst data = await this.request<{ item: CollectionWithFields }>(\n\t\t\t\"GET\",\n\t\t\t`/schema/collections/${encodeURIComponent(slug)}?includeFields=true`,\n\t\t);\n\t\tconst col = data.item;\n\t\t// Cache field schemas for PT conversion\n\t\tif (col.fields) {\n\t\t\tthis.fieldSchemaCache.set(\n\t\t\t\tslug,\n\t\t\t\tcol.fields.map((f) => ({ slug: f.slug, type: f.type, blockTypes: f.blockTypes })),\n\t\t\t);\n\t\t}\n\t\treturn col;\n\t}\n\n\tasync blockTypes(): Promise<BlockType[]> {\n\t\tconst data = await this.request<{ items: BlockType[] }>(\"GET\", \"/schema/block-types\");\n\t\treturn data.items;\n\t}\n\n\tasync blockType(slug: string): Promise<BlockType> {\n\t\tconst data = await this.request<{ item: BlockType }>(\n\t\t\t\"GET\",\n\t\t\t`/schema/block-types/${encodeURIComponent(slug)}`,\n\t\t);\n\t\treturn data.item;\n\t}\n\n\tasync createBlockType(input: CreateBlockTypeInput): Promise<BlockType> {\n\t\tconst data = await this.request<{ item: BlockType }>(\"POST\", \"/schema/block-types\", input);\n\t\treturn data.item;\n\t}\n\n\tasync updateBlockType(slug: string, input: UpdateBlockTypeInput): Promise<BlockType> {\n\t\tconst data = await this.request<{ item: BlockType }>(\n\t\t\t\"PUT\",\n\t\t\t`/schema/block-types/${encodeURIComponent(slug)}`,\n\t\t\tinput,\n\t\t);\n\t\treturn data.item;\n\t}\n\n\tasync activateBlockTypeVersion(\n\t\tslug: string,\n\t\tversion: number,\n\t\texpectedFingerprint: string,\n\t): Promise<BlockType> {\n\t\tconst data = await this.request<{ item: BlockType }>(\n\t\t\t\"POST\",\n\t\t\t`/schema/block-types/${encodeURIComponent(slug)}/versions/${version}/activate`,\n\t\t\t{ expectedFingerprint },\n\t\t);\n\t\treturn data.item;\n\t}\n\n\t/** Create a collection */\n\tasync createCollection(input: {\n\t\tslug: string;\n\t\tlabel: string;\n\t\tlabelSingular?: string;\n\t\tdescription?: string;\n\t\ticon?: string;\n\t\tsupports?: string[];\n\t}): Promise<Collection> {\n\t\tconst data = await this.request<{ item: Collection }>(\"POST\", \"/schema/collections\", input);\n\t\treturn data.item;\n\t}\n\n\t/** Delete a collection */\n\tasync deleteCollection(slug: string): Promise<void> {\n\t\tawait this.request<unknown>(\"DELETE\", `/schema/collections/${encodeURIComponent(slug)}`);\n\t}\n\n\t/** Create a field on a collection */\n\tasync createField(\n\t\tcollection: string,\n\t\tinput: {\n\t\t\tslug: string;\n\t\t\ttype: string;\n\t\t\tlabel: string;\n\t\t\trequired?: boolean;\n\t\t\tunique?: boolean;\n\t\t\tdefaultValue?: unknown;\n\t\t\tvalidation?: unknown;\n\t\t\twidget?: string;\n\t\t\toptions?: unknown;\n\t\t\tsortOrder?: number;\n\t\t},\n\t): Promise<Field> {\n\t\tconst data = await this.request<{ item: Field }>(\n\t\t\t\"POST\",\n\t\t\t`/schema/collections/${encodeURIComponent(collection)}/fields`,\n\t\t\tinput,\n\t\t);\n\t\t// Invalidate field cache\n\t\tthis.fieldSchemaCache.delete(collection);\n\t\treturn data.item;\n\t}\n\n\t/** Delete a field from a collection */\n\tasync deleteField(collection: string, fieldSlug: string): Promise<void> {\n\t\tawait this.request<unknown>(\n\t\t\t\"DELETE\",\n\t\t\t`/schema/collections/${encodeURIComponent(collection)}/fields/${encodeURIComponent(fieldSlug)}`,\n\t\t);\n\t\tthis.fieldSchemaCache.delete(collection);\n\t}\n\n\t/** Get full manifest (schema + field descriptors + features) */\n\tasync manifest(): Promise<Manifest> {\n\t\treturn this.request<Manifest>(\"GET\", \"/manifest\");\n\t}\n\n\t/** Export full schema as JSON (used by `emdash types`) */\n\tasync schemaExport(): Promise<SchemaExport> {\n\t\treturn this.request<SchemaExport>(\"GET\", \"/schema\");\n\t}\n\n\t/** Export schema as TypeScript type definitions (used by `emdash types`) */\n\tasync schemaTypes(): Promise<string> {\n\t\tconst response = await this.requestRaw(\"GET\", \"/schema?format=typescript\");\n\t\tawait this.assertOk(response);\n\t\treturn response.text();\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Content\n\t// -----------------------------------------------------------------------\n\n\t/** List content in a collection */\n\tasync list(\n\t\tcollection: string,\n\t\toptions?: {\n\t\t\tstatus?: string;\n\t\t\tlimit?: number;\n\t\t\tcursor?: string;\n\t\t\torderBy?: string;\n\t\t\torder?: \"asc\" | \"desc\";\n\t\t\tlocale?: string;\n\t\t\t/** AND-combined filters over custom fields explicitly marked as indexed. */\n\t\t\tfieldFilters?: ContentFieldFilters;\n\t\t},\n\t): Promise<ListResult<ContentItem>> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.status) params.set(\"status\", options.status);\n\t\tif (options?.limit) params.set(\"limit\", String(options.limit));\n\t\tif (options?.cursor) params.set(\"cursor\", options.cursor);\n\t\tif (options?.orderBy) params.set(\"orderBy\", options.orderBy);\n\t\tif (options?.order) params.set(\"order\", options.order);\n\t\tif (options?.locale) params.set(\"locale\", options.locale);\n\t\tif (options?.fieldFilters && Object.keys(options.fieldFilters).length > 0) {\n\t\t\tparams.set(\"fieldFilters\", JSON.stringify(options.fieldFilters));\n\t\t}\n\n\t\tconst qs = params.toString();\n\t\tconst path = `/content/${encodeURIComponent(collection)}${qs ? `?${qs}` : \"\"}`;\n\t\treturn this.request<ListResult<ContentItem>>(\"GET\", path);\n\t}\n\n\t/** Async iterator that auto-follows cursors */\n\tasync *listAll(\n\t\tcollection: string,\n\t\toptions?: {\n\t\t\tstatus?: string;\n\t\t\tlimit?: number;\n\t\t\torderBy?: string;\n\t\t\torder?: \"asc\" | \"desc\";\n\t\t\tlocale?: string;\n\t\t\t/** AND-combined filters over custom fields explicitly marked as indexed. */\n\t\t\tfieldFilters?: ContentFieldFilters;\n\t\t},\n\t): AsyncGenerator<ContentItem> {\n\t\tlet cursor: string | undefined;\n\t\tdo {\n\t\t\tconst result = await this.list(collection, { ...options, cursor });\n\t\t\tfor (const item of result.items) {\n\t\t\t\tyield item;\n\t\t\t}\n\t\t\tcursor = result.nextCursor;\n\t\t} while (cursor);\n\t}\n\n\t/**\n\t * Get a single content item. Returns the item with a `_rev` token\n\t * that can be passed to update() for optimistic concurrency.\n\t */\n\tasync get(\n\t\tcollection: string,\n\t\tid: string,\n\t\toptions?: { raw?: boolean; locale?: string },\n\t): Promise<ContentItem> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.locale) params.set(\"locale\", options.locale);\n\t\tconst qs = params.size > 0 ? `?${params}` : \"\";\n\t\tconst result = await this.requestRaw(\n\t\t\t\"GET\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}${qs}`,\n\t\t);\n\t\tif (!result.ok) {\n\t\t\tawait this.assertOk(result);\n\t\t}\n\n\t\tconst raw = (await result.json()) as { data: { item: ContentItem; _rev?: string } };\n\t\tconst json = raw.data;\n\t\tconst item = json.item;\n\n\t\t// Attach _rev to the item so callers can pass it back on update\n\t\tif (json._rev) {\n\t\t\titem._rev = json._rev;\n\t\t}\n\n\t\t// Convert PT fields to markdown unless raw is requested\n\t\tif (!options?.raw && item.data) {\n\t\t\tconst fields = await this.getFieldSchemas(collection);\n\t\t\titem.data = convertDataForRead(item.data, fields, false);\n\t\t}\n\n\t\treturn item;\n\t}\n\n\t/** Create a new content item */\n\tasync create(\n\t\tcollection: string,\n\t\tinput: {\n\t\t\tdata: Record<string, unknown>;\n\t\t\tslug?: string;\n\t\t\tstatus?: string;\n\t\t\tlocale?: string;\n\t\t\ttranslationOf?: string;\n\t\t\tmigrateBlocks?: boolean;\n\t\t\treplaceBlocks?: boolean;\n\t\t},\n\t): Promise<ContentItem> {\n\t\t// Convert markdown strings to PT for portableText fields\n\t\tconst fields = await this.getFieldSchemas(collection);\n\t\tconst data = convertDataForWrite(input.data, fields);\n\n\t\tconst result = await this.request<{ item: ContentItem }>(\n\t\t\t\"POST\",\n\t\t\t`/content/${encodeURIComponent(collection)}`,\n\t\t\t{ ...input, data },\n\t\t);\n\t\treturn result.item;\n\t}\n\n\t/**\n\t * Update a content item. Pass `_rev` from a prior get() for optimistic\n\t * concurrency — the server returns 409 if the item has changed.\n\t * Omit `_rev` for a blind write (no conflict detection).\n\t */\n\tasync update(\n\t\tcollection: string,\n\t\tid: string,\n\t\tinput: {\n\t\t\tdata?: Record<string, unknown>;\n\t\t\tslug?: string;\n\t\t\tstatus?: string;\n\t\t\t_rev?: string;\n\t\t\tlocale?: string;\n\t\t\tmigrateBlocks?: boolean;\n\t\t\treplaceBlocks?: boolean;\n\t\t\t/** Write even though another editor holds this entry's edit lock. */\n\t\t\toverrideLock?: boolean;\n\t\t},\n\t): Promise<ContentItem> {\n\t\t// Convert markdown strings to PT\n\t\tlet data = input.data;\n\t\tif (data) {\n\t\t\tconst fields = await this.getFieldSchemas(collection);\n\t\t\tdata = convertDataForWrite(data, fields);\n\t\t}\n\n\t\tconst body = {\n\t\t\tdata,\n\t\t\tslug: input.slug,\n\t\t\tstatus: input.status,\n\t\t\tmigrateBlocks: input.migrateBlocks,\n\t\t\treplaceBlocks: input.replaceBlocks,\n\t\t\t...(input._rev ? { _rev: input._rev } : {}),\n\t\t\t...(input.overrideLock ? { overrideLock: true } : {}),\n\t\t};\n\t\tconst params = new URLSearchParams();\n\t\tif (input.locale) params.set(\"locale\", input.locale);\n\t\tconst result = await this.request<{ item: ContentItem; _rev?: string }>(\n\t\t\t\"PUT\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}${params.toString() ? `?${params}` : \"\"}`,\n\t\t\tbody,\n\t\t);\n\n\t\tconst item = result.item;\n\t\tif (result._rev) {\n\t\t\titem._rev = result._rev;\n\t\t}\n\t\treturn item;\n\t}\n\n\t/** Delete (soft) a content item */\n\tasync delete(\n\t\tcollection: string,\n\t\tid: string,\n\t\toptions: { overrideLock?: boolean } = {},\n\t): Promise<void> {\n\t\tconst query = options.overrideLock ? \"?overrideLock=true\" : \"\";\n\t\tawait this.request<unknown>(\n\t\t\t\"DELETE\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}${query}`,\n\t\t);\n\t}\n\n\t/** Publish a content item */\n\tasync publish(\n\t\tcollection: string,\n\t\tid: string,\n\t\toptions: { overrideLock?: boolean } = {},\n\t): Promise<void> {\n\t\tawait this.request<unknown>(\n\t\t\t\"POST\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/publish`,\n\t\t\toptions.overrideLock ? { overrideLock: true } : undefined,\n\t\t);\n\t}\n\n\t/** Unpublish a content item */\n\tasync unpublish(\n\t\tcollection: string,\n\t\tid: string,\n\t\toptions: { overrideLock?: boolean } = {},\n\t): Promise<void> {\n\t\tawait this.request<unknown>(\n\t\t\t\"POST\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/unpublish`,\n\t\t\toptions.overrideLock ? { overrideLock: true } : undefined,\n\t\t);\n\t}\n\n\t/** Schedule publishing */\n\tasync schedule(\n\t\tcollection: string,\n\t\tid: string,\n\t\toptions: { at: string; overrideLock?: boolean },\n\t): Promise<void> {\n\t\tawait this.request<unknown>(\n\t\t\t\"POST\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/schedule`,\n\t\t\t{ scheduledAt: options.at, ...(options.overrideLock ? { overrideLock: true } : {}) },\n\t\t);\n\t}\n\n\t/** Restore a trashed content item */\n\tasync restore(collection: string, id: string): Promise<void> {\n\t\tawait this.request<unknown>(\n\t\t\t\"POST\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/restore`,\n\t\t);\n\t}\n\n\t/** Compare live and draft revisions */\n\tasync compare(\n\t\tcollection: string,\n\t\tid: string,\n\t): Promise<{\n\t\thasChanges: boolean;\n\t\tlive: Record<string, unknown> | null;\n\t\tdraft: Record<string, unknown> | null;\n\t}> {\n\t\treturn this.request<{\n\t\t\thasChanges: boolean;\n\t\t\tlive: Record<string, unknown> | null;\n\t\t\tdraft: Record<string, unknown> | null;\n\t\t}>(\"GET\", `/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/compare`);\n\t}\n\n\t/** Discard draft revision, reverting to the published version */\n\tasync discardDraft(\n\t\tcollection: string,\n\t\tid: string,\n\t\toptions: { overrideLock?: boolean } = {},\n\t): Promise<void> {\n\t\tawait this.request<unknown>(\n\t\t\t\"POST\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/discard-draft`,\n\t\t\toptions.overrideLock ? { overrideLock: true } : undefined,\n\t\t);\n\t}\n\n\t/**\n\t * Get all translations of a content item.\n\t * Returns the translation group ID and a summary of each locale version.\n\t */\n\tasync translations(\n\t\tcollection: string,\n\t\tid: string,\n\t): Promise<{\n\t\ttranslationGroup: string;\n\t\ttranslations: Array<{\n\t\t\tid: string;\n\t\t\tlocale: string | null;\n\t\t\tslug: string | null;\n\t\t\tstatus: string;\n\t\t\tupdatedAt: string;\n\t\t}>;\n\t}> {\n\t\treturn this.request(\n\t\t\t\"GET\",\n\t\t\t`/content/${encodeURIComponent(collection)}/${encodeURIComponent(id)}/translations`,\n\t\t);\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Media\n\t// -----------------------------------------------------------------------\n\n\t/** List media items */\n\tasync mediaList(options?: {\n\t\tmimeType?: string;\n\t\tlimit?: number;\n\t\tcursor?: string;\n\t\tpage?: number;\n\t\tincludeUsage?: boolean;\n\t\tfolderId?: string | null;\n\t}): Promise<ListResult<MediaItem> & { totalCount?: number }> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.mimeType) params.set(\"mimeType\", options.mimeType);\n\t\tif (options?.limit) params.set(\"limit\", String(options.limit));\n\t\tif (options?.cursor) params.set(\"cursor\", options.cursor);\n\t\tif (options?.page !== undefined) params.set(\"page\", String(options.page));\n\t\tif (options?.includeUsage === true) params.set(\"includeUsage\", \"1\");\n\t\tif (options?.folderId === null) {\n\t\t\tparams.set(\"folderId\", \"unfiled\");\n\t\t} else if (options?.folderId !== undefined) {\n\t\t\tparams.set(\"folderId\", options.folderId);\n\t\t}\n\n\t\tconst qs = params.toString();\n\t\treturn this.request<ListResult<MediaItem> & { totalCount?: number }>(\n\t\t\t\"GET\",\n\t\t\t`/media${qs ? `?${qs}` : \"\"}`,\n\t\t);\n\t}\n\n\t/** Get a single media item */\n\tasync mediaGet(id: string, options?: { includeUsage?: boolean }): Promise<MediaItem> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.includeUsage === true) params.set(\"includeUsage\", \"1\");\n\n\t\tconst qs = params.toString();\n\t\tconst data = await this.request<{ item: MediaItem }>(\n\t\t\t\"GET\",\n\t\t\t`/media/${encodeURIComponent(id)}${qs ? `?${qs}` : \"\"}`,\n\t\t);\n\t\treturn data.item;\n\t}\n\n\t/** List media folders */\n\tasync mediaFolderList(\n\t\toptions: { limit?: number; cursor?: string; q?: string } = {},\n\t): Promise<ListResult<MediaFolder>> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options.limit !== undefined) params.set(\"limit\", String(options.limit));\n\t\tif (options.cursor !== undefined) params.set(\"cursor\", options.cursor);\n\t\tif (options.q !== undefined) params.set(\"q\", options.q);\n\t\tconst qs = params.toString();\n\t\treturn this.request<ListResult<MediaFolder>>(\"GET\", `/media/folders${qs ? `?${qs}` : \"\"}`);\n\t}\n\n\t/** Get one media folder */\n\tasync mediaFolderGet(id: string): Promise<MediaFolder> {\n\t\tconst data = await this.request<{ item: MediaFolder }>(\n\t\t\t\"GET\",\n\t\t\t`/media/folders/${encodeURIComponent(id)}`,\n\t\t);\n\t\treturn data.item;\n\t}\n\n\t/** Create a media folder */\n\tasync mediaFolderCreate(name: string): Promise<MediaFolder> {\n\t\tconst data = await this.request<{ item: MediaFolder }>(\"POST\", \"/media/folders\", { name });\n\t\treturn data.item;\n\t}\n\n\t/** Rename a media folder */\n\tasync mediaFolderUpdate(id: string, name: string): Promise<MediaFolder> {\n\t\tconst data = await this.request<{ item: MediaFolder }>(\n\t\t\t\"PUT\",\n\t\t\t`/media/folders/${encodeURIComponent(id)}`,\n\t\t\t{ name },\n\t\t);\n\t\treturn data.item;\n\t}\n\n\t/** Delete a media folder */\n\tasync mediaFolderDelete(id: string): Promise<void> {\n\t\tawait this.request<unknown>(\"DELETE\", `/media/folders/${encodeURIComponent(id)}`);\n\t}\n\n\t/** Assign media to a folder, or return it to the Main library */\n\tasync mediaSetFolder(id: string, folderId: string | null): Promise<MediaFolderAssignment> {\n\t\tconst data = await this.request<{ item: MediaFolderAssignment }>(\n\t\t\t\"PUT\",\n\t\t\t`/media/${encodeURIComponent(id)}`,\n\t\t\t{ folderId },\n\t\t);\n\t\treturn { id: data.item.id, folderId: data.item.folderId };\n\t}\n\n\t/** Get entry-grouped usage details for a media item */\n\tasync mediaGetUsage(\n\t\tid: string,\n\t\toptions?: { limit?: number; cursor?: string },\n\t): Promise<MediaUsageDetailsResponse> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.limit !== undefined) params.set(\"limit\", String(options.limit));\n\t\tif (options?.cursor !== undefined) params.set(\"cursor\", options.cursor);\n\n\t\tconst qs = params.toString();\n\t\treturn this.request<MediaUsageDetailsResponse>(\n\t\t\t\"GET\",\n\t\t\t`/media/${encodeURIComponent(id)}/usage${qs ? `?${qs}` : \"\"}`,\n\t\t);\n\t}\n\n\t/** Upload a media file */\n\tasync mediaUpload(\n\t\tfile: Uint8Array | Blob,\n\t\tfilename: string,\n\t\toptions?: { alt?: string; caption?: string; contentType?: string },\n\t): Promise<MediaItem> {\n\t\tconst formData = new FormData();\n\n\t\t// Handle different file types\n\t\tif (file instanceof Blob) {\n\t\t\tformData.append(\"file\", file, filename);\n\t\t} else {\n\t\t\tconst mimeType = options?.contentType ?? mimeFromFilename(filename);\n\t\t\tformData.append(\"file\", new Blob([file as BlobPart], { type: mimeType }), filename);\n\t\t}\n\n\t\tif (options?.alt) formData.append(\"alt\", options.alt);\n\t\tif (options?.caption) formData.append(\"caption\", options.caption);\n\n\t\tconst url = `${this.baseUrl}/_emdash/api/media`;\n\t\tconst request = new Request(url, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: formData,\n\t\t});\n\n\t\tconst response = await this.transport.fetch(request);\n\t\tawait this.assertOk(response);\n\n\t\tconst raw = (await response.json()) as { data: { item: MediaItem } };\n\t\treturn raw.data.item;\n\t}\n\n\t/** Delete a media item */\n\tasync mediaDelete(id: string): Promise<void> {\n\t\tawait this.request<unknown>(\"DELETE\", `/media/${encodeURIComponent(id)}`);\n\t}\n\n\t/** Repair content media usage indexes for one collection or all collections */\n\tasync mediaRepairUsage(input: MediaUsageRepairInput): Promise<MediaUsageRepairResponse> {\n\t\treturn this.request<MediaUsageRepairResponse>(\"POST\", \"/admin/media-usage/repair\", input);\n\t}\n\n\t/** Read aggregate Media Usage indexing progress */\n\tasync mediaGetUsageProgress(): Promise<MediaUsageProgress> {\n\t\treturn this.request<MediaUsageProgress>(\"GET\", \"/admin/media-usage/progress\");\n\t}\n\n\t/** Advance exactly one Media Usage maintenance step */\n\tasync mediaAdvanceUsageProgress(): Promise<MediaUsageProgressAdvanceResponse> {\n\t\treturn this.request<MediaUsageProgressAdvanceResponse>(\"POST\", \"/admin/media-usage/progress\");\n\t}\n\n\t/** Read the redacted controlled-activation status */\n\tasync mediaGetUsageActivation(): Promise<MediaUsageActivationStatus> {\n\t\treturn this.request<MediaUsageActivationStatus>(\"GET\", \"/admin/media-usage/activation\");\n\t}\n\n\t/** Advance exactly one controlled-activation batch */\n\tasync mediaAdvanceUsageActivation(\n\t\tinput: MediaUsageActivationAdvanceInput,\n\t): Promise<MediaUsageActivationAdvanceResponse> {\n\t\treturn this.request<MediaUsageActivationAdvanceResponse>(\n\t\t\t\"POST\",\n\t\t\t\"/admin/media-usage/activation\",\n\t\t\tinput,\n\t\t);\n\t}\n\n\t/** List a bounded page of durable media usage entry work */\n\tasync mediaListUsageWork(\n\t\toptions: MediaUsageWorkListOptions,\n\t): Promise<MediaUsageWorkListResponse> {\n\t\tconst params = new URLSearchParams({ collection: options.collection });\n\t\tif (options.state) params.set(\"state\", options.state);\n\t\tif (options.limit !== undefined) params.set(\"limit\", String(options.limit));\n\t\tif (options.cursor) params.set(\"cursor\", options.cursor);\n\t\treturn this.request<MediaUsageWorkListResponse>(\"GET\", `/admin/media-usage/work?${params}`);\n\t}\n\n\t/** Explicitly retry one durable media usage entry job */\n\tasync mediaRetryUsageWork(input: MediaUsageWorkRetryInput): Promise<MediaUsageWorkRetryResponse> {\n\t\treturn this.request<MediaUsageWorkRetryResponse>(\n\t\t\t\"POST\",\n\t\t\t\"/admin/media-usage/work/retry\",\n\t\t\tinput,\n\t\t);\n\t}\n\n\tasync mediaListCollectionDeletions(\n\t\toptions: {\n\t\t\tstate?: MediaUsageCollectionDeletionState;\n\t\t\tlimit?: number;\n\t\t\tcursor?: string;\n\t\t} = {},\n\t): Promise<MediaUsageCollectionDeletionListResponse> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options.state) params.set(\"state\", options.state);\n\t\tif (options.limit !== undefined) params.set(\"limit\", String(options.limit));\n\t\tif (options.cursor) params.set(\"cursor\", options.cursor);\n\t\treturn this.request(\"GET\", `/admin/media-usage/collection-deletions?${params}`);\n\t}\n\n\tasync mediaRetryCollectionDeletion(collectionId: string): Promise<{\n\t\tchanged: boolean;\n\t\titem: MediaUsageCollectionDeletionItem;\n\t}> {\n\t\treturn this.request(\"POST\", \"/admin/media-usage/collection-deletions/retry\", {\n\t\t\tcollectionId,\n\t\t});\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Search\n\t// -----------------------------------------------------------------------\n\n\t/** Full-text search */\n\tasync search(\n\t\tquery: string,\n\t\toptions?: { collection?: string; locale?: string; limit?: number },\n\t): Promise<SearchResult[]> {\n\t\tconst params = new URLSearchParams({ q: query });\n\t\tif (options?.collection) params.set(\"collections\", options.collection);\n\t\tif (options?.locale) params.set(\"locale\", options.locale);\n\t\tif (options?.limit) params.set(\"limit\", String(options.limit));\n\n\t\tconst data = await this.request<{ items: SearchResult[] }>(\"GET\", `/search?${params}`);\n\t\treturn data.items;\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Taxonomies\n\t// -----------------------------------------------------------------------\n\n\t/** List taxonomies */\n\tasync taxonomies(): Promise<Taxonomy[]> {\n\t\tconst data = await this.request<{ taxonomies: Taxonomy[] }>(\"GET\", \"/taxonomies\");\n\t\treturn data.taxonomies;\n\t}\n\n\t/**\n\t * List terms in a taxonomy. Visible-usage counts are included by default.\n\t * Pass `includeCounts: false` to skip the aggregate; `count` is then omitted\n\t * from each term.\n\t */\n\tasync terms(\n\t\ttaxonomy: string,\n\t\toptions?: { limit?: number; cursor?: string; includeCounts?: boolean },\n\t): Promise<ListResult<Term>> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.limit) params.set(\"limit\", String(options.limit));\n\t\tif (options?.cursor) params.set(\"cursor\", options.cursor);\n\t\tif (options?.includeCounts !== undefined)\n\t\t\tparams.set(\"includeCounts\", String(options.includeCounts));\n\n\t\tconst qs = params.toString();\n\t\tconst data = await this.request<{ terms: Term[] }>(\n\t\t\t\"GET\",\n\t\t\t`/taxonomies/${encodeURIComponent(taxonomy)}/terms${qs ? `?${qs}` : \"\"}`,\n\t\t);\n\t\treturn { items: data.terms };\n\t}\n\n\t/** Create a taxonomy term */\n\tasync createTerm(\n\t\ttaxonomy: string,\n\t\tinput: { slug: string; label: string; parentId?: string; description?: string },\n\t): Promise<Term> {\n\t\treturn this.request<Term>(\"POST\", `/taxonomies/${encodeURIComponent(taxonomy)}/terms`, input);\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Menus\n\t// -----------------------------------------------------------------------\n\n\t/** List menus */\n\tasync menus(): Promise<Menu[]> {\n\t\t// Handler returns a bare array, not { items: [...] }\n\t\treturn this.request<Menu[]>(\"GET\", \"/menus\");\n\t}\n\n\t/** Get a menu with its items */\n\tasync menu(name: string): Promise<MenuWithItems> {\n\t\treturn this.request<MenuWithItems>(\"GET\", `/menus/${encodeURIComponent(name)}`);\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Users\n\t// -----------------------------------------------------------------------\n\n\t/** List users (admin only) */\n\tasync users(options?: {\n\t\tsearch?: string;\n\t\tlimit?: number;\n\t\tcursor?: string;\n\t}): Promise<ListResult<UserSummary>> {\n\t\tconst params = new URLSearchParams();\n\t\tif (options?.search) params.set(\"search\", options.search);\n\t\tif (options?.limit) params.set(\"limit\", String(options.limit));\n\t\tif (options?.cursor) params.set(\"cursor\", options.cursor);\n\t\tconst qs = params.toString();\n\t\treturn this.request<ListResult<UserSummary>>(\"GET\", `/admin/users${qs ? `?${qs}` : \"\"}`);\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Site transfer\n\t// -----------------------------------------------------------------------\n\n\t/** Formats, features, limits, and whether this site can receive an import */\n\tasync transferCapabilities(): Promise<TransferCapabilities> {\n\t\treturn this.request<TransferCapabilities>(\"GET\", \"/admin/transfer/capabilities\");\n\t}\n\n\t/**\n\t * Start a site export. With an idempotency key, repeating the call returns\n\t * the export first created with that key.\n\t */\n\tasync transferExportCreate(\n\t\toptions: { comments?: boolean } = {},\n\t\trequest: { idempotencyKey?: string } = {},\n\t): Promise<{ operation: TransferOperation; created: boolean }> {\n\t\treturn this.request(\"POST\", \"/admin/transfer/exports\", options, idempotencyHeader(request));\n\t}\n\n\t/** List exports, newest first */\n\tasync transferExportList(options?: {\n\t\tlimit?: number;\n\t\tcursor?: string;\n\t}): Promise<ListResult<TransferOperation>> {\n\t\treturn this.request(\"GET\", `/admin/transfer/exports${pageQuery(options)}`);\n\t}\n\n\tasync transferExportGet(id: string): Promise<{ operation: TransferOperation }> {\n\t\treturn this.request(\"GET\", `/admin/transfer/exports/${encodeURIComponent(id)}`);\n\t}\n\n\t/** Run one bounded export step */\n\tasync transferExportAdvance(id: string): Promise<TransferAdvanceResult> {\n\t\treturn this.request(\"POST\", `/admin/transfer/exports/${encodeURIComponent(id)}/advance`);\n\t}\n\n\t/** The complete export's `manifest.json`, byte for byte */\n\tasync transferExportManifest(id: string): Promise<Uint8Array> {\n\t\tconst response = await this.requestRaw(\n\t\t\t\"GET\",\n\t\t\t`/admin/transfer/exports/${encodeURIComponent(id)}/manifest`,\n\t\t);\n\t\tawait this.assertOk(response);\n\t\treturn new Uint8Array(await response.arrayBuffer());\n\t}\n\n\t/**\n\t * Stream one file of a complete export. The server ends the stream with an\n\t * error if the stored bytes no longer match the export, so callers must\n\t * still check the size and digest of what they receive.\n\t */\n\tasync transferExportFile(id: string, path: string): Promise<TransferFileDownload> {\n\t\tconst response = await this.requestRaw(\n\t\t\t\"GET\",\n\t\t\t`/admin/transfer/exports/${encodeURIComponent(id)}/files/${encodePackagePath(path)}`,\n\t\t);\n\t\tawait this.assertOk(response);\n\t\tif (!response.body) throw new EmDashClientError(`Empty response for ${path}`);\n\t\tconst length = response.headers.get(\"Content-Length\");\n\t\tconst etag = response.headers.get(\"ETag\");\n\t\treturn {\n\t\t\tbody: response.body,\n\t\t\tbytes: length !== null && DECIMAL_PATTERN.test(length) ? Number(length) : null,\n\t\t\tsha256: etag ? (SHA256_ETAG_PATTERN.exec(etag)?.[1] ?? null) : null,\n\t\t};\n\t}\n\n\t/**\n\t * Create an import from a package's `manifest.json` bytes. With an\n\t * idempotency key, repeating the call with the same manifest returns the\n\t * import first created with that key.\n\t */\n\tasync transferImportCreate(\n\t\tmanifest: Uint8Array,\n\t\trequest: { idempotencyKey?: string } = {},\n\t): Promise<TransferImportCreateResult> {\n\t\tconst response = await this.send(\"POST\", \"/admin/transfer/imports\", {\n\t\t\tbody: manifest,\n\t\t\theaders: { \"Content-Type\": \"application/json\", ...idempotencyHeader(request) },\n\t\t});\n\t\tawait this.assertOk(response);\n\t\tconst json = (await response.json()) as { data: TransferImportCreateResult };\n\t\treturn json.data;\n\t}\n\n\t/** List imports, newest first */\n\tasync transferImportList(options?: {\n\t\tlimit?: number;\n\t\tcursor?: string;\n\t}): Promise<ListResult<TransferOperation>> {\n\t\treturn this.request(\"GET\", `/admin/transfer/imports${pageQuery(options)}`);\n\t}\n\n\tasync transferImportGet(id: string): Promise<TransferImportStatus> {\n\t\treturn this.request(\"GET\", `/admin/transfer/imports/${encodeURIComponent(id)}`);\n\t}\n\n\t/** Declared package files not uploaded yet, in path order */\n\tasync transferImportMissing(\n\t\tid: string,\n\t\toptions?: { limit?: number; cursor?: string },\n\t): Promise<ListResult<TransferPackageFile>> {\n\t\treturn this.request(\n\t\t\t\"GET\",\n\t\t\t`/admin/transfer/imports/${encodeURIComponent(id)}/missing${pageQuery(options)}`,\n\t\t);\n\t}\n\n\t/**\n\t * Upload one declared package file. `bytes` must be the file's exact size;\n\t * a stream body is sent with that `Content-Length`.\n\t */\n\tasync transferImportUploadFile(\n\t\tid: string,\n\t\tpath: string,\n\t\tbody: Uint8Array | ReadableStream<Uint8Array>,\n\t\tbytes: number,\n\t): Promise<TransferFileUploadResult> {\n\t\tconst response = await this.send(\n\t\t\t\"PUT\",\n\t\t\t`/admin/transfer/imports/${encodeURIComponent(id)}/files/${encodePackagePath(path)}`,\n\t\t\t{\n\t\t\t\tbody,\n\t\t\t\theaders: {\n\t\t\t\t\t\"Content-Type\": \"application/octet-stream\",\n\t\t\t\t\t\"Content-Length\": String(bytes),\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\tawait this.assertOk(response);\n\t\tconst json = (await response.json()) as { data: TransferFileUploadResult };\n\t\treturn json.data;\n\t}\n\n\t/**\n\t * Run one bounded analysis step. Once the import is planned the result\n\t * carries the plan; `decisions` are then applied, producing a new plan\n\t * digest.\n\t */\n\tasync transferImportAnalyze(\n\t\tid: string,\n\t\tdecisions?: SiteImportDecisionsInput,\n\t): Promise<TransferImportAnalyzeResult> {\n\t\treturn this.request(\n\t\t\t\"POST\",\n\t\t\t`/admin/transfer/imports/${encodeURIComponent(id)}/analyze`,\n\t\t\tdecisions === undefined ? undefined : { decisions },\n\t\t);\n\t}\n\n\tasync transferImportPlan(\n\t\tid: string,\n\t): Promise<{ plan: SiteImportPlan; planDigest: Sha256Digest }> {\n\t\treturn this.request(\"GET\", `/admin/transfer/imports/${encodeURIComponent(id)}/plan`);\n\t}\n\n\t/** Start a planned import. Both digests must match the reviewed package and plan. */\n\tasync transferImportExecute(\n\t\tid: string,\n\t\tinput: { packageDigest: string; planDigest: string },\n\t): Promise<{ operation: TransferOperation }> {\n\t\treturn this.request(\"POST\", `/admin/transfer/imports/${encodeURIComponent(id)}/execute`, {\n\t\t\tpackageDigest: input.packageDigest,\n\t\t\tplanDigest: input.planDigest,\n\t\t});\n\t}\n\n\t/** Run one bounded step of an executing import */\n\tasync transferImportAdvance(id: string): Promise<TransferAdvanceResult> {\n\t\treturn this.request(\"POST\", `/admin/transfer/imports/${encodeURIComponent(id)}/advance`);\n\t}\n\n\tasync transferImportReceipt(id: string): Promise<{ receipt: SiteImportReceipt }> {\n\t\treturn this.request(\"GET\", `/admin/transfer/imports/${encodeURIComponent(id)}/receipt`);\n\t}\n\n\t/**\n\t * Cancel an import. An idle import is cancelled at once; a step in\n\t * progress stops after its current batch, so the returned operation may\n\t * still be executing with `cancelRequestedAt` set.\n\t */\n\tasync transferImportCancel(id: string): Promise<{ operation: TransferOperation }> {\n\t\treturn this.request(\"POST\", `/admin/transfer/imports/${encodeURIComponent(id)}/cancel`);\n\t}\n\n\t/**\n\t * Abandon a failed or cancelled import, lifting the site write fence it\n\t * holds. Data the import already wrote stays in place.\n\t */\n\tasync transferImportAbandon(id: string): Promise<{ operation: TransferOperation }> {\n\t\treturn this.request(\"POST\", `/admin/transfer/imports/${encodeURIComponent(id)}/abandon`);\n\t}\n\n\t// -----------------------------------------------------------------------\n\t// Internal helpers\n\t// -----------------------------------------------------------------------\n\n\t/** Make a typed JSON request to the API */\n\tprivate async request<T>(\n\t\tmethod: string,\n\t\tpath: string,\n\t\tbody?: unknown,\n\t\textraHeaders?: Record<string, string>,\n\t): Promise<T> {\n\t\tconst response = await this.requestRaw(method, path, body, extraHeaders);\n\t\tawait this.assertOk(response);\n\t\tconst json = (await response.json()) as { data: T };\n\t\treturn json.data;\n\t}\n\n\t/** Make a raw request — caller handles response */\n\tprivate async requestRaw(\n\t\tmethod: string,\n\t\tpath: string,\n\t\tbody?: unknown,\n\t\textraHeaders?: Record<string, string>,\n\t): Promise<Response> {\n\t\tconst headers: Record<string, string> = { ...extraHeaders };\n\n\t\tlet requestBody: string | undefined;\n\t\tif (body !== undefined) {\n\t\t\theaders[\"Content-Type\"] = \"application/json\";\n\t\t\trequestBody = JSON.stringify(body);\n\t\t}\n\n\t\treturn this.send(method, path, { body: requestBody, headers });\n\t}\n\n\t/** Send a request with an arbitrary body; the caller handles the response */\n\tprivate async send(\n\t\tmethod: string,\n\t\tpath: string,\n\t\tinit: {\n\t\t\tbody?: string | Uint8Array | ReadableStream<Uint8Array>;\n\t\t\theaders?: Record<string, string>;\n\t\t},\n\t): Promise<Response> {\n\t\tconst url = `${this.baseUrl}/_emdash/api${path}`;\n\t\tconst request = new Request(url, {\n\t\t\tmethod,\n\t\t\theaders: { Accept: \"application/json\", ...init.headers },\n\t\t\tbody: init.body as BodyInit | undefined,\n\t\t\t...(init.body instanceof ReadableStream ? { duplex: \"half\" } : {}),\n\t\t});\n\n\t\treturn this.transport.fetch(request);\n\t}\n\n\t/** Assert a response is OK, throw typed error if not */\n\tprivate async assertOk(response: Response): Promise<void> {\n\t\tif (response.ok) return;\n\n\t\tlet code = \"UNKNOWN_ERROR\";\n\t\tlet message = `HTTP ${response.status}`;\n\t\tlet details: Record<string, unknown> | undefined;\n\n\t\ttry {\n\t\t\tconst json = (await response.json()) as {\n\t\t\t\terror?: { code?: string; message?: string; details?: Record<string, unknown> };\n\t\t\t};\n\t\t\tif (json.error) {\n\t\t\t\tcode = json.error.code ?? code;\n\t\t\t\tmessage = json.error.message ?? message;\n\t\t\t\tdetails = json.error.details;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Response body isn't JSON — use status text\n\t\t\tmessage = response.statusText || message;\n\t\t}\n\n\t\tthrow new EmDashApiError(response.status, code, message, details);\n\t}\n\n\t/** Get cached field schemas for a collection, fetching if needed */\n\tprivate async getFieldSchemas(collection: string): Promise<FieldSchema[]> {\n\t\tlet cached = this.fieldSchemaCache.get(collection);\n\t\tif (cached) return cached;\n\n\t\ttry {\n\t\t\tconst col = await this.collection(collection);\n\t\t\tcached = col.fields.map((f) => ({ slug: f.slug, type: f.type, blockTypes: f.blockTypes }));\n\t\t\tthis.fieldSchemaCache.set(collection, cached);\n\t\t\treturn cached;\n\t\t} catch {\n\t\t\t// If we can't fetch the schema, skip conversion\n\t\t\treturn [];\n\t\t}\n\t}\n}\n\ntype _AssertTrue<T extends true> = T;\ntype _MediaRepairUsageRequiresExplicitInput = _AssertTrue<\n\tParameters<EmDashClient[\"mediaRepairUsage\"]> extends [MediaUsageRepairInput] ? true : false\n>;\n\nexport type { SiteImportDecisionsInput, SiteImportPlan, SiteImportReceipt, Sha256Digest };\n\n// Re-export transport types for interceptor authors\nexport type { Interceptor } from \"./transport.js\";\nexport {\n\tcreateTransport,\n\tcsrfInterceptor,\n\ttokenInterceptor,\n\tdevBypassInterceptor,\n} from \"./transport.js\";\nexport { portableTextToMarkdown, markdownToPortableText } from \"./portable-text.js\";\nexport type { PortableTextBlock } from \"./portable-text.js\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,yBAAyB;AAC/B,MAAM,kBAAkB;AACxB,MAAM,sBAAsB;AAM5B,SAAS,iBAAiB,UAA0B;AACnD,QAAO,KAAK,QAAQ,SAAS,IAAI;;AAGlC,SAAS,kBAAkB,SAA8D;AACxF,QAAO,QAAQ,mBAAmB,SAAY,EAAE,GAAG,EAAE,mBAAmB,QAAQ,gBAAgB;;AAGjG,SAAS,UAAU,SAAuD;CACzE,MAAM,SAAS,IAAI,iBAAiB;AACpC,KAAI,SAAS,UAAU,OAAW,QAAO,IAAI,SAAS,OAAO,QAAQ,MAAM,CAAC;AAC5E,KAAI,SAAS,WAAW,OAAW,QAAO,IAAI,UAAU,QAAQ,OAAO;CACvE,MAAM,KAAK,OAAO,UAAU;AAC5B,QAAO,KAAK,IAAI,OAAO;;;AAIxB,SAAS,kBAAkB,MAAsB;AAChD,QAAO,KAAK,MAAM,IAAI,CAAC,IAAI,mBAAmB,CAAC,KAAK,IAAI;;AAmfzD,IAAa,iBAAb,cAAoC,MAAM;CACzC,YACC,AAAgB,QAChB,AAAgB,MAChB,SACA,AAAgB,SACf;AACD,QAAM,QAAQ;EALE;EACA;EAEA;AAGhB,OAAK,OAAO;;;AAId,IAAa,oBAAb,cAAuC,MAAM;CAC5C,YAAY,SAAiB;AAC5B,QAAM,QAAQ;AACd,OAAK,OAAO;;;AAQd,IAAa,eAAb,MAA0B;CACzB,AAAiB;CACjB,AAAiB;;CAGjB,AAAQ,mCAAmB,IAAI,KAA4B;CAE3D,YAAY,SAA8B;AACzC,OAAK,UAAU,QAAQ,QAAQ,QAAQ,wBAAwB,GAAG;EAGlE,MAAM,eAA8B,CAAC,iBAAiB,CAAC;AAEvD,MAAI,QAAQ,MACX,cAAa,KAAK,iBAAiB,QAAQ,MAAM,CAAC;WACxC,QAAQ,UAClB,cAAa,KAAK,qBAAqB,KAAK,QAAQ,CAAC;AAItD,MAAI,QAAQ,aACX,cAAa,KACZ,mBAAmB;GAClB,cAAc,QAAQ;GACtB,eAAe,GAAG,KAAK,QAAQ;GAC/B,kBAAkB,QAAQ,kBACtB,aAAa,eAAe,cAAc;IAC3C,MAAM,YAAY,KAAK,OAAO,IAAI,KAAK,UAAU,CAAC,SAAS,GAAG,KAAK,KAAK,IAAI,IAAK;AACjF,YAAQ,eAAgB,aAAa,UAAU;OAE/C;GACH,CAAC,CACF;AAGF,MAAI,QAAQ,aACX,cAAa,KAAK,GAAG,QAAQ,aAAa;AAG3C,OAAK,YAAY,gBAAgB,EAAE,cAAc,CAAC;;;CAQnD,MAAM,cAAqC;AAE1C,UADa,MAAM,KAAK,QAAiC,OAAO,sBAAsB,EAC1E;;;CAIb,MAAM,WAAW,MAA6C;EAK7D,MAAM,OAJO,MAAM,KAAK,QACvB,OACA,uBAAuB,mBAAmB,KAAK,CAAC,qBAChD,EACgB;AAEjB,MAAI,IAAI,OACP,MAAK,iBAAiB,IACrB,MACA,IAAI,OAAO,KAAK,OAAO;GAAE,MAAM,EAAE;GAAM,MAAM,EAAE;GAAM,YAAY,EAAE;GAAY,EAAE,CACjF;AAEF,SAAO;;CAGR,MAAM,aAAmC;AAExC,UADa,MAAM,KAAK,QAAgC,OAAO,sBAAsB,EACzE;;CAGb,MAAM,UAAU,MAAkC;AAKjD,UAJa,MAAM,KAAK,QACvB,OACA,uBAAuB,mBAAmB,KAAK,GAC/C,EACW;;CAGb,MAAM,gBAAgB,OAAiD;AAEtE,UADa,MAAM,KAAK,QAA6B,QAAQ,uBAAuB,MAAM,EAC9E;;CAGb,MAAM,gBAAgB,MAAc,OAAiD;AAMpF,UALa,MAAM,KAAK,QACvB,OACA,uBAAuB,mBAAmB,KAAK,IAC/C,MACA,EACW;;CAGb,MAAM,yBACL,MACA,SACA,qBACqB;AAMrB,UALa,MAAM,KAAK,QACvB,QACA,uBAAuB,mBAAmB,KAAK,CAAC,YAAY,QAAQ,YACpE,EAAE,qBAAqB,CACvB,EACW;;;CAIb,MAAM,iBAAiB,OAOC;AAEvB,UADa,MAAM,KAAK,QAA8B,QAAQ,uBAAuB,MAAM,EAC/E;;;CAIb,MAAM,iBAAiB,MAA6B;AACnD,QAAM,KAAK,QAAiB,UAAU,uBAAuB,mBAAmB,KAAK,GAAG;;;CAIzF,MAAM,YACL,YACA,OAYiB;EACjB,MAAM,OAAO,MAAM,KAAK,QACvB,QACA,uBAAuB,mBAAmB,WAAW,CAAC,UACtD,MACA;AAED,OAAK,iBAAiB,OAAO,WAAW;AACxC,SAAO,KAAK;;;CAIb,MAAM,YAAY,YAAoB,WAAkC;AACvE,QAAM,KAAK,QACV,UACA,uBAAuB,mBAAmB,WAAW,CAAC,UAAU,mBAAmB,UAAU,GAC7F;AACD,OAAK,iBAAiB,OAAO,WAAW;;;CAIzC,MAAM,WAA8B;AACnC,SAAO,KAAK,QAAkB,OAAO,YAAY;;;CAIlD,MAAM,eAAsC;AAC3C,SAAO,KAAK,QAAsB,OAAO,UAAU;;;CAIpD,MAAM,cAA+B;EACpC,MAAM,WAAW,MAAM,KAAK,WAAW,OAAO,4BAA4B;AAC1E,QAAM,KAAK,SAAS,SAAS;AAC7B,SAAO,SAAS,MAAM;;;CAQvB,MAAM,KACL,YACA,SAUmC;EACnC,MAAM,SAAS,IAAI,iBAAiB;AACpC,MAAI,SAAS,OAAQ,QAAO,IAAI,UAAU,QAAQ,OAAO;AACzD,MAAI,SAAS,MAAO,QAAO,IAAI,SAAS,OAAO,QAAQ,MAAM,CAAC;AAC9D,MAAI,SAAS,OAAQ,QAAO,IAAI,UAAU,QAAQ,OAAO;AACzD,MAAI,SAAS,QAAS,QAAO,IAAI,WAAW,QAAQ,QAAQ;AAC5D,MAAI,SAAS,MAAO,QAAO,IAAI,SAAS,QAAQ,MAAM;AACtD,MAAI,SAAS,OAAQ,QAAO,IAAI,UAAU,QAAQ,OAAO;AACzD,MAAI,SAAS,gBAAgB,OAAO,KAAK,QAAQ,aAAa,CAAC,SAAS,EACvE,QAAO,IAAI,gBAAgB,KAAK,UAAU,QAAQ,aAAa,CAAC;EAGjE,MAAM,KAAK,OAAO,UAAU;EAC5B,MAAM,OAAO,YAAY,mBAAmB,WAAW,GAAG,KAAK,IAAI,OAAO;AAC1E,SAAO,KAAK,QAAiC,OAAO,KAAK;;;CAI1D,OAAO,QACN,YACA,SAS8B;EAC9B,IAAI;AACJ,KAAG;GACF,MAAM,SAAS,MAAM,KAAK,KAAK,YAAY;IAAE,GAAG;IAAS;IAAQ,CAAC;AAClE,QAAK,MAAM,QAAQ,OAAO,MACzB,OAAM;AAEP,YAAS,OAAO;WACR;;;;;;CAOV,MAAM,IACL,YACA,IACA,SACuB;EACvB,MAAM,SAAS,IAAI,iBAAiB;AACpC,MAAI,SAAS,OAAQ,QAAO,IAAI,UAAU,QAAQ,OAAO;EACzD,MAAM,KAAK,OAAO,OAAO,IAAI,IAAI,WAAW;EAC5C,MAAM,SAAS,MAAM,KAAK,WACzB,OACA,YAAY,mBAAmB,WAAW,CAAC,GAAG,mBAAmB,GAAG,GAAG,KACvE;AACD,MAAI,CAAC,OAAO,GACX,OAAM,KAAK,SAAS,OAAO;EAI5B,MAAM,QADO,MAAM,OAAO,MAAM,EACf;EACjB,MAAM,OAAO,KAAK;AAGlB,MAAI,KAAK,KACR,MAAK,OAAO,KAAK;AAIlB,MAAI,CAAC,SAAS,OAAO,KAAK,MAAM;GAC/B,MAAM,SAAS,MAAM,KAAK,gBAAgB,WAAW;AACrD,QAAK,OAAO,mBAAmB,KAAK,MAAM,QAAQ,MAAM;;AAGzD,SAAO;;;CAIR,MAAM,OACL,YACA,OASuB;EAEvB,MAAM,SAAS,MAAM,KAAK,gBAAgB,WAAW;EACrD,MAAM,OAAO,oBAAoB,MAAM,MAAM,OAAO;AAOpD,UALe,MAAM,KAAK,QACzB,QACA,YAAY,mBAAmB,WAAW,IAC1C;GAAE,GAAG;GAAO;GAAM,CAClB,EACa;;;;;;;CAQf,MAAM,OACL,YACA,IACA,OAWuB;EAEvB,IAAI,OAAO,MAAM;AACjB,MAAI,MAAM;GACT,MAAM,SAAS,MAAM,KAAK,gBAAgB,WAAW;AACrD,UAAO,oBAAoB,MAAM,OAAO;;EAGzC,MAAM,OAAO;GACZ;GACA,MAAM,MAAM;GACZ,QAAQ,MAAM;GACd,eAAe,MAAM;GACrB,eAAe,MAAM;GACrB,GAAI,MAAM,OAAO,EAAE,MAAM,MAAM,MAAM,GAAG,EAAE;GAC1C,GAAI,MAAM,eAAe,EAAE,cAAc,MAAM,GAAG,EAAE;GACpD;EACD,MAAM,SAAS,IAAI,iBAAiB;AACpC,MAAI,MAAM,OAAQ,QAAO,IAAI,UAAU,MAAM,OAAO;EACpD,MAAM,SAAS,MAAM,KAAK,QACzB,OACA,YAAY,mBAAmB,WAAW,CAAC,GAAG,mBAAmB,GAAG,GAAG,OAAO,UAAU,GAAG,IAAI,WAAW,MAC1G,KACA;EAED,MAAM,OAAO,OAAO;AACpB,MAAI,OAAO,KACV,MAAK,OAAO,OAAO;AAEpB,SAAO;;;CAIR,MAAM,OACL,YACA,IACA,UAAsC,EAAE,EACxB;EAChB,MAAM,QAAQ,QAAQ,eAAe,uBAAuB;AAC5D,QAAM,KAAK,QACV,UACA,YAAY,mBAAmB,WAAW,CAAC,GAAG,mBAAmB,GAAG,GAAG,QACvE;;;CAIF,MAAM,QACL,YACA,IACA,UAAsC,EAAE,EACxB;AAChB,QAAM,KAAK,QACV,QACA,YAAY,mBAAmB,WAAW,CAAC,GAAG,mBAAmB,GAAG,CAAC,WACrE,QAAQ,eAAe,EAAE,cAAc,MAAM,GAAG,OAChD;;;CAIF,MAAM,UACL,YACA,IACA,UAAsC,EAAE,EACxB;AAChB,QAAM,KAAK,QACV,QACA,YAAY,mBAAmB,WAAW,CAAC,GAAG,mBAAmB,GAAG,CAAC,aACrE,QAAQ,eAAe,EAAE,cAAc,MAAM,GAAG,OAChD;;;CAIF,MAAM,SACL,YACA,IACA,SACgB;AAChB,QAAM,KAAK,QACV,QACA,YAAY,mBAAmB,WAAW,CAAC,GAAG,mBAAmB,GAAG,CAAC,YACrE;GAAE,aAAa,QAAQ;GAAI,GAAI,QAAQ,eAAe,EAAE,cAAc,MAAM,GAAG,EAAE;GAAG,CACpF;;;CAIF,MAAM,QAAQ,YAAoB,IAA2B;AAC5D,QAAM,KAAK,QACV,QACA,YAAY,mBAAmB,WAAW,CAAC,GAAG,mBAAmB,GAAG,CAAC,UACrE;;;CAIF,MAAM,QACL,YACA,IAKE;AACF,SAAO,KAAK,QAIT,OAAO,YAAY,mBAAmB,WAAW,CAAC,GAAG,mBAAmB,GAAG,CAAC,UAAU;;;CAI1F,MAAM,aACL,YACA,IACA,UAAsC,EAAE,EACxB;AAChB,QAAM,KAAK,QACV,QACA,YAAY,mBAAmB,WAAW,CAAC,GAAG,mBAAmB,GAAG,CAAC,iBACrE,QAAQ,eAAe,EAAE,cAAc,MAAM,GAAG,OAChD;;;;;;CAOF,MAAM,aACL,YACA,IAUE;AACF,SAAO,KAAK,QACX,OACA,YAAY,mBAAmB,WAAW,CAAC,GAAG,mBAAmB,GAAG,CAAC,eACrE;;;CAQF,MAAM,UAAU,SAO6C;EAC5D,MAAM,SAAS,IAAI,iBAAiB;AACpC,MAAI,SAAS,SAAU,QAAO,IAAI,YAAY,QAAQ,SAAS;AAC/D,MAAI,SAAS,MAAO,QAAO,IAAI,SAAS,OAAO,QAAQ,MAAM,CAAC;AAC9D,MAAI,SAAS,OAAQ,QAAO,IAAI,UAAU,QAAQ,OAAO;AACzD,MAAI,SAAS,SAAS,OAAW,QAAO,IAAI,QAAQ,OAAO,QAAQ,KAAK,CAAC;AACzE,MAAI,SAAS,iBAAiB,KAAM,QAAO,IAAI,gBAAgB,IAAI;AACnE,MAAI,SAAS,aAAa,KACzB,QAAO,IAAI,YAAY,UAAU;WACvB,SAAS,aAAa,OAChC,QAAO,IAAI,YAAY,QAAQ,SAAS;EAGzC,MAAM,KAAK,OAAO,UAAU;AAC5B,SAAO,KAAK,QACX,OACA,SAAS,KAAK,IAAI,OAAO,KACzB;;;CAIF,MAAM,SAAS,IAAY,SAA0D;EACpF,MAAM,SAAS,IAAI,iBAAiB;AACpC,MAAI,SAAS,iBAAiB,KAAM,QAAO,IAAI,gBAAgB,IAAI;EAEnE,MAAM,KAAK,OAAO,UAAU;AAK5B,UAJa,MAAM,KAAK,QACvB,OACA,UAAU,mBAAmB,GAAG,GAAG,KAAK,IAAI,OAAO,KACnD,EACW;;;CAIb,MAAM,gBACL,UAA2D,EAAE,EAC1B;EACnC,MAAM,SAAS,IAAI,iBAAiB;AACpC,MAAI,QAAQ,UAAU,OAAW,QAAO,IAAI,SAAS,OAAO,QAAQ,MAAM,CAAC;AAC3E,MAAI,QAAQ,WAAW,OAAW,QAAO,IAAI,UAAU,QAAQ,OAAO;AACtE,MAAI,QAAQ,MAAM,OAAW,QAAO,IAAI,KAAK,QAAQ,EAAE;EACvD,MAAM,KAAK,OAAO,UAAU;AAC5B,SAAO,KAAK,QAAiC,OAAO,iBAAiB,KAAK,IAAI,OAAO,KAAK;;;CAI3F,MAAM,eAAe,IAAkC;AAKtD,UAJa,MAAM,KAAK,QACvB,OACA,kBAAkB,mBAAmB,GAAG,GACxC,EACW;;;CAIb,MAAM,kBAAkB,MAAoC;AAE3D,UADa,MAAM,KAAK,QAA+B,QAAQ,kBAAkB,EAAE,MAAM,CAAC,EAC9E;;;CAIb,MAAM,kBAAkB,IAAY,MAAoC;AAMvE,UALa,MAAM,KAAK,QACvB,OACA,kBAAkB,mBAAmB,GAAG,IACxC,EAAE,MAAM,CACR,EACW;;;CAIb,MAAM,kBAAkB,IAA2B;AAClD,QAAM,KAAK,QAAiB,UAAU,kBAAkB,mBAAmB,GAAG,GAAG;;;CAIlF,MAAM,eAAe,IAAY,UAAyD;EACzF,MAAM,OAAO,MAAM,KAAK,QACvB,OACA,UAAU,mBAAmB,GAAG,IAChC,EAAE,UAAU,CACZ;AACD,SAAO;GAAE,IAAI,KAAK,KAAK;GAAI,UAAU,KAAK,KAAK;GAAU;;;CAI1D,MAAM,cACL,IACA,SACqC;EACrC,MAAM,SAAS,IAAI,iBAAiB;AACpC,MAAI,SAAS,UAAU,OAAW,QAAO,IAAI,SAAS,OAAO,QAAQ,MAAM,CAAC;AAC5E,MAAI,SAAS,WAAW,OAAW,QAAO,IAAI,UAAU,QAAQ,OAAO;EAEvE,MAAM,KAAK,OAAO,UAAU;AAC5B,SAAO,KAAK,QACX,OACA,UAAU,mBAAmB,GAAG,CAAC,QAAQ,KAAK,IAAI,OAAO,KACzD;;;CAIF,MAAM,YACL,MACA,UACA,SACqB;EACrB,MAAM,WAAW,IAAI,UAAU;AAG/B,MAAI,gBAAgB,KACnB,UAAS,OAAO,QAAQ,MAAM,SAAS;OACjC;GACN,MAAM,WAAW,SAAS,eAAe,iBAAiB,SAAS;AACnE,YAAS,OAAO,QAAQ,IAAI,KAAK,CAAC,KAAiB,EAAE,EAAE,MAAM,UAAU,CAAC,EAAE,SAAS;;AAGpF,MAAI,SAAS,IAAK,UAAS,OAAO,OAAO,QAAQ,IAAI;AACrD,MAAI,SAAS,QAAS,UAAS,OAAO,WAAW,QAAQ,QAAQ;EAEjE,MAAM,MAAM,GAAG,KAAK,QAAQ;EAC5B,MAAM,UAAU,IAAI,QAAQ,KAAK;GAChC,QAAQ;GACR,MAAM;GACN,CAAC;EAEF,MAAM,WAAW,MAAM,KAAK,UAAU,MAAM,QAAQ;AACpD,QAAM,KAAK,SAAS,SAAS;AAG7B,UADa,MAAM,SAAS,MAAM,EACvB,KAAK;;;CAIjB,MAAM,YAAY,IAA2B;AAC5C,QAAM,KAAK,QAAiB,UAAU,UAAU,mBAAmB,GAAG,GAAG;;;CAI1E,MAAM,iBAAiB,OAAiE;AACvF,SAAO,KAAK,QAAkC,QAAQ,6BAA6B,MAAM;;;CAI1F,MAAM,wBAAqD;AAC1D,SAAO,KAAK,QAA4B,OAAO,8BAA8B;;;CAI9E,MAAM,4BAAwE;AAC7E,SAAO,KAAK,QAA2C,QAAQ,8BAA8B;;;CAI9F,MAAM,0BAA+D;AACpE,SAAO,KAAK,QAAoC,OAAO,gCAAgC;;;CAIxF,MAAM,4BACL,OAC+C;AAC/C,SAAO,KAAK,QACX,QACA,iCACA,MACA;;;CAIF,MAAM,mBACL,SACsC;EACtC,MAAM,SAAS,IAAI,gBAAgB,EAAE,YAAY,QAAQ,YAAY,CAAC;AACtE,MAAI,QAAQ,MAAO,QAAO,IAAI,SAAS,QAAQ,MAAM;AACrD,MAAI,QAAQ,UAAU,OAAW,QAAO,IAAI,SAAS,OAAO,QAAQ,MAAM,CAAC;AAC3E,MAAI,QAAQ,OAAQ,QAAO,IAAI,UAAU,QAAQ,OAAO;AACxD,SAAO,KAAK,QAAoC,OAAO,2BAA2B,SAAS;;;CAI5F,MAAM,oBAAoB,OAAuE;AAChG,SAAO,KAAK,QACX,QACA,iCACA,MACA;;CAGF,MAAM,6BACL,UAII,EAAE,EAC8C;EACpD,MAAM,SAAS,IAAI,iBAAiB;AACpC,MAAI,QAAQ,MAAO,QAAO,IAAI,SAAS,QAAQ,MAAM;AACrD,MAAI,QAAQ,UAAU,OAAW,QAAO,IAAI,SAAS,OAAO,QAAQ,MAAM,CAAC;AAC3E,MAAI,QAAQ,OAAQ,QAAO,IAAI,UAAU,QAAQ,OAAO;AACxD,SAAO,KAAK,QAAQ,OAAO,2CAA2C,SAAS;;CAGhF,MAAM,6BAA6B,cAGhC;AACF,SAAO,KAAK,QAAQ,QAAQ,iDAAiD,EAC5E,cACA,CAAC;;;CAQH,MAAM,OACL,OACA,SAC0B;EAC1B,MAAM,SAAS,IAAI,gBAAgB,EAAE,GAAG,OAAO,CAAC;AAChD,MAAI,SAAS,WAAY,QAAO,IAAI,eAAe,QAAQ,WAAW;AACtE,MAAI,SAAS,OAAQ,QAAO,IAAI,UAAU,QAAQ,OAAO;AACzD,MAAI,SAAS,MAAO,QAAO,IAAI,SAAS,OAAO,QAAQ,MAAM,CAAC;AAG9D,UADa,MAAM,KAAK,QAAmC,OAAO,WAAW,SAAS,EAC1E;;;CAQb,MAAM,aAAkC;AAEvC,UADa,MAAM,KAAK,QAAoC,OAAO,cAAc,EACrE;;;;;;;CAQb,MAAM,MACL,UACA,SAC4B;EAC5B,MAAM,SAAS,IAAI,iBAAiB;AACpC,MAAI,SAAS,MAAO,QAAO,IAAI,SAAS,OAAO,QAAQ,MAAM,CAAC;AAC9D,MAAI,SAAS,OAAQ,QAAO,IAAI,UAAU,QAAQ,OAAO;AACzD,MAAI,SAAS,kBAAkB,OAC9B,QAAO,IAAI,iBAAiB,OAAO,QAAQ,cAAc,CAAC;EAE3D,MAAM,KAAK,OAAO,UAAU;AAK5B,SAAO,EAAE,QAJI,MAAM,KAAK,QACvB,OACA,eAAe,mBAAmB,SAAS,CAAC,QAAQ,KAAK,IAAI,OAAO,KACpE,EACoB,OAAO;;;CAI7B,MAAM,WACL,UACA,OACgB;AAChB,SAAO,KAAK,QAAc,QAAQ,eAAe,mBAAmB,SAAS,CAAC,SAAS,MAAM;;;CAQ9F,MAAM,QAAyB;AAE9B,SAAO,KAAK,QAAgB,OAAO,SAAS;;;CAI7C,MAAM,KAAK,MAAsC;AAChD,SAAO,KAAK,QAAuB,OAAO,UAAU,mBAAmB,KAAK,GAAG;;;CAQhF,MAAM,MAAM,SAIyB;EACpC,MAAM,SAAS,IAAI,iBAAiB;AACpC,MAAI,SAAS,OAAQ,QAAO,IAAI,UAAU,QAAQ,OAAO;AACzD,MAAI,SAAS,MAAO,QAAO,IAAI,SAAS,OAAO,QAAQ,MAAM,CAAC;AAC9D,MAAI,SAAS,OAAQ,QAAO,IAAI,UAAU,QAAQ,OAAO;EACzD,MAAM,KAAK,OAAO,UAAU;AAC5B,SAAO,KAAK,QAAiC,OAAO,eAAe,KAAK,IAAI,OAAO,KAAK;;;CAQzF,MAAM,uBAAsD;AAC3D,SAAO,KAAK,QAA8B,OAAO,+BAA+B;;;;;;CAOjF,MAAM,qBACL,UAAkC,EAAE,EACpC,UAAuC,EAAE,EACqB;AAC9D,SAAO,KAAK,QAAQ,QAAQ,2BAA2B,SAAS,kBAAkB,QAAQ,CAAC;;;CAI5F,MAAM,mBAAmB,SAGkB;AAC1C,SAAO,KAAK,QAAQ,OAAO,0BAA0B,UAAU,QAAQ,GAAG;;CAG3E,MAAM,kBAAkB,IAAuD;AAC9E,SAAO,KAAK,QAAQ,OAAO,2BAA2B,mBAAmB,GAAG,GAAG;;;CAIhF,MAAM,sBAAsB,IAA4C;AACvE,SAAO,KAAK,QAAQ,QAAQ,2BAA2B,mBAAmB,GAAG,CAAC,UAAU;;;CAIzF,MAAM,uBAAuB,IAAiC;EAC7D,MAAM,WAAW,MAAM,KAAK,WAC3B,OACA,2BAA2B,mBAAmB,GAAG,CAAC,WAClD;AACD,QAAM,KAAK,SAAS,SAAS;AAC7B,SAAO,IAAI,WAAW,MAAM,SAAS,aAAa,CAAC;;;;;;;CAQpD,MAAM,mBAAmB,IAAY,MAA6C;EACjF,MAAM,WAAW,MAAM,KAAK,WAC3B,OACA,2BAA2B,mBAAmB,GAAG,CAAC,SAAS,kBAAkB,KAAK,GAClF;AACD,QAAM,KAAK,SAAS,SAAS;AAC7B,MAAI,CAAC,SAAS,KAAM,OAAM,IAAI,kBAAkB,sBAAsB,OAAO;EAC7E,MAAM,SAAS,SAAS,QAAQ,IAAI,iBAAiB;EACrD,MAAM,OAAO,SAAS,QAAQ,IAAI,OAAO;AACzC,SAAO;GACN,MAAM,SAAS;GACf,OAAO,WAAW,QAAQ,gBAAgB,KAAK,OAAO,GAAG,OAAO,OAAO,GAAG;GAC1E,QAAQ,OAAQ,oBAAoB,KAAK,KAAK,GAAG,MAAM,OAAQ;GAC/D;;;;;;;CAQF,MAAM,qBACL,UACA,UAAuC,EAAE,EACH;EACtC,MAAM,WAAW,MAAM,KAAK,KAAK,QAAQ,2BAA2B;GACnE,MAAM;GACN,SAAS;IAAE,gBAAgB;IAAoB,GAAG,kBAAkB,QAAQ;IAAE;GAC9E,CAAC;AACF,QAAM,KAAK,SAAS,SAAS;AAE7B,UADc,MAAM,SAAS,MAAM,EACvB;;;CAIb,MAAM,mBAAmB,SAGkB;AAC1C,SAAO,KAAK,QAAQ,OAAO,0BAA0B,UAAU,QAAQ,GAAG;;CAG3E,MAAM,kBAAkB,IAA2C;AAClE,SAAO,KAAK,QAAQ,OAAO,2BAA2B,mBAAmB,GAAG,GAAG;;;CAIhF,MAAM,sBACL,IACA,SAC2C;AAC3C,SAAO,KAAK,QACX,OACA,2BAA2B,mBAAmB,GAAG,CAAC,UAAU,UAAU,QAAQ,GAC9E;;;;;;CAOF,MAAM,yBACL,IACA,MACA,MACA,OACoC;EACpC,MAAM,WAAW,MAAM,KAAK,KAC3B,OACA,2BAA2B,mBAAmB,GAAG,CAAC,SAAS,kBAAkB,KAAK,IAClF;GACC;GACA,SAAS;IACR,gBAAgB;IAChB,kBAAkB,OAAO,MAAM;IAC/B;GACD,CACD;AACD,QAAM,KAAK,SAAS,SAAS;AAE7B,UADc,MAAM,SAAS,MAAM,EACvB;;;;;;;CAQb,MAAM,sBACL,IACA,WACuC;AACvC,SAAO,KAAK,QACX,QACA,2BAA2B,mBAAmB,GAAG,CAAC,WAClD,cAAc,SAAY,SAAY,EAAE,WAAW,CACnD;;CAGF,MAAM,mBACL,IAC8D;AAC9D,SAAO,KAAK,QAAQ,OAAO,2BAA2B,mBAAmB,GAAG,CAAC,OAAO;;;CAIrF,MAAM,sBACL,IACA,OAC4C;AAC5C,SAAO,KAAK,QAAQ,QAAQ,2BAA2B,mBAAmB,GAAG,CAAC,WAAW;GACxF,eAAe,MAAM;GACrB,YAAY,MAAM;GAClB,CAAC;;;CAIH,MAAM,sBAAsB,IAA4C;AACvE,SAAO,KAAK,QAAQ,QAAQ,2BAA2B,mBAAmB,GAAG,CAAC,UAAU;;CAGzF,MAAM,sBAAsB,IAAqD;AAChF,SAAO,KAAK,QAAQ,OAAO,2BAA2B,mBAAmB,GAAG,CAAC,UAAU;;;;;;;CAQxF,MAAM,qBAAqB,IAAuD;AACjF,SAAO,KAAK,QAAQ,QAAQ,2BAA2B,mBAAmB,GAAG,CAAC,SAAS;;;;;;CAOxF,MAAM,sBAAsB,IAAuD;AAClF,SAAO,KAAK,QAAQ,QAAQ,2BAA2B,mBAAmB,GAAG,CAAC,UAAU;;;CAQzF,MAAc,QACb,QACA,MACA,MACA,cACa;EACb,MAAM,WAAW,MAAM,KAAK,WAAW,QAAQ,MAAM,MAAM,aAAa;AACxE,QAAM,KAAK,SAAS,SAAS;AAE7B,UADc,MAAM,SAAS,MAAM,EACvB;;;CAIb,MAAc,WACb,QACA,MACA,MACA,cACoB;EACpB,MAAM,UAAkC,EAAE,GAAG,cAAc;EAE3D,IAAI;AACJ,MAAI,SAAS,QAAW;AACvB,WAAQ,kBAAkB;AAC1B,iBAAc,KAAK,UAAU,KAAK;;AAGnC,SAAO,KAAK,KAAK,QAAQ,MAAM;GAAE,MAAM;GAAa;GAAS,CAAC;;;CAI/D,MAAc,KACb,QACA,MACA,MAIoB;EACpB,MAAM,MAAM,GAAG,KAAK,QAAQ,cAAc;EAC1C,MAAM,UAAU,IAAI,QAAQ,KAAK;GAChC;GACA,SAAS;IAAE,QAAQ;IAAoB,GAAG,KAAK;IAAS;GACxD,MAAM,KAAK;GACX,GAAI,KAAK,gBAAgB,iBAAiB,EAAE,QAAQ,QAAQ,GAAG,EAAE;GACjE,CAAC;AAEF,SAAO,KAAK,UAAU,MAAM,QAAQ;;;CAIrC,MAAc,SAAS,UAAmC;AACzD,MAAI,SAAS,GAAI;EAEjB,IAAI,OAAO;EACX,IAAI,UAAU,QAAQ,SAAS;EAC/B,IAAI;AAEJ,MAAI;GACH,MAAM,OAAQ,MAAM,SAAS,MAAM;AAGnC,OAAI,KAAK,OAAO;AACf,WAAO,KAAK,MAAM,QAAQ;AAC1B,cAAU,KAAK,MAAM,WAAW;AAChC,cAAU,KAAK,MAAM;;UAEf;AAEP,aAAU,SAAS,cAAc;;AAGlC,QAAM,IAAI,eAAe,SAAS,QAAQ,MAAM,SAAS,QAAQ;;;CAIlE,MAAc,gBAAgB,YAA4C;EACzE,IAAI,SAAS,KAAK,iBAAiB,IAAI,WAAW;AAClD,MAAI,OAAQ,QAAO;AAEnB,MAAI;AAEH,aADY,MAAM,KAAK,WAAW,WAAW,EAChC,OAAO,KAAK,OAAO;IAAE,MAAM,EAAE;IAAM,MAAM,EAAE;IAAM,YAAY,EAAE;IAAY,EAAE;AAC1F,QAAK,iBAAiB,IAAI,YAAY,OAAO;AAC7C,UAAO;UACA;AAEP,UAAO,EAAE"}