dineway 0.1.47 → 0.1.49

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 (293) hide show
  1. package/README.md +57 -54
  2. package/dist/{activity-events-CNk3clTT.mjs → activity-events-CwM7yxPW.mjs} +1 -1
  3. package/dist/{allowed-origins-QirBXiDj.mjs → allowed-origins-CyGnbgBd.mjs} +1 -1
  4. package/dist/api/route-utils.d.mts +8 -22
  5. package/dist/api/route-utils.mjs +10 -10
  6. package/dist/api/schemas/index.d.mts +2 -2
  7. package/dist/api/schemas/index.mjs +4 -4
  8. package/dist/{api-ePsOhL3q.mjs → api-BMIxRIEN.mjs} +65 -18
  9. package/dist/{apply-BpRBCqUt.mjs → apply-D_RlTYtC.mjs} +54 -48
  10. package/dist/astro/index.d.mts +8 -8
  11. package/dist/astro/index.mjs +67 -25
  12. package/dist/astro/middleware/auth.d.mts +7 -7
  13. package/dist/astro/middleware/auth.mjs +1 -1
  14. package/dist/astro/middleware/redirect.mjs +5 -5
  15. package/dist/astro/middleware/request-context.mjs +4 -4
  16. package/dist/astro/middleware/seed.d.mts +1 -1
  17. package/dist/astro/middleware/seed.mjs +2 -2
  18. package/dist/astro/middleware.d.mts +2 -1
  19. package/dist/astro/middleware.mjs +366 -147
  20. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +3 -3
  21. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +3 -3
  22. package/dist/astro/routes/api/admin/briefing.mjs +16 -16
  23. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +2 -2
  24. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +5 -5
  25. package/dist/astro/routes/api/admin/byline-fields/index.mjs +5 -5
  26. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +5 -5
  27. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +11 -11
  28. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +11 -11
  29. package/dist/astro/routes/api/admin/bylines/index.mjs +11 -11
  30. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +10 -10
  31. package/dist/astro/routes/api/admin/comments/_id_.mjs +4 -4
  32. package/dist/astro/routes/api/admin/comments/bulk.mjs +7 -7
  33. package/dist/astro/routes/api/admin/comments/counts.mjs +4 -4
  34. package/dist/astro/routes/api/admin/comments/index.mjs +7 -7
  35. package/dist/astro/routes/api/admin/context/_id_/history.mjs +23 -23
  36. package/dist/astro/routes/api/admin/context/_id_/index.mjs +23 -23
  37. package/dist/astro/routes/api/admin/context/_id_/review.mjs +26 -26
  38. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +26 -26
  39. package/dist/astro/routes/api/admin/context/diff.mjs +25 -25
  40. package/dist/astro/routes/api/admin/context/index.mjs +26 -26
  41. package/dist/astro/routes/api/admin/context/stale.mjs +25 -25
  42. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +24 -24
  43. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +26 -26
  44. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +26 -26
  45. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +23 -23
  46. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +1 -1
  47. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +43 -43
  48. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +43 -43
  49. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +37 -37
  50. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +43 -43
  51. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +43 -43
  52. package/dist/astro/routes/api/admin/plugins/index.mjs +37 -37
  53. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +37 -37
  54. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +43 -43
  55. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +37 -37
  56. package/dist/astro/routes/api/admin/plugins/updates.mjs +37 -37
  57. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +4 -4
  58. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +25 -25
  59. package/dist/astro/routes/api/admin/review-requests/index.mjs +7 -7
  60. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +37 -37
  61. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +37 -37
  62. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +1 -1
  63. package/dist/astro/routes/api/admin/users/_id_/index.mjs +4 -4
  64. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +2 -2
  65. package/dist/astro/routes/api/admin/users/index.mjs +3 -3
  66. package/dist/astro/routes/api/auth/dev-bypass.mjs +1 -1
  67. package/dist/astro/routes/api/auth/invite/complete.mjs +6 -6
  68. package/dist/astro/routes/api/auth/invite/index.mjs +5 -5
  69. package/dist/astro/routes/api/auth/invite/register-options.mjs +5 -5
  70. package/dist/astro/routes/api/auth/magic-link/send.mjs +5 -5
  71. package/dist/astro/routes/api/auth/me.mjs +7 -7
  72. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +1 -1
  73. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +1 -1
  74. package/dist/astro/routes/api/auth/passkey/_id_.mjs +3 -3
  75. package/dist/astro/routes/api/auth/passkey/options.mjs +5 -5
  76. package/dist/astro/routes/api/auth/passkey/register/options.mjs +5 -5
  77. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +6 -6
  78. package/dist/astro/routes/api/auth/passkey/verify.mjs +6 -6
  79. package/dist/astro/routes/api/auth/setup-token/index.mjs +4 -4
  80. package/dist/astro/routes/api/auth/signup/complete.mjs +6 -6
  81. package/dist/astro/routes/api/auth/signup/request.mjs +5 -5
  82. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +11 -11
  83. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +7 -6
  84. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +4 -4
  85. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +4 -4
  86. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +8 -8
  87. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +10 -9
  88. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +4 -4
  89. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +13 -11
  90. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +10 -10
  91. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +7 -6
  92. package/dist/astro/routes/api/content/_collection_/_id_.mjs +10 -9
  93. package/dist/astro/routes/api/content/_collection_/authors.d.mts +7 -0
  94. package/dist/astro/routes/api/content/_collection_/authors.mjs +16 -0
  95. package/dist/astro/routes/api/content/_collection_/index.mjs +7 -7
  96. package/dist/astro/routes/api/content/_collection_/trash.mjs +3 -3
  97. package/dist/astro/routes/api/dashboard.mjs +7 -7
  98. package/dist/astro/routes/api/health.mjs +1 -1
  99. package/dist/astro/routes/api/import/probe.d.mts +2 -2
  100. package/dist/astro/routes/api/import/probe.mjs +6 -6
  101. package/dist/astro/routes/api/import/wordpress/analyze.mjs +3 -3
  102. package/dist/astro/routes/api/import/wordpress/execute.mjs +28 -28
  103. package/dist/astro/routes/api/import/wordpress/media.mjs +6 -6
  104. package/dist/astro/routes/api/import/wordpress/prepare.mjs +29 -29
  105. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +27 -27
  106. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +8 -8
  107. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
  108. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +29 -29
  109. package/dist/astro/routes/api/manifest.mjs +1 -1
  110. package/dist/astro/routes/api/mcp.mjs +49 -49
  111. package/dist/astro/routes/api/media/_id_/confirm.mjs +6 -6
  112. package/dist/astro/routes/api/media/_id_.mjs +3 -3
  113. package/dist/astro/routes/api/media/upload-url.mjs +8 -8
  114. package/dist/astro/routes/api/media.mjs +9 -9
  115. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +26 -26
  116. package/dist/astro/routes/api/menus/_name_/items.mjs +26 -26
  117. package/dist/astro/routes/api/menus/_name_/reorder.mjs +26 -26
  118. package/dist/astro/routes/api/menus/_name_/translations.mjs +26 -26
  119. package/dist/astro/routes/api/menus/_name_.mjs +26 -26
  120. package/dist/astro/routes/api/menus/index.mjs +26 -26
  121. package/dist/astro/routes/api/oauth/authorize.mjs +2 -2
  122. package/dist/astro/routes/api/oauth/device/authorize.mjs +1 -1
  123. package/dist/astro/routes/api/oauth/device/code.mjs +2 -2
  124. package/dist/astro/routes/api/oauth/device/token.mjs +1 -1
  125. package/dist/astro/routes/api/oauth/token/refresh.mjs +1 -1
  126. package/dist/astro/routes/api/oauth/token/revoke.mjs +1 -1
  127. package/dist/astro/routes/api/oauth/token.mjs +2 -2
  128. package/dist/astro/routes/api/openapi.json.mjs +16 -2
  129. package/dist/astro/routes/api/redirects/404s/index.mjs +8 -8
  130. package/dist/astro/routes/api/redirects/404s/summary.mjs +8 -8
  131. package/dist/astro/routes/api/redirects/_id_.mjs +27 -27
  132. package/dist/astro/routes/api/redirects/index.mjs +27 -27
  133. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +38 -38
  134. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +38 -38
  135. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +38 -38
  136. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +38 -38
  137. package/dist/astro/routes/api/schema/collections/index.mjs +38 -38
  138. package/dist/astro/routes/api/schema/index.mjs +3 -3
  139. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +37 -37
  140. package/dist/astro/routes/api/schema/orphans/index.mjs +37 -37
  141. package/dist/astro/routes/api/search/enable.mjs +8 -8
  142. package/dist/astro/routes/api/search/index.mjs +8 -8
  143. package/dist/astro/routes/api/search/rebuild.mjs +8 -8
  144. package/dist/astro/routes/api/search/stats.mjs +5 -5
  145. package/dist/astro/routes/api/search/suggest.mjs +8 -8
  146. package/dist/astro/routes/api/sections/_slug_.mjs +26 -26
  147. package/dist/astro/routes/api/sections/index.mjs +26 -26
  148. package/dist/astro/routes/api/settings/email.mjs +1 -1
  149. package/dist/astro/routes/api/settings.mjs +26 -26
  150. package/dist/astro/routes/api/setup/admin-verify.mjs +7 -7
  151. package/dist/astro/routes/api/setup/admin.mjs +5 -5
  152. package/dist/astro/routes/api/setup/dev-bypass.mjs +19 -19
  153. package/dist/astro/routes/api/setup/dev-reset.mjs +1 -1
  154. package/dist/astro/routes/api/setup/index.mjs +22 -22
  155. package/dist/astro/routes/api/setup/status.mjs +1 -1
  156. package/dist/astro/routes/api/snapshot.mjs +4 -4
  157. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +28 -28
  158. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +28 -28
  159. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +28 -28
  160. package/dist/astro/routes/api/taxonomies/index.mjs +28 -28
  161. package/dist/astro/routes/api/themes/preview.mjs +4 -4
  162. package/dist/astro/routes/api/typegen.mjs +3 -3
  163. package/dist/astro/routes/api/well-known/auth.mjs +2 -2
  164. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +1 -1
  165. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +1 -1
  166. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +25 -25
  167. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +26 -26
  168. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +26 -26
  169. package/dist/astro/routes/api/widget-areas/_name_.mjs +24 -24
  170. package/dist/astro/routes/api/widget-areas/index.mjs +26 -26
  171. package/dist/astro/routes/robots.txt.mjs +47 -24
  172. package/dist/astro/routes/sitemap-_collection_.xml.mjs +8 -8
  173. package/dist/astro/routes/sitemap.xml.mjs +8 -8
  174. package/dist/astro/session-driver.d.mts +1 -1
  175. package/dist/astro/session-driver.mjs +3 -3
  176. package/dist/astro/types.d.mts +15 -8
  177. package/dist/{audit-DuRbTm8L.mjs → audit-BeNsSyfU.mjs} +1 -1
  178. package/dist/{briefing-BFEWeJtR.mjs → briefing-CkTee1ex.mjs} +7 -7
  179. package/dist/{briefing-C4fJSVYW.mjs → briefing-DJX6irto.mjs} +1 -1
  180. package/dist/{byline-CXQcMsBu.mjs → byline-BVC1lV6G.mjs} +5 -5
  181. package/dist/{byline-fields-Dc7L6Yry.mjs → byline-fields-Cj39WhXC.mjs} +1 -1
  182. package/dist/{byline-fields-D7TJ_oHF.mjs → byline-fields-cNrLJVRs.mjs} +3 -3
  183. package/dist/{byline-fields-Cuo-JI3B.d.mts → byline-fields-uJlygdzM.d.mts} +34 -10
  184. package/dist/{byline-registry-CL8BxPPp.mjs → byline-registry-4v6tXMNX.mjs} +2 -2
  185. package/dist/{bylines-BgriNlW7.mjs → bylines-DwokOFj6.mjs} +38 -4
  186. package/dist/{bylines-D2vqm1aZ.mjs → bylines-LN9XISRo.mjs} +2 -2
  187. package/dist/{cache-GRK71jOU.mjs → cache-Bac05gBd.mjs} +2 -2
  188. package/dist/{chunks-DgEw12Bc.mjs → chunks-CuUt7K50.mjs} +1 -1
  189. package/dist/cli/index.mjs +709 -589
  190. package/dist/client/external-auth-headers.d.mts +1 -1
  191. package/dist/client/index.d.mts +1 -1
  192. package/dist/{comment-ogMaF1gk.mjs → comment-Beue8-15.mjs} +1 -1
  193. package/dist/{comments-CTSOKrZq.mjs → comments-DcjFIfqX.mjs} +1 -1
  194. package/dist/{content-BfyjOiMi.mjs → content-CBxYGWfL.mjs} +104 -41
  195. package/dist/{context-ZMHhwzkG.mjs → context-CQVNZaR8.mjs} +7 -7
  196. package/dist/{context-CdsYb1m8.mjs → context-Df1xVYyr.mjs} +2 -2
  197. package/dist/{context-route-helpers-YLWx2N1j.mjs → context-route-helpers-B9wj8Rmh.mjs} +1 -1
  198. package/dist/{dashboard-D0gWuzNp.mjs → dashboard-B7ZUNuyF.mjs} +4 -4
  199. package/dist/db/index.d.mts +2 -2
  200. package/dist/db/index.mjs +1 -1
  201. package/dist/{default-BHauvIdG.mjs → default-B6iaLvP7.mjs} +4 -2
  202. package/dist/{device-flow-B3_FEoMI.mjs → device-flow-BZVGftqi.mjs} +1 -1
  203. package/dist/{fts-manager-EHY2Kes9.mjs → fts-manager-B5l_qwrA.mjs} +1 -1
  204. package/dist/{hitl-requests-B1Zqgut6.mjs → hitl-requests-7NlzVeUA.mjs} +1 -1
  205. package/dist/{hitl-route-helpers-CjpWUMuw.mjs → hitl-route-helpers-k---_H3-.mjs} +2 -2
  206. package/dist/{import-CvHY6sf5.mjs → import-4YBXbDkI.mjs} +2 -2
  207. package/dist/{index-DJVaYiUV.d.mts → index-CZiWCQDp.d.mts} +1 -1
  208. package/dist/index.d.mts +10 -10
  209. package/dist/index.mjs +59 -59
  210. package/dist/{jsonld-AcPnCEGD.d.mts → jsonld-DZ67souc.d.mts} +1 -1
  211. package/dist/{load-BdbvtoDb.mjs → load-D9OiGr2m.mjs} +1 -1
  212. package/dist/{loader-Y0QvC_QO.mjs → loader--GOYux8M.mjs} +138 -36
  213. package/dist/media/index.mjs +2 -2
  214. package/dist/media/local-runtime.d.mts +7 -7
  215. package/dist/media/local-runtime.mjs +3 -3
  216. package/dist/{media-DhBwiCYR.mjs → media-CbKyYukG.mjs} +1 -1
  217. package/dist/{media-allowlist-BsXkT9RK.mjs → media-allowlist-BYxJIcTO.mjs} +1 -1
  218. package/dist/{menus-BzGQpw9d.mjs → menus-BZbXf-ej.mjs} +2 -2
  219. package/dist/{menus-fqqzXyHd.mjs → menus-C7F0sCrC.mjs} +13 -8
  220. package/dist/{normalize-O-hi3a27.mjs → normalize-ByemhhfW.mjs} +1 -1
  221. package/dist/{oauth-authorization-DsF81vki.mjs → oauth-authorization-DF-LCsIA.mjs} +1 -1
  222. package/dist/page/index.d.mts +2 -2
  223. package/dist/plugin-utils.d.mts +7 -7
  224. package/dist/plugins/adapt-sandbox-entry.d.mts +7 -7
  225. package/dist/{plugins-BQ5Joz6v.mjs → plugins-DzfqRREq.mjs} +195 -5
  226. package/dist/{preview-D5rvDhRt.mjs → preview-C-3YTX2U.mjs} +1 -1
  227. package/dist/public-url-B4xV4rGa.d.mts +19 -0
  228. package/dist/{public-url-DLUM5OOv.mjs → public-url-B_m9IwdV.mjs} +24 -18
  229. package/dist/{query-BJuUydtD.mjs → query-CZ3TH_Uu.mjs} +3 -3
  230. package/dist/{query-CSx0EdSW.mjs → query-Ds0EnMFX.mjs} +29 -18
  231. package/dist/{redirect-BqFMj67n.mjs → redirect-CEACczxo.mjs} +2 -2
  232. package/dist/{redirects-CJwHl_YG.mjs → redirects-DYj1yPxs.mjs} +4 -4
  233. package/dist/{redirects-q_cToaHv.mjs → redirects-ocRJmQHP.mjs} +23 -3
  234. package/dist/{registry-Cq3QRBW2.mjs → registry-D7HACema.mjs} +38 -6
  235. package/dist/{review-requests-tPw8_pAO.mjs → review-requests-BW2NxY-l.mjs} +1 -1
  236. package/dist/{review-requests-GYqjl2jO.mjs → review-requests-Qum4713s.mjs} +1 -1
  237. package/dist/{runner-Cnz4dl0f.d.mts → runner-09sTqtv0.d.mts} +1 -1
  238. package/dist/{runner-DTfG5v0G.mjs → runner-DzIpHGND.mjs} +328 -193
  239. package/dist/{runtime-Cd-kjPfN.d.mts → runtime-C4-2lSFg.d.mts} +261 -128
  240. package/dist/runtime.d.mts +8 -8
  241. package/dist/runtime.mjs +3 -3
  242. package/dist/schema-Bsi-VpYv.mjs +8 -0
  243. package/dist/{search-BAiFLz81.mjs → search-Gdrqj582.mjs} +3 -3
  244. package/dist/{secrets-CPoFLJjm.mjs → secrets-CeGpBFV2.mjs} +2 -2
  245. package/dist/{sections-DsuIrFDC.mjs → sections-BOjU13Y-.mjs} +2 -2
  246. package/dist/seed/index.d.mts +2 -2
  247. package/dist/seed/index.mjs +18 -18
  248. package/dist/seo/index.d.mts +1 -1
  249. package/dist/{seo-uMFBaR8G.mjs → seo-CLj8lS7Q.mjs} +1 -1
  250. package/dist/{service-CifrxCru.mjs → service-jGlhrICs.mjs} +1 -1
  251. package/dist/{settings-DNRQuX3d.mjs → settings-CUXOxzsT.mjs} +4 -4
  252. package/dist/{settings-BYGdocdj.mjs → settings-DlBsT2VS.mjs} +2 -2
  253. package/dist/{setup-complete-4EiBS1E5.mjs → setup-complete-BRrdPYjZ.mjs} +1 -1
  254. package/dist/{site-activity-6x1JccoR.mjs → site-activity-DONFrMBJ.mjs} +1 -1
  255. package/dist/{site-context-c1ZFa_OF.mjs → site-context-C8Az_P_I.mjs} +13 -13
  256. package/dist/{site-url-C-cu8Ff2.mjs → site-url-DIMD68go.mjs} +1 -1
  257. package/dist/{taxonomies-faQVeMgj.mjs → taxonomies-CZ-_DitR.mjs} +9 -7
  258. package/dist/{taxonomies-CQFmkP5u.mjs → taxonomies-D9Sw4wWM.mjs} +3 -3
  259. package/dist/{taxonomy-BnH-6VsX.mjs → taxonomy-B169Nm6B.mjs} +2 -2
  260. package/dist/{tokens-CjSgb0AC.mjs → tokens-SLmgowfd.mjs} +1 -1
  261. package/dist/{types-Ck7-WoUD.mjs → types-CSgR9nQB.mjs} +10 -3
  262. package/dist/{types-DYKtk8f1.d.mts → types-CuJOqHfM.d.mts} +128 -0
  263. package/dist/{types-DEAQG87T.d.mts → types-CwawBUTa.d.mts} +1 -1
  264. package/dist/{types-B7_vSiPD.d.mts → types-DRIKLmJI.d.mts} +14 -2
  265. package/dist/{types-UGmU5sWx.d.mts → types-DSPGWjxO.d.mts} +1 -1
  266. package/dist/ui/server-runtime.d.mts +58 -10
  267. package/dist/ui/server-runtime.mjs +98 -16
  268. package/dist/{user-CqZwN21P.mjs → user-DTLoZs16.mjs} +15 -1
  269. package/dist/{utils-wv-zvC-Y.mjs → utils-B8hBJ9Oz.mjs} +1 -1
  270. package/dist/{validate-CK4a1sIF.mjs → validate-DWmPO6oj.mjs} +5 -2
  271. package/dist/{validate-BJuG-ISL.d.mts → validate-DzjCdy6v.d.mts} +10 -2
  272. package/dist/version-C4gfn0PJ.mjs +6 -0
  273. package/dist/{widgets-CdDvF4fV.mjs → widgets-BpJ8EpPd.mjs} +1 -1
  274. package/dist/{wordpress-slugs-B6Gw9q3Q.mjs → wordpress-slugs-DHNR9LpG.mjs} +1 -1
  275. package/dist/{zod-generator-D1ROBNuC.mjs → zod-generator-K91-g665.mjs} +3 -2
  276. package/package.json +6 -5
  277. package/src/components/DinewayImage.astro +23 -5
  278. package/src/components/Image.astro +19 -3
  279. package/dist/schema-DmHMWnSA.mjs +0 -8
  280. package/dist/version-Cb1tZ6s_.mjs +0 -6
  281. /package/dist/{base64-C1Q9yr0B.mjs → base64-F8-DUraK.mjs} +0 -0
  282. /package/dist/{context-types-DQh_XKkn.mjs → context-types-r8oFvyOq.mjs} +0 -0
  283. /package/dist/{entity-aliases-uOrKvlPg.mjs → entity-aliases-4y93Yjuc.mjs} +0 -0
  284. /package/dist/{mime-8pAB8-77.mjs → mime-CbKsKDCB.mjs} +0 -0
  285. /package/dist/{options-BF11H_FD.mjs → options-LsPjZlqD.mjs} +0 -0
  286. /package/dist/{patterns-D9iDO3j8.mjs → patterns-DKAX6oqN.mjs} +0 -0
  287. /package/dist/{placeholder-BDo81Is5.mjs → placeholder-d54Qr_7n.mjs} +0 -0
  288. /package/dist/{provider-loader-B5PMjpN7.d.mts → provider-loader-9it4vd6L.d.mts} +0 -0
  289. /package/dist/{request-cache-w5cj5itT.mjs → request-cache-ho99schz.mjs} +0 -0
  290. /package/dist/{slugify-BzGxlOFx.mjs → slugify-BqebcqBg.mjs} +0 -0
  291. /package/dist/{transaction-D0FOsb3X.mjs → transaction-CFLhEOuH.mjs} +0 -0
  292. /package/dist/{transport-DidKKxvW.d.mts → transport-BnsNxh2l.d.mts} +0 -0
  293. /package/dist/{types-DbZhHtqS.mjs → types-CJ8DkL0q.mjs} +0 -0
@@ -1,4 +1,4 @@
1
- import { i as ContentSeo } from "../types-B7_vSiPD.mjs";
1
+ import { a as ContentSeo } from "../types-DRIKLmJI.mjs";
2
2
 
3
3
  //#region src/seo/index.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-DgEw12Bc.mjs";
1
+ import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-CuUt7K50.mjs";
2
2
  import { sql } from "kysely";
3
3
 
4
4
  //#region src/database/repositories/seo.ts
@@ -1,5 +1,5 @@
1
1
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
2
- import { t as CommentRepository } from "./comment-ogMaF1gk.mjs";
2
+ import { t as CommentRepository } from "./comment-Beue8-15.mjs";
3
3
  import { t as escapeHtml } from "./escape-BDgouFFY.mjs";
4
4
 
5
5
  //#region src/comments/notifications.ts
@@ -1,7 +1,7 @@
1
- import { t as MediaRepository } from "./media-DhBwiCYR.mjs";
2
- import { t as OptionsRepository } from "./options-BF11H_FD.mjs";
3
- import { n as peekRequestCache, r as requestCached } from "./request-cache-w5cj5itT.mjs";
4
- import { r as getDb } from "./loader-Y0QvC_QO.mjs";
1
+ import { r as getDb } from "./loader--GOYux8M.mjs";
2
+ import { t as MediaRepository } from "./media-CbKyYukG.mjs";
3
+ import { t as OptionsRepository } from "./options-LsPjZlqD.mjs";
4
+ import { n as peekRequestCache, r as requestCached } from "./request-cache-ho99schz.mjs";
5
5
 
6
6
  //#region src/media/url.ts
7
7
  const INTERNAL_MEDIA_PREFIX = "/_dineway/api/media/file/";
@@ -1,5 +1,5 @@
1
- import { a as __exportAll } from "./runner-DTfG5v0G.mjs";
2
- import { a as getSiteSettingsWithDb, o as setSiteSettings } from "./settings-DNRQuX3d.mjs";
1
+ import { a as __exportAll } from "./runner-DzIpHGND.mjs";
2
+ import { a as getSiteSettingsWithDb, o as setSiteSettings } from "./settings-CUXOxzsT.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-BF11H_FD.mjs";
1
+ import { t as OptionsRepository } from "./options-LsPjZlqD.mjs";
2
2
 
3
3
  //#region src/api/setup-complete.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { n as decodeCursor, r as encodeCursor } from "./types-Ck7-WoUD.mjs";
1
+ import { i as encodeCursor, r as decodeCursor } from "./types-CSgR9nQB.mjs";
2
2
  import { ulid } from "ulidx";
3
3
 
4
4
  //#region src/database/repositories/site-activity.ts
@@ -1,17 +1,17 @@
1
1
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
2
- import { t as ContentRepository } from "./content-BfyjOiMi.mjs";
3
- import { n as decodeCursor, r as encodeCursor } from "./types-Ck7-WoUD.mjs";
4
- import { t as SiteActivityRepository } from "./site-activity-6x1JccoR.mjs";
5
- import { t as ReviewRequestRepository } from "./review-requests-tPw8_pAO.mjs";
6
- import { n as normalizeEntityAlias, t as EntityAliasRepository } from "./entity-aliases-uOrKvlPg.mjs";
7
- import { r as isPattern } from "./patterns-D9iDO3j8.mjs";
8
- import { a as ContextRepository, i as parseSiteBriefingScope, l as handlePluginList } from "./briefing-BFEWeJtR.mjs";
9
- import { t as FTSManager } from "./fts-manager-EHY2Kes9.mjs";
10
- import { n as SchemaRegistry } from "./registry-Cq3QRBW2.mjs";
11
- import { a as getSiteSettingsWithDb } from "./settings-DNRQuX3d.mjs";
12
- import { p as normalizeUrl } from "./utils-wv-zvC-Y.mjs";
13
- import { t as sanitizeWordPressImportSlug } from "./wordpress-slugs-B6Gw9q3Q.mjs";
14
- import { s as searchCollection } from "./search-BAiFLz81.mjs";
2
+ import { i as encodeCursor, r as decodeCursor } from "./types-CSgR9nQB.mjs";
3
+ import { t as ContentRepository } from "./content-CBxYGWfL.mjs";
4
+ import { t as SiteActivityRepository } from "./site-activity-DONFrMBJ.mjs";
5
+ import { t as ReviewRequestRepository } from "./review-requests-BW2NxY-l.mjs";
6
+ import { n as normalizeEntityAlias, t as EntityAliasRepository } from "./entity-aliases-4y93Yjuc.mjs";
7
+ import { r as isPattern } from "./patterns-DKAX6oqN.mjs";
8
+ import { a as ContextRepository, i as parseSiteBriefingScope, l as handlePluginList } from "./briefing-CkTee1ex.mjs";
9
+ import { t as FTSManager } from "./fts-manager-B5l_qwrA.mjs";
10
+ import { n as SchemaRegistry } from "./registry-D7HACema.mjs";
11
+ import { a as getSiteSettingsWithDb } from "./settings-CUXOxzsT.mjs";
12
+ import { p as normalizeUrl } from "./utils-B8hBJ9Oz.mjs";
13
+ import { t as sanitizeWordPressImportSlug } from "./wordpress-slugs-DHNR9LpG.mjs";
14
+ import { s as searchCollection } from "./search-Gdrqj582.mjs";
15
15
  import { n as assertExperimentalSiteContextWorkflowsEnabled } from "./experimental-workflows-CSMffP6q.mjs";
16
16
  import { sql } from "kysely";
17
17
  import { ulid } from "ulidx";
@@ -1,4 +1,4 @@
1
- import { t as OptionsRepository } from "./options-BF11H_FD.mjs";
1
+ import { t as OptionsRepository } from "./options-LsPjZlqD.mjs";
2
2
 
3
3
  //#region src/api/site-url.ts
4
4
  async function getSiteBaseUrl(db, request) {
@@ -1,7 +1,7 @@
1
- import { a as __exportAll } from "./runner-DTfG5v0G.mjs";
2
- import { i as setRequestCacheEntry, n as peekRequestCache, r as requestCached } from "./request-cache-w5cj5itT.mjs";
3
- import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-DgEw12Bc.mjs";
4
- import { a as isMissingTableError, r as getDb } from "./loader-Y0QvC_QO.mjs";
1
+ import { a as __exportAll } from "./runner-DzIpHGND.mjs";
2
+ import { a as isMissingTableError, r as getDb } from "./loader--GOYux8M.mjs";
3
+ import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-CuUt7K50.mjs";
4
+ import { i as setRequestCacheEntry, n as peekRequestCache, r as requestCached } from "./request-cache-ho99schz.mjs";
5
5
  import { i as resolveLocaleChain, r as resolveLocale } from "./resolve-DTuDyYKs.mjs";
6
6
 
7
7
  //#region src/taxonomies/index.ts
@@ -94,6 +94,7 @@ async function getTaxonomyTerms(taxonomyName, options = {}) {
94
94
  name: term.name,
95
95
  slug: term.slug,
96
96
  label: term.label,
97
+ description: term.data ? JSON.parse(term.data).description : void 0,
97
98
  children: [],
98
99
  count: counts.get(term.translation_group ?? term.id) ?? 0,
99
100
  locale: term.locale,
@@ -118,10 +119,11 @@ async function getTerm(taxonomyName, slug, options = {}) {
118
119
  }
119
120
  }
120
121
  if (!row) return null;
121
- const count = (await db.selectFrom("content_taxonomies").select((eb) => eb.fn.count("entry_id").as("count")).where("taxonomy_id", "=", row.translation_group ?? row.id).executeTakeFirst())?.count ?? 0;
122
122
  let childrenQuery = db.selectFrom("taxonomies").selectAll().where("parent_id", "=", row.id).orderBy("label", "asc");
123
123
  if (row.locale) childrenQuery = childrenQuery.where("locale", "=", row.locale);
124
- const children = (await childrenQuery.execute()).map((child) => ({
124
+ const [countResult, childRows] = await Promise.all([db.selectFrom("content_taxonomies").select((eb) => eb.fn.count("entry_id").as("count")).where("taxonomy_id", "=", row.translation_group ?? row.id).executeTakeFirst(), childrenQuery.execute()]);
125
+ const count = countResult?.count ?? 0;
126
+ const children = childRows.map((child) => ({
125
127
  id: child.id,
126
128
  name: child.name,
127
129
  slug: child.slug,
@@ -283,7 +285,7 @@ function primeEntryTermsCache(collection, entryId, byTaxonomy, applicableTaxonom
283
285
  * Get entries by term.
284
286
  */
285
287
  async function getEntriesByTerm(collection, taxonomyName, termSlug, options = {}) {
286
- const { getDinewayCollection } = await import("./query-CSx0EdSW.mjs").then((n) => n.o);
288
+ const { getDinewayCollection } = await import("./query-Ds0EnMFX.mjs").then((n) => n.o);
287
289
  const queryOptions = { where: { [taxonomyName]: termSlug } };
288
290
  if (options.locale !== void 0) queryOptions.locale = options.locale;
289
291
  const { entries } = await getDinewayCollection(collection, queryOptions);
@@ -1,6 +1,6 @@
1
- import { a as __exportAll } from "./runner-DTfG5v0G.mjs";
2
- import { t as TaxonomyRepository } from "./taxonomy-BnH-6VsX.mjs";
3
- import { c as invalidateTermCache } from "./taxonomies-faQVeMgj.mjs";
1
+ import { a as __exportAll } from "./runner-DzIpHGND.mjs";
2
+ import { t as TaxonomyRepository } from "./taxonomy-B169Nm6B.mjs";
3
+ import { c as invalidateTermCache } from "./taxonomies-CZ-_DitR.mjs";
4
4
  import { ulid } from "ulidx";
5
5
 
6
6
  //#region src/api/handlers/taxonomies.ts
@@ -1,4 +1,4 @@
1
- import { a as __exportAll } from "./runner-DTfG5v0G.mjs";
1
+ import { a as __exportAll } from "./runner-DzIpHGND.mjs";
2
2
  import { ulid } from "ulidx";
3
3
 
4
4
  //#region src/database/repositories/taxonomy.ts
@@ -191,7 +191,7 @@ var TaxonomyRepository = class {
191
191
  */
192
192
  async countEntriesForTerms(translationGroups) {
193
193
  if (translationGroups.length === 0) return /* @__PURE__ */ new Map();
194
- const { chunks, SQL_BATCH_SIZE } = await import("./chunks-DgEw12Bc.mjs").then((n) => n.r);
194
+ const { chunks, SQL_BATCH_SIZE } = await import("./chunks-CuUt7K50.mjs").then((n) => n.r);
195
195
  const counts = /* @__PURE__ */ new Map();
196
196
  for (const chunk of chunks(translationGroups, SQL_BATCH_SIZE)) {
197
197
  const rows = await this.db.selectFrom("content_taxonomies").select(["taxonomy_id", (eb) => eb.fn.count("entry_id").as("count")]).where("taxonomy_id", "in", chunk).groupBy("taxonomy_id").execute();
@@ -1,4 +1,4 @@
1
- import { i as encodeBase64url, n as decodeBase64url } from "./base64-C1Q9yr0B.mjs";
1
+ import { i as encodeBase64url, n as decodeBase64url } from "./base64-F8-DUraK.mjs";
2
2
 
3
3
  //#region src/preview/tokens.ts
4
4
  /**
@@ -1,9 +1,10 @@
1
- import { a as __exportAll } from "./runner-DTfG5v0G.mjs";
2
- import { r as encodeBase64, t as decodeBase64 } from "./base64-C1Q9yr0B.mjs";
1
+ import { a as __exportAll } from "./runner-DzIpHGND.mjs";
2
+ import { r as encodeBase64, t as decodeBase64 } from "./base64-F8-DUraK.mjs";
3
3
 
4
4
  //#region src/database/repositories/types.ts
5
5
  var types_exports = /* @__PURE__ */ __exportAll({
6
6
  DinewayValidationError: () => DinewayValidationError,
7
+ ScheduledNotDueError: () => ScheduledNotDueError,
7
8
  decodeCursor: () => decodeCursor,
8
9
  encodeCursor: () => encodeCursor
9
10
  });
@@ -31,6 +32,12 @@ var DinewayValidationError = class extends Error {
31
32
  this.name = "DinewayValidationError";
32
33
  }
33
34
  };
35
+ var ScheduledNotDueError = class extends Error {
36
+ constructor() {
37
+ super("Scheduled content is not due for publishing");
38
+ this.name = "ScheduledNotDueError";
39
+ }
40
+ };
34
41
 
35
42
  //#endregion
36
- export { types_exports as i, decodeCursor as n, encodeCursor as r, DinewayValidationError as t };
43
+ export { types_exports as a, encodeCursor as i, ScheduledNotDueError as n, decodeCursor as r, DinewayValidationError as t };
@@ -497,6 +497,123 @@ interface DinewaySessionTable {
497
497
  value: string;
498
498
  updated_at: Generated<string>;
499
499
  }
500
+ interface RelationTable {
501
+ id: string;
502
+ name: string;
503
+ parent_collection: string;
504
+ child_collection: string;
505
+ parent_label: string;
506
+ child_label: string;
507
+ locale: Generated<string>;
508
+ translation_group: string;
509
+ created_at: Generated<string>;
510
+ updated_at: Generated<string>;
511
+ }
512
+ interface ContentReferenceTable {
513
+ id: string;
514
+ relation_group: string;
515
+ parent_group: string;
516
+ child_group: string;
517
+ sort_order: Generated<number>;
518
+ created_at: Generated<string>;
519
+ }
520
+ interface DinewayWebSessionTable {
521
+ id: string;
522
+ forgeway_user_id: string;
523
+ email: string | null;
524
+ encrypted_refresh_token: string;
525
+ status: Generated<string>;
526
+ expires_at: string;
527
+ last_seen_at: string | null;
528
+ revoked_at: string | null;
529
+ created_at: Generated<string>;
530
+ updated_at: Generated<string>;
531
+ }
532
+ interface DinewayWebOnboardingTable {
533
+ id: string;
534
+ session_id: string;
535
+ forgeway_user_id: string;
536
+ status: Generated<string>;
537
+ current_step: string;
538
+ requested_plan_code: string | null;
539
+ source: string | null;
540
+ handoff_id: string | null;
541
+ context_json: Generated<string>;
542
+ completed_at: string | null;
543
+ created_at: Generated<string>;
544
+ updated_at: Generated<string>;
545
+ }
546
+ interface DinewayWebCheckoutSessionTable {
547
+ id: string;
548
+ session_id: string;
549
+ forgeway_user_id: string;
550
+ plan_code: string;
551
+ forgeway_checkout_session_id: string;
552
+ status: Generated<string>;
553
+ success_url: string;
554
+ cancel_url: string;
555
+ completed_at: string | null;
556
+ created_at: Generated<string>;
557
+ updated_at: Generated<string>;
558
+ }
559
+ interface DinewayWebAccountProjectionTable {
560
+ forgeway_user_id: string;
561
+ email: string | null;
562
+ plan_code: string;
563
+ projection_json: string;
564
+ synced_at: string;
565
+ created_at: Generated<string>;
566
+ updated_at: Generated<string>;
567
+ }
568
+ interface DinewayWebBillingProjectionTable {
569
+ forgeway_user_id: string;
570
+ plan_code: string;
571
+ projection_json: string;
572
+ synced_at: string;
573
+ created_at: Generated<string>;
574
+ updated_at: Generated<string>;
575
+ }
576
+ interface DinewayWebCreditsProjectionTable {
577
+ forgeway_user_id: string;
578
+ plan_code: string;
579
+ available_credits: number;
580
+ projection_json: string;
581
+ synced_at: string;
582
+ created_at: Generated<string>;
583
+ updated_at: Generated<string>;
584
+ }
585
+ interface DinewayWebSitesProjectionTable {
586
+ forgeway_user_id: string;
587
+ plan_code: string;
588
+ used_hosted_sites: number;
589
+ hosted_site_limit: number | null;
590
+ projection_json: string;
591
+ synced_at: string;
592
+ created_at: Generated<string>;
593
+ updated_at: Generated<string>;
594
+ }
595
+ interface DinewayWebHandoffTable {
596
+ id: string;
597
+ token_hash: string;
598
+ forgeway_user_id: string;
599
+ email: string | null;
600
+ target: string;
601
+ reason: string;
602
+ context_json: Generated<string>;
603
+ status: Generated<string>;
604
+ expires_at: string;
605
+ consumed_at: string | null;
606
+ created_at: Generated<string>;
607
+ updated_at: Generated<string>;
608
+ }
609
+ interface DinewayWebHandoffAuditTable {
610
+ id: string;
611
+ handoff_id: string;
612
+ event: string;
613
+ actor_forgeway_user_id: string | null;
614
+ metadata_json: Generated<string>;
615
+ created_at: Generated<string>;
616
+ }
500
617
  interface Database {
501
618
  revisions: RevisionTable;
502
619
  taxonomies: TaxonomyTable;
@@ -545,8 +662,19 @@ interface Database {
545
662
  _dineway_byline_fields: BylineFieldTable;
546
663
  _dineway_byline_field_values: BylineFieldValueTable;
547
664
  _dineway_byline_field_group_values: BylineFieldGroupValueTable;
665
+ _dineway_relations: RelationTable;
666
+ _dineway_content_references: ContentReferenceTable;
548
667
  _dineway_rate_limits: RateLimitTable;
549
668
  _dineway_sessions: DinewaySessionTable;
669
+ _dineway_dineway_web_sessions: DinewayWebSessionTable;
670
+ _dineway_dineway_web_onboarding: DinewayWebOnboardingTable;
671
+ _dineway_dineway_web_checkout_sessions: DinewayWebCheckoutSessionTable;
672
+ _dineway_dineway_web_account_projections: DinewayWebAccountProjectionTable;
673
+ _dineway_dineway_web_billing_projections: DinewayWebBillingProjectionTable;
674
+ _dineway_dineway_web_credits_projections: DinewayWebCreditsProjectionTable;
675
+ _dineway_dineway_web_sites_projections: DinewayWebSitesProjectionTable;
676
+ _dineway_dineway_web_handoffs: DinewayWebHandoffTable;
677
+ _dineway_dineway_web_handoff_audit: DinewayWebHandoffAuditTable;
550
678
  }
551
679
  interface RedirectTable {
552
680
  id: string;
@@ -31,7 +31,7 @@ type CollectionSource = `template:${string}` | `import:${string}` | "manual" | "
31
31
  /** Sub-field definition for repeater fields */
32
32
  interface RepeaterSubField {
33
33
  slug: string;
34
- type: "string" | "text" | "url" | "number" | "integer" | "boolean" | "datetime" | "select";
34
+ type: "string" | "text" | "url" | "number" | "integer" | "boolean" | "datetime" | "select" | "image";
35
35
  label: string;
36
36
  required?: boolean;
37
37
  options?: string[];
@@ -1,4 +1,4 @@
1
- import { c as CustomFieldValue } from "./types-DEAQG87T.mjs";
1
+ import { c as CustomFieldValue } from "./types-CwawBUTa.mjs";
2
2
 
3
3
  //#region src/database/repositories/types.d.ts
4
4
  interface CreateContentInput {
@@ -68,6 +68,14 @@ interface ContentBylineCredit {
68
68
  /** Whether this credit was explicitly assigned or inferred from authorId */
69
69
  source?: "explicit" | "inferred";
70
70
  }
71
+ /** A whitelisted timestamp column a content-list date range can filter on. */
72
+ type ContentDateField = "createdAt" | "updatedAt" | "publishedAt";
73
+ /** Inclusive date-range filter for a single whitelisted timestamp column. */
74
+ interface ContentDateFilter {
75
+ field: ContentDateField;
76
+ from?: string;
77
+ to?: string;
78
+ }
71
79
  interface FindManyOptions {
72
80
  where?: {
73
81
  status?: string;
@@ -75,6 +83,7 @@ interface FindManyOptions {
75
83
  locale?: string;
76
84
  q?: string;
77
85
  searchColumns?: string[];
86
+ dateFilter?: ContentDateFilter;
78
87
  };
79
88
  orderBy?: {
80
89
  field: string;
@@ -115,5 +124,8 @@ declare class DinewayValidationError extends Error {
115
124
  details?: unknown | undefined;
116
125
  constructor(message: string, details?: unknown | undefined);
117
126
  }
127
+ declare class ScheduledNotDueError extends Error {
128
+ constructor();
129
+ }
118
130
  //#endregion
119
- export { ContentSeoInput as a, FindManyOptions as c, ContentSeo as i, FindManyResult as l, ContentBylineCredit as n, CreateContentInput as o, ContentItem as r, DinewayValidationError as s, BylineSummary as t, UpdateContentInput as u };
131
+ export { ContentSeo as a, DinewayValidationError as c, ScheduledNotDueError as d, UpdateContentInput as f, ContentItem as i, FindManyOptions as l, ContentBylineCredit as n, ContentSeoInput as o, ContentDateField as r, CreateContentInput as s, BylineSummary as t, FindManyResult as u };
@@ -1,4 +1,4 @@
1
- import { d as FieldType } from "./types-DEAQG87T.mjs";
1
+ import { d as FieldType } from "./types-CwawBUTa.mjs";
2
2
  import { z } from "astro/zod";
3
3
  import "react/jsx-runtime";
4
4
  import { JSX } from "astro/jsx-runtime";
@@ -1,17 +1,18 @@
1
- import { C as getWidgetArea, Er as getCollectionInfo, Mn as getDinewayCollection, Pn as getEditMeta, Xn as sanitizeHref, Y as getMenu, ct as getComments, ft as getSiteSettings, hi as PublicComment, j as Widget, z as getTaxonomyTerms } from "../runtime-Cd-kjPfN.mjs";
2
- import "../types-DYKtk8f1.mjs";
3
- import { A as PageMetadataContribution, q as PublicPageContext } from "../types-UGmU5sWx.mjs";
1
+ import { C as getWidgetArea, Fn as getEditMeta, Nn as getDinewayCollection, Wn as sanitizeHref, X as getMenu, br as getCollectionInfo, hi as PublicComment, j as Widget, lt as getComments, pt as getSiteSettings, z as getTaxonomyTerms } from "../runtime-C4-2lSFg.mjs";
2
+ import "../types-CuJOqHfM.mjs";
3
+ import { A as PageMetadataContribution, q as PublicPageContext } from "../types-DSPGWjxO.mjs";
4
4
  import "../types-Dryvv7LH.mjs";
5
5
  import { _ as MediaValue, c as EmbedResult, l as ImageEmbed, s as EmbedOptions } from "../placeholder-CXfoCtCd.mjs";
6
- import "../runner-Cnz4dl0f.mjs";
7
- import "../index-DJVaYiUV.mjs";
6
+ import "../runner-09sTqtv0.mjs";
7
+ import "../index-CZiWCQDp.mjs";
8
8
  import { t as MediaReference } from "../types-nP9vGUFq.mjs";
9
- import "../byline-fields-Cuo-JI3B.mjs";
9
+ import "../byline-fields-uJlygdzM.mjs";
10
10
  import "../types-GaCtZ1k9.mjs";
11
- import "../validate-BJuG-ISL.mjs";
12
- import { a as generateSiteSeoContributions, d as resolvePageMetadata, i as generateBaseSeoContributions, o as renderFragments, u as renderPageMetadata } from "../jsonld-AcPnCEGD.mjs";
11
+ import "../validate-DzjCdy6v.mjs";
12
+ import { t as getPublicOrigin } from "../public-url-B4xV4rGa.mjs";
13
+ import { a as generateSiteSeoContributions, d as resolvePageMetadata, i as generateBaseSeoContributions, o as renderFragments, u as renderPageMetadata } from "../jsonld-DZ67souc.mjs";
13
14
  import { getPageRuntime } from "../page/index.mjs";
14
- import { t as getMediaProvider } from "../provider-loader-B5PMjpN7.mjs";
15
+ import { t as getMediaProvider } from "../provider-loader-9it4vd6L.mjs";
15
16
 
16
17
  //#region src/utils/sanitize.d.ts
17
18
  /**
@@ -30,6 +31,53 @@ interface RenderMediaRef {
30
31
  }
31
32
  declare function buildRenderMediaUrl(resolve: ((key: string) => string) | undefined, ref: RenderMediaRef): string;
32
33
  //#endregion
34
+ //#region src/media/responsive.d.ts
35
+ /**
36
+ * Responsive image helpers shared by public image components.
37
+ *
38
+ * The Astro components pass `getImage` in from `astro:assets` so this module
39
+ * remains importable in tests and in the precompiled package output.
40
+ */
41
+ /** Standard responsive breakpoints. Matches provider srcset generation. */
42
+ declare const RESPONSIVE_BREAKPOINTS: number[];
43
+ /**
44
+ * Make a same-origin media URL absolute so Astro's image service can optimize it.
45
+ *
46
+ * Only same-origin root-relative paths are resolved. Protocol-relative URLs and
47
+ * backslash escapes are returned unchanged so the image service never becomes a
48
+ * cross-origin fetch primitive.
49
+ */
50
+ declare function toAbsoluteMediaUrl(src: string, origin: string | undefined): string;
51
+ /** Minimal structural subset of Astro's `getImage`. */
52
+ type GetImage = (options: {
53
+ src: string;
54
+ width?: number;
55
+ height?: number;
56
+ widths?: number[];
57
+ sizes?: string;
58
+ }) => Promise<{
59
+ src: string;
60
+ srcSet?: {
61
+ attribute?: string;
62
+ } | undefined;
63
+ }>;
64
+ interface ResponsiveImage {
65
+ src: string;
66
+ srcset?: string;
67
+ sizes?: string;
68
+ }
69
+ /**
70
+ * Generate responsive image attributes through Astro's configured image service.
71
+ *
72
+ * Returns `null` when optimization is unavailable, unsafe, or would be a no-op,
73
+ * so callers can fall back to a plain `<img>`.
74
+ */
75
+ declare function buildResponsiveImage(getImage: GetImage, opts: {
76
+ src: string;
77
+ width?: number;
78
+ height?: number;
79
+ }): Promise<ResponsiveImage | null>;
80
+ //#endregion
33
81
  //#region src/page/absolute-url.d.ts
34
82
  declare function absolutizeMediaUrl(url: string | undefined, configuredSiteUrl: string | undefined, page: PublicPageContext): string | null;
35
83
  //#endregion
@@ -39,4 +87,4 @@ interface SiteIdentityInput {
39
87
  }
40
88
  declare function renderSiteIdentity(input: SiteIdentityInput | undefined): string;
41
89
  //#endregion
42
- export { type EmbedOptions, type EmbedResult, type ImageEmbed, type MediaValue, type PageMetadataContribution, type PublicComment, type PublicPageContext, type Widget, absolutizeMediaUrl, buildRenderMediaUrl, generateBaseSeoContributions, generateSiteSeoContributions, getCollectionInfo, getComments, getDinewayCollection, getEditMeta, getMediaProvider, getMenu, getPageRuntime, getSiteSettings, getTaxonomyTerms, getWidgetArea, renderFragments, renderPageMetadata, renderSiteIdentity, resolvePageMetadata, sanitizeContent, sanitizeHref };
90
+ export { type EmbedOptions, type EmbedResult, type GetImage, type ImageEmbed, type MediaValue, type PageMetadataContribution, type PublicComment, type PublicPageContext, RESPONSIVE_BREAKPOINTS, type Widget, absolutizeMediaUrl, buildRenderMediaUrl, buildResponsiveImage, generateBaseSeoContributions, generateSiteSeoContributions, getCollectionInfo, getComments, getDinewayCollection, getEditMeta, getMediaProvider, getMenu, getPageRuntime, getPublicOrigin, getSiteSettings, getTaxonomyTerms, getWidgetArea, renderFragments, renderPageMetadata, renderSiteIdentity, resolvePageMetadata, sanitizeContent, sanitizeHref, toAbsoluteMediaUrl };
@@ -1,22 +1,23 @@
1
1
  import "../dialect-helpers-fk43GbDb.mjs";
2
- import "../base64-C1Q9yr0B.mjs";
3
- import "../types-Ck7-WoUD.mjs";
4
- import "../media-DhBwiCYR.mjs";
5
- import "../comment-ogMaF1gk.mjs";
6
- import "../options-BF11H_FD.mjs";
7
- import "../request-cache-w5cj5itT.mjs";
8
- import "../fts-manager-EHY2Kes9.mjs";
9
- import "../registry-Cq3QRBW2.mjs";
10
- import "../loader-Y0QvC_QO.mjs";
11
- import { i as getSiteSettings, s as buildRenderMediaUrl } from "../settings-DNRQuX3d.mjs";
12
- import { t as getCollectionInfo } from "../query-BJuUydtD.mjs";
2
+ import "../base64-F8-DUraK.mjs";
3
+ import "../types-CSgR9nQB.mjs";
4
+ import "../loader--GOYux8M.mjs";
5
+ import "../media-CbKyYukG.mjs";
6
+ import "../comment-Beue8-15.mjs";
7
+ import "../options-LsPjZlqD.mjs";
8
+ import "../request-cache-ho99schz.mjs";
9
+ import "../fts-manager-B5l_qwrA.mjs";
10
+ import "../registry-D7HACema.mjs";
11
+ import { i as getSiteSettings, s as buildRenderMediaUrl } from "../settings-CUXOxzsT.mjs";
12
+ import { t as getCollectionInfo } from "../query-CZ3TH_Uu.mjs";
13
13
  import "../resolve-DTuDyYKs.mjs";
14
- import { a as getTaxonomyTerms } from "../taxonomies-faQVeMgj.mjs";
14
+ import { a as getTaxonomyTerms } from "../taxonomies-CZ-_DitR.mjs";
15
15
  import { n as sanitizeHref } from "../url-w7Mp5qAD.mjs";
16
- import { r as getEditMeta, t as getDinewayCollection } from "../query-CSx0EdSW.mjs";
17
- import { i as getComments, t as getMenu } from "../menus-fqqzXyHd.mjs";
18
- import { t as getWidgetArea } from "../widgets-CdDvF4fV.mjs";
16
+ import { r as getEditMeta, t as getDinewayCollection } from "../query-Ds0EnMFX.mjs";
17
+ import { i as getComments, t as getMenu } from "../menus-C7F0sCrC.mjs";
18
+ import { t as getWidgetArea } from "../widgets-BpJ8EpPd.mjs";
19
19
  import { t as getMediaProvider } from "../provider-loader-DzUxejk7.mjs";
20
+ import { n as getPublicOrigin } from "../public-url-B_m9IwdV.mjs";
20
21
  import { c as escapeHtmlAttr, l as renderPageMetadata, n as generateSiteSeoContributions, o as renderFragments, t as generateBaseSeoContributions, u as resolvePageMetadata } from "../seo-contributions-CqVvReEj.mjs";
21
22
  import { getPageRuntime } from "../page/index.mjs";
22
23
  import sanitizeHtml from "sanitize-html";
@@ -65,6 +66,87 @@ function sanitizeContent(html) {
65
66
  });
66
67
  }
67
68
 
69
+ //#endregion
70
+ //#region src/media/responsive.ts
71
+ /**
72
+ * Responsive image helpers shared by public image components.
73
+ *
74
+ * The Astro components pass `getImage` in from `astro:assets` so this module
75
+ * remains importable in tests and in the precompiled package output.
76
+ */
77
+ /** Standard responsive breakpoints. Matches provider srcset generation. */
78
+ const RESPONSIVE_BREAKPOINTS = [
79
+ 640,
80
+ 750,
81
+ 828,
82
+ 960,
83
+ 1080,
84
+ 1280,
85
+ 1600,
86
+ 1920
87
+ ];
88
+ const ABSOLUTE_HTTP_URL = /^https?:\/\//i;
89
+ /**
90
+ * Pick srcset widths for an image rendered at `maxWidth`.
91
+ * Includes breakpoints up to 2x plus the rendered width itself.
92
+ */
93
+ function responsiveWidths(maxWidth) {
94
+ const cap = maxWidth * 2;
95
+ const widths = new Set(RESPONSIVE_BREAKPOINTS.filter((w) => w <= cap));
96
+ widths.add(maxWidth);
97
+ return [...widths].toSorted((a, b) => a - b);
98
+ }
99
+ /** Build the `sizes` attribute for an image with a known display width. */
100
+ function responsiveSizes(width) {
101
+ return width ? `(min-width: ${width}px) ${width}px, 100vw` : "100vw";
102
+ }
103
+ /**
104
+ * Make a same-origin media URL absolute so Astro's image service can optimize it.
105
+ *
106
+ * Only same-origin root-relative paths are resolved. Protocol-relative URLs and
107
+ * backslash escapes are returned unchanged so the image service never becomes a
108
+ * cross-origin fetch primitive.
109
+ */
110
+ function toAbsoluteMediaUrl(src, origin) {
111
+ if (!src || !origin || !src.startsWith("/")) return src;
112
+ try {
113
+ const resolved = new URL(src, origin);
114
+ if (resolved.origin !== new URL(origin).origin) return src;
115
+ return resolved.href;
116
+ } catch {
117
+ return src;
118
+ }
119
+ }
120
+ /**
121
+ * Generate responsive image attributes through Astro's configured image service.
122
+ *
123
+ * Returns `null` when optimization is unavailable, unsafe, or would be a no-op,
124
+ * so callers can fall back to a plain `<img>`.
125
+ */
126
+ async function buildResponsiveImage(getImage, opts) {
127
+ const { src, width, height } = opts;
128
+ if (!src || !width || !height) return null;
129
+ if (!ABSOLUTE_HTTP_URL.test(src)) return null;
130
+ try {
131
+ const sizes = responsiveSizes(width);
132
+ const result = await getImage({
133
+ src,
134
+ width,
135
+ height,
136
+ widths: responsiveWidths(width),
137
+ sizes
138
+ });
139
+ if (!result.src || result.src === src) return null;
140
+ return {
141
+ src: result.src,
142
+ srcset: result.srcSet?.attribute || void 0,
143
+ sizes
144
+ };
145
+ } catch {
146
+ return null;
147
+ }
148
+ }
149
+
68
150
  //#endregion
69
151
  //#region src/page/absolute-url.ts
70
152
  const HTTP_URL_RE = /^https?:\/\//i;
@@ -119,4 +201,4 @@ function renderSiteIdentity(input) {
119
201
  }
120
202
 
121
203
  //#endregion
122
- export { absolutizeMediaUrl, buildRenderMediaUrl, generateBaseSeoContributions, generateSiteSeoContributions, getCollectionInfo, getComments, getDinewayCollection, getEditMeta, getMediaProvider, getMenu, getPageRuntime, getSiteSettings, getTaxonomyTerms, getWidgetArea, renderFragments, renderPageMetadata, renderSiteIdentity, resolvePageMetadata, sanitizeContent, sanitizeHref };
204
+ export { RESPONSIVE_BREAKPOINTS, absolutizeMediaUrl, buildRenderMediaUrl, buildResponsiveImage, generateBaseSeoContributions, generateSiteSeoContributions, getCollectionInfo, getComments, getDinewayCollection, getEditMeta, getMediaProvider, getMenu, getPageRuntime, getPublicOrigin, getSiteSettings, getTaxonomyTerms, getWidgetArea, renderFragments, renderPageMetadata, renderSiteIdentity, resolvePageMetadata, sanitizeContent, sanitizeHref, toAbsoluteMediaUrl };