const VAR_PATTERN = /\$\{([A-Za-z_][A-Za-z0-9_]*)(:-([^}]*))?\}/g; export function interpolateEnv( raw: string, env: Record ): string { return raw.replace(VAR_PATTERN, (_match, name: string, hasDefault: string | undefined, fallback: string | undefined) => { const value = env[name]; if (value !== undefined) return value; if (hasDefault !== undefined) return fallback ?? ""; throw new Error(`Missing environment variable "${name}" referenced in config.yml`); }); }