# types/dependency.types.ts

> 45 lines of code and 9 definitions.

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

Listed in [types](https://banes-lab.com/api/source/quality/types.md), after [types/css.types.ts](https://banes-lab.com/source/quality/types/css.types.ts.md) and before [types/ecosystem.types.ts](https://banes-lab.com/source/quality/types/ecosystem.types.ts.md).

## Definitions

- `EmitterKind` (type_alias_declaration, line 1, exported)
- `ToolDisposition` (type_alias_declaration, line 3, exported)
- `InstallRecord` (interface_declaration, line 5, exported)
- `InstallCoverage` (interface_declaration, line 21, exported)
- `InstallRegistry` (interface_declaration, line 26, exported)
- `InstallRequest` (interface_declaration, line 31, exported)
- `SystemInstruction` (interface_declaration, line 37, exported)
- `InstallPlan` (interface_declaration, line 42, exported)
- `InstallReport` (interface_declaration, line 50, exported)

## Contained in

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

## Source

```typescript
export type EmitterKind = "eslint" | "native" | "none" | "prettier" | "stylelint";

export type ToolDisposition = "advisory" | "excluded" | "full-gate" | "selectable";

export interface InstallRecord {
    tool: string;
    ecosystem: string;
    npm?: string;
    system?: string;
    ruleIdPrefix?: string;
    pluginNamespace?: string;
    isPlugin: boolean;
    configTarget: string;
    emitter: EmitterKind;
    installable?: boolean;
    reason?: string;
    catalogRules?: boolean;
    disposition?: ToolDisposition;
}

export interface InstallCoverage {
    noEngineSetting: string[];
    noNativeDescriptor: string[];
}

export interface InstallRegistry {
    records: InstallRecord[];
    coverage: InstallCoverage;
}

export interface InstallRequest {
    ecosystems: string[];
    auto: boolean;
    dryRun: boolean;
}

export interface SystemInstruction {
    tool: string;
    system: string;
}

export interface InstallPlan {
    ecosystems: string[];
    npmDeps: string[];
    systemInstructions: SystemInstruction[];
    eslintPlugins: string[];
    emitters: string[];
}

export interface InstallReport {
    installed: string[];
    systemInstructions: SystemInstruction[];
}
```
