@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,48 +0,0 @@
1
- import { pipe } from '@effect/data/Function';
2
- import * as Option from '@effect/data/Option';
3
- import * as Cause from '@effect/io/Cause';
4
- import * as Effect from '@effect/io/Effect';
5
- import * as Exit from '@effect/io/Exit';
6
- import * as Fiber from '@effect/io/Fiber';
7
- import * as Queue from '@effect/io/Queue';
8
- import * as Stream from '@effect/stream/Stream';
9
- export const chainSwitch = (f) => (self) => {
10
- return Stream.unwrapScoped(Effect.gen(function* ($) {
11
- const outputQueue = yield* $(Queue.bounded(1));
12
- const inputQueue = yield* $(Queue.bounded(1));
13
- yield* $(Effect.forkScoped(drainInto(self, inputQueue, { skip: false, propagate: true })));
14
- let currentFiber;
15
- let currentRef = { skip: false, propagate: false };
16
- yield* $(pipe(Effect.gen(function* ($) {
17
- const input = yield* $(Effect.flatten(Queue.take(inputQueue)));
18
- const latest = f(input);
19
- if (currentFiber && currentRef) {
20
- currentRef.skip = true;
21
- yield* $(Fiber.interrupt(currentFiber));
22
- }
23
- currentRef = { skip: false, propagate: false };
24
- currentFiber = (yield* $(Effect.forkDaemon(drainInto(latest, outputQueue, currentRef))));
25
- }), Effect.matchCauseEffect({
26
- onFailure: (cause) => {
27
- const maybeFailure = Cause.failureOrCause(cause);
28
- if (maybeFailure._tag === 'Left' && currentFiber && maybeFailure.left._tag === 'None') {
29
- currentRef.propagate = true;
30
- const exit = currentFiber.unsafePoll();
31
- if (exit) {
32
- return Queue.offer(outputQueue, Exit.fail(Option.none()));
33
- }
34
- }
35
- return Queue.offer(outputQueue, Exit.failCause(cause));
36
- },
37
- onSuccess: () => Effect.unit,
38
- }), Effect.forever, Effect.forkScoped));
39
- const pull = Effect.flatten(Queue.take(outputQueue));
40
- const stream = Stream.repeatEffectOption(pull);
41
- return stream;
42
- }));
43
- };
44
- const drainInto = (self, queue, ref) => pipe(self, Stream.runForEach((a) => (ref.skip ? Effect.unit : Queue.offer(queue, Exit.succeed(a)))), Effect.mapError((e) => Option.some(e)), Effect.matchCauseEffect({
45
- onFailure: (cause) => (ref.skip ? Effect.unit : Queue.offer(queue, Exit.failCause(cause))),
46
- onSuccess: () => (ref.propagate ? Queue.offer(queue, Exit.fail(Option.none())) : Effect.unit),
47
- }));
48
- //# sourceMappingURL=chainSwitch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chainSwitch.js","sourceRoot":"","sources":["../../../src/effect/Stream/chainSwitch.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- import * as Chunk from '@effect/data/Chunk';
2
- import * as Context from '@effect/data/Context';
3
- import * as Option from '@effect/data/Option';
4
- import * as Predicate from '@effect/data/Predicate';
5
- import * as Effect from '@effect/io/Effect';
6
- import * as Stream from '@effect/stream/Stream';
7
- import type { ReadonlyArray } from '../index.js';
8
- export * from '@effect/stream/Stream';
9
- export * from './chainSwitch.js';
10
- export declare const filterNot: <A>(predicate: Predicate.Predicate<A>) => <R, E>(stream: Stream.Stream<R, E, A>) => Stream.Stream<R, E, A>;
11
- export declare const tapSync: <A>(tapFn: (a: A) => unknown) => <R, E>(stream: Stream.Stream<R, E, A>) => Stream.Stream<R, E, A>;
12
- export declare const skipRepeated: <A>(isEqual?: (prevEl: A, newEl: A) => boolean) => <R, E>(stream: Stream.Stream<R, E, A>) => Stream.Stream<R, E, A>;
13
- export declare const skipRepeated_: <R, E, A>(stream: Stream.Stream<R, E, A>, isEqual?: (prevEl: A, newEl: A) => boolean) => Stream.Stream<R, E, A>;
14
- export declare const aggregateLastValue: <R, E, A>(stream: Stream.Stream<R, E, A>) => Stream.Stream<R, E, A>;
15
- export declare const mapEffectSwitch: <R1, E1, A, B>(mapEffect: (a: A) => Effect.Effect<R1, E1, B>) => <R, E>(self: Stream.Stream<R, E, A>) => Stream.Stream<R1 | R, E1 | E, B>;
16
- export declare const tapChunk: <R1, E1, A, Z>(f: (a: Chunk.Chunk<A>) => Effect.Effect<R1, E1, Z>) => <R, E>(self: Stream.Stream<R, E, A>) => Stream.Stream<R1 | R, E1 | E, A>;
17
- export declare const tapChunkArray: <R1, E1, A, Z>(f: (a: readonly A[]) => Effect.Effect<R1, E1, Z>) => <R, E>(self: Stream.Stream<R, E, A>) => Stream.Stream<R1 | R, E1 | E, A>;
18
- export declare const runCollectArray: <R, E, A>(stream: Stream.Stream<R, E, A>) => Effect.Effect<R, E, readonly A[]>;
19
- export declare const tapCauseLogPretty: <R, E, A>(stream: Stream.Stream<R, E, A>) => Stream.Stream<R, E, A>;
20
- export declare const runHeadUnsafe: <R, E, A>(stream: Stream.Stream<R, E, A>) => Effect.Effect<R, E, A>;
21
- export declare const provideSomeContext: <R0>(ctx: Context.Context<R0>) => <R, E, A>(self: Stream.Stream<R, E, A>) => Stream.Stream<Exclude<R, R0>, E, A>;
22
- export declare const suspendUnify: <S extends Stream.Stream<any, any, any>>(s: () => S) => () => [S] extends [Stream.Stream<infer R, infer E, infer A>] ? Stream.Stream<R, E, A> : never;
23
- export declare const unify: <S extends Stream.Stream<any, any, any>>(f: () => S) => () => [S] extends [Stream.Stream<infer R, infer E, infer A>] ? Stream.Stream<R, E, A> : never;
24
- /**
25
- * Keeps none of the errors, and terminates the fiber with them, using
26
- * the specified function to convert the `E` into a `unknown`.
27
- */
28
- export declare const tapLast: <R1, A>(f: (a: Option.Option<A>) => Effect.Effect<R1, never, unknown>) => <R, E>(stream: Stream.Stream<R, E, A>) => Stream.Stream<R1 | R, E, A>;
29
- export declare const tapLastSome: <R1, A>(f: (a: A) => Effect.Effect<R1, never, unknown>) => <R, E>(stream: Stream.Stream<R, E, A>) => Stream.Stream<R1 | R, E, A>;
30
- export declare const tapCollect: <R1, E1, A>(f: (a: readonly A[]) => Effect.Effect<R1, E1, unknown>) => <R, E>(stream: Stream.Stream<R, E, A>) => Stream.Stream<R1 | R, E, A>;
31
- export declare const zipWithLatestArray_: <R, E, A, B>(streams: Stream.Stream<R, E, A>[], f: (a: A[]) => B) => Stream.Stream<R, E, B>;
32
- /** Combination of `Stream.chunks` + `Stream.map((arr) => ...)` */
33
- export declare const mapChunksAsArray: {
34
- <A, B>(f: (arr: ReadonlyArray<A>) => B): <R, E>(self: Stream.Stream<R, E, A>) => Stream.Stream<R, E, B>;
35
- <R, E, A, B>(self: Stream.Stream<R, E, A>, f: (arr: ReadonlyArray<A>) => B): Stream.Stream<R, E, B>;
36
- };
37
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/effect/Stream/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAA;AAEnD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAG3C,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAG/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAShC,eAAO,MAAM,SAAS,4GAG6B,CAAA;AAEnD,eAAO,MAAM,OAAO,uBACG,OAAO,qEAE4B,CAAA;AAI1D,eAAO,MAAM,YAAY,yCACe,OAAO,qEAEb,CAAA;AAElC,eAAO,MAAM,aAAa,+EAEU,OAAO,2BAyBxC,CAAA;AAGH,eAAO,MAAM,kBAAkB,qEAM5B,CAAA;AAIH,eAAO,MAAM,eAAe,2IAG4B,CAAA;AAExD,eAAO,MAAM,QAAQ,gJAQhB,CAAA;AAEL,eAAO,MAAM,aAAa,8IAQrB,CAAA;AAEL,eAAO,MAAM,eAAe,gFACwC,CAAA;AAEpE,eAAO,MAAM,iBAAiB,qEAO3B,CAAA;AAEH,eAAO,MAAM,aAAa,qEACmC,CAAA;AAE7D,eAAO,MAAM,kBAAkB,kHAK1B,CAAA;AAEL,eAAO,MAAM,YAAY,uJAMf,CAAA;AAEV,eAAO,MAAM,KAAK,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACzD,CAAC,EAAE,MAAM,CAAC,KACP,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAuB,CAAA;AAEpH;;;GAGG;AAEH,eAAO,MAAM,OAAO,iJAed,CAAA;AAEN,eAAO,MAAM,WAAW,kIAMnB,CAAA;AAEL,eAAO,MAAM,UAAU,8IAkBjB,CAAA;AAEN,eAAO,MAAM,mBAAmB,6FAc/B,CAAA;AAED,kEAAkE;AAClE,eAAO,MAAM,gBAAgB,EAAE;IAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACvG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAYpG,CAAA"}
@@ -1,82 +0,0 @@
1
- import * as Chunk from '@effect/data/Chunk';
2
- import * as Context from '@effect/data/Context';
3
- import { dual, identity, pipe } from '@effect/data/Function';
4
- import * as Option from '@effect/data/Option';
5
- import * as Predicate from '@effect/data/Predicate';
6
- import * as Cause from '@effect/io/Cause';
7
- import * as Effect from '@effect/io/Effect';
8
- import * as Ref from '@effect/io/Ref';
9
- import * as Sink from '@effect/stream/Sink';
10
- import * as Stream from '@effect/stream/Stream';
11
- import { logError } from '../Effect.js';
12
- import { chainSwitch } from './chainSwitch.js';
13
- export * from '@effect/stream/Stream';
14
- export * from './chainSwitch.js';
15
- // export const filterNot: {
16
- // <A, B extends A>(refinement: Predicate.Refinement<A, B>): <R, E>(self: Stream.Stream<R, E, A>) => Stream.Stream<R, E, B>;
17
- // <A>(predicate: Predicate.Predicate<A>): <R, E>(self: Stream.Stream<R, E, A>) => Stream.Stream<R, E, A>;
18
- // <R, E, A>(self: Stream.Stream<R, E, A>, predicate: Predicate.Predicate<A>): Stream.Stream<R, E, A>;
19
- // <R, E, A, B extends A>(self: Stream.Stream<R, E, A>, refinement: Predicate.Refinement<A, B>): Stream.Stream<R, E, B>;
20
- // } =
21
- // TODO provide full API like above
22
- export const filterNot = (predicate) => (stream) => Stream.filter(stream, Predicate.not(predicate));
23
- export const tapSync = (tapFn) => (stream) => Stream.tap(stream, (a) => Effect.sync(() => tapFn(a)));
24
- const isIdentity = (a1, a2) => a1 === a2;
25
- export const skipRepeated = (isEqual = isIdentity) => (stream) => skipRepeated_(stream, isEqual);
26
- export const skipRepeated_ = (stream, isEqual = isIdentity) => pipe(Ref.make(Option.none()), Stream.fromEffect, Stream.flatMap((ref) => pipe(stream, Stream.filterEffect((el) => pipe(Ref.get(ref), Effect.flatMap((prevEl) => {
27
- if (prevEl._tag === 'None' || isEqual(prevEl.value, el) === false) {
28
- return pipe(Ref.set(ref, Option.some(el)), Effect.map(() => true));
29
- }
30
- else {
31
- return Effect.succeed(false);
32
- }
33
- }))))));
34
- // TODO this currently seems to cause an infinite loop - should be fixed with the next release of Effect
35
- export const aggregateLastValue = (stream) => pipe(stream,
36
- // S.aggregateAsync(Sink.last<E, A>()),
37
- Stream.aggregate(Sink.foldLeft(Option.none(), (_, in_) => Option.some(in_))), Stream.filterMap(identity));
38
- // export const chainSwitch = <R1, E1, A, B>(f: (a: A) => S.Stream<R1, E1, B>) => S.flatMapParSwitch(f, 1, 1)
39
- export const mapEffectSwitch = (mapEffect) => chainSwitch((a) => Stream.fromEffect(mapEffect(a)));
40
- export const tapChunk = (f) => (self) => Stream.mapChunksEffect(self, (chunks) => pipe(f(chunks), Effect.map(() => chunks)));
41
- export const tapChunkArray = (f) => (self) => Stream.mapChunksEffect(self, (chunks) => pipe(f(Chunk.toReadonlyArray(chunks)), Effect.map(() => chunks)));
42
- export const runCollectArray = (stream) => pipe(stream, Stream.runCollect, Effect.map(Chunk.toReadonlyArray));
43
- export const tapCauseLogPretty = (stream) => Stream.catchAllCause(stream, (cause) => pipe(logError(Cause.pretty(cause)), Effect.flatMap(() => Effect.failCause(cause)), Stream.fromEffect));
44
- export const runHeadUnsafe = (stream) => pipe(stream, Stream.runHead, Effect.map(Option.getOrThrow));
45
- export const provideSomeContext = (ctx) => (self) => Stream.contramapContext(self, (parentCtx) => Context.merge(parentCtx, ctx));
46
- export const suspendUnify = (s) => pipe(Stream.succeed(0), Stream.flatMap(() => s()));
47
- export const unify = identity;
48
- /**
49
- * Keeps none of the errors, and terminates the fiber with them, using
50
- * the specified function to convert the `E` into a `unknown`.
51
- */
52
- export const tapLast = (f) => (stream) => Stream.suspend(() => {
53
- let last = Option.none();
54
- return pipe(stream, Stream.tap((a) => Effect.sync(() => {
55
- last = Option.some(a);
56
- })), Stream.ensuring(Effect.suspend(() => f(last))));
57
- });
58
- export const tapLastSome = (f) => (stream) => pipe(stream, tapLast((o) => Effect.suspend(() => (o._tag === 'Some' ? f(o.value) : Effect.unit))));
59
- export const tapCollect = (f) =>
60
- // TODO
61
- // <R, E>(stream: Stream.Stream<R, E, A>): Stream.Stream<R | R1, E | E1, A> =>
62
- (stream) => Stream.suspend(() => {
63
- const collected = [];
64
- return pipe(stream, Stream.tap((a) => Effect.sync(() => {
65
- collected.push(a);
66
- })),
67
- // TODO remove `Effect.orDie`
68
- Stream.ensuring(Effect.suspend(() => Effect.orDie(f(collected)))));
69
- });
70
- export const zipWithLatestArray_ = (streams, f) => {
71
- if (streams.length === 0)
72
- return Stream.empty;
73
- let intermediateStream = Stream.make([]);
74
- for (let i = 0; i < streams.length; i++) {
75
- const nextStream = streams[i];
76
- intermediateStream = Stream.zipLatestWith(intermediateStream, nextStream, (as, a) => [...as, a]);
77
- }
78
- return Stream.map(intermediateStream, f);
79
- };
80
- /** Combination of `Stream.chunks` + `Stream.map((arr) => ...)` */
81
- export const mapChunksAsArray = dual(2, (self, f) => pipe(self, Stream.chunks, Stream.map((chunk) => f(Chunk.toReadonlyArray(chunk)))));
82
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/effect/Stream/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import * as Effect from '@effect/io/Effect';
2
- import * as Stream from '@effect/stream/Stream';
3
- import * as SubscriptionRef from '@effect/stream/SubscriptionRef';
4
- export declare const getAndUpdateSync: {
5
- <A>(f: (a: A) => A): (sref: SubscriptionRef.SubscriptionRef<A>) => Effect.Effect<never, never, A>;
6
- <A>(sref: SubscriptionRef.SubscriptionRef<A>, f: (a: A) => A): Effect.Effect<never, never, A>;
7
- };
8
- export declare const changeStreamIncludingCurrent: <A>(sref: SubscriptionRef.SubscriptionRef<A>) => Stream.Stream<never, never, A>;
9
- export * from '@effect/stream/SubscriptionRef';
10
- //# sourceMappingURL=SubscriptionRef.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubscriptionRef.d.ts","sourceRoot":"","sources":["../../src/effect/SubscriptionRef.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAC/C,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAA;AAEjE,eAAO,MAAM,gBAAgB,EAAE;IAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACjG,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;CAIJ,CAAA;AAE3F,eAAO,MAAM,4BAA4B,iFACwC,CAAA;AAEjF,cAAc,gCAAgC,CAAA"}
@@ -1,8 +0,0 @@
1
- import { dual, pipe } from '@effect/data/Function';
2
- import * as Effect from '@effect/io/Effect';
3
- import * as Stream from '@effect/stream/Stream';
4
- import * as SubscriptionRef from '@effect/stream/SubscriptionRef';
5
- export const getAndUpdateSync = dual(2, (sref, f) => SubscriptionRef.getAndUpdateEffect(sref, (a) => Effect.sync(() => f(a))));
6
- export const changeStreamIncludingCurrent = (sref) => pipe(Stream.fromEffect(SubscriptionRef.get(sref)), Stream.concat(sref.changes));
7
- export * from '@effect/stream/SubscriptionRef';
8
- //# sourceMappingURL=SubscriptionRef.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubscriptionRef.js","sourceRoot":"","sources":["../../src/effect/SubscriptionRef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAC/C,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAA;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAGzB,IAAI,CAGN,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3F,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAI,IAAwC,EAAE,EAAE,CAC1F,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;AAEjF,cAAc,gCAAgC,CAAA"}
@@ -1,13 +0,0 @@
1
- import * as Option from '@effect/data/Option';
2
- import * as Effect from '@effect/io/Effect';
3
- import * as Gate from './Gate.js';
4
- import * as Otel from './Otel/index.js';
5
- type TimeoutInMs = number;
6
- export declare class TimeoutGate {
7
- readonly gate: Gate.Gate;
8
- private constructor();
9
- static make: Effect.Effect<never, never, TimeoutGate>;
10
- runWhenOpen: <E>(shouldClose: (error: E) => Option.Option<TimeoutInMs>) => <R, A>(eff: Effect.Effect<R, E, A>) => Effect.Effect<Otel.Meter | Otel.Tracer | R, E, A>;
11
- }
12
- export {};
13
- //# sourceMappingURL=TimeoutGate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimeoutGate.d.ts","sourceRoot":"","sources":["../../src/effect/TimeoutGate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AAEvC,KAAK,WAAW,GAAG,MAAM,CAAA;AAEzB,qBAAa,WAAW;IACF,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI;IAA5C,OAAO;IAEP,MAAM,CAAC,IAAI,2CAGV;IAED,WAAW,iCACsB,aAAa,CAAC,WAAW,CAAC,8FA2CxD;CACJ"}
@@ -1,41 +0,0 @@
1
- import * as Duration from '@effect/data/Duration';
2
- import { pipe } from '@effect/data/Function';
3
- import * as Option from '@effect/data/Option';
4
- import * as Effect from '@effect/io/Effect';
5
- import * as Gate from './Gate.js';
6
- import * as Otel from './Otel/index.js';
7
- export class TimeoutGate {
8
- constructor(gate) {
9
- this.gate = gate;
10
- this.runWhenOpen = (shouldClose) => (eff) => {
11
- const x = pipe(this.gate.waitForOpen, Effect.flatMap(() => pipe(eff, Otel.withSpan('runIfOpen-eff'))), Effect.catchAll((error) => {
12
- const timeoutOption = shouldClose(error);
13
- if (Option.isSome(timeoutOption)) {
14
- const timeoutMs = timeoutOption.value;
15
- return pipe(this.gate.close, Effect.flatMap((previousIsOpen) => {
16
- if (previousIsOpen) {
17
- // if the gate was open before and now should be closed, this means
18
- // the "current eff" was the trigger of the gate closing
19
- return pipe(
20
- // Effect.log(`Closing timeout gate for ${timeoutMs}ms`),
21
- // Effect.flatMap(() =>
22
- // pipe(
23
- Effect.acquireUseRelease(pipe(Effect.unit, Otel.upDownCounter('timeoutgate_timeoutms', timeoutMs)), () => Effect.sleep(Duration.millis(timeoutMs)), () => pipe(Effect.unit, Otel.upDownCounter('timeoutgate_timeoutms', -timeoutMs))), Otel.withSpan('runIfOpen-sleep', { attributes: { timeoutMs } }),
24
- // ),
25
- // ),
26
- Effect.flatMap(() => this.gate.open), Effect.flatMap(() => this.runWhenOpen(shouldClose)(eff)));
27
- }
28
- // retry once the gate is open
29
- return this.runWhenOpen(shouldClose)(eff);
30
- }));
31
- }
32
- else {
33
- return Effect.fail(error);
34
- }
35
- }), Otel.withSpan('runIfOpen'));
36
- return x;
37
- };
38
- }
39
- }
40
- TimeoutGate.make = pipe(Gate.makeGate(true), Effect.map((gate) => new TimeoutGate(gate)));
41
- //# sourceMappingURL=TimeoutGate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimeoutGate.js","sourceRoot":"","sources":["../../src/effect/TimeoutGate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AAIvC,MAAM,OAAO,WAAW;IACtB,YAA6B,IAAe;QAAf,SAAI,GAAJ,IAAI,CAAW;QAO5C,gBAAW,GACT,CAAI,WAAqD,EAAE,EAAE,CAC7D,CAAO,GAA2B,EAAqD,EAAE;YACvF,MAAM,CAAC,GAAG,IAAI,CACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EACrB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAC/D,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;gBACxC,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;oBAChC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAA;oBACrC,OAAO,IAAI,CACT,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;wBAChC,IAAI,cAAc,EAAE;4BAClB,mEAAmE;4BACnE,wDAAwD;4BACxD,OAAO,IAAI;4BACT,yDAAyD;4BACzD,uBAAuB;4BACvB,UAAU;4BACV,MAAM,CAAC,iBAAiB,CACtB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC,EACzE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAC9C,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAC,SAAS,CAAC,CAAC,CACjF,EACD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;4BAC/D,OAAO;4BACP,KAAK;4BACL,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EACpC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CACzD,CAAA;yBACF;wBAED,8BAA8B;wBAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAA;oBAC3C,CAAC,CAAC,CACH,CAAA;iBACF;qBAAM;oBACL,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;iBAC1B;YACH,CAAC,CAAC,EACF,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC3B,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC,CAAA;IAnD4C,CAAC;;AAEzC,gBAAI,GAAG,IAAI,CAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EACnB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAC5C,AAHU,CAGV"}
@@ -1,18 +0,0 @@
1
- import * as Data from '@effect/data/Data';
2
- import * as Effect from '@effect/io/Effect';
3
- export type Base64String = string;
4
- export declare const encryptTextWithPassword: (text: string, password: string) => Effect.Effect<never, WebCryptoError, string>;
5
- export declare const decryptTextWithPassword: (encryptedText: Base64String, password: string) => Effect.Effect<never, WebCryptoError, string>;
6
- export declare const encryptAesGcm: (key: CryptoKey, data: Uint8Array, iv: Uint8Array) => Effect.Effect<never, WebCryptoError, ArrayBuffer>;
7
- export declare const decryptAesGcm: (key: CryptoKey, data: Uint8Array, iv: Uint8Array) => Effect.Effect<never, WebCryptoError, ArrayBuffer>;
8
- export declare const makePasswordKey: (password: string) => Effect.Effect<never, WebCryptoError, CryptoKey>;
9
- export declare const deriveKey: (passwordKey: CryptoKey, salt: Uint8Array, keyUsage: KeyUsage[]) => Effect.Effect<never, WebCryptoError, CryptoKey>;
10
- declare const WebCryptoError_base: new <A extends Record<string, any>>(args: import("@effect/data/Types.js").Equals<Omit<A, keyof import("@effect/data/Equal.js").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal.js").Equal>) => Data.Data<A & {
11
- _tag: "WebCryptoError";
12
- }>;
13
- export declare class WebCryptoError extends WebCryptoError_base<{
14
- readonly error: any;
15
- }> {
16
- }
17
- export {};
18
- //# sourceMappingURL=WebCrypto.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebCrypto.d.ts","sourceRoot":"","sources":["../../src/effect/WebCrypto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAU3C,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,eAAO,MAAM,uBAAuB,SAAU,MAAM,YAAY,MAAM,KAAG,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAsBhH,CAAA;AAEJ,eAAO,MAAM,uBAAuB,kBACnB,YAAY,YACjB,MAAM,KACf,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAa1C,CAAA;AAEJ,eAAO,MAAM,aAAa,QACnB,SAAS,QACR,UAAU,MACZ,UAAU,KACb,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,CAI/C,CAAA;AAEJ,eAAO,MAAM,aAAa,QACnB,SAAS,QACR,UAAU,MACZ,UAAU,KACb,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,CAI/C,CAAA;AAEJ,eAAO,MAAM,eAAe,aAAc,MAAM,KAAG,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,CAI7F,CAAA;AAEJ,eAAO,MAAM,SAAS,gBACP,SAAS,QAChB,UAAU,YACN,QAAQ,EAAE,KACnB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,CAgB7C,CAAA;;;;AAEJ,qBAAa,cAAe,SAAQ,oBAAmC;IAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAA;CAAE,CAAC;CAAG"}
@@ -1,56 +0,0 @@
1
- import * as Data from '@effect/data/Data';
2
- import * as Effect from '@effect/io/Effect';
3
- import * as base64 from '../base64.js';
4
- // NOTE Requires `import '@livestore/utils/node/load-crypto'` for Node
5
- const crypto = globalThis.crypto;
6
- const enc = new TextEncoder();
7
- const dec = new TextDecoder();
8
- export const encryptTextWithPassword = (text, password) => Effect.gen(function* ($) {
9
- const passwordKey = yield* $(makePasswordKey(password));
10
- const encodedText = enc.encode(text);
11
- const iv = crypto.getRandomValues(new Uint8Array(12));
12
- const salt = crypto.getRandomValues(new Uint8Array(16));
13
- const aesKey = yield* $(deriveKey(passwordKey, salt, ['encrypt']));
14
- const encryptedData = yield* $(encryptAesGcm(aesKey, encodedText, iv));
15
- const encryptedDataArr = new Uint8Array(encryptedData);
16
- const buff = new Uint8Array(salt.byteLength + iv.byteLength + encryptedDataArr.byteLength);
17
- buff.set(salt, 0);
18
- buff.set(iv, salt.byteLength);
19
- buff.set(encryptedDataArr, salt.byteLength + iv.byteLength);
20
- const base64Buff = base64.encode(buff);
21
- return base64Buff;
22
- });
23
- export const decryptTextWithPassword = (encryptedText, password) => Effect.gen(function* ($) {
24
- const passwordKey = yield* $(makePasswordKey(password));
25
- const encryptedDataBuff = base64.decode(encryptedText);
26
- const salt = encryptedDataBuff.slice(0, 16);
27
- const iv = encryptedDataBuff.slice(16, 16 + 12);
28
- const data = encryptedDataBuff.slice(16 + 12);
29
- const aesKey = yield* $(deriveKey(passwordKey, salt, ['decrypt']));
30
- const decryptedData = yield* $(decryptAesGcm(aesKey, data, iv));
31
- return dec.decode(decryptedData);
32
- });
33
- export const encryptAesGcm = (key, data, iv) => Effect.tryPromise({
34
- try: () => crypto.subtle.encrypt({ name: 'AES-GCM', iv }, key, data),
35
- catch: (error) => new WebCryptoError({ error }),
36
- });
37
- export const decryptAesGcm = (key, data, iv) => Effect.tryPromise({
38
- try: () => crypto.subtle.decrypt({ name: 'AES-GCM', iv }, key, data),
39
- catch: (error) => new WebCryptoError({ error }),
40
- });
41
- export const makePasswordKey = (password) => Effect.tryPromise({
42
- try: () => crypto.subtle.importKey('raw', enc.encode(password), 'PBKDF2', false, ['deriveKey']),
43
- catch: (error) => new WebCryptoError({ error }),
44
- });
45
- export const deriveKey = (passwordKey, salt, keyUsage) => Effect.tryPromise({
46
- try: () => crypto.subtle.deriveKey({
47
- name: 'PBKDF2',
48
- salt: salt,
49
- iterations: 250000,
50
- hash: 'SHA-256',
51
- }, passwordKey, { name: 'AES-GCM', length: 256 }, false, keyUsage),
52
- catch: (error) => new WebCryptoError({ error }),
53
- });
54
- export class WebCryptoError extends Data.TaggedClass('WebCryptoError') {
55
- }
56
- //# sourceMappingURL=WebCrypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebCrypto.js","sourceRoot":"","sources":["../../src/effect/WebCrypto.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import * as Effect from '@effect/io/Effect';
2
- export declare const withLock: (lockName: string, options?: {
3
- skipIfTaken: boolean;
4
- }) => <Ctx, E, A>(eff: Effect.Effect<Ctx, E, A>) => Effect.Effect<Ctx, E, void | A>;
5
- //# sourceMappingURL=WebLock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebLock.d.ts","sourceRoot":"","sources":["../../src/effect/WebLock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAK3C,eAAO,MAAM,QAAQ,aACR,MAAM,YAAY;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,kFAoBjD,CAAA"}
@@ -1,20 +0,0 @@
1
- import * as Effect from '@effect/io/Effect';
2
- import * as Runtime from '@effect/io/Runtime';
3
- // See https://developer.mozilla.org/en-US/docs/Web/API/Web_Locks_API
4
- export const withLock = (lockName, options) => (eff) => Effect.gen(function* ($) {
5
- const runtime = yield* $(Effect.runtime());
6
- return yield* $(Effect.tryPromise({
7
- try: (signal) => {
8
- // NOTE The 'signal' and 'ifAvailable' options cannot be used together.
9
- const requestOptions = options?.skipIfTaken === true ? { ifAvailable: true } : { signal };
10
- return navigator.locks.request(lockName, requestOptions, async (lock) => {
11
- if (lock === null)
12
- return;
13
- // TODO also propagate Effect interruption to the execution
14
- return Runtime.runPromise(runtime)(eff);
15
- });
16
- },
17
- catch: (err) => err,
18
- }));
19
- });
20
- //# sourceMappingURL=WebLock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebLock.js","sourceRoot":"","sources":["../../src/effect/WebLock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAE7C,qEAAqE;AAErE,MAAM,CAAC,MAAM,QAAQ,GACnB,CAAC,QAAgB,EAAE,OAAkC,EAAE,EAAE,CACzD,CAAY,GAA6B,EAAmC,EAAE,CAC5E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAO,CAAC,CAAA;IAE/C,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,MAAM,CAAC,UAAU,CAAO;QACtB,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;YACd,uEAAuE;YACvE,MAAM,cAAc,GAAG,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAA;YACzF,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtE,IAAI,IAAI,KAAK,IAAI;oBAAE,OAAM;gBAEzB,2DAA2D;gBAC3D,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;YACzC,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAe;KAChC,CAAC,CACH,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,19 +0,0 @@
1
- import * as Effect from '@effect/io/Effect';
2
- /** Sleeps the specified duration depending on whether the document is hidden or not */
3
- export declare const sleepBasedOnVisibility: ({ durationHiddenMs, durationVisibleMs, }: {
4
- durationHiddenMs: number;
5
- durationVisibleMs: number;
6
- }) => Effect.Effect<never, never, void>;
7
- export declare const fileReaderAsText: (data: Blob) => Effect.Effect<never, FileReaderError, string>;
8
- export declare const fileReaderAsDataUrl: (data: Blob) => Effect.Effect<never, FileReaderError, string>;
9
- export declare const fileReaderAsArrayBuffer: (data: Blob) => Effect.Effect<never, FileReaderError, ArrayBuffer>;
10
- declare const FileReaderError_base: new <A extends Record<string, any>>(args: import("@effect/data/Types.js").Equals<Omit<A, keyof import("@effect/data/Equal.js").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal.js").Equal>) => import("@effect/data/Data").Data<A & {
11
- _tag: "FileReaderError";
12
- }>;
13
- export declare class FileReaderError extends FileReaderError_base<{
14
- readonly error: DOMException;
15
- }> {
16
- toString: () => string;
17
- }
18
- export {};
19
- //# sourceMappingURL=browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/effect/browser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAI3C,uFAAuF;AACvF,eAAO,MAAM,sBAAsB;sBAIf,MAAM;uBACL,MAAM;uCA0CvB,CAAA;AAEJ,eAAO,MAAM,gBAAgB,SAAU,IAAI,kDAkBvC,CAAA;AAEJ,eAAO,MAAM,mBAAmB,SAAU,IAAI,kDAiB1C,CAAA;AAEJ,eAAO,MAAM,uBAAuB,SAAU,IAAI,uDAkB9C,CAAA;;;;AAEJ,qBAAa,eAAgB,SAAQ,qBAA+B;IAClE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAC7B,CAAC;IACA,QAAQ,eAAwD;CACjE"}
@@ -1,82 +0,0 @@
1
- import { TaggedClass } from '@effect/data/Data';
2
- import { pipe } from '@effect/data/Function';
3
- import * as Effect from '@effect/io/Effect';
4
- import { errorToString } from '../index.js';
5
- /** Sleeps the specified duration depending on whether the document is hidden or not */
6
- export const sleepBasedOnVisibility = ({ durationHiddenMs, durationVisibleMs, }) => Effect.suspend(() => {
7
- const startTimeMs = Date.now();
8
- const cleanUpFns = [];
9
- return pipe(Effect.async((cb) => {
10
- const visbilityEventHandler = () => {
11
- if (document.hidden === false) {
12
- const elapsedMs = Date.now() - startTimeMs;
13
- if (elapsedMs >= durationHiddenMs) {
14
- cb(Effect.unit);
15
- }
16
- }
17
- };
18
- document.addEventListener('visibilitychange', visbilityEventHandler);
19
- cleanUpFns.push(() => document.removeEventListener('visibilitychange', visbilityEventHandler));
20
- const backgroundTimeout = setTimeout(() => { }, durationHiddenMs);
21
- cleanUpFns.push(() => clearTimeout(backgroundTimeout));
22
- const foregroundTimeout = setTimeout(() => {
23
- if (document.hidden === false) {
24
- cb(Effect.unit);
25
- }
26
- }, durationVisibleMs);
27
- cleanUpFns.push(() => clearTimeout(foregroundTimeout));
28
- return Effect.sync(() => {
29
- cleanUpFns.forEach((fn) => fn());
30
- });
31
- }), Effect.tap(() => Effect.sync(() => {
32
- cleanUpFns.forEach((fn) => fn());
33
- })));
34
- });
35
- export const fileReaderAsText = (data) => Effect.async((cb, signal) => {
36
- const reader = new FileReader();
37
- signal.addEventListener('abort', () => {
38
- reader.abort();
39
- });
40
- reader.addEventListener('error', (event) => {
41
- cb(Effect.fail(new FileReaderError({ error: event.target.error })));
42
- });
43
- reader.addEventListener('load', (event) => {
44
- cb(Effect.succeed(event.target.result));
45
- });
46
- // eslint-disable-next-line unicorn/prefer-blob-reading-methods
47
- reader.readAsText(data);
48
- });
49
- export const fileReaderAsDataUrl = (data) => Effect.async((cb, signal) => {
50
- const reader = new FileReader();
51
- signal.addEventListener('abort', () => {
52
- reader.abort();
53
- });
54
- reader.addEventListener('error', (event) => {
55
- cb(Effect.fail(new FileReaderError({ error: event.target.error })));
56
- });
57
- reader.addEventListener('load', (event) => {
58
- cb(Effect.succeed(event.target.result));
59
- });
60
- reader.readAsDataURL(data);
61
- });
62
- export const fileReaderAsArrayBuffer = (data) => Effect.async((cb, signal) => {
63
- const reader = new FileReader();
64
- signal.addEventListener('abort', () => {
65
- reader.abort();
66
- });
67
- reader.addEventListener('error', (event) => {
68
- cb(Effect.fail(new FileReaderError({ error: event.target.error })));
69
- });
70
- reader.addEventListener('load', (event) => {
71
- cb(Effect.succeed(event.target.result));
72
- });
73
- // eslint-disable-next-line unicorn/prefer-blob-reading-methods
74
- reader.readAsArrayBuffer(data);
75
- });
76
- export class FileReaderError extends TaggedClass('FileReaderError') {
77
- constructor() {
78
- super(...arguments);
79
- this.toString = () => `FileReaderError: ${errorToString(this.error)}`;
80
- }
81
- }
82
- //# sourceMappingURL=browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/effect/browser.ts"],"names":[],"mappings":"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"}