# types/inventory.types.ts

> 25 lines of code and 5 definitions.

Tree: Build tree
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/build#file-build-types-inventory-types-ts
Source text: https://banes-lab.com/assets/sources/source.1308f14a5e55037f46980bff1e08ab67d8181afb54c4d746381736a4ffdc29cb.generated.txt

## 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)

## 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;
}
```
