# SaC Data Assets

Migration source may import package-local CSV and TSV files when external data makes the workbook intent easier to review.

## CSV And TSV Assets

Keep data assets next to the migration that uses them:

```text
migrations/
  20260523090000-add-revenue-model/
    pack.ts
    revenue.sheet.ts
    revenue.tsv
```

The TypeScript bundler treats referenced CSV and TSV assets as source inputs. They participate in the same source hash as `pack.ts`, `*.sheet.ts`, and package-local helper files.

## Import Boundary

SaC source must stay inside the package `project/` realpath boundary. These inputs are allowed:

- relative TypeScript imports that resolve inside the package project
- relative CSV or TSV imports that resolve inside the package project
- the CLI-provided helper specifier `univer:sac/facade-migration-pack`
- type-only imports for module declarations exposed by `project/types/*.d.ts`, such as `import type { FRange } from "@univerjs/sheets/facade"`

These inputs are rejected before any workbook mutation runs:

- parent-path or symlink escapes outside the package project
- runtime package imports; SaC does not install or bundle project dependencies
- runtime Node builtin imports such as `import { readFile } from "node:fs/promises"`
- non-literal dynamic imports

The SaC project does not support external dependencies. Use `import type` only when source needs named Facade or SDK types from local `project/types/*.d.ts`; do not add runtime package imports to migration source.
