dineway 0.1.17 → 0.1.18

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 (241) hide show
  1. package/dist/api/route-utils.d.mts +2 -2
  2. package/dist/api/route-utils.mjs +4 -4
  3. package/dist/api/schemas/index.d.mts +2 -2
  4. package/dist/api/schemas/index.mjs +4 -4
  5. package/dist/{api-CgxdfUg4.mjs → api-KH2L2uKb.mjs} +11 -11
  6. package/dist/{apply-CGVHi2r7.mjs → apply-Wyg77UOb.mjs} +13 -13
  7. package/dist/astro/index.d.mts +2 -2
  8. package/dist/astro/index.mjs +6 -2
  9. package/dist/astro/middleware/auth.d.mts +2 -2
  10. package/dist/astro/middleware/auth.mjs +1 -1
  11. package/dist/astro/middleware/redirect.mjs +3 -3
  12. package/dist/astro/middleware/request-context.mjs +1 -1
  13. package/dist/astro/middleware/setup.mjs +1 -1
  14. package/dist/astro/middleware.mjs +47 -47
  15. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +3 -3
  16. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +3 -3
  17. package/dist/astro/routes/api/admin/api-tokens/index.mjs +1 -1
  18. package/dist/astro/routes/api/admin/briefing.mjs +10 -10
  19. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +6 -6
  20. package/dist/astro/routes/api/admin/bylines/index.mjs +6 -6
  21. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +3 -3
  22. package/dist/astro/routes/api/admin/comments/bulk.mjs +3 -3
  23. package/dist/astro/routes/api/admin/comments/index.mjs +3 -3
  24. package/dist/astro/routes/api/admin/context/_id_/history.mjs +13 -13
  25. package/dist/astro/routes/api/admin/context/_id_/index.mjs +13 -13
  26. package/dist/astro/routes/api/admin/context/_id_/review.mjs +15 -15
  27. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +15 -15
  28. package/dist/astro/routes/api/admin/context/diff.mjs +15 -15
  29. package/dist/astro/routes/api/admin/context/index.mjs +15 -15
  30. package/dist/astro/routes/api/admin/context/stale.mjs +15 -15
  31. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +14 -14
  32. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +16 -16
  33. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +16 -16
  34. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +13 -13
  35. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +2 -2
  36. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +2 -2
  37. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +29 -29
  38. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +29 -29
  39. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +26 -26
  40. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +29 -29
  41. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +29 -29
  42. package/dist/astro/routes/api/admin/plugins/index.mjs +26 -26
  43. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +26 -26
  44. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +29 -29
  45. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +26 -26
  46. package/dist/astro/routes/api/admin/plugins/updates.mjs +26 -26
  47. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +1 -1
  48. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +15 -15
  49. package/dist/astro/routes/api/admin/review-requests/index.mjs +4 -4
  50. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +26 -26
  51. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +26 -26
  52. package/dist/astro/routes/api/admin/users/_id_/index.mjs +3 -3
  53. package/dist/astro/routes/api/admin/users/index.mjs +3 -3
  54. package/dist/astro/routes/api/auth/invite/complete.mjs +5 -5
  55. package/dist/astro/routes/api/auth/invite/index.mjs +3 -3
  56. package/dist/astro/routes/api/auth/invite/register-options.mjs +4 -4
  57. package/dist/astro/routes/api/auth/magic-link/send.mjs +3 -3
  58. package/dist/astro/routes/api/auth/me.mjs +3 -3
  59. package/dist/astro/routes/api/auth/mode.mjs +1 -1
  60. package/dist/astro/routes/api/auth/passkey/_id_.mjs +3 -3
  61. package/dist/astro/routes/api/auth/passkey/options.mjs +4 -4
  62. package/dist/astro/routes/api/auth/passkey/register/options.mjs +4 -4
  63. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +5 -5
  64. package/dist/astro/routes/api/auth/passkey/verify.mjs +5 -5
  65. package/dist/astro/routes/api/auth/signup/complete.mjs +5 -5
  66. package/dist/astro/routes/api/auth/signup/request.mjs +3 -3
  67. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +4 -4
  68. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +1 -1
  69. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +1 -1
  70. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +1 -1
  71. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +4 -4
  72. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +15 -15
  73. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +1 -1
  74. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +5 -5
  75. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +7 -7
  76. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +1 -1
  77. package/dist/astro/routes/api/content/_collection_/_id_.mjs +5 -5
  78. package/dist/astro/routes/api/content/_collection_/index.mjs +4 -4
  79. package/dist/astro/routes/api/content/_collection_/trash.mjs +3 -3
  80. package/dist/astro/routes/api/dashboard.mjs +1 -1
  81. package/dist/astro/routes/api/health.mjs +1 -1
  82. package/dist/astro/routes/api/import/probe.mjs +5 -5
  83. package/dist/astro/routes/api/import/wordpress/analyze.mjs +1 -1
  84. package/dist/astro/routes/api/import/wordpress/execute.mjs +15 -15
  85. package/dist/astro/routes/api/import/wordpress/media.mjs +4 -4
  86. package/dist/astro/routes/api/import/wordpress/prepare.mjs +19 -19
  87. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +17 -17
  88. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +5 -5
  89. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +18 -18
  90. package/dist/astro/routes/api/manifest.mjs +3 -3
  91. package/dist/astro/routes/api/mcp.mjs +38 -38
  92. package/dist/astro/routes/api/media/_id_/confirm.mjs +3 -3
  93. package/dist/astro/routes/api/media/_id_.mjs +3 -3
  94. package/dist/astro/routes/api/media/upload-url.mjs +5 -5
  95. package/dist/astro/routes/api/media.mjs +7 -7
  96. package/dist/astro/routes/api/menus/_name_/items/_id_.d.mts +8 -0
  97. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +127 -0
  98. package/dist/astro/routes/api/menus/_name_/items.d.mts +1 -3
  99. package/dist/astro/routes/api/menus/_name_/items.mjs +17 -108
  100. package/dist/astro/routes/api/menus/_name_/reorder.mjs +16 -16
  101. package/dist/astro/routes/api/menus/_name_/translations.mjs +16 -16
  102. package/dist/astro/routes/api/menus/_name_.mjs +16 -16
  103. package/dist/astro/routes/api/menus/index.mjs +16 -16
  104. package/dist/astro/routes/api/oauth/authorize.mjs +3 -3
  105. package/dist/astro/routes/api/oauth/device/authorize.mjs +2 -2
  106. package/dist/astro/routes/api/oauth/device/code.mjs +2 -2
  107. package/dist/astro/routes/api/oauth/device/token.mjs +2 -2
  108. package/dist/astro/routes/api/oauth/register.mjs +2 -2
  109. package/dist/astro/routes/api/oauth/token/refresh.mjs +2 -2
  110. package/dist/astro/routes/api/oauth/token/revoke.mjs +2 -2
  111. package/dist/astro/routes/api/oauth/token.mjs +3 -3
  112. package/dist/astro/routes/api/openapi.json.mjs +26 -26
  113. package/dist/astro/routes/api/redirects/404s/index.mjs +5 -5
  114. package/dist/astro/routes/api/redirects/404s/summary.mjs +5 -5
  115. package/dist/astro/routes/api/redirects/_id_.mjs +17 -17
  116. package/dist/astro/routes/api/redirects/index.mjs +17 -17
  117. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +26 -26
  118. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +26 -26
  119. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +26 -26
  120. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +26 -26
  121. package/dist/astro/routes/api/schema/collections/index.mjs +26 -26
  122. package/dist/astro/routes/api/schema/index.mjs +3 -3
  123. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +26 -26
  124. package/dist/astro/routes/api/schema/orphans/index.mjs +26 -26
  125. package/dist/astro/routes/api/search/enable.mjs +6 -6
  126. package/dist/astro/routes/api/search/index.mjs +6 -6
  127. package/dist/astro/routes/api/search/rebuild.mjs +6 -6
  128. package/dist/astro/routes/api/search/stats.mjs +3 -3
  129. package/dist/astro/routes/api/search/suggest.mjs +6 -6
  130. package/dist/astro/routes/api/sections/_slug_.mjs +16 -16
  131. package/dist/astro/routes/api/sections/index.mjs +16 -16
  132. package/dist/astro/routes/api/settings.mjs +16 -16
  133. package/dist/astro/routes/api/setup/admin-verify.mjs +6 -6
  134. package/dist/astro/routes/api/setup/admin.mjs +4 -4
  135. package/dist/astro/routes/api/setup/dev-bypass.mjs +11 -11
  136. package/dist/astro/routes/api/setup/index.mjs +15 -15
  137. package/dist/astro/routes/api/setup/status.mjs +1 -1
  138. package/dist/astro/routes/api/snapshot.mjs +1 -1
  139. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +18 -18
  140. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +18 -18
  141. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +18 -18
  142. package/dist/astro/routes/api/taxonomies/index.mjs +18 -18
  143. package/dist/astro/routes/api/themes/preview.mjs +1 -1
  144. package/dist/astro/routes/api/typegen.mjs +3 -3
  145. package/dist/astro/routes/api/well-known/auth.mjs +2 -2
  146. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +1 -1
  147. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +1 -1
  148. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +15 -15
  149. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +16 -16
  150. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +16 -16
  151. package/dist/astro/routes/api/widget-areas/_name_.mjs +14 -14
  152. package/dist/astro/routes/api/widget-areas/index.mjs +16 -16
  153. package/dist/astro/routes/robots.txt.mjs +3 -3
  154. package/dist/astro/routes/sitemap-_collection_.xml.mjs +4 -4
  155. package/dist/astro/routes/sitemap.xml.mjs +4 -4
  156. package/dist/astro/types.d.mts +2 -2
  157. package/dist/{briefing-4k6R0KAr.mjs → briefing-Dk4I4VC8.mjs} +3 -3
  158. package/dist/{briefing-DM7e2yd3.mjs → briefing-PFT3T6KW.mjs} +1 -1
  159. package/dist/{byline-BxAf79s1.mjs → byline-9WeA8b0a.mjs} +1 -1
  160. package/dist/{bylines-DhCnhR70.mjs → bylines-B6QpwVAr.mjs} +2 -2
  161. package/dist/{bylines--KurdDQK.d.mts → bylines-BK9FyU4A.d.mts} +89 -78
  162. package/dist/{cache-inQvbrP5.mjs → cache-BhJYDPP8.mjs} +1 -1
  163. package/dist/cli/index.mjs +13 -13
  164. package/dist/client/external-auth-headers.d.mts +1 -1
  165. package/dist/client/index.d.mts +1 -1
  166. package/dist/{context-CGbVhAmd.mjs → context-93X6MFTb.mjs} +2 -2
  167. package/dist/{context-CT44ux1O.mjs → context-DRq-f4sM.mjs} +2 -2
  168. package/dist/{device-flow-DaTBhALC.mjs → device-flow-urJvDoBx.mjs} +2 -2
  169. package/dist/{hitl-requests-CUnch_4e.mjs → hitl-requests-DBcruTcs.mjs} +2 -2
  170. package/dist/{hitl-route-helpers-DcUCm57p.mjs → hitl-route-helpers-Dwo_LjhN.mjs} +2 -2
  171. package/dist/{import-BVqG28WP.mjs → import-B8lnqfnN.mjs} +1 -1
  172. package/dist/{import-DE2ziezs.mjs → import-BO_gy5vZ.mjs} +2 -2
  173. package/dist/index.d.mts +2 -2
  174. package/dist/index.mjs +41 -41
  175. package/dist/{jsonld-BjsoTL5m.d.mts → jsonld-CvXmIBls.d.mts} +2 -2
  176. package/dist/media/index.mjs +2 -2
  177. package/dist/media/local-runtime.d.mts +2 -2
  178. package/dist/{media-allowlist-eS3AZ2L_.mjs → media-allowlist-vdlqBR-8.mjs} +1 -1
  179. package/dist/{menus-BDW1yIdj.mjs → menus-BTOa-tsI.mjs} +3 -3
  180. package/dist/menus-DXaFTRyU.mjs +720 -0
  181. package/dist/{oauth-authorization-DcYRiDfi.mjs → oauth-authorization-BZSOekHq.mjs} +2 -2
  182. package/dist/{oauth-clients-CgKFA-VH.mjs → oauth-clients-CqAi-6Y4.mjs} +1 -1
  183. package/dist/page/index.d.mts +1 -1
  184. package/dist/page/index.mjs +1 -1
  185. package/dist/plugins/adapt-sandbox-entry.d.mts +2 -2
  186. package/dist/{plugins-DKceDtUM.mjs → plugins-CxUx-b5a.mjs} +1 -1
  187. package/dist/{query-BtuwuZRd.mjs → query-CH1GaJmt.mjs} +3 -3
  188. package/dist/{query-CWPxZjGM.mjs → query-TQqoOaxy.mjs} +7 -7
  189. package/dist/{redirect-BHo9--Jz.mjs → redirect-hKO66LS_.mjs} +1 -1
  190. package/dist/{redirects-xVDvj_yQ.mjs → redirects-BO0fI750.mjs} +30 -22
  191. package/dist/{redirects-Bc40BgxA.mjs → redirects-CvIzUvek.mjs} +3 -3
  192. package/dist/{registry-DumDzFDn.mjs → registry-CYO6XQ-4.mjs} +3 -3
  193. package/dist/{runtime-B5hJAnKF.d.mts → runtime-DY_XmE9Y.d.mts} +2 -2
  194. package/dist/runtime.d.mts +3 -3
  195. package/dist/runtime.mjs +1 -1
  196. package/dist/{schema-D1z41cq_.mjs → schema-mjeMcn_6.mjs} +1 -1
  197. package/dist/{search-CPcQGTHW.mjs → search-vzCYAk0F.mjs} +2 -2
  198. package/dist/{sections-B9RYyf3I.mjs → sections-DA3GMhNG.mjs} +1 -1
  199. package/dist/seed/index.mjs +11 -11
  200. package/dist/{seo-BPz1KkCq.mjs → seo-DASNc4gD.mjs} +1 -1
  201. package/dist/{seo-contributions-CQzUjJKY.mjs → seo-contributions-BG4TtU7H.mjs} +5 -5
  202. package/dist/{settings-BGCo_c2y.mjs → settings-BJW_lmrM.mjs} +1 -1
  203. package/dist/{settings-qPzY2KIF.mjs → settings-D2k1JraC.mjs} +13 -2
  204. package/dist/{site-context-DHRIU6x9.mjs → site-context-Rwm9auhW.mjs} +8 -8
  205. package/dist/{ssrf-BOSGjXxb.mjs → ssrf-z3oH8wjK.mjs} +4 -4
  206. package/dist/{taxonomies-aQXvYVPm.mjs → taxonomies-CagluJHp.mjs} +2 -2
  207. package/dist/{taxonomies-BWmxbumf.mjs → taxonomies-DPNIwTGk.mjs} +4 -4
  208. package/dist/{taxonomy-DI-0HgKe.mjs → taxonomy-DpXdVSSR.mjs} +1 -1
  209. package/dist/ui/server-runtime.d.mts +2 -2
  210. package/dist/ui/server-runtime.mjs +11 -11
  211. package/dist/{validate-B8ZvLeOE.mjs → validate-CaKEnLed.mjs} +1 -1
  212. package/dist/version-qhU-AiPQ.mjs +6 -0
  213. package/dist/{widgets-Cce2-2fM.mjs → widgets-D7UK-2hW.mjs} +1 -1
  214. package/dist/{wordpress-slugs-C4EhE6fo.mjs → wordpress-slugs-Bnf3-sf8.mjs} +1 -1
  215. package/dist/{zod-generator-BKhtHT3e.mjs → zod-generator-vOxhed6n.mjs} +1 -1
  216. package/package.json +7 -6
  217. package/src/components/DinewayHead.astro +11 -3
  218. package/dist/menus-CwI7DQJ5.mjs +0 -569
  219. package/dist/version-CjsyxeBD.mjs +0 -6
  220. /package/dist/{allowed-origins-D85wzUp6.mjs → allowed-origins-46RONHY3.mjs} +0 -0
  221. /package/dist/{challenge-store-anhwVER0.mjs → challenge-store-B9odzfeh.mjs} +0 -0
  222. /package/dist/{chunks-vkrCT4Ta.mjs → chunks-BjOMG4LF.mjs} +0 -0
  223. /package/dist/{context-types-DuiyY6xF.mjs → context-types-BWspNMDr.mjs} +0 -0
  224. /package/dist/{dashboard-6gH7SlPM.mjs → dashboard-DdqRifyu.mjs} +0 -0
  225. /package/dist/{experimental-workflows-CSRjuEwS.mjs → experimental-workflows-C7o_9V7S.mjs} +0 -0
  226. /package/dist/{fts-manager-D7KVeBmg.mjs → fts-manager-DYRy6HVi.mjs} +0 -0
  227. /package/dist/{hash-V8oZo1W2.mjs → hash-DHSsP6_G.mjs} +0 -0
  228. /package/dist/{loader-CQFxFOt1.mjs → loader-dt5DoyI1.mjs} +0 -0
  229. /package/dist/{mime-DJOFDGux.mjs → mime-DltzYYAL.mjs} +0 -0
  230. /package/dist/{mode-DWw2di1I.mjs → mode-BI1kRvlT.mjs} +0 -0
  231. /package/dist/{normalize-9GU-bv_T.mjs → normalize-ba36HTxZ.mjs} +0 -0
  232. /package/dist/{patterns-CW4n2PQs.mjs → patterns-BKmjvM7K.mjs} +0 -0
  233. /package/dist/{placeholder-BJPmhjHP.mjs → placeholder-BAy3k441.mjs} +0 -0
  234. /package/dist/{provider-loader-D0F6E2qv.d.mts → provider-loader-BPhii_3H.d.mts} +0 -0
  235. /package/dist/{request-cache-DmVyQUBh.mjs → request-cache-BzuhyUXj.mjs} +0 -0
  236. /package/dist/{review-requests-vCw7_3DS.mjs → review-requests-CO-vO0O0.mjs} +0 -0
  237. /package/dist/{secrets-AFKoqUXj.mjs → secrets-BIrqds5c.mjs} +0 -0
  238. /package/dist/{seo-DJoop90w.mjs → seo-Dl4QE4El.mjs} +0 -0
  239. /package/dist/{setup-complete-4EiBS1E5.mjs → setup-complete-DzOSuHUM.mjs} +0 -0
  240. /package/dist/{transport-CyOHECBA.d.mts → transport-DA3H3xB4.d.mts} +0 -0
  241. /package/dist/{types-Dz2EKzsX.mjs → types-zfg8SDVI.mjs} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { t as withTransaction } from "./transaction-qfqpPVpu.mjs";
2
- import { a as filterExperimentalSiteContextWorkflowScopes, i as experimentalSiteContextWorkflowsEnabled, o as getExperimentalSiteContextWorkflowScopesDisabledMessage, r as disabledExperimentalSiteContextWorkflowScopes } from "./experimental-workflows-CSRjuEwS.mjs";
2
+ import { a as filterExperimentalSiteContextWorkflowScopes, i as experimentalSiteContextWorkflowsEnabled, o as getExperimentalSiteContextWorkflowScopesDisabledMessage, r as disabledExperimentalSiteContextWorkflowScopes } from "./experimental-workflows-C7o_9V7S.mjs";
3
3
  import { a as hashApiToken, n as TOKEN_PREFIXES, r as generatePrefixedToken, t as ALL_VALID_SCOPES } from "./api-tokens-B7fvbHM2.mjs";
4
- import { c as validateRedirectUri, o as lookupOAuthClient, s as validateClientRedirectUri } from "./oauth-clients-CgKFA-VH.mjs";
4
+ import { c as validateRedirectUri, o as lookupOAuthClient, s as validateClientRedirectUri } from "./oauth-clients-CqAi-6Y4.mjs";
5
5
  import { t as lookupUserRoleAndStatus } from "./oauth-user-lookup-nyXQ2_6Q.mjs";
6
6
  import { clampScopes, computeS256Challenge, secureCompare } from "@dineway-ai/auth";
7
7
  import { generateCodeVerifier } from "arctic";
@@ -1,4 +1,4 @@
1
- import { o as getExperimentalSiteContextWorkflowScopesDisabledMessage, r as disabledExperimentalSiteContextWorkflowScopes } from "./experimental-workflows-CSRjuEwS.mjs";
1
+ import { o as getExperimentalSiteContextWorkflowScopesDisabledMessage, r as disabledExperimentalSiteContextWorkflowScopes } from "./experimental-workflows-C7o_9V7S.mjs";
2
2
  import { o as validateScopes } from "./api-tokens-B7fvbHM2.mjs";
3
3
 
4
4
  //#region src/api/oauth/redirect-uri.ts
@@ -1,5 +1,5 @@
1
1
  import { A as PageMetadataContribution, D as PageFragmentContribution, q as PublicPageContext } from "../types-DS5PYew4.mjs";
2
- import { a as generateSiteSeoContributions, c as ResolvedPageMetadata, d as resolvePageMetadata, f as safeJsonLdSerialize, i as generateBaseSeoContributions, l as escapeHtmlAttr, m as createPublicPageContext, n as buildWebSiteJsonLd, o as renderFragments, p as CreatePublicPageContextInput, r as cleanJsonLd, s as resolveFragments, t as buildBlogPostingJsonLd, u as renderPageMetadata } from "../jsonld-BjsoTL5m.mjs";
2
+ import { a as generateSiteSeoContributions, c as ResolvedPageMetadata, d as resolvePageMetadata, f as safeJsonLdSerialize, i as generateBaseSeoContributions, l as escapeHtmlAttr, m as createPublicPageContext, n as buildWebSiteJsonLd, o as renderFragments, p as CreatePublicPageContextInput, r as cleanJsonLd, s as resolveFragments, t as buildBlogPostingJsonLd, u as renderPageMetadata } from "../jsonld-CvXmIBls.mjs";
3
3
 
4
4
  //#region src/page/index.d.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { a as cleanJsonLd, c as escapeHtmlAttr, d as safeJsonLdSerialize, f as createPublicPageContext, i as buildWebSiteJsonLd, l as renderPageMetadata, n as generateSiteSeoContributions, o as renderFragments, r as buildBlogPostingJsonLd, s as resolveFragments, t as generateBaseSeoContributions, u as resolvePageMetadata } from "../seo-contributions-CQzUjJKY.mjs";
1
+ import { a as cleanJsonLd, c as escapeHtmlAttr, d as safeJsonLdSerialize, f as createPublicPageContext, i as buildWebSiteJsonLd, l as renderPageMetadata, n as generateSiteSeoContributions, o as renderFragments, r as buildBlogPostingJsonLd, s as resolveFragments, t as generateBaseSeoContributions, u as resolvePageMetadata } from "../seo-contributions-BG4TtU7H.mjs";
2
2
 
3
3
  //#region src/page/index.ts
4
4
  /**
@@ -1,11 +1,11 @@
1
- import { n as PluginDescriptor } from "../runtime-B5hJAnKF.mjs";
1
+ import { n as PluginDescriptor } from "../runtime-DY_XmE9Y.mjs";
2
2
  import "../types-CYBaBvtm.mjs";
3
3
  import { X as ResolvedPlugin, tt as StandardPluginDefinition } from "../types-DS5PYew4.mjs";
4
4
  import "../types-B45uSz1j.mjs";
5
5
  import "../runner-CHR_W79l.mjs";
6
6
  import "../index-JzJUzE4o.mjs";
7
7
  import "../index-DpMWSamU.mjs";
8
- import "../bylines--KurdDQK.mjs";
8
+ import "../bylines-BK9FyU4A.mjs";
9
9
  import "../types-BeYn-Yf0.mjs";
10
10
  import "../validate-BQ24E8rK.mjs";
11
11
 
@@ -1,5 +1,5 @@
1
1
  import { t as OptionsRepository } from "./options-BF11H_FD.mjs";
2
- import { n as createPluginContext, t as PluginContextFactory } from "./context-CT44ux1O.mjs";
2
+ import { n as createPluginContext, t as PluginContextFactory } from "./context-DRq-f4sM.mjs";
3
3
  import { t as extractRequestMeta } from "./request-meta-BVx9KkL-.mjs";
4
4
  import { r as setCronTasksEnabled } from "./cron-fV9baRVc.mjs";
5
5
  import { sql } from "kysely";
@@ -1,6 +1,6 @@
1
- import { n as requestCached } from "./request-cache-DmVyQUBh.mjs";
2
- import { n as SchemaRegistry } from "./registry-DumDzFDn.mjs";
3
- import { r as getDb } from "./loader-CQFxFOt1.mjs";
1
+ import { n as requestCached } from "./request-cache-BzuhyUXj.mjs";
2
+ import { n as SchemaRegistry } from "./registry-CYO6XQ-4.mjs";
3
+ import { r as getDb } from "./loader-dt5DoyI1.mjs";
4
4
 
5
5
  //#region src/schema/query.ts
6
6
  /**
@@ -2,8 +2,8 @@ import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
2
2
  import { getRequestContext } from "./request-context.mjs";
3
3
  import { n as getI18nConfig, r as isI18nEnabled, t as getFallbackChain } from "./config-XW5tMrH8.mjs";
4
4
  import { r as encodeCursor } from "./types-D1DjBFA9.mjs";
5
- import { n as requestCached } from "./request-cache-DmVyQUBh.mjs";
6
- import { t as CURSOR_RAW_VALUES } from "./loader-CQFxFOt1.mjs";
5
+ import { n as requestCached } from "./request-cache-BzuhyUXj.mjs";
6
+ import { t as CURSOR_RAW_VALUES } from "./loader-dt5DoyI1.mjs";
7
7
  import { t as isMissingTableError } from "./db-errors-BnUbfGsK.mjs";
8
8
 
9
9
  //#region src/visual-editing/editable.ts
@@ -436,7 +436,7 @@ async function getDinewayEntry(type, id, options) {
436
436
  async function hydrateEntryBylines(type, entries) {
437
437
  if (entries.length === 0) return;
438
438
  try {
439
- const { getBylinesForEntries } = await import("./bylines-DhCnhR70.mjs").then((n) => n.t);
439
+ const { getBylinesForEntries } = await import("./bylines-B6QpwVAr.mjs").then((n) => n.t);
440
440
  const refs = entries.map((entry) => {
441
441
  const data = entryData(entry);
442
442
  const id = dataStr(data, "id");
@@ -465,7 +465,7 @@ async function hydrateEntryBylines(type, entries) {
465
465
  async function hydrateEntryTerms(type, entries) {
466
466
  if (entries.length === 0) return;
467
467
  try {
468
- const { getAllTermsForEntries } = await import("./taxonomies-BWmxbumf.mjs").then((n) => n.l);
468
+ const { getAllTermsForEntries } = await import("./taxonomies-DPNIwTGk.mjs").then((n) => n.l);
469
469
  const ids = entries.map((entry) => dataStr(entryData(entry), "id")).filter(Boolean);
470
470
  if (ids.length === 0) return;
471
471
  const termsMap = await getAllTermsForEntries(type, ids);
@@ -499,7 +499,7 @@ async function hydrateEntryTerms(type, entries) {
499
499
  */
500
500
  async function getTranslations(type, id) {
501
501
  try {
502
- const db = (await import("./loader-CQFxFOt1.mjs").then((n) => n.i)).getDb;
502
+ const db = (await import("./loader-dt5DoyI1.mjs").then((n) => n.i)).getDb;
503
503
  const dbInstance = await db();
504
504
  const { ContentRepository } = await import("./content-DvpMad_N.mjs").then((n) => n.n);
505
505
  const repo = new ContentRepository(dbInstance);
@@ -568,8 +568,8 @@ async function resolveDinewayPath(path) {
568
568
  const hasDbOverride = !!getRequestContext()?.db;
569
569
  let patterns = !hasDbOverride ? cachedUrlPatterns : null;
570
570
  if (!patterns) {
571
- const { getDb } = await import("./loader-CQFxFOt1.mjs").then((n) => n.i);
572
- const { SchemaRegistry } = await import("./registry-DumDzFDn.mjs").then((n) => n.r);
571
+ const { getDb } = await import("./loader-dt5DoyI1.mjs").then((n) => n.i);
572
+ const { SchemaRegistry } = await import("./registry-CYO6XQ-4.mjs").then((n) => n.r);
573
573
  patterns = (await new SchemaRegistry(await getDb()).listCollections()).filter((collection) => collection.urlPattern).map((collection) => {
574
574
  const { regex, paramNames } = patternToRegex(collection.urlPattern);
575
575
  return {
@@ -1,6 +1,6 @@
1
1
  import { i as currentTimestampValue } from "./dialect-helpers-TkdbkFad.mjs";
2
2
  import { n as decodeCursor, r as encodeCursor } from "./types-D1DjBFA9.mjs";
3
- import { i as matchPattern, n as interpolateDestination, r as isPattern, t as compilePattern } from "./patterns-CW4n2PQs.mjs";
3
+ import { i as matchPattern, n as interpolateDestination, r as isPattern, t as compilePattern } from "./patterns-BKmjvM7K.mjs";
4
4
  import { sql } from "kysely";
5
5
  import { ulid } from "ulidx";
6
6
 
@@ -579,17 +579,27 @@ const commentBulkResponseSchema = z.object({ affected: z.number().int() }).meta(
579
579
 
580
580
  //#endregion
581
581
  //#region src/api/schemas/menus.ts
582
- const menuItemType = z.string().min(1);
582
+ /**
583
+ * Allowed menu item types. `custom` uses `customUrl`; the others resolve a URL
584
+ * from `referenceCollection` + `referenceId` (a translation_group id).
585
+ */
586
+ const menuItemTypeEnum = z.enum([
587
+ "custom",
588
+ "page",
589
+ "post",
590
+ "taxonomy",
591
+ "collection"
592
+ ]);
583
593
  const safeHref = z.string().trim().refine(isSafeHref, "URL must use http, https, mailto, tel, a relative path, or a fragment identifier");
584
594
  const createMenuBody = z.object({
585
595
  name: z.string().min(1),
586
596
  label: z.string().min(1),
587
597
  locale: z.string().min(1).optional(),
588
598
  translationOf: z.string().min(1).optional()
589
- }).meta({ id: "CreateMenuBody" });
590
- const updateMenuBody = z.object({ label: z.string().min(1).optional() }).meta({ id: "UpdateMenuBody" });
599
+ }).strict().meta({ id: "CreateMenuBody" });
600
+ const updateMenuBody = z.object({ label: z.string().min(1).optional() }).strict().meta({ id: "UpdateMenuBody" });
591
601
  const createMenuItemBody = z.object({
592
- type: menuItemType,
602
+ type: menuItemTypeEnum,
593
603
  label: z.string().min(1),
594
604
  referenceCollection: z.string().optional(),
595
605
  referenceId: z.string().optional(),
@@ -599,7 +609,7 @@ const createMenuItemBody = z.object({
599
609
  cssClasses: z.string().optional(),
600
610
  parentId: z.string().optional(),
601
611
  sortOrder: z.number().int().min(0).optional()
602
- }).meta({ id: "CreateMenuItemBody" });
612
+ }).strict().meta({ id: "CreateMenuItemBody" });
603
613
  const updateMenuItemBody = z.object({
604
614
  label: z.string().min(1).optional(),
605
615
  customUrl: safeHref.optional(),
@@ -608,9 +618,7 @@ const updateMenuItemBody = z.object({
608
618
  cssClasses: z.string().optional(),
609
619
  parentId: z.string().nullish(),
610
620
  sortOrder: z.number().int().min(0).optional()
611
- }).meta({ id: "UpdateMenuItemBody" });
612
- const menuItemDeleteQuery = z.object({ id: z.string().min(1) });
613
- const menuItemUpdateQuery = z.object({ id: z.string().min(1) });
621
+ }).strict().meta({ id: "UpdateMenuItemBody" });
614
622
  const reorderMenuItemsBody = z.object({ items: z.array(z.object({
615
623
  id: z.string().min(1),
616
624
  parentId: z.string().nullable(),
@@ -620,27 +628,27 @@ const menuSchema = z.object({
620
628
  id: z.string(),
621
629
  name: z.string(),
622
630
  label: z.string(),
623
- created_at: z.string(),
624
- updated_at: z.string(),
631
+ createdAt: z.string(),
632
+ updatedAt: z.string(),
625
633
  locale: z.string(),
626
- translation_group: z.string().nullable()
634
+ translationGroup: z.string().nullable()
627
635
  }).meta({ id: "Menu" });
628
636
  const menuItemSchema = z.object({
629
637
  id: z.string(),
630
- menu_id: z.string(),
631
- parent_id: z.string().nullable(),
632
- sort_order: z.number().int(),
638
+ menuId: z.string(),
639
+ parentId: z.string().nullable(),
640
+ sortOrder: z.number().int(),
633
641
  type: z.string(),
634
- reference_collection: z.string().nullable(),
635
- reference_id: z.string().nullable(),
636
- custom_url: z.string().nullable(),
642
+ referenceCollection: z.string().nullable(),
643
+ referenceId: z.string().nullable(),
644
+ customUrl: z.string().nullable(),
637
645
  label: z.string(),
638
- title_attr: z.string().nullable(),
646
+ titleAttr: z.string().nullable(),
639
647
  target: z.string().nullable(),
640
- css_classes: z.string().nullable(),
641
- created_at: z.string(),
648
+ cssClasses: z.string().nullable(),
649
+ createdAt: z.string(),
642
650
  locale: z.string(),
643
- translation_group: z.string().nullable()
651
+ translationGroup: z.string().nullable()
644
652
  }).meta({ id: "MenuItem" });
645
653
  const menuTranslationsSchema = z.object({
646
654
  translationGroup: z.string().nullable(),
@@ -1073,4 +1081,4 @@ const notFoundSummarySchema = z.object({
1073
1081
  const notFoundSummaryResponseSchema = z.object({ items: z.array(notFoundSummarySchema) }).meta({ id: "NotFoundSummaryResponse" });
1074
1082
 
1075
1083
  //#endregion
1076
- export { createMenuBody as $, contentItemSchema as $t, searchRebuildBody as A, offsetPaginationQuery as An, fieldResponseSchema as At, updateSectionBody as B, mediaConfirmBody as Bt, userDetailSchema as C, apiErrorSchema as Cn, collectionResponseSchema as Ct, usersListQuery as D, httpUrl as Dn, createFieldBody as Dt, userUpdateBody as E, deleteResponseSchema as En, createCollectionBody as Et, siteSettingsSchema as F, schemaExportQuery as Ft, taxonomyListResponseSchema as G, mediaListResponseSchema as Gt, createTermBody as H, mediaExistingResponseSchema as Ht, createSectionBody as I, updateCollectionBody as It, termResponseSchema as J, mediaUpdateBody as Jt, termGetResponseSchema as K, mediaProviderListQuery as Kt, sectionListResponseSchema as L, updateFieldBody as Lt, searchResultSchema as M, slugPattern as Mn, orphanRegisterBody as Mt, searchSuggestQuery as N, successEnvelope as Nn, orphanedTableListResponseSchema as Nt, searchEnableBody as O, localeCode as On, fieldListResponseSchema as Ot, settingsUpdateBody as P, orphanedTableSchema as Pt, updateTermBody as Q, contentCreateBody as Qt, sectionSchema as R, DEFAULT_MAX_UPLOAD_SIZE as Rt, allowedDomainUpdateBody as S, VALID_ROLE_LEVELS as Sn, collectionListResponseSchema as St, userSchema as T, cursorPaginationQuery as Tn, collectionWithFieldsResponseSchema as Tt, taxonomyDefSchema as U, mediaItemSchema as Ut, createTaxonomyDefBody as V, mediaConfirmResponseSchema as Vt, taxonomyDefTranslationsSchema as W, mediaListQuery as Wt, termTranslationsSchema as X, mediaUploadUrlResponseSchema as Xt, termSchema as Y, mediaUploadUrlBody as Yt, termWithCountSchema as Z, contentCompareResponseSchema as Zt, widgetAreaSchema as _, bylineListResponseSchema as _n, commentStatusBody as _t, notFoundPruneBody as a, contentScheduleBody as an, menuSchema as at, widgetSchema as b, bylinesListQuery as bn, publicCommentSchema as bt, notFoundSummarySchema as c, contentTermsBody as cn, reorderMenuItemsBody as ct, redirectsListQuery as d, contentTrashQuery as dn, adminCommentListResponseSchema as dt, contentListQuery as en, createMenuItemBody as et, updateRedirectBody as f, contentUpdateBody as fn, commentBulkBody as ft, updateWidgetBody as g, bylineCreditSchema as gn, commentSchema as gt, reorderWidgetsBody as h, bylineCreateBody as hn, commentListQuery as ht, notFoundListResponseSchema as i, contentResponseSchema as in, menuListItemSchema as it, searchResponseSchema as j, roleLevel as jn, fieldSchema as jt, searchQuery as k, localeFilterQuery as kn, fieldReorderBody as kt, redirectListResponseSchema as l, contentTranslationSchema as ln, updateMenuBody as lt, createWidgetBody as m, trashedContentListResponseSchema as mn, commentCountsResponseSchema as mt, notFoundEntrySchema as n, contentPreviewUrlBody as nn, menuItemSchema as nt, notFoundSummaryQuery as o, contentSeoInput as on, menuTranslationsSchema as ot, createWidgetAreaBody as p, trashedContentItemSchema as pn, commentBulkResponseSchema as pt, termListResponseSchema as q, mediaResponseSchema as qt, notFoundListQuery as r, contentPublishBody as rn, menuItemUpdateQuery as rt, notFoundSummaryResponseSchema as s, contentSeoSchema as sn, menuWithItemsSchema as st, createRedirectBody as t, contentListResponseSchema as tn, menuItemDeleteQuery as tt, redirectSchema as u, contentTranslationsResponseSchema as un, updateMenuItemBody as ut, widgetAreaWithWidgetsAndCountSchema as v, bylineSummarySchema as vn, createCommentBody as vt, userListResponseSchema as w, countResponseSchema as wn, collectionSchema as wt, allowedDomainCreateBody as x, contentBylineInputSchema as xn, collectionGetQuery as xt, widgetAreaWithWidgetsSchema as y, bylineUpdateBody as yn, publicCommentListResponseSchema as yt, sectionsListQuery as z, formatFileSize as zt };
1084
+ export { createMenuBody as $, contentListQuery as $t, searchRebuildBody as A, roleLevel as An, fieldSchema as At, updateSectionBody as B, mediaConfirmResponseSchema as Bt, userDetailSchema as C, countResponseSchema as Cn, collectionSchema as Ct, usersListQuery as D, localeCode as Dn, fieldListResponseSchema as Dt, userUpdateBody as E, httpUrl as En, createFieldBody as Et, siteSettingsSchema as F, updateCollectionBody as Ft, taxonomyListResponseSchema as G, mediaProviderListQuery as Gt, createTermBody as H, mediaItemSchema as Ht, createSectionBody as I, updateFieldBody as It, termResponseSchema as J, mediaUploadUrlBody as Jt, termGetResponseSchema as K, mediaResponseSchema as Kt, sectionListResponseSchema as L, DEFAULT_MAX_UPLOAD_SIZE as Lt, searchResultSchema as M, successEnvelope as Mn, orphanedTableListResponseSchema as Mt, searchSuggestQuery as N, orphanedTableSchema as Nt, searchEnableBody as O, localeFilterQuery as On, fieldReorderBody as Ot, settingsUpdateBody as P, schemaExportQuery as Pt, updateTermBody as Q, contentItemSchema as Qt, sectionSchema as R, formatFileSize as Rt, allowedDomainUpdateBody as S, apiErrorSchema as Sn, collectionResponseSchema as St, userSchema as T, deleteResponseSchema as Tn, createCollectionBody as Tt, taxonomyDefSchema as U, mediaListQuery as Ut, createTaxonomyDefBody as V, mediaExistingResponseSchema as Vt, taxonomyDefTranslationsSchema as W, mediaListResponseSchema as Wt, termTranslationsSchema as X, contentCompareResponseSchema as Xt, termSchema as Y, mediaUploadUrlResponseSchema as Yt, termWithCountSchema as Z, contentCreateBody as Zt, widgetAreaSchema as _, bylineSummarySchema as _n, createCommentBody as _t, notFoundPruneBody as a, contentSeoInput as an, menuTranslationsSchema as at, widgetSchema as b, contentBylineInputSchema as bn, collectionGetQuery as bt, notFoundSummarySchema as c, contentTranslationSchema as cn, updateMenuBody as ct, redirectsListQuery as d, contentUpdateBody as dn, commentBulkBody as dt, contentListResponseSchema as en, createMenuItemBody as et, updateRedirectBody as f, trashedContentItemSchema as fn, commentBulkResponseSchema as ft, updateWidgetBody as g, bylineListResponseSchema as gn, commentStatusBody as gt, reorderWidgetsBody as h, bylineCreditSchema as hn, commentSchema as ht, notFoundListResponseSchema as i, contentScheduleBody as in, menuSchema as it, searchResponseSchema as j, slugPattern as jn, orphanRegisterBody as jt, searchQuery as k, offsetPaginationQuery as kn, fieldResponseSchema as kt, redirectListResponseSchema as l, contentTranslationsResponseSchema as ln, updateMenuItemBody as lt, createWidgetBody as m, bylineCreateBody as mn, commentListQuery as mt, notFoundEntrySchema as n, contentPublishBody as nn, menuItemTypeEnum as nt, notFoundSummaryQuery as o, contentSeoSchema as on, menuWithItemsSchema as ot, createWidgetAreaBody as p, trashedContentListResponseSchema as pn, commentCountsResponseSchema as pt, termListResponseSchema as q, mediaUpdateBody as qt, notFoundListQuery as r, contentResponseSchema as rn, menuListItemSchema as rt, notFoundSummaryResponseSchema as s, contentTermsBody as sn, reorderMenuItemsBody as st, createRedirectBody as t, contentPreviewUrlBody as tn, menuItemSchema as tt, redirectSchema as u, contentTrashQuery as un, adminCommentListResponseSchema as ut, widgetAreaWithWidgetsAndCountSchema as v, bylineUpdateBody as vn, publicCommentListResponseSchema as vt, userListResponseSchema as w, cursorPaginationQuery as wn, collectionWithFieldsResponseSchema as wt, allowedDomainCreateBody as x, VALID_ROLE_LEVELS as xn, collectionListResponseSchema as xt, widgetAreaWithWidgetsSchema as y, bylinesListQuery as yn, publicCommentSchema as yt, sectionsListQuery as z, mediaConfirmBody as zt };
@@ -1,7 +1,7 @@
1
1
  import { t as OptionsRepository } from "./options-BF11H_FD.mjs";
2
- import { a as validateDestinationParams, i as matchPattern, n as interpolateDestination, o as validatePattern, r as isPattern, t as compilePattern } from "./patterns-CW4n2PQs.mjs";
3
- import { t as RedirectRepository } from "./redirect-BHo9--Jz.mjs";
4
- import { i as invalidateRedirectCache } from "./cache-inQvbrP5.mjs";
2
+ import { a as validateDestinationParams, i as matchPattern, n as interpolateDestination, o as validatePattern, r as isPattern, t as compilePattern } from "./patterns-BKmjvM7K.mjs";
3
+ import { t as RedirectRepository } from "./redirect-hKO66LS_.mjs";
4
+ import { i as invalidateRedirectCache } from "./cache-BhJYDPP8.mjs";
5
5
 
6
6
  //#region src/redirects/loops.ts
7
7
  /**
@@ -2,9 +2,9 @@ import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
2
2
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
3
3
  import { c as listTablesLike, l as tableExists, r as currentTimestamp } from "./dialect-helpers-TkdbkFad.mjs";
4
4
  import { t as withTransaction } from "./transaction-qfqpPVpu.mjs";
5
- import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-vkrCT4Ta.mjs";
6
- import { t as FTSManager } from "./fts-manager-D7KVeBmg.mjs";
7
- import { i as RESERVED_FIELD_SLUGS, n as FIELD_TYPE_TO_COLUMN, r as RESERVED_COLLECTION_SLUGS } from "./types-Dz2EKzsX.mjs";
5
+ import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-BjOMG4LF.mjs";
6
+ import { t as FTSManager } from "./fts-manager-DYRy6HVi.mjs";
7
+ import { i as RESERVED_FIELD_SLUGS, n as FIELD_TYPE_TO_COLUMN, r as RESERVED_COLLECTION_SLUGS } from "./types-zfg8SDVI.mjs";
8
8
  import { sql } from "kysely";
9
9
  import { ulid } from "ulidx";
10
10
 
@@ -1787,14 +1787,14 @@ declare const pluginManifestSchema: z.ZodObject<{
1787
1787
  number: "number";
1788
1788
  boolean: "boolean";
1789
1789
  file: "file";
1790
+ image: "image";
1790
1791
  slug: "slug";
1792
+ datetime: "datetime";
1791
1793
  text: "text";
1792
1794
  integer: "integer";
1793
- datetime: "datetime";
1794
1795
  select: "select";
1795
1796
  multiSelect: "multiSelect";
1796
1797
  portableText: "portableText";
1797
- image: "image";
1798
1798
  reference: "reference";
1799
1799
  json: "json";
1800
1800
  repeater: "repeater";
@@ -1,12 +1,12 @@
1
- import { ct as CollectionFilter, dt as dinewayLoader, ft as getDb, lt as EntryData, ut as EntryFilter } from "./runtime-B5hJAnKF.mjs";
1
+ import { ct as CollectionFilter, dt as dinewayLoader, ft as getDb, lt as EntryData, ut as EntryFilter } from "./runtime-DY_XmE9Y.mjs";
2
2
  import "./types-CYBaBvtm.mjs";
3
3
  import "./types-DS5PYew4.mjs";
4
4
  import "./types-B45uSz1j.mjs";
5
5
  import "./runner-CHR_W79l.mjs";
6
6
  import "./index-JzJUzE4o.mjs";
7
7
  import "./index-DpMWSamU.mjs";
8
- import "./bylines--KurdDQK.mjs";
8
+ import "./bylines-BK9FyU4A.mjs";
9
9
  import "./types-BeYn-Yf0.mjs";
10
10
  import "./validate-BQ24E8rK.mjs";
11
- import { t as getMediaProvider } from "./provider-loader-D0F6E2qv.mjs";
11
+ import { t as getMediaProvider } from "./provider-loader-BPhii_3H.mjs";
12
12
  export { type CollectionFilter, type EntryData, type EntryFilter, dinewayLoader, getDb, getMediaProvider };
package/dist/runtime.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import "./dialect-helpers-TkdbkFad.mjs";
2
2
  import "./base64-C1Q9yr0B.mjs";
3
3
  import "./types-D1DjBFA9.mjs";
4
- import { n as dinewayLoader, r as getDb } from "./loader-CQFxFOt1.mjs";
4
+ import { n as dinewayLoader, r as getDb } from "./loader-dt5DoyI1.mjs";
5
5
  import { t as getMediaProvider } from "./provider-loader-Decn0Ktc.mjs";
6
6
 
7
7
  export { dinewayLoader, getDb, getMediaProvider };
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
2
- import { n as SchemaRegistry } from "./registry-DumDzFDn.mjs";
2
+ import { n as SchemaRegistry } from "./registry-CYO6XQ-4.mjs";
3
3
 
4
4
  //#region src/schema/index.ts
5
5
  var schema_exports = /* @__PURE__ */ __exportAll({ SchemaRegistry: () => SchemaRegistry });
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
2
2
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
3
- import { t as FTSManager } from "./fts-manager-D7KVeBmg.mjs";
4
- import { r as getDb } from "./loader-CQFxFOt1.mjs";
3
+ import { t as FTSManager } from "./fts-manager-DYRy6HVi.mjs";
4
+ import { r as getDb } from "./loader-dt5DoyI1.mjs";
5
5
  import { sql } from "kysely";
6
6
  import { toPlainText } from "@portabletext/toolkit";
7
7
 
@@ -1,5 +1,5 @@
1
1
  import { n as decodeCursor, r as encodeCursor } from "./types-D1DjBFA9.mjs";
2
- import { r as getDb } from "./loader-CQFxFOt1.mjs";
2
+ import { r as getDb } from "./loader-dt5DoyI1.mjs";
3
3
  import { ulid } from "ulidx";
4
4
 
5
5
  //#region src/sections/index.ts
@@ -3,18 +3,18 @@ import "../content-DvpMad_N.mjs";
3
3
  import "../base64-C1Q9yr0B.mjs";
4
4
  import "../types-D1DjBFA9.mjs";
5
5
  import "../media-Cg4zc9fq.mjs";
6
- import "../taxonomy-DI-0HgKe.mjs";
6
+ import "../taxonomy-DpXdVSSR.mjs";
7
7
  import "../options-BF11H_FD.mjs";
8
- import "../redirect-BHo9--Jz.mjs";
9
- import "../byline-BxAf79s1.mjs";
10
- import "../request-cache-DmVyQUBh.mjs";
11
- import "../fts-manager-D7KVeBmg.mjs";
12
- import "../registry-DumDzFDn.mjs";
13
- import "../loader-CQFxFOt1.mjs";
14
- import "../settings-qPzY2KIF.mjs";
15
- import "../ssrf-BOSGjXxb.mjs";
16
- import { t as validateSeed } from "../validate-B8ZvLeOE.mjs";
17
- import { t as applySeed } from "../apply-CGVHi2r7.mjs";
8
+ import "../redirect-hKO66LS_.mjs";
9
+ import "../byline-9WeA8b0a.mjs";
10
+ import "../request-cache-BzuhyUXj.mjs";
11
+ import "../fts-manager-DYRy6HVi.mjs";
12
+ import "../registry-CYO6XQ-4.mjs";
13
+ import "../loader-dt5DoyI1.mjs";
14
+ import "../settings-D2k1JraC.mjs";
15
+ import "../ssrf-z3oH8wjK.mjs";
16
+ import { t as validateSeed } from "../validate-CaKEnLed.mjs";
17
+ import { t as applySeed } from "../apply-Wyg77UOb.mjs";
18
18
  import { t as defaultSeed } from "../default-2JDm1rj_.mjs";
19
19
  import { n as loadUserSeed, t as loadSeed } from "../load-BvyvS_76.mjs";
20
20
 
@@ -1,4 +1,4 @@
1
- import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-vkrCT4Ta.mjs";
1
+ import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-BjOMG4LF.mjs";
2
2
  import { sql } from "kysely";
3
3
 
4
4
  //#region src/database/repositories/seo.ts
@@ -234,11 +234,11 @@ function cleanJsonLd(obj) {
234
234
  * Build a BlogPosting JSON-LD graph from page context.
235
235
  * Used for article-type content pages.
236
236
  */
237
- function buildBlogPostingJsonLd(page) {
237
+ function buildBlogPostingJsonLd(page, defaultOgImage) {
238
238
  if (page.pageType !== "article" || !page.canonical) return null;
239
239
  const ogTitle = page.seo?.ogTitle ?? page.pageTitle ?? page.title;
240
240
  const description = page.seo?.ogDescription || page.description;
241
- const ogImage = page.seo?.ogImage || page.image;
241
+ const ogImage = page.seo?.ogImage || page.image || defaultOgImage || null;
242
242
  const publishedTime = page.articleMeta?.publishedTime;
243
243
  const modifiedTime = page.articleMeta?.modifiedTime;
244
244
  const author = page.articleMeta?.author;
@@ -294,12 +294,12 @@ function buildWebSiteJsonLd(page) {
294
294
  * Generate base metadata contributions from a page context's SEO data.
295
295
  * Returns an empty array if no SEO-relevant data is present.
296
296
  */
297
- function generateBaseSeoContributions(page) {
297
+ function generateBaseSeoContributions(page, defaultOgImage) {
298
298
  const contributions = [];
299
299
  const description = page.description;
300
300
  const ogTitle = page.seo?.ogTitle ?? page.pageTitle ?? page.title;
301
301
  const ogDescription = page.seo?.ogDescription || description;
302
- const ogImage = page.seo?.ogImage || page.image;
302
+ const ogImage = page.seo?.ogImage || page.image || defaultOgImage || null;
303
303
  const robots = page.seo?.robots;
304
304
  const canonical = page.canonical;
305
305
  const siteName = page.siteName;
@@ -387,7 +387,7 @@ function generateBaseSeoContributions(page) {
387
387
  });
388
388
  }
389
389
  if (page.pageType === "article") {
390
- const blogPosting = buildBlogPostingJsonLd(page);
390
+ const blogPosting = buildBlogPostingJsonLd(page, defaultOgImage ?? null);
391
391
  if (blogPosting) contributions.push({
392
392
  kind: "jsonld",
393
393
  id: "primary",
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
2
- import { a as getSiteSettingsWithDb, o as setSiteSettings } from "./settings-qPzY2KIF.mjs";
2
+ import { a as getSiteSettingsWithDb, o as setSiteSettings } from "./settings-D2k1JraC.mjs";
3
3
 
4
4
  //#region src/api/handlers/settings.ts
5
5
  var settings_exports = /* @__PURE__ */ __exportAll({
@@ -1,7 +1,7 @@
1
1
  import { t as MediaRepository } from "./media-Cg4zc9fq.mjs";
2
2
  import { t as OptionsRepository } from "./options-BF11H_FD.mjs";
3
- import { n as requestCached, t as peekRequestCache } from "./request-cache-DmVyQUBh.mjs";
4
- import { r as getDb } from "./loader-CQFxFOt1.mjs";
3
+ import { n as requestCached, t as peekRequestCache } from "./request-cache-BzuhyUXj.mjs";
4
+ import { r as getDb } from "./loader-dt5DoyI1.mjs";
5
5
 
6
6
  //#region src/media/url.ts
7
7
  const INTERNAL_MEDIA_PREFIX = "/_dineway/api/media/file/";
@@ -106,6 +106,13 @@ async function getSiteSettingWithDb(key, db, storage = null) {
106
106
  const value = await new OptionsRepository(db).get(`${SETTINGS_PREFIX}${key}`);
107
107
  if (!value) return;
108
108
  if ((key === "logo" || key === "favicon") && isMediaReference(value)) return await resolveMediaReference(value, db, storage);
109
+ if (key === "seo" && value && typeof value === "object") {
110
+ const seo = value;
111
+ if (seo.defaultOgImage) return {
112
+ ...seo,
113
+ defaultOgImage: await resolveMediaReference(seo.defaultOgImage, db, storage)
114
+ };
115
+ }
109
116
  return value;
110
117
  }
111
118
  /**
@@ -157,6 +164,10 @@ async function getSiteSettingsWithDb(db, storage = null) {
157
164
  const typedSettings = settings;
158
165
  if (typedSettings.logo) typedSettings.logo = await resolveMediaReference(typedSettings.logo, db, storage);
159
166
  if (typedSettings.favicon) typedSettings.favicon = await resolveMediaReference(typedSettings.favicon, db, storage);
167
+ if (typedSettings.seo?.defaultOgImage) typedSettings.seo = {
168
+ ...typedSettings.seo,
169
+ defaultOgImage: await resolveMediaReference(typedSettings.seo.defaultOgImage, db, storage)
170
+ };
160
171
  return typedSettings;
161
172
  }
162
173
  /**
@@ -4,15 +4,15 @@ import { n as decodeCursor, r as encodeCursor } from "./types-D1DjBFA9.mjs";
4
4
  import { t as SiteActivityRepository } from "./site-activity-lsCX_cqp.mjs";
5
5
  import { t as ReviewRequestRepository } from "./review-requests-BYuoyse0.mjs";
6
6
  import { n as normalizeEntityAlias, t as EntityAliasRepository } from "./entity-aliases-PJV8IxDq.mjs";
7
- import { r as isPattern } from "./patterns-CW4n2PQs.mjs";
8
- import { a as ContextRepository, i as parseSiteBriefingScope, l as handlePluginList } from "./briefing-4k6R0KAr.mjs";
9
- import { t as FTSManager } from "./fts-manager-D7KVeBmg.mjs";
10
- import { n as SchemaRegistry } from "./registry-DumDzFDn.mjs";
11
- import { a as getSiteSettingsWithDb } from "./settings-qPzY2KIF.mjs";
7
+ import { r as isPattern } from "./patterns-BKmjvM7K.mjs";
8
+ import { a as ContextRepository, i as parseSiteBriefingScope, l as handlePluginList } from "./briefing-Dk4I4VC8.mjs";
9
+ import { t as FTSManager } from "./fts-manager-DYRy6HVi.mjs";
10
+ import { n as SchemaRegistry } from "./registry-CYO6XQ-4.mjs";
11
+ import { a as getSiteSettingsWithDb } from "./settings-D2k1JraC.mjs";
12
12
  import { p as normalizeUrl } from "./utils-BJF19gfk.mjs";
13
- import { t as sanitizeWordPressImportSlug } from "./wordpress-slugs-C4EhE6fo.mjs";
14
- import { s as searchCollection } from "./search-CPcQGTHW.mjs";
15
- import { n as assertExperimentalSiteContextWorkflowsEnabled } from "./experimental-workflows-CSRjuEwS.mjs";
13
+ import { t as sanitizeWordPressImportSlug } from "./wordpress-slugs-Bnf3-sf8.mjs";
14
+ import { s as searchCollection } from "./search-vzCYAk0F.mjs";
15
+ import { n as assertExperimentalSiteContextWorkflowsEnabled } from "./experimental-workflows-C7o_9V7S.mjs";
16
16
  import { sql } from "kysely";
17
17
  import { ulid } from "ulidx";
18
18
  import { Role } from "@dineway-ai/auth";
@@ -1,11 +1,11 @@
1
1
  import { lookup } from "node:dns/promises";
2
2
 
3
- //#region src/import/ssrf.ts
3
+ //#region src/security/ssrf.ts
4
4
  /**
5
- * SSRF protection for import URLs.
5
+ * SSRF protection for external URLs.
6
6
  *
7
- * Validates that URLs don't target internal/private network addresses.
8
- * Applied before any fetch() call in the import pipeline.
7
+ * Validates that fetch targets do not resolve to internal/private network addresses.
8
+ * Shared by imports, plugin HTTP access, and any future trusted-fetch surface.
9
9
  */
10
10
  const IPV4_MAPPED_IPV6_DOTTED_PATTERN = /^::ffff:(\d+\.\d+\.\d+\.\d+)$/i;
11
11
  const IPV4_MAPPED_IPV6_HEX_PATTERN = /^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i;
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
2
- import { t as TaxonomyRepository } from "./taxonomy-DI-0HgKe.mjs";
3
- import { c as invalidateTermCache } from "./taxonomies-BWmxbumf.mjs";
2
+ import { t as TaxonomyRepository } from "./taxonomy-DpXdVSSR.mjs";
3
+ import { c as invalidateTermCache } from "./taxonomies-DPNIwTGk.mjs";
4
4
  import { ulid } from "ulidx";
5
5
 
6
6
  //#region src/api/handlers/taxonomies.ts
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
2
2
  import { getRequestContext } from "./request-context.mjs";
3
3
  import { n as getI18nConfig, r as isI18nEnabled, t as getFallbackChain } from "./config-XW5tMrH8.mjs";
4
- import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-vkrCT4Ta.mjs";
5
- import { n as requestCached, r as setRequestCacheEntry, t as peekRequestCache } from "./request-cache-DmVyQUBh.mjs";
6
- import { r as getDb } from "./loader-CQFxFOt1.mjs";
4
+ import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-BjOMG4LF.mjs";
5
+ import { n as requestCached, r as setRequestCacheEntry, t as peekRequestCache } from "./request-cache-BzuhyUXj.mjs";
6
+ import { r as getDb } from "./loader-dt5DoyI1.mjs";
7
7
  import { t as isMissingTableError } from "./db-errors-BnUbfGsK.mjs";
8
8
 
9
9
  //#region src/i18n/resolve.ts
@@ -308,7 +308,7 @@ function primeEntryTermsCache(collection, entryId, byTaxonomy, applicableTaxonom
308
308
  * Get entries by term.
309
309
  */
310
310
  async function getEntriesByTerm(collection, taxonomyName, termSlug, options = {}) {
311
- const { getDinewayCollection } = await import("./query-CWPxZjGM.mjs").then((n) => n.o);
311
+ const { getDinewayCollection } = await import("./query-TQqoOaxy.mjs").then((n) => n.o);
312
312
  const queryOptions = { where: { [taxonomyName]: termSlug } };
313
313
  if (options.locale !== void 0) queryOptions.locale = options.locale;
314
314
  const { entries } = await getDinewayCollection(collection, queryOptions);
@@ -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-vkrCT4Ta.mjs").then((n) => n.r);
194
+ const { chunks, SQL_BATCH_SIZE } = await import("./chunks-BjOMG4LF.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();
@@ -3,9 +3,9 @@ import { A as PageMetadataContribution, q as PublicPageContext } from "../types-
3
3
  import { t as MediaReference } from "../types-CsnHvu4J.mjs";
4
4
  import { a as EmbedResult, i as EmbedOptions, m as MediaValue, o as ImageEmbed } from "../types-D_wGrwiY.mjs";
5
5
  import { H as getSiteSettings, R as getComments, St as PublicComment, T as getMenu, _ as getTaxonomyTerms, ft as sanitizeHref, l as Widget, pt as getCollectionInfo, rt as getEditMeta, t as getWidgetArea, tt as getDinewayCollection } from "../index-JzJUzE4o.mjs";
6
- import { a as generateSiteSeoContributions, d as resolvePageMetadata, i as generateBaseSeoContributions, o as renderFragments, u as renderPageMetadata } from "../jsonld-BjsoTL5m.mjs";
6
+ import { a as generateSiteSeoContributions, d as resolvePageMetadata, i as generateBaseSeoContributions, o as renderFragments, u as renderPageMetadata } from "../jsonld-CvXmIBls.mjs";
7
7
  import { getPageRuntime } from "../page/index.mjs";
8
- import { t as getMediaProvider } from "../provider-loader-D0F6E2qv.mjs";
8
+ import { t as getMediaProvider } from "../provider-loader-BPhii_3H.mjs";
9
9
 
10
10
  //#region src/utils/sanitize.d.ts
11
11
  /**
@@ -4,19 +4,19 @@ import "../types-D1DjBFA9.mjs";
4
4
  import "../media-Cg4zc9fq.mjs";
5
5
  import "../comment-BmJXz3lc.mjs";
6
6
  import "../options-BF11H_FD.mjs";
7
- import "../request-cache-DmVyQUBh.mjs";
8
- import "../fts-manager-D7KVeBmg.mjs";
9
- import "../registry-DumDzFDn.mjs";
10
- import "../loader-CQFxFOt1.mjs";
11
- import { i as getSiteSettings, s as buildRenderMediaUrl } from "../settings-qPzY2KIF.mjs";
12
- import { t as getCollectionInfo } from "../query-BtuwuZRd.mjs";
13
- import { a as getTaxonomyTerms } from "../taxonomies-BWmxbumf.mjs";
7
+ import "../request-cache-BzuhyUXj.mjs";
8
+ import "../fts-manager-DYRy6HVi.mjs";
9
+ import "../registry-CYO6XQ-4.mjs";
10
+ import "../loader-dt5DoyI1.mjs";
11
+ import { i as getSiteSettings, s as buildRenderMediaUrl } from "../settings-D2k1JraC.mjs";
12
+ import { t as getCollectionInfo } from "../query-CH1GaJmt.mjs";
13
+ import { a as getTaxonomyTerms } from "../taxonomies-DPNIwTGk.mjs";
14
14
  import { n as sanitizeHref } from "../url-DOS4RGym.mjs";
15
- import { r as getEditMeta, t as getDinewayCollection } from "../query-CWPxZjGM.mjs";
16
- import { i as getComments, t as getMenu } from "../menus-BDW1yIdj.mjs";
17
- import { t as getWidgetArea } from "../widgets-Cce2-2fM.mjs";
15
+ import { r as getEditMeta, t as getDinewayCollection } from "../query-TQqoOaxy.mjs";
16
+ import { i as getComments, t as getMenu } from "../menus-BTOa-tsI.mjs";
17
+ import { t as getWidgetArea } from "../widgets-D7UK-2hW.mjs";
18
18
  import { t as getMediaProvider } from "../provider-loader-Decn0Ktc.mjs";
19
- import { c as escapeHtmlAttr, l as renderPageMetadata, n as generateSiteSeoContributions, o as renderFragments, t as generateBaseSeoContributions, u as resolvePageMetadata } from "../seo-contributions-CQzUjJKY.mjs";
19
+ import { c as escapeHtmlAttr, l as renderPageMetadata, n as generateSiteSeoContributions, o as renderFragments, t as generateBaseSeoContributions, u as resolvePageMetadata } from "../seo-contributions-BG4TtU7H.mjs";
20
20
  import { getPageRuntime } from "../page/index.mjs";
21
21
  import sanitizeHtml from "sanitize-html";
22
22
 
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
2
- import { t as FIELD_TYPES } from "./types-Dz2EKzsX.mjs";
2
+ import { t as FIELD_TYPES } from "./types-zfg8SDVI.mjs";
3
3
 
4
4
  //#region src/seed/validate.ts
5
5
  /**
@@ -0,0 +1,6 @@
1
+ //#region src/version.ts
2
+ const VERSION = "0.1.18";
3
+ const COMMIT = "90b3f3ca";
4
+
5
+ //#endregion
6
+ export { VERSION as n, COMMIT as t };