@nimbus-sh/worker 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/README.md +219 -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 +146 -0
- package/dist/_shared/cache-stats.d.ts.map +1 -0
- package/dist/_shared/cache-stats.js +162 -0
- package/dist/_shared/exports-resolver.d.ts +76 -0
- package/dist/_shared/exports-resolver.d.ts.map +1 -0
- package/dist/_shared/exports-resolver.js +284 -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/real-node-imports.d.ts +38 -0
- package/dist/_shared/real-node-imports.d.ts.map +1 -0
- package/dist/_shared/real-node-imports.js +46 -0
- package/dist/_shared/retry.d.ts +93 -0
- package/dist/_shared/retry.d.ts.map +1 -0
- package/dist/_shared/retry.js +161 -0
- package/dist/_shared/session-id.d.ts +39 -0
- package/dist/_shared/session-id.d.ts.map +1 -0
- package/dist/_shared/session-id.js +127 -0
- package/dist/_shared/session-router.d.ts +104 -0
- package/dist/_shared/session-router.d.ts.map +1 -0
- package/dist/_shared/session-router.js +165 -0
- package/dist/_shared/w7-frame.d.ts +93 -0
- package/dist/_shared/w7-frame.d.ts.map +1 -0
- package/dist/_shared/w7-frame.js +402 -0
- package/dist/auth/index.d.ts +16 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +15 -0
- package/dist/auth/middleware.d.ts +85 -0
- package/dist/auth/middleware.d.ts.map +1 -0
- package/dist/auth/middleware.js +150 -0
- package/dist/auth/token.d.ts +96 -0
- package/dist/auth/token.d.ts.map +1 -0
- package/dist/auth/token.js +226 -0
- package/dist/auth/types.d.ts +141 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +114 -0
- package/dist/bindings/d1.d.ts +102 -0
- package/dist/bindings/d1.d.ts.map +1 -0
- package/dist/bindings/d1.js +549 -0
- package/dist/bindings/kv.d.ts +82 -0
- package/dist/bindings/kv.d.ts.map +1 -0
- package/dist/bindings/kv.js +290 -0
- package/dist/bindings/r2.d.ts +137 -0
- package/dist/bindings/r2.d.ts.map +1 -0
- package/dist/bindings/r2.js +379 -0
- package/dist/cirrus-npm-cjs.generated.d.ts +17 -0
- package/dist/cirrus-npm-cjs.generated.d.ts.map +1 -0
- package/dist/cirrus-npm-cjs.generated.js +41 -0
- package/dist/cirrus-plugin-react.generated.d.ts +34 -0
- package/dist/cirrus-plugin-react.generated.d.ts.map +1 -0
- package/dist/cirrus-plugin-react.generated.js +33 -0
- package/dist/constants.d.ts +34 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +116 -0
- package/dist/esbuild-wasm-bundle.generated.d.ts +41 -0
- package/dist/esbuild-wasm-bundle.generated.d.ts.map +1 -0
- package/dist/esbuild-wasm-bundle.generated.js +40 -0
- package/dist/facets/cirrus-real.d.ts +147 -0
- package/dist/facets/cirrus-real.d.ts.map +1 -0
- package/dist/facets/cirrus-real.js +981 -0
- package/dist/facets/inner-do-registry.d.ts +41 -0
- package/dist/facets/inner-do-registry.d.ts.map +1 -0
- package/dist/facets/inner-do-registry.js +51 -0
- package/dist/facets/manager.d.ts +314 -0
- package/dist/facets/manager.d.ts.map +1 -0
- package/dist/facets/manager.js +2681 -0
- package/dist/facets/process.d.ts +318 -0
- package/dist/facets/process.d.ts.map +1 -0
- package/dist/facets/process.js +567 -0
- package/dist/facets/real-vite-fs-shim.d.ts +151 -0
- package/dist/facets/real-vite-fs-shim.d.ts.map +1 -0
- package/dist/facets/real-vite-fs-shim.js +1279 -0
- package/dist/facets/real-vite-hmr.d.ts +142 -0
- package/dist/facets/real-vite-hmr.d.ts.map +1 -0
- package/dist/facets/real-vite-hmr.js +476 -0
- package/dist/facets/vite-dev-server.d.ts +293 -0
- package/dist/facets/vite-dev-server.d.ts.map +1 -0
- package/dist/facets/vite-dev-server.js +2580 -0
- package/dist/facets/wasm-swap-registry.d.ts +261 -0
- package/dist/facets/wasm-swap-registry.d.ts.map +1 -0
- package/dist/facets/wasm-swap-registry.js +551 -0
- package/dist/facets/ws-terminal.d.ts +107 -0
- package/dist/facets/ws-terminal.d.ts.map +1 -0
- package/dist/facets/ws-terminal.js +207 -0
- package/dist/git/commands.d.ts +13 -0
- package/dist/git/commands.d.ts.map +1 -0
- package/dist/git/commands.js +633 -0
- package/dist/git/network-facet.d.ts +61 -0
- package/dist/git/network-facet.d.ts.map +1 -0
- package/dist/git/network-facet.js +700 -0
- package/dist/git-bundle.generated.d.ts +16 -0
- package/dist/git-bundle.generated.d.ts.map +1 -0
- package/dist/git-bundle.generated.js +15 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/loaders/child-process/spawn-facet.d.ts +90 -0
- package/dist/loaders/child-process/spawn-facet.d.ts.map +1 -0
- package/dist/loaders/child-process/spawn-facet.js +103 -0
- package/dist/loaders/child-process/spawn-pool.d.ts +110 -0
- package/dist/loaders/child-process/spawn-pool.d.ts.map +1 -0
- package/dist/loaders/child-process/spawn-pool.js +161 -0
- package/dist/loaders/fanout-pool.d.ts +195 -0
- package/dist/loaders/fanout-pool.d.ts.map +1 -0
- package/dist/loaders/fanout-pool.js +326 -0
- package/dist/loaders/generated-workers.d.ts +26 -0
- package/dist/loaders/generated-workers.d.ts.map +1 -0
- package/dist/loaders/generated-workers.js +25 -0
- package/dist/loaders/index.d.ts +15 -0
- package/dist/loaders/index.d.ts.map +1 -0
- package/dist/loaders/index.js +13 -0
- package/dist/loaders/loader-pool.d.ts +273 -0
- package/dist/loaders/loader-pool.d.ts.map +1 -0
- package/dist/loaders/loader-pool.js +624 -0
- package/dist/loaders/npm-resolve-preamble.d.ts +34 -0
- package/dist/loaders/npm-resolve-preamble.d.ts.map +1 -0
- package/dist/loaders/npm-resolve-preamble.js +237 -0
- package/dist/loaders/pre-bundle-preamble.d.ts +41 -0
- package/dist/loaders/pre-bundle-preamble.d.ts.map +1 -0
- package/dist/loaders/pre-bundle-preamble.js +114 -0
- package/dist/loaders/vendor/codegen.d.ts +24 -0
- package/dist/loaders/vendor/codegen.d.ts.map +1 -0
- package/dist/loaders/vendor/codegen.js +44 -0
- package/dist/loaders/vendor/errors.d.ts +24 -0
- package/dist/loaders/vendor/errors.d.ts.map +1 -0
- package/dist/loaders/vendor/errors.js +46 -0
- package/dist/loaders/vendor/index.d.ts +16 -0
- package/dist/loaders/vendor/index.d.ts.map +1 -0
- package/dist/loaders/vendor/index.js +11 -0
- package/dist/loaders/vendor/pool.d.ts +88 -0
- package/dist/loaders/vendor/pool.d.ts.map +1 -0
- package/dist/loaders/vendor/pool.js +353 -0
- package/dist/loaders/vendor/primitives.d.ts +11 -0
- package/dist/loaders/vendor/primitives.d.ts.map +1 -0
- package/dist/loaders/vendor/primitives.js +33 -0
- package/dist/loaders/vendor/serialize.d.ts +3 -0
- package/dist/loaders/vendor/serialize.d.ts.map +1 -0
- package/dist/loaders/vendor/serialize.js +25 -0
- package/dist/loaders/vendor/types.d.ts +60 -0
- package/dist/loaders/vendor/types.d.ts.map +1 -0
- package/dist/loaders/vendor/types.js +4 -0
- package/dist/npm/cache.d.ts +136 -0
- package/dist/npm/cache.d.ts.map +1 -0
- package/dist/npm/cache.js +429 -0
- package/dist/npm/install-batch-facet.d.ts +129 -0
- package/dist/npm/install-batch-facet.d.ts.map +1 -0
- package/dist/npm/install-batch-facet.js +598 -0
- package/dist/npm/install-facet.d.ts +29 -0
- package/dist/npm/install-facet.d.ts.map +1 -0
- package/dist/npm/install-facet.js +9 -0
- package/dist/npm/installer.d.ts +239 -0
- package/dist/npm/installer.d.ts.map +1 -0
- package/dist/npm/installer.js +2022 -0
- package/dist/npm/npx-install.d.ts +74 -0
- package/dist/npm/npx-install.d.ts.map +1 -0
- package/dist/npm/npx-install.js +302 -0
- package/dist/npm/pre-bundle-facet.d.ts +168 -0
- package/dist/npm/pre-bundle-facet.d.ts.map +1 -0
- package/dist/npm/pre-bundle-facet.js +653 -0
- package/dist/npm/r2-cache.d.ts +286 -0
- package/dist/npm/r2-cache.d.ts.map +1 -0
- package/dist/npm/r2-cache.js +506 -0
- package/dist/npm/resolve-facet.d.ts +202 -0
- package/dist/npm/resolve-facet.d.ts.map +1 -0
- package/dist/npm/resolve-facet.js +833 -0
- package/dist/npm/resolve-one-facet.d.ts +204 -0
- package/dist/npm/resolve-one-facet.d.ts.map +1 -0
- package/dist/npm/resolve-one-facet.js +437 -0
- package/dist/npm/resolver.d.ts +109 -0
- package/dist/npm/resolver.d.ts.map +1 -0
- package/dist/npm/resolver.js +899 -0
- package/dist/npm/tarball-stream.d.ts +85 -0
- package/dist/npm/tarball-stream.d.ts.map +1 -0
- package/dist/npm/tarball-stream.js +205 -0
- package/dist/npm/tarball.d.ts +51 -0
- package/dist/npm/tarball.d.ts.map +1 -0
- package/dist/npm/tarball.js +185 -0
- package/dist/observability/diag-counters.d.ts +292 -0
- package/dist/observability/diag-counters.d.ts.map +1 -0
- package/dist/observability/diag-counters.js +302 -0
- package/dist/observability/heap-estimate.d.ts +166 -0
- package/dist/observability/heap-estimate.d.ts.map +1 -0
- package/dist/observability/heap-estimate.js +192 -0
- package/dist/observability/heavy-alloc-coord.d.ts +95 -0
- package/dist/observability/heavy-alloc-coord.d.ts.map +1 -0
- package/dist/observability/heavy-alloc-coord.js +149 -0
- package/dist/observability/oom-classify.d.ts +56 -0
- package/dist/observability/oom-classify.d.ts.map +1 -0
- package/dist/observability/oom-classify.js +118 -0
- package/dist/observability/oom-discriminator.d.ts +192 -0
- package/dist/observability/oom-discriminator.d.ts.map +1 -0
- package/dist/observability/oom-discriminator.js +233 -0
- package/dist/real-vite-bundle.generated.d.ts +46 -0
- package/dist/real-vite-bundle.generated.d.ts.map +1 -0
- package/dist/real-vite-bundle.generated.js +53 -0
- package/dist/replica/routing.d.ts +171 -0
- package/dist/replica/routing.d.ts.map +1 -0
- package/dist/replica/routing.js +288 -0
- package/dist/replica/suspension.d.ts +36 -0
- package/dist/replica/suspension.d.ts.map +1 -0
- package/dist/replica/suspension.js +49 -0
- package/dist/router/index.d.ts +156 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +220 -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 +128 -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/barrel-synthesizer.d.ts +181 -0
- package/dist/runtime/barrel-synthesizer.d.ts.map +1 -0
- package/dist/runtime/barrel-synthesizer.js +541 -0
- package/dist/runtime/bun-repl.d.ts +46 -0
- package/dist/runtime/bun-repl.d.ts.map +1 -0
- package/dist/runtime/bun-repl.js +326 -0
- package/dist/runtime/bun-runner.d.ts +66 -0
- package/dist/runtime/bun-runner.d.ts.map +1 -0
- package/dist/runtime/bun-runner.js +219 -0
- package/dist/runtime/clang-runner.d.ts +38 -0
- package/dist/runtime/clang-runner.d.ts.map +1 -0
- package/dist/runtime/clang-runner.js +1033 -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/esbuild-service.d.ts +201 -0
- package/dist/runtime/esbuild-service.d.ts.map +1 -0
- package/dist/runtime/esbuild-service.js +1444 -0
- package/dist/runtime/esbuild-wasm-bytes.d.ts +87 -0
- package/dist/runtime/esbuild-wasm-bytes.d.ts.map +1 -0
- package/dist/runtime/esbuild-wasm-bytes.js +131 -0
- package/dist/runtime/framework-detect.d.ts +71 -0
- package/dist/runtime/framework-detect.d.ts.map +1 -0
- package/dist/runtime/framework-detect.js +178 -0
- package/dist/runtime/long-running-handle.d.ts +133 -0
- package/dist/runtime/long-running-handle.d.ts.map +1 -0
- package/dist/runtime/long-running-handle.js +192 -0
- package/dist/runtime/node-repl.d.ts +36 -0
- package/dist/runtime/node-repl.d.ts.map +1 -0
- package/dist/runtime/node-repl.js +293 -0
- package/dist/runtime/node-runner.d.ts +111 -0
- package/dist/runtime/node-runner.d.ts.map +1 -0
- package/dist/runtime/node-runner.js +194 -0
- package/dist/runtime/node-shims.d.ts +24 -0
- package/dist/runtime/node-shims.d.ts.map +1 -0
- package/dist/runtime/node-shims.js +3019 -0
- package/dist/runtime/package-manager.d.ts +118 -0
- package/dist/runtime/package-manager.d.ts.map +1 -0
- package/dist/runtime/package-manager.js +420 -0
- package/dist/runtime/port-registry.d.ts +80 -0
- package/dist/runtime/port-registry.d.ts.map +1 -0
- package/dist/runtime/port-registry.js +166 -0
- package/dist/runtime/process-logs-api.d.ts +102 -0
- package/dist/runtime/process-logs-api.d.ts.map +1 -0
- package/dist/runtime/process-logs-api.js +253 -0
- package/dist/runtime/process-logs.d.ts +311 -0
- package/dist/runtime/process-logs.d.ts.map +1 -0
- package/dist/runtime/process-logs.js +656 -0
- package/dist/runtime/process-table.d.ts +65 -0
- package/dist/runtime/process-table.d.ts.map +1 -0
- package/dist/runtime/process-table.js +107 -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-repl.d.ts +66 -0
- package/dist/runtime/python-repl.d.ts.map +1 -0
- package/dist/runtime/python-repl.js +563 -0
- package/dist/runtime/python-runner.d.ts +50 -0
- package/dist/runtime/python-runner.d.ts.map +1 -0
- package/dist/runtime/python-runner.js +870 -0
- package/dist/runtime/repl-session.d.ts +160 -0
- package/dist/runtime/repl-session.d.ts.map +1 -0
- package/dist/runtime/repl-session.js +393 -0
- package/dist/runtime/require-resolver.d.ts +52 -0
- package/dist/runtime/require-resolver.d.ts.map +1 -0
- package/dist/runtime/require-resolver.js +690 -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-repl.d.ts +43 -0
- package/dist/runtime/ruby-repl.d.ts.map +1 -0
- package/dist/runtime/ruby-repl.js +229 -0
- package/dist/runtime/ruby-runner.d.ts +62 -0
- package/dist/runtime/ruby-runner.d.ts.map +1 -0
- package/dist/runtime/ruby-runner.js +737 -0
- package/dist/runtime/runtime-catalog.d.ts +99 -0
- package/dist/runtime/runtime-catalog.d.ts.map +1 -0
- package/dist/runtime/runtime-catalog.js +183 -0
- package/dist/runtime/runtime-registry.d.ts +136 -0
- package/dist/runtime/runtime-registry.d.ts.map +1 -0
- package/dist/runtime/runtime-registry.js +318 -0
- package/dist/runtime/streams.d.ts +13 -0
- package/dist/runtime/streams.d.ts.map +1 -0
- package/dist/runtime/streams.js +402 -0
- package/dist/runtime/wasi-instance.d.ts +190 -0
- package/dist/runtime/wasi-instance.d.ts.map +1 -0
- package/dist/runtime/wasi-instance.js +2044 -0
- package/dist/runtime/wasm-runner.d.ts +117 -0
- package/dist/runtime/wasm-runner.d.ts.map +1 -0
- package/dist/runtime/wasm-runner.js +705 -0
- package/dist/session/bindings.d.ts +168 -0
- package/dist/session/bindings.d.ts.map +1 -0
- package/dist/session/bindings.js +524 -0
- package/dist/session/ctx-exports.d.ts +16 -0
- package/dist/session/ctx-exports.d.ts.map +1 -0
- package/dist/session/ctx-exports.js +22 -0
- package/dist/session/diag.d.ts +62 -0
- package/dist/session/diag.d.ts.map +1 -0
- package/dist/session/diag.js +118 -0
- package/dist/session/fs-watch.d.ts +132 -0
- package/dist/session/fs-watch.d.ts.map +1 -0
- package/dist/session/fs-watch.js +255 -0
- package/dist/session/helpers.d.ts +150 -0
- package/dist/session/helpers.d.ts.map +1 -0
- package/dist/session/helpers.js +472 -0
- package/dist/session/hibernation.d.ts +145 -0
- package/dist/session/hibernation.d.ts.map +1 -0
- package/dist/session/hibernation.js +385 -0
- package/dist/session/init-phases.d.ts +87 -0
- package/dist/session/init-phases.d.ts.map +1 -0
- package/dist/session/init-phases.js +137 -0
- package/dist/session/init.d.ts +46 -0
- package/dist/session/init.d.ts.map +1 -0
- package/dist/session/init.js +3579 -0
- package/dist/session/keys.d.ts +56 -0
- package/dist/session/keys.d.ts.map +1 -0
- package/dist/session/keys.js +55 -0
- package/dist/session/nimbus-session.d.ts +434 -0
- package/dist/session/nimbus-session.d.ts.map +1 -0
- package/dist/session/nimbus-session.js +1084 -0
- package/dist/session/programmatic.d.ts +105 -0
- package/dist/session/programmatic.d.ts.map +1 -0
- package/dist/session/programmatic.js +326 -0
- package/dist/session/replica-routes.d.ts +68 -0
- package/dist/session/replica-routes.d.ts.map +1 -0
- package/dist/session/replica-routes.js +77 -0
- package/dist/session/routes.d.ts +29 -0
- package/dist/session/routes.d.ts.map +1 -0
- package/dist/session/routes.js +1331 -0
- package/dist/session/rpc.d.ts +323 -0
- package/dist/session/rpc.d.ts.map +1 -0
- package/dist/session/rpc.js +808 -0
- package/dist/session/state-store.d.ts +210 -0
- package/dist/session/state-store.d.ts.map +1 -0
- package/dist/session/state-store.js +459 -0
- package/dist/session/supervisor-rpc.d.ts +269 -0
- package/dist/session/supervisor-rpc.d.ts.map +1 -0
- package/dist/session/supervisor-rpc.js +437 -0
- package/dist/session/ws-hibernation-config.d.ts +64 -0
- package/dist/session/ws-hibernation-config.d.ts.map +1 -0
- package/dist/session/ws-hibernation-config.js +89 -0
- package/dist/session/ws.d.ts +95 -0
- package/dist/session/ws.d.ts.map +1 -0
- package/dist/session/ws.js +395 -0
- package/dist/shell/features.d.ts +410 -0
- package/dist/shell/features.d.ts.map +1 -0
- package/dist/shell/features.js +1885 -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 +3703 -0
- package/dist/stubs/lifo-ui.d.ts +10 -0
- package/dist/stubs/lifo-ui.d.ts.map +1 -0
- package/dist/stubs/lifo-ui.js +1 -0
- package/dist/tailwind-play.generated.d.ts +19 -0
- package/dist/tailwind-play.generated.d.ts.map +1 -0
- package/dist/tailwind-play.generated.js +18 -0
- package/dist/vfs/dev-provider.d.ts +64 -0
- package/dist/vfs/dev-provider.d.ts.map +1 -0
- package/dist/vfs/dev-provider.js +191 -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 +30 -0
- package/dist/vfs/path.d.ts.map +1 -0
- package/dist/vfs/path.js +41 -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 +1045 -0
- package/dist/vfs/sqlite-vfs.d.ts +435 -0
- package/dist/vfs/sqlite-vfs.d.ts.map +1 -0
- package/dist/vfs/sqlite-vfs.js +1670 -0
- package/dist/vfs/symlink-registry.d.ts +64 -0
- package/dist/vfs/symlink-registry.d.ts.map +1 -0
- package/dist/vfs/symlink-registry.js +137 -0
- package/dist/wrangler/nimbus-wrangler.d.ts +157 -0
- package/dist/wrangler/nimbus-wrangler.d.ts.map +1 -0
- package/dist/wrangler/nimbus-wrangler.js +931 -0
- package/package.json +77 -0
- package/public/_assets/cirrus-plugin-react.bundle.js +70740 -0
- package/public/_assets/esbuild-0.24.2.wasm +0 -0
- package/public/_assets/real-vite-bundle.js +101478 -0
- package/public/_assets/rollup.wasm +0 -0
- package/public/favicon.svg +8 -0
- package/public/index.html +565 -0
- package/public/s/index.html +2379 -0
- package/scripts/bundle-esbuild-wasm.mjs +244 -0
- package/scripts/bundle-facet-workers.mjs +137 -0
- package/scripts/bundle-git.mjs +118 -0
- package/scripts/bundle-npm-cjs.mjs +363 -0
- package/scripts/bundle-plugin-react.mjs +480 -0
- package/scripts/bundle-real-vite.mjs +959 -0
- package/scripts/bundle-runtime.mjs +600 -0
- package/scripts/bundle-tailwind-play.mjs +130 -0
- package/scripts/patch-lifo-ui.mjs +131 -0
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* runtime-registry.ts — shared shell-command factory for runtime
|
|
3
|
+
* dispatchers (node, bun, and future native-WASM / Python / Ruby /
|
|
4
|
+
* AssemblyScript runtimes).
|
|
5
|
+
*
|
|
6
|
+
* Why this exists
|
|
7
|
+
* ───────────────
|
|
8
|
+
* `node` and `bun` shell-command handlers in src/session/init.ts
|
|
9
|
+
* shared ~85% of their code: argv parsing for --version / --help /
|
|
10
|
+
* -e / script-path, VFS lookup, shebang strip, esbuild transform for
|
|
11
|
+
* .ts/.tsx/.jsx, dispatch to the runner. The duplication had drifted
|
|
12
|
+
* — only `node` had the primitive #1 nodeFlagSpan fix
|
|
13
|
+
* (init.ts:233-243), only `node` had primitive-#2 binSpawn ctx
|
|
14
|
+
* propagation (init.ts:391-403), only `bun` had install / run
|
|
15
|
+
* subcommand routing.
|
|
16
|
+
*
|
|
17
|
+
* `buildRuntimeHandler` returns a single shell-handler function that
|
|
18
|
+
* encodes the shared contract. Per-runtime variation is supplied
|
|
19
|
+
* via the `RuntimeSpec` parameter:
|
|
20
|
+
*
|
|
21
|
+
* - name + version + helpText
|
|
22
|
+
* - run(): runner fn (runNodeScript / runBunScript / wasm-runner)
|
|
23
|
+
* - subcommands: optional map of `<verb> → handler` for
|
|
24
|
+
* bun-style `bun install`, `bun run` (node has none today)
|
|
25
|
+
* - transform(): optional code rewriter (bun prepends BUN_SHIM_PREAMBLE)
|
|
26
|
+
* - supportsBinSpawn: true for node (the .bin handler propagates
|
|
27
|
+
* a callerPid); other runtimes use a plain spawn flow.
|
|
28
|
+
*
|
|
29
|
+
* Anti-requirements observed
|
|
30
|
+
* ──────────────────────────
|
|
31
|
+
* - NO setTimeout / NO retry / NO defensive-catch added.
|
|
32
|
+
* - NO behavioral change vs the pre-refactor handlers — every
|
|
33
|
+
* runtime-specific quirk is preserved exactly.
|
|
34
|
+
* - Per-runtime test parity: existing primitives-extension probes
|
|
35
|
+
* (#1 npx / #2 .bin) and runtime-pkg probes (G1-G4) MUST still
|
|
36
|
+
* pass against the refactored handlers — the contract is
|
|
37
|
+
* observable behaviour, not implementation shape.
|
|
38
|
+
*/
|
|
39
|
+
/**
|
|
40
|
+
* Build a shell-handler function for a runtime. The returned function
|
|
41
|
+
* is the value passed to `registry.register('<name>', handler)`.
|
|
42
|
+
*
|
|
43
|
+
* Captures `vfs`, `facetMgr`, `esbuild`, `getEsbuild` (for lazy init)
|
|
44
|
+
* + the spec. The same factory is used for every runtime; the only
|
|
45
|
+
* runtime-specific code lives in `spec`.
|
|
46
|
+
*/
|
|
47
|
+
export function buildRuntimeHandler(spec, ctx0) {
|
|
48
|
+
const { vfs, facetMgr, getEsbuild, registry } = ctx0;
|
|
49
|
+
return async function runtimeHandler(ctx) {
|
|
50
|
+
const args = ctx.args || [];
|
|
51
|
+
const name = spec.name;
|
|
52
|
+
// ── Subcommand dispatch ──
|
|
53
|
+
//
|
|
54
|
+
// BEFORE flag-span computation: subcommands like `bun install`
|
|
55
|
+
// have their first positional arg as the verb, NOT a node-style
|
|
56
|
+
// flag. Run the subcommand handler if matched.
|
|
57
|
+
if (spec.subcommands && args.length > 0 && spec.subcommands[args[0]]) {
|
|
58
|
+
return spec.subcommands[args[0]](ctx, registry);
|
|
59
|
+
}
|
|
60
|
+
// ── Flag-span computation (primitive #1) ──
|
|
61
|
+
//
|
|
62
|
+
// Real-Node only treats args UP TO the first non-flag token as
|
|
63
|
+
// CLI flags. Pre-refactor, version/help/eval scanned the entire
|
|
64
|
+
// args array, breaking `node /path/to/tsc --version` (the user's
|
|
65
|
+
// --version was misinterpreted as a node flag).
|
|
66
|
+
let flagSpan = 0;
|
|
67
|
+
while (flagSpan < args.length && args[flagSpan].startsWith('-')) {
|
|
68
|
+
flagSpan++;
|
|
69
|
+
const prev = args[flagSpan - 1];
|
|
70
|
+
// -e / --eval consumes one value; advance past it.
|
|
71
|
+
if ((prev === '-e' || prev === '--eval') && flagSpan < args.length) {
|
|
72
|
+
flagSpan++;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const flagSlice = args.slice(0, flagSpan);
|
|
76
|
+
// ── --version ──
|
|
77
|
+
if (flagSlice.includes('-v') || flagSlice.includes('--version')) {
|
|
78
|
+
ctx.stdout.write(spec.version + '\n');
|
|
79
|
+
return 0;
|
|
80
|
+
}
|
|
81
|
+
// ── --help ──
|
|
82
|
+
if (flagSlice.includes('--help') || flagSlice.includes('-h')) {
|
|
83
|
+
ctx.stdout.write(spec.helpText);
|
|
84
|
+
if (!spec.helpText.endsWith('\n'))
|
|
85
|
+
ctx.stdout.write('\n');
|
|
86
|
+
return 0;
|
|
87
|
+
}
|
|
88
|
+
// ── -e / --eval ──
|
|
89
|
+
const evalIdx = flagSlice.indexOf('-e') !== -1
|
|
90
|
+
? flagSlice.indexOf('-e')
|
|
91
|
+
: flagSlice.indexOf('--eval');
|
|
92
|
+
if (evalIdx !== -1) {
|
|
93
|
+
const code = args[evalIdx + 1];
|
|
94
|
+
if (!code) {
|
|
95
|
+
ctx.stderr.write(`${name}: -e requires an argument\n`);
|
|
96
|
+
return 1;
|
|
97
|
+
}
|
|
98
|
+
const transformed = spec.transformCode ? spec.transformCode(code, '<eval>') : code;
|
|
99
|
+
const result = await spec.run(facetMgr, transformed, {
|
|
100
|
+
argv: args.slice(evalIdx + 2),
|
|
101
|
+
env: ctx.env,
|
|
102
|
+
cwd: ctx.cwd,
|
|
103
|
+
filename: '<eval>',
|
|
104
|
+
dirname: ctx.cwd || '/home/user',
|
|
105
|
+
command: `${name} -e ...`,
|
|
106
|
+
});
|
|
107
|
+
if (result.stdout)
|
|
108
|
+
ctx.stdout.write(result.stdout);
|
|
109
|
+
if (result.stderr)
|
|
110
|
+
ctx.stderr.write(result.stderr);
|
|
111
|
+
return result.exitCode;
|
|
112
|
+
}
|
|
113
|
+
// ── script path (or .wasm path for bypassesScriptRead) ──
|
|
114
|
+
const scriptIdx = flagSpan;
|
|
115
|
+
const scriptPath = args[scriptIdx];
|
|
116
|
+
if (!scriptPath) {
|
|
117
|
+
ctx.stderr.write(`${name}: REPL not supported. Use ${name} -e "code" or ${name} script.${name === 'bun' ? 'js' : 'js'}\n`);
|
|
118
|
+
return 1;
|
|
119
|
+
}
|
|
120
|
+
// Resolve script path against cwd (unless absolute).
|
|
121
|
+
let resolvedPath = scriptPath;
|
|
122
|
+
if (!scriptPath.startsWith('/')) {
|
|
123
|
+
const c = (ctx.cwd || '/home/user').replace(/^\/+/, '');
|
|
124
|
+
resolvedPath = c + '/' + scriptPath;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
resolvedPath = scriptPath.replace(/^\/+/, '');
|
|
128
|
+
}
|
|
129
|
+
// `node .` / `bun .` — read package.json main field.
|
|
130
|
+
// Native-WASM runtimes skip this — `wasm-runner .` is meaningless.
|
|
131
|
+
if (!spec.bypassesScriptRead && (scriptPath === '.' || scriptPath === './')) {
|
|
132
|
+
const c = (ctx.cwd || '/home/user').replace(/^\/+/, '');
|
|
133
|
+
const pkgPath = c + '/package.json';
|
|
134
|
+
try {
|
|
135
|
+
const pkg = JSON.parse(vfs.readFileString(pkgPath));
|
|
136
|
+
// bun prefers .module over .main when both exist; node uses .main.
|
|
137
|
+
const main = (name === 'bun' && pkg.module) || pkg.main || 'index.js';
|
|
138
|
+
resolvedPath = c + '/' + main;
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
resolvedPath = c + '/index.js';
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// ── bypassesScriptRead branch (wasm-runner) ──
|
|
145
|
+
//
|
|
146
|
+
// The runner takes the path AS-IS (it's a .wasm, not JS source).
|
|
147
|
+
// We don't read or transform here; the runner reads the bytes
|
|
148
|
+
// and instantiates them.
|
|
149
|
+
if (spec.bypassesScriptRead) {
|
|
150
|
+
const filename = '/' + resolvedPath;
|
|
151
|
+
const dirname = filename.includes('/')
|
|
152
|
+
? filename.substring(0, filename.lastIndexOf('/'))
|
|
153
|
+
: '/';
|
|
154
|
+
// `args.slice(scriptIdx + 1)` are the runner's user args (e.g.
|
|
155
|
+
// [exportName, intArg1, intArg2, ...] for wasm-runner).
|
|
156
|
+
const result = await spec.run(facetMgr, '', {
|
|
157
|
+
argv: args.slice(scriptIdx + 1),
|
|
158
|
+
env: ctx.env,
|
|
159
|
+
cwd: ctx.cwd,
|
|
160
|
+
filename,
|
|
161
|
+
dirname,
|
|
162
|
+
command: `${name} ${args.slice(0, scriptIdx + 1).join(' ')}`,
|
|
163
|
+
});
|
|
164
|
+
if (result.stdout)
|
|
165
|
+
ctx.stdout.write(result.stdout);
|
|
166
|
+
if (result.stderr)
|
|
167
|
+
ctx.stderr.write(result.stderr);
|
|
168
|
+
return result.exitCode;
|
|
169
|
+
}
|
|
170
|
+
// Try common JS extensions if the file doesn't exist verbatim.
|
|
171
|
+
if (!vfs.exists(resolvedPath)) {
|
|
172
|
+
const exts = ['.js', '.ts', '.tsx', '.mjs', '.jsx', '/index.js', '/index.ts'];
|
|
173
|
+
for (const ext of exts) {
|
|
174
|
+
if (vfs.exists(resolvedPath + ext)) {
|
|
175
|
+
resolvedPath += ext;
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
let code;
|
|
181
|
+
try {
|
|
182
|
+
code = vfs.readFileString(resolvedPath);
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
ctx.stderr.write(`${name}: cannot find module '${scriptPath}'\n`);
|
|
186
|
+
return 1;
|
|
187
|
+
}
|
|
188
|
+
// Shebang strip (primitive #1).
|
|
189
|
+
if (code.startsWith('#!')) {
|
|
190
|
+
const nl = code.indexOf('\n');
|
|
191
|
+
code = nl >= 0 ? code.substring(nl + 1) : '';
|
|
192
|
+
}
|
|
193
|
+
// ── ESM-source detection (primitive: type:module entry scripts) ──
|
|
194
|
+
//
|
|
195
|
+
// Nimbus's facet pre-compile loop wraps every entry script in
|
|
196
|
+
// `new Function(...)` which runs it as CJS. A real `node script.js`
|
|
197
|
+
// dispatch honours the nearest package.json's `"type"` field
|
|
198
|
+
// (and the file extension) to decide whether to parse as ESM:
|
|
199
|
+
//
|
|
200
|
+
// - .mjs → always ESM
|
|
201
|
+
// - .cjs → always CJS
|
|
202
|
+
// - .js → ESM iff nearest package.json has "type": "module"
|
|
203
|
+
//
|
|
204
|
+
// Without this, every modern ESM-only npm initialiser
|
|
205
|
+
// (create-vite, create-astro, create-svelte, modern create-*)
|
|
206
|
+
// crashes immediately with "Cannot use import statement outside
|
|
207
|
+
// a module" because their bin entry is `index.js` and the
|
|
208
|
+
// package.json declares `type: module`.
|
|
209
|
+
//
|
|
210
|
+
// We transform to CJS (format: 'cjs') so the facet's `new
|
|
211
|
+
// Function()` runs it as a CJS module body — same path that the
|
|
212
|
+
// bundle's `transformEsmInBundle` (W3.5 Fix B) takes for
|
|
213
|
+
// sub-module ESM files. esbuild's CJS output emits __require /
|
|
214
|
+
// module.exports / exports.X so the facet's pre-compile loop
|
|
215
|
+
// sees ordinary CJS source.
|
|
216
|
+
function isEsmScript(absPath, src) {
|
|
217
|
+
if (absPath.endsWith('.mjs'))
|
|
218
|
+
return true;
|
|
219
|
+
if (absPath.endsWith('.cjs'))
|
|
220
|
+
return false;
|
|
221
|
+
if (!absPath.endsWith('.js'))
|
|
222
|
+
return false;
|
|
223
|
+
// Walk up dirs looking for the nearest package.json. First one
|
|
224
|
+
// wins (Node spec); we do NOT consult ancestors past it.
|
|
225
|
+
let dir = absPath.replace(/^\/+/, '');
|
|
226
|
+
const slash = dir.lastIndexOf('/');
|
|
227
|
+
dir = slash > 0 ? dir.substring(0, slash) : '';
|
|
228
|
+
const visited = new Set();
|
|
229
|
+
while (dir && !visited.has(dir)) {
|
|
230
|
+
visited.add(dir);
|
|
231
|
+
const pj = dir + '/package.json';
|
|
232
|
+
if (vfs.exists(pj)) {
|
|
233
|
+
try {
|
|
234
|
+
const pkg = JSON.parse(vfs.readFileString(pj));
|
|
235
|
+
return pkg && pkg.type === 'module';
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
const last = dir.lastIndexOf('/');
|
|
242
|
+
if (last <= 0)
|
|
243
|
+
break;
|
|
244
|
+
dir = dir.substring(0, last);
|
|
245
|
+
}
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
const needsEsmTransform = resolvedPath.endsWith('.mjs') ||
|
|
249
|
+
(resolvedPath.endsWith('.js') && isEsmScript(resolvedPath, code));
|
|
250
|
+
// esbuild transform for TypeScript / TSX / JSX (both node and bun)
|
|
251
|
+
// AND for ESM `.js` / `.mjs` entry scripts (primitive ESM-detect).
|
|
252
|
+
if (resolvedPath.endsWith('.ts') ||
|
|
253
|
+
resolvedPath.endsWith('.tsx') ||
|
|
254
|
+
resolvedPath.endsWith('.jsx') ||
|
|
255
|
+
needsEsmTransform) {
|
|
256
|
+
try {
|
|
257
|
+
const eb = getEsbuild();
|
|
258
|
+
const ext = resolvedPath.split('.').pop();
|
|
259
|
+
const loader = ext === 'tsx' ? 'tsx' :
|
|
260
|
+
ext === 'jsx' ? 'jsx' :
|
|
261
|
+
ext === 'ts' ? 'ts' :
|
|
262
|
+
'js';
|
|
263
|
+
// Substitute `import.meta.url` at compile-time so esbuild's
|
|
264
|
+
// CJS output doesn't reduce it to `undefined` (its default
|
|
265
|
+
// for unknown import.meta references). The substitution
|
|
266
|
+
// value is a real `file://<absolute-path>` URL — exactly
|
|
267
|
+
// what real Node returns when running this script. Tools
|
|
268
|
+
// that compute `fileURLToPath(import.meta.url)` (create-vite,
|
|
269
|
+
// most modern CLIs) then resolve relative paths against
|
|
270
|
+
// the actual script location.
|
|
271
|
+
//
|
|
272
|
+
// Without this, `create-vite` does
|
|
273
|
+
// r(import.meta.url) → fileURLToPath(undefined) → throws
|
|
274
|
+
// → falls into a different code path
|
|
275
|
+
// → readdirSync(wrong-template-dir) returns []
|
|
276
|
+
// → "Scaffolding..." but writes no files.
|
|
277
|
+
const absUrl = 'file:///' + resolvedPath.replace(/^\/+/, '');
|
|
278
|
+
const transformed = await eb.transform(code, {
|
|
279
|
+
loader,
|
|
280
|
+
format: 'cjs',
|
|
281
|
+
define: {
|
|
282
|
+
'import.meta.url': JSON.stringify(absUrl),
|
|
283
|
+
},
|
|
284
|
+
});
|
|
285
|
+
code = transformed.code;
|
|
286
|
+
}
|
|
287
|
+
catch (e) {
|
|
288
|
+
ctx.stderr.write(`${name}: transform error for ${scriptPath}: ${e?.message}\n`);
|
|
289
|
+
return 1;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
// Runtime-specific code transform (bun prepends BUN_SHIM_PREAMBLE).
|
|
293
|
+
if (spec.transformCode)
|
|
294
|
+
code = spec.transformCode(code, resolvedPath);
|
|
295
|
+
const filename = '/' + resolvedPath;
|
|
296
|
+
const dirname = filename.includes('/')
|
|
297
|
+
? filename.substring(0, filename.lastIndexOf('/'))
|
|
298
|
+
: '/';
|
|
299
|
+
// Primitive #1 / G4 — propagate bin-spawn ctx if the runtime
|
|
300
|
+
// supports it (currently node only).
|
|
301
|
+
const binSpawn = spec.supportsBinSpawn ? ctx.__nimbusBinSpawn : undefined;
|
|
302
|
+
const leadingFlags = args.slice(0, scriptIdx);
|
|
303
|
+
const result = await spec.run(facetMgr, code, {
|
|
304
|
+
argv: [...leadingFlags, filename, ...args.slice(scriptIdx + 1)],
|
|
305
|
+
env: ctx.env,
|
|
306
|
+
cwd: ctx.cwd,
|
|
307
|
+
filename,
|
|
308
|
+
dirname,
|
|
309
|
+
command: binSpawn?.command || `${name} ${args.slice(0, scriptIdx + 1).join(' ')}`,
|
|
310
|
+
...(binSpawn ? { skipSpawn: true, callerPid: binSpawn.callerPid } : {}),
|
|
311
|
+
});
|
|
312
|
+
if (result.stdout)
|
|
313
|
+
ctx.stdout.write(result.stdout);
|
|
314
|
+
if (result.stderr)
|
|
315
|
+
ctx.stderr.write(result.stderr);
|
|
316
|
+
return result.exitCode;
|
|
317
|
+
};
|
|
318
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* streams.ts — Node.js-compatible stream classes for Nimbus v2.0.
|
|
3
|
+
*
|
|
4
|
+
* These are generated as raw JS strings (like node-shims.ts) and
|
|
5
|
+
* embedded in the dynamic worker code. They implement the Node
|
|
6
|
+
* stream contract: Readable, Writable, Transform, Duplex, PassThrough,
|
|
7
|
+
* pipeline(), and finished().
|
|
8
|
+
*
|
|
9
|
+
* Backpressure: write() returns false when the internal buffer exceeds
|
|
10
|
+
* highWaterMark, and emits 'drain' when the buffer is flushed.
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateStreamsCode(): string;
|
|
13
|
+
//# sourceMappingURL=streams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/runtime/streams.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,wBAAgB,mBAAmB,IAAI,MAAM,CAsY5C"}
|