mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-02 00:25:34 +08:00
* feat: add Node.js compatibility matrix - Add generated Node.js v24 compatibility inventory with static and dynamic support classifications. - Publish the interactive /compatibility matrix and wire manifest generation into runtime and docs checks. * fix: correct compatibility matrix generation * fix: address PR 284 review findings * fix: address PR 284 review findings * test: exercise stream web loader through npm graph * fix: correct dynamic global availability * fix: keep compatibility module mappings precise
97 lines
10 KiB
JSON
97 lines
10 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"chapterPolicies": {
|
|
"addons": "by-design",
|
|
"n-api": "by-design",
|
|
"embedding": "not-applicable",
|
|
"cli": "not-applicable",
|
|
"debugger": "not-applicable",
|
|
"deprecations": "not-applicable",
|
|
"environment_variables": "unreviewed",
|
|
"errors": "unreviewed",
|
|
"globals": "unreviewed",
|
|
"intl": "not-applicable",
|
|
"modules": "unreviewed",
|
|
"esm": "unreviewed",
|
|
"packages": "unreviewed",
|
|
"typescript": "unreviewed",
|
|
"permissions": "not-implemented",
|
|
"report": "not-implemented",
|
|
"single-executable-applications": "not-applicable",
|
|
"repl": "not-implemented",
|
|
"sqlite": "not-implemented",
|
|
"tracing": "not-implemented",
|
|
"v8": "by-design",
|
|
"vm": "by-design",
|
|
"wasi": "by-design",
|
|
"webcrypto": "unreviewed",
|
|
"webstreams": "unreviewed"
|
|
},
|
|
"evidenceByManifestPrefix": {
|
|
"node-builtin.assert": ["tests/corpus/1600-assert-passing.ts", "tests/corpus/1609-assert-async.ts"],
|
|
"node-builtin.async_hooks": ["tests/corpus/2213-async-local-storage.cjs"],
|
|
"node-builtin.buffer": ["tests/corpus/1402-buffer-encodings.ts", "tests/corpus/1660-buffer-read-write-num.ts"],
|
|
"node-builtin.child_process": ["tests/corpus/1361-spawn-events.ts", "tests/corpus/1565-spawn-pipe-streams.ts"],
|
|
"node-builtin.cluster": ["tests/corpus/957-builtins-namespace.ts"],
|
|
"node-builtin.crypto": ["tests/corpus/1358-crypto-random.ts", "tests/corpus/1534-crypto-hash-chain.ts", "tests/corpus/2556-crypto-introspection.ts"],
|
|
"node-builtin.dgram": ["tests/corpus/2597-dgram-send-ladders.cjs"],
|
|
"node-builtin.diagnostics_channel": ["tests/corpus/2214-dc-bind-store.cjs"],
|
|
"node-builtin.dns": ["tests/corpus/2597-dgram-send-ladders.cjs"],
|
|
"node-builtin.events": ["tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts"],
|
|
"node-builtin.fs": ["tests/corpus/1403-buffer-fs.ts", "tests/corpus/2595-fs-arg-ladders.cjs"],
|
|
"node-builtin.http": ["tests/corpus/1780-http-res-surface.ts", "tests/corpus/2672-http-request-response-callback.ts"],
|
|
"node-builtin.http2": ["tests/corpus/2260-http2-constants.cjs"],
|
|
"node-builtin.https": ["tests/corpus/2645-https-client-url-argument.ts", "tests/corpus/2690-https-server-timeout-option.ts"],
|
|
"node-builtin.module": ["tests/corpus/1598-cjs-builtin-require/main.js"],
|
|
"node-builtin.net": ["tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs"],
|
|
"node-builtin.os": ["tests/corpus/1480-os-network-interfaces.ts"],
|
|
"node-builtin.path": ["tests/corpus/957-builtins-namespace.ts"],
|
|
"node-builtin.perf_hooks": ["tests/corpus/957-builtins-namespace.ts"],
|
|
"node-builtin.process": ["tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts"],
|
|
"node-builtin.querystring": ["tests/corpus/957-builtins-namespace.ts"],
|
|
"node-builtin.readline": ["tests/corpus/1475-readline-closed-stdin.ts"],
|
|
"node-builtin.stream": ["tests/corpus/1685-stream-readable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs", "tests/corpus/2629-stream-consumers.ts"],
|
|
"node-builtin.string_decoder": ["tests/corpus/1662-string-decoder-encodings.ts"],
|
|
"node-builtin.test": ["tests/harness/node-test.test.ts"],
|
|
"node-builtin.timers": ["tests/corpus/1804-timers-module.ts", "tests/corpus/2093-timers-promises.ts"],
|
|
"node-builtin.tls": ["tests/corpus/2331-tls-server-options-typed.ts", "tests/corpus/2557-tls-ca-store.ts"],
|
|
"node-builtin.tty": ["tests/corpus/1448-stream-columns.ts"],
|
|
"node-builtin.url": ["tests/corpus/1794-searchparams-url-live.ts"],
|
|
"node-builtin.util": ["tests/corpus/2440-console-inspect-args.ts"],
|
|
"node-builtin.worker_threads": ["tests/corpus/957-builtins-namespace.ts"],
|
|
"node-builtin.zlib": ["tests/corpus/1404-zlib-crypto-bytes.ts"],
|
|
"stdlib.fetch": ["tests/harness/fetch-conformance.test.ts"],
|
|
"stdlib.headers": ["tests/harness/fetch-conformance.test.ts"],
|
|
"stdlib.request": ["tests/harness/fetch-conformance.test.ts"],
|
|
"stdlib.response": ["tests/harness/fetch-conformance.test.ts"],
|
|
"stdlib.readable-stream": ["tests/harness/fetch-conformance.test.ts"],
|
|
"stdlib.abort": ["tests/harness/fetch-conformance.test.ts"]
|
|
},
|
|
"features": [
|
|
{ "chapter": "environment_variables", "symbols": ["export"], "status": "not-applicable" },
|
|
{ "chapter": "globals", "symbols": ["fetch"], "status": "partial", "evidence": ["tests/harness/fetch-conformance.test.ts"] },
|
|
{ "chapter": "modules", "symbols": ["__dirname", "__filename", "exports", "require", "module.require", "main", "filename"], "status": "partial", "evidence": ["tests/corpus/1612-cjs-module-globals.cjs", "tests/corpus/1596-cjs-modules/main.js", "tests/corpus/1629-require-main-filename.cjs"] },
|
|
{ "chapter": "modules", "symbols": ["require.resolve", "require.resolve.paths", "cache", "extensions", "children", "id", "isPreloading", "loaded", "parent", "paths", "Module"], "status": "not-implemented" },
|
|
{ "chapter": "modules", "symbols": ["node:", "node_modules"], "status": "partial", "evidence": ["tests/corpus/1598-cjs-builtin-require/main.js", "tests/corpus/1596-cjs-modules/main.js"] },
|
|
{ "chapter": "esm", "symbols": ["import", "file:", "node:", "await"], "status": "partial", "evidence": ["tests/corpus/950-modules-basic/main.ts", "tests/corpus/2646-top-level-await.ts"] },
|
|
{ "chapter": "esm", "symbols": ["meta", "import.meta.resolve", "dirname", "filename", "main", "data:", "require", "__filename", "require.main", "require.resolve", "NODE_PATH", "require.extensions", "require.cache"], "status": "not-implemented" },
|
|
{ "chapter": "packages", "symbols": ["package.json", "\"name\"", "\"main\"", "\"type\"", "\"exports\"", "\"imports\""], "status": "partial", "evidence": ["tests/corpus/2092-package-imports/main.ts", "tests/corpus/2120-package-self-import/main.ts", "tests/corpus/2124-imports-field-wildcard/main.ts", "tests/corpus/2390-dot-requires/main.cjs"] },
|
|
{ "chapter": "packages", "symbols": ["--input-type"], "status": "not-applicable" },
|
|
{ "chapter": "typescript", "symbols": ["type"], "status": "not-implemented" }
|
|
],
|
|
"dedicated": [
|
|
{ "symbols": ["console.log", "console.info", "console.debug", "console.error", "console.warn"], "status": "partial", "evidence": ["tests/corpus/1460-console-error-warn.ts", "tests/corpus/2440-console-inspect-args.ts"] },
|
|
{ "symbols": ["assert", "assert.ok", "assert.strictEqual", "assert.notStrictEqual", "assert.deepStrictEqual", "assert.notDeepStrictEqual", "assert.fail", "assert.match", "assert.doesNotMatch", "assert.throws", "assert.rejects", "assert.doesNotReject", "assert.ifError"], "status": "partial", "evidence": ["tests/corpus/1600-assert-passing.ts", "tests/corpus/1604-assert-deep-structures.ts", "tests/corpus/1609-assert-async.ts", "tests/corpus/1721-assert-throws-regex-class.ts"] },
|
|
{ "symbols": ["EventEmitter", "emitter.on", "emitter.addListener", "emitter.once", "emitter.prependListener", "emitter.prependOnceListener", "emitter.off", "emitter.removeListener", "emitter.removeAllListeners", "emitter.emit", "emitter.listenerCount", "emitter.listeners", "emitter.rawListeners", "emitter.eventNames", "emitter.setMaxListeners", "emitter.getMaxListeners", "events.getEventListeners", "events.listenerCount", "events.once", "events.on", "events.setMaxListeners"], "status": "partial", "evidence": ["tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts"] },
|
|
{ "symbols": ["AsyncLocalStorage", "asyncLocalStorage.run", "asyncLocalStorage.exit", "asyncLocalStorage.getStore", "asyncLocalStorage.enterWith", "asyncLocalStorage.disable"], "status": "partial", "evidence": ["tests/corpus/2213-async-local-storage.cjs"] },
|
|
{ "symbols": ["StringDecoder", "stringDecoder.write", "stringDecoder.end"], "status": "partial", "evidence": ["tests/corpus/1662-string-decoder-encodings.ts"] },
|
|
{ "symbols": ["setImmediate", "setInterval", "setTimeout", "clearImmediate", "clearInterval", "clearTimeout", "timersPromises.setTimeout", "timersPromises.setImmediate", "immediate.hasRef", "immediate.ref", "immediate.unref", "timeout.hasRef", "timeout.ref", "timeout.unref", "timeout.refresh"], "status": "partial", "evidence": ["tests/corpus/1804-timers-module.ts", "tests/corpus/1805-timer-callback-args.ts", "tests/corpus/2093-timers-promises.ts"] },
|
|
{ "symbols": ["stream.finished", "stream.pipeline", "stream.getDefaultHighWaterMark", "readable.push", "readable.unshift", "readable.read", "readable.pause", "readable.resume", "readable.isPaused", "readable.setEncoding", "readable.pipe", "readable.unpipe", "readable.destroy", "writable.write", "writable.end", "writable.cork", "writable.uncork", "writable.setDefaultEncoding"], "status": "partial", "evidence": ["tests/corpus/1685-stream-readable-basics.ts", "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs"] },
|
|
{ "symbols": ["net.createServer", "net.connect", "net.createConnection", "net.getDefaultAutoSelectFamilyAttemptTimeout", "net.setDefaultAutoSelectFamilyAttemptTimeout", "server.address", "server.close", "server.listen", "socket.destroy", "socket.end", "socket.pause", "socket.resume", "socket.setEncoding", "socket.setTimeout", "socket.write"], "status": "partial", "evidence": ["tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs"] },
|
|
{ "symbols": ["dgram.createSocket", "socket.address", "socket.bind", "socket.close", "socket.connect", "socket.ref", "socket.remoteAddress", "socket.send", "socket.unref"], "status": "partial", "evidence": ["tests/corpus/2597-dgram-send-ladders.cjs"] },
|
|
{ "symbols": ["readline.createInterface", "rl.close"], "status": "partial", "evidence": ["tests/corpus/1475-readline-closed-stdin.ts"] },
|
|
{ "symbols": ["test", "it", "test.skip", "test.todo", "test.only", "describe", "suite", "before", "after", "beforeEach", "afterEach", "context.test", "context.skip", "context.todo", "context.diagnostic", "context.name", "context.assert"], "status": "partial", "evidence": ["tests/harness/node-test.test.ts"] },
|
|
{ "symbols": ["http.request", "http.get", "http.createServer", "https.request", "https.get", "https.createServer", "request.end", "request.destroy", "request.setTimeout", "request.write", "response.end", "response.getHeader", "response.hasHeader", "response.removeHeader", "response.setHeader", "response.write", "response.writeHead", "headersTimeout", "requestTimeout", "timeout", "keepAliveTimeout", "keepAliveTimeoutBuffer"], "status": "partial", "evidence": ["tests/corpus/1780-http-res-surface.ts", "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts"] }
|
|
]
|
|
}
|