# types/index.types.ts

> 77 lines of code and 11 definitions.

Tree: GovLab Docs
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/docs#file-docs-types-index-types-ts
Source text: https://banes-lab.com/source/docs/types/index.types.ts.txt

Listed in [types](https://banes-lab.com/api/source/docs/types.md), after [types/graph.types.ts](https://banes-lab.com/source/docs/types/graph.types.ts.md) and before [types/location.types.ts](https://banes-lab.com/source/docs/types/location.types.ts.md).

## Definitions

- `PackageInfo` (interface_declaration, line 3, exported)
- `InspectContext` (interface_declaration, line 19, exported)
- `SourceStats` (interface_declaration, line 25, exported)
- `ByGroup` (type_alias_declaration, line 30, exported)
- `RenderedIndex` (interface_declaration, line 32, exported)
- `WeightedUnit` (interface_declaration, line 39, exported)
- `JobSpec` (interface_declaration, line 44, exported)
- `JobResult` (interface_declaration, line 52, exported)
- `CatalogDocEntry` (interface_declaration, line 59, exported)
- `CatalogPayload` (interface_declaration, line 73, exported)
- `CoverageRow` (interface_declaration, line 84, exported)

## Contained in

- [types](https://banes-lab.com/anatomy/docs/folder-docs-types.md)

## Source

```typescript
import type { DeadEdge } from "#types/document.types";

export interface PackageInfo {
    group: string;
    barrelExports: number;
    description: string;
    externalDeps: string[];
    hasReadme: boolean;
    name: string;
    path: string;
    purpose: string | null;
    siblingDeps: string[];
    slug: string;
    sourceFiles: number;
    sourceLoc: number;
    version: string;
}

export interface InspectContext {
    group: string;
    packageName: string;
    repoRoot: string;
}

export interface SourceStats {
    fileCount: number;
    loc: number;
}

export type ByGroup = Record<string, PackageInfo[]>;

export interface RenderedIndex {
    count: number;
    groups: number;
    json: string;
    md: string;
}

export interface WeightedUnit {
    cost: number;
    id: string;
}

export interface JobSpec {
    args: string[];
    command: string;
    cwd: string;
    label: string;
    timeoutMs: number;
}

export interface JobResult {
    code: number;
    label: string;
    out: string;
    timedOut: boolean;
}

export interface CatalogDocEntry {
    concern: string;
    dependsOn: string[];
    governs: string[];
    links: string[];
    name: string;
    path: string;
    status: string;
    summary: string;
    superseded: boolean;
    supersedes: string[];
    type: string;
}

export interface CatalogPayload {
    byConcern: Record<string, string[]>;
    byStatus: Record<string, string[]>;
    byType: Record<string, string[]>;
    cycles: string[][];
    deadEdges: DeadEdge[];
    docs: CatalogDocEntry[];
    duplicateNames: string[];
    superseded: string[];
}

export interface CoverageRow {
    gaps: string[];
    isPrivate: boolean;
    slug: string;
}
```
