dineway 0.2.20 → 0.2.21

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 (390) hide show
  1. package/dist/{activity-Dq9zDvAK.mjs → activity-Bm5x0dik.mjs} +2 -2
  2. package/dist/{activity-events-iGYnf7TK.mjs → activity-events-DpvhcjTP.mjs} +1 -1
  3. package/dist/{allowed-origins-VLgv2PL1.mjs → allowed-origins-M5Rcl6XL.mjs} +1 -1
  4. package/dist/api/route-utils.d.mts +10 -9
  5. package/dist/api/route-utils.mjs +13 -13
  6. package/dist/api/schemas/index.d.mts +1 -1
  7. package/dist/api/schemas/index.mjs +3 -3
  8. package/dist/{api-DIdotXfH.mjs → api-Bbtpvq2-.mjs} +15 -15
  9. package/dist/{api-tokens-C4K9eocv.mjs → api-tokens-BFgXg0l2.mjs} +1 -1
  10. package/dist/{apply-CPcb8oiS.mjs → apply-Hodkn7PL.mjs} +20 -18
  11. package/dist/astro/index.d.mts +11 -10
  12. package/dist/astro/index.mjs +3 -3
  13. package/dist/astro/middleware/auth.d.mts +9 -8
  14. package/dist/astro/middleware/auth.mjs +6 -6
  15. package/dist/astro/middleware/redirect.mjs +5 -5
  16. package/dist/astro/middleware/request-context.mjs +2 -2
  17. package/dist/astro/middleware/seed.d.mts +1 -1
  18. package/dist/astro/middleware/seed.mjs +1 -1
  19. package/dist/astro/middleware/setup.mjs +1 -1
  20. package/dist/astro/middleware.mjs +111 -98
  21. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +5 -5
  22. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +5 -5
  23. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +4 -4
  24. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
  25. package/dist/astro/routes/api/admin/briefing.mjs +16 -16
  26. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +3 -3
  27. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +7 -7
  28. package/dist/astro/routes/api/admin/byline-fields/index.mjs +7 -7
  29. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +7 -7
  30. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +13 -13
  31. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +13 -13
  32. package/dist/astro/routes/api/admin/bylines/index.mjs +13 -13
  33. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +11 -11
  34. package/dist/astro/routes/api/admin/comments/_id_.mjs +5 -5
  35. package/dist/astro/routes/api/admin/comments/bulk.mjs +9 -9
  36. package/dist/astro/routes/api/admin/comments/counts.mjs +5 -5
  37. package/dist/astro/routes/api/admin/comments/index.mjs +9 -9
  38. package/dist/astro/routes/api/admin/context/_id_/history.mjs +23 -23
  39. package/dist/astro/routes/api/admin/context/_id_/index.mjs +23 -23
  40. package/dist/astro/routes/api/admin/context/_id_/review.mjs +28 -28
  41. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +28 -28
  42. package/dist/astro/routes/api/admin/context/diff.mjs +27 -27
  43. package/dist/astro/routes/api/admin/context/index.mjs +28 -28
  44. package/dist/astro/routes/api/admin/context/stale.mjs +27 -27
  45. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +23 -23
  46. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +27 -27
  47. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +27 -27
  48. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +24 -24
  49. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +2 -2
  50. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  51. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  52. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +53 -52
  53. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +53 -52
  54. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +45 -44
  55. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +52 -51
  56. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +52 -51
  57. package/dist/astro/routes/api/admin/plugins/index.mjs +45 -44
  58. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
  59. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +45 -44
  60. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +52 -51
  61. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +45 -44
  62. package/dist/astro/routes/api/admin/plugins/updates.mjs +45 -44
  63. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +5 -5
  64. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +28 -28
  65. package/dist/astro/routes/api/admin/review-requests/index.mjs +28 -28
  66. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +45 -44
  67. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
  68. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +45 -44
  69. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +1 -1
  70. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +1 -1
  71. package/dist/astro/routes/api/admin/users/_id_/index.mjs +5 -5
  72. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +2 -2
  73. package/dist/astro/routes/api/admin/users/index.mjs +5 -5
  74. package/dist/astro/routes/api/auth/dev-bypass.mjs +4 -4
  75. package/dist/astro/routes/api/auth/invite/accept.mjs +1 -1
  76. package/dist/astro/routes/api/auth/invite/complete.mjs +9 -9
  77. package/dist/astro/routes/api/auth/invite/index.mjs +6 -6
  78. package/dist/astro/routes/api/auth/invite/register-options.mjs +8 -8
  79. package/dist/astro/routes/api/auth/logout.mjs +2 -2
  80. package/dist/astro/routes/api/auth/magic-link/send.mjs +8 -8
  81. package/dist/astro/routes/api/auth/magic-link/verify.mjs +2 -2
  82. package/dist/astro/routes/api/auth/me.mjs +7 -7
  83. package/dist/astro/routes/api/auth/mode.mjs +1 -1
  84. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +2 -2
  85. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  86. package/dist/astro/routes/api/auth/passkey/_id_.mjs +5 -5
  87. package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
  88. package/dist/astro/routes/api/auth/passkey/options.mjs +10 -10
  89. package/dist/astro/routes/api/auth/passkey/register/options.mjs +8 -8
  90. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +9 -9
  91. package/dist/astro/routes/api/auth/passkey/verify.mjs +9 -9
  92. package/dist/astro/routes/api/auth/setup-token/index.mjs +5 -5
  93. package/dist/astro/routes/api/auth/setup-token/verify.mjs +2 -2
  94. package/dist/astro/routes/api/auth/signup/complete.mjs +9 -9
  95. package/dist/astro/routes/api/auth/signup/request.mjs +8 -8
  96. package/dist/astro/routes/api/auth/signup/verify.mjs +1 -1
  97. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +12 -12
  98. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +11 -11
  99. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
  100. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +6 -6
  101. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +6 -6
  102. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +6 -6
  103. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +9 -9
  104. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +15 -15
  105. package/dist/astro/routes/api/content/_collection_/_id_/release-readiness.mjs +7 -7
  106. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +6 -6
  107. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
  108. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +15 -15
  109. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +12 -12
  110. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
  111. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +6 -6
  112. package/dist/astro/routes/api/content/_collection_/_id_.mjs +10 -10
  113. package/dist/astro/routes/api/content/_collection_/authors.mjs +2 -2
  114. package/dist/astro/routes/api/content/_collection_/index.mjs +10 -10
  115. package/dist/astro/routes/api/content/_collection_/trash.mjs +6 -6
  116. package/dist/astro/routes/api/dashboard.mjs +8 -8
  117. package/dist/astro/routes/api/dev/emails.mjs +2 -2
  118. package/dist/astro/routes/api/health.mjs +1 -1
  119. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  120. package/dist/astro/routes/api/import/probe.mjs +17 -17
  121. package/dist/astro/routes/api/import/wordpress/analyze.mjs +8 -8
  122. package/dist/astro/routes/api/import/wordpress/execute.d.mts +9 -8
  123. package/dist/astro/routes/api/import/wordpress/execute.mjs +32 -32
  124. package/dist/astro/routes/api/import/wordpress/media.d.mts +9 -8
  125. package/dist/astro/routes/api/import/wordpress/media.mjs +9 -9
  126. package/dist/astro/routes/api/import/wordpress/prepare.mjs +31 -31
  127. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +10 -9
  128. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +28 -28
  129. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  130. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +20 -20
  131. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +9 -8
  132. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +36 -36
  133. package/dist/astro/routes/api/integrations/_provider_.mjs +6 -6
  134. package/dist/astro/routes/api/integrations/index.mjs +5 -5
  135. package/dist/astro/routes/api/manifest.mjs +4 -4
  136. package/dist/astro/routes/api/mcp.mjs +64 -64
  137. package/dist/astro/routes/api/media/_id_/confirm.mjs +8 -8
  138. package/dist/astro/routes/api/media/_id_.mjs +6 -6
  139. package/dist/astro/routes/api/media/file/_...key_.mjs +1 -1
  140. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
  141. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
  142. package/dist/astro/routes/api/media/providers/index.mjs +2 -2
  143. package/dist/astro/routes/api/media/upload-url.mjs +9 -9
  144. package/dist/astro/routes/api/media.mjs +9 -9
  145. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +28 -28
  146. package/dist/astro/routes/api/menus/_name_/items.mjs +28 -28
  147. package/dist/astro/routes/api/menus/_name_/reorder.mjs +28 -28
  148. package/dist/astro/routes/api/menus/_name_/translations.mjs +28 -28
  149. package/dist/astro/routes/api/menus/_name_.mjs +28 -28
  150. package/dist/astro/routes/api/menus/index.mjs +28 -28
  151. package/dist/astro/routes/api/oauth/authorize.mjs +7 -7
  152. package/dist/astro/routes/api/oauth/device/authorize.mjs +6 -6
  153. package/dist/astro/routes/api/oauth/device/code.mjs +9 -9
  154. package/dist/astro/routes/api/oauth/device/token.mjs +8 -8
  155. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  156. package/dist/astro/routes/api/oauth/token/refresh.mjs +6 -6
  157. package/dist/astro/routes/api/oauth/token/revoke.mjs +6 -6
  158. package/dist/astro/routes/api/oauth/token.mjs +6 -6
  159. package/dist/astro/routes/api/openapi.json.mjs +4 -4
  160. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +4 -4
  161. package/dist/astro/routes/api/redirects/404s/index.mjs +9 -9
  162. package/dist/astro/routes/api/redirects/404s/summary.mjs +9 -9
  163. package/dist/astro/routes/api/redirects/_id_.mjs +29 -29
  164. package/dist/astro/routes/api/redirects/index.mjs +29 -29
  165. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
  166. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +2 -2
  167. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +47 -46
  168. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +47 -46
  169. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +47 -46
  170. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +47 -46
  171. package/dist/astro/routes/api/schema/collections/index.mjs +47 -46
  172. package/dist/astro/routes/api/schema/index.mjs +7 -7
  173. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +45 -44
  174. package/dist/astro/routes/api/schema/orphans/index.mjs +45 -44
  175. package/dist/astro/routes/api/search/enable.mjs +10 -10
  176. package/dist/astro/routes/api/search/index.mjs +9 -9
  177. package/dist/astro/routes/api/search/rebuild.mjs +10 -10
  178. package/dist/astro/routes/api/search/stats.mjs +6 -6
  179. package/dist/astro/routes/api/search/suggest.mjs +9 -9
  180. package/dist/astro/routes/api/sections/_slug_.mjs +28 -28
  181. package/dist/astro/routes/api/sections/index.mjs +28 -28
  182. package/dist/astro/routes/api/settings/email.mjs +3 -3
  183. package/dist/astro/routes/api/settings.mjs +28 -28
  184. package/dist/astro/routes/api/setup/admin-verify.mjs +11 -11
  185. package/dist/astro/routes/api/setup/admin.mjs +9 -9
  186. package/dist/astro/routes/api/setup/dev-bypass.mjs +23 -23
  187. package/dist/astro/routes/api/setup/dev-reset.mjs +1 -1
  188. package/dist/astro/routes/api/setup/index.mjs +24 -24
  189. package/dist/astro/routes/api/setup/status.mjs +3 -3
  190. package/dist/astro/routes/api/snapshot.mjs +6 -6
  191. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +31 -31
  192. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +31 -31
  193. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +31 -31
  194. package/dist/astro/routes/api/taxonomies/index.mjs +31 -31
  195. package/dist/astro/routes/api/themes/preview.mjs +4 -4
  196. package/dist/astro/routes/api/typegen.mjs +4 -4
  197. package/dist/astro/routes/api/well-known/auth.mjs +2 -2
  198. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +3 -3
  199. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +3 -3
  200. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +27 -27
  201. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +28 -28
  202. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +28 -28
  203. package/dist/astro/routes/api/widget-areas/_name_.mjs +25 -25
  204. package/dist/astro/routes/api/widget-areas/index.mjs +28 -28
  205. package/dist/astro/routes/api/widget-components.mjs +2 -2
  206. package/dist/astro/routes/robots.txt.mjs +5 -5
  207. package/dist/astro/routes/sitemap-_collection_.xml.mjs +34 -41
  208. package/dist/astro/routes/sitemap.xml.mjs +29 -17
  209. package/dist/astro/session-driver.d.mts +1 -1
  210. package/dist/astro/session-driver.mjs +2 -2
  211. package/dist/astro/types.d.mts +14 -11
  212. package/dist/{audit-DeBteyL4.mjs → audit-nenmMR-2.mjs} +1 -1
  213. package/dist/auth/providers/github.d.mts +1 -1
  214. package/dist/auth/providers/google.d.mts +1 -1
  215. package/dist/{auth-control-guard-B_Dx-epW.mjs → auth-control-guard-B7PdECn6.mjs} +1 -1
  216. package/dist/{authorize-D6MkRtPw.mjs → authorize-DTvHe9bm.mjs} +1 -1
  217. package/dist/{briefing-BTA39bRc.mjs → briefing-CpU_z8qH.mjs} +5 -5
  218. package/dist/{briefing-BfUOJfCy.mjs → briefing-PxagUoJJ.mjs} +1 -1
  219. package/dist/{bundle-C-eQG8un.mjs → bundle-dsO2-7eh.mjs} +2 -2
  220. package/dist/{byline-CB0OLcK1.mjs → byline-DEBDPF8R.mjs} +4 -4
  221. package/dist/{byline-fields-BRUB-Vla.mjs → byline-fields-BQRx17y_.mjs} +1 -1
  222. package/dist/{byline-fields-urVGl6bz.d.mts → byline-fields-BXg94LXd.d.mts} +50 -44
  223. package/dist/{bylines-BDp4-cpl.mjs → bylines-C7hm1-iI.mjs} +3 -3
  224. package/dist/{bylines-CiSL5IrP.mjs → bylines-YK6eGHvV.mjs} +5 -5
  225. package/dist/{cache-CtXIOJKw.mjs → cache-BuVpjvBc.mjs} +1 -1
  226. package/dist/{chunks-BdkWx1oD.mjs → chunks-B-1_U3oF.mjs} +1 -1
  227. package/dist/cli/index.mjs +28 -27
  228. package/dist/cli/plugin-kit.d.mts +9 -8
  229. package/dist/cli/plugin-kit.mjs +2 -2
  230. package/dist/client/external-auth-headers.d.mts +1 -1
  231. package/dist/client/index.d.mts +11 -10
  232. package/dist/client/index.mjs +2 -2
  233. package/dist/{client-factory-Dll61uB1.mjs → client-factory-Nyp2sznG.mjs} +1 -1
  234. package/dist/{comment-3JihGSh6.mjs → comment-BX6H4NF-.mjs} +1 -1
  235. package/dist/{comment-reaction-BNXm1YHa.mjs → comment-reaction-QSENU_3S.mjs} +1 -1
  236. package/dist/{comments-DJZXQi0j.mjs → comments-BHSYG53k.mjs} +1 -1
  237. package/dist/{content-Bturdi4b.mjs → content-Bg_hMt4Q.mjs} +2 -2
  238. package/dist/{content-refresh-C4YoqoNs.mjs → content-refresh-CHBBZGwf.mjs} +2 -2
  239. package/dist/{context-CB4PwkM_.mjs → context-BGt7zfQ-.mjs} +8 -8
  240. package/dist/{context-DH-YFjZr.mjs → context-BHXgPEPC.mjs} +2 -2
  241. package/dist/{context-route-helpers-CLoNF0pp.mjs → context-route-helpers-SwM-_GT4.mjs} +2 -2
  242. package/dist/{dashboard-DP4dxA1S.mjs → dashboard-DPUW4hBR.mjs} +4 -4
  243. package/dist/db/index.d.mts +3 -3
  244. package/dist/db/index.mjs +1 -1
  245. package/dist/db/libsql.d.mts +1 -1
  246. package/dist/db/postgres.d.mts +1 -1
  247. package/dist/db/sqlite.d.mts +1 -1
  248. package/dist/{device-flow-BWV1ZxXW.mjs → device-flow-XqdFNsv_.mjs} +4 -4
  249. package/dist/discovery-DvuRcbP-.mjs +178 -0
  250. package/dist/{field-defs-cache-BGhsaYGT.mjs → field-defs-cache-sSdDeJXP.mjs} +1 -1
  251. package/dist/{fts-manager-6KClQEs0.mjs → fts-manager-C7pxxk6B.mjs} +1 -1
  252. package/dist/{hitl-requests-DDYRgSeH.mjs → hitl-requests-D7pfIM6q.mjs} +2 -2
  253. package/dist/{hitl-route-helpers-BI3qTO75.mjs → hitl-route-helpers-Br9uvIQs.mjs} +5 -5
  254. package/dist/{import-CoaAe-mc.mjs → import-CrsquhXj.mjs} +7 -7
  255. package/dist/{index-DybFmYtZ.d.mts → index-NdJMMO48.d.mts} +3 -3
  256. package/dist/index.d.mts +16 -15
  257. package/dist/index.mjs +75 -74
  258. package/dist/{integration-credentials-D3ZneN0L.mjs → integration-credentials-B7Pj6YCv.mjs} +2 -2
  259. package/dist/{jsonld-DfR5LVWQ.d.mts → jsonld-TsDIJx5A.d.mts} +19 -7
  260. package/dist/{load-CfFRVQkS.mjs → load-Bul8Tk6e.mjs} +1 -1
  261. package/dist/{loader-CqKPLiKx.mjs → loader-BCr2VSzt.mjs} +2 -2
  262. package/dist/{manifest-schema-DKa3ZaJL.mjs → manifest-schema-U5qGq-iB.mjs} +1 -1
  263. package/dist/{mcp-reviewed-executor-ANVt5edE.mjs → mcp-reviewed-executor-C1lIimd0.mjs} +4 -4
  264. package/dist/media/index.d.mts +1 -1
  265. package/dist/media/local-runtime.d.mts +11 -10
  266. package/dist/media/local-runtime.mjs +2 -2
  267. package/dist/{media-BXbOL8xv.mjs → media-D8pQJSug.mjs} +1 -1
  268. package/dist/{menus-DCjNW2e4.mjs → menus-3B-PGTX3.mjs} +1 -1
  269. package/dist/{menus-Cu8lQOFw.mjs → menus-DSWeEWXl.mjs} +5 -5
  270. package/dist/{oauth-authorization-fiXxn7FY.mjs → oauth-authorization-CMU5kREy.mjs} +4 -4
  271. package/dist/{oauth-clients-D9Gg0WjF.mjs → oauth-clients-CLdR0WyA.mjs} +2 -2
  272. package/dist/object-cache/memory.d.mts +1 -1
  273. package/dist/page/index.d.mts +11 -10
  274. package/dist/page/index.mjs +2 -2
  275. package/dist/{parse-B-Y84oJl.mjs → parse-DEG06jjr.mjs} +1 -1
  276. package/dist/plugin-utils.d.mts +9 -8
  277. package/dist/plugins/adapt-sandbox-entry.d.mts +9 -8
  278. package/dist/plugins/adapt-sandbox-entry.mjs +1 -1
  279. package/dist/{plugins-BVSrX4gZ.mjs → plugins-D8YxTh9q.mjs} +26 -23
  280. package/dist/{preview-BMIReQGc.mjs → preview-Bn59ztjn.mjs} +2 -2
  281. package/dist/{provider-loader-Db-pJFu3.d.mts → provider-loader-jdkZM6xZ.d.mts} +1 -1
  282. package/dist/public-url-DFX2c_20.d.mts +99 -0
  283. package/dist/{public-url-ClXQnxy1.d.mts → public-url-NkNXl8OU.d.mts} +1 -1
  284. package/dist/{publication-authorization-DrqQCW3R.mjs → publication-authorization-BmazS4K0.mjs} +6 -6
  285. package/dist/{query-B0rPTc7J.mjs → query-CrUftarl.mjs} +12 -12
  286. package/dist/{query-D5Wvb06i.mjs → query-DPC5GT6e.mjs} +2 -2
  287. package/dist/{rate-limit-oUGexQO1.mjs → rate-limit-DvGL45wH.mjs} +2 -2
  288. package/dist/{redirect-3Zzd0xIN.mjs → redirect-8B-gorhg.mjs} +1 -1
  289. package/dist/{redirects-lCeytkeq.mjs → redirects-D2SVS1zo.mjs} +3 -3
  290. package/dist/{redirects-CWGZMRsj.mjs → redirects-DdPaQiWQ.mjs} +6 -2
  291. package/dist/{registry-c51Wf_AZ.mjs → registry-D3n4-yUl.mjs} +13 -6
  292. package/dist/{request-meta-DHFIzWcf.mjs → request-meta-DZTiCIQR.mjs} +1 -1
  293. package/dist/resolve-CThKf9_X.mjs +27 -0
  294. package/dist/{review-requests-eQbhj62T.mjs → review-requests-BQbmYLnz.mjs} +1 -1
  295. package/dist/{review-requests-B9NfBTCJ.mjs → review-requests-D5CJ4JCy.mjs} +1 -1
  296. package/dist/{review-route-helpers-4KBg7Hi3.mjs → review-route-helpers-DYiujAPM.mjs} +2 -2
  297. package/dist/{runner-Bcy5w0vj.d.mts → runner-BITx7yBF.d.mts} +1 -1
  298. package/dist/{runner-BE1taNgj.mjs → runner-BWZ87FK-.mjs} +482 -457
  299. package/dist/runtime.d.mts +10 -9
  300. package/dist/runtime.mjs +3 -3
  301. package/dist/schema-kk9-6bUd.mjs +8 -0
  302. package/dist/{search-NcUUIJOw.mjs → search-B_ir6H6m.mjs} +3 -3
  303. package/dist/{sections-D_imfMlM.mjs → sections-pRy07N5I.mjs} +2 -2
  304. package/dist/seed/index.d.mts +2 -2
  305. package/dist/seed/index.mjs +17 -17
  306. package/dist/seo/index.d.mts +4 -2
  307. package/dist/seo/index.mjs +10 -11
  308. package/dist/{seo-BasNtS3J.mjs → seo-C4nlxiaY.mjs} +1 -1
  309. package/dist/seo-DdNntVj-.mjs +52 -0
  310. package/dist/{seo-contributions-Ci8_12_r.mjs → seo-contributions-BGBehNCN.mjs} +260 -76
  311. package/dist/{service-BTYluCDf.mjs → service-D6fJX7D7.mjs} +2 -2
  312. package/dist/{settings-BUZ7b4Bn.mjs → settings-C4OMR0zf.mjs} +2 -2
  313. package/dist/{settings-Cs-ST1tU.mjs → settings-D-a7uy2z.mjs} +2 -2
  314. package/dist/{site-activity-QPC-7Vnq.mjs → site-activity-CnrmnFRy.mjs} +1 -1
  315. package/dist/{site-context-BDEjOzOk.mjs → site-context-Bdsobbh9.mjs} +13 -13
  316. package/dist/storage/local.d.mts +1 -1
  317. package/dist/storage/local.mjs +1 -1
  318. package/dist/storage/s3.d.mts +1 -1
  319. package/dist/storage/s3.mjs +1 -1
  320. package/dist/{store-CCfMD6nw.mjs → store-DerEE3jG.mjs} +1 -1
  321. package/dist/{taxonomies-DoyE8B41.mjs → taxonomies-6bWkaa_G.mjs} +3 -3
  322. package/dist/{taxonomies-CpYwz_sN.mjs → taxonomies-FKTevd14.mjs} +5 -5
  323. package/dist/{taxonomy-C-Aqi1cF.mjs → taxonomy-BU0eCfij.mjs} +2 -2
  324. package/dist/{types-ywmuDETA.d.mts → types-B2kbOwSj.d.mts} +6 -0
  325. package/dist/{types-GtwhHAg8.d.mts → types-B6r_SMeR.d.mts} +1 -1
  326. package/dist/{types-BFeoAIHl.d.mts → types-C8cUW9dh.d.mts} +1 -0
  327. package/dist/{types-al8YMHdF.mjs → types-C9F2TLQV.mjs} +1 -1
  328. package/dist/{types-C4ZrBtdu.d.mts → types-Cty2_HVR.d.mts} +50 -52
  329. package/dist/ui/server-runtime.d.mts +13 -12
  330. package/dist/ui/server-runtime.mjs +19 -60
  331. package/dist/{user-Ldseid1x.mjs → user-BV02bsWz.mjs} +2 -2
  332. package/dist/{validate-YiX3rly5.d.mts → validate-Bc9gaua6.d.mts} +5 -3
  333. package/dist/{validate-hHdBXn4U.mjs → validate-Drps_jbV.mjs} +9 -1
  334. package/dist/version-Cg-aQHxG.mjs +6 -0
  335. package/dist/{widgets-cBtEykx0.mjs → widgets-BFqy7PYs.mjs} +2 -2
  336. package/dist/{zod-generator-BGSszwCw.mjs → zod-generator-BlY_vGgR.mjs} +1 -1
  337. package/package.json +4 -4
  338. package/src/components/DinewayHead.astro +6 -6
  339. package/dist/resolve-B6BpqwAR.mjs +0 -100
  340. package/dist/schema-dGCjdAx9.mjs +0 -8
  341. package/dist/seo-BLszyJxd.mjs +0 -105
  342. package/dist/version-CZX1tQmH.mjs +0 -6
  343. /package/dist/{actor-DA7yL9Yp.mjs → actor-D3A5PNkH.mjs} +0 -0
  344. /package/dist/{adapters-DnMDRQ4e.d.mts → adapters-DUVI3Mpc.d.mts} +0 -0
  345. /package/dist/{api-tokens-D4tcY8R6.mjs → api-tokens-CbMAy6xF.mjs} +0 -0
  346. /package/dist/{byline-fields-sE9SQsDR.mjs → byline-fields-DPi4Ri_5.mjs} +0 -0
  347. /package/dist/{challenge-store-BMkL2kmt.mjs → challenge-store-DtdQHXf5.mjs} +0 -0
  348. /package/dist/{components-D0w9MzQe.mjs → components-DGu-rih7.mjs} +0 -0
  349. /package/dist/{cron-D_c3WUPN.mjs → cron-BjKHo0QD.mjs} +0 -0
  350. /package/dist/{default-BxoI3SoK.mjs → default-CO47mlSA.mjs} +0 -0
  351. /package/dist/{email-console-BEMwuxhV.mjs → email-console-CFE1ay18.mjs} +0 -0
  352. /package/dist/{error-BW9f_ynq.mjs → error-Jz0EtEwI.mjs} +0 -0
  353. /package/dist/{escape-smSUOb7u.mjs → escape-HmHTC1Is.mjs} +0 -0
  354. /package/dist/{experimental-workflows-CgO73K4e.mjs → experimental-workflows-EYZRNkRR.mjs} +0 -0
  355. /package/dist/{media-allowlist-BQyIBPzd.mjs → media-allowlist-9u_gxMG2.mjs} +0 -0
  356. /package/dist/{media-url-B6d-yVI6.mjs → media-url-DVoOhf4X.mjs} +0 -0
  357. /package/dist/{mode-DPC7segX.mjs → mode-DqpBaEOy.mjs} +0 -0
  358. /package/dist/{oauth-state-store-DPVzeoyY.mjs → oauth-state-store-HdGg_nSm.mjs} +0 -0
  359. /package/dist/{oauth-user-lookup-3E5jlXrr.mjs → oauth-user-lookup-CP16vyFW.mjs} +0 -0
  360. /package/dist/{output-13u4dvu-.mjs → output-CXOC3BFr.mjs} +0 -0
  361. /package/dist/{parser-DX_c5iG3.mjs → parser-buoH2frr.mjs} +0 -0
  362. /package/dist/{passkey-config-DE_0EGEP.mjs → passkey-config-T47FwLtS.mjs} +0 -0
  363. /package/dist/{placeholder-C6ZjZcmJ.d.mts → placeholder-BsYSFPjY.d.mts} +0 -0
  364. /package/dist/{portable-text-BASHceim.mjs → portable-text-DQHE3b5v.mjs} +0 -0
  365. /package/dist/{portable-text-BYUu-wtj.d.mts → portable-text-Dm0bgrdZ.d.mts} +0 -0
  366. /package/dist/{provider-loader-BeQcnPN1.mjs → provider-loader-Dxka0BDp.mjs} +0 -0
  367. /package/dist/{public-url-BA-7LKvQ.mjs → public-url-CIAtNGEg.mjs} +0 -0
  368. /package/dist/{redirect-CZFAqHLr.mjs → redirect-CzqnLxK-.mjs} +0 -0
  369. /package/dist/{secrets-CpGpyGcO.mjs → secrets-Dw3lXI42.mjs} +0 -0
  370. /package/dist/{service-CY0aH6eI.mjs → service-DOdvCW-9.mjs} +0 -0
  371. /package/dist/{session-user-BwliEFp0.mjs → session-user-CYjNeJoD.mjs} +0 -0
  372. /package/dist/{setup-complete-PvF8I7Oh.mjs → setup-complete-Blqo_adb.mjs} +0 -0
  373. /package/dist/{setup-nonce-DkpYROqg.mjs → setup-nonce-CGUTFWgQ.mjs} +0 -0
  374. /package/dist/{sidecar-client-dt5fv23q.mjs → sidecar-client-C6ylL-0S.mjs} +0 -0
  375. /package/dist/{site-url-DfYDZyWl.mjs → site-url-CK5vBdFu.mjs} +0 -0
  376. /package/dist/{ssrf-BZHvtFEv.mjs → ssrf-Dz2hqAiG.mjs} +0 -0
  377. /package/dist/{status-BN40hMpr.mjs → status-xz9JACSX.mjs} +0 -0
  378. /package/dist/{tokens-DIzhPT80.mjs → tokens-DiodRT2y.mjs} +0 -0
  379. /package/dist/{transport-CXkC1F2Z.d.mts → transport-DKy93p6V.d.mts} +0 -0
  380. /package/dist/{transport-C46KHLMP.mjs → transport-zquJ7Bzm.mjs} +0 -0
  381. /package/dist/{trusted-proxy-czZuby6G.mjs → trusted-proxy-NySPw95m.mjs} +0 -0
  382. /package/dist/{types-BsTXSvKG.d.mts → types-BaKec6bx.d.mts} +0 -0
  383. /package/dist/{types-gvNBqijt.mjs → types-C1LdZbQb.mjs} +0 -0
  384. /package/dist/{types-S9VIopdY.d.mts → types-C2LBO0t8.d.mts} +0 -0
  385. /package/dist/{types-CDcuRd4z.d.mts → types-DY9lJRpo.d.mts} +0 -0
  386. /package/dist/{types-YxFz4lDr.d.mts → types-Gd4kXLsa.d.mts} +0 -0
  387. /package/dist/{types-CK0r-Xq4.mjs → types-ftxcMx5-.mjs} +0 -0
  388. /package/dist/{url-D282S1Zw.mjs → url-C05Zz4pW.mjs} +0 -0
  389. /package/dist/{utils-B7gemXz5.mjs → utils-BPzpVHqR.mjs} +0 -0
  390. /package/dist/{wordpress-slugs-D_LfQCan.mjs → wordpress-slugs-fMvfO22_.mjs} +0 -0
@@ -1,10 +1,11 @@
1
- import { Ls as dinewayLoader, Ms as CollectionFilter, Ns as EntryData, Ps as EntryFilter, Rs as getDb } from "./types-C4ZrBtdu.mjs";
2
- import "./types-BFeoAIHl.mjs";
3
- import "./runner-Bcy5w0vj.mjs";
4
- import "./index-DybFmYtZ.mjs";
5
- import "./types-S9VIopdY.mjs";
6
- import "./validate-YiX3rly5.mjs";
7
- import "./byline-fields-urVGl6bz.mjs";
8
- import "./types-BsTXSvKG.mjs";
9
- import { t as getMediaProvider } from "./provider-loader-Db-pJFu3.mjs";
1
+ import { Is as dinewayLoader, Ls as getDb, Ms as EntryData, Ns as EntryFilter, js as CollectionFilter } from "./types-Cty2_HVR.mjs";
2
+ import "./types-C8cUW9dh.mjs";
3
+ import "./runner-BITx7yBF.mjs";
4
+ import "./index-NdJMMO48.mjs";
5
+ import "./types-C2LBO0t8.mjs";
6
+ import "./public-url-DFX2c_20.mjs";
7
+ import "./validate-Bc9gaua6.mjs";
8
+ import "./byline-fields-BXg94LXd.mjs";
9
+ import "./types-BaKec6bx.mjs";
10
+ import { t as getMediaProvider } from "./provider-loader-jdkZM6xZ.mjs";
10
11
  export { type CollectionFilter, type EntryData, type EntryFilter, dinewayLoader, getDb, getMediaProvider };
package/dist/runtime.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import "./dialect-helpers-fk43GbDb.mjs";
2
2
  import "./base64-F8-DUraK.mjs";
3
- import "./types-al8YMHdF.mjs";
4
- import { n as dinewayLoader, r as getDb } from "./loader-CqKPLiKx.mjs";
5
- import { t as getMediaProvider } from "./provider-loader-BeQcnPN1.mjs";
3
+ import "./types-C9F2TLQV.mjs";
4
+ import { n as dinewayLoader, r as getDb } from "./loader-BCr2VSzt.mjs";
5
+ import { t as getMediaProvider } from "./provider-loader-Dxka0BDp.mjs";
6
6
 
7
7
  export { dinewayLoader, getDb, getMediaProvider };
@@ -0,0 +1,8 @@
1
+ import { a as __exportAll } from "./runner-BWZ87FK-.mjs";
2
+ import { n as SchemaRegistry } from "./registry-D3n4-yUl.mjs";
3
+
4
+ //#region src/schema/index.ts
5
+ var schema_exports = /* @__PURE__ */ __exportAll({ SchemaRegistry: () => SchemaRegistry });
6
+
7
+ //#endregion
8
+ export { schema_exports as t };
@@ -1,7 +1,7 @@
1
- import { a as __exportAll } from "./runner-BE1taNgj.mjs";
1
+ import { a as __exportAll } from "./runner-BWZ87FK-.mjs";
2
2
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
3
- import { r as getDb } from "./loader-CqKPLiKx.mjs";
4
- import { t as FTSManager } from "./fts-manager-6KClQEs0.mjs";
3
+ import { r as getDb } from "./loader-BCr2VSzt.mjs";
4
+ import { t as FTSManager } from "./fts-manager-C7pxxk6B.mjs";
5
5
  import { sql } from "kysely";
6
6
  import { toPlainText } from "@portabletext/toolkit";
7
7
 
@@ -1,5 +1,5 @@
1
- import { i as encodeCursor, r as decodeCursor } from "./types-al8YMHdF.mjs";
2
- import { r as getDb } from "./loader-CqKPLiKx.mjs";
1
+ import { i as encodeCursor, r as decodeCursor } from "./types-C9F2TLQV.mjs";
2
+ import { r as getDb } from "./loader-BCr2VSzt.mjs";
3
3
  import { ulid } from "ulidx";
4
4
 
5
5
  //#region src/sections/index.ts
@@ -1,3 +1,3 @@
1
- import "../types-BFeoAIHl.mjs";
2
- import { _ as SeedTaxonomyTerm, a as applySeed, b as ValidationResult, c as SeedCollection, d as SeedFile, f as SeedMenu, g as SeedTaxonomy, h as SeedSection, i as defaultSeed, l as SeedContentEntry, m as SeedRedirect, n as loadSeed, o as SeedApplyOptions, p as SeedMenuItem, r as loadUserSeed, s as SeedApplyResult, t as validateSeed, u as SeedField, v as SeedWidget, y as SeedWidgetArea } from "../validate-YiX3rly5.mjs";
1
+ import "../types-C8cUW9dh.mjs";
2
+ import { _ as SeedTaxonomyTerm, a as applySeed, b as ValidationResult, c as SeedCollection, d as SeedFile, f as SeedMenu, g as SeedTaxonomy, h as SeedSection, i as defaultSeed, l as SeedContentEntry, m as SeedRedirect, n as loadSeed, o as SeedApplyOptions, p as SeedMenuItem, r as loadUserSeed, s as SeedApplyResult, t as validateSeed, u as SeedField, v as SeedWidget, y as SeedWidgetArea } from "../validate-Bc9gaua6.mjs";
3
3
  export { type SeedApplyOptions, type SeedApplyResult, type SeedCollection, type SeedContentEntry, type SeedField, type SeedFile, type SeedMenu, type SeedMenuItem, type SeedRedirect, type SeedSection, type SeedTaxonomy, type SeedTaxonomyTerm, type SeedWidget, type SeedWidgetArea, type ValidationResult, applySeed, defaultSeed, loadSeed, loadUserSeed, validateSeed };
@@ -1,25 +1,25 @@
1
1
  import "../dialect-helpers-fk43GbDb.mjs";
2
2
  import "../base64-F8-DUraK.mjs";
3
- import "../types-al8YMHdF.mjs";
4
- import "../loader-CqKPLiKx.mjs";
3
+ import "../types-C9F2TLQV.mjs";
4
+ import "../loader-BCr2VSzt.mjs";
5
5
  import "../object-cache-D51qOseS.mjs";
6
- import "../content-Bturdi4b.mjs";
7
- import "../media-BXbOL8xv.mjs";
8
- import "../taxonomy-C-Aqi1cF.mjs";
6
+ import "../content-Bg_hMt4Q.mjs";
7
+ import "../media-D8pQJSug.mjs";
8
+ import "../taxonomy-BU0eCfij.mjs";
9
9
  import "../options-DQPTH5n0.mjs";
10
- import "../redirect-3Zzd0xIN.mjs";
10
+ import "../redirect-8B-gorhg.mjs";
11
11
  import "../request-cache-CBFjCwSt.mjs";
12
12
  import "../byline-registry-BLgrU3dA.mjs";
13
- import "../field-defs-cache-BGhsaYGT.mjs";
14
- import "../byline-CB0OLcK1.mjs";
15
- import "../content-refresh-C4YoqoNs.mjs";
16
- import "../fts-manager-6KClQEs0.mjs";
17
- import "../registry-c51Wf_AZ.mjs";
18
- import "../settings-Cs-ST1tU.mjs";
19
- import "../ssrf-BZHvtFEv.mjs";
20
- import { t as validateSeed } from "../validate-hHdBXn4U.mjs";
21
- import { t as applySeed } from "../apply-CPcb8oiS.mjs";
22
- import { t as defaultSeed } from "../default-BxoI3SoK.mjs";
23
- import { n as loadUserSeed, t as loadSeed } from "../load-CfFRVQkS.mjs";
13
+ import "../field-defs-cache-sSdDeJXP.mjs";
14
+ import "../byline-DEBDPF8R.mjs";
15
+ import "../content-refresh-CHBBZGwf.mjs";
16
+ import "../fts-manager-C7pxxk6B.mjs";
17
+ import "../registry-D3n4-yUl.mjs";
18
+ import "../settings-D-a7uy2z.mjs";
19
+ import "../ssrf-Dz2hqAiG.mjs";
20
+ import { t as validateSeed } from "../validate-Drps_jbV.mjs";
21
+ import { t as applySeed } from "../apply-Hodkn7PL.mjs";
22
+ import { t as defaultSeed } from "../default-CO47mlSA.mjs";
23
+ import { n as loadUserSeed, t as loadSeed } from "../load-Bul8Tk6e.mjs";
24
24
 
25
25
  export { applySeed, defaultSeed, loadSeed, loadUserSeed, validateSeed };
@@ -1,4 +1,6 @@
1
- import { a as ContentSeo } from "../types-GtwhHAg8.mjs";
1
+ import { a as ContentSeo } from "../types-B6r_SMeR.mjs";
2
+ import "../types-C8cUW9dh.mjs";
3
+ import { a as PublicContentOptions, i as PublicContentEntry, n as resolveContentUrl, o as listPublicContent, r as resolveCanonicalUrl, t as ResolveContentUrlInput } from "../public-url-DFX2c_20.mjs";
2
4
 
3
5
  //#region src/seo/index.d.ts
4
6
  /**
@@ -66,4 +68,4 @@ declare function getSeoMeta<T>(content: SeoContentInput<T>, options?: SeoMetaOpt
66
68
  */
67
69
  declare function getContentSeo<T>(content: SeoContentInput<T>): ContentSeo | undefined;
68
70
  //#endregion
69
- export { SeoContentInput, SeoMeta, SeoMetaOptions, getContentSeo, getSeoMeta };
71
+ export { type PublicContentEntry, type PublicContentOptions, type ResolveContentUrlInput, SeoContentInput, SeoMeta, SeoMetaOptions, getContentSeo, getSeoMeta, listPublicContent, resolveCanonicalUrl, resolveContentUrl };
@@ -1,8 +1,13 @@
1
- import { t as buildSeoImageUrl } from "../media-url-B6d-yVI6.mjs";
1
+ import "../dialect-helpers-fk43GbDb.mjs";
2
+ import "../base64-F8-DUraK.mjs";
3
+ import "../types-C9F2TLQV.mjs";
4
+ import "../content-refresh-CHBBZGwf.mjs";
5
+ import "../fts-manager-C7pxxk6B.mjs";
6
+ import "../registry-D3n4-yUl.mjs";
7
+ import { n as resolveContentUrl, r as resolveCanonicalUrl, t as listPublicContent } from "../discovery-DvuRcbP-.mjs";
8
+ import { t as buildSeoImageUrl } from "../media-url-DVoOhf4X.mjs";
2
9
 
3
10
  //#region src/seo/index.ts
4
- const TRAILING_SLASH_RE = /\/$/;
5
- const ABSOLUTE_URL_RE = /^https?:\/\//i;
6
11
  /**
7
12
  * Generate resolved SEO meta tags from a content item.
8
13
  *
@@ -27,13 +32,7 @@ function getSeoMeta(content, options = {}) {
27
32
  const fullTitle = siteTitle && pageTitle ? `${pageTitle}${separator}${siteTitle}` : pageTitle;
28
33
  const description = seo.description || (typeof content.data.excerpt === "string" ? content.data.excerpt : null) || null;
29
34
  const ogImage = seo.image ? buildSeoImageUrl(seo.image, siteUrl) : defaultOgImage ?? null;
30
- let canonical = null;
31
- if (seo.canonical) if (siteUrl && !seo.canonical.startsWith("/") && !ABSOLUTE_URL_RE.test(seo.canonical)) canonical = `${siteUrl.replace(TRAILING_SLASH_RE, "")}/${seo.canonical}`;
32
- else canonical = seo.canonical;
33
- else if (siteUrl && path) {
34
- const safePath = path.startsWith("/") ? path : `/${path}`;
35
- canonical = `${siteUrl.replace(TRAILING_SLASH_RE, "")}${safePath}`;
36
- }
35
+ const canonical = seo.canonical ? resolveCanonicalUrl(seo.canonical, siteUrl) : siteUrl && path ? resolveCanonicalUrl(path, siteUrl) : null;
37
36
  const robots = seo.noIndex ? "noindex, nofollow" : null;
38
37
  return {
39
38
  title: fullTitle,
@@ -58,4 +57,4 @@ function getContentSeo(content) {
58
57
  }
59
58
 
60
59
  //#endregion
61
- export { getContentSeo, getSeoMeta };
60
+ export { getContentSeo, getSeoMeta, listPublicContent, resolveCanonicalUrl, resolveContentUrl };
@@ -1,5 +1,5 @@
1
1
  import { o as invalidateCollectionCache } from "./object-cache-D51qOseS.mjs";
2
- import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-BdkWx1oD.mjs";
2
+ import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-B-1_U3oF.mjs";
3
3
  import { sql } from "kysely";
4
4
 
5
5
  //#region src/database/repositories/seo.ts
@@ -0,0 +1,52 @@
1
+ import { t as listPublicContent } from "./discovery-DvuRcbP-.mjs";
2
+
3
+ //#region src/api/handlers/seo.ts
4
+ /** Internal XML batch, not an unbounded public JSON list endpoint. */
5
+ async function handleSitemapData(db, options) {
6
+ try {
7
+ const pageSize = Number.isFinite(options.pageSize) ? Math.max(1, Math.min(1e4, Math.floor(options.pageSize))) : 1e4;
8
+ const collections = /* @__PURE__ */ new Map();
9
+ let cursor = options.cursor;
10
+ for (let scanned = 0; scanned < pageSize; scanned += 100) {
11
+ const page = await listPublicContent(db, {
12
+ ...options,
13
+ limit: Math.min(100, pageSize - scanned),
14
+ cursor
15
+ });
16
+ for (const entry of page.items) {
17
+ let group = collections.get(entry.collection);
18
+ if (!group) {
19
+ group = {
20
+ collection: entry.collection,
21
+ lastmod: entry.updatedAt,
22
+ entries: []
23
+ };
24
+ collections.set(entry.collection, group);
25
+ }
26
+ if (entry.updatedAt > group.lastmod) group.lastmod = entry.updatedAt;
27
+ group.entries.push(entry);
28
+ }
29
+ cursor = page.nextCursor;
30
+ if (!cursor) break;
31
+ }
32
+ return {
33
+ success: true,
34
+ data: {
35
+ collections: [...collections.values()],
36
+ nextCursor: cursor
37
+ }
38
+ };
39
+ } catch (error) {
40
+ console.error("[SITEMAP_ERROR]", error);
41
+ return {
42
+ success: false,
43
+ error: {
44
+ code: "SITEMAP_ERROR",
45
+ message: "Failed to generate sitemap data"
46
+ }
47
+ };
48
+ }
49
+ }
50
+
51
+ //#endregion
52
+ export { handleSitemapData as t };
@@ -29,13 +29,19 @@ function createPublicPageContext(input) {
29
29
  pageTitle: input.pageTitle ?? null,
30
30
  description: input.description ?? null,
31
31
  canonical: input.canonical ?? null,
32
- image: input.image ?? null,
32
+ image: typeof input.image === "object" ? input.image?.url ?? null : input.image ?? null,
33
+ imageMetadata: typeof input.image === "object" ? input.image ?? void 0 : input.imageMetadata,
34
+ schema: input.schema,
33
35
  content: input.content ? {
34
36
  collection: input.content.collection,
35
37
  id: input.content.id,
36
38
  slug: input.content.slug ?? null
37
39
  } : void 0,
38
- seo: input.seo,
40
+ seo: input.seo ? {
41
+ ...input.seo,
42
+ ogImage: typeof input.seo.ogImage === "object" ? input.seo.ogImage?.url ?? null : input.seo.ogImage,
43
+ ogImageMetadata: typeof input.seo.ogImage === "object" ? input.seo.ogImage ?? void 0 : input.seo.ogImageMetadata
44
+ } : void 0,
39
45
  articleMeta: input.articleMeta,
40
46
  siteName: input.siteName,
41
47
  breadcrumbs: input.breadcrumbs,
@@ -43,6 +49,247 @@ function createPublicPageContext(input) {
43
49
  };
44
50
  }
45
51
 
52
+ //#endregion
53
+ //#region src/page/absolute-url.ts
54
+ const HTTP_URL_RE = /^https?:\/\//i;
55
+ const PROTOCOL_RELATIVE_RE = /^\/\//;
56
+ const PASSTHROUGH_SCHEME_RE = /^data:image\//i;
57
+ const OTHER_SCHEME_RE = /^[a-z][a-z0-9+.-]*:/i;
58
+ const WHITESPACE_OR_CONTROL_RE = /[\s\u0000-\u001f\u007f-\u009f]/;
59
+ const TRAILING_SLASH_RE = /\/$/;
60
+ function isUsableOrigin(origin) {
61
+ return origin !== "null" && origin !== "";
62
+ }
63
+ function resolveSiteOrigin(configuredSiteUrl, page) {
64
+ const candidates = [
65
+ configuredSiteUrl,
66
+ page.siteUrl,
67
+ page.url
68
+ ];
69
+ for (const candidate of candidates) {
70
+ if (!candidate || typeof candidate !== "string") continue;
71
+ try {
72
+ const parsed = new URL(candidate);
73
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") continue;
74
+ if (!isUsableOrigin(parsed.origin)) continue;
75
+ return parsed.origin;
76
+ } catch {}
77
+ }
78
+ return null;
79
+ }
80
+ function absolutizeMediaUrl(url, configuredSiteUrl, page) {
81
+ if (!url) return null;
82
+ if (WHITESPACE_OR_CONTROL_RE.test(url)) return null;
83
+ if (HTTP_URL_RE.test(url)) return url;
84
+ if (PASSTHROUGH_SCHEME_RE.test(url)) return url;
85
+ if (PROTOCOL_RELATIVE_RE.test(url)) return null;
86
+ if (OTHER_SCHEME_RE.test(url)) return null;
87
+ const origin = resolveSiteOrigin(configuredSiteUrl, page);
88
+ if (!origin) return url;
89
+ const safePath = url.startsWith("/") ? url : `/${url}`;
90
+ return `${origin.replace(TRAILING_SLASH_RE, "")}${safePath}`;
91
+ }
92
+
93
+ //#endregion
94
+ //#region src/page/image.ts
95
+ const HTTP_IMAGE_URL = /^https?:\/\//i;
96
+ /** Resolve a crawlable image, retaining metadata only for the selected file. */
97
+ function resolvePageImage(page, defaultImage, social = true) {
98
+ const fallback = typeof defaultImage === "string" ? { url: defaultImage } : defaultImage;
99
+ const candidates = [
100
+ ...social ? [{
101
+ url: page.seo?.ogImage,
102
+ metadata: page.seo?.ogImageMetadata
103
+ }] : [],
104
+ {
105
+ url: page.image,
106
+ metadata: page.imageMetadata
107
+ },
108
+ {
109
+ url: fallback?.url,
110
+ metadata: fallback
111
+ }
112
+ ];
113
+ for (const candidate of candidates) {
114
+ const url = absolutizeMediaUrl(candidate.url ?? void 0, page.siteUrl, page);
115
+ if (!url || !HTTP_IMAGE_URL.test(url)) continue;
116
+ try {
117
+ const parsed = new URL(url);
118
+ if (parsed.username || parsed.password) continue;
119
+ } catch {
120
+ continue;
121
+ }
122
+ const metadata = candidate.metadata?.url === candidate.url ? candidate.metadata : void 0;
123
+ return {
124
+ url,
125
+ ...metadata?.alt ? { alt: metadata.alt } : {},
126
+ ...validDimension(metadata?.width) ? { width: metadata?.width } : {},
127
+ ...validDimension(metadata?.height) ? { height: metadata?.height } : {},
128
+ ...metadata?.mimeType?.startsWith("image/") ? { mimeType: metadata.mimeType } : {}
129
+ };
130
+ }
131
+ return null;
132
+ }
133
+ function validDimension(value) {
134
+ return value !== void 0 && Number.isInteger(value) && value > 0;
135
+ }
136
+ function imageMetadataContributions(image) {
137
+ if (!image) return [];
138
+ const result = [];
139
+ for (const [property, value] of [
140
+ ["og:image:width", image.width],
141
+ ["og:image:height", image.height],
142
+ ["og:image:type", image.mimeType],
143
+ ["og:image:alt", image.alt]
144
+ ]) if (value !== void 0) result.push({
145
+ kind: "property",
146
+ property,
147
+ content: String(value)
148
+ });
149
+ if (image.alt) result.push({
150
+ kind: "meta",
151
+ name: "twitter:image:alt",
152
+ content: image.alt
153
+ });
154
+ return result;
155
+ }
156
+
157
+ //#endregion
158
+ //#region src/page/jsonld.ts
159
+ /**
160
+ * Remove null/undefined values from a JSON-LD object recursively.
161
+ * JSON-LD validators prefer absent keys over null values.
162
+ */
163
+ function cleanJsonLd(obj) {
164
+ const cleaned = {};
165
+ for (const [key, value] of Object.entries(obj)) if (value !== void 0 && value !== null) if (typeof value === "object" && !Array.isArray(value)) cleaned[key] = cleanJsonLd(value);
166
+ else cleaned[key] = value;
167
+ return cleaned;
168
+ }
169
+ /**
170
+ * Build a BlogPosting JSON-LD graph from page context.
171
+ * Used for article-type content pages.
172
+ */
173
+ function buildBlogPostingJsonLd(page, defaultOgImage) {
174
+ if (page.pageType !== "article" || !page.canonical) return null;
175
+ const ogTitle = page.seo?.ogTitle ?? page.pageTitle ?? page.title;
176
+ const description = page.description;
177
+ const ogImage = resolvePageImage(page, defaultOgImage)?.url;
178
+ const publishedTime = page.articleMeta?.publishedTime;
179
+ const modifiedTime = page.articleMeta?.modifiedTime;
180
+ const author = page.articleMeta?.author;
181
+ const siteName = page.siteName;
182
+ return cleanJsonLd({
183
+ "@context": "https://schema.org",
184
+ "@type": "BlogPosting",
185
+ headline: ogTitle,
186
+ description,
187
+ image: ogImage || void 0,
188
+ url: page.canonical,
189
+ datePublished: publishedTime || void 0,
190
+ dateModified: modifiedTime || publishedTime || void 0,
191
+ author: author ? {
192
+ "@type": "Person",
193
+ name: author
194
+ } : void 0,
195
+ publisher: siteName ? {
196
+ "@type": "Organization",
197
+ name: siteName
198
+ } : void 0,
199
+ mainEntityOfPage: {
200
+ "@type": "WebPage",
201
+ "@id": page.canonical
202
+ }
203
+ });
204
+ }
205
+ /**
206
+ * Build a WebSite JSON-LD graph from page context.
207
+ * Used for non-article pages (homepage, listing pages, etc.)
208
+ */
209
+ function buildWebSiteJsonLd(page) {
210
+ const siteName = page.siteName;
211
+ if (!siteName) return null;
212
+ let siteUrl;
213
+ if (page.siteUrl) siteUrl = page.siteUrl;
214
+ else try {
215
+ siteUrl = new URL(page.url).origin;
216
+ } catch {
217
+ siteUrl = page.canonical || page.url;
218
+ }
219
+ return cleanJsonLd({
220
+ "@context": "https://schema.org",
221
+ "@type": "WebSite",
222
+ name: siteName,
223
+ url: siteUrl
224
+ });
225
+ }
226
+
227
+ //#endregion
228
+ //#region src/page/schema.ts
229
+ /** Extend a graph without replacing nodes owned by its primary builder. */
230
+ function mergePageSchema(base, page, pageId) {
231
+ const seen = /* @__PURE__ */ new Set();
232
+ const nodes = [...base, ...page.schema?.nodes ?? []].filter((node) => {
233
+ if (!node["@id"]) return true;
234
+ if (seen.has(node["@id"])) return false;
235
+ seen.add(node["@id"]);
236
+ return true;
237
+ });
238
+ const mainEntity = page.schema?.mainEntity;
239
+ if (!mainEntity) return nodes;
240
+ if (!seen.has(mainEntity)) throw new Error("Page schema mainEntity must identify a node in the graph");
241
+ if (!seen.has(pageId)) throw new Error("Page schema requires its WebPage node in the graph");
242
+ return nodes.map((node) => node["@id"] === pageId ? {
243
+ ...node,
244
+ mainEntity: { "@id": mainEntity }
245
+ } : node);
246
+ }
247
+ /** Core graph with site-supplied entities when no graph plugin is installed. */
248
+ function buildExtendedPageGraph(page, defaultOgImage) {
249
+ const pageUrl = page.canonical || page.url;
250
+ const siteUrl = new URL(page.siteUrl || pageUrl).origin;
251
+ const websiteId = `${siteUrl}/#website`;
252
+ const image = resolvePageImage(page, defaultOgImage, false);
253
+ const imageId = `${pageUrl}#primaryimage`;
254
+ const nodes = [{
255
+ "@type": "WebSite",
256
+ "@id": websiteId,
257
+ url: siteUrl,
258
+ name: page.siteName
259
+ }, {
260
+ "@type": "WebPage",
261
+ "@id": pageUrl,
262
+ url: pageUrl,
263
+ name: page.pageTitle || page.title,
264
+ description: page.description,
265
+ isPartOf: { "@id": websiteId },
266
+ ...image ? { primaryImageOfPage: { "@id": imageId } } : {}
267
+ }];
268
+ if (image) nodes.push({
269
+ "@type": "ImageObject",
270
+ "@id": imageId,
271
+ url: image.url,
272
+ contentUrl: image.url,
273
+ width: image.width,
274
+ height: image.height,
275
+ caption: image.alt,
276
+ encodingFormat: image.mimeType
277
+ });
278
+ const article = buildBlogPostingJsonLd(page, defaultOgImage);
279
+ if (article) {
280
+ delete article["@context"];
281
+ nodes.push({
282
+ ...article,
283
+ "@type": "BlogPosting",
284
+ "@id": `${pageUrl}#article`
285
+ });
286
+ }
287
+ return {
288
+ "@context": "https://schema.org",
289
+ "@graph": mergePageSchema(nodes, page, pageUrl).map(cleanJsonLd)
290
+ };
291
+ }
292
+
46
293
  //#endregion
47
294
  //#region src/page/metadata.ts
48
295
  /** Schemes safe for use in link href attributes */
@@ -130,7 +377,7 @@ function resolvePageMetadata(contributions) {
130
377
  if (seenLinks.has("canonical")) continue;
131
378
  seenLinks.add("canonical");
132
379
  } else {
133
- const dedupeKey = c.key ?? c.hreflang ?? c.href;
380
+ const dedupeKey = `${c.rel}:${c.key ?? c.hreflang ?? c.href}`;
134
381
  if (seenLinks.has(dedupeKey)) continue;
135
382
  seenLinks.add(dedupeKey);
136
383
  }
@@ -226,76 +473,6 @@ function renderFragments(contributions, placement) {
226
473
  return resolveFragments(contributions, placement).map(renderFragment).join("\n");
227
474
  }
228
475
 
229
- //#endregion
230
- //#region src/page/jsonld.ts
231
- /**
232
- * Remove null/undefined values from a JSON-LD object recursively.
233
- * JSON-LD validators prefer absent keys over null values.
234
- */
235
- function cleanJsonLd(obj) {
236
- const cleaned = {};
237
- for (const [key, value] of Object.entries(obj)) if (value !== void 0 && value !== null) if (typeof value === "object" && !Array.isArray(value)) cleaned[key] = cleanJsonLd(value);
238
- else cleaned[key] = value;
239
- return cleaned;
240
- }
241
- /**
242
- * Build a BlogPosting JSON-LD graph from page context.
243
- * Used for article-type content pages.
244
- */
245
- function buildBlogPostingJsonLd(page, defaultOgImage) {
246
- if (page.pageType !== "article" || !page.canonical) return null;
247
- const ogTitle = page.seo?.ogTitle ?? page.pageTitle ?? page.title;
248
- const description = page.seo?.ogDescription || page.description;
249
- const ogImage = page.seo?.ogImage || page.image || defaultOgImage || null;
250
- const publishedTime = page.articleMeta?.publishedTime;
251
- const modifiedTime = page.articleMeta?.modifiedTime;
252
- const author = page.articleMeta?.author;
253
- const siteName = page.siteName;
254
- return cleanJsonLd({
255
- "@context": "https://schema.org",
256
- "@type": "BlogPosting",
257
- headline: ogTitle,
258
- description,
259
- image: ogImage || void 0,
260
- url: page.canonical,
261
- datePublished: publishedTime || void 0,
262
- dateModified: modifiedTime || publishedTime || void 0,
263
- author: author ? {
264
- "@type": "Person",
265
- name: author
266
- } : void 0,
267
- publisher: siteName ? {
268
- "@type": "Organization",
269
- name: siteName
270
- } : void 0,
271
- mainEntityOfPage: {
272
- "@type": "WebPage",
273
- "@id": page.canonical
274
- }
275
- });
276
- }
277
- /**
278
- * Build a WebSite JSON-LD graph from page context.
279
- * Used for non-article pages (homepage, listing pages, etc.)
280
- */
281
- function buildWebSiteJsonLd(page) {
282
- const siteName = page.siteName;
283
- if (!siteName) return null;
284
- let siteUrl;
285
- if (page.siteUrl) siteUrl = page.siteUrl;
286
- else try {
287
- siteUrl = new URL(page.url).origin;
288
- } catch {
289
- siteUrl = page.canonical || page.url;
290
- }
291
- return cleanJsonLd({
292
- "@context": "https://schema.org",
293
- "@type": "WebSite",
294
- name: siteName,
295
- url: siteUrl
296
- });
297
- }
298
-
299
476
  //#endregion
300
477
  //#region src/page/seo-contributions.ts
301
478
  /**
@@ -307,7 +484,8 @@ function generateBaseSeoContributions(page, defaultOgImage) {
307
484
  const description = page.description;
308
485
  const ogTitle = page.seo?.ogTitle ?? page.pageTitle ?? page.title;
309
486
  const ogDescription = page.seo?.ogDescription || description;
310
- const ogImage = page.seo?.ogImage || page.image || defaultOgImage || null;
487
+ const image = resolvePageImage(page, defaultOgImage);
488
+ const ogImage = image?.url;
311
489
  const robots = page.seo?.robots;
312
490
  const canonical = page.canonical;
313
491
  const siteName = page.siteName;
@@ -346,6 +524,7 @@ function generateBaseSeoContributions(page, defaultOgImage) {
346
524
  property: "og:image",
347
525
  content: ogImage
348
526
  });
527
+ contributions.push(...imageMetadataContributions(image));
349
528
  if (canonical) contributions.push({
350
529
  kind: "property",
351
530
  property: "og:url",
@@ -394,7 +573,12 @@ function generateBaseSeoContributions(page, defaultOgImage) {
394
573
  content: author
395
574
  });
396
575
  }
397
- if (page.pageType === "article") {
576
+ if (page.schema) contributions.push({
577
+ kind: "jsonld",
578
+ id: "primary",
579
+ graph: buildExtendedPageGraph(page, defaultOgImage)
580
+ });
581
+ else if (page.pageType === "article") {
398
582
  const blogPosting = buildBlogPostingJsonLd(page, defaultOgImage ?? null);
399
583
  if (blogPosting) contributions.push({
400
584
  kind: "jsonld",
@@ -434,4 +618,4 @@ function generateSiteSeoContributions(seoSettings) {
434
618
  }
435
619
 
436
620
  //#endregion
437
- export { cleanJsonLd as a, createSha256CspHash as c, resolvePageMetadata as d, safeJsonLdSerialize as f, buildWebSiteJsonLd as i, escapeHtmlAttr as l, generateSiteSeoContributions as n, renderFragments as o, createPublicPageContext as p, buildBlogPostingJsonLd as r, resolveFragments as s, generateBaseSeoContributions as t, renderPageMetadata as u };
621
+ export { createPublicPageContext as _, createSha256CspHash as a, resolvePageMetadata as c, buildBlogPostingJsonLd as d, buildWebSiteJsonLd as f, absolutizeMediaUrl as g, resolvePageImage as h, resolveFragments as i, safeJsonLdSerialize as l, imageMetadataContributions as m, generateSiteSeoContributions as n, escapeHtmlAttr as o, cleanJsonLd as p, renderFragments as r, renderPageMetadata as s, generateBaseSeoContributions as t, mergePageSchema as u };
@@ -1,6 +1,6 @@
1
1
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
2
- import { t as CommentRepository } from "./comment-3JihGSh6.mjs";
3
- import { t as escapeHtml } from "./escape-smSUOb7u.mjs";
2
+ import { t as CommentRepository } from "./comment-BX6H4NF-.mjs";
3
+ import { t as escapeHtml } from "./escape-HmHTC1Is.mjs";
4
4
 
5
5
  //#region src/comments/notifications.ts
6
6
  const NOTIFICATION_SOURCE = "dineway-comments";
@@ -1,5 +1,5 @@
1
- import { a as __exportAll } from "./runner-BE1taNgj.mjs";
2
- import { a as getSiteSettingsWithDb, s as setSiteSettings } from "./settings-Cs-ST1tU.mjs";
1
+ import { a as __exportAll } from "./runner-BWZ87FK-.mjs";
2
+ import { a as getSiteSettingsWithDb, s as setSiteSettings } from "./settings-D-a7uy2z.mjs";
3
3
 
4
4
  //#region src/api/handlers/settings.ts
5
5
  var settings_exports = /* @__PURE__ */ __exportAll({
@@ -1,8 +1,8 @@
1
1
  import { getRequestContext } from "./request-context.mjs";
2
- import { r as getDb } from "./loader-CqKPLiKx.mjs";
2
+ import { r as getDb } from "./loader-BCr2VSzt.mjs";
3
3
  import { t as after } from "./after-BfniwgIf.mjs";
4
4
  import { l as invalidateObjectCache, n as cachedQuery, t as CacheNamespace } from "./object-cache-D51qOseS.mjs";
5
- import { t as MediaRepository } from "./media-BXbOL8xv.mjs";
5
+ import { t as MediaRepository } from "./media-D8pQJSug.mjs";
6
6
  import { t as OptionsRepository } from "./options-DQPTH5n0.mjs";
7
7
  import { n as peekRequestCache, r as requestCached } from "./request-cache-CBFjCwSt.mjs";
8
8
  import { n as invalidateProcessCache, r as processCachedAsync, t as createProcessCache } from "./process-cache-CCDgti7j.mjs";
@@ -1,4 +1,4 @@
1
- import { i as encodeCursor, r as decodeCursor } from "./types-al8YMHdF.mjs";
1
+ import { i as encodeCursor, r as decodeCursor } from "./types-C9F2TLQV.mjs";
2
2
  import { ulid } from "ulidx";
3
3
 
4
4
  //#region src/database/repositories/site-activity.ts