emdash 0.40.1 → 0.42.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 (1515) hide show
  1. package/dist/action-token-DBki7IT4.mjs +26 -0
  2. package/dist/action-token-DBki7IT4.mjs.map +1 -0
  3. package/dist/activation-DDuqAat2.mjs +387 -0
  4. package/dist/activation-DDuqAat2.mjs.map +1 -0
  5. package/dist/adapters-BrZxU6vM.d.mts +171 -0
  6. package/dist/adapters-BrZxU6vM.d.mts.map +1 -0
  7. package/dist/allowed-origins-CFtudhyw.mjs +116 -0
  8. package/dist/allowed-origins-CFtudhyw.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +5 -4
  10. package/dist/api/route-utils.d.mts.map +1 -1
  11. package/dist/api/route-utils.mjs +52 -46
  12. package/dist/api/route-utils.mjs.map +1 -1
  13. package/dist/api/schemas/index.d.mts +2 -2
  14. package/dist/api/schemas/index.mjs +11 -10
  15. package/dist/api-CFQn8VLR.mjs +4973 -0
  16. package/dist/api-CFQn8VLR.mjs.map +1 -0
  17. package/dist/api-tokens-P3mAaQgr.mjs +166 -0
  18. package/dist/api-tokens-P3mAaQgr.mjs.map +1 -0
  19. package/dist/apply-C1kq5l7p.mjs +1672 -0
  20. package/dist/apply-C1kq5l7p.mjs.map +1 -0
  21. package/dist/approvals-l9sGqPmL.mjs +460 -0
  22. package/dist/approvals-l9sGqPmL.mjs.map +1 -0
  23. package/dist/artifact-fetch-CWxyELVI.mjs +659 -0
  24. package/dist/artifact-fetch-CWxyELVI.mjs.map +1 -0
  25. package/dist/astro/index.d.mts +14 -14
  26. package/dist/astro/index.d.mts.map +1 -1
  27. package/dist/astro/index.mjs +106 -560
  28. package/dist/astro/index.mjs.map +1 -1
  29. package/dist/astro/middleware/auth.d.mts +12 -12
  30. package/dist/astro/middleware/auth.mjs +10 -10
  31. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  32. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  33. package/dist/astro/middleware/redirect.mjs +19 -9
  34. package/dist/astro/middleware/redirect.mjs.map +1 -1
  35. package/dist/astro/middleware/request-context.d.mts +2 -1
  36. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  37. package/dist/astro/middleware/request-context.mjs +15 -6
  38. package/dist/astro/middleware/request-context.mjs.map +1 -1
  39. package/dist/astro/middleware/setup.mjs +1 -1
  40. package/dist/astro/middleware.d.mts +12 -12
  41. package/dist/astro/middleware.mjs +114 -107
  42. package/dist/astro/middleware.mjs.map +1 -1
  43. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +15 -14
  44. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs.map +1 -1
  45. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +15 -14
  46. package/dist/astro/routes/api/admin/allowed-domains/index.mjs.map +1 -1
  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 +7 -7
  50. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +18 -17
  51. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs.map +1 -1
  52. package/dist/astro/routes/api/admin/byline-fields/index.mjs +18 -17
  53. package/dist/astro/routes/api/admin/byline-fields/index.mjs.map +1 -1
  54. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +18 -17
  55. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs.map +1 -1
  56. package/dist/astro/routes/api/admin/bylines/_id_/index.d.mts.map +1 -1
  57. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +36 -27
  58. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  59. package/dist/astro/routes/api/admin/bylines/_id_/translations.d.mts.map +1 -1
  60. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +32 -26
  61. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  62. package/dist/astro/routes/api/admin/bylines/index.d.mts.map +1 -1
  63. package/dist/astro/routes/api/admin/bylines/index.mjs +32 -26
  64. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  65. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +20 -19
  66. package/dist/astro/routes/api/admin/comments/_id_/status.mjs.map +1 -1
  67. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
  68. package/dist/astro/routes/api/admin/comments/bulk.mjs +19 -18
  69. package/dist/astro/routes/api/admin/comments/bulk.mjs.map +1 -1
  70. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
  71. package/dist/astro/routes/api/admin/comments/index.mjs +19 -18
  72. package/dist/astro/routes/api/admin/comments/index.mjs.map +1 -1
  73. package/dist/astro/routes/api/admin/core-update.d.mts +8 -0
  74. package/dist/astro/routes/api/admin/core-update.d.mts.map +1 -0
  75. package/dist/astro/routes/api/admin/core-update.mjs +28 -0
  76. package/dist/astro/routes/api/admin/core-update.mjs.map +1 -0
  77. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  78. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  79. package/dist/astro/routes/api/admin/media-usage/activation.mjs +21 -20
  80. package/dist/astro/routes/api/admin/media-usage/activation.mjs.map +1 -1
  81. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +23 -22
  82. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs.map +1 -1
  83. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +23 -22
  84. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs.map +1 -1
  85. package/dist/astro/routes/api/admin/media-usage/progress.mjs +26 -25
  86. package/dist/astro/routes/api/admin/media-usage/progress.mjs.map +1 -1
  87. package/dist/astro/routes/api/admin/media-usage/repair.mjs +32 -31
  88. package/dist/astro/routes/api/admin/media-usage/repair.mjs.map +1 -1
  89. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +23 -22
  90. package/dist/astro/routes/api/admin/media-usage/work/index.mjs.map +1 -1
  91. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +23 -22
  92. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs.map +1 -1
  93. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  94. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  95. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  96. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  97. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +75 -69
  98. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  99. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
  100. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +74 -68
  101. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +75 -69
  103. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  104. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +86 -79
  105. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  106. package/dist/astro/routes/api/admin/plugins/index.mjs +75 -69
  107. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  108. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.d.mts.map +1 -1
  109. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +10 -7
  110. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs.map +1 -1
  111. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +74 -68
  112. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  113. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +85 -78
  114. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  115. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +74 -68
  116. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  117. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +75 -69
  118. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  119. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +87 -80
  120. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  121. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -9
  122. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +77 -71
  123. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  124. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
  125. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +75 -69
  126. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  127. package/dist/astro/routes/api/admin/plugins/updates.mjs +74 -68
  128. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  129. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
  130. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +74 -68
  131. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  132. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.d.mts.map +1 -1
  133. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +10 -7
  134. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs.map +1 -1
  135. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +74 -68
  136. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  137. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
  138. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +42 -41
  139. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
  140. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +42 -41
  141. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
  142. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +44 -43
  143. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
  144. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +44 -43
  145. package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
  146. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +44 -43
  147. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
  148. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +45 -44
  149. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
  150. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +45 -44
  151. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
  152. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +44 -43
  153. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
  154. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +45 -44
  155. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
  156. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +46 -45
  157. package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
  158. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +44 -43
  159. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
  160. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +44 -43
  161. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
  162. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +46 -45
  163. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
  164. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +44 -43
  165. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
  166. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +46 -45
  167. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
  168. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +44 -43
  169. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
  170. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +44 -43
  171. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
  172. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +46 -45
  173. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
  174. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +44 -43
  175. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
  176. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +44 -43
  177. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
  178. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +46 -45
  179. package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
  180. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
  181. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  182. package/dist/astro/routes/api/admin/users/_id_/index.mjs +16 -15
  183. package/dist/astro/routes/api/admin/users/_id_/index.mjs.map +1 -1
  184. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
  185. package/dist/astro/routes/api/admin/users/index.mjs +15 -14
  186. package/dist/astro/routes/api/admin/users/index.mjs.map +1 -1
  187. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  188. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  189. package/dist/astro/routes/api/auth/invite/complete.d.mts.map +1 -1
  190. package/dist/astro/routes/api/auth/invite/complete.mjs +23 -19
  191. package/dist/astro/routes/api/auth/invite/complete.mjs.map +1 -1
  192. package/dist/astro/routes/api/auth/invite/index.mjs +17 -16
  193. package/dist/astro/routes/api/auth/invite/index.mjs.map +1 -1
  194. package/dist/astro/routes/api/auth/invite/register-options.mjs +18 -17
  195. package/dist/astro/routes/api/auth/invite/register-options.mjs.map +1 -1
  196. package/dist/astro/routes/api/auth/logout.mjs +5 -5
  197. package/dist/astro/routes/api/auth/magic-link/send.mjs +19 -18
  198. package/dist/astro/routes/api/auth/magic-link/send.mjs.map +1 -1
  199. package/dist/astro/routes/api/auth/magic-link/verify.d.mts.map +1 -1
  200. package/dist/astro/routes/api/auth/magic-link/verify.mjs +19 -15
  201. package/dist/astro/routes/api/auth/magic-link/verify.mjs.map +1 -1
  202. package/dist/astro/routes/api/auth/me.mjs +16 -15
  203. package/dist/astro/routes/api/auth/me.mjs.map +1 -1
  204. package/dist/astro/routes/api/auth/mode.mjs +5 -5
  205. package/dist/astro/routes/api/auth/oauth/_provider_/callback.d.mts.map +1 -1
  206. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +13 -4
  207. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs.map +1 -1
  208. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  209. package/dist/astro/routes/api/auth/passkey/_id_.mjs +15 -14
  210. package/dist/astro/routes/api/auth/passkey/_id_.mjs.map +1 -1
  211. package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
  212. package/dist/astro/routes/api/auth/passkey/options.mjs +20 -19
  213. package/dist/astro/routes/api/auth/passkey/options.mjs.map +1 -1
  214. package/dist/astro/routes/api/auth/passkey/register/options.mjs +18 -17
  215. package/dist/astro/routes/api/auth/passkey/register/options.mjs.map +1 -1
  216. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +19 -18
  217. package/dist/astro/routes/api/auth/passkey/register/verify.mjs.map +1 -1
  218. package/dist/astro/routes/api/auth/passkey/verify.d.mts.map +1 -1
  219. package/dist/astro/routes/api/auth/passkey/verify.mjs +23 -19
  220. package/dist/astro/routes/api/auth/passkey/verify.mjs.map +1 -1
  221. package/dist/astro/routes/api/auth/signup/complete.d.mts.map +1 -1
  222. package/dist/astro/routes/api/auth/signup/complete.mjs +23 -19
  223. package/dist/astro/routes/api/auth/signup/complete.mjs.map +1 -1
  224. package/dist/astro/routes/api/auth/signup/request.mjs +18 -17
  225. package/dist/astro/routes/api/auth/signup/request.mjs.map +1 -1
  226. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  227. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +13 -13
  228. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +20 -19
  229. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs.map +1 -1
  230. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  231. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +18 -17
  232. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs.map +1 -1
  233. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  234. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +18 -17
  235. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs.map +1 -1
  236. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
  237. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +12 -11
  238. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs.map +1 -1
  239. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +33 -32
  240. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs.map +1 -1
  241. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +18 -17
  242. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs.map +1 -1
  243. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts +1 -2
  244. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts.map +1 -1
  245. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +44 -54
  246. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  247. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +36 -30
  248. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  249. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
  250. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  251. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +18 -17
  252. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs.map +1 -1
  253. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +27 -25
  254. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  255. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +5 -5
  256. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +18 -17
  257. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs.map +1 -1
  258. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  259. package/dist/astro/routes/api/content/_collection_/_id_.mjs +19 -18
  260. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  261. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  262. package/dist/astro/routes/api/content/_collection_/index.mjs +16 -15
  263. package/dist/astro/routes/api/content/_collection_/index.mjs.map +1 -1
  264. package/dist/astro/routes/api/content/_collection_/trash.mjs +16 -15
  265. package/dist/astro/routes/api/content/_collection_/trash.mjs.map +1 -1
  266. package/dist/astro/routes/api/dashboard.mjs +13 -10
  267. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  268. package/dist/astro/routes/api/dev/emails.mjs +5 -5
  269. package/dist/astro/routes/api/health.mjs +6 -6
  270. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  271. package/dist/astro/routes/api/import/probe.mjs +25 -24
  272. package/dist/astro/routes/api/import/probe.mjs.map +1 -1
  273. package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -6
  274. package/dist/astro/routes/api/import/wordpress/execute.d.mts +14 -14
  275. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  276. package/dist/astro/routes/api/import/wordpress/execute.mjs +167 -21
  277. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  278. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  279. package/dist/astro/routes/api/import/wordpress/media.mjs +20 -19
  280. package/dist/astro/routes/api/import/wordpress/media.mjs.map +1 -1
  281. package/dist/astro/routes/api/import/wordpress/prepare.mjs +19 -18
  282. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  283. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  284. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +29 -28
  285. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs.map +1 -1
  286. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  287. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +25 -24
  288. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs.map +1 -1
  289. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  290. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +36 -35
  291. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  292. package/dist/astro/routes/api/manifest.mjs +6 -6
  293. package/dist/astro/routes/api/mcp.mjs +167 -110
  294. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  295. package/dist/astro/routes/api/media/_id_/confirm.mjs +20 -19
  296. package/dist/astro/routes/api/media/_id_/confirm.mjs.map +1 -1
  297. package/dist/astro/routes/api/media/_id_/replace.mjs +17 -16
  298. package/dist/astro/routes/api/media/_id_/replace.mjs.map +1 -1
  299. package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
  300. package/dist/astro/routes/api/media/_id_/usage.mjs +34 -33
  301. package/dist/astro/routes/api/media/_id_/usage.mjs.map +1 -1
  302. package/dist/astro/routes/api/media/_id_.mjs +32 -31
  303. package/dist/astro/routes/api/media/_id_.mjs.map +1 -1
  304. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
  305. package/dist/astro/routes/api/media/file/_...key_.mjs +9 -9
  306. package/dist/astro/routes/api/media/folders/_id_.mjs +17 -16
  307. package/dist/astro/routes/api/media/folders/_id_.mjs.map +1 -1
  308. package/dist/astro/routes/api/media/folders/index.mjs +17 -16
  309. package/dist/astro/routes/api/media/folders/index.mjs.map +1 -1
  310. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
  311. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
  312. package/dist/astro/routes/api/media/providers/index.mjs +5 -5
  313. package/dist/astro/routes/api/media/upload-url.mjs +19 -18
  314. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  315. package/dist/astro/routes/api/media.mjs +36 -35
  316. package/dist/astro/routes/api/media.mjs.map +1 -1
  317. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +19 -18
  318. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  319. package/dist/astro/routes/api/menus/_name_/items.mjs +19 -18
  320. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  321. package/dist/astro/routes/api/menus/_name_/reorder.mjs +19 -18
  322. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  323. package/dist/astro/routes/api/menus/_name_/translations.mjs +19 -18
  324. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  325. package/dist/astro/routes/api/menus/_name_.mjs +19 -18
  326. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  327. package/dist/astro/routes/api/menus/index.mjs +19 -18
  328. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  329. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  330. package/dist/astro/routes/api/oauth/device/authorize.d.mts +2 -1
  331. package/dist/astro/routes/api/oauth/device/authorize.d.mts.map +1 -1
  332. package/dist/astro/routes/api/oauth/device/authorize.mjs +23 -9
  333. package/dist/astro/routes/api/oauth/device/authorize.mjs.map +1 -1
  334. package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
  335. package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
  336. package/dist/astro/routes/api/oauth/register.d.mts.map +1 -1
  337. package/dist/astro/routes/api/oauth/register.mjs +15 -7
  338. package/dist/astro/routes/api/oauth/register.mjs.map +1 -1
  339. package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
  340. package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
  341. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  342. package/dist/astro/routes/api/openapi.json.mjs +21 -20
  343. package/dist/astro/routes/api/openapi.json.mjs.map +1 -1
  344. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +12 -11
  345. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs.map +1 -1
  346. package/dist/astro/routes/api/redirects/404s/index.mjs +20 -19
  347. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  348. package/dist/astro/routes/api/redirects/404s/summary.mjs +20 -19
  349. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  350. package/dist/astro/routes/api/redirects/_id_.mjs +20 -19
  351. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  352. package/dist/astro/routes/api/redirects/index.mjs +20 -19
  353. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  354. package/dist/astro/routes/api/relations/_id_/index.mjs +36 -30
  355. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  356. package/dist/astro/routes/api/relations/index.mjs +38 -32
  357. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  358. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
  359. package/dist/astro/routes/api/revisions/_revisionId_/restore.d.mts.map +1 -1
  360. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +26 -6
  361. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs.map +1 -1
  362. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +74 -68
  363. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  364. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +74 -68
  365. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  366. package/dist/astro/routes/api/schema/block-types/index.mjs +74 -68
  367. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  368. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +76 -70
  369. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  370. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +74 -68
  371. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  372. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +74 -68
  373. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  374. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +74 -68
  375. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  376. package/dist/astro/routes/api/schema/collections/index.mjs +74 -68
  377. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  378. package/dist/astro/routes/api/schema/collections/reorder.mjs +74 -68
  379. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  380. package/dist/astro/routes/api/schema/index.mjs +17 -16
  381. package/dist/astro/routes/api/schema/index.mjs.map +1 -1
  382. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +74 -68
  383. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  384. package/dist/astro/routes/api/schema/orphans/index.mjs +74 -68
  385. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  386. package/dist/astro/routes/api/search/enable.mjs +20 -19
  387. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  388. package/dist/astro/routes/api/search/index.mjs +19 -18
  389. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  390. package/dist/astro/routes/api/search/rebuild.mjs +20 -19
  391. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  392. package/dist/astro/routes/api/search/stats.mjs +9 -9
  393. package/dist/astro/routes/api/search/suggest.mjs +19 -18
  394. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  395. package/dist/astro/routes/api/sections/_slug_.mjs +19 -18
  396. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  397. package/dist/astro/routes/api/sections/index.mjs +19 -18
  398. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  399. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  400. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  401. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  402. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  403. package/dist/astro/routes/api/settings/email.mjs +6 -6
  404. package/dist/astro/routes/api/settings.mjs +23 -22
  405. package/dist/astro/routes/api/settings.mjs.map +1 -1
  406. package/dist/astro/routes/api/setup/admin-verify.d.mts.map +1 -1
  407. package/dist/astro/routes/api/setup/admin-verify.mjs +26 -24
  408. package/dist/astro/routes/api/setup/admin-verify.mjs.map +1 -1
  409. package/dist/astro/routes/api/setup/admin.mjs +19 -18
  410. package/dist/astro/routes/api/setup/admin.mjs.map +1 -1
  411. package/dist/astro/routes/api/setup/dev-bypass.mjs +47 -40
  412. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  413. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  414. package/dist/astro/routes/api/setup/index.mjs +52 -45
  415. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  416. package/dist/astro/routes/api/setup/status.mjs +6 -6
  417. package/dist/astro/routes/api/snapshot.mjs +8 -8
  418. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +25 -24
  419. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs.map +1 -1
  420. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +25 -24
  421. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs.map +1 -1
  422. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -24
  423. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs.map +1 -1
  424. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +25 -24
  425. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs.map +1 -1
  426. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +24 -23
  427. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs.map +1 -1
  428. package/dist/astro/routes/api/taxonomies/_name_.mjs +25 -24
  429. package/dist/astro/routes/api/taxonomies/_name_.mjs.map +1 -1
  430. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +42 -40
  431. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
  432. package/dist/astro/routes/api/taxonomies/index.mjs +25 -24
  433. package/dist/astro/routes/api/taxonomies/index.mjs.map +1 -1
  434. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  435. package/dist/astro/routes/api/typegen.d.mts.map +1 -1
  436. package/dist/astro/routes/api/typegen.mjs +8 -39
  437. package/dist/astro/routes/api/typegen.mjs.map +1 -1
  438. package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
  439. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +20 -19
  440. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs.map +1 -1
  441. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
  442. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  443. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  444. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  445. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +17 -16
  446. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  447. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +20 -19
  448. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  449. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +20 -19
  450. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  451. package/dist/astro/routes/api/widget-areas/_name_.mjs +9 -9
  452. package/dist/astro/routes/api/widget-areas/index.mjs +20 -19
  453. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  454. package/dist/astro/routes/api/widget-components.mjs +5 -5
  455. package/dist/astro/routes/robots.txt.mjs +7 -7
  456. package/dist/astro/routes/sitemap-_collection_.xml.mjs +10 -10
  457. package/dist/astro/routes/sitemap.xml.mjs +8 -8
  458. package/dist/astro/types.d.mts +30 -18
  459. package/dist/astro/types.d.mts.map +1 -1
  460. package/dist/audit-BszbE_BP.mjs +127 -0
  461. package/dist/audit-BszbE_BP.mjs.map +1 -0
  462. package/dist/auth/providers/github.d.mts +1 -1
  463. package/dist/auth/providers/google.d.mts +1 -1
  464. package/dist/authoritative-records-dSvXCfzb.mjs +5172 -0
  465. package/dist/authoritative-records-dSvXCfzb.mjs.map +1 -0
  466. package/dist/authorize-soZXK7U0.mjs +49 -0
  467. package/dist/authorize-soZXK7U0.mjs.map +1 -0
  468. package/dist/backup-DQ3CABsO.mjs +246 -0
  469. package/dist/backup-DQ3CABsO.mjs.map +1 -0
  470. package/dist/block-types-DIG_KZwi.mjs +132 -0
  471. package/dist/block-types-DIG_KZwi.mjs.map +1 -0
  472. package/dist/block-values-BrTrtA-v.mjs +175 -0
  473. package/dist/block-values-BrTrtA-v.mjs.map +1 -0
  474. package/dist/byline-02tu_Uc-.mjs +909 -0
  475. package/dist/byline-02tu_Uc-.mjs.map +1 -0
  476. package/dist/byline-fields-B01Txzyx.mjs +123 -0
  477. package/dist/byline-fields-B01Txzyx.mjs.map +1 -0
  478. package/dist/byline-fields-DHJs0Mja.mjs +280 -0
  479. package/dist/byline-fields-DHJs0Mja.mjs.map +1 -0
  480. package/dist/byline-registry-dvt4N3xV.mjs +406 -0
  481. package/dist/byline-registry-dvt4N3xV.mjs.map +1 -0
  482. package/dist/bylines-COTwmMBF.mjs +150 -0
  483. package/dist/bylines-COTwmMBF.mjs.map +1 -0
  484. package/dist/bylines-D_S8UKRX.mjs +214 -0
  485. package/dist/bylines-D_S8UKRX.mjs.map +1 -0
  486. package/dist/cache-CPanL9IO.mjs +114 -0
  487. package/dist/cache-CPanL9IO.mjs.map +1 -0
  488. package/dist/canonical-CAecl1UQ.mjs +174 -0
  489. package/dist/canonical-CAecl1UQ.mjs.map +1 -0
  490. package/dist/capture-triggers-CdZfvHtF.mjs +362 -0
  491. package/dist/capture-triggers-CdZfvHtF.mjs.map +1 -0
  492. package/dist/challenge-store-CxZxPqaw.mjs +51 -0
  493. package/dist/challenge-store-CxZxPqaw.mjs.map +1 -0
  494. package/dist/checksum-DtH6m5uk.mjs +162 -0
  495. package/dist/checksum-DtH6m5uk.mjs.map +1 -0
  496. package/dist/chrome-tags-CKELm-bo.mjs +24 -0
  497. package/dist/chrome-tags-CKELm-bo.mjs.map +1 -0
  498. package/dist/chunks-DBmkKmBH.mjs +25 -0
  499. package/dist/chunks-DBmkKmBH.mjs.map +1 -0
  500. package/dist/cli/index.mjs +380 -1620
  501. package/dist/cli/index.mjs.map +1 -1
  502. package/dist/client/cf-access.d.mts +1 -1
  503. package/dist/client/index.d.mts +39 -34
  504. package/dist/client/index.d.mts.map +1 -1
  505. package/dist/client/index.mjs +8 -3
  506. package/dist/client/index.mjs.map +1 -1
  507. package/dist/collection-deletion-JecE26cS.mjs +436 -0
  508. package/dist/collection-deletion-JecE26cS.mjs.map +1 -0
  509. package/dist/collection-deletion-processor-DgCfF3a1.mjs +217 -0
  510. package/dist/collection-deletion-processor-DgCfF3a1.mjs.map +1 -0
  511. package/dist/collection-slugs-cache-BNRAPNiu.mjs +85 -0
  512. package/dist/collection-slugs-cache-BNRAPNiu.mjs.map +1 -0
  513. package/dist/comment-Cq1UYN8_.mjs +313 -0
  514. package/dist/comment-Cq1UYN8_.mjs.map +1 -0
  515. package/dist/comment-reaction-DPeGAfjd.mjs +85 -0
  516. package/dist/comment-reaction-DPeGAfjd.mjs.map +1 -0
  517. package/dist/comments-BRtp992B.mjs +99 -0
  518. package/dist/comments-BRtp992B.mjs.map +1 -0
  519. package/dist/comments-Bi2j9IoX.mjs +195 -0
  520. package/dist/comments-Bi2j9IoX.mjs.map +1 -0
  521. package/dist/components-CQY-Sgm-.mjs +108 -0
  522. package/dist/components-CQY-Sgm-.mjs.map +1 -0
  523. package/dist/config-BnuORwSP.mjs +242 -0
  524. package/dist/config-BnuORwSP.mjs.map +1 -0
  525. package/dist/config-CDmPF4p7.d.mts +39 -0
  526. package/dist/config-CDmPF4p7.d.mts.map +1 -0
  527. package/dist/config-DHsDMpXc.d.mts +6707 -0
  528. package/dist/config-DHsDMpXc.d.mts.map +1 -0
  529. package/dist/connection-B9pIasFd.mjs +36 -0
  530. package/dist/connection-B9pIasFd.mjs.map +1 -0
  531. package/dist/content-RzEXY3QX.mjs +2020 -0
  532. package/dist/content-RzEXY3QX.mjs.map +1 -0
  533. package/dist/content-list-query-CnXfe1Nu.d.mts +26 -0
  534. package/dist/content-list-query-CnXfe1Nu.d.mts.map +1 -0
  535. package/dist/content-policy-Dm32n9C6.mjs +46 -0
  536. package/dist/content-policy-Dm32n9C6.mjs.map +1 -0
  537. package/dist/content-repair-B-k5JrVN.mjs +442 -0
  538. package/dist/content-repair-B-k5JrVN.mjs.map +1 -0
  539. package/dist/context-CtRvoSAj.mjs +2026 -0
  540. package/dist/context-CtRvoSAj.mjs.map +1 -0
  541. package/dist/credits-CAFPFhuk.mjs +110 -0
  542. package/dist/credits-CAFPFhuk.mjs.map +1 -0
  543. package/dist/cron-xe5XKqA-.mjs +306 -0
  544. package/dist/cron-xe5XKqA-.mjs.map +1 -0
  545. package/dist/dashboard-BoV4pwPP.mjs +151 -0
  546. package/dist/dashboard-BoV4pwPP.mjs.map +1 -0
  547. package/dist/db/index.d.mts +3 -3
  548. package/dist/db/index.mjs +1 -1
  549. package/dist/db/libsql-migrations.d.mts +1 -1
  550. package/dist/db/libsql-migrations.mjs +4 -4
  551. package/dist/db/libsql.d.mts +1 -1
  552. package/dist/db/postgres-migrations.d.mts +1 -1
  553. package/dist/db/postgres-migrations.mjs +4 -4
  554. package/dist/db/postgres.d.mts +1 -1
  555. package/dist/db/sqlite-migrations.d.mts +1 -1
  556. package/dist/db/sqlite-migrations.mjs +4 -4
  557. package/dist/db/sqlite.d.mts +1 -1
  558. package/dist/db/sqlite.mjs +1 -1
  559. package/dist/default-DaoYyFRS.mjs +81 -0
  560. package/dist/default-DaoYyFRS.mjs.map +1 -0
  561. package/dist/deferred-tasks-OBADxoFf.d.mts +9 -0
  562. package/dist/deferred-tasks-OBADxoFf.d.mts.map +1 -0
  563. package/dist/destination-r2zIAZ2S.mjs +18 -0
  564. package/dist/destination-r2zIAZ2S.mjs.map +1 -0
  565. package/dist/dev-typegen-8JlYYFno.mjs +29 -0
  566. package/dist/dev-typegen-8JlYYFno.mjs.map +1 -0
  567. package/dist/device-flow-CzKi6tID.mjs +521 -0
  568. package/dist/device-flow-CzKi6tID.mjs.map +1 -0
  569. package/dist/digest-DiYAoZpf.mjs +194 -0
  570. package/dist/digest-DiYAoZpf.mjs.map +1 -0
  571. package/dist/direct-executor-CsEmH_2m.mjs +104 -0
  572. package/dist/direct-executor-CsEmH_2m.mjs.map +1 -0
  573. package/dist/dist-Cfu8mMBs.mjs +810 -0
  574. package/dist/dist-Cfu8mMBs.mjs.map +1 -0
  575. package/dist/email-console-DmqVF5J_.mjs +50 -0
  576. package/dist/email-console-DmqVF5J_.mjs.map +1 -0
  577. package/dist/email-locale-B5OjmAj_.mjs +25 -0
  578. package/dist/email-locale-B5OjmAj_.mjs.map +1 -0
  579. package/dist/emdash-runtime-CMdYH2Of.mjs +4229 -0
  580. package/dist/emdash-runtime-CMdYH2Of.mjs.map +1 -0
  581. package/dist/enrich-BDdVNeDK.mjs +194 -0
  582. package/dist/enrich-BDdVNeDK.mjs.map +1 -0
  583. package/dist/entry-lock-B-1bUDxX.d.mts +4544 -0
  584. package/dist/entry-lock-B-1bUDxX.d.mts.map +1 -0
  585. package/dist/entry-lock-B5eaZEZP.mjs +163 -0
  586. package/dist/entry-lock-B5eaZEZP.mjs.map +1 -0
  587. package/dist/entry-lock-PP1JCXBB.mjs +1180 -0
  588. package/dist/entry-lock-PP1JCXBB.mjs.map +1 -0
  589. package/dist/entry-locks-DJAqVweV.mjs +167 -0
  590. package/dist/entry-locks-DJAqVweV.mjs.map +1 -0
  591. package/dist/env-types-BaTCgn-y.mjs +38 -0
  592. package/dist/env-types-BaTCgn-y.mjs.map +1 -0
  593. package/dist/error-CEdm_AWU.mjs +90 -0
  594. package/dist/error-CEdm_AWU.mjs.map +1 -0
  595. package/dist/errors-CNvATh_7.mjs +469 -0
  596. package/dist/errors-CNvATh_7.mjs.map +1 -0
  597. package/dist/errors-CjXd1LgH.mjs +120 -0
  598. package/dist/errors-CjXd1LgH.mjs.map +1 -0
  599. package/dist/escape-nJW7dR0s.mjs +9 -0
  600. package/dist/escape-nJW7dR0s.mjs.map +1 -0
  601. package/dist/fence-BrnQffdY.mjs +162 -0
  602. package/dist/fence-BrnQffdY.mjs.map +1 -0
  603. package/dist/field-defs-cache-DEkFYCDE.mjs +77 -0
  604. package/dist/field-defs-cache-DEkFYCDE.mjs.map +1 -0
  605. package/dist/field-map-Cp5hDSRU.mjs +83 -0
  606. package/dist/field-map-Cp5hDSRU.mjs.map +1 -0
  607. package/dist/focal-point-JX8kcOTQ.mjs +23 -0
  608. package/dist/focal-point-JX8kcOTQ.mjs.map +1 -0
  609. package/dist/fts-manager-DU03MxWu.mjs +443 -0
  610. package/dist/fts-manager-DU03MxWu.mjs.map +1 -0
  611. package/dist/gc-Gf9LOF42.mjs +75 -0
  612. package/dist/gc-Gf9LOF42.mjs.map +1 -0
  613. package/dist/hash-CY4QdeMJ.mjs +37 -0
  614. package/dist/hash-CY4QdeMJ.mjs.map +1 -0
  615. package/dist/hook-result-DjdVwWpw.d.mts +31 -0
  616. package/dist/hook-result-DjdVwWpw.d.mts.map +1 -0
  617. package/dist/hreflang-Bq0ahAd4.mjs +105 -0
  618. package/dist/hreflang-Bq0ahAd4.mjs.map +1 -0
  619. package/dist/hreflang-C7ETs0Tv.d.mts +50 -0
  620. package/dist/hreflang-C7ETs0Tv.d.mts.map +1 -0
  621. package/dist/http-route-dispatch-B2G7_OOm.mjs +339 -0
  622. package/dist/http-route-dispatch-B2G7_OOm.mjs.map +1 -0
  623. package/dist/identity-u3KgtUC9.mjs +35 -0
  624. package/dist/identity-u3KgtUC9.mjs.map +1 -0
  625. package/dist/import-CzP9ffo0.mjs +2020 -0
  626. package/dist/import-CzP9ffo0.mjs.map +1 -0
  627. package/dist/index-D1_ykO2u.d.mts +623 -0
  628. package/dist/index-D1_ykO2u.d.mts.map +1 -0
  629. package/dist/index.d.mts +24 -24
  630. package/dist/index.mjs +108 -102
  631. package/dist/install-finalization-TbcQozrV.mjs +58 -0
  632. package/dist/install-finalization-TbcQozrV.mjs.map +1 -0
  633. package/dist/keys-r08WvAng.mjs +61 -0
  634. package/dist/keys-r08WvAng.mjs.map +1 -0
  635. package/dist/kinds-CXY-fwQ6.mjs +974 -0
  636. package/dist/kinds-CXY-fwQ6.mjs.map +1 -0
  637. package/dist/lifecycle-CpebZNAA.mjs +25 -0
  638. package/dist/lifecycle-CpebZNAA.mjs.map +1 -0
  639. package/dist/load-dHcR5yh9.mjs +28 -0
  640. package/dist/load-dHcR5yh9.mjs.map +1 -0
  641. package/dist/loader-B_bcoE1h.mjs +1197 -0
  642. package/dist/loader-B_bcoE1h.mjs.map +1 -0
  643. package/dist/loops-Dn1i16FP.mjs +205 -0
  644. package/dist/loops-Dn1i16FP.mjs.map +1 -0
  645. package/dist/manifest-builder-D7Y8iirE.mjs +189 -0
  646. package/dist/manifest-builder-D7Y8iirE.mjs.map +1 -0
  647. package/dist/manifest-schema-gy37bD_D.mjs +496 -0
  648. package/dist/manifest-schema-gy37bD_D.mjs.map +1 -0
  649. package/dist/marketplace-tHWSsCUo.mjs +257 -0
  650. package/dist/marketplace-tHWSsCUo.mjs.map +1 -0
  651. package/dist/media/image-endpoint.mjs +1 -1
  652. package/dist/media/index.d.mts +1 -1
  653. package/dist/media/index.mjs +4 -4
  654. package/dist/media/local-runtime.d.mts +14 -14
  655. package/dist/media/local-runtime.mjs +7 -7
  656. package/dist/media-3v7mqAVX.mjs +294 -0
  657. package/dist/media-3v7mqAVX.mjs.map +1 -0
  658. package/dist/media-CputjGE1.mjs +373 -0
  659. package/dist/media-CputjGE1.mjs.map +1 -0
  660. package/dist/media-D1z_jisb.mjs +408 -0
  661. package/dist/media-D1z_jisb.mjs.map +1 -0
  662. package/dist/media-allowlist-D5a4d-RA.mjs +44 -0
  663. package/dist/media-allowlist-D5a4d-RA.mjs.map +1 -0
  664. package/dist/media-folders-D2VdVBf6.mjs +210 -0
  665. package/dist/media-folders-D2VdVBf6.mjs.map +1 -0
  666. package/dist/media-url-DloW2xrP.mjs +43 -0
  667. package/dist/media-url-DloW2xrP.mjs.map +1 -0
  668. package/dist/media-usage-B8q0owWQ.mjs +1629 -0
  669. package/dist/media-usage-B8q0owWQ.mjs.map +1 -0
  670. package/dist/media-usage-activation-CQWOOTJi.mjs +78 -0
  671. package/dist/media-usage-activation-CQWOOTJi.mjs.map +1 -0
  672. package/dist/media-usage-work-BC0qpkMD.mjs +152 -0
  673. package/dist/media-usage-work-BC0qpkMD.mjs.map +1 -0
  674. package/dist/media-usage-work-BlMjwPg8.mjs +586 -0
  675. package/dist/media-usage-work-BlMjwPg8.mjs.map +1 -0
  676. package/dist/menus-BQKqf0Up.mjs +92 -0
  677. package/dist/menus-BQKqf0Up.mjs.map +1 -0
  678. package/dist/menus-DiuhXKWf.mjs +3646 -0
  679. package/dist/menus-DiuhXKWf.mjs.map +1 -0
  680. package/dist/menus-trvc6_fW.mjs +753 -0
  681. package/dist/menus-trvc6_fW.mjs.map +1 -0
  682. package/dist/migrations/index.d.mts +1 -1
  683. package/dist/migrations/index.mjs +3 -3
  684. package/dist/mime-IZf-LHIS.mjs +36 -0
  685. package/dist/mime-IZf-LHIS.mjs.map +1 -0
  686. package/dist/mode-nh0ppSX5.mjs +23 -0
  687. package/dist/mode-nh0ppSX5.mjs.map +1 -0
  688. package/dist/node-sqlite-compat-CDOEcc97.mjs +63 -0
  689. package/dist/node-sqlite-compat-CDOEcc97.mjs.map +1 -0
  690. package/dist/normalize-BuWa0lvd.mjs +191 -0
  691. package/dist/normalize-BuWa0lvd.mjs.map +1 -0
  692. package/dist/oauth-authorization-BcRdGojQ.mjs +274 -0
  693. package/dist/oauth-authorization-BcRdGojQ.mjs.map +1 -0
  694. package/dist/oauth-clients-C-8WDTqj.mjs +266 -0
  695. package/dist/oauth-clients-C-8WDTqj.mjs.map +1 -0
  696. package/dist/oauth-state-store-CM5ZEYQS.mjs +50 -0
  697. package/dist/oauth-state-store-CM5ZEYQS.mjs.map +1 -0
  698. package/dist/oauth-user-lookup-DrrqvTZC.mjs +26 -0
  699. package/dist/oauth-user-lookup-DrrqvTZC.mjs.map +1 -0
  700. package/dist/object-cache/memory.d.mts +1 -1
  701. package/dist/object-cache-Bo6DGaC9.mjs +586 -0
  702. package/dist/object-cache-Bo6DGaC9.mjs.map +1 -0
  703. package/dist/options-C2IDQnD2.d.mts +81 -0
  704. package/dist/options-C2IDQnD2.d.mts.map +1 -0
  705. package/dist/ownership-DoeAIuTg.mjs +12 -0
  706. package/dist/ownership-DoeAIuTg.mjs.map +1 -0
  707. package/dist/page/index.d.mts +2 -2
  708. package/dist/page/index.mjs +6 -6
  709. package/dist/parse-D5Sw9wAI.d.mts +172 -0
  710. package/dist/parse-D5Sw9wAI.d.mts.map +1 -0
  711. package/dist/parse-Gt2l4Sld.mjs +81 -0
  712. package/dist/parse-Gt2l4Sld.mjs.map +1 -0
  713. package/dist/passkey-config-CkQsrcU-.mjs +46 -0
  714. package/dist/passkey-config-CkQsrcU-.mjs.map +1 -0
  715. package/dist/paths-DiENGBx5.mjs +77 -0
  716. package/dist/paths-DiENGBx5.mjs.map +1 -0
  717. package/dist/patterns-DyZJ67I7.mjs +140 -0
  718. package/dist/patterns-DyZJ67I7.mjs.map +1 -0
  719. package/dist/placeholder-Cq5wLDCX.d.mts +306 -0
  720. package/dist/placeholder-Cq5wLDCX.d.mts.map +1 -0
  721. package/dist/plan-BxCS1tl5.mjs +135 -0
  722. package/dist/plan-BxCS1tl5.mjs.map +1 -0
  723. package/dist/plugin-test-runtime.d.mts +14 -14
  724. package/dist/plugin-test-runtime.mjs +115 -108
  725. package/dist/plugin-types.d.mts +5 -3
  726. package/dist/plugin-types.d.mts.map +1 -1
  727. package/dist/plugin-types.mjs.map +1 -1
  728. package/dist/plugin-utils.d.mts +12 -12
  729. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  730. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  731. package/dist/plugins/adapt-sandbox-entry.mjs +48 -10
  732. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  733. package/dist/plugins/host.d.mts +6 -6
  734. package/dist/plugins/host.mjs +49 -43
  735. package/dist/plugins-BpLkXA1S.mjs +277 -0
  736. package/dist/plugins-BpLkXA1S.mjs.map +1 -0
  737. package/dist/policy-C1qpNxrr.mjs +45 -0
  738. package/dist/policy-C1qpNxrr.mjs.map +1 -0
  739. package/dist/portable-text-BnRuiR1-.mjs +307 -0
  740. package/dist/portable-text-BnRuiR1-.mjs.map +1 -0
  741. package/dist/preview-DU5rwz_m.mjs +107 -0
  742. package/dist/preview-DU5rwz_m.mjs.map +1 -0
  743. package/dist/protocol-B9GEhEyi.d.mts +61 -0
  744. package/dist/protocol-B9GEhEyi.d.mts.map +1 -0
  745. package/dist/public-submission-yZaTTfsC.mjs +250 -0
  746. package/dist/public-submission-yZaTTfsC.mjs.map +1 -0
  747. package/dist/public-url-B5a0QAh6.mjs +101 -0
  748. package/dist/public-url-B5a0QAh6.mjs.map +1 -0
  749. package/dist/query-6e2CQxUv.mjs +1161 -0
  750. package/dist/query-6e2CQxUv.mjs.map +1 -0
  751. package/dist/query-DC3bv__4.mjs +41 -0
  752. package/dist/query-DC3bv__4.mjs.map +1 -0
  753. package/dist/rate-limit-BXx3Ecp9.mjs +120 -0
  754. package/dist/rate-limit-BXx3Ecp9.mjs.map +1 -0
  755. package/dist/receipt-q1VK9jhj.mjs +43 -0
  756. package/dist/receipt-q1VK9jhj.mjs.map +1 -0
  757. package/dist/redirect-BvFKh8Sz.mjs +416 -0
  758. package/dist/redirect-BvFKh8Sz.mjs.map +1 -0
  759. package/dist/redirect-D1AmADlk.mjs +19 -0
  760. package/dist/redirect-D1AmADlk.mjs.map +1 -0
  761. package/dist/redirects-CWQMKYOS.mjs +446 -0
  762. package/dist/redirects-CWQMKYOS.mjs.map +1 -0
  763. package/dist/redirects-D4EWeXAo.mjs +148 -0
  764. package/dist/redirects-D4EWeXAo.mjs.map +1 -0
  765. package/dist/registry/testing.d.mts +16 -4
  766. package/dist/registry/testing.d.mts.map +1 -1
  767. package/dist/registry/testing.mjs +20 -10
  768. package/dist/registry/testing.mjs.map +1 -1
  769. package/dist/registry-CtHRqVe-.mjs +6771 -0
  770. package/dist/registry-CtHRqVe-.mjs.map +1 -0
  771. package/dist/relations-CVI2nbrn.mjs +776 -0
  772. package/dist/relations-CVI2nbrn.mjs.map +1 -0
  773. package/dist/request-cache-C4CIo5ad.mjs +104 -0
  774. package/dist/request-cache-C4CIo5ad.mjs.map +1 -0
  775. package/dist/request-context.d.mts +9 -1
  776. package/dist/request-context.d.mts.map +1 -1
  777. package/dist/request-context.mjs.map +1 -1
  778. package/dist/request-meta-B6blULFY.mjs +141 -0
  779. package/dist/request-meta-B6blULFY.mjs.map +1 -0
  780. package/dist/resolve-Cx0Pwz0-.mjs +100 -0
  781. package/dist/resolve-Cx0Pwz0-.mjs.map +1 -0
  782. package/dist/resolve-D-kqyKns.mjs +199 -0
  783. package/dist/resolve-D-kqyKns.mjs.map +1 -0
  784. package/dist/revision-CGkQA0e5.mjs +366 -0
  785. package/dist/revision-CGkQA0e5.mjs.map +1 -0
  786. package/dist/route-wire-DK600v4u.mjs +197 -0
  787. package/dist/route-wire-DK600v4u.mjs.map +1 -0
  788. package/dist/routes-DTduBPzX.mjs +272 -0
  789. package/dist/routes-DTduBPzX.mjs.map +1 -0
  790. package/dist/runner-CLpxmhl8.mjs +6197 -0
  791. package/dist/runner-CLpxmhl8.mjs.map +1 -0
  792. package/dist/runner-Ji7qyH2A.d.mts +68 -0
  793. package/dist/runner-Ji7qyH2A.d.mts.map +1 -0
  794. package/dist/runtime.d.mts +13 -13
  795. package/dist/runtime.mjs +3 -3
  796. package/dist/schema/project-env-types.d.mts +12 -0
  797. package/dist/schema/project-env-types.d.mts.map +1 -0
  798. package/dist/schema/project-env-types.mjs +86 -0
  799. package/dist/schema/project-env-types.mjs.map +1 -0
  800. package/dist/schema-BZPj3kwZ.mjs +13 -0
  801. package/dist/schema-BZPj3kwZ.mjs.map +1 -0
  802. package/dist/schema-Berj5VQx.mjs +815 -0
  803. package/dist/schema-Berj5VQx.mjs.map +1 -0
  804. package/dist/scopes-C1HJaIyf.mjs +34 -0
  805. package/dist/scopes-C1HJaIyf.mjs.map +1 -0
  806. package/dist/search-thYf8j9F.mjs +448 -0
  807. package/dist/search-thYf8j9F.mjs.map +1 -0
  808. package/dist/sections-2k1uIgJ0.mjs +346 -0
  809. package/dist/sections-2k1uIgJ0.mjs.map +1 -0
  810. package/dist/seed/index.d.mts +2 -2
  811. package/dist/seed/index.mjs +39 -32
  812. package/dist/seo/index.d.mts +3 -3
  813. package/dist/seo/index.mjs +24 -22
  814. package/dist/seo/index.mjs.map +1 -1
  815. package/dist/seo-C61bnPuV.mjs +114 -0
  816. package/dist/seo-C61bnPuV.mjs.map +1 -0
  817. package/dist/seo-DpYxmGaL.mjs +133 -0
  818. package/dist/seo-DpYxmGaL.mjs.map +1 -0
  819. package/dist/service-BFUImckH.mjs +150 -0
  820. package/dist/service-BFUImckH.mjs.map +1 -0
  821. package/dist/session-user-DVcHsFD5.mjs +61 -0
  822. package/dist/session-user-DVcHsFD5.mjs.map +1 -0
  823. package/dist/settings-B0zQj_Tj.mjs +61 -0
  824. package/dist/settings-B0zQj_Tj.mjs.map +1 -0
  825. package/dist/settings-BJjK_X7x.mjs +51 -0
  826. package/dist/settings-BJjK_X7x.mjs.map +1 -0
  827. package/dist/settings-BbVRRGDp.mjs +439 -0
  828. package/dist/settings-BbVRRGDp.mjs.map +1 -0
  829. package/dist/setup-complete-CuLcTDTU.mjs +65 -0
  830. package/dist/setup-complete-CuLcTDTU.mjs.map +1 -0
  831. package/dist/setup-nonce-CAQoY5PC.mjs +25 -0
  832. package/dist/setup-nonce-CAQoY5PC.mjs.map +1 -0
  833. package/dist/site-settings-AYFvhwQn.mjs +50 -0
  834. package/dist/site-settings-AYFvhwQn.mjs.map +1 -0
  835. package/dist/site-url-Ceq_AUK0.mjs +16 -0
  836. package/dist/site-url-Ceq_AUK0.mjs.map +1 -0
  837. package/dist/snapshot-Dzsn3NZa.mjs +414 -0
  838. package/dist/snapshot-Dzsn3NZa.mjs.map +1 -0
  839. package/dist/ssrf-DsmvZB80.mjs +406 -0
  840. package/dist/ssrf-DsmvZB80.mjs.map +1 -0
  841. package/dist/stage-Cf9PqdUB.mjs +662 -0
  842. package/dist/stage-Cf9PqdUB.mjs.map +1 -0
  843. package/dist/staged-Bw5eHbKS.mjs +686 -0
  844. package/dist/staged-Bw5eHbKS.mjs.map +1 -0
  845. package/dist/state-kGdOMQRY.mjs +153 -0
  846. package/dist/state-kGdOMQRY.mjs.map +1 -0
  847. package/dist/status-D39Fpy8R.mjs +30 -0
  848. package/dist/status-D39Fpy8R.mjs.map +1 -0
  849. package/dist/storage/local.d.mts +1 -1
  850. package/dist/storage/local.mjs +1 -1
  851. package/dist/storage/s3.d.mts +1 -1
  852. package/dist/storage/s3.mjs +1 -1
  853. package/dist/storage-query-C9bK0Dg6.d.mts +1614 -0
  854. package/dist/storage-query-C9bK0Dg6.d.mts.map +1 -0
  855. package/dist/tar-lDI_fzLD.mjs +449 -0
  856. package/dist/tar-lDI_fzLD.mjs.map +1 -0
  857. package/dist/target-DOFs5oUC.mjs +27 -0
  858. package/dist/target-DOFs5oUC.mjs.map +1 -0
  859. package/dist/taxonomies-DQGomz9p.mjs +939 -0
  860. package/dist/taxonomies-DQGomz9p.mjs.map +1 -0
  861. package/dist/taxonomies-DWv-OYT0.mjs +697 -0
  862. package/dist/taxonomies-DWv-OYT0.mjs.map +1 -0
  863. package/dist/taxonomy-BesdHIwi.mjs +525 -0
  864. package/dist/taxonomy-BesdHIwi.mjs.map +1 -0
  865. package/dist/tokens-BIGxi8sP.mjs +171 -0
  866. package/dist/tokens-BIGxi8sP.mjs.map +1 -0
  867. package/dist/transaction-BVYIo_yu.mjs +29 -0
  868. package/dist/transaction-BVYIo_yu.mjs.map +1 -0
  869. package/dist/transfer-BtzoaXLk.mjs +166 -0
  870. package/dist/transfer-BtzoaXLk.mjs.map +1 -0
  871. package/dist/transfer-DLu_6AXL.mjs +8856 -0
  872. package/dist/transfer-DLu_6AXL.mjs.map +1 -0
  873. package/dist/transfer-download-b_PCrqJJ.mjs +33 -0
  874. package/dist/transfer-download-b_PCrqJJ.mjs.map +1 -0
  875. package/dist/transformations-DdnpSdeC.mjs +196 -0
  876. package/dist/transformations-DdnpSdeC.mjs.map +1 -0
  877. package/dist/transport-flR-Zmds.d.mts +42 -0
  878. package/dist/transport-flR-Zmds.d.mts.map +1 -0
  879. package/dist/transport-umzEbgYO.mjs +136 -0
  880. package/dist/transport-umzEbgYO.mjs.map +1 -0
  881. package/dist/trusted-proxy-BqfQFs6a.mjs +51 -0
  882. package/dist/trusted-proxy-BqfQFs6a.mjs.map +1 -0
  883. package/dist/turnstile-IvQp2uyD.mjs +53 -0
  884. package/dist/turnstile-IvQp2uyD.mjs.map +1 -0
  885. package/dist/types-2V_MVPYy.d.mts +125 -0
  886. package/dist/types-2V_MVPYy.d.mts.map +1 -0
  887. package/dist/types-B-WCvzdi.d.mts +198 -0
  888. package/dist/types-B-WCvzdi.d.mts.map +1 -0
  889. package/dist/types-BGmQ0uXs.mjs +201 -0
  890. package/dist/types-BGmQ0uXs.mjs.map +1 -0
  891. package/dist/types-CVsmpTcU.mjs +18 -0
  892. package/dist/types-CVsmpTcU.mjs.map +1 -0
  893. package/dist/types-C_V-_vMS.d.mts +198 -0
  894. package/dist/types-C_V-_vMS.d.mts.map +1 -0
  895. package/dist/types-CdEMurNh.mjs +77 -0
  896. package/dist/types-CdEMurNh.mjs.map +1 -0
  897. package/dist/types-CsmwbOwa.mjs +22 -0
  898. package/dist/types-CsmwbOwa.mjs.map +1 -0
  899. package/dist/types-Cw-1it3n.d.mts +287 -0
  900. package/dist/types-Cw-1it3n.d.mts.map +1 -0
  901. package/dist/types-D7B20WFC.d.mts +374 -0
  902. package/dist/types-D7B20WFC.d.mts.map +1 -0
  903. package/dist/types-DGw8KMX_.mjs +16 -0
  904. package/dist/types-DGw8KMX_.mjs.map +1 -0
  905. package/dist/types-DZeDpzMc.d.mts +896 -0
  906. package/dist/types-DZeDpzMc.d.mts.map +1 -0
  907. package/dist/types-DuQAIPA-.d.mts +363 -0
  908. package/dist/types-DuQAIPA-.d.mts.map +1 -0
  909. package/dist/types-edRPQchz.d.mts +85 -0
  910. package/dist/types-edRPQchz.d.mts.map +1 -0
  911. package/dist/types-j6MBDjlZ.mjs +103 -0
  912. package/dist/types-j6MBDjlZ.mjs.map +1 -0
  913. package/dist/types-pOLeFKGq.d.mts +1720 -0
  914. package/dist/types-pOLeFKGq.d.mts.map +1 -0
  915. package/dist/update-check-CaZyFHZC.mjs +161 -0
  916. package/dist/update-check-CaZyFHZC.mjs.map +1 -0
  917. package/dist/upload-attempts-BodUoFBu.mjs +32 -0
  918. package/dist/upload-attempts-BodUoFBu.mjs.map +1 -0
  919. package/dist/url-Dn3IStq8.mjs +104 -0
  920. package/dist/url-Dn3IStq8.mjs.map +1 -0
  921. package/dist/url-pattern-DGAG6ZP2.mjs +41 -0
  922. package/dist/url-pattern-DGAG6ZP2.mjs.map +1 -0
  923. package/dist/user-BOvuF1sQ.mjs +171 -0
  924. package/dist/user-BOvuF1sQ.mjs.map +1 -0
  925. package/dist/utils-CoV-PYhg.mjs +439 -0
  926. package/dist/utils-CoV-PYhg.mjs.map +1 -0
  927. package/dist/validate-WkjGwBSO.mjs +516 -0
  928. package/dist/validate-WkjGwBSO.mjs.map +1 -0
  929. package/dist/validate-dK97qe7F.d.mts +468 -0
  930. package/dist/validate-dK97qe7F.d.mts.map +1 -0
  931. package/dist/validation-D-ICq_tY.mjs +219 -0
  932. package/dist/validation-D-ICq_tY.mjs.map +1 -0
  933. package/dist/version-DbT04wbH.mjs +9 -0
  934. package/dist/version-DbT04wbH.mjs.map +1 -0
  935. package/dist/version-IneBU54o.mjs +7 -0
  936. package/dist/version-IneBU54o.mjs.map +1 -0
  937. package/dist/virtual-modules-Brh6mRVe.mjs +516 -0
  938. package/dist/virtual-modules-Brh6mRVe.mjs.map +1 -0
  939. package/dist/widgets-D8T0xBYs.mjs +126 -0
  940. package/dist/widgets-D8T0xBYs.mjs.map +1 -0
  941. package/dist/wxr-taxonomies-B6iE8m9I.d.mts +34 -0
  942. package/dist/wxr-taxonomies-B6iE8m9I.d.mts.map +1 -0
  943. package/dist/wxr-taxonomies-DEzR9N7e.mjs +453 -0
  944. package/dist/wxr-taxonomies-DEzR9N7e.mjs.map +1 -0
  945. package/dist/zod-generator-DnfG5sGQ.mjs +424 -0
  946. package/dist/zod-generator-DnfG5sGQ.mjs.map +1 -0
  947. package/package.json +15 -15
  948. package/src/api/errors.ts +11 -0
  949. package/src/api/handlers/bulk-tag.ts +4 -4
  950. package/src/api/handlers/content.ts +631 -32
  951. package/src/api/handlers/device-flow.ts +74 -21
  952. package/src/api/handlers/index.ts +3 -0
  953. package/src/api/handlers/manifest.ts +81 -5
  954. package/src/api/handlers/media-upload.ts +3 -0
  955. package/src/api/handlers/media.ts +2 -2
  956. package/src/api/handlers/registry.ts +123 -70
  957. package/src/api/handlers/relations.ts +638 -157
  958. package/src/api/handlers/revision.ts +40 -2
  959. package/src/api/handlers/schema.ts +403 -1
  960. package/src/api/handlers/staged-references.ts +208 -0
  961. package/src/api/handlers/update-check.ts +236 -0
  962. package/src/api/handlers/validate-references.ts +146 -0
  963. package/src/api/redirect.ts +9 -1
  964. package/src/api/schemas/content.ts +17 -0
  965. package/src/api/schemas/import.ts +50 -14
  966. package/src/api/schemas/relations.ts +54 -44
  967. package/src/api/schemas/schema.ts +26 -6
  968. package/src/api/setup-complete.ts +49 -1
  969. package/src/api/types.ts +4 -0
  970. package/src/astro/dev-typegen.ts +15 -22
  971. package/src/astro/integration/dev-typegen.ts +32 -3
  972. package/src/astro/integration/index.ts +88 -22
  973. package/src/astro/integration/routes.ts +21 -19
  974. package/src/astro/integration/runtime.ts +33 -7
  975. package/src/astro/integration/virtual-modules.ts +1 -0
  976. package/src/astro/integration/vite-config.ts +16 -8
  977. package/src/astro/middleware/redirect.ts +15 -2
  978. package/src/astro/middleware/request-context.ts +13 -6
  979. package/src/astro/routes/api/admin/bylines/[id]/index.ts +11 -1
  980. package/src/astro/routes/api/admin/bylines/[id]/translations.ts +7 -1
  981. package/src/astro/routes/api/admin/bylines/index.ts +6 -1
  982. package/src/astro/routes/api/admin/core-update.ts +34 -0
  983. package/src/astro/routes/api/admin/plugins/marketplace/[id]/icon.ts +6 -2
  984. package/src/astro/routes/api/admin/themes/marketplace/[id]/thumbnail.ts +6 -2
  985. package/src/astro/routes/api/auth/invite/complete.ts +4 -4
  986. package/src/astro/routes/api/auth/magic-link/verify.ts +4 -1
  987. package/src/astro/routes/api/auth/oauth/[provider]/callback.ts +9 -4
  988. package/src/astro/routes/api/auth/passkey/verify.ts +4 -4
  989. package/src/astro/routes/api/auth/signup/complete.ts +4 -4
  990. package/src/astro/routes/api/content/[collection]/[id]/references/[relation]/children.ts +11 -54
  991. package/src/astro/routes/api/content/[collection]/[id].ts +3 -1
  992. package/src/astro/routes/api/import/wordpress/execute.ts +252 -6
  993. package/src/astro/routes/api/import/wordpress/prepare.ts +1 -2
  994. package/src/astro/routes/api/oauth/device/authorize.ts +33 -4
  995. package/src/astro/routes/api/oauth/register.ts +22 -2
  996. package/src/astro/routes/api/relations/index.ts +4 -4
  997. package/src/astro/routes/api/revisions/[revisionId]/restore.ts +17 -1
  998. package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +6 -2
  999. package/src/astro/routes/api/setup/admin-verify.ts +6 -5
  1000. package/src/astro/routes/api/typegen.ts +4 -46
  1001. package/src/astro/session-user.ts +14 -0
  1002. package/src/astro/types.ts +11 -0
  1003. package/src/bylines/credits.ts +149 -0
  1004. package/src/bylines/index.ts +4 -142
  1005. package/src/cli/commands/export-seed.ts +510 -89
  1006. package/src/cli/commands/seed.ts +2 -0
  1007. package/src/cli/credentials.ts +1 -60
  1008. package/src/cli/index.ts +0 -2
  1009. package/src/client/index.ts +8 -2
  1010. package/src/components/Image.astro +24 -13
  1011. package/src/components/InlinePortableTextEditor.tsx +25 -8
  1012. package/src/components/WidgetArea.astro +3 -2
  1013. package/src/content/converters/portable-text-to-prosemirror.ts +23 -17
  1014. package/src/content/converters/prosemirror-to-portable-text.ts +16 -5
  1015. package/src/content/converters/types.ts +1 -0
  1016. package/src/database/content-datetime.ts +111 -23
  1017. package/src/database/migrations/036_i18n_menus_and_taxonomies.ts +132 -92
  1018. package/src/database/migrations/086_relations_structural.ts +197 -0
  1019. package/src/database/migrations/087_reference_field_relations.ts +407 -0
  1020. package/src/database/migrations/088_cron_oneshot_utc.ts +39 -0
  1021. package/src/database/migrations/089_auto_seed_completion.ts +13 -0
  1022. package/src/database/migrations/runner.ts +8 -0
  1023. package/src/database/reference-backfill.ts +141 -0
  1024. package/src/database/repositories/comment.ts +2 -2
  1025. package/src/database/repositories/content.ts +58 -16
  1026. package/src/database/repositories/plugin-storage.ts +1 -1
  1027. package/src/database/repositories/redirect.ts +7 -2
  1028. package/src/database/repositories/relation.ts +622 -210
  1029. package/src/database/repositories/revision.ts +16 -0
  1030. package/src/database/repositories/types.ts +38 -0
  1031. package/src/database/transaction.ts +12 -1
  1032. package/src/database/types.ts +15 -6
  1033. package/src/db/node-sqlite-compat.ts +63 -37
  1034. package/src/emdash-runtime.ts +149 -46
  1035. package/src/import/wxr-taxonomies.ts +163 -88
  1036. package/src/index.ts +20 -0
  1037. package/src/loader.ts +177 -23
  1038. package/src/mcp/server.ts +90 -8
  1039. package/src/media/usage/activation.ts +18 -9
  1040. package/src/migrations/config-loader.ts +5 -0
  1041. package/src/object-cache/index.ts +19 -7
  1042. package/src/object-cache/types.ts +3 -2
  1043. package/src/plugin-types.ts +7 -0
  1044. package/src/plugins/adapt-sandbox-entry.ts +47 -12
  1045. package/src/plugins/byline-access.ts +158 -0
  1046. package/src/plugins/context.ts +7 -1
  1047. package/src/plugins/cron.ts +27 -4
  1048. package/src/plugins/hooks.ts +47 -0
  1049. package/src/plugins/host.ts +1 -0
  1050. package/src/plugins/index.ts +10 -1
  1051. package/src/plugins/manifest-schema.ts +5 -1
  1052. package/src/plugins/marketplace.ts +48 -36
  1053. package/src/plugins/sandbox/proxy.ts +1 -0
  1054. package/src/plugins/types.ts +95 -0
  1055. package/src/query.ts +464 -27
  1056. package/src/redirects/cache.ts +11 -1
  1057. package/src/redirects/destination.ts +20 -0
  1058. package/src/redirects/loops.ts +10 -6
  1059. package/src/redirects/patterns.ts +12 -30
  1060. package/src/references/field-map.ts +115 -0
  1061. package/src/references/resolve.ts +160 -0
  1062. package/src/references/staged.ts +157 -0
  1063. package/src/references/types.ts +16 -0
  1064. package/src/registry/artifact-fetch.ts +45 -271
  1065. package/src/registry/testing.ts +59 -14
  1066. package/src/request-context.ts +8 -0
  1067. package/src/schema/block-type-registry.ts +1 -1
  1068. package/src/schema/env-types.ts +37 -0
  1069. package/src/schema/project-env-types.ts +41 -0
  1070. package/src/schema/registry.ts +132 -26
  1071. package/src/schema/types.ts +63 -0
  1072. package/src/schema/url-pattern.ts +10 -0
  1073. package/src/schema/zod-generator.ts +78 -2
  1074. package/src/seed/apply.ts +553 -63
  1075. package/src/seed/ownership.ts +15 -0
  1076. package/src/seed/types.ts +36 -2
  1077. package/src/seed/validate.ts +123 -4
  1078. package/src/transfer/analyze/unique-keys.ts +3 -12
  1079. package/src/transfer/analyze/validate.ts +178 -40
  1080. package/src/transfer/analyze/values.ts +116 -2
  1081. package/src/transfer/analyze/write-rules.ts +8 -0
  1082. package/src/transfer/export/readers.ts +12 -8
  1083. package/src/transfer/format/columns.ts +26 -6
  1084. package/src/transfer/format/kinds.ts +21 -5
  1085. package/src/transfer/import/context.ts +8 -1
  1086. package/src/transfer/ops/package-index.ts +1 -1
  1087. package/src/utils/url.ts +58 -3
  1088. package/src/virtual-modules.d.ts +3 -0
  1089. package/dist/action-token-DYwe4Pk0.mjs +0 -26
  1090. package/dist/action-token-DYwe4Pk0.mjs.map +0 -1
  1091. package/dist/activation-LOkDM5WT.mjs +0 -382
  1092. package/dist/activation-LOkDM5WT.mjs.map +0 -1
  1093. package/dist/adapters-B64LbYcB.d.mts +0 -171
  1094. package/dist/adapters-B64LbYcB.d.mts.map +0 -1
  1095. package/dist/allowed-origins-CHB8oZNM.mjs +0 -116
  1096. package/dist/allowed-origins-CHB8oZNM.mjs.map +0 -1
  1097. package/dist/api-CuyNEHZG.mjs +0 -4718
  1098. package/dist/api-CuyNEHZG.mjs.map +0 -1
  1099. package/dist/api-tokens-s4i4aUp_.mjs +0 -166
  1100. package/dist/api-tokens-s4i4aUp_.mjs.map +0 -1
  1101. package/dist/apply-npY1TAhG.mjs +0 -1366
  1102. package/dist/apply-npY1TAhG.mjs.map +0 -1
  1103. package/dist/approvals-CqMfNxak.mjs +0 -460
  1104. package/dist/approvals-CqMfNxak.mjs.map +0 -1
  1105. package/dist/artifact-fetch-DZMOGZ3-.mjs +0 -818
  1106. package/dist/artifact-fetch-DZMOGZ3-.mjs.map +0 -1
  1107. package/dist/astro/routes/api/relations/_id_/translations.d.mts +0 -8
  1108. package/dist/astro/routes/api/relations/_id_/translations.d.mts.map +0 -1
  1109. package/dist/astro/routes/api/relations/_id_/translations.mjs +0 -47
  1110. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +0 -1
  1111. package/dist/audit-RfCugiSB.mjs +0 -127
  1112. package/dist/audit-RfCugiSB.mjs.map +0 -1
  1113. package/dist/authoritative-records-CoJvBXAD.mjs +0 -5172
  1114. package/dist/authoritative-records-CoJvBXAD.mjs.map +0 -1
  1115. package/dist/authorize-seCifOMJ.mjs +0 -49
  1116. package/dist/authorize-seCifOMJ.mjs.map +0 -1
  1117. package/dist/backup-BQRj3afm.mjs +0 -246
  1118. package/dist/backup-BQRj3afm.mjs.map +0 -1
  1119. package/dist/block-type-registry-DUI_3KxT.mjs +0 -6709
  1120. package/dist/block-type-registry-DUI_3KxT.mjs.map +0 -1
  1121. package/dist/block-types-BmZmLmAD.mjs +0 -132
  1122. package/dist/block-types-BmZmLmAD.mjs.map +0 -1
  1123. package/dist/block-values-C_VIPr5t.mjs +0 -175
  1124. package/dist/block-values-C_VIPr5t.mjs.map +0 -1
  1125. package/dist/byline-DYmkXqvo.mjs +0 -909
  1126. package/dist/byline-DYmkXqvo.mjs.map +0 -1
  1127. package/dist/byline-fields-D28AT-Fh.mjs +0 -123
  1128. package/dist/byline-fields-D28AT-Fh.mjs.map +0 -1
  1129. package/dist/byline-registry-gnKscbQX.mjs +0 -406
  1130. package/dist/byline-registry-gnKscbQX.mjs.map +0 -1
  1131. package/dist/bylines-BPwJqoYH.mjs +0 -232
  1132. package/dist/bylines-BPwJqoYH.mjs.map +0 -1
  1133. package/dist/bylines-ukLaYpVZ.mjs +0 -214
  1134. package/dist/bylines-ukLaYpVZ.mjs.map +0 -1
  1135. package/dist/cache-m7UEkRFV.mjs +0 -108
  1136. package/dist/cache-m7UEkRFV.mjs.map +0 -1
  1137. package/dist/canonical-YhEQezjg.mjs +0 -174
  1138. package/dist/canonical-YhEQezjg.mjs.map +0 -1
  1139. package/dist/capture-triggers-kJyl_yyM.mjs +0 -362
  1140. package/dist/capture-triggers-kJyl_yyM.mjs.map +0 -1
  1141. package/dist/challenge-store-ppU6Uv13.mjs +0 -51
  1142. package/dist/challenge-store-ppU6Uv13.mjs.map +0 -1
  1143. package/dist/checksum-B2IINIlN.mjs +0 -162
  1144. package/dist/checksum-B2IINIlN.mjs.map +0 -1
  1145. package/dist/chrome-tags-DApCQSIk.mjs +0 -24
  1146. package/dist/chrome-tags-DApCQSIk.mjs.map +0 -1
  1147. package/dist/chunks-Dms7Uxbt.mjs +0 -25
  1148. package/dist/chunks-Dms7Uxbt.mjs.map +0 -1
  1149. package/dist/collection-deletion-BIm28mo3.mjs +0 -436
  1150. package/dist/collection-deletion-BIm28mo3.mjs.map +0 -1
  1151. package/dist/collection-deletion-processor-Br6rxs3u.mjs +0 -217
  1152. package/dist/collection-deletion-processor-Br6rxs3u.mjs.map +0 -1
  1153. package/dist/collection-slugs-cache-CjGk__zp.mjs +0 -85
  1154. package/dist/collection-slugs-cache-CjGk__zp.mjs.map +0 -1
  1155. package/dist/comment-CrBl22OF.mjs +0 -313
  1156. package/dist/comment-CrBl22OF.mjs.map +0 -1
  1157. package/dist/comment-reaction-JEQ2Fpd8.mjs +0 -85
  1158. package/dist/comment-reaction-JEQ2Fpd8.mjs.map +0 -1
  1159. package/dist/comments-2ah9du9y.mjs +0 -195
  1160. package/dist/comments-2ah9du9y.mjs.map +0 -1
  1161. package/dist/comments-fHZ8ON9O.mjs +0 -99
  1162. package/dist/comments-fHZ8ON9O.mjs.map +0 -1
  1163. package/dist/components-CXbq7CSM.mjs +0 -108
  1164. package/dist/components-CXbq7CSM.mjs.map +0 -1
  1165. package/dist/config-BjEm_3xL.d.mts +0 -6537
  1166. package/dist/config-BjEm_3xL.d.mts.map +0 -1
  1167. package/dist/config-IhybvkIQ.mjs +0 -242
  1168. package/dist/config-IhybvkIQ.mjs.map +0 -1
  1169. package/dist/config-Py43JK9r.d.mts +0 -39
  1170. package/dist/config-Py43JK9r.d.mts.map +0 -1
  1171. package/dist/content-DFaIEDj9.mjs +0 -2281
  1172. package/dist/content-DFaIEDj9.mjs.map +0 -1
  1173. package/dist/content-list-query-Dra4Dalc.d.mts +0 -26
  1174. package/dist/content-list-query-Dra4Dalc.d.mts.map +0 -1
  1175. package/dist/content-policy-DFNw91-d.mjs +0 -46
  1176. package/dist/content-policy-DFNw91-d.mjs.map +0 -1
  1177. package/dist/content-repair-Q8IUrpLL.mjs +0 -442
  1178. package/dist/content-repair-Q8IUrpLL.mjs.map +0 -1
  1179. package/dist/context-BV_7t-Ua.mjs +0 -1921
  1180. package/dist/context-BV_7t-Ua.mjs.map +0 -1
  1181. package/dist/cron-7DCJwPXq.mjs +0 -284
  1182. package/dist/cron-7DCJwPXq.mjs.map +0 -1
  1183. package/dist/dashboard-BP-iJqpd.mjs +0 -151
  1184. package/dist/dashboard-BP-iJqpd.mjs.map +0 -1
  1185. package/dist/default-DQ6vsviu.mjs +0 -81
  1186. package/dist/default-DQ6vsviu.mjs.map +0 -1
  1187. package/dist/deferred-tasks-BPxXUB4x.d.mts +0 -9
  1188. package/dist/deferred-tasks-BPxXUB4x.d.mts.map +0 -1
  1189. package/dist/dev-typegen-CZaPLl3V.mjs +0 -29
  1190. package/dist/dev-typegen-CZaPLl3V.mjs.map +0 -1
  1191. package/dist/device-flow-CRd6DXmW.mjs +0 -466
  1192. package/dist/device-flow-CRd6DXmW.mjs.map +0 -1
  1193. package/dist/digest-BarSh-pN.mjs +0 -194
  1194. package/dist/digest-BarSh-pN.mjs.map +0 -1
  1195. package/dist/direct-executor-D2lNadwo.mjs +0 -104
  1196. package/dist/direct-executor-D2lNadwo.mjs.map +0 -1
  1197. package/dist/dist-BNwANFJR.mjs +0 -810
  1198. package/dist/dist-BNwANFJR.mjs.map +0 -1
  1199. package/dist/email-console-bJn3ctqA.mjs +0 -50
  1200. package/dist/email-console-bJn3ctqA.mjs.map +0 -1
  1201. package/dist/email-locale-CN6WAMx0.mjs +0 -25
  1202. package/dist/email-locale-CN6WAMx0.mjs.map +0 -1
  1203. package/dist/emdash-runtime-CtfnZmPi.mjs +0 -4186
  1204. package/dist/emdash-runtime-CtfnZmPi.mjs.map +0 -1
  1205. package/dist/enrich-Dl3kZ-lP.mjs +0 -194
  1206. package/dist/enrich-Dl3kZ-lP.mjs.map +0 -1
  1207. package/dist/entry-lock-BJYdBfXb.mjs +0 -1097
  1208. package/dist/entry-lock-BJYdBfXb.mjs.map +0 -1
  1209. package/dist/entry-lock-Cf5OoIgN.d.mts +0 -4368
  1210. package/dist/entry-lock-Cf5OoIgN.d.mts.map +0 -1
  1211. package/dist/entry-lock-DHQOxN7R.mjs +0 -163
  1212. package/dist/entry-lock-DHQOxN7R.mjs.map +0 -1
  1213. package/dist/entry-locks-D0foLdjQ.mjs +0 -167
  1214. package/dist/entry-locks-D0foLdjQ.mjs.map +0 -1
  1215. package/dist/error-CfvOHP0M.mjs +0 -90
  1216. package/dist/error-CfvOHP0M.mjs.map +0 -1
  1217. package/dist/errors-BF0_LFhW.mjs +0 -460
  1218. package/dist/errors-BF0_LFhW.mjs.map +0 -1
  1219. package/dist/errors-DgE1zJGG.mjs +0 -120
  1220. package/dist/errors-DgE1zJGG.mjs.map +0 -1
  1221. package/dist/escape-CuaZhZvL.mjs +0 -9
  1222. package/dist/escape-CuaZhZvL.mjs.map +0 -1
  1223. package/dist/fence-CMDXJYc_.mjs +0 -162
  1224. package/dist/fence-CMDXJYc_.mjs.map +0 -1
  1225. package/dist/field-defs-cache-HIgBbqZZ.mjs +0 -77
  1226. package/dist/field-defs-cache-HIgBbqZZ.mjs.map +0 -1
  1227. package/dist/focal-point-Gr34o-4o.mjs +0 -23
  1228. package/dist/focal-point-Gr34o-4o.mjs.map +0 -1
  1229. package/dist/fts-manager-S-K0laoS.mjs +0 -443
  1230. package/dist/fts-manager-S-K0laoS.mjs.map +0 -1
  1231. package/dist/gc-DjKY0Ay1.mjs +0 -75
  1232. package/dist/gc-DjKY0Ay1.mjs.map +0 -1
  1233. package/dist/hash-SDAW6zC-.mjs +0 -37
  1234. package/dist/hash-SDAW6zC-.mjs.map +0 -1
  1235. package/dist/hook-result-B5bXDgS2.d.mts +0 -31
  1236. package/dist/hook-result-B5bXDgS2.d.mts.map +0 -1
  1237. package/dist/hreflang-CbVI4paR.mjs +0 -105
  1238. package/dist/hreflang-CbVI4paR.mjs.map +0 -1
  1239. package/dist/hreflang-D5uNnsGJ.d.mts +0 -50
  1240. package/dist/hreflang-D5uNnsGJ.d.mts.map +0 -1
  1241. package/dist/http-route-dispatch-BitqzwMy.mjs +0 -339
  1242. package/dist/http-route-dispatch-BitqzwMy.mjs.map +0 -1
  1243. package/dist/identity-Be5kzutJ.mjs +0 -35
  1244. package/dist/identity-Be5kzutJ.mjs.map +0 -1
  1245. package/dist/import-YzfKCaco.mjs +0 -2020
  1246. package/dist/import-YzfKCaco.mjs.map +0 -1
  1247. package/dist/index-D-hdtLe8.d.mts +0 -623
  1248. package/dist/index-D-hdtLe8.d.mts.map +0 -1
  1249. package/dist/install-finalization-DfM1fj5x.mjs +0 -58
  1250. package/dist/install-finalization-DfM1fj5x.mjs.map +0 -1
  1251. package/dist/keys-yxLm5l35.mjs +0 -61
  1252. package/dist/keys-yxLm5l35.mjs.map +0 -1
  1253. package/dist/kinds-CRu_T5T5.mjs +0 -961
  1254. package/dist/kinds-CRu_T5T5.mjs.map +0 -1
  1255. package/dist/lifecycle-BzeGPeQ-.mjs +0 -25
  1256. package/dist/lifecycle-BzeGPeQ-.mjs.map +0 -1
  1257. package/dist/load-XgJiE6_3.mjs +0 -28
  1258. package/dist/load-XgJiE6_3.mjs.map +0 -1
  1259. package/dist/loader-BzqeR1ZN.mjs +0 -1086
  1260. package/dist/loader-BzqeR1ZN.mjs.map +0 -1
  1261. package/dist/loops-BQSzv5Zn.mjs +0 -203
  1262. package/dist/loops-BQSzv5Zn.mjs.map +0 -1
  1263. package/dist/manifest-builder-BmSAOOEF.mjs +0 -189
  1264. package/dist/manifest-builder-BmSAOOEF.mjs.map +0 -1
  1265. package/dist/manifest-schema-CY3zng_M.mjs +0 -492
  1266. package/dist/manifest-schema-CY3zng_M.mjs.map +0 -1
  1267. package/dist/media-CPXTbb1R.mjs +0 -373
  1268. package/dist/media-CPXTbb1R.mjs.map +0 -1
  1269. package/dist/media-JXRWDhw3.mjs +0 -294
  1270. package/dist/media-JXRWDhw3.mjs.map +0 -1
  1271. package/dist/media-Pu1L6xir.mjs +0 -408
  1272. package/dist/media-Pu1L6xir.mjs.map +0 -1
  1273. package/dist/media-allowlist-BSoa9Vvm.mjs +0 -44
  1274. package/dist/media-allowlist-BSoa9Vvm.mjs.map +0 -1
  1275. package/dist/media-folders-BE0oo2eX.mjs +0 -210
  1276. package/dist/media-folders-BE0oo2eX.mjs.map +0 -1
  1277. package/dist/media-url-jArBpzIG.mjs +0 -43
  1278. package/dist/media-url-jArBpzIG.mjs.map +0 -1
  1279. package/dist/media-usage-De-zeR9E.mjs +0 -1629
  1280. package/dist/media-usage-De-zeR9E.mjs.map +0 -1
  1281. package/dist/media-usage-activation-HKp7zk7W.mjs +0 -78
  1282. package/dist/media-usage-activation-HKp7zk7W.mjs.map +0 -1
  1283. package/dist/media-usage-work-C2OZLCAd.mjs +0 -586
  1284. package/dist/media-usage-work-C2OZLCAd.mjs.map +0 -1
  1285. package/dist/media-usage-work-DwUNbgvS.mjs +0 -152
  1286. package/dist/media-usage-work-DwUNbgvS.mjs.map +0 -1
  1287. package/dist/menus-BM7BPLOb.mjs +0 -139
  1288. package/dist/menus-BM7BPLOb.mjs.map +0 -1
  1289. package/dist/menus-Cm68rsAq.mjs +0 -3608
  1290. package/dist/menus-Cm68rsAq.mjs.map +0 -1
  1291. package/dist/menus-ITeAbcIF.mjs +0 -753
  1292. package/dist/menus-ITeAbcIF.mjs.map +0 -1
  1293. package/dist/mime-ChLqYwDk.mjs +0 -36
  1294. package/dist/mime-ChLqYwDk.mjs.map +0 -1
  1295. package/dist/mode-CCuKXUci.mjs +0 -23
  1296. package/dist/mode-CCuKXUci.mjs.map +0 -1
  1297. package/dist/node-sqlite-compat-CONMsl-x.mjs +0 -46
  1298. package/dist/node-sqlite-compat-CONMsl-x.mjs.map +0 -1
  1299. package/dist/normalize-CO2P8-iE.mjs +0 -191
  1300. package/dist/normalize-CO2P8-iE.mjs.map +0 -1
  1301. package/dist/oauth-authorization-DlMIL5_h.mjs +0 -274
  1302. package/dist/oauth-authorization-DlMIL5_h.mjs.map +0 -1
  1303. package/dist/oauth-clients-Djq9r_KP.mjs +0 -266
  1304. package/dist/oauth-clients-Djq9r_KP.mjs.map +0 -1
  1305. package/dist/oauth-state-store-BbjnZXNC.mjs +0 -50
  1306. package/dist/oauth-state-store-BbjnZXNC.mjs.map +0 -1
  1307. package/dist/oauth-user-lookup-vue9a64A.mjs +0 -26
  1308. package/dist/oauth-user-lookup-vue9a64A.mjs.map +0 -1
  1309. package/dist/object-cache-CqWNY5uP.mjs +0 -582
  1310. package/dist/object-cache-CqWNY5uP.mjs.map +0 -1
  1311. package/dist/options-SQCHQCPH.d.mts +0 -81
  1312. package/dist/options-SQCHQCPH.d.mts.map +0 -1
  1313. package/dist/parse-CVgO-Qai.d.mts +0 -168
  1314. package/dist/parse-CVgO-Qai.d.mts.map +0 -1
  1315. package/dist/parse-DY6OD1j_.mjs +0 -81
  1316. package/dist/parse-DY6OD1j_.mjs.map +0 -1
  1317. package/dist/passkey-config-X_H8128a.mjs +0 -46
  1318. package/dist/passkey-config-X_H8128a.mjs.map +0 -1
  1319. package/dist/paths-JxokKIbr.mjs +0 -77
  1320. package/dist/paths-JxokKIbr.mjs.map +0 -1
  1321. package/dist/patterns-BhAvqO0S.mjs +0 -145
  1322. package/dist/patterns-BhAvqO0S.mjs.map +0 -1
  1323. package/dist/placeholder-MSEd8gty.d.mts +0 -306
  1324. package/dist/placeholder-MSEd8gty.d.mts.map +0 -1
  1325. package/dist/plan-xjcWrAah.mjs +0 -135
  1326. package/dist/plan-xjcWrAah.mjs.map +0 -1
  1327. package/dist/plugins-DUXUt8B9.mjs +0 -277
  1328. package/dist/plugins-DUXUt8B9.mjs.map +0 -1
  1329. package/dist/policy-CUvwAARc.mjs +0 -45
  1330. package/dist/policy-CUvwAARc.mjs.map +0 -1
  1331. package/dist/portable-text-5O_ZGUjB.mjs +0 -307
  1332. package/dist/portable-text-5O_ZGUjB.mjs.map +0 -1
  1333. package/dist/preview-CIUcPYr6.mjs +0 -107
  1334. package/dist/preview-CIUcPYr6.mjs.map +0 -1
  1335. package/dist/protocol-B97DZaFr.d.mts +0 -61
  1336. package/dist/protocol-B97DZaFr.d.mts.map +0 -1
  1337. package/dist/public-submission-BFBUrqst.mjs +0 -250
  1338. package/dist/public-submission-BFBUrqst.mjs.map +0 -1
  1339. package/dist/public-url-Bn7U0D7-.mjs +0 -101
  1340. package/dist/public-url-Bn7U0D7-.mjs.map +0 -1
  1341. package/dist/query-B48peoRT.mjs +0 -890
  1342. package/dist/query-B48peoRT.mjs.map +0 -1
  1343. package/dist/query-C4IH0uhR.mjs +0 -41
  1344. package/dist/query-C4IH0uhR.mjs.map +0 -1
  1345. package/dist/rate-limit-BZ6nybgc.mjs +0 -120
  1346. package/dist/rate-limit-BZ6nybgc.mjs.map +0 -1
  1347. package/dist/receipt-B4wJj5Jq.mjs +0 -43
  1348. package/dist/receipt-B4wJj5Jq.mjs.map +0 -1
  1349. package/dist/redirect-B29UjdUn.mjs +0 -411
  1350. package/dist/redirect-B29UjdUn.mjs.map +0 -1
  1351. package/dist/redirect-Cd1E7VUt.mjs +0 -17
  1352. package/dist/redirect-Cd1E7VUt.mjs.map +0 -1
  1353. package/dist/redirects-Ca2MPfEG.mjs +0 -446
  1354. package/dist/redirects-Ca2MPfEG.mjs.map +0 -1
  1355. package/dist/redirects-Cv9apQKj.mjs +0 -148
  1356. package/dist/redirects-Cv9apQKj.mjs.map +0 -1
  1357. package/dist/relation-M4NUCb0b.mjs +0 -334
  1358. package/dist/relation-M4NUCb0b.mjs.map +0 -1
  1359. package/dist/relations-CCif47Oq.mjs +0 -403
  1360. package/dist/relations-CCif47Oq.mjs.map +0 -1
  1361. package/dist/relations-CK9CYUyr.mjs +0 -310
  1362. package/dist/relations-CK9CYUyr.mjs.map +0 -1
  1363. package/dist/request-cache-DzLYKm_x.mjs +0 -104
  1364. package/dist/request-cache-DzLYKm_x.mjs.map +0 -1
  1365. package/dist/request-meta-sZXt3sRo.mjs +0 -141
  1366. package/dist/request-meta-sZXt3sRo.mjs.map +0 -1
  1367. package/dist/resolve-2WbQsCvT.mjs +0 -199
  1368. package/dist/resolve-2WbQsCvT.mjs.map +0 -1
  1369. package/dist/route-wire--1hLuACz.mjs +0 -197
  1370. package/dist/route-wire--1hLuACz.mjs.map +0 -1
  1371. package/dist/routes-vrR95WR6.mjs +0 -272
  1372. package/dist/routes-vrR95WR6.mjs.map +0 -1
  1373. package/dist/runner-1y4J9fJB.mjs +0 -5742
  1374. package/dist/runner-1y4J9fJB.mjs.map +0 -1
  1375. package/dist/runner-D5_LzKXI.d.mts +0 -68
  1376. package/dist/runner-D5_LzKXI.d.mts.map +0 -1
  1377. package/dist/schema-BABiRdsH.mjs +0 -13
  1378. package/dist/schema-BABiRdsH.mjs.map +0 -1
  1379. package/dist/schema-Du3MzCG0.mjs +0 -446
  1380. package/dist/schema-Du3MzCG0.mjs.map +0 -1
  1381. package/dist/scopes-Dbk-ElhT.mjs +0 -34
  1382. package/dist/scopes-Dbk-ElhT.mjs.map +0 -1
  1383. package/dist/search-Bt1PL1jf.mjs +0 -448
  1384. package/dist/search-Bt1PL1jf.mjs.map +0 -1
  1385. package/dist/sections-Ddptx_o9.mjs +0 -346
  1386. package/dist/sections-Ddptx_o9.mjs.map +0 -1
  1387. package/dist/seo-CZT2oLtT.mjs +0 -114
  1388. package/dist/seo-CZT2oLtT.mjs.map +0 -1
  1389. package/dist/seo-D5w3-Azy.mjs +0 -133
  1390. package/dist/seo-D5w3-Azy.mjs.map +0 -1
  1391. package/dist/service-DuykXPyW.mjs +0 -150
  1392. package/dist/service-DuykXPyW.mjs.map +0 -1
  1393. package/dist/session-user-BhaVp8w0.mjs +0 -51
  1394. package/dist/session-user-BhaVp8w0.mjs.map +0 -1
  1395. package/dist/settings-B4vDl1fK.mjs +0 -439
  1396. package/dist/settings-B4vDl1fK.mjs.map +0 -1
  1397. package/dist/settings-DYidIB26.mjs +0 -61
  1398. package/dist/settings-DYidIB26.mjs.map +0 -1
  1399. package/dist/settings-Dyj6v8C4.mjs +0 -51
  1400. package/dist/settings-Dyj6v8C4.mjs.map +0 -1
  1401. package/dist/setup-complete-bOogcHWG.mjs +0 -26
  1402. package/dist/setup-complete-bOogcHWG.mjs.map +0 -1
  1403. package/dist/setup-nonce-0EGuKM4s.mjs +0 -25
  1404. package/dist/setup-nonce-0EGuKM4s.mjs.map +0 -1
  1405. package/dist/site-settings-DOgRUoFX.mjs +0 -50
  1406. package/dist/site-settings-DOgRUoFX.mjs.map +0 -1
  1407. package/dist/site-url-BU_bbxwj.mjs +0 -16
  1408. package/dist/site-url-BU_bbxwj.mjs.map +0 -1
  1409. package/dist/snapshot-PawoX-WG.mjs +0 -414
  1410. package/dist/snapshot-PawoX-WG.mjs.map +0 -1
  1411. package/dist/ssrf-CJUnJymJ.mjs +0 -406
  1412. package/dist/ssrf-CJUnJymJ.mjs.map +0 -1
  1413. package/dist/stage-DgrBz_du.mjs +0 -662
  1414. package/dist/stage-DgrBz_du.mjs.map +0 -1
  1415. package/dist/state-DDiPySSG.mjs +0 -153
  1416. package/dist/state-DDiPySSG.mjs.map +0 -1
  1417. package/dist/status-DZKIG4a9.mjs +0 -30
  1418. package/dist/status-DZKIG4a9.mjs.map +0 -1
  1419. package/dist/storage-query-FXJH5pI8.d.mts +0 -1581
  1420. package/dist/storage-query-FXJH5pI8.d.mts.map +0 -1
  1421. package/dist/tar-_1AgTYFu.mjs +0 -449
  1422. package/dist/tar-_1AgTYFu.mjs.map +0 -1
  1423. package/dist/target-_7pn2Gbg.mjs +0 -27
  1424. package/dist/target-_7pn2Gbg.mjs.map +0 -1
  1425. package/dist/taxonomies-C1IwNe8Q.mjs +0 -697
  1426. package/dist/taxonomies-C1IwNe8Q.mjs.map +0 -1
  1427. package/dist/taxonomies-C_XMoRcX.mjs +0 -939
  1428. package/dist/taxonomies-C_XMoRcX.mjs.map +0 -1
  1429. package/dist/taxonomy-C3Fu1YeH.mjs +0 -525
  1430. package/dist/taxonomy-C3Fu1YeH.mjs.map +0 -1
  1431. package/dist/tokens-u78jETkX.mjs +0 -171
  1432. package/dist/tokens-u78jETkX.mjs.map +0 -1
  1433. package/dist/transaction-BcJO4Tmc.mjs +0 -29
  1434. package/dist/transaction-BcJO4Tmc.mjs.map +0 -1
  1435. package/dist/transfer-DIGvR9Af.mjs +0 -166
  1436. package/dist/transfer-DIGvR9Af.mjs.map +0 -1
  1437. package/dist/transfer-DgeCvHnj.mjs +0 -8675
  1438. package/dist/transfer-DgeCvHnj.mjs.map +0 -1
  1439. package/dist/transfer-download-Pml7RMio.mjs +0 -33
  1440. package/dist/transfer-download-Pml7RMio.mjs.map +0 -1
  1441. package/dist/transformations-9gfpwY65.mjs +0 -196
  1442. package/dist/transformations-9gfpwY65.mjs.map +0 -1
  1443. package/dist/transport-BIfH7_hx.d.mts +0 -42
  1444. package/dist/transport-BIfH7_hx.d.mts.map +0 -1
  1445. package/dist/transport-DKWIq53q.mjs +0 -136
  1446. package/dist/transport-DKWIq53q.mjs.map +0 -1
  1447. package/dist/trusted-proxy-tKiVtyTD.mjs +0 -51
  1448. package/dist/trusted-proxy-tKiVtyTD.mjs.map +0 -1
  1449. package/dist/turnstile-DpsoyOfg.mjs +0 -53
  1450. package/dist/turnstile-DpsoyOfg.mjs.map +0 -1
  1451. package/dist/types-B4sUC2p1.d.mts +0 -198
  1452. package/dist/types-B4sUC2p1.d.mts.map +0 -1
  1453. package/dist/types-B7Lmsh1E.d.mts +0 -887
  1454. package/dist/types-B7Lmsh1E.d.mts.map +0 -1
  1455. package/dist/types-BZakh7Ym.mjs +0 -22
  1456. package/dist/types-BZakh7Ym.mjs.map +0 -1
  1457. package/dist/types-B_CppEmv.d.mts +0 -264
  1458. package/dist/types-B_CppEmv.d.mts.map +0 -1
  1459. package/dist/types-BcrBrE6-.mjs +0 -159
  1460. package/dist/types-BcrBrE6-.mjs.map +0 -1
  1461. package/dist/types-BkUg2yHx.mjs +0 -92
  1462. package/dist/types-BkUg2yHx.mjs.map +0 -1
  1463. package/dist/types-CAZgq9fO.d.mts +0 -124
  1464. package/dist/types-CAZgq9fO.d.mts.map +0 -1
  1465. package/dist/types-Cd-O03VG.d.mts +0 -363
  1466. package/dist/types-Cd-O03VG.d.mts.map +0 -1
  1467. package/dist/types-Cr-Kg-3D.d.mts +0 -1641
  1468. package/dist/types-Cr-Kg-3D.d.mts.map +0 -1
  1469. package/dist/types-D2fvWd1i.d.mts +0 -359
  1470. package/dist/types-D2fvWd1i.d.mts.map +0 -1
  1471. package/dist/types-D7HUsguf.mjs +0 -77
  1472. package/dist/types-D7HUsguf.mjs.map +0 -1
  1473. package/dist/types-DA1Te3Oy.d.mts +0 -198
  1474. package/dist/types-DA1Te3Oy.d.mts.map +0 -1
  1475. package/dist/types-DhV6Q5bP.mjs +0 -18
  1476. package/dist/types-DhV6Q5bP.mjs.map +0 -1
  1477. package/dist/types-DnnVSl6Y.d.mts +0 -85
  1478. package/dist/types-DnnVSl6Y.d.mts.map +0 -1
  1479. package/dist/types-VT4-BugW.mjs +0 -16
  1480. package/dist/types-VT4-BugW.mjs.map +0 -1
  1481. package/dist/upload-attempts-B68ZGNu9.mjs +0 -32
  1482. package/dist/upload-attempts-B68ZGNu9.mjs.map +0 -1
  1483. package/dist/url-pattern-CCeZMGOh.mjs +0 -33
  1484. package/dist/url-pattern-CCeZMGOh.mjs.map +0 -1
  1485. package/dist/user-DDSL-sGw.mjs +0 -171
  1486. package/dist/user-DDSL-sGw.mjs.map +0 -1
  1487. package/dist/utils-DdhmO9w9.mjs +0 -439
  1488. package/dist/utils-DdhmO9w9.mjs.map +0 -1
  1489. package/dist/validate-CHosPEhs.mjs +0 -453
  1490. package/dist/validate-CHosPEhs.mjs.map +0 -1
  1491. package/dist/validate-CM79QXYE.d.mts +0 -432
  1492. package/dist/validate-CM79QXYE.d.mts.map +0 -1
  1493. package/dist/validation-BFecQczG.mjs +0 -218
  1494. package/dist/validation-BFecQczG.mjs.map +0 -1
  1495. package/dist/version-BRZXVifl.mjs +0 -9
  1496. package/dist/version-BRZXVifl.mjs.map +0 -1
  1497. package/dist/version-DXsxRrob.mjs +0 -7
  1498. package/dist/version-DXsxRrob.mjs.map +0 -1
  1499. package/dist/widgets-WdV72brA.mjs +0 -126
  1500. package/dist/widgets-WdV72brA.mjs.map +0 -1
  1501. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts +0 -34
  1502. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts.map +0 -1
  1503. package/dist/wxr-taxonomies-DP6ESgMN.mjs +0 -372
  1504. package/dist/wxr-taxonomies-DP6ESgMN.mjs.map +0 -1
  1505. package/dist/zod-generator-D6uE4WiS.mjs +0 -389
  1506. package/dist/zod-generator-D6uE4WiS.mjs.map +0 -1
  1507. package/src/astro/routes/api/relations/[id]/translations.ts +0 -33
  1508. package/src/cli/commands/bundle-utils.ts +0 -408
  1509. package/src/cli/commands/bundle.ts +0 -659
  1510. package/src/cli/commands/plugin-init.ts +0 -417
  1511. package/src/cli/commands/plugin-validate.ts +0 -31
  1512. package/src/cli/commands/plugin.ts +0 -33
  1513. package/src/cli/commands/publish.ts +0 -721
  1514. /package/dist/{api-tokens-CE1ECIg0.mjs → api-tokens-BLz2MtQs.mjs} +0 -0
  1515. /package/dist/{ssrf-DpBH7aOt.mjs → ssrf-tA45vIPX.mjs} +0 -0
@@ -1,406 +0,0 @@
1
- import { t as validateIdentifier } from "./validate-DANX1-Qi.mjs";
2
- import { c as RESERVED_BYLINE_FIELD_SLUGS, t as BYLINE_FIELD_TYPES } from "./types-BcrBrE6-.mjs";
3
- import { t as withTransaction } from "./transaction-BcJO4Tmc.mjs";
4
- import { sql } from "kysely";
5
- import { ulid } from "ulidx";
6
-
7
- //#region src/schema/byline-registry.ts
8
- const RESERVED_SET = new Set(RESERVED_BYLINE_FIELD_SLUGS);
9
- const TYPE_SET = new Set(BYLINE_FIELD_TYPES);
10
- const VERSION_KEY = "byline_fields_version";
11
- /** Hard cap on the choices array for a `select`-type field. */
12
- const MAX_SELECT_OPTIONS = 200;
13
- /** Hard cap on a slug — mirrors `SchemaRegistry.validateSlug`. */
14
- const MAX_SLUG_LENGTH = 63;
15
- /** Hard cap on a label. Bigger than slugs because labels are display strings. */
16
- const MAX_LABEL_LENGTH = 200;
17
- /**
18
- * Error thrown for byline-schema validation failures. Mirrors
19
- * `SchemaError` in `registry.ts` so the admin API layer can map a small
20
- * set of codes to HTTP statuses without inspecting messages.
21
- *
22
- * Codes:
23
- * - `INVALID_SLUG` — slug fails identifier rules or length cap
24
- * - `RESERVED_SLUG` — slug collides with a fixed `_emdash_bylines` column
25
- * - `INVALID_TYPE` — type is not one of the five v1 field types
26
- * - `INVALID_LABEL` — label missing or exceeds length cap
27
- * - `INVALID_VALIDATION` — validation payload malformed (e.g. `select` with
28
- * no `options`, duplicates in `options`)
29
- * - `FIELD_EXISTS` — slug already registered
30
- * - `FIELD_NOT_FOUND` — slug not registered
31
- * - `TRANSLATABLE_LOCKED` — attempt to flip `translatable` while stored
32
- * values reference the field
33
- * - `REORDER_MISMATCH` — reorder input doesn't match the registered set
34
- */
35
- var BylineSchemaError = class extends Error {
36
- constructor(message, code, details) {
37
- super(message);
38
- this.code = code;
39
- this.details = details;
40
- this.name = "BylineSchemaError";
41
- }
42
- };
43
- /**
44
- * Translate a `BylineSchemaError` code to a shared `ErrorCode` for the
45
- * admin API. HTTP status is then derived by `mapErrorStatus` — this
46
- * function deliberately doesn't carry one, so the API/handler boundary
47
- * matches the rest of the codebase (handlers return `ApiResult<T>` with
48
- * a code, the route layer maps to status via `unwrapResult`).
49
- *
50
- * Every code on the right-hand side of `case ... return ...` is defined
51
- * in `ErrorCode` (`api/errors.ts`). `INVALID_LABEL` and
52
- * `INVALID_VALIDATION` are intentionally folded into the `default`
53
- * branch (→ `VALIDATION_ERROR`) so no ad-hoc codes leak out — the
54
- * registry's domain code names them but the HTTP surface should not.
55
- *
56
- * `RESERVED_SLUG` / `INVALID_SLUG` typically don't reach this layer for
57
- * HTTP callers — the zod schema rejects them first with a clean
58
- * `VALIDATION_ERROR`. They're still listed so non-HTTP callers (and the
59
- * test layer) get consistent mapping.
60
- *
61
- * `FIELD_NOT_FOUND` is normalised to the shared `NOT_FOUND` code so the
62
- * admin client can branch on one constant across resource types.
63
- */
64
- function mapBylineSchemaError(error) {
65
- switch (error.code) {
66
- case "FIELD_NOT_FOUND": return {
67
- code: "NOT_FOUND",
68
- message: error.message,
69
- details: error.details
70
- };
71
- case "FIELD_EXISTS":
72
- case "TRANSLATABLE_LOCKED":
73
- case "REORDER_MISMATCH":
74
- case "INVALID_SLUG":
75
- case "RESERVED_SLUG":
76
- case "INVALID_TYPE": return {
77
- code: error.code,
78
- message: error.message,
79
- details: error.details
80
- };
81
- default: return {
82
- code: "VALIDATION_ERROR",
83
- message: error.message,
84
- details: error.details
85
- };
86
- }
87
- }
88
- /**
89
- * Registry for byline custom fields (Discussion #1174).
90
- *
91
- * Owns CRUD over `_emdash_byline_fields` and the
92
- * `options.byline_fields_version` counter that drives cache
93
- * invalidation in `bylines/field-defs-cache.ts`.
94
- *
95
- * **Dirty-bit bookend.** Every mutation runs `markVersionDirty` before
96
- * the schema write and `markVersionClean` after, as standalone writes
97
- * (not inside `withTransaction`) so concurrent isolates observe the
98
- * dirty mark *before* the mutation lands. Parity carries meaning:
99
- * odd = mutation in flight or crashed mid-flight, even = stable.
100
- * The cache bypasses the global holder while odd.
101
- *
102
- * `markVersionDirty` is parity-aware (idempotent on odd) so a
103
- * crashed prior attempt doesn't invert the bit.
104
- * `markVersionClean` always advances to a new even value (+2 from
105
- * even, +1 from odd) so concurrent mutators can't collapse on the
106
- * same key and pin a stale cache snapshot. Idempotent-retry exits
107
- * (`FIELD_EXISTS` / `FIELD_NOT_FOUND` / no-op update) call
108
- * `markVersionClean` too — same code path doubles as crash recovery
109
- * and false-clean recovery.
110
- *
111
- * The residual race: a reader caching between two concurrent
112
- * `markVersionClean` calls sees a partial-set snapshot until the
113
- * second clean lands. Bounded by the inter-clean window (~ms).
114
- * Schema mutations are admin-only and rare; acceptable for now.
115
- * A CAS-on-bump or dialect-specific lock is tracked as follow-up.
116
- *
117
- * **`deleteField` cascade.** Migration 041 already declares
118
- * `ON DELETE CASCADE` on both value tables. The explicit deletes
119
- * here are defense-in-depth against FK-pragma misconfig and mirror
120
- * `BylineRepository.delete`'s app-level cascade for the bylines
121
- * domain.
122
- *
123
- * Reserved-slug rejection runs at the API layer (zod) *and* here so
124
- * non-HTTP callers (seeds, scripts) can't bypass the check.
125
- */
126
- var BylineSchemaRegistry = class {
127
- constructor(db) {
128
- this.db = db;
129
- }
130
- async listFields() {
131
- return (await this.db.selectFrom("_emdash_byline_fields").selectAll().orderBy("sort_order", "asc").orderBy("created_at", "asc").execute()).map((row) => mapFieldRow(row));
132
- }
133
- async getField(slug) {
134
- const row = await this.db.selectFrom("_emdash_byline_fields").selectAll().where("slug", "=", slug).executeTakeFirst();
135
- return row ? mapFieldRow(row) : null;
136
- }
137
- async getFieldById(id) {
138
- const row = await this.db.selectFrom("_emdash_byline_fields").selectAll().where("id", "=", id).executeTakeFirst();
139
- return row ? mapFieldRow(row) : null;
140
- }
141
- async createField(input) {
142
- this.validateSlug(input.slug);
143
- this.validateLabel(input.label);
144
- this.validateType(input.type);
145
- const validation = this.normaliseValidation(input.type, input.validation ?? null);
146
- if (await this.getField(input.slug)) {
147
- await this.markVersionClean();
148
- throw new BylineSchemaError(`Byline field "${input.slug}" already exists`, "FIELD_EXISTS", { slug: input.slug });
149
- }
150
- const id = ulid();
151
- const sortOrder = input.sortOrder ?? await this.nextSortOrder();
152
- await this.markVersionDirty();
153
- await withTransaction(this.db, async (trx) => {
154
- await trx.insertInto("_emdash_byline_fields").values({
155
- id,
156
- slug: input.slug,
157
- label: input.label,
158
- type: input.type,
159
- required: input.required ? 1 : 0,
160
- translatable: input.translatable === false ? 0 : 1,
161
- validation: validation ? JSON.stringify(validation) : null,
162
- sort_order: sortOrder
163
- }).execute();
164
- });
165
- await this.markVersionClean();
166
- const created = await this.getFieldById(id);
167
- if (!created) throw new BylineSchemaError("Failed to load created field", "FIELD_NOT_FOUND", { id });
168
- return created;
169
- }
170
- async updateField(slug, input) {
171
- const field = await this.getField(slug);
172
- if (!field) {
173
- await this.markVersionClean();
174
- throw new BylineSchemaError(`Byline field "${slug}" not found`, "FIELD_NOT_FOUND", { slug });
175
- }
176
- const updates = {};
177
- if (input.label !== void 0) {
178
- this.validateLabel(input.label);
179
- updates.label = input.label;
180
- }
181
- if (input.required !== void 0) updates.required = input.required ? 1 : 0;
182
- if (input.validation !== void 0) {
183
- const validation = this.normaliseValidation(field.type, input.validation);
184
- updates.validation = validation ? JSON.stringify(validation) : null;
185
- }
186
- if (input.translatable !== void 0 && input.translatable !== field.translatable) {
187
- const usage = await this.countFieldValues(field.id);
188
- if (usage > 0) throw new BylineSchemaError(`Cannot change "translatable" on field "${slug}" while ${usage} value row(s) exist. Delete the values (or the field) and re-create with the new setting.`, "TRANSLATABLE_LOCKED", {
189
- slug,
190
- valueCount: usage
191
- });
192
- updates.translatable = input.translatable ? 1 : 0;
193
- }
194
- if (input.sortOrder !== void 0) updates.sort_order = input.sortOrder;
195
- if (Object.keys(updates).length === 0) {
196
- await this.markVersionClean();
197
- return field;
198
- }
199
- updates.updated_at = (/* @__PURE__ */ new Date()).toISOString();
200
- await this.markVersionDirty();
201
- await withTransaction(this.db, async (trx) => {
202
- await trx.updateTable("_emdash_byline_fields").set(updates).where("id", "=", field.id).execute();
203
- });
204
- await this.markVersionClean();
205
- const updated = await this.getFieldById(field.id);
206
- if (!updated) throw new BylineSchemaError("Failed to load updated field", "FIELD_NOT_FOUND", { slug });
207
- return updated;
208
- }
209
- async deleteField(slug) {
210
- const field = await this.getField(slug);
211
- if (!field) {
212
- await this.markVersionClean();
213
- throw new BylineSchemaError(`Byline field "${slug}" not found`, "FIELD_NOT_FOUND", { slug });
214
- }
215
- await this.markVersionDirty();
216
- await withTransaction(this.db, async (trx) => {
217
- await trx.deleteFrom("_emdash_byline_field_values").where("field_id", "=", field.id).execute();
218
- await trx.deleteFrom("_emdash_byline_field_group_values").where("field_id", "=", field.id).execute();
219
- await trx.deleteFrom("_emdash_byline_fields").where("id", "=", field.id).execute();
220
- });
221
- await this.markVersionClean();
222
- }
223
- /**
224
- * Reorder fields by slug. The input must be the *exact* set of
225
- * currently registered slugs — no adds, no drops, no duplicates. This
226
- * keeps the operation invertible (any reorder is followed by a reverse
227
- * reorder) and removes a class of "did I forget a field?" bugs at the
228
- * API layer.
229
- */
230
- async reorderFields(slugs) {
231
- if (new Set(slugs).size !== slugs.length) throw new BylineSchemaError("Reorder input contains duplicate slugs", "REORDER_MISMATCH", { slugs });
232
- const registeredSlugs = (await this.listFields()).map((f) => f.slug).toSorted();
233
- const inputSlugs = slugs.toSorted();
234
- if (registeredSlugs.length !== inputSlugs.length) throw new BylineSchemaError(`Reorder input has ${inputSlugs.length} slug(s); ${registeredSlugs.length} registered`, "REORDER_MISMATCH", {
235
- registered: registeredSlugs,
236
- input: inputSlugs
237
- });
238
- for (let i = 0; i < registeredSlugs.length; i++) if (registeredSlugs[i] !== inputSlugs[i]) throw new BylineSchemaError("Reorder input does not match the registered field set", "REORDER_MISMATCH", {
239
- registered: registeredSlugs,
240
- input: inputSlugs
241
- });
242
- const now = (/* @__PURE__ */ new Date()).toISOString();
243
- await this.markVersionDirty();
244
- await withTransaction(this.db, async (trx) => {
245
- for (let i = 0; i < slugs.length; i++) {
246
- const slug = slugs[i];
247
- if (slug === void 0) continue;
248
- await trx.updateTable("_emdash_byline_fields").set({
249
- sort_order: i,
250
- updated_at: now
251
- }).where("slug", "=", slug).execute();
252
- }
253
- });
254
- await this.markVersionClean();
255
- }
256
- /**
257
- * Per-table usage counts for a field, plus the sum. Backs the
258
- * destructive-delete confirm dialog in the admin UI (Phase 5).
259
- *
260
- * Both counts are surfaced separately for diagnostic value: a
261
- * non-zero count on the table that doesn't match the field's current
262
- * `translatable` flag indicates historical drift (e.g. a flip from
263
- * an older code path). Today the registry rejects such flips with
264
- * `TRANSLATABLE_LOCKED`, so any drift originates pre-Phase-2.
265
- *
266
- * Throws `FIELD_NOT_FOUND` when the slug doesn't resolve — callers
267
- * shouldn't get back zero counts for a missing field.
268
- */
269
- async getFieldUsage(slug) {
270
- const field = await this.getField(slug);
271
- if (!field) throw new BylineSchemaError(`Byline field "${slug}" not found`, "FIELD_NOT_FOUND", { slug });
272
- const tr = await this.db.selectFrom("_emdash_byline_field_values").select(({ fn }) => [fn.count("field_id").as("count")]).where("field_id", "=", field.id).executeTakeFirst();
273
- const grp = await this.db.selectFrom("_emdash_byline_field_group_values").select(({ fn }) => [fn.count("field_id").as("count")]).where("field_id", "=", field.id).executeTakeFirst();
274
- const translatableValueCount = Number(tr?.count ?? 0);
275
- const groupValueCount = Number(grp?.count ?? 0);
276
- return {
277
- translatableValueCount,
278
- groupValueCount,
279
- totalAffectedRows: translatableValueCount + groupValueCount
280
- };
281
- }
282
- /**
283
- * Read the persisted version counter. Used by the field-defs cache
284
- * (Phase 3) to detect invalidation. Returns `0` when the row is
285
- * missing — covers the "tests that didn't run migration 041" case
286
- * without throwing.
287
- */
288
- async getVersion() {
289
- const row = await this.db.selectFrom("options").select("value").where("name", "=", VERSION_KEY).executeTakeFirst();
290
- if (!row) return 0;
291
- const parsed = Number.parseInt(row.value, 10);
292
- return Number.isFinite(parsed) ? parsed : 0;
293
- }
294
- /**
295
- * Force the version counter to an odd integer ("dirty"). Idempotent
296
- * on odd so a crashed prior attempt can't invert parity. Upsert (not
297
- * UPDATE) so a missing row still flips parity — `getVersion` returns
298
- * 0 on missing, which is even, so a bare UPDATE would leave the
299
- * cache pinned on a stale snapshot. See the class JSDoc.
300
- *
301
- * `options.value` qualified: PG's `ON CONFLICT DO UPDATE` puts both
302
- * the target and `EXCLUDED.value` in scope; bare `value` is ambiguous.
303
- */
304
- async markVersionDirty() {
305
- await sql`
306
- INSERT INTO options (name, value)
307
- VALUES (${VERSION_KEY}, '1')
308
- ON CONFLICT(name) DO UPDATE SET value = CASE
309
- WHEN CAST(options.value AS INTEGER) % 2 = 0
310
- THEN CAST(CAST(options.value AS INTEGER) + 1 AS TEXT)
311
- ELSE options.value
312
- END
313
- `.execute(this.db);
314
- }
315
- /**
316
- * Force the version counter to a **new** even integer (+2 from even,
317
- * +1 from odd). Always-advance — never a no-op — so two concurrent
318
- * mutators can't collapse on the same even key and pin a stale cache
319
- * snapshot. See the class JSDoc for the concurrent-collapse rationale.
320
- *
321
- * `options.value` qualified — see `markVersionDirty`.
322
- */
323
- async markVersionClean() {
324
- await sql`
325
- INSERT INTO options (name, value)
326
- VALUES (${VERSION_KEY}, '2')
327
- ON CONFLICT(name) DO UPDATE SET value = CASE
328
- WHEN CAST(options.value AS INTEGER) % 2 = 0
329
- THEN CAST(CAST(options.value AS INTEGER) + 2 AS TEXT)
330
- ELSE CAST(CAST(options.value AS INTEGER) + 1 AS TEXT)
331
- END
332
- `.execute(this.db);
333
- }
334
- async nextSortOrder() {
335
- const max = (await this.db.selectFrom("_emdash_byline_fields").select(({ fn }) => [fn.max("sort_order").as("max")]).executeTakeFirst())?.max ?? null;
336
- return max === null ? 0 : max + 1;
337
- }
338
- async countFieldValues(fieldId) {
339
- const tr = await this.db.selectFrom("_emdash_byline_field_values").select(({ fn }) => [fn.count("field_id").as("count")]).where("field_id", "=", fieldId).executeTakeFirst();
340
- const grp = await this.db.selectFrom("_emdash_byline_field_group_values").select(({ fn }) => [fn.count("field_id").as("count")]).where("field_id", "=", fieldId).executeTakeFirst();
341
- return Number(tr?.count ?? 0) + Number(grp?.count ?? 0);
342
- }
343
- validateSlug(slug) {
344
- if (!slug || typeof slug !== "string") throw new BylineSchemaError("Byline field slug is required", "INVALID_SLUG", { slug });
345
- if (slug.length > MAX_SLUG_LENGTH) throw new BylineSchemaError(`Byline field slug must be ${MAX_SLUG_LENGTH} characters or less`, "INVALID_SLUG", { slug });
346
- try {
347
- validateIdentifier(slug, "byline field slug");
348
- } catch (error) {
349
- throw new BylineSchemaError(error instanceof Error ? error.message : "Invalid byline field slug", "INVALID_SLUG", { slug });
350
- }
351
- if (RESERVED_SET.has(slug)) throw new BylineSchemaError(`Byline field slug "${slug}" is reserved`, "RESERVED_SLUG", { slug });
352
- }
353
- validateLabel(label) {
354
- if (!label || typeof label !== "string") throw new BylineSchemaError("Byline field label is required", "INVALID_LABEL", { label });
355
- if (label.length > MAX_LABEL_LENGTH) throw new BylineSchemaError(`Byline field label must be ${MAX_LABEL_LENGTH} characters or less`, "INVALID_LABEL", { length: label.length });
356
- }
357
- validateType(type) {
358
- if (!TYPE_SET.has(type)) throw new BylineSchemaError(`Byline field type "${type}" is not supported. Valid types: ${[...TYPE_SET].join(", ")}`, "INVALID_TYPE", { type });
359
- }
360
- /**
361
- * Normalise + validate a validation payload for a given field type.
362
- *
363
- * - `select`: `options` is required, must be a non-empty array of unique
364
- * non-empty strings, capped at `MAX_SELECT_OPTIONS`.
365
- * - any other type: `options` is silently dropped if present (a future
366
- * field type might use it, but v1 doesn't).
367
- *
368
- * Returns `null` when the resulting validation object is empty, so the
369
- * storage column stays NULL rather than carrying `'{}'`.
370
- */
371
- normaliseValidation(type, validation) {
372
- if (type === "select") {
373
- const options = validation?.options;
374
- if (!Array.isArray(options) || options.length === 0) throw new BylineSchemaError(`Byline field of type "select" requires non-empty "validation.options"`, "INVALID_VALIDATION", { type });
375
- if (options.length > MAX_SELECT_OPTIONS) throw new BylineSchemaError(`Byline field "select" cannot have more than ${MAX_SELECT_OPTIONS} options`, "INVALID_VALIDATION", { count: options.length });
376
- const seen = /* @__PURE__ */ new Set();
377
- for (const option of options) {
378
- if (typeof option !== "string" || option.length === 0) throw new BylineSchemaError(`Byline field "select" options must be non-empty strings`, "INVALID_VALIDATION", { option });
379
- if (seen.has(option)) throw new BylineSchemaError(`Byline field "select" options must be unique`, "INVALID_VALIDATION", { option });
380
- seen.add(option);
381
- }
382
- return { options };
383
- }
384
- if (validation == null) return null;
385
- const { options: _drop, ...rest } = validation;
386
- return Object.keys(rest).length === 0 ? null : rest;
387
- }
388
- };
389
- function mapFieldRow(row) {
390
- return {
391
- id: row.id,
392
- slug: row.slug,
393
- label: row.label,
394
- type: row.type,
395
- required: row.required === 1,
396
- translatable: row.translatable === 1,
397
- validation: row.validation ? JSON.parse(row.validation) : null,
398
- sortOrder: row.sort_order,
399
- createdAt: row.created_at,
400
- updatedAt: row.updated_at
401
- };
402
- }
403
-
404
- //#endregion
405
- export { mapBylineSchemaError as i, BylineSchemaRegistry as n, MAX_SELECT_OPTIONS as r, BylineSchemaError as t };
406
- //# sourceMappingURL=byline-registry-gnKscbQX.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"byline-registry-gnKscbQX.mjs","names":[],"sources":["../src/schema/byline-registry.ts"],"sourcesContent":["import type { Kysely } from \"kysely\";\nimport { sql } from \"kysely\";\nimport { ulid } from \"ulidx\";\n\nimport { withTransaction } from \"../database/transaction.js\";\nimport type { BylineFieldTable, Database } from \"../database/types.js\";\nimport { validateIdentifier } from \"../database/validate.js\";\nimport {\n\tBYLINE_FIELD_TYPES,\n\tRESERVED_BYLINE_FIELD_SLUGS,\n\ttype BylineFieldDefinition,\n\ttype BylineFieldType,\n\ttype BylineFieldValidation,\n\ttype CreateBylineFieldInput,\n\ttype UpdateBylineFieldInput,\n} from \"./types.js\";\n\nconst RESERVED_SET: ReadonlySet<string> = new Set(RESERVED_BYLINE_FIELD_SLUGS);\nconst TYPE_SET: ReadonlySet<string> = new Set(BYLINE_FIELD_TYPES);\n\nconst VERSION_KEY = \"byline_fields_version\";\n\n/** Hard cap on the choices array for a `select`-type field. */\nexport const MAX_SELECT_OPTIONS = 200;\n/** Hard cap on a slug — mirrors `SchemaRegistry.validateSlug`. */\nconst MAX_SLUG_LENGTH = 63;\n/** Hard cap on a label. Bigger than slugs because labels are display strings. */\nconst MAX_LABEL_LENGTH = 200;\n\n/**\n * Error thrown for byline-schema validation failures. Mirrors\n * `SchemaError` in `registry.ts` so the admin API layer can map a small\n * set of codes to HTTP statuses without inspecting messages.\n *\n * Codes:\n * - `INVALID_SLUG` — slug fails identifier rules or length cap\n * - `RESERVED_SLUG` — slug collides with a fixed `_emdash_bylines` column\n * - `INVALID_TYPE` — type is not one of the five v1 field types\n * - `INVALID_LABEL` — label missing or exceeds length cap\n * - `INVALID_VALIDATION` — validation payload malformed (e.g. `select` with\n * no `options`, duplicates in `options`)\n * - `FIELD_EXISTS` — slug already registered\n * - `FIELD_NOT_FOUND` — slug not registered\n * - `TRANSLATABLE_LOCKED` — attempt to flip `translatable` while stored\n * values reference the field\n * - `REORDER_MISMATCH` — reorder input doesn't match the registered set\n */\nexport class BylineSchemaError extends Error {\n\tconstructor(\n\t\tmessage: string,\n\t\tpublic code: string,\n\t\tpublic details?: Record<string, unknown>,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"BylineSchemaError\";\n\t}\n}\n\n/**\n * Translate a `BylineSchemaError` code to a shared `ErrorCode` for the\n * admin API. HTTP status is then derived by `mapErrorStatus` — this\n * function deliberately doesn't carry one, so the API/handler boundary\n * matches the rest of the codebase (handlers return `ApiResult<T>` with\n * a code, the route layer maps to status via `unwrapResult`).\n *\n * Every code on the right-hand side of `case ... return ...` is defined\n * in `ErrorCode` (`api/errors.ts`). `INVALID_LABEL` and\n * `INVALID_VALIDATION` are intentionally folded into the `default`\n * branch (→ `VALIDATION_ERROR`) so no ad-hoc codes leak out — the\n * registry's domain code names them but the HTTP surface should not.\n *\n * `RESERVED_SLUG` / `INVALID_SLUG` typically don't reach this layer for\n * HTTP callers — the zod schema rejects them first with a clean\n * `VALIDATION_ERROR`. They're still listed so non-HTTP callers (and the\n * test layer) get consistent mapping.\n *\n * `FIELD_NOT_FOUND` is normalised to the shared `NOT_FOUND` code so the\n * admin client can branch on one constant across resource types.\n */\nexport function mapBylineSchemaError(error: BylineSchemaError): {\n\tcode: string;\n\tmessage: string;\n\tdetails?: Record<string, unknown>;\n} {\n\tswitch (error.code) {\n\t\tcase \"FIELD_NOT_FOUND\":\n\t\t\treturn { code: \"NOT_FOUND\", message: error.message, details: error.details };\n\t\tcase \"FIELD_EXISTS\":\n\t\tcase \"TRANSLATABLE_LOCKED\":\n\t\tcase \"REORDER_MISMATCH\":\n\t\tcase \"INVALID_SLUG\":\n\t\tcase \"RESERVED_SLUG\":\n\t\tcase \"INVALID_TYPE\":\n\t\t\treturn { code: error.code, message: error.message, details: error.details };\n\t\tdefault:\n\t\t\t// Catches INVALID_LABEL, INVALID_VALIDATION, and any future\n\t\t\t// registry codes we forget to wire up explicitly.\n\t\t\treturn { code: \"VALIDATION_ERROR\", message: error.message, details: error.details };\n\t}\n}\n\n/**\n * Registry for byline custom fields (Discussion #1174).\n *\n * Owns CRUD over `_emdash_byline_fields` and the\n * `options.byline_fields_version` counter that drives cache\n * invalidation in `bylines/field-defs-cache.ts`.\n *\n * **Dirty-bit bookend.** Every mutation runs `markVersionDirty` before\n * the schema write and `markVersionClean` after, as standalone writes\n * (not inside `withTransaction`) so concurrent isolates observe the\n * dirty mark *before* the mutation lands. Parity carries meaning:\n * odd = mutation in flight or crashed mid-flight, even = stable.\n * The cache bypasses the global holder while odd.\n *\n * `markVersionDirty` is parity-aware (idempotent on odd) so a\n * crashed prior attempt doesn't invert the bit.\n * `markVersionClean` always advances to a new even value (+2 from\n * even, +1 from odd) so concurrent mutators can't collapse on the\n * same key and pin a stale cache snapshot. Idempotent-retry exits\n * (`FIELD_EXISTS` / `FIELD_NOT_FOUND` / no-op update) call\n * `markVersionClean` too — same code path doubles as crash recovery\n * and false-clean recovery.\n *\n * The residual race: a reader caching between two concurrent\n * `markVersionClean` calls sees a partial-set snapshot until the\n * second clean lands. Bounded by the inter-clean window (~ms).\n * Schema mutations are admin-only and rare; acceptable for now.\n * A CAS-on-bump or dialect-specific lock is tracked as follow-up.\n *\n * **`deleteField` cascade.** Migration 041 already declares\n * `ON DELETE CASCADE` on both value tables. The explicit deletes\n * here are defense-in-depth against FK-pragma misconfig and mirror\n * `BylineRepository.delete`'s app-level cascade for the bylines\n * domain.\n *\n * Reserved-slug rejection runs at the API layer (zod) *and* here so\n * non-HTTP callers (seeds, scripts) can't bypass the check.\n */\nexport class BylineSchemaRegistry {\n\tconstructor(private db: Kysely<Database>) {}\n\n\tasync listFields(): Promise<BylineFieldDefinition[]> {\n\t\tconst rows = await this.db\n\t\t\t.selectFrom(\"_emdash_byline_fields\")\n\t\t\t.selectAll()\n\t\t\t.orderBy(\"sort_order\", \"asc\")\n\t\t\t.orderBy(\"created_at\", \"asc\")\n\t\t\t.execute();\n\t\treturn rows.map((row) => mapFieldRow(row));\n\t}\n\n\tasync getField(slug: string): Promise<BylineFieldDefinition | null> {\n\t\tconst row = await this.db\n\t\t\t.selectFrom(\"_emdash_byline_fields\")\n\t\t\t.selectAll()\n\t\t\t.where(\"slug\", \"=\", slug)\n\t\t\t.executeTakeFirst();\n\t\treturn row ? mapFieldRow(row) : null;\n\t}\n\n\tasync getFieldById(id: string): Promise<BylineFieldDefinition | null> {\n\t\tconst row = await this.db\n\t\t\t.selectFrom(\"_emdash_byline_fields\")\n\t\t\t.selectAll()\n\t\t\t.where(\"id\", \"=\", id)\n\t\t\t.executeTakeFirst();\n\t\treturn row ? mapFieldRow(row) : null;\n\t}\n\n\tasync createField(input: CreateBylineFieldInput): Promise<BylineFieldDefinition> {\n\t\tthis.validateSlug(input.slug);\n\t\tthis.validateLabel(input.label);\n\t\tthis.validateType(input.type);\n\t\tconst validation = this.normaliseValidation(input.type, input.validation ?? null);\n\n\t\tconst existing = await this.getField(input.slug);\n\t\tif (existing) {\n\t\t\t// Idempotent retry exit — see class JSDoc.\n\t\t\tawait this.markVersionClean();\n\t\t\tthrow new BylineSchemaError(`Byline field \"${input.slug}\" already exists`, \"FIELD_EXISTS\", {\n\t\t\t\tslug: input.slug,\n\t\t\t});\n\t\t}\n\n\t\tconst id = ulid();\n\t\tconst sortOrder = input.sortOrder ?? (await this.nextSortOrder());\n\n\t\tawait this.markVersionDirty();\n\t\tawait withTransaction(this.db, async (trx) => {\n\t\t\tawait trx\n\t\t\t\t.insertInto(\"_emdash_byline_fields\")\n\t\t\t\t.values({\n\t\t\t\t\tid,\n\t\t\t\t\tslug: input.slug,\n\t\t\t\t\tlabel: input.label,\n\t\t\t\t\ttype: input.type,\n\t\t\t\t\trequired: input.required ? 1 : 0,\n\t\t\t\t\ttranslatable: input.translatable === false ? 0 : 1,\n\t\t\t\t\tvalidation: validation ? JSON.stringify(validation) : null,\n\t\t\t\t\tsort_order: sortOrder,\n\t\t\t\t})\n\t\t\t\t.execute();\n\t\t});\n\t\tawait this.markVersionClean();\n\n\t\tconst created = await this.getFieldById(id);\n\t\tif (!created) {\n\t\t\t// Should be unreachable on a working DB — but a typed error\n\t\t\t// beats letting the route returning null on a successful path.\n\t\t\tthrow new BylineSchemaError(\"Failed to load created field\", \"FIELD_NOT_FOUND\", {\n\t\t\t\tid,\n\t\t\t});\n\t\t}\n\t\treturn created;\n\t}\n\n\tasync updateField(slug: string, input: UpdateBylineFieldInput): Promise<BylineFieldDefinition> {\n\t\tconst field = await this.getField(slug);\n\t\tif (!field) {\n\t\t\t// Idempotent retry exit — see class JSDoc.\n\t\t\tawait this.markVersionClean();\n\t\t\tthrow new BylineSchemaError(`Byline field \"${slug}\" not found`, \"FIELD_NOT_FOUND\", {\n\t\t\t\tslug,\n\t\t\t});\n\t\t}\n\n\t\tconst updates: Partial<{\n\t\t\tlabel: string;\n\t\t\trequired: number;\n\t\t\ttranslatable: number;\n\t\t\tvalidation: string | null;\n\t\t\tsort_order: number;\n\t\t\tupdated_at: string;\n\t\t}> = {};\n\n\t\tif (input.label !== undefined) {\n\t\t\tthis.validateLabel(input.label);\n\t\t\tupdates.label = input.label;\n\t\t}\n\n\t\tif (input.required !== undefined) {\n\t\t\tupdates.required = input.required ? 1 : 0;\n\t\t}\n\n\t\tif (input.validation !== undefined) {\n\t\t\t// Validation payload is normalised against the *current* field\n\t\t\t// type — `type` is not updatable, so it's safe to use `field.type`.\n\t\t\tconst validation = this.normaliseValidation(field.type, input.validation);\n\t\t\tupdates.validation = validation ? JSON.stringify(validation) : null;\n\t\t}\n\n\t\tif (input.translatable !== undefined && input.translatable !== field.translatable) {\n\t\t\t// Flipping `translatable` would orphan any values already stored\n\t\t\t// in the table matching the *current* flag. Reject when any\n\t\t\t// value rows reference this field — admins can delete the field\n\t\t\t// (cascading the values) and re-create it with the new flag if\n\t\t\t// they want a clean re-start. Migrating values across tables is\n\t\t\t// out of scope (Discussion #1174 doesn't authorise it).\n\t\t\tconst usage = await this.countFieldValues(field.id);\n\t\t\tif (usage > 0) {\n\t\t\t\tthrow new BylineSchemaError(\n\t\t\t\t\t`Cannot change \"translatable\" on field \"${slug}\" while ${usage} value row(s) exist. ` +\n\t\t\t\t\t\t`Delete the values (or the field) and re-create with the new setting.`,\n\t\t\t\t\t\"TRANSLATABLE_LOCKED\",\n\t\t\t\t\t{ slug, valueCount: usage },\n\t\t\t\t);\n\t\t\t}\n\t\t\tupdates.translatable = input.translatable ? 1 : 0;\n\t\t}\n\n\t\tif (input.sortOrder !== undefined) {\n\t\t\tupdates.sort_order = input.sortOrder;\n\t\t}\n\n\t\tif (Object.keys(updates).length === 0) {\n\t\t\t// No-op update — still advance the clean marker in case\n\t\t\t// we're recovering a crashed prior attempt.\n\t\t\tawait this.markVersionClean();\n\t\t\treturn field;\n\t\t}\n\n\t\tupdates.updated_at = new Date().toISOString();\n\n\t\tawait this.markVersionDirty();\n\t\tawait withTransaction(this.db, async (trx) => {\n\t\t\tawait trx\n\t\t\t\t.updateTable(\"_emdash_byline_fields\")\n\t\t\t\t.set(updates)\n\t\t\t\t.where(\"id\", \"=\", field.id)\n\t\t\t\t.execute();\n\t\t});\n\t\tawait this.markVersionClean();\n\n\t\tconst updated = await this.getFieldById(field.id);\n\t\tif (!updated) {\n\t\t\tthrow new BylineSchemaError(\"Failed to load updated field\", \"FIELD_NOT_FOUND\", {\n\t\t\t\tslug,\n\t\t\t});\n\t\t}\n\t\treturn updated;\n\t}\n\n\tasync deleteField(slug: string): Promise<void> {\n\t\tconst field = await this.getField(slug);\n\t\tif (!field) {\n\t\t\t// Idempotent retry exit — see class JSDoc.\n\t\t\tawait this.markVersionClean();\n\t\t\tthrow new BylineSchemaError(`Byline field \"${slug}\" not found`, \"FIELD_NOT_FOUND\", {\n\t\t\t\tslug,\n\t\t\t});\n\t\t}\n\n\t\t// Delete order matters on D1 (no tx): value rows first, definition\n\t\t// row last, so a crash leaves the definition recoverable on retry\n\t\t// rather than orphan values pointing at a vanished id.\n\t\tawait this.markVersionDirty();\n\t\tawait withTransaction(this.db, async (trx) => {\n\t\t\tawait trx\n\t\t\t\t.deleteFrom(\"_emdash_byline_field_values\")\n\t\t\t\t.where(\"field_id\", \"=\", field.id)\n\t\t\t\t.execute();\n\t\t\tawait trx\n\t\t\t\t.deleteFrom(\"_emdash_byline_field_group_values\")\n\t\t\t\t.where(\"field_id\", \"=\", field.id)\n\t\t\t\t.execute();\n\t\t\tawait trx.deleteFrom(\"_emdash_byline_fields\").where(\"id\", \"=\", field.id).execute();\n\t\t});\n\t\tawait this.markVersionClean();\n\t}\n\n\t/**\n\t * Reorder fields by slug. The input must be the *exact* set of\n\t * currently registered slugs — no adds, no drops, no duplicates. This\n\t * keeps the operation invertible (any reorder is followed by a reverse\n\t * reorder) and removes a class of \"did I forget a field?\" bugs at the\n\t * API layer.\n\t */\n\tasync reorderFields(slugs: string[]): Promise<void> {\n\t\tif (new Set(slugs).size !== slugs.length) {\n\t\t\tthrow new BylineSchemaError(\"Reorder input contains duplicate slugs\", \"REORDER_MISMATCH\", {\n\t\t\t\tslugs,\n\t\t\t});\n\t\t}\n\n\t\tconst registered = await this.listFields();\n\t\tconst registeredSlugs = registered.map((f) => f.slug).toSorted();\n\t\tconst inputSlugs = slugs.toSorted();\n\n\t\tif (registeredSlugs.length !== inputSlugs.length) {\n\t\t\tthrow new BylineSchemaError(\n\t\t\t\t`Reorder input has ${inputSlugs.length} slug(s); ${registeredSlugs.length} registered`,\n\t\t\t\t\"REORDER_MISMATCH\",\n\t\t\t\t{ registered: registeredSlugs, input: inputSlugs },\n\t\t\t);\n\t\t}\n\t\tfor (let i = 0; i < registeredSlugs.length; i++) {\n\t\t\tif (registeredSlugs[i] !== inputSlugs[i]) {\n\t\t\t\tthrow new BylineSchemaError(\n\t\t\t\t\t\"Reorder input does not match the registered field set\",\n\t\t\t\t\t\"REORDER_MISMATCH\",\n\t\t\t\t\t{ registered: registeredSlugs, input: inputSlugs },\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst now = new Date().toISOString();\n\t\tawait this.markVersionDirty();\n\t\tawait withTransaction(this.db, async (trx) => {\n\t\t\tfor (let i = 0; i < slugs.length; i++) {\n\t\t\t\tconst slug = slugs[i];\n\t\t\t\tif (slug === undefined) continue;\n\t\t\t\tawait trx\n\t\t\t\t\t.updateTable(\"_emdash_byline_fields\")\n\t\t\t\t\t.set({ sort_order: i, updated_at: now })\n\t\t\t\t\t.where(\"slug\", \"=\", slug)\n\t\t\t\t\t.execute();\n\t\t\t}\n\t\t});\n\t\tawait this.markVersionClean();\n\t}\n\n\t/**\n\t * Per-table usage counts for a field, plus the sum. Backs the\n\t * destructive-delete confirm dialog in the admin UI (Phase 5).\n\t *\n\t * Both counts are surfaced separately for diagnostic value: a\n\t * non-zero count on the table that doesn't match the field's current\n\t * `translatable` flag indicates historical drift (e.g. a flip from\n\t * an older code path). Today the registry rejects such flips with\n\t * `TRANSLATABLE_LOCKED`, so any drift originates pre-Phase-2.\n\t *\n\t * Throws `FIELD_NOT_FOUND` when the slug doesn't resolve — callers\n\t * shouldn't get back zero counts for a missing field.\n\t */\n\tasync getFieldUsage(slug: string): Promise<{\n\t\ttranslatableValueCount: number;\n\t\tgroupValueCount: number;\n\t\ttotalAffectedRows: number;\n\t}> {\n\t\tconst field = await this.getField(slug);\n\t\tif (!field) {\n\t\t\tthrow new BylineSchemaError(`Byline field \"${slug}\" not found`, \"FIELD_NOT_FOUND\", {\n\t\t\t\tslug,\n\t\t\t});\n\t\t}\n\t\tconst tr = await this.db\n\t\t\t.selectFrom(\"_emdash_byline_field_values\")\n\t\t\t.select(({ fn }) => [fn.count<number>(\"field_id\").as(\"count\")])\n\t\t\t.where(\"field_id\", \"=\", field.id)\n\t\t\t.executeTakeFirst();\n\t\tconst grp = await this.db\n\t\t\t.selectFrom(\"_emdash_byline_field_group_values\")\n\t\t\t.select(({ fn }) => [fn.count<number>(\"field_id\").as(\"count\")])\n\t\t\t.where(\"field_id\", \"=\", field.id)\n\t\t\t.executeTakeFirst();\n\t\tconst translatableValueCount = Number(tr?.count ?? 0);\n\t\tconst groupValueCount = Number(grp?.count ?? 0);\n\t\treturn {\n\t\t\ttranslatableValueCount,\n\t\t\tgroupValueCount,\n\t\t\ttotalAffectedRows: translatableValueCount + groupValueCount,\n\t\t};\n\t}\n\n\t/**\n\t * Read the persisted version counter. Used by the field-defs cache\n\t * (Phase 3) to detect invalidation. Returns `0` when the row is\n\t * missing — covers the \"tests that didn't run migration 041\" case\n\t * without throwing.\n\t */\n\tasync getVersion(): Promise<number> {\n\t\tconst row = await this.db\n\t\t\t.selectFrom(\"options\")\n\t\t\t.select(\"value\")\n\t\t\t.where(\"name\", \"=\", VERSION_KEY)\n\t\t\t.executeTakeFirst();\n\t\tif (!row) return 0;\n\t\tconst parsed = Number.parseInt(row.value, 10);\n\t\treturn Number.isFinite(parsed) ? parsed : 0;\n\t}\n\n\t// ============================================\n\t// Private helpers\n\t// ============================================\n\n\t/**\n\t * Force the version counter to an odd integer (\"dirty\"). Idempotent\n\t * on odd so a crashed prior attempt can't invert parity. Upsert (not\n\t * UPDATE) so a missing row still flips parity — `getVersion` returns\n\t * 0 on missing, which is even, so a bare UPDATE would leave the\n\t * cache pinned on a stale snapshot. See the class JSDoc.\n\t *\n\t * `options.value` qualified: PG's `ON CONFLICT DO UPDATE` puts both\n\t * the target and `EXCLUDED.value` in scope; bare `value` is ambiguous.\n\t */\n\tprivate async markVersionDirty(): Promise<void> {\n\t\tawait sql`\n\t\t\tINSERT INTO options (name, value)\n\t\t\tVALUES (${VERSION_KEY}, '1')\n\t\t\tON CONFLICT(name) DO UPDATE SET value = CASE\n\t\t\t\tWHEN CAST(options.value AS INTEGER) % 2 = 0\n\t\t\t\t\tTHEN CAST(CAST(options.value AS INTEGER) + 1 AS TEXT)\n\t\t\t\tELSE options.value\n\t\t\tEND\n\t\t`.execute(this.db);\n\t}\n\n\t/**\n\t * Force the version counter to a **new** even integer (+2 from even,\n\t * +1 from odd). Always-advance — never a no-op — so two concurrent\n\t * mutators can't collapse on the same even key and pin a stale cache\n\t * snapshot. See the class JSDoc for the concurrent-collapse rationale.\n\t *\n\t * `options.value` qualified — see `markVersionDirty`.\n\t */\n\tprivate async markVersionClean(): Promise<void> {\n\t\tawait sql`\n\t\t\tINSERT INTO options (name, value)\n\t\t\tVALUES (${VERSION_KEY}, '2')\n\t\t\tON CONFLICT(name) DO UPDATE SET value = CASE\n\t\t\t\tWHEN CAST(options.value AS INTEGER) % 2 = 0\n\t\t\t\t\tTHEN CAST(CAST(options.value AS INTEGER) + 2 AS TEXT)\n\t\t\t\tELSE CAST(CAST(options.value AS INTEGER) + 1 AS TEXT)\n\t\t\tEND\n\t\t`.execute(this.db);\n\t}\n\n\tprivate async nextSortOrder(): Promise<number> {\n\t\tconst row = await this.db\n\t\t\t.selectFrom(\"_emdash_byline_fields\")\n\t\t\t.select(({ fn }) => [fn.max<number | null>(\"sort_order\").as(\"max\")])\n\t\t\t.executeTakeFirst();\n\t\tconst max = row?.max ?? null;\n\t\treturn max === null ? 0 : max + 1;\n\t}\n\n\tprivate async countFieldValues(fieldId: string): Promise<number> {\n\t\t// Count both per-locale and group-shared values. A field can only\n\t\t// store in one table at a time (translatable picks), but historic\n\t\t// rows might exist in the other if a prior version of this code\n\t\t// allowed the flip — count both to be safe.\n\t\tconst tr = await this.db\n\t\t\t.selectFrom(\"_emdash_byline_field_values\")\n\t\t\t.select(({ fn }) => [fn.count<number>(\"field_id\").as(\"count\")])\n\t\t\t.where(\"field_id\", \"=\", fieldId)\n\t\t\t.executeTakeFirst();\n\t\tconst grp = await this.db\n\t\t\t.selectFrom(\"_emdash_byline_field_group_values\")\n\t\t\t.select(({ fn }) => [fn.count<number>(\"field_id\").as(\"count\")])\n\t\t\t.where(\"field_id\", \"=\", fieldId)\n\t\t\t.executeTakeFirst();\n\t\treturn Number(tr?.count ?? 0) + Number(grp?.count ?? 0);\n\t}\n\n\tprivate validateSlug(slug: string): void {\n\t\tif (!slug || typeof slug !== \"string\") {\n\t\t\tthrow new BylineSchemaError(\"Byline field slug is required\", \"INVALID_SLUG\", { slug });\n\t\t}\n\t\tif (slug.length > MAX_SLUG_LENGTH) {\n\t\t\tthrow new BylineSchemaError(\n\t\t\t\t`Byline field slug must be ${MAX_SLUG_LENGTH} characters or less`,\n\t\t\t\t\"INVALID_SLUG\",\n\t\t\t\t{ slug },\n\t\t\t);\n\t\t}\n\t\t// `validateIdentifier` enforces /^[a-z][a-z0-9_]*$/ — rejects\n\t\t// camelCase, PascalCase, hyphens, leading digits, and identifiers\n\t\t// over 128 characters. We hit the 63-char cap above first, which\n\t\t// matches the content-collection slug cap.\n\t\ttry {\n\t\t\tvalidateIdentifier(slug, \"byline field slug\");\n\t\t} catch (error) {\n\t\t\tthrow new BylineSchemaError(\n\t\t\t\terror instanceof Error ? error.message : \"Invalid byline field slug\",\n\t\t\t\t\"INVALID_SLUG\",\n\t\t\t\t{ slug },\n\t\t\t);\n\t\t}\n\t\tif (RESERVED_SET.has(slug)) {\n\t\t\tthrow new BylineSchemaError(`Byline field slug \"${slug}\" is reserved`, \"RESERVED_SLUG\", {\n\t\t\t\tslug,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate validateLabel(label: string): void {\n\t\tif (!label || typeof label !== \"string\") {\n\t\t\tthrow new BylineSchemaError(\"Byline field label is required\", \"INVALID_LABEL\", {\n\t\t\t\tlabel,\n\t\t\t});\n\t\t}\n\t\tif (label.length > MAX_LABEL_LENGTH) {\n\t\t\tthrow new BylineSchemaError(\n\t\t\t\t`Byline field label must be ${MAX_LABEL_LENGTH} characters or less`,\n\t\t\t\t\"INVALID_LABEL\",\n\t\t\t\t{ length: label.length },\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate validateType(type: BylineFieldType): void {\n\t\tif (!TYPE_SET.has(type)) {\n\t\t\tthrow new BylineSchemaError(\n\t\t\t\t`Byline field type \"${type}\" is not supported. Valid types: ${[...TYPE_SET].join(\", \")}`,\n\t\t\t\t\"INVALID_TYPE\",\n\t\t\t\t{ type },\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Normalise + validate a validation payload for a given field type.\n\t *\n\t * - `select`: `options` is required, must be a non-empty array of unique\n\t * non-empty strings, capped at `MAX_SELECT_OPTIONS`.\n\t * - any other type: `options` is silently dropped if present (a future\n\t * field type might use it, but v1 doesn't).\n\t *\n\t * Returns `null` when the resulting validation object is empty, so the\n\t * storage column stays NULL rather than carrying `'{}'`.\n\t */\n\tprivate normaliseValidation(\n\t\ttype: BylineFieldType,\n\t\tvalidation: BylineFieldValidation | null,\n\t): BylineFieldValidation | null {\n\t\tif (type === \"select\") {\n\t\t\tconst options = validation?.options;\n\t\t\tif (!Array.isArray(options) || options.length === 0) {\n\t\t\t\tthrow new BylineSchemaError(\n\t\t\t\t\t`Byline field of type \"select\" requires non-empty \"validation.options\"`,\n\t\t\t\t\t\"INVALID_VALIDATION\",\n\t\t\t\t\t{ type },\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (options.length > MAX_SELECT_OPTIONS) {\n\t\t\t\tthrow new BylineSchemaError(\n\t\t\t\t\t`Byline field \"select\" cannot have more than ${MAX_SELECT_OPTIONS} options`,\n\t\t\t\t\t\"INVALID_VALIDATION\",\n\t\t\t\t\t{ count: options.length },\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst seen = new Set<string>();\n\t\t\tfor (const option of options) {\n\t\t\t\tif (typeof option !== \"string\" || option.length === 0) {\n\t\t\t\t\tthrow new BylineSchemaError(\n\t\t\t\t\t\t`Byline field \"select\" options must be non-empty strings`,\n\t\t\t\t\t\t\"INVALID_VALIDATION\",\n\t\t\t\t\t\t{ option },\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (seen.has(option)) {\n\t\t\t\t\tthrow new BylineSchemaError(\n\t\t\t\t\t\t`Byline field \"select\" options must be unique`,\n\t\t\t\t\t\t\"INVALID_VALIDATION\",\n\t\t\t\t\t\t{ option },\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tseen.add(option);\n\t\t\t}\n\t\t\treturn { options };\n\t\t}\n\n\t\tif (validation == null) return null;\n\t\t// Non-select: drop `options` if present. Strip nothing else — future\n\t\t// field types might extend the shape and we don't want to lose\n\t\t// payload silently. Today's `BylineFieldValidation` is `{ options? }`\n\t\t// only, so this branch is a pass-through; left explicit for clarity.\n\t\tconst { options: _drop, ...rest } = validation;\n\t\treturn Object.keys(rest).length === 0 ? null : rest;\n\t}\n}\n\nfunction mapFieldRow(row: {\n\tid: string;\n\tslug: string;\n\tlabel: string;\n\ttype: string;\n\trequired: number;\n\ttranslatable: number;\n\tvalidation: string | null;\n\tsort_order: number;\n\tcreated_at: string;\n\tupdated_at: string;\n}): BylineFieldDefinition {\n\treturn {\n\t\tid: row.id,\n\t\tslug: row.slug,\n\t\tlabel: row.label,\n\t\t// `type` is stored as TEXT but `createField` rejects anything outside\n\t\t// `BYLINE_FIELD_TYPES` before inserting. The assertion narrows on\n\t\t// that write-time guarantee.\n\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- validated at write\n\t\ttype: row.type as BylineFieldType,\n\t\trequired: row.required === 1,\n\t\ttranslatable: row.translatable === 1,\n\t\t// `validation` is JSON-encoded `BylineFieldValidation | null`, written\n\t\t// only through `normaliseValidation`. The cast matches the\n\t\t// `JSON.parse(...) as T` pattern in `OptionsRepository`.\n\t\t// eslint-disable-next-line typescript/no-unsafe-type-assertion -- validated at write\n\t\tvalidation: row.validation ? (JSON.parse(row.validation) as BylineFieldValidation) : null,\n\t\tsortOrder: row.sort_order,\n\t\tcreatedAt: row.created_at,\n\t\tupdatedAt: row.updated_at,\n\t};\n}\n\n// Re-export the table type for callers that want to spell it explicitly.\n// Most callers should rely on the Database interface; this is convenience\n// for tests that hand-roll Kysely queries.\nexport type { BylineFieldTable };\n"],"mappings":"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"}