riverbankcms 0.26.0 → 0.28.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,6 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { z } from "zod";
3
3
 
4
+ //#region ../core/src/block-interaction-context.ts
5
+ /** Server-resolved presentation context, never permission to perform a write. */
6
+ const blockInteractionContextSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("live") }).strict(), z.object({ kind: z.literal("demo") }).strict()]);
7
+ const liveBlockInteractionContext = { kind: "live" };
8
+
9
+ //#endregion
4
10
  //#region ../core/src/result.ts
5
11
  function ok(value) {
6
12
  return {
@@ -5930,7 +5936,7 @@ function buildGroups(sections, policy) {
5930
5936
  }];
5931
5937
  });
5932
5938
  }
5933
- function membershipKey(sections) {
5939
+ function footerMembershipKey(sections) {
5934
5940
  const tokens = sections.map((section) => ({
5935
5941
  rank: sectionKinds.indexOf(section.kind),
5936
5942
  value: section.kind === "engagement" ? `engagement:${section.treatment}` : section.kind
@@ -5956,7 +5962,7 @@ function planFooterArrangement(renderableSections, policy) {
5956
5962
  const unsortedMainGroups = layoutGroups.filter((group) => !legalGroups.includes(group));
5957
5963
  const mainGroups = policy.arrangement === "centred" ? unsortedMainGroups : [...unsortedMainGroups.filter((group) => group.width === "column"), ...unsortedMainGroups.filter((group) => group.width === "full-row")];
5958
5964
  return {
5959
- membershipKey: membershipKey(selectedSections),
5965
+ membershipKey: footerMembershipKey(selectedSections),
5960
5966
  regions: [
5961
5967
  ...renderRegion("engagement-row", separateEngagement, policy),
5962
5968
  ...renderRegion("main", mainGroups, policy),
@@ -10304,4 +10310,47 @@ function isEventEmailTemplateType(value) {
10304
10310
  }
10305
10311
 
10306
10312
  //#endregion
10307
- export { mapDrawingSchema as $, ok as $n, isNonNegativeWholeCents as $t, assessMailingListTargeting as A, unsafeAsEntitlementId as An, addIntervalPreservingMonthAnchor as At, parsePublicContactDetails as B, unsafeAsPositiveSeconds as Bn, parseEventPageSurfaceSubject as Bt, exposeSecret as C, unsafeAsAppointmentResourceId as Cn, toScheduledBookingDateTime as Ct, parseMailingListContentVersionId as D, unsafeAsDeclaredMimeType as Dn, isLiveOrderInstalmentPlanStatus as Dt, parseMailingListBlockId as E, unsafeAsCheckoutLineId as En, validateBookingPaymentOptionKinds as Et, parseMailingListPlacementTargeting as F, unsafeAsMediaAssetId as Fn, omitZeroAmountFutureRows as Ft, locationMapLinks as G, unsafeAsSiteId as Gn, publicEventPricingDisplay as Gt, assertAllowedPublicUrl as H, unsafeAsProductId as Hn, formatEventPricing as Ht, DEFAULT_MAILING_LIST_TARGETING as I, unsafeAsOccurrenceId as In, splitAmountWithRemainderInFirst as It, parseLocationValue as J, unsafeAsStorageBucketName as Jn, resolveExactOrFreePriceDisplay as Jt, locationValueSchema as K, unsafeAsSiteScopedStoragePath as Kn, publicEventPricingOptions as Kt, planMailingListChoicePresentation as L, unsafeAsOriginalFilename as Ln, resolveFlexibleBalanceDueAt as Lt, parseMailingListProviderScope as M, unsafeAsEventOfferingId as Mn, getBookingInstalmentDepositRefundability as Mt, parseFooterCompositionV1 as N, unsafeAsEventSeriesId as Nn, getBookingInstalmentPlanIntervalCount as Nt, parseMailingListSignedSourceToken as O, unsafeAsDemoCapability as On, isSettleableFlexibleBalanceContractStatus as Ot, footerNavigationLayouts as P, unsafeAsFileChecksumSha256 as Pn, getBookingInstalmentProtectedDepositAmountCents as Pt, isPresent as Q, err as Qn, mapReadonlyNonEmptyArray as Qt, isCanonicalRichTextDoc as R, unsafeAsPassId as Rn, resolveFlexibleBalanceInitialPaymentCents as Rt, createSecret as S, parseUserId as Sn, toBookingTimeZone as St, slugify as T, unsafeAsBookingSessionId as Tn, parseBookingTimeZone as Tt, decideLocationSave as U, unsafeAsSafeDownloadFilename as Un, isPublicEventPricingOptionDisplayable as Ut, parseWeeklyOpeningHours as V, unsafeAsPricingOptionId as Vn, formatBookingPriceDisplay as Vt, stableJsonStringify as W, unsafeAsSiteFontId as Wn, publicEventPricingCurrency as Wt, publicLocationSchema as X, unsafeAsUploadSessionId as Xn, fromArray as Xt, projectPublicLocation as Y, unsafeAsStoragePath as Yn, resolvePricingOptionsPriceDisplay as Yt, toLocationCoordinates as Z, unsafeAsUserId as Zn, mapNonEmptyArray as Zt, CANCELLED_SESSION_STATUS as _, parseMembershipId as _n, parseBookingLocalDate as _t, NAVIGATION_LOCATIONS as a, unsafeAsPositiveCents as an, formatTime as at, resolveWholeSeriesBookingPhase as b, parseSiteId as bn, resolveBookingBusinessTimeZone as bt, parseVerticalId as c, assertNever as cn, resolveBookingDisplayContext as ct, DEFAULT_EVENT_TYPE_PRESETS as d, parseCustomerId as dn, formatLocalScheduleDate as dt, parseNonNegativeCents as en, selectCategoryView as et, EVENT_PRESET_VALUES as f, parseDatedOfferingCapacityHoldAuditRef as fn, formatLocalScheduleTime as ft, publicReadFreshnessSeconds as g, parseMediaAssetId as gn, localScheduleTimePattern as gt, WHOLE_SERIES_EVENT_PRESET_VALUES as h, parseEventSeriesId as hn, getLocalScheduleTime as ht, EVENT_PRESET_VOCABULARY as i, unsafeAsNonNegativeCents as in, formatDateTimeRange as it, DEFAULT_MAILING_LIST_SUCCESS_MESSAGE as j, unsafeAsEventInstanceId as jn, clampConfiguredAmount as jt, parseMailingListRuntimeContext as k, unsafeAsDetectedMimeType as kn, isSettleableOrderInstalmentPlanStatus as kt, parseVerticalPresetId as l, formatDurationUnitLabel as ln, buildBookingUtcDateWindow as lt, SURFACE_EVENT_PRESET_VALUES as m, parseEditorSessionGeneration as mn, getLocalScheduleDate as mt, authoredValuesEqual as n, toCents as nn, formatDateRange as nt, areConfiguredBookingVerticalConfigsEqual as o, formatCurrencyAmount as on, formatTimeRange as ot, ORDINARY_EVENT_PRESET_VALUES as p, parseDatedOfferingCapacityHoldId as pn, getBookingLocalDateKey as pt, normalizeLocationAddressText as q, unsafeAsStaffMemberId as qn, publicEventPricingType as qt, resolveEventCatalogue as r, toNonNegativeCents as rn, formatDateTime as rt, canonicalizeConfiguredBookingVerticalConfig as s, parseCurrencyCode as sn, inferSiteDateLocale as st, committedWriteProofSchema as t, parsePositiveCents as tn, formatDate as tt, resolveSiteVerticalBookingConfig as u, parseApiKeyId as un, compareLocalScheduleDates as ut, nextLiveRunSessionStartMs as v, parsePageId as vn, parseLocalScheduleTime as vt, parseManagementKey as w, unsafeAsBookingRequirementId as wn, toUtcIsoDateTimeString as wt, resolveWholeSeriesRunLifecycle as x, parseSiteTermsVersionId as xn, resolveBookingTimeZoneId as xt, orderedLiveRunSessions as y, parseRetiredCourseId as yn, parseUtcIsoDateTimeString as yt, formatOpeningHoursRows as z, unsafeAsPositiveByteCount as zn, deriveTotalTicketQuantity as zt };
10313
+ //#region ../core/src/editor-value-ownership.ts
10314
+ /** Captured editor payloads are deeply immutable; caller-owned inputs are never frozen in place. */
10315
+ const owned = new WeakSet();
10316
+ function freezeOwned(value) {
10317
+ Object.freeze(value);
10318
+ owned.add(value);
10319
+ return value;
10320
+ }
10321
+ function capturedObject(value) {
10322
+ return value !== null && typeof value === "object" && owned.has(value) && !Array.isArray(value);
10323
+ }
10324
+ function captureArray(value, previous) {
10325
+ const before = Array.isArray(previous) && owned.has(previous) ? previous : undefined;
10326
+ const next = Array.from(value, (item, index) => capture(item, before?.[index]));
10327
+ if (before !== undefined && before.length === next.length && next.every((item, index) => Object.is(item, before[index]))) return before;
10328
+ return owned.has(value) && next.every((item, index) => Object.is(item, value[index])) ? value : freezeOwned(next);
10329
+ }
10330
+ function captureObject(value, previous) {
10331
+ const before = capturedObject(previous) ? previous : undefined;
10332
+ const entries = Object.entries(value).map(([key, item]) => [key, capture(item, before?.[key])]);
10333
+ if (before !== undefined && Object.keys(before).length === entries.length && entries.every(([key, item]) => Object.prototype.hasOwnProperty.call(before, key) && Object.is(item, before[key]))) return before;
10334
+ return owned.has(value) && entries.every(([key, item]) => Object.is(item, value[key])) ? value : freezeOwned(Object.fromEntries(entries));
10335
+ }
10336
+ function plainRecord(value) {
10337
+ const prototype = Object.getPrototypeOf(value);
10338
+ return prototype === Object.prototype || prototype === null;
10339
+ }
10340
+ function capture(value, previous) {
10341
+ if (value === null || typeof value !== "object") return value;
10342
+ if (owned.has(value) && (previous === undefined || value === previous)) return value;
10343
+ if (Array.isArray(value)) return captureArray(value, previous);
10344
+ return plainRecord(value) ? captureObject(value, previous) : capture(JSON.parse(JSON.stringify(value)), previous);
10345
+ }
10346
+ /**
10347
+ * The snapshot/journal ingress boundary. Equal captured branches retain identity;
10348
+ * already-owned values pass through without a second clone or traversal.
10349
+ * The assertion preserves the caller's existing domain brand after capture.
10350
+ */
10351
+ function captureEditorValue(value, previous) {
10352
+ return capture(value, previous);
10353
+ }
10354
+
10355
+ //#endregion
10356
+ export { parseLocationValue as $, unsafeAsStorageBucketName as $n, resolveExactOrFreePriceDisplay as $t, parseMailingListRuntimeContext as A, unsafeAsBookingSessionId as An, parseBookingTimeZone as At, DEFAULT_MAILING_LIST_TARGETING as B, unsafeAsMediaAssetId as Bn, omitZeroAmountFutureRows as Bt, createSecret as C, parsePageId as Cn, parseLocalScheduleTime as Ct, parseMailingListBlockId as D, parseUserId as Dn, toBookingTimeZone as Dt, slugify as E, parseSiteTermsVersionId as En, resolveBookingTimeZoneId as Et, DEFAULT_MAILING_LIST_SUCCESS_MESSAGE as F, unsafeAsEntitlementId as Fn, addIntervalPreservingMonthAnchor as Ft, parseWeeklyOpeningHours as G, unsafeAsPositiveSeconds as Gn, parseEventPageSurfaceSubject as Gt, isCanonicalRichTextDoc as H, unsafeAsOriginalFilename as Hn, resolveFlexibleBalanceDueAt as Ht, parseMailingListProviderScope as I, unsafeAsEventInstanceId as In, clampConfiguredAmount as It, decideLocationSave as J, unsafeAsSafeDownloadFilename as Jn, isPublicEventPricingOptionDisplayable as Jt, assertAllowedPublicUrl as K, unsafeAsPricingOptionId as Kn, formatBookingPriceDisplay as Kt, parseFooterCompositionV1 as L, unsafeAsEventOfferingId as Ln, getBookingInstalmentDepositRefundability as Lt, parseConfiguredMailingListProvider as M, unsafeAsDeclaredMimeType as Mn, isLiveOrderInstalmentPlanStatus as Mt, parseMailingListGlobalForm as N, unsafeAsDemoCapability as Nn, isSettleableFlexibleBalanceContractStatus as Nt, parseMailingListContentVersionId as O, unsafeAsAppointmentResourceId as On, toScheduledBookingDateTime as Ot, DEFAULT_MAILING_LIST_PRIVACY_NOTE as P, unsafeAsDetectedMimeType as Pn, isSettleableOrderInstalmentPlanStatus as Pt, normalizeLocationAddressText as Q, unsafeAsStaffMemberId as Qn, publicEventPricingType as Qt, footerNavigationLayouts as R, unsafeAsEventSeriesId as Rn, getBookingInstalmentPlanIntervalCount as Rt, resolveWholeSeriesRunLifecycle as S, parseMembershipId as Sn, parseBookingLocalDate as St, parseManagementKey as T, parseSiteId as Tn, resolveBookingBusinessTimeZone as Tt, formatOpeningHoursRows as U, unsafeAsPassId as Un, resolveFlexibleBalanceInitialPaymentCents as Ut, planMailingListChoicePresentation as V, unsafeAsOccurrenceId as Vn, splitAmountWithRemainderInFirst as Vt, parsePublicContactDetails as W, unsafeAsPositiveByteCount as Wn, deriveTotalTicketQuantity as Wt, locationMapLinks as X, unsafeAsSiteId as Xn, publicEventPricingDisplay as Xt, stableJsonStringify as Y, unsafeAsSiteFontId as Yn, publicEventPricingCurrency as Yt, locationValueSchema as Z, unsafeAsSiteScopedStoragePath as Zn, publicEventPricingOptions as Zt, publicReadFreshnessSeconds as _, parseDatedOfferingCapacityHoldAuditRef as _n, formatLocalScheduleTime as _t, NAVIGATION_LOCATIONS as a, parseNonNegativeCents as an, blockInteractionContextSchema as ar, selectCategoryView as at, orderedLiveRunSessions as b, parseEventSeriesId as bn, getLocalScheduleTime as bt, parseVerticalId as c, toNonNegativeCents as cn, formatDateTime as ct, DEFAULT_EVENT_TYPE_PRESETS as d, formatCurrencyAmount as dn, formatTimeRange as dt, resolvePricingOptionsPriceDisplay as en, unsafeAsStoragePath as er, projectPublicLocation as et, EVENT_PRESET_VALUES as f, parseCurrencyCode as fn, inferSiteDateLocale as ft, getPublicReadCachePolicy as g, parseCustomerId as gn, formatLocalScheduleDate as gt, WHOLE_SERIES_EVENT_PRESET_VALUES as h, parseApiKeyId as hn, compareLocalScheduleDates as ht, EVENT_PRESET_VOCABULARY as i, isNonNegativeWholeCents as in, ok as ir, mapDrawingSchema as it, assessMailingListTargeting as j, unsafeAsCheckoutLineId as jn, validateBookingPaymentOptionKinds as jt, parseMailingListSignedSourceToken as k, unsafeAsBookingRequirementId as kn, toUtcIsoDateTimeString as kt, parseVerticalPresetId as l, unsafeAsNonNegativeCents as ln, formatDateTimeRange as lt, SURFACE_EVENT_PRESET_VALUES as m, formatDurationUnitLabel as mn, buildBookingUtcDateWindow as mt, authoredValuesEqual as n, mapNonEmptyArray as nn, unsafeAsUserId as nr, toLocationCoordinates as nt, areConfiguredBookingVerticalConfigsEqual as o, parsePositiveCents as on, formatDate as ot, ORDINARY_EVENT_PRESET_VALUES as p, assertNever as pn, resolveBookingDisplayContext as pt, SENSITIVE_COLLECTION_MODES as q, unsafeAsProductId as qn, formatEventPricing as qt, resolveEventCatalogue as r, mapReadonlyNonEmptyArray as rn, err as rr, isPresent as rt, canonicalizeConfiguredBookingVerticalConfig as s, toCents as sn, formatDateRange as st, committedWriteProofSchema as t, fromArray as tn, unsafeAsUploadSessionId as tr, publicLocationSchema as tt, resolveSiteVerticalBookingConfig as u, unsafeAsPositiveCents as un, formatTime as ut, CANCELLED_SESSION_STATUS as v, parseDatedOfferingCapacityHoldId as vn, getBookingLocalDateKey as vt, exposeSecret as w, parseRetiredCourseId as wn, parseUtcIsoDateTimeString as wt, resolveWholeSeriesBookingPhase as x, parseMediaAssetId as xn, localScheduleTimePattern as xt, nextLiveRunSessionStartMs as y, parseEditorSessionGeneration as yn, getLocalScheduleDate as yt, parseMailingListPlacementTargeting as z, unsafeAsFileChecksumSha256 as zn, getBookingInstalmentProtectedDepositAmountCents as zt };
package/dist/testing.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import "./sdk-event-upsert-CH3xwzuX.mjs";
3
- import "./src-DsR6-gBQ.mjs";
4
- import { Bt as preparePushConfigTarget, G as syncLocalMediaForPull, Lt as applyPushConfigPlan, W as syncLocalMediaForPush, at as readEntries, ht as writeMediaManifest, kn as createOutput, o as executeEntryCommandPlanAsSyncResult, t as compileEntryPushCommands, z as calculateEntryDiffs } from "./entryCommands-61TwBBCA.mjs";
5
- import "./load-config-C7Ght4_r.mjs";
2
+ import "./sdk-event-upsert-BrJvTQ-D.mjs";
3
+ import "./src-D9-RAM-l.mjs";
4
+ import { Bt as preparePushConfigTarget, G as syncLocalMediaForPull, Lt as applyPushConfigPlan, W as syncLocalMediaForPush, at as readEntries, ht as writeMediaManifest, kn as createOutput, o as executeEntryCommandPlanAsSyncResult, t as compileEntryPushCommands, z as calculateEntryDiffs } from "./entryCommands-Bus1LjSx.mjs";
5
+ import "./load-config-9DBnYiBm.mjs";
6
6
 
7
7
  export { applyPushConfigPlan, calculateEntryDiffs, compileEntryPushCommands, createOutput, executeEntryCommandPlanAsSyncResult, preparePushConfigTarget, readEntries, syncLocalMediaForPull, syncLocalMediaForPush, writeMediaManifest };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "riverbankcms",
3
- "version": "0.26.0",
3
+ "version": "0.28.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-C7Ght4_r.mjs";
3
-
4
- export { loadConfigFile };