riverbankcms 0.13.0 → 0.14.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.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import "../sdk-event-upsert-D48eLVOi.mjs";
2
+ import "../sdk-event-upsert-CqCQwcwu.mjs";
3
3
  import "../src-CxEAuQpf.mjs";
4
- import { t as eventUpsertInputSchema } from "../eventUpsertInputSchema-XM4oaNoq.mjs";
4
+ import { t as eventUpsertInputSchema } from "../eventUpsertInputSchema-CmkfzGW0.mjs";
5
5
 
6
6
  //#region src/acceptance/matrix-builders.ts
7
7
  const workflow = (scenario, stepId) => ({
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
- import { $ as getCuratedSiteStyle, $n as rgbColorValue, $t as themeButtonVariantClassNames, A as createBlockRef, An as stripStaleTransitionStyleGroup, Ar as offeringsPreviewCompositionTreatmentValues, At as INPUT_SPACING_MAP, B as createSiteCommandSiteRef, Bn as getTextColorForBackground, Br as oklchToHexGamut, Bt as resolvedButtonColourDeclarations, C as pagePathForCommand, Cn as boxBackgroundSchema, Cr as defineNoBlockDesignCapability, Ct as NAV_LINK_TEXT_SIZE_MAP, D as require_react, Dn as resolveTokenOrCssColorValue, Dr as headingDecorationColorTokenValues, Dt as navEffectPolicy, E as require_jsx_runtime, En as resolveThemeColorReferenceValue, Er as featureCardCompositionTreatmentValues, Et as navLinkOwnsUnderline, F as createEventSeriesRef, Fn as generateCardCoreCss, Fr as onColorTokenName, Ft as ACCORDION_TRIGGER_LETTER_SPACING, G as headerForegroundCandidates, Gn as backgroundAppearanceColorTokenNames, Gt as resolveContextualButtonRole, H as refSlug, Hn as cardRoleSchema, Ht as contextualButtonSurfaceResetStyles, I as createFooterRef, In as getDefaultCardVariants, Ir as ORDINARY_TEXT_MIN_CONTRAST_RATIO, It as ICON_CONFIG, J as readOpeningForegroundProjection, Jn as TokenResolver, Jt as generateBaseInteractiveCSS, K as headerLeafTextColor, Kn as backgroundAppearanceQuickColorTokenNames, Kt as generateDefaultButtonSystem, L as createFormRef, Ln as generateCardCss, Lr as contrastRatio, Lt as ICON_SIZE_PX, M as createCommandRef, Mn as mediaSchema, Mr as tileTreatmentValues, Mt as ACCORDION_OPEN_ACCENT_THICKNESS, N as createContentEntryRef, Nn as mediaTypeDiscriminants, Nr as visibleHeadingDecorationFamilyValues, Nt as ACCORDION_SPACING_MAP, O as pickShadeTowardBackground, On as pageDesignEditorBackgroundOverrideOwner, Or as introCompositionTreatmentValues, Ot as FONT_WEIGHT_MAP, P as createEventCategoryRef, Pn as persistableMediaSchema, Pr as isOnColorBackgroundCandidateToken, Pt as ACCORDION_TRIGGER_FONT_SCALE, Q as headerRootPaint, Qn as mergeStyles, Qt as themeButtonSizeClassName, R as createNavigationRef, Rn as renderCssDeclarations, Rr as featuresFromHex, Rt as generateButtonCss, S as pageIdentifierForCommand, Sn as boxBackgroundOverlaySchema, Sr as defineFrameCapability, St as NAV_LINK_PADDING_X_MAP, Tn as resolveOnColorForThemeToken, Tr as eyebrowTreatmentValues, Tt as navLinkOwnsHoverForeground, U as slugPart, Un as cardVariantRoleValues, Ut as contextualButtonSurfaceStyles, V as createVenueRef, Vn as generateShadowValue$1, Vr as __toESM, Vt as resolvedButtonFocusDeclarations, W as effectiveHeaderNavLinkStyle, Wn as normalizeCardRole, Wt as deriveButtonSurfaceContext, X as mergeHeaderNavTypographyPreference, Xn as borderColorStyle, Xt as parseThemeButtonVariantId, Y as getNavLinkPreset, Yn as backgroundColorStyle, Yt as generateInteractiveChildInheritanceCSS, Z as readHeaderNavFontSizePreference, Zn as cssVarValue, Zt as themeButtonExtraClassesWithTrailingIcon, _ as getSiteCommandMetadata, _n as composeBoundary, _r as asDesignBlockId, _t as parseBlockCustomCssRules, an as gradientToCss, ar as DEFAULT_SURFACE_TEXT_COLOR, at as BREAKPOINT_LG, b as entryIdentifierForCommand, bn as anglePolygonCss, br as assertNever$4, bt as NAV_LINK_LETTER_SPACING_MAP, c as isEventVisibility, cn as parseGradientPresetId, cr as surfaceForegroundStyle, ct as BREAKPOINT_XL, d as stableStringify, dn as VARIANT_ROLES, dr as parseBlockColorToken, dt as MQ_SM_DOWN, en as parseThemeForPersistence, er as textColorStyle, et as themeSchema, f as createDryRunReport, fn as buttonVariantIdSchema, fr as parseColorTokenParts, ft as MQ_SM_UP, g as evaluateSiteCommandExposure, gn as boundaryLayout, gt as getComponentShadowVar, h as evaluateSiteCommandBatchExposure, hr as defineBlockDesignMetadata, ht as getComponentBorderWidthPx, in as footerModeSchema, ir as resolveSurfaceForeground, it as renderHeaderPaintTargetRules, j as createBlocksRef, jn as mediaIdentifierSchema, jr as testimonialsCompositionTreatmentValues, jt as LABEL_FONT_SIZE_MAP, k as generateCssVars, kn as siteChromeBackgroundOverrideOwner, kr as makeBoundaryId, kt as INPUT_FONT_SIZE_MAP, l as venueManagementFields, lr as surfaceForegroundValue, lt as MQ_LG_UP, m as mapEventCommandContent, mr as defaultThemeTokens, mt as headerVariantValues, nn as formatButtonColourContractError, nr as selectLogoVariant, nt as generateMobileOverlayBackdropFilterFix, o as classifySdkEventBookingOffer, on as GRADIENT_PRESET_IDS, or as surfaceForegroundDeclarations, ot as BREAKPOINT_MD, p as parseAndPlanCommandBatchForTypes, pn as unsafeAsOpaqueButtonColourToken, pr as buildThemeTokens, pt as MQ_TABLET_ONLY, q as transparentHeaderForegroundInput, qn as parseBackgroundAppearanceColorToken, qt as generateEffectsCSS, rn as generateShadowValue, rr as surfaceToneFromForegroundToken, rt as getHeaderPaintTargets, sn as getGradientPreset, sr as surfaceForegroundInputFromResolved, st as BREAKPOINT_SM, t as classifySdkEventTiming, tn as compileButtonColourStates, tr as textColorValue, tt as generateHeaderScrollTreatmentStyles, u as sortRecord, un as PUBLIC_BUTTON_ROLES, ur as parseThemeColorToken, ut as MQ_MD_DOWN, v as blockIdentifierForCommand, vn as sectionFactsForContent, vt as parseCustomCssRules, w as hasConfiguredBookingVertical, wn as isCssColorLiteral, wr as eventListTreatmentValues, wt as navLinkHoverColorCandidate, x as pageIdentifierForBlockCommand, xn as transitionCatalogueEntries, xr as defineBlockDesignCapability, xt as NAV_LINK_PADDING_MAP, y as blockOrderIdentifiersForCommand, yn as boundaryRuntimeMetricsForDecorativeTransition, yt as NAV_LINK_BORDER_RADIUS_MAP, z as createPageRef, zn as expandPalette, zr as hexToRgb, zt as RESOLVED_BUTTON_DISABLED_DECLARATIONS } from "../sdk-event-upsert-D48eLVOi.mjs";
2
+ import { $ as getCuratedSiteStyle, $n as rgbColorValue, $t as themeButtonVariantClassNames, A as createBlockRef, An as stripStaleTransitionStyleGroup, Ar as offeringsPreviewCompositionTreatmentValues, At as INPUT_SPACING_MAP, B as createSiteCommandSiteRef, Bn as getTextColorForBackground, Br as oklchToHexGamut, Bt as resolvedButtonColourDeclarations, C as pagePathForCommand, Cn as boxBackgroundSchema, Cr as defineNoBlockDesignCapability, Ct as NAV_LINK_TEXT_SIZE_MAP, D as require_react, Dn as resolveTokenOrCssColorValue, Dr as headingDecorationColorTokenValues, Dt as navEffectPolicy, E as require_jsx_runtime, En as resolveThemeColorReferenceValue, Er as featureCardCompositionTreatmentValues, Et as navLinkOwnsUnderline, F as createEventSeriesRef, Fn as generateCardCoreCss, Fr as onColorTokenName, Ft as ACCORDION_TRIGGER_LETTER_SPACING, G as headerForegroundCandidates, Gn as backgroundAppearanceColorTokenNames, Gt as resolveContextualButtonRole, H as refSlug, Hn as cardRoleSchema, Ht as contextualButtonSurfaceResetStyles, I as createFooterRef, In as getDefaultCardVariants, Ir as ORDINARY_TEXT_MIN_CONTRAST_RATIO, It as ICON_CONFIG, J as readOpeningForegroundProjection, Jn as TokenResolver, Jt as generateBaseInteractiveCSS, K as headerLeafTextColor, Kn as backgroundAppearanceQuickColorTokenNames, Kt as generateDefaultButtonSystem, L as createFormRef, Ln as generateCardCss, Lr as contrastRatio, Lt as ICON_SIZE_PX, M as createCommandRef, Mn as mediaSchema, Mr as tileTreatmentValues, Mt as ACCORDION_OPEN_ACCENT_THICKNESS, N as createContentEntryRef, Nn as mediaTypeDiscriminants, Nr as visibleHeadingDecorationFamilyValues, Nt as ACCORDION_SPACING_MAP, O as pickShadeTowardBackground, On as pageDesignEditorBackgroundOverrideOwner, Or as introCompositionTreatmentValues, Ot as FONT_WEIGHT_MAP, P as createEventCategoryRef, Pn as persistableMediaSchema, Pr as isOnColorBackgroundCandidateToken, Pt as ACCORDION_TRIGGER_FONT_SCALE, Q as headerRootPaint, Qn as mergeStyles, Qt as themeButtonSizeClassName, R as createNavigationRef, Rn as renderCssDeclarations, Rr as featuresFromHex, Rt as generateButtonCss, S as pageIdentifierForCommand, Sn as boxBackgroundOverlaySchema, Sr as defineFrameCapability, St as NAV_LINK_PADDING_X_MAP, Tn as resolveOnColorForThemeToken, Tr as eyebrowTreatmentValues, Tt as navLinkOwnsHoverForeground, U as slugPart, Un as cardVariantRoleValues, Ut as contextualButtonSurfaceStyles, V as createVenueRef, Vn as generateShadowValue$1, Vr as __toESM, Vt as resolvedButtonFocusDeclarations, W as effectiveHeaderNavLinkStyle, Wn as normalizeCardRole, Wt as deriveButtonSurfaceContext, X as mergeHeaderNavTypographyPreference, Xn as borderColorStyle, Xt as parseThemeButtonVariantId, Y as getNavLinkPreset, Yn as backgroundColorStyle, Yt as generateInteractiveChildInheritanceCSS, Z as readHeaderNavFontSizePreference, Zn as cssVarValue, Zt as themeButtonExtraClassesWithTrailingIcon, _ as getSiteCommandMetadata, _n as composeBoundary, _r as asDesignBlockId, _t as parseBlockCustomCssRules, an as gradientToCss, ar as DEFAULT_SURFACE_TEXT_COLOR, at as BREAKPOINT_LG, b as entryIdentifierForCommand, bn as anglePolygonCss, br as assertNever$4, bt as NAV_LINK_LETTER_SPACING_MAP, c as isEventVisibility, cn as parseGradientPresetId, cr as surfaceForegroundStyle, ct as BREAKPOINT_XL, d as stableStringify, dn as VARIANT_ROLES, dr as parseBlockColorToken, dt as MQ_SM_DOWN, en as parseThemeForPersistence, er as textColorStyle, et as themeSchema, f as createDryRunReport, fn as buttonVariantIdSchema, fr as parseColorTokenParts, ft as MQ_SM_UP, g as evaluateSiteCommandExposure, gn as boundaryLayout, gt as getComponentShadowVar, h as evaluateSiteCommandBatchExposure, hr as defineBlockDesignMetadata, ht as getComponentBorderWidthPx, in as footerModeSchema, ir as resolveSurfaceForeground, it as renderHeaderPaintTargetRules, j as createBlocksRef, jn as mediaIdentifierSchema, jr as testimonialsCompositionTreatmentValues, jt as LABEL_FONT_SIZE_MAP, k as generateCssVars, kn as siteChromeBackgroundOverrideOwner, kr as makeBoundaryId, kt as INPUT_FONT_SIZE_MAP, l as venueManagementFields, lr as surfaceForegroundValue, lt as MQ_LG_UP, m as mapEventCommandContent, mr as defaultThemeTokens, mt as headerVariantValues, nn as formatButtonColourContractError, nr as selectLogoVariant, nt as generateMobileOverlayBackdropFilterFix, o as classifySdkEventBookingOffer, on as GRADIENT_PRESET_IDS, or as surfaceForegroundDeclarations, ot as BREAKPOINT_MD, p as parseAndPlanCommandBatchForTypes, pn as unsafeAsOpaqueButtonColourToken, pr as buildThemeTokens, pt as MQ_TABLET_ONLY, q as transparentHeaderForegroundInput, qn as parseBackgroundAppearanceColorToken, qt as generateEffectsCSS, rn as generateShadowValue, rr as surfaceToneFromForegroundToken, rt as getHeaderPaintTargets, sn as getGradientPreset, sr as surfaceForegroundInputFromResolved, st as BREAKPOINT_SM, t as classifySdkEventTiming, tn as compileButtonColourStates, tr as textColorValue, tt as generateHeaderScrollTreatmentStyles, u as sortRecord, un as PUBLIC_BUTTON_ROLES, ur as parseThemeColorToken, ut as MQ_MD_DOWN, v as blockIdentifierForCommand, vn as sectionFactsForContent, vt as parseCustomCssRules, w as hasConfiguredBookingVertical, wn as isCssColorLiteral, wr as eventListTreatmentValues, wt as navLinkHoverColorCandidate, x as pageIdentifierForBlockCommand, xn as transitionCatalogueEntries, xr as defineBlockDesignCapability, xt as NAV_LINK_PADDING_MAP, y as blockOrderIdentifiersForCommand, yn as boundaryRuntimeMetricsForDecorativeTransition, yt as NAV_LINK_BORDER_RADIUS_MAP, z as createPageRef, zn as expandPalette, zr as hexToRgb, zt as RESOLVED_BUTTON_DISABLED_DECLARATIONS } from "../sdk-event-upsert-CqCQwcwu.mjs";
3
3
  import { $ as parseEventPageSurfaceSubject, B as formatBookingDate, C as parseMailingListContentVersionId, D as sameMailingListPlacementTargeting, E as planMailingListChoicePresentation, G as getBookingLocalDateKey, H as formatBookingTime, I as normalizeLocationAddressText, K as getLocalScheduleDate, L as toLocationCoordinates, M as parseMailingListPlacementTargeting, O as DEFAULT_MAILING_LIST_SUCCESS_MESSAGE, Ot as unsafeAsMediaAssetId, P as assertAllowedPublicUrl, R as selectCategoryView, Rt as unsafeAsStaffMemberId, S as parseMailingListBlockId, St as unsafeAsDemoCapability, T as parseMailingListRuntimeContext, U as formatLocalScheduleDate, Ut as err, V as formatBookingDateParts, W as formatLocalScheduleTime, Wt as ok, X as toScheduledBookingDateRange, Y as toBookingTimeZone, Z as toScheduledBookingDateTime, _ as createSecret, _t as parseUserId, at as publicEventPricingType, c as DEFAULT_EVENT_TYPE_PRESETS, d as SURFACE_EVENT_PRESET_VALUES, dt as assertNever, et as formatBookingPriceDisplay, f as WHOLE_SERIES_EVENT_PRESET_VALUES, ft as parseApiKeyId, g as resolveWholeSeriesBookingPhase, gt as parseSiteId, h as orderedLiveRunSessions, ht as parsePageId, it as publicEventPricingDisplay, j as parseFooterCompositionV1, jt as unsafeAsPositiveByteCount, k as parseMailingListProviderScope, l as EVENT_PRESET_VALUES, m as CANCELLED_SESSION_STATUS, mt as parseMediaAssetId, n as NAVIGATION_LOCATIONS, nt as isPublicEventPricingOptionDisplayable, ot as resolveExactOrFreePriceDisplay, p as publicReadFreshnessSeconds, pt as parseEventSeriesId, q as getLocalScheduleTime, r as areConfiguredBookingVerticalConfigsEqual, rt as publicEventPricingCurrency, s as resolveSiteVerticalBookingConfig, st as resolvePricingOptionsPriceDisplay, t as resolveEventCatalogue, tt as formatEventPricing, ut as formatCurrencyAmount, v as exposeSecret, vt as unsafeAsAppointmentResourceId, w as parseMailingListSignedSourceToken, x as buildMailingListSignupBlockSourceRef, y as parseManagementKey, z as buildBookingUtcDateWindow } from "../src-CxEAuQpf.mjs";
4
- import { $ as sdkListEventsResponseSchema, A as resolveMediaTransformForAspect, B as asRecord$1, C as walkAndCollectImageAttrs, D as normalizeWidthCandidates, E as rotateNormalizedPoint, F as buildMediaIdentifierFromFilename, G as parseSafeDownloadFilename, H as FILE_SIZE_LIMITS, I as parseMediaIdentifier, J as createHttpClient, K as ManagementApiError, L as deriveVideoSlotPolicy, M as getDirectImageUrlForSiteScopedPath, N as getImageUrl, O as isExplicitRectCrop, P as isSiteScopedDirectImageStoragePath, Q as sdkGetEventResponseSchema, R as resolveVideoSelectionIntentForMediaField, S as buildRenderableMediaAssetIndex, St as sdkConfiguredBookingVerticalConfigSchema, T as looksLikeUuid$1, U as classifyKnownMimeType, V as parseRelativeStoragePath, W as managementMediaLibraryUploadLimitForMimeType, X as managementTransportError, Y as is404Error, Z as sdkConfigureBookingVerticalResponseSchema, _ as buildSettingsUpdateInput, _t as sdkSavePageDesignResponseSchema, a as prepareLocalMediaForPush, at as customLinkSchema$1, b as isMediaValue, bt as sdkListEventOccurrencesResponseSchema, c as writeBinaryFileAtomic, ct as internalLinkSchema, d as normalizeMediaValueToIdentifierOnly, dt as isInternalResolvedLinkValue, et as sdkTakeEventOfflineResponseSchema, f as walkLocalContentMedia, ft as isResolvedInternalLinkEntityType, g as SETTINGS_FILE_FIELDS, gt as sdkGetPageDesignResponseSchema, h as extractMediaIdentifiers, ht as portablePageDesignSchema, i as applyLocalMediaPush, it as RESOLVED_INTERNAL_LINK_ENTITY_TYPES, j as getDirectImageUrlForRelativePath, k as parseAspectRatioValue, l as sha256, lt as internalResolvedLinkSchema, m as downloadMedia, mt as pageLinkSchema$1, nt as sdkSettingsUpdateSchema, o as admitBinaryWriteDestination, ot as entryLinkSchema$1, p as buildStorageUrl, pt as linkSchema, q as buildRequestInfo, r as syncLocalMediaForPull, rt as linkPayloadSchema, s as readStableBinaryFile, st as externalLinkSchema$1, t as revalidateLocalMediaPushPlan, tt as sdkUpsertEventResponseSchema, u as normalizeMediaIdentifierInput, ut as internalRouteOnlyLinkSchema, v as hasOwnSettingsField, vt as sdkDeleteEventOccurrenceResponseSchema, w as deleteEnvSpecificKeys, x as attachRenderableMediaAssetFields, xt as sdkReorderResponseSchema, y as writeMediaManifest, yt as sdkEventOccurrenceResponseSchema, z as getMimeType } from "../local-sync-DQcLxBg3.mjs";
5
- import { n as CliSdkPeerError, r as CLI_VERSION, t as loadConfigFile } from "../load-config-DidU5HfW.mjs";
6
- import { a as RichTextDocSchema, c as isRecord$16, i as findUnfilledSentinels, n as buildEntryScaffold, o as isRichTextDoc, r as validateEntryInstance, s as isObjectRecord, t as eventUpsertInputSchema } from "../eventUpsertInputSchema-XM4oaNoq.mjs";
4
+ import { $ as sdkListEventsResponseSchema, A as resolveMediaTransformForAspect, B as asRecord$1, C as walkAndCollectImageAttrs, D as normalizeWidthCandidates, E as rotateNormalizedPoint, F as buildMediaIdentifierFromFilename, G as parseSafeDownloadFilename, H as FILE_SIZE_LIMITS, I as parseMediaIdentifier, J as createHttpClient, K as ManagementApiError, L as deriveVideoSlotPolicy, M as getDirectImageUrlForSiteScopedPath, N as getImageUrl, O as isExplicitRectCrop, P as isSiteScopedDirectImageStoragePath, Q as sdkGetEventResponseSchema, R as resolveVideoSelectionIntentForMediaField, S as buildRenderableMediaAssetIndex, St as sdkConfiguredBookingVerticalConfigSchema, T as looksLikeUuid$1, U as classifyKnownMimeType, V as parseRelativeStoragePath, W as managementMediaLibraryUploadLimitForMimeType, X as managementTransportError, Y as is404Error, Z as sdkConfigureBookingVerticalResponseSchema, _ as buildSettingsUpdateInput, _t as sdkSavePageDesignResponseSchema, a as prepareLocalMediaForPush, at as customLinkSchema$1, b as isMediaValue, bt as sdkListEventOccurrencesResponseSchema, c as writeBinaryFileAtomic, ct as internalLinkSchema, d as normalizeMediaValueToIdentifierOnly, dt as isInternalResolvedLinkValue, et as sdkTakeEventOfflineResponseSchema, f as walkLocalContentMedia, ft as isResolvedInternalLinkEntityType, g as SETTINGS_FILE_FIELDS, gt as sdkGetPageDesignResponseSchema, h as extractMediaIdentifiers, ht as portablePageDesignSchema, i as applyLocalMediaPush, it as RESOLVED_INTERNAL_LINK_ENTITY_TYPES, j as getDirectImageUrlForRelativePath, k as parseAspectRatioValue, l as sha256, lt as internalResolvedLinkSchema, m as downloadMedia, mt as pageLinkSchema$1, nt as sdkSettingsUpdateSchema, o as admitBinaryWriteDestination, ot as entryLinkSchema$1, p as buildStorageUrl, pt as linkSchema, q as buildRequestInfo, r as syncLocalMediaForPull, rt as linkPayloadSchema, s as readStableBinaryFile, st as externalLinkSchema$1, t as revalidateLocalMediaPushPlan, tt as sdkUpsertEventResponseSchema, u as normalizeMediaIdentifierInput, ut as internalRouteOnlyLinkSchema, v as hasOwnSettingsField, vt as sdkDeleteEventOccurrenceResponseSchema, w as deleteEnvSpecificKeys, x as attachRenderableMediaAssetFields, xt as sdkReorderResponseSchema, y as writeMediaManifest, yt as sdkEventOccurrenceResponseSchema, z as getMimeType } from "../local-sync-C-FEofmj.mjs";
5
+ import { n as CliSdkPeerError, r as CLI_VERSION, t as loadConfigFile } from "../load-config-D0Qfqh2m.mjs";
6
+ import { a as RichTextDocSchema, c as isRecord$16, i as findUnfilledSentinels, n as buildEntryScaffold, o as isRichTextDoc, r as validateEntryInstance, s as isObjectRecord, t as eventUpsertInputSchema } from "../eventUpsertInputSchema-CmkfzGW0.mjs";
7
7
  import { a as prepareScaffoldExecution, c as LOCAL_PACKAGE_VENDOR_DIR, d as loadGeneratedPackageRanges, i as preflightScaffoldTargets, n as createScaffoldCompletion, s as deriveScaffoldLocalManifest, t as deriveScaffoldPlan } from "../plan-mb_YslEh.mjs";
8
8
  import { config } from "dotenv";
9
9
  import { Command, CommanderError } from "commander";
@@ -5569,7 +5569,8 @@ const CLIENT_ERROR_REPORT_LIMITS = {
5569
5569
  stack: 8e3,
5570
5570
  digest: 128,
5571
5571
  componentStack: 8e3,
5572
- sourceLocation: 1024
5572
+ sourceLocation: 1024,
5573
+ navigationAgeMs: 6e4
5573
5574
  };
5574
5575
  const clientErrorEventSchema = z.enum([
5575
5576
  "dashboard:route-error",
@@ -5586,7 +5587,17 @@ const clientErrorReportSchema = z.object({
5586
5587
  stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
5587
5588
  digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
5588
5589
  componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
5589
- sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
5590
+ sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable(),
5591
+ navigation: z.object({
5592
+ fromPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
5593
+ toPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
5594
+ type: z.enum([
5595
+ "push",
5596
+ "replace",
5597
+ "traverse"
5598
+ ]),
5599
+ ageMs: z.number().int().min(0).max(CLIENT_ERROR_REPORT_LIMITS.navigationAgeMs)
5600
+ }).strict().nullable().optional()
5590
5601
  }).strict();
5591
5602
 
5592
5603
  //#endregion
@@ -95601,6 +95612,18 @@ async function findCommonStaleItems(localSource, remote, force) {
95601
95612
  }
95602
95613
  async function prepareCommonPushOperations(input, source) {
95603
95614
  const preparedLocal = applyStaleContentSnapshot(source.filteredLocal, source.remote, source.staleItems);
95615
+ const kindChange = findPageBlockKindChange(input.scope, preparedLocal.pages, source.remote.pages);
95616
+ if (kindChange) return preparationError("preflight-failed", kindChange);
95617
+ const content = await prepareCommonPushContent(input, source, preparedLocal);
95618
+ if (!("media" in content)) return content;
95619
+ const bookingPlan = findCompiledBookingSettingsPlan(content.compiled);
95620
+ const bookingPreview = bookingPlan ? await executeBookingSettingsPreview(input.client, bookingPlan, source.remote.meta.settingsUpdatedAt) : undefined;
95621
+ return {
95622
+ ...content,
95623
+ ...bookingPreview ? { bookingPreview } : {}
95624
+ };
95625
+ }
95626
+ async function prepareCommonPushContent(input, source, preparedLocal) {
95604
95627
  const media$1 = await prepareLocalMediaForPush({
95605
95628
  contentDir: source.contentDir,
95606
95629
  content: preparedLocal,
@@ -95625,17 +95648,25 @@ async function prepareCommonPushOperations(input, source) {
95625
95648
  if (!preflight.ok || contentPushExecutionReportHasFailures(preflight.report)) {
95626
95649
  return preparationError("preflight-failed", "Content push command preflight failed.", preflight.report);
95627
95650
  }
95628
- const bookingPlan = findCompiledBookingSettingsPlan(preflight.compiled);
95629
- const bookingPreview = bookingPlan ? await executeBookingSettingsPreview(input.client, bookingPlan, source.remote.meta.settingsUpdatedAt) : undefined;
95630
95651
  return {
95631
95652
  media: media$1,
95632
95653
  filteredLocal: media$1.content,
95633
95654
  diff,
95634
95655
  preflight: preflight.report,
95635
- compiled: preflight.compiled,
95636
- ...bookingPreview ? { bookingPreview } : {}
95656
+ compiled: preflight.compiled
95637
95657
  };
95638
95658
  }
95659
+ function findPageBlockKindChange(scope, localPages, remotePages) {
95660
+ if (scope !== "all" && scope !== "pages") return undefined;
95661
+ const remoteByPage = new Map(remotePages.map((page) => [page.identifier, page]));
95662
+ return localPages.flatMap((page) => {
95663
+ const remoteBlocks = new Map(remoteByPage.get(page.identifier)?.blocks.map((block) => [block.identifier, block.kind]) ?? []);
95664
+ return (page.blocks ?? []).flatMap((block) => {
95665
+ const currentKind = remoteBlocks.get(block.identifier);
95666
+ return currentKind && currentKind !== block.kind ? [`${page.identifier}/${block.identifier}: This block already uses ${currentKind}. To use ${block.kind}, create a block with a new identifier, then remove this one.`] : [];
95667
+ });
95668
+ })[0];
95669
+ }
95639
95670
  async function executeBookingSettingsPreview(client, compiled, expectedRevision) {
95640
95671
  const command = requireSingleBookingCommand(compiled);
95641
95672
  if (!command.ok) throw command.error;
@@ -103679,7 +103710,7 @@ async function loadConfig(configPath, output) {
103679
103710
  return { errorMessage: "No config path provided." };
103680
103711
  }
103681
103712
  try {
103682
- const { loadConfigFile: loadConfigFile$1 } = await import("../load-config-CoGYSr5z.mjs");
103713
+ const { loadConfigFile: loadConfigFile$1 } = await import("../load-config-BfEYgU02.mjs");
103683
103714
  const rawConfig = await loadConfigFile$1(configPath);
103684
103715
  const parsed = riverbankSiteConfigSchema.safeParse(rawConfig);
103685
103716
  if (!parsed.success) {
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { a as classifySdkEventSchedule, i as sdkEventUpsertOptionalFieldSchemas, n as sdkCourseBookingSettingsSchema, o as classifySdkEventBookingOffer } from "./sdk-event-upsert-D48eLVOi.mjs";
2
+ import { a as classifySdkEventSchedule, i as sdkEventUpsertOptionalFieldSchemas, n as sdkCourseBookingSettingsSchema, o as classifySdkEventBookingOffer } from "./sdk-event-upsert-CqCQwcwu.mjs";
3
3
  import { l as EVENT_PRESET_VALUES } from "./src-CxEAuQpf.mjs";
4
4
  import { z } from "zod";
5
5
 
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { t as loadConfigFile } from "./load-config-D0Qfqh2m.mjs";
3
+
4
+ export { loadConfigFile };
@@ -7,7 +7,7 @@ import { existsSync as existsSync$1 } from "fs";
7
7
  import { fileURLToPath } from "url";
8
8
 
9
9
  //#region package.json
10
- var version = "0.13.0";
10
+ var version = "0.14.0";
11
11
  var peerDependencies = { "@riverbankcms/sdk": ">=0.139.0 <1.0.0" };
12
12
  var package_default = {
13
13
  name: "riverbankcms",
@@ -83,7 +83,7 @@ var package_default = {
83
83
  //#endregion
84
84
  //#region src/version.ts
85
85
  /** The package manifest is the source-run fallback; builds inject this value. */
86
- const CLI_VERSION = typeof "0.13.0" === "string" ? "0.13.0" : version;
86
+ const CLI_VERSION = typeof "0.14.0" === "string" ? "0.14.0" : version;
87
87
  /**
88
88
  * The CLI's SDK peer range is bundled from the CLI manifest alongside its
89
89
  * version. Runtime config loading uses this value as the single compatibility
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { T as eventBookingOfferIntentSchema, d as stableStringify, et as themeSchema, gr as asAppearancePresetId, hn as pageDesignIntentSchemaVersion, ln as buttonStyleSelectionSchema, mn as pageDesignBoundaryTreatmentSchema, n as sdkCourseBookingSettingsSchema, r as sdkEventOccurrenceInputSchema, s as eventVisibilitySchema, vr as asPageFlowPresetId, yr as asSiteStyleId } from "./sdk-event-upsert-D48eLVOi.mjs";
2
+ import { T as eventBookingOfferIntentSchema, d as stableStringify, et as themeSchema, gr as asAppearancePresetId, hn as pageDesignIntentSchemaVersion, ln as buttonStyleSelectionSchema, mn as pageDesignBoundaryTreatmentSchema, n as sdkCourseBookingSettingsSchema, r as sdkEventOccurrenceInputSchema, s as eventVisibilitySchema, vr as asPageFlowPresetId, yr as asSiteStyleId } from "./sdk-event-upsert-CqCQwcwu.mjs";
3
3
  import { At as unsafeAsOriginalFilename, Bt as unsafeAsStoragePath, Ct as unsafeAsDetectedMimeType, Dt as unsafeAsFileChecksumSha256, Et as unsafeAsEventSeriesId, Ft as unsafeAsSiteFontId, Ht as unsafeAsUserId, It as unsafeAsSiteId, J as parseUtcIsoDateTimeString, Lt as unsafeAsSiteScopedStoragePath, Mt as unsafeAsPositiveSeconds, Nt as unsafeAsProductId, Ot as unsafeAsMediaAssetId, Pt as unsafeAsSafeDownloadFilename, Tt as unsafeAsEventOfferingId, Ut as err, Vt as unsafeAsUploadSessionId, Wt as ok, a as parseVerticalId, bt as unsafeAsBookingSessionId, ct as fromArray, dt as assertNever, gt as parseSiteId, i as canonicalizeConfiguredBookingVerticalConfig, j as parseFooterCompositionV1, jt as unsafeAsPositiveByteCount, kt as unsafeAsOccurrenceId, l as EVENT_PRESET_VALUES, lt as mapNonEmptyArray, o as parseVerticalPresetId, s as resolveSiteVerticalBookingConfig, v as exposeSecret, wt as unsafeAsEntitlementId, xt as unsafeAsDeclaredMimeType, yt as unsafeAsBookingRequirementId, zt as unsafeAsStorageBucketName } from "./src-CxEAuQpf.mjs";
4
4
  import * as fs$1 from "fs/promises";
5
5
  import * as path$1 from "path";
@@ -5741,7 +5741,6 @@ function reducePageDesignIntentForStructureEvent(intent, event) {
5741
5741
  };
5742
5742
  case "block-removed": return removeBlockFromPageDesignIntent(intent, event.blockId);
5743
5743
  case "blocks-reordered": return pruneBoundaryPinsForOrder(intent, event.orderedBlockIds);
5744
- case "block-kind-changed": return changeBlockKindInPageDesignIntent(intent, event);
5745
5744
  case "block-duplicated": return duplicateBlockInPageDesignIntent(intent, event);
5746
5745
  default: return assertNever$1(event, "Unhandled page design structure event");
5747
5746
  }
@@ -5864,33 +5863,6 @@ function pruneBoundaryPinsForOrder(intent, orderedBlockIds) {
5864
5863
  issues: removedBoundaryIssues
5865
5864
  };
5866
5865
  }
5867
- /**
5868
- * A block-kind change updates the pin's current block kind so future resolution sees
5869
- * the current tree. If the pinned Look is incompatible, the pin remains stored and
5870
- * the resolver must render a safe auto fallback while the user-facing issue is open.
5871
- */
5872
- function changeBlockKindInPageDesignIntent(intent, event) {
5873
- const blockLookPins = intent.blockLookPins.map((pin) => pin.blockId === event.blockId ? {
5874
- ...pin,
5875
- blockKind: event.nextBlockKind
5876
- } : pin);
5877
- const changed = intent.blockLookPins.find((pin) => pin.blockId === event.blockId);
5878
- const incompatiblePinnedLook = changed && !event.compatiblePinnedLookPresetIds.includes(changed.choice.value) ? changed : null;
5879
- return {
5880
- intent: {
5881
- ...intent,
5882
- blockLookPins
5883
- },
5884
- issues: incompatiblePinnedLook ? [{
5885
- kind: "pinned-look-incompatible-with-block-kind",
5886
- blockId: event.blockId,
5887
- presetId: incompatiblePinnedLook.choice.value,
5888
- previousBlockKind: incompatiblePinnedLook.blockKind,
5889
- nextBlockKind: event.nextBlockKind,
5890
- feedback: "user-facing"
5891
- }] : []
5892
- };
5893
- }
5894
5866
  function boundaryIssuePresetId(treatment) {
5895
5867
  if (typeof treatment === "string") return treatment;
5896
5868
  return boundaryOptionIdForTreatment(treatment) ?? unknownBoundaryOptionId;
package/dist/testing.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import "./sdk-event-upsert-D48eLVOi.mjs";
2
+ import "./sdk-event-upsert-CqCQwcwu.mjs";
3
3
  import "./src-CxEAuQpf.mjs";
4
- import { n as syncLocalMediaForPush, r as syncLocalMediaForPull, y as writeMediaManifest } from "./local-sync-DQcLxBg3.mjs";
4
+ import { n as syncLocalMediaForPush, r as syncLocalMediaForPull, y as writeMediaManifest } from "./local-sync-C-FEofmj.mjs";
5
5
 
6
6
  export { syncLocalMediaForPull, syncLocalMediaForPush, writeMediaManifest };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "riverbankcms",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "Riverbank CMS command-line tools for SDK site developers",
5
5
  "bin": {
6
6
  "riverbankcms": "dist/cli/index.mjs"
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env node
2
- import { t as loadConfigFile } from "./load-config-DidU5HfW.mjs";
3
-
4
- export { loadConfigFile };