dineway 0.1.48 → 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 (420) hide show
  1. package/dist/{activity-events-C9u37D5z.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-DhipQNLb.mjs → allowed-origins-_oeyP6x-.mjs} +1 -1
  5. package/dist/api/route-utils.d.mts +10 -10
  6. package/dist/api/route-utils.mjs +17 -14
  7. package/dist/api/schemas/index.d.mts +2 -2
  8. package/dist/api/schemas/index.mjs +5 -4
  9. package/dist/{api-Eiy8_zVZ.mjs → api-ByrU2q-Z.mjs} +61 -37
  10. package/dist/{api-tokens-DtvdtIkm.mjs → api-tokens-CjVMQT-X.mjs} +6 -2
  11. package/dist/{apply-CX3no7XE.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 +14 -5
  21. package/dist/astro/middleware/request-context.mjs +9 -6
  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 +334 -193
  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 +22 -18
  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 +18 -15
  37. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +18 -15
  38. package/dist/astro/routes/api/admin/bylines/index.mjs +18 -15
  39. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +15 -13
  40. package/dist/astro/routes/api/admin/comments/_id_.mjs +7 -6
  41. package/dist/astro/routes/api/admin/comments/bulk.mjs +12 -10
  42. package/dist/astro/routes/api/admin/comments/counts.mjs +7 -6
  43. package/dist/astro/routes/api/admin/comments/index.mjs +12 -10
  44. package/dist/astro/routes/api/admin/context/_id_/history.mjs +27 -25
  45. package/dist/astro/routes/api/admin/context/_id_/index.mjs +27 -25
  46. package/dist/astro/routes/api/admin/context/_id_/review.mjs +32 -29
  47. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +32 -29
  48. package/dist/astro/routes/api/admin/context/diff.mjs +31 -28
  49. package/dist/astro/routes/api/admin/context/index.mjs +32 -29
  50. package/dist/astro/routes/api/admin/context/stale.mjs +31 -28
  51. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +27 -25
  52. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +31 -28
  53. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +31 -28
  54. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +28 -26
  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 +56 -52
  59. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +56 -52
  60. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +48 -44
  61. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +54 -50
  62. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +53 -49
  63. package/dist/astro/routes/api/admin/plugins/index.mjs +48 -44
  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 +47 -43
  66. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +53 -49
  67. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +47 -43
  68. package/dist/astro/routes/api/admin/plugins/updates.mjs +47 -43
  69. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +6 -6
  70. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +32 -28
  71. package/dist/astro/routes/api/admin/review-requests/index.mjs +11 -10
  72. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +47 -43
  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 +47 -43
  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 +10 -9
  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 +6 -6
  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 +16 -14
  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 +6 -6
  108. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +6 -6
  109. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +6 -6
  110. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +12 -11
  111. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +11 -10
  112. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +6 -6
  113. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
  114. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +11 -10
  115. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +17 -15
  116. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
  117. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +6 -6
  118. package/dist/astro/routes/api/content/_collection_/_id_.mjs +11 -10
  119. package/dist/astro/routes/api/content/_collection_/authors.mjs +2 -2
  120. package/dist/astro/routes/api/content/_collection_/index.mjs +11 -10
  121. package/dist/astro/routes/api/content/_collection_/trash.mjs +7 -6
  122. package/dist/astro/routes/api/dashboard.mjs +10 -9
  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 +23 -11
  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 +85 -38
  130. package/dist/astro/routes/api/import/wordpress/media.d.mts +13 -1
  131. package/dist/astro/routes/api/import/wordpress/media.mjs +20 -14
  132. package/dist/astro/routes/api/import/wordpress/prepare.mjs +36 -33
  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 +121 -101
  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 +25 -13
  137. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
  138. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +56 -2
  139. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +284 -56
  140. package/dist/astro/routes/api/manifest.mjs +14 -5
  141. package/dist/astro/routes/api/mcp.mjs +266 -70
  142. package/dist/astro/routes/api/media/_id_/confirm.mjs +39 -11
  143. package/dist/astro/routes/api/media/_id_.mjs +11 -7
  144. package/dist/astro/routes/api/media/file/_...key_.mjs +1 -1
  145. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
  146. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
  147. package/dist/astro/routes/api/media/providers/index.mjs +2 -2
  148. package/dist/astro/routes/api/media/upload-url.mjs +12 -11
  149. package/dist/astro/routes/api/media.mjs +28 -35
  150. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +32 -29
  151. package/dist/astro/routes/api/menus/_name_/items.mjs +32 -29
  152. package/dist/astro/routes/api/menus/_name_/reorder.mjs +32 -29
  153. package/dist/astro/routes/api/menus/_name_/translations.mjs +32 -29
  154. package/dist/astro/routes/api/menus/_name_.mjs +32 -29
  155. package/dist/astro/routes/api/menus/index.mjs +32 -29
  156. package/dist/astro/routes/api/oauth/authorize.mjs +7 -7
  157. package/dist/astro/routes/api/oauth/device/authorize.mjs +6 -6
  158. package/dist/astro/routes/api/oauth/device/code.mjs +9 -9
  159. package/dist/astro/routes/api/oauth/device/token.mjs +8 -8
  160. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  161. package/dist/astro/routes/api/oauth/token/refresh.mjs +6 -6
  162. package/dist/astro/routes/api/oauth/token/revoke.mjs +6 -6
  163. package/dist/astro/routes/api/oauth/token.mjs +6 -6
  164. package/dist/astro/routes/api/openapi.json.mjs +4 -3
  165. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +30 -30
  166. package/dist/astro/routes/api/redirects/404s/index.mjs +12 -11
  167. package/dist/astro/routes/api/redirects/404s/summary.mjs +12 -11
  168. package/dist/astro/routes/api/redirects/_id_.mjs +33 -30
  169. package/dist/astro/routes/api/redirects/index.mjs +33 -30
  170. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
  171. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +2 -2
  172. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +48 -44
  173. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +48 -44
  174. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +48 -44
  175. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +48 -44
  176. package/dist/astro/routes/api/schema/collections/index.mjs +48 -44
  177. package/dist/astro/routes/api/schema/index.mjs +13 -14
  178. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +47 -43
  179. package/dist/astro/routes/api/schema/orphans/index.mjs +47 -43
  180. package/dist/astro/routes/api/search/enable.mjs +12 -11
  181. package/dist/astro/routes/api/search/index.mjs +11 -10
  182. package/dist/astro/routes/api/search/rebuild.mjs +12 -11
  183. package/dist/astro/routes/api/search/stats.mjs +7 -7
  184. package/dist/astro/routes/api/search/suggest.mjs +11 -10
  185. package/dist/astro/routes/api/sections/_slug_.mjs +32 -29
  186. package/dist/astro/routes/api/sections/index.mjs +32 -29
  187. package/dist/astro/routes/api/settings/email.mjs +4 -4
  188. package/dist/astro/routes/api/settings.mjs +32 -29
  189. package/dist/astro/routes/api/setup/admin-verify.mjs +14 -13
  190. package/dist/astro/routes/api/setup/admin.mjs +12 -11
  191. package/dist/astro/routes/api/setup/dev-bypass.mjs +32 -26
  192. package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
  193. package/dist/astro/routes/api/setup/index.mjs +30 -26
  194. package/dist/astro/routes/api/setup/status.mjs +3 -3
  195. package/dist/astro/routes/api/snapshot.mjs +9 -8
  196. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +35 -32
  197. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +35 -32
  198. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +35 -32
  199. package/dist/astro/routes/api/taxonomies/index.mjs +35 -32
  200. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  201. package/dist/astro/routes/api/typegen.mjs +4 -4
  202. package/dist/astro/routes/api/well-known/auth.mjs +3 -3
  203. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +3 -3
  204. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +3 -3
  205. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +31 -28
  206. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +32 -29
  207. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +32 -29
  208. package/dist/astro/routes/api/widget-areas/_name_.mjs +29 -27
  209. package/dist/astro/routes/api/widget-areas/index.mjs +32 -29
  210. package/dist/astro/routes/api/widget-components.mjs +2 -2
  211. package/dist/astro/routes/robots.txt.mjs +9 -8
  212. package/dist/astro/routes/sitemap-_collection_.xml.mjs +24 -15
  213. package/dist/astro/routes/sitemap.xml.mjs +10 -9
  214. package/dist/astro/session-driver.d.mts +1 -1
  215. package/dist/astro/session-driver.mjs +3 -3
  216. package/dist/astro/types.d.mts +21 -13
  217. package/dist/{audit-D1cbG7xH.mjs → audit-ByVKIwWF.mjs} +1 -1
  218. package/dist/auth/providers/github.d.mts +1 -1
  219. package/dist/auth/providers/google.d.mts +1 -1
  220. package/dist/{auth-control-guard-Dr14I98m.mjs → auth-control-guard-CqeUmQsv.mjs} +1 -1
  221. package/dist/{authorize-BLO0m7fW.mjs → authorize-CcBxcHtz.mjs} +1 -1
  222. package/dist/{briefing-CObXGOGz.mjs → briefing-BJaJI8dm.mjs} +2 -1
  223. package/dist/{briefing-gKWiGLt1.mjs → briefing-CawZ59CY.mjs} +90 -28
  224. package/dist/bundle-7C_DpkEq.mjs +602 -0
  225. package/dist/{byline-1ntDwv8c.mjs → byline-e51-fWRs.mjs} +30 -62
  226. package/dist/{byline-fields-BX7rWKNU.d.mts → byline-fields-CUvbslGc.d.mts} +49 -6
  227. package/dist/{byline-fields-C9_iaPaM.mjs → byline-fields-D-N5qVIG.mjs} +1 -1
  228. package/dist/{byline-fields-B-ZkoVft.mjs → byline-fields-DOJO16Gm.mjs} +3 -3
  229. package/dist/{byline-registry-CUSvkasJ.mjs → byline-registry-87nNnYl4.mjs} +2 -2
  230. package/dist/{bylines-bC15ZqAv.mjs → bylines-CMQNCNFh.mjs} +9 -3
  231. package/dist/{bylines-DtxChhN_.mjs → bylines-y4LO-dTj.mjs} +5 -5
  232. package/dist/{cache-DbKyr60Q.mjs → cache-C-FNTFYK.mjs} +2 -2
  233. package/dist/{chunks-C5zp2xir.mjs → chunks-CxBt-GxR.mjs} +1 -1
  234. package/dist/cli/index.mjs +820 -1276
  235. package/dist/client/external-auth-headers.d.mts +1 -1
  236. package/dist/client/index.d.mts +1 -1
  237. package/dist/client/index.mjs +2 -1
  238. package/dist/{comment-CXDOQ93N.mjs → comment-DlA4iChg.mjs} +13 -3
  239. package/dist/comment-reaction-DfFao1ST.mjs +58 -0
  240. package/dist/{comments-hK-rdzJ9.mjs → comments-DApFGMsP.mjs} +1 -1
  241. package/dist/{content-QaryevFO.mjs → content-Bh4BDjv8.mjs} +51 -34
  242. package/dist/content-refresh-CgutSUfO.mjs +1576 -0
  243. package/dist/{context-CoYb_fvK.mjs → context-C5W3G18y.mjs} +111 -50
  244. package/dist/{context-DBL1ib4v.mjs → context-CK4ym2Sf.mjs} +2 -2
  245. package/dist/{context-route-helpers-CYQVmbIm.mjs → context-route-helpers-MASyGgWf.mjs} +2 -1
  246. package/dist/{cron-DxCAU_Sn.mjs → cron-cKcNTix_.mjs} +7 -3
  247. package/dist/{dashboard-DNlqsknJ.mjs → dashboard-DQkVT7Ei.mjs} +4 -4
  248. package/dist/db/index.d.mts +3 -3
  249. package/dist/db/index.mjs +1 -1
  250. package/dist/db/libsql.d.mts +1 -1
  251. package/dist/db/postgres.d.mts +1 -1
  252. package/dist/db/sqlite.d.mts +1 -1
  253. package/dist/{device-flow-DygsFPGL.mjs → device-flow-BnqRH-T9.mjs} +5 -5
  254. package/dist/{placeholder-BDo81Is5.mjs → enrich-DIFIFA8O.mjs} +36 -9
  255. package/dist/{error-DCSuUAZW.mjs → error-CytFlgcd.mjs} +5 -0
  256. package/dist/field-defs-cache-DRNdhBJv.mjs +49 -0
  257. package/dist/{fts-manager-CIZlScg5.mjs → fts-manager-Crzypjqu.mjs} +1 -1
  258. package/dist/hitl-Hw1RmWOq.mjs +677 -0
  259. package/dist/{hitl-requests-CGQwOEiq.mjs → hitl-requests-B4Vbcmaq.mjs} +2 -2
  260. package/dist/{hitl-route-helpers-GSDLNPpN.mjs → hitl-route-helpers-hEVzvP8l.mjs} +5 -4
  261. package/dist/import-Bh9biJfx.mjs +1354 -0
  262. package/dist/{index-CwRuZ-u8.d.mts → index-D4y6NGiy.d.mts} +75 -3
  263. package/dist/index.d.mts +17 -16
  264. package/dist/index.mjs +81 -69
  265. package/dist/{jsonld-DZ67souc.d.mts → jsonld-Dq0gsnOH.d.mts} +8 -4
  266. package/dist/{load-xE01Jm0V.mjs → load-DmYeniXl.mjs} +1 -1
  267. package/dist/{loader-tg63WSY2.mjs → loader-CjWqjweO.mjs} +117 -31
  268. package/dist/{manifest-schema-qh2P7RDX.mjs → manifest-schema-BxVPYMJR.mjs} +34 -1
  269. package/dist/mcp-reviewed-executor-TwVbMzG6.mjs +555 -0
  270. package/dist/media/image-endpoint.d.mts +32 -0
  271. package/dist/media/image-endpoint.mjs +111 -0
  272. package/dist/media/index.d.mts +27 -2
  273. package/dist/media/index.mjs +5 -3
  274. package/dist/media/local-runtime.d.mts +16 -11
  275. package/dist/media/local-runtime.mjs +10 -8
  276. package/dist/{media-DUAjMfvR.mjs → media-DMj0grzC.mjs} +3 -1
  277. package/dist/{media-allowlist-BsXkT9RK.mjs → media-allowlist-BlVCSzHx.mjs} +1 -1
  278. package/dist/media-url-lEKSrpr9.mjs +20 -0
  279. package/dist/{menus-WpFRMXjz.mjs → menus-TaW1gKnk.mjs} +19 -5
  280. package/dist/{menus-DU1eZqw_.mjs → menus-xvsnVZXw.mjs} +80 -15
  281. package/dist/{normalize-DUnoXAa9.mjs → normalize-5ek_z7de.mjs} +8 -1
  282. package/dist/{oauth-authorization-D-1p52Je.mjs → oauth-authorization-DiaGvRVz.mjs} +5 -5
  283. package/dist/{oauth-clients-CzeMGyUU.mjs → oauth-clients-Dl9E8dEM.mjs} +2 -2
  284. package/dist/object-cache/memory.d.mts +14 -0
  285. package/dist/object-cache/memory.mjs +55 -0
  286. package/dist/object-cache-D51qOseS.mjs +419 -0
  287. package/dist/page/index.d.mts +4 -3
  288. package/dist/page/index.mjs +2 -2
  289. package/dist/{parse-CneSgl7-.mjs → parse-CbymENaR.mjs} +1 -1
  290. package/dist/{parser-DxfsARXL.mjs → parser-C1nYd-81.mjs} +151 -9
  291. package/dist/{placeholder-CXfoCtCd.d.mts → placeholder-uvNRZBX9.d.mts} +12 -4
  292. package/dist/plugin-utils.d.mts +9 -9
  293. package/dist/plugins/adapt-sandbox-entry.d.mts +9 -9
  294. package/dist/plugins/adapt-sandbox-entry.mjs +11 -2
  295. package/dist/{plugins-C57YQi4l.mjs → plugins-BolVa-tl.mjs} +832 -64
  296. package/dist/{transport-LSdZVXHF.mjs → portable-text-dA_UlJwW.mjs} +1 -134
  297. package/dist/{preview-D5rvDhRt.mjs → preview-vSVg6fwG.mjs} +4 -3
  298. package/dist/process-cache-7xgAO9JY.mjs +106 -0
  299. package/dist/{provider-loader-9it4vd6L.d.mts → provider-loader-MD8zAbnH.d.mts} +1 -1
  300. package/dist/{public-url-DLUM5OOv.mjs → public-url-BEz_sM9n.mjs} +24 -18
  301. package/dist/{public-url-B5HaoGzj.d.mts → public-url-gsp3oUbu.d.mts} +5 -4
  302. package/dist/{query-BYc3oruA.mjs → query-CfRCdaL3.mjs} +281 -76
  303. package/dist/{query-DKEwzobh.mjs → query-jaAmw8E1.mjs} +11 -6
  304. package/dist/{rate-limit-i0G3IAOX.mjs → rate-limit-ZLdyWoZF.mjs} +2 -2
  305. package/dist/{redirect-C2zXRj3c.mjs → redirect-BAjt4Z6b.mjs} +2 -2
  306. package/dist/{redirects-YZo_znWG.mjs → redirects-BTdwpQtE.mjs} +47 -24
  307. package/dist/{redirects-ocRJmQHP.mjs → redirects-CA-xylPG.mjs} +19 -11
  308. package/dist/{registry-CTkbIDB9.mjs → registry-CtyVedcN.mjs} +130 -77
  309. package/dist/request-context.d.mts +2 -0
  310. package/dist/{request-meta-DAb6xaP9.mjs → request-meta-CUypToDJ.mjs} +1 -1
  311. package/dist/{review-requests-C0un5kdV.mjs → review-requests-C9Ff11Vq.mjs} +1 -1
  312. package/dist/{review-requests-gGMyYYhy.mjs → review-requests-DUyEmtmG.mjs} +1 -1
  313. package/dist/{runner-D4FL9usy.d.mts → runner-1tC2tIRV.d.mts} +1 -1
  314. package/dist/runner-DB7CRfOF.mjs +6740 -0
  315. package/dist/{runtime-DEWQpZ-4.d.mts → runtime-BOeiQsCv.d.mts} +2028 -1564
  316. package/dist/runtime.d.mts +10 -10
  317. package/dist/runtime.mjs +4 -4
  318. package/dist/schema-DXdYj4R3.mjs +8 -0
  319. package/dist/{search-axGQ1KY3.mjs → search-DSaLgEFI.mjs} +5 -3
  320. package/dist/{secrets-062Izo8i.mjs → secrets-CDZo2k8L.mjs} +15 -12
  321. package/dist/{sections-OLKgXL10.mjs → sections-PVVXHGfp.mjs} +2 -2
  322. package/dist/seed/index.d.mts +2 -2
  323. package/dist/seed/index.mjs +22 -19
  324. package/dist/seo/index.d.mts +1 -1
  325. package/dist/seo/index.mjs +3 -12
  326. package/dist/{seo-Cd45Po8L.mjs → seo-CQG3GCHQ.mjs} +5 -2
  327. package/dist/{seo-contributions-CqVvReEj.mjs → seo-contributions-C1EnikHB.mjs} +11 -3
  328. package/dist/{seo-5lJOtB5J.mjs → seo-qa7Dn0jK.mjs} +22 -4
  329. package/dist/{service-Bwad8s5h.mjs → service-DiN4ZuPp.mjs} +2 -2
  330. package/dist/session-user-CAKImna3.mjs +22 -0
  331. package/dist/{settings-yLjz_I4T.mjs → settings-BbqgHWpU.mjs} +28 -55
  332. package/dist/{settings-lAHjaUit.mjs → settings-i4VPP8bT.mjs} +2 -2
  333. package/dist/{setup-complete--PradA4R.mjs → setup-complete-B8fl-mjV.mjs} +1 -1
  334. package/dist/{site-activity-D7Xyropw.mjs → site-activity-Dy3FROs0.mjs} +1 -1
  335. package/dist/{site-context-DaN9Z91j.mjs → site-context-DQiL8Fl5.mjs} +23 -652
  336. package/dist/{site-url-DpGZo9Z6.mjs → site-url-BML3GQYm.mjs} +1 -1
  337. package/dist/status-DANd8ERo.mjs +21 -0
  338. package/dist/storage/local.d.mts +1 -1
  339. package/dist/storage/local.mjs +1 -1
  340. package/dist/storage/s3.d.mts +1 -1
  341. package/dist/storage/s3.mjs +1 -1
  342. package/dist/{taxonomies-uXVEoQso.mjs → taxonomies-9s-v03H-.mjs} +36 -29
  343. package/dist/taxonomies-DRiixp_E.mjs +443 -0
  344. package/dist/{taxonomy-CBmkmMuU.mjs → taxonomy-Dvsw6BOs.mjs} +44 -9
  345. package/dist/{tokens-CjSgb0AC.mjs → tokens-1RK1n6ED.mjs} +1 -1
  346. package/dist/transport-BNmCqLu7.mjs +134 -0
  347. package/dist/types-4garmdWa.mjs +66 -0
  348. package/dist/{types-DSPGWjxO.d.mts → types-C8XW6L19.d.mts} +225 -4
  349. package/dist/{types-GaCtZ1k9.d.mts → types-CDpH6MA4.d.mts} +18 -0
  350. package/dist/{types-DRIKLmJI.d.mts → types-C_ly5eTp.d.mts} +17 -2
  351. package/dist/types-DF7ZuGGk.d.mts +118 -0
  352. package/dist/types-DU0bU2Wu.d.mts +2392 -0
  353. package/dist/{types-CwawBUTa.d.mts → types-DW_-sFyz.d.mts} +2 -1
  354. package/dist/{types-DfuD0Afl.mjs → types-Dq1qT19x.mjs} +2 -2
  355. package/dist/ui/server-runtime.d.mts +15 -15
  356. package/dist/ui/server-runtime.mjs +25 -21
  357. package/dist/url-Cac7a9QZ.mjs +33 -0
  358. package/dist/{user-DtNmjNYt.mjs → user-BIZPzCb9.mjs} +2 -2
  359. package/dist/{utils-wv-zvC-Y.mjs → utils-CMDhr5Xd.mjs} +129 -7
  360. package/dist/{validate-BMs11tan.d.mts → validate-CZvb-BKB.d.mts} +10 -7
  361. package/dist/{validate-7SYRbz2f.mjs → validate-DNs0pTSc.mjs} +11 -6
  362. package/dist/version-BTvfRGc6.mjs +6 -0
  363. package/dist/{widgets-DR8EHuRO.mjs → widgets-f0ibZUIq.mjs} +46 -43
  364. package/dist/{wordpress-slugs-Dvhxh4cl.mjs → wordpress-slugs-BhHJX8XE.mjs} +1 -1
  365. package/dist/{zod-generator-BS9-umbk.mjs → zod-generator-B7TMjyFJ.mjs} +41 -13
  366. package/package.json +31 -8
  367. package/src/components/Block.astro +50 -0
  368. package/src/components/Comments.astro +143 -1
  369. package/src/components/DinewayHead.astro +19 -2
  370. package/src/components/DinewayImage.astro +66 -33
  371. package/src/components/DinewayMedia.astro +1 -2
  372. package/src/components/Image.astro +85 -40
  373. package/src/components/InlinePortableTextEditor.tsx +12 -2
  374. package/src/components/JsonLdScript.astro +9 -0
  375. package/src/components/LiveSearch.astro +40 -4
  376. package/src/components/index.ts +4 -0
  377. package/src/components/live-search-routing.ts +30 -0
  378. package/src/components/portable-text-text-align.ts +15 -0
  379. package/src/ui.ts +2 -0
  380. package/dist/entity-aliases-Egjmqc7I.mjs +0 -51
  381. package/dist/import-CvHY6sf5.mjs +0 -684
  382. package/dist/runner-B-tbV751.mjs +0 -2741
  383. package/dist/schema-B6zyB-Xn.mjs +0 -8
  384. package/dist/taxonomies-CNOGeC-3.mjs +0 -327
  385. package/dist/types-eu5UDgHN.d.mts +0 -652
  386. package/dist/version-xlzMSXF2.mjs +0 -6
  387. /package/dist/{adapters-OQCImOL7.d.mts → adapters-NVSs4UH7.d.mts} +0 -0
  388. /package/dist/{api-tokens-CYUoFGo7.mjs → api-tokens-2r7OWi_I.mjs} +0 -0
  389. /package/dist/{base64-C1Q9yr0B.mjs → base64-F8-DUraK.mjs} +0 -0
  390. /package/dist/{challenge-store-CRSz-Xim.mjs → challenge-store-Bjlepa2E.mjs} +0 -0
  391. /package/dist/{components--pg6zBvu.mjs → components-Bclf98Be.mjs} +0 -0
  392. /package/dist/{context-types-DQh_XKkn.mjs → context-types-DqTo6C79.mjs} +0 -0
  393. /package/dist/{default-B6iaLvP7.mjs → default--K40jqm0.mjs} +0 -0
  394. /package/dist/{email-console-BOVqIYpB.mjs → email-console-ChgKFO8-.mjs} +0 -0
  395. /package/dist/{escape-BDgouFFY.mjs → escape-Bd4P_xKg.mjs} +0 -0
  396. /package/dist/{experimental-workflows-Dh4DUoD_.mjs → experimental-workflows-BMsUnIAw.mjs} +0 -0
  397. /package/dist/{mime-8pAB8-77.mjs → mime-CA7Lgovc.mjs} +0 -0
  398. /package/dist/{mode-CpyEz8pe.mjs → mode-C4CIyjtR.mjs} +0 -0
  399. /package/dist/{oauth-state-store-qncPB_IU.mjs → oauth-state-store-CNoXafF7.mjs} +0 -0
  400. /package/dist/{oauth-user-lookup-BFjWF8wK.mjs → oauth-user-lookup-Ygw4bNyt.mjs} +0 -0
  401. /package/dist/{options-BvJoSSJR.mjs → options-DQPTH5n0.mjs} +0 -0
  402. /package/dist/{passkey-config-DzHQK90v.mjs → passkey-config-BUwu8BA3.mjs} +0 -0
  403. /package/dist/{patterns-r-0n824Y.mjs → patterns-BhAvqO0S.mjs} +0 -0
  404. /package/dist/{provider-loader-DzUxejk7.mjs → provider-loader-D0w9dqjm.mjs} +0 -0
  405. /package/dist/{redirect-BjIBtDWY.mjs → redirect-wphRBv4y.mjs} +0 -0
  406. /package/dist/{request-cache-CYMbwZc6.mjs → request-cache-D9GQBxMP.mjs} +0 -0
  407. /package/dist/{resolve-DTuDyYKs.mjs → resolve-Cb6Dbz-C.mjs} +0 -0
  408. /package/dist/{setup-nonce-pyGfc9hV.mjs → setup-nonce-CoyjILvW.mjs} +0 -0
  409. /package/dist/{sidecar-client-mJxwayYN.mjs → sidecar-client-C3mqXg4C.mjs} +0 -0
  410. /package/dist/{slugify-BzGxlOFx.mjs → slugify-KSsVD_D3.mjs} +0 -0
  411. /package/dist/{ssrf-DiKqWd3N.mjs → ssrf-DWe8jwAp.mjs} +0 -0
  412. /package/dist/{transaction-CShMWIej.mjs → transaction-C2EOMTJA.mjs} +0 -0
  413. /package/dist/{transport-BnsNxh2l.d.mts → transport-CcJu3Co8.d.mts} +0 -0
  414. /package/dist/{trusted-proxy-BgIIcbsN.mjs → trusted-proxy-DTXQ2IMv.mjs} +0 -0
  415. /package/dist/{types-BO8TGjS8.mjs → types-B3t5cxhU.mjs} +0 -0
  416. /package/dist/{types-nP9vGUFq.d.mts → types-C46EvNdc.d.mts} +0 -0
  417. /package/dist/{types-Cg276-3z.mjs → types-C5CVgwsV.mjs} +0 -0
  418. /package/dist/{types-DZpT-PnG.d.mts → types-POH8PQZh.d.mts} +0 -0
  419. /package/dist/{types-Dryvv7LH.d.mts → types-Rc3gQqqw.d.mts} +0 -0
  420. /package/dist/{url-w7Mp5qAD.mjs → url-CpyFDFpO.mjs} +0 -0
@@ -1,11 +1,11 @@
1
- import { Gn as EntryFilter, Jn as dinewayLoader, Un as CollectionFilter, Wn as EntryData, Yn as getDb } from "./runtime-DEWQpZ-4.mjs";
2
- import "./types-eu5UDgHN.mjs";
3
- import "./types-DSPGWjxO.mjs";
4
- import "./types-Dryvv7LH.mjs";
5
- import "./runner-D4FL9usy.mjs";
6
- import "./index-CwRuZ-u8.mjs";
7
- import "./byline-fields-BX7rWKNU.mjs";
8
- import "./types-GaCtZ1k9.mjs";
9
- import "./validate-BMs11tan.mjs";
10
- import { t as getMediaProvider } from "./provider-loader-9it4vd6L.mjs";
1
+ import { $i as EntryData, Qi as CollectionFilter, ea as EntryFilter, ia as getDb, ra as dinewayLoader } from "./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";
7
+ import "./byline-fields-CUvbslGc.mjs";
8
+ import "./types-CDpH6MA4.mjs";
9
+ import "./validate-CZvb-BKB.mjs";
10
+ import { t as getMediaProvider } from "./provider-loader-MD8zAbnH.mjs";
11
11
  export { type CollectionFilter, type EntryData, type EntryFilter, dinewayLoader, getDb, getMediaProvider };
package/dist/runtime.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import "./dialect-helpers-fk43GbDb.mjs";
2
- import "./base64-C1Q9yr0B.mjs";
3
- import "./types-DfuD0Afl.mjs";
4
- import { n as dinewayLoader, r as getDb } from "./loader-tg63WSY2.mjs";
5
- import { t as getMediaProvider } from "./provider-loader-DzUxejk7.mjs";
2
+ import "./base64-F8-DUraK.mjs";
3
+ import "./types-Dq1qT19x.mjs";
4
+ import { n as dinewayLoader, r as getDb } from "./loader-CjWqjweO.mjs";
5
+ import { t as getMediaProvider } from "./provider-loader-D0w9dqjm.mjs";
6
6
 
7
7
  export { dinewayLoader, getDb, getMediaProvider };
@@ -0,0 +1,8 @@
1
+ import { a as __exportAll } from "./runner-DB7CRfOF.mjs";
2
+ import { n as SchemaRegistry } from "./registry-CtyVedcN.mjs";
3
+
4
+ //#region src/schema/index.ts
5
+ var schema_exports = /* @__PURE__ */ __exportAll({ SchemaRegistry: () => SchemaRegistry });
6
+
7
+ //#endregion
8
+ export { schema_exports as t };
@@ -1,7 +1,7 @@
1
- import { a as __exportAll } from "./runner-B-tbV751.mjs";
1
+ import { a as __exportAll } from "./runner-DB7CRfOF.mjs";
2
2
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
3
- import { t as FTSManager } from "./fts-manager-CIZlScg5.mjs";
4
- import { r as getDb } from "./loader-tg63WSY2.mjs";
3
+ import { r as getDb } from "./loader-CjWqjweO.mjs";
4
+ import { t as FTSManager } from "./fts-manager-Crzypjqu.mjs";
5
5
  import { sql } from "kysely";
6
6
  import { toPlainText } from "@portabletext/toolkit";
7
7
 
@@ -174,6 +174,7 @@ async function getSuggestions(db, query, options = {}) {
174
174
  const results = await sql`
175
175
  SELECT
176
176
  c.id,
177
+ c.slug,
177
178
  ${displayColumnSql} as title
178
179
  FROM "${sql.raw(ftsTable)}" f
179
180
  JOIN "${sql.raw(contentTable)}" c ON f.id = c.id
@@ -188,6 +189,7 @@ async function getSuggestions(db, query, options = {}) {
188
189
  for (const row of results.rows) suggestions.push({
189
190
  collection,
190
191
  id: row.id,
192
+ slug: row.slug,
191
193
  title: row.title
192
194
  });
193
195
  }
@@ -1,5 +1,7 @@
1
- import { i as encodeBase64url, n as decodeBase64url } from "./base64-C1Q9yr0B.mjs";
2
- import { t as OptionsRepository } from "./options-BvJoSSJR.mjs";
1
+ import { i as encodeBase64url, n as decodeBase64url } from "./base64-F8-DUraK.mjs";
2
+ import { t as after } from "./after-BfniwgIf.mjs";
3
+ import { t as OptionsRepository } from "./options-DQPTH5n0.mjs";
4
+ import { r as processCachedAsync, t as createProcessCache } from "./process-cache-7xgAO9JY.mjs";
3
5
 
4
6
  //#region src/config/secrets.ts
5
7
  const ENCRYPTION_KEY_PREFIX = "dineway_enc_v1_";
@@ -9,7 +11,7 @@ const ENCRYPTION_KEY_BODY_LENGTH = 43;
9
11
  const GENERATED_SECRET_BYTES = 32;
10
12
  const BASE64URL_CHARSET_PATTERN = /^[A-Za-z0-9_-]+$/;
11
13
  const ENCRYPTION_KEY_PATTERN = new RegExp(`^${ENCRYPTION_KEY_PREFIX.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}[A-Za-z0-9_-]{${ENCRYPTION_KEY_BODY_LENGTH}}$`);
12
- const SECRETS_CACHE_KEY = Symbol.for("@dineway-ai/core/secrets-cache@1");
14
+ const SECRETS_CACHE_KEY = Symbol.for("@dineway-ai/core/secrets-cache@2");
13
15
  var DinewaySecretsError = class extends Error {
14
16
  name = "DinewaySecretsError";
15
17
  constructor(message, code) {
@@ -93,15 +95,16 @@ function getSecretsCache() {
93
95
  return entry.cache;
94
96
  }
95
97
  function resolveSecretsCached(db) {
96
- const cache = getSecretsCache();
97
- const cached = cache.get(db);
98
- if (cached) return cached;
99
- const promise = resolveSecrets({ db }).catch((error) => {
100
- cache.delete(db);
101
- throw error;
98
+ const caches = getSecretsCache();
99
+ let cache = caches.get(db);
100
+ if (!cache) {
101
+ cache = createProcessCache();
102
+ caches.set(db, cache);
103
+ }
104
+ return processCachedAsync(cache, () => resolveSecrets({ db }), {
105
+ anchor: (promise) => after(() => promise),
106
+ ownerTimeoutMs: 3e4
102
107
  });
103
- cache.set(db, promise);
104
- return promise;
105
108
  }
106
109
  async function ensureGeneratedOption(repo, optionKey) {
107
110
  const existing = await repo.get(optionKey);
@@ -157,4 +160,4 @@ function readDefaultEnv() {
157
160
  }
158
161
 
159
162
  //#endregion
160
- export { validateEncryptionKeyAtStartup as a, resolveSecretsCached as i, fingerprintKey as n, generateEncryptionKey as r, DinewaySecretsError as t };
163
+ export { resolveSecretsCached as a, parseEncryptionKeys as i, fingerprintKey as n, validateEncryptionKeyAtStartup as o, generateEncryptionKey as r, DinewaySecretsError as t };
@@ -1,5 +1,5 @@
1
- import { i as encodeCursor, r as decodeCursor } from "./types-DfuD0Afl.mjs";
2
- import { r as getDb } from "./loader-tg63WSY2.mjs";
1
+ import { i as encodeCursor, r as decodeCursor } from "./types-Dq1qT19x.mjs";
2
+ import { r as getDb } from "./loader-CjWqjweO.mjs";
3
3
  import { ulid } from "ulidx";
4
4
 
5
5
  //#region src/sections/index.ts
@@ -1,3 +1,3 @@
1
- import "../types-eu5UDgHN.mjs";
2
- import { _ as SeedTaxonomyTerm, a as applySeed, b as ValidationResult, c as SeedCollection, d as SeedFile, f as SeedMenu, g as SeedTaxonomy, h as SeedSection, i as defaultSeed, l as SeedContentEntry, m as SeedRedirect, n as loadSeed, o as SeedApplyOptions, p as SeedMenuItem, r as loadUserSeed, s as SeedApplyResult, t as validateSeed, u as SeedField, v as SeedWidget, y as SeedWidgetArea } from "../validate-BMs11tan.mjs";
1
+ import "../types-DU0bU2Wu.mjs";
2
+ import { _ as SeedTaxonomyTerm, a as applySeed, b as ValidationResult, c as SeedCollection, d as SeedFile, f as SeedMenu, g as SeedTaxonomy, h as SeedSection, i as defaultSeed, l as SeedContentEntry, m as SeedRedirect, n as loadSeed, o as SeedApplyOptions, p as SeedMenuItem, r as loadUserSeed, s as SeedApplyResult, t as validateSeed, u as SeedField, v as SeedWidget, y as SeedWidgetArea } from "../validate-CZvb-BKB.mjs";
3
3
  export { type SeedApplyOptions, type SeedApplyResult, type SeedCollection, type SeedContentEntry, type SeedField, type SeedFile, type SeedMenu, type SeedMenuItem, type SeedRedirect, type SeedSection, type SeedTaxonomy, type SeedTaxonomyTerm, type SeedWidget, type SeedWidgetArea, type ValidationResult, applySeed, defaultSeed, loadSeed, loadUserSeed, validateSeed };
@@ -1,22 +1,25 @@
1
1
  import "../dialect-helpers-fk43GbDb.mjs";
2
- import "../content-QaryevFO.mjs";
3
- import "../base64-C1Q9yr0B.mjs";
4
- import "../types-DfuD0Afl.mjs";
5
- import "../media-DUAjMfvR.mjs";
6
- import "../taxonomy-CBmkmMuU.mjs";
7
- import "../options-BvJoSSJR.mjs";
8
- import "../redirect-C2zXRj3c.mjs";
9
- import "../request-cache-CYMbwZc6.mjs";
10
- import "../byline-registry-CUSvkasJ.mjs";
11
- import "../byline-1ntDwv8c.mjs";
12
- import "../fts-manager-CIZlScg5.mjs";
13
- import "../registry-CTkbIDB9.mjs";
14
- import "../loader-tg63WSY2.mjs";
15
- import "../settings-yLjz_I4T.mjs";
16
- import "../ssrf-DiKqWd3N.mjs";
17
- import { t as validateSeed } from "../validate-7SYRbz2f.mjs";
18
- import { t as applySeed } from "../apply-CX3no7XE.mjs";
19
- import { t as defaultSeed } from "../default-B6iaLvP7.mjs";
20
- import { n as loadUserSeed, t as loadSeed } from "../load-xE01Jm0V.mjs";
2
+ import "../base64-F8-DUraK.mjs";
3
+ import "../types-Dq1qT19x.mjs";
4
+ import "../loader-CjWqjweO.mjs";
5
+ import "../object-cache-D51qOseS.mjs";
6
+ import "../content-Bh4BDjv8.mjs";
7
+ import "../media-DMj0grzC.mjs";
8
+ import "../taxonomy-Dvsw6BOs.mjs";
9
+ import "../options-DQPTH5n0.mjs";
10
+ import "../redirect-BAjt4Z6b.mjs";
11
+ import "../request-cache-D9GQBxMP.mjs";
12
+ import "../byline-registry-87nNnYl4.mjs";
13
+ import "../field-defs-cache-DRNdhBJv.mjs";
14
+ import "../byline-e51-fWRs.mjs";
15
+ import "../content-refresh-CgutSUfO.mjs";
16
+ import "../fts-manager-Crzypjqu.mjs";
17
+ import "../registry-CtyVedcN.mjs";
18
+ import "../settings-BbqgHWpU.mjs";
19
+ import "../ssrf-DWe8jwAp.mjs";
20
+ import { t as validateSeed } from "../validate-DNs0pTSc.mjs";
21
+ import { t as applySeed } from "../apply-bZswmZPm.mjs";
22
+ import { t as defaultSeed } from "../default--K40jqm0.mjs";
23
+ import { n as loadUserSeed, t as loadSeed } from "../load-DmYeniXl.mjs";
21
24
 
22
25
  export { applySeed, defaultSeed, loadSeed, loadUserSeed, validateSeed };
@@ -1,4 +1,4 @@
1
- import { a as ContentSeo } from "../types-DRIKLmJI.mjs";
1
+ import { a as ContentSeo } from "../types-C_ly5eTp.mjs";
2
2
 
3
3
  //#region src/seo/index.d.ts
4
4
  /**
@@ -1,3 +1,5 @@
1
+ import { t as buildSeoImageUrl } from "../media-url-lEKSrpr9.mjs";
2
+
1
3
  //#region src/seo/index.ts
2
4
  const TRAILING_SLASH_RE = /\/$/;
3
5
  const ABSOLUTE_URL_RE = /^https?:\/\//i;
@@ -24,7 +26,7 @@ function getSeoMeta(content, options = {}) {
24
26
  const pageTitle = seo.title || (typeof content.data.title === "string" ? content.data.title : null) || "";
25
27
  const fullTitle = siteTitle && pageTitle ? `${pageTitle}${separator}${siteTitle}` : pageTitle;
26
28
  const description = seo.description || (typeof content.data.excerpt === "string" ? content.data.excerpt : null) || null;
27
- const ogImage = seo.image ? buildMediaUrl(seo.image, siteUrl) : defaultOgImage ?? null;
29
+ const ogImage = seo.image ? buildSeoImageUrl(seo.image, siteUrl) : defaultOgImage ?? null;
28
30
  let canonical = null;
29
31
  if (seo.canonical) if (siteUrl && !seo.canonical.startsWith("/") && !ABSOLUTE_URL_RE.test(seo.canonical)) canonical = `${siteUrl.replace(TRAILING_SLASH_RE, "")}/${seo.canonical}`;
30
32
  else canonical = seo.canonical;
@@ -54,17 +56,6 @@ function getSeoMeta(content, options = {}) {
54
56
  function getContentSeo(content) {
55
57
  return content.seo ?? content.data.seo;
56
58
  }
57
- /**
58
- * Build a media URL from a media reference ID.
59
- * If it's already an absolute URL, return as-is.
60
- */
61
- function buildMediaUrl(imageRef, siteUrl) {
62
- if (ABSOLUTE_URL_RE.test(imageRef)) return imageRef;
63
- if (imageRef.startsWith("/")) return siteUrl ? `${siteUrl.replace(TRAILING_SLASH_RE, "")}${imageRef}` : imageRef;
64
- const mediaPath = `/_dineway/api/media/file/${imageRef}`;
65
- if (siteUrl) return `${siteUrl.replace(TRAILING_SLASH_RE, "")}${mediaPath}`;
66
- return mediaPath;
67
- }
68
59
 
69
60
  //#endregion
70
61
  export { getContentSeo, getSeoMeta };
@@ -1,4 +1,5 @@
1
- import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-C5zp2xir.mjs";
1
+ import { o as invalidateCollectionCache } from "./object-cache-D51qOseS.mjs";
2
+ import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-CxBt-GxR.mjs";
2
3
  import { sql } from "kysely";
3
4
 
4
5
  //#region src/database/repositories/seo.ts
@@ -100,7 +101,8 @@ var SeoRepository = class {
100
101
  seo_canonical = ${input.canonical !== void 0 ? sql`${input.canonical}` : sql`_dineway_seo.seo_canonical`},
101
102
  seo_no_index = ${input.noIndex !== void 0 ? sql`${input.noIndex ? 1 : 0}` : sql`_dineway_seo.seo_no_index`},
102
103
  updated_at = ${now}
103
- `.execute(this.db);
104
+ `.execute(this.db);
105
+ invalidateCollectionCache(collection);
104
106
  return this.get(collection, contentId);
105
107
  }
106
108
  /**
@@ -108,6 +110,7 @@ var SeoRepository = class {
108
110
  */
109
111
  async delete(collection, contentId) {
110
112
  await this.db.deleteFrom("_dineway_seo").where("collection", "=", collection).where("content_id", "=", contentId).execute();
113
+ invalidateCollectionCache(collection);
111
114
  }
112
115
  /**
113
116
  * Copy SEO data from one content item to another.
@@ -78,6 +78,13 @@ const JSONLD_U2029_RE = /\u2029/g;
78
78
  function safeJsonLdSerialize(value) {
79
79
  return JSON.stringify(value).replace(JSONLD_LT_RE, "\\u003c").replace(JSONLD_GT_RE, "\\u003e").replace(JSONLD_U2028_RE, "\\u2028").replace(JSONLD_U2029_RE, "\\u2029");
80
80
  }
81
+ async function createSha256CspHash(value) {
82
+ const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(value));
83
+ const bytes = new Uint8Array(digest);
84
+ let binary = "";
85
+ for (const byte of bytes) binary += String.fromCharCode(byte);
86
+ return `sha256-${btoa(binary)}`;
87
+ }
81
88
  /**
82
89
  * Resolve a flat list of contributions into deduplicated metadata.
83
90
  * First contribution wins for any given dedupe key.
@@ -148,8 +155,9 @@ function resolvePageMetadata(contributions) {
148
155
  return result;
149
156
  }
150
157
  /** Render resolved metadata to an HTML string for embedding in <head> */
151
- function renderPageMetadata(metadata) {
158
+ function renderPageMetadata(metadata, options = {}) {
152
159
  const parts = [];
160
+ const includeJsonLd = options.includeJsonLd ?? true;
153
161
  for (const m of metadata.meta) parts.push(`<meta name="${escapeHtmlAttr(m.name)}" content="${escapeHtmlAttr(m.content)}">`);
154
162
  for (const p of metadata.properties) parts.push(`<meta property="${escapeHtmlAttr(p.property)}" content="${escapeHtmlAttr(p.content)}">`);
155
163
  for (const l of metadata.links) {
@@ -158,7 +166,7 @@ function renderPageMetadata(metadata) {
158
166
  tag += ">";
159
167
  parts.push(tag);
160
168
  }
161
- for (const j of metadata.jsonld) parts.push(`<script type="application/ld+json">${j.json}<\/script>`);
169
+ if (includeJsonLd) for (const j of metadata.jsonld) parts.push(`<script type="application/ld+json">${j.json}<\/script>`);
162
170
  return parts.join("\n");
163
171
  }
164
172
 
@@ -426,4 +434,4 @@ function generateSiteSeoContributions(seoSettings) {
426
434
  }
427
435
 
428
436
  //#endregion
429
- export { cleanJsonLd as a, escapeHtmlAttr as c, safeJsonLdSerialize as d, createPublicPageContext as f, buildWebSiteJsonLd as i, renderPageMetadata as l, generateSiteSeoContributions as n, renderFragments as o, buildBlogPostingJsonLd as r, resolveFragments as s, generateBaseSeoContributions as t, resolvePageMetadata as u };
437
+ export { cleanJsonLd as a, createSha256CspHash as c, resolvePageMetadata as d, safeJsonLdSerialize as f, buildWebSiteJsonLd as i, escapeHtmlAttr as l, generateSiteSeoContributions as n, renderFragments as o, createPublicPageContext as p, buildBlogPostingJsonLd as r, resolveFragments as s, generateBaseSeoContributions as t, renderPageMetadata as u };
@@ -9,6 +9,23 @@ import { sql } from "kysely";
9
9
  */
10
10
  /** Maximum entries per sitemap (per spec) */
11
11
  const SITEMAP_MAX_ENTRIES = 5e4;
12
+ /** Matches a trailing timezone designator (`Z` or `+08`, `+0800`, `+08:00`). */
13
+ const TZ_SUFFIX_RE = /([zZ]|[+-]\d{2}(?::?\d{2})?)$/;
14
+ /**
15
+ * Normalize stored timestamps to W3C Datetime for sitemap <lastmod>.
16
+ *
17
+ * Content rows can store SQLite/Postgres defaults like `YYYY-MM-DD HH:MM:SS`
18
+ * or imported date shapes. When no timezone is present, assume UTC to match
19
+ * SQLite's `datetime('now')`. Unparseable values are returned unchanged.
20
+ */
21
+ function toW3CDate(value) {
22
+ if (!value) return value;
23
+ let normalized = value.trim();
24
+ if (normalized.includes(" ") && !normalized.includes("T")) normalized = normalized.replace(" ", "T");
25
+ if (!TZ_SUFFIX_RE.test(normalized)) normalized += "Z";
26
+ const parsed = Date.parse(normalized);
27
+ return Number.isNaN(parsed) ? value : new Date(parsed).toISOString();
28
+ }
12
29
  /**
13
30
  * Collect all published, indexable content across SEO-enabled collections
14
31
  * for sitemap generation, grouped by collection.
@@ -36,7 +53,7 @@ async function handleSitemapData(db, collectionSlug) {
36
53
  const tableName = `ec_${col.slug}`;
37
54
  try {
38
55
  const rows = await sql`
39
- SELECT c.slug, c.id, c.updated_at, c.locale, c.translation_group
56
+ SELECT c.slug, c.id, c.updated_at, c.locale, c.translation_group, s.seo_image
40
57
  FROM ${sql.ref(tableName)} c
41
58
  LEFT JOIN _dineway_seo s
42
59
  ON s.collection = ${col.slug}
@@ -52,14 +69,15 @@ async function handleSitemapData(db, collectionSlug) {
52
69
  for (const row of rows.rows) entries.push({
53
70
  id: row.id,
54
71
  slug: row.slug,
55
- updatedAt: row.updated_at,
72
+ updatedAt: toW3CDate(row.updated_at),
56
73
  locale: row.locale,
57
- translationGroup: row.translation_group
74
+ translationGroup: row.translation_group,
75
+ image: row.seo_image ?? null
58
76
  });
59
77
  result.push({
60
78
  collection: col.slug,
61
79
  urlPattern: col.url_pattern,
62
- lastmod: rows.rows[0].updated_at,
80
+ lastmod: toW3CDate(rows.rows[0].updated_at),
63
81
  entries
64
82
  });
65
83
  } catch (err) {
@@ -1,6 +1,6 @@
1
1
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
2
- import { t as CommentRepository } from "./comment-CXDOQ93N.mjs";
3
- import { t as escapeHtml } from "./escape-BDgouFFY.mjs";
2
+ import { t as CommentRepository } from "./comment-DlA4iChg.mjs";
3
+ import { t as escapeHtml } from "./escape-Bd4P_xKg.mjs";
4
4
 
5
5
  //#region src/comments/notifications.ts
6
6
  const NOTIFICATION_SOURCE = "dineway-comments";
@@ -0,0 +1,22 @@
1
+ import { t as after } from "./after-BfniwgIf.mjs";
2
+
3
+ //#region src/astro/session-user.ts
4
+ const SESSION_GET_TIMEOUT_MS = 3e3;
5
+ async function resolveSessionUser(session, timeoutMs = SESSION_GET_TIMEOUT_MS) {
6
+ if (!session) return void 0;
7
+ const read = Promise.resolve(session.get("user")).catch(() => void 0);
8
+ after(() => read.then(() => void 0));
9
+ if (timeoutMs <= 0) return read;
10
+ let timer;
11
+ const timeout = new Promise((resolve) => {
12
+ timer = setTimeout(resolve, timeoutMs, void 0);
13
+ });
14
+ try {
15
+ return await Promise.race([read, timeout]);
16
+ } finally {
17
+ if (timer) clearTimeout(timer);
18
+ }
19
+ }
20
+
21
+ //#endregion
22
+ export { resolveSessionUser as t };
@@ -1,52 +1,26 @@
1
- import { t as MediaRepository } from "./media-DUAjMfvR.mjs";
2
- import { t as OptionsRepository } from "./options-BvJoSSJR.mjs";
3
- import { n as peekRequestCache, r as requestCached } from "./request-cache-CYMbwZc6.mjs";
4
- import { r as getDb } from "./loader-tg63WSY2.mjs";
1
+ import { getRequestContext } from "./request-context.mjs";
2
+ import { r as getDb } from "./loader-CjWqjweO.mjs";
3
+ import { t as after } from "./after-BfniwgIf.mjs";
4
+ import { l as invalidateObjectCache, n as cachedQuery, t as CacheNamespace } from "./object-cache-D51qOseS.mjs";
5
+ import { t as MediaRepository } from "./media-DMj0grzC.mjs";
6
+ import { t as OptionsRepository } from "./options-DQPTH5n0.mjs";
7
+ import { n as peekRequestCache, r as requestCached } from "./request-cache-D9GQBxMP.mjs";
8
+ import { n as invalidateProcessCache, r as processCachedAsync, t as createProcessCache } from "./process-cache-7xgAO9JY.mjs";
9
+ import { i as resolvePublicMediaUrl } from "./url-Cac7a9QZ.mjs";
5
10
 
6
- //#region src/media/url.ts
7
- const INTERNAL_MEDIA_PREFIX = "/_dineway/api/media/file/";
8
- const SAFE_STORAGE_KEY = /^[A-Za-z0-9._-]+$/;
9
- function resolvePublicMediaUrl(storage, storageKey) {
10
- if (!storageKey) return "";
11
- if (storage) return storage.getPublicUrl(storageKey);
12
- return `${INTERNAL_MEDIA_PREFIX}${storageKey}`;
13
- }
14
- function createPublicMediaUrlResolver(storage) {
15
- return (key) => resolvePublicMediaUrl(storage, key);
16
- }
17
- function buildRenderMediaUrl(resolve, ref) {
18
- const { storageKey, url, id } = ref;
19
- if (storageKey) return resolve ? resolve(storageKey) : `${INTERNAL_MEDIA_PREFIX}${storageKey}`;
20
- if (url) {
21
- if (resolve && url.startsWith(INTERNAL_MEDIA_PREFIX)) {
22
- const key = url.slice(25);
23
- if (SAFE_STORAGE_KEY.test(key)) return resolve(key);
24
- }
25
- return url;
26
- }
27
- if (id) return `${INTERNAL_MEDIA_PREFIX}${id}`;
28
- return "";
29
- }
30
-
31
- //#endregion
32
11
  //#region src/settings/index.ts
33
12
  /** Prefix for site settings in the options table */
34
13
  const SETTINGS_PREFIX = "site:";
35
14
  const SITE_SETTINGS_CACHE_KEY = Symbol.for("dineway:site-settings");
36
15
  const globalCache = globalThis;
37
16
  const siteSettingsCache = globalCache[SITE_SETTINGS_CACHE_KEY] ?? (() => {
38
- const holder = {
39
- version: 0,
40
- cached: null,
41
- cachedVersion: -1
42
- };
43
- globalCache[SITE_SETTINGS_CACHE_KEY] = holder;
44
- return holder;
17
+ const cache = createProcessCache();
18
+ globalCache[SITE_SETTINGS_CACHE_KEY] = cache;
19
+ return cache;
45
20
  })();
46
21
  function invalidateSiteSettingsCache() {
47
- siteSettingsCache.version++;
48
- siteSettingsCache.cached = null;
49
- siteSettingsCache.cachedVersion = -1;
22
+ invalidateProcessCache(siteSettingsCache);
23
+ invalidateObjectCache(CacheNamespace.SETTINGS);
50
24
  }
51
25
  /**
52
26
  * Type guard for MediaReference values
@@ -131,21 +105,20 @@ async function getSiteSettingWithDb(key, db, storage = null) {
131
105
  * ```
132
106
  */
133
107
  async function getSiteSettings() {
134
- return requestCached("siteSettings", () => {
135
- const versionAtCall = siteSettingsCache.version;
136
- if (siteSettingsCache.cached && siteSettingsCache.cachedVersion === versionAtCall) return siteSettingsCache.cached;
137
- const fetchPromise = (async () => {
138
- return getSiteSettingsWithDb(await getDb());
139
- })().catch((error) => {
140
- if (siteSettingsCache.cached === fetchPromise) {
141
- siteSettingsCache.cached = null;
142
- siteSettingsCache.cachedVersion = -1;
143
- }
144
- throw error;
108
+ return requestCached("siteSettings", async () => {
109
+ if (getRequestContext()?.dbIsIsolated) return getSiteSettingsWithDb(await getDb());
110
+ return processCachedAsync(siteSettingsCache, async () => {
111
+ return cachedQuery({
112
+ namespace: CacheNamespace.SETTINGS,
113
+ key: "all",
114
+ load: async () => {
115
+ return getSiteSettingsWithDb(await getDb());
116
+ }
117
+ });
118
+ }, {
119
+ anchor: (promise) => after(() => promise),
120
+ ownerTimeoutMs: 3e4
145
121
  });
146
- siteSettingsCache.cached = fetchPromise;
147
- siteSettingsCache.cachedVersion = versionAtCall;
148
- return fetchPromise;
149
122
  });
150
123
  }
151
124
  /**
@@ -245,4 +218,4 @@ async function getPluginSettingsWithDb(pluginId, db) {
245
218
  }
246
219
 
247
220
  //#endregion
248
- export { getSiteSettingsWithDb as a, createPublicMediaUrlResolver as c, getSiteSettings as i, getPluginSettings as n, setSiteSettings as o, getSiteSetting as r, buildRenderMediaUrl as s, getPluginSetting as t };
221
+ export { getSiteSettingsWithDb as a, getSiteSettings as i, getPluginSettings as n, invalidateSiteSettingsCache as o, getSiteSetting as r, setSiteSettings as s, getPluginSetting as t };
@@ -1,5 +1,5 @@
1
- import { a as __exportAll } from "./runner-B-tbV751.mjs";
2
- import { a as getSiteSettingsWithDb, o as setSiteSettings } from "./settings-yLjz_I4T.mjs";
1
+ import { a as __exportAll } from "./runner-DB7CRfOF.mjs";
2
+ import { a as getSiteSettingsWithDb, s as setSiteSettings } from "./settings-BbqgHWpU.mjs";
3
3
 
4
4
  //#region src/api/handlers/settings.ts
5
5
  var settings_exports = /* @__PURE__ */ __exportAll({
@@ -1,4 +1,4 @@
1
- import { t as OptionsRepository } from "./options-BvJoSSJR.mjs";
1
+ import { t as OptionsRepository } from "./options-DQPTH5n0.mjs";
2
2
 
3
3
  //#region src/api/setup-complete.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { i as encodeCursor, r as decodeCursor } from "./types-DfuD0Afl.mjs";
1
+ import { i as encodeCursor, r as decodeCursor } from "./types-Dq1qT19x.mjs";
2
2
  import { ulid } from "ulidx";
3
3
 
4
4
  //#region src/database/repositories/site-activity.ts