@livestore/utils 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo.json +1 -0
- package/dist/Deferred.d.ts +10 -0
- package/dist/Deferred.d.ts.map +1 -0
- package/dist/Deferred.js +18 -0
- package/dist/Deferred.js.map +1 -0
- package/dist/NoopTracer.d.ts +9 -0
- package/dist/NoopTracer.d.ts.map +1 -0
- package/dist/NoopTracer.js +54 -0
- package/dist/NoopTracer.js.map +1 -0
- package/dist/base64.d.ts +12 -0
- package/dist/base64.d.ts.map +1 -0
- package/dist/base64.js +114 -0
- package/dist/base64.js.map +1 -0
- package/dist/binary.d.ts +4 -0
- package/dist/binary.d.ts.map +1 -0
- package/dist/binary.js +23 -0
- package/dist/binary.js.map +1 -0
- package/dist/browser.d.ts +3 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +28 -0
- package/dist/browser.js.map +1 -0
- package/dist/effect/Debounce.d.ts +5 -0
- package/dist/effect/Debounce.d.ts.map +1 -0
- package/dist/effect/Debounce.js +33 -0
- package/dist/effect/Debounce.js.map +1 -0
- package/dist/effect/Effect.d.ts +7 -0
- package/dist/effect/Effect.d.ts.map +1 -0
- package/dist/effect/Effect.js +17 -0
- package/dist/effect/Effect.js.map +1 -0
- package/dist/effect/EndableQueue.d.ts +11 -0
- package/dist/effect/EndableQueue.d.ts.map +1 -0
- package/dist/effect/EndableQueue.js +22 -0
- package/dist/effect/EndableQueue.js.map +1 -0
- package/dist/effect/EnvVar.d.ts +16 -0
- package/dist/effect/EnvVar.d.ts.map +1 -0
- package/dist/effect/EnvVar.js +21 -0
- package/dist/effect/EnvVar.js.map +1 -0
- package/dist/effect/Error.d.ts +12 -0
- package/dist/effect/Error.d.ts.map +1 -0
- package/dist/effect/Error.js +13 -0
- package/dist/effect/Error.js.map +1 -0
- package/dist/effect/Gate.d.ts +14 -0
- package/dist/effect/Gate.d.ts.map +1 -0
- package/dist/effect/Gate.js +17 -0
- package/dist/effect/Gate.js.map +1 -0
- package/dist/effect/Layer.d.ts +6 -0
- package/dist/effect/Layer.d.ts.map +1 -0
- package/dist/effect/Layer.js +11 -0
- package/dist/effect/Layer.js.map +1 -0
- package/dist/effect/Otel/Dummy.d.ts +5 -0
- package/dist/effect/Otel/Dummy.d.ts.map +1 -0
- package/dist/effect/Otel/Dummy.js +22 -0
- package/dist/effect/Otel/Dummy.js.map +1 -0
- package/dist/effect/Otel/Meter.d.ts +20 -0
- package/dist/effect/Otel/Meter.d.ts.map +1 -0
- package/dist/effect/Otel/Meter.js +76 -0
- package/dist/effect/Otel/Meter.js.map +1 -0
- package/dist/effect/Otel/OtlpGrpc.d.ts +6 -0
- package/dist/effect/Otel/OtlpGrpc.d.ts.map +1 -0
- package/dist/effect/Otel/OtlpGrpc.js +42 -0
- package/dist/effect/Otel/OtlpGrpc.js.map +1 -0
- package/dist/effect/Otel/OtlpHttp.d.ts +6 -0
- package/dist/effect/Otel/OtlpHttp.d.ts.map +1 -0
- package/dist/effect/Otel/OtlpHttp.js +42 -0
- package/dist/effect/Otel/OtlpHttp.js.map +1 -0
- package/dist/effect/Otel/OtlpWebsocket.d.ts +6 -0
- package/dist/effect/Otel/OtlpWebsocket.d.ts.map +1 -0
- package/dist/effect/Otel/OtlpWebsocket.js +42 -0
- package/dist/effect/Otel/OtlpWebsocket.js.map +1 -0
- package/dist/effect/Otel/Span.d.ts +32 -0
- package/dist/effect/Otel/Span.d.ts.map +1 -0
- package/dist/effect/Otel/Span.js +97 -0
- package/dist/effect/Otel/Span.js.map +1 -0
- package/dist/effect/Otel/Tracer.d.ts +15 -0
- package/dist/effect/Otel/Tracer.d.ts.map +1 -0
- package/dist/effect/Otel/Tracer.js +17 -0
- package/dist/effect/Otel/Tracer.js.map +1 -0
- package/dist/effect/Otel/index.d.ts +8 -0
- package/dist/effect/Otel/index.d.ts.map +1 -0
- package/dist/effect/Otel/index.js +9 -0
- package/dist/effect/Otel/index.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.d.ts +14 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.js +15 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.d.ts +14 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.js +15 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.d.ts +19 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.js +17 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/MetricsProvider.d.ts +10 -0
- package/dist/effect/Otel/lib-metrics/MetricsProvider.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/MetricsProvider.js +4 -0
- package/dist/effect/Otel/lib-metrics/MetricsProvider.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.d.ts +16 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.js +39 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.d.ts +16 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.js +39 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.d.ts +16 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.js +39 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.d.ts +17 -0
- package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.js +27 -0
- package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.d.ts +18 -0
- package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.js +31 -0
- package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.d.ts +19 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.js +36 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.d.ts +19 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.js +36 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.d.ts +9 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.js +29 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/SimpleProcessor.d.ts +19 -0
- package/dist/effect/Otel/lib-tracer/SimpleProcessor.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/SimpleProcessor.js +25 -0
- package/dist/effect/Otel/lib-tracer/SimpleProcessor.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/TracerProvider.d.ts +10 -0
- package/dist/effect/Otel/lib-tracer/TracerProvider.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/TracerProvider.js +7 -0
- package/dist/effect/Otel/lib-tracer/TracerProvider.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/WebProvider.d.ts +18 -0
- package/dist/effect/Otel/lib-tracer/WebProvider.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/WebProvider.js +25 -0
- package/dist/effect/Otel/lib-tracer/WebProvider.js.map +1 -0
- package/dist/effect/ReadonlyArray.d.ts +4 -0
- package/dist/effect/ReadonlyArray.d.ts.map +1 -0
- package/dist/effect/ReadonlyArray.js +11 -0
- package/dist/effect/ReadonlyArray.js.map +1 -0
- package/dist/effect/RequestResolver.d.ts +11 -0
- package/dist/effect/RequestResolver.d.ts.map +1 -0
- package/dist/effect/RequestResolver.js +18 -0
- package/dist/effect/RequestResolver.js.map +1 -0
- package/dist/effect/STM.d.ts +3 -0
- package/dist/effect/STM.d.ts.map +1 -0
- package/dist/effect/STM.js +3 -0
- package/dist/effect/STM.js.map +1 -0
- package/dist/effect/Schedule.d.ts +5 -0
- package/dist/effect/Schedule.d.ts.map +1 -0
- package/dist/effect/Schedule.js +7 -0
- package/dist/effect/Schedule.js.map +1 -0
- package/dist/effect/Scheduler.d.ts +49 -0
- package/dist/effect/Scheduler.d.ts.map +1 -0
- package/dist/effect/Scheduler.js +168 -0
- package/dist/effect/Scheduler.js.map +1 -0
- package/dist/effect/Schema/SchemaHash.d.ts +3 -0
- package/dist/effect/Schema/SchemaHash.d.ts.map +1 -0
- package/dist/effect/Schema/SchemaHash.js +15 -0
- package/dist/effect/Schema/SchemaHash.js.map +1 -0
- package/dist/effect/Schema/SchemaHash.test.d.ts +2 -0
- package/dist/effect/Schema/SchemaHash.test.d.ts.map +1 -0
- package/dist/effect/Schema/SchemaHash.test.js +13 -0
- package/dist/effect/Schema/SchemaHash.test.js.map +1 -0
- package/dist/effect/Schema/SchemaJsonWrapper.d.ts +11 -0
- package/dist/effect/Schema/SchemaJsonWrapper.d.ts.map +1 -0
- package/dist/effect/Schema/SchemaJsonWrapper.js +38 -0
- package/dist/effect/Schema/SchemaJsonWrapper.js.map +1 -0
- package/dist/effect/Schema/SchemaJsonWrapper.test.d.ts +2 -0
- package/dist/effect/Schema/SchemaJsonWrapper.test.d.ts.map +1 -0
- package/dist/effect/Schema/SchemaJsonWrapper.test.js +42 -0
- package/dist/effect/Schema/SchemaJsonWrapper.test.js.map +1 -0
- package/dist/effect/Schema/index.d.ts +15 -0
- package/dist/effect/Schema/index.d.ts.map +1 -0
- package/dist/effect/Schema/index.js +14 -0
- package/dist/effect/Schema/index.js.map +1 -0
- package/dist/effect/ServiceContext.d.ts +39 -0
- package/dist/effect/ServiceContext.d.ts.map +1 -0
- package/dist/effect/ServiceContext.js +61 -0
- package/dist/effect/ServiceContext.js.map +1 -0
- package/dist/effect/SmartQueue.d.ts +38 -0
- package/dist/effect/SmartQueue.d.ts.map +1 -0
- package/dist/effect/SmartQueue.js +123 -0
- package/dist/effect/SmartQueue.js.map +1 -0
- package/dist/effect/Stream/chainSwitch.d.ts +3 -0
- package/dist/effect/Stream/chainSwitch.d.ts.map +1 -0
- package/dist/effect/Stream/chainSwitch.js +48 -0
- package/dist/effect/Stream/chainSwitch.js.map +1 -0
- package/dist/effect/Stream/index.d.ts +37 -0
- package/dist/effect/Stream/index.d.ts.map +1 -0
- package/dist/effect/Stream/index.js +82 -0
- package/dist/effect/Stream/index.js.map +1 -0
- package/dist/effect/SubscriptionRef.d.ts +10 -0
- package/dist/effect/SubscriptionRef.d.ts.map +1 -0
- package/dist/effect/SubscriptionRef.js +8 -0
- package/dist/effect/SubscriptionRef.js.map +1 -0
- package/dist/effect/TimeoutGate.d.ts +13 -0
- package/dist/effect/TimeoutGate.d.ts.map +1 -0
- package/dist/effect/TimeoutGate.js +41 -0
- package/dist/effect/TimeoutGate.js.map +1 -0
- package/dist/effect/WebCrypto.d.ts +18 -0
- package/dist/effect/WebCrypto.d.ts.map +1 -0
- package/dist/effect/WebCrypto.js +56 -0
- package/dist/effect/WebCrypto.js.map +1 -0
- package/dist/effect/WebLock.d.ts +5 -0
- package/dist/effect/WebLock.d.ts.map +1 -0
- package/dist/effect/WebLock.js +20 -0
- package/dist/effect/WebLock.js.map +1 -0
- package/dist/effect/browser.d.ts +19 -0
- package/dist/effect/browser.d.ts.map +1 -0
- package/dist/effect/browser.js +82 -0
- package/dist/effect/browser.js.map +1 -0
- package/dist/effect/fetch.d.ts +89 -0
- package/dist/effect/fetch.d.ts.map +1 -0
- package/dist/effect/fetch.js +142 -0
- package/dist/effect/fetch.js.map +1 -0
- package/dist/effect/index.d.ts +50 -0
- package/dist/effect/index.d.ts.map +1 -0
- package/dist/effect/index.js +58 -0
- package/dist/effect/index.js.map +1 -0
- package/dist/global.d.ts +5 -0
- package/dist/global.d.ts.map +1 -0
- package/dist/global.js +2 -0
- package/dist/global.js.map +1 -0
- package/dist/guards.d.ts +6 -0
- package/dist/guards.d.ts.map +1 -0
- package/dist/guards.js +6 -0
- package/dist/guards.js.map +1 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +162 -0
- package/dist/index.js.map +1 -0
- package/dist/object/index.d.ts +10 -0
- package/dist/object/index.d.ts.map +1 -0
- package/dist/object/index.js +10 -0
- package/dist/object/index.js.map +1 -0
- package/dist/object/omit.d.ts +3 -0
- package/dist/object/omit.d.ts.map +1 -0
- package/dist/object/omit.js +14 -0
- package/dist/object/omit.js.map +1 -0
- package/dist/object/pick.d.ts +14 -0
- package/dist/object/pick.d.ts.map +1 -0
- package/dist/object/pick.js +17 -0
- package/dist/object/pick.js.map +1 -0
- package/dist/promise.d.ts +6 -0
- package/dist/promise.d.ts.map +1 -0
- package/dist/promise.js +27 -0
- package/dist/promise.js.map +1 -0
- package/dist/set.d.ts +2 -0
- package/dist/set.d.ts.map +1 -0
- package/dist/set.js +10 -0
- package/dist/set.js.map +1 -0
- package/dist/single-item.d.ts +8 -0
- package/dist/single-item.d.ts.map +1 -0
- package/dist/single-item.js +9 -0
- package/dist/single-item.js.map +1 -0
- package/dist/string.d.ts +3 -0
- package/dist/string.d.ts.map +1 -0
- package/dist/string.js +3 -0
- package/dist/string.js.map +1 -0
- package/dist/time.d.ts +12 -0
- package/dist/time.d.ts.map +1 -0
- package/dist/time.js +22 -0
- package/dist/time.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/json.d.ts +27 -0
- package/dist/types/json.d.ts.map +1 -0
- package/dist/types/json.js +2 -0
- package/dist/types/json.js.map +1 -0
- package/package.json +58 -0
- package/src/Deferred.ts +24 -0
- package/src/NoopTracer.ts +75 -0
- package/src/base64.ts +118 -0
- package/src/browser.ts +32 -0
- package/src/effect/Effect.ts +27 -0
- package/src/effect/Error.ts +12 -0
- package/src/effect/Otel/Dummy.ts +32 -0
- package/src/effect/Otel/Meter.ts +145 -0
- package/src/effect/Otel/OtlpGrpc.ts +75 -0
- package/src/effect/Otel/OtlpHttp.ts +75 -0
- package/src/effect/Otel/OtlpWebsocket.ts +75 -0
- package/src/effect/Otel/Span.ts +222 -0
- package/src/effect/Otel/Tracer.ts +30 -0
- package/src/effect/Otel/index.ts +8 -0
- package/src/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.ts +39 -0
- package/src/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.ts +39 -0
- package/src/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.ts +47 -0
- package/src/effect/Otel/lib-metrics/MetricsProvider.ts +12 -0
- package/src/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.ts +77 -0
- package/src/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.ts +77 -0
- package/src/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.ts +80 -0
- package/src/effect/Otel/lib-metrics/PeriodicMetricsProvider.ts +55 -0
- package/src/effect/Otel/lib-tracer/BatchSpanProcessor.ts +58 -0
- package/src/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.ts +64 -0
- package/src/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.ts +64 -0
- package/src/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.ts +38 -0
- package/src/effect/Otel/lib-tracer/README.md +1 -0
- package/src/effect/Otel/lib-tracer/SimpleProcessor.ts +46 -0
- package/src/effect/Otel/lib-tracer/TracerProvider.ts +16 -0
- package/src/effect/Otel/lib-tracer/WebProvider.ts +48 -0
- package/src/effect/Schedule.ts +12 -0
- package/src/effect/ServiceContext.ts +116 -0
- package/src/effect/index.ts +65 -0
- package/src/global.ts +5 -0
- package/src/guards.ts +8 -0
- package/src/index.ts +217 -0
- package/src/object/index.ts +24 -0
- package/src/object/omit.ts +17 -0
- package/src/object/pick.ts +27 -0
- package/src/promise.ts +43 -0
- package/src/set.ts +10 -0
- package/src/string.ts +2 -0
- package/src/time.ts +25 -0
- package/tsconfig.json +13 -0
|
@@ -0,0 +1,82 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/effect/Stream/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebCrypto.js","sourceRoot":"","sources":["../../src/effect/WebCrypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/effect/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import * as Data from '@effect/data/Data';
|
|
2
|
+
import * as Effect from '@effect/io/Effect';
|
|
3
|
+
import * as Otel from './Otel/index.js';
|
|
4
|
+
export declare const fetchHead: (url: string | URL, headers?: HeadersInit) => Effect.Effect<Otel.Tracer, FetchHeadError, Response>;
|
|
5
|
+
export declare const fetchText: (url: string | URL, headers?: HeadersInit) => Effect.Effect<Otel.Tracer, FetchTextError, string>;
|
|
6
|
+
export declare const fetchPostMsgpack: <TIn, TOut>({ url, payload, headers, }: {
|
|
7
|
+
url: string | URL;
|
|
8
|
+
payload: TIn;
|
|
9
|
+
headers?: HeadersInit | undefined;
|
|
10
|
+
}) => Effect.Effect<Otel.Tracer, FetchMsgpackError, TOut>;
|
|
11
|
+
export declare const fetchJSON: <T>(url: string | URL, headers?: HeadersInit) => Effect.Effect<Otel.Tracer, FetchJSONError, T>;
|
|
12
|
+
export declare const fetchJSONPost: <T>(url: string | URL, headers?: HeadersInit) => Effect.Effect<Otel.Tracer, FetchJSONError, T>;
|
|
13
|
+
export declare const fetchJSONPostWithBody: <TOut, TIn>({ url, body, headers, }: {
|
|
14
|
+
url: string | URL;
|
|
15
|
+
body: TIn;
|
|
16
|
+
headers?: HeadersInit | undefined;
|
|
17
|
+
}) => Effect.Effect<Otel.Tracer, FetchJSONError, TOut>;
|
|
18
|
+
export declare const fetchArrayBuffer: (url: string | URL, headers?: HeadersInit) => Effect.Effect<Otel.Tracer, FetchArrayBufferError, ArrayBuffer>;
|
|
19
|
+
export declare const fetchBlob: (url: string | URL) => Effect.Effect<Otel.Tracer, FetchBlobError, Blob>;
|
|
20
|
+
declare const FetchHeadError_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 & {
|
|
21
|
+
_tag: "FetchHeadError";
|
|
22
|
+
}>;
|
|
23
|
+
export declare class FetchHeadError extends FetchHeadError_base<{
|
|
24
|
+
readonly url: string | URL;
|
|
25
|
+
readonly error?: unknown;
|
|
26
|
+
readonly status?: number;
|
|
27
|
+
}> {
|
|
28
|
+
readonly message: string;
|
|
29
|
+
toString: () => string;
|
|
30
|
+
}
|
|
31
|
+
declare const FetchTextError_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 & {
|
|
32
|
+
_tag: "FetchTextError";
|
|
33
|
+
}>;
|
|
34
|
+
export declare class FetchTextError extends FetchTextError_base<{
|
|
35
|
+
readonly url: string | URL;
|
|
36
|
+
readonly error?: unknown;
|
|
37
|
+
readonly status?: number;
|
|
38
|
+
}> {
|
|
39
|
+
readonly message: string;
|
|
40
|
+
toString: () => string;
|
|
41
|
+
}
|
|
42
|
+
declare const FetchMsgpackError_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 & {
|
|
43
|
+
_tag: "FetchMsgpackError";
|
|
44
|
+
}>;
|
|
45
|
+
export declare class FetchMsgpackError extends FetchMsgpackError_base<{
|
|
46
|
+
readonly url: string | URL;
|
|
47
|
+
readonly error?: unknown;
|
|
48
|
+
readonly status?: number;
|
|
49
|
+
}> {
|
|
50
|
+
readonly message: string;
|
|
51
|
+
toString: () => string;
|
|
52
|
+
}
|
|
53
|
+
declare const FetchJSONError_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 & {
|
|
54
|
+
_tag: "FetchJSONError";
|
|
55
|
+
}>;
|
|
56
|
+
export declare class FetchJSONError extends FetchJSONError_base<{
|
|
57
|
+
readonly url: string | URL;
|
|
58
|
+
readonly error?: unknown;
|
|
59
|
+
readonly status?: number;
|
|
60
|
+
readonly body?: any;
|
|
61
|
+
readonly headers?: Record<string, string>;
|
|
62
|
+
}> {
|
|
63
|
+
readonly message: string;
|
|
64
|
+
toString: () => string;
|
|
65
|
+
}
|
|
66
|
+
declare const FetchArrayBufferError_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 & {
|
|
67
|
+
_tag: "FetchArrayBufferError";
|
|
68
|
+
}>;
|
|
69
|
+
export declare class FetchArrayBufferError extends FetchArrayBufferError_base<{
|
|
70
|
+
readonly url: string | URL;
|
|
71
|
+
readonly error?: unknown;
|
|
72
|
+
readonly status?: number;
|
|
73
|
+
}> {
|
|
74
|
+
readonly message: string;
|
|
75
|
+
toString: () => string;
|
|
76
|
+
}
|
|
77
|
+
declare const FetchBlobError_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 & {
|
|
78
|
+
_tag: "FetchBlobError";
|
|
79
|
+
}>;
|
|
80
|
+
export declare class FetchBlobError extends FetchBlobError_base<{
|
|
81
|
+
readonly url: string | URL;
|
|
82
|
+
readonly error?: unknown;
|
|
83
|
+
readonly status?: number;
|
|
84
|
+
}> {
|
|
85
|
+
readonly message: string;
|
|
86
|
+
toString: () => string;
|
|
87
|
+
}
|
|
88
|
+
export {};
|
|
89
|
+
//# sourceMappingURL=fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/effect/fetch.ts"],"names":[],"mappings":"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"}
|