@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
@@ -408,30 +408,79 @@ export declare const API_ENDPOINTS: {
408
408
  readonly auth: "service";
409
409
  readonly responseKind: "json";
410
410
  };
411
- readonly sdkUpsertPage: {
412
- readonly path: "/sdk/{siteId}/pages";
411
+ readonly sdkUpsertEntry: {
412
+ readonly path: "/sdk/{siteId}/entries";
413
413
  readonly method: "POST";
414
414
  readonly auth: "service";
415
415
  readonly responseKind: "json";
416
416
  };
417
- readonly sdkPublishPage: {
418
- readonly path: "/sdk/{siteId}/pages/{identifier}/publish";
419
- readonly method: "POST";
420
- readonly auth: "service";
421
- readonly responseKind: "json";
417
+ readonly sdkListEvents: {
418
+ path: "/sdk/{siteId}/events";
419
+ method: "GET";
420
+ auth: "service";
421
+ responseKind: "json";
422
422
  };
423
- readonly sdkUnpublishPage: {
424
- readonly path: "/sdk/{siteId}/pages/{identifier}/unpublish";
425
- readonly method: "POST";
426
- readonly auth: "service";
427
- readonly responseKind: "json";
423
+ readonly sdkUpsertEvent: {
424
+ path: "/sdk/{siteId}/events";
425
+ method: "POST";
426
+ auth: "service";
427
+ responseKind: "json";
428
+ errors: ("validation:invalid_input" | "resource:not_found" | "resource:conflict" | "billing:plan_limit_exceeded" | "server:internal_error")[];
428
429
  };
429
- readonly sdkDeletePage: {
430
- readonly path: "/sdk/{siteId}/pages/{identifier}";
431
- readonly method: "DELETE";
432
- readonly errors: readonly ["resource:not_found", "server:internal_error"];
433
- readonly auth: "service";
434
- readonly responseKind: "json";
430
+ readonly sdkGetEvent: {
431
+ path: "/sdk/{siteId}/events/{identifier}";
432
+ method: "GET";
433
+ auth: "service";
434
+ responseKind: "json";
435
+ };
436
+ readonly sdkDeleteEvent: {
437
+ path: "/sdk/{siteId}/events/{identifier}";
438
+ method: "DELETE";
439
+ auth: "service";
440
+ responseKind: "json";
441
+ errors: ("resource:not_found" | "resource:conflict" | "server:internal_error")[];
442
+ };
443
+ readonly sdkTakeEventOffline: {
444
+ path: "/sdk/{siteId}/events/{identifier}/lifecycle";
445
+ method: "POST";
446
+ auth: "service";
447
+ responseKind: "json";
448
+ errors: ("validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
449
+ };
450
+ readonly sdkListEventOccurrences: {
451
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences";
452
+ method: "GET";
453
+ auth: "service";
454
+ responseKind: "json";
455
+ errors: ("validation:invalid_input" | "resource:not_found" | "server:internal_error")[];
456
+ };
457
+ readonly sdkAddEventOccurrence: {
458
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences";
459
+ method: "POST";
460
+ auth: "service";
461
+ responseKind: "json";
462
+ errors: ("validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
463
+ };
464
+ readonly sdkUpdateEventOccurrence: {
465
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}";
466
+ method: "PATCH";
467
+ auth: "service";
468
+ responseKind: "json";
469
+ errors: ("validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
470
+ };
471
+ readonly sdkCancelEventOccurrence: {
472
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}/cancel";
473
+ method: "POST";
474
+ auth: "service";
475
+ responseKind: "json";
476
+ errors: ("resource:not_found" | "resource:conflict" | "server:internal_error")[];
477
+ };
478
+ readonly sdkDeleteEventOccurrence: {
479
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}";
480
+ method: "DELETE";
481
+ auth: "service";
482
+ responseKind: "json";
483
+ errors: ("resource:not_found" | "resource:conflict" | "server:internal_error")[];
435
484
  };
436
485
  readonly sdkUpsertPageBlock: {
437
486
  readonly path: "/sdk/{siteId}/pages/{identifier}/blocks";
@@ -549,68 +598,42 @@ export declare const API_ENDPOINTS: {
549
598
  readonly auth: "service";
550
599
  readonly responseKind: "json";
551
600
  };
552
- readonly sdkListEvents: {
553
- readonly path: "/sdk/{siteId}/events";
554
- readonly method: "GET";
555
- readonly auth: "service";
556
- readonly responseKind: "json";
557
- };
558
- readonly sdkUpsertEvent: {
559
- readonly path: "/sdk/{siteId}/events";
560
- readonly method: "POST";
561
- readonly auth: "service";
562
- readonly responseKind: "json";
563
- };
564
- readonly sdkGetEvent: {
565
- readonly path: "/sdk/{siteId}/events/{identifier}";
566
- readonly method: "GET";
567
- readonly auth: "service";
568
- readonly responseKind: "json";
569
- };
570
- readonly sdkDeleteEvent: {
571
- readonly path: "/sdk/{siteId}/events/{identifier}";
572
- readonly method: "DELETE";
573
- readonly auth: "service";
574
- readonly responseKind: "json";
601
+ readonly sdkGetPageDesign: {
602
+ path: "/sdk/{siteId}/pages/{identifier}/design";
603
+ method: "GET";
604
+ auth: "service";
605
+ responseKind: "json";
606
+ errors: ("validation:invalid_input" | "resource:not_found" | "server:internal_error")[];
575
607
  };
576
- readonly sdkListEventOccurrences: {
577
- readonly path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences";
578
- readonly method: "GET";
579
- readonly auth: "service";
580
- readonly responseKind: "json";
581
- readonly errors: readonly ["resource:not_found", "validation:invalid_input", "server:internal_error"];
608
+ readonly sdkSavePageDesign: {
609
+ path: "/sdk/{siteId}/pages/{identifier}/design";
610
+ method: "POST";
611
+ auth: "service";
612
+ responseKind: "json";
613
+ errors: ("validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
582
614
  };
583
- readonly sdkAddEventOccurrence: {
584
- readonly path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences";
615
+ readonly sdkUpsertPage: {
616
+ readonly path: "/sdk/{siteId}/pages";
585
617
  readonly method: "POST";
586
618
  readonly auth: "service";
587
619
  readonly responseKind: "json";
588
- readonly errors: readonly ["resource:not_found", "validation:invalid_input", "resource:conflict", "server:internal_error"];
589
620
  };
590
- readonly sdkUpdateEventOccurrence: {
591
- readonly path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}";
592
- readonly method: "PATCH";
621
+ readonly sdkPublishPage: {
622
+ readonly path: "/sdk/{siteId}/pages/{identifier}/publish";
623
+ readonly method: "POST";
593
624
  readonly auth: "service";
594
625
  readonly responseKind: "json";
595
- readonly errors: readonly ["resource:not_found", "validation:invalid_input", "resource:conflict", "server:internal_error"];
596
626
  };
597
- readonly sdkCancelEventOccurrence: {
598
- readonly path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}/cancel";
627
+ readonly sdkUnpublishPage: {
628
+ readonly path: "/sdk/{siteId}/pages/{identifier}/unpublish";
599
629
  readonly method: "POST";
600
630
  readonly auth: "service";
601
631
  readonly responseKind: "json";
602
- readonly errors: readonly ["resource:not_found", "resource:conflict", "server:internal_error"];
603
632
  };
604
- readonly sdkDeleteEventOccurrence: {
605
- readonly path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}";
633
+ readonly sdkDeletePage: {
634
+ readonly path: "/sdk/{siteId}/pages/{identifier}";
606
635
  readonly method: "DELETE";
607
- readonly auth: "service";
608
- readonly responseKind: "json";
609
- readonly errors: readonly ["resource:not_found", "resource:conflict", "server:internal_error"];
610
- };
611
- readonly sdkUpsertEntry: {
612
- readonly path: "/sdk/{siteId}/entries";
613
- readonly method: "POST";
636
+ readonly errors: readonly ["resource:not_found", "server:internal_error"];
614
637
  readonly auth: "service";
615
638
  readonly responseKind: "json";
616
639
  };
@@ -1796,6 +1819,14 @@ export declare const API_ENDPOINTS: {
1796
1819
  responseKind: "json";
1797
1820
  errors: ("validation:invalid_input" | "resource:not_found" | "server:internal_error")[];
1798
1821
  };
1822
+ readonly updateEventAddress: {
1823
+ path: "/sites/{siteId}/bookings/events/{eventId}/address";
1824
+ method: "PATCH";
1825
+ tags: ("riverbank:site:{siteId}:routable-content" | "riverbank:site:{siteId}:redirects" | "site-{siteId}" | "event-series-{siteId}")[];
1826
+ auth: "user";
1827
+ responseKind: "json";
1828
+ errors: ("validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
1829
+ };
1799
1830
  readonly createWholeSeriesRun: {
1800
1831
  path: "/sites/{siteId}/bookings/events/{eventId}/runs";
1801
1832
  method: "POST";
@@ -1812,6 +1843,14 @@ export declare const API_ENDPOINTS: {
1812
1843
  responseKind: "json";
1813
1844
  errors: ("validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
1814
1845
  };
1846
+ readonly updateCourseBookingSettings: {
1847
+ path: "/sites/{siteId}/bookings/events/{eventId}/booking-settings";
1848
+ method: "PATCH";
1849
+ tags: ("site-{siteId}" | "event-series-{siteId}")[];
1850
+ auth: "user";
1851
+ responseKind: "json";
1852
+ errors: ("auth:forbidden" | "validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
1853
+ };
1815
1854
  readonly cancelWholeSeriesRun: {
1816
1855
  path: "/sites/{siteId}/bookings/events/{eventId}/runs/{runId}/cancellation";
1817
1856
  method: "POST";
@@ -1820,6 +1859,14 @@ export declare const API_ENDPOINTS: {
1820
1859
  responseKind: "json";
1821
1860
  errors: ("validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
1822
1861
  };
1862
+ readonly saveEventPageWords: {
1863
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/words";
1864
+ method: "PUT";
1865
+ tags: ("riverbank:site" | "riverbank:site:{siteId}:routable-content" | "riverbank:page-surface:{pageSurfaceId}")[];
1866
+ auth: "user";
1867
+ responseKind: "json";
1868
+ errors: ("auth:forbidden" | "validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
1869
+ };
1823
1870
  readonly getPublicEventRegistrationStatus: {
1824
1871
  readonly path: "/public/sites/{siteId}/events/registration-status";
1825
1872
  readonly method: "GET";
@@ -2431,13 +2478,6 @@ export declare const API_ENDPOINTS: {
2431
2478
  readonly auth: "user";
2432
2479
  readonly responseKind: "json";
2433
2480
  };
2434
- readonly createSite: {
2435
- readonly path: "/sites/manage";
2436
- readonly method: "POST";
2437
- readonly tags: ["site"];
2438
- readonly auth: "user";
2439
- readonly responseKind: "json";
2440
- };
2441
2481
  readonly createSiteManual: {
2442
2482
  readonly path: "/sites/manual";
2443
2483
  readonly method: "POST";
@@ -2445,21 +2485,6 @@ export declare const API_ENDPOINTS: {
2445
2485
  readonly auth: "user";
2446
2486
  readonly responseKind: "json";
2447
2487
  };
2448
- readonly updateSite: {
2449
- readonly path: "/sites/manage";
2450
- readonly method: "PUT";
2451
- readonly tags: ["site"];
2452
- readonly auth: "user";
2453
- readonly responseKind: "json";
2454
- };
2455
- readonly deleteSite: {
2456
- readonly path: "/sites/{siteId}";
2457
- readonly method: "DELETE";
2458
- readonly tags: ["site", "site-{siteId}"];
2459
- readonly auth: "user";
2460
- readonly responseKind: "json";
2461
- readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
2462
- };
2463
2488
  readonly listSiteMembers: {
2464
2489
  readonly path: "/sites/{siteId}/members";
2465
2490
  readonly method: "GET";
@@ -4189,6 +4214,13 @@ export declare const API_ENDPOINTS: {
4189
4214
  errors: never[];
4190
4215
  responseKind: "blob";
4191
4216
  };
4217
+ readonly exportEventOfferingRegistrationsCsv: {
4218
+ path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}/registrations/export.csv";
4219
+ method: "GET";
4220
+ auth: "user";
4221
+ errors: never[];
4222
+ responseKind: "blob";
4223
+ };
4192
4224
  readonly updateEventSeriesRegistration: {
4193
4225
  path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}";
4194
4226
  method: "PATCH";
@@ -4196,6 +4228,13 @@ export declare const API_ENDPOINTS: {
4196
4228
  responseKind: "json";
4197
4229
  errors: ("validation:invalid_input" | "resource:not_found" | "server:internal_error")[];
4198
4230
  };
4231
+ readonly saveEventSeriesRegistrationAnswers: {
4232
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}/answers";
4233
+ method: "PUT";
4234
+ auth: "user";
4235
+ responseKind: "json";
4236
+ errors: ("auth:forbidden" | "validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
4237
+ };
4199
4238
  readonly listAppointmentResources: {
4200
4239
  path: "/sites/{siteId}/bookings/resources";
4201
4240
  method: "GET";
@@ -5122,6 +5161,48 @@ export declare const API_ENDPOINTS: {
5122
5161
  publicMessage: string;
5123
5162
  };
5124
5163
  };
5164
+ readonly scheduleNewsletterCampaign: {
5165
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/schedule";
5166
+ method: "POST";
5167
+ tags: ("riverbank:site:{siteId}" | "riverbank:site:{siteId}:newsletter")[];
5168
+ auth: "user";
5169
+ responseKind: "json";
5170
+ demoMutation: {
5171
+ classification: "allowed";
5172
+ publicMessage: "";
5173
+ } | {
5174
+ classification: import("./apiEndpointTypes").ApiDemoMutationBlockingClassification;
5175
+ publicMessage: string;
5176
+ };
5177
+ };
5178
+ readonly unscheduleNewsletterCampaign: {
5179
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/unschedule";
5180
+ method: "POST";
5181
+ tags: ("riverbank:site:{siteId}" | "riverbank:site:{siteId}:newsletter")[];
5182
+ auth: "user";
5183
+ responseKind: "json";
5184
+ demoMutation: {
5185
+ classification: "allowed";
5186
+ publicMessage: "";
5187
+ } | {
5188
+ classification: import("./apiEndpointTypes").ApiDemoMutationBlockingClassification;
5189
+ publicMessage: string;
5190
+ };
5191
+ };
5192
+ readonly stopNewsletterCampaign: {
5193
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/stop";
5194
+ method: "POST";
5195
+ tags: ("riverbank:site:{siteId}" | "riverbank:site:{siteId}:newsletter")[];
5196
+ auth: "user";
5197
+ responseKind: "json";
5198
+ demoMutation: {
5199
+ classification: "allowed";
5200
+ publicMessage: "";
5201
+ } | {
5202
+ classification: import("./apiEndpointTypes").ApiDemoMutationBlockingClassification;
5203
+ publicMessage: string;
5204
+ };
5205
+ };
5125
5206
  readonly testSendNewsletterCampaign: {
5126
5207
  path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send";
5127
5208
  method: "POST";
@@ -5618,6 +5699,53 @@ export declare const API_ENDPOINTS: {
5618
5699
  readonly responseKind: "json";
5619
5700
  readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
5620
5701
  };
5702
+ readonly createSite: {
5703
+ path: "/sites/manage";
5704
+ method: "POST";
5705
+ tags: "site"[];
5706
+ auth: "user";
5707
+ responseKind: "json";
5708
+ };
5709
+ readonly updateSite: {
5710
+ path: "/sites/manage";
5711
+ method: "PUT";
5712
+ tags: "site"[];
5713
+ auth: "user";
5714
+ responseKind: "json";
5715
+ };
5716
+ readonly changeSiteAddress: {
5717
+ path: "/sites/{siteId}/address";
5718
+ method: "PUT";
5719
+ auth: "user";
5720
+ responseKind: "json";
5721
+ demoMutation: {
5722
+ classification: "allowed";
5723
+ publicMessage: "";
5724
+ } | {
5725
+ classification: import("./apiEndpointTypes").ApiDemoMutationBlockingClassification;
5726
+ publicMessage: string;
5727
+ };
5728
+ };
5729
+ readonly getSiteAddressAvailability: {
5730
+ path: "/sites/{siteId}/address/availability";
5731
+ method: "GET";
5732
+ auth: "user";
5733
+ responseKind: "json";
5734
+ };
5735
+ readonly deleteSite: {
5736
+ path: "/sites/{siteId}";
5737
+ method: "DELETE";
5738
+ tags: ("site" | "site-{siteId}")[];
5739
+ auth: "user";
5740
+ responseKind: "json";
5741
+ demoMutation: {
5742
+ classification: "allowed";
5743
+ publicMessage: "";
5744
+ } | {
5745
+ classification: import("./apiEndpointTypes").ApiDemoMutationBlockingClassification;
5746
+ publicMessage: string;
5747
+ };
5748
+ };
5621
5749
  readonly adminChangePlan: {
5622
5750
  path: "/admin/billing/plan";
5623
5751
  method: "POST";
@@ -6001,5 +6129,12 @@ export declare const API_ENDPOINTS: {
6001
6129
  auth: "public";
6002
6130
  responseKind: "text";
6003
6131
  };
6132
+ readonly reportClientError: {
6133
+ path: "/client/error-report";
6134
+ method: "POST";
6135
+ auth: "user";
6136
+ errors: never[];
6137
+ responseKind: "json";
6138
+ };
6004
6139
  };
6005
6140
  export declare function buildEndpointURL(baseURL: string, endpoint: keyof APIEndpoints): string;
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ export declare const EVENT_VISIBILITY_VALUES: readonly ["public", "unlisted"];
3
+ /**
4
+ * Where an Event is listed, mirroring appointment service visibility.
5
+ *
6
+ * `public` appears in listings, search and sitemaps. `unlisted` is still
7
+ * bookable by anyone holding the link — it is simply left out of discovery.
8
+ *
9
+ * Whether anybody can reach the Event at all is a different question, answered
10
+ * by its page being online and its run being live. There used to be a third
11
+ * value, `private`, which answered that question a second time; issue 1477
12
+ * retired it.
13
+ */
14
+ export type EventVisibility = (typeof EVENT_VISIBILITY_VALUES)[number];
15
+ export declare const EVENT_VISIBILITY_ERROR_MESSAGE = "visibility must be 'public' or 'unlisted'";
16
+ export declare function isEventVisibility(value: unknown): value is EventVisibility;
17
+ export declare const eventVisibilitySchema: z.ZodEnum<{
18
+ public: "public";
19
+ unlisted: "unlisted";
20
+ }>;
@@ -1,6 +1,8 @@
1
1
  import type { BookingPaymentOptionsSource, BookingPricingDraft, EventCapacityByAttendanceMode, EventDeliveryMode, EventListingDestinationInput, EventSeriesRecord, WaitlistOverride } from './bookingConfig';
2
+ import type { EventVisibility } from './event-visibility';
2
3
  import type { OrdinaryEventPreset, WholeSeriesEventPreset } from '../../core/src/index';
3
4
  import type { EventOnlineDetailsInput } from './bookingRecords';
5
+ import type { AttendeeNotificationIntent, OccurrenceUpdateNotificationOutcome } from './occurrenceScheduling';
4
6
  import type { EventOfferingId, EventSeriesId, PageSurfaceId, SiteId } from '../../core/src/index';
5
7
  export type EventPageAuthorityRecord = {
6
8
  kind: 'offering';
@@ -97,6 +99,17 @@ export type UpdateEventIdentityResponse = Readonly<{
97
99
  title: string;
98
100
  eventCategoryId: string | null;
99
101
  }>;
102
+ /**
103
+ * A course page's web address belongs to the course, not to any of its runs,
104
+ * so it is written against the event itself.
105
+ */
106
+ export type UpdateEventAddressRequest = Readonly<{
107
+ slug: string;
108
+ }>;
109
+ export type UpdateEventAddressResponse = Readonly<{
110
+ eventId: EventOfferingId;
111
+ slug: string;
112
+ }>;
100
113
  export type WholeSeriesRunCancellationSettlement = Readonly<{
101
114
  kind: 'full_refund';
102
115
  operationId: string;
@@ -121,7 +134,11 @@ export type CancelWholeSeriesRunResponse = Readonly<{
121
134
  runId: EventSeriesId;
122
135
  status: 'cancelled' | 'archived';
123
136
  }>;
124
- export type WholeSeriesRunContentMode = 'inheritParent' | 'runSpecific';
137
+ /**
138
+ * Every new run uses the course page. A run that needs its own page splits off
139
+ * afterwards from its Content tab, so creation has no page choice to make.
140
+ */
141
+ export type WholeSeriesRunContentMode = 'inheritParent';
125
142
  export type WholeSeriesRunSessionInput = Readonly<{
126
143
  startsAt: string;
127
144
  endsAt: string;
@@ -130,7 +147,14 @@ export type WholeSeriesRunPolicyOverrideInput = Readonly<{
130
147
  mode: 'inherit' | 'never' | 'always' | 'cutoff';
131
148
  cutoffHours?: number;
132
149
  }>;
133
- /** Booking policy fields stored by this run, independently of future runs. */
150
+ /**
151
+ * Booking policy fields stored on one `event_series` row.
152
+ *
153
+ * For a whole-series run these are no longer writable here: the refunds and
154
+ * transfers policy belongs to the course (see `CourseBookingSettingsRequest`),
155
+ * and guest details and ticketing are site-level. The run endpoint refuses the
156
+ * whole group rather than half-applying it.
157
+ */
134
158
  export type WholeSeriesRunBookingSettingsInput = Readonly<{
135
159
  collectAllAttendeeDetails: boolean | null;
136
160
  ticketingMode: 'inherit' | 'enabled' | 'disabled';
@@ -139,6 +163,26 @@ export type WholeSeriesRunBookingSettingsInput = Readonly<{
139
163
  transfers: WholeSeriesRunPolicyOverrideInput;
140
164
  }>;
141
165
  }>;
166
+ /**
167
+ * The three booking settings a course owns for every one of its runs: where it
168
+ * is listed, whether passes and memberships may be used, and the refunds and
169
+ * transfers policy. Storage stays per run, so this request is the single
170
+ * writer that keeps every run of a course saying the same thing.
171
+ */
172
+ export type CourseBookingSettingsRequest = Readonly<{
173
+ visibility: EventVisibility;
174
+ acceptsPasses: boolean;
175
+ acceptsMemberships: boolean;
176
+ cancellationPolicy: Readonly<{
177
+ refunds: WholeSeriesRunPolicyOverrideInput;
178
+ transfers: WholeSeriesRunPolicyOverrideInput;
179
+ }>;
180
+ }>;
181
+ export type CourseBookingSettingsResponse = Readonly<{
182
+ eventId: EventOfferingId;
183
+ /** Every run the save reached, so the caller can say what it changed. */
184
+ runIds: readonly EventSeriesId[];
185
+ }>;
142
186
  export type WholeSeriesRunDetailsInput = Readonly<{
143
187
  enrollmentCapacity?: number | null;
144
188
  acceptsPasses?: boolean;
@@ -175,10 +219,19 @@ export type UpdateWholeSeriesRunRequest = Omit<WholeSeriesRunDetailsInput, 'titl
175
219
  bookingOffer?: Extract<BookingPricingDraft, {
176
220
  bookingRequirement: 'required';
177
221
  }>;
222
+ /**
223
+ * The "let everyone booked know" tick. Moving the run's usual venue moves
224
+ * every session that has not been given a venue of its own, so it can send
225
+ * one fixed system email listing those dates. The caller only states
226
+ * intent; the server decides whether anything is worth sending.
227
+ */
228
+ attendeeNotification?: AttendeeNotificationIntent;
178
229
  }>;
179
230
  export type WholeSeriesRunMutationResponse = Readonly<{
180
231
  eventId: EventOfferingId;
181
232
  runId: EventSeriesId;
233
+ /** Present only when the save could have notified anyone. */
234
+ notification?: OccurrenceUpdateNotificationOutcome;
182
235
  }>;
183
236
  export type CreateEventRecord = {
184
237
  eventId: EventOfferingId;
@@ -221,7 +274,7 @@ export type CreateEventRequest = {
221
274
  capacity?: number | null;
222
275
  deliveryMode?: EventDeliveryMode;
223
276
  capacityByAttendanceMode?: EventCapacityByAttendanceMode;
224
- visibility?: 'public' | 'private' | 'unlisted';
277
+ visibility?: EventVisibility;
225
278
  eventCategoryId?: string | null;
226
279
  listingDestination?: EventListingDestinationInput;
227
280
  settingsJson?: Record<string, unknown>;
@@ -31,6 +31,14 @@ export declare const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS: {
31
31
  responseKind: "json";
32
32
  errors: ("validation:invalid_input" | "resource:not_found" | "server:internal_error")[];
33
33
  };
34
+ updateEventAddress: {
35
+ path: "/sites/{siteId}/bookings/events/{eventId}/address";
36
+ method: "PATCH";
37
+ tags: ("riverbank:site:{siteId}:routable-content" | "riverbank:site:{siteId}:redirects" | "site-{siteId}" | "event-series-{siteId}")[];
38
+ auth: "user";
39
+ responseKind: "json";
40
+ errors: ("validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
41
+ };
34
42
  createWholeSeriesRun: {
35
43
  path: "/sites/{siteId}/bookings/events/{eventId}/runs";
36
44
  method: "POST";
@@ -47,6 +55,14 @@ export declare const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS: {
47
55
  responseKind: "json";
48
56
  errors: ("validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
49
57
  };
58
+ updateCourseBookingSettings: {
59
+ path: "/sites/{siteId}/bookings/events/{eventId}/booking-settings";
60
+ method: "PATCH";
61
+ tags: ("site-{siteId}" | "event-series-{siteId}")[];
62
+ auth: "user";
63
+ responseKind: "json";
64
+ errors: ("auth:forbidden" | "validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
65
+ };
50
66
  cancelWholeSeriesRun: {
51
67
  path: "/sites/{siteId}/bookings/events/{eventId}/runs/{runId}/cancellation";
52
68
  method: "POST";
@@ -55,4 +71,12 @@ export declare const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS: {
55
71
  responseKind: "json";
56
72
  errors: ("validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
57
73
  };
74
+ saveEventPageWords: {
75
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/words";
76
+ method: "PUT";
77
+ tags: ("riverbank:site" | "riverbank:site:{siteId}:routable-content" | "riverbank:page-surface:{pageSurfaceId}")[];
78
+ auth: "user";
79
+ responseKind: "json";
80
+ errors: ("auth:forbidden" | "validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
81
+ };
58
82
  };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The words people read about an event: the short introduction, the image and
3
+ * the full description. They are the whole of an event page surface's content
4
+ * entry, so they can be saved on their own, leaving the page editor's route,
5
+ * block and layout drafts where they are.
6
+ */
7
+ export type SaveEventPageWordsPayload = {
8
+ summary: string;
9
+ image: unknown;
10
+ body: unknown;
11
+ /** The content hash the form was loaded with, for optimistic concurrency. */
12
+ optimisticHash: string;
13
+ };
14
+ export type SaveEventPageWordsResponse = {
15
+ /** True when the page's route is online, so the words went live on save. */
16
+ published: boolean;
17
+ /** The hash to send with the next save from the same form. */
18
+ optimisticHash: string;
19
+ };
@@ -33,6 +33,13 @@ export declare const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS: {
33
33
  errors: never[];
34
34
  responseKind: "blob";
35
35
  };
36
+ exportEventOfferingRegistrationsCsv: {
37
+ path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}/registrations/export.csv";
38
+ method: "GET";
39
+ auth: "user";
40
+ errors: never[];
41
+ responseKind: "blob";
42
+ };
36
43
  updateEventSeriesRegistration: {
37
44
  path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}";
38
45
  method: "PATCH";
@@ -40,4 +47,11 @@ export declare const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS: {
40
47
  responseKind: "json";
41
48
  errors: ("validation:invalid_input" | "resource:not_found" | "server:internal_error")[];
42
49
  };
50
+ saveEventSeriesRegistrationAnswers: {
51
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}/answers";
52
+ method: "PUT";
53
+ auth: "user";
54
+ responseKind: "json";
55
+ errors: ("auth:forbidden" | "validation:invalid_input" | "resource:not_found" | "resource:conflict" | "server:internal_error")[];
56
+ };
43
57
  };