Export map
Supported imports
invariantcad/dist/..., internal chunks, src/..., or vendored
runtime files. They are deliberately hidden by the export map and can change
without a public API decision.
ESM only
The package defines"type": "module" and only an import condition. It does
not ship a CommonJS wrapper. Use dynamic import() from a legacy CommonJS host
if migration cannot happen immediately:
Node and browser
The supported Node floor is 22.13. The root module and bundled Manifold runtime also target modern browsers. The OpenCascade kernel entry can run in both environments when its larger WASM asset is correctly served. Exact owned-runtime verification has separate environment entry points. Importinvariantcad/kernels/occt/node only in Node.js and
invariantcad/kernels/occt/browser only in a browser or module worker. Both
return the same opaque runtime type consumed by createOcctKernel. See
OCCT runtime attestation for byte
acquisition, trust-pin, CSP, permission-model, lifetime, and non-claim details.
Release CI verifies Node 22.13, 24, and 26 plus a production Vite build in
Chromium.
Side effects and tree shaking
The package declaressideEffects: false. Importing the OCCT subpaths is
separate so ordinary Manifold consumers need not execute exact-backend module
initialization. WASM initialization occurs only when a kernel factory is called.
The Node attestation loader installs a module hook only when
loadAttestedOcctRuntime is called. Node 22.15 and newer use an isolated,
short-lived hook per load; Node 22.13 and 22.14 retain the compatible
process-wide worker-hook fallback.
Type compatibility
Published declarations are checked withpublint and Are the Types Wrong under
the ESM profile. The release gate also installs the packed tarball into a clean
consumer instead of testing only repository-relative imports.
Semver before 1.0
- Patch releases should repair behavior without changing frozen document meaning.
- Minor releases may evolve the TypeScript authoring surface during
0.x. - Frozen document schemas and protocol versions remain independently parseable according to their compatibility policy.