@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
@@ -898,15 +898,6 @@ function parseMailingListContentVersionId(value) {
898
898
  const parsed = parseContentVersionId(value);
899
899
  return parsed.ok ? parsed.value : null;
900
900
  }
901
- function buildMailingListSignupBlockSourceRef(blockId, contentVersionId) {
902
- const parsedBlockId = parseMailingListBlockId(blockId);
903
- const parsedContentVersionId = parseMailingListContentVersionId(contentVersionId);
904
- return parsedBlockId !== null && parsedContentVersionId !== null ? {
905
- tag: "block_ref",
906
- blockId: parsedBlockId,
907
- contentVersionId: parsedContentVersionId
908
- } : null;
909
- }
910
901
  //#endregion
911
902
  //#region ../core/src/secret.ts
912
903
  /**
@@ -8016,6 +8007,7 @@ const publicEventLoaderQuerySchemaShape = {
8016
8007
  seriesSlug: z.string().optional(),
8017
8008
  includeOccurrenceId: z.string().optional(),
8018
8009
  readIntent: z.string().optional(),
8010
+ detailAdmission: z.string().optional(),
8019
8011
  detailLevel: z.string().optional(),
8020
8012
  readProfile: z.string().optional()
8021
8013
  };
@@ -8182,11 +8174,11 @@ const publicEventBookingAvailabilitySchema = z.discriminatedUnion("kind", [z.obj
8182
8174
  "series_archived",
8183
8175
  "parent_archived",
8184
8176
  "parent_inconsistent",
8185
- "not_public",
8186
8177
  "already_started",
8187
8178
  "enrollment_closed"
8188
8179
  ])
8189
8180
  })]);
8181
+ const publicEventBookingClosedDetailSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("opensSoon") }), z.object({ kind: z.literal("paused") })]);
8190
8182
  const publicRunSessionSchema = z.object({
8191
8183
  occurrenceId: z.string(),
8192
8184
  startsAt: z.string(),
@@ -8231,6 +8223,7 @@ const publicEventBaseSchema = z.object({
8231
8223
  destination: publicEventDestinationSchema,
8232
8224
  requiresRegistration: z.boolean(),
8233
8225
  bookingAvailability: publicEventBookingAvailabilitySchema,
8226
+ bookingClosedDetail: publicEventBookingClosedDetailSchema.optional(),
8234
8227
  deliveryMode: z.enum([
8235
8228
  "in_person",
8236
8229
  "online",
@@ -9464,6 +9457,13 @@ const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions
9464
9457
  errors: [],
9465
9458
  responseKind: "blob"
9466
9459
  },
9460
+ exportEventOfferingRegistrationsCsv: {
9461
+ path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}/registrations/export.csv",
9462
+ method: "GET",
9463
+ auth: "user",
9464
+ errors: [],
9465
+ responseKind: "blob"
9466
+ },
9467
9467
  updateEventSeriesRegistration: {
9468
9468
  path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}",
9469
9469
  method: "PATCH",
@@ -9474,6 +9474,19 @@ const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions
9474
9474
  "resource:not_found",
9475
9475
  "server:internal_error"
9476
9476
  ]
9477
+ },
9478
+ saveEventSeriesRegistrationAnswers: {
9479
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}/answers",
9480
+ method: "PUT",
9481
+ auth: "user",
9482
+ responseKind: "json",
9483
+ errors: [
9484
+ "validation:invalid_input",
9485
+ "auth:forbidden",
9486
+ "resource:not_found",
9487
+ "resource:conflict",
9488
+ "server:internal_error"
9489
+ ]
9477
9490
  }
9478
9491
  });
9479
9492
  //#endregion
@@ -9894,6 +9907,30 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
9894
9907
  responseKind: "json",
9895
9908
  demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
9896
9909
  },
9910
+ scheduleNewsletterCampaign: {
9911
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/schedule",
9912
+ method: "POST",
9913
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
9914
+ auth: "user",
9915
+ responseKind: "json",
9916
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
9917
+ },
9918
+ unscheduleNewsletterCampaign: {
9919
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/unschedule",
9920
+ method: "POST",
9921
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
9922
+ auth: "user",
9923
+ responseKind: "json",
9924
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
9925
+ },
9926
+ stopNewsletterCampaign: {
9927
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/stop",
9928
+ method: "POST",
9929
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
9930
+ auth: "user",
9931
+ responseKind: "json",
9932
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
9933
+ },
9897
9934
  testSendNewsletterCampaign: {
9898
9935
  path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
9899
9936
  method: "POST",
@@ -9904,6 +9941,154 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
9904
9941
  }
9905
9942
  });
9906
9943
  //#endregion
9944
+ //#region ../api/src/sdkEventEndpointDefinitions.ts
9945
+ /**
9946
+ * The SDK's Event graph: the Events themselves and the occurrences of one run.
9947
+ * Extracted from `endpoints.ts` so this family can be read, and added to, on
9948
+ * its own. New entries here must declare `errors`; the
9949
+ * require-api-endpoint-errors lint enforces that here as in endpoints.ts.
9950
+ */
9951
+ const SDK_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
9952
+ sdkListEvents: {
9953
+ path: "/sdk/{siteId}/events",
9954
+ method: "GET",
9955
+ auth: "service",
9956
+ responseKind: "json"
9957
+ },
9958
+ sdkUpsertEvent: {
9959
+ path: "/sdk/{siteId}/events",
9960
+ method: "POST",
9961
+ auth: "service",
9962
+ responseKind: "json",
9963
+ errors: [
9964
+ "validation:invalid_input",
9965
+ "resource:not_found",
9966
+ "resource:conflict",
9967
+ "billing:plan_limit_exceeded",
9968
+ "server:internal_error"
9969
+ ]
9970
+ },
9971
+ sdkGetEvent: {
9972
+ path: "/sdk/{siteId}/events/{identifier}",
9973
+ method: "GET",
9974
+ auth: "service",
9975
+ responseKind: "json"
9976
+ },
9977
+ sdkDeleteEvent: {
9978
+ path: "/sdk/{siteId}/events/{identifier}",
9979
+ method: "DELETE",
9980
+ auth: "service",
9981
+ responseKind: "json",
9982
+ errors: [
9983
+ "resource:not_found",
9984
+ "resource:conflict",
9985
+ "server:internal_error"
9986
+ ]
9987
+ },
9988
+ sdkTakeEventOffline: {
9989
+ path: "/sdk/{siteId}/events/{identifier}/lifecycle",
9990
+ method: "POST",
9991
+ auth: "service",
9992
+ responseKind: "json",
9993
+ errors: [
9994
+ "resource:not_found",
9995
+ "validation:invalid_input",
9996
+ "resource:conflict",
9997
+ "server:internal_error"
9998
+ ]
9999
+ },
10000
+ sdkListEventOccurrences: {
10001
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
10002
+ method: "GET",
10003
+ auth: "service",
10004
+ responseKind: "json",
10005
+ errors: [
10006
+ "resource:not_found",
10007
+ "validation:invalid_input",
10008
+ "server:internal_error"
10009
+ ]
10010
+ },
10011
+ sdkAddEventOccurrence: {
10012
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
10013
+ method: "POST",
10014
+ auth: "service",
10015
+ responseKind: "json",
10016
+ errors: [
10017
+ "resource:not_found",
10018
+ "validation:invalid_input",
10019
+ "resource:conflict",
10020
+ "server:internal_error"
10021
+ ]
10022
+ },
10023
+ sdkUpdateEventOccurrence: {
10024
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
10025
+ method: "PATCH",
10026
+ auth: "service",
10027
+ responseKind: "json",
10028
+ errors: [
10029
+ "resource:not_found",
10030
+ "validation:invalid_input",
10031
+ "resource:conflict",
10032
+ "server:internal_error"
10033
+ ]
10034
+ },
10035
+ sdkCancelEventOccurrence: {
10036
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}/cancel",
10037
+ method: "POST",
10038
+ auth: "service",
10039
+ responseKind: "json",
10040
+ errors: [
10041
+ "resource:not_found",
10042
+ "resource:conflict",
10043
+ "server:internal_error"
10044
+ ]
10045
+ },
10046
+ sdkDeleteEventOccurrence: {
10047
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
10048
+ method: "DELETE",
10049
+ auth: "service",
10050
+ responseKind: "json",
10051
+ errors: [
10052
+ "resource:not_found",
10053
+ "resource:conflict",
10054
+ "server:internal_error"
10055
+ ]
10056
+ }
10057
+ });
10058
+ //#endregion
10059
+ //#region ../api/src/sdkPageDesignEndpointDefinitions.ts
10060
+ /**
10061
+ * SDK management endpoints for a page's draft design (issue 1497), spread into
10062
+ * `ENDPOINT_DEFINITIONS` like the other endpoint-definition modules. New
10063
+ * entries here must declare `errors`, which the require-api-endpoint-errors
10064
+ * lint enforces.
10065
+ */
10066
+ const SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
10067
+ sdkGetPageDesign: {
10068
+ path: "/sdk/{siteId}/pages/{identifier}/design",
10069
+ method: "GET",
10070
+ auth: "service",
10071
+ responseKind: "json",
10072
+ errors: [
10073
+ "resource:not_found",
10074
+ "validation:invalid_input",
10075
+ "server:internal_error"
10076
+ ]
10077
+ },
10078
+ sdkSavePageDesign: {
10079
+ path: "/sdk/{siteId}/pages/{identifier}/design",
10080
+ method: "POST",
10081
+ auth: "service",
10082
+ responseKind: "json",
10083
+ errors: [
10084
+ "resource:not_found",
10085
+ "validation:invalid_input",
10086
+ "resource:conflict",
10087
+ "server:internal_error"
10088
+ ]
10089
+ }
10090
+ });
10091
+ //#endregion
9907
10092
  //#region ../api/src/publicEventEndpointDefinitions.ts
9908
10093
  const PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
9909
10094
  checkPublicEventRegistrationNextStep: {
@@ -10148,6 +10333,45 @@ const SITE_API_KEY_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
10148
10333
  }
10149
10334
  });
10150
10335
  //#endregion
10336
+ //#region ../api/src/siteManagementEndpointDefinitions.ts
10337
+ const SITE_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
10338
+ createSite: {
10339
+ path: "/sites/manage",
10340
+ method: "POST",
10341
+ tags: ["site"],
10342
+ auth: "user",
10343
+ responseKind: "json"
10344
+ },
10345
+ updateSite: {
10346
+ path: "/sites/manage",
10347
+ method: "PUT",
10348
+ tags: ["site"],
10349
+ auth: "user",
10350
+ responseKind: "json"
10351
+ },
10352
+ changeSiteAddress: {
10353
+ path: "/sites/{siteId}/address",
10354
+ method: "PUT",
10355
+ auth: "user",
10356
+ responseKind: "json",
10357
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
10358
+ },
10359
+ getSiteAddressAvailability: {
10360
+ path: "/sites/{siteId}/address/availability",
10361
+ method: "GET",
10362
+ auth: "user",
10363
+ responseKind: "json"
10364
+ },
10365
+ deleteSite: {
10366
+ path: "/sites/{siteId}",
10367
+ method: "DELETE",
10368
+ tags: ["site", "site-{siteId}"],
10369
+ auth: "user",
10370
+ responseKind: "json",
10371
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
10372
+ }
10373
+ });
10374
+ //#endregion
10151
10375
  //#region ../api/src/eventManagementEndpointDefinitions.ts
10152
10376
  const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
10153
10377
  listEvents: {
@@ -10195,6 +10419,28 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
10195
10419
  "server:internal_error"
10196
10420
  ]
10197
10421
  },
10422
+ /**
10423
+ * The web address of an event's own page. A course page belongs to the
10424
+ * event itself, so its address is written here rather than through a run.
10425
+ */
10426
+ updateEventAddress: {
10427
+ path: "/sites/{siteId}/bookings/events/{eventId}/address",
10428
+ method: "PATCH",
10429
+ tags: [
10430
+ "site-{siteId}",
10431
+ "event-series-{siteId}",
10432
+ TAG_TEMPLATES.siteRoutableContent,
10433
+ TAG_TEMPLATES.siteRedirects
10434
+ ],
10435
+ auth: "user",
10436
+ responseKind: "json",
10437
+ errors: [
10438
+ "validation:invalid_input",
10439
+ "resource:not_found",
10440
+ "resource:conflict",
10441
+ "server:internal_error"
10442
+ ]
10443
+ },
10198
10444
  createWholeSeriesRun: {
10199
10445
  path: "/sites/{siteId}/bookings/events/{eventId}/runs",
10200
10446
  method: "POST",
@@ -10221,6 +10467,20 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
10221
10467
  "server:internal_error"
10222
10468
  ]
10223
10469
  },
10470
+ updateCourseBookingSettings: {
10471
+ path: "/sites/{siteId}/bookings/events/{eventId}/booking-settings",
10472
+ method: "PATCH",
10473
+ tags: ["site-{siteId}", "event-series-{siteId}"],
10474
+ auth: "user",
10475
+ responseKind: "json",
10476
+ errors: [
10477
+ "validation:invalid_input",
10478
+ "auth:forbidden",
10479
+ "resource:not_found",
10480
+ "resource:conflict",
10481
+ "server:internal_error"
10482
+ ]
10483
+ },
10224
10484
  cancelWholeSeriesRun: {
10225
10485
  path: "/sites/{siteId}/bookings/events/{eventId}/runs/{runId}/cancellation",
10226
10486
  method: "POST",
@@ -10233,6 +10493,28 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
10233
10493
  "resource:conflict",
10234
10494
  "server:internal_error"
10235
10495
  ]
10496
+ },
10497
+ /**
10498
+ * The Content tab's one write: the short introduction, image and
10499
+ * description of an event's page, published without its layout.
10500
+ */
10501
+ saveEventPageWords: {
10502
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/words",
10503
+ method: "PUT",
10504
+ tags: [
10505
+ TAG_TEMPLATES.siteCollection,
10506
+ TAG_TEMPLATES.siteRoutableContent,
10507
+ TAG_TEMPLATES.pageSurfaceById
10508
+ ],
10509
+ auth: "user",
10510
+ responseKind: "json",
10511
+ errors: [
10512
+ "auth:forbidden",
10513
+ "validation:invalid_input",
10514
+ "resource:not_found",
10515
+ "resource:conflict",
10516
+ "server:internal_error"
10517
+ ]
10236
10518
  }
10237
10519
  });
10238
10520
  //#endregion
@@ -10665,19 +10947,56 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
10665
10947
  responseKind: "json"
10666
10948
  }
10667
10949
  });
10950
+ //#endregion
10951
+ //#region ../api/src/clientErrorReporting.ts
10952
+ const CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ reportClientError: {
10953
+ path: "/client/error-report",
10954
+ method: "POST",
10955
+ auth: "user",
10956
+ errors: [],
10957
+ responseKind: "json"
10958
+ } });
10959
+ const CLIENT_ERROR_REPORT_LIMITS = {
10960
+ pathname: 1024,
10961
+ name: 120,
10962
+ message: 2e3,
10963
+ stack: 8e3,
10964
+ digest: 128,
10965
+ componentStack: 8e3,
10966
+ sourceLocation: 1024
10967
+ };
10968
+ const clientErrorEventSchema = z.enum([
10969
+ "dashboard:route-error",
10970
+ "dashboard:app-error",
10971
+ "client:error-boundary",
10972
+ "client:window-error",
10973
+ "client:unhandled-rejection"
10974
+ ]);
10975
+ z.object({
10976
+ event: clientErrorEventSchema,
10977
+ pathname: z.string().startsWith("/").max(CLIENT_ERROR_REPORT_LIMITS.pathname),
10978
+ name: z.string().max(CLIENT_ERROR_REPORT_LIMITS.name),
10979
+ message: z.string().max(CLIENT_ERROR_REPORT_LIMITS.message),
10980
+ stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
10981
+ digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
10982
+ componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
10983
+ sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
10984
+ }).strict();
10668
10985
  ({
10986
+ ...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
10669
10987
  ...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
10670
10988
  ...ACCOUNT_ENDPOINT_DEFINITIONS,
10671
10989
  ...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
10672
10990
  ...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
10673
10991
  ...GIFTING_ENDPOINT_DEFINITIONS,
10674
10992
  ...PUBLIC_READ_ENDPOINT_DEFINITIONS,
10675
- ...BILLING_ENDPOINT_DEFINITIONS
10993
+ ...BILLING_ENDPOINT_DEFINITIONS,
10994
+ ...SITE_MANAGEMENT_ENDPOINT_DEFINITIONS
10676
10995
  }), TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, { ...SITE_API_KEY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, {
10677
10996
  ...NEWSLETTER_ENDPOINT_DEFINITIONS,
10678
10997
  ...APPOINTMENT_ENDPOINT_DEFINITIONS,
10679
10998
  ...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
10680
- }, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicBookingServices, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, { ...PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, { ...PUBLIC_EVENT_CHECKOUT_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...SDK_MEDIA_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
10999
+ }, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicBookingServices, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, { ...PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, { ...PUBLIC_EVENT_CHECKOUT_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...SDK_MEDIA_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS }, { ...SDK_EVENT_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
10681
11000
  z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
10682
11001
  z.object({
10683
11002
  accessToken: z.string().min(1).max(4096),
@@ -26790,13 +27109,13 @@ const hours = stack({
26790
27109
  as: "p",
26791
27110
  className: "rb-caption rb-opacity-70"
26792
27111
  }, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
26793
- const socials = inline({ className: "rb-flex rb-flex-wrap rb-gap-x-5 rb-gap-y-3" }, [link({
27112
+ const socials = inline({ className: "rb-footer-socials" }, [link({
26794
27113
  href: { $bind: { from: "social.href" } },
26795
27114
  target: "_blank",
26796
27115
  rel: "noreferrer noopener",
26797
27116
  "aria-label": { $bind: { from: "social.label" } },
26798
- className: "rb-nav-text transition-theme-standard"
26799
- }, [icon({ className: "rb-h-5 rb-w-5" }, bind("social.icon"), when("social.icon")), text({ as: "span" }, bind("social.label"), when("social.icon", { equals: null }))], repeat("module.socialLinks", "social"))], when("module.kind", { equals: "social-links" }));
27117
+ className: "rb-footer-social-link rb-nav-text transition-theme-standard"
27118
+ }, [icon({ className: "rb-footer-social-icon" }, bind("social.icon"), when("social.icon")), text({ as: "span" }, bind("social.label"), when("social.icon", { equals: null }))], repeat("module.socialLinks", "social"))], when("module.kind", { equals: "social-links" }));
26800
27119
  const authoredCopy = richText({
26801
27120
  className: "rb-prose rb-prose-sm rb-max-w-none",
26802
27121
  style: textColorStyle("text/80")
@@ -36308,6 +36627,11 @@ const mailingListContentVersionIdSchema = z.string().transform((value, ctx) => {
36308
36627
  });
36309
36628
  return z.NEVER;
36310
36629
  });
36630
+ const mailingListSignupBlockSourceRefSchema = z.object({
36631
+ tag: z.literal("block_ref"),
36632
+ blockId: mailingListSignupBlockIdSchema,
36633
+ contentVersionId: mailingListContentVersionIdSchema
36634
+ });
36311
36635
  const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
36312
36636
  const newsletterSourceCommonSchema = z.object({
36313
36637
  siteId: z.string().optional(),
@@ -36322,7 +36646,15 @@ const newsletterSourceSchema = z.discriminatedUnion("source", [
36322
36646
  newsletterSourceCommonSchema.extend({
36323
36647
  source: z.literal("block"),
36324
36648
  blockId: z.string().nullable().optional(),
36325
- contentVersionId: z.string().nullable().optional()
36649
+ newsletterBlockSubmission: z.discriminatedUnion("tag", [
36650
+ z.object({
36651
+ tag: z.literal("ready"),
36652
+ sourceRef: mailingListSignupBlockSourceRefSchema
36653
+ }),
36654
+ z.object({ tag: z.literal("unpublished-form") }),
36655
+ z.object({ tag: z.literal("unpublished-settings") }),
36656
+ z.object({ tag: z.literal("unavailable") })
36657
+ ])
36326
36658
  }),
36327
36659
  newsletterSourceCommonSchema.extend({
36328
36660
  source: z.literal("signed-footer"),
@@ -36351,11 +36683,7 @@ const newsletterHydrationSchema = z.object({
36351
36683
  target: z.discriminatedUnion("tag", [
36352
36684
  z.object({
36353
36685
  tag: z.literal("block-source"),
36354
- sourceRef: z.object({
36355
- tag: z.literal("block_ref"),
36356
- blockId: mailingListSignupBlockIdSchema,
36357
- contentVersionId: mailingListContentVersionIdSchema
36358
- }).nullable()
36686
+ sourceRef: mailingListSignupBlockSourceRefSchema.nullable()
36359
36687
  }),
36360
36688
  z.object({
36361
36689
  tag: z.literal("signed-footer-source"),
@@ -36364,7 +36692,11 @@ const newsletterHydrationSchema = z.object({
36364
36692
  token: signedMailingListSourceTokenSchema
36365
36693
  })
36366
36694
  }),
36367
- z.object({ tag: z.literal("preview") })
36695
+ z.object({ tag: z.literal("preview") }),
36696
+ z.object({
36697
+ tag: z.literal("unpublished-preview"),
36698
+ reason: z.enum(["unpublished-form", "unpublished-settings"])
36699
+ })
36368
36700
  ]),
36369
36701
  setupRevision: z.number().int().positive().nullable(),
36370
36702
  choiceProvider: z.enum([
@@ -36433,16 +36765,21 @@ const newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
36433
36765
  });
36434
36766
  function projectNewsletterFormHydrationTarget(source) {
36435
36767
  switch (source.source) {
36436
- case "block": {
36437
- const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId, source.contentVersionId);
36438
- if (sourceRef?.tag === "block_ref") return {
36768
+ case "block": switch (source.newsletterBlockSubmission.tag) {
36769
+ case "unpublished-form":
36770
+ case "unpublished-settings": return {
36771
+ tag: "unpublished-preview",
36772
+ reason: source.newsletterBlockSubmission.tag
36773
+ };
36774
+ case "ready": return {
36439
36775
  tag: "block-source",
36440
- sourceRef
36776
+ sourceRef: source.newsletterBlockSubmission.sourceRef
36441
36777
  };
36442
- return {
36778
+ case "unavailable": return {
36443
36779
  tag: "block-source",
36444
36780
  sourceRef: null
36445
36781
  };
36782
+ default: return assertNever$3(source.newsletterBlockSubmission);
36446
36783
  }
36447
36784
  case "signed-footer": return {
36448
36785
  tag: "signed-footer-source",
@@ -39484,6 +39821,46 @@ z.object({ acceptExtraSiteCharge: z.boolean().optional() });
39484
39821
  //#region ../surfaces/src/index.ts
39485
39822
  const SURFACE_IDS = ["core", "macadamia"];
39486
39823
  const DEFAULT_SURFACE_ID = "core";
39824
+ /**
39825
+ * Root hosts for each surface, keyed by deployment tier. The tier-keyed shape
39826
+ * makes it impossible to mis-order entries: callers like
39827
+ * `buildSurfaceAwareDashboardOriginForSurfaceId` look up by tier directly
39828
+ * rather than relying on positional alignment between arrays.
39829
+ */
39830
+ const SURFACE_ROOT_HOSTS = {
39831
+ core: {
39832
+ local: "localhost",
39833
+ prod: "riverbankcms.com"
39834
+ },
39835
+ macadamia: {
39836
+ local: "macadamia.localhost",
39837
+ prod: "macadamia.studio"
39838
+ }
39839
+ };
39840
+ const SURFACE_SITE_ROOT_HOSTS = {
39841
+ core: {
39842
+ local: "localhost",
39843
+ prod: "riverbanksites.com"
39844
+ },
39845
+ macadamia: {
39846
+ local: "macadamia.localhost",
39847
+ prod: "macadamia.studio"
39848
+ }
39849
+ };
39850
+ const SURFACE_SITE_ROOT_HOST_ALIASES = { core: { prod: ["preview.riverbanksites.com"] } };
39851
+ function surfaceHostTableValues(table) {
39852
+ return Object.values(table).flatMap((byTier) => Object.values(byTier).flat());
39853
+ }
39854
+ function siteSlugLabelUnderRoot(host, siteRootHost) {
39855
+ if (!host.endsWith(`.${siteRootHost}`)) return [];
39856
+ return host.slice(0, host.length - siteRootHost.length - 1).split(".").slice(-1);
39857
+ }
39858
+ function deriveSurfaceOwnedSiteSlugs() {
39859
+ const siteRootHosts = [...surfaceHostTableValues(SURFACE_SITE_ROOT_HOSTS), ...surfaceHostTableValues(SURFACE_SITE_ROOT_HOST_ALIASES)];
39860
+ const labels = [...surfaceHostTableValues(SURFACE_ROOT_HOSTS), ...siteRootHosts].flatMap((host) => siteRootHosts.flatMap((root) => siteSlugLabelUnderRoot(host, root)));
39861
+ return [...new Set(labels)].sort();
39862
+ }
39863
+ deriveSurfaceOwnedSiteSlugs();
39487
39864
  [...SURFACE_IDS.filter((surfaceId) => surfaceId !== DEFAULT_SURFACE_ID)];
39488
39865
  //#endregion
39489
39866
  //#region ../api/src/accountApi.ts
@@ -40112,6 +40489,7 @@ function parsePublicProductCategorySelector(value) {
40112
40489
  productCategoryEntryId: record.productCategoryEntryId
40113
40490
  };
40114
40491
  }
40492
+ z.enum(["public", "unlisted"], { error: "visibility must be 'public' or 'unlisted'" });
40115
40493
  //#endregion
40116
40494
  //#region ../api/src/bookingPaymentTermSchemas.ts
40117
40495
  const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);