dineway 0.1.47 → 0.1.48

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 (289) hide show
  1. package/README.md +57 -54
  2. package/dist/{activity-events-CNk3clTT.mjs → activity-events-C9u37D5z.mjs} +1 -1
  3. package/dist/api/route-utils.d.mts +8 -22
  4. package/dist/api/route-utils.mjs +8 -8
  5. package/dist/api/schemas/index.d.mts +2 -2
  6. package/dist/api/schemas/index.mjs +3 -3
  7. package/dist/{api-ePsOhL3q.mjs → api-Eiy8_zVZ.mjs} +63 -16
  8. package/dist/{apply-BpRBCqUt.mjs → apply-CX3no7XE.mjs} +54 -48
  9. package/dist/astro/index.d.mts +8 -8
  10. package/dist/astro/index.mjs +67 -25
  11. package/dist/astro/middleware/auth.d.mts +7 -7
  12. package/dist/astro/middleware/auth.mjs +1 -1
  13. package/dist/astro/middleware/redirect.mjs +4 -4
  14. package/dist/astro/middleware/request-context.mjs +2 -2
  15. package/dist/astro/middleware/seed.d.mts +1 -1
  16. package/dist/astro/middleware/seed.mjs +2 -2
  17. package/dist/astro/middleware/setup.mjs +1 -1
  18. package/dist/astro/middleware.d.mts +2 -1
  19. package/dist/astro/middleware.mjs +362 -143
  20. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +2 -2
  21. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +2 -2
  22. package/dist/astro/routes/api/admin/api-tokens/index.mjs +1 -1
  23. package/dist/astro/routes/api/admin/briefing.mjs +14 -14
  24. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +2 -2
  25. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +4 -4
  26. package/dist/astro/routes/api/admin/byline-fields/index.mjs +4 -4
  27. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +4 -4
  28. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +9 -9
  29. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +9 -9
  30. package/dist/astro/routes/api/admin/bylines/index.mjs +9 -9
  31. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +8 -8
  32. package/dist/astro/routes/api/admin/comments/_id_.mjs +3 -3
  33. package/dist/astro/routes/api/admin/comments/bulk.mjs +5 -5
  34. package/dist/astro/routes/api/admin/comments/counts.mjs +3 -3
  35. package/dist/astro/routes/api/admin/comments/index.mjs +5 -5
  36. package/dist/astro/routes/api/admin/context/_id_/history.mjs +20 -20
  37. package/dist/astro/routes/api/admin/context/_id_/index.mjs +20 -20
  38. package/dist/astro/routes/api/admin/context/_id_/review.mjs +23 -23
  39. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +23 -23
  40. package/dist/astro/routes/api/admin/context/diff.mjs +22 -22
  41. package/dist/astro/routes/api/admin/context/index.mjs +23 -23
  42. package/dist/astro/routes/api/admin/context/stale.mjs +22 -22
  43. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +21 -21
  44. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +23 -23
  45. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +23 -23
  46. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +20 -20
  47. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +1 -1
  48. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +2 -2
  49. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +2 -2
  50. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +40 -40
  51. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +40 -40
  52. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +35 -35
  53. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +40 -40
  54. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +40 -40
  55. package/dist/astro/routes/api/admin/plugins/index.mjs +35 -35
  56. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +35 -35
  57. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +40 -40
  58. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +35 -35
  59. package/dist/astro/routes/api/admin/plugins/updates.mjs +35 -35
  60. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +3 -3
  61. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +22 -22
  62. package/dist/astro/routes/api/admin/review-requests/index.mjs +5 -5
  63. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +35 -35
  64. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +35 -35
  65. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +1 -1
  66. package/dist/astro/routes/api/admin/users/_id_/index.mjs +3 -3
  67. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +2 -2
  68. package/dist/astro/routes/api/admin/users/index.mjs +2 -2
  69. package/dist/astro/routes/api/auth/dev-bypass.mjs +1 -1
  70. package/dist/astro/routes/api/auth/invite/complete.mjs +5 -5
  71. package/dist/astro/routes/api/auth/invite/index.mjs +4 -4
  72. package/dist/astro/routes/api/auth/invite/register-options.mjs +4 -4
  73. package/dist/astro/routes/api/auth/magic-link/send.mjs +4 -4
  74. package/dist/astro/routes/api/auth/me.mjs +5 -5
  75. package/dist/astro/routes/api/auth/mode.mjs +1 -1
  76. package/dist/astro/routes/api/auth/passkey/_id_.mjs +2 -2
  77. package/dist/astro/routes/api/auth/passkey/options.mjs +4 -4
  78. package/dist/astro/routes/api/auth/passkey/register/options.mjs +4 -4
  79. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +5 -5
  80. package/dist/astro/routes/api/auth/passkey/verify.mjs +5 -5
  81. package/dist/astro/routes/api/auth/setup-token/index.mjs +2 -2
  82. package/dist/astro/routes/api/auth/signup/complete.mjs +5 -5
  83. package/dist/astro/routes/api/auth/signup/request.mjs +4 -4
  84. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +9 -9
  85. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +6 -5
  86. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +3 -3
  87. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +3 -3
  88. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +4 -4
  89. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +8 -7
  90. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +3 -3
  91. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +11 -9
  92. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +8 -8
  93. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +6 -5
  94. package/dist/astro/routes/api/content/_collection_/_id_.mjs +8 -7
  95. package/dist/astro/routes/api/content/_collection_/authors.d.mts +7 -0
  96. package/dist/astro/routes/api/content/_collection_/authors.mjs +16 -0
  97. package/dist/astro/routes/api/content/_collection_/index.mjs +5 -5
  98. package/dist/astro/routes/api/content/_collection_/trash.mjs +2 -2
  99. package/dist/astro/routes/api/dashboard.mjs +6 -6
  100. package/dist/astro/routes/api/health.mjs +1 -1
  101. package/dist/astro/routes/api/import/probe.d.mts +2 -2
  102. package/dist/astro/routes/api/import/probe.mjs +2 -2
  103. package/dist/astro/routes/api/import/wordpress/analyze.mjs +3 -3
  104. package/dist/astro/routes/api/import/wordpress/execute.mjs +23 -23
  105. package/dist/astro/routes/api/import/wordpress/media.mjs +4 -4
  106. package/dist/astro/routes/api/import/wordpress/prepare.mjs +26 -26
  107. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +24 -24
  108. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +4 -4
  109. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +24 -24
  110. package/dist/astro/routes/api/manifest.mjs +3 -3
  111. package/dist/astro/routes/api/mcp.mjs +46 -46
  112. package/dist/astro/routes/api/media/_id_/confirm.mjs +4 -4
  113. package/dist/astro/routes/api/media/_id_.mjs +2 -2
  114. package/dist/astro/routes/api/media/upload-url.mjs +4 -4
  115. package/dist/astro/routes/api/media.mjs +4 -4
  116. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +23 -23
  117. package/dist/astro/routes/api/menus/_name_/items.mjs +23 -23
  118. package/dist/astro/routes/api/menus/_name_/reorder.mjs +23 -23
  119. package/dist/astro/routes/api/menus/_name_/translations.mjs +23 -23
  120. package/dist/astro/routes/api/menus/_name_.mjs +23 -23
  121. package/dist/astro/routes/api/menus/index.mjs +23 -23
  122. package/dist/astro/routes/api/oauth/authorize.mjs +3 -3
  123. package/dist/astro/routes/api/oauth/device/authorize.mjs +2 -2
  124. package/dist/astro/routes/api/oauth/device/code.mjs +2 -2
  125. package/dist/astro/routes/api/oauth/device/token.mjs +2 -2
  126. package/dist/astro/routes/api/oauth/register.mjs +2 -2
  127. package/dist/astro/routes/api/oauth/token/refresh.mjs +2 -2
  128. package/dist/astro/routes/api/oauth/token/revoke.mjs +2 -2
  129. package/dist/astro/routes/api/oauth/token.mjs +3 -3
  130. package/dist/astro/routes/api/openapi.json.mjs +16 -2
  131. package/dist/astro/routes/api/redirects/404s/index.mjs +6 -6
  132. package/dist/astro/routes/api/redirects/404s/summary.mjs +6 -6
  133. package/dist/astro/routes/api/redirects/_id_.mjs +24 -24
  134. package/dist/astro/routes/api/redirects/index.mjs +24 -24
  135. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +36 -36
  136. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +36 -36
  137. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +36 -36
  138. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +36 -36
  139. package/dist/astro/routes/api/schema/collections/index.mjs +36 -36
  140. package/dist/astro/routes/api/schema/index.mjs +3 -3
  141. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +35 -35
  142. package/dist/astro/routes/api/schema/orphans/index.mjs +35 -35
  143. package/dist/astro/routes/api/search/enable.mjs +6 -6
  144. package/dist/astro/routes/api/search/index.mjs +6 -6
  145. package/dist/astro/routes/api/search/rebuild.mjs +6 -6
  146. package/dist/astro/routes/api/search/stats.mjs +4 -4
  147. package/dist/astro/routes/api/search/suggest.mjs +6 -6
  148. package/dist/astro/routes/api/sections/_slug_.mjs +23 -23
  149. package/dist/astro/routes/api/sections/index.mjs +23 -23
  150. package/dist/astro/routes/api/settings/email.mjs +1 -1
  151. package/dist/astro/routes/api/settings.mjs +23 -23
  152. package/dist/astro/routes/api/setup/admin-verify.mjs +6 -6
  153. package/dist/astro/routes/api/setup/admin.mjs +4 -4
  154. package/dist/astro/routes/api/setup/dev-bypass.mjs +17 -17
  155. package/dist/astro/routes/api/setup/dev-reset.mjs +1 -1
  156. package/dist/astro/routes/api/setup/index.mjs +20 -20
  157. package/dist/astro/routes/api/setup/status.mjs +2 -2
  158. package/dist/astro/routes/api/snapshot.mjs +2 -2
  159. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +25 -25
  160. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -25
  161. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +25 -25
  162. package/dist/astro/routes/api/taxonomies/index.mjs +25 -25
  163. package/dist/astro/routes/api/themes/preview.mjs +2 -2
  164. package/dist/astro/routes/api/typegen.mjs +3 -3
  165. package/dist/astro/routes/api/well-known/auth.mjs +3 -3
  166. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +1 -1
  167. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +1 -1
  168. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +22 -22
  169. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +23 -23
  170. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +23 -23
  171. package/dist/astro/routes/api/widget-areas/_name_.mjs +21 -21
  172. package/dist/astro/routes/api/widget-areas/index.mjs +23 -23
  173. package/dist/astro/routes/robots.txt.mjs +45 -22
  174. package/dist/astro/routes/sitemap-_collection_.xml.mjs +6 -6
  175. package/dist/astro/routes/sitemap.xml.mjs +6 -6
  176. package/dist/astro/session-driver.d.mts +1 -1
  177. package/dist/astro/session-driver.mjs +2 -2
  178. package/dist/astro/types.d.mts +15 -8
  179. package/dist/{audit-DuRbTm8L.mjs → audit-D1cbG7xH.mjs} +1 -1
  180. package/dist/{briefing-C4fJSVYW.mjs → briefing-CObXGOGz.mjs} +1 -1
  181. package/dist/{briefing-BFEWeJtR.mjs → briefing-gKWiGLt1.mjs} +6 -6
  182. package/dist/{byline-CXQcMsBu.mjs → byline-1ntDwv8c.mjs} +5 -5
  183. package/dist/{byline-fields-D7TJ_oHF.mjs → byline-fields-B-ZkoVft.mjs} +2 -2
  184. package/dist/{byline-fields-Cuo-JI3B.d.mts → byline-fields-BX7rWKNU.d.mts} +54 -30
  185. package/dist/{byline-fields-Dc7L6Yry.mjs → byline-fields-C9_iaPaM.mjs} +1 -1
  186. package/dist/{byline-registry-CL8BxPPp.mjs → byline-registry-CUSvkasJ.mjs} +2 -2
  187. package/dist/{bylines-BgriNlW7.mjs → bylines-DtxChhN_.mjs} +38 -4
  188. package/dist/{bylines-D2vqm1aZ.mjs → bylines-bC15ZqAv.mjs} +2 -2
  189. package/dist/{cache-GRK71jOU.mjs → cache-DbKyr60Q.mjs} +2 -2
  190. package/dist/{chunks-DgEw12Bc.mjs → chunks-C5zp2xir.mjs} +1 -1
  191. package/dist/cli/index.mjs +42 -31
  192. package/dist/client/external-auth-headers.d.mts +1 -1
  193. package/dist/client/index.d.mts +1 -1
  194. package/dist/{comment-ogMaF1gk.mjs → comment-CXDOQ93N.mjs} +1 -1
  195. package/dist/{comments-CTSOKrZq.mjs → comments-hK-rdzJ9.mjs} +1 -1
  196. package/dist/{content-BfyjOiMi.mjs → content-QaryevFO.mjs} +103 -40
  197. package/dist/{context-ZMHhwzkG.mjs → context-CoYb_fvK.mjs} +7 -7
  198. package/dist/{context-CdsYb1m8.mjs → context-DBL1ib4v.mjs} +2 -2
  199. package/dist/{context-route-helpers-YLWx2N1j.mjs → context-route-helpers-CYQVmbIm.mjs} +1 -1
  200. package/dist/{dashboard-D0gWuzNp.mjs → dashboard-DNlqsknJ.mjs} +4 -4
  201. package/dist/db/index.d.mts +2 -2
  202. package/dist/db/index.mjs +1 -1
  203. package/dist/{default-BHauvIdG.mjs → default-B6iaLvP7.mjs} +4 -2
  204. package/dist/{device-flow-B3_FEoMI.mjs → device-flow-DygsFPGL.mjs} +3 -3
  205. package/dist/{fts-manager-EHY2Kes9.mjs → fts-manager-CIZlScg5.mjs} +1 -1
  206. package/dist/{hitl-requests-B1Zqgut6.mjs → hitl-requests-CGQwOEiq.mjs} +2 -2
  207. package/dist/{hitl-route-helpers-CjpWUMuw.mjs → hitl-route-helpers-GSDLNPpN.mjs} +3 -3
  208. package/dist/{index-DJVaYiUV.d.mts → index-CwRuZ-u8.d.mts} +1 -1
  209. package/dist/index.d.mts +10 -10
  210. package/dist/index.mjs +51 -51
  211. package/dist/{jsonld-AcPnCEGD.d.mts → jsonld-DZ67souc.d.mts} +1 -1
  212. package/dist/{load-BdbvtoDb.mjs → load-xE01Jm0V.mjs} +1 -1
  213. package/dist/{loader-Y0QvC_QO.mjs → loader-tg63WSY2.mjs} +138 -36
  214. package/dist/media/index.mjs +1 -1
  215. package/dist/media/local-runtime.d.mts +7 -7
  216. package/dist/media/local-runtime.mjs +2 -2
  217. package/dist/{media-DhBwiCYR.mjs → media-DUAjMfvR.mjs} +1 -1
  218. package/dist/{menus-fqqzXyHd.mjs → menus-DU1eZqw_.mjs} +13 -8
  219. package/dist/{menus-BzGQpw9d.mjs → menus-WpFRMXjz.mjs} +2 -2
  220. package/dist/{normalize-O-hi3a27.mjs → normalize-DUnoXAa9.mjs} +1 -1
  221. package/dist/{oauth-authorization-DsF81vki.mjs → oauth-authorization-D-1p52Je.mjs} +3 -3
  222. package/dist/{oauth-clients-Du-V0fEm.mjs → oauth-clients-CzeMGyUU.mjs} +1 -1
  223. package/dist/page/index.d.mts +2 -2
  224. package/dist/plugin-utils.d.mts +7 -7
  225. package/dist/plugins/adapt-sandbox-entry.d.mts +7 -7
  226. package/dist/{plugins-BQ5Joz6v.mjs → plugins-C57YQi4l.mjs} +195 -5
  227. package/dist/public-url-B5HaoGzj.d.mts +18 -0
  228. package/dist/{query-CSx0EdSW.mjs → query-BYc3oruA.mjs} +29 -18
  229. package/dist/{query-BJuUydtD.mjs → query-DKEwzobh.mjs} +3 -3
  230. package/dist/{redirect-BqFMj67n.mjs → redirect-C2zXRj3c.mjs} +2 -2
  231. package/dist/{redirects-CJwHl_YG.mjs → redirects-YZo_znWG.mjs} +4 -4
  232. package/dist/{redirects-q_cToaHv.mjs → redirects-ocRJmQHP.mjs} +23 -3
  233. package/dist/{registry-Cq3QRBW2.mjs → registry-CTkbIDB9.mjs} +38 -6
  234. package/dist/{review-requests-GYqjl2jO.mjs → review-requests-C0un5kdV.mjs} +1 -1
  235. package/dist/{review-requests-tPw8_pAO.mjs → review-requests-gGMyYYhy.mjs} +1 -1
  236. package/dist/{runner-DTfG5v0G.mjs → runner-B-tbV751.mjs} +233 -193
  237. package/dist/{runner-Cnz4dl0f.d.mts → runner-D4FL9usy.d.mts} +1 -1
  238. package/dist/{runtime-Cd-kjPfN.d.mts → runtime-DEWQpZ-4.d.mts} +154 -22
  239. package/dist/runtime.d.mts +8 -8
  240. package/dist/runtime.mjs +2 -2
  241. package/dist/schema-B6zyB-Xn.mjs +8 -0
  242. package/dist/{search-BAiFLz81.mjs → search-axGQ1KY3.mjs} +3 -3
  243. package/dist/{secrets-CPoFLJjm.mjs → secrets-062Izo8i.mjs} +1 -1
  244. package/dist/{sections-DsuIrFDC.mjs → sections-OLKgXL10.mjs} +2 -2
  245. package/dist/seed/index.d.mts +2 -2
  246. package/dist/seed/index.mjs +17 -17
  247. package/dist/seo/index.d.mts +1 -1
  248. package/dist/{seo-uMFBaR8G.mjs → seo-Cd45Po8L.mjs} +1 -1
  249. package/dist/{service-CifrxCru.mjs → service-Bwad8s5h.mjs} +1 -1
  250. package/dist/{settings-BYGdocdj.mjs → settings-lAHjaUit.mjs} +2 -2
  251. package/dist/{settings-DNRQuX3d.mjs → settings-yLjz_I4T.mjs} +4 -4
  252. package/dist/{setup-complete-4EiBS1E5.mjs → setup-complete--PradA4R.mjs} +1 -1
  253. package/dist/{site-activity-6x1JccoR.mjs → site-activity-D7Xyropw.mjs} +1 -1
  254. package/dist/{site-context-c1ZFa_OF.mjs → site-context-DaN9Z91j.mjs} +13 -13
  255. package/dist/{site-url-C-cu8Ff2.mjs → site-url-DpGZo9Z6.mjs} +1 -1
  256. package/dist/{taxonomies-faQVeMgj.mjs → taxonomies-CNOGeC-3.mjs} +9 -7
  257. package/dist/{taxonomies-CQFmkP5u.mjs → taxonomies-uXVEoQso.mjs} +3 -3
  258. package/dist/{taxonomy-BnH-6VsX.mjs → taxonomy-CBmkmMuU.mjs} +2 -2
  259. package/dist/{types-DEAQG87T.d.mts → types-CwawBUTa.d.mts} +1 -1
  260. package/dist/{types-B7_vSiPD.d.mts → types-DRIKLmJI.d.mts} +14 -2
  261. package/dist/{types-UGmU5sWx.d.mts → types-DSPGWjxO.d.mts} +1 -1
  262. package/dist/{types-Ck7-WoUD.mjs → types-DfuD0Afl.mjs} +9 -2
  263. package/dist/{types-DYKtk8f1.d.mts → types-eu5UDgHN.d.mts} +22 -0
  264. package/dist/ui/server-runtime.d.mts +58 -10
  265. package/dist/ui/server-runtime.mjs +97 -15
  266. package/dist/{user-CqZwN21P.mjs → user-DtNmjNYt.mjs} +15 -1
  267. package/dist/{validate-CK4a1sIF.mjs → validate-7SYRbz2f.mjs} +5 -2
  268. package/dist/{validate-BJuG-ISL.d.mts → validate-BMs11tan.d.mts} +10 -2
  269. package/dist/version-xlzMSXF2.mjs +6 -0
  270. package/dist/{widgets-CdDvF4fV.mjs → widgets-DR8EHuRO.mjs} +1 -1
  271. package/dist/{wordpress-slugs-B6Gw9q3Q.mjs → wordpress-slugs-Dvhxh4cl.mjs} +1 -1
  272. package/dist/{zod-generator-D1ROBNuC.mjs → zod-generator-BS9-umbk.mjs} +3 -2
  273. package/package.json +5 -5
  274. package/src/components/DinewayImage.astro +23 -5
  275. package/src/components/Image.astro +19 -3
  276. package/dist/schema-DmHMWnSA.mjs +0 -8
  277. package/dist/version-Cb1tZ6s_.mjs +0 -6
  278. /package/dist/{allowed-origins-QirBXiDj.mjs → allowed-origins-DhipQNLb.mjs} +0 -0
  279. /package/dist/{challenge-store-DFxX0_15.mjs → challenge-store-CRSz-Xim.mjs} +0 -0
  280. /package/dist/{entity-aliases-uOrKvlPg.mjs → entity-aliases-Egjmqc7I.mjs} +0 -0
  281. /package/dist/{experimental-workflows-CSMffP6q.mjs → experimental-workflows-Dh4DUoD_.mjs} +0 -0
  282. /package/dist/{mode-CZqCF9dZ.mjs → mode-CpyEz8pe.mjs} +0 -0
  283. /package/dist/{options-BF11H_FD.mjs → options-BvJoSSJR.mjs} +0 -0
  284. /package/dist/{patterns-D9iDO3j8.mjs → patterns-r-0n824Y.mjs} +0 -0
  285. /package/dist/{provider-loader-B5PMjpN7.d.mts → provider-loader-9it4vd6L.d.mts} +0 -0
  286. /package/dist/{request-cache-w5cj5itT.mjs → request-cache-CYMbwZc6.mjs} +0 -0
  287. /package/dist/{transaction-D0FOsb3X.mjs → transaction-CShMWIej.mjs} +0 -0
  288. /package/dist/{transport-DidKKxvW.d.mts → transport-BnsNxh2l.d.mts} +0 -0
  289. /package/dist/{types-DbZhHtqS.mjs → types-BO8TGjS8.mjs} +0 -0
@@ -1,30 +1,30 @@
1
1
  #!/usr/bin/env node
2
- import { a as __exportAll, i as runMigrations, n as getMigrationStatus, t as getMigrationFingerprint } from "../runner-DTfG5v0G.mjs";
2
+ import { a as __exportAll, i as runMigrations, n as getMigrationStatus, t as getMigrationFingerprint } from "../runner-B-tbV751.mjs";
3
3
  import { t as createDatabase } from "../connection-CiJWiWya.mjs";
4
4
  import { t as validateIdentifier } from "../validate-VPnKoIzW.mjs";
5
5
  import { l as listTablesLike } from "../dialect-helpers-fk43GbDb.mjs";
6
- import { r as isI18nEnabled } from "../config-CVssduLe.mjs";
6
+ import { n as getI18nConfig, r as isI18nEnabled } from "../config-CVssduLe.mjs";
7
7
  import { n as slugify } from "../slugify-BzGxlOFx.mjs";
8
- import { t as ContentRepository } from "../content-BfyjOiMi.mjs";
8
+ import { t as ContentRepository } from "../content-QaryevFO.mjs";
9
9
  import { i as encodeBase64url } from "../base64-C1Q9yr0B.mjs";
10
- import "../types-Ck7-WoUD.mjs";
11
- import { t as MediaRepository } from "../media-DhBwiCYR.mjs";
12
- import { t as TaxonomyRepository } from "../taxonomy-BnH-6VsX.mjs";
13
- import { t as OptionsRepository } from "../options-BF11H_FD.mjs";
14
- import "../redirect-BqFMj67n.mjs";
15
- import "../request-cache-w5cj5itT.mjs";
16
- import "../byline-registry-CL8BxPPp.mjs";
17
- import { t as BylineRepository } from "../byline-CXQcMsBu.mjs";
18
- import "../fts-manager-EHY2Kes9.mjs";
19
- import { n as SchemaRegistry } from "../registry-Cq3QRBW2.mjs";
20
- import { a as isMissingTableError } from "../loader-Y0QvC_QO.mjs";
21
- import "../settings-DNRQuX3d.mjs";
22
- import { n as VERSION } from "../version-Cb1tZ6s_.mjs";
10
+ import "../types-DfuD0Afl.mjs";
11
+ import { t as MediaRepository } from "../media-DUAjMfvR.mjs";
12
+ import { t as TaxonomyRepository } from "../taxonomy-CBmkmMuU.mjs";
13
+ import { t as OptionsRepository } from "../options-BvJoSSJR.mjs";
14
+ import "../redirect-C2zXRj3c.mjs";
15
+ import "../request-cache-CYMbwZc6.mjs";
16
+ import "../byline-registry-CUSvkasJ.mjs";
17
+ import { t as BylineRepository } from "../byline-1ntDwv8c.mjs";
18
+ import "../fts-manager-CIZlScg5.mjs";
19
+ import { n as SchemaRegistry } from "../registry-CTkbIDB9.mjs";
20
+ import { a as isMissingTableError } from "../loader-tg63WSY2.mjs";
21
+ import "../settings-yLjz_I4T.mjs";
22
+ import { n as VERSION } from "../version-xlzMSXF2.mjs";
23
23
  import { i as pluginManifestSchema } from "../manifest-schema-qh2P7RDX.mjs";
24
24
  import "../ssrf-DiKqWd3N.mjs";
25
- import { t as validateSeed } from "../validate-CK4a1sIF.mjs";
26
- import { t as applySeed } from "../apply-BpRBCqUt.mjs";
27
- import { n as fingerprintKey, r as generateEncryptionKey, t as DinewaySecretsError } from "../secrets-CPoFLJjm.mjs";
25
+ import { t as validateSeed } from "../validate-7SYRbz2f.mjs";
26
+ import { t as applySeed } from "../apply-CX3no7XE.mjs";
27
+ import { n as fingerprintKey, r as generateEncryptionKey, t as DinewaySecretsError } from "../secrets-062Izo8i.mjs";
28
28
  import { createHeaderAwareFetch, customHeadersInterceptor, isRedirectResponse, resolveCustomHeaders } from "../client/external-auth-headers.mjs";
29
29
  import { o as convertDataForRead } from "../transport-LSdZVXHF.mjs";
30
30
  import { DinewayClient } from "../client/index.mjs";
@@ -2027,14 +2027,14 @@ function isDinewayDependencySpecCompatible(dependencySpec, cliVersion) {
2027
2027
  if (LOCAL_PACKAGE_SPEC_PATTERN.test(spec)) return true;
2028
2028
  return spec.includes(cliVersion);
2029
2029
  }
2030
- async function assertProjectDinewayRuntimeCompatible(cwd, cliVersion = VERSION) {
2030
+ async function warnProjectDinewayRuntimeMismatch(cwd, cliVersion = VERSION) {
2031
2031
  if (!SEMVER_VERSION_PATTERN.test(cliVersion)) return;
2032
2032
  const pkg = await readProjectPackage(cwd);
2033
2033
  if (!pkg) return;
2034
2034
  const dependencySpec = getDependencySpec(pkg, DINEWAY_PACKAGE_NAME);
2035
2035
  if (!dependencySpec) return;
2036
2036
  if (isDinewayDependencySpecCompatible(dependencySpec, cliVersion)) return;
2037
- throw new Error(`Forgeway deploy requires the deployed Dineway runtime to match the deploy CLI because the CLI initializes the managed database before the site starts. The CLI is ${DINEWAY_PACKAGE_NAME}@${cliVersion}, but package.json declares ${DINEWAY_PACKAGE_NAME}: ${JSON.stringify(dependencySpec)}. Update package.json and reinstall with your package manager, for example: ${DINEWAY_PACKAGE_NAME}@^${cliVersion}. To deploy with the current manifest instead, run the matching CLI version.`);
2037
+ consola.warn(`Forgeway deploy finds that the package.json dineway runtime version does not match the deploy CLI. The CLI initializes the managed database before the site starts, so a mismatch can cause later migration or startup failures. The CLI is ${DINEWAY_PACKAGE_NAME}@${cliVersion}, but package.json declares ${DINEWAY_PACKAGE_NAME}: ${JSON.stringify(dependencySpec)}. If database migration fails, update package.json and reinstall with your package manager, for example: ${DINEWAY_PACKAGE_NAME}@^${cliVersion}. To keep deploying the current manifest, run the matching CLI version instead.`);
2038
2038
  }
2039
2039
  function explicitPublisherEmail(options) {
2040
2040
  return options.email ?? getEnv("DINEWAY_EMAIL") ?? getEnv("FORGEWAY_EMAIL");
@@ -2821,6 +2821,7 @@ async function runDinewayInitialization(options) {
2821
2821
  seedResult = await applySeed(db, seed, {
2822
2822
  includeContent: true,
2823
2823
  onConflict: "skip",
2824
+ repairSchema: true,
2824
2825
  storage: new LocalStorage({
2825
2826
  directory: uploadsDir,
2826
2827
  baseUrl: "/_dineway/api/media/file"
@@ -3108,7 +3109,7 @@ async function deployForgeway(cwd, options, deps = {}) {
3108
3109
  if (!(await stat(sourceDir).catch(() => null))?.isDirectory()) throw new Error(`"${sourceDir}" is not a valid directory.`);
3109
3110
  if (EXCLUDE_PATTERNS.includes(basename(sourceDir))) throw new Error(`"${basename(sourceDir)}" is an excluded directory and cannot be deployed.`);
3110
3111
  const database = parseDatabaseMode(options.database);
3111
- if (database !== "none") await assertProjectDinewayRuntimeCompatible(cwd, deps.dinewayVersion ?? VERSION);
3112
+ if (database !== "none") await warnProjectDinewayRuntimeMismatch(cwd, deps.dinewayVersion ?? VERSION);
3112
3113
  await ensureProjectGitignoreDinewayLocalState(cwd);
3113
3114
  const verbose = isVerboseDeploy(options);
3114
3115
  const project = await resolveProjectContext(cwd, options, deps);
@@ -4209,7 +4210,8 @@ async function exportSeed(db, withContent) {
4209
4210
  };
4210
4211
  seed.settings = await exportSettings(db);
4211
4212
  seed.collections = await exportCollections(db);
4212
- const i18nEnabled = await detectI18nEnabled(db, seed.collections);
4213
+ const { i18nEnabled, defaultLocale } = await detectLocaleInfo(db, seed.collections);
4214
+ if (defaultLocale) seed.defaultLocale = defaultLocale;
4213
4215
  seed.taxonomies = await exportTaxonomies(db, i18nEnabled);
4214
4216
  seed.menus = await exportMenus(db, i18nEnabled);
4215
4217
  seed.widgetAreas = await exportWidgetAreas(db);
@@ -4251,34 +4253,43 @@ async function exportBylines(db) {
4251
4253
  };
4252
4254
  }
4253
4255
  /**
4254
- * Determine whether export should preserve locale-suffixed seed ids.
4256
+ * Determine locale-awareness and the data's default locale for the export.
4255
4257
  *
4256
4258
  * Runtime i18n config is initialized by middleware, but `dineway export-seed`
4257
4259
  * runs in a CLI process. When the runtime flag is unset, derive multi-locale
4258
4260
  * status from stored rows instead: a project is multi-locale when any
4259
4261
  * i18n-aware table contains more than one distinct locale.
4262
+ *
4263
+ * `defaultLocale` self-describes single-locale data so a non-`en` project
4264
+ * survives an export-seed -> seed round-trip outside the Astro runtime.
4260
4265
  */
4261
- async function detectI18nEnabled(db, collections) {
4262
- if (isI18nEnabled()) return true;
4266
+ async function detectLocaleInfo(db, collections) {
4267
+ const config = getI18nConfig();
4268
+ if (isI18nEnabled() && config) return {
4269
+ i18nEnabled: true,
4270
+ defaultLocale: config.defaultLocale
4271
+ };
4263
4272
  const locales = /* @__PURE__ */ new Set();
4264
4273
  const collectDistinctLocales = async (tableRef) => {
4265
4274
  const result = await sql`
4266
4275
  SELECT DISTINCT locale FROM ${tableRef}
4267
4276
  `.execute(db);
4268
4277
  for (const row of result.rows) if (row.locale) locales.add(row.locale);
4269
- return locales.size > 1;
4270
4278
  };
4271
- if (await collectDistinctLocales(sql.ref("_dineway_taxonomy_defs"))) return true;
4272
- if (await collectDistinctLocales(sql.ref("_dineway_menus"))) return true;
4279
+ await collectDistinctLocales(sql.ref("_dineway_taxonomy_defs"));
4280
+ await collectDistinctLocales(sql.ref("_dineway_menus"));
4273
4281
  for (const collection of collections) {
4274
4282
  validateIdentifier(collection.slug, "collection slug");
4275
4283
  try {
4276
- if (await collectDistinctLocales(sql.ref(`ec_${collection.slug}`))) return true;
4284
+ await collectDistinctLocales(sql.ref(`ec_${collection.slug}`));
4277
4285
  } catch (error) {
4278
4286
  if (!isMissingTableError(error)) throw error;
4279
4287
  }
4280
4288
  }
4281
- return false;
4289
+ return {
4290
+ i18nEnabled: locales.size > 1,
4291
+ defaultLocale: locales.size === 1 ? [...locales][0] : void 0
4292
+ };
4282
4293
  }
4283
4294
  /**
4284
4295
  * Export site settings
@@ -1,4 +1,4 @@
1
- import { t as Interceptor } from "../transport-DidKKxvW.mjs";
1
+ import { t as Interceptor } from "../transport-BnsNxh2l.mjs";
2
2
 
3
3
  //#region src/client/external-auth-headers.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { a as tokenInterceptor, i as devBypassInterceptor, n as createTransport, r as csrfInterceptor, t as Interceptor } from "../transport-DidKKxvW.mjs";
1
+ import { a as tokenInterceptor, i as devBypassInterceptor, n as createTransport, r as csrfInterceptor, t as Interceptor } from "../transport-BnsNxh2l.mjs";
2
2
 
3
3
  //#region src/client/portable-text.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { n as decodeCursor, r as encodeCursor } from "./types-Ck7-WoUD.mjs";
1
+ import { i as encodeCursor, r as decodeCursor } from "./types-DfuD0Afl.mjs";
2
2
  import { sql } from "kysely";
3
3
  import { ulid } from "ulidx";
4
4
 
@@ -1,4 +1,4 @@
1
- import { t as CommentRepository } from "./comment-ogMaF1gk.mjs";
1
+ import { t as CommentRepository } from "./comment-CXDOQ93N.mjs";
2
2
 
3
3
  //#region src/api/handlers/comments.ts
4
4
  async function handleCommentList(db, collection, contentId, options = {}) {
@@ -1,7 +1,7 @@
1
- import { a as __exportAll } from "./runner-DTfG5v0G.mjs";
1
+ import { a as __exportAll } from "./runner-B-tbV751.mjs";
2
2
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
3
3
  import { n as slugify } from "./slugify-BzGxlOFx.mjs";
4
- import { n as decodeCursor, r as encodeCursor, t as DinewayValidationError } from "./types-Ck7-WoUD.mjs";
4
+ import { i as encodeCursor, n as ScheduledNotDueError, r as decodeCursor, t as DinewayValidationError } from "./types-DfuD0Afl.mjs";
5
5
  import { sql } from "kysely";
6
6
  import { monotonicFactory, ulid } from "ulidx";
7
7
 
@@ -109,6 +109,11 @@ var RevisionRepository = class {
109
109
  var content_exports = /* @__PURE__ */ __exportAll({ ContentRepository: () => ContentRepository });
110
110
  const ULID_PATTERN = /^[0-9A-Z]{26}$/;
111
111
  const LIKE_WILDCARD_RE = /[\\%_]/g;
112
+ const DATE_FILTER_COLUMNS = {
113
+ createdAt: "created_at",
114
+ updatedAt: "updated_at",
115
+ publishedAt: "published_at"
116
+ };
112
117
  /**
113
118
  * System columns that exist in every ec_* table
114
119
  */
@@ -408,6 +413,7 @@ var ContentRepository = class {
408
413
  if (options.where?.authorId) query = query.where("author_id", "=", options.where.authorId);
409
414
  if (options.where?.locale) query = query.where("locale", "=", options.where.locale);
410
415
  query = this.applySearchFilter(query, options.where);
416
+ query = this.applyDateFilter(query, options.where);
411
417
  if (options.cursor) {
412
418
  const decoded = decodeCursor(options.cursor);
413
419
  if (decoded) {
@@ -548,10 +554,18 @@ var ContentRepository = class {
548
554
  if (where?.authorId) query = query.where("author_id", "=", where.authorId);
549
555
  if (where?.locale) query = query.where("locale", "=", where.locale);
550
556
  query = this.applySearchFilter(query, where);
557
+ query = this.applyDateFilter(query, where);
551
558
  const result = await query.executeTakeFirst();
552
559
  return Number(result?.count || 0);
553
560
  }
554
561
  /**
562
+ * Distinct, non-null author IDs across non-trashed content in a collection.
563
+ */
564
+ async findDistinctAuthorIds(type) {
565
+ const tableName = getTableName(type);
566
+ return (await this.db.selectFrom(tableName).select("author_id").distinct().where("deleted_at", "is", null).where("author_id", "is not", null).execute()).map((row) => row.author_id).filter((id) => id !== null);
567
+ }
568
+ /**
555
569
  * Apply an optional case-insensitive substring search across handler-resolved
556
570
  * columns. User input is treated literally by escaping LIKE wildcards.
557
571
  */
@@ -565,6 +579,18 @@ var ContentRepository = class {
565
579
  return eb(sql`lower(${sql.ref(column)})`, "like", sql`lower(${pattern}) escape '\\'`);
566
580
  })));
567
581
  }
582
+ applyDateFilter(query, where) {
583
+ const filter = where?.dateFilter;
584
+ if (!filter) return query;
585
+ const column = DATE_FILTER_COLUMNS[filter.field];
586
+ if (!column) throw new DinewayValidationError(`Invalid date filter field: ${filter.field}`);
587
+ const { from, to } = filter;
588
+ if (!from && !to) return query;
589
+ let next = query;
590
+ if (from) next = next.where((eb) => eb(column, ">=", from));
591
+ if (to) next = next.where((eb) => eb(column, "<=", to));
592
+ return next;
593
+ }
568
594
  async getStats(type) {
569
595
  const tableName = getTableName(type);
570
596
  const result = await this.db.selectFrom(tableName).select((eb) => [
@@ -637,15 +663,17 @@ var ContentRepository = class {
637
663
  * This covers both draft-scheduled posts (status='scheduled') and
638
664
  * published posts with scheduled draft changes (status='published').
639
665
  */
640
- async findReadyToPublish(type) {
666
+ async findReadyToPublish(type, limit) {
641
667
  const tableName = getTableName(type);
642
668
  const now = (/* @__PURE__ */ new Date()).toISOString();
669
+ const limitClause = typeof limit === "number" && Number.isInteger(limit) && limit > 0 ? sql`LIMIT ${limit}` : sql``;
643
670
  return (await sql`
644
671
  SELECT * FROM ${sql.ref(tableName)}
645
672
  WHERE scheduled_at IS NOT NULL
646
673
  AND scheduled_at <= ${now}
647
674
  AND deleted_at IS NULL
648
675
  ORDER BY scheduled_at ASC
676
+ ${limitClause}
649
677
  `.execute(this.db)).rows.map((row) => this.mapRow(type, row));
650
678
  }
651
679
  /**
@@ -671,52 +699,87 @@ var ContentRepository = class {
671
699
  * `publishedAt` overrides the publication timestamp. If omitted, an existing
672
700
  * `published_at` is preserved and first publish falls back to the current time.
673
701
  */
674
- async publish(type, id, publishedAt) {
702
+ async publish(type, id, publishedAt, requireScheduledDue = false) {
675
703
  const tableName = getTableName(type);
676
704
  const now = (/* @__PURE__ */ new Date()).toISOString();
677
705
  const existing = await this.findById(type, id);
678
706
  if (!existing) throw new DinewayValidationError("Content item not found");
679
- const revisionRepo = new RevisionRepository(this.db);
680
- let revisionToPublish = existing.draftRevisionId || existing.liveRevisionId;
681
- if (!revisionToPublish) revisionToPublish = (await revisionRepo.create({
682
- collection: type,
683
- entryId: id,
684
- data: existing.data
685
- })).id;
686
- const revision = await revisionRepo.findById(revisionToPublish);
687
- if (revision) {
688
- await this.syncDataColumns(type, id, revision.data);
689
- if (typeof revision.data._slug === "string") await sql`
690
- UPDATE ${sql.ref(tableName)}
691
- SET slug = ${revision.data._slug}
692
- WHERE id = ${id}
693
- `.execute(this.db);
694
- }
695
- if (publishedAt !== void 0) await sql`
696
- UPDATE ${sql.ref(tableName)}
697
- SET live_revision_id = ${revisionToPublish},
698
- draft_revision_id = NULL,
699
- status = 'published',
700
- scheduled_at = NULL,
701
- published_at = ${publishedAt},
702
- updated_at = ${now}
703
- WHERE id = ${id}
704
- AND deleted_at IS NULL
705
- `.execute(this.db);
706
- else await sql`
707
+ let claimedScheduledAt = null;
708
+ let claimedUpdatedAt = null;
709
+ if (requireScheduledDue) {
710
+ const claim = await sql`
707
711
  UPDATE ${sql.ref(tableName)}
708
- SET live_revision_id = ${revisionToPublish},
709
- draft_revision_id = NULL,
710
- status = 'published',
711
- scheduled_at = NULL,
712
- published_at = COALESCE(published_at, ${now}),
712
+ SET scheduled_at = NULL,
713
713
  updated_at = ${now}
714
714
  WHERE id = ${id}
715
+ AND scheduled_at IS NOT NULL
716
+ AND scheduled_at <= ${now}
715
717
  AND deleted_at IS NULL
716
718
  `.execute(this.db);
717
- const updated = await this.findById(type, id);
718
- if (!updated) throw new Error("Content not found");
719
- return updated;
719
+ if (Number(claim.numAffectedRows ?? 0) === 0) throw new ScheduledNotDueError();
720
+ claimedScheduledAt = existing.scheduledAt;
721
+ claimedUpdatedAt = existing.updatedAt;
722
+ }
723
+ let publishCommitted = false;
724
+ try {
725
+ const revisionRepo = new RevisionRepository(this.db);
726
+ let revisionToPublish = existing.draftRevisionId || existing.liveRevisionId;
727
+ if (!revisionToPublish) revisionToPublish = (await revisionRepo.create({
728
+ collection: type,
729
+ entryId: id,
730
+ data: existing.data
731
+ })).id;
732
+ const revision = await revisionRepo.findById(revisionToPublish);
733
+ if (revision) {
734
+ await this.syncDataColumns(type, id, revision.data);
735
+ if (typeof revision.data._slug === "string") await sql`
736
+ UPDATE ${sql.ref(tableName)}
737
+ SET slug = ${revision.data._slug}
738
+ WHERE id = ${id}
739
+ `.execute(this.db);
740
+ }
741
+ if (publishedAt !== void 0) await sql`
742
+ UPDATE ${sql.ref(tableName)}
743
+ SET live_revision_id = ${revisionToPublish},
744
+ draft_revision_id = NULL,
745
+ status = 'published',
746
+ scheduled_at = NULL,
747
+ published_at = ${publishedAt},
748
+ updated_at = ${now}
749
+ WHERE id = ${id}
750
+ AND deleted_at IS NULL
751
+ `.execute(this.db);
752
+ else await sql`
753
+ UPDATE ${sql.ref(tableName)}
754
+ SET live_revision_id = ${revisionToPublish},
755
+ draft_revision_id = NULL,
756
+ status = 'published',
757
+ scheduled_at = NULL,
758
+ published_at = COALESCE(published_at, ${now}),
759
+ updated_at = ${now}
760
+ WHERE id = ${id}
761
+ AND deleted_at IS NULL
762
+ `.execute(this.db);
763
+ publishCommitted = true;
764
+ const updated = await this.findById(type, id);
765
+ if (!updated) throw new Error("Content not found");
766
+ return updated;
767
+ } catch (error) {
768
+ if (requireScheduledDue && claimedScheduledAt && !publishCommitted) try {
769
+ await sql`
770
+ UPDATE ${sql.ref(tableName)}
771
+ SET scheduled_at = ${claimedScheduledAt},
772
+ updated_at = ${claimedUpdatedAt ?? now}
773
+ WHERE id = ${id}
774
+ AND scheduled_at IS NULL
775
+ AND deleted_at IS NULL
776
+ AND (status != 'published' OR draft_revision_id IS NOT NULL)
777
+ `.execute(this.db);
778
+ } catch (restoreError) {
779
+ console.error(`[content] Failed to restore schedule for ${type}/${id} after publish failure:`, restoreError);
780
+ }
781
+ throw error;
782
+ }
720
783
  }
721
784
  /**
722
785
  * Stage an existing revision as the draft for a content item.
@@ -1,12 +1,12 @@
1
1
  import { n as validateJsonFieldName } from "./validate-VPnKoIzW.mjs";
2
2
  import { c as jsonExtractExpr } from "./dialect-helpers-fk43GbDb.mjs";
3
- import { t as ContentRepository } from "./content-BfyjOiMi.mjs";
4
- import { n as decodeCursor, r as encodeCursor } from "./types-Ck7-WoUD.mjs";
5
- import { t as MediaRepository } from "./media-DhBwiCYR.mjs";
6
- import { t as UserRepository } from "./user-CqZwN21P.mjs";
7
- import { t as OptionsRepository } from "./options-BF11H_FD.mjs";
8
- import { t as withTransaction } from "./transaction-D0FOsb3X.mjs";
9
- import { t as SeoRepository } from "./seo-uMFBaR8G.mjs";
3
+ import { t as ContentRepository } from "./content-QaryevFO.mjs";
4
+ import { i as encodeCursor, r as decodeCursor } from "./types-DfuD0Afl.mjs";
5
+ import { t as MediaRepository } from "./media-DUAjMfvR.mjs";
6
+ import { t as UserRepository } from "./user-DtNmjNYt.mjs";
7
+ import { t as OptionsRepository } from "./options-BvJoSSJR.mjs";
8
+ import { t as withTransaction } from "./transaction-CShMWIej.mjs";
9
+ import { t as SeoRepository } from "./seo-Cd45Po8L.mjs";
10
10
  import { a as validateExternalUrl, i as stripCredentialHeaders, t as SsrfError } from "./ssrf-DiKqWd3N.mjs";
11
11
  import { t as CronAccessImpl } from "./cron-DxCAU_Sn.mjs";
12
12
  import { sql } from "kysely";
@@ -1,5 +1,5 @@
1
- import { a as ContextRepository, i as parseSiteBriefingScope, n as SiteBriefingError } from "./briefing-BFEWeJtR.mjs";
2
- import { b as toPublicContextEntry, x as toPublicContextEntryPage, y as toPublicContextDiff } from "./site-context-c1ZFa_OF.mjs";
1
+ import { a as ContextRepository, i as parseSiteBriefingScope, n as SiteBriefingError } from "./briefing-gKWiGLt1.mjs";
2
+ import { b as toPublicContextEntry, x as toPublicContextEntryPage, y as toPublicContextDiff } from "./site-context-DaN9Z91j.mjs";
3
3
 
4
4
  //#region src/api/handlers/context.ts
5
5
  async function handleContextEntryList(db, input = {}) {
@@ -1,4 +1,4 @@
1
- import { T as resolveActorIdentity, p as logSiteActivitySafely } from "./activity-events-CNk3clTT.mjs";
1
+ import { T as resolveActorIdentity, p as logSiteActivitySafely } from "./activity-events-C9u37D5z.mjs";
2
2
 
3
3
  //#region src/api/context-route-helpers.ts
4
4
  function resolveContextRouteActor(locals) {
@@ -1,8 +1,8 @@
1
1
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
2
- import { t as ContentRepository } from "./content-BfyjOiMi.mjs";
3
- import { t as MediaRepository } from "./media-DhBwiCYR.mjs";
4
- import { t as UserRepository } from "./user-CqZwN21P.mjs";
5
- import { t as ReviewRequestRepository } from "./review-requests-tPw8_pAO.mjs";
2
+ import { t as ContentRepository } from "./content-QaryevFO.mjs";
3
+ import { t as MediaRepository } from "./media-DUAjMfvR.mjs";
4
+ import { t as UserRepository } from "./user-DtNmjNYt.mjs";
5
+ import { t as ReviewRequestRepository } from "./review-requests-gGMyYYhy.mjs";
6
6
  import { sql } from "kysely";
7
7
 
8
8
  //#region src/api/handlers/dashboard.ts
@@ -1,4 +1,4 @@
1
- import "../types-DYKtk8f1.mjs";
1
+ import "../types-eu5UDgHN.mjs";
2
2
  import { a as SqliteConfig, c as sqlite, i as PostgresConfig, n as DatabaseDialectType, o as libsql, r as LibsqlConfig, s as postgres, t as DatabaseDescriptor } from "../adapters-OQCImOL7.mjs";
3
- import { i as runMigrations, n as getMigrationStatus, r as rollbackMigration, t as MigrationStatus } from "../runner-Cnz4dl0f.mjs";
3
+ import { i as runMigrations, n as getMigrationStatus, r as rollbackMigration, t as MigrationStatus } from "../runner-D4FL9usy.mjs";
4
4
  export { type DatabaseDescriptor, type DatabaseDialectType, type LibsqlConfig, type MigrationStatus, type PostgresConfig, type SqliteConfig, getMigrationStatus, libsql, postgres, rollbackMigration, runMigrations, sqlite };
package/dist/db/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { i as runMigrations, n as getMigrationStatus, r as rollbackMigration } from "../runner-DTfG5v0G.mjs";
1
+ import { i as runMigrations, n as getMigrationStatus, r as rollbackMigration } from "../runner-B-tbV751.mjs";
2
2
  import "../dialect-helpers-fk43GbDb.mjs";
3
3
 
4
4
  //#region src/db/adapters.ts
@@ -13,7 +13,8 @@ const defaultSeed = {
13
13
  supports: [
14
14
  "drafts",
15
15
  "revisions",
16
- "search"
16
+ "search",
17
+ "seo"
17
18
  ],
18
19
  fields: [
19
20
  {
@@ -48,7 +49,8 @@ const defaultSeed = {
48
49
  supports: [
49
50
  "drafts",
50
51
  "revisions",
51
- "search"
52
+ "search",
53
+ "seo"
52
54
  ],
53
55
  fields: [{
54
56
  slug: "title",
@@ -1,7 +1,7 @@
1
- import { t as withTransaction } from "./transaction-D0FOsb3X.mjs";
2
- import { a as filterExperimentalSiteContextWorkflowScopes, i as experimentalSiteContextWorkflowsEnabled, o as getExperimentalSiteContextWorkflowScopesDisabledMessage, r as disabledExperimentalSiteContextWorkflowScopes } from "./experimental-workflows-CSMffP6q.mjs";
1
+ import { t as withTransaction } from "./transaction-CShMWIej.mjs";
2
+ import { a as filterExperimentalSiteContextWorkflowScopes, i as experimentalSiteContextWorkflowsEnabled, o as getExperimentalSiteContextWorkflowScopesDisabledMessage, r as disabledExperimentalSiteContextWorkflowScopes } from "./experimental-workflows-Dh4DUoD_.mjs";
3
3
  import { a as hashApiToken, n as TOKEN_PREFIXES, r as generatePrefixedToken, t as ALL_VALID_SCOPES } from "./api-tokens-CYUoFGo7.mjs";
4
- import { o as lookupOAuthClient } from "./oauth-clients-Du-V0fEm.mjs";
4
+ import { o as lookupOAuthClient } from "./oauth-clients-CzeMGyUU.mjs";
5
5
  import { t as lookupUserRoleAndStatus } from "./oauth-user-lookup-BFjWF8wK.mjs";
6
6
  import { clampScopes } from "@dineway-ai/auth";
7
7
  import { generateCodeVerifier } from "arctic";
@@ -1,4 +1,4 @@
1
- import { a as __exportAll } from "./runner-DTfG5v0G.mjs";
1
+ import { a as __exportAll } from "./runner-B-tbV751.mjs";
2
2
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
3
3
  import { s as isSqlite, u as tableExists } from "./dialect-helpers-fk43GbDb.mjs";
4
4
  import { sql } from "kysely";
@@ -1,5 +1,5 @@
1
- import { t as ExperimentalSiteContextWorkflowDisabledError } from "./experimental-workflows-CSMffP6q.mjs";
2
- import { n as HitlRequestService } from "./site-context-c1ZFa_OF.mjs";
1
+ import { t as ExperimentalSiteContextWorkflowDisabledError } from "./experimental-workflows-Dh4DUoD_.mjs";
2
+ import { n as HitlRequestService } from "./site-context-DaN9Z91j.mjs";
3
3
 
4
4
  //#region src/api/handlers/hitl-requests.ts
5
5
  const HITL_NOT_FOUND_RE = /not found/i;
@@ -1,7 +1,7 @@
1
1
  import { t as apiError } from "./error-DCSuUAZW.mjs";
2
- import { t as ExperimentalSiteContextWorkflowDisabledError } from "./experimental-workflows-CSMffP6q.mjs";
3
- import { t as WorkflowHitlCoordinator } from "./site-context-c1ZFa_OF.mjs";
4
- import { T as resolveActorIdentity, p as logSiteActivitySafely } from "./activity-events-CNk3clTT.mjs";
2
+ import { t as ExperimentalSiteContextWorkflowDisabledError } from "./experimental-workflows-Dh4DUoD_.mjs";
3
+ import { t as WorkflowHitlCoordinator } from "./site-context-DaN9Z91j.mjs";
4
+ import { T as resolveActorIdentity, p as logSiteActivitySafely } from "./activity-events-C9u37D5z.mjs";
5
5
  import { Role } from "@dineway-ai/auth";
6
6
 
7
7
  //#region src/api/hitl-route-helpers.ts
@@ -1,4 +1,4 @@
1
- import { t as Database } from "./types-DYKtk8f1.mjs";
1
+ import { t as Database } from "./types-eu5UDgHN.mjs";
2
2
  import { d as ImportSource, g as ProbeResult } from "./types-GaCtZ1k9.mjs";
3
3
  import { Kysely } from "kysely";
4
4
  import { Readable } from "node:stream";