riverbankcms 0.19.0 → 0.20.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,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import "../src-yL0DBH7S.mjs";
3
- import { a as prepareScaffoldExecution, d as loadGeneratedPackageRanges, i as preflightScaffoldTargets, l as deriveGeneratedPackageRanges, o as writeScaffoldFiles, r as preflightScaffoldPlan, s as deriveScaffoldLocalManifest, t as deriveScaffoldPlan, u as findPackageManifestPath } from "../plan-DW5O751d.mjs";
2
+ import "../src-Dixcv4PB.mjs";
3
+ import { a as prepareScaffoldExecution, d as loadGeneratedPackageRanges, i as preflightScaffoldTargets, l as deriveGeneratedPackageRanges, o as writeScaffoldFiles, r as preflightScaffoldPlan, s as deriveScaffoldLocalManifest, t as deriveScaffoldPlan, u as findPackageManifestPath } from "../plan-HAEMHc5T.mjs";
4
4
 
5
5
  export { deriveGeneratedPackageRanges, deriveScaffoldLocalManifest, deriveScaffoldPlan, findPackageManifestPath, loadGeneratedPackageRanges, preflightScaffoldPlan, preflightScaffoldTargets, prepareScaffoldExecution, writeScaffoldFiles };
@@ -94,6 +94,8 @@ const unsafeAsFormSubmissionId = (id) => id;
94
94
  const unsafeAsPassId = (id) => id;
95
95
  const unsafeAsMembershipId = (id) => id;
96
96
  const unsafeAsCustomerId = (id) => id;
97
+ const unsafeAsSiteTermsVersionId = (id) => id;
98
+ const unsafeAsSiteTermsAgreementId = (id) => id;
97
99
  const unsafeAsOrderRetirementOperationId = (id) => id;
98
100
  const unsafeAsOrderId = (id) => id;
99
101
  const unsafeAsOrderItemId = (id) => id;
@@ -198,6 +200,8 @@ const parseDatedOfferingWaitlistCapacityEffectId = (value) => parseUuidBrand(val
198
200
  const parseDatedOfferingWaitlistCapacityEffectClaimToken = (value) => parseUuidBrand(value, unsafeAsDatedOfferingWaitlistCapacityEffectClaimToken);
199
201
  const parseDatedOfferingRunCancellationOperationId = (value) => parseUuidBrand(value, unsafeAsDatedOfferingRunCancellationOperationId);
200
202
  const parseCustomerId = (value) => parseUuidBrand(value, unsafeAsCustomerId);
203
+ const parseSiteTermsVersionId = (value) => parseUuidBrand(value, unsafeAsSiteTermsVersionId);
204
+ const parseSiteTermsAgreementId = (value) => parseUuidBrand(value, unsafeAsSiteTermsAgreementId);
201
205
  const parseCustomerPassId = (value) => parseUuidBrand(value, unsafeAsCustomerPassId);
202
206
  const parseCustomerMembershipId = (value) => parseUuidBrand(value, unsafeAsCustomerMembershipId);
203
207
  const parseEventSeriesId = (value) => parseUuidBrand(value, unsafeAsEventSeriesId);
@@ -1601,7 +1605,7 @@ function createOriginalPaymentRefundCommand(options) {
1601
1605
  protectedDepositOverride
1602
1606
  };
1603
1607
  }
1604
- /** Narrow an already typed schedule-write response by its receipt discriminant. */
1608
+ /** Narrow an already typed run or schedule write response to its accepted receipt. */
1605
1609
  function isAcceptedEventScheduleUpdate(response) {
1606
1610
  return "kind" in response && response.kind === "accepted_unavailable";
1607
1611
  }
@@ -1839,8 +1843,17 @@ function validateBookingPaymentOptionKinds(kinds) {
1839
1843
  /** Shared Intl engine, internal to core's date presentation owners. */
1840
1844
  const FORMATTER_CACHE_LIMIT$1 = 100;
1841
1845
  const dateTimeFormatterCache = new Map();
1846
+ /** Intl's boolean clock option can select h11/h24 on other ICU builds. */
1847
+ function resolveClockCycle(format) {
1848
+ const { hour12, ...explicitFormat } = format;
1849
+ return hour12 === undefined ? explicitFormat : {
1850
+ ...explicitFormat,
1851
+ hourCycle: hour12 ? "h12" : "h23"
1852
+ };
1853
+ }
1842
1854
  function getDateTimeFormatter(locale, timeZone, format) {
1843
- const formatKey = JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)));
1855
+ const explicitFormat = resolveClockCycle(format);
1856
+ const formatKey = JSON.stringify(Object.entries(explicitFormat).sort(([left], [right]) => left.localeCompare(right)));
1844
1857
  const key = `${locale}\u0000${timeZone}\u0000${formatKey}`;
1845
1858
  const cached = dateTimeFormatterCache.get(key);
1846
1859
  if (cached !== undefined) {
@@ -1853,7 +1866,7 @@ function getDateTimeFormatter(locale, timeZone, format) {
1853
1866
  throw new RangeError("An explicit time zone is required");
1854
1867
  }
1855
1868
  const formatter = new Intl.DateTimeFormat(locale, {
1856
- ...format,
1869
+ ...explicitFormat,
1857
1870
  timeZone
1858
1871
  });
1859
1872
  if (dateTimeFormatterCache.size >= FORMATTER_CACHE_LIMIT$1) {
@@ -1945,7 +1958,7 @@ function getZonedDateTimeParts(date, timeZone) {
1945
1958
  hour: "2-digit",
1946
1959
  minute: "2-digit",
1947
1960
  second: "2-digit",
1948
- hour12: false
1961
+ hourCycle: "h23"
1949
1962
  });
1950
1963
  const read = (type) => Number(parts.get(type) ?? "");
1951
1964
  return {
@@ -1979,6 +1992,11 @@ function resolveBookingTimeZoneId(...candidates) {
1979
1992
  }
1980
1993
  return FALLBACK_TIMEZONE;
1981
1994
  }
1995
+ /** Canonical business-zone admission, shared by server and public wire boundaries. */
1996
+ const DEFAULT_BOOKING_BUSINESS_TIME_ZONE = "Europe/London";
1997
+ function resolveBookingBusinessTimeZone(value) {
1998
+ return resolveBookingTimeZoneId(value, DEFAULT_BOOKING_BUSINESS_TIME_ZONE);
1999
+ }
1982
2000
  function parseUtcIsoDateTimeString(value) {
1983
2001
  const normalized = value.trim();
1984
2002
  const hasUtcSuffix = normalized.endsWith("Z");
@@ -2094,7 +2112,7 @@ function formatBookingDate(input, format = {
2094
2112
  function formatBookingTime(input, format = {
2095
2113
  hour: "numeric",
2096
2114
  minute: "2-digit",
2097
- hour12: true
2115
+ hourCycle: "h12"
2098
2116
  }) {
2099
2117
  return formatBookingInstant(input.startsAt, {
2100
2118
  locale: input.locale,
@@ -2117,7 +2135,7 @@ function formatBookingCompactEnglishTime(input) {
2117
2135
  const parts = formatToPartsLookup(date, input.locale ?? "en-GB", input.timeZone, {
2118
2136
  hour: "numeric",
2119
2137
  minute: "2-digit",
2120
- hour12: true
2138
+ hourCycle: "h12"
2121
2139
  });
2122
2140
  const hour = parts.get("hour");
2123
2141
  const minute = parts.get("minute");
@@ -2153,7 +2171,7 @@ function formatBookingDateParts(input, options) {
2153
2171
  time: formatBookingTime(input, options?.timeFormat ?? {
2154
2172
  hour: "numeric",
2155
2173
  minute: "2-digit",
2156
- hour12: true
2174
+ hourCycle: "h12"
2157
2175
  })
2158
2176
  };
2159
2177
  }
@@ -2263,6 +2281,8 @@ function formatBookingRange(input, options) {
2263
2281
  });
2264
2282
  return `${startDate}, ${startTime} - ${endDate}, ${endTime}`;
2265
2283
  }
2284
+ /** Canonical schedule text at command and SDK boundaries: HH:MM or HH:MM:SS. */
2285
+ const localScheduleTimePattern = /^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$/u;
2266
2286
  function parseLocalScheduleTime(value) {
2267
2287
  const match = /^(?<hour>\d{1,2}):(?<minute>\d{2})(?::(?<second>\d{2}))?$/u.exec(value.trim());
2268
2288
  if (match === null || match.groups === undefined) {
@@ -2396,13 +2416,20 @@ function formatDate(value, context, options = {}) {
2396
2416
  return presentDate(value, context, displayProfile(options, "omit"));
2397
2417
  }
2398
2418
  function formatDateRange(start, endInclusive, context, options = {}) {
2399
- return presentDateRange({
2419
+ const first = {
2400
2420
  kind: "civil",
2401
2421
  value: projectDate(start, context)
2402
- }, {
2422
+ };
2423
+ const last = {
2403
2424
  kind: "civil",
2404
2425
  value: projectDate(endInclusive, context)
2405
- }, context, displayProfile(options, "omit"));
2426
+ };
2427
+ const preserveOrder = options.order === "session" && compareLocalScheduleDates(first.value, last.value) > 0;
2428
+ const profile = displayProfile(preserveOrder ? {
2429
+ ...options,
2430
+ year: "numeric"
2431
+ } : options, "omit");
2432
+ return preserveOrder ? `${presentDate(first, context, profile)} – ${presentDate(last, context, profile)}` : presentDateRange(first, last, context, profile);
2406
2433
  }
2407
2434
  function formatDateTime(value, context, options) {
2408
2435
  return presentDateTime(value, context, displayProfile(options, options.zone));
@@ -2557,8 +2584,8 @@ function formatTimeUntil(value, now, context) {
2557
2584
  function dateFormat(options) {
2558
2585
  const style = options.date ?? "long";
2559
2586
  return {
2560
- day: style === "numeric" ? "2-digit" : "numeric",
2561
- month: style === "numeric" ? "2-digit" : style,
2587
+ day: style === "omit" ? undefined : style === "numeric" ? "2-digit" : "numeric",
2588
+ month: style === "omit" ? undefined : style === "numeric" ? "2-digit" : style,
2562
2589
  ...options.year === "omit" ? {} : { year: "numeric" },
2563
2590
  ...options.weekday ? { weekday: options.weekday } : {}
2564
2591
  };
@@ -2578,8 +2605,7 @@ function zoneToken(value, context, locale) {
2578
2605
  function zoneLabel(value, context) {
2579
2606
  const tokens = [zoneToken(value, context, "en-GB"), zoneToken(value, context, "en-US")];
2580
2607
  const abbreviation = tokens.find((token) => /^[A-Z]{2,6}$/u.test(token));
2581
- const fallback = context.timeZone.startsWith("Etc/") ? "local time" : `${context.timeZone.split("/").slice(-1)[0]?.replace(/_/gu, " ") ?? context.timeZone} time`;
2582
- return abbreviation ?? fallback;
2608
+ return abbreviation ?? formatTimeZoneCityLabel(context.timeZone);
2583
2609
  }
2584
2610
  function assertOrdered(start, end) {
2585
2611
  if (new Date(end).getTime() < new Date(start).getTime()) {
@@ -2592,6 +2618,7 @@ function calendarDayDifference(value, now, context) {
2592
2618
  function formatRelative(value, now, context, direction) {
2593
2619
  const seconds = (new Date(value).getTime() - new Date(now).getTime()) / 1e3;
2594
2620
  const magnitude = Math.abs(seconds);
2621
+ if (direction === "past" && seconds > 0 && seconds <= 120) return relativeNearNow(context.locale, "past");
2595
2622
  if (magnitude < 60) return relativeNearNow(context.locale, direction);
2596
2623
  const days = calendarDayDifference(value, now, context);
2597
2624
  if (Math.abs(days) > 7) return formatDate({
@@ -2608,6 +2635,10 @@ function relativeNearNow(locale, direction) {
2608
2635
  if (new Intl.Locale(locale).language === "en") return direction === "past" ? "just now" : "in a moment";
2609
2636
  return new Intl.RelativeTimeFormat(locale, { numeric: "auto" }).format(0, "second");
2610
2637
  }
2638
+ /** Same city vocabulary as clock-label fallback, for explanatory timezone copy. */
2639
+ function formatTimeZoneCityLabel(timeZone) {
2640
+ return timeZone.startsWith("Etc/") ? "local time" : `${timeZone.split("/").slice(-1)[0]?.replace(/_/gu, " ") ?? timeZone} time`;
2641
+ }
2611
2642
 
2612
2643
  //#endregion
2613
2644
  //#region ../core/src/scheduled-date-time.ts
@@ -2813,6 +2844,64 @@ function assertNever$3(value) {
2813
2844
  throw new Error(`Unhandled date-time variant: ${String(value)}`);
2814
2845
  }
2815
2846
 
2847
+ //#endregion
2848
+ //#region ../core/src/site-terms.ts
2849
+ function isSiteTermsMode(value) {
2850
+ return value === "site" || value === "off";
2851
+ }
2852
+ function siteTermsApplies(operation, items) {
2853
+ if (operation === "join_waitlist" || operation === "pay_existing_order") return false;
2854
+ return items.some((item) => item.kind === "event" || item.kind === "appointment" ? item.siteTermsMode === "site" : true);
2855
+ }
2856
+ /** History, rather than the head, survives stopping and re-publishing. */
2857
+ function nextSiteTermsVersionNumbering(history, askAgain) {
2858
+ const latest = history.reduce((highest, version) => highest === null || version.number > highest.number ? version : highest, null);
2859
+ return latest !== null ? {
2860
+ number: latest.number + 1,
2861
+ generation: latest.generation + (askAgain ? 1 : 0)
2862
+ } : {
2863
+ number: 1,
2864
+ generation: 1
2865
+ };
2866
+ }
2867
+ function qualifyingSiteTermsAcceptance(input) {
2868
+ return input.identity.kind === "verified" && input.prior !== null && input.prior.customerId === input.identity.customerId && input.prior.termsId === input.state.termsId && input.prior.generation === input.state.current.generation ? input.prior : null;
2869
+ }
2870
+ function admitSiteTerms(input) {
2871
+ if (!input.applies || input.state.kind === "none") return ok({ kind: "not_asked" });
2872
+ const version = input.state.current;
2873
+ const acceptance = qualifyingSiteTermsAcceptance({
2874
+ ...input,
2875
+ state: input.state
2876
+ });
2877
+ if (acceptance !== null) return ok({
2878
+ kind: "already_agreed",
2879
+ version,
2880
+ reliedOn: acceptance
2881
+ });
2882
+ if (input.submission.shown.kind !== "checkbox" || input.submission.shown.versionId !== version.id) {
2883
+ return err({
2884
+ kind: "terms_changed",
2885
+ current: version
2886
+ });
2887
+ }
2888
+ if (!input.submission.agreed) return err({
2889
+ kind: "agreement_missing",
2890
+ current: version
2891
+ });
2892
+ return ok({
2893
+ kind: "ticked",
2894
+ version,
2895
+ agreedAt: input.now,
2896
+ identifiedBy: input.identity.kind === "verified" ? "signed_in" : "checkout_email"
2897
+ });
2898
+ }
2899
+ /** Customer copy for a checkout's terms box, shared by the client check and the server's rejection. */
2900
+ const SITE_TERMS_NOT_TICKED_MESSAGE = "Please agree to the booking terms to continue.";
2901
+ function siteTermsChangedMessage(businessName) {
2902
+ return `${businessName} updated their booking terms while you were booking. Please have a look and tick the box again.`;
2903
+ }
2904
+
2816
2905
  //#endregion
2817
2906
  //#region ../core/src/appointment-service-categories.ts
2818
2907
  /**
@@ -7180,6 +7269,11 @@ function firstLiveRunSessionStartMs(sessions) {
7180
7269
  const first = orderedLiveRunSessions(sessions)[0];
7181
7270
  return first === undefined ? null : sessionStartMs(first);
7182
7271
  }
7272
+ /** The next surviving session at or after the render clock, not the first week. */
7273
+ function nextLiveRunSessionStartMs(sessions, now) {
7274
+ const next = orderedLiveRunSessions(sessions).find((session) => sessionStartMs(session) >= now.getTime());
7275
+ return next === undefined ? null : sessionStartMs(next);
7276
+ }
7183
7277
  /**
7184
7278
  * Booking stays open until the run's first surviving session has started.
7185
7279
  *
@@ -8177,4 +8271,4 @@ function mergeBag(stored, patch, options) {
8177
8271
  }
8178
8272
 
8179
8273
  //#endregion
8180
- export { parseUtcIsoDateTimeString as $, unsafeAsBookingSessionId as $t, parseFooterCompositionV1 as A, parseNonNegativeCents as At, normalizeLocationAddressText as B, parseApiKeyId as Bt, parseMailingListBlockId as C, unsafeAsStoragePath as Cn, publicEventPricingOptions as Ct, assessMailingListTargeting as D, ok as Dn, fromArray as Dt, parseMailingListRuntimeContext as E, err as En, resolvePricingOptionsPriceDisplay as Et, sameMailingListPlacementTargeting as F, unsafeAsPositiveCents as Ft, formatBookingDate as G, parseMediaAssetId as Gt, selectCategoryView as H, parseDatedOfferingCapacityHoldAuditRef as Ht, isCanonicalRichTextDoc as I, formatCurrencyAmount as It, formatLocalScheduleDate as J, parseRetiredCourseId as Jt, formatBookingDateParts as K, parseMembershipId as Kt, parsePublicContactDetails as L, parseCurrencyCode as Lt, parseMailingListPlacementTargeting as M, toCents as Mt, DEFAULT_MAILING_LIST_TARGETING as N, toNonNegativeCents as Nt, DEFAULT_MAILING_LIST_SUCCESS_MESSAGE as O, mapNonEmptyArray as Ot, planMailingListChoicePresentation as P, unsafeAsNonNegativeCents as Pt, getLocalScheduleTime as Q, unsafeAsBookingRequirementId as Qt, assertAllowedPublicUrl as R, assertNever as Rt, buildMailingListSignupBlockSourceRef as S, unsafeAsStorageBucketName as Sn, publicEventPricingDisplay as St, parseMailingListSignedSourceToken as T, unsafeAsUserId as Tn, resolveExactOrFreePriceDisplay as Tt, inferSiteDateLocale as U, parseDatedOfferingCapacityHoldId as Ut, toLocationCoordinates as V, parseCustomerId as Vt, buildBookingUtcDateWindow as W, parseEventSeriesId as Wt, getBookingLocalDateKey as X, parseUserId as Xt, formatLocalScheduleTime as Y, parseSiteId as Yt, getLocalScheduleDate as Z, unsafeAsAppointmentResourceId as Zt, resolveWholeSeriesBookingPhase as _, unsafeAsSafeDownloadFilename as _n, parseEventPageSurfaceSubject as _t, canonicalizeConfiguredBookingVerticalConfig as a, unsafeAsEventInstanceId as an, isLiveOrderInstalmentPlanStatus as at, parseManagementKey as b, unsafeAsSiteScopedStoragePath as bn, isPublicEventPricingOptionDisplayable as bt, resolveSiteVerticalBookingConfig as c, unsafeAsFileChecksumSha256 as cn, addIntervalPreservingMonthAnchor as ct, ORDINARY_EVENT_PRESET_VALUES as d, unsafeAsOriginalFilename as dn, getBookingInstalmentPlanIntervalCount as dt, unsafeAsCheckoutLineId as en, toBookingTimeZone as et, SURFACE_EVENT_PRESET_VALUES as f, unsafeAsPassId as fn, getBookingInstalmentProtectedDepositAmountCents as ft, orderedLiveRunSessions as g, unsafeAsProductId as gn, resolveFlexibleBalanceInitialPaymentCents as gt, CANCELLED_SESSION_STATUS as h, unsafeAsPricingOptionId as hn, resolveFlexibleBalanceDueAt as ht, areConfiguredBookingVerticalConfigsEqual as i, unsafeAsEntitlementId as in, validateBookingPaymentOptionKinds as it, footerNavigationLayouts as j, parsePositiveCents as jt, parseMailingListProviderScope as k, isNonNegativeWholeCents as kt, DEFAULT_EVENT_TYPE_PRESETS as l, unsafeAsMediaAssetId as ln, clampConfiguredAmount as lt, publicReadFreshnessSeconds as m, unsafeAsPositiveSeconds as mn, splitAmountWithRemainderInFirst as mt, EVENT_PRESET_VOCABULARY as n, unsafeAsDemoCapability as nn, toScheduledBookingDateTime as nt, parseVerticalId as o, unsafeAsEventOfferingId as on, isSettleableFlexibleBalanceContractStatus as ot, WHOLE_SERIES_EVENT_PRESET_VALUES as p, unsafeAsPositiveByteCount as pn, omitZeroAmountFutureRows as pt, formatBookingTime as q, parsePageId as qt, NAVIGATION_LOCATIONS as r, unsafeAsDetectedMimeType as rn, parseBookingTimeZone as rt, parseVerticalPresetId as s, unsafeAsEventSeriesId as sn, isSettleableOrderInstalmentPlanStatus as st, resolveEventCatalogue as t, unsafeAsDeclaredMimeType as tn, toScheduledBookingDateRange as tt, EVENT_PRESET_VALUES as u, unsafeAsOccurrenceId as un, getBookingInstalmentDepositRefundability as ut, createSecret as v, unsafeAsSiteFontId as vn, formatBookingPriceDisplay as vt, parseMailingListContentVersionId as w, unsafeAsUploadSessionId as wn, publicEventPricingType as wt, stableJsonStringify as x, unsafeAsStaffMemberId as xn, publicEventPricingCurrency as xt, exposeSecret as y, unsafeAsSiteId as yn, formatEventPricing as yt, isPresent as z, formatDurationUnitLabel as zt };
8274
+ export { getBookingLocalDateKey as $, parsePageId as $t, assessMailingListTargeting as A, unsafeAsStoragePath as An, resolveExactOrFreePriceDisplay as At, parsePublicContactDetails as B, unsafeAsNonNegativeCents as Bt, stableJsonStringify as C, unsafeAsProductId as Cn, formatBookingPriceDisplay as Ct, parseMailingListContentVersionId as D, unsafeAsSiteScopedStoragePath as Dn, publicEventPricingDisplay as Dt, parseMailingListBlockId as E, unsafeAsSiteId as En, publicEventPricingCurrency as Et, parseMailingListPlacementTargeting as F, isNonNegativeWholeCents as Ft, selectCategoryView as G, formatDurationUnitLabel as Gt, isPresent as H, formatCurrencyAmount as Ht, DEFAULT_MAILING_LIST_TARGETING as I, parseNonNegativeCents as It, formatBookingDate as J, parseDatedOfferingCapacityHoldAuditRef as Jt, inferSiteDateLocale as K, parseApiKeyId as Kt, planMailingListChoicePresentation as L, parsePositiveCents as Lt, parseMailingListProviderScope as M, unsafeAsUserId as Mn, fromArray as Mt, parseFooterCompositionV1 as N, err as Nn, mapNonEmptyArray as Nt, parseMailingListSignedSourceToken as O, unsafeAsStaffMemberId as On, publicEventPricingOptions as Ot, footerNavigationLayouts as P, ok as Pn, mapReadonlyNonEmptyArray as Pt, formatLocalScheduleTime as Q, parseMembershipId as Qt, sameMailingListPlacementTargeting as R, toCents as Rt, parseManagementKey as S, unsafeAsPricingOptionId as Sn, parseEventPageSurfaceSubject as St, buildMailingListSignupBlockSourceRef as T, unsafeAsSiteFontId as Tn, isPublicEventPricingOptionDisplayable as Tt, normalizeLocationAddressText as U, parseCurrencyCode as Ut, assertAllowedPublicUrl as V, unsafeAsPositiveCents as Vt, toLocationCoordinates as W, assertNever as Wt, formatBookingTime as X, parseEventSeriesId as Xt, formatBookingDateParts as Y, parseDatedOfferingCapacityHoldId as Yt, formatLocalScheduleDate as Z, parseMediaAssetId as Zt, orderedLiveRunSessions as _, unsafeAsOccurrenceId as _n, omitZeroAmountFutureRows as _t, canonicalizeConfiguredBookingVerticalConfig as a, unsafeAsBookingRequirementId as an, toScheduledBookingDateRange as at, createSecret as b, unsafeAsPositiveByteCount as bn, resolveFlexibleBalanceInitialPaymentCents as bt, resolveSiteVerticalBookingConfig as c, unsafeAsDeclaredMimeType as cn, validateBookingPaymentOptionKinds as ct, ORDINARY_EVENT_PRESET_VALUES as d, unsafeAsEntitlementId as dn, isSettleableOrderInstalmentPlanStatus as dt, parseRetiredCourseId as en, getLocalScheduleDate as et, SURFACE_EVENT_PRESET_VALUES as f, unsafeAsEventInstanceId as fn, addIntervalPreservingMonthAnchor as ft, nextLiveRunSessionStartMs as g, unsafeAsMediaAssetId as gn, getBookingInstalmentProtectedDepositAmountCents as gt, CANCELLED_SESSION_STATUS as h, unsafeAsFileChecksumSha256 as hn, getBookingInstalmentPlanIntervalCount as ht, areConfiguredBookingVerticalConfigsEqual as i, unsafeAsAppointmentResourceId as in, toBookingTimeZone as it, DEFAULT_MAILING_LIST_SUCCESS_MESSAGE as j, unsafeAsUploadSessionId as jn, resolvePricingOptionsPriceDisplay as jt, parseMailingListRuntimeContext as k, unsafeAsStorageBucketName as kn, publicEventPricingType as kt, DEFAULT_EVENT_TYPE_PRESETS as l, unsafeAsDemoCapability as ln, isLiveOrderInstalmentPlanStatus as lt, publicReadFreshnessSeconds as m, unsafeAsEventSeriesId as mn, getBookingInstalmentDepositRefundability as mt, EVENT_PRESET_VOCABULARY as n, parseSiteTermsVersionId as nn, localScheduleTimePattern as nt, parseVerticalId as o, unsafeAsBookingSessionId as on, toScheduledBookingDateTime as ot, WHOLE_SERIES_EVENT_PRESET_VALUES as p, unsafeAsEventOfferingId as pn, clampConfiguredAmount as pt, buildBookingUtcDateWindow as q, parseCustomerId as qt, NAVIGATION_LOCATIONS as r, parseUserId as rn, parseUtcIsoDateTimeString as rt, parseVerticalPresetId as s, unsafeAsCheckoutLineId as sn, parseBookingTimeZone as st, resolveEventCatalogue as t, parseSiteId as tn, getLocalScheduleTime as tt, EVENT_PRESET_VALUES as u, unsafeAsDetectedMimeType as un, isSettleableFlexibleBalanceContractStatus as ut, resolveWholeSeriesBookingPhase as v, unsafeAsOriginalFilename as vn, splitAmountWithRemainderInFirst as vt, slugify as w, unsafeAsSafeDownloadFilename as wn, formatEventPricing as wt, exposeSecret as x, unsafeAsPositiveSeconds as xn, deriveTotalTicketQuantity as xt, resolveWholeSeriesRunLifecycle as y, unsafeAsPassId as yn, resolveFlexibleBalanceDueAt as yt, isCanonicalRichTextDoc as z, toNonNegativeCents as zt };
package/dist/testing.mjs CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import "./sdk-event-upsert-BdvfnCyV.mjs";
3
- import "./src-yL0DBH7S.mjs";
4
- import { n as syncLocalMediaForPush, r as syncLocalMediaForPull, y as writeMediaManifest } from "./local-sync-CWLEhMZ-.mjs";
2
+ import "./richTextSchema-DTvrDDF5.mjs";
3
+ import "./src-Dixcv4PB.mjs";
4
+ import { $t as preparePushConfigTarget, H as syncLocalMediaForPush, L as calculateEntryDiffs, U as syncLocalMediaForPull, Vn as createOutput, Xt as applyPushConfigPlan, o as executeEntryCommandPlanAsSyncResult, pt as writeMediaManifest, rt as readEntries, t as compileEntryPushCommands } from "./entryCommands-8kDjOex0.mjs";
5
+ import "./load-config-gqUEjIyB.mjs";
5
6
 
6
- export { syncLocalMediaForPull, syncLocalMediaForPush, writeMediaManifest };
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.19.0",
3
+ "version": "0.20.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-CErro6mj.mjs";
3
-
4
- export { loadConfigFile };