@nimbus-sh/core 0.1.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/_shared/ai-egress.d.ts +73 -0
- package/dist/_shared/ai-egress.d.ts.map +1 -0
- package/dist/_shared/ai-egress.js +88 -0
- package/dist/_shared/byte-stream.d.ts +59 -0
- package/dist/_shared/byte-stream.d.ts.map +1 -0
- package/dist/_shared/byte-stream.js +77 -0
- package/dist/_shared/bytes.d.ts +18 -0
- package/dist/_shared/bytes.d.ts.map +1 -0
- package/dist/_shared/bytes.js +17 -0
- package/dist/_shared/cache-stats.d.ts +145 -0
- package/dist/_shared/cache-stats.d.ts.map +1 -0
- package/dist/_shared/cache-stats.js +161 -0
- package/dist/_shared/crypto.d.ts +17 -0
- package/dist/_shared/crypto.d.ts.map +1 -0
- package/dist/_shared/crypto.js +131 -0
- package/dist/_shared/esbuild-facet-shim.d.ts +21 -0
- package/dist/_shared/esbuild-facet-shim.d.ts.map +1 -0
- package/dist/_shared/esbuild-facet-shim.js +22 -0
- package/dist/_shared/exports-resolver.d.ts +74 -0
- package/dist/_shared/exports-resolver.d.ts.map +1 -0
- package/dist/_shared/exports-resolver.js +284 -0
- package/dist/_shared/facet-vfs-cursor.d.ts +48 -0
- package/dist/_shared/facet-vfs-cursor.d.ts.map +1 -0
- package/dist/_shared/facet-vfs-cursor.js +51 -0
- package/dist/_shared/install-phase.d.ts +47 -0
- package/dist/_shared/install-phase.d.ts.map +1 -0
- package/dist/_shared/install-phase.js +1 -0
- package/dist/_shared/lru-map.d.ts +25 -0
- package/dist/_shared/lru-map.d.ts.map +1 -0
- package/dist/_shared/lru-map.js +57 -0
- package/dist/_shared/real-node-imports.d.ts +43 -0
- package/dist/_shared/real-node-imports.d.ts.map +1 -0
- package/dist/_shared/real-node-imports.js +52 -0
- package/dist/_shared/retry.d.ts +92 -0
- package/dist/_shared/retry.d.ts.map +1 -0
- package/dist/_shared/retry.js +155 -0
- package/dist/_shared/rpc-dispose.d.ts +4 -0
- package/dist/_shared/rpc-dispose.d.ts.map +1 -0
- package/dist/_shared/rpc-dispose.js +30 -0
- package/dist/_shared/terminal.d.ts +2 -0
- package/dist/_shared/terminal.d.ts.map +1 -0
- package/dist/_shared/terminal.js +3 -0
- package/dist/_shared/typescript-specifiers.d.ts +58 -0
- package/dist/_shared/typescript-specifiers.d.ts.map +1 -0
- package/dist/_shared/typescript-specifiers.js +84 -0
- package/dist/_shared/untrusted-request.d.ts +34 -0
- package/dist/_shared/untrusted-request.d.ts.map +1 -0
- package/dist/_shared/untrusted-request.js +74 -0
- package/dist/_shared/vfs-write-ledger.d.ts +3 -0
- package/dist/_shared/vfs-write-ledger.d.ts.map +1 -0
- package/dist/_shared/vfs-write-ledger.js +439 -0
- package/dist/_shared/w7-frame.d.ts +79 -0
- package/dist/_shared/w7-frame.d.ts.map +1 -0
- package/dist/_shared/w7-frame.js +839 -0
- package/dist/_shared/weighted-credit-pool.d.ts +61 -0
- package/dist/_shared/weighted-credit-pool.d.ts.map +1 -0
- package/dist/_shared/weighted-credit-pool.js +196 -0
- package/dist/constants.d.ts +64 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +264 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/observability/diag-counters.d.ts +236 -0
- package/dist/observability/diag-counters.d.ts.map +1 -0
- package/dist/observability/diag-counters.js +195 -0
- package/dist/observability/heap-estimate.d.ts +225 -0
- package/dist/observability/heap-estimate.d.ts.map +1 -0
- package/dist/observability/heap-estimate.js +185 -0
- package/dist/observability/heavy-alloc-coord.d.ts +93 -0
- package/dist/observability/heavy-alloc-coord.d.ts.map +1 -0
- package/dist/observability/heavy-alloc-coord.js +181 -0
- package/dist/observability/oom-classify.d.ts +138 -0
- package/dist/observability/oom-classify.d.ts.map +1 -0
- package/dist/observability/oom-classify.js +261 -0
- package/dist/observability/oom-discriminator.d.ts +176 -0
- package/dist/observability/oom-discriminator.d.ts.map +1 -0
- package/dist/observability/oom-discriminator.js +272 -0
- package/dist/runtime/assets-loader.d.ts +71 -0
- package/dist/runtime/assets-loader.d.ts.map +1 -0
- package/dist/runtime/assets-loader.js +139 -0
- package/dist/runtime/barrel-detect.d.ts +46 -0
- package/dist/runtime/barrel-detect.d.ts.map +1 -0
- package/dist/runtime/barrel-detect.js +73 -0
- package/dist/runtime/bash/preamble.d.ts +2 -0
- package/dist/runtime/bash/preamble.d.ts.map +1 -0
- package/dist/runtime/bash/preamble.js +1849 -0
- package/dist/runtime/bash/types.d.ts +433 -0
- package/dist/runtime/bash/types.d.ts.map +1 -0
- package/dist/runtime/bash/types.js +1 -0
- package/dist/runtime/bundle-profile.d.ts +14 -0
- package/dist/runtime/bundle-profile.d.ts.map +1 -0
- package/dist/runtime/bundle-profile.js +20 -0
- package/dist/runtime/cirrus-vite-config-rewriter.d.ts +2 -0
- package/dist/runtime/cirrus-vite-config-rewriter.d.ts.map +1 -0
- package/dist/runtime/cirrus-vite-config-rewriter.js +28 -0
- package/dist/runtime/cli-flags.d.ts +2 -0
- package/dist/runtime/cli-flags.d.ts.map +1 -0
- package/dist/runtime/cli-flags.js +11 -0
- package/dist/runtime/comment-strip.d.ts +37 -0
- package/dist/runtime/comment-strip.d.ts.map +1 -0
- package/dist/runtime/comment-strip.js +74 -0
- package/dist/runtime/cpython-preamble.d.ts +32 -0
- package/dist/runtime/cpython-preamble.d.ts.map +1 -0
- package/dist/runtime/cpython-preamble.js +296 -0
- package/dist/runtime/esbuild-service.d.ts +242 -0
- package/dist/runtime/esbuild-service.d.ts.map +1 -0
- package/dist/runtime/esbuild-service.js +1452 -0
- package/dist/runtime/framework-detect.d.ts +70 -0
- package/dist/runtime/framework-detect.d.ts.map +1 -0
- package/dist/runtime/framework-detect.js +177 -0
- package/dist/runtime/import-meta-transform.d.ts +3 -0
- package/dist/runtime/import-meta-transform.d.ts.map +1 -0
- package/dist/runtime/import-meta-transform.js +15 -0
- package/dist/runtime/javascript-ast.d.ts +13 -0
- package/dist/runtime/javascript-ast.d.ts.map +1 -0
- package/dist/runtime/javascript-ast.js +57 -0
- package/dist/runtime/long-running-handle.d.ts +119 -0
- package/dist/runtime/long-running-handle.d.ts.map +1 -0
- package/dist/runtime/long-running-handle.js +169 -0
- package/dist/runtime/module-source-rewriter.d.ts +11 -0
- package/dist/runtime/module-source-rewriter.d.ts.map +1 -0
- package/dist/runtime/module-source-rewriter.js +61 -0
- package/dist/runtime/opentui-wasm-backend.d.ts +160 -0
- package/dist/runtime/opentui-wasm-backend.d.ts.map +1 -0
- package/dist/runtime/opentui-wasm-backend.js +416 -0
- package/dist/runtime/os-contracts.d.ts +436 -0
- package/dist/runtime/os-contracts.d.ts.map +1 -0
- package/dist/runtime/os-contracts.js +101 -0
- package/dist/runtime/port-registry.d.ts +100 -0
- package/dist/runtime/port-registry.d.ts.map +1 -0
- package/dist/runtime/port-registry.js +265 -0
- package/dist/runtime/process-input-routing.d.ts +33 -0
- package/dist/runtime/process-input-routing.d.ts.map +1 -0
- package/dist/runtime/process-input-routing.js +59 -0
- package/dist/runtime/process-input.d.ts +39 -0
- package/dist/runtime/process-input.d.ts.map +1 -0
- package/dist/runtime/process-input.js +117 -0
- package/dist/runtime/process-io-protocol.d.ts +90 -0
- package/dist/runtime/process-io-protocol.d.ts.map +1 -0
- package/dist/runtime/process-io-protocol.js +81 -0
- package/dist/runtime/process-logs.d.ts +352 -0
- package/dist/runtime/process-logs.d.ts.map +1 -0
- package/dist/runtime/process-logs.js +750 -0
- package/dist/runtime/process-table.d.ts +101 -0
- package/dist/runtime/process-table.d.ts.map +1 -0
- package/dist/runtime/process-table.js +175 -0
- package/dist/runtime/project-detect.d.ts +21 -0
- package/dist/runtime/project-detect.d.ts.map +1 -0
- package/dist/runtime/project-detect.js +46 -0
- package/dist/runtime/python-server-adapter.d.ts +33 -0
- package/dist/runtime/python-server-adapter.d.ts.map +1 -0
- package/dist/runtime/python-server-adapter.js +132 -0
- package/dist/runtime/require-resolver.d.ts +44 -0
- package/dist/runtime/require-resolver.d.ts.map +1 -0
- package/dist/runtime/require-resolver.js +698 -0
- package/dist/runtime/router-basename.d.ts +36 -0
- package/dist/runtime/router-basename.d.ts.map +1 -0
- package/dist/runtime/router-basename.js +310 -0
- package/dist/runtime/ruby-green-threads.d.ts +136 -0
- package/dist/runtime/ruby-green-threads.d.ts.map +1 -0
- package/dist/runtime/ruby-green-threads.js +904 -0
- package/dist/runtime/ruby-socket-shim.d.ts +2 -0
- package/dist/runtime/ruby-socket-shim.d.ts.map +1 -0
- package/dist/runtime/ruby-socket-shim.js +548 -0
- package/dist/runtime/session-process-supervisor.d.ts +156 -0
- package/dist/runtime/session-process-supervisor.d.ts.map +1 -0
- package/dist/runtime/session-process-supervisor.js +238 -0
- package/dist/runtime/sqlite-runtime-fs-bridge.d.ts +70 -0
- package/dist/runtime/sqlite-runtime-fs-bridge.d.ts.map +1 -0
- package/dist/runtime/sqlite-runtime-fs-bridge.js +425 -0
- package/dist/runtime/streams.d.ts +13 -0
- package/dist/runtime/streams.d.ts.map +1 -0
- package/dist/runtime/streams.js +546 -0
- package/dist/runtime/undici-shim.d.ts +62 -0
- package/dist/runtime/undici-shim.d.ts.map +1 -0
- package/dist/runtime/undici-shim.js +516 -0
- package/dist/runtime/vfs-manifest.d.ts +63 -0
- package/dist/runtime/vfs-manifest.d.ts.map +1 -0
- package/dist/runtime/vfs-manifest.js +141 -0
- package/dist/runtime/vfs-snapshot.d.ts +75 -0
- package/dist/runtime/vfs-snapshot.d.ts.map +1 -0
- package/dist/runtime/vfs-snapshot.js +220 -0
- package/dist/runtime/virtual-socket-kernel.d.ts +252 -0
- package/dist/runtime/virtual-socket-kernel.d.ts.map +1 -0
- package/dist/runtime/virtual-socket-kernel.js +1143 -0
- package/dist/runtime/vite-config-parser.d.ts +13 -0
- package/dist/runtime/vite-config-parser.d.ts.map +1 -0
- package/dist/runtime/vite-config-parser.js +258 -0
- package/dist/runtime/wasi/types.d.ts +347 -0
- package/dist/runtime/wasi/types.d.ts.map +1 -0
- package/dist/runtime/wasi/types.js +1 -0
- package/dist/runtime/wasi-instance.d.ts +215 -0
- package/dist/runtime/wasi-instance.d.ts.map +1 -0
- package/dist/runtime/wasi-instance.generated.d.ts +14 -0
- package/dist/runtime/wasi-instance.generated.d.ts.map +1 -0
- package/dist/runtime/wasi-instance.generated.js +13 -0
- package/dist/runtime/wasi-instance.js +179 -0
- package/dist/runtime/wasi-threads.d.ts +169 -0
- package/dist/runtime/wasi-threads.d.ts.map +1 -0
- package/dist/runtime/wasi-threads.js +669 -0
- package/dist/runtime/wasm-memory.d.ts +84 -0
- package/dist/runtime/wasm-memory.d.ts.map +1 -0
- package/dist/runtime/wasm-memory.js +235 -0
- package/dist/shell/elevation-commands.d.ts +5 -0
- package/dist/shell/elevation-commands.d.ts.map +1 -0
- package/dist/shell/elevation-commands.js +109 -0
- package/dist/shell/exec-dispatch.d.ts +57 -0
- package/dist/shell/exec-dispatch.d.ts.map +1 -0
- package/dist/shell/exec-dispatch.js +181 -0
- package/dist/shell/features.d.ts +154 -0
- package/dist/shell/features.d.ts.map +1 -0
- package/dist/shell/features.js +792 -0
- package/dist/shell/shell-entrypoints.d.ts +55 -0
- package/dist/shell/shell-entrypoints.d.ts.map +1 -0
- package/dist/shell/shell-entrypoints.js +230 -0
- package/dist/shell/shell-invocation.d.ts +36 -0
- package/dist/shell/shell-invocation.d.ts.map +1 -0
- package/dist/shell/shell-invocation.js +148 -0
- package/dist/shell/unix-accounts.d.ts +27 -0
- package/dist/shell/unix-accounts.d.ts.map +1 -0
- package/dist/shell/unix-accounts.js +105 -0
- package/dist/shell/unix-commands.d.ts +15 -0
- package/dist/shell/unix-commands.d.ts.map +1 -0
- package/dist/shell/unix-commands.js +4702 -0
- package/dist/substrate/lifo/commands/archive/gunzip.d.ts +4 -0
- package/dist/substrate/lifo/commands/archive/gunzip.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/archive/gunzip.js +58 -0
- package/dist/substrate/lifo/commands/archive/gzip.d.ts +4 -0
- package/dist/substrate/lifo/commands/archive/gzip.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/archive/gzip.js +73 -0
- package/dist/substrate/lifo/commands/archive/tar.d.ts +4 -0
- package/dist/substrate/lifo/commands/archive/tar.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/archive/tar.js +158 -0
- package/dist/substrate/lifo/commands/archive/unzip.d.ts +4 -0
- package/dist/substrate/lifo/commands/archive/unzip.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/archive/unzip.js +114 -0
- package/dist/substrate/lifo/commands/archive/zip.d.ts +4 -0
- package/dist/substrate/lifo/commands/archive/zip.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/archive/zip.js +58 -0
- package/dist/substrate/lifo/commands/fs/basename.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/basename.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/basename.js +12 -0
- package/dist/substrate/lifo/commands/fs/cat.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/cat.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/cat.js +52 -0
- package/dist/substrate/lifo/commands/fs/chmod.d.ts +25 -0
- package/dist/substrate/lifo/commands/fs/chmod.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/chmod.js +97 -0
- package/dist/substrate/lifo/commands/fs/chown.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/chown.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/chown.js +41 -0
- package/dist/substrate/lifo/commands/fs/cp.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/cp.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/cp.js +29 -0
- package/dist/substrate/lifo/commands/fs/df.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/df.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/df.js +52 -0
- package/dist/substrate/lifo/commands/fs/dirname.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/dirname.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/dirname.js +12 -0
- package/dist/substrate/lifo/commands/fs/du.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/du.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/du.js +104 -0
- package/dist/substrate/lifo/commands/fs/file.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/file.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/file.js +84 -0
- package/dist/substrate/lifo/commands/fs/find.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/find.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/find.js +72 -0
- package/dist/substrate/lifo/commands/fs/ln.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/ln.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/ln.js +15 -0
- package/dist/substrate/lifo/commands/fs/ls.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/ls.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/ls.js +146 -0
- package/dist/substrate/lifo/commands/fs/mkdir.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/mkdir.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/mkdir.js +31 -0
- package/dist/substrate/lifo/commands/fs/mktemp.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/mktemp.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/mktemp.js +48 -0
- package/dist/substrate/lifo/commands/fs/mv.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/mv.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/mv.js +113 -0
- package/dist/substrate/lifo/commands/fs/realpath.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/realpath.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/realpath.js +27 -0
- package/dist/substrate/lifo/commands/fs/rm.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/rm.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/rm.js +48 -0
- package/dist/substrate/lifo/commands/fs/rmdir.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/rmdir.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/rmdir.js +44 -0
- package/dist/substrate/lifo/commands/fs/stat.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/stat.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/stat.js +35 -0
- package/dist/substrate/lifo/commands/fs/touch.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/touch.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/touch.js +26 -0
- package/dist/substrate/lifo/commands/fs/tree.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/tree.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/tree.js +69 -0
- package/dist/substrate/lifo/commands/index.d.ts +3 -0
- package/dist/substrate/lifo/commands/index.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/index.js +1 -0
- package/dist/substrate/lifo/commands/io/dd.d.ts +4 -0
- package/dist/substrate/lifo/commands/io/dd.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/io/dd.js +256 -0
- package/dist/substrate/lifo/commands/io/printf.d.ts +4 -0
- package/dist/substrate/lifo/commands/io/printf.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/io/printf.js +82 -0
- package/dist/substrate/lifo/commands/io/tee.d.ts +4 -0
- package/dist/substrate/lifo/commands/io/tee.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/io/tee.js +31 -0
- package/dist/substrate/lifo/commands/io/xargs.d.ts +4 -0
- package/dist/substrate/lifo/commands/io/xargs.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/io/xargs.js +44 -0
- package/dist/substrate/lifo/commands/io/yes.d.ts +4 -0
- package/dist/substrate/lifo/commands/io/yes.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/io/yes.js +10 -0
- package/dist/substrate/lifo/commands/net/curl.d.ts +6 -0
- package/dist/substrate/lifo/commands/net/curl.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/curl.js +617 -0
- package/dist/substrate/lifo/commands/net/dig.d.ts +4 -0
- package/dist/substrate/lifo/commands/net/dig.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/dig.js +77 -0
- package/dist/substrate/lifo/commands/net/forward.d.ts +14 -0
- package/dist/substrate/lifo/commands/net/forward.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/forward.js +80 -0
- package/dist/substrate/lifo/commands/net/host.d.ts +14 -0
- package/dist/substrate/lifo/commands/net/host.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/host.js +160 -0
- package/dist/substrate/lifo/commands/net/ifconfig.d.ts +8 -0
- package/dist/substrate/lifo/commands/net/ifconfig.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/ifconfig.js +120 -0
- package/dist/substrate/lifo/commands/net/ip.d.ts +14 -0
- package/dist/substrate/lifo/commands/net/ip.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/ip.js +508 -0
- package/dist/substrate/lifo/commands/net/netstat.d.ts +8 -0
- package/dist/substrate/lifo/commands/net/netstat.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/netstat.js +94 -0
- package/dist/substrate/lifo/commands/net/ping.d.ts +4 -0
- package/dist/substrate/lifo/commands/net/ping.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/ping.js +64 -0
- package/dist/substrate/lifo/commands/net/ports.d.ts +8 -0
- package/dist/substrate/lifo/commands/net/ports.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/ports.js +36 -0
- package/dist/substrate/lifo/commands/net/route.d.ts +8 -0
- package/dist/substrate/lifo/commands/net/route.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/route.js +128 -0
- package/dist/substrate/lifo/commands/net/tunnel-v2.d.ts +4 -0
- package/dist/substrate/lifo/commands/net/tunnel-v2.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/tunnel-v2.js +141 -0
- package/dist/substrate/lifo/commands/net/tunnel.d.ts +6 -0
- package/dist/substrate/lifo/commands/net/tunnel.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/tunnel.js +232 -0
- package/dist/substrate/lifo/commands/net/wget.d.ts +4 -0
- package/dist/substrate/lifo/commands/net/wget.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/wget.js +78 -0
- package/dist/substrate/lifo/commands/registry.d.ts +15 -0
- package/dist/substrate/lifo/commands/registry.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/registry.js +120 -0
- package/dist/substrate/lifo/commands/signal.d.ts +12 -0
- package/dist/substrate/lifo/commands/signal.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/signal.js +47 -0
- package/dist/substrate/lifo/commands/system/bc.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/bc.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/bc.js +243 -0
- package/dist/substrate/lifo/commands/system/cal.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/cal.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/cal.js +81 -0
- package/dist/substrate/lifo/commands/system/date.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/date.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/date.js +79 -0
- package/dist/substrate/lifo/commands/system/env.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/env.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/env.js +7 -0
- package/dist/substrate/lifo/commands/system/fastfetch.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/fastfetch.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/fastfetch.js +385 -0
- package/dist/substrate/lifo/commands/system/free.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/free.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/free.js +36 -0
- package/dist/substrate/lifo/commands/system/help.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/help.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/help.js +46 -0
- package/dist/substrate/lifo/commands/system/hostname.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/hostname.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/hostname.js +6 -0
- package/dist/substrate/lifo/commands/system/kill.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/kill.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/kill.js +76 -0
- package/dist/substrate/lifo/commands/system/lifo.d.ts +41 -0
- package/dist/substrate/lifo/commands/system/lifo.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/lifo.js +446 -0
- package/dist/substrate/lifo/commands/system/logout.d.ts +5 -0
- package/dist/substrate/lifo/commands/system/logout.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/logout.js +15 -0
- package/dist/substrate/lifo/commands/system/man.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/man.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/man.js +144 -0
- package/dist/substrate/lifo/commands/system/node.d.ts +6 -0
- package/dist/substrate/lifo/commands/system/node.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/node.js +1241 -0
- package/dist/substrate/lifo/commands/system/npm.d.ts +26 -0
- package/dist/substrate/lifo/commands/system/npm.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/npm.js +934 -0
- package/dist/substrate/lifo/commands/system/pkg.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/pkg.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/pkg.js +97 -0
- package/dist/substrate/lifo/commands/system/ps.d.ts +5 -0
- package/dist/substrate/lifo/commands/system/ps.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/ps.js +35 -0
- package/dist/substrate/lifo/commands/system/registry-schemas.d.ts +44 -0
- package/dist/substrate/lifo/commands/system/registry-schemas.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/registry-schemas.js +28 -0
- package/dist/substrate/lifo/commands/system/sha256sum.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/sha256sum.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/sha256sum.js +86 -0
- package/dist/substrate/lifo/commands/system/sl.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/sl.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/sl.js +204 -0
- package/dist/substrate/lifo/commands/system/sleep.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/sleep.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/sleep.js +27 -0
- package/dist/substrate/lifo/commands/system/stty.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/stty.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/stty.js +61 -0
- package/dist/substrate/lifo/commands/system/systemctl.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/systemctl.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/systemctl.js +164 -0
- package/dist/substrate/lifo/commands/system/top.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/top.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/top.js +38 -0
- package/dist/substrate/lifo/commands/system/uname.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/uname.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/uname.js +55 -0
- package/dist/substrate/lifo/commands/system/uptime.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/uptime.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/uptime.js +16 -0
- package/dist/substrate/lifo/commands/system/watch.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/watch.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/watch.js +53 -0
- package/dist/substrate/lifo/commands/system/which.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/which.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/which.js +45 -0
- package/dist/substrate/lifo/commands/system/whoami.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/whoami.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/whoami.js +6 -0
- package/dist/substrate/lifo/commands/text/awk.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/awk.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/awk.js +200 -0
- package/dist/substrate/lifo/commands/text/base64.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/base64.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/base64.js +102 -0
- package/dist/substrate/lifo/commands/text/cut.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/cut.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/cut.js +91 -0
- package/dist/substrate/lifo/commands/text/diff.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/diff.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/diff.js +292 -0
- package/dist/substrate/lifo/commands/text/grep.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/grep.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/grep.js +189 -0
- package/dist/substrate/lifo/commands/text/head.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/head.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/head.js +111 -0
- package/dist/substrate/lifo/commands/text/less.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/less.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/less.js +335 -0
- package/dist/substrate/lifo/commands/text/nano.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/nano.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/nano.js +510 -0
- package/dist/substrate/lifo/commands/text/nl.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/nl.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/nl.js +64 -0
- package/dist/substrate/lifo/commands/text/rev.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/rev.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/rev.js +41 -0
- package/dist/substrate/lifo/commands/text/sed.d.ts +21 -0
- package/dist/substrate/lifo/commands/text/sed.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/sed.js +248 -0
- package/dist/substrate/lifo/commands/text/seq.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/seq.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/seq.js +69 -0
- package/dist/substrate/lifo/commands/text/sort.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/sort.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/sort.js +90 -0
- package/dist/substrate/lifo/commands/text/strings.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/strings.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/strings.js +69 -0
- package/dist/substrate/lifo/commands/text/tac.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/tac.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/tac.js +32 -0
- package/dist/substrate/lifo/commands/text/tail.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/tail.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/tail.js +64 -0
- package/dist/substrate/lifo/commands/text/tr.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/tr.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/tr.js +180 -0
- package/dist/substrate/lifo/commands/text/uniq.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/uniq.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/uniq.js +82 -0
- package/dist/substrate/lifo/commands/text/wc.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/wc.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/wc.js +107 -0
- package/dist/substrate/lifo/commands/types.d.ts +49 -0
- package/dist/substrate/lifo/commands/types.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/types.js +1 -0
- package/dist/substrate/lifo/index.d.ts +67 -0
- package/dist/substrate/lifo/index.d.ts.map +1 -0
- package/dist/substrate/lifo/index.js +66 -0
- package/dist/substrate/lifo/kernel/ServiceManager.d.ts +51 -0
- package/dist/substrate/lifo/kernel/ServiceManager.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/ServiceManager.js +302 -0
- package/dist/substrate/lifo/kernel/index.d.ts +40 -0
- package/dist/substrate/lifo/kernel/index.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/index.js +170 -0
- package/dist/substrate/lifo/kernel/network/Bridge.d.ts +110 -0
- package/dist/substrate/lifo/kernel/network/Bridge.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/Bridge.js +278 -0
- package/dist/substrate/lifo/kernel/network/DNSResolver.d.ts +50 -0
- package/dist/substrate/lifo/kernel/network/DNSResolver.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/DNSResolver.js +135 -0
- package/dist/substrate/lifo/kernel/network/NetworkInterface.d.ts +83 -0
- package/dist/substrate/lifo/kernel/network/NetworkInterface.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/NetworkInterface.js +183 -0
- package/dist/substrate/lifo/kernel/network/NetworkNamespace.d.ts +98 -0
- package/dist/substrate/lifo/kernel/network/NetworkNamespace.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/NetworkNamespace.js +149 -0
- package/dist/substrate/lifo/kernel/network/NetworkStack.d.ts +178 -0
- package/dist/substrate/lifo/kernel/network/NetworkStack.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/NetworkStack.js +460 -0
- package/dist/substrate/lifo/kernel/network/PortBridge.d.ts +44 -0
- package/dist/substrate/lifo/kernel/network/PortBridge.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/PortBridge.js +158 -0
- package/dist/substrate/lifo/kernel/network/RoutingTable.d.ts +55 -0
- package/dist/substrate/lifo/kernel/network/RoutingTable.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/RoutingTable.js +167 -0
- package/dist/substrate/lifo/kernel/network/Socket.d.ts +65 -0
- package/dist/substrate/lifo/kernel/network/Socket.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/Socket.js +201 -0
- package/dist/substrate/lifo/kernel/network/index.d.ts +11 -0
- package/dist/substrate/lifo/kernel/network/index.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/index.js +9 -0
- package/dist/substrate/lifo/kernel/network/tunnel/BaseTunnel.d.ts +55 -0
- package/dist/substrate/lifo/kernel/network/tunnel/BaseTunnel.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/tunnel/BaseTunnel.js +88 -0
- package/dist/substrate/lifo/kernel/network/tunnel/VETHPair.d.ts +71 -0
- package/dist/substrate/lifo/kernel/network/tunnel/VETHPair.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/tunnel/VETHPair.js +191 -0
- package/dist/substrate/lifo/kernel/network/tunnel/WebSocketTunnel.d.ts +89 -0
- package/dist/substrate/lifo/kernel/network/tunnel/WebSocketTunnel.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/tunnel/WebSocketTunnel.js +324 -0
- package/dist/substrate/lifo/kernel/network/types.d.ts +159 -0
- package/dist/substrate/lifo/kernel/network/types.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/types.js +5 -0
- package/dist/substrate/lifo/kernel/persistence/PersistenceManager.d.ts +12 -0
- package/dist/substrate/lifo/kernel/persistence/PersistenceManager.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/persistence/PersistenceManager.js +47 -0
- package/dist/substrate/lifo/kernel/persistence/backends.d.ts +15 -0
- package/dist/substrate/lifo/kernel/persistence/backends.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/persistence/backends.js +18 -0
- package/dist/substrate/lifo/kernel/persistence/index.d.ts +6 -0
- package/dist/substrate/lifo/kernel/persistence/index.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/persistence/index.js +3 -0
- package/dist/substrate/lifo/kernel/persistence/serializer.d.ts +21 -0
- package/dist/substrate/lifo/kernel/persistence/serializer.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/persistence/serializer.js +99 -0
- package/dist/substrate/lifo/kernel/samples.d.ts +3 -0
- package/dist/substrate/lifo/kernel/samples.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/samples.js +930 -0
- package/dist/substrate/lifo/kernel/storage/BlobStore.d.ts +22 -0
- package/dist/substrate/lifo/kernel/storage/BlobStore.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/storage/BlobStore.js +84 -0
- package/dist/substrate/lifo/kernel/storage/ContentStore.d.ts +54 -0
- package/dist/substrate/lifo/kernel/storage/ContentStore.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/storage/ContentStore.js +120 -0
- package/dist/substrate/lifo/kernel/storage/index.d.ts +6 -0
- package/dist/substrate/lifo/kernel/storage/index.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/storage/index.js +3 -0
- package/dist/substrate/lifo/kernel/unit-parser.d.ts +22 -0
- package/dist/substrate/lifo/kernel/unit-parser.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/unit-parser.js +80 -0
- package/dist/substrate/lifo/kernel/vfs/VFS.d.ts +99 -0
- package/dist/substrate/lifo/kernel/vfs/VFS.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/vfs/VFS.js +679 -0
- package/dist/substrate/lifo/kernel/vfs/index.d.ts +8 -0
- package/dist/substrate/lifo/kernel/vfs/index.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/vfs/index.js +5 -0
- package/dist/substrate/lifo/kernel/vfs/providers/DevProvider.d.ts +21 -0
- package/dist/substrate/lifo/kernel/vfs/providers/DevProvider.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/vfs/providers/DevProvider.js +137 -0
- package/dist/substrate/lifo/kernel/vfs/providers/NativeFsProvider.d.ts +63 -0
- package/dist/substrate/lifo/kernel/vfs/providers/NativeFsProvider.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/vfs/providers/NativeFsProvider.js +175 -0
- package/dist/substrate/lifo/kernel/vfs/providers/ProcProvider.d.ts +14 -0
- package/dist/substrate/lifo/kernel/vfs/providers/ProcProvider.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/vfs/providers/ProcProvider.js +126 -0
- package/dist/substrate/lifo/kernel/vfs/types.d.ts +117 -0
- package/dist/substrate/lifo/kernel/vfs/types.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/vfs/types.js +42 -0
- package/dist/substrate/lifo/node-compat/buffer.d.ts +44 -0
- package/dist/substrate/lifo/node-compat/buffer.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/buffer.js +331 -0
- package/dist/substrate/lifo/node-compat/child_process.d.ts +10 -0
- package/dist/substrate/lifo/node-compat/child_process.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/child_process.js +42 -0
- package/dist/substrate/lifo/node-compat/console.d.ts +21 -0
- package/dist/substrate/lifo/node-compat/console.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/console.js +68 -0
- package/dist/substrate/lifo/node-compat/crypto.d.ts +24 -0
- package/dist/substrate/lifo/node-compat/crypto.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/crypto.js +216 -0
- package/dist/substrate/lifo/node-compat/dns.d.ts +117 -0
- package/dist/substrate/lifo/node-compat/dns.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/dns.js +144 -0
- package/dist/substrate/lifo/node-compat/esbuild.d.ts +10 -0
- package/dist/substrate/lifo/node-compat/esbuild.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/esbuild.js +70 -0
- package/dist/substrate/lifo/node-compat/events.d.ts +19 -0
- package/dist/substrate/lifo/node-compat/events.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/events.js +83 -0
- package/dist/substrate/lifo/node-compat/fs.d.ts +195 -0
- package/dist/substrate/lifo/node-compat/fs.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/fs.js +624 -0
- package/dist/substrate/lifo/node-compat/http.d.ts +133 -0
- package/dist/substrate/lifo/node-compat/http.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/http.js +452 -0
- package/dist/substrate/lifo/node-compat/index.d.ts +20 -0
- package/dist/substrate/lifo/node-compat/index.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/index.js +291 -0
- package/dist/substrate/lifo/node-compat/module.d.ts +55 -0
- package/dist/substrate/lifo/node-compat/module.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/module.js +124 -0
- package/dist/substrate/lifo/node-compat/os.d.ts +39 -0
- package/dist/substrate/lifo/node-compat/os.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/os.js +45 -0
- package/dist/substrate/lifo/node-compat/path.d.ts +86 -0
- package/dist/substrate/lifo/node-compat/path.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/path.js +49 -0
- package/dist/substrate/lifo/node-compat/process.d.ts +127 -0
- package/dist/substrate/lifo/node-compat/process.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/process.js +173 -0
- package/dist/substrate/lifo/node-compat/readline.d.ts +85 -0
- package/dist/substrate/lifo/node-compat/readline.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/readline.js +205 -0
- package/dist/substrate/lifo/node-compat/rimraf.d.ts +30 -0
- package/dist/substrate/lifo/node-compat/rimraf.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/rimraf.js +63 -0
- package/dist/substrate/lifo/node-compat/stream.d.ts +36 -0
- package/dist/substrate/lifo/node-compat/stream.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/stream.js +90 -0
- package/dist/substrate/lifo/node-compat/string_decoder.d.ts +11 -0
- package/dist/substrate/lifo/node-compat/string_decoder.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/string_decoder.js +23 -0
- package/dist/substrate/lifo/node-compat/timers.d.ts +16 -0
- package/dist/substrate/lifo/node-compat/timers.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/timers.js +18 -0
- package/dist/substrate/lifo/node-compat/tty.d.ts +32 -0
- package/dist/substrate/lifo/node-compat/tty.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/tty.js +76 -0
- package/dist/substrate/lifo/node-compat/url.d.ts +37 -0
- package/dist/substrate/lifo/node-compat/url.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/url.js +65 -0
- package/dist/substrate/lifo/node-compat/util.d.ts +42 -0
- package/dist/substrate/lifo/node-compat/util.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/util.js +132 -0
- package/dist/substrate/lifo/node-compat/zlib.d.ts +66 -0
- package/dist/substrate/lifo/node-compat/zlib.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/zlib.js +80 -0
- package/dist/substrate/lifo/pkg/PackageManager.d.ts +19 -0
- package/dist/substrate/lifo/pkg/PackageManager.d.ts.map +1 -0
- package/dist/substrate/lifo/pkg/PackageManager.js +97 -0
- package/dist/substrate/lifo/pkg/lifo-dev.d.ts +38 -0
- package/dist/substrate/lifo/pkg/lifo-dev.d.ts.map +1 -0
- package/dist/substrate/lifo/pkg/lifo-dev.js +98 -0
- package/dist/substrate/lifo/pkg/lifo-runtime.d.ts +44 -0
- package/dist/substrate/lifo/pkg/lifo-runtime.d.ts.map +1 -0
- package/dist/substrate/lifo/pkg/lifo-runtime.js +372 -0
- package/dist/substrate/lifo/pkg/loader.d.ts +4 -0
- package/dist/substrate/lifo/pkg/loader.d.ts.map +1 -0
- package/dist/substrate/lifo/pkg/loader.js +24 -0
- package/dist/substrate/lifo/sandbox/HeadlessTerminal.d.ts +18 -0
- package/dist/substrate/lifo/sandbox/HeadlessTerminal.d.ts.map +1 -0
- package/dist/substrate/lifo/sandbox/HeadlessTerminal.js +28 -0
- package/dist/substrate/lifo/sandbox/Sandbox.d.ts +59 -0
- package/dist/substrate/lifo/sandbox/Sandbox.d.ts.map +1 -0
- package/dist/substrate/lifo/sandbox/Sandbox.js +234 -0
- package/dist/substrate/lifo/sandbox/SandboxCommands.d.ts +18 -0
- package/dist/substrate/lifo/sandbox/SandboxCommands.d.ts.map +1 -0
- package/dist/substrate/lifo/sandbox/SandboxCommands.js +64 -0
- package/dist/substrate/lifo/sandbox/SandboxFs.d.ts +43 -0
- package/dist/substrate/lifo/sandbox/SandboxFs.d.ts.map +1 -0
- package/dist/substrate/lifo/sandbox/SandboxFs.js +136 -0
- package/dist/substrate/lifo/sandbox/index.d.ts +3 -0
- package/dist/substrate/lifo/sandbox/index.d.ts.map +1 -0
- package/dist/substrate/lifo/sandbox/index.js +1 -0
- package/dist/substrate/lifo/sandbox/types.d.ts +116 -0
- package/dist/substrate/lifo/sandbox/types.d.ts.map +1 -0
- package/dist/substrate/lifo/sandbox/types.js +1 -0
- package/dist/substrate/lifo/shell/ProcessRegistry.d.ts +142 -0
- package/dist/substrate/lifo/shell/ProcessRegistry.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/ProcessRegistry.js +256 -0
- package/dist/substrate/lifo/shell/Shell.d.ts +170 -0
- package/dist/substrate/lifo/shell/Shell.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/Shell.js +1863 -0
- package/dist/substrate/lifo/shell/completer.d.ts +19 -0
- package/dist/substrate/lifo/shell/completer.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/completer.js +164 -0
- package/dist/substrate/lifo/shell/default-shell.d.ts +9 -0
- package/dist/substrate/lifo/shell/default-shell.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/default-shell.js +53 -0
- package/dist/substrate/lifo/shell/expander.d.ts +48 -0
- package/dist/substrate/lifo/shell/expander.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/expander.js +1204 -0
- package/dist/substrate/lifo/shell/history.d.ts +22 -0
- package/dist/substrate/lifo/shell/history.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/history.js +121 -0
- package/dist/substrate/lifo/shell/interpreter.d.ts +257 -0
- package/dist/substrate/lifo/shell/interpreter.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/interpreter.js +1490 -0
- package/dist/substrate/lifo/shell/jobs.d.ts +21 -0
- package/dist/substrate/lifo/shell/jobs.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/jobs.js +48 -0
- package/dist/substrate/lifo/shell/lexer.d.ts +13 -0
- package/dist/substrate/lifo/shell/lexer.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/lexer.js +614 -0
- package/dist/substrate/lifo/shell/parser.d.ts +7 -0
- package/dist/substrate/lifo/shell/parser.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/parser.js +573 -0
- package/dist/substrate/lifo/shell/pipe.d.ts +15 -0
- package/dist/substrate/lifo/shell/pipe.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/pipe.js +86 -0
- package/dist/substrate/lifo/shell/signals.d.ts +11 -0
- package/dist/substrate/lifo/shell/signals.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/signals.js +57 -0
- package/dist/substrate/lifo/shell/terminal-stdin.d.ts +28 -0
- package/dist/substrate/lifo/shell/terminal-stdin.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/terminal-stdin.js +100 -0
- package/dist/substrate/lifo/shell/test-builtin.d.ts +16 -0
- package/dist/substrate/lifo/shell/test-builtin.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/test-builtin.js +237 -0
- package/dist/substrate/lifo/shell/types.d.ts +140 -0
- package/dist/substrate/lifo/shell/types.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/types.js +25 -0
- package/dist/substrate/lifo/terminal/ITerminal.d.ts +10 -0
- package/dist/substrate/lifo/terminal/ITerminal.d.ts.map +1 -0
- package/dist/substrate/lifo/terminal/ITerminal.js +1 -0
- package/dist/substrate/lifo/utils/archive.d.ts +28 -0
- package/dist/substrate/lifo/utils/archive.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/archive.js +323 -0
- package/dist/substrate/lifo/utils/args.d.ts +18 -0
- package/dist/substrate/lifo/utils/args.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/args.js +73 -0
- package/dist/substrate/lifo/utils/colors.d.ts +27 -0
- package/dist/substrate/lifo/utils/colors.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/colors.js +26 -0
- package/dist/substrate/lifo/utils/encoding.d.ts +4 -0
- package/dist/substrate/lifo/utils/encoding.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/encoding.js +18 -0
- package/dist/substrate/lifo/utils/glob.d.ts +12 -0
- package/dist/substrate/lifo/utils/glob.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/glob.js +150 -0
- package/dist/substrate/lifo/utils/mime.d.ts +4 -0
- package/dist/substrate/lifo/utils/mime.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/mime.js +107 -0
- package/dist/substrate/lifo/utils/path.d.ts +12 -0
- package/dist/substrate/lifo/utils/path.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/path.js +82 -0
- package/dist/vfs/events.d.ts +51 -0
- package/dist/vfs/events.d.ts.map +1 -0
- package/dist/vfs/events.js +127 -0
- package/dist/vfs/path.d.ts +46 -0
- package/dist/vfs/path.d.ts.map +1 -0
- package/dist/vfs/path.js +69 -0
- package/dist/vfs/seed-project.d.ts +62 -0
- package/dist/vfs/seed-project.d.ts.map +1 -0
- package/dist/vfs/seed-project.js +1054 -0
- package/dist/vfs/sqlite-vfs.d.ts +821 -0
- package/dist/vfs/sqlite-vfs.d.ts.map +1 -0
- package/dist/vfs/sqlite-vfs.js +4135 -0
- package/dist/vfs/symlink-registry.d.ts +60 -0
- package/dist/vfs/symlink-registry.d.ts.map +1 -0
- package/dist/vfs/symlink-registry.js +162 -0
- package/dist/workspace/nimbus-workspace.d.ts +94 -0
- package/dist/workspace/nimbus-workspace.d.ts.map +1 -0
- package/dist/workspace/nimbus-workspace.js +167 -0
- package/package.json +69 -0
- package/src/_shared/ai-egress.ts +91 -0
- package/src/_shared/byte-stream.ts +97 -0
- package/src/_shared/bytes.ts +19 -0
- package/src/_shared/cache-stats.ts +231 -0
- package/src/_shared/crypto.ts +184 -0
- package/src/_shared/esbuild-facet-shim.ts +22 -0
- package/src/_shared/exports-resolver.ts +308 -0
- package/src/_shared/facet-vfs-cursor.ts +58 -0
- package/src/_shared/install-phase.ts +56 -0
- package/src/_shared/lru-map.ts +59 -0
- package/src/_shared/real-node-imports.ts +53 -0
- package/src/_shared/retry.ts +202 -0
- package/src/_shared/rpc-dispose.ts +31 -0
- package/src/_shared/terminal.ts +3 -0
- package/src/_shared/typescript-specifiers.ts +86 -0
- package/src/_shared/untrusted-request.ts +75 -0
- package/src/_shared/vfs-write-ledger.ts +440 -0
- package/src/_shared/w7-frame.ts +1012 -0
- package/src/_shared/weighted-credit-pool.ts +244 -0
- package/src/constants.ts +285 -0
- package/src/index.ts +22 -0
- package/src/observability/diag-counters.ts +343 -0
- package/src/observability/heap-estimate.ts +331 -0
- package/src/observability/heavy-alloc-coord.ts +241 -0
- package/src/observability/oom-classify.ts +253 -0
- package/src/observability/oom-discriminator.ts +405 -0
- package/src/runtime/assets-loader.ts +189 -0
- package/src/runtime/barrel-detect.ts +69 -0
- package/src/runtime/bash/preamble.ts +1519 -0
- package/src/runtime/bash/types.ts +497 -0
- package/src/runtime/bundle-profile.ts +32 -0
- package/src/runtime/cirrus-vite-config-rewriter.ts +28 -0
- package/src/runtime/cli-flags.ts +11 -0
- package/src/runtime/comment-strip.ts +73 -0
- package/src/runtime/cpython-preamble.ts +298 -0
- package/src/runtime/esbuild-service.ts +1470 -0
- package/src/runtime/framework-detect.ts +245 -0
- package/src/runtime/import-meta-transform.ts +16 -0
- package/src/runtime/javascript-ast.ts +66 -0
- package/src/runtime/long-running-handle.ts +185 -0
- package/src/runtime/module-source-rewriter.ts +95 -0
- package/src/runtime/opentui-wasm-backend.ts +608 -0
- package/src/runtime/os-contracts.ts +529 -0
- package/src/runtime/port-registry.ts +298 -0
- package/src/runtime/process-input-routing.ts +92 -0
- package/src/runtime/process-input.ts +148 -0
- package/src/runtime/process-io-protocol.ts +97 -0
- package/src/runtime/process-logs.ts +882 -0
- package/src/runtime/process-table.ts +225 -0
- package/src/runtime/project-detect.ts +42 -0
- package/src/runtime/python-server-adapter.ts +133 -0
- package/src/runtime/require-resolver.ts +760 -0
- package/src/runtime/router-basename.ts +279 -0
- package/src/runtime/ruby-green-threads.ts +904 -0
- package/src/runtime/ruby-socket-shim.ts +548 -0
- package/src/runtime/session-process-supervisor.ts +323 -0
- package/src/runtime/sqlite-runtime-fs-bridge.ts +468 -0
- package/src/runtime/streams.ts +547 -0
- package/src/runtime/undici-shim.ts +517 -0
- package/src/runtime/vfs-manifest.ts +170 -0
- package/src/runtime/vfs-snapshot.ts +273 -0
- package/src/runtime/virtual-socket-kernel.ts +1370 -0
- package/src/runtime/vite-config-parser.ts +273 -0
- package/src/runtime/wasi/types.ts +448 -0
- package/src/runtime/wasi-instance.generated.ts +14 -0
- package/src/runtime/wasi-instance.ts +259 -0
- package/src/runtime/wasi-threads.ts +682 -0
- package/src/runtime/wasm-memory.ts +261 -0
- package/src/shell/elevation-commands.ts +117 -0
- package/src/shell/exec-dispatch.ts +201 -0
- package/src/shell/features.ts +870 -0
- package/src/shell/shell-entrypoints.ts +323 -0
- package/src/shell/shell-invocation.ts +181 -0
- package/src/shell/unix-accounts.ts +128 -0
- package/src/shell/unix-commands.ts +4335 -0
- package/src/substrate/lifo/UPSTREAM.md +14 -0
- package/src/substrate/lifo/commands/archive/gunzip.ts +63 -0
- package/src/substrate/lifo/commands/archive/gzip.ts +76 -0
- package/src/substrate/lifo/commands/archive/tar.ts +157 -0
- package/src/substrate/lifo/commands/archive/unzip.ts +112 -0
- package/src/substrate/lifo/commands/archive/zip.ts +70 -0
- package/src/substrate/lifo/commands/fs/basename.ts +16 -0
- package/src/substrate/lifo/commands/fs/cat.ts +54 -0
- package/src/substrate/lifo/commands/fs/chmod.ts +110 -0
- package/src/substrate/lifo/commands/fs/chown.ts +45 -0
- package/src/substrate/lifo/commands/fs/cp.ts +33 -0
- package/src/substrate/lifo/commands/fs/df.ts +56 -0
- package/src/substrate/lifo/commands/fs/dirname.ts +16 -0
- package/src/substrate/lifo/commands/fs/du.ts +100 -0
- package/src/substrate/lifo/commands/fs/file.ts +90 -0
- package/src/substrate/lifo/commands/fs/find.ts +76 -0
- package/src/substrate/lifo/commands/fs/ln.ts +19 -0
- package/src/substrate/lifo/commands/fs/ls.ts +164 -0
- package/src/substrate/lifo/commands/fs/mkdir.ts +37 -0
- package/src/substrate/lifo/commands/fs/mktemp.ts +56 -0
- package/src/substrate/lifo/commands/fs/mv.ts +111 -0
- package/src/substrate/lifo/commands/fs/realpath.ts +31 -0
- package/src/substrate/lifo/commands/fs/rm.ts +53 -0
- package/src/substrate/lifo/commands/fs/rmdir.ts +50 -0
- package/src/substrate/lifo/commands/fs/stat.ts +39 -0
- package/src/substrate/lifo/commands/fs/touch.ts +30 -0
- package/src/substrate/lifo/commands/fs/tree.ts +76 -0
- package/src/substrate/lifo/commands/index.ts +2 -0
- package/src/substrate/lifo/commands/io/dd.ts +289 -0
- package/src/substrate/lifo/commands/io/printf.ts +78 -0
- package/src/substrate/lifo/commands/io/tee.ts +37 -0
- package/src/substrate/lifo/commands/io/xargs.ts +49 -0
- package/src/substrate/lifo/commands/io/yes.ts +15 -0
- package/src/substrate/lifo/commands/net/curl.ts +739 -0
- package/src/substrate/lifo/commands/net/dig.ts +99 -0
- package/src/substrate/lifo/commands/net/forward.ts +90 -0
- package/src/substrate/lifo/commands/net/host.ts +182 -0
- package/src/substrate/lifo/commands/net/ifconfig.ts +139 -0
- package/src/substrate/lifo/commands/net/ip.ts +633 -0
- package/src/substrate/lifo/commands/net/netstat.ts +106 -0
- package/src/substrate/lifo/commands/net/ping.ts +74 -0
- package/src/substrate/lifo/commands/net/ports.ts +45 -0
- package/src/substrate/lifo/commands/net/route.ts +153 -0
- package/src/substrate/lifo/commands/net/tunnel-v2.ts +183 -0
- package/src/substrate/lifo/commands/net/tunnel.ts +272 -0
- package/src/substrate/lifo/commands/net/wget.ts +88 -0
- package/src/substrate/lifo/commands/registry.ts +141 -0
- package/src/substrate/lifo/commands/signal.ts +65 -0
- package/src/substrate/lifo/commands/system/bc.ts +265 -0
- package/src/substrate/lifo/commands/system/cal.ts +90 -0
- package/src/substrate/lifo/commands/system/date.ts +59 -0
- package/src/substrate/lifo/commands/system/env.ts +10 -0
- package/src/substrate/lifo/commands/system/fastfetch.ts +428 -0
- package/src/substrate/lifo/commands/system/free.ts +38 -0
- package/src/substrate/lifo/commands/system/help.ts +53 -0
- package/src/substrate/lifo/commands/system/hostname.ts +9 -0
- package/src/substrate/lifo/commands/system/kill.ts +89 -0
- package/src/substrate/lifo/commands/system/lifo.ts +525 -0
- package/src/substrate/lifo/commands/system/logout.ts +17 -0
- package/src/substrate/lifo/commands/system/man.ts +167 -0
- package/src/substrate/lifo/commands/system/node.ts +1305 -0
- package/src/substrate/lifo/commands/system/npm.ts +1078 -0
- package/src/substrate/lifo/commands/system/pkg.ts +111 -0
- package/src/substrate/lifo/commands/system/ps.ts +46 -0
- package/src/substrate/lifo/commands/system/registry-schemas.ts +33 -0
- package/src/substrate/lifo/commands/system/sha256sum.ts +89 -0
- package/src/substrate/lifo/commands/system/sl.ts +249 -0
- package/src/substrate/lifo/commands/system/sleep.ts +36 -0
- package/src/substrate/lifo/commands/system/stty.ts +69 -0
- package/src/substrate/lifo/commands/system/systemctl.ts +184 -0
- package/src/substrate/lifo/commands/system/top.ts +53 -0
- package/src/substrate/lifo/commands/system/uname.ts +59 -0
- package/src/substrate/lifo/commands/system/uptime.ts +19 -0
- package/src/substrate/lifo/commands/system/watch.ts +67 -0
- package/src/substrate/lifo/commands/system/which.ts +51 -0
- package/src/substrate/lifo/commands/system/whoami.ts +9 -0
- package/src/substrate/lifo/commands/text/awk.ts +210 -0
- package/src/substrate/lifo/commands/text/base64.ts +102 -0
- package/src/substrate/lifo/commands/text/cut.ts +92 -0
- package/src/substrate/lifo/commands/text/diff.ts +314 -0
- package/src/substrate/lifo/commands/text/grep.ts +170 -0
- package/src/substrate/lifo/commands/text/head.ts +95 -0
- package/src/substrate/lifo/commands/text/less.ts +335 -0
- package/src/substrate/lifo/commands/text/nano.ts +513 -0
- package/src/substrate/lifo/commands/text/nl.ts +74 -0
- package/src/substrate/lifo/commands/text/rev.ts +46 -0
- package/src/substrate/lifo/commands/text/sed.ts +297 -0
- package/src/substrate/lifo/commands/text/seq.ts +76 -0
- package/src/substrate/lifo/commands/text/sort.ts +88 -0
- package/src/substrate/lifo/commands/text/strings.ts +73 -0
- package/src/substrate/lifo/commands/text/tac.ts +37 -0
- package/src/substrate/lifo/commands/text/tail.ts +63 -0
- package/src/substrate/lifo/commands/text/tr.ts +192 -0
- package/src/substrate/lifo/commands/text/uniq.ts +77 -0
- package/src/substrate/lifo/commands/text/wc.ts +104 -0
- package/src/substrate/lifo/commands/types.ts +58 -0
- package/src/substrate/lifo/index.ts +173 -0
- package/src/substrate/lifo/kernel/ServiceManager.ts +371 -0
- package/src/substrate/lifo/kernel/index.ts +209 -0
- package/src/substrate/lifo/kernel/network/Bridge.ts +336 -0
- package/src/substrate/lifo/kernel/network/DNSResolver.ts +158 -0
- package/src/substrate/lifo/kernel/network/NetworkInterface.ts +235 -0
- package/src/substrate/lifo/kernel/network/NetworkNamespace.ts +182 -0
- package/src/substrate/lifo/kernel/network/NetworkStack.ts +590 -0
- package/src/substrate/lifo/kernel/network/PortBridge.ts +182 -0
- package/src/substrate/lifo/kernel/network/RoutingTable.ts +209 -0
- package/src/substrate/lifo/kernel/network/Socket.ts +245 -0
- package/src/substrate/lifo/kernel/network/index.ts +29 -0
- package/src/substrate/lifo/kernel/network/tunnel/BaseTunnel.ts +124 -0
- package/src/substrate/lifo/kernel/network/tunnel/VETHPair.ts +227 -0
- package/src/substrate/lifo/kernel/network/tunnel/WebSocketTunnel.ts +387 -0
- package/src/substrate/lifo/kernel/network/types.ts +178 -0
- package/src/substrate/lifo/kernel/persistence/PersistenceManager.ts +50 -0
- package/src/substrate/lifo/kernel/persistence/backends.ts +36 -0
- package/src/substrate/lifo/kernel/persistence/index.ts +5 -0
- package/src/substrate/lifo/kernel/persistence/serializer.ts +127 -0
- package/src/substrate/lifo/kernel/samples.ts +966 -0
- package/src/substrate/lifo/kernel/storage/BlobStore.ts +114 -0
- package/src/substrate/lifo/kernel/storage/ContentStore.ts +150 -0
- package/src/substrate/lifo/kernel/storage/index.ts +5 -0
- package/src/substrate/lifo/kernel/unit-parser.ts +95 -0
- package/src/substrate/lifo/kernel/vfs/VFS.ts +768 -0
- package/src/substrate/lifo/kernel/vfs/index.ts +9 -0
- package/src/substrate/lifo/kernel/vfs/providers/DevProvider.ts +172 -0
- package/src/substrate/lifo/kernel/vfs/providers/NativeFsProvider.ts +198 -0
- package/src/substrate/lifo/kernel/vfs/providers/ProcProvider.ts +144 -0
- package/src/substrate/lifo/kernel/vfs/types.ts +145 -0
- package/src/substrate/lifo/node-compat/buffer.ts +357 -0
- package/src/substrate/lifo/node-compat/child_process.ts +52 -0
- package/src/substrate/lifo/node-compat/console.ts +70 -0
- package/src/substrate/lifo/node-compat/crypto.ts +186 -0
- package/src/substrate/lifo/node-compat/dns.ts +214 -0
- package/src/substrate/lifo/node-compat/esbuild.ts +85 -0
- package/src/substrate/lifo/node-compat/events.ts +94 -0
- package/src/substrate/lifo/node-compat/fs.ts +762 -0
- package/src/substrate/lifo/node-compat/http.ts +561 -0
- package/src/substrate/lifo/node-compat/index.ts +300 -0
- package/src/substrate/lifo/node-compat/module.ts +148 -0
- package/src/substrate/lifo/node-compat/os.ts +44 -0
- package/src/substrate/lifo/node-compat/path.ts +74 -0
- package/src/substrate/lifo/node-compat/process.ts +178 -0
- package/src/substrate/lifo/node-compat/readline.ts +244 -0
- package/src/substrate/lifo/node-compat/rimraf.ts +80 -0
- package/src/substrate/lifo/node-compat/stream.ts +98 -0
- package/src/substrate/lifo/node-compat/string_decoder.ts +26 -0
- package/src/substrate/lifo/node-compat/timers.ts +21 -0
- package/src/substrate/lifo/node-compat/tty.ts +83 -0
- package/src/substrate/lifo/node-compat/url.ts +76 -0
- package/src/substrate/lifo/node-compat/util.ts +133 -0
- package/src/substrate/lifo/node-compat/zlib.ts +94 -0
- package/src/substrate/lifo/pkg/PackageManager.ts +105 -0
- package/src/substrate/lifo/pkg/lifo-dev.ts +130 -0
- package/src/substrate/lifo/pkg/lifo-runtime.ts +473 -0
- package/src/substrate/lifo/pkg/loader.ts +33 -0
- package/src/substrate/lifo/platform-globals.d.ts +41 -0
- package/src/substrate/lifo/sandbox/HeadlessTerminal.ts +38 -0
- package/src/substrate/lifo/sandbox/Sandbox.ts +279 -0
- package/src/substrate/lifo/sandbox/SandboxCommands.ts +74 -0
- package/src/substrate/lifo/sandbox/SandboxFs.ts +160 -0
- package/src/substrate/lifo/sandbox/index.ts +8 -0
- package/src/substrate/lifo/sandbox/types.ts +117 -0
- package/src/substrate/lifo/shell/ProcessRegistry.ts +379 -0
- package/src/substrate/lifo/shell/Shell.ts +2048 -0
- package/src/substrate/lifo/shell/completer.ts +212 -0
- package/src/substrate/lifo/shell/default-shell.ts +63 -0
- package/src/substrate/lifo/shell/expander.ts +1349 -0
- package/src/substrate/lifo/shell/history.ts +138 -0
- package/src/substrate/lifo/shell/interpreter.ts +1754 -0
- package/src/substrate/lifo/shell/jobs.ts +64 -0
- package/src/substrate/lifo/shell/lexer.ts +698 -0
- package/src/substrate/lifo/shell/parser.ts +711 -0
- package/src/substrate/lifo/shell/pipe.ts +92 -0
- package/src/substrate/lifo/shell/signals.ts +70 -0
- package/src/substrate/lifo/shell/terminal-stdin.ts +109 -0
- package/src/substrate/lifo/shell/test-builtin.ts +316 -0
- package/src/substrate/lifo/shell/types.ts +166 -0
- package/src/substrate/lifo/terminal/ITerminal.ts +9 -0
- package/src/substrate/lifo/utils/archive.ts +389 -0
- package/src/substrate/lifo/utils/args.ts +89 -0
- package/src/substrate/lifo/utils/colors.ts +29 -0
- package/src/substrate/lifo/utils/encoding.ts +21 -0
- package/src/substrate/lifo/utils/glob.ts +172 -0
- package/src/substrate/lifo/utils/mime.ts +114 -0
- package/src/substrate/lifo/utils/path.ts +83 -0
- package/src/types/assets.d.ts +4 -0
- package/src/vfs/events.ts +134 -0
- package/src/vfs/path.ts +71 -0
- package/src/vfs/seed-project.ts +1094 -0
- package/src/vfs/sqlite-vfs.ts +5035 -0
- package/src/vfs/symlink-registry.ts +172 -0
- package/src/workspace/nimbus-workspace.ts +213 -0
|
@@ -0,0 +1,760 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* require-resolver.ts — Server-side dependency graph resolver for Nimbus.
|
|
3
|
+
*
|
|
4
|
+
* Runs on the supervisor (which has synchronous VFS access) to trace
|
|
5
|
+
* all require() calls and build a complete file bundle reachable from
|
|
6
|
+
* the entry point. The output is consumed by `facet-manager.ts`'s
|
|
7
|
+
* `buildPrefetchBundle` (W2.6a) to ship ONLY the reachable set into
|
|
8
|
+
* the dynamic-worker module (rather than every file in node_modules
|
|
9
|
+
* up to the legacy cap).
|
|
10
|
+
*
|
|
11
|
+
* Algorithm:
|
|
12
|
+
* 1. Parse `require('xxx')` / `require("xxx")` / ``require(`xxx`)``
|
|
13
|
+
* and `require.resolve('xxx')` calls from entry code via regex.
|
|
14
|
+
* 2. Resolve each via the SHARED `resolvePackageEntry` helper from
|
|
15
|
+
* src/_shared/exports-resolver.ts — same impl that node-shims
|
|
16
|
+
* and npm-resolver use, so prefetch and runtime always agree on
|
|
17
|
+
* which file `require('xyz')` means (W2.6a D6: no dual impls).
|
|
18
|
+
* 3. Read the resolved file, recursively parse ITS requires.
|
|
19
|
+
* 4. Return Record<string, string> of path → content.
|
|
20
|
+
*
|
|
21
|
+
* Static analysis still misses dynamic requires like `require(variable)`;
|
|
22
|
+
* bounded greedy oversampling in facet-manager.ts:buildPrefetchBundle
|
|
23
|
+
* compensates without limiting the statically-proven require closure.
|
|
24
|
+
*
|
|
25
|
+
* History: this file was ARC-A-P1 quarantined after W2 because the
|
|
26
|
+
* legacy `buildVfsBundle` walked every file in node_modules. W2.6a
|
|
27
|
+
* de-quarantines it as the primary content-bundle source.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
import type { CredentialedVfs } from '../vfs/sqlite-vfs.js';
|
|
31
|
+
import {
|
|
32
|
+
resolvePackageEntry as sharedResolvePackageEntry,
|
|
33
|
+
resolveExports as sharedResolveExports,
|
|
34
|
+
DEFAULT_CJS_CONDITIONS,
|
|
35
|
+
DEFAULT_ESM_CONDITIONS,
|
|
36
|
+
} from '../_shared/exports-resolver.js';
|
|
37
|
+
import {
|
|
38
|
+
TYPESCRIPT_INDEX_CANDIDATES,
|
|
39
|
+
typescriptFallbackCandidates,
|
|
40
|
+
} from '../_shared/typescript-specifiers.js';
|
|
41
|
+
import { FACET_PROVIDED_PACKAGES } from '../constants.js';
|
|
42
|
+
import { normalizeVfsPath } from '../vfs/path.js';
|
|
43
|
+
import { stripCommentsForImports } from './comment-strip.js';
|
|
44
|
+
|
|
45
|
+
// Match literal-string require/require.resolve with single, double, or
|
|
46
|
+
// template-literal-no-interp specifier. The plain-string variant is by
|
|
47
|
+
// far the dominant npm pattern; the others catch a long tail of
|
|
48
|
+
// well-known cases (esbuild plugins, vite internals).
|
|
49
|
+
const REQUIRE_RE = /(?:require(?:\.resolve)?\s*\(\s*)(['"`])([^'"`]+?)\1\s*\)/g;
|
|
50
|
+
|
|
51
|
+
// Static-string dynamic import: `import('literal')`. CLI entrypoints often
|
|
52
|
+
// defer their real implementation through one (e.g. create-astro's
|
|
53
|
+
// create-astro.mjs does `import('./dist/index.js').then(({main}) => main())`).
|
|
54
|
+
// Without following it, the target file's content is excluded from the
|
|
55
|
+
// bounded snapshot, so the runtime dynamic import resolves the path but
|
|
56
|
+
// can't read it — the scaffolder exits silently. Only literal specifiers
|
|
57
|
+
// are followed; computed `import(expr)` remains out of scope.
|
|
58
|
+
const DYNIMPORT_RE = /\bimport\s*\(\s*(['"`])([^'"`]+?)\1\s*\)/g;
|
|
59
|
+
|
|
60
|
+
// X.5-C Fix #1: match ESM `import` and `export … from` statements.
|
|
61
|
+
//
|
|
62
|
+
// Why a second regex (not a unified one): REQUIRE_RE matches require(…)
|
|
63
|
+
// CALL EXPRESSIONS — those can appear anywhere (inside function bodies,
|
|
64
|
+
// conditionals, etc.). ESM import/export are STATEMENTS — they can only
|
|
65
|
+
// appear at the top of a line (modulo whitespace). Anchoring at start-of-
|
|
66
|
+
// line `(^|\n)\s*` avoids matching the substring `import` inside string
|
|
67
|
+
// literals or identifiers like `obj.import`. Same anchor strategy that
|
|
68
|
+
// `looksLikeEsm` in facet-manager.ts uses (precedent set by W3.5 Fix B).
|
|
69
|
+
//
|
|
70
|
+
// Forms covered by IMPORT_RE:
|
|
71
|
+
// import 'x'; ← side-effect (no `from`)
|
|
72
|
+
// import x from 'x'; ← default
|
|
73
|
+
// import * as x from 'x'; ← namespace
|
|
74
|
+
// import {a, b as c} from 'x'; ← named
|
|
75
|
+
// import x, {a} from 'x'; ← mixed default+named
|
|
76
|
+
// export {a, b} from 'x'; ← re-export named
|
|
77
|
+
// export * from 'x'; ← re-export wildcard
|
|
78
|
+
// export * as ns from 'x'; ← re-export wildcard with alias
|
|
79
|
+
// export {default as x} from 'x'; ← named-as-default re-export
|
|
80
|
+
//
|
|
81
|
+
// NOT covered (deliberate):
|
|
82
|
+
// import('x') / import.meta.<x> ← dynamic — needs full parsing;
|
|
83
|
+
// out of scope for prefetch.
|
|
84
|
+
// `import type {…} from 'x'` (TypeScript) ← matched, but the resolver
|
|
85
|
+
// returns null on .d.ts-only
|
|
86
|
+
// specifiers and the walk no-ops.
|
|
87
|
+
//
|
|
88
|
+
// The middle group `[\w*${},\s{}]*` covers the practical identifier /
|
|
89
|
+
// destructuring shapes; alternation `(?:…)?` allows the `from` segment
|
|
90
|
+
// to be omitted (side-effect imports). String literal at the end is a
|
|
91
|
+
// single- or double-quoted spec.
|
|
92
|
+
//
|
|
93
|
+
// X.5-Z5 §3 (extended): leading anchor relaxed from (^|\n) to (^|[\n;}])
|
|
94
|
+
// AND the body widened to optionally allow no-whitespace `import{` /
|
|
95
|
+
// `export{` shapes. Same dual-relaxation as src/facet-manager.ts
|
|
96
|
+
// looksLikeEsm — minified ESM bundles (notably @tailwindcss/vite/dist/
|
|
97
|
+
// index.mjs) put the first `;import{...}from"..."` after a `;` on the
|
|
98
|
+
// same line, which the original anchor missed → prefetch walker silently
|
|
99
|
+
//
|
|
100
|
+
// Edge: a literal `\nimport x from 'y'` inside a multi-line string would
|
|
101
|
+
// false-positive. The walker no-ops on missed resolutions, so it's a
|
|
102
|
+
// minor wasted-work cost, not a correctness issue.
|
|
103
|
+
const IMPORT_RE = /(?:^|[\n;}])\s*(?:import|export)(?:[\s{][\w*${}\s,]*?\s*from)?\s*(['"])([^'"]+)\1/g;
|
|
104
|
+
|
|
105
|
+
function strip(p: string): string { return p.replace(/^\/+/, ''); }
|
|
106
|
+
|
|
107
|
+
const normalizePath = normalizeVfsPath;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Sink for package.json files consulted during LOAD_AS_DIRECTORY
|
|
111
|
+
* resolution. The runtime resolver (`__resolveFile` in node-shims.ts)
|
|
112
|
+
* re-derives a directory require's target by reading that directory's
|
|
113
|
+
* package.json#main; if prefetch resolves a subpath through a nested
|
|
114
|
+
* package.json (e.g. web-streams-polyfill's `ponyfill/package.json`
|
|
115
|
+
* declaring `main: "../dist/ponyfill"`), only the FINAL file gets
|
|
116
|
+
* added to the bundle — the runtime then can't repeat the resolution
|
|
117
|
+
* because the intermediate package.json's content was never shipped
|
|
118
|
+
* (and, for npx-cache trees outside cwd, isn't in the manifest either).
|
|
119
|
+
* Recording every consulted package.json lets the prefetch walker add
|
|
120
|
+
* its content so prefetch and runtime agree.
|
|
121
|
+
*/
|
|
122
|
+
type PkgJsonSink = (pkgJsonPath: string) => void;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Extension-list probe; mirrors node-shims.ts:__resolveFile so prefetch
|
|
126
|
+
* picks the same on-disk file the runtime require will pick.
|
|
127
|
+
*
|
|
128
|
+
* Mirrors Node's LOAD_AS_FILE + LOAD_AS_DIRECTORY (require_2 spec):
|
|
129
|
+
* 1. LOAD_AS_FILE: base, base.js, base.mjs, base.cjs, base.json.
|
|
130
|
+
* 2. LOAD_AS_DIRECTORY (if base resolves to a directory):
|
|
131
|
+
* a. <base>/package.json#main → recurse.
|
|
132
|
+
* b. <base>/index.{js,cjs,mjs,json}.
|
|
133
|
+
*
|
|
134
|
+
* Bug class C (audit 2026-05-11): step 2a was missing, so prefetch
|
|
135
|
+
* silently dropped any file reachable only via package.json#main from
|
|
136
|
+
* a directory-style require (e.g. `require('./mod')` where mod has
|
|
137
|
+
* main='entry.js' and no index.js).
|
|
138
|
+
*/
|
|
139
|
+
function resolveFile(vfs: CredentialedVfs, base: string, sink?: PkgJsonSink): string | null {
|
|
140
|
+
const fileExts = ['', '.js', '.mjs', '.cjs', '.json'];
|
|
141
|
+
for (const ext of fileExts) {
|
|
142
|
+
const p = normalizePath(base + ext);
|
|
143
|
+
if (vfs.exists(p) && !vfs.isDirectory(p)) return p;
|
|
144
|
+
}
|
|
145
|
+
// LOAD_AS_DIRECTORY: prefer package.json#main over index.*
|
|
146
|
+
const baseTrim = base.replace(/\/+$/, '');
|
|
147
|
+
const pkgJsonPath = normalizePath(baseTrim + '/package.json');
|
|
148
|
+
if (vfs.exists(pkgJsonPath) && !vfs.isDirectory(pkgJsonPath)) {
|
|
149
|
+
let pkg: any = null;
|
|
150
|
+
try { pkg = JSON.parse(vfs.readFileString(pkgJsonPath)); } catch { /* fall through */ }
|
|
151
|
+
if (pkg && typeof pkg.main === 'string' && pkg.main.length > 0) {
|
|
152
|
+
// Record this package.json so the bundle carries the content the
|
|
153
|
+
// runtime resolver needs to repeat this directory resolution.
|
|
154
|
+
sink?.(pkgJsonPath);
|
|
155
|
+
const mainStripped = pkg.main.replace(/^\.\/+/, '').replace(/^\/+/, '');
|
|
156
|
+
const mainBase = baseTrim + '/' + mainStripped;
|
|
157
|
+
// Guard against pkg.main === '.' or empty → would re-enter same base.
|
|
158
|
+
if (mainBase !== base && mainBase !== baseTrim) {
|
|
159
|
+
const resolved = resolveFile(vfs, mainBase, sink);
|
|
160
|
+
if (resolved) return resolved;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const indexExts = ['/index.js', '/index.cjs', '/index.mjs', '/index.json'];
|
|
165
|
+
for (const ext of indexExts) {
|
|
166
|
+
const p = normalizePath(base + ext);
|
|
167
|
+
if (vfs.exists(p) && !vfs.isDirectory(p)) return p;
|
|
168
|
+
}
|
|
169
|
+
// TypeScript sources, probed only once every candidate above has missed —
|
|
170
|
+
// so the specifiers whose resolution changes are exactly those that resolve
|
|
171
|
+
// to nothing today. See _shared/typescript-specifiers.ts for the scope.
|
|
172
|
+
for (const candidate of typescriptFallbackCandidates(baseTrim)) {
|
|
173
|
+
const p = normalizePath(candidate);
|
|
174
|
+
if (vfs.exists(p) && !vfs.isDirectory(p)) return p;
|
|
175
|
+
}
|
|
176
|
+
for (const ext of TYPESCRIPT_INDEX_CANDIDATES) {
|
|
177
|
+
const p = normalizePath(baseTrim + ext);
|
|
178
|
+
if (vfs.exists(p) && !vfs.isDirectory(p)) return p;
|
|
179
|
+
}
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* X.5-L: result shape for `resolvePkgSubpathEx`. When a bare-spec
|
|
185
|
+
* subpath resolves via the LEGACY directory-with-nested-package.json
|
|
186
|
+
* pattern (e.g. `react-remove-scroll-bar/constants` where there's no
|
|
187
|
+
* top-level `exports` field but `<pkgDir>/constants/package.json`
|
|
188
|
+
* exists), we need to ship TWO bundle entries:
|
|
189
|
+
*
|
|
190
|
+
* - the real resolved file at its canonical VFS path (so its own
|
|
191
|
+
* relative requires walk correctly), AND
|
|
192
|
+
* - a SYNTHETIC STUB at the path the runtime resolver probes for
|
|
193
|
+
* (`<pkgDir>/<subpath>.js`), since the runtime
|
|
194
|
+
* `__resolvePkgSubpath` mirror in node-shims.ts also misses the
|
|
195
|
+
* legacy directory pattern (X.5-M will fix runtime parity; until
|
|
196
|
+
* then, the stub bridges the gap).
|
|
197
|
+
*
|
|
198
|
+
* The stub is a minimal CJS re-export:
|
|
199
|
+
* `module.exports = require('./<rel-path-to-real-target>');`
|
|
200
|
+
*
|
|
201
|
+
* The relative path is computed from `<pkgDir>` (stub's modDir) to
|
|
202
|
+
* the real resolved file. At runtime, the runtime resolver's
|
|
203
|
+
* extension probe finds the stub at `<pkgDir>/<subpath>.js` (the
|
|
204
|
+
* `.js` ext probe), loads it, the stub's relative require resolves
|
|
205
|
+
* to the real file, and the load chain proceeds normally.
|
|
206
|
+
*/
|
|
207
|
+
interface ResolveSubpathResult {
|
|
208
|
+
/** Canonical resolved path to the real file. */
|
|
209
|
+
resolved: string;
|
|
210
|
+
/**
|
|
211
|
+
* Optional synthetic stub to inject into the bundle at this path
|
|
212
|
+
* with this content, so the runtime resolver can find it via
|
|
213
|
+
* extension-list probe.
|
|
214
|
+
*/
|
|
215
|
+
stub?: { path: string; content: string };
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Resolve a package's entry-point file via the SHARED resolver. The
|
|
220
|
+
* pre-W2.6a implementation here had a hand-rolled `pkg.exports['.']`
|
|
221
|
+
* lookup that ignored conditions, wildcards, and nested condition maps
|
|
222
|
+
* — diverging from runtime semantics. Now both use the same impl.
|
|
223
|
+
*
|
|
224
|
+
* Returns null when no resolution is possible.
|
|
225
|
+
*/
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* X.5-L: extended resolver. Same semantics as the original
|
|
229
|
+
* resolvePkgSubpath (pre-X.5-L) for the common-case paths, plus a
|
|
230
|
+
* legacy-directory-subpath fallback that emits a synthetic stub.
|
|
231
|
+
*
|
|
232
|
+
* Resolution order:
|
|
233
|
+
* 1. `package.json#exports[<subpath>]` via shared resolver, condition=require.
|
|
234
|
+
* 2. For root subpath ('.'): `pkg.main` then `<pkgDir>/index.{js,…}`.
|
|
235
|
+
* 3. For non-root subpath: extension-probe `<pkgDir>/<subpath>` directly.
|
|
236
|
+
* 4. **NEW (X.5-L):** if `<pkgDir>/<subpath>` is a directory, look
|
|
237
|
+
* for a nested `package.json` and follow its `module`/`main`
|
|
238
|
+
* relative to the subpath dir. This is the legacy pre-`exports`
|
|
239
|
+
* convention used by react-remove-scroll-bar/constants and
|
|
240
|
+
* similar (verbatim shape: `<pkgDir>/<sub>/package.json` with
|
|
241
|
+
* `main: "../dist/sub.js"`). Emits a stub at `<pkgDir>/<subpath>.js`
|
|
242
|
+
* (and `<pkgDir>/<subpath>` no-ext) so the runtime resolver
|
|
243
|
+
* finds it through its extension-probe loop without needing
|
|
244
|
+
* a runtime-side fix.
|
|
245
|
+
*/
|
|
246
|
+
function resolvePkgSubpathEx(vfs: CredentialedVfs, pkgDir: string, subpath: string, sink?: PkgJsonSink): ResolveSubpathResult | null {
|
|
247
|
+
const pkgJsonPath = pkgDir + '/package.json';
|
|
248
|
+
if (!vfs.exists(pkgJsonPath)) {
|
|
249
|
+
// No package.json — direct probe (matches node-shims fallback).
|
|
250
|
+
if (subpath === '.') {
|
|
251
|
+
const r = resolveFile(vfs, pkgDir + '/index', sink);
|
|
252
|
+
return r ? { resolved: r } : null;
|
|
253
|
+
}
|
|
254
|
+
const r = resolveFile(vfs, pkgDir + '/' + subpath.replace(/^\.\//, ''), sink);
|
|
255
|
+
if (r) return { resolved: r };
|
|
256
|
+
// Even with no parent package.json, attempt the legacy nested-pkg
|
|
257
|
+
// fallback (consistent behaviour across the no-pkgjson branch).
|
|
258
|
+
return tryLegacyDirectorySubpath(vfs, pkgDir, subpath, sink);
|
|
259
|
+
}
|
|
260
|
+
let pkg: { exports?: any; module?: string; main?: string };
|
|
261
|
+
try { pkg = JSON.parse(vfs.readFileString(pkgJsonPath)); }
|
|
262
|
+
catch {
|
|
263
|
+
const r = resolveFile(vfs, pkgDir + '/index', sink);
|
|
264
|
+
return r ? { resolved: r } : null;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
let entry = sharedResolvePackageEntry(pkg, subpath, DEFAULT_CJS_CONDITIONS);
|
|
268
|
+
if (entry == null && pkg.exports != null) {
|
|
269
|
+
entry = sharedResolvePackageEntry(pkg, subpath, DEFAULT_ESM_CONDITIONS);
|
|
270
|
+
}
|
|
271
|
+
if (entry != null) {
|
|
272
|
+
const resolved = resolveFile(vfs, pkgDir + '/' + entry.replace(/^\.\//, ''), sink);
|
|
273
|
+
if (resolved) return { resolved };
|
|
274
|
+
// W2.6a D2 (mirror of node-shims:__resolvePkgSubpath): exports/main
|
|
275
|
+
// yielded a path that doesn't exist on disk. Fall through to the
|
|
276
|
+
// direct-probe path so prefetch and runtime stay in lockstep on
|
|
277
|
+
// packages whose declared entry is unfindable.
|
|
278
|
+
}
|
|
279
|
+
if (subpath === '.') {
|
|
280
|
+
if (typeof pkg.main === 'string') {
|
|
281
|
+
const r = resolveFile(vfs, pkgDir + '/' + pkg.main.replace(/^\.\//, ''), sink);
|
|
282
|
+
if (r) return { resolved: r };
|
|
283
|
+
}
|
|
284
|
+
const idx = resolveFile(vfs, pkgDir + '/index', sink);
|
|
285
|
+
return idx ? { resolved: idx } : null;
|
|
286
|
+
}
|
|
287
|
+
// Non-root subpath: extension-probe first (most common path).
|
|
288
|
+
const direct = resolveFile(vfs, pkgDir + '/' + subpath.replace(/^\.\//, ''), sink);
|
|
289
|
+
if (direct) return { resolved: direct };
|
|
290
|
+
|
|
291
|
+
// X.5-L: legacy directory-with-nested-package.json fallback. Only
|
|
292
|
+
// engaged when the standard probes have failed AND
|
|
293
|
+
// `<pkgDir>/<subpath>` exists as a directory.
|
|
294
|
+
return tryLegacyDirectorySubpath(vfs, pkgDir, subpath, sink);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* X.5-L: legacy pre-`exports`-field subpath convention.
|
|
299
|
+
*
|
|
300
|
+
* If `<pkgDir>/<subpath>` is a directory containing its own
|
|
301
|
+
* `package.json`, follow that nested package.json's `module`/`main`
|
|
302
|
+
* (in CJS-condition order: main → module) as a path relative to the
|
|
303
|
+
* **subpath directory** (so `main: "../dist/x.js"` resolves to
|
|
304
|
+
* `<pkgDir>/dist/x.js`).
|
|
305
|
+
*
|
|
306
|
+
* Returns the real resolved file plus a synthetic stub to inject at
|
|
307
|
+
* `<pkgDir>/<subpath>.js`. The stub is a CJS one-liner that
|
|
308
|
+
* re-exports the real target via a relative require — chosen over
|
|
309
|
+
* duplicating the file content so we don't double-apply the
|
|
310
|
+
* ESM→CJS transform in facet-manager.
|
|
311
|
+
*
|
|
312
|
+
* Returns null if there's no directory match or no readable nested
|
|
313
|
+
* package.json (caller falls through to its existing null return).
|
|
314
|
+
*/
|
|
315
|
+
function tryLegacyDirectorySubpath(vfs: CredentialedVfs, pkgDir: string, subpath: string, sink?: PkgJsonSink): ResolveSubpathResult | null {
|
|
316
|
+
if (subpath === '.' || !subpath.startsWith('./')) return null;
|
|
317
|
+
|
|
318
|
+
const subRelative = subpath.replace(/^\.\//, '');
|
|
319
|
+
const subDir = normalizePath(pkgDir + '/' + subRelative);
|
|
320
|
+
if (!vfs.exists(subDir) || !vfs.isDirectory(subDir)) return null;
|
|
321
|
+
|
|
322
|
+
const nestedPkgJson = subDir + '/package.json';
|
|
323
|
+
if (!vfs.exists(nestedPkgJson)) {
|
|
324
|
+
// Last-resort: probe `<subDir>/index.{js,…}`. This is already
|
|
325
|
+
// covered by `resolveFile(pkgDir + '/' + subRelative)`'s
|
|
326
|
+
// `/index.js` suffix probe, so reaching here means everything
|
|
327
|
+
// missed — return null.
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
let nested: { module?: string; main?: string };
|
|
332
|
+
try { nested = JSON.parse(vfs.readFileString(nestedPkgJson)); }
|
|
333
|
+
catch { return null; }
|
|
334
|
+
// The runtime resolver reads this nested package.json to repeat the
|
|
335
|
+
// resolution; record it so its content ships in the bundle.
|
|
336
|
+
sink?.(nestedPkgJson);
|
|
337
|
+
|
|
338
|
+
// Prefer `main` for CJS conditions; fall back to `module` if no main.
|
|
339
|
+
// (resolvePackageEntry would do the same prioritisation, but nested
|
|
340
|
+
// package.json files often only declare one of the two.)
|
|
341
|
+
const nestedEntry =
|
|
342
|
+
(typeof nested.main === 'string' && nested.main) ||
|
|
343
|
+
(typeof nested.module === 'string' && nested.module) ||
|
|
344
|
+
null;
|
|
345
|
+
if (!nestedEntry) return null;
|
|
346
|
+
|
|
347
|
+
// Resolve relative to the subpath dir; nestedEntry can be
|
|
348
|
+
// up-pointing (`../dist/x.js`) or relative-down (`./dist/x.js`).
|
|
349
|
+
const targetPath = normalizePath(subDir + '/' + nestedEntry.replace(/^\.\//, ''));
|
|
350
|
+
const resolved = resolveFile(vfs, targetPath, sink);
|
|
351
|
+
if (!resolved) return null;
|
|
352
|
+
|
|
353
|
+
// Build the stub. The stub lives at `<pkgDir>/<subRelative>.js`
|
|
354
|
+
// (matches the runtime resolver's `.js` extension probe). Its
|
|
355
|
+
// modDir is the directory of the stub path.
|
|
356
|
+
const stubPath = normalizePath(pkgDir + '/' + subRelative + '.js');
|
|
357
|
+
const stubDir = stubPath.includes('/') ? stubPath.substring(0, stubPath.lastIndexOf('/')) : '.';
|
|
358
|
+
const stubRelTarget = relativeFrom(stubDir, resolved);
|
|
359
|
+
const stubContent =
|
|
360
|
+
`// X.5-L synthetic stub: re-export legacy directory-subpath target\n` +
|
|
361
|
+
`module.exports = require(${JSON.stringify('./' + stubRelTarget)});\n`;
|
|
362
|
+
|
|
363
|
+
return {
|
|
364
|
+
resolved,
|
|
365
|
+
stub: { path: stubPath, content: stubContent },
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
/**
|
|
370
|
+
* Compute a relative path from `fromDir` to `toPath`. Both are
|
|
371
|
+
* expected as VFS-style slash-separated paths with no leading slash.
|
|
372
|
+
* The result is a slash-separated relative path WITHOUT a leading
|
|
373
|
+
* `./` (caller adds the prefix if needed for require()).
|
|
374
|
+
*
|
|
375
|
+
* Examples:
|
|
376
|
+
* relativeFrom('a/b', 'a/c/d.js') → '../c/d.js'
|
|
377
|
+
* relativeFrom('a/b', 'a/b/c.js') → 'c.js'
|
|
378
|
+
* relativeFrom('a', 'a/b/c.js') → 'b/c.js'
|
|
379
|
+
*/
|
|
380
|
+
function relativeFrom(fromDir: string, toPath: string): string {
|
|
381
|
+
const f = fromDir.split('/').filter(s => s.length > 0);
|
|
382
|
+
const t = toPath.split('/').filter(s => s.length > 0);
|
|
383
|
+
let i = 0;
|
|
384
|
+
while (i < f.length && i < t.length && f[i] === t[i]) i++;
|
|
385
|
+
const ups = f.length - i;
|
|
386
|
+
const downs = t.slice(i);
|
|
387
|
+
const parts: string[] = [];
|
|
388
|
+
for (let k = 0; k < ups; k++) parts.push('..');
|
|
389
|
+
for (const d of downs) parts.push(d);
|
|
390
|
+
return parts.join('/') || '.';
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* X.5-L: extended bare-spec resolver that also returns any synthetic
|
|
395
|
+
* stub emitted by resolvePkgSubpathEx's legacy-directory branch.
|
|
396
|
+
*/
|
|
397
|
+
function resolveNodeModuleEx(vfs: CredentialedVfs, name: string, fromDir: string, sink?: PkgJsonSink): ResolveSubpathResult | null {
|
|
398
|
+
let pkgName: string;
|
|
399
|
+
let subpath: string;
|
|
400
|
+
if (name.startsWith('@')) {
|
|
401
|
+
const parts = name.split('/');
|
|
402
|
+
if (parts.length < 2) return null;
|
|
403
|
+
pkgName = parts.slice(0, 2).join('/');
|
|
404
|
+
subpath = parts.length > 2 ? './' + parts.slice(2).join('/') : '.';
|
|
405
|
+
} else {
|
|
406
|
+
const slashIdx = name.indexOf('/');
|
|
407
|
+
if (slashIdx > 0) {
|
|
408
|
+
pkgName = name.substring(0, slashIdx);
|
|
409
|
+
subpath = './' + name.substring(slashIdx + 1);
|
|
410
|
+
} else {
|
|
411
|
+
pkgName = name;
|
|
412
|
+
subpath = '.';
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
let dir = strip(fromDir);
|
|
417
|
+
const visited = new Set<string>();
|
|
418
|
+
while (true) {
|
|
419
|
+
if (visited.has(dir)) break;
|
|
420
|
+
visited.add(dir);
|
|
421
|
+
const nmDir = (dir ? dir + '/' : '') + 'node_modules/' + pkgName;
|
|
422
|
+
if (vfs.exists(nmDir)) {
|
|
423
|
+
const r = resolvePkgSubpathEx(vfs, nmDir, subpath, sink);
|
|
424
|
+
if (r) return r;
|
|
425
|
+
}
|
|
426
|
+
if (!dir) break;
|
|
427
|
+
const lastSlash = dir.lastIndexOf('/');
|
|
428
|
+
dir = lastSlash > 0 ? dir.substring(0, lastSlash) : '';
|
|
429
|
+
}
|
|
430
|
+
return null;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* X.5-L: extended require-resolver that surfaces synthetic stubs.
|
|
435
|
+
* Used by `prefetchForRequire` to inject runtime-side stubs for
|
|
436
|
+
* the legacy directory-subpath pattern. Relative paths never need
|
|
437
|
+
* stubs, so for those we just return `{ resolved }` with no stub.
|
|
438
|
+
*/
|
|
439
|
+
function resolveRequireEx(vfs: CredentialedVfs, id: string, fromDir: string, sink?: PkgJsonSink): ResolveSubpathResult | null {
|
|
440
|
+
if (id.startsWith('./') || id.startsWith('../') || id.startsWith('/')) {
|
|
441
|
+
const base = id.startsWith('/')
|
|
442
|
+
? strip(id)
|
|
443
|
+
: normalizePath(strip(fromDir) + '/' + id);
|
|
444
|
+
const r = resolveFile(vfs, base, sink);
|
|
445
|
+
return r ? { resolved: r } : null;
|
|
446
|
+
}
|
|
447
|
+
// package.json#imports field — `#name` specifiers resolved against
|
|
448
|
+
// the nearest enclosing package.json's `imports` map. Mirrors the
|
|
449
|
+
// runtime __resolveImportsField at node-shims.ts:2635. Without this
|
|
450
|
+
// branch, prefetch would fall through to resolveNodeModuleEx (which
|
|
451
|
+
// treats `#name` as a node_module name → never finds the file),
|
|
452
|
+
// and the imports-field target would never be shipped into the
|
|
453
|
+
// bundle. At runtime, __resolveImportsField would correctly compute
|
|
454
|
+
// the target path, but __resolveFile would then return null because
|
|
455
|
+
// the file wasn't bundled — surfacing as a misleading
|
|
456
|
+
// "Cannot find module '#name' (from ...)" error.
|
|
457
|
+
//
|
|
458
|
+
if (id.startsWith('#')) {
|
|
459
|
+
const r = resolveImportsField(vfs, id, fromDir, sink);
|
|
460
|
+
return r ? { resolved: r } : null;
|
|
461
|
+
}
|
|
462
|
+
return resolveNodeModuleEx(vfs, id, fromDir, sink);
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* Resolve an imports-field specifier `#name` against the nearest
|
|
467
|
+
* enclosing package.json. Returns the resolved file path (or null
|
|
468
|
+
* if not found). Mirrors node-shims.ts:__resolveImportsField.
|
|
469
|
+
*/
|
|
470
|
+
function resolveImportsField(
|
|
471
|
+
vfs: CredentialedVfs,
|
|
472
|
+
name: string,
|
|
473
|
+
fromDir: string,
|
|
474
|
+
sink?: PkgJsonSink,
|
|
475
|
+
): string | null {
|
|
476
|
+
let dir = strip(fromDir);
|
|
477
|
+
while (true) {
|
|
478
|
+
const pkgJsonPath = (dir ? dir + '/' : '') + 'package.json';
|
|
479
|
+
if (vfs.exists(pkgJsonPath) && !vfs.isDirectory(pkgJsonPath)) {
|
|
480
|
+
let pkg: any = null;
|
|
481
|
+
try { pkg = JSON.parse(vfs.readFileString(pkgJsonPath)); } catch { /* malformed */ }
|
|
482
|
+
// First package.json wins (Node spec), even if no imports field.
|
|
483
|
+
if (pkg && pkg.imports) {
|
|
484
|
+
const target = sharedResolveExports(pkg.imports, name, DEFAULT_CJS_CONDITIONS);
|
|
485
|
+
if (target && typeof target === 'string') {
|
|
486
|
+
// imports targets are relative to the package root (`dir`).
|
|
487
|
+
if (target.startsWith('./')) {
|
|
488
|
+
const base = (dir ? dir + '/' : '') + target.slice(2);
|
|
489
|
+
return resolveFile(vfs, normalizePath(base), sink);
|
|
490
|
+
}
|
|
491
|
+
if (target.startsWith('/')) {
|
|
492
|
+
return resolveFile(vfs, strip(target), sink);
|
|
493
|
+
}
|
|
494
|
+
// Bare specifier — re-resolve as a node_module from `dir`.
|
|
495
|
+
const r = resolveNodeModuleEx(vfs, target, dir, sink);
|
|
496
|
+
return r ? r.resolved : null;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
return null;
|
|
500
|
+
}
|
|
501
|
+
if (!dir) return null;
|
|
502
|
+
const lastSlash = dir.lastIndexOf('/');
|
|
503
|
+
dir = lastSlash > 0 ? dir.substring(0, lastSlash) : '';
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
/**
|
|
508
|
+
* Result of a prefetch walk: path → content for every reachable file.
|
|
509
|
+
*
|
|
510
|
+
* The walk is deliberately unbounded. A facet has no synchronous I/O
|
|
511
|
+
* primitive, so `require()` cannot fetch a file it was not shipped — a
|
|
512
|
+
* budget applied here is not backpressure, it is an unrecoverable hole
|
|
513
|
+
* in the module graph. Bounds belong to the optional enrichment passes
|
|
514
|
+
* in facet-manager.ts, which have a live async read path behind them.
|
|
515
|
+
*/
|
|
516
|
+
export interface PrefetchResult {
|
|
517
|
+
bundle: Record<string, string>;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
/** Resolve the complete dependency graph starting from entry code. */
|
|
521
|
+
export function prefetchForRequire(
|
|
522
|
+
vfs: CredentialedVfs,
|
|
523
|
+
entryCode: string,
|
|
524
|
+
cwd: string,
|
|
525
|
+
entryFile?: string,
|
|
526
|
+
): PrefetchResult {
|
|
527
|
+
const bundle: Record<string, string> = {};
|
|
528
|
+
const visited = new Set<string>();
|
|
529
|
+
|
|
530
|
+
function addFile(vfsPath: string): void {
|
|
531
|
+
if (visited.has(vfsPath)) return;
|
|
532
|
+
visited.add(vfsPath);
|
|
533
|
+
let content: string;
|
|
534
|
+
try { content = vfs.readFileString(vfsPath); }
|
|
535
|
+
catch { return; }
|
|
536
|
+
bundle[vfsPath] = content;
|
|
537
|
+
|
|
538
|
+
// Also add the package.json for the enclosing node_modules package
|
|
539
|
+
// so the runtime resolver can read the same exports/main field we
|
|
540
|
+
// walked here.
|
|
541
|
+
if (vfsPath.includes('node_modules/')) {
|
|
542
|
+
const parts = vfsPath.split('/');
|
|
543
|
+
const nmIdx = parts.lastIndexOf('node_modules');
|
|
544
|
+
if (nmIdx >= 0) {
|
|
545
|
+
const pkgEnd = parts[nmIdx + 1]?.startsWith('@') ? nmIdx + 3 : nmIdx + 2;
|
|
546
|
+
const pkgJsonPath = parts.slice(0, pkgEnd).join('/') + '/package.json';
|
|
547
|
+
if (!visited.has(pkgJsonPath) && vfs.exists(pkgJsonPath)) {
|
|
548
|
+
visited.add(pkgJsonPath);
|
|
549
|
+
try {
|
|
550
|
+
const pkgContent = vfs.readFileString(pkgJsonPath);
|
|
551
|
+
bundle[pkgJsonPath] = pkgContent;
|
|
552
|
+
} catch { /* ignore */ }
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
// Bug class C (audit 2026-05-11): ship every ancestor package.json
|
|
557
|
+
// up to a node_modules boundary so the runtime __resolveFile pkg.main
|
|
558
|
+
// branch can read them. For a path like mod/lib/api.js (resolved
|
|
559
|
+
// via mod/package.json#main='lib/api.js'), the runtime resolver
|
|
560
|
+
// needs mod/package.json in the bundle even though api.js lives
|
|
561
|
+
// one level deeper. Walking up covers nested-main cases.
|
|
562
|
+
//
|
|
563
|
+
// Bound: stops at node_modules boundary (existing block above
|
|
564
|
+
// handles that case) or when we run out of parent dirs. Each step
|
|
565
|
+
// costs one vfs.exists() — typical project depth is 3-5 dirs.
|
|
566
|
+
if (!vfsPath.includes('node_modules/')) {
|
|
567
|
+
let dir = vfsPath;
|
|
568
|
+
while (true) {
|
|
569
|
+
const sl = dir.lastIndexOf('/');
|
|
570
|
+
if (sl <= 0) break;
|
|
571
|
+
dir = dir.substring(0, sl);
|
|
572
|
+
const dirPkgJson = dir + '/package.json';
|
|
573
|
+
if (visited.has(dirPkgJson)) break; // already shipped, stop walking
|
|
574
|
+
if (vfs.exists(dirPkgJson) && !vfs.isDirectory(dirPkgJson)) {
|
|
575
|
+
visited.add(dirPkgJson);
|
|
576
|
+
try {
|
|
577
|
+
const pkgContent = vfs.readFileString(dirPkgJson);
|
|
578
|
+
bundle[dirPkgJson] = pkgContent;
|
|
579
|
+
} catch { /* ignore */ }
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
// Recursively resolve require() calls in this file. Bin scripts and
|
|
585
|
+
// shims are commonly extensionless (e.g. node_modules/<pkg>/bin/<cli>
|
|
586
|
+
// with a `#!/usr/bin/env node` shebang), so an extension allowlist
|
|
587
|
+
// would drop their require chain. Treat .json as data (no requires);
|
|
588
|
+
// walk everything else as CJS/ESM.
|
|
589
|
+
if (!vfsPath.endsWith('.json')) {
|
|
590
|
+
const fromDir = vfsPath.includes('/') ? vfsPath.substring(0, vfsPath.lastIndexOf('/')) : '.';
|
|
591
|
+
parseAndResolve(content, fromDir);
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
function parseAndResolve(code: string, fromDir: string): void {
|
|
596
|
+
// esbuild-ast-rewrite (P3 decision: Option D): strip `//` and
|
|
597
|
+
// `/* */` comments before running IMPORT_RE / REQUIRE_RE so the
|
|
598
|
+
// regexes don't break on embedded comments. Real-world bite:
|
|
599
|
+
// chalk's `import { // eslint-disable-line\n a, b\n} from
|
|
600
|
+
// './utilities.js';` (lines 3-6 of chalk@5.x source/index.js)
|
|
601
|
+
// and its multi-line `export { ... // TODO ... } from
|
|
602
|
+
// './vendor/ansi-styles/index.js';` (lines 196-209) both fail
|
|
603
|
+
// IMPORT_RE's lazy character class because comment characters
|
|
604
|
+
// are not in `[\w*${}\s,]*?`. Stripping comments to whitespace
|
|
605
|
+
// (newline-preserved) makes the rest of the regex match
|
|
606
|
+
// correctly.
|
|
607
|
+
//
|
|
608
|
+
// Why Option D (regex + comment-strip) over Option A (full
|
|
609
|
+
// structured AST extraction via esbuild metafile):
|
|
610
|
+
// - Empirical 100-file session bootstrap with AST: ~553 ms
|
|
611
|
+
// esbuild-ast-rewrite/measure-result.txt). Over the 500 ms
|
|
612
|
+
// decision gate, and that's local Node — workerd-wasm cost
|
|
613
|
+
// is 2-3× higher.
|
|
614
|
+
// - Regex (this preprocessor) per file: ~0.1 ms
|
|
615
|
+
// - Correctness gap closed: chalk's bug case now matches both
|
|
616
|
+
// specifiers AST found but regex missed.
|
|
617
|
+
// See `comment-strip.ts` header + the wave's verdict.md.
|
|
618
|
+
const stripped = stripCommentsForImports(code);
|
|
619
|
+
|
|
620
|
+
REQUIRE_RE.lastIndex = 0;
|
|
621
|
+
let match;
|
|
622
|
+
while ((match = REQUIRE_RE.exec(stripped)) !== null) {
|
|
623
|
+
const specifier = match[2];
|
|
624
|
+
if (isFacetProvided(specifier)) continue;
|
|
625
|
+
const r = resolveRequireEx(vfs, specifier, fromDir, addPkgJson);
|
|
626
|
+
if (r) {
|
|
627
|
+
addFile(r.resolved);
|
|
628
|
+
if (r.stub) addStub(r.stub.path, r.stub.content);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
// X.5-C Fix #1: also follow ESM `import`/`export … from` statements.
|
|
632
|
+
// Without this, packages whose `module` entry is ESM (react-remove-
|
|
633
|
+
// scroll, pathe, ESM nuxt deps, etc.) have their entry file in the
|
|
634
|
+
// bundle but none of the relative `import './x'` siblings — at
|
|
635
|
+
// runtime W3.5 Fix B's CJS rewrite calls require('./x') which then
|
|
636
|
+
// fails because `x` was never added.
|
|
637
|
+
IMPORT_RE.lastIndex = 0;
|
|
638
|
+
while ((match = IMPORT_RE.exec(stripped)) !== null) {
|
|
639
|
+
const specifier = match[2];
|
|
640
|
+
if (isFacetProvided(specifier)) continue;
|
|
641
|
+
const r = resolveRequireEx(vfs, specifier, fromDir, addPkgJson);
|
|
642
|
+
if (r) {
|
|
643
|
+
addFile(r.resolved);
|
|
644
|
+
if (r.stub) addStub(r.stub.path, r.stub.content);
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
// Follow static-string dynamic imports so a CLI entry that defers to
|
|
648
|
+
// import('./dist/index.js') has that subtree's content prefetched.
|
|
649
|
+
DYNIMPORT_RE.lastIndex = 0;
|
|
650
|
+
while ((match = DYNIMPORT_RE.exec(stripped)) !== null) {
|
|
651
|
+
const specifier = match[2];
|
|
652
|
+
if (isFacetProvided(specifier)) continue;
|
|
653
|
+
const r = resolveRequireEx(vfs, specifier, fromDir, addPkgJson);
|
|
654
|
+
if (r) {
|
|
655
|
+
addFile(r.resolved);
|
|
656
|
+
if (r.stub) addStub(r.stub.path, r.stub.content);
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* X.5-L: inject a synthetic stub into the bundle. Stubs are
|
|
663
|
+
* produced by resolvePkgSubpathEx's legacy-directory branch — they
|
|
664
|
+
* sit at the path the runtime resolver probes for (e.g.
|
|
665
|
+
* `<pkgDir>/<subpath>.js`) and re-export the real resolved file.
|
|
666
|
+
*
|
|
667
|
+
* We deliberately skip the recursion + package.json piggyback that
|
|
668
|
+
* `addFile` does: stubs are leaf one-liners with a single
|
|
669
|
+
* relative require, and the *real* target is added separately by
|
|
670
|
+
* `addFile(resolved)` with normal recursion.
|
|
671
|
+
*/
|
|
672
|
+
function addStub(stubPath: string, content: string): void {
|
|
673
|
+
if (visited.has(stubPath)) return;
|
|
674
|
+
// Don't shadow a real on-disk file: if VFS already has something
|
|
675
|
+
// at this path, skip the stub. (Defence-in-depth — should never
|
|
676
|
+
// happen because the legacy-directory branch only fires when all
|
|
677
|
+
// extension probes missed.)
|
|
678
|
+
if (vfs.exists(stubPath) && !vfs.isDirectory(stubPath)) return;
|
|
679
|
+
visited.add(stubPath);
|
|
680
|
+
bundle[stubPath] = content;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
/**
|
|
684
|
+
* Sink for intermediate package.json files consulted during
|
|
685
|
+
* LOAD_AS_DIRECTORY resolution (see PkgJsonSink). Adds the content
|
|
686
|
+
* verbatim — package.json carries no requires, so no recursion and no
|
|
687
|
+
* enclosing-package piggyback is needed.
|
|
688
|
+
*/
|
|
689
|
+
function addPkgJson(pkgJsonPath: string): void {
|
|
690
|
+
const k = strip(pkgJsonPath);
|
|
691
|
+
if (visited.has(k) || k in bundle) return;
|
|
692
|
+
let content: string;
|
|
693
|
+
try { content = vfs.readFileString(k); } catch { return; }
|
|
694
|
+
visited.add(k);
|
|
695
|
+
bundle[k] = content;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
// Start from entry code.
|
|
699
|
+
//
|
|
700
|
+
// Primitive #1 (runtime primitive support): the relative-require
|
|
701
|
+
// resolution base is the ENTRY FILE's directory when the caller
|
|
702
|
+
// supplied one (bin shims under node_modules/.bin/, npx-launched
|
|
703
|
+
// scripts, etc.), NOT cwd. Pre-fix, `require('../lib/tsc.js')` from
|
|
704
|
+
// `node_modules/typescript/bin/tsc` resolved against the user's
|
|
705
|
+
// cwd, finding `<cwd>/../lib/tsc.js` which doesn't exist.
|
|
706
|
+
//
|
|
707
|
+
// Falling back to cwd preserves the legacy behaviour for naked
|
|
708
|
+
// entryCode (no file context) — covers the `node -e '<code>'`
|
|
709
|
+
// path where opts.filename is '<eval>'.
|
|
710
|
+
const cwdStripped = strip(cwd);
|
|
711
|
+
let entryFromDir = cwdStripped;
|
|
712
|
+
if (entryFile) {
|
|
713
|
+
const stripped = strip(entryFile);
|
|
714
|
+
const slash = stripped.lastIndexOf('/');
|
|
715
|
+
if (slash > 0) entryFromDir = stripped.substring(0, slash);
|
|
716
|
+
}
|
|
717
|
+
parseAndResolve(entryCode, entryFromDir);
|
|
718
|
+
|
|
719
|
+
// If there's an entry file, add it (and recurse)
|
|
720
|
+
if (entryFile) {
|
|
721
|
+
const stripped = strip(entryFile);
|
|
722
|
+
addFile(stripped);
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
// Also add cwd package.json if it exists (for npm scripts, main field etc)
|
|
726
|
+
const cwdPkg = cwdStripped + '/package.json';
|
|
727
|
+
if (vfs.exists(cwdPkg) && !visited.has(cwdPkg)) {
|
|
728
|
+
try {
|
|
729
|
+
const c = vfs.readFileString(cwdPkg);
|
|
730
|
+
bundle[cwdPkg] = c;
|
|
731
|
+
visited.add(cwdPkg);
|
|
732
|
+
} catch { /* ignore */ }
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
return { bundle };
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
const BUILTINS = new Set([
|
|
739
|
+
'fs', 'path', 'os', 'events', 'stream', 'buffer', 'util', 'url', 'crypto',
|
|
740
|
+
'assert', 'querystring', 'string_decoder', 'child_process', 'process',
|
|
741
|
+
'console', 'http', 'https', 'http2', 'net', 'dns', 'tls', 'tty',
|
|
742
|
+
'module', 'timers', 'zlib', 'readline', 'perf_hooks', 'worker_threads',
|
|
743
|
+
'vm', 'v8', 'inspector', 'cluster', 'domain', 'punycode', 'wasi',
|
|
744
|
+
'trace_events', 'dgram', 'sqlite', 'repl',
|
|
745
|
+
]);
|
|
746
|
+
|
|
747
|
+
/**
|
|
748
|
+
* Specifiers the walker must not follow: the facet resolves them from its own
|
|
749
|
+
* `builtins` table, never from the bundle. That is node core plus the npm
|
|
750
|
+
* packages the facet provides itself — walking those would spend the bundle's
|
|
751
|
+
* file and byte budget shipping sources that `require()` can never reach.
|
|
752
|
+
*/
|
|
753
|
+
function isFacetProvided(id: string): boolean {
|
|
754
|
+
if (id.startsWith('node:')) return true;
|
|
755
|
+
return BUILTINS.has(id) || FACET_PROVIDED_PACKAGES.includes(id);
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
// Note: the shared resolver helpers are imported directly from
|
|
759
|
+
// src/_shared/exports-resolver.js by every caller (W2.6a D6 — single
|
|
760
|
+
// source of truth). No re-export needed here.
|