@riverbankcms/sdk 0.144.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 (228) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/{PreviewEditorSidebar-CQZNnFiM.mjs → PreviewEditorSidebar-kg2r2Fyi.mjs} +4 -4
  3. package/dist/{PreviewEditorUI-DCNxnmI0.mjs → PreviewEditorUI-sWMLp5dT.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BCYICImX.mjs → PreviewQueryProvider-Cg51xq1w.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-BJolUbr1.mjs → SdkPreviewModeRuntime-h2ti3Hch.mjs} +688 -519
  6. package/dist/{SiteChromeCustomizeContext-CKgEpoxi.mjs → SiteChromeCustomizeContext-DEACFH9m.mjs} +3381 -2017
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +5643 -66
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +513 -6
  9. package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +49 -0
  10. package/dist/_dts/api/src/appointmentServiceCategoryEndpoints.d.ts +75 -0
  11. package/dist/_dts/api/src/appointmentServiceContracts.d.ts +80 -0
  12. package/dist/_dts/api/src/appointmentSetup.d.ts +8 -1
  13. package/dist/_dts/api/src/bookingConfig.d.ts +8 -1
  14. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +10 -26
  15. package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +45 -1
  16. package/dist/_dts/api/src/clientErrorReporting.d.ts +50 -0
  17. package/dist/_dts/api/src/communications.d.ts +32 -24
  18. package/dist/_dts/api/src/contentRuntime.d.ts +3 -5
  19. package/dist/_dts/api/src/endpoints.d.ts +316 -134
  20. package/dist/_dts/api/src/event-visibility.d.ts +20 -0
  21. package/dist/_dts/api/src/eventManagementContracts.d.ts +56 -3
  22. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +24 -0
  23. package/dist/_dts/api/src/eventPageWords.d.ts +19 -0
  24. package/dist/_dts/api/src/eventSeriesRegistrationEndpointDefinitions.d.ts +14 -0
  25. package/dist/_dts/api/src/index.d.ts +7 -1
  26. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  27. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  28. package/dist/_dts/api/src/launchReadiness.d.ts +22 -2
  29. package/dist/_dts/api/src/launchRequirementPriority.d.ts +3 -0
  30. package/dist/_dts/api/src/newsletterCampaignCommandEndpoints.d.ts +13 -0
  31. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +30 -11
  32. package/dist/_dts/api/src/occurrenceScheduling.d.ts +10 -0
  33. package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +3 -0
  34. package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +44 -0
  35. package/dist/_dts/api/src/participantMessaging.d.ts +11 -1
  36. package/dist/_dts/api/src/publicBookingService.d.ts +35 -1
  37. package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +13 -0
  38. package/dist/_dts/api/src/publicNewsletterEndpointDefinitions.d.ts +58 -0
  39. package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +3 -3
  40. package/dist/_dts/api/src/sdk-event-upsert.d.ts +40 -1
  41. package/dist/_dts/api/src/sdkContracts.d.ts +3 -42
  42. package/dist/_dts/api/src/sdkCourseBooking.d.ts +30 -0
  43. package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +76 -0
  44. package/dist/_dts/api/src/sdkEventLifecycle.d.ts +37 -0
  45. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +18 -0
  46. package/dist/_dts/api/src/sdkPageDesign.d.ts +388 -0
  47. package/dist/_dts/api/src/sdkPageDesignEndpointDefinitions.d.ts +22 -0
  48. package/dist/_dts/api/src/sdkPullEventContracts.d.ts +46 -0
  49. package/dist/_dts/api/src/siteAddressEndpoints.d.ts +29 -0
  50. package/dist/_dts/api/src/siteManagementEndpointDefinitions.d.ts +49 -0
  51. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +4 -38
  52. package/dist/_dts/api/src/siteOnboarding.d.ts +75 -9
  53. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -1
  54. package/dist/_dts/api/src/types.d.ts +8 -1
  55. package/dist/_dts/api/src/wholeSeriesRuns.d.ts +14 -0
  56. package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -4
  57. package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
  58. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +24 -0
  59. package/dist/_dts/blocks/src/index.d.ts +3 -1
  60. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +10 -0
  61. package/dist/_dts/blocks/src/pageRenderJoins.d.ts +68 -0
  62. package/dist/_dts/blocks/src/pageRenderPlan.d.ts +8 -27
  63. package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +7 -4
  64. package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +40 -23
  65. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -1
  66. package/dist/_dts/blocks/src/server.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +2 -0
  68. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +2 -2
  69. package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +1 -1
  70. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +27 -5
  71. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +14 -1
  72. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
  74. package/dist/_dts/blocks/src/system/icons/social.d.ts +1 -1
  75. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -3
  76. package/dist/_dts/blocks/src/system/registry.d.ts +1 -1
  77. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
  78. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +22 -2
  79. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -1
  80. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +57 -2
  81. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-categories.d.ts +29 -0
  82. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-choices.d.ts +13 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +3 -3
  84. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +13 -1
  85. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +2 -1
  86. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +23 -7
  87. package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +36 -0
  89. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.d.ts +1 -1
  90. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +6 -1
  91. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +46 -0
  92. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +20 -1
  93. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
  94. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -1
  95. package/dist/_dts/blocks/src/system/runtime/shared/components/CheckboxChoice.d.ts +18 -0
  96. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
  97. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  98. package/dist/_dts/content-editor/src/primitives/previewEditableOutline.d.ts +2 -0
  99. package/dist/_dts/content-editor/src/ui/editorBlockEquality.d.ts +3 -0
  100. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -3
  101. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  102. package/dist/_dts/core/src/appointment-service-categories.d.ts +108 -0
  103. package/dist/_dts/core/src/block-content-identity.d.ts +5 -0
  104. package/dist/_dts/core/src/editor-state.d.ts +2 -1
  105. package/dist/_dts/core/src/index.d.ts +2 -0
  106. package/dist/_dts/core/src/mailing-list-submission.d.ts +3 -1
  107. package/dist/_dts/core/src/public-event-booking-availability.d.ts +20 -1
  108. package/dist/_dts/core/src/public-profile.d.ts +12 -1
  109. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +711 -242
  110. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
  111. package/dist/_dts/editor-blocks/src/block-editor/EmptyState.d.ts +13 -1
  112. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +2 -2
  113. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  114. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +16 -1
  115. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +13 -0
  116. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +29 -0
  117. package/dist/_dts/preview-next/src/client/blocks/BoundaryControl.d.ts +7 -2
  118. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +1 -1
  119. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +3 -3
  120. package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +1 -3
  121. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  122. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +2 -2
  123. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -1
  124. package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +8 -0
  125. package/dist/_dts/sdk/src/client/types.d.ts +1 -1
  126. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  127. package/dist/_dts/sdk/src/contracts/page.d.ts +7 -2
  128. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
  129. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +2 -2
  130. package/dist/_dts/sdk/src/next/renderSdkContent.d.ts +0 -1
  131. package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -8
  132. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +4 -4
  133. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -4
  134. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +7 -2
  135. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +5 -2
  136. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +6 -1
  137. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +2 -0
  138. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +6 -2
  139. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +5 -1
  140. package/dist/_dts/sdk/src/version.d.ts +1 -1
  141. package/dist/_dts/surfaces/src/index.d.ts +10 -0
  142. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  143. package/dist/_dts/theme-core/src/inputs/checkable.d.ts +42 -0
  144. package/dist/_dts/theme-core/src/inputs/inputGroup.d.ts +19 -0
  145. package/dist/_dts/theme-core/src/layout/boundaryCss.d.ts +3 -0
  146. package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +8 -0
  147. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +3 -2
  148. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +1 -3
  149. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -0
  150. package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
  151. package/dist/_dts/theme-core/src/site-styles/joinTreatment.d.ts +132 -0
  152. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorBoundaries.d.ts +31 -0
  153. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +33 -29
  154. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
  155. package/dist/_dts/theme-core/src/site-styles/pageFlowPresets.d.ts +36 -0
  156. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -10
  157. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +17 -4
  158. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +20 -74
  159. package/dist/_dts/theme-core/src/site-styles/sectionBoundaryComposition.d.ts +95 -0
  160. package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +80 -518
  161. package/dist/_dts/theme-core/src/site-styles/siteStyleBlockPolicies.d.ts +9 -4
  162. package/dist/_dts/theme-core/src/site-styles/transitionCatalogue.d.ts +320 -0
  163. package/dist/_dts/theme-core/src/site-styles/types.d.ts +3 -18
  164. package/dist/_dts/ui/src/navigation-tabs.d.ts +2 -1
  165. package/dist/client/{BookingConsentAgreement-DoAILrkN.mjs → BookingConsentAgreement-BQKL045f.mjs} +2 -2
  166. package/dist/client/CheckboxChoice--W2n6yKs.mjs +24 -0
  167. package/dist/client/{DiscountCodeDisclosure-X528hUTf.mjs → DiscountCodeDisclosure-CsOtjFY7.mjs} +1 -1
  168. package/dist/client/{EventCombined.client-DSBVwq5m.mjs → EventCombined.client-BdRjVbhH.mjs} +6 -6
  169. package/dist/client/{EventListing.client-DmFAX7Vb.mjs → EventListing.client-DBxC6xOU.mjs} +2 -2
  170. package/dist/client/{LeafletStaticMap-BAqXdfhq.mjs → LeafletStaticMap-mHEJKrTs.mjs} +1 -1
  171. package/dist/client/{ThemedButton-BwNFVwi4.mjs → ThemedButton-CE5KYT6z.mjs} +1 -1
  172. package/dist/client/{accordion-DRhMdkbd.mjs → accordion-BEQNSptH.mjs} +1 -1
  173. package/dist/client/{bookingForm-iJ_nCsNF.mjs → bookingForm-AMr-s5vw.mjs} +168 -95
  174. package/dist/client/bookings.mjs +239 -110
  175. package/dist/client/{carousel-D8zuffZr.mjs → carousel-Bbt_QgJy.mjs} +1 -1
  176. package/dist/client/{cart-DeMGJViN.mjs → cart-CnWi30zJ.mjs} +3 -3
  177. package/dist/client/{checkout-DXc06Km2.mjs → checkout-f3nkWgd4.mjs} +3 -3
  178. package/dist/client/client.mjs +3222 -1612
  179. package/dist/client/{context-CDLCfDep.mjs → context-Bc8T6pCe.mjs} +1 -1
  180. package/dist/client/{dates-ClFx7Epy.mjs → dates-DUsCEzLb.mjs} +2 -3
  181. package/dist/client/{eventCalendar-BaGpnOGN.mjs → eventCalendar-CKwgXui5.mjs} +9 -9
  182. package/dist/client/{eventCombined-ywONOx2m.mjs → eventCombined-CBAOSTGR.mjs} +4 -4
  183. package/dist/client/{eventDetails-B2LlOTYY.mjs → eventDetails-Dh-_WiBD.mjs} +4 -4
  184. package/dist/client/{eventListing-CMgxWpqP.mjs → eventListing-CA3frIH5.mjs} +4 -4
  185. package/dist/client/{eventRegistration-BarLDNHR.mjs → eventRegistration-BHtsgdcg.mjs} +21 -22
  186. package/dist/client/{form-BjqKaBJ7.mjs → form-C2h3YAcg.mjs} +135 -104
  187. package/dist/client/{headerSection-CP4XDwz1.mjs → headerSection-lwMuMTH9.mjs} +3 -3
  188. package/dist/client/hooks.mjs +1023 -148
  189. package/dist/client/{locationMap-C5gW-d-w.mjs → locationMap-DJ2bLODV.mjs} +3 -3
  190. package/dist/client/{newsletterForm-afXlVSA0.mjs → newsletterForm-8Pu5K32g.mjs} +225 -102
  191. package/dist/client/{pricing-Bl1CAl28.mjs → pricing-HHx3IgBz.mjs} +1 -1
  192. package/dist/client/{productDetail-CvQ3jWQe.mjs → productDetail-C_1odnAf.mjs} +3 -3
  193. package/dist/client/{productList-U874PGO7.mjs → productList-CtCv-Nmx.mjs} +3 -3
  194. package/dist/client/{propsDecoder-DPXtCZWP.mjs → propsDecoder-Dcgsncxb.mjs} +111 -55
  195. package/dist/client/rendering/client.mjs +1389 -722
  196. package/dist/client/rendering/islands.mjs +17 -17
  197. package/dist/client/rendering.mjs +3136 -1400
  198. package/dist/client/{routeIslandApiConfig-NGYiUWXu.mjs → routeIslandApiConfig-CWLP7wu3.mjs} +1 -1
  199. package/dist/client/{scrollToBlock-0-C3DVhK.mjs → scrollToBlock-BNgaEUpo.mjs} +1 -1
  200. package/dist/client/{shop-BXjXhM9P.mjs → shop-DQXrQ8kJ.mjs} +7 -7
  201. package/dist/client/{shop-commerce-BZ6UlWJ7.mjs → shop-commerce-B88zmWWo.mjs} +6 -6
  202. package/dist/client/{shop-commerce-store-DlSBXb3D.mjs → shop-commerce-store-DtSfkKuX.mjs} +1 -1
  203. package/dist/client/{shopShared-kkEOiLPA.mjs → shopShared-cuaONpkJ.mjs} +4 -4
  204. package/dist/client/{useEventFilters-zvnnE1ro.mjs → useEventFilters-Bukew6Gb.mjs} +6 -6
  205. package/dist/preview-next/before-render.mjs +500 -165
  206. package/dist/preview-next/client/runtime.mjs +4 -4
  207. package/dist/preview-next/editor-base.css +11 -0
  208. package/dist/preview-next/keepAlive.mjs +460 -165
  209. package/dist/preview-next/middleware.mjs +461 -165
  210. package/dist/{previewAuthStore-JA6-I_sL.mjs → previewAuthStore-h5IgbSp4.mjs} +485 -165
  211. package/dist/{sdk-runtime-DFJlQt3q.mjs → sdk-runtime-DTc1uIXn.mjs} +2 -2
  212. package/dist/{separator-o8GHb1xh.mjs → separator-BpHS1KZK.mjs} +1 -1
  213. package/dist/server/components.mjs +3088 -1307
  214. package/dist/server/config-validation.mjs +927 -109
  215. package/dist/server/config.mjs +927 -109
  216. package/dist/server/data.mjs +939 -110
  217. package/dist/server/index.mjs +513 -169
  218. package/dist/server/next.mjs +2874 -1195
  219. package/dist/server/page-converter.mjs +420 -79
  220. package/dist/server/prebuild.mjs +1 -1
  221. package/dist/server/rendering/server.mjs +3071 -1289
  222. package/dist/server/rendering.mjs +3169 -1350
  223. package/dist/server/routing.mjs +1085 -159
  224. package/dist/server/server.mjs +1042 -291
  225. package/dist/server/theme-bridge.mjs +1658 -137
  226. package/dist/server/theme.mjs +6 -4
  227. package/dist/styles/index.css +186 -65
  228. package/package.json +2 -1
@@ -1,6 +1,76 @@
1
1
  "use client";
2
2
  import * as React$1 from "react";
3
3
  import { useSyncExternalStore } from "react";
4
+ import { z } from "zod";
5
+ //#region ../api/src/defineEndpointDefinitions.ts
6
+ /**
7
+ * Validates extracted endpoint descriptors while preserving each literal path,
8
+ * method, and parameter contract for the typed URL builders.
9
+ */
10
+ function defineEndpointDefinitions(definitions) {
11
+ return definitions;
12
+ }
13
+ //#endregion
14
+ //#region ../api/src/publicNewsletterEndpointDefinitions.ts
15
+ const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
16
+ subscribeNewsletter: {
17
+ path: "/public/sites/{siteId}/newsletter/subscribe",
18
+ method: "POST",
19
+ tags: ["public-newsletter-{siteId}"],
20
+ auth: "public",
21
+ responseKind: "json"
22
+ },
23
+ confirmNewsletter: {
24
+ path: "/public/sites/{siteId}/newsletter/confirm/{token}",
25
+ method: "GET",
26
+ tags: ["public-newsletter-{siteId}"],
27
+ auth: "public",
28
+ responseKind: "text"
29
+ },
30
+ unsubscribeNewsletter: {
31
+ path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
32
+ method: "GET",
33
+ tags: ["public-newsletter-{siteId}"],
34
+ auth: "public",
35
+ responseKind: "text"
36
+ },
37
+ unsubscribeNewsletterPost: {
38
+ path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
39
+ method: "POST",
40
+ tags: ["public-newsletter-{siteId}"],
41
+ auth: "public",
42
+ responseKind: "text"
43
+ },
44
+ confirmNewsletterPost: {
45
+ path: "/public/sites/{siteId}/newsletter/confirm/{token}",
46
+ method: "POST",
47
+ tags: ["public-newsletter-{siteId}"],
48
+ auth: "public",
49
+ responseKind: "text"
50
+ },
51
+ getNewsletterPreferences: {
52
+ path: "/public/sites/{siteId}/newsletter/preferences/{token}",
53
+ method: "GET",
54
+ tags: ["public-newsletter-{siteId}"],
55
+ auth: "public",
56
+ responseKind: "text"
57
+ },
58
+ saveNewsletterPreferences: {
59
+ path: "/public/sites/{siteId}/newsletter/preferences/{token}",
60
+ method: "POST",
61
+ tags: ["public-newsletter-{siteId}"],
62
+ auth: "public",
63
+ responseKind: "text"
64
+ },
65
+ getNewsletterArchive: {
66
+ path: "/public/sites/{siteId}/newsletter/archive/{token}",
67
+ method: "GET",
68
+ tags: ["public-newsletter-{siteId}"],
69
+ auth: "public",
70
+ responseKind: "text"
71
+ }
72
+ });
73
+ //#endregion
4
74
  //#region ../api/src/apiEndpointTypes.ts
5
75
  function allowedDemoMutationPolicy() {
6
76
  return {
@@ -92,17 +162,85 @@ const SDK_ENTRY_READ_ENDPOINTS = {
92
162
  }
93
163
  };
94
164
  //#endregion
95
- //#region ../api/src/defineEndpointDefinitions.ts
96
- /**
97
- * Validates extracted endpoint descriptors while preserving each literal path,
98
- * method, and parameter contract for the typed URL builders.
99
- */
100
- function defineEndpointDefinitions(definitions) {
101
- return definitions;
102
- }
103
- //#endregion
104
165
  //#region ../api/src/appointmentEndpointDefinitions.ts
105
166
  const APPOINTMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
167
+ ...defineEndpointDefinitions({
168
+ listGroupedAppointmentServices: {
169
+ path: "/sites/{siteId}/bookings/services/grouped",
170
+ method: "GET",
171
+ auth: "user",
172
+ responseKind: "json",
173
+ errors: ["server:internal_error"]
174
+ },
175
+ reorderAppointmentServices: {
176
+ path: "/sites/{siteId}/bookings/services/order",
177
+ method: "PUT",
178
+ auth: "user",
179
+ responseKind: "json",
180
+ errors: [
181
+ "validation:invalid_input",
182
+ "auth:forbidden",
183
+ "resource:not_found",
184
+ "resource:conflict",
185
+ "server:internal_error"
186
+ ]
187
+ },
188
+ listAppointmentServiceCategories: {
189
+ path: "/sites/{siteId}/bookings/service-categories",
190
+ method: "GET",
191
+ auth: "user",
192
+ responseKind: "json",
193
+ errors: ["server:internal_error"]
194
+ },
195
+ createAppointmentServiceCategory: {
196
+ path: "/sites/{siteId}/bookings/service-categories",
197
+ method: "POST",
198
+ auth: "user",
199
+ responseKind: "json",
200
+ errors: [
201
+ "validation:invalid_input",
202
+ "auth:forbidden",
203
+ "resource:conflict",
204
+ "server:internal_error"
205
+ ]
206
+ },
207
+ updateAppointmentServiceCategory: {
208
+ path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
209
+ method: "PUT",
210
+ auth: "user",
211
+ responseKind: "json",
212
+ errors: [
213
+ "validation:invalid_input",
214
+ "auth:forbidden",
215
+ "resource:not_found",
216
+ "resource:conflict",
217
+ "server:internal_error"
218
+ ]
219
+ },
220
+ deleteAppointmentServiceCategory: {
221
+ path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
222
+ method: "DELETE",
223
+ auth: "user",
224
+ responseKind: "json",
225
+ errors: [
226
+ "auth:forbidden",
227
+ "resource:not_found",
228
+ "server:internal_error"
229
+ ]
230
+ },
231
+ reorderAppointmentServiceCategories: {
232
+ path: "/sites/{siteId}/bookings/service-categories/order",
233
+ method: "PUT",
234
+ auth: "user",
235
+ responseKind: "json",
236
+ errors: [
237
+ "validation:invalid_input",
238
+ "auth:forbidden",
239
+ "resource:conflict",
240
+ "server:internal_error"
241
+ ]
242
+ }
243
+ }),
106
244
  listAppointmentResources: {
107
245
  path: "/sites/{siteId}/bookings/resources",
108
246
  method: "GET",
@@ -813,6 +951,13 @@ const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions
813
951
  errors: [],
814
952
  responseKind: "blob"
815
953
  },
954
+ exportEventOfferingRegistrationsCsv: {
955
+ path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}/registrations/export.csv",
956
+ method: "GET",
957
+ auth: "user",
958
+ errors: [],
959
+ responseKind: "blob"
960
+ },
816
961
  updateEventSeriesRegistration: {
817
962
  path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}",
818
963
  method: "PATCH",
@@ -823,6 +968,19 @@ const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions
823
968
  "resource:not_found",
824
969
  "server:internal_error"
825
970
  ]
971
+ },
972
+ saveEventSeriesRegistrationAnswers: {
973
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}/answers",
974
+ method: "PUT",
975
+ auth: "user",
976
+ responseKind: "json",
977
+ errors: [
978
+ "validation:invalid_input",
979
+ "auth:forbidden",
980
+ "resource:not_found",
981
+ "resource:conflict",
982
+ "server:internal_error"
983
+ ]
826
984
  }
827
985
  });
828
986
  //#endregion
@@ -1243,46 +1401,185 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1243
1401
  responseKind: "json",
1244
1402
  demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1245
1403
  },
1246
- testSendNewsletterCampaign: {
1247
- path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
1404
+ scheduleNewsletterCampaign: {
1405
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/schedule",
1248
1406
  method: "POST",
1249
1407
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1250
1408
  auth: "user",
1251
1409
  responseKind: "json",
1252
1410
  demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1253
1411
  },
1254
- listNewsletterSendJobs: {
1255
- path: "/sites/{siteId}/newsletter/jobs",
1256
- method: "GET",
1412
+ unscheduleNewsletterCampaign: {
1413
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/unschedule",
1414
+ method: "POST",
1415
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1416
+ auth: "user",
1417
+ responseKind: "json",
1418
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1419
+ },
1420
+ stopNewsletterCampaign: {
1421
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/stop",
1422
+ method: "POST",
1423
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1424
+ auth: "user",
1425
+ responseKind: "json",
1426
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1427
+ },
1428
+ testSendNewsletterCampaign: {
1429
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
1430
+ method: "POST",
1257
1431
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1258
1432
  auth: "user",
1433
+ responseKind: "json",
1434
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1435
+ }
1436
+ });
1437
+ //#endregion
1438
+ //#region ../api/src/sdkEventEndpointDefinitions.ts
1439
+ /**
1440
+ * The SDK's Event graph: the Events themselves and the occurrences of one run.
1441
+ * Extracted from `endpoints.ts` so this family can be read, and added to, on
1442
+ * its own. New entries here must declare `errors`; the
1443
+ * require-api-endpoint-errors lint enforces that here as in endpoints.ts.
1444
+ */
1445
+ const SDK_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1446
+ sdkListEvents: {
1447
+ path: "/sdk/{siteId}/events",
1448
+ method: "GET",
1449
+ auth: "service",
1259
1450
  responseKind: "json"
1260
1451
  },
1261
- retryNewsletterSendJob: {
1262
- path: "/sites/{siteId}/newsletter/jobs/{jobId}/retry",
1452
+ sdkUpsertEvent: {
1453
+ path: "/sdk/{siteId}/events",
1263
1454
  method: "POST",
1455
+ auth: "service",
1456
+ responseKind: "json",
1264
1457
  errors: [
1265
1458
  "validation:invalid_input",
1266
1459
  "resource:not_found",
1267
- "auth:forbidden",
1460
+ "resource:conflict",
1461
+ "billing:plan_limit_exceeded",
1268
1462
  "server:internal_error"
1269
- ],
1270
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1271
- auth: "user",
1463
+ ]
1464
+ },
1465
+ sdkGetEvent: {
1466
+ path: "/sdk/{siteId}/events/{identifier}",
1467
+ method: "GET",
1468
+ auth: "service",
1272
1469
  responseKind: "json"
1273
1470
  },
1274
- cancelNewsletterSendJob: {
1275
- path: "/sites/{siteId}/newsletter/jobs/{jobId}/cancel",
1471
+ sdkDeleteEvent: {
1472
+ path: "/sdk/{siteId}/events/{identifier}",
1473
+ method: "DELETE",
1474
+ auth: "service",
1475
+ responseKind: "json",
1476
+ errors: [
1477
+ "resource:not_found",
1478
+ "resource:conflict",
1479
+ "server:internal_error"
1480
+ ]
1481
+ },
1482
+ sdkTakeEventOffline: {
1483
+ path: "/sdk/{siteId}/events/{identifier}/lifecycle",
1276
1484
  method: "POST",
1485
+ auth: "service",
1486
+ responseKind: "json",
1277
1487
  errors: [
1488
+ "resource:not_found",
1278
1489
  "validation:invalid_input",
1490
+ "resource:conflict",
1491
+ "server:internal_error"
1492
+ ]
1493
+ },
1494
+ sdkListEventOccurrences: {
1495
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
1496
+ method: "GET",
1497
+ auth: "service",
1498
+ responseKind: "json",
1499
+ errors: [
1279
1500
  "resource:not_found",
1280
- "auth:forbidden",
1501
+ "validation:invalid_input",
1281
1502
  "server:internal_error"
1282
- ],
1283
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1284
- auth: "user",
1285
- responseKind: "json"
1503
+ ]
1504
+ },
1505
+ sdkAddEventOccurrence: {
1506
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
1507
+ method: "POST",
1508
+ auth: "service",
1509
+ responseKind: "json",
1510
+ errors: [
1511
+ "resource:not_found",
1512
+ "validation:invalid_input",
1513
+ "resource:conflict",
1514
+ "server:internal_error"
1515
+ ]
1516
+ },
1517
+ sdkUpdateEventOccurrence: {
1518
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
1519
+ method: "PATCH",
1520
+ auth: "service",
1521
+ responseKind: "json",
1522
+ errors: [
1523
+ "resource:not_found",
1524
+ "validation:invalid_input",
1525
+ "resource:conflict",
1526
+ "server:internal_error"
1527
+ ]
1528
+ },
1529
+ sdkCancelEventOccurrence: {
1530
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}/cancel",
1531
+ method: "POST",
1532
+ auth: "service",
1533
+ responseKind: "json",
1534
+ errors: [
1535
+ "resource:not_found",
1536
+ "resource:conflict",
1537
+ "server:internal_error"
1538
+ ]
1539
+ },
1540
+ sdkDeleteEventOccurrence: {
1541
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
1542
+ method: "DELETE",
1543
+ auth: "service",
1544
+ responseKind: "json",
1545
+ errors: [
1546
+ "resource:not_found",
1547
+ "resource:conflict",
1548
+ "server:internal_error"
1549
+ ]
1550
+ }
1551
+ });
1552
+ //#endregion
1553
+ //#region ../api/src/sdkPageDesignEndpointDefinitions.ts
1554
+ /**
1555
+ * SDK management endpoints for a page's draft design (issue 1497), spread into
1556
+ * `ENDPOINT_DEFINITIONS` like the other endpoint-definition modules. New
1557
+ * entries here must declare `errors`, which the require-api-endpoint-errors
1558
+ * lint enforces.
1559
+ */
1560
+ const SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1561
+ sdkGetPageDesign: {
1562
+ path: "/sdk/{siteId}/pages/{identifier}/design",
1563
+ method: "GET",
1564
+ auth: "service",
1565
+ responseKind: "json",
1566
+ errors: [
1567
+ "resource:not_found",
1568
+ "validation:invalid_input",
1569
+ "server:internal_error"
1570
+ ]
1571
+ },
1572
+ sdkSavePageDesign: {
1573
+ path: "/sdk/{siteId}/pages/{identifier}/design",
1574
+ method: "POST",
1575
+ auth: "service",
1576
+ responseKind: "json",
1577
+ errors: [
1578
+ "resource:not_found",
1579
+ "validation:invalid_input",
1580
+ "resource:conflict",
1581
+ "server:internal_error"
1582
+ ]
1286
1583
  }
1287
1584
  });
1288
1585
  const PUBLIC_CONTENT_FRESHNESS_SECONDS = 3600;
@@ -1580,6 +1877,45 @@ const SITE_API_KEY_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1580
1877
  }
1581
1878
  });
1582
1879
  //#endregion
1880
+ //#region ../api/src/siteManagementEndpointDefinitions.ts
1881
+ const SITE_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1882
+ createSite: {
1883
+ path: "/sites/manage",
1884
+ method: "POST",
1885
+ tags: ["site"],
1886
+ auth: "user",
1887
+ responseKind: "json"
1888
+ },
1889
+ updateSite: {
1890
+ path: "/sites/manage",
1891
+ method: "PUT",
1892
+ tags: ["site"],
1893
+ auth: "user",
1894
+ responseKind: "json"
1895
+ },
1896
+ changeSiteAddress: {
1897
+ path: "/sites/{siteId}/address",
1898
+ method: "PUT",
1899
+ auth: "user",
1900
+ responseKind: "json",
1901
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
1902
+ },
1903
+ getSiteAddressAvailability: {
1904
+ path: "/sites/{siteId}/address/availability",
1905
+ method: "GET",
1906
+ auth: "user",
1907
+ responseKind: "json"
1908
+ },
1909
+ deleteSite: {
1910
+ path: "/sites/{siteId}",
1911
+ method: "DELETE",
1912
+ tags: ["site", "site-{siteId}"],
1913
+ auth: "user",
1914
+ responseKind: "json",
1915
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1916
+ }
1917
+ });
1918
+ //#endregion
1583
1919
  //#region ../api/src/eventManagementEndpointDefinitions.ts
1584
1920
  const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1585
1921
  listEvents: {
@@ -1627,6 +1963,28 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1627
1963
  "server:internal_error"
1628
1964
  ]
1629
1965
  },
1966
+ /**
1967
+ * The web address of an event's own page. A course page belongs to the
1968
+ * event itself, so its address is written here rather than through a run.
1969
+ */
1970
+ updateEventAddress: {
1971
+ path: "/sites/{siteId}/bookings/events/{eventId}/address",
1972
+ method: "PATCH",
1973
+ tags: [
1974
+ "site-{siteId}",
1975
+ "event-series-{siteId}",
1976
+ TAG_TEMPLATES.siteRoutableContent,
1977
+ TAG_TEMPLATES.siteRedirects
1978
+ ],
1979
+ auth: "user",
1980
+ responseKind: "json",
1981
+ errors: [
1982
+ "validation:invalid_input",
1983
+ "resource:not_found",
1984
+ "resource:conflict",
1985
+ "server:internal_error"
1986
+ ]
1987
+ },
1630
1988
  createWholeSeriesRun: {
1631
1989
  path: "/sites/{siteId}/bookings/events/{eventId}/runs",
1632
1990
  method: "POST",
@@ -1653,6 +2011,20 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1653
2011
  "server:internal_error"
1654
2012
  ]
1655
2013
  },
2014
+ updateCourseBookingSettings: {
2015
+ path: "/sites/{siteId}/bookings/events/{eventId}/booking-settings",
2016
+ method: "PATCH",
2017
+ tags: ["site-{siteId}", "event-series-{siteId}"],
2018
+ auth: "user",
2019
+ responseKind: "json",
2020
+ errors: [
2021
+ "validation:invalid_input",
2022
+ "auth:forbidden",
2023
+ "resource:not_found",
2024
+ "resource:conflict",
2025
+ "server:internal_error"
2026
+ ]
2027
+ },
1656
2028
  cancelWholeSeriesRun: {
1657
2029
  path: "/sites/{siteId}/bookings/events/{eventId}/runs/{runId}/cancellation",
1658
2030
  method: "POST",
@@ -1665,6 +2037,28 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1665
2037
  "resource:conflict",
1666
2038
  "server:internal_error"
1667
2039
  ]
2040
+ },
2041
+ /**
2042
+ * The Content tab's one write: the short introduction, image and
2043
+ * description of an event's page, published without its layout.
2044
+ */
2045
+ saveEventPageWords: {
2046
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/words",
2047
+ method: "PUT",
2048
+ tags: [
2049
+ TAG_TEMPLATES.siteCollection,
2050
+ TAG_TEMPLATES.siteRoutableContent,
2051
+ TAG_TEMPLATES.pageSurfaceById
2052
+ ],
2053
+ auth: "user",
2054
+ responseKind: "json",
2055
+ errors: [
2056
+ "auth:forbidden",
2057
+ "validation:invalid_input",
2058
+ "resource:not_found",
2059
+ "resource:conflict",
2060
+ "server:internal_error"
2061
+ ]
1668
2062
  }
1669
2063
  });
1670
2064
  //#endregion
@@ -2097,13 +2491,51 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
2097
2491
  responseKind: "json"
2098
2492
  }
2099
2493
  });
2494
+ //#endregion
2495
+ //#region ../api/src/clientErrorReporting.ts
2496
+ const CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ reportClientError: {
2497
+ path: "/client/error-report",
2498
+ method: "POST",
2499
+ auth: "user",
2500
+ errors: [],
2501
+ responseKind: "json"
2502
+ } });
2503
+ const CLIENT_ERROR_REPORT_LIMITS = {
2504
+ pathname: 1024,
2505
+ name: 120,
2506
+ message: 2e3,
2507
+ stack: 8e3,
2508
+ digest: 128,
2509
+ componentStack: 8e3,
2510
+ sourceLocation: 1024
2511
+ };
2512
+ const clientErrorEventSchema = z.enum([
2513
+ "dashboard:route-error",
2514
+ "dashboard:app-error",
2515
+ "client:error-boundary",
2516
+ "client:window-error",
2517
+ "client:unhandled-rejection"
2518
+ ]);
2519
+ z.object({
2520
+ event: clientErrorEventSchema,
2521
+ pathname: z.string().startsWith("/").max(CLIENT_ERROR_REPORT_LIMITS.pathname),
2522
+ name: z.string().max(CLIENT_ERROR_REPORT_LIMITS.name),
2523
+ message: z.string().max(CLIENT_ERROR_REPORT_LIMITS.message),
2524
+ stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
2525
+ digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
2526
+ componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
2527
+ sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
2528
+ }).strict();
2100
2529
  const API_ENDPOINTS = {
2530
+ ...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
2531
+ ...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
2101
2532
  ...ACCOUNT_ENDPOINT_DEFINITIONS,
2102
2533
  ...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
2103
2534
  ...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
2104
2535
  ...GIFTING_ENDPOINT_DEFINITIONS,
2105
2536
  ...PUBLIC_READ_ENDPOINT_DEFINITIONS,
2106
2537
  ...BILLING_ENDPOINT_DEFINITIONS,
2538
+ ...SITE_MANAGEMENT_ENDPOINT_DEFINITIONS,
2107
2539
  aiContentUpdateChat: {
2108
2540
  path: "/ai/content-update-chat",
2109
2541
  method: "POST",
@@ -2630,13 +3062,6 @@ const API_ENDPOINTS = {
2630
3062
  auth: "user",
2631
3063
  responseKind: "json"
2632
3064
  },
2633
- createSite: {
2634
- path: "/sites/manage",
2635
- method: "POST",
2636
- tags: ["site"],
2637
- auth: "user",
2638
- responseKind: "json"
2639
- },
2640
3065
  createSiteManual: {
2641
3066
  path: "/sites/manual",
2642
3067
  method: "POST",
@@ -2644,21 +3069,6 @@ const API_ENDPOINTS = {
2644
3069
  auth: "user",
2645
3070
  responseKind: "json"
2646
3071
  },
2647
- updateSite: {
2648
- path: "/sites/manage",
2649
- method: "PUT",
2650
- tags: ["site"],
2651
- auth: "user",
2652
- responseKind: "json"
2653
- },
2654
- deleteSite: {
2655
- path: "/sites/{siteId}",
2656
- method: "DELETE",
2657
- tags: ["site", "site-{siteId}"],
2658
- auth: "user",
2659
- responseKind: "json",
2660
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
2661
- },
2662
3072
  listSiteMembers: {
2663
3073
  path: "/sites/{siteId}/members",
2664
3074
  method: "GET",
@@ -5232,41 +5642,6 @@ const API_ENDPOINTS = {
5232
5642
  "server:internal_error"
5233
5643
  ]
5234
5644
  },
5235
- subscribeNewsletter: {
5236
- path: "/public/sites/{siteId}/newsletter/subscribe",
5237
- method: "POST",
5238
- tags: ["public-newsletter-{siteId}"],
5239
- auth: "public",
5240
- responseKind: "json"
5241
- },
5242
- confirmNewsletter: {
5243
- path: "/public/sites/{siteId}/newsletter/confirm/{token}",
5244
- method: "GET",
5245
- tags: ["public-newsletter-{siteId}"],
5246
- auth: "public",
5247
- responseKind: "text"
5248
- },
5249
- unsubscribeNewsletter: {
5250
- path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
5251
- method: "GET",
5252
- tags: ["public-newsletter-{siteId}"],
5253
- auth: "public",
5254
- responseKind: "text"
5255
- },
5256
- unsubscribeNewsletterPost: {
5257
- path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
5258
- method: "POST",
5259
- tags: ["public-newsletter-{siteId}"],
5260
- auth: "public",
5261
- responseKind: "text"
5262
- },
5263
- getNewsletterArchive: {
5264
- path: "/public/sites/{siteId}/newsletter/archive/{token}",
5265
- method: "GET",
5266
- tags: ["public-newsletter-{siteId}"],
5267
- auth: "public",
5268
- responseKind: "text"
5269
- },
5270
5645
  listSiteContentTypes: {
5271
5646
  path: "/sites/{siteId}/content-types",
5272
5647
  method: "GET",
@@ -6926,6 +7301,7 @@ const API_ENDPOINTS = {
6926
7301
  auth: "service",
6927
7302
  responseKind: "json"
6928
7303
  },
7304
+ ...SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS,
6929
7305
  sdkUpsertPageBlock: {
6930
7306
  path: "/sdk/{siteId}/pages/{identifier}/blocks",
6931
7307
  method: "POST",
@@ -7048,87 +7424,7 @@ const API_ENDPOINTS = {
7048
7424
  auth: "service",
7049
7425
  responseKind: "json"
7050
7426
  },
7051
- sdkListEvents: {
7052
- path: "/sdk/{siteId}/events",
7053
- method: "GET",
7054
- auth: "service",
7055
- responseKind: "json"
7056
- },
7057
- sdkUpsertEvent: {
7058
- path: "/sdk/{siteId}/events",
7059
- method: "POST",
7060
- auth: "service",
7061
- responseKind: "json"
7062
- },
7063
- sdkGetEvent: {
7064
- path: "/sdk/{siteId}/events/{identifier}",
7065
- method: "GET",
7066
- auth: "service",
7067
- responseKind: "json"
7068
- },
7069
- sdkDeleteEvent: {
7070
- path: "/sdk/{siteId}/events/{identifier}",
7071
- method: "DELETE",
7072
- auth: "service",
7073
- responseKind: "json"
7074
- },
7075
- sdkListEventOccurrences: {
7076
- path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
7077
- method: "GET",
7078
- auth: "service",
7079
- responseKind: "json",
7080
- errors: [
7081
- "resource:not_found",
7082
- "validation:invalid_input",
7083
- "server:internal_error"
7084
- ]
7085
- },
7086
- sdkAddEventOccurrence: {
7087
- path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
7088
- method: "POST",
7089
- auth: "service",
7090
- responseKind: "json",
7091
- errors: [
7092
- "resource:not_found",
7093
- "validation:invalid_input",
7094
- "resource:conflict",
7095
- "server:internal_error"
7096
- ]
7097
- },
7098
- sdkUpdateEventOccurrence: {
7099
- path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
7100
- method: "PATCH",
7101
- auth: "service",
7102
- responseKind: "json",
7103
- errors: [
7104
- "resource:not_found",
7105
- "validation:invalid_input",
7106
- "resource:conflict",
7107
- "server:internal_error"
7108
- ]
7109
- },
7110
- sdkCancelEventOccurrence: {
7111
- path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}/cancel",
7112
- method: "POST",
7113
- auth: "service",
7114
- responseKind: "json",
7115
- errors: [
7116
- "resource:not_found",
7117
- "resource:conflict",
7118
- "server:internal_error"
7119
- ]
7120
- },
7121
- sdkDeleteEventOccurrence: {
7122
- path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
7123
- method: "DELETE",
7124
- auth: "service",
7125
- responseKind: "json",
7126
- errors: [
7127
- "resource:not_found",
7128
- "resource:conflict",
7129
- "server:internal_error"
7130
- ]
7131
- },
7427
+ ...SDK_EVENT_ENDPOINT_DEFINITIONS,
7132
7428
  sdkUpsertEntry: {
7133
7429
  path: "/sdk/{siteId}/entries",
7134
7430
  method: "POST",
@@ -7645,6 +7941,30 @@ const SURFACE_ROOT_HOSTS = {
7645
7941
  prod: "macadamia.studio"
7646
7942
  }
7647
7943
  };
7944
+ const SURFACE_SITE_ROOT_HOSTS = {
7945
+ core: {
7946
+ local: "localhost",
7947
+ prod: "riverbanksites.com"
7948
+ },
7949
+ macadamia: {
7950
+ local: "macadamia.localhost",
7951
+ prod: "macadamia.studio"
7952
+ }
7953
+ };
7954
+ const SURFACE_SITE_ROOT_HOST_ALIASES = { core: { prod: ["preview.riverbanksites.com"] } };
7955
+ function surfaceHostTableValues(table) {
7956
+ return Object.values(table).flatMap((byTier) => Object.values(byTier).flat());
7957
+ }
7958
+ function siteSlugLabelUnderRoot(host, siteRootHost) {
7959
+ if (!host.endsWith(`.${siteRootHost}`)) return [];
7960
+ return host.slice(0, host.length - siteRootHost.length - 1).split(".").slice(-1);
7961
+ }
7962
+ function deriveSurfaceOwnedSiteSlugs() {
7963
+ const siteRootHosts = [...surfaceHostTableValues(SURFACE_SITE_ROOT_HOSTS), ...surfaceHostTableValues(SURFACE_SITE_ROOT_HOST_ALIASES)];
7964
+ const labels = [...surfaceHostTableValues(SURFACE_ROOT_HOSTS), ...siteRootHosts].flatMap((host) => siteRootHosts.flatMap((root) => siteSlugLabelUnderRoot(host, root)));
7965
+ return [...new Set(labels)].sort();
7966
+ }
7967
+ deriveSurfaceOwnedSiteSlugs();
7648
7968
  const NAMED_SURFACE_IDS = SURFACE_IDS.filter((surfaceId) => surfaceId !== DEFAULT_SURFACE_ID);
7649
7969
  [...NAMED_SURFACE_IDS];
7650
7970
  /**