@riverbankcms/sdk 0.138.0 → 0.139.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 +11 -15
- package/dist/{PreviewEditorSidebar-BVPur_CU.mjs → PreviewEditorSidebar-BDeenhi3.mjs} +4 -4
- package/dist/{PreviewEditorUI-DLhWX8oh.mjs → PreviewEditorUI-DSRhgjF5.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BguJY1SW.mjs → PreviewQueryProvider-D2K8GLUG.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-Tda6qw4z.mjs → SdkPreviewModeRuntime-CL7wSnYu.mjs} +47 -27
- package/dist/{SiteChromeCustomizeContext-BHFgMjde.mjs → SiteChromeCustomizeContext-BhDn-5ir.mjs} +7771 -5863
- package/dist/_dts/ai/src/contracts/proposals.d.ts +99 -330
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +9 -30
- package/dist/_dts/api/src/billing.d.ts +10 -3
- package/dist/_dts/api/src/contentRuntime.d.ts +8 -1
- package/dist/_dts/api/src/endpoints.d.ts +182 -103
- package/dist/_dts/api/src/footerSettings.d.ts +2 -5
- package/dist/_dts/api/src/index.d.ts +11 -9
- package/dist/_dts/api/src/mailchimpIntegration.d.ts +2 -59
- package/dist/_dts/api/src/mailingListIntegration.d.ts +117 -0
- package/dist/_dts/api/src/navigation/locations.d.ts +1 -0
- 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/surfaceData.d.ts +185 -0
- package/dist/_dts/api/src/privacyPolicy.d.ts +74 -2
- package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +6 -6
- package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +1 -1
- package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +2 -4
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +10 -24
- package/dist/_dts/api/src/publicReadEndpointDefinitions.d.ts +73 -0
- package/dist/_dts/api/src/schemas/site-api-keys.d.ts +1 -1
- package/dist/_dts/api/src/sdkContracts.d.ts +2 -10
- package/dist/_dts/api/src/sdkThemeWire.d.ts +2 -2
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +0 -29
- package/dist/_dts/api/src/siteOnboarding.d.ts +91 -228
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -9
- package/dist/_dts/api/src/siteSettings.d.ts +20 -1
- package/dist/_dts/api/src/types.d.ts +5 -4
- package/dist/_dts/billing/src/membership/index.d.ts +14 -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 +1 -7
- 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 +32 -16
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +4 -0
- package/dist/_dts/blocks/src/pageRenderingMode.d.ts +12 -6
- 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/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 +2 -2
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +2 -74
- package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +33 -100
- package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +5 -15
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -24
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -12
- 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 +51 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +0 -1
- 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 +56 -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 +13 -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/transforms/registry/formatting.d.ts +5 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
- package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +5 -12
- package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +34 -0
- package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +6 -24
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +1 -2
- package/dist/_dts/core/src/footer-engagement.d.ts +2 -6
- package/dist/_dts/core/src/index.d.ts +9 -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 +129 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +244 -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/public-profile.d.ts +9 -1
- package/dist/_dts/core/src/public-read-cache-contract.d.ts +45 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +529 -373
- package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +11 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/context.d.ts +13 -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 +6 -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 +33 -16
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/client.d.ts +3 -20
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +4 -0
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.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/generated/containerResponsiveThemeCss.d.ts +1 -1
- 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/runtime/buildThemeRuntime.d.ts +0 -1
- package/dist/_dts/theme-core/src/tokens/tokens.d.ts +7 -0
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/callout.d.ts +1 -1
- package/dist/client/{BookingConsentAgreement-DQUik1Mx.mjs → BookingConsentAgreement-CZvTDtsK.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-CU67Q4vH.mjs → DiscountCodeDisclosure-D-DsLCMU.mjs} +1 -1
- package/dist/client/{EventCombined.client-a02TXUgg.mjs → EventCombined.client-dWqgd5ZO.mjs} +443 -199
- package/dist/client/{EventListing.client-99qx7jFl.mjs → EventListing.client-BMRa9IYp.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-CWzcq73L.mjs → LeafletStaticMap-D21W9kBZ.mjs} +1 -1
- package/dist/client/{accordion-D1nb3-Oj.mjs → accordion-FxF_ta47.mjs} +1 -1
- package/dist/client/{bookingForm-BGrmLhaO.mjs → bookingForm-YnwW4TGw.mjs} +5 -5
- package/dist/client/bookings.mjs +43 -2
- package/dist/client/{carousel-DSmOx3ad.mjs → carousel-vng7fFT5.mjs} +1 -1
- package/dist/client/{cart-COWeOIUk.mjs → cart-DEPDsjNk.mjs} +3 -3
- package/dist/client/{checkout-CeysaIJK.mjs → checkout-CZRWu9rW.mjs} +3 -3
- package/dist/client/client.mjs +3331 -1407
- package/dist/client/{context-DBzX85Xc.mjs → context-DvU_WUmd.mjs} +4 -3
- package/dist/client/{dates-DCYhZBlW.mjs → dates-wnPMiRl5.mjs} +21 -3
- package/dist/client/{eventCalendar-BgsN73Ul.mjs → eventCalendar-BA3Q5L15.mjs} +80 -78
- package/dist/client/{eventCombined-DcZQAMQP.mjs → eventCombined-51wgR-1R.mjs} +3 -3
- package/dist/client/{eventDetails-BWwGJ54l.mjs → eventDetails-modaetpm.mjs} +4 -4
- package/dist/client/{eventListing-DqYqV8vp.mjs → eventListing-D8t2J3Kv.mjs} +3 -3
- package/dist/client/{eventRegistration-DQGDgu_e.mjs → eventRegistration-CYqtkCE_.mjs} +49 -9
- package/dist/client/{form-ClfpasVT.mjs → form-CBKXN5In.mjs} +2 -2
- package/dist/client/{headerSection-BuOMe98N.mjs → headerSection-DylDqNrs.mjs} +2 -2
- package/dist/client/hooks.mjs +1259 -555
- package/dist/client/{locationMap-CEqu_sfa.mjs → locationMap-CvWrG0vZ.mjs} +2 -2
- package/dist/client/{newsletterForm-IbrHjMxy.mjs → newsletterForm-Btwk70zw.mjs} +117 -38
- package/dist/client/{pricing-xj7MPZlK.mjs → pricing-Uzw-GQ6Y.mjs} +1 -1
- package/dist/client/{productDetail-vxqTt5Xj.mjs → productDetail-JLcUYKnd.mjs} +3 -3
- package/dist/client/{productList-OTdZu8sb.mjs → productList-FM0cbUzj.mjs} +3 -3
- package/dist/client/{propsDecoder-CY9gGEF7.mjs → propsDecoder-DYzafZb2.mjs} +592 -152
- package/dist/client/rendering/client.mjs +2259 -835
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +3308 -1236
- package/dist/client/{scrollToBlock--BFV6kl-.mjs → scrollToBlock-CvXszexS.mjs} +1 -1
- package/dist/client/{shop-CP4YbDL9.mjs → shop-BIcjvy5a.mjs} +6 -6
- package/dist/client/{shop-commerce-APs4XBXE.mjs → shop-commerce-BZQsy7xw.mjs} +5 -5
- package/dist/client/{shop-commerce-store-CAVLxLFr.mjs → shop-commerce-store-D5V7XAb5.mjs} +1 -1
- package/dist/client/{shopShared-BnSRrwXI.mjs → shopShared-DowkXevB.mjs} +3 -3
- package/dist/client/{useEventFilters-1a1by4c8.mjs → useEventFilters-oMoTw_JE.mjs} +56 -9
- package/dist/preview-next/before-render.mjs +238 -111
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +238 -111
- package/dist/preview-next/middleware.mjs +238 -111
- package/dist/{previewAuthStore-BkEgnYPP.mjs → previewAuthStore-COUyAKaX.mjs} +238 -111
- package/dist/{sdk-runtime-DwGfsT0S.mjs → sdk-runtime-D4k2LSGF.mjs} +2 -2
- package/dist/{separator-BeqDLneQ.mjs → separator-UGtpag4Z.mjs} +1 -1
- package/dist/server/components.mjs +2697 -1023
- package/dist/server/config-validation.mjs +2424 -1720
- package/dist/server/config.mjs +2429 -1724
- package/dist/server/data.mjs +1164 -454
- package/dist/server/index.mjs +364 -280
- package/dist/server/navigation.mjs +16 -47
- package/dist/server/next.mjs +2915 -1380
- package/dist/server/page-converter.mjs +969 -522
- package/dist/server/prebuild.mjs +2 -3
- package/dist/server/rendering/server.mjs +2704 -1030
- package/dist/server/rendering.mjs +2742 -1063
- package/dist/server/routing.mjs +1386 -595
- package/dist/server/server.mjs +2878 -2324
- package/dist/server/theme-bridge.mjs +292 -24
- package/dist/styles/index.css +289 -25
- 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/core/src/newsletter-signup-destination.d.ts +0 -38
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type { Brand } from '../../core/src/index';
|
|
1
|
+
import type { Brand, MailchimpAccountId } from '../../core/src/index';
|
|
2
2
|
import type { APIEndpoint } from './apiEndpointTypes';
|
|
3
3
|
export type MailchimpConnectionId = Brand<string, 'MailchimpConnectionId'>;
|
|
4
4
|
export type MailchimpAudienceId = Brand<string, 'MailchimpAudienceId'>;
|
|
5
|
-
export type MailchimpSignupSourceBlockId = Brand<string, 'NewsletterSignupBlockId'>;
|
|
6
5
|
export type MailchimpIntegrationConnectionStatus = Readonly<{
|
|
7
6
|
tag: 'not_connected';
|
|
8
7
|
}> | Readonly<{
|
|
9
8
|
tag: 'connected';
|
|
10
9
|
connectionId: MailchimpConnectionId;
|
|
10
|
+
accountId: MailchimpAccountId;
|
|
11
11
|
accountName: string | null;
|
|
12
12
|
datacenter: string;
|
|
13
13
|
connectedAt: string | null;
|
|
@@ -35,7 +35,6 @@ export type MailchimpConnectionLifecycleStatus = MailchimpIntegrationConnectionS
|
|
|
35
35
|
export type MailchimpConnectionLifecycleTransitionKind = 'stable_not_connected' | 'stable_connected' | 'stable_needs_reauth' | 'connect' | 'reauth_required' | 'reauth_resolved' | 'disconnect';
|
|
36
36
|
export type MailchimpConnectionConfiguredBlockPolicy = 'editable' | 'editable_with_warning' | 'unavailable_until_reconfigured';
|
|
37
37
|
export type MailchimpConnectionAudienceCacheAction = 'none' | 'refresh' | 'mark_stale_unavailable';
|
|
38
|
-
export type MailchimpConnectionSyncQueueAction = 'none' | 'pause_retryable_until_reconnect' | 'resume_retryable' | 'defer_to_disconnect_sync_policy';
|
|
39
38
|
export type MailchimpConnectionTokenAction = 'none' | 'revoke_and_delete_if_present';
|
|
40
39
|
export type MailchimpConnectionPublicSubmissionPolicy = 'available' | 'unavailable_until_reconfigured';
|
|
41
40
|
type MailchimpConnectionLifecyclePlanBase<TKind extends MailchimpConnectionLifecycleTransitionKind, TFrom extends MailchimpConnectionLifecycleStatus, TTo extends MailchimpConnectionLifecycleStatus> = Readonly<{
|
|
@@ -46,43 +45,36 @@ type MailchimpConnectionLifecyclePlanBase<TKind extends MailchimpConnectionLifec
|
|
|
46
45
|
export type MailchimpConnectionLifecycleTransitionPlan = MailchimpConnectionLifecyclePlanBase<'stable_not_connected', 'not_connected', 'not_connected'> & Readonly<{
|
|
47
46
|
configuredBlockPolicy: 'unavailable_until_reconfigured';
|
|
48
47
|
audienceCacheAction: 'none';
|
|
49
|
-
syncQueueAction: 'none';
|
|
50
48
|
tokenAction: 'none';
|
|
51
49
|
publicSubmissionPolicy: 'unavailable_until_reconfigured';
|
|
52
50
|
}> | MailchimpConnectionLifecyclePlanBase<'stable_connected', 'connected', 'connected'> & Readonly<{
|
|
53
51
|
configuredBlockPolicy: 'editable';
|
|
54
52
|
audienceCacheAction: 'none';
|
|
55
|
-
syncQueueAction: 'none';
|
|
56
53
|
tokenAction: 'none';
|
|
57
54
|
publicSubmissionPolicy: 'available';
|
|
58
55
|
}> | MailchimpConnectionLifecyclePlanBase<'stable_needs_reauth', 'needs_reauth', 'needs_reauth'> & Readonly<{
|
|
59
56
|
configuredBlockPolicy: 'editable_with_warning';
|
|
60
57
|
audienceCacheAction: 'none';
|
|
61
|
-
syncQueueAction: 'none';
|
|
62
58
|
tokenAction: 'none';
|
|
63
59
|
publicSubmissionPolicy: 'unavailable_until_reconfigured';
|
|
64
60
|
}> | MailchimpConnectionLifecyclePlanBase<'connect', 'not_connected', 'connected'> & Readonly<{
|
|
65
61
|
configuredBlockPolicy: 'editable';
|
|
66
62
|
audienceCacheAction: 'refresh';
|
|
67
|
-
syncQueueAction: 'none';
|
|
68
63
|
tokenAction: 'none';
|
|
69
64
|
publicSubmissionPolicy: 'available';
|
|
70
65
|
}> | MailchimpConnectionLifecyclePlanBase<'reauth_required', 'connected', 'needs_reauth'> & Readonly<{
|
|
71
66
|
configuredBlockPolicy: 'editable_with_warning';
|
|
72
67
|
audienceCacheAction: 'none';
|
|
73
|
-
syncQueueAction: 'pause_retryable_until_reconnect';
|
|
74
68
|
tokenAction: 'none';
|
|
75
69
|
publicSubmissionPolicy: 'unavailable_until_reconfigured';
|
|
76
70
|
}> | MailchimpConnectionLifecyclePlanBase<'reauth_resolved', 'needs_reauth', 'connected'> & Readonly<{
|
|
77
71
|
configuredBlockPolicy: 'editable';
|
|
78
72
|
audienceCacheAction: 'refresh';
|
|
79
|
-
syncQueueAction: 'resume_retryable';
|
|
80
73
|
tokenAction: 'none';
|
|
81
74
|
publicSubmissionPolicy: 'available';
|
|
82
75
|
}> | MailchimpConnectionLifecyclePlanBase<'disconnect', 'connected' | 'needs_reauth', 'not_connected'> & Readonly<{
|
|
83
76
|
configuredBlockPolicy: 'unavailable_until_reconfigured';
|
|
84
77
|
audienceCacheAction: 'mark_stale_unavailable';
|
|
85
|
-
syncQueueAction: 'defer_to_disconnect_sync_policy';
|
|
86
78
|
tokenAction: 'revoke_and_delete_if_present';
|
|
87
79
|
publicSubmissionPolicy: 'unavailable_until_reconfigured';
|
|
88
80
|
}>;
|
|
@@ -139,59 +131,10 @@ export type ListMailchimpAudiencesResponse = Readonly<{
|
|
|
139
131
|
}>;
|
|
140
132
|
audiences: readonly [];
|
|
141
133
|
}>;
|
|
142
|
-
export type MailchimpSignupSyncHealthState = 'healthy' | 'work_pending' | 'needs_attention' | 'unknown';
|
|
143
|
-
export type MailchimpSignupSyncHealthErrorCategory = 'rate_limited' | 'temporarily_unavailable' | 'network' | 'auth' | 'audience_unavailable' | 'validation' | 'policy' | 'anonymized' | 'unknown';
|
|
144
|
-
export type MailchimpSignupSyncHealthCounts = Readonly<{
|
|
145
|
-
total: number;
|
|
146
|
-
queued: number;
|
|
147
|
-
processing: number;
|
|
148
|
-
synced: number;
|
|
149
|
-
pendingExternalConfirmation: number;
|
|
150
|
-
failedRetryable: number;
|
|
151
|
-
failedTerminal: number;
|
|
152
|
-
retryDue: number;
|
|
153
|
-
retryScheduled: number;
|
|
154
|
-
staleProcessing: number;
|
|
155
|
-
authBlocked: number;
|
|
156
|
-
audienceBlocked: number;
|
|
157
|
-
invalidIdentity: number;
|
|
158
|
-
unrecognizedErrorCategory: number;
|
|
159
|
-
}>;
|
|
160
|
-
export type MailchimpSignupSyncHealthGroup = Readonly<{
|
|
161
|
-
connectionId: MailchimpConnectionId;
|
|
162
|
-
audienceId: MailchimpAudienceId;
|
|
163
|
-
sourceBlockIds: readonly MailchimpSignupSourceBlockId[];
|
|
164
|
-
state: MailchimpSignupSyncHealthState;
|
|
165
|
-
counts: MailchimpSignupSyncHealthCounts;
|
|
166
|
-
lastSyncAttemptAt: string | null;
|
|
167
|
-
nextRetryAt: string | null;
|
|
168
|
-
lastErrorCategory: MailchimpSignupSyncHealthErrorCategory | null;
|
|
169
|
-
}>;
|
|
170
|
-
export type MailchimpSignupSyncHealthCoverage = Readonly<{
|
|
171
|
-
tag: 'complete';
|
|
172
|
-
totalMirrors: number;
|
|
173
|
-
}> | Readonly<{
|
|
174
|
-
tag: 'sampled';
|
|
175
|
-
sampleSize: number;
|
|
176
|
-
sampleLimit: number;
|
|
177
|
-
}>;
|
|
178
|
-
export type MailchimpSignupSyncHealthResponse = Readonly<{
|
|
179
|
-
tag: 'not_configured';
|
|
180
|
-
}> | Readonly<{
|
|
181
|
-
tag: 'available';
|
|
182
|
-
generatedAt: string;
|
|
183
|
-
coverage: MailchimpSignupSyncHealthCoverage;
|
|
184
|
-
state: MailchimpSignupSyncHealthState;
|
|
185
|
-
counts: MailchimpSignupSyncHealthCounts;
|
|
186
|
-
groups: readonly MailchimpSignupSyncHealthGroup[];
|
|
187
|
-
}>;
|
|
188
134
|
export type MailchimpIntegrationAPIEndpoints = {
|
|
189
135
|
listMailchimpAudiences: APIEndpoint<never, {
|
|
190
136
|
siteId: string;
|
|
191
137
|
}, ListMailchimpAudiencesResponse>;
|
|
192
|
-
getMailchimpSignupSyncHealth: APIEndpoint<never, {
|
|
193
|
-
siteId: string;
|
|
194
|
-
}, MailchimpSignupSyncHealthResponse>;
|
|
195
138
|
getMailchimpConnection: APIEndpoint<never, {
|
|
196
139
|
siteId: string;
|
|
197
140
|
}, MailchimpIntegrationConnectionStatus>;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { BrevoConfirmationTemplateId, BrevoAccountId, BrevoConnectionId, BrevoListId, ConfiguredMailingListProvider, MailingListFieldCompatibilityPlan, MailingListGlobalForm, MailingListProvider, MailingListRuntimeContext, MailingListSetupSwitchPlan, MailingListSiteSetup, MailchimpAudienceId, MailchimpInterestId } from '../../core/src/index';
|
|
2
|
+
import type { APIEndpoint } from './apiEndpointTypes';
|
|
3
|
+
import type { MailchimpAudienceCompatibilityIssue } from './mailchimpIntegration';
|
|
4
|
+
export type MailingListSetupChangeRequest = Readonly<{
|
|
5
|
+
expectedRevision: number | null;
|
|
6
|
+
form: MailingListGlobalForm;
|
|
7
|
+
provider: ConfiguredMailingListProvider;
|
|
8
|
+
}>;
|
|
9
|
+
export type MailingListSetupPreviewResponse = Readonly<{
|
|
10
|
+
switchPlan: MailingListSetupSwitchPlan;
|
|
11
|
+
fieldCompatibility: MailingListFieldCompatibilityPlan;
|
|
12
|
+
}>;
|
|
13
|
+
export type MailingListSetupApplyResponse = Readonly<{
|
|
14
|
+
setup: Extract<MailingListSiteSetup, {
|
|
15
|
+
tag: 'configured';
|
|
16
|
+
}>;
|
|
17
|
+
resetPlacementCount: number;
|
|
18
|
+
}>;
|
|
19
|
+
export type BrevoConnectionStatus = Readonly<{
|
|
20
|
+
tag: 'not_connected';
|
|
21
|
+
}> | Readonly<{
|
|
22
|
+
tag: 'connected';
|
|
23
|
+
connectionId: BrevoConnectionId;
|
|
24
|
+
accountId: BrevoAccountId;
|
|
25
|
+
accountEmail: string;
|
|
26
|
+
accountName: string | null;
|
|
27
|
+
connectedAt: string;
|
|
28
|
+
refreshedAt: string | null;
|
|
29
|
+
}> | Readonly<{
|
|
30
|
+
tag: 'needs_reauth';
|
|
31
|
+
connectionId: BrevoConnectionId;
|
|
32
|
+
accountId: BrevoAccountId | null;
|
|
33
|
+
accountEmail: string | null;
|
|
34
|
+
accountName: string | null;
|
|
35
|
+
failureCode: string | null;
|
|
36
|
+
}>;
|
|
37
|
+
export type MailingListProviderCatalog = Readonly<{
|
|
38
|
+
provider: 'native';
|
|
39
|
+
topics: readonly Readonly<{
|
|
40
|
+
id: string;
|
|
41
|
+
name: string;
|
|
42
|
+
}>[];
|
|
43
|
+
}> | Readonly<{
|
|
44
|
+
provider: 'mailchimp';
|
|
45
|
+
audiences: readonly Readonly<{
|
|
46
|
+
id: MailchimpAudienceId;
|
|
47
|
+
name: string;
|
|
48
|
+
memberCount: number | null;
|
|
49
|
+
interests: readonly Readonly<{
|
|
50
|
+
id: MailchimpInterestId;
|
|
51
|
+
name: string;
|
|
52
|
+
categoryId: string;
|
|
53
|
+
categoryName: string;
|
|
54
|
+
}>[];
|
|
55
|
+
compatibilityIssues: readonly MailchimpAudienceCompatibilityIssue[];
|
|
56
|
+
}>[];
|
|
57
|
+
}> | Readonly<{
|
|
58
|
+
provider: 'brevo';
|
|
59
|
+
lists: readonly Readonly<{
|
|
60
|
+
id: BrevoListId;
|
|
61
|
+
name: string;
|
|
62
|
+
totalSubscribers: number | null;
|
|
63
|
+
}>[];
|
|
64
|
+
confirmationTemplates: readonly Readonly<{
|
|
65
|
+
id: BrevoConfirmationTemplateId;
|
|
66
|
+
name: string;
|
|
67
|
+
}>[];
|
|
68
|
+
}>;
|
|
69
|
+
export type MailingListProviderHealth = Readonly<{
|
|
70
|
+
tag: 'not_configured';
|
|
71
|
+
}> | Readonly<{
|
|
72
|
+
tag: 'ready';
|
|
73
|
+
provider: MailingListProvider;
|
|
74
|
+
lastAcknowledgedSignupAt: string | null;
|
|
75
|
+
}> | Readonly<{
|
|
76
|
+
tag: 'needs_attention';
|
|
77
|
+
provider: MailingListProvider;
|
|
78
|
+
reason: 'connection_unavailable' | 'authentication_failed' | 'target_unavailable' | 'recent_signup_failed';
|
|
79
|
+
lastFailureAt: string | null;
|
|
80
|
+
}>;
|
|
81
|
+
export type ConnectBrevoRequest = Readonly<{
|
|
82
|
+
apiKey: string;
|
|
83
|
+
}>;
|
|
84
|
+
export type MailingListIntegrationAPIEndpoints = {
|
|
85
|
+
getMailingListAuthoringContext: APIEndpoint<never, {
|
|
86
|
+
siteId: string;
|
|
87
|
+
}, MailingListRuntimeContext>;
|
|
88
|
+
getMailingListSetup: APIEndpoint<never, {
|
|
89
|
+
siteId: string;
|
|
90
|
+
}, MailingListSiteSetup>;
|
|
91
|
+
previewMailingListSetupChange: APIEndpoint<MailingListSetupChangeRequest, {
|
|
92
|
+
siteId: string;
|
|
93
|
+
}, MailingListSetupPreviewResponse>;
|
|
94
|
+
applyMailingListSetupChange: APIEndpoint<MailingListSetupChangeRequest, {
|
|
95
|
+
siteId: string;
|
|
96
|
+
}, MailingListSetupApplyResponse>;
|
|
97
|
+
getMailingListProviderCatalog: APIEndpoint<never, {
|
|
98
|
+
siteId: string;
|
|
99
|
+
provider: MailingListProvider;
|
|
100
|
+
}, MailingListProviderCatalog>;
|
|
101
|
+
refreshMailingListProviderCatalog: APIEndpoint<never, {
|
|
102
|
+
siteId: string;
|
|
103
|
+
provider: Exclude<MailingListProvider, 'native'>;
|
|
104
|
+
}, MailingListProviderCatalog>;
|
|
105
|
+
getMailingListProviderHealth: APIEndpoint<never, {
|
|
106
|
+
siteId: string;
|
|
107
|
+
}, MailingListProviderHealth>;
|
|
108
|
+
getBrevoConnection: APIEndpoint<never, {
|
|
109
|
+
siteId: string;
|
|
110
|
+
}, BrevoConnectionStatus>;
|
|
111
|
+
connectBrevo: APIEndpoint<ConnectBrevoRequest, {
|
|
112
|
+
siteId: string;
|
|
113
|
+
}, BrevoConnectionStatus>;
|
|
114
|
+
disconnectBrevo: APIEndpoint<never, {
|
|
115
|
+
siteId: string;
|
|
116
|
+
}, BrevoConnectionStatus>;
|
|
117
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { NAVIGATION_LOCATIONS, NAVIGATION_LOCATION_DESCRIPTORS, parseSiteNavigationLocations, type NavigationLocation, type NavigationLocationDescriptor, type SiteNavigationLocationRow, type SiteNavigationLocations, type SiteNavigationLocationsError, } from '../../../core/src/index';
|
|
@@ -12,7 +12,7 @@ export { DASHBOARD_SETTINGS_NAV_GROUPS, buildDashboardSettingsNavPlan, isDemoSet
|
|
|
12
12
|
export { SETTINGS_ACTION_POLICIES, SETTINGS_SURFACE_POLICIES, getRolePolicyMinimumRole, getSettingsActionPolicy, getSettingsSurfaceNavPolicy, getSettingsSurfacePagePolicy, getSettingsSurfacePolicy, isSettingsRolePolicyAllowed, } from './settings/permissions';
|
|
13
13
|
export { buildDashboardTeamMemberNavPlan, isTeamMemberAccessiblePath, } from './navigation/dashboardTeamMemberNav';
|
|
14
14
|
export { buildDashboardBookingsNavPlan, resolveDashboardBookingsNavPolicy, } from './navigation/dashboardBookingsNav';
|
|
15
|
-
export {
|
|
15
|
+
export { NAVIGATION_LOCATIONS, NAVIGATION_LOCATION_DESCRIPTORS, parseSiteNavigationLocations, type NavigationLocation, type NavigationLocationDescriptor, type SiteNavigationLocationRow, type SiteNavigationLocations, type SiteNavigationLocationsError, } from './navigation/locations';
|
|
16
16
|
export { isDemoMoneyNavSurfaceVisible, isDemoShopNavSurfaceVisible, } from './navigation/dashboardDemoNav';
|
|
17
17
|
export type { DashboardDemoUiMode, DashboardSiteNavDescriptor, DashboardSiteNavGroupId, DashboardSiteNavGroupPlan, DashboardSiteNavItemPlan, DashboardSiteNavLinkPlan, DashboardSiteNavPlanContext, DashboardSiteNavSurfaceId, SiteNavFeatureFlag, } from './navigation/dashboardSiteNav';
|
|
18
18
|
export type { DashboardSettingsDangerItemId, DashboardSettingsDangerItemPlan, DashboardSettingsNavDescriptor, DashboardSettingsNavGroupDescriptor, DashboardSettingsNavGroupPlan, DashboardSettingsNavItemPlan, DashboardSettingsNavPlan, DashboardSettingsNavPlanContext, DashboardSettingsNavSurfaceId, SettingsNavFeatureFlag, } from './navigation/dashboardSettingsNav';
|
|
@@ -20,7 +20,6 @@ export type { SettingsActionId, SettingsPermissionPolicy, SettingsRolePermission
|
|
|
20
20
|
export type { DashboardTeamMemberNavContext, DashboardTeamMemberNavDestination, DashboardTeamMemberNavItemId, DashboardTeamMemberNavItemPlan, } from './navigation/dashboardTeamMemberNav';
|
|
21
21
|
export type { DashboardAppointmentResourceLabel, DashboardBookingModules, DashboardBookingsNavContext, DashboardBookingsNavDestination, DashboardBookingsNavGroupPlan, DashboardBookingsNavItemPlan, DashboardBookingsNavPolicy, DashboardBookingsTeamMemberContext, FullAppointmentsNavPolicy, StaffScopedAppointmentsNavPolicy, } from './navigation/dashboardBookingsNav';
|
|
22
22
|
export type { DashboardMoneyNavSurfaceId, DashboardShopNavSurfaceId, } from './navigation/dashboardDemoNav';
|
|
23
|
-
export type { ActionableNavigationMenuMatchPlan, NavigationMenuIdentifier, NavigationMenuIdentifierParseError, NavigationMenuIdentity, NavigationMenuIdentityInput, NavigationMenuMatchCandidate, NavigationMenuMatchFailure, NavigationMenuMatchInput, NavigationMenuMatchPlan, } from './navigation/identity';
|
|
24
23
|
export { linkPayloadToValue, linkValueToPayload, toInternalLinkValue, toPersistableNavigationLinkValue, } from './navigation/linkValue';
|
|
25
24
|
export type { PersistableNavigationLinkError, PersistableNavigationLinkResult, PersistableNavigationLinkValue, } from './navigation/linkValue';
|
|
26
25
|
export type { CartLinkLabelConfig, CartLinkPayload, EntryLinkPayload, InternalLinkRoutablePayload, PageRoutableContentItem, EntryRoutableContentItem, PageSurfaceRoutableContentItem, LinkResolutionOptions, LinkPayload, NavigationLinkInput, NavigationUrlType, PageLinkPayload, PortalLinkPayload, ResolvedNavigationLink, RoutableContentItem, SitemapRouteItem, } from './navigation/types';
|
|
@@ -28,8 +27,6 @@ export { matchNavigationItems } from './navigation/matcher';
|
|
|
28
27
|
export type { ItemMatch, MatchResult } from './navigation/matcher';
|
|
29
28
|
export type { EntryNavLinkInfo, NavigationItemForMatching, NavigationItemInput, NavigationReferenceMaps, PageNavLinkInfo, } from './navigation/types';
|
|
30
29
|
type GetMenusResponse = NonNullable<APIEndpoints['getNavigationMenus']['response']>;
|
|
31
|
-
type CreateMenuBody = NonNullable<APIEndpoints['createNavigationMenu']['body']>;
|
|
32
|
-
type UpdateMenuBody = NonNullable<APIEndpoints['updateNavigationMenu']['body']>;
|
|
33
30
|
type CreateItemBody = NonNullable<APIEndpoints['createNavigationItem']['body']>;
|
|
34
31
|
type UpdateItemBody = NonNullable<APIEndpoints['updateNavigationItem']['body']>;
|
|
35
32
|
type ReorderItemsBody = NonNullable<APIEndpoints['reorderNavigationItems']['body']>;
|
|
@@ -37,28 +34,6 @@ export declare function getNavigationMenus(apiClient: ApiClient, { siteId, optio
|
|
|
37
34
|
siteId: string;
|
|
38
35
|
options?: RequestInit;
|
|
39
36
|
}): Promise<GetMenusResponse>;
|
|
40
|
-
export declare function createNavigationMenu(apiClient: ApiClient, { siteId, name, isPrimary, position, options, }: {
|
|
41
|
-
siteId: string;
|
|
42
|
-
} & CreateMenuBody & {
|
|
43
|
-
options?: RequestInit;
|
|
44
|
-
}): Promise<{
|
|
45
|
-
menus: NavigationMenuWithItems[];
|
|
46
|
-
}>;
|
|
47
|
-
export declare function updateNavigationMenu(apiClient: ApiClient, { siteId, menuId, name, isPrimary, position, options, }: {
|
|
48
|
-
siteId: string;
|
|
49
|
-
menuId: string;
|
|
50
|
-
} & UpdateMenuBody & {
|
|
51
|
-
options?: RequestInit;
|
|
52
|
-
}): Promise<{
|
|
53
|
-
menus: NavigationMenuWithItems[];
|
|
54
|
-
}>;
|
|
55
|
-
export declare function deleteNavigationMenu(apiClient: ApiClient, { siteId, menuId, options }: {
|
|
56
|
-
siteId: string;
|
|
57
|
-
menuId: string;
|
|
58
|
-
options?: RequestInit;
|
|
59
|
-
}): Promise<{
|
|
60
|
-
menus: NavigationMenuWithItems[];
|
|
61
|
-
}>;
|
|
62
37
|
export declare function createNavigationItem(apiClient: ApiClient, { siteId, menuId, label, type, link, parentId, orderIndex, isCta, options, }: {
|
|
63
38
|
siteId: string;
|
|
64
39
|
menuId: string;
|
|
@@ -128,14 +128,121 @@ export declare const NEWSLETTER_ENDPOINT_DEFINITIONS: {
|
|
|
128
128
|
responseKind: "json";
|
|
129
129
|
errors: ("auth:forbidden" | "server:internal_error")[];
|
|
130
130
|
};
|
|
131
|
-
|
|
132
|
-
path: "/sites/{siteId}/
|
|
131
|
+
getMailingListSetup: {
|
|
132
|
+
path: "/sites/{siteId}/mailing-list/setup";
|
|
133
|
+
method: "GET";
|
|
134
|
+
tags: ("riverbank:site:{siteId}" | "riverbank:site:{siteId}:newsletter")[];
|
|
135
|
+
auth: "user";
|
|
136
|
+
responseKind: "json";
|
|
137
|
+
errors: ("auth:forbidden" | "server:internal_error")[];
|
|
138
|
+
};
|
|
139
|
+
getMailingListAuthoringContext: {
|
|
140
|
+
path: "/sites/{siteId}/mailing-list/authoring-context";
|
|
141
|
+
method: "GET";
|
|
142
|
+
tags: ("riverbank:site:{siteId}" | "riverbank:site:{siteId}:newsletter")[];
|
|
143
|
+
auth: "user";
|
|
144
|
+
responseKind: "json";
|
|
145
|
+
errors: ("auth:forbidden" | "server:internal_error")[];
|
|
146
|
+
};
|
|
147
|
+
previewMailingListSetupChange: {
|
|
148
|
+
path: "/sites/{siteId}/mailing-list/setup/preview";
|
|
149
|
+
method: "POST";
|
|
150
|
+
tags: ("riverbank:site:{siteId}" | "riverbank:site:{siteId}:newsletter")[];
|
|
151
|
+
auth: "user";
|
|
152
|
+
responseKind: "json";
|
|
153
|
+
demoMutation: {
|
|
154
|
+
classification: "allowed";
|
|
155
|
+
publicMessage: "";
|
|
156
|
+
} | {
|
|
157
|
+
classification: import("./apiEndpointTypes").ApiDemoMutationBlockingClassification;
|
|
158
|
+
publicMessage: string;
|
|
159
|
+
};
|
|
160
|
+
errors: ("auth:forbidden" | "validation:invalid_input" | "server:internal_error")[];
|
|
161
|
+
};
|
|
162
|
+
applyMailingListSetupChange: {
|
|
163
|
+
path: "/sites/{siteId}/mailing-list/setup";
|
|
164
|
+
method: "PUT";
|
|
165
|
+
tags: ("riverbank:site:{siteId}" | "riverbank:site:{siteId}:newsletter")[];
|
|
166
|
+
auth: "user";
|
|
167
|
+
responseKind: "json";
|
|
168
|
+
demoMutation: {
|
|
169
|
+
classification: "allowed";
|
|
170
|
+
publicMessage: "";
|
|
171
|
+
} | {
|
|
172
|
+
classification: import("./apiEndpointTypes").ApiDemoMutationBlockingClassification;
|
|
173
|
+
publicMessage: string;
|
|
174
|
+
};
|
|
175
|
+
errors: ("auth:forbidden" | "validation:invalid_input" | "resource:conflict" | "server:internal_error")[];
|
|
176
|
+
};
|
|
177
|
+
getMailingListProviderCatalog: {
|
|
178
|
+
path: "/sites/{siteId}/mailing-list/providers/{provider}/catalog";
|
|
179
|
+
method: "GET";
|
|
180
|
+
tags: ("riverbank:site:{siteId}" | "riverbank:site:{siteId}:newsletter")[];
|
|
181
|
+
auth: "user";
|
|
182
|
+
responseKind: "json";
|
|
183
|
+
errors: ("auth:forbidden" | "validation:invalid_input" | "server:internal_error")[];
|
|
184
|
+
};
|
|
185
|
+
refreshMailingListProviderCatalog: {
|
|
186
|
+
path: "/sites/{siteId}/mailing-list/providers/{provider}/catalog/refresh";
|
|
187
|
+
method: "POST";
|
|
188
|
+
tags: ("riverbank:site:{siteId}" | "riverbank:site:{siteId}:newsletter")[];
|
|
189
|
+
auth: "user";
|
|
190
|
+
responseKind: "json";
|
|
191
|
+
demoMutation: {
|
|
192
|
+
classification: "allowed";
|
|
193
|
+
publicMessage: "";
|
|
194
|
+
} | {
|
|
195
|
+
classification: import("./apiEndpointTypes").ApiDemoMutationBlockingClassification;
|
|
196
|
+
publicMessage: string;
|
|
197
|
+
};
|
|
198
|
+
errors: ("auth:forbidden" | "validation:invalid_input" | "server:internal_error")[];
|
|
199
|
+
};
|
|
200
|
+
getMailingListProviderHealth: {
|
|
201
|
+
path: "/sites/{siteId}/mailing-list/health";
|
|
202
|
+
method: "GET";
|
|
203
|
+
tags: ("riverbank:site:{siteId}" | "riverbank:site:{siteId}:newsletter")[];
|
|
204
|
+
auth: "user";
|
|
205
|
+
responseKind: "json";
|
|
206
|
+
errors: ("auth:forbidden" | "server:internal_error")[];
|
|
207
|
+
};
|
|
208
|
+
getBrevoConnection: {
|
|
209
|
+
path: "/sites/{siteId}/integrations/brevo/connection";
|
|
133
210
|
method: "GET";
|
|
134
211
|
tags: "riverbank:site:{siteId}"[];
|
|
135
212
|
auth: "user";
|
|
136
213
|
responseKind: "json";
|
|
137
214
|
errors: ("auth:forbidden" | "server:internal_error")[];
|
|
138
215
|
};
|
|
216
|
+
connectBrevo: {
|
|
217
|
+
path: "/sites/{siteId}/integrations/brevo/connection";
|
|
218
|
+
method: "PUT";
|
|
219
|
+
tags: "riverbank:site:{siteId}"[];
|
|
220
|
+
auth: "user";
|
|
221
|
+
responseKind: "json";
|
|
222
|
+
demoMutation: {
|
|
223
|
+
classification: "allowed";
|
|
224
|
+
publicMessage: "";
|
|
225
|
+
} | {
|
|
226
|
+
classification: import("./apiEndpointTypes").ApiDemoMutationBlockingClassification;
|
|
227
|
+
publicMessage: string;
|
|
228
|
+
};
|
|
229
|
+
errors: ("auth:forbidden" | "validation:invalid_input" | "resource:conflict" | "server:internal_error")[];
|
|
230
|
+
};
|
|
231
|
+
disconnectBrevo: {
|
|
232
|
+
path: "/sites/{siteId}/integrations/brevo/disconnect";
|
|
233
|
+
method: "POST";
|
|
234
|
+
tags: "riverbank:site:{siteId}"[];
|
|
235
|
+
auth: "user";
|
|
236
|
+
responseKind: "json";
|
|
237
|
+
demoMutation: {
|
|
238
|
+
classification: "allowed";
|
|
239
|
+
publicMessage: "";
|
|
240
|
+
} | {
|
|
241
|
+
classification: import("./apiEndpointTypes").ApiDemoMutationBlockingClassification;
|
|
242
|
+
publicMessage: string;
|
|
243
|
+
};
|
|
244
|
+
errors: ("auth:forbidden" | "resource:conflict" | "server:internal_error")[];
|
|
245
|
+
};
|
|
139
246
|
getMailchimpConnection: {
|
|
140
247
|
path: "/sites/{siteId}/integrations/mailchimp/connection";
|
|
141
248
|
method: "GET";
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import type { LogoFacts } from "../../../theme-core/src/site-styles/index";
|
|
2
|
+
import type { BillingPlanId } from "../../../billing/src/plans/types";
|
|
3
|
+
import type { SiteVerticalBookingConfig } from "../../../core/src/index";
|
|
4
|
+
/**
|
|
5
|
+
* Macadamia public-onboarding surface data.
|
|
6
|
+
*
|
|
7
|
+
* The wire shapes the onboarding wizard reads and writes: what the person is
|
|
8
|
+
* setting up, how they want it to look, and the one offering they may scaffold
|
|
9
|
+
* on the way through. `siteOnboarding` re-exports all of it, so importers keep
|
|
10
|
+
* reaching for these types through `@riverbankcms/api` as they always have.
|
|
11
|
+
*
|
|
12
|
+
* Note: Do NOT use these API types as validation schemas. They document wire
|
|
13
|
+
* contracts while the owning services validate and normalize inputs.
|
|
14
|
+
*/
|
|
15
|
+
export type MacadamiaOnboardingSiteMode = "single_page" | "fuller_starter";
|
|
16
|
+
export type MacadamiaOnboardingMappedPalette = {
|
|
17
|
+
palette: Record<"primary" | "secondary" | "accent" | "background" | "surface" | "text", string>;
|
|
18
|
+
mode: "light" | "dark";
|
|
19
|
+
};
|
|
20
|
+
export type MacadamiaOnboardingLogoPaletteRecommendation = {
|
|
21
|
+
title: string;
|
|
22
|
+
palette: MacadamiaOnboardingMappedPalette["palette"];
|
|
23
|
+
};
|
|
24
|
+
export type MacadamiaOnboardingLogoAnalysis = {
|
|
25
|
+
logoFacts: LogoFacts;
|
|
26
|
+
recommendedPalettes: MacadamiaOnboardingLogoPaletteRecommendation[];
|
|
27
|
+
ignoredColors: string[];
|
|
28
|
+
};
|
|
29
|
+
export type MacadamiaOnboardingVisualIdentity = {
|
|
30
|
+
logoPath: string | null;
|
|
31
|
+
logoUrl: string | null;
|
|
32
|
+
logoPalette: string[] | null;
|
|
33
|
+
logoMappedPalette: MacadamiaOnboardingMappedPalette | null;
|
|
34
|
+
logoAnalysis: MacadamiaOnboardingLogoAnalysis | null;
|
|
35
|
+
primaryColor: string | null;
|
|
36
|
+
secondaryColors: string[];
|
|
37
|
+
selectedPaletteKey: string | null;
|
|
38
|
+
inspirationUrls: string[];
|
|
39
|
+
};
|
|
40
|
+
export type PublicOnboardingSurfaceId = "macadamia";
|
|
41
|
+
export type MacadamiaOnboardingTeamMode = "solo" | "team";
|
|
42
|
+
export type MacadamiaOnboardingOfferingKind = "classes" | "courses" | "workshops" | "retreats" | "performances" | "private_sessions";
|
|
43
|
+
export type MacadamiaOnboardingStyleMood = "calm_grounding" | "warm_welcoming" | "modern_polished" | "natural_earthy" | "bright_uplifting" | "luxury_retreat";
|
|
44
|
+
export type MacadamiaOnboardingFirstOfferingKind = "class" | "course" | "workshop" | "retreat" | "performance" | "private_session";
|
|
45
|
+
export type MacadamiaOnboardingFirstOfferingDeliveryMode = "in_person" | "online" | "both";
|
|
46
|
+
export type MacadamiaOnboardingFirstOfferingScheduleMode = "weekly" | "one_off";
|
|
47
|
+
export type MacadamiaOnboardingWeekday = "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday";
|
|
48
|
+
export type MacadamiaOnboardingEventSession = {
|
|
49
|
+
clientId: string;
|
|
50
|
+
startDate: string;
|
|
51
|
+
startTime: string;
|
|
52
|
+
endDate: string;
|
|
53
|
+
endTime: string;
|
|
54
|
+
isMultiDay: boolean;
|
|
55
|
+
};
|
|
56
|
+
export type MacadamiaOnboardingFirstOffering = {
|
|
57
|
+
kind: "class";
|
|
58
|
+
title: string;
|
|
59
|
+
description: string | null;
|
|
60
|
+
deliveryMode: MacadamiaOnboardingFirstOfferingDeliveryMode;
|
|
61
|
+
location: string | null;
|
|
62
|
+
startDate: string;
|
|
63
|
+
recurrenceRule: string;
|
|
64
|
+
startTime: string;
|
|
65
|
+
durationMinutes: number;
|
|
66
|
+
priceType: "free" | "paid";
|
|
67
|
+
priceAmount: number | null;
|
|
68
|
+
capacity: number | null;
|
|
69
|
+
} | {
|
|
70
|
+
kind: "course";
|
|
71
|
+
title: string;
|
|
72
|
+
description: string | null;
|
|
73
|
+
deliveryMode: MacadamiaOnboardingFirstOfferingDeliveryMode;
|
|
74
|
+
location: string | null;
|
|
75
|
+
priceType: "free" | "paid";
|
|
76
|
+
priceAmount: number | null;
|
|
77
|
+
capacity: number | null;
|
|
78
|
+
sessions: MacadamiaOnboardingEventSession[];
|
|
79
|
+
} | {
|
|
80
|
+
kind: "workshop" | "retreat" | "performance";
|
|
81
|
+
title: string;
|
|
82
|
+
description: string | null;
|
|
83
|
+
deliveryMode: MacadamiaOnboardingFirstOfferingDeliveryMode;
|
|
84
|
+
location: string | null;
|
|
85
|
+
scheduleMode: MacadamiaOnboardingFirstOfferingScheduleMode;
|
|
86
|
+
startDate: string;
|
|
87
|
+
startTime: string;
|
|
88
|
+
durationMinutes: number;
|
|
89
|
+
priceType: "free" | "paid";
|
|
90
|
+
priceAmount: number | null;
|
|
91
|
+
capacity: number | null;
|
|
92
|
+
} | {
|
|
93
|
+
kind: "private_session";
|
|
94
|
+
title: string;
|
|
95
|
+
description: string | null;
|
|
96
|
+
deliveryMode: MacadamiaOnboardingFirstOfferingDeliveryMode;
|
|
97
|
+
location: string | null;
|
|
98
|
+
durationMinutes: number;
|
|
99
|
+
priceType: "free" | "paid";
|
|
100
|
+
priceAmount: number | null;
|
|
101
|
+
};
|
|
102
|
+
export type MacadamiaOnboardingDraftFirstOffering = {
|
|
103
|
+
kind: "class";
|
|
104
|
+
title: string;
|
|
105
|
+
description: string | null;
|
|
106
|
+
deliveryMode: MacadamiaOnboardingFirstOfferingDeliveryMode | null;
|
|
107
|
+
location: string | null;
|
|
108
|
+
startDate: string | null;
|
|
109
|
+
recurrenceRule: string | null;
|
|
110
|
+
startTime: string | null;
|
|
111
|
+
durationMinutes: number | null;
|
|
112
|
+
priceType: "free" | "paid" | null;
|
|
113
|
+
priceAmount: number | null;
|
|
114
|
+
capacity: number | null;
|
|
115
|
+
} | {
|
|
116
|
+
kind: "course";
|
|
117
|
+
title: string;
|
|
118
|
+
description: string | null;
|
|
119
|
+
deliveryMode: MacadamiaOnboardingFirstOfferingDeliveryMode | null;
|
|
120
|
+
location: string | null;
|
|
121
|
+
priceType: "free" | "paid" | null;
|
|
122
|
+
priceAmount: number | null;
|
|
123
|
+
capacity: number | null;
|
|
124
|
+
sessions: MacadamiaOnboardingEventSession[];
|
|
125
|
+
} | {
|
|
126
|
+
kind: "workshop" | "retreat" | "performance";
|
|
127
|
+
title: string;
|
|
128
|
+
description: string | null;
|
|
129
|
+
deliveryMode: MacadamiaOnboardingFirstOfferingDeliveryMode | null;
|
|
130
|
+
location: string | null;
|
|
131
|
+
scheduleMode: MacadamiaOnboardingFirstOfferingScheduleMode;
|
|
132
|
+
startDate: string | null;
|
|
133
|
+
startTime: string | null;
|
|
134
|
+
durationMinutes: number | null;
|
|
135
|
+
priceType: "free" | "paid" | null;
|
|
136
|
+
priceAmount: number | null;
|
|
137
|
+
capacity: number | null;
|
|
138
|
+
} | {
|
|
139
|
+
kind: "private_session";
|
|
140
|
+
title: string;
|
|
141
|
+
description: string | null;
|
|
142
|
+
deliveryMode: MacadamiaOnboardingFirstOfferingDeliveryMode | null;
|
|
143
|
+
location: string | null;
|
|
144
|
+
durationMinutes: number | null;
|
|
145
|
+
priceType: "free" | "paid" | null;
|
|
146
|
+
priceAmount: number | null;
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Which public experience the Macadamia onboarding attempt is setting up.
|
|
150
|
+
*
|
|
151
|
+
* Customer copy says "booking page"; the wire value is `hosted_booking`. This
|
|
152
|
+
* is the wizard's own preference, not a site authority: provisioning reads it
|
|
153
|
+
* into the site-level field once that exists.
|
|
154
|
+
*
|
|
155
|
+
* Tri-state on the wire: absent means an attempt written before the two-mode
|
|
156
|
+
* wizard (read as `website`), explicit `null` means the person has not chosen
|
|
157
|
+
* yet, and a value is the chosen mode.
|
|
158
|
+
*/
|
|
159
|
+
export type MacadamiaOnboardingPublicExperience = "website" | "hosted_booking";
|
|
160
|
+
/** Plan the person arrived with from pricing. Stored only; no billing action. */
|
|
161
|
+
export type MacadamiaOnboardingPlanPreference = BillingPlanId;
|
|
162
|
+
export type MacadamiaOnboardingSurfaceData = {
|
|
163
|
+
teamMode: MacadamiaOnboardingTeamMode;
|
|
164
|
+
ownerName: string | null;
|
|
165
|
+
offeringKinds: MacadamiaOnboardingOfferingKind[];
|
|
166
|
+
bookingVerticalConfig?: SiteVerticalBookingConfig | null;
|
|
167
|
+
/**
|
|
168
|
+
* Resolved by the payload schema before any reader sees it: an attempt
|
|
169
|
+
* written before the two-mode wizard parses as `website`, and an explicit
|
|
170
|
+
* null is someone who has not chosen a mode yet.
|
|
171
|
+
*/
|
|
172
|
+
publicExperience: MacadamiaOnboardingPublicExperience | null;
|
|
173
|
+
planPreference?: MacadamiaOnboardingPlanPreference | null;
|
|
174
|
+
tagline?: string | null;
|
|
175
|
+
contactEmail?: string | null;
|
|
176
|
+
contactPhone?: string | null;
|
|
177
|
+
siteMode: MacadamiaOnboardingSiteMode;
|
|
178
|
+
styleMoods: MacadamiaOnboardingStyleMood[];
|
|
179
|
+
countryCode: string | null;
|
|
180
|
+
locationText: string | null;
|
|
181
|
+
timezone: string;
|
|
182
|
+
currency: string;
|
|
183
|
+
visualIdentity: MacadamiaOnboardingVisualIdentity;
|
|
184
|
+
firstOffering: MacadamiaOnboardingDraftFirstOffering | null;
|
|
185
|
+
};
|