All files / src/apps/statistics types.ts

0% Statements 0/0
0% Branches 1/1
0% Functions 1/1
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80                                                                                                                                                               
export interface RepoSizeMetrics {
  /** Format version for forward compatibility */
  version: number;
 
  /** When this snapshot was taken (ISO 8601, UTC recommended) */
  timestamp: string;
 
  /** Repository identity */
  repo: {
    headCommit: string;
    headBranch: string;
  };
 
  /** Intrinsic repository structure (commit-based) */
  intrinsic: {
    commitCount: number;
    totalCommitCount: number;
    trackedFileCount: number;
    trackedDirCount: number;
    trackedContentBytes: number;
  };
 
  /** Git object database metrics */
  gitObjects: {
    looseObjectCount: number;
    looseObjectSizeKiB: number;
    packedObjectCount: number;
    packfileCount: number;
    packfileSizeKiB: number;
    prunePackableSizeKiB: number;
    garbageObjectCount: number;
    garbageSizeKiB: number;
  };
 
  /** Largest blobs ever committed */
  largestBlobs: Array<{
    path: string;
    sizeBytes: number;
  }>;
 
  /** Disk usage (checkout-specific) */
  diskUsage: {
    worktreeBytes: number;
    worktreeExcludingGitBytes: number;
    gitDirBytes: number;
 
    topLevelDirs: Array<{
      path: string;
      sizeBytes: number;
    }>;
  };
}
 
export interface ProjectStatistics {
  timestamp: string;
  fileTypes: Array<{
    fileType: string;
    count: number;
    totalLines: number;
    totalWords: number;
    totalBytes?: number;
  }>;
  includedFiles?: Array<{
    path: string;
    fileType: string;
    lines: number;
    words: number;
    bytes: number;
  }>;
  excludedFolders?: string[];
  excludedFiles?: string[];
  repoSizeMetrics?: RepoSizeMetrics;
  totals: {
    files: number;
    lines: number;
    words: number;
    bytes?: number;
  };
}