{ "schemaVersion": 1, "compilerVersion": "0.0.20", "coverage": [ "Entries are projected mechanically from the compiler's own decision tables: the diagnostics registry, the unsupported-syntax dispatch tables, the stdlib and node-builtin lowering tables, and the supported-builtin-module list. Nothing is hand-maintained; the manifest regenerates byte-identically from the source tree at this version.", "Absence from this manifest means 'not projected', never 'unsupported'. Surfaces lowered through dedicated code paths rather than tables are not yet projected: console, JSON, Promise/async and the timer surface, the net/http/tls/https/dgram/dns/assert/test/stream/readline module member surfaces, template literals, the regex slice, global functions (parseInt, parseFloat, isNaN, isFinite), and the process surface outside its ambient slice.", "The ambient-nondeterminism and ambient-authority surfaces the library sidecar's determinism attestation scans ARE projected even where they lower through dedicated code paths — the Date compositions (stdlib.date.*), perf_hooks' performance.now, and the process global's ambient reads and authority calls (node-builtin.process.*) — so a determinism fence can name every surface the attestation demotes on.", "stdlib and node-builtin member entries name surface whose LOWERED call forms are constrained (arity, argument shapes); declared call forms outside the lowered set are refused per site, with code SC2020 for standard-library and node-builtin surface.", "Entries with status 'unsupported' or 'dynamic-only' describe where the named code is raised: forms of the construct outside the supported subset are refused with that code — not that every form of the named feature is refused. Supported forms appear as their own static entries where a table projects them.", "Entries with status 'dynamic-only' compile when the build embeds the dynamic engine (--dynamic); without the flag each use site is refused with the entry's code.", "Process-level diagnostic codes are not surface entries: SC0001-SC0004 are preflight gates, SC1110 is a comptime evaluation failure, SC3001 is the alternate-backend tier refusal, SC9001/SC9002 are internal errors.", "No scheduling metadata is published; entry ids are the stable diff keys across releases." ], "entries": [ { "id": "diagnostic.sc1010", "kind": "diagnostic-fence", "name": "package imports", "status": "unsupported", "code": "SC1010", "note": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, and module modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" }, { "id": "diagnostic.sc1012", "kind": "diagnostic-fence", "name": "default exports/imports", "status": "unsupported", "code": "SC1012", "note": "use named exports: export function f() {} / import { f } from \"./m\"" }, { "id": "diagnostic.sc1013", "kind": "diagnostic-fence", "name": "namespace imports (* as ns)", "status": "unsupported", "code": "SC1013" }, { "id": "diagnostic.sc1014", "kind": "diagnostic-fence", "name": "re-exports and export lists", "status": "unsupported", "code": "SC1014", "note": "export declarations directly: export function f() {}" }, { "id": "diagnostic.sc1015", "kind": "diagnostic-fence", "name": "dynamic import()", "status": "unsupported", "code": "SC1015" }, { "id": "diagnostic.sc1016", "kind": "diagnostic-fence", "name": "circular imports", "status": "unsupported", "code": "SC1016", "note": "cycles of ES modules with declaration-only top levels whose cycle-crossing bindings are only used inside function bodies compile as-is; move the named top-level read or call into a function body (or break the named edge) so nothing runs during the cycle's init window" }, { "id": "diagnostic.sc1020", "kind": "diagnostic-fence", "name": "class expressions", "status": "unsupported", "code": "SC1020" }, { "id": "diagnostic.sc1030", "kind": "diagnostic-fence", "name": "var declarations", "status": "unsupported", "code": "SC1030" }, { "id": "diagnostic.sc1031", "kind": "diagnostic-fence", "name": "destructuring", "status": "unsupported", "code": "SC1031" }, { "id": "diagnostic.sc1040", "kind": "diagnostic-fence", "name": "loose equality (== and !=)", "status": "unsupported", "code": "SC1040", "note": "use === / !== ('x == null' / 'x != null' — the null-or-undefined test — is supported; other loose comparisons need dynamic coercion semantics)" }, { "id": "diagnostic.sc1042", "kind": "diagnostic-fence", "name": "logical operators on mixed operand types", "status": "unsupported", "code": "SC1042", "note": "give both operands the same type (number, string, or boolean)" }, { "id": "diagnostic.sc1043", "kind": "diagnostic-fence", "name": "comparing non-number, non-string values", "status": "unsupported", "code": "SC1043" }, { "id": "diagnostic.sc1045", "kind": "diagnostic-fence", "name": "increment/decrement in expression position", "status": "unsupported", "code": "SC1045", "note": "use ++/-- as a standalone statement, or write x = x + 1" }, { "id": "diagnostic.sc1050", "kind": "diagnostic-fence", "name": "labeled break/continue", "status": "unsupported", "code": "SC1050" }, { "id": "diagnostic.sc1052", "kind": "diagnostic-fence", "name": "for-in loops", "status": "unsupported", "code": "SC1052" }, { "id": "diagnostic.sc1062", "kind": "diagnostic-fence", "name": "destructuring catch clause bindings", "status": "unsupported", "code": "SC1062", "note": "bind an identifier (catch (e)) and narrow it — 'e instanceof Error' exposes .name/.message, typeof tests expose primitives" }, { "id": "diagnostic.sc1063", "kind": "diagnostic-fence", "name": "this use of a catch binding", "status": "unsupported", "code": "SC1063", "note": "a catch binding is typed by what was thrown — narrow before reading: 'if (e instanceof Error)' (then .name/.message), 'typeof e === \"string\"/\"number\"/\"boolean\"', or rethrow with 'throw e'; String(e) and `${e}` also compile ('Error: msg' for Error payloads — Node's String(), which has no stack), so 'e instanceof Error ? e.message : String(e)' works as-is" }, { "id": "diagnostic.sc1070", "kind": "diagnostic-fence", "name": "async/await", "status": "unsupported", "code": "SC1070" }, { "id": "diagnostic.sc1071", "kind": "diagnostic-fence", "name": "generators", "status": "unsupported", "code": "SC1071" }, { "id": "diagnostic.sc1080", "kind": "diagnostic-fence", "name": "'this' outside a class method", "status": "unsupported", "code": "SC1080" }, { "id": "diagnostic.sc1090", "kind": "diagnostic-fence", "name": "this syntax", "status": "unsupported", "code": "SC1090" }, { "id": "diagnostic.sc1100", "kind": "diagnostic-fence", "name": "operations on 'unknown' values", "status": "unsupported", "code": "SC1100", "note": "validate with 'as ' first — the cast checks the dynamic value at runtime and throws on mismatch" }, { "id": "diagnostic.sc1101", "kind": "diagnostic-fence", "name": "converting typed values to 'unknown'", "status": "unsupported", "code": "SC1101", "note": "numbers, strings, booleans, JSON-safe records/arrays/unions (a deep copy — the 'unknown' value never aliases the original), and functions over those (boxed, identity preserved) convert into 'unknown' slots; this value's type has no dynamic representation yet" }, { "id": "diagnostic.sc1120", "kind": "diagnostic-fence", "name": "this regex feature", "status": "unsupported", "code": "SC1120", "note": "supported: literal regexes with the g/i/m/s/u/y flags — .test(), .exec()/.match()/.matchAll(), named capture groups (.groups, $ templates, \\k), .source/.flags, and string replace/replaceAll/split with string replacement templates" }, { "id": "diagnostic.sc1121", "kind": "diagnostic-fence", "name": "'.test()' on a regex with the 'g' or 'y' flag", "status": "unsupported", "code": "SC1121", "note": "g/y regexes carry mutable lastIndex state between calls, which is not modeled; drop the flag for a plain match test, or use replace/replaceAll/split (their iteration is internal)" }, { "id": "diagnostic.sc2001", "kind": "diagnostic-fence", "name": "values of types outside the compilable set (bigint and symbol primitives, constructor objects, and library-derived or unresolved generic shapes)", "status": "unsupported", "code": "SC2001" }, { "id": "diagnostic.sc2002", "kind": "diagnostic-fence", "name": "record shape flows outside the width-copy rules (shapes must match exactly or width-coerce)", "status": "unsupported", "code": "SC2002" }, { "id": "diagnostic.sc2003", "kind": "diagnostic-fence", "name": "union-to-union conversions outside the re-tagging rule", "status": "unsupported", "code": "SC2003" }, { "id": "diagnostic.sc2004", "kind": "diagnostic-fence", "name": "uses of a binding whose declaration did not compile (cascade marker)", "status": "unsupported", "code": "SC2004" }, { "id": "diagnostic.sc2005", "kind": "diagnostic-fence", "name": "values whose type keeps a generic call signature (a compiled function is one concrete signature)", "status": "unsupported", "code": "SC2005" }, { "id": "diagnostic.sc2006", "kind": "diagnostic-fence", "name": "index-signature object types outside the supported shape", "status": "unsupported", "code": "SC2006" }, { "id": "diagnostic.sc2007", "kind": "diagnostic-fence", "name": "values of overloaded function type (a compiled function value is one signature)", "status": "unsupported", "code": "SC2007" }, { "id": "diagnostic.sc2008", "kind": "diagnostic-fence", "name": "intersection types with no resolved lowering", "status": "unsupported", "code": "SC2008" }, { "id": "diagnostic.sc2009", "kind": "diagnostic-fence", "name": "supported container and function shapes over a component type outside its slot", "status": "unsupported", "code": "SC2009" }, { "id": "diagnostic.sc2010", "kind": "diagnostic-fence", "name": "constructs that exist only in the embedded dynamic engine", "status": "dynamic-only", "code": "SC2010" }, { "id": "diagnostic.sc2011", "kind": "diagnostic-fence", "name": "'any'-typed values and the operations on them", "status": "dynamic-only", "code": "SC2011" }, { "id": "diagnostic.sc2012", "kind": "diagnostic-fence", "name": "standard-library surface that runs in the embedded dynamic engine", "status": "dynamic-only", "code": "SC2012" }, { "id": "diagnostic.sc2013", "kind": "diagnostic-fence", "name": "npm package imports and values (the package's implementation runs in the embedded engine)", "status": "dynamic-only", "code": "SC2013" }, { "id": "diagnostic.sc2020", "kind": "diagnostic-fence", "name": "standard-library or @types/node surface with no lowering", "status": "unsupported", "code": "SC2020" }, { "id": "diagnostic.sc2030", "kind": "diagnostic-fence", "name": "npm package code that cannot be embedded for the dynamic engine", "status": "unsupported", "code": "SC2030" }, { "id": "node-builtin.assert", "kind": "node-builtin", "name": "assert", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.assert.AssertionError", "kind": "node-builtin", "name": "assert.AssertionError", "status": "unsupported", "code": "SC2020", "note": "the class itself has no lowering — catch and test err.name === \"AssertionError\" or err.code === \"ERR_ASSERTION\"" }, { "id": "node-builtin.assert.deepEqual", "kind": "node-builtin", "name": "assert.deepEqual", "status": "unsupported", "code": "SC2020", "note": "loose == equality has no lowering — the strict forms compare with Object.is/structural equality like Node's assert/strict module, where equal IS strictEqual" }, { "id": "node-builtin.assert.doesNotReject", "kind": "node-builtin", "name": "assert.doesNotReject", "status": "unsupported", "code": "SC2020", "note": "await the promise directly — an unexpected rejection already fails the test" }, { "id": "node-builtin.assert.doesNotThrow", "kind": "node-builtin", "name": "assert.doesNotThrow", "status": "unsupported", "code": "SC2020", "note": "call the function directly — an unexpected throw already fails the test" }, { "id": "node-builtin.assert.equal", "kind": "node-builtin", "name": "assert.equal", "status": "unsupported", "code": "SC2020", "note": "loose == equality has no lowering — the strict forms compare with Object.is/structural equality like Node's assert/strict module, where equal IS strictEqual" }, { "id": "node-builtin.assert.ifError", "kind": "node-builtin", "name": "assert.ifError", "status": "unsupported", "code": "SC2020", "note": "test explicitly instead: assert.strictEqual(err, null) / assert.strictEqual(err, undefined)" }, { "id": "node-builtin.assert.notDeepEqual", "kind": "node-builtin", "name": "assert.notDeepEqual", "status": "unsupported", "code": "SC2020", "note": "loose == equality has no lowering — the strict forms compare with Object.is/structural equality like Node's assert/strict module, where equal IS strictEqual" }, { "id": "node-builtin.assert.notEqual", "kind": "node-builtin", "name": "assert.notEqual", "status": "unsupported", "code": "SC2020", "note": "loose == equality has no lowering — the strict forms compare with Object.is/structural equality like Node's assert/strict module, where equal IS strictEqual" }, { "id": "node-builtin.assert.rejects", "kind": "node-builtin", "name": "assert.rejects", "status": "unsupported", "code": "SC2020", "note": "await the promise inside assert.throws's callback story instead: try { await p; assert.fail(\"expected rejection\") } catch { ... }" }, { "id": "node-builtin.assert.strict", "kind": "node-builtin", "name": "assert/strict", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.assert.strict.AssertionError", "kind": "node-builtin", "name": "assert/strict.AssertionError", "status": "unsupported", "code": "SC2020", "note": "the class itself has no lowering — catch and test err.name === \"AssertionError\" or err.code === \"ERR_ASSERTION\"" }, { "id": "node-builtin.assert.strict.doesNotReject", "kind": "node-builtin", "name": "assert/strict.doesNotReject", "status": "unsupported", "code": "SC2020", "note": "await the promise directly — an unexpected rejection already fails the test" }, { "id": "node-builtin.assert.strict.doesNotThrow", "kind": "node-builtin", "name": "assert/strict.doesNotThrow", "status": "unsupported", "code": "SC2020", "note": "call the function directly — an unexpected throw already fails the test" }, { "id": "node-builtin.assert.strict.ifError", "kind": "node-builtin", "name": "assert/strict.ifError", "status": "unsupported", "code": "SC2020", "note": "test explicitly instead: assert.strictEqual(err, null) / assert.strictEqual(err, undefined)" }, { "id": "node-builtin.assert.strict.rejects", "kind": "node-builtin", "name": "assert/strict.rejects", "status": "unsupported", "code": "SC2020", "note": "await the promise inside assert.throws's callback story instead: try { await p; assert.fail(\"expected rejection\") } catch { ... }" }, { "id": "node-builtin.async_hooks", "kind": "node-builtin", "name": "async_hooks", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.buffer", "kind": "node-builtin", "name": "buffer", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.child_process", "kind": "node-builtin", "name": "child_process", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.child_process.execFile", "kind": "node-builtin", "name": "child_process.execFile", "status": "unsupported", "code": "SC2020", "note": "the callback form has no lowering — promisify it: const execFileAsync = promisify(execFile) (from node:util), or use execFileSync" }, { "id": "node-builtin.child_process.execFileSync", "kind": "node-builtin", "name": "child_process.execFileSync", "status": "static" }, { "id": "node-builtin.child_process.execSync", "kind": "node-builtin", "name": "child_process.execSync", "status": "static" }, { "id": "node-builtin.child_process.spawn", "kind": "node-builtin", "name": "child_process.spawn", "status": "static" }, { "id": "node-builtin.child_process.spawnSync", "kind": "node-builtin", "name": "child_process.spawnSync", "status": "static" }, { "id": "node-builtin.cluster", "kind": "node-builtin", "name": "cluster", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.cluster.isMaster", "kind": "node-builtin", "name": "cluster.isMaster", "status": "static", "note": "constant value read" }, { "id": "node-builtin.cluster.isPrimary", "kind": "node-builtin", "name": "cluster.isPrimary", "status": "static", "note": "constant value read" }, { "id": "node-builtin.cluster.isWorker", "kind": "node-builtin", "name": "cluster.isWorker", "status": "static", "note": "constant value read" }, { "id": "node-builtin.crypto", "kind": "node-builtin", "name": "crypto", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.crypto.createCipheriv", "kind": "node-builtin", "name": "crypto.createCipheriv", "status": "unsupported", "code": "SC2020", "note": "symmetric ciphers need a cipher stack the static runtime does not vendor — the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.createDecipheriv", "kind": "node-builtin", "name": "crypto.createDecipheriv", "status": "unsupported", "code": "SC2020", "note": "symmetric ciphers need a cipher stack the static runtime does not vendor — the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.createDiffieHellman", "kind": "node-builtin", "name": "crypto.createDiffieHellman", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.createDiffieHellmanGroup", "kind": "node-builtin", "name": "crypto.createDiffieHellmanGroup", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.createECDH", "kind": "node-builtin", "name": "crypto.createECDH", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.createHash", "kind": "node-builtin", "name": "crypto.createHash", "status": "unsupported", "code": "SC2020", "note": "the one lowered shape is the composed chain createHash(\"sha256\").update(data).digest(\"hex\") — the Hash handle itself has no lowering" }, { "id": "node-builtin.crypto.createHmac", "kind": "node-builtin", "name": "crypto.createHmac", "status": "unsupported", "code": "SC2020", "note": "HMAC has no lowering yet — the lowered crypto surface is randomUUID, randomBytes, the createHash(\"sha256\"|\"sha1\") chain, and the introspection statics" }, { "id": "node-builtin.crypto.createPrivateKey", "kind": "node-builtin", "name": "crypto.createPrivateKey", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.createPublicKey", "kind": "node-builtin", "name": "crypto.createPublicKey", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.createSecretKey", "kind": "node-builtin", "name": "crypto.createSecretKey", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.createSign", "kind": "node-builtin", "name": "crypto.createSign", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.createVerify", "kind": "node-builtin", "name": "crypto.createVerify", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.diffieHellman", "kind": "node-builtin", "name": "crypto.diffieHellman", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.generateKey", "kind": "node-builtin", "name": "crypto.generateKey", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.generateKeyPair", "kind": "node-builtin", "name": "crypto.generateKeyPair", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.generateKeyPairSync", "kind": "node-builtin", "name": "crypto.generateKeyPairSync", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.generateKeySync", "kind": "node-builtin", "name": "crypto.generateKeySync", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.getCipherInfo", "kind": "node-builtin", "name": "crypto.getCipherInfo", "status": "unsupported", "code": "SC2020", "note": "symmetric ciphers need a cipher stack the static runtime does not vendor — the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.getDiffieHellman", "kind": "node-builtin", "name": "crypto.getDiffieHellman", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.hash", "kind": "node-builtin", "name": "crypto.hash", "status": "unsupported", "code": "SC2020", "note": "the one-shot digest has no lowering — the composed chain createHash(\"sha256\").update(data).digest(\"hex\") is the lowered hashing surface" }, { "id": "node-builtin.crypto.hkdf", "kind": "node-builtin", "name": "crypto.hkdf", "status": "unsupported", "code": "SC2020", "note": "key-derivation functions have no lowering yet — the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.hkdfSync", "kind": "node-builtin", "name": "crypto.hkdfSync", "status": "unsupported", "code": "SC2020", "note": "key-derivation functions have no lowering yet — the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.pbkdf2", "kind": "node-builtin", "name": "crypto.pbkdf2", "status": "unsupported", "code": "SC2020", "note": "key-derivation functions have no lowering yet — the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.pbkdf2Sync", "kind": "node-builtin", "name": "crypto.pbkdf2Sync", "status": "unsupported", "code": "SC2020", "note": "key-derivation functions have no lowering yet — the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.privateDecrypt", "kind": "node-builtin", "name": "crypto.privateDecrypt", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.privateEncrypt", "kind": "node-builtin", "name": "crypto.privateEncrypt", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.publicDecrypt", "kind": "node-builtin", "name": "crypto.publicDecrypt", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.publicEncrypt", "kind": "node-builtin", "name": "crypto.publicEncrypt", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.randomBytes", "kind": "node-builtin", "name": "crypto.randomBytes", "status": "static" }, { "id": "node-builtin.crypto.randomUUID", "kind": "node-builtin", "name": "crypto.randomUUID", "status": "static" }, { "id": "node-builtin.crypto.scrypt", "kind": "node-builtin", "name": "crypto.scrypt", "status": "unsupported", "code": "SC2020", "note": "key-derivation functions have no lowering yet — the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.scryptSync", "kind": "node-builtin", "name": "crypto.scryptSync", "status": "unsupported", "code": "SC2020", "note": "key-derivation functions have no lowering yet — the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.setFips", "kind": "node-builtin", "name": "crypto.setFips", "status": "unsupported", "code": "SC2020", "note": "a compiled binary has no FIPS provider to enable, and Node itself throws on setFips(true) in a non-FIPS build — getFips() answers 0 here" }, { "id": "node-builtin.crypto.sign", "kind": "node-builtin", "name": "crypto.sign", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.verify", "kind": "node-builtin", "name": "crypto.verify", "status": "unsupported", "code": "SC2020", "note": "asymmetric-key operations need a public-key stack (bignum, RSA/EC/EdDSA math) and a KeyObject value model — neither exists in the static runtime, so no faithful lowering can be small; the lowered crypto surface is hashing, randomness, and the introspection statics" }, { "id": "node-builtin.crypto.webcrypto", "kind": "node-builtin", "name": "crypto.webcrypto", "status": "unsupported", "code": "SC2020", "note": "the WebCrypto object has no lowering — the lowered crypto surface is randomUUID, randomBytes, and the createHash chain" }, { "id": "node-builtin.dgram", "kind": "node-builtin", "name": "dgram", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.diagnostics_channel", "kind": "node-builtin", "name": "diagnostics_channel", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.diagnostics_channel.channel", "kind": "node-builtin", "name": "diagnostics_channel.channel", "status": "static" }, { "id": "node-builtin.diagnostics_channel.hasSubscribers", "kind": "node-builtin", "name": "diagnostics_channel.hasSubscribers", "status": "static" }, { "id": "node-builtin.diagnostics_channel.subscribe", "kind": "node-builtin", "name": "diagnostics_channel.subscribe", "status": "static" }, { "id": "node-builtin.diagnostics_channel.tracingChannel", "kind": "node-builtin", "name": "diagnostics_channel.tracingChannel", "status": "static" }, { "id": "node-builtin.diagnostics_channel.unsubscribe", "kind": "node-builtin", "name": "diagnostics_channel.unsubscribe", "status": "static" }, { "id": "node-builtin.dns", "kind": "node-builtin", "name": "dns", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.events", "kind": "node-builtin", "name": "events", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.fs", "kind": "node-builtin", "name": "fs", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.fs.accessSync", "kind": "node-builtin", "name": "fs.accessSync", "status": "static" }, { "id": "node-builtin.fs.appendFileSync", "kind": "node-builtin", "name": "fs.appendFileSync", "status": "static" }, { "id": "node-builtin.fs.chmodSync", "kind": "node-builtin", "name": "fs.chmodSync", "status": "static" }, { "id": "node-builtin.fs.chownSync", "kind": "node-builtin", "name": "fs.chownSync", "status": "static" }, { "id": "node-builtin.fs.closeSync", "kind": "node-builtin", "name": "fs.closeSync", "status": "static" }, { "id": "node-builtin.fs.copyFileSync", "kind": "node-builtin", "name": "fs.copyFileSync", "status": "static" }, { "id": "node-builtin.fs.existsSync", "kind": "node-builtin", "name": "fs.existsSync", "status": "static" }, { "id": "node-builtin.fs.lstatSync", "kind": "node-builtin", "name": "fs.lstatSync", "status": "static" }, { "id": "node-builtin.fs.mkdirSync", "kind": "node-builtin", "name": "fs.mkdirSync", "status": "static" }, { "id": "node-builtin.fs.mkdtempSync", "kind": "node-builtin", "name": "fs.mkdtempSync", "status": "static" }, { "id": "node-builtin.fs.openSync", "kind": "node-builtin", "name": "fs.openSync", "status": "static" }, { "id": "node-builtin.fs.promises", "kind": "node-builtin", "name": "fs/promises", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.fs.promises.chmod", "kind": "node-builtin", "name": "fs/promises.chmod", "status": "static" }, { "id": "node-builtin.fs.promises.mkdir", "kind": "node-builtin", "name": "fs/promises.mkdir", "status": "static" }, { "id": "node-builtin.fs.promises.readFile", "kind": "node-builtin", "name": "fs/promises.readFile", "status": "static" }, { "id": "node-builtin.fs.promises.readdir", "kind": "node-builtin", "name": "fs/promises.readdir", "status": "static" }, { "id": "node-builtin.fs.promises.rm", "kind": "node-builtin", "name": "fs/promises.rm", "status": "static" }, { "id": "node-builtin.fs.promises.stat", "kind": "node-builtin", "name": "fs/promises.stat", "status": "static" }, { "id": "node-builtin.fs.promises.unlink", "kind": "node-builtin", "name": "fs/promises.unlink", "status": "static" }, { "id": "node-builtin.fs.promises.writeFile", "kind": "node-builtin", "name": "fs/promises.writeFile", "status": "static" }, { "id": "node-builtin.fs.readFileSync", "kind": "node-builtin", "name": "fs.readFileSync", "status": "static" }, { "id": "node-builtin.fs.readSync", "kind": "node-builtin", "name": "fs.readSync", "status": "static" }, { "id": "node-builtin.fs.readdirSync", "kind": "node-builtin", "name": "fs.readdirSync", "status": "static" }, { "id": "node-builtin.fs.realpathSync", "kind": "node-builtin", "name": "fs.realpathSync", "status": "static" }, { "id": "node-builtin.fs.rmSync", "kind": "node-builtin", "name": "fs.rmSync", "status": "static" }, { "id": "node-builtin.fs.rmdirSync", "kind": "node-builtin", "name": "fs.rmdirSync", "status": "static" }, { "id": "node-builtin.fs.statSync", "kind": "node-builtin", "name": "fs.statSync", "status": "static" }, { "id": "node-builtin.fs.unlinkSync", "kind": "node-builtin", "name": "fs.unlinkSync", "status": "static" }, { "id": "node-builtin.fs.watch", "kind": "node-builtin", "name": "fs.watch", "status": "static" }, { "id": "node-builtin.fs.writeFileSync", "kind": "node-builtin", "name": "fs.writeFileSync", "status": "static" }, { "id": "node-builtin.http", "kind": "node-builtin", "name": "http", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.http2", "kind": "node-builtin", "name": "http2", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.http2.connect", "kind": "node-builtin", "name": "http2.connect", "status": "unsupported", "code": "SC2020", "note": "HTTP/2 client sessions have no lowering — the lowered http2 surface is the SERVER side: createSecureServer({ allowHTTP1: true, cert, key }), which serves HTTP/1.1 only (ALPN never offers h2 — h2-capable clients negotiate down); an HTTP/1.1 client is https.request" }, { "id": "node-builtin.http2.createServer", "kind": "node-builtin", "name": "http2.createServer", "status": "unsupported", "code": "SC2020", "note": "cleartext (h2c) servers have no lowering — the lowered http2 surface is createSecureServer({ allowHTTP1: true, cert, key }), which serves HTTP/1.1 over TLS (plain HTTP/1.1 is http.createServer)" }, { "id": "node-builtin.https", "kind": "node-builtin", "name": "https", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.module", "kind": "node-builtin", "name": "module", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.module.createRequire", "kind": "node-builtin", "name": "module.createRequire", "status": "unsupported", "code": "SC2020", "note": "the lowered shape is a const binding over createRequire(import.meta.url) (or __filename) whose require calls take STATIC string literals — builtins, relative .json documents, and installed npm packages (under --dynamic) resolve at build time; dynamic specifiers cannot exist in a compiled binary's fixed module graph" }, { "id": "node-builtin.module.isBuiltin", "kind": "node-builtin", "name": "module.isBuiltin", "status": "unsupported", "code": "SC2020", "note": "builtinModules.includes(name) answers the same question over the baked list (strip a node: prefix first; the prefix-only builtins appear with it, as node:test)" }, { "id": "node-builtin.module.syncBuiltinESMExports", "kind": "node-builtin", "name": "module.syncBuiltinESMExports", "status": "unsupported", "code": "SC2020", "note": "a compiled program has no live builtin ESM namespace bindings to synchronize — nothing a compiled surface can mutate makes the call observable; remove it" }, { "id": "node-builtin.net", "kind": "node-builtin", "name": "net", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.net.getDefaultAutoSelectFamilyAttemptTimeout", "kind": "node-builtin", "name": "net.getDefaultAutoSelectFamilyAttemptTimeout", "status": "static" }, { "id": "node-builtin.net.setDefaultAutoSelectFamilyAttemptTimeout", "kind": "node-builtin", "name": "net.setDefaultAutoSelectFamilyAttemptTimeout", "status": "static" }, { "id": "node-builtin.os", "kind": "node-builtin", "name": "os", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.os.EOL", "kind": "node-builtin", "name": "os.EOL", "status": "static", "note": "constant value read" }, { "id": "node-builtin.os.homedir", "kind": "node-builtin", "name": "os.homedir", "status": "static" }, { "id": "node-builtin.os.networkInterfaces", "kind": "node-builtin", "name": "os.networkInterfaces", "status": "static" }, { "id": "node-builtin.os.platform", "kind": "node-builtin", "name": "os.platform", "status": "static" }, { "id": "node-builtin.os.release", "kind": "node-builtin", "name": "os.release", "status": "static" }, { "id": "node-builtin.os.tmpdir", "kind": "node-builtin", "name": "os.tmpdir", "status": "static" }, { "id": "node-builtin.os.totalmem", "kind": "node-builtin", "name": "os.totalmem", "status": "static" }, { "id": "node-builtin.os.type", "kind": "node-builtin", "name": "os.type", "status": "static" }, { "id": "node-builtin.os.userInfo", "kind": "node-builtin", "name": "os.userInfo", "status": "static" }, { "id": "node-builtin.path", "kind": "node-builtin", "name": "path", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.path.basename", "kind": "node-builtin", "name": "path.basename", "status": "static" }, { "id": "node-builtin.path.delimiter", "kind": "node-builtin", "name": "path.delimiter", "status": "static", "note": "constant value read" }, { "id": "node-builtin.path.dirname", "kind": "node-builtin", "name": "path.dirname", "status": "static" }, { "id": "node-builtin.path.extname", "kind": "node-builtin", "name": "path.extname", "status": "static" }, { "id": "node-builtin.path.isAbsolute", "kind": "node-builtin", "name": "path.isAbsolute", "status": "static" }, { "id": "node-builtin.path.join", "kind": "node-builtin", "name": "path.join", "status": "static" }, { "id": "node-builtin.path.normalize", "kind": "node-builtin", "name": "path.normalize", "status": "static" }, { "id": "node-builtin.path.posix", "kind": "node-builtin", "name": "path/posix", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.path.posix.basename", "kind": "node-builtin", "name": "path/posix.basename", "status": "static" }, { "id": "node-builtin.path.posix.delimiter", "kind": "node-builtin", "name": "path/posix.delimiter", "status": "static", "note": "constant value read" }, { "id": "node-builtin.path.posix.dirname", "kind": "node-builtin", "name": "path/posix.dirname", "status": "static" }, { "id": "node-builtin.path.posix.extname", "kind": "node-builtin", "name": "path/posix.extname", "status": "static" }, { "id": "node-builtin.path.posix.isAbsolute", "kind": "node-builtin", "name": "path/posix.isAbsolute", "status": "static" }, { "id": "node-builtin.path.posix.join", "kind": "node-builtin", "name": "path/posix.join", "status": "static" }, { "id": "node-builtin.path.posix.normalize", "kind": "node-builtin", "name": "path/posix.normalize", "status": "static" }, { "id": "node-builtin.path.posix.relative", "kind": "node-builtin", "name": "path/posix.relative", "status": "static" }, { "id": "node-builtin.path.posix.resolve", "kind": "node-builtin", "name": "path/posix.resolve", "status": "static" }, { "id": "node-builtin.path.posix.sep", "kind": "node-builtin", "name": "path/posix.sep", "status": "static", "note": "constant value read" }, { "id": "node-builtin.path.posix.toNamespacedPath", "kind": "node-builtin", "name": "path/posix.toNamespacedPath", "status": "static" }, { "id": "node-builtin.path.relative", "kind": "node-builtin", "name": "path.relative", "status": "static" }, { "id": "node-builtin.path.resolve", "kind": "node-builtin", "name": "path.resolve", "status": "static" }, { "id": "node-builtin.path.sep", "kind": "node-builtin", "name": "path.sep", "status": "static", "note": "constant value read" }, { "id": "node-builtin.path.toNamespacedPath", "kind": "node-builtin", "name": "path.toNamespacedPath", "status": "static" }, { "id": "node-builtin.path.win32", "kind": "node-builtin", "name": "path/win32", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.path.win32.basename", "kind": "node-builtin", "name": "path/win32.basename", "status": "static" }, { "id": "node-builtin.path.win32.delimiter", "kind": "node-builtin", "name": "path/win32.delimiter", "status": "static", "note": "constant value read" }, { "id": "node-builtin.path.win32.dirname", "kind": "node-builtin", "name": "path/win32.dirname", "status": "static" }, { "id": "node-builtin.path.win32.extname", "kind": "node-builtin", "name": "path/win32.extname", "status": "static" }, { "id": "node-builtin.path.win32.isAbsolute", "kind": "node-builtin", "name": "path/win32.isAbsolute", "status": "static" }, { "id": "node-builtin.path.win32.join", "kind": "node-builtin", "name": "path/win32.join", "status": "static" }, { "id": "node-builtin.path.win32.normalize", "kind": "node-builtin", "name": "path/win32.normalize", "status": "static" }, { "id": "node-builtin.path.win32.relative", "kind": "node-builtin", "name": "path/win32.relative", "status": "static" }, { "id": "node-builtin.path.win32.resolve", "kind": "node-builtin", "name": "path/win32.resolve", "status": "static" }, { "id": "node-builtin.path.win32.sep", "kind": "node-builtin", "name": "path/win32.sep", "status": "static", "note": "constant value read" }, { "id": "node-builtin.path.win32.toNamespacedPath", "kind": "node-builtin", "name": "path/win32.toNamespacedPath", "status": "static" }, { "id": "node-builtin.perf_hooks", "kind": "node-builtin", "name": "perf_hooks", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.perf_hooks.performance.now", "kind": "node-builtin", "name": "perf_hooks.performance.now", "status": "static", "note": "the global performance object and the performance.now.bind(performance) function value reach the same clock" }, { "id": "node-builtin.process.argv", "kind": "node-builtin", "name": "process.argv", "status": "static" }, { "id": "node-builtin.process.availableMemory", "kind": "node-builtin", "name": "process.availableMemory", "status": "static" }, { "id": "node-builtin.process.chdir", "kind": "node-builtin", "name": "process.chdir", "status": "static" }, { "id": "node-builtin.process.columns", "kind": "node-builtin", "name": "process.columns", "status": "static", "note": "the columns read on the process stdio streams (terminal geometry)" }, { "id": "node-builtin.process.constrainedMemory", "kind": "node-builtin", "name": "process.constrainedMemory", "status": "static" }, { "id": "node-builtin.process.cpuUsage", "kind": "node-builtin", "name": "process.cpuUsage", "status": "static", "note": "the plain-sample and previous-value diff forms are one surface" }, { "id": "node-builtin.process.cwd", "kind": "node-builtin", "name": "process.cwd", "status": "static" }, { "id": "node-builtin.process.env", "kind": "node-builtin", "name": "process.env", "status": "static", "note": "reads, writes, deletes, and enumeration of the process environment (the process global)" }, { "id": "node-builtin.process.execPath", "kind": "node-builtin", "name": "process.execPath", "status": "static" }, { "id": "node-builtin.process.exit", "kind": "node-builtin", "name": "process.exit", "status": "static", "note": "process.exit and the process._exiting flag read are one surface" }, { "id": "node-builtin.process.getgid", "kind": "node-builtin", "name": "process.getgid", "status": "static" }, { "id": "node-builtin.process.getuid", "kind": "node-builtin", "name": "process.getuid", "status": "static" }, { "id": "node-builtin.process.isTTY", "kind": "node-builtin", "name": "process.isTTY", "status": "static", "note": "the isTTY read on process.stdin/stdout/stderr — one surface across the three streams" }, { "id": "node-builtin.process.kill", "kind": "node-builtin", "name": "process.kill", "status": "static", "note": "the signal-name and signal-number forms are one surface" }, { "id": "node-builtin.process.pid", "kind": "node-builtin", "name": "process.pid", "status": "static" }, { "id": "node-builtin.process.resourceUsage", "kind": "node-builtin", "name": "process.resourceUsage", "status": "static", "note": "getrusage's 16 fields — every field read samples live machine state" }, { "id": "node-builtin.process.threadCpuUsage", "kind": "node-builtin", "name": "process.threadCpuUsage", "status": "static", "note": "the plain-sample and previous-value diff forms are one surface" }, { "id": "node-builtin.process.umask", "kind": "node-builtin", "name": "process.umask", "status": "static" }, { "id": "node-builtin.process.uptime", "kind": "node-builtin", "name": "process.uptime", "status": "static" }, { "id": "node-builtin.querystring", "kind": "node-builtin", "name": "querystring", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.querystring.decode", "kind": "node-builtin", "name": "querystring.decode", "status": "static" }, { "id": "node-builtin.querystring.encode", "kind": "node-builtin", "name": "querystring.encode", "status": "static" }, { "id": "node-builtin.querystring.escape", "kind": "node-builtin", "name": "querystring.escape", "status": "static" }, { "id": "node-builtin.querystring.parse", "kind": "node-builtin", "name": "querystring.parse", "status": "static" }, { "id": "node-builtin.querystring.stringify", "kind": "node-builtin", "name": "querystring.stringify", "status": "static" }, { "id": "node-builtin.querystring.unescape", "kind": "node-builtin", "name": "querystring.unescape", "status": "static" }, { "id": "node-builtin.readline", "kind": "node-builtin", "name": "readline", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.readline.createInterface", "kind": "node-builtin", "name": "readline.createInterface", "status": "static" }, { "id": "node-builtin.stream", "kind": "node-builtin", "name": "stream", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.stream.consumers", "kind": "node-builtin", "name": "stream/consumers", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.stream.consumers.arrayBuffer", "kind": "node-builtin", "name": "stream/consumers.arrayBuffer", "status": "unsupported", "code": "SC2020", "note": "no free-standing ArrayBuffer value exists here (typed arrays own their storage) — buffer(stream) collects the same bytes as a Buffer" }, { "id": "node-builtin.stream.consumers.blob", "kind": "node-builtin", "name": "stream/consumers.blob", "status": "unsupported", "code": "SC2020", "note": "Blob values have no representation in a compiled binary — buffer(stream) collects the same bytes as a Buffer, text(stream) the decoded text" }, { "id": "node-builtin.stream.promises", "kind": "node-builtin", "name": "stream/promises", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.string_decoder", "kind": "node-builtin", "name": "string_decoder", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.test", "kind": "node-builtin", "name": "node:test", "status": "static", "note": "recognized module (node:-prefixed specifier only, matching Node)" }, { "id": "node-builtin.timers", "kind": "node-builtin", "name": "timers", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.timers.promises", "kind": "node-builtin", "name": "timers/promises", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.timers.promises.setImmediate", "kind": "node-builtin", "name": "timers/promises.setImmediate", "status": "static" }, { "id": "node-builtin.timers.promises.setTimeout", "kind": "node-builtin", "name": "timers/promises.setTimeout", "status": "static" }, { "id": "node-builtin.tls", "kind": "node-builtin", "name": "tls", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.tls.connect", "kind": "node-builtin", "name": "tls.connect", "status": "unsupported", "code": "SC2020", "note": "the lowered TLS client is https.request({ hostname, port, path, method, ca?, rejectUnauthorized? }); raw tls.connect sockets have no lowering yet" }, { "id": "node-builtin.tls.createSecureContext", "kind": "node-builtin", "name": "tls.createSecureContext", "status": "unsupported", "code": "SC2020", "note": "the lowered form is createSecureContext({ cert, key }) — an opaque SecureContext handle for SNI callbacks (http2.createSecureServer accepts SNICallback); other options fence by name" }, { "id": "node-builtin.tls.getCACertificates", "kind": "node-builtin", "name": "tls.getCACertificates", "status": "static", "note": "the per-type cached PEM bundle: 'default' and 'extra' additionally read NODE_EXTRA_CA_CERTS, 'system' the platform store" }, { "id": "node-builtin.tls.rootCertificates", "kind": "node-builtin", "name": "tls.rootCertificates", "status": "static", "note": "the value read; answers the same bundled array as getCACertificates('bundled'), but fenced under its own id — the spelling an author writes" }, { "id": "node-builtin.tls.setDefaultCACertificates", "kind": "node-builtin", "name": "tls.setDefaultCACertificates", "status": "static", "note": "replaces the default set and the client trust anchors for the rest of the process" }, { "id": "node-builtin.tty", "kind": "node-builtin", "name": "tty", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.url", "kind": "node-builtin", "name": "url", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.url.fileURLToPath", "kind": "node-builtin", "name": "url.fileURLToPath", "status": "static" }, { "id": "node-builtin.url.pathToFileURL", "kind": "node-builtin", "name": "url.pathToFileURL", "status": "static" }, { "id": "node-builtin.util", "kind": "node-builtin", "name": "util", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.util.promisify", "kind": "node-builtin", "name": "util.promisify", "status": "unsupported", "code": "SC2020", "note": "the one lowered shape is a const binding over child_process.execFile: const execFileAsync = promisify(execFile), then call execFileAsync directly" }, { "id": "node-builtin.util.types", "kind": "node-builtin", "name": "util/types", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.worker_threads", "kind": "node-builtin", "name": "worker_threads", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.worker_threads.isMainThread", "kind": "node-builtin", "name": "worker_threads.isMainThread", "status": "static", "note": "constant value read" }, { "id": "node-builtin.worker_threads.threadId", "kind": "node-builtin", "name": "worker_threads.threadId", "status": "static", "note": "constant value read" }, { "id": "node-builtin.zlib", "kind": "node-builtin", "name": "zlib", "status": "static", "note": "recognized module (bare and node:-prefixed specifiers)" }, { "id": "node-builtin.zlib.brotliCompressSync", "kind": "node-builtin", "name": "zlib.brotliCompressSync", "status": "unsupported", "code": "SC2020", "note": "deflateSync and inflateSync are the lowered zlib surface" }, { "id": "node-builtin.zlib.brotliDecompressSync", "kind": "node-builtin", "name": "zlib.brotliDecompressSync", "status": "unsupported", "code": "SC2020", "note": "deflateSync and inflateSync are the lowered zlib surface" }, { "id": "node-builtin.zlib.deflateSync", "kind": "node-builtin", "name": "zlib.deflateSync", "status": "static" }, { "id": "node-builtin.zlib.gunzipSync", "kind": "node-builtin", "name": "zlib.gunzipSync", "status": "unsupported", "code": "SC2020", "note": "deflateSync and inflateSync are the lowered zlib surface" }, { "id": "node-builtin.zlib.gzipSync", "kind": "node-builtin", "name": "zlib.gzipSync", "status": "unsupported", "code": "SC2020", "note": "deflateSync and inflateSync are the lowered zlib surface" }, { "id": "node-builtin.zlib.inflateSync", "kind": "node-builtin", "name": "zlib.inflateSync", "status": "static" }, { "id": "node-builtin.zlib.unzipSync", "kind": "node-builtin", "name": "zlib.unzipSync", "status": "unsupported", "code": "SC2020", "note": "deflateSync and inflateSync are the lowered zlib surface" }, { "id": "stdlib.array.at", "kind": "stdlib", "name": "Array.prototype.at", "status": "static" }, { "id": "stdlib.array.concat", "kind": "stdlib", "name": "Array.prototype.concat", "status": "static" }, { "id": "stdlib.array.every", "kind": "stdlib", "name": "Array.prototype.every", "status": "static" }, { "id": "stdlib.array.filter", "kind": "stdlib", "name": "Array.prototype.filter", "status": "static" }, { "id": "stdlib.array.find", "kind": "stdlib", "name": "Array.prototype.find", "status": "static" }, { "id": "stdlib.array.findIndex", "kind": "stdlib", "name": "Array.prototype.findIndex", "status": "static" }, { "id": "stdlib.array.findLast", "kind": "stdlib", "name": "Array.prototype.findLast", "status": "static" }, { "id": "stdlib.array.findLastIndex", "kind": "stdlib", "name": "Array.prototype.findLastIndex", "status": "static" }, { "id": "stdlib.array.flatMap", "kind": "stdlib", "name": "Array.prototype.flatMap", "status": "static" }, { "id": "stdlib.array.forEach", "kind": "stdlib", "name": "Array.prototype.forEach", "status": "static" }, { "id": "stdlib.array.includes", "kind": "stdlib", "name": "Array.prototype.includes", "status": "static" }, { "id": "stdlib.array.indexOf", "kind": "stdlib", "name": "Array.prototype.indexOf", "status": "static" }, { "id": "stdlib.array.join", "kind": "stdlib", "name": "Array.prototype.join", "status": "static" }, { "id": "stdlib.array.map", "kind": "stdlib", "name": "Array.prototype.map", "status": "static" }, { "id": "stdlib.array.pop", "kind": "stdlib", "name": "Array.prototype.pop", "status": "static" }, { "id": "stdlib.array.push", "kind": "stdlib", "name": "Array.prototype.push", "status": "static" }, { "id": "stdlib.array.reduce", "kind": "stdlib", "name": "Array.prototype.reduce", "status": "static" }, { "id": "stdlib.array.reduceRight", "kind": "stdlib", "name": "Array.prototype.reduceRight", "status": "static" }, { "id": "stdlib.array.slice", "kind": "stdlib", "name": "Array.prototype.slice", "status": "static" }, { "id": "stdlib.array.some", "kind": "stdlib", "name": "Array.prototype.some", "status": "static" }, { "id": "stdlib.array.toReversed", "kind": "stdlib", "name": "Array.prototype.toReversed", "status": "static" }, { "id": "stdlib.array.toSorted", "kind": "stdlib", "name": "Array.prototype.toSorted", "status": "static" }, { "id": "stdlib.array.toSpliced", "kind": "stdlib", "name": "Array.prototype.toSpliced", "status": "static" }, { "id": "stdlib.array.with", "kind": "stdlib", "name": "Array.prototype.with", "status": "static" }, { "id": "stdlib.date.UTC", "kind": "stdlib", "name": "Date.UTC", "status": "static", "note": "the lowered call form takes 1 to 7 number arguments" }, { "id": "stdlib.date.getTime", "kind": "stdlib", "name": "Date.prototype.getTime", "status": "static", "note": "the composed new Date(dateString).getTime() form; new Date().getTime() is stdlib.date.now's surface" }, { "id": "stdlib.date.now", "kind": "stdlib", "name": "Date.now", "status": "static", "note": "the live clock; the zero-argument new Date() compositions read it too" }, { "id": "stdlib.date.toISOString", "kind": "stdlib", "name": "Date.prototype.toISOString", "status": "static", "note": "the composed new Date(ms?).toISOString() form" }, { "id": "stdlib.map.clear", "kind": "stdlib", "name": "Map.prototype.clear", "status": "static" }, { "id": "stdlib.map.delete", "kind": "stdlib", "name": "Map.prototype.delete", "status": "static" }, { "id": "stdlib.map.forEach", "kind": "stdlib", "name": "Map.prototype.forEach", "status": "static" }, { "id": "stdlib.map.get", "kind": "stdlib", "name": "Map.prototype.get", "status": "static" }, { "id": "stdlib.map.has", "kind": "stdlib", "name": "Map.prototype.has", "status": "static" }, { "id": "stdlib.map.set", "kind": "stdlib", "name": "Map.prototype.set", "status": "static" }, { "id": "stdlib.math.E", "kind": "stdlib", "name": "Math.E", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.PI", "kind": "stdlib", "name": "Math.PI", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.abs", "kind": "stdlib", "name": "Math.abs", "status": "static", "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" }, { "id": "stdlib.math.acos", "kind": "stdlib", "name": "Math.acos", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.asin", "kind": "stdlib", "name": "Math.asin", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.atan", "kind": "stdlib", "name": "Math.atan", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.atan2", "kind": "stdlib", "name": "Math.atan2", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.cbrt", "kind": "stdlib", "name": "Math.cbrt", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.ceil", "kind": "stdlib", "name": "Math.ceil", "status": "static", "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" }, { "id": "stdlib.math.cos", "kind": "stdlib", "name": "Math.cos", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.exp", "kind": "stdlib", "name": "Math.exp", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.floor", "kind": "stdlib", "name": "Math.floor", "status": "static", "note": "compiles statically at arity 1" }, { "id": "stdlib.math.hypot", "kind": "stdlib", "name": "Math.hypot", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.log", "kind": "stdlib", "name": "Math.log", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.log10", "kind": "stdlib", "name": "Math.log10", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.log2", "kind": "stdlib", "name": "Math.log2", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.max", "kind": "stdlib", "name": "Math.max", "status": "static", "note": "compiles statically at arity 2" }, { "id": "stdlib.math.min", "kind": "stdlib", "name": "Math.min", "status": "static", "note": "compiles statically at arity 2" }, { "id": "stdlib.math.pow", "kind": "stdlib", "name": "Math.pow", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.random", "kind": "stdlib", "name": "Math.random", "status": "static", "note": "compiles statically at arity 0" }, { "id": "stdlib.math.round", "kind": "stdlib", "name": "Math.round", "status": "static", "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" }, { "id": "stdlib.math.sign", "kind": "stdlib", "name": "Math.sign", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.sin", "kind": "stdlib", "name": "Math.sin", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.sqrt", "kind": "stdlib", "name": "Math.sqrt", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.tan", "kind": "stdlib", "name": "Math.tan", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.math.trunc", "kind": "stdlib", "name": "Math.trunc", "status": "static", "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" }, { "id": "stdlib.number.toFixed", "kind": "stdlib", "name": "number.prototype.toFixed", "status": "static", "note": "the lowered call form takes 0 to 1 arguments" }, { "id": "stdlib.number.toPrecision", "kind": "stdlib", "name": "number.prototype.toPrecision", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.number.toString", "kind": "stdlib", "name": "number.prototype.toString", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.set.add", "kind": "stdlib", "name": "Set.prototype.add", "status": "static" }, { "id": "stdlib.set.clear", "kind": "stdlib", "name": "Set.prototype.clear", "status": "static" }, { "id": "stdlib.set.delete", "kind": "stdlib", "name": "Set.prototype.delete", "status": "static" }, { "id": "stdlib.set.difference", "kind": "stdlib", "name": "Set.prototype.difference", "status": "static", "note": "compiles over Set receivers with Set arguments (the general ReadonlySetLike argument forms are refused per site)" }, { "id": "stdlib.set.forEach", "kind": "stdlib", "name": "Set.prototype.forEach", "status": "static" }, { "id": "stdlib.set.has", "kind": "stdlib", "name": "Set.prototype.has", "status": "static" }, { "id": "stdlib.set.intersection", "kind": "stdlib", "name": "Set.prototype.intersection", "status": "static", "note": "compiles over Set receivers with Set arguments (the general ReadonlySetLike argument forms are refused per site)" }, { "id": "stdlib.set.isDisjointFrom", "kind": "stdlib", "name": "Set.prototype.isDisjointFrom", "status": "static", "note": "compiles over Set receivers with Set arguments (the general ReadonlySetLike argument forms are refused per site)" }, { "id": "stdlib.set.isSubsetOf", "kind": "stdlib", "name": "Set.prototype.isSubsetOf", "status": "static", "note": "compiles over Set receivers with Set arguments (the general ReadonlySetLike argument forms are refused per site)" }, { "id": "stdlib.set.isSupersetOf", "kind": "stdlib", "name": "Set.prototype.isSupersetOf", "status": "static", "note": "compiles over Set receivers with Set arguments (the general ReadonlySetLike argument forms are refused per site)" }, { "id": "stdlib.set.symmetricDifference", "kind": "stdlib", "name": "Set.prototype.symmetricDifference", "status": "static", "note": "compiles over Set receivers with Set arguments (the general ReadonlySetLike argument forms are refused per site)" }, { "id": "stdlib.set.union", "kind": "stdlib", "name": "Set.prototype.union", "status": "static", "note": "compiles over Set receivers with Set arguments (the general ReadonlySetLike argument forms are refused per site)" }, { "id": "stdlib.string.at", "kind": "stdlib", "name": "string.prototype.at", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.string.charAt", "kind": "stdlib", "name": "string.prototype.charAt", "status": "static", "note": "the lowered call form takes exactly 1 argument" }, { "id": "stdlib.string.charCodeAt", "kind": "stdlib", "name": "string.prototype.charCodeAt", "status": "static", "note": "the lowered call form takes exactly 1 argument" }, { "id": "stdlib.string.endsWith", "kind": "stdlib", "name": "string.prototype.endsWith", "status": "static", "note": "the lowered call form takes exactly 1 argument" }, { "id": "stdlib.string.includes", "kind": "stdlib", "name": "string.prototype.includes", "status": "static", "note": "the lowered call form takes 1 to 2 arguments" }, { "id": "stdlib.string.indexOf", "kind": "stdlib", "name": "string.prototype.indexOf", "status": "static", "note": "the lowered call form takes 1 to 2 arguments" }, { "id": "stdlib.string.isWellFormed", "kind": "stdlib", "name": "string.prototype.isWellFormed", "status": "static", "note": "the lowered call form takes no arguments" }, { "id": "stdlib.string.padEnd", "kind": "stdlib", "name": "string.prototype.padEnd", "status": "static", "note": "the lowered call form takes 1 to 2 arguments" }, { "id": "stdlib.string.padStart", "kind": "stdlib", "name": "string.prototype.padStart", "status": "static", "note": "the lowered call form takes 1 to 2 arguments" }, { "id": "stdlib.string.repeat", "kind": "stdlib", "name": "string.prototype.repeat", "status": "static", "note": "the lowered call form takes exactly 1 argument" }, { "id": "stdlib.string.replace", "kind": "stdlib", "name": "string.prototype.replace", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.string.replaceAll", "kind": "stdlib", "name": "string.prototype.replaceAll", "status": "dynamic-only", "code": "SC2012" }, { "id": "stdlib.string.slice", "kind": "stdlib", "name": "string.prototype.slice", "status": "static", "note": "the lowered call form takes 0 to 2 arguments" }, { "id": "stdlib.string.split", "kind": "stdlib", "name": "string.prototype.split", "status": "static", "note": "the lowered call form takes exactly 1 argument" }, { "id": "stdlib.string.startsWith", "kind": "stdlib", "name": "string.prototype.startsWith", "status": "static", "note": "the lowered call form takes exactly 1 argument" }, { "id": "stdlib.string.substring", "kind": "stdlib", "name": "string.prototype.substring", "status": "static", "note": "the lowered call form takes 1 to 2 arguments" }, { "id": "stdlib.string.toLowerCase", "kind": "stdlib", "name": "string.prototype.toLowerCase", "status": "static", "note": "the lowered call form takes no arguments" }, { "id": "stdlib.string.toUpperCase", "kind": "stdlib", "name": "string.prototype.toUpperCase", "status": "static", "note": "the lowered call form takes no arguments" }, { "id": "stdlib.string.toWellFormed", "kind": "stdlib", "name": "string.prototype.toWellFormed", "status": "static", "note": "the lowered call form takes no arguments" }, { "id": "stdlib.string.trim", "kind": "stdlib", "name": "string.prototype.trim", "status": "static", "note": "the lowered call form takes no arguments" }, { "id": "stdlib.string.trimEnd", "kind": "stdlib", "name": "string.prototype.trimEnd", "status": "static", "note": "the lowered call form takes no arguments" }, { "id": "stdlib.string.trimLeft", "kind": "stdlib", "name": "string.prototype.trimLeft", "status": "static", "note": "the lowered call form takes no arguments" }, { "id": "stdlib.string.trimRight", "kind": "stdlib", "name": "string.prototype.trimRight", "status": "static", "note": "the lowered call form takes no arguments" }, { "id": "stdlib.string.trimStart", "kind": "stdlib", "name": "string.prototype.trimStart", "status": "static", "note": "the lowered call form takes no arguments" }, { "id": "syntax.class-declarations-inside-functions", "kind": "syntax", "name": "class declarations inside functions", "status": "unsupported", "code": "SC1090" }, { "id": "syntax.class-expressions", "kind": "syntax", "name": "class expressions", "status": "unsupported", "code": "SC1020" }, { "id": "syntax.compound-assignment.bitwise-and", "kind": "syntax", "name": "compound assignment operator '&='", "status": "static", "note": "compiles over the operand types the '&' operator supports" }, { "id": "syntax.compound-assignment.bitwise-or", "kind": "syntax", "name": "compound assignment operator '|='", "status": "static", "note": "compiles over the operand types the '|' operator supports" }, { "id": "syntax.compound-assignment.bitwise-xor", "kind": "syntax", "name": "compound assignment operator '^='", "status": "static", "note": "compiles over the operand types the '^' operator supports" }, { "id": "syntax.compound-assignment.divide", "kind": "syntax", "name": "compound assignment operator '/='", "status": "static", "note": "compiles over the operand types the '/' operator supports" }, { "id": "syntax.compound-assignment.exponent", "kind": "syntax", "name": "compound assignment operator '**='", "status": "static", "note": "compiles over the operand types the '**' operator supports" }, { "id": "syntax.compound-assignment.minus", "kind": "syntax", "name": "compound assignment operator '-='", "status": "static", "note": "compiles over the operand types the '-' operator supports" }, { "id": "syntax.compound-assignment.plus", "kind": "syntax", "name": "compound assignment operator '+='", "status": "static", "note": "compiles over the operand types the '+' operator supports" }, { "id": "syntax.compound-assignment.remainder", "kind": "syntax", "name": "compound assignment operator '%='", "status": "static", "note": "compiles over the operand types the '%' operator supports" }, { "id": "syntax.compound-assignment.shift-left", "kind": "syntax", "name": "compound assignment operator '<<='", "status": "static", "note": "compiles over the operand types the '<<' operator supports" }, { "id": "syntax.compound-assignment.shift-right", "kind": "syntax", "name": "compound assignment operator '>>='", "status": "static", "note": "compiles over the operand types the '>>' operator supports" }, { "id": "syntax.compound-assignment.shift-right-unsigned", "kind": "syntax", "name": "compound assignment operator '>>>='", "status": "static", "note": "compiles over the operand types the '>>>' operator supports" }, { "id": "syntax.compound-assignment.times", "kind": "syntax", "name": "compound assignment operator '*='", "status": "static", "note": "compiles over the operand types the '*' operator supports" }, { "id": "syntax.debugger-statements", "kind": "syntax", "name": "debugger statements", "status": "unsupported", "code": "SC1090" }, { "id": "syntax.delete-expressions", "kind": "syntax", "name": "delete expressions", "status": "unsupported", "code": "SC1090" }, { "id": "syntax.namespaces", "kind": "syntax", "name": "namespaces", "status": "unsupported", "code": "SC1090" }, { "id": "syntax.spread-arguments", "kind": "syntax", "name": "spread arguments", "status": "unsupported", "code": "SC1090" }, { "id": "syntax.typeof-expressions", "kind": "syntax", "name": "typeof expressions", "status": "unsupported", "code": "SC1090" }, { "id": "syntax.with-statements", "kind": "syntax", "name": "'with' statements (runtime scope injection has no static resolution — bind the object to a variable and read members through it)", "status": "unsupported", "code": "SC1090" } ] }