@riverbankcms/sdk 0.96.0 → 0.99.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 (208) hide show
  1. package/README.md +20 -1
  2. package/dist/{PreviewEditorSidebar-46VT4QVU.mjs → PreviewEditorSidebar-TPOKCCKY.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-JD75GE5F.mjs → PreviewEditorUI-Y347GLC2.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-OGTXRQ4M.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +36 -36
  6. package/dist/_dts/api/src/billing.d.ts +2 -0
  7. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +35 -1
  8. package/dist/_dts/api/src/bookingOperations.d.ts +246 -0
  9. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -1
  10. package/dist/_dts/api/src/contentRuntime.d.ts +109 -40
  11. package/dist/_dts/api/src/endpoints.d.ts +88 -0
  12. package/dist/_dts/api/src/index.d.ts +3 -2
  13. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  14. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -0
  15. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  16. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -1
  17. package/dist/_dts/api/src/siteOperations.d.ts +65 -1
  18. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +7 -1
  19. package/dist/_dts/billing/src/site-arrangements.d.ts +151 -0
  20. package/dist/_dts/billing/src/subscriptions/store.d.ts +2 -0
  21. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +2 -1
  22. package/dist/_dts/blocks/src/PageRenderer.d.ts +8 -1
  23. package/dist/_dts/blocks/src/bindings/types.d.ts +0 -4
  24. package/dist/_dts/blocks/src/client/site-chrome.d.ts +7 -0
  25. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -12
  27. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -0
  28. package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +2 -0
  30. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  31. package/dist/_dts/blocks/src/system/blocks/weekly-slot-availability.d.ts +34 -0
  32. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
  33. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  34. package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
  35. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  36. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +4 -1
  37. package/dist/_dts/blocks/src/system/node/builder.d.ts +2 -0
  38. package/dist/_dts/blocks/src/system/node/schema.d.ts +13 -0
  39. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  40. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  41. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  42. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  43. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +24 -0
  44. package/dist/_dts/blocks/src/system/runtime/components/booking/DatePicker.d.ts +6 -2
  45. package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +3 -1
  46. package/dist/_dts/blocks/src/system/runtime/components/booking/TimeSlotSelector.d.ts +10 -4
  47. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -0
  48. package/dist/_dts/blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.d.ts +7 -0
  49. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +2 -2
  50. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +2 -2
  51. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +4 -0
  52. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +5 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +11 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/StepIndicator.d.ts +3 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +14 -0
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -2
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +133 -2
  58. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.controller.d.ts +3 -0
  59. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.d.ts +9 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.state.d.ts +14 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.server.d.ts +10 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.view.d.ts +11 -0
  63. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +31 -1
  64. package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +2 -1
  65. package/dist/_dts/blocks/src/system/runtime/{nodes/event-registration → shared/components}/SelectableOptionCard.d.ts +11 -2
  66. package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +16 -5
  67. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  68. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  69. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +5 -0
  70. package/dist/_dts/blocks/src/utils/date-formatting.d.ts +18 -2
  71. package/dist/_dts/content-editor/src/primitives/PreviewInlineTextEditor.d.ts +1 -1
  72. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +1 -1
  73. package/dist/_dts/content-model/src/templates/defaults.d.ts +5 -5
  74. package/dist/_dts/content-model/src/templates/types.d.ts +2 -6
  75. package/dist/_dts/core/src/branded.d.ts +8 -0
  76. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +767 -20
  77. package/dist/_dts/field-primitives/src/bindings/index.d.ts +8 -0
  78. package/dist/_dts/sdk/src/__mocks__/next-cache.d.ts +1 -1
  79. package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +15 -0
  80. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +2 -1
  81. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +3 -1
  82. package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +9 -3
  83. package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +34 -0
  84. package/dist/_dts/sdk/src/cli/commands/push.d.ts +13 -0
  85. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +2 -0
  86. package/dist/_dts/sdk/src/cli/config-loader.d.ts +2 -0
  87. package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +29 -0
  88. package/dist/_dts/sdk/src/cli/content/reader.d.ts +16 -14
  89. package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -4
  90. package/dist/_dts/sdk/src/cli/env-scope.d.ts +2 -0
  91. package/dist/_dts/sdk/src/cli/helpers.d.ts +6 -7
  92. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +2 -0
  93. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +6 -18
  94. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -4
  95. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +2 -0
  96. package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +6 -18
  97. package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +2 -4
  98. package/dist/_dts/sdk/src/cli/merge-remote/sharedBaseSnapshots.d.ts +32 -0
  99. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergePlan.d.ts +27 -0
  100. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergeReport.d.ts +63 -0
  101. package/dist/_dts/sdk/src/cli/push-config.d.ts +13 -2
  102. package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +51 -0
  103. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +21 -0
  104. package/dist/_dts/sdk/src/client/index.d.ts +6 -0
  105. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +1 -1
  106. package/dist/_dts/sdk/src/client/types.d.ts +18 -2
  107. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  108. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  109. package/dist/_dts/sdk/src/contracts/bindings.d.ts +3 -7
  110. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +13 -0
  111. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +6 -1
  112. package/dist/_dts/sdk/src/next/route-outcome-proxy.d.ts +3 -3
  113. package/dist/_dts/sdk/src/next/types.d.ts +19 -0
  114. package/dist/_dts/sdk/src/prebuild/loader.d.ts +8 -1
  115. package/dist/_dts/sdk/src/public-api/contracts.d.ts +174 -78
  116. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  117. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
  118. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -0
  119. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +4 -4
  120. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +58 -1
  121. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +8 -0
  122. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +2 -2
  123. package/dist/_dts/sdk/src/rendering/index.d.ts +7 -7
  124. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +18 -66
  125. package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -0
  126. package/dist/_dts/sdk/src/routing/resolveRoute.d.ts +18 -0
  127. package/dist/_dts/sdk/src/test/apiClient.d.ts +17 -0
  128. package/dist/_dts/sdk/src/test/bunDom.setup.d.ts +1 -0
  129. package/dist/_dts/sdk/src/test/env.d.ts +4 -0
  130. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  131. package/dist/_dts/sdk/src/version.d.ts +1 -1
  132. package/dist/_dts/site-commands/src/commands.d.ts +3 -3
  133. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  134. package/dist/_dts/theme-core/src/interactive/generateBaseCSS.d.ts +6 -0
  135. package/dist/_dts/theme-core/src/status/contextualColors.d.ts +6 -0
  136. package/dist/_dts/theme-core/src/status/index.d.ts +1 -0
  137. package/dist/{chunk-VHIMXQ7Z.mjs → chunk-4HXF2QLH.mjs} +2 -2
  138. package/dist/{chunk-VTPPVAOL.mjs → chunk-EMJIT3ZJ.mjs} +1 -1
  139. package/dist/{chunk-4TLTV7OB.mjs → chunk-PM7HGDHM.mjs} +2 -2
  140. package/dist/{chunk-XMATDBXO.mjs → chunk-XO34WBBP.mjs} +2139 -1348
  141. package/dist/{chunk-EL55VV6Q.mjs → chunk-YGTTEVUM.mjs} +31 -10
  142. package/dist/{chunk-7ED5UNHL.mjs → chunk-YWTCCOSF.mjs} +117 -0
  143. package/dist/cli/index.mjs +2690 -1503
  144. package/dist/cli/init-docs/content/cli-reference.md +29 -1
  145. package/dist/cli/init-docs/content/getting-started.md +8 -0
  146. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +3 -1
  147. package/dist/cli/init-docs/content/workflow-preview-mode.md +6 -0
  148. package/dist/cli/init-docs/content/workflow-remote-setup.md +51 -0
  149. package/dist/client/{accordion-GUNXIIZR.mjs → accordion-QSUEYL4L.mjs} +2 -2
  150. package/dist/client/{bookingForm-AOU4VHP5.mjs → bookingForm-QYGAHPDP.mjs} +376 -302
  151. package/dist/client/bookings.mjs +795 -429
  152. package/dist/client/{carousel-4QSX2JPC.mjs → carousel-SM2LEWAU.mjs} +3 -3
  153. package/dist/client/{cart-JKN6C4ZB.mjs → cart-3N3SFKNQ.mjs} +7 -7
  154. package/dist/client/{checkout-YY6YMITW.mjs → checkout-YFAYPKPZ.mjs} +7 -7
  155. package/dist/client/{chunk-SY543WZ3.mjs → chunk-5DLGREUB.mjs} +1 -1
  156. package/dist/client/{chunk-A3YN7M3G.mjs → chunk-CLZ7NBSP.mjs} +147 -75
  157. package/dist/client/{chunk-GWCRCJLB.mjs → chunk-CYJ3MUFP.mjs} +18 -6
  158. package/dist/client/{chunk-JNE6UI6U.mjs → chunk-H3H3ODO7.mjs} +1 -1
  159. package/dist/client/{chunk-CPKMJVBD.mjs → chunk-HPEQ4YWW.mjs} +83 -109
  160. package/dist/client/{chunk-PCHACQEB.mjs → chunk-IIUIKJ4K.mjs} +15 -7
  161. package/dist/client/{chunk-TNGL2WJF.mjs → chunk-IOAHWAQG.mjs} +18 -0
  162. package/dist/client/{chunk-6H27K6AA.mjs → chunk-JTKBF3W2.mjs} +10 -4
  163. package/dist/client/{chunk-OLAOAZEO.mjs → chunk-K7KTSACR.mjs} +1 -1
  164. package/dist/client/{chunk-BFCJZODD.mjs → chunk-R32M5HFS.mjs} +6 -6
  165. package/dist/client/{chunk-VJROUYOQ.mjs → chunk-WEVT46PX.mjs} +3 -3
  166. package/dist/client/{chunk-H7A6PUGM.mjs → chunk-ZU65LTI3.mjs} +1 -1
  167. package/dist/client/client.mjs +5052 -4083
  168. package/dist/client/{courseRegistration-UU2KMPSQ.mjs → courseRegistration-LYBE7VVK.mjs} +7 -7
  169. package/dist/client/{eventCalendar-WIVNS2TM.mjs → eventCalendar-FMTB75X6.mjs} +9 -9
  170. package/dist/client/{eventCombined-P3G5MW4J.mjs → eventCombined-E4LUCJXT.mjs} +9 -9
  171. package/dist/client/{eventDetails-2VHJ2RDG.mjs → eventDetails-GELSRR4Z.mjs} +9 -9
  172. package/dist/client/{eventListing-TGO6JI3R.mjs → eventListing-TB623B6R.mjs} +9 -9
  173. package/dist/client/{eventRegistration-B46HEJES.mjs → eventRegistration-NRIKHXTI.mjs} +9 -9
  174. package/dist/client/{form-VKRTFUNQ.mjs → form-Y4U4IAXE.mjs} +3 -3
  175. package/dist/client/{headerSection-XUX4ZJLO.mjs → headerSection-QSOVV5P7.mjs} +3 -3
  176. package/dist/client/hooks.mjs +1776 -1355
  177. package/dist/client/{locationMap-NQFI5MJO.mjs → locationMap-QYCAHH7H.mjs} +3 -3
  178. package/dist/client/{newsletterForm-P2GETCQK.mjs → newsletterForm-NWHY5TBY.mjs} +3 -3
  179. package/dist/client/{productDetail-7NQ7O5IF.mjs → productDetail-FYDMU2CE.mjs} +7 -7
  180. package/dist/client/{productList-RX6ZJ7BL.mjs → productList-D76CGACQ.mjs} +7 -7
  181. package/dist/client/rendering/client.mjs +2990 -2470
  182. package/dist/client/rendering/islands.mjs +19 -19
  183. package/dist/client/rendering.mjs +3236 -2236
  184. package/dist/client/{shop-BHN5AKY6.mjs → shop-SOUACT5N.mjs} +7 -7
  185. package/dist/preview-next/before-render.mjs +117 -0
  186. package/dist/preview-next/client/runtime.mjs +5 -5
  187. package/dist/preview-next/middleware.mjs +117 -0
  188. package/dist/{sdk-runtime-X2LXQ5IC.mjs → sdk-runtime-XPVE3LBA.mjs} +6 -6
  189. package/dist/server/components.mjs +3115 -2484
  190. package/dist/server/config-template-validation.mjs +6 -2
  191. package/dist/server/config-validation.mjs +1961 -1580
  192. package/dist/server/config.mjs +1961 -1580
  193. package/dist/server/data.mjs +1762 -1352
  194. package/dist/server/index.mjs +266 -33
  195. package/dist/server/next/middleware.mjs +2 -2
  196. package/dist/server/next.mjs +3399 -2504
  197. package/dist/server/page-converter.mjs +1553 -1295
  198. package/dist/server/prebuild-loader.mjs +42 -23
  199. package/dist/server/prebuild.mjs +1 -1
  200. package/dist/server/rendering/server.mjs +3151 -2489
  201. package/dist/server/rendering.mjs +3363 -2555
  202. package/dist/server/routing.mjs +1877 -1388
  203. package/dist/server/server.mjs +2057 -1402
  204. package/dist/server/theme-bridge.mjs +597 -505
  205. package/dist/server/theme.mjs +5 -4
  206. package/dist/styles/index.css +499 -490
  207. package/package.json +6 -4
  208. package/dist/SdkPreviewModeRuntime-MJUSYUFB.mjs +0 -8
@@ -1059,6 +1059,94 @@ var ENDPOINT_DEFINITIONS = {
1059
1059
  responseKind: "json",
1060
1060
  errors: ["resource:not_found", "server:internal_error"]
1061
1061
  },
1062
+ listAppointmentReservations: {
1063
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1064
+ method: "GET",
1065
+ auth: "user",
1066
+ responseKind: "json",
1067
+ errors: []
1068
+ },
1069
+ createAppointmentReservation: {
1070
+ path: "/sites/{siteId}/bookings/appointment-reservations",
1071
+ method: "POST",
1072
+ auth: "user",
1073
+ responseKind: "json",
1074
+ errors: [
1075
+ "validation:invalid_input",
1076
+ "resource:not_found",
1077
+ "resource:conflict",
1078
+ "server:internal_error"
1079
+ ]
1080
+ },
1081
+ getAppointmentReservation: {
1082
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1083
+ method: "GET",
1084
+ auth: "user",
1085
+ responseKind: "json",
1086
+ errors: ["resource:not_found", "server:internal_error"]
1087
+ },
1088
+ updateAppointmentReservation: {
1089
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1090
+ method: "PUT",
1091
+ auth: "user",
1092
+ responseKind: "json",
1093
+ errors: [
1094
+ "validation:invalid_input",
1095
+ "resource:not_found",
1096
+ "resource:conflict",
1097
+ "server:internal_error"
1098
+ ]
1099
+ },
1100
+ pauseAppointmentReservation: {
1101
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1102
+ method: "POST",
1103
+ auth: "user",
1104
+ responseKind: "json",
1105
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1106
+ },
1107
+ resumeAppointmentReservation: {
1108
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
1109
+ method: "POST",
1110
+ auth: "user",
1111
+ responseKind: "json",
1112
+ errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
1113
+ },
1114
+ endAppointmentReservation: {
1115
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1116
+ method: "POST",
1117
+ auth: "user",
1118
+ responseKind: "json",
1119
+ errors: [
1120
+ "validation:invalid_input",
1121
+ "resource:not_found",
1122
+ "resource:conflict",
1123
+ "server:internal_error"
1124
+ ]
1125
+ },
1126
+ previewAppointmentReservationRun: {
1127
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1128
+ method: "POST",
1129
+ auth: "user",
1130
+ responseKind: "json",
1131
+ errors: [
1132
+ "validation:invalid_input",
1133
+ "resource:not_found",
1134
+ "resource:conflict",
1135
+ "server:internal_error"
1136
+ ]
1137
+ },
1138
+ createAppointmentReservationRun: {
1139
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1140
+ method: "POST",
1141
+ auth: "user",
1142
+ responseKind: "json",
1143
+ errors: [
1144
+ "validation:invalid_input",
1145
+ "resource:not_found",
1146
+ "resource:conflict",
1147
+ "server:internal_error"
1148
+ ]
1149
+ },
1062
1150
  createTeamMemberProfile: {
1063
1151
  path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1064
1152
  method: "POST",
@@ -3515,6 +3603,18 @@ var ENDPOINT_DEFINITIONS = {
3515
3603
  responseKind: "json",
3516
3604
  errors: ["validation:invalid_input", "server:internal_error"]
3517
3605
  },
3606
+ resolveRouteDecision: {
3607
+ path: "/sites/{siteId}/route-decision",
3608
+ method: "GET",
3609
+ tags: [
3610
+ TAG_TEMPLATES.siteRoutableContent,
3611
+ TAG_TEMPLATES.siteRedirects,
3612
+ TAG_TEMPLATES.siteRouteOutcomes
3613
+ ],
3614
+ auth: "public",
3615
+ responseKind: "json",
3616
+ errors: ["validation:invalid_input", "server:internal_error"]
3617
+ },
3518
3618
  getPageByPath: {
3519
3619
  path: "/sites/{siteId}/pages",
3520
3620
  method: "GET",
@@ -3653,6 +3753,15 @@ var ENDPOINT_DEFINITIONS = {
3653
3753
  auth: "public",
3654
3754
  responseKind: "json"
3655
3755
  },
3756
+ getPublicWeeklySlotAvailability: {
3757
+ path: "/public/bookings/weekly-slot-availability",
3758
+ method: "GET",
3759
+ revalidate: 60,
3760
+ tags: ["site-{siteId}"],
3761
+ auth: "public",
3762
+ responseKind: "json",
3763
+ errors: []
3764
+ },
3656
3765
  createPublicBookingAppointment: {
3657
3766
  path: "/public/bookings/appointments",
3658
3767
  method: "POST",
@@ -5563,6 +5672,14 @@ var ENDPOINT_DEFINITIONS = {
5563
5672
  responseKind: "json",
5564
5673
  errors: []
5565
5674
  },
5675
+ adminResolveSiteBillingManualReview: {
5676
+ path: "/admin/sites/{siteId}/billing/manual-reviews/{reviewId}/resolve",
5677
+ method: "POST",
5678
+ tags: ["admin", "site-{siteId}", "billing"],
5679
+ auth: "admin",
5680
+ responseKind: "json",
5681
+ errors: []
5682
+ },
5566
5683
  // Admin GSC/SEO endpoints
5567
5684
  adminGscVerifyStart: {
5568
5685
  path: "/admin/seo/gsc/properties/verify/start",
@@ -7151,7 +7268,7 @@ var SimpleCache = class {
7151
7268
  };
7152
7269
 
7153
7270
  // src/version.ts
7154
- var SDK_VERSION = "0.96.0";
7271
+ var SDK_VERSION = "0.99.0";
7155
7272
 
7156
7273
  // src/client/error.ts
7157
7274
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -7319,11 +7436,13 @@ var PUBLIC_ENDPOINT_NAMES2 = [
7319
7436
  "getSite",
7320
7437
  "getContentByPath",
7321
7438
  "resolveRouteOutcome",
7439
+ "resolveRouteDecision",
7322
7440
  "listPublishedEntries",
7323
7441
  "getPublishedEntryPreview",
7324
7442
  "getPublicFormById",
7325
7443
  "listPublicForms",
7326
7444
  "getPublicBookingServices",
7445
+ "getPublicWeeklySlotAvailability",
7327
7446
  "getPublicChallenge",
7328
7447
  "listPublicEvents",
7329
7448
  "batchBlockLoaders",
@@ -7366,6 +7485,17 @@ var API_ENDPOINTS2 = Object.freeze({
7366
7485
  auth: "public",
7367
7486
  responseKind: "json"
7368
7487
  },
7488
+ resolveRouteDecision: {
7489
+ path: "/sites/{siteId}/route-decision",
7490
+ method: "GET",
7491
+ tags: [
7492
+ "riverbank:site:{siteId}:routable-content",
7493
+ "riverbank:site:{siteId}:redirects",
7494
+ "riverbank:site:{siteId}:route-outcomes"
7495
+ ],
7496
+ auth: "public",
7497
+ responseKind: "json"
7498
+ },
7369
7499
  listPublishedEntries: {
7370
7500
  path: "/public/content/{siteId}/{type}/entries",
7371
7501
  method: "GET",
@@ -7406,6 +7536,14 @@ var API_ENDPOINTS2 = Object.freeze({
7406
7536
  auth: "public",
7407
7537
  responseKind: "json"
7408
7538
  },
7539
+ getPublicWeeklySlotAvailability: {
7540
+ path: "/public/bookings/weekly-slot-availability",
7541
+ method: "GET",
7542
+ revalidate: 60,
7543
+ tags: ["site-{siteId}"],
7544
+ auth: "public",
7545
+ responseKind: "json"
7546
+ },
7409
7547
  getPublicChallenge: {
7410
7548
  path: "/public/challenge",
7411
7549
  method: "GET",
@@ -7536,6 +7674,10 @@ var RUNTIME_CACHE_DURABILITY_OVERRIDES = {
7536
7674
  kind: "memory-only",
7537
7675
  reason: "durable_rollout_pending"
7538
7676
  },
7677
+ resolveRouteDecision: {
7678
+ kind: "memory-only",
7679
+ reason: "durable_rollout_pending"
7680
+ },
7539
7681
  listPublishedEntries: {
7540
7682
  kind: "memory-only",
7541
7683
  reason: "durable_rollout_pending"
@@ -7556,6 +7698,10 @@ var RUNTIME_CACHE_DURABILITY_OVERRIDES = {
7556
7698
  kind: "live-only",
7557
7699
  reason: "safety_sensitive_booking"
7558
7700
  },
7701
+ getPublicWeeklySlotAvailability: {
7702
+ kind: "live-only",
7703
+ reason: "safety_sensitive_booking"
7704
+ },
7559
7705
  getPublicChallenge: {
7560
7706
  kind: "live-only",
7561
7707
  reason: "challenge_endpoint"
@@ -7770,7 +7916,8 @@ function deriveGetContentByPathKey(params) {
7770
7916
  }
7771
7917
  const normalizedParams = {
7772
7918
  siteId: normalizeScalar(siteId),
7773
- path: normalizeRuntimePublicPath(params.path)
7919
+ path: normalizeRuntimePublicPath(params.path),
7920
+ ...params.contentContract === "native" ? { contentContract: "native" } : {}
7774
7921
  };
7775
7922
  return {
7776
7923
  ok: true,
@@ -7784,7 +7931,10 @@ var DURABLE_RUNTIME_CACHE_KEY_DERIVERS = {
7784
7931
  getContentByPath: deriveGetContentByPathKey
7785
7932
  };
7786
7933
  function isPublishedRuntimeCacheKeyEndpoint(value) {
7787
- return typeof value === "string" && Object.prototype.hasOwnProperty.call(DURABLE_RUNTIME_CACHE_KEY_DERIVERS, value);
7934
+ return typeof value === "string" && Object.prototype.hasOwnProperty.call(
7935
+ DURABLE_RUNTIME_CACHE_KEY_DERIVERS,
7936
+ value
7937
+ );
7788
7938
  }
7789
7939
  function parsePublishedRuntimeCacheKey(value) {
7790
7940
  const details = parsePublishedRuntimeCacheKeyDetails(value);
@@ -7845,7 +7995,7 @@ function hasExpectedPublishedRuntimeCacheKeyParams(endpoint, normalizedParams) {
7845
7995
  );
7846
7996
  }
7847
7997
  case "getContentByPath":
7848
- return normalizedParams.path !== void 0 && normalizedParams.siteId !== void 0 && keys.every((key) => ["path", "siteId"].includes(key));
7998
+ return normalizedParams.path !== void 0 && normalizedParams.siteId !== void 0 && (normalizedParams.contentContract === void 0 || normalizedParams.contentContract === "native") && keys.every((key) => ["contentContract", "path", "siteId"].includes(key));
7849
7999
  }
7850
8000
  }
7851
8001
  function parsePublishedRuntimeCachePayloadSchemaVersion(value) {
@@ -8432,7 +8582,14 @@ function resolveAuth(config) {
8432
8582
  'Authentication configuration is required. Provide either `auth` (recommended) or `apiKey` (deprecated). For public endpoints without auth, use: { auth: { type: "none" } }'
8433
8583
  );
8434
8584
  }
8585
+ var defaultRiverbankClientDeps = {
8586
+ createBearerAPIClient,
8587
+ createInternalAPIClient
8588
+ };
8435
8589
  function createRiverbankClient(config) {
8590
+ return createRiverbankClientWithDeps(defaultRiverbankClientDeps, config);
8591
+ }
8592
+ function createRiverbankClientWithDeps(deps, config) {
8436
8593
  if (!config.baseUrl) {
8437
8594
  throw new Error(
8438
8595
  "baseUrl is required when creating a Riverbank client. Expected format: https://dashboard.example.com/api (must include /api path)"
@@ -8475,7 +8632,7 @@ function createRiverbankClient(config) {
8475
8632
  keyType = "preview";
8476
8633
  break;
8477
8634
  }
8478
- const baseApiClient = authConfig.type === "none" ? createInternalAPIClient(config.baseUrl) : authConfig.type === "api-key" ? createBearerAPIClient(authConfig.key, config.baseUrl) : createBearerAPIClient(authConfig.token, config.baseUrl);
8635
+ const baseApiClient = authConfig.type === "none" ? deps.createInternalAPIClient(config.baseUrl) : authConfig.type === "api-key" ? deps.createBearerAPIClient(authConfig.key, config.baseUrl) : deps.createBearerAPIClient(authConfig.token, config.baseUrl);
8479
8636
  const apiClient = withDefaultHeaders(baseApiClient, config.defaultHeaders);
8480
8637
  const cache = new SimpleCache({
8481
8638
  maxSize: cacheMaxSize,
@@ -8840,19 +8997,30 @@ function createRiverbankClient(config) {
8840
8997
  );
8841
8998
  }
8842
8999
  async function getPageWithResilienceInternal(params) {
8843
- const { siteId, path: path3, preview = false, signal } = params;
9000
+ const {
9001
+ siteId,
9002
+ path: path3,
9003
+ preview = false,
9004
+ signal,
9005
+ contentContract = "compat"
9006
+ } = params;
8844
9007
  const publishedRuntimeCache = planPublishedRuntimeCache({
8845
9008
  endpoint: "getContentByPath",
8846
- params: { siteId, path: path3, preview },
9009
+ params: { siteId, path: path3, preview, contentContract },
8847
9010
  siteId
8848
9011
  });
8849
- const cacheKey = publishedRuntimeCache?.cacheKey ?? `page:${siteId}:${path3}:${preview}`;
9012
+ const cacheKey = publishedRuntimeCache?.cacheKey ?? `page:${siteId}:${path3}:${preview}:${contentContract}`;
8850
9013
  return resilientFetch(
8851
9014
  cacheKey,
8852
9015
  async (sig) => {
8853
9016
  return await apiClient({
8854
9017
  endpoint: "getContentByPath",
8855
- params: { siteId, path: path3, preview: String(preview) },
9018
+ params: {
9019
+ siteId,
9020
+ path: path3,
9021
+ preview: String(preview),
9022
+ ...contentContract === "native" ? { contentContract } : {}
9023
+ },
8856
9024
  options: { signal: sig }
8857
9025
  });
8858
9026
  },
@@ -8861,7 +9029,7 @@ function createRiverbankClient(config) {
8861
9029
  signal,
8862
9030
  publishedRuntimeCache,
8863
9031
  // Prebuild fallback only for published pages (not preview)
8864
- prebuildFallback: prebuildLoader && !preview ? () => prebuildLoader.loadPage(siteId, path3) : void 0
9032
+ prebuildFallback: prebuildLoader && !preview && contentContract !== "native" ? () => prebuildLoader.loadPage(siteId, path3) : void 0
8865
9033
  }
8866
9034
  );
8867
9035
  }
@@ -9050,6 +9218,38 @@ function createRiverbankClient(config) {
9050
9218
  { signal }
9051
9219
  );
9052
9220
  },
9221
+ async getPublicWeeklySlotAvailability(params) {
9222
+ const { siteId, serviceId, resourceId, horizonWeeks, timezone, signal } = params;
9223
+ if (!siteId || !serviceId) {
9224
+ throw new Error("getPublicWeeklySlotAvailability() requires siteId and serviceId");
9225
+ }
9226
+ const cacheKey = [
9227
+ "public-weekly-slot-availability",
9228
+ siteId,
9229
+ serviceId,
9230
+ resourceId ?? "",
9231
+ horizonWeeks ?? "",
9232
+ timezone ?? ""
9233
+ ].join(":");
9234
+ return resilientFetchData(
9235
+ cacheKey,
9236
+ async (sig) => {
9237
+ const apiParams = {
9238
+ siteId,
9239
+ serviceId,
9240
+ ...resourceId && { resourceId },
9241
+ ...horizonWeeks !== void 0 && { horizonWeeks: String(horizonWeeks) },
9242
+ ...timezone && { timezone }
9243
+ };
9244
+ return await apiClient({
9245
+ endpoint: "getPublicWeeklySlotAvailability",
9246
+ params: apiParams,
9247
+ options: { signal: sig }
9248
+ });
9249
+ },
9250
+ { signal }
9251
+ );
9252
+ },
9053
9253
  async listPublicEvents(params) {
9054
9254
  const {
9055
9255
  siteId,
@@ -9351,6 +9551,19 @@ function createRiverbankClient(config) {
9351
9551
  })
9352
9552
  );
9353
9553
  },
9554
+ async resolveRouteDecision(params) {
9555
+ const { siteId, path: path3, preview = false, signal } = params;
9556
+ if (!siteId || !path3) {
9557
+ throw new Error("resolveRouteDecision() requires siteId and path");
9558
+ }
9559
+ return unwrapResponse(
9560
+ await apiClient({
9561
+ endpoint: "resolveRouteDecision",
9562
+ params: { siteId, path: path3, preview: String(preview) },
9563
+ options: { signal }
9564
+ })
9565
+ );
9566
+ },
9354
9567
  async getAllPublishedRoutes(params) {
9355
9568
  const { siteId, signal } = params;
9356
9569
  if (!siteId) {
@@ -9773,33 +9986,37 @@ function isPrebuildManifest(value) {
9773
9986
  if (typeof value.totalSize !== "number") return false;
9774
9987
  return true;
9775
9988
  }
9989
+ var nodePrebuildFileSystem = {
9990
+ existsSync: fs2.existsSync,
9991
+ readFileSync: (filePath, encoding) => fs2.readFileSync(filePath, encoding)
9992
+ };
9776
9993
  var cachedManifest = null;
9777
- function loadManifest(prebuildDir) {
9778
- if (cachedManifest?.dir === prebuildDir) {
9994
+ function loadManifest(prebuildDir, fileSystem) {
9995
+ if (cachedManifest?.dir === prebuildDir && cachedManifest.fileSystem === fileSystem) {
9779
9996
  return cachedManifest.manifest;
9780
9997
  }
9781
9998
  const manifestPath = path2.join(prebuildDir, "manifest.json");
9782
- if (!fs2.existsSync(manifestPath)) {
9999
+ if (!fileSystem.existsSync(manifestPath)) {
9783
10000
  return null;
9784
10001
  }
9785
10002
  try {
9786
- const content = fs2.readFileSync(manifestPath, "utf-8");
10003
+ const content = fileSystem.readFileSync(manifestPath, "utf-8");
9787
10004
  const parsed = JSON.parse(content);
9788
10005
  if (!isPrebuildManifest(parsed)) return null;
9789
10006
  const manifest = parsed;
9790
- cachedManifest = { manifest, dir: prebuildDir };
10007
+ cachedManifest = { manifest, dir: prebuildDir, fileSystem };
9791
10008
  return manifest;
9792
10009
  } catch {
9793
10010
  return null;
9794
10011
  }
9795
10012
  }
9796
- function loadJsonFile(prebuildDir, relativePath) {
10013
+ function loadJsonFile(prebuildDir, relativePath, fileSystem) {
9797
10014
  const filePath = path2.join(prebuildDir, relativePath);
9798
- if (!fs2.existsSync(filePath)) {
10015
+ if (!fileSystem.existsSync(filePath)) {
9799
10016
  return null;
9800
10017
  }
9801
10018
  try {
9802
- const content = fs2.readFileSync(filePath, "utf-8");
10019
+ const content = fileSystem.readFileSync(filePath, "utf-8");
9803
10020
  return JSON.parse(content);
9804
10021
  } catch {
9805
10022
  return null;
@@ -9813,12 +10030,12 @@ function getPrebuildAgeSec(manifest) {
9813
10030
  const ageMs = Date.now() - new Date(manifest.generatedAt).getTime();
9814
10031
  return Math.floor(ageMs / 1e3);
9815
10032
  }
9816
- function canUsePrebuild() {
10033
+ function canUsePrebuild(fileSystem = nodePrebuildFileSystem) {
9817
10034
  if (typeof process === "undefined" || !process.versions?.node) {
9818
10035
  return false;
9819
10036
  }
9820
10037
  try {
9821
- return typeof fs2.existsSync === "function";
10038
+ return typeof fileSystem.existsSync === "function";
9822
10039
  } catch {
9823
10040
  return false;
9824
10041
  }
@@ -9827,15 +10044,16 @@ var PrebuildLoader = class {
9827
10044
  constructor(config) {
9828
10045
  this.prebuildDir = config.prebuildDir ?? DEFAULT_PREBUILD_DIR;
9829
10046
  this.maxPrebuildAgeSec = config.maxPrebuildAgeSec ?? DEFAULT_MAX_PREBUILD_AGE_SEC;
10047
+ this.fileSystem = config.fileSystem ?? nodePrebuildFileSystem;
9830
10048
  }
9831
10049
  /**
9832
10050
  * Check if prebuild is available and not expired.
9833
10051
  */
9834
10052
  isAvailable() {
9835
- if (!canUsePrebuild()) {
10053
+ if (!canUsePrebuild(this.fileSystem)) {
9836
10054
  return false;
9837
10055
  }
9838
- const manifest = loadManifest(this.prebuildDir);
10056
+ const manifest = loadManifest(this.prebuildDir, this.fileSystem);
9839
10057
  if (!manifest) {
9840
10058
  return false;
9841
10059
  }
@@ -9845,11 +10063,15 @@ var PrebuildLoader = class {
9845
10063
  * Load site data from prebuild cache.
9846
10064
  */
9847
10065
  loadSite(siteId) {
9848
- const manifest = loadManifest(this.prebuildDir);
10066
+ const manifest = loadManifest(this.prebuildDir, this.fileSystem);
9849
10067
  if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
9850
10068
  return null;
9851
10069
  }
9852
- const cacheFile = loadJsonFile(this.prebuildDir, "site.json");
10070
+ const cacheFile = loadJsonFile(
10071
+ this.prebuildDir,
10072
+ "site.json",
10073
+ this.fileSystem
10074
+ );
9853
10075
  if (!cacheFile || cacheFile.data.site.id !== siteId) {
9854
10076
  return null;
9855
10077
  }
@@ -9862,7 +10084,7 @@ var PrebuildLoader = class {
9862
10084
  * Load page data from prebuild cache.
9863
10085
  */
9864
10086
  loadPage(siteId, pagePath) {
9865
- const manifest = loadManifest(this.prebuildDir);
10087
+ const manifest = loadManifest(this.prebuildDir, this.fileSystem);
9866
10088
  if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
9867
10089
  return null;
9868
10090
  }
@@ -9871,7 +10093,11 @@ var PrebuildLoader = class {
9871
10093
  if (!relativePath) {
9872
10094
  return null;
9873
10095
  }
9874
- const cacheFile = loadJsonFile(this.prebuildDir, relativePath);
10096
+ const cacheFile = loadJsonFile(
10097
+ this.prebuildDir,
10098
+ relativePath,
10099
+ this.fileSystem
10100
+ );
9875
10101
  if (!cacheFile) {
9876
10102
  return null;
9877
10103
  }
@@ -9893,7 +10119,7 @@ var PrebuildLoader = class {
9893
10119
  if (params.mode === "manual" && params.entryIds?.length) {
9894
10120
  return null;
9895
10121
  }
9896
- const manifest = loadManifest(this.prebuildDir);
10122
+ const manifest = loadManifest(this.prebuildDir, this.fileSystem);
9897
10123
  if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
9898
10124
  return null;
9899
10125
  }
@@ -9902,7 +10128,11 @@ var PrebuildLoader = class {
9902
10128
  if (!relativePath) {
9903
10129
  return null;
9904
10130
  }
9905
- const cacheFile = loadJsonFile(this.prebuildDir, relativePath);
10131
+ const cacheFile = loadJsonFile(
10132
+ this.prebuildDir,
10133
+ relativePath,
10134
+ this.fileSystem
10135
+ );
9906
10136
  if (!cacheFile) {
9907
10137
  return null;
9908
10138
  }
@@ -9953,13 +10183,14 @@ var PrebuildLoader = class {
9953
10183
  * Load navigation data from prebuild cache.
9954
10184
  */
9955
10185
  loadNavigation() {
9956
- const manifest = loadManifest(this.prebuildDir);
10186
+ const manifest = loadManifest(this.prebuildDir, this.fileSystem);
9957
10187
  if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
9958
10188
  return null;
9959
10189
  }
9960
10190
  const cacheFile = loadJsonFile(
9961
10191
  this.prebuildDir,
9962
- "navigation/menus.json"
10192
+ "navigation/menus.json",
10193
+ this.fileSystem
9963
10194
  );
9964
10195
  if (!cacheFile) {
9965
10196
  return null;
@@ -9973,13 +10204,14 @@ var PrebuildLoader = class {
9973
10204
  * Load forms data from prebuild cache.
9974
10205
  */
9975
10206
  loadForms() {
9976
- const manifest = loadManifest(this.prebuildDir);
10207
+ const manifest = loadManifest(this.prebuildDir, this.fileSystem);
9977
10208
  if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
9978
10209
  return null;
9979
10210
  }
9980
10211
  const cacheFile = loadJsonFile(
9981
10212
  this.prebuildDir,
9982
- "forms/forms.json"
10213
+ "forms/forms.json",
10214
+ this.fileSystem
9983
10215
  );
9984
10216
  if (!cacheFile) {
9985
10217
  return null;
@@ -9993,7 +10225,7 @@ var PrebuildLoader = class {
9993
10225
  * Get the manifest for inspection.
9994
10226
  */
9995
10227
  getManifest() {
9996
- return loadManifest(this.prebuildDir);
10228
+ return loadManifest(this.prebuildDir, this.fileSystem);
9997
10229
  }
9998
10230
  /**
9999
10231
  * Clear the cached manifest (for testing).
@@ -10034,6 +10266,7 @@ var SYSTEM_BLOCK_KINDS = [
10034
10266
  "block.form",
10035
10267
  "block.contact-newsletter",
10036
10268
  "block.appointment-booking",
10269
+ "block.weekly-slot-availability",
10037
10270
  "block.event-registration",
10038
10271
  "block.event-details",
10039
10272
  "block.course-registration",
@@ -77,7 +77,7 @@ function planRouteOutcomeRedirect(outcome) {
77
77
  destination: outcome.destination,
78
78
  status: normalizeRedirectStatus(outcome.status)
79
79
  };
80
- case "content":
80
+ case "contentExists":
81
81
  case "notFound":
82
82
  case "loadFailed":
83
83
  return { kind: "passThrough" };
@@ -91,7 +91,7 @@ async function handleRouteOutcomeRedirect(request, options) {
91
91
  return null;
92
92
  }
93
93
  try {
94
- const outcome = await options.client.resolveRouteOutcome({
94
+ const outcome = await options.client.resolveRouteDecision({
95
95
  siteId: options.siteId,
96
96
  path: pathname,
97
97
  preview: false