@riverbankcms/sdk 0.138.0 → 0.140.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/README.md +12 -16
  2. package/dist/{PreviewEditorSidebar-BVPur_CU.mjs → PreviewEditorSidebar-CUyTzd5z.mjs} +4 -4
  3. package/dist/{PreviewEditorUI-DLhWX8oh.mjs → PreviewEditorUI-Agkw4v5i.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BguJY1SW.mjs → PreviewQueryProvider-CN0ewic5.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-Tda6qw4z.mjs → SdkPreviewModeRuntime-DdbeAdS8.mjs} +62 -28
  6. package/dist/{SiteChromeCustomizeContext-BHFgMjde.mjs → SiteChromeCustomizeContext-CqGOz-Kv.mjs} +8467 -5616
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +264 -495
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +221 -242
  9. package/dist/_dts/api/src/accessAdmin.d.ts +74 -104
  10. package/dist/_dts/api/src/aiEndpoints.d.ts +5 -1
  11. package/dist/_dts/api/src/authSubmission.d.ts +46 -0
  12. package/dist/_dts/api/src/billing.d.ts +18 -7
  13. package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +23 -0
  14. package/dist/_dts/api/src/billingEndpointTypes.d.ts +26 -0
  15. package/dist/_dts/api/src/blocks.d.ts +2 -0
  16. package/dist/_dts/api/src/bookingRecords.d.ts +1 -2
  17. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +8 -1
  18. package/dist/_dts/api/src/communications.d.ts +0 -1
  19. package/dist/_dts/api/src/contentRuntime.d.ts +16 -4
  20. package/dist/_dts/api/src/endpoints.d.ts +275 -167
  21. package/dist/_dts/api/src/event-destination-policy.d.ts +2 -1
  22. package/dist/_dts/api/src/footerSettings.d.ts +10 -10
  23. package/dist/_dts/api/src/index.d.ts +11 -10
  24. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  25. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  26. package/dist/_dts/api/src/mailchimpIntegration.d.ts +2 -59
  27. package/dist/_dts/api/src/mailingListIntegration.d.ts +123 -0
  28. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -1
  29. package/dist/_dts/api/src/navigation/locations.d.ts +1 -0
  30. package/dist/_dts/api/src/navigation/types.d.ts +1 -1
  31. package/dist/_dts/api/src/navigation.d.ts +1 -26
  32. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +109 -2
  33. package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +25 -0
  34. package/dist/_dts/api/src/onboarding/surfaceData.d.ts +185 -0
  35. package/dist/_dts/api/src/privacyPolicy.d.ts +74 -2
  36. package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +14 -6
  37. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +1 -1
  38. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +1 -0
  39. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +11 -3
  40. package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +2 -4
  41. package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +9 -49
  42. package/dist/_dts/api/src/publicOnboardingAttemptEndpointDefinitions.d.ts +65 -0
  43. package/dist/_dts/api/src/publicReadEndpointDefinitions.d.ts +73 -0
  44. package/dist/_dts/api/src/saveOutcome.d.ts +20 -0
  45. package/dist/_dts/api/src/schemas/site-api-keys.d.ts +1 -1
  46. package/dist/_dts/api/src/sdkContracts.d.ts +5 -32
  47. package/dist/_dts/api/src/sdkPushContracts.d.ts +18 -0
  48. package/dist/_dts/api/src/sdkThemeWire.d.ts +46 -46
  49. package/dist/_dts/api/src/settings/permissions.d.ts +12 -0
  50. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +9 -34
  51. package/dist/_dts/api/src/siteOnboarding.d.ts +84 -228
  52. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +3 -13
  53. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +3 -1
  54. package/dist/_dts/api/src/siteSettings.d.ts +38 -6
  55. package/dist/_dts/api/src/types.d.ts +78 -77
  56. package/dist/_dts/api/src/wholeSeriesRuns.d.ts +2 -37
  57. package/dist/_dts/billing/src/membership/index.d.ts +17 -7
  58. package/dist/_dts/billing/src/plans/display.d.ts +15 -0
  59. package/dist/_dts/billing/src/plans/registry.d.ts +2 -0
  60. package/dist/_dts/billing/src/plans/standing.d.ts +19 -0
  61. package/dist/_dts/billing/src/plans/types.d.ts +4 -7
  62. package/dist/_dts/billing/src/site-arrangements.d.ts +14 -3
  63. package/dist/_dts/billing/src/subscriptions/evidence.d.ts +12 -0
  64. package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +31 -0
  65. package/dist/_dts/billing/src/subscriptions/store.d.ts +23 -5
  66. package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -15
  67. package/dist/_dts/blocks/src/client.d.ts +1 -1
  68. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +48 -20
  69. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +2 -0
  70. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +9 -0
  71. package/dist/_dts/blocks/src/pageRenderingMode.d.ts +12 -6
  72. package/dist/_dts/blocks/src/portal/types.d.ts +2 -4
  73. package/dist/_dts/blocks/src/portal/waitlist-types.d.ts +35 -0
  74. package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +11 -0
  75. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +39 -66
  76. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +2 -0
  77. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +42 -0
  78. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -0
  79. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +39 -114
  80. package/dist/_dts/blocks/src/system/blocks/offerings-preview/catalogue.d.ts +18 -0
  81. package/dist/_dts/blocks/src/system/blocks/offerings-preview/fields.d.ts +2 -0
  82. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +4 -0
  83. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +7 -13
  84. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  85. package/dist/_dts/blocks/src/system/data/index.d.ts +4 -4
  86. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  87. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +2 -1
  88. package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +2 -74
  89. package/dist/_dts/blocks/src/system/data/types.d.ts +9 -0
  90. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +33 -100
  91. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  92. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +0 -28
  93. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  94. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +7 -3
  95. package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +5 -15
  96. package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +1 -1
  97. package/dist/_dts/blocks/src/system/runtime/api/types/waitlist-claims.d.ts +7 -2
  98. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +78 -30
  99. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +39 -15
  100. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +3 -0
  101. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +1 -1
  102. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarToday.d.ts +22 -0
  103. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +94 -0
  104. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +1 -2
  105. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +2 -0
  106. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/checkoutRecovery.d.ts +14 -0
  107. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +56 -0
  108. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +6 -8
  109. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useCheckoutRecovery.d.ts +8 -0
  110. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -7
  111. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +12 -2
  112. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventSourceRecovery.d.ts +18 -0
  113. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.client.d.ts +1 -1
  114. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +24 -7
  115. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +4 -2
  116. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +28 -0
  117. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/bookability.d.ts +9 -0
  118. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +14 -0
  119. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/duration.d.ts +2 -0
  120. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +4 -0
  121. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/location.d.ts +2 -0
  122. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/quickDates.d.ts +16 -0
  123. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.d.ts +9 -1
  124. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +2 -0
  125. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayHeaders.d.ts +4 -0
  126. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
  127. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +5 -0
  128. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -1
  129. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventQuickDates.d.ts +15 -0
  130. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +7 -3
  131. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +1 -0
  132. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +2 -0
  133. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +1 -0
  134. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/useHydrationReady.d.ts +6 -0
  135. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +3 -0
  136. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +62 -33
  137. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -3
  138. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +14 -31
  139. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-catalogue.d.ts +14 -0
  140. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-content.d.ts +23 -0
  141. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +4 -2
  142. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +1 -0
  143. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -6
  144. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  145. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +2 -0
  146. package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +5 -0
  147. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -0
  148. package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
  149. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +32 -16
  150. package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +34 -0
  151. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +2 -1
  152. package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +6 -24
  153. package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +3 -1
  154. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +4 -2
  155. package/dist/_dts/core/src/branded.d.ts +0 -8
  156. package/dist/_dts/core/src/footer-engagement.d.ts +2 -6
  157. package/dist/_dts/core/src/index.d.ts +10 -1
  158. package/dist/_dts/core/src/mailing-list-identifiers.d.ts +21 -0
  159. package/dist/_dts/core/src/mailing-list-runtime.d.ts +42 -0
  160. package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +14 -0
  161. package/dist/_dts/core/src/mailing-list-setup.d.ts +142 -0
  162. package/dist/_dts/core/src/mailing-list-submission.d.ts +224 -0
  163. package/dist/_dts/core/src/mailing-list-targeting-parser.d.ts +12 -0
  164. package/dist/_dts/core/src/mailing-list-targeting.d.ts +93 -0
  165. package/dist/_dts/core/src/navigation-locations.d.ts +28 -0
  166. package/dist/_dts/core/src/participants.d.ts +2 -29
  167. package/dist/_dts/core/src/public-experience.d.ts +4 -0
  168. package/dist/_dts/core/src/public-profile.d.ts +35 -1
  169. package/dist/_dts/core/src/public-read-cache-contract.d.ts +45 -0
  170. package/dist/_dts/core/src/site-route-target.d.ts +9 -2
  171. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +797 -954
  172. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
  173. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListGlobalSettingsSummary.d.ts +10 -0
  174. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +12 -0
  175. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/context.d.ts +14 -0
  176. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/index.d.ts +3 -0
  177. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +7 -0
  178. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +19 -0
  179. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
  180. package/dist/_dts/sdk/src/client/publicAppointmentReadOperations.d.ts +12 -0
  181. package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +2 -1
  182. package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +11 -4
  183. package/dist/_dts/sdk/src/config/content-types.d.ts +3 -13
  184. package/dist/_dts/sdk/src/config/content-validation.d.ts +5 -8
  185. package/dist/_dts/sdk/src/constants.d.ts +3 -3
  186. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  187. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -31
  188. package/dist/_dts/sdk/src/navigation/index.d.ts +11 -29
  189. package/dist/_dts/sdk/src/next/index.d.ts +4 -4
  190. package/dist/_dts/sdk/src/prebuild/types.d.ts +1 -5
  191. package/dist/_dts/sdk/src/public-api/contracts.d.ts +44 -33
  192. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +5 -0
  193. package/dist/_dts/sdk/src/rendering/client.d.ts +3 -20
  194. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -0
  195. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +4 -0
  196. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +8 -1
  197. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +1 -0
  198. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  199. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  200. package/dist/_dts/sdk/src/version.d.ts +1 -1
  201. package/dist/_dts/theme-core/src/accordions/types.d.ts +3 -3
  202. package/dist/_dts/theme-core/src/cards/types.d.ts +21 -21
  203. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  204. package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +8 -2
  205. package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +2 -2
  206. package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +41 -0
  207. package/dist/_dts/theme-core/src/index.d.ts +1 -0
  208. package/dist/_dts/theme-core/src/inputs/types.d.ts +2 -2
  209. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +54 -54
  210. package/dist/_dts/theme-core/src/runtime/buildThemeRuntime.d.ts +0 -1
  211. package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +1 -4
  212. package/dist/_dts/theme-core/src/schema.d.ts +84 -84
  213. package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +1 -1
  214. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  215. package/dist/_dts/theme-core/src/surfaces/foregroundInteraction.d.ts +77 -0
  216. package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
  217. package/dist/_dts/theme-core/src/tokens/tokens.d.ts +7 -0
  218. package/dist/_dts/theme-core/src/typography/generateTypographyCss.d.ts +2 -2
  219. package/dist/_dts/ui/src/badge.d.ts +1 -1
  220. package/dist/_dts/ui/src/callout.d.ts +1 -1
  221. package/dist/_dts/ui/src/lib/use-delayed-flag.d.ts +9 -0
  222. package/dist/_dts/ui/src/pending-button.d.ts +10 -0
  223. package/dist/client/{BookingConsentAgreement-DQUik1Mx.mjs → BookingConsentAgreement-CuKa82V4.mjs} +4 -4
  224. package/dist/client/{DiscountCodeDisclosure-CU67Q4vH.mjs → DiscountCodeDisclosure-BbYieKWB.mjs} +1 -1
  225. package/dist/client/{EventCombined.client-a02TXUgg.mjs → EventCombined.client-LTfR1Aby.mjs} +444 -200
  226. package/dist/client/{EventListing.client-99qx7jFl.mjs → EventListing.client-DUHpYSuo.mjs} +2 -2
  227. package/dist/client/{LeafletStaticMap-CWzcq73L.mjs → LeafletStaticMap-CHRupL6m.mjs} +1 -1
  228. package/dist/client/{accordion-D1nb3-Oj.mjs → accordion-6HiIFxNL.mjs} +1 -1
  229. package/dist/client/{bookingForm-BGrmLhaO.mjs → bookingForm-Dlmid43H.mjs} +7 -7
  230. package/dist/client/bookings.mjs +368 -142
  231. package/dist/client/{carousel-DSmOx3ad.mjs → carousel-DmkZRRq_.mjs} +2 -2
  232. package/dist/client/{carousel.client-59G_WMr4.mjs → carousel.client-DQTjCVQT.mjs} +1 -1
  233. package/dist/client/{cart-COWeOIUk.mjs → cart-CIC24330.mjs} +3 -3
  234. package/dist/client/{checkout-CeysaIJK.mjs → checkout-D1Zw9imo.mjs} +3 -3
  235. package/dist/client/{checkoutUrls-BuseL0dw.mjs → checkoutUrls-FL6lRkrt.mjs} +1 -1
  236. package/dist/client/client.mjs +5017 -2258
  237. package/dist/client/{colorStyles-CrxJrPjJ.mjs → colorStyles-3013aRAY.mjs} +3 -1
  238. package/dist/client/{context-DBzX85Xc.mjs → context-Cy1OayHx.mjs} +9 -21
  239. package/dist/client/{dates-DCYhZBlW.mjs → dates-aDcfoLHr.mjs} +21 -3
  240. package/dist/client/{eventCalendar-BgsN73Ul.mjs → eventCalendar-FQxMPAjf.mjs} +81 -79
  241. package/dist/client/{eventCombined-DcZQAMQP.mjs → eventCombined-Dr3ac6Hb.mjs} +3 -3
  242. package/dist/client/{eventDetails-BWwGJ54l.mjs → eventDetails-D-AzUHFQ.mjs} +4 -4
  243. package/dist/client/{eventListing-DqYqV8vp.mjs → eventListing-B3XxBf3i.mjs} +3 -3
  244. package/dist/client/{eventRegistration-DQGDgu_e.mjs → eventRegistration-I6EaokFD.mjs} +543 -155
  245. package/dist/client/{form-ClfpasVT.mjs → form-BbWckVWY.mjs} +3 -3
  246. package/dist/client/{headerSection-BuOMe98N.mjs → headerSection-C9qU4Y7x.mjs} +2 -2
  247. package/dist/client/hooks.mjs +1685 -716
  248. package/dist/client/{locationMap-CEqu_sfa.mjs → locationMap-CLCShvlG.mjs} +3 -3
  249. package/dist/client/{media-BOHuueS5.mjs → media-DHpfFwd3.mjs} +1 -1
  250. package/dist/client/newsletterForm-Briukxzi.mjs +444 -0
  251. package/dist/client/{pricing-xj7MPZlK.mjs → pricing-Copadu-2.mjs} +1 -1
  252. package/dist/client/{productDetail-vxqTt5Xj.mjs → productDetail-oujlRd-r.mjs} +3 -3
  253. package/dist/client/{productList-OTdZu8sb.mjs → productList-BRiIRUcd.mjs} +3 -3
  254. package/dist/client/{propsDecoder-CY9gGEF7.mjs → propsDecoder-CB2KS_ko.mjs} +706 -160
  255. package/dist/client/rendering/client.mjs +3161 -1226
  256. package/dist/client/rendering/islands.mjs +19 -19
  257. package/dist/client/rendering.mjs +4864 -1914
  258. package/dist/client/{scrollToBlock--BFV6kl-.mjs → scrollToBlock-B1IS1_ua.mjs} +1 -1
  259. package/dist/client/{shop-CP4YbDL9.mjs → shop-Vn6yNFED.mjs} +6 -6
  260. package/dist/client/{shop-commerce-APs4XBXE.mjs → shop-commerce-BVTqipYp.mjs} +7 -7
  261. package/dist/client/{shop-commerce-store-CAVLxLFr.mjs → shop-commerce-store-BVnJVy7v.mjs} +1 -1
  262. package/dist/client/{shopShared-BnSRrwXI.mjs → shopShared-COIeK77T.mjs} +4 -4
  263. package/dist/client/{useEventFilters-1a1by4c8.mjs → useEventFilters-DzIUcS9n.mjs} +58 -11
  264. package/dist/preview-next/before-render.mjs +357 -175
  265. package/dist/preview-next/client/runtime.mjs +4 -4
  266. package/dist/preview-next/keepAlive.mjs +357 -175
  267. package/dist/preview-next/middleware.mjs +357 -175
  268. package/dist/{previewAuthStore-BkEgnYPP.mjs → previewAuthStore-Gjb6r6vz.mjs} +357 -175
  269. package/dist/{sdk-runtime-DwGfsT0S.mjs → sdk-runtime-CnCLvZRv.mjs} +2 -2
  270. package/dist/{separator-BeqDLneQ.mjs → separator-DKDRJ1oH.mjs} +1 -1
  271. package/dist/server/components.mjs +3389 -1251
  272. package/dist/server/config-validation.mjs +2737 -1784
  273. package/dist/server/config.mjs +2742 -1788
  274. package/dist/server/data.mjs +1586 -615
  275. package/dist/server/index.mjs +496 -352
  276. package/dist/server/navigation.mjs +16 -47
  277. package/dist/server/next.mjs +3978 -2007
  278. package/dist/server/page-converter.mjs +1109 -553
  279. package/dist/server/prebuild.mjs +2 -3
  280. package/dist/server/rendering/server.mjs +4101 -1951
  281. package/dist/server/rendering.mjs +3416 -1259
  282. package/dist/server/routing.mjs +1869 -786
  283. package/dist/server/server.mjs +3260 -2482
  284. package/dist/server/theme-bridge.mjs +725 -124
  285. package/dist/server/theme.mjs +8 -2
  286. package/dist/styles/index.css +526 -68
  287. package/package.json +1 -1
  288. package/dist/_dts/api/src/navigation/identity.d.ts +0 -59
  289. package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +0 -291
  290. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionCompactRow.d.ts +0 -29
  291. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionList.d.ts +0 -13
  292. package/dist/_dts/core/src/newsletter-signup-destination.d.ts +0 -38
  293. package/dist/client/newsletterForm-IbrHjMxy.mjs +0 -322
@@ -969,14 +969,117 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
969
969
  responseKind: "json",
970
970
  errors: ["auth:forbidden", "server:internal_error"]
971
971
  },
972
- getMailchimpSignupSyncHealth: {
973
- path: "/sites/{siteId}/integrations/mailchimp/signup-sync-health",
972
+ getMailingListSetup: {
973
+ path: "/sites/{siteId}/mailing-list/setup",
974
+ method: "GET",
975
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
976
+ auth: "user",
977
+ responseKind: "json",
978
+ errors: ["auth:forbidden", "server:internal_error"]
979
+ },
980
+ getMailingListAuthoringContext: {
981
+ path: "/sites/{siteId}/mailing-list/authoring-context",
982
+ method: "GET",
983
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
984
+ auth: "user",
985
+ responseKind: "json",
986
+ errors: ["auth:forbidden", "server:internal_error"]
987
+ },
988
+ previewMailingListSetupChange: {
989
+ path: "/sites/{siteId}/mailing-list/setup/preview",
990
+ method: "POST",
991
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
992
+ auth: "user",
993
+ responseKind: "json",
994
+ demoMutation: DEMO_MUTATION_ALLOWED,
995
+ errors: [
996
+ "auth:forbidden",
997
+ "validation:invalid_input",
998
+ "server:internal_error"
999
+ ]
1000
+ },
1001
+ applyMailingListSetupChange: {
1002
+ path: "/sites/{siteId}/mailing-list/setup",
1003
+ method: "PUT",
1004
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1005
+ auth: "user",
1006
+ responseKind: "json",
1007
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
1008
+ errors: [
1009
+ "auth:forbidden",
1010
+ "validation:invalid_input",
1011
+ "resource:conflict",
1012
+ "server:internal_error"
1013
+ ]
1014
+ },
1015
+ getMailingListProviderCatalog: {
1016
+ path: "/sites/{siteId}/mailing-list/providers/{provider}/catalog",
1017
+ method: "GET",
1018
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1019
+ auth: "user",
1020
+ responseKind: "json",
1021
+ errors: [
1022
+ "auth:forbidden",
1023
+ "validation:invalid_input",
1024
+ "server:internal_error"
1025
+ ]
1026
+ },
1027
+ refreshMailingListProviderCatalog: {
1028
+ path: "/sites/{siteId}/mailing-list/providers/{provider}/catalog/refresh",
1029
+ method: "POST",
1030
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1031
+ auth: "user",
1032
+ responseKind: "json",
1033
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
1034
+ errors: [
1035
+ "auth:forbidden",
1036
+ "validation:invalid_input",
1037
+ "server:internal_error"
1038
+ ]
1039
+ },
1040
+ getMailingListProviderHealth: {
1041
+ path: "/sites/{siteId}/mailing-list/health",
1042
+ method: "GET",
1043
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1044
+ auth: "user",
1045
+ responseKind: "json",
1046
+ errors: ["auth:forbidden", "server:internal_error"]
1047
+ },
1048
+ getBrevoConnection: {
1049
+ path: "/sites/{siteId}/integrations/brevo/connection",
974
1050
  method: "GET",
975
1051
  tags: [TAG_TEMPLATES.site],
976
1052
  auth: "user",
977
1053
  responseKind: "json",
978
1054
  errors: ["auth:forbidden", "server:internal_error"]
979
1055
  },
1056
+ connectBrevo: {
1057
+ path: "/sites/{siteId}/integrations/brevo/connection",
1058
+ method: "PUT",
1059
+ tags: [TAG_TEMPLATES.site],
1060
+ auth: "user",
1061
+ responseKind: "json",
1062
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
1063
+ errors: [
1064
+ "auth:forbidden",
1065
+ "validation:invalid_input",
1066
+ "resource:conflict",
1067
+ "server:internal_error"
1068
+ ]
1069
+ },
1070
+ disconnectBrevo: {
1071
+ path: "/sites/{siteId}/integrations/brevo/disconnect",
1072
+ method: "POST",
1073
+ tags: [TAG_TEMPLATES.site],
1074
+ auth: "user",
1075
+ responseKind: "json",
1076
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
1077
+ errors: [
1078
+ "auth:forbidden",
1079
+ "resource:conflict",
1080
+ "server:internal_error"
1081
+ ]
1082
+ },
980
1083
  getMailchimpConnection: {
981
1084
  path: "/sites/{siteId}/integrations/mailchimp/connection",
982
1085
  method: "GET",
@@ -1199,6 +1302,59 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1199
1302
  responseKind: "json"
1200
1303
  }
1201
1304
  });
1305
+ const PUBLIC_CONTENT_FRESHNESS_SECONDS = 3600;
1306
+ function availability(transport) {
1307
+ return {
1308
+ kind: "live",
1309
+ reason: "booking_correctness",
1310
+ freshness: "availability",
1311
+ transport
1312
+ };
1313
+ }
1314
+ function content(tags, transport = "direct") {
1315
+ return {
1316
+ kind: "tagged",
1317
+ tags,
1318
+ freshness: "content",
1319
+ transport
1320
+ };
1321
+ }
1322
+ /** The single classification authority for cacheable public reads. */
1323
+ const PUBLIC_READ_CACHE_POLICIES = {
1324
+ listPublishedEntries: content(["published_content"]),
1325
+ getPublishedEntryPreview: content(["published_content"]),
1326
+ listPublicEvents: availability("direct"),
1327
+ listPublicEventCalendarWindow: availability("direct"),
1328
+ listPublicRecurringSchedule: availability("batch_only"),
1329
+ getPublicEventDetails: availability("batch_only"),
1330
+ resolveEventSubroute: availability("direct"),
1331
+ listPublicRouteCandidates: content(["published_content"], "batch_only"),
1332
+ listPublicTeamMembers: content(["public_team_members"]),
1333
+ listPublicProducts: availability("direct"),
1334
+ listPublicPasses: availability("direct"),
1335
+ listPublicMemberships: availability("direct"),
1336
+ getPublicFormById: content(["site_forms"]),
1337
+ getPublicBookingServices: availability("direct"),
1338
+ getPublicBookingService: availability("direct"),
1339
+ getPublicBookingResourcesReference: availability("direct"),
1340
+ getPublicBookingAvailableDates: availability("direct"),
1341
+ getPublicBookingAvailableSlots: availability("direct"),
1342
+ getPublicWeeklySlotAvailability: availability("direct"),
1343
+ listPublicForms: content(["site_forms"]),
1344
+ checkRedirect: content([]),
1345
+ getPublicRoutableContent: content(["published_content"]),
1346
+ getPublicSitemapRoutes: content(["published_content"])
1347
+ };
1348
+ const PUBLIC_READ_ENDPOINT_SET = new Set(Object.keys(PUBLIC_READ_CACHE_POLICIES));
1349
+ function isPublicReadEndpoint(endpoint) {
1350
+ return PUBLIC_READ_ENDPOINT_SET.has(endpoint);
1351
+ }
1352
+ function getPublicReadCachePolicy(endpoint) {
1353
+ return PUBLIC_READ_CACHE_POLICIES[endpoint];
1354
+ }
1355
+ function publicReadFreshnessSeconds(endpoint) {
1356
+ return getPublicReadCachePolicy(endpoint).freshness === "availability" ? 60 : PUBLIC_CONTENT_FRESHNESS_SECONDS;
1357
+ }
1202
1358
  //#endregion
1203
1359
  //#region ../api/src/publicEventEndpointDefinitions.ts
1204
1360
  const PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
@@ -1232,7 +1388,7 @@ const PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1232
1388
  resolveEventSubroute: {
1233
1389
  path: "/public/sites/{siteId}/events/subroutes/resolve",
1234
1390
  method: "GET",
1235
- revalidate: 60,
1391
+ revalidate: publicReadFreshnessSeconds("resolveEventSubroute"),
1236
1392
  tags: [TAG_TEMPLATES.publicEvents, "event-subroute"],
1237
1393
  auth: "public",
1238
1394
  responseKind: "json",
@@ -1285,7 +1441,7 @@ const PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS = defineEndpointDefinitio
1285
1441
  getPublicBookingServices: {
1286
1442
  path: "/public/bookings/services",
1287
1443
  method: "GET",
1288
- revalidate: 60,
1444
+ revalidate: publicReadFreshnessSeconds("getPublicBookingServices"),
1289
1445
  tags: [TAG_TEMPLATES.publicBookingServices],
1290
1446
  auth: "public",
1291
1447
  responseKind: "json"
@@ -1293,7 +1449,15 @@ const PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS = defineEndpointDefinitio
1293
1449
  getPublicBookingService: {
1294
1450
  path: "/public/bookings/services/{serviceId}",
1295
1451
  method: "GET",
1296
- revalidate: 60,
1452
+ revalidate: publicReadFreshnessSeconds("getPublicBookingService"),
1453
+ tags: [TAG_TEMPLATES.publicBookingServices],
1454
+ auth: "public",
1455
+ responseKind: "json"
1456
+ },
1457
+ getPublicBookingServiceBySlug: {
1458
+ path: "/public/bookings/services/by-slug/{slug}",
1459
+ method: "GET",
1460
+ revalidate: publicReadFreshnessSeconds("getPublicBookingService"),
1297
1461
  tags: [TAG_TEMPLATES.publicBookingServices],
1298
1462
  auth: "public",
1299
1463
  responseKind: "json"
@@ -1301,7 +1465,7 @@ const PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS = defineEndpointDefinitio
1301
1465
  getPublicBookingResourcesReference: {
1302
1466
  path: "/public/bookings/resources/reference",
1303
1467
  method: "GET",
1304
- revalidate: 60,
1468
+ revalidate: publicReadFreshnessSeconds("getPublicBookingResourcesReference"),
1305
1469
  tags: [TAG_TEMPLATES.publicBookingServices],
1306
1470
  auth: "public",
1307
1471
  responseKind: "json"
@@ -1309,7 +1473,7 @@ const PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS = defineEndpointDefinitio
1309
1473
  getPublicBookingAvailableDates: {
1310
1474
  path: "/public/bookings/availability/dates",
1311
1475
  method: "GET",
1312
- revalidate: 60,
1476
+ revalidate: publicReadFreshnessSeconds("getPublicBookingAvailableDates"),
1313
1477
  tags: [TAG_TEMPLATES.publicBookingAvailability, TAG_TEMPLATES.publicBookingServices],
1314
1478
  auth: "public",
1315
1479
  responseKind: "json"
@@ -1317,7 +1481,7 @@ const PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS = defineEndpointDefinitio
1317
1481
  getPublicBookingAvailableSlots: {
1318
1482
  path: "/public/bookings/availability/slots",
1319
1483
  method: "GET",
1320
- revalidate: 60,
1484
+ revalidate: publicReadFreshnessSeconds("getPublicBookingAvailableSlots"),
1321
1485
  tags: [TAG_TEMPLATES.publicBookingAvailability, TAG_TEMPLATES.publicBookingServices],
1322
1486
  auth: "public",
1323
1487
  responseKind: "json"
@@ -1325,7 +1489,7 @@ const PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS = defineEndpointDefinitio
1325
1489
  getPublicWeeklySlotAvailability: {
1326
1490
  path: "/public/bookings/weekly-slot-availability",
1327
1491
  method: "GET",
1328
- revalidate: 60,
1492
+ revalidate: publicReadFreshnessSeconds("getPublicWeeklySlotAvailability"),
1329
1493
  tags: [TAG_TEMPLATES.publicBookingAvailability, TAG_TEMPLATES.publicBookingServices],
1330
1494
  auth: "public",
1331
1495
  responseKind: "json",
@@ -1775,10 +1939,180 @@ const SDK_MEDIA_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1775
1939
  responseKind: "json"
1776
1940
  }
1777
1941
  });
1942
+ //#endregion
1943
+ //#region ../api/src/publicReadEndpointDefinitions.ts
1944
+ /**
1945
+ * Direct public reads governed by the canonical public-read freshness policy.
1946
+ * Keeping these definitions together makes the endpoint identity used to
1947
+ * derive freshness reviewable beside its route and tags.
1948
+ */
1949
+ const PUBLIC_READ_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1950
+ getPublishedEntryPreview: {
1951
+ path: "/public/content/{siteId}/{type}/{slug}/preview",
1952
+ method: "GET",
1953
+ revalidate: publicReadFreshnessSeconds("getPublishedEntryPreview"),
1954
+ tags: ["content-{siteId}-{type}-{slug}"],
1955
+ auth: "public",
1956
+ responseKind: "json"
1957
+ },
1958
+ listPublishedEntries: {
1959
+ path: "/public/content/{siteId}/{type}/entries",
1960
+ method: "GET",
1961
+ revalidate: publicReadFreshnessSeconds("listPublishedEntries"),
1962
+ tags: ["content-{siteId}-{type}"],
1963
+ auth: "public",
1964
+ responseKind: "json"
1965
+ },
1966
+ getPublicFormById: {
1967
+ path: "/public/forms/{formId}",
1968
+ method: "GET",
1969
+ revalidate: publicReadFreshnessSeconds("getPublicFormById"),
1970
+ tags: [TAG_TEMPLATES.formById],
1971
+ auth: "public",
1972
+ responseKind: "json"
1973
+ },
1974
+ listPublicEvents: {
1975
+ path: "/public/sites/{siteId}/events",
1976
+ method: "GET",
1977
+ revalidate: publicReadFreshnessSeconds("listPublicEvents"),
1978
+ tags: [TAG_TEMPLATES.publicEvents],
1979
+ auth: "public",
1980
+ responseKind: "json"
1981
+ },
1982
+ listPublicTeamMembers: {
1983
+ path: "/public/sites/{siteId}/team-members",
1984
+ method: "GET",
1985
+ revalidate: publicReadFreshnessSeconds("listPublicTeamMembers"),
1986
+ tags: [TAG_TEMPLATES.publicTeamMembers],
1987
+ errors: [],
1988
+ auth: "public",
1989
+ responseKind: "json"
1990
+ },
1991
+ listPublicPasses: {
1992
+ path: "/public/sites/{siteId}/bookings/products/passes",
1993
+ method: "GET",
1994
+ revalidate: publicReadFreshnessSeconds("listPublicPasses"),
1995
+ tags: [TAG_TEMPLATES.publicPasses],
1996
+ auth: "public",
1997
+ responseKind: "json"
1998
+ },
1999
+ listPublicMemberships: {
2000
+ path: "/public/sites/{siteId}/bookings/products/memberships",
2001
+ method: "GET",
2002
+ revalidate: publicReadFreshnessSeconds("listPublicMemberships"),
2003
+ tags: [TAG_TEMPLATES.publicMemberships],
2004
+ auth: "public",
2005
+ responseKind: "json"
2006
+ },
2007
+ listPublicProducts: {
2008
+ path: "/public/sites/{siteId}/products",
2009
+ method: "GET",
2010
+ revalidate: publicReadFreshnessSeconds("listPublicProducts"),
2011
+ tags: [TAG_TEMPLATES.publicProducts],
2012
+ errors: [],
2013
+ auth: "public",
2014
+ responseKind: "json"
2015
+ }
2016
+ });
2017
+ //#endregion
2018
+ //#region ../api/src/publicOnboardingAttemptEndpointDefinitions.ts
2019
+ /**
2020
+ * The anonymous onboarding attempt, addressed by its opaque resume token.
2021
+ *
2022
+ * Every route here is reached before there is an account, so none of them can
2023
+ * be scoped to a site or a user: the token is the whole credential. They are
2024
+ * kept together so that stays obvious.
2025
+ */
2026
+ const PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
2027
+ createPublicOnboardingAttempt: {
2028
+ path: "/public/onboarding/attempts",
2029
+ method: "POST",
2030
+ auth: "public",
2031
+ errors: [],
2032
+ responseKind: "json"
2033
+ },
2034
+ createPublicOnboardingLogoUploadUrl: {
2035
+ path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
2036
+ method: "POST",
2037
+ auth: "public",
2038
+ errors: [],
2039
+ responseKind: "json"
2040
+ },
2041
+ uploadPublicOnboardingLogo: {
2042
+ path: "/public/onboarding/attempts/{attemptToken}/logo",
2043
+ method: "POST",
2044
+ auth: "public",
2045
+ errors: [],
2046
+ responseKind: "json"
2047
+ },
2048
+ getPublicOnboardingAttempt: {
2049
+ path: "/public/onboarding/attempts/{attemptToken}",
2050
+ method: "GET",
2051
+ auth: "public",
2052
+ errors: [],
2053
+ responseKind: "json"
2054
+ },
2055
+ getPublicOnboardingAttemptProgress: {
2056
+ path: "/public/onboarding/attempts/{attemptToken}/status",
2057
+ method: "GET",
2058
+ auth: "public",
2059
+ errors: [],
2060
+ responseKind: "json"
2061
+ },
2062
+ updatePublicOnboardingAttempt: {
2063
+ path: "/public/onboarding/attempts/{attemptToken}",
2064
+ method: "PATCH",
2065
+ auth: "public",
2066
+ errors: [],
2067
+ responseKind: "json"
2068
+ },
2069
+ runPublicOnboardingAttempt: {
2070
+ path: "/public/onboarding/attempts/{attemptToken}/run",
2071
+ method: "POST",
2072
+ auth: "public",
2073
+ errors: [],
2074
+ responseKind: "json"
2075
+ },
2076
+ resendPublicOnboardingAttemptConfirmation: {
2077
+ path: "/public/onboarding/attempts/{attemptToken}/resend-confirmation",
2078
+ method: "POST",
2079
+ auth: "public",
2080
+ errors: [],
2081
+ responseKind: "json"
2082
+ }
2083
+ });
2084
+ //#endregion
2085
+ //#region ../api/src/billingEndpointDefinitions.ts
2086
+ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
2087
+ adminChangePlan: {
2088
+ path: "/admin/billing/plan",
2089
+ method: "POST",
2090
+ tags: ["admin", "billing"],
2091
+ auth: "admin",
2092
+ responseKind: "json"
2093
+ },
2094
+ changePlan: {
2095
+ path: "/billing/plan/change",
2096
+ method: "POST",
2097
+ tags: ["billing"],
2098
+ auth: "user",
2099
+ responseKind: "json"
2100
+ },
2101
+ createBillingPortalSession: {
2102
+ path: "/billing/portal/session",
2103
+ method: "POST",
2104
+ tags: ["billing"],
2105
+ auth: "user",
2106
+ responseKind: "json"
2107
+ }
2108
+ });
1778
2109
  const API_ENDPOINTS$1 = {
1779
2110
  ...ACCOUNT_ENDPOINT_DEFINITIONS,
2111
+ ...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
1780
2112
  ...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
1781
2113
  ...GIFTING_ENDPOINT_DEFINITIONS,
2114
+ ...PUBLIC_READ_ENDPOINT_DEFINITIONS,
2115
+ ...BILLING_ENDPOINT_DEFINITIONS,
1782
2116
  aiContentUpdateChat: {
1783
2117
  path: "/ai/content-update-chat",
1784
2118
  method: "POST",
@@ -1932,55 +2266,6 @@ const API_ENDPOINTS$1 = {
1932
2266
  errors: [],
1933
2267
  responseKind: "json"
1934
2268
  },
1935
- createPublicOnboardingAttempt: {
1936
- path: "/public/onboarding/attempts",
1937
- method: "POST",
1938
- auth: "public",
1939
- errors: [],
1940
- responseKind: "json"
1941
- },
1942
- createPublicOnboardingLogoUploadUrl: {
1943
- path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
1944
- method: "POST",
1945
- auth: "public",
1946
- errors: [],
1947
- responseKind: "json"
1948
- },
1949
- uploadPublicOnboardingLogo: {
1950
- path: "/public/onboarding/attempts/{attemptToken}/logo",
1951
- method: "POST",
1952
- auth: "public",
1953
- errors: [],
1954
- responseKind: "json"
1955
- },
1956
- getPublicOnboardingAttempt: {
1957
- path: "/public/onboarding/attempts/{attemptToken}",
1958
- method: "GET",
1959
- auth: "public",
1960
- errors: [],
1961
- responseKind: "json"
1962
- },
1963
- getPublicOnboardingAttemptProgress: {
1964
- path: "/public/onboarding/attempts/{attemptToken}/status",
1965
- method: "GET",
1966
- auth: "public",
1967
- errors: [],
1968
- responseKind: "json"
1969
- },
1970
- updatePublicOnboardingAttempt: {
1971
- path: "/public/onboarding/attempts/{attemptToken}",
1972
- method: "PATCH",
1973
- auth: "public",
1974
- errors: [],
1975
- responseKind: "json"
1976
- },
1977
- runPublicOnboardingAttempt: {
1978
- path: "/public/onboarding/attempts/{attemptToken}/run",
1979
- method: "POST",
1980
- auth: "public",
1981
- errors: [],
1982
- responseKind: "json"
1983
- },
1984
2269
  aiSiteWizardSuggestGoals: {
1985
2270
  path: "/sites/{siteId}/ai/site-wizard/goals",
1986
2271
  method: "POST",
@@ -3496,20 +3781,6 @@ const API_ENDPOINTS$1 = {
3496
3781
  auth: "admin",
3497
3782
  responseKind: "json"
3498
3783
  },
3499
- adminChangePlan: {
3500
- path: "/admin/billing/plan",
3501
- method: "POST",
3502
- tags: ["admin", "billing"],
3503
- auth: "admin",
3504
- responseKind: "json"
3505
- },
3506
- changePlan: {
3507
- path: "/billing/plan/change",
3508
- method: "POST",
3509
- tags: ["billing"],
3510
- auth: "user",
3511
- responseKind: "json"
3512
- },
3513
3784
  mfaTotpEnroll: {
3514
3785
  path: "/auth/mfa/totp/enroll",
3515
3786
  method: "POST",
@@ -3781,13 +4052,6 @@ const API_ENDPOINTS$1 = {
3781
4052
  auth: "user",
3782
4053
  responseKind: "json"
3783
4054
  },
3784
- createNavigationMenu: {
3785
- path: "/sites/{siteId}/navigation/menus",
3786
- method: "POST",
3787
- tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation],
3788
- auth: "user",
3789
- responseKind: "json"
3790
- },
3791
4055
  getNavigationMenuItems: {
3792
4056
  path: "/sites/{siteId}/navigation/menus/{menuId}",
3793
4057
  method: "GET",
@@ -3799,28 +4063,6 @@ const API_ENDPOINTS$1 = {
3799
4063
  auth: "user",
3800
4064
  responseKind: "json"
3801
4065
  },
3802
- updateNavigationMenu: {
3803
- path: "/sites/{siteId}/navigation/menus/{menuId}",
3804
- method: "PATCH",
3805
- tags: [
3806
- TAG_TEMPLATES.siteCollection,
3807
- TAG_TEMPLATES.siteNavigation,
3808
- TAG_TEMPLATES.navigationMenuById
3809
- ],
3810
- auth: "user",
3811
- responseKind: "json"
3812
- },
3813
- deleteNavigationMenu: {
3814
- path: "/sites/{siteId}/navigation/menus/{menuId}",
3815
- method: "DELETE",
3816
- tags: [
3817
- TAG_TEMPLATES.siteCollection,
3818
- TAG_TEMPLATES.siteNavigation,
3819
- TAG_TEMPLATES.navigationMenuById
3820
- ],
3821
- auth: "user",
3822
- responseKind: "json"
3823
- },
3824
4066
  createNavigationItem: {
3825
4067
  path: "/sites/{siteId}/navigation/menus/{menuId}/items",
3826
4068
  method: "POST",
@@ -3871,39 +4113,28 @@ const API_ENDPOINTS$1 = {
3871
4113
  path: "/sites/{siteId}/routable-content",
3872
4114
  method: "GET",
3873
4115
  revalidate: 60,
3874
- tags: [TAG_TEMPLATES.siteRoutableContent],
3875
- auth: "user",
3876
- responseKind: "json"
3877
- },
3878
- getPublicRoutableContent: {
3879
- path: "/public/sites/{siteId}/routable-content",
3880
- method: "GET",
3881
- revalidate: 60,
3882
- tags: [TAG_TEMPLATES.siteRoutableContent],
3883
- auth: "public",
3884
- responseKind: "json"
3885
- },
3886
- getPublicSitemapRoutes: {
3887
- path: "/public/sites/{siteId}/sitemap",
3888
- method: "GET",
3889
- revalidate: 60,
3890
- tags: [TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings],
3891
- auth: "public",
4116
+ tags: [TAG_TEMPLATES.siteRoutableContent],
4117
+ auth: "user",
3892
4118
  responseKind: "json"
3893
4119
  },
3894
- getPublishedEntryPreview: {
3895
- path: "/public/content/{siteId}/{type}/{slug}/preview",
4120
+ getPublicRoutableContent: {
4121
+ path: "/public/sites/{siteId}/routable-content",
3896
4122
  method: "GET",
3897
4123
  revalidate: 60,
3898
- tags: ["content-{siteId}-{type}-{slug}"],
4124
+ tags: [TAG_TEMPLATES.siteRoutableContent],
3899
4125
  auth: "public",
3900
4126
  responseKind: "json"
3901
4127
  },
3902
- listPublishedEntries: {
3903
- path: "/public/content/{siteId}/{type}/entries",
4128
+ getPublicSitemapRoutes: {
4129
+ path: "/public/sites/{siteId}/sitemap",
3904
4130
  method: "GET",
3905
4131
  revalidate: 60,
3906
- tags: ["content-{siteId}-{type}"],
4132
+ tags: [
4133
+ TAG_TEMPLATES.siteRoutableContent,
4134
+ TAG_TEMPLATES.siteSettings,
4135
+ TAG_TEMPLATES.publicEvents,
4136
+ TAG_TEMPLATES.publicBookingServices
4137
+ ],
3907
4138
  auth: "public",
3908
4139
  responseKind: "json"
3909
4140
  },
@@ -4630,14 +4861,6 @@ const API_ENDPOINTS$1 = {
4630
4861
  auth: "public",
4631
4862
  responseKind: "json"
4632
4863
  },
4633
- getPublicFormById: {
4634
- path: "/public/forms/{formId}",
4635
- method: "GET",
4636
- revalidate: 60,
4637
- tags: [TAG_TEMPLATES.formById],
4638
- auth: "public",
4639
- responseKind: "json"
4640
- },
4641
4864
  listPublicForms: {
4642
4865
  path: "/public/sites/{siteId}/forms",
4643
4866
  method: "GET",
@@ -4920,14 +5143,6 @@ const API_ENDPOINTS$1 = {
4920
5143
  auth: "service",
4921
5144
  responseKind: "json"
4922
5145
  },
4923
- listPublicEvents: {
4924
- path: "/public/sites/{siteId}/events",
4925
- method: "GET",
4926
- revalidate: 60,
4927
- tags: [TAG_TEMPLATES.publicEvents],
4928
- auth: "public",
4929
- responseKind: "json"
4930
- },
4931
5146
  getPublicEventFilters: {
4932
5147
  path: "/public/sites/{siteId}/events/filters",
4933
5148
  method: "GET",
@@ -4936,15 +5151,6 @@ const API_ENDPOINTS$1 = {
4936
5151
  auth: "public",
4937
5152
  responseKind: "json"
4938
5153
  },
4939
- listPublicTeamMembers: {
4940
- path: "/public/sites/{siteId}/team-members",
4941
- method: "GET",
4942
- revalidate: 60,
4943
- tags: [TAG_TEMPLATES.publicTeamMembers],
4944
- errors: [],
4945
- auth: "public",
4946
- responseKind: "json"
4947
- },
4948
5154
  resolveWaitlistClaim: {
4949
5155
  path: "/public/sites/{siteId}/waitlists/claim/resolve",
4950
5156
  method: "POST",
@@ -4958,31 +5164,6 @@ const API_ENDPOINTS$1 = {
4958
5164
  "server:internal_error"
4959
5165
  ]
4960
5166
  },
4961
- listPublicPasses: {
4962
- path: "/public/sites/{siteId}/bookings/products/passes",
4963
- method: "GET",
4964
- revalidate: 300,
4965
- tags: [TAG_TEMPLATES.publicPasses],
4966
- auth: "public",
4967
- responseKind: "json"
4968
- },
4969
- listPublicMemberships: {
4970
- path: "/public/sites/{siteId}/bookings/products/memberships",
4971
- method: "GET",
4972
- revalidate: 300,
4973
- tags: [TAG_TEMPLATES.publicMemberships],
4974
- auth: "public",
4975
- responseKind: "json"
4976
- },
4977
- listPublicProducts: {
4978
- path: "/public/sites/{siteId}/products",
4979
- method: "GET",
4980
- revalidate: 300,
4981
- tags: [TAG_TEMPLATES.publicProducts],
4982
- errors: [],
4983
- auth: "public",
4984
- responseKind: "json"
4985
- },
4986
5167
  createShopCheckout: {
4987
5168
  path: "/public/sites/{siteId}/bookings/checkout",
4988
5169
  method: "POST",
@@ -6811,13 +6992,6 @@ const API_ENDPOINTS$1 = {
6811
6992
  auth: "service",
6812
6993
  responseKind: "json"
6813
6994
  },
6814
- sdkDeleteNavigationMenu: {
6815
- path: "/sdk/{siteId}/navigation/{menuId}",
6816
- method: "DELETE",
6817
- auth: "service",
6818
- responseKind: "json",
6819
- errors: ["resource:not_found", "server:internal_error"]
6820
- },
6821
6995
  sdkUpsertTheme: {
6822
6996
  path: "/sdk/{siteId}/theme",
6823
6997
  method: "POST",
@@ -7279,6 +7453,17 @@ const API_ENDPOINTS$1 = {
7279
7453
  auth: "public",
7280
7454
  responseKind: "json"
7281
7455
  },
7456
+ portalCancelWaitlistEntry: {
7457
+ path: "/portal/waitlists/{entryId}/cancel",
7458
+ method: "POST",
7459
+ auth: "public",
7460
+ responseKind: "json",
7461
+ errors: [
7462
+ "resource:not_found",
7463
+ "resource:conflict",
7464
+ "server:internal_error"
7465
+ ]
7466
+ },
7282
7467
  portalGetEventGuests: {
7283
7468
  path: "/portal/events/{registrationId}/guests",
7284
7469
  method: "GET",
@@ -8095,7 +8280,7 @@ var SimpleCache = class {
8095
8280
  * 1. This constant
8096
8281
  * 2. The "version" field in package.json
8097
8282
  */
8098
- const SDK_VERSION = "0.138.0";
8283
+ const SDK_VERSION = "0.140.0";
8099
8284
  //#endregion
8100
8285
  //#region src/client/error.ts
8101
8286
  let _Symbol$for;
@@ -8285,6 +8470,27 @@ function getResilienceStatusFromError(error) {
8285
8470
  return error[resilienceStatusSymbol];
8286
8471
  }
8287
8472
  //#endregion
8473
+ //#region ../blocks/src/system/data/loaderEndpoints.ts
8474
+ const SUPPORTED_LOADER_ENDPOINTS = [
8475
+ "listPublishedEntries",
8476
+ "getPublishedEntryPreview",
8477
+ "listPublicEvents",
8478
+ "listPublicEventCalendarWindow",
8479
+ "listPublicRecurringSchedule",
8480
+ "getPublicEventDetails",
8481
+ "listPublicRouteCandidates",
8482
+ "listPublicTeamMembers",
8483
+ "listPublicProducts",
8484
+ "listPublicPasses",
8485
+ "listPublicMemberships",
8486
+ "getPublicFormById",
8487
+ "getPublicBookingServices",
8488
+ "getPublicWeeklySlotAvailability"
8489
+ ];
8490
+ function isSupportedLoaderEndpoint(endpoint) {
8491
+ return SUPPORTED_LOADER_ENDPOINTS.includes(endpoint);
8492
+ }
8493
+ //#endregion
8288
8494
  //#region src/public-api/runtime.ts
8289
8495
  const PUBLIC_ENDPOINT_NAMES = [
8290
8496
  "getSite",
@@ -8356,7 +8562,7 @@ const API_ENDPOINTS = Object.freeze({
8356
8562
  listPublishedEntries: {
8357
8563
  path: "/public/content/{siteId}/{type}/entries",
8358
8564
  method: "GET",
8359
- revalidate: 60,
8565
+ revalidate: publicReadFreshnessSeconds("listPublishedEntries"),
8360
8566
  tags: ["content-{siteId}-{type}"],
8361
8567
  auth: "public",
8362
8568
  responseKind: "json"
@@ -8364,7 +8570,7 @@ const API_ENDPOINTS = Object.freeze({
8364
8570
  getPublishedEntryPreview: {
8365
8571
  path: "/public/content/{siteId}/{type}/{slug}/preview",
8366
8572
  method: "GET",
8367
- revalidate: 60,
8573
+ revalidate: publicReadFreshnessSeconds("getPublishedEntryPreview"),
8368
8574
  tags: ["content-{siteId}-{type}-{slug}"],
8369
8575
  auth: "public",
8370
8576
  responseKind: "json"
@@ -8372,7 +8578,7 @@ const API_ENDPOINTS = Object.freeze({
8372
8578
  getPublicFormById: {
8373
8579
  path: "/public/forms/{formId}",
8374
8580
  method: "GET",
8375
- revalidate: 60,
8581
+ revalidate: publicReadFreshnessSeconds("getPublicFormById"),
8376
8582
  tags: ["riverbank:form:{formId}"],
8377
8583
  auth: "public",
8378
8584
  responseKind: "json"
@@ -8388,7 +8594,7 @@ const API_ENDPOINTS = Object.freeze({
8388
8594
  getPublicBookingServices: {
8389
8595
  path: "/public/bookings/services",
8390
8596
  method: "GET",
8391
- revalidate: 60,
8597
+ revalidate: publicReadFreshnessSeconds("getPublicBookingServices"),
8392
8598
  tags: ["riverbank:site:{siteId}:public-booking-services"],
8393
8599
  auth: "public",
8394
8600
  responseKind: "json"
@@ -8396,7 +8602,7 @@ const API_ENDPOINTS = Object.freeze({
8396
8602
  getPublicWeeklySlotAvailability: {
8397
8603
  path: "/public/bookings/weekly-slot-availability",
8398
8604
  method: "GET",
8399
- revalidate: 60,
8605
+ revalidate: publicReadFreshnessSeconds("getPublicWeeklySlotAvailability"),
8400
8606
  tags: ["riverbank:site:{siteId}:public-booking-availability", "riverbank:site:{siteId}:public-booking-services"],
8401
8607
  auth: "public",
8402
8608
  responseKind: "json"
@@ -8410,7 +8616,7 @@ const API_ENDPOINTS = Object.freeze({
8410
8616
  listPublicEvents: {
8411
8617
  path: "/public/sites/{siteId}/events",
8412
8618
  method: "GET",
8413
- revalidate: 60,
8619
+ revalidate: publicReadFreshnessSeconds("listPublicEvents"),
8414
8620
  tags: ["riverbank:site:{siteId}:public-events"],
8415
8621
  auth: "public",
8416
8622
  responseKind: "json"
@@ -8424,7 +8630,7 @@ const API_ENDPOINTS = Object.freeze({
8424
8630
  listPublicTeamMembers: {
8425
8631
  path: "/public/sites/{siteId}/team-members",
8426
8632
  method: "GET",
8427
- revalidate: 60,
8633
+ revalidate: publicReadFreshnessSeconds("listPublicTeamMembers"),
8428
8634
  tags: ["riverbank:site:{siteId}:public-team-members"],
8429
8635
  auth: "public",
8430
8636
  responseKind: "json"
@@ -8432,7 +8638,7 @@ const API_ENDPOINTS = Object.freeze({
8432
8638
  listPublicProducts: {
8433
8639
  path: "/public/sites/{siteId}/products",
8434
8640
  method: "GET",
8435
- revalidate: 300,
8641
+ revalidate: publicReadFreshnessSeconds("listPublicProducts"),
8436
8642
  tags: ["riverbank:site:{siteId}:public-products"],
8437
8643
  auth: "public",
8438
8644
  responseKind: "json"
@@ -8440,7 +8646,7 @@ const API_ENDPOINTS = Object.freeze({
8440
8646
  listPublicPasses: {
8441
8647
  path: "/public/sites/{siteId}/bookings/products/passes",
8442
8648
  method: "GET",
8443
- revalidate: 300,
8649
+ revalidate: publicReadFreshnessSeconds("listPublicPasses"),
8444
8650
  tags: ["riverbank:site:{siteId}:public-passes"],
8445
8651
  auth: "public",
8446
8652
  responseKind: "json"
@@ -8448,7 +8654,7 @@ const API_ENDPOINTS = Object.freeze({
8448
8654
  listPublicMemberships: {
8449
8655
  path: "/public/sites/{siteId}/bookings/products/memberships",
8450
8656
  method: "GET",
8451
- revalidate: 300,
8657
+ revalidate: publicReadFreshnessSeconds("listPublicMemberships"),
8452
8658
  tags: ["riverbank:site:{siteId}:public-memberships"],
8453
8659
  auth: "public",
8454
8660
  responseKind: "json"
@@ -8489,7 +8695,12 @@ const API_ENDPOINTS = Object.freeze({
8489
8695
  path: "/public/sites/{siteId}/sitemap",
8490
8696
  method: "GET",
8491
8697
  revalidate: 60,
8492
- tags: ["riverbank:site:{siteId}:routable-content", "riverbank:site:{siteId}:settings"],
8698
+ tags: [
8699
+ "riverbank:site:{siteId}:routable-content",
8700
+ "riverbank:site:{siteId}:settings",
8701
+ "riverbank:site:{siteId}:public-events",
8702
+ "riverbank:site:{siteId}:public-booking-services"
8703
+ ],
8493
8704
  auth: "public",
8494
8705
  responseKind: "json"
8495
8706
  }
@@ -8498,96 +8709,6 @@ function buildEndpointURL(baseURL, endpoint) {
8498
8709
  return baseURL + API_ENDPOINTS[endpoint].path;
8499
8710
  }
8500
8711
  //#endregion
8501
- //#region ../blocks/src/system/data/loaderEndpoints.ts
8502
- const SUPPORTED_LOADER_ENDPOINTS = [
8503
- "listPublishedEntries",
8504
- "getPublishedEntryPreview",
8505
- "listPublicEvents",
8506
- "listPublicEventCalendarWindow",
8507
- "listPublicRecurringSchedule",
8508
- "getPublicEventDetails",
8509
- "listPublicRouteCandidates",
8510
- "listPublicTeamMembers",
8511
- "listPublicProducts",
8512
- "listPublicPasses",
8513
- "listPublicMemberships",
8514
- "getPublicFormById",
8515
- "getPublicBookingServices",
8516
- "getPublicWeeklySlotAvailability"
8517
- ];
8518
- function isSupportedLoaderEndpoint(endpoint) {
8519
- return SUPPORTED_LOADER_ENDPOINTS.includes(endpoint);
8520
- }
8521
- //#endregion
8522
- //#region ../blocks/src/system/data/publicLoaderCachePolicy.ts
8523
- /**
8524
- * Canonical freshness policy for public block-loader data.
8525
- *
8526
- * Consumers may implement tagged caching differently, but a loader marked
8527
- * live here must not be placed in a process-local or durable stale cache.
8528
- */
8529
- const PUBLIC_LOADER_CACHE_POLICIES = {
8530
- listPublicEventCalendarWindow: {
8531
- kind: "live",
8532
- reason: "booking_correctness"
8533
- },
8534
- listPublishedEntries: {
8535
- kind: "tagged",
8536
- tags: ["published_content"]
8537
- },
8538
- getPublishedEntryPreview: {
8539
- kind: "tagged",
8540
- tags: ["published_content"]
8541
- },
8542
- listPublicEvents: {
8543
- kind: "live",
8544
- reason: "booking_correctness"
8545
- },
8546
- listPublicRecurringSchedule: {
8547
- kind: "live",
8548
- reason: "booking_correctness"
8549
- },
8550
- getPublicEventDetails: {
8551
- kind: "live",
8552
- reason: "booking_correctness"
8553
- },
8554
- listPublicRouteCandidates: {
8555
- kind: "tagged",
8556
- tags: ["published_content"]
8557
- },
8558
- listPublicTeamMembers: {
8559
- kind: "tagged",
8560
- tags: ["public_team_members"]
8561
- },
8562
- listPublicProducts: {
8563
- kind: "tagged",
8564
- tags: ["public_products"]
8565
- },
8566
- listPublicPasses: {
8567
- kind: "live",
8568
- reason: "booking_correctness"
8569
- },
8570
- listPublicMemberships: {
8571
- kind: "live",
8572
- reason: "booking_correctness"
8573
- },
8574
- getPublicFormById: {
8575
- kind: "tagged",
8576
- tags: ["site_forms"]
8577
- },
8578
- getPublicBookingServices: {
8579
- kind: "live",
8580
- reason: "booking_correctness"
8581
- },
8582
- getPublicWeeklySlotAvailability: {
8583
- kind: "live",
8584
- reason: "booking_correctness"
8585
- }
8586
- };
8587
- function getPublicLoaderCachePolicy(endpoint) {
8588
- return PUBLIC_LOADER_CACHE_POLICIES[endpoint];
8589
- }
8590
- //#endregion
8591
8712
  //#region src/client/runtimeCacheKeys.ts
8592
8713
  const DEFAULT_PUBLISHED_RUNTIME_CACHE_PAYLOAD_SCHEMA_VERSION = 1;
8593
8714
  function toNonEmptyString(value) {
@@ -8891,7 +9012,7 @@ function resolveKnownEndpointPolicy(endpoint, params) {
8891
9012
  endpoint,
8892
9013
  reason: "force_refresh"
8893
9014
  };
8894
- if (isSupportedLoaderEndpoint(endpoint) && getPublicLoaderCachePolicy(endpoint).kind === "live") return {
9015
+ if (isSupportedLoaderEndpoint(endpoint) && getPublicReadCachePolicy(endpoint).kind === "live") return {
8895
9016
  kind: "live-only",
8896
9017
  endpoint,
8897
9018
  reason: "safety_sensitive_booking"
@@ -9069,14 +9190,51 @@ function createContentReadOperations(input) {
9069
9190
  };
9070
9191
  }
9071
9192
  //#endregion
9072
- //#region src/client/publicLoaderCacheAccess.ts
9073
- function shouldWrite(cacheEnabled, force) {
9074
- return cacheEnabled && !force;
9075
- }
9076
- function liveLoaderOptions(endpoint, signal) {
9193
+ //#region src/client/publicAppointmentReadOperations.ts
9194
+ function createPublicAppointmentReadOperations(deps) {
9077
9195
  return {
9078
- force: getPublicLoaderCachePolicy(endpoint).kind === "live",
9079
- signal
9196
+ async getPublicBookingServices(params) {
9197
+ const { siteId, ids, signal } = params;
9198
+ if (!siteId) throw new Error("getPublicBookingServices() requires siteId");
9199
+ const cacheKey = `public-booking-services:${siteId}:${ids ?? ""}`;
9200
+ return deps.resilientFetchData("getPublicBookingServices", cacheKey, async (requestSignal) => {
9201
+ const apiParams = {
9202
+ siteId,
9203
+ ...ids && { ids }
9204
+ };
9205
+ return await deps.apiClient({
9206
+ endpoint: "getPublicBookingServices",
9207
+ params: apiParams,
9208
+ options: { signal: requestSignal }
9209
+ });
9210
+ }, { signal });
9211
+ },
9212
+ async getPublicWeeklySlotAvailability(params) {
9213
+ const { siteId, serviceId, resourceId, horizonWeeks, timezone, signal } = params;
9214
+ if (!siteId || !serviceId) throw new Error("getPublicWeeklySlotAvailability() requires siteId and serviceId");
9215
+ const cacheKey = [
9216
+ "public-weekly-slot-availability",
9217
+ siteId,
9218
+ serviceId,
9219
+ resourceId ?? "",
9220
+ horizonWeeks ?? "",
9221
+ timezone ?? ""
9222
+ ].join(":");
9223
+ return deps.resilientFetchData("getPublicWeeklySlotAvailability", cacheKey, async (requestSignal) => {
9224
+ const apiParams = {
9225
+ siteId,
9226
+ serviceId,
9227
+ ...resourceId && { resourceId },
9228
+ ...horizonWeeks !== void 0 && { horizonWeeks: String(horizonWeeks) },
9229
+ ...timezone && { timezone }
9230
+ };
9231
+ return await deps.apiClient({
9232
+ endpoint: "getPublicWeeklySlotAvailability",
9233
+ params: apiParams,
9234
+ options: { signal: requestSignal }
9235
+ });
9236
+ }, { signal });
9237
+ }
9080
9238
  };
9081
9239
  }
9082
9240
  //#endregion
@@ -9086,7 +9244,7 @@ function createPublicEventReadOperations(deps) {
9086
9244
  const { siteId, subject, segment, signal } = params;
9087
9245
  if (!siteId || !segment) throw new Error(`${kind === "event-run" ? "resolveEventRun" : "resolveEventOccurrence"}() requires siteId, subject, and segment`);
9088
9246
  const subjectId = subject.kind === "eventOffering" ? subject.eventOfferingId : subject.eventSeriesId;
9089
- return deps.resilientFetchData(`${kind}:${siteId}:${subject.kind}:${subjectId}:${segment}`, (requestSignal) => deps.apiClient({
9247
+ return deps.resilientFetchData("resolveEventSubroute", `${kind}:${siteId}:${subject.kind}:${subjectId}:${segment}`, (requestSignal) => deps.apiClient({
9090
9248
  endpoint: "resolveEventSubroute",
9091
9249
  params: {
9092
9250
  siteId,
@@ -9100,14 +9258,14 @@ function createPublicEventReadOperations(deps) {
9100
9258
  }
9101
9259
  return {
9102
9260
  async listPublicEventCalendarWindow({ signal, ...params }) {
9103
- return deps.resilientFetchData(`public-calendar-window:${JSON.stringify(params)}`, (requestSignal) => deps.apiClient({
9261
+ return deps.resilientFetchData("listPublicEventCalendarWindow", `public-calendar-window:${JSON.stringify(params)}`, (requestSignal) => deps.apiClient({
9104
9262
  endpoint: "listPublicEventCalendarWindow",
9105
9263
  params: {
9106
9264
  ...params,
9107
9265
  limit: params.limit === void 0 ? void 0 : String(params.limit)
9108
9266
  },
9109
9267
  options: { signal: requestSignal }
9110
- }), liveLoaderOptions("listPublicEventCalendarWindow", signal));
9268
+ }), { signal });
9111
9269
  },
9112
9270
  async resolveEventOccurrence(params) {
9113
9271
  const response = await resolveEventSubroute(params, "event-occurrence");
@@ -9416,6 +9574,25 @@ var CircuitOpenError = class extends Error {
9416
9574
  }
9417
9575
  };
9418
9576
  //#endregion
9577
+ //#region src/client/publicLoaderCacheAccess.ts
9578
+ function shouldWrite(cacheEnabled, force) {
9579
+ return cacheEnabled && !force;
9580
+ }
9581
+ /**
9582
+ * Applies the canonical block-loader freshness policy at the SDK fetch seam.
9583
+ *
9584
+ * Callers provide the endpoint identity, but do not opt into live behavior.
9585
+ * This makes a newly-live endpoint bypass memory and fallback caches without a
9586
+ * second method-level wiring change.
9587
+ */
9588
+ function applyPublicLoaderCachePolicy(endpoint, options) {
9589
+ if (!isPublicReadEndpoint(endpoint) || getPublicReadCachePolicy(endpoint).kind !== "live") return options;
9590
+ return {
9591
+ ...options,
9592
+ force: true
9593
+ };
9594
+ }
9595
+ //#endregion
9419
9596
  //#region src/client/index.ts
9420
9597
  let prebuildModule = null;
9421
9598
  function tryRequire(modulePath) {
@@ -9918,8 +10095,8 @@ function createRiverbankClientWithDeps(deps, config) {
9918
10095
  })).resilience);
9919
10096
  }
9920
10097
  }
9921
- async function resilientFetchData(cacheKey, fetcher, options) {
9922
- return (await resilientFetch(cacheKey, fetcher, options)).data;
10098
+ async function resilientFetchData(policyEndpoint, cacheKey, fetcher, options) {
10099
+ return (await resilientFetch(cacheKey, fetcher, applyPublicLoaderCachePolicy(policyEndpoint, options))).data;
9923
10100
  }
9924
10101
  const contentReads = createContentReadOperations({
9925
10102
  apiClient,
@@ -9930,10 +10107,14 @@ function createRiverbankClientWithDeps(deps, config) {
9930
10107
  apiClient,
9931
10108
  resilientFetchData
9932
10109
  });
10110
+ const publicAppointmentReads = createPublicAppointmentReadOperations({
10111
+ apiClient,
10112
+ resilientFetchData
10113
+ });
9933
10114
  async function getEntriesInternal(params) {
9934
10115
  const { siteId, contentType, limit, offset, order, preview = false, mode, entryIds, includeMeta, signal } = params;
9935
10116
  const entryIdsCacheKey = mode === "manual" && entryIds?.length ? entryIds.join(",") : "";
9936
- return resilientFetchData(`entries:${siteId}:${contentType}:${limit ?? ""}:${offset ?? ""}:${order ?? ""}:${preview}:${mode ?? ""}:${entryIdsCacheKey}:${includeMeta ?? ""}`, async (sig) => {
10117
+ return resilientFetchData("listPublishedEntries", `entries:${siteId}:${contentType}:${limit ?? ""}:${offset ?? ""}:${order ?? ""}:${preview}:${mode ?? ""}:${entryIdsCacheKey}:${includeMeta ?? ""}`, async (sig) => {
9937
10118
  let orderParam;
9938
10119
  if (order === "newest") orderParam = "published_at.desc";
9939
10120
  else if (order === "oldest") orderParam = "published_at.asc";
@@ -9993,7 +10174,7 @@ function createRiverbankClientWithDeps(deps, config) {
9993
10174
  },
9994
10175
  async getEntry(params) {
9995
10176
  const { siteId, contentType, slug, signal } = params;
9996
- return resilientFetchData(`entry:${siteId}:${contentType}:${slug}`, async (sig) => {
10177
+ return resilientFetchData("getPublishedEntryPreview", `entry:${siteId}:${contentType}:${slug}`, async (sig) => {
9997
10178
  return await apiClient({
9998
10179
  endpoint: "getPublishedEntryPreview",
9999
10180
  params: {
@@ -10008,7 +10189,7 @@ function createRiverbankClientWithDeps(deps, config) {
10008
10189
  async getPublicFormById(params) {
10009
10190
  const { formId, siteId, signal } = params;
10010
10191
  if (!formId || !siteId) throw new Error("getPublicFormById() requires formId and siteId");
10011
- return resilientFetchData(`public-form:${siteId}:${formId}`, async (sig) => {
10192
+ return resilientFetchData("getPublicFormById", `public-form:${siteId}:${formId}`, async (sig) => {
10012
10193
  return normalizePublicFormResult(await apiClient({
10013
10194
  endpoint: "getPublicFormById",
10014
10195
  params: {
@@ -10022,7 +10203,7 @@ function createRiverbankClientWithDeps(deps, config) {
10022
10203
  async getForms(params) {
10023
10204
  const { siteId, signal } = params;
10024
10205
  if (!siteId) throw new Error("getForms() requires siteId");
10025
- return resilientFetchData(`forms:${siteId}`, async (sig) => {
10206
+ return resilientFetchData("listPublicForms", `forms:${siteId}`, async (sig) => {
10026
10207
  return normalizePublicFormsResult(await apiClient({
10027
10208
  endpoint: "listPublicForms",
10028
10209
  params: { siteId },
@@ -10050,48 +10231,11 @@ function createRiverbankClientWithDeps(deps, config) {
10050
10231
  } : void 0
10051
10232
  });
10052
10233
  },
10053
- async getPublicBookingServices(params) {
10054
- const { siteId, ids, signal } = params;
10055
- if (!siteId) throw new Error("getPublicBookingServices() requires siteId");
10056
- return resilientFetchData(`public-booking-services:${siteId}:${ids ?? ""}`, async (sig) => {
10057
- return await apiClient({
10058
- endpoint: "getPublicBookingServices",
10059
- params: {
10060
- siteId,
10061
- ...ids && { ids }
10062
- },
10063
- options: { signal: sig }
10064
- });
10065
- }, { signal });
10066
- },
10067
- async getPublicWeeklySlotAvailability(params) {
10068
- const { siteId, serviceId, resourceId, horizonWeeks, timezone, signal } = params;
10069
- if (!siteId || !serviceId) throw new Error("getPublicWeeklySlotAvailability() requires siteId and serviceId");
10070
- return resilientFetchData([
10071
- "public-weekly-slot-availability",
10072
- siteId,
10073
- serviceId,
10074
- resourceId ?? "",
10075
- horizonWeeks ?? "",
10076
- timezone ?? ""
10077
- ].join(":"), async (sig) => {
10078
- return await apiClient({
10079
- endpoint: "getPublicWeeklySlotAvailability",
10080
- params: {
10081
- siteId,
10082
- serviceId,
10083
- ...resourceId && { resourceId },
10084
- ...horizonWeeks !== void 0 && { horizonWeeks: String(horizonWeeks) },
10085
- ...timezone && { timezone }
10086
- },
10087
- options: { signal: sig }
10088
- });
10089
- }, { signal });
10090
- },
10234
+ ...publicAppointmentReads,
10091
10235
  async listPublicEvents(params) {
10092
10236
  const { siteId, limit, from, to, afterStartsAt, afterId, stage, categoryIds, venueId, staffMemberId, kind, eventSurface, eventPresets, scheduleScope, detailLevel, readProfile, seriesId, includeOccurrenceId, signal } = params;
10093
10237
  if (!siteId) throw new Error("listPublicEvents() requires siteId");
10094
- return resilientFetchData(`public-events:${siteId}:${limit ?? ""}:${from ?? ""}:${to ?? ""}:${afterStartsAt ?? ""}:${afterId ?? ""}:${stage ?? ""}:${categoryIds ?? ""}:${venueId ?? ""}:${staffMemberId ?? ""}:${kind ?? ""}:${eventSurface ?? ""}:${eventPresets ?? ""}:${scheduleScope ?? ""}:${detailLevel ?? ""}:${readProfile ?? ""}:${seriesId ?? ""}:${includeOccurrenceId ?? ""}`, async (sig) => {
10238
+ return resilientFetchData("listPublicEvents", `public-events:${siteId}:${limit ?? ""}:${from ?? ""}:${to ?? ""}:${afterStartsAt ?? ""}:${afterId ?? ""}:${stage ?? ""}:${categoryIds ?? ""}:${venueId ?? ""}:${staffMemberId ?? ""}:${kind ?? ""}:${eventSurface ?? ""}:${eventPresets ?? ""}:${scheduleScope ?? ""}:${detailLevel ?? ""}:${readProfile ?? ""}:${seriesId ?? ""}:${includeOccurrenceId ?? ""}`, async (sig) => {
10095
10239
  return await apiClient({
10096
10240
  endpoint: "listPublicEvents",
10097
10241
  params: {
@@ -10116,12 +10260,12 @@ function createRiverbankClientWithDeps(deps, config) {
10116
10260
  },
10117
10261
  options: { signal: sig }
10118
10262
  });
10119
- }, liveLoaderOptions("listPublicEvents", signal));
10263
+ }, { signal });
10120
10264
  },
10121
10265
  async getPublicEventDetails(params) {
10122
10266
  const { siteId, limit, from, to, afterStartsAt, afterId, stage, categoryIds, venueId, staffMemberId, kind, eventSurface, eventPresets, scheduleScope, seriesId, includeOccurrenceId, signal } = params;
10123
10267
  if (!siteId) throw new Error("getPublicEventDetails() requires siteId");
10124
- return resilientFetchData(`public-event-details:${siteId}:${limit ?? ""}:${from ?? ""}:${to ?? ""}:${afterStartsAt ?? ""}:${afterId ?? ""}:${stage ?? ""}:${categoryIds ?? ""}:${venueId ?? ""}:${staffMemberId ?? ""}:${kind ?? ""}:${eventSurface ?? ""}:${eventPresets ?? ""}:${scheduleScope ?? ""}:${seriesId ?? ""}:${includeOccurrenceId ?? ""}`, async (sig) => {
10268
+ return resilientFetchData("getPublicEventDetails", `public-event-details:${siteId}:${limit ?? ""}:${from ?? ""}:${to ?? ""}:${afterStartsAt ?? ""}:${afterId ?? ""}:${stage ?? ""}:${categoryIds ?? ""}:${venueId ?? ""}:${staffMemberId ?? ""}:${kind ?? ""}:${eventSurface ?? ""}:${eventPresets ?? ""}:${scheduleScope ?? ""}:${seriesId ?? ""}:${includeOccurrenceId ?? ""}`, async (sig) => {
10125
10269
  const requestId = "eventDetails";
10126
10270
  return normalizeBatchBlockLoaderResult(await apiClient({
10127
10271
  endpoint: "batchBlockLoaders",
@@ -10151,12 +10295,12 @@ function createRiverbankClientWithDeps(deps, config) {
10151
10295
  }] },
10152
10296
  options: { signal: sig }
10153
10297
  }), requestId);
10154
- }, liveLoaderOptions("getPublicEventDetails", signal));
10298
+ }, { signal });
10155
10299
  },
10156
10300
  async listPublicTeamMembers(params) {
10157
10301
  const { siteId, stage, signal } = params;
10158
10302
  if (!siteId) throw new Error("listPublicTeamMembers() requires siteId");
10159
- return resilientFetchData(`public-team-members:${siteId}:${stage ?? ""}`, async (sig) => {
10303
+ return resilientFetchData("listPublicTeamMembers", `public-team-members:${siteId}:${stage ?? ""}`, async (sig) => {
10160
10304
  return await apiClient({
10161
10305
  endpoint: "listPublicTeamMembers",
10162
10306
  params: {
@@ -10171,7 +10315,7 @@ function createRiverbankClientWithDeps(deps, config) {
10171
10315
  const { siteId, stage, categorySelector, signal } = params;
10172
10316
  if (!siteId) throw new Error("listPublicProducts() requires siteId");
10173
10317
  const selectorKey = categorySelector ? categorySelector.kind === "category" ? `category:${categorySelector.productCategoryId}` : `current-category-page:${categorySelector.productCategoryEntryId}` : "";
10174
- return resilientFetchData(`public-products:${siteId}:${stage ?? ""}:${selectorKey}`, async (sig) => {
10318
+ return resilientFetchData("listPublicProducts", `public-products:${siteId}:${stage ?? ""}:${selectorKey}`, async (sig) => {
10175
10319
  return await apiClient({
10176
10320
  endpoint: "listPublicProducts",
10177
10321
  params: {
@@ -10186,7 +10330,7 @@ function createRiverbankClientWithDeps(deps, config) {
10186
10330
  async listPublicPasses(params) {
10187
10331
  const { siteId, categories, signal } = params;
10188
10332
  if (!siteId) throw new Error("listPublicPasses() requires siteId");
10189
- return resilientFetchData(`public-passes:${siteId}:${categories ?? ""}`, async (sig) => {
10333
+ return resilientFetchData("listPublicPasses", `public-passes:${siteId}:${categories ?? ""}`, async (sig) => {
10190
10334
  return await apiClient({
10191
10335
  endpoint: "listPublicPasses",
10192
10336
  params: {
@@ -10200,7 +10344,7 @@ function createRiverbankClientWithDeps(deps, config) {
10200
10344
  async listPublicMemberships(params) {
10201
10345
  const { siteId, categories, signal } = params;
10202
10346
  if (!siteId) throw new Error("listPublicMemberships() requires siteId");
10203
- return resilientFetchData(`public-memberships:${siteId}:${categories ?? ""}`, async (sig) => {
10347
+ return resilientFetchData("listPublicMemberships", `public-memberships:${siteId}:${categories ?? ""}`, async (sig) => {
10204
10348
  return await apiClient({
10205
10349
  endpoint: "listPublicMemberships",
10206
10350
  params: {
@@ -10215,7 +10359,7 @@ function createRiverbankClientWithDeps(deps, config) {
10215
10359
  async checkRedirect(params) {
10216
10360
  const { siteId, path, signal } = params;
10217
10361
  if (!siteId || !path) throw new Error("checkRedirect() requires siteId and path");
10218
- return resilientFetchData(`redirect:${siteId}:${path}`, async (sig) => {
10362
+ return resilientFetchData("checkRedirect", `redirect:${siteId}:${path}`, async (sig) => {
10219
10363
  return await apiClient({
10220
10364
  endpoint: "checkRedirect",
10221
10365
  params: {
@@ -10255,7 +10399,7 @@ function createRiverbankClientWithDeps(deps, config) {
10255
10399
  async getAllPublishedRoutes(params) {
10256
10400
  const { siteId, signal } = params;
10257
10401
  if (!siteId) throw new Error("getAllPublishedRoutes() requires siteId");
10258
- return resilientFetchData(`routable-content:${siteId}:published`, async (sig) => {
10402
+ return resilientFetchData("getPublicRoutableContent", `routable-content:${siteId}:published`, async (sig) => {
10259
10403
  return await apiClient({
10260
10404
  endpoint: "getPublicRoutableContent",
10261
10405
  params: {
@@ -10269,7 +10413,7 @@ function createRiverbankClientWithDeps(deps, config) {
10269
10413
  async getSitemapRoutes(params) {
10270
10414
  const { siteId, page, pageSize, signal } = params;
10271
10415
  if (!siteId) throw new Error("getSitemapRoutes() requires siteId");
10272
- return resilientFetchData(`sitemap:${siteId}:${page ?? 1}:${pageSize ?? "default"}`, async (sig) => {
10416
+ return resilientFetchData("getPublicSitemapRoutes", `sitemap:${siteId}:${page ?? 1}:${pageSize ?? "default"}`, async (sig) => {
10273
10417
  return await apiClient({
10274
10418
  endpoint: "getPublicSitemapRoutes",
10275
10419
  params: {
@@ -10493,9 +10637,8 @@ async function prebuildNavigation(siteData, outputDir, onProgress) {
10493
10637
  });
10494
10638
  const cacheFile = {
10495
10639
  menus: menus.map((menu) => ({
10496
- identifier: menu.identifier,
10497
10640
  id: menu.id,
10498
- name: menu.name,
10641
+ location: menu.location,
10499
10642
  items: menu.items
10500
10643
  })),
10501
10644
  generatedAt: (/* @__PURE__ */ new Date()).toISOString()
@@ -10932,6 +11075,7 @@ const SYSTEM_BLOCK_KINDS = [
10932
11075
  "block.form",
10933
11076
  "block.contact-newsletter",
10934
11077
  "block.appointment-booking",
11078
+ "block.appointment-services",
10935
11079
  "block.weekly-slot-availability",
10936
11080
  "block.event-registration",
10937
11081
  "block.event-details",