@contractspec/lib.video-gen 1.45.0 → 1.47.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.
Files changed (61) hide show
  1. package/README.md +37 -0
  2. package/dist/browser/docs/rendering.docblock.js +4 -4
  3. package/dist/browser/docs/video-gen.docblock.js +1 -1
  4. package/dist/browser/generators/index.js +601 -192
  5. package/dist/browser/generators/scene-planner.js +527 -23
  6. package/dist/browser/generators/script-generator.js +528 -18
  7. package/dist/browser/generators/video-generator.js +601 -191
  8. package/dist/browser/i18n/catalogs/en.js +160 -0
  9. package/dist/browser/i18n/catalogs/es.js +160 -0
  10. package/dist/browser/i18n/catalogs/fr.js +160 -0
  11. package/dist/browser/i18n/catalogs/index.js +462 -0
  12. package/dist/browser/i18n/index.js +534 -0
  13. package/dist/browser/i18n/keys.js +54 -0
  14. package/dist/browser/i18n/locale.js +21 -0
  15. package/dist/browser/i18n/messages.js +474 -0
  16. package/dist/browser/index.js +601 -192
  17. package/dist/docs/rendering.docblock.js +4 -4
  18. package/dist/docs/video-gen.docblock.js +1 -1
  19. package/dist/generators/index.d.ts +0 -2
  20. package/dist/generators/index.js +601 -192
  21. package/dist/generators/scene-planner.d.ts +2 -0
  22. package/dist/generators/scene-planner.js +527 -23
  23. package/dist/generators/script-generator.d.ts +2 -0
  24. package/dist/generators/script-generator.js +528 -18
  25. package/dist/generators/video-generator.d.ts +6 -5
  26. package/dist/generators/video-generator.js +601 -191
  27. package/dist/i18n/catalogs/en.d.ts +8 -0
  28. package/dist/i18n/catalogs/en.js +155 -0
  29. package/dist/i18n/catalogs/es.d.ts +6 -0
  30. package/dist/i18n/catalogs/es.js +155 -0
  31. package/dist/i18n/catalogs/fr.d.ts +6 -0
  32. package/dist/i18n/catalogs/fr.js +155 -0
  33. package/dist/i18n/catalogs/index.d.ts +8 -0
  34. package/dist/i18n/catalogs/index.js +457 -0
  35. package/dist/i18n/i18n.test.d.ts +1 -0
  36. package/dist/i18n/index.d.ts +22 -0
  37. package/dist/i18n/index.js +529 -0
  38. package/dist/i18n/keys.d.ts +116 -0
  39. package/dist/i18n/keys.js +49 -0
  40. package/dist/i18n/locale.d.ts +8 -0
  41. package/dist/i18n/locale.js +16 -0
  42. package/dist/i18n/messages.d.ts +14 -0
  43. package/dist/i18n/messages.js +469 -0
  44. package/dist/index.js +601 -192
  45. package/dist/node/docs/rendering.docblock.js +4 -4
  46. package/dist/node/docs/video-gen.docblock.js +1 -1
  47. package/dist/node/generators/index.js +601 -192
  48. package/dist/node/generators/scene-planner.js +527 -23
  49. package/dist/node/generators/script-generator.js +528 -18
  50. package/dist/node/generators/video-generator.js +601 -191
  51. package/dist/node/i18n/catalogs/en.js +155 -0
  52. package/dist/node/i18n/catalogs/es.js +155 -0
  53. package/dist/node/i18n/catalogs/fr.js +155 -0
  54. package/dist/node/i18n/catalogs/index.js +457 -0
  55. package/dist/node/i18n/index.js +529 -0
  56. package/dist/node/i18n/keys.js +49 -0
  57. package/dist/node/i18n/locale.js +16 -0
  58. package/dist/node/i18n/messages.js +469 -0
  59. package/dist/node/index.js +601 -192
  60. package/dist/types.d.ts +14 -3
  61. package/package.json +150 -7
package/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # @contractspec/lib.video-gen
2
+
3
+ Website: https://contractspec.io/
4
+
5
+ Programmatic video generation using Remotion. Follows the same generator pattern as `@contractspec/lib.content-gen` and consumes contracts from video provider integrations. All generators work deterministically by default -- LLM integration is optional and enhances output when available.
6
+
7
+ ## Modules
8
+
9
+ - **Types** -- `VideoBrief`, `VideoGeneratorOptions`, `GeneratedVideo`, `ScenePlan`, `PlannedScene`, plus re-exported contract types (`VideoProject`, `RenderConfig`, `VideoFormat`)
10
+ - **Design** -- Video-specific design tokens extending the design system: color tokens, motion/easing curves, typography scale (1920x1080), and layout safe zones with format variants (landscape/square/portrait)
11
+ - **Compositions** -- Remotion compositions for rendering video scenes:
12
+ - **Primitives**: `AnimatedText`, `BrandFrame`, `CodeBlock`, `ProgressBar`, `Terminal`, `SceneTransitionWrapper`
13
+ - **Full**: `ApiOverview` (spec to API surface visualization), `SocialClip` (marketing content, adaptive formats), `TerminalDemo` (CLI walkthrough)
14
+ - **Generators** -- `VideoGenerator` (main orchestrator), `ScenePlanner` (breaks briefs into scenes), `ScriptGenerator` (narration with professional/casual/technical styles)
15
+ - **Renderers** -- `LocalRenderer` wrapping `@remotion/renderer` with quality presets (draft/standard/high)
16
+ - **Player** -- `DemoPlayer` component for embedding in React apps via `@remotion/player`
17
+
18
+ Deterministic by default: every generator produces consistent output without an LLM. When an LLM is provided via the constructor, generators produce richer, more varied content. On LLM failure, the system falls back to deterministic output automatically.
19
+
20
+ ## Quickstart
21
+
22
+ ```typescript
23
+ import { VideoGenerator } from "@contractspec/lib.video-gen/generators";
24
+ import type { VideoBrief } from "@contractspec/lib.video-gen/types";
25
+
26
+ const generator = new VideoGenerator(); // no LLM needed
27
+
28
+ const brief: VideoBrief = {
29
+ title: "Ship APIs 10x Faster",
30
+ summary: "See how ContractSpec generates production-ready APIs from specs.",
31
+ format: "landscape",
32
+ };
33
+
34
+ const project = await generator.generate(brief);
35
+ ```
36
+
37
+ Compositions are pure React components -- same props always produce the same visual output, with frame-based timing and no side effects.
@@ -23,7 +23,7 @@ The rendering layer wraps \`@remotion/renderer\` for MP4/WebM output and \`@remo
23
23
 
24
24
  ## LocalRenderer
25
25
 
26
- Renders a \`VideoProject\` to a video file using the local Remotion renderer. Requires **Node.js** (not Bun-compatible).
26
+ Renders a \`VideoProject\` to a video file using the local Remotion renderer. Works with **Node.js** and **Bun** (via \`remotionb\`). Bun caveat: SSR scripts may not auto-quit (see [Remotion Bun docs](https://www.remotion.dev/docs/bun)).
27
27
 
28
28
  \`\`\`ts
29
29
  import { LocalRenderer } from "@contractspec/lib.video-gen/renderers/local";
@@ -45,7 +45,7 @@ result.fileSizeBytes; // file size
45
45
  result.dimensions; // { width: 1920, height: 1080 }
46
46
  \`\`\`
47
47
 
48
- > **Important**: Import \`LocalRenderer\` from the \`/renderers/local\` subpath, not from the main entry. It dynamically imports \`@remotion/bundler\` and \`@remotion/renderer\` which are Node.js-only.
48
+ > **Important**: Import \`LocalRenderer\` from the \`/renderers/local\` subpath, not from the main entry. It dynamically imports \`@remotion/bundler\` and \`@remotion/renderer\` to avoid bundling them in browser builds.
49
49
 
50
50
  ### Auto-Variants
51
51
 
@@ -167,7 +167,7 @@ The \`@contractspec/app.video-studio\` package provides a Remotion Studio entry
167
167
  bun run dev:video
168
168
 
169
169
  # Render a specific composition
170
- npx remotion render src/index.ts ApiOverview out/api-overview.mp4
170
+ bunx remotionb render src/index.ts ApiOverview out/api-overview.mp4
171
171
 
172
172
  # Render all compositions
173
173
  bun run render:all
@@ -187,7 +187,7 @@ All compositions run at 30fps.
187
187
 
188
188
  ## Guardrails
189
189
 
190
- - \`LocalRenderer\` requires Node.js -- do not attempt to use it in browser or Bun environments.
190
+ - \`LocalRenderer\` requires Node.js or Bun -- do not attempt to use it in browser environments. On Bun, SSR scripts may not auto-quit (see [Remotion Bun docs](https://www.remotion.dev/docs/bun)).
191
191
  - Import \`LocalRenderer\` from the \`/renderers/local\` subpath to avoid bundling \`@remotion/renderer\` in browser builds.
192
192
  - The \`remotion\` entry point (\`@contractspec/lib.video-gen/remotion\`) is a **side-effect module** that calls \`registerRoot()\`. Only import it from Remotion Studio or render scripts.
193
193
  - Use quality presets for consistency: \`draft\` for development, \`standard\` for CI, \`high\` for releases.
@@ -133,7 +133,7 @@ This matches the content-gen pattern: \`constructor({ llm? })\` -> \`generate(br
133
133
 
134
134
  - Compositions must be **deterministic**: same props = same visual output.
135
135
  - Design tokens bridge from \`@contractspec/lib.design-system\` -- do not duplicate brand values.
136
- - \`LocalRenderer\` requires Node.js (\`@remotion/renderer\` is not Bun-compatible).
136
+ - \`LocalRenderer\` works with Node.js and Bun. On Bun, SSR scripts may not auto-quit (see [Remotion Bun docs](https://www.remotion.dev/docs/bun)).
137
137
  - The \`remotion\` entry point is a side-effect module (calls \`registerRoot\`) -- import it only from Remotion Studio or render scripts.
138
138
  `
139
139
  }