effect-start 0.26.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ChildProcess.d.ts +60 -0
- package/dist/ChildProcess.d.ts.map +1 -0
- package/dist/ChildProcess.js +30 -0
- package/dist/ChildProcess.js.map +1 -0
- package/dist/Commander.d.ts +101 -0
- package/dist/Commander.d.ts.map +1 -0
- package/dist/Commander.js +327 -0
- package/dist/Commander.js.map +1 -0
- package/dist/ContentNegotiation.d.ts +13 -0
- package/dist/ContentNegotiation.d.ts.map +1 -0
- package/dist/ContentNegotiation.js +360 -0
- package/dist/ContentNegotiation.js.map +1 -0
- package/dist/Cookies.d.ts +78 -0
- package/dist/Cookies.d.ts.map +1 -0
- package/dist/Cookies.js +303 -0
- package/dist/Cookies.js.map +1 -0
- package/dist/Development.d.ts +42 -0
- package/dist/Development.d.ts.map +1 -0
- package/dist/Development.js +60 -0
- package/dist/Development.js.map +1 -0
- package/dist/Docker.d.ts +51 -0
- package/dist/Docker.d.ts.map +1 -0
- package/dist/Docker.js +88 -0
- package/dist/Docker.js.map +1 -0
- package/dist/Effectify.d.ts +210 -0
- package/dist/Effectify.d.ts.map +1 -0
- package/dist/Effectify.js +20 -0
- package/dist/Effectify.js.map +1 -0
- package/dist/Entity.d.ts +48 -0
- package/dist/Entity.d.ts.map +1 -0
- package/dist/Entity.js +235 -0
- package/dist/Entity.js.map +1 -0
- package/dist/Fetch.d.ts +50 -0
- package/dist/Fetch.d.ts.map +1 -0
- package/dist/Fetch.js +136 -0
- package/dist/Fetch.js.map +1 -0
- package/dist/FilePathPattern.d.ts +30 -0
- package/dist/FilePathPattern.d.ts.map +1 -0
- package/dist/FilePathPattern.js +87 -0
- package/dist/FilePathPattern.js.map +1 -0
- package/dist/FileRouter.d.ts +57 -0
- package/dist/FileRouter.d.ts.map +1 -0
- package/dist/FileRouter.js +149 -0
- package/dist/FileRouter.js.map +1 -0
- package/dist/FileRouterCodegen.d.ts +19 -0
- package/dist/FileRouterCodegen.d.ts.map +1 -0
- package/dist/FileRouterCodegen.js +228 -0
- package/dist/FileRouterCodegen.js.map +1 -0
- package/dist/FileSystem.d.ts +159 -0
- package/dist/FileSystem.d.ts.map +1 -0
- package/dist/FileSystem.js +71 -0
- package/dist/FileSystem.js.map +1 -0
- package/dist/GlobalLayer.d.ts +4 -0
- package/dist/GlobalLayer.d.ts.map +1 -0
- package/dist/GlobalLayer.js +51 -0
- package/dist/GlobalLayer.js.map +1 -0
- package/dist/Http.d.ts +38 -0
- package/dist/Http.d.ts.map +1 -0
- package/dist/Http.js +89 -0
- package/dist/Http.js.map +1 -0
- package/dist/PathPattern.d.ts +135 -0
- package/dist/PathPattern.d.ts.map +1 -0
- package/dist/PathPattern.js +414 -0
- package/dist/PathPattern.js.map +1 -0
- package/dist/PlatformError.d.ts +39 -0
- package/dist/PlatformError.d.ts.map +1 -0
- package/dist/PlatformError.js +26 -0
- package/dist/PlatformError.js.map +1 -0
- package/dist/PlatformRuntime.d.ts +30 -0
- package/dist/PlatformRuntime.d.ts.map +1 -0
- package/dist/PlatformRuntime.js +50 -0
- package/dist/PlatformRuntime.js.map +1 -0
- package/dist/Route.d.ts +98 -0
- package/dist/Route.d.ts.map +1 -0
- package/dist/Route.js +101 -0
- package/dist/Route.js.map +1 -0
- package/dist/RouteBody.d.ts +48 -0
- package/dist/RouteBody.d.ts.map +1 -0
- package/dist/RouteBody.js +68 -0
- package/dist/RouteBody.js.map +1 -0
- package/dist/RouteError.d.ts +99 -0
- package/dist/RouteError.d.ts.map +1 -0
- package/dist/RouteError.js +56 -0
- package/dist/RouteError.js.map +1 -0
- package/dist/RouteHook.d.ts +13 -0
- package/dist/RouteHook.d.ts.map +1 -0
- package/dist/RouteHook.js +40 -0
- package/dist/RouteHook.js.map +1 -0
- package/dist/RouteHttp.d.ts +22 -0
- package/dist/RouteHttp.d.ts.map +1 -0
- package/dist/RouteHttp.js +259 -0
- package/dist/RouteHttp.js.map +1 -0
- package/dist/RouteHttpTracer.d.ts +11 -0
- package/dist/RouteHttpTracer.d.ts.map +1 -0
- package/dist/RouteHttpTracer.js +63 -0
- package/dist/RouteHttpTracer.js.map +1 -0
- package/dist/RouteMount.d.ts +87 -0
- package/dist/RouteMount.d.ts.map +1 -0
- package/dist/RouteMount.js +64 -0
- package/dist/RouteMount.js.map +1 -0
- package/dist/RouteSchema.d.ts +87 -0
- package/dist/RouteSchema.d.ts.map +1 -0
- package/dist/RouteSchema.js +189 -0
- package/dist/RouteSchema.js.map +1 -0
- package/dist/RouteSse.d.ts +22 -0
- package/dist/RouteSse.d.ts.map +1 -0
- package/dist/RouteSse.js +80 -0
- package/dist/RouteSse.js.map +1 -0
- package/dist/RouteTree.d.ts +58 -0
- package/dist/RouteTree.d.ts.map +1 -0
- package/dist/RouteTree.js +94 -0
- package/dist/RouteTree.js.map +1 -0
- package/dist/RouteTrie.d.ts +21 -0
- package/dist/RouteTrie.d.ts.map +1 -0
- package/dist/RouteTrie.js +153 -0
- package/dist/RouteTrie.js.map +1 -0
- package/dist/SchemaExtra.d.ts +8 -0
- package/dist/SchemaExtra.d.ts.map +1 -0
- package/dist/SchemaExtra.js +75 -0
- package/dist/SchemaExtra.js.map +1 -0
- package/dist/Socket.d.ts +28 -0
- package/dist/Socket.d.ts.map +1 -0
- package/dist/Socket.js +30 -0
- package/dist/Socket.js.map +1 -0
- package/dist/SqlIntrospect.d.ts +92 -0
- package/dist/SqlIntrospect.d.ts.map +1 -0
- package/dist/SqlIntrospect.js +478 -0
- package/dist/SqlIntrospect.js.map +1 -0
- package/dist/Start.d.ts +90 -0
- package/dist/Start.d.ts.map +1 -0
- package/dist/Start.js +91 -0
- package/dist/Start.js.map +1 -0
- package/dist/StartApp.d.ts +13 -0
- package/dist/StartApp.d.ts.map +1 -0
- package/dist/StartApp.js +4 -0
- package/dist/StartApp.js.map +1 -0
- package/dist/StreamExtra.d.ts +29 -0
- package/dist/StreamExtra.d.ts.map +1 -0
- package/dist/StreamExtra.js +101 -0
- package/dist/StreamExtra.js.map +1 -0
- package/dist/System.d.ts +9 -0
- package/dist/System.d.ts.map +1 -0
- package/dist/System.js +61 -0
- package/dist/System.js.map +1 -0
- package/dist/TuplePathPattern.d.ts +10 -0
- package/dist/TuplePathPattern.d.ts.map +1 -0
- package/dist/TuplePathPattern.js +69 -0
- package/dist/TuplePathPattern.js.map +1 -0
- package/dist/Unique.d.ts +68 -0
- package/dist/Unique.d.ts.map +1 -0
- package/dist/Unique.js +225 -0
- package/dist/Unique.js.map +1 -0
- package/dist/Values.d.ts +30 -0
- package/dist/Values.d.ts.map +1 -0
- package/dist/Values.js +46 -0
- package/dist/Values.js.map +1 -0
- package/dist/bun/BunBundle.d.ts +12 -0
- package/dist/bun/BunBundle.d.ts.map +1 -0
- package/dist/bun/BunBundle.js +138 -0
- package/dist/bun/BunBundle.js.map +1 -0
- package/dist/bun/BunChildProcessSpawner.d.ts +4 -0
- package/dist/bun/BunChildProcessSpawner.d.ts.map +1 -0
- package/dist/bun/BunChildProcessSpawner.js +99 -0
- package/dist/bun/BunChildProcessSpawner.js.map +1 -0
- package/dist/bun/BunImportTrackerPlugin.d.ts +14 -0
- package/dist/bun/BunImportTrackerPlugin.d.ts.map +1 -0
- package/dist/bun/BunImportTrackerPlugin.js +70 -0
- package/dist/bun/BunImportTrackerPlugin.js.map +1 -0
- package/dist/bun/BunRoute.d.ts +49 -0
- package/dist/bun/BunRoute.d.ts.map +1 -0
- package/dist/bun/BunRoute.js +122 -0
- package/dist/bun/BunRoute.js.map +1 -0
- package/dist/bun/BunRuntime.d.ts +3 -0
- package/dist/bun/BunRuntime.d.ts.map +1 -0
- package/dist/bun/BunRuntime.js +30 -0
- package/dist/bun/BunRuntime.js.map +1 -0
- package/dist/bun/BunServer.d.ts +52 -0
- package/dist/bun/BunServer.d.ts.map +1 -0
- package/dist/bun/BunServer.js +262 -0
- package/dist/bun/BunServer.js.map +1 -0
- package/dist/bun/BunVirtualFilesPlugin.d.ts +5 -0
- package/dist/bun/BunVirtualFilesPlugin.d.ts.map +1 -0
- package/dist/bun/BunVirtualFilesPlugin.js +41 -0
- package/dist/bun/BunVirtualFilesPlugin.js.map +1 -0
- package/dist/bun/_BunEnhancedResolve.d.ts +46 -0
- package/dist/bun/_BunEnhancedResolve.d.ts.map +1 -0
- package/dist/bun/_BunEnhancedResolve.js +103 -0
- package/dist/bun/_BunEnhancedResolve.js.map +1 -0
- package/dist/bun/index.d.ts +6 -0
- package/dist/bun/index.d.ts.map +1 -0
- package/dist/bun/index.js +6 -0
- package/dist/bun/index.js.map +1 -0
- package/dist/bundler/Bundle.d.ts +62 -0
- package/dist/bundler/Bundle.d.ts.map +1 -0
- package/dist/bundler/Bundle.js +49 -0
- package/dist/bundler/Bundle.js.map +1 -0
- package/dist/bundler/BundleFiles.d.ts +14 -0
- package/dist/bundler/BundleFiles.d.ts.map +1 -0
- package/dist/bundler/BundleFiles.js +97 -0
- package/dist/bundler/BundleFiles.js.map +1 -0
- package/dist/bundler/BundleRoute.d.ts +27 -0
- package/dist/bundler/BundleRoute.d.ts.map +1 -0
- package/dist/bundler/BundleRoute.js +52 -0
- package/dist/bundler/BundleRoute.js.map +1 -0
- package/dist/client/Overlay.d.ts +3 -0
- package/dist/client/Overlay.d.ts.map +1 -0
- package/dist/client/Overlay.js +33 -0
- package/dist/client/Overlay.js.map +1 -0
- package/dist/client/ScrollState.d.ts +7 -0
- package/dist/client/ScrollState.d.ts.map +1 -0
- package/dist/client/ScrollState.js +95 -0
- package/dist/client/ScrollState.js.map +1 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +80 -0
- package/dist/client/index.js.map +1 -0
- package/dist/datastar/actions/fetch.d.ts +31 -0
- package/dist/datastar/actions/fetch.d.ts.map +1 -0
- package/dist/datastar/actions/fetch.js +404 -0
- package/dist/datastar/actions/fetch.js.map +1 -0
- package/dist/datastar/actions/peek.d.ts +2 -0
- package/dist/datastar/actions/peek.d.ts.map +1 -0
- package/dist/datastar/actions/peek.js +14 -0
- package/dist/datastar/actions/peek.js.map +1 -0
- package/dist/datastar/actions/setAll.d.ts +2 -0
- package/dist/datastar/actions/setAll.d.ts.map +1 -0
- package/dist/datastar/actions/setAll.js +13 -0
- package/dist/datastar/actions/setAll.js.map +1 -0
- package/dist/datastar/actions/toggleAll.d.ts +2 -0
- package/dist/datastar/actions/toggleAll.d.ts.map +1 -0
- package/dist/datastar/actions/toggleAll.js +13 -0
- package/dist/datastar/actions/toggleAll.js.map +1 -0
- package/dist/datastar/attributes/attr.d.ts +2 -0
- package/dist/datastar/attributes/attr.d.ts.map +1 -0
- package/dist/datastar/attributes/attr.js +49 -0
- package/dist/datastar/attributes/attr.js.map +1 -0
- package/dist/datastar/attributes/bind.d.ts +2 -0
- package/dist/datastar/attributes/bind.d.ts.map +1 -0
- package/dist/datastar/attributes/bind.js +176 -0
- package/dist/datastar/attributes/bind.js.map +1 -0
- package/dist/datastar/attributes/class.d.ts +2 -0
- package/dist/datastar/attributes/class.d.ts.map +1 -0
- package/dist/datastar/attributes/class.js +48 -0
- package/dist/datastar/attributes/class.js.map +1 -0
- package/dist/datastar/attributes/computed.d.ts +2 -0
- package/dist/datastar/attributes/computed.d.ts.map +1 -0
- package/dist/datastar/attributes/computed.js +27 -0
- package/dist/datastar/attributes/computed.js.map +1 -0
- package/dist/datastar/attributes/effect.d.ts +2 -0
- package/dist/datastar/attributes/effect.d.ts.map +1 -0
- package/dist/datastar/attributes/effect.js +10 -0
- package/dist/datastar/attributes/effect.js.map +1 -0
- package/dist/datastar/attributes/indicator.d.ts +2 -0
- package/dist/datastar/attributes/indicator.d.ts.map +1 -0
- package/dist/datastar/attributes/indicator.js +31 -0
- package/dist/datastar/attributes/indicator.js.map +1 -0
- package/dist/datastar/attributes/init.d.ts +2 -0
- package/dist/datastar/attributes/init.d.ts.map +1 -0
- package/dist/datastar/attributes/init.js +27 -0
- package/dist/datastar/attributes/init.js.map +1 -0
- package/dist/datastar/attributes/jsonSignals.d.ts +2 -0
- package/dist/datastar/attributes/jsonSignals.d.ts.map +1 -0
- package/dist/datastar/attributes/jsonSignals.js +31 -0
- package/dist/datastar/attributes/jsonSignals.js.map +1 -0
- package/dist/datastar/attributes/on.d.ts +2 -0
- package/dist/datastar/attributes/on.d.ts.map +1 -0
- package/dist/datastar/attributes/on.js +79 -0
- package/dist/datastar/attributes/on.js.map +1 -0
- package/dist/datastar/attributes/onIntersect.d.ts +2 -0
- package/dist/datastar/attributes/onIntersect.d.ts.map +1 -0
- package/dist/datastar/attributes/onIntersect.js +54 -0
- package/dist/datastar/attributes/onIntersect.js.map +1 -0
- package/dist/datastar/attributes/onInterval.d.ts +2 -0
- package/dist/datastar/attributes/onInterval.d.ts.map +1 -0
- package/dist/datastar/attributes/onInterval.js +31 -0
- package/dist/datastar/attributes/onInterval.js.map +1 -0
- package/dist/datastar/attributes/onSignalPatch.d.ts +2 -0
- package/dist/datastar/attributes/onSignalPatch.d.ts.map +1 -0
- package/dist/datastar/attributes/onSignalPatch.js +43 -0
- package/dist/datastar/attributes/onSignalPatch.js.map +1 -0
- package/dist/datastar/attributes/ref.d.ts +2 -0
- package/dist/datastar/attributes/ref.d.ts.map +1 -0
- package/dist/datastar/attributes/ref.js +11 -0
- package/dist/datastar/attributes/ref.js.map +1 -0
- package/dist/datastar/attributes/show.d.ts +2 -0
- package/dist/datastar/attributes/show.d.ts.map +1 -0
- package/dist/datastar/attributes/show.js +32 -0
- package/dist/datastar/attributes/show.js.map +1 -0
- package/dist/datastar/attributes/signals.d.ts +2 -0
- package/dist/datastar/attributes/signals.d.ts.map +1 -0
- package/dist/datastar/attributes/signals.js +18 -0
- package/dist/datastar/attributes/signals.js.map +1 -0
- package/dist/datastar/attributes/style.d.ts +2 -0
- package/dist/datastar/attributes/style.d.ts.map +1 -0
- package/dist/datastar/attributes/style.js +51 -0
- package/dist/datastar/attributes/style.js.map +1 -0
- package/dist/datastar/attributes/text.d.ts +2 -0
- package/dist/datastar/attributes/text.d.ts.map +1 -0
- package/dist/datastar/attributes/text.js +27 -0
- package/dist/datastar/attributes/text.js.map +1 -0
- package/dist/datastar/engine.d.ts +163 -0
- package/dist/datastar/engine.d.ts.map +1 -0
- package/dist/datastar/engine.js +1000 -0
- package/dist/datastar/engine.js.map +1 -0
- package/dist/datastar/index.d.ts +25 -0
- package/dist/datastar/index.d.ts.map +1 -0
- package/dist/datastar/index.js +25 -0
- package/dist/datastar/index.js.map +1 -0
- package/dist/datastar/utils.d.ts +52 -0
- package/dist/datastar/utils.d.ts.map +1 -0
- package/dist/datastar/utils.js +203 -0
- package/dist/datastar/utils.js.map +1 -0
- package/dist/datastar/watchers/patchElements.d.ts +2 -0
- package/dist/datastar/watchers/patchElements.d.ts.map +1 -0
- package/dist/datastar/watchers/patchElements.js +398 -0
- package/dist/datastar/watchers/patchElements.js.map +1 -0
- package/dist/datastar/watchers/patchSignals.d.ts +2 -0
- package/dist/datastar/watchers/patchSignals.d.ts.map +1 -0
- package/dist/datastar/watchers/patchSignals.js +15 -0
- package/dist/datastar/watchers/patchSignals.js.map +1 -0
- package/dist/experimental/EncryptedCookies.d.ts +49 -0
- package/dist/experimental/EncryptedCookies.d.ts.map +1 -0
- package/dist/experimental/EncryptedCookies.js +213 -0
- package/dist/experimental/EncryptedCookies.js.map +1 -0
- package/dist/experimental/index.d.ts +2 -0
- package/dist/experimental/index.d.ts.map +1 -0
- package/dist/experimental/index.js +2 -0
- package/dist/experimental/index.js.map +1 -0
- package/dist/hyper/Hyper.d.ts +26 -0
- package/dist/hyper/Hyper.d.ts.map +1 -0
- package/dist/hyper/Hyper.js +24 -0
- package/dist/hyper/Hyper.js.map +1 -0
- package/dist/hyper/HyperHtml.d.ts +24 -0
- package/dist/hyper/HyperHtml.d.ts.map +1 -0
- package/dist/hyper/HyperHtml.js +153 -0
- package/dist/hyper/HyperHtml.js.map +1 -0
- package/dist/hyper/HyperHtml.test.d.ts +2 -0
- package/dist/hyper/HyperHtml.test.d.ts.map +1 -0
- package/dist/hyper/HyperHtml.test.js +283 -0
- package/dist/hyper/HyperHtml.test.js.map +1 -0
- package/dist/hyper/HyperNode.d.ts +15 -0
- package/dist/hyper/HyperNode.d.ts.map +1 -0
- package/dist/hyper/HyperNode.js +12 -0
- package/dist/hyper/HyperNode.js.map +1 -0
- package/dist/hyper/HyperRoute.d.ts +9 -0
- package/dist/hyper/HyperRoute.d.ts.map +1 -0
- package/dist/hyper/HyperRoute.js +33 -0
- package/dist/hyper/HyperRoute.js.map +1 -0
- package/dist/hyper/HyperRoute.test.d.ts +2 -0
- package/dist/hyper/HyperRoute.test.d.ts.map +1 -0
- package/dist/hyper/HyperRoute.test.js +86 -0
- package/dist/hyper/HyperRoute.test.js.map +1 -0
- package/dist/hyper/html.d.ts +11 -0
- package/dist/hyper/html.d.ts.map +1 -0
- package/dist/hyper/html.js +31 -0
- package/dist/hyper/html.js.map +1 -0
- package/dist/hyper/index.d.ts +7 -0
- package/dist/hyper/index.d.ts.map +1 -0
- package/dist/hyper/index.js +6 -0
- package/dist/hyper/index.js.map +1 -0
- package/dist/hyper/jsx-runtime.d.ts +8 -0
- package/dist/hyper/jsx-runtime.d.ts.map +1 -0
- package/dist/hyper/jsx-runtime.js +9 -0
- package/dist/hyper/jsx-runtime.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/lint/plugin.d.ts +121 -0
- package/dist/lint/plugin.d.ts.map +1 -0
- package/dist/lint/plugin.js +537 -0
- package/dist/lint/plugin.js.map +1 -0
- package/dist/node/NodeFileSystem.d.ts +8 -0
- package/dist/node/NodeFileSystem.d.ts.map +1 -0
- package/dist/node/NodeFileSystem.js +411 -0
- package/dist/node/NodeFileSystem.js.map +1 -0
- package/dist/node/NodeUtils.d.ts +3 -0
- package/dist/node/NodeUtils.d.ts.map +1 -0
- package/dist/node/NodeUtils.js +21 -0
- package/dist/node/NodeUtils.js.map +1 -0
- package/dist/sql/SqlCache.d.ts +18 -0
- package/dist/sql/SqlCache.d.ts.map +1 -0
- package/dist/sql/SqlCache.js +31 -0
- package/dist/sql/SqlCache.js.map +1 -0
- package/dist/sql/SqlClient.d.ts +88 -0
- package/dist/sql/SqlClient.d.ts.map +1 -0
- package/dist/sql/SqlClient.js +171 -0
- package/dist/sql/SqlClient.js.map +1 -0
- package/dist/sql/bun/index.d.ts +6 -0
- package/dist/sql/bun/index.d.ts.map +1 -0
- package/dist/sql/bun/index.js +132 -0
- package/dist/sql/bun/index.js.map +1 -0
- package/dist/sql/index.d.ts +3 -0
- package/dist/sql/index.d.ts.map +1 -0
- package/dist/sql/index.js +3 -0
- package/dist/sql/index.js.map +1 -0
- package/dist/sql/libsql/index.d.ts +15 -0
- package/dist/sql/libsql/index.d.ts.map +1 -0
- package/dist/sql/libsql/index.js +132 -0
- package/dist/sql/libsql/index.js.map +1 -0
- package/dist/sql/mssql/index.d.ts +8 -0
- package/dist/sql/mssql/index.d.ts.map +1 -0
- package/dist/sql/mssql/index.js +145 -0
- package/dist/sql/mssql/index.js.map +1 -0
- package/dist/sql/postgres/index.d.ts +7 -0
- package/dist/sql/postgres/index.d.ts.map +1 -0
- package/dist/sql/postgres/index.js +136 -0
- package/dist/sql/postgres/index.js.map +1 -0
- package/dist/testing/TestLogger.d.ts +14 -0
- package/dist/testing/TestLogger.d.ts.map +1 -0
- package/dist/testing/TestLogger.js +33 -0
- package/dist/testing/TestLogger.js.map +1 -0
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +3 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/utils.d.ts +10 -0
- package/dist/testing/utils.d.ts.map +1 -0
- package/dist/testing/utils.js +40 -0
- package/dist/testing/utils.js.map +1 -0
- package/dist/tower/Simulation.d.ts +3 -0
- package/dist/tower/Simulation.d.ts.map +1 -0
- package/dist/tower/Simulation.js +606 -0
- package/dist/tower/Simulation.js.map +1 -0
- package/dist/tower/Tower.d.ts +11 -0
- package/dist/tower/Tower.d.ts.map +1 -0
- package/dist/tower/Tower.js +30 -0
- package/dist/tower/Tower.js.map +1 -0
- package/dist/tower/TowerErrors.d.ts +4 -0
- package/dist/tower/TowerErrors.d.ts.map +1 -0
- package/dist/tower/TowerErrors.js +200 -0
- package/dist/tower/TowerErrors.js.map +1 -0
- package/dist/tower/TowerLogger.d.ts +2 -0
- package/dist/tower/TowerLogger.d.ts.map +1 -0
- package/dist/tower/TowerLogger.js +46 -0
- package/dist/tower/TowerLogger.js.map +1 -0
- package/dist/tower/TowerMetrics.d.ts +4 -0
- package/dist/tower/TowerMetrics.d.ts.map +1 -0
- package/dist/tower/TowerMetrics.js +62 -0
- package/dist/tower/TowerMetrics.js.map +1 -0
- package/dist/tower/TowerProcess.d.ts +4 -0
- package/dist/tower/TowerProcess.d.ts.map +1 -0
- package/dist/tower/TowerProcess.js +50 -0
- package/dist/tower/TowerProcess.js.map +1 -0
- package/dist/tower/TowerStore.d.ts +199 -0
- package/dist/tower/TowerStore.d.ts.map +1 -0
- package/dist/tower/TowerStore.js +307 -0
- package/dist/tower/TowerStore.js.map +1 -0
- package/dist/tower/TowerTracer.d.ts +4 -0
- package/dist/tower/TowerTracer.d.ts.map +1 -0
- package/dist/tower/TowerTracer.js +111 -0
- package/dist/tower/TowerTracer.js.map +1 -0
- package/dist/tower/index.d.ts +4 -0
- package/dist/tower/index.d.ts.map +1 -0
- package/dist/tower/index.js +4 -0
- package/dist/tower/index.js.map +1 -0
- package/dist/tower/routes/errors/route.d.ts +11 -0
- package/dist/tower/routes/errors/route.d.ts.map +1 -0
- package/dist/tower/routes/errors/route.js +47 -0
- package/dist/tower/routes/errors/route.js.map +1 -0
- package/dist/tower/routes/fiberDetail.d.ts +17 -0
- package/dist/tower/routes/fiberDetail.d.ts.map +1 -0
- package/dist/tower/routes/fiberDetail.js +35 -0
- package/dist/tower/routes/fiberDetail.js.map +1 -0
- package/dist/tower/routes/fibers/route.d.ts +11 -0
- package/dist/tower/routes/fibers/route.d.ts.map +1 -0
- package/dist/tower/routes/fibers/route.js +27 -0
- package/dist/tower/routes/fibers/route.js.map +1 -0
- package/dist/tower/routes/layout.d.ts +10 -0
- package/dist/tower/routes/layout.d.ts.map +1 -0
- package/dist/tower/routes/layout.js +4 -0
- package/dist/tower/routes/layout.js.map +1 -0
- package/dist/tower/routes/logs/route.d.ts +11 -0
- package/dist/tower/routes/logs/route.d.ts.map +1 -0
- package/dist/tower/routes/logs/route.js +36 -0
- package/dist/tower/routes/logs/route.js.map +1 -0
- package/dist/tower/routes/metrics/route.d.ts +11 -0
- package/dist/tower/routes/metrics/route.d.ts.map +1 -0
- package/dist/tower/routes/metrics/route.js +20 -0
- package/dist/tower/routes/metrics/route.js.map +1 -0
- package/dist/tower/routes/route.d.ts +7 -0
- package/dist/tower/routes/route.d.ts.map +1 -0
- package/dist/tower/routes/route.js +6 -0
- package/dist/tower/routes/route.js.map +1 -0
- package/dist/tower/routes/routes/route.d.ts +7 -0
- package/dist/tower/routes/routes/route.d.ts.map +1 -0
- package/dist/tower/routes/routes/route.js +23 -0
- package/dist/tower/routes/routes/route.js.map +1 -0
- package/dist/tower/routes/services/route.d.ts +7 -0
- package/dist/tower/routes/services/route.d.ts.map +1 -0
- package/dist/tower/routes/services/route.js +15 -0
- package/dist/tower/routes/services/route.js.map +1 -0
- package/dist/tower/routes/system/route.d.ts +11 -0
- package/dist/tower/routes/system/route.d.ts.map +1 -0
- package/dist/tower/routes/system/route.js +21 -0
- package/dist/tower/routes/system/route.js.map +1 -0
- package/dist/tower/routes/traceDetail.d.ts +17 -0
- package/dist/tower/routes/traceDetail.d.ts.map +1 -0
- package/dist/tower/routes/traceDetail.js +20 -0
- package/dist/tower/routes/traceDetail.js.map +1 -0
- package/dist/tower/routes/traces/route.d.ts +11 -0
- package/dist/tower/routes/traces/route.d.ts.map +1 -0
- package/dist/tower/routes/traces/route.js +36 -0
- package/dist/tower/routes/traces/route.js.map +1 -0
- package/dist/tower/routes/tree.d.ts +142 -0
- package/dist/tower/routes/tree.d.ts.map +1 -0
- package/dist/tower/routes/tree.js +28 -0
- package/dist/tower/routes/tree.js.map +1 -0
- package/dist/tower/ui/Errors.d.ts +5 -0
- package/dist/tower/ui/Errors.d.ts.map +1 -0
- package/dist/tower/ui/Errors.js +30 -0
- package/dist/tower/ui/Errors.js.map +1 -0
- package/dist/tower/ui/Fibers.d.ts +25 -0
- package/dist/tower/ui/Fibers.d.ts.map +1 -0
- package/dist/tower/ui/Fibers.js +157 -0
- package/dist/tower/ui/Fibers.js.map +1 -0
- package/dist/tower/ui/Logs.d.ts +5 -0
- package/dist/tower/ui/Logs.d.ts.map +1 -0
- package/dist/tower/ui/Logs.js +28 -0
- package/dist/tower/ui/Logs.js.map +1 -0
- package/dist/tower/ui/Metrics.d.ts +5 -0
- package/dist/tower/ui/Metrics.d.ts.map +1 -0
- package/dist/tower/ui/Metrics.js +34 -0
- package/dist/tower/ui/Metrics.js.map +1 -0
- package/dist/tower/ui/Routes.d.ts +9 -0
- package/dist/tower/ui/Routes.d.ts.map +1 -0
- package/dist/tower/ui/Routes.js +79 -0
- package/dist/tower/ui/Routes.js.map +1 -0
- package/dist/tower/ui/Services.d.ts +11 -0
- package/dist/tower/ui/Services.d.ts.map +1 -0
- package/dist/tower/ui/Services.js +254 -0
- package/dist/tower/ui/Services.js.map +1 -0
- package/dist/tower/ui/Shell.d.ts +11 -0
- package/dist/tower/ui/Shell.d.ts.map +1 -0
- package/dist/tower/ui/Shell.js +12 -0
- package/dist/tower/ui/Shell.js.map +1 -0
- package/dist/tower/ui/System.d.ts +5 -0
- package/dist/tower/ui/System.d.ts.map +1 -0
- package/dist/tower/ui/System.js +65 -0
- package/dist/tower/ui/System.js.map +1 -0
- package/dist/tower/ui/Traces.d.ts +13 -0
- package/dist/tower/ui/Traces.d.ts.map +1 -0
- package/dist/tower/ui/Traces.js +219 -0
- package/dist/tower/ui/Traces.js.map +1 -0
- package/dist/x/cloudflare/CloudflareTunnel.d.ts +11 -0
- package/dist/x/cloudflare/CloudflareTunnel.d.ts.map +1 -0
- package/dist/x/cloudflare/CloudflareTunnel.js +31 -0
- package/dist/x/cloudflare/CloudflareTunnel.js.map +1 -0
- package/dist/x/cloudflare/index.d.ts +2 -0
- package/dist/x/cloudflare/index.d.ts.map +1 -0
- package/dist/x/cloudflare/index.js +2 -0
- package/dist/x/cloudflare/index.js.map +1 -0
- package/dist/x/tailscale/TailscaleTunnel.d.ts +16 -0
- package/dist/x/tailscale/TailscaleTunnel.d.ts.map +1 -0
- package/dist/x/tailscale/TailscaleTunnel.js +66 -0
- package/dist/x/tailscale/TailscaleTunnel.js.map +1 -0
- package/dist/x/tailscale/index.d.ts +2 -0
- package/dist/x/tailscale/index.d.ts.map +1 -0
- package/dist/x/tailscale/index.js +2 -0
- package/dist/x/tailscale/index.js.map +1 -0
- package/dist/x/tailwind/TailwindPlugin.d.ts +24 -0
- package/dist/x/tailwind/TailwindPlugin.d.ts.map +1 -0
- package/dist/x/tailwind/TailwindPlugin.js +220 -0
- package/dist/x/tailwind/TailwindPlugin.js.map +1 -0
- package/dist/x/tailwind/compile.d.ts +20 -0
- package/dist/x/tailwind/compile.d.ts.map +1 -0
- package/dist/x/tailwind/compile.js +155 -0
- package/dist/x/tailwind/compile.js.map +1 -0
- package/dist/x/tailwind/plugin.d.ts +3 -0
- package/dist/x/tailwind/plugin.d.ts.map +1 -0
- package/dist/x/tailwind/plugin.js +16 -0
- package/dist/x/tailwind/plugin.js.map +1 -0
- package/package.json +104 -21
- package/src/ChildProcess.ts +3 -6
- package/src/Docker.ts +190 -0
- package/src/Effectify.ts +7 -10
- package/src/Entity.ts +6 -6
- package/src/FileRouterCodegen.ts +4 -4
- package/src/FileSystem.ts +4 -11
- package/src/GlobalLayer.ts +85 -0
- package/src/PlatformRuntime.ts +8 -1
- package/src/RouteHook.ts +2 -2
- package/src/RouteSse.ts +3 -3
- package/src/SqlIntrospect.ts +13 -11
- package/src/Start.ts +112 -1
- package/src/System.ts +60 -3
- package/src/Unique.ts +59 -0
- package/src/Values.ts +11 -0
- package/src/bun/BunChildProcessSpawner.ts +1 -8
- package/src/bun/BunRoute.ts +2 -1
- package/src/bun/BunRuntime.ts +6 -12
- package/src/bun/BunServer.ts +54 -2
- package/src/datastar/watchers/patchElements.ts +0 -1
- package/src/hyper/HyperHtml.ts +11 -7
- package/src/hyper/jsx.d.ts +1 -1
- package/src/lint/plugin.js +239 -4
- package/src/sql/SqlCache.ts +50 -0
- package/src/sql/SqlClient.ts +400 -0
- package/src/sql/bun/index.ts +126 -57
- package/src/sql/index.ts +2 -1
- package/src/sql/libsql/index.ts +133 -85
- package/src/sql/libsql/libsql.d.ts +4 -1
- package/src/sql/mssql/index.ts +149 -120
- package/src/sql/mssql/mssql.d.ts +1 -0
- package/src/sql/postgres/index.ts +254 -0
- package/src/testing/TestLogger.ts +4 -4
- package/src/{console → tower}/Simulation.ts +10 -48
- package/src/tower/Tower.ts +47 -0
- package/src/{console/ConsoleErrors.ts → tower/TowerErrors.ts} +34 -23
- package/src/tower/TowerLogger.ts +52 -0
- package/src/{console/ConsoleMetrics.ts → tower/TowerMetrics.ts} +5 -5
- package/src/{console/ConsoleProcess.ts → tower/TowerProcess.ts} +4 -4
- package/src/tower/TowerStore.ts +505 -0
- package/src/tower/TowerTracer.ts +128 -0
- package/src/tower/index.ts +3 -0
- package/src/{console → tower}/routes/errors/route.tsx +26 -33
- package/src/{console → tower}/routes/fiberDetail.tsx +12 -15
- package/src/tower/routes/fibers/route.tsx +46 -0
- package/src/{console/console.html → tower/routes/layout.html} +1 -1
- package/src/{console → tower}/routes/layout.tsx +1 -1
- package/src/{console → tower}/routes/logs/route.tsx +12 -16
- package/src/{console → tower}/routes/metrics/route.tsx +5 -5
- package/src/tower/routes/route.tsx +8 -0
- package/src/{console → tower}/routes/routes/route.tsx +2 -2
- package/src/{console → tower}/routes/services/route.tsx +2 -2
- package/src/{console → tower}/routes/system/route.tsx +5 -5
- package/src/tower/routes/traceDetail.tsx +30 -0
- package/src/{console → tower}/routes/traces/route.tsx +25 -34
- package/src/{console → tower}/routes/tree.ts +0 -2
- package/src/{console → tower}/ui/Errors.tsx +19 -15
- package/src/{console → tower}/ui/Fibers.tsx +83 -68
- package/src/{console → tower}/ui/Logs.tsx +20 -16
- package/src/{console → tower}/ui/Metrics.tsx +18 -18
- package/src/{console → tower}/ui/Routes.tsx +14 -14
- package/src/{console → tower}/ui/Services.tsx +9 -9
- package/src/tower/ui/Shell.tsx +74 -0
- package/src/{console → tower}/ui/System.tsx +40 -30
- package/src/{console → tower}/ui/Traces.tsx +73 -80
- package/src/x/cloudflare/CloudflareTunnel.ts +1 -1
- package/src/x/tailscale/TailscaleTunnel.ts +3 -3
- package/src/x/tailwind/compile.ts +11 -14
- package/src/console/Console.ts +0 -42
- package/src/console/ConsoleLogger.ts +0 -56
- package/src/console/ConsoleStore.ts +0 -187
- package/src/console/ConsoleTracer.ts +0 -107
- package/src/console/index.ts +0 -3
- package/src/console/routes/fibers/route.tsx +0 -45
- package/src/console/routes/git/route.tsx +0 -64
- package/src/console/routes/route.tsx +0 -8
- package/src/console/routes/traceDetail.tsx +0 -22
- package/src/console/ui/Git.tsx +0 -182
- package/src/console/ui/Shell.tsx +0 -62
- package/src/sql/Sql.ts +0 -51
- package/src/sql/mssql/docker.ts +0 -117
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export type NavTab =
|
|
2
|
+
| "traces"
|
|
3
|
+
| "metrics"
|
|
4
|
+
| "logs"
|
|
5
|
+
| "errors"
|
|
6
|
+
| "fibers"
|
|
7
|
+
| "routes"
|
|
8
|
+
| "system"
|
|
9
|
+
| "services"
|
|
10
|
+
|
|
11
|
+
export function Sidebar(options: { prefix: string; active: NavTab }) {
|
|
12
|
+
return (
|
|
13
|
+
<div class="sidebar">
|
|
14
|
+
<div class="sidebar-title">Effect Tower</div>
|
|
15
|
+
<a
|
|
16
|
+
href={`${options.prefix}/traces`}
|
|
17
|
+
class={options.active === "traces" ? "nav-link active" : "nav-link"}
|
|
18
|
+
>
|
|
19
|
+
Traces
|
|
20
|
+
</a>
|
|
21
|
+
<a
|
|
22
|
+
href={`${options.prefix}/metrics`}
|
|
23
|
+
class={options.active === "metrics" ? "nav-link active" : "nav-link"}
|
|
24
|
+
>
|
|
25
|
+
Metrics
|
|
26
|
+
</a>
|
|
27
|
+
<a
|
|
28
|
+
href={`${options.prefix}/logs`}
|
|
29
|
+
class={options.active === "logs" ? "nav-link active" : "nav-link"}
|
|
30
|
+
>
|
|
31
|
+
Logs
|
|
32
|
+
</a>
|
|
33
|
+
<a
|
|
34
|
+
href={`${options.prefix}/errors`}
|
|
35
|
+
class={options.active === "errors" ? "nav-link active" : "nav-link"}
|
|
36
|
+
>
|
|
37
|
+
Errors
|
|
38
|
+
</a>
|
|
39
|
+
<a
|
|
40
|
+
href={`${options.prefix}/fibers`}
|
|
41
|
+
class={options.active === "fibers" ? "nav-link active" : "nav-link"}
|
|
42
|
+
>
|
|
43
|
+
Fibers
|
|
44
|
+
</a>
|
|
45
|
+
<a
|
|
46
|
+
href={`${options.prefix}/routes`}
|
|
47
|
+
class={options.active === "routes" ? "nav-link active" : "nav-link"}
|
|
48
|
+
>
|
|
49
|
+
Routes
|
|
50
|
+
</a>
|
|
51
|
+
<a
|
|
52
|
+
href={`${options.prefix}/system`}
|
|
53
|
+
class={options.active === "system" ? "nav-link active" : "nav-link"}
|
|
54
|
+
>
|
|
55
|
+
System
|
|
56
|
+
</a>
|
|
57
|
+
<a
|
|
58
|
+
href={`${options.prefix}/services`}
|
|
59
|
+
class={options.active === "services" ? "nav-link active" : "nav-link"}
|
|
60
|
+
>
|
|
61
|
+
Services
|
|
62
|
+
</a>
|
|
63
|
+
</div>
|
|
64
|
+
)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function Shell(options: { prefix: string; active: NavTab; children: any }) {
|
|
68
|
+
return (
|
|
69
|
+
<div class="shell">
|
|
70
|
+
<Sidebar prefix={options.prefix} active={options.active} />
|
|
71
|
+
<div class="content">{options.children}</div>
|
|
72
|
+
</div>
|
|
73
|
+
)
|
|
74
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type * as
|
|
1
|
+
import type * as TowerStore from "../TowerStore.ts"
|
|
2
2
|
|
|
3
3
|
function formatBytes(bytes: number): string {
|
|
4
4
|
if (bytes < 1024) return `${bytes}B`
|
|
@@ -18,25 +18,27 @@ function formatUptime(seconds: number): string {
|
|
|
18
18
|
return `${s}s`
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
function StatCard(
|
|
21
|
+
function StatCard(options: { label: string; value: string; sub?: string }) {
|
|
22
22
|
return (
|
|
23
23
|
<div style="background:#111827;border:1px solid #374151;border-radius:6px;padding:12px;min-width:180px">
|
|
24
|
-
<div style="color:#9ca3af;font-size:11px;margin-bottom:4px">{label}</div>
|
|
25
|
-
<div style="color:#f3f4f6;font-size:22px;font-weight:700;font-family:monospace">
|
|
26
|
-
|
|
24
|
+
<div style="color:#9ca3af;font-size:11px;margin-bottom:4px">{options.label}</div>
|
|
25
|
+
<div style="color:#f3f4f6;font-size:22px;font-weight:700;font-family:monospace">
|
|
26
|
+
{options.value}
|
|
27
|
+
</div>
|
|
28
|
+
{options.sub && <div style="color:#6b7280;font-size:10px;margin-top:2px">{options.sub}</div>}
|
|
27
29
|
</div>
|
|
28
30
|
)
|
|
29
31
|
}
|
|
30
32
|
|
|
31
|
-
function BarMeter(
|
|
32
|
-
const pct = total > 0 ? (used / total) * 100 : 0
|
|
33
|
+
function BarMeter(options: { label: string; used: number; total: number }) {
|
|
34
|
+
const pct = options.total > 0 ? (options.used / options.total) * 100 : 0
|
|
33
35
|
const color = pct > 90 ? "#ef4444" : pct > 70 ? "#f59e0b" : "#22c55e"
|
|
34
36
|
return (
|
|
35
37
|
<div style="background:#111827;border:1px solid #374151;border-radius:6px;padding:12px">
|
|
36
38
|
<div style="display:flex;justify-content:space-between;margin-bottom:6px">
|
|
37
|
-
<span style="color:#9ca3af;font-size:11px">{label}</span>
|
|
39
|
+
<span style="color:#9ca3af;font-size:11px">{options.label}</span>
|
|
38
40
|
<span style="color:#e5e7eb;font-size:11px;font-family:monospace">
|
|
39
|
-
{formatBytes(used)} / {formatBytes(total)}
|
|
41
|
+
{formatBytes(options.used)} / {formatBytes(options.total)}
|
|
40
42
|
</span>
|
|
41
43
|
</div>
|
|
42
44
|
<div style="height:8px;background:#1f2937;border-radius:4px;overflow:hidden">
|
|
@@ -51,41 +53,45 @@ function BarMeter({ label, used, total }: { label: string; used: number; total:
|
|
|
51
53
|
)
|
|
52
54
|
}
|
|
53
55
|
|
|
54
|
-
export function SystemStatsView(
|
|
55
|
-
const cpuTotal = stats.cpu.user + stats.cpu.system
|
|
56
|
+
export function SystemStatsView(options: { stats: TowerStore.ProcessStats }) {
|
|
57
|
+
const cpuTotal = options.stats.cpu.user + options.stats.cpu.system
|
|
56
58
|
return (
|
|
57
59
|
<>
|
|
58
60
|
<div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:12px">
|
|
59
61
|
<StatCard
|
|
60
62
|
label="PID"
|
|
61
|
-
value={String(stats.pid)}
|
|
62
|
-
sub={`${stats.system.platform} ${stats.system.arch}`}
|
|
63
|
+
value={String(options.stats.pid)}
|
|
64
|
+
sub={`${options.stats.system.platform} ${options.stats.system.arch}`}
|
|
63
65
|
/>
|
|
64
|
-
<StatCard label="Uptime" value={formatUptime(stats.uptime)} />
|
|
66
|
+
<StatCard label="Uptime" value={formatUptime(options.stats.uptime)} />
|
|
65
67
|
<StatCard
|
|
66
68
|
label="CPU Time"
|
|
67
69
|
value={`${(cpuTotal / 1_000_000).toFixed(2)}s`}
|
|
68
|
-
sub={`user ${(stats.cpu.user / 1_000_000).toFixed(2)}s / sys ${(stats.cpu.system / 1_000_000).toFixed(2)}s`}
|
|
70
|
+
sub={`user ${(options.stats.cpu.user / 1_000_000).toFixed(2)}s / sys ${(options.stats.cpu.system / 1_000_000).toFixed(2)}s`}
|
|
69
71
|
/>
|
|
70
72
|
<StatCard
|
|
71
73
|
label="Load Average"
|
|
72
|
-
value={stats.system.loadavg[0].toFixed(2)}
|
|
73
|
-
sub={`${stats.system.loadavg[0].toFixed(2)} / ${stats.system.loadavg[1].toFixed(2)} / ${stats.system.loadavg[2].toFixed(2)} (${stats.system.cpuCount} cores)`}
|
|
74
|
+
value={options.stats.system.loadavg[0].toFixed(2)}
|
|
75
|
+
sub={`${options.stats.system.loadavg[0].toFixed(2)} / ${options.stats.system.loadavg[1].toFixed(2)} / ${options.stats.system.loadavg[2].toFixed(2)} (${options.stats.system.cpuCount} cores)`}
|
|
74
76
|
/>
|
|
75
77
|
</div>
|
|
76
78
|
<div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;padding:0 12px 12px">
|
|
77
|
-
<BarMeter
|
|
79
|
+
<BarMeter
|
|
80
|
+
label="Heap Memory"
|
|
81
|
+
used={options.stats.memory.heapUsed}
|
|
82
|
+
total={options.stats.memory.heapTotal}
|
|
83
|
+
/>
|
|
78
84
|
<BarMeter
|
|
79
85
|
label="System Memory"
|
|
80
|
-
used={stats.system.totalmem - stats.system.freemem}
|
|
81
|
-
total={stats.system.totalmem}
|
|
86
|
+
used={options.stats.system.totalmem - options.stats.system.freemem}
|
|
87
|
+
total={options.stats.system.totalmem}
|
|
82
88
|
/>
|
|
83
89
|
</div>
|
|
84
90
|
<div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:0 12px 12px">
|
|
85
|
-
<StatCard label="RSS" value={formatBytes(stats.memory.rss)} />
|
|
86
|
-
<StatCard label="Peak RSS" value={formatBytes(stats.resourceUsage.maxRSS)} />
|
|
87
|
-
<StatCard label="External" value={formatBytes(stats.memory.external)} />
|
|
88
|
-
<StatCard label="Array Buffers" value={formatBytes(stats.memory.arrayBuffers)} />
|
|
91
|
+
<StatCard label="RSS" value={formatBytes(options.stats.memory.rss)} />
|
|
92
|
+
<StatCard label="Peak RSS" value={formatBytes(options.stats.resourceUsage.maxRSS)} />
|
|
93
|
+
<StatCard label="External" value={formatBytes(options.stats.memory.external)} />
|
|
94
|
+
<StatCard label="Array Buffers" value={formatBytes(options.stats.memory.arrayBuffers)} />
|
|
89
95
|
</div>
|
|
90
96
|
<div style="padding:0 12px 12px">
|
|
91
97
|
<div style="background:#111827;border:1px solid #374151;border-radius:6px;padding:12px">
|
|
@@ -94,33 +100,37 @@ export function SystemStatsView({ stats }: { stats: ConsoleStore.ProcessStats })
|
|
|
94
100
|
<div style="display:flex;justify-content:space-between;font-size:12px">
|
|
95
101
|
<span style="color:#6b7280">Page Faults (minor)</span>
|
|
96
102
|
<span style="color:#e5e7eb;font-family:monospace">
|
|
97
|
-
{stats.resourceUsage.minorPageFault}
|
|
103
|
+
{options.stats.resourceUsage.minorPageFault}
|
|
98
104
|
</span>
|
|
99
105
|
</div>
|
|
100
106
|
<div style="display:flex;justify-content:space-between;font-size:12px">
|
|
101
107
|
<span style="color:#6b7280">Page Faults (major)</span>
|
|
102
108
|
<span style="color:#e5e7eb;font-family:monospace">
|
|
103
|
-
{stats.resourceUsage.majorPageFault}
|
|
109
|
+
{options.stats.resourceUsage.majorPageFault}
|
|
104
110
|
</span>
|
|
105
111
|
</div>
|
|
106
112
|
<div style="display:flex;justify-content:space-between;font-size:12px">
|
|
107
113
|
<span style="color:#6b7280">FS Reads</span>
|
|
108
|
-
<span style="color:#e5e7eb;font-family:monospace">
|
|
114
|
+
<span style="color:#e5e7eb;font-family:monospace">
|
|
115
|
+
{options.stats.resourceUsage.fsRead}
|
|
116
|
+
</span>
|
|
109
117
|
</div>
|
|
110
118
|
<div style="display:flex;justify-content:space-between;font-size:12px">
|
|
111
119
|
<span style="color:#6b7280">FS Writes</span>
|
|
112
|
-
<span style="color:#e5e7eb;font-family:monospace">
|
|
120
|
+
<span style="color:#e5e7eb;font-family:monospace">
|
|
121
|
+
{options.stats.resourceUsage.fsWrite}
|
|
122
|
+
</span>
|
|
113
123
|
</div>
|
|
114
124
|
<div style="display:flex;justify-content:space-between;font-size:12px">
|
|
115
125
|
<span style="color:#6b7280">Context Switches (vol)</span>
|
|
116
126
|
<span style="color:#e5e7eb;font-family:monospace">
|
|
117
|
-
{stats.resourceUsage.voluntaryContextSwitches}
|
|
127
|
+
{options.stats.resourceUsage.voluntaryContextSwitches}
|
|
118
128
|
</span>
|
|
119
129
|
</div>
|
|
120
130
|
<div style="display:flex;justify-content:space-between;font-size:12px">
|
|
121
131
|
<span style="color:#6b7280">Context Switches (invol)</span>
|
|
122
132
|
<span style="color:#e5e7eb;font-family:monospace">
|
|
123
|
-
{stats.resourceUsage.involuntaryContextSwitches}
|
|
133
|
+
{options.stats.resourceUsage.involuntaryContextSwitches}
|
|
124
134
|
</span>
|
|
125
135
|
</div>
|
|
126
136
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as TowerStore from "../TowerStore.ts"
|
|
2
2
|
|
|
3
3
|
function formatDuration(ms: number | undefined): string {
|
|
4
4
|
if (ms == null) return "..."
|
|
@@ -13,22 +13,26 @@ function statusColor(status: string): string {
|
|
|
13
13
|
return "#eab308"
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
function KeyValue(
|
|
17
|
-
if (value == null) return null
|
|
16
|
+
function KeyValue(options: { label: string; value: string | number | bigint | undefined | null }) {
|
|
17
|
+
if (options.value == null) return null
|
|
18
18
|
return (
|
|
19
19
|
<div style="display:flex;gap:8px;padding:4px 0;border-bottom:1px solid #1e293b;font-size:12px">
|
|
20
|
-
<span style="color:#64748b;min-width:120px">{label}</span>
|
|
21
|
-
<span style="color:#e2e8f0;font-family:monospace;word-break:break-all">
|
|
20
|
+
<span style="color:#64748b;min-width:120px">{options.label}</span>
|
|
21
|
+
<span style="color:#e2e8f0;font-family:monospace;word-break:break-all">
|
|
22
|
+
{String(options.value)}
|
|
23
|
+
</span>
|
|
22
24
|
</div>
|
|
23
25
|
)
|
|
24
26
|
}
|
|
25
27
|
|
|
26
|
-
function StatusBadge(
|
|
27
|
-
const bg =
|
|
28
|
-
|
|
28
|
+
function StatusBadge(options: { status: string }) {
|
|
29
|
+
const bg =
|
|
30
|
+
options.status === "ok" ? "#166534" : options.status === "error" ? "#7f1d1d" : "#713f12"
|
|
31
|
+
const fg =
|
|
32
|
+
options.status === "ok" ? "#4ade80" : options.status === "error" ? "#fca5a5" : "#fde047"
|
|
29
33
|
return (
|
|
30
34
|
<span style={`font-size:11px;padding:2px 8px;border-radius:4px;background:${bg};color:${fg}`}>
|
|
31
|
-
{status}
|
|
35
|
+
{options.status}
|
|
32
36
|
</span>
|
|
33
37
|
)
|
|
34
38
|
}
|
|
@@ -36,22 +40,22 @@ function StatusBadge({ status }: { status: string }) {
|
|
|
36
40
|
// --- Tree building ---
|
|
37
41
|
|
|
38
42
|
interface TreeSpan {
|
|
39
|
-
span:
|
|
43
|
+
span: TowerStore.TowerSpan
|
|
40
44
|
depth: number
|
|
41
45
|
childCount: number
|
|
42
46
|
isLastChild: boolean
|
|
43
47
|
ancestorHasNextSibling: Array<boolean>
|
|
44
48
|
}
|
|
45
49
|
|
|
46
|
-
function buildSpanTree(spans: Array<
|
|
47
|
-
const byId = new Map<
|
|
48
|
-
const childrenOf = new Map<
|
|
50
|
+
function buildSpanTree(spans: Array<TowerStore.TowerSpan>): Array<TreeSpan> {
|
|
51
|
+
const byId = new Map<bigint, TowerStore.TowerSpan>()
|
|
52
|
+
const childrenOf = new Map<bigint, Array<TowerStore.TowerSpan>>()
|
|
49
53
|
|
|
50
54
|
for (const s of spans) {
|
|
51
55
|
byId.set(s.spanId, s)
|
|
52
56
|
}
|
|
53
57
|
|
|
54
|
-
const roots: Array<
|
|
58
|
+
const roots: Array<TowerStore.TowerSpan> = []
|
|
55
59
|
for (const s of spans) {
|
|
56
60
|
if (s.parentSpanId && byId.has(s.parentSpanId)) {
|
|
57
61
|
let children = childrenOf.get(s.parentSpanId)
|
|
@@ -65,7 +69,7 @@ function buildSpanTree(spans: Array<ConsoleStore.ConsoleSpan>): Array<TreeSpan>
|
|
|
65
69
|
}
|
|
66
70
|
}
|
|
67
71
|
|
|
68
|
-
const sortByStart = (a:
|
|
72
|
+
const sortByStart = (a: TowerStore.TowerSpan, b: TowerStore.TowerSpan) =>
|
|
69
73
|
Number(a.startTime - b.startTime)
|
|
70
74
|
|
|
71
75
|
roots.sort(sortByStart)
|
|
@@ -76,7 +80,7 @@ function buildSpanTree(spans: Array<ConsoleStore.ConsoleSpan>): Array<TreeSpan>
|
|
|
76
80
|
const result: Array<TreeSpan> = []
|
|
77
81
|
|
|
78
82
|
function walk(
|
|
79
|
-
span:
|
|
83
|
+
span: TowerStore.TowerSpan,
|
|
80
84
|
depth: number,
|
|
81
85
|
isLast: boolean,
|
|
82
86
|
ancestors: Array<boolean>,
|
|
@@ -103,25 +107,27 @@ function buildSpanTree(spans: Array<ConsoleStore.ConsoleSpan>): Array<TreeSpan>
|
|
|
103
107
|
|
|
104
108
|
// --- Components ---
|
|
105
109
|
|
|
106
|
-
function TreeConnectors(
|
|
107
|
-
if (tree.depth === 0) return null
|
|
110
|
+
function TreeConnectors(options: { tree: TreeSpan }) {
|
|
111
|
+
if (options.tree.depth === 0) return null
|
|
108
112
|
|
|
109
|
-
const indent = tree.depth * 20
|
|
113
|
+
const indent = options.tree.depth * 20
|
|
110
114
|
const elements: Array<any> = []
|
|
111
115
|
|
|
112
|
-
for (let i = 0; i < tree.ancestorHasNextSibling.length; i++) {
|
|
113
|
-
if (tree.ancestorHasNextSibling[i]) {
|
|
116
|
+
for (let i = 0; i < options.tree.ancestorHasNextSibling.length; i++) {
|
|
117
|
+
if (options.tree.ancestorHasNextSibling[i]) {
|
|
114
118
|
elements.push(<div class="wf-vline" style={`left:${i * 20 + 6}px`} />)
|
|
115
119
|
}
|
|
116
120
|
}
|
|
117
121
|
|
|
118
|
-
if (tree.isLastChild) {
|
|
119
|
-
elements.push(<div class="wf-elbow" style={`left:${(tree.depth - 1) * 20 + 6}px`} />)
|
|
122
|
+
if (options.tree.isLastChild) {
|
|
123
|
+
elements.push(<div class="wf-elbow" style={`left:${(options.tree.depth - 1) * 20 + 6}px`} />)
|
|
120
124
|
} else {
|
|
121
|
-
elements.push(<div class="wf-vline" style={`left:${(tree.depth - 1) * 20 + 6}px`} />)
|
|
125
|
+
elements.push(<div class="wf-vline" style={`left:${(options.tree.depth - 1) * 20 + 6}px`} />)
|
|
122
126
|
}
|
|
123
127
|
|
|
124
|
-
elements.push(
|
|
128
|
+
elements.push(
|
|
129
|
+
<div class="wf-hline" style={`left:${(options.tree.depth - 1) * 20 + 6}px;top:50%`} />,
|
|
130
|
+
)
|
|
125
131
|
|
|
126
132
|
return (
|
|
127
133
|
<div class="wf-tree" style={`width:${indent}px;position:relative`}>
|
|
@@ -130,11 +136,11 @@ function TreeConnectors({ tree }: { tree: TreeSpan }) {
|
|
|
130
136
|
)
|
|
131
137
|
}
|
|
132
138
|
|
|
133
|
-
function TimeAxis(
|
|
139
|
+
function TimeAxis(options: { totalMs: number }) {
|
|
134
140
|
const ticks = 5
|
|
135
141
|
const labels: Array<string> = []
|
|
136
142
|
for (let i = 0; i <= ticks; i++) {
|
|
137
|
-
labels.push(formatDuration((totalMs / ticks) * i))
|
|
143
|
+
labels.push(formatDuration((options.totalMs / ticks) * i))
|
|
138
144
|
}
|
|
139
145
|
return (
|
|
140
146
|
<div class="wf-axis">
|
|
@@ -148,21 +154,15 @@ function TimeAxis({ totalMs }: { totalMs: number }) {
|
|
|
148
154
|
)
|
|
149
155
|
}
|
|
150
156
|
|
|
151
|
-
function WaterfallRow({
|
|
152
|
-
tree
|
|
153
|
-
|
|
154
|
-
rootStart,
|
|
155
|
-
}: {
|
|
156
|
-
tree: TreeSpan
|
|
157
|
-
totalMs: number
|
|
158
|
-
rootStart: bigint
|
|
159
|
-
}) {
|
|
160
|
-
const s = tree.span
|
|
161
|
-
const offsetMs = Number(s.startTime - rootStart) / 1_000_000
|
|
157
|
+
function WaterfallRow(options: { tree: TreeSpan; totalMs: number; rootStart: bigint }) {
|
|
158
|
+
const s = options.tree.span
|
|
159
|
+
const offsetMs = Number(s.startTime - options.rootStart) / 1_000_000
|
|
162
160
|
const durMs = s.durationMs ?? 0
|
|
163
|
-
const leftPct = totalMs > 0 ? Math.min(100, (offsetMs / totalMs) * 100) : 0
|
|
161
|
+
const leftPct = options.totalMs > 0 ? Math.min(100, (offsetMs / options.totalMs) * 100) : 0
|
|
164
162
|
const widthPct =
|
|
165
|
-
totalMs > 0
|
|
163
|
+
options.totalMs > 0
|
|
164
|
+
? Math.max(0.5, Math.min(100 - leftPct, (durMs / options.totalMs) * 100))
|
|
165
|
+
: 100
|
|
166
166
|
const color = statusColor(s.status)
|
|
167
167
|
|
|
168
168
|
const durLabelLeft = leftPct + widthPct + 0.5
|
|
@@ -170,9 +170,9 @@ function WaterfallRow({
|
|
|
170
170
|
return (
|
|
171
171
|
<div class="wf-row">
|
|
172
172
|
<div class="wf-name">
|
|
173
|
-
<TreeConnectors tree={tree} />
|
|
173
|
+
<TreeConnectors tree={options.tree} />
|
|
174
174
|
<span style="overflow:hidden;text-overflow:ellipsis">{s.name}</span>
|
|
175
|
-
{tree.childCount > 0 && <span class="wf-badge">{tree.childCount}</span>}
|
|
175
|
+
{options.tree.childCount > 0 && <span class="wf-badge">{options.tree.childCount}</span>}
|
|
176
176
|
</div>
|
|
177
177
|
<div class="wf-bar-cell">
|
|
178
178
|
<div class="wf-bar" style={`left:${leftPct}%;width:${widthPct}%;background:${color}`} />
|
|
@@ -184,23 +184,19 @@ function WaterfallRow({
|
|
|
184
184
|
)
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
function MiniWaterfall({
|
|
188
|
-
spans
|
|
189
|
-
totalMs,
|
|
190
|
-
rootStart,
|
|
191
|
-
}: {
|
|
192
|
-
spans: Array<ConsoleStore.ConsoleSpan>
|
|
187
|
+
function MiniWaterfall(options: {
|
|
188
|
+
spans: Array<TowerStore.TowerSpan>
|
|
193
189
|
totalMs: number
|
|
194
190
|
rootStart: bigint
|
|
195
191
|
}) {
|
|
196
|
-
if (totalMs <= 0) return <div class="mini-wf" />
|
|
192
|
+
if (options.totalMs <= 0) return <div class="mini-wf" />
|
|
197
193
|
return (
|
|
198
194
|
<div class="mini-wf">
|
|
199
|
-
{spans.map((s) => {
|
|
200
|
-
const offsetMs = Number(s.startTime - rootStart) / 1_000_000
|
|
195
|
+
{options.spans.map((s) => {
|
|
196
|
+
const offsetMs = Number(s.startTime - options.rootStart) / 1_000_000
|
|
201
197
|
const durMs = s.durationMs ?? 0
|
|
202
|
-
const leftPct = Math.min(100, (offsetMs / totalMs) * 100)
|
|
203
|
-
const widthPct = Math.max(0.3, Math.min(100 - leftPct, (durMs / totalMs) * 100))
|
|
198
|
+
const leftPct = Math.min(100, (offsetMs / options.totalMs) * 100)
|
|
199
|
+
const widthPct = Math.max(0.3, Math.min(100 - leftPct, (durMs / options.totalMs) * 100))
|
|
204
200
|
return (
|
|
205
201
|
<div
|
|
206
202
|
class="mini-wf-bar"
|
|
@@ -215,9 +211,9 @@ function MiniWaterfall({
|
|
|
215
211
|
// --- Exports ---
|
|
216
212
|
|
|
217
213
|
export function groupByTraceId(
|
|
218
|
-
spans: Array<
|
|
219
|
-
): Map<
|
|
220
|
-
const groups = new Map<
|
|
214
|
+
spans: Array<TowerStore.TowerSpan>,
|
|
215
|
+
): Map<bigint, Array<TowerStore.TowerSpan>> {
|
|
216
|
+
const groups = new Map<bigint, Array<TowerStore.TowerSpan>>()
|
|
221
217
|
for (const span of spans) {
|
|
222
218
|
let group = groups.get(span.traceId)
|
|
223
219
|
if (!group) {
|
|
@@ -229,13 +225,13 @@ export function groupByTraceId(
|
|
|
229
225
|
return groups
|
|
230
226
|
}
|
|
231
227
|
|
|
232
|
-
export function TraceGroup(
|
|
233
|
-
if (spans.length === 0) return null
|
|
234
|
-
const root = spans.find((s) => !s.parentSpanId) ?? spans[0]
|
|
228
|
+
export function TraceGroup(options: { spans: Array<TowerStore.TowerSpan> }) {
|
|
229
|
+
if (options.spans.length === 0) return null
|
|
230
|
+
const root = options.spans.find((s) => !s.parentSpanId) ?? options.spans[0]
|
|
235
231
|
const traceId = root.traceId
|
|
236
232
|
const totalMs = root.durationMs ?? 0
|
|
237
233
|
const rootStart = root.startTime
|
|
238
|
-
const hasError = spans.some((s) => s.status === "error")
|
|
234
|
+
const hasError = options.spans.some((s) => s.status === "error")
|
|
239
235
|
const status = hasError ? "error" : root.status
|
|
240
236
|
|
|
241
237
|
return (
|
|
@@ -247,28 +243,28 @@ export function TraceGroup({ spans }: { spans: Array<ConsoleStore.ConsoleSpan> }
|
|
|
247
243
|
/>
|
|
248
244
|
</span>
|
|
249
245
|
<span class="tl-cell tl-cell-name">{root.name}</span>
|
|
250
|
-
<span class="tl-cell tl-cell-spans">{spans.length}</span>
|
|
246
|
+
<span class="tl-cell tl-cell-spans">{options.spans.length}</span>
|
|
251
247
|
<span class="tl-cell tl-cell-dur">{formatDuration(totalMs)}</span>
|
|
252
|
-
<span class="tl-cell tl-cell-id">{traceId.slice(0, 12)}</span>
|
|
248
|
+
<span class="tl-cell tl-cell-id">{String(traceId).slice(0, 12)}</span>
|
|
253
249
|
</summary>
|
|
254
250
|
<div class="tl-body">
|
|
255
251
|
<div style="display:flex;gap:12px;align-items:center;margin-bottom:8px">
|
|
256
252
|
<a
|
|
257
|
-
href={`${
|
|
253
|
+
href={`${TowerStore.store.prefix}/traces/${traceId}`}
|
|
258
254
|
style="color:#38bdf8;font-size:12px;text-decoration:none"
|
|
259
255
|
>
|
|
260
256
|
Full trace view
|
|
261
257
|
</a>
|
|
262
258
|
<StatusBadge status={status} />
|
|
263
259
|
<span style="color:#64748b;font-size:11px">
|
|
264
|
-
{spans.length} span{spans.length !== 1 ? "s" : ""}
|
|
260
|
+
{options.spans.length} span{options.spans.length !== 1 ? "s" : ""}
|
|
265
261
|
</span>
|
|
266
262
|
<span style="color:#64748b;font-size:11px;font-family:monospace">
|
|
267
263
|
{formatDuration(totalMs)}
|
|
268
264
|
</span>
|
|
269
265
|
<span style="color:#475569;font-size:10px;font-family:monospace">{traceId}</span>
|
|
270
266
|
</div>
|
|
271
|
-
{spans.map((s) => {
|
|
267
|
+
{options.spans.map((s) => {
|
|
272
268
|
const offsetMs = Number(s.startTime - rootStart) / 1_000_000
|
|
273
269
|
const leftPct = totalMs > 0 ? Math.min(100, (offsetMs / totalMs) * 100) : 0
|
|
274
270
|
const widthPct =
|
|
@@ -299,8 +295,8 @@ export function TraceGroup({ spans }: { spans: Array<ConsoleStore.ConsoleSpan> }
|
|
|
299
295
|
)
|
|
300
296
|
}
|
|
301
297
|
|
|
302
|
-
export function TraceGroups(
|
|
303
|
-
const groups = groupByTraceId(spans)
|
|
298
|
+
export function TraceGroups(options: { spans: Array<TowerStore.TowerSpan> }) {
|
|
299
|
+
const groups = groupByTraceId(options.spans)
|
|
304
300
|
const sorted = Array.from(groups.values())
|
|
305
301
|
.sort((a, b) => Number(b[0].startTime) - Number(a[0].startTime))
|
|
306
302
|
.slice(0, 50)
|
|
@@ -324,28 +320,25 @@ export function TraceGroups({ spans }: { spans: Array<ConsoleStore.ConsoleSpan>
|
|
|
324
320
|
)
|
|
325
321
|
}
|
|
326
322
|
|
|
327
|
-
export function TraceDetail({
|
|
328
|
-
|
|
329
|
-
spans,
|
|
330
|
-
}: {
|
|
331
|
-
prefix: string
|
|
332
|
-
spans: Array<ConsoleStore.ConsoleSpan>
|
|
333
|
-
}) {
|
|
334
|
-
if (spans.length === 0) {
|
|
323
|
+
export function TraceDetail(options: { prefix: string; spans: Array<TowerStore.TowerSpan> }) {
|
|
324
|
+
if (options.spans.length === 0) {
|
|
335
325
|
return <div class="empty">Trace not found</div>
|
|
336
326
|
}
|
|
337
|
-
const root = spans.find((s) => !s.parentSpanId) ?? spans[0]
|
|
327
|
+
const root = options.spans.find((s) => !s.parentSpanId) ?? options.spans[0]
|
|
338
328
|
const traceId = root.traceId
|
|
339
329
|
const totalMs = root.durationMs ?? 0
|
|
340
330
|
const rootStart = root.startTime
|
|
341
331
|
const startDate = new Date(Number(rootStart) / 1_000_000)
|
|
342
|
-
const tree = buildSpanTree(spans)
|
|
332
|
+
const tree = buildSpanTree(options.spans)
|
|
343
333
|
|
|
344
334
|
return (
|
|
345
335
|
<>
|
|
346
336
|
<div style="padding:12px 16px;border-bottom:1px solid #1e293b">
|
|
347
337
|
<div style="display:flex;align-items:center;gap:8px;margin-bottom:8px">
|
|
348
|
-
<a
|
|
338
|
+
<a
|
|
339
|
+
href={`${options.prefix}/traces`}
|
|
340
|
+
style="color:#64748b;text-decoration:none;font-size:12px"
|
|
341
|
+
>
|
|
349
342
|
Traces
|
|
350
343
|
</a>
|
|
351
344
|
<span style="color:#475569">/</span>
|
|
@@ -354,7 +347,7 @@ export function TraceDetail({
|
|
|
354
347
|
<div style="display:flex;gap:16px;font-size:12px;color:#94a3b8;align-items:center">
|
|
355
348
|
<StatusBadge status={root.status} />
|
|
356
349
|
<span>
|
|
357
|
-
{spans.length} span{spans.length !== 1 ? "s" : ""}
|
|
350
|
+
{options.spans.length} span{options.spans.length !== 1 ? "s" : ""}
|
|
358
351
|
</span>
|
|
359
352
|
<span>{formatDuration(totalMs)}</span>
|
|
360
353
|
<span>{startDate.toLocaleTimeString("en", { hour12: false })}</span>
|
|
@@ -363,7 +356,7 @@ export function TraceDetail({
|
|
|
363
356
|
</div>
|
|
364
357
|
|
|
365
358
|
<div style="padding:8px 16px">
|
|
366
|
-
<MiniWaterfall spans={spans} totalMs={totalMs} rootStart={rootStart} />
|
|
359
|
+
<MiniWaterfall spans={options.spans} totalMs={totalMs} rootStart={rootStart} />
|
|
367
360
|
</div>
|
|
368
361
|
|
|
369
362
|
<div style="padding:0 8px">
|
|
@@ -20,7 +20,7 @@ export const start = (opts: {
|
|
|
20
20
|
opts.tunnelName,
|
|
21
21
|
].flatMap((v) => v)
|
|
22
22
|
|
|
23
|
-
const proc = yield* System.spawn(command, args)
|
|
23
|
+
const proc = yield* System.spawn([command, ...args])
|
|
24
24
|
|
|
25
25
|
yield* Effect.logInfo(
|
|
26
26
|
`Cloudflare tunnel started name=${opts.tunnelName} pid=${proc.pid} tunnelUrl=${
|
|
@@ -18,7 +18,7 @@ interface TailscaleStatus {
|
|
|
18
18
|
|
|
19
19
|
const getStatus = (command: string) =>
|
|
20
20
|
Effect.gen(function* () {
|
|
21
|
-
const proc = yield* System.spawn(command,
|
|
21
|
+
const proc = yield* System.spawn([command, "status", "--json"])
|
|
22
22
|
const exitCode = yield* proc.exitCode
|
|
23
23
|
|
|
24
24
|
if (exitCode !== 0) {
|
|
@@ -56,9 +56,9 @@ const serve = (opts: {
|
|
|
56
56
|
}) =>
|
|
57
57
|
Effect.gen(function* () {
|
|
58
58
|
const logPrefix = opts.logPrefix ?? "TailscaleTunnel: "
|
|
59
|
-
const
|
|
59
|
+
const subcommand = opts.public ? "funnel" : "serve"
|
|
60
60
|
|
|
61
|
-
const proc = yield* System.spawn(opts.command,
|
|
61
|
+
const proc = yield* System.spawn([opts.command, subcommand, String(opts.port)])
|
|
62
62
|
|
|
63
63
|
yield* Function.pipe(
|
|
64
64
|
Stream.merge(proc.stdout, proc.stderr),
|
|
@@ -20,24 +20,21 @@ export interface CompileOptions {
|
|
|
20
20
|
customJsResolver?: Resolver
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
function createCompileOptions({
|
|
24
|
-
base,
|
|
25
|
-
from,
|
|
26
|
-
polyfills,
|
|
27
|
-
onDependency,
|
|
28
|
-
|
|
29
|
-
customCssResolver,
|
|
30
|
-
customJsResolver,
|
|
31
|
-
}: CompileOptions) {
|
|
23
|
+
function createCompileOptions(options: CompileOptions) {
|
|
32
24
|
return {
|
|
33
|
-
base,
|
|
34
|
-
polyfills,
|
|
35
|
-
from,
|
|
25
|
+
base: options.base,
|
|
26
|
+
polyfills: options.polyfills,
|
|
27
|
+
from: options.from,
|
|
36
28
|
async loadModule(id: string, base: string) {
|
|
37
|
-
return loadModule(id, base, onDependency, customJsResolver)
|
|
29
|
+
return loadModule(id, base, options.onDependency, options.customJsResolver)
|
|
38
30
|
},
|
|
39
31
|
async loadStylesheet(id: string, sheetBase: string) {
|
|
40
|
-
let sheet = await loadStylesheet(
|
|
32
|
+
let sheet = await loadStylesheet(
|
|
33
|
+
id,
|
|
34
|
+
sheetBase,
|
|
35
|
+
options.onDependency,
|
|
36
|
+
options.customCssResolver,
|
|
37
|
+
)
|
|
41
38
|
|
|
42
39
|
return sheet
|
|
43
40
|
},
|