effect-start 0.26.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (654) hide show
  1. package/dist/ChildProcess.d.ts +60 -0
  2. package/dist/ChildProcess.d.ts.map +1 -0
  3. package/dist/ChildProcess.js +30 -0
  4. package/dist/ChildProcess.js.map +1 -0
  5. package/dist/Commander.d.ts +101 -0
  6. package/dist/Commander.d.ts.map +1 -0
  7. package/dist/Commander.js +327 -0
  8. package/dist/Commander.js.map +1 -0
  9. package/dist/ContentNegotiation.d.ts +13 -0
  10. package/dist/ContentNegotiation.d.ts.map +1 -0
  11. package/dist/ContentNegotiation.js +360 -0
  12. package/dist/ContentNegotiation.js.map +1 -0
  13. package/dist/Cookies.d.ts +78 -0
  14. package/dist/Cookies.d.ts.map +1 -0
  15. package/dist/Cookies.js +303 -0
  16. package/dist/Cookies.js.map +1 -0
  17. package/dist/Development.d.ts +42 -0
  18. package/dist/Development.d.ts.map +1 -0
  19. package/dist/Development.js +60 -0
  20. package/dist/Development.js.map +1 -0
  21. package/dist/Docker.d.ts +51 -0
  22. package/dist/Docker.d.ts.map +1 -0
  23. package/dist/Docker.js +88 -0
  24. package/dist/Docker.js.map +1 -0
  25. package/dist/Effectify.d.ts +210 -0
  26. package/dist/Effectify.d.ts.map +1 -0
  27. package/dist/Effectify.js +20 -0
  28. package/dist/Effectify.js.map +1 -0
  29. package/dist/Entity.d.ts +48 -0
  30. package/dist/Entity.d.ts.map +1 -0
  31. package/dist/Entity.js +235 -0
  32. package/dist/Entity.js.map +1 -0
  33. package/dist/Fetch.d.ts +50 -0
  34. package/dist/Fetch.d.ts.map +1 -0
  35. package/dist/Fetch.js +136 -0
  36. package/dist/Fetch.js.map +1 -0
  37. package/dist/FilePathPattern.d.ts +30 -0
  38. package/dist/FilePathPattern.d.ts.map +1 -0
  39. package/dist/FilePathPattern.js +87 -0
  40. package/dist/FilePathPattern.js.map +1 -0
  41. package/dist/FileRouter.d.ts +57 -0
  42. package/dist/FileRouter.d.ts.map +1 -0
  43. package/dist/FileRouter.js +149 -0
  44. package/dist/FileRouter.js.map +1 -0
  45. package/dist/FileRouterCodegen.d.ts +19 -0
  46. package/dist/FileRouterCodegen.d.ts.map +1 -0
  47. package/dist/FileRouterCodegen.js +228 -0
  48. package/dist/FileRouterCodegen.js.map +1 -0
  49. package/dist/FileSystem.d.ts +159 -0
  50. package/dist/FileSystem.d.ts.map +1 -0
  51. package/dist/FileSystem.js +71 -0
  52. package/dist/FileSystem.js.map +1 -0
  53. package/dist/GlobalLayer.d.ts +4 -0
  54. package/dist/GlobalLayer.d.ts.map +1 -0
  55. package/dist/GlobalLayer.js +51 -0
  56. package/dist/GlobalLayer.js.map +1 -0
  57. package/dist/Http.d.ts +38 -0
  58. package/dist/Http.d.ts.map +1 -0
  59. package/dist/Http.js +89 -0
  60. package/dist/Http.js.map +1 -0
  61. package/dist/PathPattern.d.ts +135 -0
  62. package/dist/PathPattern.d.ts.map +1 -0
  63. package/dist/PathPattern.js +414 -0
  64. package/dist/PathPattern.js.map +1 -0
  65. package/dist/PlatformError.d.ts +39 -0
  66. package/dist/PlatformError.d.ts.map +1 -0
  67. package/dist/PlatformError.js +26 -0
  68. package/dist/PlatformError.js.map +1 -0
  69. package/dist/PlatformRuntime.d.ts +30 -0
  70. package/dist/PlatformRuntime.d.ts.map +1 -0
  71. package/dist/PlatformRuntime.js +50 -0
  72. package/dist/PlatformRuntime.js.map +1 -0
  73. package/dist/Route.d.ts +98 -0
  74. package/dist/Route.d.ts.map +1 -0
  75. package/dist/Route.js +101 -0
  76. package/dist/Route.js.map +1 -0
  77. package/dist/RouteBody.d.ts +48 -0
  78. package/dist/RouteBody.d.ts.map +1 -0
  79. package/dist/RouteBody.js +68 -0
  80. package/dist/RouteBody.js.map +1 -0
  81. package/dist/RouteError.d.ts +99 -0
  82. package/dist/RouteError.d.ts.map +1 -0
  83. package/dist/RouteError.js +56 -0
  84. package/dist/RouteError.js.map +1 -0
  85. package/dist/RouteHook.d.ts +13 -0
  86. package/dist/RouteHook.d.ts.map +1 -0
  87. package/dist/RouteHook.js +40 -0
  88. package/dist/RouteHook.js.map +1 -0
  89. package/dist/RouteHttp.d.ts +22 -0
  90. package/dist/RouteHttp.d.ts.map +1 -0
  91. package/dist/RouteHttp.js +259 -0
  92. package/dist/RouteHttp.js.map +1 -0
  93. package/dist/RouteHttpTracer.d.ts +11 -0
  94. package/dist/RouteHttpTracer.d.ts.map +1 -0
  95. package/dist/RouteHttpTracer.js +63 -0
  96. package/dist/RouteHttpTracer.js.map +1 -0
  97. package/dist/RouteMount.d.ts +87 -0
  98. package/dist/RouteMount.d.ts.map +1 -0
  99. package/dist/RouteMount.js +64 -0
  100. package/dist/RouteMount.js.map +1 -0
  101. package/dist/RouteSchema.d.ts +87 -0
  102. package/dist/RouteSchema.d.ts.map +1 -0
  103. package/dist/RouteSchema.js +189 -0
  104. package/dist/RouteSchema.js.map +1 -0
  105. package/dist/RouteSse.d.ts +22 -0
  106. package/dist/RouteSse.d.ts.map +1 -0
  107. package/dist/RouteSse.js +80 -0
  108. package/dist/RouteSse.js.map +1 -0
  109. package/dist/RouteTree.d.ts +58 -0
  110. package/dist/RouteTree.d.ts.map +1 -0
  111. package/dist/RouteTree.js +94 -0
  112. package/dist/RouteTree.js.map +1 -0
  113. package/dist/RouteTrie.d.ts +21 -0
  114. package/dist/RouteTrie.d.ts.map +1 -0
  115. package/dist/RouteTrie.js +153 -0
  116. package/dist/RouteTrie.js.map +1 -0
  117. package/dist/SchemaExtra.d.ts +8 -0
  118. package/dist/SchemaExtra.d.ts.map +1 -0
  119. package/dist/SchemaExtra.js +75 -0
  120. package/dist/SchemaExtra.js.map +1 -0
  121. package/dist/Socket.d.ts +28 -0
  122. package/dist/Socket.d.ts.map +1 -0
  123. package/dist/Socket.js +30 -0
  124. package/dist/Socket.js.map +1 -0
  125. package/dist/SqlIntrospect.d.ts +92 -0
  126. package/dist/SqlIntrospect.d.ts.map +1 -0
  127. package/dist/SqlIntrospect.js +478 -0
  128. package/dist/SqlIntrospect.js.map +1 -0
  129. package/dist/Start.d.ts +90 -0
  130. package/dist/Start.d.ts.map +1 -0
  131. package/dist/Start.js +91 -0
  132. package/dist/Start.js.map +1 -0
  133. package/dist/StartApp.d.ts +13 -0
  134. package/dist/StartApp.d.ts.map +1 -0
  135. package/dist/StartApp.js +4 -0
  136. package/dist/StartApp.js.map +1 -0
  137. package/dist/StreamExtra.d.ts +29 -0
  138. package/dist/StreamExtra.d.ts.map +1 -0
  139. package/dist/StreamExtra.js +101 -0
  140. package/dist/StreamExtra.js.map +1 -0
  141. package/dist/System.d.ts +9 -0
  142. package/dist/System.d.ts.map +1 -0
  143. package/dist/System.js +61 -0
  144. package/dist/System.js.map +1 -0
  145. package/dist/TuplePathPattern.d.ts +10 -0
  146. package/dist/TuplePathPattern.d.ts.map +1 -0
  147. package/dist/TuplePathPattern.js +69 -0
  148. package/dist/TuplePathPattern.js.map +1 -0
  149. package/dist/Unique.d.ts +68 -0
  150. package/dist/Unique.d.ts.map +1 -0
  151. package/dist/Unique.js +225 -0
  152. package/dist/Unique.js.map +1 -0
  153. package/dist/Values.d.ts +30 -0
  154. package/dist/Values.d.ts.map +1 -0
  155. package/dist/Values.js +46 -0
  156. package/dist/Values.js.map +1 -0
  157. package/dist/bun/BunBundle.d.ts +12 -0
  158. package/dist/bun/BunBundle.d.ts.map +1 -0
  159. package/dist/bun/BunBundle.js +138 -0
  160. package/dist/bun/BunBundle.js.map +1 -0
  161. package/dist/bun/BunChildProcessSpawner.d.ts +4 -0
  162. package/dist/bun/BunChildProcessSpawner.d.ts.map +1 -0
  163. package/dist/bun/BunChildProcessSpawner.js +99 -0
  164. package/dist/bun/BunChildProcessSpawner.js.map +1 -0
  165. package/dist/bun/BunImportTrackerPlugin.d.ts +14 -0
  166. package/dist/bun/BunImportTrackerPlugin.d.ts.map +1 -0
  167. package/dist/bun/BunImportTrackerPlugin.js +70 -0
  168. package/dist/bun/BunImportTrackerPlugin.js.map +1 -0
  169. package/dist/bun/BunRoute.d.ts +49 -0
  170. package/dist/bun/BunRoute.d.ts.map +1 -0
  171. package/dist/bun/BunRoute.js +122 -0
  172. package/dist/bun/BunRoute.js.map +1 -0
  173. package/dist/bun/BunRuntime.d.ts +3 -0
  174. package/dist/bun/BunRuntime.d.ts.map +1 -0
  175. package/dist/bun/BunRuntime.js +30 -0
  176. package/dist/bun/BunRuntime.js.map +1 -0
  177. package/dist/bun/BunServer.d.ts +52 -0
  178. package/dist/bun/BunServer.d.ts.map +1 -0
  179. package/dist/bun/BunServer.js +262 -0
  180. package/dist/bun/BunServer.js.map +1 -0
  181. package/dist/bun/BunVirtualFilesPlugin.d.ts +5 -0
  182. package/dist/bun/BunVirtualFilesPlugin.d.ts.map +1 -0
  183. package/dist/bun/BunVirtualFilesPlugin.js +41 -0
  184. package/dist/bun/BunVirtualFilesPlugin.js.map +1 -0
  185. package/dist/bun/_BunEnhancedResolve.d.ts +46 -0
  186. package/dist/bun/_BunEnhancedResolve.d.ts.map +1 -0
  187. package/dist/bun/_BunEnhancedResolve.js +103 -0
  188. package/dist/bun/_BunEnhancedResolve.js.map +1 -0
  189. package/dist/bun/index.d.ts +6 -0
  190. package/dist/bun/index.d.ts.map +1 -0
  191. package/dist/bun/index.js +6 -0
  192. package/dist/bun/index.js.map +1 -0
  193. package/dist/bundler/Bundle.d.ts +62 -0
  194. package/dist/bundler/Bundle.d.ts.map +1 -0
  195. package/dist/bundler/Bundle.js +49 -0
  196. package/dist/bundler/Bundle.js.map +1 -0
  197. package/dist/bundler/BundleFiles.d.ts +14 -0
  198. package/dist/bundler/BundleFiles.d.ts.map +1 -0
  199. package/dist/bundler/BundleFiles.js +97 -0
  200. package/dist/bundler/BundleFiles.js.map +1 -0
  201. package/dist/bundler/BundleRoute.d.ts +27 -0
  202. package/dist/bundler/BundleRoute.d.ts.map +1 -0
  203. package/dist/bundler/BundleRoute.js +52 -0
  204. package/dist/bundler/BundleRoute.js.map +1 -0
  205. package/dist/client/Overlay.d.ts +3 -0
  206. package/dist/client/Overlay.d.ts.map +1 -0
  207. package/dist/client/Overlay.js +33 -0
  208. package/dist/client/Overlay.js.map +1 -0
  209. package/dist/client/ScrollState.d.ts +7 -0
  210. package/dist/client/ScrollState.d.ts.map +1 -0
  211. package/dist/client/ScrollState.js +95 -0
  212. package/dist/client/ScrollState.js.map +1 -0
  213. package/dist/client/index.d.ts +7 -0
  214. package/dist/client/index.d.ts.map +1 -0
  215. package/dist/client/index.js +80 -0
  216. package/dist/client/index.js.map +1 -0
  217. package/dist/datastar/actions/fetch.d.ts +31 -0
  218. package/dist/datastar/actions/fetch.d.ts.map +1 -0
  219. package/dist/datastar/actions/fetch.js +404 -0
  220. package/dist/datastar/actions/fetch.js.map +1 -0
  221. package/dist/datastar/actions/peek.d.ts +2 -0
  222. package/dist/datastar/actions/peek.d.ts.map +1 -0
  223. package/dist/datastar/actions/peek.js +14 -0
  224. package/dist/datastar/actions/peek.js.map +1 -0
  225. package/dist/datastar/actions/setAll.d.ts +2 -0
  226. package/dist/datastar/actions/setAll.d.ts.map +1 -0
  227. package/dist/datastar/actions/setAll.js +13 -0
  228. package/dist/datastar/actions/setAll.js.map +1 -0
  229. package/dist/datastar/actions/toggleAll.d.ts +2 -0
  230. package/dist/datastar/actions/toggleAll.d.ts.map +1 -0
  231. package/dist/datastar/actions/toggleAll.js +13 -0
  232. package/dist/datastar/actions/toggleAll.js.map +1 -0
  233. package/dist/datastar/attributes/attr.d.ts +2 -0
  234. package/dist/datastar/attributes/attr.d.ts.map +1 -0
  235. package/dist/datastar/attributes/attr.js +49 -0
  236. package/dist/datastar/attributes/attr.js.map +1 -0
  237. package/dist/datastar/attributes/bind.d.ts +2 -0
  238. package/dist/datastar/attributes/bind.d.ts.map +1 -0
  239. package/dist/datastar/attributes/bind.js +176 -0
  240. package/dist/datastar/attributes/bind.js.map +1 -0
  241. package/dist/datastar/attributes/class.d.ts +2 -0
  242. package/dist/datastar/attributes/class.d.ts.map +1 -0
  243. package/dist/datastar/attributes/class.js +48 -0
  244. package/dist/datastar/attributes/class.js.map +1 -0
  245. package/dist/datastar/attributes/computed.d.ts +2 -0
  246. package/dist/datastar/attributes/computed.d.ts.map +1 -0
  247. package/dist/datastar/attributes/computed.js +27 -0
  248. package/dist/datastar/attributes/computed.js.map +1 -0
  249. package/dist/datastar/attributes/effect.d.ts +2 -0
  250. package/dist/datastar/attributes/effect.d.ts.map +1 -0
  251. package/dist/datastar/attributes/effect.js +10 -0
  252. package/dist/datastar/attributes/effect.js.map +1 -0
  253. package/dist/datastar/attributes/indicator.d.ts +2 -0
  254. package/dist/datastar/attributes/indicator.d.ts.map +1 -0
  255. package/dist/datastar/attributes/indicator.js +31 -0
  256. package/dist/datastar/attributes/indicator.js.map +1 -0
  257. package/dist/datastar/attributes/init.d.ts +2 -0
  258. package/dist/datastar/attributes/init.d.ts.map +1 -0
  259. package/dist/datastar/attributes/init.js +27 -0
  260. package/dist/datastar/attributes/init.js.map +1 -0
  261. package/dist/datastar/attributes/jsonSignals.d.ts +2 -0
  262. package/dist/datastar/attributes/jsonSignals.d.ts.map +1 -0
  263. package/dist/datastar/attributes/jsonSignals.js +31 -0
  264. package/dist/datastar/attributes/jsonSignals.js.map +1 -0
  265. package/dist/datastar/attributes/on.d.ts +2 -0
  266. package/dist/datastar/attributes/on.d.ts.map +1 -0
  267. package/dist/datastar/attributes/on.js +79 -0
  268. package/dist/datastar/attributes/on.js.map +1 -0
  269. package/dist/datastar/attributes/onIntersect.d.ts +2 -0
  270. package/dist/datastar/attributes/onIntersect.d.ts.map +1 -0
  271. package/dist/datastar/attributes/onIntersect.js +54 -0
  272. package/dist/datastar/attributes/onIntersect.js.map +1 -0
  273. package/dist/datastar/attributes/onInterval.d.ts +2 -0
  274. package/dist/datastar/attributes/onInterval.d.ts.map +1 -0
  275. package/dist/datastar/attributes/onInterval.js +31 -0
  276. package/dist/datastar/attributes/onInterval.js.map +1 -0
  277. package/dist/datastar/attributes/onSignalPatch.d.ts +2 -0
  278. package/dist/datastar/attributes/onSignalPatch.d.ts.map +1 -0
  279. package/dist/datastar/attributes/onSignalPatch.js +43 -0
  280. package/dist/datastar/attributes/onSignalPatch.js.map +1 -0
  281. package/dist/datastar/attributes/ref.d.ts +2 -0
  282. package/dist/datastar/attributes/ref.d.ts.map +1 -0
  283. package/dist/datastar/attributes/ref.js +11 -0
  284. package/dist/datastar/attributes/ref.js.map +1 -0
  285. package/dist/datastar/attributes/show.d.ts +2 -0
  286. package/dist/datastar/attributes/show.d.ts.map +1 -0
  287. package/dist/datastar/attributes/show.js +32 -0
  288. package/dist/datastar/attributes/show.js.map +1 -0
  289. package/dist/datastar/attributes/signals.d.ts +2 -0
  290. package/dist/datastar/attributes/signals.d.ts.map +1 -0
  291. package/dist/datastar/attributes/signals.js +18 -0
  292. package/dist/datastar/attributes/signals.js.map +1 -0
  293. package/dist/datastar/attributes/style.d.ts +2 -0
  294. package/dist/datastar/attributes/style.d.ts.map +1 -0
  295. package/dist/datastar/attributes/style.js +51 -0
  296. package/dist/datastar/attributes/style.js.map +1 -0
  297. package/dist/datastar/attributes/text.d.ts +2 -0
  298. package/dist/datastar/attributes/text.d.ts.map +1 -0
  299. package/dist/datastar/attributes/text.js +27 -0
  300. package/dist/datastar/attributes/text.js.map +1 -0
  301. package/dist/datastar/engine.d.ts +163 -0
  302. package/dist/datastar/engine.d.ts.map +1 -0
  303. package/dist/datastar/engine.js +1000 -0
  304. package/dist/datastar/engine.js.map +1 -0
  305. package/dist/datastar/index.d.ts +25 -0
  306. package/dist/datastar/index.d.ts.map +1 -0
  307. package/dist/datastar/index.js +25 -0
  308. package/dist/datastar/index.js.map +1 -0
  309. package/dist/datastar/utils.d.ts +52 -0
  310. package/dist/datastar/utils.d.ts.map +1 -0
  311. package/dist/datastar/utils.js +203 -0
  312. package/dist/datastar/utils.js.map +1 -0
  313. package/dist/datastar/watchers/patchElements.d.ts +2 -0
  314. package/dist/datastar/watchers/patchElements.d.ts.map +1 -0
  315. package/dist/datastar/watchers/patchElements.js +398 -0
  316. package/dist/datastar/watchers/patchElements.js.map +1 -0
  317. package/dist/datastar/watchers/patchSignals.d.ts +2 -0
  318. package/dist/datastar/watchers/patchSignals.d.ts.map +1 -0
  319. package/dist/datastar/watchers/patchSignals.js +15 -0
  320. package/dist/datastar/watchers/patchSignals.js.map +1 -0
  321. package/dist/experimental/EncryptedCookies.d.ts +49 -0
  322. package/dist/experimental/EncryptedCookies.d.ts.map +1 -0
  323. package/dist/experimental/EncryptedCookies.js +213 -0
  324. package/dist/experimental/EncryptedCookies.js.map +1 -0
  325. package/dist/experimental/index.d.ts +2 -0
  326. package/dist/experimental/index.d.ts.map +1 -0
  327. package/dist/experimental/index.js +2 -0
  328. package/dist/experimental/index.js.map +1 -0
  329. package/dist/hyper/Hyper.d.ts +26 -0
  330. package/dist/hyper/Hyper.d.ts.map +1 -0
  331. package/dist/hyper/Hyper.js +24 -0
  332. package/dist/hyper/Hyper.js.map +1 -0
  333. package/dist/hyper/HyperHtml.d.ts +24 -0
  334. package/dist/hyper/HyperHtml.d.ts.map +1 -0
  335. package/dist/hyper/HyperHtml.js +153 -0
  336. package/dist/hyper/HyperHtml.js.map +1 -0
  337. package/dist/hyper/HyperHtml.test.d.ts +2 -0
  338. package/dist/hyper/HyperHtml.test.d.ts.map +1 -0
  339. package/dist/hyper/HyperHtml.test.js +283 -0
  340. package/dist/hyper/HyperHtml.test.js.map +1 -0
  341. package/dist/hyper/HyperNode.d.ts +15 -0
  342. package/dist/hyper/HyperNode.d.ts.map +1 -0
  343. package/dist/hyper/HyperNode.js +12 -0
  344. package/dist/hyper/HyperNode.js.map +1 -0
  345. package/dist/hyper/HyperRoute.d.ts +9 -0
  346. package/dist/hyper/HyperRoute.d.ts.map +1 -0
  347. package/dist/hyper/HyperRoute.js +33 -0
  348. package/dist/hyper/HyperRoute.js.map +1 -0
  349. package/dist/hyper/HyperRoute.test.d.ts +2 -0
  350. package/dist/hyper/HyperRoute.test.d.ts.map +1 -0
  351. package/dist/hyper/HyperRoute.test.js +86 -0
  352. package/dist/hyper/HyperRoute.test.js.map +1 -0
  353. package/dist/hyper/html.d.ts +11 -0
  354. package/dist/hyper/html.d.ts.map +1 -0
  355. package/dist/hyper/html.js +31 -0
  356. package/dist/hyper/html.js.map +1 -0
  357. package/dist/hyper/index.d.ts +7 -0
  358. package/dist/hyper/index.d.ts.map +1 -0
  359. package/dist/hyper/index.js +6 -0
  360. package/dist/hyper/index.js.map +1 -0
  361. package/dist/hyper/jsx-runtime.d.ts +8 -0
  362. package/dist/hyper/jsx-runtime.d.ts.map +1 -0
  363. package/dist/hyper/jsx-runtime.js +9 -0
  364. package/dist/hyper/jsx-runtime.js.map +1 -0
  365. package/dist/index.d.ts +9 -0
  366. package/dist/index.d.ts.map +1 -0
  367. package/dist/index.js +9 -0
  368. package/dist/index.js.map +1 -0
  369. package/dist/lint/plugin.d.ts +121 -0
  370. package/dist/lint/plugin.d.ts.map +1 -0
  371. package/dist/lint/plugin.js +537 -0
  372. package/dist/lint/plugin.js.map +1 -0
  373. package/dist/node/NodeFileSystem.d.ts +8 -0
  374. package/dist/node/NodeFileSystem.d.ts.map +1 -0
  375. package/dist/node/NodeFileSystem.js +411 -0
  376. package/dist/node/NodeFileSystem.js.map +1 -0
  377. package/dist/node/NodeUtils.d.ts +3 -0
  378. package/dist/node/NodeUtils.d.ts.map +1 -0
  379. package/dist/node/NodeUtils.js +21 -0
  380. package/dist/node/NodeUtils.js.map +1 -0
  381. package/dist/sql/SqlCache.d.ts +18 -0
  382. package/dist/sql/SqlCache.d.ts.map +1 -0
  383. package/dist/sql/SqlCache.js +31 -0
  384. package/dist/sql/SqlCache.js.map +1 -0
  385. package/dist/sql/SqlClient.d.ts +88 -0
  386. package/dist/sql/SqlClient.d.ts.map +1 -0
  387. package/dist/sql/SqlClient.js +171 -0
  388. package/dist/sql/SqlClient.js.map +1 -0
  389. package/dist/sql/bun/index.d.ts +6 -0
  390. package/dist/sql/bun/index.d.ts.map +1 -0
  391. package/dist/sql/bun/index.js +132 -0
  392. package/dist/sql/bun/index.js.map +1 -0
  393. package/dist/sql/index.d.ts +3 -0
  394. package/dist/sql/index.d.ts.map +1 -0
  395. package/dist/sql/index.js +3 -0
  396. package/dist/sql/index.js.map +1 -0
  397. package/dist/sql/libsql/index.d.ts +15 -0
  398. package/dist/sql/libsql/index.d.ts.map +1 -0
  399. package/dist/sql/libsql/index.js +132 -0
  400. package/dist/sql/libsql/index.js.map +1 -0
  401. package/dist/sql/mssql/index.d.ts +8 -0
  402. package/dist/sql/mssql/index.d.ts.map +1 -0
  403. package/dist/sql/mssql/index.js +145 -0
  404. package/dist/sql/mssql/index.js.map +1 -0
  405. package/dist/sql/postgres/index.d.ts +7 -0
  406. package/dist/sql/postgres/index.d.ts.map +1 -0
  407. package/dist/sql/postgres/index.js +136 -0
  408. package/dist/sql/postgres/index.js.map +1 -0
  409. package/dist/testing/TestLogger.d.ts +14 -0
  410. package/dist/testing/TestLogger.d.ts.map +1 -0
  411. package/dist/testing/TestLogger.js +33 -0
  412. package/dist/testing/TestLogger.js.map +1 -0
  413. package/dist/testing/index.d.ts +3 -0
  414. package/dist/testing/index.d.ts.map +1 -0
  415. package/dist/testing/index.js +3 -0
  416. package/dist/testing/index.js.map +1 -0
  417. package/dist/testing/utils.d.ts +10 -0
  418. package/dist/testing/utils.d.ts.map +1 -0
  419. package/dist/testing/utils.js +40 -0
  420. package/dist/testing/utils.js.map +1 -0
  421. package/dist/tower/Simulation.d.ts +3 -0
  422. package/dist/tower/Simulation.d.ts.map +1 -0
  423. package/dist/tower/Simulation.js +606 -0
  424. package/dist/tower/Simulation.js.map +1 -0
  425. package/dist/tower/Tower.d.ts +11 -0
  426. package/dist/tower/Tower.d.ts.map +1 -0
  427. package/dist/tower/Tower.js +30 -0
  428. package/dist/tower/Tower.js.map +1 -0
  429. package/dist/tower/TowerErrors.d.ts +4 -0
  430. package/dist/tower/TowerErrors.d.ts.map +1 -0
  431. package/dist/tower/TowerErrors.js +200 -0
  432. package/dist/tower/TowerErrors.js.map +1 -0
  433. package/dist/tower/TowerLogger.d.ts +2 -0
  434. package/dist/tower/TowerLogger.d.ts.map +1 -0
  435. package/dist/tower/TowerLogger.js +46 -0
  436. package/dist/tower/TowerLogger.js.map +1 -0
  437. package/dist/tower/TowerMetrics.d.ts +4 -0
  438. package/dist/tower/TowerMetrics.d.ts.map +1 -0
  439. package/dist/tower/TowerMetrics.js +62 -0
  440. package/dist/tower/TowerMetrics.js.map +1 -0
  441. package/dist/tower/TowerProcess.d.ts +4 -0
  442. package/dist/tower/TowerProcess.d.ts.map +1 -0
  443. package/dist/tower/TowerProcess.js +50 -0
  444. package/dist/tower/TowerProcess.js.map +1 -0
  445. package/dist/tower/TowerStore.d.ts +199 -0
  446. package/dist/tower/TowerStore.d.ts.map +1 -0
  447. package/dist/tower/TowerStore.js +307 -0
  448. package/dist/tower/TowerStore.js.map +1 -0
  449. package/dist/tower/TowerTracer.d.ts +4 -0
  450. package/dist/tower/TowerTracer.d.ts.map +1 -0
  451. package/dist/tower/TowerTracer.js +111 -0
  452. package/dist/tower/TowerTracer.js.map +1 -0
  453. package/dist/tower/index.d.ts +4 -0
  454. package/dist/tower/index.d.ts.map +1 -0
  455. package/dist/tower/index.js +4 -0
  456. package/dist/tower/index.js.map +1 -0
  457. package/dist/tower/routes/errors/route.d.ts +11 -0
  458. package/dist/tower/routes/errors/route.d.ts.map +1 -0
  459. package/dist/tower/routes/errors/route.js +47 -0
  460. package/dist/tower/routes/errors/route.js.map +1 -0
  461. package/dist/tower/routes/fiberDetail.d.ts +17 -0
  462. package/dist/tower/routes/fiberDetail.d.ts.map +1 -0
  463. package/dist/tower/routes/fiberDetail.js +35 -0
  464. package/dist/tower/routes/fiberDetail.js.map +1 -0
  465. package/dist/tower/routes/fibers/route.d.ts +11 -0
  466. package/dist/tower/routes/fibers/route.d.ts.map +1 -0
  467. package/dist/tower/routes/fibers/route.js +27 -0
  468. package/dist/tower/routes/fibers/route.js.map +1 -0
  469. package/dist/tower/routes/layout.d.ts +10 -0
  470. package/dist/tower/routes/layout.d.ts.map +1 -0
  471. package/dist/tower/routes/layout.js +4 -0
  472. package/dist/tower/routes/layout.js.map +1 -0
  473. package/dist/tower/routes/logs/route.d.ts +11 -0
  474. package/dist/tower/routes/logs/route.d.ts.map +1 -0
  475. package/dist/tower/routes/logs/route.js +36 -0
  476. package/dist/tower/routes/logs/route.js.map +1 -0
  477. package/dist/tower/routes/metrics/route.d.ts +11 -0
  478. package/dist/tower/routes/metrics/route.d.ts.map +1 -0
  479. package/dist/tower/routes/metrics/route.js +20 -0
  480. package/dist/tower/routes/metrics/route.js.map +1 -0
  481. package/dist/tower/routes/route.d.ts +7 -0
  482. package/dist/tower/routes/route.d.ts.map +1 -0
  483. package/dist/tower/routes/route.js +6 -0
  484. package/dist/tower/routes/route.js.map +1 -0
  485. package/dist/tower/routes/routes/route.d.ts +7 -0
  486. package/dist/tower/routes/routes/route.d.ts.map +1 -0
  487. package/dist/tower/routes/routes/route.js +23 -0
  488. package/dist/tower/routes/routes/route.js.map +1 -0
  489. package/dist/tower/routes/services/route.d.ts +7 -0
  490. package/dist/tower/routes/services/route.d.ts.map +1 -0
  491. package/dist/tower/routes/services/route.js +15 -0
  492. package/dist/tower/routes/services/route.js.map +1 -0
  493. package/dist/tower/routes/system/route.d.ts +11 -0
  494. package/dist/tower/routes/system/route.d.ts.map +1 -0
  495. package/dist/tower/routes/system/route.js +21 -0
  496. package/dist/tower/routes/system/route.js.map +1 -0
  497. package/dist/tower/routes/traceDetail.d.ts +17 -0
  498. package/dist/tower/routes/traceDetail.d.ts.map +1 -0
  499. package/dist/tower/routes/traceDetail.js +20 -0
  500. package/dist/tower/routes/traceDetail.js.map +1 -0
  501. package/dist/tower/routes/traces/route.d.ts +11 -0
  502. package/dist/tower/routes/traces/route.d.ts.map +1 -0
  503. package/dist/tower/routes/traces/route.js +36 -0
  504. package/dist/tower/routes/traces/route.js.map +1 -0
  505. package/dist/tower/routes/tree.d.ts +142 -0
  506. package/dist/tower/routes/tree.d.ts.map +1 -0
  507. package/dist/tower/routes/tree.js +28 -0
  508. package/dist/tower/routes/tree.js.map +1 -0
  509. package/dist/tower/ui/Errors.d.ts +5 -0
  510. package/dist/tower/ui/Errors.d.ts.map +1 -0
  511. package/dist/tower/ui/Errors.js +30 -0
  512. package/dist/tower/ui/Errors.js.map +1 -0
  513. package/dist/tower/ui/Fibers.d.ts +25 -0
  514. package/dist/tower/ui/Fibers.d.ts.map +1 -0
  515. package/dist/tower/ui/Fibers.js +157 -0
  516. package/dist/tower/ui/Fibers.js.map +1 -0
  517. package/dist/tower/ui/Logs.d.ts +5 -0
  518. package/dist/tower/ui/Logs.d.ts.map +1 -0
  519. package/dist/tower/ui/Logs.js +28 -0
  520. package/dist/tower/ui/Logs.js.map +1 -0
  521. package/dist/tower/ui/Metrics.d.ts +5 -0
  522. package/dist/tower/ui/Metrics.d.ts.map +1 -0
  523. package/dist/tower/ui/Metrics.js +34 -0
  524. package/dist/tower/ui/Metrics.js.map +1 -0
  525. package/dist/tower/ui/Routes.d.ts +9 -0
  526. package/dist/tower/ui/Routes.d.ts.map +1 -0
  527. package/dist/tower/ui/Routes.js +79 -0
  528. package/dist/tower/ui/Routes.js.map +1 -0
  529. package/dist/tower/ui/Services.d.ts +11 -0
  530. package/dist/tower/ui/Services.d.ts.map +1 -0
  531. package/dist/tower/ui/Services.js +254 -0
  532. package/dist/tower/ui/Services.js.map +1 -0
  533. package/dist/tower/ui/Shell.d.ts +11 -0
  534. package/dist/tower/ui/Shell.d.ts.map +1 -0
  535. package/dist/tower/ui/Shell.js +12 -0
  536. package/dist/tower/ui/Shell.js.map +1 -0
  537. package/dist/tower/ui/System.d.ts +5 -0
  538. package/dist/tower/ui/System.d.ts.map +1 -0
  539. package/dist/tower/ui/System.js +65 -0
  540. package/dist/tower/ui/System.js.map +1 -0
  541. package/dist/tower/ui/Traces.d.ts +13 -0
  542. package/dist/tower/ui/Traces.d.ts.map +1 -0
  543. package/dist/tower/ui/Traces.js +219 -0
  544. package/dist/tower/ui/Traces.js.map +1 -0
  545. package/dist/x/cloudflare/CloudflareTunnel.d.ts +11 -0
  546. package/dist/x/cloudflare/CloudflareTunnel.d.ts.map +1 -0
  547. package/dist/x/cloudflare/CloudflareTunnel.js +31 -0
  548. package/dist/x/cloudflare/CloudflareTunnel.js.map +1 -0
  549. package/dist/x/cloudflare/index.d.ts +2 -0
  550. package/dist/x/cloudflare/index.d.ts.map +1 -0
  551. package/dist/x/cloudflare/index.js +2 -0
  552. package/dist/x/cloudflare/index.js.map +1 -0
  553. package/dist/x/tailscale/TailscaleTunnel.d.ts +16 -0
  554. package/dist/x/tailscale/TailscaleTunnel.d.ts.map +1 -0
  555. package/dist/x/tailscale/TailscaleTunnel.js +66 -0
  556. package/dist/x/tailscale/TailscaleTunnel.js.map +1 -0
  557. package/dist/x/tailscale/index.d.ts +2 -0
  558. package/dist/x/tailscale/index.d.ts.map +1 -0
  559. package/dist/x/tailscale/index.js +2 -0
  560. package/dist/x/tailscale/index.js.map +1 -0
  561. package/dist/x/tailwind/TailwindPlugin.d.ts +24 -0
  562. package/dist/x/tailwind/TailwindPlugin.d.ts.map +1 -0
  563. package/dist/x/tailwind/TailwindPlugin.js +220 -0
  564. package/dist/x/tailwind/TailwindPlugin.js.map +1 -0
  565. package/dist/x/tailwind/compile.d.ts +20 -0
  566. package/dist/x/tailwind/compile.d.ts.map +1 -0
  567. package/dist/x/tailwind/compile.js +155 -0
  568. package/dist/x/tailwind/compile.js.map +1 -0
  569. package/dist/x/tailwind/plugin.d.ts +3 -0
  570. package/dist/x/tailwind/plugin.d.ts.map +1 -0
  571. package/dist/x/tailwind/plugin.js +16 -0
  572. package/dist/x/tailwind/plugin.js.map +1 -0
  573. package/package.json +104 -21
  574. package/src/ChildProcess.ts +3 -6
  575. package/src/Docker.ts +190 -0
  576. package/src/Effectify.ts +7 -10
  577. package/src/Entity.ts +6 -6
  578. package/src/FileRouterCodegen.ts +4 -4
  579. package/src/FileSystem.ts +4 -11
  580. package/src/GlobalLayer.ts +85 -0
  581. package/src/PlatformRuntime.ts +8 -1
  582. package/src/RouteHook.ts +2 -2
  583. package/src/RouteSse.ts +3 -3
  584. package/src/SqlIntrospect.ts +13 -11
  585. package/src/Start.ts +112 -1
  586. package/src/System.ts +60 -3
  587. package/src/Unique.ts +59 -0
  588. package/src/Values.ts +11 -0
  589. package/src/bun/BunChildProcessSpawner.ts +1 -8
  590. package/src/bun/BunRoute.ts +2 -1
  591. package/src/bun/BunRuntime.ts +6 -12
  592. package/src/bun/BunServer.ts +54 -2
  593. package/src/datastar/watchers/patchElements.ts +0 -1
  594. package/src/hyper/HyperHtml.ts +11 -7
  595. package/src/hyper/jsx.d.ts +1 -1
  596. package/src/lint/plugin.js +239 -4
  597. package/src/sql/SqlCache.ts +50 -0
  598. package/src/sql/SqlClient.ts +400 -0
  599. package/src/sql/bun/index.ts +126 -57
  600. package/src/sql/index.ts +2 -1
  601. package/src/sql/libsql/index.ts +133 -85
  602. package/src/sql/libsql/libsql.d.ts +4 -1
  603. package/src/sql/mssql/index.ts +149 -120
  604. package/src/sql/mssql/mssql.d.ts +1 -0
  605. package/src/sql/postgres/index.ts +254 -0
  606. package/src/testing/TestLogger.ts +4 -4
  607. package/src/{console → tower}/Simulation.ts +10 -48
  608. package/src/tower/Tower.ts +47 -0
  609. package/src/{console/ConsoleErrors.ts → tower/TowerErrors.ts} +34 -23
  610. package/src/tower/TowerLogger.ts +52 -0
  611. package/src/{console/ConsoleMetrics.ts → tower/TowerMetrics.ts} +5 -5
  612. package/src/{console/ConsoleProcess.ts → tower/TowerProcess.ts} +4 -4
  613. package/src/tower/TowerStore.ts +505 -0
  614. package/src/tower/TowerTracer.ts +128 -0
  615. package/src/tower/index.ts +3 -0
  616. package/src/{console → tower}/routes/errors/route.tsx +26 -33
  617. package/src/{console → tower}/routes/fiberDetail.tsx +12 -15
  618. package/src/tower/routes/fibers/route.tsx +46 -0
  619. package/src/{console/console.html → tower/routes/layout.html} +1 -1
  620. package/src/{console → tower}/routes/layout.tsx +1 -1
  621. package/src/{console → tower}/routes/logs/route.tsx +12 -16
  622. package/src/{console → tower}/routes/metrics/route.tsx +5 -5
  623. package/src/tower/routes/route.tsx +8 -0
  624. package/src/{console → tower}/routes/routes/route.tsx +2 -2
  625. package/src/{console → tower}/routes/services/route.tsx +2 -2
  626. package/src/{console → tower}/routes/system/route.tsx +5 -5
  627. package/src/tower/routes/traceDetail.tsx +30 -0
  628. package/src/{console → tower}/routes/traces/route.tsx +25 -34
  629. package/src/{console → tower}/routes/tree.ts +0 -2
  630. package/src/{console → tower}/ui/Errors.tsx +19 -15
  631. package/src/{console → tower}/ui/Fibers.tsx +83 -68
  632. package/src/{console → tower}/ui/Logs.tsx +20 -16
  633. package/src/{console → tower}/ui/Metrics.tsx +18 -18
  634. package/src/{console → tower}/ui/Routes.tsx +14 -14
  635. package/src/{console → tower}/ui/Services.tsx +9 -9
  636. package/src/tower/ui/Shell.tsx +74 -0
  637. package/src/{console → tower}/ui/System.tsx +40 -30
  638. package/src/{console → tower}/ui/Traces.tsx +73 -80
  639. package/src/x/cloudflare/CloudflareTunnel.ts +1 -1
  640. package/src/x/tailscale/TailscaleTunnel.ts +3 -3
  641. package/src/x/tailwind/compile.ts +11 -14
  642. package/src/console/Console.ts +0 -42
  643. package/src/console/ConsoleLogger.ts +0 -56
  644. package/src/console/ConsoleStore.ts +0 -187
  645. package/src/console/ConsoleTracer.ts +0 -107
  646. package/src/console/index.ts +0 -3
  647. package/src/console/routes/fibers/route.tsx +0 -45
  648. package/src/console/routes/git/route.tsx +0 -64
  649. package/src/console/routes/route.tsx +0 -8
  650. package/src/console/routes/traceDetail.tsx +0 -22
  651. package/src/console/ui/Git.tsx +0 -182
  652. package/src/console/ui/Shell.tsx +0 -62
  653. package/src/sql/Sql.ts +0 -51
  654. package/src/sql/mssql/docker.ts +0 -117
@@ -0,0 +1,74 @@
1
+ export type NavTab =
2
+ | "traces"
3
+ | "metrics"
4
+ | "logs"
5
+ | "errors"
6
+ | "fibers"
7
+ | "routes"
8
+ | "system"
9
+ | "services"
10
+
11
+ export function Sidebar(options: { prefix: string; active: NavTab }) {
12
+ return (
13
+ <div class="sidebar">
14
+ <div class="sidebar-title">Effect Tower</div>
15
+ <a
16
+ href={`${options.prefix}/traces`}
17
+ class={options.active === "traces" ? "nav-link active" : "nav-link"}
18
+ >
19
+ Traces
20
+ </a>
21
+ <a
22
+ href={`${options.prefix}/metrics`}
23
+ class={options.active === "metrics" ? "nav-link active" : "nav-link"}
24
+ >
25
+ Metrics
26
+ </a>
27
+ <a
28
+ href={`${options.prefix}/logs`}
29
+ class={options.active === "logs" ? "nav-link active" : "nav-link"}
30
+ >
31
+ Logs
32
+ </a>
33
+ <a
34
+ href={`${options.prefix}/errors`}
35
+ class={options.active === "errors" ? "nav-link active" : "nav-link"}
36
+ >
37
+ Errors
38
+ </a>
39
+ <a
40
+ href={`${options.prefix}/fibers`}
41
+ class={options.active === "fibers" ? "nav-link active" : "nav-link"}
42
+ >
43
+ Fibers
44
+ </a>
45
+ <a
46
+ href={`${options.prefix}/routes`}
47
+ class={options.active === "routes" ? "nav-link active" : "nav-link"}
48
+ >
49
+ Routes
50
+ </a>
51
+ <a
52
+ href={`${options.prefix}/system`}
53
+ class={options.active === "system" ? "nav-link active" : "nav-link"}
54
+ >
55
+ System
56
+ </a>
57
+ <a
58
+ href={`${options.prefix}/services`}
59
+ class={options.active === "services" ? "nav-link active" : "nav-link"}
60
+ >
61
+ Services
62
+ </a>
63
+ </div>
64
+ )
65
+ }
66
+
67
+ export function Shell(options: { prefix: string; active: NavTab; children: any }) {
68
+ return (
69
+ <div class="shell">
70
+ <Sidebar prefix={options.prefix} active={options.active} />
71
+ <div class="content">{options.children}</div>
72
+ </div>
73
+ )
74
+ }
@@ -1,4 +1,4 @@
1
- import type * as ConsoleStore from "../ConsoleStore.ts"
1
+ import type * as TowerStore from "../TowerStore.ts"
2
2
 
3
3
  function formatBytes(bytes: number): string {
4
4
  if (bytes < 1024) return `${bytes}B`
@@ -18,25 +18,27 @@ function formatUptime(seconds: number): string {
18
18
  return `${s}s`
19
19
  }
20
20
 
21
- function StatCard({ label, value, sub }: { label: string; value: string; sub?: string }) {
21
+ function StatCard(options: { label: string; value: string; sub?: string }) {
22
22
  return (
23
23
  <div style="background:#111827;border:1px solid #374151;border-radius:6px;padding:12px;min-width:180px">
24
- <div style="color:#9ca3af;font-size:11px;margin-bottom:4px">{label}</div>
25
- <div style="color:#f3f4f6;font-size:22px;font-weight:700;font-family:monospace">{value}</div>
26
- {sub && <div style="color:#6b7280;font-size:10px;margin-top:2px">{sub}</div>}
24
+ <div style="color:#9ca3af;font-size:11px;margin-bottom:4px">{options.label}</div>
25
+ <div style="color:#f3f4f6;font-size:22px;font-weight:700;font-family:monospace">
26
+ {options.value}
27
+ </div>
28
+ {options.sub && <div style="color:#6b7280;font-size:10px;margin-top:2px">{options.sub}</div>}
27
29
  </div>
28
30
  )
29
31
  }
30
32
 
31
- function BarMeter({ label, used, total }: { label: string; used: number; total: number }) {
32
- const pct = total > 0 ? (used / total) * 100 : 0
33
+ function BarMeter(options: { label: string; used: number; total: number }) {
34
+ const pct = options.total > 0 ? (options.used / options.total) * 100 : 0
33
35
  const color = pct > 90 ? "#ef4444" : pct > 70 ? "#f59e0b" : "#22c55e"
34
36
  return (
35
37
  <div style="background:#111827;border:1px solid #374151;border-radius:6px;padding:12px">
36
38
  <div style="display:flex;justify-content:space-between;margin-bottom:6px">
37
- <span style="color:#9ca3af;font-size:11px">{label}</span>
39
+ <span style="color:#9ca3af;font-size:11px">{options.label}</span>
38
40
  <span style="color:#e5e7eb;font-size:11px;font-family:monospace">
39
- {formatBytes(used)} / {formatBytes(total)}
41
+ {formatBytes(options.used)} / {formatBytes(options.total)}
40
42
  </span>
41
43
  </div>
42
44
  <div style="height:8px;background:#1f2937;border-radius:4px;overflow:hidden">
@@ -51,41 +53,45 @@ function BarMeter({ label, used, total }: { label: string; used: number; total:
51
53
  )
52
54
  }
53
55
 
54
- export function SystemStatsView({ stats }: { stats: ConsoleStore.ProcessStats }) {
55
- const cpuTotal = stats.cpu.user + stats.cpu.system
56
+ export function SystemStatsView(options: { stats: TowerStore.ProcessStats }) {
57
+ const cpuTotal = options.stats.cpu.user + options.stats.cpu.system
56
58
  return (
57
59
  <>
58
60
  <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:12px">
59
61
  <StatCard
60
62
  label="PID"
61
- value={String(stats.pid)}
62
- sub={`${stats.system.platform} ${stats.system.arch}`}
63
+ value={String(options.stats.pid)}
64
+ sub={`${options.stats.system.platform} ${options.stats.system.arch}`}
63
65
  />
64
- <StatCard label="Uptime" value={formatUptime(stats.uptime)} />
66
+ <StatCard label="Uptime" value={formatUptime(options.stats.uptime)} />
65
67
  <StatCard
66
68
  label="CPU Time"
67
69
  value={`${(cpuTotal / 1_000_000).toFixed(2)}s`}
68
- sub={`user ${(stats.cpu.user / 1_000_000).toFixed(2)}s / sys ${(stats.cpu.system / 1_000_000).toFixed(2)}s`}
70
+ sub={`user ${(options.stats.cpu.user / 1_000_000).toFixed(2)}s / sys ${(options.stats.cpu.system / 1_000_000).toFixed(2)}s`}
69
71
  />
70
72
  <StatCard
71
73
  label="Load Average"
72
- value={stats.system.loadavg[0].toFixed(2)}
73
- sub={`${stats.system.loadavg[0].toFixed(2)} / ${stats.system.loadavg[1].toFixed(2)} / ${stats.system.loadavg[2].toFixed(2)} (${stats.system.cpuCount} cores)`}
74
+ value={options.stats.system.loadavg[0].toFixed(2)}
75
+ sub={`${options.stats.system.loadavg[0].toFixed(2)} / ${options.stats.system.loadavg[1].toFixed(2)} / ${options.stats.system.loadavg[2].toFixed(2)} (${options.stats.system.cpuCount} cores)`}
74
76
  />
75
77
  </div>
76
78
  <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;padding:0 12px 12px">
77
- <BarMeter label="Heap Memory" used={stats.memory.heapUsed} total={stats.memory.heapTotal} />
79
+ <BarMeter
80
+ label="Heap Memory"
81
+ used={options.stats.memory.heapUsed}
82
+ total={options.stats.memory.heapTotal}
83
+ />
78
84
  <BarMeter
79
85
  label="System Memory"
80
- used={stats.system.totalmem - stats.system.freemem}
81
- total={stats.system.totalmem}
86
+ used={options.stats.system.totalmem - options.stats.system.freemem}
87
+ total={options.stats.system.totalmem}
82
88
  />
83
89
  </div>
84
90
  <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:0 12px 12px">
85
- <StatCard label="RSS" value={formatBytes(stats.memory.rss)} />
86
- <StatCard label="Peak RSS" value={formatBytes(stats.resourceUsage.maxRSS)} />
87
- <StatCard label="External" value={formatBytes(stats.memory.external)} />
88
- <StatCard label="Array Buffers" value={formatBytes(stats.memory.arrayBuffers)} />
91
+ <StatCard label="RSS" value={formatBytes(options.stats.memory.rss)} />
92
+ <StatCard label="Peak RSS" value={formatBytes(options.stats.resourceUsage.maxRSS)} />
93
+ <StatCard label="External" value={formatBytes(options.stats.memory.external)} />
94
+ <StatCard label="Array Buffers" value={formatBytes(options.stats.memory.arrayBuffers)} />
89
95
  </div>
90
96
  <div style="padding:0 12px 12px">
91
97
  <div style="background:#111827;border:1px solid #374151;border-radius:6px;padding:12px">
@@ -94,33 +100,37 @@ export function SystemStatsView({ stats }: { stats: ConsoleStore.ProcessStats })
94
100
  <div style="display:flex;justify-content:space-between;font-size:12px">
95
101
  <span style="color:#6b7280">Page Faults (minor)</span>
96
102
  <span style="color:#e5e7eb;font-family:monospace">
97
- {stats.resourceUsage.minorPageFault}
103
+ {options.stats.resourceUsage.minorPageFault}
98
104
  </span>
99
105
  </div>
100
106
  <div style="display:flex;justify-content:space-between;font-size:12px">
101
107
  <span style="color:#6b7280">Page Faults (major)</span>
102
108
  <span style="color:#e5e7eb;font-family:monospace">
103
- {stats.resourceUsage.majorPageFault}
109
+ {options.stats.resourceUsage.majorPageFault}
104
110
  </span>
105
111
  </div>
106
112
  <div style="display:flex;justify-content:space-between;font-size:12px">
107
113
  <span style="color:#6b7280">FS Reads</span>
108
- <span style="color:#e5e7eb;font-family:monospace">{stats.resourceUsage.fsRead}</span>
114
+ <span style="color:#e5e7eb;font-family:monospace">
115
+ {options.stats.resourceUsage.fsRead}
116
+ </span>
109
117
  </div>
110
118
  <div style="display:flex;justify-content:space-between;font-size:12px">
111
119
  <span style="color:#6b7280">FS Writes</span>
112
- <span style="color:#e5e7eb;font-family:monospace">{stats.resourceUsage.fsWrite}</span>
120
+ <span style="color:#e5e7eb;font-family:monospace">
121
+ {options.stats.resourceUsage.fsWrite}
122
+ </span>
113
123
  </div>
114
124
  <div style="display:flex;justify-content:space-between;font-size:12px">
115
125
  <span style="color:#6b7280">Context Switches (vol)</span>
116
126
  <span style="color:#e5e7eb;font-family:monospace">
117
- {stats.resourceUsage.voluntaryContextSwitches}
127
+ {options.stats.resourceUsage.voluntaryContextSwitches}
118
128
  </span>
119
129
  </div>
120
130
  <div style="display:flex;justify-content:space-between;font-size:12px">
121
131
  <span style="color:#6b7280">Context Switches (invol)</span>
122
132
  <span style="color:#e5e7eb;font-family:monospace">
123
- {stats.resourceUsage.involuntaryContextSwitches}
133
+ {options.stats.resourceUsage.involuntaryContextSwitches}
124
134
  </span>
125
135
  </div>
126
136
  </div>
@@ -1,4 +1,4 @@
1
- import * as ConsoleStore from "../ConsoleStore.ts"
1
+ import * as TowerStore from "../TowerStore.ts"
2
2
 
3
3
  function formatDuration(ms: number | undefined): string {
4
4
  if (ms == null) return "..."
@@ -13,22 +13,26 @@ function statusColor(status: string): string {
13
13
  return "#eab308"
14
14
  }
15
15
 
16
- function KeyValue({ label, value }: { label: string; value: string | undefined | null }) {
17
- if (value == null) return null
16
+ function KeyValue(options: { label: string; value: string | number | bigint | undefined | null }) {
17
+ if (options.value == null) return null
18
18
  return (
19
19
  <div style="display:flex;gap:8px;padding:4px 0;border-bottom:1px solid #1e293b;font-size:12px">
20
- <span style="color:#64748b;min-width:120px">{label}</span>
21
- <span style="color:#e2e8f0;font-family:monospace;word-break:break-all">{value}</span>
20
+ <span style="color:#64748b;min-width:120px">{options.label}</span>
21
+ <span style="color:#e2e8f0;font-family:monospace;word-break:break-all">
22
+ {String(options.value)}
23
+ </span>
22
24
  </div>
23
25
  )
24
26
  }
25
27
 
26
- function StatusBadge({ status }: { status: string }) {
27
- const bg = status === "ok" ? "#166534" : status === "error" ? "#7f1d1d" : "#713f12"
28
- const fg = status === "ok" ? "#4ade80" : status === "error" ? "#fca5a5" : "#fde047"
28
+ function StatusBadge(options: { status: string }) {
29
+ const bg =
30
+ options.status === "ok" ? "#166534" : options.status === "error" ? "#7f1d1d" : "#713f12"
31
+ const fg =
32
+ options.status === "ok" ? "#4ade80" : options.status === "error" ? "#fca5a5" : "#fde047"
29
33
  return (
30
34
  <span style={`font-size:11px;padding:2px 8px;border-radius:4px;background:${bg};color:${fg}`}>
31
- {status}
35
+ {options.status}
32
36
  </span>
33
37
  )
34
38
  }
@@ -36,22 +40,22 @@ function StatusBadge({ status }: { status: string }) {
36
40
  // --- Tree building ---
37
41
 
38
42
  interface TreeSpan {
39
- span: ConsoleStore.ConsoleSpan
43
+ span: TowerStore.TowerSpan
40
44
  depth: number
41
45
  childCount: number
42
46
  isLastChild: boolean
43
47
  ancestorHasNextSibling: Array<boolean>
44
48
  }
45
49
 
46
- function buildSpanTree(spans: Array<ConsoleStore.ConsoleSpan>): Array<TreeSpan> {
47
- const byId = new Map<string, ConsoleStore.ConsoleSpan>()
48
- const childrenOf = new Map<string, Array<ConsoleStore.ConsoleSpan>>()
50
+ function buildSpanTree(spans: Array<TowerStore.TowerSpan>): Array<TreeSpan> {
51
+ const byId = new Map<bigint, TowerStore.TowerSpan>()
52
+ const childrenOf = new Map<bigint, Array<TowerStore.TowerSpan>>()
49
53
 
50
54
  for (const s of spans) {
51
55
  byId.set(s.spanId, s)
52
56
  }
53
57
 
54
- const roots: Array<ConsoleStore.ConsoleSpan> = []
58
+ const roots: Array<TowerStore.TowerSpan> = []
55
59
  for (const s of spans) {
56
60
  if (s.parentSpanId && byId.has(s.parentSpanId)) {
57
61
  let children = childrenOf.get(s.parentSpanId)
@@ -65,7 +69,7 @@ function buildSpanTree(spans: Array<ConsoleStore.ConsoleSpan>): Array<TreeSpan>
65
69
  }
66
70
  }
67
71
 
68
- const sortByStart = (a: ConsoleStore.ConsoleSpan, b: ConsoleStore.ConsoleSpan) =>
72
+ const sortByStart = (a: TowerStore.TowerSpan, b: TowerStore.TowerSpan) =>
69
73
  Number(a.startTime - b.startTime)
70
74
 
71
75
  roots.sort(sortByStart)
@@ -76,7 +80,7 @@ function buildSpanTree(spans: Array<ConsoleStore.ConsoleSpan>): Array<TreeSpan>
76
80
  const result: Array<TreeSpan> = []
77
81
 
78
82
  function walk(
79
- span: ConsoleStore.ConsoleSpan,
83
+ span: TowerStore.TowerSpan,
80
84
  depth: number,
81
85
  isLast: boolean,
82
86
  ancestors: Array<boolean>,
@@ -103,25 +107,27 @@ function buildSpanTree(spans: Array<ConsoleStore.ConsoleSpan>): Array<TreeSpan>
103
107
 
104
108
  // --- Components ---
105
109
 
106
- function TreeConnectors({ tree }: { tree: TreeSpan }) {
107
- if (tree.depth === 0) return null
110
+ function TreeConnectors(options: { tree: TreeSpan }) {
111
+ if (options.tree.depth === 0) return null
108
112
 
109
- const indent = tree.depth * 20
113
+ const indent = options.tree.depth * 20
110
114
  const elements: Array<any> = []
111
115
 
112
- for (let i = 0; i < tree.ancestorHasNextSibling.length; i++) {
113
- if (tree.ancestorHasNextSibling[i]) {
116
+ for (let i = 0; i < options.tree.ancestorHasNextSibling.length; i++) {
117
+ if (options.tree.ancestorHasNextSibling[i]) {
114
118
  elements.push(<div class="wf-vline" style={`left:${i * 20 + 6}px`} />)
115
119
  }
116
120
  }
117
121
 
118
- if (tree.isLastChild) {
119
- elements.push(<div class="wf-elbow" style={`left:${(tree.depth - 1) * 20 + 6}px`} />)
122
+ if (options.tree.isLastChild) {
123
+ elements.push(<div class="wf-elbow" style={`left:${(options.tree.depth - 1) * 20 + 6}px`} />)
120
124
  } else {
121
- elements.push(<div class="wf-vline" style={`left:${(tree.depth - 1) * 20 + 6}px`} />)
125
+ elements.push(<div class="wf-vline" style={`left:${(options.tree.depth - 1) * 20 + 6}px`} />)
122
126
  }
123
127
 
124
- elements.push(<div class="wf-hline" style={`left:${(tree.depth - 1) * 20 + 6}px;top:50%`} />)
128
+ elements.push(
129
+ <div class="wf-hline" style={`left:${(options.tree.depth - 1) * 20 + 6}px;top:50%`} />,
130
+ )
125
131
 
126
132
  return (
127
133
  <div class="wf-tree" style={`width:${indent}px;position:relative`}>
@@ -130,11 +136,11 @@ function TreeConnectors({ tree }: { tree: TreeSpan }) {
130
136
  )
131
137
  }
132
138
 
133
- function TimeAxis({ totalMs }: { totalMs: number }) {
139
+ function TimeAxis(options: { totalMs: number }) {
134
140
  const ticks = 5
135
141
  const labels: Array<string> = []
136
142
  for (let i = 0; i <= ticks; i++) {
137
- labels.push(formatDuration((totalMs / ticks) * i))
143
+ labels.push(formatDuration((options.totalMs / ticks) * i))
138
144
  }
139
145
  return (
140
146
  <div class="wf-axis">
@@ -148,21 +154,15 @@ function TimeAxis({ totalMs }: { totalMs: number }) {
148
154
  )
149
155
  }
150
156
 
151
- function WaterfallRow({
152
- tree,
153
- totalMs,
154
- rootStart,
155
- }: {
156
- tree: TreeSpan
157
- totalMs: number
158
- rootStart: bigint
159
- }) {
160
- const s = tree.span
161
- const offsetMs = Number(s.startTime - rootStart) / 1_000_000
157
+ function WaterfallRow(options: { tree: TreeSpan; totalMs: number; rootStart: bigint }) {
158
+ const s = options.tree.span
159
+ const offsetMs = Number(s.startTime - options.rootStart) / 1_000_000
162
160
  const durMs = s.durationMs ?? 0
163
- const leftPct = totalMs > 0 ? Math.min(100, (offsetMs / totalMs) * 100) : 0
161
+ const leftPct = options.totalMs > 0 ? Math.min(100, (offsetMs / options.totalMs) * 100) : 0
164
162
  const widthPct =
165
- totalMs > 0 ? Math.max(0.5, Math.min(100 - leftPct, (durMs / totalMs) * 100)) : 100
163
+ options.totalMs > 0
164
+ ? Math.max(0.5, Math.min(100 - leftPct, (durMs / options.totalMs) * 100))
165
+ : 100
166
166
  const color = statusColor(s.status)
167
167
 
168
168
  const durLabelLeft = leftPct + widthPct + 0.5
@@ -170,9 +170,9 @@ function WaterfallRow({
170
170
  return (
171
171
  <div class="wf-row">
172
172
  <div class="wf-name">
173
- <TreeConnectors tree={tree} />
173
+ <TreeConnectors tree={options.tree} />
174
174
  <span style="overflow:hidden;text-overflow:ellipsis">{s.name}</span>
175
- {tree.childCount > 0 && <span class="wf-badge">{tree.childCount}</span>}
175
+ {options.tree.childCount > 0 && <span class="wf-badge">{options.tree.childCount}</span>}
176
176
  </div>
177
177
  <div class="wf-bar-cell">
178
178
  <div class="wf-bar" style={`left:${leftPct}%;width:${widthPct}%;background:${color}`} />
@@ -184,23 +184,19 @@ function WaterfallRow({
184
184
  )
185
185
  }
186
186
 
187
- function MiniWaterfall({
188
- spans,
189
- totalMs,
190
- rootStart,
191
- }: {
192
- spans: Array<ConsoleStore.ConsoleSpan>
187
+ function MiniWaterfall(options: {
188
+ spans: Array<TowerStore.TowerSpan>
193
189
  totalMs: number
194
190
  rootStart: bigint
195
191
  }) {
196
- if (totalMs <= 0) return <div class="mini-wf" />
192
+ if (options.totalMs <= 0) return <div class="mini-wf" />
197
193
  return (
198
194
  <div class="mini-wf">
199
- {spans.map((s) => {
200
- const offsetMs = Number(s.startTime - rootStart) / 1_000_000
195
+ {options.spans.map((s) => {
196
+ const offsetMs = Number(s.startTime - options.rootStart) / 1_000_000
201
197
  const durMs = s.durationMs ?? 0
202
- const leftPct = Math.min(100, (offsetMs / totalMs) * 100)
203
- const widthPct = Math.max(0.3, Math.min(100 - leftPct, (durMs / totalMs) * 100))
198
+ const leftPct = Math.min(100, (offsetMs / options.totalMs) * 100)
199
+ const widthPct = Math.max(0.3, Math.min(100 - leftPct, (durMs / options.totalMs) * 100))
204
200
  return (
205
201
  <div
206
202
  class="mini-wf-bar"
@@ -215,9 +211,9 @@ function MiniWaterfall({
215
211
  // --- Exports ---
216
212
 
217
213
  export function groupByTraceId(
218
- spans: Array<ConsoleStore.ConsoleSpan>,
219
- ): Map<string, Array<ConsoleStore.ConsoleSpan>> {
220
- const groups = new Map<string, Array<ConsoleStore.ConsoleSpan>>()
214
+ spans: Array<TowerStore.TowerSpan>,
215
+ ): Map<bigint, Array<TowerStore.TowerSpan>> {
216
+ const groups = new Map<bigint, Array<TowerStore.TowerSpan>>()
221
217
  for (const span of spans) {
222
218
  let group = groups.get(span.traceId)
223
219
  if (!group) {
@@ -229,13 +225,13 @@ export function groupByTraceId(
229
225
  return groups
230
226
  }
231
227
 
232
- export function TraceGroup({ spans }: { spans: Array<ConsoleStore.ConsoleSpan> }) {
233
- if (spans.length === 0) return null
234
- const root = spans.find((s) => !s.parentSpanId) ?? spans[0]
228
+ export function TraceGroup(options: { spans: Array<TowerStore.TowerSpan> }) {
229
+ if (options.spans.length === 0) return null
230
+ const root = options.spans.find((s) => !s.parentSpanId) ?? options.spans[0]
235
231
  const traceId = root.traceId
236
232
  const totalMs = root.durationMs ?? 0
237
233
  const rootStart = root.startTime
238
- const hasError = spans.some((s) => s.status === "error")
234
+ const hasError = options.spans.some((s) => s.status === "error")
239
235
  const status = hasError ? "error" : root.status
240
236
 
241
237
  return (
@@ -247,28 +243,28 @@ export function TraceGroup({ spans }: { spans: Array<ConsoleStore.ConsoleSpan> }
247
243
  />
248
244
  </span>
249
245
  <span class="tl-cell tl-cell-name">{root.name}</span>
250
- <span class="tl-cell tl-cell-spans">{spans.length}</span>
246
+ <span class="tl-cell tl-cell-spans">{options.spans.length}</span>
251
247
  <span class="tl-cell tl-cell-dur">{formatDuration(totalMs)}</span>
252
- <span class="tl-cell tl-cell-id">{traceId.slice(0, 12)}</span>
248
+ <span class="tl-cell tl-cell-id">{String(traceId).slice(0, 12)}</span>
253
249
  </summary>
254
250
  <div class="tl-body">
255
251
  <div style="display:flex;gap:12px;align-items:center;margin-bottom:8px">
256
252
  <a
257
- href={`${ConsoleStore.store.prefix}/traces/${traceId}`}
253
+ href={`${TowerStore.store.prefix}/traces/${traceId}`}
258
254
  style="color:#38bdf8;font-size:12px;text-decoration:none"
259
255
  >
260
256
  Full trace view
261
257
  </a>
262
258
  <StatusBadge status={status} />
263
259
  <span style="color:#64748b;font-size:11px">
264
- {spans.length} span{spans.length !== 1 ? "s" : ""}
260
+ {options.spans.length} span{options.spans.length !== 1 ? "s" : ""}
265
261
  </span>
266
262
  <span style="color:#64748b;font-size:11px;font-family:monospace">
267
263
  {formatDuration(totalMs)}
268
264
  </span>
269
265
  <span style="color:#475569;font-size:10px;font-family:monospace">{traceId}</span>
270
266
  </div>
271
- {spans.map((s) => {
267
+ {options.spans.map((s) => {
272
268
  const offsetMs = Number(s.startTime - rootStart) / 1_000_000
273
269
  const leftPct = totalMs > 0 ? Math.min(100, (offsetMs / totalMs) * 100) : 0
274
270
  const widthPct =
@@ -299,8 +295,8 @@ export function TraceGroup({ spans }: { spans: Array<ConsoleStore.ConsoleSpan> }
299
295
  )
300
296
  }
301
297
 
302
- export function TraceGroups({ spans }: { spans: Array<ConsoleStore.ConsoleSpan> }) {
303
- const groups = groupByTraceId(spans)
298
+ export function TraceGroups(options: { spans: Array<TowerStore.TowerSpan> }) {
299
+ const groups = groupByTraceId(options.spans)
304
300
  const sorted = Array.from(groups.values())
305
301
  .sort((a, b) => Number(b[0].startTime) - Number(a[0].startTime))
306
302
  .slice(0, 50)
@@ -324,28 +320,25 @@ export function TraceGroups({ spans }: { spans: Array<ConsoleStore.ConsoleSpan>
324
320
  )
325
321
  }
326
322
 
327
- export function TraceDetail({
328
- prefix,
329
- spans,
330
- }: {
331
- prefix: string
332
- spans: Array<ConsoleStore.ConsoleSpan>
333
- }) {
334
- if (spans.length === 0) {
323
+ export function TraceDetail(options: { prefix: string; spans: Array<TowerStore.TowerSpan> }) {
324
+ if (options.spans.length === 0) {
335
325
  return <div class="empty">Trace not found</div>
336
326
  }
337
- const root = spans.find((s) => !s.parentSpanId) ?? spans[0]
327
+ const root = options.spans.find((s) => !s.parentSpanId) ?? options.spans[0]
338
328
  const traceId = root.traceId
339
329
  const totalMs = root.durationMs ?? 0
340
330
  const rootStart = root.startTime
341
331
  const startDate = new Date(Number(rootStart) / 1_000_000)
342
- const tree = buildSpanTree(spans)
332
+ const tree = buildSpanTree(options.spans)
343
333
 
344
334
  return (
345
335
  <>
346
336
  <div style="padding:12px 16px;border-bottom:1px solid #1e293b">
347
337
  <div style="display:flex;align-items:center;gap:8px;margin-bottom:8px">
348
- <a href={`${prefix}/traces`} style="color:#64748b;text-decoration:none;font-size:12px">
338
+ <a
339
+ href={`${options.prefix}/traces`}
340
+ style="color:#64748b;text-decoration:none;font-size:12px"
341
+ >
349
342
  Traces
350
343
  </a>
351
344
  <span style="color:#475569">/</span>
@@ -354,7 +347,7 @@ export function TraceDetail({
354
347
  <div style="display:flex;gap:16px;font-size:12px;color:#94a3b8;align-items:center">
355
348
  <StatusBadge status={root.status} />
356
349
  <span>
357
- {spans.length} span{spans.length !== 1 ? "s" : ""}
350
+ {options.spans.length} span{options.spans.length !== 1 ? "s" : ""}
358
351
  </span>
359
352
  <span>{formatDuration(totalMs)}</span>
360
353
  <span>{startDate.toLocaleTimeString("en", { hour12: false })}</span>
@@ -363,7 +356,7 @@ export function TraceDetail({
363
356
  </div>
364
357
 
365
358
  <div style="padding:8px 16px">
366
- <MiniWaterfall spans={spans} totalMs={totalMs} rootStart={rootStart} />
359
+ <MiniWaterfall spans={options.spans} totalMs={totalMs} rootStart={rootStart} />
367
360
  </div>
368
361
 
369
362
  <div style="padding:0 8px">
@@ -20,7 +20,7 @@ export const start = (opts: {
20
20
  opts.tunnelName,
21
21
  ].flatMap((v) => v)
22
22
 
23
- const proc = yield* System.spawn(command, args)
23
+ const proc = yield* System.spawn([command, ...args])
24
24
 
25
25
  yield* Effect.logInfo(
26
26
  `Cloudflare tunnel started name=${opts.tunnelName} pid=${proc.pid} tunnelUrl=${
@@ -18,7 +18,7 @@ interface TailscaleStatus {
18
18
 
19
19
  const getStatus = (command: string) =>
20
20
  Effect.gen(function* () {
21
- const proc = yield* System.spawn(command, ["status", "--json"])
21
+ const proc = yield* System.spawn([command, "status", "--json"])
22
22
  const exitCode = yield* proc.exitCode
23
23
 
24
24
  if (exitCode !== 0) {
@@ -56,9 +56,9 @@ const serve = (opts: {
56
56
  }) =>
57
57
  Effect.gen(function* () {
58
58
  const logPrefix = opts.logPrefix ?? "TailscaleTunnel: "
59
- const args = [opts.public ? "funnel" : "serve", String(opts.port)]
59
+ const subcommand = opts.public ? "funnel" : "serve"
60
60
 
61
- const proc = yield* System.spawn(opts.command, args)
61
+ const proc = yield* System.spawn([opts.command, subcommand, String(opts.port)])
62
62
 
63
63
  yield* Function.pipe(
64
64
  Stream.merge(proc.stdout, proc.stderr),
@@ -20,24 +20,21 @@ export interface CompileOptions {
20
20
  customJsResolver?: Resolver
21
21
  }
22
22
 
23
- function createCompileOptions({
24
- base,
25
- from,
26
- polyfills,
27
- onDependency,
28
-
29
- customCssResolver,
30
- customJsResolver,
31
- }: CompileOptions) {
23
+ function createCompileOptions(options: CompileOptions) {
32
24
  return {
33
- base,
34
- polyfills,
35
- from,
25
+ base: options.base,
26
+ polyfills: options.polyfills,
27
+ from: options.from,
36
28
  async loadModule(id: string, base: string) {
37
- return loadModule(id, base, onDependency, customJsResolver)
29
+ return loadModule(id, base, options.onDependency, options.customJsResolver)
38
30
  },
39
31
  async loadStylesheet(id: string, sheetBase: string) {
40
- let sheet = await loadStylesheet(id, sheetBase, onDependency, customCssResolver)
32
+ let sheet = await loadStylesheet(
33
+ id,
34
+ sheetBase,
35
+ options.onDependency,
36
+ options.customCssResolver,
37
+ )
41
38
 
42
39
  return sheet
43
40
  },