@bytecodealliance/jco 1.33.0 → 1.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +5 -0
- package/dist/bundle.js.map +1 -1
- package/dist/cmd/componentize.d.ts +10 -1
- package/dist/cmd/componentize.d.ts.map +1 -1
- package/dist/cmd/componentize.js +14 -4
- package/dist/cmd/componentize.js.map +1 -1
- package/dist/cmd/new.js +2 -1
- package/dist/cmd/new.js.map +1 -1
- package/dist/cmd/transpile.d.ts.map +1 -1
- package/dist/cmd/transpile.js +28 -1
- package/dist/cmd/transpile.js.map +1 -1
- package/dist/engine-compat.d.ts +11 -0
- package/dist/engine-compat.d.ts.map +1 -0
- package/dist/engine-compat.js +56 -0
- package/dist/engine-compat.js.map +1 -0
- package/dist/jco.js +6 -2
- package/dist/jco.js.map +1 -1
- package/dist/node-builtins/assert.d.ts +3 -0
- package/dist/node-builtins/assert.d.ts.map +1 -0
- package/dist/node-builtins/assert.js +65 -0
- package/dist/node-builtins/assert.js.map +1 -0
- package/dist/node-builtins/async-hooks.d.ts +3 -0
- package/dist/node-builtins/async-hooks.d.ts.map +1 -0
- package/dist/node-builtins/async-hooks.js +27 -0
- package/dist/node-builtins/async-hooks.js.map +1 -0
- package/dist/node-builtins/buffer.d.ts +4 -0
- package/dist/node-builtins/buffer.d.ts.map +1 -0
- package/dist/node-builtins/buffer.js +87 -0
- package/dist/node-builtins/buffer.js.map +1 -0
- package/dist/node-builtins/child-process.d.ts +3 -0
- package/dist/node-builtins/child-process.d.ts.map +1 -0
- package/dist/node-builtins/child-process.js +23 -0
- package/dist/node-builtins/child-process.js.map +1 -0
- package/dist/node-builtins/cluster.d.ts +3 -0
- package/dist/node-builtins/cluster.d.ts.map +1 -0
- package/dist/node-builtins/cluster.js +28 -0
- package/dist/node-builtins/cluster.js.map +1 -0
- package/dist/node-builtins/console.d.ts +3 -0
- package/dist/node-builtins/console.d.ts.map +1 -0
- package/dist/node-builtins/console.js +39 -0
- package/dist/node-builtins/console.js.map +1 -0
- package/dist/node-builtins/crypto.d.ts +3 -0
- package/dist/node-builtins/crypto.d.ts.map +1 -0
- package/dist/node-builtins/crypto.js +5 -0
- package/dist/node-builtins/crypto.js.map +1 -0
- package/dist/node-builtins/dgram.d.ts +4 -0
- package/dist/node-builtins/dgram.d.ts.map +1 -0
- package/dist/node-builtins/dgram.js +13 -0
- package/dist/node-builtins/dgram.js.map +1 -0
- package/dist/node-builtins/diagnostics-channel.d.ts +3 -0
- package/dist/node-builtins/diagnostics-channel.d.ts.map +1 -0
- package/dist/node-builtins/diagnostics-channel.js +26 -0
- package/dist/node-builtins/diagnostics-channel.js.map +1 -0
- package/dist/node-builtins/dns.d.ts +3 -0
- package/dist/node-builtins/dns.d.ts.map +1 -0
- package/dist/node-builtins/dns.js +12 -0
- package/dist/node-builtins/dns.js.map +1 -0
- package/dist/node-builtins/domain.d.ts +3 -0
- package/dist/node-builtins/domain.d.ts.map +1 -0
- package/dist/node-builtins/domain.js +19 -0
- package/dist/node-builtins/domain.js.map +1 -0
- package/dist/node-builtins/events.d.ts +3 -0
- package/dist/node-builtins/events.d.ts.map +1 -0
- package/dist/node-builtins/events.js +39 -0
- package/dist/node-builtins/events.js.map +1 -0
- package/dist/node-builtins/ffi.d.ts +3 -0
- package/dist/node-builtins/ffi.d.ts.map +1 -0
- package/dist/node-builtins/ffi.js +59 -0
- package/dist/node-builtins/ffi.js.map +1 -0
- package/dist/node-builtins/fs.d.ts +3 -0
- package/dist/node-builtins/fs.d.ts.map +1 -0
- package/dist/node-builtins/fs.js +16 -0
- package/dist/node-builtins/fs.js.map +1 -0
- package/dist/node-builtins/globals.d.ts +19 -0
- package/dist/node-builtins/globals.d.ts.map +1 -0
- package/dist/node-builtins/globals.js +56 -0
- package/dist/node-builtins/globals.js.map +1 -0
- package/dist/node-builtins/http-common.d.ts +6 -0
- package/dist/node-builtins/http-common.d.ts.map +1 -0
- package/dist/node-builtins/http-common.js +111 -0
- package/dist/node-builtins/http-common.js.map +1 -0
- package/dist/node-builtins/http.d.ts +4 -0
- package/dist/node-builtins/http.d.ts.map +1 -0
- package/dist/node-builtins/http.js +15 -0
- package/dist/node-builtins/http.js.map +1 -0
- package/dist/node-builtins/http2.d.ts +4 -0
- package/dist/node-builtins/http2.d.ts.map +1 -0
- package/dist/node-builtins/http2.js +79 -0
- package/dist/node-builtins/http2.js.map +1 -0
- package/dist/node-builtins/https.d.ts +3 -0
- package/dist/node-builtins/https.d.ts.map +1 -0
- package/dist/node-builtins/https.js +5 -0
- package/dist/node-builtins/https.js.map +1 -0
- package/dist/node-builtins/index.d.ts +10 -0
- package/dist/node-builtins/index.d.ts.map +1 -0
- package/dist/node-builtins/index.js +164 -0
- package/dist/node-builtins/index.js.map +1 -0
- package/dist/node-builtins/inspector.d.ts +12 -0
- package/dist/node-builtins/inspector.d.ts.map +1 -0
- package/dist/node-builtins/inspector.js +70 -0
- package/dist/node-builtins/inspector.js.map +1 -0
- package/dist/node-builtins/module.d.ts +3 -0
- package/dist/node-builtins/module.d.ts.map +1 -0
- package/dist/node-builtins/module.js +55 -0
- package/dist/node-builtins/module.js.map +1 -0
- package/dist/node-builtins/net.d.ts +3 -0
- package/dist/node-builtins/net.d.ts.map +1 -0
- package/dist/node-builtins/net.js +46 -0
- package/dist/node-builtins/net.js.map +1 -0
- package/dist/node-builtins/os.d.ts +3 -0
- package/dist/node-builtins/os.d.ts.map +1 -0
- package/dist/node-builtins/os.js +39 -0
- package/dist/node-builtins/os.js.map +1 -0
- package/dist/node-builtins/path.d.ts +3 -0
- package/dist/node-builtins/path.d.ts.map +1 -0
- package/dist/node-builtins/path.js +91 -0
- package/dist/node-builtins/path.js.map +1 -0
- package/dist/node-builtins/perf-hooks.d.ts +3 -0
- package/dist/node-builtins/perf-hooks.d.ts.map +1 -0
- package/dist/node-builtins/perf-hooks.js +12 -0
- package/dist/node-builtins/perf-hooks.js.map +1 -0
- package/dist/node-builtins/process.d.ts +3 -0
- package/dist/node-builtins/process.d.ts.map +1 -0
- package/dist/node-builtins/process.js +9 -0
- package/dist/node-builtins/process.js.map +1 -0
- package/dist/node-builtins/querystring.d.ts +3 -0
- package/dist/node-builtins/querystring.d.ts.map +1 -0
- package/dist/node-builtins/querystring.js +18 -0
- package/dist/node-builtins/querystring.js.map +1 -0
- package/dist/node-builtins/readline.d.ts +3 -0
- package/dist/node-builtins/readline.d.ts.map +1 -0
- package/dist/node-builtins/readline.js +11 -0
- package/dist/node-builtins/readline.js.map +1 -0
- package/dist/node-builtins/repl.d.ts +9 -0
- package/dist/node-builtins/repl.d.ts.map +1 -0
- package/dist/node-builtins/repl.js +12 -0
- package/dist/node-builtins/repl.js.map +1 -0
- package/dist/node-builtins/shared.d.ts +24 -0
- package/dist/node-builtins/shared.d.ts.map +1 -0
- package/dist/node-builtins/shared.js +68 -0
- package/dist/node-builtins/shared.js.map +1 -0
- package/dist/node-builtins/sqlite.d.ts +3 -0
- package/dist/node-builtins/sqlite.d.ts.map +1 -0
- package/dist/node-builtins/sqlite.js +9 -0
- package/dist/node-builtins/sqlite.js.map +1 -0
- package/dist/node-builtins/stream.d.ts +3 -0
- package/dist/node-builtins/stream.d.ts.map +1 -0
- package/dist/node-builtins/stream.js +64 -0
- package/dist/node-builtins/stream.js.map +1 -0
- package/dist/node-builtins/string-decoder.d.ts +3 -0
- package/dist/node-builtins/string-decoder.d.ts.map +1 -0
- package/dist/node-builtins/string-decoder.js +14 -0
- package/dist/node-builtins/string-decoder.js.map +1 -0
- package/dist/node-builtins/test.d.ts +4 -0
- package/dist/node-builtins/test.d.ts.map +1 -0
- package/dist/node-builtins/test.js +8 -0
- package/dist/node-builtins/test.js.map +1 -0
- package/dist/node-builtins/timers.d.ts +4 -0
- package/dist/node-builtins/timers.d.ts.map +1 -0
- package/dist/node-builtins/timers.js +9 -0
- package/dist/node-builtins/timers.js.map +1 -0
- package/dist/node-builtins/tls.d.ts +3 -0
- package/dist/node-builtins/tls.d.ts.map +1 -0
- package/dist/node-builtins/tls.js +10 -0
- package/dist/node-builtins/tls.js.map +1 -0
- package/dist/node-builtins/trace-events.d.ts +3 -0
- package/dist/node-builtins/trace-events.d.ts.map +1 -0
- package/dist/node-builtins/trace-events.js +9 -0
- package/dist/node-builtins/trace-events.js.map +1 -0
- package/dist/node-builtins/tty.d.ts +8 -0
- package/dist/node-builtins/tty.d.ts.map +1 -0
- package/dist/node-builtins/tty.js +12 -0
- package/dist/node-builtins/tty.js.map +1 -0
- package/dist/{node-builtins.d.ts → node-builtins/types.d.ts} +73 -41
- package/dist/node-builtins/types.d.ts.map +1 -0
- package/dist/node-builtins/types.js +2 -0
- package/dist/node-builtins/types.js.map +1 -0
- package/dist/node-builtins/unenv.d.ts +6 -0
- package/dist/node-builtins/unenv.d.ts.map +1 -0
- package/dist/node-builtins/unenv.js +27 -0
- package/dist/node-builtins/unenv.js.map +1 -0
- package/dist/node-builtins/url-pattern.d.ts +8 -0
- package/dist/node-builtins/url-pattern.d.ts.map +1 -0
- package/dist/node-builtins/url-pattern.js +19 -0
- package/dist/node-builtins/url-pattern.js.map +1 -0
- package/dist/node-builtins/url.d.ts +4 -0
- package/dist/node-builtins/url.d.ts.map +1 -0
- package/dist/node-builtins/url.js +100 -0
- package/dist/node-builtins/url.js.map +1 -0
- package/dist/node-builtins/util.d.ts +3 -0
- package/dist/node-builtins/util.d.ts.map +1 -0
- package/dist/node-builtins/util.js +7 -0
- package/dist/node-builtins/util.js.map +1 -0
- package/dist/node-builtins/v8.d.ts +3 -0
- package/dist/node-builtins/v8.d.ts.map +1 -0
- package/dist/node-builtins/v8.js +6 -0
- package/dist/node-builtins/v8.js.map +1 -0
- package/dist/node-builtins/vfs.d.ts +3 -0
- package/dist/node-builtins/vfs.d.ts.map +1 -0
- package/dist/node-builtins/vfs.js +42 -0
- package/dist/node-builtins/vfs.js.map +1 -0
- package/dist/node-builtins/vm.d.ts +4 -0
- package/dist/node-builtins/vm.d.ts.map +1 -0
- package/dist/node-builtins/vm.js +6 -0
- package/dist/node-builtins/vm.js.map +1 -0
- package/dist/node-builtins/wasi-sockets.d.ts +10 -0
- package/dist/node-builtins/wasi-sockets.d.ts.map +1 -0
- package/dist/node-builtins/wasi-sockets.js +25 -0
- package/dist/node-builtins/wasi-sockets.js.map +1 -0
- package/dist/node-builtins/wasi.d.ts +10 -0
- package/dist/node-builtins/wasi.d.ts.map +1 -0
- package/dist/node-builtins/wasi.js +14 -0
- package/dist/node-builtins/wasi.js.map +1 -0
- package/dist/node-builtins/worker-threads.d.ts +3 -0
- package/dist/node-builtins/worker-threads.d.ts.map +1 -0
- package/dist/node-builtins/worker-threads.js +16 -0
- package/dist/node-builtins/worker-threads.js.map +1 -0
- package/dist/node-builtins/zlib.d.ts +3 -0
- package/dist/node-builtins/zlib.d.ts.map +1 -0
- package/dist/node-builtins/zlib.js +6 -0
- package/dist/node-builtins/zlib.js.map +1 -0
- package/dist/node-wit.d.ts +35 -0
- package/dist/node-wit.d.ts.map +1 -1
- package/dist/node-wit.js +135 -4
- package/dist/node-wit.js.map +1 -1
- package/lib/wit/builtin/jco-node-0.1.0/cluster.wit +3 -2
- package/lib/wit/builtin/jco-node-0.1.0/dgram.wit +142 -0
- package/lib/wit/builtin/jco-node-0.1.0/http.wit +7 -0
- package/lib/wit/builtin/jco-node-0.1.0/http2.wit +4 -5
- package/lib/wit/builtin/jco-node-0.1.0/process.wit +245 -0
- package/lib/wit/builtin/jco-node-0.1.0/sqlite.wit +154 -0
- package/lib/wit/builtin/jco-node-0.1.0/tls.wit +108 -0
- package/lib/wit/builtin/jco-node-0.1.0/trace-events.wit +27 -0
- package/lib/wit/builtin/jco-node-0.1.0/tty.wit +59 -0
- package/lib/wit/builtin/jco-node-0.1.0/v8.wit +102 -0
- package/lib/wit/builtin/jco-node-0.1.0/wasi.wit +57 -0
- package/lib/wit/builtin/jco-node-0.1.0/worker-threads.wit +67 -0
- package/lib/wit/builtin/jco-node-0.1.0/zlib.wit +77 -0
- package/lib/wit/builtin/wasi-tls-0.2.0-draft/LICENSE.md +8 -0
- package/lib/wit/builtin/wasi-tls-0.2.0-draft/README.md +25 -0
- package/lib/wit/builtin/wasi-tls-0.2.0-draft/deps/io/package.wit +66 -0
- package/lib/wit/builtin/wasi-tls-0.2.0-draft/types.wit +27 -0
- package/lib/wit/builtin/wasi-tls-0.2.0-draft/world.wit +8 -0
- package/package.json +7 -5
- package/dist/node-builtins.d.ts.map +0 -1
- package/dist/node-builtins.js +0 -1085
- package/dist/node-builtins.js.map +0 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { unenvModule } from "./unenv.js";
|
|
2
|
+
import { VIRTUAL_PREFIX, composeBuiltins, virtualBuiltin, stdModule, starReexportAdapter, } from "./shared.js";
|
|
3
|
+
const ABORT_GLOBALS_SPECIFIER = "jco:node-abort-globals";
|
|
4
|
+
const ABORT_GLOBALS_MODULE = `${VIRTUAL_PREFIX}abort-globals`;
|
|
5
|
+
const ERROR_GLOBALS_SPECIFIER = "jco:node-error-globals";
|
|
6
|
+
const ERROR_GLOBALS_MODULE = `${VIRTUAL_PREFIX}error-globals`;
|
|
7
|
+
const NODE_ERROR_GLOBAL_NAMES = [
|
|
8
|
+
"AggregateError",
|
|
9
|
+
"DOMException",
|
|
10
|
+
"Error",
|
|
11
|
+
"EvalError",
|
|
12
|
+
"RangeError",
|
|
13
|
+
"ReferenceError",
|
|
14
|
+
"SuppressedError",
|
|
15
|
+
"SyntaxError",
|
|
16
|
+
"TypeError",
|
|
17
|
+
"URIError",
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* Rolldown injection map for Node's global error constructors.
|
|
21
|
+
*
|
|
22
|
+
* Injection is demand-driven: if source never references one of these globals,
|
|
23
|
+
* Rolldown does not include the errors module in the generated bundle.
|
|
24
|
+
*/
|
|
25
|
+
export function nodeErrorGlobals(options = {}) {
|
|
26
|
+
const errorsModule = options.errorsModule ?? ERROR_GLOBALS_SPECIFIER;
|
|
27
|
+
return Object.fromEntries(NODE_ERROR_GLOBAL_NAMES.map((name) => [name, [errorsModule, name]]));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Rolldown injection map for Node globals backed by Jco implementations.
|
|
31
|
+
*
|
|
32
|
+
* Web globals are supplied by the engine; Abort globals have a compatibility adapter
|
|
33
|
+
* for engines with the legacy variadic AbortSignal.any implementation.
|
|
34
|
+
* Rolldown includes these adapters only when their free identifiers survive bundling.
|
|
35
|
+
*/
|
|
36
|
+
export function nodeGlobals(options = {}) {
|
|
37
|
+
return {
|
|
38
|
+
...nodeErrorGlobals(options),
|
|
39
|
+
AbortController: [options.abortGlobalsModule ?? ABORT_GLOBALS_SPECIFIER, "AbortController"],
|
|
40
|
+
AbortSignal: [options.abortGlobalsModule ?? ABORT_GLOBALS_SPECIFIER, "AbortSignal"],
|
|
41
|
+
Buffer: [options.bufferModule ?? "node:buffer", "Buffer"],
|
|
42
|
+
process: [options.processModule ?? "jco:node-process-globals", "default"],
|
|
43
|
+
setImmediate: [options.timersModule ?? "node:timers", "setImmediate"],
|
|
44
|
+
clearImmediate: [options.timersModule ?? "node:timers", "clearImmediate"],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export function createGlobalsBuiltin({ options }) {
|
|
48
|
+
return composeBuiltins([
|
|
49
|
+
// Dependency initialization cannot call host-backed node:process during Wizer.
|
|
50
|
+
// Keep this portable global distinct from explicit imports of that API.
|
|
51
|
+
virtualBuiltin("jco:node-process-globals", `${VIRTUAL_PREFIX}process-globals`, () => starReexportAdapter(unenvModule("node:process", options), "process")),
|
|
52
|
+
virtualBuiltin(ABORT_GLOBALS_SPECIFIER, ABORT_GLOBALS_MODULE, () => `export * from ${JSON.stringify(stdModule(options.abortGlobalsModule, "abort-globals"))};`),
|
|
53
|
+
virtualBuiltin(ERROR_GLOBALS_SPECIFIER, ERROR_GLOBALS_MODULE, () => `export * from ${JSON.stringify(stdModule(options.errorsModule, "errors"))};`),
|
|
54
|
+
]);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=globals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/node-builtins/globals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EACH,cAAc,EAGd,eAAe,EACf,cAAc,EACd,SAAS,EACT,mBAAmB,GACtB,MAAM,aAAa,CAAC;AAGrB,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAEzD,MAAM,oBAAoB,GAAG,GAAG,cAAc,eAAe,CAAC;AAE9D,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAEzD,MAAM,oBAAoB,GAAG,GAAG,cAAc,eAAe,CAAC;AAE9D,MAAM,uBAAuB,GAAG;IAC5B,gBAAgB;IAChB,cAAc;IACd,OAAO;IACP,WAAW;IACX,YAAY;IACZ,gBAAgB;IAChB,iBAAiB;IACjB,aAAa;IACb,WAAW;IACX,UAAU;CACJ,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC5B,OAAO,GAA4B,EAAE;IAErC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,uBAAuB,CAAC;IACrE,OAAO,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnG,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,OAAO,GAAuB,EAAE;IACxD,OAAO;QACH,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAC5B,eAAe,EAAE,CAAC,OAAO,CAAC,kBAAkB,IAAI,uBAAuB,EAAE,iBAAiB,CAAC;QAC3F,WAAW,EAAE,CAAC,OAAO,CAAC,kBAAkB,IAAI,uBAAuB,EAAE,aAAa,CAAC;QACnF,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,aAAa,EAAE,QAAQ,CAAC;QACzD,OAAO,EAAE,CAAC,OAAO,CAAC,aAAa,IAAI,0BAA0B,EAAE,SAAS,CAAC;QACzE,YAAY,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,aAAa,EAAE,cAAc,CAAC;QACrE,cAAc,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,aAAa,EAAE,gBAAgB,CAAC;KAC5E,CAAC;AACN,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAE,OAAO,EAAkB;IAC5D,OAAO,eAAe,CAAC;QACnB,+EAA+E;QAC/E,wEAAwE;QACxE,cAAc,CAAC,0BAA0B,EAAE,GAAG,cAAc,iBAAiB,EAAE,GAAG,EAAE,CAChF,mBAAmB,CAAC,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CACvE;QACD,cAAc,CACV,uBAAuB,EACvB,oBAAoB,EACpB,GAAG,EAAE,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC,GAAG,CACnG;QACD,cAAc,CACV,uBAAuB,EACvB,oBAAoB,EACpB,GAAG,EAAE,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,GAAG,CACtF;KACJ,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type BuiltinContext, type BuiltinAdapter } from "./shared.js";
|
|
2
|
+
/** The two protocol modules share one core, one implementation set, and one host interface. */
|
|
3
|
+
type HttpProtocol = "http" | "https";
|
|
4
|
+
export declare function createProtocolBuiltin({ options, worldMetadata }: BuiltinContext, protocol: HttpProtocol): BuiltinAdapter;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=http-common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-common.d.ts","sourceRoot":"","sources":["../../src/node-builtins/http-common.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAsB,MAAM,aAAa,CAAC;AA6B3F,+FAA+F;AAC/F,KAAK,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AA4ErC,wBAAgB,qBAAqB,CACjC,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,cAAc,EAC1C,QAAQ,EAAE,YAAY,GACvB,cAAc,CA6ChB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { wasiSocketsProviderSource, requireWasiHttpVersion } from "./wasi-sockets.js";
|
|
2
|
+
import { HTTPS_WIT_REQUIREMENT, TLS_WIT_REQUIREMENT, HTTP_WIT_REQUIREMENT, HTTPS_WASI_SOCKETS_WIT_REQUIREMENTS, HTTP_WASI_SOCKETS_WIT_REQUIREMENTS, HTTPS_WASI_SOCKETS_0_2_10_WIT_REQUIREMENTS, HTTP_WASI_SOCKETS_0_2_10_WIT_REQUIREMENTS, HTTPS_WASI_HTTP_WIT_REQUIREMENTS, HTTP_WASI_HTTP_WIT_REQUIREMENTS, } from "../node-wit.js";
|
|
3
|
+
import { builtin, stdModule } from "./shared.js";
|
|
4
|
+
const HTTP_EXPORTS = [
|
|
5
|
+
"Agent",
|
|
6
|
+
"ClientRequest",
|
|
7
|
+
"CloseEvent",
|
|
8
|
+
"IncomingMessage",
|
|
9
|
+
"METHODS",
|
|
10
|
+
"MessageEvent",
|
|
11
|
+
"OutgoingMessage",
|
|
12
|
+
"STATUS_CODES",
|
|
13
|
+
"Server",
|
|
14
|
+
"ServerResponse",
|
|
15
|
+
"WebSocket",
|
|
16
|
+
"_connectionListener",
|
|
17
|
+
"createServer",
|
|
18
|
+
"get",
|
|
19
|
+
"globalAgent",
|
|
20
|
+
"maxHeaderSize",
|
|
21
|
+
"request",
|
|
22
|
+
"setGlobalProxyFromEnv",
|
|
23
|
+
"setMaxIdleHTTPParsers",
|
|
24
|
+
"validateHeaderName",
|
|
25
|
+
"validateHeaderValue",
|
|
26
|
+
];
|
|
27
|
+
/** `node:https` at the pinned release: six exports, no deprecated members. */
|
|
28
|
+
const HTTPS_EXPORTS = ["Agent", "Server", "createServer", "get", "globalAgent", "request"];
|
|
29
|
+
const PROTOCOL_EXPORTS = {
|
|
30
|
+
http: HTTP_EXPORTS,
|
|
31
|
+
https: HTTPS_EXPORTS,
|
|
32
|
+
};
|
|
33
|
+
/** Factory exported by the protocol's core module (`createHttp` / `createHttps`). */
|
|
34
|
+
const PROTOCOL_FACTORY = { http: "createHttp", https: "createHttps" };
|
|
35
|
+
function protocolExports(protocol, moduleExpression) {
|
|
36
|
+
return `
|
|
37
|
+
const ${protocol} = ${moduleExpression};
|
|
38
|
+
export default ${protocol};
|
|
39
|
+
export const { ${PROTOCOL_EXPORTS[protocol].join(", ")} } = ${protocol};
|
|
40
|
+
`;
|
|
41
|
+
}
|
|
42
|
+
function protocolDirectAdapter(protocol, entryModule) {
|
|
43
|
+
return `
|
|
44
|
+
import direct from ${JSON.stringify(entryModule)};
|
|
45
|
+
${protocolExports(protocol, "direct")}
|
|
46
|
+
`;
|
|
47
|
+
}
|
|
48
|
+
function protocolWasiSocketsAdapter(protocol, coreModule, implementationModule, version) {
|
|
49
|
+
const factory = PROTOCOL_FACTORY[protocol];
|
|
50
|
+
const provider = wasiSocketsProviderSource(version);
|
|
51
|
+
const tlsImports = protocol === "https" ? 'import * as tls from "jco:node/tls@0.1.0";' : "";
|
|
52
|
+
const providerValue = protocol === "https" ? `{ ...${provider.value}, tls }` : provider.value;
|
|
53
|
+
return `
|
|
54
|
+
${provider.imports}
|
|
55
|
+
${tlsImports}
|
|
56
|
+
import { ${factory} } from ${JSON.stringify(coreModule)};
|
|
57
|
+
import { createWasiSocketsHttpImplementation } from ${JSON.stringify(implementationModule)};
|
|
58
|
+
${protocolExports(protocol, `${factory}(createWasiSocketsHttpImplementation(${providerValue}))`)}
|
|
59
|
+
`;
|
|
60
|
+
}
|
|
61
|
+
function protocolWasiHttpAdapter(protocol, coreModule, implementationModule) {
|
|
62
|
+
const factory = PROTOCOL_FACTORY[protocol];
|
|
63
|
+
return `
|
|
64
|
+
import * as outgoingHandler from "wasi:http/outgoing-handler@0.2.12";
|
|
65
|
+
import * as types from "wasi:http/types@0.2.12";
|
|
66
|
+
import { ${factory} } from ${JSON.stringify(coreModule)};
|
|
67
|
+
import { createWasiHttpImplementation } from ${JSON.stringify(implementationModule)};
|
|
68
|
+
${protocolExports(protocol, `${factory}(createWasiHttpImplementation({ outgoingHandler, types }))`)}
|
|
69
|
+
`;
|
|
70
|
+
}
|
|
71
|
+
/** WIT requirements for one protocol module under one `--with-nodejs-http-via` selection. */
|
|
72
|
+
function protocolWitRequirements(protocol, via, wasiSocketsVersion) {
|
|
73
|
+
const https = protocol === "https";
|
|
74
|
+
if (via === "direct") {
|
|
75
|
+
return https
|
|
76
|
+
? [HTTPS_WIT_REQUIREMENT, { ...TLS_WIT_REQUIREMENT, nodeSpecifier: "node:https", guestExports: [] }]
|
|
77
|
+
: [HTTP_WIT_REQUIREMENT];
|
|
78
|
+
}
|
|
79
|
+
if (via === "wasi-sockets") {
|
|
80
|
+
if (wasiSocketsVersion === "0.2.12") {
|
|
81
|
+
return https ? HTTPS_WASI_SOCKETS_WIT_REQUIREMENTS : HTTP_WASI_SOCKETS_WIT_REQUIREMENTS;
|
|
82
|
+
}
|
|
83
|
+
return https ? HTTPS_WASI_SOCKETS_0_2_10_WIT_REQUIREMENTS : HTTP_WASI_SOCKETS_0_2_10_WIT_REQUIREMENTS;
|
|
84
|
+
}
|
|
85
|
+
return https ? HTTPS_WASI_HTTP_WIT_REQUIREMENTS : HTTP_WASI_HTTP_WIT_REQUIREMENTS;
|
|
86
|
+
}
|
|
87
|
+
export function createProtocolBuiltin({ options, worldMetadata }, protocol) {
|
|
88
|
+
const via = options.nodejsHttpVia ?? "direct";
|
|
89
|
+
const socketsVersion = options.wasiSocketsVersion ?? "0.2.12";
|
|
90
|
+
return builtin("node:" + protocol, () => {
|
|
91
|
+
if (via === "direct") {
|
|
92
|
+
return protocolDirectAdapter(protocol, protocol === "http"
|
|
93
|
+
? stdModule(options.httpModule, "http")
|
|
94
|
+
: stdModule(options.httpsModule, "https"));
|
|
95
|
+
}
|
|
96
|
+
const core = protocol === "http"
|
|
97
|
+
? stdModule(options.httpCoreModule, "http/core")
|
|
98
|
+
: stdModule(options.httpsCoreModule, "https/core");
|
|
99
|
+
return via === "wasi-sockets"
|
|
100
|
+
? protocolWasiSocketsAdapter(protocol, core, stdModule(options.httpWasiSocketsImplementationModule, "http/impl/wasi-sockets"), socketsVersion)
|
|
101
|
+
: protocolWasiHttpAdapter(protocol, core, stdModule(options.httpWasiHttpImplementationModule, "http/impl/wasi-http"));
|
|
102
|
+
}, (specifier) => {
|
|
103
|
+
if (via !== "direct") {
|
|
104
|
+
requireWasiHttpVersion(worldMetadata, specifier, via, via === "wasi-sockets" ? socketsVersion : "0.2.12");
|
|
105
|
+
}
|
|
106
|
+
for (const requirement of protocolWitRequirements(protocol, via, socketsVersion)) {
|
|
107
|
+
options.onWitRequirement?.(requirement);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=http-common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-common.js","sourceRoot":"","sources":["../../src/node-builtins/http-common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/node-builtins/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,cAAc,EACnB,KAAK,cAAc,EAItB,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,wBAAwB,4BAA4B,CAAC;AASlE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAOzE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { VIRTUAL_PREFIX, composeBuiltins, virtualBuiltin, stdModule, } from "./shared.js";
|
|
2
|
+
import { createProtocolBuiltin } from "./http-common.js";
|
|
3
|
+
export const HTTP_CALLBACKS_SPECIFIER = "jco:node-http-callbacks";
|
|
4
|
+
const HTTP_CALLBACKS_MODULE = `${VIRTUAL_PREFIX}http-callbacks`;
|
|
5
|
+
/** Source for the guest-exported HTTP callback interface used by the component entry wrapper. */
|
|
6
|
+
function httpCallbacksAdapter(httpModule) {
|
|
7
|
+
return `export { httpCallbacks } from ${JSON.stringify(httpModule)};`;
|
|
8
|
+
}
|
|
9
|
+
export function createHttpBuiltin(context) {
|
|
10
|
+
return composeBuiltins([
|
|
11
|
+
virtualBuiltin(HTTP_CALLBACKS_SPECIFIER, HTTP_CALLBACKS_MODULE, () => httpCallbacksAdapter(stdModule(context.options.httpModule, "http"))),
|
|
12
|
+
createProtocolBuiltin(context, "http"),
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/node-builtins/http.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EAGd,eAAe,EACf,cAAc,EACd,SAAS,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;AAElE,MAAM,qBAAqB,GAAG,GAAG,cAAc,gBAAgB,CAAC;AAEhE,iGAAiG;AACjG,SAAS,oBAAoB,CAAC,UAAkB;IAC5C,OAAO,iCAAiC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAuB;IACrD,OAAO,eAAe,CAAC;QACnB,cAAc,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,GAAG,EAAE,CACjE,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CACtE;QACD,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC;KACzC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type BuiltinContext, type BuiltinAdapter } from "./shared.js";
|
|
2
|
+
export declare const HTTP2_CALLBACKS_SPECIFIER = "jco:node-http2-callbacks";
|
|
3
|
+
export declare function createHttp2Builtin({ options, worldMetadata }: BuiltinContext): BuiltinAdapter;
|
|
4
|
+
//# sourceMappingURL=http2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http2.d.ts","sourceRoot":"","sources":["../../src/node-builtins/http2.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,cAAc,EACnB,KAAK,cAAc,EAKtB,MAAM,aAAa,CAAC;AAYrB,eAAO,MAAM,yBAAyB,6BAA6B,CAAC;AAuDpE,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,cAAc,GAAG,cAAc,CAyC7F"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { VIRTUAL_PREFIX, composeBuiltins, virtualBuiltin, stdModule, builtin, } from "./shared.js";
|
|
2
|
+
import { wasiSocketsProviderSource, requireWasiHttpVersion } from "./wasi-sockets.js";
|
|
3
|
+
import { HTTP2_WIT_REQUIREMENT, TLS_WIT_REQUIREMENT, HTTP_WASI_SOCKETS_WIT_REQUIREMENTS, HTTP_WASI_SOCKETS_0_2_10_WIT_REQUIREMENTS, } from "../node-wit.js";
|
|
4
|
+
const HTTP2_SPECIFIER = "node:http2";
|
|
5
|
+
export const HTTP2_CALLBACKS_SPECIFIER = "jco:node-http2-callbacks";
|
|
6
|
+
const HTTP2_CALLBACKS_MODULE = `${VIRTUAL_PREFIX}http2-callbacks`;
|
|
7
|
+
const HTTP2_EXPORTS = [
|
|
8
|
+
"Http2ServerRequest",
|
|
9
|
+
"Http2ServerResponse",
|
|
10
|
+
"connect",
|
|
11
|
+
"constants",
|
|
12
|
+
"createSecureServer",
|
|
13
|
+
"createServer",
|
|
14
|
+
"getDefaultSettings",
|
|
15
|
+
"getPackedSettings",
|
|
16
|
+
"getUnpackedSettings",
|
|
17
|
+
"performServerHandshake",
|
|
18
|
+
"sensitiveHeaders",
|
|
19
|
+
];
|
|
20
|
+
function http2Exports(moduleExpression) {
|
|
21
|
+
return `
|
|
22
|
+
const http2 = ${moduleExpression};
|
|
23
|
+
export default http2;
|
|
24
|
+
export const { ${HTTP2_EXPORTS.join(", ")} } = http2;
|
|
25
|
+
`;
|
|
26
|
+
}
|
|
27
|
+
function http2DirectAdapter(http2Module) {
|
|
28
|
+
return `
|
|
29
|
+
import directHttp2 from ${JSON.stringify(http2Module)};
|
|
30
|
+
${http2Exports("directHttp2")}
|
|
31
|
+
`;
|
|
32
|
+
}
|
|
33
|
+
/** Source for the guest-exported HTTP/2 callback interface used by the component entry wrapper. */
|
|
34
|
+
function http2CallbacksAdapter(http2Module) {
|
|
35
|
+
return `export { http2Callbacks } from ${JSON.stringify(http2Module)};`;
|
|
36
|
+
}
|
|
37
|
+
function http2PortableAdapter(coreModule, implementationModule, via, version) {
|
|
38
|
+
const factory = via === "wasi-sockets" ? "createWasiSocketsHttp2Implementation" : "createWasiHttpHttp2Implementation";
|
|
39
|
+
const provider = via === "wasi-sockets" ? wasiSocketsProviderSource(version) : undefined;
|
|
40
|
+
return `
|
|
41
|
+
${provider?.imports ?? ""}
|
|
42
|
+
import { createHttp2 } from ${JSON.stringify(coreModule)};
|
|
43
|
+
import { ${factory} } from ${JSON.stringify(implementationModule)};
|
|
44
|
+
${http2Exports(`createHttp2(${factory}(${provider?.value ?? ""}))`)}
|
|
45
|
+
`;
|
|
46
|
+
}
|
|
47
|
+
export function createHttp2Builtin({ options, worldMetadata }) {
|
|
48
|
+
const via = options.nodejsHttp2Via ?? "direct";
|
|
49
|
+
const socketsVersion = options.wasiSocketsVersion ?? "0.2.12";
|
|
50
|
+
return composeBuiltins([
|
|
51
|
+
virtualBuiltin(HTTP2_CALLBACKS_SPECIFIER, HTTP2_CALLBACKS_MODULE, () => http2CallbacksAdapter(stdModule(options.http2Module, "http2"))),
|
|
52
|
+
builtin(HTTP2_SPECIFIER, () => {
|
|
53
|
+
if (via === "direct") {
|
|
54
|
+
return http2DirectAdapter(stdModule(options.http2Module, "http2"));
|
|
55
|
+
}
|
|
56
|
+
return http2PortableAdapter(stdModule(options.http2CoreModule, "http2/core"), via === "wasi-sockets"
|
|
57
|
+
? stdModule(options.http2WasiSocketsImplementationModule, "http2/impl/wasi-sockets")
|
|
58
|
+
: stdModule(options.http2WasiHttpImplementationModule, "http2/impl/wasi-http"), via, socketsVersion);
|
|
59
|
+
}, () => {
|
|
60
|
+
if (via === "direct") {
|
|
61
|
+
options.onWitRequirement?.(HTTP2_WIT_REQUIREMENT);
|
|
62
|
+
options.onWitRequirement?.({
|
|
63
|
+
...TLS_WIT_REQUIREMENT,
|
|
64
|
+
nodeSpecifier: "node:http2",
|
|
65
|
+
guestExports: [],
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
else if (via === "wasi-sockets") {
|
|
69
|
+
requireWasiHttpVersion(worldMetadata, HTTP2_SPECIFIER, via, socketsVersion);
|
|
70
|
+
for (const requirement of socketsVersion === "0.2.12"
|
|
71
|
+
? HTTP_WASI_SOCKETS_WIT_REQUIREMENTS
|
|
72
|
+
: HTTP_WASI_SOCKETS_0_2_10_WIT_REQUIREMENTS) {
|
|
73
|
+
options.onWitRequirement?.(requirement);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}),
|
|
77
|
+
]);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=http2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http2.js","sourceRoot":"","sources":["../../src/node-builtins/http2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"https.d.ts","sourceRoot":"","sources":["../../src/node-builtins/https.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAGvE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAE1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"https.js","sourceRoot":"","sources":["../../src/node-builtins/https.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,UAAU,kBAAkB,CAAC,OAAuB;IACtD,OAAO,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type WorldMetadata, type NodeBuiltinOptions } from "./types.js";
|
|
2
|
+
import { type Plugin } from "rolldown";
|
|
3
|
+
export type { NodeBuiltinOptions, NodejsHttpVia, NodejsVfsVia, NodejsHttp2Via, WorldMetadata, NodeErrorGlobalsOptions, NodeGlobalsOptions, } from "./types.js";
|
|
4
|
+
export { nodeErrorGlobals, nodeGlobals } from "./globals.js";
|
|
5
|
+
export { INSPECTOR_CALLBACKS_SPECIFIER } from "./inspector.js";
|
|
6
|
+
export { HTTP_CALLBACKS_SPECIFIER } from "./http.js";
|
|
7
|
+
export { HTTP2_CALLBACKS_SPECIFIER } from "./http2.js";
|
|
8
|
+
/** Create Jco's virtual adapters for supported Node builtins. */
|
|
9
|
+
export declare function nodeBuiltinPlugin(worldMetadata: WorldMetadata, options?: NodeBuiltinOptions): Plugin;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node-builtins/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AA8CvC,YAAY,EACR,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,kBAAkB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM,CA+ExG"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { createCryptoBuiltin } from "./crypto.js";
|
|
2
|
+
import { createPortableUnenvBuiltin } from "./unenv.js";
|
|
3
|
+
import { createGlobalsBuiltin } from "./globals.js";
|
|
4
|
+
import { createAssertBuiltin } from "./assert.js";
|
|
5
|
+
import { createModuleBuiltin } from "./module.js";
|
|
6
|
+
import { createFfiBuiltin } from "./ffi.js";
|
|
7
|
+
import { createInspectorBuiltin } from "./inspector.js";
|
|
8
|
+
import { createDomainBuiltin } from "./domain.js";
|
|
9
|
+
import { createTimersBuiltin } from "./timers.js";
|
|
10
|
+
import { createTraceEventsBuiltin } from "./trace-events.js";
|
|
11
|
+
import { createPerfHooksBuiltin } from "./perf-hooks.js";
|
|
12
|
+
import { createDiagnosticsChannelBuiltin } from "./diagnostics-channel.js";
|
|
13
|
+
import { createAsyncHooksBuiltin } from "./async-hooks.js";
|
|
14
|
+
import { createEventsBuiltin } from "./events.js";
|
|
15
|
+
import { createProcessBuiltin } from "./process.js";
|
|
16
|
+
import { createOsBuiltin } from "./os.js";
|
|
17
|
+
import { createTestBuiltin } from "./test.js";
|
|
18
|
+
import { createUtilBuiltin } from "./util.js";
|
|
19
|
+
import { createSqliteBuiltin } from "./sqlite.js";
|
|
20
|
+
import { createReadlineBuiltin } from "./readline.js";
|
|
21
|
+
import { createReplBuiltin } from "./repl.js";
|
|
22
|
+
import { createStringDecoderBuiltin } from "./string-decoder.js";
|
|
23
|
+
import { createZlibBuiltin } from "./zlib.js";
|
|
24
|
+
import { createTtyBuiltin } from "./tty.js";
|
|
25
|
+
import { createWasiBuiltin } from "./wasi.js";
|
|
26
|
+
import { createV8Builtin } from "./v8.js";
|
|
27
|
+
import { createStreamBuiltin } from "./stream.js";
|
|
28
|
+
import { createClusterBuiltin } from "./cluster.js";
|
|
29
|
+
import { createWorkerThreadsBuiltin } from "./worker-threads.js";
|
|
30
|
+
import { createVmBuiltin } from "./vm.js";
|
|
31
|
+
import { createChildProcessBuiltin } from "./child-process.js";
|
|
32
|
+
import { createConsoleBuiltin } from "./console.js";
|
|
33
|
+
import { createDgramBuiltin } from "./dgram.js";
|
|
34
|
+
import { createDnsBuiltin } from "./dns.js";
|
|
35
|
+
import { createVfsBuiltin } from "./vfs.js";
|
|
36
|
+
import { createFsBuiltin } from "./fs.js";
|
|
37
|
+
import { createNetBuiltin } from "./net.js";
|
|
38
|
+
import { createHttpBuiltin } from "./http.js";
|
|
39
|
+
import { createHttpsBuiltin } from "./https.js";
|
|
40
|
+
import { createTlsBuiltin } from "./tls.js";
|
|
41
|
+
import { createHttp2Builtin } from "./http2.js";
|
|
42
|
+
import { createBufferBuiltin } from "./buffer.js";
|
|
43
|
+
import { createQuerystringBuiltin } from "./querystring.js";
|
|
44
|
+
import { createUrlBuiltin } from "./url.js";
|
|
45
|
+
import { createPathBuiltin } from "./path.js";
|
|
46
|
+
import { composeBuiltins, VIRTUAL_PREFIX } from "./shared.js";
|
|
47
|
+
export { nodeErrorGlobals, nodeGlobals } from "./globals.js";
|
|
48
|
+
export { INSPECTOR_CALLBACKS_SPECIFIER } from "./inspector.js";
|
|
49
|
+
export { HTTP_CALLBACKS_SPECIFIER } from "./http.js";
|
|
50
|
+
export { HTTP2_CALLBACKS_SPECIFIER } from "./http2.js";
|
|
51
|
+
/** Create Jco's virtual adapters for supported Node builtins. */
|
|
52
|
+
export function nodeBuiltinPlugin(worldMetadata, options = {}) {
|
|
53
|
+
const context = { worldMetadata, options };
|
|
54
|
+
const adapters = [
|
|
55
|
+
createGlobalsBuiltin,
|
|
56
|
+
createAssertBuiltin,
|
|
57
|
+
createModuleBuiltin,
|
|
58
|
+
createFfiBuiltin,
|
|
59
|
+
createInspectorBuiltin,
|
|
60
|
+
createDomainBuiltin,
|
|
61
|
+
createPerfHooksBuiltin,
|
|
62
|
+
createTraceEventsBuiltin,
|
|
63
|
+
createTimersBuiltin,
|
|
64
|
+
createDiagnosticsChannelBuiltin,
|
|
65
|
+
createAsyncHooksBuiltin,
|
|
66
|
+
createEventsBuiltin,
|
|
67
|
+
createProcessBuiltin,
|
|
68
|
+
createOsBuiltin,
|
|
69
|
+
createSqliteBuiltin,
|
|
70
|
+
createReadlineBuiltin,
|
|
71
|
+
createReplBuiltin,
|
|
72
|
+
createTestBuiltin,
|
|
73
|
+
createUtilBuiltin,
|
|
74
|
+
createStringDecoderBuiltin,
|
|
75
|
+
createTtyBuiltin,
|
|
76
|
+
createZlibBuiltin,
|
|
77
|
+
createWasiBuiltin,
|
|
78
|
+
createV8Builtin,
|
|
79
|
+
createStreamBuiltin,
|
|
80
|
+
createClusterBuiltin,
|
|
81
|
+
createWorkerThreadsBuiltin,
|
|
82
|
+
createVmBuiltin,
|
|
83
|
+
createChildProcessBuiltin,
|
|
84
|
+
createConsoleBuiltin,
|
|
85
|
+
createDgramBuiltin,
|
|
86
|
+
createDnsBuiltin,
|
|
87
|
+
createFsBuiltin,
|
|
88
|
+
createVfsBuiltin,
|
|
89
|
+
createNetBuiltin,
|
|
90
|
+
createHttpBuiltin,
|
|
91
|
+
createHttpsBuiltin,
|
|
92
|
+
createTlsBuiltin,
|
|
93
|
+
createHttp2Builtin,
|
|
94
|
+
createBufferBuiltin,
|
|
95
|
+
createQuerystringBuiltin,
|
|
96
|
+
createPathBuiltin,
|
|
97
|
+
createUrlBuiltin,
|
|
98
|
+
createCryptoBuiltin,
|
|
99
|
+
createPortableUnenvBuiltin,
|
|
100
|
+
];
|
|
101
|
+
const composed = composeBuiltins(adapters.map((create) => create(context)));
|
|
102
|
+
return {
|
|
103
|
+
name: "jco-node-builtins",
|
|
104
|
+
resolveId(id, importer, extraOptions) {
|
|
105
|
+
if (id === "node:stream" && extraOptions?.kind === "require-call") {
|
|
106
|
+
return `${VIRTUAL_PREFIX}commonjs-stream`;
|
|
107
|
+
}
|
|
108
|
+
if (id.startsWith(VIRTUAL_PREFIX)) {
|
|
109
|
+
return id;
|
|
110
|
+
}
|
|
111
|
+
const resolved = composed.resolveId(id, importer);
|
|
112
|
+
if (resolved !== null) {
|
|
113
|
+
return resolved;
|
|
114
|
+
}
|
|
115
|
+
if (BARE_SPECIFIER_BUILTINS.has(id)) {
|
|
116
|
+
return Promise.resolve(this.resolve(id, importer, { skipSelf: true })).then((installed) => installed
|
|
117
|
+
? null
|
|
118
|
+
: id === "stream"
|
|
119
|
+
? `${VIRTUAL_PREFIX}commonjs-stream`
|
|
120
|
+
: composed.resolveId(`node:${id}`, importer));
|
|
121
|
+
}
|
|
122
|
+
return null;
|
|
123
|
+
},
|
|
124
|
+
load(id) {
|
|
125
|
+
return id.startsWith(VIRTUAL_PREFIX) ? composed.load(id) : null;
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
// Preserve normal package resolution before falling back to an audited bare builtin.
|
|
130
|
+
const BARE_SPECIFIER_BUILTINS = new Set([
|
|
131
|
+
"path",
|
|
132
|
+
"path/posix",
|
|
133
|
+
"path/win32",
|
|
134
|
+
"assert",
|
|
135
|
+
"assert/strict",
|
|
136
|
+
"fs",
|
|
137
|
+
"fs/promises",
|
|
138
|
+
"dns",
|
|
139
|
+
"dns/promises",
|
|
140
|
+
"buffer",
|
|
141
|
+
"querystring",
|
|
142
|
+
"process",
|
|
143
|
+
"tty",
|
|
144
|
+
"url",
|
|
145
|
+
"util",
|
|
146
|
+
"util/types",
|
|
147
|
+
"zlib",
|
|
148
|
+
"async_hooks",
|
|
149
|
+
"child_process",
|
|
150
|
+
"cluster",
|
|
151
|
+
"console",
|
|
152
|
+
"crypto",
|
|
153
|
+
"diagnostics_channel",
|
|
154
|
+
"domain",
|
|
155
|
+
"events",
|
|
156
|
+
"http",
|
|
157
|
+
"https",
|
|
158
|
+
"net",
|
|
159
|
+
"stream",
|
|
160
|
+
"stream/promises",
|
|
161
|
+
"string_decoder",
|
|
162
|
+
"timers",
|
|
163
|
+
]);
|
|
164
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node-builtins/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type BuiltinContext, type BuiltinAdapter } from "./shared.js";
|
|
2
|
+
/**
|
|
3
|
+
* Virtual specifier the two-pass bundler imports to reach the guest-exported callbacks interface.
|
|
4
|
+
*
|
|
5
|
+
* `node:inspector` is host-backed, but the host also has to call *back* into the component. A
|
|
6
|
+
* component cannot implement a resource on an imported interface, so the callbacks live in a
|
|
7
|
+
* guest-exported interface, and this virtual module re-exports its implementation from the shared
|
|
8
|
+
* jco-std inspector module so the wrapper can add it to the component's top-level exports.
|
|
9
|
+
*/
|
|
10
|
+
export declare const INSPECTOR_CALLBACKS_SPECIFIER = "jco:node-inspector-callbacks";
|
|
11
|
+
export declare function createInspectorBuiltin({ options }: BuiltinContext): BuiltinAdapter;
|
|
12
|
+
//# sourceMappingURL=inspector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../../src/node-builtins/inspector.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,cAAc,EACnB,KAAK,cAAc,EAKtB,MAAM,aAAa,CAAC;AASrB;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,iCAAiC,CAAC;AAmD5E,wBAAgB,sBAAsB,CAAC,EAAE,OAAO,EAAE,EAAE,cAAc,GAAG,cAAc,CAmBlF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { VIRTUAL_PREFIX, composeBuiltins, virtualBuiltin, stdModule, builtin, } from "./shared.js";
|
|
2
|
+
import { INSPECTOR_PROMISES_WIT_REQUIREMENT, INSPECTOR_WIT_REQUIREMENT } from "../node-wit.js";
|
|
3
|
+
const INSPECTOR_SPECIFIER = "node:inspector";
|
|
4
|
+
const INSPECTOR_PROMISES_SPECIFIER = "node:inspector/promises";
|
|
5
|
+
const INSPECTOR_SPECIFIERS = new Set([INSPECTOR_SPECIFIER, INSPECTOR_PROMISES_SPECIFIER]);
|
|
6
|
+
/**
|
|
7
|
+
* Virtual specifier the two-pass bundler imports to reach the guest-exported callbacks interface.
|
|
8
|
+
*
|
|
9
|
+
* `node:inspector` is host-backed, but the host also has to call *back* into the component. A
|
|
10
|
+
* component cannot implement a resource on an imported interface, so the callbacks live in a
|
|
11
|
+
* guest-exported interface, and this virtual module re-exports its implementation from the shared
|
|
12
|
+
* jco-std inspector module so the wrapper can add it to the component's top-level exports.
|
|
13
|
+
*/
|
|
14
|
+
export const INSPECTOR_CALLBACKS_SPECIFIER = "jco:node-inspector-callbacks";
|
|
15
|
+
const INSPECTOR_CALLBACKS_MODULE = `${VIRTUAL_PREFIX}inspector-callbacks`;
|
|
16
|
+
/**
|
|
17
|
+
* Source of the `node:inspector` adapter.
|
|
18
|
+
*
|
|
19
|
+
* Host-backed like `node:ffi`, but with a second half: the host also calls *back* into the
|
|
20
|
+
* component when a protocol response or notification arrives. That channel is the guest-exported
|
|
21
|
+
* `inspectorCallbacks` interface, added to the component's exports by Jco's two-pass bundling; this
|
|
22
|
+
* adapter only re-exports the module surface.
|
|
23
|
+
*/
|
|
24
|
+
function inspectorAdapter(inspectorModule) {
|
|
25
|
+
return `
|
|
26
|
+
import inspector from ${JSON.stringify(inspectorModule)};
|
|
27
|
+
export default inspector;
|
|
28
|
+
export {
|
|
29
|
+
close,
|
|
30
|
+
console,
|
|
31
|
+
DOMStorage,
|
|
32
|
+
Network,
|
|
33
|
+
NetworkResources,
|
|
34
|
+
open,
|
|
35
|
+
Session,
|
|
36
|
+
url,
|
|
37
|
+
waitForDebugger,
|
|
38
|
+
} from ${JSON.stringify(inspectorModule)};
|
|
39
|
+
`;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Source of the `node:inspector/promises` adapter, sharing one core with `node:inspector`.
|
|
43
|
+
*
|
|
44
|
+
* The promises entry point re-exports the same public surface as `node:inspector`, so the adapter
|
|
45
|
+
* source is identical apart from the module it points at.
|
|
46
|
+
*/
|
|
47
|
+
function inspectorPromisesAdapter(inspectorPromisesModule) {
|
|
48
|
+
return inspectorAdapter(inspectorPromisesModule);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Source of the virtual module the two-pass bundler exports to satisfy the guest-exported
|
|
52
|
+
* `jco:node/inspector-callbacks@0.1.0` interface.
|
|
53
|
+
*
|
|
54
|
+
* Always pulls from the base `node:inspector` module (not `/promises`), which owns the one callback
|
|
55
|
+
* registry both entries register into.
|
|
56
|
+
*/
|
|
57
|
+
function inspectorCallbacksAdapter(inspectorModule) {
|
|
58
|
+
return `export { inspectorCallbacks } from ${JSON.stringify(inspectorModule)};`;
|
|
59
|
+
}
|
|
60
|
+
export function createInspectorBuiltin({ options }) {
|
|
61
|
+
return composeBuiltins([
|
|
62
|
+
virtualBuiltin(INSPECTOR_CALLBACKS_SPECIFIER, INSPECTOR_CALLBACKS_MODULE, () => inspectorCallbacksAdapter(stdModule(options.inspectorModule, "inspector"))),
|
|
63
|
+
builtin(INSPECTOR_SPECIFIERS, (specifier) => specifier === INSPECTOR_PROMISES_SPECIFIER
|
|
64
|
+
? inspectorPromisesAdapter(stdModule(options.inspectorPromisesModule, "inspector/promises"))
|
|
65
|
+
: inspectorAdapter(stdModule(options.inspectorModule, "inspector")), (specifier) => options.onWitRequirement?.(specifier === INSPECTOR_PROMISES_SPECIFIER
|
|
66
|
+
? INSPECTOR_PROMISES_WIT_REQUIREMENT
|
|
67
|
+
: INSPECTOR_WIT_REQUIREMENT)),
|
|
68
|
+
]);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=inspector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../src/node-builtins/inspector.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EAGd,eAAe,EACf,cAAc,EACd,SAAS,EACT,OAAO,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kCAAkC,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE/F,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAE7C,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AAE/D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,mBAAmB,EAAE,4BAA4B,CAAC,CAAC,CAAC;AAE1F;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,8BAA8B,CAAC;AAE5E,MAAM,0BAA0B,GAAG,GAAG,cAAc,qBAAqB,CAAC;AAE1E;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,eAAuB;IAC7C,OAAO;wBACa,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;;;;;;;;;;;;SAY9C,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;CACvC,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,uBAA+B;IAC7D,OAAO,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAC,eAAuB;IACtD,OAAO,sCAAsC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EAAE,OAAO,EAAkB;IAC9D,OAAO,eAAe,CAAC;QACnB,cAAc,CAAC,6BAA6B,EAAE,0BAA0B,EAAE,GAAG,EAAE,CAC3E,yBAAyB,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,CAC7E;QACD,OAAO,CACH,oBAAoB,EACpB,CAAC,SAAS,EAAE,EAAE,CACV,SAAS,KAAK,4BAA4B;YACtC,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC;YAC5F,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,EAC3E,CAAC,SAAS,EAAE,EAAE,CACV,OAAO,CAAC,gBAAgB,EAAE,CACtB,SAAS,KAAK,4BAA4B;YACtC,CAAC,CAAC,kCAAkC;YACpC,CAAC,CAAC,yBAAyB,CAClC,CACR;KACJ,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/node-builtins/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAsB,MAAM,aAAa,CAAC;AAsD3F,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE,cAAc,GAAG,cAAc,CAE/E"}
|