UNPKG

repomix

Version:

A tool to pack repository contents to single file for AI consumption

126 lines (125 loc) 10.5 kB
import type { RepomixConfigMerged } from '../config/configSchema.js'; import type { RepomixProgressCallback } from '../shared/types.js'; import { type SkippedFileInfo } from './file/fileCollect.js'; import type { FilesByRoot } from './file/fileTreeGenerate.js'; import type { ProcessedFile } from './file/fileTypes.js'; import type { SuspiciousFileResult } from './security/securityCheck.js'; import type { PackSkillParams } from './skill/packSkill.js'; export interface PackResult { totalFiles: number; totalCharacters: number; totalTokens: number; fileCharCounts: Record<string, number>; fileTokenCounts: Record<string, number>; gitDiffTokenCount: number; gitLogTokenCount: number; outputFiles?: string[]; suspiciousFilesResults: SuspiciousFileResult[]; suspiciousGitDiffResults: SuspiciousFileResult[]; suspiciousGitLogResults: SuspiciousFileResult[]; processedFiles: ProcessedFile[]; safeFilePaths: string[]; skippedFiles: SkippedFileInfo[]; } declare const defaultDeps: { searchFiles: (rootDir: string, config: RepomixConfigMerged, explicitFiles?: string[]) => Promise<import("./file/fileSearch.js").FileSearchResult>; collectFiles: (filePaths: string[], rootDir: string, config: RepomixConfigMerged, progressCallback?: RepomixProgressCallback, deps?: { readRawFile: (filePath: string, maxFileSize: number) => Promise<import("./file/fileRead.js").FileReadResult>; }) => Promise<import("./file/fileCollect.js").FileCollectResults>; processFiles: (rawFiles: import("./file/fileTypes.js").RawFile[], config: RepomixConfigMerged, progressCallback: RepomixProgressCallback, deps?: { initTaskRunner: <T, R>(options: import("../shared/processConcurrency.js").WorkerOptions) => import("../shared/processConcurrency.js").TaskRunner<T, R>; getFileManipulator: (filePath: string) => import("./file/fileManipulate.js").FileManipulator | null; }) => Promise<ProcessedFile[]>; validateFileSafety: (rawFiles: import("./file/fileTypes.js").RawFile[], progressCallback: RepomixProgressCallback, config: RepomixConfigMerged, gitDiffResult?: import("./git/gitDiffHandle.js").GitDiffResult, gitLogResult?: import("./git/gitLogHandle.js").GitLogResult, deps?: { runSecurityCheck: (rawFiles: import("./file/fileTypes.js").RawFile[], progressCallback?: RepomixProgressCallback, gitDiffResult?: import("./git/gitDiffHandle.js").GitDiffResult, gitLogResult?: import("./git/gitLogHandle.js").GitLogResult, deps?: { initTaskRunner: <T, R>(options: import("../shared/processConcurrency.js").WorkerOptions) => import("../shared/processConcurrency.js").TaskRunner<T, R>; getProcessConcurrency: () => number; }) => Promise<SuspiciousFileResult[]>; filterOutUntrustedFiles: (rawFiles: import("./file/fileTypes.js").RawFile[], suspiciousFilesResults: SuspiciousFileResult[]) => import("./file/fileTypes.js").RawFile[]; }) => Promise<{ safeRawFiles: import("./file/fileTypes.js").RawFile[]; safeFilePaths: string[]; suspiciousFilesResults: SuspiciousFileResult[]; suspiciousGitDiffResults: SuspiciousFileResult[]; suspiciousGitLogResults: SuspiciousFileResult[]; }>; produceOutput: (rootDirs: string[], config: RepomixConfigMerged, processedFiles: ProcessedFile[], allFilePaths: string[], gitDiffResult: import("./git/gitDiffHandle.js").GitDiffResult | undefined, gitLogResult: import("./git/gitLogHandle.js").GitLogResult | undefined, progressCallback: RepomixProgressCallback, filePathsByRoot?: FilesByRoot[], emptyDirPaths?: string[], overrideDeps?: Partial<{ generateOutput: (rootDirs: string[], config: RepomixConfigMerged, processedFiles: ProcessedFile[], allFilePaths: string[], gitDiffResult?: import("./git/gitDiffHandle.js").GitDiffResult | undefined, gitLogResult?: import("./git/gitLogHandle.js").GitLogResult | undefined, filePathsByRoot?: FilesByRoot[], emptyDirPaths?: string[], deps?: { buildOutputGeneratorContext: (rootDirs: string[], config: RepomixConfigMerged, allFilePaths: string[], processedFiles: ProcessedFile[], gitDiffResult?: import("./git/gitDiffHandle.js").GitDiffResult | undefined, gitLogResult?: import("./git/gitLogHandle.js").GitLogResult | undefined, filePathsByRoot?: FilesByRoot[], emptyDirPaths?: string[], deps?: { listDirectories: (rootDir: string, config: RepomixConfigMerged) => Promise<string[]>; listFiles: (rootDir: string, config: RepomixConfigMerged) => Promise<string[]>; searchFiles: (rootDir: string, config: RepomixConfigMerged, explicitFiles?: string[]) => Promise<import("./file/fileSearch.js").FileSearchResult>; }) => Promise<import("./output/outputGeneratorTypes.js").OutputGeneratorContext>; generateHandlebarOutput: (config: RepomixConfigMerged, renderContext: import("./output/outputGeneratorTypes.js").RenderContext, processedFiles?: ProcessedFile[]) => Promise<string>; generateParsableXmlOutput: (renderContext: import("./output/outputGeneratorTypes.js").RenderContext) => Promise<string>; generateParsableJsonOutput: (renderContext: import("./output/outputGeneratorTypes.js").RenderContext) => Promise<string>; sortOutputFiles: (files: ProcessedFile[], config: RepomixConfigMerged, deps?: import("./output/outputSort.js").SortDeps) => Promise<ProcessedFile[]>; }) => Promise<string>; writeOutputToDisk: (output: string, config: RepomixConfigMerged) => Promise<undefined>; copyToClipboardIfEnabled: (output: string, progressCallback: RepomixProgressCallback, config: RepomixConfigMerged) => Promise<void>; }>) => Promise<import("./packager/produceOutput.js").ProduceOutputResult>; calculateMetrics: (processedFiles: ProcessedFile[], outputPromise: Promise<string | string[]>, progressCallback: RepomixProgressCallback, config: RepomixConfigMerged, gitDiffResult: import("./git/gitDiffHandle.js").GitDiffResult | undefined, gitLogResult: import("./git/gitLogHandle.js").GitLogResult | undefined, overrideDeps?: Partial<{ calculateFileMetrics: (processedFiles: ProcessedFile[], targetFilePaths: string[], tokenCounterEncoding: import("./metrics/tokenEncodings.js").TokenEncoding, progressCallback: RepomixProgressCallback, deps: { taskRunner: import("./metrics/metricsWorkerRunner.js").MetricsTaskRunner; }) => Promise<import("./metrics/workers/types.js").FileMetrics[]>; calculateOutputMetrics: (content: string, encoding: import("./metrics/tokenEncodings.js").TokenEncoding, path: string | undefined, deps: { taskRunner: import("./metrics/metricsWorkerRunner.js").MetricsTaskRunner; }) => Promise<number>; calculateGitDiffMetrics: (config: RepomixConfigMerged, gitDiffResult: import("./git/gitDiffHandle.js").GitDiffResult | undefined, deps: { taskRunner: import("./metrics/metricsWorkerRunner.js").MetricsTaskRunner; }) => Promise<number>; calculateGitLogMetrics: (config: RepomixConfigMerged, gitLogResult: import("./git/gitLogHandle.js").GitLogResult | undefined, deps: { taskRunner: import("./metrics/metricsWorkerRunner.js").MetricsTaskRunner; }) => Promise<{ gitLogTokenCount: number; }>; taskRunner: import("./metrics/metricsWorkerRunner.js").MetricsTaskRunner | undefined; }>) => Promise<import("./metrics/calculateMetrics.js").CalculateMetricsResult>; createMetricsTaskRunner: (numOfTasks: number, encoding: import("./metrics/tokenEncodings.js").TokenEncoding) => import("./metrics/calculateMetrics.js").MetricsTaskRunnerWithWarmup; sortPaths: (filePaths: string[]) => string[]; sortOutputFiles: (files: ProcessedFile[], config: RepomixConfigMerged, deps?: import("./output/outputSort.js").SortDeps) => Promise<ProcessedFile[]>; prefetchSortData: (config: RepomixConfigMerged, deps?: import("./output/outputSort.js").SortDeps) => Promise<void>; getGitDiffs: (rootDirs: string[], config: RepomixConfigMerged, deps?: { getWorkTreeDiff: (directory: string, deps?: { execGitDiff: (directory: string, options?: string[], deps?: { execFileAsync: typeof import("child_process").execFile.__promisify__; }) => Promise<string>; isGitRepository: (directory: string, deps?: { execGitRevParse: (directory: string, deps?: { execFileAsync: typeof import("child_process").execFile.__promisify__; }) => Promise<string>; }) => Promise<boolean>; }) => Promise<string>; getStagedDiff: (directory: string, deps?: { execGitDiff: (directory: string, options?: string[], deps?: { execFileAsync: typeof import("child_process").execFile.__promisify__; }) => Promise<string>; isGitRepository: (directory: string, deps?: { execGitRevParse: (directory: string, deps?: { execFileAsync: typeof import("child_process").execFile.__promisify__; }) => Promise<string>; }) => Promise<boolean>; }) => Promise<string>; }) => Promise<import("./git/gitDiffHandle.js").GitDiffResult | undefined>; getGitLogs: (rootDirs: string[], config: RepomixConfigMerged, deps?: { getGitLog: (directory: string, maxCommits: number, deps?: { execGitLog: (directory: string, maxCommits: number, gitSeparator: string, deps?: { execFileAsync: typeof import("child_process").execFile.__promisify__; }) => Promise<string>; isGitRepository: (directory: string, deps?: { execGitRevParse: (directory: string, deps?: { execFileAsync: typeof import("child_process").execFile.__promisify__; }) => Promise<string>; }) => Promise<boolean>; }) => Promise<string>; }) => Promise<import("./git/gitLogHandle.js").GitLogResult | undefined>; packSkill: (params: PackSkillParams) => Promise<PackResult>; }; export interface PackOptions { skillName?: string; skillDir?: string; skillProjectName?: string; skillSourceUrl?: string; } export declare const pack: (rootDirs: string[], config: RepomixConfigMerged, progressCallback?: RepomixProgressCallback, overrideDeps?: Partial<typeof defaultDeps>, explicitFiles?: string[], options?: PackOptions) => Promise<PackResult>; export {};