# types/inventory.types.ts

> 25 lines of code and 5 definitions.

Tree: Bane's Lab Content
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/content#file-content-types-inventory-types-ts
Source text: https://banes-lab.com/source/content/types/inventory.types.ts.txt

Listed in [types](https://banes-lab.com/api/source/content/types.md), after [types/derivation.types.ts](https://banes-lab.com/source/content/types/derivation.types.ts.md) and before [types/leak.types.ts](https://banes-lab.com/source/content/types/leak.types.ts.md).

## Definitions

- `RuleKind` (type_alias_declaration, line 1, exported)
- `InventoryRecord` (interface_declaration, line 3, exported)
- `InventorySource` (interface_declaration, line 15, exported)
- `Inventory` (interface_declaration, line 21, exported)
- `SourceText` (interface_declaration, line 26, exported)

## Contained in

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

## Source

```typescript
export type RuleKind = "avoidance" | "rule";

export interface InventoryRecord {
    readonly always: string | null;
    readonly directive: string;
    readonly gate: string | null;
    readonly kind: RuleKind;
    readonly locked: boolean;
    readonly never: string | null;
    readonly slug: string;
    readonly source: string;
    readonly tier: string;
}

export interface InventorySource {
    readonly lines: number;
    readonly path: string;
    readonly records: number;
}

export interface Inventory {
    readonly records: readonly InventoryRecord[];
    readonly sources: readonly InventorySource[];
}

export interface SourceText {
    readonly path: string;
    readonly text: string;
}
```
