@livestore/utils 0.0.0 → 0.0.3

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 (246) hide show
  1. package/dist/.tsbuildinfo.json +1 -1
  2. package/dist/NoopTracer.d.ts +1 -0
  3. package/dist/NoopTracer.d.ts.map +1 -1
  4. package/dist/NoopTracer.js +1 -1
  5. package/dist/NoopTracer.js.map +1 -1
  6. package/dist/effect/Effect.d.ts +4 -0
  7. package/dist/effect/Effect.d.ts.map +1 -1
  8. package/dist/effect/Effect.js +8 -0
  9. package/dist/effect/Effect.js.map +1 -1
  10. package/dist/effect/Layer.d.ts +17 -3
  11. package/dist/effect/Layer.d.ts.map +1 -1
  12. package/dist/effect/Layer.js +8 -7
  13. package/dist/effect/Layer.js.map +1 -1
  14. package/dist/effect/ServiceContext.d.ts.map +1 -1
  15. package/dist/effect/ServiceContext.js +7 -7
  16. package/dist/effect/ServiceContext.js.map +1 -1
  17. package/dist/effect/index.d.ts +3 -2
  18. package/dist/effect/index.d.ts.map +1 -1
  19. package/dist/effect/index.js +3 -3
  20. package/dist/effect/index.js.map +1 -1
  21. package/package.json +12 -23
  22. package/src/NoopTracer.ts +1 -1
  23. package/src/effect/Effect.ts +18 -0
  24. package/src/effect/Layer.ts +42 -0
  25. package/src/effect/ServiceContext.ts +7 -9
  26. package/src/effect/index.ts +4 -4
  27. package/dist/binary.d.ts +0 -4
  28. package/dist/binary.d.ts.map +0 -1
  29. package/dist/binary.js +0 -23
  30. package/dist/binary.js.map +0 -1
  31. package/dist/effect/Debounce.d.ts +0 -5
  32. package/dist/effect/Debounce.d.ts.map +0 -1
  33. package/dist/effect/Debounce.js +0 -33
  34. package/dist/effect/Debounce.js.map +0 -1
  35. package/dist/effect/EndableQueue.d.ts +0 -11
  36. package/dist/effect/EndableQueue.d.ts.map +0 -1
  37. package/dist/effect/EndableQueue.js +0 -22
  38. package/dist/effect/EndableQueue.js.map +0 -1
  39. package/dist/effect/EnvVar.d.ts +0 -16
  40. package/dist/effect/EnvVar.d.ts.map +0 -1
  41. package/dist/effect/EnvVar.js +0 -21
  42. package/dist/effect/EnvVar.js.map +0 -1
  43. package/dist/effect/Gate.d.ts +0 -14
  44. package/dist/effect/Gate.d.ts.map +0 -1
  45. package/dist/effect/Gate.js +0 -17
  46. package/dist/effect/Gate.js.map +0 -1
  47. package/dist/effect/Otel/Dummy.d.ts +0 -5
  48. package/dist/effect/Otel/Dummy.d.ts.map +0 -1
  49. package/dist/effect/Otel/Dummy.js +0 -22
  50. package/dist/effect/Otel/Dummy.js.map +0 -1
  51. package/dist/effect/Otel/Meter.d.ts +0 -20
  52. package/dist/effect/Otel/Meter.d.ts.map +0 -1
  53. package/dist/effect/Otel/Meter.js +0 -76
  54. package/dist/effect/Otel/Meter.js.map +0 -1
  55. package/dist/effect/Otel/OtlpGrpc.d.ts +0 -6
  56. package/dist/effect/Otel/OtlpGrpc.d.ts.map +0 -1
  57. package/dist/effect/Otel/OtlpGrpc.js +0 -42
  58. package/dist/effect/Otel/OtlpGrpc.js.map +0 -1
  59. package/dist/effect/Otel/OtlpHttp.d.ts +0 -6
  60. package/dist/effect/Otel/OtlpHttp.d.ts.map +0 -1
  61. package/dist/effect/Otel/OtlpHttp.js +0 -42
  62. package/dist/effect/Otel/OtlpHttp.js.map +0 -1
  63. package/dist/effect/Otel/OtlpWebsocket.d.ts +0 -6
  64. package/dist/effect/Otel/OtlpWebsocket.d.ts.map +0 -1
  65. package/dist/effect/Otel/OtlpWebsocket.js +0 -42
  66. package/dist/effect/Otel/OtlpWebsocket.js.map +0 -1
  67. package/dist/effect/Otel/Span.d.ts +0 -32
  68. package/dist/effect/Otel/Span.d.ts.map +0 -1
  69. package/dist/effect/Otel/Span.js +0 -97
  70. package/dist/effect/Otel/Span.js.map +0 -1
  71. package/dist/effect/Otel/Tracer.d.ts +0 -15
  72. package/dist/effect/Otel/Tracer.d.ts.map +0 -1
  73. package/dist/effect/Otel/Tracer.js +0 -17
  74. package/dist/effect/Otel/Tracer.js.map +0 -1
  75. package/dist/effect/Otel/index.d.ts +0 -8
  76. package/dist/effect/Otel/index.d.ts.map +0 -1
  77. package/dist/effect/Otel/index.js +0 -9
  78. package/dist/effect/Otel/index.js.map +0 -1
  79. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.d.ts +0 -14
  80. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.d.ts.map +0 -1
  81. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.js +0 -15
  82. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.js.map +0 -1
  83. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.d.ts +0 -14
  84. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.d.ts.map +0 -1
  85. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.js +0 -15
  86. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.js.map +0 -1
  87. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.d.ts +0 -19
  88. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.d.ts.map +0 -1
  89. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.js +0 -17
  90. package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.js.map +0 -1
  91. package/dist/effect/Otel/lib-metrics/MetricsProvider.d.ts +0 -10
  92. package/dist/effect/Otel/lib-metrics/MetricsProvider.d.ts.map +0 -1
  93. package/dist/effect/Otel/lib-metrics/MetricsProvider.js +0 -4
  94. package/dist/effect/Otel/lib-metrics/MetricsProvider.js.map +0 -1
  95. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.d.ts +0 -16
  96. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.d.ts.map +0 -1
  97. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.js +0 -39
  98. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.js.map +0 -1
  99. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.d.ts +0 -16
  100. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.d.ts.map +0 -1
  101. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.js +0 -39
  102. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.js.map +0 -1
  103. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.d.ts +0 -16
  104. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.d.ts.map +0 -1
  105. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.js +0 -39
  106. package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.js.map +0 -1
  107. package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.d.ts +0 -17
  108. package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.d.ts.map +0 -1
  109. package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.js +0 -27
  110. package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.js.map +0 -1
  111. package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.d.ts +0 -18
  112. package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.d.ts.map +0 -1
  113. package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.js +0 -31
  114. package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.js.map +0 -1
  115. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.d.ts +0 -19
  116. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.d.ts.map +0 -1
  117. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.js +0 -36
  118. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.js.map +0 -1
  119. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.d.ts +0 -19
  120. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.d.ts.map +0 -1
  121. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.js +0 -36
  122. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.js.map +0 -1
  123. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.d.ts +0 -9
  124. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.d.ts.map +0 -1
  125. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.js +0 -29
  126. package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.js.map +0 -1
  127. package/dist/effect/Otel/lib-tracer/SimpleProcessor.d.ts +0 -19
  128. package/dist/effect/Otel/lib-tracer/SimpleProcessor.d.ts.map +0 -1
  129. package/dist/effect/Otel/lib-tracer/SimpleProcessor.js +0 -25
  130. package/dist/effect/Otel/lib-tracer/SimpleProcessor.js.map +0 -1
  131. package/dist/effect/Otel/lib-tracer/TracerProvider.d.ts +0 -10
  132. package/dist/effect/Otel/lib-tracer/TracerProvider.d.ts.map +0 -1
  133. package/dist/effect/Otel/lib-tracer/TracerProvider.js +0 -7
  134. package/dist/effect/Otel/lib-tracer/TracerProvider.js.map +0 -1
  135. package/dist/effect/Otel/lib-tracer/WebProvider.d.ts +0 -18
  136. package/dist/effect/Otel/lib-tracer/WebProvider.d.ts.map +0 -1
  137. package/dist/effect/Otel/lib-tracer/WebProvider.js +0 -25
  138. package/dist/effect/Otel/lib-tracer/WebProvider.js.map +0 -1
  139. package/dist/effect/ReadonlyArray.d.ts +0 -4
  140. package/dist/effect/ReadonlyArray.d.ts.map +0 -1
  141. package/dist/effect/ReadonlyArray.js +0 -11
  142. package/dist/effect/ReadonlyArray.js.map +0 -1
  143. package/dist/effect/RequestResolver.d.ts +0 -11
  144. package/dist/effect/RequestResolver.d.ts.map +0 -1
  145. package/dist/effect/RequestResolver.js +0 -18
  146. package/dist/effect/RequestResolver.js.map +0 -1
  147. package/dist/effect/STM.d.ts +0 -3
  148. package/dist/effect/STM.d.ts.map +0 -1
  149. package/dist/effect/STM.js +0 -3
  150. package/dist/effect/STM.js.map +0 -1
  151. package/dist/effect/Scheduler.d.ts +0 -49
  152. package/dist/effect/Scheduler.d.ts.map +0 -1
  153. package/dist/effect/Scheduler.js +0 -168
  154. package/dist/effect/Scheduler.js.map +0 -1
  155. package/dist/effect/Schema/SchemaHash.d.ts +0 -3
  156. package/dist/effect/Schema/SchemaHash.d.ts.map +0 -1
  157. package/dist/effect/Schema/SchemaHash.js +0 -15
  158. package/dist/effect/Schema/SchemaHash.js.map +0 -1
  159. package/dist/effect/Schema/SchemaHash.test.d.ts +0 -2
  160. package/dist/effect/Schema/SchemaHash.test.d.ts.map +0 -1
  161. package/dist/effect/Schema/SchemaHash.test.js +0 -13
  162. package/dist/effect/Schema/SchemaHash.test.js.map +0 -1
  163. package/dist/effect/Schema/SchemaJsonWrapper.d.ts +0 -11
  164. package/dist/effect/Schema/SchemaJsonWrapper.d.ts.map +0 -1
  165. package/dist/effect/Schema/SchemaJsonWrapper.js +0 -38
  166. package/dist/effect/Schema/SchemaJsonWrapper.js.map +0 -1
  167. package/dist/effect/Schema/SchemaJsonWrapper.test.d.ts +0 -2
  168. package/dist/effect/Schema/SchemaJsonWrapper.test.d.ts.map +0 -1
  169. package/dist/effect/Schema/SchemaJsonWrapper.test.js +0 -42
  170. package/dist/effect/Schema/SchemaJsonWrapper.test.js.map +0 -1
  171. package/dist/effect/Schema/index.d.ts +0 -15
  172. package/dist/effect/Schema/index.d.ts.map +0 -1
  173. package/dist/effect/Schema/index.js +0 -14
  174. package/dist/effect/Schema/index.js.map +0 -1
  175. package/dist/effect/SmartQueue.d.ts +0 -38
  176. package/dist/effect/SmartQueue.d.ts.map +0 -1
  177. package/dist/effect/SmartQueue.js +0 -123
  178. package/dist/effect/SmartQueue.js.map +0 -1
  179. package/dist/effect/Stream/chainSwitch.d.ts +0 -3
  180. package/dist/effect/Stream/chainSwitch.d.ts.map +0 -1
  181. package/dist/effect/Stream/chainSwitch.js +0 -48
  182. package/dist/effect/Stream/chainSwitch.js.map +0 -1
  183. package/dist/effect/Stream/index.d.ts +0 -37
  184. package/dist/effect/Stream/index.d.ts.map +0 -1
  185. package/dist/effect/Stream/index.js +0 -82
  186. package/dist/effect/Stream/index.js.map +0 -1
  187. package/dist/effect/SubscriptionRef.d.ts +0 -10
  188. package/dist/effect/SubscriptionRef.d.ts.map +0 -1
  189. package/dist/effect/SubscriptionRef.js +0 -8
  190. package/dist/effect/SubscriptionRef.js.map +0 -1
  191. package/dist/effect/TimeoutGate.d.ts +0 -13
  192. package/dist/effect/TimeoutGate.d.ts.map +0 -1
  193. package/dist/effect/TimeoutGate.js +0 -41
  194. package/dist/effect/TimeoutGate.js.map +0 -1
  195. package/dist/effect/WebCrypto.d.ts +0 -18
  196. package/dist/effect/WebCrypto.d.ts.map +0 -1
  197. package/dist/effect/WebCrypto.js +0 -56
  198. package/dist/effect/WebCrypto.js.map +0 -1
  199. package/dist/effect/WebLock.d.ts +0 -5
  200. package/dist/effect/WebLock.d.ts.map +0 -1
  201. package/dist/effect/WebLock.js +0 -20
  202. package/dist/effect/WebLock.js.map +0 -1
  203. package/dist/effect/browser.d.ts +0 -19
  204. package/dist/effect/browser.d.ts.map +0 -1
  205. package/dist/effect/browser.js +0 -82
  206. package/dist/effect/browser.js.map +0 -1
  207. package/dist/effect/fetch.d.ts +0 -89
  208. package/dist/effect/fetch.d.ts.map +0 -1
  209. package/dist/effect/fetch.js +0 -142
  210. package/dist/effect/fetch.js.map +0 -1
  211. package/dist/single-item.d.ts +0 -8
  212. package/dist/single-item.d.ts.map +0 -1
  213. package/dist/single-item.js +0 -9
  214. package/dist/single-item.js.map +0 -1
  215. package/dist/types/index.d.ts +0 -2
  216. package/dist/types/index.d.ts.map +0 -1
  217. package/dist/types/index.js +0 -2
  218. package/dist/types/index.js.map +0 -1
  219. package/dist/types/json.d.ts +0 -27
  220. package/dist/types/json.d.ts.map +0 -1
  221. package/dist/types/json.js +0 -2
  222. package/dist/types/json.js.map +0 -1
  223. package/src/effect/Otel/Dummy.ts +0 -32
  224. package/src/effect/Otel/Meter.ts +0 -145
  225. package/src/effect/Otel/OtlpGrpc.ts +0 -75
  226. package/src/effect/Otel/OtlpHttp.ts +0 -75
  227. package/src/effect/Otel/OtlpWebsocket.ts +0 -75
  228. package/src/effect/Otel/Span.ts +0 -222
  229. package/src/effect/Otel/Tracer.ts +0 -30
  230. package/src/effect/Otel/index.ts +0 -8
  231. package/src/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.ts +0 -39
  232. package/src/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.ts +0 -39
  233. package/src/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.ts +0 -47
  234. package/src/effect/Otel/lib-metrics/MetricsProvider.ts +0 -12
  235. package/src/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.ts +0 -77
  236. package/src/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.ts +0 -77
  237. package/src/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.ts +0 -80
  238. package/src/effect/Otel/lib-metrics/PeriodicMetricsProvider.ts +0 -55
  239. package/src/effect/Otel/lib-tracer/BatchSpanProcessor.ts +0 -58
  240. package/src/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.ts +0 -64
  241. package/src/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.ts +0 -64
  242. package/src/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.ts +0 -38
  243. package/src/effect/Otel/lib-tracer/README.md +0 -1
  244. package/src/effect/Otel/lib-tracer/SimpleProcessor.ts +0 -46
  245. package/src/effect/Otel/lib-tracer/TracerProvider.ts +0 -16
  246. package/src/effect/Otel/lib-tracer/WebProvider.ts +0 -48
@@ -1,22 +0,0 @@
1
- import * as Chunk from '@effect/data/Chunk';
2
- import * as Option from '@effect/data/Option';
3
- import * as Effect from '@effect/io/Effect';
4
- import * as Queue from '@effect/io/Queue';
5
- import * as Stream from '@effect/stream/Stream';
6
- export const EndItem = Symbol.for('@livestore/utils/effect/EnvVarEndableQueue/EndItem');
7
- export const make = () => Queue.unbounded();
8
- export const end = (queue) => Queue.offer(queue, EndItem);
9
- export const createStream = (queue, maxChunkSize = Stream.DefaultChunkSize) => {
10
- return Stream.repeatEffectChunkOption(Effect.gen(function* ($) {
11
- const items = yield* $(Queue.takeBetween(queue, 1, maxChunkSize));
12
- const nonEndItems = Chunk.filter(items, (item) => item !== EndItem);
13
- if (Chunk.isEmpty(nonEndItems)) {
14
- return yield* $(Effect.fail(Option.none()));
15
- }
16
- if (nonEndItems.length !== items.length) {
17
- yield* $(Queue.offer(queue, EndItem));
18
- }
19
- return nonEndItems;
20
- }));
21
- };
22
- //# sourceMappingURL=EndableQueue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EndableQueue.js","sourceRoot":"","sources":["../../src/effect/EndableQueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAE/C,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAA;AAMvF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAU,EAAE,CAAC,KAAK,CAAC,SAAS,EAA2B,CAAA;AAE3E,MAAM,CAAC,MAAM,GAAG,GAAG,CAAQ,KAA0B,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAErF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAA0B,EAC1B,eAAuB,MAAM,CAAC,gBAAgB,EACV,EAAE;IACtC,OAAO,MAAM,CAAC,uBAAuB,CACnC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAA;QAEjE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAA;QAEnE,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;SAC5C;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YACvC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;SACtC;QAED,OAAO,WAAiC,CAAA;IAC1C,CAAC,CAAC,CACH,CAAA;AACH,CAAC,CAAA"}
@@ -1,16 +0,0 @@
1
- import * as Context from '@effect/data/Context';
2
- import * as Effect from '@effect/io/Effect';
3
- declare const EnvVarSymbol: unique symbol;
4
- type EnvVarSymbol = typeof EnvVarSymbol;
5
- export declare class EnvVarImpl<Name> {
6
- readonly envVarName: Name;
7
- readonly value: string;
8
- readonly [EnvVarSymbol]: symbol;
9
- constructor(envVarName: Name, value: string);
10
- }
11
- export declare const provideEnvVar: <Name extends string>(envVarName: Name) => <R1, E1, A1>(ma: Effect.Effect<R1, E1, A1>) => Effect.Effect<Exclude<R1, EnvVar<Name>>, E1, A1>;
12
- export interface EnvVar<Name extends string> extends EnvVarImpl<Name> {
13
- }
14
- export declare const EnvVarFor: <Name extends string>(envVarName: Name) => Context.Tag<EnvVar<Name>, EnvVar<Name>>;
15
- export {};
16
- //# sourceMappingURL=EnvVar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvVar.d.ts","sourceRoot":"","sources":["../../src/effect/EnvVar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,QAAA,MAAM,YAAY,eAA+C,CAAA;AACjE,KAAK,YAAY,GAAG,OAAO,YAAY,CAAA;AAEvC,qBAAa,UAAU,CAAC,IAAI;IAGxB,QAAQ,CAAC,UAAU,EAAE,IAAI;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAHxB,QAAQ,CAAC,CAAC,YAAY,CAAC,SAAe;gBAE3B,UAAU,EAAE,IAAI,EAChB,KAAK,EAAE,MAAM;CAEzB;AAED,eAAO,MAAM,aAAa,4IAQzB,CAAA;AAED,MAAM,WAAW,MAAM,CAAC,IAAI,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,IAAI,CAAC;CAAG;AAExE,eAAO,MAAM,SAAS,oFACsC,CAAA"}
@@ -1,21 +0,0 @@
1
- var _a;
2
- import * as Context from '@effect/data/Context';
3
- import * as Effect from '@effect/io/Effect';
4
- const EnvVarSymbol = Symbol.for('@livestore/utils/effect/EnvVar');
5
- export class EnvVarImpl {
6
- constructor(envVarName, value) {
7
- this.envVarName = envVarName;
8
- this.value = value;
9
- this[_a] = EnvVarSymbol;
10
- }
11
- }
12
- _a = EnvVarSymbol;
13
- export const provideEnvVar = (envVarName) => {
14
- const value = process?.env?.[envVarName];
15
- if (value === undefined) {
16
- return () => Effect.die(new Error(`Environment variable not found: "${envVarName}"`));
17
- }
18
- return Effect.provideService(EnvVarFor(envVarName), new EnvVarImpl(envVarName, value));
19
- };
20
- export const EnvVarFor = (envVarName) => Context.Tag(Symbol.for(`env/${envVarName}`));
21
- //# sourceMappingURL=EnvVar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvVar.js","sourceRoot":"","sources":["../../src/effect/EnvVar.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;AAGjE,MAAM,OAAO,UAAU;IAErB,YACW,UAAgB,EAChB,KAAa;QADb,eAAU,GAAV,UAAU,CAAM;QAChB,UAAK,GAAL,KAAK,CAAQ;QAHf,QAAc,GAAG,YAAY,CAAA;IAInC,CAAC;CACL;KALW,YAAY;AAOxB,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,UAAgB,EACmF,EAAE;IACrG,MAAM,KAAK,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAA;IACxC,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,oCAAoC,UAAU,GAAG,CAAC,CAAC,CAAA;KACtF;IACD,OAAO,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;AACxF,CAAC,CAAA;AAID,MAAM,CAAC,MAAM,SAAS,GAAG,CAAsB,UAAgB,EAA2C,EAAE,CAC1G,OAAO,CAAC,GAAG,CAAe,MAAM,CAAC,GAAG,CAAC,OAAO,UAAU,EAAE,CAAC,CAAC,CAAA"}
@@ -1,14 +0,0 @@
1
- import * as Effect from '@effect/io/Effect';
2
- import * as TRef from '@effect/stm/TRef';
3
- export declare class Gate {
4
- private readonly ref;
5
- constructor(ref: TRef.TRef<boolean>);
6
- open: Effect.Effect<never, never, boolean>;
7
- close: Effect.Effect<never, never, boolean>;
8
- waitForOpen: Effect.Effect<never, never, void>;
9
- waitForOpenAndThenClose: Effect.Effect<never, never, void>;
10
- waitForClose: Effect.Effect<never, never, void>;
11
- runGated: <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>;
12
- }
13
- export declare const makeGate: (initiallyOpen: boolean) => Effect.Effect<never, never, Gate>;
14
- //# sourceMappingURL=Gate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Gate.d.ts","sourceRoot":"","sources":["../../src/effect/Gate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AAExC,qBAAa,IAAI;IACH,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAEpD,IAAI,uCAAmD;IAEvD,KAAK,uCAAoD;IAEzD,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAI7C;IAED,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAKzD;IAED,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAI9C;IAED,QAAQ,sEAKL;CACJ;AAED,eAAO,MAAM,QAAQ,kBAAmB,OAAO,KAAG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAK/E,CAAA"}
@@ -1,17 +0,0 @@
1
- import { pipe } from '@effect/data/Function';
2
- import * as Effect from '@effect/io/Effect';
3
- import * as STM from '@effect/stm/STM';
4
- import * as TRef from '@effect/stm/TRef';
5
- export class Gate {
6
- constructor(ref) {
7
- this.ref = ref;
8
- this.open = pipe(TRef.getAndSet(this.ref, true), STM.commit);
9
- this.close = pipe(TRef.getAndSet(this.ref, false), STM.commit);
10
- this.waitForOpen = pipe(TRef.get(this.ref), STM.flatMap((isOpen) => STM.check(() => isOpen)), STM.commit);
11
- this.waitForOpenAndThenClose = pipe(TRef.get(this.ref), STM.flatMap((isOpen) => STM.check(() => isOpen)), STM.flatMap(() => TRef.set(this.ref, false)), STM.commit);
12
- this.waitForClose = pipe(TRef.get(this.ref), STM.flatMap((isOpen) => STM.check(() => !isOpen)), STM.commit);
13
- this.runGated = (effect) => pipe(this.waitForOpenAndThenClose, Effect.flatMap(() => effect), Effect.tap(() => this.open));
14
- }
15
- }
16
- export const makeGate = (initiallyOpen) => pipe(TRef.make(initiallyOpen), STM.map((ref) => new Gate(ref)), STM.commit);
17
- //# sourceMappingURL=Gate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Gate.js","sourceRoot":"","sources":["../../src/effect/Gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AAExC,MAAM,OAAO,IAAI;IACf,YAA6B,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;QAEpD,SAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QAEvD,UAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QAEzD,gBAAW,GAAsC,IAAI,CACnD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAClB,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAChD,GAAG,CAAC,MAAM,CACX,CAAA;QAED,4BAAuB,GAAsC,IAAI,CAC/D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAClB,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAChD,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAC5C,GAAG,CAAC,MAAM,CACX,CAAA;QAED,iBAAY,GAAsC,IAAI,CACpD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAClB,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EACjD,GAAG,CAAC,MAAM,CACX,CAAA;QAED,aAAQ,GAAG,CAAU,MAA8B,EAA0B,EAAE,CAC7E,IAAI,CACF,IAAI,CAAC,uBAAuB,EAC5B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5B,CAAA;IA9BoD,CAAC;CA+BzD;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,aAAsB,EAAqC,EAAE,CACpF,IAAI,CACF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EACxB,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAC/B,GAAG,CAAC,MAAM,CACX,CAAA"}
@@ -1,5 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,22 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,20 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,76 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"Meter.js","sourceRoot":"","sources":["../../../src/effect/Otel/Meter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,42 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,6 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,42 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,6 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,42 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,32 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,97 +0,0 @@
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