riverbankcms 0.8.0 → 0.10.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.
@@ -377,11 +377,13 @@ For theme and footer pushes, stale resolution updates only the metadata timestam
377
377
  "homepageId": null,
378
378
  "seoDefaults": null,
379
379
  "logoIdentifier": "positive-play-primary-logo",
380
+ "logoDarkBackgroundIdentifier": "positive-play-logo-light",
380
381
  "faviconIdentifier": "positive-play-primary-logo"
381
382
  }
382
383
  ```
383
384
 
384
385
  - Use `logoIdentifier` / `faviconIdentifier` to manage the site logo and favicon from the repo
386
+ - `logoDarkBackgroundIdentifier` is optional: a version of the logo designed for dark backgrounds. The default header and footer use it on dark surfaces; without it, `logoIdentifier` is used everywhere
385
387
  - The identifiers should match files in `content/media/`
386
388
  - `riverbankcms push settings` reuses the normal local-media upload flow before updating site settings, without pushing unrelated content
387
389
  - `riverbankcms pull settings` warns and omits a branding field if the current CMS asset cannot be represented by an identifier yet
@@ -216,6 +216,7 @@ Use `content/settings.json` as the repo-managed source of truth for branding:
216
216
  "homepageId": null,
217
217
  "seoDefaults": null,
218
218
  "logoIdentifier": "positive-play-primary-logo",
219
+ "logoDarkBackgroundIdentifier": "positive-play-logo-light",
219
220
  "faviconIdentifier": "positive-play-primary-logo"
220
221
  }
221
222
  ```
@@ -230,7 +231,8 @@ Recommended workflow:
230
231
  Notes:
231
232
 
232
233
  - `riverbankcms push settings` uploads missing branding files through the normal local-media sync path before updating site settings, without pushing unrelated content
233
- - `riverbankcms pull settings` warns and omits `logoIdentifier` / `faviconIdentifier` if the current CMS branding asset has no media identifier yet
234
+ - `logoDarkBackgroundIdentifier` is optional. It names a version of your logo designed for dark backgrounds; the default header and footer draw it when they sit on a dark surface, and fall back to `logoIdentifier` when it is absent. Custom headers and footers receive both as `logoVariants`
235
+ - `riverbankcms pull settings` warns and omits `logoIdentifier` / `logoDarkBackgroundIdentifier` / `faviconIdentifier` if the current CMS branding asset has no media identifier yet
234
236
  - Dashboard branding edits and CLI pushes both update the same site settings row, so treat them as last-write-wins and pull before pushing after dashboard-side edits
235
237
 
236
238
  ### Configure the booking vertical
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { a as classifySdkEventBookingOffer, i as classifySdkEventSchedule, r as sdkEventUpsertOptionalFieldSchemas } from "./sdk-event-upsert-Bf6wAl4s.mjs";
3
- import { l as EVENT_PRESET_VALUES } from "./src-B8fOSKJ6.mjs";
2
+ import { a as classifySdkEventBookingOffer, i as classifySdkEventSchedule, r as sdkEventUpsertOptionalFieldSchemas } from "./sdk-event-upsert-DhdlT2ko.mjs";
3
+ import { l as EVENT_PRESET_VALUES } from "./src-DIAVNRwo.mjs";
4
4
  import { z } from "zod";
5
5
 
6
6
  //#region ../blocks/src/lib/typeGuards.ts
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { t as loadConfigFile } from "./load-config-Bzc6Qo24.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.8.0";
10
+ var version = "0.10.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.8.0" === "string" ? "0.8.0" : version;
86
+ const CLI_VERSION = typeof "0.10.0" === "string" ? "0.10.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,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { Mt as asAppearancePresetId, S as eventBookingOfferIntentSchema, V as buttonStyleSelectionSchema, c as stableStringify, n as sdkEventOccurrenceInputSchema, ut as themeSchema } from "./sdk-event-upsert-Bf6wAl4s.mjs";
3
- import { A as parseFooterCompositionV1, At as unsafeAsPositiveSeconds, Bt as unsafeAsUserId, Ct as unsafeAsEventOfferingId, Dt as unsafeAsOccurrenceId, Et as unsafeAsMediaAssetId, Ft as unsafeAsSiteScopedStoragePath, Ht as ok, K as parseUtcIsoDateTimeString, Lt as unsafeAsStorageBucketName, Mt as unsafeAsSafeDownloadFilename, Nt as unsafeAsSiteFontId, Ot as unsafeAsOriginalFilename, Pt as unsafeAsSiteId, Rt as unsafeAsStoragePath, St as unsafeAsEntitlementId, Tt as unsafeAsFileChecksumSha256, Vt as err, _t as unsafeAsBookingRequirementId, a as parseVerticalId, jt as unsafeAsProductId, kt as unsafeAsPositiveByteCount, l as EVENT_PRESET_VALUES, lt as assertNever, mt as parseSiteId, o as parseVerticalPresetId, ot as fromArray, r as canonicalizeConfiguredBookingVerticalConfig, s as resolveSiteVerticalBookingConfig, st as mapNonEmptyArray, v as exposeSecret, vt as unsafeAsBookingSessionId, wt as unsafeAsEventSeriesId, xt as unsafeAsDetectedMimeType, yt as unsafeAsDeclaredMimeType, zt as unsafeAsUploadSessionId } from "./src-B8fOSKJ6.mjs";
2
+ import { Lt as asAppearancePresetId, S as eventBookingOfferIntentSchema, W as buttonStyleSelectionSchema, c as stableStringify, mt as themeSchema, n as sdkEventOccurrenceInputSchema } from "./sdk-event-upsert-DhdlT2ko.mjs";
3
+ import { A as parseFooterCompositionV1, At as unsafeAsPositiveByteCount, Bt as unsafeAsUploadSessionId, Ct as unsafeAsEntitlementId, Dt as unsafeAsMediaAssetId, Et as unsafeAsFileChecksumSha256, Ft as unsafeAsSiteId, Ht as err, It as unsafeAsSiteScopedStoragePath, Mt as unsafeAsProductId, Nt as unsafeAsSafeDownloadFilename, Ot as unsafeAsOccurrenceId, Pt as unsafeAsSiteFontId, Rt as unsafeAsStorageBucketName, St as unsafeAsDetectedMimeType, Tt as unsafeAsEventSeriesId, Ut as ok, Vt as unsafeAsUserId, a as parseVerticalId, bt as unsafeAsDeclaredMimeType, ct as mapNonEmptyArray, ht as parseSiteId, i as canonicalizeConfiguredBookingVerticalConfig, jt as unsafeAsPositiveSeconds, kt as unsafeAsOriginalFilename, l as EVENT_PRESET_VALUES, o as parseVerticalPresetId, q as parseUtcIsoDateTimeString, s as resolveSiteVerticalBookingConfig, st as fromArray, ut as assertNever, v as exposeSecret, vt as unsafeAsBookingRequirementId, wt as unsafeAsEventOfferingId, yt as unsafeAsBookingSessionId, zt as unsafeAsStoragePath } from "./src-DIAVNRwo.mjs";
4
4
  import * as fs from "fs/promises";
5
5
  import * as path$1 from "path";
6
6
  import { z } from "zod";
@@ -603,6 +603,7 @@ const sdkSettingsUpdateSchema = z.object({
603
603
  homepageId: z.string().nullable().optional(),
604
604
  seoDefaults: sdkSeoDefaultsSchema.nullable().optional(),
605
605
  logoIdentifier: z.string().min(1).nullable().optional(),
606
+ logoDarkBackgroundIdentifier: z.string().min(1).nullable().optional(),
606
607
  faviconIdentifier: z.string().min(1).nullable().optional()
607
608
  }).strict();
608
609
  const sdkPullSettingsSchema = sdkSettingsUpdateSchema.extend({
@@ -7460,13 +7461,18 @@ const SETTINGS_BASE_FIELDS = [
7460
7461
  "homepageId",
7461
7462
  "seoDefaults"
7462
7463
  ];
7463
- const SETTINGS_BRANDING_FIELDS = ["logoIdentifier", "faviconIdentifier"];
7464
+ const SETTINGS_BRANDING_FIELDS = [
7465
+ "logoIdentifier",
7466
+ "logoDarkBackgroundIdentifier",
7467
+ "faviconIdentifier"
7468
+ ];
7464
7469
  const SETTINGS_FIELDS = [...SETTINGS_BASE_FIELDS, ...SETTINGS_BRANDING_FIELDS];
7465
7470
  /** Fields owned by content/settings.json. Booking configuration has its own
7466
7471
  * mutation operation and must never enter the generic settings update input. */
7467
7472
  const SETTINGS_FILE_FIELDS = [...SETTINGS_FIELDS, "verticalConfig"];
7468
7473
  const SETTINGS_BRANDING_LABELS = {
7469
7474
  logoIdentifier: "logo",
7475
+ logoDarkBackgroundIdentifier: "dark-background logo",
7470
7476
  faviconIdentifier: "favicon"
7471
7477
  };
7472
7478
  function hasOwnSettingsField(settings, field) {
@@ -7494,6 +7500,9 @@ function buildSettingsUpdateInput(settings) {
7494
7500
  case "logoIdentifier":
7495
7501
  update.logoIdentifier = settings.logoIdentifier;
7496
7502
  break;
7503
+ case "logoDarkBackgroundIdentifier":
7504
+ update.logoDarkBackgroundIdentifier = settings.logoDarkBackgroundIdentifier;
7505
+ break;
7497
7506
  case "faviconIdentifier":
7498
7507
  update.faviconIdentifier = settings.faviconIdentifier;
7499
7508
  break;
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { Ht as ok, Vt as err, mt as parseSiteId } from "./src-B8fOSKJ6.mjs";
2
+ import { Ht as err, Ut as ok, ht as parseSiteId } from "./src-DIAVNRwo.mjs";
3
3
  import { existsSync, readFileSync } from "node:fs";
4
4
  import { dirname, isAbsolute, join, parse, relative, resolve, sep } from "node:path";
5
5
  import { fileURLToPath } from "node:url";
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import "../src-B8fOSKJ6.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-DtQEnwCM.mjs";
2
+ import "../src-DIAVNRwo.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-C1Frmu6F.mjs";
4
4
 
5
5
  export { deriveGeneratedPackageRanges, deriveScaffoldLocalManifest, deriveScaffoldPlan, findPackageManifestPath, loadGeneratedPackageRanges, preflightScaffoldPlan, preflightScaffoldTargets, prepareScaffoldExecution, writeScaffoldFiles };