@riverbankcms/sdk 0.123.0 → 0.124.0

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