overview
Everything you import from @statorjs/stator comes through an explicit subpath — there is no root export.
Subpaths
Section titled “Subpaths”| Subpath | What it is | Stability |
|---|---|---|
/server | App assembly, routing, dispatch, stores | Stable + Toolchain |
/machine | The isomorphic state-machine engine (browser-safe) | Stable |
/template | html, read, control flow, directives | Stable + Toolchain |
/client | Island authoring: StatorElement, use, machine, dispatch | Stable |
/dev | The dev server | Stable |
/build | Production build + type sync | Stable |
/components | Built-in server components (JsonLd) | Stable |
/compiler | The .stator compiler | Internal |
Stability policy
Section titled “Stability policy”There are three tiers:
- Stable — the documented authoring surface: every symbol with its own section on a reference page. Semver-stable; these break only in a major.
- Toolchain — the symbols listed under a reference page’s “Lower-level exports” heading on
/serverand/template. They’re public for one structural reason: compiled.statoroutput imports a few of them — always against the same package version that compiled it — and the framework’s own tooling (the dev server, the build) shares the rest. These may change in a minor. Don’t build application code on them; if one turns out to be genuinely useful, tell us and we’ll promote it. - Internal —
compiler, plus the bundler glue the framework’s own tooling imports. They exist as subpaths only for that tooling; their shapes may change in a minor. Don’t build on them. In particular there is no bundler plugin surface: Stator never reads avite.config.*and accepts no plugins — see Styling and assets for what to do instead.
The lower-level lists on /machine and /client are Stable — they’re type-level surface your app legitimately types against (InstanceOf, EventOf, DispatchResult, …), not runtime plumbing.
TypeScript source, by design
Section titled “TypeScript source, by design”The package ships its src/ TypeScript directly — no dist/, no bundles. The dev server’s loader, the island bundler, and the production server all consume TS natively, so a build step would only add a layer where sourcemaps and stack traces can lie. Your app’s toolchain must be able to load TS, which every supported entry point already is.