@glissade/cli 0.43.0 → 0.43.1

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/dist/build.js CHANGED
Binary file
package/dist/cli.js CHANGED
@@ -24,7 +24,8 @@ const KNOWN_BOOLEAN_FLAGS = new Set([
24
24
  "bisect",
25
25
  "watch",
26
26
  "write",
27
- "keep-voice"
27
+ "keep-voice",
28
+ "help"
28
29
  ]);
29
30
  function parseArgs(argv) {
30
31
  const positional = [];
@@ -219,9 +220,18 @@ async function main() {
219
220
  }
220
221
  if (command === "build") {
221
222
  const { positional: bp, flags: bf } = parseArgs(rest);
223
+ if (bf.has("help")) {
224
+ process.stdout.write(`${USAGE}\n`);
225
+ return;
226
+ }
222
227
  const { buildCommand } = await import("./build.js").then((n) => n.t);
223
228
  const config = bf.get("config") || "glissade.config.ts";
224
229
  const explain = bf.has("explain");
230
+ if (bp.some((p) => /\.(ts|js|mjs|cjs)$/.test(p))) {
231
+ const { existsSync } = await import("node:fs");
232
+ const { resolve } = await import("node:path");
233
+ for (const p of bp) if (/\.(ts|js|mjs|cjs)$/.test(p) && existsSync(resolve(process.cwd(), p))) process.stderr.write(`note: '${p}' is a scene FILTER (substring match), not a config path — to point gs build at a config file, use --config ${p}\n`);
234
+ }
225
235
  try {
226
236
  const r = await buildCommand({
227
237
  config,
package/dist/config.d.ts CHANGED
@@ -5,6 +5,13 @@ import { c as MasterRunOptions } from "./master.js";
5
5
  interface ProjectConfig {
6
6
  /** scene module paths or globs (`episodes/**\/*.ts`), relative to the config file. */
7
7
  scenes: string[];
8
+ /**
9
+ * Exclude globs applied AFTER `scenes` expands — so a broad `episodes/**\/*.ts`
10
+ * doesn't sweep colocated `*.test.ts` (which `gs build` would try to load, importing
11
+ * vitest → a crash). A pattern with no `/` matches the basename at any depth
12
+ * (`*.test.ts`); a pattern with `/` matches the config-relative path (`_wip/**`).
13
+ */
14
+ ignore?: string[];
8
15
  /** output dir for rendered videos (default: alongside each scene as `<base>.mp4`). */
9
16
  out?: string;
10
17
  /**
@@ -34,6 +41,10 @@ interface ProjectConfig {
34
41
  sfx?: 'auto' | 'off';
35
42
  /** apply the committed publish gain at render ('auto' default). */
36
43
  loudness?: 'auto' | 'off';
44
+ /** §3.6 font gate: fail the render on a missing/fallback font instead of warn+proceed. */
45
+ strictFonts?: boolean;
46
+ /** allow OS-installed fonts (non-portable — a build that ships must register faces). */
47
+ allowSystemFonts?: boolean;
37
48
  };
38
49
  }
39
50
  /** The defaults that change a RENDER's output — folded into its staleness hash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glissade/cli",
3
- "version": "0.43.0",
3
+ "version": "0.43.1",
4
4
  "description": "glissade CLI: headless rendering via backend-skia (+ FFmpeg mux).",
5
5
  "license": "Apache-2.0",
6
6
  "engines": {
@@ -28,15 +28,15 @@
28
28
  "@napi-rs/canvas": "^0.1.65",
29
29
  "esbuild": "0.28.0",
30
30
  "jiti": "^2.4.2",
31
- "@glissade/backend-skia": "0.43.0",
32
- "@glissade/core": "0.43.0",
33
- "@glissade/interact": "0.43.0",
34
- "@glissade/lottie": "0.43.0",
35
- "@glissade/narrate": "0.43.0",
36
- "@glissade/player": "0.43.0",
37
- "@glissade/scene": "0.43.0",
38
- "@glissade/sfx": "0.43.0",
39
- "@glissade/svg": "0.43.0"
31
+ "@glissade/backend-skia": "0.43.1",
32
+ "@glissade/core": "0.43.1",
33
+ "@glissade/interact": "0.43.1",
34
+ "@glissade/lottie": "0.43.1",
35
+ "@glissade/narrate": "0.43.1",
36
+ "@glissade/player": "0.43.1",
37
+ "@glissade/scene": "0.43.1",
38
+ "@glissade/sfx": "0.43.1",
39
+ "@glissade/svg": "0.43.1"
40
40
  },
41
41
  "repository": {
42
42
  "type": "git",