dineway 0.1.49 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/dist/{activity-events-CwM7yxPW.mjs → activity-events-y6eT8UW6.mjs} +6 -38
  2. package/dist/actor-CrObAPV0.mjs +37 -0
  3. package/dist/after-BfniwgIf.mjs +9 -0
  4. package/dist/{allowed-origins-CyGnbgBd.mjs → allowed-origins-_oeyP6x-.mjs} +1 -1
  5. package/dist/api/route-utils.d.mts +10 -10
  6. package/dist/api/route-utils.mjs +16 -13
  7. package/dist/api/schemas/index.d.mts +2 -2
  8. package/dist/api/schemas/index.mjs +5 -4
  9. package/dist/{api-BMIxRIEN.mjs → api-ByrU2q-Z.mjs} +60 -36
  10. package/dist/{api-tokens-DtvdtIkm.mjs → api-tokens-CjVMQT-X.mjs} +6 -2
  11. package/dist/{apply-D_RlTYtC.mjs → apply-bZswmZPm.mjs} +117 -77
  12. package/dist/astro/image-endpoint.d.mts +7 -0
  13. package/dist/astro/image-endpoint.mjs +54 -0
  14. package/dist/astro/index.d.mts +35 -11
  15. package/dist/astro/index.mjs +157 -23
  16. package/dist/astro/integration/shims/use-sync-external-store-with-selector.js +71 -0
  17. package/dist/astro/integration/shims/use-sync-external-store.js +1 -0
  18. package/dist/astro/middleware/auth.d.mts +10 -10
  19. package/dist/astro/middleware/auth.mjs +42 -24
  20. package/dist/astro/middleware/redirect.mjs +13 -4
  21. package/dist/astro/middleware/request-context.mjs +8 -5
  22. package/dist/astro/middleware/seed.d.mts +1 -1
  23. package/dist/astro/middleware/seed.mjs +2 -2
  24. package/dist/astro/middleware/setup.mjs +1 -1
  25. package/dist/astro/middleware.mjs +333 -192
  26. package/dist/astro/routes/admin.astro +6 -1
  27. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +7 -6
  28. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +7 -6
  29. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +4 -4
  30. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
  31. package/dist/astro/routes/api/admin/briefing.mjs +21 -17
  32. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +4 -4
  33. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +9 -8
  34. package/dist/astro/routes/api/admin/byline-fields/index.mjs +9 -8
  35. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +9 -8
  36. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +17 -14
  37. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +17 -14
  38. package/dist/astro/routes/api/admin/bylines/index.mjs +17 -14
  39. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +14 -12
  40. package/dist/astro/routes/api/admin/comments/_id_.mjs +6 -5
  41. package/dist/astro/routes/api/admin/comments/bulk.mjs +11 -9
  42. package/dist/astro/routes/api/admin/comments/counts.mjs +6 -5
  43. package/dist/astro/routes/api/admin/comments/index.mjs +11 -9
  44. package/dist/astro/routes/api/admin/context/_id_/history.mjs +26 -24
  45. package/dist/astro/routes/api/admin/context/_id_/index.mjs +26 -24
  46. package/dist/astro/routes/api/admin/context/_id_/review.mjs +31 -28
  47. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +31 -28
  48. package/dist/astro/routes/api/admin/context/diff.mjs +30 -27
  49. package/dist/astro/routes/api/admin/context/index.mjs +31 -28
  50. package/dist/astro/routes/api/admin/context/stale.mjs +30 -27
  51. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +26 -24
  52. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +30 -27
  53. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +30 -27
  54. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +27 -25
  55. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +3 -3
  56. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  57. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  58. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +55 -51
  59. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +55 -51
  60. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +47 -43
  61. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +53 -49
  62. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +52 -48
  63. package/dist/astro/routes/api/admin/plugins/index.mjs +47 -43
  64. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
  65. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +46 -42
  66. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +52 -48
  67. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +46 -42
  68. package/dist/astro/routes/api/admin/plugins/updates.mjs +46 -42
  69. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +5 -5
  70. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +31 -27
  71. package/dist/astro/routes/api/admin/review-requests/index.mjs +10 -9
  72. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +46 -42
  73. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
  74. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +46 -42
  75. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -3
  76. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +2 -2
  77. package/dist/astro/routes/api/admin/users/_id_/index.mjs +8 -7
  78. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +4 -4
  79. package/dist/astro/routes/api/admin/users/index.mjs +7 -6
  80. package/dist/astro/routes/api/auth/dev-bypass.mjs +4 -4
  81. package/dist/astro/routes/api/auth/invite/accept.mjs +2 -2
  82. package/dist/astro/routes/api/auth/invite/complete.mjs +12 -11
  83. package/dist/astro/routes/api/auth/invite/index.mjs +9 -8
  84. package/dist/astro/routes/api/auth/invite/register-options.mjs +11 -10
  85. package/dist/astro/routes/api/auth/logout.mjs +2 -2
  86. package/dist/astro/routes/api/auth/magic-link/send.mjs +11 -10
  87. package/dist/astro/routes/api/auth/magic-link/verify.mjs +3 -3
  88. package/dist/astro/routes/api/auth/me.mjs +9 -8
  89. package/dist/astro/routes/api/auth/mode.mjs +1 -1
  90. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
  91. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  92. package/dist/astro/routes/api/auth/passkey/_id_.mjs +6 -5
  93. package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
  94. package/dist/astro/routes/api/auth/passkey/options.mjs +12 -11
  95. package/dist/astro/routes/api/auth/passkey/register/options.mjs +10 -9
  96. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +11 -10
  97. package/dist/astro/routes/api/auth/passkey/verify.mjs +11 -10
  98. package/dist/astro/routes/api/auth/setup-token/index.mjs +5 -5
  99. package/dist/astro/routes/api/auth/setup-token/verify.mjs +2 -2
  100. package/dist/astro/routes/api/auth/signup/complete.mjs +12 -11
  101. package/dist/astro/routes/api/auth/signup/request.mjs +11 -10
  102. package/dist/astro/routes/api/auth/signup/verify.mjs +2 -2
  103. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +15 -13
  104. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.d.mts +8 -0
  105. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +160 -0
  106. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
  107. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +5 -5
  108. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  109. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
  110. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +11 -10
  111. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +10 -9
  112. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
  113. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
  114. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +10 -9
  115. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +16 -14
  116. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
  117. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +5 -5
  118. package/dist/astro/routes/api/content/_collection_/_id_.mjs +10 -9
  119. package/dist/astro/routes/api/content/_collection_/authors.mjs +2 -2
  120. package/dist/astro/routes/api/content/_collection_/index.mjs +10 -9
  121. package/dist/astro/routes/api/content/_collection_/trash.mjs +7 -6
  122. package/dist/astro/routes/api/dashboard.mjs +9 -8
  123. package/dist/astro/routes/api/dev/emails.mjs +2 -2
  124. package/dist/astro/routes/api/health.mjs +1 -1
  125. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  126. package/dist/astro/routes/api/import/probe.mjs +22 -10
  127. package/dist/astro/routes/api/import/wordpress/analyze.mjs +9 -6
  128. package/dist/astro/routes/api/import/wordpress/execute.d.mts +19 -1
  129. package/dist/astro/routes/api/import/wordpress/execute.mjs +84 -37
  130. package/dist/astro/routes/api/import/wordpress/media.d.mts +13 -1
  131. package/dist/astro/routes/api/import/wordpress/media.mjs +19 -13
  132. package/dist/astro/routes/api/import/wordpress/prepare.mjs +35 -32
  133. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +18 -1
  134. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +120 -100
  135. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  136. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +24 -12
  137. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +56 -2
  138. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +283 -55
  139. package/dist/astro/routes/api/manifest.mjs +14 -5
  140. package/dist/astro/routes/api/mcp.mjs +265 -69
  141. package/dist/astro/routes/api/media/_id_/confirm.mjs +38 -10
  142. package/dist/astro/routes/api/media/_id_.mjs +11 -7
  143. package/dist/astro/routes/api/media/file/_...key_.mjs +1 -1
  144. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
  145. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
  146. package/dist/astro/routes/api/media/providers/index.mjs +2 -2
  147. package/dist/astro/routes/api/media/upload-url.mjs +11 -10
  148. package/dist/astro/routes/api/media.mjs +27 -34
  149. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +31 -28
  150. package/dist/astro/routes/api/menus/_name_/items.mjs +31 -28
  151. package/dist/astro/routes/api/menus/_name_/reorder.mjs +31 -28
  152. package/dist/astro/routes/api/menus/_name_/translations.mjs +31 -28
  153. package/dist/astro/routes/api/menus/_name_.mjs +31 -28
  154. package/dist/astro/routes/api/menus/index.mjs +31 -28
  155. package/dist/astro/routes/api/oauth/authorize.mjs +7 -7
  156. package/dist/astro/routes/api/oauth/device/authorize.mjs +6 -6
  157. package/dist/astro/routes/api/oauth/device/code.mjs +9 -9
  158. package/dist/astro/routes/api/oauth/device/token.mjs +8 -8
  159. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  160. package/dist/astro/routes/api/oauth/token/refresh.mjs +6 -6
  161. package/dist/astro/routes/api/oauth/token/revoke.mjs +6 -6
  162. package/dist/astro/routes/api/oauth/token.mjs +6 -6
  163. package/dist/astro/routes/api/openapi.json.mjs +4 -3
  164. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +30 -30
  165. package/dist/astro/routes/api/redirects/404s/index.mjs +11 -10
  166. package/dist/astro/routes/api/redirects/404s/summary.mjs +11 -10
  167. package/dist/astro/routes/api/redirects/_id_.mjs +32 -29
  168. package/dist/astro/routes/api/redirects/index.mjs +32 -29
  169. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
  170. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +2 -2
  171. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +47 -43
  172. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +47 -43
  173. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +47 -43
  174. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +47 -43
  175. package/dist/astro/routes/api/schema/collections/index.mjs +47 -43
  176. package/dist/astro/routes/api/schema/index.mjs +13 -14
  177. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +46 -42
  178. package/dist/astro/routes/api/schema/orphans/index.mjs +46 -42
  179. package/dist/astro/routes/api/search/enable.mjs +11 -10
  180. package/dist/astro/routes/api/search/index.mjs +10 -9
  181. package/dist/astro/routes/api/search/rebuild.mjs +11 -10
  182. package/dist/astro/routes/api/search/stats.mjs +6 -6
  183. package/dist/astro/routes/api/search/suggest.mjs +10 -9
  184. package/dist/astro/routes/api/sections/_slug_.mjs +31 -28
  185. package/dist/astro/routes/api/sections/index.mjs +31 -28
  186. package/dist/astro/routes/api/settings/email.mjs +4 -4
  187. package/dist/astro/routes/api/settings.mjs +31 -28
  188. package/dist/astro/routes/api/setup/admin-verify.mjs +14 -13
  189. package/dist/astro/routes/api/setup/admin.mjs +12 -11
  190. package/dist/astro/routes/api/setup/dev-bypass.mjs +31 -25
  191. package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
  192. package/dist/astro/routes/api/setup/index.mjs +29 -25
  193. package/dist/astro/routes/api/setup/status.mjs +3 -3
  194. package/dist/astro/routes/api/snapshot.mjs +8 -7
  195. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +34 -31
  196. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +34 -31
  197. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +34 -31
  198. package/dist/astro/routes/api/taxonomies/index.mjs +34 -31
  199. package/dist/astro/routes/api/themes/preview.mjs +5 -5
  200. package/dist/astro/routes/api/typegen.mjs +4 -4
  201. package/dist/astro/routes/api/well-known/auth.mjs +3 -3
  202. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +3 -3
  203. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +3 -3
  204. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +30 -27
  205. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +31 -28
  206. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +31 -28
  207. package/dist/astro/routes/api/widget-areas/_name_.mjs +28 -26
  208. package/dist/astro/routes/api/widget-areas/index.mjs +31 -28
  209. package/dist/astro/routes/api/widget-components.mjs +2 -2
  210. package/dist/astro/routes/robots.txt.mjs +8 -7
  211. package/dist/astro/routes/sitemap-_collection_.xml.mjs +23 -14
  212. package/dist/astro/routes/sitemap.xml.mjs +9 -8
  213. package/dist/astro/session-driver.d.mts +1 -1
  214. package/dist/astro/session-driver.mjs +2 -2
  215. package/dist/astro/types.d.mts +21 -13
  216. package/dist/{audit-BeNsSyfU.mjs → audit-ByVKIwWF.mjs} +1 -1
  217. package/dist/auth/providers/github.d.mts +1 -1
  218. package/dist/auth/providers/google.d.mts +1 -1
  219. package/dist/{auth-control-guard-Dr14I98m.mjs → auth-control-guard-CqeUmQsv.mjs} +1 -1
  220. package/dist/{authorize-BLO0m7fW.mjs → authorize-CcBxcHtz.mjs} +1 -1
  221. package/dist/{briefing-DJX6irto.mjs → briefing-BJaJI8dm.mjs} +2 -1
  222. package/dist/{briefing-CkTee1ex.mjs → briefing-CawZ59CY.mjs} +90 -28
  223. package/dist/bundle-7C_DpkEq.mjs +602 -0
  224. package/dist/{byline-BVC1lV6G.mjs → byline-e51-fWRs.mjs} +30 -62
  225. package/dist/{byline-fields-uJlygdzM.d.mts → byline-fields-CUvbslGc.d.mts} +80 -37
  226. package/dist/{byline-fields-Cj39WhXC.mjs → byline-fields-D-N5qVIG.mjs} +1 -1
  227. package/dist/{byline-fields-cNrLJVRs.mjs → byline-fields-DOJO16Gm.mjs} +3 -3
  228. package/dist/{byline-registry-4v6tXMNX.mjs → byline-registry-87nNnYl4.mjs} +2 -2
  229. package/dist/{bylines-LN9XISRo.mjs → bylines-CMQNCNFh.mjs} +9 -3
  230. package/dist/{bylines-DwokOFj6.mjs → bylines-y4LO-dTj.mjs} +5 -5
  231. package/dist/{cache-Bac05gBd.mjs → cache-C-FNTFYK.mjs} +2 -2
  232. package/dist/{chunks-CuUt7K50.mjs → chunks-CxBt-GxR.mjs} +1 -1
  233. package/dist/cli/index.mjs +94 -659
  234. package/dist/client/external-auth-headers.d.mts +1 -1
  235. package/dist/client/index.d.mts +1 -1
  236. package/dist/client/index.mjs +2 -1
  237. package/dist/{comment-Beue8-15.mjs → comment-DlA4iChg.mjs} +13 -3
  238. package/dist/comment-reaction-DfFao1ST.mjs +58 -0
  239. package/dist/{comments-DcjFIfqX.mjs → comments-DApFGMsP.mjs} +1 -1
  240. package/dist/{content-CBxYGWfL.mjs → content-Bh4BDjv8.mjs} +51 -34
  241. package/dist/content-refresh-CgutSUfO.mjs +1576 -0
  242. package/dist/{context-CQVNZaR8.mjs → context-C5W3G18y.mjs} +111 -50
  243. package/dist/{context-Df1xVYyr.mjs → context-CK4ym2Sf.mjs} +2 -2
  244. package/dist/{context-route-helpers-B9wj8Rmh.mjs → context-route-helpers-MASyGgWf.mjs} +2 -1
  245. package/dist/{cron-DxCAU_Sn.mjs → cron-cKcNTix_.mjs} +7 -3
  246. package/dist/{dashboard-B7ZUNuyF.mjs → dashboard-DQkVT7Ei.mjs} +4 -4
  247. package/dist/db/index.d.mts +3 -3
  248. package/dist/db/index.mjs +1 -1
  249. package/dist/db/libsql.d.mts +1 -1
  250. package/dist/db/postgres.d.mts +1 -1
  251. package/dist/db/sqlite.d.mts +1 -1
  252. package/dist/{device-flow-BZVGftqi.mjs → device-flow-BnqRH-T9.mjs} +5 -5
  253. package/dist/{placeholder-d54Qr_7n.mjs → enrich-DIFIFA8O.mjs} +36 -9
  254. package/dist/{error-DCSuUAZW.mjs → error-CytFlgcd.mjs} +5 -0
  255. package/dist/field-defs-cache-DRNdhBJv.mjs +49 -0
  256. package/dist/{fts-manager-B5l_qwrA.mjs → fts-manager-Crzypjqu.mjs} +1 -1
  257. package/dist/hitl-Hw1RmWOq.mjs +677 -0
  258. package/dist/{hitl-requests-7NlzVeUA.mjs → hitl-requests-B4Vbcmaq.mjs} +2 -2
  259. package/dist/{hitl-route-helpers-k---_H3-.mjs → hitl-route-helpers-hEVzvP8l.mjs} +5 -4
  260. package/dist/import-Bh9biJfx.mjs +1354 -0
  261. package/dist/{index-CZiWCQDp.d.mts → index-D4y6NGiy.d.mts} +75 -3
  262. package/dist/index.d.mts +17 -16
  263. package/dist/index.mjs +80 -68
  264. package/dist/{jsonld-DZ67souc.d.mts → jsonld-Dq0gsnOH.d.mts} +8 -4
  265. package/dist/{load-D9OiGr2m.mjs → load-DmYeniXl.mjs} +1 -1
  266. package/dist/{loader--GOYux8M.mjs → loader-CjWqjweO.mjs} +117 -31
  267. package/dist/{manifest-schema-qh2P7RDX.mjs → manifest-schema-BxVPYMJR.mjs} +34 -1
  268. package/dist/mcp-reviewed-executor-TwVbMzG6.mjs +555 -0
  269. package/dist/media/image-endpoint.d.mts +32 -0
  270. package/dist/media/image-endpoint.mjs +111 -0
  271. package/dist/media/index.d.mts +27 -2
  272. package/dist/media/index.mjs +5 -3
  273. package/dist/media/local-runtime.d.mts +16 -11
  274. package/dist/media/local-runtime.mjs +9 -7
  275. package/dist/{media-CbKyYukG.mjs → media-DMj0grzC.mjs} +3 -1
  276. package/dist/{media-allowlist-BYxJIcTO.mjs → media-allowlist-BlVCSzHx.mjs} +1 -1
  277. package/dist/media-url-lEKSrpr9.mjs +20 -0
  278. package/dist/{menus-BZbXf-ej.mjs → menus-TaW1gKnk.mjs} +19 -5
  279. package/dist/{menus-C7F0sCrC.mjs → menus-xvsnVZXw.mjs} +80 -15
  280. package/dist/{normalize-ByemhhfW.mjs → normalize-5ek_z7de.mjs} +8 -1
  281. package/dist/{oauth-authorization-DF-LCsIA.mjs → oauth-authorization-DiaGvRVz.mjs} +5 -5
  282. package/dist/{oauth-clients-Du-V0fEm.mjs → oauth-clients-Dl9E8dEM.mjs} +2 -2
  283. package/dist/object-cache/memory.d.mts +14 -0
  284. package/dist/object-cache/memory.mjs +55 -0
  285. package/dist/object-cache-D51qOseS.mjs +419 -0
  286. package/dist/page/index.d.mts +4 -3
  287. package/dist/page/index.mjs +2 -2
  288. package/dist/{parse-CneSgl7-.mjs → parse-CbymENaR.mjs} +1 -1
  289. package/dist/{parser-DxfsARXL.mjs → parser-C1nYd-81.mjs} +151 -9
  290. package/dist/{placeholder-CXfoCtCd.d.mts → placeholder-uvNRZBX9.d.mts} +12 -4
  291. package/dist/plugin-utils.d.mts +9 -9
  292. package/dist/plugins/adapt-sandbox-entry.d.mts +9 -9
  293. package/dist/plugins/adapt-sandbox-entry.mjs +11 -2
  294. package/dist/{plugins-DzfqRREq.mjs → plugins-BolVa-tl.mjs} +831 -63
  295. package/dist/{transport-LSdZVXHF.mjs → portable-text-dA_UlJwW.mjs} +1 -134
  296. package/dist/{preview-C-3YTX2U.mjs → preview-vSVg6fwG.mjs} +4 -3
  297. package/dist/process-cache-7xgAO9JY.mjs +106 -0
  298. package/dist/{provider-loader-9it4vd6L.d.mts → provider-loader-MD8zAbnH.d.mts} +1 -1
  299. package/dist/{public-url-B4xV4rGa.d.mts → public-url-gsp3oUbu.d.mts} +1 -1
  300. package/dist/{query-Ds0EnMFX.mjs → query-CfRCdaL3.mjs} +281 -76
  301. package/dist/{query-CZ3TH_Uu.mjs → query-jaAmw8E1.mjs} +11 -6
  302. package/dist/{rate-limit-i0G3IAOX.mjs → rate-limit-ZLdyWoZF.mjs} +2 -2
  303. package/dist/{redirect-CEACczxo.mjs → redirect-BAjt4Z6b.mjs} +2 -2
  304. package/dist/{redirects-DYj1yPxs.mjs → redirects-BTdwpQtE.mjs} +47 -24
  305. package/dist/{redirects-ocRJmQHP.mjs → redirects-CA-xylPG.mjs} +19 -11
  306. package/dist/{registry-D7HACema.mjs → registry-CtyVedcN.mjs} +130 -77
  307. package/dist/request-context.d.mts +2 -0
  308. package/dist/{request-meta-DAb6xaP9.mjs → request-meta-CUypToDJ.mjs} +1 -1
  309. package/dist/{review-requests-Qum4713s.mjs → review-requests-C9Ff11Vq.mjs} +1 -1
  310. package/dist/{review-requests-BW2NxY-l.mjs → review-requests-DUyEmtmG.mjs} +1 -1
  311. package/dist/{runner-09sTqtv0.d.mts → runner-1tC2tIRV.d.mts} +1 -1
  312. package/dist/runner-DB7CRfOF.mjs +6740 -0
  313. package/dist/{runtime-C4-2lSFg.d.mts → runtime-BOeiQsCv.d.mts} +1952 -1489
  314. package/dist/runtime.d.mts +10 -10
  315. package/dist/runtime.mjs +3 -3
  316. package/dist/schema-DXdYj4R3.mjs +8 -0
  317. package/dist/{search-Gdrqj582.mjs → search-DSaLgEFI.mjs} +5 -3
  318. package/dist/{secrets-CeGpBFV2.mjs → secrets-CDZo2k8L.mjs} +14 -11
  319. package/dist/{sections-BOjU13Y-.mjs → sections-PVVXHGfp.mjs} +2 -2
  320. package/dist/seed/index.d.mts +2 -2
  321. package/dist/seed/index.mjs +21 -18
  322. package/dist/seo/index.d.mts +1 -1
  323. package/dist/seo/index.mjs +3 -12
  324. package/dist/{seo-CLj8lS7Q.mjs → seo-CQG3GCHQ.mjs} +5 -2
  325. package/dist/{seo-contributions-CqVvReEj.mjs → seo-contributions-C1EnikHB.mjs} +11 -3
  326. package/dist/{seo-5lJOtB5J.mjs → seo-qa7Dn0jK.mjs} +22 -4
  327. package/dist/{service-jGlhrICs.mjs → service-DiN4ZuPp.mjs} +2 -2
  328. package/dist/session-user-CAKImna3.mjs +22 -0
  329. package/dist/{settings-CUXOxzsT.mjs → settings-BbqgHWpU.mjs} +28 -55
  330. package/dist/{settings-DlBsT2VS.mjs → settings-i4VPP8bT.mjs} +2 -2
  331. package/dist/{setup-complete-BRrdPYjZ.mjs → setup-complete-B8fl-mjV.mjs} +1 -1
  332. package/dist/{site-activity-DONFrMBJ.mjs → site-activity-Dy3FROs0.mjs} +1 -1
  333. package/dist/{site-context-C8Az_P_I.mjs → site-context-DQiL8Fl5.mjs} +23 -652
  334. package/dist/{site-url-DIMD68go.mjs → site-url-BML3GQYm.mjs} +1 -1
  335. package/dist/status-DANd8ERo.mjs +21 -0
  336. package/dist/storage/local.d.mts +1 -1
  337. package/dist/storage/local.mjs +1 -1
  338. package/dist/storage/s3.d.mts +1 -1
  339. package/dist/storage/s3.mjs +1 -1
  340. package/dist/{taxonomies-D9Sw4wWM.mjs → taxonomies-9s-v03H-.mjs} +36 -29
  341. package/dist/taxonomies-DRiixp_E.mjs +443 -0
  342. package/dist/{taxonomy-B169Nm6B.mjs → taxonomy-Dvsw6BOs.mjs} +44 -9
  343. package/dist/transport-BNmCqLu7.mjs +134 -0
  344. package/dist/types-4garmdWa.mjs +66 -0
  345. package/dist/{types-DSPGWjxO.d.mts → types-C8XW6L19.d.mts} +225 -4
  346. package/dist/{types-GaCtZ1k9.d.mts → types-CDpH6MA4.d.mts} +18 -0
  347. package/dist/{types-DRIKLmJI.d.mts → types-C_ly5eTp.d.mts} +17 -2
  348. package/dist/types-DF7ZuGGk.d.mts +118 -0
  349. package/dist/types-DU0bU2Wu.d.mts +2392 -0
  350. package/dist/{types-CwawBUTa.d.mts → types-DW_-sFyz.d.mts} +2 -1
  351. package/dist/{types-CSgR9nQB.mjs → types-Dq1qT19x.mjs} +1 -1
  352. package/dist/ui/server-runtime.d.mts +15 -15
  353. package/dist/ui/server-runtime.mjs +24 -20
  354. package/dist/url-Cac7a9QZ.mjs +33 -0
  355. package/dist/{user-DTLoZs16.mjs → user-BIZPzCb9.mjs} +2 -2
  356. package/dist/{utils-B8hBJ9Oz.mjs → utils-CMDhr5Xd.mjs} +129 -7
  357. package/dist/{validate-DzjCdy6v.d.mts → validate-CZvb-BKB.d.mts} +10 -7
  358. package/dist/{validate-DWmPO6oj.mjs → validate-DNs0pTSc.mjs} +11 -6
  359. package/dist/version-BTvfRGc6.mjs +6 -0
  360. package/dist/{widgets-BpJ8EpPd.mjs → widgets-f0ibZUIq.mjs} +46 -43
  361. package/dist/{wordpress-slugs-DHNR9LpG.mjs → wordpress-slugs-BhHJX8XE.mjs} +1 -1
  362. package/dist/{zod-generator-K91-g665.mjs → zod-generator-B7TMjyFJ.mjs} +41 -13
  363. package/package.json +30 -8
  364. package/src/components/Block.astro +50 -0
  365. package/src/components/Comments.astro +143 -1
  366. package/src/components/DinewayHead.astro +19 -2
  367. package/src/components/DinewayImage.astro +66 -33
  368. package/src/components/DinewayMedia.astro +1 -2
  369. package/src/components/Image.astro +85 -40
  370. package/src/components/InlinePortableTextEditor.tsx +12 -2
  371. package/src/components/JsonLdScript.astro +9 -0
  372. package/src/components/LiveSearch.astro +40 -4
  373. package/src/components/index.ts +4 -0
  374. package/src/components/live-search-routing.ts +30 -0
  375. package/src/components/portable-text-text-align.ts +15 -0
  376. package/src/ui.ts +2 -0
  377. package/dist/entity-aliases-4y93Yjuc.mjs +0 -51
  378. package/dist/import-4YBXbDkI.mjs +0 -684
  379. package/dist/runner-DzIpHGND.mjs +0 -2836
  380. package/dist/schema-Bsi-VpYv.mjs +0 -8
  381. package/dist/taxonomies-CZ-_DitR.mjs +0 -327
  382. package/dist/types-CuJOqHfM.d.mts +0 -758
  383. package/dist/version-C4gfn0PJ.mjs +0 -6
  384. /package/dist/{adapters-OQCImOL7.d.mts → adapters-NVSs4UH7.d.mts} +0 -0
  385. /package/dist/{api-tokens-CYUoFGo7.mjs → api-tokens-2r7OWi_I.mjs} +0 -0
  386. /package/dist/{challenge-store-DFxX0_15.mjs → challenge-store-Bjlepa2E.mjs} +0 -0
  387. /package/dist/{components--pg6zBvu.mjs → components-Bclf98Be.mjs} +0 -0
  388. /package/dist/{context-types-r8oFvyOq.mjs → context-types-DqTo6C79.mjs} +0 -0
  389. /package/dist/{default-B6iaLvP7.mjs → default--K40jqm0.mjs} +0 -0
  390. /package/dist/{email-console-BOVqIYpB.mjs → email-console-ChgKFO8-.mjs} +0 -0
  391. /package/dist/{escape-BDgouFFY.mjs → escape-Bd4P_xKg.mjs} +0 -0
  392. /package/dist/{experimental-workflows-CSMffP6q.mjs → experimental-workflows-BMsUnIAw.mjs} +0 -0
  393. /package/dist/{mime-CbKsKDCB.mjs → mime-CA7Lgovc.mjs} +0 -0
  394. /package/dist/{mode-CZqCF9dZ.mjs → mode-C4CIyjtR.mjs} +0 -0
  395. /package/dist/{oauth-state-store-qncPB_IU.mjs → oauth-state-store-CNoXafF7.mjs} +0 -0
  396. /package/dist/{oauth-user-lookup-BFjWF8wK.mjs → oauth-user-lookup-Ygw4bNyt.mjs} +0 -0
  397. /package/dist/{options-LsPjZlqD.mjs → options-DQPTH5n0.mjs} +0 -0
  398. /package/dist/{passkey-config-DzHQK90v.mjs → passkey-config-BUwu8BA3.mjs} +0 -0
  399. /package/dist/{patterns-DKAX6oqN.mjs → patterns-BhAvqO0S.mjs} +0 -0
  400. /package/dist/{provider-loader-DzUxejk7.mjs → provider-loader-D0w9dqjm.mjs} +0 -0
  401. /package/dist/{public-url-B_m9IwdV.mjs → public-url-BEz_sM9n.mjs} +0 -0
  402. /package/dist/{redirect-BjIBtDWY.mjs → redirect-wphRBv4y.mjs} +0 -0
  403. /package/dist/{request-cache-ho99schz.mjs → request-cache-D9GQBxMP.mjs} +0 -0
  404. /package/dist/{resolve-DTuDyYKs.mjs → resolve-Cb6Dbz-C.mjs} +0 -0
  405. /package/dist/{setup-nonce-pyGfc9hV.mjs → setup-nonce-CoyjILvW.mjs} +0 -0
  406. /package/dist/{sidecar-client-mJxwayYN.mjs → sidecar-client-C3mqXg4C.mjs} +0 -0
  407. /package/dist/{slugify-BqebcqBg.mjs → slugify-KSsVD_D3.mjs} +0 -0
  408. /package/dist/{ssrf-DiKqWd3N.mjs → ssrf-DWe8jwAp.mjs} +0 -0
  409. /package/dist/{tokens-SLmgowfd.mjs → tokens-1RK1n6ED.mjs} +0 -0
  410. /package/dist/{transaction-CFLhEOuH.mjs → transaction-C2EOMTJA.mjs} +0 -0
  411. /package/dist/{transport-BnsNxh2l.d.mts → transport-CcJu3Co8.d.mts} +0 -0
  412. /package/dist/{trusted-proxy-BgIIcbsN.mjs → trusted-proxy-DTXQ2IMv.mjs} +0 -0
  413. /package/dist/{types-CJ8DkL0q.mjs → types-B3t5cxhU.mjs} +0 -0
  414. /package/dist/{types-nP9vGUFq.d.mts → types-C46EvNdc.d.mts} +0 -0
  415. /package/dist/{types-Cg276-3z.mjs → types-C5CVgwsV.mjs} +0 -0
  416. /package/dist/{types-DZpT-PnG.d.mts → types-POH8PQZh.d.mts} +0 -0
  417. /package/dist/{types-Dryvv7LH.d.mts → types-Rc3gQqqw.d.mts} +0 -0
  418. /package/dist/{url-w7Mp5qAD.mjs → url-CpyFDFpO.mjs} +0 -0
@@ -1,7 +1,7 @@
1
- import { t as INTERNAL_MEDIA_PREFIX } from "../normalize-ByemhhfW.mjs";
2
- import { n as VERSION, t as COMMIT } from "../version-C4gfn0PJ.mjs";
3
- import { t as defaultSeed } from "../default-B6iaLvP7.mjs";
4
- import { n as validateAllowedOrigins, r as validateOriginShape } from "../allowed-origins-CyGnbgBd.mjs";
1
+ import { t as INTERNAL_MEDIA_PREFIX } from "../normalize-5ek_z7de.mjs";
2
+ import { n as VERSION, t as COMMIT } from "../version-BTvfRGc6.mjs";
3
+ import { t as defaultSeed } from "../default--K40jqm0.mjs";
4
+ import { n as validateAllowedOrigins, r as validateOriginShape } from "../allowed-origins-_oeyP6x-.mjs";
5
5
  import { createRequire } from "node:module";
6
6
  import { existsSync, readFileSync } from "node:fs";
7
7
  import { dirname, isAbsolute, relative, resolve } from "node:path";
@@ -61,6 +61,27 @@ function local(config) {
61
61
  };
62
62
  }
63
63
 
64
+ //#endregion
65
+ //#region src/astro/object-cache/adapters.ts
66
+ /**
67
+ * In-isolate memory object cache.
68
+ *
69
+ * Caches query results across requests within a single process. On Node this
70
+ * is a genuine cross-request cache; on multi-process deployments each process
71
+ * keeps its own cache. Useful for local development regardless of target.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * dineway({ objectCache: memoryCache({ defaultTtl: 600 }) })
76
+ * ```
77
+ */
78
+ function memoryCache(options = {}) {
79
+ return {
80
+ entrypoint: "dineway/object-cache/memory",
81
+ config: { ...options }
82
+ };
83
+ }
84
+
64
85
  //#endregion
65
86
  //#region src/astro/integration/font-provider.ts
66
87
  /**
@@ -196,10 +217,28 @@ function resolveRoute(route) {
196
217
  return resolve(__dirname, "../routes", route);
197
218
  }
198
219
  }
220
+ const PUBLIC_ROUTE_OVERRIDE_EXTENSIONS = [
221
+ ".astro",
222
+ ".js",
223
+ ".ts",
224
+ ".jsx",
225
+ ".tsx",
226
+ ".mjs",
227
+ ".mts",
228
+ ".md",
229
+ ".mdx",
230
+ ".html"
231
+ ];
232
+ function hasUserDefinedPublicRoute(srcDir, basename) {
233
+ const srcDirPath = fileURLToPath(srcDir);
234
+ return PUBLIC_ROUTE_OVERRIDE_EXTENSIONS.some((extension) => {
235
+ return existsSync(resolve(srcDirPath, "pages", `${basename}${extension}`)) || existsSync(resolve(srcDirPath, "pages", basename, `index${extension}`));
236
+ });
237
+ }
199
238
  /**
200
239
  * Injects all core Dineway routes.
201
240
  */
202
- function injectCoreRoutes(injectRoute) {
241
+ function injectCoreRoutes(injectRoute, options = {}) {
203
242
  injectRoute({
204
243
  pattern: "/_dineway/admin/[...path]",
205
244
  entrypoint: resolveRoute("admin.astro")
@@ -744,6 +783,10 @@ function injectCoreRoutes(injectRoute) {
744
783
  pattern: "/_dineway/api/comments/[collection]/[contentId]",
745
784
  entrypoint: resolveRoute("api/comments/[collection]/[contentId]/index.ts")
746
785
  });
786
+ injectRoute({
787
+ pattern: "/_dineway/api/comments/[collection]/[contentId]/reactions",
788
+ entrypoint: resolveRoute("api/comments/[collection]/[contentId]/reactions.ts")
789
+ });
747
790
  injectRoute({
748
791
  pattern: "/_dineway/api/admin/comments",
749
792
  entrypoint: resolveRoute("api/admin/comments/index.ts")
@@ -764,7 +807,7 @@ function injectCoreRoutes(injectRoute) {
764
807
  pattern: "/_dineway/api/admin/comments/[id]",
765
808
  entrypoint: resolveRoute("api/admin/comments/[id].ts")
766
809
  });
767
- injectRoute({
810
+ if (!options.srcDir || !hasUserDefinedPublicRoute(options.srcDir, "sitemap.xml")) injectRoute({
768
811
  pattern: "/sitemap.xml",
769
812
  entrypoint: resolveRoute("sitemap.xml.ts")
770
813
  });
@@ -772,7 +815,7 @@ function injectCoreRoutes(injectRoute) {
772
815
  pattern: "/sitemap-[collection].xml",
773
816
  entrypoint: resolveRoute("sitemap-[collection].xml.ts")
774
817
  });
775
- injectRoute({
818
+ if (!options.srcDir || !hasUserDefinedPublicRoute(options.srcDir, "robots.txt")) injectRoute({
776
819
  pattern: "/robots.txt",
777
820
  entrypoint: resolveRoute("robots.txt.ts")
778
821
  });
@@ -947,6 +990,8 @@ const VIRTUAL_DIALECT_ID = "virtual:dineway/dialect";
947
990
  const RESOLVED_VIRTUAL_DIALECT_ID = "\0" + VIRTUAL_DIALECT_ID;
948
991
  const VIRTUAL_STORAGE_ID = "virtual:dineway/storage";
949
992
  const RESOLVED_VIRTUAL_STORAGE_ID = "\0" + VIRTUAL_STORAGE_ID;
993
+ const VIRTUAL_OBJECT_CACHE_ID = "virtual:dineway/object-cache";
994
+ const RESOLVED_VIRTUAL_OBJECT_CACHE_ID = "\0" + VIRTUAL_OBJECT_CACHE_ID;
950
995
  const VIRTUAL_ADMIN_REGISTRY_ID = "virtual:dineway/admin-registry";
951
996
  const RESOLVED_VIRTUAL_ADMIN_REGISTRY_ID = "\0" + VIRTUAL_ADMIN_REGISTRY_ID;
952
997
  const VIRTUAL_PLUGINS_ID = "virtual:dineway/plugins";
@@ -993,7 +1038,19 @@ function generateStorageModule(storageEntrypoint) {
993
1038
  return `
994
1039
  import { createStorage as _createStorage } from "${storageEntrypoint}";
995
1040
  export const createStorage = _createStorage;
996
- `;
1041
+ `;
1042
+ }
1043
+ /**
1044
+ * Generates the object-cache virtual module.
1045
+ * Statically imports the configured backend factory.
1046
+ */
1047
+ function generateObjectCacheModule(objectCacheEntrypoint, config) {
1048
+ if (!objectCacheEntrypoint) return [`export const createObjectCache = undefined;`, `export const objectCacheConfig = {};`].join("\n");
1049
+ return `
1050
+ import { createObjectCache as _createObjectCache } from "${objectCacheEntrypoint}";
1051
+ export const createObjectCache = _createObjectCache;
1052
+ export const objectCacheConfig = ${JSON.stringify(config ?? {})};
1053
+ `;
997
1054
  }
998
1055
  /**
999
1056
  * Generates the auth virtual module.
@@ -1049,6 +1106,7 @@ function generatePluginsModule(descriptors) {
1049
1106
  const instantiations = [];
1050
1107
  let needsAdapter = false;
1051
1108
  descriptors.forEach((descriptor, index) => {
1109
+ if (!descriptor.entrypoint) throw new Error(`[dineway] Plugin "${descriptor.id}" has no \`entrypoint\`. The Astro integration's \`plugins: []\` option requires plugins that resolve to a file or package entrypoint so they can be bundled at build time. Inline \`definePlugin({...})\` results are not supported; move the plugin into its own module and reference a factory descriptor with an \`entrypoint\`.`);
1052
1110
  if (descriptor.format === "standard") {
1053
1111
  needsAdapter = true;
1054
1112
  const varName = `pluginDef${index}`;
@@ -1060,7 +1118,9 @@ function generatePluginsModule(descriptors) {
1060
1118
  allowedHosts: descriptor.allowedHosts,
1061
1119
  storage: descriptor.storage,
1062
1120
  adminPages: descriptor.adminPages,
1063
- adminWidgets: descriptor.adminWidgets
1121
+ adminWidgets: descriptor.adminWidgets,
1122
+ portableTextBlocks: descriptor.portableTextBlocks,
1123
+ fieldWidgets: descriptor.fieldWidgets
1064
1124
  })})`);
1065
1125
  } else {
1066
1126
  const varName = `createPlugin${index}`;
@@ -1249,6 +1309,8 @@ export const sandboxedPlugins = [];
1249
1309
  storage: ${JSON.stringify(descriptor.storage ?? {})},
1250
1310
  adminPages: ${JSON.stringify(descriptor.adminPages ?? [])},
1251
1311
  adminWidgets: ${JSON.stringify(descriptor.adminWidgets ?? [])},
1312
+ portableTextBlocks: ${JSON.stringify(descriptor.portableTextBlocks ?? [])},
1313
+ fieldWidgets: ${JSON.stringify(descriptor.fieldWidgets ?? [])},
1252
1314
  adminEntry: ${JSON.stringify(descriptor.adminEntry)},
1253
1315
  // Code read from: ${filePath}
1254
1316
  code: ${JSON.stringify(code)},
@@ -1334,6 +1396,12 @@ function resolveAdminSource(projectRoot) {
1334
1396
  if (existsSync(srcEntry) && isInside(repoRoot, projectRoot)) return resolve(packageRoot, "src");
1335
1397
  } catch {}
1336
1398
  }
1399
+ function resolveIntegrationShim(fileName) {
1400
+ const currentDir = dirname(fileURLToPath(import.meta.url));
1401
+ const sourceShimPath = resolve(currentDir, "shims", fileName);
1402
+ if (existsSync(sourceShimPath)) return sourceShimPath;
1403
+ return resolve(currentDir, "..", "..", "src", "astro", "integration", "shims", fileName);
1404
+ }
1337
1405
  /**
1338
1406
  * Creates the Dineway virtual modules Vite plugin.
1339
1407
  */
@@ -1349,6 +1417,7 @@ function createVirtualModulesPlugin(options) {
1349
1417
  if (id === VIRTUAL_CONFIG_ID) return RESOLVED_VIRTUAL_CONFIG_ID;
1350
1418
  if (id === VIRTUAL_DIALECT_ID) return RESOLVED_VIRTUAL_DIALECT_ID;
1351
1419
  if (id === VIRTUAL_STORAGE_ID) return RESOLVED_VIRTUAL_STORAGE_ID;
1420
+ if (id === VIRTUAL_OBJECT_CACHE_ID) return RESOLVED_VIRTUAL_OBJECT_CACHE_ID;
1352
1421
  if (id === VIRTUAL_ADMIN_REGISTRY_ID) return RESOLVED_VIRTUAL_ADMIN_REGISTRY_ID;
1353
1422
  if (id === VIRTUAL_PLUGINS_ID) return RESOLVED_VIRTUAL_PLUGINS_ID;
1354
1423
  if (id === VIRTUAL_SANDBOX_RUNNER_ID) return RESOLVED_VIRTUAL_SANDBOX_RUNNER_ID;
@@ -1363,6 +1432,7 @@ function createVirtualModulesPlugin(options) {
1363
1432
  if (id === RESOLVED_VIRTUAL_CONFIG_ID) return generateConfigModule(serializableConfig);
1364
1433
  if (id === RESOLVED_VIRTUAL_DIALECT_ID) return generateDialectModule(resolvedConfig.database?.entrypoint, resolvedConfig.database?.type, resolvedConfig.database?.config);
1365
1434
  if (id === RESOLVED_VIRTUAL_STORAGE_ID) return generateStorageModule(resolvedConfig.storage?.entrypoint);
1435
+ if (id === RESOLVED_VIRTUAL_OBJECT_CACHE_ID) return generateObjectCacheModule(resolvedConfig.objectCache?.entrypoint, resolvedConfig.objectCache?.config);
1366
1436
  if (id === RESOLVED_VIRTUAL_PLUGINS_ID) return generatePluginsModule(pluginDescriptors);
1367
1437
  if (id === RESOLVED_VIRTUAL_ADMIN_REGISTRY_ID) return generateAdminRegistryModule([...pluginDescriptors, ...resolvedConfig.sandboxed ?? []]);
1368
1438
  if (id === RESOLVED_VIRTUAL_SANDBOX_RUNNER_ID) return generateSandboxRunnerModule(resolvedConfig.sandboxRunner);
@@ -1386,6 +1456,7 @@ function createVirtualModulesPlugin(options) {
1386
1456
  * Modules that contain native Node.js addons or Node-only code.
1387
1457
  * These must be external in SSR to avoid bundling failures on Node.
1388
1458
  */
1459
+ const ADMIN_STYLES_ALIAS = /^@dineway-ai\/admin\/styles\.css/;
1389
1460
  const NODE_NATIVE_EXTERNALS = [
1390
1461
  "better-sqlite3",
1391
1462
  "bindings",
@@ -1403,6 +1474,8 @@ function createViteConfig(options, command) {
1403
1474
  const adminSourcePath = isDev ? resolveAdminSource(projectRoot) : void 0;
1404
1475
  const useSource = adminSourcePath !== void 0;
1405
1476
  const devPlugins = adminSourcePath ? [linguiMacroPlugin(adminSourcePath, adminDistPath)] : [];
1477
+ const useSyncExternalStoreShimPath = resolveIntegrationShim("use-sync-external-store.js");
1478
+ const useSyncExternalStoreWithSelectorShimPath = resolveIntegrationShim("use-sync-external-store-with-selector.js");
1406
1479
  return {
1407
1480
  define: {
1408
1481
  __DINEWAY_VERSION__: JSON.stringify(VERSION),
@@ -1417,7 +1490,7 @@ function createViteConfig(options, command) {
1417
1490
  ],
1418
1491
  alias: [
1419
1492
  {
1420
- find: "@dineway-ai/admin/styles.css",
1493
+ find: ADMIN_STYLES_ALIAS,
1421
1494
  replacement: resolve(adminDistPath, "styles.css")
1422
1495
  },
1423
1496
  {
@@ -1427,12 +1500,28 @@ function createViteConfig(options, command) {
1427
1500
  {
1428
1501
  find: "@dineway-ai/admin",
1429
1502
  replacement: useSource ? adminSourcePath : adminDistPath
1503
+ },
1504
+ {
1505
+ find: "use-sync-external-store/shim/with-selector.js",
1506
+ replacement: useSyncExternalStoreWithSelectorShimPath
1507
+ },
1508
+ {
1509
+ find: "use-sync-external-store/shim/with-selector",
1510
+ replacement: useSyncExternalStoreWithSelectorShimPath
1511
+ },
1512
+ {
1513
+ find: "use-sync-external-store/shim/index.js",
1514
+ replacement: useSyncExternalStoreShimPath
1515
+ },
1516
+ {
1517
+ find: "use-sync-external-store/shim",
1518
+ replacement: useSyncExternalStoreShimPath
1430
1519
  }
1431
1520
  ]
1432
1521
  },
1433
1522
  plugins: [createVirtualModulesPlugin(options), ...useSource ? devPlugins : []],
1434
1523
  ssr: {
1435
- external: NODE_NATIVE_EXTERNALS,
1524
+ external: [...NODE_NATIVE_EXTERNALS, "dineway > zod"],
1436
1525
  noExternal: ["dineway", "@dineway-ai/admin"]
1437
1526
  },
1438
1527
  optimizeDeps: {
@@ -1463,9 +1552,10 @@ const DINEWAY_SESSION_DRIVER = { entrypoint: "dineway/astro/session-driver" };
1463
1552
  /**
1464
1553
  * Build `image.remotePatterns` entries so Astro will optimize Dineway media.
1465
1554
  *
1466
- * Astro's image services only transform absolute URLs whose host is authorized.
1467
- * We authorize the storage public URL host, the configured site origin scoped
1468
- * to the media proxy route, and a dev-only host-agnostic media route pattern.
1555
+ * Astro's image services only build transform URLs for sources allowed via
1556
+ * `image.domains` / `image.remotePatterns`. Dineway authorizes storage public
1557
+ * URL hosts, the configured site origin scoped to the media proxy route, and a
1558
+ * dev-only host-agnostic media route pattern.
1469
1559
  *
1470
1560
  * @internal Exported for unit testing.
1471
1561
  */
@@ -1494,6 +1584,19 @@ function buildImageRemotePatterns(storage, siteUrl, command) {
1494
1584
  if (command === "dev") patterns.push({ pathname: `${INTERNAL_MEDIA_PREFIX}**` });
1495
1585
  return patterns;
1496
1586
  }
1587
+ const OVERRIDABLE_IMAGE_ENDPOINTS = new Set([
1588
+ "astro/assets/endpoint/generic",
1589
+ "astro/assets/endpoint/node",
1590
+ "astro/assets/endpoint/dev"
1591
+ ]);
1592
+ const PASSTHROUGH_IMAGE_ENDPOINTS = new Set(["@astrojs/cloudflare/image-passthrough-endpoint"]);
1593
+ function resolveImageEndpoint(opts) {
1594
+ if (opts.imagesDisabled) return {};
1595
+ const current = opts.currentEntrypoint;
1596
+ if (current === void 0 || OVERRIDABLE_IMAGE_ENDPOINTS.has(current)) return { entrypoint: "dineway/image-endpoint" };
1597
+ if (PASSTHROUGH_IMAGE_ENDPOINTS.has(current)) return {};
1598
+ return { warn: `A custom image.endpoint (${current}) is configured; Dineway will not wrap it, so storage-backed media may render unoptimized.` };
1599
+ }
1497
1600
  const dim = (s) => `\x1b[2m${s}\x1b[22m`;
1498
1601
  const bold = (s) => `\x1b[1m${s}\x1b[22m`;
1499
1602
  const cyan = (s) => `\x1b[36m${s}\x1b[39m`;
@@ -1501,14 +1604,31 @@ const cyan = (s) => `\x1b[36m${s}\x1b[39m`;
1501
1604
  function printBanner(_logger) {
1502
1605
  const banner = `
1503
1606
 
1504
- ${bold(cyan("— D I N E W A Y —"))}
1607
+ ${bold(cyan("— D I N E W A Y —"))} ${dim(`v${VERSION}`)}
1505
1608
  `;
1506
1609
  console.log(banner);
1507
1610
  }
1508
- /** Print route injection summary */
1509
- function printRoutesSummary(_logger) {
1510
- console.log(`\n ${dim("›")} Admin UI ${cyan("/_dineway/admin")}`);
1511
- console.log(` ${dim("›")} API ${cyan("/_dineway/api/*")}`);
1611
+ function buildDevServerInfo(baseUrl, mcpEnabled) {
1612
+ return {
1613
+ adminUrl: `${baseUrl}/_dineway/admin`,
1614
+ ...mcpEnabled ? { mcpUrl: `${baseUrl}/_dineway/api/mcp` } : {},
1615
+ devBypassUrl: `${baseUrl}/_dineway/api/setup/dev-bypass?redirect=/_dineway/admin`,
1616
+ devBypassDescription: "Skips passkey setup/auth and signs you in as a dev admin"
1617
+ };
1618
+ }
1619
+ function getDevServerBaseUrl(address) {
1620
+ if (!address || typeof address === "string") return null;
1621
+ let host = address.address;
1622
+ if (host === "::1" || host === "::" || host === "0.0.0.0") host = "localhost";
1623
+ else if (address.family === "IPv6") host = `[${host}]`;
1624
+ return `http://${host}:${address.port}`;
1625
+ }
1626
+ function printDevServerInfo(baseUrl, mcpEnabled) {
1627
+ const info = buildDevServerInfo(baseUrl, mcpEnabled);
1628
+ console.log(`\n ${dim("›")} Admin UI ${cyan(info.adminUrl)}`);
1629
+ if (info.mcpUrl) console.log(` ${dim("›")} MCP server ${cyan(info.mcpUrl)}`);
1630
+ console.log(` ${dim("›")} Dev bypass ${cyan(info.devBypassUrl)}`);
1631
+ console.log(` ${dim(info.devBypassDescription)}`);
1512
1632
  console.log("");
1513
1633
  }
1514
1634
  /**
@@ -1568,10 +1688,12 @@ function dineway(config = {}) {
1568
1688
  trustedProxyHeaders: resolvedConfig.trustedProxyHeaders
1569
1689
  };
1570
1690
  const useExternalAuth = !!(resolvedConfig.auth && "entrypoint" in resolvedConfig.auth);
1691
+ let astroCommand;
1571
1692
  return {
1572
1693
  name: "dineway",
1573
1694
  hooks: {
1574
1695
  "astro:config:setup": ({ injectRoute, addMiddleware, logger, updateConfig, config: astroConfig, command }) => {
1696
+ astroCommand = command;
1575
1697
  printBanner(logger);
1576
1698
  if (astroConfig.i18n) {
1577
1699
  const routing = astroConfig.i18n.routing;
@@ -1615,10 +1737,18 @@ function dineway(config = {}) {
1615
1737
  ]
1616
1738
  }];
1617
1739
  const imageRemotePatterns = buildImageRemotePatterns(resolvedConfig.storage, resolvedConfig.siteUrl, command);
1740
+ const { entrypoint: imageEndpoint, warn: imageEndpointWarning } = resolveImageEndpoint({
1741
+ imagesDisabled: resolvedConfig.images === false,
1742
+ currentEntrypoint: astroConfig.image?.endpoint?.entrypoint
1743
+ });
1744
+ if (imageEndpointWarning) logger.warn(imageEndpointWarning);
1745
+ const imageConfig = {};
1746
+ if (imageRemotePatterns.length) imageConfig.remotePatterns = imageRemotePatterns;
1747
+ if (imageEndpoint) imageConfig.endpoint = { entrypoint: imageEndpoint };
1618
1748
  updateConfig({
1619
1749
  security: securityConfig,
1620
1750
  session: sessionConfig,
1621
- ...imageRemotePatterns.length ? { image: { remotePatterns: imageRemotePatterns } } : {},
1751
+ ...Object.keys(imageConfig).length ? { image: imageConfig } : {},
1622
1752
  fonts: dinewayFonts,
1623
1753
  vite: createViteConfig({
1624
1754
  serializableConfig,
@@ -1627,7 +1757,7 @@ function dineway(config = {}) {
1627
1757
  astroConfig
1628
1758
  }, command)
1629
1759
  });
1630
- injectCoreRoutes(injectRoute);
1760
+ injectCoreRoutes(injectRoute, { srcDir: astroConfig.srcDir });
1631
1761
  if (resolvedConfig.authProviders?.length) injectAuthProviderRoutes(injectRoute, resolvedConfig.authProviders);
1632
1762
  if (!useExternalAuth) injectBuiltinAuthRoutes(injectRoute);
1633
1763
  if (resolvedConfig.mcp !== false) injectMcpRoute(injectRoute);
@@ -1661,9 +1791,13 @@ function dineway(config = {}) {
1661
1791
  entrypoint: "dineway/middleware/request-context",
1662
1792
  order: "pre"
1663
1793
  });
1664
- printRoutesSummary(logger);
1665
1794
  },
1666
1795
  "astro:server:setup": ({ server, logger }) => {
1796
+ if (astroCommand === "dev") server.httpServer?.once("listening", () => {
1797
+ const baseUrl = getDevServerBaseUrl(server.httpServer?.address() ?? null);
1798
+ if (!baseUrl) return;
1799
+ printDevServerInfo(baseUrl, resolvedConfig.mcp !== false);
1800
+ });
1667
1801
  server.httpServer?.once("listening", async () => {
1668
1802
  const { writeFile, readFile } = await import("node:fs/promises");
1669
1803
  const { resolve } = await import("node:path");
@@ -1704,4 +1838,4 @@ function dineway(config = {}) {
1704
1838
  }
1705
1839
 
1706
1840
  //#endregion
1707
- export { dineway as default, getStoredConfig, local, s3 };
1841
+ export { dineway as default, getStoredConfig, local, memoryCache, s3 };
@@ -0,0 +1,71 @@
1
+ import * as React from "react";
2
+
3
+ const objectIs =
4
+ typeof Object.is === "function"
5
+ ? Object.is
6
+ : (x, y) => (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);
7
+
8
+ export function useSyncExternalStoreWithSelector(
9
+ subscribe,
10
+ getSnapshot,
11
+ getServerSnapshot,
12
+ selector,
13
+ isEqual,
14
+ ) {
15
+ const instRef = React.useRef(null);
16
+ if (instRef.current === null) {
17
+ instRef.current = { hasValue: false, value: null };
18
+ }
19
+ const inst = instRef.current;
20
+
21
+ const [getSelection, getServerSelection] = React.useMemo(() => {
22
+ let hasMemo = false;
23
+ let memoizedSnapshot;
24
+ let memoizedSelection;
25
+
26
+ const memoizedSelector = (nextSnapshot) => {
27
+ if (!hasMemo) {
28
+ hasMemo = true;
29
+ memoizedSnapshot = nextSnapshot;
30
+ const nextSelection = selector(nextSnapshot);
31
+ if (isEqual !== undefined && inst.hasValue) {
32
+ const currentSelection = inst.value;
33
+ if (isEqual(currentSelection, nextSelection)) {
34
+ memoizedSelection = currentSelection;
35
+ return currentSelection;
36
+ }
37
+ }
38
+ memoizedSelection = nextSelection;
39
+ return nextSelection;
40
+ }
41
+
42
+ const previousSelection = memoizedSelection;
43
+ if (objectIs(memoizedSnapshot, nextSnapshot)) {
44
+ return previousSelection;
45
+ }
46
+
47
+ const nextSelection = selector(nextSnapshot);
48
+ if (isEqual !== undefined && isEqual(previousSelection, nextSelection)) {
49
+ memoizedSnapshot = nextSnapshot;
50
+ return previousSelection;
51
+ }
52
+
53
+ memoizedSnapshot = nextSnapshot;
54
+ memoizedSelection = nextSelection;
55
+ return nextSelection;
56
+ };
57
+
58
+ return [
59
+ () => memoizedSelector(getSnapshot()),
60
+ getServerSnapshot === undefined ? undefined : () => memoizedSelector(getServerSnapshot()),
61
+ ];
62
+ }, [getSnapshot, getServerSnapshot, selector, isEqual]);
63
+
64
+ const value = React.useSyncExternalStore(subscribe, getSelection, getServerSelection);
65
+ React.useEffect(() => {
66
+ inst.hasValue = true;
67
+ inst.value = value;
68
+ }, [inst, value]);
69
+ React.useDebugValue(value);
70
+ return value;
71
+ }
@@ -0,0 +1 @@
1
+ export { useSyncExternalStore } from "react";
@@ -1,15 +1,15 @@
1
- import "../../runtime-C4-2lSFg.mjs";
2
- import "../../types-CuJOqHfM.mjs";
3
- import "../../types-DSPGWjxO.mjs";
4
- import "../../types-Dryvv7LH.mjs";
5
- import "../../runner-09sTqtv0.mjs";
6
- import "../../index-CZiWCQDp.mjs";
7
- import "../../byline-fields-uJlygdzM.mjs";
8
- import "../../types-GaCtZ1k9.mjs";
9
- import "../../validate-DzjCdy6v.mjs";
1
+ import "../../runtime-BOeiQsCv.mjs";
2
+ import "../../types-DU0bU2Wu.mjs";
3
+ import "../../types-C8XW6L19.mjs";
4
+ import "../../types-Rc3gQqqw.mjs";
5
+ import "../../runner-1tC2tIRV.mjs";
6
+ import "../../index-D4y6NGiy.mjs";
10
7
  import { DinewayHandlers } from "../types.mjs";
8
+ import "../../byline-fields-CUvbslGc.mjs";
9
+ import "../../types-CDpH6MA4.mjs";
10
+ import "../../validate-CZvb-BKB.mjs";
11
11
  import { Kysely } from "kysely";
12
- import { User } from "@dineway-ai/auth";
12
+ import { RoleLevel, User } from "@dineway-ai/auth";
13
13
  import * as astro from "astro";
14
14
 
15
15
  //#region src/site-context/actor.d.ts
@@ -1,8 +1,9 @@
1
- import { t as apiError } from "../../error-DCSuUAZW.mjs";
2
- import { n as getPublicOrigin } from "../../public-url-B_m9IwdV.mjs";
3
- import { t as getAuthMode } from "../../mode-CZqCF9dZ.mjs";
4
- import { i as hasScope } from "../../api-tokens-CYUoFGo7.mjs";
5
- import { a as resolveOAuthToken, i as resolveApiToken } from "../../api-tokens-DtvdtIkm.mjs";
1
+ import { t as apiError } from "../../error-CytFlgcd.mjs";
2
+ import { i as hasScope } from "../../api-tokens-2r7OWi_I.mjs";
3
+ import { n as getPublicOrigin } from "../../public-url-BEz_sM9n.mjs";
4
+ import { t as getAuthMode } from "../../mode-C4CIyjtR.mjs";
5
+ import { t as resolveSessionUser } from "../../session-user-CAKImna3.mjs";
6
+ import { a as resolveApiToken, o as resolveOAuthToken } from "../../api-tokens-CjVMQT-X.mjs";
6
7
  import { ulid } from "ulidx";
7
8
  import { defineMiddleware } from "astro:middleware";
8
9
  import { createKyselyAdapter } from "@dineway-ai/auth/adapters/kysely";
@@ -52,25 +53,41 @@ function checkPublicCsrf(request, url, publicOrigin) {
52
53
 
53
54
  //#endregion
54
55
  //#region src/astro/middleware/csp.ts
56
+ const S3_ADAPTER_ENTRYPOINT = "dineway/storage/s3";
55
57
  /**
56
- * Strict Content-Security-Policy for /_dineway routes (admin + API).
57
- *
58
- * Applied via middleware header rather than Astro's built-in CSP because
59
- * Astro's auto-hashing defeats 'unsafe-inline' (CSP3 ignores 'unsafe-inline'
60
- * when hashes are present), which would break user-facing pages.
61
- *
62
- * img-src allows any HTTPS origin because the admin renders user content that
63
- * may reference external images (migrations, external hosting, embeds).
64
- * Plugin security does not rely on img-src -- sandboxed plugins run behind the
65
- * host-mediated `SandboxRunner` boundary with no DOM access, and connect-src
66
- * 'self' blocks fetch-based exfiltration from the admin itself.
58
+ * S3-compatible adapters resolve omitted fields from matching S3_* env vars at
59
+ * runtime, so the CSP helper must mirror that endpoint lookup.
67
60
  */
68
- function buildDinewayCsp() {
61
+ function getConfiguredStorageEndpoint(storage) {
62
+ const config = storage?.config;
63
+ if (typeof config === "object" && config !== null && "endpoint" in config) {
64
+ const endpoint = config.endpoint;
65
+ if (typeof endpoint === "string") return endpoint;
66
+ }
67
+ if (storage?.entrypoint === S3_ADAPTER_ENTRYPOINT) {
68
+ const envEndpoint = typeof process !== "undefined" && process.env ? process.env.S3_ENDPOINT : void 0;
69
+ if (envEndpoint) return envEndpoint;
70
+ }
71
+ }
72
+ function getHttpOrigin(rawUrl) {
73
+ if (!rawUrl) return void 0;
74
+ try {
75
+ const url = new URL(rawUrl);
76
+ if (url.protocol !== "http:" && url.protocol !== "https:") return void 0;
77
+ return url.origin;
78
+ } catch {
79
+ return;
80
+ }
81
+ }
82
+ function buildDinewayCsp(storageEndpoint) {
83
+ const connectSrc = ["connect-src 'self'"];
84
+ const storageOrigin = getHttpOrigin(storageEndpoint);
85
+ if (storageOrigin) connectSrc.push(storageOrigin);
69
86
  return [
70
87
  "default-src 'self'",
71
88
  "script-src 'self' 'unsafe-inline'",
72
89
  "style-src 'self' 'unsafe-inline'",
73
- "connect-src 'self'",
90
+ connectSrc.join(" "),
74
91
  "form-action 'self'",
75
92
  "frame-ancestors 'none'",
76
93
  "img-src 'self' https: data: blob:",
@@ -143,7 +160,8 @@ const PUBLIC_API_EXACT = new Set([
143
160
  "/_dineway/api/auth/setup-token/verify",
144
161
  "/_dineway/api/oauth/token",
145
162
  "/_dineway/api/snapshot",
146
- "/_dineway/api/search"
163
+ "/_dineway/api/search",
164
+ "/_dineway/api/search/suggest"
147
165
  ]);
148
166
  const CSRF_EXEMPT_PUBLIC_ROUTES = new Set([
149
167
  "/_dineway/api/auth/setup-token/verify",
@@ -229,11 +247,11 @@ const onRequest = defineMiddleware(async (context, next) => {
229
247
  const scopeError = enforceTokenScope(url.pathname, method, context.locals.tokenScopes);
230
248
  if (scopeError) return scopeError;
231
249
  const response = await next();
232
- if (!import.meta.env.DEV) response.headers.set("Content-Security-Policy", buildDinewayCsp());
250
+ if (!import.meta.env.DEV) response.headers.set("Content-Security-Policy", buildDinewayCsp(getConfiguredStorageEndpoint(context.locals.dineway?.config.storage)));
233
251
  return response;
234
252
  }
235
253
  const response = await handleDinewayAuth(context, next);
236
- if (!import.meta.env.DEV) response.headers.set("Content-Security-Policy", buildDinewayCsp());
254
+ if (!import.meta.env.DEV) response.headers.set("Content-Security-Policy", buildDinewayCsp(getConfiguredStorageEndpoint(context.locals.dineway?.config.storage)));
237
255
  return response;
238
256
  });
239
257
  /**
@@ -283,7 +301,7 @@ async function handlePluginRouteAuth(context, next) {
283
301
  }
284
302
  try {
285
303
  const { session } = context;
286
- const sessionUser = await session?.get("user");
304
+ const sessionUser = await resolveSessionUser(session);
287
305
  if (sessionUser?.id && dineway?.db) {
288
306
  const user = await createKyselyAdapter(dineway.db).getUserById(sessionUser.id);
289
307
  if (user && !user.disabled) locals.user = user;
@@ -301,7 +319,7 @@ async function handlePublicRouteAuth(context, next) {
301
319
  const { locals, session } = context;
302
320
  const { dineway } = locals;
303
321
  try {
304
- const sessionUser = await session?.get("user");
322
+ const sessionUser = await resolveSessionUser(session);
305
323
  if (sessionUser?.id && dineway?.db) {
306
324
  const user = await createKyselyAdapter(dineway.db).getUserById(sessionUser.id);
307
325
  if (user && !user.disabled) locals.user = user;
@@ -441,7 +459,7 @@ async function handlePasskeyAuth(context, next, isApiRoute) {
441
459
  const { url, locals, session } = context;
442
460
  const { dineway } = locals;
443
461
  try {
444
- const sessionUser = await session?.get("user");
462
+ const sessionUser = await resolveSessionUser(session);
445
463
  if (!sessionUser?.id) {
446
464
  if (isApiRoute) return Response.json({ error: {
447
465
  code: "NOT_AUTHENTICATED",
@@ -1,10 +1,11 @@
1
1
  import "../../dialect-helpers-fk43GbDb.mjs";
2
2
  import { getRequestContext } from "../../request-context.mjs";
3
3
  import "../../base64-F8-DUraK.mjs";
4
- import "../../types-CSgR9nQB.mjs";
5
- import { r as getDb } from "../../loader--GOYux8M.mjs";
6
- import { n as alternateTrailingSlashPath, t as RedirectRepository } from "../../redirect-CEACczxo.mjs";
7
- import { a as matchCachedPatterns, n as compileRedirectRules, o as setCachedRedirects, r as getCachedRedirects } from "../../cache-Bac05gBd.mjs";
4
+ import "../../types-Dq1qT19x.mjs";
5
+ import { r as getDb } from "../../loader-CjWqjweO.mjs";
6
+ import { n as alternateTrailingSlashPath, t as RedirectRepository } from "../../redirect-BAjt4Z6b.mjs";
7
+ import { a as matchCachedPatterns, n as compileRedirectRules, o as setCachedRedirects, r as getCachedRedirects } from "../../cache-C-FNTFYK.mjs";
8
+ import { n as isTerminalStatus } from "../../status-DANd8ERo.mjs";
8
9
  import { defineMiddleware } from "astro:middleware";
9
10
 
10
11
  //#region src/astro/middleware/redirect.ts
@@ -61,6 +62,10 @@ const onRequest = defineMiddleware(async (context, next) => {
61
62
  rules = cached.patterns;
62
63
  }
63
64
  if (exact) {
65
+ if (isTerminalStatus(exact.type)) {
66
+ repo.recordHit(exact.id).catch(() => {});
67
+ return new Response(null, { status: exact.type });
68
+ }
64
69
  if (exact.destination.startsWith("//") || exact.destination.startsWith("/\\")) return next();
65
70
  repo.recordHit(exact.id).catch(() => {});
66
71
  const code = isRedirectCode(exact.type) ? exact.type : 301;
@@ -69,6 +74,10 @@ const onRequest = defineMiddleware(async (context, next) => {
69
74
  const patternMatch = matchCachedPatterns(rules, pathname);
70
75
  if (patternMatch) {
71
76
  const { redirect, destination } = patternMatch;
77
+ if (isTerminalStatus(redirect.type)) {
78
+ repo.recordHit(redirect.id).catch(() => {});
79
+ return new Response(null, { status: redirect.type });
80
+ }
72
81
  if (destination.startsWith("//") || destination.startsWith("/\\")) return next();
73
82
  repo.recordHit(redirect.id).catch(() => {});
74
83
  const code = isRedirectCode(redirect.type) ? redirect.type : 301;
@@ -1,8 +1,8 @@
1
1
  import { runWithContext } from "../../request-context.mjs";
2
2
  import "../../base64-F8-DUraK.mjs";
3
- import "../../options-LsPjZlqD.mjs";
4
- import { n as parseContentId, r as verifyPreviewToken } from "../../tokens-SLmgowfd.mjs";
5
- import { i as resolveSecretsCached } from "../../secrets-CeGpBFV2.mjs";
3
+ import "../../options-DQPTH5n0.mjs";
4
+ import { a as resolveSecretsCached } from "../../secrets-CDZo2k8L.mjs";
5
+ import { n as parseContentId, r as verifyPreviewToken } from "../../tokens-1RK1n6ED.mjs";
6
6
  import { defineMiddleware } from "astro:middleware";
7
7
 
8
8
  //#region src/visual-editing/toolbar.ts
@@ -1319,10 +1319,12 @@ async function injectToolbar(response, toolbarHtml) {
1319
1319
  const html = await response.text();
1320
1320
  if (!html.includes("</body>")) return new Response(html, response);
1321
1321
  const injected = html.replace("</body>", `${toolbarHtml}</body>`);
1322
- return new Response(injected, {
1322
+ const result = new Response(injected, {
1323
1323
  status: response.status,
1324
1324
  headers: response.headers
1325
1325
  });
1326
+ result.headers.set("Cache-Control", "private, no-store");
1327
+ return result;
1326
1328
  }
1327
1329
  const onRequest = defineMiddleware(async (context, next) => {
1328
1330
  const { cookies, url } = context;
@@ -1332,7 +1334,8 @@ const onRequest = defineMiddleware(async (context, next) => {
1332
1334
  const requestDb = context.locals.__dinewayRequestDb;
1333
1335
  if (requestDb) return runWithContext({
1334
1336
  editMode: cookies.get("dineway-edit-mode")?.value === "true",
1335
- db: requestDb
1337
+ db: requestDb,
1338
+ dbIsIsolated: true
1336
1339
  }, () => next());
1337
1340
  const hasEditCookie = cookies.get("dineway-edit-mode")?.value === "true";
1338
1341
  const hasPreviewToken = url.searchParams.has("_preview");
@@ -1,4 +1,4 @@
1
- import { t as Database } from "../../types-CuJOqHfM.mjs";
1
+ import { t as Database } from "../../types-DU0bU2Wu.mjs";
2
2
  import { Kysely } from "kysely";
3
3
  import * as astro from "astro";
4
4