@livestore/utils 0.4.0-dev.9 → 0.5.0-dev.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 +1 -0
- package/dist/NoopTracer.d.ts +7 -8
- package/dist/NoopTracer.d.ts.map +1 -1
- package/dist/NoopTracer.js +13 -15
- package/dist/NoopTracer.js.map +1 -1
- package/dist/NoopTracer.test.d.ts +2 -0
- package/dist/NoopTracer.test.d.ts.map +1 -0
- package/dist/NoopTracer.test.js +17 -0
- package/dist/NoopTracer.test.js.map +1 -0
- package/dist/binary.js +1 -1
- package/dist/binary.js.map +1 -1
- package/dist/browser/Opfs/Opfs.d.ts +201 -0
- package/dist/browser/Opfs/Opfs.d.ts.map +1 -0
- package/dist/browser/Opfs/Opfs.js +170 -0
- package/dist/browser/Opfs/Opfs.js.map +1 -0
- package/dist/browser/Opfs/debug-utils.d.ts +20 -0
- package/dist/browser/Opfs/debug-utils.d.ts.map +1 -0
- package/dist/browser/Opfs/debug-utils.js +95 -0
- package/dist/browser/Opfs/debug-utils.js.map +1 -0
- package/dist/browser/Opfs/mod.d.ts +4 -0
- package/dist/browser/Opfs/mod.d.ts.map +1 -0
- package/dist/browser/Opfs/mod.js +4 -0
- package/dist/browser/Opfs/mod.js.map +1 -0
- package/dist/browser/Opfs/utils.d.ts +71 -0
- package/dist/browser/Opfs/utils.d.ts.map +1 -0
- package/dist/browser/Opfs/utils.js +227 -0
- package/dist/browser/Opfs/utils.js.map +1 -0
- package/dist/browser/QuotaExceededError.d.ts +60 -0
- package/dist/browser/QuotaExceededError.d.ts.map +1 -0
- package/dist/browser/QuotaExceededError.js +2 -0
- package/dist/browser/QuotaExceededError.js.map +1 -0
- package/dist/browser/WebChannelBrowser.d.ts +22 -0
- package/dist/browser/WebChannelBrowser.d.ts.map +1 -0
- package/dist/browser/WebChannelBrowser.js +87 -0
- package/dist/browser/WebChannelBrowser.js.map +1 -0
- package/dist/browser/WebError.d.ts +389 -0
- package/dist/browser/WebError.d.ts.map +1 -0
- package/dist/browser/WebError.js +423 -0
- package/dist/browser/WebError.js.map +1 -0
- package/dist/browser/WebError.test.d.ts +2 -0
- package/dist/browser/WebError.test.d.ts.map +1 -0
- package/dist/browser/WebError.test.js +46 -0
- package/dist/browser/WebError.test.js.map +1 -0
- package/dist/browser/WebLock.d.ts.map +1 -0
- package/dist/{effect → browser}/WebLock.js +21 -21
- package/dist/browser/WebLock.js.map +1 -0
- package/dist/{browser.d.ts → browser/detect.d.ts} +1 -1
- package/dist/browser/detect.d.ts.map +1 -0
- package/dist/{browser.js → browser/detect.js} +7 -7
- package/dist/browser/detect.js.map +1 -0
- package/dist/browser/mod.d.ts +8 -0
- package/dist/browser/mod.d.ts.map +1 -0
- package/dist/browser/mod.js +8 -0
- package/dist/browser/mod.js.map +1 -0
- package/dist/cuid/cuid.browser.js +1 -1
- package/dist/cuid/cuid.browser.js.map +1 -1
- package/dist/cuid/cuid.node.js +1 -1
- package/dist/cuid/cuid.node.js.map +1 -1
- package/dist/effect/Debug.d.ts +38 -0
- package/dist/effect/Debug.d.ts.map +1 -0
- package/dist/effect/Debug.js +350 -0
- package/dist/effect/Debug.js.map +1 -0
- package/dist/effect/Effect.d.ts +91 -22
- package/dist/effect/Effect.d.ts.map +1 -1
- package/dist/effect/Effect.js +126 -38
- package/dist/effect/Effect.js.map +1 -1
- package/dist/effect/Effect.test.d.ts +2 -0
- package/dist/effect/Effect.test.d.ts.map +1 -0
- package/dist/effect/Effect.test.js +72 -0
- package/dist/effect/Effect.test.js.map +1 -0
- package/dist/effect/Error.d.ts +4 -6
- package/dist/effect/Error.d.ts.map +1 -1
- package/dist/effect/Error.js +1 -1
- package/dist/effect/Error.js.map +1 -1
- package/dist/effect/Logger.d.ts +0 -6
- package/dist/effect/Logger.d.ts.map +1 -1
- package/dist/effect/Logger.js +0 -32
- package/dist/effect/Logger.js.map +1 -1
- package/dist/effect/OtelTracer.d.ts +1 -1
- package/dist/effect/OtelTracer.d.ts.map +1 -1
- package/dist/effect/OtelTracer.js +2 -3
- package/dist/effect/OtelTracer.js.map +1 -1
- package/dist/effect/RpcClient.d.ts +7 -7
- package/dist/effect/RpcClient.d.ts.map +1 -1
- package/dist/effect/RpcClient.js +74 -54
- package/dist/effect/RpcClient.js.map +1 -1
- package/dist/effect/Schedule.d.ts +1 -1
- package/dist/effect/Schedule.d.ts.map +1 -1
- package/dist/effect/Schedule.js +2 -2
- package/dist/effect/Schedule.js.map +1 -1
- package/dist/effect/Schema/debug-diff.d.ts +1 -1
- package/dist/effect/Schema/debug-diff.d.ts.map +1 -1
- package/dist/effect/Schema/debug-diff.js +9 -10
- package/dist/effect/Schema/debug-diff.js.map +1 -1
- package/dist/effect/Schema/debug-diff.test.js +7 -4
- package/dist/effect/Schema/debug-diff.test.js.map +1 -1
- package/dist/effect/Schema/index.d.ts +28 -18
- package/dist/effect/Schema/index.d.ts.map +1 -1
- package/dist/effect/Schema/index.js +55 -28
- package/dist/effect/Schema/index.js.map +1 -1
- package/dist/effect/Stream.d.ts +13 -5
- package/dist/effect/Stream.d.ts.map +1 -1
- package/dist/effect/Stream.js +19 -12
- package/dist/effect/Stream.js.map +1 -1
- package/dist/effect/Stream.test.js +12 -12
- package/dist/effect/Stream.test.js.map +1 -1
- package/dist/effect/Subscribable.d.ts +9 -3
- package/dist/effect/Subscribable.d.ts.map +1 -1
- package/dist/effect/Subscribable.js +20 -35
- package/dist/effect/Subscribable.js.map +1 -1
- package/dist/effect/SubscriptionRef.d.ts +5 -6
- package/dist/effect/SubscriptionRef.d.ts.map +1 -1
- package/dist/effect/SubscriptionRef.js +2 -3
- package/dist/effect/SubscriptionRef.js.map +1 -1
- package/dist/effect/TaskTracing.d.ts +1 -1
- package/dist/effect/TaskTracing.d.ts.map +1 -1
- package/dist/effect/TaskTracing.js +12 -16
- package/dist/effect/TaskTracing.js.map +1 -1
- package/dist/effect/WebChannel/WebChannel.d.ts +11 -30
- package/dist/effect/WebChannel/WebChannel.d.ts.map +1 -1
- package/dist/effect/WebChannel/WebChannel.js +70 -125
- package/dist/effect/WebChannel/WebChannel.js.map +1 -1
- package/dist/effect/WebChannel/WebChannel.test.js +16 -16
- package/dist/effect/WebChannel/WebChannel.test.js.map +1 -1
- package/dist/effect/WebChannel/broadcastChannelWithAck.d.ts.map +1 -1
- package/dist/effect/WebChannel/broadcastChannelWithAck.js +20 -13
- package/dist/effect/WebChannel/broadcastChannelWithAck.js.map +1 -1
- package/dist/effect/WebChannel/common.d.ts +17 -18
- package/dist/effect/WebChannel/common.d.ts.map +1 -1
- package/dist/effect/WebChannel/common.js +7 -7
- package/dist/effect/WebChannel/common.js.map +1 -1
- package/dist/effect/WebSocket.d.ts +4 -6
- package/dist/effect/WebSocket.d.ts.map +1 -1
- package/dist/effect/WebSocket.js +17 -17
- package/dist/effect/WebSocket.js.map +1 -1
- package/dist/effect/WebSocket.test.js +2 -2
- package/dist/effect/WebSocket.test.js.map +1 -1
- package/dist/effect/mod.browser-build.test.d.ts +2 -0
- package/dist/effect/mod.browser-build.test.d.ts.map +1 -0
- package/dist/effect/mod.browser-build.test.js +18 -0
- package/dist/effect/mod.browser-build.test.js.map +1 -0
- package/dist/effect/mod.d.ts +30 -0
- package/dist/effect/mod.d.ts.map +1 -0
- package/dist/effect/mod.js +30 -0
- package/dist/effect/mod.js.map +1 -0
- package/dist/effect/spanEvent.d.ts +12 -0
- package/dist/effect/spanEvent.d.ts.map +1 -0
- package/dist/effect/spanEvent.js +12 -0
- package/dist/effect/spanEvent.js.map +1 -0
- package/dist/effect/spanEvent.test.d.ts +2 -0
- package/dist/effect/spanEvent.test.d.ts.map +1 -0
- package/dist/effect/spanEvent.test.js +79 -0
- package/dist/effect/spanEvent.test.js.map +1 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +1 -1
- package/dist/env.js.map +1 -1
- package/dist/fast-deep-equal.d.ts.map +1 -1
- package/dist/fast-deep-equal.js +9 -10
- package/dist/fast-deep-equal.js.map +1 -1
- package/dist/global.d.ts +3 -0
- package/dist/global.d.ts.map +1 -1
- package/dist/global.js.map +1 -1
- package/dist/misc.d.ts +9 -1
- package/dist/misc.d.ts.map +1 -1
- package/dist/misc.js +12 -4
- package/dist/misc.js.map +1 -1
- package/dist/mod.d.ts +177 -20
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +159 -22
- package/dist/mod.js.map +1 -1
- package/dist/node/mod.d.ts +45 -6
- package/dist/node/mod.d.ts.map +1 -1
- package/dist/node/mod.js +51 -9
- package/dist/node/mod.js.map +1 -1
- package/dist/object/index.d.ts +0 -9
- package/dist/object/index.d.ts.map +1 -1
- package/dist/object/index.js +0 -9
- package/dist/object/index.js.map +1 -1
- package/dist/object/stringify-object.js +2 -2
- package/dist/object/stringify-object.js.map +1 -1
- package/dist/object/stringify-object.test.js.map +1 -1
- package/dist/qr.d.ts +38 -0
- package/dist/qr.d.ts.map +1 -0
- package/dist/qr.js +109 -0
- package/dist/qr.js.map +1 -0
- package/dist/set.js +1 -1
- package/dist/set.js.map +1 -1
- package/dist/string.d.ts +0 -2
- package/dist/string.d.ts.map +1 -1
- package/dist/string.js +0 -2
- package/dist/string.js.map +1 -1
- package/package.json +61 -55
- package/src/NoopTracer.test.ts +20 -0
- package/src/NoopTracer.ts +28 -37
- package/src/binary.ts +1 -1
- package/src/browser/Opfs/Opfs.ts +463 -0
- package/src/browser/Opfs/debug-utils.ts +154 -0
- package/src/browser/Opfs/mod.ts +3 -0
- package/src/browser/Opfs/utils.ts +297 -0
- package/src/browser/QuotaExceededError.ts +60 -0
- package/src/browser/WebChannelBrowser.ts +145 -0
- package/src/browser/WebError.test.ts +66 -0
- package/src/browser/WebError.ts +587 -0
- package/src/{effect → browser}/WebLock.ts +27 -28
- package/src/{browser.ts → browser/detect.ts} +6 -6
- package/src/browser/mod.ts +8 -0
- package/src/cuid/cuid.browser.ts +1 -1
- package/src/cuid/cuid.node.ts +1 -1
- package/src/effect/Debug.ts +477 -0
- package/src/effect/Effect.test.ts +117 -0
- package/src/effect/Effect.ts +174 -79
- package/src/effect/Error.ts +1 -1
- package/src/effect/Logger.ts +0 -48
- package/src/effect/OtelTracer.ts +2 -3
- package/src/effect/RpcClient.ts +85 -65
- package/src/effect/Schedule.ts +4 -5
- package/src/effect/Schema/debug-diff.test.ts +7 -7
- package/src/effect/Schema/debug-diff.ts +11 -12
- package/src/effect/Schema/index.ts +121 -57
- package/src/effect/Stream.test.ts +14 -13
- package/src/effect/Stream.ts +23 -16
- package/src/effect/Subscribable.ts +31 -42
- package/src/effect/SubscriptionRef.ts +9 -13
- package/src/effect/TaskTracing.ts +13 -16
- package/src/effect/WebChannel/WebChannel.test.ts +24 -24
- package/src/effect/WebChannel/WebChannel.ts +102 -192
- package/src/effect/WebChannel/broadcastChannelWithAck.ts +25 -15
- package/src/effect/WebChannel/common.ts +16 -17
- package/src/effect/WebSocket.test.ts +2 -2
- package/src/effect/WebSocket.ts +20 -16
- package/src/effect/mod.browser-build.test.ts +19 -0
- package/src/effect/{index.ts → mod.ts} +43 -69
- package/src/effect/spanEvent.test.ts +92 -0
- package/src/effect/spanEvent.ts +17 -0
- package/src/env.ts +2 -1
- package/src/fast-deep-equal.ts +9 -10
- package/src/global.ts +4 -2
- package/src/misc.ts +13 -5
- package/src/mod.ts +188 -32
- package/src/node/mod.ts +57 -12
- package/src/object/index.ts +0 -24
- package/src/object/stringify-object.test.ts +1 -0
- package/src/object/stringify-object.ts +2 -2
- package/src/qr.ts +125 -0
- package/src/set.ts +1 -1
- package/src/string.ts +0 -3
- package/dist/.tsbuildinfo.json +0 -1
- package/dist/browser.d.ts.map +0 -1
- package/dist/browser.js.map +0 -1
- package/dist/effect/BucketQueue.d.ts +0 -20
- package/dist/effect/BucketQueue.d.ts.map +0 -1
- package/dist/effect/BucketQueue.js +0 -34
- package/dist/effect/BucketQueue.js.map +0 -1
- package/dist/effect/Scheduler.d.ts +0 -4
- package/dist/effect/Scheduler.d.ts.map +0 -1
- package/dist/effect/Scheduler.js +0 -9
- package/dist/effect/Scheduler.js.map +0 -1
- package/dist/effect/ServiceContext.d.ts +0 -37
- package/dist/effect/ServiceContext.d.ts.map +0 -1
- package/dist/effect/ServiceContext.js +0 -55
- package/dist/effect/ServiceContext.js.map +0 -1
- package/dist/effect/WebLock.d.ts.map +0 -1
- package/dist/effect/WebLock.js.map +0 -1
- package/dist/effect/index.d.ts +0 -32
- package/dist/effect/index.d.ts.map +0 -1
- package/dist/effect/index.js +0 -35
- package/dist/effect/index.js.map +0 -1
- package/dist/guards.d.ts +0 -6
- package/dist/guards.d.ts.map +0 -1
- package/dist/guards.js +0 -6
- package/dist/guards.js.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts +0 -4
- package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunner.js +0 -122
- package/dist/node/ChildProcessRunner/ChildProcessRunner.js.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.d.ts +0 -2
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.d.ts.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js +0 -218
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts +0 -84
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js +0 -68
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.d.ts +0 -2
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.d.ts.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js +0 -52
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts +0 -23
- package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessWorker.js +0 -138
- package/dist/node/ChildProcessRunner/ChildProcessWorker.js.map +0 -1
- package/dist/object/omit.d.ts +0 -3
- package/dist/object/omit.d.ts.map +0 -1
- package/dist/object/omit.js +0 -14
- package/dist/object/omit.js.map +0 -1
- package/dist/object/pick.d.ts +0 -14
- package/dist/object/pick.d.ts.map +0 -1
- package/dist/object/pick.js +0 -17
- package/dist/object/pick.js.map +0 -1
- package/dist/time.d.ts +0 -12
- package/dist/time.d.ts.map +0 -1
- package/dist/time.js +0 -22
- package/dist/time.js.map +0 -1
- package/src/effect/BucketQueue.ts +0 -49
- package/src/effect/Scheduler.ts +0 -13
- package/src/effect/ServiceContext.ts +0 -108
- package/src/guards.ts +0 -8
- package/src/node/ChildProcessRunner/ChildProcessRunner.ts +0 -135
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts +0 -302
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/schema.ts +0 -78
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.ts +0 -66
- package/src/node/ChildProcessRunner/ChildProcessWorker.ts +0 -168
- package/src/object/omit.ts +0 -17
- package/src/object/pick.ts +0 -27
- package/src/time.ts +0 -25
- /package/dist/{effect → browser}/WebLock.d.ts +0 -0
package/dist/NoopTracer.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const makeNoopTracer: () => otel.Tracer;
|
|
1
|
+
import { type Context, type Span, type SpanOptions, type Tracer } from '@opentelemetry/api';
|
|
2
|
+
export declare const makeNoopSpan: () => Span;
|
|
3
|
+
export declare const makeNoopTracer: () => Tracer;
|
|
5
4
|
export declare class NoopTracer {
|
|
6
|
-
startSpan: () =>
|
|
7
|
-
startActiveSpan<F extends (span:
|
|
8
|
-
startActiveSpan<F extends (span:
|
|
9
|
-
startActiveSpan<F extends (span:
|
|
5
|
+
startSpan: () => Span;
|
|
6
|
+
startActiveSpan<F extends (span: Span) => ReturnType<F>>(name: string, fn: F): ReturnType<F>;
|
|
7
|
+
startActiveSpan<F extends (span: Span) => ReturnType<F>>(name: string, opts: SpanOptions, fn: F): ReturnType<F>;
|
|
8
|
+
startActiveSpan<F extends (span: Span) => ReturnType<F>>(name: string, opts: SpanOptions, ctx: Context, fn: F): ReturnType<F>;
|
|
10
9
|
}
|
|
11
10
|
//# sourceMappingURL=NoopTracer.d.ts.map
|
package/dist/NoopTracer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoopTracer.d.ts","sourceRoot":"","sources":["../src/NoopTracer.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"NoopTracer.d.ts","sourceRoot":"","sources":["../src/NoopTracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEjH,eAAO,MAAM,YAAY,QAcO,IAC/B,CAAA;AAED,eAAO,MAAM,cAAc,QAEa,MACvC,CAAA;AAED,qBAAa,UAAU;IACrB,SAAS,aAAuB;IAEhC,eAAe,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAC5F,eAAe,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAC/G,eAAe,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EACrD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,OAAO,EACZ,EAAE,EAAE,CAAC,GACJ,UAAU,CAAC,CAAC,CAAC;CAgCjB"}
|
package/dist/NoopTracer.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
import { INVALID_SPAN_CONTEXT } from '@opentelemetry/api';
|
|
1
2
|
export const makeNoopSpan = () => {
|
|
2
|
-
const
|
|
3
|
-
const span = {
|
|
4
|
-
_performanceStartTime: performanceStartTime,
|
|
3
|
+
const spanImpl = {
|
|
5
4
|
setAttribute: () => null,
|
|
6
5
|
setAttributes: () => null,
|
|
7
6
|
addEvent: () => null,
|
|
@@ -9,21 +8,14 @@ export const makeNoopSpan = () => {
|
|
|
9
8
|
setStatus: () => null,
|
|
10
9
|
updateName: () => null,
|
|
11
10
|
recordException: () => null,
|
|
12
|
-
end: () =>
|
|
13
|
-
|
|
14
|
-
const duration = endTime - performanceStartTime;
|
|
15
|
-
const durationSecs = duration / 1000;
|
|
16
|
-
const durationRestNs = (duration % 1000) * 1_000_000;
|
|
17
|
-
span._duration = [durationSecs, durationRestNs];
|
|
18
|
-
},
|
|
19
|
-
spanContext: () => {
|
|
20
|
-
return { traceId: 'livestore-noop-trace-id', spanId: 'livestore-noop-span-id' };
|
|
21
|
-
},
|
|
22
|
-
_duration: [0, 0],
|
|
11
|
+
end: () => null,
|
|
12
|
+
spanContext: () => INVALID_SPAN_CONTEXT,
|
|
23
13
|
};
|
|
24
|
-
|
|
14
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- noop otel.Span implementation; only implements the subset needed by LiveStore
|
|
15
|
+
return spanImpl;
|
|
25
16
|
};
|
|
26
17
|
export const makeNoopTracer = () => {
|
|
18
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- noop otel.Tracer implementation; only implements the subset needed by LiveStore
|
|
27
19
|
return new NoopTracer();
|
|
28
20
|
};
|
|
29
21
|
export class NoopTracer {
|
|
@@ -36,15 +28,21 @@ export class NoopTracer {
|
|
|
36
28
|
return;
|
|
37
29
|
}
|
|
38
30
|
else if (arguments.length === 2) {
|
|
31
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- arguments-based overload dispatch: with 2 args, arg2 is the callback
|
|
39
32
|
fn = arg2;
|
|
40
33
|
}
|
|
41
34
|
else if (arguments.length === 3) {
|
|
35
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- arguments-based overload dispatch: with 3 args, arg2 is SpanOptions
|
|
42
36
|
_opts = arg2;
|
|
37
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- arguments-based overload dispatch: with 3 args, arg3 is the callback
|
|
43
38
|
fn = arg3;
|
|
44
39
|
}
|
|
45
40
|
else {
|
|
41
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- arguments-based overload dispatch: with 4 args, arg2 is SpanOptions
|
|
46
42
|
_opts = arg2;
|
|
43
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- arguments-based overload dispatch: with 4 args, arg3 is Context
|
|
47
44
|
_ctx = arg3;
|
|
45
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- arguments-based overload dispatch: with 4 args, arg4 is the callback
|
|
48
46
|
fn = arg4;
|
|
49
47
|
}
|
|
50
48
|
return fn(makeNoopSpan());
|
package/dist/NoopTracer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoopTracer.js","sourceRoot":"","sources":["../src/NoopTracer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NoopTracer.js","sourceRoot":"","sources":["../src/NoopTracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAA0D,MAAM,oBAAoB,CAAA;AAEjH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,QAAQ,GAAG;QACf,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI;QACxB,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI;QACzB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;QACpB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;QACnB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;QACrB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;QACtB,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI;QAC3B,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI;QACf,WAAW,EAAE,GAAG,EAAE,CAAC,oBAAoB;KACxC,CAAA;IAED,wJAAwJ;IACxJ,OAAO,QAA2B,CAAA;AACpC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,0JAA0J;IAC1J,OAAO,IAAI,UAAU,EAAuB,CAAA;AAC9C,CAAC,CAAA;AAED,MAAM,OAAO,UAAU;IACrB,SAAS,GAAG,GAAG,EAAE,CAAC,YAAY,EAAE,CAAA;IAUhC,eAAe,CACb,KAAa,EACb,IAAsB,EACtB,IAAkB,EAClB,IAAQ;QAER,IAAI,KAA8B,CAAA;QAClC,IAAI,IAAyB,CAAA;QAC7B,IAAI,EAAK,CAAA;QAET,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAM;QACR,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,+IAA+I;YAC/I,EAAE,GAAG,IAAS,CAAA;QAChB,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,8IAA8I;YAC9I,KAAK,GAAG,IAA+B,CAAA;YACvC,+IAA+I;YAC/I,EAAE,GAAG,IAAS,CAAA;QAChB,CAAC;aAAM,CAAC;YACN,8IAA8I;YAC9I,KAAK,GAAG,IAA+B,CAAA;YACvC,0IAA0I;YAC1I,IAAI,GAAG,IAA2B,CAAA;YAClC,+IAA+I;YAC/I,EAAE,GAAG,IAAS,CAAA;QAChB,CAAC;QAED,OAAO,EAAE,CAAC,YAAY,EAAE,CAAC,CAAA;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopTracer.test.d.ts","sourceRoot":"","sources":["../src/NoopTracer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { INVALID_SPAN_CONTEXT, isSpanContextValid, ROOT_CONTEXT } from '@opentelemetry/api';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
import { makeNoopSpan, makeNoopTracer } from "./NoopTracer.js";
|
|
4
|
+
describe('NoopTracer', () => {
|
|
5
|
+
it('returns the canonical invalid OpenTelemetry span context', () => {
|
|
6
|
+
const spanContext = makeNoopSpan().spanContext();
|
|
7
|
+
expect(spanContext).toBe(INVALID_SPAN_CONTEXT);
|
|
8
|
+
expect(isSpanContextValid(spanContext)).toBe(false);
|
|
9
|
+
});
|
|
10
|
+
it('runs active-span callbacks for every tracer overload', () => {
|
|
11
|
+
const tracer = makeNoopTracer();
|
|
12
|
+
expect(tracer.startActiveSpan('two arguments', () => 'two')).toBe('two');
|
|
13
|
+
expect(tracer.startActiveSpan('three arguments', {}, () => 'three')).toBe('three');
|
|
14
|
+
expect(tracer.startActiveSpan('four arguments', {}, ROOT_CONTEXT, () => 'four')).toBe('four');
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=NoopTracer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopTracer.test.js","sourceRoot":"","sources":["../src/NoopTracer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAE9D,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,WAAW,GAAG,YAAY,EAAE,CAAC,WAAW,EAAE,CAAA;QAEhD,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAC9C,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;QAC/B,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClF,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,gBAAgB,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC/F,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/binary.js
CHANGED
|
@@ -32,7 +32,7 @@ export const isUint8ArrayBuffer = (array) => {
|
|
|
32
32
|
* Safer alternative to type assertions.
|
|
33
33
|
*/
|
|
34
34
|
export const toUint8ArrayBuffer = (array) => {
|
|
35
|
-
if (isUint8ArrayBuffer(array)) {
|
|
35
|
+
if (isUint8ArrayBuffer(array) === true) {
|
|
36
36
|
return array;
|
|
37
37
|
}
|
|
38
38
|
// Copy to ensure ArrayBuffer backing
|
package/dist/binary.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../src/binary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAiB,EAA2B,EAAE;IACnF,IAAI,KAAK,CAAC,MAAM,YAAY,WAAW,EAAE,CAAC;QACxC,OAAO,KAAgC,CAAA;IACzC,CAAC;IACD,wFAAwF;IACxF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACjB,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAA2B,EAAE;IAC/E,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC9C,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAA;AACxC,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAoC,EAAE;IACxF,OAAO,KAAK,CAAC,MAAM,YAAY,WAAW,CAAA;AAC5C,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAA2B,EAAE;IAC/E,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../src/binary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAiB,EAA2B,EAAE;IACnF,IAAI,KAAK,CAAC,MAAM,YAAY,WAAW,EAAE,CAAC;QACxC,OAAO,KAAgC,CAAA;IACzC,CAAC;IACD,wFAAwF;IACxF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACjB,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAA2B,EAAE;IAC/E,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC9C,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAA;AACxC,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAoC,EAAE;IACxF,OAAO,KAAK,CAAC,MAAM,YAAY,WAAW,CAAA;AAC5C,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAA2B,EAAE;IAC/E,IAAI,kBAAkB,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QACvC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,qCAAqC;IACrC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACjB,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { Context, Effect, Layer, Option, Schema, type Scope, Stream } from 'effect';
|
|
2
|
+
import * as WebError from '../WebError.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Effect service that exposes ergonomic wrappers around Origin Private File System (OPFS) operations.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* - Helpers mirror the File System Access API where possible and parse web exceptions into Effect errors.
|
|
8
|
+
* - Sync access handle helpers can only be used in dedicated workers; invoking them in other contexts fails at runtime.
|
|
9
|
+
*
|
|
10
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Origin_private_file_system | MDN Reference}
|
|
11
|
+
*/
|
|
12
|
+
export interface Service {
|
|
13
|
+
/**
|
|
14
|
+
* Acquire the OPFS root directory handle.
|
|
15
|
+
*
|
|
16
|
+
* @returns Root directory handle for the current origin.
|
|
17
|
+
*
|
|
18
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/getDirectory | MDN Reference}
|
|
19
|
+
*/
|
|
20
|
+
readonly getRootDirectoryHandle: Effect.Effect<FileSystemDirectoryHandle, WebError.WebError>;
|
|
21
|
+
/**
|
|
22
|
+
* Resolve (and optionally create) a file handle relative to a directory.
|
|
23
|
+
*
|
|
24
|
+
* @param parent - Directory to search.
|
|
25
|
+
* @param name - Target file name.
|
|
26
|
+
* @param options - Forwarded `getFileHandle` options such as `{ create: true }`.
|
|
27
|
+
*
|
|
28
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/getFileHandle | MDN Reference}
|
|
29
|
+
*/
|
|
30
|
+
readonly getFileHandle: (parent: FileSystemDirectoryHandle, name: string, options?: FileSystemGetFileOptions) => Effect.Effect<FileSystemFileHandle, WebError.WebError>;
|
|
31
|
+
/**
|
|
32
|
+
* Resolve (and optionally create) a directory handle relative to another directory.
|
|
33
|
+
*
|
|
34
|
+
* @param parent - Directory to search.
|
|
35
|
+
* @param name - Target directory name.
|
|
36
|
+
* @param options - Forwarded `getDirectoryHandle` options such as `{ create: true }`.
|
|
37
|
+
*
|
|
38
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/getDirectoryHandle | MDN Reference}
|
|
39
|
+
*/
|
|
40
|
+
readonly getDirectoryHandle: (parent: FileSystemDirectoryHandle, name: string, options?: FileSystemGetDirectoryOptions) => Effect.Effect<FileSystemDirectoryHandle, WebError.WebError>;
|
|
41
|
+
/**
|
|
42
|
+
* Remove a file-system entry (file or directory) from its parent directory.
|
|
43
|
+
*
|
|
44
|
+
* @param parent - Directory containing the entry.
|
|
45
|
+
* @param name - Entry name.
|
|
46
|
+
* @param options - Removal behavior (for example `{ recursive: true }`).
|
|
47
|
+
*
|
|
48
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/removeEntry | MDN Reference}
|
|
49
|
+
*/
|
|
50
|
+
readonly removeEntry: (parent: FileSystemDirectoryHandle, name: string, options?: FileSystemRemoveOptions) => Effect.Effect<void, WebError.WebError>;
|
|
51
|
+
/**
|
|
52
|
+
* Return a stream of child file-system handles for a directory.
|
|
53
|
+
*
|
|
54
|
+
* @param directory - Directory whose children are to be streamed
|
|
55
|
+
* @returns `Stream` of `FileSystemHandle`
|
|
56
|
+
*
|
|
57
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/values | MDN Reference}
|
|
58
|
+
*/
|
|
59
|
+
readonly values: (directory: FileSystemDirectoryHandle) => Stream.Stream<FileSystemHandle, WebError.NotAllowedError | WebError.NotFoundError | WebError.UnknownError>;
|
|
60
|
+
/**
|
|
61
|
+
* Resolve the relative path from a parent directory to a descendant handle.
|
|
62
|
+
*
|
|
63
|
+
* @param parent - Reference directory.
|
|
64
|
+
* @param child - File or directory handle within the parent hierarchy.
|
|
65
|
+
* @returns `Option.some(pathSegments)` when reachable, otherwise `Option.none()`.
|
|
66
|
+
*
|
|
67
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/resolve | MDN Reference}
|
|
68
|
+
*/
|
|
69
|
+
readonly resolve: (parent: FileSystemDirectoryHandle, child: FileSystemHandle) => Effect.Effect<Option.Option<ReadonlyArray<string>>, WebError.WebError>;
|
|
70
|
+
/**
|
|
71
|
+
* Read the underlying `File` for a file handle.
|
|
72
|
+
*
|
|
73
|
+
* @param handle - Handle referencing the target file.
|
|
74
|
+
*
|
|
75
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle/getFile | MDN Reference}
|
|
76
|
+
*/
|
|
77
|
+
readonly getFile: (handle: FileSystemFileHandle) => Effect.Effect<File, WebError.WebError>;
|
|
78
|
+
/**
|
|
79
|
+
* Overwrite the contents of a file with the provided data.
|
|
80
|
+
*
|
|
81
|
+
* @param handle - File to write to.
|
|
82
|
+
* @param data - Chunk(s) accepted by `FileSystemWritableFileStream.write`.
|
|
83
|
+
* @param options - Stream creation options (for example, `{ keepExistingData: false }`).
|
|
84
|
+
*
|
|
85
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle/createWritable | MDN Reference}
|
|
86
|
+
*/
|
|
87
|
+
readonly writeFile: (handle: FileSystemFileHandle, data: FileSystemWriteChunkType, options?: FileSystemCreateWritableOptions) => Effect.Effect<void, WebError.WebError>;
|
|
88
|
+
/**
|
|
89
|
+
* Append data to the end of an existing file.
|
|
90
|
+
*
|
|
91
|
+
* @param handle - File to extend.
|
|
92
|
+
* @param data - Data to append.
|
|
93
|
+
*
|
|
94
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write | MDN Reference}
|
|
95
|
+
*/
|
|
96
|
+
readonly appendToFile: (handle: FileSystemFileHandle, data: FileSystemWriteChunkType) => Effect.Effect<void, WebError.WebError>;
|
|
97
|
+
/**
|
|
98
|
+
* Truncate a file to the specified size in bytes.
|
|
99
|
+
*
|
|
100
|
+
* @param handle - File to shrink or pad.
|
|
101
|
+
* @param size - Target byte length.
|
|
102
|
+
*
|
|
103
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/truncate | MDN Reference}
|
|
104
|
+
*/
|
|
105
|
+
readonly truncateFile: (handle: FileSystemFileHandle, size: number) => Effect.Effect<void, WebError.WebError>;
|
|
106
|
+
/**
|
|
107
|
+
* Create a synchronous access handle for a file.
|
|
108
|
+
*
|
|
109
|
+
* @param handle - File handle to open.
|
|
110
|
+
* @returns A managed handle that is automatically closed when released.
|
|
111
|
+
*
|
|
112
|
+
* @remarks
|
|
113
|
+
* - Only available in Dedicated Web Workers.
|
|
114
|
+
* - This method is asynchronous even though the `FileSystemSyncAccessHandle` APIs are synchronous.
|
|
115
|
+
*
|
|
116
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle/createSyncAccessHandle | MDN Reference}
|
|
117
|
+
*/
|
|
118
|
+
readonly createSyncAccessHandle: (handle: FileSystemFileHandle) => Effect.Effect<FileSystemSyncAccessHandle, WebError.WebError, Scope.Scope>;
|
|
119
|
+
/**
|
|
120
|
+
* Perform a synchronous read into the provided buffer from a sync access handle.
|
|
121
|
+
*
|
|
122
|
+
* @param handle - Sync access handle to read from.
|
|
123
|
+
* @param buffer - Destination buffer (can be a specific view like Uint8Array).
|
|
124
|
+
* @param options - Read position options.
|
|
125
|
+
* @returns Number of bytes read.
|
|
126
|
+
*
|
|
127
|
+
* @remarks
|
|
128
|
+
* Only available in Dedicated Web Workers.
|
|
129
|
+
*
|
|
130
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemSyncAccessHandle/read | MDN Reference}
|
|
131
|
+
*/
|
|
132
|
+
readonly syncRead: (handle: FileSystemSyncAccessHandle, buffer: ArrayBuffer | ArrayBufferView, options?: FileSystemReadWriteOptions) => Effect.Effect<number, WebError.WebError>;
|
|
133
|
+
/**
|
|
134
|
+
* Perform a synchronous write from the provided buffer into the file.
|
|
135
|
+
*
|
|
136
|
+
* @param handle - Sync access handle to write to.
|
|
137
|
+
* @param buffer - Source data.
|
|
138
|
+
* @param options - Write position options.
|
|
139
|
+
* @returns Number of bytes written.
|
|
140
|
+
*
|
|
141
|
+
* @remarks
|
|
142
|
+
* Only available in Dedicated Web Workers.
|
|
143
|
+
*
|
|
144
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemSyncAccessHandle/write | MDN Reference}
|
|
145
|
+
*/
|
|
146
|
+
readonly syncWrite: (handle: FileSystemSyncAccessHandle, buffer: AllowSharedBufferSource, options?: FileSystemReadWriteOptions) => Effect.Effect<number, WebError.WebError>;
|
|
147
|
+
/**
|
|
148
|
+
* Truncate the file associated with a sync access handle to the specified size.
|
|
149
|
+
*
|
|
150
|
+
* @param handle - Sync access handle to mutate.
|
|
151
|
+
* @param size - Desired byte length.
|
|
152
|
+
*
|
|
153
|
+
* @remarks
|
|
154
|
+
* Only available in Dedicated Web Workers.
|
|
155
|
+
*
|
|
156
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemSyncAccessHandle/truncate | MDN Reference}
|
|
157
|
+
*/
|
|
158
|
+
readonly syncTruncate: (handle: FileSystemSyncAccessHandle, size: number) => Effect.Effect<void, WebError.WebError>;
|
|
159
|
+
/**
|
|
160
|
+
* Retrieve the current size of a file via its sync access handle.
|
|
161
|
+
*
|
|
162
|
+
* @param handle - Sync access handle.
|
|
163
|
+
* @returns File size in bytes.
|
|
164
|
+
*
|
|
165
|
+
* @remarks
|
|
166
|
+
* Only available in Dedicated Web Workers.
|
|
167
|
+
*
|
|
168
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemSyncAccessHandle/getSize | MDN Reference}
|
|
169
|
+
*/
|
|
170
|
+
readonly syncGetSize: (handle: FileSystemSyncAccessHandle) => Effect.Effect<number, WebError.WebError>;
|
|
171
|
+
/**
|
|
172
|
+
* Flush pending synchronous writes to durable storage.
|
|
173
|
+
*
|
|
174
|
+
* @param handle - Sync access handle to flush.
|
|
175
|
+
*
|
|
176
|
+
* @remarks
|
|
177
|
+
* Only available in Dedicated Web Workers.
|
|
178
|
+
*
|
|
179
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemSyncAccessHandle/flush | MDN Reference}
|
|
180
|
+
*/
|
|
181
|
+
readonly syncFlush: (handle: FileSystemSyncAccessHandle) => Effect.Effect<void, WebError.WebError>;
|
|
182
|
+
}
|
|
183
|
+
declare const Opfs_base: Context.ServiceClass<Opfs, "@livestore/utils/Opfs", Service>;
|
|
184
|
+
export declare class Opfs extends Opfs_base {
|
|
185
|
+
}
|
|
186
|
+
export declare const layer: Layer.Layer<Opfs, never, never>;
|
|
187
|
+
/**
|
|
188
|
+
* A no-op Opfs service that can be used for testing.
|
|
189
|
+
*/
|
|
190
|
+
export declare const layerNoop: Layer.Layer<Opfs, never, never>;
|
|
191
|
+
declare const OpfsError_base: Schema.Class<OpfsError, Schema.TaggedStruct<"OpfsError", {
|
|
192
|
+
readonly message: Schema.String;
|
|
193
|
+
readonly cause: Schema.optional<Schema.Defect>;
|
|
194
|
+
}>, import("effect/Cause").YieldableError>;
|
|
195
|
+
/**
|
|
196
|
+
* Error raised when OPFS operations fail.
|
|
197
|
+
*/
|
|
198
|
+
export declare class OpfsError extends OpfsError_base {
|
|
199
|
+
}
|
|
200
|
+
export {};
|
|
201
|
+
//# sourceMappingURL=Opfs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Opfs.d.ts","sourceRoot":"","sources":["../../../src/browser/Opfs/Opfs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/// <reference lib="webworker" />
|
|
2
|
+
import { Context, Effect, Layer, Option, Schema, Stream } from 'effect';
|
|
3
|
+
import * as WebError from "../WebError.js";
|
|
4
|
+
export class Opfs extends Context.Service()('@livestore/utils/Opfs') {
|
|
5
|
+
}
|
|
6
|
+
export const layer = Layer.succeed(Opfs, Opfs.of({
|
|
7
|
+
getRootDirectoryHandle: Effect.tryPromise({
|
|
8
|
+
try: () => navigator.storage.getDirectory(),
|
|
9
|
+
catch: (u) => WebError.classifyWebError(u, [WebError.SecurityError]),
|
|
10
|
+
}),
|
|
11
|
+
getFileHandle: (parent, name, options) => Effect.tryPromise({
|
|
12
|
+
try: () => parent.getFileHandle(name, options),
|
|
13
|
+
catch: (u) => WebError.classifyWebError(u, [
|
|
14
|
+
WebError.NotAllowedError,
|
|
15
|
+
WebError.TypeError,
|
|
16
|
+
WebError.TypeMismatchError,
|
|
17
|
+
WebError.NotFoundError,
|
|
18
|
+
]),
|
|
19
|
+
}),
|
|
20
|
+
getDirectoryHandle: (parent, name, options) => Effect.tryPromise({
|
|
21
|
+
try: () => parent.getDirectoryHandle(name, options),
|
|
22
|
+
catch: (u) => WebError.classifyWebError(u, [
|
|
23
|
+
WebError.NotAllowedError,
|
|
24
|
+
WebError.TypeError,
|
|
25
|
+
WebError.TypeMismatchError,
|
|
26
|
+
WebError.NotFoundError,
|
|
27
|
+
]),
|
|
28
|
+
}),
|
|
29
|
+
removeEntry: (parent, name, options) => Effect.tryPromise({
|
|
30
|
+
try: () => parent.removeEntry(name, options),
|
|
31
|
+
catch: (u) => WebError.classifyWebError(u, [
|
|
32
|
+
WebError.TypeError,
|
|
33
|
+
WebError.NotAllowedError,
|
|
34
|
+
WebError.InvalidModificationError,
|
|
35
|
+
WebError.NotFoundError,
|
|
36
|
+
WebError.NoModificationAllowedError,
|
|
37
|
+
]),
|
|
38
|
+
}),
|
|
39
|
+
values: (directory) => Stream.fromAsyncIterable(directory.values(), (u) => WebError.classifyWebError(u, [WebError.NotAllowedError, WebError.NotFoundError])),
|
|
40
|
+
resolve: (parent, child) => Effect.tryPromise({
|
|
41
|
+
try: () => parent.resolve(child),
|
|
42
|
+
catch: (u) => WebError.classifyWebError(u),
|
|
43
|
+
}).pipe(Effect.map((path) => (path === null ? Option.none() : Option.some(path)))),
|
|
44
|
+
getFile: (handle) => Effect.tryPromise({
|
|
45
|
+
try: () => handle.getFile(),
|
|
46
|
+
catch: (u) => WebError.classifyWebError(u, [WebError.NotAllowedError, WebError.NotFoundError]),
|
|
47
|
+
}),
|
|
48
|
+
writeFile: (handle, data, options) => Effect.acquireUseRelease(Effect.tryPromise({
|
|
49
|
+
try: () => handle.createWritable(options),
|
|
50
|
+
catch: (u) => WebError.classifyWebError(u, [
|
|
51
|
+
WebError.NotAllowedError,
|
|
52
|
+
WebError.NotFoundError,
|
|
53
|
+
WebError.NoModificationAllowedError,
|
|
54
|
+
WebError.AbortError,
|
|
55
|
+
]),
|
|
56
|
+
}), (stream) => Effect.tryPromise({
|
|
57
|
+
try: () => stream.write(data),
|
|
58
|
+
catch: (u) => WebError.classifyWebError(u, [WebError.NotAllowedError, WebError.QuotaExceededError, WebError.TypeError]),
|
|
59
|
+
}), (stream) => Effect.tryPromise({
|
|
60
|
+
try: () => stream.close(),
|
|
61
|
+
catch: (u) => WebError.classifyWebError(u, [WebError.TypeError]),
|
|
62
|
+
}).pipe(Effect.catchCause(() => Effect.void))),
|
|
63
|
+
appendToFile: (handle, data) => Effect.acquireUseRelease(Effect.tryPromise({
|
|
64
|
+
try: () => handle.createWritable({ keepExistingData: true }),
|
|
65
|
+
catch: (u) => WebError.classifyWebError(u, [
|
|
66
|
+
WebError.NotAllowedError,
|
|
67
|
+
WebError.NotFoundError,
|
|
68
|
+
WebError.NoModificationAllowedError,
|
|
69
|
+
WebError.AbortError,
|
|
70
|
+
]),
|
|
71
|
+
}), (stream) => Effect.gen(function* () {
|
|
72
|
+
const file = yield* Effect.tryPromise({
|
|
73
|
+
try: () => handle.getFile(),
|
|
74
|
+
catch: (u) => WebError.classifyWebError(u, [WebError.NotAllowedError, WebError.NotFoundError]),
|
|
75
|
+
});
|
|
76
|
+
yield* Effect.tryPromise({
|
|
77
|
+
try: () => stream.seek(file.size),
|
|
78
|
+
catch: (u) => WebError.classifyWebError(u, [WebError.NotAllowedError, WebError.TypeError]),
|
|
79
|
+
});
|
|
80
|
+
yield* Effect.tryPromise({
|
|
81
|
+
try: () => stream.write(data),
|
|
82
|
+
catch: (u) => WebError.classifyWebError(u, [
|
|
83
|
+
WebError.NotAllowedError,
|
|
84
|
+
WebError.QuotaExceededError,
|
|
85
|
+
WebError.TypeError,
|
|
86
|
+
]),
|
|
87
|
+
});
|
|
88
|
+
}), (stream) => Effect.tryPromise({
|
|
89
|
+
try: () => stream.close(),
|
|
90
|
+
catch: (u) => WebError.classifyWebError(u, [WebError.TypeError]),
|
|
91
|
+
}).pipe(Effect.catchCause(() => Effect.void))),
|
|
92
|
+
truncateFile: (handle, size) => Effect.acquireUseRelease(Effect.tryPromise({
|
|
93
|
+
try: () => handle.createWritable({ keepExistingData: true }),
|
|
94
|
+
catch: (u) => WebError.classifyWebError(u, [
|
|
95
|
+
WebError.NotAllowedError,
|
|
96
|
+
WebError.NotFoundError,
|
|
97
|
+
WebError.NoModificationAllowedError,
|
|
98
|
+
WebError.AbortError,
|
|
99
|
+
]),
|
|
100
|
+
}), (stream) => Effect.tryPromise({
|
|
101
|
+
try: () => stream.truncate(size),
|
|
102
|
+
catch: (u) => WebError.classifyWebError(u, [WebError.NotAllowedError, WebError.TypeError, WebError.QuotaExceededError]),
|
|
103
|
+
}), (stream) => Effect.tryPromise({
|
|
104
|
+
try: () => stream.close(),
|
|
105
|
+
catch: (u) => WebError.classifyWebError(u, [WebError.TypeError]),
|
|
106
|
+
}).pipe(Effect.catchCause(() => Effect.void))),
|
|
107
|
+
createSyncAccessHandle: (handle) => Effect.acquireRelease(Effect.tryPromise({
|
|
108
|
+
try: () => handle.createSyncAccessHandle(),
|
|
109
|
+
catch: (u) => WebError.classifyWebError(u, [
|
|
110
|
+
WebError.NotAllowedError,
|
|
111
|
+
WebError.InvalidStateError,
|
|
112
|
+
WebError.NotFoundError,
|
|
113
|
+
WebError.NoModificationAllowedError,
|
|
114
|
+
]),
|
|
115
|
+
}), (syncHandle) => Effect.sync(() => syncHandle.close())),
|
|
116
|
+
syncRead: (handle, buffer, options) => Effect.try({
|
|
117
|
+
try: () => handle.read(buffer, options),
|
|
118
|
+
catch: (u) => WebError.classifyWebError(u, [WebError.RangeError, WebError.InvalidStateError, WebError.TypeError]),
|
|
119
|
+
}),
|
|
120
|
+
syncWrite: (handle, buffer, options) => Effect.try({
|
|
121
|
+
try: () => handle.write(buffer, options),
|
|
122
|
+
catch: (u) => WebError.classifyWebError(u),
|
|
123
|
+
}),
|
|
124
|
+
syncTruncate: (handle, size) => Effect.try({
|
|
125
|
+
try: () => handle.truncate(size),
|
|
126
|
+
catch: (u) => WebError.classifyWebError(u),
|
|
127
|
+
}),
|
|
128
|
+
syncGetSize: (handle) => Effect.try({
|
|
129
|
+
try: () => handle.getSize(),
|
|
130
|
+
catch: (u) => WebError.classifyWebError(u),
|
|
131
|
+
}),
|
|
132
|
+
syncFlush: (handle) => Effect.try({
|
|
133
|
+
try: () => handle.flush(),
|
|
134
|
+
catch: (u) => WebError.classifyWebError(u),
|
|
135
|
+
}),
|
|
136
|
+
}));
|
|
137
|
+
const notFoundError = new WebError.NotFoundError({
|
|
138
|
+
cause: new DOMException('The object can not be found here.', 'NotFoundError'),
|
|
139
|
+
});
|
|
140
|
+
const unknownError = (message) => new WebError.UnknownError({ description: message });
|
|
141
|
+
/**
|
|
142
|
+
* A no-op Opfs service that can be used for testing.
|
|
143
|
+
*/
|
|
144
|
+
export const layerNoop = Layer.succeed(Opfs, Opfs.of({
|
|
145
|
+
getRootDirectoryHandle: Effect.fail(unknownError('OPFS is not supported in this environment')),
|
|
146
|
+
getFileHandle: () => Effect.fail(notFoundError),
|
|
147
|
+
getDirectoryHandle: () => Effect.fail(notFoundError),
|
|
148
|
+
removeEntry: () => Effect.fail(notFoundError),
|
|
149
|
+
values: () => Stream.fail(notFoundError),
|
|
150
|
+
resolve: () => Effect.succeed(Option.none()),
|
|
151
|
+
getFile: () => Effect.fail(notFoundError),
|
|
152
|
+
writeFile: () => Effect.fail(notFoundError),
|
|
153
|
+
appendToFile: () => Effect.fail(notFoundError),
|
|
154
|
+
truncateFile: () => Effect.fail(notFoundError),
|
|
155
|
+
createSyncAccessHandle: () => Effect.fail(unknownError('OPFS is not supported in this environment')),
|
|
156
|
+
syncRead: () => Effect.fail(unknownError('OPFS is not supported in this environment')),
|
|
157
|
+
syncWrite: () => Effect.fail(unknownError('OPFS is not supported in this environment')),
|
|
158
|
+
syncTruncate: () => Effect.fail(unknownError('OPFS is not supported in this environment')),
|
|
159
|
+
syncGetSize: () => Effect.fail(unknownError('OPFS is not supported in this environment')),
|
|
160
|
+
syncFlush: () => Effect.fail(unknownError('OPFS is not supported in this environment')),
|
|
161
|
+
}));
|
|
162
|
+
/**
|
|
163
|
+
* Error raised when OPFS operations fail.
|
|
164
|
+
*/
|
|
165
|
+
export class OpfsError extends Schema.TaggedError('~@livestore/utils/OpfsError')('OpfsError', {
|
|
166
|
+
message: Schema.String,
|
|
167
|
+
cause: Schema.optional(Schema.Defect()),
|
|
168
|
+
}) {
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=Opfs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Opfs.js","sourceRoot":"","sources":["../../../src/browser/Opfs/Opfs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug utilities for OPFS (Origin Private File System) inspection and manipulation.
|
|
3
|
+
* These functions are designed for use in browser devtools console to help debug
|
|
4
|
+
* and inspect the OPFS structure during development.
|
|
5
|
+
*/
|
|
6
|
+
export declare const debugUtils: {
|
|
7
|
+
/**
|
|
8
|
+
* Print the entire OPFS tree structure to the console in an ASCII format.
|
|
9
|
+
*/
|
|
10
|
+
readonly printTree: () => Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Reset the entire OPFS tree by removing all files and directories.
|
|
13
|
+
*/
|
|
14
|
+
readonly resetTree: () => Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Get a directory handle for a given path, useful for inspecting or manipulating specific directories.
|
|
17
|
+
*/
|
|
18
|
+
readonly getDirHandle: (path: string, options?: FileSystemGetDirectoryOptions) => Promise<FileSystemDirectoryHandle>;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=debug-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-utils.d.ts","sourceRoot":"","sources":["../../../src/browser/Opfs/debug-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwIH,eAAO,MAAM,UAAU;IACrB;;OAEG;8BACY,OAAO,CAAC,IAAI,CAAC;IAC5B;;OAEG;8BACY,OAAO,CAAC,IAAI,CAAC;IAC5B;;OAEG;kCACkB,MAAM,YAAY,6BAA6B;CAC5D,CAAA"}
|