@riverbankcms/sdk 0.123.0 → 0.124.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 (259) hide show
  1. package/README.md +14 -9
  2. package/dist/{PreviewEditorSidebar-DvJFmC29.mjs → PreviewEditorSidebar-DBmAJJkQ.mjs} +22 -39
  3. package/dist/{PreviewEditorUI-DVHP4bCo.mjs → PreviewEditorUI-CfGaz9cY.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-07EE4uWL.mjs → PreviewQueryProvider-BH-3-jSj.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-BE5eFayo.mjs → SdkPreviewModeRuntime-BW9Z8j8T.mjs} +1020 -1234
  6. package/dist/{SiteChromeCustomizeContext-4hn4A0HX.mjs → SiteChromeCustomizeContext-2z8moxYf.mjs} +1900 -1959
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +1236 -4152
  8. package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +435 -0
  9. package/dist/_dts/api/src/bookingClosures.d.ts +3 -3
  10. package/dist/_dts/api/src/bookingConfig.d.ts +72 -73
  11. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +26 -35
  12. package/dist/_dts/api/src/bookingRecords.d.ts +4 -15
  13. package/dist/_dts/api/src/bookingVerticalCatalog.d.ts +746 -0
  14. package/dist/_dts/api/src/bookingVerticalPreset.d.ts +38 -0
  15. package/dist/_dts/api/src/bookingVerticals.d.ts +11 -652
  16. package/dist/_dts/api/src/bookings.d.ts +11 -9
  17. package/dist/_dts/api/src/cache-tags.d.ts +2 -2
  18. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +10 -10
  19. package/dist/_dts/api/src/common/envelope.d.ts +2 -0
  20. package/dist/_dts/api/src/contentRuntime.d.ts +0 -17
  21. package/dist/_dts/api/src/courseEndpointDefinitions.d.ts +99 -0
  22. package/dist/_dts/api/src/courses.d.ts +22 -33
  23. package/dist/_dts/api/src/defineEndpointDefinitions.d.ts +14 -0
  24. package/dist/_dts/api/src/demoMutationPolicies.d.ts +4 -0
  25. package/dist/_dts/api/src/endpoints.d.ts +3740 -3733
  26. package/dist/_dts/api/src/event-destination-policy.d.ts +1 -1
  27. package/dist/_dts/api/src/event-presentation.d.ts +4 -9
  28. package/dist/_dts/api/src/index.d.ts +9 -11
  29. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +376 -0
  30. package/dist/_dts/api/src/participantMessaging.d.ts +2 -2
  31. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  32. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +272 -0
  33. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +274 -0
  34. package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +31 -0
  35. package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +152 -0
  36. package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +95 -0
  37. package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +154 -0
  38. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -962
  39. package/dist/_dts/api/src/publicWholeSeriesEndpointDefinitions.d.ts +52 -0
  40. package/dist/_dts/api/src/sdkContracts.d.ts +0 -51
  41. package/dist/_dts/api/src/sdkEntryReadEndpoints.d.ts +23 -0
  42. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -38
  43. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +3 -4
  44. package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -15
  45. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
  46. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +0 -16
  47. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -222
  48. package/dist/_dts/blocks/src/portal/types.d.ts +3 -3
  49. package/dist/_dts/blocks/src/subroutes/fold.d.ts +1 -14
  50. package/dist/_dts/blocks/src/subroutes/index.d.ts +1 -1
  51. package/dist/_dts/blocks/src/subroutes/kinds.d.ts +3 -3
  52. package/dist/_dts/blocks/src/system/blocks/course-details.d.ts +0 -11
  53. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +3 -4
  54. package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +401 -12
  56. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +9 -10
  57. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -13
  58. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +1 -2
  59. package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +1 -4
  60. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +19 -18
  61. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +9 -11
  62. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -2
  63. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  64. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +10 -10
  65. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +10 -10
  66. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +162 -0
  68. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +59 -0
  69. package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +134 -0
  70. package/dist/_dts/blocks/src/system/runtime/api/types/discounts.d.ts +85 -0
  71. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +241 -0
  72. package/dist/_dts/blocks/src/system/runtime/api/types/forms.d.ts +53 -0
  73. package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +32 -0
  74. package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +220 -0
  75. package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +176 -0
  76. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +12 -1121
  77. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +19 -583
  78. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -276
  79. package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +1 -12
  80. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +0 -1
  81. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +0 -1
  82. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +2 -3
  83. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +1 -18
  84. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/runs.d.ts +0 -2
  85. package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +1 -5
  86. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/courseRegistrationViewState.d.ts +21 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/index.d.ts +1 -1
  88. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/pricing.d.ts +14 -0
  89. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +0 -25
  90. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseEligibility.d.ts +24 -0
  91. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCoursePaymentVerification.d.ts +9 -0
  92. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationActions.d.ts +35 -0
  93. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationPortal.d.ts +7 -0
  94. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationSelection.d.ts +31 -0
  95. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +80 -55
  96. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseWaitlistSelection.d.ts +14 -0
  97. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +4 -5
  98. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +0 -38
  99. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +1 -1
  100. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +1 -2
  101. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +0 -1
  102. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +12 -0
  103. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +0 -4
  104. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +0 -9
  105. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +0 -5
  106. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +0 -11
  107. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +13 -0
  108. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +0 -21
  109. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  110. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +24 -433
  111. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +1 -2
  112. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +52 -266
  113. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -15
  114. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventFilters.d.ts +0 -8
  115. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +1573 -0
  116. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +1 -3
  117. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -3
  118. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +2 -2
  119. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +0 -5
  120. package/dist/_dts/content-model/src/content-types/builtins.d.ts +0 -5
  121. package/dist/_dts/content-model/src/templates/defaults.d.ts +6 -3
  122. package/dist/_dts/core/src/editor-state.d.ts +1 -13
  123. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +1580 -120
  124. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +6 -6
  125. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +6 -1
  126. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +27 -4
  127. package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -2
  128. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +1 -1
  129. package/dist/_dts/sdk/src/cli/commands/pull-dry-run.d.ts +4 -6
  130. package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +1 -1
  131. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +1 -1
  132. package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +0 -1
  133. package/dist/_dts/sdk/src/cli/commands/push/verification.d.ts +1 -1
  134. package/dist/_dts/sdk/src/cli/content/collectionWriters.d.ts +23 -0
  135. package/dist/_dts/sdk/src/cli/content/metadataAfterPush.d.ts +25 -0
  136. package/dist/_dts/sdk/src/cli/content/reader.d.ts +0 -52
  137. package/dist/_dts/sdk/src/cli/content/writer.d.ts +3 -81
  138. package/dist/_dts/sdk/src/cli/site-commands/datedOfferingCommands.d.ts +6 -9
  139. package/dist/_dts/sdk/src/client/contentReadOperations.d.ts +40 -0
  140. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -3
  141. package/dist/_dts/sdk/src/client/management/types.d.ts +3 -91
  142. package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +72 -0
  143. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +10 -75
  144. package/dist/_dts/sdk/src/client/types.d.ts +7 -33
  145. package/dist/_dts/sdk/src/components.d.ts +1 -1
  146. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  147. package/dist/_dts/sdk/src/config/validation.d.ts +3 -6
  148. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  149. package/dist/_dts/sdk/src/contracts/page.d.ts +0 -8
  150. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +1 -34
  151. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +4 -3
  152. package/dist/_dts/sdk/src/next/catch-all-utils.d.ts +0 -11
  153. package/dist/_dts/sdk/src/next/catch-all.d.ts +1 -76
  154. package/dist/_dts/sdk/src/next/types.d.ts +0 -19
  155. package/dist/_dts/sdk/src/public-api/contracts.d.ts +7 -207
  156. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  157. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -1
  158. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -2
  159. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +0 -7
  160. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +81 -0
  161. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  162. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +1 -51
  163. package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -1
  164. package/dist/_dts/sdk/src/routing/entrySubroutes.d.ts +6 -6
  165. package/dist/_dts/sdk/src/routing/index.d.ts +0 -2
  166. package/dist/_dts/sdk/src/routing/resolveOccurrence.d.ts +3 -3
  167. package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +10 -39
  168. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  169. package/dist/_dts/sdk/src/version.d.ts +1 -1
  170. package/dist/_dts/site-commands/src/adapter.d.ts +1 -1
  171. package/dist/_dts/site-commands/src/appointmentCommandSchemas.d.ts +100 -0
  172. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +2 -2
  173. package/dist/_dts/site-commands/src/commandContract.d.ts +1242 -0
  174. package/dist/_dts/site-commands/src/commandDomain.d.ts +20 -0
  175. package/dist/_dts/site-commands/src/commandIdentifiers.d.ts +7 -0
  176. package/dist/_dts/site-commands/src/commandValidation.d.ts +10 -0
  177. package/dist/_dts/site-commands/src/commands.d.ts +729 -2659
  178. package/dist/_dts/site-commands/src/domain.d.ts +1 -1
  179. package/dist/_dts/site-commands/src/eventCommandContent.d.ts +11 -0
  180. package/dist/_dts/site-commands/src/exposure.d.ts +1 -1
  181. package/dist/_dts/site-commands/src/index.d.ts +6 -0
  182. package/dist/_dts/site-commands/src/metadata.d.ts +1 -27
  183. package/dist/_dts/site-commands/src/planner.d.ts +1 -1
  184. package/dist/_dts/site-commands/src/refContributions.d.ts +1 -1
  185. package/dist/_dts/site-commands/src/refs.d.ts +1 -4
  186. package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +378 -0
  187. package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +46 -0
  188. package/dist/_dts/site-commands/src/staticExecutionGaps.d.ts +2 -2
  189. package/dist/_dts/site-commands/src/venueCommandMapping.d.ts +21 -0
  190. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +58 -0
  191. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +1 -0
  192. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  193. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +47 -24
  194. package/dist/cli/index.mjs +7250 -8478
  195. package/dist/cli/init-docs/content/cli-reference.md +5 -21
  196. package/dist/cli/init-docs/content/content-management.md +4 -5
  197. package/dist/client/{DiscountCodeDisclosure-DIWj-P9v.mjs → DiscountCodeDisclosure-DxvjKvck.mjs} +2 -2
  198. package/dist/client/{EventCombined.client-De8YWBSr.mjs → EventCombined.client-BydMGc4c.mjs} +5 -16
  199. package/dist/client/{EventListing.client-seHTjimY.mjs → EventListing.client-vpzhhysN.mjs} +3 -10
  200. package/dist/client/{LeafletStaticMap-BmQxFcJW.mjs → LeafletStaticMap-CB07rpf8.mjs} +1 -1
  201. package/dist/client/{MagicLinkForm-OoJAIUIj.mjs → MagicLinkForm-BzyRJ8VF.mjs} +2 -2
  202. package/dist/client/{StepIndicator-CiZ8kdPk.mjs → StepIndicator-CTcGf8Be.mjs} +2 -2
  203. package/dist/client/{accordion-6lnN__XJ.mjs → accordion-B-DUDLRD.mjs} +1 -1
  204. package/dist/client/{bookingForm-5uyqhONU.mjs → bookingForm-DSbClLcZ.mjs} +6 -6
  205. package/dist/client/bookings.mjs +753 -818
  206. package/dist/client/{carousel-Dtnifil_.mjs → carousel-B6Ccdx8M.mjs} +1 -1
  207. package/dist/client/{cart-5Tc5S7NV.mjs → cart-BZh8G8wM.mjs} +3 -3
  208. package/dist/client/{checkout-CYKKN5Hr.mjs → checkout-o6zaC-kM.mjs} +3 -3
  209. package/dist/client/client.mjs +6859 -7149
  210. package/dist/client/{context-BGZNlGXB.mjs → context-CJz1Vlsz.mjs} +40 -43
  211. package/dist/client/{courseRegistration-CxCBybB4.mjs → courseRegistration-Cf11pNDs.mjs} +606 -621
  212. package/dist/client/{eventCalendar-Xj2jZS9X.mjs → eventCalendar-BeXrdsSE.mjs} +5 -13
  213. package/dist/client/{eventCombined-CgcMoOgM.mjs → eventCombined-DA76PZgG.mjs} +3 -3
  214. package/dist/client/{eventDetails-CEAH8Edc.mjs → eventDetails-BLxg0rok.mjs} +140 -116
  215. package/dist/client/{eventListing-qyPVQ0wP.mjs → eventListing-tO9LheBX.mjs} +3 -3
  216. package/dist/client/{eventRegistration-DDu79CtL.mjs → eventRegistration-Cnene9D9.mjs} +165 -68
  217. package/dist/client/{form-Bc7JKI7I.mjs → form-DZf72CHB.mjs} +2 -2
  218. package/dist/client/{headerSection-vTku_LEl.mjs → headerSection-Hioja5Cr.mjs} +2 -2
  219. package/dist/client/hooks.mjs +3452 -2365
  220. package/dist/client/{locationMap-Bg7X4Jna.mjs → locationMap-DwhUXEix.mjs} +2 -2
  221. package/dist/client/{newsletterForm-lpylVdp5.mjs → newsletterForm-C350bEQf.mjs} +2 -2
  222. package/dist/client/{pricing-DE8fjJiT.mjs → pricing-BYWN_ATa.mjs} +3 -19
  223. package/dist/client/{productDetail-D7Bo2RMH.mjs → productDetail-CCqCyXgU.mjs} +3 -3
  224. package/dist/client/{productList-VjnZqiqN.mjs → productList-BAiNJrOU.mjs} +3 -3
  225. package/dist/client/{propsDecoder-DreFXjNP.mjs → propsDecoder-DeunRj6m.mjs} +210 -378
  226. package/dist/client/rendering/client.mjs +2541 -2813
  227. package/dist/client/rendering/islands.mjs +18 -18
  228. package/dist/client/rendering.mjs +5622 -4734
  229. package/dist/client/{shop-IRsHHbf7.mjs → shop-DUmCdBtw.mjs} +6 -6
  230. package/dist/client/{shop-commerce-gnI8PieZ.mjs → shop-commerce-CY27mEUr.mjs} +5 -5
  231. package/dist/client/{shop-commerce-store-BTbrhObn.mjs → shop-commerce-store-ChXPbWfa.mjs} +1 -1
  232. package/dist/client/{shopShared-D6KS2_qk.mjs → shopShared-q0kin1cv.mjs} +3 -3
  233. package/dist/client/{useDiscountCodeUi-DCccGCxV.mjs → useDiscountCodeUi-I-92-x2V.mjs} +2 -2
  234. package/dist/client/{useEventFilters-eGs3rPZQ.mjs → useEventFilters-DlcVluZh.mjs} +59 -124
  235. package/dist/client/{usePolling-CvSU2sur.mjs → usePolling-Bz7GFV_a.mjs} +2 -2
  236. package/dist/preview-next/before-render.mjs +1115 -1044
  237. package/dist/preview-next/client/runtime.mjs +4 -4
  238. package/dist/preview-next/middleware.mjs +1118 -1047
  239. package/dist/{previewAuthStore-ShY26RNz.mjs → previewAuthStore-CJX21dGi.mjs} +1121 -1047
  240. package/dist/{sdk-runtime-CJxkFq2B.mjs → sdk-runtime-OnPM8Z69.mjs} +2 -2
  241. package/dist/{separator-CoFmo8uA.mjs → separator-CPtfzHqA.mjs} +1 -1
  242. package/dist/server/components.mjs +4560 -3672
  243. package/dist/server/config-validation.mjs +3454 -2356
  244. package/dist/server/config.mjs +3454 -2356
  245. package/dist/server/data.mjs +3452 -2367
  246. package/dist/server/index.mjs +1501 -1491
  247. package/dist/server/next.mjs +7524 -8067
  248. package/dist/server/page-converter.mjs +1898 -2040
  249. package/dist/server/prebuild.mjs +1 -1
  250. package/dist/server/rendering/server.mjs +4258 -3373
  251. package/dist/server/rendering.mjs +6228 -5393
  252. package/dist/server/routing.mjs +3614 -2509
  253. package/dist/server/server.mjs +3298 -3479
  254. package/package.json +1 -1
  255. package/dist/_dts/api/src/previewContentContract.d.ts +0 -4
  256. package/dist/_dts/sdk/src/cli/commands/course.d.ts +0 -6
  257. package/dist/_dts/sdk/src/cli/commands/push/scopes/courses.d.ts +0 -4
  258. package/dist/_dts/sdk/src/client/management/courses.d.ts +0 -10
  259. package/dist/_dts/sdk/src/routing/resolveEntrySubroute.d.ts +0 -36
@@ -45,6 +45,12 @@ function blockedDemoMutationPolicy(classification, publicMessage) {
45
45
  };
46
46
  }
47
47
  //#endregion
48
+ //#region ../api/src/demoMutationPolicies.ts
49
+ const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
50
+ const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
51
+ const DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
52
+ const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
53
+ //#endregion
48
54
  //#region ../api/src/cache-tags.ts
49
55
  /**
50
56
  * Tag templates for endpoint definitions (support `{param}` placeholders).
@@ -71,7 +77,7 @@ const TAG_TEMPLATES = {
71
77
  formSubmissionsBySlug: "riverbank:form-submissions:{slug}",
72
78
  publicEvents: "riverbank:site:{siteId}:public-events",
73
79
  publicEventFilters: "riverbank:site:{siteId}:public-event-filters",
74
- publicCourses: "riverbank:site:{siteId}:public-courses",
80
+ publicWholeSeriesOfferings: "riverbank:site:{siteId}:public-whole-series-offerings",
75
81
  publicTeamMembers: "riverbank:site:{siteId}:public-team-members",
76
82
  publicProducts: "riverbank:site:{siteId}:public-products",
77
83
  publicPasses: "riverbank:site:{siteId}:public-passes",
@@ -86,628 +92,810 @@ const TAG_TEMPLATES = {
86
92
  siteTheme: "riverbank:site:{siteId}:theme"
87
93
  };
88
94
  //#endregion
89
- //#region ../api/src/endpoints.ts
90
- const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
91
- const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
92
- const DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
93
- const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
94
- const API_ENDPOINTS = {
95
- aiContentUpdateChat: {
96
- path: "/ai/content-update-chat",
97
- method: "POST",
98
- auth: "user",
99
- responseKind: "stream"
100
- },
101
- aiChat: {
102
- path: "/ai/chat",
103
- method: "POST",
104
- auth: "user",
105
- responseKind: "stream"
106
- },
107
- aiDesignerThemeApply: {
108
- path: "/sites/{siteId}/ai/designer/theme/apply",
109
- method: "POST",
110
- tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme],
111
- auth: "user",
112
- responseKind: "json"
113
- },
114
- aiDesignerPageOpsApply: {
115
- path: "/sites/{siteId}/ai/designer/page/apply",
116
- method: "POST",
117
- tags: [TAG_TEMPLATES.siteCollection],
118
- auth: "user",
95
+ //#region ../api/src/sdkEntryReadEndpoints.ts
96
+ const SDK_ENTRY_READ_ENDPOINTS = {
97
+ sdkPullEntriesByType: {
98
+ path: "/sdk/{siteId}/pull/entries/{type}",
99
+ method: "GET",
100
+ errors: ["validation:invalid_input", "server:internal_error"],
101
+ auth: "service",
119
102
  responseKind: "json"
120
103
  },
121
- applySeoChanges: {
122
- path: "/seo/apply",
123
- method: "POST",
124
- auth: "user",
104
+ sdkListEntries: {
105
+ path: "/sdk/{siteId}/entries/{contentType}",
106
+ method: "GET",
107
+ errors: ["validation:invalid_input", "server:internal_error"],
108
+ auth: "service",
125
109
  responseKind: "json"
126
110
  },
127
- aiCreateBriefChat: {
128
- path: "/ai/chat/create-brief",
129
- method: "POST",
130
- auth: "user",
111
+ sdkGetEntry: {
112
+ path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
113
+ method: "GET",
114
+ errors: [
115
+ "validation:invalid_input",
116
+ "resource:not_found",
117
+ "server:internal_error"
118
+ ],
119
+ auth: "service",
131
120
  responseKind: "json"
132
- },
133
- aiPatchDryRun: {
134
- path: "/ai/patch/dry-run",
135
- method: "POST",
121
+ }
122
+ };
123
+ //#endregion
124
+ //#region ../api/src/defineEndpointDefinitions.ts
125
+ /**
126
+ * Validates extracted endpoint descriptors while preserving each literal path,
127
+ * method, and parameter contract for the typed URL builders.
128
+ */
129
+ function defineEndpointDefinitions(definitions) {
130
+ return definitions;
131
+ }
132
+ //#endregion
133
+ //#region ../api/src/appointmentEndpointDefinitions.ts
134
+ const APPOINTMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
135
+ listAppointmentResources: {
136
+ path: "/sites/{siteId}/bookings/resources",
137
+ method: "GET",
136
138
  auth: "user",
137
139
  responseKind: "json"
138
140
  },
139
- aiPatchApply: {
140
- path: "/ai/patch/apply",
141
+ createAppointmentResource: {
142
+ path: "/sites/{siteId}/bookings/resources",
141
143
  method: "POST",
142
144
  auth: "user",
143
- responseKind: "json"
145
+ responseKind: "json",
146
+ errors: [
147
+ "validation:invalid_input",
148
+ "billing:plan_limit_exceeded",
149
+ "server:internal_error"
150
+ ]
144
151
  },
145
- aiPlaygroundProposeMulti: {
146
- path: "/sites/{siteId}/ai/playground/propose-multi",
152
+ createAppointmentResourceWithAccountAccess: {
153
+ path: "/sites/{siteId}/bookings/resources/account-access",
147
154
  method: "POST",
148
155
  auth: "user",
149
- responseKind: "stream"
156
+ responseKind: "json",
157
+ errors: [
158
+ "validation:invalid_input",
159
+ "auth:forbidden",
160
+ "billing:plan_limit_exceeded",
161
+ "resource:conflict",
162
+ "resource:not_found",
163
+ "server:internal_error"
164
+ ]
150
165
  },
151
- aiPlaygroundProposeMultiGet: {
152
- path: "/sites/{siteId}/ai/playground/propose-multi",
166
+ getAppointmentResource: {
167
+ path: "/sites/{siteId}/bookings/resources/{resourceId}",
153
168
  method: "GET",
154
169
  auth: "user",
155
- responseKind: "stream"
170
+ responseKind: "json"
156
171
  },
157
- aiAssistantChatSite: {
158
- path: "/sites/{siteId}/ai/assistant/chat",
159
- method: "POST",
172
+ updateAppointmentResource: {
173
+ path: "/sites/{siteId}/bookings/resources/{resourceId}",
174
+ method: "PUT",
160
175
  auth: "user",
161
- responseKind: "stream"
176
+ responseKind: "json",
177
+ errors: [
178
+ "validation:invalid_input",
179
+ "resource:not_found",
180
+ "server:internal_error"
181
+ ]
162
182
  },
163
- aiDesignerChat: {
164
- path: "/sites/{siteId}/ai/designer/chat",
165
- method: "POST",
183
+ removeAppointmentResource: {
184
+ path: "/sites/{siteId}/bookings/resources/{resourceId}",
185
+ method: "DELETE",
166
186
  auth: "user",
167
- responseKind: "stream"
187
+ responseKind: "json",
188
+ errors: ["resource:not_found", "server:internal_error"]
168
189
  },
169
- aiPlaygroundPageConvert: {
170
- path: "/sites/{siteId}/ai/playground/page-convert",
171
- method: "POST",
190
+ listAppointmentReservations: {
191
+ path: "/sites/{siteId}/bookings/appointment-reservations",
192
+ method: "GET",
172
193
  auth: "user",
173
- responseKind: "json"
194
+ responseKind: "json",
195
+ errors: []
174
196
  },
175
- aiPlaygroundPageConvertJobsCreate: {
176
- path: "/sites/{siteId}/ai/playground/page-convert/jobs",
197
+ createAppointmentReservation: {
198
+ path: "/sites/{siteId}/bookings/appointment-reservations",
177
199
  method: "POST",
178
200
  auth: "user",
179
- responseKind: "json"
201
+ responseKind: "json",
202
+ errors: [
203
+ "validation:invalid_input",
204
+ "resource:not_found",
205
+ "resource:conflict",
206
+ "server:internal_error"
207
+ ]
180
208
  },
181
- aiPlaygroundPageConvertJobsList: {
182
- path: "/sites/{siteId}/ai/playground/page-convert/jobs",
209
+ getAppointmentReservation: {
210
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
183
211
  method: "GET",
184
212
  auth: "user",
185
- responseKind: "json"
213
+ responseKind: "json",
214
+ errors: ["resource:not_found", "server:internal_error"]
186
215
  },
187
- aiPlaygroundPageConvertJobGet: {
188
- path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}",
189
- method: "GET",
216
+ updateAppointmentReservation: {
217
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
218
+ method: "PUT",
190
219
  auth: "user",
191
- responseKind: "json"
220
+ responseKind: "json",
221
+ errors: [
222
+ "validation:invalid_input",
223
+ "resource:not_found",
224
+ "resource:conflict",
225
+ "server:internal_error"
226
+ ]
192
227
  },
193
- aiPlaygroundPageConvertJobRun: {
194
- path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/run",
228
+ pauseAppointmentReservation: {
229
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
195
230
  method: "POST",
196
231
  auth: "user",
197
- responseKind: "json"
198
- },
199
- aiPlaygroundPageConvertJobEvents: {
200
- path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/events",
201
- method: "GET",
202
- auth: "user",
203
- responseKind: "json"
232
+ responseKind: "json",
233
+ errors: [
234
+ "resource:not_found",
235
+ "resource:conflict",
236
+ "server:internal_error"
237
+ ]
204
238
  },
205
- aiGenerateSite: {
206
- path: "/sites/{siteId}/ai/generate",
239
+ resumeAppointmentReservation: {
240
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
207
241
  method: "POST",
208
242
  auth: "user",
209
243
  responseKind: "json",
210
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
211
- },
212
- getOnboardingPreviewStatus: {
213
- path: "/public/sites/{siteId}/onboarding/preview-status",
214
- method: "GET",
215
- auth: "public",
216
- errors: [],
217
- responseKind: "json"
218
- },
219
- listOnboardingPreviewThemes: {
220
- path: "/public/sites/{siteId}/onboarding/themes",
221
- method: "GET",
222
- auth: "public",
223
- errors: [],
224
- responseKind: "json"
244
+ errors: [
245
+ "resource:not_found",
246
+ "resource:conflict",
247
+ "server:internal_error"
248
+ ]
225
249
  },
226
- acknowledgeLaunchRequirement: {
227
- path: "/sites/{siteId}/launch/acknowledge-requirement",
250
+ endAppointmentReservation: {
251
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
228
252
  method: "POST",
229
253
  auth: "user",
230
- errors: [],
231
254
  responseKind: "json",
232
- demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
255
+ errors: [
256
+ "validation:invalid_input",
257
+ "resource:not_found",
258
+ "resource:conflict",
259
+ "server:internal_error"
260
+ ]
233
261
  },
234
- goLiveSite: {
235
- path: "/sites/{siteId}/launch/go-live",
262
+ previewAppointmentReservationRun: {
263
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
236
264
  method: "POST",
237
265
  auth: "user",
238
- errors: [],
239
- responseKind: "json"
266
+ responseKind: "json",
267
+ errors: [
268
+ "validation:invalid_input",
269
+ "resource:not_found",
270
+ "resource:conflict",
271
+ "server:internal_error"
272
+ ]
240
273
  },
241
- resendOnboardingPreviewConfirmation: {
242
- path: "/public/sites/{siteId}/onboarding/resend-confirmation",
274
+ createAppointmentReservationRun: {
275
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
243
276
  method: "POST",
244
- auth: "public",
245
- errors: [],
246
- responseKind: "json"
277
+ auth: "user",
278
+ responseKind: "json",
279
+ errors: [
280
+ "validation:invalid_input",
281
+ "resource:not_found",
282
+ "resource:conflict",
283
+ "server:internal_error"
284
+ ]
247
285
  },
248
- createPublicOnboardingAttempt: {
249
- path: "/public/onboarding/attempts",
286
+ createTeamMemberProfile: {
287
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
250
288
  method: "POST",
251
- auth: "public",
252
- errors: [],
253
- responseKind: "json"
289
+ auth: "user",
290
+ responseKind: "json",
291
+ errors: [
292
+ "validation:invalid_input",
293
+ "resource:not_found",
294
+ "resource:conflict",
295
+ "server:internal_error"
296
+ ]
254
297
  },
255
- createPublicOnboardingLogoUploadUrl: {
256
- path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
298
+ updateTeamMemberProfilePolicy: {
299
+ path: "/sites/{siteId}/bookings/resources/profile-policy",
300
+ method: "PUT",
301
+ auth: "user",
302
+ responseKind: "json",
303
+ errors: ["validation:invalid_input", "server:internal_error"]
304
+ },
305
+ updateTeamMemberProfileContent: {
306
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/content",
307
+ method: "PUT",
308
+ tags: [
309
+ "site-{siteId}",
310
+ "content-{siteId}-team-member",
311
+ "content-entry-{entryId}"
312
+ ],
313
+ auth: "user",
314
+ responseKind: "json",
315
+ errors: [
316
+ "validation:invalid_input",
317
+ "resource:not_found",
318
+ "resource:conflict",
319
+ "server:internal_error"
320
+ ]
321
+ },
322
+ publishTeamMemberProfile: {
323
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
257
324
  method: "POST",
258
- auth: "public",
259
- errors: [],
260
- responseKind: "json"
325
+ tags: [
326
+ "site-{siteId}",
327
+ "content-{siteId}-team-member",
328
+ "content-entry-{entryId}"
329
+ ],
330
+ auth: "user",
331
+ responseKind: "json",
332
+ errors: [
333
+ "validation:invalid_input",
334
+ "resource:not_found",
335
+ "server:internal_error"
336
+ ]
261
337
  },
262
- uploadPublicOnboardingLogo: {
263
- path: "/public/onboarding/attempts/{attemptToken}/logo",
338
+ discardTeamMemberProfileDraft: {
339
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
264
340
  method: "POST",
265
- auth: "public",
266
- errors: [],
267
- responseKind: "json"
341
+ tags: [
342
+ "site-{siteId}",
343
+ "content-{siteId}-team-member",
344
+ "content-entry-{entryId}"
345
+ ],
346
+ auth: "user",
347
+ responseKind: "json",
348
+ errors: [
349
+ "validation:invalid_input",
350
+ "resource:not_found",
351
+ "resource:conflict",
352
+ "server:internal_error"
353
+ ]
268
354
  },
269
- getPublicOnboardingAttempt: {
270
- path: "/public/onboarding/attempts/{attemptToken}",
271
- method: "GET",
272
- auth: "public",
273
- errors: [],
274
- responseKind: "json"
355
+ unpublishTeamMemberProfile: {
356
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/unpublish",
357
+ method: "POST",
358
+ tags: [
359
+ "site-{siteId}",
360
+ "content-{siteId}-team-member",
361
+ "content-entry-{entryId}"
362
+ ],
363
+ auth: "user",
364
+ responseKind: "json",
365
+ errors: [
366
+ "validation:invalid_input",
367
+ "resource:not_found",
368
+ "resource:conflict",
369
+ "server:internal_error"
370
+ ]
275
371
  },
276
- getPublicOnboardingAttemptProgress: {
277
- path: "/public/onboarding/attempts/{attemptToken}/status",
372
+ scheduleTeamMemberProfile: {
373
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
374
+ method: "POST",
375
+ tags: [
376
+ "site-{siteId}",
377
+ "content-{siteId}-team-member",
378
+ "content-entry-{entryId}"
379
+ ],
380
+ auth: "user",
381
+ responseKind: "json",
382
+ errors: [
383
+ "validation:invalid_input",
384
+ "resource:not_found",
385
+ "resource:conflict",
386
+ "server:internal_error"
387
+ ]
388
+ },
389
+ cancelScheduledTeamMemberProfile: {
390
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
391
+ method: "DELETE",
392
+ tags: [
393
+ "site-{siteId}",
394
+ "content-{siteId}-team-member",
395
+ "content-entry-{entryId}"
396
+ ],
397
+ auth: "user",
398
+ responseKind: "json",
399
+ errors: [
400
+ "validation:invalid_input",
401
+ "resource:not_found",
402
+ "resource:conflict",
403
+ "server:internal_error"
404
+ ]
405
+ },
406
+ updateTeamMemberProfileRouteMetadata: {
407
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/routes/{routeId}/metadata",
408
+ method: "PATCH",
409
+ tags: [
410
+ TAG_TEMPLATES.siteCollection,
411
+ TAG_TEMPLATES.siteRoutableContent,
412
+ TAG_TEMPLATES.routeById
413
+ ],
414
+ auth: "user",
415
+ responseKind: "json",
416
+ errors: [
417
+ "validation:invalid_input",
418
+ "resource:not_found",
419
+ "resource:conflict",
420
+ "server:internal_error"
421
+ ]
422
+ },
423
+ listAppointmentServices: {
424
+ path: "/sites/{siteId}/bookings/services",
278
425
  method: "GET",
279
- auth: "public",
280
- errors: [],
426
+ auth: "user",
281
427
  responseKind: "json"
282
428
  },
283
- updatePublicOnboardingAttempt: {
284
- path: "/public/onboarding/attempts/{attemptToken}",
285
- method: "PATCH",
286
- auth: "public",
429
+ exportAppointmentServicesCsv: {
430
+ path: "/sites/{siteId}/bookings/services/export.csv",
431
+ method: "GET",
432
+ tags: [
433
+ "site-{siteId}",
434
+ "bookings",
435
+ "appointment-services-{siteId}"
436
+ ],
287
437
  errors: [],
288
- responseKind: "json"
438
+ auth: "user",
439
+ responseKind: "blob"
289
440
  },
290
- runPublicOnboardingAttempt: {
291
- path: "/public/onboarding/attempts/{attemptToken}/run",
441
+ createAppointmentService: {
442
+ path: "/sites/{siteId}/bookings/services",
292
443
  method: "POST",
293
- auth: "public",
294
- errors: [],
444
+ auth: "user",
445
+ responseKind: "json",
446
+ errors: ["validation:invalid_input", "server:internal_error"]
447
+ },
448
+ getAppointmentService: {
449
+ path: "/sites/{siteId}/bookings/services/{serviceId}",
450
+ method: "GET",
451
+ auth: "user",
295
452
  responseKind: "json"
296
453
  },
297
- aiSiteWizardSuggestGoals: {
298
- path: "/sites/{siteId}/ai/site-wizard/goals",
299
- method: "POST",
454
+ updateAppointmentService: {
455
+ path: "/sites/{siteId}/bookings/services/{serviceId}",
456
+ method: "PUT",
300
457
  auth: "user",
301
458
  responseKind: "json",
302
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
459
+ errors: [
460
+ "validation:invalid_input",
461
+ "resource:not_found",
462
+ "server:internal_error"
463
+ ]
303
464
  },
304
- aiSiteWizardIntakeTriage: {
305
- path: "/sites/{siteId}/ai/site-wizard/intake-triage",
306
- method: "POST",
465
+ deleteAppointmentService: {
466
+ path: "/sites/{siteId}/bookings/services/{serviceId}",
467
+ method: "DELETE",
307
468
  auth: "user",
308
469
  responseKind: "json",
309
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
470
+ errors: ["resource:not_found", "server:internal_error"]
310
471
  },
311
- aiSiteWizardTelemetry: {
312
- path: "/sites/{siteId}/ai/site-wizard/telemetry",
472
+ getAppointmentSetup: {
473
+ path: "/sites/{siteId}/bookings/appointment-setup",
474
+ method: "GET",
475
+ auth: "user",
476
+ responseKind: "json",
477
+ errors: ["server:internal_error"]
478
+ },
479
+ applyAppointmentSetup: {
480
+ path: "/sites/{siteId}/bookings/appointment-setup",
313
481
  method: "POST",
314
482
  auth: "user",
315
- errors: [],
316
483
  responseKind: "json",
317
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
484
+ errors: ["validation:invalid_input", "server:internal_error"]
318
485
  },
319
- listGscPropertiesAdmin: {
320
- path: "/admin/seo/gsc/properties",
486
+ getAppointmentServicesReference: {
487
+ path: "/sites/{siteId}/bookings/services/reference",
321
488
  method: "GET",
322
- auth: "admin",
323
- errors: [],
489
+ auth: "user",
324
490
  responseKind: "json"
325
491
  },
326
- getPublicChallenge: {
327
- path: "/public/challenge",
492
+ getAppointmentResourcesReference: {
493
+ path: "/sites/{siteId}/bookings/resources/reference",
328
494
  method: "GET",
329
- auth: "public",
330
- errors: [],
331
- responseKind: "text"
495
+ auth: "user",
496
+ responseKind: "json"
332
497
  },
333
- checkRedirect: {
334
- path: "/public/content/redirect",
498
+ getResourceServices: {
499
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
335
500
  method: "GET",
336
- revalidate: 86400,
337
- tags: ["redirect"],
338
- errors: [],
339
- auth: "public",
501
+ auth: "user",
340
502
  responseKind: "json"
341
503
  },
342
- listRedirectRules: {
343
- path: "/sites/{siteId}/redirects",
504
+ updateResourceServices: {
505
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
506
+ method: "PUT",
507
+ auth: "user",
508
+ responseKind: "json"
509
+ },
510
+ getServiceResources: {
511
+ path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
344
512
  method: "GET",
345
513
  auth: "user",
346
514
  responseKind: "json"
347
515
  },
348
- createRedirectRule: {
349
- path: "/sites/{siteId}/redirects",
350
- method: "POST",
351
- errors: ["validation:invalid_input", "resource:not_found"],
516
+ updateServiceResources: {
517
+ path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
518
+ method: "PUT",
352
519
  auth: "user",
353
520
  responseKind: "json"
354
521
  },
355
- deleteRedirectRule: {
356
- path: "/sites/{siteId}/redirects/{ruleId}",
522
+ listAvailabilityRules: {
523
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/availability",
524
+ method: "GET",
525
+ auth: "user",
526
+ responseKind: "json",
527
+ errors: ["resource:not_found", "server:internal_error"]
528
+ },
529
+ setWeeklyAvailability: {
530
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/weekly-availability",
531
+ method: "PUT",
532
+ auth: "user",
533
+ responseKind: "json",
534
+ errors: [
535
+ "validation:invalid_input",
536
+ "resource:not_found",
537
+ "server:internal_error"
538
+ ]
539
+ },
540
+ setServiceSpecificAvailability: {
541
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability",
542
+ method: "PUT",
543
+ auth: "user",
544
+ responseKind: "json",
545
+ errors: [
546
+ "validation:invalid_input",
547
+ "resource:not_found",
548
+ "server:internal_error"
549
+ ]
550
+ },
551
+ deleteServiceSpecificAvailability: {
552
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability/{scheduleId}",
357
553
  method: "DELETE",
358
- errors: ["resource:not_found"],
359
554
  auth: "user",
360
- responseKind: "json"
555
+ responseKind: "json",
556
+ errors: ["resource:not_found", "server:internal_error"]
361
557
  },
362
- listWebhooks: {
363
- path: "/sites/{siteId}/webhooks",
558
+ listBlackouts: {
559
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
364
560
  method: "GET",
365
- tags: ["site-{siteId}", "webhooks"],
366
561
  auth: "user",
367
- responseKind: "json"
562
+ responseKind: "json",
563
+ errors: ["resource:not_found", "server:internal_error"]
368
564
  },
369
- createWebhook: {
370
- path: "/sites/{siteId}/webhooks",
565
+ createBlackout: {
566
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
371
567
  method: "POST",
372
- tags: ["site-{siteId}", "webhooks"],
373
568
  auth: "user",
374
- responseKind: "json"
569
+ responseKind: "json",
570
+ errors: [
571
+ "validation:invalid_input",
572
+ "resource:not_found",
573
+ "server:internal_error"
574
+ ]
375
575
  },
376
- getWebhook: {
377
- path: "/sites/{siteId}/webhooks/{webhookId}",
576
+ deleteBlackout: {
577
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts/{blackoutId}",
578
+ method: "DELETE",
579
+ auth: "user",
580
+ responseKind: "json",
581
+ errors: ["resource:not_found", "server:internal_error"]
582
+ },
583
+ getCalendarStatus: {
584
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
378
585
  method: "GET",
379
- tags: ["site-{siteId}", "webhooks"],
380
586
  auth: "user",
381
- responseKind: "json"
587
+ responseKind: "json",
588
+ errors: ["auth:forbidden", "server:internal_error"]
382
589
  },
383
- updateWebhook: {
384
- path: "/sites/{siteId}/webhooks/{webhookId}",
385
- method: "PATCH",
386
- tags: ["site-{siteId}", "webhooks"],
590
+ updateCalendarPreferences: {
591
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
592
+ method: "PUT",
387
593
  auth: "user",
388
- responseKind: "json"
594
+ responseKind: "json",
595
+ errors: [
596
+ "validation:invalid_input",
597
+ "auth:forbidden",
598
+ "resource:not_found",
599
+ "server:internal_error"
600
+ ]
389
601
  },
390
- deleteWebhook: {
391
- path: "/sites/{siteId}/webhooks/{webhookId}",
602
+ disconnectCalendar: {
603
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
392
604
  method: "DELETE",
393
- tags: ["site-{siteId}", "webhooks"],
394
605
  auth: "user",
395
- responseKind: "json"
606
+ responseKind: "json",
607
+ errors: [
608
+ "auth:forbidden",
609
+ "resource:not_found",
610
+ "server:internal_error"
611
+ ]
396
612
  },
397
- getSdkDeploymentHealth: {
398
- path: "/sites/{siteId}/sdk-deployment/health",
613
+ getResourceCalendarFeed: {
614
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
399
615
  method: "GET",
400
- tags: ["site-{siteId}", "webhooks"],
401
616
  auth: "user",
402
- errors: [],
403
- responseKind: "json"
617
+ responseKind: "json",
618
+ errors: [
619
+ "auth:forbidden",
620
+ "resource:not_found",
621
+ "server:internal_error"
622
+ ]
404
623
  },
405
- setupSdkDeploymentRevalidationWebhook: {
406
- path: "/sites/{siteId}/sdk-deployment/revalidation-webhook",
624
+ regenerateResourceCalendarFeed: {
625
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
407
626
  method: "POST",
408
- tags: ["site-{siteId}", "webhooks"],
409
627
  auth: "user",
410
- errors: ["validation:invalid_input", "resource:conflict"],
411
628
  responseKind: "json",
412
- demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
629
+ errors: [
630
+ "auth:forbidden",
631
+ "resource:not_found",
632
+ "server:internal_error"
633
+ ]
413
634
  },
414
- listSiteApiKeys: {
415
- path: "/sites/{siteId}/api-keys",
635
+ revokeResourceCalendarFeed: {
636
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
637
+ method: "DELETE",
638
+ auth: "user",
639
+ responseKind: "json",
640
+ errors: [
641
+ "auth:forbidden",
642
+ "resource:not_found",
643
+ "server:internal_error"
644
+ ]
645
+ },
646
+ getVenueCalendarFeed: {
647
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
416
648
  method: "GET",
417
649
  auth: "user",
418
- tags: ["site-{siteId}", "api-keys"],
419
- responseKind: "json"
650
+ responseKind: "json",
651
+ errors: [
652
+ "auth:forbidden",
653
+ "resource:not_found",
654
+ "server:internal_error"
655
+ ]
420
656
  },
421
- createSiteApiKey: {
422
- path: "/sites/{siteId}/api-keys",
657
+ regenerateVenueCalendarFeed: {
658
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
423
659
  method: "POST",
424
660
  auth: "user",
425
- tags: ["site-{siteId}", "api-keys"],
426
- responseKind: "json"
661
+ responseKind: "json",
662
+ errors: [
663
+ "auth:forbidden",
664
+ "resource:not_found",
665
+ "server:internal_error"
666
+ ]
427
667
  },
428
- revokeSiteApiKey: {
429
- path: "/sites/{siteId}/api-keys/{keyId}",
668
+ revokeVenueCalendarFeed: {
669
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
430
670
  method: "DELETE",
431
671
  auth: "user",
432
- tags: ["site-{siteId}", "api-keys"],
433
- responseKind: "json"
672
+ responseKind: "json",
673
+ errors: [
674
+ "auth:forbidden",
675
+ "resource:not_found",
676
+ "server:internal_error"
677
+ ]
434
678
  },
435
- getSitePreviewKey: {
436
- path: "/sites/{siteId}/api-keys/preview",
679
+ googleCalendarAuthorize: {
680
+ path: "/sites/{siteId}/bookings/calendar/google/authorize",
437
681
  method: "GET",
438
682
  auth: "user",
439
- tags: [
440
- "site-{siteId}",
441
- "api-keys",
442
- "preview-key"
443
- ],
444
- responseKind: "json"
683
+ responseKind: "void"
445
684
  },
446
- createSitePreviewKey: {
447
- path: "/sites/{siteId}/api-keys/preview",
448
- method: "POST",
685
+ googleCalendarCallback: {
686
+ path: "/bookings/calendar/google/callback",
687
+ method: "GET",
449
688
  auth: "user",
450
- tags: [
451
- "site-{siteId}",
452
- "api-keys",
453
- "preview-key"
454
- ],
455
- responseKind: "json"
689
+ responseKind: "void"
456
690
  },
457
- getSiteApiKeyAccessLogs: {
458
- path: "/sites/{siteId}/api-keys/access-logs",
691
+ getAvailableSlots: {
692
+ path: "/sites/{siteId}/bookings/availability/slots",
459
693
  method: "GET",
460
694
  auth: "user",
461
- tags: [
462
- "site-{siteId}",
463
- "api-keys",
464
- "access-logs"
465
- ],
466
695
  responseKind: "json"
467
696
  },
468
- listManagementKeys: {
469
- path: "/sites/{siteId}/api-keys/management",
697
+ listAppointments: {
698
+ path: "/sites/{siteId}/bookings/appointments",
470
699
  method: "GET",
471
700
  auth: "user",
472
- tags: [
473
- "site-{siteId}",
474
- "api-keys",
475
- "management-keys"
476
- ],
477
701
  responseKind: "json"
478
702
  },
479
- createManagementKey: {
480
- path: "/sites/{siteId}/api-keys/management",
703
+ exportBookingAppointmentsCsv: {
704
+ path: "/sites/{siteId}/bookings/appointments/export.csv",
705
+ method: "GET",
706
+ auth: "user",
707
+ errors: [],
708
+ responseKind: "blob"
709
+ },
710
+ createAppointment: {
711
+ path: "/sites/{siteId}/bookings/appointments",
481
712
  method: "POST",
482
713
  auth: "user",
483
- tags: [
484
- "site-{siteId}",
485
- "api-keys",
486
- "management-keys"
487
- ],
488
714
  responseKind: "json"
489
715
  },
490
- revokeManagementKey: {
491
- path: "/sites/{siteId}/api-keys/management",
492
- method: "DELETE",
716
+ upsertBookingRequirementConfig: {
717
+ path: "/sites/{siteId}/bookings/requirements/config",
718
+ method: "PUT",
493
719
  auth: "user",
494
- tags: [
495
- "site-{siteId}",
496
- "api-keys",
497
- "management-keys"
498
- ],
499
- responseKind: "json"
720
+ responseKind: "json",
721
+ errors: [
722
+ "validation:invalid_input",
723
+ "resource:not_found",
724
+ "server:internal_error"
725
+ ]
500
726
  },
501
- getBookingSettings: {
502
- path: "/sites/{siteId}/bookings/settings",
503
- method: "GET",
727
+ cancelAppointment: {
728
+ path: "/sites/{siteId}/bookings/appointments/{appointmentId}/cancel",
729
+ method: "POST",
504
730
  auth: "user",
505
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
506
731
  responseKind: "json"
507
732
  },
508
- updateBookingSettings: {
509
- path: "/sites/{siteId}/bookings/settings",
510
- method: "PUT",
733
+ rescheduleAppointment: {
734
+ path: "/sites/{siteId}/bookings/appointments/{appointmentId}/reschedule",
735
+ method: "POST",
511
736
  auth: "user",
512
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
513
737
  responseKind: "json",
514
738
  errors: [
515
739
  "validation:invalid_input",
740
+ "resource:not_found",
516
741
  "auth:forbidden",
517
742
  "resource:conflict",
518
743
  "server:internal_error"
519
744
  ]
520
- },
521
- listBookingClosures: {
522
- path: "/sites/{siteId}/bookings/closures",
745
+ }
746
+ });
747
+ //#endregion
748
+ //#region ../api/src/courseEndpointDefinitions.ts
749
+ const COURSE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
750
+ listCourses: {
751
+ path: "/sites/{siteId}/bookings/courses",
523
752
  method: "GET",
524
753
  auth: "user",
525
- tags: [
526
- "site-{siteId}",
527
- "bookings",
528
- "closures-{siteId}"
529
- ],
530
- responseKind: "json",
531
- errors: ["auth:forbidden", "server:internal_error"]
754
+ responseKind: "json"
532
755
  },
533
- previewBookingClosure: {
534
- path: "/sites/{siteId}/bookings/closures/preview",
535
- method: "POST",
536
- auth: "user",
756
+ exportCoursesCsv: {
757
+ path: "/sites/{siteId}/bookings/courses/export.csv",
758
+ method: "GET",
537
759
  tags: [
538
760
  "site-{siteId}",
539
761
  "bookings",
540
- "closures-{siteId}"
762
+ "courses-{siteId}"
541
763
  ],
542
- responseKind: "json",
543
- errors: [
544
- "validation:invalid_input",
545
- "auth:forbidden",
546
- "server:internal_error"
547
- ]
764
+ errors: [],
765
+ auth: "user",
766
+ responseKind: "blob"
548
767
  },
549
- createBookingClosure: {
550
- path: "/sites/{siteId}/bookings/closures",
768
+ createCourse: {
769
+ path: "/sites/{siteId}/bookings/courses",
551
770
  method: "POST",
552
771
  auth: "user",
553
- tags: [
554
- "site-{siteId}",
555
- "bookings",
556
- "closures-{siteId}"
557
- ],
558
772
  responseKind: "json",
559
773
  errors: [
560
774
  "validation:invalid_input",
775
+ "resource:not_found",
776
+ "resource:already_exists",
561
777
  "resource:conflict",
562
- "auth:forbidden",
563
778
  "server:internal_error"
564
779
  ]
565
780
  },
566
- getBookingClosure: {
567
- path: "/sites/{siteId}/bookings/closures/{closureId}",
568
- method: "GET",
569
- auth: "user",
570
- tags: [
571
- "site-{siteId}",
572
- "bookings",
573
- "closures-{siteId}"
574
- ],
575
- responseKind: "json",
576
- errors: ["resource:not_found", "server:internal_error"]
577
- },
578
- deleteBookingClosure: {
579
- path: "/sites/{siteId}/bookings/closures/{closureId}",
580
- method: "DELETE",
581
- auth: "user",
582
- tags: [
583
- "site-{siteId}",
584
- "bookings",
585
- "closures-{siteId}"
586
- ],
587
- responseKind: "json",
588
- errors: ["resource:not_found", "server:internal_error"]
589
- },
590
- opsListUpcomingEventOccurrences: {
591
- path: "/ops/sites/{siteId}/events",
592
- method: "GET",
593
- auth: "user",
594
- responseKind: "json"
595
- },
596
- opsListOccurrenceAttendees: {
597
- path: "/ops/sites/{siteId}/events/{occurrenceId}/attendees",
781
+ getCourse: {
782
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
598
783
  method: "GET",
599
784
  auth: "user",
600
785
  responseKind: "json"
601
786
  },
602
- opsValidateEventTicket: {
603
- path: "/ops/sites/{siteId}/events/tickets/validate",
604
- method: "POST",
787
+ updateCourse: {
788
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
789
+ method: "PATCH",
605
790
  auth: "user",
606
791
  responseKind: "json",
607
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
608
792
  errors: [
609
793
  "validation:invalid_input",
610
- "auth:forbidden",
611
794
  "resource:not_found",
795
+ "resource:conflict",
612
796
  "server:internal_error"
613
797
  ]
614
798
  },
615
- opsUpdateEventAttendeeCheckin: {
616
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/checkin",
617
- method: "POST",
799
+ deleteCourse: {
800
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
801
+ method: "DELETE",
618
802
  auth: "user",
619
803
  responseKind: "json",
620
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
621
804
  errors: [
622
805
  "validation:invalid_input",
623
- "auth:forbidden",
624
806
  "resource:not_found",
807
+ "resource:conflict",
625
808
  "server:internal_error"
626
809
  ]
627
810
  },
628
- opsGetEventAttendeeDetails: {
629
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}",
630
- method: "GET",
631
- auth: "user",
632
- responseKind: "json"
633
- },
634
- opsCancelEventAttendee: {
635
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/cancel",
636
- method: "POST",
811
+ deleteEventOffering: {
812
+ path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}",
813
+ method: "DELETE",
637
814
  auth: "user",
638
815
  responseKind: "json",
639
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
640
816
  errors: [
641
817
  "validation:invalid_input",
642
- "auth:forbidden",
643
818
  "resource:not_found",
644
819
  "resource:conflict",
645
820
  "server:internal_error"
646
821
  ]
647
822
  },
648
- getEventAttendeeDetails: {
649
- path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}",
650
- method: "GET",
823
+ duplicateCourse: {
824
+ path: "/sites/{siteId}/bookings/courses/{courseId}/duplicate",
825
+ method: "POST",
651
826
  auth: "user",
652
827
  responseKind: "json",
653
- errors: []
828
+ errors: [
829
+ "validation:invalid_input",
830
+ "resource:not_found",
831
+ "resource:already_exists",
832
+ "server:internal_error"
833
+ ]
654
834
  },
655
- cancelEventAttendee: {
656
- path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}/cancel",
835
+ changeCourseContentOwnership: {
836
+ path: "/sites/{siteId}/bookings/courses/{courseId}/content-ownership",
657
837
  method: "POST",
658
838
  auth: "user",
659
839
  responseKind: "json",
660
840
  errors: [
661
841
  "validation:invalid_input",
662
- "auth:forbidden",
663
842
  "resource:not_found",
664
843
  "resource:conflict",
665
844
  "server:internal_error"
666
845
  ]
667
846
  },
668
- opsRefundEventAttendee: {
669
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/refund",
847
+ addCourseEnrollment: {
848
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
670
849
  method: "POST",
671
850
  auth: "user",
672
851
  responseKind: "json",
673
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
674
852
  errors: [
675
853
  "validation:invalid_input",
676
- "auth:forbidden",
677
854
  "resource:not_found",
678
855
  "resource:conflict",
679
856
  "server:internal_error"
680
857
  ]
681
858
  },
682
- getEmailSettings: {
683
- path: "/sites/{siteId}/settings/emails",
859
+ listCourseEnrollments: {
860
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
684
861
  method: "GET",
685
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
686
862
  auth: "user",
687
863
  responseKind: "json"
688
864
  },
689
- updateEmailSettings: {
690
- path: "/sites/{siteId}/settings/emails",
691
- method: "PUT",
692
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
865
+ exportCourseEnrollmentsCsv: {
866
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/export.csv",
867
+ method: "GET",
693
868
  auth: "user",
694
- responseKind: "json"
869
+ errors: [],
870
+ responseKind: "blob"
695
871
  },
696
- sendTestEmail: {
697
- path: "/sites/{siteId}/settings/emails/test",
698
- method: "POST",
699
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
872
+ exportCourseWaitlistCsv: {
873
+ path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist/export.csv",
874
+ method: "GET",
875
+ tags: [
876
+ "site-{siteId}",
877
+ "bookings",
878
+ "courses-{courseId}"
879
+ ],
700
880
  auth: "user",
701
- responseKind: "json",
702
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
881
+ responseKind: "blob",
882
+ errors: []
703
883
  },
704
- previewEmailTemplate: {
705
- path: "/sites/{siteId}/settings/emails/preview",
706
- method: "POST",
707
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
884
+ updateCourseEnrollment: {
885
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
886
+ method: "PATCH",
708
887
  auth: "user",
709
- responseKind: "json"
710
- },
888
+ responseKind: "json",
889
+ errors: [
890
+ "validation:invalid_input",
891
+ "resource:not_found",
892
+ "server:internal_error"
893
+ ]
894
+ }
895
+ });
896
+ //#endregion
897
+ //#region ../api/src/newsletterEndpointDefinitions.ts
898
+ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
711
899
  getNewsletterSettings: {
712
900
  path: "/sites/{siteId}/newsletter/settings",
713
901
  method: "GET",
@@ -1060,770 +1248,701 @@ const API_ENDPOINTS = {
1060
1248
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1061
1249
  auth: "user",
1062
1250
  responseKind: "json"
1063
- },
1064
- listAppointmentResources: {
1065
- path: "/sites/{siteId}/bookings/resources",
1066
- method: "GET",
1067
- auth: "user",
1068
- responseKind: "json"
1069
- },
1070
- createAppointmentResource: {
1071
- path: "/sites/{siteId}/bookings/resources",
1072
- method: "POST",
1073
- auth: "user",
1074
- responseKind: "json",
1075
- errors: [
1076
- "validation:invalid_input",
1077
- "billing:plan_limit_exceeded",
1078
- "server:internal_error"
1079
- ]
1080
- },
1081
- createAppointmentResourceWithAccountAccess: {
1082
- path: "/sites/{siteId}/bookings/resources/account-access",
1083
- method: "POST",
1084
- auth: "user",
1085
- responseKind: "json",
1086
- errors: [
1087
- "validation:invalid_input",
1088
- "auth:forbidden",
1089
- "billing:plan_limit_exceeded",
1090
- "resource:conflict",
1091
- "resource:not_found",
1092
- "server:internal_error"
1093
- ]
1094
- },
1095
- getAppointmentResource: {
1096
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1251
+ }
1252
+ });
1253
+ //#endregion
1254
+ //#region ../api/src/publicWholeSeriesEndpointDefinitions.ts
1255
+ const PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1256
+ listPublicWholeSeriesOfferings: {
1257
+ path: "/public/sites/{siteId}/dated-offerings/whole-series",
1097
1258
  method: "GET",
1098
- auth: "user",
1259
+ revalidate: 60,
1260
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings],
1261
+ errors: ["server:internal_error"],
1262
+ auth: "public",
1099
1263
  responseKind: "json"
1100
1264
  },
1101
- updateAppointmentResource: {
1102
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1103
- method: "PUT",
1104
- auth: "user",
1105
- responseKind: "json",
1106
- errors: [
1107
- "validation:invalid_input",
1108
- "resource:not_found",
1109
- "server:internal_error"
1110
- ]
1111
- },
1112
- removeAppointmentResource: {
1113
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1114
- method: "DELETE",
1115
- auth: "user",
1116
- responseKind: "json",
1117
- errors: ["resource:not_found", "server:internal_error"]
1118
- },
1119
- listAppointmentReservations: {
1120
- path: "/sites/{siteId}/bookings/appointment-reservations",
1265
+ getPublicWholeSeriesOffering: {
1266
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/{eventSeriesId}",
1121
1267
  method: "GET",
1122
- auth: "user",
1123
- responseKind: "json",
1124
- errors: []
1268
+ revalidate: 60,
1269
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings],
1270
+ errors: ["resource:not_found", "server:internal_error"],
1271
+ auth: "public",
1272
+ responseKind: "json"
1125
1273
  },
1126
- createAppointmentReservation: {
1127
- path: "/sites/{siteId}/bookings/appointment-reservations",
1274
+ registerForWholeSeries: {
1275
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/enroll",
1128
1276
  method: "POST",
1129
- auth: "user",
1130
- responseKind: "json",
1277
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-enrollment"],
1131
1278
  errors: [
1279
+ "auth:unauthenticated",
1280
+ "auth:forbidden",
1132
1281
  "validation:invalid_input",
1133
1282
  "resource:not_found",
1134
1283
  "resource:conflict",
1284
+ "resource:already_exists",
1135
1285
  "server:internal_error"
1136
- ]
1137
- },
1138
- getAppointmentReservation: {
1139
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1140
- method: "GET",
1141
- auth: "user",
1142
- responseKind: "json",
1143
- errors: ["resource:not_found", "server:internal_error"]
1286
+ ],
1287
+ auth: "public",
1288
+ responseKind: "json"
1144
1289
  },
1145
- updateAppointmentReservation: {
1146
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1147
- method: "PUT",
1148
- auth: "user",
1149
- responseKind: "json",
1290
+ checkWholeSeriesEligibility: {
1291
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/check-eligibility",
1292
+ method: "POST",
1293
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-enrollment"],
1150
1294
  errors: [
1151
- "validation:invalid_input",
1295
+ "auth:unauthenticated",
1152
1296
  "resource:not_found",
1153
1297
  "resource:conflict",
1154
1298
  "server:internal_error"
1155
- ]
1299
+ ],
1300
+ auth: "public",
1301
+ responseKind: "json"
1156
1302
  },
1157
- pauseAppointmentReservation: {
1158
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1303
+ createWholeSeriesCheckout: {
1304
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/checkout",
1159
1305
  method: "POST",
1160
- auth: "user",
1306
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-checkout"],
1307
+ auth: "public",
1161
1308
  responseKind: "json",
1162
1309
  errors: [
1310
+ "auth:unauthenticated",
1311
+ "validation:invalid_input",
1163
1312
  "resource:not_found",
1164
1313
  "resource:conflict",
1165
1314
  "server:internal_error"
1166
1315
  ]
1167
1316
  },
1168
- resumeAppointmentReservation: {
1169
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
1317
+ getWholeSeriesRegistrationStatus: {
1318
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/registration-status",
1319
+ method: "GET",
1320
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-checkout"],
1321
+ errors: ["resource:not_found", "server:internal_error"],
1322
+ auth: "public",
1323
+ responseKind: "json"
1324
+ }
1325
+ });
1326
+ const API_ENDPOINTS = {
1327
+ aiContentUpdateChat: {
1328
+ path: "/ai/content-update-chat",
1170
1329
  method: "POST",
1171
1330
  auth: "user",
1172
- responseKind: "json",
1173
- errors: [
1174
- "resource:not_found",
1175
- "resource:conflict",
1176
- "server:internal_error"
1177
- ]
1331
+ responseKind: "stream"
1178
1332
  },
1179
- endAppointmentReservation: {
1180
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1333
+ aiChat: {
1334
+ path: "/ai/chat",
1181
1335
  method: "POST",
1182
1336
  auth: "user",
1183
- responseKind: "json",
1184
- errors: [
1185
- "validation:invalid_input",
1186
- "resource:not_found",
1187
- "resource:conflict",
1188
- "server:internal_error"
1189
- ]
1337
+ responseKind: "stream"
1190
1338
  },
1191
- previewAppointmentReservationRun: {
1192
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1339
+ aiDesignerThemeApply: {
1340
+ path: "/sites/{siteId}/ai/designer/theme/apply",
1193
1341
  method: "POST",
1342
+ tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme],
1194
1343
  auth: "user",
1195
- responseKind: "json",
1196
- errors: [
1197
- "validation:invalid_input",
1198
- "resource:not_found",
1199
- "resource:conflict",
1200
- "server:internal_error"
1201
- ]
1344
+ responseKind: "json"
1202
1345
  },
1203
- createAppointmentReservationRun: {
1204
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1346
+ aiDesignerPageOpsApply: {
1347
+ path: "/sites/{siteId}/ai/designer/page/apply",
1205
1348
  method: "POST",
1349
+ tags: [TAG_TEMPLATES.siteCollection],
1206
1350
  auth: "user",
1207
- responseKind: "json",
1208
- errors: [
1209
- "validation:invalid_input",
1210
- "resource:not_found",
1211
- "resource:conflict",
1212
- "server:internal_error"
1213
- ]
1351
+ responseKind: "json"
1214
1352
  },
1215
- createTeamMemberProfile: {
1216
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1353
+ applySeoChanges: {
1354
+ path: "/seo/apply",
1217
1355
  method: "POST",
1218
1356
  auth: "user",
1219
- responseKind: "json",
1220
- errors: [
1221
- "validation:invalid_input",
1222
- "resource:not_found",
1223
- "resource:conflict",
1224
- "server:internal_error"
1225
- ]
1357
+ responseKind: "json"
1226
1358
  },
1227
- updateTeamMemberProfilePolicy: {
1228
- path: "/sites/{siteId}/bookings/resources/profile-policy",
1229
- method: "PUT",
1359
+ aiCreateBriefChat: {
1360
+ path: "/ai/chat/create-brief",
1361
+ method: "POST",
1230
1362
  auth: "user",
1231
- responseKind: "json",
1232
- errors: ["validation:invalid_input", "server:internal_error"]
1363
+ responseKind: "json"
1233
1364
  },
1234
- updateTeamMemberProfileContent: {
1235
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/content",
1236
- method: "PUT",
1237
- tags: [
1238
- "site-{siteId}",
1239
- "content-{siteId}-team-member",
1240
- "content-entry-{entryId}"
1241
- ],
1365
+ aiPatchDryRun: {
1366
+ path: "/ai/patch/dry-run",
1367
+ method: "POST",
1242
1368
  auth: "user",
1243
- responseKind: "json",
1244
- errors: [
1245
- "validation:invalid_input",
1246
- "resource:not_found",
1247
- "resource:conflict",
1248
- "server:internal_error"
1249
- ]
1369
+ responseKind: "json"
1250
1370
  },
1251
- publishTeamMemberProfile: {
1252
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
1371
+ aiPatchApply: {
1372
+ path: "/ai/patch/apply",
1253
1373
  method: "POST",
1254
- tags: [
1255
- "site-{siteId}",
1256
- "content-{siteId}-team-member",
1257
- "content-entry-{entryId}"
1258
- ],
1259
1374
  auth: "user",
1260
- responseKind: "json",
1261
- errors: [
1262
- "validation:invalid_input",
1263
- "resource:not_found",
1264
- "server:internal_error"
1265
- ]
1375
+ responseKind: "json"
1266
1376
  },
1267
- discardTeamMemberProfileDraft: {
1268
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
1377
+ aiPlaygroundProposeMulti: {
1378
+ path: "/sites/{siteId}/ai/playground/propose-multi",
1269
1379
  method: "POST",
1270
- tags: [
1271
- "site-{siteId}",
1272
- "content-{siteId}-team-member",
1273
- "content-entry-{entryId}"
1274
- ],
1275
1380
  auth: "user",
1276
- responseKind: "json",
1277
- errors: [
1278
- "validation:invalid_input",
1279
- "resource:not_found",
1280
- "resource:conflict",
1281
- "server:internal_error"
1282
- ]
1381
+ responseKind: "stream"
1283
1382
  },
1284
- unpublishTeamMemberProfile: {
1285
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/unpublish",
1383
+ aiPlaygroundProposeMultiGet: {
1384
+ path: "/sites/{siteId}/ai/playground/propose-multi",
1385
+ method: "GET",
1386
+ auth: "user",
1387
+ responseKind: "stream"
1388
+ },
1389
+ aiAssistantChatSite: {
1390
+ path: "/sites/{siteId}/ai/assistant/chat",
1286
1391
  method: "POST",
1287
- tags: [
1288
- "site-{siteId}",
1289
- "content-{siteId}-team-member",
1290
- "content-entry-{entryId}"
1291
- ],
1292
1392
  auth: "user",
1293
- responseKind: "json",
1294
- errors: [
1295
- "validation:invalid_input",
1296
- "resource:not_found",
1297
- "resource:conflict",
1298
- "server:internal_error"
1299
- ]
1393
+ responseKind: "stream"
1300
1394
  },
1301
- scheduleTeamMemberProfile: {
1302
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
1395
+ aiDesignerChat: {
1396
+ path: "/sites/{siteId}/ai/designer/chat",
1303
1397
  method: "POST",
1304
- tags: [
1305
- "site-{siteId}",
1306
- "content-{siteId}-team-member",
1307
- "content-entry-{entryId}"
1308
- ],
1309
1398
  auth: "user",
1310
- responseKind: "json",
1311
- errors: [
1312
- "validation:invalid_input",
1313
- "resource:not_found",
1314
- "resource:conflict",
1315
- "server:internal_error"
1316
- ]
1399
+ responseKind: "stream"
1317
1400
  },
1318
- cancelScheduledTeamMemberProfile: {
1319
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
1320
- method: "DELETE",
1321
- tags: [
1322
- "site-{siteId}",
1323
- "content-{siteId}-team-member",
1324
- "content-entry-{entryId}"
1325
- ],
1401
+ aiPlaygroundPageConvert: {
1402
+ path: "/sites/{siteId}/ai/playground/page-convert",
1403
+ method: "POST",
1326
1404
  auth: "user",
1327
- responseKind: "json",
1328
- errors: [
1329
- "validation:invalid_input",
1330
- "resource:not_found",
1331
- "resource:conflict",
1332
- "server:internal_error"
1333
- ]
1405
+ responseKind: "json"
1334
1406
  },
1335
- updateTeamMemberProfileRouteMetadata: {
1336
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/routes/{routeId}/metadata",
1337
- method: "PATCH",
1338
- tags: [
1339
- TAG_TEMPLATES.siteCollection,
1340
- TAG_TEMPLATES.siteRoutableContent,
1341
- TAG_TEMPLATES.routeById
1342
- ],
1407
+ aiPlaygroundPageConvertJobsCreate: {
1408
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs",
1409
+ method: "POST",
1343
1410
  auth: "user",
1344
- responseKind: "json",
1345
- errors: [
1346
- "validation:invalid_input",
1347
- "resource:not_found",
1348
- "resource:conflict",
1349
- "server:internal_error"
1350
- ]
1411
+ responseKind: "json"
1351
1412
  },
1352
- listAppointmentServices: {
1353
- path: "/sites/{siteId}/bookings/services",
1413
+ aiPlaygroundPageConvertJobsList: {
1414
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs",
1354
1415
  method: "GET",
1355
1416
  auth: "user",
1356
1417
  responseKind: "json"
1357
1418
  },
1358
- exportAppointmentServicesCsv: {
1359
- path: "/sites/{siteId}/bookings/services/export.csv",
1360
- method: "GET",
1361
- tags: [
1362
- "site-{siteId}",
1363
- "bookings",
1364
- "appointment-services-{siteId}"
1365
- ],
1366
- errors: [],
1419
+ aiPlaygroundPageConvertJobGet: {
1420
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}",
1421
+ method: "GET",
1367
1422
  auth: "user",
1368
- responseKind: "blob"
1423
+ responseKind: "json"
1369
1424
  },
1370
- createAppointmentService: {
1371
- path: "/sites/{siteId}/bookings/services",
1425
+ aiPlaygroundPageConvertJobRun: {
1426
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/run",
1372
1427
  method: "POST",
1373
1428
  auth: "user",
1374
- responseKind: "json",
1375
- errors: ["validation:invalid_input", "server:internal_error"]
1429
+ responseKind: "json"
1376
1430
  },
1377
- getAppointmentService: {
1378
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1431
+ aiPlaygroundPageConvertJobEvents: {
1432
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/events",
1379
1433
  method: "GET",
1380
1434
  auth: "user",
1381
1435
  responseKind: "json"
1382
1436
  },
1383
- updateAppointmentService: {
1384
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1385
- method: "PUT",
1437
+ aiGenerateSite: {
1438
+ path: "/sites/{siteId}/ai/generate",
1439
+ method: "POST",
1386
1440
  auth: "user",
1387
1441
  responseKind: "json",
1388
- errors: [
1389
- "validation:invalid_input",
1390
- "resource:not_found",
1391
- "server:internal_error"
1392
- ]
1442
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1393
1443
  },
1394
- deleteAppointmentService: {
1395
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1396
- method: "DELETE",
1397
- auth: "user",
1398
- responseKind: "json",
1399
- errors: ["resource:not_found", "server:internal_error"]
1444
+ getOnboardingPreviewStatus: {
1445
+ path: "/public/sites/{siteId}/onboarding/preview-status",
1446
+ method: "GET",
1447
+ auth: "public",
1448
+ errors: [],
1449
+ responseKind: "json"
1400
1450
  },
1401
- getAppointmentSetup: {
1402
- path: "/sites/{siteId}/bookings/appointment-setup",
1451
+ listOnboardingPreviewThemes: {
1452
+ path: "/public/sites/{siteId}/onboarding/themes",
1403
1453
  method: "GET",
1404
- auth: "user",
1405
- responseKind: "json",
1406
- errors: ["server:internal_error"]
1454
+ auth: "public",
1455
+ errors: [],
1456
+ responseKind: "json"
1407
1457
  },
1408
- applyAppointmentSetup: {
1409
- path: "/sites/{siteId}/bookings/appointment-setup",
1458
+ acknowledgeLaunchRequirement: {
1459
+ path: "/sites/{siteId}/launch/acknowledge-requirement",
1410
1460
  method: "POST",
1411
1461
  auth: "user",
1462
+ errors: [],
1412
1463
  responseKind: "json",
1413
- errors: ["validation:invalid_input", "server:internal_error"]
1464
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
1414
1465
  },
1415
- getAppointmentServicesReference: {
1416
- path: "/sites/{siteId}/bookings/services/reference",
1417
- method: "GET",
1466
+ goLiveSite: {
1467
+ path: "/sites/{siteId}/launch/go-live",
1468
+ method: "POST",
1418
1469
  auth: "user",
1470
+ errors: [],
1419
1471
  responseKind: "json"
1420
1472
  },
1421
- getAppointmentResourcesReference: {
1422
- path: "/sites/{siteId}/bookings/resources/reference",
1423
- method: "GET",
1424
- auth: "user",
1473
+ resendOnboardingPreviewConfirmation: {
1474
+ path: "/public/sites/{siteId}/onboarding/resend-confirmation",
1475
+ method: "POST",
1476
+ auth: "public",
1477
+ errors: [],
1425
1478
  responseKind: "json"
1426
1479
  },
1427
- getResourceServices: {
1428
- path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
1429
- method: "GET",
1430
- auth: "user",
1480
+ createPublicOnboardingAttempt: {
1481
+ path: "/public/onboarding/attempts",
1482
+ method: "POST",
1483
+ auth: "public",
1484
+ errors: [],
1431
1485
  responseKind: "json"
1432
1486
  },
1433
- updateResourceServices: {
1434
- path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
1435
- method: "PUT",
1436
- auth: "user",
1487
+ createPublicOnboardingLogoUploadUrl: {
1488
+ path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
1489
+ method: "POST",
1490
+ auth: "public",
1491
+ errors: [],
1437
1492
  responseKind: "json"
1438
1493
  },
1439
- getServiceResources: {
1440
- path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
1441
- method: "GET",
1442
- auth: "user",
1494
+ uploadPublicOnboardingLogo: {
1495
+ path: "/public/onboarding/attempts/{attemptToken}/logo",
1496
+ method: "POST",
1497
+ auth: "public",
1498
+ errors: [],
1443
1499
  responseKind: "json"
1444
1500
  },
1445
- updateServiceResources: {
1446
- path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
1447
- method: "PUT",
1448
- auth: "user",
1501
+ getPublicOnboardingAttempt: {
1502
+ path: "/public/onboarding/attempts/{attemptToken}",
1503
+ method: "GET",
1504
+ auth: "public",
1505
+ errors: [],
1449
1506
  responseKind: "json"
1450
1507
  },
1451
- listAvailabilityRules: {
1452
- path: "/sites/{siteId}/bookings/resources/{resourceId}/availability",
1508
+ getPublicOnboardingAttemptProgress: {
1509
+ path: "/public/onboarding/attempts/{attemptToken}/status",
1453
1510
  method: "GET",
1454
- auth: "user",
1455
- responseKind: "json",
1456
- errors: ["resource:not_found", "server:internal_error"]
1511
+ auth: "public",
1512
+ errors: [],
1513
+ responseKind: "json"
1457
1514
  },
1458
- setWeeklyAvailability: {
1459
- path: "/sites/{siteId}/bookings/resources/{resourceId}/weekly-availability",
1460
- method: "PUT",
1515
+ updatePublicOnboardingAttempt: {
1516
+ path: "/public/onboarding/attempts/{attemptToken}",
1517
+ method: "PATCH",
1518
+ auth: "public",
1519
+ errors: [],
1520
+ responseKind: "json"
1521
+ },
1522
+ runPublicOnboardingAttempt: {
1523
+ path: "/public/onboarding/attempts/{attemptToken}/run",
1524
+ method: "POST",
1525
+ auth: "public",
1526
+ errors: [],
1527
+ responseKind: "json"
1528
+ },
1529
+ aiSiteWizardSuggestGoals: {
1530
+ path: "/sites/{siteId}/ai/site-wizard/goals",
1531
+ method: "POST",
1461
1532
  auth: "user",
1462
1533
  responseKind: "json",
1463
- errors: [
1464
- "validation:invalid_input",
1465
- "resource:not_found",
1466
- "server:internal_error"
1467
- ]
1534
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1468
1535
  },
1469
- setServiceSpecificAvailability: {
1470
- path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability",
1471
- method: "PUT",
1536
+ aiSiteWizardIntakeTriage: {
1537
+ path: "/sites/{siteId}/ai/site-wizard/intake-triage",
1538
+ method: "POST",
1472
1539
  auth: "user",
1473
1540
  responseKind: "json",
1474
- errors: [
1475
- "validation:invalid_input",
1476
- "resource:not_found",
1477
- "server:internal_error"
1478
- ]
1541
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1479
1542
  },
1480
- deleteServiceSpecificAvailability: {
1481
- path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability/{scheduleId}",
1482
- method: "DELETE",
1543
+ aiSiteWizardTelemetry: {
1544
+ path: "/sites/{siteId}/ai/site-wizard/telemetry",
1545
+ method: "POST",
1483
1546
  auth: "user",
1547
+ errors: [],
1484
1548
  responseKind: "json",
1485
- errors: ["resource:not_found", "server:internal_error"]
1549
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1486
1550
  },
1487
- listBlackouts: {
1488
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
1551
+ listGscPropertiesAdmin: {
1552
+ path: "/admin/seo/gsc/properties",
1553
+ method: "GET",
1554
+ auth: "admin",
1555
+ errors: [],
1556
+ responseKind: "json"
1557
+ },
1558
+ getPublicChallenge: {
1559
+ path: "/public/challenge",
1560
+ method: "GET",
1561
+ auth: "public",
1562
+ errors: [],
1563
+ responseKind: "text"
1564
+ },
1565
+ checkRedirect: {
1566
+ path: "/public/content/redirect",
1567
+ method: "GET",
1568
+ revalidate: 86400,
1569
+ tags: ["redirect"],
1570
+ errors: [],
1571
+ auth: "public",
1572
+ responseKind: "json"
1573
+ },
1574
+ listRedirectRules: {
1575
+ path: "/sites/{siteId}/redirects",
1489
1576
  method: "GET",
1490
1577
  auth: "user",
1491
- responseKind: "json",
1492
- errors: ["resource:not_found", "server:internal_error"]
1578
+ responseKind: "json"
1493
1579
  },
1494
- createBlackout: {
1495
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
1580
+ createRedirectRule: {
1581
+ path: "/sites/{siteId}/redirects",
1496
1582
  method: "POST",
1583
+ errors: ["validation:invalid_input", "resource:not_found"],
1497
1584
  auth: "user",
1498
- responseKind: "json",
1499
- errors: [
1500
- "validation:invalid_input",
1501
- "resource:not_found",
1502
- "server:internal_error"
1503
- ]
1585
+ responseKind: "json"
1504
1586
  },
1505
- deleteBlackout: {
1506
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts/{blackoutId}",
1587
+ deleteRedirectRule: {
1588
+ path: "/sites/{siteId}/redirects/{ruleId}",
1507
1589
  method: "DELETE",
1590
+ errors: ["resource:not_found"],
1508
1591
  auth: "user",
1509
- responseKind: "json",
1510
- errors: ["resource:not_found", "server:internal_error"]
1592
+ responseKind: "json"
1511
1593
  },
1512
- getCalendarStatus: {
1513
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1594
+ listWebhooks: {
1595
+ path: "/sites/{siteId}/webhooks",
1514
1596
  method: "GET",
1597
+ tags: ["site-{siteId}", "webhooks"],
1515
1598
  auth: "user",
1516
- responseKind: "json",
1517
- errors: ["auth:forbidden", "server:internal_error"]
1599
+ responseKind: "json"
1518
1600
  },
1519
- updateCalendarPreferences: {
1520
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1521
- method: "PUT",
1601
+ createWebhook: {
1602
+ path: "/sites/{siteId}/webhooks",
1603
+ method: "POST",
1604
+ tags: ["site-{siteId}", "webhooks"],
1522
1605
  auth: "user",
1523
- responseKind: "json",
1524
- errors: [
1525
- "validation:invalid_input",
1526
- "auth:forbidden",
1527
- "resource:not_found",
1528
- "server:internal_error"
1529
- ]
1606
+ responseKind: "json"
1530
1607
  },
1531
- disconnectCalendar: {
1532
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1608
+ getWebhook: {
1609
+ path: "/sites/{siteId}/webhooks/{webhookId}",
1610
+ method: "GET",
1611
+ tags: ["site-{siteId}", "webhooks"],
1612
+ auth: "user",
1613
+ responseKind: "json"
1614
+ },
1615
+ updateWebhook: {
1616
+ path: "/sites/{siteId}/webhooks/{webhookId}",
1617
+ method: "PATCH",
1618
+ tags: ["site-{siteId}", "webhooks"],
1619
+ auth: "user",
1620
+ responseKind: "json"
1621
+ },
1622
+ deleteWebhook: {
1623
+ path: "/sites/{siteId}/webhooks/{webhookId}",
1533
1624
  method: "DELETE",
1625
+ tags: ["site-{siteId}", "webhooks"],
1534
1626
  auth: "user",
1535
- responseKind: "json",
1536
- errors: [
1537
- "auth:forbidden",
1538
- "resource:not_found",
1539
- "server:internal_error"
1540
- ]
1627
+ responseKind: "json"
1541
1628
  },
1542
- getResourceCalendarFeed: {
1543
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1629
+ getSdkDeploymentHealth: {
1630
+ path: "/sites/{siteId}/sdk-deployment/health",
1544
1631
  method: "GET",
1632
+ tags: ["site-{siteId}", "webhooks"],
1545
1633
  auth: "user",
1546
- responseKind: "json",
1547
- errors: [
1548
- "auth:forbidden",
1549
- "resource:not_found",
1550
- "server:internal_error"
1551
- ]
1634
+ errors: [],
1635
+ responseKind: "json"
1552
1636
  },
1553
- regenerateResourceCalendarFeed: {
1554
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1637
+ setupSdkDeploymentRevalidationWebhook: {
1638
+ path: "/sites/{siteId}/sdk-deployment/revalidation-webhook",
1555
1639
  method: "POST",
1640
+ tags: ["site-{siteId}", "webhooks"],
1556
1641
  auth: "user",
1642
+ errors: ["validation:invalid_input", "resource:conflict"],
1557
1643
  responseKind: "json",
1558
- errors: [
1559
- "auth:forbidden",
1560
- "resource:not_found",
1561
- "server:internal_error"
1562
- ]
1563
- },
1564
- revokeResourceCalendarFeed: {
1565
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1566
- method: "DELETE",
1567
- auth: "user",
1568
- responseKind: "json",
1569
- errors: [
1570
- "auth:forbidden",
1571
- "resource:not_found",
1572
- "server:internal_error"
1573
- ]
1644
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
1574
1645
  },
1575
- getVenueCalendarFeed: {
1576
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1646
+ listSiteApiKeys: {
1647
+ path: "/sites/{siteId}/api-keys",
1577
1648
  method: "GET",
1578
1649
  auth: "user",
1579
- responseKind: "json",
1580
- errors: [
1581
- "auth:forbidden",
1582
- "resource:not_found",
1583
- "server:internal_error"
1584
- ]
1650
+ tags: ["site-{siteId}", "api-keys"],
1651
+ responseKind: "json"
1585
1652
  },
1586
- regenerateVenueCalendarFeed: {
1587
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1653
+ createSiteApiKey: {
1654
+ path: "/sites/{siteId}/api-keys",
1588
1655
  method: "POST",
1589
1656
  auth: "user",
1590
- responseKind: "json",
1591
- errors: [
1592
- "auth:forbidden",
1593
- "resource:not_found",
1594
- "server:internal_error"
1595
- ]
1657
+ tags: ["site-{siteId}", "api-keys"],
1658
+ responseKind: "json"
1596
1659
  },
1597
- revokeVenueCalendarFeed: {
1598
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1660
+ revokeSiteApiKey: {
1661
+ path: "/sites/{siteId}/api-keys/{keyId}",
1599
1662
  method: "DELETE",
1600
1663
  auth: "user",
1601
- responseKind: "json",
1602
- errors: [
1603
- "auth:forbidden",
1604
- "resource:not_found",
1605
- "server:internal_error"
1606
- ]
1607
- },
1608
- googleCalendarAuthorize: {
1609
- path: "/sites/{siteId}/bookings/calendar/google/authorize",
1610
- method: "GET",
1611
- auth: "user",
1612
- responseKind: "void"
1664
+ tags: ["site-{siteId}", "api-keys"],
1665
+ responseKind: "json"
1613
1666
  },
1614
- googleCalendarCallback: {
1615
- path: "/bookings/calendar/google/callback",
1667
+ getSitePreviewKey: {
1668
+ path: "/sites/{siteId}/api-keys/preview",
1616
1669
  method: "GET",
1617
1670
  auth: "user",
1618
- responseKind: "void"
1671
+ tags: [
1672
+ "site-{siteId}",
1673
+ "api-keys",
1674
+ "preview-key"
1675
+ ],
1676
+ responseKind: "json"
1619
1677
  },
1620
- getAvailableSlots: {
1621
- path: "/sites/{siteId}/bookings/availability/slots",
1622
- method: "GET",
1678
+ createSitePreviewKey: {
1679
+ path: "/sites/{siteId}/api-keys/preview",
1680
+ method: "POST",
1623
1681
  auth: "user",
1682
+ tags: [
1683
+ "site-{siteId}",
1684
+ "api-keys",
1685
+ "preview-key"
1686
+ ],
1624
1687
  responseKind: "json"
1625
1688
  },
1626
- listAppointments: {
1627
- path: "/sites/{siteId}/bookings/appointments",
1689
+ getSiteApiKeyAccessLogs: {
1690
+ path: "/sites/{siteId}/api-keys/access-logs",
1628
1691
  method: "GET",
1629
1692
  auth: "user",
1693
+ tags: [
1694
+ "site-{siteId}",
1695
+ "api-keys",
1696
+ "access-logs"
1697
+ ],
1630
1698
  responseKind: "json"
1631
1699
  },
1632
- exportBookingAppointmentsCsv: {
1633
- path: "/sites/{siteId}/bookings/appointments/export.csv",
1700
+ listManagementKeys: {
1701
+ path: "/sites/{siteId}/api-keys/management",
1634
1702
  method: "GET",
1635
1703
  auth: "user",
1636
- errors: [],
1637
- responseKind: "blob"
1704
+ tags: [
1705
+ "site-{siteId}",
1706
+ "api-keys",
1707
+ "management-keys"
1708
+ ],
1709
+ responseKind: "json"
1638
1710
  },
1639
- createAppointment: {
1640
- path: "/sites/{siteId}/bookings/appointments",
1711
+ createManagementKey: {
1712
+ path: "/sites/{siteId}/api-keys/management",
1641
1713
  method: "POST",
1642
1714
  auth: "user",
1715
+ tags: [
1716
+ "site-{siteId}",
1717
+ "api-keys",
1718
+ "management-keys"
1719
+ ],
1643
1720
  responseKind: "json"
1644
1721
  },
1645
- upsertBookingRequirementConfig: {
1646
- path: "/sites/{siteId}/bookings/requirements/config",
1647
- method: "PUT",
1722
+ revokeManagementKey: {
1723
+ path: "/sites/{siteId}/api-keys/management",
1724
+ method: "DELETE",
1648
1725
  auth: "user",
1649
- responseKind: "json",
1650
- errors: [
1651
- "validation:invalid_input",
1652
- "resource:not_found",
1653
- "server:internal_error"
1654
- ]
1726
+ tags: [
1727
+ "site-{siteId}",
1728
+ "api-keys",
1729
+ "management-keys"
1730
+ ],
1731
+ responseKind: "json"
1655
1732
  },
1656
- cancelAppointment: {
1657
- path: "/sites/{siteId}/bookings/appointments/{appointmentId}/cancel",
1658
- method: "POST",
1733
+ getBookingSettings: {
1734
+ path: "/sites/{siteId}/bookings/settings",
1735
+ method: "GET",
1659
1736
  auth: "user",
1737
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
1660
1738
  responseKind: "json"
1661
1739
  },
1662
- rescheduleAppointment: {
1663
- path: "/sites/{siteId}/bookings/appointments/{appointmentId}/reschedule",
1664
- method: "POST",
1740
+ updateBookingSettings: {
1741
+ path: "/sites/{siteId}/bookings/settings",
1742
+ method: "PUT",
1665
1743
  auth: "user",
1744
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
1666
1745
  responseKind: "json",
1667
1746
  errors: [
1668
1747
  "validation:invalid_input",
1669
- "resource:not_found",
1670
1748
  "auth:forbidden",
1671
1749
  "resource:conflict",
1672
1750
  "server:internal_error"
1673
1751
  ]
1674
1752
  },
1675
- listCourses: {
1676
- path: "/sites/{siteId}/bookings/courses",
1753
+ listBookingClosures: {
1754
+ path: "/sites/{siteId}/bookings/closures",
1677
1755
  method: "GET",
1678
1756
  auth: "user",
1679
- responseKind: "json"
1680
- },
1681
- exportCoursesCsv: {
1682
- path: "/sites/{siteId}/bookings/courses/export.csv",
1683
- method: "GET",
1684
1757
  tags: [
1685
1758
  "site-{siteId}",
1686
1759
  "bookings",
1687
- "courses-{siteId}"
1760
+ "closures-{siteId}"
1688
1761
  ],
1689
- errors: [],
1690
- auth: "user",
1691
- responseKind: "blob"
1762
+ responseKind: "json",
1763
+ errors: ["auth:forbidden", "server:internal_error"]
1692
1764
  },
1693
- createCourse: {
1694
- path: "/sites/{siteId}/bookings/courses",
1765
+ previewBookingClosure: {
1766
+ path: "/sites/{siteId}/bookings/closures/preview",
1695
1767
  method: "POST",
1696
1768
  auth: "user",
1769
+ tags: [
1770
+ "site-{siteId}",
1771
+ "bookings",
1772
+ "closures-{siteId}"
1773
+ ],
1697
1774
  responseKind: "json",
1698
1775
  errors: [
1699
1776
  "validation:invalid_input",
1700
- "resource:not_found",
1701
- "resource:already_exists",
1702
- "resource:conflict",
1777
+ "auth:forbidden",
1703
1778
  "server:internal_error"
1704
1779
  ]
1705
1780
  },
1706
- getCourse: {
1707
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1708
- method: "GET",
1709
- auth: "user",
1710
- responseKind: "json"
1711
- },
1712
- updateCourse: {
1713
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1714
- method: "PATCH",
1781
+ createBookingClosure: {
1782
+ path: "/sites/{siteId}/bookings/closures",
1783
+ method: "POST",
1715
1784
  auth: "user",
1785
+ tags: [
1786
+ "site-{siteId}",
1787
+ "bookings",
1788
+ "closures-{siteId}"
1789
+ ],
1716
1790
  responseKind: "json",
1717
1791
  errors: [
1718
1792
  "validation:invalid_input",
1719
- "resource:not_found",
1720
1793
  "resource:conflict",
1794
+ "auth:forbidden",
1721
1795
  "server:internal_error"
1722
1796
  ]
1723
1797
  },
1724
- deleteCourse: {
1725
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1798
+ getBookingClosure: {
1799
+ path: "/sites/{siteId}/bookings/closures/{closureId}",
1800
+ method: "GET",
1801
+ auth: "user",
1802
+ tags: [
1803
+ "site-{siteId}",
1804
+ "bookings",
1805
+ "closures-{siteId}"
1806
+ ],
1807
+ responseKind: "json",
1808
+ errors: ["resource:not_found", "server:internal_error"]
1809
+ },
1810
+ deleteBookingClosure: {
1811
+ path: "/sites/{siteId}/bookings/closures/{closureId}",
1726
1812
  method: "DELETE",
1727
1813
  auth: "user",
1814
+ tags: [
1815
+ "site-{siteId}",
1816
+ "bookings",
1817
+ "closures-{siteId}"
1818
+ ],
1819
+ responseKind: "json",
1820
+ errors: ["resource:not_found", "server:internal_error"]
1821
+ },
1822
+ opsListUpcomingEventOccurrences: {
1823
+ path: "/ops/sites/{siteId}/events",
1824
+ method: "GET",
1825
+ auth: "user",
1826
+ responseKind: "json"
1827
+ },
1828
+ opsListOccurrenceAttendees: {
1829
+ path: "/ops/sites/{siteId}/events/{occurrenceId}/attendees",
1830
+ method: "GET",
1831
+ auth: "user",
1832
+ responseKind: "json"
1833
+ },
1834
+ opsValidateEventTicket: {
1835
+ path: "/ops/sites/{siteId}/events/tickets/validate",
1836
+ method: "POST",
1837
+ auth: "user",
1728
1838
  responseKind: "json",
1839
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1729
1840
  errors: [
1730
1841
  "validation:invalid_input",
1842
+ "auth:forbidden",
1731
1843
  "resource:not_found",
1732
- "resource:conflict",
1733
1844
  "server:internal_error"
1734
1845
  ]
1735
1846
  },
1736
- deleteCourseProgram: {
1737
- path: "/sites/{siteId}/bookings/courses/programs/{programId}",
1738
- method: "DELETE",
1847
+ opsUpdateEventAttendeeCheckin: {
1848
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/checkin",
1849
+ method: "POST",
1739
1850
  auth: "user",
1740
1851
  responseKind: "json",
1852
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1741
1853
  errors: [
1742
1854
  "validation:invalid_input",
1855
+ "auth:forbidden",
1743
1856
  "resource:not_found",
1744
- "resource:conflict",
1745
1857
  "server:internal_error"
1746
1858
  ]
1747
1859
  },
1748
- duplicateCourse: {
1749
- path: "/sites/{siteId}/bookings/courses/{courseId}/duplicate",
1860
+ opsGetEventAttendeeDetails: {
1861
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}",
1862
+ method: "GET",
1863
+ auth: "user",
1864
+ responseKind: "json"
1865
+ },
1866
+ opsCancelEventAttendee: {
1867
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/cancel",
1750
1868
  method: "POST",
1751
1869
  auth: "user",
1752
1870
  responseKind: "json",
1871
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1753
1872
  errors: [
1754
1873
  "validation:invalid_input",
1874
+ "auth:forbidden",
1755
1875
  "resource:not_found",
1756
- "resource:already_exists",
1876
+ "resource:conflict",
1757
1877
  "server:internal_error"
1758
1878
  ]
1759
1879
  },
1760
- changeCourseContentOwnership: {
1761
- path: "/sites/{siteId}/bookings/courses/{courseId}/content-ownership",
1880
+ getEventAttendeeDetails: {
1881
+ path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}",
1882
+ method: "GET",
1883
+ auth: "user",
1884
+ responseKind: "json",
1885
+ errors: []
1886
+ },
1887
+ cancelEventAttendee: {
1888
+ path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}/cancel",
1762
1889
  method: "POST",
1763
1890
  auth: "user",
1764
1891
  responseKind: "json",
1765
1892
  errors: [
1766
1893
  "validation:invalid_input",
1894
+ "auth:forbidden",
1767
1895
  "resource:not_found",
1768
1896
  "resource:conflict",
1769
1897
  "server:internal_error"
1770
1898
  ]
1771
1899
  },
1772
- addCourseEnrollment: {
1773
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
1900
+ opsRefundEventAttendee: {
1901
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/refund",
1774
1902
  method: "POST",
1775
1903
  auth: "user",
1776
1904
  responseKind: "json",
1905
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1777
1906
  errors: [
1778
1907
  "validation:invalid_input",
1908
+ "auth:forbidden",
1779
1909
  "resource:not_found",
1780
1910
  "resource:conflict",
1781
1911
  "server:internal_error"
1782
1912
  ]
1783
1913
  },
1784
- listCourseEnrollments: {
1785
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
1914
+ getEmailSettings: {
1915
+ path: "/sites/{siteId}/settings/emails",
1786
1916
  method: "GET",
1917
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1787
1918
  auth: "user",
1788
1919
  responseKind: "json"
1789
1920
  },
1790
- exportCourseEnrollmentsCsv: {
1791
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/export.csv",
1792
- method: "GET",
1921
+ updateEmailSettings: {
1922
+ path: "/sites/{siteId}/settings/emails",
1923
+ method: "PUT",
1924
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1793
1925
  auth: "user",
1794
- errors: [],
1795
- responseKind: "blob"
1926
+ responseKind: "json"
1796
1927
  },
1797
- listCourseWaitlist: {
1798
- path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist",
1799
- method: "GET",
1928
+ sendTestEmail: {
1929
+ path: "/sites/{siteId}/settings/emails/test",
1930
+ method: "POST",
1931
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1800
1932
  auth: "user",
1801
1933
  responseKind: "json",
1802
- errors: []
1803
- },
1804
- exportCourseWaitlistCsv: {
1805
- path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist/export.csv",
1806
- method: "GET",
1807
- tags: [
1808
- "site-{siteId}",
1809
- "bookings",
1810
- "courses-{courseId}"
1811
- ],
1812
- auth: "user",
1813
- responseKind: "blob",
1814
- errors: []
1934
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1815
1935
  },
1816
- updateCourseEnrollment: {
1817
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
1818
- method: "PATCH",
1936
+ previewEmailTemplate: {
1937
+ path: "/sites/{siteId}/settings/emails/preview",
1938
+ method: "POST",
1939
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1819
1940
  auth: "user",
1820
- responseKind: "json",
1821
- errors: [
1822
- "validation:invalid_input",
1823
- "resource:not_found",
1824
- "server:internal_error"
1825
- ]
1941
+ responseKind: "json"
1826
1942
  },
1943
+ ...NEWSLETTER_ENDPOINT_DEFINITIONS,
1944
+ ...APPOINTMENT_ENDPOINT_DEFINITIONS,
1945
+ ...COURSE_ENDPOINT_DEFINITIONS,
1827
1946
  getSite: {
1828
1947
  path: "/sites",
1829
1948
  method: "GET",
@@ -2165,7 +2284,13 @@ const API_ENDPOINTS = {
2165
2284
  method: "POST",
2166
2285
  tags: ["site-{siteId}", "content-{siteId}-{type}"],
2167
2286
  auth: "user",
2168
- responseKind: "json"
2287
+ responseKind: "json",
2288
+ errors: [
2289
+ "validation:invalid_input",
2290
+ "resource:not_found",
2291
+ "resource:conflict",
2292
+ "server:internal_error"
2293
+ ]
2169
2294
  },
2170
2295
  getContentEntry: {
2171
2296
  path: "/sites/{siteId}/content/{type}/{entryId}",
@@ -2176,12 +2301,22 @@ const API_ENDPOINTS = {
2176
2301
  "content-entry-{entryId}"
2177
2302
  ],
2178
2303
  auth: "user",
2179
- responseKind: "json"
2304
+ responseKind: "json",
2305
+ errors: [
2306
+ "validation:invalid_input",
2307
+ "resource:not_found",
2308
+ "resource:conflict",
2309
+ "server:internal_error"
2310
+ ]
2180
2311
  },
2181
2312
  listContentEntryVersions: {
2182
2313
  path: "/sites/{siteId}/content/{type}/{entryId}/versions",
2183
2314
  method: "GET",
2184
- errors: ["validation:invalid_input", "resource:not_found"],
2315
+ errors: [
2316
+ "validation:invalid_input",
2317
+ "resource:not_found",
2318
+ "resource:conflict"
2319
+ ],
2185
2320
  tags: [
2186
2321
  "site-{siteId}",
2187
2322
  "content-{siteId}-{type}",
@@ -2193,7 +2328,11 @@ const API_ENDPOINTS = {
2193
2328
  getContentEntryVersion: {
2194
2329
  path: "/sites/{siteId}/content/{type}/{entryId}/versions/{versionId}",
2195
2330
  method: "GET",
2196
- errors: ["validation:invalid_input", "resource:not_found"],
2331
+ errors: [
2332
+ "validation:invalid_input",
2333
+ "resource:not_found",
2334
+ "resource:conflict"
2335
+ ],
2197
2336
  tags: [
2198
2337
  "site-{siteId}",
2199
2338
  "content-{siteId}-{type}",
@@ -2228,6 +2367,12 @@ const API_ENDPOINTS = {
2228
2367
  "content-entry-{entryId}"
2229
2368
  ],
2230
2369
  auth: "user",
2370
+ errors: [
2371
+ "validation:invalid_input",
2372
+ "resource:not_found",
2373
+ "resource:conflict",
2374
+ "server:internal_error"
2375
+ ],
2231
2376
  responseKind: "json"
2232
2377
  },
2233
2378
  updatePageSurfaceDraftContent: {
@@ -2297,6 +2442,7 @@ const API_ENDPOINTS = {
2297
2442
  errors: [
2298
2443
  "validation:invalid_input",
2299
2444
  "resource:not_found",
2445
+ "resource:conflict",
2300
2446
  "server:internal_error"
2301
2447
  ],
2302
2448
  tags: [
@@ -2313,6 +2459,7 @@ const API_ENDPOINTS = {
2313
2459
  errors: [
2314
2460
  "validation:invalid_input",
2315
2461
  "resource:not_found",
2462
+ "resource:conflict",
2316
2463
  "server:internal_error"
2317
2464
  ],
2318
2465
  tags: [
@@ -2333,6 +2480,12 @@ const API_ENDPOINTS = {
2333
2480
  TAG_TEMPLATES.routeById
2334
2481
  ],
2335
2482
  auth: "user",
2483
+ errors: [
2484
+ "validation:invalid_input",
2485
+ "resource:not_found",
2486
+ "resource:conflict",
2487
+ "server:internal_error"
2488
+ ],
2336
2489
  responseKind: "json"
2337
2490
  },
2338
2491
  publishContentEntry: {
@@ -2389,6 +2542,13 @@ const API_ENDPOINTS = {
2389
2542
  "content-entry-{entryId}"
2390
2543
  ],
2391
2544
  auth: "user",
2545
+ errors: [
2546
+ "auth:forbidden",
2547
+ "validation:invalid_input",
2548
+ "resource:not_found",
2549
+ "resource:conflict",
2550
+ "server:internal_error"
2551
+ ],
2392
2552
  responseKind: "json"
2393
2553
  },
2394
2554
  unpublishContentEntry: {
@@ -2441,7 +2601,13 @@ const API_ENDPOINTS = {
2441
2601
  "content-entry-{entryId}"
2442
2602
  ],
2443
2603
  auth: "user",
2444
- responseKind: "json"
2604
+ responseKind: "json",
2605
+ errors: [
2606
+ "validation:invalid_input",
2607
+ "resource:not_found",
2608
+ "resource:conflict",
2609
+ "server:internal_error"
2610
+ ]
2445
2611
  },
2446
2612
  bulkPublishContentEntries: {
2447
2613
  path: "/sites/{siteId}/content/{type}/bulk-publish",
@@ -2463,6 +2629,12 @@ const API_ENDPOINTS = {
2463
2629
  tags: ["site-{siteId}", "content-{siteId}-{type}"],
2464
2630
  auth: "user",
2465
2631
  responseKind: "json",
2632
+ errors: [
2633
+ "validation:invalid_input",
2634
+ "resource:not_found",
2635
+ "resource:conflict",
2636
+ "server:internal_error"
2637
+ ],
2466
2638
  demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
2467
2639
  },
2468
2640
  updateSiteGeneralSettings: {
@@ -3733,7 +3905,7 @@ const API_ENDPOINTS = {
3733
3905
  ],
3734
3906
  auth: "user",
3735
3907
  responseKind: "json",
3736
- errors: ["resource:not_found"]
3908
+ errors: ["resource:not_found", "resource:conflict"]
3737
3909
  },
3738
3910
  listEntryPageContentSlots: {
3739
3911
  path: "/sites/{siteId}/content/{type}/{entryId}/slots",
@@ -3746,7 +3918,7 @@ const API_ENDPOINTS = {
3746
3918
  ],
3747
3919
  auth: "user",
3748
3920
  responseKind: "json",
3749
- errors: ["resource:not_found"]
3921
+ errors: ["resource:not_found", "resource:conflict"]
3750
3922
  },
3751
3923
  createEntrySlotBlock: {
3752
3924
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks",
@@ -3759,7 +3931,11 @@ const API_ENDPOINTS = {
3759
3931
  ],
3760
3932
  auth: "user",
3761
3933
  responseKind: "json",
3762
- errors: ["validation:invalid_input", "resource:not_found"]
3934
+ errors: [
3935
+ "validation:invalid_input",
3936
+ "resource:not_found",
3937
+ "resource:conflict"
3938
+ ]
3763
3939
  },
3764
3940
  reorderEntrySlotBlocks: {
3765
3941
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/reorder",
@@ -3772,7 +3948,11 @@ const API_ENDPOINTS = {
3772
3948
  ],
3773
3949
  auth: "user",
3774
3950
  responseKind: "json",
3775
- errors: ["validation:invalid_input", "resource:not_found"]
3951
+ errors: [
3952
+ "validation:invalid_input",
3953
+ "resource:not_found",
3954
+ "resource:conflict"
3955
+ ]
3776
3956
  },
3777
3957
  deleteEntrySlotBlock: {
3778
3958
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/{blockId}",
@@ -3785,7 +3965,7 @@ const API_ENDPOINTS = {
3785
3965
  ],
3786
3966
  auth: "user",
3787
3967
  responseKind: "json",
3788
- errors: ["resource:not_found"]
3968
+ errors: ["resource:not_found", "resource:conflict"]
3789
3969
  },
3790
3970
  listPageSurfaceContentSlots: {
3791
3971
  path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/slots",
@@ -4463,14 +4643,7 @@ const API_ENDPOINTS = {
4463
4643
  auth: "public",
4464
4644
  responseKind: "json"
4465
4645
  },
4466
- listPublicCourses: {
4467
- path: "/public/sites/{siteId}/courses",
4468
- method: "GET",
4469
- revalidate: 60,
4470
- tags: [TAG_TEMPLATES.publicCourses],
4471
- auth: "public",
4472
- responseKind: "json"
4473
- },
4646
+ ...PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS,
4474
4647
  listPublicTeamMembers: {
4475
4648
  path: "/public/sites/{siteId}/team-members",
4476
4649
  method: "GET",
@@ -4480,33 +4653,11 @@ const API_ENDPOINTS = {
4480
4653
  auth: "public",
4481
4654
  responseKind: "json"
4482
4655
  },
4483
- getPublicCourse: {
4484
- path: "/public/sites/{siteId}/courses/{courseId}",
4485
- method: "GET",
4486
- revalidate: 60,
4487
- tags: [TAG_TEMPLATES.publicCourses],
4488
- auth: "public",
4489
- responseKind: "json"
4490
- },
4491
- enrollInCourse: {
4492
- path: "/public/sites/{siteId}/courses/enroll",
4493
- method: "POST",
4494
- tags: [TAG_TEMPLATES.publicCourses, "course-enrollment"],
4495
- auth: "public",
4496
- responseKind: "json"
4497
- },
4498
- checkCourseEligibility: {
4499
- path: "/public/sites/{siteId}/courses/check-eligibility",
4500
- method: "POST",
4501
- tags: [TAG_TEMPLATES.publicCourses, "course-enrollment"],
4502
- auth: "public",
4503
- responseKind: "json"
4504
- },
4505
4656
  resolveWaitlistClaim: {
4506
4657
  path: "/public/sites/{siteId}/waitlists/claim/resolve",
4507
4658
  method: "POST",
4508
4659
  tags: [
4509
- TAG_TEMPLATES.publicCourses,
4660
+ TAG_TEMPLATES.publicWholeSeriesOfferings,
4510
4661
  TAG_TEMPLATES.publicEvents,
4511
4662
  "waitlist-claims"
4512
4663
  ],
@@ -4519,27 +4670,6 @@ const API_ENDPOINTS = {
4519
4670
  "server:internal_error"
4520
4671
  ]
4521
4672
  },
4522
- createCourseCheckout: {
4523
- path: "/public/sites/{siteId}/courses/checkout",
4524
- method: "POST",
4525
- tags: [TAG_TEMPLATES.publicCourses, "course-checkout"],
4526
- auth: "public",
4527
- responseKind: "json",
4528
- errors: [
4529
- "auth:unauthenticated",
4530
- "validation:invalid_input",
4531
- "resource:not_found",
4532
- "resource:conflict",
4533
- "server:internal_error"
4534
- ]
4535
- },
4536
- getCourseRegistrationStatus: {
4537
- path: "/public/sites/{siteId}/courses/registration-status",
4538
- method: "GET",
4539
- tags: [TAG_TEMPLATES.publicCourses, "course-checkout"],
4540
- auth: "public",
4541
- responseKind: "json"
4542
- },
4543
4673
  listPublicPasses: {
4544
4674
  path: "/public/sites/{siteId}/bookings/products/passes",
4545
4675
  method: "GET",
@@ -4640,14 +4770,6 @@ const API_ENDPOINTS = {
4640
4770
  responseKind: "json",
4641
4771
  errors: []
4642
4772
  },
4643
- resolveEntrySubroute: {
4644
- path: "/public/sites/{siteId}/routing/subroutes/resolve",
4645
- method: "GET",
4646
- revalidate: 60,
4647
- tags: ["site-{siteId}", "entry-subroute"],
4648
- auth: "public",
4649
- responseKind: "json"
4650
- },
4651
4773
  resolveEventOccurrence: {
4652
4774
  path: "/public/sites/{siteId}/events/occurrences/resolve",
4653
4775
  method: "GET",
@@ -4991,13 +5113,6 @@ const API_ENDPOINTS = {
4991
5113
  auth: "user",
4992
5114
  responseKind: "json"
4993
5115
  },
4994
- getEventSeriesContentEditor: {
4995
- path: "/sites/{siteId}/bookings/event-series/{seriesId}/content-editor",
4996
- method: "GET",
4997
- tags: ["site-{siteId}", "event-series-{seriesId}"],
4998
- auth: "user",
4999
- responseKind: "json"
5000
- },
5001
5116
  updateEventSeries: {
5002
5117
  path: "/sites/{siteId}/bookings/event-series/{seriesId}",
5003
5118
  method: "PATCH",
@@ -6336,6 +6451,7 @@ const API_ENDPOINTS = {
6336
6451
  errors: [
6337
6452
  "validation:invalid_input",
6338
6453
  "resource:not_found",
6454
+ "resource:conflict",
6339
6455
  "server:internal_error"
6340
6456
  ],
6341
6457
  auth: "service",
@@ -6449,24 +6565,12 @@ const API_ENDPOINTS = {
6449
6565
  auth: "service",
6450
6566
  responseKind: "json"
6451
6567
  },
6452
- sdkPullCourses: {
6453
- path: "/sdk/{siteId}/pull/courses",
6454
- method: "GET",
6455
- auth: "service",
6456
- responseKind: "json"
6457
- },
6458
6568
  sdkPullEntries: {
6459
6569
  path: "/sdk/{siteId}/pull/entries",
6460
6570
  method: "GET",
6461
6571
  auth: "service",
6462
6572
  responseKind: "json"
6463
6573
  },
6464
- sdkPullEntriesByType: {
6465
- path: "/sdk/{siteId}/pull/entries/{type}",
6466
- method: "GET",
6467
- auth: "service",
6468
- responseKind: "json"
6469
- },
6470
6574
  sdkPullEntriesAll: {
6471
6575
  path: "/sdk/{siteId}/pull/entries/all",
6472
6576
  method: "GET",
@@ -6732,48 +6836,13 @@ const API_ENDPOINTS = {
6732
6836
  "server:internal_error"
6733
6837
  ]
6734
6838
  },
6735
- sdkListCourses: {
6736
- path: "/sdk/{siteId}/courses",
6737
- method: "GET",
6738
- auth: "service",
6739
- responseKind: "json"
6740
- },
6741
- sdkUpsertCourse: {
6742
- path: "/sdk/{siteId}/courses",
6743
- method: "POST",
6744
- auth: "service",
6745
- responseKind: "json"
6746
- },
6747
- sdkGetCourse: {
6748
- path: "/sdk/{siteId}/courses/{identifier}",
6749
- method: "GET",
6750
- auth: "service",
6751
- responseKind: "json"
6752
- },
6753
- sdkDeleteCourse: {
6754
- path: "/sdk/{siteId}/courses/{identifier}",
6755
- method: "DELETE",
6756
- auth: "service",
6757
- responseKind: "json"
6758
- },
6759
6839
  sdkUpsertEntry: {
6760
6840
  path: "/sdk/{siteId}/entries",
6761
6841
  method: "POST",
6762
6842
  auth: "service",
6763
6843
  responseKind: "json"
6764
6844
  },
6765
- sdkListEntries: {
6766
- path: "/sdk/{siteId}/entries/{contentType}",
6767
- method: "GET",
6768
- auth: "service",
6769
- responseKind: "json"
6770
- },
6771
- sdkGetEntry: {
6772
- path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
6773
- method: "GET",
6774
- auth: "service",
6775
- responseKind: "json"
6776
- },
6845
+ ...SDK_ENTRY_READ_ENDPOINTS,
6777
6846
  sdkDeleteEntry: {
6778
6847
  path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
6779
6848
  method: "DELETE",
@@ -6998,21 +7067,22 @@ const API_ENDPOINTS = {
6998
7067
  "server:internal_error"
6999
7068
  ]
7000
7069
  },
7001
- portalGetCourses: {
7002
- path: "/portal/courses",
7070
+ portalGetWholeSeriesRegistrations: {
7071
+ path: "/portal/dated-offerings/whole-series",
7003
7072
  method: "GET",
7004
7073
  auth: "public",
7005
- responseKind: "json"
7074
+ responseKind: "json",
7075
+ errors: ["server:internal_error"]
7006
7076
  },
7007
- portalGetCourseBookingQuestions: {
7008
- path: "/portal/courses/{enrollmentId}/booking-questions",
7077
+ portalGetWholeSeriesBookingQuestions: {
7078
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions",
7009
7079
  method: "GET",
7010
7080
  auth: "public",
7011
7081
  responseKind: "json",
7012
7082
  errors: ["resource:not_found", "server:internal_error"]
7013
7083
  },
7014
- portalUpdateCourseBookingQuestions: {
7015
- path: "/portal/courses/{enrollmentId}/booking-questions",
7084
+ portalUpdateWholeSeriesBookingQuestions: {
7085
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions",
7016
7086
  method: "PUT",
7017
7087
  auth: "public",
7018
7088
  responseKind: "json",
@@ -7022,8 +7092,8 @@ const API_ENDPOINTS = {
7022
7092
  "server:internal_error"
7023
7093
  ]
7024
7094
  },
7025
- portalCreateCourseBookingQuestionsUploadUrl: {
7026
- path: "/portal/courses/{enrollmentId}/booking-questions/upload-url",
7095
+ portalCreateWholeSeriesBookingQuestionsUploadUrl: {
7096
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions/upload-url",
7027
7097
  method: "POST",
7028
7098
  auth: "public",
7029
7099
  responseKind: "json",
@@ -7033,8 +7103,8 @@ const API_ENDPOINTS = {
7033
7103
  "server:internal_error"
7034
7104
  ]
7035
7105
  },
7036
- portalFinalizeCourseBookingQuestionsUpload: {
7037
- path: "/portal/courses/{enrollmentId}/booking-questions/upload",
7106
+ portalFinalizeWholeSeriesBookingQuestionsUpload: {
7107
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions/upload",
7038
7108
  method: "POST",
7039
7109
  auth: "public",
7040
7110
  responseKind: "json",
@@ -7044,11 +7114,12 @@ const API_ENDPOINTS = {
7044
7114
  "server:internal_error"
7045
7115
  ]
7046
7116
  },
7047
- portalCancelCourseEnrollment: {
7048
- path: "/portal/courses/{enrollmentId}/cancel",
7117
+ portalCancelWholeSeriesRegistration: {
7118
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/cancel",
7049
7119
  method: "POST",
7050
7120
  auth: "public",
7051
- responseKind: "json"
7121
+ responseKind: "json",
7122
+ errors: ["resource:not_found", "server:internal_error"]
7052
7123
  },
7053
7124
  portalCancelEventRegistration: {
7054
7125
  path: "/portal/events/{registrationId}/cancel",