@riverbankcms/sdk 0.121.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-lZ600tJx.mjs → PreviewEditorSidebar-DBmAJJkQ.mjs} +24 -41
  3. package/dist/{PreviewEditorUI-CTBWzLSb.mjs → PreviewEditorUI-CfGaz9cY.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BHT8CJvZ.mjs → PreviewQueryProvider-BH-3-jSj.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-DhPU58s7.mjs → SdkPreviewModeRuntime-BW9Z8j8T.mjs} +1020 -1234
  6. package/dist/{SiteChromeCustomizeContext-BkNvpzNZ.mjs → SiteChromeCustomizeContext-2z8moxYf.mjs} +1902 -1961
  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 +100 -75
  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 +10 -12
  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 +6 -7
  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 +1587 -115
  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 +7392 -10989
  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 +7398 -7687
  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 -1043
  237. package/dist/preview-next/client/runtime.mjs +4 -4
  238. package/dist/preview-next/middleware.mjs +1116 -1044
  239. package/dist/{previewAuthStore-31xH13Jc.mjs → previewAuthStore-CJX21dGi.mjs} +1119 -1044
  240. package/dist/{sdk-runtime-BE_vcGua.mjs → sdk-runtime-OnPM8Z69.mjs} +2 -2
  241. package/dist/{separator-CiffYtk3.mjs → separator-CPtfzHqA.mjs} +1 -1
  242. package/dist/server/components.mjs +11120 -12601
  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 +1499 -1488
  247. package/dist/server/next.mjs +18291 -21201
  248. package/dist/server/page-converter.mjs +1898 -2040
  249. package/dist/server/prebuild.mjs +1 -1
  250. package/dist/server/rendering/server.mjs +19666 -21153
  251. package/dist/server/rendering.mjs +17117 -18651
  252. package/dist/server/routing.mjs +3614 -2509
  253. package/dist/server/server.mjs +3298 -3478
  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,627 +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"
254
- },
255
- createPublicOnboardingLogoUploadUrl: {
256
- path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
257
- method: "POST",
258
- auth: "public",
259
- errors: [],
260
- responseKind: "json"
261
- },
262
- uploadPublicOnboardingLogo: {
263
- path: "/public/onboarding/attempts/{attemptToken}/logo",
264
- method: "POST",
265
- auth: "public",
266
- errors: [],
267
- responseKind: "json"
268
- },
269
- getPublicOnboardingAttempt: {
270
- path: "/public/onboarding/attempts/{attemptToken}",
271
- method: "GET",
272
- auth: "public",
273
- errors: [],
274
- 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
+ ]
275
297
  },
276
- getPublicOnboardingAttemptProgress: {
277
- path: "/public/onboarding/attempts/{attemptToken}/status",
278
- method: "GET",
279
- auth: "public",
280
- errors: [],
281
- responseKind: "json"
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"]
282
304
  },
283
- updatePublicOnboardingAttempt: {
284
- path: "/public/onboarding/attempts/{attemptToken}",
285
- method: "PATCH",
286
- auth: "public",
287
- errors: [],
288
- responseKind: "json"
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
+ ]
289
321
  },
290
- runPublicOnboardingAttempt: {
291
- path: "/public/onboarding/attempts/{attemptToken}/run",
322
+ publishTeamMemberProfile: {
323
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
292
324
  method: "POST",
293
- auth: "public",
294
- errors: [],
295
- 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
+ ]
296
337
  },
297
- aiSiteWizardSuggestGoals: {
298
- path: "/sites/{siteId}/ai/site-wizard/goals",
338
+ discardTeamMemberProfileDraft: {
339
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
299
340
  method: "POST",
341
+ tags: [
342
+ "site-{siteId}",
343
+ "content-{siteId}-team-member",
344
+ "content-entry-{entryId}"
345
+ ],
300
346
  auth: "user",
301
347
  responseKind: "json",
302
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
348
+ errors: [
349
+ "validation:invalid_input",
350
+ "resource:not_found",
351
+ "resource:conflict",
352
+ "server:internal_error"
353
+ ]
303
354
  },
304
- aiSiteWizardIntakeTriage: {
305
- path: "/sites/{siteId}/ai/site-wizard/intake-triage",
355
+ unpublishTeamMemberProfile: {
356
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/unpublish",
306
357
  method: "POST",
358
+ tags: [
359
+ "site-{siteId}",
360
+ "content-{siteId}-team-member",
361
+ "content-entry-{entryId}"
362
+ ],
307
363
  auth: "user",
308
364
  responseKind: "json",
309
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
365
+ errors: [
366
+ "validation:invalid_input",
367
+ "resource:not_found",
368
+ "resource:conflict",
369
+ "server:internal_error"
370
+ ]
310
371
  },
311
- aiSiteWizardTelemetry: {
312
- path: "/sites/{siteId}/ai/site-wizard/telemetry",
372
+ scheduleTeamMemberProfile: {
373
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
313
374
  method: "POST",
375
+ tags: [
376
+ "site-{siteId}",
377
+ "content-{siteId}-team-member",
378
+ "content-entry-{entryId}"
379
+ ],
314
380
  auth: "user",
315
- errors: [],
316
381
  responseKind: "json",
317
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
382
+ errors: [
383
+ "validation:invalid_input",
384
+ "resource:not_found",
385
+ "resource:conflict",
386
+ "server:internal_error"
387
+ ]
318
388
  },
319
- listGscPropertiesAdmin: {
320
- path: "/admin/seo/gsc/properties",
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",
321
425
  method: "GET",
322
- auth: "admin",
323
- errors: [],
426
+ auth: "user",
324
427
  responseKind: "json"
325
428
  },
326
- getPublicChallenge: {
327
- path: "/public/challenge",
429
+ exportAppointmentServicesCsv: {
430
+ path: "/sites/{siteId}/bookings/services/export.csv",
328
431
  method: "GET",
329
- auth: "public",
432
+ tags: [
433
+ "site-{siteId}",
434
+ "bookings",
435
+ "appointment-services-{siteId}"
436
+ ],
330
437
  errors: [],
331
- responseKind: "text"
438
+ auth: "user",
439
+ responseKind: "blob"
332
440
  },
333
- checkRedirect: {
334
- path: "/public/content/redirect",
441
+ createAppointmentService: {
442
+ path: "/sites/{siteId}/bookings/services",
443
+ method: "POST",
444
+ auth: "user",
445
+ responseKind: "json",
446
+ errors: ["validation:invalid_input", "server:internal_error"]
447
+ },
448
+ getAppointmentService: {
449
+ path: "/sites/{siteId}/bookings/services/{serviceId}",
335
450
  method: "GET",
336
- revalidate: 86400,
337
- tags: ["redirect"],
338
- errors: [],
339
- auth: "public",
451
+ auth: "user",
340
452
  responseKind: "json"
341
453
  },
342
- listRedirectRules: {
343
- path: "/sites/{siteId}/redirects",
454
+ updateAppointmentService: {
455
+ path: "/sites/{siteId}/bookings/services/{serviceId}",
456
+ method: "PUT",
457
+ auth: "user",
458
+ responseKind: "json",
459
+ errors: [
460
+ "validation:invalid_input",
461
+ "resource:not_found",
462
+ "server:internal_error"
463
+ ]
464
+ },
465
+ deleteAppointmentService: {
466
+ path: "/sites/{siteId}/bookings/services/{serviceId}",
467
+ method: "DELETE",
468
+ auth: "user",
469
+ responseKind: "json",
470
+ errors: ["resource:not_found", "server:internal_error"]
471
+ },
472
+ getAppointmentSetup: {
473
+ path: "/sites/{siteId}/bookings/appointment-setup",
344
474
  method: "GET",
345
475
  auth: "user",
346
- responseKind: "json"
476
+ responseKind: "json",
477
+ errors: ["server:internal_error"]
347
478
  },
348
- createRedirectRule: {
349
- path: "/sites/{siteId}/redirects",
479
+ applyAppointmentSetup: {
480
+ path: "/sites/{siteId}/bookings/appointment-setup",
350
481
  method: "POST",
351
- errors: ["validation:invalid_input", "resource:not_found"],
482
+ auth: "user",
483
+ responseKind: "json",
484
+ errors: ["validation:invalid_input", "server:internal_error"]
485
+ },
486
+ getAppointmentServicesReference: {
487
+ path: "/sites/{siteId}/bookings/services/reference",
488
+ method: "GET",
352
489
  auth: "user",
353
490
  responseKind: "json"
354
491
  },
355
- deleteRedirectRule: {
356
- path: "/sites/{siteId}/redirects/{ruleId}",
357
- method: "DELETE",
358
- errors: ["resource:not_found"],
492
+ getAppointmentResourcesReference: {
493
+ path: "/sites/{siteId}/bookings/resources/reference",
494
+ method: "GET",
359
495
  auth: "user",
360
496
  responseKind: "json"
361
497
  },
362
- listWebhooks: {
363
- path: "/sites/{siteId}/webhooks",
498
+ getResourceServices: {
499
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
364
500
  method: "GET",
365
- tags: ["site-{siteId}", "webhooks"],
366
501
  auth: "user",
367
502
  responseKind: "json"
368
503
  },
369
- createWebhook: {
370
- path: "/sites/{siteId}/webhooks",
371
- method: "POST",
372
- tags: ["site-{siteId}", "webhooks"],
504
+ updateResourceServices: {
505
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
506
+ method: "PUT",
373
507
  auth: "user",
374
508
  responseKind: "json"
375
509
  },
376
- getWebhook: {
377
- path: "/sites/{siteId}/webhooks/{webhookId}",
510
+ getServiceResources: {
511
+ path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
378
512
  method: "GET",
379
- tags: ["site-{siteId}", "webhooks"],
380
513
  auth: "user",
381
514
  responseKind: "json"
382
515
  },
383
- updateWebhook: {
384
- path: "/sites/{siteId}/webhooks/{webhookId}",
385
- method: "PATCH",
386
- tags: ["site-{siteId}", "webhooks"],
516
+ updateServiceResources: {
517
+ path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
518
+ method: "PUT",
387
519
  auth: "user",
388
520
  responseKind: "json"
389
521
  },
390
- deleteWebhook: {
391
- path: "/sites/{siteId}/webhooks/{webhookId}",
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}",
392
553
  method: "DELETE",
393
- tags: ["site-{siteId}", "webhooks"],
394
554
  auth: "user",
395
- responseKind: "json"
555
+ responseKind: "json",
556
+ errors: ["resource:not_found", "server:internal_error"]
396
557
  },
397
- getSdkDeploymentHealth: {
398
- path: "/sites/{siteId}/sdk-deployment/health",
558
+ listBlackouts: {
559
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
399
560
  method: "GET",
400
- tags: ["site-{siteId}", "webhooks"],
401
561
  auth: "user",
402
- errors: [],
403
- responseKind: "json"
562
+ responseKind: "json",
563
+ errors: ["resource:not_found", "server:internal_error"]
404
564
  },
405
- setupSdkDeploymentRevalidationWebhook: {
406
- path: "/sites/{siteId}/sdk-deployment/revalidation-webhook",
565
+ createBlackout: {
566
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
407
567
  method: "POST",
408
- tags: ["site-{siteId}", "webhooks"],
409
568
  auth: "user",
410
- errors: ["validation:invalid_input", "resource:conflict"],
411
569
  responseKind: "json",
412
- demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
570
+ errors: [
571
+ "validation:invalid_input",
572
+ "resource:not_found",
573
+ "server:internal_error"
574
+ ]
413
575
  },
414
- listSiteApiKeys: {
415
- path: "/sites/{siteId}/api-keys",
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",
416
585
  method: "GET",
417
586
  auth: "user",
418
- tags: ["site-{siteId}", "api-keys"],
419
- responseKind: "json"
587
+ responseKind: "json",
588
+ errors: ["auth:forbidden", "server:internal_error"]
420
589
  },
421
- createSiteApiKey: {
422
- path: "/sites/{siteId}/api-keys",
590
+ updateCalendarPreferences: {
591
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
592
+ method: "PUT",
593
+ auth: "user",
594
+ responseKind: "json",
595
+ errors: [
596
+ "validation:invalid_input",
597
+ "auth:forbidden",
598
+ "resource:not_found",
599
+ "server:internal_error"
600
+ ]
601
+ },
602
+ disconnectCalendar: {
603
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
604
+ method: "DELETE",
605
+ auth: "user",
606
+ responseKind: "json",
607
+ errors: [
608
+ "auth:forbidden",
609
+ "resource:not_found",
610
+ "server:internal_error"
611
+ ]
612
+ },
613
+ getResourceCalendarFeed: {
614
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
615
+ method: "GET",
616
+ auth: "user",
617
+ responseKind: "json",
618
+ errors: [
619
+ "auth:forbidden",
620
+ "resource:not_found",
621
+ "server:internal_error"
622
+ ]
623
+ },
624
+ regenerateResourceCalendarFeed: {
625
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
423
626
  method: "POST",
424
627
  auth: "user",
425
- tags: ["site-{siteId}", "api-keys"],
426
- responseKind: "json"
628
+ responseKind: "json",
629
+ errors: [
630
+ "auth:forbidden",
631
+ "resource:not_found",
632
+ "server:internal_error"
633
+ ]
427
634
  },
428
- revokeSiteApiKey: {
429
- path: "/sites/{siteId}/api-keys/{keyId}",
635
+ revokeResourceCalendarFeed: {
636
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
430
637
  method: "DELETE",
431
638
  auth: "user",
432
- tags: ["site-{siteId}", "api-keys"],
433
- responseKind: "json"
639
+ responseKind: "json",
640
+ errors: [
641
+ "auth:forbidden",
642
+ "resource:not_found",
643
+ "server:internal_error"
644
+ ]
434
645
  },
435
- getSitePreviewKey: {
436
- path: "/sites/{siteId}/api-keys/preview",
646
+ getVenueCalendarFeed: {
647
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
437
648
  method: "GET",
438
649
  auth: "user",
439
- tags: [
440
- "site-{siteId}",
441
- "api-keys",
442
- "preview-key"
443
- ],
444
- responseKind: "json"
650
+ responseKind: "json",
651
+ errors: [
652
+ "auth:forbidden",
653
+ "resource:not_found",
654
+ "server:internal_error"
655
+ ]
445
656
  },
446
- createSitePreviewKey: {
447
- path: "/sites/{siteId}/api-keys/preview",
657
+ regenerateVenueCalendarFeed: {
658
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
448
659
  method: "POST",
449
660
  auth: "user",
450
- tags: [
451
- "site-{siteId}",
452
- "api-keys",
453
- "preview-key"
454
- ],
455
- responseKind: "json"
661
+ responseKind: "json",
662
+ errors: [
663
+ "auth:forbidden",
664
+ "resource:not_found",
665
+ "server:internal_error"
666
+ ]
456
667
  },
457
- getSiteApiKeyAccessLogs: {
458
- path: "/sites/{siteId}/api-keys/access-logs",
668
+ revokeVenueCalendarFeed: {
669
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
670
+ method: "DELETE",
671
+ auth: "user",
672
+ responseKind: "json",
673
+ errors: [
674
+ "auth:forbidden",
675
+ "resource:not_found",
676
+ "server:internal_error"
677
+ ]
678
+ },
679
+ googleCalendarAuthorize: {
680
+ path: "/sites/{siteId}/bookings/calendar/google/authorize",
459
681
  method: "GET",
460
682
  auth: "user",
461
- tags: [
462
- "site-{siteId}",
463
- "api-keys",
464
- "access-logs"
465
- ],
466
- responseKind: "json"
683
+ responseKind: "void"
467
684
  },
468
- listManagementKeys: {
469
- path: "/sites/{siteId}/api-keys/management",
685
+ googleCalendarCallback: {
686
+ path: "/bookings/calendar/google/callback",
470
687
  method: "GET",
471
688
  auth: "user",
472
- tags: [
473
- "site-{siteId}",
474
- "api-keys",
475
- "management-keys"
476
- ],
477
- responseKind: "json"
689
+ responseKind: "void"
478
690
  },
479
- createManagementKey: {
480
- path: "/sites/{siteId}/api-keys/management",
481
- method: "POST",
691
+ getAvailableSlots: {
692
+ path: "/sites/{siteId}/bookings/availability/slots",
693
+ method: "GET",
482
694
  auth: "user",
483
- tags: [
484
- "site-{siteId}",
485
- "api-keys",
486
- "management-keys"
487
- ],
488
695
  responseKind: "json"
489
696
  },
490
- revokeManagementKey: {
491
- path: "/sites/{siteId}/api-keys/management",
492
- method: "DELETE",
697
+ listAppointments: {
698
+ path: "/sites/{siteId}/bookings/appointments",
699
+ method: "GET",
493
700
  auth: "user",
494
- tags: [
495
- "site-{siteId}",
496
- "api-keys",
497
- "management-keys"
498
- ],
499
701
  responseKind: "json"
500
702
  },
501
- getBookingSettings: {
502
- path: "/sites/{siteId}/bookings/settings",
703
+ exportBookingAppointmentsCsv: {
704
+ path: "/sites/{siteId}/bookings/appointments/export.csv",
503
705
  method: "GET",
504
706
  auth: "user",
505
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
707
+ errors: [],
708
+ responseKind: "blob"
709
+ },
710
+ createAppointment: {
711
+ path: "/sites/{siteId}/bookings/appointments",
712
+ method: "POST",
713
+ auth: "user",
506
714
  responseKind: "json"
507
715
  },
508
- updateBookingSettings: {
509
- path: "/sites/{siteId}/bookings/settings",
716
+ upsertBookingRequirementConfig: {
717
+ path: "/sites/{siteId}/bookings/requirements/config",
510
718
  method: "PUT",
511
719
  auth: "user",
512
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
513
720
  responseKind: "json",
514
721
  errors: [
515
722
  "validation:invalid_input",
516
- "auth:forbidden",
723
+ "resource:not_found",
517
724
  "server:internal_error"
518
725
  ]
519
726
  },
520
- listBookingClosures: {
521
- path: "/sites/{siteId}/bookings/closures",
522
- method: "GET",
727
+ cancelAppointment: {
728
+ path: "/sites/{siteId}/bookings/appointments/{appointmentId}/cancel",
729
+ method: "POST",
523
730
  auth: "user",
524
- tags: [
525
- "site-{siteId}",
526
- "bookings",
527
- "closures-{siteId}"
528
- ],
529
- responseKind: "json",
530
- errors: ["auth:forbidden", "server:internal_error"]
731
+ responseKind: "json"
531
732
  },
532
- previewBookingClosure: {
533
- path: "/sites/{siteId}/bookings/closures/preview",
733
+ rescheduleAppointment: {
734
+ path: "/sites/{siteId}/bookings/appointments/{appointmentId}/reschedule",
534
735
  method: "POST",
535
736
  auth: "user",
536
- tags: [
537
- "site-{siteId}",
538
- "bookings",
539
- "closures-{siteId}"
540
- ],
541
737
  responseKind: "json",
542
738
  errors: [
543
739
  "validation:invalid_input",
740
+ "resource:not_found",
544
741
  "auth:forbidden",
742
+ "resource:conflict",
545
743
  "server:internal_error"
546
744
  ]
547
- },
548
- createBookingClosure: {
549
- path: "/sites/{siteId}/bookings/closures",
550
- method: "POST",
745
+ }
746
+ });
747
+ //#endregion
748
+ //#region ../api/src/courseEndpointDefinitions.ts
749
+ const COURSE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
750
+ listCourses: {
751
+ path: "/sites/{siteId}/bookings/courses",
752
+ method: "GET",
551
753
  auth: "user",
754
+ responseKind: "json"
755
+ },
756
+ exportCoursesCsv: {
757
+ path: "/sites/{siteId}/bookings/courses/export.csv",
758
+ method: "GET",
552
759
  tags: [
553
760
  "site-{siteId}",
554
761
  "bookings",
555
- "closures-{siteId}"
762
+ "courses-{siteId}"
556
763
  ],
764
+ errors: [],
765
+ auth: "user",
766
+ responseKind: "blob"
767
+ },
768
+ createCourse: {
769
+ path: "/sites/{siteId}/bookings/courses",
770
+ method: "POST",
771
+ auth: "user",
557
772
  responseKind: "json",
558
773
  errors: [
559
774
  "validation:invalid_input",
775
+ "resource:not_found",
776
+ "resource:already_exists",
560
777
  "resource:conflict",
561
- "auth:forbidden",
562
778
  "server:internal_error"
563
779
  ]
564
780
  },
565
- getBookingClosure: {
566
- path: "/sites/{siteId}/bookings/closures/{closureId}",
567
- method: "GET",
568
- auth: "user",
569
- tags: [
570
- "site-{siteId}",
571
- "bookings",
572
- "closures-{siteId}"
573
- ],
574
- responseKind: "json",
575
- errors: ["resource:not_found", "server:internal_error"]
576
- },
577
- deleteBookingClosure: {
578
- path: "/sites/{siteId}/bookings/closures/{closureId}",
579
- method: "DELETE",
580
- auth: "user",
581
- tags: [
582
- "site-{siteId}",
583
- "bookings",
584
- "closures-{siteId}"
585
- ],
586
- responseKind: "json",
587
- errors: ["resource:not_found", "server:internal_error"]
588
- },
589
- opsListUpcomingEventOccurrences: {
590
- path: "/ops/sites/{siteId}/events",
591
- method: "GET",
592
- auth: "user",
593
- responseKind: "json"
594
- },
595
- opsListOccurrenceAttendees: {
596
- path: "/ops/sites/{siteId}/events/{occurrenceId}/attendees",
781
+ getCourse: {
782
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
597
783
  method: "GET",
598
784
  auth: "user",
599
785
  responseKind: "json"
600
786
  },
601
- opsValidateEventTicket: {
602
- path: "/ops/sites/{siteId}/events/tickets/validate",
603
- method: "POST",
787
+ updateCourse: {
788
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
789
+ method: "PATCH",
604
790
  auth: "user",
605
791
  responseKind: "json",
606
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
607
792
  errors: [
608
793
  "validation:invalid_input",
609
- "auth:forbidden",
610
794
  "resource:not_found",
795
+ "resource:conflict",
611
796
  "server:internal_error"
612
797
  ]
613
798
  },
614
- opsUpdateEventAttendeeCheckin: {
615
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/checkin",
616
- method: "POST",
799
+ deleteCourse: {
800
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
801
+ method: "DELETE",
617
802
  auth: "user",
618
803
  responseKind: "json",
619
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
620
804
  errors: [
621
805
  "validation:invalid_input",
622
- "auth:forbidden",
623
806
  "resource:not_found",
807
+ "resource:conflict",
624
808
  "server:internal_error"
625
809
  ]
626
810
  },
627
- opsGetEventAttendeeDetails: {
628
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}",
629
- method: "GET",
630
- auth: "user",
631
- responseKind: "json"
632
- },
633
- opsCancelEventAttendee: {
634
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/cancel",
635
- method: "POST",
811
+ deleteEventOffering: {
812
+ path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}",
813
+ method: "DELETE",
636
814
  auth: "user",
637
815
  responseKind: "json",
638
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
639
816
  errors: [
640
817
  "validation:invalid_input",
641
- "auth:forbidden",
642
818
  "resource:not_found",
643
819
  "resource:conflict",
644
820
  "server:internal_error"
645
821
  ]
646
822
  },
647
- getEventAttendeeDetails: {
648
- path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}",
649
- method: "GET",
823
+ duplicateCourse: {
824
+ path: "/sites/{siteId}/bookings/courses/{courseId}/duplicate",
825
+ method: "POST",
650
826
  auth: "user",
651
827
  responseKind: "json",
652
- errors: []
828
+ errors: [
829
+ "validation:invalid_input",
830
+ "resource:not_found",
831
+ "resource:already_exists",
832
+ "server:internal_error"
833
+ ]
653
834
  },
654
- cancelEventAttendee: {
655
- path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}/cancel",
835
+ changeCourseContentOwnership: {
836
+ path: "/sites/{siteId}/bookings/courses/{courseId}/content-ownership",
656
837
  method: "POST",
657
838
  auth: "user",
658
839
  responseKind: "json",
659
840
  errors: [
660
841
  "validation:invalid_input",
661
- "auth:forbidden",
662
842
  "resource:not_found",
663
843
  "resource:conflict",
664
844
  "server:internal_error"
665
845
  ]
666
846
  },
667
- opsRefundEventAttendee: {
668
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/refund",
847
+ addCourseEnrollment: {
848
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
669
849
  method: "POST",
670
850
  auth: "user",
671
851
  responseKind: "json",
672
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
673
852
  errors: [
674
853
  "validation:invalid_input",
675
- "auth:forbidden",
676
854
  "resource:not_found",
677
855
  "resource:conflict",
678
856
  "server:internal_error"
679
857
  ]
680
858
  },
681
- getEmailSettings: {
682
- path: "/sites/{siteId}/settings/emails",
859
+ listCourseEnrollments: {
860
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
683
861
  method: "GET",
684
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
685
862
  auth: "user",
686
863
  responseKind: "json"
687
864
  },
688
- updateEmailSettings: {
689
- path: "/sites/{siteId}/settings/emails",
690
- method: "PUT",
691
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
865
+ exportCourseEnrollmentsCsv: {
866
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/export.csv",
867
+ method: "GET",
692
868
  auth: "user",
693
- responseKind: "json"
869
+ errors: [],
870
+ responseKind: "blob"
694
871
  },
695
- sendTestEmail: {
696
- path: "/sites/{siteId}/settings/emails/test",
697
- method: "POST",
698
- 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
+ ],
699
880
  auth: "user",
700
- responseKind: "json",
701
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
881
+ responseKind: "blob",
882
+ errors: []
702
883
  },
703
- previewEmailTemplate: {
704
- path: "/sites/{siteId}/settings/emails/preview",
705
- method: "POST",
706
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
884
+ updateCourseEnrollment: {
885
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
886
+ method: "PATCH",
707
887
  auth: "user",
708
- responseKind: "json"
709
- },
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({
710
899
  getNewsletterSettings: {
711
900
  path: "/sites/{siteId}/newsletter/settings",
712
901
  method: "GET",
@@ -1059,770 +1248,701 @@ const API_ENDPOINTS = {
1059
1248
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1060
1249
  auth: "user",
1061
1250
  responseKind: "json"
1062
- },
1063
- listAppointmentResources: {
1064
- path: "/sites/{siteId}/bookings/resources",
1065
- method: "GET",
1066
- auth: "user",
1067
- responseKind: "json"
1068
- },
1069
- createAppointmentResource: {
1070
- path: "/sites/{siteId}/bookings/resources",
1071
- method: "POST",
1072
- auth: "user",
1073
- responseKind: "json",
1074
- errors: [
1075
- "validation:invalid_input",
1076
- "billing:plan_limit_exceeded",
1077
- "server:internal_error"
1078
- ]
1079
- },
1080
- createAppointmentResourceWithAccountAccess: {
1081
- path: "/sites/{siteId}/bookings/resources/account-access",
1082
- method: "POST",
1083
- auth: "user",
1084
- responseKind: "json",
1085
- errors: [
1086
- "validation:invalid_input",
1087
- "auth:forbidden",
1088
- "billing:plan_limit_exceeded",
1089
- "resource:conflict",
1090
- "resource:not_found",
1091
- "server:internal_error"
1092
- ]
1093
- },
1094
- getAppointmentResource: {
1095
- 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",
1096
1258
  method: "GET",
1097
- auth: "user",
1259
+ revalidate: 60,
1260
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings],
1261
+ errors: ["server:internal_error"],
1262
+ auth: "public",
1098
1263
  responseKind: "json"
1099
1264
  },
1100
- updateAppointmentResource: {
1101
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1102
- method: "PUT",
1103
- auth: "user",
1104
- responseKind: "json",
1105
- errors: [
1106
- "validation:invalid_input",
1107
- "resource:not_found",
1108
- "server:internal_error"
1109
- ]
1110
- },
1111
- removeAppointmentResource: {
1112
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1113
- method: "DELETE",
1114
- auth: "user",
1115
- responseKind: "json",
1116
- errors: ["resource:not_found", "server:internal_error"]
1117
- },
1118
- listAppointmentReservations: {
1119
- path: "/sites/{siteId}/bookings/appointment-reservations",
1265
+ getPublicWholeSeriesOffering: {
1266
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/{eventSeriesId}",
1120
1267
  method: "GET",
1121
- auth: "user",
1122
- responseKind: "json",
1123
- errors: []
1268
+ revalidate: 60,
1269
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings],
1270
+ errors: ["resource:not_found", "server:internal_error"],
1271
+ auth: "public",
1272
+ responseKind: "json"
1124
1273
  },
1125
- createAppointmentReservation: {
1126
- path: "/sites/{siteId}/bookings/appointment-reservations",
1274
+ registerForWholeSeries: {
1275
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/enroll",
1127
1276
  method: "POST",
1128
- auth: "user",
1129
- responseKind: "json",
1277
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-enrollment"],
1130
1278
  errors: [
1279
+ "auth:unauthenticated",
1280
+ "auth:forbidden",
1131
1281
  "validation:invalid_input",
1132
1282
  "resource:not_found",
1133
1283
  "resource:conflict",
1284
+ "resource:already_exists",
1134
1285
  "server:internal_error"
1135
- ]
1136
- },
1137
- getAppointmentReservation: {
1138
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1139
- method: "GET",
1140
- auth: "user",
1141
- responseKind: "json",
1142
- errors: ["resource:not_found", "server:internal_error"]
1286
+ ],
1287
+ auth: "public",
1288
+ responseKind: "json"
1143
1289
  },
1144
- updateAppointmentReservation: {
1145
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1146
- method: "PUT",
1147
- auth: "user",
1148
- 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"],
1149
1294
  errors: [
1150
- "validation:invalid_input",
1295
+ "auth:unauthenticated",
1151
1296
  "resource:not_found",
1152
1297
  "resource:conflict",
1153
1298
  "server:internal_error"
1154
- ]
1299
+ ],
1300
+ auth: "public",
1301
+ responseKind: "json"
1155
1302
  },
1156
- pauseAppointmentReservation: {
1157
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1303
+ createWholeSeriesCheckout: {
1304
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/checkout",
1158
1305
  method: "POST",
1159
- auth: "user",
1306
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-checkout"],
1307
+ auth: "public",
1160
1308
  responseKind: "json",
1161
1309
  errors: [
1310
+ "auth:unauthenticated",
1311
+ "validation:invalid_input",
1162
1312
  "resource:not_found",
1163
1313
  "resource:conflict",
1164
1314
  "server:internal_error"
1165
1315
  ]
1166
1316
  },
1167
- resumeAppointmentReservation: {
1168
- 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",
1169
1329
  method: "POST",
1170
1330
  auth: "user",
1171
- responseKind: "json",
1172
- errors: [
1173
- "resource:not_found",
1174
- "resource:conflict",
1175
- "server:internal_error"
1176
- ]
1331
+ responseKind: "stream"
1177
1332
  },
1178
- endAppointmentReservation: {
1179
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1333
+ aiChat: {
1334
+ path: "/ai/chat",
1180
1335
  method: "POST",
1181
1336
  auth: "user",
1182
- responseKind: "json",
1183
- errors: [
1184
- "validation:invalid_input",
1185
- "resource:not_found",
1186
- "resource:conflict",
1187
- "server:internal_error"
1188
- ]
1337
+ responseKind: "stream"
1189
1338
  },
1190
- previewAppointmentReservationRun: {
1191
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1339
+ aiDesignerThemeApply: {
1340
+ path: "/sites/{siteId}/ai/designer/theme/apply",
1192
1341
  method: "POST",
1342
+ tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme],
1193
1343
  auth: "user",
1194
- responseKind: "json",
1195
- errors: [
1196
- "validation:invalid_input",
1197
- "resource:not_found",
1198
- "resource:conflict",
1199
- "server:internal_error"
1200
- ]
1344
+ responseKind: "json"
1201
1345
  },
1202
- createAppointmentReservationRun: {
1203
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1346
+ aiDesignerPageOpsApply: {
1347
+ path: "/sites/{siteId}/ai/designer/page/apply",
1204
1348
  method: "POST",
1349
+ tags: [TAG_TEMPLATES.siteCollection],
1205
1350
  auth: "user",
1206
- responseKind: "json",
1207
- errors: [
1208
- "validation:invalid_input",
1209
- "resource:not_found",
1210
- "resource:conflict",
1211
- "server:internal_error"
1212
- ]
1351
+ responseKind: "json"
1213
1352
  },
1214
- createTeamMemberProfile: {
1215
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1353
+ applySeoChanges: {
1354
+ path: "/seo/apply",
1216
1355
  method: "POST",
1217
1356
  auth: "user",
1218
- responseKind: "json",
1219
- errors: [
1220
- "validation:invalid_input",
1221
- "resource:not_found",
1222
- "resource:conflict",
1223
- "server:internal_error"
1224
- ]
1357
+ responseKind: "json"
1225
1358
  },
1226
- updateTeamMemberProfilePolicy: {
1227
- path: "/sites/{siteId}/bookings/resources/profile-policy",
1228
- method: "PUT",
1359
+ aiCreateBriefChat: {
1360
+ path: "/ai/chat/create-brief",
1361
+ method: "POST",
1229
1362
  auth: "user",
1230
- responseKind: "json",
1231
- errors: ["validation:invalid_input", "server:internal_error"]
1363
+ responseKind: "json"
1232
1364
  },
1233
- updateTeamMemberProfileContent: {
1234
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/content",
1235
- method: "PUT",
1236
- tags: [
1237
- "site-{siteId}",
1238
- "content-{siteId}-team-member",
1239
- "content-entry-{entryId}"
1240
- ],
1365
+ aiPatchDryRun: {
1366
+ path: "/ai/patch/dry-run",
1367
+ method: "POST",
1241
1368
  auth: "user",
1242
- responseKind: "json",
1243
- errors: [
1244
- "validation:invalid_input",
1245
- "resource:not_found",
1246
- "resource:conflict",
1247
- "server:internal_error"
1248
- ]
1369
+ responseKind: "json"
1249
1370
  },
1250
- publishTeamMemberProfile: {
1251
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
1371
+ aiPatchApply: {
1372
+ path: "/ai/patch/apply",
1252
1373
  method: "POST",
1253
- tags: [
1254
- "site-{siteId}",
1255
- "content-{siteId}-team-member",
1256
- "content-entry-{entryId}"
1257
- ],
1258
1374
  auth: "user",
1259
- responseKind: "json",
1260
- errors: [
1261
- "validation:invalid_input",
1262
- "resource:not_found",
1263
- "server:internal_error"
1264
- ]
1375
+ responseKind: "json"
1265
1376
  },
1266
- discardTeamMemberProfileDraft: {
1267
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
1377
+ aiPlaygroundProposeMulti: {
1378
+ path: "/sites/{siteId}/ai/playground/propose-multi",
1268
1379
  method: "POST",
1269
- tags: [
1270
- "site-{siteId}",
1271
- "content-{siteId}-team-member",
1272
- "content-entry-{entryId}"
1273
- ],
1274
1380
  auth: "user",
1275
- responseKind: "json",
1276
- errors: [
1277
- "validation:invalid_input",
1278
- "resource:not_found",
1279
- "resource:conflict",
1280
- "server:internal_error"
1281
- ]
1381
+ responseKind: "stream"
1282
1382
  },
1283
- unpublishTeamMemberProfile: {
1284
- 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",
1285
1391
  method: "POST",
1286
- tags: [
1287
- "site-{siteId}",
1288
- "content-{siteId}-team-member",
1289
- "content-entry-{entryId}"
1290
- ],
1291
1392
  auth: "user",
1292
- responseKind: "json",
1293
- errors: [
1294
- "validation:invalid_input",
1295
- "resource:not_found",
1296
- "resource:conflict",
1297
- "server:internal_error"
1298
- ]
1393
+ responseKind: "stream"
1299
1394
  },
1300
- scheduleTeamMemberProfile: {
1301
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
1395
+ aiDesignerChat: {
1396
+ path: "/sites/{siteId}/ai/designer/chat",
1302
1397
  method: "POST",
1303
- tags: [
1304
- "site-{siteId}",
1305
- "content-{siteId}-team-member",
1306
- "content-entry-{entryId}"
1307
- ],
1308
1398
  auth: "user",
1309
- responseKind: "json",
1310
- errors: [
1311
- "validation:invalid_input",
1312
- "resource:not_found",
1313
- "resource:conflict",
1314
- "server:internal_error"
1315
- ]
1399
+ responseKind: "stream"
1316
1400
  },
1317
- cancelScheduledTeamMemberProfile: {
1318
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
1319
- method: "DELETE",
1320
- tags: [
1321
- "site-{siteId}",
1322
- "content-{siteId}-team-member",
1323
- "content-entry-{entryId}"
1324
- ],
1401
+ aiPlaygroundPageConvert: {
1402
+ path: "/sites/{siteId}/ai/playground/page-convert",
1403
+ method: "POST",
1325
1404
  auth: "user",
1326
- responseKind: "json",
1327
- errors: [
1328
- "validation:invalid_input",
1329
- "resource:not_found",
1330
- "resource:conflict",
1331
- "server:internal_error"
1332
- ]
1405
+ responseKind: "json"
1333
1406
  },
1334
- updateTeamMemberProfileRouteMetadata: {
1335
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/routes/{routeId}/metadata",
1336
- method: "PATCH",
1337
- tags: [
1338
- TAG_TEMPLATES.siteCollection,
1339
- TAG_TEMPLATES.siteRoutableContent,
1340
- TAG_TEMPLATES.routeById
1341
- ],
1407
+ aiPlaygroundPageConvertJobsCreate: {
1408
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs",
1409
+ method: "POST",
1342
1410
  auth: "user",
1343
- responseKind: "json",
1344
- errors: [
1345
- "validation:invalid_input",
1346
- "resource:not_found",
1347
- "resource:conflict",
1348
- "server:internal_error"
1349
- ]
1411
+ responseKind: "json"
1350
1412
  },
1351
- listAppointmentServices: {
1352
- path: "/sites/{siteId}/bookings/services",
1413
+ aiPlaygroundPageConvertJobsList: {
1414
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs",
1353
1415
  method: "GET",
1354
1416
  auth: "user",
1355
1417
  responseKind: "json"
1356
1418
  },
1357
- exportAppointmentServicesCsv: {
1358
- path: "/sites/{siteId}/bookings/services/export.csv",
1359
- method: "GET",
1360
- tags: [
1361
- "site-{siteId}",
1362
- "bookings",
1363
- "appointment-services-{siteId}"
1364
- ],
1365
- errors: [],
1419
+ aiPlaygroundPageConvertJobGet: {
1420
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}",
1421
+ method: "GET",
1366
1422
  auth: "user",
1367
- responseKind: "blob"
1423
+ responseKind: "json"
1368
1424
  },
1369
- createAppointmentService: {
1370
- path: "/sites/{siteId}/bookings/services",
1425
+ aiPlaygroundPageConvertJobRun: {
1426
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/run",
1371
1427
  method: "POST",
1372
1428
  auth: "user",
1373
- responseKind: "json",
1374
- errors: ["validation:invalid_input", "server:internal_error"]
1429
+ responseKind: "json"
1375
1430
  },
1376
- getAppointmentService: {
1377
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1431
+ aiPlaygroundPageConvertJobEvents: {
1432
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/events",
1378
1433
  method: "GET",
1379
1434
  auth: "user",
1380
1435
  responseKind: "json"
1381
1436
  },
1382
- updateAppointmentService: {
1383
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1384
- method: "PUT",
1437
+ aiGenerateSite: {
1438
+ path: "/sites/{siteId}/ai/generate",
1439
+ method: "POST",
1385
1440
  auth: "user",
1386
1441
  responseKind: "json",
1387
- errors: [
1388
- "validation:invalid_input",
1389
- "resource:not_found",
1390
- "server:internal_error"
1391
- ]
1442
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1392
1443
  },
1393
- deleteAppointmentService: {
1394
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1395
- method: "DELETE",
1396
- auth: "user",
1397
- responseKind: "json",
1398
- 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"
1399
1450
  },
1400
- getAppointmentSetup: {
1401
- path: "/sites/{siteId}/bookings/appointment-setup",
1451
+ listOnboardingPreviewThemes: {
1452
+ path: "/public/sites/{siteId}/onboarding/themes",
1402
1453
  method: "GET",
1403
- auth: "user",
1404
- responseKind: "json",
1405
- errors: ["server:internal_error"]
1454
+ auth: "public",
1455
+ errors: [],
1456
+ responseKind: "json"
1406
1457
  },
1407
- applyAppointmentSetup: {
1408
- path: "/sites/{siteId}/bookings/appointment-setup",
1458
+ acknowledgeLaunchRequirement: {
1459
+ path: "/sites/{siteId}/launch/acknowledge-requirement",
1409
1460
  method: "POST",
1410
1461
  auth: "user",
1462
+ errors: [],
1411
1463
  responseKind: "json",
1412
- errors: ["validation:invalid_input", "server:internal_error"]
1464
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
1413
1465
  },
1414
- getAppointmentServicesReference: {
1415
- path: "/sites/{siteId}/bookings/services/reference",
1416
- method: "GET",
1466
+ goLiveSite: {
1467
+ path: "/sites/{siteId}/launch/go-live",
1468
+ method: "POST",
1417
1469
  auth: "user",
1470
+ errors: [],
1418
1471
  responseKind: "json"
1419
1472
  },
1420
- getAppointmentResourcesReference: {
1421
- path: "/sites/{siteId}/bookings/resources/reference",
1422
- method: "GET",
1423
- auth: "user",
1473
+ resendOnboardingPreviewConfirmation: {
1474
+ path: "/public/sites/{siteId}/onboarding/resend-confirmation",
1475
+ method: "POST",
1476
+ auth: "public",
1477
+ errors: [],
1424
1478
  responseKind: "json"
1425
1479
  },
1426
- getResourceServices: {
1427
- path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
1428
- method: "GET",
1429
- auth: "user",
1480
+ createPublicOnboardingAttempt: {
1481
+ path: "/public/onboarding/attempts",
1482
+ method: "POST",
1483
+ auth: "public",
1484
+ errors: [],
1430
1485
  responseKind: "json"
1431
1486
  },
1432
- updateResourceServices: {
1433
- path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
1434
- method: "PUT",
1435
- auth: "user",
1487
+ createPublicOnboardingLogoUploadUrl: {
1488
+ path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
1489
+ method: "POST",
1490
+ auth: "public",
1491
+ errors: [],
1436
1492
  responseKind: "json"
1437
1493
  },
1438
- getServiceResources: {
1439
- path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
1440
- method: "GET",
1441
- auth: "user",
1494
+ uploadPublicOnboardingLogo: {
1495
+ path: "/public/onboarding/attempts/{attemptToken}/logo",
1496
+ method: "POST",
1497
+ auth: "public",
1498
+ errors: [],
1442
1499
  responseKind: "json"
1443
1500
  },
1444
- updateServiceResources: {
1445
- path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
1446
- method: "PUT",
1447
- auth: "user",
1501
+ getPublicOnboardingAttempt: {
1502
+ path: "/public/onboarding/attempts/{attemptToken}",
1503
+ method: "GET",
1504
+ auth: "public",
1505
+ errors: [],
1448
1506
  responseKind: "json"
1449
1507
  },
1450
- listAvailabilityRules: {
1451
- path: "/sites/{siteId}/bookings/resources/{resourceId}/availability",
1508
+ getPublicOnboardingAttemptProgress: {
1509
+ path: "/public/onboarding/attempts/{attemptToken}/status",
1452
1510
  method: "GET",
1453
- auth: "user",
1454
- responseKind: "json",
1455
- errors: ["resource:not_found", "server:internal_error"]
1511
+ auth: "public",
1512
+ errors: [],
1513
+ responseKind: "json"
1456
1514
  },
1457
- setWeeklyAvailability: {
1458
- path: "/sites/{siteId}/bookings/resources/{resourceId}/weekly-availability",
1459
- 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",
1460
1532
  auth: "user",
1461
1533
  responseKind: "json",
1462
- errors: [
1463
- "validation:invalid_input",
1464
- "resource:not_found",
1465
- "server:internal_error"
1466
- ]
1534
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1467
1535
  },
1468
- setServiceSpecificAvailability: {
1469
- path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability",
1470
- method: "PUT",
1536
+ aiSiteWizardIntakeTriage: {
1537
+ path: "/sites/{siteId}/ai/site-wizard/intake-triage",
1538
+ method: "POST",
1471
1539
  auth: "user",
1472
1540
  responseKind: "json",
1473
- errors: [
1474
- "validation:invalid_input",
1475
- "resource:not_found",
1476
- "server:internal_error"
1477
- ]
1541
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1478
1542
  },
1479
- deleteServiceSpecificAvailability: {
1480
- path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability/{scheduleId}",
1481
- method: "DELETE",
1543
+ aiSiteWizardTelemetry: {
1544
+ path: "/sites/{siteId}/ai/site-wizard/telemetry",
1545
+ method: "POST",
1482
1546
  auth: "user",
1547
+ errors: [],
1483
1548
  responseKind: "json",
1484
- errors: ["resource:not_found", "server:internal_error"]
1549
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1485
1550
  },
1486
- listBlackouts: {
1487
- 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",
1488
1576
  method: "GET",
1489
1577
  auth: "user",
1490
- responseKind: "json",
1491
- errors: ["resource:not_found", "server:internal_error"]
1578
+ responseKind: "json"
1492
1579
  },
1493
- createBlackout: {
1494
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
1580
+ createRedirectRule: {
1581
+ path: "/sites/{siteId}/redirects",
1495
1582
  method: "POST",
1583
+ errors: ["validation:invalid_input", "resource:not_found"],
1496
1584
  auth: "user",
1497
- responseKind: "json",
1498
- errors: [
1499
- "validation:invalid_input",
1500
- "resource:not_found",
1501
- "server:internal_error"
1502
- ]
1585
+ responseKind: "json"
1503
1586
  },
1504
- deleteBlackout: {
1505
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts/{blackoutId}",
1587
+ deleteRedirectRule: {
1588
+ path: "/sites/{siteId}/redirects/{ruleId}",
1506
1589
  method: "DELETE",
1590
+ errors: ["resource:not_found"],
1507
1591
  auth: "user",
1508
- responseKind: "json",
1509
- errors: ["resource:not_found", "server:internal_error"]
1592
+ responseKind: "json"
1510
1593
  },
1511
- getCalendarStatus: {
1512
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1594
+ listWebhooks: {
1595
+ path: "/sites/{siteId}/webhooks",
1513
1596
  method: "GET",
1597
+ tags: ["site-{siteId}", "webhooks"],
1514
1598
  auth: "user",
1515
- responseKind: "json",
1516
- errors: ["auth:forbidden", "server:internal_error"]
1599
+ responseKind: "json"
1517
1600
  },
1518
- updateCalendarPreferences: {
1519
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1520
- method: "PUT",
1601
+ createWebhook: {
1602
+ path: "/sites/{siteId}/webhooks",
1603
+ method: "POST",
1604
+ tags: ["site-{siteId}", "webhooks"],
1521
1605
  auth: "user",
1522
- responseKind: "json",
1523
- errors: [
1524
- "validation:invalid_input",
1525
- "auth:forbidden",
1526
- "resource:not_found",
1527
- "server:internal_error"
1528
- ]
1606
+ responseKind: "json"
1529
1607
  },
1530
- disconnectCalendar: {
1531
- 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}",
1532
1624
  method: "DELETE",
1625
+ tags: ["site-{siteId}", "webhooks"],
1533
1626
  auth: "user",
1534
- responseKind: "json",
1535
- errors: [
1536
- "auth:forbidden",
1537
- "resource:not_found",
1538
- "server:internal_error"
1539
- ]
1627
+ responseKind: "json"
1540
1628
  },
1541
- getResourceCalendarFeed: {
1542
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1629
+ getSdkDeploymentHealth: {
1630
+ path: "/sites/{siteId}/sdk-deployment/health",
1543
1631
  method: "GET",
1632
+ tags: ["site-{siteId}", "webhooks"],
1544
1633
  auth: "user",
1545
- responseKind: "json",
1546
- errors: [
1547
- "auth:forbidden",
1548
- "resource:not_found",
1549
- "server:internal_error"
1550
- ]
1634
+ errors: [],
1635
+ responseKind: "json"
1551
1636
  },
1552
- regenerateResourceCalendarFeed: {
1553
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1637
+ setupSdkDeploymentRevalidationWebhook: {
1638
+ path: "/sites/{siteId}/sdk-deployment/revalidation-webhook",
1554
1639
  method: "POST",
1640
+ tags: ["site-{siteId}", "webhooks"],
1555
1641
  auth: "user",
1642
+ errors: ["validation:invalid_input", "resource:conflict"],
1556
1643
  responseKind: "json",
1557
- errors: [
1558
- "auth:forbidden",
1559
- "resource:not_found",
1560
- "server:internal_error"
1561
- ]
1562
- },
1563
- revokeResourceCalendarFeed: {
1564
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1565
- method: "DELETE",
1566
- auth: "user",
1567
- responseKind: "json",
1568
- errors: [
1569
- "auth:forbidden",
1570
- "resource:not_found",
1571
- "server:internal_error"
1572
- ]
1644
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
1573
1645
  },
1574
- getVenueCalendarFeed: {
1575
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1646
+ listSiteApiKeys: {
1647
+ path: "/sites/{siteId}/api-keys",
1576
1648
  method: "GET",
1577
1649
  auth: "user",
1578
- responseKind: "json",
1579
- errors: [
1580
- "auth:forbidden",
1581
- "resource:not_found",
1582
- "server:internal_error"
1583
- ]
1650
+ tags: ["site-{siteId}", "api-keys"],
1651
+ responseKind: "json"
1584
1652
  },
1585
- regenerateVenueCalendarFeed: {
1586
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1653
+ createSiteApiKey: {
1654
+ path: "/sites/{siteId}/api-keys",
1587
1655
  method: "POST",
1588
1656
  auth: "user",
1589
- responseKind: "json",
1590
- errors: [
1591
- "auth:forbidden",
1592
- "resource:not_found",
1593
- "server:internal_error"
1594
- ]
1657
+ tags: ["site-{siteId}", "api-keys"],
1658
+ responseKind: "json"
1595
1659
  },
1596
- revokeVenueCalendarFeed: {
1597
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1660
+ revokeSiteApiKey: {
1661
+ path: "/sites/{siteId}/api-keys/{keyId}",
1598
1662
  method: "DELETE",
1599
1663
  auth: "user",
1600
- responseKind: "json",
1601
- errors: [
1602
- "auth:forbidden",
1603
- "resource:not_found",
1604
- "server:internal_error"
1605
- ]
1606
- },
1607
- googleCalendarAuthorize: {
1608
- path: "/sites/{siteId}/bookings/calendar/google/authorize",
1609
- method: "GET",
1610
- auth: "user",
1611
- responseKind: "void"
1664
+ tags: ["site-{siteId}", "api-keys"],
1665
+ responseKind: "json"
1612
1666
  },
1613
- googleCalendarCallback: {
1614
- path: "/bookings/calendar/google/callback",
1667
+ getSitePreviewKey: {
1668
+ path: "/sites/{siteId}/api-keys/preview",
1615
1669
  method: "GET",
1616
1670
  auth: "user",
1617
- responseKind: "void"
1671
+ tags: [
1672
+ "site-{siteId}",
1673
+ "api-keys",
1674
+ "preview-key"
1675
+ ],
1676
+ responseKind: "json"
1618
1677
  },
1619
- getAvailableSlots: {
1620
- path: "/sites/{siteId}/bookings/availability/slots",
1621
- method: "GET",
1678
+ createSitePreviewKey: {
1679
+ path: "/sites/{siteId}/api-keys/preview",
1680
+ method: "POST",
1622
1681
  auth: "user",
1682
+ tags: [
1683
+ "site-{siteId}",
1684
+ "api-keys",
1685
+ "preview-key"
1686
+ ],
1623
1687
  responseKind: "json"
1624
1688
  },
1625
- listAppointments: {
1626
- path: "/sites/{siteId}/bookings/appointments",
1689
+ getSiteApiKeyAccessLogs: {
1690
+ path: "/sites/{siteId}/api-keys/access-logs",
1627
1691
  method: "GET",
1628
1692
  auth: "user",
1693
+ tags: [
1694
+ "site-{siteId}",
1695
+ "api-keys",
1696
+ "access-logs"
1697
+ ],
1629
1698
  responseKind: "json"
1630
1699
  },
1631
- exportBookingAppointmentsCsv: {
1632
- path: "/sites/{siteId}/bookings/appointments/export.csv",
1700
+ listManagementKeys: {
1701
+ path: "/sites/{siteId}/api-keys/management",
1633
1702
  method: "GET",
1634
1703
  auth: "user",
1635
- errors: [],
1636
- responseKind: "blob"
1704
+ tags: [
1705
+ "site-{siteId}",
1706
+ "api-keys",
1707
+ "management-keys"
1708
+ ],
1709
+ responseKind: "json"
1637
1710
  },
1638
- createAppointment: {
1639
- path: "/sites/{siteId}/bookings/appointments",
1711
+ createManagementKey: {
1712
+ path: "/sites/{siteId}/api-keys/management",
1640
1713
  method: "POST",
1641
1714
  auth: "user",
1715
+ tags: [
1716
+ "site-{siteId}",
1717
+ "api-keys",
1718
+ "management-keys"
1719
+ ],
1642
1720
  responseKind: "json"
1643
1721
  },
1644
- upsertBookingRequirementConfig: {
1645
- path: "/sites/{siteId}/bookings/requirements/config",
1646
- method: "PUT",
1722
+ revokeManagementKey: {
1723
+ path: "/sites/{siteId}/api-keys/management",
1724
+ method: "DELETE",
1647
1725
  auth: "user",
1648
- responseKind: "json",
1649
- errors: [
1650
- "validation:invalid_input",
1651
- "resource:not_found",
1652
- "server:internal_error"
1653
- ]
1726
+ tags: [
1727
+ "site-{siteId}",
1728
+ "api-keys",
1729
+ "management-keys"
1730
+ ],
1731
+ responseKind: "json"
1654
1732
  },
1655
- cancelAppointment: {
1656
- path: "/sites/{siteId}/bookings/appointments/{appointmentId}/cancel",
1657
- method: "POST",
1733
+ getBookingSettings: {
1734
+ path: "/sites/{siteId}/bookings/settings",
1735
+ method: "GET",
1658
1736
  auth: "user",
1737
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
1659
1738
  responseKind: "json"
1660
1739
  },
1661
- rescheduleAppointment: {
1662
- path: "/sites/{siteId}/bookings/appointments/{appointmentId}/reschedule",
1663
- method: "POST",
1740
+ updateBookingSettings: {
1741
+ path: "/sites/{siteId}/bookings/settings",
1742
+ method: "PUT",
1664
1743
  auth: "user",
1744
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
1665
1745
  responseKind: "json",
1666
1746
  errors: [
1667
1747
  "validation:invalid_input",
1668
- "resource:not_found",
1669
1748
  "auth:forbidden",
1670
1749
  "resource:conflict",
1671
1750
  "server:internal_error"
1672
1751
  ]
1673
1752
  },
1674
- listCourses: {
1675
- path: "/sites/{siteId}/bookings/courses",
1753
+ listBookingClosures: {
1754
+ path: "/sites/{siteId}/bookings/closures",
1676
1755
  method: "GET",
1677
1756
  auth: "user",
1678
- responseKind: "json"
1679
- },
1680
- exportCoursesCsv: {
1681
- path: "/sites/{siteId}/bookings/courses/export.csv",
1682
- method: "GET",
1683
1757
  tags: [
1684
1758
  "site-{siteId}",
1685
1759
  "bookings",
1686
- "courses-{siteId}"
1760
+ "closures-{siteId}"
1687
1761
  ],
1688
- errors: [],
1689
- auth: "user",
1690
- responseKind: "blob"
1762
+ responseKind: "json",
1763
+ errors: ["auth:forbidden", "server:internal_error"]
1691
1764
  },
1692
- createCourse: {
1693
- path: "/sites/{siteId}/bookings/courses",
1765
+ previewBookingClosure: {
1766
+ path: "/sites/{siteId}/bookings/closures/preview",
1694
1767
  method: "POST",
1695
1768
  auth: "user",
1769
+ tags: [
1770
+ "site-{siteId}",
1771
+ "bookings",
1772
+ "closures-{siteId}"
1773
+ ],
1696
1774
  responseKind: "json",
1697
1775
  errors: [
1698
1776
  "validation:invalid_input",
1699
- "resource:not_found",
1700
- "resource:already_exists",
1701
- "resource:conflict",
1777
+ "auth:forbidden",
1702
1778
  "server:internal_error"
1703
1779
  ]
1704
1780
  },
1705
- getCourse: {
1706
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1707
- method: "GET",
1708
- auth: "user",
1709
- responseKind: "json"
1710
- },
1711
- updateCourse: {
1712
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1713
- method: "PATCH",
1781
+ createBookingClosure: {
1782
+ path: "/sites/{siteId}/bookings/closures",
1783
+ method: "POST",
1714
1784
  auth: "user",
1785
+ tags: [
1786
+ "site-{siteId}",
1787
+ "bookings",
1788
+ "closures-{siteId}"
1789
+ ],
1715
1790
  responseKind: "json",
1716
1791
  errors: [
1717
1792
  "validation:invalid_input",
1718
- "resource:not_found",
1719
1793
  "resource:conflict",
1794
+ "auth:forbidden",
1720
1795
  "server:internal_error"
1721
1796
  ]
1722
1797
  },
1723
- deleteCourse: {
1724
- 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}",
1725
1812
  method: "DELETE",
1726
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",
1727
1838
  responseKind: "json",
1839
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1728
1840
  errors: [
1729
1841
  "validation:invalid_input",
1842
+ "auth:forbidden",
1730
1843
  "resource:not_found",
1731
- "resource:conflict",
1732
1844
  "server:internal_error"
1733
1845
  ]
1734
1846
  },
1735
- deleteCourseProgram: {
1736
- path: "/sites/{siteId}/bookings/courses/programs/{programId}",
1737
- method: "DELETE",
1847
+ opsUpdateEventAttendeeCheckin: {
1848
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/checkin",
1849
+ method: "POST",
1738
1850
  auth: "user",
1739
1851
  responseKind: "json",
1852
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1740
1853
  errors: [
1741
1854
  "validation:invalid_input",
1855
+ "auth:forbidden",
1742
1856
  "resource:not_found",
1743
- "resource:conflict",
1744
1857
  "server:internal_error"
1745
1858
  ]
1746
1859
  },
1747
- duplicateCourse: {
1748
- 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",
1749
1868
  method: "POST",
1750
1869
  auth: "user",
1751
1870
  responseKind: "json",
1871
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1752
1872
  errors: [
1753
1873
  "validation:invalid_input",
1874
+ "auth:forbidden",
1754
1875
  "resource:not_found",
1755
- "resource:already_exists",
1876
+ "resource:conflict",
1756
1877
  "server:internal_error"
1757
1878
  ]
1758
1879
  },
1759
- changeCourseContentOwnership: {
1760
- 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",
1761
1889
  method: "POST",
1762
1890
  auth: "user",
1763
1891
  responseKind: "json",
1764
1892
  errors: [
1765
1893
  "validation:invalid_input",
1894
+ "auth:forbidden",
1766
1895
  "resource:not_found",
1767
1896
  "resource:conflict",
1768
1897
  "server:internal_error"
1769
1898
  ]
1770
1899
  },
1771
- addCourseEnrollment: {
1772
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
1900
+ opsRefundEventAttendee: {
1901
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/refund",
1773
1902
  method: "POST",
1774
1903
  auth: "user",
1775
1904
  responseKind: "json",
1905
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1776
1906
  errors: [
1777
1907
  "validation:invalid_input",
1908
+ "auth:forbidden",
1778
1909
  "resource:not_found",
1779
1910
  "resource:conflict",
1780
1911
  "server:internal_error"
1781
1912
  ]
1782
1913
  },
1783
- listCourseEnrollments: {
1784
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
1914
+ getEmailSettings: {
1915
+ path: "/sites/{siteId}/settings/emails",
1785
1916
  method: "GET",
1917
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1786
1918
  auth: "user",
1787
1919
  responseKind: "json"
1788
1920
  },
1789
- exportCourseEnrollmentsCsv: {
1790
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/export.csv",
1791
- method: "GET",
1921
+ updateEmailSettings: {
1922
+ path: "/sites/{siteId}/settings/emails",
1923
+ method: "PUT",
1924
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1792
1925
  auth: "user",
1793
- errors: [],
1794
- responseKind: "blob"
1926
+ responseKind: "json"
1795
1927
  },
1796
- listCourseWaitlist: {
1797
- path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist",
1798
- method: "GET",
1928
+ sendTestEmail: {
1929
+ path: "/sites/{siteId}/settings/emails/test",
1930
+ method: "POST",
1931
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1799
1932
  auth: "user",
1800
1933
  responseKind: "json",
1801
- errors: []
1802
- },
1803
- exportCourseWaitlistCsv: {
1804
- path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist/export.csv",
1805
- method: "GET",
1806
- tags: [
1807
- "site-{siteId}",
1808
- "bookings",
1809
- "courses-{courseId}"
1810
- ],
1811
- auth: "user",
1812
- responseKind: "blob",
1813
- errors: []
1934
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1814
1935
  },
1815
- updateCourseEnrollment: {
1816
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
1817
- method: "PATCH",
1936
+ previewEmailTemplate: {
1937
+ path: "/sites/{siteId}/settings/emails/preview",
1938
+ method: "POST",
1939
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1818
1940
  auth: "user",
1819
- responseKind: "json",
1820
- errors: [
1821
- "validation:invalid_input",
1822
- "resource:not_found",
1823
- "server:internal_error"
1824
- ]
1941
+ responseKind: "json"
1825
1942
  },
1943
+ ...NEWSLETTER_ENDPOINT_DEFINITIONS,
1944
+ ...APPOINTMENT_ENDPOINT_DEFINITIONS,
1945
+ ...COURSE_ENDPOINT_DEFINITIONS,
1826
1946
  getSite: {
1827
1947
  path: "/sites",
1828
1948
  method: "GET",
@@ -2164,7 +2284,13 @@ const API_ENDPOINTS = {
2164
2284
  method: "POST",
2165
2285
  tags: ["site-{siteId}", "content-{siteId}-{type}"],
2166
2286
  auth: "user",
2167
- responseKind: "json"
2287
+ responseKind: "json",
2288
+ errors: [
2289
+ "validation:invalid_input",
2290
+ "resource:not_found",
2291
+ "resource:conflict",
2292
+ "server:internal_error"
2293
+ ]
2168
2294
  },
2169
2295
  getContentEntry: {
2170
2296
  path: "/sites/{siteId}/content/{type}/{entryId}",
@@ -2175,12 +2301,22 @@ const API_ENDPOINTS = {
2175
2301
  "content-entry-{entryId}"
2176
2302
  ],
2177
2303
  auth: "user",
2178
- responseKind: "json"
2304
+ responseKind: "json",
2305
+ errors: [
2306
+ "validation:invalid_input",
2307
+ "resource:not_found",
2308
+ "resource:conflict",
2309
+ "server:internal_error"
2310
+ ]
2179
2311
  },
2180
2312
  listContentEntryVersions: {
2181
2313
  path: "/sites/{siteId}/content/{type}/{entryId}/versions",
2182
2314
  method: "GET",
2183
- errors: ["validation:invalid_input", "resource:not_found"],
2315
+ errors: [
2316
+ "validation:invalid_input",
2317
+ "resource:not_found",
2318
+ "resource:conflict"
2319
+ ],
2184
2320
  tags: [
2185
2321
  "site-{siteId}",
2186
2322
  "content-{siteId}-{type}",
@@ -2192,7 +2328,11 @@ const API_ENDPOINTS = {
2192
2328
  getContentEntryVersion: {
2193
2329
  path: "/sites/{siteId}/content/{type}/{entryId}/versions/{versionId}",
2194
2330
  method: "GET",
2195
- errors: ["validation:invalid_input", "resource:not_found"],
2331
+ errors: [
2332
+ "validation:invalid_input",
2333
+ "resource:not_found",
2334
+ "resource:conflict"
2335
+ ],
2196
2336
  tags: [
2197
2337
  "site-{siteId}",
2198
2338
  "content-{siteId}-{type}",
@@ -2227,6 +2367,12 @@ const API_ENDPOINTS = {
2227
2367
  "content-entry-{entryId}"
2228
2368
  ],
2229
2369
  auth: "user",
2370
+ errors: [
2371
+ "validation:invalid_input",
2372
+ "resource:not_found",
2373
+ "resource:conflict",
2374
+ "server:internal_error"
2375
+ ],
2230
2376
  responseKind: "json"
2231
2377
  },
2232
2378
  updatePageSurfaceDraftContent: {
@@ -2296,6 +2442,7 @@ const API_ENDPOINTS = {
2296
2442
  errors: [
2297
2443
  "validation:invalid_input",
2298
2444
  "resource:not_found",
2445
+ "resource:conflict",
2299
2446
  "server:internal_error"
2300
2447
  ],
2301
2448
  tags: [
@@ -2312,6 +2459,7 @@ const API_ENDPOINTS = {
2312
2459
  errors: [
2313
2460
  "validation:invalid_input",
2314
2461
  "resource:not_found",
2462
+ "resource:conflict",
2315
2463
  "server:internal_error"
2316
2464
  ],
2317
2465
  tags: [
@@ -2332,6 +2480,12 @@ const API_ENDPOINTS = {
2332
2480
  TAG_TEMPLATES.routeById
2333
2481
  ],
2334
2482
  auth: "user",
2483
+ errors: [
2484
+ "validation:invalid_input",
2485
+ "resource:not_found",
2486
+ "resource:conflict",
2487
+ "server:internal_error"
2488
+ ],
2335
2489
  responseKind: "json"
2336
2490
  },
2337
2491
  publishContentEntry: {
@@ -2388,6 +2542,13 @@ const API_ENDPOINTS = {
2388
2542
  "content-entry-{entryId}"
2389
2543
  ],
2390
2544
  auth: "user",
2545
+ errors: [
2546
+ "auth:forbidden",
2547
+ "validation:invalid_input",
2548
+ "resource:not_found",
2549
+ "resource:conflict",
2550
+ "server:internal_error"
2551
+ ],
2391
2552
  responseKind: "json"
2392
2553
  },
2393
2554
  unpublishContentEntry: {
@@ -2440,7 +2601,13 @@ const API_ENDPOINTS = {
2440
2601
  "content-entry-{entryId}"
2441
2602
  ],
2442
2603
  auth: "user",
2443
- responseKind: "json"
2604
+ responseKind: "json",
2605
+ errors: [
2606
+ "validation:invalid_input",
2607
+ "resource:not_found",
2608
+ "resource:conflict",
2609
+ "server:internal_error"
2610
+ ]
2444
2611
  },
2445
2612
  bulkPublishContentEntries: {
2446
2613
  path: "/sites/{siteId}/content/{type}/bulk-publish",
@@ -2462,6 +2629,12 @@ const API_ENDPOINTS = {
2462
2629
  tags: ["site-{siteId}", "content-{siteId}-{type}"],
2463
2630
  auth: "user",
2464
2631
  responseKind: "json",
2632
+ errors: [
2633
+ "validation:invalid_input",
2634
+ "resource:not_found",
2635
+ "resource:conflict",
2636
+ "server:internal_error"
2637
+ ],
2465
2638
  demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
2466
2639
  },
2467
2640
  updateSiteGeneralSettings: {
@@ -3732,7 +3905,7 @@ const API_ENDPOINTS = {
3732
3905
  ],
3733
3906
  auth: "user",
3734
3907
  responseKind: "json",
3735
- errors: ["resource:not_found"]
3908
+ errors: ["resource:not_found", "resource:conflict"]
3736
3909
  },
3737
3910
  listEntryPageContentSlots: {
3738
3911
  path: "/sites/{siteId}/content/{type}/{entryId}/slots",
@@ -3745,7 +3918,7 @@ const API_ENDPOINTS = {
3745
3918
  ],
3746
3919
  auth: "user",
3747
3920
  responseKind: "json",
3748
- errors: ["resource:not_found"]
3921
+ errors: ["resource:not_found", "resource:conflict"]
3749
3922
  },
3750
3923
  createEntrySlotBlock: {
3751
3924
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks",
@@ -3758,7 +3931,11 @@ const API_ENDPOINTS = {
3758
3931
  ],
3759
3932
  auth: "user",
3760
3933
  responseKind: "json",
3761
- errors: ["validation:invalid_input", "resource:not_found"]
3934
+ errors: [
3935
+ "validation:invalid_input",
3936
+ "resource:not_found",
3937
+ "resource:conflict"
3938
+ ]
3762
3939
  },
3763
3940
  reorderEntrySlotBlocks: {
3764
3941
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/reorder",
@@ -3771,7 +3948,11 @@ const API_ENDPOINTS = {
3771
3948
  ],
3772
3949
  auth: "user",
3773
3950
  responseKind: "json",
3774
- errors: ["validation:invalid_input", "resource:not_found"]
3951
+ errors: [
3952
+ "validation:invalid_input",
3953
+ "resource:not_found",
3954
+ "resource:conflict"
3955
+ ]
3775
3956
  },
3776
3957
  deleteEntrySlotBlock: {
3777
3958
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/{blockId}",
@@ -3784,7 +3965,7 @@ const API_ENDPOINTS = {
3784
3965
  ],
3785
3966
  auth: "user",
3786
3967
  responseKind: "json",
3787
- errors: ["resource:not_found"]
3968
+ errors: ["resource:not_found", "resource:conflict"]
3788
3969
  },
3789
3970
  listPageSurfaceContentSlots: {
3790
3971
  path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/slots",
@@ -4462,14 +4643,7 @@ const API_ENDPOINTS = {
4462
4643
  auth: "public",
4463
4644
  responseKind: "json"
4464
4645
  },
4465
- listPublicCourses: {
4466
- path: "/public/sites/{siteId}/courses",
4467
- method: "GET",
4468
- revalidate: 60,
4469
- tags: [TAG_TEMPLATES.publicCourses],
4470
- auth: "public",
4471
- responseKind: "json"
4472
- },
4646
+ ...PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS,
4473
4647
  listPublicTeamMembers: {
4474
4648
  path: "/public/sites/{siteId}/team-members",
4475
4649
  method: "GET",
@@ -4479,33 +4653,11 @@ const API_ENDPOINTS = {
4479
4653
  auth: "public",
4480
4654
  responseKind: "json"
4481
4655
  },
4482
- getPublicCourse: {
4483
- path: "/public/sites/{siteId}/courses/{courseId}",
4484
- method: "GET",
4485
- revalidate: 60,
4486
- tags: [TAG_TEMPLATES.publicCourses],
4487
- auth: "public",
4488
- responseKind: "json"
4489
- },
4490
- enrollInCourse: {
4491
- path: "/public/sites/{siteId}/courses/enroll",
4492
- method: "POST",
4493
- tags: [TAG_TEMPLATES.publicCourses, "course-enrollment"],
4494
- auth: "public",
4495
- responseKind: "json"
4496
- },
4497
- checkCourseEligibility: {
4498
- path: "/public/sites/{siteId}/courses/check-eligibility",
4499
- method: "POST",
4500
- tags: [TAG_TEMPLATES.publicCourses, "course-enrollment"],
4501
- auth: "public",
4502
- responseKind: "json"
4503
- },
4504
4656
  resolveWaitlistClaim: {
4505
4657
  path: "/public/sites/{siteId}/waitlists/claim/resolve",
4506
4658
  method: "POST",
4507
4659
  tags: [
4508
- TAG_TEMPLATES.publicCourses,
4660
+ TAG_TEMPLATES.publicWholeSeriesOfferings,
4509
4661
  TAG_TEMPLATES.publicEvents,
4510
4662
  "waitlist-claims"
4511
4663
  ],
@@ -4518,27 +4670,6 @@ const API_ENDPOINTS = {
4518
4670
  "server:internal_error"
4519
4671
  ]
4520
4672
  },
4521
- createCourseCheckout: {
4522
- path: "/public/sites/{siteId}/courses/checkout",
4523
- method: "POST",
4524
- tags: [TAG_TEMPLATES.publicCourses, "course-checkout"],
4525
- auth: "public",
4526
- responseKind: "json",
4527
- errors: [
4528
- "auth:unauthenticated",
4529
- "validation:invalid_input",
4530
- "resource:not_found",
4531
- "resource:conflict",
4532
- "server:internal_error"
4533
- ]
4534
- },
4535
- getCourseRegistrationStatus: {
4536
- path: "/public/sites/{siteId}/courses/registration-status",
4537
- method: "GET",
4538
- tags: [TAG_TEMPLATES.publicCourses, "course-checkout"],
4539
- auth: "public",
4540
- responseKind: "json"
4541
- },
4542
4673
  listPublicPasses: {
4543
4674
  path: "/public/sites/{siteId}/bookings/products/passes",
4544
4675
  method: "GET",
@@ -4639,14 +4770,6 @@ const API_ENDPOINTS = {
4639
4770
  responseKind: "json",
4640
4771
  errors: []
4641
4772
  },
4642
- resolveEntrySubroute: {
4643
- path: "/public/sites/{siteId}/routing/subroutes/resolve",
4644
- method: "GET",
4645
- revalidate: 60,
4646
- tags: ["site-{siteId}", "entry-subroute"],
4647
- auth: "public",
4648
- responseKind: "json"
4649
- },
4650
4773
  resolveEventOccurrence: {
4651
4774
  path: "/public/sites/{siteId}/events/occurrences/resolve",
4652
4775
  method: "GET",
@@ -4990,13 +5113,6 @@ const API_ENDPOINTS = {
4990
5113
  auth: "user",
4991
5114
  responseKind: "json"
4992
5115
  },
4993
- getEventSeriesContentEditor: {
4994
- path: "/sites/{siteId}/bookings/event-series/{seriesId}/content-editor",
4995
- method: "GET",
4996
- tags: ["site-{siteId}", "event-series-{seriesId}"],
4997
- auth: "user",
4998
- responseKind: "json"
4999
- },
5000
5116
  updateEventSeries: {
5001
5117
  path: "/sites/{siteId}/bookings/event-series/{seriesId}",
5002
5118
  method: "PATCH",
@@ -6335,6 +6451,7 @@ const API_ENDPOINTS = {
6335
6451
  errors: [
6336
6452
  "validation:invalid_input",
6337
6453
  "resource:not_found",
6454
+ "resource:conflict",
6338
6455
  "server:internal_error"
6339
6456
  ],
6340
6457
  auth: "service",
@@ -6448,24 +6565,12 @@ const API_ENDPOINTS = {
6448
6565
  auth: "service",
6449
6566
  responseKind: "json"
6450
6567
  },
6451
- sdkPullCourses: {
6452
- path: "/sdk/{siteId}/pull/courses",
6453
- method: "GET",
6454
- auth: "service",
6455
- responseKind: "json"
6456
- },
6457
6568
  sdkPullEntries: {
6458
6569
  path: "/sdk/{siteId}/pull/entries",
6459
6570
  method: "GET",
6460
6571
  auth: "service",
6461
6572
  responseKind: "json"
6462
6573
  },
6463
- sdkPullEntriesByType: {
6464
- path: "/sdk/{siteId}/pull/entries/{type}",
6465
- method: "GET",
6466
- auth: "service",
6467
- responseKind: "json"
6468
- },
6469
6574
  sdkPullEntriesAll: {
6470
6575
  path: "/sdk/{siteId}/pull/entries/all",
6471
6576
  method: "GET",
@@ -6731,48 +6836,13 @@ const API_ENDPOINTS = {
6731
6836
  "server:internal_error"
6732
6837
  ]
6733
6838
  },
6734
- sdkListCourses: {
6735
- path: "/sdk/{siteId}/courses",
6736
- method: "GET",
6737
- auth: "service",
6738
- responseKind: "json"
6739
- },
6740
- sdkUpsertCourse: {
6741
- path: "/sdk/{siteId}/courses",
6742
- method: "POST",
6743
- auth: "service",
6744
- responseKind: "json"
6745
- },
6746
- sdkGetCourse: {
6747
- path: "/sdk/{siteId}/courses/{identifier}",
6748
- method: "GET",
6749
- auth: "service",
6750
- responseKind: "json"
6751
- },
6752
- sdkDeleteCourse: {
6753
- path: "/sdk/{siteId}/courses/{identifier}",
6754
- method: "DELETE",
6755
- auth: "service",
6756
- responseKind: "json"
6757
- },
6758
6839
  sdkUpsertEntry: {
6759
6840
  path: "/sdk/{siteId}/entries",
6760
6841
  method: "POST",
6761
6842
  auth: "service",
6762
6843
  responseKind: "json"
6763
6844
  },
6764
- sdkListEntries: {
6765
- path: "/sdk/{siteId}/entries/{contentType}",
6766
- method: "GET",
6767
- auth: "service",
6768
- responseKind: "json"
6769
- },
6770
- sdkGetEntry: {
6771
- path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
6772
- method: "GET",
6773
- auth: "service",
6774
- responseKind: "json"
6775
- },
6845
+ ...SDK_ENTRY_READ_ENDPOINTS,
6776
6846
  sdkDeleteEntry: {
6777
6847
  path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
6778
6848
  method: "DELETE",
@@ -6997,21 +7067,22 @@ const API_ENDPOINTS = {
6997
7067
  "server:internal_error"
6998
7068
  ]
6999
7069
  },
7000
- portalGetCourses: {
7001
- path: "/portal/courses",
7070
+ portalGetWholeSeriesRegistrations: {
7071
+ path: "/portal/dated-offerings/whole-series",
7002
7072
  method: "GET",
7003
7073
  auth: "public",
7004
- responseKind: "json"
7074
+ responseKind: "json",
7075
+ errors: ["server:internal_error"]
7005
7076
  },
7006
- portalGetCourseBookingQuestions: {
7007
- path: "/portal/courses/{enrollmentId}/booking-questions",
7077
+ portalGetWholeSeriesBookingQuestions: {
7078
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions",
7008
7079
  method: "GET",
7009
7080
  auth: "public",
7010
7081
  responseKind: "json",
7011
7082
  errors: ["resource:not_found", "server:internal_error"]
7012
7083
  },
7013
- portalUpdateCourseBookingQuestions: {
7014
- path: "/portal/courses/{enrollmentId}/booking-questions",
7084
+ portalUpdateWholeSeriesBookingQuestions: {
7085
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions",
7015
7086
  method: "PUT",
7016
7087
  auth: "public",
7017
7088
  responseKind: "json",
@@ -7021,8 +7092,8 @@ const API_ENDPOINTS = {
7021
7092
  "server:internal_error"
7022
7093
  ]
7023
7094
  },
7024
- portalCreateCourseBookingQuestionsUploadUrl: {
7025
- path: "/portal/courses/{enrollmentId}/booking-questions/upload-url",
7095
+ portalCreateWholeSeriesBookingQuestionsUploadUrl: {
7096
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions/upload-url",
7026
7097
  method: "POST",
7027
7098
  auth: "public",
7028
7099
  responseKind: "json",
@@ -7032,8 +7103,8 @@ const API_ENDPOINTS = {
7032
7103
  "server:internal_error"
7033
7104
  ]
7034
7105
  },
7035
- portalFinalizeCourseBookingQuestionsUpload: {
7036
- path: "/portal/courses/{enrollmentId}/booking-questions/upload",
7106
+ portalFinalizeWholeSeriesBookingQuestionsUpload: {
7107
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions/upload",
7037
7108
  method: "POST",
7038
7109
  auth: "public",
7039
7110
  responseKind: "json",
@@ -7043,11 +7114,12 @@ const API_ENDPOINTS = {
7043
7114
  "server:internal_error"
7044
7115
  ]
7045
7116
  },
7046
- portalCancelCourseEnrollment: {
7047
- path: "/portal/courses/{enrollmentId}/cancel",
7117
+ portalCancelWholeSeriesRegistration: {
7118
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/cancel",
7048
7119
  method: "POST",
7049
7120
  auth: "public",
7050
- responseKind: "json"
7121
+ responseKind: "json",
7122
+ errors: ["resource:not_found", "server:internal_error"]
7051
7123
  },
7052
7124
  portalCancelEventRegistration: {
7053
7125
  path: "/portal/events/{registrationId}/cancel",