emdash 1.2.0 → 1.3.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 (1436) hide show
  1. package/dist/action-token-SK8zyN7w.mjs +26 -0
  2. package/dist/action-token-SK8zyN7w.mjs.map +1 -0
  3. package/dist/activation-Dim4YMM7.mjs +387 -0
  4. package/dist/activation-Dim4YMM7.mjs.map +1 -0
  5. package/dist/adapters-F_xorvWv.d.mts +173 -0
  6. package/dist/adapters-F_xorvWv.d.mts.map +1 -0
  7. package/dist/allowed-origins-CEug-p0t.mjs +116 -0
  8. package/dist/allowed-origins-CEug-p0t.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +4 -4
  10. package/dist/api/route-utils.mjs +47 -45
  11. package/dist/api/route-utils.mjs.map +1 -1
  12. package/dist/api/schemas/index.d.mts +1 -1
  13. package/dist/api/schemas/index.mjs +9 -9
  14. package/dist/api-D-7BNHoz.mjs +5025 -0
  15. package/dist/api-D-7BNHoz.mjs.map +1 -0
  16. package/dist/api-tokens-Bx38ZCQp.mjs +173 -0
  17. package/dist/api-tokens-Bx38ZCQp.mjs.map +1 -0
  18. package/dist/apply-T7ATgzCh.mjs +1702 -0
  19. package/dist/apply-T7ATgzCh.mjs.map +1 -0
  20. package/dist/approvals-D-m6wvGl.mjs +460 -0
  21. package/dist/approvals-D-m6wvGl.mjs.map +1 -0
  22. package/dist/artifact-fetch-DIh7iyOV.mjs +659 -0
  23. package/dist/artifact-fetch-DIh7iyOV.mjs.map +1 -0
  24. package/dist/artifacts-htGyfCSt.mjs +307 -0
  25. package/dist/artifacts-htGyfCSt.mjs.map +1 -0
  26. package/dist/astro/index.d.mts +14 -14
  27. package/dist/astro/index.d.mts.map +1 -1
  28. package/dist/astro/index.mjs +109 -18
  29. package/dist/astro/index.mjs.map +1 -1
  30. package/dist/astro/middleware/auth.d.mts +12 -12
  31. package/dist/astro/middleware/auth.d.mts.map +1 -1
  32. package/dist/astro/middleware/auth.mjs +12 -11
  33. package/dist/astro/middleware/auth.mjs.map +1 -1
  34. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  35. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  36. package/dist/astro/middleware/redirect.mjs +60 -40
  37. package/dist/astro/middleware/redirect.mjs.map +1 -1
  38. package/dist/astro/middleware/request-context.mjs +49 -15
  39. package/dist/astro/middleware/request-context.mjs.map +1 -1
  40. package/dist/astro/middleware/setup.mjs +1 -1
  41. package/dist/astro/middleware.d.mts +12 -12
  42. package/dist/astro/middleware.d.mts.map +1 -1
  43. package/dist/astro/middleware.mjs +116 -408
  44. package/dist/astro/middleware.mjs.map +1 -1
  45. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +14 -14
  46. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +14 -14
  47. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -6
  48. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
  49. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +6 -6
  50. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +16 -16
  51. package/dist/astro/routes/api/admin/byline-fields/index.mjs +16 -16
  52. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +16 -16
  53. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +22 -21
  54. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  55. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +22 -21
  56. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  57. package/dist/astro/routes/api/admin/bylines/index.mjs +22 -21
  58. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +18 -18
  60. package/dist/astro/routes/api/admin/comments/_id_.mjs +7 -7
  61. package/dist/astro/routes/api/admin/comments/bulk.mjs +17 -17
  62. package/dist/astro/routes/api/admin/comments/counts.mjs +7 -7
  63. package/dist/astro/routes/api/admin/comments/index.mjs +17 -17
  64. package/dist/astro/routes/api/admin/core-update.mjs +7 -7
  65. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  66. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  67. package/dist/astro/routes/api/admin/media-usage/activation.mjs +20 -20
  68. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +21 -21
  69. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +21 -21
  70. package/dist/astro/routes/api/admin/media-usage/progress.mjs +23 -22
  71. package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
  72. package/dist/astro/routes/api/admin/media-usage/repair.mjs +29 -28
  73. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  74. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +21 -21
  75. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +21 -21
  76. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  77. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  78. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  79. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  80. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +71 -69
  81. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  82. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
  83. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +70 -68
  84. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  85. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +70 -69
  86. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  87. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +79 -78
  88. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  89. package/dist/astro/routes/api/admin/plugins/index.mjs +71 -69
  90. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  91. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +7 -7
  92. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +70 -68
  93. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  94. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +78 -77
  95. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  96. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +70 -68
  97. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +70 -69
  99. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  100. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +80 -79
  101. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +10 -10
  103. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs.map +1 -1
  104. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +72 -71
  105. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  106. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
  107. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +71 -69
  108. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  109. package/dist/astro/routes/api/admin/plugins/updates.mjs +70 -68
  110. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  111. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +5 -5
  112. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +70 -68
  113. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  114. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +7 -7
  115. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +70 -68
  116. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  117. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
  118. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +38 -37
  119. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
  120. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +38 -37
  121. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
  122. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +40 -39
  123. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
  124. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +40 -39
  125. package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
  126. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +40 -39
  127. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
  128. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +41 -40
  129. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
  130. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +41 -40
  131. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
  132. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +40 -39
  133. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
  134. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +41 -40
  135. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
  136. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +42 -41
  137. package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
  138. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +40 -39
  139. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
  140. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +40 -39
  141. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
  142. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +42 -41
  143. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
  144. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +40 -39
  145. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
  146. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +42 -41
  147. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
  148. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +40 -39
  149. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
  150. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +40 -39
  151. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
  152. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +42 -41
  153. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
  154. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +40 -39
  155. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
  156. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +40 -39
  157. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
  158. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +42 -41
  159. package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
  160. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +4 -4
  161. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  162. package/dist/astro/routes/api/admin/users/_id_/index.mjs +14 -14
  163. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
  164. package/dist/astro/routes/api/admin/users/index.mjs +14 -14
  165. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  166. package/dist/astro/routes/api/auth/handover.mjs +6 -6
  167. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  168. package/dist/astro/routes/api/auth/invite/complete.mjs +19 -19
  169. package/dist/astro/routes/api/auth/invite/index.mjs +16 -16
  170. package/dist/astro/routes/api/auth/invite/register-options.mjs +17 -17
  171. package/dist/astro/routes/api/auth/logout.mjs +5 -5
  172. package/dist/astro/routes/api/auth/magic-link/send.mjs +18 -18
  173. package/dist/astro/routes/api/auth/magic-link/verify.mjs +15 -15
  174. package/dist/astro/routes/api/auth/me.mjs +15 -15
  175. package/dist/astro/routes/api/auth/mode.mjs +5 -5
  176. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +8 -8
  177. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  178. package/dist/astro/routes/api/auth/passkey/_id_.mjs +14 -14
  179. package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
  180. package/dist/astro/routes/api/auth/passkey/options.mjs +19 -19
  181. package/dist/astro/routes/api/auth/passkey/register/options.mjs +17 -17
  182. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +18 -18
  183. package/dist/astro/routes/api/auth/passkey/verify.mjs +19 -19
  184. package/dist/astro/routes/api/auth/signup/complete.mjs +19 -19
  185. package/dist/astro/routes/api/auth/signup/request.mjs +17 -17
  186. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  187. package/dist/astro/routes/api/calendar.mjs +15 -15
  188. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +12 -12
  189. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +18 -18
  190. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  191. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts.map +1 -1
  192. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +18 -17
  193. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  194. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +7 -10
  195. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs.map +1 -1
  196. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +20 -17
  197. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
  198. package/dist/astro/routes/api/content/_collection_/_id_/permanent.d.mts.map +1 -1
  199. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +7 -6
  200. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs.map +1 -1
  201. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +11 -11
  202. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +30 -29
  203. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  204. package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts.map +1 -1
  205. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +18 -17
  206. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  207. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +34 -33
  208. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  209. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +34 -33
  210. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  211. package/dist/astro/routes/api/content/_collection_/_id_/restore.d.mts.map +1 -1
  212. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +7 -6
  213. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs.map +1 -1
  214. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  215. package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts.map +1 -1
  216. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +19 -18
  217. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  218. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts.map +1 -1
  219. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +30 -25
  220. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  221. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +5 -5
  222. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts.map +1 -1
  223. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +18 -17
  224. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  225. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  226. package/dist/astro/routes/api/content/_collection_/_id_.mjs +27 -20
  227. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  228. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  229. package/dist/astro/routes/api/content/_collection_/index.mjs +18 -21
  230. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  231. package/dist/astro/routes/api/content/_collection_/trash.mjs +15 -15
  232. package/dist/astro/routes/api/dashboard.d.mts.map +1 -1
  233. package/dist/astro/routes/api/dashboard.mjs +17 -11
  234. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  235. package/dist/astro/routes/api/dev/emails.mjs +5 -5
  236. package/dist/astro/routes/api/dev/scheduled-tasks.d.mts +12 -0
  237. package/dist/astro/routes/api/dev/scheduled-tasks.d.mts.map +1 -0
  238. package/dist/astro/routes/api/dev/scheduled-tasks.mjs +140 -0
  239. package/dist/astro/routes/api/dev/scheduled-tasks.mjs.map +1 -0
  240. package/dist/astro/routes/api/health.mjs +6 -6
  241. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  242. package/dist/astro/routes/api/import/probe.mjs +24 -22
  243. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  244. package/dist/astro/routes/api/import/wordpress/analyze.d.mts.map +1 -1
  245. package/dist/astro/routes/api/import/wordpress/analyze.mjs +7 -20
  246. package/dist/astro/routes/api/import/wordpress/analyze.mjs.map +1 -1
  247. package/dist/astro/routes/api/import/wordpress/execute.d.mts +15 -14
  248. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  249. package/dist/astro/routes/api/import/wordpress/execute.mjs +28 -29
  250. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  251. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  252. package/dist/astro/routes/api/import/wordpress/media.mjs +17 -17
  253. package/dist/astro/routes/api/import/wordpress/prepare.mjs +19 -17
  254. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  255. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  256. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +27 -26
  257. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  258. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  259. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +25 -22
  260. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  261. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  262. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -1
  263. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +55 -34
  264. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  265. package/dist/astro/routes/api/manifest.mjs +6 -6
  266. package/dist/astro/routes/api/mcp.mjs +135 -101
  267. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  268. package/dist/astro/routes/api/media/_id_/confirm.mjs +17 -17
  269. package/dist/astro/routes/api/media/_id_/replace.mjs +15 -15
  270. package/dist/astro/routes/api/media/_id_/upload.mjs +8 -8
  271. package/dist/astro/routes/api/media/_id_/usage.mjs +31 -30
  272. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  273. package/dist/astro/routes/api/media/_id_.mjs +29 -28
  274. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  275. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
  276. package/dist/astro/routes/api/media/file/_...key_.mjs +10 -10
  277. package/dist/astro/routes/api/media/folders/_id_.mjs +16 -16
  278. package/dist/astro/routes/api/media/folders/index.mjs +16 -16
  279. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
  280. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
  281. package/dist/astro/routes/api/media/providers/index.mjs +5 -5
  282. package/dist/astro/routes/api/media/upload-url.mjs +17 -17
  283. package/dist/astro/routes/api/media.mjs +30 -29
  284. package/dist/astro/routes/api/media.mjs.map +1 -1
  285. package/dist/astro/routes/api/menus/_name_/items/_id_.d.mts.map +1 -1
  286. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +19 -18
  287. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  288. package/dist/astro/routes/api/menus/_name_/items.d.mts.map +1 -1
  289. package/dist/astro/routes/api/menus/_name_/items.mjs +18 -17
  290. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  291. package/dist/astro/routes/api/menus/_name_/reorder.d.mts.map +1 -1
  292. package/dist/astro/routes/api/menus/_name_/reorder.mjs +18 -17
  293. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  294. package/dist/astro/routes/api/menus/_name_/translations.d.mts.map +1 -1
  295. package/dist/astro/routes/api/menus/_name_/translations.mjs +18 -17
  296. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  297. package/dist/astro/routes/api/menus/_name_.d.mts.map +1 -1
  298. package/dist/astro/routes/api/menus/_name_.mjs +19 -18
  299. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  300. package/dist/astro/routes/api/menus/index.d.mts.map +1 -1
  301. package/dist/astro/routes/api/menus/index.mjs +18 -17
  302. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  303. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  304. package/dist/astro/routes/api/oauth/device/authorize.mjs +8 -8
  305. package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
  306. package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
  307. package/dist/astro/routes/api/oauth/register.mjs +7 -7
  308. package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
  309. package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
  310. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  311. package/dist/astro/routes/api/openapi.json.mjs +20 -20
  312. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +11 -11
  313. package/dist/astro/routes/api/redirects/404s/index.mjs +19 -19
  314. package/dist/astro/routes/api/redirects/404s/summary.mjs +19 -19
  315. package/dist/astro/routes/api/redirects/_id_.d.mts.map +1 -1
  316. package/dist/astro/routes/api/redirects/_id_.mjs +32 -23
  317. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  318. package/dist/astro/routes/api/redirects/index.d.mts.map +1 -1
  319. package/dist/astro/routes/api/redirects/index.mjs +24 -21
  320. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  321. package/dist/astro/routes/api/relations/_id_/index.mjs +34 -33
  322. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  323. package/dist/astro/routes/api/relations/index.mjs +34 -33
  324. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  325. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
  326. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +16 -16
  327. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +70 -68
  328. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  329. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +70 -68
  330. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  331. package/dist/astro/routes/api/schema/block-types/index.mjs +70 -68
  332. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  333. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +70 -68
  334. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  335. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +70 -68
  336. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  337. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +70 -68
  338. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  339. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +70 -68
  340. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  341. package/dist/astro/routes/api/schema/collections/index.mjs +70 -68
  342. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  343. package/dist/astro/routes/api/schema/collections/reorder.mjs +70 -68
  344. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  345. package/dist/astro/routes/api/schema/index.mjs +16 -15
  346. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  347. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +70 -68
  348. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  349. package/dist/astro/routes/api/schema/orphans/index.mjs +70 -68
  350. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  351. package/dist/astro/routes/api/search/enable.mjs +19 -18
  352. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  353. package/dist/astro/routes/api/search/index.mjs +18 -17
  354. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  355. package/dist/astro/routes/api/search/rebuild.mjs +19 -18
  356. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  357. package/dist/astro/routes/api/search/stats.mjs +9 -8
  358. package/dist/astro/routes/api/search/stats.mjs.map +1 -1
  359. package/dist/astro/routes/api/search/suggest.mjs +18 -17
  360. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  361. package/dist/astro/routes/api/sections/_slug_.mjs +18 -17
  362. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  363. package/dist/astro/routes/api/sections/index.mjs +18 -17
  364. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  365. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  366. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  367. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  368. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  369. package/dist/astro/routes/api/settings/domain-notify.mjs +9 -9
  370. package/dist/astro/routes/api/settings/domain.d.mts.map +1 -1
  371. package/dist/astro/routes/api/settings/domain.mjs +17 -14
  372. package/dist/astro/routes/api/settings/domain.mjs.map +1 -1
  373. package/dist/astro/routes/api/settings/email.mjs +6 -6
  374. package/dist/astro/routes/api/settings.d.mts.map +1 -1
  375. package/dist/astro/routes/api/settings.mjs +23 -20
  376. package/dist/astro/routes/api/settings.mjs.map +1 -1
  377. package/dist/astro/routes/api/setup/admin-verify.d.mts.map +1 -1
  378. package/dist/astro/routes/api/setup/admin-verify.mjs +25 -21
  379. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  380. package/dist/astro/routes/api/setup/admin.mjs +18 -18
  381. package/dist/astro/routes/api/setup/dev-bypass.mjs +42 -40
  382. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  383. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  384. package/dist/astro/routes/api/setup/index.mjs +48 -46
  385. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  386. package/dist/astro/routes/api/setup/status.mjs +6 -6
  387. package/dist/astro/routes/api/site/domain-proof.mjs +11 -9
  388. package/dist/astro/routes/api/site/domain-proof.mjs.map +1 -1
  389. package/dist/astro/routes/api/snapshot.mjs +8 -8
  390. package/dist/astro/routes/api/taxonomies/_name_/reorder.d.mts.map +1 -1
  391. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +23 -21
  392. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  393. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.d.mts.map +1 -1
  394. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +23 -21
  395. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  396. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.d.mts.map +1 -1
  397. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +24 -22
  398. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  399. package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts.map +1 -1
  400. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +23 -21
  401. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  402. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +21 -20
  403. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  404. package/dist/astro/routes/api/taxonomies/_name_.d.mts.map +1 -1
  405. package/dist/astro/routes/api/taxonomies/_name_.mjs +24 -22
  406. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  407. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +34 -33
  408. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
  409. package/dist/astro/routes/api/taxonomies/index.d.mts.map +1 -1
  410. package/dist/astro/routes/api/taxonomies/index.mjs +23 -21
  411. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  412. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  413. package/dist/astro/routes/api/typegen.mjs +6 -6
  414. package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
  415. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +18 -18
  416. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
  417. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  418. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  419. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  420. package/dist/astro/routes/api/widget-areas/_name_/reorder.d.mts.map +1 -1
  421. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +17 -16
  422. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  423. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts.map +1 -1
  424. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +21 -19
  425. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  426. package/dist/astro/routes/api/widget-areas/_name_/widgets.d.mts.map +1 -1
  427. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +20 -18
  428. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  429. package/dist/astro/routes/api/widget-areas/_name_.d.mts.map +1 -1
  430. package/dist/astro/routes/api/widget-areas/_name_.mjs +10 -8
  431. package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
  432. package/dist/astro/routes/api/widget-areas/index.d.mts.map +1 -1
  433. package/dist/astro/routes/api/widget-areas/index.mjs +20 -18
  434. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  435. package/dist/astro/routes/api/widget-components.mjs +5 -5
  436. package/dist/astro/routes/robots.txt.d.mts.map +1 -1
  437. package/dist/astro/routes/robots.txt.mjs +38 -5
  438. package/dist/astro/routes/robots.txt.mjs.map +1 -1
  439. package/dist/astro/routes/sitemap-_collection_.xml.mjs +13 -8
  440. package/dist/astro/routes/sitemap-_collection_.xml.mjs.map +1 -1
  441. package/dist/astro/routes/sitemap.xml.mjs +11 -6
  442. package/dist/astro/routes/sitemap.xml.mjs.map +1 -1
  443. package/dist/astro/types.d.mts +19 -17
  444. package/dist/astro/types.d.mts.map +1 -1
  445. package/dist/audit-_gieLVGU.mjs +127 -0
  446. package/dist/audit-_gieLVGU.mjs.map +1 -0
  447. package/dist/auth/providers/github.d.mts +1 -1
  448. package/dist/auth/providers/google.d.mts +1 -1
  449. package/dist/auth/providers/microsoft.d.mts +1 -1
  450. package/dist/authoritative-records-CQlB3JzE.mjs +5183 -0
  451. package/dist/authoritative-records-CQlB3JzE.mjs.map +1 -0
  452. package/dist/authorize-DPFBGbE6.mjs +74 -0
  453. package/dist/authorize-DPFBGbE6.mjs.map +1 -0
  454. package/dist/backup-3FgVxiDJ.mjs +246 -0
  455. package/dist/backup-3FgVxiDJ.mjs.map +1 -0
  456. package/dist/block-types-CYcG56JB.mjs +132 -0
  457. package/dist/block-types-CYcG56JB.mjs.map +1 -0
  458. package/dist/block-values-gCX4HBSl.mjs +215 -0
  459. package/dist/block-values-gCX4HBSl.mjs.map +1 -0
  460. package/dist/byline-BR1qhyiw.mjs +909 -0
  461. package/dist/byline-BR1qhyiw.mjs.map +1 -0
  462. package/dist/byline-fields-4ClDC88c.mjs +123 -0
  463. package/dist/byline-fields-4ClDC88c.mjs.map +1 -0
  464. package/dist/byline-fields-BLXZnX7N.mjs +280 -0
  465. package/dist/byline-fields-BLXZnX7N.mjs.map +1 -0
  466. package/dist/bylines-CVOvRUL7.mjs +234 -0
  467. package/dist/bylines-CVOvRUL7.mjs.map +1 -0
  468. package/dist/bylines-DxOs9B7z.mjs +150 -0
  469. package/dist/bylines-DxOs9B7z.mjs.map +1 -0
  470. package/dist/cache-CEU9wo_h.mjs +151 -0
  471. package/dist/cache-CEU9wo_h.mjs.map +1 -0
  472. package/dist/canonical-BudtH-Fx.mjs +174 -0
  473. package/dist/canonical-BudtH-Fx.mjs.map +1 -0
  474. package/dist/capture-triggers-CT6dK9zd.mjs +362 -0
  475. package/dist/capture-triggers-CT6dK9zd.mjs.map +1 -0
  476. package/dist/challenge-store-C17BYx2-.mjs +51 -0
  477. package/dist/challenge-store-C17BYx2-.mjs.map +1 -0
  478. package/dist/checksum-CEqvfxGX.mjs +162 -0
  479. package/dist/checksum-CEqvfxGX.mjs.map +1 -0
  480. package/dist/chunks-xC4UD5-S.mjs +25 -0
  481. package/dist/chunks-xC4UD5-S.mjs.map +1 -0
  482. package/dist/cli/index.mjs +127 -113
  483. package/dist/cli/index.mjs.map +1 -1
  484. package/dist/client/cf-access.d.mts +1 -1
  485. package/dist/client/index.d.mts +47 -47
  486. package/dist/client/index.d.mts.map +1 -1
  487. package/dist/client/index.mjs +12 -10
  488. package/dist/client/index.mjs.map +1 -1
  489. package/dist/collection-slugs-cache-e09QeJQt.mjs +85 -0
  490. package/dist/collection-slugs-cache-e09QeJQt.mjs.map +1 -0
  491. package/dist/comment-UvIWDKcW.mjs +325 -0
  492. package/dist/comment-UvIWDKcW.mjs.map +1 -0
  493. package/dist/comment-reaction-dGp6_FRo.mjs +85 -0
  494. package/dist/comment-reaction-dGp6_FRo.mjs.map +1 -0
  495. package/dist/comments-pej-_BUO.mjs +195 -0
  496. package/dist/comments-pej-_BUO.mjs.map +1 -0
  497. package/dist/comments-yiRFx3w5.mjs +99 -0
  498. package/dist/comments-yiRFx3w5.mjs.map +1 -0
  499. package/dist/components-Brp__9xo.mjs +112 -0
  500. package/dist/components-Brp__9xo.mjs.map +1 -0
  501. package/dist/config-Bsm_u_oE.d.mts +6799 -0
  502. package/dist/config-Bsm_u_oE.d.mts.map +1 -0
  503. package/dist/config-CFMojMFK.d.mts +39 -0
  504. package/dist/config-CFMojMFK.d.mts.map +1 -0
  505. package/dist/config-DBU6iUQB.mjs +228 -0
  506. package/dist/config-DBU6iUQB.mjs.map +1 -0
  507. package/dist/connection-BtEN_lP9.mjs +36 -0
  508. package/dist/connection-BtEN_lP9.mjs.map +1 -0
  509. package/dist/content-DQSRZTVw.mjs +2075 -0
  510. package/dist/content-DQSRZTVw.mjs.map +1 -0
  511. package/dist/content-list-query-CYKcY6Vi.d.mts +26 -0
  512. package/dist/content-list-query-CYKcY6Vi.d.mts.map +1 -0
  513. package/dist/content-repair-DNh5--x5.mjs +442 -0
  514. package/dist/content-repair-DNh5--x5.mjs.map +1 -0
  515. package/dist/context-BYptmCN0.mjs +2090 -0
  516. package/dist/context-BYptmCN0.mjs.map +1 -0
  517. package/dist/credits-B9iORdWB.mjs +110 -0
  518. package/dist/credits-B9iORdWB.mjs.map +1 -0
  519. package/dist/cron-D7obTIfk.mjs +306 -0
  520. package/dist/cron-D7obTIfk.mjs.map +1 -0
  521. package/dist/dashboard-D0jcgBD7.mjs +167 -0
  522. package/dist/dashboard-D0jcgBD7.mjs.map +1 -0
  523. package/dist/database/migration-lock.d.mts +17 -4
  524. package/dist/database/migration-lock.d.mts.map +1 -1
  525. package/dist/database/migration-lock.mjs +32 -5
  526. package/dist/database/migration-lock.mjs.map +1 -1
  527. package/dist/db/index.d.mts +3 -3
  528. package/dist/db/index.mjs +1 -1
  529. package/dist/db/libsql-migrations.d.mts +1 -1
  530. package/dist/db/libsql-migrations.mjs +4 -4
  531. package/dist/db/libsql.d.mts +1 -1
  532. package/dist/db/postgres-migrations.d.mts +1 -1
  533. package/dist/db/postgres-migrations.mjs +4 -4
  534. package/dist/db/postgres.d.mts +1 -1
  535. package/dist/db/sqlite-migrations.d.mts +1 -1
  536. package/dist/db/sqlite-migrations.mjs +4 -4
  537. package/dist/db/sqlite.d.mts +1 -1
  538. package/dist/db/sqlite.mjs +1 -1
  539. package/dist/default-C0W-PhAp.mjs +81 -0
  540. package/dist/default-C0W-PhAp.mjs.map +1 -0
  541. package/dist/deferred-tasks-ZvUECSzI.d.mts +9 -0
  542. package/dist/deferred-tasks-ZvUECSzI.d.mts.map +1 -0
  543. package/dist/dev-typegen-EBni_pOQ.mjs +29 -0
  544. package/dist/dev-typegen-EBni_pOQ.mjs.map +1 -0
  545. package/dist/device-flow-BkFKBoAn.mjs +521 -0
  546. package/dist/device-flow-BkFKBoAn.mjs.map +1 -0
  547. package/dist/digest-DJ1tHCgy.mjs +194 -0
  548. package/dist/digest-DJ1tHCgy.mjs.map +1 -0
  549. package/dist/direct-executor-Cbxzg4qe.mjs +117 -0
  550. package/dist/direct-executor-Cbxzg4qe.mjs.map +1 -0
  551. package/dist/email-console-FFVJWb9N.mjs +50 -0
  552. package/dist/email-console-FFVJWb9N.mjs.map +1 -0
  553. package/dist/email-locale-BJ8DjTzZ.mjs +25 -0
  554. package/dist/email-locale-BJ8DjTzZ.mjs.map +1 -0
  555. package/dist/emdash-runtime-DVi7vtXC.mjs +4379 -0
  556. package/dist/emdash-runtime-DVi7vtXC.mjs.map +1 -0
  557. package/dist/entry-lock-C7VX0NGK.d.mts +4568 -0
  558. package/dist/entry-lock-C7VX0NGK.d.mts.map +1 -0
  559. package/dist/entry-lock-DLxCffFW.mjs +163 -0
  560. package/dist/entry-lock-DLxCffFW.mjs.map +1 -0
  561. package/dist/entry-lock-Df6-XhIu.mjs +1211 -0
  562. package/dist/entry-lock-Df6-XhIu.mjs.map +1 -0
  563. package/dist/env-types-C3FCVBWe.mjs +38 -0
  564. package/dist/env-types-C3FCVBWe.mjs.map +1 -0
  565. package/dist/error-CVWeIOku.mjs +90 -0
  566. package/dist/error-CVWeIOku.mjs.map +1 -0
  567. package/dist/errors-B4f4It-2.mjs +120 -0
  568. package/dist/errors-B4f4It-2.mjs.map +1 -0
  569. package/dist/errors-BOYNdIo3.mjs +479 -0
  570. package/dist/errors-BOYNdIo3.mjs.map +1 -0
  571. package/dist/escape-lsNq38PP.mjs +9 -0
  572. package/dist/escape-lsNq38PP.mjs.map +1 -0
  573. package/dist/fence-C3MUitUN.mjs +162 -0
  574. package/dist/fence-C3MUitUN.mjs.map +1 -0
  575. package/dist/field-defs-cache-Dez5iWJJ.mjs +77 -0
  576. package/dist/field-defs-cache-Dez5iWJJ.mjs.map +1 -0
  577. package/dist/field-map-Bft9LKak.mjs +83 -0
  578. package/dist/field-map-Bft9LKak.mjs.map +1 -0
  579. package/dist/fts-manager-Beg3e4bI.mjs +443 -0
  580. package/dist/fts-manager-Beg3e4bI.mjs.map +1 -0
  581. package/dist/gc-ByyAYiYE.mjs +75 -0
  582. package/dist/gc-ByyAYiYE.mjs.map +1 -0
  583. package/dist/hash-BJaeek87.mjs +37 -0
  584. package/dist/hash-BJaeek87.mjs.map +1 -0
  585. package/dist/hook-result-BrdLyOdI.d.mts +31 -0
  586. package/dist/hook-result-BrdLyOdI.d.mts.map +1 -0
  587. package/dist/hreflang-C8Jb-hrf.mjs +105 -0
  588. package/dist/hreflang-C8Jb-hrf.mjs.map +1 -0
  589. package/dist/hreflang-CY_F5OjF.d.mts +50 -0
  590. package/dist/hreflang-CY_F5OjF.d.mts.map +1 -0
  591. package/dist/http-route-dispatch-CyeW6iPv.mjs +342 -0
  592. package/dist/http-route-dispatch-CyeW6iPv.mjs.map +1 -0
  593. package/dist/identity-Cael5uTT.mjs +35 -0
  594. package/dist/identity-Cael5uTT.mjs.map +1 -0
  595. package/dist/import-BUXjdZUn.mjs +2126 -0
  596. package/dist/import-BUXjdZUn.mjs.map +1 -0
  597. package/dist/index-BB9sVisO.d.mts +623 -0
  598. package/dist/index-BB9sVisO.d.mts.map +1 -0
  599. package/dist/index.d.mts +23 -23
  600. package/dist/index.mjs +96 -94
  601. package/dist/install-finalization-3JX5qQEA.mjs +58 -0
  602. package/dist/install-finalization-3JX5qQEA.mjs.map +1 -0
  603. package/dist/json-recordset-BUjxhr77.mjs +12 -0
  604. package/dist/json-recordset-BUjxhr77.mjs.map +1 -0
  605. package/dist/json-schema-v_D_pPNG.mjs +15 -0
  606. package/dist/json-schema-v_D_pPNG.mjs.map +1 -0
  607. package/dist/keys-CifIkT0N.mjs +61 -0
  608. package/dist/keys-CifIkT0N.mjs.map +1 -0
  609. package/dist/kinds-B_Qcl5pz.mjs +974 -0
  610. package/dist/kinds-B_Qcl5pz.mjs.map +1 -0
  611. package/dist/lifecycle-7vUJeFRe.mjs +25 -0
  612. package/dist/lifecycle-7vUJeFRe.mjs.map +1 -0
  613. package/dist/load-CdAG9wz-.mjs +28 -0
  614. package/dist/load-CdAG9wz-.mjs.map +1 -0
  615. package/dist/loader-CswroUbe.mjs +1380 -0
  616. package/dist/loader-CswroUbe.mjs.map +1 -0
  617. package/dist/loops-uA4iTOzd.mjs +205 -0
  618. package/dist/loops-uA4iTOzd.mjs.map +1 -0
  619. package/dist/manifest-builder-B8zjuH3f.mjs +189 -0
  620. package/dist/manifest-builder-B8zjuH3f.mjs.map +1 -0
  621. package/dist/manifest-schema-DNb4XmTS.mjs +497 -0
  622. package/dist/manifest-schema-DNb4XmTS.mjs.map +1 -0
  623. package/dist/marketplace-CqbgeIa7.mjs +257 -0
  624. package/dist/marketplace-CqbgeIa7.mjs.map +1 -0
  625. package/dist/media/index.d.mts +1 -1
  626. package/dist/media/local-runtime.d.mts +14 -14
  627. package/dist/media/local-runtime.mjs +10 -5
  628. package/dist/media/local-runtime.mjs.map +1 -1
  629. package/dist/media--dJRU6i2.mjs +294 -0
  630. package/dist/media--dJRU6i2.mjs.map +1 -0
  631. package/dist/media-1WC65OCB.mjs +416 -0
  632. package/dist/media-1WC65OCB.mjs.map +1 -0
  633. package/dist/media-Bws9f18T.mjs +373 -0
  634. package/dist/media-Bws9f18T.mjs.map +1 -0
  635. package/dist/media-allowlist-BJB7MFx6.mjs +45 -0
  636. package/dist/media-allowlist-BJB7MFx6.mjs.map +1 -0
  637. package/dist/media-folders-Dn3C16B8.mjs +210 -0
  638. package/dist/media-folders-Dn3C16B8.mjs.map +1 -0
  639. package/dist/media-url-BQgKvpQ5.mjs +43 -0
  640. package/dist/media-url-BQgKvpQ5.mjs.map +1 -0
  641. package/dist/media-usage-CF0WVcLO.mjs +282 -0
  642. package/dist/media-usage-CF0WVcLO.mjs.map +1 -0
  643. package/dist/media-usage-activation-C9HwVw5w.mjs +78 -0
  644. package/dist/media-usage-activation-C9HwVw5w.mjs.map +1 -0
  645. package/dist/media-usage-work-CkLa5-nc.mjs +1036 -0
  646. package/dist/media-usage-work-CkLa5-nc.mjs.map +1 -0
  647. package/dist/media-usage-work-m3AWTmmC.mjs +151 -0
  648. package/dist/media-usage-work-m3AWTmmC.mjs.map +1 -0
  649. package/dist/menus-BCVSSp1z.mjs +753 -0
  650. package/dist/menus-BCVSSp1z.mjs.map +1 -0
  651. package/dist/menus-BSzwObhV.mjs +92 -0
  652. package/dist/menus-BSzwObhV.mjs.map +1 -0
  653. package/dist/menus-Cl4kwdt7.mjs +3721 -0
  654. package/dist/menus-Cl4kwdt7.mjs.map +1 -0
  655. package/dist/migrations/index.d.mts +1 -1
  656. package/dist/migrations/index.d.mts.map +1 -1
  657. package/dist/migrations/index.mjs +3 -3
  658. package/dist/mode-C-D3qICy.mjs +23 -0
  659. package/dist/mode-C-D3qICy.mjs.map +1 -0
  660. package/dist/node-sqlite-compat-CrKzRr0J.mjs +63 -0
  661. package/dist/node-sqlite-compat-CrKzRr0J.mjs.map +1 -0
  662. package/dist/oauth-authorization-TpEJrYB7.mjs +274 -0
  663. package/dist/oauth-authorization-TpEJrYB7.mjs.map +1 -0
  664. package/dist/oauth-clients-BT0Pg-MO.mjs +266 -0
  665. package/dist/oauth-clients-BT0Pg-MO.mjs.map +1 -0
  666. package/dist/oauth-state-store-CHMn_mwc.mjs +50 -0
  667. package/dist/oauth-state-store-CHMn_mwc.mjs.map +1 -0
  668. package/dist/oauth-user-lookup-BDgF6IVG.mjs +26 -0
  669. package/dist/oauth-user-lookup-BDgF6IVG.mjs.map +1 -0
  670. package/dist/object-cache/memory.d.mts +1 -1
  671. package/dist/options-DJWaq3Ie.d.mts +81 -0
  672. package/dist/options-DJWaq3Ie.d.mts.map +1 -0
  673. package/dist/ownership-MiyA7qKO.mjs +12 -0
  674. package/dist/ownership-MiyA7qKO.mjs.map +1 -0
  675. package/dist/page/index.d.mts +2 -2
  676. package/dist/page/index.mjs +9 -4
  677. package/dist/page/index.mjs.map +1 -1
  678. package/dist/parse-CWHOFc6z.d.mts +176 -0
  679. package/dist/parse-CWHOFc6z.d.mts.map +1 -0
  680. package/dist/parse-DgQ2NABT.mjs +81 -0
  681. package/dist/parse-DgQ2NABT.mjs.map +1 -0
  682. package/dist/passkey-config-D0kdzEao.mjs +46 -0
  683. package/dist/passkey-config-D0kdzEao.mjs.map +1 -0
  684. package/dist/paths-biDzFTY2.mjs +77 -0
  685. package/dist/paths-biDzFTY2.mjs.map +1 -0
  686. package/dist/placeholder-D41vk11_.d.mts +306 -0
  687. package/dist/placeholder-D41vk11_.d.mts.map +1 -0
  688. package/dist/plan-CCoqxNoU.mjs +135 -0
  689. package/dist/plan-CCoqxNoU.mjs.map +1 -0
  690. package/dist/plugin-test-runtime.d.mts +14 -14
  691. package/dist/plugin-test-runtime.mjs +109 -107
  692. package/dist/plugin-tool-name-DDUgN_0p.mjs +27 -0
  693. package/dist/plugin-tool-name-DDUgN_0p.mjs.map +1 -0
  694. package/dist/plugin-types.d.mts +2 -2
  695. package/dist/plugin-utils.d.mts +12 -12
  696. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  697. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  698. package/dist/plugins/adapt-sandbox-entry.mjs +9 -8
  699. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  700. package/dist/plugins/host.d.mts +5 -5
  701. package/dist/plugins/host.mjs +45 -41
  702. package/dist/plugins-COJ2L49n.mjs +261 -0
  703. package/dist/plugins-COJ2L49n.mjs.map +1 -0
  704. package/dist/policy-DLQ--Hnm.mjs +45 -0
  705. package/dist/policy-DLQ--Hnm.mjs.map +1 -0
  706. package/dist/portable-text-BH4zgkSm.mjs +311 -0
  707. package/dist/portable-text-BH4zgkSm.mjs.map +1 -0
  708. package/dist/preview-DLexxwp3.mjs +107 -0
  709. package/dist/preview-DLexxwp3.mjs.map +1 -0
  710. package/dist/protocol-79kUO7jP.d.mts +65 -0
  711. package/dist/protocol-79kUO7jP.d.mts.map +1 -0
  712. package/dist/public-plugin-api-routes-BuAMJ8nN.mjs +316 -0
  713. package/dist/public-plugin-api-routes-BuAMJ8nN.mjs.map +1 -0
  714. package/dist/public-submission-Di3TsgzX.mjs +251 -0
  715. package/dist/public-submission-Di3TsgzX.mjs.map +1 -0
  716. package/dist/public-url-Bt98vysr.mjs +101 -0
  717. package/dist/public-url-Bt98vysr.mjs.map +1 -0
  718. package/dist/query-CpnRlBh8.mjs +1156 -0
  719. package/dist/query-CpnRlBh8.mjs.map +1 -0
  720. package/dist/query-haKvLAWl.mjs +41 -0
  721. package/dist/query-haKvLAWl.mjs.map +1 -0
  722. package/dist/range-CYfeXgGK.mjs +51 -0
  723. package/dist/range-CYfeXgGK.mjs.map +1 -0
  724. package/dist/rate-limit-Xp4d0NBY.mjs +127 -0
  725. package/dist/rate-limit-Xp4d0NBY.mjs.map +1 -0
  726. package/dist/receipt-BUsQCOeM.mjs +43 -0
  727. package/dist/receipt-BUsQCOeM.mjs.map +1 -0
  728. package/dist/redirect-CQAV7mCo.mjs +19 -0
  729. package/dist/redirect-CQAV7mCo.mjs.map +1 -0
  730. package/dist/redirect-DiS_3mA4.mjs +423 -0
  731. package/dist/redirect-DiS_3mA4.mjs.map +1 -0
  732. package/dist/redirect-paths-CNYq7w80.mjs +36 -0
  733. package/dist/redirect-paths-CNYq7w80.mjs.map +1 -0
  734. package/dist/redirects-BEVSRMa2.mjs +148 -0
  735. package/dist/redirects-BEVSRMa2.mjs.map +1 -0
  736. package/dist/redirects-BHpy-VsZ.mjs +446 -0
  737. package/dist/redirects-BHpy-VsZ.mjs.map +1 -0
  738. package/dist/registry/testing.mjs +3 -3
  739. package/dist/registry-TUVaid9Z.mjs +8369 -0
  740. package/dist/registry-TUVaid9Z.mjs.map +1 -0
  741. package/dist/relations-CA_QuMTU.mjs +776 -0
  742. package/dist/relations-CA_QuMTU.mjs.map +1 -0
  743. package/dist/request-context.d.mts +1 -1
  744. package/dist/request-meta-bwZ_NsvU.mjs +141 -0
  745. package/dist/request-meta-bwZ_NsvU.mjs.map +1 -0
  746. package/dist/resolve-DwNM-CXl.mjs +101 -0
  747. package/dist/resolve-DwNM-CXl.mjs.map +1 -0
  748. package/dist/revision-BVp8S0e_.mjs +374 -0
  749. package/dist/revision-BVp8S0e_.mjs.map +1 -0
  750. package/dist/route-cache-QSOyDEw0.mjs +20 -0
  751. package/dist/route-cache-QSOyDEw0.mjs.map +1 -0
  752. package/dist/route-wire-Ca_HWCZ5.mjs +197 -0
  753. package/dist/route-wire-Ca_HWCZ5.mjs.map +1 -0
  754. package/dist/routes-BerZFrvV.mjs +272 -0
  755. package/dist/routes-BerZFrvV.mjs.map +1 -0
  756. package/dist/runner-BObHz5FC.d.mts +68 -0
  757. package/dist/runner-BObHz5FC.d.mts.map +1 -0
  758. package/dist/runner-C5NeAkBQ.mjs +6595 -0
  759. package/dist/runner-C5NeAkBQ.mjs.map +1 -0
  760. package/dist/runtime.d.mts +13 -13
  761. package/dist/runtime.mjs +3 -2
  762. package/dist/runtime.mjs.map +1 -1
  763. package/dist/schema/project-env-types.mjs +39 -35
  764. package/dist/schema/project-env-types.mjs.map +1 -1
  765. package/dist/schema-C4OBuv6Z.mjs +13 -0
  766. package/dist/schema-C4OBuv6Z.mjs.map +1 -0
  767. package/dist/schema-DJRfvM_o.mjs +815 -0
  768. package/dist/schema-DJRfvM_o.mjs.map +1 -0
  769. package/dist/scopes-BU03K7Uo.mjs +34 -0
  770. package/dist/scopes-BU03K7Uo.mjs.map +1 -0
  771. package/dist/search-DfVzks89.mjs +450 -0
  772. package/dist/search-DfVzks89.mjs.map +1 -0
  773. package/dist/sections-BMy4JVUz.mjs +346 -0
  774. package/dist/sections-BMy4JVUz.mjs.map +1 -0
  775. package/dist/seed/index.d.mts +2 -2
  776. package/dist/seed/index.mjs +37 -33
  777. package/dist/seo/index.d.mts +3 -3
  778. package/dist/seo/index.mjs +24 -20
  779. package/dist/seo/index.mjs.map +1 -1
  780. package/dist/seo-ClB-dw9w.mjs +188 -0
  781. package/dist/seo-ClB-dw9w.mjs.map +1 -0
  782. package/dist/seo-VZYOEy8f.mjs +133 -0
  783. package/dist/seo-VZYOEy8f.mjs.map +1 -0
  784. package/dist/service-Bo_usgSk.mjs +150 -0
  785. package/dist/service-Bo_usgSk.mjs.map +1 -0
  786. package/dist/session-user-DlpPdf8L.mjs +61 -0
  787. package/dist/session-user-DlpPdf8L.mjs.map +1 -0
  788. package/dist/settings-CWb84sDm.mjs +452 -0
  789. package/dist/settings-CWb84sDm.mjs.map +1 -0
  790. package/dist/settings-DS914jjE.mjs +66 -0
  791. package/dist/settings-DS914jjE.mjs.map +1 -0
  792. package/dist/settings-Dd1uivmQ.mjs +73 -0
  793. package/dist/settings-Dd1uivmQ.mjs.map +1 -0
  794. package/dist/setup-complete-BuNxAUiN.mjs +65 -0
  795. package/dist/setup-complete-BuNxAUiN.mjs.map +1 -0
  796. package/dist/setup-nonce-BnEAX0iy.mjs +25 -0
  797. package/dist/setup-nonce-BnEAX0iy.mjs.map +1 -0
  798. package/dist/site-domain-Bq5j5bVg.mjs +131 -0
  799. package/dist/site-domain-Bq5j5bVg.mjs.map +1 -0
  800. package/dist/site-settings-DRHfX7bq.mjs +50 -0
  801. package/dist/site-settings-DRHfX7bq.mjs.map +1 -0
  802. package/dist/site-url-MB685I5X.mjs +45 -0
  803. package/dist/site-url-MB685I5X.mjs.map +1 -0
  804. package/dist/sitemap-name-BTg2NJJv.mjs +26 -0
  805. package/dist/sitemap-name-BTg2NJJv.mjs.map +1 -0
  806. package/dist/slug-aVnUV4SL.mjs +16 -0
  807. package/dist/slug-aVnUV4SL.mjs.map +1 -0
  808. package/dist/snapshot-DYsG4uOq.mjs +414 -0
  809. package/dist/snapshot-DYsG4uOq.mjs.map +1 -0
  810. package/dist/ssrf-BcYjyM4M.mjs +406 -0
  811. package/dist/ssrf-BcYjyM4M.mjs.map +1 -0
  812. package/dist/stage-D8DWgPcO.mjs +662 -0
  813. package/dist/stage-D8DWgPcO.mjs.map +1 -0
  814. package/dist/staged-CD_imitH.mjs +686 -0
  815. package/dist/staged-CD_imitH.mjs.map +1 -0
  816. package/dist/state-CFbGZziM.mjs +178 -0
  817. package/dist/state-CFbGZziM.mjs.map +1 -0
  818. package/dist/status-BFNdxzKc.mjs +30 -0
  819. package/dist/status-BFNdxzKc.mjs.map +1 -0
  820. package/dist/storage/local.d.mts +1 -1
  821. package/dist/storage/local.mjs +3 -3
  822. package/dist/storage/s3.d.mts +1 -1
  823. package/dist/storage/s3.mjs +1 -1
  824. package/dist/storage-query-DRyu3bSU.d.mts +1615 -0
  825. package/dist/storage-query-DRyu3bSU.d.mts.map +1 -0
  826. package/dist/tar-DFjExb9X.mjs +449 -0
  827. package/dist/tar-DFjExb9X.mjs.map +1 -0
  828. package/dist/target-CWZs2-o6.mjs +27 -0
  829. package/dist/target-CWZs2-o6.mjs.map +1 -0
  830. package/dist/taxonomies-ChnU7Mc8.mjs +697 -0
  831. package/dist/taxonomies-ChnU7Mc8.mjs.map +1 -0
  832. package/dist/taxonomies-Dd9JJv_a.mjs +939 -0
  833. package/dist/taxonomies-Dd9JJv_a.mjs.map +1 -0
  834. package/dist/taxonomy-C_C_LBAU.mjs +550 -0
  835. package/dist/taxonomy-C_C_LBAU.mjs.map +1 -0
  836. package/dist/tokens-BnhSnGwJ.mjs +171 -0
  837. package/dist/tokens-BnhSnGwJ.mjs.map +1 -0
  838. package/dist/transfer-ClH6w6BV.mjs +8873 -0
  839. package/dist/transfer-ClH6w6BV.mjs.map +1 -0
  840. package/dist/transfer-WmWiR3xf.mjs +166 -0
  841. package/dist/transfer-WmWiR3xf.mjs.map +1 -0
  842. package/dist/transfer-download--ofRj9Cw.mjs +33 -0
  843. package/dist/transfer-download--ofRj9Cw.mjs.map +1 -0
  844. package/dist/transformations-Bx4lYY0Y.mjs +196 -0
  845. package/dist/transformations-Bx4lYY0Y.mjs.map +1 -0
  846. package/dist/transport-BjbqNiPI.mjs +136 -0
  847. package/dist/transport-BjbqNiPI.mjs.map +1 -0
  848. package/dist/transport-DxiXnbXk.d.mts +42 -0
  849. package/dist/transport-DxiXnbXk.d.mts.map +1 -0
  850. package/dist/trusted-proxy-BU3Nx9g1.mjs +51 -0
  851. package/dist/trusted-proxy-BU3Nx9g1.mjs.map +1 -0
  852. package/dist/turnstile-CJwvsOqw.mjs +58 -0
  853. package/dist/turnstile-CJwvsOqw.mjs.map +1 -0
  854. package/dist/types-BA3ey2QH.d.mts +87 -0
  855. package/dist/types-BA3ey2QH.d.mts.map +1 -0
  856. package/dist/types-Bwpzb5o6.d.mts +227 -0
  857. package/dist/types-Bwpzb5o6.d.mts.map +1 -0
  858. package/dist/types-CNB-dj6F.d.mts +289 -0
  859. package/dist/types-CNB-dj6F.d.mts.map +1 -0
  860. package/dist/types-CgfFGfO5.mjs +16 -0
  861. package/dist/types-CgfFGfO5.mjs.map +1 -0
  862. package/dist/types-D2NEXtgB.mjs +127 -0
  863. package/dist/types-D2NEXtgB.mjs.map +1 -0
  864. package/dist/types-DCFavOii.d.mts +916 -0
  865. package/dist/types-DCFavOii.d.mts.map +1 -0
  866. package/dist/types-DHO7Pd25.d.mts +366 -0
  867. package/dist/types-DHO7Pd25.d.mts.map +1 -0
  868. package/dist/types-DvqVxZXa.d.mts +125 -0
  869. package/dist/types-DvqVxZXa.d.mts.map +1 -0
  870. package/dist/types-QoPHm-2w.d.mts +1741 -0
  871. package/dist/types-QoPHm-2w.d.mts.map +1 -0
  872. package/dist/types-RLgeIpnF.d.mts +374 -0
  873. package/dist/types-RLgeIpnF.d.mts.map +1 -0
  874. package/dist/types-qHVygneX.mjs +77 -0
  875. package/dist/types-qHVygneX.mjs.map +1 -0
  876. package/dist/types-sUHaH7lC.mjs +37 -0
  877. package/dist/types-sUHaH7lC.mjs.map +1 -0
  878. package/dist/types-slSqujQL.d.mts +204 -0
  879. package/dist/types-slSqujQL.d.mts.map +1 -0
  880. package/dist/update-check-BxNg9T6N.mjs +161 -0
  881. package/dist/update-check-BxNg9T6N.mjs.map +1 -0
  882. package/dist/upload-attempts-DPFC4COv.mjs +32 -0
  883. package/dist/upload-attempts-DPFC4COv.mjs.map +1 -0
  884. package/dist/url-pattern-QATUE_rv.mjs +41 -0
  885. package/dist/url-pattern-QATUE_rv.mjs.map +1 -0
  886. package/dist/user-BlCTKVAm.mjs +171 -0
  887. package/dist/user-BlCTKVAm.mjs.map +1 -0
  888. package/dist/utils-TPt7w2cS.mjs +442 -0
  889. package/dist/utils-TPt7w2cS.mjs.map +1 -0
  890. package/dist/validate-DxYhJQA-.mjs +524 -0
  891. package/dist/validate-DxYhJQA-.mjs.map +1 -0
  892. package/dist/validate-emKxGC5F.d.mts +468 -0
  893. package/dist/validate-emKxGC5F.d.mts.map +1 -0
  894. package/dist/validation-Ckq4vsVg.mjs +220 -0
  895. package/dist/validation-Ckq4vsVg.mjs.map +1 -0
  896. package/dist/version-BZj18Q7G.mjs +9 -0
  897. package/dist/version-BZj18Q7G.mjs.map +1 -0
  898. package/dist/version-DHmGpcch.mjs +7 -0
  899. package/dist/version-DHmGpcch.mjs.map +1 -0
  900. package/dist/video-DytCnw3L.mjs +54 -0
  901. package/dist/video-DytCnw3L.mjs.map +1 -0
  902. package/dist/virtual-modules-DO954n7P.mjs +515 -0
  903. package/dist/virtual-modules-DO954n7P.mjs.map +1 -0
  904. package/dist/widgets-DA5XmvVC.mjs +121 -0
  905. package/dist/widgets-DA5XmvVC.mjs.map +1 -0
  906. package/dist/wxr-taxonomies-CrMonejI.d.mts +34 -0
  907. package/dist/wxr-taxonomies-CrMonejI.d.mts.map +1 -0
  908. package/dist/wxr-taxonomies-RgRG0d5e.mjs +453 -0
  909. package/dist/wxr-taxonomies-RgRG0d5e.mjs.map +1 -0
  910. package/dist/zod-generator-D0JKy94C.mjs +424 -0
  911. package/dist/zod-generator-D0JKy94C.mjs.map +1 -0
  912. package/package.json +7 -6
  913. package/src/api/authorize.ts +42 -0
  914. package/src/api/handlers/dashboard.ts +33 -10
  915. package/src/api/handlers/manifest.ts +1 -0
  916. package/src/api/handlers/plugins.ts +1 -0
  917. package/src/api/handlers/revision.ts +6 -2
  918. package/src/api/handlers/site-domain.ts +26 -10
  919. package/src/api/schemas/settings.ts +2 -0
  920. package/src/api/types.ts +2 -0
  921. package/src/astro/integration/dev-scheduler-bridge.ts +91 -0
  922. package/src/astro/integration/index.ts +48 -1
  923. package/src/astro/integration/routes.ts +8 -0
  924. package/src/astro/integration/runtime.ts +2 -1
  925. package/src/astro/integration/virtual-modules.ts +9 -16
  926. package/src/astro/integration/vite-config.ts +4 -15
  927. package/src/astro/middleware/auth.ts +3 -1
  928. package/src/astro/middleware/redirect.ts +71 -42
  929. package/src/astro/middleware.ts +18 -3
  930. package/src/astro/prefetch.ts +7 -5
  931. package/src/astro/public-plugin-api-routes.ts +10 -2
  932. package/src/astro/routes/api/admin/plugins/registry/artifact.ts +1 -1
  933. package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +2 -1
  934. package/src/astro/routes/api/content/[collection]/[id]/duplicate.ts +1 -5
  935. package/src/astro/routes/api/content/[collection]/[id]/lock.ts +2 -2
  936. package/src/astro/routes/api/content/[collection]/[id]/permanent.ts +2 -1
  937. package/src/astro/routes/api/content/[collection]/[id]/publish.ts +2 -1
  938. package/src/astro/routes/api/content/[collection]/[id]/restore.ts +2 -1
  939. package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +3 -2
  940. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +5 -4
  941. package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +2 -1
  942. package/src/astro/routes/api/content/[collection]/[id].ts +18 -6
  943. package/src/astro/routes/api/content/[collection]/index.ts +1 -5
  944. package/src/astro/routes/api/dashboard.ts +4 -1
  945. package/src/astro/routes/api/dev/scheduled-tasks.ts +20 -0
  946. package/src/astro/routes/api/import/wordpress/analyze.ts +1 -16
  947. package/src/astro/routes/api/import/wordpress/execute.ts +8 -3
  948. package/src/astro/routes/api/import/wordpress-plugin/analyze.ts +4 -1
  949. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +34 -5
  950. package/src/astro/routes/api/menus/[name]/items/[id].ts +3 -2
  951. package/src/astro/routes/api/menus/[name]/items.ts +2 -1
  952. package/src/astro/routes/api/menus/[name]/reorder.ts +2 -1
  953. package/src/astro/routes/api/menus/[name]/translations.ts +2 -1
  954. package/src/astro/routes/api/menus/[name].ts +3 -2
  955. package/src/astro/routes/api/menus/index.ts +2 -1
  956. package/src/astro/routes/api/redirects/[id].ts +15 -2
  957. package/src/astro/routes/api/redirects/index.ts +5 -1
  958. package/src/astro/routes/api/settings/domain.ts +2 -1
  959. package/src/astro/routes/api/settings.ts +2 -1
  960. package/src/astro/routes/api/setup/admin-verify.ts +7 -1
  961. package/src/astro/routes/api/taxonomies/[name]/reorder.ts +2 -1
  962. package/src/astro/routes/api/taxonomies/[name]/terms/[slug]/translations.ts +2 -1
  963. package/src/astro/routes/api/taxonomies/[name]/terms/[slug].ts +3 -2
  964. package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +2 -1
  965. package/src/astro/routes/api/taxonomies/[name].ts +3 -2
  966. package/src/astro/routes/api/taxonomies/index.ts +2 -1
  967. package/src/astro/routes/api/widget-areas/[name]/reorder.ts +2 -1
  968. package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +3 -2
  969. package/src/astro/routes/api/widget-areas/[name]/widgets.ts +2 -1
  970. package/src/astro/routes/api/widget-areas/[name].ts +2 -1
  971. package/src/astro/routes/api/widget-areas/index.ts +2 -1
  972. package/src/astro/routes/robots.txt.ts +33 -2
  973. package/src/astro/types.ts +10 -1
  974. package/src/auth/types.ts +4 -4
  975. package/src/cache/redirect-paths.ts +56 -0
  976. package/src/cache/route-cache.ts +22 -0
  977. package/src/cli/commands/import/wordpress.ts +3 -27
  978. package/src/cli/commands/login.ts +35 -43
  979. package/src/cli/commands/migrate.ts +36 -4
  980. package/src/cli/commands/seed.ts +18 -8
  981. package/src/cli/wxr/parser.ts +2 -2
  982. package/src/client/index.ts +12 -2
  983. package/src/client/portable-text.ts +21 -7
  984. package/src/comments/query.ts +8 -2
  985. package/src/components/CommentForm.astro +2 -2
  986. package/src/components/Comments.astro +1 -1
  987. package/src/components/InlinePortableTextEditor.tsx +152 -1325
  988. package/src/components/inline-block-types.ts +278 -0
  989. package/src/components/inline-bubble-menu.tsx +696 -0
  990. package/src/components/inline-editor-ui.tsx +1192 -0
  991. package/src/components/inline-image.tsx +722 -0
  992. package/src/components/inline-media-picker.tsx +1221 -0
  993. package/src/components/inline-slash-menu.tsx +556 -0
  994. package/src/database/collection-cleanup.ts +30 -0
  995. package/src/database/datetime-storage.ts +337 -60
  996. package/src/database/migration-lock.ts +43 -7
  997. package/src/database/repositories/content.ts +3 -1
  998. package/src/database/repositories/plugin-storage.ts +109 -8
  999. package/src/database/repositories/revision.ts +24 -6
  1000. package/src/database/repositories/types.ts +65 -7
  1001. package/src/emdash-runtime.ts +176 -160
  1002. package/src/import/index.ts +1 -0
  1003. package/src/import/registry.ts +17 -0
  1004. package/src/import/sources/wordpress-plugin.ts +151 -9
  1005. package/src/import/types.ts +3 -0
  1006. package/src/import/utils.ts +5 -0
  1007. package/src/loader.ts +36 -2
  1008. package/src/mcp/json-schema.ts +14 -0
  1009. package/src/mcp/plugin-tool-name.ts +36 -0
  1010. package/src/mcp/server.ts +74 -15
  1011. package/src/media/usage/collection-deletion.ts +4 -0
  1012. package/src/migrations/direct-executor.ts +42 -12
  1013. package/src/migrations/protocol.ts +6 -2
  1014. package/src/plugins/adapt-sandbox-entry.ts +16 -6
  1015. package/src/plugins/state.ts +5 -8
  1016. package/src/query.ts +51 -10
  1017. package/src/redirects/cache.ts +34 -2
  1018. package/src/schema/block-values.ts +80 -17
  1019. package/src/schema/registry.ts +9 -1
  1020. package/src/search/query.ts +3 -1
  1021. package/src/seed/apply.ts +32 -8
  1022. package/src/settings/index.ts +20 -0
  1023. package/src/settings/types.ts +2 -0
  1024. package/src/visual-editing/toolbar.ts +46 -12
  1025. package/dist/action-token-BdWad2YG.mjs +0 -26
  1026. package/dist/action-token-BdWad2YG.mjs.map +0 -1
  1027. package/dist/activation-xomsCMJg.mjs +0 -387
  1028. package/dist/activation-xomsCMJg.mjs.map +0 -1
  1029. package/dist/adapters-B4-nbElt.d.mts +0 -173
  1030. package/dist/adapters-B4-nbElt.d.mts.map +0 -1
  1031. package/dist/allowed-origins-CLpHGGlc.mjs +0 -116
  1032. package/dist/allowed-origins-CLpHGGlc.mjs.map +0 -1
  1033. package/dist/api-DBw_IWoi.mjs +0 -5024
  1034. package/dist/api-DBw_IWoi.mjs.map +0 -1
  1035. package/dist/api-tokens-B0ZipcZ-.mjs +0 -173
  1036. package/dist/api-tokens-B0ZipcZ-.mjs.map +0 -1
  1037. package/dist/apply-Cx48saFC.mjs +0 -1680
  1038. package/dist/apply-Cx48saFC.mjs.map +0 -1
  1039. package/dist/approvals-BXgtXA2s.mjs +0 -460
  1040. package/dist/approvals-BXgtXA2s.mjs.map +0 -1
  1041. package/dist/artifact-fetch-DsRczRGG.mjs +0 -659
  1042. package/dist/artifact-fetch-DsRczRGG.mjs.map +0 -1
  1043. package/dist/artifacts-D-O-qj9C.mjs +0 -307
  1044. package/dist/artifacts-D-O-qj9C.mjs.map +0 -1
  1045. package/dist/audit-CCH3MA4Y.mjs +0 -127
  1046. package/dist/audit-CCH3MA4Y.mjs.map +0 -1
  1047. package/dist/authoritative-records-Dcs7l2H5.mjs +0 -5183
  1048. package/dist/authoritative-records-Dcs7l2H5.mjs.map +0 -1
  1049. package/dist/authorize-TdIGpRSE.mjs +0 -49
  1050. package/dist/authorize-TdIGpRSE.mjs.map +0 -1
  1051. package/dist/backup-CZt5Mzwx.mjs +0 -246
  1052. package/dist/backup-CZt5Mzwx.mjs.map +0 -1
  1053. package/dist/block-types-DHnkzE6u.mjs +0 -132
  1054. package/dist/block-types-DHnkzE6u.mjs.map +0 -1
  1055. package/dist/block-values-C4N_F2-G.mjs +0 -175
  1056. package/dist/block-values-C4N_F2-G.mjs.map +0 -1
  1057. package/dist/byline-BmVKOQ8l.mjs +0 -909
  1058. package/dist/byline-BmVKOQ8l.mjs.map +0 -1
  1059. package/dist/byline-fields-B8SDs3M_.mjs +0 -123
  1060. package/dist/byline-fields-B8SDs3M_.mjs.map +0 -1
  1061. package/dist/byline-fields-Bze3ZdAw.mjs +0 -280
  1062. package/dist/byline-fields-Bze3ZdAw.mjs.map +0 -1
  1063. package/dist/bylines-CHhR28r9.mjs +0 -150
  1064. package/dist/bylines-CHhR28r9.mjs.map +0 -1
  1065. package/dist/bylines-DZS4OflA.mjs +0 -234
  1066. package/dist/bylines-DZS4OflA.mjs.map +0 -1
  1067. package/dist/cache-x0z8t_m9.mjs +0 -133
  1068. package/dist/cache-x0z8t_m9.mjs.map +0 -1
  1069. package/dist/canonical-BUcKRYpG.mjs +0 -174
  1070. package/dist/canonical-BUcKRYpG.mjs.map +0 -1
  1071. package/dist/capture-triggers-C9JKoIdT.mjs +0 -362
  1072. package/dist/capture-triggers-C9JKoIdT.mjs.map +0 -1
  1073. package/dist/challenge-store-BHgdPVze.mjs +0 -51
  1074. package/dist/challenge-store-BHgdPVze.mjs.map +0 -1
  1075. package/dist/checksum-BYR5i7qe.mjs +0 -162
  1076. package/dist/checksum-BYR5i7qe.mjs.map +0 -1
  1077. package/dist/chunks-Dr5Vr0zA.mjs +0 -25
  1078. package/dist/chunks-Dr5Vr0zA.mjs.map +0 -1
  1079. package/dist/collection-slugs-cache-B2Gs9Jwx.mjs +0 -85
  1080. package/dist/collection-slugs-cache-B2Gs9Jwx.mjs.map +0 -1
  1081. package/dist/comment-CWla6OHV.mjs +0 -325
  1082. package/dist/comment-CWla6OHV.mjs.map +0 -1
  1083. package/dist/comment-reaction-RZrcs5cW.mjs +0 -85
  1084. package/dist/comment-reaction-RZrcs5cW.mjs.map +0 -1
  1085. package/dist/comments-BzmIKVb2.mjs +0 -99
  1086. package/dist/comments-BzmIKVb2.mjs.map +0 -1
  1087. package/dist/comments-Da_dI2O1.mjs +0 -195
  1088. package/dist/comments-Da_dI2O1.mjs.map +0 -1
  1089. package/dist/components-oFXumpf5.mjs +0 -112
  1090. package/dist/components-oFXumpf5.mjs.map +0 -1
  1091. package/dist/config--wamYxBW.d.mts +0 -39
  1092. package/dist/config--wamYxBW.d.mts.map +0 -1
  1093. package/dist/config-Bo4eOOdV.mjs +0 -228
  1094. package/dist/config-Bo4eOOdV.mjs.map +0 -1
  1095. package/dist/config-C4-UxIk7.d.mts +0 -6790
  1096. package/dist/config-C4-UxIk7.d.mts.map +0 -1
  1097. package/dist/connection-UpzYxtE2.mjs +0 -36
  1098. package/dist/connection-UpzYxtE2.mjs.map +0 -1
  1099. package/dist/content-CcHrqkgp.mjs +0 -2072
  1100. package/dist/content-CcHrqkgp.mjs.map +0 -1
  1101. package/dist/content-list-query-Bxxdd9fv.d.mts +0 -26
  1102. package/dist/content-list-query-Bxxdd9fv.d.mts.map +0 -1
  1103. package/dist/content-repair-havk1F0-.mjs +0 -442
  1104. package/dist/content-repair-havk1F0-.mjs.map +0 -1
  1105. package/dist/context-CvhgHgSH.mjs +0 -2043
  1106. package/dist/context-CvhgHgSH.mjs.map +0 -1
  1107. package/dist/credits-CygUrPOi.mjs +0 -110
  1108. package/dist/credits-CygUrPOi.mjs.map +0 -1
  1109. package/dist/cron-C6ytTOLw.mjs +0 -306
  1110. package/dist/cron-C6ytTOLw.mjs.map +0 -1
  1111. package/dist/dashboard-7_FYfafc.mjs +0 -151
  1112. package/dist/dashboard-7_FYfafc.mjs.map +0 -1
  1113. package/dist/default-CHCUkV4Z.mjs +0 -81
  1114. package/dist/default-CHCUkV4Z.mjs.map +0 -1
  1115. package/dist/deferred-tasks-G0xhcJTl.d.mts +0 -9
  1116. package/dist/deferred-tasks-G0xhcJTl.d.mts.map +0 -1
  1117. package/dist/dev-typegen-Dtl8AfS6.mjs +0 -29
  1118. package/dist/dev-typegen-Dtl8AfS6.mjs.map +0 -1
  1119. package/dist/device-flow-CzDJmQ1q.mjs +0 -521
  1120. package/dist/device-flow-CzDJmQ1q.mjs.map +0 -1
  1121. package/dist/digest-xJmyPv2r.mjs +0 -194
  1122. package/dist/digest-xJmyPv2r.mjs.map +0 -1
  1123. package/dist/direct-executor-BXiYIVJ9.mjs +0 -104
  1124. package/dist/direct-executor-BXiYIVJ9.mjs.map +0 -1
  1125. package/dist/email-console-7ZPApLlm.mjs +0 -50
  1126. package/dist/email-console-7ZPApLlm.mjs.map +0 -1
  1127. package/dist/email-locale-DFdUA6UF.mjs +0 -25
  1128. package/dist/email-locale-DFdUA6UF.mjs.map +0 -1
  1129. package/dist/emdash-runtime-C4oFeVpN.mjs +0 -4363
  1130. package/dist/emdash-runtime-C4oFeVpN.mjs.map +0 -1
  1131. package/dist/entry-lock-B4n0HdQ_.mjs +0 -163
  1132. package/dist/entry-lock-B4n0HdQ_.mjs.map +0 -1
  1133. package/dist/entry-lock-BAAlKYrz.d.mts +0 -4566
  1134. package/dist/entry-lock-BAAlKYrz.d.mts.map +0 -1
  1135. package/dist/entry-lock-Cjz0h45X.mjs +0 -1209
  1136. package/dist/entry-lock-Cjz0h45X.mjs.map +0 -1
  1137. package/dist/env-types-4bkF6Bqg.mjs +0 -38
  1138. package/dist/env-types-4bkF6Bqg.mjs.map +0 -1
  1139. package/dist/error-DxgQdaZ_.mjs +0 -90
  1140. package/dist/error-DxgQdaZ_.mjs.map +0 -1
  1141. package/dist/errors-CjtE5aWF.mjs +0 -120
  1142. package/dist/errors-CjtE5aWF.mjs.map +0 -1
  1143. package/dist/errors-hskQ0C8G.mjs +0 -479
  1144. package/dist/errors-hskQ0C8G.mjs.map +0 -1
  1145. package/dist/escape-ESFhYzwG.mjs +0 -9
  1146. package/dist/escape-ESFhYzwG.mjs.map +0 -1
  1147. package/dist/fence-vc3aHgRA.mjs +0 -162
  1148. package/dist/fence-vc3aHgRA.mjs.map +0 -1
  1149. package/dist/field-defs-cache-zoow36nz.mjs +0 -77
  1150. package/dist/field-defs-cache-zoow36nz.mjs.map +0 -1
  1151. package/dist/field-map-JD1wG0Tq.mjs +0 -83
  1152. package/dist/field-map-JD1wG0Tq.mjs.map +0 -1
  1153. package/dist/fts-manager-WJCN8uU6.mjs +0 -443
  1154. package/dist/fts-manager-WJCN8uU6.mjs.map +0 -1
  1155. package/dist/gc-CsGZiKdH.mjs +0 -75
  1156. package/dist/gc-CsGZiKdH.mjs.map +0 -1
  1157. package/dist/hash-C4DFoJ7Z.mjs +0 -37
  1158. package/dist/hash-C4DFoJ7Z.mjs.map +0 -1
  1159. package/dist/hook-result-CXjtMk7Q.d.mts +0 -31
  1160. package/dist/hook-result-CXjtMk7Q.d.mts.map +0 -1
  1161. package/dist/hreflang-BAma7iRr.mjs +0 -105
  1162. package/dist/hreflang-BAma7iRr.mjs.map +0 -1
  1163. package/dist/hreflang-BsYo4x_M.d.mts +0 -50
  1164. package/dist/hreflang-BsYo4x_M.d.mts.map +0 -1
  1165. package/dist/http-route-dispatch-C8G7hAK6.mjs +0 -342
  1166. package/dist/http-route-dispatch-C8G7hAK6.mjs.map +0 -1
  1167. package/dist/identity-BwBKM1fH.mjs +0 -35
  1168. package/dist/identity-BwBKM1fH.mjs.map +0 -1
  1169. package/dist/import-DJ3Z2wxE.mjs +0 -2021
  1170. package/dist/import-DJ3Z2wxE.mjs.map +0 -1
  1171. package/dist/index-DYsn97dY.d.mts +0 -623
  1172. package/dist/index-DYsn97dY.d.mts.map +0 -1
  1173. package/dist/install-finalization-DCFnFSHv.mjs +0 -58
  1174. package/dist/install-finalization-DCFnFSHv.mjs.map +0 -1
  1175. package/dist/keys-CGvAndSp.mjs +0 -61
  1176. package/dist/keys-CGvAndSp.mjs.map +0 -1
  1177. package/dist/kinds-DT1W4T4Y.mjs +0 -974
  1178. package/dist/kinds-DT1W4T4Y.mjs.map +0 -1
  1179. package/dist/lifecycle-BzglCSY0.mjs +0 -25
  1180. package/dist/lifecycle-BzglCSY0.mjs.map +0 -1
  1181. package/dist/load-DjUqmf3s.mjs +0 -28
  1182. package/dist/load-DjUqmf3s.mjs.map +0 -1
  1183. package/dist/loader-CetY659y.mjs +0 -1355
  1184. package/dist/loader-CetY659y.mjs.map +0 -1
  1185. package/dist/loops-DkT1zkPH.mjs +0 -205
  1186. package/dist/loops-DkT1zkPH.mjs.map +0 -1
  1187. package/dist/manifest-builder-BOFCd9rX.mjs +0 -189
  1188. package/dist/manifest-builder-BOFCd9rX.mjs.map +0 -1
  1189. package/dist/manifest-schema-BiFBPEsp.mjs +0 -497
  1190. package/dist/manifest-schema-BiFBPEsp.mjs.map +0 -1
  1191. package/dist/marketplace-CUlenvZm.mjs +0 -257
  1192. package/dist/marketplace-CUlenvZm.mjs.map +0 -1
  1193. package/dist/media-CRKsKlfK.mjs +0 -416
  1194. package/dist/media-CRKsKlfK.mjs.map +0 -1
  1195. package/dist/media-C_z7sRuC.mjs +0 -294
  1196. package/dist/media-C_z7sRuC.mjs.map +0 -1
  1197. package/dist/media-IT8hQleU.mjs +0 -373
  1198. package/dist/media-IT8hQleU.mjs.map +0 -1
  1199. package/dist/media-allowlist-Ct6wvnT2.mjs +0 -45
  1200. package/dist/media-allowlist-Ct6wvnT2.mjs.map +0 -1
  1201. package/dist/media-folders-DtMt-vAA.mjs +0 -210
  1202. package/dist/media-folders-DtMt-vAA.mjs.map +0 -1
  1203. package/dist/media-url-BpXLqCmf.mjs +0 -43
  1204. package/dist/media-url-BpXLqCmf.mjs.map +0 -1
  1205. package/dist/media-usage-DEPHZZ9X.mjs +0 -282
  1206. package/dist/media-usage-DEPHZZ9X.mjs.map +0 -1
  1207. package/dist/media-usage-activation-V2Siabtw.mjs +0 -78
  1208. package/dist/media-usage-activation-V2Siabtw.mjs.map +0 -1
  1209. package/dist/media-usage-work-Cv1OE59F.mjs +0 -151
  1210. package/dist/media-usage-work-Cv1OE59F.mjs.map +0 -1
  1211. package/dist/media-usage-work-cgDYGvrt.mjs +0 -1015
  1212. package/dist/media-usage-work-cgDYGvrt.mjs.map +0 -1
  1213. package/dist/menus-CvVYfsuk.mjs +0 -753
  1214. package/dist/menus-CvVYfsuk.mjs.map +0 -1
  1215. package/dist/menus-D1HC8npj.mjs +0 -92
  1216. package/dist/menus-D1HC8npj.mjs.map +0 -1
  1217. package/dist/menus-DL8IPIcm.mjs +0 -3721
  1218. package/dist/menus-DL8IPIcm.mjs.map +0 -1
  1219. package/dist/mode-eieqAWLe.mjs +0 -23
  1220. package/dist/mode-eieqAWLe.mjs.map +0 -1
  1221. package/dist/node-sqlite-compat-VuyzJw1b.mjs +0 -63
  1222. package/dist/node-sqlite-compat-VuyzJw1b.mjs.map +0 -1
  1223. package/dist/oauth-authorization-B6ZJbMd2.mjs +0 -274
  1224. package/dist/oauth-authorization-B6ZJbMd2.mjs.map +0 -1
  1225. package/dist/oauth-clients-DVjRc9v3.mjs +0 -266
  1226. package/dist/oauth-clients-DVjRc9v3.mjs.map +0 -1
  1227. package/dist/oauth-state-store-CnmYYsVQ.mjs +0 -50
  1228. package/dist/oauth-state-store-CnmYYsVQ.mjs.map +0 -1
  1229. package/dist/oauth-user-lookup-Dz1_R5vT.mjs +0 -26
  1230. package/dist/oauth-user-lookup-Dz1_R5vT.mjs.map +0 -1
  1231. package/dist/options-BR9XZl7h.d.mts +0 -81
  1232. package/dist/options-BR9XZl7h.d.mts.map +0 -1
  1233. package/dist/ownership-COPyVysP.mjs +0 -12
  1234. package/dist/ownership-COPyVysP.mjs.map +0 -1
  1235. package/dist/parse-BOGhrwSq.d.mts +0 -174
  1236. package/dist/parse-BOGhrwSq.d.mts.map +0 -1
  1237. package/dist/parse-Cn5aSk1N.mjs +0 -81
  1238. package/dist/parse-Cn5aSk1N.mjs.map +0 -1
  1239. package/dist/passkey-config-mMFRQUCj.mjs +0 -46
  1240. package/dist/passkey-config-mMFRQUCj.mjs.map +0 -1
  1241. package/dist/paths-BmcAdBo9.mjs +0 -77
  1242. package/dist/paths-BmcAdBo9.mjs.map +0 -1
  1243. package/dist/placeholder-nOep3_Gn.d.mts +0 -306
  1244. package/dist/placeholder-nOep3_Gn.d.mts.map +0 -1
  1245. package/dist/plan-CDY4K8CH.mjs +0 -135
  1246. package/dist/plan-CDY4K8CH.mjs.map +0 -1
  1247. package/dist/plugins-DFBpfbO3.mjs +0 -261
  1248. package/dist/plugins-DFBpfbO3.mjs.map +0 -1
  1249. package/dist/policy-B_2qnHSy.mjs +0 -45
  1250. package/dist/policy-B_2qnHSy.mjs.map +0 -1
  1251. package/dist/portable-text-Dc2YAusw.mjs +0 -307
  1252. package/dist/portable-text-Dc2YAusw.mjs.map +0 -1
  1253. package/dist/preview-BtzikJ9O.mjs +0 -107
  1254. package/dist/preview-BtzikJ9O.mjs.map +0 -1
  1255. package/dist/protocol-M268ox8L.d.mts +0 -61
  1256. package/dist/protocol-M268ox8L.d.mts.map +0 -1
  1257. package/dist/public-submission-BQZavgZU.mjs +0 -251
  1258. package/dist/public-submission-BQZavgZU.mjs.map +0 -1
  1259. package/dist/public-url-uT1Ok2Tu.mjs +0 -101
  1260. package/dist/public-url-uT1Ok2Tu.mjs.map +0 -1
  1261. package/dist/query-BGG3sDEd.mjs +0 -1127
  1262. package/dist/query-BGG3sDEd.mjs.map +0 -1
  1263. package/dist/query-C_CWlifp.mjs +0 -41
  1264. package/dist/query-C_CWlifp.mjs.map +0 -1
  1265. package/dist/range-CXK_kDbI.mjs +0 -51
  1266. package/dist/range-CXK_kDbI.mjs.map +0 -1
  1267. package/dist/rate-limit-Dvamvay-.mjs +0 -127
  1268. package/dist/rate-limit-Dvamvay-.mjs.map +0 -1
  1269. package/dist/receipt-BmQGzquP.mjs +0 -43
  1270. package/dist/receipt-BmQGzquP.mjs.map +0 -1
  1271. package/dist/redirect-B39kTQ_0.mjs +0 -423
  1272. package/dist/redirect-B39kTQ_0.mjs.map +0 -1
  1273. package/dist/redirect-BguJ00Pv.mjs +0 -19
  1274. package/dist/redirect-BguJ00Pv.mjs.map +0 -1
  1275. package/dist/redirects-C8G4BsfP.mjs +0 -446
  1276. package/dist/redirects-C8G4BsfP.mjs.map +0 -1
  1277. package/dist/redirects-DFT7Wr-e.mjs +0 -148
  1278. package/dist/redirects-DFT7Wr-e.mjs.map +0 -1
  1279. package/dist/registry-DeZ27gVi.mjs +0 -8374
  1280. package/dist/registry-DeZ27gVi.mjs.map +0 -1
  1281. package/dist/relations-DBB1bRJW.mjs +0 -776
  1282. package/dist/relations-DBB1bRJW.mjs.map +0 -1
  1283. package/dist/request-meta-BSvkhIBX.mjs +0 -141
  1284. package/dist/request-meta-BSvkhIBX.mjs.map +0 -1
  1285. package/dist/resolve-BxH64HN9.mjs +0 -100
  1286. package/dist/resolve-BxH64HN9.mjs.map +0 -1
  1287. package/dist/revision-BWEH2qQB.mjs +0 -368
  1288. package/dist/revision-BWEH2qQB.mjs.map +0 -1
  1289. package/dist/route-wire-CwbWB_6O.mjs +0 -197
  1290. package/dist/route-wire-CwbWB_6O.mjs.map +0 -1
  1291. package/dist/routes-BfIxc7ft.mjs +0 -272
  1292. package/dist/routes-BfIxc7ft.mjs.map +0 -1
  1293. package/dist/runner-DkeafPBA.d.mts +0 -68
  1294. package/dist/runner-DkeafPBA.d.mts.map +0 -1
  1295. package/dist/runner-wqt4BrIW.mjs +0 -6383
  1296. package/dist/runner-wqt4BrIW.mjs.map +0 -1
  1297. package/dist/schema-BXIW-JHi.mjs +0 -815
  1298. package/dist/schema-BXIW-JHi.mjs.map +0 -1
  1299. package/dist/schema-I74JwYte.mjs +0 -13
  1300. package/dist/schema-I74JwYte.mjs.map +0 -1
  1301. package/dist/scopes-RWZ5ft_Z.mjs +0 -34
  1302. package/dist/scopes-RWZ5ft_Z.mjs.map +0 -1
  1303. package/dist/search-DxwagyWS.mjs +0 -450
  1304. package/dist/search-DxwagyWS.mjs.map +0 -1
  1305. package/dist/sections-Ccq9ZgyD.mjs +0 -346
  1306. package/dist/sections-Ccq9ZgyD.mjs.map +0 -1
  1307. package/dist/seo-CCnfPWAQ.mjs +0 -133
  1308. package/dist/seo-CCnfPWAQ.mjs.map +0 -1
  1309. package/dist/seo-QCtJ1jjV.mjs +0 -188
  1310. package/dist/seo-QCtJ1jjV.mjs.map +0 -1
  1311. package/dist/service-DX84s2rw.mjs +0 -150
  1312. package/dist/service-DX84s2rw.mjs.map +0 -1
  1313. package/dist/session-user-1dtJc2zv.mjs +0 -61
  1314. package/dist/session-user-1dtJc2zv.mjs.map +0 -1
  1315. package/dist/settings-B1jOxAIl.mjs +0 -443
  1316. package/dist/settings-B1jOxAIl.mjs.map +0 -1
  1317. package/dist/settings-Bc1IBl1t.mjs +0 -66
  1318. package/dist/settings-Bc1IBl1t.mjs.map +0 -1
  1319. package/dist/settings-GaZ5sVgg.mjs +0 -73
  1320. package/dist/settings-GaZ5sVgg.mjs.map +0 -1
  1321. package/dist/setup-complete-DidMAWJS.mjs +0 -65
  1322. package/dist/setup-complete-DidMAWJS.mjs.map +0 -1
  1323. package/dist/setup-nonce-DKl4S4c6.mjs +0 -25
  1324. package/dist/setup-nonce-DKl4S4c6.mjs.map +0 -1
  1325. package/dist/site-domain-CbI51Pc2.mjs +0 -113
  1326. package/dist/site-domain-CbI51Pc2.mjs.map +0 -1
  1327. package/dist/site-settings-CDdT4mVm.mjs +0 -50
  1328. package/dist/site-settings-CDdT4mVm.mjs.map +0 -1
  1329. package/dist/site-url-CrDZaAvo.mjs +0 -45
  1330. package/dist/site-url-CrDZaAvo.mjs.map +0 -1
  1331. package/dist/sitemap-name-W3BTor6X.mjs +0 -26
  1332. package/dist/sitemap-name-W3BTor6X.mjs.map +0 -1
  1333. package/dist/slug-BJhHKoOH.mjs +0 -16
  1334. package/dist/slug-BJhHKoOH.mjs.map +0 -1
  1335. package/dist/snapshot-BuI_2uDe.mjs +0 -414
  1336. package/dist/snapshot-BuI_2uDe.mjs.map +0 -1
  1337. package/dist/ssrf-LM_0wpGA.mjs +0 -406
  1338. package/dist/ssrf-LM_0wpGA.mjs.map +0 -1
  1339. package/dist/stage-DhzZuYaT.mjs +0 -662
  1340. package/dist/stage-DhzZuYaT.mjs.map +0 -1
  1341. package/dist/staged-DboEaWsV.mjs +0 -686
  1342. package/dist/staged-DboEaWsV.mjs.map +0 -1
  1343. package/dist/state-DCXDzjHq.mjs +0 -178
  1344. package/dist/state-DCXDzjHq.mjs.map +0 -1
  1345. package/dist/status-Dl85BK39.mjs +0 -30
  1346. package/dist/status-Dl85BK39.mjs.map +0 -1
  1347. package/dist/storage-query-BOBmeDMD.d.mts +0 -1615
  1348. package/dist/storage-query-BOBmeDMD.d.mts.map +0 -1
  1349. package/dist/tar-K40edFMt.mjs +0 -449
  1350. package/dist/tar-K40edFMt.mjs.map +0 -1
  1351. package/dist/target-BOighEY1.mjs +0 -27
  1352. package/dist/target-BOighEY1.mjs.map +0 -1
  1353. package/dist/taxonomies-DQSywBvX.mjs +0 -697
  1354. package/dist/taxonomies-DQSywBvX.mjs.map +0 -1
  1355. package/dist/taxonomies-Dj5eaobC.mjs +0 -939
  1356. package/dist/taxonomies-Dj5eaobC.mjs.map +0 -1
  1357. package/dist/taxonomy-QrNmTfIZ.mjs +0 -550
  1358. package/dist/taxonomy-QrNmTfIZ.mjs.map +0 -1
  1359. package/dist/tokens-j5L0as2H.mjs +0 -171
  1360. package/dist/tokens-j5L0as2H.mjs.map +0 -1
  1361. package/dist/transfer-CYEw8Tu4.mjs +0 -8873
  1362. package/dist/transfer-CYEw8Tu4.mjs.map +0 -1
  1363. package/dist/transfer-DDX10hkD.mjs +0 -166
  1364. package/dist/transfer-DDX10hkD.mjs.map +0 -1
  1365. package/dist/transfer-download-BAqq6GJv.mjs +0 -33
  1366. package/dist/transfer-download-BAqq6GJv.mjs.map +0 -1
  1367. package/dist/transformations-De44wqV_.mjs +0 -196
  1368. package/dist/transformations-De44wqV_.mjs.map +0 -1
  1369. package/dist/transport-1QjUhCRO.d.mts +0 -42
  1370. package/dist/transport-1QjUhCRO.d.mts.map +0 -1
  1371. package/dist/transport-Ds5pVX7p.mjs +0 -136
  1372. package/dist/transport-Ds5pVX7p.mjs.map +0 -1
  1373. package/dist/trusted-proxy-d4Tk6biT.mjs +0 -51
  1374. package/dist/trusted-proxy-d4Tk6biT.mjs.map +0 -1
  1375. package/dist/turnstile-DaFLtyrs.mjs +0 -58
  1376. package/dist/turnstile-DaFLtyrs.mjs.map +0 -1
  1377. package/dist/types-B4-1P2DK.d.mts +0 -227
  1378. package/dist/types-B4-1P2DK.d.mts.map +0 -1
  1379. package/dist/types-BKXA0f-c.mjs +0 -16
  1380. package/dist/types-BKXA0f-c.mjs.map +0 -1
  1381. package/dist/types-BiHcpUoO.d.mts +0 -374
  1382. package/dist/types-BiHcpUoO.d.mts.map +0 -1
  1383. package/dist/types-BihhvkyN.d.mts +0 -85
  1384. package/dist/types-BihhvkyN.d.mts.map +0 -1
  1385. package/dist/types-Bq9Wohd7.d.mts +0 -363
  1386. package/dist/types-Bq9Wohd7.d.mts.map +0 -1
  1387. package/dist/types-C-Xp0CcN.mjs +0 -103
  1388. package/dist/types-C-Xp0CcN.mjs.map +0 -1
  1389. package/dist/types-C4P7F1Vq.d.mts +0 -1741
  1390. package/dist/types-C4P7F1Vq.d.mts.map +0 -1
  1391. package/dist/types-CGaqwHw4.mjs +0 -37
  1392. package/dist/types-CGaqwHw4.mjs.map +0 -1
  1393. package/dist/types-D4ECCE4X.mjs +0 -77
  1394. package/dist/types-D4ECCE4X.mjs.map +0 -1
  1395. package/dist/types-DcRJp0vS.d.mts +0 -125
  1396. package/dist/types-DcRJp0vS.d.mts.map +0 -1
  1397. package/dist/types-Ff85fTzU.d.mts +0 -289
  1398. package/dist/types-Ff85fTzU.d.mts.map +0 -1
  1399. package/dist/types-UKr5Sf4y.d.mts +0 -916
  1400. package/dist/types-UKr5Sf4y.d.mts.map +0 -1
  1401. package/dist/types-YpN8hZW7.d.mts +0 -204
  1402. package/dist/types-YpN8hZW7.d.mts.map +0 -1
  1403. package/dist/update-check-DrlsK-tt.mjs +0 -161
  1404. package/dist/update-check-DrlsK-tt.mjs.map +0 -1
  1405. package/dist/upload-attempts-D8CPPvRU.mjs +0 -32
  1406. package/dist/upload-attempts-D8CPPvRU.mjs.map +0 -1
  1407. package/dist/url-pattern-Di4Nn3vP.mjs +0 -41
  1408. package/dist/url-pattern-Di4Nn3vP.mjs.map +0 -1
  1409. package/dist/user-B-ZdGjhI.mjs +0 -171
  1410. package/dist/user-B-ZdGjhI.mjs.map +0 -1
  1411. package/dist/utils-D7wL3r6-.mjs +0 -437
  1412. package/dist/utils-D7wL3r6-.mjs.map +0 -1
  1413. package/dist/validate-BSZbSUDk.mjs +0 -524
  1414. package/dist/validate-BSZbSUDk.mjs.map +0 -1
  1415. package/dist/validate-Dfv0DpZi.d.mts +0 -468
  1416. package/dist/validate-Dfv0DpZi.d.mts.map +0 -1
  1417. package/dist/validation-DRyC_Vm5.mjs +0 -219
  1418. package/dist/validation-DRyC_Vm5.mjs.map +0 -1
  1419. package/dist/version-C4kz0PcO.mjs +0 -7
  1420. package/dist/version-C4kz0PcO.mjs.map +0 -1
  1421. package/dist/version-jhs2BRtl.mjs +0 -9
  1422. package/dist/version-jhs2BRtl.mjs.map +0 -1
  1423. package/dist/video-DReZ48Un.mjs +0 -54
  1424. package/dist/video-DReZ48Un.mjs.map +0 -1
  1425. package/dist/virtual-modules-D0e6VbEv.mjs +0 -516
  1426. package/dist/virtual-modules-D0e6VbEv.mjs.map +0 -1
  1427. package/dist/widgets-BkcMzKct.mjs +0 -121
  1428. package/dist/widgets-BkcMzKct.mjs.map +0 -1
  1429. package/dist/wxr-taxonomies-BxI0CbTg.mjs +0 -453
  1430. package/dist/wxr-taxonomies-BxI0CbTg.mjs.map +0 -1
  1431. package/dist/wxr-taxonomies-Dad33GJi.d.mts +0 -34
  1432. package/dist/wxr-taxonomies-Dad33GJi.d.mts.map +0 -1
  1433. package/dist/zod-generator-BQilAboC.mjs +0 -424
  1434. package/dist/zod-generator-BQilAboC.mjs.map +0 -1
  1435. /package/dist/{api-tokens-D2zgAIEt.mjs → api-tokens-CdP49zVF.mjs} +0 -0
  1436. /package/dist/{ssrf-BvNItdxk.mjs → ssrf-DM0E-D_8.mjs} +0 -0
@@ -0,0 +1,166 @@
1
+ import { d as IMPORT_STATES, l as EXPORT_STATES, t as APPROVAL_STATUSES } from "./approvals-D-m6wvGl.mjs";
2
+ import { a as siteImportDecisionsInputSchema, o as siteImportPlanSchema } from "./plan-CCoqxNoU.mjs";
3
+ import { z } from "zod";
4
+
5
+ //#region src/api/schemas/transfer.ts
6
+ const sha256DigestSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/);
7
+ const transferPaginationQuery = z.object({
8
+ cursor: z.string().min(1).max(2048).optional().meta({ description: "Opaque cursor from the previous page's `nextCursor`" }),
9
+ limit: z.coerce.number().int().min(1).max(100).optional().default(50).meta({ description: "Maximum number of items to return (1-100, default 50)" })
10
+ });
11
+ const transferApprovalListQuery = transferPaginationQuery.extend({ status: z.enum(APPROVAL_STATUSES).optional().meta({ description: "Only approvals in this status" }) });
12
+ const transferImportAnalyzeBody = z.object({ decisions: siteImportDecisionsInputSchema.optional().meta({ description: "Principal mappings and site title/tagline choices. Applied once analysis has produced a plan; omitted values keep the plan's defaults." }) }).meta({ id: "TransferImportAnalyzeBody" });
13
+ const transferOperationSchema = z.object({
14
+ id: z.string(),
15
+ kind: z.enum(["export", "import"]),
16
+ state: z.union([z.enum(EXPORT_STATES), z.enum(IMPORT_STATES)]),
17
+ stage: z.string().nullable(),
18
+ cursor: z.unknown().nullable(),
19
+ progress: z.object({
20
+ done: z.number().int().min(0),
21
+ total: z.number().int().min(0),
22
+ records: z.number().int().min(0).optional().meta({ description: "Records an export has written so far" }),
23
+ bytesDone: z.number().int().min(0).optional(),
24
+ bytesTotal: z.number().int().min(0).optional()
25
+ }).nullable(),
26
+ options: z.unknown(),
27
+ idempotencyKey: z.string().nullable(),
28
+ packageDigest: sha256DigestSchema.nullable(),
29
+ planDigest: sha256DigestSchema.nullable(),
30
+ originSiteId: z.string().nullable(),
31
+ receipt: z.unknown().nullable(),
32
+ errorCode: z.string().nullable(),
33
+ errorDetail: z.record(z.string(), z.unknown()).nullable(),
34
+ writeEpoch: z.number().int(),
35
+ attemptCount: z.number().int(),
36
+ leaseExpiresAt: z.string().nullable(),
37
+ runtimeGeneration: z.number().int(),
38
+ cancelRequestedAt: z.string().nullable(),
39
+ mutationStartedAt: z.string().nullable(),
40
+ createdBy: z.string(),
41
+ createdAt: z.string(),
42
+ updatedAt: z.string(),
43
+ completedAt: z.string().nullable(),
44
+ expiresAt: z.string().nullable(),
45
+ stagingCollectedAt: z.string().nullable()
46
+ }).meta({ id: "TransferOperation" });
47
+ const transferOperationResponseSchema = z.object({ operation: transferOperationSchema }).meta({ id: "TransferOperationResponse" });
48
+ const transferOperationListResponseSchema = z.object({
49
+ items: z.array(transferOperationSchema),
50
+ nextCursor: z.string().optional()
51
+ }).meta({ id: "TransferOperationListResponse" });
52
+ const transferMissingFileSchema = z.object({
53
+ path: z.string(),
54
+ bytes: z.number().int().min(0),
55
+ sha256: z.string().regex(/^[0-9a-f]{64}$/)
56
+ }).meta({ id: "TransferMissingFile" });
57
+ const transferMissingFilesResponseSchema = z.object({
58
+ items: z.array(transferMissingFileSchema),
59
+ nextCursor: z.string().optional()
60
+ }).meta({ id: "TransferMissingFilesResponse" });
61
+ const transferImportCreateResponseSchema = z.object({
62
+ operation: transferOperationSchema,
63
+ created: z.boolean(),
64
+ missing: transferMissingFilesResponseSchema
65
+ }).meta({ id: "TransferImportCreateResponse" });
66
+ const transferImportStatusResponseSchema = z.object({
67
+ operation: transferOperationSchema,
68
+ files: z.object({
69
+ declared: z.number().int().min(0),
70
+ verified: z.number().int().min(0)
71
+ })
72
+ }).meta({ id: "TransferImportStatusResponse" });
73
+ const transferFileUploadResponseSchema = z.object({
74
+ path: z.string(),
75
+ bytes: z.number().int().min(0),
76
+ alreadyVerified: z.boolean(),
77
+ remaining: z.number().int().min(0)
78
+ }).meta({ id: "TransferFileUploadResponse" });
79
+ const transferImportAnalyzeResponseSchema = z.object({
80
+ operation: transferOperationSchema,
81
+ plan: siteImportPlanSchema.optional(),
82
+ planDigest: sha256DigestSchema.optional(),
83
+ nextRequestInMs: z.number().int().min(0).nullable()
84
+ }).meta({ id: "TransferImportAnalyzeResponse" });
85
+ const transferImportPlanResponseSchema = z.object({
86
+ plan: siteImportPlanSchema,
87
+ planDigest: sha256DigestSchema
88
+ }).meta({ id: "TransferImportPlanResponse" });
89
+ const transferCapabilitiesSchema = z.object({
90
+ formatVersions: z.array(z.string()),
91
+ features: z.array(z.string()),
92
+ optionalFeatures: z.array(z.string()),
93
+ limits: z.object({
94
+ manifestBytes: z.number().int(),
95
+ recordLineBytes: z.number().int(),
96
+ chunkBytes: z.number().int(),
97
+ chunkRecords: z.number().int(),
98
+ totalRecords: z.number().int(),
99
+ totalFiles: z.number().int(),
100
+ indexChunks: z.number().int(),
101
+ jsonDepth: z.number().int(),
102
+ maxBlobBytes: z.number().int()
103
+ }),
104
+ portableDomain: z.object({
105
+ empty: z.boolean(),
106
+ blockers: z.array(z.record(z.string(), z.string())),
107
+ seededScaffold: z.array(z.record(z.string(), z.string()))
108
+ })
109
+ }).meta({ id: "TransferCapabilities" });
110
+ const transferApprovalSchema = z.object({
111
+ id: z.string(),
112
+ status: z.enum(APPROVAL_STATUSES),
113
+ action: z.enum(["export", "import"]),
114
+ userId: z.string(),
115
+ requestedByTokenId: z.string().nullable(),
116
+ approvedBy: z.string().nullable(),
117
+ operationId: z.string().nullable(),
118
+ paramsDigest: sha256DigestSchema.nullable(),
119
+ packageDigest: sha256DigestSchema.nullable(),
120
+ planDigest: sha256DigestSchema.nullable(),
121
+ expiresAt: z.string(),
122
+ createdAt: z.string(),
123
+ decidedAt: z.string().nullable(),
124
+ consumedAt: z.string().nullable()
125
+ }).meta({ id: "TransferApproval" });
126
+ const transferApprovalResponseSchema = z.object({ approval: transferApprovalSchema }).meta({ id: "TransferApprovalResponse" });
127
+ const transferApprovalListResponseSchema = z.object({
128
+ items: z.array(transferApprovalSchema),
129
+ nextCursor: z.string().optional()
130
+ }).meta({ id: "TransferApprovalListResponse" });
131
+ const transferImportExecuteBody = z.object({
132
+ packageDigest: sha256DigestSchema,
133
+ planDigest: sha256DigestSchema
134
+ }).meta({ id: "TransferImportExecuteBody" });
135
+ const transferExportCreateBody = z.strictObject({ comments: z.boolean().optional().meta({ description: "Include comments and reactions (default true)" }) }).meta({ id: "TransferExportCreateBody" });
136
+ const transferExportCreateResponseSchema = z.object({
137
+ operation: transferOperationSchema,
138
+ created: z.boolean()
139
+ }).meta({ id: "TransferExportCreateResponse" });
140
+ const transferAdvanceResponseSchema = z.object({
141
+ operation: transferOperationSchema,
142
+ nextRequestInMs: z.number().int().min(0).nullable()
143
+ }).meta({ id: "TransferAdvanceResponse" });
144
+ const transferImportReceiptSchema = z.object({
145
+ operationId: z.string(),
146
+ packageDigest: sha256DigestSchema,
147
+ planDigest: sha256DigestSchema,
148
+ targetSiteId: z.string(),
149
+ originSiteId: z.string(),
150
+ formatVersion: z.string(),
151
+ importerEmDashVersion: z.string(),
152
+ completedAt: z.string(),
153
+ logicalDigest: sha256DigestSchema,
154
+ counts: z.record(z.string(), z.number().int().min(0)),
155
+ warnings: z.array(z.object({
156
+ code: z.string(),
157
+ message: z.string()
158
+ })),
159
+ verification: z.literal("verified"),
160
+ receiptDigest: sha256DigestSchema.meta({ description: "Digest of the canonical JSON of every other receipt field" })
161
+ }).meta({ id: "TransferImportReceipt" });
162
+ const transferImportReceiptResponseSchema = z.object({ receipt: transferImportReceiptSchema }).meta({ id: "TransferImportReceiptResponse" });
163
+
164
+ //#endregion
165
+ export { transferOperationListResponseSchema as _, transferCapabilitiesSchema as a, transferFileUploadResponseSchema as c, transferImportCreateResponseSchema as d, transferImportExecuteBody as f, transferMissingFilesResponseSchema as g, transferImportStatusResponseSchema as h, transferApprovalResponseSchema as i, transferImportAnalyzeBody as l, transferImportReceiptResponseSchema as m, transferApprovalListQuery as n, transferExportCreateBody as o, transferImportPlanResponseSchema as p, transferApprovalListResponseSchema as r, transferExportCreateResponseSchema as s, transferAdvanceResponseSchema as t, transferImportAnalyzeResponseSchema as u, transferOperationResponseSchema as v, transferPaginationQuery as y };
166
+ //# sourceMappingURL=transfer-WmWiR3xf.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-WmWiR3xf.mjs","names":[],"sources":["../src/api/schemas/transfer.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport {\n\tsiteImportDecisionsInputSchema,\n\tsiteImportPlanSchema,\n} from \"../../transfer/format/plan.js\";\nimport { APPROVAL_STATUSES } from \"../../transfer/ops/approvals.js\";\nimport { EXPORT_STATES, IMPORT_STATES } from \"../../transfer/ops/states.js\";\n\nconst sha256DigestSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/);\n\nexport const transferPaginationQuery = z.object({\n\tcursor: z.string().min(1).max(2048).optional().meta({\n\t\tdescription: \"Opaque cursor from the previous page's `nextCursor`\",\n\t}),\n\tlimit: z.coerce.number().int().min(1).max(100).optional().default(50).meta({\n\t\tdescription: \"Maximum number of items to return (1-100, default 50)\",\n\t}),\n});\n\nexport const transferApprovalListQuery = transferPaginationQuery.extend({\n\tstatus: z\n\t\t.enum(APPROVAL_STATUSES)\n\t\t.optional()\n\t\t.meta({ description: \"Only approvals in this status\" }),\n});\n\nexport const transferImportAnalyzeBody = z\n\t.object({\n\t\tdecisions: siteImportDecisionsInputSchema.optional().meta({\n\t\t\tdescription:\n\t\t\t\t\"Principal mappings and site title/tagline choices. Applied once analysis has produced a plan; omitted values keep the plan's defaults.\",\n\t\t}),\n\t})\n\t.meta({ id: \"TransferImportAnalyzeBody\" });\n\nexport const transferOperationSchema = z\n\t.object({\n\t\tid: z.string(),\n\t\tkind: z.enum([\"export\", \"import\"]),\n\t\tstate: z.union([z.enum(EXPORT_STATES), z.enum(IMPORT_STATES)]),\n\t\tstage: z.string().nullable(),\n\t\tcursor: z.unknown().nullable(),\n\t\tprogress: z\n\t\t\t.object({\n\t\t\t\tdone: z.number().int().min(0),\n\t\t\t\ttotal: z.number().int().min(0),\n\t\t\t\trecords: z.number().int().min(0).optional().meta({\n\t\t\t\t\tdescription: \"Records an export has written so far\",\n\t\t\t\t}),\n\t\t\t\tbytesDone: z.number().int().min(0).optional(),\n\t\t\t\tbytesTotal: z.number().int().min(0).optional(),\n\t\t\t})\n\t\t\t.nullable(),\n\t\toptions: z.unknown(),\n\t\tidempotencyKey: z.string().nullable(),\n\t\tpackageDigest: sha256DigestSchema.nullable(),\n\t\tplanDigest: sha256DigestSchema.nullable(),\n\t\toriginSiteId: z.string().nullable(),\n\t\treceipt: z.unknown().nullable(),\n\t\terrorCode: z.string().nullable(),\n\t\terrorDetail: z.record(z.string(), z.unknown()).nullable(),\n\t\twriteEpoch: z.number().int(),\n\t\tattemptCount: z.number().int(),\n\t\tleaseExpiresAt: z.string().nullable(),\n\t\truntimeGeneration: z.number().int(),\n\t\tcancelRequestedAt: z.string().nullable(),\n\t\tmutationStartedAt: z.string().nullable(),\n\t\tcreatedBy: z.string(),\n\t\tcreatedAt: z.string(),\n\t\tupdatedAt: z.string(),\n\t\tcompletedAt: z.string().nullable(),\n\t\texpiresAt: z.string().nullable(),\n\t\tstagingCollectedAt: z.string().nullable(),\n\t})\n\t.meta({ id: \"TransferOperation\" });\n\nexport const transferOperationResponseSchema = z\n\t.object({ operation: transferOperationSchema })\n\t.meta({ id: \"TransferOperationResponse\" });\n\nexport const transferOperationListResponseSchema = z\n\t.object({\n\t\titems: z.array(transferOperationSchema),\n\t\tnextCursor: z.string().optional(),\n\t})\n\t.meta({ id: \"TransferOperationListResponse\" });\n\nexport const transferMissingFileSchema = z\n\t.object({\n\t\tpath: z.string(),\n\t\tbytes: z.number().int().min(0),\n\t\tsha256: z.string().regex(/^[0-9a-f]{64}$/),\n\t})\n\t.meta({ id: \"TransferMissingFile\" });\n\nexport const transferMissingFilesResponseSchema = z\n\t.object({\n\t\titems: z.array(transferMissingFileSchema),\n\t\tnextCursor: z.string().optional(),\n\t})\n\t.meta({ id: \"TransferMissingFilesResponse\" });\n\nexport const transferImportCreateResponseSchema = z\n\t.object({\n\t\toperation: transferOperationSchema,\n\t\tcreated: z.boolean(),\n\t\tmissing: transferMissingFilesResponseSchema,\n\t})\n\t.meta({ id: \"TransferImportCreateResponse\" });\n\nexport const transferImportStatusResponseSchema = z\n\t.object({\n\t\toperation: transferOperationSchema,\n\t\tfiles: z.object({\n\t\t\tdeclared: z.number().int().min(0),\n\t\t\tverified: z.number().int().min(0),\n\t\t}),\n\t})\n\t.meta({ id: \"TransferImportStatusResponse\" });\n\nexport const transferFileUploadResponseSchema = z\n\t.object({\n\t\tpath: z.string(),\n\t\tbytes: z.number().int().min(0),\n\t\talreadyVerified: z.boolean(),\n\t\tremaining: z.number().int().min(0),\n\t})\n\t.meta({ id: \"TransferFileUploadResponse\" });\n\nexport const transferImportAnalyzeResponseSchema = z\n\t.object({\n\t\toperation: transferOperationSchema,\n\t\tplan: siteImportPlanSchema.optional(),\n\t\tplanDigest: sha256DigestSchema.optional(),\n\t\tnextRequestInMs: z.number().int().min(0).nullable(),\n\t})\n\t.meta({ id: \"TransferImportAnalyzeResponse\" });\n\nexport const transferImportPlanResponseSchema = z\n\t.object({\n\t\tplan: siteImportPlanSchema,\n\t\tplanDigest: sha256DigestSchema,\n\t})\n\t.meta({ id: \"TransferImportPlanResponse\" });\n\nexport const transferCapabilitiesSchema = z\n\t.object({\n\t\tformatVersions: z.array(z.string()),\n\t\tfeatures: z.array(z.string()),\n\t\toptionalFeatures: z.array(z.string()),\n\t\tlimits: z.object({\n\t\t\tmanifestBytes: z.number().int(),\n\t\t\trecordLineBytes: z.number().int(),\n\t\t\tchunkBytes: z.number().int(),\n\t\t\tchunkRecords: z.number().int(),\n\t\t\ttotalRecords: z.number().int(),\n\t\t\ttotalFiles: z.number().int(),\n\t\t\tindexChunks: z.number().int(),\n\t\t\tjsonDepth: z.number().int(),\n\t\t\tmaxBlobBytes: z.number().int(),\n\t\t}),\n\t\tportableDomain: z.object({\n\t\t\tempty: z.boolean(),\n\t\t\tblockers: z.array(z.record(z.string(), z.string())),\n\t\t\tseededScaffold: z.array(z.record(z.string(), z.string())),\n\t\t}),\n\t})\n\t.meta({ id: \"TransferCapabilities\" });\n\nexport const transferApprovalSchema = z\n\t.object({\n\t\tid: z.string(),\n\t\tstatus: z.enum(APPROVAL_STATUSES),\n\t\taction: z.enum([\"export\", \"import\"]),\n\t\tuserId: z.string(),\n\t\trequestedByTokenId: z.string().nullable(),\n\t\tapprovedBy: z.string().nullable(),\n\t\toperationId: z.string().nullable(),\n\t\tparamsDigest: sha256DigestSchema.nullable(),\n\t\tpackageDigest: sha256DigestSchema.nullable(),\n\t\tplanDigest: sha256DigestSchema.nullable(),\n\t\texpiresAt: z.string(),\n\t\tcreatedAt: z.string(),\n\t\tdecidedAt: z.string().nullable(),\n\t\tconsumedAt: z.string().nullable(),\n\t})\n\t.meta({ id: \"TransferApproval\" });\n\nexport const transferApprovalResponseSchema = z\n\t.object({ approval: transferApprovalSchema })\n\t.meta({ id: \"TransferApprovalResponse\" });\n\nexport const transferApprovalListResponseSchema = z\n\t.object({\n\t\titems: z.array(transferApprovalSchema),\n\t\tnextCursor: z.string().optional(),\n\t})\n\t.meta({ id: \"TransferApprovalListResponse\" });\n\nexport const transferImportExecuteBody = z\n\t.object({\n\t\tpackageDigest: sha256DigestSchema,\n\t\tplanDigest: sha256DigestSchema,\n\t})\n\t.meta({ id: \"TransferImportExecuteBody\" });\n\nexport const transferExportCreateBody = z\n\t.strictObject({\n\t\tcomments: z.boolean().optional().meta({\n\t\t\tdescription: \"Include comments and reactions (default true)\",\n\t\t}),\n\t})\n\t.meta({ id: \"TransferExportCreateBody\" });\n\nexport const transferExportCreateResponseSchema = z\n\t.object({ operation: transferOperationSchema, created: z.boolean() })\n\t.meta({ id: \"TransferExportCreateResponse\" });\n\nexport const transferAdvanceResponseSchema = z\n\t.object({\n\t\toperation: transferOperationSchema,\n\t\tnextRequestInMs: z.number().int().min(0).nullable(),\n\t})\n\t.meta({ id: \"TransferAdvanceResponse\" });\n\nexport const transferImportReceiptSchema = z\n\t.object({\n\t\toperationId: z.string(),\n\t\tpackageDigest: sha256DigestSchema,\n\t\tplanDigest: sha256DigestSchema,\n\t\ttargetSiteId: z.string(),\n\t\toriginSiteId: z.string(),\n\t\tformatVersion: z.string(),\n\t\timporterEmDashVersion: z.string(),\n\t\tcompletedAt: z.string(),\n\t\tlogicalDigest: sha256DigestSchema,\n\t\tcounts: z.record(z.string(), z.number().int().min(0)),\n\t\twarnings: z.array(z.object({ code: z.string(), message: z.string() })),\n\t\tverification: z.literal(\"verified\"),\n\t\treceiptDigest: sha256DigestSchema.meta({\n\t\t\tdescription: \"Digest of the canonical JSON of every other receipt field\",\n\t\t}),\n\t})\n\t.meta({ id: \"TransferImportReceipt\" });\n\nexport const transferImportReceiptResponseSchema = z\n\t.object({ receipt: transferImportReceiptSchema })\n\t.meta({ id: \"TransferImportReceiptResponse\" });\n"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ //#region src/api/transfer-download.ts
2
+ const DOWNLOAD_HEADERS = {
3
+ "Cache-Control": "private, no-store",
4
+ "X-Content-Type-Options": "nosniff"
5
+ };
6
+ /** A downloaded package file: raw bytes with their size and SHA-256 ETag. */
7
+ function exportFileResponse(file) {
8
+ return new Response(file.body, {
9
+ status: 200,
10
+ headers: {
11
+ ...DOWNLOAD_HEADERS,
12
+ "Content-Type": file.path === "manifest.json" ? "application/json" : "application/octet-stream",
13
+ "Content-Length": String(file.bytes),
14
+ "Content-Disposition": "attachment",
15
+ ETag: `"${file.sha256}"`
16
+ }
17
+ });
18
+ }
19
+ /** A streamed `.emdash` archive of an export. */
20
+ function exportArchiveResponse(operationId, body) {
21
+ return new Response(body, {
22
+ status: 200,
23
+ headers: {
24
+ ...DOWNLOAD_HEADERS,
25
+ "Content-Type": "application/x-tar",
26
+ "Content-Disposition": `attachment; filename="emdash-site-${operationId}.emdash"`
27
+ }
28
+ });
29
+ }
30
+
31
+ //#endregion
32
+ export { exportFileResponse as n, exportArchiveResponse as t };
33
+ //# sourceMappingURL=transfer-download--ofRj9Cw.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-download--ofRj9Cw.mjs","names":[],"sources":["../src/api/transfer-download.ts"],"sourcesContent":["import type { ExportFileStream } from \"./handlers/transfer.js\";\n\nconst DOWNLOAD_HEADERS = {\n\t\"Cache-Control\": \"private, no-store\",\n\t\"X-Content-Type-Options\": \"nosniff\",\n};\n\n/** A downloaded package file: raw bytes with their size and SHA-256 ETag. */\nexport function exportFileResponse(file: ExportFileStream): Response {\n\treturn new Response(file.body, {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t...DOWNLOAD_HEADERS,\n\t\t\t\"Content-Type\":\n\t\t\t\tfile.path === \"manifest.json\" ? \"application/json\" : \"application/octet-stream\",\n\t\t\t\"Content-Length\": String(file.bytes),\n\t\t\t\"Content-Disposition\": \"attachment\",\n\t\t\tETag: `\"${file.sha256}\"`,\n\t\t},\n\t});\n}\n\n/** A streamed `.emdash` archive of an export. */\nexport function exportArchiveResponse(\n\toperationId: string,\n\tbody: ReadableStream<Uint8Array>,\n): Response {\n\treturn new Response(body, {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t...DOWNLOAD_HEADERS,\n\t\t\t\"Content-Type\": \"application/x-tar\",\n\t\t\t\"Content-Disposition\": `attachment; filename=\"emdash-site-${operationId}.emdash\"`,\n\t\t},\n\t});\n}\n"],"mappings":";AAEA,MAAM,mBAAmB;CACxB,iBAAiB;CACjB,0BAA0B;CAC1B;;AAGD,SAAgB,mBAAmB,MAAkC;AACpE,QAAO,IAAI,SAAS,KAAK,MAAM;EAC9B,QAAQ;EACR,SAAS;GACR,GAAG;GACH,gBACC,KAAK,SAAS,kBAAkB,qBAAqB;GACtD,kBAAkB,OAAO,KAAK,MAAM;GACpC,uBAAuB;GACvB,MAAM,IAAI,KAAK,OAAO;GACtB;EACD,CAAC;;;AAIH,SAAgB,sBACf,aACA,MACW;AACX,QAAO,IAAI,SAAS,MAAM;EACzB,QAAQ;EACR,SAAS;GACR,GAAG;GACH,gBAAgB;GAChB,uBAAuB,qCAAqC,YAAY;GACxE;EACD,CAAC"}
@@ -0,0 +1,196 @@
1
+ import { h as portableIdSchema, i as RECORD_KINDS } from "./kinds-B_Qcl5pz.mjs";
2
+ import { z } from "zod";
3
+
4
+ //#region src/transfer/format/transformations.ts
5
+ /**
6
+ * Declared transformations: every way the target state may legitimately
7
+ * differ from the package's records.
8
+ *
9
+ * Two families exist:
10
+ * - Export transformations are applied by the exporter and declared in
11
+ * `manifest.transformations` (the package already reflects them).
12
+ * - Import transformations are decided during analysis, declared in the plan
13
+ * (and therefore covered by the plan digest), applied by the importer, and
14
+ * predicted by verification with {@link applyTransformations}.
15
+ *
16
+ * A plan lists the package's export transformations ahead of its import
17
+ * transformations, so it declares every difference from the origin site.
18
+ * Plan warnings never repeat a transformation.
19
+ *
20
+ * Storage-key placeholders are not a transformation: verification converts
21
+ * target keys back to placeholders with `rewriteMediaRefs(…, { mode: "verify" })`.
22
+ */
23
+ const EXPORT_TRANSFORMATION_CODES = [
24
+ "soft_orphan_dropped",
25
+ "avatar_nulled",
26
+ "redirect_duplicate_dropped",
27
+ "media_not_ready_dropped",
28
+ "media_url_relativized",
29
+ "orphan_dropped",
30
+ "orphan_reference_nulled",
31
+ "media_ref_unlinked",
32
+ "unknown_storage_key"
33
+ ];
34
+ const IMPORT_TRANSFORMATION_CODES = [
35
+ "principal_mapped",
36
+ "principal_unmapped",
37
+ "seeded_scaffold_removed",
38
+ "redirect_loop_disabled",
39
+ "search_unsupported",
40
+ "float4_rounded",
41
+ "locale_recased"
42
+ ];
43
+ const recordKindSchema = z.enum(RECORD_KINDS);
44
+ const count = z.number().int().nonnegative();
45
+ const MAX_LISTED_IDS = 1e4;
46
+ const MAX_LISTED_LOCALES = 1e3;
47
+ const localeSchema = z.string().min(1).max(64);
48
+ /**
49
+ * Declared in `manifest.transformations`, sorted by `(code, kind)`.
50
+ * `unknown_storage_key` counts records that refer to a media file URL or
51
+ * storage key the origin media table does not know; those references are
52
+ * exported unchanged and will not resolve on the target.
53
+ */
54
+ const exportTransformationSchema = z.strictObject({
55
+ code: z.enum(EXPORT_TRANSFORMATION_CODES),
56
+ kind: recordKindSchema,
57
+ count
58
+ });
59
+ const importTransformationSchema = z.discriminatedUnion("code", [
60
+ z.strictObject({
61
+ code: z.literal("principal_mapped"),
62
+ count
63
+ }),
64
+ z.strictObject({
65
+ code: z.literal("principal_unmapped"),
66
+ count
67
+ }),
68
+ z.strictObject({
69
+ code: z.literal("seeded_scaffold_removed"),
70
+ count,
71
+ items: z.array(z.strictObject({
72
+ type: z.string().max(64),
73
+ id: portableIdSchema
74
+ })).max(MAX_LISTED_IDS)
75
+ }),
76
+ z.strictObject({
77
+ code: z.literal("redirect_loop_disabled"),
78
+ kind: z.literal("redirect"),
79
+ ids: z.array(portableIdSchema).max(MAX_LISTED_IDS)
80
+ }),
81
+ z.strictObject({
82
+ code: z.literal("search_unsupported"),
83
+ kind: z.literal("collection"),
84
+ ids: z.array(portableIdSchema).max(MAX_LISTED_IDS)
85
+ }),
86
+ z.strictObject({
87
+ code: z.literal("float4_rounded"),
88
+ count
89
+ }),
90
+ z.strictObject({
91
+ code: z.literal("locale_recased"),
92
+ locales: z.array(z.strictObject({
93
+ from: localeSchema,
94
+ to: localeSchema
95
+ })).max(MAX_LISTED_LOCALES)
96
+ })
97
+ ]);
98
+ const planTransformationSchema = z.union([exportTransformationSchema, importTransformationSchema]);
99
+ const compiled = /* @__PURE__ */ new WeakMap();
100
+ function compile(plan, context) {
101
+ const cached = compiled.get(plan);
102
+ if (cached && cached.fieldColumnTypes === context.fieldColumnTypes) return cached;
103
+ const disabledRedirects = /* @__PURE__ */ new Set();
104
+ const searchDisabled = /* @__PURE__ */ new Set();
105
+ const locales = /* @__PURE__ */ new Map();
106
+ let float4 = false;
107
+ for (const transformation of plan.transformations) switch (transformation.code) {
108
+ case "redirect_loop_disabled":
109
+ for (const id of transformation.ids) disabledRedirects.add(id);
110
+ break;
111
+ case "search_unsupported":
112
+ for (const id of transformation.ids) searchDisabled.add(id);
113
+ break;
114
+ case "float4_rounded":
115
+ float4 = true;
116
+ break;
117
+ case "locale_recased":
118
+ for (const { from, to } of transformation.locales) locales.set(from, to);
119
+ break;
120
+ default: break;
121
+ }
122
+ const result = {
123
+ principalMappings: plan.decisions.principalMappings,
124
+ disabledRedirects,
125
+ searchDisabled,
126
+ float4,
127
+ locales,
128
+ fieldColumnTypes: context.fieldColumnTypes
129
+ };
130
+ compiled.set(plan, result);
131
+ return result;
132
+ }
133
+ function mapPrincipal(record, property, mappings) {
134
+ const principal = record[property];
135
+ if (typeof principal !== "string") return;
136
+ const target = Object.hasOwn(mappings, principal) ? mappings[principal] : null;
137
+ if (target === null || target === void 0) delete record[property];
138
+ else record[property] = target;
139
+ }
140
+ function fround(value) {
141
+ return typeof value === "number" ? Math.fround(value) : value;
142
+ }
143
+ /**
144
+ * Predict the target form of a package record: the record as the exporter's
145
+ * reader would produce it from the target, minus storage-key placeholder
146
+ * resolution. Returns a new object; never mutates `record`. `principal`
147
+ * records are returned unchanged (they are never written to the target).
148
+ */
149
+ function applyTransformations(record, plan, context) {
150
+ const rules = compile(plan, context);
151
+ const next = { ...record };
152
+ switch (record.kind) {
153
+ case "media":
154
+ mapPrincipal(next, "authorPrincipal", rules.principalMappings);
155
+ if (rules.float4) {
156
+ if (next.focalX !== void 0) next.focalX = fround(next.focalX);
157
+ if (next.focalY !== void 0) next.focalY = fround(next.focalY);
158
+ }
159
+ break;
160
+ case "revision":
161
+ case "comment":
162
+ mapPrincipal(next, "authorPrincipal", rules.principalMappings);
163
+ break;
164
+ case "byline":
165
+ mapPrincipal(next, "userPrincipal", rules.principalMappings);
166
+ break;
167
+ case "entry":
168
+ mapPrincipal(next, "authorPrincipal", rules.principalMappings);
169
+ if (rules.float4) {
170
+ const fields = { ...record.fields };
171
+ const types = rules.fieldColumnTypes.get(record.collection);
172
+ for (const [slug, value] of Object.entries(fields)) if (types?.get(slug) === "REAL") fields[slug] = fround(value);
173
+ next.fields = fields;
174
+ }
175
+ break;
176
+ case "redirect":
177
+ if (rules.disabledRedirects.has(record.id)) next.enabled = false;
178
+ break;
179
+ case "collection": {
180
+ const config = record.searchConfig;
181
+ if (rules.searchDisabled.has(record.id) && config !== null && typeof config === "object" && !Array.isArray(config) && config.enabled === true) next.searchConfig = {
182
+ ...config,
183
+ enabled: false
184
+ };
185
+ break;
186
+ }
187
+ default: break;
188
+ }
189
+ const recased = typeof next.locale === "string" ? rules.locales.get(next.locale) : void 0;
190
+ if (recased !== void 0) next.locale = recased;
191
+ return next;
192
+ }
193
+
194
+ //#endregion
195
+ export { planTransformationSchema as a, exportTransformationSchema as i, IMPORT_TRANSFORMATION_CODES as n, applyTransformations as r, EXPORT_TRANSFORMATION_CODES as t };
196
+ //# sourceMappingURL=transformations-Bx4lYY0Y.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformations-Bx4lYY0Y.mjs","names":[],"sources":["../src/transfer/format/transformations.ts"],"sourcesContent":["/**\n * Declared transformations: every way the target state may legitimately\n * differ from the package's records.\n *\n * Two families exist:\n * - Export transformations are applied by the exporter and declared in\n * `manifest.transformations` (the package already reflects them).\n * - Import transformations are decided during analysis, declared in the plan\n * (and therefore covered by the plan digest), applied by the importer, and\n * predicted by verification with {@link applyTransformations}.\n *\n * A plan lists the package's export transformations ahead of its import\n * transformations, so it declares every difference from the origin site.\n * Plan warnings never repeat a transformation.\n *\n * Storage-key placeholders are not a transformation: verification converts\n * target keys back to placeholders with `rewriteMediaRefs(…, { mode: \"verify\" })`.\n */\n\nimport { z } from \"zod\";\n\nimport type { SitePackageRecord } from \"./kinds.js\";\nimport { portableIdSchema, RECORD_KINDS } from \"./kinds.js\";\n\nexport const EXPORT_TRANSFORMATION_CODES = [\n\t\"soft_orphan_dropped\",\n\t\"avatar_nulled\",\n\t\"redirect_duplicate_dropped\",\n\t\"media_not_ready_dropped\",\n\t\"media_url_relativized\",\n\t\"orphan_dropped\",\n\t\"orphan_reference_nulled\",\n\t\"media_ref_unlinked\",\n\t\"unknown_storage_key\",\n] as const;\n\nexport type ExportTransformationCode = (typeof EXPORT_TRANSFORMATION_CODES)[number];\n\nexport const IMPORT_TRANSFORMATION_CODES = [\n\t\"principal_mapped\",\n\t\"principal_unmapped\",\n\t\"seeded_scaffold_removed\",\n\t\"redirect_loop_disabled\",\n\t\"search_unsupported\",\n\t\"float4_rounded\",\n\t\"locale_recased\",\n] as const;\n\nexport type ImportTransformationCode = (typeof IMPORT_TRANSFORMATION_CODES)[number];\n\nconst recordKindSchema = z.enum(RECORD_KINDS);\nconst count = z.number().int().nonnegative();\nconst MAX_LISTED_IDS = 10_000;\nconst MAX_LISTED_LOCALES = 1000;\nconst localeSchema = z.string().min(1).max(64);\n\n/**\n * Declared in `manifest.transformations`, sorted by `(code, kind)`.\n * `unknown_storage_key` counts records that refer to a media file URL or\n * storage key the origin media table does not know; those references are\n * exported unchanged and will not resolve on the target.\n */\nexport const exportTransformationSchema = z.strictObject({\n\tcode: z.enum(EXPORT_TRANSFORMATION_CODES),\n\tkind: recordKindSchema,\n\tcount,\n});\n\nexport type ExportTransformation = z.infer<typeof exportTransformationSchema>;\n\nexport const importTransformationSchema = z.discriminatedUnion(\"code\", [\n\t/** Principal references rewritten to target users per `decisions.principalMappings`. */\n\tz.strictObject({ code: z.literal(\"principal_mapped\"), count }),\n\t/** Principal references removed (mapping is null or absent). */\n\tz.strictObject({ code: z.literal(\"principal_unmapped\"), count }),\n\t/** Seeded target scaffold deleted before the schema stage. */\n\tz.strictObject({\n\t\tcode: z.literal(\"seeded_scaffold_removed\"),\n\t\tcount,\n\t\titems: z\n\t\t\t.array(z.strictObject({ type: z.string().max(64), id: portableIdSchema }))\n\t\t\t.max(MAX_LISTED_IDS),\n\t}),\n\t/** Redirects that form a loop are imported disabled. */\n\tz.strictObject({\n\t\tcode: z.literal(\"redirect_loop_disabled\"),\n\t\tkind: z.literal(\"redirect\"),\n\t\tids: z.array(portableIdSchema).max(MAX_LISTED_IDS),\n\t}),\n\t/** Full-text search cannot be enabled on the target; `searchConfig.enabled` becomes false. */\n\tz.strictObject({\n\t\tcode: z.literal(\"search_unsupported\"),\n\t\tkind: z.literal(\"collection\"),\n\t\tids: z.array(portableIdSchema).max(MAX_LISTED_IDS),\n\t}),\n\t/** The target stores REAL columns as float4; values are rounded with `Math.fround`. */\n\tz.strictObject({ code: z.literal(\"float4_rounded\"), count }),\n\t/** Locales written with the target's casing (`pt-br` → `pt-BR`). */\n\tz.strictObject({\n\t\tcode: z.literal(\"locale_recased\"),\n\t\tlocales: z\n\t\t\t.array(z.strictObject({ from: localeSchema, to: localeSchema }))\n\t\t\t.max(MAX_LISTED_LOCALES),\n\t}),\n]);\n\nexport type ImportTransformation = z.infer<typeof importTransformationSchema>;\n\nexport const planTransformationSchema = z.union([\n\texportTransformationSchema,\n\timportTransformationSchema,\n]);\n\nexport type PlanTransformation = z.infer<typeof planTransformationSchema>;\n\nexport interface TransformationPlan {\n\ttransformations: readonly PlanTransformation[];\n\tdecisions: { principalMappings: Readonly<Record<string, string | null>> };\n}\n\nexport type FieldColumnType = \"TEXT\" | \"REAL\" | \"INTEGER\" | \"JSON\";\n\nexport interface TransformationContext {\n\t/** Column type of every entry field, by collection slug then field slug (from package `field` records). */\n\tfieldColumnTypes: ReadonlyMap<string, ReadonlyMap<string, FieldColumnType>>;\n}\n\ninterface CompiledTransformations {\n\tprincipalMappings: Readonly<Record<string, string | null>>;\n\tdisabledRedirects: ReadonlySet<string>;\n\tsearchDisabled: ReadonlySet<string>;\n\tfloat4: boolean;\n\tlocales: ReadonlyMap<string, string>;\n\tfieldColumnTypes: TransformationContext[\"fieldColumnTypes\"];\n}\n\nconst compiled = new WeakMap<TransformationPlan, CompiledTransformations>();\n\nfunction compile(\n\tplan: TransformationPlan,\n\tcontext: TransformationContext,\n): CompiledTransformations {\n\tconst cached = compiled.get(plan);\n\tif (cached && cached.fieldColumnTypes === context.fieldColumnTypes) return cached;\n\tconst disabledRedirects = new Set<string>();\n\tconst searchDisabled = new Set<string>();\n\tconst locales = new Map<string, string>();\n\tlet float4 = false;\n\tfor (const transformation of plan.transformations) {\n\t\tswitch (transformation.code) {\n\t\t\tcase \"redirect_loop_disabled\":\n\t\t\t\tfor (const id of transformation.ids) disabledRedirects.add(id);\n\t\t\t\tbreak;\n\t\t\tcase \"search_unsupported\":\n\t\t\t\tfor (const id of transformation.ids) searchDisabled.add(id);\n\t\t\t\tbreak;\n\t\t\tcase \"float4_rounded\":\n\t\t\t\tfloat4 = true;\n\t\t\t\tbreak;\n\t\t\tcase \"locale_recased\":\n\t\t\t\tfor (const { from, to } of transformation.locales) locales.set(from, to);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tconst result: CompiledTransformations = {\n\t\tprincipalMappings: plan.decisions.principalMappings,\n\t\tdisabledRedirects,\n\t\tsearchDisabled,\n\t\tfloat4,\n\t\tlocales,\n\t\tfieldColumnTypes: context.fieldColumnTypes,\n\t};\n\tcompiled.set(plan, result);\n\treturn result;\n}\n\nfunction mapPrincipal(\n\trecord: Record<string, unknown>,\n\tproperty: string,\n\tmappings: Readonly<Record<string, string | null>>,\n): void {\n\tconst principal = record[property];\n\tif (typeof principal !== \"string\") return;\n\tconst target = Object.hasOwn(mappings, principal) ? mappings[principal] : null;\n\tif (target === null || target === undefined) delete record[property];\n\telse record[property] = target;\n}\n\nfunction fround(value: unknown): unknown {\n\treturn typeof value === \"number\" ? Math.fround(value) : value;\n}\n\n/**\n * Predict the target form of a package record: the record as the exporter's\n * reader would produce it from the target, minus storage-key placeholder\n * resolution. Returns a new object; never mutates `record`. `principal`\n * records are returned unchanged (they are never written to the target).\n */\nexport function applyTransformations<R extends SitePackageRecord>(\n\trecord: R,\n\tplan: TransformationPlan,\n\tcontext: TransformationContext,\n): R {\n\tconst rules = compile(plan, context);\n\tconst next: Record<string, unknown> = { ...record };\n\n\tswitch (record.kind) {\n\t\tcase \"media\":\n\t\t\tmapPrincipal(next, \"authorPrincipal\", rules.principalMappings);\n\t\t\tif (rules.float4) {\n\t\t\t\tif (next.focalX !== undefined) next.focalX = fround(next.focalX);\n\t\t\t\tif (next.focalY !== undefined) next.focalY = fround(next.focalY);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"revision\":\n\t\tcase \"comment\":\n\t\t\tmapPrincipal(next, \"authorPrincipal\", rules.principalMappings);\n\t\t\tbreak;\n\t\tcase \"byline\":\n\t\t\tmapPrincipal(next, \"userPrincipal\", rules.principalMappings);\n\t\t\tbreak;\n\t\tcase \"entry\": {\n\t\t\tmapPrincipal(next, \"authorPrincipal\", rules.principalMappings);\n\t\t\tif (rules.float4) {\n\t\t\t\tconst fields: Record<string, unknown> = { ...record.fields };\n\t\t\t\tconst types = rules.fieldColumnTypes.get(record.collection);\n\t\t\t\tfor (const [slug, value] of Object.entries(fields)) {\n\t\t\t\t\tif (types?.get(slug) === \"REAL\") fields[slug] = fround(value);\n\t\t\t\t}\n\t\t\t\tnext.fields = fields;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"redirect\":\n\t\t\tif (rules.disabledRedirects.has(record.id)) next.enabled = false;\n\t\t\tbreak;\n\t\tcase \"collection\": {\n\t\t\tconst config = record.searchConfig;\n\t\t\tif (\n\t\t\t\trules.searchDisabled.has(record.id) &&\n\t\t\t\tconfig !== null &&\n\t\t\t\ttypeof config === \"object\" &&\n\t\t\t\t!Array.isArray(config) &&\n\t\t\t\tconfig.enabled === true\n\t\t\t) {\n\t\t\t\tnext.searchConfig = { ...config, enabled: false };\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\tconst recased = typeof next.locale === \"string\" ? rules.locales.get(next.locale) : undefined;\n\tif (recased !== undefined) next.locale = recased;\n\n\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- a copy of `record` with only same-kind properties changed or removed\n\treturn next as R;\n}\n"],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ //#region src/client/transport.ts
2
+ /**
3
+ * Transport layer for the EmDash client.
4
+ *
5
+ * Implements a composable interceptor pipeline that modifies requests
6
+ * and responses. The client calls `transport.fetch(request)` — everything
7
+ * else (auth, CSRF, retry) is handled by interceptors.
8
+ */
9
+ const COOKIE_NAME_VALUE_PATTERN = /^([^;]+)/;
10
+ function baseFetch(request) {
11
+ return globalThis.fetch(request);
12
+ }
13
+ /**
14
+ * Creates a fetch function that runs requests through an interceptor pipeline.
15
+ */
16
+ function createTransport(options = {}) {
17
+ const interceptors = options.interceptors ?? [];
18
+ let chain = baseFetch;
19
+ for (let i = interceptors.length - 1; i >= 0; i--) {
20
+ const interceptor = interceptors[i];
21
+ const next = chain;
22
+ chain = (req) => interceptor(req, next);
23
+ }
24
+ return { fetch: chain };
25
+ }
26
+ /**
27
+ * Adds X-EmDash-Request: 1 and Origin headers to mutation requests
28
+ * (POST, PUT, DELETE). The custom header satisfies EmDash's CSRF check;
29
+ * the Origin header satisfies Astro's built-in origin verification which
30
+ * rejects server-side POST requests that lack a matching Origin.
31
+ */
32
+ function csrfInterceptor() {
33
+ const MUTATION_METHODS = new Set([
34
+ "POST",
35
+ "PUT",
36
+ "DELETE",
37
+ "PATCH"
38
+ ]);
39
+ return (request, next) => {
40
+ if (MUTATION_METHODS.has(request.method)) {
41
+ const headers = new Headers(request.headers);
42
+ headers.set("X-EmDash-Request", "1");
43
+ if (!headers.has("Origin")) {
44
+ const url = new URL(request.url);
45
+ headers.set("Origin", url.origin);
46
+ }
47
+ return next(new Request(request, { headers }));
48
+ }
49
+ return next(request);
50
+ };
51
+ }
52
+ /**
53
+ * Adds Authorization: Bearer header from a static token.
54
+ */
55
+ function tokenInterceptor(token) {
56
+ return (request, next) => {
57
+ const headers = new Headers(request.headers);
58
+ headers.set("Authorization", `Bearer ${token}`);
59
+ return next(new Request(request, { headers }));
60
+ };
61
+ }
62
+ /**
63
+ * Dev bypass interceptor. Calls the dev-bypass endpoint on first request
64
+ * to establish a session, then forwards the session cookie on subsequent
65
+ * requests.
66
+ */
67
+ function devBypassInterceptor(baseUrl) {
68
+ let sessionCookie = null;
69
+ let initializing = null;
70
+ async function init() {
71
+ const bypassUrl = new URL("/_emdash/api/auth/dev-bypass", baseUrl);
72
+ const res = await globalThis.fetch(bypassUrl, { redirect: "manual" });
73
+ const setCookie = res.headers.get("set-cookie");
74
+ if (setCookie) {
75
+ const match = setCookie.match(COOKIE_NAME_VALUE_PATTERN);
76
+ if (match) sessionCookie = match[1];
77
+ }
78
+ if (res.body) await res.text().catch(() => {});
79
+ }
80
+ return async (request, next) => {
81
+ if (!sessionCookie) {
82
+ if (!initializing) initializing = init();
83
+ await initializing;
84
+ }
85
+ if (sessionCookie) {
86
+ const headers = new Headers(request.headers);
87
+ const existing = headers.get("cookie");
88
+ headers.set("cookie", existing ? `${existing}; ${sessionCookie}` : sessionCookie);
89
+ return next(new Request(request, { headers }));
90
+ }
91
+ return next(request);
92
+ };
93
+ }
94
+ /**
95
+ * Auto-refreshes expired OAuth tokens on 401 responses.
96
+ * Requires a refresh token and the token endpoint URL.
97
+ */
98
+ function refreshInterceptor(options) {
99
+ let refreshing = null;
100
+ async function refresh() {
101
+ const res = await globalThis.fetch(options.tokenEndpoint, {
102
+ method: "POST",
103
+ headers: { "Content-Type": "application/json" },
104
+ body: JSON.stringify({
105
+ grant_type: "refresh_token",
106
+ refresh_token: options.refreshToken
107
+ })
108
+ });
109
+ if (!res.ok) return null;
110
+ const json = await res.json();
111
+ const tokenData = json.data && typeof json.data === "object" && "access_token" in json.data ? json.data : json;
112
+ const expiresAt = tokenData.expires_in ? new Date(Date.now() + tokenData.expires_in * 1e3).toISOString() : new Date(Date.now() + 36e5).toISOString();
113
+ if (options.onTokenRefreshed) options.onTokenRefreshed(tokenData.access_token, tokenData.refresh_token ?? options.refreshToken, expiresAt);
114
+ return tokenData.access_token;
115
+ }
116
+ return async (request, next) => {
117
+ const retryTemplate = request.body ? request.clone() : request;
118
+ const response = await next(request);
119
+ if (response.status === 401) {
120
+ if (!refreshing) refreshing = refresh().finally(() => {
121
+ refreshing = null;
122
+ });
123
+ const newToken = await refreshing;
124
+ if (newToken) {
125
+ const headers = new Headers(retryTemplate.headers);
126
+ headers.set("Authorization", `Bearer ${newToken}`);
127
+ return next(new Request(retryTemplate, { headers }));
128
+ }
129
+ }
130
+ return response;
131
+ };
132
+ }
133
+
134
+ //#endregion
135
+ export { tokenInterceptor as a, refreshInterceptor as i, csrfInterceptor as n, devBypassInterceptor as r, createTransport as t };
136
+ //# sourceMappingURL=transport-BjbqNiPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-BjbqNiPI.mjs","names":[],"sources":["../src/client/transport.ts"],"sourcesContent":["/**\n * Transport layer for the EmDash client.\n *\n * Implements a composable interceptor pipeline that modifies requests\n * and responses. The client calls `transport.fetch(request)` — everything\n * else (auth, CSRF, retry) is handled by interceptors.\n */\n\n// Regex patterns for transport utilities\nconst COOKIE_NAME_VALUE_PATTERN = /^([^;]+)/;\n\n/**\n * An interceptor can modify the request, call next(), inspect\n * the response, and optionally retry.\n */\nexport type Interceptor = (\n\trequest: Request,\n\tnext: (request: Request) => Promise<Response>,\n) => Promise<Response>;\n\nexport interface TransportOptions {\n\tinterceptors?: Interceptor[];\n}\n\nfunction baseFetch(request: Request): Promise<Response> {\n\treturn globalThis.fetch(request);\n}\n\n/**\n * Creates a fetch function that runs requests through an interceptor pipeline.\n */\nexport function createTransport(options: TransportOptions = {}): {\n\tfetch: (request: Request) => Promise<Response>;\n} {\n\tconst interceptors = options.interceptors ?? [];\n\n\t// Build the chain once — interceptors don't change after construction\n\tlet chain: (request: Request) => Promise<Response> = baseFetch;\n\tfor (let i = interceptors.length - 1; i >= 0; i--) {\n\t\tconst interceptor = interceptors[i];\n\t\tconst next = chain;\n\t\tchain = (req) => interceptor(req, next);\n\t}\n\n\treturn { fetch: chain };\n}\n\n// ---------------------------------------------------------------------------\n// Built-in interceptors\n// ---------------------------------------------------------------------------\n\n/**\n * Adds X-EmDash-Request: 1 and Origin headers to mutation requests\n * (POST, PUT, DELETE). The custom header satisfies EmDash's CSRF check;\n * the Origin header satisfies Astro's built-in origin verification which\n * rejects server-side POST requests that lack a matching Origin.\n */\nexport function csrfInterceptor(): Interceptor {\n\tconst MUTATION_METHODS = new Set([\"POST\", \"PUT\", \"DELETE\", \"PATCH\"]);\n\n\treturn (request, next) => {\n\t\tif (MUTATION_METHODS.has(request.method)) {\n\t\t\tconst headers = new Headers(request.headers);\n\t\t\theaders.set(\"X-EmDash-Request\", \"1\");\n\t\t\tif (!headers.has(\"Origin\")) {\n\t\t\t\tconst url = new URL(request.url);\n\t\t\t\theaders.set(\"Origin\", url.origin);\n\t\t\t}\n\t\t\treturn next(new Request(request, { headers }));\n\t\t}\n\t\treturn next(request);\n\t};\n}\n\n/**\n * Adds Authorization: Bearer header from a static token.\n */\nexport function tokenInterceptor(token: string): Interceptor {\n\treturn (request, next) => {\n\t\tconst headers = new Headers(request.headers);\n\t\theaders.set(\"Authorization\", `Bearer ${token}`);\n\t\treturn next(new Request(request, { headers }));\n\t};\n}\n\n/**\n * Dev bypass interceptor. Calls the dev-bypass endpoint on first request\n * to establish a session, then forwards the session cookie on subsequent\n * requests.\n */\nexport function devBypassInterceptor(baseUrl: string): Interceptor {\n\tlet sessionCookie: string | null = null;\n\tlet initializing: Promise<void> | null = null;\n\n\tasync function init(): Promise<void> {\n\t\tconst bypassUrl = new URL(\"/_emdash/api/auth/dev-bypass\", baseUrl);\n\t\tconst res = await globalThis.fetch(bypassUrl, { redirect: \"manual\" });\n\n\t\t// Extract session cookie from Set-Cookie header\n\t\tconst setCookie = res.headers.get(\"set-cookie\");\n\t\tif (setCookie) {\n\t\t\t// Extract just the cookie name=value part\n\t\t\tconst match = setCookie.match(COOKIE_NAME_VALUE_PATTERN);\n\t\t\tif (match) {\n\t\t\t\tsessionCookie = match[1]!;\n\t\t\t}\n\t\t}\n\n\t\t// Consume the response body\n\t\tif (res.body) {\n\t\t\tawait res.text().catch(() => {});\n\t\t}\n\t}\n\n\treturn async (request, next) => {\n\t\t// Ensure we've initialized (only once, even with concurrent requests)\n\t\tif (!sessionCookie) {\n\t\t\tif (!initializing) {\n\t\t\t\tinitializing = init();\n\t\t\t}\n\t\t\tawait initializing;\n\t\t}\n\n\t\tif (sessionCookie) {\n\t\t\tconst headers = new Headers(request.headers);\n\t\t\tconst existing = headers.get(\"cookie\");\n\t\t\theaders.set(\"cookie\", existing ? `${existing}; ${sessionCookie}` : sessionCookie);\n\t\t\treturn next(new Request(request, { headers }));\n\t\t}\n\n\t\treturn next(request);\n\t};\n}\n\n/**\n * Auto-refreshes expired OAuth tokens on 401 responses.\n * Requires a refresh token and the token endpoint URL.\n */\nexport function refreshInterceptor(options: {\n\trefreshToken: string;\n\ttokenEndpoint: string;\n\tonTokenRefreshed?: (accessToken: string, refreshToken: string, expiresAt: string) => void;\n}): Interceptor {\n\tlet refreshing: Promise<string | null> | null = null;\n\n\tasync function refresh(): Promise<string | null> {\n\t\tconst res = await globalThis.fetch(options.tokenEndpoint, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\tbody: JSON.stringify({\n\t\t\t\tgrant_type: \"refresh_token\",\n\t\t\t\trefresh_token: options.refreshToken,\n\t\t\t}),\n\t\t});\n\n\t\tif (!res.ok) return null;\n\n\t\tinterface TokenFields {\n\t\t\taccess_token: string;\n\t\t\trefresh_token?: string;\n\t\t\texpires_in?: number;\n\t\t}\n\n\t\tconst json = (await res.json()) as Record<string, unknown>;\n\n\t\t// The token endpoint wraps the response in { success, data: ... } via apiSuccess.\n\t\t// Handle both wrapped and bare shapes for robustness.\n\t\tconst tokenData: TokenFields =\n\t\t\tjson.data && typeof json.data === \"object\" && \"access_token\" in json.data\n\t\t\t\t? (json.data as TokenFields)\n\t\t\t\t: (json as unknown as TokenFields);\n\n\t\tconst expiresAt = tokenData.expires_in\n\t\t\t? new Date(Date.now() + tokenData.expires_in * 1000).toISOString()\n\t\t\t: new Date(Date.now() + 3600_000).toISOString();\n\n\t\tif (options.onTokenRefreshed) {\n\t\t\toptions.onTokenRefreshed(\n\t\t\t\ttokenData.access_token,\n\t\t\t\ttokenData.refresh_token ?? options.refreshToken,\n\t\t\t\texpiresAt,\n\t\t\t);\n\t\t}\n\n\t\treturn tokenData.access_token;\n\t}\n\n\treturn async (request, next) => {\n\t\t// A request body can only be read once; clone before sending so the\n\t\t// 401 retry has an unconsumed request to rebuild from.\n\t\tconst retryTemplate = request.body ? request.clone() : request;\n\n\t\tconst response = await next(request);\n\n\t\tif (response.status === 401) {\n\t\t\t// Try to refresh\n\t\t\tif (!refreshing) {\n\t\t\t\trefreshing = refresh().finally(() => {\n\t\t\t\t\trefreshing = null;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst newToken = await refreshing;\n\t\t\tif (newToken) {\n\t\t\t\t// Retry with new token\n\t\t\t\tconst headers = new Headers(retryTemplate.headers);\n\t\t\t\theaders.set(\"Authorization\", `Bearer ${newToken}`);\n\t\t\t\treturn next(new Request(retryTemplate, { headers }));\n\t\t\t}\n\t\t}\n\n\t\treturn response;\n\t};\n}\n"],"mappings":"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"}