UNPKG

@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
/** * @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