dineway 0.2.40 → 0.2.41

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 (460) hide show
  1. package/dist/{activity-LXZdjKwI.mjs → activity-BuhkMdv8.mjs} +2 -2
  2. package/dist/{activity-events-DoqeOM8x.mjs → activity-events-DkHsy7Y0.mjs} +1 -1
  3. package/dist/{allowed-origins-B4zstd2d.mjs → allowed-origins-Clitkhiv.mjs} +1 -1
  4. package/dist/api/route-utils.d.mts +15 -12
  5. package/dist/api/route-utils.mjs +27 -20
  6. package/dist/api/schemas/index.d.mts +1 -1
  7. package/dist/api/schemas/index.mjs +10 -5
  8. package/dist/{api-CQishNjZ.mjs → api-CMbsIQ46.mjs} +41 -13
  9. package/dist/{api-tokens-CNHnKO57.mjs → api-tokens-ciHNTdN2.mjs} +1 -1
  10. package/dist/{apply-D4rZHDyg.mjs → apply-B5qoX19G.mjs} +62 -18
  11. package/dist/astro/index.d.mts +16 -13
  12. package/dist/astro/index.mjs +31 -5
  13. package/dist/astro/middleware/auth.d.mts +14 -11
  14. package/dist/astro/middleware/auth.mjs +8 -8
  15. package/dist/astro/middleware/redirect.mjs +10 -6
  16. package/dist/astro/middleware/request-context.mjs +5 -5
  17. package/dist/astro/middleware/seed.d.mts +1 -1
  18. package/dist/astro/middleware/seed.mjs +2 -2
  19. package/dist/astro/middleware/setup.mjs +1 -1
  20. package/dist/astro/middleware.d.mts +2 -2
  21. package/dist/astro/middleware.mjs +266 -176
  22. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +12 -7
  23. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +12 -7
  24. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +4 -4
  25. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
  26. package/dist/astro/routes/api/admin/briefing.mjs +41 -22
  27. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +4 -4
  28. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +14 -10
  29. package/dist/astro/routes/api/admin/byline-fields/index.mjs +14 -10
  30. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +14 -10
  31. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +25 -19
  32. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +25 -19
  33. package/dist/astro/routes/api/admin/bylines/index.mjs +25 -19
  34. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +20 -16
  35. package/dist/astro/routes/api/admin/comments/_id_.mjs +10 -7
  36. package/dist/astro/routes/api/admin/comments/bulk.mjs +18 -13
  37. package/dist/astro/routes/api/admin/comments/counts.mjs +10 -7
  38. package/dist/astro/routes/api/admin/comments/index.mjs +18 -13
  39. package/dist/astro/routes/api/admin/context/_id_/history.mjs +51 -39
  40. package/dist/astro/routes/api/admin/context/_id_/index.mjs +51 -39
  41. package/dist/astro/routes/api/admin/context/_id_/review.mjs +57 -44
  42. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +57 -44
  43. package/dist/astro/routes/api/admin/context/diff.mjs +56 -43
  44. package/dist/astro/routes/api/admin/context/index.mjs +57 -44
  45. package/dist/astro/routes/api/admin/context/stale.mjs +56 -43
  46. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +51 -39
  47. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +56 -43
  48. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +56 -43
  49. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +52 -40
  50. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +3 -3
  51. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +7 -7
  52. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +7 -7
  53. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +78 -68
  54. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +78 -68
  55. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +71 -60
  56. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +78 -67
  57. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +78 -67
  58. package/dist/astro/routes/api/admin/plugins/index.mjs +71 -60
  59. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
  60. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -60
  61. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +78 -67
  62. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -60
  63. package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -60
  64. package/dist/astro/routes/api/admin/review-requests/_id_/image.mjs +38 -23
  65. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +46 -36
  66. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +63 -52
  67. package/dist/astro/routes/api/admin/review-requests/_id_/revoke.mjs +9 -9
  68. package/dist/astro/routes/api/admin/review-requests/index.mjs +61 -50
  69. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +71 -60
  70. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
  71. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -60
  72. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +1 -1
  73. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +1 -1
  74. package/dist/astro/routes/api/admin/users/_id_/index.mjs +11 -7
  75. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +3 -3
  76. package/dist/astro/routes/api/admin/users/index.mjs +12 -7
  77. package/dist/astro/routes/api/auth/dev-bypass.mjs +4 -4
  78. package/dist/astro/routes/api/auth/invite/accept.mjs +1 -1
  79. package/dist/astro/routes/api/auth/invite/complete.mjs +17 -12
  80. package/dist/astro/routes/api/auth/invite/index.mjs +14 -9
  81. package/dist/astro/routes/api/auth/invite/register-options.mjs +16 -11
  82. package/dist/astro/routes/api/auth/logout.mjs +2 -2
  83. package/dist/astro/routes/api/auth/magic-link/send.mjs +17 -12
  84. package/dist/astro/routes/api/auth/magic-link/verify.mjs +2 -2
  85. package/dist/astro/routes/api/auth/me.mjs +14 -11
  86. package/dist/astro/routes/api/auth/mode.mjs +1 -1
  87. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
  88. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +3 -3
  89. package/dist/astro/routes/api/auth/passkey/_id_.mjs +12 -7
  90. package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
  91. package/dist/astro/routes/api/auth/passkey/options.mjs +19 -14
  92. package/dist/astro/routes/api/auth/passkey/register/options.mjs +16 -11
  93. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +17 -12
  94. package/dist/astro/routes/api/auth/passkey/verify.mjs +17 -12
  95. package/dist/astro/routes/api/auth/setup-token/index.mjs +6 -6
  96. package/dist/astro/routes/api/auth/setup-token/verify.mjs +2 -2
  97. package/dist/astro/routes/api/auth/signup/complete.mjs +17 -12
  98. package/dist/astro/routes/api/auth/signup/request.mjs +17 -12
  99. package/dist/astro/routes/api/auth/signup/verify.mjs +1 -1
  100. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.d.mts +14 -11
  101. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +23 -19
  102. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +23 -18
  103. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
  104. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +8 -8
  105. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +8 -8
  106. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +8 -8
  107. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +25 -20
  108. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +41 -31
  109. package/dist/astro/routes/api/content/_collection_/_id_/release-readiness.mjs +14 -9
  110. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +8 -8
  111. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
  112. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +41 -31
  113. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +30 -20
  114. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
  115. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +8 -8
  116. package/dist/astro/routes/api/content/_collection_/_id_.mjs +25 -14
  117. package/dist/astro/routes/api/content/_collection_/authors.mjs +2 -2
  118. package/dist/astro/routes/api/content/_collection_/index.mjs +25 -14
  119. package/dist/astro/routes/api/content/_collection_/trash.mjs +13 -8
  120. package/dist/astro/routes/api/dashboard.mjs +21 -13
  121. package/dist/astro/routes/api/dev/emails.mjs +2 -2
  122. package/dist/astro/routes/api/health.mjs +1 -1
  123. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  124. package/dist/astro/routes/api/import/probe.mjs +30 -23
  125. package/dist/astro/routes/api/import/wordpress/analyze.mjs +13 -10
  126. package/dist/astro/routes/api/import/wordpress/execute.d.mts +14 -11
  127. package/dist/astro/routes/api/import/wordpress/execute.mjs +58 -47
  128. package/dist/astro/routes/api/import/wordpress/media.d.mts +14 -11
  129. package/dist/astro/routes/api/import/wordpress/media.mjs +17 -14
  130. package/dist/astro/routes/api/import/wordpress/prepare.mjs +61 -48
  131. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +15 -12
  132. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +58 -45
  133. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  134. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +32 -26
  135. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
  136. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +14 -11
  137. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +63 -52
  138. package/dist/astro/routes/api/integration/artifact.mjs +9 -9
  139. package/dist/astro/routes/api/integration/dispatch.mjs +14 -14
  140. package/dist/astro/routes/api/integrations/_provider_.mjs +9 -9
  141. package/dist/astro/routes/api/integrations/index.mjs +8 -8
  142. package/dist/astro/routes/api/manifest.mjs +5 -5
  143. package/dist/astro/routes/api/mcp.mjs +141 -93
  144. package/dist/astro/routes/api/media/_id_/confirm.mjs +15 -12
  145. package/dist/astro/routes/api/media/_id_.mjs +14 -9
  146. package/dist/astro/routes/api/media/file/_...key_.mjs +1 -1
  147. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
  148. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
  149. package/dist/astro/routes/api/media/providers/index.mjs +2 -2
  150. package/dist/astro/routes/api/media/upload-url.mjs +16 -13
  151. package/dist/astro/routes/api/media.mjs +19 -16
  152. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +57 -44
  153. package/dist/astro/routes/api/menus/_name_/items.mjs +57 -44
  154. package/dist/astro/routes/api/menus/_name_/reorder.mjs +57 -44
  155. package/dist/astro/routes/api/menus/_name_/translations.mjs +57 -44
  156. package/dist/astro/routes/api/menus/_name_.mjs +57 -44
  157. package/dist/astro/routes/api/menus/index.mjs +57 -44
  158. package/dist/astro/routes/api/oauth/authorize.mjs +7 -7
  159. package/dist/astro/routes/api/oauth/device/authorize.mjs +5 -5
  160. package/dist/astro/routes/api/oauth/device/code.mjs +9 -9
  161. package/dist/astro/routes/api/oauth/device/token.mjs +8 -8
  162. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  163. package/dist/astro/routes/api/oauth/token/refresh.mjs +5 -5
  164. package/dist/astro/routes/api/oauth/token/revoke.mjs +5 -5
  165. package/dist/astro/routes/api/oauth/token.mjs +6 -6
  166. package/dist/astro/routes/api/openapi.json.mjs +10 -5
  167. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +4 -4
  168. package/dist/astro/routes/api/redirects/404s/index.mjs +15 -13
  169. package/dist/astro/routes/api/redirects/404s/summary.mjs +15 -13
  170. package/dist/astro/routes/api/redirects/_id_.mjs +57 -44
  171. package/dist/astro/routes/api/redirects/index.mjs +57 -44
  172. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
  173. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +2 -2
  174. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +73 -62
  175. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +73 -62
  176. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +73 -62
  177. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +73 -62
  178. package/dist/astro/routes/api/schema/collections/index.mjs +73 -62
  179. package/dist/astro/routes/api/schema/index.mjs +13 -10
  180. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -60
  181. package/dist/astro/routes/api/schema/orphans/index.mjs +71 -60
  182. package/dist/astro/routes/api/search/enable.mjs +20 -13
  183. package/dist/astro/routes/api/search/index.mjs +19 -12
  184. package/dist/astro/routes/api/search/rebuild.mjs +20 -13
  185. package/dist/astro/routes/api/search/stats.mjs +12 -7
  186. package/dist/astro/routes/api/search/suggest.mjs +19 -12
  187. package/dist/astro/routes/api/sections/_slug_.mjs +57 -44
  188. package/dist/astro/routes/api/sections/index.mjs +57 -44
  189. package/dist/astro/routes/api/settings/email.mjs +5 -5
  190. package/dist/astro/routes/api/settings/reviews.mjs +11 -11
  191. package/dist/astro/routes/api/settings.mjs +57 -44
  192. package/dist/astro/routes/api/setup/admin-verify.mjs +19 -14
  193. package/dist/astro/routes/api/setup/admin.mjs +17 -12
  194. package/dist/astro/routes/api/setup/dev-bypass.mjs +44 -32
  195. package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
  196. package/dist/astro/routes/api/setup/index.mjs +47 -34
  197. package/dist/astro/routes/api/setup/status.mjs +3 -3
  198. package/dist/astro/routes/api/snapshot.mjs +9 -9
  199. package/dist/astro/routes/api/system/heartbeat.mjs +2 -2
  200. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +60 -47
  201. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +60 -47
  202. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +60 -47
  203. package/dist/astro/routes/api/taxonomies/index.mjs +60 -47
  204. package/dist/astro/routes/api/themes/preview.mjs +7 -7
  205. package/dist/astro/routes/api/typegen.mjs +4 -4
  206. package/dist/astro/routes/api/well-known/auth.mjs +3 -3
  207. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +3 -3
  208. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +3 -3
  209. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +56 -43
  210. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +57 -44
  211. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +57 -44
  212. package/dist/astro/routes/api/widget-areas/_name_.mjs +53 -41
  213. package/dist/astro/routes/api/widget-areas/index.mjs +57 -44
  214. package/dist/astro/routes/api/widget-components.mjs +2 -2
  215. package/dist/astro/routes/robots.txt.mjs +14 -9
  216. package/dist/astro/routes/sitemap-_collection_.xml.mjs +20 -16
  217. package/dist/astro/routes/sitemap.xml.mjs +19 -15
  218. package/dist/astro/session-driver.d.mts +1 -1
  219. package/dist/astro/session-driver.mjs +8 -3
  220. package/dist/astro/types.d.mts +21 -14
  221. package/dist/{atomic-authority-CnBQJ14T.mjs → atomic-authority-Bf5QZboB.mjs} +2 -2
  222. package/dist/{audit-Cl495Ze3.mjs → audit-hXJBTPY0.mjs} +1 -1
  223. package/dist/auth/providers/github.d.mts +1 -1
  224. package/dist/auth/providers/google.d.mts +1 -1
  225. package/dist/{auth-control-guard-DbjgJdlo.mjs → auth-control-guard-DpUP6Fs_.mjs} +1 -1
  226. package/dist/{authorize-DDmgmnW-.mjs → authorize-DWNOqMKq.mjs} +1 -1
  227. package/dist/{briefing-DsD-Ouwc.mjs → briefing-BzvBeIJh.mjs} +1 -1
  228. package/dist/{briefing-COw-WcYz.mjs → briefing-DYiV93rg.mjs} +995 -7
  229. package/dist/{bundle-bhiszAui.mjs → bundle-DWn5eFKz.mjs} +2 -2
  230. package/dist/{byline-TYk2kad6.mjs → byline-3qjp1-oa.mjs} +65 -14
  231. package/dist/{byline-fields-D-b9CWux.d.mts → byline-fields-Bne2v0ti.d.mts} +20 -16
  232. package/dist/{byline-fields-BKj5f3Ub.mjs → byline-fields-DRMCc0V_.mjs} +1 -1
  233. package/dist/{byline-fields-DZ46DF10.mjs → byline-fields-wWu2Cb3l.mjs} +3 -3
  234. package/dist/{byline-registry-CJihchD1.mjs → byline-registry-Caj0_gbU.mjs} +1 -1
  235. package/dist/{bylines-6T9iVC9j.mjs → bylines-BSn9O1Wx.mjs} +3 -3
  236. package/dist/{bylines-CvTSCAw9.mjs → bylines-CGuJi-zu.mjs} +5 -5
  237. package/dist/{patterns-Ay-4KImK.mjs → cache-DsEbwFVE.mjs} +51 -1
  238. package/dist/{chunks-C8vSD_5L.mjs → chunks-Bb56aCtB.mjs} +1 -1
  239. package/dist/cli/index.mjs +486 -48
  240. package/dist/cli/plugin-kit.d.mts +14 -11
  241. package/dist/cli/plugin-kit.mjs +2 -2
  242. package/dist/client/external-auth-headers.d.mts +1 -1
  243. package/dist/client/index.d.mts +16 -13
  244. package/dist/client/index.mjs +2 -2
  245. package/dist/{client-factory-C1ZQCMog.mjs → client-factory-BLbm250o.mjs} +1 -1
  246. package/dist/{comment-DAQfUjqt.mjs → comment-BWDG1nQm.mjs} +2 -2
  247. package/dist/{comment-reaction-Dp3G7UZc.mjs → comment-reaction-B7pLTlQ7.mjs} +1 -1
  248. package/dist/{comments-BrvIaRAx.mjs → comments-xkten8nV.mjs} +1 -1
  249. package/dist/config-6R0bchVE.mjs +125 -0
  250. package/dist/{content-CIKsrvU9.mjs → content-BigS8BAv.mjs} +302 -45
  251. package/dist/content-Dr22fzA_.mjs +390 -0
  252. package/dist/{content-refresh-BilzqcLt.mjs → content-refresh-DJuFIqQ4.mjs} +14 -8
  253. package/dist/content-storage/index.d.mts +180 -0
  254. package/dist/content-storage/index.mjs +29 -0
  255. package/dist/content-storage/store.d.mts +3 -0
  256. package/dist/content-storage/store.mjs +5 -0
  257. package/dist/{review-payload-Bap86e75.mjs → content-write-DAZCNKWl.mjs} +838 -131
  258. package/dist/{context-DAs_MZjJ.mjs → context-0806nV9h.mjs} +292 -23
  259. package/dist/{context-DVTvucNb.mjs → context-CCsI5nTK.mjs} +2 -2
  260. package/dist/{context-route-helpers-BP-UJ4u8.mjs → context-route-helpers-TP3EqxRQ.mjs} +2 -2
  261. package/dist/{dashboard-BAjWCGCP.mjs → dashboard-CSrnhBO6.mjs} +4 -4
  262. package/dist/database/batch.d.mts +1 -1
  263. package/dist/database/batch.mjs +1 -1
  264. package/dist/database/d1/index.d.mts +14 -11
  265. package/dist/database/d1/index.mjs +4 -4
  266. package/dist/database/instrumentation.mjs +3 -2
  267. package/dist/db/index.d.mts +3 -3
  268. package/dist/db/index.mjs +1 -1
  269. package/dist/db/libsql.d.mts +1 -1
  270. package/dist/db/postgres.d.mts +1 -1
  271. package/dist/db/sqlite.d.mts +1 -1
  272. package/dist/{device-flow-Dh0rNlh1.mjs → device-flow-SoZh-HvN.mjs} +3 -3
  273. package/dist/{discovery-V0e0Gg8j.mjs → discovery-49qXmdwv.mjs} +4 -4
  274. package/dist/{enrich-B7PIJ8Iy.mjs → enrich-CAMsD1aT.mjs} +1 -1
  275. package/dist/{error-B5a45Tfb.mjs → error-sL4aemcW.mjs} +2 -0
  276. package/dist/{evidence-Vnp_fQbC.mjs → evidence-B3O9_VKm.mjs} +7 -7
  277. package/dist/{field-defs-cache-aXUeXJdC.mjs → field-defs-cache-dn5Tw79A.mjs} +4 -4
  278. package/dist/{fts-manager-BrPpYtK0.mjs → fts-manager-Zu5ITic0.mjs} +1 -1
  279. package/dist/{hitl-requests-BxMMON3s.mjs → hitl-requests-B5vOPseK.mjs} +2 -2
  280. package/dist/{hitl-route-helpers-sdnjpx2k.mjs → hitl-route-helpers-C3icmGdj.mjs} +5 -5
  281. package/dist/hook-events-BQw73jc7.d.mts +32 -0
  282. package/dist/{import-C2-v4FCs.mjs → import-CKnKQj3f.mjs} +9 -9
  283. package/dist/{index-BVGe04wF.d.mts → index-CLj17kW9.d.mts} +12 -5
  284. package/dist/index.d.mts +19 -16
  285. package/dist/index.mjs +107 -98
  286. package/dist/{integration-credentials-DMEXZU2J.mjs → integration-credentials-DpuRw1kx.mjs} +2 -2
  287. package/dist/{jsonld-wRF85RXo.d.mts → jsonld-CN91qtDw.d.mts} +2 -2
  288. package/dist/{load-DvCVppOF.mjs → load-CiRTddkJ.mjs} +1 -1
  289. package/dist/{loader-Dp6zLmQm.mjs → loader-CCwWFQSh.mjs} +16 -5
  290. package/dist/{manifest-schema-CCvogfrP.mjs → manifest-schema-DaQpgyTB.mjs} +1 -1
  291. package/dist/{mcp-reviewed-executor-B8Gbin3T.mjs → mcp-reviewed-executor-DA6Q9sDc.mjs} +6 -6
  292. package/dist/media/image-endpoint.mjs +1 -1
  293. package/dist/media/index.d.mts +1 -1
  294. package/dist/media/index.mjs +2 -2
  295. package/dist/media/local-runtime.d.mts +16 -13
  296. package/dist/media/local-runtime.mjs +3 -3
  297. package/dist/{media-C5ba8fvI.mjs → media-BjH5OD-A.mjs} +1 -1
  298. package/dist/{media-allowlist-DQvscVkS.mjs → media-allowlist-C8HJ2O61.mjs} +1 -1
  299. package/dist/{menus-CyNpBQrX.mjs → menus-CbBi7Ad7.mjs} +2 -2
  300. package/dist/{menus-w5xwT-f5.mjs → menus-D0c8CeVg.mjs} +7 -7
  301. package/dist/migration-DJuj7ZwN.mjs +526 -0
  302. package/dist/{migrations-CLlX25HO.mjs → migrations-BAjF60cl.mjs} +1 -1
  303. package/dist/{oauth-authorization-CdqJZUMf.mjs → oauth-authorization-CSSRMOKn.mjs} +4 -4
  304. package/dist/{oauth-clients-CHNb9MAZ.mjs → oauth-clients-DX5HIJJv.mjs} +2 -2
  305. package/dist/object-cache/memory.d.mts +1 -1
  306. package/dist/{object-cache-mxCW-Rpt.mjs → object-cache-DyI1SOBK.mjs} +3 -1
  307. package/dist/owned-metadata-BPmUjZqI.mjs +69 -0
  308. package/dist/page/index.d.mts +15 -12
  309. package/dist/page/index.mjs +1 -1
  310. package/dist/{parse-THHCpJLB.mjs → parse-C6kCR1OT.mjs} +1 -1
  311. package/dist/plugin-utils.d.mts +14 -11
  312. package/dist/plugins/adapt-sandbox-entry.d.mts +14 -11
  313. package/dist/plugins/adapt-sandbox-entry.mjs +1 -1
  314. package/dist/{plugins-pfraURNp.mjs → plugins-V0W65r3v.mjs} +16 -962
  315. package/dist/{policy-D2USlibj.mjs → policy-DbceGc4P.mjs} +2 -2
  316. package/dist/{preview-Bh7D7F27.mjs → preview-CWiIjMDi.mjs} +2 -2
  317. package/dist/{provider-loader-DT7vQ5FI.d.mts → provider-loader-oLKm1AU8.d.mts} +1 -1
  318. package/dist/{public-url-Ccv0Xmue.d.mts → public-url-CEC1vj02.d.mts} +2 -2
  319. package/dist/{public-url-CG5YbNqB.d.mts → public-url-CKrUov8D.d.mts} +1 -1
  320. package/dist/{publication-authorization-B_HJSnzR.mjs → publication-authorization-wMR-tEQ_.mjs} +43 -17
  321. package/dist/{query-xspvw7Ui.mjs → query-DDi367tF.mjs} +14 -14
  322. package/dist/{query-DLeahg3x.mjs → query-DLnnpEuf.mjs} +4 -4
  323. package/dist/{rate-limit-BsBr_U9g.mjs → rate-limit-DeVLLe4z.mjs} +2 -2
  324. package/dist/{redirect-BQFa1THe.mjs → redirect-CJ-FAbNK.mjs} +2 -2
  325. package/dist/{redirects-DJcsgz_X.mjs → redirects-BKi6mek4.mjs} +4 -5
  326. package/dist/{redirects-CVfxefrz.mjs → redirects-I78-ZYLV.mjs} +5 -386
  327. package/dist/{registry-Dclv9iHv.mjs → registry-zXXZezu-.mjs} +7 -7
  328. package/dist/{release-Da2UFygt.mjs → release-Cpi0-Bzq.mjs} +173 -22
  329. package/dist/request-context.d.mts +30 -0
  330. package/dist/{request-meta-CjORiJQ_.mjs → request-meta-DZYuLXx_.mjs} +1 -1
  331. package/dist/review-payload-Bhi52CbI.mjs +112 -0
  332. package/dist/{review-requests-CcSUTm_l.mjs → review-requests-C-ScxD9n.mjs} +2 -2
  333. package/dist/{review-requests-CUVn0RBl.mjs → review-requests-DZYM51yI.mjs} +2 -2
  334. package/dist/{review-route-helpers-CKBfGKCi.mjs → review-route-helpers-DXNDyx_q.mjs} +2 -2
  335. package/dist/{revision-W6FDfDqx.mjs → revision-B_HYO2AE.mjs} +42 -7
  336. package/dist/revisions-CQ7rMP5d.mjs +55 -0
  337. package/dist/{revocation-C_ZQvGRT.mjs → revocation-4we8kfBg.mjs} +2 -2
  338. package/dist/{runner-CRU7BXjr.mjs → runner-CuG8o1uW.mjs} +558 -487
  339. package/dist/{runner-SoP1rphP.d.mts → runner-DXQkyPeX.d.mts} +1 -1
  340. package/dist/{runs-BtaAiLTw.mjs → runs-BjgLfqCn.mjs} +5 -5
  341. package/dist/runtime-Bs2JMbb2.d.mts +45 -0
  342. package/dist/runtime-Ch5G-tnG.mjs +400 -0
  343. package/dist/runtime.d.mts +15 -12
  344. package/dist/runtime.mjs +9 -4
  345. package/dist/schema-BA05k0TN.mjs +8 -0
  346. package/dist/{search-BI9uKr7U.mjs → search-DMrzhfx_.mjs} +4 -98
  347. package/dist/{secrets-D_pergcD.mjs → secrets-CIYcw9T9.mjs} +4 -4
  348. package/dist/{sections-BqqYq9RW.mjs → sections-BTrSEhqB.mjs} +2 -2
  349. package/dist/seed/index.d.mts +2 -2
  350. package/dist/seed/index.mjs +38 -26
  351. package/dist/seo/index.d.mts +3 -3
  352. package/dist/seo/index.mjs +12 -9
  353. package/dist/{seo-Bs_DUxJf.mjs → seo-Cv7ud_m2.mjs} +44 -5
  354. package/dist/{seo-B-5PsaJO.mjs → seo-DkjtBh-y.mjs} +1 -1
  355. package/dist/{service-W2xuGLgw.mjs → service-BBJM08uD.mjs} +2 -2
  356. package/dist/{service-B65aJsN7.mjs → service-CkMuD5AE.mjs} +3 -3
  357. package/dist/{settings-DsBzKeUQ.mjs → settings-BUONaNnG.mjs} +7 -7
  358. package/dist/{settings-CyJ2-MKx.mjs → settings-CI-NtWEc.mjs} +2 -2
  359. package/dist/{setup-complete-t9yamqBb.mjs → setup-complete-DoVbVrHx.mjs} +1 -1
  360. package/dist/{site-activity-DU0UPDji.mjs → site-activity-hpfJkmxQ.mjs} +1 -1
  361. package/dist/{site-context-Dic2jHuw.mjs → site-context-BW3GRCJH.mjs} +15 -15
  362. package/dist/{site-url-Tw6CfBB2.mjs → site-url-CYatfe3q.mjs} +1 -1
  363. package/dist/{state-jx6Yiwsm.mjs → state-CKkqoA6i.mjs} +1 -1
  364. package/dist/storage/local.d.mts +1 -1
  365. package/dist/storage/local.mjs +1 -1
  366. package/dist/storage/s3.d.mts +1 -1
  367. package/dist/storage/s3.mjs +2 -2
  368. package/dist/{store-32e6dfD-.mjs → store-BzaAtszy.mjs} +3 -3
  369. package/dist/submission-DLgjQ_Ew.mjs +205 -0
  370. package/dist/{taxonomies-BFsUR7kc.mjs → taxonomies-C02-Vuh3.mjs} +3 -3
  371. package/dist/{taxonomies-lWGNLKgn.mjs → taxonomies-D5wO9zmB.mjs} +7 -7
  372. package/dist/{taxonomy-DN6i1upz.mjs → taxonomy-BK7JmHlo.mjs} +53 -3
  373. package/dist/terms-EskuqbKE.mjs +104 -0
  374. package/dist/text-extraction-CdqMGYQK.mjs +96 -0
  375. package/dist/{tokens-D-StaTAQ.mjs → tokens-D8HEH277.mjs} +1 -1
  376. package/dist/{trusted-proxy-hYufGFPK.mjs → trusted-proxy-Dg3U9Lrv.mjs} +1 -1
  377. package/dist/{types-RFzE_V1M.mjs → types-BI3ULB3A.mjs} +2 -2
  378. package/dist/{types-D5JfvPvx.d.mts → types-C3jUu4Bc.d.mts} +89 -33
  379. package/dist/{types-B--VyN3n.d.mts → types-Dpv_MvwZ.d.mts} +1 -1
  380. package/dist/{types-CgcOeaiQ.d.mts → types-ex-UrNlz.d.mts} +1 -1
  381. package/dist/types-qOEot0UQ.d.mts +83 -0
  382. package/dist/ui/server-runtime.d.mts +18 -15
  383. package/dist/ui/server-runtime.mjs +29 -25
  384. package/dist/{user-Btai9rl3.mjs → user-Bl2_8rhJ.mjs} +2 -2
  385. package/dist/{utils-CYxGuO_P.mjs → utils-CklSLz9F.mjs} +2 -2
  386. package/dist/{validate-C05z0m7M.mjs → validate-C-yk7mmX.mjs} +3 -3
  387. package/dist/{validate-kmN2lS8H.d.mts → validate-DUscf6VG.d.mts} +3 -3
  388. package/dist/version-BlE1LEPb.mjs +6 -0
  389. package/dist/version-store-BXv2D0de.mjs +208 -0
  390. package/dist/version-store-B_THJCc0.d.mts +98 -0
  391. package/dist/{widgets-BOrDZdQ3.mjs → widgets-9xHBhL_L.mjs} +3 -3
  392. package/dist/{wordpress-slugs-ROzITIBK.mjs → wordpress-slugs-yaeD7cxn.mjs} +1 -1
  393. package/dist/{worker-CKU70ODm.mjs → worker-CC_Rt1pB.mjs} +10 -10
  394. package/dist/write-intent-DuHVqks9.mjs +108 -0
  395. package/dist/{zod-generator-DkrWuID7.mjs → zod-generator-B5Pt8fv0.mjs} +2 -2
  396. package/package.json +16 -4
  397. package/dist/cache-B5NSHhxG.mjs +0 -52
  398. package/dist/cron-C7HCJPPl.mjs +0 -271
  399. package/dist/schema-CosVhHJt.mjs +0 -8
  400. package/dist/submission-DJmRejGR.mjs +0 -411
  401. package/dist/version-CISd4wX_.mjs +0 -6
  402. /package/dist/{actor-DxUAJgQX.mjs → actor-D0AW80ld.mjs} +0 -0
  403. /package/dist/{adapter-symbols-Bq3JsWGM.d.mts → adapter-symbols-B9mi-BUh.d.mts} +0 -0
  404. /package/dist/{adapters-C8nRpUuj.d.mts → adapters-lDnJjNDz.d.mts} +0 -0
  405. /package/dist/{api-tokens-0N3nafqZ.mjs → api-tokens-CdfsE9PL.mjs} +0 -0
  406. /package/dist/{base64-Cz-aU0X1.mjs → base64-qvSs0Gxy.mjs} +0 -0
  407. /package/dist/{challenge-store-DFGsDtCj.mjs → challenge-store-7IZ_NqWg.mjs} +0 -0
  408. /package/dist/{components-rFN8NH3N.mjs → components-JA6tFHmE.mjs} +0 -0
  409. /package/dist/{context-types-CPWAJRs5.mjs → context-types-DDIJhGLs.mjs} +0 -0
  410. /package/dist/{default-BS6VQRkB.mjs → default-C2azCFSB.mjs} +0 -0
  411. /package/dist/{email-console-GqK6hgMJ.mjs → email-console-BYQp_5Qr.mjs} +0 -0
  412. /package/dist/{escape-CE7xOWzJ.mjs → escape-4_NNa6GR.mjs} +0 -0
  413. /package/dist/{experimental-workflows-BbxpWwBy.mjs → experimental-workflows-CPNiI2EL.mjs} +0 -0
  414. /package/dist/{forgeway-account-DcTxh3Gw.mjs → forgeway-account-YzraapbX.mjs} +0 -0
  415. /package/dist/{hash-D2Rqd2J2.mjs → hash-qSYPMJ8w.mjs} +0 -0
  416. /package/dist/{media-url-D9kdpoLS.mjs → media-url-D5E1a47B.mjs} +0 -0
  417. /package/dist/{mime-BnVhH671.mjs → mime-FkfazULS.mjs} +0 -0
  418. /package/dist/{mode-BJwb_MgK.mjs → mode-C3RI5Z5t.mjs} +0 -0
  419. /package/dist/{normalize-aTwryvvi.mjs → normalize-DrmlLn40.mjs} +0 -0
  420. /package/dist/{oauth-authority-P5YMSk2z.mjs → oauth-authority-DVlLFhsZ.mjs} +0 -0
  421. /package/dist/{oauth-state-store-CMqLdo4I.mjs → oauth-state-store-nf-78RbK.mjs} +0 -0
  422. /package/dist/{options-JiLWB6Bt.mjs → options-yFkLUuTw.mjs} +0 -0
  423. /package/dist/{output-7HDrYTSQ.mjs → output-ljHaxIHX.mjs} +0 -0
  424. /package/dist/{parser-kettsjWc.mjs → parser-CTlxybRo.mjs} +0 -0
  425. /package/dist/{passkey-config-DVzQ3dv3.mjs → passkey-config-BLon3ct9.mjs} +0 -0
  426. /package/dist/{placeholder-DJLP_HY7.d.mts → placeholder-DdZV3I8x.d.mts} +0 -0
  427. /package/dist/{portable-text-tQhvPLf1.mjs → portable-text-CSbRjM-T.mjs} +0 -0
  428. /package/dist/{portable-text-BE7nszX6.d.mts → portable-text-HNmwL-7L.d.mts} +0 -0
  429. /package/dist/{process-cache-C19OA3am.mjs → process-cache-CMy5M80h.mjs} +0 -0
  430. /package/dist/{provider-loader-DERzBMUz.mjs → provider-loader-DlaT1usE.mjs} +0 -0
  431. /package/dist/{public-discovery-BGyhuD5U.mjs → public-discovery-BnqYofSK.mjs} +0 -0
  432. /package/dist/{public-url-DFXUU6Wp.mjs → public-url-BHjYWuaN.mjs} +0 -0
  433. /package/dist/{public-url-sR8SVmTt.mjs → public-url-GQygrYmg.mjs} +0 -0
  434. /package/dist/{redirect-BxacnBYL.mjs → redirect-CokmLN5o.mjs} +0 -0
  435. /package/dist/{request-cache-8_ifFzVw.mjs → request-cache-CizvDoxV.mjs} +0 -0
  436. /package/dist/{resolve-DEKC4qVa.mjs → resolve-BxFGSKYu.mjs} +0 -0
  437. /package/dist/{runtime-env-CPTzh0mZ.mjs → runtime-env-DpYGy4pT.mjs} +0 -0
  438. /package/dist/{scheduled-publish-BxdShRGs.d.mts → scheduled-publish-eCNGpvNm.d.mts} +0 -0
  439. /package/dist/{seo-contributions-LEFs1d7w.mjs → seo-contributions-ZKqrqsdT.mjs} +0 -0
  440. /package/dist/{service-kQ5ljRzX.mjs → service-DeX1PRNt.mjs} +0 -0
  441. /package/dist/{session-user-B8yYh0g5.mjs → session-user-D36BRaZY.mjs} +0 -0
  442. /package/dist/{setup-nonce-B6A5Y1ea.mjs → setup-nonce-B9IO7PbK.mjs} +0 -0
  443. /package/dist/{sidecar-client-BwPhhz-F.mjs → sidecar-client-2hx5G46s.mjs} +0 -0
  444. /package/dist/{slugify-kD31VIv2.mjs → slugify-DvoaEPtL.mjs} +0 -0
  445. /package/dist/{ssrf-C9dyjU8O.mjs → ssrf-DcD8vn3E.mjs} +0 -0
  446. /package/dist/{stable-hash-B9Tbb2f_.mjs → stable-hash-9RDJgfif.mjs} +0 -0
  447. /package/dist/{status-Bjf_uSrW.mjs → status-B2xUokyJ.mjs} +0 -0
  448. /package/dist/{transport-BrU1aDY5.mjs → transport-BHYE4pox.mjs} +0 -0
  449. /package/dist/{transport-CZbtxgKZ.d.mts → transport-CVU5rp7W.d.mts} +0 -0
  450. /package/dist/{types-DNBL-4Sn.mjs → types-B3Uq7Czg.mjs} +0 -0
  451. /package/dist/{types-DsJTXStN.d.mts → types-BJztoTbF.d.mts} +0 -0
  452. /package/dist/{types-COvyXIp7.mjs → types-BgUxCuwu.mjs} +0 -0
  453. /package/dist/{types-KFzuijKE.d.mts → types-C0heD9oI.d.mts} +0 -0
  454. /package/dist/{types-B03h5jt_.d.mts → types-DheoByey.d.mts} +0 -0
  455. /package/dist/{types-SlLXjRpg.d.mts → types-I5LHzk_M.d.mts} +0 -0
  456. /package/dist/{types-PLJ9hlhh.mjs → types-Nm0cMxEh.mjs} +0 -0
  457. /package/dist/{types-CtGSEKEJ.d.mts → types-PxxPTFSl.d.mts} +0 -0
  458. /package/dist/{url-DGG3hw_h.mjs → url-Coamqvs4.mjs} +0 -0
  459. /package/dist/{url-DUz3LbCs.mjs → url-dn4mFfCI.mjs} +0 -0
  460. /package/dist/{workers-build-BkmPhclj.mjs → workers-build-4926MPc0.mjs} +0 -0
@@ -0,0 +1,390 @@
1
+ import { t as contentTermChangesSchema } from "./terms-EskuqbKE.mjs";
2
+ import { z } from "zod";
3
+
4
+ //#region src/api/schemas/common.ts
5
+ /** Valid role level values */
6
+ const VALID_ROLE_LEVELS = new Set([
7
+ 10,
8
+ 20,
9
+ 30,
10
+ 40,
11
+ 50
12
+ ]);
13
+ /** Role level — coerces string/number to valid RoleLevel (10|20|30|40|50) */
14
+ const roleLevel = z.coerce.number().int().refine((n) => VALID_ROLE_LEVELS.has(n), { message: "Invalid role level. Must be 10, 20, 30, 40, or 50" });
15
+ /** Pagination query params — cursor-based */
16
+ const cursorPaginationQuery = z.object({
17
+ cursor: z.string().optional().meta({ description: "Opaque cursor for pagination" }),
18
+ limit: z.coerce.number().int().min(1).max(100).optional().default(50).meta({ description: "Maximum number of items to return (1-100, default 50)" })
19
+ }).meta({ id: "CursorPaginationQuery" });
20
+ /** Pagination query params — offset-based */
21
+ const offsetPaginationQuery = z.object({
22
+ limit: z.coerce.number().int().min(1).max(100).optional().default(50),
23
+ offset: z.coerce.number().int().min(0).optional().default(0)
24
+ }).meta({ id: "OffsetPaginationQuery" });
25
+ /** Slug pattern: lowercase letters, digits, underscores; starts with letter */
26
+ const slugPattern = /^[a-z][a-z0-9_]*$/;
27
+ /** Matches http(s) scheme at start of URL */
28
+ const HTTP_SCHEME_RE = /^https?:\/\//i;
29
+ /** Validates that a URL string uses http or https scheme. Rejects javascript:/data: URI XSS vectors. */
30
+ const httpUrl = z.string().url().refine((url) => HTTP_SCHEME_RE.test(url), "URL must use http or https");
31
+ /** BCP 47 locale code — language with optional script/region subtags (e.g. en, en-US, pt-BR, es-419, zh-Hant) */
32
+ const localeCode = z.string().regex(/^[a-z]{2,3}(-[a-z0-9]{2,8})*$/i, "Invalid locale code").transform((v) => v.toLowerCase());
33
+ /** Shared `?locale=xx` query shape for endpoints that filter by locale. */
34
+ const localeFilterQuery = z.object({ locale: z.string().min(1).optional() }).meta({ id: "LocaleFilterQuery" });
35
+ /** Standard API error response */
36
+ const apiErrorSchema = z.object({ error: z.object({
37
+ code: z.string().meta({
38
+ description: "Machine-readable error code",
39
+ example: "NOT_FOUND"
40
+ }),
41
+ message: z.string().meta({ description: "Human-readable error message" })
42
+ }) }).meta({ id: "ApiError" });
43
+ /** Wrap a data schema in the standard success envelope: { data: T } */
44
+ function successEnvelope(dataSchema) {
45
+ return z.object({ data: dataSchema });
46
+ }
47
+ /** Standard delete response */
48
+ const deleteResponseSchema = z.object({ deleted: z.literal(true) }).meta({ id: "DeleteResponse" });
49
+ /** Standard count response */
50
+ const countResponseSchema = z.object({ count: z.number().int().min(0) }).meta({ id: "CountResponse" });
51
+
52
+ //#endregion
53
+ //#region src/api/schemas/bylines.ts
54
+ /** Slug pattern: lowercase letters, digits, and hyphens; must start with a letter */
55
+ const bylineSlugPattern = /^[a-z][a-z0-9-]*$/;
56
+ const customFieldValue = z.union([
57
+ z.string(),
58
+ z.boolean(),
59
+ z.null()
60
+ ]);
61
+ const customFields = z.record(z.string(), customFieldValue);
62
+ const bylineSummarySchema = z.object({
63
+ id: z.string(),
64
+ slug: z.string(),
65
+ displayName: z.string(),
66
+ bio: z.string().nullable(),
67
+ avatarMediaId: z.string().nullable(),
68
+ avatarStorageKey: z.string().nullish(),
69
+ avatarAlt: z.string().nullish(),
70
+ avatarBlurhash: z.string().nullish(),
71
+ avatarDominantColor: z.string().nullish(),
72
+ websiteUrl: z.string().nullable(),
73
+ userId: z.string().nullable(),
74
+ isGuest: z.boolean(),
75
+ createdAt: z.string(),
76
+ updatedAt: z.string(),
77
+ locale: z.string(),
78
+ translationGroup: z.string().nullable(),
79
+ customFields: customFields.optional()
80
+ }).meta({ id: "BylineSummary" });
81
+ const bylineCreditSchema = z.object({
82
+ byline: bylineSummarySchema,
83
+ sortOrder: z.number().int(),
84
+ roleLabel: z.string().nullable(),
85
+ source: z.enum(["explicit", "inferred"]).optional().meta({ description: "Whether this credit was explicitly assigned or inferred from authorId" })
86
+ }).meta({ id: "BylineCredit" });
87
+ const contentBylineInputSchema = z.object({
88
+ bylineId: z.string().min(1),
89
+ roleLabel: z.string().nullish()
90
+ }).meta({ id: "ContentBylineInput" });
91
+ const bylinesListQuery = cursorPaginationQuery.extend({
92
+ search: z.string().optional(),
93
+ isGuest: z.coerce.boolean().optional(),
94
+ userId: z.string().optional(),
95
+ locale: z.string().min(1).optional()
96
+ }).meta({ id: "BylinesListQuery" });
97
+ const bylineCreateBody = z.object({
98
+ slug: z.string().min(1).regex(bylineSlugPattern, "Slug must contain only lowercase letters, digits, and hyphens"),
99
+ displayName: z.string().min(1),
100
+ bio: z.string().nullish(),
101
+ avatarMediaId: z.string().nullish(),
102
+ websiteUrl: httpUrl.nullish(),
103
+ userId: z.string().nullish(),
104
+ isGuest: z.boolean().optional(),
105
+ locale: z.string().min(1).optional(),
106
+ translationOf: z.string().optional(),
107
+ customFields: customFields.optional()
108
+ }).meta({ id: "BylineCreateBody" });
109
+ const bylineUpdateBody = z.object({
110
+ slug: z.string().min(1).regex(bylineSlugPattern, "Slug must contain only lowercase letters, digits, and hyphens").optional(),
111
+ displayName: z.string().min(1).optional(),
112
+ bio: z.string().nullish(),
113
+ avatarMediaId: z.string().nullish(),
114
+ websiteUrl: httpUrl.nullish(),
115
+ userId: z.string().nullish(),
116
+ isGuest: z.boolean().optional(),
117
+ customFields: customFields.optional()
118
+ }).meta({ id: "BylineUpdateBody" });
119
+ const bylineListResponseSchema = z.object({
120
+ items: z.array(bylineSummarySchema),
121
+ nextCursor: z.string().optional()
122
+ }).meta({ id: "BylineListResponse" });
123
+
124
+ //#endregion
125
+ //#region src/api/schemas/content.ts
126
+ /** SEO input — per-content meta fields */
127
+ const contentSeoInput = z.object({
128
+ title: z.string().max(200).nullish(),
129
+ description: z.string().max(500).nullish(),
130
+ image: z.string().nullish(),
131
+ canonical: httpUrl.nullish(),
132
+ noIndex: z.boolean().optional()
133
+ }).meta({ id: "ContentSeoInput" });
134
+ const contentDateBound = z.union([z.iso.datetime({
135
+ offset: true,
136
+ message: "must be an ISO 8601 datetime"
137
+ }), z.iso.date({ message: "must be an ISO 8601 date" })]).optional();
138
+ const contentListQuery = cursorPaginationQuery.extend({
139
+ status: z.string().optional(),
140
+ orderBy: z.string().optional(),
141
+ order: z.enum(["asc", "desc"]).optional(),
142
+ locale: localeCode.optional(),
143
+ q: z.string().trim().min(1).max(200).optional(),
144
+ authorId: z.string().min(1).max(64).optional(),
145
+ dateField: z.enum([
146
+ "createdAt",
147
+ "updatedAt",
148
+ "publishedAt"
149
+ ]).optional(),
150
+ dateFrom: contentDateBound,
151
+ dateTo: contentDateBound
152
+ }).meta({ id: "ContentListQuery" });
153
+ const contentDateOverride = z.iso.datetime({
154
+ offset: true,
155
+ message: "must be an ISO 8601 datetime"
156
+ }).nullish();
157
+ const publicationPolicyOverrideSchema = z.object({
158
+ policyId: z.string().min(1),
159
+ warningCode: z.string().min(1),
160
+ fingerprint: z.string().min(1)
161
+ });
162
+ const contentCreateBody = z.object({
163
+ operationId: z.string().min(1).max(256).optional(),
164
+ data: z.record(z.string(), z.unknown()),
165
+ terms: contentTermChangesSchema.optional(),
166
+ slug: z.string().nullish(),
167
+ status: z.enum(["draft"]).optional(),
168
+ bylines: z.array(contentBylineInputSchema).optional(),
169
+ locale: localeCode.optional(),
170
+ translationOf: z.string().optional(),
171
+ seo: contentSeoInput.optional(),
172
+ publishedAt: contentDateOverride,
173
+ createdAt: contentDateOverride
174
+ }).meta({ id: "ContentCreateBody" });
175
+ const contentUpdateBody = z.object({
176
+ operationId: z.string().min(1).max(256).optional(),
177
+ data: z.record(z.string(), z.unknown()).optional(),
178
+ terms: contentTermChangesSchema.optional(),
179
+ slug: z.string().nullish(),
180
+ status: z.enum(["draft"]).optional(),
181
+ authorId: z.string().nullish(),
182
+ bylines: z.array(contentBylineInputSchema).optional(),
183
+ _rev: z.string().optional().meta({ description: "Opaque revision token for optimistic concurrency" }),
184
+ skipRevision: z.boolean().optional(),
185
+ seo: contentSeoInput.optional(),
186
+ publishedAt: contentDateOverride
187
+ }).meta({ id: "ContentUpdateBody" });
188
+ const contentScheduleBody = z.object({
189
+ scheduledAt: z.string().min(1, "scheduledAt is required").meta({
190
+ description: "ISO 8601 datetime for scheduled publishing",
191
+ example: "2025-06-15T09:00:00Z"
192
+ }),
193
+ reviewRequestId: z.string().min(1, "reviewRequestId is required").meta({ description: "Approved editorial Review Request bound to the exact Draft Revision" }),
194
+ releaseAuthorizationId: z.string().min(1).optional().meta({ description: "Approved exact release HITL Request required for token actors" }),
195
+ policyOverrides: z.array(publicationPolicyOverrideSchema).max(20).optional()
196
+ }).meta({ id: "ContentScheduleBody" });
197
+ const contentPublishBody = z.object({
198
+ publishedAt: z.iso.datetime({
199
+ offset: true,
200
+ message: "must be an ISO 8601 datetime"
201
+ }).optional().meta({ description: "Optional ISO 8601 datetime to backdate the publish. Requires content:publish_any permission. Without this, existing published_at is preserved on re-publish." }),
202
+ reviewRequestId: z.string().min(1, "reviewRequestId is required").meta({ description: "Approved editorial Review Request bound to the exact Draft Revision" }),
203
+ releaseAuthorizationId: z.string().min(1).optional().meta({ description: "Approved exact release HITL Request required for token actors" }),
204
+ policyOverrides: z.array(publicationPolicyOverrideSchema).max(20).optional()
205
+ }).meta({ id: "ContentPublishBody" });
206
+ const contentPublicationReceiptSchema = z.object({
207
+ id: z.string(),
208
+ status: z.enum(["published", "scheduled"]),
209
+ collection: z.string(),
210
+ contentId: z.string(),
211
+ liveRevisionId: z.string().nullable(),
212
+ draftRevisionId: z.string().nullable(),
213
+ editorialReviewRequestId: z.string(),
214
+ releaseHitlRequestId: z.string().nullable(),
215
+ actionHash: z.string(),
216
+ policyContributions: z.array(z.object({
217
+ providerId: z.string(),
218
+ policyVersion: z.string(),
219
+ disposition: z.enum([
220
+ "enforced",
221
+ "not_applicable",
222
+ "overridden"
223
+ ]),
224
+ fingerprint: z.string(),
225
+ reservationId: z.string().nullable()
226
+ })),
227
+ authorizedByActorType: z.enum([
228
+ "user",
229
+ "api_token",
230
+ "system"
231
+ ]),
232
+ authorizedByActorId: z.string(),
233
+ createdAt: z.string(),
234
+ consumedAt: z.string().nullable(),
235
+ publishedAt: z.string().nullable(),
236
+ scheduledAt: z.string().nullable()
237
+ }).meta({ id: "ContentPublicationReceipt" });
238
+ const contentReleaseReadinessQuery = z.object({
239
+ operation: z.enum(["publish", "schedule"]).optional(),
240
+ reviewRequestId: z.string().optional(),
241
+ releaseAuthorizationId: z.string().optional(),
242
+ publishedAt: z.iso.datetime({ offset: true }).optional(),
243
+ scheduledAt: z.iso.datetime({ offset: true }).optional(),
244
+ locale: localeCode.optional()
245
+ }).meta({ id: "ContentReleaseReadinessQuery" });
246
+ const contentReleaseReadinessResponseSchema = z.object({
247
+ ready: z.boolean(),
248
+ canForce: z.boolean(),
249
+ generatedAt: z.string(),
250
+ nextAction: z.enum([
251
+ "publish",
252
+ "schedule",
253
+ "confirm_policy_warnings",
254
+ "fix_release_blockers"
255
+ ]),
256
+ target: z.object({
257
+ collection: z.string(),
258
+ entryId: z.string(),
259
+ scope: z.string(),
260
+ operation: z.enum(["publish", "schedule"]),
261
+ liveRevisionId: z.string().nullable(),
262
+ draftRevisionId: z.string().nullable(),
263
+ reviewedRev: z.string(),
264
+ publishedAt: z.string().nullable(),
265
+ scheduledAt: z.string().nullable(),
266
+ siteTimezone: z.string()
267
+ }).nullable(),
268
+ blockers: z.array(z.object({
269
+ code: z.string(),
270
+ source: z.enum([
271
+ "content",
272
+ "editorial_review",
273
+ "release_hitl",
274
+ "authorization",
275
+ "policy"
276
+ ]),
277
+ message: z.string(),
278
+ policyId: z.string().optional()
279
+ })),
280
+ warnings: z.array(z.object({
281
+ severity: z.literal("warning"),
282
+ code: z.string(),
283
+ source: z.enum([
284
+ "content",
285
+ "editorial_review",
286
+ "release_hitl",
287
+ "authorization",
288
+ "policy"
289
+ ]),
290
+ message: z.string(),
291
+ policyId: z.string().optional(),
292
+ fingerprint: z.string(),
293
+ overridable: z.boolean()
294
+ }))
295
+ }).meta({ id: "ContentReleaseReadinessResponse" });
296
+ const contentPreviewUrlBody = z.object({
297
+ expiresIn: z.union([z.string(), z.number()]).optional(),
298
+ pathPattern: z.string().optional()
299
+ }).meta({ id: "ContentPreviewUrlBody" });
300
+ const contentTermsBody = z.object({ termIds: z.array(z.string()) }).meta({ id: "ContentTermsBody" });
301
+ const contentTrashQuery = cursorPaginationQuery;
302
+ /** SEO metadata on a content item */
303
+ const contentSeoSchema = z.object({
304
+ title: z.string().nullable(),
305
+ description: z.string().nullable(),
306
+ image: z.string().nullable(),
307
+ canonical: z.string().nullable(),
308
+ noIndex: z.boolean()
309
+ }).meta({ id: "ContentSeo" });
310
+ /** A single content item as returned by the API */
311
+ const contentItemSchema = z.object({
312
+ id: z.string(),
313
+ type: z.string().meta({ description: "Collection slug this item belongs to" }),
314
+ slug: z.string().nullable(),
315
+ status: z.string().meta({ description: "draft, published, or scheduled" }),
316
+ data: z.record(z.string(), z.unknown()).meta({ description: "User-defined field values" }),
317
+ authorId: z.string().nullable(),
318
+ primaryBylineId: z.string().nullable(),
319
+ byline: bylineSummarySchema.nullable().optional(),
320
+ bylines: z.array(bylineCreditSchema).optional(),
321
+ createdAt: z.string(),
322
+ updatedAt: z.string(),
323
+ publishedAt: z.string().nullable(),
324
+ scheduledAt: z.string().nullable(),
325
+ liveRevisionId: z.string().nullable(),
326
+ draftRevisionId: z.string().nullable(),
327
+ version: z.number().int(),
328
+ locale: z.string().nullable(),
329
+ translationGroup: z.string().nullable(),
330
+ seo: contentSeoSchema.optional()
331
+ }).meta({ id: "ContentItem" });
332
+ /** Response for single content item endpoints (get, create, update) */
333
+ const contentResponseSchema = z.object({
334
+ item: contentItemSchema,
335
+ _rev: z.string().optional().meta({ description: "Opaque revision token for optimistic concurrency" })
336
+ }).meta({ id: "ContentResponse" });
337
+ const contentPublishResponseSchema = contentResponseSchema.extend({ publicationReceipt: contentPublicationReceiptSchema }).meta({ id: "ContentPublishResponse" });
338
+ /** Response for content list endpoints */
339
+ const contentListResponseSchema = z.object({
340
+ items: z.array(contentItemSchema),
341
+ nextCursor: z.string().optional(),
342
+ total: z.number().int().nonnegative().optional()
343
+ }).meta({ id: "ContentListResponse" });
344
+ const contentAuthorSchema = z.object({
345
+ id: z.string(),
346
+ name: z.string().nullable(),
347
+ email: z.string(),
348
+ avatarUrl: z.string().nullable()
349
+ }).meta({ id: "ContentAuthor" });
350
+ const contentAuthorsResponseSchema = z.object({ items: z.array(contentAuthorSchema) }).meta({ id: "ContentAuthorsResponse" });
351
+ /** Trashed content item */
352
+ const trashedContentItemSchema = z.object({
353
+ id: z.string(),
354
+ type: z.string(),
355
+ slug: z.string().nullable(),
356
+ status: z.string(),
357
+ data: z.record(z.string(), z.unknown()),
358
+ authorId: z.string().nullable(),
359
+ createdAt: z.string(),
360
+ updatedAt: z.string(),
361
+ publishedAt: z.string().nullable(),
362
+ deletedAt: z.string()
363
+ }).meta({ id: "TrashedContentItem" });
364
+ /** Response for trashed content list */
365
+ const trashedContentListResponseSchema = z.object({
366
+ items: z.array(trashedContentItemSchema),
367
+ nextCursor: z.string().optional()
368
+ }).meta({ id: "TrashedContentListResponse" });
369
+ /** Response for content compare (live vs draft) */
370
+ const contentCompareResponseSchema = z.object({
371
+ hasChanges: z.boolean(),
372
+ live: z.record(z.string(), z.unknown()).nullable(),
373
+ draft: z.record(z.string(), z.unknown()).nullable()
374
+ }).meta({ id: "ContentCompareResponse" });
375
+ /** Translation summary for a content item */
376
+ const contentTranslationSchema = z.object({
377
+ id: z.string(),
378
+ locale: z.string().nullable(),
379
+ slug: z.string().nullable(),
380
+ status: z.string(),
381
+ updatedAt: z.string()
382
+ });
383
+ /** Response for content translations endpoint */
384
+ const contentTranslationsResponseSchema = z.object({
385
+ translationGroup: z.string(),
386
+ translations: z.array(contentTranslationSchema)
387
+ }).meta({ id: "ContentTranslationsResponse" });
388
+
389
+ //#endregion
390
+ export { bylinesListQuery as A, offsetPaginationQuery as B, trashedContentItemSchema as C, bylineListResponseSchema as D, bylineCreditSchema as E, cursorPaginationQuery as F, slugPattern as H, deleteResponseSchema as I, httpUrl as L, VALID_ROLE_LEVELS as M, apiErrorSchema as N, bylineSummarySchema as O, countResponseSchema as P, localeCode as R, contentUpdateBody as S, bylineCreateBody as T, successEnvelope as U, roleLevel as V, contentSeoSchema as _, contentItemSchema as a, contentTranslationsResponseSchema as b, contentPreviewUrlBody as c, contentPublishResponseSchema as d, contentReleaseReadinessQuery as f, contentSeoInput as g, contentScheduleBody as h, contentCreateBody as i, contentBylineInputSchema as j, bylineUpdateBody as k, contentPublicationReceiptSchema as l, contentResponseSchema as m, contentAuthorsResponseSchema as n, contentListQuery as o, contentReleaseReadinessResponseSchema as p, contentCompareResponseSchema as r, contentListResponseSchema as s, contentAuthorSchema as t, contentPublishBody as u, contentTermsBody as v, trashedContentListResponseSchema as w, contentTrashQuery as x, contentTranslationSchema as y, localeFilterQuery as z };
@@ -1,10 +1,12 @@
1
1
  import { AtomicWriteConflict, atomicBatch } from "./database/batch.mjs";
2
2
  import { t as validateIdentifier } from "./validate-Co3j6T_K.mjs";
3
3
  import { r as isI18nEnabled } from "./config-XW5tMrH8.mjs";
4
- import { i as encodeCursor, r as decodeCursor } from "./types-RFzE_V1M.mjs";
5
- import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-C8vSD_5L.mjs";
6
- import { n as normalizeMime } from "./mime-BnVhH671.mjs";
7
- import { n as hashString } from "./hash-D2Rqd2J2.mjs";
4
+ import { a as hydrateContentRows } from "./runtime-Ch5G-tnG.mjs";
5
+ import { t as readRevisionData } from "./revisions-CQ7rMP5d.mjs";
6
+ import { i as encodeCursor, r as decodeCursor } from "./types-BI3ULB3A.mjs";
7
+ import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-Bb56aCtB.mjs";
8
+ import { n as normalizeMime } from "./mime-FkfazULS.mjs";
9
+ import { n as hashString } from "./hash-qSYPMJ8w.mjs";
8
10
  import { sql } from "kysely";
9
11
  import { ulid } from "ulidx";
10
12
 
@@ -1058,13 +1060,16 @@ async function loadContentMediaUsageSnapshots(db, collectionSlug, contentId, fie
1058
1060
  }
1059
1061
  async function loadContentRow(db, collectionSlug, contentId, fieldSlugs) {
1060
1062
  const tableName = getContentTableName(collectionSlug);
1061
- const columnRefs = uniqueColumns([...CONTENT_SYSTEM_COLUMNS, ...fieldSlugs]).map((column) => sql.ref(column));
1062
- return (await sql`
1063
+ const columns = uniqueColumns([...CONTENT_SYSTEM_COLUMNS, ...fieldSlugs]);
1064
+ const columnRefs = columns.map((column) => sql.ref(column));
1065
+ const result = await sql`
1063
1066
  SELECT ${sql.join(columnRefs, sql`, `)}
1064
1067
  FROM ${sql.ref(tableName)}
1065
1068
  WHERE id = ${contentId}
1066
1069
  LIMIT 1
1067
- `.execute(db)).rows[0] ?? null;
1070
+ `.execute(db);
1071
+ await hydrateContentRows(db, collectionSlug, result.rows, columns);
1072
+ return result.rows[0] ?? null;
1068
1073
  }
1069
1074
  async function loadRevisionRow(db, revisionId) {
1070
1075
  const row = await db.selectFrom("revisions").select([
@@ -1074,7 +1079,8 @@ async function loadRevisionRow(db, revisionId) {
1074
1079
  "data"
1075
1080
  ]).where("id", "=", revisionId).executeTakeFirst();
1076
1081
  if (!row) return null;
1077
- const data = parseRevisionData(row.data);
1082
+ const parsed = parseRevisionData(row.data);
1083
+ const data = parsed && Object.hasOwn(parsed, "__dineway_content_storage__") ? await readRevisionData(db, row) : parsed;
1078
1084
  if (!data) return { success: false };
1079
1085
  return {
1080
1086
  success: true,
@@ -0,0 +1,180 @@
1
+ import { n as Database } from "../types-Dpv_MvwZ.mjs";
2
+ import "../database/batch.mjs";
3
+ import { a as ContentStorageActivation, c as ContentStorageError, d as ContentStore, f as ContentStoreDescriptor, i as ContentPartitionRule, l as ContentStorageReplay, n as ContentPartitionContext, o as ContentStorageCommand, p as PreparedContentVersion, r as ContentPartitionResolver, s as ContentStorageConfig, t as ContentLocation, u as ContentStorageValue } from "../types-qOEot0UQ.mjs";
4
+ import { a as registerContentStorage, i as hydrateContentRows, n as assertContentStorageConfiguration, o as ContentStorageCoordinator, r as getContentStorage, s as installContentStorageConfig, t as ContentStorageRuntime } from "../runtime-Bs2JMbb2.mjs";
5
+ import "../hook-events-BQw73jc7.mjs";
6
+ import { a as contentStoreRequestSchema, c as canonicalContentJson, d as validateContentStorage, i as contentStoreCollectionSchema, l as contentDigest, n as ContentVersionStore, o as contentVersionSchema, r as assertContentVersionStore, s as installContentVersionStore, t as ContentStoreCollection, u as resolveContentPartition } from "../version-store-B_THJCc0.mjs";
7
+ import * as kysely from "kysely";
8
+ import { Kysely } from "kysely";
9
+ import { z } from "zod";
10
+
11
+ //#region src/content-storage/config-migration.d.ts
12
+ /** Explicit deployment step. Mapping changes retain the source until its data migration completes. */
13
+ declare function migrateContentStorageConfig<DB>(db: Kysely<DB>, previous: ContentStorageConfig, next: ContentStorageConfig): Promise<void>;
14
+ //#endregion
15
+ //#region src/content-storage/migration-snapshot.d.ts
16
+ declare const contentMigrationSnapshotSchema: z.ZodObject<{
17
+ collection: z.ZodString;
18
+ entryId: z.ZodString;
19
+ schemaDigest: z.ZodString;
20
+ changeSequence: z.ZodNumber;
21
+ row: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
22
+ item: z.ZodObject<{
23
+ id: z.ZodString;
24
+ type: z.ZodString;
25
+ slug: z.ZodNullable<z.ZodString>;
26
+ status: z.ZodString;
27
+ authorId: z.ZodNullable<z.ZodString>;
28
+ primaryBylineId: z.ZodNullable<z.ZodString>;
29
+ byline: z.ZodOptional<z.ZodNullable<z.ZodObject<{
30
+ id: z.ZodString;
31
+ slug: z.ZodString;
32
+ displayName: z.ZodString;
33
+ bio: z.ZodNullable<z.ZodString>;
34
+ avatarMediaId: z.ZodNullable<z.ZodString>;
35
+ avatarStorageKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
36
+ avatarAlt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
37
+ avatarBlurhash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
38
+ avatarDominantColor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
39
+ websiteUrl: z.ZodNullable<z.ZodString>;
40
+ userId: z.ZodNullable<z.ZodString>;
41
+ isGuest: z.ZodBoolean;
42
+ createdAt: z.ZodString;
43
+ updatedAt: z.ZodString;
44
+ locale: z.ZodString;
45
+ translationGroup: z.ZodNullable<z.ZodString>;
46
+ customFields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNull]>>>;
47
+ }, z.core.$strip>>>;
48
+ bylines: z.ZodOptional<z.ZodArray<z.ZodObject<{
49
+ byline: z.ZodObject<{
50
+ id: z.ZodString;
51
+ slug: z.ZodString;
52
+ displayName: z.ZodString;
53
+ bio: z.ZodNullable<z.ZodString>;
54
+ avatarMediaId: z.ZodNullable<z.ZodString>;
55
+ avatarStorageKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
+ avatarAlt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
57
+ avatarBlurhash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
58
+ avatarDominantColor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
59
+ websiteUrl: z.ZodNullable<z.ZodString>;
60
+ userId: z.ZodNullable<z.ZodString>;
61
+ isGuest: z.ZodBoolean;
62
+ createdAt: z.ZodString;
63
+ updatedAt: z.ZodString;
64
+ locale: z.ZodString;
65
+ translationGroup: z.ZodNullable<z.ZodString>;
66
+ customFields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNull]>>>;
67
+ }, z.core.$strip>;
68
+ sortOrder: z.ZodNumber;
69
+ roleLabel: z.ZodNullable<z.ZodString>;
70
+ source: z.ZodOptional<z.ZodEnum<{
71
+ explicit: "explicit";
72
+ inferred: "inferred";
73
+ }>>;
74
+ }, z.core.$strip>>>;
75
+ createdAt: z.ZodString;
76
+ updatedAt: z.ZodString;
77
+ publishedAt: z.ZodNullable<z.ZodString>;
78
+ scheduledAt: z.ZodNullable<z.ZodString>;
79
+ liveRevisionId: z.ZodNullable<z.ZodString>;
80
+ draftRevisionId: z.ZodNullable<z.ZodString>;
81
+ version: z.ZodNumber;
82
+ locale: z.ZodNullable<z.ZodString>;
83
+ translationGroup: z.ZodNullable<z.ZodString>;
84
+ seo: z.ZodOptional<z.ZodObject<{
85
+ title: z.ZodNullable<z.ZodString>;
86
+ description: z.ZodNullable<z.ZodString>;
87
+ image: z.ZodNullable<z.ZodString>;
88
+ canonical: z.ZodNullable<z.ZodString>;
89
+ noIndex: z.ZodBoolean;
90
+ }, z.core.$strip>>;
91
+ data: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
92
+ }, z.core.$strip>;
93
+ location: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
94
+ partitionDependencies: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
95
+ revisions: z.ZodArray<z.ZodObject<{
96
+ row: z.ZodObject<{
97
+ id: z.ZodString;
98
+ collection: z.ZodString;
99
+ entry_id: z.ZodString;
100
+ data: z.ZodString;
101
+ author_id: z.ZodNullable<z.ZodString>;
102
+ created_at: z.ZodString;
103
+ }, z.core.$strip>;
104
+ data: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
105
+ }, z.core.$strip>>;
106
+ owned: z.ZodObject<{
107
+ terms: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
108
+ bylines: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
109
+ seo: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
110
+ }, z.core.$strip>;
111
+ }, z.core.$strict>;
112
+ type ContentMigrationSnapshot = z.infer<typeof contentMigrationSnapshotSchema>;
113
+ /** The host supplies durable private storage, such as R2 or an fsynced local archive. */
114
+ interface ContentMigrationArchive {
115
+ put(key: string, snapshot: ContentMigrationSnapshot): Promise<void>;
116
+ get(key: string): Promise<unknown>;
117
+ }
118
+ /** Capture an entry, complete history and owned metadata without changing its visibility. */
119
+ declare function captureContentMigrationSnapshot(db: Kysely<Database>, collection: string, entryId: string): Promise<ContentMigrationSnapshot>;
120
+ /** Index legacy primary rows in resumable pages before taking a partition's write freeze. */
121
+ declare function bootstrapContentDirectoryPage(db: Kysely<Database>, collection: string, options?: {
122
+ afterId?: string;
123
+ limit?: number;
124
+ }): Promise<{
125
+ indexed: number;
126
+ nextCursor: string | undefined;
127
+ }>;
128
+ //#endregion
129
+ //#region src/content-storage/routing.d.ts
130
+ interface ContentPartitionRoute {
131
+ collection: string;
132
+ partition: string;
133
+ store: string;
134
+ target_store: string;
135
+ state: "active" | "copying" | "frozen";
136
+ epoch: number;
137
+ migration_id: string | null;
138
+ updated_at: string;
139
+ }
140
+ declare function readContentPartitionRoute<DB>(db: Kysely<DB>, collection: string, partition: string): Promise<{
141
+ route: ContentPartitionRoute;
142
+ check: kysely.RawBuilder<boolean>;
143
+ }>;
144
+ interface ContentMigrationIdentity {
145
+ collection: string;
146
+ partition: string;
147
+ id: string;
148
+ }
149
+ /** Starts copying while the partition remains writable on its current store. */
150
+ declare function beginContentMigration<DB>(db: Kysely<DB>, config: ContentStorageConfig, migration: ContentMigrationIdentity): Promise<ContentPartitionRoute>;
151
+ /** Epoch fencing makes all previously prepared writes fail before primary activation. */
152
+ declare function freezeContentPartition<DB>(db: Kysely<DB>, migration: ContentMigrationIdentity): Promise<ContentPartitionRoute>;
153
+ /** Resume the old store only while every entry still points to it. */
154
+ declare function cancelContentMigration<DB>(db: Kysely<DB>, migration: ContentMigrationIdentity): Promise<void>;
155
+ //#endregion
156
+ //#region src/content-storage/migration.d.ts
157
+ interface MigrationEntry {
158
+ migration_id: string;
159
+ entry_id: string;
160
+ source_digest: string;
161
+ archive_key: string;
162
+ target_location: string;
163
+ state: string;
164
+ updated_at: string;
165
+ }
166
+ /** Idempotent pre-copy. Full source data must be durably archived and read back first. */
167
+ declare function stageContentMigrationEntry(db: Kysely<Database>, migration: ContentMigrationIdentity, entryId: string, archive: ContentMigrationArchive): Promise<MigrationEntry>;
168
+ /** Activate one verified entry while the city remains frozen; retries use its persisted receipt. */
169
+ declare function activateContentMigrationEntry(db: Kysely<Database>, migration: ContentMigrationIdentity, entryId: string, archive: ContentMigrationArchive): Promise<void>;
170
+ /** Refresh the frozen delta, verify all current IDs, and seal the activation manifest. */
171
+ declare function verifyContentMigration(db: Kysely<Database>, migration: ContentMigrationIdentity, archive: ContentMigrationArchive): Promise<{
172
+ count: number;
173
+ digest: string;
174
+ }>;
175
+ /** Reopen writes only after every sealed entry has activated; old archives remain retained. */
176
+ declare function completeContentMigration(db: Kysely<Database>, migration: ContentMigrationIdentity): Promise<void>;
177
+ /** Restore the archived source only before writes have reopened. Never deletes either copy. */
178
+ declare function rollbackContentMigration(db: Kysely<Database>, migration: ContentMigrationIdentity, archive: ContentMigrationArchive): Promise<void>;
179
+ //#endregion
180
+ export { type ContentLocation, type ContentMigrationArchive, type ContentMigrationIdentity, type ContentMigrationSnapshot, type ContentPartitionContext, type ContentPartitionResolver, type ContentPartitionRoute, type ContentPartitionRule, type ContentStorageActivation, type ContentStorageCommand, type ContentStorageConfig, ContentStorageCoordinator, ContentStorageError, ContentStorageReplay, type ContentStorageRuntime, type ContentStorageValue, type ContentStore, type ContentStoreCollection, type ContentStoreDescriptor, ContentVersionStore, type PreparedContentVersion, activateContentMigrationEntry, assertContentStorageConfiguration, assertContentVersionStore, beginContentMigration, bootstrapContentDirectoryPage, cancelContentMigration, canonicalContentJson, captureContentMigrationSnapshot, completeContentMigration, contentDigest, contentMigrationSnapshotSchema, contentStoreCollectionSchema, contentStoreRequestSchema, contentVersionSchema, freezeContentPartition, getContentStorage, hydrateContentRows, installContentStorageConfig, installContentVersionStore, migrateContentStorageConfig, readContentPartitionRoute, registerContentStorage, resolveContentPartition, rollbackContentMigration, stageContentMigrationEntry, validateContentStorage, verifyContentMigration };
@@ -0,0 +1,29 @@
1
+ import "../d1-binding-DrLMBUxu.mjs";
2
+ import "../dialect-helpers-C6xtO-Ui.mjs";
3
+ import { a as validateContentStorage, i as resolveContentPartition, n as contentDigest, o as ContentStorageError, s as ContentStorageReplay, t as canonicalContentJson } from "../config-6R0bchVE.mjs";
4
+ import { a as hydrateContentRows, c as installContentStorageConfig, f as freezeContentPartition, l as beginContentMigration, o as registerContentStorage, p as readContentPartitionRoute, r as getContentStorage, s as ContentStorageCoordinator, t as assertContentStorageConfiguration, u as cancelContentMigration } from "../runtime-Ch5G-tnG.mjs";
5
+ import "../revisions-CQ7rMP5d.mjs";
6
+ import "../base64-qvSs0Gxy.mjs";
7
+ import "../types-BI3ULB3A.mjs";
8
+ import "../actor-D0AW80ld.mjs";
9
+ import "../atomic-authority-Bf5QZboB.mjs";
10
+ import "../content-BigS8BAv.mjs";
11
+ import "../request-cache-CizvDoxV.mjs";
12
+ import "../byline-registry-Caj0_gbU.mjs";
13
+ import "../field-defs-cache-dn5Tw79A.mjs";
14
+ import "../object-cache-DyI1SOBK.mjs";
15
+ import "../byline-3qjp1-oa.mjs";
16
+ import "../owned-metadata-BPmUjZqI.mjs";
17
+ import "../revision-B_HYO2AE.mjs";
18
+ import "../user-Bl2_8rhJ.mjs";
19
+ import "../terms-EskuqbKE.mjs";
20
+ import "../redirect-CJ-FAbNK.mjs";
21
+ import "../content-write-DAZCNKWl.mjs";
22
+ import "../text-extraction-CdqMGYQK.mjs";
23
+ import { a as contentVersionSchema, i as contentStoreRequestSchema, n as assertContentVersionStore, o as installContentVersionStore, r as contentStoreCollectionSchema, t as ContentVersionStore } from "../version-store-BXv2D0de.mjs";
24
+ import "../write-intent-DuHVqks9.mjs";
25
+ import "../seo-Cv7ud_m2.mjs";
26
+ import "../content-Dr22fzA_.mjs";
27
+ import { a as verifyContentMigration, c as contentMigrationSnapshotSchema, i as stageContentMigrationEntry, l as migrateContentStorageConfig, n as completeContentMigration, o as bootstrapContentDirectoryPage, r as rollbackContentMigration, s as captureContentMigrationSnapshot, t as activateContentMigrationEntry } from "../migration-DJuj7ZwN.mjs";
28
+
29
+ export { ContentStorageCoordinator, ContentStorageError, ContentStorageReplay, ContentVersionStore, activateContentMigrationEntry, assertContentStorageConfiguration, assertContentVersionStore, beginContentMigration, bootstrapContentDirectoryPage, cancelContentMigration, canonicalContentJson, captureContentMigrationSnapshot, completeContentMigration, contentDigest, contentMigrationSnapshotSchema, contentStoreCollectionSchema, contentStoreRequestSchema, contentVersionSchema, freezeContentPartition, getContentStorage, hydrateContentRows, installContentStorageConfig, installContentVersionStore, migrateContentStorageConfig, readContentPartitionRoute, registerContentStorage, resolveContentPartition, rollbackContentMigration, stageContentMigrationEntry, validateContentStorage, verifyContentMigration };
@@ -0,0 +1,3 @@
1
+ import { c as ContentStorageError, d as ContentStore, p as PreparedContentVersion, t as ContentLocation } from "../types-qOEot0UQ.mjs";
2
+ import { a as contentStoreRequestSchema, l as contentDigest, n as ContentVersionStore, o as contentVersionSchema, r as assertContentVersionStore, s as installContentVersionStore } from "../version-store-B_THJCc0.mjs";
3
+ export { type ContentLocation, ContentStorageError, type ContentStore, ContentVersionStore, type PreparedContentVersion, assertContentVersionStore, contentDigest, contentStoreRequestSchema, contentVersionSchema, installContentVersionStore };
@@ -0,0 +1,5 @@
1
+ import "../d1-binding-DrLMBUxu.mjs";
2
+ import { n as contentDigest, o as ContentStorageError } from "../config-6R0bchVE.mjs";
3
+ import { a as contentVersionSchema, i as contentStoreRequestSchema, n as assertContentVersionStore, o as installContentVersionStore, t as ContentVersionStore } from "../version-store-BXv2D0de.mjs";
4
+
5
+ export { ContentStorageError, ContentVersionStore, assertContentVersionStore, contentDigest, contentStoreRequestSchema, contentVersionSchema, installContentVersionStore };