What a package's export reaches, worked out from its code as tcm works out its own's: through every declaration it uses, in its module, the package's other modules and the packages they import. `effects`: what it reaches outside (the clock, randomness, the network, files, the environment, other processes, output), as `reaches` has them; `node`: Node's modules and globals it uses (it needs the server); `dom`: the browser's globals it uses (it needs the browser); `state`: a module it uses holds state something could change (a top-level `let`, or an object or array); `opaque`: what couldn't be followed (a computed `import()` or `require()`, `eval`, a module not found), so the rest can't be trusted to be all of it. `client`: why it's browser code, as React has it, if it is: a module it's in says `"use client"`, or it uses React's hooks, contexts or class components (which React's server components can't).
What `name` (an export; `*`, all of the module) of `file` reaches, on a side (its conditions resolve the packages it imports), following everything it uses (NpmFacts). Kept in `cacheDir/npm-facts`, by the package's installed directory (which is its version's, and never changes).
An npm package's export whose code, through everything it uses, renders the same for the same arguments on the server: it reaches nothing outside (NpmFacts), holds no state, uses no browser globals, and nothing of it couldn't be followed. (Node's modules it uses for that are fine: `node:path`.)
What an npm package's export (as code refers to it: `npm:<name>@<range>`, a subpath, an export) reaches on a side (exportFacts), from the package as the codebase has it installed; undefined if it isn't, or its export map names no file for it there. Kept for this process (factsKept) while the package's `package.json` is the same file: placing a codebase asks of each package many times over.
Where `spec`, imported from `from`, is: one of Node's modules, a file (in the same package, or another one found in `node_modules` above it, by its export map for `conditions`), or nothing found.
The file a package's export map (`exports`) gives for a subpath (`.`, `./utils`), under the conditions a side resolves with (in order of what matters), as Node and bundlers read it: a string, conditions, arrays, `*` patterns. Without `exports`: `browser` (in the browser), `module`, `main`, `index.js`; a subpath is a path in it.
What code in `node` uses, as one unit: the globals it refers to (an identifier no scope inside the module declares), `Global.member`s, the module's top-level names (`top`) and imported bindings (`imported`), `require()` and `import()` of modules (computed ones are opaque), and `eval`.