@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
@@ -16,6 +16,12 @@ function blockedDemoMutationPolicy(classification, publicMessage) {
16
16
  };
17
17
  }
18
18
  //#endregion
19
+ //#region ../api/src/demoMutationPolicies.ts
20
+ const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
21
+ const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
22
+ const DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
23
+ const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
24
+ //#endregion
19
25
  //#region ../api/src/cache-tags.ts
20
26
  /**
21
27
  * Tag templates for endpoint definitions (support `{param}` placeholders).
@@ -42,7 +48,7 @@ const TAG_TEMPLATES = {
42
48
  formSubmissionsBySlug: "riverbank:form-submissions:{slug}",
43
49
  publicEvents: "riverbank:site:{siteId}:public-events",
44
50
  publicEventFilters: "riverbank:site:{siteId}:public-event-filters",
45
- publicCourses: "riverbank:site:{siteId}:public-courses",
51
+ publicWholeSeriesOfferings: "riverbank:site:{siteId}:public-whole-series-offerings",
46
52
  publicTeamMembers: "riverbank:site:{siteId}:public-team-members",
47
53
  publicProducts: "riverbank:site:{siteId}:public-products",
48
54
  publicPasses: "riverbank:site:{siteId}:public-passes",
@@ -57,627 +63,810 @@ const TAG_TEMPLATES = {
57
63
  siteTheme: "riverbank:site:{siteId}:theme"
58
64
  };
59
65
  //#endregion
60
- //#region ../api/src/endpoints.ts
61
- const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
62
- const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
63
- const DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
64
- const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
65
- const API_ENDPOINTS = {
66
- aiContentUpdateChat: {
67
- path: "/ai/content-update-chat",
68
- method: "POST",
69
- auth: "user",
70
- responseKind: "stream"
71
- },
72
- aiChat: {
73
- path: "/ai/chat",
74
- method: "POST",
75
- auth: "user",
76
- responseKind: "stream"
77
- },
78
- aiDesignerThemeApply: {
79
- path: "/sites/{siteId}/ai/designer/theme/apply",
80
- method: "POST",
81
- tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme],
82
- auth: "user",
83
- responseKind: "json"
84
- },
85
- aiDesignerPageOpsApply: {
86
- path: "/sites/{siteId}/ai/designer/page/apply",
87
- method: "POST",
88
- tags: [TAG_TEMPLATES.siteCollection],
89
- auth: "user",
66
+ //#region ../api/src/sdkEntryReadEndpoints.ts
67
+ const SDK_ENTRY_READ_ENDPOINTS = {
68
+ sdkPullEntriesByType: {
69
+ path: "/sdk/{siteId}/pull/entries/{type}",
70
+ method: "GET",
71
+ errors: ["validation:invalid_input", "server:internal_error"],
72
+ auth: "service",
90
73
  responseKind: "json"
91
74
  },
92
- applySeoChanges: {
93
- path: "/seo/apply",
94
- method: "POST",
95
- auth: "user",
75
+ sdkListEntries: {
76
+ path: "/sdk/{siteId}/entries/{contentType}",
77
+ method: "GET",
78
+ errors: ["validation:invalid_input", "server:internal_error"],
79
+ auth: "service",
96
80
  responseKind: "json"
97
81
  },
98
- aiCreateBriefChat: {
99
- path: "/ai/chat/create-brief",
100
- method: "POST",
101
- auth: "user",
82
+ sdkGetEntry: {
83
+ path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
84
+ method: "GET",
85
+ errors: [
86
+ "validation:invalid_input",
87
+ "resource:not_found",
88
+ "server:internal_error"
89
+ ],
90
+ auth: "service",
102
91
  responseKind: "json"
103
- },
104
- aiPatchDryRun: {
105
- path: "/ai/patch/dry-run",
106
- method: "POST",
92
+ }
93
+ };
94
+ //#endregion
95
+ //#region ../api/src/defineEndpointDefinitions.ts
96
+ /**
97
+ * Validates extracted endpoint descriptors while preserving each literal path,
98
+ * method, and parameter contract for the typed URL builders.
99
+ */
100
+ function defineEndpointDefinitions(definitions) {
101
+ return definitions;
102
+ }
103
+ //#endregion
104
+ //#region ../api/src/appointmentEndpointDefinitions.ts
105
+ const APPOINTMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
106
+ listAppointmentResources: {
107
+ path: "/sites/{siteId}/bookings/resources",
108
+ method: "GET",
107
109
  auth: "user",
108
110
  responseKind: "json"
109
111
  },
110
- aiPatchApply: {
111
- path: "/ai/patch/apply",
112
+ createAppointmentResource: {
113
+ path: "/sites/{siteId}/bookings/resources",
112
114
  method: "POST",
113
115
  auth: "user",
114
- responseKind: "json"
116
+ responseKind: "json",
117
+ errors: [
118
+ "validation:invalid_input",
119
+ "billing:plan_limit_exceeded",
120
+ "server:internal_error"
121
+ ]
115
122
  },
116
- aiPlaygroundProposeMulti: {
117
- path: "/sites/{siteId}/ai/playground/propose-multi",
123
+ createAppointmentResourceWithAccountAccess: {
124
+ path: "/sites/{siteId}/bookings/resources/account-access",
118
125
  method: "POST",
119
126
  auth: "user",
120
- responseKind: "stream"
127
+ responseKind: "json",
128
+ errors: [
129
+ "validation:invalid_input",
130
+ "auth:forbidden",
131
+ "billing:plan_limit_exceeded",
132
+ "resource:conflict",
133
+ "resource:not_found",
134
+ "server:internal_error"
135
+ ]
121
136
  },
122
- aiPlaygroundProposeMultiGet: {
123
- path: "/sites/{siteId}/ai/playground/propose-multi",
137
+ getAppointmentResource: {
138
+ path: "/sites/{siteId}/bookings/resources/{resourceId}",
124
139
  method: "GET",
125
140
  auth: "user",
126
- responseKind: "stream"
141
+ responseKind: "json"
127
142
  },
128
- aiAssistantChatSite: {
129
- path: "/sites/{siteId}/ai/assistant/chat",
130
- method: "POST",
143
+ updateAppointmentResource: {
144
+ path: "/sites/{siteId}/bookings/resources/{resourceId}",
145
+ method: "PUT",
131
146
  auth: "user",
132
- responseKind: "stream"
147
+ responseKind: "json",
148
+ errors: [
149
+ "validation:invalid_input",
150
+ "resource:not_found",
151
+ "server:internal_error"
152
+ ]
133
153
  },
134
- aiDesignerChat: {
135
- path: "/sites/{siteId}/ai/designer/chat",
136
- method: "POST",
154
+ removeAppointmentResource: {
155
+ path: "/sites/{siteId}/bookings/resources/{resourceId}",
156
+ method: "DELETE",
137
157
  auth: "user",
138
- responseKind: "stream"
158
+ responseKind: "json",
159
+ errors: ["resource:not_found", "server:internal_error"]
139
160
  },
140
- aiPlaygroundPageConvert: {
141
- path: "/sites/{siteId}/ai/playground/page-convert",
142
- method: "POST",
161
+ listAppointmentReservations: {
162
+ path: "/sites/{siteId}/bookings/appointment-reservations",
163
+ method: "GET",
143
164
  auth: "user",
144
- responseKind: "json"
165
+ responseKind: "json",
166
+ errors: []
145
167
  },
146
- aiPlaygroundPageConvertJobsCreate: {
147
- path: "/sites/{siteId}/ai/playground/page-convert/jobs",
168
+ createAppointmentReservation: {
169
+ path: "/sites/{siteId}/bookings/appointment-reservations",
148
170
  method: "POST",
149
171
  auth: "user",
150
- responseKind: "json"
172
+ responseKind: "json",
173
+ errors: [
174
+ "validation:invalid_input",
175
+ "resource:not_found",
176
+ "resource:conflict",
177
+ "server:internal_error"
178
+ ]
151
179
  },
152
- aiPlaygroundPageConvertJobsList: {
153
- path: "/sites/{siteId}/ai/playground/page-convert/jobs",
180
+ getAppointmentReservation: {
181
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
154
182
  method: "GET",
155
183
  auth: "user",
156
- responseKind: "json"
184
+ responseKind: "json",
185
+ errors: ["resource:not_found", "server:internal_error"]
157
186
  },
158
- aiPlaygroundPageConvertJobGet: {
159
- path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}",
160
- method: "GET",
187
+ updateAppointmentReservation: {
188
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
189
+ method: "PUT",
161
190
  auth: "user",
162
- responseKind: "json"
191
+ responseKind: "json",
192
+ errors: [
193
+ "validation:invalid_input",
194
+ "resource:not_found",
195
+ "resource:conflict",
196
+ "server:internal_error"
197
+ ]
163
198
  },
164
- aiPlaygroundPageConvertJobRun: {
165
- path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/run",
199
+ pauseAppointmentReservation: {
200
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
166
201
  method: "POST",
167
202
  auth: "user",
168
- responseKind: "json"
169
- },
170
- aiPlaygroundPageConvertJobEvents: {
171
- path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/events",
172
- method: "GET",
173
- auth: "user",
174
- responseKind: "json"
203
+ responseKind: "json",
204
+ errors: [
205
+ "resource:not_found",
206
+ "resource:conflict",
207
+ "server:internal_error"
208
+ ]
175
209
  },
176
- aiGenerateSite: {
177
- path: "/sites/{siteId}/ai/generate",
210
+ resumeAppointmentReservation: {
211
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
178
212
  method: "POST",
179
213
  auth: "user",
180
214
  responseKind: "json",
181
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
182
- },
183
- getOnboardingPreviewStatus: {
184
- path: "/public/sites/{siteId}/onboarding/preview-status",
185
- method: "GET",
186
- auth: "public",
187
- errors: [],
188
- responseKind: "json"
189
- },
190
- listOnboardingPreviewThemes: {
191
- path: "/public/sites/{siteId}/onboarding/themes",
192
- method: "GET",
193
- auth: "public",
194
- errors: [],
195
- responseKind: "json"
215
+ errors: [
216
+ "resource:not_found",
217
+ "resource:conflict",
218
+ "server:internal_error"
219
+ ]
196
220
  },
197
- acknowledgeLaunchRequirement: {
198
- path: "/sites/{siteId}/launch/acknowledge-requirement",
221
+ endAppointmentReservation: {
222
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
199
223
  method: "POST",
200
224
  auth: "user",
201
- errors: [],
202
225
  responseKind: "json",
203
- demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
226
+ errors: [
227
+ "validation:invalid_input",
228
+ "resource:not_found",
229
+ "resource:conflict",
230
+ "server:internal_error"
231
+ ]
204
232
  },
205
- goLiveSite: {
206
- path: "/sites/{siteId}/launch/go-live",
233
+ previewAppointmentReservationRun: {
234
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
207
235
  method: "POST",
208
236
  auth: "user",
209
- errors: [],
210
- responseKind: "json"
237
+ responseKind: "json",
238
+ errors: [
239
+ "validation:invalid_input",
240
+ "resource:not_found",
241
+ "resource:conflict",
242
+ "server:internal_error"
243
+ ]
211
244
  },
212
- resendOnboardingPreviewConfirmation: {
213
- path: "/public/sites/{siteId}/onboarding/resend-confirmation",
245
+ createAppointmentReservationRun: {
246
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
214
247
  method: "POST",
215
- auth: "public",
216
- errors: [],
217
- responseKind: "json"
248
+ auth: "user",
249
+ responseKind: "json",
250
+ errors: [
251
+ "validation:invalid_input",
252
+ "resource:not_found",
253
+ "resource:conflict",
254
+ "server:internal_error"
255
+ ]
218
256
  },
219
- createPublicOnboardingAttempt: {
220
- path: "/public/onboarding/attempts",
257
+ createTeamMemberProfile: {
258
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
221
259
  method: "POST",
222
- auth: "public",
223
- errors: [],
224
- responseKind: "json"
225
- },
226
- createPublicOnboardingLogoUploadUrl: {
227
- path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
228
- method: "POST",
229
- auth: "public",
230
- errors: [],
231
- responseKind: "json"
232
- },
233
- uploadPublicOnboardingLogo: {
234
- path: "/public/onboarding/attempts/{attemptToken}/logo",
235
- method: "POST",
236
- auth: "public",
237
- errors: [],
238
- responseKind: "json"
239
- },
240
- getPublicOnboardingAttempt: {
241
- path: "/public/onboarding/attempts/{attemptToken}",
242
- method: "GET",
243
- auth: "public",
244
- errors: [],
245
- responseKind: "json"
260
+ auth: "user",
261
+ responseKind: "json",
262
+ errors: [
263
+ "validation:invalid_input",
264
+ "resource:not_found",
265
+ "resource:conflict",
266
+ "server:internal_error"
267
+ ]
246
268
  },
247
- getPublicOnboardingAttemptProgress: {
248
- path: "/public/onboarding/attempts/{attemptToken}/status",
249
- method: "GET",
250
- auth: "public",
251
- errors: [],
252
- responseKind: "json"
269
+ updateTeamMemberProfilePolicy: {
270
+ path: "/sites/{siteId}/bookings/resources/profile-policy",
271
+ method: "PUT",
272
+ auth: "user",
273
+ responseKind: "json",
274
+ errors: ["validation:invalid_input", "server:internal_error"]
253
275
  },
254
- updatePublicOnboardingAttempt: {
255
- path: "/public/onboarding/attempts/{attemptToken}",
256
- method: "PATCH",
257
- auth: "public",
258
- errors: [],
259
- responseKind: "json"
276
+ updateTeamMemberProfileContent: {
277
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/content",
278
+ method: "PUT",
279
+ tags: [
280
+ "site-{siteId}",
281
+ "content-{siteId}-team-member",
282
+ "content-entry-{entryId}"
283
+ ],
284
+ auth: "user",
285
+ responseKind: "json",
286
+ errors: [
287
+ "validation:invalid_input",
288
+ "resource:not_found",
289
+ "resource:conflict",
290
+ "server:internal_error"
291
+ ]
260
292
  },
261
- runPublicOnboardingAttempt: {
262
- path: "/public/onboarding/attempts/{attemptToken}/run",
293
+ publishTeamMemberProfile: {
294
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
263
295
  method: "POST",
264
- auth: "public",
265
- errors: [],
266
- responseKind: "json"
296
+ tags: [
297
+ "site-{siteId}",
298
+ "content-{siteId}-team-member",
299
+ "content-entry-{entryId}"
300
+ ],
301
+ auth: "user",
302
+ responseKind: "json",
303
+ errors: [
304
+ "validation:invalid_input",
305
+ "resource:not_found",
306
+ "server:internal_error"
307
+ ]
267
308
  },
268
- aiSiteWizardSuggestGoals: {
269
- path: "/sites/{siteId}/ai/site-wizard/goals",
309
+ discardTeamMemberProfileDraft: {
310
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
270
311
  method: "POST",
312
+ tags: [
313
+ "site-{siteId}",
314
+ "content-{siteId}-team-member",
315
+ "content-entry-{entryId}"
316
+ ],
271
317
  auth: "user",
272
318
  responseKind: "json",
273
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
319
+ errors: [
320
+ "validation:invalid_input",
321
+ "resource:not_found",
322
+ "resource:conflict",
323
+ "server:internal_error"
324
+ ]
274
325
  },
275
- aiSiteWizardIntakeTriage: {
276
- path: "/sites/{siteId}/ai/site-wizard/intake-triage",
326
+ unpublishTeamMemberProfile: {
327
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/unpublish",
277
328
  method: "POST",
329
+ tags: [
330
+ "site-{siteId}",
331
+ "content-{siteId}-team-member",
332
+ "content-entry-{entryId}"
333
+ ],
278
334
  auth: "user",
279
335
  responseKind: "json",
280
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
336
+ errors: [
337
+ "validation:invalid_input",
338
+ "resource:not_found",
339
+ "resource:conflict",
340
+ "server:internal_error"
341
+ ]
281
342
  },
282
- aiSiteWizardTelemetry: {
283
- path: "/sites/{siteId}/ai/site-wizard/telemetry",
343
+ scheduleTeamMemberProfile: {
344
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
284
345
  method: "POST",
346
+ tags: [
347
+ "site-{siteId}",
348
+ "content-{siteId}-team-member",
349
+ "content-entry-{entryId}"
350
+ ],
285
351
  auth: "user",
286
- errors: [],
287
352
  responseKind: "json",
288
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
353
+ errors: [
354
+ "validation:invalid_input",
355
+ "resource:not_found",
356
+ "resource:conflict",
357
+ "server:internal_error"
358
+ ]
289
359
  },
290
- listGscPropertiesAdmin: {
291
- path: "/admin/seo/gsc/properties",
360
+ cancelScheduledTeamMemberProfile: {
361
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
362
+ method: "DELETE",
363
+ tags: [
364
+ "site-{siteId}",
365
+ "content-{siteId}-team-member",
366
+ "content-entry-{entryId}"
367
+ ],
368
+ auth: "user",
369
+ responseKind: "json",
370
+ errors: [
371
+ "validation:invalid_input",
372
+ "resource:not_found",
373
+ "resource:conflict",
374
+ "server:internal_error"
375
+ ]
376
+ },
377
+ updateTeamMemberProfileRouteMetadata: {
378
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/routes/{routeId}/metadata",
379
+ method: "PATCH",
380
+ tags: [
381
+ TAG_TEMPLATES.siteCollection,
382
+ TAG_TEMPLATES.siteRoutableContent,
383
+ TAG_TEMPLATES.routeById
384
+ ],
385
+ auth: "user",
386
+ responseKind: "json",
387
+ errors: [
388
+ "validation:invalid_input",
389
+ "resource:not_found",
390
+ "resource:conflict",
391
+ "server:internal_error"
392
+ ]
393
+ },
394
+ listAppointmentServices: {
395
+ path: "/sites/{siteId}/bookings/services",
292
396
  method: "GET",
293
- auth: "admin",
294
- errors: [],
397
+ auth: "user",
295
398
  responseKind: "json"
296
399
  },
297
- getPublicChallenge: {
298
- path: "/public/challenge",
400
+ exportAppointmentServicesCsv: {
401
+ path: "/sites/{siteId}/bookings/services/export.csv",
299
402
  method: "GET",
300
- auth: "public",
403
+ tags: [
404
+ "site-{siteId}",
405
+ "bookings",
406
+ "appointment-services-{siteId}"
407
+ ],
301
408
  errors: [],
302
- responseKind: "text"
409
+ auth: "user",
410
+ responseKind: "blob"
303
411
  },
304
- checkRedirect: {
305
- path: "/public/content/redirect",
412
+ createAppointmentService: {
413
+ path: "/sites/{siteId}/bookings/services",
414
+ method: "POST",
415
+ auth: "user",
416
+ responseKind: "json",
417
+ errors: ["validation:invalid_input", "server:internal_error"]
418
+ },
419
+ getAppointmentService: {
420
+ path: "/sites/{siteId}/bookings/services/{serviceId}",
306
421
  method: "GET",
307
- revalidate: 86400,
308
- tags: ["redirect"],
309
- errors: [],
310
- auth: "public",
422
+ auth: "user",
311
423
  responseKind: "json"
312
424
  },
313
- listRedirectRules: {
314
- path: "/sites/{siteId}/redirects",
425
+ updateAppointmentService: {
426
+ path: "/sites/{siteId}/bookings/services/{serviceId}",
427
+ method: "PUT",
428
+ auth: "user",
429
+ responseKind: "json",
430
+ errors: [
431
+ "validation:invalid_input",
432
+ "resource:not_found",
433
+ "server:internal_error"
434
+ ]
435
+ },
436
+ deleteAppointmentService: {
437
+ path: "/sites/{siteId}/bookings/services/{serviceId}",
438
+ method: "DELETE",
439
+ auth: "user",
440
+ responseKind: "json",
441
+ errors: ["resource:not_found", "server:internal_error"]
442
+ },
443
+ getAppointmentSetup: {
444
+ path: "/sites/{siteId}/bookings/appointment-setup",
315
445
  method: "GET",
316
446
  auth: "user",
317
- responseKind: "json"
447
+ responseKind: "json",
448
+ errors: ["server:internal_error"]
318
449
  },
319
- createRedirectRule: {
320
- path: "/sites/{siteId}/redirects",
450
+ applyAppointmentSetup: {
451
+ path: "/sites/{siteId}/bookings/appointment-setup",
321
452
  method: "POST",
322
- errors: ["validation:invalid_input", "resource:not_found"],
453
+ auth: "user",
454
+ responseKind: "json",
455
+ errors: ["validation:invalid_input", "server:internal_error"]
456
+ },
457
+ getAppointmentServicesReference: {
458
+ path: "/sites/{siteId}/bookings/services/reference",
459
+ method: "GET",
323
460
  auth: "user",
324
461
  responseKind: "json"
325
462
  },
326
- deleteRedirectRule: {
327
- path: "/sites/{siteId}/redirects/{ruleId}",
328
- method: "DELETE",
329
- errors: ["resource:not_found"],
463
+ getAppointmentResourcesReference: {
464
+ path: "/sites/{siteId}/bookings/resources/reference",
465
+ method: "GET",
330
466
  auth: "user",
331
467
  responseKind: "json"
332
468
  },
333
- listWebhooks: {
334
- path: "/sites/{siteId}/webhooks",
469
+ getResourceServices: {
470
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
335
471
  method: "GET",
336
- tags: ["site-{siteId}", "webhooks"],
337
472
  auth: "user",
338
473
  responseKind: "json"
339
474
  },
340
- createWebhook: {
341
- path: "/sites/{siteId}/webhooks",
342
- method: "POST",
343
- tags: ["site-{siteId}", "webhooks"],
475
+ updateResourceServices: {
476
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
477
+ method: "PUT",
344
478
  auth: "user",
345
479
  responseKind: "json"
346
480
  },
347
- getWebhook: {
348
- path: "/sites/{siteId}/webhooks/{webhookId}",
481
+ getServiceResources: {
482
+ path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
349
483
  method: "GET",
350
- tags: ["site-{siteId}", "webhooks"],
351
484
  auth: "user",
352
485
  responseKind: "json"
353
486
  },
354
- updateWebhook: {
355
- path: "/sites/{siteId}/webhooks/{webhookId}",
356
- method: "PATCH",
357
- tags: ["site-{siteId}", "webhooks"],
487
+ updateServiceResources: {
488
+ path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
489
+ method: "PUT",
358
490
  auth: "user",
359
491
  responseKind: "json"
360
492
  },
361
- deleteWebhook: {
362
- path: "/sites/{siteId}/webhooks/{webhookId}",
493
+ listAvailabilityRules: {
494
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/availability",
495
+ method: "GET",
496
+ auth: "user",
497
+ responseKind: "json",
498
+ errors: ["resource:not_found", "server:internal_error"]
499
+ },
500
+ setWeeklyAvailability: {
501
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/weekly-availability",
502
+ method: "PUT",
503
+ auth: "user",
504
+ responseKind: "json",
505
+ errors: [
506
+ "validation:invalid_input",
507
+ "resource:not_found",
508
+ "server:internal_error"
509
+ ]
510
+ },
511
+ setServiceSpecificAvailability: {
512
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability",
513
+ method: "PUT",
514
+ auth: "user",
515
+ responseKind: "json",
516
+ errors: [
517
+ "validation:invalid_input",
518
+ "resource:not_found",
519
+ "server:internal_error"
520
+ ]
521
+ },
522
+ deleteServiceSpecificAvailability: {
523
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability/{scheduleId}",
363
524
  method: "DELETE",
364
- tags: ["site-{siteId}", "webhooks"],
365
525
  auth: "user",
366
- responseKind: "json"
526
+ responseKind: "json",
527
+ errors: ["resource:not_found", "server:internal_error"]
367
528
  },
368
- getSdkDeploymentHealth: {
369
- path: "/sites/{siteId}/sdk-deployment/health",
529
+ listBlackouts: {
530
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
370
531
  method: "GET",
371
- tags: ["site-{siteId}", "webhooks"],
372
532
  auth: "user",
373
- errors: [],
374
- responseKind: "json"
533
+ responseKind: "json",
534
+ errors: ["resource:not_found", "server:internal_error"]
375
535
  },
376
- setupSdkDeploymentRevalidationWebhook: {
377
- path: "/sites/{siteId}/sdk-deployment/revalidation-webhook",
536
+ createBlackout: {
537
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
378
538
  method: "POST",
379
- tags: ["site-{siteId}", "webhooks"],
380
539
  auth: "user",
381
- errors: ["validation:invalid_input", "resource:conflict"],
382
540
  responseKind: "json",
383
- demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
541
+ errors: [
542
+ "validation:invalid_input",
543
+ "resource:not_found",
544
+ "server:internal_error"
545
+ ]
384
546
  },
385
- listSiteApiKeys: {
386
- path: "/sites/{siteId}/api-keys",
547
+ deleteBlackout: {
548
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts/{blackoutId}",
549
+ method: "DELETE",
550
+ auth: "user",
551
+ responseKind: "json",
552
+ errors: ["resource:not_found", "server:internal_error"]
553
+ },
554
+ getCalendarStatus: {
555
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
387
556
  method: "GET",
388
557
  auth: "user",
389
- tags: ["site-{siteId}", "api-keys"],
390
- responseKind: "json"
558
+ responseKind: "json",
559
+ errors: ["auth:forbidden", "server:internal_error"]
391
560
  },
392
- createSiteApiKey: {
393
- path: "/sites/{siteId}/api-keys",
561
+ updateCalendarPreferences: {
562
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
563
+ method: "PUT",
564
+ auth: "user",
565
+ responseKind: "json",
566
+ errors: [
567
+ "validation:invalid_input",
568
+ "auth:forbidden",
569
+ "resource:not_found",
570
+ "server:internal_error"
571
+ ]
572
+ },
573
+ disconnectCalendar: {
574
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
575
+ method: "DELETE",
576
+ auth: "user",
577
+ responseKind: "json",
578
+ errors: [
579
+ "auth:forbidden",
580
+ "resource:not_found",
581
+ "server:internal_error"
582
+ ]
583
+ },
584
+ getResourceCalendarFeed: {
585
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
586
+ method: "GET",
587
+ auth: "user",
588
+ responseKind: "json",
589
+ errors: [
590
+ "auth:forbidden",
591
+ "resource:not_found",
592
+ "server:internal_error"
593
+ ]
594
+ },
595
+ regenerateResourceCalendarFeed: {
596
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
394
597
  method: "POST",
395
598
  auth: "user",
396
- tags: ["site-{siteId}", "api-keys"],
397
- responseKind: "json"
599
+ responseKind: "json",
600
+ errors: [
601
+ "auth:forbidden",
602
+ "resource:not_found",
603
+ "server:internal_error"
604
+ ]
398
605
  },
399
- revokeSiteApiKey: {
400
- path: "/sites/{siteId}/api-keys/{keyId}",
606
+ revokeResourceCalendarFeed: {
607
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
401
608
  method: "DELETE",
402
609
  auth: "user",
403
- tags: ["site-{siteId}", "api-keys"],
404
- responseKind: "json"
610
+ responseKind: "json",
611
+ errors: [
612
+ "auth:forbidden",
613
+ "resource:not_found",
614
+ "server:internal_error"
615
+ ]
405
616
  },
406
- getSitePreviewKey: {
407
- path: "/sites/{siteId}/api-keys/preview",
617
+ getVenueCalendarFeed: {
618
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
408
619
  method: "GET",
409
620
  auth: "user",
410
- tags: [
411
- "site-{siteId}",
412
- "api-keys",
413
- "preview-key"
414
- ],
415
- responseKind: "json"
621
+ responseKind: "json",
622
+ errors: [
623
+ "auth:forbidden",
624
+ "resource:not_found",
625
+ "server:internal_error"
626
+ ]
416
627
  },
417
- createSitePreviewKey: {
418
- path: "/sites/{siteId}/api-keys/preview",
628
+ regenerateVenueCalendarFeed: {
629
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
419
630
  method: "POST",
420
631
  auth: "user",
421
- tags: [
422
- "site-{siteId}",
423
- "api-keys",
424
- "preview-key"
425
- ],
426
- responseKind: "json"
632
+ responseKind: "json",
633
+ errors: [
634
+ "auth:forbidden",
635
+ "resource:not_found",
636
+ "server:internal_error"
637
+ ]
427
638
  },
428
- getSiteApiKeyAccessLogs: {
429
- path: "/sites/{siteId}/api-keys/access-logs",
639
+ revokeVenueCalendarFeed: {
640
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
641
+ method: "DELETE",
642
+ auth: "user",
643
+ responseKind: "json",
644
+ errors: [
645
+ "auth:forbidden",
646
+ "resource:not_found",
647
+ "server:internal_error"
648
+ ]
649
+ },
650
+ googleCalendarAuthorize: {
651
+ path: "/sites/{siteId}/bookings/calendar/google/authorize",
430
652
  method: "GET",
431
653
  auth: "user",
432
- tags: [
433
- "site-{siteId}",
434
- "api-keys",
435
- "access-logs"
436
- ],
437
- responseKind: "json"
654
+ responseKind: "void"
438
655
  },
439
- listManagementKeys: {
440
- path: "/sites/{siteId}/api-keys/management",
656
+ googleCalendarCallback: {
657
+ path: "/bookings/calendar/google/callback",
441
658
  method: "GET",
442
659
  auth: "user",
443
- tags: [
444
- "site-{siteId}",
445
- "api-keys",
446
- "management-keys"
447
- ],
448
- responseKind: "json"
660
+ responseKind: "void"
449
661
  },
450
- createManagementKey: {
451
- path: "/sites/{siteId}/api-keys/management",
452
- method: "POST",
662
+ getAvailableSlots: {
663
+ path: "/sites/{siteId}/bookings/availability/slots",
664
+ method: "GET",
453
665
  auth: "user",
454
- tags: [
455
- "site-{siteId}",
456
- "api-keys",
457
- "management-keys"
458
- ],
459
666
  responseKind: "json"
460
667
  },
461
- revokeManagementKey: {
462
- path: "/sites/{siteId}/api-keys/management",
463
- method: "DELETE",
668
+ listAppointments: {
669
+ path: "/sites/{siteId}/bookings/appointments",
670
+ method: "GET",
464
671
  auth: "user",
465
- tags: [
466
- "site-{siteId}",
467
- "api-keys",
468
- "management-keys"
469
- ],
470
672
  responseKind: "json"
471
673
  },
472
- getBookingSettings: {
473
- path: "/sites/{siteId}/bookings/settings",
674
+ exportBookingAppointmentsCsv: {
675
+ path: "/sites/{siteId}/bookings/appointments/export.csv",
474
676
  method: "GET",
475
677
  auth: "user",
476
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
678
+ errors: [],
679
+ responseKind: "blob"
680
+ },
681
+ createAppointment: {
682
+ path: "/sites/{siteId}/bookings/appointments",
683
+ method: "POST",
684
+ auth: "user",
477
685
  responseKind: "json"
478
686
  },
479
- updateBookingSettings: {
480
- path: "/sites/{siteId}/bookings/settings",
687
+ upsertBookingRequirementConfig: {
688
+ path: "/sites/{siteId}/bookings/requirements/config",
481
689
  method: "PUT",
482
690
  auth: "user",
483
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
484
691
  responseKind: "json",
485
692
  errors: [
486
693
  "validation:invalid_input",
487
- "auth:forbidden",
694
+ "resource:not_found",
488
695
  "server:internal_error"
489
696
  ]
490
697
  },
491
- listBookingClosures: {
492
- path: "/sites/{siteId}/bookings/closures",
493
- method: "GET",
698
+ cancelAppointment: {
699
+ path: "/sites/{siteId}/bookings/appointments/{appointmentId}/cancel",
700
+ method: "POST",
494
701
  auth: "user",
495
- tags: [
496
- "site-{siteId}",
497
- "bookings",
498
- "closures-{siteId}"
499
- ],
500
- responseKind: "json",
501
- errors: ["auth:forbidden", "server:internal_error"]
702
+ responseKind: "json"
502
703
  },
503
- previewBookingClosure: {
504
- path: "/sites/{siteId}/bookings/closures/preview",
704
+ rescheduleAppointment: {
705
+ path: "/sites/{siteId}/bookings/appointments/{appointmentId}/reschedule",
505
706
  method: "POST",
506
707
  auth: "user",
507
- tags: [
508
- "site-{siteId}",
509
- "bookings",
510
- "closures-{siteId}"
511
- ],
512
708
  responseKind: "json",
513
709
  errors: [
514
710
  "validation:invalid_input",
711
+ "resource:not_found",
515
712
  "auth:forbidden",
713
+ "resource:conflict",
516
714
  "server:internal_error"
517
715
  ]
518
- },
519
- createBookingClosure: {
520
- path: "/sites/{siteId}/bookings/closures",
521
- method: "POST",
716
+ }
717
+ });
718
+ //#endregion
719
+ //#region ../api/src/courseEndpointDefinitions.ts
720
+ const COURSE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
721
+ listCourses: {
722
+ path: "/sites/{siteId}/bookings/courses",
723
+ method: "GET",
522
724
  auth: "user",
725
+ responseKind: "json"
726
+ },
727
+ exportCoursesCsv: {
728
+ path: "/sites/{siteId}/bookings/courses/export.csv",
729
+ method: "GET",
523
730
  tags: [
524
731
  "site-{siteId}",
525
732
  "bookings",
526
- "closures-{siteId}"
733
+ "courses-{siteId}"
527
734
  ],
735
+ errors: [],
736
+ auth: "user",
737
+ responseKind: "blob"
738
+ },
739
+ createCourse: {
740
+ path: "/sites/{siteId}/bookings/courses",
741
+ method: "POST",
742
+ auth: "user",
528
743
  responseKind: "json",
529
744
  errors: [
530
745
  "validation:invalid_input",
746
+ "resource:not_found",
747
+ "resource:already_exists",
531
748
  "resource:conflict",
532
- "auth:forbidden",
533
749
  "server:internal_error"
534
750
  ]
535
751
  },
536
- getBookingClosure: {
537
- path: "/sites/{siteId}/bookings/closures/{closureId}",
538
- method: "GET",
539
- auth: "user",
540
- tags: [
541
- "site-{siteId}",
542
- "bookings",
543
- "closures-{siteId}"
544
- ],
545
- responseKind: "json",
546
- errors: ["resource:not_found", "server:internal_error"]
547
- },
548
- deleteBookingClosure: {
549
- path: "/sites/{siteId}/bookings/closures/{closureId}",
550
- method: "DELETE",
551
- auth: "user",
552
- tags: [
553
- "site-{siteId}",
554
- "bookings",
555
- "closures-{siteId}"
556
- ],
557
- responseKind: "json",
558
- errors: ["resource:not_found", "server:internal_error"]
559
- },
560
- opsListUpcomingEventOccurrences: {
561
- path: "/ops/sites/{siteId}/events",
562
- method: "GET",
563
- auth: "user",
564
- responseKind: "json"
565
- },
566
- opsListOccurrenceAttendees: {
567
- path: "/ops/sites/{siteId}/events/{occurrenceId}/attendees",
752
+ getCourse: {
753
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
568
754
  method: "GET",
569
755
  auth: "user",
570
756
  responseKind: "json"
571
757
  },
572
- opsValidateEventTicket: {
573
- path: "/ops/sites/{siteId}/events/tickets/validate",
574
- method: "POST",
758
+ updateCourse: {
759
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
760
+ method: "PATCH",
575
761
  auth: "user",
576
762
  responseKind: "json",
577
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
578
763
  errors: [
579
764
  "validation:invalid_input",
580
- "auth:forbidden",
581
765
  "resource:not_found",
766
+ "resource:conflict",
582
767
  "server:internal_error"
583
768
  ]
584
769
  },
585
- opsUpdateEventAttendeeCheckin: {
586
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/checkin",
587
- method: "POST",
770
+ deleteCourse: {
771
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
772
+ method: "DELETE",
588
773
  auth: "user",
589
774
  responseKind: "json",
590
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
591
775
  errors: [
592
776
  "validation:invalid_input",
593
- "auth:forbidden",
594
777
  "resource:not_found",
778
+ "resource:conflict",
595
779
  "server:internal_error"
596
780
  ]
597
781
  },
598
- opsGetEventAttendeeDetails: {
599
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}",
600
- method: "GET",
601
- auth: "user",
602
- responseKind: "json"
603
- },
604
- opsCancelEventAttendee: {
605
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/cancel",
606
- method: "POST",
782
+ deleteEventOffering: {
783
+ path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}",
784
+ method: "DELETE",
607
785
  auth: "user",
608
786
  responseKind: "json",
609
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
610
787
  errors: [
611
788
  "validation:invalid_input",
612
- "auth:forbidden",
613
789
  "resource:not_found",
614
790
  "resource:conflict",
615
791
  "server:internal_error"
616
792
  ]
617
793
  },
618
- getEventAttendeeDetails: {
619
- path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}",
620
- method: "GET",
794
+ duplicateCourse: {
795
+ path: "/sites/{siteId}/bookings/courses/{courseId}/duplicate",
796
+ method: "POST",
621
797
  auth: "user",
622
798
  responseKind: "json",
623
- errors: []
799
+ errors: [
800
+ "validation:invalid_input",
801
+ "resource:not_found",
802
+ "resource:already_exists",
803
+ "server:internal_error"
804
+ ]
624
805
  },
625
- cancelEventAttendee: {
626
- path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}/cancel",
806
+ changeCourseContentOwnership: {
807
+ path: "/sites/{siteId}/bookings/courses/{courseId}/content-ownership",
627
808
  method: "POST",
628
809
  auth: "user",
629
810
  responseKind: "json",
630
811
  errors: [
631
812
  "validation:invalid_input",
632
- "auth:forbidden",
633
813
  "resource:not_found",
634
814
  "resource:conflict",
635
815
  "server:internal_error"
636
816
  ]
637
817
  },
638
- opsRefundEventAttendee: {
639
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/refund",
818
+ addCourseEnrollment: {
819
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
640
820
  method: "POST",
641
821
  auth: "user",
642
822
  responseKind: "json",
643
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
644
823
  errors: [
645
824
  "validation:invalid_input",
646
- "auth:forbidden",
647
825
  "resource:not_found",
648
826
  "resource:conflict",
649
827
  "server:internal_error"
650
828
  ]
651
829
  },
652
- getEmailSettings: {
653
- path: "/sites/{siteId}/settings/emails",
830
+ listCourseEnrollments: {
831
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
654
832
  method: "GET",
655
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
656
833
  auth: "user",
657
834
  responseKind: "json"
658
835
  },
659
- updateEmailSettings: {
660
- path: "/sites/{siteId}/settings/emails",
661
- method: "PUT",
662
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
836
+ exportCourseEnrollmentsCsv: {
837
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/export.csv",
838
+ method: "GET",
663
839
  auth: "user",
664
- responseKind: "json"
840
+ errors: [],
841
+ responseKind: "blob"
665
842
  },
666
- sendTestEmail: {
667
- path: "/sites/{siteId}/settings/emails/test",
668
- method: "POST",
669
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
843
+ exportCourseWaitlistCsv: {
844
+ path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist/export.csv",
845
+ method: "GET",
846
+ tags: [
847
+ "site-{siteId}",
848
+ "bookings",
849
+ "courses-{courseId}"
850
+ ],
670
851
  auth: "user",
671
- responseKind: "json",
672
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
852
+ responseKind: "blob",
853
+ errors: []
673
854
  },
674
- previewEmailTemplate: {
675
- path: "/sites/{siteId}/settings/emails/preview",
676
- method: "POST",
677
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
855
+ updateCourseEnrollment: {
856
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
857
+ method: "PATCH",
678
858
  auth: "user",
679
- responseKind: "json"
680
- },
859
+ responseKind: "json",
860
+ errors: [
861
+ "validation:invalid_input",
862
+ "resource:not_found",
863
+ "server:internal_error"
864
+ ]
865
+ }
866
+ });
867
+ //#endregion
868
+ //#region ../api/src/newsletterEndpointDefinitions.ts
869
+ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
681
870
  getNewsletterSettings: {
682
871
  path: "/sites/{siteId}/newsletter/settings",
683
872
  method: "GET",
@@ -1030,770 +1219,701 @@ const API_ENDPOINTS = {
1030
1219
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1031
1220
  auth: "user",
1032
1221
  responseKind: "json"
1033
- },
1034
- listAppointmentResources: {
1035
- path: "/sites/{siteId}/bookings/resources",
1036
- method: "GET",
1037
- auth: "user",
1038
- responseKind: "json"
1039
- },
1040
- createAppointmentResource: {
1041
- path: "/sites/{siteId}/bookings/resources",
1042
- method: "POST",
1043
- auth: "user",
1044
- responseKind: "json",
1045
- errors: [
1046
- "validation:invalid_input",
1047
- "billing:plan_limit_exceeded",
1048
- "server:internal_error"
1049
- ]
1050
- },
1051
- createAppointmentResourceWithAccountAccess: {
1052
- path: "/sites/{siteId}/bookings/resources/account-access",
1053
- method: "POST",
1054
- auth: "user",
1055
- responseKind: "json",
1056
- errors: [
1057
- "validation:invalid_input",
1058
- "auth:forbidden",
1059
- "billing:plan_limit_exceeded",
1060
- "resource:conflict",
1061
- "resource:not_found",
1062
- "server:internal_error"
1063
- ]
1064
- },
1065
- getAppointmentResource: {
1066
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1222
+ }
1223
+ });
1224
+ //#endregion
1225
+ //#region ../api/src/publicWholeSeriesEndpointDefinitions.ts
1226
+ const PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1227
+ listPublicWholeSeriesOfferings: {
1228
+ path: "/public/sites/{siteId}/dated-offerings/whole-series",
1067
1229
  method: "GET",
1068
- auth: "user",
1230
+ revalidate: 60,
1231
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings],
1232
+ errors: ["server:internal_error"],
1233
+ auth: "public",
1069
1234
  responseKind: "json"
1070
1235
  },
1071
- updateAppointmentResource: {
1072
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1073
- method: "PUT",
1074
- auth: "user",
1075
- responseKind: "json",
1076
- errors: [
1077
- "validation:invalid_input",
1078
- "resource:not_found",
1079
- "server:internal_error"
1080
- ]
1081
- },
1082
- removeAppointmentResource: {
1083
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1084
- method: "DELETE",
1085
- auth: "user",
1086
- responseKind: "json",
1087
- errors: ["resource:not_found", "server:internal_error"]
1088
- },
1089
- listAppointmentReservations: {
1090
- path: "/sites/{siteId}/bookings/appointment-reservations",
1236
+ getPublicWholeSeriesOffering: {
1237
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/{eventSeriesId}",
1091
1238
  method: "GET",
1092
- auth: "user",
1093
- responseKind: "json",
1094
- errors: []
1239
+ revalidate: 60,
1240
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings],
1241
+ errors: ["resource:not_found", "server:internal_error"],
1242
+ auth: "public",
1243
+ responseKind: "json"
1095
1244
  },
1096
- createAppointmentReservation: {
1097
- path: "/sites/{siteId}/bookings/appointment-reservations",
1245
+ registerForWholeSeries: {
1246
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/enroll",
1098
1247
  method: "POST",
1099
- auth: "user",
1100
- responseKind: "json",
1248
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-enrollment"],
1101
1249
  errors: [
1250
+ "auth:unauthenticated",
1251
+ "auth:forbidden",
1102
1252
  "validation:invalid_input",
1103
1253
  "resource:not_found",
1104
1254
  "resource:conflict",
1255
+ "resource:already_exists",
1105
1256
  "server:internal_error"
1106
- ]
1107
- },
1108
- getAppointmentReservation: {
1109
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1110
- method: "GET",
1111
- auth: "user",
1112
- responseKind: "json",
1113
- errors: ["resource:not_found", "server:internal_error"]
1257
+ ],
1258
+ auth: "public",
1259
+ responseKind: "json"
1114
1260
  },
1115
- updateAppointmentReservation: {
1116
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1117
- method: "PUT",
1118
- auth: "user",
1119
- responseKind: "json",
1261
+ checkWholeSeriesEligibility: {
1262
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/check-eligibility",
1263
+ method: "POST",
1264
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-enrollment"],
1120
1265
  errors: [
1121
- "validation:invalid_input",
1266
+ "auth:unauthenticated",
1122
1267
  "resource:not_found",
1123
1268
  "resource:conflict",
1124
1269
  "server:internal_error"
1125
- ]
1270
+ ],
1271
+ auth: "public",
1272
+ responseKind: "json"
1126
1273
  },
1127
- pauseAppointmentReservation: {
1128
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1274
+ createWholeSeriesCheckout: {
1275
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/checkout",
1129
1276
  method: "POST",
1130
- auth: "user",
1277
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-checkout"],
1278
+ auth: "public",
1131
1279
  responseKind: "json",
1132
1280
  errors: [
1281
+ "auth:unauthenticated",
1282
+ "validation:invalid_input",
1133
1283
  "resource:not_found",
1134
1284
  "resource:conflict",
1135
1285
  "server:internal_error"
1136
1286
  ]
1137
1287
  },
1138
- resumeAppointmentReservation: {
1139
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
1288
+ getWholeSeriesRegistrationStatus: {
1289
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/registration-status",
1290
+ method: "GET",
1291
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-checkout"],
1292
+ errors: ["resource:not_found", "server:internal_error"],
1293
+ auth: "public",
1294
+ responseKind: "json"
1295
+ }
1296
+ });
1297
+ const API_ENDPOINTS = {
1298
+ aiContentUpdateChat: {
1299
+ path: "/ai/content-update-chat",
1140
1300
  method: "POST",
1141
1301
  auth: "user",
1142
- responseKind: "json",
1143
- errors: [
1144
- "resource:not_found",
1145
- "resource:conflict",
1146
- "server:internal_error"
1147
- ]
1302
+ responseKind: "stream"
1148
1303
  },
1149
- endAppointmentReservation: {
1150
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1304
+ aiChat: {
1305
+ path: "/ai/chat",
1151
1306
  method: "POST",
1152
1307
  auth: "user",
1153
- responseKind: "json",
1154
- errors: [
1155
- "validation:invalid_input",
1156
- "resource:not_found",
1157
- "resource:conflict",
1158
- "server:internal_error"
1159
- ]
1308
+ responseKind: "stream"
1160
1309
  },
1161
- previewAppointmentReservationRun: {
1162
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1310
+ aiDesignerThemeApply: {
1311
+ path: "/sites/{siteId}/ai/designer/theme/apply",
1163
1312
  method: "POST",
1313
+ tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme],
1164
1314
  auth: "user",
1165
- responseKind: "json",
1166
- errors: [
1167
- "validation:invalid_input",
1168
- "resource:not_found",
1169
- "resource:conflict",
1170
- "server:internal_error"
1171
- ]
1315
+ responseKind: "json"
1172
1316
  },
1173
- createAppointmentReservationRun: {
1174
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1317
+ aiDesignerPageOpsApply: {
1318
+ path: "/sites/{siteId}/ai/designer/page/apply",
1175
1319
  method: "POST",
1320
+ tags: [TAG_TEMPLATES.siteCollection],
1176
1321
  auth: "user",
1177
- responseKind: "json",
1178
- errors: [
1179
- "validation:invalid_input",
1180
- "resource:not_found",
1181
- "resource:conflict",
1182
- "server:internal_error"
1183
- ]
1322
+ responseKind: "json"
1184
1323
  },
1185
- createTeamMemberProfile: {
1186
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1324
+ applySeoChanges: {
1325
+ path: "/seo/apply",
1187
1326
  method: "POST",
1188
1327
  auth: "user",
1189
- responseKind: "json",
1190
- errors: [
1191
- "validation:invalid_input",
1192
- "resource:not_found",
1193
- "resource:conflict",
1194
- "server:internal_error"
1195
- ]
1328
+ responseKind: "json"
1196
1329
  },
1197
- updateTeamMemberProfilePolicy: {
1198
- path: "/sites/{siteId}/bookings/resources/profile-policy",
1199
- method: "PUT",
1330
+ aiCreateBriefChat: {
1331
+ path: "/ai/chat/create-brief",
1332
+ method: "POST",
1200
1333
  auth: "user",
1201
- responseKind: "json",
1202
- errors: ["validation:invalid_input", "server:internal_error"]
1334
+ responseKind: "json"
1203
1335
  },
1204
- updateTeamMemberProfileContent: {
1205
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/content",
1206
- method: "PUT",
1207
- tags: [
1208
- "site-{siteId}",
1209
- "content-{siteId}-team-member",
1210
- "content-entry-{entryId}"
1211
- ],
1336
+ aiPatchDryRun: {
1337
+ path: "/ai/patch/dry-run",
1338
+ method: "POST",
1212
1339
  auth: "user",
1213
- responseKind: "json",
1214
- errors: [
1215
- "validation:invalid_input",
1216
- "resource:not_found",
1217
- "resource:conflict",
1218
- "server:internal_error"
1219
- ]
1340
+ responseKind: "json"
1220
1341
  },
1221
- publishTeamMemberProfile: {
1222
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
1342
+ aiPatchApply: {
1343
+ path: "/ai/patch/apply",
1223
1344
  method: "POST",
1224
- tags: [
1225
- "site-{siteId}",
1226
- "content-{siteId}-team-member",
1227
- "content-entry-{entryId}"
1228
- ],
1229
1345
  auth: "user",
1230
- responseKind: "json",
1231
- errors: [
1232
- "validation:invalid_input",
1233
- "resource:not_found",
1234
- "server:internal_error"
1235
- ]
1346
+ responseKind: "json"
1236
1347
  },
1237
- discardTeamMemberProfileDraft: {
1238
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
1348
+ aiPlaygroundProposeMulti: {
1349
+ path: "/sites/{siteId}/ai/playground/propose-multi",
1239
1350
  method: "POST",
1240
- tags: [
1241
- "site-{siteId}",
1242
- "content-{siteId}-team-member",
1243
- "content-entry-{entryId}"
1244
- ],
1245
1351
  auth: "user",
1246
- responseKind: "json",
1247
- errors: [
1248
- "validation:invalid_input",
1249
- "resource:not_found",
1250
- "resource:conflict",
1251
- "server:internal_error"
1252
- ]
1352
+ responseKind: "stream"
1253
1353
  },
1254
- unpublishTeamMemberProfile: {
1255
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/unpublish",
1354
+ aiPlaygroundProposeMultiGet: {
1355
+ path: "/sites/{siteId}/ai/playground/propose-multi",
1356
+ method: "GET",
1357
+ auth: "user",
1358
+ responseKind: "stream"
1359
+ },
1360
+ aiAssistantChatSite: {
1361
+ path: "/sites/{siteId}/ai/assistant/chat",
1256
1362
  method: "POST",
1257
- tags: [
1258
- "site-{siteId}",
1259
- "content-{siteId}-team-member",
1260
- "content-entry-{entryId}"
1261
- ],
1262
1363
  auth: "user",
1263
- responseKind: "json",
1264
- errors: [
1265
- "validation:invalid_input",
1266
- "resource:not_found",
1267
- "resource:conflict",
1268
- "server:internal_error"
1269
- ]
1364
+ responseKind: "stream"
1270
1365
  },
1271
- scheduleTeamMemberProfile: {
1272
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
1366
+ aiDesignerChat: {
1367
+ path: "/sites/{siteId}/ai/designer/chat",
1273
1368
  method: "POST",
1274
- tags: [
1275
- "site-{siteId}",
1276
- "content-{siteId}-team-member",
1277
- "content-entry-{entryId}"
1278
- ],
1279
1369
  auth: "user",
1280
- responseKind: "json",
1281
- errors: [
1282
- "validation:invalid_input",
1283
- "resource:not_found",
1284
- "resource:conflict",
1285
- "server:internal_error"
1286
- ]
1370
+ responseKind: "stream"
1287
1371
  },
1288
- cancelScheduledTeamMemberProfile: {
1289
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
1290
- method: "DELETE",
1291
- tags: [
1292
- "site-{siteId}",
1293
- "content-{siteId}-team-member",
1294
- "content-entry-{entryId}"
1295
- ],
1372
+ aiPlaygroundPageConvert: {
1373
+ path: "/sites/{siteId}/ai/playground/page-convert",
1374
+ method: "POST",
1296
1375
  auth: "user",
1297
- responseKind: "json",
1298
- errors: [
1299
- "validation:invalid_input",
1300
- "resource:not_found",
1301
- "resource:conflict",
1302
- "server:internal_error"
1303
- ]
1376
+ responseKind: "json"
1304
1377
  },
1305
- updateTeamMemberProfileRouteMetadata: {
1306
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/routes/{routeId}/metadata",
1307
- method: "PATCH",
1308
- tags: [
1309
- TAG_TEMPLATES.siteCollection,
1310
- TAG_TEMPLATES.siteRoutableContent,
1311
- TAG_TEMPLATES.routeById
1312
- ],
1378
+ aiPlaygroundPageConvertJobsCreate: {
1379
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs",
1380
+ method: "POST",
1313
1381
  auth: "user",
1314
- responseKind: "json",
1315
- errors: [
1316
- "validation:invalid_input",
1317
- "resource:not_found",
1318
- "resource:conflict",
1319
- "server:internal_error"
1320
- ]
1382
+ responseKind: "json"
1321
1383
  },
1322
- listAppointmentServices: {
1323
- path: "/sites/{siteId}/bookings/services",
1384
+ aiPlaygroundPageConvertJobsList: {
1385
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs",
1324
1386
  method: "GET",
1325
1387
  auth: "user",
1326
1388
  responseKind: "json"
1327
1389
  },
1328
- exportAppointmentServicesCsv: {
1329
- path: "/sites/{siteId}/bookings/services/export.csv",
1330
- method: "GET",
1331
- tags: [
1332
- "site-{siteId}",
1333
- "bookings",
1334
- "appointment-services-{siteId}"
1335
- ],
1336
- errors: [],
1390
+ aiPlaygroundPageConvertJobGet: {
1391
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}",
1392
+ method: "GET",
1337
1393
  auth: "user",
1338
- responseKind: "blob"
1394
+ responseKind: "json"
1339
1395
  },
1340
- createAppointmentService: {
1341
- path: "/sites/{siteId}/bookings/services",
1396
+ aiPlaygroundPageConvertJobRun: {
1397
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/run",
1342
1398
  method: "POST",
1343
1399
  auth: "user",
1344
- responseKind: "json",
1345
- errors: ["validation:invalid_input", "server:internal_error"]
1400
+ responseKind: "json"
1346
1401
  },
1347
- getAppointmentService: {
1348
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1402
+ aiPlaygroundPageConvertJobEvents: {
1403
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/events",
1349
1404
  method: "GET",
1350
1405
  auth: "user",
1351
1406
  responseKind: "json"
1352
1407
  },
1353
- updateAppointmentService: {
1354
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1355
- method: "PUT",
1408
+ aiGenerateSite: {
1409
+ path: "/sites/{siteId}/ai/generate",
1410
+ method: "POST",
1356
1411
  auth: "user",
1357
1412
  responseKind: "json",
1358
- errors: [
1359
- "validation:invalid_input",
1360
- "resource:not_found",
1361
- "server:internal_error"
1362
- ]
1413
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1363
1414
  },
1364
- deleteAppointmentService: {
1365
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1366
- method: "DELETE",
1367
- auth: "user",
1368
- responseKind: "json",
1369
- errors: ["resource:not_found", "server:internal_error"]
1415
+ getOnboardingPreviewStatus: {
1416
+ path: "/public/sites/{siteId}/onboarding/preview-status",
1417
+ method: "GET",
1418
+ auth: "public",
1419
+ errors: [],
1420
+ responseKind: "json"
1370
1421
  },
1371
- getAppointmentSetup: {
1372
- path: "/sites/{siteId}/bookings/appointment-setup",
1422
+ listOnboardingPreviewThemes: {
1423
+ path: "/public/sites/{siteId}/onboarding/themes",
1373
1424
  method: "GET",
1374
- auth: "user",
1375
- responseKind: "json",
1376
- errors: ["server:internal_error"]
1425
+ auth: "public",
1426
+ errors: [],
1427
+ responseKind: "json"
1377
1428
  },
1378
- applyAppointmentSetup: {
1379
- path: "/sites/{siteId}/bookings/appointment-setup",
1429
+ acknowledgeLaunchRequirement: {
1430
+ path: "/sites/{siteId}/launch/acknowledge-requirement",
1380
1431
  method: "POST",
1381
1432
  auth: "user",
1433
+ errors: [],
1382
1434
  responseKind: "json",
1383
- errors: ["validation:invalid_input", "server:internal_error"]
1435
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
1384
1436
  },
1385
- getAppointmentServicesReference: {
1386
- path: "/sites/{siteId}/bookings/services/reference",
1387
- method: "GET",
1437
+ goLiveSite: {
1438
+ path: "/sites/{siteId}/launch/go-live",
1439
+ method: "POST",
1388
1440
  auth: "user",
1441
+ errors: [],
1389
1442
  responseKind: "json"
1390
1443
  },
1391
- getAppointmentResourcesReference: {
1392
- path: "/sites/{siteId}/bookings/resources/reference",
1393
- method: "GET",
1394
- auth: "user",
1444
+ resendOnboardingPreviewConfirmation: {
1445
+ path: "/public/sites/{siteId}/onboarding/resend-confirmation",
1446
+ method: "POST",
1447
+ auth: "public",
1448
+ errors: [],
1395
1449
  responseKind: "json"
1396
1450
  },
1397
- getResourceServices: {
1398
- path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
1399
- method: "GET",
1400
- auth: "user",
1451
+ createPublicOnboardingAttempt: {
1452
+ path: "/public/onboarding/attempts",
1453
+ method: "POST",
1454
+ auth: "public",
1455
+ errors: [],
1401
1456
  responseKind: "json"
1402
1457
  },
1403
- updateResourceServices: {
1404
- path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
1405
- method: "PUT",
1406
- auth: "user",
1458
+ createPublicOnboardingLogoUploadUrl: {
1459
+ path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
1460
+ method: "POST",
1461
+ auth: "public",
1462
+ errors: [],
1407
1463
  responseKind: "json"
1408
1464
  },
1409
- getServiceResources: {
1410
- path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
1411
- method: "GET",
1412
- auth: "user",
1465
+ uploadPublicOnboardingLogo: {
1466
+ path: "/public/onboarding/attempts/{attemptToken}/logo",
1467
+ method: "POST",
1468
+ auth: "public",
1469
+ errors: [],
1413
1470
  responseKind: "json"
1414
1471
  },
1415
- updateServiceResources: {
1416
- path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
1417
- method: "PUT",
1418
- auth: "user",
1472
+ getPublicOnboardingAttempt: {
1473
+ path: "/public/onboarding/attempts/{attemptToken}",
1474
+ method: "GET",
1475
+ auth: "public",
1476
+ errors: [],
1419
1477
  responseKind: "json"
1420
1478
  },
1421
- listAvailabilityRules: {
1422
- path: "/sites/{siteId}/bookings/resources/{resourceId}/availability",
1479
+ getPublicOnboardingAttemptProgress: {
1480
+ path: "/public/onboarding/attempts/{attemptToken}/status",
1423
1481
  method: "GET",
1424
- auth: "user",
1425
- responseKind: "json",
1426
- errors: ["resource:not_found", "server:internal_error"]
1482
+ auth: "public",
1483
+ errors: [],
1484
+ responseKind: "json"
1427
1485
  },
1428
- setWeeklyAvailability: {
1429
- path: "/sites/{siteId}/bookings/resources/{resourceId}/weekly-availability",
1430
- method: "PUT",
1486
+ updatePublicOnboardingAttempt: {
1487
+ path: "/public/onboarding/attempts/{attemptToken}",
1488
+ method: "PATCH",
1489
+ auth: "public",
1490
+ errors: [],
1491
+ responseKind: "json"
1492
+ },
1493
+ runPublicOnboardingAttempt: {
1494
+ path: "/public/onboarding/attempts/{attemptToken}/run",
1495
+ method: "POST",
1496
+ auth: "public",
1497
+ errors: [],
1498
+ responseKind: "json"
1499
+ },
1500
+ aiSiteWizardSuggestGoals: {
1501
+ path: "/sites/{siteId}/ai/site-wizard/goals",
1502
+ method: "POST",
1431
1503
  auth: "user",
1432
1504
  responseKind: "json",
1433
- errors: [
1434
- "validation:invalid_input",
1435
- "resource:not_found",
1436
- "server:internal_error"
1437
- ]
1505
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1438
1506
  },
1439
- setServiceSpecificAvailability: {
1440
- path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability",
1441
- method: "PUT",
1507
+ aiSiteWizardIntakeTriage: {
1508
+ path: "/sites/{siteId}/ai/site-wizard/intake-triage",
1509
+ method: "POST",
1442
1510
  auth: "user",
1443
1511
  responseKind: "json",
1444
- errors: [
1445
- "validation:invalid_input",
1446
- "resource:not_found",
1447
- "server:internal_error"
1448
- ]
1512
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1449
1513
  },
1450
- deleteServiceSpecificAvailability: {
1451
- path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability/{scheduleId}",
1452
- method: "DELETE",
1514
+ aiSiteWizardTelemetry: {
1515
+ path: "/sites/{siteId}/ai/site-wizard/telemetry",
1516
+ method: "POST",
1453
1517
  auth: "user",
1518
+ errors: [],
1454
1519
  responseKind: "json",
1455
- errors: ["resource:not_found", "server:internal_error"]
1520
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1456
1521
  },
1457
- listBlackouts: {
1458
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
1522
+ listGscPropertiesAdmin: {
1523
+ path: "/admin/seo/gsc/properties",
1524
+ method: "GET",
1525
+ auth: "admin",
1526
+ errors: [],
1527
+ responseKind: "json"
1528
+ },
1529
+ getPublicChallenge: {
1530
+ path: "/public/challenge",
1531
+ method: "GET",
1532
+ auth: "public",
1533
+ errors: [],
1534
+ responseKind: "text"
1535
+ },
1536
+ checkRedirect: {
1537
+ path: "/public/content/redirect",
1538
+ method: "GET",
1539
+ revalidate: 86400,
1540
+ tags: ["redirect"],
1541
+ errors: [],
1542
+ auth: "public",
1543
+ responseKind: "json"
1544
+ },
1545
+ listRedirectRules: {
1546
+ path: "/sites/{siteId}/redirects",
1459
1547
  method: "GET",
1460
1548
  auth: "user",
1461
- responseKind: "json",
1462
- errors: ["resource:not_found", "server:internal_error"]
1549
+ responseKind: "json"
1463
1550
  },
1464
- createBlackout: {
1465
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
1551
+ createRedirectRule: {
1552
+ path: "/sites/{siteId}/redirects",
1466
1553
  method: "POST",
1554
+ errors: ["validation:invalid_input", "resource:not_found"],
1467
1555
  auth: "user",
1468
- responseKind: "json",
1469
- errors: [
1470
- "validation:invalid_input",
1471
- "resource:not_found",
1472
- "server:internal_error"
1473
- ]
1556
+ responseKind: "json"
1474
1557
  },
1475
- deleteBlackout: {
1476
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts/{blackoutId}",
1558
+ deleteRedirectRule: {
1559
+ path: "/sites/{siteId}/redirects/{ruleId}",
1477
1560
  method: "DELETE",
1561
+ errors: ["resource:not_found"],
1478
1562
  auth: "user",
1479
- responseKind: "json",
1480
- errors: ["resource:not_found", "server:internal_error"]
1563
+ responseKind: "json"
1481
1564
  },
1482
- getCalendarStatus: {
1483
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1565
+ listWebhooks: {
1566
+ path: "/sites/{siteId}/webhooks",
1484
1567
  method: "GET",
1568
+ tags: ["site-{siteId}", "webhooks"],
1485
1569
  auth: "user",
1486
- responseKind: "json",
1487
- errors: ["auth:forbidden", "server:internal_error"]
1570
+ responseKind: "json"
1488
1571
  },
1489
- updateCalendarPreferences: {
1490
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1491
- method: "PUT",
1572
+ createWebhook: {
1573
+ path: "/sites/{siteId}/webhooks",
1574
+ method: "POST",
1575
+ tags: ["site-{siteId}", "webhooks"],
1492
1576
  auth: "user",
1493
- responseKind: "json",
1494
- errors: [
1495
- "validation:invalid_input",
1496
- "auth:forbidden",
1497
- "resource:not_found",
1498
- "server:internal_error"
1499
- ]
1577
+ responseKind: "json"
1500
1578
  },
1501
- disconnectCalendar: {
1502
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1579
+ getWebhook: {
1580
+ path: "/sites/{siteId}/webhooks/{webhookId}",
1581
+ method: "GET",
1582
+ tags: ["site-{siteId}", "webhooks"],
1583
+ auth: "user",
1584
+ responseKind: "json"
1585
+ },
1586
+ updateWebhook: {
1587
+ path: "/sites/{siteId}/webhooks/{webhookId}",
1588
+ method: "PATCH",
1589
+ tags: ["site-{siteId}", "webhooks"],
1590
+ auth: "user",
1591
+ responseKind: "json"
1592
+ },
1593
+ deleteWebhook: {
1594
+ path: "/sites/{siteId}/webhooks/{webhookId}",
1503
1595
  method: "DELETE",
1596
+ tags: ["site-{siteId}", "webhooks"],
1504
1597
  auth: "user",
1505
- responseKind: "json",
1506
- errors: [
1507
- "auth:forbidden",
1508
- "resource:not_found",
1509
- "server:internal_error"
1510
- ]
1598
+ responseKind: "json"
1511
1599
  },
1512
- getResourceCalendarFeed: {
1513
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1600
+ getSdkDeploymentHealth: {
1601
+ path: "/sites/{siteId}/sdk-deployment/health",
1514
1602
  method: "GET",
1603
+ tags: ["site-{siteId}", "webhooks"],
1515
1604
  auth: "user",
1516
- responseKind: "json",
1517
- errors: [
1518
- "auth:forbidden",
1519
- "resource:not_found",
1520
- "server:internal_error"
1521
- ]
1605
+ errors: [],
1606
+ responseKind: "json"
1522
1607
  },
1523
- regenerateResourceCalendarFeed: {
1524
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1608
+ setupSdkDeploymentRevalidationWebhook: {
1609
+ path: "/sites/{siteId}/sdk-deployment/revalidation-webhook",
1525
1610
  method: "POST",
1611
+ tags: ["site-{siteId}", "webhooks"],
1526
1612
  auth: "user",
1613
+ errors: ["validation:invalid_input", "resource:conflict"],
1527
1614
  responseKind: "json",
1528
- errors: [
1529
- "auth:forbidden",
1530
- "resource:not_found",
1531
- "server:internal_error"
1532
- ]
1533
- },
1534
- revokeResourceCalendarFeed: {
1535
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1536
- method: "DELETE",
1537
- auth: "user",
1538
- responseKind: "json",
1539
- errors: [
1540
- "auth:forbidden",
1541
- "resource:not_found",
1542
- "server:internal_error"
1543
- ]
1615
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
1544
1616
  },
1545
- getVenueCalendarFeed: {
1546
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1617
+ listSiteApiKeys: {
1618
+ path: "/sites/{siteId}/api-keys",
1547
1619
  method: "GET",
1548
1620
  auth: "user",
1549
- responseKind: "json",
1550
- errors: [
1551
- "auth:forbidden",
1552
- "resource:not_found",
1553
- "server:internal_error"
1554
- ]
1621
+ tags: ["site-{siteId}", "api-keys"],
1622
+ responseKind: "json"
1555
1623
  },
1556
- regenerateVenueCalendarFeed: {
1557
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1624
+ createSiteApiKey: {
1625
+ path: "/sites/{siteId}/api-keys",
1558
1626
  method: "POST",
1559
1627
  auth: "user",
1560
- responseKind: "json",
1561
- errors: [
1562
- "auth:forbidden",
1563
- "resource:not_found",
1564
- "server:internal_error"
1565
- ]
1628
+ tags: ["site-{siteId}", "api-keys"],
1629
+ responseKind: "json"
1566
1630
  },
1567
- revokeVenueCalendarFeed: {
1568
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1631
+ revokeSiteApiKey: {
1632
+ path: "/sites/{siteId}/api-keys/{keyId}",
1569
1633
  method: "DELETE",
1570
1634
  auth: "user",
1571
- responseKind: "json",
1572
- errors: [
1573
- "auth:forbidden",
1574
- "resource:not_found",
1575
- "server:internal_error"
1576
- ]
1577
- },
1578
- googleCalendarAuthorize: {
1579
- path: "/sites/{siteId}/bookings/calendar/google/authorize",
1580
- method: "GET",
1581
- auth: "user",
1582
- responseKind: "void"
1635
+ tags: ["site-{siteId}", "api-keys"],
1636
+ responseKind: "json"
1583
1637
  },
1584
- googleCalendarCallback: {
1585
- path: "/bookings/calendar/google/callback",
1638
+ getSitePreviewKey: {
1639
+ path: "/sites/{siteId}/api-keys/preview",
1586
1640
  method: "GET",
1587
1641
  auth: "user",
1588
- responseKind: "void"
1642
+ tags: [
1643
+ "site-{siteId}",
1644
+ "api-keys",
1645
+ "preview-key"
1646
+ ],
1647
+ responseKind: "json"
1589
1648
  },
1590
- getAvailableSlots: {
1591
- path: "/sites/{siteId}/bookings/availability/slots",
1592
- method: "GET",
1649
+ createSitePreviewKey: {
1650
+ path: "/sites/{siteId}/api-keys/preview",
1651
+ method: "POST",
1593
1652
  auth: "user",
1653
+ tags: [
1654
+ "site-{siteId}",
1655
+ "api-keys",
1656
+ "preview-key"
1657
+ ],
1594
1658
  responseKind: "json"
1595
1659
  },
1596
- listAppointments: {
1597
- path: "/sites/{siteId}/bookings/appointments",
1660
+ getSiteApiKeyAccessLogs: {
1661
+ path: "/sites/{siteId}/api-keys/access-logs",
1598
1662
  method: "GET",
1599
1663
  auth: "user",
1664
+ tags: [
1665
+ "site-{siteId}",
1666
+ "api-keys",
1667
+ "access-logs"
1668
+ ],
1600
1669
  responseKind: "json"
1601
1670
  },
1602
- exportBookingAppointmentsCsv: {
1603
- path: "/sites/{siteId}/bookings/appointments/export.csv",
1671
+ listManagementKeys: {
1672
+ path: "/sites/{siteId}/api-keys/management",
1604
1673
  method: "GET",
1605
1674
  auth: "user",
1606
- errors: [],
1607
- responseKind: "blob"
1675
+ tags: [
1676
+ "site-{siteId}",
1677
+ "api-keys",
1678
+ "management-keys"
1679
+ ],
1680
+ responseKind: "json"
1608
1681
  },
1609
- createAppointment: {
1610
- path: "/sites/{siteId}/bookings/appointments",
1682
+ createManagementKey: {
1683
+ path: "/sites/{siteId}/api-keys/management",
1611
1684
  method: "POST",
1612
1685
  auth: "user",
1686
+ tags: [
1687
+ "site-{siteId}",
1688
+ "api-keys",
1689
+ "management-keys"
1690
+ ],
1613
1691
  responseKind: "json"
1614
1692
  },
1615
- upsertBookingRequirementConfig: {
1616
- path: "/sites/{siteId}/bookings/requirements/config",
1617
- method: "PUT",
1693
+ revokeManagementKey: {
1694
+ path: "/sites/{siteId}/api-keys/management",
1695
+ method: "DELETE",
1618
1696
  auth: "user",
1619
- responseKind: "json",
1620
- errors: [
1621
- "validation:invalid_input",
1622
- "resource:not_found",
1623
- "server:internal_error"
1624
- ]
1697
+ tags: [
1698
+ "site-{siteId}",
1699
+ "api-keys",
1700
+ "management-keys"
1701
+ ],
1702
+ responseKind: "json"
1625
1703
  },
1626
- cancelAppointment: {
1627
- path: "/sites/{siteId}/bookings/appointments/{appointmentId}/cancel",
1628
- method: "POST",
1704
+ getBookingSettings: {
1705
+ path: "/sites/{siteId}/bookings/settings",
1706
+ method: "GET",
1629
1707
  auth: "user",
1708
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
1630
1709
  responseKind: "json"
1631
1710
  },
1632
- rescheduleAppointment: {
1633
- path: "/sites/{siteId}/bookings/appointments/{appointmentId}/reschedule",
1634
- method: "POST",
1711
+ updateBookingSettings: {
1712
+ path: "/sites/{siteId}/bookings/settings",
1713
+ method: "PUT",
1635
1714
  auth: "user",
1715
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
1636
1716
  responseKind: "json",
1637
1717
  errors: [
1638
1718
  "validation:invalid_input",
1639
- "resource:not_found",
1640
1719
  "auth:forbidden",
1641
1720
  "resource:conflict",
1642
1721
  "server:internal_error"
1643
1722
  ]
1644
1723
  },
1645
- listCourses: {
1646
- path: "/sites/{siteId}/bookings/courses",
1724
+ listBookingClosures: {
1725
+ path: "/sites/{siteId}/bookings/closures",
1647
1726
  method: "GET",
1648
1727
  auth: "user",
1649
- responseKind: "json"
1650
- },
1651
- exportCoursesCsv: {
1652
- path: "/sites/{siteId}/bookings/courses/export.csv",
1653
- method: "GET",
1654
1728
  tags: [
1655
1729
  "site-{siteId}",
1656
1730
  "bookings",
1657
- "courses-{siteId}"
1731
+ "closures-{siteId}"
1658
1732
  ],
1659
- errors: [],
1660
- auth: "user",
1661
- responseKind: "blob"
1733
+ responseKind: "json",
1734
+ errors: ["auth:forbidden", "server:internal_error"]
1662
1735
  },
1663
- createCourse: {
1664
- path: "/sites/{siteId}/bookings/courses",
1736
+ previewBookingClosure: {
1737
+ path: "/sites/{siteId}/bookings/closures/preview",
1665
1738
  method: "POST",
1666
1739
  auth: "user",
1740
+ tags: [
1741
+ "site-{siteId}",
1742
+ "bookings",
1743
+ "closures-{siteId}"
1744
+ ],
1667
1745
  responseKind: "json",
1668
1746
  errors: [
1669
1747
  "validation:invalid_input",
1670
- "resource:not_found",
1671
- "resource:already_exists",
1672
- "resource:conflict",
1748
+ "auth:forbidden",
1673
1749
  "server:internal_error"
1674
1750
  ]
1675
1751
  },
1676
- getCourse: {
1677
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1678
- method: "GET",
1679
- auth: "user",
1680
- responseKind: "json"
1681
- },
1682
- updateCourse: {
1683
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1684
- method: "PATCH",
1752
+ createBookingClosure: {
1753
+ path: "/sites/{siteId}/bookings/closures",
1754
+ method: "POST",
1685
1755
  auth: "user",
1756
+ tags: [
1757
+ "site-{siteId}",
1758
+ "bookings",
1759
+ "closures-{siteId}"
1760
+ ],
1686
1761
  responseKind: "json",
1687
1762
  errors: [
1688
1763
  "validation:invalid_input",
1689
- "resource:not_found",
1690
1764
  "resource:conflict",
1765
+ "auth:forbidden",
1691
1766
  "server:internal_error"
1692
1767
  ]
1693
1768
  },
1694
- deleteCourse: {
1695
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1769
+ getBookingClosure: {
1770
+ path: "/sites/{siteId}/bookings/closures/{closureId}",
1771
+ method: "GET",
1772
+ auth: "user",
1773
+ tags: [
1774
+ "site-{siteId}",
1775
+ "bookings",
1776
+ "closures-{siteId}"
1777
+ ],
1778
+ responseKind: "json",
1779
+ errors: ["resource:not_found", "server:internal_error"]
1780
+ },
1781
+ deleteBookingClosure: {
1782
+ path: "/sites/{siteId}/bookings/closures/{closureId}",
1696
1783
  method: "DELETE",
1697
1784
  auth: "user",
1785
+ tags: [
1786
+ "site-{siteId}",
1787
+ "bookings",
1788
+ "closures-{siteId}"
1789
+ ],
1790
+ responseKind: "json",
1791
+ errors: ["resource:not_found", "server:internal_error"]
1792
+ },
1793
+ opsListUpcomingEventOccurrences: {
1794
+ path: "/ops/sites/{siteId}/events",
1795
+ method: "GET",
1796
+ auth: "user",
1797
+ responseKind: "json"
1798
+ },
1799
+ opsListOccurrenceAttendees: {
1800
+ path: "/ops/sites/{siteId}/events/{occurrenceId}/attendees",
1801
+ method: "GET",
1802
+ auth: "user",
1803
+ responseKind: "json"
1804
+ },
1805
+ opsValidateEventTicket: {
1806
+ path: "/ops/sites/{siteId}/events/tickets/validate",
1807
+ method: "POST",
1808
+ auth: "user",
1698
1809
  responseKind: "json",
1810
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1699
1811
  errors: [
1700
1812
  "validation:invalid_input",
1813
+ "auth:forbidden",
1701
1814
  "resource:not_found",
1702
- "resource:conflict",
1703
1815
  "server:internal_error"
1704
1816
  ]
1705
1817
  },
1706
- deleteCourseProgram: {
1707
- path: "/sites/{siteId}/bookings/courses/programs/{programId}",
1708
- method: "DELETE",
1818
+ opsUpdateEventAttendeeCheckin: {
1819
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/checkin",
1820
+ method: "POST",
1709
1821
  auth: "user",
1710
1822
  responseKind: "json",
1823
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1711
1824
  errors: [
1712
1825
  "validation:invalid_input",
1826
+ "auth:forbidden",
1713
1827
  "resource:not_found",
1714
- "resource:conflict",
1715
1828
  "server:internal_error"
1716
1829
  ]
1717
1830
  },
1718
- duplicateCourse: {
1719
- path: "/sites/{siteId}/bookings/courses/{courseId}/duplicate",
1831
+ opsGetEventAttendeeDetails: {
1832
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}",
1833
+ method: "GET",
1834
+ auth: "user",
1835
+ responseKind: "json"
1836
+ },
1837
+ opsCancelEventAttendee: {
1838
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/cancel",
1720
1839
  method: "POST",
1721
1840
  auth: "user",
1722
1841
  responseKind: "json",
1842
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1723
1843
  errors: [
1724
1844
  "validation:invalid_input",
1845
+ "auth:forbidden",
1725
1846
  "resource:not_found",
1726
- "resource:already_exists",
1847
+ "resource:conflict",
1727
1848
  "server:internal_error"
1728
1849
  ]
1729
1850
  },
1730
- changeCourseContentOwnership: {
1731
- path: "/sites/{siteId}/bookings/courses/{courseId}/content-ownership",
1851
+ getEventAttendeeDetails: {
1852
+ path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}",
1853
+ method: "GET",
1854
+ auth: "user",
1855
+ responseKind: "json",
1856
+ errors: []
1857
+ },
1858
+ cancelEventAttendee: {
1859
+ path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}/cancel",
1732
1860
  method: "POST",
1733
1861
  auth: "user",
1734
1862
  responseKind: "json",
1735
1863
  errors: [
1736
1864
  "validation:invalid_input",
1865
+ "auth:forbidden",
1737
1866
  "resource:not_found",
1738
1867
  "resource:conflict",
1739
1868
  "server:internal_error"
1740
1869
  ]
1741
1870
  },
1742
- addCourseEnrollment: {
1743
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
1871
+ opsRefundEventAttendee: {
1872
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/refund",
1744
1873
  method: "POST",
1745
1874
  auth: "user",
1746
1875
  responseKind: "json",
1876
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1747
1877
  errors: [
1748
1878
  "validation:invalid_input",
1879
+ "auth:forbidden",
1749
1880
  "resource:not_found",
1750
1881
  "resource:conflict",
1751
1882
  "server:internal_error"
1752
1883
  ]
1753
1884
  },
1754
- listCourseEnrollments: {
1755
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
1885
+ getEmailSettings: {
1886
+ path: "/sites/{siteId}/settings/emails",
1756
1887
  method: "GET",
1888
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1757
1889
  auth: "user",
1758
1890
  responseKind: "json"
1759
1891
  },
1760
- exportCourseEnrollmentsCsv: {
1761
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/export.csv",
1762
- method: "GET",
1892
+ updateEmailSettings: {
1893
+ path: "/sites/{siteId}/settings/emails",
1894
+ method: "PUT",
1895
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1763
1896
  auth: "user",
1764
- errors: [],
1765
- responseKind: "blob"
1897
+ responseKind: "json"
1766
1898
  },
1767
- listCourseWaitlist: {
1768
- path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist",
1769
- method: "GET",
1899
+ sendTestEmail: {
1900
+ path: "/sites/{siteId}/settings/emails/test",
1901
+ method: "POST",
1902
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1770
1903
  auth: "user",
1771
1904
  responseKind: "json",
1772
- errors: []
1773
- },
1774
- exportCourseWaitlistCsv: {
1775
- path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist/export.csv",
1776
- method: "GET",
1777
- tags: [
1778
- "site-{siteId}",
1779
- "bookings",
1780
- "courses-{courseId}"
1781
- ],
1782
- auth: "user",
1783
- responseKind: "blob",
1784
- errors: []
1905
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1785
1906
  },
1786
- updateCourseEnrollment: {
1787
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
1788
- method: "PATCH",
1907
+ previewEmailTemplate: {
1908
+ path: "/sites/{siteId}/settings/emails/preview",
1909
+ method: "POST",
1910
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1789
1911
  auth: "user",
1790
- responseKind: "json",
1791
- errors: [
1792
- "validation:invalid_input",
1793
- "resource:not_found",
1794
- "server:internal_error"
1795
- ]
1912
+ responseKind: "json"
1796
1913
  },
1914
+ ...NEWSLETTER_ENDPOINT_DEFINITIONS,
1915
+ ...APPOINTMENT_ENDPOINT_DEFINITIONS,
1916
+ ...COURSE_ENDPOINT_DEFINITIONS,
1797
1917
  getSite: {
1798
1918
  path: "/sites",
1799
1919
  method: "GET",
@@ -2135,7 +2255,13 @@ const API_ENDPOINTS = {
2135
2255
  method: "POST",
2136
2256
  tags: ["site-{siteId}", "content-{siteId}-{type}"],
2137
2257
  auth: "user",
2138
- responseKind: "json"
2258
+ responseKind: "json",
2259
+ errors: [
2260
+ "validation:invalid_input",
2261
+ "resource:not_found",
2262
+ "resource:conflict",
2263
+ "server:internal_error"
2264
+ ]
2139
2265
  },
2140
2266
  getContentEntry: {
2141
2267
  path: "/sites/{siteId}/content/{type}/{entryId}",
@@ -2146,12 +2272,22 @@ const API_ENDPOINTS = {
2146
2272
  "content-entry-{entryId}"
2147
2273
  ],
2148
2274
  auth: "user",
2149
- responseKind: "json"
2275
+ responseKind: "json",
2276
+ errors: [
2277
+ "validation:invalid_input",
2278
+ "resource:not_found",
2279
+ "resource:conflict",
2280
+ "server:internal_error"
2281
+ ]
2150
2282
  },
2151
2283
  listContentEntryVersions: {
2152
2284
  path: "/sites/{siteId}/content/{type}/{entryId}/versions",
2153
2285
  method: "GET",
2154
- errors: ["validation:invalid_input", "resource:not_found"],
2286
+ errors: [
2287
+ "validation:invalid_input",
2288
+ "resource:not_found",
2289
+ "resource:conflict"
2290
+ ],
2155
2291
  tags: [
2156
2292
  "site-{siteId}",
2157
2293
  "content-{siteId}-{type}",
@@ -2163,7 +2299,11 @@ const API_ENDPOINTS = {
2163
2299
  getContentEntryVersion: {
2164
2300
  path: "/sites/{siteId}/content/{type}/{entryId}/versions/{versionId}",
2165
2301
  method: "GET",
2166
- errors: ["validation:invalid_input", "resource:not_found"],
2302
+ errors: [
2303
+ "validation:invalid_input",
2304
+ "resource:not_found",
2305
+ "resource:conflict"
2306
+ ],
2167
2307
  tags: [
2168
2308
  "site-{siteId}",
2169
2309
  "content-{siteId}-{type}",
@@ -2198,6 +2338,12 @@ const API_ENDPOINTS = {
2198
2338
  "content-entry-{entryId}"
2199
2339
  ],
2200
2340
  auth: "user",
2341
+ errors: [
2342
+ "validation:invalid_input",
2343
+ "resource:not_found",
2344
+ "resource:conflict",
2345
+ "server:internal_error"
2346
+ ],
2201
2347
  responseKind: "json"
2202
2348
  },
2203
2349
  updatePageSurfaceDraftContent: {
@@ -2267,6 +2413,7 @@ const API_ENDPOINTS = {
2267
2413
  errors: [
2268
2414
  "validation:invalid_input",
2269
2415
  "resource:not_found",
2416
+ "resource:conflict",
2270
2417
  "server:internal_error"
2271
2418
  ],
2272
2419
  tags: [
@@ -2283,6 +2430,7 @@ const API_ENDPOINTS = {
2283
2430
  errors: [
2284
2431
  "validation:invalid_input",
2285
2432
  "resource:not_found",
2433
+ "resource:conflict",
2286
2434
  "server:internal_error"
2287
2435
  ],
2288
2436
  tags: [
@@ -2303,6 +2451,12 @@ const API_ENDPOINTS = {
2303
2451
  TAG_TEMPLATES.routeById
2304
2452
  ],
2305
2453
  auth: "user",
2454
+ errors: [
2455
+ "validation:invalid_input",
2456
+ "resource:not_found",
2457
+ "resource:conflict",
2458
+ "server:internal_error"
2459
+ ],
2306
2460
  responseKind: "json"
2307
2461
  },
2308
2462
  publishContentEntry: {
@@ -2359,6 +2513,13 @@ const API_ENDPOINTS = {
2359
2513
  "content-entry-{entryId}"
2360
2514
  ],
2361
2515
  auth: "user",
2516
+ errors: [
2517
+ "auth:forbidden",
2518
+ "validation:invalid_input",
2519
+ "resource:not_found",
2520
+ "resource:conflict",
2521
+ "server:internal_error"
2522
+ ],
2362
2523
  responseKind: "json"
2363
2524
  },
2364
2525
  unpublishContentEntry: {
@@ -2411,7 +2572,13 @@ const API_ENDPOINTS = {
2411
2572
  "content-entry-{entryId}"
2412
2573
  ],
2413
2574
  auth: "user",
2414
- responseKind: "json"
2575
+ responseKind: "json",
2576
+ errors: [
2577
+ "validation:invalid_input",
2578
+ "resource:not_found",
2579
+ "resource:conflict",
2580
+ "server:internal_error"
2581
+ ]
2415
2582
  },
2416
2583
  bulkPublishContentEntries: {
2417
2584
  path: "/sites/{siteId}/content/{type}/bulk-publish",
@@ -2433,6 +2600,12 @@ const API_ENDPOINTS = {
2433
2600
  tags: ["site-{siteId}", "content-{siteId}-{type}"],
2434
2601
  auth: "user",
2435
2602
  responseKind: "json",
2603
+ errors: [
2604
+ "validation:invalid_input",
2605
+ "resource:not_found",
2606
+ "resource:conflict",
2607
+ "server:internal_error"
2608
+ ],
2436
2609
  demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
2437
2610
  },
2438
2611
  updateSiteGeneralSettings: {
@@ -3703,7 +3876,7 @@ const API_ENDPOINTS = {
3703
3876
  ],
3704
3877
  auth: "user",
3705
3878
  responseKind: "json",
3706
- errors: ["resource:not_found"]
3879
+ errors: ["resource:not_found", "resource:conflict"]
3707
3880
  },
3708
3881
  listEntryPageContentSlots: {
3709
3882
  path: "/sites/{siteId}/content/{type}/{entryId}/slots",
@@ -3716,7 +3889,7 @@ const API_ENDPOINTS = {
3716
3889
  ],
3717
3890
  auth: "user",
3718
3891
  responseKind: "json",
3719
- errors: ["resource:not_found"]
3892
+ errors: ["resource:not_found", "resource:conflict"]
3720
3893
  },
3721
3894
  createEntrySlotBlock: {
3722
3895
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks",
@@ -3729,7 +3902,11 @@ const API_ENDPOINTS = {
3729
3902
  ],
3730
3903
  auth: "user",
3731
3904
  responseKind: "json",
3732
- errors: ["validation:invalid_input", "resource:not_found"]
3905
+ errors: [
3906
+ "validation:invalid_input",
3907
+ "resource:not_found",
3908
+ "resource:conflict"
3909
+ ]
3733
3910
  },
3734
3911
  reorderEntrySlotBlocks: {
3735
3912
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/reorder",
@@ -3742,7 +3919,11 @@ const API_ENDPOINTS = {
3742
3919
  ],
3743
3920
  auth: "user",
3744
3921
  responseKind: "json",
3745
- errors: ["validation:invalid_input", "resource:not_found"]
3922
+ errors: [
3923
+ "validation:invalid_input",
3924
+ "resource:not_found",
3925
+ "resource:conflict"
3926
+ ]
3746
3927
  },
3747
3928
  deleteEntrySlotBlock: {
3748
3929
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/{blockId}",
@@ -3755,7 +3936,7 @@ const API_ENDPOINTS = {
3755
3936
  ],
3756
3937
  auth: "user",
3757
3938
  responseKind: "json",
3758
- errors: ["resource:not_found"]
3939
+ errors: ["resource:not_found", "resource:conflict"]
3759
3940
  },
3760
3941
  listPageSurfaceContentSlots: {
3761
3942
  path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/slots",
@@ -4433,14 +4614,7 @@ const API_ENDPOINTS = {
4433
4614
  auth: "public",
4434
4615
  responseKind: "json"
4435
4616
  },
4436
- listPublicCourses: {
4437
- path: "/public/sites/{siteId}/courses",
4438
- method: "GET",
4439
- revalidate: 60,
4440
- tags: [TAG_TEMPLATES.publicCourses],
4441
- auth: "public",
4442
- responseKind: "json"
4443
- },
4617
+ ...PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS,
4444
4618
  listPublicTeamMembers: {
4445
4619
  path: "/public/sites/{siteId}/team-members",
4446
4620
  method: "GET",
@@ -4450,33 +4624,11 @@ const API_ENDPOINTS = {
4450
4624
  auth: "public",
4451
4625
  responseKind: "json"
4452
4626
  },
4453
- getPublicCourse: {
4454
- path: "/public/sites/{siteId}/courses/{courseId}",
4455
- method: "GET",
4456
- revalidate: 60,
4457
- tags: [TAG_TEMPLATES.publicCourses],
4458
- auth: "public",
4459
- responseKind: "json"
4460
- },
4461
- enrollInCourse: {
4462
- path: "/public/sites/{siteId}/courses/enroll",
4463
- method: "POST",
4464
- tags: [TAG_TEMPLATES.publicCourses, "course-enrollment"],
4465
- auth: "public",
4466
- responseKind: "json"
4467
- },
4468
- checkCourseEligibility: {
4469
- path: "/public/sites/{siteId}/courses/check-eligibility",
4470
- method: "POST",
4471
- tags: [TAG_TEMPLATES.publicCourses, "course-enrollment"],
4472
- auth: "public",
4473
- responseKind: "json"
4474
- },
4475
4627
  resolveWaitlistClaim: {
4476
4628
  path: "/public/sites/{siteId}/waitlists/claim/resolve",
4477
4629
  method: "POST",
4478
4630
  tags: [
4479
- TAG_TEMPLATES.publicCourses,
4631
+ TAG_TEMPLATES.publicWholeSeriesOfferings,
4480
4632
  TAG_TEMPLATES.publicEvents,
4481
4633
  "waitlist-claims"
4482
4634
  ],
@@ -4489,27 +4641,6 @@ const API_ENDPOINTS = {
4489
4641
  "server:internal_error"
4490
4642
  ]
4491
4643
  },
4492
- createCourseCheckout: {
4493
- path: "/public/sites/{siteId}/courses/checkout",
4494
- method: "POST",
4495
- tags: [TAG_TEMPLATES.publicCourses, "course-checkout"],
4496
- auth: "public",
4497
- responseKind: "json",
4498
- errors: [
4499
- "auth:unauthenticated",
4500
- "validation:invalid_input",
4501
- "resource:not_found",
4502
- "resource:conflict",
4503
- "server:internal_error"
4504
- ]
4505
- },
4506
- getCourseRegistrationStatus: {
4507
- path: "/public/sites/{siteId}/courses/registration-status",
4508
- method: "GET",
4509
- tags: [TAG_TEMPLATES.publicCourses, "course-checkout"],
4510
- auth: "public",
4511
- responseKind: "json"
4512
- },
4513
4644
  listPublicPasses: {
4514
4645
  path: "/public/sites/{siteId}/bookings/products/passes",
4515
4646
  method: "GET",
@@ -4610,14 +4741,6 @@ const API_ENDPOINTS = {
4610
4741
  responseKind: "json",
4611
4742
  errors: []
4612
4743
  },
4613
- resolveEntrySubroute: {
4614
- path: "/public/sites/{siteId}/routing/subroutes/resolve",
4615
- method: "GET",
4616
- revalidate: 60,
4617
- tags: ["site-{siteId}", "entry-subroute"],
4618
- auth: "public",
4619
- responseKind: "json"
4620
- },
4621
4744
  resolveEventOccurrence: {
4622
4745
  path: "/public/sites/{siteId}/events/occurrences/resolve",
4623
4746
  method: "GET",
@@ -4961,13 +5084,6 @@ const API_ENDPOINTS = {
4961
5084
  auth: "user",
4962
5085
  responseKind: "json"
4963
5086
  },
4964
- getEventSeriesContentEditor: {
4965
- path: "/sites/{siteId}/bookings/event-series/{seriesId}/content-editor",
4966
- method: "GET",
4967
- tags: ["site-{siteId}", "event-series-{seriesId}"],
4968
- auth: "user",
4969
- responseKind: "json"
4970
- },
4971
5087
  updateEventSeries: {
4972
5088
  path: "/sites/{siteId}/bookings/event-series/{seriesId}",
4973
5089
  method: "PATCH",
@@ -6306,6 +6422,7 @@ const API_ENDPOINTS = {
6306
6422
  errors: [
6307
6423
  "validation:invalid_input",
6308
6424
  "resource:not_found",
6425
+ "resource:conflict",
6309
6426
  "server:internal_error"
6310
6427
  ],
6311
6428
  auth: "service",
@@ -6419,24 +6536,12 @@ const API_ENDPOINTS = {
6419
6536
  auth: "service",
6420
6537
  responseKind: "json"
6421
6538
  },
6422
- sdkPullCourses: {
6423
- path: "/sdk/{siteId}/pull/courses",
6424
- method: "GET",
6425
- auth: "service",
6426
- responseKind: "json"
6427
- },
6428
6539
  sdkPullEntries: {
6429
6540
  path: "/sdk/{siteId}/pull/entries",
6430
6541
  method: "GET",
6431
6542
  auth: "service",
6432
6543
  responseKind: "json"
6433
6544
  },
6434
- sdkPullEntriesByType: {
6435
- path: "/sdk/{siteId}/pull/entries/{type}",
6436
- method: "GET",
6437
- auth: "service",
6438
- responseKind: "json"
6439
- },
6440
6545
  sdkPullEntriesAll: {
6441
6546
  path: "/sdk/{siteId}/pull/entries/all",
6442
6547
  method: "GET",
@@ -6702,48 +6807,13 @@ const API_ENDPOINTS = {
6702
6807
  "server:internal_error"
6703
6808
  ]
6704
6809
  },
6705
- sdkListCourses: {
6706
- path: "/sdk/{siteId}/courses",
6707
- method: "GET",
6708
- auth: "service",
6709
- responseKind: "json"
6710
- },
6711
- sdkUpsertCourse: {
6712
- path: "/sdk/{siteId}/courses",
6713
- method: "POST",
6714
- auth: "service",
6715
- responseKind: "json"
6716
- },
6717
- sdkGetCourse: {
6718
- path: "/sdk/{siteId}/courses/{identifier}",
6719
- method: "GET",
6720
- auth: "service",
6721
- responseKind: "json"
6722
- },
6723
- sdkDeleteCourse: {
6724
- path: "/sdk/{siteId}/courses/{identifier}",
6725
- method: "DELETE",
6726
- auth: "service",
6727
- responseKind: "json"
6728
- },
6729
6810
  sdkUpsertEntry: {
6730
6811
  path: "/sdk/{siteId}/entries",
6731
6812
  method: "POST",
6732
6813
  auth: "service",
6733
6814
  responseKind: "json"
6734
6815
  },
6735
- sdkListEntries: {
6736
- path: "/sdk/{siteId}/entries/{contentType}",
6737
- method: "GET",
6738
- auth: "service",
6739
- responseKind: "json"
6740
- },
6741
- sdkGetEntry: {
6742
- path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
6743
- method: "GET",
6744
- auth: "service",
6745
- responseKind: "json"
6746
- },
6816
+ ...SDK_ENTRY_READ_ENDPOINTS,
6747
6817
  sdkDeleteEntry: {
6748
6818
  path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
6749
6819
  method: "DELETE",
@@ -6968,21 +7038,22 @@ const API_ENDPOINTS = {
6968
7038
  "server:internal_error"
6969
7039
  ]
6970
7040
  },
6971
- portalGetCourses: {
6972
- path: "/portal/courses",
7041
+ portalGetWholeSeriesRegistrations: {
7042
+ path: "/portal/dated-offerings/whole-series",
6973
7043
  method: "GET",
6974
7044
  auth: "public",
6975
- responseKind: "json"
7045
+ responseKind: "json",
7046
+ errors: ["server:internal_error"]
6976
7047
  },
6977
- portalGetCourseBookingQuestions: {
6978
- path: "/portal/courses/{enrollmentId}/booking-questions",
7048
+ portalGetWholeSeriesBookingQuestions: {
7049
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions",
6979
7050
  method: "GET",
6980
7051
  auth: "public",
6981
7052
  responseKind: "json",
6982
7053
  errors: ["resource:not_found", "server:internal_error"]
6983
7054
  },
6984
- portalUpdateCourseBookingQuestions: {
6985
- path: "/portal/courses/{enrollmentId}/booking-questions",
7055
+ portalUpdateWholeSeriesBookingQuestions: {
7056
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions",
6986
7057
  method: "PUT",
6987
7058
  auth: "public",
6988
7059
  responseKind: "json",
@@ -6992,8 +7063,8 @@ const API_ENDPOINTS = {
6992
7063
  "server:internal_error"
6993
7064
  ]
6994
7065
  },
6995
- portalCreateCourseBookingQuestionsUploadUrl: {
6996
- path: "/portal/courses/{enrollmentId}/booking-questions/upload-url",
7066
+ portalCreateWholeSeriesBookingQuestionsUploadUrl: {
7067
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions/upload-url",
6997
7068
  method: "POST",
6998
7069
  auth: "public",
6999
7070
  responseKind: "json",
@@ -7003,8 +7074,8 @@ const API_ENDPOINTS = {
7003
7074
  "server:internal_error"
7004
7075
  ]
7005
7076
  },
7006
- portalFinalizeCourseBookingQuestionsUpload: {
7007
- path: "/portal/courses/{enrollmentId}/booking-questions/upload",
7077
+ portalFinalizeWholeSeriesBookingQuestionsUpload: {
7078
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions/upload",
7008
7079
  method: "POST",
7009
7080
  auth: "public",
7010
7081
  responseKind: "json",
@@ -7014,11 +7085,12 @@ const API_ENDPOINTS = {
7014
7085
  "server:internal_error"
7015
7086
  ]
7016
7087
  },
7017
- portalCancelCourseEnrollment: {
7018
- path: "/portal/courses/{enrollmentId}/cancel",
7088
+ portalCancelWholeSeriesRegistration: {
7089
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/cancel",
7019
7090
  method: "POST",
7020
7091
  auth: "public",
7021
- responseKind: "json"
7092
+ responseKind: "json",
7093
+ errors: ["resource:not_found", "server:internal_error"]
7022
7094
  },
7023
7095
  portalCancelEventRegistration: {
7024
7096
  path: "/portal/events/{registrationId}/cancel",
@@ -7484,6 +7556,7 @@ function extractApiEnvelopeErrorDetails(body) {
7484
7556
  if (!error) return {
7485
7557
  rawCode: null,
7486
7558
  code: null,
7559
+ tag: null,
7487
7560
  message: null,
7488
7561
  status: null,
7489
7562
  fieldErrors: null
@@ -7493,6 +7566,7 @@ function extractApiEnvelopeErrorDetails(body) {
7493
7566
  return {
7494
7567
  rawCode,
7495
7568
  code: isApiErrorCode(rawCode) ? rawCode : null,
7569
+ tag: typeof error.tag === "string" ? error.tag : null,
7496
7570
  message,
7497
7571
  status: typeof error.status === "number" && Number.isFinite(error.status) ? error.status : null,
7498
7572
  fieldErrors: fieldErrorsFromUnknown(error.fieldErrors)
@@ -7510,6 +7584,7 @@ var ApiEnvelopeError = class extends Error {
7510
7584
  this.requestId = error.requestId;
7511
7585
  this.timestamp = error.timestamp;
7512
7586
  this.status = error.status;
7587
+ this.tag = error.tag;
7513
7588
  this.fieldErrors = error.fieldErrors;
7514
7589
  }
7515
7590
  };