@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,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* barrel-detect.ts — heuristic for "barrel" packages whose source tree
|
|
3
|
+
* is too large for esbuild's facet to bundle without OOM.
|
|
4
|
+
*
|
|
5
|
+
* Barrel packages ship one .js per icon/component (e.g. lucide-react
|
|
6
|
+
* with 1500 icons → 4000+ files). esbuild's bundler ingests the whole
|
|
7
|
+
* tree into a single ESM module, which routinely OOMs the 128 MiB
|
|
8
|
+
* facet isolate during JS heap allocation.
|
|
9
|
+
*
|
|
10
|
+
* Both the install-time pre-bundle path (npm-installer.prebundleUsedModules)
|
|
11
|
+
* and the on-demand path (vite-dev-server.serveModule) use this to
|
|
12
|
+
* route the package through `barrel-synthesizer.ts`: scan the user's
|
|
13
|
+
* source for static named imports, generate a tiny synthetic entry
|
|
14
|
+
* (`export { Home, FileText } from 'pkg'`), and bundle THAT through
|
|
15
|
+
* the standard facet path. esbuild's tree-shaking + the package's
|
|
16
|
+
* sideEffects:false produces a small per-app bundle without ever
|
|
17
|
+
* reaching for a third-party CDN (100% edge contract).
|
|
18
|
+
*
|
|
19
|
+
* Threshold rationale (1500 files):
|
|
20
|
+
* lucide-react@0.460: 4069 files (synthesizes)
|
|
21
|
+
* framer-motion@11.11: ~250 files (bundles whole)
|
|
22
|
+
* react-router-dom@6.26: ~80 files (bundles whole)
|
|
23
|
+
* react-dom@18.3: ~150 files (bundles whole)
|
|
24
|
+
*
|
|
25
|
+
* The cap (5000) prevents pathological deep walks; we only need to
|
|
26
|
+
* know "clearly a barrel" vs. not.
|
|
27
|
+
*/
|
|
28
|
+
import type { SqliteVFS } from '../vfs/sqlite-vfs.js';
|
|
29
|
+
/** A package with more than this many files is treated as a barrel. */
|
|
30
|
+
export declare const BARREL_PKG_FILE_THRESHOLD = 1500;
|
|
31
|
+
/**
|
|
32
|
+
* Recursively count files under `pkgDir`, excluding nested node_modules
|
|
33
|
+
* (those are walked separately by the slice walker as transitive deps).
|
|
34
|
+
*
|
|
35
|
+
* Stops counting once we exceed `cap` to avoid pathological walks. Cost:
|
|
36
|
+
* VFS readdir is sync + in-memory inode lookup. For lucide-react
|
|
37
|
+
* (4069 files), measured at <2 ms in dev.
|
|
38
|
+
*/
|
|
39
|
+
export declare function countPackageFiles(vfs: SqliteVFS, pkgDir: string, cap?: number): number;
|
|
40
|
+
/**
|
|
41
|
+
* Convenience: derive top-level package name from a bare specifier
|
|
42
|
+
* (e.g. "lucide-react/icons/Cloud" → "lucide-react", "@radix-ui/react"
|
|
43
|
+
* → "@radix-ui/react"). Used by callers building the pkgDir path.
|
|
44
|
+
*/
|
|
45
|
+
export declare function packageNameFromSpecifier(specifier: string): string;
|
|
46
|
+
//# sourceMappingURL=barrel-detect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barrel-detect.d.ts","sourceRoot":"","sources":["../../src/runtime/barrel-detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAO,GAAG,MAAM,CAgBpF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIlE"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* barrel-detect.ts — heuristic for "barrel" packages whose source tree
|
|
3
|
+
* is too large for esbuild's facet to bundle without OOM.
|
|
4
|
+
*
|
|
5
|
+
* Barrel packages ship one .js per icon/component (e.g. lucide-react
|
|
6
|
+
* with 1500 icons → 4000+ files). esbuild's bundler ingests the whole
|
|
7
|
+
* tree into a single ESM module, which routinely OOMs the 128 MiB
|
|
8
|
+
* facet isolate during JS heap allocation.
|
|
9
|
+
*
|
|
10
|
+
* Both the install-time pre-bundle path (npm-installer.prebundleUsedModules)
|
|
11
|
+
* and the on-demand path (vite-dev-server.serveModule) use this to
|
|
12
|
+
* route the package through `barrel-synthesizer.ts`: scan the user's
|
|
13
|
+
* source for static named imports, generate a tiny synthetic entry
|
|
14
|
+
* (`export { Home, FileText } from 'pkg'`), and bundle THAT through
|
|
15
|
+
* the standard facet path. esbuild's tree-shaking + the package's
|
|
16
|
+
* sideEffects:false produces a small per-app bundle without ever
|
|
17
|
+
* reaching for a third-party CDN (100% edge contract).
|
|
18
|
+
*
|
|
19
|
+
* Threshold rationale (1500 files):
|
|
20
|
+
* lucide-react@0.460: 4069 files (synthesizes)
|
|
21
|
+
* framer-motion@11.11: ~250 files (bundles whole)
|
|
22
|
+
* react-router-dom@6.26: ~80 files (bundles whole)
|
|
23
|
+
* react-dom@18.3: ~150 files (bundles whole)
|
|
24
|
+
*
|
|
25
|
+
* The cap (5000) prevents pathological deep walks; we only need to
|
|
26
|
+
* know "clearly a barrel" vs. not.
|
|
27
|
+
*/
|
|
28
|
+
/** A package with more than this many files is treated as a barrel. */
|
|
29
|
+
export const BARREL_PKG_FILE_THRESHOLD = 1500;
|
|
30
|
+
/**
|
|
31
|
+
* Recursively count files under `pkgDir`, excluding nested node_modules
|
|
32
|
+
* (those are walked separately by the slice walker as transitive deps).
|
|
33
|
+
*
|
|
34
|
+
* Stops counting once we exceed `cap` to avoid pathological walks. Cost:
|
|
35
|
+
* VFS readdir is sync + in-memory inode lookup. For lucide-react
|
|
36
|
+
* (4069 files), measured at <2 ms in dev.
|
|
37
|
+
*/
|
|
38
|
+
export function countPackageFiles(vfs, pkgDir, cap = 5000) {
|
|
39
|
+
if (!vfs.exists(pkgDir) || !vfs.isDirectory(pkgDir))
|
|
40
|
+
return 0;
|
|
41
|
+
let count = 0;
|
|
42
|
+
const stack = [pkgDir];
|
|
43
|
+
while (stack.length > 0 && count <= cap) {
|
|
44
|
+
const dir = stack.pop();
|
|
45
|
+
let entries;
|
|
46
|
+
try {
|
|
47
|
+
entries = vfs.readdir(dir);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
for (const e of entries) {
|
|
53
|
+
if (e.name === 'node_modules')
|
|
54
|
+
continue;
|
|
55
|
+
const child = dir + '/' + e.name;
|
|
56
|
+
if (e.type === 'directory')
|
|
57
|
+
stack.push(child);
|
|
58
|
+
else
|
|
59
|
+
count++;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return count;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Convenience: derive top-level package name from a bare specifier
|
|
66
|
+
* (e.g. "lucide-react/icons/Cloud" → "lucide-react", "@radix-ui/react"
|
|
67
|
+
* → "@radix-ui/react"). Used by callers building the pkgDir path.
|
|
68
|
+
*/
|
|
69
|
+
export function packageNameFromSpecifier(specifier) {
|
|
70
|
+
return specifier.startsWith('@')
|
|
71
|
+
? specifier.split('/').slice(0, 2).join('/')
|
|
72
|
+
: specifier.split('/')[0];
|
|
73
|
+
}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* barrel-synthesizer.ts — generate synthetic entry files for "barrel"
|
|
3
|
+
* packages so they tree-shake cleanly through esbuild.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists
|
|
6
|
+
* ───────────────
|
|
7
|
+
* Some npm packages ship as a "barrel" — a single index file that
|
|
8
|
+
* re-exports hundreds or thousands of named exports, each living in
|
|
9
|
+
* its own source file. Examples observed in the wild:
|
|
10
|
+
*
|
|
11
|
+
* lucide-react@0.460: ~3940 files (~1500 icons × 2 entry forms)
|
|
12
|
+
* @phosphor-icons/react: thousands of icon components
|
|
13
|
+
* react-icons: thousands of icons across icon families
|
|
14
|
+
* @mui/icons-material: thousands of Material icons
|
|
15
|
+
* @heroicons/react: hundreds of icons (split by style)
|
|
16
|
+
*
|
|
17
|
+
* Bundling the whole barrel as if it were a normal browser module OOMs
|
|
18
|
+
* esbuild's WASM facet — the compiler tries to ingest the entire
|
|
19
|
+
* source tree into one ESM output. We previously fell back to
|
|
20
|
+
* `https://esm.sh/<pkg>?deps=react@<v>,react-dom@<v>` (commit fc17847)
|
|
21
|
+
* which violated the 100% edge contract: every preview load fetched
|
|
22
|
+
* tree-shaken bytes from a third-party CDN.
|
|
23
|
+
*
|
|
24
|
+
* The fix is structural. Instead of bundling `import * from 'pkg'`,
|
|
25
|
+
* we scan the user's source code for the SET of named imports the
|
|
26
|
+
* project actually uses
|
|
27
|
+
*
|
|
28
|
+
* import { Home, FileText, Zap } from 'lucide-react'
|
|
29
|
+
*
|
|
30
|
+
* and synthesize a tiny entry module
|
|
31
|
+
*
|
|
32
|
+
* export { Home, FileText, Zap } from 'lucide-react';
|
|
33
|
+
*
|
|
34
|
+
* which esbuild bundles in milliseconds because reachability prunes
|
|
35
|
+
* everything else. The output is small (5–20 KiB for typical icon
|
|
36
|
+
* sets) and ships from our edge.
|
|
37
|
+
*
|
|
38
|
+
* Generality
|
|
39
|
+
* ──────────
|
|
40
|
+
* This is NOT lucide-react-specific. Any barrel package whose author
|
|
41
|
+
* marked `sideEffects: false` (or whose individual icon files are
|
|
42
|
+
* side-effect-free) works automatically — esbuild's tree-shake takes
|
|
43
|
+
* care of selecting the actually-used exports. Packages without
|
|
44
|
+
* sideEffects: false may still tree-shake because esbuild's static
|
|
45
|
+
* analysis of `export { X } from './x.js'` is conservative-correct.
|
|
46
|
+
*
|
|
47
|
+
* Failure mode
|
|
48
|
+
* ────────────
|
|
49
|
+
* If the scanner can't enumerate the set (dynamic imports, computed
|
|
50
|
+
* member access like `Icons[name]`, etc.), the synthesizer returns
|
|
51
|
+
* null and the caller MUST hard-error. NO CDN fallback. The user
|
|
52
|
+
* sees a clear remediation: "add a static import for the
|
|
53
|
+
* dynamically-referenced icon."
|
|
54
|
+
*/
|
|
55
|
+
import type { SqliteVFS } from '../vfs/sqlite-vfs.js';
|
|
56
|
+
import type { SliceEntry } from '../npm/pre-bundle-facet.js';
|
|
57
|
+
/**
|
|
58
|
+
* Map of package name → set of named imports observed across the
|
|
59
|
+
* project's source files. Top-level package only — subpath imports
|
|
60
|
+
* (e.g. `lucide-react/icons/Home`) are skipped because the user is
|
|
61
|
+
* already opting into per-file resolution and esbuild handles them
|
|
62
|
+
* directly without barrel pressure.
|
|
63
|
+
*/
|
|
64
|
+
export type NamedImportMap = Map<string, Set<string>>;
|
|
65
|
+
/**
|
|
66
|
+
* Static-import scanner. Walks the user's source tree under projDir
|
|
67
|
+
* and extracts named-import sets. Returns a map keyed by package name.
|
|
68
|
+
*
|
|
69
|
+
* Recognized syntax:
|
|
70
|
+
* import { A } from 'pkg'
|
|
71
|
+
* import { A, B } from 'pkg'
|
|
72
|
+
* import { A as X, B as Y } from 'pkg'
|
|
73
|
+
* import D, { A } from 'pkg' // only A is captured (D is default)
|
|
74
|
+
*
|
|
75
|
+
* NOT recognized (intentional — these can't be statically tree-shaken):
|
|
76
|
+
* import * as M from 'pkg' — caller must bundle whole pkg
|
|
77
|
+
* import('pkg') — dynamic; runtime resolution
|
|
78
|
+
* const { A } = require('pkg') — CJS at runtime
|
|
79
|
+
*
|
|
80
|
+
* The scanner is intentionally conservative-text-based. We do NOT
|
|
81
|
+
* parse a full AST — that would require shipping acorn or esbuild's
|
|
82
|
+
* parser at runtime in the supervisor. The regex covers the >99% case
|
|
83
|
+
* for browser source code in TS/JS/JSX/TSX.
|
|
84
|
+
*
|
|
85
|
+
* Costs: O(files × content_length). For Mossaic (199 source files,
|
|
86
|
+
* ~150 KiB total source) this is single-digit ms.
|
|
87
|
+
*/
|
|
88
|
+
export declare function scanNamedImports(vfs: SqliteVFS, projDir: string): NamedImportMap;
|
|
89
|
+
/**
|
|
90
|
+
* Synthesize a tiny ESM entry that re-exports the given names from
|
|
91
|
+
* the package. We do NOT emit `export { X } from 'pkg'` — that resolves
|
|
92
|
+
* to the package's barrel-index file, which typically pulls in EVERY
|
|
93
|
+
* export via `import * as ns from '../index.js'` and breaks
|
|
94
|
+
* esbuild's tree-shake (the namespace expansion balloons the
|
|
95
|
+
* reachability graph and OOMs the WASM facet on icon-libraries
|
|
96
|
+
* that ship 1500+ exports).
|
|
97
|
+
*
|
|
98
|
+
* Instead we PARSE the barrel-index file, build a map of
|
|
99
|
+
* `<exportedName> → <relative path inside the package>`, and emit
|
|
100
|
+
* direct file imports:
|
|
101
|
+
*
|
|
102
|
+
* export { default as Home } from 'lucide-react/dist/esm/icons/house.js';
|
|
103
|
+
* export { default as FileText } from 'lucide-react/dist/esm/icons/file-text.js';
|
|
104
|
+
*
|
|
105
|
+
* esbuild's bundler now ingests only the per-icon files we directly
|
|
106
|
+
* reference (plus their transitive dependencies). The unused 1499
|
|
107
|
+
* icons never enter the build graph at all.
|
|
108
|
+
*
|
|
109
|
+
* Supported re-export forms in the barrel index:
|
|
110
|
+
* export { default as Name } from './icons/x.js';
|
|
111
|
+
* export { default as Name1, default as Name2 } from './icons/x.js';
|
|
112
|
+
* export { Name } from './icons/x.js';
|
|
113
|
+
* export { Name as Alias } from './icons/x.js';
|
|
114
|
+
*
|
|
115
|
+
* NOT supported (rare in barrels — caller falls back if encountered):
|
|
116
|
+
* export * from './foo.js';
|
|
117
|
+
* export * as ns from './foo.js';
|
|
118
|
+
* import { X } from './foo.js'; export { X }; (split form)
|
|
119
|
+
*
|
|
120
|
+
* Returns null if:
|
|
121
|
+
* - input set empty, OR
|
|
122
|
+
* - the barrel index file isn't found, OR
|
|
123
|
+
* - none of the user's requested names appear in the parsed map.
|
|
124
|
+
* (Caller should then hard-error, NOT fall back to a CDN.)
|
|
125
|
+
*
|
|
126
|
+
* `vfs` + `nmDir` (project's node_modules path) are required so we
|
|
127
|
+
* can read the barrel index. `pkgName` is the top-level package; the
|
|
128
|
+
* synthesizer resolves the package's main ESM entry by reading
|
|
129
|
+
* `package.json`.
|
|
130
|
+
*/
|
|
131
|
+
/**
|
|
132
|
+
* Result of a synthetic-entry build. `code` is the ESM source ready
|
|
133
|
+
* for esbuild. `referencedFiles` is the set of absolute VFS paths
|
|
134
|
+
* (no leading slash, like the rest of our VFS surface) the entry
|
|
135
|
+
* imports — useful for callers building a SCOPED slice that contains
|
|
136
|
+
* only those files instead of the whole package directory (which can
|
|
137
|
+
* exceed the 28 MiB slice cap for icon-libraries with thousands of
|
|
138
|
+
* files).
|
|
139
|
+
*/
|
|
140
|
+
export interface SyntheticEntryResult {
|
|
141
|
+
code: string;
|
|
142
|
+
referencedFiles: string[];
|
|
143
|
+
}
|
|
144
|
+
export declare function buildSyntheticEntry(vfs: SqliteVFS, nmDir: string, pkgName: string, names: ReadonlySet<string>): SyntheticEntryResult | null;
|
|
145
|
+
/**
|
|
146
|
+
* Build a SCOPED slice for a synthetic-entry bundle: include only
|
|
147
|
+
* the files the synthetic entry directly references (+ their
|
|
148
|
+
* transitive imports walked via static analysis), plus the package
|
|
149
|
+
* root's `package.json` (esbuild's resolver reads it for exports/main
|
|
150
|
+
* fields). This bypasses the standard `walkDir` over the whole
|
|
151
|
+
* package, which for icon-libraries with thousands of files can
|
|
152
|
+
* exceed the 28 MiB slice cap.
|
|
153
|
+
*
|
|
154
|
+
* Caller still appends the synthetic entry file itself to the slice
|
|
155
|
+
* (we don't include it here because it lives in a synthetic
|
|
156
|
+
* directory the caller already manages).
|
|
157
|
+
*
|
|
158
|
+
* Returns the list of `SliceEntry`-shaped objects to push into the
|
|
159
|
+
* existing slice, plus the total bytes added (for cap-tracking).
|
|
160
|
+
*
|
|
161
|
+
* `transitiveCap`: how many files we'll walk in total. Bounded so a
|
|
162
|
+
* pathological barrel-of-barrels can't blow the cap. Default 800,
|
|
163
|
+
* which empirically covers icon-libraries with up to ~400 imported
|
|
164
|
+
* icons (each pulling 1-2 transitive shared utility files).
|
|
165
|
+
*/
|
|
166
|
+
export declare function buildScopedSliceForSynthetic(vfs: SqliteVFS, nmDir: string, pkgName: string, referencedFiles: string[], transitiveCap?: number): {
|
|
167
|
+
entries: SliceEntry[];
|
|
168
|
+
totalBytes: number;
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* VFS path where synthetic entries are written. Lives under the
|
|
172
|
+
* project's node_modules in a Nimbus-private namespace so package
|
|
173
|
+
* managers don't collide with real package directories.
|
|
174
|
+
*
|
|
175
|
+
* Format: <projDir>/node_modules/.nimbus-synthetic/<safeName>.entry.js
|
|
176
|
+
*
|
|
177
|
+
* Safe name = pkgName with '@' and '/' replaced by '__' so scoped
|
|
178
|
+
* packages produce a valid filesystem path.
|
|
179
|
+
*/
|
|
180
|
+
export declare function syntheticEntryPath(projDir: string, pkgName: string): string;
|
|
181
|
+
//# sourceMappingURL=barrel-synthesizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barrel-synthesizer.d.ts","sourceRoot":"","sources":["../../src/runtime/barrel-synthesizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,MAAM,GACd,cAAc,CAgFhB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GACzB,oBAAoB,GAAG,IAAI,CAmL7B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EAAE,EACzB,aAAa,SAAM,GAClB;IAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAiE/C;AA0DD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG3E"}
|