riverbankcms 0.22.0 → 0.22.2

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.
@@ -1360,7 +1360,8 @@ function createEventOfferingPageSurfaceSubject(eventOfferingId, input) {
1360
1360
  const identity = {
1361
1361
  kind: "eventOffering",
1362
1362
  eventOfferingId,
1363
- catalogueEventSeriesIds: input.catalogueEventSeriesIds
1363
+ catalogueEventSeriesIds: input.catalogueEventSeriesIds,
1364
+ ...input.detailAdmission ? { detailAdmission: input.detailAdmission } : {}
1364
1365
  };
1365
1366
  return input.bookingScope === "whole_series" ? {
1366
1367
  ...identity,
@@ -1385,57 +1386,60 @@ function parseEventPageSurfaceDestinationMode(value) {
1385
1386
  }
1386
1387
  function parseEventPageSurfaceSubject(value) {
1387
1388
  if (!isRecord$9(value)) return err({ kind: "notObject" });
1388
- switch (value.kind) {
1389
- case "eventSeries": {
1390
- const eventSeriesId = parseEventSeriesId(value.eventSeriesId);
1391
- if (!eventSeriesId.ok) {
1392
- return err({
1393
- kind: "invalidEventSeriesId",
1394
- error: eventSeriesId.error
1395
- });
1396
- }
1397
- if (value.bookingScope !== "single_occurrence" && value.bookingScope !== "whole_series") {
1398
- return err({
1399
- kind: "invalidEventSeriesBookingScope",
1400
- bookingScope: value.bookingScope
1401
- });
1402
- }
1403
- return ok(createEventSeriesPageSurfaceSubject(eventSeriesId.value, value.bookingScope, parseEventPageSurfaceDestinationMode(value.eventDestinationMode)));
1404
- }
1405
- case "eventOffering": {
1406
- const eventOfferingId = parseEventOfferingId(value.eventOfferingId);
1407
- if (!eventOfferingId.ok) {
1408
- return err({
1409
- kind: "invalidEventOfferingId",
1410
- error: eventOfferingId.error
1411
- });
1412
- }
1413
- if (!Array.isArray(value.catalogueEventSeriesIds)) {
1414
- return err({
1415
- kind: "invalidEventOfferingCatalogue",
1416
- catalogue: value.catalogueEventSeriesIds
1417
- });
1418
- }
1419
- if (value.bookingScope !== "single_occurrence" && value.bookingScope !== "whole_series") {
1420
- return err({
1421
- kind: "invalidEventOfferingBookingScope",
1422
- bookingScope: value.bookingScope
1423
- });
1424
- }
1425
- const parsedCatalogueIds = parseEventSeriesIdList(value.catalogueEventSeriesIds);
1426
- if (!parsedCatalogueIds.ok) return parsedCatalogueIds;
1427
- const eventDestinationMode = parseEventPageSurfaceDestinationMode(value.eventDestinationMode);
1428
- return ok(createEventOfferingPageSurfaceSubject(eventOfferingId.value, {
1429
- catalogueEventSeriesIds: parsedCatalogueIds.value,
1430
- bookingScope: value.bookingScope,
1431
- ...eventDestinationMode ? { eventDestinationMode } : {}
1432
- }));
1433
- }
1434
- default: return err({
1435
- kind: "unsupportedSubject",
1436
- subjectKind: value.kind
1389
+ const parsed = value.kind === "eventSeries" ? parseEventSeriesPageSurfaceSubject(value) : value.kind === "eventOffering" ? parseEventOfferingPageSurfaceSubject(value) : err({
1390
+ kind: "unsupportedSubject",
1391
+ subjectKind: value.kind
1392
+ });
1393
+ return parsed.ok && value.noindex === true ? ok({
1394
+ ...parsed.value,
1395
+ noindex: true
1396
+ }) : parsed;
1397
+ }
1398
+ function parseEventSeriesPageSurfaceSubject(value) {
1399
+ const eventSeriesId = parseEventSeriesId(value.eventSeriesId);
1400
+ if (!eventSeriesId.ok) {
1401
+ return err({
1402
+ kind: "invalidEventSeriesId",
1403
+ error: eventSeriesId.error
1404
+ });
1405
+ }
1406
+ if (value.bookingScope !== "single_occurrence" && value.bookingScope !== "whole_series") {
1407
+ return err({
1408
+ kind: "invalidEventSeriesBookingScope",
1409
+ bookingScope: value.bookingScope
1437
1410
  });
1438
1411
  }
1412
+ return ok(createEventSeriesPageSurfaceSubject(eventSeriesId.value, value.bookingScope, parseEventPageSurfaceDestinationMode(value.eventDestinationMode)));
1413
+ }
1414
+ function parseEventOfferingPageSurfaceSubject(value) {
1415
+ const eventOfferingId = parseEventOfferingId(value.eventOfferingId);
1416
+ if (!eventOfferingId.ok) {
1417
+ return err({
1418
+ kind: "invalidEventOfferingId",
1419
+ error: eventOfferingId.error
1420
+ });
1421
+ }
1422
+ if (!Array.isArray(value.catalogueEventSeriesIds)) {
1423
+ return err({
1424
+ kind: "invalidEventOfferingCatalogue",
1425
+ catalogue: value.catalogueEventSeriesIds
1426
+ });
1427
+ }
1428
+ if (value.bookingScope !== "single_occurrence" && value.bookingScope !== "whole_series") {
1429
+ return err({
1430
+ kind: "invalidEventOfferingBookingScope",
1431
+ bookingScope: value.bookingScope
1432
+ });
1433
+ }
1434
+ const parsedCatalogueIds = parseEventSeriesIdList(value.catalogueEventSeriesIds);
1435
+ if (!parsedCatalogueIds.ok) return parsedCatalogueIds;
1436
+ const eventDestinationMode = parseEventPageSurfaceDestinationMode(value.eventDestinationMode);
1437
+ return ok(createEventOfferingPageSurfaceSubject(eventOfferingId.value, {
1438
+ catalogueEventSeriesIds: parsedCatalogueIds.value,
1439
+ ...value.detailAdmission === "own-page" ? { detailAdmission: "own-page" } : {},
1440
+ bookingScope: value.bookingScope,
1441
+ ...eventDestinationMode ? { eventDestinationMode } : {}
1442
+ }));
1439
1443
  }
1440
1444
  function toEventPageSurfaceSubjectWire(subject) {
1441
1445
  return subject;
@@ -2005,6 +2009,12 @@ function resolveBookingTimeZoneId(...candidates) {
2005
2009
  }
2006
2010
  /** Canonical business-zone admission, shared by server and public wire boundaries. */
2007
2011
  const DEFAULT_BOOKING_BUSINESS_TIME_ZONE = "Europe/London";
2012
+ /** Stored site zones must be valid; a broken read must not silently choose another zone. */
2013
+ function requireBookingTimeZone(value) {
2014
+ const parsed = parseBookingTimeZone(value);
2015
+ if (!parsed.ok) throw new Error("Expected a valid canonical site time zone");
2016
+ return parsed.value;
2017
+ }
2008
2018
  /** Effect boundary for browser-authored local inputs; formats no displayed date. */
2009
2019
  function getRuntimeBookingTimeZone() {
2010
2020
  return resolveBookingTimeZoneId(new Intl.DateTimeFormat("en-GB").resolvedOptions().timeZone);
@@ -2453,19 +2463,19 @@ function formatDateRange(start, endInclusive, context, options = {}) {
2453
2463
  return preserveOrder ? `${presentDate(first, context, profile)} – ${presentDate(last, context, profile)}` : presentDateRange(first, last, context, profile);
2454
2464
  }
2455
2465
  function formatDateTime(value, context, options) {
2456
- return presentDateTime(value, context, displayProfile(options, options.zone, options.clock, options.seconds));
2466
+ return presentDateTime(value, context, displayProfile(options, options.zone, options.seconds));
2457
2467
  }
2458
2468
  function formatDateTimeRange(span, context, options) {
2459
- return presentDateTimeRange(span, context, displayProfile(options, options.zone, options.clock, options.seconds));
2469
+ return presentDateTimeRange(span, context, displayProfile(options, options.zone, options.seconds));
2460
2470
  }
2461
2471
  function formatTime(value, context, options) {
2462
- return presentTime(value, context, displayProfile({}, options.zone, options.clock, options.seconds));
2472
+ return presentTime(value, context, displayProfile({}, options.zone, options.seconds));
2463
2473
  }
2464
2474
  function formatTimeRange(start, end, context, options) {
2465
2475
  return presentTimeRange({
2466
2476
  start,
2467
2477
  end
2468
- }, context, displayProfile({}, options.zone, options.clock, options.seconds));
2478
+ }, context, displayProfile({}, options.zone, options.seconds));
2469
2479
  }
2470
2480
  /** Sole date projection/typography owner, used by display and scheduled adapters. */
2471
2481
  function presentDate(value, context, profile) {
@@ -2572,19 +2582,11 @@ function combinedFormat(date, clock) {
2572
2582
  ...clock.format
2573
2583
  };
2574
2584
  }
2575
- function displayProfile(options, zone, clock, seconds) {
2585
+ function displayProfile(options, zone, seconds) {
2576
2586
  return {
2577
2587
  kind: "display",
2578
2588
  dateFormat: dateFormat(options),
2579
- clock: clock === "24-hour" ? {
2580
- kind: "intl",
2581
- format: {
2582
- hour: "2-digit",
2583
- minute: "2-digit",
2584
- ...seconds === "include" ? { second: "2-digit" } : {},
2585
- hourCycle: "h23"
2586
- }
2587
- } : {
2589
+ clock: {
2588
2590
  kind: "compact",
2589
2591
  localeSource: "product",
2590
2592
  seconds
@@ -3351,6 +3353,7 @@ function valueStatus(sync) {
3351
3353
  if (sync.local.kind === "pristine") return "saved";
3352
3354
  switch (sync.local.request.kind) {
3353
3355
  case "idle":
3356
+ case "reserved":
3354
3357
  case "abandoned": return "unsaved";
3355
3358
  case "in-flight": return "saving";
3356
3359
  case "failed": return "failed";
@@ -4229,6 +4232,28 @@ function parseOpeningHoursDay(value, expectedWeekday, index) {
4229
4232
  intervals: [first, ...rest]
4230
4233
  });
4231
4234
  }
4235
+ function parseOpeningHoursWeek(rawDays) {
4236
+ const parsedDays = publicProfileWeekdays.map((weekday, index) => parseOpeningHoursDay(rawDays[index], weekday, index));
4237
+ const failed = parsedDays.find((day) => !day.ok);
4238
+ if (failed !== undefined) return failed;
4239
+ const [monday, tuesday, wednesday, thursday, friday, saturday, sunday] = parsedDays.flatMap((day) => day.ok ? [day.value] : []);
4240
+ if (monday === undefined || tuesday === undefined || wednesday === undefined || thursday === undefined || friday === undefined || saturday === undefined || sunday === undefined) {
4241
+ return err({
4242
+ code: "invalid_weekdays",
4243
+ path: "openingHours.days",
4244
+ message: "Opening hours are incomplete."
4245
+ });
4246
+ }
4247
+ return ok([
4248
+ monday,
4249
+ tuesday,
4250
+ wednesday,
4251
+ thursday,
4252
+ friday,
4253
+ saturday,
4254
+ sunday
4255
+ ]);
4256
+ }
4232
4257
  function parseWeeklyOpeningHours(value) {
4233
4258
  if (!isRecord$8(value) || !Array.isArray(value.days) || value.days.length !== publicProfileWeekdays.length) {
4234
4259
  return err({
@@ -4239,31 +4264,20 @@ function parseWeeklyOpeningHours(value) {
4239
4264
  }
4240
4265
  const timeZone = parsePublicProfileTimeZone(value.timeZone);
4241
4266
  if (!timeZone.ok) return timeZone;
4242
- const days = [];
4243
- for (const [index, weekday] of publicProfileWeekdays.entries()) {
4244
- const day = parseOpeningHoursDay(value.days[index], weekday, index);
4245
- if (!day.ok) return day;
4246
- days.push(day.value);
4247
- }
4248
- const [monday, tuesday, wednesday, thursday, friday, saturday, sunday] = days;
4249
- if (monday === undefined || tuesday === undefined || wednesday === undefined || thursday === undefined || friday === undefined || saturday === undefined || sunday === undefined) {
4267
+ const note = value.note === undefined || value.note === null ? null : trimmedOptionalString(value.note);
4268
+ if (note === undefined) {
4250
4269
  return err({
4251
- code: "invalid_weekdays",
4252
- path: "openingHours.days",
4253
- message: "Opening hours are incomplete."
4270
+ code: "invalid_shape",
4271
+ path: "openingHours.note",
4272
+ message: "The opening hours note must be text."
4254
4273
  });
4255
4274
  }
4275
+ const days = parseOpeningHoursWeek(value.days);
4276
+ if (!days.ok) return days;
4256
4277
  return ok({
4257
4278
  timeZone: timeZone.value,
4258
- days: [
4259
- monday,
4260
- tuesday,
4261
- wednesday,
4262
- thursday,
4263
- friday,
4264
- saturday,
4265
- sunday
4266
- ]
4279
+ ...note !== null ? { note } : {},
4280
+ days: days.value
4267
4281
  });
4268
4282
  }
4269
4283
  function parseSocialLinkId(value, path) {
@@ -4509,6 +4523,50 @@ function emptyPublicProfile() {
4509
4523
  };
4510
4524
  }
4511
4525
 
4526
+ //#endregion
4527
+ //#region ../core/src/opening-hours.ts
4528
+ const openingHoursWeekdayLabels = {
4529
+ monday: "Monday",
4530
+ tuesday: "Tuesday",
4531
+ wednesday: "Wednesday",
4532
+ thursday: "Thursday",
4533
+ friday: "Friday",
4534
+ saturday: "Saturday",
4535
+ sunday: "Sunday"
4536
+ };
4537
+ function formatOpeningHoursTime(value) {
4538
+ const time = parseLocalScheduleTime(value);
4539
+ return formatBookingCompactEnglishTime(toScheduledBookingDateTime({
4540
+ startsAt: new Date(Date.UTC(2e3, 0, 1, time.hour, time.minute)).toISOString(),
4541
+ timeZone: "UTC",
4542
+ locale: "en-GB"
4543
+ }));
4544
+ }
4545
+ function formatDayHours(day) {
4546
+ return day.kind === "closed" ? "Closed" : day.intervals.map((interval) => `${formatOpeningHoursTime(interval.opensAt)} to ${formatOpeningHoursTime(interval.closesAt)}`).join(", ");
4547
+ }
4548
+ function weekdayRangeLabel(weekdays) {
4549
+ const first = weekdays[0];
4550
+ const last = weekdays[weekdays.length - 1];
4551
+ if (!first || !last) return "";
4552
+ return first === last ? openingHoursWeekdayLabels[first] : `${openingHoursWeekdayLabels[first]} to ${openingHoursWeekdayLabels[last]}`;
4553
+ }
4554
+ /** Monday-first table rows; only adjacent days with identical ranges are grouped. */
4555
+ function formatOpeningHoursRows(hours) {
4556
+ return (hours?.days ?? []).reduce((rows, day) => {
4557
+ const text = formatDayHours(day);
4558
+ const previous = rows[rows.length - 1];
4559
+ const weekdays = previous?.kind === day.kind && previous.hours === text ? [...previous.weekdays, day.weekday] : [day.weekday];
4560
+ const row = {
4561
+ kind: day.kind,
4562
+ weekdays,
4563
+ label: weekdayRangeLabel(weekdays),
4564
+ hours: text
4565
+ };
4566
+ return weekdays.length > 1 ? [...rows.slice(0, -1), row] : [...rows, row];
4567
+ }, []);
4568
+ }
4569
+
4512
4570
  //#endregion
4513
4571
  //#region ../core/src/public-experience.ts
4514
4572
  const PUBLIC_EXPERIENCES = ["website", "hosted_booking"];
@@ -8419,4 +8477,4 @@ function resolvePublicSiteVisibility(input) {
8419
8477
  }
8420
8478
 
8421
8479
  //#endregion
8422
- export { compareLocalScheduleDates as $, parseCustomerId as $t, DEFAULT_MAILING_LIST_SUCCESS_MESSAGE as A, unsafeAsSafeDownloadFilename as An, formatEventPricing as At, isPresent as B, ok as Bn, mapReadonlyNonEmptyArray as Bt, stableJsonStringify as C, unsafeAsOccurrenceId as Cn, omitZeroAmountFutureRows as Ct, parseMailingListSignedSourceToken as D, unsafeAsPositiveSeconds as Dn, deriveTotalTicketQuantity as Dt, parseMailingListContentVersionId as E, unsafeAsPositiveByteCount as En, resolveFlexibleBalanceInitialPaymentCents as Et, DEFAULT_MAILING_LIST_TARGETING as F, unsafeAsStorageBucketName as Fn, publicEventPricingType as Ft, formatDateRange as G, toNonNegativeCents as Gt, toLocationCoordinates as H, parseNonNegativeCents as Ht, planMailingListChoicePresentation as I, unsafeAsStoragePath as In, resolveExactOrFreePriceDisplay as It, formatTime as J, formatCurrencyAmount as Jt, formatDateTime as K, unsafeAsNonNegativeCents as Kt, isCanonicalRichTextDoc as L, unsafeAsUploadSessionId as Ln, resolvePricingOptionsPriceDisplay as Lt, parseFooterCompositionV1 as M, unsafeAsSiteId as Mn, publicEventPricingCurrency as Mt, footerNavigationLayouts as N, unsafeAsSiteScopedStoragePath as Nn, publicEventPricingDisplay as Nt, parseMailingListRuntimeContext as O, unsafeAsPricingOptionId as On, parseEventPageSurfaceSubject as Ot, parseMailingListPlacementTargeting as P, unsafeAsStaffMemberId as Pn, publicEventPricingOptions as Pt, buildBookingUtcDateWindow as Q, parseApiKeyId as Qt, parsePublicContactDetails as R, unsafeAsUserId as Rn, fromArray as Rt, parseManagementKey as S, unsafeAsMediaAssetId as Sn, getBookingInstalmentProtectedDepositAmountCents as St, parseMailingListBlockId as T, unsafeAsPassId as Tn, resolveFlexibleBalanceDueAt as Tt, selectCategoryView as U, parsePositiveCents as Ut, normalizeLocationAddressText as V, isNonNegativeWholeCents as Vt, formatDate as W, toCents as Wt, inferSiteDateLocale as X, assertNever as Xt, formatTimeRange as Y, parseCurrencyCode as Yt, resolveBookingDisplayContext as Z, formatDurationUnitLabel as Zt, orderedLiveRunSessions as _, unsafeAsEntitlementId as _n, isSettleableOrderInstalmentPlanStatus as _t, canonicalizeConfiguredBookingVerticalConfig as a, parsePageId as an, localScheduleTimePattern as at, createSecret as b, unsafeAsEventSeriesId as bn, getBookingInstalmentDepositRefundability as bt, resolveSiteVerticalBookingConfig as c, parseSiteTermsVersionId as cn, resolveBookingBusinessTimeZone as ct, ORDINARY_EVENT_PRESET_VALUES as d, unsafeAsBookingRequirementId as dn, toScheduledBookingDateTime as dt, parseDatedOfferingCapacityHoldAuditRef as en, formatLocalScheduleDate as et, SURFACE_EVENT_PRESET_VALUES as f, unsafeAsBookingSessionId as fn, toUtcIsoDateTimeString as ft, nextLiveRunSessionStartMs as g, unsafeAsDetectedMimeType as gn, isSettleableFlexibleBalanceContractStatus as gt, CANCELLED_SESSION_STATUS as h, unsafeAsDemoCapability as hn, isLiveOrderInstalmentPlanStatus as ht, areConfiguredBookingVerticalConfigsEqual as i, parseMembershipId as in, getLocalScheduleTime as it, parseMailingListProviderScope as j, unsafeAsSiteFontId as jn, isPublicEventPricingOptionDisplayable as jt, assessMailingListTargeting as k, unsafeAsProductId as kn, formatBookingPriceDisplay as kt, DEFAULT_EVENT_TYPE_PRESETS as l, parseUserId as ln, resolveBookingTimeZoneId as lt, publicReadFreshnessSeconds as m, unsafeAsDeclaredMimeType as mn, validateBookingPaymentOptionKinds as mt, EVENT_PRESET_VOCABULARY as n, parseEventSeriesId as nn, getBookingLocalDateKey as nt, parseVerticalId as o, parseRetiredCourseId as on, parseBookingLocalDate as ot, WHOLE_SERIES_EVENT_PRESET_VALUES as p, unsafeAsCheckoutLineId as pn, parseBookingTimeZone as pt, formatDateTimeRange as q, unsafeAsPositiveCents as qt, NAVIGATION_LOCATIONS as r, parseMediaAssetId as rn, getLocalScheduleDate as rt, parseVerticalPresetId as s, parseSiteId as sn, parseUtcIsoDateTimeString as st, resolveEventCatalogue as t, parseDatedOfferingCapacityHoldId as tn, formatLocalScheduleTime as tt, EVENT_PRESET_VALUES as u, unsafeAsAppointmentResourceId as un, toBookingTimeZone as ut, resolveWholeSeriesBookingPhase as v, unsafeAsEventInstanceId as vn, addIntervalPreservingMonthAnchor as vt, slugify as w, unsafeAsOriginalFilename as wn, splitAmountWithRemainderInFirst as wt, exposeSecret as x, unsafeAsFileChecksumSha256 as xn, getBookingInstalmentPlanIntervalCount as xt, resolveWholeSeriesRunLifecycle as y, unsafeAsEventOfferingId as yn, clampConfiguredAmount as yt, assertAllowedPublicUrl as z, err as zn, mapNonEmptyArray as zt };
8480
+ export { resolveBookingDisplayContext as $, assertNever as $t, DEFAULT_MAILING_LIST_SUCCESS_MESSAGE as A, unsafeAsPositiveSeconds as An, deriveTotalTicketQuantity as At, parseWeeklyOpeningHours as B, unsafeAsUploadSessionId as Bn, resolvePricingOptionsPriceDisplay as Bt, stableJsonStringify as C, unsafeAsEventSeriesId as Cn, getBookingInstalmentDepositRefundability as Ct, parseMailingListSignedSourceToken as D, unsafeAsOriginalFilename as Dn, splitAmountWithRemainderInFirst as Dt, parseMailingListContentVersionId as E, unsafeAsOccurrenceId as En, omitZeroAmountFutureRows as Et, DEFAULT_MAILING_LIST_TARGETING as F, unsafeAsSiteId as Fn, publicEventPricingCurrency as Ft, selectCategoryView as G, parseNonNegativeCents as Gt, isPresent as H, err as Hn, mapNonEmptyArray as Ht, planMailingListChoicePresentation as I, unsafeAsSiteScopedStoragePath as In, publicEventPricingDisplay as It, formatDateTime as J, toNonNegativeCents as Jt, formatDate as K, parsePositiveCents as Kt, isCanonicalRichTextDoc as L, unsafeAsStaffMemberId as Ln, publicEventPricingOptions as Lt, parseFooterCompositionV1 as M, unsafeAsProductId as Mn, formatBookingPriceDisplay as Mt, footerNavigationLayouts as N, unsafeAsSafeDownloadFilename as Nn, formatEventPricing as Nt, parseMailingListRuntimeContext as O, unsafeAsPassId as On, resolveFlexibleBalanceDueAt as Ot, parseMailingListPlacementTargeting as P, unsafeAsSiteFontId as Pn, isPublicEventPricingOptionDisplayable as Pt, inferSiteDateLocale as Q, parseCurrencyCode as Qt, formatOpeningHoursRows as R, unsafeAsStorageBucketName as Rn, publicEventPricingType as Rt, parseManagementKey as S, unsafeAsEventOfferingId as Sn, clampConfiguredAmount as St, parseMailingListBlockId as T, unsafeAsMediaAssetId as Tn, getBookingInstalmentProtectedDepositAmountCents as Tt, normalizeLocationAddressText as U, ok as Un, mapReadonlyNonEmptyArray as Ut, assertAllowedPublicUrl as V, unsafeAsUserId as Vn, fromArray as Vt, toLocationCoordinates as W, isNonNegativeWholeCents as Wt, formatTime as X, unsafeAsPositiveCents as Xt, formatDateTimeRange as Y, unsafeAsNonNegativeCents as Yt, formatTimeRange as Z, formatCurrencyAmount as Zt, orderedLiveRunSessions as _, unsafeAsDeclaredMimeType as _n, validateBookingPaymentOptionKinds as _t, canonicalizeConfiguredBookingVerticalConfig as a, parseEventSeriesId as an, getLocalScheduleDate as at, createSecret as b, unsafeAsEntitlementId as bn, isSettleableOrderInstalmentPlanStatus as bt, resolveSiteVerticalBookingConfig as c, parsePageId as cn, parseBookingLocalDate as ct, ORDINARY_EVENT_PRESET_VALUES as d, parseSiteTermsVersionId as dn, resolveBookingBusinessTimeZone as dt, formatDurationUnitLabel as en, buildBookingUtcDateWindow as et, SURFACE_EVENT_PRESET_VALUES as f, parseUserId as fn, resolveBookingTimeZoneId as ft, nextLiveRunSessionStartMs as g, unsafeAsCheckoutLineId as gn, parseBookingTimeZone as gt, CANCELLED_SESSION_STATUS as h, unsafeAsBookingSessionId as hn, toUtcIsoDateTimeString as ht, areConfiguredBookingVerticalConfigsEqual as i, parseDatedOfferingCapacityHoldId as in, getBookingLocalDateKey as it, parseMailingListProviderScope as j, unsafeAsPricingOptionId as jn, parseEventPageSurfaceSubject as jt, assessMailingListTargeting as k, unsafeAsPositiveByteCount as kn, resolveFlexibleBalanceInitialPaymentCents as kt, DEFAULT_EVENT_TYPE_PRESETS as l, parseRetiredCourseId as ln, parseLocalScheduleTime as lt, publicReadFreshnessSeconds as m, unsafeAsBookingRequirementId as mn, toScheduledBookingDateTime as mt, EVENT_PRESET_VOCABULARY as n, parseCustomerId as nn, formatLocalScheduleDate as nt, parseVerticalId as o, parseMediaAssetId as on, getLocalScheduleTime as ot, WHOLE_SERIES_EVENT_PRESET_VALUES as p, unsafeAsAppointmentResourceId as pn, toBookingTimeZone as pt, formatDateRange as q, toCents as qt, NAVIGATION_LOCATIONS as r, parseDatedOfferingCapacityHoldAuditRef as rn, formatLocalScheduleTime as rt, parseVerticalPresetId as s, parseMembershipId as sn, localScheduleTimePattern as st, resolveEventCatalogue as t, parseApiKeyId as tn, compareLocalScheduleDates as tt, EVENT_PRESET_VALUES as u, parseSiteId as un, parseUtcIsoDateTimeString as ut, resolveWholeSeriesBookingPhase as v, unsafeAsDemoCapability as vn, isLiveOrderInstalmentPlanStatus as vt, slugify as w, unsafeAsFileChecksumSha256 as wn, getBookingInstalmentPlanIntervalCount as wt, exposeSecret as x, unsafeAsEventInstanceId as xn, addIntervalPreservingMonthAnchor as xt, resolveWholeSeriesRunLifecycle as y, unsafeAsDetectedMimeType as yn, isSettleableFlexibleBalanceContractStatus as yt, parsePublicContactDetails as z, unsafeAsStoragePath as zn, resolveExactOrFreePriceDisplay as zt };
package/dist/testing.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import "./sdk-event-upsert-BqjzK2zT.mjs";
3
- import "./src-zzwJUef5.mjs";
4
- import { An as createOutput, Ft as applyPushConfigPlan, H as syncLocalMediaForPush, L as calculateEntryDiffs, Rt as preparePushConfigTarget, U as syncLocalMediaForPull, o as executeEntryCommandPlanAsSyncResult, pt as writeMediaManifest, rt as readEntries, t as compileEntryPushCommands } from "./entryCommands-CoGu0G2R.mjs";
5
- import "./load-config-j58KSqxl.mjs";
2
+ import "./sdk-event-upsert-zWw5VolM.mjs";
3
+ import "./src-ZACBG29u.mjs";
4
+ import { Bt as preparePushConfigTarget, G as syncLocalMediaForPull, Lt as applyPushConfigPlan, Mn as createOutput, W as syncLocalMediaForPush, at as readEntries, ht as writeMediaManifest, o as executeEntryCommandPlanAsSyncResult, t as compileEntryPushCommands, z as calculateEntryDiffs } from "./entryCommands-BGVgMNMw.mjs";
5
+ import "./load-config-BV9Ig2CH.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.22.0",
3
+ "version": "0.22.2",
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-j58KSqxl.mjs";
3
-
4
- export { loadConfigFile };