@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.
- package/README.md +12 -16
- package/dist/{PreviewEditorSidebar-BVPur_CU.mjs → PreviewEditorSidebar-CUyTzd5z.mjs} +4 -4
- package/dist/{PreviewEditorUI-DLhWX8oh.mjs → PreviewEditorUI-Agkw4v5i.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BguJY1SW.mjs → PreviewQueryProvider-CN0ewic5.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-Tda6qw4z.mjs → SdkPreviewModeRuntime-DdbeAdS8.mjs} +62 -28
- package/dist/{SiteChromeCustomizeContext-BHFgMjde.mjs → SiteChromeCustomizeContext-CqGOz-Kv.mjs} +8467 -5616
- package/dist/_dts/ai/src/contracts/proposals.d.ts +264 -495
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +221 -242
- package/dist/_dts/api/src/accessAdmin.d.ts +74 -104
- package/dist/_dts/api/src/aiEndpoints.d.ts +5 -1
- package/dist/_dts/api/src/authSubmission.d.ts +46 -0
- package/dist/_dts/api/src/billing.d.ts +18 -7
- package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +23 -0
- package/dist/_dts/api/src/billingEndpointTypes.d.ts +26 -0
- package/dist/_dts/api/src/blocks.d.ts +2 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +1 -2
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +8 -1
- package/dist/_dts/api/src/communications.d.ts +0 -1
- package/dist/_dts/api/src/contentRuntime.d.ts +16 -4
- package/dist/_dts/api/src/endpoints.d.ts +275 -167
- package/dist/_dts/api/src/event-destination-policy.d.ts +2 -1
- package/dist/_dts/api/src/footerSettings.d.ts +10 -10
- package/dist/_dts/api/src/index.d.ts +11 -10
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/mailchimpIntegration.d.ts +2 -59
- package/dist/_dts/api/src/mailingListIntegration.d.ts +123 -0
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -1
- package/dist/_dts/api/src/navigation/locations.d.ts +1 -0
- package/dist/_dts/api/src/navigation/types.d.ts +1 -1
- package/dist/_dts/api/src/navigation.d.ts +1 -26
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +109 -2
- package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +25 -0
- package/dist/_dts/api/src/onboarding/surfaceData.d.ts +185 -0
- package/dist/_dts/api/src/privacyPolicy.d.ts +74 -2
- package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +14 -6
- package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +1 -1
- package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +1 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +11 -3
- package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +2 -4
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +9 -49
- package/dist/_dts/api/src/publicOnboardingAttemptEndpointDefinitions.d.ts +65 -0
- package/dist/_dts/api/src/publicReadEndpointDefinitions.d.ts +73 -0
- package/dist/_dts/api/src/saveOutcome.d.ts +20 -0
- package/dist/_dts/api/src/schemas/site-api-keys.d.ts +1 -1
- package/dist/_dts/api/src/sdkContracts.d.ts +5 -32
- package/dist/_dts/api/src/sdkPushContracts.d.ts +18 -0
- package/dist/_dts/api/src/sdkThemeWire.d.ts +46 -46
- package/dist/_dts/api/src/settings/permissions.d.ts +12 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +9 -34
- package/dist/_dts/api/src/siteOnboarding.d.ts +84 -228
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +3 -13
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +3 -1
- package/dist/_dts/api/src/siteSettings.d.ts +38 -6
- package/dist/_dts/api/src/types.d.ts +78 -77
- package/dist/_dts/api/src/wholeSeriesRuns.d.ts +2 -37
- package/dist/_dts/billing/src/membership/index.d.ts +17 -7
- package/dist/_dts/billing/src/plans/display.d.ts +15 -0
- package/dist/_dts/billing/src/plans/registry.d.ts +2 -0
- package/dist/_dts/billing/src/plans/standing.d.ts +19 -0
- package/dist/_dts/billing/src/plans/types.d.ts +4 -7
- package/dist/_dts/billing/src/site-arrangements.d.ts +14 -3
- package/dist/_dts/billing/src/subscriptions/evidence.d.ts +12 -0
- package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +31 -0
- package/dist/_dts/billing/src/subscriptions/store.d.ts +23 -5
- package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -15
- package/dist/_dts/blocks/src/client.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +48 -20
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +2 -0
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +9 -0
- package/dist/_dts/blocks/src/pageRenderingMode.d.ts +12 -6
- package/dist/_dts/blocks/src/portal/types.d.ts +2 -4
- package/dist/_dts/blocks/src/portal/waitlist-types.d.ts +35 -0
- package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +11 -0
- package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +39 -66
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +42 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +39 -114
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/catalogue.d.ts +18 -0
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/fields.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +7 -13
- package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/index.d.ts +4 -4
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +2 -1
- package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +2 -74
- package/dist/_dts/blocks/src/system/data/types.d.ts +9 -0
- package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +33 -100
- package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +0 -28
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +7 -3
- package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +5 -15
- package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/waitlist-claims.d.ts +7 -2
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +78 -30
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +39 -15
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarToday.d.ts +22 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +94 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +1 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/checkoutRecovery.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +56 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +6 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useCheckoutRecovery.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +12 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventSourceRecovery.d.ts +18 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.client.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +24 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +28 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/bookability.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/duration.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/location.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/quickDates.d.ts +16 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.d.ts +9 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayHeaders.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventQuickDates.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +7 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/useHydrationReady.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +62 -33
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +14 -31
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-catalogue.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-content.d.ts +23 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -6
- package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +2 -0
- package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +5 -0
- package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
- package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +32 -16
- package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +34 -0
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +2 -1
- package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +6 -24
- package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +3 -1
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +4 -2
- package/dist/_dts/core/src/branded.d.ts +0 -8
- package/dist/_dts/core/src/footer-engagement.d.ts +2 -6
- package/dist/_dts/core/src/index.d.ts +10 -1
- package/dist/_dts/core/src/mailing-list-identifiers.d.ts +21 -0
- package/dist/_dts/core/src/mailing-list-runtime.d.ts +42 -0
- package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +14 -0
- package/dist/_dts/core/src/mailing-list-setup.d.ts +142 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +224 -0
- package/dist/_dts/core/src/mailing-list-targeting-parser.d.ts +12 -0
- package/dist/_dts/core/src/mailing-list-targeting.d.ts +93 -0
- package/dist/_dts/core/src/navigation-locations.d.ts +28 -0
- package/dist/_dts/core/src/participants.d.ts +2 -29
- package/dist/_dts/core/src/public-experience.d.ts +4 -0
- package/dist/_dts/core/src/public-profile.d.ts +35 -1
- package/dist/_dts/core/src/public-read-cache-contract.d.ts +45 -0
- package/dist/_dts/core/src/site-route-target.d.ts +9 -2
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +797 -954
- package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListGlobalSettingsSummary.d.ts +10 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +12 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/context.d.ts +14 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/index.d.ts +3 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +7 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +19 -0
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
- package/dist/_dts/sdk/src/client/publicAppointmentReadOperations.d.ts +12 -0
- package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +2 -1
- package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +11 -4
- package/dist/_dts/sdk/src/config/content-types.d.ts +3 -13
- package/dist/_dts/sdk/src/config/content-validation.d.ts +5 -8
- package/dist/_dts/sdk/src/constants.d.ts +3 -3
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -31
- package/dist/_dts/sdk/src/navigation/index.d.ts +11 -29
- package/dist/_dts/sdk/src/next/index.d.ts +4 -4
- package/dist/_dts/sdk/src/prebuild/types.d.ts +1 -5
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +44 -33
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +5 -0
- package/dist/_dts/sdk/src/rendering/client.d.ts +3 -20
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +4 -0
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +8 -1
- package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
- package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/cards/types.d.ts +21 -21
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +8 -2
- package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +2 -2
- package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +41 -0
- package/dist/_dts/theme-core/src/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/inputs/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +54 -54
- package/dist/_dts/theme-core/src/runtime/buildThemeRuntime.d.ts +0 -1
- package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +1 -4
- package/dist/_dts/theme-core/src/schema.d.ts +84 -84
- package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/surfaces/foregroundInteraction.d.ts +77 -0
- package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/tokens/tokens.d.ts +7 -0
- package/dist/_dts/theme-core/src/typography/generateTypographyCss.d.ts +2 -2
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/callout.d.ts +1 -1
- package/dist/_dts/ui/src/lib/use-delayed-flag.d.ts +9 -0
- package/dist/_dts/ui/src/pending-button.d.ts +10 -0
- package/dist/client/{BookingConsentAgreement-DQUik1Mx.mjs → BookingConsentAgreement-CuKa82V4.mjs} +4 -4
- package/dist/client/{DiscountCodeDisclosure-CU67Q4vH.mjs → DiscountCodeDisclosure-BbYieKWB.mjs} +1 -1
- package/dist/client/{EventCombined.client-a02TXUgg.mjs → EventCombined.client-LTfR1Aby.mjs} +444 -200
- package/dist/client/{EventListing.client-99qx7jFl.mjs → EventListing.client-DUHpYSuo.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-CWzcq73L.mjs → LeafletStaticMap-CHRupL6m.mjs} +1 -1
- package/dist/client/{accordion-D1nb3-Oj.mjs → accordion-6HiIFxNL.mjs} +1 -1
- package/dist/client/{bookingForm-BGrmLhaO.mjs → bookingForm-Dlmid43H.mjs} +7 -7
- package/dist/client/bookings.mjs +368 -142
- package/dist/client/{carousel-DSmOx3ad.mjs → carousel-DmkZRRq_.mjs} +2 -2
- package/dist/client/{carousel.client-59G_WMr4.mjs → carousel.client-DQTjCVQT.mjs} +1 -1
- package/dist/client/{cart-COWeOIUk.mjs → cart-CIC24330.mjs} +3 -3
- package/dist/client/{checkout-CeysaIJK.mjs → checkout-D1Zw9imo.mjs} +3 -3
- package/dist/client/{checkoutUrls-BuseL0dw.mjs → checkoutUrls-FL6lRkrt.mjs} +1 -1
- package/dist/client/client.mjs +5017 -2258
- package/dist/client/{colorStyles-CrxJrPjJ.mjs → colorStyles-3013aRAY.mjs} +3 -1
- package/dist/client/{context-DBzX85Xc.mjs → context-Cy1OayHx.mjs} +9 -21
- package/dist/client/{dates-DCYhZBlW.mjs → dates-aDcfoLHr.mjs} +21 -3
- package/dist/client/{eventCalendar-BgsN73Ul.mjs → eventCalendar-FQxMPAjf.mjs} +81 -79
- package/dist/client/{eventCombined-DcZQAMQP.mjs → eventCombined-Dr3ac6Hb.mjs} +3 -3
- package/dist/client/{eventDetails-BWwGJ54l.mjs → eventDetails-D-AzUHFQ.mjs} +4 -4
- package/dist/client/{eventListing-DqYqV8vp.mjs → eventListing-B3XxBf3i.mjs} +3 -3
- package/dist/client/{eventRegistration-DQGDgu_e.mjs → eventRegistration-I6EaokFD.mjs} +543 -155
- package/dist/client/{form-ClfpasVT.mjs → form-BbWckVWY.mjs} +3 -3
- package/dist/client/{headerSection-BuOMe98N.mjs → headerSection-C9qU4Y7x.mjs} +2 -2
- package/dist/client/hooks.mjs +1685 -716
- package/dist/client/{locationMap-CEqu_sfa.mjs → locationMap-CLCShvlG.mjs} +3 -3
- package/dist/client/{media-BOHuueS5.mjs → media-DHpfFwd3.mjs} +1 -1
- package/dist/client/newsletterForm-Briukxzi.mjs +444 -0
- package/dist/client/{pricing-xj7MPZlK.mjs → pricing-Copadu-2.mjs} +1 -1
- package/dist/client/{productDetail-vxqTt5Xj.mjs → productDetail-oujlRd-r.mjs} +3 -3
- package/dist/client/{productList-OTdZu8sb.mjs → productList-BRiIRUcd.mjs} +3 -3
- package/dist/client/{propsDecoder-CY9gGEF7.mjs → propsDecoder-CB2KS_ko.mjs} +706 -160
- package/dist/client/rendering/client.mjs +3161 -1226
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +4864 -1914
- package/dist/client/{scrollToBlock--BFV6kl-.mjs → scrollToBlock-B1IS1_ua.mjs} +1 -1
- package/dist/client/{shop-CP4YbDL9.mjs → shop-Vn6yNFED.mjs} +6 -6
- package/dist/client/{shop-commerce-APs4XBXE.mjs → shop-commerce-BVTqipYp.mjs} +7 -7
- package/dist/client/{shop-commerce-store-CAVLxLFr.mjs → shop-commerce-store-BVnJVy7v.mjs} +1 -1
- package/dist/client/{shopShared-BnSRrwXI.mjs → shopShared-COIeK77T.mjs} +4 -4
- package/dist/client/{useEventFilters-1a1by4c8.mjs → useEventFilters-DzIUcS9n.mjs} +58 -11
- package/dist/preview-next/before-render.mjs +357 -175
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +357 -175
- package/dist/preview-next/middleware.mjs +357 -175
- package/dist/{previewAuthStore-BkEgnYPP.mjs → previewAuthStore-Gjb6r6vz.mjs} +357 -175
- package/dist/{sdk-runtime-DwGfsT0S.mjs → sdk-runtime-CnCLvZRv.mjs} +2 -2
- package/dist/{separator-BeqDLneQ.mjs → separator-DKDRJ1oH.mjs} +1 -1
- package/dist/server/components.mjs +3389 -1251
- package/dist/server/config-validation.mjs +2737 -1784
- package/dist/server/config.mjs +2742 -1788
- package/dist/server/data.mjs +1586 -615
- package/dist/server/index.mjs +496 -352
- package/dist/server/navigation.mjs +16 -47
- package/dist/server/next.mjs +3978 -2007
- package/dist/server/page-converter.mjs +1109 -553
- package/dist/server/prebuild.mjs +2 -3
- package/dist/server/rendering/server.mjs +4101 -1951
- package/dist/server/rendering.mjs +3416 -1259
- package/dist/server/routing.mjs +1869 -786
- package/dist/server/server.mjs +3260 -2482
- package/dist/server/theme-bridge.mjs +725 -124
- package/dist/server/theme.mjs +8 -2
- package/dist/styles/index.css +526 -68
- package/package.json +1 -1
- package/dist/_dts/api/src/navigation/identity.d.ts +0 -59
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +0 -291
- package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionCompactRow.d.ts +0 -29
- package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionList.d.ts +0 -13
- package/dist/_dts/core/src/newsletter-signup-destination.d.ts +0 -38
- package/dist/client/newsletterForm-IbrHjMxy.mjs +0 -322
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { type Brand, type ContentVersionId, type SiteId } from './branded';
|
|
2
|
+
import type { FooterModuleId } from './footer-composition-types';
|
|
3
|
+
import type { BrevoConfirmation, MailingListGlobalForm, MailingListProvider, MailingListSetupRevision, ToggleConfirmation } from './mailing-list-setup';
|
|
4
|
+
import type { ResolvedMailingListTarget } from './mailing-list-targeting';
|
|
5
|
+
import type { BrevoConnectionId, MailchimpConnectionId } from './mailing-list-identifiers';
|
|
6
|
+
export declare const MAILING_LIST_SUBMISSION_BUDGET_MS = 10000;
|
|
7
|
+
export type MailingListBlockId = Brand<string, 'MailingListBlockId'>;
|
|
8
|
+
export type MailingListSignedSourceToken = Brand<string, 'MailingListSignedSourceToken'>;
|
|
9
|
+
export type MailingListSdkFooterBlockId = Brand<string, 'MailingListSdkFooterBlockId'>;
|
|
10
|
+
export type MailingListSdkContentHash = Brand<string, 'MailingListSdkContentHash'>;
|
|
11
|
+
export type MailingListFooterRevision = Brand<number, 'MailingListFooterRevision'>;
|
|
12
|
+
export type ExternalSignupConsentId = Brand<string, 'ExternalSignupConsentId'>;
|
|
13
|
+
export type NormalizedSubscriberEmail = Brand<string, 'NormalizedSubscriberEmail'>;
|
|
14
|
+
export declare function parseMailingListBlockId(value: unknown): MailingListBlockId | null;
|
|
15
|
+
export declare function parseMailingListSignedSourceToken(value: unknown): MailingListSignedSourceToken | null;
|
|
16
|
+
export declare function parseMailingListSdkFooterBlockId(value: unknown): MailingListSdkFooterBlockId | null;
|
|
17
|
+
export declare function parseMailingListSdkContentHash(value: unknown): MailingListSdkContentHash | null;
|
|
18
|
+
export declare function parseMailingListContentVersionId(value: unknown): ContentVersionId | null;
|
|
19
|
+
export declare function parseMailingListFooterRevision(value: unknown): MailingListFooterRevision | null;
|
|
20
|
+
export type MailingListSignupSource = Readonly<{
|
|
21
|
+
tag: 'published_block';
|
|
22
|
+
blockId: MailingListBlockId;
|
|
23
|
+
contentVersionId: ContentVersionId;
|
|
24
|
+
}> | Readonly<{
|
|
25
|
+
tag: 'applied_footer';
|
|
26
|
+
sectionId: FooterModuleId;
|
|
27
|
+
revision: MailingListFooterRevision;
|
|
28
|
+
}> | Readonly<{
|
|
29
|
+
tag: 'sdk_footer_block';
|
|
30
|
+
blockId: MailingListSdkFooterBlockId;
|
|
31
|
+
contentHash: MailingListSdkContentHash;
|
|
32
|
+
}>;
|
|
33
|
+
/** Public proof of which published placement owns a signup request. */
|
|
34
|
+
export type MailingListSignupSourceRef = Readonly<{
|
|
35
|
+
tag: 'block_ref';
|
|
36
|
+
blockId: MailingListBlockId;
|
|
37
|
+
contentVersionId: ContentVersionId;
|
|
38
|
+
}> | Readonly<{
|
|
39
|
+
tag: 'signed_source_ref';
|
|
40
|
+
token: MailingListSignedSourceToken;
|
|
41
|
+
}>;
|
|
42
|
+
/** Source identity signed into managed-footer and SDK-footer form tokens. */
|
|
43
|
+
export type MailingListSignupTokenSource = Readonly<{
|
|
44
|
+
kind: 'footer-composition';
|
|
45
|
+
sectionId: FooterModuleId;
|
|
46
|
+
revision: MailingListFooterRevision;
|
|
47
|
+
}> | Readonly<{
|
|
48
|
+
kind: 'sdk-footer-block';
|
|
49
|
+
blockId: MailingListSdkFooterBlockId;
|
|
50
|
+
contentHash: MailingListSdkContentHash;
|
|
51
|
+
}>;
|
|
52
|
+
export declare function buildMailingListSignupBlockSourceRef(blockId: unknown, contentVersionId: unknown): MailingListSignupSourceRef | null;
|
|
53
|
+
type MailingListSignupProfileBase = Readonly<{
|
|
54
|
+
email: NormalizedSubscriberEmail;
|
|
55
|
+
phone: Readonly<{
|
|
56
|
+
tag: 'not_collected';
|
|
57
|
+
}> | Readonly<{
|
|
58
|
+
tag: 'collected';
|
|
59
|
+
value: string | null;
|
|
60
|
+
}>;
|
|
61
|
+
}>;
|
|
62
|
+
export type ResolvedMailingListProfileField = Readonly<{
|
|
63
|
+
requirement: 'required';
|
|
64
|
+
value: string;
|
|
65
|
+
}> | Readonly<{
|
|
66
|
+
requirement: 'optional';
|
|
67
|
+
value: string | null;
|
|
68
|
+
}>;
|
|
69
|
+
export type MailingListSignupProfile = (MailingListSignupProfileBase & Readonly<{
|
|
70
|
+
preset: 'emailOnly';
|
|
71
|
+
}>) | (MailingListSignupProfileBase & Readonly<{
|
|
72
|
+
preset: 'emailName';
|
|
73
|
+
name: ResolvedMailingListProfileField;
|
|
74
|
+
}>) | (MailingListSignupProfileBase & Readonly<{
|
|
75
|
+
preset: 'emailFirstLast';
|
|
76
|
+
firstName: ResolvedMailingListProfileField;
|
|
77
|
+
lastName: ResolvedMailingListProfileField;
|
|
78
|
+
}>) | (MailingListSignupProfileBase & Readonly<{
|
|
79
|
+
preset: 'emailNameCompany';
|
|
80
|
+
name: ResolvedMailingListProfileField;
|
|
81
|
+
company: ResolvedMailingListProfileField;
|
|
82
|
+
}>);
|
|
83
|
+
export type MailingListSignupProfileInput = Readonly<{
|
|
84
|
+
email: string;
|
|
85
|
+
name?: string | null;
|
|
86
|
+
firstName?: string | null;
|
|
87
|
+
lastName?: string | null;
|
|
88
|
+
company?: string | null;
|
|
89
|
+
phone?: string | null;
|
|
90
|
+
}>;
|
|
91
|
+
export type MailingListSignupProfileParseError = Readonly<{
|
|
92
|
+
tag: 'invalid_email';
|
|
93
|
+
}> | Readonly<{
|
|
94
|
+
tag: 'required_field_missing';
|
|
95
|
+
field: 'name' | 'first_name' | 'last_name' | 'company';
|
|
96
|
+
}>;
|
|
97
|
+
export declare function parseMailingListSignupProfile(form: MailingListGlobalForm, input: MailingListSignupProfileInput): Readonly<{
|
|
98
|
+
ok: true;
|
|
99
|
+
value: MailingListSignupProfile;
|
|
100
|
+
}> | Readonly<{
|
|
101
|
+
ok: false;
|
|
102
|
+
error: MailingListSignupProfileParseError;
|
|
103
|
+
}>;
|
|
104
|
+
type ResolvedMailingListSignupIntentBase = Readonly<{
|
|
105
|
+
siteId: SiteId;
|
|
106
|
+
setupRevision: MailingListSetupRevision;
|
|
107
|
+
source: MailingListSignupSource;
|
|
108
|
+
consentedAt: string;
|
|
109
|
+
}>;
|
|
110
|
+
type ResolvedMailingListProviderIntent = Readonly<{
|
|
111
|
+
provider: 'native';
|
|
112
|
+
target: Extract<ResolvedMailingListTarget, {
|
|
113
|
+
provider: 'native';
|
|
114
|
+
}>;
|
|
115
|
+
confirmation: ToggleConfirmation;
|
|
116
|
+
}> | Readonly<{
|
|
117
|
+
provider: 'mailchimp';
|
|
118
|
+
connectionId: MailchimpConnectionId;
|
|
119
|
+
target: Extract<ResolvedMailingListTarget, {
|
|
120
|
+
provider: 'mailchimp';
|
|
121
|
+
}>;
|
|
122
|
+
confirmation: ToggleConfirmation;
|
|
123
|
+
}> | Readonly<{
|
|
124
|
+
provider: 'brevo';
|
|
125
|
+
connectionId: BrevoConnectionId;
|
|
126
|
+
target: Extract<ResolvedMailingListTarget, {
|
|
127
|
+
provider: 'brevo';
|
|
128
|
+
}>;
|
|
129
|
+
confirmation: BrevoConfirmation;
|
|
130
|
+
}>;
|
|
131
|
+
export type ResolvedMailingListSignupIntent = ResolvedMailingListSignupIntentBase & Readonly<{
|
|
132
|
+
profile: MailingListSignupProfile;
|
|
133
|
+
}> & ResolvedMailingListProviderIntent;
|
|
134
|
+
export type MailingListProviderAcknowledgement = Readonly<{
|
|
135
|
+
tag: 'subscribed';
|
|
136
|
+
}> | Readonly<{
|
|
137
|
+
tag: 'confirmation_requested';
|
|
138
|
+
}>;
|
|
139
|
+
export type MailingListProviderFailure = Readonly<{
|
|
140
|
+
tag: 'configuration_unavailable';
|
|
141
|
+
}> | Readonly<{
|
|
142
|
+
tag: 'authentication_failed';
|
|
143
|
+
}> | Readonly<{
|
|
144
|
+
tag: 'target_unavailable';
|
|
145
|
+
}> | Readonly<{
|
|
146
|
+
tag: 'profile_rejected';
|
|
147
|
+
}> | Readonly<{
|
|
148
|
+
tag: 'subscriber_suppressed';
|
|
149
|
+
}> | Readonly<{
|
|
150
|
+
tag: 'rate_limited';
|
|
151
|
+
}> | Readonly<{
|
|
152
|
+
tag: 'temporarily_unavailable';
|
|
153
|
+
}> | Readonly<{
|
|
154
|
+
tag: 'uncertain';
|
|
155
|
+
reason: 'deadline_exceeded' | 'network_interrupted';
|
|
156
|
+
}>;
|
|
157
|
+
export type MailingListProviderSubmissionResult = Readonly<{
|
|
158
|
+
ok: true;
|
|
159
|
+
acknowledgement: MailingListProviderAcknowledgement;
|
|
160
|
+
}> | Readonly<{
|
|
161
|
+
ok: false;
|
|
162
|
+
error: MailingListProviderFailure;
|
|
163
|
+
}>;
|
|
164
|
+
export type MailingListSubmissionDeadline = Readonly<{
|
|
165
|
+
deadlineEpochMs: number;
|
|
166
|
+
signal: AbortSignal;
|
|
167
|
+
}>;
|
|
168
|
+
export type MailingListProviderPort<TProvider extends MailingListProvider> = Readonly<{
|
|
169
|
+
submit: (intent: Extract<ResolvedMailingListSignupIntent, {
|
|
170
|
+
provider: TProvider;
|
|
171
|
+
}>, deadline: MailingListSubmissionDeadline) => Promise<MailingListProviderSubmissionResult>;
|
|
172
|
+
}>;
|
|
173
|
+
export type MailingListPublicSignupResponse = Readonly<{
|
|
174
|
+
tag: 'subscribed';
|
|
175
|
+
}> | Readonly<{
|
|
176
|
+
tag: 'confirmation_required';
|
|
177
|
+
}> | Readonly<{
|
|
178
|
+
tag: 'invalid_input';
|
|
179
|
+
reason: 'profile_rejected';
|
|
180
|
+
}> | Readonly<{
|
|
181
|
+
tag: 'unavailable';
|
|
182
|
+
reason: 'configuration_unavailable' | 'stale_configuration' | 'authentication_failed' | 'target_unavailable' | 'rate_limited' | 'temporarily_unavailable';
|
|
183
|
+
}> | Readonly<{
|
|
184
|
+
tag: 'uncertain';
|
|
185
|
+
reason: 'deadline_exceeded' | 'network_interrupted';
|
|
186
|
+
}>;
|
|
187
|
+
export declare function toMailingListPublicSignupResponse(result: MailingListProviderSubmissionResult): MailingListPublicSignupResponse;
|
|
188
|
+
export type ExternalSignupConsentAttemptOutcome = Readonly<{
|
|
189
|
+
tag: 'consent_recorded';
|
|
190
|
+
}> | Readonly<{
|
|
191
|
+
tag: 'provider_acknowledged';
|
|
192
|
+
acknowledgement: MailingListProviderAcknowledgement;
|
|
193
|
+
}> | Readonly<{
|
|
194
|
+
tag: 'provider_failed';
|
|
195
|
+
failure: MailingListProviderFailure;
|
|
196
|
+
}>;
|
|
197
|
+
type ExternalSignupConsentRecordBase = Readonly<{
|
|
198
|
+
id: ExternalSignupConsentId;
|
|
199
|
+
siteId: SiteId;
|
|
200
|
+
normalizedEmail: NormalizedSubscriberEmail;
|
|
201
|
+
consentedAt: string;
|
|
202
|
+
source: MailingListSignupSource;
|
|
203
|
+
setupRevision: MailingListSetupRevision;
|
|
204
|
+
ipAddress: string | null;
|
|
205
|
+
userAgent: string | null;
|
|
206
|
+
referer: string | null;
|
|
207
|
+
outcome: ExternalSignupConsentAttemptOutcome;
|
|
208
|
+
}>;
|
|
209
|
+
export type ExternalSignupConsentRecord = (ExternalSignupConsentRecordBase & Readonly<{
|
|
210
|
+
provider: 'mailchimp';
|
|
211
|
+
connectionId: MailchimpConnectionId;
|
|
212
|
+
target: Extract<ResolvedMailingListTarget, {
|
|
213
|
+
provider: 'mailchimp';
|
|
214
|
+
}>;
|
|
215
|
+
confirmation: ToggleConfirmation;
|
|
216
|
+
}>) | (ExternalSignupConsentRecordBase & Readonly<{
|
|
217
|
+
provider: 'brevo';
|
|
218
|
+
connectionId: BrevoConnectionId;
|
|
219
|
+
target: Extract<ResolvedMailingListTarget, {
|
|
220
|
+
provider: 'brevo';
|
|
221
|
+
}>;
|
|
222
|
+
confirmation: BrevoConfirmation;
|
|
223
|
+
}>);
|
|
224
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MailingListPlacementTargeting, MailingListVisitorSelection } from './mailing-list-targeting';
|
|
2
|
+
import { type Result } from './result';
|
|
3
|
+
export type MailingListTargetingParseError = Readonly<{
|
|
4
|
+
tag: 'invalid_mailing_list_targeting';
|
|
5
|
+
field: 'shape' | 'mode' | 'provider' | 'selection' | 'audienceId' | 'targets' | 'duplicate_target';
|
|
6
|
+
}>;
|
|
7
|
+
export type MailingListVisitorSelectionParseError = Readonly<{
|
|
8
|
+
tag: 'invalid_mailing_list_visitor_selection';
|
|
9
|
+
field: 'shape' | 'provider' | 'targets';
|
|
10
|
+
}>;
|
|
11
|
+
export declare function parseMailingListPlacementTargeting(value: unknown): Result<MailingListPlacementTargeting, MailingListTargetingParseError>;
|
|
12
|
+
export declare function parseMailingListVisitorSelection(value: unknown): Result<MailingListVisitorSelection, MailingListVisitorSelectionParseError>;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { ReadonlyNonEmptyArray } from './non-empty-array';
|
|
2
|
+
import type { BrevoListId, MailchimpInterestId, MailchimpAudienceId } from './mailing-list-identifiers';
|
|
3
|
+
import type { ConfiguredMailingListProvider, MailingListProvider, NativeMailingListTopicId } from './mailing-list-setup';
|
|
4
|
+
import { type Result } from './result';
|
|
5
|
+
export type MailingListDefaultTargeting = Readonly<{
|
|
6
|
+
mode: 'default';
|
|
7
|
+
}>;
|
|
8
|
+
export type NativeMailingListCustomTargeting = Readonly<{
|
|
9
|
+
mode: 'custom';
|
|
10
|
+
provider: 'native';
|
|
11
|
+
selection: Readonly<{
|
|
12
|
+
tag: 'fixed';
|
|
13
|
+
topicIds: ReadonlyNonEmptyArray<NativeMailingListTopicId>;
|
|
14
|
+
}> | Readonly<{
|
|
15
|
+
tag: 'visitor_choice';
|
|
16
|
+
offeredTopicIds: ReadonlyNonEmptyArray<NativeMailingListTopicId>;
|
|
17
|
+
}>;
|
|
18
|
+
}>;
|
|
19
|
+
export type BrevoMailingListCustomTargeting = Readonly<{
|
|
20
|
+
mode: 'custom';
|
|
21
|
+
provider: 'brevo';
|
|
22
|
+
selection: Readonly<{
|
|
23
|
+
tag: 'fixed';
|
|
24
|
+
listIds: ReadonlyNonEmptyArray<BrevoListId>;
|
|
25
|
+
}> | Readonly<{
|
|
26
|
+
tag: 'visitor_choice';
|
|
27
|
+
offeredListIds: ReadonlyNonEmptyArray<BrevoListId>;
|
|
28
|
+
}>;
|
|
29
|
+
}>;
|
|
30
|
+
export type MailchimpMailingListCustomTargeting = Readonly<{
|
|
31
|
+
mode: 'custom';
|
|
32
|
+
provider: 'mailchimp';
|
|
33
|
+
audienceId: MailchimpAudienceId;
|
|
34
|
+
selection: Readonly<{
|
|
35
|
+
tag: 'fixed';
|
|
36
|
+
interestIds: readonly MailchimpInterestId[];
|
|
37
|
+
}> | Readonly<{
|
|
38
|
+
tag: 'visitor_choice';
|
|
39
|
+
offeredInterestIds: ReadonlyNonEmptyArray<MailchimpInterestId>;
|
|
40
|
+
}>;
|
|
41
|
+
}>;
|
|
42
|
+
export type MailingListPlacementTargeting = MailingListDefaultTargeting | NativeMailingListCustomTargeting | BrevoMailingListCustomTargeting | MailchimpMailingListCustomTargeting;
|
|
43
|
+
export declare function sameMailingListPlacementTargeting(left: MailingListPlacementTargeting, right: MailingListPlacementTargeting): boolean;
|
|
44
|
+
export type MailingListVisitorSelection = Readonly<{
|
|
45
|
+
provider: 'native';
|
|
46
|
+
topicIds: readonly NativeMailingListTopicId[];
|
|
47
|
+
}> | Readonly<{
|
|
48
|
+
provider: 'brevo';
|
|
49
|
+
listIds: readonly BrevoListId[];
|
|
50
|
+
}> | Readonly<{
|
|
51
|
+
provider: 'mailchimp';
|
|
52
|
+
interestIds: readonly MailchimpInterestId[];
|
|
53
|
+
}>;
|
|
54
|
+
export type ResolvedMailingListTarget = Readonly<{
|
|
55
|
+
provider: 'native';
|
|
56
|
+
topicIds: ReadonlyNonEmptyArray<NativeMailingListTopicId>;
|
|
57
|
+
}> | Readonly<{
|
|
58
|
+
provider: 'brevo';
|
|
59
|
+
listIds: ReadonlyNonEmptyArray<BrevoListId>;
|
|
60
|
+
}> | Readonly<{
|
|
61
|
+
provider: 'mailchimp';
|
|
62
|
+
audienceId: MailchimpAudienceId;
|
|
63
|
+
interestIds: readonly MailchimpInterestId[];
|
|
64
|
+
}>;
|
|
65
|
+
export type MailingListTargetResolutionError = Readonly<{
|
|
66
|
+
tag: 'targeting_provider_mismatch';
|
|
67
|
+
setupProvider: MailingListProvider;
|
|
68
|
+
targetingProvider: MailingListProvider;
|
|
69
|
+
}> | Readonly<{
|
|
70
|
+
tag: 'visitor_selection_not_allowed';
|
|
71
|
+
}> | Readonly<{
|
|
72
|
+
tag: 'visitor_selection_required';
|
|
73
|
+
}> | Readonly<{
|
|
74
|
+
tag: 'visitor_selection_provider_mismatch';
|
|
75
|
+
}> | Readonly<{
|
|
76
|
+
tag: 'visitor_selection_outside_offer';
|
|
77
|
+
}>;
|
|
78
|
+
export declare function resolveMailingListTarget(input: Readonly<{
|
|
79
|
+
setup: ConfiguredMailingListProvider;
|
|
80
|
+
targeting: MailingListPlacementTargeting;
|
|
81
|
+
visitorSelection?: MailingListVisitorSelection;
|
|
82
|
+
}>): Result<ResolvedMailingListTarget, MailingListTargetResolutionError>;
|
|
83
|
+
export type MailingListChoicePresentation = Readonly<{
|
|
84
|
+
tag: 'hidden';
|
|
85
|
+
}> | Readonly<{
|
|
86
|
+
tag: 'automatic';
|
|
87
|
+
selection: MailingListVisitorSelection;
|
|
88
|
+
}> | Readonly<{
|
|
89
|
+
tag: 'visitor_choice';
|
|
90
|
+
provider: MailingListProvider;
|
|
91
|
+
optionCount: number;
|
|
92
|
+
}>;
|
|
93
|
+
export declare function planMailingListChoicePresentation(targeting: MailingListPlacementTargeting): MailingListChoicePresentation;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type Result } from './result';
|
|
2
|
+
/** The only places a site's navigation can be displayed. */
|
|
3
|
+
export declare const NAVIGATION_LOCATIONS: readonly ["main", "footer", "legal"];
|
|
4
|
+
export type NavigationLocation = (typeof NAVIGATION_LOCATIONS)[number];
|
|
5
|
+
export type NavigationLocationDescriptor = Readonly<{
|
|
6
|
+
location: NavigationLocation;
|
|
7
|
+
label: string;
|
|
8
|
+
description: string;
|
|
9
|
+
}>;
|
|
10
|
+
export declare const NAVIGATION_LOCATION_DESCRIPTORS: Readonly<Record<NavigationLocation, NavigationLocationDescriptor>>;
|
|
11
|
+
export type SiteNavigationLocationRow<T = unknown> = Readonly<{
|
|
12
|
+
location: unknown;
|
|
13
|
+
value: T;
|
|
14
|
+
}>;
|
|
15
|
+
export type SiteNavigationLocationsError = Readonly<{
|
|
16
|
+
kind: 'invalid_location';
|
|
17
|
+
index: number;
|
|
18
|
+
value: unknown;
|
|
19
|
+
}> | Readonly<{
|
|
20
|
+
kind: 'duplicate_location';
|
|
21
|
+
location: NavigationLocation;
|
|
22
|
+
}> | Readonly<{
|
|
23
|
+
kind: 'missing_location';
|
|
24
|
+
location: NavigationLocation;
|
|
25
|
+
}>;
|
|
26
|
+
export type SiteNavigationLocations<T> = Readonly<Record<NavigationLocation, T>>;
|
|
27
|
+
/** Parse all rows for one site into a complete fixed-location record. */
|
|
28
|
+
export declare function parseSiteNavigationLocations<T>(rows: readonly SiteNavigationLocationRow<T>[]): Result<SiteNavigationLocations<T>, SiteNavigationLocationsError>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AppointmentId, type AttendeeId, type Brand, type CustomerId, type EventSeriesRegistrationId, type
|
|
1
|
+
import { type AppointmentId, type AttendeeId, type Brand, type CustomerId, type EventSeriesRegistrationId, type ParticipantId } from './branded';
|
|
2
2
|
import { type Result } from './result';
|
|
3
3
|
export type ParticipantEmail = Brand<string, 'ParticipantEmail'>;
|
|
4
4
|
export type ParticipantSlotKey = Brand<string, 'ParticipantSlotKey'>;
|
|
@@ -14,26 +14,6 @@ export type ParticipantCountParseError = {
|
|
|
14
14
|
} | {
|
|
15
15
|
kind: 'non_positive_participant_count';
|
|
16
16
|
};
|
|
17
|
-
export type ProvisionalParticipantIdentity = Readonly<{
|
|
18
|
-
kind: 'event_guest';
|
|
19
|
-
eventAttendeeGuestId: EventAttendeeGuestId;
|
|
20
|
-
slotKey: ParticipantSlotKey;
|
|
21
|
-
}>;
|
|
22
|
-
export type ProvisionalParticipantIdentityMetadata = Readonly<{
|
|
23
|
-
kind: 'event_guest';
|
|
24
|
-
source: 'event_guest_backfill';
|
|
25
|
-
eventAttendeeGuestId: EventAttendeeGuestId;
|
|
26
|
-
slotKey: ParticipantSlotKey;
|
|
27
|
-
}>;
|
|
28
|
-
export type ProvisionalParticipantIdentityParseError = {
|
|
29
|
-
kind: 'not_an_object';
|
|
30
|
-
} | {
|
|
31
|
-
kind: 'unsupported_identity_kind';
|
|
32
|
-
} | {
|
|
33
|
-
kind: 'missing_event_attendee_guest_id';
|
|
34
|
-
} | {
|
|
35
|
-
kind: 'missing_slot_key';
|
|
36
|
-
};
|
|
37
17
|
export declare function unsafeAsParticipantSlotKey(value: string): ParticipantSlotKey;
|
|
38
18
|
export declare function unsafeAsParticipantCount(value: number): ParticipantCount;
|
|
39
19
|
/**
|
|
@@ -45,12 +25,6 @@ export declare function unsafeAsParticipantCount(value: number): ParticipantCoun
|
|
|
45
25
|
export declare function normalizeParticipantEmail(value: string | null | undefined): ParticipantEmail | null;
|
|
46
26
|
export declare function parseParticipantEmail(value: string | null | undefined): Result<ParticipantEmail, ParticipantEmailNormalizationError>;
|
|
47
27
|
export declare function parseParticipantCount(value: number): Result<ParticipantCount, ParticipantCountParseError>;
|
|
48
|
-
export declare function provisionalEventGuestParticipantIdentity(input: Readonly<{
|
|
49
|
-
eventAttendeeGuestId: EventAttendeeGuestId;
|
|
50
|
-
slotKey: ParticipantSlotKey;
|
|
51
|
-
}>): ProvisionalParticipantIdentity;
|
|
52
|
-
export declare function encodeProvisionalParticipantIdentity(identity: ProvisionalParticipantIdentity): ProvisionalParticipantIdentityMetadata;
|
|
53
|
-
export declare function parseProvisionalParticipantIdentity(value: unknown): Result<ProvisionalParticipantIdentity, ProvisionalParticipantIdentityParseError>;
|
|
54
28
|
export declare function deriveParticipantDisplayLabel(input: Readonly<{
|
|
55
29
|
displayName: string | null;
|
|
56
30
|
emailNormalized: ParticipantEmail | null;
|
|
@@ -100,7 +74,7 @@ export type ParticipantParticipation = {
|
|
|
100
74
|
} | {
|
|
101
75
|
kind: 'event_guest';
|
|
102
76
|
attendeeId: AttendeeId;
|
|
103
|
-
|
|
77
|
+
guestIndex: number;
|
|
104
78
|
} | {
|
|
105
79
|
kind: 'event_series_registration';
|
|
106
80
|
registrationId: EventSeriesRegistrationId;
|
|
@@ -177,7 +151,6 @@ export type EventRegistrationParticipantProjectionInput = Readonly<{
|
|
|
177
151
|
customerId: CustomerId;
|
|
178
152
|
};
|
|
179
153
|
guests: readonly (ParticipantContactInput & {
|
|
180
|
-
guestId: EventAttendeeGuestId;
|
|
181
154
|
guestIndex: number;
|
|
182
155
|
})[];
|
|
183
156
|
}>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const PUBLIC_EXPERIENCES: readonly ["website", "hosted_booking"];
|
|
2
|
+
export type PublicExperience = (typeof PUBLIC_EXPERIENCES)[number];
|
|
3
|
+
export declare function isPublicExperience(value: unknown): value is PublicExperience;
|
|
4
|
+
export declare function parsePublicExperience(value: unknown): PublicExperience | null;
|
|
@@ -55,13 +55,42 @@ export type PublicSocialLink = Readonly<{
|
|
|
55
55
|
label: string;
|
|
56
56
|
url: string;
|
|
57
57
|
}>;
|
|
58
|
+
/**
|
|
59
|
+
* Whether the site shows its business address publicly. Absent on every
|
|
60
|
+
* profile saved before this field existed, and the footer has always shown
|
|
61
|
+
* the address whenever its composition selected one, so absent reads as
|
|
62
|
+
* `shown`.
|
|
63
|
+
*/
|
|
64
|
+
export type PublicAddressVisibility = 'shown' | 'hidden';
|
|
65
|
+
/**
|
|
66
|
+
* Whether each contact method is published on the site. Both default to shown,
|
|
67
|
+
* because that is what a saved contact has always meant. A hidden email can
|
|
68
|
+
* still be the privacy policy's contact: hiding it withholds it from the page,
|
|
69
|
+
* not from the policy.
|
|
70
|
+
*/
|
|
71
|
+
export type PublicContactVisibility = Readonly<{
|
|
72
|
+
phone: PublicAddressVisibility;
|
|
73
|
+
email: PublicAddressVisibility;
|
|
74
|
+
}>;
|
|
58
75
|
export type PublicProfile = Readonly<{
|
|
59
76
|
contact: PublicContactDetails | null;
|
|
77
|
+
contactVisibility: PublicContactVisibility;
|
|
60
78
|
openingHours: WeeklyOpeningHours | null;
|
|
61
79
|
socialLinks: readonly PublicSocialLink[];
|
|
80
|
+
addressVisibility: PublicAddressVisibility;
|
|
81
|
+
/**
|
|
82
|
+
* Whether the business runs from a place people come to, which is what the
|
|
83
|
+
* address and opening hours belong to.
|
|
84
|
+
*
|
|
85
|
+
* Null means nobody has answered yet, and it stays null rather than
|
|
86
|
+
* defaulting to false: a site that already has a saved address plainly has
|
|
87
|
+
* premises, and only the caller holding that address can say so. Resolve it
|
|
88
|
+
* with `resolvePublicProfilePremises`.
|
|
89
|
+
*/
|
|
90
|
+
premises: boolean | null;
|
|
62
91
|
}>;
|
|
63
92
|
export type PublicProfileParseError = Readonly<{
|
|
64
|
-
code: 'invalid_shape' | 'contact_method_required' | 'invalid_email' | 'invalid_phone' | 'invalid_timezone' | 'invalid_weekdays' | 'invalid_time' | 'invalid_interval' | 'overlapping_intervals' | 'invalid_social_link' | 'duplicate_social_link_id';
|
|
93
|
+
code: 'invalid_shape' | 'contact_method_required' | 'invalid_email' | 'invalid_phone' | 'invalid_timezone' | 'invalid_weekdays' | 'invalid_time' | 'invalid_interval' | 'overlapping_intervals' | 'invalid_social_link' | 'invalid_address_visibility' | 'invalid_contact_visibility' | 'invalid_premises' | 'duplicate_social_link_id';
|
|
65
94
|
path: string;
|
|
66
95
|
message: string;
|
|
67
96
|
}>;
|
|
@@ -70,4 +99,9 @@ export declare function parsePublicProfileTimeZone(value: unknown): Result<Publi
|
|
|
70
99
|
export declare function parseWeeklyOpeningHours(value: unknown): Result<WeeklyOpeningHours, PublicProfileParseError>;
|
|
71
100
|
export declare function parsePublicSocialLinks(value: unknown): Result<readonly PublicSocialLink[], PublicProfileParseError>;
|
|
72
101
|
export declare function parsePublicProfile(value: unknown): Result<PublicProfile, PublicProfileParseError>;
|
|
102
|
+
/**
|
|
103
|
+
* Resolves whether a site has premises, falling back to whether it already
|
|
104
|
+
* holds a business address for every profile saved before the switch existed.
|
|
105
|
+
*/
|
|
106
|
+
export declare function resolvePublicProfilePremises(profile: PublicProfile, hasBusinessAddress: boolean): boolean;
|
|
73
107
|
export declare function emptyPublicProfile(): PublicProfile;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export type PublicReadEndpoint = 'listPublishedEntries' | 'getPublishedEntryPreview' | 'listPublicEvents' | 'listPublicEventCalendarWindow' | 'listPublicRecurringSchedule' | 'getPublicEventDetails' | 'resolveEventSubroute' | 'listPublicRouteCandidates' | 'listPublicTeamMembers' | 'listPublicProducts' | 'listPublicPasses' | 'listPublicMemberships' | 'getPublicFormById' | 'getPublicBookingServices' | 'getPublicBookingService' | 'getPublicBookingResourcesReference' | 'getPublicBookingAvailableDates' | 'getPublicBookingAvailableSlots' | 'getPublicWeeklySlotAvailability' | 'listPublicForms' | 'checkRedirect' | 'getPublicRoutableContent' | 'getPublicSitemapRoutes';
|
|
2
|
+
export type PublicReadCacheTagKind = 'published_content' | 'public_team_members' | 'public_products' | 'site_forms';
|
|
3
|
+
export type PublicReadTransport = 'direct' | 'batch_only';
|
|
4
|
+
export type PublicReadCachePolicy = Readonly<{
|
|
5
|
+
kind: 'live';
|
|
6
|
+
reason: 'booking_correctness';
|
|
7
|
+
freshness: 'availability';
|
|
8
|
+
transport: PublicReadTransport;
|
|
9
|
+
}> | Readonly<{
|
|
10
|
+
kind: 'tagged';
|
|
11
|
+
tags: readonly PublicReadCacheTagKind[];
|
|
12
|
+
freshness: 'content';
|
|
13
|
+
transport: PublicReadTransport;
|
|
14
|
+
}>;
|
|
15
|
+
export declare const PUBLIC_AVAILABILITY_FRESHNESS_SECONDS = 60;
|
|
16
|
+
export declare const PUBLIC_CONTENT_FRESHNESS_SECONDS = 3600;
|
|
17
|
+
/** The single classification authority for cacheable public reads. */
|
|
18
|
+
export declare const PUBLIC_READ_CACHE_POLICIES: {
|
|
19
|
+
readonly listPublishedEntries: PublicReadCachePolicy;
|
|
20
|
+
readonly getPublishedEntryPreview: PublicReadCachePolicy;
|
|
21
|
+
readonly listPublicEvents: PublicReadCachePolicy;
|
|
22
|
+
readonly listPublicEventCalendarWindow: PublicReadCachePolicy;
|
|
23
|
+
readonly listPublicRecurringSchedule: PublicReadCachePolicy;
|
|
24
|
+
readonly getPublicEventDetails: PublicReadCachePolicy;
|
|
25
|
+
readonly resolveEventSubroute: PublicReadCachePolicy;
|
|
26
|
+
readonly listPublicRouteCandidates: PublicReadCachePolicy;
|
|
27
|
+
readonly listPublicTeamMembers: PublicReadCachePolicy;
|
|
28
|
+
readonly listPublicProducts: PublicReadCachePolicy;
|
|
29
|
+
readonly listPublicPasses: PublicReadCachePolicy;
|
|
30
|
+
readonly listPublicMemberships: PublicReadCachePolicy;
|
|
31
|
+
readonly getPublicFormById: PublicReadCachePolicy;
|
|
32
|
+
readonly getPublicBookingServices: PublicReadCachePolicy;
|
|
33
|
+
readonly getPublicBookingService: PublicReadCachePolicy;
|
|
34
|
+
readonly getPublicBookingResourcesReference: PublicReadCachePolicy;
|
|
35
|
+
readonly getPublicBookingAvailableDates: PublicReadCachePolicy;
|
|
36
|
+
readonly getPublicBookingAvailableSlots: PublicReadCachePolicy;
|
|
37
|
+
readonly getPublicWeeklySlotAvailability: PublicReadCachePolicy;
|
|
38
|
+
readonly listPublicForms: PublicReadCachePolicy;
|
|
39
|
+
readonly checkRedirect: PublicReadCachePolicy;
|
|
40
|
+
readonly getPublicRoutableContent: PublicReadCachePolicy;
|
|
41
|
+
readonly getPublicSitemapRoutes: PublicReadCachePolicy;
|
|
42
|
+
};
|
|
43
|
+
export declare function isPublicReadEndpoint(endpoint: string): endpoint is PublicReadEndpoint;
|
|
44
|
+
export declare function getPublicReadCachePolicy(endpoint: PublicReadEndpoint): PublicReadCachePolicy;
|
|
45
|
+
export declare function publicReadFreshnessSeconds(endpoint: PublicReadEndpoint): number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type BrandedIdParseError, type ContentEntryId, type PageId, type PageSurfaceId } from './branded';
|
|
1
|
+
import { type BrandedIdParseError, type ContentEntryId, type AppointmentServiceId, type PageId, type PageSurfaceId } from './branded';
|
|
2
2
|
import { type Result } from './result';
|
|
3
|
-
export declare const SITE_ROUTE_NODE_TYPES: readonly ["page", "content_entry", "page_surface"];
|
|
3
|
+
export declare const SITE_ROUTE_NODE_TYPES: readonly ["page", "content_entry", "page_surface", "appointment_service"];
|
|
4
4
|
export type SiteRouteNodeType = (typeof SITE_ROUTE_NODE_TYPES)[number];
|
|
5
5
|
export type SiteRouteTarget = Readonly<{
|
|
6
6
|
kind: 'page';
|
|
@@ -11,6 +11,9 @@ export type SiteRouteTarget = Readonly<{
|
|
|
11
11
|
}> | Readonly<{
|
|
12
12
|
kind: 'pageSurface';
|
|
13
13
|
surfaceId: PageSurfaceId;
|
|
14
|
+
}> | Readonly<{
|
|
15
|
+
kind: 'appointmentService';
|
|
16
|
+
serviceId: AppointmentServiceId;
|
|
14
17
|
}>;
|
|
15
18
|
export type SiteRouteTargetParseError = Readonly<{
|
|
16
19
|
kind: 'invalid-node-type';
|
|
@@ -27,6 +30,9 @@ export type SiteRouteTargetParseError = Readonly<{
|
|
|
27
30
|
}> | Readonly<{
|
|
28
31
|
kind: 'invalid-page-surface-id';
|
|
29
32
|
error: BrandedIdParseError;
|
|
33
|
+
}> | Readonly<{
|
|
34
|
+
kind: 'invalid-appointment-service-id';
|
|
35
|
+
error: BrandedIdParseError;
|
|
30
36
|
}>;
|
|
31
37
|
export declare function parseSiteRouteTarget(input: Readonly<{
|
|
32
38
|
nodeType: unknown;
|
|
@@ -37,4 +43,5 @@ export declare function foldSiteRouteTarget<TValue>(target: SiteRouteTarget, cas
|
|
|
37
43
|
page: (pageId: PageId) => TValue;
|
|
38
44
|
contentEntry: (entryId: ContentEntryId) => TValue;
|
|
39
45
|
pageSurface: (surfaceId: PageSurfaceId) => TValue;
|
|
46
|
+
appointmentService: (serviceId: AppointmentServiceId) => TValue;
|
|
40
47
|
}>): TValue;
|