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
package/src/FileSystem.ts CHANGED
@@ -12,108 +12,93 @@ import * as Option from "effect/Option"
12
12
  import * as Sink from "effect/Sink"
13
13
  import type * as Scope from "effect/Scope"
14
14
  import * as Stream from "effect/Stream"
15
- import * as PlatformError from "./PlatformError.ts"
15
+ import * as System from "./System.ts"
16
16
 
17
17
  export interface FileSystem {
18
18
  readonly access: (
19
19
  path: string,
20
20
  options?: AccessFileOptions,
21
- ) => Effect.Effect<void, PlatformError.PlatformError>
21
+ ) => Effect.Effect<void, System.SystemError>
22
22
  readonly copy: (
23
23
  fromPath: string,
24
24
  toPath: string,
25
25
  options?: CopyOptions,
26
- ) => Effect.Effect<void, PlatformError.PlatformError>
27
- readonly copyFile: (
28
- fromPath: string,
29
- toPath: string,
30
- ) => Effect.Effect<void, PlatformError.PlatformError>
31
- readonly chmod: (path: string, mode: number) => Effect.Effect<void, PlatformError.PlatformError>
26
+ ) => Effect.Effect<void, System.SystemError>
27
+ readonly copyFile: (fromPath: string, toPath: string) => Effect.Effect<void, System.SystemError>
28
+ readonly chmod: (path: string, mode: number) => Effect.Effect<void, System.SystemError>
32
29
  readonly chown: (
33
30
  path: string,
34
31
  uid: number,
35
32
  gid: number,
36
- ) => Effect.Effect<void, PlatformError.PlatformError>
37
- readonly exists: (path: string) => Effect.Effect<boolean, PlatformError.PlatformError>
38
- readonly link: (
39
- fromPath: string,
40
- toPath: string,
41
- ) => Effect.Effect<void, PlatformError.PlatformError>
33
+ ) => Effect.Effect<void, System.SystemError>
34
+ readonly exists: (path: string) => Effect.Effect<boolean, System.SystemError>
35
+ readonly link: (fromPath: string, toPath: string) => Effect.Effect<void, System.SystemError>
42
36
  readonly makeDirectory: (
43
37
  path: string,
44
38
  options?: MakeDirectoryOptions,
45
- ) => Effect.Effect<void, PlatformError.PlatformError>
39
+ ) => Effect.Effect<void, System.SystemError>
46
40
  readonly makeTempDirectory: (
47
41
  options?: MakeTempDirectoryOptions,
48
- ) => Effect.Effect<string, PlatformError.PlatformError>
42
+ ) => Effect.Effect<string, System.SystemError>
49
43
  readonly makeTempDirectoryScoped: (
50
44
  options?: MakeTempDirectoryOptions,
51
- ) => Effect.Effect<string, PlatformError.PlatformError, Scope.Scope>
45
+ ) => Effect.Effect<string, System.SystemError, Scope.Scope>
52
46
  readonly makeTempFile: (
53
47
  options?: MakeTempFileOptions,
54
- ) => Effect.Effect<string, PlatformError.PlatformError>
48
+ ) => Effect.Effect<string, System.SystemError>
55
49
  readonly makeTempFileScoped: (
56
50
  options?: MakeTempFileOptions,
57
- ) => Effect.Effect<string, PlatformError.PlatformError, Scope.Scope>
51
+ ) => Effect.Effect<string, System.SystemError, Scope.Scope>
58
52
  readonly open: (
59
53
  path: string,
60
54
  options?: OpenFileOptions,
61
- ) => Effect.Effect<File, PlatformError.PlatformError, Scope.Scope>
55
+ ) => Effect.Effect<File, System.SystemError, Scope.Scope>
62
56
  readonly readDirectory: (
63
57
  path: string,
64
58
  options?: ReadDirectoryOptions,
65
- ) => Effect.Effect<Array<string>, PlatformError.PlatformError>
66
- readonly readFile: (path: string) => Effect.Effect<Uint8Array, PlatformError.PlatformError>
59
+ ) => Effect.Effect<Array<string>, System.SystemError>
60
+ readonly readFile: (path: string) => Effect.Effect<Uint8Array, System.SystemError>
67
61
  readonly readFileString: (
68
62
  path: string,
69
63
  encoding?: string,
70
- ) => Effect.Effect<string, PlatformError.PlatformError>
71
- readonly readLink: (path: string) => Effect.Effect<string, PlatformError.PlatformError>
72
- readonly realPath: (path: string) => Effect.Effect<string, PlatformError.PlatformError>
64
+ ) => Effect.Effect<string, System.SystemError>
65
+ readonly readLink: (path: string) => Effect.Effect<string, System.SystemError>
66
+ readonly realPath: (path: string) => Effect.Effect<string, System.SystemError>
73
67
  readonly remove: (
74
68
  path: string,
75
69
  options?: RemoveOptions,
76
- ) => Effect.Effect<void, PlatformError.PlatformError>
77
- readonly rename: (
78
- oldPath: string,
79
- newPath: string,
80
- ) => Effect.Effect<void, PlatformError.PlatformError>
70
+ ) => Effect.Effect<void, System.SystemError>
71
+ readonly rename: (oldPath: string, newPath: string) => Effect.Effect<void, System.SystemError>
81
72
  readonly sink: (
82
73
  path: string,
83
74
  options?: SinkOptions,
84
- ) => Sink.Sink<void, Uint8Array, never, PlatformError.PlatformError>
85
- readonly stat: (path: string) => Effect.Effect<File.Info, PlatformError.PlatformError>
75
+ ) => Sink.Sink<void, Uint8Array, never, System.SystemError>
76
+ readonly stat: (path: string) => Effect.Effect<File.Info, System.SystemError>
86
77
  readonly stream: (
87
78
  path: string,
88
79
  options?: StreamOptions,
89
- ) => Stream.Stream<Uint8Array, PlatformError.PlatformError>
90
- readonly symlink: (
91
- fromPath: string,
92
- toPath: string,
93
- ) => Effect.Effect<void, PlatformError.PlatformError>
94
- readonly truncate: (
95
- path: string,
96
- length?: SizeInput,
97
- ) => Effect.Effect<void, PlatformError.PlatformError>
80
+ ) => Stream.Stream<Uint8Array, System.SystemError>
81
+ readonly symlink: (fromPath: string, toPath: string) => Effect.Effect<void, System.SystemError>
82
+ readonly truncate: (path: string, length?: SizeInput) => Effect.Effect<void, System.SystemError>
98
83
  readonly utimes: (
99
84
  path: string,
100
85
  atime: Date | number,
101
86
  mtime: Date | number,
102
- ) => Effect.Effect<void, PlatformError.PlatformError>
87
+ ) => Effect.Effect<void, System.SystemError>
103
88
  readonly watch: (
104
89
  path: string,
105
90
  options?: WatchOptions,
106
- ) => Stream.Stream<WatchEvent, PlatformError.PlatformError>
91
+ ) => Stream.Stream<WatchEvent, System.SystemError>
107
92
  readonly writeFile: (
108
93
  path: string,
109
94
  data: Uint8Array,
110
95
  options?: WriteFileOptions,
111
- ) => Effect.Effect<void, PlatformError.PlatformError>
96
+ ) => Effect.Effect<void, System.SystemError>
112
97
  readonly writeFileString: (
113
98
  path: string,
114
99
  data: string,
115
100
  options?: WriteFileStringOptions,
116
- ) => Effect.Effect<void, PlatformError.PlatformError>
101
+ ) => Effect.Effect<void, System.SystemError>
117
102
  }
118
103
 
119
104
  export const FileSystem: Context.Tag<FileSystem, FileSystem> = Context.GenericTag<FileSystem>(
@@ -202,16 +187,16 @@ export type FileTypeId = typeof FileTypeId
202
187
  export interface File {
203
188
  readonly [FileTypeId]: FileTypeId
204
189
  readonly fd: File.Descriptor
205
- readonly stat: Effect.Effect<File.Info, PlatformError.PlatformError>
190
+ readonly stat: Effect.Effect<File.Info, System.SystemError>
206
191
  readonly seek: (offset: SizeInput, from: SeekMode) => Effect.Effect<void>
207
- readonly sync: Effect.Effect<void, PlatformError.PlatformError>
208
- readonly read: (buffer: Uint8Array) => Effect.Effect<Size, PlatformError.PlatformError>
192
+ readonly sync: Effect.Effect<void, System.SystemError>
193
+ readonly read: (buffer: Uint8Array) => Effect.Effect<Size, System.SystemError>
209
194
  readonly readAlloc: (
210
195
  size: SizeInput,
211
- ) => Effect.Effect<Option.Option<Uint8Array>, PlatformError.PlatformError>
212
- readonly truncate: (length?: SizeInput) => Effect.Effect<void, PlatformError.PlatformError>
213
- readonly write: (buffer: Uint8Array) => Effect.Effect<Size, PlatformError.PlatformError>
214
- readonly writeAll: (buffer: Uint8Array) => Effect.Effect<void, PlatformError.PlatformError>
196
+ ) => Effect.Effect<Option.Option<Uint8Array>, System.SystemError>
197
+ readonly truncate: (length?: SizeInput) => Effect.Effect<void, System.SystemError>
198
+ readonly write: (buffer: Uint8Array) => Effect.Effect<Size, System.SystemError>
199
+ readonly writeAll: (buffer: Uint8Array) => Effect.Effect<void, System.SystemError>
215
200
  }
216
201
 
217
202
  export declare namespace File {
@@ -282,7 +267,7 @@ export class WatchBackend extends Context.Tag("@effect/platform/FileSystem/Watch
282
267
  path: string,
283
268
  stat: File.Info,
284
269
  options?: WatchOptions,
285
- ) => Option.Option<Stream.Stream<WatchEvent, PlatformError.PlatformError>>
270
+ ) => Option.Option<Stream.Stream<WatchEvent, System.SystemError>>
286
271
  }
287
272
  >() {}
288
273
 
@@ -303,7 +288,8 @@ export const make = (
303
288
  Effect.tryMap(impl.readFile(path), {
304
289
  try: (_) => new TextDecoder(encoding).decode(_),
305
290
  catch: (cause) =>
306
- new PlatformError.BadArgument({
291
+ new System.SystemError({
292
+ reason: "BadArgument",
307
293
  module: "FileSystem",
308
294
  method: "readFileString",
309
295
  description: "invalid encoding",
@@ -330,7 +316,8 @@ export const make = (
330
316
  Effect.try({
331
317
  try: () => new TextEncoder().encode(data),
332
318
  catch: (cause) =>
333
- new PlatformError.BadArgument({
319
+ new System.SystemError({
320
+ reason: "BadArgument",
334
321
  module: "FileSystem",
335
322
  method: "writeFileString",
336
323
  description: "could not encode string",
@@ -348,14 +335,7 @@ const fileStream = (file: File, options: StreamOptions = {}) => {
348
335
 
349
336
  function loop(
350
337
  totalBytesRead: bigint,
351
- ): Channel.Channel<
352
- Chunk.Chunk<Uint8Array>,
353
- unknown,
354
- PlatformError.PlatformError,
355
- unknown,
356
- void,
357
- unknown
358
- > {
338
+ ): Channel.Channel<Chunk.Chunk<Uint8Array>, unknown, System.SystemError, unknown, void, unknown> {
359
339
  if (bytesToRead !== undefined && bytesToRead <= totalBytesRead) {
360
340
  return Channel.void
361
341
  }
@@ -9,7 +9,7 @@ import * as MutableRef from "effect/MutableRef"
9
9
  import * as Option from "effect/Option"
10
10
  import * as Runtime from "effect/Runtime"
11
11
 
12
- import * as ChildProcess from "./ChildProcess.ts"
12
+ import * as ChildProcess from "./_ChildProcess.ts"
13
13
 
14
14
  interface CacheEntry {
15
15
  readonly context: Context.Context<any>
package/src/Route.ts CHANGED
@@ -6,14 +6,14 @@ import * as Predicate from "effect/Predicate"
6
6
  import * as Entity from "./Entity.ts"
7
7
  import * as RouteBody from "./RouteBody.ts"
8
8
  import * as RouteTree from "./RouteTree.ts"
9
- import type * as Values from "./Values.ts"
9
+ import type * as Values from "./_Values.ts"
10
10
 
11
11
  export const RouteItems: unique symbol = Symbol()
12
12
  export const RouteDescriptor: unique symbol = Symbol()
13
13
  // only for structural type matching
14
14
  export const RouteBindings: unique symbol = Symbol()
15
15
 
16
- export const TypeId: unique symbol = Symbol.for("effect-start/RouteSet")
16
+ export const TypeId = "~effect-start/RouteSet" as const
17
17
 
18
18
  export namespace RouteDescriptor {
19
19
  export type Any = {
package/src/RouteBody.ts CHANGED
@@ -3,7 +3,7 @@ import type * as Stream from "effect/Stream"
3
3
  import type * as Utils from "effect/Utils"
4
4
  import * as Entity from "./Entity.ts"
5
5
  import * as Route from "./Route.ts"
6
- import type * as Values from "./Values.ts"
6
+ import type * as Values from "./_Values.ts"
7
7
 
8
8
  export type Format = "text" | "html" | "json" | "bytes" | "*"
9
9
 
package/src/RouteHttp.ts CHANGED
@@ -7,15 +7,15 @@ import * as Option from "effect/Option"
7
7
  import type * as ParseResult from "effect/ParseResult"
8
8
  import * as Runtime from "effect/Runtime"
9
9
  import * as Stream from "effect/Stream"
10
- import * as ContentNegotiation from "./ContentNegotiation.ts"
10
+ import * as ContentNegotiation from "./_ContentNegotiation.ts"
11
11
  import * as Entity from "./Entity.ts"
12
- import type * as Http from "./Http.ts"
12
+ import type * as Http from "./_Http.ts"
13
13
  import * as Route from "./Route.ts"
14
14
  import type * as RouteBody from "./RouteBody.ts"
15
15
  import * as RouteHttpTracer from "./RouteHttpTracer.ts"
16
16
  import type * as RouteMount from "./RouteMount.ts"
17
17
  import * as RouteTree from "./RouteTree.ts"
18
- import * as StreamExtra from "./StreamExtra.ts"
18
+ import * as StreamExtra from "./_StreamExtra.ts"
19
19
 
20
20
  type UnboundedRouteWithMethod = Route.Route.With<{
21
21
  method: RouteMount.RouteMount.Method
@@ -63,10 +63,13 @@ const getStatusFromCause = (cause: Cause.Cause<unknown>): number => {
63
63
  return 500
64
64
  }
65
65
 
66
- const respondError = (options: { status: number; message: string }): Response =>
66
+ const respondError = (
67
+ options: { status: number; message: string },
68
+ headers?: Record<string, string>,
69
+ ): Response =>
67
70
  new Response(JSON.stringify(options, null, 2), {
68
71
  status: options.status,
69
- headers: { "content-type": "application/json" },
72
+ headers: { "content-type": "application/json", ...headers },
70
73
  })
71
74
 
72
75
  function streamResponse(
@@ -188,140 +191,158 @@ export const toWebHandlerRuntime = <R>(runtime: Runtime.Runtime<R>) => {
188
191
  }
189
192
  }
190
193
 
191
- return (request) => {
192
- const method = request.method.toUpperCase()
193
- const accept = request.headers.get("accept")
194
- const methodRoutes = methodGroups[method] ?? []
194
+ const allowedMethods = Object.keys(methodGroups)
195
+ .filter((m) => methodGroups[m] !== undefined && methodGroups[m]!.length > 0)
196
+ .join(", ")
197
+
198
+ return (request) =>
199
+ new Promise((resolve) => {
200
+ const method = request.method.toUpperCase()
201
+ const accept = request.headers.get("accept")
202
+ const methodRoutes = methodGroups[method] ?? []
203
+
204
+ if (method === "OPTIONS" && methodRoutes.length === 0 && wildcards.length === 0) {
205
+ return resolve(
206
+ new Response(null, {
207
+ status: 204,
208
+ headers: { allow: allowedMethods },
209
+ }),
210
+ )
211
+ }
195
212
 
196
- if (methodRoutes.length === 0 && wildcards.length === 0) {
197
- return Promise.resolve(respondError({ status: 405, message: "method not allowed" }))
198
- }
213
+ if (methodRoutes.length === 0 && wildcards.length === 0) {
214
+ return resolve(
215
+ respondError({ status: 405, message: "method not allowed" }, { allow: allowedMethods }),
216
+ )
217
+ }
199
218
 
200
- const allRoutes = [...wildcards, ...methodRoutes]
201
- const selectedFormat = determineSelectedFormat(accept, allRoutes)
219
+ const allRoutes = [...wildcards, ...methodRoutes]
220
+ const selectedFormat = determineSelectedFormat(accept, allRoutes)
202
221
 
203
- const specificFormats = new Set<string>()
204
- let hasWildcardFormatRoutes = false
205
- for (const r of allRoutes) {
206
- const format = Route.descriptor(r).format
207
- if (format === "*") hasWildcardFormatRoutes = true
208
- else if (format) specificFormats.add(format)
209
- }
210
- const hasSpecificFormatRoutes = specificFormats.size > 0
211
- const varyAccept = specificFormats.size > 1
222
+ const specificFormats = new Set<string>()
223
+ let hasWildcardFormatRoutes = false
224
+ for (const r of allRoutes) {
225
+ const format = Route.descriptor(r).format
226
+ if (format === "*") hasWildcardFormatRoutes = true
227
+ else if (format) specificFormats.add(format)
228
+ }
229
+ const hasSpecificFormatRoutes = specificFormats.size > 0
230
+ const varyAccept = specificFormats.size > 1
212
231
 
213
- if (selectedFormat === undefined && hasSpecificFormatRoutes && !hasWildcardFormatRoutes) {
214
- return Promise.resolve(respondError({ status: 406, message: "not acceptable" }))
215
- }
232
+ if (selectedFormat === undefined && hasSpecificFormatRoutes && !hasWildcardFormatRoutes) {
233
+ return resolve(respondError({ status: 406, message: "not acceptable" }))
234
+ }
216
235
 
217
- const createChain = (initialContext: any): Effect.Effect<Entity.Entity<any>, any, any> => {
218
- let index = 0
219
- let currentContext = initialContext
220
- let routePathSet = false
236
+ const createChain = (initialContext: any): Effect.Effect<Entity.Entity<any>, any, any> => {
237
+ let index = 0
238
+ let currentContext = initialContext
239
+ let routePathSet = false
221
240
 
222
- const runNext = (passedContext?: any): Effect.Effect<Entity.Entity<any>, any, any> => {
223
- if (passedContext !== undefined) {
224
- currentContext = passedContext
225
- }
241
+ const runNext = (passedContext?: any): Effect.Effect<Entity.Entity<any>, any, any> => {
242
+ if (passedContext !== undefined) {
243
+ currentContext = passedContext
244
+ }
226
245
 
227
- if (index >= allRoutes.length) {
228
- return Effect.succeed(
229
- Entity.make({ status: 404, message: "route not found" }, { status: 404 }),
230
- )
231
- }
246
+ if (index >= allRoutes.length) {
247
+ return Effect.succeed(
248
+ Entity.make({ status: 404, message: "route not found" }, { status: 404 }),
249
+ )
250
+ }
232
251
 
233
- const route = allRoutes[index++]
234
- const descriptor = Route.descriptor(route)
235
- const format = descriptor.format
236
- const handler = route.handler as unknown as Handler
252
+ const route = allRoutes[index++]
253
+ const descriptor = Route.descriptor(route)
254
+ const format = descriptor.format
255
+ const handler = route.handler as unknown as Handler
237
256
 
238
- if (format && format !== "*" && format !== selectedFormat) {
239
- return runNext()
240
- }
257
+ if (format && format !== "*" && format !== selectedFormat) {
258
+ return runNext()
259
+ }
241
260
 
242
- currentContext = { ...currentContext, ...descriptor }
261
+ currentContext = { ...currentContext, ...descriptor }
243
262
 
244
- const nextArg = (ctx?: any) => Entity.effect(Effect.suspend(() => runNext(ctx)))
263
+ const nextArg = (ctx?: any) => Entity.effect(Effect.suspend(() => runNext(ctx)))
245
264
 
246
- const routePath = descriptor["path"]
247
- if (!routePathSet && routePath !== undefined) {
248
- routePathSet = true
249
- return Effect.flatMap(Effect.currentSpan.pipe(Effect.option), (spanOption) => {
250
- if (Option.isSome(spanOption)) {
251
- spanOption.value.attribute("http.route", routePath)
252
- }
253
- return handler(currentContext, nextArg)
254
- })
265
+ const routePath = descriptor["path"]
266
+ if (!routePathSet && routePath !== undefined) {
267
+ routePathSet = true
268
+ return Effect.flatMap(Effect.currentSpan.pipe(Effect.option), (spanOption) => {
269
+ if (Option.isSome(spanOption)) {
270
+ spanOption.value.attribute("http.route", routePath)
271
+ }
272
+ return handler(currentContext, nextArg)
273
+ })
274
+ }
275
+
276
+ return handler(currentContext, nextArg)
255
277
  }
256
278
 
257
- return handler(currentContext, nextArg)
279
+ return runNext()
258
280
  }
259
281
 
260
- return runNext()
261
- }
282
+ const effect = Effect.withFiberRuntime<Response, unknown, R>((fiber) => {
283
+ const tracerDisabled =
284
+ !fiber.getFiberRef(FiberRef.currentTracerEnabled) ||
285
+ fiber.getFiberRef(RouteHttpTracer.currentTracerDisabledWhen)(request)
262
286
 
263
- const effect = Effect.withFiberRuntime<Response, unknown, R>((fiber) => {
264
- const tracerDisabled =
265
- !fiber.getFiberRef(FiberRef.currentTracerEnabled) ||
266
- fiber.getFiberRef(RouteHttpTracer.currentTracerDisabledWhen)(request)
287
+ const url = new URL(request.url)
267
288
 
268
- const url = new URL(request.url)
289
+ const innerEffect = Effect.gen(function* () {
290
+ const result = yield* createChain({ request, selectedFormat })
269
291
 
270
- const innerEffect = Effect.gen(function* () {
271
- const result = yield* createChain({ request, selectedFormat })
292
+ const entity = Entity.isEntity(result) ? result : Entity.make(result, { status: 200 })
272
293
 
273
- const entity = Entity.isEntity(result) ? result : Entity.make(result, { status: 200 })
294
+ if (entity.status === 404 && entity.body === undefined) {
295
+ return respondError({ status: 406, message: "not acceptable" })
296
+ }
274
297
 
275
- if (entity.status === 404 && entity.body === undefined) {
276
- return respondError({ status: 406, message: "not acceptable" })
277
- }
298
+ const response = yield* toResponse(entity, selectedFormat, runtime)
299
+ if (varyAccept) {
300
+ response.headers.set("vary", "Accept")
301
+ }
302
+ return response
303
+ })
278
304
 
279
- const response = yield* toResponse(entity, selectedFormat, runtime)
280
- if (varyAccept) {
281
- response.headers.set("vary", "Accept")
305
+ if (tracerDisabled) {
306
+ return innerEffect
282
307
  }
283
- return response
284
- })
285
-
286
- if (tracerDisabled) {
287
- return innerEffect
288
- }
289
-
290
- const spanNameGenerator = fiber.getFiberRef(RouteHttpTracer.currentSpanNameGenerator)
291
-
292
- return Effect.useSpan(
293
- spanNameGenerator(request),
294
- {
295
- parent: Option.getOrUndefined(RouteHttpTracer.parentSpanFromHeaders(request.headers)),
296
- kind: "server",
297
- captureStackTrace: false,
298
- },
299
- (span) => {
300
- span.attribute("http.request.method", request.method)
301
- span.attribute("url.full", url.toString())
302
- span.attribute("url.path", url.pathname)
303
- const query = url.search.slice(1)
304
- if (query !== "") {
305
- span.attribute("url.query", query)
306
- }
307
- span.attribute("url.scheme", url.protocol.slice(0, -1))
308
308
 
309
- const userAgent = request.headers.get("user-agent")
310
- if (userAgent !== null) {
311
- span.attribute("user_agent.original", userAgent)
312
- }
309
+ const spanNameGenerator = fiber.getFiberRef(RouteHttpTracer.currentSpanNameGenerator)
310
+
311
+ return Effect.useSpan(
312
+ spanNameGenerator(request),
313
+ {
314
+ parent: Option.getOrUndefined(RouteHttpTracer.parentSpanFromHeaders(request.headers)),
315
+ kind: "server",
316
+ captureStackTrace: false,
317
+ },
318
+ (span) => {
319
+ span.attribute("http.request.method", request.method)
320
+ span.attribute("url.full", url.toString())
321
+ span.attribute("url.path", url.pathname)
322
+ const query = url.search.slice(1)
323
+ if (query !== "") {
324
+ span.attribute("url.query", query)
325
+ }
326
+ span.attribute("url.scheme", url.protocol.slice(0, -1))
313
327
 
314
- return Effect.flatMap(Effect.exit(Effect.withParentSpan(innerEffect, span)), (exit) => {
315
- if (exit._tag === "Success") {
316
- span.attribute("http.response.status_code", exit.value.status)
328
+ const userAgent = request.headers.get("user-agent")
329
+ if (userAgent !== null) {
330
+ span.attribute("user_agent.original", userAgent)
317
331
  }
318
- return exit
319
- })
320
- },
321
- )
322
- })
323
332
 
324
- return new Promise((resolve) => {
333
+ return Effect.flatMap(
334
+ Effect.exit(Effect.withParentSpan(innerEffect, span)),
335
+ (exit) => {
336
+ if (exit._tag === "Success") {
337
+ span.attribute("http.response.status_code", exit.value.status)
338
+ }
339
+ return exit
340
+ },
341
+ )
342
+ },
343
+ )
344
+ })
345
+
325
346
  const fiber = runFork(
326
347
  effect.pipe(
327
348
  Effect.scoped,
@@ -356,7 +377,6 @@ export const toWebHandlerRuntime = <R>(runtime: Runtime.Runtime<R>) => {
356
377
  }
357
378
  })
358
379
  })
359
- }
360
380
  }
361
381
  }
362
382
 
package/src/RouteMount.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as Function from "effect/Function"
2
2
  import type * as Types from "effect/Types"
3
- import type * as Http from "./Http.ts"
4
- import type * as PathPattern from "./PathPattern.ts"
3
+ import type * as Http from "./_Http.ts"
4
+ import type * as PathPattern from "./_PathPattern.ts"
5
5
  import * as Route from "./Route.ts"
6
6
  import type * as RouteBody from "./RouteBody.ts"
7
7
 
8
- const RouteSetTypeId: unique symbol = Symbol.for("effect-start/RouteSet")
8
+ const RouteSetTypeId = "~effect-start/RouteSet" as const
9
9
 
10
10
  // oxlint-disable-next-line import/first, typescript/consistent-type-imports -- typeof import() is not an import statement
11
11
  type Module = typeof import("./RouteMount.ts")
@@ -3,8 +3,8 @@ import type * as ParseResult from "effect/ParseResult"
3
3
  import * as Schema from "effect/Schema"
4
4
  import type * as Scope from "effect/Scope"
5
5
  import * as Entity from "./Entity.ts"
6
- import * as Http from "./Http.ts"
7
- import * as PathPattern from "./PathPattern.ts"
6
+ import * as Http from "./_Http.ts"
7
+ import * as PathPattern from "./_PathPattern.ts"
8
8
  import * as Route from "./Route.ts"
9
9
  import * as RouteHook from "./RouteHook.ts"
10
10