effect-start 0.28.0 → 0.29.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/Cookies.d.ts +9 -41
- package/dist/Cookies.d.ts.map +1 -1
- package/dist/Cookies.js +2 -2
- package/dist/Cookies.js.map +1 -1
- package/dist/Entity.d.ts +5 -6
- package/dist/Entity.d.ts.map +1 -1
- package/dist/Entity.js +10 -7
- package/dist/Entity.js.map +1 -1
- package/dist/Fetch.d.ts +23 -4
- package/dist/Fetch.d.ts.map +1 -1
- package/dist/Fetch.js +90 -1
- package/dist/Fetch.js.map +1 -1
- package/dist/FileRouter.d.ts +4 -7
- package/dist/FileRouter.d.ts.map +1 -1
- package/dist/FileRouter.js +39 -30
- package/dist/FileRouter.js.map +1 -1
- package/dist/FileRouterCodegen.d.ts +2 -2
- package/dist/FileRouterCodegen.d.ts.map +1 -1
- package/dist/FileRouterCodegen.js +9 -21
- package/dist/FileRouterCodegen.js.map +1 -1
- package/dist/FileSystem.d.ts +39 -39
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +5 -3
- package/dist/FileSystem.js.map +1 -1
- package/dist/GlobalLayer.d.ts +2 -2
- package/dist/GlobalLayer.d.ts.map +1 -1
- package/dist/GlobalLayer.js +1 -1
- package/dist/GlobalLayer.js.map +1 -1
- package/dist/PlatformRuntime.d.ts.map +1 -1
- package/dist/PlatformRuntime.js.map +1 -1
- package/dist/Route.d.ts +2 -2
- package/dist/Route.d.ts.map +1 -1
- package/dist/Route.js +1 -1
- package/dist/Route.js.map +1 -1
- package/dist/RouteBody.d.ts +1 -1
- package/dist/RouteBody.d.ts.map +1 -1
- package/dist/RouteBody.js.map +1 -1
- package/dist/RouteError.js.map +1 -1
- package/dist/RouteHook.d.ts.map +1 -1
- package/dist/RouteHook.js.map +1 -1
- package/dist/RouteHttp.d.ts +1 -1
- package/dist/RouteHttp.d.ts.map +1 -1
- package/dist/RouteHttp.js +38 -31
- package/dist/RouteHttp.js.map +1 -1
- package/dist/RouteHttpTracer.d.ts.map +1 -1
- package/dist/RouteHttpTracer.js.map +1 -1
- package/dist/RouteMount.d.ts +2 -2
- package/dist/RouteMount.d.ts.map +1 -1
- package/dist/RouteMount.js +1 -1
- package/dist/RouteMount.js.map +1 -1
- package/dist/RouteSchema.d.ts +2 -2
- package/dist/RouteSchema.d.ts.map +1 -1
- package/dist/RouteSchema.js +2 -2
- package/dist/RouteSchema.js.map +1 -1
- package/dist/RouteSse.d.ts +9 -10
- package/dist/RouteSse.d.ts.map +1 -1
- package/dist/RouteSse.js +8 -12
- package/dist/RouteSse.js.map +1 -1
- package/dist/RouteTree.d.ts +2 -2
- package/dist/RouteTree.d.ts.map +1 -1
- package/dist/RouteTree.js +2 -2
- package/dist/RouteTree.js.map +1 -1
- package/dist/RouteTrie.js +1 -1
- package/dist/RouteTrie.js.map +1 -1
- package/dist/Socket.d.ts +13 -18
- package/dist/Socket.d.ts.map +1 -1
- package/dist/Socket.js +12 -13
- package/dist/Socket.js.map +1 -1
- package/dist/Start.d.ts +15 -23
- package/dist/Start.d.ts.map +1 -1
- package/dist/Start.js +17 -6
- package/dist/Start.js.map +1 -1
- package/dist/System.d.ts +20 -5
- package/dist/System.d.ts.map +1 -1
- package/dist/System.js +12 -42
- package/dist/System.js.map +1 -1
- package/dist/Unique.d.ts.map +1 -1
- package/dist/Unique.js.map +1 -1
- package/dist/{ChildProcess.d.ts → _ChildProcess.d.ts} +14 -15
- package/dist/_ChildProcess.d.ts.map +1 -0
- package/dist/{ChildProcess.js → _ChildProcess.js} +2 -2
- package/dist/_ChildProcess.js.map +1 -0
- package/dist/{ContentNegotiation.d.ts → _ContentNegotiation.d.ts} +1 -1
- package/dist/_ContentNegotiation.d.ts.map +1 -0
- package/dist/{ContentNegotiation.js → _ContentNegotiation.js} +1 -1
- package/dist/_ContentNegotiation.js.map +1 -0
- package/dist/_Development.d.ts +27 -0
- package/dist/_Development.d.ts.map +1 -0
- package/dist/{Development.js → _Development.js} +6 -9
- package/dist/_Development.js.map +1 -0
- package/dist/{Docker.d.ts → _Docker.d.ts} +2 -2
- package/dist/_Docker.d.ts.map +1 -0
- package/dist/{Docker.js → _Docker.js} +1 -1
- package/dist/_Docker.js.map +1 -0
- package/dist/{Effectify.d.ts → _Effectify.d.ts} +1 -1
- package/dist/_Effectify.d.ts.map +1 -0
- package/dist/{Effectify.js → _Effectify.js} +1 -1
- package/dist/_Effectify.js.map +1 -0
- package/dist/{Http.d.ts → _Http.d.ts} +1 -8
- package/dist/_Http.d.ts.map +1 -0
- package/dist/{Http.js → _Http.js} +1 -17
- package/dist/_Http.js.map +1 -0
- package/dist/{PathPattern.d.ts → _PathPattern.d.ts} +12 -1
- package/dist/_PathPattern.d.ts.map +1 -0
- package/dist/{PathPattern.js → _PathPattern.js} +86 -1
- package/dist/_PathPattern.js.map +1 -0
- package/dist/_SchemaExtra.d.ts +4 -0
- package/dist/_SchemaExtra.d.ts.map +1 -0
- package/dist/{SchemaExtra.js → _SchemaExtra.js} +4 -4
- package/dist/_SchemaExtra.js.map +1 -0
- package/dist/{StartApp.d.ts → _StartApp.d.ts} +1 -1
- package/dist/_StartApp.d.ts.map +1 -0
- package/dist/{StartApp.js → _StartApp.js} +1 -1
- package/dist/_StartApp.js.map +1 -0
- package/dist/{StreamExtra.d.ts → _StreamExtra.d.ts} +5 -5
- package/dist/_StreamExtra.d.ts.map +1 -0
- package/dist/{StreamExtra.js → _StreamExtra.js} +1 -1
- package/dist/_StreamExtra.js.map +1 -0
- package/dist/{Values.d.ts → _Values.d.ts} +3 -3
- package/dist/_Values.d.ts.map +1 -0
- package/dist/{Values.js → _Values.js} +1 -1
- package/dist/_Values.js.map +1 -0
- package/dist/bun/BunBundle.d.ts +2 -2
- package/dist/bun/BunBundle.d.ts.map +1 -1
- package/dist/bun/BunBundle.js.map +1 -1
- package/dist/bun/BunChildProcessSpawner.d.ts +1 -1
- package/dist/bun/BunChildProcessSpawner.d.ts.map +1 -1
- package/dist/bun/BunChildProcessSpawner.js +9 -9
- package/dist/bun/BunChildProcessSpawner.js.map +1 -1
- package/dist/bun/BunImportTrackerPlugin.d.ts +2 -2
- package/dist/bun/BunImportTrackerPlugin.d.ts.map +1 -1
- package/dist/bun/BunImportTrackerPlugin.js.map +1 -1
- package/dist/bun/BunRoute.d.ts +1 -1
- package/dist/bun/BunRoute.d.ts.map +1 -1
- package/dist/bun/BunRoute.js +6 -7
- package/dist/bun/BunRoute.js.map +1 -1
- package/dist/bun/BunRuntime.js.map +1 -1
- package/dist/bun/BunServer.d.ts +5 -5
- package/dist/bun/BunServer.d.ts.map +1 -1
- package/dist/bun/BunServer.js +3 -3
- package/dist/bun/BunServer.js.map +1 -1
- package/dist/bun/BunVirtualFilesPlugin.js.map +1 -1
- package/dist/bun/_BunEnhancedResolve.d.ts.map +1 -1
- package/dist/bun/_BunEnhancedResolve.js.map +1 -1
- package/dist/bun/_empty.html +0 -0
- package/dist/bundler/Bundle.d.ts +2 -2
- package/dist/bundler/Bundle.d.ts.map +1 -1
- package/dist/bundler/Bundle.js.map +1 -1
- package/dist/bundler/BundleFiles.d.ts +1 -1
- package/dist/bundler/BundleFiles.d.ts.map +1 -1
- package/dist/bundler/BundleFiles.js.map +1 -1
- package/dist/bundler/BundleRoute.d.ts +6 -5
- package/dist/bundler/BundleRoute.d.ts.map +1 -1
- package/dist/bundler/BundleRoute.js +2 -2
- package/dist/bundler/BundleRoute.js.map +1 -1
- package/dist/cli/Argument.d.ts +26 -0
- package/dist/cli/Argument.d.ts.map +1 -0
- package/dist/cli/Argument.js +31 -0
- package/dist/cli/Argument.js.map +1 -0
- package/dist/cli/CliError.d.ts +15 -0
- package/dist/cli/CliError.d.ts.map +1 -0
- package/dist/cli/CliError.js +54 -0
- package/dist/cli/CliError.js.map +1 -0
- package/dist/cli/Command.d.ts +61 -0
- package/dist/cli/Command.d.ts.map +1 -0
- package/dist/cli/Command.js +453 -0
- package/dist/cli/Command.js.map +1 -0
- package/dist/cli/Flag.d.ts +32 -0
- package/dist/cli/Flag.d.ts.map +1 -0
- package/dist/cli/Flag.js +35 -0
- package/dist/cli/Flag.js.map +1 -0
- package/dist/cli/HelpDoc.d.ts +28 -0
- package/dist/cli/HelpDoc.d.ts.map +1 -0
- package/dist/cli/HelpDoc.js +40 -0
- package/dist/cli/HelpDoc.js.map +1 -0
- package/dist/cli/Param.d.ts +71 -0
- package/dist/cli/Param.d.ts.map +1 -0
- package/dist/cli/Param.js +236 -0
- package/dist/cli/Param.js.map +1 -0
- package/dist/cli/Primitive.d.ts +22 -0
- package/dist/cli/Primitive.d.ts.map +1 -0
- package/dist/cli/Primitive.js +73 -0
- package/dist/cli/Primitive.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/client/Overlay.js.map +1 -1
- package/dist/client/ScrollState.js.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/datastar/actions/fetch.js.map +1 -1
- package/dist/datastar/actions/peek.js.map +1 -1
- package/dist/datastar/actions/setAll.js.map +1 -1
- package/dist/datastar/actions/toggleAll.js.map +1 -1
- package/dist/datastar/attributes/attr.js.map +1 -1
- package/dist/datastar/attributes/bind.js.map +1 -1
- package/dist/datastar/attributes/class.js.map +1 -1
- package/dist/datastar/attributes/computed.js.map +1 -1
- package/dist/datastar/attributes/indicator.js.map +1 -1
- package/dist/datastar/attributes/init.js.map +1 -1
- package/dist/datastar/attributes/jsonSignals.js.map +1 -1
- package/dist/datastar/attributes/on.js.map +1 -1
- package/dist/datastar/attributes/onIntersect.js.map +1 -1
- package/dist/datastar/attributes/onInterval.js.map +1 -1
- package/dist/datastar/attributes/onSignalPatch.js.map +1 -1
- package/dist/datastar/attributes/ref.js.map +1 -1
- package/dist/datastar/attributes/show.js.map +1 -1
- package/dist/datastar/attributes/signals.js.map +1 -1
- package/dist/datastar/attributes/style.js.map +1 -1
- package/dist/datastar/attributes/text.js.map +1 -1
- package/dist/datastar/engine.d.ts +5 -5
- package/dist/datastar/engine.d.ts.map +1 -1
- package/dist/datastar/engine.js.map +1 -1
- package/dist/datastar/utils.d.ts +1 -1
- package/dist/datastar/utils.d.ts.map +1 -1
- package/dist/datastar/utils.js.map +1 -1
- package/dist/datastar/watchers/patchElements.js +3 -1
- package/dist/datastar/watchers/patchElements.js.map +1 -1
- package/dist/datastar/watchers/patchSignals.js.map +1 -1
- package/dist/experimental/EncryptedCookies.d.ts +4 -4
- package/dist/experimental/EncryptedCookies.d.ts.map +1 -1
- package/dist/experimental/EncryptedCookies.js.map +1 -1
- package/dist/hyper/Hyper.js.map +1 -1
- package/dist/hyper/HyperHtml.js.map +1 -1
- package/dist/hyper/HyperHtml.test.js.map +1 -1
- package/dist/hyper/HyperNode.d.ts +1 -2
- package/dist/hyper/HyperNode.d.ts.map +1 -1
- package/dist/hyper/HyperNode.js +1 -1
- package/dist/hyper/HyperNode.js.map +1 -1
- package/dist/hyper/HyperRoute.js.map +1 -1
- package/dist/hyper/HyperRoute.test.js +11 -13
- package/dist/hyper/HyperRoute.test.js.map +1 -1
- package/dist/hyper/html.d.ts +5 -4
- package/dist/hyper/html.d.ts.map +1 -1
- package/dist/hyper/html.js.map +1 -1
- package/dist/hyper/jsx-runtime.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lint/plugin.d.ts +18 -15
- package/dist/lint/plugin.d.ts.map +1 -1
- package/dist/lint/plugin.js +76 -80
- package/dist/lint/plugin.js.map +1 -1
- package/dist/node/NodeFileSystem.d.ts +3 -3
- package/dist/node/NodeFileSystem.d.ts.map +1 -1
- package/dist/node/NodeFileSystem.js +8 -7
- package/dist/node/NodeFileSystem.js.map +1 -1
- package/dist/node/NodeUtils.d.ts.map +1 -1
- package/dist/node/NodeUtils.js.map +1 -1
- package/dist/sql/SqlCache.d.ts +1 -0
- package/dist/sql/SqlCache.d.ts.map +1 -1
- package/dist/sql/SqlCache.js +5 -1
- package/dist/sql/SqlCache.js.map +1 -1
- package/dist/sql/SqlClient.js +1 -1
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/{SqlIntrospect.d.ts → sql/SqlIntrospect.d.ts} +3 -3
- package/dist/sql/SqlIntrospect.d.ts.map +1 -0
- package/dist/{SqlIntrospect.js → sql/SqlIntrospect.js} +1 -1
- package/dist/sql/SqlIntrospect.js.map +1 -0
- package/dist/sql/bun/index.d.ts +3 -3
- package/dist/sql/bun/index.d.ts.map +1 -1
- package/dist/sql/bun/index.js +1 -1
- package/dist/sql/bun/index.js.map +1 -1
- package/dist/sql/index.d.ts +1 -0
- package/dist/sql/index.d.ts.map +1 -1
- package/dist/sql/index.js +1 -0
- package/dist/sql/index.js.map +1 -1
- package/dist/sql/libsql/index.d.ts +1 -1
- package/dist/sql/libsql/index.d.ts.map +1 -1
- package/dist/sql/libsql/index.js +2 -2
- package/dist/sql/libsql/index.js.map +1 -1
- package/dist/sql/mssql/index.d.ts +3 -3
- package/dist/sql/mssql/index.d.ts.map +1 -1
- package/dist/sql/mssql/index.js +1 -1
- package/dist/sql/mssql/index.js.map +1 -1
- package/dist/sql/postgres/index.d.ts +1 -1
- package/dist/sql/postgres/index.d.ts.map +1 -1
- package/dist/sql/postgres/index.js.map +1 -1
- package/dist/studio/Simulation.d.ts.map +1 -0
- package/dist/studio/Simulation.js.map +1 -0
- package/dist/{tower/Tower.d.ts → studio/Studio.d.ts} +4 -4
- package/dist/studio/Studio.d.ts.map +1 -0
- package/dist/studio/Studio.js +30 -0
- package/dist/studio/Studio.js.map +1 -0
- package/dist/studio/StudioErrors.d.ts +4 -0
- package/dist/studio/StudioErrors.d.ts.map +1 -0
- package/dist/{tower/TowerErrors.js → studio/StudioErrors.js} +6 -6
- package/dist/studio/StudioErrors.js.map +1 -0
- package/dist/{tower/TowerLogger.d.ts → studio/StudioLogger.d.ts} +1 -1
- package/dist/studio/StudioLogger.d.ts.map +1 -0
- package/dist/{tower/TowerLogger.js → studio/StudioLogger.js} +7 -7
- package/dist/studio/StudioLogger.js.map +1 -0
- package/dist/studio/StudioMetrics.d.ts +4 -0
- package/dist/studio/StudioMetrics.d.ts.map +1 -0
- package/dist/{tower/TowerMetrics.js → studio/StudioMetrics.js} +3 -3
- package/dist/studio/StudioMetrics.js.map +1 -0
- package/dist/studio/StudioProcess.d.ts +4 -0
- package/dist/studio/StudioProcess.d.ts.map +1 -0
- package/dist/{tower/TowerProcess.js → studio/StudioProcess.js} +3 -3
- package/dist/studio/StudioProcess.js.map +1 -0
- package/dist/{tower/TowerStore.d.ts → studio/StudioStore.d.ts} +33 -33
- package/dist/studio/StudioStore.d.ts.map +1 -0
- package/dist/{tower/TowerStore.js → studio/StudioStore.js} +5 -5
- package/dist/studio/StudioStore.js.map +1 -0
- package/dist/studio/StudioTracer.d.ts +4 -0
- package/dist/studio/StudioTracer.d.ts.map +1 -0
- package/dist/{tower/TowerTracer.js → studio/StudioTracer.js} +21 -21
- package/dist/studio/StudioTracer.js.map +1 -0
- package/dist/studio/index.d.ts +4 -0
- package/dist/studio/index.d.ts.map +1 -0
- package/dist/studio/index.js +4 -0
- package/dist/studio/index.js.map +1 -0
- package/dist/{tower → studio}/routes/errors/route.d.ts +1 -1
- package/dist/{tower/routes/metrics → studio/routes/errors}/route.d.ts.map +1 -1
- package/dist/{tower → studio}/routes/errors/route.js +5 -9
- package/dist/studio/routes/errors/route.js.map +1 -0
- package/dist/{tower → studio}/routes/fiberDetail.d.ts +1 -1
- package/dist/studio/routes/fiberDetail.d.ts.map +1 -0
- package/dist/{tower → studio}/routes/fiberDetail.js +7 -7
- package/dist/studio/routes/fiberDetail.js.map +1 -0
- package/dist/{tower/routes/traces → studio/routes/fibers}/route.d.ts +1 -1
- package/dist/studio/routes/fibers/route.d.ts.map +1 -0
- package/dist/studio/routes/fibers/route.js +25 -0
- package/dist/studio/routes/fibers/route.js.map +1 -0
- package/dist/studio/routes/layout.d.ts.map +1 -0
- package/{src/tower → dist/studio}/routes/layout.html +1 -1
- package/dist/studio/routes/layout.js.map +1 -0
- package/dist/{tower → studio}/routes/logs/route.d.ts +1 -1
- package/dist/studio/routes/logs/route.d.ts.map +1 -0
- package/dist/studio/routes/logs/route.js +30 -0
- package/dist/studio/routes/logs/route.js.map +1 -0
- package/dist/{tower → studio}/routes/metrics/route.d.ts +1 -1
- package/dist/studio/routes/metrics/route.d.ts.map +1 -0
- package/dist/{tower → studio}/routes/metrics/route.js +3 -5
- package/dist/studio/routes/metrics/route.js.map +1 -0
- package/dist/{tower → studio}/routes/route.d.ts +1 -1
- package/dist/studio/routes/route.d.ts.map +1 -0
- package/dist/studio/routes/route.js +6 -0
- package/dist/studio/routes/route.js.map +1 -0
- package/dist/{tower → studio}/routes/routes/route.d.ts +1 -1
- package/dist/studio/routes/routes/route.d.ts.map +1 -0
- package/dist/{tower → studio}/routes/routes/route.js +2 -4
- package/dist/studio/routes/routes/route.js.map +1 -0
- package/dist/{tower → studio}/routes/services/route.d.ts +1 -1
- package/dist/studio/routes/services/route.d.ts.map +1 -0
- package/dist/studio/routes/services/route.js +13 -0
- package/dist/studio/routes/services/route.js.map +1 -0
- package/dist/{tower → studio}/routes/system/route.d.ts +1 -1
- package/dist/studio/routes/system/route.d.ts.map +1 -0
- package/dist/studio/routes/system/route.js +19 -0
- package/dist/studio/routes/system/route.js.map +1 -0
- package/dist/{tower → studio}/routes/traceDetail.d.ts +1 -1
- package/dist/studio/routes/traceDetail.d.ts.map +1 -0
- package/dist/{tower → studio}/routes/traceDetail.js +4 -4
- package/dist/studio/routes/traceDetail.js.map +1 -0
- package/dist/{tower/routes/fibers → studio/routes/traces}/route.d.ts +1 -1
- package/dist/studio/routes/traces/route.d.ts.map +1 -0
- package/dist/studio/routes/traces/route.js +30 -0
- package/dist/studio/routes/traces/route.js.map +1 -0
- package/dist/{tower → studio}/routes/tree.d.ts +46 -46
- package/dist/studio/routes/tree.d.ts.map +1 -0
- package/dist/studio/routes/tree.js.map +1 -0
- package/dist/studio/ui/Errors.d.ts +5 -0
- package/dist/studio/ui/Errors.d.ts.map +1 -0
- package/dist/studio/ui/Errors.js +17 -0
- package/dist/studio/ui/Errors.js.map +1 -0
- package/dist/{tower → studio}/ui/Fibers.d.ts +5 -5
- package/dist/studio/ui/Fibers.d.ts.map +1 -0
- package/dist/studio/ui/Fibers.js +134 -0
- package/dist/studio/ui/Fibers.js.map +1 -0
- package/dist/studio/ui/Logs.d.ts +5 -0
- package/dist/studio/ui/Logs.d.ts.map +1 -0
- package/dist/{tower → studio}/ui/Logs.js +2 -3
- package/dist/studio/ui/Logs.js.map +1 -0
- package/dist/studio/ui/Metrics.d.ts +5 -0
- package/dist/studio/ui/Metrics.d.ts.map +1 -0
- package/dist/{tower → studio}/ui/Metrics.js +4 -11
- package/dist/studio/ui/Metrics.js.map +1 -0
- package/dist/studio/ui/Routes.d.ts.map +1 -0
- package/dist/{tower → studio}/ui/Routes.js +4 -12
- package/dist/studio/ui/Routes.js.map +1 -0
- package/dist/studio/ui/Services.d.ts.map +1 -0
- package/dist/{tower → studio}/ui/Services.js +2 -9
- package/dist/studio/ui/Services.js.map +1 -0
- package/dist/studio/ui/Shell.d.ts.map +1 -0
- package/dist/studio/ui/Shell.js +8 -0
- package/dist/studio/ui/Shell.js.map +1 -0
- package/dist/studio/ui/System.d.ts +5 -0
- package/dist/studio/ui/System.d.ts.map +1 -0
- package/dist/studio/ui/System.js +36 -0
- package/dist/studio/ui/System.js.map +1 -0
- package/dist/studio/ui/Traces.d.ts +13 -0
- package/dist/studio/ui/Traces.d.ts.map +1 -0
- package/dist/studio/ui/Traces.js +182 -0
- package/dist/studio/ui/Traces.js.map +1 -0
- package/dist/testing/TestLogger.js.map +1 -1
- package/dist/testing/utils.d.ts +3 -1
- package/dist/testing/utils.d.ts.map +1 -1
- package/dist/testing/utils.js +39 -0
- package/dist/testing/utils.js.map +1 -1
- package/dist/x/cloudflare/CloudflareTunnel.d.ts +8 -7
- package/dist/x/cloudflare/CloudflareTunnel.d.ts.map +1 -1
- package/dist/x/cloudflare/CloudflareTunnel.js.map +1 -1
- package/dist/x/tailscale/TailscaleTunnel.d.ts +9 -9
- package/dist/x/tailscale/TailscaleTunnel.d.ts.map +1 -1
- package/dist/x/tailscale/TailscaleTunnel.js +3 -4
- package/dist/x/tailscale/TailscaleTunnel.js.map +1 -1
- package/dist/x/tailwind/TailwindPlugin.d.ts +5 -5
- package/dist/x/tailwind/TailwindPlugin.d.ts.map +1 -1
- package/dist/x/tailwind/TailwindPlugin.js.map +1 -1
- package/dist/x/tailwind/compile.js.map +1 -1
- package/dist/x/tailwind/plugin.js.map +1 -1
- package/package.json +42 -60
- package/src/Cookies.ts +4 -8
- package/src/Entity.ts +24 -19
- package/src/Fetch.ts +128 -5
- package/src/FileRouter.ts +46 -49
- package/src/FileRouterCodegen.ts +9 -23
- package/src/FileSystem.ts +43 -63
- package/src/GlobalLayer.ts +1 -1
- package/src/Route.ts +2 -2
- package/src/RouteBody.ts +1 -1
- package/src/RouteHttp.ts +133 -113
- package/src/RouteMount.ts +3 -3
- package/src/RouteSchema.ts +2 -2
- package/src/RouteSse.ts +28 -37
- package/src/RouteTree.ts +2 -2
- package/src/RouteTrie.ts +1 -1
- package/src/Socket.ts +17 -27
- package/src/Start.ts +39 -47
- package/src/System.ts +40 -64
- package/src/{ChildProcess.ts → _ChildProcess.ts} +13 -22
- package/src/{Development.ts → _Development.ts} +16 -21
- package/src/{Docker.ts → _Docker.ts} +1 -1
- package/src/{Http.ts → _Http.ts} +0 -28
- package/src/{PathPattern.ts → _PathPattern.ts} +105 -0
- package/src/{SchemaExtra.ts → _SchemaExtra.ts} +3 -4
- package/src/bun/BunChildProcessSpawner.ts +9 -9
- package/src/bun/BunRoute.ts +5 -8
- package/src/bun/BunServer.ts +3 -3
- package/src/bundler/BundleRoute.ts +2 -2
- package/src/cli/Argument.ts +45 -0
- package/src/cli/CliError.ts +68 -0
- package/src/cli/Command.ts +685 -0
- package/src/cli/Flag.ts +63 -0
- package/src/cli/HelpDoc.ts +67 -0
- package/src/cli/Param.ts +418 -0
- package/src/cli/Primitive.ts +94 -0
- package/src/cli/index.ts +7 -0
- package/src/datastar/watchers/patchElements.ts +4 -2
- package/src/hyper/HyperHtml.test.tsx +395 -0
- package/src/hyper/HyperNode.ts +1 -2
- package/src/hyper/HyperRoute.test.tsx +166 -0
- package/src/hyper/HyperRoute.ts +1 -1
- package/src/index.ts +1 -1
- package/src/lint/plugin.js +86 -97
- package/src/node/NodeFileSystem.ts +15 -14
- package/src/sql/SqlCache.ts +14 -1
- package/src/sql/SqlClient.ts +1 -1
- package/src/{SqlIntrospect.ts → sql/SqlIntrospect.ts} +1 -1
- package/src/sql/bun/index.ts +1 -1
- package/src/sql/index.ts +1 -0
- package/src/sql/libsql/index.ts +1 -1
- package/src/sql/mssql/index.ts +1 -1
- package/src/studio/Studio.ts +47 -0
- package/src/{tower/TowerErrors.ts → studio/StudioErrors.ts} +13 -13
- package/src/{tower/TowerLogger.ts → studio/StudioLogger.ts} +10 -10
- package/src/{tower/TowerMetrics.ts → studio/StudioMetrics.ts} +5 -5
- package/src/{tower/TowerProcess.ts → studio/StudioProcess.ts} +4 -4
- package/src/{tower/TowerStore.ts → studio/StudioStore.ts} +37 -37
- package/src/{tower/TowerTracer.ts → studio/StudioTracer.ts} +25 -25
- package/src/studio/index.ts +3 -0
- package/src/{tower → studio}/routes/errors/route.tsx +4 -4
- package/src/{tower → studio}/routes/fiberDetail.tsx +8 -8
- package/src/{tower → studio}/routes/fibers/route.tsx +10 -10
- package/src/studio/routes/layout.html +340 -0
- package/src/{tower → studio}/routes/logs/route.tsx +4 -4
- package/src/{tower → studio}/routes/metrics/route.tsx +5 -5
- package/src/studio/routes/route.tsx +8 -0
- package/src/{tower → studio}/routes/routes/route.tsx +2 -2
- package/src/{tower → studio}/routes/services/route.tsx +2 -2
- package/src/{tower → studio}/routes/system/route.tsx +5 -5
- package/src/{tower → studio}/routes/traceDetail.tsx +5 -5
- package/src/{tower → studio}/routes/traces/route.tsx +5 -5
- package/src/{tower → studio}/ui/Errors.tsx +3 -3
- package/src/{tower → studio}/ui/Fibers.tsx +7 -7
- package/src/{tower → studio}/ui/Logs.tsx +3 -3
- package/src/{tower → studio}/ui/Metrics.tsx +4 -4
- package/src/{tower → studio}/ui/Shell.tsx +1 -1
- package/src/{tower → studio}/ui/System.tsx +2 -2
- package/src/{tower → studio}/ui/Traces.tsx +16 -16
- package/src/testing/utils.ts +59 -0
- package/src/x/tailscale/TailscaleTunnel.ts +3 -4
- package/dist/ChildProcess.d.ts.map +0 -1
- package/dist/ChildProcess.js.map +0 -1
- package/dist/Commander.d.ts +0 -101
- package/dist/Commander.d.ts.map +0 -1
- package/dist/Commander.js +0 -327
- package/dist/Commander.js.map +0 -1
- package/dist/ContentNegotiation.d.ts.map +0 -1
- package/dist/ContentNegotiation.js.map +0 -1
- package/dist/Development.d.ts +0 -42
- package/dist/Development.d.ts.map +0 -1
- package/dist/Development.js.map +0 -1
- package/dist/Docker.d.ts.map +0 -1
- package/dist/Docker.js.map +0 -1
- package/dist/Effectify.d.ts.map +0 -1
- package/dist/Effectify.js.map +0 -1
- package/dist/FilePathPattern.d.ts +0 -30
- package/dist/FilePathPattern.d.ts.map +0 -1
- package/dist/FilePathPattern.js +0 -87
- package/dist/FilePathPattern.js.map +0 -1
- package/dist/Http.d.ts.map +0 -1
- package/dist/Http.js.map +0 -1
- package/dist/PathPattern.d.ts.map +0 -1
- package/dist/PathPattern.js.map +0 -1
- package/dist/PlatformError.d.ts +0 -39
- package/dist/PlatformError.d.ts.map +0 -1
- package/dist/PlatformError.js +0 -26
- package/dist/PlatformError.js.map +0 -1
- package/dist/SchemaExtra.d.ts +0 -8
- package/dist/SchemaExtra.d.ts.map +0 -1
- package/dist/SchemaExtra.js.map +0 -1
- package/dist/SqlIntrospect.d.ts.map +0 -1
- package/dist/SqlIntrospect.js.map +0 -1
- package/dist/StartApp.d.ts.map +0 -1
- package/dist/StartApp.js.map +0 -1
- package/dist/StreamExtra.d.ts.map +0 -1
- package/dist/StreamExtra.js.map +0 -1
- package/dist/TuplePathPattern.d.ts +0 -10
- package/dist/TuplePathPattern.d.ts.map +0 -1
- package/dist/TuplePathPattern.js +0 -69
- package/dist/TuplePathPattern.js.map +0 -1
- package/dist/Values.d.ts.map +0 -1
- package/dist/Values.js.map +0 -1
- package/dist/tower/Simulation.d.ts.map +0 -1
- package/dist/tower/Simulation.js.map +0 -1
- package/dist/tower/Tower.d.ts.map +0 -1
- package/dist/tower/Tower.js +0 -30
- package/dist/tower/Tower.js.map +0 -1
- package/dist/tower/TowerErrors.d.ts +0 -4
- package/dist/tower/TowerErrors.d.ts.map +0 -1
- package/dist/tower/TowerErrors.js.map +0 -1
- package/dist/tower/TowerLogger.d.ts.map +0 -1
- package/dist/tower/TowerLogger.js.map +0 -1
- package/dist/tower/TowerMetrics.d.ts +0 -4
- package/dist/tower/TowerMetrics.d.ts.map +0 -1
- package/dist/tower/TowerMetrics.js.map +0 -1
- package/dist/tower/TowerProcess.d.ts +0 -4
- package/dist/tower/TowerProcess.d.ts.map +0 -1
- package/dist/tower/TowerProcess.js.map +0 -1
- package/dist/tower/TowerStore.d.ts.map +0 -1
- package/dist/tower/TowerStore.js.map +0 -1
- package/dist/tower/TowerTracer.d.ts +0 -4
- package/dist/tower/TowerTracer.d.ts.map +0 -1
- package/dist/tower/TowerTracer.js.map +0 -1
- package/dist/tower/index.d.ts +0 -4
- package/dist/tower/index.d.ts.map +0 -1
- package/dist/tower/index.js +0 -4
- package/dist/tower/index.js.map +0 -1
- package/dist/tower/routes/errors/route.d.ts.map +0 -1
- package/dist/tower/routes/errors/route.js.map +0 -1
- package/dist/tower/routes/fiberDetail.d.ts.map +0 -1
- package/dist/tower/routes/fiberDetail.js.map +0 -1
- package/dist/tower/routes/fibers/route.d.ts.map +0 -1
- package/dist/tower/routes/fibers/route.js +0 -27
- package/dist/tower/routes/fibers/route.js.map +0 -1
- package/dist/tower/routes/layout.d.ts.map +0 -1
- package/dist/tower/routes/layout.js.map +0 -1
- package/dist/tower/routes/logs/route.d.ts.map +0 -1
- package/dist/tower/routes/logs/route.js +0 -36
- package/dist/tower/routes/logs/route.js.map +0 -1
- package/dist/tower/routes/metrics/route.js.map +0 -1
- package/dist/tower/routes/route.d.ts.map +0 -1
- package/dist/tower/routes/route.js +0 -6
- package/dist/tower/routes/route.js.map +0 -1
- package/dist/tower/routes/routes/route.d.ts.map +0 -1
- package/dist/tower/routes/routes/route.js.map +0 -1
- package/dist/tower/routes/services/route.d.ts.map +0 -1
- package/dist/tower/routes/services/route.js +0 -15
- package/dist/tower/routes/services/route.js.map +0 -1
- package/dist/tower/routes/system/route.d.ts.map +0 -1
- package/dist/tower/routes/system/route.js +0 -21
- package/dist/tower/routes/system/route.js.map +0 -1
- package/dist/tower/routes/traceDetail.d.ts.map +0 -1
- package/dist/tower/routes/traceDetail.js.map +0 -1
- package/dist/tower/routes/traces/route.d.ts.map +0 -1
- package/dist/tower/routes/traces/route.js +0 -36
- package/dist/tower/routes/traces/route.js.map +0 -1
- package/dist/tower/routes/tree.d.ts.map +0 -1
- package/dist/tower/routes/tree.js.map +0 -1
- package/dist/tower/ui/Errors.d.ts +0 -5
- package/dist/tower/ui/Errors.d.ts.map +0 -1
- package/dist/tower/ui/Errors.js +0 -30
- package/dist/tower/ui/Errors.js.map +0 -1
- package/dist/tower/ui/Fibers.d.ts.map +0 -1
- package/dist/tower/ui/Fibers.js +0 -157
- package/dist/tower/ui/Fibers.js.map +0 -1
- package/dist/tower/ui/Logs.d.ts +0 -5
- package/dist/tower/ui/Logs.d.ts.map +0 -1
- package/dist/tower/ui/Logs.js.map +0 -1
- package/dist/tower/ui/Metrics.d.ts +0 -5
- package/dist/tower/ui/Metrics.d.ts.map +0 -1
- package/dist/tower/ui/Metrics.js.map +0 -1
- package/dist/tower/ui/Routes.d.ts.map +0 -1
- package/dist/tower/ui/Routes.js.map +0 -1
- package/dist/tower/ui/Services.d.ts.map +0 -1
- package/dist/tower/ui/Services.js.map +0 -1
- package/dist/tower/ui/Shell.d.ts.map +0 -1
- package/dist/tower/ui/Shell.js +0 -12
- package/dist/tower/ui/Shell.js.map +0 -1
- package/dist/tower/ui/System.d.ts +0 -5
- package/dist/tower/ui/System.d.ts.map +0 -1
- package/dist/tower/ui/System.js +0 -65
- package/dist/tower/ui/System.js.map +0 -1
- package/dist/tower/ui/Traces.d.ts +0 -13
- package/dist/tower/ui/Traces.d.ts.map +0 -1
- package/dist/tower/ui/Traces.js +0 -219
- package/dist/tower/ui/Traces.js.map +0 -1
- package/src/Commander.ts +0 -585
- package/src/FilePathPattern.ts +0 -115
- package/src/PlatformError.ts +0 -73
- package/src/TuplePathPattern.ts +0 -75
- package/src/tower/Tower.ts +0 -47
- package/src/tower/index.ts +0 -3
- package/src/tower/routes/route.tsx +0 -8
- /package/dist/{tower → studio}/Simulation.d.ts +0 -0
- /package/dist/{tower → studio}/Simulation.js +0 -0
- /package/dist/{tower → studio}/routes/layout.d.ts +0 -0
- /package/dist/{tower → studio}/routes/layout.js +0 -0
- /package/dist/{tower → studio}/routes/tree.js +0 -0
- /package/dist/{tower → studio}/ui/Routes.d.ts +0 -0
- /package/dist/{tower → studio}/ui/Services.d.ts +0 -0
- /package/dist/{tower → studio}/ui/Shell.d.ts +0 -0
- /package/src/{ContentNegotiation.ts → _ContentNegotiation.ts} +0 -0
- /package/src/{Effectify.ts → _Effectify.ts} +0 -0
- /package/src/{StartApp.ts → _StartApp.ts} +0 -0
- /package/src/{StreamExtra.ts → _StreamExtra.ts} +0 -0
- /package/src/{Values.ts → _Values.ts} +0 -0
- /package/src/{tower → studio}/Simulation.ts +0 -0
- /package/src/{tower → studio}/routes/layout.tsx +0 -0
- /package/src/{tower → studio}/routes/tree.ts +0 -0
- /package/src/{tower → studio}/ui/Routes.tsx +0 -0
- /package/src/{tower → studio}/ui/Services.tsx +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type * as
|
|
1
|
+
import type * as StudioStore from "../StudioStore.ts"
|
|
2
2
|
|
|
3
3
|
function formatBytes(bytes: number): string {
|
|
4
4
|
if (bytes < 1024) return `${bytes}B`
|
|
@@ -53,7 +53,7 @@ function BarMeter(options: { label: string; used: number; total: number }) {
|
|
|
53
53
|
)
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
export function SystemStatsView(options: { stats:
|
|
56
|
+
export function SystemStatsView(options: { stats: StudioStore.ProcessStats }) {
|
|
57
57
|
const cpuTotal = options.stats.cpu.user + options.stats.cpu.system
|
|
58
58
|
return (
|
|
59
59
|
<>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as StudioStore from "../StudioStore.ts"
|
|
2
2
|
|
|
3
3
|
function formatDuration(ms: number | undefined): string {
|
|
4
4
|
if (ms == null) return "..."
|
|
@@ -40,22 +40,22 @@ function StatusBadge(options: { status: string }) {
|
|
|
40
40
|
// --- Tree building ---
|
|
41
41
|
|
|
42
42
|
interface TreeSpan {
|
|
43
|
-
span:
|
|
43
|
+
span: StudioStore.StudioSpan
|
|
44
44
|
depth: number
|
|
45
45
|
childCount: number
|
|
46
46
|
isLastChild: boolean
|
|
47
47
|
ancestorHasNextSibling: Array<boolean>
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
function buildSpanTree(spans: Array<
|
|
51
|
-
const byId = new Map<bigint,
|
|
52
|
-
const childrenOf = new Map<bigint, Array<
|
|
50
|
+
function buildSpanTree(spans: Array<StudioStore.StudioSpan>): Array<TreeSpan> {
|
|
51
|
+
const byId = new Map<bigint, StudioStore.StudioSpan>()
|
|
52
|
+
const childrenOf = new Map<bigint, Array<StudioStore.StudioSpan>>()
|
|
53
53
|
|
|
54
54
|
for (const s of spans) {
|
|
55
55
|
byId.set(s.spanId, s)
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
const roots: Array<
|
|
58
|
+
const roots: Array<StudioStore.StudioSpan> = []
|
|
59
59
|
for (const s of spans) {
|
|
60
60
|
if (s.parentSpanId && byId.has(s.parentSpanId)) {
|
|
61
61
|
let children = childrenOf.get(s.parentSpanId)
|
|
@@ -69,7 +69,7 @@ function buildSpanTree(spans: Array<TowerStore.TowerSpan>): Array<TreeSpan> {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
const sortByStart = (a:
|
|
72
|
+
const sortByStart = (a: StudioStore.StudioSpan, b: StudioStore.StudioSpan) =>
|
|
73
73
|
Number(a.startTime - b.startTime)
|
|
74
74
|
|
|
75
75
|
roots.sort(sortByStart)
|
|
@@ -80,7 +80,7 @@ function buildSpanTree(spans: Array<TowerStore.TowerSpan>): Array<TreeSpan> {
|
|
|
80
80
|
const result: Array<TreeSpan> = []
|
|
81
81
|
|
|
82
82
|
function walk(
|
|
83
|
-
span:
|
|
83
|
+
span: StudioStore.StudioSpan,
|
|
84
84
|
depth: number,
|
|
85
85
|
isLast: boolean,
|
|
86
86
|
ancestors: Array<boolean>,
|
|
@@ -185,7 +185,7 @@ function WaterfallRow(options: { tree: TreeSpan; totalMs: number; rootStart: big
|
|
|
185
185
|
}
|
|
186
186
|
|
|
187
187
|
function MiniWaterfall(options: {
|
|
188
|
-
spans: Array<
|
|
188
|
+
spans: Array<StudioStore.StudioSpan>
|
|
189
189
|
totalMs: number
|
|
190
190
|
rootStart: bigint
|
|
191
191
|
}) {
|
|
@@ -211,9 +211,9 @@ function MiniWaterfall(options: {
|
|
|
211
211
|
// --- Exports ---
|
|
212
212
|
|
|
213
213
|
export function groupByTraceId(
|
|
214
|
-
spans: Array<
|
|
215
|
-
): Map<bigint, Array<
|
|
216
|
-
const groups = new Map<bigint, Array<
|
|
214
|
+
spans: Array<StudioStore.StudioSpan>,
|
|
215
|
+
): Map<bigint, Array<StudioStore.StudioSpan>> {
|
|
216
|
+
const groups = new Map<bigint, Array<StudioStore.StudioSpan>>()
|
|
217
217
|
for (const span of spans) {
|
|
218
218
|
let group = groups.get(span.traceId)
|
|
219
219
|
if (!group) {
|
|
@@ -225,7 +225,7 @@ export function groupByTraceId(
|
|
|
225
225
|
return groups
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
-
export function TraceGroup(options: { spans: Array<
|
|
228
|
+
export function TraceGroup(options: { spans: Array<StudioStore.StudioSpan> }) {
|
|
229
229
|
if (options.spans.length === 0) return null
|
|
230
230
|
const root = options.spans.find((s) => !s.parentSpanId) ?? options.spans[0]
|
|
231
231
|
const traceId = root.traceId
|
|
@@ -250,7 +250,7 @@ export function TraceGroup(options: { spans: Array<TowerStore.TowerSpan> }) {
|
|
|
250
250
|
<div class="tl-body">
|
|
251
251
|
<div style="display:flex;gap:12px;align-items:center;margin-bottom:8px">
|
|
252
252
|
<a
|
|
253
|
-
href={`${
|
|
253
|
+
href={`${StudioStore.store.prefix}/traces/${traceId}`}
|
|
254
254
|
style="color:#38bdf8;font-size:12px;text-decoration:none"
|
|
255
255
|
>
|
|
256
256
|
Full trace view
|
|
@@ -295,7 +295,7 @@ export function TraceGroup(options: { spans: Array<TowerStore.TowerSpan> }) {
|
|
|
295
295
|
)
|
|
296
296
|
}
|
|
297
297
|
|
|
298
|
-
export function TraceGroups(options: { spans: Array<
|
|
298
|
+
export function TraceGroups(options: { spans: Array<StudioStore.StudioSpan> }) {
|
|
299
299
|
const groups = groupByTraceId(options.spans)
|
|
300
300
|
const sorted = Array.from(groups.values())
|
|
301
301
|
.sort((a, b) => Number(b[0].startTime) - Number(a[0].startTime))
|
|
@@ -320,7 +320,7 @@ export function TraceGroups(options: { spans: Array<TowerStore.TowerSpan> }) {
|
|
|
320
320
|
)
|
|
321
321
|
}
|
|
322
322
|
|
|
323
|
-
export function TraceDetail(options: { prefix: string; spans: Array<
|
|
323
|
+
export function TraceDetail(options: { prefix: string; spans: Array<StudioStore.StudioSpan> }) {
|
|
324
324
|
if (options.spans.length === 0) {
|
|
325
325
|
return <div class="empty">Trace not found</div>
|
|
326
326
|
}
|
package/src/testing/utils.ts
CHANGED
|
@@ -5,6 +5,8 @@ import * as Layer from "effect/Layer"
|
|
|
5
5
|
import * as Logger from "effect/Logger"
|
|
6
6
|
import type * as Scope from "effect/Scope"
|
|
7
7
|
import type * as Utils from "effect/Utils"
|
|
8
|
+
import * as NNet from "node:net"
|
|
9
|
+
import * as System from "../System.ts"
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* Creates a scoped Effects and runs is asynchronously.
|
|
@@ -36,6 +38,63 @@ export const effectFn =
|
|
|
36
38
|
* some tools, like effect-start, use it to generate temporary
|
|
37
39
|
* files that are then loaded into a runtime.
|
|
38
40
|
*/
|
|
41
|
+
export const randomFreePort: Effect.Effect<number, System.SystemError> = Effect.async<
|
|
42
|
+
number,
|
|
43
|
+
System.SystemError
|
|
44
|
+
>((resume) => {
|
|
45
|
+
const server = NNet.createServer()
|
|
46
|
+
server.unref()
|
|
47
|
+
server.on("error", (err) =>
|
|
48
|
+
resume(
|
|
49
|
+
Effect.fail(
|
|
50
|
+
new System.SystemError({
|
|
51
|
+
reason: "Unknown",
|
|
52
|
+
module: "System",
|
|
53
|
+
method: "randomFreePort",
|
|
54
|
+
description: err.message,
|
|
55
|
+
cause: err,
|
|
56
|
+
}),
|
|
57
|
+
),
|
|
58
|
+
),
|
|
59
|
+
)
|
|
60
|
+
server.listen(0, "127.0.0.1", () => {
|
|
61
|
+
const address = server.address()
|
|
62
|
+
if (!address || typeof address === "string") {
|
|
63
|
+
server.close(() =>
|
|
64
|
+
resume(
|
|
65
|
+
Effect.fail(
|
|
66
|
+
new System.SystemError({
|
|
67
|
+
reason: "Unknown",
|
|
68
|
+
module: "System",
|
|
69
|
+
method: "randomFreePort",
|
|
70
|
+
description: "Failed to allocate a free port",
|
|
71
|
+
}),
|
|
72
|
+
),
|
|
73
|
+
),
|
|
74
|
+
)
|
|
75
|
+
return
|
|
76
|
+
}
|
|
77
|
+
const port = address.port
|
|
78
|
+
server.close((err) => {
|
|
79
|
+
if (err) {
|
|
80
|
+
resume(
|
|
81
|
+
Effect.fail(
|
|
82
|
+
new System.SystemError({
|
|
83
|
+
reason: "Unknown",
|
|
84
|
+
module: "System",
|
|
85
|
+
method: "randomFreePort",
|
|
86
|
+
description: err.message,
|
|
87
|
+
cause: err,
|
|
88
|
+
}),
|
|
89
|
+
),
|
|
90
|
+
)
|
|
91
|
+
return
|
|
92
|
+
}
|
|
93
|
+
resume(Effect.succeed(port))
|
|
94
|
+
})
|
|
95
|
+
})
|
|
96
|
+
})
|
|
97
|
+
|
|
39
98
|
const clearStackTraces = (err: unknown) => {
|
|
40
99
|
const ExternalStackTraceLineRegexp = /\(.*\/node_modules\/[^.]/
|
|
41
100
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as StartApp from "../../StartApp.ts"
|
|
1
|
+
import * as StartApp from "../../_StartApp.ts"
|
|
3
2
|
import * as System from "../../System.ts"
|
|
4
3
|
import * as Deferred from "effect/Deferred"
|
|
5
4
|
import * as Effect from "effect/Effect"
|
|
@@ -23,7 +22,7 @@ const getStatus = (command: string) =>
|
|
|
23
22
|
|
|
24
23
|
if (exitCode !== 0) {
|
|
25
24
|
const stderr = yield* proc.stderr.pipe(Stream.decodeText("utf-8"), Stream.mkString)
|
|
26
|
-
return yield* new
|
|
25
|
+
return yield* new System.SystemError({
|
|
27
26
|
reason: "Unknown",
|
|
28
27
|
module: "TailscaleTunnel",
|
|
29
28
|
method: "getStatus",
|
|
@@ -35,7 +34,7 @@ const getStatus = (command: string) =>
|
|
|
35
34
|
const json: TailscaleStatus = JSON.parse(stdout)
|
|
36
35
|
|
|
37
36
|
if (json.BackendState !== "Running") {
|
|
38
|
-
return yield* new
|
|
37
|
+
return yield* new System.SystemError({
|
|
39
38
|
reason: "Unknown",
|
|
40
39
|
module: "TailscaleTunnel",
|
|
41
40
|
method: "getStatus",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChildProcess.d.ts","sourceRoot":"","sources":["../src/ChildProcess.ts"],"names":[],"mappings":"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"}
|
package/dist/ChildProcess.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChildProcess.js","sourceRoot":"","sources":["../src/ChildProcess.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAA;AAI7C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,MAAM,MAAM,GAAkB,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;AAmC7E,MAAM,YAAY,GAAG;IACnB,CAAC,MAAM,CAAC,EAAE,MAAM;IAChB,IAAI,GAAG;QACL,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAAA,CAC/C;IACD,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAgB;QAC/B,OAAO,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAA;IAAA,CACxE;CACF,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAU,EAAgB,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAEvF,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,GAAwC,EACxC,OAAyB,EAChB,EAAE,CACX,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;IACzC,GAAG;IACH,GAAG,OAAO;CACX,CAAC,CAAA;AAuDJ,MAAM,OAAO,mBAAoB,SAAQ,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,EAOrF;CAAG;AAEN,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,OAAgB,EAKhB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA"}
|
package/dist/Commander.d.ts
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
import * as Pipeable from "effect/Pipeable";
|
|
3
|
-
import * as Schema from "effect/Schema";
|
|
4
|
-
declare const CommanderError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
5
|
-
readonly _tag: "CommanderError";
|
|
6
|
-
} & Readonly<A>;
|
|
7
|
-
export declare class CommanderError extends CommanderError_base<{
|
|
8
|
-
message: string;
|
|
9
|
-
cause?: unknown;
|
|
10
|
-
}> {
|
|
11
|
-
}
|
|
12
|
-
declare const TypeId: unique symbol;
|
|
13
|
-
type KebabToCamel<S extends string> = S extends `${infer First}-${infer Rest}` ? `${First}${KebabToCamel<Capitalize<Rest>>}` : S;
|
|
14
|
-
type StripPrefix<S extends string> = S extends `--${infer Name}` ? Name : S extends `-${infer Name}` ? Name : S;
|
|
15
|
-
type OptionNameToCamelCase<S extends string> = KebabToCamel<StripPrefix<S>>;
|
|
16
|
-
export interface OptionBuilder<A = any, Name extends string = string> {
|
|
17
|
-
readonly _tag: "OptionBuilder";
|
|
18
|
-
readonly name: Name;
|
|
19
|
-
readonly long: Name;
|
|
20
|
-
readonly short?: string;
|
|
21
|
-
readonly description: string;
|
|
22
|
-
readonly schema?: Schema.Schema<A, any>;
|
|
23
|
-
readonly defaultValue?: A;
|
|
24
|
-
}
|
|
25
|
-
type OptionBuilderWithSchema<A, Name extends string> = Omit<OptionBuilder<A, Name>, "schema" | "defaultValue"> & {
|
|
26
|
-
readonly schema: Schema.Schema<A, any>;
|
|
27
|
-
readonly defaultValue?: A;
|
|
28
|
-
};
|
|
29
|
-
export declare const option: <const Long extends `--${string}`, const Short extends `-${string}` | undefined = undefined>(long: Long, short?: Short | undefined) => {
|
|
30
|
-
schema<A, I extends string = string>(schema: Schema.Schema<A, I, never>): OptionBuilderWithSchema<A, Long>;
|
|
31
|
-
description(desc: string): {
|
|
32
|
-
schema<A, I extends string = string>(schema: Schema.Schema<A, I, never>): OptionBuilderWithSchema<A, Long>;
|
|
33
|
-
default<A>(value: A): {
|
|
34
|
-
schema<A2 extends A, I extends string = string>(schema: Schema.Schema<A2, I, never>): OptionBuilderWithSchema<A2, Long>;
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
default<A>(value: A): {
|
|
38
|
-
schema<A2 extends A, I extends string = string>(schema: Schema.Schema<A2, I, never>): OptionBuilderWithSchema<A2, Long>;
|
|
39
|
-
description(desc: string): {
|
|
40
|
-
schema<A2 extends A, I extends string = string>(schema: Schema.Schema<A2, I, never>): OptionBuilderWithSchema<A2, Long>;
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
export type OptionsMap = Record<string, OptionBuilder<any, any>>;
|
|
45
|
-
type ExtractOptionsFromBuilders<Opts extends OptionsMap> = {
|
|
46
|
-
[K in keyof Opts as Opts[K] extends OptionBuilder<any, infer Name> ? OptionNameToCamelCase<Name> : never]: Opts[K] extends OptionBuilder<infer A, any> ? A : never;
|
|
47
|
-
};
|
|
48
|
-
export type ExtractOptionValues<Opts extends OptionsMap> = ExtractOptionsFromBuilders<Opts>;
|
|
49
|
-
export interface SubcommandDef<Handled extends boolean = boolean> {
|
|
50
|
-
readonly _tag: "SubcommandDef";
|
|
51
|
-
readonly command: CommanderSet<any, any, Handled>;
|
|
52
|
-
}
|
|
53
|
-
type Extend<S, NewOpts extends OptionsMap, NewSubs extends ReadonlyArray<SubcommandDef> = [], Handled extends boolean = false> = S extends CommanderSet<infer Opts, infer Subs, infer _H> ? CommanderSet<Opts & NewOpts, [...Subs, ...NewSubs], Handled> : CommanderSet<NewOpts, NewSubs, Handled>;
|
|
54
|
-
type CommanderBuilder = {
|
|
55
|
-
option: typeof optionMethod;
|
|
56
|
-
optionHelp: typeof optionHelp;
|
|
57
|
-
optionVersion: typeof optionVersion;
|
|
58
|
-
subcommand: typeof subcommand;
|
|
59
|
-
handle: typeof handle;
|
|
60
|
-
};
|
|
61
|
-
export type CommanderSet<Opts extends OptionsMap = {}, Subcommands extends ReadonlyArray<SubcommandDef> = [], Handled extends boolean = false> = Pipeable.Pipeable & CommanderSet.Instance<Opts, Subcommands, Handled> & {
|
|
62
|
-
[TypeId]: typeof TypeId;
|
|
63
|
-
} & CommanderBuilder;
|
|
64
|
-
export declare namespace CommanderSet {
|
|
65
|
-
type Instance<Opts extends OptionsMap = {}, Subcommands extends ReadonlyArray<SubcommandDef> = [], Handled extends boolean = false> = {
|
|
66
|
-
readonly name: string;
|
|
67
|
-
readonly description?: string;
|
|
68
|
-
readonly version?: string;
|
|
69
|
-
readonly options: Opts;
|
|
70
|
-
readonly subcommands: Subcommands;
|
|
71
|
-
readonly handler?: Handled extends true ? (args: ExtractOptionValues<Opts>) => Effect.Effect<void> : never;
|
|
72
|
-
};
|
|
73
|
-
type Default = CommanderSet<{}, [], false>;
|
|
74
|
-
type Proto = {
|
|
75
|
-
[TypeId]: typeof TypeId;
|
|
76
|
-
pipe(): any;
|
|
77
|
-
} & CommanderBuilder;
|
|
78
|
-
}
|
|
79
|
-
declare const optionMethod: <S, Opt extends OptionBuilder<any, any>>(this: S, opt: Opt) => Extend<S, { [K in Opt["name"] as KebabToCamel<StripPrefix<K>>]: Opt; }, [], false>;
|
|
80
|
-
export declare const optionHelp: <S>(this: S) => Extend<S, {
|
|
81
|
-
help: OptionBuilder<boolean, "--help">;
|
|
82
|
-
}, [], false>;
|
|
83
|
-
export declare const optionVersion: <S>(this: S) => Extend<S, {
|
|
84
|
-
version: OptionBuilder<boolean, "--version">;
|
|
85
|
-
}, [], false>;
|
|
86
|
-
export declare const subcommand: <S, SubOpts extends OptionsMap, SubSubs extends readonly SubcommandDef<boolean>[], SubHandled extends boolean>(this: S, cmd: CommanderSet<SubOpts, SubSubs, SubHandled>) => Extend<S, {}, [SubcommandDef<SubHandled>], false>;
|
|
87
|
-
export declare const handle: <Opts extends OptionsMap, Subs extends readonly SubcommandDef<boolean>[]>(this: CommanderSet<Opts, Subs, false>, handler: (args: ExtractOptionsFromBuilders<Opts>) => Effect.Effect<void, never, never>) => CommanderSet<Opts, Subs, true>;
|
|
88
|
-
export declare const make: <const Name extends string>(config: {
|
|
89
|
-
readonly name: Name;
|
|
90
|
-
readonly description?: string | undefined;
|
|
91
|
-
readonly version?: string | undefined;
|
|
92
|
-
}) => CommanderSet<{}, [], false>;
|
|
93
|
-
export declare function isCommanderSet(input: unknown): input is CommanderSet<any, any, any>;
|
|
94
|
-
export declare const parse: <Opts extends OptionsMap, Subs extends readonly SubcommandDef<boolean>[], Handled extends boolean>(cmd: CommanderSet<Opts, Subs, Handled>, args: readonly string[]) => Effect.Effect<ExtractOptionsFromBuilders<Opts>, CommanderError, never>;
|
|
95
|
-
export declare const runMain: <Opts extends OptionsMap, Subs extends readonly SubcommandDef<boolean>[]>(cmd: CommanderSet<Opts, Subs, true>) => Effect.Effect<void, CommanderError, never>;
|
|
96
|
-
export declare const help: <Opts extends OptionsMap, Subs extends readonly SubcommandDef<boolean>[], Handled extends boolean>(cmd: CommanderSet<Opts, Subs, Handled>) => string;
|
|
97
|
-
export declare const NumberFromString: typeof Schema.NumberFromString;
|
|
98
|
-
export declare const choice: <const Choices extends readonly string[]>(choices: Choices) => Schema.Schema<Choices[number], string, never>;
|
|
99
|
-
export declare const repeatable: <A>(schema: Schema.Schema<A, string, never>) => Schema.Schema<readonly A[], string, never>;
|
|
100
|
-
export {};
|
|
101
|
-
//# sourceMappingURL=Commander.d.ts.map
|
package/dist/Commander.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Commander.d.ts","sourceRoot":"","sources":["../src/Commander.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;AAEvC,qBAAa,cAAe,SAAQ,oBAAmC;IACrE,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAC;CAAG;AAEL,QAAA,MAAM,MAAM,EAAE,OAAO,MAA6C,CAAA;AAElE,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GAC1E,GAAG,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,GAC3C,CAAC,CAAA;AAEL,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,EAAE,GAC5D,IAAI,GACJ,CAAC,SAAS,IAAI,MAAM,IAAI,EAAE,GACxB,IAAI,GACJ,CAAC,CAAA;AAEP,KAAK,qBAAqB,CAAC,CAAC,SAAS,MAAM,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3E,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,SAAS,MAAM,GAAG,MAAM;IAClE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;CAC1B;AAED,KAAK,uBAAuB,CAAC,CAAC,EAAE,IAAI,SAAS,MAAM,IAAI,IAAI,CACzD,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,EACtB,QAAQ,GAAG,cAAc,CAC1B,GAAG;IACF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,MAAM,SACX,IAAI,8BACJ,KAAK;WAOJ,CAAC,EAAE,CAAC;;eAKF,CAAC,EAAE,CAAC;gBAIH,CAAC;mBACA,EAAE,YAAY,CAAC;;;YAMlB,CAAC;eACA,EAAE,YAAY,CAAC;;mBAKb,EAAE,YAAY,CAAC;;;CAkE3B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AAEhE,KAAK,0BAA0B,CAAC,IAAI,SAAS,UAAU,IAAI;KACxD,CAAC,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,GAC9D,qBAAqB,CAAC,IAAI,CAAC,GAC3B,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;CACpE,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,IAAI,SAAS,UAAU,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAA;AAE3F,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,OAAO,GAAG,OAAO;IAC9D,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;CAClD;AAED,KAAK,MAAM,CACT,CAAC,EACD,OAAO,SAAS,UAAU,EAC1B,OAAO,SAAS,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,EACjD,OAAO,SAAS,OAAO,GAAG,KAAK,IAE/B,CAAC,SAAS,YAAY,CAAC,MAAM,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,GACpD,YAAY,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,EAAE,OAAO,CAAC,GAC5D,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAE7C,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,OAAO,YAAY,CAAA;IAC3B,UAAU,EAAE,OAAO,UAAU,CAAA;IAC7B,aAAa,EAAE,OAAO,aAAa,CAAA;IACnC,UAAU,EAAE,OAAO,UAAU,CAAA;IAC7B,MAAM,EAAE,OAAO,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,YAAY,CACtB,IAAI,SAAS,UAAU,GAAG,EAAE,EAC5B,WAAW,SAAS,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,EACrD,OAAO,SAAS,OAAO,GAAG,KAAK,IAC7B,QAAQ,CAAC,QAAQ,GACnB,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG;IAClD,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM,CAAA;CACxB,GAAG,gBAAgB,CAAA;AAEtB,yBAAiB,YAAY,CAAC,CAAC;IAC7B,KAAY,QAAQ,CAClB,IAAI,SAAS,UAAU,GAAG,EAAE,EAC5B,WAAW,SAAS,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,EACrD,OAAO,SAAS,OAAO,GAAG,KAAK,IAC7B;QACF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;QAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAA;QACtB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;QACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,SAAS,IAAI,GACnC,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GACxD,KAAK,CAAA;KACV,CAAA;IAED,KAAY,OAAO,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;IAEjD,KAAY,KAAK,GAAG;QAClB,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM,CAAA;QACvB,IAAI,IAAI,GAAG,CAAA;KACZ,GAAG,gBAAgB,CAAA;CACrB;AAED,QAAA,MAAM,YAAY,GAAa,CAAC,EAAE,GAAG,qEAGrB,CAAC,oEAiBhB,CAAA;AAED,eAAO,MAAM,UAAU,GAAa,CAAC;;aA0BpC,CAAA;AAED,eAAO,MAAM,aAAa,GAAa,CAAC;;aA0BvC,CAAA;AAED,eAAO,MAAM,UAAU,GACrB,CAAC,EACD,OAAO,qBACP,OAAO,4CACP,UAAU,gIAwBX,CAAA;AAED,eAAO,MAAM,MAAM,GAAa,IAAI,qBAAqB,IAAI,4MAc5D,CAAA;AAED,eAAO,MAAM,IAAI,SAAU,IAAI;;;;iCAW3B,CAAA;AA+BJ,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAEnF;AAqED,eAAO,MAAM,KAAK,GAChB,IAAI,qBACJ,IAAI,4CACJ,OAAO,4JA8CL,CAAA;AAEJ,eAAO,MAAM,OAAO,GAAI,IAAI,qBAAqB,IAAI,8HAqBjD,CAAA;AA8CJ,eAAO,MAAM,IAAI,GACf,IAAI,qBACJ,IAAI,4CACJ,OAAO,mEAGqB,CAAA;AAE9B,eAAO,MAAM,gBAAgB,gCAA0B,CAAA;AAEvD,eAAO,MAAM,MAAM,SAAU,OAAO,8FAEmC,CAAA;AAEvE,eAAO,MAAM,UAAU,GAAI,CAAC,wFAOmB,CAAA"}
|
package/dist/Commander.js
DELETED
|
@@ -1,327 +0,0 @@
|
|
|
1
|
-
import * as Data from "effect/Data";
|
|
2
|
-
import * as Effect from "effect/Effect";
|
|
3
|
-
import * as Pipeable from "effect/Pipeable";
|
|
4
|
-
import * as Predicate from "effect/Predicate";
|
|
5
|
-
import * as Schema from "effect/Schema";
|
|
6
|
-
export class CommanderError extends Data.TaggedError("CommanderError") {
|
|
7
|
-
}
|
|
8
|
-
const TypeId = Symbol.for("effect-start/Commander");
|
|
9
|
-
export const option = (long, short) => {
|
|
10
|
-
const longName = long;
|
|
11
|
-
const shortName = short ? short.slice(1) : undefined;
|
|
12
|
-
return {
|
|
13
|
-
schema: (schema) => ({
|
|
14
|
-
_tag: "OptionBuilder",
|
|
15
|
-
name: longName,
|
|
16
|
-
long: longName,
|
|
17
|
-
short: shortName,
|
|
18
|
-
description: "",
|
|
19
|
-
schema,
|
|
20
|
-
}),
|
|
21
|
-
description: (desc) => ({
|
|
22
|
-
schema: (schema) => ({
|
|
23
|
-
_tag: "OptionBuilder",
|
|
24
|
-
name: longName,
|
|
25
|
-
long: longName,
|
|
26
|
-
short: shortName,
|
|
27
|
-
description: desc,
|
|
28
|
-
schema,
|
|
29
|
-
}),
|
|
30
|
-
default: (value) => ({
|
|
31
|
-
schema: (schema) => ({
|
|
32
|
-
_tag: "OptionBuilder",
|
|
33
|
-
name: longName,
|
|
34
|
-
long: longName,
|
|
35
|
-
short: shortName,
|
|
36
|
-
description: desc,
|
|
37
|
-
schema,
|
|
38
|
-
defaultValue: value,
|
|
39
|
-
}),
|
|
40
|
-
}),
|
|
41
|
-
}),
|
|
42
|
-
default: (value) => ({
|
|
43
|
-
schema: (schema) => ({
|
|
44
|
-
_tag: "OptionBuilder",
|
|
45
|
-
name: longName,
|
|
46
|
-
long: longName,
|
|
47
|
-
short: shortName,
|
|
48
|
-
description: "",
|
|
49
|
-
schema,
|
|
50
|
-
defaultValue: value,
|
|
51
|
-
}),
|
|
52
|
-
description: (desc) => ({
|
|
53
|
-
schema: (schema) => ({
|
|
54
|
-
_tag: "OptionBuilder",
|
|
55
|
-
name: longName,
|
|
56
|
-
long: longName,
|
|
57
|
-
short: shortName,
|
|
58
|
-
description: desc,
|
|
59
|
-
schema,
|
|
60
|
-
defaultValue: value,
|
|
61
|
-
}),
|
|
62
|
-
}),
|
|
63
|
-
}),
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
const optionMethod = function (opt) {
|
|
67
|
-
const base = (this && typeof this === "object" ? this : {});
|
|
68
|
-
const baseName = base.name ?? "";
|
|
69
|
-
const baseOptions = base.options ?? {};
|
|
70
|
-
const baseSubcommands = base.subcommands ?? [];
|
|
71
|
-
const baseDescription = base.description;
|
|
72
|
-
const baseVersion = base.version;
|
|
73
|
-
const camelKey = kebabToCamel(stripPrefix(opt.long));
|
|
74
|
-
return makeSet({
|
|
75
|
-
name: baseName,
|
|
76
|
-
description: baseDescription,
|
|
77
|
-
version: baseVersion,
|
|
78
|
-
options: { ...baseOptions, [camelKey]: opt },
|
|
79
|
-
subcommands: baseSubcommands,
|
|
80
|
-
});
|
|
81
|
-
};
|
|
82
|
-
export const optionHelp = function () {
|
|
83
|
-
const base = (this && typeof this === "object" ? this : {});
|
|
84
|
-
const baseName = base.name ?? "";
|
|
85
|
-
const baseOptions = base.options ?? {};
|
|
86
|
-
const baseSubcommands = base.subcommands ?? [];
|
|
87
|
-
const baseDescription = base.description;
|
|
88
|
-
const baseVersion = base.version;
|
|
89
|
-
const helpOption = {
|
|
90
|
-
_tag: "OptionBuilder",
|
|
91
|
-
name: "--help",
|
|
92
|
-
long: "--help",
|
|
93
|
-
short: "h",
|
|
94
|
-
description: "Show help information",
|
|
95
|
-
defaultValue: false,
|
|
96
|
-
};
|
|
97
|
-
return makeSet({
|
|
98
|
-
name: baseName,
|
|
99
|
-
description: baseDescription,
|
|
100
|
-
version: baseVersion,
|
|
101
|
-
options: { ...baseOptions, help: helpOption },
|
|
102
|
-
subcommands: baseSubcommands,
|
|
103
|
-
});
|
|
104
|
-
};
|
|
105
|
-
export const optionVersion = function () {
|
|
106
|
-
const base = (this && typeof this === "object" ? this : {});
|
|
107
|
-
const baseName = base.name ?? "";
|
|
108
|
-
const baseOptions = base.options ?? {};
|
|
109
|
-
const baseSubcommands = base.subcommands ?? [];
|
|
110
|
-
const baseDescription = base.description;
|
|
111
|
-
const baseVersion = base.version;
|
|
112
|
-
const versionOption = {
|
|
113
|
-
_tag: "OptionBuilder",
|
|
114
|
-
name: "--version",
|
|
115
|
-
long: "--version",
|
|
116
|
-
short: "V",
|
|
117
|
-
description: "Show version information",
|
|
118
|
-
defaultValue: false,
|
|
119
|
-
};
|
|
120
|
-
return makeSet({
|
|
121
|
-
name: baseName,
|
|
122
|
-
description: baseDescription,
|
|
123
|
-
version: baseVersion,
|
|
124
|
-
options: { ...baseOptions, version: versionOption },
|
|
125
|
-
subcommands: baseSubcommands,
|
|
126
|
-
});
|
|
127
|
-
};
|
|
128
|
-
export const subcommand = function (cmd) {
|
|
129
|
-
const base = (this && typeof this === "object" ? this : {});
|
|
130
|
-
const baseName = base.name ?? "";
|
|
131
|
-
const baseOptions = base.options ?? {};
|
|
132
|
-
const baseSubcommands = base.subcommands ?? [];
|
|
133
|
-
const baseDescription = base.description;
|
|
134
|
-
const baseVersion = base.version;
|
|
135
|
-
const subDef = {
|
|
136
|
-
_tag: "SubcommandDef",
|
|
137
|
-
command: cmd,
|
|
138
|
-
};
|
|
139
|
-
return makeSet({
|
|
140
|
-
name: baseName,
|
|
141
|
-
description: baseDescription,
|
|
142
|
-
version: baseVersion,
|
|
143
|
-
options: baseOptions,
|
|
144
|
-
subcommands: [...baseSubcommands, subDef],
|
|
145
|
-
});
|
|
146
|
-
};
|
|
147
|
-
export const handle = function (handler) {
|
|
148
|
-
const base = this;
|
|
149
|
-
return makeSet({
|
|
150
|
-
name: base.name,
|
|
151
|
-
description: base.description,
|
|
152
|
-
version: base.version,
|
|
153
|
-
options: base.options,
|
|
154
|
-
subcommands: base.subcommands,
|
|
155
|
-
handler,
|
|
156
|
-
});
|
|
157
|
-
};
|
|
158
|
-
export const make = (config) => makeSet({
|
|
159
|
-
name: config.name,
|
|
160
|
-
description: config.description,
|
|
161
|
-
version: config.version,
|
|
162
|
-
options: {},
|
|
163
|
-
subcommands: [],
|
|
164
|
-
});
|
|
165
|
-
const CommanderProto = {
|
|
166
|
-
[TypeId]: TypeId,
|
|
167
|
-
option: optionMethod,
|
|
168
|
-
optionHelp,
|
|
169
|
-
optionVersion,
|
|
170
|
-
subcommand,
|
|
171
|
-
handle,
|
|
172
|
-
pipe() {
|
|
173
|
-
return Pipeable.pipeArguments(this, arguments);
|
|
174
|
-
},
|
|
175
|
-
};
|
|
176
|
-
function makeSet(config) {
|
|
177
|
-
return Object.assign(Object.create(CommanderProto), config);
|
|
178
|
-
}
|
|
179
|
-
export function isCommanderSet(input) {
|
|
180
|
-
return Predicate.hasProperty(input, TypeId);
|
|
181
|
-
}
|
|
182
|
-
const kebabToCamel = (str) => {
|
|
183
|
-
return str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
184
|
-
};
|
|
185
|
-
const stripPrefix = (str) => {
|
|
186
|
-
if (str.startsWith("--"))
|
|
187
|
-
return str.slice(2);
|
|
188
|
-
if (str.startsWith("-"))
|
|
189
|
-
return str.slice(1);
|
|
190
|
-
return str;
|
|
191
|
-
};
|
|
192
|
-
const parseRawArgs = (args) => Effect.gen(function* () {
|
|
193
|
-
const flags = {};
|
|
194
|
-
const options = {};
|
|
195
|
-
const positional = [];
|
|
196
|
-
let i = 0;
|
|
197
|
-
while (i < args.length) {
|
|
198
|
-
const arg = args[i];
|
|
199
|
-
if (arg === "--") {
|
|
200
|
-
positional.push(...args.slice(i + 1));
|
|
201
|
-
break;
|
|
202
|
-
}
|
|
203
|
-
if (arg.startsWith("--")) {
|
|
204
|
-
const equalIndex = arg.indexOf("=");
|
|
205
|
-
if (equalIndex !== -1) {
|
|
206
|
-
const key = arg.slice(2, equalIndex);
|
|
207
|
-
const value = arg.slice(equalIndex + 1);
|
|
208
|
-
options[key] = value;
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
const key = arg.slice(2);
|
|
212
|
-
if (i + 1 < args.length && !args[i + 1].startsWith("-")) {
|
|
213
|
-
options[key] = args[i + 1];
|
|
214
|
-
i++;
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
flags[key] = true;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
else if (arg.startsWith("-") && arg.length > 1) {
|
|
222
|
-
const chars = arg.slice(1);
|
|
223
|
-
for (let j = 0; j < chars.length; j++) {
|
|
224
|
-
const char = chars[j];
|
|
225
|
-
if (j === chars.length - 1 && i + 1 < args.length && !args[i + 1].startsWith("-")) {
|
|
226
|
-
options[char] = args[i + 1];
|
|
227
|
-
i++;
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
flags[char] = true;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
positional.push(arg);
|
|
236
|
-
}
|
|
237
|
-
i++;
|
|
238
|
-
}
|
|
239
|
-
return { flags, options, positional };
|
|
240
|
-
});
|
|
241
|
-
export const parse = (cmd, args) => Effect.gen(function* () {
|
|
242
|
-
const parsed = yield* parseRawArgs(args);
|
|
243
|
-
const result = {};
|
|
244
|
-
for (const optBuilder of Object.values(cmd.options)) {
|
|
245
|
-
const longName = stripPrefix(optBuilder.long);
|
|
246
|
-
const shortName = optBuilder.short;
|
|
247
|
-
const longMatch = parsed.options[longName] || parsed.flags[longName];
|
|
248
|
-
const shortMatch = shortName
|
|
249
|
-
? parsed.options[shortName] || parsed.flags[shortName]
|
|
250
|
-
: undefined;
|
|
251
|
-
const rawValue = longMatch ?? shortMatch;
|
|
252
|
-
const camelKey = kebabToCamel(stripPrefix(optBuilder.long));
|
|
253
|
-
if (rawValue !== undefined) {
|
|
254
|
-
if (typeof rawValue === "boolean") {
|
|
255
|
-
result[camelKey] = rawValue;
|
|
256
|
-
}
|
|
257
|
-
else if (optBuilder.schema) {
|
|
258
|
-
const decoded = yield* Schema.decode(optBuilder.schema)(rawValue).pipe(Effect.mapError((error) => new CommanderError({
|
|
259
|
-
message: `Invalid value for option ${optBuilder.long}: ${error.message}`,
|
|
260
|
-
cause: error,
|
|
261
|
-
})));
|
|
262
|
-
result[camelKey] = decoded;
|
|
263
|
-
}
|
|
264
|
-
else {
|
|
265
|
-
result[camelKey] = rawValue;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
else if (optBuilder.defaultValue !== undefined) {
|
|
269
|
-
result[camelKey] = optBuilder.defaultValue;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
return result;
|
|
273
|
-
});
|
|
274
|
-
export const runMain = (cmd) => Effect.gen(function* () {
|
|
275
|
-
const args = typeof process !== "undefined" ? process.argv.slice(2) : [];
|
|
276
|
-
const parsedOptions = yield* parse(cmd, args);
|
|
277
|
-
if (Predicate.hasProperty(parsedOptions, "help") && parsedOptions.help) {
|
|
278
|
-
console.log(generateHelp(cmd));
|
|
279
|
-
return;
|
|
280
|
-
}
|
|
281
|
-
if (Predicate.hasProperty(parsedOptions, "version") && parsedOptions.version && cmd.version) {
|
|
282
|
-
console.log(`${cmd.name} v${cmd.version}`);
|
|
283
|
-
return;
|
|
284
|
-
}
|
|
285
|
-
if (cmd.handler) {
|
|
286
|
-
yield* cmd.handler(parsedOptions);
|
|
287
|
-
}
|
|
288
|
-
});
|
|
289
|
-
const generateHelp = (cmd) => {
|
|
290
|
-
const lines = [];
|
|
291
|
-
if (cmd.description) {
|
|
292
|
-
lines.push(cmd.description);
|
|
293
|
-
lines.push("");
|
|
294
|
-
}
|
|
295
|
-
lines.push(`Usage: ${cmd.name} [options]`);
|
|
296
|
-
lines.push("");
|
|
297
|
-
const optionsArray = Object.values(cmd.options);
|
|
298
|
-
if (optionsArray.length > 0) {
|
|
299
|
-
lines.push("Options:");
|
|
300
|
-
for (const opt of optionsArray) {
|
|
301
|
-
const short = opt.short ? `-${opt.short}, ` : " ";
|
|
302
|
-
const long = opt.long;
|
|
303
|
-
const hasValue = opt.schema !== undefined;
|
|
304
|
-
const name = hasValue ? `${long} <value>` : long;
|
|
305
|
-
lines.push(` ${short}${name.padEnd(20)} ${opt.description}`);
|
|
306
|
-
}
|
|
307
|
-
lines.push("");
|
|
308
|
-
}
|
|
309
|
-
if (cmd.subcommands.length > 0) {
|
|
310
|
-
lines.push("Commands:");
|
|
311
|
-
for (const sub of cmd.subcommands) {
|
|
312
|
-
const subCmd = sub.command;
|
|
313
|
-
lines.push(` ${subCmd.name.padEnd(20)} ${subCmd.description || ""}`);
|
|
314
|
-
}
|
|
315
|
-
lines.push("");
|
|
316
|
-
}
|
|
317
|
-
return lines.join("\n");
|
|
318
|
-
};
|
|
319
|
-
export const help = (cmd) => generateHelp(cmd);
|
|
320
|
-
export const NumberFromString = Schema.NumberFromString;
|
|
321
|
-
export const choice = (choices) => Schema.Literal(...choices);
|
|
322
|
-
export const repeatable = (schema) => Schema.transform(Schema.String, Schema.Array(Schema.String), {
|
|
323
|
-
strict: true,
|
|
324
|
-
decode: (s) => s.split(",").map((part) => part.trim()),
|
|
325
|
-
encode: (arr) => arr.join(","),
|
|
326
|
-
}).pipe(Schema.compose(Schema.Array(schema)));
|
|
327
|
-
//# sourceMappingURL=Commander.js.map
|