@volter/tabnode 0.2.14-volter.88
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/LICENSE +22 -0
- package/README.md +78 -0
- package/THIRD-PARTY-NOTICES.md +12 -0
- package/dist/__sw__.js +526 -0
- package/dist/assets/runtime-worker-4MKaHFVb.js +75221 -0
- package/dist/assets/runtime-worker-4MKaHFVb.js.map +1 -0
- package/dist/code-transforms.d.ts +21 -0
- package/dist/code-transforms.d.ts.map +1 -0
- package/dist/config/cdn.d.ts +12 -0
- package/dist/config/cdn.d.ts.map +1 -0
- package/dist/create-runtime.d.ts +22 -0
- package/dist/create-runtime.d.ts.map +1 -0
- package/dist/host-globals.d.ts +62 -0
- package/dist/host-globals.d.ts.map +1 -0
- package/dist/index.cjs +36021 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +127 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +36020 -0
- package/dist/index.mjs.map +1 -0
- package/dist/node-internals.d.ts +68 -0
- package/dist/node-internals.d.ts.map +1 -0
- package/dist/node-lib/binding/blob.d.ts +12 -0
- package/dist/node-lib/binding/blob.d.ts.map +1 -0
- package/dist/node-lib/binding/buffer.d.ts +144 -0
- package/dist/node-lib/binding/buffer.d.ts.map +1 -0
- package/dist/node-lib/binding/cares_wrap.d.ts +14 -0
- package/dist/node-lib/binding/cares_wrap.d.ts.map +1 -0
- package/dist/node-lib/binding/fds.d.ts +30 -0
- package/dist/node-lib/binding/fds.d.ts.map +1 -0
- package/dist/node-lib/binding/fs.d.ts +157 -0
- package/dist/node-lib/binding/fs.d.ts.map +1 -0
- package/dist/node-lib/binding/handles.d.ts +81 -0
- package/dist/node-lib/binding/handles.d.ts.map +1 -0
- package/dist/node-lib/binding/http_parser.d.ts +122 -0
- package/dist/node-lib/binding/http_parser.d.ts.map +1 -0
- package/dist/node-lib/binding/index.d.ts +3 -0
- package/dist/node-lib/binding/index.d.ts.map +1 -0
- package/dist/node-lib/binding/llhttp-wasm.d.ts +22 -0
- package/dist/node-lib/binding/llhttp-wasm.d.ts.map +1 -0
- package/dist/node-lib/binding/misc.d.ts +123 -0
- package/dist/node-lib/binding/misc.d.ts.map +1 -0
- package/dist/node-lib/binding/pipe_wrap.d.ts +84 -0
- package/dist/node-lib/binding/pipe_wrap.d.ts.map +1 -0
- package/dist/node-lib/binding/process_wrap.d.ts +173 -0
- package/dist/node-lib/binding/process_wrap.d.ts.map +1 -0
- package/dist/node-lib/binding/spawn_sync.d.ts +30 -0
- package/dist/node-lib/binding/spawn_sync.d.ts.map +1 -0
- package/dist/node-lib/binding/stream_wrap.d.ts +191 -0
- package/dist/node-lib/binding/stream_wrap.d.ts.map +1 -0
- package/dist/node-lib/binding/stubs.d.ts +23 -0
- package/dist/node-lib/binding/stubs.d.ts.map +1 -0
- package/dist/node-lib/binding/tcp_wrap.d.ts +98 -0
- package/dist/node-lib/binding/tcp_wrap.d.ts.map +1 -0
- package/dist/node-lib/binding/tty_wrap.d.ts +36 -0
- package/dist/node-lib/binding/tty_wrap.d.ts.map +1 -0
- package/dist/node-lib/binding/util.d.ts +126 -0
- package/dist/node-lib/binding/util.d.ts.map +1 -0
- package/dist/node-lib/binding/uv.d.ts +32 -0
- package/dist/node-lib/binding/uv.d.ts.map +1 -0
- package/dist/node-lib/binding/zlib-pako.d.ts +22 -0
- package/dist/node-lib/binding/zlib-pako.d.ts.map +1 -0
- package/dist/node-lib/binding/zlib.d.ts +38 -0
- package/dist/node-lib/binding/zlib.d.ts.map +1 -0
- package/dist/node-lib/buffer-module.d.ts +51 -0
- package/dist/node-lib/buffer-module.d.ts.map +1 -0
- package/dist/node-lib/child-process-module.d.ts +26 -0
- package/dist/node-lib/child-process-module.d.ts.map +1 -0
- package/dist/node-lib/events-module.d.ts +58 -0
- package/dist/node-lib/events-module.d.ts.map +1 -0
- package/dist/node-lib/fs-module.d.ts +5 -0
- package/dist/node-lib/fs-module.d.ts.map +1 -0
- package/dist/node-lib/http-bridge.d.ts +43 -0
- package/dist/node-lib/http-bridge.d.ts.map +1 -0
- package/dist/node-lib/http-module.d.ts +35 -0
- package/dist/node-lib/http-module.d.ts.map +1 -0
- package/dist/node-lib/internals/addresses.d.ts +40 -0
- package/dist/node-lib/internals/addresses.d.ts.map +1 -0
- package/dist/node-lib/internals/buffer-and-streams.d.ts +96 -0
- package/dist/node-lib/internals/buffer-and-streams.d.ts.map +1 -0
- package/dist/node-lib/internals/child-process.d.ts +27 -0
- package/dist/node-lib/internals/child-process.d.ts.map +1 -0
- package/dist/node-lib/internals/events-util.d.ts +83 -0
- package/dist/node-lib/internals/events-util.d.ts.map +1 -0
- package/dist/node-lib/internals/index.d.ts +2 -0
- package/dist/node-lib/internals/index.d.ts.map +1 -0
- package/dist/node-lib/internals/modules.d.ts +67 -0
- package/dist/node-lib/internals/modules.d.ts.map +1 -0
- package/dist/node-lib/internals/readline-access.d.ts +2 -0
- package/dist/node-lib/internals/readline-access.d.ts.map +1 -0
- package/dist/node-lib/internals/runtime.d.ts +150 -0
- package/dist/node-lib/internals/runtime.d.ts.map +1 -0
- package/dist/node-lib/internals/util.d.ts +33 -0
- package/dist/node-lib/internals/util.d.ts.map +1 -0
- package/dist/node-lib/lazy.d.ts +31 -0
- package/dist/node-lib/lazy.d.ts.map +1 -0
- package/dist/node-lib/load.d.ts +27 -0
- package/dist/node-lib/load.d.ts.map +1 -0
- package/dist/node-lib/module-hooks.d.ts +89 -0
- package/dist/node-lib/module-hooks.d.ts.map +1 -0
- package/dist/node-lib/net-module.d.ts +181 -0
- package/dist/node-lib/net-module.d.ts.map +1 -0
- package/dist/node-lib/node-versions.d.ts +27 -0
- package/dist/node-lib/node-versions.d.ts.map +1 -0
- package/dist/node-lib/public-modules.d.ts +2 -0
- package/dist/node-lib/public-modules.d.ts.map +1 -0
- package/dist/node-lib/require-hook.d.ts +15 -0
- package/dist/node-lib/require-hook.d.ts.map +1 -0
- package/dist/node-lib/small-modules.d.ts +16 -0
- package/dist/node-lib/small-modules.d.ts.map +1 -0
- package/dist/node-lib/sources.d.ts +4 -0
- package/dist/node-lib/sources.d.ts.map +1 -0
- package/dist/node-lib/stream-module.d.ts +77 -0
- package/dist/node-lib/stream-module.d.ts.map +1 -0
- package/dist/node-lib/timers.d.ts +19 -0
- package/dist/node-lib/timers.d.ts.map +1 -0
- package/dist/node-lib/util-module.d.ts +76 -0
- package/dist/node-lib/util-module.d.ts.map +1 -0
- package/dist/node-resolution.d.ts +50 -0
- package/dist/node-resolution.d.ts.map +1 -0
- package/dist/node-resolver.d.ts +7 -0
- package/dist/node-resolver.d.ts.map +1 -0
- package/dist/npm/index.d.ts +73 -0
- package/dist/npm/index.d.ts.map +1 -0
- package/dist/npm/registry.d.ts +111 -0
- package/dist/npm/registry.d.ts.map +1 -0
- package/dist/npm/resolver.d.ts +79 -0
- package/dist/npm/resolver.d.ts.map +1 -0
- package/dist/npm/tarball.d.ts +28 -0
- package/dist/npm/tarball.d.ts.map +1 -0
- package/dist/process-tokens.d.ts +77 -0
- package/dist/process-tokens.d.ts.map +1 -0
- package/dist/punycode-source.d.ts +3 -0
- package/dist/punycode-source.d.ts.map +1 -0
- package/dist/runtime-interface.d.ts +74 -0
- package/dist/runtime-interface.d.ts.map +1 -0
- package/dist/runtime.d.ts +144 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/server-bridge.d.ts +147 -0
- package/dist/server-bridge.d.ts.map +1 -0
- package/dist/shims/async_hooks.d.ts +50 -0
- package/dist/shims/async_hooks.d.ts.map +1 -0
- package/dist/shims/child_process.d.ts +104 -0
- package/dist/shims/child_process.d.ts.map +1 -0
- package/dist/shims/cluster.d.ts +52 -0
- package/dist/shims/cluster.d.ts.map +1 -0
- package/dist/shims/command-line.d.ts +43 -0
- package/dist/shims/command-line.d.ts.map +1 -0
- package/dist/shims/constants.d.ts +222 -0
- package/dist/shims/constants.d.ts.map +1 -0
- package/dist/shims/crypto-constants.d.ts +12 -0
- package/dist/shims/crypto-constants.d.ts.map +1 -0
- package/dist/shims/crypto.d.ts +144 -0
- package/dist/shims/crypto.d.ts.map +1 -0
- package/dist/shims/dgram.d.ts +34 -0
- package/dist/shims/dgram.d.ts.map +1 -0
- package/dist/shims/dns.d.ts +91 -0
- package/dist/shims/dns.d.ts.map +1 -0
- package/dist/shims/domain.d.ts +25 -0
- package/dist/shims/domain.d.ts.map +1 -0
- package/dist/shims/esbuild.d.ts +205 -0
- package/dist/shims/esbuild.d.ts.map +1 -0
- package/dist/shims/fs.d.ts +25 -0
- package/dist/shims/fs.d.ts.map +1 -0
- package/dist/shims/http2.d.ts +81 -0
- package/dist/shims/http2.d.ts.map +1 -0
- package/dist/shims/inspector.d.ts +25 -0
- package/dist/shims/inspector.d.ts.map +1 -0
- package/dist/shims/module.d.ts +22 -0
- package/dist/shims/module.d.ts.map +1 -0
- package/dist/shims/os.d.ts +159 -0
- package/dist/shims/os.d.ts.map +1 -0
- package/dist/shims/path.d.ts +52 -0
- package/dist/shims/path.d.ts.map +1 -0
- package/dist/shims/perf_hooks.d.ts +50 -0
- package/dist/shims/perf_hooks.d.ts.map +1 -0
- package/dist/shims/process.d.ts +226 -0
- package/dist/shims/process.d.ts.map +1 -0
- package/dist/shims/rollup.d.ts +71 -0
- package/dist/shims/rollup.d.ts.map +1 -0
- package/dist/shims/string_decoder.d.ts +41 -0
- package/dist/shims/string_decoder.d.ts.map +1 -0
- package/dist/shims/sync-child.d.ts +64 -0
- package/dist/shims/sync-child.d.ts.map +1 -0
- package/dist/shims/tls.d.ts +53 -0
- package/dist/shims/tls.d.ts.map +1 -0
- package/dist/shims/url.d.ts +84 -0
- package/dist/shims/url.d.ts.map +1 -0
- package/dist/shims/v8.d.ts +73 -0
- package/dist/shims/v8.d.ts.map +1 -0
- package/dist/shims/vfs-adapter.d.ts +126 -0
- package/dist/shims/vfs-adapter.d.ts.map +1 -0
- package/dist/shims/vm.d.ts +52 -0
- package/dist/shims/vm.d.ts.map +1 -0
- package/dist/shims/wasi.d.ts +78 -0
- package/dist/shims/wasi.d.ts.map +1 -0
- package/dist/shims/worker_threads.d.ts +66 -0
- package/dist/shims/worker_threads.d.ts.map +1 -0
- package/dist/shims/zlib-constants.d.ts +66 -0
- package/dist/shims/zlib-constants.d.ts.map +1 -0
- package/dist/shims/zlib.d.ts +102 -0
- package/dist/shims/zlib.d.ts.map +1 -0
- package/dist/transform.d.ts +24 -0
- package/dist/transform.d.ts.map +1 -0
- package/dist/types/package-json.d.ts +18 -0
- package/dist/types/package-json.d.ts.map +1 -0
- package/dist/utils/binary-encoding.d.ts +13 -0
- package/dist/utils/binary-encoding.d.ts.map +1 -0
- package/dist/utils/glob.d.ts +19 -0
- package/dist/utils/glob.d.ts.map +1 -0
- package/dist/utils/hash.d.ts +6 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/virtual-fs.d.ts +259 -0
- package/dist/virtual-fs.d.ts.map +1 -0
- package/dist/vite-plugin.cjs +50 -0
- package/dist/vite-plugin.cjs.map +1 -0
- package/dist/vite-plugin.d.ts +36 -0
- package/dist/vite-plugin.d.ts.map +1 -0
- package/dist/vite-plugin.mjs +31 -0
- package/dist/vite-plugin.mjs.map +1 -0
- package/dist/worker/runtime-worker.d.ts +8 -0
- package/dist/worker/runtime-worker.d.ts.map +1 -0
- package/dist/worker-runtime.d.ts +50 -0
- package/dist/worker-runtime.d.ts.map +1 -0
- package/package.json +88 -0
- package/src/code-transforms.ts +560 -0
- package/src/config/cdn.ts +13 -0
- package/src/create-runtime.ts +89 -0
- package/src/host-globals.ts +121 -0
- package/src/index.ts +235 -0
- package/src/node-internals.ts +283 -0
- package/src/node-lib/LICENSE +47 -0
- package/src/node-lib/_http_agent.js +547 -0
- package/src/node-lib/_http_client.js +996 -0
- package/src/node-lib/_http_common.js +269 -0
- package/src/node-lib/_http_incoming.js +453 -0
- package/src/node-lib/_http_outgoing.js +1262 -0
- package/src/node-lib/_http_server.js +1230 -0
- package/src/node-lib/assert/strict.js +3 -0
- package/src/node-lib/assert.js +844 -0
- package/src/node-lib/binding/blob.ts +35 -0
- package/src/node-lib/binding/buffer.ts +465 -0
- package/src/node-lib/binding/cares_wrap.ts +57 -0
- package/src/node-lib/binding/fds.ts +80 -0
- package/src/node-lib/binding/fs.ts +857 -0
- package/src/node-lib/binding/handles.ts +187 -0
- package/src/node-lib/binding/http_parser.ts +536 -0
- package/src/node-lib/binding/index.ts +77 -0
- package/src/node-lib/binding/llhttp-wasm.ts +670 -0
- package/src/node-lib/binding/misc.ts +252 -0
- package/src/node-lib/binding/pipe_wrap.ts +166 -0
- package/src/node-lib/binding/process_wrap.ts +371 -0
- package/src/node-lib/binding/spawn_sync.ts +141 -0
- package/src/node-lib/binding/stream_wrap.ts +413 -0
- package/src/node-lib/binding/stubs.ts +19 -0
- package/src/node-lib/binding/tcp_wrap.ts +254 -0
- package/src/node-lib/binding/tty_wrap.ts +56 -0
- package/src/node-lib/binding/util.ts +274 -0
- package/src/node-lib/binding/uv.ts +102 -0
- package/src/node-lib/binding/zlib-pako.ts +50 -0
- package/src/node-lib/binding/zlib.ts +259 -0
- package/src/node-lib/buffer-module.ts +70 -0
- package/src/node-lib/buffer.js +1373 -0
- package/src/node-lib/child-process-module.ts +58 -0
- package/src/node-lib/child_process.js +1046 -0
- package/src/node-lib/constants.js +41 -0
- package/src/node-lib/diagnostics_channel.js +438 -0
- package/src/node-lib/events-module.ts +80 -0
- package/src/node-lib/events.js +1223 -0
- package/src/node-lib/fs-module.ts +43 -0
- package/src/node-lib/fs.js +3377 -0
- package/src/node-lib/http-bridge.ts +299 -0
- package/src/node-lib/http-module.ts +53 -0
- package/src/node-lib/http.js +198 -0
- package/src/node-lib/https.js +429 -0
- package/src/node-lib/internal/assert/assertion_error.js +417 -0
- package/src/node-lib/internal/assert/calltracker.js +153 -0
- package/src/node-lib/internal/assert/myers_diff.js +177 -0
- package/src/node-lib/internal/assert/utils.js +278 -0
- package/src/node-lib/internal/buffer.js +1120 -0
- package/src/node-lib/internal/child_process/serialization.js +169 -0
- package/src/node-lib/internal/child_process.js +1135 -0
- package/src/node-lib/internal/constants.js +56 -0
- package/src/node-lib/internal/deps/minimatch/index.js +1628 -0
- package/src/node-lib/internal/errors.js +1912 -0
- package/src/node-lib/internal/events/abort_listener.js +54 -0
- package/src/node-lib/internal/events/symbols.js +11 -0
- package/src/node-lib/internal/fixed_queue.js +119 -0
- package/src/node-lib/internal/freelist.js +30 -0
- package/src/node-lib/internal/fs/cp/cp-sync.js +242 -0
- package/src/node-lib/internal/fs/cp/cp.js +382 -0
- package/src/node-lib/internal/fs/dir.js +369 -0
- package/src/node-lib/internal/fs/glob.js +763 -0
- package/src/node-lib/internal/fs/promises.js +1312 -0
- package/src/node-lib/internal/fs/read/context.js +129 -0
- package/src/node-lib/internal/fs/recursive_watch.js +275 -0
- package/src/node-lib/internal/fs/rimraf.js +311 -0
- package/src/node-lib/internal/fs/streams.js +571 -0
- package/src/node-lib/internal/fs/sync_write_stream.js +49 -0
- package/src/node-lib/internal/fs/utils.js +987 -0
- package/src/node-lib/internal/fs/watchers.js +418 -0
- package/src/node-lib/internal/http.js +62 -0
- package/src/node-lib/internal/mime.js +389 -0
- package/src/node-lib/internal/modules/customization_hooks.js +406 -0
- package/src/node-lib/internal/net.js +95 -0
- package/src/node-lib/internal/querystring.js +119 -0
- package/src/node-lib/internal/readline/callbacks.js +132 -0
- package/src/node-lib/internal/readline/emitKeypressEvents.js +99 -0
- package/src/node-lib/internal/readline/interface.js +1418 -0
- package/src/node-lib/internal/readline/promises.js +144 -0
- package/src/node-lib/internal/readline/utils.js +405 -0
- package/src/node-lib/internal/socket_list.js +108 -0
- package/src/node-lib/internal/stream_base_commons.js +280 -0
- package/src/node-lib/internal/streams/add-abort-signal.js +60 -0
- package/src/node-lib/internal/streams/compose.js +257 -0
- package/src/node-lib/internal/streams/destroy.js +361 -0
- package/src/node-lib/internal/streams/duplex.js +203 -0
- package/src/node-lib/internal/streams/duplexify.js +379 -0
- package/src/node-lib/internal/streams/duplexpair.js +62 -0
- package/src/node-lib/internal/streams/end-of-stream.js +331 -0
- package/src/node-lib/internal/streams/from.js +208 -0
- package/src/node-lib/internal/streams/lazy_transform.js +57 -0
- package/src/node-lib/internal/streams/legacy.js +125 -0
- package/src/node-lib/internal/streams/operators.js +436 -0
- package/src/node-lib/internal/streams/passthrough.js +47 -0
- package/src/node-lib/internal/streams/pipeline.js +465 -0
- package/src/node-lib/internal/streams/readable.js +1762 -0
- package/src/node-lib/internal/streams/state.js +51 -0
- package/src/node-lib/internal/streams/transform.js +204 -0
- package/src/node-lib/internal/streams/utils.js +363 -0
- package/src/node-lib/internal/streams/writable.js +1163 -0
- package/src/node-lib/internal/tty.js +260 -0
- package/src/node-lib/internal/util/colors.js +40 -0
- package/src/node-lib/internal/util/comparisons.js +1028 -0
- package/src/node-lib/internal/util/debuglog.js +524 -0
- package/src/node-lib/internal/util/inspect.js +2535 -0
- package/src/node-lib/internal/util/parse_args/parse_args.js +412 -0
- package/src/node-lib/internal/util/parse_args/utils.js +197 -0
- package/src/node-lib/internal/util.js +1003 -0
- package/src/node-lib/internal/validators.js +654 -0
- package/src/node-lib/internals/addresses.ts +159 -0
- package/src/node-lib/internals/buffer-and-streams.ts +224 -0
- package/src/node-lib/internals/child-process.ts +64 -0
- package/src/node-lib/internals/events-util.ts +105 -0
- package/src/node-lib/internals/index.ts +66 -0
- package/src/node-lib/internals/modules.ts +117 -0
- package/src/node-lib/internals/readline-access.ts +16 -0
- package/src/node-lib/internals/runtime.ts +277 -0
- package/src/node-lib/internals/util.ts +98 -0
- package/src/node-lib/lazy.ts +158 -0
- package/src/node-lib/load.ts +390 -0
- package/src/node-lib/module-hooks.ts +281 -0
- package/src/node-lib/net-module.ts +248 -0
- package/src/node-lib/net.js +2540 -0
- package/src/node-lib/node-versions.ts +34 -0
- package/src/node-lib/os.js +356 -0
- package/src/node-lib/path.js +1694 -0
- package/src/node-lib/primordials.js +743 -0
- package/src/node-lib/public-modules.ts +109 -0
- package/src/node-lib/punycode.js +455 -0
- package/src/node-lib/querystring.js +484 -0
- package/src/node-lib/readline/promises.js +73 -0
- package/src/node-lib/readline.js +523 -0
- package/src/node-lib/require-hook.ts +27 -0
- package/src/node-lib/small-modules.ts +35 -0
- package/src/node-lib/sources.ts +200 -0
- package/src/node-lib/stream/promises.js +44 -0
- package/src/node-lib/stream-module.ts +101 -0
- package/src/node-lib/stream.js +152 -0
- package/src/node-lib/timers.ts +33 -0
- package/src/node-lib/tty.js +168 -0
- package/src/node-lib/util-module.ts +104 -0
- package/src/node-lib/util.js +689 -0
- package/src/node-lib/wasi.js +179 -0
- package/src/node-lib/zlib.js +1036 -0
- package/src/node-resolution.ts +241 -0
- package/src/node-resolver.ts +33 -0
- package/src/npm/index.ts +425 -0
- package/src/npm/registry.ts +235 -0
- package/src/npm/resolver.ts +589 -0
- package/src/npm/tarball.ts +246 -0
- package/src/process-tokens.ts +156 -0
- package/src/punycode-source.ts +6 -0
- package/src/runtime-interface.ts +85 -0
- package/src/runtime.ts +3073 -0
- package/src/server-bridge.ts +971 -0
- package/src/shims/async_hooks.ts +181 -0
- package/src/shims/child_process.ts +1591 -0
- package/src/shims/cluster.ts +79 -0
- package/src/shims/command-line.ts +79 -0
- package/src/shims/constants.ts +68 -0
- package/src/shims/crypto-constants.ts +11 -0
- package/src/shims/crypto.ts +1061 -0
- package/src/shims/dgram.ts +47 -0
- package/src/shims/dns.ts +185 -0
- package/src/shims/domain.ts +58 -0
- package/src/shims/esbuild.ts +1638 -0
- package/src/shims/fs.ts +82 -0
- package/src/shims/http2.ts +96 -0
- package/src/shims/inspector.ts +30 -0
- package/src/shims/module.ts +86 -0
- package/src/shims/os.ts +195 -0
- package/src/shims/path.ts +246 -0
- package/src/shims/perf_hooks.ts +92 -0
- package/src/shims/process.ts +804 -0
- package/src/shims/rollup.ts +149 -0
- package/src/shims/string_decoder.ts +396 -0
- package/src/shims/sync-child.ts +469 -0
- package/src/shims/tls.ts +94 -0
- package/src/shims/url.ts +217 -0
- package/src/shims/v8.ts +113 -0
- package/src/shims/vfs-adapter.ts +408 -0
- package/src/shims/vm.ts +132 -0
- package/src/shims/wasi.ts +1440 -0
- package/src/shims/worker_threads.ts +114 -0
- package/src/shims/zlib-constants.ts +65 -0
- package/src/shims/zlib.ts +228 -0
- package/src/transform.ts +324 -0
- package/src/types/external.d.ts +55 -0
- package/src/types/package-json.ts +17 -0
- package/src/types/pako-zlib.d.ts +30 -0
- package/src/types/sha.js.d.ts +14 -0
- package/src/utils/binary-encoding.ts +43 -0
- package/src/utils/glob.ts +54 -0
- package/src/utils/hash.ts +12 -0
- package/src/virtual-fs.ts +1048 -0
- package/src/vite-plugin.ts +76 -0
- package/src/worker/runtime-worker.ts +128 -0
- package/src/worker-runtime.ts +145 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vite Plugin for tabnode
|
|
3
|
+
*
|
|
4
|
+
* Serves the service worker file from the package's dist directory,
|
|
5
|
+
* enabling seamless integration when tabnode is installed as an npm package.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { Plugin, ViteDevServer } from 'vite';
|
|
9
|
+
import * as fs from 'fs';
|
|
10
|
+
import * as path from 'path';
|
|
11
|
+
import { fileURLToPath } from 'url';
|
|
12
|
+
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
14
|
+
// @ts-ignore - import.meta.url is available in ESM
|
|
15
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
16
|
+
|
|
17
|
+
export interface TabnodePluginOptions {
|
|
18
|
+
/**
|
|
19
|
+
* The URL path where the service worker will be served
|
|
20
|
+
* @default '/__sw__.js'
|
|
21
|
+
*/
|
|
22
|
+
swPath?: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Vite plugin that serves the tabnode service worker file.
|
|
27
|
+
*
|
|
28
|
+
* When tabnode is installed as an npm package, the service worker file
|
|
29
|
+
* is located at node_modules/tabnode/dist/__sw__.js but the browser
|
|
30
|
+
* tries to load it from the root URL (/__sw__.js). This plugin intercepts
|
|
31
|
+
* requests to the service worker path and serves the file from the correct location.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* // vite.config.ts
|
|
36
|
+
* import { defineConfig } from 'vite';
|
|
37
|
+
* import { tabnodePlugin } from 'tabnode/vite';
|
|
38
|
+
*
|
|
39
|
+
* export default defineConfig({
|
|
40
|
+
* plugins: [tabnodePlugin()]
|
|
41
|
+
* });
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export function tabnodePlugin(options: TabnodePluginOptions = {}): Plugin {
|
|
45
|
+
const swPath = options.swPath || '/__sw__.js';
|
|
46
|
+
|
|
47
|
+
return {
|
|
48
|
+
name: 'tabnode',
|
|
49
|
+
|
|
50
|
+
configureServer(server: ViteDevServer) {
|
|
51
|
+
server.middlewares.use(swPath, (_req, res) => {
|
|
52
|
+
// The service worker file is in the dist directory relative to this file
|
|
53
|
+
// In src: ../dist/__sw__.js
|
|
54
|
+
// In dist: ./__sw__.js
|
|
55
|
+
let swFilePath = path.join(__dirname, '__sw__.js');
|
|
56
|
+
|
|
57
|
+
// If running from src directory during development, look in dist
|
|
58
|
+
if (!fs.existsSync(swFilePath)) {
|
|
59
|
+
swFilePath = path.join(__dirname, '../dist/__sw__.js');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (!fs.existsSync(swFilePath)) {
|
|
63
|
+
res.statusCode = 404;
|
|
64
|
+
res.end('Service worker file not found. Make sure tabnode is built.');
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
res.setHeader('Content-Type', 'application/javascript');
|
|
69
|
+
res.setHeader('Cache-Control', 'no-cache');
|
|
70
|
+
res.end(fs.readFileSync(swFilePath));
|
|
71
|
+
});
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export default tabnodePlugin;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime Worker - Runs the Just Node runtime in a Web Worker
|
|
3
|
+
*
|
|
4
|
+
* This worker receives code execution requests from the main thread
|
|
5
|
+
* and runs them in isolation, preventing UI blocking.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { expose } from 'comlink';
|
|
9
|
+
import { VirtualFS } from '../virtual-fs';
|
|
10
|
+
import { Runtime } from '../runtime';
|
|
11
|
+
import type { VFSSnapshot, IRuntimeOptions, IExecuteResult } from '../runtime-interface';
|
|
12
|
+
|
|
13
|
+
let runtime: Runtime | null = null;
|
|
14
|
+
let vfs: VirtualFS | null = null;
|
|
15
|
+
let consoleCallback: ((method: string, args: unknown[]) => void) | null = null;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Worker API exposed via Comlink
|
|
19
|
+
*/
|
|
20
|
+
const workerApi = {
|
|
21
|
+
/**
|
|
22
|
+
* Initialize the worker with a VFS snapshot and runtime options
|
|
23
|
+
*/
|
|
24
|
+
init(vfsSnapshot: VFSSnapshot, options: IRuntimeOptions): void {
|
|
25
|
+
console.log('[Worker] Initializing with', vfsSnapshot.files.length, 'files');
|
|
26
|
+
|
|
27
|
+
// Restore VFS from snapshot
|
|
28
|
+
vfs = VirtualFS.fromSnapshot(vfsSnapshot);
|
|
29
|
+
|
|
30
|
+
// Create runtime with console forwarding
|
|
31
|
+
const runtimeOptions: IRuntimeOptions = {
|
|
32
|
+
...options,
|
|
33
|
+
onConsole: (method, args) => {
|
|
34
|
+
// Forward console output to main thread
|
|
35
|
+
if (consoleCallback) {
|
|
36
|
+
consoleCallback(method, args);
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
runtime = new Runtime(vfs, runtimeOptions);
|
|
42
|
+
console.log('[Worker] Runtime initialized');
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Set the console callback for forwarding output to main thread
|
|
47
|
+
*/
|
|
48
|
+
setConsoleCallback(callback: ((method: string, args: unknown[]) => void) | null): void {
|
|
49
|
+
consoleCallback = callback;
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Sync a file change from the main thread
|
|
54
|
+
*/
|
|
55
|
+
syncFile(path: string, content: string | null): void {
|
|
56
|
+
if (!vfs) {
|
|
57
|
+
console.warn('[Worker] VFS not initialized, cannot sync file:', path);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (content === null) {
|
|
62
|
+
// File was deleted
|
|
63
|
+
try {
|
|
64
|
+
vfs.unlinkSync(path);
|
|
65
|
+
console.log('[Worker] Deleted file:', path);
|
|
66
|
+
} catch (err) {
|
|
67
|
+
// File might not exist, that's ok
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
// File was created or modified
|
|
71
|
+
vfs.writeFileSync(path, content);
|
|
72
|
+
console.log('[Worker] Synced file:', path);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Clear module cache for this file to pick up changes
|
|
76
|
+
if (runtime) {
|
|
77
|
+
runtime.clearCache();
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Execute code in the worker
|
|
83
|
+
*/
|
|
84
|
+
async execute(code: string, filename?: string): Promise<IExecuteResult> {
|
|
85
|
+
if (!runtime) {
|
|
86
|
+
throw new Error('Worker runtime not initialized. Call init() first.');
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
console.log('[Worker] Executing code in file:', filename);
|
|
90
|
+
return runtime.execute(code, filename);
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Run a file from the VFS
|
|
95
|
+
*/
|
|
96
|
+
async runFile(filename: string): Promise<IExecuteResult> {
|
|
97
|
+
if (!runtime) {
|
|
98
|
+
throw new Error('Worker runtime not initialized. Call init() first.');
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
console.log('[Worker] Running file:', filename);
|
|
102
|
+
return runtime.runFile(filename);
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Clear the module cache
|
|
107
|
+
*/
|
|
108
|
+
clearCache(): void {
|
|
109
|
+
if (runtime) {
|
|
110
|
+
runtime.clearCache();
|
|
111
|
+
console.log('[Worker] Cache cleared');
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Get current VFS state (for debugging)
|
|
117
|
+
*/
|
|
118
|
+
getVFSSnapshot(): VFSSnapshot | null {
|
|
119
|
+
if (!vfs) return null;
|
|
120
|
+
return vfs.toSnapshot();
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
// Expose the API via Comlink
|
|
125
|
+
expose(workerApi);
|
|
126
|
+
|
|
127
|
+
// Log that worker is ready
|
|
128
|
+
console.log('[Worker] Runtime worker loaded and ready');
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkerRuntime - Runs code in a Web Worker for non-blocking execution
|
|
3
|
+
*
|
|
4
|
+
* This class provides the same IRuntime interface as Runtime,
|
|
5
|
+
* but executes code in a separate Web Worker thread.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { wrap, proxy, Remote } from 'comlink';
|
|
9
|
+
import type { VirtualFS } from './virtual-fs';
|
|
10
|
+
import type { IRuntime, IExecuteResult, IRuntimeOptions, VFSSnapshot } from './runtime-interface';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Type for the worker API
|
|
14
|
+
*/
|
|
15
|
+
interface WorkerApi {
|
|
16
|
+
init(vfsSnapshot: VFSSnapshot, options: IRuntimeOptions): void;
|
|
17
|
+
setConsoleCallback(callback: ((method: string, args: unknown[]) => void) | null): void;
|
|
18
|
+
syncFile(path: string, content: string | null): void;
|
|
19
|
+
execute(code: string, filename?: string): Promise<IExecuteResult>;
|
|
20
|
+
runFile(filename: string): Promise<IExecuteResult>;
|
|
21
|
+
clearCache(): void;
|
|
22
|
+
getVFSSnapshot(): VFSSnapshot | null;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* WorkerRuntime - Executes code in a Web Worker
|
|
27
|
+
*/
|
|
28
|
+
export class WorkerRuntime implements IRuntime {
|
|
29
|
+
private worker: Worker;
|
|
30
|
+
private workerApi: Remote<WorkerApi>;
|
|
31
|
+
private vfs: VirtualFS;
|
|
32
|
+
private options: IRuntimeOptions;
|
|
33
|
+
private initialized: Promise<void>;
|
|
34
|
+
private changeListener: ((path: string, content: string) => void) | null = null;
|
|
35
|
+
private deleteListener: ((path: string) => void) | null = null;
|
|
36
|
+
|
|
37
|
+
constructor(vfs: VirtualFS, options: IRuntimeOptions = {}) {
|
|
38
|
+
this.vfs = vfs;
|
|
39
|
+
this.options = options;
|
|
40
|
+
|
|
41
|
+
// Create the worker
|
|
42
|
+
// Using Vite's worker import syntax
|
|
43
|
+
this.worker = new Worker(
|
|
44
|
+
new URL('./worker/runtime-worker.ts', import.meta.url),
|
|
45
|
+
{ type: 'module' }
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
// Wrap with Comlink
|
|
49
|
+
this.workerApi = wrap<WorkerApi>(this.worker);
|
|
50
|
+
|
|
51
|
+
// Initialize the worker
|
|
52
|
+
this.initialized = this.initWorker();
|
|
53
|
+
|
|
54
|
+
// Set up VFS change listeners
|
|
55
|
+
this.setupVFSListeners();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Initialize the worker with VFS snapshot and options
|
|
60
|
+
*/
|
|
61
|
+
private async initWorker(): Promise<void> {
|
|
62
|
+
const snapshot = this.vfs.toSnapshot();
|
|
63
|
+
|
|
64
|
+
// Create options without the onConsole callback (we'll set it separately via proxy)
|
|
65
|
+
const workerOptions: IRuntimeOptions = {
|
|
66
|
+
cwd: this.options.cwd,
|
|
67
|
+
env: this.options.env,
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
await this.workerApi.init(snapshot, workerOptions);
|
|
71
|
+
|
|
72
|
+
// Set up console forwarding if callback provided
|
|
73
|
+
if (this.options.onConsole) {
|
|
74
|
+
await this.workerApi.setConsoleCallback(
|
|
75
|
+
proxy(this.options.onConsole)
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
console.log('[WorkerRuntime] Worker initialized');
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Set up listeners for VFS changes to sync to worker
|
|
84
|
+
*/
|
|
85
|
+
private setupVFSListeners(): void {
|
|
86
|
+
// Listen for file changes
|
|
87
|
+
this.changeListener = (path: string, content: string) => {
|
|
88
|
+
this.workerApi.syncFile(path, content);
|
|
89
|
+
};
|
|
90
|
+
this.vfs.on('change', this.changeListener);
|
|
91
|
+
|
|
92
|
+
// Listen for file deletions
|
|
93
|
+
this.deleteListener = (path: string) => {
|
|
94
|
+
this.workerApi.syncFile(path, null);
|
|
95
|
+
};
|
|
96
|
+
this.vfs.on('delete', this.deleteListener);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Execute code in the worker
|
|
101
|
+
*/
|
|
102
|
+
async execute(code: string, filename?: string): Promise<IExecuteResult> {
|
|
103
|
+
await this.initialized;
|
|
104
|
+
return this.workerApi.execute(code, filename);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Run a file from the VFS in the worker
|
|
109
|
+
*/
|
|
110
|
+
async runFile(filename: string): Promise<IExecuteResult> {
|
|
111
|
+
await this.initialized;
|
|
112
|
+
return this.workerApi.runFile(filename);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Clear the module cache in the worker
|
|
117
|
+
*/
|
|
118
|
+
clearCache(): void {
|
|
119
|
+
this.workerApi.clearCache();
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Get the VFS (main thread instance)
|
|
124
|
+
*/
|
|
125
|
+
getVFS(): VirtualFS {
|
|
126
|
+
return this.vfs;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Terminate the worker
|
|
131
|
+
*/
|
|
132
|
+
terminate(): void {
|
|
133
|
+
// Remove VFS listeners
|
|
134
|
+
if (this.changeListener) {
|
|
135
|
+
this.vfs.off('change', this.changeListener);
|
|
136
|
+
}
|
|
137
|
+
if (this.deleteListener) {
|
|
138
|
+
this.vfs.off('delete', this.deleteListener);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Terminate the worker
|
|
142
|
+
this.worker.terminate();
|
|
143
|
+
console.log('[WorkerRuntime] Worker terminated');
|
|
144
|
+
}
|
|
145
|
+
}
|