@riverbankcms/sdk 0.145.0 → 0.146.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/{PreviewEditorSidebar-O-V6Pl5a.mjs → PreviewEditorSidebar-kg2r2Fyi.mjs} +4 -4
  3. package/dist/{PreviewEditorUI-1UlX_9cw.mjs → PreviewEditorUI-sWMLp5dT.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BxGwdOCV.mjs → PreviewQueryProvider-Cg51xq1w.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-DYbA_4iv.mjs → SdkPreviewModeRuntime-h2ti3Hch.mjs} +280 -182
  6. package/dist/{SiteChromeCustomizeContext-CNTKQ9nx.mjs → SiteChromeCustomizeContext-DEACFH9m.mjs} +1330 -734
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +924 -0
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +84 -0
  9. package/dist/_dts/api/src/bookingConfig.d.ts +8 -1
  10. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +8 -14
  11. package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +45 -1
  12. package/dist/_dts/api/src/clientErrorReporting.d.ts +50 -0
  13. package/dist/_dts/api/src/communications.d.ts +20 -4
  14. package/dist/_dts/api/src/contentRuntime.d.ts +3 -7
  15. package/dist/_dts/api/src/endpoints.d.ts +223 -88
  16. package/dist/_dts/api/src/event-visibility.d.ts +20 -0
  17. package/dist/_dts/api/src/eventManagementContracts.d.ts +56 -3
  18. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +24 -0
  19. package/dist/_dts/api/src/eventPageWords.d.ts +19 -0
  20. package/dist/_dts/api/src/eventSeriesRegistrationEndpointDefinitions.d.ts +14 -0
  21. package/dist/_dts/api/src/index.d.ts +7 -1
  22. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  23. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  24. package/dist/_dts/api/src/launchReadiness.d.ts +20 -2
  25. package/dist/_dts/api/src/launchRequirementPriority.d.ts +3 -0
  26. package/dist/_dts/api/src/newsletterCampaignCommandEndpoints.d.ts +13 -0
  27. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +42 -0
  28. package/dist/_dts/api/src/occurrenceScheduling.d.ts +10 -0
  29. package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +44 -0
  30. package/dist/_dts/api/src/participantMessaging.d.ts +11 -1
  31. package/dist/_dts/api/src/sdk-event-upsert.d.ts +40 -1
  32. package/dist/_dts/api/src/sdkContracts.d.ts +3 -42
  33. package/dist/_dts/api/src/sdkCourseBooking.d.ts +30 -0
  34. package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +76 -0
  35. package/dist/_dts/api/src/sdkEventLifecycle.d.ts +37 -0
  36. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +18 -0
  37. package/dist/_dts/api/src/sdkPageDesign.d.ts +388 -0
  38. package/dist/_dts/api/src/sdkPageDesignEndpointDefinitions.d.ts +22 -0
  39. package/dist/_dts/api/src/sdkPullEventContracts.d.ts +46 -0
  40. package/dist/_dts/api/src/siteAddressEndpoints.d.ts +29 -0
  41. package/dist/_dts/api/src/siteManagementEndpointDefinitions.d.ts +49 -0
  42. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -32
  43. package/dist/_dts/api/src/siteOnboarding.d.ts +75 -9
  44. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -1
  45. package/dist/_dts/api/src/types.d.ts +7 -1
  46. package/dist/_dts/api/src/wholeSeriesRuns.d.ts +14 -0
  47. package/dist/_dts/blocks/src/index.d.ts +2 -0
  48. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +10 -0
  49. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -1
  50. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +27 -5
  51. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +14 -1
  52. package/dist/_dts/blocks/src/system/icons/social.d.ts +1 -1
  53. package/dist/_dts/blocks/src/system/registry.d.ts +1 -1
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +1 -0
  55. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +20 -4
  56. package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -0
  57. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +36 -0
  58. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.d.ts +1 -1
  59. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +6 -1
  60. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +46 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
  62. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -1
  63. package/dist/_dts/blocks/src/system/runtime/shared/components/CheckboxChoice.d.ts +18 -0
  64. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
  65. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  66. package/dist/_dts/content-editor/src/primitives/previewEditableOutline.d.ts +2 -0
  67. package/dist/_dts/content-editor/src/ui/editorBlockEquality.d.ts +3 -0
  68. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -5
  69. package/dist/_dts/core/src/block-content-identity.d.ts +5 -0
  70. package/dist/_dts/core/src/editor-state.d.ts +2 -7
  71. package/dist/_dts/core/src/index.d.ts +1 -0
  72. package/dist/_dts/core/src/mailing-list-submission.d.ts +3 -1
  73. package/dist/_dts/core/src/public-event-booking-availability.d.ts +20 -1
  74. package/dist/_dts/core/src/public-profile.d.ts +3 -1
  75. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +49 -2
  76. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
  77. package/dist/_dts/editor-blocks/src/block-editor/EmptyState.d.ts +13 -1
  78. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +2 -8
  79. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  80. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +3 -4
  81. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -2
  82. package/dist/_dts/sdk/src/next/renderSdkContent.d.ts +0 -1
  83. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -2
  84. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -2
  85. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +6 -1
  86. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +5 -2
  87. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +6 -1
  88. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +2 -0
  89. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +5 -1
  90. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +5 -1
  91. package/dist/_dts/sdk/src/version.d.ts +1 -1
  92. package/dist/_dts/surfaces/src/index.d.ts +9 -0
  93. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  94. package/dist/_dts/theme-core/src/inputs/checkable.d.ts +42 -0
  95. package/dist/_dts/theme-core/src/inputs/inputGroup.d.ts +19 -0
  96. package/dist/_dts/ui/src/navigation-tabs.d.ts +2 -1
  97. package/dist/client/{BookingConsentAgreement-DlVOmpW4.mjs → BookingConsentAgreement-BQKL045f.mjs} +2 -2
  98. package/dist/client/CheckboxChoice--W2n6yKs.mjs +24 -0
  99. package/dist/client/{DiscountCodeDisclosure-T9q623PQ.mjs → DiscountCodeDisclosure-CsOtjFY7.mjs} +1 -1
  100. package/dist/client/{EventCombined.client-DnsUeONl.mjs → EventCombined.client-BdRjVbhH.mjs} +6 -6
  101. package/dist/client/{EventListing.client-CNBFqJS4.mjs → EventListing.client-DBxC6xOU.mjs} +2 -2
  102. package/dist/client/{LeafletStaticMap-C7higg52.mjs → LeafletStaticMap-mHEJKrTs.mjs} +1 -1
  103. package/dist/client/{ThemedButton-LAJTNrS8.mjs → ThemedButton-CE5KYT6z.mjs} +1 -1
  104. package/dist/client/{accordion-BcNF9TjX.mjs → accordion-BEQNSptH.mjs} +1 -1
  105. package/dist/client/{bookingForm-BUaQ3S03.mjs → bookingForm-AMr-s5vw.mjs} +33 -52
  106. package/dist/client/bookings.mjs +48 -46
  107. package/dist/client/{carousel-CTdF6e0V.mjs → carousel-Bbt_QgJy.mjs} +1 -1
  108. package/dist/client/{cart-pGtyf_XU.mjs → cart-CnWi30zJ.mjs} +3 -3
  109. package/dist/client/{checkout-Da9WSn7Y.mjs → checkout-f3nkWgd4.mjs} +3 -3
  110. package/dist/client/client.mjs +1611 -815
  111. package/dist/client/{context-BFeY_Wbm.mjs → context-Bc8T6pCe.mjs} +1 -1
  112. package/dist/client/{dates-BhwVSxDg.mjs → dates-DUsCEzLb.mjs} +2 -3
  113. package/dist/client/{eventCalendar-BAtdnR4s.mjs → eventCalendar-CKwgXui5.mjs} +9 -9
  114. package/dist/client/{eventCombined-RksA3tRC.mjs → eventCombined-CBAOSTGR.mjs} +4 -4
  115. package/dist/client/{eventDetails-BB9hB4wR.mjs → eventDetails-Dh-_WiBD.mjs} +4 -4
  116. package/dist/client/{eventListing-BpJBkviM.mjs → eventListing-CA3frIH5.mjs} +4 -4
  117. package/dist/client/{eventRegistration-B18jFq_o.mjs → eventRegistration-BHtsgdcg.mjs} +21 -22
  118. package/dist/client/{form-Dodt8Y8t.mjs → form-C2h3YAcg.mjs} +135 -104
  119. package/dist/client/{headerSection-B0qj9ttg.mjs → headerSection-lwMuMTH9.mjs} +3 -3
  120. package/dist/client/hooks.mjs +489 -65
  121. package/dist/client/{locationMap-gn-iMk7a.mjs → locationMap-DJ2bLODV.mjs} +3 -3
  122. package/dist/client/{newsletterForm-oByLdFkr.mjs → newsletterForm-8Pu5K32g.mjs} +203 -101
  123. package/dist/client/{pricing-BOU0_Hai.mjs → pricing-HHx3IgBz.mjs} +1 -1
  124. package/dist/client/{productDetail-D9v1zH2j.mjs → productDetail-C_1odnAf.mjs} +3 -3
  125. package/dist/client/{productList-D-mItx1n.mjs → productList-CtCv-Nmx.mjs} +3 -3
  126. package/dist/client/{propsDecoder-C3TP_z4x.mjs → propsDecoder-Dcgsncxb.mjs} +40 -23
  127. package/dist/client/rendering/client.mjs +490 -457
  128. package/dist/client/rendering/islands.mjs +17 -17
  129. package/dist/client/rendering.mjs +1515 -628
  130. package/dist/client/{routeIslandApiConfig-DzN1W0sq.mjs → routeIslandApiConfig-CWLP7wu3.mjs} +1 -1
  131. package/dist/client/{scrollToBlock-CWs8EIdo.mjs → scrollToBlock-BNgaEUpo.mjs} +1 -1
  132. package/dist/client/{shop-Dufw7N7o.mjs → shop-DQXrQ8kJ.mjs} +7 -7
  133. package/dist/client/{shop-commerce-gklw_hLF.mjs → shop-commerce-B88zmWWo.mjs} +6 -6
  134. package/dist/client/{shop-commerce-store-Sf1eyTaZ.mjs → shop-commerce-store-DtSfkKuX.mjs} +1 -1
  135. package/dist/client/{shopShared-B5nyA41S.mjs → shopShared-cuaONpkJ.mjs} +4 -4
  136. package/dist/client/{useEventFilters-CLL829vy.mjs → useEventFilters-Bukew6Gb.mjs} +6 -6
  137. package/dist/preview-next/before-render.mjs +368 -103
  138. package/dist/preview-next/client/runtime.mjs +4 -4
  139. package/dist/preview-next/editor-base.css +11 -0
  140. package/dist/preview-next/keepAlive.mjs +328 -103
  141. package/dist/preview-next/middleware.mjs +329 -103
  142. package/dist/{previewAuthStore-BxAFlu-j.mjs → previewAuthStore-h5IgbSp4.mjs} +353 -103
  143. package/dist/{sdk-runtime-D0uZFev7.mjs → sdk-runtime-DTc1uIXn.mjs} +2 -2
  144. package/dist/{separator-EvdCAn4V.mjs → separator-BpHS1KZK.mjs} +1 -1
  145. package/dist/server/components.mjs +1376 -331
  146. package/dist/server/config-validation.mjs +405 -27
  147. package/dist/server/config.mjs +405 -27
  148. package/dist/server/data.mjs +405 -27
  149. package/dist/server/index.mjs +370 -104
  150. package/dist/server/next.mjs +1430 -463
  151. package/dist/server/page-converter.mjs +36 -25
  152. package/dist/server/prebuild.mjs +1 -1
  153. package/dist/server/rendering/server.mjs +1374 -331
  154. package/dist/server/rendering.mjs +1436 -364
  155. package/dist/server/routing.mjs +476 -43
  156. package/dist/server/server.mjs +504 -169
  157. package/dist/server/theme-bridge.mjs +467 -111
  158. package/dist/styles/index.css +186 -65
  159. package/package.json +1 -1
@@ -8734,6 +8734,34 @@ export declare const ProposeSiteStyleSelectionCommandBackedOutputSchema: z.ZodOb
8734
8734
  type: z.ZodLiteral<"upsertEventSeries">;
8735
8735
  ref: z.ZodPipe<z.ZodString, z.ZodTransform<import("@riverbankcms/site-commands").EventSeriesRef, string>>;
8736
8736
  input: z.ZodObject<{
8737
+ courseBooking: z.ZodOptional<z.ZodObject<{
8738
+ visibility: z.ZodEnum<{
8739
+ public: "public";
8740
+ unlisted: "unlisted";
8741
+ }>;
8742
+ acceptsPasses: z.ZodBoolean;
8743
+ acceptsMemberships: z.ZodBoolean;
8744
+ cancellationPolicy: z.ZodObject<{
8745
+ refunds: z.ZodObject<{
8746
+ mode: z.ZodEnum<{
8747
+ never: "never";
8748
+ inherit: "inherit";
8749
+ always: "always";
8750
+ cutoff: "cutoff";
8751
+ }>;
8752
+ cutoffHours: z.ZodOptional<z.ZodNumber>;
8753
+ }, z.core.$strict>;
8754
+ transfers: z.ZodObject<{
8755
+ mode: z.ZodEnum<{
8756
+ never: "never";
8757
+ inherit: "inherit";
8758
+ always: "always";
8759
+ cutoff: "cutoff";
8760
+ }>;
8761
+ cutoffHours: z.ZodOptional<z.ZodNumber>;
8762
+ }, z.core.$strict>;
8763
+ }, z.core.$strict>;
8764
+ }, z.core.$strict>>;
8737
8765
  waitlist: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
8738
8766
  kind: z.ZodLiteral<"disabled">;
8739
8767
  }, z.core.$strict>, z.ZodObject<{
@@ -18226,6 +18254,34 @@ export declare const ProposeSiteStyleSelectionOutputSchema: z.ZodUnion<readonly
18226
18254
  type: z.ZodLiteral<"upsertEventSeries">;
18227
18255
  ref: z.ZodPipe<z.ZodString, z.ZodTransform<import("@riverbankcms/site-commands").EventSeriesRef, string>>;
18228
18256
  input: z.ZodObject<{
18257
+ courseBooking: z.ZodOptional<z.ZodObject<{
18258
+ visibility: z.ZodEnum<{
18259
+ public: "public";
18260
+ unlisted: "unlisted";
18261
+ }>;
18262
+ acceptsPasses: z.ZodBoolean;
18263
+ acceptsMemberships: z.ZodBoolean;
18264
+ cancellationPolicy: z.ZodObject<{
18265
+ refunds: z.ZodObject<{
18266
+ mode: z.ZodEnum<{
18267
+ never: "never";
18268
+ inherit: "inherit";
18269
+ always: "always";
18270
+ cutoff: "cutoff";
18271
+ }>;
18272
+ cutoffHours: z.ZodOptional<z.ZodNumber>;
18273
+ }, z.core.$strict>;
18274
+ transfers: z.ZodObject<{
18275
+ mode: z.ZodEnum<{
18276
+ never: "never";
18277
+ inherit: "inherit";
18278
+ always: "always";
18279
+ cutoff: "cutoff";
18280
+ }>;
18281
+ cutoffHours: z.ZodOptional<z.ZodNumber>;
18282
+ }, z.core.$strict>;
18283
+ }, z.core.$strict>;
18284
+ }, z.core.$strict>>;
18229
18285
  waitlist: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
18230
18286
  kind: z.ZodLiteral<"disabled">;
18231
18287
  }, z.core.$strict>, z.ZodObject<{
@@ -27719,6 +27775,34 @@ export declare const ProposeSiteStyleSelectionResultSchema: z.ZodUnion<readonly
27719
27775
  type: z.ZodLiteral<"upsertEventSeries">;
27720
27776
  ref: z.ZodPipe<z.ZodString, z.ZodTransform<import("@riverbankcms/site-commands").EventSeriesRef, string>>;
27721
27777
  input: z.ZodObject<{
27778
+ courseBooking: z.ZodOptional<z.ZodObject<{
27779
+ visibility: z.ZodEnum<{
27780
+ public: "public";
27781
+ unlisted: "unlisted";
27782
+ }>;
27783
+ acceptsPasses: z.ZodBoolean;
27784
+ acceptsMemberships: z.ZodBoolean;
27785
+ cancellationPolicy: z.ZodObject<{
27786
+ refunds: z.ZodObject<{
27787
+ mode: z.ZodEnum<{
27788
+ never: "never";
27789
+ inherit: "inherit";
27790
+ always: "always";
27791
+ cutoff: "cutoff";
27792
+ }>;
27793
+ cutoffHours: z.ZodOptional<z.ZodNumber>;
27794
+ }, z.core.$strict>;
27795
+ transfers: z.ZodObject<{
27796
+ mode: z.ZodEnum<{
27797
+ never: "never";
27798
+ inherit: "inherit";
27799
+ always: "always";
27800
+ cutoff: "cutoff";
27801
+ }>;
27802
+ cutoffHours: z.ZodOptional<z.ZodNumber>;
27803
+ }, z.core.$strict>;
27804
+ }, z.core.$strict>;
27805
+ }, z.core.$strict>>;
27722
27806
  waitlist: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
27723
27807
  kind: z.ZodLiteral<"disabled">;
27724
27808
  }, z.core.$strict>, z.ZodObject<{
@@ -1,4 +1,6 @@
1
1
  import type { EventOnlineDetails } from './bookingRecords';
2
+ import type { AttendeeNotificationIntent } from './occurrenceScheduling';
3
+ import type { EventVisibility } from './event-visibility';
2
4
  import type { CreateEventRequest } from './eventManagementContracts';
3
5
  import { BOOKING_SETTINGS_SECTION_KEYS } from './bookingSettingsSections';
4
6
  import { type ResolvedEventCatalogue, type EventPreset } from '../../core/src/index';
@@ -153,7 +155,7 @@ export type EventSeriesRecord = {
153
155
  capacity: number | null;
154
156
  deliveryMode: EventDeliveryMode;
155
157
  capacityByAttendanceMode: EventCapacityByAttendanceMode;
156
- visibility: 'public' | 'private' | 'unlisted';
158
+ visibility: EventVisibility;
157
159
  status: 'active' | 'draft' | 'archived' | 'cancelled' | 'completed';
158
160
  recurrenceRule: string | null;
159
161
  exceptionsJson: string[];
@@ -190,6 +192,11 @@ export type UpdateEventSeriesRequest = Partial<Omit<CreateEventRequest, 'creatio
190
192
  migrationPricingOptionIndex?: number | null;
191
193
  /** If true, regenerate future occurrences based on updated schedule */
192
194
  regenerateSchedule?: boolean;
195
+ /**
196
+ * The "let everyone booked know" tick. Only a change of the event's usual
197
+ * venue can notify; the server decides whether there is anything to send.
198
+ */
199
+ attendeeNotification?: AttendeeNotificationIntent;
193
200
  };
194
201
  export type BookingModuleToggles = {
195
202
  appointments: boolean;
@@ -6,12 +6,13 @@ import type { BookingClosureConflictResponse, CreateBookingClosureRequest, Creat
6
6
  import type { BookingSettingsResponse, UpdateBookingSettingsRequest } from './bookingConfig';
7
7
  import type * as Events from './eventManagementContracts';
8
8
  import type * as EventEndpoints from './bookingManagementEventEndpointTypes';
9
+ import type { WholeSeriesEndpoints } from './bookingManagementEventEndpointTypes';
9
10
  import type { AdjustCustomerPassDetailsRequest, AdjustCustomerPassDetailsResponse, AssignCustomerMembershipRequest, AssignCustomerMembershipResponse, AssignCustomerPassRequest, AssignCustomerPassResponse, CancelCustomerMembershipAtPeriodEndRequest, CancelCustomerMembershipAtPeriodEndResponse, ConvertCreditRefundToCashRequest, ConvertCreditRefundToCashResponse, ListCustomerMembershipPaymentRefundsResponse, ListCustomerMembershipPaymentsResponse, ListCustomerPassRefundsResponse, RefundCustomerMembershipPaymentRequest, RefundCustomerMembershipPaymentResponse, RefundCustomerPassRequest, RefundCustomerPassResponse } from './bookingAdjustments';
10
11
  import type { AppointmentResourceResponse, AppointmentReservationLifecycleRequest, AppointmentReservationResponse, AppointmentServiceResponse, BookingAppointmentWithDetails, CreateAppointmentResourceRequest, CreateAppointmentResourceWithAccountAccessRequest, CreateAppointmentResourceWithAccountAccessResponse, CreateAppointmentReservationRequest, CreateAppointmentReservationRunRequest, CreateAppointmentReservationRunResponse, CreateAppointmentServiceRequest, CreateTeamMemberProfileResponse, DiscardTeamMemberProfileDraftResponse, DeleteServiceResponse, EndAppointmentReservationRequest, ListAppointmentResourcesResponse, ListAppointmentReservationsRequest, ListAppointmentReservationsResponse, ListAppointmentServicesResponse, ListEventSeriesRegistrationRefundsResponse, ListEventAttendeeRefundsResponse, ListEventAttendeeTransfersResponse, OpsCancelEventAttendeeRequest, OpsCancelEventAttendeeResponse, OpsEventAttendeeDetailsResponse, OpsListUpcomingEventOccurrencesResponse, OpsOccurrenceAttendeesResponse, OpsRefundEventAttendeeResponse, OpsUpdateEventAttendeeCheckinRequest, OpsUpdateEventAttendeeCheckinResponse, OpsValidateEventTicketRequest, OpsValidateEventTicketResponse, PreviewAppointmentReservationRunRequest, PreviewAppointmentReservationRunResponse, ReferenceOptionsResponse, RemoveAppointmentResourceResponse, RefundEventSeriesRegistrationRequest, RefundEventSeriesRegistrationResponse, RefundEventAttendeeRequest, RefundEventAttendeeResponse, TransferEventAttendeeRequest, TransferEventAttendeeResponse, UpdateAppointmentResourceRequest, UpdateAppointmentReservationRequest, UpdateAppointmentServiceRequest, PublishTeamMemberProfileRequest, PublishTeamMemberProfileResponse, CancelScheduledTeamMemberProfileResponse, ScheduleTeamMemberProfileRequest, ScheduleTeamMemberProfileResponse, TeamMemberProfileContentResponse, UnpublishTeamMemberProfileResponse, UpdateTeamMemberProfileContentRequest, UpdateTeamMemberProfilePolicyRequest, UpdateTeamMemberProfilePolicyResponse, UpdateTeamMemberProfileRouteMetadataRequest, UpdateTeamMemberProfileRouteMetadataResponse } from './bookingOperations';
11
12
  import type { AddEventOccurrenceAttendeeRequest, AddEventOccurrenceAttendeeResponse, AdjustCustomerCreditRequest, AdjustCustomerCreditResponse, BookingEventSeriesAttendee, BookingMembershipResponse, BookingPassResponse, CheckEventAdminEligibilityRequest, CheckEventAdminEligibilityResponse, CreateBookingCustomerRequest, CreateBookingCustomerResponse, RectifyBookingCustomerProfileRequest, RectifyBookingCustomerProfileResponse, RectifyBookingParticipantIdentityRequest, RectifyBookingParticipantIdentityResponse, CreateBookingMembershipRequest, CreateBookingPassRequest, CreateDiscountCodeRequest, CreateEventCategoryRequest, CreateOccurrenceRequest, CreateVenueRequest, DeleteDiscountCodeResponse, DeleteVenueResponse, DiscountCodeResponse, EventCategoryResponse, EventOccurrenceRecord, GeocodeVenueRequest, GeocodeVenueResponse, GetCustomerCreditResponse, GetMoneyReportRequest, GetMoneyReportResponse, ExportBookingQuestionAnswersCsvRequest, ExportBookingLedgerCsvRequest, ListBookingActivityRequest, ListBookingActivityResponse, ListBookingCustomersRequest, ListBookingCustomersResponse, ListBookingMembershipsRequest, ListBookingMembershipsResponse, ListBookingPassesRequest, ListBookingPassesResponse, ListCustomerAttendancesRequest, ListCustomerAttendancesResponse, ListCustomerMembershipsResponse, ListCustomerPassesResponse, CreatePersonRecordEntryRequest, CreatePersonRecordEntryResponse, ListDiscountCodesResponse, ListDiscountRedemptionsRequest, ListDiscountRedemptionsResponse, ListEventCategoriesResponse, ListMoneyPaymentsRequest, ListMoneyPaymentsResponse, ListSiteCustomerMembershipsRequest, ListSiteCustomerMembershipsResponse, ListSiteCustomerPassesRequest, ListSiteCustomerPassesResponse, UpdateBookingMembershipRequest, UpdateBookingPassRequest, UpdateDiscountCodeRequest, UpdateEventCategoryRequest, UpdateVenueRequest, VenueRecord } from './bookingRecords';
12
13
  import type * as OccurrenceScheduling from './occurrenceScheduling';
13
14
  import type { ApplyAppointmentSetupRequest, ApplyAppointmentSetupResponse, AppointmentSetupResponse } from './appointmentSetup';
14
- import type { AddEventSeriesRegistrationRequest, AddEventSeriesRegistrationResponse, EventSeriesContentOwnershipRequest, EventSeriesContentOwnershipResponse, DashboardWaitlistListResponse, DeleteEventOfferingResponse, ListEventSeriesRegistrationsResponse, UpdateEventSeriesRegistrationRequest, UpdateEventSeriesRegistrationResponse, WaitlistDashboardActionResponse } from './wholeSeriesRuns';
15
+ import type { AddEventSeriesRegistrationRequest, AddEventSeriesRegistrationResponse, EventSeriesContentOwnershipRequest, EventSeriesContentOwnershipResponse, DashboardWaitlistListResponse, DeleteEventOfferingResponse, ListEventSeriesRegistrationsResponse, WaitlistDashboardActionResponse } from './wholeSeriesRuns';
15
16
  import type { GetParticipantMessageRecipientsRequest, ListParticipantMessageHistoryRequest, ParticipantMessageHistoryResponse, ParticipantMessageRecipientsResponse, ParticipantMessageSendResponse, SendParticipantMessageRequest, TestParticipantMessageRequest, TestParticipantMessageResponse } from './participantMessaging';
16
17
  import type { GetEmailSettingsResponse, GetEventSeriesEmailTemplatesResponse, GetNewsletterCampaignRecipientsSummaryResponse, GetNewsletterCampaignResponse, GetNewsletterCampaignStatsResponse, GetNewsletterSettingsResponse, GetNewsletterSubscriberResponse, GetNewsletterTemplateResponse, ListNewsletterCampaignsResponse, ListNewsletterListMembersQuery, ListNewsletterListMembersResponse, ListNewsletterListsResponse, ListNewsletterSubscribersQuery, ListNewsletterSubscribersResponse, ListNewsletterTagsResponse, ListNewsletterTemplatesResponse, PreviewEmailTemplateRequest, PreviewEmailTemplateResponse, PreviewNewsletterTemplateRequest, PreviewNewsletterTemplateResponse, RectifyNewsletterSubscriberRequest, RectifyNewsletterSubscriberResponse, SendTestEmailRequest, SendTestEmailResponse, UpdateEmailSettingsRequest, UpdateEmailSettingsResponse, UpdateEventSeriesEmailTemplatesRequest, UpdateEventSeriesEmailTemplatesResponse, UpdateNewsletterCampaignRequest, UpdateNewsletterCampaignResponse, UpdateNewsletterListMembershipsRequest, UpdateNewsletterListMembershipsResponse, UpdateNewsletterListRequest, UpdateNewsletterListResponse, UpdateNewsletterSettingsRequest, UpdateNewsletterSettingsResponse, UpdateNewsletterSubscriberRequest, UpdateNewsletterSubscriberResponse, UpdateNewsletterTemplateRequest, UpdateNewsletterTemplateResponse, UpsertNewsletterSubscriberRequest, UpsertNewsletterSubscriberResponse, ImportNewsletterSubscribersCsvResponse, ExportNewsletterSubscribersCsvResponse, DeleteNewsletterSubscriberResponse, AnonymizeNewsletterSubscriberResponse, ExportNewsletterSubscriberDataResponse, CreateNewsletterListRequest, CreateNewsletterListResponse, DeleteNewsletterListResponse, CreateNewsletterTemplateRequest, CreateNewsletterTemplateResponse, DeleteNewsletterTemplateResponse, CreateNewsletterCampaignRequest, CreateNewsletterCampaignResponse, DeleteNewsletterCampaignResponse, SendNewsletterCampaignNowRequest, SendNewsletterCampaignNowResponse, TestSendNewsletterCampaignRequest, TestSendNewsletterCampaignResponse } from './communications';
17
18
  import type { CreateNewsletterSubscribersImportUploadUrlRequest, CreateNewsletterSubscribersImportUploadUrlResponse, ImportNewsletterSubscribersCsvRequest } from './siteInfrastructure';
@@ -21,7 +22,7 @@ import type { SchedulePreviewRequest, SchedulePreviewResponse } from './aiPlaygr
21
22
  * Booking-management endpoints group scheduler, operational bookings admin, course,
22
23
  * newsletter, and customer-ledger APIs that are tightly coupled in dashboard flows.
23
24
  */
24
- export type BookingManagementAPIEndpoints = {
25
+ export type BookingManagementAPIEndpoints = WholeSeriesEndpoints & {
25
26
  getBookingSettings: APIEndpoint<never, {
26
27
  siteId: string;
27
28
  }, BookingSettingsResponse>;
@@ -519,24 +520,17 @@ export type BookingManagementAPIEndpoints = {
519
520
  status?: string;
520
521
  excludeCancelled?: string;
521
522
  }, Blob>;
522
- updateEventSeriesRegistration: APIEndpoint<UpdateEventSeriesRegistrationRequest, {
523
- siteId: string;
524
- seriesId: string;
525
- registrationId: string;
526
- }, UpdateEventSeriesRegistrationResponse>;
523
+ updateEventSeriesRegistration: EventEndpoints.UpdateRegistration;
524
+ saveEventSeriesRegistrationAnswers: EventEndpoints.SaveRegistrationAnswers;
527
525
  listEvents: APIEndpoint<never, {
528
526
  siteId: string;
529
527
  status?: 'draft' | 'active' | 'archived' | 'cancelled' | 'completed';
530
- visibility?: 'public' | 'private' | 'unlisted';
528
+ visibility?: 'public' | 'unlisted';
531
529
  }, Events.EventRecord[]>;
532
- createEvent: APIEndpoint<Events.CreateEventRequest, {
533
- siteId: string;
534
- }, Events.CreateEventRecord>;
530
+ createEvent: EventEndpoints.Create;
535
531
  transitionEventLifecycle: EventEndpoints.Lifecycle;
536
532
  updateEventIdentity: EventEndpoints.UpdateIdentity;
537
- createWholeSeriesRun: EventEndpoints.CreateWholeSeriesRun;
538
- updateWholeSeriesRun: EventEndpoints.UpdateWholeSeriesRun;
539
- cancelWholeSeriesRun: EventEndpoints.CancelWholeSeriesRun;
533
+ updateEventAddress: EventEndpoints.UpdateAddress;
540
534
  getEventSeries: EventEndpoints.GetSeries;
541
535
  updateEventSeries: EventEndpoints.UpdateSeries;
542
536
  deleteEventSeries: EventEndpoints.DeleteSeries;
@@ -1,8 +1,13 @@
1
1
  import type { EventOfferingId, EventSeriesId } from '../../core/src/index';
2
2
  import type { APIEndpoint } from './apiEndpointTypes';
3
+ import type * as Events from './eventManagementContracts';
3
4
  import type { EventSeriesRecord, UpdateEventSeriesRequest } from './bookingConfig';
4
5
  import type { EventOccurrenceListRecord } from './bookingRecords';
5
- import type { CancelWholeSeriesRunRequest, CancelWholeSeriesRunResponse, CreateWholeSeriesRunRequest, EventLifecycleTransitionRequest, EventLifecycleTransitionResponse, UpdateEventIdentityRequest, UpdateEventIdentityResponse, UpdateWholeSeriesRunRequest, WholeSeriesRunMutationResponse } from './eventManagementContracts';
6
+ import type { SaveEventSeriesRegistrationAnswersRequest, SaveEventSeriesRegistrationAnswersResponse, UpdateEventSeriesRegistrationRequest, UpdateEventSeriesRegistrationResponse } from './wholeSeriesRuns';
7
+ import type { CancelWholeSeriesRunRequest, CancelWholeSeriesRunResponse, CourseBookingSettingsRequest, CourseBookingSettingsResponse, CreateWholeSeriesRunRequest, EventLifecycleTransitionRequest, EventLifecycleTransitionResponse, UpdateEventAddressRequest, UpdateEventAddressResponse, UpdateEventIdentityRequest, UpdateEventIdentityResponse, UpdateWholeSeriesRunRequest, WholeSeriesRunMutationResponse } from './eventManagementContracts';
8
+ export type Create = APIEndpoint<Events.CreateEventRequest, {
9
+ siteId: string;
10
+ }, Events.CreateEventRecord>;
6
11
  export type Lifecycle = APIEndpoint<EventLifecycleTransitionRequest, {
7
12
  siteId: string;
8
13
  eventId: EventOfferingId;
@@ -11,6 +16,10 @@ export type UpdateIdentity = APIEndpoint<UpdateEventIdentityRequest, {
11
16
  siteId: string;
12
17
  eventId: EventOfferingId;
13
18
  }, UpdateEventIdentityResponse>;
19
+ export type UpdateAddress = APIEndpoint<UpdateEventAddressRequest, {
20
+ siteId: string;
21
+ eventId: EventOfferingId;
22
+ }, UpdateEventAddressResponse>;
14
23
  export type CancelWholeSeriesRun = APIEndpoint<CancelWholeSeriesRunRequest, {
15
24
  siteId: string;
16
25
  eventId: EventOfferingId;
@@ -26,6 +35,21 @@ export type CreateWholeSeriesRun = APIEndpoint<CreateWholeSeriesRunRequest, {
26
35
  eventId: EventOfferingId;
27
36
  }, WholeSeriesRunMutationResponse>;
28
37
  export type UpdateWholeSeriesRun = APIEndpoint<UpdateWholeSeriesRunRequest, RunParams, WholeSeriesRunMutationResponse>;
38
+ /** The course-wide booking settings, written onto every run in one go. */
39
+ export type UpdateCourseBookingSettings = APIEndpoint<CourseBookingSettingsRequest, {
40
+ siteId: string;
41
+ eventId: EventOfferingId;
42
+ }, CourseBookingSettingsResponse>;
43
+ /**
44
+ * Every booking on every run of one course, as one CSV, narrowed to the run
45
+ * and status the Attendees tab is filtered by.
46
+ */
47
+ export type ExportEventOfferingRegistrationsCsv = APIEndpoint<never, {
48
+ siteId: string;
49
+ eventOfferingId: string;
50
+ runId?: string;
51
+ status?: string;
52
+ }, Blob>;
29
53
  type SeriesParams = Omit<RunParams, 'runId'> & {
30
54
  seriesId: EventSeriesId;
31
55
  };
@@ -41,4 +65,24 @@ export type OccurrenceList = APIEndpoint<never, {
41
65
  limit?: number;
42
66
  offset?: number;
43
67
  }, EventOccurrenceListRecord[]>;
68
+ /**
69
+ * The whole-series run and course commands, grouped so the booking endpoint map
70
+ * can spread them in one line. Adding the course Booking tab's writer pushed
71
+ * that map past its `max-lines` baseline, the same reason the public checkout
72
+ * block was extracted from `endpoints.ts`.
73
+ */
74
+ export type WholeSeriesEndpoints = {
75
+ createWholeSeriesRun: CreateWholeSeriesRun;
76
+ updateWholeSeriesRun: UpdateWholeSeriesRun;
77
+ cancelWholeSeriesRun: CancelWholeSeriesRun;
78
+ updateCourseBookingSettings: UpdateCourseBookingSettings;
79
+ exportEventOfferingRegistrationsCsv: ExportEventOfferingRegistrationsCsv;
80
+ };
81
+ type ScopedRegistrationParams = Readonly<{
82
+ siteId: string;
83
+ seriesId: string;
84
+ registrationId: string;
85
+ }>;
86
+ export type UpdateRegistration = APIEndpoint<UpdateEventSeriesRegistrationRequest, ScopedRegistrationParams, UpdateEventSeriesRegistrationResponse>;
87
+ export type SaveRegistrationAnswers = APIEndpoint<SaveEventSeriesRegistrationAnswersRequest, ScopedRegistrationParams, SaveEventSeriesRegistrationAnswersResponse>;
44
88
  export {};
@@ -0,0 +1,50 @@
1
+ import { z } from 'zod';
2
+ import type { APIEndpoint } from './apiEndpointTypes';
3
+ export declare const CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS: {
4
+ reportClientError: {
5
+ path: "/client/error-report";
6
+ method: "POST";
7
+ auth: "user";
8
+ errors: never[];
9
+ responseKind: "json";
10
+ };
11
+ };
12
+ export declare const CLIENT_ERROR_REPORT_LIMITS: {
13
+ readonly pathname: 1024;
14
+ readonly name: 120;
15
+ readonly message: 2000;
16
+ readonly stack: 8000;
17
+ readonly digest: 128;
18
+ readonly componentStack: 8000;
19
+ readonly sourceLocation: 1024;
20
+ };
21
+ export declare const clientErrorEventSchema: z.ZodEnum<{
22
+ "dashboard:route-error": "dashboard:route-error";
23
+ "dashboard:app-error": "dashboard:app-error";
24
+ "client:error-boundary": "client:error-boundary";
25
+ "client:window-error": "client:window-error";
26
+ "client:unhandled-rejection": "client:unhandled-rejection";
27
+ }>;
28
+ export declare const clientErrorReportSchema: z.ZodObject<{
29
+ event: z.ZodEnum<{
30
+ "dashboard:route-error": "dashboard:route-error";
31
+ "dashboard:app-error": "dashboard:app-error";
32
+ "client:error-boundary": "client:error-boundary";
33
+ "client:window-error": "client:window-error";
34
+ "client:unhandled-rejection": "client:unhandled-rejection";
35
+ }>;
36
+ pathname: z.ZodString;
37
+ name: z.ZodString;
38
+ message: z.ZodString;
39
+ stack: z.ZodNullable<z.ZodString>;
40
+ digest: z.ZodNullable<z.ZodString>;
41
+ componentStack: z.ZodNullable<z.ZodString>;
42
+ sourceLocation: z.ZodNullable<z.ZodString>;
43
+ }, z.core.$strict>;
44
+ export type ClientErrorEvent = z.infer<typeof clientErrorEventSchema>;
45
+ export type ClientErrorReportRequest = z.infer<typeof clientErrorReportSchema>;
46
+ export type ClientErrorReportingAPIEndpoints = {
47
+ reportClientError: APIEndpoint<ClientErrorReportRequest, never, {
48
+ ok: true;
49
+ }>;
50
+ };
@@ -1,4 +1,4 @@
1
- import type { CamelizeKeys, DbRow } from "../../db/src/index";
1
+ import type { CamelizeKeys, DbDatabase, DbRow } from "../../db/src/index";
2
2
  import type { ListNewsletterListMembersQueryInput, UpdateNewsletterListMembershipsBodyInput } from "./schemas/newsletter-memberships";
3
3
  /**
4
4
  * Communications Contracts
@@ -325,6 +325,7 @@ export type CreateNewsletterCampaignResponse = {
325
325
  export type GetNewsletterCampaignResponse = {
326
326
  campaign: NewsletterCampaignRecord;
327
327
  };
328
+ /** Draft edits only. Scheduling, unscheduling and stopping are their own commands below. */
328
329
  export type UpdateNewsletterCampaignRequest = Partial<{
329
330
  name: string;
330
331
  templateId: string | null;
@@ -334,12 +335,27 @@ export type UpdateNewsletterCampaignRequest = Partial<{
334
335
  audienceTags: string[];
335
336
  scheduledAt: string | null;
336
337
  timezone: string | null;
337
- status: "draft" | "scheduled" | "finished";
338
- confirmLargeAudience: boolean;
339
338
  }>;
340
339
  export type UpdateNewsletterCampaignResponse = {
341
340
  campaign: NewsletterCampaignRecord;
342
341
  };
342
+ /** Freeze a draft's content and targeting and book its sending window. */
343
+ export type ScheduleNewsletterCampaignRequest = {
344
+ scheduledAt: string;
345
+ timezone: string;
346
+ confirmLargeAudience?: boolean;
347
+ };
348
+ export type ScheduleNewsletterCampaignResponse = {
349
+ campaign: NewsletterCampaignRecord;
350
+ };
351
+ /** Return a scheduled campaign to draft; fails once sending has started. */
352
+ export type UnscheduleNewsletterCampaignResponse = {
353
+ campaign: NewsletterCampaignRecord;
354
+ };
355
+ /** Stop the remaining sends of a scheduled or sending campaign. Final. */
356
+ export type StopNewsletterCampaignResponse = {
357
+ campaign: NewsletterCampaignRecord;
358
+ };
343
359
  export type DeleteNewsletterCampaignResponse = {
344
360
  deleted: boolean;
345
361
  };
@@ -353,7 +369,7 @@ export type NewsletterCampaignRecipientsSummary = {
353
369
  export type GetNewsletterCampaignRecipientsSummaryResponse = {
354
370
  summary: NewsletterCampaignRecipientsSummary;
355
371
  };
356
- export type NewsletterNotSentReason = "ineligible" | "address_changed" | "owner_stopped" | "deadline" | "campaign_blocked" | "definitive_rejection" | "retry_cutoff" | "attempts_exhausted" | "payload_mismatch";
372
+ export type NewsletterNotSentReason = DbDatabase["public"]["Enums"]["newsletter_delivery_reason"];
357
373
  export type NewsletterCampaignStats = {
358
374
  selectedCount: number;
359
375
  notSentCount: number;
@@ -7,7 +7,7 @@ import type { RiverbankSiteConfig } from './sdkContracts';
7
7
  import type { SdkBlockContentAdmission } from './sdkBlockContentAdmission';
8
8
  import type { SiteAnalyticsSettingsPayload } from './siteAnalytics';
9
9
  import type { SiteLayoutResolvedPayload, SiteRuntimeBusinessDetails } from './siteSettings';
10
- import type { BookingEngine, CanonicalBookingBehaviour } from '../../core/src/index';
10
+ import type { BookingEngine, CanonicalBookingBehaviour, BlockContentIdentity } from '../../core/src/index';
11
11
  export type SiteBookingOfferingPresetSummary = Readonly<{
12
12
  id: string;
13
13
  canonicalBehaviour: CanonicalBookingBehaviour;
@@ -409,10 +409,8 @@ export type SiteBySlugResponse = {
409
409
  /** Pending Google Search Console verification token (for meta tag injection on homepage) */
410
410
  googleSiteVerificationToken?: string | null;
411
411
  };
412
- export type BlockListItem = {
412
+ export type BlockListItem = BlockContentIdentity & {
413
413
  id: string;
414
- /** The content version the editor is looking at: draft when one exists, else published. */
415
- contentVersionId?: string | null;
416
414
  kind: string;
417
415
  purpose?: string | null;
418
416
  orderIndex?: number | null;
@@ -532,7 +530,7 @@ export type ListPublishedEntriesResponse<TContent = Record<string, unknown>> = {
532
530
  * Note: draft/published content can contain hydrated structures; treat as `unknown` at the API layer
533
531
  * unless/until we formalize the hydrated content schema.
534
532
  */
535
- type SdkRuntimeBlockContent<TScope, TContentVersionId extends string | null> = TScope & {
533
+ type SdkRuntimeBlockContent<TScope, TContentVersionId extends string | null> = TScope & BlockContentIdentity & {
536
534
  id: string;
537
535
  blockId: string;
538
536
  contentVersionId: TContentVersionId;
@@ -542,8 +540,6 @@ type SdkRuntimeBlockContent<TScope, TContentVersionId extends string | null> = T
542
540
  content: Record<string, unknown>;
543
541
  draftContent: unknown;
544
542
  publishedContent: unknown;
545
- draftContentId: string | null;
546
- publishedContentId: string | null;
547
543
  admission?: SdkBlockContentAdmission;
548
544
  };
549
545
  export type SdkBlockContent = SdkRuntimeBlockContent<{