@livestore/utils 0.0.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 (322) hide show
  1. package/dist/.tsbuildinfo.json +1 -0
  2. package/dist/Deferred.d.ts +10 -0
  3. package/dist/Deferred.d.ts.map +1 -0
  4. package/dist/Deferred.js +18 -0
  5. package/dist/Deferred.js.map +1 -0
  6. package/dist/NoopTracer.d.ts +9 -0
  7. package/dist/NoopTracer.d.ts.map +1 -0
  8. package/dist/NoopTracer.js +54 -0
  9. package/dist/NoopTracer.js.map +1 -0
  10. package/dist/base64.d.ts +12 -0
  11. package/dist/base64.d.ts.map +1 -0
  12. package/dist/base64.js +114 -0
  13. package/dist/base64.js.map +1 -0
  14. package/dist/binary.d.ts +4 -0
  15. package/dist/binary.d.ts.map +1 -0
  16. package/dist/binary.js +23 -0
  17. package/dist/binary.js.map +1 -0
  18. package/dist/browser.d.ts +3 -0
  19. package/dist/browser.d.ts.map +1 -0
  20. package/dist/browser.js +28 -0
  21. package/dist/browser.js.map +1 -0
  22. package/dist/effect/Debounce.d.ts +5 -0
  23. package/dist/effect/Debounce.d.ts.map +1 -0
  24. package/dist/effect/Debounce.js +33 -0
  25. package/dist/effect/Debounce.js.map +1 -0
  26. package/dist/effect/Effect.d.ts +7 -0
  27. package/dist/effect/Effect.d.ts.map +1 -0
  28. package/dist/effect/Effect.js +17 -0
  29. package/dist/effect/Effect.js.map +1 -0
  30. package/dist/effect/EndableQueue.d.ts +11 -0
  31. package/dist/effect/EndableQueue.d.ts.map +1 -0
  32. package/dist/effect/EndableQueue.js +22 -0
  33. package/dist/effect/EndableQueue.js.map +1 -0
  34. package/dist/effect/EnvVar.d.ts +16 -0
  35. package/dist/effect/EnvVar.d.ts.map +1 -0
  36. package/dist/effect/EnvVar.js +21 -0
  37. package/dist/effect/EnvVar.js.map +1 -0
  38. package/dist/effect/Error.d.ts +12 -0
  39. package/dist/effect/Error.d.ts.map +1 -0
  40. package/dist/effect/Error.js +13 -0
  41. package/dist/effect/Error.js.map +1 -0
  42. package/dist/effect/Gate.d.ts +14 -0
  43. package/dist/effect/Gate.d.ts.map +1 -0
  44. package/dist/effect/Gate.js +17 -0
  45. package/dist/effect/Gate.js.map +1 -0
  46. package/dist/effect/Layer.d.ts +6 -0
  47. package/dist/effect/Layer.d.ts.map +1 -0
  48. package/dist/effect/Layer.js +11 -0
  49. package/dist/effect/Layer.js.map +1 -0
  50. package/dist/effect/Otel/Dummy.d.ts +5 -0
  51. package/dist/effect/Otel/Dummy.d.ts.map +1 -0
  52. package/dist/effect/Otel/Dummy.js +22 -0
  53. package/dist/effect/Otel/Dummy.js.map +1 -0
  54. package/dist/effect/Otel/Meter.d.ts +20 -0
  55. package/dist/effect/Otel/Meter.d.ts.map +1 -0
  56. package/dist/effect/Otel/Meter.js +76 -0
  57. package/dist/effect/Otel/Meter.js.map +1 -0
  58. package/dist/effect/Otel/OtlpGrpc.d.ts +6 -0
  59. package/dist/effect/Otel/OtlpGrpc.d.ts.map +1 -0
  60. package/dist/effect/Otel/OtlpGrpc.js +42 -0
  61. package/dist/effect/Otel/OtlpGrpc.js.map +1 -0
  62. package/dist/effect/Otel/OtlpHttp.d.ts +6 -0
  63. package/dist/effect/Otel/OtlpHttp.d.ts.map +1 -0
  64. package/dist/effect/Otel/OtlpHttp.js +42 -0
  65. package/dist/effect/Otel/OtlpHttp.js.map +1 -0
  66. package/dist/effect/Otel/OtlpWebsocket.d.ts +6 -0
  67. package/dist/effect/Otel/OtlpWebsocket.d.ts.map +1 -0
  68. package/dist/effect/Otel/OtlpWebsocket.js +42 -0
  69. package/dist/effect/Otel/OtlpWebsocket.js.map +1 -0
  70. package/dist/effect/Otel/Span.d.ts +32 -0
  71. package/dist/effect/Otel/Span.d.ts.map +1 -0
  72. package/dist/effect/Otel/Span.js +97 -0
  73. package/dist/effect/Otel/Span.js.map +1 -0
  74. package/dist/effect/Otel/Tracer.d.ts +15 -0
  75. package/dist/effect/Otel/Tracer.d.ts.map +1 -0
  76. package/dist/effect/Otel/Tracer.js +17 -0
  77. package/dist/effect/Otel/Tracer.js.map +1 -0
  78. package/dist/effect/Otel/index.d.ts +8 -0
  79. package/dist/effect/Otel/index.d.ts.map +1 -0
  80. package/dist/effect/Otel/index.js +9 -0
  81. package/dist/effect/Otel/index.js.map +1 -0
  82. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.d.ts +14 -0
  83. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.d.ts.map +1 -0
  84. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.js +15 -0
  85. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.js.map +1 -0
  86. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.d.ts +14 -0
  87. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.d.ts.map +1 -0
  88. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.js +15 -0
  89. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.js.map +1 -0
  90. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.d.ts +19 -0
  91. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.d.ts.map +1 -0
  92. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.js +17 -0
  93. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.js.map +1 -0
  94. package/dist/effect/Otel/lib-metrics/MetricsProvider.d.ts +10 -0
  95. package/dist/effect/Otel/lib-metrics/MetricsProvider.d.ts.map +1 -0
  96. package/dist/effect/Otel/lib-metrics/MetricsProvider.js +4 -0
  97. package/dist/effect/Otel/lib-metrics/MetricsProvider.js.map +1 -0
  98. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.d.ts +16 -0
  99. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.d.ts.map +1 -0
  100. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.js +39 -0
  101. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.js.map +1 -0
  102. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.d.ts +16 -0
  103. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.d.ts.map +1 -0
  104. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.js +39 -0
  105. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.js.map +1 -0
  106. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.d.ts +16 -0
  107. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.d.ts.map +1 -0
  108. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.js +39 -0
  109. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.js.map +1 -0
  110. package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.d.ts +17 -0
  111. package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.d.ts.map +1 -0
  112. package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.js +27 -0
  113. package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.js.map +1 -0
  114. package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.d.ts +18 -0
  115. package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.d.ts.map +1 -0
  116. package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.js +31 -0
  117. package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.js.map +1 -0
  118. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.d.ts +19 -0
  119. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.d.ts.map +1 -0
  120. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.js +36 -0
  121. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.js.map +1 -0
  122. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.d.ts +19 -0
  123. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.d.ts.map +1 -0
  124. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.js +36 -0
  125. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.js.map +1 -0
  126. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.d.ts +9 -0
  127. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.d.ts.map +1 -0
  128. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.js +29 -0
  129. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.js.map +1 -0
  130. package/dist/effect/Otel/lib-tracer/SimpleProcessor.d.ts +19 -0
  131. package/dist/effect/Otel/lib-tracer/SimpleProcessor.d.ts.map +1 -0
  132. package/dist/effect/Otel/lib-tracer/SimpleProcessor.js +25 -0
  133. package/dist/effect/Otel/lib-tracer/SimpleProcessor.js.map +1 -0
  134. package/dist/effect/Otel/lib-tracer/TracerProvider.d.ts +10 -0
  135. package/dist/effect/Otel/lib-tracer/TracerProvider.d.ts.map +1 -0
  136. package/dist/effect/Otel/lib-tracer/TracerProvider.js +7 -0
  137. package/dist/effect/Otel/lib-tracer/TracerProvider.js.map +1 -0
  138. package/dist/effect/Otel/lib-tracer/WebProvider.d.ts +18 -0
  139. package/dist/effect/Otel/lib-tracer/WebProvider.d.ts.map +1 -0
  140. package/dist/effect/Otel/lib-tracer/WebProvider.js +25 -0
  141. package/dist/effect/Otel/lib-tracer/WebProvider.js.map +1 -0
  142. package/dist/effect/ReadonlyArray.d.ts +4 -0
  143. package/dist/effect/ReadonlyArray.d.ts.map +1 -0
  144. package/dist/effect/ReadonlyArray.js +11 -0
  145. package/dist/effect/ReadonlyArray.js.map +1 -0
  146. package/dist/effect/RequestResolver.d.ts +11 -0
  147. package/dist/effect/RequestResolver.d.ts.map +1 -0
  148. package/dist/effect/RequestResolver.js +18 -0
  149. package/dist/effect/RequestResolver.js.map +1 -0
  150. package/dist/effect/STM.d.ts +3 -0
  151. package/dist/effect/STM.d.ts.map +1 -0
  152. package/dist/effect/STM.js +3 -0
  153. package/dist/effect/STM.js.map +1 -0
  154. package/dist/effect/Schedule.d.ts +5 -0
  155. package/dist/effect/Schedule.d.ts.map +1 -0
  156. package/dist/effect/Schedule.js +7 -0
  157. package/dist/effect/Schedule.js.map +1 -0
  158. package/dist/effect/Scheduler.d.ts +49 -0
  159. package/dist/effect/Scheduler.d.ts.map +1 -0
  160. package/dist/effect/Scheduler.js +168 -0
  161. package/dist/effect/Scheduler.js.map +1 -0
  162. package/dist/effect/Schema/SchemaHash.d.ts +3 -0
  163. package/dist/effect/Schema/SchemaHash.d.ts.map +1 -0
  164. package/dist/effect/Schema/SchemaHash.js +15 -0
  165. package/dist/effect/Schema/SchemaHash.js.map +1 -0
  166. package/dist/effect/Schema/SchemaHash.test.d.ts +2 -0
  167. package/dist/effect/Schema/SchemaHash.test.d.ts.map +1 -0
  168. package/dist/effect/Schema/SchemaHash.test.js +13 -0
  169. package/dist/effect/Schema/SchemaHash.test.js.map +1 -0
  170. package/dist/effect/Schema/SchemaJsonWrapper.d.ts +11 -0
  171. package/dist/effect/Schema/SchemaJsonWrapper.d.ts.map +1 -0
  172. package/dist/effect/Schema/SchemaJsonWrapper.js +38 -0
  173. package/dist/effect/Schema/SchemaJsonWrapper.js.map +1 -0
  174. package/dist/effect/Schema/SchemaJsonWrapper.test.d.ts +2 -0
  175. package/dist/effect/Schema/SchemaJsonWrapper.test.d.ts.map +1 -0
  176. package/dist/effect/Schema/SchemaJsonWrapper.test.js +42 -0
  177. package/dist/effect/Schema/SchemaJsonWrapper.test.js.map +1 -0
  178. package/dist/effect/Schema/index.d.ts +15 -0
  179. package/dist/effect/Schema/index.d.ts.map +1 -0
  180. package/dist/effect/Schema/index.js +14 -0
  181. package/dist/effect/Schema/index.js.map +1 -0
  182. package/dist/effect/ServiceContext.d.ts +39 -0
  183. package/dist/effect/ServiceContext.d.ts.map +1 -0
  184. package/dist/effect/ServiceContext.js +61 -0
  185. package/dist/effect/ServiceContext.js.map +1 -0
  186. package/dist/effect/SmartQueue.d.ts +38 -0
  187. package/dist/effect/SmartQueue.d.ts.map +1 -0
  188. package/dist/effect/SmartQueue.js +123 -0
  189. package/dist/effect/SmartQueue.js.map +1 -0
  190. package/dist/effect/Stream/chainSwitch.d.ts +3 -0
  191. package/dist/effect/Stream/chainSwitch.d.ts.map +1 -0
  192. package/dist/effect/Stream/chainSwitch.js +48 -0
  193. package/dist/effect/Stream/chainSwitch.js.map +1 -0
  194. package/dist/effect/Stream/index.d.ts +37 -0
  195. package/dist/effect/Stream/index.d.ts.map +1 -0
  196. package/dist/effect/Stream/index.js +82 -0
  197. package/dist/effect/Stream/index.js.map +1 -0
  198. package/dist/effect/SubscriptionRef.d.ts +10 -0
  199. package/dist/effect/SubscriptionRef.d.ts.map +1 -0
  200. package/dist/effect/SubscriptionRef.js +8 -0
  201. package/dist/effect/SubscriptionRef.js.map +1 -0
  202. package/dist/effect/TimeoutGate.d.ts +13 -0
  203. package/dist/effect/TimeoutGate.d.ts.map +1 -0
  204. package/dist/effect/TimeoutGate.js +41 -0
  205. package/dist/effect/TimeoutGate.js.map +1 -0
  206. package/dist/effect/WebCrypto.d.ts +18 -0
  207. package/dist/effect/WebCrypto.d.ts.map +1 -0
  208. package/dist/effect/WebCrypto.js +56 -0
  209. package/dist/effect/WebCrypto.js.map +1 -0
  210. package/dist/effect/WebLock.d.ts +5 -0
  211. package/dist/effect/WebLock.d.ts.map +1 -0
  212. package/dist/effect/WebLock.js +20 -0
  213. package/dist/effect/WebLock.js.map +1 -0
  214. package/dist/effect/browser.d.ts +19 -0
  215. package/dist/effect/browser.d.ts.map +1 -0
  216. package/dist/effect/browser.js +82 -0
  217. package/dist/effect/browser.js.map +1 -0
  218. package/dist/effect/fetch.d.ts +89 -0
  219. package/dist/effect/fetch.d.ts.map +1 -0
  220. package/dist/effect/fetch.js +142 -0
  221. package/dist/effect/fetch.js.map +1 -0
  222. package/dist/effect/index.d.ts +50 -0
  223. package/dist/effect/index.d.ts.map +1 -0
  224. package/dist/effect/index.js +58 -0
  225. package/dist/effect/index.js.map +1 -0
  226. package/dist/global.d.ts +5 -0
  227. package/dist/global.d.ts.map +1 -0
  228. package/dist/global.js +2 -0
  229. package/dist/global.js.map +1 -0
  230. package/dist/guards.d.ts +6 -0
  231. package/dist/guards.d.ts.map +1 -0
  232. package/dist/guards.js +6 -0
  233. package/dist/guards.js.map +1 -0
  234. package/dist/index.d.ts +69 -0
  235. package/dist/index.d.ts.map +1 -0
  236. package/dist/index.js +162 -0
  237. package/dist/index.js.map +1 -0
  238. package/dist/object/index.d.ts +10 -0
  239. package/dist/object/index.d.ts.map +1 -0
  240. package/dist/object/index.js +10 -0
  241. package/dist/object/index.js.map +1 -0
  242. package/dist/object/omit.d.ts +3 -0
  243. package/dist/object/omit.d.ts.map +1 -0
  244. package/dist/object/omit.js +14 -0
  245. package/dist/object/omit.js.map +1 -0
  246. package/dist/object/pick.d.ts +14 -0
  247. package/dist/object/pick.d.ts.map +1 -0
  248. package/dist/object/pick.js +17 -0
  249. package/dist/object/pick.js.map +1 -0
  250. package/dist/promise.d.ts +6 -0
  251. package/dist/promise.d.ts.map +1 -0
  252. package/dist/promise.js +27 -0
  253. package/dist/promise.js.map +1 -0
  254. package/dist/set.d.ts +2 -0
  255. package/dist/set.d.ts.map +1 -0
  256. package/dist/set.js +10 -0
  257. package/dist/set.js.map +1 -0
  258. package/dist/single-item.d.ts +8 -0
  259. package/dist/single-item.d.ts.map +1 -0
  260. package/dist/single-item.js +9 -0
  261. package/dist/single-item.js.map +1 -0
  262. package/dist/string.d.ts +3 -0
  263. package/dist/string.d.ts.map +1 -0
  264. package/dist/string.js +3 -0
  265. package/dist/string.js.map +1 -0
  266. package/dist/time.d.ts +12 -0
  267. package/dist/time.d.ts.map +1 -0
  268. package/dist/time.js +22 -0
  269. package/dist/time.js.map +1 -0
  270. package/dist/types/index.d.ts +2 -0
  271. package/dist/types/index.d.ts.map +1 -0
  272. package/dist/types/index.js +2 -0
  273. package/dist/types/index.js.map +1 -0
  274. package/dist/types/json.d.ts +27 -0
  275. package/dist/types/json.d.ts.map +1 -0
  276. package/dist/types/json.js +2 -0
  277. package/dist/types/json.js.map +1 -0
  278. package/package.json +58 -0
  279. package/src/Deferred.ts +24 -0
  280. package/src/NoopTracer.ts +75 -0
  281. package/src/base64.ts +118 -0
  282. package/src/browser.ts +32 -0
  283. package/src/effect/Effect.ts +27 -0
  284. package/src/effect/Error.ts +12 -0
  285. package/src/effect/Otel/Dummy.ts +32 -0
  286. package/src/effect/Otel/Meter.ts +145 -0
  287. package/src/effect/Otel/OtlpGrpc.ts +75 -0
  288. package/src/effect/Otel/OtlpHttp.ts +75 -0
  289. package/src/effect/Otel/OtlpWebsocket.ts +75 -0
  290. package/src/effect/Otel/Span.ts +222 -0
  291. package/src/effect/Otel/Tracer.ts +30 -0
  292. package/src/effect/Otel/index.ts +8 -0
  293. package/src/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.ts +39 -0
  294. package/src/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.ts +39 -0
  295. package/src/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.ts +47 -0
  296. package/src/effect/Otel/lib-metrics/MetricsProvider.ts +12 -0
  297. package/src/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.ts +77 -0
  298. package/src/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.ts +77 -0
  299. package/src/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.ts +80 -0
  300. package/src/effect/Otel/lib-metrics/PeriodicMetricsProvider.ts +55 -0
  301. package/src/effect/Otel/lib-tracer/BatchSpanProcessor.ts +58 -0
  302. package/src/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.ts +64 -0
  303. package/src/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.ts +64 -0
  304. package/src/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.ts +38 -0
  305. package/src/effect/Otel/lib-tracer/README.md +1 -0
  306. package/src/effect/Otel/lib-tracer/SimpleProcessor.ts +46 -0
  307. package/src/effect/Otel/lib-tracer/TracerProvider.ts +16 -0
  308. package/src/effect/Otel/lib-tracer/WebProvider.ts +48 -0
  309. package/src/effect/Schedule.ts +12 -0
  310. package/src/effect/ServiceContext.ts +116 -0
  311. package/src/effect/index.ts +65 -0
  312. package/src/global.ts +5 -0
  313. package/src/guards.ts +8 -0
  314. package/src/index.ts +217 -0
  315. package/src/object/index.ts +24 -0
  316. package/src/object/omit.ts +17 -0
  317. package/src/object/pick.ts +27 -0
  318. package/src/promise.ts +43 -0
  319. package/src/set.ts +10 -0
  320. package/src/string.ts +2 -0
  321. package/src/time.ts +25 -0
  322. package/tsconfig.json +13 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Layer.js","sourceRoot":"","sources":["../../src/effect/Layer.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,MAAM,CAAC,MAAM,YAAY,GAEa,CAAkB,IAAiD,EAAE,EAAE;IAC3G,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAwB,CAAA;IAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AACnE,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAU,+BAA+B,CAAC,CAAA;AACnE,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import * as Layer from '@effect/io/Layer';
2
+ import * as Otel from './index.js';
3
+ export declare const DummyTracingLive: Layer.Layer<never, never, Otel.Tracer>;
4
+ export declare const DummyMeterLive: Layer.Layer<never, never, Otel.Meter>;
5
+ //# sourceMappingURL=Dummy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dummy.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/Dummy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAYlC,eAAO,MAAM,gBAAgB,wCAAgD,CAAA;AAe7E,eAAO,MAAM,cAAc,uCAA6C,CAAA"}
@@ -0,0 +1,22 @@
1
+ import * as Layer from '@effect/io/Layer';
2
+ import { NoopTracer } from '../../NoopTracer.js';
3
+ import * as Otel from './index.js';
4
+ //
5
+ // Dummy Tracer
6
+ //
7
+ const DummyTracing = () => ({
8
+ [Otel.TracerSymbol]: Otel.TracerSymbol,
9
+ tracer: new NoopTracer(),
10
+ });
11
+ export const DummyTracingLive = Layer.sync(Otel.Tracer, () => DummyTracing());
12
+ const NoopMeter = () => ({
13
+ createHistogram: () => ({ record: () => { } }),
14
+ createCounter: () => ({ add: () => { } }),
15
+ createUpDownCounter: () => ({ add: () => { } }),
16
+ });
17
+ const DummyMeter = () => ({
18
+ [Otel.MeterSymbol]: Otel.MeterSymbol,
19
+ meter: NoopMeter(),
20
+ });
21
+ export const DummyMeterLive = Layer.sync(Otel.Meter, () => DummyMeter());
22
+ //# sourceMappingURL=Dummy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dummy.js","sourceRoot":"","sources":["../../../src/effect/Otel/Dummy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAGzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAElC,EAAE;AACF,eAAe;AACf,EAAE;AAEF,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,CAAC;IACC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY;IACtC,MAAM,EAAE,IAAI,UAAU,EAAE;CACzB,CAAU,CAAA;AAEb,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAA;AAE7E,MAAM,SAAS,GAAG,GAAG,EAAE,CACrB,CAAC;IACC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAC7C,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IACxC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;CAC/C,CAAiC,CAAA;AAEpC,MAAM,UAAU,GAAG,GAAG,EAAE,CACtB,CAAC;IACC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW;IACpC,KAAK,EAAE,SAAS,EAAE;CACnB,CAAU,CAAA;AAEb,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAAA"}
@@ -0,0 +1,20 @@
1
+ import * as Context from '@effect/data/Context';
2
+ import * as Effect from '@effect/io/Effect';
3
+ import * as Layer from '@effect/io/Layer';
4
+ import type * as OTMetrics from '@opentelemetry/api-metrics';
5
+ import { MetricsProvider } from './lib-metrics/MetricsProvider.js';
6
+ export declare const MeterSymbol: unique symbol;
7
+ export type MeterSymbol = typeof MeterSymbol;
8
+ export interface Meter {
9
+ readonly [MeterSymbol]: MeterSymbol;
10
+ readonly meter: OTMetrics.Meter;
11
+ }
12
+ export declare const Meter: Context.Tag<Meter, Meter>;
13
+ export declare const makeMeter: (name: string) => Effect.Effect<MetricsProvider, never, Meter>;
14
+ export declare const LiveMeter: Layer.Layer<MetricsProvider, never, Meter>;
15
+ export declare const histogram: (metricName: string, value: number, attributes?: OTMetrics.MetricAttributes) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Meter | R, E, A>;
16
+ export declare const histogramEff: <R2>(metricName: string, valueEff: Effect.Effect<R2, never, number>) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Meter | R2 | R, E, A>;
17
+ export declare const upDownCounter: (metricName: string, delta: number, attributes?: OTMetrics.MetricAttributes) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Meter | R, E, A>;
18
+ /** NOTE we're using an up-down-counter here (which is push based) instead of an observable gauge (which is pull based) */
19
+ export declare const gauge: (metricName: string, value: number, attributes?: OTMetrics.MetricAttributes) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Meter | R, E, A>;
20
+ //# sourceMappingURL=Meter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Meter.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/Meter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAElE,eAAO,MAAM,WAAW,eAAkC,CAAA;AAC1D,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAA;AAE5C,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAA;CAChC;AAED,eAAO,MAAM,KAAK,2BAAkC,CAAA;AAEpD,eAAO,MAAM,SAAS,SAAU,MAAM,iDAUlC,CAAA;AAEJ,eAAO,MAAM,SAAS,4CAAuD,CAAA;AAe7E,eAAO,MAAM,SAAS,eACP,MAAM,SAAS,MAAM,eAAe,UAAU,gBAAgB,gFASxE,CAAA;AAEL,eAAO,MAAM,YAAY,mBACN,MAAM,iIASpB,CAAA;AAEL,eAAO,MAAM,aAAa,eACX,MAAM,SAAS,MAAM,eAAe,UAAU,gBAAgB,gFASxE,CAAA;AAEL,0HAA0H;AAC1H,eAAO,MAAM,KAAK,eACH,MAAM,SAAS,MAAM,eAAe,UAAU,gBAAgB,gFAqB1E,CAAA"}
@@ -0,0 +1,76 @@
1
+ import * as Context from '@effect/data/Context';
2
+ import { identity, pipe } from '@effect/data/Function';
3
+ import * as Effect from '@effect/io/Effect';
4
+ import * as Layer from '@effect/io/Layer';
5
+ import { MetricsProvider } from './lib-metrics/MetricsProvider.js';
6
+ export const MeterSymbol = Symbol.for('effect-otel/Meter');
7
+ export const Meter = Context.Tag(MeterSymbol);
8
+ export const makeMeter = (name) => Effect.gen(function* ($) {
9
+ const { metricsProvider } = yield* $(MetricsProvider);
10
+ const meter = yield* $(Effect.sync(() => metricsProvider.getMeter(name)));
11
+ return identity({
12
+ [MeterSymbol]: MeterSymbol,
13
+ meter,
14
+ });
15
+ });
16
+ export const LiveMeter = Layer.scoped(Meter, makeMeter('@effect/otel/Meter'));
17
+ const metricCache = {
18
+ histograms: new Map(),
19
+ gauges: new Map(),
20
+ upDownCounters: new Map(),
21
+ };
22
+ export const histogram = (metricName, value, attributes) => (effect) => Effect.tap(effect, () => pipe(Effect.map(Meter, ({ meter }) => getOrCreate(metricCache.histograms, metricName, () => meter.createHistogram(metricName))), Effect.tap((histogram) => Effect.sync(() => histogram.record(value, attributes)))));
23
+ export const histogramEff = (metricName, valueEff) => (effect) => Effect.tap(effect, () => pipe(Effect.map(Meter, ({ meter }) => getOrCreate(metricCache.histograms, metricName, () => meter.createHistogram(metricName))), Effect.tap((histogram) => Effect.map(valueEff, (value) => histogram.record(value)))));
24
+ export const upDownCounter = (metricName, delta, attributes) => (effect) => Effect.tap(effect, () => pipe(Effect.map(Meter, ({ meter }) => getOrCreate(metricCache.upDownCounters, metricName, () => meter.createUpDownCounter(metricName))), Effect.tap((counter) => Effect.sync(() => counter.add(delta, attributes)))));
25
+ /** NOTE we're using an up-down-counter here (which is push based) instead of an observable gauge (which is pull based) */
26
+ export const gauge = (metricName, value, attributes) => (effect) => {
27
+ // NOTE this is currently used to keep separate gauges for each attribute value
28
+ const metricCacheName = metricName + '_' + JSON.stringify(attributes);
29
+ return Effect.tap(effect, () => pipe(Effect.map(Meter, ({ meter }) => getOrCreate(metricCache.gauges, metricCacheName, () => ({
30
+ counter: meter.createUpDownCounter(metricName),
31
+ prevValue: 0,
32
+ }))), Effect.tap(({ counter, prevValue }) => Effect.sync(() => {
33
+ const delta = value - prevValue;
34
+ counter.add(delta, attributes);
35
+ metricCache.gauges.set(metricCacheName, { counter, prevValue: value });
36
+ }))));
37
+ };
38
+ // export const gauge =
39
+ // (metricName: string, value: number, attributes?: OTMetrics.MetricAttributes) =>
40
+ // <R, E, A>(effect: Effect.Effect<R, E, A>) => {
41
+ // // NOTE this is currently used to keep separate gauges for each attribute value
42
+ // const metricCacheName = metricName + '_' + JSON.stringify(attributes)
43
+ // return pipe(
44
+ // effect,
45
+ // Effect.tap(() =>
46
+ // pipe(
47
+ // withMeter((meter) =>
48
+ // getOrCreate(metricCache.gauges, metricCacheName, () => ({
49
+ // observable: meter.createObservableGauge(metricName),
50
+ // currentCallback: () => {},
51
+ // })),
52
+ // ),
53
+ // Effect.tap(({ observable, currentCallback }) =>
54
+ // Effect.succeedWith(() => {
55
+ // observable.removeCallback(currentCallback)
56
+ // const newCallback: OTMetrics.ObservableCallback = (observableResult) => {
57
+ // observableResult.observe(value, attributes)
58
+ // }
59
+ // observable.addCallback(newCallback)
60
+ // metricCache.gauges.set(metricCacheName, { observable, currentCallback: newCallback })
61
+ // }),
62
+ // ),
63
+ // ),
64
+ // ),
65
+ // )
66
+ // }
67
+ const getOrCreate = (map, name, create) => {
68
+ const cached = map.get(name);
69
+ if (cached) {
70
+ return cached;
71
+ }
72
+ const created = create();
73
+ map.set(name, created);
74
+ return created;
75
+ };
76
+ //# sourceMappingURL=Meter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Meter.js","sourceRoot":"","sources":["../../../src/effect/Otel/Meter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import * as Layer from '@effect/io/Layer';
2
+ import type { ResourceAttributes } from '@opentelemetry/resources';
3
+ import * as Otel from './index.js';
4
+ export declare const makeWebTracingLayer: (serviceName: string, exporterUrl?: string, resourceAttributes?: ResourceAttributes) => Layer.Layer<never, never, Otel.Tracer>;
5
+ export declare const makeWebMetricLayer: (serviceName: string, exporterUrl?: string, resourceAttributes?: ResourceAttributes) => Layer.Layer<never, never, Otel.Meter>;
6
+ //# sourceMappingURL=OtlpGrpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OtlpGrpc.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/OtlpGrpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAIlE,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AA6BlC,eAAO,MAAM,mBAAmB,gBACjB,MAAM,gBACL,MAAM,uBACC,kBAAkB,KACtC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,MAAM,CAOrC,CAAA;AAqBH,eAAO,MAAM,kBAAkB,gBAChB,MAAM,gBACL,MAAM,uBACC,kBAAkB,KACtC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,CAIpC,CAAA"}
@@ -0,0 +1,42 @@
1
+ import * as Layer from '@effect/io/Layer';
2
+ import { Resource } from '@opentelemetry/resources';
3
+ import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
4
+ import * as Otel from './index.js';
5
+ import { makeOTLPMetricExporterConfigLayer } from './lib-metrics/ExporterMetricsOltpGrpc.js';
6
+ import { OTLPMetricsProvider } from './lib-metrics/OTLPMetricsProviderGrpc.js';
7
+ import { BatchProcessor } from './lib-tracer/BatchSpanProcessor.js';
8
+ import * as GrpcExporter from './lib-tracer/ExporterTraceOtlpGrpc.js';
9
+ import * as OTWeb from './lib-tracer/WebProvider.js';
10
+ import { LiveMeter } from './Meter.js';
11
+ //
12
+ // TRACING
13
+ //
14
+ const makeWebTracingProvider = (serviceName, resourceAttributes) => OTWeb.WebProvider({
15
+ resource: new Resource({
16
+ [SemanticResourceAttributes.SERVICE_NAME]: serviceName,
17
+ ...resourceAttributes,
18
+ }),
19
+ });
20
+ const TraceCollectorConfig = (exporterUrl) => GrpcExporter.makeOTLPTraceExporterConfigLayer({
21
+ // empty headers makes sure to use XHR instead of `navigator.sendBeacon`
22
+ headers: {},
23
+ url: exporterUrl,
24
+ });
25
+ const LiveBatchGrpcProcessor = BatchProcessor(GrpcExporter.makeTracingSpanExporter);
26
+ export const makeWebTracingLayer = (serviceName, exporterUrl, resourceAttributes) => Layer.provideMerge(TraceCollectorConfig(exporterUrl), Layer.provide(Layer.provideMerge(makeWebTracingProvider(serviceName, resourceAttributes), LiveBatchGrpcProcessor), Otel.LiveTracer));
27
+ //
28
+ // METRICS
29
+ //
30
+ const makeWebMetricProvider = (serviceName, resourceAttributes) => OTLPMetricsProvider({
31
+ resource: new Resource({
32
+ [SemanticResourceAttributes.SERVICE_NAME]: serviceName,
33
+ ...resourceAttributes,
34
+ }),
35
+ });
36
+ const MetricCollectorConfig = (exporterUrl) => makeOTLPMetricExporterConfigLayer({
37
+ // empty headers makes sure to use XHR instead of `navigator.sendBeacon`
38
+ headers: {},
39
+ url: exporterUrl,
40
+ });
41
+ export const makeWebMetricLayer = (serviceName, exporterUrl, resourceAttributes) => Layer.provide(Layer.provideMerge(MetricCollectorConfig(exporterUrl), makeWebMetricProvider(serviceName, resourceAttributes)), LiveMeter);
42
+ //# sourceMappingURL=OtlpGrpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OtlpGrpc.js","sourceRoot":"","sources":["../../../src/effect/Otel/OtlpGrpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAA;AAEhF,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAA;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACnE,OAAO,KAAK,YAAY,MAAM,uCAAuC,CAAA;AACrE,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,EAAE;AACF,UAAU;AACV,EAAE;AAEF,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,kBAAuC,EAAE,EAAE,CAC9F,KAAK,CAAC,WAAW,CAAC;IAChB,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACrB,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,WAAW;QACtD,GAAG,kBAAkB;KACtB,CAAC;CACH,CAAC,CAAA;AAEJ,MAAM,oBAAoB,GAAG,CAAC,WAAoB,EAAE,EAAE,CACpD,YAAY,CAAC,gCAAgC,CAAC;IAC5C,wEAAwE;IACxE,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,WAAW;CACjB,CAAC,CAAA;AAEJ,MAAM,sBAAsB,GAAG,cAAc,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAEnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAmB,EACnB,WAAoB,EACpB,kBAAuC,EACC,EAAE,CAC1C,KAAK,CAAC,YAAY,CAChB,oBAAoB,CAAC,WAAW,CAAC,EACjC,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,EACnG,IAAI,CAAC,UAAU,CAChB,CACF,CAAA;AAEH,EAAE;AACF,UAAU;AACV,EAAE;AAEF,MAAM,qBAAqB,GAAG,CAAC,WAAmB,EAAE,kBAAuC,EAAE,EAAE,CAC7F,mBAAmB,CAAC;IAClB,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACrB,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,WAAW;QACtD,GAAG,kBAAkB;KACtB,CAAC;CACH,CAAC,CAAA;AAEJ,MAAM,qBAAqB,GAAG,CAAC,WAAoB,EAAE,EAAE,CACrD,iCAAiC,CAAC;IAChC,wEAAwE;IACxE,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,WAAW;CACjB,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAmB,EACnB,WAAoB,EACpB,kBAAuC,EACA,EAAE,CACzC,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,qBAAqB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,EAC9G,SAAS,CACV,CAAA"}
@@ -0,0 +1,6 @@
1
+ import * as Layer from '@effect/io/Layer';
2
+ import type { ResourceAttributes } from '@opentelemetry/resources';
3
+ import * as Otel from './index.js';
4
+ export declare const makeWebTracingLayer: (serviceName: string, exporterUrl?: string, resourceAttributes?: ResourceAttributes) => Layer.Layer<never, never, Otel.Tracer>;
5
+ export declare const makeWebMetricLayer: (serviceName: string, exporterUrl?: string, resourceAttributes?: ResourceAttributes) => Layer.Layer<never, never, Otel.Meter>;
6
+ //# sourceMappingURL=OtlpHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OtlpHttp.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/OtlpHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAIlE,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AA6BlC,eAAO,MAAM,mBAAmB,gBACjB,MAAM,gBACL,MAAM,uBACC,kBAAkB,KACtC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,MAAM,CAOrC,CAAA;AAqBH,eAAO,MAAM,kBAAkB,gBAChB,MAAM,gBACL,MAAM,uBACC,kBAAkB,KACtC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,CAIpC,CAAA"}
@@ -0,0 +1,42 @@
1
+ import * as Layer from '@effect/io/Layer';
2
+ import { Resource } from '@opentelemetry/resources';
3
+ import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
4
+ import * as Otel from './index.js';
5
+ import { makeOTLPMetricExporterConfigLayer } from './lib-metrics/ExporterMetricsOltpHttp.js';
6
+ import { OTLPMetricsProvider } from './lib-metrics/OTLPMetricsProviderHttp.js';
7
+ import { BatchProcessor } from './lib-tracer/BatchSpanProcessor.js';
8
+ import * as HttpExporter from './lib-tracer/ExporterTraceOtlpHttp.js';
9
+ import * as OTWeb from './lib-tracer/WebProvider.js';
10
+ import { LiveMeter } from './Meter.js';
11
+ //
12
+ // TRACING
13
+ //
14
+ const makeWebTracingProvider = (serviceName, resourceAttributes) => OTWeb.WebProvider({
15
+ resource: new Resource({
16
+ [SemanticResourceAttributes.SERVICE_NAME]: serviceName,
17
+ ...resourceAttributes,
18
+ }),
19
+ });
20
+ const TraceCollectorConfig = (exporterUrl) => HttpExporter.makeOTLPTraceExporterConfigLayer({
21
+ // empty headers makes sure to use XHR instead of `navigator.sendBeacon`
22
+ headers: {},
23
+ url: exporterUrl,
24
+ });
25
+ const LiveBatchHttpProcessor = BatchProcessor(HttpExporter.makeTracingSpanExporter);
26
+ export const makeWebTracingLayer = (serviceName, exporterUrl, resourceAttributes) => Layer.provideMerge(TraceCollectorConfig(exporterUrl), Layer.provide(Layer.provideMerge(makeWebTracingProvider(serviceName, resourceAttributes), LiveBatchHttpProcessor), Otel.LiveTracer));
27
+ //
28
+ // METRICS
29
+ //
30
+ const makeWebMetricProvider = (serviceName, resourceAttributes) => OTLPMetricsProvider({
31
+ resource: new Resource({
32
+ [SemanticResourceAttributes.SERVICE_NAME]: serviceName,
33
+ ...resourceAttributes,
34
+ }),
35
+ });
36
+ const MetricCollectorConfig = (exporterUrl) => makeOTLPMetricExporterConfigLayer({
37
+ // empty headers makes sure to use XHR instead of `navigator.sendBeacon`
38
+ headers: {},
39
+ url: exporterUrl,
40
+ });
41
+ export const makeWebMetricLayer = (serviceName, exporterUrl, resourceAttributes) => Layer.provide(Layer.provideMerge(MetricCollectorConfig(exporterUrl), makeWebMetricProvider(serviceName, resourceAttributes)), LiveMeter);
42
+ //# sourceMappingURL=OtlpHttp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OtlpHttp.js","sourceRoot":"","sources":["../../../src/effect/Otel/OtlpHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAA;AAEhF,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAA;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACnE,OAAO,KAAK,YAAY,MAAM,uCAAuC,CAAA;AACrE,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,EAAE;AACF,UAAU;AACV,EAAE;AAEF,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,kBAAuC,EAAE,EAAE,CAC9F,KAAK,CAAC,WAAW,CAAC;IAChB,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACrB,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,WAAW;QACtD,GAAG,kBAAkB;KACtB,CAAC;CACH,CAAC,CAAA;AAEJ,MAAM,oBAAoB,GAAG,CAAC,WAAoB,EAAE,EAAE,CACpD,YAAY,CAAC,gCAAgC,CAAC;IAC5C,wEAAwE;IACxE,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,WAAW;CACjB,CAAC,CAAA;AAEJ,MAAM,sBAAsB,GAAG,cAAc,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAEnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAmB,EACnB,WAAoB,EACpB,kBAAuC,EACC,EAAE,CAC1C,KAAK,CAAC,YAAY,CAChB,oBAAoB,CAAC,WAAW,CAAC,EACjC,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,EACnG,IAAI,CAAC,UAAU,CAChB,CACF,CAAA;AAEH,EAAE;AACF,UAAU;AACV,EAAE;AAEF,MAAM,qBAAqB,GAAG,CAAC,WAAmB,EAAE,kBAAuC,EAAE,EAAE,CAC7F,mBAAmB,CAAC;IAClB,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACrB,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,WAAW;QACtD,GAAG,kBAAkB;KACtB,CAAC;CACH,CAAC,CAAA;AAEJ,MAAM,qBAAqB,GAAG,CAAC,WAAoB,EAAE,EAAE,CACrD,iCAAiC,CAAC;IAChC,wEAAwE;IACxE,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,WAAW;CACjB,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAmB,EACnB,WAAoB,EACpB,kBAAuC,EACA,EAAE,CACzC,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,qBAAqB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,EAC9G,SAAS,CACV,CAAA"}
@@ -0,0 +1,6 @@
1
+ import * as Layer from '@effect/io/Layer';
2
+ import type { ResourceAttributes } from '@opentelemetry/resources';
3
+ import * as Otel from './index.js';
4
+ export declare const makeWebTracingLayer: (serviceName: string, exporterUrl?: string, resourceAttributes?: ResourceAttributes) => Layer.Layer<never, never, Otel.Tracer>;
5
+ export declare const makeWebMetricLayer: (serviceName: string, exporterUrl?: string, resourceAttributes?: ResourceAttributes) => Layer.Layer<never, never, Otel.Meter>;
6
+ //# sourceMappingURL=OtlpWebsocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OtlpWebsocket.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/OtlpWebsocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAIlE,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AA6BlC,eAAO,MAAM,mBAAmB,gBACjB,MAAM,gBACL,MAAM,uBACC,kBAAkB,KACtC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,MAAM,CAOrC,CAAA;AAqBH,eAAO,MAAM,kBAAkB,gBAChB,MAAM,gBACL,MAAM,uBACC,kBAAkB,KACtC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,CAIpC,CAAA"}
@@ -0,0 +1,42 @@
1
+ import * as Layer from '@effect/io/Layer';
2
+ import { Resource } from '@opentelemetry/resources';
3
+ import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
4
+ import * as Otel from './index.js';
5
+ import { makeOTLPMetricExporterConfigLayer } from './lib-metrics/ExporterMetricsOltpWebsocket.js';
6
+ import { OTLPMetricsProvider } from './lib-metrics/OTLPMetricsProviderWebsocket.js';
7
+ import { BatchProcessor } from './lib-tracer/BatchSpanProcessor.js';
8
+ import * as WebSocketExporter from './lib-tracer/ExporterTraceOtlpWebsocket.js';
9
+ import * as OTWeb from './lib-tracer/WebProvider.js';
10
+ import { LiveMeter } from './Meter.js';
11
+ //
12
+ // TRACING
13
+ //
14
+ const makeWebTracingProvider = (serviceName, resourceAttributes) => OTWeb.WebProvider({
15
+ resource: new Resource({
16
+ [SemanticResourceAttributes.SERVICE_NAME]: serviceName,
17
+ ...resourceAttributes,
18
+ }),
19
+ });
20
+ const TraceCollectorConfig = (exporterUrl) => WebSocketExporter.makeOTLPTraceExporterConfigLayer({
21
+ // empty headers makes sure to use XHR instead of `navigator.sendBeacon`
22
+ headers: {},
23
+ url: exporterUrl,
24
+ });
25
+ const LiveBatchWebsocketProcessor = BatchProcessor(WebSocketExporter.makeTracingSpanExporter);
26
+ export const makeWebTracingLayer = (serviceName, exporterUrl, resourceAttributes) => Layer.provideMerge(TraceCollectorConfig(exporterUrl), Layer.provide(Layer.provideMerge(makeWebTracingProvider(serviceName, resourceAttributes), LiveBatchWebsocketProcessor), Otel.LiveTracer));
27
+ //
28
+ // METRICS
29
+ //
30
+ const makeWebMetricProvider = (serviceName, resourceAttributes) => OTLPMetricsProvider({
31
+ resource: new Resource({
32
+ [SemanticResourceAttributes.SERVICE_NAME]: serviceName,
33
+ ...resourceAttributes,
34
+ }),
35
+ });
36
+ const MetricCollectorConfig = (exporterUrl) => makeOTLPMetricExporterConfigLayer({
37
+ // empty headers makes sure to use XHR instead of `navigator.sendBeacon`
38
+ headers: {},
39
+ url: exporterUrl,
40
+ });
41
+ export const makeWebMetricLayer = (serviceName, exporterUrl, resourceAttributes) => Layer.provide(Layer.provideMerge(MetricCollectorConfig(exporterUrl), makeWebMetricProvider(serviceName, resourceAttributes)), LiveMeter);
42
+ //# sourceMappingURL=OtlpWebsocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OtlpWebsocket.js","sourceRoot":"","sources":["../../../src/effect/Otel/OtlpWebsocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAA;AAEhF,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,iCAAiC,EAAE,MAAM,+CAA+C,CAAA;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACnE,OAAO,KAAK,iBAAiB,MAAM,4CAA4C,CAAA;AAC/E,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,EAAE;AACF,UAAU;AACV,EAAE;AAEF,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,kBAAuC,EAAE,EAAE,CAC9F,KAAK,CAAC,WAAW,CAAC;IAChB,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACrB,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,WAAW;QACtD,GAAG,kBAAkB;KACtB,CAAC;CACH,CAAC,CAAA;AAEJ,MAAM,oBAAoB,GAAG,CAAC,WAAoB,EAAE,EAAE,CACpD,iBAAiB,CAAC,gCAAgC,CAAC;IACjD,wEAAwE;IACxE,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,WAAW;CACjB,CAAC,CAAA;AAEJ,MAAM,2BAA2B,GAAG,cAAc,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAA;AAE7F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAmB,EACnB,WAAoB,EACpB,kBAAuC,EACC,EAAE,CAC1C,KAAK,CAAC,YAAY,CAChB,oBAAoB,CAAC,WAAW,CAAC,EACjC,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,2BAA2B,CAAC,EACxG,IAAI,CAAC,UAAU,CAChB,CACF,CAAA;AAEH,EAAE;AACF,UAAU;AACV,EAAE;AAEF,MAAM,qBAAqB,GAAG,CAAC,WAAmB,EAAE,kBAAuC,EAAE,EAAE,CAC7F,mBAAmB,CAAC;IAClB,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACrB,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,WAAW;QACtD,GAAG,kBAAkB;KACtB,CAAC;CACH,CAAC,CAAA;AAEJ,MAAM,qBAAqB,GAAG,CAAC,WAAoB,EAAE,EAAE,CACrD,iCAAiC,CAAC;IAChC,wEAAwE;IACxE,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,WAAW;CACjB,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAmB,EACnB,WAAoB,EACpB,kBAAuC,EACA,EAAE,CACzC,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,qBAAqB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,EAC9G,SAAS,CACV,CAAA"}
@@ -0,0 +1,32 @@
1
+ import * as Context from '@effect/data/Context';
2
+ import * as Effect from '@effect/io/Effect';
3
+ import * as Layer from '@effect/io/Layer';
4
+ import * as Stream from '@effect/stream/Stream';
5
+ import * as otel from '@opentelemetry/api';
6
+ import { Tracer } from './Tracer.js';
7
+ export declare const SpanSymbol: unique symbol;
8
+ export type SpanSymbol = typeof SpanSymbol;
9
+ export interface Span {
10
+ readonly [SpanSymbol]: SpanSymbol;
11
+ readonly span: otel.Span;
12
+ }
13
+ export declare const Span: Context.Tag<Span, Span>;
14
+ export declare const makeSpan: (span: otel.Span) => Span;
15
+ export declare const requireParentSpan: <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Span | R, E, A>;
16
+ export declare const activeSpanContext: Effect.Effect<Span, never, otel.SpanContext>;
17
+ export declare const activeContext: Effect.Effect<Span, never, otel.Context>;
18
+ export declare const endInProgressSpans: Effect.Effect<never, never, void>;
19
+ export declare const withSpan: (name: string, options?: otel.SpanOptions, ctx?: otel.Context) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Tracer | Exclude<R, Span>, E, A>;
20
+ export declare const withSpanScoped: (name: string, options?: otel.SpanOptions, ctx?: otel.Context) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<import("@effect/io/Scope.js").Scope | Tracer | Exclude<R, Span>, E, A>;
21
+ export declare const withSpanStream: (name: string, options?: otel.SpanOptions, ctx?: otel.Context) => <R, E, A>(stream: Stream.Stream<Span | R, E, A>) => Stream.Stream<Tracer | Exclude<R, Span>, E, A>;
22
+ export declare const spanLayer: {
23
+ (name: string, options?: otel.SpanOptions, ctx?: otel.Context, afterEnded?: (span: otel.Span) => Effect.Effect<never, never, void>): Layer.Layer<Tracer, never, Span>;
24
+ <TIdentifier>(name: string, options: otel.SpanOptions | undefined, ctx: otel.Context | undefined, afterEnded: ((span: otel.Span) => Effect.Effect<never, never, void>) | undefined, tag: Context.Tag<TIdentifier, Span>): Layer.Layer<Tracer, never, TIdentifier>;
25
+ };
26
+ export declare const spanLayerFromContext: (parentSpanCtx: otel.Context) => Layer.Layer<never, never, Span>;
27
+ export declare const withSpanLayer: (name: string, options?: otel.SpanOptions, ctx?: otel.Context) => <R, E, A>(layer: Layer.Layer<Span | R, E, A>) => Layer.Layer<Tracer | Exclude<R, Span>, E, A>;
28
+ export declare const addAttribute: (name: string, value: otel.AttributeValue) => Effect.Effect<Span, never, void>;
29
+ export declare const addAttributes: (attributes: otel.Attributes) => Effect.Effect<Span, never, void>;
30
+ export declare const addAttributesEffect: <R, E>(attributes: Effect.Effect<R, E, otel.Attributes>) => Effect.Effect<Span | R, E, void>;
31
+ export declare const addEvent: (name: string, attributesOrStartTime?: otel.SpanAttributes | otel.TimeInput, startTime?: otel.TimeInput) => Effect.Effect<Span, never, void>;
32
+ //# sourceMappingURL=Span.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Span.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/Span.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAI/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAC/C,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,eAAO,MAAM,UAAU,eAAiC,CAAA;AACxD,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAA;AAG1C,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAA;CACzB;AAED,eAAO,MAAM,IAAI,yBAAgC,CAAA;AAEjD,eAAO,MAAM,QAAQ,SAAU,SAAS,KAAG,IAGzC,CAAA;AAEF,eAAO,MAAM,iBAAiB,4EAAqF,CAAA;AAEnH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAE1E,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAElE,CAAA;AAQD,eAAO,MAAM,kBAAkB,mCAG7B,CAAA;AA0CF,eAAO,MAAM,QAAQ,SACZ,MAAM,YAAY,KAAK,WAAW,QAAQ,YAAY,gGAU1D,CAAA;AAEL,eAAO,MAAM,cAAc,SAClB,MAAM,YAAY,KAAK,WAAW,QAAQ,YAAY,sIAWzD,CAAA;AAEN,eAAO,MAAM,cAAc,SAClB,MAAM,YAAY,KAAK,WAAW,QAAQ,YAAY,uGAc1D,CAAA;AAGL,eAAO,MAAM,SAAS,EAAE;IACtB,CACE,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAC1B,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,EAClB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAClE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC,WAAW,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,IAAI,CAAC,WAAW,GAAG,SAAS,EACrC,GAAG,EAAE,IAAI,CAAC,OAAO,GAAG,SAAS,EAC7B,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,SAAS,EAChF,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAClC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;CA8BzC,CAAA;AAEH,eAAO,MAAM,oBAAoB,kBAAmB,YAAY,oCAG/D,CAAA;AAED,eAAO,MAAM,aAAa,SACjB,MAAM,YAAY,KAAK,WAAW,QAAQ,YAAY,kGAER,CAAA;AAEvD,eAAO,MAAM,YAAY,SAAU,MAAM,SAAS,KAAK,cAAc,qCAKlE,CAAA;AAEH,eAAO,MAAM,aAAa,eAAgB,KAAK,UAAU,qCAKtD,CAAA;AAEH,eAAO,MAAM,mBAAmB,8FAO7B,CAAA;AAEH,eAAO,MAAM,QAAQ,SACb,MAAM,0BACY,KAAK,cAAc,GAAG,KAAK,SAAS,cAChD,KAAK,SAAS,qCAMzB,CAAA"}
@@ -0,0 +1,97 @@
1
+ import * as Context from '@effect/data/Context';
2
+ import { pipe } from '@effect/data/Function';
3
+ import * as Option from '@effect/data/Option';
4
+ import * as Cause from '@effect/io/Cause';
5
+ import * as Effect from '@effect/io/Effect';
6
+ import * as Exit from '@effect/io/Exit';
7
+ import * as Layer from '@effect/io/Layer';
8
+ import * as Stream from '@effect/stream/Stream';
9
+ import * as otel from '@opentelemetry/api';
10
+ import { Tracer } from './Tracer.js';
11
+ export const SpanSymbol = Symbol.for('effect-otel/Span');
12
+ export const Span = Context.Tag(SpanSymbol);
13
+ export const makeSpan = (span) => ({
14
+ [SpanSymbol]: SpanSymbol,
15
+ span,
16
+ });
17
+ export const requireParentSpan = (effect) => effect;
18
+ export const activeSpanContext = Effect.map(Span, (_) => _.span.spanContext());
19
+ export const activeContext = Effect.flatMap(Span, (_) => Effect.sync(() => otel.trace.setSpan(otel.context.active(), _.span)));
20
+ // TODO get rid of this
21
+ const inProgressSpans = new Set();
22
+ // @ts-expect-error `inProgressSpans` is not a global variable
23
+ globalThis.inProgressSpans = inProgressSpans;
24
+ // TODO get rid of this
25
+ export const endInProgressSpans = Effect.sync(() => {
26
+ inProgressSpans.forEach((span) => span.end());
27
+ inProgressSpans.clear();
28
+ });
29
+ const startSpan = (tracer, context, name, options, ctx) => {
30
+ let span;
31
+ const maybeSpan = Context.getOption(context, Span);
32
+ if (ctx !== undefined) {
33
+ span = tracer.startSpan(name, options, ctx);
34
+ }
35
+ else if (options?.root !== true && Option.isSome(maybeSpan)) {
36
+ const ctx = otel.trace.setSpan(otel.context.active(), maybeSpan.value.span);
37
+ span = tracer.startSpan(name, options, ctx);
38
+ }
39
+ else {
40
+ span = tracer.startSpan(name, { ...options, root: true });
41
+ }
42
+ inProgressSpans.add(span);
43
+ return span;
44
+ };
45
+ const handleExit = (span, exit) => Effect.sync(() => {
46
+ if (Exit.isFailure(exit)) {
47
+ if (Cause.isInterruptedOnly(exit.cause)) {
48
+ // TODO in the future set a special status code for interruption (once Otel supports it)
49
+ span.setStatus({ code: otel.SpanStatusCode.OK, message: Cause.pretty(exit.cause) });
50
+ // NOTE as a workaround we're using the `span.label` attribute which is visible in Grafana
51
+ // See https://github.com/grafana/grafana/pull/50931
52
+ span.setAttribute('span.label', '⚠️ Interrupted️');
53
+ }
54
+ else {
55
+ span.setStatus({ code: otel.SpanStatusCode.ERROR, message: Cause.pretty(exit.cause) });
56
+ }
57
+ }
58
+ else {
59
+ span.setStatus({ code: otel.SpanStatusCode.OK });
60
+ }
61
+ inProgressSpans.delete(span);
62
+ span.end();
63
+ });
64
+ export const withSpan = (name, options, ctx) => (effect) => Effect.flatMap(Tracer, (tracer) => Effect.acquireUseRelease(Effect.flatMap(Effect.context(), (context) => Effect.sync(() => startSpan(tracer.tracer, context, name, options, ctx))), (span) => Effect.provideService(effect, Span, makeSpan(span)), handleExit));
65
+ export const withSpanScoped = (name, options, ctx) => (effect) => Effect.flatMap(Tracer, (tracer) => {
66
+ const createSpan = Effect.acquireRelease(Effect.flatMap(Effect.context(), (context) => Effect.sync(() => startSpan(tracer.tracer, context, name, options, ctx))), handleExit);
67
+ return Effect.flatMap(createSpan, (span) => Effect.provideService(effect, Span, makeSpan(span)));
68
+ });
69
+ export const withSpanStream = (name, options, ctx) => (stream) => Stream.unwrapScoped(Effect.flatMap(Tracer, (tracer) => pipe(Effect.acquireRelease(Effect.flatMap(Effect.context(), (context) => Effect.sync(() => startSpan(tracer.tracer, context, name, options, ctx))), handleExit), Effect.map((span) => Stream.provideService(stream, Span, makeSpan(span))))));
70
+ // TODO add optional arg for `Tag` of `Span`
71
+ export const spanLayer = (name, options, ctx, afterEnded, tag) => Layer.flatMap(Layer.context(), (context) => Layer.scoped(tag ?? Span, pipe(Effect.sync(() => {
72
+ const tracer = Context.get(context, Tracer);
73
+ return startSpan(tracer.tracer, context, name, options, ctx);
74
+ }), Effect.map(makeSpan), Effect.acquireRelease(({ span }, exit) => pipe(handleExit(span, exit), Effect.tap(() => {
75
+ if (afterEnded !== undefined) {
76
+ return afterEnded(span);
77
+ }
78
+ return Effect.unit;
79
+ }))))));
80
+ export const spanLayerFromContext = (parentSpanCtx) => {
81
+ // const _spanId = otel.trace.getSpan(parentSpanCtx)!.spanContext().spanId
82
+ return Layer.succeed(Span, makeSpan(otel.trace.getSpan(parentSpanCtx)));
83
+ };
84
+ export const withSpanLayer = (name, options, ctx) => (layer) => Layer.provide(spanLayer(name, options, ctx), layer);
85
+ export const addAttribute = (name, value) => Effect.flatMap(Span, ({ span }) => Effect.sync(() => {
86
+ span.setAttribute(name, value);
87
+ }));
88
+ export const addAttributes = (attributes) => Effect.flatMap(Span, ({ span }) => Effect.sync(() => {
89
+ span.setAttributes(attributes);
90
+ }));
91
+ export const addAttributesEffect = (attributes) => Effect.flatMap(attributes, (attributes) => Effect.flatMap(Span, ({ span }) => Effect.sync(() => {
92
+ span.setAttributes(attributes);
93
+ })));
94
+ export const addEvent = (name, attributesOrStartTime, startTime) => Effect.flatMap(Span, ({ span }) => Effect.sync(() => {
95
+ span.addEvent(name, attributesOrStartTime, startTime);
96
+ }));
97
+ //# sourceMappingURL=Span.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Span.js","sourceRoot":"","sources":["../../../src/effect/Otel/Span.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import * as Context from '@effect/data/Context';
2
+ import * as Effect from '@effect/io/Effect';
3
+ import * as Layer from '@effect/io/Layer';
4
+ import type * as otel from '@opentelemetry/api';
5
+ import { TracerProvider } from './lib-tracer/TracerProvider.js';
6
+ export declare const TracerSymbol: unique symbol;
7
+ export type TracerSymbol = typeof TracerSymbol;
8
+ export interface Tracer {
9
+ readonly [TracerSymbol]: TracerSymbol;
10
+ readonly tracer: otel.Tracer;
11
+ }
12
+ export declare const Tracer: Context.Tag<Tracer, Tracer>;
13
+ export declare const makeTracer: (name: string) => Effect.Effect<TracerProvider, never, Tracer>;
14
+ export declare const LiveTracer: Layer.Layer<TracerProvider, never, Tracer>;
15
+ //# sourceMappingURL=Tracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tracer.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/Tracer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAE/D,eAAO,MAAM,YAAY,eAAmC,CAAA;AAC5D,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAA;AAE9C,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAC7B;AAED,eAAO,MAAM,MAAM,6BAAoC,CAAA;AAEvD,eAAO,MAAM,UAAU,SAAU,MAAM,iDASnC,CAAA;AAEJ,eAAO,MAAM,UAAU,4CAA0D,CAAA"}
@@ -0,0 +1,17 @@
1
+ import * as Context from '@effect/data/Context';
2
+ import { identity } from '@effect/data/Function';
3
+ import * as Effect from '@effect/io/Effect';
4
+ import * as Layer from '@effect/io/Layer';
5
+ import { TracerProvider } from './lib-tracer/TracerProvider.js';
6
+ export const TracerSymbol = Symbol.for('effect-otel/Tracer');
7
+ export const Tracer = Context.Tag(TracerSymbol);
8
+ export const makeTracer = (name) => Effect.gen(function* ($) {
9
+ const { tracerProvider } = yield* $(TracerProvider);
10
+ const tracer = yield* $(Effect.sync(() => tracerProvider.getTracer(name)));
11
+ return identity({
12
+ [TracerSymbol]: TracerSymbol,
13
+ tracer,
14
+ });
15
+ });
16
+ export const LiveTracer = Layer.scoped(Tracer, makeTracer('@effect/otel/Tracer'));
17
+ //# sourceMappingURL=Tracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tracer.js","sourceRoot":"","sources":["../../../src/effect/Otel/Tracer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAQ5D,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAS,YAAY,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrB,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAA;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAE1E,OAAO,QAAQ,CAAS;QACtB,CAAC,YAAY,CAAC,EAAE,YAAY;QAC5B,MAAM;KACP,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ export * from './Meter.js';
2
+ export * from './Tracer.js';
3
+ export * from './Span.js';
4
+ export * from './Dummy.js';
5
+ export * from './lib-tracer/BatchSpanProcessor.js';
6
+ export * from './lib-metrics/MetricsProvider.js';
7
+ export * as OTWeb from './lib-tracer/WebProvider.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,oCAAoC,CAAA;AAClD,cAAc,kCAAkC,CAAA;AAChD,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA"}
@@ -0,0 +1,9 @@
1
+ // otel
2
+ export * from './Meter.js';
3
+ export * from './Tracer.js';
4
+ export * from './Span.js';
5
+ export * from './Dummy.js';
6
+ export * from './lib-tracer/BatchSpanProcessor.js';
7
+ export * from './lib-metrics/MetricsProvider.js';
8
+ export * as OTWeb from './lib-tracer/WebProvider.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/effect/Otel/index.ts"],"names":[],"mappings":"AAAA,OAAO;AACP,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,oCAAoC,CAAA;AAClD,cAAc,kCAAkC,CAAA;AAChD,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA"}
@@ -0,0 +1,14 @@
1
+ import * as Context from '@effect/data/Context';
2
+ import * as Effect from '@effect/io/Effect';
3
+ import * as Layer from '@effect/io/Layer';
4
+ import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc';
5
+ import type { OTLPExporterNodeConfigBase } from '@opentelemetry/otlp-exporter-base';
6
+ import { PeriodicMetricsProvider } from './PeriodicMetricsProvider.js';
7
+ export interface OTLPMetricExporterConfig {
8
+ readonly _: unique symbol;
9
+ }
10
+ export declare const OTLPMetricExporterConfig: Context.Tag<OTLPMetricExporterConfig, OTLPExporterNodeConfigBase>;
11
+ export declare const makeOTLPMetricExporterConfigLayer: (config: OTLPExporterNodeConfigBase) => Layer.Layer<never, never, OTLPMetricExporterConfig>;
12
+ export declare const makeMetricExporter: Effect.Effect<import("@effect/io/Scope.js").Scope | OTLPMetricExporterConfig, never, OTLPMetricExporter>;
13
+ export declare const LivePeriodicMetricsProvider: Layer.Layer<import("./MetricsProvider.js").MetricsProvider | OTLPMetricExporterConfig, never, PeriodicMetricsProvider>;
14
+ //# sourceMappingURL=ExporterMetricsOltpGrpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExporterMetricsOltpGrpc.d.ts","sourceRoot":"","sources":["../../../../src/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAA;AAC9E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAEnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAEtE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AAED,eAAO,MAAM,wBAAwB,mEAEpC,CAAA;AAED,eAAO,MAAM,iCAAiC,WAAY,0BAA0B,wDACnC,CAAA;AAEjD,eAAO,MAAM,kBAAkB,0GAgB7B,CAAA;AAEF,eAAO,MAAM,2BAA2B,wHAA8C,CAAA"}
@@ -0,0 +1,15 @@
1
+ import * as Context from '@effect/data/Context';
2
+ import { pipe } from '@effect/data/Function';
3
+ import * as Effect from '@effect/io/Effect';
4
+ import * as Layer from '@effect/io/Layer';
5
+ import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc';
6
+ import { PeriodicMetricsProvider } from './PeriodicMetricsProvider.js';
7
+ export const OTLPMetricExporterConfig = Context.Tag('otel-metric-exporter-config');
8
+ export const makeOTLPMetricExporterConfigLayer = (config) => Layer.succeed(OTLPMetricExporterConfig, config);
9
+ export const makeMetricExporter = Effect.gen(function* (_) {
10
+ const config = yield* _(OTLPMetricExporterConfig);
11
+ const metricExporter = yield* _(pipe(Effect.sync(() => new OTLPMetricExporter(config)), Effect.acquireRelease((p) => pipe(Effect.tryPromise(() => p.shutdown()), Effect.orDie))));
12
+ return metricExporter;
13
+ });
14
+ export const LivePeriodicMetricsProvider = PeriodicMetricsProvider(makeMetricExporter);
15
+ //# sourceMappingURL=ExporterMetricsOltpGrpc.js.map