effect-start 0.23.1 → 0.26.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 (351) hide show
  1. package/package.json +18 -86
  2. package/src/Development.ts +3 -1
  3. package/src/Entity.ts +17 -0
  4. package/src/Fetch.ts +271 -0
  5. package/src/SqlIntrospect.ts +64 -70
  6. package/src/Start.ts +21 -24
  7. package/src/StartApp.ts +1 -1
  8. package/src/bun/BunServer.ts +42 -10
  9. package/src/hyper/HyperHtml.ts +0 -1
  10. package/src/sql/bun/index.ts +1 -1
  11. package/src/sql/index.ts +1 -0
  12. package/src/sql/libsql/index.ts +173 -0
  13. package/src/sql/libsql/libsql.d.ts +39 -0
  14. package/src/sql/mssql/index.ts +1 -1
  15. package/dist/BlobStore.d.ts +0 -80
  16. package/dist/BlobStore.js +0 -19
  17. package/dist/ChildProcess.d.ts +0 -60
  18. package/dist/ChildProcess.js +0 -30
  19. package/dist/Commander.d.ts +0 -100
  20. package/dist/Commander.js +0 -326
  21. package/dist/ContentNegotiation.d.ts +0 -12
  22. package/dist/ContentNegotiation.js +0 -359
  23. package/dist/Cookies.d.ts +0 -47
  24. package/dist/Cookies.js +0 -302
  25. package/dist/Development.d.ts +0 -39
  26. package/dist/Development.js +0 -58
  27. package/dist/Effectify.d.ts +0 -209
  28. package/dist/Effectify.js +0 -19
  29. package/dist/Entity.d.ts +0 -47
  30. package/dist/Entity.js +0 -224
  31. package/dist/FilePathPattern.d.ts +0 -29
  32. package/dist/FilePathPattern.js +0 -86
  33. package/dist/FileRouter.d.ts +0 -56
  34. package/dist/FileRouter.js +0 -148
  35. package/dist/FileRouterCodegen.d.ts +0 -18
  36. package/dist/FileRouterCodegen.js +0 -227
  37. package/dist/FileRouterPattern.d.ts +0 -9
  38. package/dist/FileRouterPattern.js +0 -35
  39. package/dist/FileSystem.d.ts +0 -158
  40. package/dist/FileSystem.js +0 -70
  41. package/dist/Http.d.ts +0 -37
  42. package/dist/Http.js +0 -88
  43. package/dist/HttpAppExtra.d.ts +0 -7
  44. package/dist/HttpAppExtra.js +0 -320
  45. package/dist/HttpUtils.d.ts +0 -3
  46. package/dist/HttpUtils.js +0 -11
  47. package/dist/PathPattern.d.ts +0 -134
  48. package/dist/PathPattern.js +0 -413
  49. package/dist/PlatformError.d.ts +0 -38
  50. package/dist/PlatformError.js +0 -25
  51. package/dist/PlatformRuntime.d.ts +0 -27
  52. package/dist/PlatformRuntime.js +0 -46
  53. package/dist/Route.d.ts +0 -97
  54. package/dist/Route.js +0 -100
  55. package/dist/RouteBody.d.ts +0 -47
  56. package/dist/RouteBody.js +0 -67
  57. package/dist/RouteError.d.ts +0 -98
  58. package/dist/RouteError.js +0 -55
  59. package/dist/RouteHook.d.ts +0 -12
  60. package/dist/RouteHook.js +0 -40
  61. package/dist/RouteHttp.d.ts +0 -21
  62. package/dist/RouteHttp.js +0 -258
  63. package/dist/RouteHttpTracer.d.ts +0 -10
  64. package/dist/RouteHttpTracer.js +0 -62
  65. package/dist/RouteMount.d.ts +0 -86
  66. package/dist/RouteMount.js +0 -63
  67. package/dist/RouteSchema.d.ts +0 -86
  68. package/dist/RouteSchema.js +0 -188
  69. package/dist/RouteSse.d.ts +0 -21
  70. package/dist/RouteSse.js +0 -79
  71. package/dist/RouteTree.d.ts +0 -57
  72. package/dist/RouteTree.js +0 -93
  73. package/dist/RouteTrie.d.ts +0 -20
  74. package/dist/RouteTrie.js +0 -152
  75. package/dist/RouterPattern.d.ts +0 -118
  76. package/dist/RouterPattern.js +0 -269
  77. package/dist/SchemaExtra.d.ts +0 -7
  78. package/dist/SchemaExtra.js +0 -74
  79. package/dist/Socket.d.ts +0 -27
  80. package/dist/Socket.js +0 -29
  81. package/dist/Sql.d.ts +0 -34
  82. package/dist/Sql.js +0 -5
  83. package/dist/SqlIntrospect.d.ts +0 -91
  84. package/dist/SqlIntrospect.js +0 -466
  85. package/dist/Start.d.ts +0 -44
  86. package/dist/Start.js +0 -49
  87. package/dist/StartApp.d.ts +0 -19
  88. package/dist/StartApp.js +0 -21
  89. package/dist/StreamExtra.d.ts +0 -28
  90. package/dist/StreamExtra.js +0 -100
  91. package/dist/System.d.ts +0 -7
  92. package/dist/System.js +0 -22
  93. package/dist/TuplePathPattern.d.ts +0 -9
  94. package/dist/TuplePathPattern.js +0 -68
  95. package/dist/Unique.d.ts +0 -50
  96. package/dist/Unique.js +0 -187
  97. package/dist/Values.d.ts +0 -27
  98. package/dist/Values.js +0 -36
  99. package/dist/bun/BunBlobStoreDisk.d.ts +0 -6
  100. package/dist/bun/BunBlobStoreDisk.js +0 -116
  101. package/dist/bun/BunBlobStoreS3.d.ts +0 -11
  102. package/dist/bun/BunBlobStoreS3.js +0 -89
  103. package/dist/bun/BunBlobWatcherDisk.d.ts +0 -6
  104. package/dist/bun/BunBlobWatcherDisk.js +0 -60
  105. package/dist/bun/BunBlobWatcherQueue.d.ts +0 -6
  106. package/dist/bun/BunBlobWatcherQueue.js +0 -17
  107. package/dist/bun/BunBundle.d.ts +0 -11
  108. package/dist/bun/BunBundle.js +0 -137
  109. package/dist/bun/BunChildProcessSpawner.d.ts +0 -3
  110. package/dist/bun/BunChildProcessSpawner.js +0 -103
  111. package/dist/bun/BunHttpServer.d.ts +0 -44
  112. package/dist/bun/BunHttpServer.js +0 -186
  113. package/dist/bun/BunHttpServer_web.d.ts +0 -60
  114. package/dist/bun/BunHttpServer_web.js +0 -252
  115. package/dist/bun/BunImportTrackerPlugin.d.ts +0 -13
  116. package/dist/bun/BunImportTrackerPlugin.js +0 -69
  117. package/dist/bun/BunPlatformHttpServer.d.ts +0 -10
  118. package/dist/bun/BunPlatformHttpServer.js +0 -53
  119. package/dist/bun/BunRoute.d.ts +0 -48
  120. package/dist/bun/BunRoute.js +0 -121
  121. package/dist/bun/BunRuntime.d.ts +0 -2
  122. package/dist/bun/BunRuntime.js +0 -31
  123. package/dist/bun/BunServer.d.ts +0 -40
  124. package/dist/bun/BunServer.js +0 -157
  125. package/dist/bun/BunServerRequest.d.ts +0 -60
  126. package/dist/bun/BunServerRequest.js +0 -252
  127. package/dist/bun/BunSql.d.ts +0 -4
  128. package/dist/bun/BunSql.js +0 -81
  129. package/dist/bun/BunVirtualFilesPlugin.d.ts +0 -4
  130. package/dist/bun/BunVirtualFilesPlugin.js +0 -40
  131. package/dist/bun/_BunEnhancedResolve.d.ts +0 -45
  132. package/dist/bun/_BunEnhancedResolve.js +0 -102
  133. package/dist/bun/index.d.ts +0 -5
  134. package/dist/bun/index.js +0 -5
  135. package/dist/bundler/Bundle.d.ts +0 -61
  136. package/dist/bundler/Bundle.js +0 -48
  137. package/dist/bundler/BundleFiles.d.ts +0 -13
  138. package/dist/bundler/BundleFiles.js +0 -96
  139. package/dist/bundler/BundleHttp.d.ts +0 -45
  140. package/dist/bundler/BundleHttp.js +0 -176
  141. package/dist/bundler/BundleRoute.d.ts +0 -27
  142. package/dist/bundler/BundleRoute.js +0 -51
  143. package/dist/client/Overlay.d.ts +0 -2
  144. package/dist/client/Overlay.js +0 -32
  145. package/dist/client/ScrollState.d.ts +0 -6
  146. package/dist/client/ScrollState.js +0 -94
  147. package/dist/client/index.d.ts +0 -6
  148. package/dist/client/index.js +0 -79
  149. package/dist/console/Console.d.ts +0 -6
  150. package/dist/console/Console.js +0 -26
  151. package/dist/console/ConsoleErrors.d.ts +0 -3
  152. package/dist/console/ConsoleErrors.js +0 -200
  153. package/dist/console/ConsoleLogger.d.ts +0 -3
  154. package/dist/console/ConsoleLogger.js +0 -47
  155. package/dist/console/ConsoleMetrics.d.ts +0 -3
  156. package/dist/console/ConsoleMetrics.js +0 -61
  157. package/dist/console/ConsoleProcess.d.ts +0 -3
  158. package/dist/console/ConsoleProcess.js +0 -49
  159. package/dist/console/ConsoleStore.d.ts +0 -144
  160. package/dist/console/ConsoleStore.js +0 -61
  161. package/dist/console/ConsoleTracer.d.ts +0 -3
  162. package/dist/console/ConsoleTracer.js +0 -94
  163. package/dist/console/Simulation.d.ts +0 -2
  164. package/dist/console/Simulation.js +0 -633
  165. package/dist/console/index.d.ts +0 -3
  166. package/dist/console/index.js +0 -3
  167. package/dist/console/routes/errors/route.d.ts +0 -10
  168. package/dist/console/routes/errors/route.js +0 -47
  169. package/dist/console/routes/fiberDetail.d.ts +0 -16
  170. package/dist/console/routes/fiberDetail.js +0 -38
  171. package/dist/console/routes/fibers/route.d.ts +0 -10
  172. package/dist/console/routes/fibers/route.js +0 -19
  173. package/dist/console/routes/git/route.d.ts +0 -11
  174. package/dist/console/routes/git/route.js +0 -33
  175. package/dist/console/routes/layout.d.ts +0 -9
  176. package/dist/console/routes/layout.js +0 -3
  177. package/dist/console/routes/logs/route.d.ts +0 -10
  178. package/dist/console/routes/logs/route.js +0 -32
  179. package/dist/console/routes/metrics/route.d.ts +0 -10
  180. package/dist/console/routes/metrics/route.js +0 -17
  181. package/dist/console/routes/route.d.ts +0 -6
  182. package/dist/console/routes/route.js +0 -5
  183. package/dist/console/routes/routes/route.d.ts +0 -6
  184. package/dist/console/routes/routes/route.js +0 -20
  185. package/dist/console/routes/services/route.d.ts +0 -6
  186. package/dist/console/routes/services/route.js +0 -12
  187. package/dist/console/routes/system/route.d.ts +0 -10
  188. package/dist/console/routes/system/route.js +0 -18
  189. package/dist/console/routes/traceDetail.d.ts +0 -16
  190. package/dist/console/routes/traceDetail.js +0 -14
  191. package/dist/console/routes/traces/route.d.ts +0 -10
  192. package/dist/console/routes/traces/route.js +0 -39
  193. package/dist/console/routes/tree.d.ts +0 -153
  194. package/dist/console/routes/tree.js +0 -29
  195. package/dist/console/ui/Errors.d.ts +0 -4
  196. package/dist/console/ui/Errors.js +0 -15
  197. package/dist/console/ui/Fibers.d.ts +0 -24
  198. package/dist/console/ui/Fibers.js +0 -121
  199. package/dist/console/ui/Git.d.ts +0 -20
  200. package/dist/console/ui/Git.js +0 -95
  201. package/dist/console/ui/Logs.d.ts +0 -4
  202. package/dist/console/ui/Logs.js +0 -25
  203. package/dist/console/ui/Metrics.d.ts +0 -4
  204. package/dist/console/ui/Metrics.js +0 -26
  205. package/dist/console/ui/Routes.d.ts +0 -8
  206. package/dist/console/ui/Routes.js +0 -70
  207. package/dist/console/ui/Services.d.ts +0 -10
  208. package/dist/console/ui/Services.js +0 -246
  209. package/dist/console/ui/Shell.d.ts +0 -10
  210. package/dist/console/ui/Shell.js +0 -7
  211. package/dist/console/ui/System.d.ts +0 -4
  212. package/dist/console/ui/System.js +0 -35
  213. package/dist/console/ui/Traces.d.ts +0 -12
  214. package/dist/console/ui/Traces.js +0 -179
  215. package/dist/datastar/actions/fetch.d.ts +0 -30
  216. package/dist/datastar/actions/fetch.js +0 -403
  217. package/dist/datastar/actions/peek.d.ts +0 -1
  218. package/dist/datastar/actions/peek.js +0 -13
  219. package/dist/datastar/actions/setAll.d.ts +0 -1
  220. package/dist/datastar/actions/setAll.js +0 -12
  221. package/dist/datastar/actions/toggleAll.d.ts +0 -1
  222. package/dist/datastar/actions/toggleAll.js +0 -12
  223. package/dist/datastar/attributes/attr.d.ts +0 -1
  224. package/dist/datastar/attributes/attr.js +0 -48
  225. package/dist/datastar/attributes/bind.d.ts +0 -1
  226. package/dist/datastar/attributes/bind.js +0 -175
  227. package/dist/datastar/attributes/class.d.ts +0 -1
  228. package/dist/datastar/attributes/class.js +0 -47
  229. package/dist/datastar/attributes/computed.d.ts +0 -1
  230. package/dist/datastar/attributes/computed.js +0 -26
  231. package/dist/datastar/attributes/effect.d.ts +0 -1
  232. package/dist/datastar/attributes/effect.js +0 -9
  233. package/dist/datastar/attributes/indicator.d.ts +0 -1
  234. package/dist/datastar/attributes/indicator.js +0 -30
  235. package/dist/datastar/attributes/init.d.ts +0 -1
  236. package/dist/datastar/attributes/init.js +0 -26
  237. package/dist/datastar/attributes/jsonSignals.d.ts +0 -1
  238. package/dist/datastar/attributes/jsonSignals.js +0 -30
  239. package/dist/datastar/attributes/on.d.ts +0 -1
  240. package/dist/datastar/attributes/on.js +0 -78
  241. package/dist/datastar/attributes/onIntersect.d.ts +0 -1
  242. package/dist/datastar/attributes/onIntersect.js +0 -53
  243. package/dist/datastar/attributes/onInterval.d.ts +0 -1
  244. package/dist/datastar/attributes/onInterval.js +0 -30
  245. package/dist/datastar/attributes/onSignalPatch.d.ts +0 -1
  246. package/dist/datastar/attributes/onSignalPatch.js +0 -42
  247. package/dist/datastar/attributes/ref.d.ts +0 -1
  248. package/dist/datastar/attributes/ref.js +0 -10
  249. package/dist/datastar/attributes/show.d.ts +0 -1
  250. package/dist/datastar/attributes/show.js +0 -31
  251. package/dist/datastar/attributes/signals.d.ts +0 -1
  252. package/dist/datastar/attributes/signals.js +0 -17
  253. package/dist/datastar/attributes/style.d.ts +0 -1
  254. package/dist/datastar/attributes/style.js +0 -50
  255. package/dist/datastar/attributes/text.d.ts +0 -1
  256. package/dist/datastar/attributes/text.js +0 -26
  257. package/dist/datastar/engine.d.ts +0 -162
  258. package/dist/datastar/engine.js +0 -999
  259. package/dist/datastar/happydom.d.ts +0 -1
  260. package/dist/datastar/happydom.js +0 -8
  261. package/dist/datastar/index.d.ts +0 -24
  262. package/dist/datastar/index.js +0 -24
  263. package/dist/datastar/load.d.ts +0 -24
  264. package/dist/datastar/load.js +0 -24
  265. package/dist/datastar/utils.d.ts +0 -51
  266. package/dist/datastar/utils.js +0 -202
  267. package/dist/datastar/watchers/patchElements.d.ts +0 -1
  268. package/dist/datastar/watchers/patchElements.js +0 -399
  269. package/dist/datastar/watchers/patchSignals.d.ts +0 -1
  270. package/dist/datastar/watchers/patchSignals.js +0 -14
  271. package/dist/experimental/EncryptedCookies.d.ts +0 -48
  272. package/dist/experimental/EncryptedCookies.js +0 -212
  273. package/dist/experimental/SseHttpResponse.d.ts +0 -7
  274. package/dist/experimental/SseHttpResponse.js +0 -28
  275. package/dist/experimental/index.d.ts +0 -1
  276. package/dist/experimental/index.js +0 -1
  277. package/dist/hyper/Hyper.d.ts +0 -25
  278. package/dist/hyper/Hyper.js +0 -23
  279. package/dist/hyper/HyperHtml.d.ts +0 -23
  280. package/dist/hyper/HyperHtml.js +0 -150
  281. package/dist/hyper/HyperHtml.test.d.ts +0 -1
  282. package/dist/hyper/HyperHtml.test.js +0 -197
  283. package/dist/hyper/HyperNode.d.ts +0 -14
  284. package/dist/hyper/HyperNode.js +0 -11
  285. package/dist/hyper/HyperRoute.d.ts +0 -8
  286. package/dist/hyper/HyperRoute.js +0 -32
  287. package/dist/hyper/HyperRoute.test.d.ts +0 -1
  288. package/dist/hyper/HyperRoute.test.js +0 -83
  289. package/dist/hyper/html.d.ts +0 -11
  290. package/dist/hyper/html.js +0 -30
  291. package/dist/hyper/index.d.ts +0 -6
  292. package/dist/hyper/index.js +0 -5
  293. package/dist/hyper/jsx-runtime.d.ts +0 -7
  294. package/dist/hyper/jsx-runtime.js +0 -8
  295. package/dist/index.d.ts +0 -8
  296. package/dist/index.js +0 -8
  297. package/dist/inference_check.d.ts +0 -1
  298. package/dist/inference_check.js +0 -15
  299. package/dist/lint/plugin.d.ts +0 -86
  300. package/dist/lint/plugin.js +0 -341
  301. package/dist/middlewares/BasicAuthMiddleware.d.ts +0 -8
  302. package/dist/middlewares/BasicAuthMiddleware.js +0 -22
  303. package/dist/middlewares/index.d.ts +0 -1
  304. package/dist/middlewares/index.js +0 -1
  305. package/dist/node/Effectify.d.ts +0 -209
  306. package/dist/node/Effectify.js +0 -19
  307. package/dist/node/FileSystem.d.ts +0 -7
  308. package/dist/node/FileSystem.js +0 -420
  309. package/dist/node/NodeFileSystem.d.ts +0 -7
  310. package/dist/node/NodeFileSystem.js +0 -410
  311. package/dist/node/NodeUtils.d.ts +0 -2
  312. package/dist/node/NodeUtils.js +0 -20
  313. package/dist/node/PlatformError.d.ts +0 -46
  314. package/dist/node/PlatformError.js +0 -43
  315. package/dist/node/Utils.d.ts +0 -1
  316. package/dist/node/Utils.js +0 -19
  317. package/dist/repro_fail.d.ts +0 -1
  318. package/dist/repro_fail.js +0 -14
  319. package/dist/sql/bun/index.d.ts +0 -3
  320. package/dist/sql/bun/index.js +0 -75
  321. package/dist/sql/mssql/docker.d.ts +0 -2
  322. package/dist/sql/mssql/docker.js +0 -67
  323. package/dist/sql/mssql/index.d.ts +0 -21
  324. package/dist/sql/mssql/index.js +0 -113
  325. package/dist/testing/TestHttpClient.d.ts +0 -13
  326. package/dist/testing/TestHttpClient.js +0 -68
  327. package/dist/testing/TestLogger.d.ts +0 -13
  328. package/dist/testing/TestLogger.js +0 -32
  329. package/dist/testing/index.d.ts +0 -2
  330. package/dist/testing/index.js +0 -2
  331. package/dist/testing/utils.d.ts +0 -9
  332. package/dist/testing/utils.js +0 -39
  333. package/dist/x/cloudflare/CloudflareTunnel.d.ts +0 -10
  334. package/dist/x/cloudflare/CloudflareTunnel.js +0 -30
  335. package/dist/x/cloudflare/index.d.ts +0 -1
  336. package/dist/x/cloudflare/index.js +0 -1
  337. package/dist/x/datastar/Datastar.d.ts +0 -6
  338. package/dist/x/datastar/Datastar.js +0 -47
  339. package/dist/x/datastar/index.d.ts +0 -1
  340. package/dist/x/datastar/index.js +0 -1
  341. package/dist/x/tailscale/TailscaleTunnel.d.ts +0 -15
  342. package/dist/x/tailscale/TailscaleTunnel.js +0 -68
  343. package/dist/x/tailscale/index.d.ts +0 -1
  344. package/dist/x/tailscale/index.js +0 -1
  345. package/dist/x/tailwind/TailwindPlugin.d.ts +0 -23
  346. package/dist/x/tailwind/TailwindPlugin.js +0 -219
  347. package/dist/x/tailwind/compile.d.ts +0 -19
  348. package/dist/x/tailwind/compile.js +0 -154
  349. package/dist/x/tailwind/plugin.d.ts +0 -2
  350. package/dist/x/tailwind/plugin.js +0 -15
  351. /package/src/{Sql.ts → sql/Sql.ts} +0 -0
@@ -1,49 +0,0 @@
1
- import * as NOS from "node:os";
2
- import * as Effect from "effect/Effect";
3
- import * as Layer from "effect/Layer";
4
- import * as PubSub from "effect/PubSub";
5
- import * as Schedule from "effect/Schedule";
6
- import * as ConsoleStore from "./ConsoleStore.js";
7
- function snapshot() {
8
- const mem = process.memoryUsage();
9
- const cpu = process.cpuUsage();
10
- const res = process.resourceUsage();
11
- const loadavg = NOS.loadavg();
12
- return {
13
- pid: process.pid,
14
- uptime: process.uptime(),
15
- memory: {
16
- rss: mem.rss,
17
- heapUsed: mem.heapUsed,
18
- heapTotal: mem.heapTotal,
19
- external: mem.external,
20
- arrayBuffers: mem.arrayBuffers,
21
- },
22
- cpu: { user: cpu.user, system: cpu.system },
23
- resourceUsage: {
24
- maxRSS: res.maxRSS,
25
- minorPageFault: res.minorPageFault,
26
- majorPageFault: res.majorPageFault,
27
- fsRead: res.fsRead,
28
- fsWrite: res.fsWrite,
29
- voluntaryContextSwitches: res.voluntaryContextSwitches,
30
- involuntaryContextSwitches: res.involuntaryContextSwitches,
31
- },
32
- system: {
33
- loadavg,
34
- freemem: NOS.freemem(),
35
- totalmem: NOS.totalmem(),
36
- cpuCount: NOS.cpus().length,
37
- platform: NOS.platform(),
38
- arch: NOS.arch(),
39
- },
40
- };
41
- }
42
- export const layer = Layer.scopedDiscard(Effect.gen(function* () {
43
- const store = yield* ConsoleStore.ConsoleStore;
44
- yield* Effect.forkScoped(Effect.schedule(Effect.sync(() => {
45
- const stats = snapshot();
46
- store.process = stats;
47
- Effect.runSync(PubSub.publish(store.events, { _tag: "ProcessSnapshot", stats }));
48
- }), Schedule.spaced("2 seconds")));
49
- }));
@@ -1,144 +0,0 @@
1
- import * as Context from "effect/Context";
2
- import * as Layer from "effect/Layer";
3
- import * as PubSub from "effect/PubSub";
4
- export declare const store: ConsoleStoreShape;
5
- export interface ConsoleSpan {
6
- readonly spanId: string;
7
- readonly traceId: string;
8
- readonly name: string;
9
- readonly kind: string;
10
- readonly parentSpanId: string | undefined;
11
- startTime: bigint;
12
- endTime: bigint | undefined;
13
- durationMs: number | undefined;
14
- status: "started" | "ok" | "error";
15
- readonly attributes: Record<string, unknown>;
16
- readonly events: Array<{
17
- name: string;
18
- startTime: bigint;
19
- attributes?: Record<string, unknown>;
20
- }>;
21
- }
22
- export interface ConsoleLog {
23
- readonly id: string;
24
- readonly date: Date;
25
- readonly level: "DEBUG" | "INFO" | "WARNING" | "ERROR" | "FATAL";
26
- readonly message: string;
27
- readonly fiberId: string;
28
- readonly cause: string | undefined;
29
- readonly spans: Array<string>;
30
- readonly annotations: Record<string, unknown>;
31
- }
32
- export interface ProcessStats {
33
- readonly pid: number;
34
- readonly uptime: number;
35
- readonly memory: {
36
- readonly rss: number;
37
- readonly heapUsed: number;
38
- readonly heapTotal: number;
39
- readonly external: number;
40
- readonly arrayBuffers: number;
41
- };
42
- readonly cpu: {
43
- readonly user: number;
44
- readonly system: number;
45
- };
46
- readonly resourceUsage: {
47
- readonly maxRSS: number;
48
- readonly minorPageFault: number;
49
- readonly majorPageFault: number;
50
- readonly fsRead: number;
51
- readonly fsWrite: number;
52
- readonly voluntaryContextSwitches: number;
53
- readonly involuntaryContextSwitches: number;
54
- };
55
- readonly system: {
56
- readonly loadavg: readonly [number, number, number];
57
- readonly freemem: number;
58
- readonly totalmem: number;
59
- readonly cpuCount: number;
60
- readonly platform: string;
61
- readonly arch: string;
62
- };
63
- }
64
- export interface ConsoleErrorDetail {
65
- readonly kind: "fail" | "die";
66
- readonly tag: string | undefined;
67
- readonly message: string;
68
- readonly properties: Record<string, unknown>;
69
- readonly span: string | undefined;
70
- }
71
- export interface ConsoleError {
72
- readonly id: string;
73
- readonly date: Date;
74
- readonly fiberId: string;
75
- readonly interrupted: boolean;
76
- readonly prettyPrint: string;
77
- readonly details: Array<ConsoleErrorDetail>;
78
- }
79
- export interface ConsoleMetricSnapshot {
80
- readonly name: string;
81
- readonly type: "counter" | "gauge" | "histogram" | "summary" | "frequency";
82
- readonly value: unknown;
83
- readonly tags: ReadonlyArray<{
84
- key: string;
85
- value: string;
86
- }>;
87
- readonly timestamp: number;
88
- }
89
- export type ConsoleEvent = {
90
- readonly _tag: "SpanStart";
91
- readonly span: ConsoleSpan;
92
- } | {
93
- readonly _tag: "SpanEnd";
94
- readonly span: ConsoleSpan;
95
- } | {
96
- readonly _tag: "Log";
97
- readonly log: ConsoleLog;
98
- } | {
99
- readonly _tag: "Error";
100
- readonly error: ConsoleError;
101
- } | {
102
- readonly _tag: "MetricsSnapshot";
103
- readonly metrics: Array<ConsoleMetricSnapshot>;
104
- } | {
105
- readonly _tag: "ProcessSnapshot";
106
- readonly stats: ProcessStats;
107
- };
108
- export declare class CircularBuffer<T> {
109
- private buffer;
110
- private head;
111
- private count;
112
- capacity: number;
113
- constructor(capacity: number);
114
- push(item: T): void;
115
- toArray(): Array<T>;
116
- get size(): number;
117
- }
118
- export interface FiberContext {
119
- readonly spanName: string | undefined;
120
- readonly traceId: string | undefined;
121
- readonly annotations: Record<string, unknown>;
122
- }
123
- export interface ConsoleStoreShape {
124
- prefix: string;
125
- readonly spans: CircularBuffer<ConsoleSpan>;
126
- readonly logs: CircularBuffer<ConsoleLog>;
127
- readonly errors: CircularBuffer<ConsoleError>;
128
- metrics: Array<ConsoleMetricSnapshot>;
129
- process: ProcessStats | undefined;
130
- readonly events: PubSub.PubSub<ConsoleEvent>;
131
- readonly fiberParents: Map<string, string>;
132
- readonly fiberContexts: Map<string, FiberContext>;
133
- }
134
- export declare function fiberIdCounter(): number;
135
- declare const ConsoleStore_base: Context.TagClass<ConsoleStore, "effect-start/ConsoleStore", ConsoleStoreShape>;
136
- export declare class ConsoleStore extends ConsoleStore_base {
137
- }
138
- export interface ConsoleStoreOptions {
139
- readonly spanCapacity?: number;
140
- readonly logCapacity?: number;
141
- readonly errorCapacity?: number;
142
- }
143
- export declare function layer(options?: ConsoleStoreOptions): Layer.Layer<ConsoleStore>;
144
- export {};
@@ -1,61 +0,0 @@
1
- import * as Context from "effect/Context";
2
- import * as Effect from "effect/Effect";
3
- import * as GlobalValue from "effect/GlobalValue";
4
- import * as Layer from "effect/Layer";
5
- import * as MutableRef from "effect/MutableRef";
6
- import * as PubSub from "effect/PubSub";
7
- export const store = GlobalValue.globalValue(Symbol.for("effect-start/ConsoleStore"), () => ({
8
- prefix: "/console",
9
- spans: new CircularBuffer(1000),
10
- logs: new CircularBuffer(5000),
11
- errors: new CircularBuffer(1000),
12
- metrics: [],
13
- process: undefined,
14
- events: Effect.runSync(PubSub.unbounded()),
15
- fiberParents: new Map(),
16
- fiberContexts: new Map(),
17
- }));
18
- export class CircularBuffer {
19
- buffer;
20
- head = 0;
21
- count = 0;
22
- capacity;
23
- constructor(capacity) {
24
- this.capacity = capacity;
25
- this.buffer = Array.from({ length: capacity });
26
- }
27
- push(item) {
28
- this.buffer[this.head] = item;
29
- this.head = (this.head + 1) % this.capacity;
30
- if (this.count < this.capacity)
31
- this.count++;
32
- }
33
- toArray() {
34
- if (this.count === 0)
35
- return [];
36
- const result = [];
37
- const start = this.count < this.capacity ? 0 : this.head;
38
- for (let i = 0; i < this.count; i++) {
39
- result.push(this.buffer[(start + i) % this.capacity]);
40
- }
41
- return result;
42
- }
43
- get size() {
44
- return this.count;
45
- }
46
- }
47
- export function fiberIdCounter() {
48
- const counter = GlobalValue.globalValue(Symbol.for("effect/Fiber/Id/_fiberCounter"), () => MutableRef.make(0));
49
- return MutableRef.get(counter);
50
- }
51
- export class ConsoleStore extends Context.Tag("effect-start/ConsoleStore")() {
52
- }
53
- export function layer(options) {
54
- if (options?.spanCapacity)
55
- store.spans = new CircularBuffer(options.spanCapacity);
56
- if (options?.logCapacity)
57
- store.logs = new CircularBuffer(options.logCapacity);
58
- if (options?.errorCapacity)
59
- store.errors = new CircularBuffer(options.errorCapacity);
60
- return Layer.sync(ConsoleStore, () => store);
61
- }
@@ -1,3 +0,0 @@
1
- import * as Layer from "effect/Layer";
2
- import * as ConsoleStore from "./ConsoleStore.ts";
3
- export declare const layer: Layer.Layer<never, never, ConsoleStore.ConsoleStore>;
@@ -1,94 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Exit from "effect/Exit";
3
- import * as Fiber from "effect/Fiber";
4
- import * as FiberId from "effect/FiberId";
5
- import * as Layer from "effect/Layer";
6
- import * as Option from "effect/Option";
7
- import * as PubSub from "effect/PubSub";
8
- import * as Tracer from "effect/Tracer";
9
- import * as ConsoleStore from "./ConsoleStore.js";
10
- const publish = (store, event) => Effect.runSync(PubSub.publish(store.events, event));
11
- const make = (store) => Tracer.make({
12
- span(name, parent, context, links, startTime, kind, options) {
13
- const parentSpanId = Option.isSome(parent) && parent.value._tag === "Span" ? parent.value.spanId : undefined;
14
- const traceId = Option.isSome(parent)
15
- ? parent.value.traceId
16
- : Math.random().toString(36).slice(2) + Math.random().toString(36).slice(2);
17
- const spanId = Math.random().toString(36).slice(2);
18
- const attributes = {};
19
- const currentFiber = Fiber.getCurrentFiber();
20
- if (Option.isSome(currentFiber)) {
21
- attributes["fiber.id"] = FiberId.threadName(currentFiber.value.id());
22
- }
23
- if (typeof options?.captureStackTrace === "function") {
24
- const stacktrace = options.captureStackTrace();
25
- if (stacktrace) {
26
- attributes["code.stacktrace"] = stacktrace;
27
- }
28
- }
29
- const consoleSpan = {
30
- spanId,
31
- traceId,
32
- name,
33
- kind,
34
- parentSpanId,
35
- startTime,
36
- endTime: undefined,
37
- durationMs: undefined,
38
- status: "started",
39
- attributes,
40
- events: [],
41
- };
42
- store.spans.push(consoleSpan);
43
- publish(store, { _tag: "SpanStart", span: consoleSpan });
44
- const attrs = new Map(Object.entries(attributes));
45
- const spanLinks = [...links];
46
- const span = {
47
- _tag: "Span",
48
- name,
49
- spanId,
50
- traceId,
51
- parent,
52
- context,
53
- get status() {
54
- if (consoleSpan.endTime != null) {
55
- return {
56
- _tag: "Ended",
57
- startTime: consoleSpan.startTime,
58
- endTime: consoleSpan.endTime,
59
- exit: Exit.void,
60
- };
61
- }
62
- return { _tag: "Started", startTime: consoleSpan.startTime };
63
- },
64
- attributes: attrs,
65
- links: spanLinks,
66
- sampled: true,
67
- kind,
68
- end(endTime, exit) {
69
- consoleSpan.endTime = endTime;
70
- consoleSpan.durationMs = Number(endTime - consoleSpan.startTime) / 1_000_000;
71
- consoleSpan.status = Exit.isSuccess(exit) ? "ok" : "error";
72
- publish(store, { _tag: "SpanEnd", span: consoleSpan });
73
- },
74
- attribute(key, value) {
75
- attrs.set(key, value);
76
- consoleSpan.attributes[key] = value;
77
- },
78
- event(name, startTime, attributes) {
79
- consoleSpan.events.push({ name, startTime, attributes });
80
- },
81
- addLinks(newLinks) {
82
- spanLinks.push(...newLinks);
83
- },
84
- };
85
- return span;
86
- },
87
- context(f) {
88
- return f();
89
- },
90
- });
91
- export const layer = Layer.unwrapEffect(Effect.gen(function* () {
92
- const store = yield* ConsoleStore.ConsoleStore;
93
- return Layer.setTracer(make(store));
94
- }));
@@ -1,2 +0,0 @@
1
- import * as Layer from "effect/Layer";
2
- export declare const layer: Layer.Layer<never, never, never>;