@riverbankcms/sdk 0.78.2 → 0.80.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.
- package/README.md +80 -0
- package/dist/PreviewEditorSidebar-QZG37QIF.mjs +2655 -0
- package/dist/{PreviewEditorUI-CS5P4N3P.mjs → PreviewEditorUI-AXIKSMZA.mjs} +27 -4
- package/dist/SdkPreviewModeRuntime-XE5M4UKM.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +56 -0
- package/dist/_dts/api/src/endpoints.d.ts +79 -0
- package/dist/_dts/api/src/index.d.ts +6 -4
- package/dist/_dts/api/src/media.d.ts +8 -1
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -1
- package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +8 -8
- package/dist/_dts/api/src/navigation/identity.d.ts +59 -0
- package/dist/_dts/api/src/navigation.d.ts +2 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +4 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +1 -0
- package/dist/_dts/api/src/siteIcons.d.ts +128 -0
- package/dist/_dts/api/src/siteInfrastructure.d.ts +124 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +16 -0
- package/dist/_dts/api/src/siteOnboarding.d.ts +13 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +17 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -1
- package/dist/_dts/api/src/types.d.ts +1 -1
- package/dist/_dts/api/src/webhooks.d.ts +239 -0
- package/dist/_dts/block-form/src/client/index.d.ts +2 -0
- package/dist/_dts/block-form/src/index.d.ts +2 -0
- package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +2 -1
- package/dist/_dts/blocks/src/client/header.d.ts +1 -1
- package/dist/_dts/blocks/src/client.d.ts +12 -12
- package/dist/_dts/blocks/src/index.d.ts +5 -1
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -1
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +294 -289
- package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +57 -0
- package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +22 -22
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +13 -1
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +179 -0
- package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +4 -2
- package/dist/_dts/blocks/src/system/fragments/library/faqHeading.d.ts +1 -0
- package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +10 -0
- package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -1
- package/dist/_dts/blocks/src/system/icons/ids.d.ts +13 -0
- package/dist/_dts/blocks/src/system/icons/index.d.ts +6 -0
- package/dist/_dts/blocks/src/system/icons/presets.d.ts +4 -0
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +18 -0
- package/dist/_dts/blocks/src/system/icons/semantic.d.ts +239 -0
- package/dist/_dts/blocks/src/system/icons/value.d.ts +94 -0
- package/dist/_dts/blocks/src/system/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +4 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +23 -0
- package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +1 -4
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -7
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +10 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.server.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventSpotlight.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/feature-card-icon.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -2
- package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +9 -0
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +14 -1
- package/dist/_dts/content-model/src/contentManifest.d.ts +3 -1
- package/dist/_dts/core/src/branded.d.ts +6 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +200 -3
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +8 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +8 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +8 -2
- package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +17 -0
- package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +42 -0
- package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +7 -1
- package/dist/_dts/editor-blocks/src/block-editor/featureCardIconActions.d.ts +82 -0
- package/dist/_dts/editor-blocks/src/index.d.ts +2 -0
- package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
- package/dist/_dts/media-core/src/fileDomain.d.ts +8 -1
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +3 -2
- package/dist/_dts/media-react/src/components/MediaLibrary.d.ts +2 -1
- package/dist/_dts/media-react/src/components/MediaPickerMini.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +5 -1
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +17 -0
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeControlPlan.d.ts +24 -0
- package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +34 -0
- package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +8 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewBlockCustomizeSelectionContext.d.ts +20 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewOpenEditorButton.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/SelectedBlockCustomizePanel.d.ts +13 -0
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeEditorDraftPatch.d.ts +13 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/storeTypes.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +3 -1
- package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +44 -0
- package/dist/_dts/sdk/src/cli/navigationIdentity.d.ts +11 -0
- package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/sync/diff.d.ts +9 -0
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +58 -0
- package/dist/_dts/sdk/src/client/management/webhooks.d.ts +3 -0
- package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +24 -4
- package/dist/_dts/sdk/src/next/index.d.ts +1 -1
- package/dist/_dts/sdk/src/next/revalidate.d.ts +26 -5
- package/dist/_dts/sdk/src/next/static-params.d.ts +28 -3
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -1
- package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/verify.d.ts +6 -102
- package/dist/_dts/site-commands/src/commands.d.ts +3 -0
- package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +220 -0
- package/dist/_dts/theme-core/src/accordions/types.d.ts +45 -2
- package/dist/_dts/theme-core/src/blockOverrides.d.ts +8 -0
- package/dist/_dts/theme-core/src/blocks/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/blocks/vars/testimonials.d.ts +4 -1
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/cards/core.d.ts +20 -0
- package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +6 -3
- package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +105 -0
- package/dist/_dts/theme-core/src/cards/types.d.ts +177 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +159 -21
- package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
- package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +16 -0
- package/dist/_dts/theme-core/src/palette/variants/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +451 -57
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +86 -17
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +2 -3
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +86 -17
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +135 -3
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +5 -5
- package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +20 -1
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +8 -2
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +286 -6
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +193 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +6 -12
- package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -7
- package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +11 -0
- package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/testimonialQuotePresets.d.ts +15 -0
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +7 -29
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -0
- package/dist/_dts/ui/src/combobox.d.ts +1 -0
- package/dist/{PreviewEditorSidebar-4DXLYX2V.mjs → chunk-5NZGBSJF.mjs} +2215 -2566
- package/dist/{chunk-RGTOD4AJ.mjs → chunk-7PCYG6YV.mjs} +621 -108
- package/dist/{chunk-CR5HKAGU.mjs → chunk-BBLZSQEY.mjs} +79 -0
- package/dist/{chunk-MCRQMPET.mjs → chunk-GYXKAUFV.mjs} +4500 -912
- package/dist/{chunk-6HYXHRAI.mjs → chunk-HTB4BMKD.mjs} +267 -49
- package/dist/{chunk-OKMBEAXY.mjs → chunk-MPBNEVPB.mjs} +1 -1
- package/dist/cli/index.mjs +3255 -702
- package/dist/cli/init-docs/content/workflow-editor-workflows.md +2 -0
- package/dist/cli/init-docs/content/workflow-isr-revalidation.md +150 -0
- package/dist/client/{accordion-PLYNJIIM.mjs → accordion-QFZMNB7O.mjs} +1 -1
- package/dist/client/{bookingForm-BXAP6AO7.mjs → bookingForm-NCIXFWIG.mjs} +3 -3
- package/dist/client/bookings.mjs +1246 -323
- package/dist/client/{carousel-TRBXDHGF.mjs → carousel-EO4BJMWD.mjs} +2 -2
- package/dist/client/{cart-Z7H3HJRS.mjs → cart-FTYCLYUW.mjs} +5 -5
- package/dist/client/{checkout-WAFCUBIX.mjs → checkout-NFGLVCOX.mjs} +5 -5
- package/dist/client/{chunk-CWGTG37I.mjs → chunk-4W66ALYT.mjs} +1 -1
- package/dist/client/{chunk-JRDUHZCT.mjs → chunk-6GVVWSPU.mjs} +4 -4
- package/dist/client/{chunk-75OUS5MT.mjs → chunk-IWFZSQNZ.mjs} +1 -1
- package/dist/client/{chunk-JGXPTEI2.mjs → chunk-PUOELU4O.mjs} +95 -8
- package/dist/client/{chunk-FUXW6VW2.mjs → chunk-PYRBIURC.mjs} +4 -4
- package/dist/client/{chunk-ZI3LLBPZ.mjs → chunk-T6UIP6UZ.mjs} +1 -1
- package/dist/client/{chunk-DNRGY432.mjs → chunk-VDS5YFLX.mjs} +1 -1
- package/dist/client/{chunk-UVQEJJTN.mjs → chunk-Y37KDO7P.mjs} +1 -1
- package/dist/client/client.mjs +24277 -20796
- package/dist/client/{courseRegistration-AHFQHWIJ.mjs → courseRegistration-2EORROPS.mjs} +3 -3
- package/dist/client/{eventCalendar-LDXTV5R7.mjs → eventCalendar-WZI4VL6N.mjs} +5 -5
- package/dist/client/{eventCombined-A4JGTNJO.mjs → eventCombined-QCB2TCNL.mjs} +5 -5
- package/dist/client/{eventDetails-4YXTZ7EG.mjs → eventDetails-TFTATAPH.mjs} +5 -5
- package/dist/client/{eventListing-P72TPFFM.mjs → eventListing-A2CQEHEQ.mjs} +5 -5
- package/dist/client/{eventRegistration-LSYJHGMT.mjs → eventRegistration-OELPVLUY.mjs} +5 -5
- package/dist/client/{form-AOPYOKOW.mjs → form-NTIFD6WQ.mjs} +1 -1
- package/dist/client/{headerSection-5TFYDFVQ.mjs → headerSection-7TBNKCLA.mjs} +65 -24
- package/dist/client/hooks.mjs +3687 -2024
- package/dist/client/{locationMap-QSZ3ZVAZ.mjs → locationMap-LRLB5A3H.mjs} +1 -1
- package/dist/client/{newsletterForm-KTRHZY52.mjs → newsletterForm-XI52RZSN.mjs} +1 -1
- package/dist/client/{productDetail-N4E775RG.mjs → productDetail-GSNKBFLY.mjs} +5 -5
- package/dist/client/{productList-UGUQ2S45.mjs → productList-BGCGT4KZ.mjs} +5 -5
- package/dist/client/rendering/client.mjs +5274 -3030
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +6271 -2790
- package/dist/client/{shop-VHSZEEQ2.mjs → shop-RQHUCLNY.mjs} +5 -5
- package/dist/preview-next/before-render.mjs +79 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/middleware.mjs +79 -0
- package/dist/{sdk-runtime-WHPJEF5G.mjs → sdk-runtime-A4LHT2RS.mjs} +6 -6
- package/dist/server/components.mjs +6215 -3057
- package/dist/server/config-validation.mjs +3858 -2194
- package/dist/server/config.mjs +3858 -2194
- package/dist/server/data.mjs +3687 -2024
- package/dist/server/index.mjs +88 -1
- package/dist/server/next/revalidate.mjs +229 -34
- package/dist/server/next.mjs +6295 -3036
- package/dist/server/page-converter.mjs +3055 -1883
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +6220 -3062
- package/dist/server/rendering.mjs +6233 -3075
- package/dist/server/routing.mjs +4251 -2137
- package/dist/server/server.mjs +3705 -2042
- package/dist/server/theme-bridge.mjs +1617 -329
- package/dist/server/theme.mjs +411 -221
- package/dist/server/webhooks.mjs +129 -25
- package/dist/styles/index.css +355 -33
- package/package.json +2 -1
- package/dist/SdkPreviewModeRuntime-IJDHTW4W.mjs +0 -8
- package/dist/chunk-4QEGTLK6.mjs +0 -1175
package/dist/server/index.mjs
CHANGED
|
@@ -392,6 +392,23 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
392
392
|
auth: "user",
|
|
393
393
|
responseKind: "json"
|
|
394
394
|
},
|
|
395
|
+
getSdkDeploymentHealth: {
|
|
396
|
+
path: "/sites/{siteId}/sdk-deployment/health",
|
|
397
|
+
method: "GET",
|
|
398
|
+
tags: ["site-{siteId}", "webhooks"],
|
|
399
|
+
auth: "user",
|
|
400
|
+
errors: [],
|
|
401
|
+
responseKind: "json"
|
|
402
|
+
},
|
|
403
|
+
setupSdkDeploymentRevalidationWebhook: {
|
|
404
|
+
path: "/sites/{siteId}/sdk-deployment/revalidation-webhook",
|
|
405
|
+
method: "POST",
|
|
406
|
+
tags: ["site-{siteId}", "webhooks"],
|
|
407
|
+
auth: "user",
|
|
408
|
+
errors: ["validation:invalid_input", "resource:conflict"],
|
|
409
|
+
responseKind: "json",
|
|
410
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
|
|
411
|
+
},
|
|
395
412
|
// API Keys (Site-scoped)
|
|
396
413
|
listSiteApiKeys: {
|
|
397
414
|
path: "/sites/{siteId}/api-keys",
|
|
@@ -2171,6 +2188,46 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
2171
2188
|
auth: "user",
|
|
2172
2189
|
responseKind: "json"
|
|
2173
2190
|
},
|
|
2191
|
+
getSiteIconStyleGuide: {
|
|
2192
|
+
path: "/sites/{siteId}/settings/icon-style-guide",
|
|
2193
|
+
method: "GET",
|
|
2194
|
+
revalidate: 120,
|
|
2195
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings],
|
|
2196
|
+
auth: "user",
|
|
2197
|
+
responseKind: "json",
|
|
2198
|
+
errors: []
|
|
2199
|
+
},
|
|
2200
|
+
updateSiteIconStyleGuide: {
|
|
2201
|
+
path: "/sites/{siteId}/settings/icon-style-guide",
|
|
2202
|
+
method: "POST",
|
|
2203
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings],
|
|
2204
|
+
auth: "user",
|
|
2205
|
+
responseKind: "json",
|
|
2206
|
+
errors: []
|
|
2207
|
+
},
|
|
2208
|
+
regenerateSiteIconStyleGuide: {
|
|
2209
|
+
path: "/sites/{siteId}/settings/icon-style-guide/regenerate",
|
|
2210
|
+
method: "POST",
|
|
2211
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings],
|
|
2212
|
+
auth: "user",
|
|
2213
|
+
responseKind: "json",
|
|
2214
|
+
errors: []
|
|
2215
|
+
},
|
|
2216
|
+
generateGeneratedIconSet: {
|
|
2217
|
+
path: "/sites/{siteId}/ai/generated-icons/generate",
|
|
2218
|
+
method: "POST",
|
|
2219
|
+
auth: "user",
|
|
2220
|
+
responseKind: "json",
|
|
2221
|
+
errors: []
|
|
2222
|
+
},
|
|
2223
|
+
applyGeneratedIconSet: {
|
|
2224
|
+
path: "/sites/{siteId}/ai/generated-icons/apply",
|
|
2225
|
+
method: "POST",
|
|
2226
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings],
|
|
2227
|
+
auth: "user",
|
|
2228
|
+
responseKind: "json",
|
|
2229
|
+
errors: []
|
|
2230
|
+
},
|
|
2174
2231
|
getSiteAiProfile: {
|
|
2175
2232
|
path: "/sites/{siteId}/settings/ai-site-profile",
|
|
2176
2233
|
method: "GET",
|
|
@@ -3946,6 +4003,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
3946
4003
|
auth: "public",
|
|
3947
4004
|
responseKind: "json"
|
|
3948
4005
|
},
|
|
4006
|
+
getGeneratedIconRenderAssets: {
|
|
4007
|
+
path: "/public/sites/{siteId}/generated-icon-assets",
|
|
4008
|
+
method: "POST",
|
|
4009
|
+
tags: [TAG_TEMPLATES.siteRoutableContent],
|
|
4010
|
+
auth: "public",
|
|
4011
|
+
responseKind: "json",
|
|
4012
|
+
errors: []
|
|
4013
|
+
},
|
|
3949
4014
|
// Resolve entry subroute by kind and URL segment
|
|
3950
4015
|
resolveEntrySubroute: {
|
|
3951
4016
|
path: "/public/sites/{siteId}/routing/subroutes/resolve",
|
|
@@ -5650,6 +5715,13 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
5650
5715
|
auth: "service",
|
|
5651
5716
|
responseKind: "json"
|
|
5652
5717
|
},
|
|
5718
|
+
sdkDeleteNavigationMenu: {
|
|
5719
|
+
path: "/sdk/{siteId}/navigation/{menuId}",
|
|
5720
|
+
method: "DELETE",
|
|
5721
|
+
auth: "service",
|
|
5722
|
+
responseKind: "json",
|
|
5723
|
+
errors: ["resource:not_found", "server:internal_error"]
|
|
5724
|
+
},
|
|
5653
5725
|
sdkUpsertTheme: {
|
|
5654
5726
|
path: "/sdk/{siteId}/theme",
|
|
5655
5727
|
method: "POST",
|
|
@@ -5831,6 +5903,13 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
5831
5903
|
auth: "service",
|
|
5832
5904
|
responseKind: "json"
|
|
5833
5905
|
},
|
|
5906
|
+
sdkSetupRevalidationWebhook: {
|
|
5907
|
+
path: "/sdk/{siteId}/webhooks/revalidation/setup",
|
|
5908
|
+
method: "POST",
|
|
5909
|
+
auth: "service",
|
|
5910
|
+
responseKind: "json",
|
|
5911
|
+
errors: ["validation:invalid_input", "server:internal_error"]
|
|
5912
|
+
},
|
|
5834
5913
|
// Customer portal
|
|
5835
5914
|
portalGetProfile: {
|
|
5836
5915
|
path: "/portal/me",
|
|
@@ -6836,7 +6915,7 @@ var SimpleCache = class {
|
|
|
6836
6915
|
};
|
|
6837
6916
|
|
|
6838
6917
|
// src/version.ts
|
|
6839
|
-
var SDK_VERSION = "0.
|
|
6918
|
+
var SDK_VERSION = "0.80.0";
|
|
6840
6919
|
|
|
6841
6920
|
// src/client/error.ts
|
|
6842
6921
|
var RiverbankApiError = class _RiverbankApiError extends Error {
|
|
@@ -9023,6 +9102,14 @@ var API_ENDPOINTS2 = Object.freeze({
|
|
|
9023
9102
|
auth: "user",
|
|
9024
9103
|
responseKind: "json"
|
|
9025
9104
|
},
|
|
9105
|
+
getPublicRoutableContent: {
|
|
9106
|
+
path: "/public/sites/{siteId}/routable-content",
|
|
9107
|
+
method: "GET",
|
|
9108
|
+
revalidate: 60,
|
|
9109
|
+
tags: ["riverbank:site:{siteId}:routable-content"],
|
|
9110
|
+
auth: "public",
|
|
9111
|
+
responseKind: "json"
|
|
9112
|
+
},
|
|
9026
9113
|
getPublicSitemapRoutes: {
|
|
9027
9114
|
path: "/public/sites/{siteId}/sitemap",
|
|
9028
9115
|
method: "GET",
|
|
@@ -1,56 +1,156 @@
|
|
|
1
1
|
// src/next/revalidate.ts
|
|
2
2
|
import { revalidateTag, revalidatePath } from "next/cache";
|
|
3
3
|
|
|
4
|
-
// src/webhooks
|
|
5
|
-
import crypto from "crypto";
|
|
4
|
+
// ../api/src/webhooks.ts
|
|
6
5
|
import { z } from "zod";
|
|
7
|
-
var
|
|
6
|
+
var RIVERBANK_SIGNATURE_PREFIX = "sha256=";
|
|
7
|
+
var SUPPORTED_WEBHOOK_EVENTS = [
|
|
8
8
|
"page.published",
|
|
9
|
+
"page.unpublished",
|
|
10
|
+
"page.deleted",
|
|
11
|
+
"page.path_changed",
|
|
9
12
|
"entry.published",
|
|
13
|
+
"entry.unpublished",
|
|
14
|
+
"entry.deleted",
|
|
15
|
+
"entry.path_changed",
|
|
10
16
|
"navigation.updated",
|
|
11
17
|
"theme.updated",
|
|
12
18
|
"site.settings_updated"
|
|
13
|
-
]
|
|
19
|
+
];
|
|
20
|
+
var WebhookEventSchema = z.enum(SUPPORTED_WEBHOOK_EVENTS);
|
|
21
|
+
function asRevalidationPath(path) {
|
|
22
|
+
return path;
|
|
23
|
+
}
|
|
24
|
+
function parseRevalidationPath(input) {
|
|
25
|
+
const trimmed = input.trim();
|
|
26
|
+
if (!trimmed) {
|
|
27
|
+
return { success: false, error: { tag: "EMPTY_PATH", input } };
|
|
28
|
+
}
|
|
29
|
+
if (/^[a-z][a-z\d+.-]*:/i.test(trimmed) || trimmed.startsWith("//") || !trimmed.startsWith("/")) {
|
|
30
|
+
return { success: false, error: { tag: "ABSOLUTE_OR_PROTOCOL_PATH", input } };
|
|
31
|
+
}
|
|
32
|
+
if (/[\u0000-\u001F\u007F]/.test(trimmed) || trimmed.includes("\\") || trimmed.includes("?") || trimmed.includes("#")) {
|
|
33
|
+
return { success: false, error: { tag: "MALFORMED_PATH", input } };
|
|
34
|
+
}
|
|
35
|
+
const collapsed = trimmed.replace(/\/{2,}/g, "/");
|
|
36
|
+
const normalized = collapsed === "/" ? "/" : collapsed.replace(/\/+$/g, "");
|
|
37
|
+
return { success: true, path: asRevalidationPath(normalized) };
|
|
38
|
+
}
|
|
39
|
+
function normalizeRevalidationPath(input) {
|
|
40
|
+
const result = parseRevalidationPath(input);
|
|
41
|
+
return result.success ? result.path : null;
|
|
42
|
+
}
|
|
14
43
|
var PagePublishedDataSchema = z.object({
|
|
15
44
|
pageId: z.string(),
|
|
16
45
|
path: z.string(),
|
|
17
46
|
slug: z.string().optional()
|
|
18
|
-
});
|
|
47
|
+
}).strict();
|
|
48
|
+
var PageRemovedDataSchema = z.object({
|
|
49
|
+
pageId: z.string(),
|
|
50
|
+
path: z.string(),
|
|
51
|
+
slug: z.string().optional()
|
|
52
|
+
}).strict();
|
|
53
|
+
var PagePathChangedDataSchema = z.object({
|
|
54
|
+
pageId: z.string(),
|
|
55
|
+
previousPath: z.string(),
|
|
56
|
+
path: z.string(),
|
|
57
|
+
slug: z.string().optional()
|
|
58
|
+
}).strict();
|
|
19
59
|
var EntryPublishedDataSchema = z.object({
|
|
20
60
|
entryId: z.string(),
|
|
21
61
|
path: z.string(),
|
|
22
62
|
contentType: z.string()
|
|
23
|
-
});
|
|
63
|
+
}).strict();
|
|
64
|
+
var EntryRemovedDataSchema = z.object({
|
|
65
|
+
entryId: z.string(),
|
|
66
|
+
path: z.string(),
|
|
67
|
+
contentType: z.string()
|
|
68
|
+
}).strict();
|
|
69
|
+
var EntryPathChangedDataSchema = z.object({
|
|
70
|
+
entryId: z.string(),
|
|
71
|
+
previousPath: z.string(),
|
|
72
|
+
path: z.string(),
|
|
73
|
+
contentType: z.string()
|
|
74
|
+
}).strict();
|
|
24
75
|
var NavigationUpdatedDataSchema = z.object({
|
|
25
76
|
menuId: z.string().optional()
|
|
26
|
-
});
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
PagePublishedDataSchema,
|
|
30
|
-
EntryPublishedDataSchema,
|
|
31
|
-
NavigationUpdatedDataSchema,
|
|
32
|
-
EmptyDataSchema
|
|
33
|
-
]);
|
|
34
|
-
var WebhookPayloadSchema = z.object({
|
|
35
|
-
/** Event type */
|
|
36
|
-
event: WebhookEventSchema,
|
|
37
|
-
/** ISO timestamp of when the event occurred */
|
|
77
|
+
}).strict();
|
|
78
|
+
var EmptyWebhookDataSchema = z.object({}).strict();
|
|
79
|
+
var WebhookPayloadBaseSchema = z.object({
|
|
38
80
|
timestamp: z.string(),
|
|
39
|
-
|
|
81
|
+
dispatchId: z.string().optional(),
|
|
40
82
|
siteId: z.string(),
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
/** Cache invalidation tags (for tag-based revalidation) */
|
|
44
|
-
tags: z.array(z.string()).optional()
|
|
83
|
+
tags: z.array(z.string()).optional(),
|
|
84
|
+
paths: z.array(z.string()).optional()
|
|
45
85
|
});
|
|
86
|
+
var WebhookPayloadSchema = z.discriminatedUnion("event", [
|
|
87
|
+
WebhookPayloadBaseSchema.extend({
|
|
88
|
+
event: z.literal("page.published"),
|
|
89
|
+
data: PagePublishedDataSchema
|
|
90
|
+
}),
|
|
91
|
+
WebhookPayloadBaseSchema.extend({
|
|
92
|
+
event: z.literal("page.unpublished"),
|
|
93
|
+
data: PageRemovedDataSchema
|
|
94
|
+
}),
|
|
95
|
+
WebhookPayloadBaseSchema.extend({
|
|
96
|
+
event: z.literal("page.deleted"),
|
|
97
|
+
data: PageRemovedDataSchema
|
|
98
|
+
}),
|
|
99
|
+
WebhookPayloadBaseSchema.extend({
|
|
100
|
+
event: z.literal("page.path_changed"),
|
|
101
|
+
data: PagePathChangedDataSchema
|
|
102
|
+
}),
|
|
103
|
+
WebhookPayloadBaseSchema.extend({
|
|
104
|
+
event: z.literal("entry.published"),
|
|
105
|
+
data: EntryPublishedDataSchema
|
|
106
|
+
}),
|
|
107
|
+
WebhookPayloadBaseSchema.extend({
|
|
108
|
+
event: z.literal("entry.unpublished"),
|
|
109
|
+
data: EntryRemovedDataSchema
|
|
110
|
+
}),
|
|
111
|
+
WebhookPayloadBaseSchema.extend({
|
|
112
|
+
event: z.literal("entry.deleted"),
|
|
113
|
+
data: EntryRemovedDataSchema
|
|
114
|
+
}),
|
|
115
|
+
WebhookPayloadBaseSchema.extend({
|
|
116
|
+
event: z.literal("entry.path_changed"),
|
|
117
|
+
data: EntryPathChangedDataSchema
|
|
118
|
+
}),
|
|
119
|
+
WebhookPayloadBaseSchema.extend({
|
|
120
|
+
event: z.literal("navigation.updated"),
|
|
121
|
+
data: NavigationUpdatedDataSchema
|
|
122
|
+
}),
|
|
123
|
+
WebhookPayloadBaseSchema.extend({
|
|
124
|
+
event: z.literal("theme.updated"),
|
|
125
|
+
data: EmptyWebhookDataSchema
|
|
126
|
+
}),
|
|
127
|
+
WebhookPayloadBaseSchema.extend({
|
|
128
|
+
event: z.literal("site.settings_updated"),
|
|
129
|
+
data: EmptyWebhookDataSchema
|
|
130
|
+
})
|
|
131
|
+
]);
|
|
132
|
+
|
|
133
|
+
// src/client/types.ts
|
|
134
|
+
var SDK_CORRELATION_HEADER_NAMES = [
|
|
135
|
+
"x-request-id",
|
|
136
|
+
"x-correlation-id",
|
|
137
|
+
"x-riverbank-monitor-run-id"
|
|
138
|
+
];
|
|
139
|
+
|
|
140
|
+
// src/webhooks/verify.ts
|
|
141
|
+
import crypto from "crypto";
|
|
46
142
|
function verifyWebhookSignature(payload, signature, secret) {
|
|
47
|
-
|
|
48
|
-
|
|
143
|
+
if (!signature.startsWith(RIVERBANK_SIGNATURE_PREFIX)) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
const signatureDigest = signature.slice(RIVERBANK_SIGNATURE_PREFIX.length);
|
|
147
|
+
if (!/^[a-f0-9]{64}$/.test(signatureDigest)) {
|
|
49
148
|
return false;
|
|
50
149
|
}
|
|
150
|
+
const expectedSignature = crypto.createHmac("sha256", secret).update(payload).digest("hex");
|
|
51
151
|
return crypto.timingSafeEqual(
|
|
52
|
-
Buffer.from(
|
|
53
|
-
Buffer.from(expectedSignature)
|
|
152
|
+
Buffer.from(signatureDigest, "hex"),
|
|
153
|
+
Buffer.from(expectedSignature, "hex")
|
|
54
154
|
);
|
|
55
155
|
}
|
|
56
156
|
function parseWebhookPayload(body) {
|
|
@@ -68,6 +168,65 @@ function parseWebhookPayload(body) {
|
|
|
68
168
|
}
|
|
69
169
|
|
|
70
170
|
// src/next/revalidate.ts
|
|
171
|
+
var [
|
|
172
|
+
SDK_REQUEST_ID_HEADER,
|
|
173
|
+
SDK_CORRELATION_ID_HEADER,
|
|
174
|
+
SDK_MONITOR_RUN_ID_HEADER
|
|
175
|
+
] = SDK_CORRELATION_HEADER_NAMES;
|
|
176
|
+
var RIVERBANK_DISPATCH_ID_HEADER = "x-riverbank-dispatch-id";
|
|
177
|
+
var RIVERBANK_CORRELATION_ID_HEADER = "x-riverbank-correlation-id";
|
|
178
|
+
function normalizeRevalidationPath2(path) {
|
|
179
|
+
return normalizeRevalidationPath(path);
|
|
180
|
+
}
|
|
181
|
+
function normalizeRevalidationPaths(paths = []) {
|
|
182
|
+
const normalized = [];
|
|
183
|
+
const invalidPaths = [];
|
|
184
|
+
const seen = /* @__PURE__ */ new Set();
|
|
185
|
+
for (const path of paths) {
|
|
186
|
+
const normalizedPath = normalizeRevalidationPath2(path);
|
|
187
|
+
if (!normalizedPath) {
|
|
188
|
+
invalidPaths.push(path);
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
if (!seen.has(normalizedPath)) {
|
|
192
|
+
seen.add(normalizedPath);
|
|
193
|
+
normalized.push(normalizedPath);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return { paths: normalized, invalidPaths };
|
|
197
|
+
}
|
|
198
|
+
function normalizeRevalidationTags(tags = []) {
|
|
199
|
+
const normalized = [];
|
|
200
|
+
const seen = /* @__PURE__ */ new Set();
|
|
201
|
+
for (const tag of tags) {
|
|
202
|
+
const trimmed = tag.trim();
|
|
203
|
+
if (!trimmed || seen.has(trimmed)) continue;
|
|
204
|
+
seen.add(trimmed);
|
|
205
|
+
normalized.push(trimmed);
|
|
206
|
+
}
|
|
207
|
+
return normalized;
|
|
208
|
+
}
|
|
209
|
+
function getOptionalHeader(headers, name) {
|
|
210
|
+
const value = headers.get(name)?.trim();
|
|
211
|
+
return value ? value : void 0;
|
|
212
|
+
}
|
|
213
|
+
function getRevalidationRequestMetadata(request, payload, counts) {
|
|
214
|
+
const dispatchId = payload.dispatchId ?? getOptionalHeader(request.headers, RIVERBANK_DISPATCH_ID_HEADER);
|
|
215
|
+
const requestId = getOptionalHeader(request.headers, "x-vercel-id") ?? getOptionalHeader(request.headers, SDK_REQUEST_ID_HEADER);
|
|
216
|
+
const correlationId = getOptionalHeader(request.headers, RIVERBANK_CORRELATION_ID_HEADER) ?? getOptionalHeader(request.headers, SDK_CORRELATION_ID_HEADER);
|
|
217
|
+
const monitorRunId = getOptionalHeader(request.headers, SDK_MONITOR_RUN_ID_HEADER);
|
|
218
|
+
return {
|
|
219
|
+
event: payload.event,
|
|
220
|
+
siteId: payload.siteId,
|
|
221
|
+
...dispatchId ? { dispatchId } : {},
|
|
222
|
+
pathCount: counts.pathCount,
|
|
223
|
+
tagCount: counts.tagCount,
|
|
224
|
+
itemCount: counts.itemCount,
|
|
225
|
+
...requestId ? { requestId } : {},
|
|
226
|
+
...correlationId ? { correlationId } : {},
|
|
227
|
+
...monitorRunId ? { monitorRunId } : {}
|
|
228
|
+
};
|
|
229
|
+
}
|
|
71
230
|
function createRevalidateHandler(options = {}) {
|
|
72
231
|
return async function handleRevalidateRequest(request) {
|
|
73
232
|
const secret = options.secret ?? process.env.RIVERBANK_WEBHOOK_SECRET;
|
|
@@ -81,41 +240,77 @@ function createRevalidateHandler(options = {}) {
|
|
|
81
240
|
const body = await request.text();
|
|
82
241
|
const signature = request.headers.get("x-riverbank-signature");
|
|
83
242
|
if (!signature || !verifyWebhookSignature(body, signature, secret)) {
|
|
243
|
+
console.warn("[Riverbank] Rejected webhook with invalid signature");
|
|
84
244
|
return Response.json({ error: "Invalid signature" }, { status: 401 });
|
|
85
245
|
}
|
|
86
246
|
const parseResult = parseWebhookPayload(body);
|
|
87
247
|
if (!parseResult.success) {
|
|
248
|
+
console.warn("[Riverbank] Rejected webhook with invalid payload", {
|
|
249
|
+
reason: parseResult.error
|
|
250
|
+
});
|
|
88
251
|
return Response.json({ error: parseResult.error }, { status: 400 });
|
|
89
252
|
}
|
|
90
253
|
const payload = parseResult.payload;
|
|
91
254
|
const revalidated = [];
|
|
92
|
-
|
|
93
|
-
|
|
255
|
+
const normalizedPaths = normalizeRevalidationPaths(payload.paths);
|
|
256
|
+
if (normalizedPaths.invalidPaths.length > 0) {
|
|
257
|
+
console.warn(
|
|
258
|
+
"[Riverbank] Ignored invalid revalidation paths",
|
|
259
|
+
{
|
|
260
|
+
event: payload.event,
|
|
261
|
+
siteId: payload.siteId,
|
|
262
|
+
invalidPathCount: normalizedPaths.invalidPaths.length
|
|
263
|
+
}
|
|
264
|
+
);
|
|
265
|
+
}
|
|
266
|
+
const normalizedTags = normalizeRevalidationTags(payload.tags);
|
|
267
|
+
if (normalizedTags.length) {
|
|
268
|
+
for (const tag of normalizedTags) {
|
|
94
269
|
revalidateTag(tag, "max");
|
|
95
270
|
revalidated.push(`tag:${tag}`);
|
|
96
271
|
}
|
|
97
272
|
}
|
|
98
|
-
const path
|
|
99
|
-
if (path) {
|
|
273
|
+
for (const path of normalizedPaths.paths) {
|
|
100
274
|
revalidatePath(path);
|
|
101
275
|
revalidated.push(`path:${path}`);
|
|
102
276
|
}
|
|
277
|
+
const metadata = getRevalidationRequestMetadata(
|
|
278
|
+
request,
|
|
279
|
+
payload,
|
|
280
|
+
{
|
|
281
|
+
pathCount: normalizedPaths.paths.length,
|
|
282
|
+
tagCount: normalizedTags.length,
|
|
283
|
+
itemCount: revalidated.length
|
|
284
|
+
}
|
|
285
|
+
);
|
|
103
286
|
if (revalidated.length > 0) {
|
|
104
287
|
console.log(
|
|
105
|
-
|
|
288
|
+
[
|
|
289
|
+
`[Riverbank] Revalidated ${normalizedPaths.paths.length} path(s)`,
|
|
290
|
+
`and ${normalizedTags.length} tag(s)`,
|
|
291
|
+
`(event: ${payload.event}, site: ${payload.siteId})`
|
|
292
|
+
].join(" "),
|
|
293
|
+
metadata
|
|
106
294
|
);
|
|
107
295
|
}
|
|
108
296
|
if (options.onRevalidate) {
|
|
109
|
-
options.onRevalidate(payload, revalidated);
|
|
297
|
+
options.onRevalidate(payload, revalidated, metadata);
|
|
110
298
|
}
|
|
111
299
|
return Response.json({
|
|
112
300
|
revalidated: true,
|
|
113
301
|
items: revalidated,
|
|
114
302
|
event: payload.event,
|
|
303
|
+
dispatchId: metadata.dispatchId,
|
|
304
|
+
pathCount: normalizedPaths.paths.length,
|
|
305
|
+
tagCount: normalizedTags.length,
|
|
306
|
+
invalidPathCount: normalizedPaths.invalidPaths.length,
|
|
115
307
|
timestamp: Date.now()
|
|
116
308
|
});
|
|
117
309
|
};
|
|
118
310
|
}
|
|
119
311
|
export {
|
|
120
|
-
createRevalidateHandler
|
|
312
|
+
createRevalidateHandler,
|
|
313
|
+
normalizeRevalidationPath2 as normalizeRevalidationPath,
|
|
314
|
+
normalizeRevalidationPaths,
|
|
315
|
+
normalizeRevalidationTags
|
|
121
316
|
};
|