24 lines
944 B
TypeScript
24 lines
944 B
TypeScript
function requiredEnv(name: string): string {
|
|
const value = process.env[name];
|
|
if (!value) {
|
|
throw new Error(`${name} is required`);
|
|
}
|
|
return value;
|
|
}
|
|
|
|
// Environment-only knobs. Per-storyboard tuning (aspect, fps, bitrate,
|
|
// voice, prompts, brand…) lives on the Storyboard object itself. See
|
|
// src/storyboard.ts.
|
|
|
|
export const APP_URL = requiredEnv('APP_URL');
|
|
export const DASHBOARD_PATH = '/dashboard';
|
|
|
|
// Per-target storage state. render.sh sets AUTH_STATE_FILE to auth.local.json
|
|
// or auth.prod.json so a stale local token can't be reused against prod.
|
|
export const AUTH_STATE_PATH = process.env.AUTH_STATE_FILE ?? 'auth.json';
|
|
export const OUTPUT_DIR = 'output';
|
|
|
|
// Frames of head-room kept in front of sceneStart when trimming. Shared by
|
|
// the video trim and the narration manifest so cue offsets line up with the
|
|
// trimmed timeline. Not tuned per storyboard: same lead-in for any cut.
|
|
export const LEAD_IN_S = 0.12;
|