openpkg-sdk
Version:
TypeScript package specification SDK
56 lines (55 loc) • 2.03 kB
TypeScript
import { z as z2 } from "zod";
interface OpenPkgOptions {
includePrivate?: boolean;
followImports?: boolean;
maxDepth?: number;
resolveExternalTypes?: boolean;
}
import { z } from "zod";
declare const openPkgSchema: z.ZodTypeAny;
type OpenPkgSpec = z.infer<typeof openPkgSchema>;
declare function extractPackageSpec(entryFile: string, packageDir?: string, content?: string, options?: OpenPkgOptions): Promise<z2.infer<typeof openPkgSchema>>;
interface FilterOptions {
include?: string[];
exclude?: string[];
}
interface Diagnostic {
message: string;
severity: "error" | "warning" | "info";
location?: {
file: string
line?: number
column?: number
};
}
interface AnalysisResult {
spec: OpenPkgSpec;
diagnostics: Diagnostic[];
metadata: AnalysisMetadata;
}
interface AnalysisMetadata {
baseDir: string;
configPath?: string;
packageJsonPath?: string;
hasNodeModules: boolean;
resolveExternalTypes: boolean;
}
interface AnalyzeOptions {
filters?: FilterOptions;
}
declare class OpenPkg {
private readonly options;
constructor(options?: OpenPkgOptions);
analyze(code: string, fileName?: string, analyzeOptions?: AnalyzeOptions): Promise<OpenPkgSpec>;
analyzeFile(filePath: string, analyzeOptions?: AnalyzeOptions): Promise<OpenPkgSpec>;
analyzeProject(entryPath: string, analyzeOptions?: AnalyzeOptions): Promise<OpenPkgSpec>;
analyzeWithDiagnostics(code: string, fileName?: string, analyzeOptions?: AnalyzeOptions): Promise<AnalysisResult>;
analyzeFileWithDiagnostics(filePath: string, analyzeOptions?: AnalyzeOptions): Promise<AnalysisResult>;
private normalizeDiagnostic;
private mapSeverity;
private normalizeMetadata;
private applySpecFilters;
}
declare function analyze(code: string, options?: AnalyzeOptions): Promise<OpenPkgSpec>;
declare function analyzeFile(filePath: string, options?: AnalyzeOptions): Promise<OpenPkgSpec>;
export { openPkgSchema, extractPackageSpec, analyzeFile, analyze, OpenPkgSpec, OpenPkgOptions, OpenPkg, FilterOptions, Diagnostic, AnalyzeOptions, AnalysisResult };