docker-pilot
Version:
A powerful, scalable Docker CLI library for managing containerized applications of any size
1,002 lines • 36.4 kB
TypeScript
/**
* Type definitions for Docker Pilot
*/
import { z } from 'zod';
export type SupportedLanguage = 'en' | 'pt-br';
export declare const ServiceConfigSchema: z.ZodObject<{
port: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
path: z.ZodNullable<z.ZodOptional<z.ZodString>>;
description: z.ZodOptional<z.ZodString>;
healthCheck: z.ZodDefault<z.ZodBoolean>;
backupEnabled: z.ZodDefault<z.ZodBoolean>;
environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
volumes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
depends_on: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
networks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
restart: z.ZodDefault<z.ZodEnum<["no", "always", "on-failure", "unless-stopped"]>>;
scale: z.ZodDefault<z.ZodNumber>;
cpu_limit: z.ZodOptional<z.ZodString>;
memory_limit: z.ZodOptional<z.ZodString>;
detected: z.ZodOptional<z.ZodBoolean>;
build: z.ZodOptional<z.ZodObject<{
context: z.ZodString;
dockerfile: z.ZodOptional<z.ZodString>;
args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
target: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
context: string;
dockerfile?: string | undefined;
args?: Record<string, string> | undefined;
target?: string | undefined;
}, {
context: string;
dockerfile?: string | undefined;
args?: Record<string, string> | undefined;
target?: string | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
healthCheck: boolean;
backupEnabled: boolean;
restart: "no" | "always" | "on-failure" | "unless-stopped";
scale: number;
port?: number | null | undefined;
path?: string | null | undefined;
description?: string | undefined;
environment?: Record<string, string> | undefined;
volumes?: string[] | undefined;
depends_on?: string[] | undefined;
networks?: string[] | undefined;
cpu_limit?: string | undefined;
memory_limit?: string | undefined;
detected?: boolean | undefined;
build?: {
context: string;
dockerfile?: string | undefined;
args?: Record<string, string> | undefined;
target?: string | undefined;
} | undefined;
}, {
port?: number | null | undefined;
path?: string | null | undefined;
description?: string | undefined;
healthCheck?: boolean | undefined;
backupEnabled?: boolean | undefined;
environment?: Record<string, string> | undefined;
volumes?: string[] | undefined;
depends_on?: string[] | undefined;
networks?: string[] | undefined;
restart?: "no" | "always" | "on-failure" | "unless-stopped" | undefined;
scale?: number | undefined;
cpu_limit?: string | undefined;
memory_limit?: string | undefined;
detected?: boolean | undefined;
build?: {
context: string;
dockerfile?: string | undefined;
args?: Record<string, string> | undefined;
target?: string | undefined;
} | undefined;
}>;
export type ServiceConfig = z.infer<typeof ServiceConfigSchema>;
export declare const CLIConfigSchema: z.ZodObject<{
version: z.ZodDefault<z.ZodString>;
welcomeMessage: z.ZodDefault<z.ZodString>;
goodbyeMessage: z.ZodDefault<z.ZodString>;
interactiveMode: z.ZodDefault<z.ZodBoolean>;
colorOutput: z.ZodDefault<z.ZodBoolean>;
verboseLogging: z.ZodDefault<z.ZodBoolean>;
confirmDestructiveActions: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
version: string;
welcomeMessage: string;
goodbyeMessage: string;
interactiveMode: boolean;
colorOutput: boolean;
verboseLogging: boolean;
confirmDestructiveActions: boolean;
}, {
version?: string | undefined;
welcomeMessage?: string | undefined;
goodbyeMessage?: string | undefined;
interactiveMode?: boolean | undefined;
colorOutput?: boolean | undefined;
verboseLogging?: boolean | undefined;
confirmDestructiveActions?: boolean | undefined;
}>;
export type CLIConfig = z.infer<typeof CLIConfigSchema>;
export declare const BackupServiceConfigSchema: z.ZodObject<{
command: z.ZodString;
filename: z.ZodString;
preBackupHook: z.ZodOptional<z.ZodString>;
postBackupHook: z.ZodOptional<z.ZodString>;
compression: z.ZodDefault<z.ZodBoolean>;
encryption: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
command: string;
filename: string;
compression: boolean;
encryption: boolean;
preBackupHook?: string | undefined;
postBackupHook?: string | undefined;
}, {
command: string;
filename: string;
preBackupHook?: string | undefined;
postBackupHook?: string | undefined;
compression?: boolean | undefined;
encryption?: boolean | undefined;
}>;
export declare const BackupConfigSchema: z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
directory: z.ZodDefault<z.ZodString>;
retention: z.ZodDefault<z.ZodNumber>;
schedule: z.ZodOptional<z.ZodString>;
services: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
command: z.ZodString;
filename: z.ZodString;
preBackupHook: z.ZodOptional<z.ZodString>;
postBackupHook: z.ZodOptional<z.ZodString>;
compression: z.ZodDefault<z.ZodBoolean>;
encryption: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
command: string;
filename: string;
compression: boolean;
encryption: boolean;
preBackupHook?: string | undefined;
postBackupHook?: string | undefined;
}, {
command: string;
filename: string;
preBackupHook?: string | undefined;
postBackupHook?: string | undefined;
compression?: boolean | undefined;
encryption?: boolean | undefined;
}>>>;
cloud: z.ZodOptional<z.ZodObject<{
provider: z.ZodOptional<z.ZodEnum<["aws", "gcp", "azure"]>>;
bucket: z.ZodOptional<z.ZodString>;
region: z.ZodOptional<z.ZodString>;
credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
provider?: "aws" | "gcp" | "azure" | undefined;
bucket?: string | undefined;
region?: string | undefined;
credentials?: Record<string, string> | undefined;
}, {
provider?: "aws" | "gcp" | "azure" | undefined;
bucket?: string | undefined;
region?: string | undefined;
credentials?: Record<string, string> | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
directory: string;
retention: number;
services: Record<string, {
command: string;
filename: string;
compression: boolean;
encryption: boolean;
preBackupHook?: string | undefined;
postBackupHook?: string | undefined;
}>;
schedule?: string | undefined;
cloud?: {
provider?: "aws" | "gcp" | "azure" | undefined;
bucket?: string | undefined;
region?: string | undefined;
credentials?: Record<string, string> | undefined;
} | undefined;
}, {
enabled?: boolean | undefined;
directory?: string | undefined;
retention?: number | undefined;
schedule?: string | undefined;
services?: Record<string, {
command: string;
filename: string;
preBackupHook?: string | undefined;
postBackupHook?: string | undefined;
compression?: boolean | undefined;
encryption?: boolean | undefined;
}> | undefined;
cloud?: {
provider?: "aws" | "gcp" | "azure" | undefined;
bucket?: string | undefined;
region?: string | undefined;
credentials?: Record<string, string> | undefined;
} | undefined;
}>;
export type BackupConfig = z.infer<typeof BackupConfigSchema>;
export type BackupServiceConfig = z.infer<typeof BackupServiceConfigSchema>;
export declare const MonitoringConfigSchema: z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
refreshInterval: z.ZodDefault<z.ZodNumber>;
services: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
urls: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
alerts: z.ZodDefault<z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
email: z.ZodOptional<z.ZodString>;
webhook: z.ZodOptional<z.ZodString>;
thresholds: z.ZodDefault<z.ZodObject<{
cpu: z.ZodDefault<z.ZodNumber>;
memory: z.ZodDefault<z.ZodNumber>;
disk: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
cpu: number;
memory: number;
disk: number;
}, {
cpu?: number | undefined;
memory?: number | undefined;
disk?: number | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
thresholds: {
cpu: number;
memory: number;
disk: number;
};
email?: string | undefined;
webhook?: string | undefined;
}, {
enabled?: boolean | undefined;
email?: string | undefined;
webhook?: string | undefined;
thresholds?: {
cpu?: number | undefined;
memory?: number | undefined;
disk?: number | undefined;
} | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
services: string[];
refreshInterval: number;
urls: Record<string, string>;
alerts: {
enabled: boolean;
thresholds: {
cpu: number;
memory: number;
disk: number;
};
email?: string | undefined;
webhook?: string | undefined;
};
}, {
enabled?: boolean | undefined;
services?: string[] | undefined;
refreshInterval?: number | undefined;
urls?: Record<string, string> | undefined;
alerts?: {
enabled?: boolean | undefined;
email?: string | undefined;
webhook?: string | undefined;
thresholds?: {
cpu?: number | undefined;
memory?: number | undefined;
disk?: number | undefined;
} | undefined;
} | undefined;
}>;
export type MonitoringConfig = z.infer<typeof MonitoringConfigSchema>;
export declare const DevelopmentConfigSchema: z.ZodObject<{
hotReload: z.ZodDefault<z.ZodBoolean>;
debugMode: z.ZodDefault<z.ZodBoolean>;
logLevel: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
autoMigrate: z.ZodDefault<z.ZodBoolean>;
seedData: z.ZodDefault<z.ZodBoolean>;
testMode: z.ZodDefault<z.ZodBoolean>;
watchFiles: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
environment: z.ZodDefault<z.ZodEnum<["development", "staging", "production"]>>;
}, "strip", z.ZodTypeAny, {
environment: "development" | "staging" | "production";
hotReload: boolean;
debugMode: boolean;
logLevel: "debug" | "info" | "warn" | "error";
autoMigrate: boolean;
seedData: boolean;
testMode: boolean;
watchFiles: string[];
}, {
environment?: "development" | "staging" | "production" | undefined;
hotReload?: boolean | undefined;
debugMode?: boolean | undefined;
logLevel?: "debug" | "info" | "warn" | "error" | undefined;
autoMigrate?: boolean | undefined;
seedData?: boolean | undefined;
testMode?: boolean | undefined;
watchFiles?: string[] | undefined;
}>;
export type DevelopmentConfig = z.infer<typeof DevelopmentConfigSchema>;
export declare const DockerPilotConfigSchema: z.ZodObject<{
projectName: z.ZodString;
dockerCompose: z.ZodDefault<z.ZodString>;
configVersion: z.ZodDefault<z.ZodString>;
primaryComposeFile: z.ZodOptional<z.ZodString>;
services: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
port: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
path: z.ZodNullable<z.ZodOptional<z.ZodString>>;
description: z.ZodOptional<z.ZodString>;
healthCheck: z.ZodDefault<z.ZodBoolean>;
backupEnabled: z.ZodDefault<z.ZodBoolean>;
environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
volumes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
depends_on: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
networks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
restart: z.ZodDefault<z.ZodEnum<["no", "always", "on-failure", "unless-stopped"]>>;
scale: z.ZodDefault<z.ZodNumber>;
cpu_limit: z.ZodOptional<z.ZodString>;
memory_limit: z.ZodOptional<z.ZodString>;
detected: z.ZodOptional<z.ZodBoolean>;
build: z.ZodOptional<z.ZodObject<{
context: z.ZodString;
dockerfile: z.ZodOptional<z.ZodString>;
args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
target: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
context: string;
dockerfile?: string | undefined;
args?: Record<string, string> | undefined;
target?: string | undefined;
}, {
context: string;
dockerfile?: string | undefined;
args?: Record<string, string> | undefined;
target?: string | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
healthCheck: boolean;
backupEnabled: boolean;
restart: "no" | "always" | "on-failure" | "unless-stopped";
scale: number;
port?: number | null | undefined;
path?: string | null | undefined;
description?: string | undefined;
environment?: Record<string, string> | undefined;
volumes?: string[] | undefined;
depends_on?: string[] | undefined;
networks?: string[] | undefined;
cpu_limit?: string | undefined;
memory_limit?: string | undefined;
detected?: boolean | undefined;
build?: {
context: string;
dockerfile?: string | undefined;
args?: Record<string, string> | undefined;
target?: string | undefined;
} | undefined;
}, {
port?: number | null | undefined;
path?: string | null | undefined;
description?: string | undefined;
healthCheck?: boolean | undefined;
backupEnabled?: boolean | undefined;
environment?: Record<string, string> | undefined;
volumes?: string[] | undefined;
depends_on?: string[] | undefined;
networks?: string[] | undefined;
restart?: "no" | "always" | "on-failure" | "unless-stopped" | undefined;
scale?: number | undefined;
cpu_limit?: string | undefined;
memory_limit?: string | undefined;
detected?: boolean | undefined;
build?: {
context: string;
dockerfile?: string | undefined;
args?: Record<string, string> | undefined;
target?: string | undefined;
} | undefined;
}>>>;
plugins: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
cli: z.ZodDefault<z.ZodObject<{
version: z.ZodDefault<z.ZodString>;
welcomeMessage: z.ZodDefault<z.ZodString>;
goodbyeMessage: z.ZodDefault<z.ZodString>;
interactiveMode: z.ZodDefault<z.ZodBoolean>;
colorOutput: z.ZodDefault<z.ZodBoolean>;
verboseLogging: z.ZodDefault<z.ZodBoolean>;
confirmDestructiveActions: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
version: string;
welcomeMessage: string;
goodbyeMessage: string;
interactiveMode: boolean;
colorOutput: boolean;
verboseLogging: boolean;
confirmDestructiveActions: boolean;
}, {
version?: string | undefined;
welcomeMessage?: string | undefined;
goodbyeMessage?: string | undefined;
interactiveMode?: boolean | undefined;
colorOutput?: boolean | undefined;
verboseLogging?: boolean | undefined;
confirmDestructiveActions?: boolean | undefined;
}>>;
backup: z.ZodDefault<z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
directory: z.ZodDefault<z.ZodString>;
retention: z.ZodDefault<z.ZodNumber>;
schedule: z.ZodOptional<z.ZodString>;
services: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
command: z.ZodString;
filename: z.ZodString;
preBackupHook: z.ZodOptional<z.ZodString>;
postBackupHook: z.ZodOptional<z.ZodString>;
compression: z.ZodDefault<z.ZodBoolean>;
encryption: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
command: string;
filename: string;
compression: boolean;
encryption: boolean;
preBackupHook?: string | undefined;
postBackupHook?: string | undefined;
}, {
command: string;
filename: string;
preBackupHook?: string | undefined;
postBackupHook?: string | undefined;
compression?: boolean | undefined;
encryption?: boolean | undefined;
}>>>;
cloud: z.ZodOptional<z.ZodObject<{
provider: z.ZodOptional<z.ZodEnum<["aws", "gcp", "azure"]>>;
bucket: z.ZodOptional<z.ZodString>;
region: z.ZodOptional<z.ZodString>;
credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
provider?: "aws" | "gcp" | "azure" | undefined;
bucket?: string | undefined;
region?: string | undefined;
credentials?: Record<string, string> | undefined;
}, {
provider?: "aws" | "gcp" | "azure" | undefined;
bucket?: string | undefined;
region?: string | undefined;
credentials?: Record<string, string> | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
directory: string;
retention: number;
services: Record<string, {
command: string;
filename: string;
compression: boolean;
encryption: boolean;
preBackupHook?: string | undefined;
postBackupHook?: string | undefined;
}>;
schedule?: string | undefined;
cloud?: {
provider?: "aws" | "gcp" | "azure" | undefined;
bucket?: string | undefined;
region?: string | undefined;
credentials?: Record<string, string> | undefined;
} | undefined;
}, {
enabled?: boolean | undefined;
directory?: string | undefined;
retention?: number | undefined;
schedule?: string | undefined;
services?: Record<string, {
command: string;
filename: string;
preBackupHook?: string | undefined;
postBackupHook?: string | undefined;
compression?: boolean | undefined;
encryption?: boolean | undefined;
}> | undefined;
cloud?: {
provider?: "aws" | "gcp" | "azure" | undefined;
bucket?: string | undefined;
region?: string | undefined;
credentials?: Record<string, string> | undefined;
} | undefined;
}>>;
monitoring: z.ZodDefault<z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
refreshInterval: z.ZodDefault<z.ZodNumber>;
services: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
urls: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
alerts: z.ZodDefault<z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
email: z.ZodOptional<z.ZodString>;
webhook: z.ZodOptional<z.ZodString>;
thresholds: z.ZodDefault<z.ZodObject<{
cpu: z.ZodDefault<z.ZodNumber>;
memory: z.ZodDefault<z.ZodNumber>;
disk: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
cpu: number;
memory: number;
disk: number;
}, {
cpu?: number | undefined;
memory?: number | undefined;
disk?: number | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
thresholds: {
cpu: number;
memory: number;
disk: number;
};
email?: string | undefined;
webhook?: string | undefined;
}, {
enabled?: boolean | undefined;
email?: string | undefined;
webhook?: string | undefined;
thresholds?: {
cpu?: number | undefined;
memory?: number | undefined;
disk?: number | undefined;
} | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
services: string[];
refreshInterval: number;
urls: Record<string, string>;
alerts: {
enabled: boolean;
thresholds: {
cpu: number;
memory: number;
disk: number;
};
email?: string | undefined;
webhook?: string | undefined;
};
}, {
enabled?: boolean | undefined;
services?: string[] | undefined;
refreshInterval?: number | undefined;
urls?: Record<string, string> | undefined;
alerts?: {
enabled?: boolean | undefined;
email?: string | undefined;
webhook?: string | undefined;
thresholds?: {
cpu?: number | undefined;
memory?: number | undefined;
disk?: number | undefined;
} | undefined;
} | undefined;
}>>;
development: z.ZodDefault<z.ZodObject<{
hotReload: z.ZodDefault<z.ZodBoolean>;
debugMode: z.ZodDefault<z.ZodBoolean>;
logLevel: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
autoMigrate: z.ZodDefault<z.ZodBoolean>;
seedData: z.ZodDefault<z.ZodBoolean>;
testMode: z.ZodDefault<z.ZodBoolean>;
watchFiles: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
environment: z.ZodDefault<z.ZodEnum<["development", "staging", "production"]>>;
}, "strip", z.ZodTypeAny, {
environment: "development" | "staging" | "production";
hotReload: boolean;
debugMode: boolean;
logLevel: "debug" | "info" | "warn" | "error";
autoMigrate: boolean;
seedData: boolean;
testMode: boolean;
watchFiles: string[];
}, {
environment?: "development" | "staging" | "production" | undefined;
hotReload?: boolean | undefined;
debugMode?: boolean | undefined;
logLevel?: "debug" | "info" | "warn" | "error" | undefined;
autoMigrate?: boolean | undefined;
seedData?: boolean | undefined;
testMode?: boolean | undefined;
watchFiles?: string[] | undefined;
}>>;
networks: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
driver: z.ZodOptional<z.ZodString>;
external: z.ZodDefault<z.ZodBoolean>;
ipam: z.ZodOptional<z.ZodObject<{
driver: z.ZodOptional<z.ZodString>;
config: z.ZodOptional<z.ZodArray<z.ZodObject<{
subnet: z.ZodString;
gateway: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
subnet: string;
gateway?: string | undefined;
}, {
subnet: string;
gateway?: string | undefined;
}>, "many">>;
}, "strip", z.ZodTypeAny, {
driver?: string | undefined;
config?: {
subnet: string;
gateway?: string | undefined;
}[] | undefined;
}, {
driver?: string | undefined;
config?: {
subnet: string;
gateway?: string | undefined;
}[] | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
external: boolean;
driver?: string | undefined;
ipam?: {
driver?: string | undefined;
config?: {
subnet: string;
gateway?: string | undefined;
}[] | undefined;
} | undefined;
}, {
driver?: string | undefined;
external?: boolean | undefined;
ipam?: {
driver?: string | undefined;
config?: {
subnet: string;
gateway?: string | undefined;
}[] | undefined;
} | undefined;
}>>>;
volumes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
driver: z.ZodOptional<z.ZodString>;
external: z.ZodDefault<z.ZodBoolean>;
driver_opts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
external: boolean;
driver?: string | undefined;
driver_opts?: Record<string, string> | undefined;
}, {
driver?: string | undefined;
external?: boolean | undefined;
driver_opts?: Record<string, string> | undefined;
}>>>;
language: z.ZodDefault<z.ZodEnum<["en", "pt-br"]>>;
}, "strip", z.ZodTypeAny, {
volumes: Record<string, {
external: boolean;
driver?: string | undefined;
driver_opts?: Record<string, string> | undefined;
}>;
networks: Record<string, {
external: boolean;
driver?: string | undefined;
ipam?: {
driver?: string | undefined;
config?: {
subnet: string;
gateway?: string | undefined;
}[] | undefined;
} | undefined;
}>;
services: Record<string, {
healthCheck: boolean;
backupEnabled: boolean;
restart: "no" | "always" | "on-failure" | "unless-stopped";
scale: number;
port?: number | null | undefined;
path?: string | null | undefined;
description?: string | undefined;
environment?: Record<string, string> | undefined;
volumes?: string[] | undefined;
depends_on?: string[] | undefined;
networks?: string[] | undefined;
cpu_limit?: string | undefined;
memory_limit?: string | undefined;
detected?: boolean | undefined;
build?: {
context: string;
dockerfile?: string | undefined;
args?: Record<string, string> | undefined;
target?: string | undefined;
} | undefined;
}>;
development: {
environment: "development" | "staging" | "production";
hotReload: boolean;
debugMode: boolean;
logLevel: "debug" | "info" | "warn" | "error";
autoMigrate: boolean;
seedData: boolean;
testMode: boolean;
watchFiles: string[];
};
projectName: string;
dockerCompose: string;
configVersion: string;
plugins: string[];
cli: {
version: string;
welcomeMessage: string;
goodbyeMessage: string;
interactiveMode: boolean;
colorOutput: boolean;
verboseLogging: boolean;
confirmDestructiveActions: boolean;
};
backup: {
enabled: boolean;
directory: string;
retention: number;
services: Record<string, {
command: string;
filename: string;
compression: boolean;
encryption: boolean;
preBackupHook?: string | undefined;
postBackupHook?: string | undefined;
}>;
schedule?: string | undefined;
cloud?: {
provider?: "aws" | "gcp" | "azure" | undefined;
bucket?: string | undefined;
region?: string | undefined;
credentials?: Record<string, string> | undefined;
} | undefined;
};
monitoring: {
enabled: boolean;
services: string[];
refreshInterval: number;
urls: Record<string, string>;
alerts: {
enabled: boolean;
thresholds: {
cpu: number;
memory: number;
disk: number;
};
email?: string | undefined;
webhook?: string | undefined;
};
};
language: "en" | "pt-br";
primaryComposeFile?: string | undefined;
}, {
projectName: string;
volumes?: Record<string, {
driver?: string | undefined;
external?: boolean | undefined;
driver_opts?: Record<string, string> | undefined;
}> | undefined;
networks?: Record<string, {
driver?: string | undefined;
external?: boolean | undefined;
ipam?: {
driver?: string | undefined;
config?: {
subnet: string;
gateway?: string | undefined;
}[] | undefined;
} | undefined;
}> | undefined;
services?: Record<string, {
port?: number | null | undefined;
path?: string | null | undefined;
description?: string | undefined;
healthCheck?: boolean | undefined;
backupEnabled?: boolean | undefined;
environment?: Record<string, string> | undefined;
volumes?: string[] | undefined;
depends_on?: string[] | undefined;
networks?: string[] | undefined;
restart?: "no" | "always" | "on-failure" | "unless-stopped" | undefined;
scale?: number | undefined;
cpu_limit?: string | undefined;
memory_limit?: string | undefined;
detected?: boolean | undefined;
build?: {
context: string;
dockerfile?: string | undefined;
args?: Record<string, string> | undefined;
target?: string | undefined;
} | undefined;
}> | undefined;
development?: {
environment?: "development" | "staging" | "production" | undefined;
hotReload?: boolean | undefined;
debugMode?: boolean | undefined;
logLevel?: "debug" | "info" | "warn" | "error" | undefined;
autoMigrate?: boolean | undefined;
seedData?: boolean | undefined;
testMode?: boolean | undefined;
watchFiles?: string[] | undefined;
} | undefined;
dockerCompose?: string | undefined;
configVersion?: string | undefined;
primaryComposeFile?: string | undefined;
plugins?: string[] | undefined;
cli?: {
version?: string | undefined;
welcomeMessage?: string | undefined;
goodbyeMessage?: string | undefined;
interactiveMode?: boolean | undefined;
colorOutput?: boolean | undefined;
verboseLogging?: boolean | undefined;
confirmDestructiveActions?: boolean | undefined;
} | undefined;
backup?: {
enabled?: boolean | undefined;
directory?: string | undefined;
retention?: number | undefined;
schedule?: string | undefined;
services?: Record<string, {
command: string;
filename: string;
preBackupHook?: string | undefined;
postBackupHook?: string | undefined;
compression?: boolean | undefined;
encryption?: boolean | undefined;
}> | undefined;
cloud?: {
provider?: "aws" | "gcp" | "azure" | undefined;
bucket?: string | undefined;
region?: string | undefined;
credentials?: Record<string, string> | undefined;
} | undefined;
} | undefined;
monitoring?: {
enabled?: boolean | undefined;
services?: string[] | undefined;
refreshInterval?: number | undefined;
urls?: Record<string, string> | undefined;
alerts?: {
enabled?: boolean | undefined;
email?: string | undefined;
webhook?: string | undefined;
thresholds?: {
cpu?: number | undefined;
memory?: number | undefined;
disk?: number | undefined;
} | undefined;
} | undefined;
} | undefined;
language?: "en" | "pt-br" | undefined;
}>;
export type DockerPilotConfig = z.infer<typeof DockerPilotConfigSchema>;
export interface CommandContext {
config: DockerPilotConfig;
logger: any;
workingDirectory: string;
composeFile?: string;
}
export interface CommandOptions {
silent?: boolean;
dryRun?: boolean;
interactive?: boolean;
timeout?: number;
}
export interface CommandResult {
success: boolean;
output?: string;
error?: string;
exitCode?: number;
executionTime?: number;
}
export interface ServiceStatus {
name: string;
state: 'running' | 'stopped' | 'starting' | 'stopping' | 'error' | 'unknown';
health: 'healthy' | 'unhealthy' | 'starting' | 'none';
uptime?: string;
ports?: string[];
image?: string;
containerId?: string;
cpuUsage?: number;
memoryUsage?: number;
networkIO?: {
rx: string;
tx: string;
};
blockIO?: {
read: string;
write: string;
};
}
export interface ProjectStatus {
projectName: string;
totalServices: number;
runningServices: number;
healthyServices: number;
services: ServiceStatus[];
networks: string[];
volumes: string[];
lastUpdated: Date;
}
export interface PluginMetadata {
name: string;
version: string;
description: string;
author: string;
homepage?: string;
repository?: string;
keywords?: string[];
}
export interface PluginHooks {
beforeCommand?: (command: string, args: string[]) => Promise<void> | void;
afterCommand?: (command: string, args: string[], result: CommandResult) => Promise<void> | void;
beforeServiceStart?: (serviceName: string) => Promise<void> | void;
afterServiceStart?: (serviceName: string) => Promise<void> | void;
beforeServiceStop?: (serviceName: string) => Promise<void> | void;
afterServiceStop?: (serviceName: string) => Promise<void> | void;
onError?: (error: Error, context: any) => Promise<void> | void;
}
export interface Plugin {
metadata: PluginMetadata;
hooks?: PluginHooks;
commands?: Record<string, (args: string[], options: CommandOptions) => Promise<CommandResult>>;
initialize?: (context: CommandContext) => Promise<void> | void;
cleanup?: () => Promise<void> | void;
}
export type EventType = 'command:start' | 'command:end' | 'command:error' | 'service:start' | 'service:stop' | 'service:restart' | 'service:error' | 'config:loaded' | 'config:saved' | 'plugin:loaded' | 'plugin:error';
export interface DockerPilotEvent {
type: EventType;
timestamp: Date;
data: any;
source: string;
}
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
export interface LogEntry {
level: LogLevel;
message: string;
timestamp: Date;
context?: any;
source?: string;
}
export interface DockerComposeService {
image?: string;
build?: string | {
context: string;
dockerfile?: string;
args?: Record<string, string>;
target?: string;
};
ports?: string[];
volumes?: string[];
environment?: Record<string, string> | string[];
depends_on?: string[] | Record<string, {
condition: string;
}>;
networks?: string[];
restart?: string;
healthcheck?: {
test: string | string[];
interval?: string;
timeout?: string;
retries?: number;
start_period?: string;
};
}
export interface DockerComposeConfig {
version?: string;
services: Record<string, DockerComposeService>;
networks?: Record<string, any>;
volumes?: Record<string, any>;
}
export declare class DockerPilotError extends Error {
code: string;
context?: any | undefined;
constructor(message: string, code: string, context?: any | undefined);
}
export declare class ConfigurationError extends DockerPilotError {
constructor(message: string, context?: any);
}
export declare class CommandExecutionError extends DockerPilotError {
constructor(message: string, context?: any);
}
export declare class ServiceError extends DockerPilotError {
constructor(message: string, context?: any);
}
export declare class PluginError extends DockerPilotError {
constructor(message: string, context?: any);
}
//# sourceMappingURL=index.d.ts.map