dineway 0.1.11 → 0.1.13

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 (334) hide show
  1. package/dist/{allowed-origins-DG86sH8U.mjs → allowed-origins-C1AKK9AT.mjs} +1 -1
  2. package/dist/api/route-utils.d.mts +10 -9
  3. package/dist/api/route-utils.mjs +7 -7
  4. package/dist/api/schemas/index.d.mts +1 -1
  5. package/dist/api/schemas/index.mjs +2 -2
  6. package/dist/{api-Cmy8Rjk5.mjs → api-Lyjc8wqZ.mjs} +4 -4
  7. package/dist/{api-tokens-Bu3ez1MO.mjs → api-tokens-D7UjLbdt.mjs} +1 -1
  8. package/dist/{apply-Co5imxxT.mjs → apply-Bm5QgdrE.mjs} +5 -5
  9. package/dist/astro/index.d.mts +11 -10
  10. package/dist/astro/index.mjs +3 -3
  11. package/dist/astro/middleware/auth.d.mts +10 -9
  12. package/dist/astro/middleware/auth.mjs +5 -5
  13. package/dist/astro/middleware/request-context.mjs +2 -2
  14. package/dist/astro/middleware/setup.mjs +1 -1
  15. package/dist/astro/middleware.mjs +42 -40
  16. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +4 -4
  17. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +4 -4
  18. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +4 -4
  19. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
  20. package/dist/astro/routes/api/admin/briefing.mjs +7 -7
  21. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +6 -6
  22. package/dist/astro/routes/api/admin/bylines/index.mjs +6 -6
  23. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +8 -8
  24. package/dist/astro/routes/api/admin/comments/_id_.mjs +3 -3
  25. package/dist/astro/routes/api/admin/comments/bulk.mjs +6 -6
  26. package/dist/astro/routes/api/admin/comments/counts.mjs +3 -3
  27. package/dist/astro/routes/api/admin/comments/index.mjs +6 -6
  28. package/dist/astro/routes/api/admin/context/_id_/history.mjs +11 -10
  29. package/dist/astro/routes/api/admin/context/_id_/index.mjs +11 -10
  30. package/dist/astro/routes/api/admin/context/_id_/review.mjs +15 -14
  31. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +15 -14
  32. package/dist/astro/routes/api/admin/context/diff.mjs +14 -13
  33. package/dist/astro/routes/api/admin/context/index.mjs +15 -14
  34. package/dist/astro/routes/api/admin/context/stale.mjs +14 -13
  35. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +11 -10
  36. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +14 -13
  37. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +14 -13
  38. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +12 -11
  39. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +2 -2
  40. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  41. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  42. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +24 -23
  43. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +24 -23
  44. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +18 -17
  45. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +23 -22
  46. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +23 -22
  47. package/dist/astro/routes/api/admin/plugins/index.mjs +18 -17
  48. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
  49. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +18 -17
  50. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +23 -22
  51. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +18 -17
  52. package/dist/astro/routes/api/admin/plugins/updates.mjs +18 -17
  53. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +2 -2
  54. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +13 -12
  55. package/dist/astro/routes/api/admin/review-requests/index.mjs +5 -5
  56. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +18 -17
  57. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
  58. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +18 -17
  59. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +1 -1
  60. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +1 -1
  61. package/dist/astro/routes/api/admin/users/_id_/index.mjs +4 -4
  62. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +2 -2
  63. package/dist/astro/routes/api/admin/users/index.mjs +4 -4
  64. package/dist/astro/routes/api/auth/dev-bypass.mjs +3 -3
  65. package/dist/astro/routes/api/auth/invite/accept.mjs +1 -1
  66. package/dist/astro/routes/api/auth/invite/complete.mjs +8 -8
  67. package/dist/astro/routes/api/auth/invite/index.mjs +5 -5
  68. package/dist/astro/routes/api/auth/invite/register-options.mjs +7 -7
  69. package/dist/astro/routes/api/auth/logout.mjs +2 -2
  70. package/dist/astro/routes/api/auth/magic-link/send.mjs +7 -7
  71. package/dist/astro/routes/api/auth/magic-link/verify.mjs +2 -2
  72. package/dist/astro/routes/api/auth/me.mjs +4 -4
  73. package/dist/astro/routes/api/auth/mode.mjs +1 -1
  74. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +2 -2
  75. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  76. package/dist/astro/routes/api/auth/passkey/_id_.mjs +4 -4
  77. package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
  78. package/dist/astro/routes/api/auth/passkey/options.mjs +9 -9
  79. package/dist/astro/routes/api/auth/passkey/register/options.mjs +7 -7
  80. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +8 -8
  81. package/dist/astro/routes/api/auth/passkey/verify.mjs +8 -8
  82. package/dist/astro/routes/api/auth/signup/complete.mjs +8 -8
  83. package/dist/astro/routes/api/auth/signup/request.mjs +7 -7
  84. package/dist/astro/routes/api/auth/signup/verify.mjs +1 -1
  85. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +9 -9
  86. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
  87. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +3 -3
  88. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +3 -3
  89. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +3 -3
  90. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +8 -8
  91. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +13 -12
  92. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +3 -3
  93. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
  94. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +6 -6
  95. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +6 -6
  96. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
  97. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +3 -3
  98. package/dist/astro/routes/api/content/_collection_/_id_.mjs +6 -6
  99. package/dist/astro/routes/api/content/_collection_/index.mjs +6 -6
  100. package/dist/astro/routes/api/content/_collection_/trash.mjs +5 -5
  101. package/dist/astro/routes/api/dashboard.mjs +2 -2
  102. package/dist/astro/routes/api/dev/emails.mjs +2 -2
  103. package/dist/astro/routes/api/health.mjs +1 -1
  104. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  105. package/dist/astro/routes/api/import/probe.mjs +8 -8
  106. package/dist/astro/routes/api/import/wordpress/analyze.mjs +3 -3
  107. package/dist/astro/routes/api/import/wordpress/execute.mjs +12 -11
  108. package/dist/astro/routes/api/import/wordpress/media.mjs +6 -6
  109. package/dist/astro/routes/api/import/wordpress/prepare.mjs +15 -14
  110. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +14 -13
  111. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  112. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +8 -8
  113. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +1 -1
  114. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +16 -15
  115. package/dist/astro/routes/api/manifest.mjs +4 -4
  116. package/dist/astro/routes/api/mcp.mjs +22 -21
  117. package/dist/astro/routes/api/media/_id_/confirm.mjs +5 -5
  118. package/dist/astro/routes/api/media/_id_.mjs +5 -5
  119. package/dist/astro/routes/api/media/file/_...key_.mjs +1 -1
  120. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
  121. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
  122. package/dist/astro/routes/api/media/providers/index.mjs +2 -2
  123. package/dist/astro/routes/api/media/upload-url.mjs +5 -5
  124. package/dist/astro/routes/api/media.mjs +5 -5
  125. package/dist/astro/routes/api/menus/_name_/items.mjs +15 -14
  126. package/dist/astro/routes/api/menus/_name_/reorder.mjs +15 -14
  127. package/dist/astro/routes/api/menus/_name_.mjs +15 -14
  128. package/dist/astro/routes/api/menus/index.mjs +15 -14
  129. package/dist/astro/routes/api/oauth/authorize.mjs +7 -7
  130. package/dist/astro/routes/api/oauth/device/authorize.mjs +6 -6
  131. package/dist/astro/routes/api/oauth/device/code.mjs +9 -9
  132. package/dist/astro/routes/api/oauth/device/token.mjs +8 -8
  133. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  134. package/dist/astro/routes/api/oauth/token/refresh.mjs +6 -6
  135. package/dist/astro/routes/api/oauth/token/revoke.mjs +6 -6
  136. package/dist/astro/routes/api/oauth/token.mjs +6 -6
  137. package/dist/astro/routes/api/openapi.json.mjs +3 -3
  138. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +3 -3
  139. package/dist/astro/routes/api/redirects/404s/index.mjs +6 -6
  140. package/dist/astro/routes/api/redirects/404s/summary.mjs +6 -6
  141. package/dist/astro/routes/api/redirects/_id_.mjs +15 -14
  142. package/dist/astro/routes/api/redirects/index.mjs +15 -14
  143. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
  144. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +2 -2
  145. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +19 -18
  146. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +19 -18
  147. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +19 -18
  148. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +19 -18
  149. package/dist/astro/routes/api/schema/collections/index.mjs +19 -18
  150. package/dist/astro/routes/api/schema/index.mjs +2 -2
  151. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +18 -17
  152. package/dist/astro/routes/api/schema/orphans/index.mjs +18 -17
  153. package/dist/astro/routes/api/search/enable.mjs +6 -6
  154. package/dist/astro/routes/api/search/index.mjs +5 -5
  155. package/dist/astro/routes/api/search/rebuild.mjs +6 -6
  156. package/dist/astro/routes/api/search/stats.mjs +3 -3
  157. package/dist/astro/routes/api/search/suggest.mjs +5 -5
  158. package/dist/astro/routes/api/sections/_slug_.mjs +15 -14
  159. package/dist/astro/routes/api/sections/index.mjs +15 -14
  160. package/dist/astro/routes/api/settings/email.mjs +3 -3
  161. package/dist/astro/routes/api/settings.mjs +15 -14
  162. package/dist/astro/routes/api/setup/admin-verify.mjs +10 -10
  163. package/dist/astro/routes/api/setup/admin.mjs +8 -8
  164. package/dist/astro/routes/api/setup/dev-bypass.mjs +11 -11
  165. package/dist/astro/routes/api/setup/dev-reset.mjs +1 -1
  166. package/dist/astro/routes/api/setup/index.mjs +11 -11
  167. package/dist/astro/routes/api/setup/status.mjs +3 -3
  168. package/dist/astro/routes/api/snapshot.mjs +5 -5
  169. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +16 -15
  170. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +16 -15
  171. package/dist/astro/routes/api/taxonomies/index.mjs +16 -15
  172. package/dist/astro/routes/api/themes/preview.mjs +4 -4
  173. package/dist/astro/routes/api/typegen.mjs +1 -1
  174. package/dist/astro/routes/api/well-known/auth.mjs +2 -2
  175. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +3 -3
  176. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +3 -3
  177. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +14 -13
  178. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +15 -14
  179. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +15 -14
  180. package/dist/astro/routes/api/widget-areas/_name_.mjs +13 -12
  181. package/dist/astro/routes/api/widget-areas/index.mjs +15 -14
  182. package/dist/astro/routes/api/widget-components.mjs +2 -2
  183. package/dist/astro/routes/robots.txt.mjs +2 -2
  184. package/dist/astro/routes/sitemap-_collection_.xml.mjs +2 -2
  185. package/dist/astro/routes/sitemap.xml.mjs +3 -3
  186. package/dist/astro/types.d.mts +13 -12
  187. package/dist/auth/providers/github.d.mts +1 -1
  188. package/dist/auth/providers/google.d.mts +1 -1
  189. package/dist/{auth-control-guard-DKUe_1oa.mjs → auth-control-guard-DOZ3UCsP.mjs} +1 -1
  190. package/dist/{authorize-BBj8C6Y8.mjs → authorize-BAdbMCwC.mjs} +1 -1
  191. package/dist/{briefing-BrXCuMEE.mjs → briefing-MVYe_Uyf.mjs} +1 -1
  192. package/dist/{briefing-ClWw4mc9.mjs → briefing-rty4O-wa.mjs} +1 -1
  193. package/dist/{bylines-BcOPh6Ej.mjs → bylines-C4LIBOOO.mjs} +1 -1
  194. package/dist/{bylines-HfUKum_j.d.mts → bylines-DCvz5gtm.d.mts} +13 -13
  195. package/dist/cli/index.mjs +7 -7
  196. package/dist/client/external-auth-headers.d.mts +1 -1
  197. package/dist/client/index.d.mts +1 -1
  198. package/dist/client/index.mjs +1 -1
  199. package/dist/{context-nxMyOe3p.mjs → context-CNIkMzot.mjs} +2 -2
  200. package/dist/{context-bE5Kyvcj.mjs → context-DNfcm853.mjs} +2 -2
  201. package/dist/{context-route-helpers-D-6uCQ0S.mjs → context-route-helpers-MurhoxWF.mjs} +1 -1
  202. package/dist/db/index.d.mts +3 -3
  203. package/dist/db/libsql.d.mts +1 -1
  204. package/dist/db/postgres.d.mts +1 -1
  205. package/dist/db/sqlite.d.mts +1 -1
  206. package/dist/{device-flow-7AhWNwCK.mjs → device-flow-BGEH5jfn.mjs} +4 -4
  207. package/dist/{hitl-requests-Bx3Bkk9l.mjs → hitl-requests-ChT32Ilo.mjs} +2 -2
  208. package/dist/{hitl-route-helpers-DMmJRS7B.mjs → hitl-route-helpers-CSit54Ru.mjs} +4 -4
  209. package/dist/{import-DVZcYlDp.mjs → import-BHRLhXAn.mjs} +2 -2
  210. package/dist/{import-DD3f2jkc.mjs → import-CNcKWTbp.mjs} +1 -1
  211. package/dist/{index-CkljPf5F.d.mts → index-CYfhYgXd.d.mts} +2 -2
  212. package/dist/index-EUAWaIxW.d.mts +835 -0
  213. package/dist/index.d.mts +16 -14
  214. package/dist/index.mjs +35 -32
  215. package/dist/jsonld-D2gUY4kA.d.mts +141 -0
  216. package/dist/media/index.d.mts +2 -1
  217. package/dist/media/local-runtime.d.mts +12 -11
  218. package/dist/menus-DYW_UHjv.mjs +256 -0
  219. package/dist/{oauth-authorization-C1qiw4hd.mjs → oauth-authorization-DxGjiWKL.mjs} +4 -4
  220. package/dist/{oauth-clients-CvWatf5p.mjs → oauth-clients-DxO_NO7k.mjs} +2 -2
  221. package/dist/page/index.d.mts +2 -139
  222. package/dist/page/index.mjs +1 -427
  223. package/dist/{parse-BeQXIt1U.mjs → parse-C9106ehs.mjs} +1 -1
  224. package/dist/placeholder-Bh1dfUOd.d.mts +40 -0
  225. package/dist/plugins/adapt-sandbox-entry.d.mts +10 -9
  226. package/dist/plugins/adapt-sandbox-entry.mjs +1 -1
  227. package/dist/{menus-CrzHokKj.mjs → plugins-D7-ILNib.mjs} +4 -257
  228. package/dist/{preview-C_4DyVox.mjs → preview-DvYRU-Oy.mjs} +2 -2
  229. package/dist/provider-loader-BiQ6lNmf.d.mts +20 -0
  230. package/dist/provider-loader-C21b9OpH.mjs +36 -0
  231. package/dist/{query-RiobVwB5.mjs → query-B9BO5goQ.mjs} +3 -3
  232. package/dist/{schema-BNpI53of.mjs → query-CsbOywSY.mjs} +1 -6
  233. package/dist/{rate-limit-CbJoj_fT.mjs → rate-limit-DmVTHI5v.mjs} +2 -2
  234. package/dist/{redirects-CqaxraTO.mjs → redirects-lrlmYXVE.mjs} +2 -49
  235. package/dist/{request-meta-Bd0mQfiS.mjs → request-meta-DixlNKKa.mjs} +1 -1
  236. package/dist/{runner-9eIQXuc2.d.mts → runner-BU6Lo1ZS.d.mts} +1 -1
  237. package/dist/{runtime-C4-7y7xK.d.mts → runtime-QuuFSlc6.d.mts} +104 -932
  238. package/dist/runtime.d.mts +11 -28
  239. package/dist/runtime.mjs +1 -35
  240. package/dist/schema-BECjUhP8.mjs +8 -0
  241. package/dist/seed/index.d.mts +2 -2
  242. package/dist/seed/index.mjs +6 -6
  243. package/dist/seo/index.d.mts +1 -1
  244. package/dist/seo-contributions-B1fWCnqY.mjs +429 -0
  245. package/dist/{service-CSfcQguB.mjs → service-CyOsm0R6.mjs} +1 -1
  246. package/dist/{settings-4XnpVMOS.mjs → settings-DGtLLSaz.mjs} +15 -1
  247. package/dist/{settings-Bw93cLfe.mjs → settings-Dzgswvg4.mjs} +1 -1
  248. package/dist/{site-context-Bpu_Paur.mjs → site-context-WBxoD99D.mjs} +6 -6
  249. package/dist/storage/local.d.mts +1 -1
  250. package/dist/storage/local.mjs +1 -1
  251. package/dist/storage/s3.d.mts +1 -1
  252. package/dist/storage/s3.mjs +1 -1
  253. package/dist/{taxonomies-BvBgfzn3.mjs → taxonomies-D2aZGuns.mjs} +2 -2
  254. package/dist/{taxonomies-CpqGcIJD.mjs → taxonomies-z6Lz91BC.mjs} +1 -1
  255. package/dist/{placeholder-CHkLckzK.d.mts → types-OPs5Q_sX.d.mts} +1 -38
  256. package/dist/{types-DgfUZqcd.d.mts → types-Q616b2Hn.d.mts} +1 -1
  257. package/dist/ui/client-runtime.d.mts +12 -0
  258. package/dist/ui/client-runtime.mjs +32 -0
  259. package/dist/ui/server-runtime.d.mts +33 -0
  260. package/dist/ui/server-runtime.mjs +80 -0
  261. package/dist/url-DNjT2abR.mjs +49 -0
  262. package/dist/{validate-JCZihRIa.d.mts → validate-BwmQEbu8.d.mts} +3 -3
  263. package/dist/version-C5JkNvmb.mjs +6 -0
  264. package/dist/{widgets-B7Q_7bxN.mjs → widgets-B7DRpZvy.mjs} +1 -1
  265. package/package.json +19 -5
  266. package/src/components/Button.astro +1 -1
  267. package/src/components/CommentForm.astro +1 -1
  268. package/src/components/Comments.astro +1 -3
  269. package/src/components/DinewayBodyEnd.astro +5 -3
  270. package/src/components/DinewayBodyStart.astro +5 -3
  271. package/src/components/DinewayHead.astro +9 -7
  272. package/src/components/DinewayImage.astro +6 -4
  273. package/src/components/DinewayMedia.astro +7 -4
  274. package/src/components/Embed.astro +1 -2
  275. package/src/components/File.astro +1 -1
  276. package/src/components/Gallery.astro +1 -1
  277. package/src/components/HtmlBlock.astro +1 -1
  278. package/src/components/Image.astro +5 -3
  279. package/src/components/InlinePortableTextEditor.tsx +1 -2
  280. package/src/components/PortableText.astro +1 -1
  281. package/src/components/WidgetArea.astro +1 -1
  282. package/src/components/WidgetRenderer.astro +1 -3
  283. package/src/components/marks/Link.astro +1 -1
  284. package/src/components/widgets/Archives.astro +1 -1
  285. package/src/components/widgets/Categories.astro +1 -1
  286. package/src/components/widgets/RecentPosts.astro +1 -1
  287. package/src/components/widgets/Tags.astro +1 -1
  288. package/dist/version-DH53KCQd.mjs +0 -6
  289. /package/dist/{activity-events-BsMaXdJa.mjs → activity-events-B4wp7CrU.mjs} +0 -0
  290. /package/dist/{adapters-BLDldpJg.d.mts → adapters-DuLQZhRY.d.mts} +0 -0
  291. /package/dist/{api-tokens-DzloJxuh.mjs → api-tokens-CPjC3zf8.mjs} +0 -0
  292. /package/dist/{challenge-store-DHMgBGOq.mjs → challenge-store-DDTbisbf.mjs} +0 -0
  293. /package/dist/{comments-Gy3zLBaP.mjs → comments--BsZ9pqA.mjs} +0 -0
  294. /package/dist/{components-DND2rd3D.mjs → components-BPknylYg.mjs} +0 -0
  295. /package/dist/{cron-DGzVTtJp.mjs → cron-CKxvBrRT.mjs} +0 -0
  296. /package/dist/{db-errors-DKUg_NgF.mjs → db-errors-DyZkswzF.mjs} +0 -0
  297. /package/dist/{default-C3PZN-bz.mjs → default-D4ngTpW8.mjs} +0 -0
  298. /package/dist/{email-console-CgLVZbcn.mjs → email-console-CuefUXfX.mjs} +0 -0
  299. /package/dist/{error-DEGjx2Xw.mjs → error-BMUPwxgx.mjs} +0 -0
  300. /package/dist/{escape-mNZr4t2A.mjs → escape-BRVaw1Ai.mjs} +0 -0
  301. /package/dist/{experimental-workflows-DldxJlqV.mjs → experimental-workflows-C9X7yblQ.mjs} +0 -0
  302. /package/dist/{load-D-9NhLmF.mjs → load-B2XtDw__.mjs} +0 -0
  303. /package/dist/{manifest-schema-DYoCQ5np.mjs → manifest-schema-CgFJAp0H.mjs} +0 -0
  304. /package/dist/{menus-BacxVCCo.mjs → menus-DS3_5nWY.mjs} +0 -0
  305. /package/dist/{mode-C80mAZQv.mjs → mode-DUhxwUhv.mjs} +0 -0
  306. /package/dist/{oauth-state-store-hSdzxsEe.mjs → oauth-state-store-C5UFhzwD.mjs} +0 -0
  307. /package/dist/{oauth-user-lookup-B4OcmsLV.mjs → oauth-user-lookup-Bi0ek9eM.mjs} +0 -0
  308. /package/dist/{passkey-config-Daqs5fjq.mjs → passkey-config-BRSZx4pW.mjs} +0 -0
  309. /package/dist/{public-url-BB_umF5G.mjs → public-url-Cun8N3NU.mjs} +0 -0
  310. /package/dist/{redirect-ClSmMOtC.mjs → redirect-COZy-3iY.mjs} +0 -0
  311. /package/dist/{redirects-B69T59hK.mjs → redirects-Cgi_cZfN.mjs} +0 -0
  312. /package/dist/{search-DM6CVti3.mjs → search-DqTHQqtV.mjs} +0 -0
  313. /package/dist/{secrets-dI8zzTV7.mjs → secrets-CkoJ9zN0.mjs} +0 -0
  314. /package/dist/{sections-DZFyAQXd.mjs → sections-B61OxnfB.mjs} +0 -0
  315. /package/dist/{seo-BBgTCOYU.mjs → seo-C007Luwn.mjs} +0 -0
  316. /package/dist/{setup-complete-DidsDQ1e.mjs → setup-complete-ChilE-da.mjs} +0 -0
  317. /package/dist/{setup-nonce-pml1PMKo.mjs → setup-nonce-BpmLXAuu.mjs} +0 -0
  318. /package/dist/{sidecar-client-vzwV98K4.mjs → sidecar-client-B1C6Cf80.mjs} +0 -0
  319. /package/dist/{site-url-CYIcO0Tj.mjs → site-url-BP7k7OCe.mjs} +0 -0
  320. /package/dist/{ssrf-CmM76lLV.mjs → ssrf-DDwRxF6B.mjs} +0 -0
  321. /package/dist/{tokens-DLTo4dO2.mjs → tokens-BOJw-D9F.mjs} +0 -0
  322. /package/dist/{transport-6RefuBdV.d.mts → transport-BXe1AM79.d.mts} +0 -0
  323. /package/dist/{transport-C9e_h-BF.mjs → transport-D3i4yWRE.mjs} +0 -0
  324. /package/dist/{trusted-proxy-Bi0Cuk5n.mjs → trusted-proxy-BbaZfkT9.mjs} +0 -0
  325. /package/dist/{types-C982qI5I.d.mts → types-0Vr68fc2.d.mts} +0 -0
  326. /package/dist/{types-B9qVtiHb.d.mts → types-B7kpsMJ3.d.mts} +0 -0
  327. /package/dist/{types-D4XVOt01.d.mts → types-BFmjniC2.d.mts} +0 -0
  328. /package/dist/{types-IPACEM14.d.mts → types-C0mmVRJN.d.mts} +0 -0
  329. /package/dist/{types-Djdp0cZO.d.mts → types-DJlpx5Ay.d.mts} +0 -0
  330. /package/dist/{types-Du8jreyC.d.mts → types-DZPw8Rru.d.mts} +0 -0
  331. /package/dist/{types-B9gKVOHk.mjs → types-fAInWQDO.mjs} +0 -0
  332. /package/dist/{utils-D2in-zwy.mjs → utils-C0ONdBul.mjs} +0 -0
  333. /package/dist/{validate-BJgA6TW_.mjs → validate-C7TzfamJ.mjs} +0 -0
  334. /package/dist/{wordpress-slugs-BevajWrC.mjs → wordpress-slugs-CnporCYH.mjs} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { t as TaxonomyRepository } from "./taxonomy-D5cbhc8u.mjs";
2
- import { c as invalidateTermCache } from "./taxonomies-BvBgfzn3.mjs";
2
+ import { c as invalidateTermCache } from "./taxonomies-D2aZGuns.mjs";
3
3
  import { ulid } from "ulidx";
4
4
 
5
5
  //#region src/api/handlers/taxonomies.ts
@@ -243,41 +243,4 @@ interface MediaValue {
243
243
  */
244
244
  declare function mediaItemToValue(providerId: string, item: MediaProviderItem): MediaValue;
245
245
  //#endregion
246
- //#region src/media/normalize.d.ts
247
- /**
248
- * Normalize a media field value into a consistent MediaValue shape.
249
- *
250
- * - `null`/`undefined` → `null`
251
- * - Bare URL string → `{ provider: "external", id: "", src: url }`
252
- * - Bare internal media URL → resolved via local provider's `get()`
253
- * - Object with `provider` + `id` → enriched with missing fields from provider
254
- */
255
- declare function normalizeMediaValue(value: unknown, getProvider: (id: string) => MediaProvider | undefined): Promise<MediaValue | null>;
256
- //#endregion
257
- //#region src/media/placeholder.d.ts
258
- /**
259
- * Image Placeholder Generation
260
- *
261
- * Generates blurhash and dominant color from image buffers for LQIP support.
262
- * Decodes images via jpeg-js (pure JS) and upng-js (pure JS, uses pako for
263
- * deflate). No native image bindings required, so it works in server runtimes.
264
- */
265
- interface PlaceholderData {
266
- blurhash: string;
267
- dominantColor: string;
268
- }
269
- /**
270
- * Generate blurhash and dominant color from an image buffer.
271
- * Returns null for non-image MIME types or on failure.
272
- *
273
- * @param dimensions - Optional pre-known dimensions. Used as a fallback when
274
- * image-size cannot parse the buffer (e.g. truncated headers). When the
275
- * decoded size (width * height * 4) exceeds MAX_DECODED_BYTES, placeholder
276
- * generation is skipped to avoid OOM on memory-constrained runtimes.
277
- */
278
- declare function generatePlaceholder(buffer: Uint8Array, mimeType: string, dimensions?: {
279
- width: number;
280
- height: number;
281
- }): Promise<PlaceholderData | null>;
282
- //#endregion
283
- export { MediaValue as _, ComponentEmbed as a, mediaItemToValue as b, EmbedResult as c, MediaListResult as d, MediaProvider as f, MediaUploadInput as g, MediaProviderItem as h, AudioEmbed as i, ImageEmbed as l, MediaProviderDescriptor as m, generatePlaceholder as n, CreateMediaProviderFn as o, MediaProviderCapabilities as p, normalizeMediaValue as r, EmbedOptions as s, PlaceholderData as t, MediaListOptions as u, ThumbnailOptions as v, VideoEmbed as y };
246
+ export { mediaItemToValue as _, EmbedResult as a, MediaListResult as c, MediaProviderDescriptor as d, MediaProviderItem as f, VideoEmbed as g, ThumbnailOptions as h, EmbedOptions as i, MediaProvider as l, MediaValue as m, ComponentEmbed as n, ImageEmbed as o, MediaUploadInput as p, CreateMediaProviderFn as r, MediaListOptions as s, AudioEmbed as t, MediaProviderCapabilities as u };
@@ -1,4 +1,4 @@
1
- import { m as FieldType } from "./types-IPACEM14.mjs";
1
+ import { m as FieldType } from "./types-C0mmVRJN.mjs";
2
2
  import { z } from "astro/zod";
3
3
  import "react/jsx-runtime";
4
4
  import { JSX } from "astro/jsx-runtime";
@@ -0,0 +1,12 @@
1
+ //#region src/media/thumbnail.d.ts
2
+ /**
3
+ * Compute thumbnail dimensions that fit within a THUMBNAIL_MAX_DIMENSION box,
4
+ * preserving aspect ratio. Both output dimensions are clamped to at least 1.
5
+ * Never upscales (scale is capped at 1).
6
+ */
7
+ declare function computeThumbnailSize(width: number, height: number): {
8
+ width: number;
9
+ height: number;
10
+ };
11
+ //#endregion
12
+ export { computeThumbnailSize };
@@ -0,0 +1,32 @@
1
+ //#region src/media/thumbnail.ts
2
+ /**
3
+ * Thumbnail sizing for client-side placeholder generation.
4
+ *
5
+ * When the browser generates a thumbnail to send to the server for blurhash
6
+ * generation, the thumbnail dimensions must fit within a bounded box. Naively
7
+ * fixing one dimension and deriving the other from the aspect ratio can
8
+ * explode for extreme aspect ratios (e.g. a 100×840000 image would produce a
9
+ * 64×537600 canvas), defeating the purpose of the thumbnail.
10
+ */
11
+ /** Max dimension (px) for client-generated upload thumbnails. */
12
+ const THUMBNAIL_MAX_DIMENSION = 64;
13
+ /**
14
+ * Compute thumbnail dimensions that fit within a THUMBNAIL_MAX_DIMENSION box,
15
+ * preserving aspect ratio. Both output dimensions are clamped to at least 1.
16
+ * Never upscales (scale is capped at 1).
17
+ */
18
+ function computeThumbnailSize(width, height) {
19
+ if (width <= 0 || height <= 0) return {
20
+ width: 1,
21
+ height: 1
22
+ };
23
+ const maxDim = Math.max(width, height);
24
+ const scale = Math.min(1, THUMBNAIL_MAX_DIMENSION / maxDim);
25
+ return {
26
+ width: Math.max(1, Math.round(width * scale)),
27
+ height: Math.max(1, Math.round(height * scale))
28
+ };
29
+ }
30
+
31
+ //#endregion
32
+ export { computeThumbnailSize };
@@ -0,0 +1,33 @@
1
+ import "../types-DZPw8Rru.mjs";
2
+ import { A as PageMetadataContribution, q as PublicPageContext } from "../types-Q616b2Hn.mjs";
3
+ import { t as MediaReference } from "../types-C0mmVRJN.mjs";
4
+ import { a as EmbedResult, i as EmbedOptions, m as MediaValue, o as ImageEmbed } from "../types-OPs5Q_sX.mjs";
5
+ import { H as getSiteSettings, R as getComments, St as PublicComment, T as getMenu, _ as getTaxonomyTerms, ft as sanitizeHref, l as Widget, pt as getCollectionInfo, rt as getEditMeta, t as getWidgetArea, tt as getDinewayCollection } from "../index-EUAWaIxW.mjs";
6
+ import { a as generateSiteSeoContributions, d as resolvePageMetadata, i as generateBaseSeoContributions, o as renderFragments, u as renderPageMetadata } from "../jsonld-D2gUY4kA.mjs";
7
+ import { getPageRuntime } from "../page/index.mjs";
8
+ import { t as getMediaProvider } from "../provider-loader-BiQ6lNmf.mjs";
9
+
10
+ //#region src/utils/sanitize.d.ts
11
+ /**
12
+ * Sanitize HTML content to prevent XSS attacks.
13
+ *
14
+ * Allows standard formatting tags, images, iframes (from specific providers),
15
+ * and basic attributes.
16
+ */
17
+ declare function sanitizeContent(html: string): string;
18
+ //#endregion
19
+ //#region src/media/url.d.ts
20
+ interface RenderMediaRef {
21
+ storageKey?: string;
22
+ url?: string;
23
+ id?: string;
24
+ }
25
+ declare function buildRenderMediaUrl(resolve: ((key: string) => string) | undefined, ref: RenderMediaRef): string;
26
+ //#endregion
27
+ //#region src/page/site-identity.d.ts
28
+ interface SiteIdentityInput {
29
+ favicon?: MediaReference;
30
+ }
31
+ declare function renderSiteIdentity(input: SiteIdentityInput | undefined): string;
32
+ //#endregion
33
+ export { type EmbedOptions, type EmbedResult, type ImageEmbed, type MediaValue, type PageMetadataContribution, type PublicComment, type PublicPageContext, type Widget, buildRenderMediaUrl, generateBaseSeoContributions, generateSiteSeoContributions, getCollectionInfo, getComments, getDinewayCollection, getEditMeta, getMediaProvider, getMenu, getPageRuntime, getSiteSettings, getTaxonomyTerms, getWidgetArea, renderFragments, renderPageMetadata, renderSiteIdentity, resolvePageMetadata, sanitizeContent, sanitizeHref };
@@ -0,0 +1,80 @@
1
+ import "../dialect-helpers-DhTzaUxP.mjs";
2
+ import "../base64-Cz-aU0X1.mjs";
3
+ import "../types-Bs6lTBBW.mjs";
4
+ import "../media-_7Fxdu45.mjs";
5
+ import "../comment-DFO-gWDH.mjs";
6
+ import "../options-z8VVg1Ll.mjs";
7
+ import "../fts-manager-B1pTNEG_.mjs";
8
+ import "../registry-C-_hxLqa.mjs";
9
+ import "../loader-PZnPxFLc.mjs";
10
+ import { i as getSiteSettings, s as buildRenderMediaUrl } from "../settings-DGtLLSaz.mjs";
11
+ import "../request-cache-DHMRr2Lf.mjs";
12
+ import { t as getCollectionInfo } from "../query-CsbOywSY.mjs";
13
+ import { a as getTaxonomyTerms } from "../taxonomies-D2aZGuns.mjs";
14
+ import { n as sanitizeHref } from "../url-DNjT2abR.mjs";
15
+ import { r as getEditMeta, t as getDinewayCollection } from "../query-B9BO5goQ.mjs";
16
+ import { i as getComments, t as getMenu } from "../menus-DYW_UHjv.mjs";
17
+ import { t as getWidgetArea } from "../widgets-B7DRpZvy.mjs";
18
+ import { t as getMediaProvider } from "../provider-loader-C21b9OpH.mjs";
19
+ import { c as escapeHtmlAttr, l as renderPageMetadata, n as generateSiteSeoContributions, o as renderFragments, t as generateBaseSeoContributions, u as resolvePageMetadata } from "../seo-contributions-B1fWCnqY.mjs";
20
+ import { getPageRuntime } from "../page/index.mjs";
21
+ import sanitizeHtml from "sanitize-html";
22
+
23
+ //#region src/utils/sanitize.ts
24
+ /**
25
+ * Sanitize HTML content to prevent XSS attacks.
26
+ *
27
+ * Allows standard formatting tags, images, iframes (from specific providers),
28
+ * and basic attributes.
29
+ */
30
+ function sanitizeContent(html) {
31
+ return sanitizeHtml(html, {
32
+ allowedTags: [
33
+ ...sanitizeHtml.defaults.allowedTags,
34
+ "img",
35
+ "span",
36
+ "iframe"
37
+ ],
38
+ allowedAttributes: {
39
+ ...sanitizeHtml.defaults.allowedAttributes,
40
+ "*": [
41
+ "class",
42
+ "id",
43
+ "data-*"
44
+ ],
45
+ iframe: [
46
+ "src",
47
+ "width",
48
+ "height",
49
+ "frameborder",
50
+ "allow",
51
+ "allowfullscreen"
52
+ ],
53
+ img: [
54
+ "src",
55
+ "srcset",
56
+ "alt",
57
+ "title",
58
+ "width",
59
+ "height",
60
+ "loading"
61
+ ]
62
+ },
63
+ allowedIframeHostnames: ["www.youtube.com", "player.vimeo.com"]
64
+ });
65
+ }
66
+
67
+ //#endregion
68
+ //#region src/page/site-identity.ts
69
+ function renderSiteIdentity(input) {
70
+ if (!input) return "";
71
+ const favicon = input.favicon;
72
+ if (!favicon?.url) return "";
73
+ let tag = `<link rel="icon" href="${escapeHtmlAttr(favicon.url)}"`;
74
+ if (favicon.contentType) tag += ` type="${escapeHtmlAttr(favicon.contentType)}"`;
75
+ tag += ">";
76
+ return tag;
77
+ }
78
+
79
+ //#endregion
80
+ export { buildRenderMediaUrl, generateBaseSeoContributions, generateSiteSeoContributions, getCollectionInfo, getComments, getDinewayCollection, getEditMeta, getMediaProvider, getMenu, getPageRuntime, getSiteSettings, getTaxonomyTerms, getWidgetArea, renderFragments, renderPageMetadata, renderSiteIdentity, resolvePageMetadata, sanitizeContent, sanitizeHref };
@@ -0,0 +1,49 @@
1
+ //#region src/utils/url.ts
2
+ /**
3
+ * URL scheme validation utilities
4
+ *
5
+ * Prevents XSS via dangerous URL schemes (javascript:, data:, vbscript:, etc.)
6
+ * by allowlisting known-safe schemes before rendering into href attributes.
7
+ */
8
+ /**
9
+ * Matches URLs that are safe to render in href attributes.
10
+ *
11
+ * Allowed:
12
+ * - http:// and https://
13
+ * - mailto: and tel:
14
+ * - Relative paths (starting with /)
15
+ * - Fragment links (starting with #)
16
+ * - Protocol-relative URLs are NOT allowed (starting with //) as they can
17
+ * redirect to attacker-controlled hosts.
18
+ */
19
+ const SAFE_URL_SCHEME_RE = /^(https?:|mailto:|tel:|\/(?!\/)|#)/i;
20
+ /**
21
+ * Returns the URL unchanged if it uses a safe scheme, otherwise returns "#".
22
+ *
23
+ * Use this at the render layer as the primary defense against XSS via
24
+ * dangerous URL schemes like `javascript:`, `data:`, or `vbscript:`.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * sanitizeHref("https://example.com") // "https://example.com"
29
+ * sanitizeHref("/about") // "/about"
30
+ * sanitizeHref("#section") // "#section"
31
+ * sanitizeHref("mailto:a@b.com") // "mailto:a@b.com"
32
+ * sanitizeHref("javascript:alert(1)") // "#"
33
+ * sanitizeHref("data:text/html,<script>") // "#"
34
+ * sanitizeHref("") // "#"
35
+ * ```
36
+ */
37
+ function sanitizeHref(url) {
38
+ if (!url) return "#";
39
+ return SAFE_URL_SCHEME_RE.test(url) ? url : "#";
40
+ }
41
+ /**
42
+ * Returns true if the URL uses a safe scheme for rendering in href attributes.
43
+ */
44
+ function isSafeHref(url) {
45
+ return SAFE_URL_SCHEME_RE.test(url);
46
+ }
47
+
48
+ //#endregion
49
+ export { sanitizeHref as n, isSafeHref as t };
@@ -1,6 +1,6 @@
1
- import { t as Database } from "./types-Du8jreyC.mjs";
2
- import { i as SiteSettings, m as FieldType } from "./types-IPACEM14.mjs";
3
- import { d as Storage } from "./types-B9qVtiHb.mjs";
1
+ import { t as Database } from "./types-DZPw8Rru.mjs";
2
+ import { i as SiteSettings, m as FieldType } from "./types-C0mmVRJN.mjs";
3
+ import { d as Storage } from "./types-B7kpsMJ3.mjs";
4
4
  import { Kysely } from "kysely";
5
5
 
6
6
  //#region src/seed/types.d.ts
@@ -0,0 +1,6 @@
1
+ //#region src/version.ts
2
+ const VERSION = "0.1.13";
3
+ const COMMIT = "578b5c8c";
4
+
5
+ //#endregion
6
+ export { VERSION as n, COMMIT as t };
@@ -1,5 +1,5 @@
1
1
  import { r as getDb } from "./loader-PZnPxFLc.mjs";
2
- import { t as getWidgetComponents$1 } from "./components-DND2rd3D.mjs";
2
+ import { t as getWidgetComponents$1 } from "./components-BPknylYg.mjs";
3
3
 
4
4
  //#region src/widgets/index.ts
5
5
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dineway",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "description": "Agentic Website builder for restaurants — structured content meets AI via the Model Context Protocol",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -43,6 +43,14 @@
43
43
  "default": "./dist/astro/middleware/redirect.mjs"
44
44
  },
45
45
  "./ui": "./src/ui.ts",
46
+ "./ui/server-runtime": {
47
+ "types": "./dist/ui/server-runtime.d.mts",
48
+ "default": "./dist/ui/server-runtime.mjs"
49
+ },
50
+ "./ui/client-runtime": {
51
+ "types": "./dist/ui/client-runtime.d.mts",
52
+ "default": "./dist/ui/client-runtime.mjs"
53
+ },
46
54
  "./ui/search": "./src/components/LiveSearch.astro",
47
55
  "./cli": {
48
56
  "types": "./dist/cli/index.d.mts",
@@ -286,6 +294,12 @@
286
294
  "storage/s3": [
287
295
  "dist/storage/s3.d.mts"
288
296
  ],
297
+ "ui/client-runtime": [
298
+ "dist/ui/client-runtime.d.mts"
299
+ ],
300
+ "ui/server-runtime": [
301
+ "dist/ui/server-runtime.d.mts"
302
+ ],
289
303
  "": [
290
304
  "dist/index.d.mts"
291
305
  ]
@@ -327,9 +341,9 @@
327
341
  "ulidx": "^2.4.1",
328
342
  "upng-js": "^2.1.0",
329
343
  "zod": "^4.3.5",
330
- "@dineway-ai/admin": "0.1.9",
331
- "@dineway-ai/auth": "0.1.10",
332
- "@dineway-ai/gutenberg-to-portable-text": "0.1.9"
344
+ "@dineway-ai/admin": "^0.1.10",
345
+ "@dineway-ai/auth": "^0.1.11",
346
+ "@dineway-ai/gutenberg-to-portable-text": "^0.1.10"
333
347
  },
334
348
  "optionalDependencies": {
335
349
  "@libsql/kysely-libsql": "^0.4.0",
@@ -358,7 +372,7 @@
358
372
  "vite": "^6.0.0",
359
373
  "vitest": "^4.0.18",
360
374
  "zod-openapi": "^5.4.6",
361
- "@dineway-ai/blocks": "0.1.9"
375
+ "@dineway-ai/blocks": "^0.1.10"
362
376
  },
363
377
  "keywords": [
364
378
  "astro",
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { sanitizeHref } from "../utils/url.js";
2
+ import { sanitizeHref } from "dineway/ui/server-runtime";
3
3
 
4
4
  /**
5
5
  * Portable Text Button block component
@@ -26,7 +26,7 @@ interface Props {
26
26
  turnstileSiteKey?: string;
27
27
  }
28
28
 
29
- import { getCollectionInfo } from "../schema/query.js";
29
+ import { getCollectionInfo } from "dineway/ui/server-runtime";
30
30
 
31
31
  const {
32
32
  collection,
@@ -13,9 +13,7 @@
13
13
  * <Comments collection="posts" contentId={post.id} threaded />
14
14
  * ```
15
15
  */
16
- import type { PublicComment } from "../database/repositories/comment.js";
17
- import { getComments } from "../comments/query.js";
18
- import { getCollectionInfo } from "../schema/query.js";
16
+ import { getCollectionInfo, getComments, type PublicComment } from "dineway/ui/server-runtime";
19
17
 
20
18
  interface Props {
21
19
  collection: string;
@@ -10,9 +10,11 @@
10
10
  * </body>
11
11
  * ```
12
12
  */
13
- import type { PublicPageContext } from "../plugins/types.js";
14
- import { renderFragments } from "../page/fragments.js";
15
- import { getPageRuntime } from "../page/index.js";
13
+ import {
14
+ getPageRuntime,
15
+ renderFragments,
16
+ type PublicPageContext,
17
+ } from "dineway/ui/server-runtime";
16
18
 
17
19
  interface Props {
18
20
  page: PublicPageContext;
@@ -10,9 +10,11 @@
10
10
  * </body>
11
11
  * ```
12
12
  */
13
- import type { PublicPageContext } from "../plugins/types.js";
14
- import { renderFragments } from "../page/fragments.js";
15
- import { getPageRuntime } from "../page/index.js";
13
+ import {
14
+ getPageRuntime,
15
+ renderFragments,
16
+ type PublicPageContext,
17
+ } from "dineway/ui/server-runtime";
16
18
 
17
19
  interface Props {
18
20
  page: PublicPageContext;
@@ -13,16 +13,18 @@
13
13
  * </head>
14
14
  * ```
15
15
  */
16
- import type { PublicPageContext, PageMetadataContribution } from "../plugins/types.js";
17
- import { resolvePageMetadata, renderPageMetadata } from "../page/metadata.js";
18
- import { renderFragments } from "../page/fragments.js";
19
16
  import {
20
17
  generateBaseSeoContributions,
21
18
  generateSiteSeoContributions,
22
- } from "../page/seo-contributions.js";
23
- import { renderSiteIdentity } from "../page/site-identity.js";
24
- import { getPageRuntime } from "../page/index.js";
25
- import { getSiteSettings } from "../settings/index.js";
19
+ getPageRuntime,
20
+ getSiteSettings,
21
+ renderFragments,
22
+ renderPageMetadata,
23
+ renderSiteIdentity,
24
+ resolvePageMetadata,
25
+ type PageMetadataContribution,
26
+ type PublicPageContext,
27
+ } from "dineway/ui/server-runtime";
26
28
 
27
29
  interface Props {
28
30
  page: PublicPageContext;
@@ -16,11 +16,13 @@
16
16
  * <Image image={post.data.featured_image} class="hero" />
17
17
  * ```
18
18
  */
19
- import type { MediaValue } from "../fields/types.js";
20
19
  import type { HTMLAttributes } from "astro/types";
21
- import type { ImageEmbed } from "../media/types.js";
22
- import { getMediaProvider } from "../media/provider-loader.js";
23
- import { buildRenderMediaUrl } from "../media/url.js";
20
+ import {
21
+ buildRenderMediaUrl,
22
+ getMediaProvider,
23
+ type ImageEmbed,
24
+ type MediaValue,
25
+ } from "dineway/ui/server-runtime";
24
26
  // Standard responsive breakpoints
25
27
  const BREAKPOINTS = [640, 750, 828, 960, 1080, 1280, 1600, 1920];
26
28
 
@@ -16,11 +16,14 @@
16
16
  * <Media value={post.data.hero} width={1200} height={630} />
17
17
  * ```
18
18
  */
19
- import type { MediaValue } from "../fields/types.js";
20
- import type { EmbedResult, EmbedOptions } from "../media/types.js";
21
19
  import type { HTMLAttributes } from "astro/types";
22
- import { getMediaProvider } from "../media/provider-loader.js";
23
- import { buildRenderMediaUrl } from "../media/url.js";
20
+ import {
21
+ buildRenderMediaUrl,
22
+ getMediaProvider,
23
+ type EmbedOptions,
24
+ type EmbedResult,
25
+ type MediaValue,
26
+ } from "dineway/ui/server-runtime";
24
27
 
25
28
  interface Props extends Omit<HTMLAttributes<"img" | "video" | "audio">, "src" | "width" | "height"> {
26
29
  /** Media value from content field */
@@ -1,6 +1,5 @@
1
1
  ---
2
- import { sanitizeHref } from "../utils/url.js";
3
- import { sanitizeContent } from "../utils/sanitize.js";
2
+ import { sanitizeContent, sanitizeHref } from "dineway/ui/server-runtime";
4
3
 
5
4
  /**
6
5
  * Portable Text Embed block component
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { sanitizeHref } from "../utils/url.js";
2
+ import { sanitizeHref } from "dineway/ui/server-runtime";
3
3
 
4
4
  /**
5
5
  * Portable Text File block component
@@ -6,7 +6,7 @@
6
6
  * Uses Astro's Image component for optimization when dimensions are available.
7
7
  */
8
8
  import { Image as AstroImage } from "astro:assets";
9
- import { buildRenderMediaUrl } from "../media/url.js";
9
+ import { buildRenderMediaUrl } from "dineway/ui/server-runtime";
10
10
 
11
11
  export interface Props {
12
12
  node: {
@@ -5,7 +5,7 @@
5
5
  * Renders raw HTML blocks that couldn't be converted to Portable Text.
6
6
  * Sanitizes HTML to prevent XSS attacks.
7
7
  */
8
- import { sanitizeContent } from "../utils/sanitize.js";
8
+ import { sanitizeContent } from "dineway/ui/server-runtime";
9
9
 
10
10
  export interface Props {
11
11
  node: {
@@ -5,9 +5,11 @@
5
5
  * Renders image blocks from WordPress imports and Dineway media.
6
6
  * Uses the provider's getSrc function for responsive srcset generation.
7
7
  */
8
- import type { ImageEmbed } from "../media/types.js";
9
- import { getMediaProvider } from "../media/provider-loader.js";
10
- import { buildRenderMediaUrl } from "../media/url.js";
8
+ import {
9
+ buildRenderMediaUrl,
10
+ getMediaProvider,
11
+ type ImageEmbed,
12
+ } from "dineway/ui/server-runtime";
11
13
  // Standard responsive breakpoints
12
14
  const BREAKPOINTS = [640, 750, 828, 960, 1080, 1280, 1600, 1920];
13
15
 
@@ -22,11 +22,10 @@ import { useEditor, EditorContent, type Editor } from "@tiptap/react";
22
22
  import { BubbleMenu } from "@tiptap/react/menus";
23
23
  import StarterKit from "@tiptap/starter-kit";
24
24
  import Suggestion from "@tiptap/suggestion";
25
+ import { computeThumbnailSize } from "dineway/ui/client-runtime";
25
26
  import * as React from "react";
26
27
  import { createPortal } from "react-dom";
27
28
 
28
- import { computeThumbnailSize } from "../media/thumbnail.js";
29
-
30
29
  // ── Portable Text types ────────────────────────────────────────────
31
30
 
32
31
  interface PTSpan {
@@ -17,7 +17,7 @@ import {
17
17
  mergeComponents,
18
18
  type PortableTextProps,
19
19
  } from "astro-portabletext";
20
- import { getEditMeta } from "../query.js";
20
+ import { getEditMeta } from "dineway/ui/server-runtime";
21
21
  // @ts-ignore - virtual module
22
22
  import { pluginBlockComponents } from "virtual:dineway/block-components";
23
23
  import { dinewayComponents } from "./index.js";
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { getWidgetArea } from "../widgets/index.js";
2
+ import { getWidgetArea } from "dineway/ui/server-runtime";
3
3
  import WidgetRenderer from "./WidgetRenderer.astro";
4
4
 
5
5
  interface Props {
@@ -1,7 +1,5 @@
1
1
  ---
2
- import type { Widget } from "../widgets/types.js";
3
- import { getMenu } from "../menus/index.js";
4
- import { sanitizeHref } from "../utils/url.js";
2
+ import { getMenu, sanitizeHref, type Widget } from "dineway/ui/server-runtime";
5
3
  import PortableText from "./PortableText.astro";
6
4
  import RecentPosts from "./widgets/RecentPosts.astro";
7
5
  import Categories from "./widgets/Categories.astro";
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { sanitizeHref } from "../../utils/url.js";
2
+ import { sanitizeHref } from "dineway/ui/server-runtime";
3
3
 
4
4
  /**
5
5
  * Portable Text Link mark component
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { getDinewayCollection } from "../../query.js";
2
+ import { getDinewayCollection } from "dineway/ui/server-runtime";
3
3
 
4
4
  interface Props {
5
5
  type?: "monthly" | "yearly";
@@ -3,7 +3,7 @@
3
3
  * Categories widget component
4
4
  * Displays a list of categories with optional post counts
5
5
  */
6
- import { getTaxonomyTerms } from "../../taxonomies/index.js";
6
+ import { getTaxonomyTerms } from "dineway/ui/server-runtime";
7
7
 
8
8
  interface Props {
9
9
  showCount?: boolean;
@@ -1,5 +1,5 @@
1
1
  ---
2
- import { getDinewayCollection } from "../../query.js";
2
+ import { getDinewayCollection } from "dineway/ui/server-runtime";
3
3
 
4
4
  interface Props {
5
5
  count?: number;
@@ -3,7 +3,7 @@
3
3
  * Tags widget component
4
4
  * Displays a tag cloud with optional counts
5
5
  */
6
- import { getTaxonomyTerms } from "../../taxonomies/index.js";
6
+ import { getTaxonomyTerms } from "dineway/ui/server-runtime";
7
7
 
8
8
  interface Props {
9
9
  showCount?: boolean;
@@ -1,6 +0,0 @@
1
- //#region src/version.ts
2
- const VERSION = "0.1.11";
3
- const COMMIT = "d88600db";
4
-
5
- //#endregion
6
- export { VERSION as n, COMMIT as t };