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.
Files changed (645) hide show
  1. package/dist/Cookies.d.ts +9 -41
  2. package/dist/Cookies.d.ts.map +1 -1
  3. package/dist/Cookies.js +2 -2
  4. package/dist/Cookies.js.map +1 -1
  5. package/dist/Entity.d.ts +5 -6
  6. package/dist/Entity.d.ts.map +1 -1
  7. package/dist/Entity.js +10 -7
  8. package/dist/Entity.js.map +1 -1
  9. package/dist/Fetch.d.ts +23 -4
  10. package/dist/Fetch.d.ts.map +1 -1
  11. package/dist/Fetch.js +90 -1
  12. package/dist/Fetch.js.map +1 -1
  13. package/dist/FileRouter.d.ts +4 -7
  14. package/dist/FileRouter.d.ts.map +1 -1
  15. package/dist/FileRouter.js +39 -30
  16. package/dist/FileRouter.js.map +1 -1
  17. package/dist/FileRouterCodegen.d.ts +2 -2
  18. package/dist/FileRouterCodegen.d.ts.map +1 -1
  19. package/dist/FileRouterCodegen.js +9 -21
  20. package/dist/FileRouterCodegen.js.map +1 -1
  21. package/dist/FileSystem.d.ts +39 -39
  22. package/dist/FileSystem.d.ts.map +1 -1
  23. package/dist/FileSystem.js +5 -3
  24. package/dist/FileSystem.js.map +1 -1
  25. package/dist/GlobalLayer.d.ts +2 -2
  26. package/dist/GlobalLayer.d.ts.map +1 -1
  27. package/dist/GlobalLayer.js +1 -1
  28. package/dist/GlobalLayer.js.map +1 -1
  29. package/dist/PlatformRuntime.d.ts.map +1 -1
  30. package/dist/PlatformRuntime.js.map +1 -1
  31. package/dist/Route.d.ts +2 -2
  32. package/dist/Route.d.ts.map +1 -1
  33. package/dist/Route.js +1 -1
  34. package/dist/Route.js.map +1 -1
  35. package/dist/RouteBody.d.ts +1 -1
  36. package/dist/RouteBody.d.ts.map +1 -1
  37. package/dist/RouteBody.js.map +1 -1
  38. package/dist/RouteError.js.map +1 -1
  39. package/dist/RouteHook.d.ts.map +1 -1
  40. package/dist/RouteHook.js.map +1 -1
  41. package/dist/RouteHttp.d.ts +1 -1
  42. package/dist/RouteHttp.d.ts.map +1 -1
  43. package/dist/RouteHttp.js +38 -31
  44. package/dist/RouteHttp.js.map +1 -1
  45. package/dist/RouteHttpTracer.d.ts.map +1 -1
  46. package/dist/RouteHttpTracer.js.map +1 -1
  47. package/dist/RouteMount.d.ts +2 -2
  48. package/dist/RouteMount.d.ts.map +1 -1
  49. package/dist/RouteMount.js +1 -1
  50. package/dist/RouteMount.js.map +1 -1
  51. package/dist/RouteSchema.d.ts +2 -2
  52. package/dist/RouteSchema.d.ts.map +1 -1
  53. package/dist/RouteSchema.js +2 -2
  54. package/dist/RouteSchema.js.map +1 -1
  55. package/dist/RouteSse.d.ts +9 -10
  56. package/dist/RouteSse.d.ts.map +1 -1
  57. package/dist/RouteSse.js +8 -12
  58. package/dist/RouteSse.js.map +1 -1
  59. package/dist/RouteTree.d.ts +2 -2
  60. package/dist/RouteTree.d.ts.map +1 -1
  61. package/dist/RouteTree.js +2 -2
  62. package/dist/RouteTree.js.map +1 -1
  63. package/dist/RouteTrie.js +1 -1
  64. package/dist/RouteTrie.js.map +1 -1
  65. package/dist/Socket.d.ts +13 -18
  66. package/dist/Socket.d.ts.map +1 -1
  67. package/dist/Socket.js +12 -13
  68. package/dist/Socket.js.map +1 -1
  69. package/dist/Start.d.ts +15 -23
  70. package/dist/Start.d.ts.map +1 -1
  71. package/dist/Start.js +17 -6
  72. package/dist/Start.js.map +1 -1
  73. package/dist/System.d.ts +20 -5
  74. package/dist/System.d.ts.map +1 -1
  75. package/dist/System.js +12 -42
  76. package/dist/System.js.map +1 -1
  77. package/dist/Unique.d.ts.map +1 -1
  78. package/dist/Unique.js.map +1 -1
  79. package/dist/{ChildProcess.d.ts → _ChildProcess.d.ts} +14 -15
  80. package/dist/_ChildProcess.d.ts.map +1 -0
  81. package/dist/{ChildProcess.js → _ChildProcess.js} +2 -2
  82. package/dist/_ChildProcess.js.map +1 -0
  83. package/dist/{ContentNegotiation.d.ts → _ContentNegotiation.d.ts} +1 -1
  84. package/dist/_ContentNegotiation.d.ts.map +1 -0
  85. package/dist/{ContentNegotiation.js → _ContentNegotiation.js} +1 -1
  86. package/dist/_ContentNegotiation.js.map +1 -0
  87. package/dist/_Development.d.ts +27 -0
  88. package/dist/_Development.d.ts.map +1 -0
  89. package/dist/{Development.js → _Development.js} +6 -9
  90. package/dist/_Development.js.map +1 -0
  91. package/dist/{Docker.d.ts → _Docker.d.ts} +2 -2
  92. package/dist/_Docker.d.ts.map +1 -0
  93. package/dist/{Docker.js → _Docker.js} +1 -1
  94. package/dist/_Docker.js.map +1 -0
  95. package/dist/{Effectify.d.ts → _Effectify.d.ts} +1 -1
  96. package/dist/_Effectify.d.ts.map +1 -0
  97. package/dist/{Effectify.js → _Effectify.js} +1 -1
  98. package/dist/_Effectify.js.map +1 -0
  99. package/dist/{Http.d.ts → _Http.d.ts} +1 -8
  100. package/dist/_Http.d.ts.map +1 -0
  101. package/dist/{Http.js → _Http.js} +1 -17
  102. package/dist/_Http.js.map +1 -0
  103. package/dist/{PathPattern.d.ts → _PathPattern.d.ts} +12 -1
  104. package/dist/_PathPattern.d.ts.map +1 -0
  105. package/dist/{PathPattern.js → _PathPattern.js} +86 -1
  106. package/dist/_PathPattern.js.map +1 -0
  107. package/dist/_SchemaExtra.d.ts +4 -0
  108. package/dist/_SchemaExtra.d.ts.map +1 -0
  109. package/dist/{SchemaExtra.js → _SchemaExtra.js} +4 -4
  110. package/dist/_SchemaExtra.js.map +1 -0
  111. package/dist/{StartApp.d.ts → _StartApp.d.ts} +1 -1
  112. package/dist/_StartApp.d.ts.map +1 -0
  113. package/dist/{StartApp.js → _StartApp.js} +1 -1
  114. package/dist/_StartApp.js.map +1 -0
  115. package/dist/{StreamExtra.d.ts → _StreamExtra.d.ts} +5 -5
  116. package/dist/_StreamExtra.d.ts.map +1 -0
  117. package/dist/{StreamExtra.js → _StreamExtra.js} +1 -1
  118. package/dist/_StreamExtra.js.map +1 -0
  119. package/dist/{Values.d.ts → _Values.d.ts} +3 -3
  120. package/dist/_Values.d.ts.map +1 -0
  121. package/dist/{Values.js → _Values.js} +1 -1
  122. package/dist/_Values.js.map +1 -0
  123. package/dist/bun/BunBundle.d.ts +2 -2
  124. package/dist/bun/BunBundle.d.ts.map +1 -1
  125. package/dist/bun/BunBundle.js.map +1 -1
  126. package/dist/bun/BunChildProcessSpawner.d.ts +1 -1
  127. package/dist/bun/BunChildProcessSpawner.d.ts.map +1 -1
  128. package/dist/bun/BunChildProcessSpawner.js +9 -9
  129. package/dist/bun/BunChildProcessSpawner.js.map +1 -1
  130. package/dist/bun/BunImportTrackerPlugin.d.ts +2 -2
  131. package/dist/bun/BunImportTrackerPlugin.d.ts.map +1 -1
  132. package/dist/bun/BunImportTrackerPlugin.js.map +1 -1
  133. package/dist/bun/BunRoute.d.ts +1 -1
  134. package/dist/bun/BunRoute.d.ts.map +1 -1
  135. package/dist/bun/BunRoute.js +6 -7
  136. package/dist/bun/BunRoute.js.map +1 -1
  137. package/dist/bun/BunRuntime.js.map +1 -1
  138. package/dist/bun/BunServer.d.ts +5 -5
  139. package/dist/bun/BunServer.d.ts.map +1 -1
  140. package/dist/bun/BunServer.js +3 -3
  141. package/dist/bun/BunServer.js.map +1 -1
  142. package/dist/bun/BunVirtualFilesPlugin.js.map +1 -1
  143. package/dist/bun/_BunEnhancedResolve.d.ts.map +1 -1
  144. package/dist/bun/_BunEnhancedResolve.js.map +1 -1
  145. package/dist/bun/_empty.html +0 -0
  146. package/dist/bundler/Bundle.d.ts +2 -2
  147. package/dist/bundler/Bundle.d.ts.map +1 -1
  148. package/dist/bundler/Bundle.js.map +1 -1
  149. package/dist/bundler/BundleFiles.d.ts +1 -1
  150. package/dist/bundler/BundleFiles.d.ts.map +1 -1
  151. package/dist/bundler/BundleFiles.js.map +1 -1
  152. package/dist/bundler/BundleRoute.d.ts +6 -5
  153. package/dist/bundler/BundleRoute.d.ts.map +1 -1
  154. package/dist/bundler/BundleRoute.js +2 -2
  155. package/dist/bundler/BundleRoute.js.map +1 -1
  156. package/dist/cli/Argument.d.ts +26 -0
  157. package/dist/cli/Argument.d.ts.map +1 -0
  158. package/dist/cli/Argument.js +31 -0
  159. package/dist/cli/Argument.js.map +1 -0
  160. package/dist/cli/CliError.d.ts +15 -0
  161. package/dist/cli/CliError.d.ts.map +1 -0
  162. package/dist/cli/CliError.js +54 -0
  163. package/dist/cli/CliError.js.map +1 -0
  164. package/dist/cli/Command.d.ts +61 -0
  165. package/dist/cli/Command.d.ts.map +1 -0
  166. package/dist/cli/Command.js +453 -0
  167. package/dist/cli/Command.js.map +1 -0
  168. package/dist/cli/Flag.d.ts +32 -0
  169. package/dist/cli/Flag.d.ts.map +1 -0
  170. package/dist/cli/Flag.js +35 -0
  171. package/dist/cli/Flag.js.map +1 -0
  172. package/dist/cli/HelpDoc.d.ts +28 -0
  173. package/dist/cli/HelpDoc.d.ts.map +1 -0
  174. package/dist/cli/HelpDoc.js +40 -0
  175. package/dist/cli/HelpDoc.js.map +1 -0
  176. package/dist/cli/Param.d.ts +71 -0
  177. package/dist/cli/Param.d.ts.map +1 -0
  178. package/dist/cli/Param.js +236 -0
  179. package/dist/cli/Param.js.map +1 -0
  180. package/dist/cli/Primitive.d.ts +22 -0
  181. package/dist/cli/Primitive.d.ts.map +1 -0
  182. package/dist/cli/Primitive.js +73 -0
  183. package/dist/cli/Primitive.js.map +1 -0
  184. package/dist/cli/index.d.ts +8 -0
  185. package/dist/cli/index.d.ts.map +1 -0
  186. package/dist/cli/index.js +8 -0
  187. package/dist/cli/index.js.map +1 -0
  188. package/dist/client/Overlay.js.map +1 -1
  189. package/dist/client/ScrollState.js.map +1 -1
  190. package/dist/client/index.js.map +1 -1
  191. package/dist/datastar/actions/fetch.js.map +1 -1
  192. package/dist/datastar/actions/peek.js.map +1 -1
  193. package/dist/datastar/actions/setAll.js.map +1 -1
  194. package/dist/datastar/actions/toggleAll.js.map +1 -1
  195. package/dist/datastar/attributes/attr.js.map +1 -1
  196. package/dist/datastar/attributes/bind.js.map +1 -1
  197. package/dist/datastar/attributes/class.js.map +1 -1
  198. package/dist/datastar/attributes/computed.js.map +1 -1
  199. package/dist/datastar/attributes/indicator.js.map +1 -1
  200. package/dist/datastar/attributes/init.js.map +1 -1
  201. package/dist/datastar/attributes/jsonSignals.js.map +1 -1
  202. package/dist/datastar/attributes/on.js.map +1 -1
  203. package/dist/datastar/attributes/onIntersect.js.map +1 -1
  204. package/dist/datastar/attributes/onInterval.js.map +1 -1
  205. package/dist/datastar/attributes/onSignalPatch.js.map +1 -1
  206. package/dist/datastar/attributes/ref.js.map +1 -1
  207. package/dist/datastar/attributes/show.js.map +1 -1
  208. package/dist/datastar/attributes/signals.js.map +1 -1
  209. package/dist/datastar/attributes/style.js.map +1 -1
  210. package/dist/datastar/attributes/text.js.map +1 -1
  211. package/dist/datastar/engine.d.ts +5 -5
  212. package/dist/datastar/engine.d.ts.map +1 -1
  213. package/dist/datastar/engine.js.map +1 -1
  214. package/dist/datastar/utils.d.ts +1 -1
  215. package/dist/datastar/utils.d.ts.map +1 -1
  216. package/dist/datastar/utils.js.map +1 -1
  217. package/dist/datastar/watchers/patchElements.js +3 -1
  218. package/dist/datastar/watchers/patchElements.js.map +1 -1
  219. package/dist/datastar/watchers/patchSignals.js.map +1 -1
  220. package/dist/experimental/EncryptedCookies.d.ts +4 -4
  221. package/dist/experimental/EncryptedCookies.d.ts.map +1 -1
  222. package/dist/experimental/EncryptedCookies.js.map +1 -1
  223. package/dist/hyper/Hyper.js.map +1 -1
  224. package/dist/hyper/HyperHtml.js.map +1 -1
  225. package/dist/hyper/HyperHtml.test.js.map +1 -1
  226. package/dist/hyper/HyperNode.d.ts +1 -2
  227. package/dist/hyper/HyperNode.d.ts.map +1 -1
  228. package/dist/hyper/HyperNode.js +1 -1
  229. package/dist/hyper/HyperNode.js.map +1 -1
  230. package/dist/hyper/HyperRoute.js.map +1 -1
  231. package/dist/hyper/HyperRoute.test.js +11 -13
  232. package/dist/hyper/HyperRoute.test.js.map +1 -1
  233. package/dist/hyper/html.d.ts +5 -4
  234. package/dist/hyper/html.d.ts.map +1 -1
  235. package/dist/hyper/html.js.map +1 -1
  236. package/dist/hyper/jsx-runtime.js.map +1 -1
  237. package/dist/index.d.ts +1 -1
  238. package/dist/index.d.ts.map +1 -1
  239. package/dist/index.js +1 -1
  240. package/dist/index.js.map +1 -1
  241. package/dist/lint/plugin.d.ts +18 -15
  242. package/dist/lint/plugin.d.ts.map +1 -1
  243. package/dist/lint/plugin.js +76 -80
  244. package/dist/lint/plugin.js.map +1 -1
  245. package/dist/node/NodeFileSystem.d.ts +3 -3
  246. package/dist/node/NodeFileSystem.d.ts.map +1 -1
  247. package/dist/node/NodeFileSystem.js +8 -7
  248. package/dist/node/NodeFileSystem.js.map +1 -1
  249. package/dist/node/NodeUtils.d.ts.map +1 -1
  250. package/dist/node/NodeUtils.js.map +1 -1
  251. package/dist/sql/SqlCache.d.ts +1 -0
  252. package/dist/sql/SqlCache.d.ts.map +1 -1
  253. package/dist/sql/SqlCache.js +5 -1
  254. package/dist/sql/SqlCache.js.map +1 -1
  255. package/dist/sql/SqlClient.js +1 -1
  256. package/dist/sql/SqlClient.js.map +1 -1
  257. package/dist/{SqlIntrospect.d.ts → sql/SqlIntrospect.d.ts} +3 -3
  258. package/dist/sql/SqlIntrospect.d.ts.map +1 -0
  259. package/dist/{SqlIntrospect.js → sql/SqlIntrospect.js} +1 -1
  260. package/dist/sql/SqlIntrospect.js.map +1 -0
  261. package/dist/sql/bun/index.d.ts +3 -3
  262. package/dist/sql/bun/index.d.ts.map +1 -1
  263. package/dist/sql/bun/index.js +1 -1
  264. package/dist/sql/bun/index.js.map +1 -1
  265. package/dist/sql/index.d.ts +1 -0
  266. package/dist/sql/index.d.ts.map +1 -1
  267. package/dist/sql/index.js +1 -0
  268. package/dist/sql/index.js.map +1 -1
  269. package/dist/sql/libsql/index.d.ts +1 -1
  270. package/dist/sql/libsql/index.d.ts.map +1 -1
  271. package/dist/sql/libsql/index.js +2 -2
  272. package/dist/sql/libsql/index.js.map +1 -1
  273. package/dist/sql/mssql/index.d.ts +3 -3
  274. package/dist/sql/mssql/index.d.ts.map +1 -1
  275. package/dist/sql/mssql/index.js +1 -1
  276. package/dist/sql/mssql/index.js.map +1 -1
  277. package/dist/sql/postgres/index.d.ts +1 -1
  278. package/dist/sql/postgres/index.d.ts.map +1 -1
  279. package/dist/sql/postgres/index.js.map +1 -1
  280. package/dist/studio/Simulation.d.ts.map +1 -0
  281. package/dist/studio/Simulation.js.map +1 -0
  282. package/dist/{tower/Tower.d.ts → studio/Studio.d.ts} +4 -4
  283. package/dist/studio/Studio.d.ts.map +1 -0
  284. package/dist/studio/Studio.js +30 -0
  285. package/dist/studio/Studio.js.map +1 -0
  286. package/dist/studio/StudioErrors.d.ts +4 -0
  287. package/dist/studio/StudioErrors.d.ts.map +1 -0
  288. package/dist/{tower/TowerErrors.js → studio/StudioErrors.js} +6 -6
  289. package/dist/studio/StudioErrors.js.map +1 -0
  290. package/dist/{tower/TowerLogger.d.ts → studio/StudioLogger.d.ts} +1 -1
  291. package/dist/studio/StudioLogger.d.ts.map +1 -0
  292. package/dist/{tower/TowerLogger.js → studio/StudioLogger.js} +7 -7
  293. package/dist/studio/StudioLogger.js.map +1 -0
  294. package/dist/studio/StudioMetrics.d.ts +4 -0
  295. package/dist/studio/StudioMetrics.d.ts.map +1 -0
  296. package/dist/{tower/TowerMetrics.js → studio/StudioMetrics.js} +3 -3
  297. package/dist/studio/StudioMetrics.js.map +1 -0
  298. package/dist/studio/StudioProcess.d.ts +4 -0
  299. package/dist/studio/StudioProcess.d.ts.map +1 -0
  300. package/dist/{tower/TowerProcess.js → studio/StudioProcess.js} +3 -3
  301. package/dist/studio/StudioProcess.js.map +1 -0
  302. package/dist/{tower/TowerStore.d.ts → studio/StudioStore.d.ts} +33 -33
  303. package/dist/studio/StudioStore.d.ts.map +1 -0
  304. package/dist/{tower/TowerStore.js → studio/StudioStore.js} +5 -5
  305. package/dist/studio/StudioStore.js.map +1 -0
  306. package/dist/studio/StudioTracer.d.ts +4 -0
  307. package/dist/studio/StudioTracer.d.ts.map +1 -0
  308. package/dist/{tower/TowerTracer.js → studio/StudioTracer.js} +21 -21
  309. package/dist/studio/StudioTracer.js.map +1 -0
  310. package/dist/studio/index.d.ts +4 -0
  311. package/dist/studio/index.d.ts.map +1 -0
  312. package/dist/studio/index.js +4 -0
  313. package/dist/studio/index.js.map +1 -0
  314. package/dist/{tower → studio}/routes/errors/route.d.ts +1 -1
  315. package/dist/{tower/routes/metrics → studio/routes/errors}/route.d.ts.map +1 -1
  316. package/dist/{tower → studio}/routes/errors/route.js +5 -9
  317. package/dist/studio/routes/errors/route.js.map +1 -0
  318. package/dist/{tower → studio}/routes/fiberDetail.d.ts +1 -1
  319. package/dist/studio/routes/fiberDetail.d.ts.map +1 -0
  320. package/dist/{tower → studio}/routes/fiberDetail.js +7 -7
  321. package/dist/studio/routes/fiberDetail.js.map +1 -0
  322. package/dist/{tower/routes/traces → studio/routes/fibers}/route.d.ts +1 -1
  323. package/dist/studio/routes/fibers/route.d.ts.map +1 -0
  324. package/dist/studio/routes/fibers/route.js +25 -0
  325. package/dist/studio/routes/fibers/route.js.map +1 -0
  326. package/dist/studio/routes/layout.d.ts.map +1 -0
  327. package/{src/tower → dist/studio}/routes/layout.html +1 -1
  328. package/dist/studio/routes/layout.js.map +1 -0
  329. package/dist/{tower → studio}/routes/logs/route.d.ts +1 -1
  330. package/dist/studio/routes/logs/route.d.ts.map +1 -0
  331. package/dist/studio/routes/logs/route.js +30 -0
  332. package/dist/studio/routes/logs/route.js.map +1 -0
  333. package/dist/{tower → studio}/routes/metrics/route.d.ts +1 -1
  334. package/dist/studio/routes/metrics/route.d.ts.map +1 -0
  335. package/dist/{tower → studio}/routes/metrics/route.js +3 -5
  336. package/dist/studio/routes/metrics/route.js.map +1 -0
  337. package/dist/{tower → studio}/routes/route.d.ts +1 -1
  338. package/dist/studio/routes/route.d.ts.map +1 -0
  339. package/dist/studio/routes/route.js +6 -0
  340. package/dist/studio/routes/route.js.map +1 -0
  341. package/dist/{tower → studio}/routes/routes/route.d.ts +1 -1
  342. package/dist/studio/routes/routes/route.d.ts.map +1 -0
  343. package/dist/{tower → studio}/routes/routes/route.js +2 -4
  344. package/dist/studio/routes/routes/route.js.map +1 -0
  345. package/dist/{tower → studio}/routes/services/route.d.ts +1 -1
  346. package/dist/studio/routes/services/route.d.ts.map +1 -0
  347. package/dist/studio/routes/services/route.js +13 -0
  348. package/dist/studio/routes/services/route.js.map +1 -0
  349. package/dist/{tower → studio}/routes/system/route.d.ts +1 -1
  350. package/dist/studio/routes/system/route.d.ts.map +1 -0
  351. package/dist/studio/routes/system/route.js +19 -0
  352. package/dist/studio/routes/system/route.js.map +1 -0
  353. package/dist/{tower → studio}/routes/traceDetail.d.ts +1 -1
  354. package/dist/studio/routes/traceDetail.d.ts.map +1 -0
  355. package/dist/{tower → studio}/routes/traceDetail.js +4 -4
  356. package/dist/studio/routes/traceDetail.js.map +1 -0
  357. package/dist/{tower/routes/fibers → studio/routes/traces}/route.d.ts +1 -1
  358. package/dist/studio/routes/traces/route.d.ts.map +1 -0
  359. package/dist/studio/routes/traces/route.js +30 -0
  360. package/dist/studio/routes/traces/route.js.map +1 -0
  361. package/dist/{tower → studio}/routes/tree.d.ts +46 -46
  362. package/dist/studio/routes/tree.d.ts.map +1 -0
  363. package/dist/studio/routes/tree.js.map +1 -0
  364. package/dist/studio/ui/Errors.d.ts +5 -0
  365. package/dist/studio/ui/Errors.d.ts.map +1 -0
  366. package/dist/studio/ui/Errors.js +17 -0
  367. package/dist/studio/ui/Errors.js.map +1 -0
  368. package/dist/{tower → studio}/ui/Fibers.d.ts +5 -5
  369. package/dist/studio/ui/Fibers.d.ts.map +1 -0
  370. package/dist/studio/ui/Fibers.js +134 -0
  371. package/dist/studio/ui/Fibers.js.map +1 -0
  372. package/dist/studio/ui/Logs.d.ts +5 -0
  373. package/dist/studio/ui/Logs.d.ts.map +1 -0
  374. package/dist/{tower → studio}/ui/Logs.js +2 -3
  375. package/dist/studio/ui/Logs.js.map +1 -0
  376. package/dist/studio/ui/Metrics.d.ts +5 -0
  377. package/dist/studio/ui/Metrics.d.ts.map +1 -0
  378. package/dist/{tower → studio}/ui/Metrics.js +4 -11
  379. package/dist/studio/ui/Metrics.js.map +1 -0
  380. package/dist/studio/ui/Routes.d.ts.map +1 -0
  381. package/dist/{tower → studio}/ui/Routes.js +4 -12
  382. package/dist/studio/ui/Routes.js.map +1 -0
  383. package/dist/studio/ui/Services.d.ts.map +1 -0
  384. package/dist/{tower → studio}/ui/Services.js +2 -9
  385. package/dist/studio/ui/Services.js.map +1 -0
  386. package/dist/studio/ui/Shell.d.ts.map +1 -0
  387. package/dist/studio/ui/Shell.js +8 -0
  388. package/dist/studio/ui/Shell.js.map +1 -0
  389. package/dist/studio/ui/System.d.ts +5 -0
  390. package/dist/studio/ui/System.d.ts.map +1 -0
  391. package/dist/studio/ui/System.js +36 -0
  392. package/dist/studio/ui/System.js.map +1 -0
  393. package/dist/studio/ui/Traces.d.ts +13 -0
  394. package/dist/studio/ui/Traces.d.ts.map +1 -0
  395. package/dist/studio/ui/Traces.js +182 -0
  396. package/dist/studio/ui/Traces.js.map +1 -0
  397. package/dist/testing/TestLogger.js.map +1 -1
  398. package/dist/testing/utils.d.ts +3 -1
  399. package/dist/testing/utils.d.ts.map +1 -1
  400. package/dist/testing/utils.js +39 -0
  401. package/dist/testing/utils.js.map +1 -1
  402. package/dist/x/cloudflare/CloudflareTunnel.d.ts +8 -7
  403. package/dist/x/cloudflare/CloudflareTunnel.d.ts.map +1 -1
  404. package/dist/x/cloudflare/CloudflareTunnel.js.map +1 -1
  405. package/dist/x/tailscale/TailscaleTunnel.d.ts +9 -9
  406. package/dist/x/tailscale/TailscaleTunnel.d.ts.map +1 -1
  407. package/dist/x/tailscale/TailscaleTunnel.js +3 -4
  408. package/dist/x/tailscale/TailscaleTunnel.js.map +1 -1
  409. package/dist/x/tailwind/TailwindPlugin.d.ts +5 -5
  410. package/dist/x/tailwind/TailwindPlugin.d.ts.map +1 -1
  411. package/dist/x/tailwind/TailwindPlugin.js.map +1 -1
  412. package/dist/x/tailwind/compile.js.map +1 -1
  413. package/dist/x/tailwind/plugin.js.map +1 -1
  414. package/package.json +42 -60
  415. package/src/Cookies.ts +4 -8
  416. package/src/Entity.ts +24 -19
  417. package/src/Fetch.ts +128 -5
  418. package/src/FileRouter.ts +46 -49
  419. package/src/FileRouterCodegen.ts +9 -23
  420. package/src/FileSystem.ts +43 -63
  421. package/src/GlobalLayer.ts +1 -1
  422. package/src/Route.ts +2 -2
  423. package/src/RouteBody.ts +1 -1
  424. package/src/RouteHttp.ts +133 -113
  425. package/src/RouteMount.ts +3 -3
  426. package/src/RouteSchema.ts +2 -2
  427. package/src/RouteSse.ts +28 -37
  428. package/src/RouteTree.ts +2 -2
  429. package/src/RouteTrie.ts +1 -1
  430. package/src/Socket.ts +17 -27
  431. package/src/Start.ts +39 -47
  432. package/src/System.ts +40 -64
  433. package/src/{ChildProcess.ts → _ChildProcess.ts} +13 -22
  434. package/src/{Development.ts → _Development.ts} +16 -21
  435. package/src/{Docker.ts → _Docker.ts} +1 -1
  436. package/src/{Http.ts → _Http.ts} +0 -28
  437. package/src/{PathPattern.ts → _PathPattern.ts} +105 -0
  438. package/src/{SchemaExtra.ts → _SchemaExtra.ts} +3 -4
  439. package/src/bun/BunChildProcessSpawner.ts +9 -9
  440. package/src/bun/BunRoute.ts +5 -8
  441. package/src/bun/BunServer.ts +3 -3
  442. package/src/bundler/BundleRoute.ts +2 -2
  443. package/src/cli/Argument.ts +45 -0
  444. package/src/cli/CliError.ts +68 -0
  445. package/src/cli/Command.ts +685 -0
  446. package/src/cli/Flag.ts +63 -0
  447. package/src/cli/HelpDoc.ts +67 -0
  448. package/src/cli/Param.ts +418 -0
  449. package/src/cli/Primitive.ts +94 -0
  450. package/src/cli/index.ts +7 -0
  451. package/src/datastar/watchers/patchElements.ts +4 -2
  452. package/src/hyper/HyperHtml.test.tsx +395 -0
  453. package/src/hyper/HyperNode.ts +1 -2
  454. package/src/hyper/HyperRoute.test.tsx +166 -0
  455. package/src/hyper/HyperRoute.ts +1 -1
  456. package/src/index.ts +1 -1
  457. package/src/lint/plugin.js +86 -97
  458. package/src/node/NodeFileSystem.ts +15 -14
  459. package/src/sql/SqlCache.ts +14 -1
  460. package/src/sql/SqlClient.ts +1 -1
  461. package/src/{SqlIntrospect.ts → sql/SqlIntrospect.ts} +1 -1
  462. package/src/sql/bun/index.ts +1 -1
  463. package/src/sql/index.ts +1 -0
  464. package/src/sql/libsql/index.ts +1 -1
  465. package/src/sql/mssql/index.ts +1 -1
  466. package/src/studio/Studio.ts +47 -0
  467. package/src/{tower/TowerErrors.ts → studio/StudioErrors.ts} +13 -13
  468. package/src/{tower/TowerLogger.ts → studio/StudioLogger.ts} +10 -10
  469. package/src/{tower/TowerMetrics.ts → studio/StudioMetrics.ts} +5 -5
  470. package/src/{tower/TowerProcess.ts → studio/StudioProcess.ts} +4 -4
  471. package/src/{tower/TowerStore.ts → studio/StudioStore.ts} +37 -37
  472. package/src/{tower/TowerTracer.ts → studio/StudioTracer.ts} +25 -25
  473. package/src/studio/index.ts +3 -0
  474. package/src/{tower → studio}/routes/errors/route.tsx +4 -4
  475. package/src/{tower → studio}/routes/fiberDetail.tsx +8 -8
  476. package/src/{tower → studio}/routes/fibers/route.tsx +10 -10
  477. package/src/studio/routes/layout.html +340 -0
  478. package/src/{tower → studio}/routes/logs/route.tsx +4 -4
  479. package/src/{tower → studio}/routes/metrics/route.tsx +5 -5
  480. package/src/studio/routes/route.tsx +8 -0
  481. package/src/{tower → studio}/routes/routes/route.tsx +2 -2
  482. package/src/{tower → studio}/routes/services/route.tsx +2 -2
  483. package/src/{tower → studio}/routes/system/route.tsx +5 -5
  484. package/src/{tower → studio}/routes/traceDetail.tsx +5 -5
  485. package/src/{tower → studio}/routes/traces/route.tsx +5 -5
  486. package/src/{tower → studio}/ui/Errors.tsx +3 -3
  487. package/src/{tower → studio}/ui/Fibers.tsx +7 -7
  488. package/src/{tower → studio}/ui/Logs.tsx +3 -3
  489. package/src/{tower → studio}/ui/Metrics.tsx +4 -4
  490. package/src/{tower → studio}/ui/Shell.tsx +1 -1
  491. package/src/{tower → studio}/ui/System.tsx +2 -2
  492. package/src/{tower → studio}/ui/Traces.tsx +16 -16
  493. package/src/testing/utils.ts +59 -0
  494. package/src/x/tailscale/TailscaleTunnel.ts +3 -4
  495. package/dist/ChildProcess.d.ts.map +0 -1
  496. package/dist/ChildProcess.js.map +0 -1
  497. package/dist/Commander.d.ts +0 -101
  498. package/dist/Commander.d.ts.map +0 -1
  499. package/dist/Commander.js +0 -327
  500. package/dist/Commander.js.map +0 -1
  501. package/dist/ContentNegotiation.d.ts.map +0 -1
  502. package/dist/ContentNegotiation.js.map +0 -1
  503. package/dist/Development.d.ts +0 -42
  504. package/dist/Development.d.ts.map +0 -1
  505. package/dist/Development.js.map +0 -1
  506. package/dist/Docker.d.ts.map +0 -1
  507. package/dist/Docker.js.map +0 -1
  508. package/dist/Effectify.d.ts.map +0 -1
  509. package/dist/Effectify.js.map +0 -1
  510. package/dist/FilePathPattern.d.ts +0 -30
  511. package/dist/FilePathPattern.d.ts.map +0 -1
  512. package/dist/FilePathPattern.js +0 -87
  513. package/dist/FilePathPattern.js.map +0 -1
  514. package/dist/Http.d.ts.map +0 -1
  515. package/dist/Http.js.map +0 -1
  516. package/dist/PathPattern.d.ts.map +0 -1
  517. package/dist/PathPattern.js.map +0 -1
  518. package/dist/PlatformError.d.ts +0 -39
  519. package/dist/PlatformError.d.ts.map +0 -1
  520. package/dist/PlatformError.js +0 -26
  521. package/dist/PlatformError.js.map +0 -1
  522. package/dist/SchemaExtra.d.ts +0 -8
  523. package/dist/SchemaExtra.d.ts.map +0 -1
  524. package/dist/SchemaExtra.js.map +0 -1
  525. package/dist/SqlIntrospect.d.ts.map +0 -1
  526. package/dist/SqlIntrospect.js.map +0 -1
  527. package/dist/StartApp.d.ts.map +0 -1
  528. package/dist/StartApp.js.map +0 -1
  529. package/dist/StreamExtra.d.ts.map +0 -1
  530. package/dist/StreamExtra.js.map +0 -1
  531. package/dist/TuplePathPattern.d.ts +0 -10
  532. package/dist/TuplePathPattern.d.ts.map +0 -1
  533. package/dist/TuplePathPattern.js +0 -69
  534. package/dist/TuplePathPattern.js.map +0 -1
  535. package/dist/Values.d.ts.map +0 -1
  536. package/dist/Values.js.map +0 -1
  537. package/dist/tower/Simulation.d.ts.map +0 -1
  538. package/dist/tower/Simulation.js.map +0 -1
  539. package/dist/tower/Tower.d.ts.map +0 -1
  540. package/dist/tower/Tower.js +0 -30
  541. package/dist/tower/Tower.js.map +0 -1
  542. package/dist/tower/TowerErrors.d.ts +0 -4
  543. package/dist/tower/TowerErrors.d.ts.map +0 -1
  544. package/dist/tower/TowerErrors.js.map +0 -1
  545. package/dist/tower/TowerLogger.d.ts.map +0 -1
  546. package/dist/tower/TowerLogger.js.map +0 -1
  547. package/dist/tower/TowerMetrics.d.ts +0 -4
  548. package/dist/tower/TowerMetrics.d.ts.map +0 -1
  549. package/dist/tower/TowerMetrics.js.map +0 -1
  550. package/dist/tower/TowerProcess.d.ts +0 -4
  551. package/dist/tower/TowerProcess.d.ts.map +0 -1
  552. package/dist/tower/TowerProcess.js.map +0 -1
  553. package/dist/tower/TowerStore.d.ts.map +0 -1
  554. package/dist/tower/TowerStore.js.map +0 -1
  555. package/dist/tower/TowerTracer.d.ts +0 -4
  556. package/dist/tower/TowerTracer.d.ts.map +0 -1
  557. package/dist/tower/TowerTracer.js.map +0 -1
  558. package/dist/tower/index.d.ts +0 -4
  559. package/dist/tower/index.d.ts.map +0 -1
  560. package/dist/tower/index.js +0 -4
  561. package/dist/tower/index.js.map +0 -1
  562. package/dist/tower/routes/errors/route.d.ts.map +0 -1
  563. package/dist/tower/routes/errors/route.js.map +0 -1
  564. package/dist/tower/routes/fiberDetail.d.ts.map +0 -1
  565. package/dist/tower/routes/fiberDetail.js.map +0 -1
  566. package/dist/tower/routes/fibers/route.d.ts.map +0 -1
  567. package/dist/tower/routes/fibers/route.js +0 -27
  568. package/dist/tower/routes/fibers/route.js.map +0 -1
  569. package/dist/tower/routes/layout.d.ts.map +0 -1
  570. package/dist/tower/routes/layout.js.map +0 -1
  571. package/dist/tower/routes/logs/route.d.ts.map +0 -1
  572. package/dist/tower/routes/logs/route.js +0 -36
  573. package/dist/tower/routes/logs/route.js.map +0 -1
  574. package/dist/tower/routes/metrics/route.js.map +0 -1
  575. package/dist/tower/routes/route.d.ts.map +0 -1
  576. package/dist/tower/routes/route.js +0 -6
  577. package/dist/tower/routes/route.js.map +0 -1
  578. package/dist/tower/routes/routes/route.d.ts.map +0 -1
  579. package/dist/tower/routes/routes/route.js.map +0 -1
  580. package/dist/tower/routes/services/route.d.ts.map +0 -1
  581. package/dist/tower/routes/services/route.js +0 -15
  582. package/dist/tower/routes/services/route.js.map +0 -1
  583. package/dist/tower/routes/system/route.d.ts.map +0 -1
  584. package/dist/tower/routes/system/route.js +0 -21
  585. package/dist/tower/routes/system/route.js.map +0 -1
  586. package/dist/tower/routes/traceDetail.d.ts.map +0 -1
  587. package/dist/tower/routes/traceDetail.js.map +0 -1
  588. package/dist/tower/routes/traces/route.d.ts.map +0 -1
  589. package/dist/tower/routes/traces/route.js +0 -36
  590. package/dist/tower/routes/traces/route.js.map +0 -1
  591. package/dist/tower/routes/tree.d.ts.map +0 -1
  592. package/dist/tower/routes/tree.js.map +0 -1
  593. package/dist/tower/ui/Errors.d.ts +0 -5
  594. package/dist/tower/ui/Errors.d.ts.map +0 -1
  595. package/dist/tower/ui/Errors.js +0 -30
  596. package/dist/tower/ui/Errors.js.map +0 -1
  597. package/dist/tower/ui/Fibers.d.ts.map +0 -1
  598. package/dist/tower/ui/Fibers.js +0 -157
  599. package/dist/tower/ui/Fibers.js.map +0 -1
  600. package/dist/tower/ui/Logs.d.ts +0 -5
  601. package/dist/tower/ui/Logs.d.ts.map +0 -1
  602. package/dist/tower/ui/Logs.js.map +0 -1
  603. package/dist/tower/ui/Metrics.d.ts +0 -5
  604. package/dist/tower/ui/Metrics.d.ts.map +0 -1
  605. package/dist/tower/ui/Metrics.js.map +0 -1
  606. package/dist/tower/ui/Routes.d.ts.map +0 -1
  607. package/dist/tower/ui/Routes.js.map +0 -1
  608. package/dist/tower/ui/Services.d.ts.map +0 -1
  609. package/dist/tower/ui/Services.js.map +0 -1
  610. package/dist/tower/ui/Shell.d.ts.map +0 -1
  611. package/dist/tower/ui/Shell.js +0 -12
  612. package/dist/tower/ui/Shell.js.map +0 -1
  613. package/dist/tower/ui/System.d.ts +0 -5
  614. package/dist/tower/ui/System.d.ts.map +0 -1
  615. package/dist/tower/ui/System.js +0 -65
  616. package/dist/tower/ui/System.js.map +0 -1
  617. package/dist/tower/ui/Traces.d.ts +0 -13
  618. package/dist/tower/ui/Traces.d.ts.map +0 -1
  619. package/dist/tower/ui/Traces.js +0 -219
  620. package/dist/tower/ui/Traces.js.map +0 -1
  621. package/src/Commander.ts +0 -585
  622. package/src/FilePathPattern.ts +0 -115
  623. package/src/PlatformError.ts +0 -73
  624. package/src/TuplePathPattern.ts +0 -75
  625. package/src/tower/Tower.ts +0 -47
  626. package/src/tower/index.ts +0 -3
  627. package/src/tower/routes/route.tsx +0 -8
  628. /package/dist/{tower → studio}/Simulation.d.ts +0 -0
  629. /package/dist/{tower → studio}/Simulation.js +0 -0
  630. /package/dist/{tower → studio}/routes/layout.d.ts +0 -0
  631. /package/dist/{tower → studio}/routes/layout.js +0 -0
  632. /package/dist/{tower → studio}/routes/tree.js +0 -0
  633. /package/dist/{tower → studio}/ui/Routes.d.ts +0 -0
  634. /package/dist/{tower → studio}/ui/Services.d.ts +0 -0
  635. /package/dist/{tower → studio}/ui/Shell.d.ts +0 -0
  636. /package/src/{ContentNegotiation.ts → _ContentNegotiation.ts} +0 -0
  637. /package/src/{Effectify.ts → _Effectify.ts} +0 -0
  638. /package/src/{StartApp.ts → _StartApp.ts} +0 -0
  639. /package/src/{StreamExtra.ts → _StreamExtra.ts} +0 -0
  640. /package/src/{Values.ts → _Values.ts} +0 -0
  641. /package/src/{tower → studio}/Simulation.ts +0 -0
  642. /package/src/{tower → studio}/routes/layout.tsx +0 -0
  643. /package/src/{tower → studio}/routes/tree.ts +0 -0
  644. /package/src/{tower → studio}/ui/Routes.tsx +0 -0
  645. /package/src/{tower → studio}/ui/Services.tsx +0 -0
@@ -1,4 +1,4 @@
1
- import type * as TowerStore from "../TowerStore.ts"
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: TowerStore.ProcessStats }) {
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 TowerStore from "../TowerStore.ts"
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: TowerStore.TowerSpan
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<TowerStore.TowerSpan>): Array<TreeSpan> {
51
- const byId = new Map<bigint, TowerStore.TowerSpan>()
52
- const childrenOf = new Map<bigint, Array<TowerStore.TowerSpan>>()
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<TowerStore.TowerSpan> = []
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: TowerStore.TowerSpan, b: TowerStore.TowerSpan) =>
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: TowerStore.TowerSpan,
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<TowerStore.TowerSpan>
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<TowerStore.TowerSpan>,
215
- ): Map<bigint, Array<TowerStore.TowerSpan>> {
216
- const groups = new Map<bigint, Array<TowerStore.TowerSpan>>()
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<TowerStore.TowerSpan> }) {
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={`${TowerStore.store.prefix}/traces/${traceId}`}
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<TowerStore.TowerSpan> }) {
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<TowerStore.TowerSpan> }) {
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
  }
@@ -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 PlatformError from "../../PlatformError.ts"
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 PlatformError.SystemError({
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 PlatformError.SystemError({
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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"}
@@ -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"}
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"Commander.d.ts","sourceRoot":"","sources":["../src/Commander.ts"],"names":[],"mappings":"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"}
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