@invisiblecities/sidequest-cqo
Version:
Configuration-agnostic TypeScript and ESLint orchestrator with real-time watch mode, SQLite persistence, and intelligent terminal detection
582 lines • 24.1 kB
TypeScript
/**
* @fileoverview Zod Validation Schemas
*
* Comprehensive validation schemas for external data boundaries.
* Provides runtime type safety for CLI arguments, external process outputs,
* configuration files, and environment variables.
*/
import { z } from "zod";
/**
* CLI Flags validation schema
* Validates all command-line flags to prevent injection attacks
*/
export declare const CLIFlagsSchema: z.ZodObject<{
help: z.ZodDefault<z.ZodBoolean>;
helpMarkdown: z.ZodDefault<z.ZodBoolean>;
helpQuick: z.ZodDefault<z.ZodBoolean>;
aiContext: z.ZodDefault<z.ZodBoolean>;
watch: z.ZodDefault<z.ZodBoolean>;
includeAny: z.ZodDefault<z.ZodBoolean>;
includeESLint: z.ZodDefault<z.ZodBoolean>;
eslintOnly: z.ZodDefault<z.ZodBoolean>;
archaeology: z.ZodDefault<z.ZodBoolean>;
includeArchaeology: z.ZodDefault<z.ZodBoolean>;
externalProject: z.ZodDefault<z.ZodBoolean>;
targetPath: z.ZodDefault<z.ZodString>;
verbose: z.ZodDefault<z.ZodBoolean>;
strict: z.ZodDefault<z.ZodBoolean>;
noCrossoverCheck: z.ZodDefault<z.ZodBoolean>;
failOnCrossover: z.ZodDefault<z.ZodBoolean>;
usePersistence: z.ZodDefault<z.ZodBoolean>;
showBurndown: z.ZodDefault<z.ZodBoolean>;
resetSession: z.ZodDefault<z.ZodBoolean>;
resumeSession: z.ZodDefault<z.ZodBoolean>;
debugTerminal: z.ZodDefault<z.ZodBoolean>;
debug: z.ZodDefault<z.ZodBoolean>;
dataDir: z.ZodDefault<z.ZodString>;
generatePRD: z.ZodDefault<z.ZodBoolean>;
installShortcuts: z.ZodDefault<z.ZodBoolean>;
configAction: z.ZodOptional<z.ZodString>;
}, "strict", z.ZodTypeAny, {
verbose: boolean;
archaeology: boolean;
targetPath: string;
help: boolean;
helpMarkdown: boolean;
helpQuick: boolean;
aiContext: boolean;
watch: boolean;
includeAny: boolean;
includeESLint: boolean;
eslintOnly: boolean;
includeArchaeology: boolean;
externalProject: boolean;
strict: boolean;
noCrossoverCheck: boolean;
failOnCrossover: boolean;
usePersistence: boolean;
showBurndown: boolean;
resetSession: boolean;
resumeSession: boolean;
debugTerminal: boolean;
debug: boolean;
dataDir: string;
generatePRD: boolean;
installShortcuts: boolean;
configAction?: string | undefined;
}, {
verbose?: boolean | undefined;
archaeology?: boolean | undefined;
targetPath?: string | undefined;
help?: boolean | undefined;
helpMarkdown?: boolean | undefined;
helpQuick?: boolean | undefined;
aiContext?: boolean | undefined;
watch?: boolean | undefined;
includeAny?: boolean | undefined;
includeESLint?: boolean | undefined;
eslintOnly?: boolean | undefined;
includeArchaeology?: boolean | undefined;
externalProject?: boolean | undefined;
strict?: boolean | undefined;
noCrossoverCheck?: boolean | undefined;
failOnCrossover?: boolean | undefined;
usePersistence?: boolean | undefined;
showBurndown?: boolean | undefined;
resetSession?: boolean | undefined;
resumeSession?: boolean | undefined;
debugTerminal?: boolean | undefined;
debug?: boolean | undefined;
dataDir?: string | undefined;
generatePRD?: boolean | undefined;
installShortcuts?: boolean | undefined;
configAction?: string | undefined;
}>;
export type ValidatedCLIFlags = z.infer<typeof CLIFlagsSchema>;
/**
* Environment variables validation schema
* Validates environment variables to prevent malicious injection
*/
export declare const EnvironmentSchema: z.ZodObject<{
CQO_DB_PATH: z.ZodOptional<z.ZodString>;
TERM_COLOR_MODE: z.ZodOptional<z.ZodEnum<["light", "dark", "auto"]>>;
NODE_ENV: z.ZodOptional<z.ZodEnum<["development", "test", "production"]>>;
DEBUG: z.ZodOptional<z.ZodString>;
CI: z.ZodOptional<z.ZodString>;
}, "strict", z.ZodTypeAny, {
NODE_ENV?: "test" | "development" | "production" | undefined;
CI?: string | undefined;
TERM_COLOR_MODE?: "dark" | "light" | "auto" | undefined;
DEBUG?: string | undefined;
CQO_DB_PATH?: string | undefined;
}, {
NODE_ENV?: "test" | "development" | "production" | undefined;
CI?: string | undefined;
TERM_COLOR_MODE?: "dark" | "light" | "auto" | undefined;
DEBUG?: string | undefined;
CQO_DB_PATH?: string | undefined;
}>;
export type ValidatedEnvironment = z.infer<typeof EnvironmentSchema>;
/**
* TypeScript configuration validation schema
* Validates tsconfig.json structure to prevent malicious configurations
*/
export declare const TSConfigSchema: z.ZodObject<{
compilerOptions: z.ZodOptional<z.ZodObject<{
strict: z.ZodOptional<z.ZodBoolean>;
exactOptionalPropertyTypes: z.ZodOptional<z.ZodBoolean>;
noUncheckedIndexedAccess: z.ZodOptional<z.ZodBoolean>;
noImplicitAny: z.ZodOptional<z.ZodBoolean>;
target: z.ZodOptional<z.ZodString>;
module: z.ZodOptional<z.ZodString>;
lib: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
outDir: z.ZodOptional<z.ZodString>;
rootDir: z.ZodOptional<z.ZodString>;
baseUrl: z.ZodOptional<z.ZodString>;
paths: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
esModuleInterop: z.ZodOptional<z.ZodBoolean>;
allowSyntheticDefaultImports: z.ZodOptional<z.ZodBoolean>;
moduleResolution: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
strict?: boolean | undefined;
exactOptionalPropertyTypes?: boolean | undefined;
noUncheckedIndexedAccess?: boolean | undefined;
noImplicitAny?: boolean | undefined;
target?: string | undefined;
module?: string | undefined;
lib?: string[] | undefined;
outDir?: string | undefined;
rootDir?: string | undefined;
baseUrl?: string | undefined;
paths?: Record<string, string[]> | undefined;
esModuleInterop?: boolean | undefined;
allowSyntheticDefaultImports?: boolean | undefined;
moduleResolution?: string | undefined;
}, {
strict?: boolean | undefined;
exactOptionalPropertyTypes?: boolean | undefined;
noUncheckedIndexedAccess?: boolean | undefined;
noImplicitAny?: boolean | undefined;
target?: string | undefined;
module?: string | undefined;
lib?: string[] | undefined;
outDir?: string | undefined;
rootDir?: string | undefined;
baseUrl?: string | undefined;
paths?: Record<string, string[]> | undefined;
esModuleInterop?: boolean | undefined;
allowSyntheticDefaultImports?: boolean | undefined;
moduleResolution?: string | undefined;
}>>;
include: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
extends: z.ZodOptional<z.ZodString>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
compilerOptions: z.ZodOptional<z.ZodObject<{
strict: z.ZodOptional<z.ZodBoolean>;
exactOptionalPropertyTypes: z.ZodOptional<z.ZodBoolean>;
noUncheckedIndexedAccess: z.ZodOptional<z.ZodBoolean>;
noImplicitAny: z.ZodOptional<z.ZodBoolean>;
target: z.ZodOptional<z.ZodString>;
module: z.ZodOptional<z.ZodString>;
lib: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
outDir: z.ZodOptional<z.ZodString>;
rootDir: z.ZodOptional<z.ZodString>;
baseUrl: z.ZodOptional<z.ZodString>;
paths: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
esModuleInterop: z.ZodOptional<z.ZodBoolean>;
allowSyntheticDefaultImports: z.ZodOptional<z.ZodBoolean>;
moduleResolution: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
strict?: boolean | undefined;
exactOptionalPropertyTypes?: boolean | undefined;
noUncheckedIndexedAccess?: boolean | undefined;
noImplicitAny?: boolean | undefined;
target?: string | undefined;
module?: string | undefined;
lib?: string[] | undefined;
outDir?: string | undefined;
rootDir?: string | undefined;
baseUrl?: string | undefined;
paths?: Record<string, string[]> | undefined;
esModuleInterop?: boolean | undefined;
allowSyntheticDefaultImports?: boolean | undefined;
moduleResolution?: string | undefined;
}, {
strict?: boolean | undefined;
exactOptionalPropertyTypes?: boolean | undefined;
noUncheckedIndexedAccess?: boolean | undefined;
noImplicitAny?: boolean | undefined;
target?: string | undefined;
module?: string | undefined;
lib?: string[] | undefined;
outDir?: string | undefined;
rootDir?: string | undefined;
baseUrl?: string | undefined;
paths?: Record<string, string[]> | undefined;
esModuleInterop?: boolean | undefined;
allowSyntheticDefaultImports?: boolean | undefined;
moduleResolution?: string | undefined;
}>>;
include: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
extends: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
compilerOptions: z.ZodOptional<z.ZodObject<{
strict: z.ZodOptional<z.ZodBoolean>;
exactOptionalPropertyTypes: z.ZodOptional<z.ZodBoolean>;
noUncheckedIndexedAccess: z.ZodOptional<z.ZodBoolean>;
noImplicitAny: z.ZodOptional<z.ZodBoolean>;
target: z.ZodOptional<z.ZodString>;
module: z.ZodOptional<z.ZodString>;
lib: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
outDir: z.ZodOptional<z.ZodString>;
rootDir: z.ZodOptional<z.ZodString>;
baseUrl: z.ZodOptional<z.ZodString>;
paths: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
esModuleInterop: z.ZodOptional<z.ZodBoolean>;
allowSyntheticDefaultImports: z.ZodOptional<z.ZodBoolean>;
moduleResolution: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
strict?: boolean | undefined;
exactOptionalPropertyTypes?: boolean | undefined;
noUncheckedIndexedAccess?: boolean | undefined;
noImplicitAny?: boolean | undefined;
target?: string | undefined;
module?: string | undefined;
lib?: string[] | undefined;
outDir?: string | undefined;
rootDir?: string | undefined;
baseUrl?: string | undefined;
paths?: Record<string, string[]> | undefined;
esModuleInterop?: boolean | undefined;
allowSyntheticDefaultImports?: boolean | undefined;
moduleResolution?: string | undefined;
}, {
strict?: boolean | undefined;
exactOptionalPropertyTypes?: boolean | undefined;
noUncheckedIndexedAccess?: boolean | undefined;
noImplicitAny?: boolean | undefined;
target?: string | undefined;
module?: string | undefined;
lib?: string[] | undefined;
outDir?: string | undefined;
rootDir?: string | undefined;
baseUrl?: string | undefined;
paths?: Record<string, string[]> | undefined;
esModuleInterop?: boolean | undefined;
allowSyntheticDefaultImports?: boolean | undefined;
moduleResolution?: string | undefined;
}>>;
include: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
extends: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">>;
export type ValidatedTSConfig = z.infer<typeof TSConfigSchema>;
/**
* Complete ESLint output validation schema
* Validates ESLint JSON output with inline schema definitions
*/
export declare const ESLintOutputSchema: z.ZodArray<z.ZodObject<{
filePath: z.ZodString;
messages: z.ZodArray<z.ZodObject<{
ruleId: z.ZodNullable<z.ZodString>;
severity: z.ZodNumber;
message: z.ZodString;
line: z.ZodNumber;
column: z.ZodOptional<z.ZodNumber>;
nodeType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
messageId: z.ZodOptional<z.ZodString>;
endLine: z.ZodOptional<z.ZodNumber>;
endColumn: z.ZodOptional<z.ZodNumber>;
fix: z.ZodOptional<z.ZodObject<{
range: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
text: z.ZodString;
}, "strip", z.ZodTypeAny, {
text: string;
range: [number, number];
}, {
text: string;
range: [number, number];
}>>;
suggestions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
suppressions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
ruleId: z.ZodNullable<z.ZodString>;
severity: z.ZodNumber;
message: z.ZodString;
line: z.ZodNumber;
column: z.ZodOptional<z.ZodNumber>;
nodeType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
messageId: z.ZodOptional<z.ZodString>;
endLine: z.ZodOptional<z.ZodNumber>;
endColumn: z.ZodOptional<z.ZodNumber>;
fix: z.ZodOptional<z.ZodObject<{
range: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
text: z.ZodString;
}, "strip", z.ZodTypeAny, {
text: string;
range: [number, number];
}, {
text: string;
range: [number, number];
}>>;
suggestions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
suppressions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
ruleId: z.ZodNullable<z.ZodString>;
severity: z.ZodNumber;
message: z.ZodString;
line: z.ZodNumber;
column: z.ZodOptional<z.ZodNumber>;
nodeType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
messageId: z.ZodOptional<z.ZodString>;
endLine: z.ZodOptional<z.ZodNumber>;
endColumn: z.ZodOptional<z.ZodNumber>;
fix: z.ZodOptional<z.ZodObject<{
range: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
text: z.ZodString;
}, "strip", z.ZodTypeAny, {
text: string;
range: [number, number];
}, {
text: string;
range: [number, number];
}>>;
suggestions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
suppressions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
}, z.ZodTypeAny, "passthrough">>, "many">;
suppressedMessages: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
errorCount: z.ZodNumber;
fatalErrorCount: z.ZodNumber;
warningCount: z.ZodNumber;
fixableErrorCount: z.ZodNumber;
fixableWarningCount: z.ZodNumber;
usedDeprecatedRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
ruleId: z.ZodString;
replacedBy: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
ruleId: string;
replacedBy: string[];
}, {
ruleId: string;
replacedBy: string[];
}>, "many">>;
source: z.ZodOptional<z.ZodString>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
filePath: z.ZodString;
messages: z.ZodArray<z.ZodObject<{
ruleId: z.ZodNullable<z.ZodString>;
severity: z.ZodNumber;
message: z.ZodString;
line: z.ZodNumber;
column: z.ZodOptional<z.ZodNumber>;
nodeType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
messageId: z.ZodOptional<z.ZodString>;
endLine: z.ZodOptional<z.ZodNumber>;
endColumn: z.ZodOptional<z.ZodNumber>;
fix: z.ZodOptional<z.ZodObject<{
range: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
text: z.ZodString;
}, "strip", z.ZodTypeAny, {
text: string;
range: [number, number];
}, {
text: string;
range: [number, number];
}>>;
suggestions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
suppressions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
ruleId: z.ZodNullable<z.ZodString>;
severity: z.ZodNumber;
message: z.ZodString;
line: z.ZodNumber;
column: z.ZodOptional<z.ZodNumber>;
nodeType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
messageId: z.ZodOptional<z.ZodString>;
endLine: z.ZodOptional<z.ZodNumber>;
endColumn: z.ZodOptional<z.ZodNumber>;
fix: z.ZodOptional<z.ZodObject<{
range: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
text: z.ZodString;
}, "strip", z.ZodTypeAny, {
text: string;
range: [number, number];
}, {
text: string;
range: [number, number];
}>>;
suggestions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
suppressions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
ruleId: z.ZodNullable<z.ZodString>;
severity: z.ZodNumber;
message: z.ZodString;
line: z.ZodNumber;
column: z.ZodOptional<z.ZodNumber>;
nodeType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
messageId: z.ZodOptional<z.ZodString>;
endLine: z.ZodOptional<z.ZodNumber>;
endColumn: z.ZodOptional<z.ZodNumber>;
fix: z.ZodOptional<z.ZodObject<{
range: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
text: z.ZodString;
}, "strip", z.ZodTypeAny, {
text: string;
range: [number, number];
}, {
text: string;
range: [number, number];
}>>;
suggestions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
suppressions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
}, z.ZodTypeAny, "passthrough">>, "many">;
suppressedMessages: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
errorCount: z.ZodNumber;
fatalErrorCount: z.ZodNumber;
warningCount: z.ZodNumber;
fixableErrorCount: z.ZodNumber;
fixableWarningCount: z.ZodNumber;
usedDeprecatedRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
ruleId: z.ZodString;
replacedBy: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
ruleId: string;
replacedBy: string[];
}, {
ruleId: string;
replacedBy: string[];
}>, "many">>;
source: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
filePath: z.ZodString;
messages: z.ZodArray<z.ZodObject<{
ruleId: z.ZodNullable<z.ZodString>;
severity: z.ZodNumber;
message: z.ZodString;
line: z.ZodNumber;
column: z.ZodOptional<z.ZodNumber>;
nodeType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
messageId: z.ZodOptional<z.ZodString>;
endLine: z.ZodOptional<z.ZodNumber>;
endColumn: z.ZodOptional<z.ZodNumber>;
fix: z.ZodOptional<z.ZodObject<{
range: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
text: z.ZodString;
}, "strip", z.ZodTypeAny, {
text: string;
range: [number, number];
}, {
text: string;
range: [number, number];
}>>;
suggestions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
suppressions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
ruleId: z.ZodNullable<z.ZodString>;
severity: z.ZodNumber;
message: z.ZodString;
line: z.ZodNumber;
column: z.ZodOptional<z.ZodNumber>;
nodeType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
messageId: z.ZodOptional<z.ZodString>;
endLine: z.ZodOptional<z.ZodNumber>;
endColumn: z.ZodOptional<z.ZodNumber>;
fix: z.ZodOptional<z.ZodObject<{
range: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
text: z.ZodString;
}, "strip", z.ZodTypeAny, {
text: string;
range: [number, number];
}, {
text: string;
range: [number, number];
}>>;
suggestions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
suppressions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
ruleId: z.ZodNullable<z.ZodString>;
severity: z.ZodNumber;
message: z.ZodString;
line: z.ZodNumber;
column: z.ZodOptional<z.ZodNumber>;
nodeType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
messageId: z.ZodOptional<z.ZodString>;
endLine: z.ZodOptional<z.ZodNumber>;
endColumn: z.ZodOptional<z.ZodNumber>;
fix: z.ZodOptional<z.ZodObject<{
range: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
text: z.ZodString;
}, "strip", z.ZodTypeAny, {
text: string;
range: [number, number];
}, {
text: string;
range: [number, number];
}>>;
suggestions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
suppressions: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
}, z.ZodTypeAny, "passthrough">>, "many">;
suppressedMessages: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
errorCount: z.ZodNumber;
fatalErrorCount: z.ZodNumber;
warningCount: z.ZodNumber;
fixableErrorCount: z.ZodNumber;
fixableWarningCount: z.ZodNumber;
usedDeprecatedRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
ruleId: z.ZodString;
replacedBy: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
ruleId: string;
replacedBy: string[];
}, {
ruleId: string;
replacedBy: string[];
}>, "many">>;
source: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">>, "many">;
export type ValidatedESLintOutput = z.infer<typeof ESLintOutputSchema>;
/**
* Package.json validation schema
* Validates package.json structure for dependency checking
*/
export declare const PackageJsonSchema: z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
version: z.ZodOptional<z.ZodString>;
dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
peerDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
name: z.ZodOptional<z.ZodString>;
version: z.ZodOptional<z.ZodString>;
dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
peerDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
name: z.ZodOptional<z.ZodString>;
version: z.ZodOptional<z.ZodString>;
dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
peerDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, z.ZodTypeAny, "passthrough">>;
export type ValidatedPackageJson = z.infer<typeof PackageJsonSchema>;
/**
* Safe JSON parsing with Zod validation
* Prevents JSON injection attacks by validating structure
*/
export declare function safeJsonParse<T>(json: string, schema: z.ZodSchema<T>, context?: string): T;
/**
* Safe environment variable access with validation
* Validates environment variables to prevent injection
*/
export declare function safeEnvironmentAccess(): ValidatedEnvironment;
/**
* Safe CLI arguments parsing with validation
* Validates command-line arguments to prevent injection
*/
export declare function safeCLIArgumentsParse(arguments_: string[]): ValidatedCLIFlags;
//# sourceMappingURL=validation-schemas.d.ts.map