riverbankcms 0.2.2 → 0.4.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.
package/README.md CHANGED
@@ -19,3 +19,17 @@ Safety notes: `--verify-noop` is an applied-write check and cannot be combined
19
19
  with `--dry-run`. Remote writes in JSON output or a non-interactive terminal
20
20
  must include `--yes`; otherwise the CLI refuses before loading or mutating the
21
21
  target.
22
+
23
+ ## Media conflict behavior
24
+
25
+ Media replacement flags have been removed. `--overwrite-media` and
26
+ `--force-update-asset` are rejected during option parsing. When the same bytes
27
+ or identifier already belong to another asset, keep the existing asset, choose
28
+ a new identifier, or delete and upload the asset again in the dashboard.
29
+
30
+ This is a breaking CLI change and must be included in the next breaking-version
31
+ release. Deploy the identifier backfill migration before deploying application
32
+ code that requires canonical identifiers on every media row. If the migration
33
+ reports unexpected rows in a local, staging, or restored database, assign those
34
+ listed assets canonical, site-unique identifiers and rerun the migration; do not
35
+ bypass its guard.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import "../src-XEJYAKbQ.mjs";
3
- import "../sdk-event-upsert-BCZUdIrL.mjs";
4
- import { t as eventUpsertInputSchema } from "../eventUpsertInputSchema-CzMX5BZI.mjs";
2
+ import "../src-BRAF1Dee.mjs";
3
+ import "../sdk-event-upsert-C6zsxDcf.mjs";
4
+ import { t as eventUpsertInputSchema } from "../eventUpsertInputSchema-Dg60PKJI.mjs";
5
5
 
6
6
  //#region src/acceptance/matrix-builders.ts
7
7
  const workflow = (scenario, stepId) => ({
@@ -56,6 +56,13 @@ const writeFileStep = (id, path, content) => ({
56
56
  path,
57
57
  content: `${JSON.stringify(content, null, 2)}\n`
58
58
  });
59
+ const assertJsonFileStep = (id, path, jsonPath, expected) => ({
60
+ kind: "assert_json_file",
61
+ id,
62
+ path,
63
+ jsonPath,
64
+ expected
65
+ });
59
66
  const richText = (text) => ({
60
67
  type: "doc",
61
68
  content: [{
@@ -245,6 +252,55 @@ const navigationScenario = {
245
252
  ]
246
253
  };
247
254
 
255
+ //#endregion
256
+ //#region src/acceptance/booking-settings-scenario.ts
257
+ const bookingSettingsScenario = {
258
+ id: "booking-settings-lifecycle",
259
+ steps: [
260
+ commandStep("apply", "settings booking configure", [
261
+ "settings",
262
+ "booking",
263
+ "configure",
264
+ "--vertical",
265
+ "fitness_pt",
266
+ "--preset",
267
+ "fitness_pt.group_training",
268
+ "--env=local",
269
+ "--yes",
270
+ "--json"
271
+ ]),
272
+ commandStep("unchanged", "settings booking configure", [
273
+ "settings",
274
+ "booking",
275
+ "configure",
276
+ "--vertical",
277
+ "fitness_pt",
278
+ "--preset",
279
+ "fitness_pt.group_training",
280
+ "--env=local",
281
+ "--yes",
282
+ "--json"
283
+ ], { jsonAssertions: [{
284
+ jsonPath: [
285
+ "environments",
286
+ "0",
287
+ "effect",
288
+ "kind"
289
+ ],
290
+ expected: "unchanged"
291
+ }] }),
292
+ commandStep("pull-settings", "pull", [
293
+ "pull",
294
+ "settings",
295
+ "--env=local",
296
+ "--yes",
297
+ "--json"
298
+ ]),
299
+ assertJsonFileStep("assert-vertical", "content/settings.json", ["verticalConfig", "verticalId"], "fitness_pt"),
300
+ assertJsonFileStep("assert-presets", "content/settings.json", ["verticalConfig", "selectedPresetIds"], ["fitness_pt.group_training"])
301
+ ]
302
+ };
303
+
248
304
  //#endregion
249
305
  //#region src/acceptance/matrix.ts
250
306
  const entryScenario = {
@@ -692,6 +748,7 @@ const acceptanceTuples = [
692
748
  "--env=both",
693
749
  "--json"
694
750
  ])],
751
+ ["settings booking configure", workflow(bookingSettingsScenario, "apply")],
695
752
  ["login", scratchExecute([
696
753
  "login",
697
754
  "--account-env=local",