@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,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* symlink-registry.ts — virtual symlink table backed by a special
|
|
3
|
+
* JSON file in the SqliteVFS.
|
|
4
|
+
*
|
|
5
|
+
* SHELL-FOLLOWUPS-4 (2026-05-11): Real symlink support for `ln -s`
|
|
6
|
+
* + `readlink`. Pre-fix `ln -s` copied the file content into a new
|
|
7
|
+
* regular file; `readlink` returned empty.
|
|
8
|
+
*
|
|
9
|
+
* Why a registry (not VFS-schema change):
|
|
10
|
+
* - SqliteVFS schema is anti-touch for surrounding waves.
|
|
11
|
+
* - Symlinks have minimal storage requirement (path → target string).
|
|
12
|
+
* - Persistence across reconnect/eviction is automatic because the
|
|
13
|
+
* registry file lives in the same SqliteVFS that gets snapshotted.
|
|
14
|
+
*
|
|
15
|
+
* Storage: `/.nimbus-symlinks.json` with shape `{ [linkPath]: target }`.
|
|
16
|
+
* The registry is in-memory cached on first read; writes flush back
|
|
17
|
+
* to the file synchronously.
|
|
18
|
+
*
|
|
19
|
+
* Resolution: callers (`ls -la`, `cat`, `readlink`, `rm`) check the
|
|
20
|
+
* registry FIRST before treating a path as a regular file. This
|
|
21
|
+
* means symlinks transparently dereference for read but appear in
|
|
22
|
+
* `ls -la` with proper `lrwxrwxrwx` mode and `-> target` suffix.
|
|
23
|
+
*
|
|
24
|
+
* Loop guard: `resolveSymlinkChain` follows at most 40 hops (matches
|
|
25
|
+
* POSIX SYMLOOP_MAX).
|
|
26
|
+
*/
|
|
27
|
+
import type { SqliteVFS } from './sqlite-vfs.js';
|
|
28
|
+
export declare class SymlinkRegistry {
|
|
29
|
+
private vfs;
|
|
30
|
+
private cache;
|
|
31
|
+
constructor(vfs: SqliteVFS);
|
|
32
|
+
/** Lazy-load + memoize the registry. */
|
|
33
|
+
private load;
|
|
34
|
+
/** Write the cache back to the registry file. */
|
|
35
|
+
private flush;
|
|
36
|
+
/** Normalize a path: strip leading slashes (VFS internal convention). */
|
|
37
|
+
private norm;
|
|
38
|
+
/** Create or replace a symlink. Target is stored verbatim (can be
|
|
39
|
+
* absolute or relative — interpretation happens at resolve time). */
|
|
40
|
+
set(linkPath: string, target: string): void;
|
|
41
|
+
/** Remove a symlink. Returns true if it existed. */
|
|
42
|
+
delete(linkPath: string): boolean;
|
|
43
|
+
/** Check if `path` is registered as a symlink (no chain resolution). */
|
|
44
|
+
isSymlink(path: string): boolean;
|
|
45
|
+
/** Get the immediate target of a symlink. Returns null if not a symlink. */
|
|
46
|
+
readlink(path: string): string | null;
|
|
47
|
+
/**
|
|
48
|
+
* Follow a symlink chain until we hit a non-symlink (or run out of
|
|
49
|
+
* hops). Returns the resolved path (canonicalized to no-leading-slash).
|
|
50
|
+
* If the chain breaks (max-hops or missing target), returns the
|
|
51
|
+
* last-resolved path or null.
|
|
52
|
+
*
|
|
53
|
+
* `cwd` is used to resolve RELATIVE symlink targets (target without
|
|
54
|
+
* leading `/`). POSIX semantics: relative targets resolve from the
|
|
55
|
+
* symlink's directory, not the current cwd.
|
|
56
|
+
*/
|
|
57
|
+
resolveChain(startPath: string): string | null;
|
|
58
|
+
/** List all currently-registered symlinks (debugging / ls -la support). */
|
|
59
|
+
list(): {
|
|
60
|
+
link: string;
|
|
61
|
+
target: string;
|
|
62
|
+
}[];
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=symlink-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symlink-registry.d.ts","sourceRoot":"","sources":["../../src/vfs/symlink-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,KAAK,CAAoC;gBAErC,GAAG,EAAE,SAAS;IAI1B,wCAAwC;IACxC,OAAO,CAAC,IAAI;IAgBZ,iDAAiD;IACjD,OAAO,CAAC,KAAK;IASb,yEAAyE;IACzE,OAAO,CAAC,IAAI;IAIZ;0EACsE;IACtE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM3C,oDAAoD;IACpD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAOjC,wEAAwE;IACxE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKrC;;;;;;;;;OASG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAuB9C,2EAA2E;IAC3E,IAAI,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE;CAO3C"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* symlink-registry.ts — virtual symlink table backed by a special
|
|
3
|
+
* JSON file in the SqliteVFS.
|
|
4
|
+
*
|
|
5
|
+
* SHELL-FOLLOWUPS-4 (2026-05-11): Real symlink support for `ln -s`
|
|
6
|
+
* + `readlink`. Pre-fix `ln -s` copied the file content into a new
|
|
7
|
+
* regular file; `readlink` returned empty.
|
|
8
|
+
*
|
|
9
|
+
* Why a registry (not VFS-schema change):
|
|
10
|
+
* - SqliteVFS schema is anti-touch for surrounding waves.
|
|
11
|
+
* - Symlinks have minimal storage requirement (path → target string).
|
|
12
|
+
* - Persistence across reconnect/eviction is automatic because the
|
|
13
|
+
* registry file lives in the same SqliteVFS that gets snapshotted.
|
|
14
|
+
*
|
|
15
|
+
* Storage: `/.nimbus-symlinks.json` with shape `{ [linkPath]: target }`.
|
|
16
|
+
* The registry is in-memory cached on first read; writes flush back
|
|
17
|
+
* to the file synchronously.
|
|
18
|
+
*
|
|
19
|
+
* Resolution: callers (`ls -la`, `cat`, `readlink`, `rm`) check the
|
|
20
|
+
* registry FIRST before treating a path as a regular file. This
|
|
21
|
+
* means symlinks transparently dereference for read but appear in
|
|
22
|
+
* `ls -la` with proper `lrwxrwxrwx` mode and `-> target` suffix.
|
|
23
|
+
*
|
|
24
|
+
* Loop guard: `resolveSymlinkChain` follows at most 40 hops (matches
|
|
25
|
+
* POSIX SYMLOOP_MAX).
|
|
26
|
+
*/
|
|
27
|
+
const REGISTRY_PATH = '.nimbus-symlinks.json';
|
|
28
|
+
export class SymlinkRegistry {
|
|
29
|
+
vfs;
|
|
30
|
+
cache = null;
|
|
31
|
+
constructor(vfs) {
|
|
32
|
+
this.vfs = vfs;
|
|
33
|
+
}
|
|
34
|
+
/** Lazy-load + memoize the registry. */
|
|
35
|
+
load() {
|
|
36
|
+
if (this.cache)
|
|
37
|
+
return this.cache;
|
|
38
|
+
try {
|
|
39
|
+
if (this.vfs.exists(REGISTRY_PATH)) {
|
|
40
|
+
const raw = this.vfs.readFileString(REGISTRY_PATH);
|
|
41
|
+
const obj = JSON.parse(raw);
|
|
42
|
+
this.cache = new Map(Object.entries(obj));
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.cache = new Map();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
this.cache = new Map();
|
|
50
|
+
}
|
|
51
|
+
return this.cache;
|
|
52
|
+
}
|
|
53
|
+
/** Write the cache back to the registry file. */
|
|
54
|
+
flush() {
|
|
55
|
+
if (!this.cache)
|
|
56
|
+
return;
|
|
57
|
+
const obj = {};
|
|
58
|
+
for (const [k, v] of this.cache)
|
|
59
|
+
obj[k] = v;
|
|
60
|
+
try {
|
|
61
|
+
this.vfs.writeFile(REGISTRY_PATH, JSON.stringify(obj));
|
|
62
|
+
}
|
|
63
|
+
catch { /* fail-soft */ }
|
|
64
|
+
}
|
|
65
|
+
/** Normalize a path: strip leading slashes (VFS internal convention). */
|
|
66
|
+
norm(p) {
|
|
67
|
+
return p.replace(/^\/+/, '').replace(/\/+$/, '');
|
|
68
|
+
}
|
|
69
|
+
/** Create or replace a symlink. Target is stored verbatim (can be
|
|
70
|
+
* absolute or relative — interpretation happens at resolve time). */
|
|
71
|
+
set(linkPath, target) {
|
|
72
|
+
const cache = this.load();
|
|
73
|
+
cache.set(this.norm(linkPath), target);
|
|
74
|
+
this.flush();
|
|
75
|
+
}
|
|
76
|
+
/** Remove a symlink. Returns true if it existed. */
|
|
77
|
+
delete(linkPath) {
|
|
78
|
+
const cache = this.load();
|
|
79
|
+
const ok = cache.delete(this.norm(linkPath));
|
|
80
|
+
if (ok)
|
|
81
|
+
this.flush();
|
|
82
|
+
return ok;
|
|
83
|
+
}
|
|
84
|
+
/** Check if `path` is registered as a symlink (no chain resolution). */
|
|
85
|
+
isSymlink(path) {
|
|
86
|
+
return this.load().has(this.norm(path));
|
|
87
|
+
}
|
|
88
|
+
/** Get the immediate target of a symlink. Returns null if not a symlink. */
|
|
89
|
+
readlink(path) {
|
|
90
|
+
const v = this.load().get(this.norm(path));
|
|
91
|
+
return v === undefined ? null : v;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Follow a symlink chain until we hit a non-symlink (or run out of
|
|
95
|
+
* hops). Returns the resolved path (canonicalized to no-leading-slash).
|
|
96
|
+
* If the chain breaks (max-hops or missing target), returns the
|
|
97
|
+
* last-resolved path or null.
|
|
98
|
+
*
|
|
99
|
+
* `cwd` is used to resolve RELATIVE symlink targets (target without
|
|
100
|
+
* leading `/`). POSIX semantics: relative targets resolve from the
|
|
101
|
+
* symlink's directory, not the current cwd.
|
|
102
|
+
*/
|
|
103
|
+
resolveChain(startPath) {
|
|
104
|
+
let cur = this.norm(startPath);
|
|
105
|
+
for (let hops = 0; hops < 40; hops++) {
|
|
106
|
+
const target = this.load().get(cur);
|
|
107
|
+
if (target === undefined)
|
|
108
|
+
return cur; // not a symlink — done
|
|
109
|
+
if (target.startsWith('/')) {
|
|
110
|
+
cur = this.norm(target);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
// Relative target: resolve from symlink's parent dir.
|
|
114
|
+
const parent = cur.includes('/') ? cur.substring(0, cur.lastIndexOf('/')) : '';
|
|
115
|
+
const parts = (parent + '/' + target).split('/');
|
|
116
|
+
const out = [];
|
|
117
|
+
for (const s of parts) {
|
|
118
|
+
if (s === '..')
|
|
119
|
+
out.pop();
|
|
120
|
+
else if (s !== '.' && s !== '')
|
|
121
|
+
out.push(s);
|
|
122
|
+
}
|
|
123
|
+
cur = out.join('/');
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// ELOOP
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
/** List all currently-registered symlinks (debugging / ls -la support). */
|
|
130
|
+
list() {
|
|
131
|
+
const out = [];
|
|
132
|
+
for (const [k, v] of this.load()) {
|
|
133
|
+
out.push({ link: k, target: v });
|
|
134
|
+
}
|
|
135
|
+
return out;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* nimbus-wrangler.ts — Lightweight wrangler dev replacement for Nimbus.
|
|
3
|
+
*
|
|
4
|
+
* Architecture (from spec §8):
|
|
5
|
+
* nimbus-wrangler dev:
|
|
6
|
+
* 1. Reads wrangler.jsonc/toml from VFS
|
|
7
|
+
* 2. Bundles user's Worker code via EsbuildService
|
|
8
|
+
* 3. Creates a dynamic worker via LOADER.load() with the bundled code
|
|
9
|
+
* 4. Routes /worker/* requests to the dynamic worker's fetch()
|
|
10
|
+
* 5. On VFS file change: re-bundles and recreates the dynamic worker
|
|
11
|
+
* 6. Simulates KV via the worker's own storage
|
|
12
|
+
*
|
|
13
|
+
* The dynamic worker IS the user's Worker — running on the actual
|
|
14
|
+
* Cloudflare Workers runtime, not a simulation.
|
|
15
|
+
*/
|
|
16
|
+
import type { SqliteVFS } from '../vfs/sqlite-vfs.js';
|
|
17
|
+
import type { EsbuildService } from '../runtime/esbuild-service.js';
|
|
18
|
+
export interface NimbusWranglerOptions {
|
|
19
|
+
vfs: SqliteVFS;
|
|
20
|
+
esbuild: EsbuildService;
|
|
21
|
+
env: any;
|
|
22
|
+
/**
|
|
23
|
+
* Supervisor DO's DurableObjectState. Required for ctx.facets.get()
|
|
24
|
+
* when synthesizing durable_objects bindings (Phase 3). Also used for
|
|
25
|
+
* ctx.exports loopback bindings when synthesizing assets / loaders.
|
|
26
|
+
*/
|
|
27
|
+
ctx?: any;
|
|
28
|
+
root: string;
|
|
29
|
+
onLog: (msg: string) => void;
|
|
30
|
+
onHmrMessage: (msg: any) => void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Rewrite a Location header emitted by the inner Worker so that, when
|
|
34
|
+
* the browser follows it, the browser hits the outer-prefixed URL.
|
|
35
|
+
*
|
|
36
|
+
* Cases handled:
|
|
37
|
+
* - Same-origin absolute URL (http://localhost:.../s/foo/)
|
|
38
|
+
* → prepend outerWorkerBase to the pathname
|
|
39
|
+
* - Origin-relative (/s/foo/, /new)
|
|
40
|
+
* → prepend outerWorkerBase
|
|
41
|
+
* - Path-relative (foo/bar)
|
|
42
|
+
* → leave untouched (browser resolves against current URL, which
|
|
43
|
+
* is already outer-prefixed)
|
|
44
|
+
* - Cross-origin absolute URL (https://example.com/...)
|
|
45
|
+
* → leave untouched
|
|
46
|
+
* - Malformed / non-URL strings
|
|
47
|
+
* → leave untouched
|
|
48
|
+
*
|
|
49
|
+
* The outerWorkerBase is the full path prefix (e.g.
|
|
50
|
+
* "/s/nimble-otter-4271/worker"); do not include a trailing slash.
|
|
51
|
+
*/
|
|
52
|
+
export declare function rewriteLocationForOuter(location: string, outerWorkerBase: string, currentRequestUrl: string): string;
|
|
53
|
+
export declare class NimbusWrangler {
|
|
54
|
+
private vfs;
|
|
55
|
+
private esbuild;
|
|
56
|
+
private loaderEnv;
|
|
57
|
+
private supervisorCtx;
|
|
58
|
+
private root;
|
|
59
|
+
private onLog;
|
|
60
|
+
private onHmrMessage;
|
|
61
|
+
private running;
|
|
62
|
+
private config;
|
|
63
|
+
private workerStub;
|
|
64
|
+
private buildVersion;
|
|
65
|
+
private unsubVfs;
|
|
66
|
+
private rebuildTimer;
|
|
67
|
+
/** DO class map: binding name → DurableObjectClass from the inner worker. */
|
|
68
|
+
private doClassMap;
|
|
69
|
+
/** Facet names we've created via ctx.facets.get — aborted on rebuild / stop. */
|
|
70
|
+
private doFacetNames;
|
|
71
|
+
constructor(opts: NimbusWranglerOptions);
|
|
72
|
+
/** Start the wrangler dev server. */
|
|
73
|
+
start(): Promise<boolean>;
|
|
74
|
+
/** Stop the wrangler dev server. */
|
|
75
|
+
stop(): void;
|
|
76
|
+
get isRunning(): boolean;
|
|
77
|
+
private readConfig;
|
|
78
|
+
/** Minimal TOML parser — handles key = "value" and main/name/compatibility_date. */
|
|
79
|
+
private parseMinimalToml;
|
|
80
|
+
/**
|
|
81
|
+
* Resolve the user's `main:` entry to a canonical VFS-key path.
|
|
82
|
+
*
|
|
83
|
+
* The wrangler.jsonc `main` field is user-controlled and templates
|
|
84
|
+
* commonly emit any of:
|
|
85
|
+
* - "src/index.ts" — clean relative
|
|
86
|
+
* - "./src/index.ts" — npm-style with leading dot
|
|
87
|
+
* - "/src/index.ts" — workspace-absolute mistake
|
|
88
|
+
* - "src//index.ts" — accidental double-slash
|
|
89
|
+
*
|
|
90
|
+
* Naive `this.root + '/' + main` concatenation produced a malformed
|
|
91
|
+
* VFS key for every shape except the first, so vfs.exists() returned
|
|
92
|
+
* false even when the file was present at the canonical location.
|
|
93
|
+
*
|
|
94
|
+
* normalizeVfsPath collapses '.', '..', '//' runs and strips leading
|
|
95
|
+
* slashes — exactly the canonicalization SqliteVFS expects (every
|
|
96
|
+
* inode key in the live store is no-leading-slash, no internal
|
|
97
|
+
* doubles; src/vfs/sqlite-vfs.ts:_mkdirSingle uses the same
|
|
98
|
+
* `path.split('/').filter(Boolean)` shape via `normalizePath`).
|
|
99
|
+
*/
|
|
100
|
+
private resolveEntryPath;
|
|
101
|
+
private buildAndLoad;
|
|
102
|
+
private buildInnerEnv;
|
|
103
|
+
private handleVfsEvents;
|
|
104
|
+
/**
|
|
105
|
+
* Forward a request to the user's Worker.
|
|
106
|
+
* Called from the DO's fetch() handler for /worker/* paths.
|
|
107
|
+
*
|
|
108
|
+
* Three things this proxy does besides a raw fetch:
|
|
109
|
+
* 1. Buffers the request body to an ArrayBuffer before forwarding.
|
|
110
|
+
* The inner Worker can legitimately respond with a 302 (e.g.
|
|
111
|
+
* Nimbus-in-Nimbus: POST /new → 302 /s/<id>/). Workerd's `fetch`
|
|
112
|
+
* defaults to follow-redirects which requires replaying the body;
|
|
113
|
+
* a stream body can only be read once. Buffering first sidesteps
|
|
114
|
+
* the "one-time-use body encountered a redirect" error. POSTs to
|
|
115
|
+
* Nimbus's own /new endpoint are typically empty, but KV/D1 sims
|
|
116
|
+
* and user workers may send non-trivial bodies.
|
|
117
|
+
* 2. Uses `redirect: 'manual'` so the inner's Location header comes
|
|
118
|
+
* back unchanged. We rewrite it below to prepend the outer worker
|
|
119
|
+
* prefix — otherwise the browser follows a bare `/s/<id>/` URL,
|
|
120
|
+
* which is an OUTER route and spawns a different session, not
|
|
121
|
+
* what the user wanted.
|
|
122
|
+
* 3. Replaces a "Not found" 404 at the inner root with a small
|
|
123
|
+
* landing page. Nimbus itself (the likely inner worker) has no
|
|
124
|
+
* route for `/` when loaded without an ASSETS binding — users
|
|
125
|
+
* hitting `/s/<outer>/worker/` directly would otherwise see a
|
|
126
|
+
* bare 9-byte "Not found" response and think the whole thing
|
|
127
|
+
* broke. The landing page explains the Worker is running and
|
|
128
|
+
* points them at `/worker/new` / their own routes.
|
|
129
|
+
*/
|
|
130
|
+
handleRequest(request: Request, pathname: string,
|
|
131
|
+
/**
|
|
132
|
+
* Outer-facing prefix of this proxy (e.g. "/s/nimble-otter-4271/worker").
|
|
133
|
+
* Used to rewrite inner-emitted Location headers that reference
|
|
134
|
+
* their own origin-relative paths. When absent, Location headers
|
|
135
|
+
* are passed through unchanged.
|
|
136
|
+
*/
|
|
137
|
+
outerWorkerBase?: string): Promise<Response>;
|
|
138
|
+
get stats(): {
|
|
139
|
+
running: boolean;
|
|
140
|
+
name: string;
|
|
141
|
+
main: string;
|
|
142
|
+
root: string;
|
|
143
|
+
buildVersion: number;
|
|
144
|
+
};
|
|
145
|
+
/** @internal — test seam: parse the wrangler config and store it. Returns true on success. */
|
|
146
|
+
_readConfigForTest(): boolean;
|
|
147
|
+
/** @internal — test seam: invoke buildInnerEnv() without a probe-load pass. */
|
|
148
|
+
_buildInnerEnvForTest(): Record<string, any>;
|
|
149
|
+
/** @internal — test seam: install the VFS file-watch listener and the
|
|
150
|
+
* mock-rebuild path (esbuild.build() is called, but the real
|
|
151
|
+
* buildAndLoad() pipeline is bypassed in favour of just calling
|
|
152
|
+
* esbuild). Used for hot-reload latency + nimbus-paths-not-watched
|
|
153
|
+
* probes. Production calls start() which installs the watcher AND the
|
|
154
|
+
* full rebuild pipeline. */
|
|
155
|
+
_installWatchersForTest(): void;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=nimbus-wrangler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nimbus-wrangler.d.ts","sourceRoot":"","sources":["../../src/wrangler/nimbus-wrangler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAqDpE,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,SAAS,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;IACxB,GAAG,EAAE,GAAG,CAAC;IACT;;;;OAIG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;CAClC;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CA+BR;AAyDD,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,YAAY,CAAqB;IAEzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,YAAY,CAAa;IACjC,6EAA6E;IAC7E,OAAO,CAAC,UAAU,CAA+B;IACjD,gFAAgF;IAChF,OAAO,CAAC,YAAY,CAA0B;gBAElC,IAAI,EAAE,qBAAqB;IAUvC,qCAAqC;IAC/B,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAqB/B,oCAAoC;IACpC,IAAI,IAAI,IAAI;IAgBZ,IAAI,SAAS,YAA2B;IAIxC,OAAO,CAAC,UAAU;IAiDlB,oFAAoF;IACpF,OAAO,CAAC,gBAAgB;IAqBxB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,gBAAgB;YAIV,YAAY;IA6L1B,OAAO,CAAC,aAAa;IAiOrB,OAAO,CAAC,eAAe;IAkCvB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,aAAa,CACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM;IAChB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,QAAQ,CAAC;IAsFpB,IAAI,KAAK;;;;;;MAQR;IAYD,8FAA8F;IAC9F,kBAAkB,IAAI,OAAO;IAK7B,+EAA+E;IAC/E,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI5C;;;;;gCAK4B;IAC5B,uBAAuB,IAAI,IAAI;CA4BhC"}
|