spruthub-cli
Version:
CLI tool for managing Spruthub smart home devices
58 lines • 1.81 kB
TypeScript
export interface ScenarioData {
index: string;
name: string;
type: 'BLOCK' | 'LOGIC' | 'GLOBAL';
data: string;
[key: string]: any;
}
export interface CodeBlock {
type: string;
blockId: number;
code: string;
[key: string]: any;
}
export interface BlockScenarioData {
blockId: number;
targets: CodeBlock[];
[key: string]: any;
}
/**
* Escape JavaScript code for JSON string embedding
*/
export declare function escapeCodeForJSON(code: string): string;
/**
* Unescape JavaScript code from JSON string
*/
export declare function unescapeCodeFromJSON(code: string): string;
/**
* Validate that a JSON string is valid
*/
export declare function validateJSON(jsonString: string): boolean;
/**
* Extract code from a scenario to separate files
*/
export declare function extractScenarioCode(scenarioData: ScenarioData, scenarioDir: string): Promise<void>;
/**
* Validate scenario directory structure and data without injecting
*/
export declare function validateScenarioDirectory(scenarioDir: string): Promise<{
isValid: boolean;
error?: string;
}>;
/**
* Inject code from separate files back into scenario JSON
*/
export declare function injectScenarioCode(scenarioDir: string): Promise<ScenarioData>;
/**
* Check if a scenario directory has extracted code files
*/
export declare function hasExtractedCode(scenarioDir: string): Promise<boolean>;
/**
* Get scenario type from directory
*/
export declare function getScenarioType(scenarioDir: string): Promise<'BLOCK' | 'LOGIC' | 'GLOBAL' | null>;
/**
* Restore scenario directory to match the original remote data when push fails
*/
export declare function restoreFromRemoteData(scenarioDir: string, originalRemoteData: ScenarioData): Promise<void>;
//# sourceMappingURL=scenario-code.d.ts.map