@riverbankcms/sdk 0.129.0 → 0.130.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 (441) hide show
  1. package/README.md +51 -266
  2. package/dist/{PreviewEditorSidebar-B43CJ0g_.mjs → PreviewEditorSidebar-DiEpbOdw.mjs} +313 -239
  3. package/dist/{PreviewEditorUI-DHirVkeM.mjs → PreviewEditorUI-C6MvxnIa.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-B1kbhaJD.mjs → PreviewQueryProvider-C2rnoPz6.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-BJumZy1B.mjs → SdkPreviewModeRuntime-DRXA_m5L.mjs} +208 -211
  6. package/dist/{SiteChromeCustomizeContext-D9SlpwEj.mjs → SiteChromeCustomizeContext-BTHdv5_-.mjs} +6222 -6190
  7. package/dist/_dts/ai/src/contracts/commandExposure.d.ts +1 -1
  8. package/dist/_dts/ai/src/contracts/proposalPrimitives.d.ts +52 -0
  9. package/dist/_dts/ai/src/contracts/proposals.d.ts +9438 -33588
  10. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +32572 -0
  11. package/dist/_dts/api/src/appointmentSetup.d.ts +21 -9
  12. package/dist/_dts/api/src/bookingConfig.d.ts +4 -46
  13. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +13 -11
  14. package/dist/_dts/api/src/bookingRecords.d.ts +1 -0
  15. package/dist/_dts/api/src/contentRuntime.d.ts +3 -5
  16. package/dist/_dts/api/src/endpoints.d.ts +14 -21
  17. package/dist/_dts/api/src/eventManagementContracts.d.ts +76 -0
  18. package/dist/_dts/api/src/index.d.ts +5 -3
  19. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +22 -47
  20. package/dist/_dts/api/src/sdk-event-management.d.ts +53 -0
  21. package/dist/_dts/api/src/sdk-event-schedule.d.ts +8 -6
  22. package/dist/_dts/api/src/sdk-event-upsert.d.ts +112 -20
  23. package/dist/_dts/api/src/sdkContracts.d.ts +74 -115
  24. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +35 -0
  25. package/dist/_dts/api/src/sdkThemeWire.d.ts +4517 -0
  26. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +18 -29
  27. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +23 -37
  28. package/dist/_dts/blocks/src/contracts/index.d.ts +2 -0
  29. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +6 -8
  30. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +36 -14
  31. package/dist/_dts/blocks/src/index.d.ts +5 -3
  32. package/dist/_dts/blocks/src/lib/media.d.ts +9 -539
  33. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -2
  34. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +135 -90
  35. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -2
  36. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +37 -4
  37. package/dist/_dts/blocks/src/system/blocks/site-footer-nav-groups-layout.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +3 -0
  39. package/dist/_dts/blocks/src/system/componentFactory.d.ts +5 -5
  40. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +8 -6
  41. package/dist/_dts/blocks/src/system/customize/serializeBackgroundOverride.d.ts +3 -0
  42. package/dist/_dts/blocks/src/system/fields/background.d.ts +2 -20
  43. package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +17 -0
  44. package/dist/_dts/blocks/src/system/fields/backgroundContentAudit.d.ts +20 -0
  45. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +5 -33
  46. package/dist/_dts/blocks/src/system/fragments/builder.d.ts +1 -0
  47. package/dist/_dts/blocks/src/system/fragments/types.d.ts +1 -0
  48. package/dist/_dts/blocks/src/system/helpers/index.d.ts +1 -1
  49. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +10 -45
  50. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +7 -4
  51. package/dist/_dts/blocks/src/system/manifest/fieldValidation/writeCanonicalization.d.ts +4 -0
  52. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +123 -55
  53. package/dist/_dts/blocks/src/system/registry.d.ts +2 -0
  54. package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +2 -37
  55. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +61 -24
  56. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +30 -12
  57. package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +3 -5
  58. package/dist/_dts/blocks/src/system/runtime/header/headerScrollRuntime.d.ts +2 -0
  59. package/dist/_dts/blocks/src/system/runtime/header/runtimeContract.d.ts +22 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +9 -2
  61. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/view.d.ts +3 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -0
  63. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.frame.d.ts +21 -0
  64. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +2 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +41 -12
  66. package/dist/_dts/blocks/src/system/runtime/nodes/shop.pass-contract.d.ts +3 -0
  67. package/dist/_dts/blocks/src/system/runtime/nodes/shop.state.d.ts +3 -3
  68. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -1
  69. package/dist/_dts/blocks/src/system/transforms/registry/background.d.ts +1 -1
  70. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -1
  71. package/dist/_dts/blocks/src/system/transforms/registry/core.d.ts +4 -1
  72. package/dist/_dts/blocks/src/system/transforms/registry/headerRuntime.d.ts +3 -0
  73. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -1
  74. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -3
  75. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +41 -43
  76. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +4 -2
  77. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +2 -17
  78. package/dist/_dts/content-editor/src/FooterNavigationLayoutControl.d.ts +5 -0
  79. package/dist/_dts/content-editor/src/footerComposer.d.ts +2 -1
  80. package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +21 -0
  81. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +2 -1
  82. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +11 -1
  83. package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +26 -0
  84. package/dist/_dts/content-model/src/templates/defaults.d.ts +7 -0
  85. package/dist/_dts/core/src/booking-date-time.d.ts +2 -2
  86. package/dist/_dts/core/src/booking-time-zone.d.ts +6 -0
  87. package/dist/_dts/core/src/footer-composition-types.d.ts +4 -4
  88. package/dist/_dts/core/src/footer-navigation-layout.d.ts +4 -0
  89. package/dist/_dts/core/src/index.d.ts +1 -0
  90. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +38 -18
  91. package/dist/_dts/media-core/src/index.d.ts +1 -0
  92. package/dist/_dts/preview-next/src/client/preview/FooterSidebarDisclosure.d.ts +8 -0
  93. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +5 -5
  94. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +15 -17
  95. package/dist/_dts/preview-next/src/client/preview/PreviewFooterEditorPanel.d.ts +20 -0
  96. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -5
  97. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -5
  98. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -4
  99. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -5
  100. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +6 -7
  101. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +7 -7
  102. package/dist/_dts/preview-next/src/client/preview/siteChromeCustomizeTypes.d.ts +4 -4
  103. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -2
  104. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +12 -11
  105. package/dist/_dts/preview-next/src/client/preview/siteChromeSelectionRows.d.ts +53 -0
  106. package/dist/_dts/preview-next/src/client/preview/siteStyleAccess.d.ts +1 -6
  107. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +6 -15
  108. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +4 -6
  109. package/dist/_dts/sdk/src/config/types.d.ts +5 -4
  110. package/dist/_dts/sdk/src/config/validation.d.ts +2 -0
  111. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -41
  112. package/dist/_dts/sdk/src/next/catch-all-theme-admission.d.ts +23 -0
  113. package/dist/_dts/sdk/src/next/index.d.ts +8 -6
  114. package/dist/_dts/sdk/src/next/resolveTheme.d.ts +1 -2
  115. package/dist/_dts/sdk/src/next/types.d.ts +10 -0
  116. package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -16
  117. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +3 -2
  118. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +5 -3
  119. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +1 -1
  120. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +4 -2
  121. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -0
  122. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +6 -1
  123. package/dist/_dts/sdk/src/rendering/server.d.ts +2 -0
  124. package/dist/_dts/sdk/src/rendering/themeAdmission.d.ts +11 -0
  125. package/dist/_dts/sdk/src/version.d.ts +1 -1
  126. package/dist/_dts/theme-core/src/blockOverrides.d.ts +1 -1
  127. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +184 -0
  128. package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +96 -0
  129. package/dist/_dts/theme-core/src/buttons/buttonSurfaceContext.d.ts +78 -0
  130. package/dist/_dts/theme-core/src/buttons/index.d.ts +2 -0
  131. package/dist/_dts/theme-core/src/buttons/parseThemeForPersistence.d.ts +2 -2
  132. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +9 -57
  133. package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +6 -3
  134. package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +8 -7
  135. package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +1 -0
  136. package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +11 -0
  137. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +12 -0
  138. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +5 -0
  139. package/dist/_dts/theme-core/src/buttons/types.d.ts +51 -4
  140. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  141. package/dist/_dts/theme-core/src/lib/media.d.ts +583 -10
  142. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +5117 -1433
  143. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -0
  144. package/dist/_dts/theme-core/src/schema.d.ts +5079 -2005
  145. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +6 -14
  146. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +29 -102
  147. package/dist/_dts/theme-core/src/site-styles/customizableSurfaces.d.ts +3 -76
  148. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
  149. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -7
  150. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipelineHelpers.d.ts +17 -0
  151. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  152. package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +281 -0
  153. package/dist/_dts/theme-core/src/site-styles/headerLayoutResolution.d.ts +13 -0
  154. package/dist/_dts/theme-core/src/site-styles/headerLayoutStyles.d.ts +6 -0
  155. package/dist/_dts/theme-core/src/site-styles/headerLayoutTypes.d.ts +142 -0
  156. package/dist/_dts/theme-core/src/site-styles/headerNavStyles.d.ts +6 -0
  157. package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +7 -4
  158. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +2 -2
  159. package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +3 -0
  160. package/dist/_dts/theme-core/src/site-styles/imageSurfaceBackground.d.ts +14 -0
  161. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -1
  162. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +14 -41
  163. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +23 -0
  164. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +8 -6
  165. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +1 -1
  166. package/dist/client/{CourseRegistrationWizard-xRmA7REV.mjs → CourseRegistrationWizard-Bvtz9G9g.mjs} +5 -5
  167. package/dist/client/{DiscountCodeDisclosure-B9vriL5C.mjs → DiscountCodeDisclosure-Ur-Xx1U_.mjs} +1 -1
  168. package/dist/client/{EventCombined.client-BgVnVTlz.mjs → EventCombined.client-EhscD4U6.mjs} +2 -2
  169. package/dist/client/{EventListing.client-CqdsO7jO.mjs → EventListing.client-Bn26cFTY.mjs} +2 -2
  170. package/dist/client/{LeafletStaticMap-CKPxot9M.mjs → LeafletStaticMap-BUw9Ntzr.mjs} +1 -1
  171. package/dist/client/{StepIndicator-DGCYuBJ1.mjs → StepIndicator-BfbdiVQI.mjs} +2 -2
  172. package/dist/client/{accordion-BfN5Eqd-.mjs → accordion-CjIeof73.mjs} +1 -1
  173. package/dist/client/{bookingForm-DOvCpBFP.mjs → bookingForm-DwEeovf_.mjs} +5 -5
  174. package/dist/client/bookings.mjs +1028 -1038
  175. package/dist/client/{carousel-DPNmiH0f.mjs → carousel-BMrfgOba.mjs} +1 -1
  176. package/dist/client/{cart--egVXlrR.mjs → cart-rXEdxTdb.mjs} +3 -3
  177. package/dist/client/{checkout-DywWtMcq.mjs → checkout-D3JlSzh3.mjs} +3 -3
  178. package/dist/client/client.mjs +18324 -18224
  179. package/dist/client/{courseRegistration-Dk9qFVwt.mjs → courseRegistration-DO5XvMAA.mjs} +2 -2
  180. package/dist/client/{eventCalendar-Bkz2HjlS.mjs → eventCalendar-DO6rTqCn.mjs} +4 -4
  181. package/dist/client/{eventCombined-D4kipYWg.mjs → eventCombined-bJ3i_ovU.mjs} +2 -2
  182. package/dist/client/{eventDetails-Dz_5ix2Q.mjs → eventDetails-CCbrXE7o.mjs} +3 -3
  183. package/dist/client/{eventListing-D0vm-zST.mjs → eventListing-Bdlt9YTm.mjs} +2 -2
  184. package/dist/client/{eventRegistration-Cw1E4Q4p.mjs → eventRegistration-B02lt6iY.mjs} +6 -6
  185. package/dist/client/{form-C2Zf1n3K.mjs → form-DrUBAAox.mjs} +1 -1
  186. package/dist/client/{headerSection-CP05gzdc.mjs → headerSection-MzqvHL6T.mjs} +151 -104
  187. package/dist/client/hooks.mjs +4550 -4211
  188. package/dist/client/{locationMap-Cl3x9PYJ.mjs → locationMap-DG8BxTBm.mjs} +2 -2
  189. package/dist/client/{newsletterForm-DyEJoClm.mjs → newsletterForm-BzO-Td3p.mjs} +1 -1
  190. package/dist/client/{pricing-DGuNR1W4.mjs → pricing-NgK7ozkg.mjs} +1 -1
  191. package/dist/client/{productDetail-Cq-HrGew.mjs → productDetail-CfQ7rhVK.mjs} +3 -3
  192. package/dist/client/{productList-DbB3jwqd.mjs → productList-C23rOLUi.mjs} +3 -3
  193. package/dist/client/{propsDecoder-CiTuhUwY.mjs → propsDecoder-CAZdhwjs.mjs} +2166 -2157
  194. package/dist/client/rendering/client.mjs +3606 -4078
  195. package/dist/client/rendering/islands.mjs +18 -18
  196. package/dist/client/rendering.mjs +15969 -15843
  197. package/dist/client/{scrollToBlock-CShkRqab.mjs → scrollToBlock-DSSqVQr1.mjs} +1 -1
  198. package/dist/client/{shop-Cu4Ib-ZA.mjs → shop-BMToKLK7.mjs} +34 -23
  199. package/dist/client/{shop-commerce-BzpsOdh7.mjs → shop-commerce-DB4JRKmp.mjs} +4 -4
  200. package/dist/client/{shop-commerce-store-DaE7Fhj8.mjs → shop-commerce-store-BOqSIOuc.mjs} +1 -1
  201. package/dist/client/{shopShared-cF0c20vB.mjs → shopShared-B6SK9DZv.mjs} +9 -3
  202. package/dist/client/{useEventFilters-QZ3HMgaJ.mjs → useEventFilters-CULOa4nB.mjs} +2 -2
  203. package/dist/client/{usePolling-BKf0GcE-.mjs → usePolling-BGG_8-jl.mjs} +2 -2
  204. package/dist/preview-next/before-render.mjs +16 -27
  205. package/dist/preview-next/client/runtime.mjs +4 -4
  206. package/dist/preview-next/middleware.mjs +16 -27
  207. package/dist/{previewAuthStore-BesgU5Xu.mjs → previewAuthStore-_GXFRg2W.mjs} +16 -27
  208. package/dist/{sdk-runtime-CfZd5pAm.mjs → sdk-runtime-hhSOMShR.mjs} +2 -2
  209. package/dist/{separator-DkTe68HE.mjs → separator-flRaFc14.mjs} +1 -1
  210. package/dist/server/components.mjs +17802 -17875
  211. package/dist/server/config-validation.mjs +4729 -4416
  212. package/dist/server/config.mjs +4733 -4420
  213. package/dist/server/data.mjs +4533 -4211
  214. package/dist/server/date-time.mjs +22 -13
  215. package/dist/server/index.mjs +17 -28
  216. package/dist/server/manifest.mjs +4966 -0
  217. package/dist/server/next.mjs +17635 -17676
  218. package/dist/server/page-converter.mjs +3759 -4386
  219. package/dist/server/prebuild.mjs +1 -1
  220. package/dist/server/rendering/server.mjs +18960 -19049
  221. package/dist/server/rendering.mjs +17848 -17902
  222. package/dist/server/routing.mjs +4776 -4323
  223. package/dist/server/server.mjs +4609 -4264
  224. package/dist/server/theme-bridge.mjs +1361 -1850
  225. package/dist/server/theme.mjs +736 -605
  226. package/dist/styles/index.css +22 -3
  227. package/package.json +9 -12
  228. package/dist/_dts/api/src/event-presentation.d.ts +0 -14
  229. package/dist/_dts/blocks/src/definitions.d.ts +0 -14
  230. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +0 -66
  231. package/dist/_dts/sdk/src/cli/canonical-entry-policy.d.ts +0 -53
  232. package/dist/_dts/sdk/src/cli/commands/audit.d.ts +0 -101
  233. package/dist/_dts/sdk/src/cli/commands/block.d.ts +0 -24
  234. package/dist/_dts/sdk/src/cli/commands/compare.d.ts +0 -62
  235. package/dist/_dts/sdk/src/cli/commands/content-type.d.ts +0 -10
  236. package/dist/_dts/sdk/src/cli/commands/content.d.ts +0 -56
  237. package/dist/_dts/sdk/src/cli/commands/delete.d.ts +0 -14
  238. package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +0 -43
  239. package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +0 -18
  240. package/dist/_dts/sdk/src/cli/commands/entry.d.ts +0 -55
  241. package/dist/_dts/sdk/src/cli/commands/env.d.ts +0 -31
  242. package/dist/_dts/sdk/src/cli/commands/event.d.ts +0 -23
  243. package/dist/_dts/sdk/src/cli/commands/eventOccurrenceSchedule.d.ts +0 -12
  244. package/dist/_dts/sdk/src/cli/commands/identifiers.d.ts +0 -10
  245. package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +0 -13
  246. package/dist/_dts/sdk/src/cli/commands/manifest.d.ts +0 -10
  247. package/dist/_dts/sdk/src/cli/commands/media-validation.d.ts +0 -3
  248. package/dist/_dts/sdk/src/cli/commands/migrate.d.ts +0 -11
  249. package/dist/_dts/sdk/src/cli/commands/navigation.d.ts +0 -12
  250. package/dist/_dts/sdk/src/cli/commands/page.d.ts +0 -14
  251. package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +0 -50
  252. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +0 -10
  253. package/dist/_dts/sdk/src/cli/commands/pull-dry-run.d.ts +0 -70
  254. package/dist/_dts/sdk/src/cli/commands/pull-scope-diff.d.ts +0 -8
  255. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +0 -43
  256. package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +0 -3
  257. package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +0 -19
  258. package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +0 -42
  259. package/dist/_dts/sdk/src/cli/commands/push/execute/localMediaReporting.d.ts +0 -23
  260. package/dist/_dts/sdk/src/cli/commands/push/execute/media.d.ts +0 -22
  261. package/dist/_dts/sdk/src/cli/commands/push/execute/metadata.d.ts +0 -1
  262. package/dist/_dts/sdk/src/cli/commands/push/execute/reporting.d.ts +0 -7
  263. package/dist/_dts/sdk/src/cli/commands/push/execute/theme.d.ts +0 -63
  264. package/dist/_dts/sdk/src/cli/commands/push/filter.d.ts +0 -15
  265. package/dist/_dts/sdk/src/cli/commands/push/metadata.d.ts +0 -29
  266. package/dist/_dts/sdk/src/cli/commands/push/normalizeLocalContent.d.ts +0 -2
  267. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +0 -32
  268. package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +0 -15
  269. package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +0 -25
  270. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +0 -83
  271. package/dist/_dts/sdk/src/cli/commands/push/scopes/eventCategories.d.ts +0 -4
  272. package/dist/_dts/sdk/src/cli/commands/push/scopes/events.d.ts +0 -4
  273. package/dist/_dts/sdk/src/cli/commands/push/scopes/mediaPrep.d.ts +0 -14
  274. package/dist/_dts/sdk/src/cli/commands/push/scopes/pushScopeGeneric.d.ts +0 -6
  275. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +0 -87
  276. package/dist/_dts/sdk/src/cli/commands/push/scopes/venues.d.ts +0 -4
  277. package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +0 -48
  278. package/dist/_dts/sdk/src/cli/commands/push/stale.d.ts +0 -17
  279. package/dist/_dts/sdk/src/cli/commands/push/verification.d.ts +0 -56
  280. package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +0 -34
  281. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +0 -54
  282. package/dist/_dts/sdk/src/cli/commands/push.d.ts +0 -40
  283. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +0 -3
  284. package/dist/_dts/sdk/src/cli/commands/style.d.ts +0 -60
  285. package/dist/_dts/sdk/src/cli/commands/verify.d.ts +0 -11
  286. package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +0 -44
  287. package/dist/_dts/sdk/src/cli/config-loader.d.ts +0 -47
  288. package/dist/_dts/sdk/src/cli/content/collectionWriters.d.ts +0 -23
  289. package/dist/_dts/sdk/src/cli/content/edit/format.d.ts +0 -2
  290. package/dist/_dts/sdk/src/cli/content/edit/path.d.ts +0 -14
  291. package/dist/_dts/sdk/src/cli/content/edit/planner.d.ts +0 -46
  292. package/dist/_dts/sdk/src/cli/content/entryPaths.d.ts +0 -6
  293. package/dist/_dts/sdk/src/cli/content/footerFile.d.ts +0 -10
  294. package/dist/_dts/sdk/src/cli/content/fs-utils.d.ts +0 -39
  295. package/dist/_dts/sdk/src/cli/content/legacyEventScheduleShapeError.d.ts +0 -5
  296. package/dist/_dts/sdk/src/cli/content/localEventSchedule.d.ts +0 -17
  297. package/dist/_dts/sdk/src/cli/content/media-manifest.d.ts +0 -13
  298. package/dist/_dts/sdk/src/cli/content/metadataAfterPush.d.ts +0 -25
  299. package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +0 -29
  300. package/dist/_dts/sdk/src/cli/content/reader.d.ts +0 -488
  301. package/dist/_dts/sdk/src/cli/content/writer.d.ts +0 -142
  302. package/dist/_dts/sdk/src/cli/env-scope.d.ts +0 -2
  303. package/dist/_dts/sdk/src/cli/env.d.ts +0 -71
  304. package/dist/_dts/sdk/src/cli/errors.d.ts +0 -62
  305. package/dist/_dts/sdk/src/cli/helpers/ai-runtime.d.ts +0 -2
  306. package/dist/_dts/sdk/src/cli/helpers.d.ts +0 -399
  307. package/dist/_dts/sdk/src/cli/index.d.ts +0 -11
  308. package/dist/_dts/sdk/src/cli/init-docs/constants.d.ts +0 -16
  309. package/dist/_dts/sdk/src/cli/init-docs/index.d.ts +0 -12
  310. package/dist/_dts/sdk/src/cli/init-docs/templates.d.ts +0 -18
  311. package/dist/_dts/sdk/src/cli/init-docs/zod-to-markdown.d.ts +0 -28
  312. package/dist/_dts/sdk/src/cli/load-config.d.ts +0 -14
  313. package/dist/_dts/sdk/src/cli/media/identifiers.d.ts +0 -18
  314. package/dist/_dts/sdk/src/cli/media/local-media.d.ts +0 -14
  315. package/dist/_dts/sdk/src/cli/media/local-sync.d.ts +0 -91
  316. package/dist/_dts/sdk/src/cli/media/portable.d.ts +0 -11
  317. package/dist/_dts/sdk/src/cli/media/rich-text.d.ts +0 -12
  318. package/dist/_dts/sdk/src/cli/media/value-utils.d.ts +0 -15
  319. package/dist/_dts/sdk/src/cli/media/write-guard.d.ts +0 -52
  320. package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +0 -3
  321. package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +0 -78
  322. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePlan.d.ts +0 -45
  323. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +0 -24
  324. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +0 -18
  325. package/dist/_dts/sdk/src/cli/merge-remote/entryRemote.d.ts +0 -9
  326. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +0 -48
  327. package/dist/_dts/sdk/src/cli/merge-remote/mergeFieldChanges.d.ts +0 -22
  328. package/dist/_dts/sdk/src/cli/merge-remote/pageLocal.d.ts +0 -3
  329. package/dist/_dts/sdk/src/cli/merge-remote/pageMerge.d.ts +0 -78
  330. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePlan.d.ts +0 -36
  331. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +0 -23
  332. package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +0 -17
  333. package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +0 -46
  334. package/dist/_dts/sdk/src/cli/merge-remote/sharedBaseSnapshots.d.ts +0 -32
  335. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergePlan.d.ts +0 -27
  336. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergeReport.d.ts +0 -63
  337. package/dist/_dts/sdk/src/cli/migrations/entries.d.ts +0 -28
  338. package/dist/_dts/sdk/src/cli/migrations/events.d.ts +0 -73
  339. package/dist/_dts/sdk/src/cli/navigationIdentity.d.ts +0 -11
  340. package/dist/_dts/sdk/src/cli/output.d.ts +0 -133
  341. package/dist/_dts/sdk/src/cli/program.d.ts +0 -29
  342. package/dist/_dts/sdk/src/cli/push-config.d.ts +0 -49
  343. package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +0 -51
  344. package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +0 -13
  345. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +0 -170
  346. package/dist/_dts/sdk/src/cli/site-commands/commandRuntimeCompat.d.ts +0 -21
  347. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +0 -32
  348. package/dist/_dts/sdk/src/cli/site-commands/datedOfferingCommands.d.ts +0 -53
  349. package/dist/_dts/sdk/src/cli/site-commands/entryCommands.d.ts +0 -65
  350. package/dist/_dts/sdk/src/cli/site-commands/eventScheduleCompiler.d.ts +0 -24
  351. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +0 -68
  352. package/dist/_dts/sdk/src/cli/site-commands/formCommands.d.ts +0 -53
  353. package/dist/_dts/sdk/src/cli/site-commands/index.d.ts +0 -8
  354. package/dist/_dts/sdk/src/cli/site-commands/localBlockManifestResolver.d.ts +0 -31
  355. package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +0 -57
  356. package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +0 -82
  357. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +0 -84
  358. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +0 -39
  359. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionPlan.d.ts +0 -8
  360. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionTypes.d.ts +0 -97
  361. package/dist/_dts/sdk/src/cli/site-commands/residualSettingsTrimming.d.ts +0 -15
  362. package/dist/_dts/sdk/src/cli/sync/diff.d.ts +0 -222
  363. package/dist/_dts/sdk/src/cli/sync/executor.d.ts +0 -84
  364. package/dist/_dts/sdk/src/cli/sync/field-diff.d.ts +0 -39
  365. package/dist/_dts/sdk/src/cli/sync/index.d.ts +0 -10
  366. package/dist/_dts/sdk/src/cli/sync/mapper.d.ts +0 -41
  367. package/dist/_dts/sdk/src/cli/sync/media-sync.d.ts +0 -15
  368. package/dist/_dts/sdk/src/cli/sync/media.d.ts +0 -158
  369. package/dist/_dts/sdk/src/cli/sync/syncResultAggregation.d.ts +0 -4
  370. package/dist/_dts/sdk/src/cli/sync/validation.d.ts +0 -68
  371. package/dist/_dts/sdk/src/cli/utils/checksum.d.ts +0 -1
  372. package/dist/_dts/sdk/src/client/management/blocks.d.ts +0 -19
  373. package/dist/_dts/sdk/src/client/management/catalog.d.ts +0 -10
  374. package/dist/_dts/sdk/src/client/management/entries.d.ts +0 -6
  375. package/dist/_dts/sdk/src/client/management/eventCategories.d.ts +0 -6
  376. package/dist/_dts/sdk/src/client/management/events.d.ts +0 -7
  377. package/dist/_dts/sdk/src/client/management/footer.d.ts +0 -9
  378. package/dist/_dts/sdk/src/client/management/forms.d.ts +0 -6
  379. package/dist/_dts/sdk/src/client/management/http.d.ts +0 -79
  380. package/dist/_dts/sdk/src/client/management/identifiers.d.ts +0 -11
  381. package/dist/_dts/sdk/src/client/management/index.d.ts +0 -41
  382. package/dist/_dts/sdk/src/client/management/media.d.ts +0 -72
  383. package/dist/_dts/sdk/src/client/management/navigation.d.ts +0 -6
  384. package/dist/_dts/sdk/src/client/management/pages.d.ts +0 -6
  385. package/dist/_dts/sdk/src/client/management/pull.d.ts +0 -6
  386. package/dist/_dts/sdk/src/client/management/settings-branding.d.ts +0 -32
  387. package/dist/_dts/sdk/src/client/management/settings.d.ts +0 -6
  388. package/dist/_dts/sdk/src/client/management/theme.d.ts +0 -8
  389. package/dist/_dts/sdk/src/client/management/types.d.ts +0 -1069
  390. package/dist/_dts/sdk/src/client/management/venues.d.ts +0 -6
  391. package/dist/_dts/sdk/src/client/management/webhooks.d.ts +0 -3
  392. package/dist/_dts/sdk/src/test/env.d.ts +0 -4
  393. package/dist/_dts/site-commands/src/adapter.d.ts +0 -23
  394. package/dist/_dts/site-commands/src/appointmentCommandSchemas.d.ts +0 -100
  395. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +0 -8
  396. package/dist/_dts/site-commands/src/commandContract.d.ts +0 -1277
  397. package/dist/_dts/site-commands/src/commandDomain.d.ts +0 -20
  398. package/dist/_dts/site-commands/src/commandIdentifiers.d.ts +0 -7
  399. package/dist/_dts/site-commands/src/commandValidation.d.ts +0 -10
  400. package/dist/_dts/site-commands/src/commands.d.ts +0 -1983
  401. package/dist/_dts/site-commands/src/domain.d.ts +0 -104
  402. package/dist/_dts/site-commands/src/eventCommandContent.d.ts +0 -11
  403. package/dist/_dts/site-commands/src/exposure.d.ts +0 -41
  404. package/dist/_dts/site-commands/src/guards.d.ts +0 -1
  405. package/dist/_dts/site-commands/src/index.d.ts +0 -18
  406. package/dist/_dts/site-commands/src/metadata.d.ts +0 -555
  407. package/dist/_dts/site-commands/src/pagePaths.d.ts +0 -6
  408. package/dist/_dts/site-commands/src/planner.d.ts +0 -58
  409. package/dist/_dts/site-commands/src/refContributions.d.ts +0 -11
  410. package/dist/_dts/site-commands/src/refs.d.ts +0 -90
  411. package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +0 -405
  412. package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +0 -46
  413. package/dist/_dts/site-commands/src/stableJson.d.ts +0 -5
  414. package/dist/_dts/site-commands/src/staticExecutionGaps.d.ts +0 -10
  415. package/dist/_dts/site-commands/src/venueCommandMapping.d.ts +0 -21
  416. package/dist/_dts/theme-core/src/data.d.ts +0 -12
  417. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +0 -841
  418. package/dist/_dts/theme-core/src/site-styles/headerStyleParts.d.ts +0 -4
  419. package/dist/cli/index.mjs +0 -162988
  420. package/dist/cli/init-docs/content/agents-section.md +0 -67
  421. package/dist/cli/init-docs/content/cli-reference.md +0 -1238
  422. package/dist/cli/init-docs/content/content-management.md +0 -792
  423. package/dist/cli/init-docs/content/context-brand.md +0 -125
  424. package/dist/cli/init-docs/content/context-brief.md +0 -77
  425. package/dist/cli/init-docs/content/context-knowledge.md +0 -111
  426. package/dist/cli/init-docs/content/getting-started.md +0 -171
  427. package/dist/cli/init-docs/content/site-workflows-readme.md +0 -96
  428. package/dist/cli/init-docs/content/workflow-add-block.md +0 -299
  429. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +0 -83
  430. package/dist/cli/init-docs/content/workflow-block-extensions.md +0 -370
  431. package/dist/cli/init-docs/content/workflow-cmsify-page.md +0 -357
  432. package/dist/cli/init-docs/content/workflow-content-types.md +0 -330
  433. package/dist/cli/init-docs/content/workflow-create-page.md +0 -212
  434. package/dist/cli/init-docs/content/workflow-custom-block.md +0 -470
  435. package/dist/cli/init-docs/content/workflow-editor-workflows.md +0 -130
  436. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +0 -158
  437. package/dist/cli/init-docs/content/workflow-preview-mode.md +0 -252
  438. package/dist/cli/init-docs/content/workflow-publish.md +0 -285
  439. package/dist/cli/init-docs/content/workflow-remote-setup.md +0 -51
  440. package/dist/cli/init-docs/content/workflow-templates.md +0 -381
  441. /package/dist/_dts/{sdk/src/cli/utils/mime.d.ts → media-core/src/mimeType.d.ts} +0 -0
@@ -1,130 +0,0 @@
1
- # Workflow: Build an Editor Workflow
2
-
3
- ## Purpose
4
-
5
- Add a manual action to the Riverbank dashboard editor. Editor workflows are declared in `riverbank.config.ts` and run against either a content type or the page editor.
6
-
7
- ## Configure
8
-
9
- Add a workflow to SDK config, then run `riverbankcms push-config`.
10
-
11
- ```ts
12
- export default {
13
- siteId: process.env.RIVERBANK_SITE_ID,
14
- previewUrl: "https://preview.example.com",
15
- workflows: [
16
- {
17
- id: "page.generate-seo",
18
- title: "Generate SEO metadata",
19
- description: "Draft page SEO fields from the current page.",
20
- contentType: "page",
21
- endpoint: "/api/workflows/generate-seo",
22
- triggers: [{ type: "manual" }],
23
- },
24
- ],
25
- };
26
- ```
27
-
28
- Use `contentType: "page"` for page workflows. Use a content type key, such as `blog-post`, for entry workflows. If `workflows` is missing or empty, the dashboard does not show the workflow section.
29
-
30
- ## Handle the Request
31
-
32
- Riverbank saves the draft, disables the editor, creates a workflow run, and posts to your endpoint. Verify the raw body with the same HMAC helper used for webhooks:
33
-
34
- The `x-riverbank-signature` header is formatted as `sha256=<hex HMAC-SHA256 digest>`.
35
-
36
- ```ts
37
- import { verifyWebhookSignature } from "@riverbankcms/sdk/webhooks";
38
-
39
- export async function POST(request: Request) {
40
- const body = await request.text();
41
- const signature = request.headers.get("x-riverbank-signature");
42
- const secret = process.env.RIVERBANK_WEBHOOK_SECRET;
43
-
44
- if (
45
- !signature ||
46
- !secret ||
47
- !verifyWebhookSignature(body, signature, secret)
48
- ) {
49
- return Response.json({ error: "Invalid signature" }, { status: 401 });
50
- }
51
-
52
- const payload = JSON.parse(body);
53
- // payload.entry.kind is "page" or "content-entry"
54
-
55
- return Response.json({
56
- status: "succeeded",
57
- summary: "Draft updated",
58
- draftContentPatch: {
59
- draftMetaDescription: "A concise search description.",
60
- },
61
- });
62
- }
63
- ```
64
-
65
- The request includes `runId`, `siteId`, `workflowId`, `contentType`, `entryId`, `trigger`, and an `entry` snapshot.
66
-
67
- ## Return a Result
68
-
69
- For immediate changes, return:
70
-
71
- ```json
72
- {
73
- "status": "succeeded",
74
- "summary": "Updated the draft",
75
- "draftContentPatch": {}
76
- }
77
- ```
78
-
79
- For longer work, return:
80
-
81
- ```json
82
- {
83
- "status": "accepted",
84
- "externalJobId": "job_123",
85
- "summary": "Started"
86
- }
87
- ```
88
-
89
- Then call the management API when the job completes:
90
-
91
- ```bash
92
- curl -X POST "$RIVERBANK_DASHBOARD_URL/api/sdk/$RIVERBANK_SITE_ID/workflows/runs/$RUN_ID/status" \
93
- -H "Authorization: Bearer $RIVERBANK_MGMT_API_KEY" \
94
- -H "Content-Type: application/json" \
95
- -d '{"status":"succeeded","summary":"Done","draftContentPatch":{"draftMetaTitle":"Updated title"}}'
96
- ```
97
-
98
- To report failure, return or callback with:
99
-
100
- ```json
101
- {
102
- "status": "failed",
103
- "error": "Could not generate metadata"
104
- }
105
- ```
106
-
107
- ## Draft Patch Rules
108
-
109
- Content entry workflows patch draft content fields.
110
-
111
- Page workflows patch route metadata only:
112
-
113
- - `draftTitle`
114
- - `draftSlug`
115
- - `draftStatus`
116
- - `scheduledPublishAt`
117
- - `draftMetaTitle`
118
- - `draftMetaDescription`
119
- - `canonicalUrl`
120
- - `ogImageId`
121
-
122
- If the workflow returns no `draftContentPatch`, it must make changes through management API endpoints or leave the draft unchanged.
123
-
124
- ## Verification
125
-
126
- 1. Run `riverbankcms push-config`.
127
- 2. Open the matching entry or page in the dashboard.
128
- 3. Confirm the workflow section appears only when the config contains matching manual workflows.
129
- 4. Run the workflow and confirm the editor stays disabled until the endpoint returns or the async callback completes.
130
- 5. Confirm the draft reflects any returned patch.
@@ -1,158 +0,0 @@
1
- # Workflow: Production ISR and Revalidation
2
-
3
- ## Purpose
4
-
5
- Configure a Riverbank SDK Next.js App Router site to prerender published routes, serve production pages through ISR, and refresh affected paths when the CMS sends signed publish webhooks.
6
-
7
- ## Prerequisites
8
-
9
- - A Riverbank SDK site using `createCatchAllPage()` in `src/app/[[...slug]]/page.tsx`.
10
- - A production content API key in `RIVERBANK_API_KEY`.
11
- - `RIVERBANK_SITE_ID` set to this site's Riverbank site ID.
12
- - `NEXT_PUBLIC_DASHBOARD_URL` set to the dashboard origin, for example `https://cms.example.com`.
13
- - `RIVERBANK_WEBHOOK_SECRET` set from the CMS-generated Riverbank webhook secret.
14
-
15
- Preview deployments should also set `RIVERBANK_PREVIEW_MODE=true` so draft previews stay dynamic instead of serving stale ISR HTML.
16
-
17
- ## Configure the Catch-All Route
18
-
19
- In `src/app/[[...slug]]/page.tsx`:
20
-
21
- ```tsx
22
- import {
23
- createCatchAllPage,
24
- generateAllStaticParams,
25
- getISRConfig,
26
- } from '@riverbankcms/sdk/next'
27
-
28
- import config from '@/riverbank.config'
29
- import { blockOverrides } from '@/lib/block-overrides'
30
- import { getRiverbankClient } from '@/lib/riverbank-client'
31
-
32
- export const revalidate = getISRConfig().revalidate
33
- export const dynamicParams = true
34
- export { generateAllStaticParams as generateStaticParams }
35
-
36
- const { Page, generateMetadata } = createCatchAllPage({
37
- getClient: getRiverbankClient,
38
- config,
39
- blockOverrides,
40
- })
41
-
42
- export default Page
43
- export { generateMetadata }
44
- ```
45
-
46
- `generateAllStaticParams()` discovers published pages and routable entries at build time. It reads:
47
-
48
- - `RIVERBANK_API_KEY`
49
- - `RIVERBANK_SITE_ID`
50
- - `NEXT_PUBLIC_DASHBOARD_URL`
51
-
52
- By default, route discovery falls back to the homepage if the CMS is temporarily unavailable. Use strict mode when you want production CI to fail instead:
53
-
54
- ```tsx
55
- import { generateAllStaticParams } from '@riverbankcms/sdk/next'
56
-
57
- export function generateStaticParams() {
58
- return generateAllStaticParams({ failureMode: 'throw' })
59
- }
60
- ```
61
-
62
- If your site already centralizes the SDK client, use the explicit factory:
63
-
64
- ```tsx
65
- import { createGenerateStaticParams } from '@riverbankcms/sdk/next'
66
-
67
- import config from '@/riverbank.config'
68
- import { getRiverbankClient } from '@/lib/riverbank-client'
69
-
70
- export const generateStaticParams = createGenerateStaticParams({
71
- getClient: getRiverbankClient,
72
- siteId: config.siteId,
73
- failureMode: 'throw',
74
- })
75
- ```
76
-
77
- ## Add the Revalidation Route
78
-
79
- Create `src/app/api/revalidate/route.ts`:
80
-
81
- ```ts
82
- import { createRevalidateHandler } from '@riverbankcms/sdk/next/revalidate'
83
- import { getRiverbankClient } from '@/lib/riverbank-client'
84
-
85
- export const POST = createRevalidateHandler({
86
- getClient: getRiverbankClient,
87
- })
88
- ```
89
-
90
- The deployed site must have the CMS-generated webhook secret:
91
-
92
- ```bash
93
- RIVERBANK_WEBHOOK_SECRET=...
94
- ```
95
-
96
- Riverbank signs each request with:
97
-
98
- ```http
99
- X-Riverbank-Signature: sha256=<hex HMAC-SHA256 digest>
100
- ```
101
-
102
- The digest is computed over the raw JSON body. The SDK handler rejects unsigned requests, plain hex signatures without the `sha256=` prefix, malformed digests, bad signatures, and invalid payloads. Malformed path entries are skipped and reported in the response metadata while valid tags and paths still revalidate.
103
-
104
- Passing `getClient: getRiverbankClient` also clears the current process's SDK client response cache after valid webhooks. This is useful in single-process deployments, `next dev`, `next start`, and runtimes where the revalidation route and render path share the same module instance. On serverless platforms such as Vercel, `/api/revalidate` and page rendering can run in separate functions and many warm containers, so this process-local cache clear is best-effort only. Use Next tag/path revalidation as the cross-instance freshness layer, and disable or shorten SDK response caching for force-dynamic deployments that need immediate freshness across serverless instances.
105
-
106
- Riverbank includes a `dispatchId` in signed payloads and sends matching `X-Riverbank-Dispatch-Id` / `X-Riverbank-Correlation-Id` headers. To join CMS delivery logs with this site's deployment logs, use the optional callback metadata:
107
-
108
- ```ts
109
- export const POST = createRevalidateHandler({
110
- getClient: getRiverbankClient,
111
- onRevalidate: (_payload, _items, metadata) => {
112
- console.info('Riverbank ISR revalidated', metadata)
113
- },
114
- })
115
- ```
116
-
117
- ## Configure the CMS Webhook Endpoint
118
-
119
- Use the SDK CLI to configure or reuse an enabled CMS webhook endpoint whose URL points at the deployed route:
120
-
121
- ```bash
122
- riverbankcms webhooks setup \
123
- --env=remote \
124
- --url=https://www.example.com/api/revalidate \
125
- --yes \
126
- --vercel
127
- ```
128
-
129
- The command keeps the CMS as the source of truth for the webhook secret. It creates or updates the endpoint, ensures the full SDK revalidation event list is subscribed, writes a newly generated one-time secret to `.env.local` when one is returned, and prints hosted-environment and deploy/test steps. Existing endpoint secrets are not returned or changed unless you pass `--rotate-secret`.
130
-
131
- The deployed SDK site uses the returned one-time `RIVERBANK_WEBHOOK_SECRET`. The dashboard/CMS uses a separate `WEBHOOK_SIGNING_SECRET_KEYRING_JSON` environment variable to encrypt stored endpoint secrets; keep that keyring only in the dashboard environment.
132
-
133
- The same destination URL can also be configured from the Riverbank dashboard:
134
-
135
- ```text
136
- https://www.example.com/api/revalidate
137
- ```
138
-
139
- SDK-site revalidation events include page and entry publish, unpublish, delete, and public path changes, along with navigation, theme, site settings, and public event updates. Event updates are tag-authoritative: they always invalidate the site-wide public event and event-filter tags, and include the linked event path when one is known. Events send top-level `paths` and `tags`; the SDK handler normalizes and dedupes them before calling `revalidatePath()` and `revalidateTag()`.
140
-
141
- Some valid events are tags-only. Global render changes do not include explicit paths, and very large path sets degrade to tags-only delivery so webhook payloads stay bounded. Existing webhook endpoints may need their subscribed event list updated to receive the newer unpublish, delete, and path-change events.
142
-
143
- For troubleshooting, inspect the endpoint's delivery logs in Riverbank. Each delivery stores minimized payload diagnostics with `dispatchId`, `siteId`, event, `pathCount`, `tagCount`, status, response time, and a minimized failure body. Secrets, signature headers, cookies, authorization headers, and raw sensitive fields are not written to delivery logs.
144
-
145
- ## Verify
146
-
147
- 1. Build the site with production environment variables present.
148
- 2. Confirm a published route is included in the static params output or appears as prerendered in the Next build summary.
149
- 3. Visit a published page.
150
- 4. Publish a change in the CMS.
151
- 5. Confirm the webhook delivery succeeds.
152
- 6. Reload the page and confirm the changed content appears without waiting for the normal ISR interval.
153
-
154
- For local SDK development inside the Riverbank monorepo, the smoke check is:
155
-
156
- ```bash
157
- pnpm --filter @riverbankcms/sdk test:isr-catch-all-revalidate-smoke
158
- ```
@@ -1,252 +0,0 @@
1
- # Workflow: SDK Preview Mode
2
-
3
- ## Purpose
4
-
5
- Enable dashboard preview editing for an SDK-hosted Next.js site. Preview mode lets the dashboard open the external site with a short-lived editor session, render draft content, and show the Riverbank preview shell.
6
-
7
- ## Prerequisites
8
-
9
- - A Riverbank SDK site using the Next.js App Router.
10
- - A preview/staging URL for the site.
11
- - A Riverbank preview API key (`bld_preview_sk_...`) for draft content.
12
- - Dashboard access to run `riverbankcms push-config`.
13
-
14
- ## Configure `riverbank.config.ts`
15
-
16
- Set the preview URL and enable token-based preview editing:
17
-
18
- ```ts
19
- import { defineConfig } from '@riverbankcms/sdk/config'
20
-
21
- export default defineConfig({
22
- siteId: process.env.RIVERBANK_SITE_ID!,
23
- previewUrl: process.env.NEXT_PUBLIC_SITE_URL!,
24
- dashboard: {
25
- previewEditingEnabled: true,
26
- },
27
- })
28
- ```
29
-
30
- Then sync the config:
31
-
32
- ```bash
33
- riverbankcms push-config --env=remote
34
- ```
35
-
36
- Use `--dashboard <url>` and `--api-key <key>` when you want explicit values to override environment variables.
37
-
38
- ## Add Preview Token Proxy
39
-
40
- Create `src/proxy.ts`:
41
-
42
- ```ts
43
- import { handlePreviewTokens } from '@riverbankcms/sdk/preview-next/middleware'
44
- import { NextResponse, type NextRequest } from 'next/server'
45
-
46
- import { getCmsConfig } from './lib/env'
47
-
48
- export async function proxy(request: NextRequest) {
49
- if (process.env.RIVERBANK_PREVIEW_MODE === 'true') {
50
- const { dashboardUrl } = getCmsConfig()
51
- const response = await handlePreviewTokens(request, {
52
- dashboardUrl: dashboardUrl ?? null,
53
- onExchangeFailure: (failure) => {
54
- console.warn('[riverbank] preview token exchange failed', failure)
55
- },
56
- })
57
- if (response) return response
58
- }
59
-
60
- return NextResponse.next()
61
- }
62
-
63
- export const config = {
64
- matcher: [
65
- '/((?!_next/static|_next/image|api|favicon.ico|robots.txt|sitemap.xml).*)',
66
- ],
67
- }
68
- ```
69
-
70
- The example logs preview exchange failures with `console.warn`; replace it with your app logger if you already centralize server-side logging.
71
-
72
- If you are upgrading an existing generated site, make sure your proxy imports `getCmsConfig`, is declared `async`, and passes `dashboardUrl` into `handlePreviewTokens`. Without the dashboard URL, visits with `preview_code` cannot exchange the short-lived code for preview cookies.
73
-
74
- ## Public Runtime Adapter Contracts
75
-
76
- Use `resolveRouteDecision` for middleware or redirect-only checks. It returns only `contentExists`, `redirect`, `notFound`, or `loadFailed`; use `resolveRouteOutcome` only when the caller needs the full content payload for rendering.
77
-
78
- Event registration endpoints use the `public-event-ticket-selection.v2` transport shape: pass `ticketSelections: [{ ticketTypeId, quantity }]`. Legacy top-level `ticketsCount` or `ticketTypeId` fields are rejected so stale clients fail visibly instead of silently selecting the wrong tickets.
79
-
80
- ## Add Preview Keep-Alive Route
81
-
82
- Create `src/app/api/preview/keep-alive/route.ts`:
83
-
84
- ```ts
85
- import type { NextRequest } from 'next/server'
86
-
87
- import { createPreviewKeepAliveRouteHandler } from '@riverbankcms/sdk/preview-next/keep-alive'
88
-
89
- const handler = createPreviewKeepAliveRouteHandler()
90
-
91
- export function GET(request: NextRequest) {
92
- return handler(request)
93
- }
94
-
95
- export function POST(request: NextRequest) {
96
- return handler(request)
97
- }
98
- ```
99
-
100
- ## Add The Client Preview Wrapper
101
-
102
- Create `src/components/preview/SdkPreviewModeClient.tsx`:
103
-
104
- ```tsx
105
- 'use client'
106
-
107
- import {
108
- PreviewQueryProvider,
109
- SdkPreviewMode,
110
- type SdkPreviewModePropsWithoutBlockOverrides,
111
- } from '@riverbankcms/sdk/preview-next/client'
112
-
113
- import { blockOverrides } from '@/lib/block-overrides'
114
-
115
- export function SdkPreviewModeClient(
116
- props: SdkPreviewModePropsWithoutBlockOverrides
117
- ) {
118
- return (
119
- <PreviewQueryProvider>
120
- <SdkPreviewMode {...props} blockOverrides={blockOverrides} />
121
- </PreviewQueryProvider>
122
- )
123
- }
124
- ```
125
-
126
- ## Wire The Catch-All Page
127
-
128
- Use `createPreviewModeBeforeRender` in the catch-all page:
129
-
130
- ```tsx
131
- import { createCatchAllPage } from '@riverbankcms/sdk/next'
132
- import { createPreviewModeBeforeRender } from '@riverbankcms/sdk/preview-next/before-render'
133
-
134
- import config from '../../../riverbank.config'
135
- import { blockOverrides } from '@/lib/block-overrides'
136
- import { getRiverbankClient } from '@/lib/riverbank-client'
137
- import { SdkPreviewModeClient } from '@/components/preview/SdkPreviewModeClient'
138
-
139
- const { Page, generateMetadata } = createCatchAllPage({
140
- getClient: getRiverbankClient,
141
- config,
142
- blockOverrides,
143
- beforeRender: createPreviewModeBeforeRender({
144
- getClient: getRiverbankClient,
145
- siteId: config.siteId,
146
- PreviewModeClient: SdkPreviewModeClient,
147
- }),
148
- })
149
-
150
- export default Page
151
- export { generateMetadata }
152
- ```
153
-
154
- ## Custom Header/Footer Chrome
155
-
156
- If your site replaces the SDK header or footer, pass that chrome into `PreviewLayoutProvider` only when there is an editable preview session. `RIVERBANK_PREVIEW_MODE=true` makes the route preview-capable, but `getPreviewSession()` tells you whether the current request actually has preview cookies. Regular visitors without preview cookies should keep the normal SDK `Layout`.
157
-
158
- In `src/app/layout.tsx`:
159
-
160
- ```tsx
161
- import type { ReactNode } from 'react'
162
-
163
- import { Layout } from '@riverbankcms/sdk/rendering/server'
164
- import { PreviewLayoutProvider } from '@riverbankcms/sdk/preview-next/client'
165
- import { getPreviewSession } from '@riverbankcms/sdk/preview-next/session'
166
-
167
- import { getRiverbankClient, getSiteId } from '@/lib/riverbank-client'
168
-
169
- function SiteHeader() {
170
- return <header>{/* your site header */}</header>
171
- }
172
-
173
- function SiteFooter() {
174
- return <footer>{/* your site footer */}</footer>
175
- }
176
-
177
- export default async function RootLayout({
178
- children,
179
- }: {
180
- children: ReactNode
181
- }) {
182
- const session = await getPreviewSession()
183
- const hasEditablePreviewSession = Boolean(session?.canEdit && session?.token)
184
- const headerNode = <SiteHeader />
185
- const footerNode = <SiteFooter />
186
-
187
- return (
188
- <html lang="en">
189
- <body>
190
- {hasEditablePreviewSession ? (
191
- <PreviewLayoutProvider
192
- headerNode={headerNode}
193
- footerNode={footerNode}
194
- >
195
- {children}
196
- </PreviewLayoutProvider>
197
- ) : (
198
- <Layout
199
- client={getRiverbankClient()}
200
- siteId={getSiteId()}
201
- header={() => headerNode}
202
- footer={() => footerNode}
203
- >
204
- {children}
205
- </Layout>
206
- )}
207
- </body>
208
- </html>
209
- )
210
- }
211
- ```
212
-
213
- If your custom chrome needs CMS navigation data, build the `headerNode` and `footerNode` from the same data used by your normal layout before branching. Calling `getPreviewSession()` in the root layout reads cookies, so the layout becomes dynamic.
214
-
215
- ## Import Preview CSS
216
-
217
- For Tailwind sites, add this to `src/app/globals.css`:
218
-
219
- ```css
220
- @import 'tailwindcss';
221
- @import '@riverbankcms/sdk/preview-next/tailwind-sources.css';
222
- @import '@riverbankcms/sdk/preview-next/chrome.css';
223
- ```
224
-
225
- For non-Tailwind sites, use the legacy single import:
226
-
227
- ```css
228
- @import '@riverbankcms/sdk/preview-next/styles.css';
229
- ```
230
-
231
- ## Environment Variables
232
-
233
- For Vercel preview or any external preview host:
234
-
235
- ```bash
236
- RIVERBANK_PREVIEW_MODE=true
237
- RIVERBANK_ENV=remote
238
- RIVERBANK_REMOTE_SITE_ID=...
239
- RIVERBANK_REMOTE_DASHBOARD_URL=https://...
240
- RIVERBANK_REMOTE_PREVIEW_API_KEY=bld_preview_sk_...
241
- ```
242
-
243
- Use a preview API key when `RIVERBANK_PREVIEW_MODE=true`; content/live keys cannot read draft content. Keep the management API key (`RIVERBANK_REMOTE_MGMT_API_KEY`) for CLI sync commands such as `push-config`, not for public rendering.
244
-
245
- ## Verification
246
-
247
- 1. Run `riverbankcms push-config --env=remote`.
248
- 2. Build the site with `RIVERBANK_PREVIEW_MODE=true`.
249
- 3. Open the dashboard preview button.
250
- 4. Confirm the URL starts at `previewUrl`.
251
- 5. Confirm the preview shell loads and editable content appears.
252
- 6. Confirm `/api/preview/keep-alive` returns without authentication errors during the session.