NpmFacts
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).
import type { Effect } from "#codebase/tcmts/core/effects"; export interface NpmFacts { effects: Effect[]; node: string[]; dom: string[]; client: string[]; state: boolean; opaque: string[]; }