@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,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal byte-aligned comment stripper for prefetch's import detection.
|
|
3
|
+
*
|
|
4
|
+
* Scope: strip `//` line comments and `/* … *\/` block comments by
|
|
5
|
+
* replacing each comment with a single space. Newlines INSIDE the
|
|
6
|
+
* comment are preserved so that line numbers stay aligned with the
|
|
7
|
+
* input (matches the strip-and-classify pattern used by
|
|
8
|
+
* `esbuild-service.ts:stripCommentsAndStrings` for the transform
|
|
9
|
+
* pipeline).
|
|
10
|
+
*
|
|
11
|
+
* Why a separate, smaller scanner: prefetch's IMPORT_RE / REQUIRE_RE
|
|
12
|
+
* in `require-resolver.ts:41,87` are detection-only — they extract
|
|
13
|
+
* specifier strings, not shapes. The full string-and-template-literal
|
|
14
|
+
* stripper in `esbuild-service.ts` is overkill for that, and crossing
|
|
15
|
+
* the anti-touch boundary on `esbuild-service.ts` to extend a single
|
|
16
|
+
* shared helper isn't worth it right now.
|
|
17
|
+
*
|
|
18
|
+
* Empirical justification (esbuild-ast-rewrite wave, P2 measurement):
|
|
19
|
+
* - Per-file AST-based extraction: ~5 ms warm avg
|
|
20
|
+
* - 100-file session bootstrap with AST: ~553 ms (over the 500 ms gate)
|
|
21
|
+
* - Regex with this stripper: ~0.1 ms per file
|
|
22
|
+
* - Correctness gap closed: chalk `import { // eslint-disable\n a,\n b\n} from './utilities.js'` now matches
|
|
23
|
+
*
|
|
24
|
+
* String-literal handling is intentionally OUT of scope. A literal
|
|
25
|
+
* `import x from 'y'` inside a JavaScript string would still produce
|
|
26
|
+
* a false-positive prefetch attempt. The resolver no-ops on misses,
|
|
27
|
+
* so it's a minor wasted-work cost — see IMPORT_RE header comment in
|
|
28
|
+
* `require-resolver.ts:84-86`.
|
|
29
|
+
*
|
|
30
|
+
* TODO(CLN-X): when the `src/runtime/esbuild-service.ts` anti-touch
|
|
31
|
+
* window opens, unify with the canonical
|
|
32
|
+
* `stripCommentsAndStrings(src)` helper there. Both implement the
|
|
33
|
+
* same logical pass over comments; only the string/regex-literal
|
|
34
|
+
* handling differs.
|
|
35
|
+
*/
|
|
36
|
+
export declare function stripCommentsForImports(src: string): string;
|
|
37
|
+
//# sourceMappingURL=comment-strip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comment-strip.d.ts","sourceRoot":"","sources":["../../src/runtime/comment-strip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAqC3D"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal byte-aligned comment stripper for prefetch's import detection.
|
|
3
|
+
*
|
|
4
|
+
* Scope: strip `//` line comments and `/* … *\/` block comments by
|
|
5
|
+
* replacing each comment with a single space. Newlines INSIDE the
|
|
6
|
+
* comment are preserved so that line numbers stay aligned with the
|
|
7
|
+
* input (matches the strip-and-classify pattern used by
|
|
8
|
+
* `esbuild-service.ts:stripCommentsAndStrings` for the transform
|
|
9
|
+
* pipeline).
|
|
10
|
+
*
|
|
11
|
+
* Why a separate, smaller scanner: prefetch's IMPORT_RE / REQUIRE_RE
|
|
12
|
+
* in `require-resolver.ts:41,87` are detection-only — they extract
|
|
13
|
+
* specifier strings, not shapes. The full string-and-template-literal
|
|
14
|
+
* stripper in `esbuild-service.ts` is overkill for that, and crossing
|
|
15
|
+
* the anti-touch boundary on `esbuild-service.ts` to extend a single
|
|
16
|
+
* shared helper isn't worth it right now.
|
|
17
|
+
*
|
|
18
|
+
* Empirical justification (esbuild-ast-rewrite wave, P2 measurement):
|
|
19
|
+
* - Per-file AST-based extraction: ~5 ms warm avg
|
|
20
|
+
* - 100-file session bootstrap with AST: ~553 ms (over the 500 ms gate)
|
|
21
|
+
* - Regex with this stripper: ~0.1 ms per file
|
|
22
|
+
* - Correctness gap closed: chalk `import { // eslint-disable\n a,\n b\n} from './utilities.js'` now matches
|
|
23
|
+
*
|
|
24
|
+
* String-literal handling is intentionally OUT of scope. A literal
|
|
25
|
+
* `import x from 'y'` inside a JavaScript string would still produce
|
|
26
|
+
* a false-positive prefetch attempt. The resolver no-ops on misses,
|
|
27
|
+
* so it's a minor wasted-work cost — see IMPORT_RE header comment in
|
|
28
|
+
* `require-resolver.ts:84-86`.
|
|
29
|
+
*
|
|
30
|
+
* TODO(CLN-X): when the `src/runtime/esbuild-service.ts` anti-touch
|
|
31
|
+
* window opens, unify with the canonical
|
|
32
|
+
* `stripCommentsAndStrings(src)` helper there. Both implement the
|
|
33
|
+
* same logical pass over comments; only the string/regex-literal
|
|
34
|
+
* handling differs.
|
|
35
|
+
*/
|
|
36
|
+
export function stripCommentsForImports(src) {
|
|
37
|
+
let out = '';
|
|
38
|
+
let i = 0;
|
|
39
|
+
const N = src.length;
|
|
40
|
+
while (i < N) {
|
|
41
|
+
const c = src[i];
|
|
42
|
+
// Line comment: `//` to end-of-line.
|
|
43
|
+
if (c === '/' && src[i + 1] === '/') {
|
|
44
|
+
out += ' ';
|
|
45
|
+
i += 2;
|
|
46
|
+
while (i < N && src[i] !== '\n')
|
|
47
|
+
i++;
|
|
48
|
+
// Newline preserved by falling through; do NOT consume it.
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
// Block comment: `/*` to `*/`.
|
|
52
|
+
if (c === '/' && src[i + 1] === '*') {
|
|
53
|
+
i += 2;
|
|
54
|
+
while (i < N) {
|
|
55
|
+
if (src[i] === '\n') {
|
|
56
|
+
// Preserve newlines so line numbers stay aligned.
|
|
57
|
+
out += '\n';
|
|
58
|
+
i++;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (src[i] === '*' && src[i + 1] === '/') {
|
|
62
|
+
i += 2;
|
|
63
|
+
out += ' ';
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
i++;
|
|
67
|
+
}
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
out += c;
|
|
71
|
+
i++;
|
|
72
|
+
}
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EsbuildService — TypeScript/JSX transform + bundling via esbuild-wasm.
|
|
3
|
+
*
|
|
4
|
+
* Architecture:
|
|
5
|
+
* - esbuild-wasm is imported directly in the supervisor bundle
|
|
6
|
+
* - WASM is compiled during module evaluation (startup phase) — allowed
|
|
7
|
+
* - transform() runs in the supervisor's isolate (fast, no facet needed)
|
|
8
|
+
* - build() also runs in supervisor with a VFS resolver plugin
|
|
9
|
+
*
|
|
10
|
+
* Why not a facet? The esbuild-wasm WASM binary needs to be compiled
|
|
11
|
+
* during module startup (not request time). Dynamic workers created via
|
|
12
|
+
* LOADER.load() have the same restriction. Since esbuild-wasm is bundled
|
|
13
|
+
* into the supervisor, it initializes once at startup and stays warm.
|
|
14
|
+
*
|
|
15
|
+
* Memory: esbuild-wasm uses ~15-20MB heap. Within the DO's 128MB budget
|
|
16
|
+
* this is acceptable for Phase 3. Phase 4+ can move it to a dedicated
|
|
17
|
+
* facet once wasm module passing to dynamic workers is stable.
|
|
18
|
+
*/
|
|
19
|
+
import type { SqliteVFS } from '../vfs/sqlite-vfs.js';
|
|
20
|
+
/**
|
|
21
|
+
* Bundler version tag. BUMP THIS whenever bundling semantics change —
|
|
22
|
+
* the esbuild plugin's resolver logic, the shared-externals rules, the
|
|
23
|
+
* post-processing pipeline, or anything that would invalidate cached
|
|
24
|
+
* pre-bundles. The version is stored in pkg_esm_bundles.bundle_hash and
|
|
25
|
+
* checked on read; cache entries with a different version are treated
|
|
26
|
+
* as missing and rebuilt from scratch.
|
|
27
|
+
*
|
|
28
|
+
* History:
|
|
29
|
+
* v1 — initial pre-bundling
|
|
30
|
+
* v2 — shared React externals, CJS named exports
|
|
31
|
+
* v3 — Node subpath imports (#foo) support for vfile/unified ecosystem
|
|
32
|
+
* v4 — legacy flat-subpath resolution (pkg/sub without exports field);
|
|
33
|
+
* CDN fallback wrapper no longer crashes on modules without default
|
|
34
|
+
* v5 — normalize `../` segments in joined entry paths (react-remove-scroll-bar
|
|
35
|
+
* style: nested package.json with "module": "../dist/es2015/foo.js")
|
|
36
|
+
* v6 — externals enforced via plugin onResolve only (top-level `external:`
|
|
37
|
+
* dropped). Fixes dual-React-instance bug where jsx-runtime and
|
|
38
|
+
* react-dom/client were inlining their own copy of react because
|
|
39
|
+
* esbuild's entry-point external check rejected the externals when
|
|
40
|
+
* passed at the top level. v5 cache entries are wrong (contain
|
|
41
|
+
* embedded react copies) and must be invalidated.
|
|
42
|
+
*/
|
|
43
|
+
export declare const BUNDLER_VERSION = "v6";
|
|
44
|
+
/**
|
|
45
|
+
* Returns the list of specifiers that must be marked `external` when bundling
|
|
46
|
+
* `specifier` so that React / React-DOM / Scheduler share a single instance
|
|
47
|
+
* across all /@modules/ bundles.
|
|
48
|
+
*
|
|
49
|
+
* Why: React uses an internal module-scoped singleton
|
|
50
|
+
* (`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`) for current dispatcher,
|
|
51
|
+
* owner, etc. If two bundles each contain their own embedded React, they each
|
|
52
|
+
* have their own singleton, and `createRoot` from one bundle sees JSX elements
|
|
53
|
+
* created by the other as "alien" — silent render failure (root stays empty).
|
|
54
|
+
*
|
|
55
|
+
* The fix: when bundling react-dom/*, mark react/* and scheduler as external.
|
|
56
|
+
* The bundler leaves `import {...} from "react"` in the output; the browser
|
|
57
|
+
* then fetches /preview/@modules/react, which is the SAME URL the jsx-runtime
|
|
58
|
+
* bundle imports — so both react-dom and jsx-runtime share ONE React instance.
|
|
59
|
+
*
|
|
60
|
+
* Similarly for react/jsx-runtime and react/jsx-dev-runtime (they must share
|
|
61
|
+
* react's internals), we externalize `react` (but not `scheduler` — jsx-runtime
|
|
62
|
+
* doesn't need it).
|
|
63
|
+
*/
|
|
64
|
+
export declare function getSharedRuntimeExternals(specifier: string): string[];
|
|
65
|
+
export interface TransformResult {
|
|
66
|
+
code: string;
|
|
67
|
+
map: string;
|
|
68
|
+
warnings: {
|
|
69
|
+
text: string;
|
|
70
|
+
location?: any;
|
|
71
|
+
}[];
|
|
72
|
+
}
|
|
73
|
+
export interface BuildOutputFile {
|
|
74
|
+
path: string;
|
|
75
|
+
contents: string;
|
|
76
|
+
}
|
|
77
|
+
export interface BuildResult {
|
|
78
|
+
outputFiles: BuildOutputFile[];
|
|
79
|
+
errors: {
|
|
80
|
+
text: string;
|
|
81
|
+
location?: any;
|
|
82
|
+
}[];
|
|
83
|
+
warnings: {
|
|
84
|
+
text: string;
|
|
85
|
+
location?: any;
|
|
86
|
+
}[];
|
|
87
|
+
}
|
|
88
|
+
export declare class EsbuildService {
|
|
89
|
+
private vfs;
|
|
90
|
+
private initialized;
|
|
91
|
+
private initPromise;
|
|
92
|
+
/** Resolved esbuild namespace — populated by ensureInit() after loadEsbuild(). */
|
|
93
|
+
private _esbuild;
|
|
94
|
+
constructor(vfs: SqliteVFS);
|
|
95
|
+
/**
|
|
96
|
+
* Initialize esbuild-wasm (lazy, on first use). Loads the namespace
|
|
97
|
+
* via `loadEsbuild()` (which itself is deferred) and caches it on
|
|
98
|
+
* `this._esbuild` so subsequent calls don't pay the dynamic-import
|
|
99
|
+
* overhead. All call sites that previously used the top-level
|
|
100
|
+
* `esbuild` namespace now use `this._esbuild!` after `await this.ensureInit()`.
|
|
101
|
+
*/
|
|
102
|
+
private ensureInit;
|
|
103
|
+
/**
|
|
104
|
+
* Transform a single code string (TS→JS, JSX→JS, minify, etc.)
|
|
105
|
+
*
|
|
106
|
+
* Top-level await note (gap #2 in framework-gaps-fix):
|
|
107
|
+
* ─────────────────────────────────────────────────────
|
|
108
|
+
* esbuild rejects top-level await when output format is 'cjs' or
|
|
109
|
+
* 'iife' — neither has a runtime primitive for it. Real Node
|
|
110
|
+
* supports TLA only in ESM. Nimbus's facet wrapper executes the
|
|
111
|
+
* transformed code via `new Function(...)` which is CJS-shaped.
|
|
112
|
+
*
|
|
113
|
+
* Several modern CLIs (nuxi, vite-cli, oclif's lazy-load bootstrap,
|
|
114
|
+
* many ESM-only-by-default tools) use TLA at the entry point. With
|
|
115
|
+
* format:'cjs' those would crash with "Top-level await is currently
|
|
116
|
+
* not supported with the 'cjs' output format" — an esbuild
|
|
117
|
+
* SyntaxError surfaced as a Nimbus diagnostic. The user can't
|
|
118
|
+
* fix this without rewriting upstream.
|
|
119
|
+
*
|
|
120
|
+
* Fix: when caller asks for format 'cjs' AND the source has a
|
|
121
|
+
* top-level await, wrap the source in an async IIFE:
|
|
122
|
+
*
|
|
123
|
+
* ;(async () => {
|
|
124
|
+
* <original-source>
|
|
125
|
+
* })();
|
|
126
|
+
*
|
|
127
|
+
* Inside the IIFE, await is legal.
|
|
128
|
+
*
|
|
129
|
+
* ESM-imports-in-CJS note (nuxt-esm-in-cjs wave):
|
|
130
|
+
* ─────────────────────────────────────────────────
|
|
131
|
+
* The IIFE wrap above moves the user source INTO a function body.
|
|
132
|
+
* Top-level ESM `import` statements are LEGAL only at module top
|
|
133
|
+
* level — inside a function body they're a SyntaxError. Real-world
|
|
134
|
+
* trigger: nuxi's `bin/nuxi.mjs` opens with `import { performance }
|
|
135
|
+
* from "node:perf_hooks"` and ends with `const { runMain } = await
|
|
136
|
+
* import("./dist/index.mjs"); runMain()` — both ESM imports AND TLA.
|
|
137
|
+
* Pre-fix the IIFE wrap caused esbuild to fail with
|
|
138
|
+
* `Unexpected "<binding>"` at line 3 of stdin.
|
|
139
|
+
*
|
|
140
|
+
* Fix: when TLA AND ESM imports coexist, run a two-stage transform:
|
|
141
|
+
* 1. Pass 1: `esbuild.transform(code, { format: 'esm', ... })` —
|
|
142
|
+
* esbuild accepts TLA + imports cleanly when emitting ESM.
|
|
143
|
+
* Output is JS-canonicalised: multi-line imports collapsed,
|
|
144
|
+
* bindings normalised, etc.
|
|
145
|
+
* 2. Extract top-level imports from the pass-1 output and rewrite
|
|
146
|
+
* them as `const X = require(...)` shims (see
|
|
147
|
+
* `convertEsmImportsToRequire` for the contract / shape).
|
|
148
|
+
* 3. Wrap the remaining body in the async IIFE.
|
|
149
|
+
* 4. Return the assembled string as the transform result.
|
|
150
|
+
*
|
|
151
|
+
* The require-shim emits the standard `__esModule` interop check
|
|
152
|
+
* (matches what esbuild itself emits for ESM→CJS conversions), so
|
|
153
|
+
* default-export binding semantics are preserved.
|
|
154
|
+
*
|
|
155
|
+
* If TLA but no ESM imports → existing single-pass IIFE wrap.
|
|
156
|
+
* If ESM imports but no TLA → existing single-pass esbuild
|
|
157
|
+
* format:cjs (it auto-converts ESM→CJS gracefully).
|
|
158
|
+
*
|
|
159
|
+
* This is bytes-stable for sources outside the TLA+ESM-imports
|
|
160
|
+
* intersection.
|
|
161
|
+
*/
|
|
162
|
+
transform(code: string, options?: {
|
|
163
|
+
loader?: 'ts' | 'tsx' | 'jsx' | 'js' | 'css' | 'json';
|
|
164
|
+
format?: 'esm' | 'cjs' | 'iife';
|
|
165
|
+
target?: string;
|
|
166
|
+
sourcemap?: boolean | 'inline' | 'external';
|
|
167
|
+
minify?: boolean;
|
|
168
|
+
jsx?: 'transform' | 'preserve' | 'automatic';
|
|
169
|
+
jsxFactory?: string;
|
|
170
|
+
jsxFragment?: string;
|
|
171
|
+
tsconfigRaw?: string;
|
|
172
|
+
define?: Record<string, string>;
|
|
173
|
+
}): Promise<TransformResult>;
|
|
174
|
+
/**
|
|
175
|
+
* Bundle entry points from the VFS.
|
|
176
|
+
*/
|
|
177
|
+
build(entryPoints: string[], options?: {
|
|
178
|
+
bundle?: boolean;
|
|
179
|
+
format?: 'esm' | 'cjs' | 'iife';
|
|
180
|
+
target?: string;
|
|
181
|
+
platform?: 'browser' | 'node' | 'neutral';
|
|
182
|
+
outdir?: string;
|
|
183
|
+
outfile?: string;
|
|
184
|
+
sourcemap?: boolean | 'inline' | 'external';
|
|
185
|
+
minify?: boolean;
|
|
186
|
+
external?: string[];
|
|
187
|
+
define?: Record<string, string>;
|
|
188
|
+
globalName?: string;
|
|
189
|
+
tsconfigRaw?: string;
|
|
190
|
+
alias?: Record<string, string>;
|
|
191
|
+
keepNames?: boolean;
|
|
192
|
+
}): Promise<BuildResult>;
|
|
193
|
+
/**
|
|
194
|
+
* VFS resolver plugin for esbuild.
|
|
195
|
+
* Reads directly from the SqliteVFS (synchronous, co-located — no snapshot needed).
|
|
196
|
+
* Handles: absolute paths, relative paths, bare specifiers (node_modules).
|
|
197
|
+
*/
|
|
198
|
+
private makeVfsPlugin;
|
|
199
|
+
get isInitialized(): boolean;
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=esbuild-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esbuild-service.d.ts","sourceRoot":"","sources":["../../src/runtime/esbuild-service.ts"],"names":[],"mappings":"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"}
|