polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
100 lines • 2.89 kB
TypeScript
export interface AccountConfig {
name: string;
appId: string;
appSecret: string;
userId?: string;
environment?: 'development' | 'production' | 'test' | 'custom';
baseUrl?: string;
createdAt: string;
updatedAt: string;
}
export interface AccountsStore {
version: string;
accounts: Record<string, AccountConfig>;
defaultAccount?: string;
metadata: {
createdAt: string;
updatedAt: string;
lastBackup?: string;
keySource?: 'environment' | 'generated';
};
}
export declare const ENVIRONMENT_BASE_URLS: {
readonly development: "https://api-dev.polyv.net";
readonly production: "https://api.polyv.net";
readonly test: "https://develop-3-api.polyv.net";
};
export type Environment = keyof typeof ENVIRONMENT_BASE_URLS | 'custom';
export declare const AccountConfigValidation: {
readonly name: {
readonly required: true;
readonly pattern: RegExp;
readonly maxLength: 50;
readonly minLength: 1;
};
readonly appId: {
readonly required: true;
readonly pattern: RegExp;
readonly minLength: 8;
readonly maxLength: 32;
};
readonly appSecret: {
readonly required: true;
readonly minLength: 16;
readonly maxLength: 128;
};
readonly environment: {
readonly required: false;
readonly validValues: readonly ["development", "production", "test", "custom"];
};
readonly baseUrl: {
readonly required: false;
readonly pattern: RegExp;
readonly maxLength: 200;
};
};
export interface AccountOperationResult {
success: boolean;
message: string;
account?: AccountConfig;
}
export interface AccountListOptions {
output?: 'table' | 'json';
detailed?: boolean;
}
export interface AccountDisplayInfo {
name: string;
appId: string;
userId?: string;
environment?: 'development' | 'production' | 'test' | 'custom';
baseUrl?: string;
createdAt: string;
updatedAt: string;
}
export interface EncryptedAccountConfig extends Omit<AccountConfig, 'appSecret'> {
appSecret: string;
}
export interface EncryptionMetadata {
algorithm: string;
iv: string;
authTag: string;
}
export interface StoredAccountConfig extends AccountConfig {
encryptionMeta?: EncryptionMetadata;
}
export interface SecureEncryptedData {
algorithm: 'aes-256-gcm';
iv: string;
authTag: string;
encrypted: string;
}
export interface SecurityContext {
encryptionEnabled: boolean;
keySource: 'environment' | 'generated';
configVersion: string;
lastSecurityCheck: Date;
permissionsValid: boolean;
}
export declare function getAccountBaseUrl(account: AccountConfig): string;
export declare function getEnvironmentLabel(account: AccountConfig): string;
//# sourceMappingURL=account.types.d.ts.map