@interfere/react 0.1.0-alpha.6 → 0.2.0-alpha.2
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/README.md +90 -0
- package/dist/error-boundary.d.mts +27 -0
- package/dist/error-boundary.d.mts.map +1 -0
- package/dist/error-boundary.mjs +42 -0
- package/dist/error-boundary.mjs.map +1 -0
- package/dist/internal/client.d.mts +13 -0
- package/dist/internal/client.d.mts.map +1 -0
- package/dist/internal/client.mjs +80 -0
- package/dist/internal/client.mjs.map +1 -0
- package/dist/internal/config.d.mts +9 -0
- package/dist/internal/config.d.mts.map +1 -0
- package/dist/internal/config.mjs +27 -0
- package/dist/internal/config.mjs.map +1 -0
- package/dist/internal/context.d.mts +6 -0
- package/dist/internal/context.d.mts.map +1 -0
- package/dist/internal/context.mjs +32 -0
- package/dist/internal/context.mjs.map +1 -0
- package/dist/internal/envelope.d.mts +14 -0
- package/dist/internal/envelope.d.mts.map +1 -0
- package/dist/internal/envelope.mjs +20 -0
- package/dist/internal/envelope.mjs.map +1 -0
- package/dist/internal/errors.d.mts +4 -0
- package/dist/internal/errors.d.mts.map +1 -0
- package/dist/internal/errors.mjs +4 -0
- package/dist/internal/errors.mjs.map +1 -0
- package/dist/internal/sw.d.mts +4 -0
- package/dist/internal/sw.d.mts.map +1 -0
- package/dist/internal/sw.mjs +10 -0
- package/dist/internal/sw.mjs.map +1 -0
- package/dist/plugins/errors.d.mts +6 -0
- package/dist/plugins/errors.d.mts.map +1 -0
- package/dist/plugins/errors.mjs +59 -0
- package/dist/plugins/errors.mjs.map +1 -0
- package/dist/plugins/lib/loader.d.mts +9 -0
- package/dist/plugins/lib/loader.d.mts.map +1 -0
- package/dist/plugins/lib/loader.mjs +47 -0
- package/dist/plugins/lib/loader.mjs.map +1 -0
- package/dist/plugins/lib/types.d.mts +14 -0
- package/dist/plugins/lib/types.d.mts.map +1 -0
- package/dist/plugins/lib/types.mjs +1 -0
- package/dist/plugins/pages.d.mts +6 -0
- package/dist/plugins/pages.d.mts.map +1 -0
- package/dist/plugins/pages.mjs +102 -0
- package/dist/plugins/pages.mjs.map +1 -0
- package/dist/plugins/rage-clicks.d.mts +6 -0
- package/dist/plugins/rage-clicks.d.mts.map +1 -0
- package/dist/plugins/rage-clicks.mjs +53 -0
- package/dist/plugins/rage-clicks.mjs.map +1 -0
- package/dist/plugins/replay.d.mts +6 -0
- package/dist/plugins/replay.d.mts.map +1 -0
- package/dist/plugins/replay.mjs +62 -0
- package/dist/plugins/replay.mjs.map +1 -0
- package/dist/provider.d.mts +17 -11
- package/dist/provider.d.mts.map +1 -1
- package/dist/provider.mjs +18 -17
- package/dist/provider.mjs.map +1 -1
- package/dist/tracking/api.d.mts +22 -0
- package/dist/tracking/api.d.mts.map +1 -0
- package/dist/tracking/api.mjs +88 -0
- package/dist/tracking/api.mjs.map +1 -0
- package/dist/tracking/session.d.mts +19 -0
- package/dist/tracking/session.d.mts.map +1 -0
- package/dist/tracking/session.mjs +92 -0
- package/dist/tracking/session.mjs.map +1 -0
- package/dist/tracking/visitor.d.mts +6 -0
- package/dist/tracking/visitor.d.mts.map +1 -0
- package/dist/tracking/visitor.mjs +35 -0
- package/dist/tracking/visitor.mjs.map +1 -0
- package/dist/transport/http.d.mts +15 -0
- package/dist/transport/http.d.mts.map +1 -0
- package/dist/transport/http.mjs +56 -0
- package/dist/transport/http.mjs.map +1 -0
- package/dist/transport/queue.d.mts +25 -0
- package/dist/transport/queue.d.mts.map +1 -0
- package/dist/transport/queue.mjs +60 -0
- package/dist/transport/queue.mjs.map +1 -0
- package/dist/util/log.d.mts +13 -0
- package/dist/util/log.d.mts.map +1 -0
- package/dist/util/log.mjs +37 -0
- package/dist/util/log.mjs.map +1 -0
- package/package.json +38 -64
- package/dist/client.d.mts +0 -8
- package/dist/client.d.mts.map +0 -1
- package/dist/client.mjs +0 -14
- package/dist/client.mjs.map +0 -1
- package/dist/core/events/define-event.d.mts +0 -12
- package/dist/core/events/define-event.d.mts.map +0 -1
- package/dist/core/events/define-event.mjs +0 -39
- package/dist/core/events/define-event.mjs.map +0 -1
- package/dist/core/events/event-registry.d.mts +0 -23
- package/dist/core/events/event-registry.d.mts.map +0 -1
- package/dist/core/events/event-registry.mjs +0 -32
- package/dist/core/events/event-registry.mjs.map +0 -1
- package/dist/core/events/plugin-event-types.d.mts +0 -130
- package/dist/core/events/plugin-event-types.d.mts.map +0 -1
- package/dist/core/events/plugin-event-types.mjs +0 -25
- package/dist/core/events/plugin-event-types.mjs.map +0 -1
- package/dist/core/plugins/define-plugin.d.mts +0 -43
- package/dist/core/plugins/define-plugin.d.mts.map +0 -1
- package/dist/core/plugins/define-plugin.mjs +0 -23
- package/dist/core/plugins/define-plugin.mjs.map +0 -1
- package/dist/core/plugins/dom-utils.d.mts +0 -9
- package/dist/core/plugins/dom-utils.d.mts.map +0 -1
- package/dist/core/plugins/dom-utils.mjs +0 -25
- package/dist/core/plugins/dom-utils.mjs.map +0 -1
- package/dist/core/plugins/impl/ai-summary/ai-summary-plugin-api.d.mts +0 -18
- package/dist/core/plugins/impl/ai-summary/ai-summary-plugin-api.d.mts.map +0 -1
- package/dist/core/plugins/impl/ai-summary/ai-summary-plugin-api.mjs +0 -17
- package/dist/core/plugins/impl/ai-summary/ai-summary-plugin-api.mjs.map +0 -1
- package/dist/core/plugins/impl/ai-summary/plugin.d.mts +0 -6
- package/dist/core/plugins/impl/ai-summary/plugin.d.mts.map +0 -1
- package/dist/core/plugins/impl/ai-summary/plugin.mjs +0 -151
- package/dist/core/plugins/impl/ai-summary/plugin.mjs.map +0 -1
- package/dist/core/plugins/impl/errors/errors-plugin-api.d.mts +0 -17
- package/dist/core/plugins/impl/errors/errors-plugin-api.d.mts.map +0 -1
- package/dist/core/plugins/impl/errors/errors-plugin-api.mjs +0 -58
- package/dist/core/plugins/impl/errors/errors-plugin-api.mjs.map +0 -1
- package/dist/core/plugins/impl/errors/logic.d.mts +0 -15
- package/dist/core/plugins/impl/errors/logic.d.mts.map +0 -1
- package/dist/core/plugins/impl/errors/logic.mjs +0 -48
- package/dist/core/plugins/impl/errors/logic.mjs.map +0 -1
- package/dist/core/plugins/impl/errors/patches.d.mts +0 -13
- package/dist/core/plugins/impl/errors/patches.d.mts.map +0 -1
- package/dist/core/plugins/impl/errors/patches.mjs +0 -43
- package/dist/core/plugins/impl/errors/patches.mjs.map +0 -1
- package/dist/core/plugins/impl/errors/plugin.d.mts +0 -9
- package/dist/core/plugins/impl/errors/plugin.d.mts.map +0 -1
- package/dist/core/plugins/impl/errors/plugin.mjs +0 -91
- package/dist/core/plugins/impl/errors/plugin.mjs.map +0 -1
- package/dist/core/plugins/impl/page-events/page-events-plugin-api.d.mts +0 -19
- package/dist/core/plugins/impl/page-events/page-events-plugin-api.d.mts.map +0 -1
- package/dist/core/plugins/impl/page-events/page-events-plugin-api.mjs +0 -38
- package/dist/core/plugins/impl/page-events/page-events-plugin-api.mjs.map +0 -1
- package/dist/core/plugins/impl/page-events/plugin.d.mts +0 -6
- package/dist/core/plugins/impl/page-events/plugin.d.mts.map +0 -1
- package/dist/core/plugins/impl/page-events/plugin.mjs +0 -95
- package/dist/core/plugins/impl/page-events/plugin.mjs.map +0 -1
- package/dist/core/plugins/impl/rage-click/plugin.d.mts +0 -6
- package/dist/core/plugins/impl/rage-click/plugin.d.mts.map +0 -1
- package/dist/core/plugins/impl/rage-click/plugin.mjs +0 -38
- package/dist/core/plugins/impl/rage-click/plugin.mjs.map +0 -1
- package/dist/core/plugins/impl/rage-click/rage-click.layer.d.mts +0 -9
- package/dist/core/plugins/impl/rage-click/rage-click.layer.d.mts.map +0 -1
- package/dist/core/plugins/impl/rage-click/rage-click.layer.mjs +0 -35
- package/dist/core/plugins/impl/rage-click/rage-click.layer.mjs.map +0 -1
- package/dist/core/plugins/impl/rage-click/rage-click.service.d.mts +0 -16
- package/dist/core/plugins/impl/rage-click/rage-click.service.d.mts.map +0 -1
- package/dist/core/plugins/impl/rage-click/rage-click.service.mjs +0 -7
- package/dist/core/plugins/impl/rage-click/rage-click.service.mjs.map +0 -1
- package/dist/core/plugins/impl/rage-click/rage-click.test-layer.d.mts +0 -16
- package/dist/core/plugins/impl/rage-click/rage-click.test-layer.d.mts.map +0 -1
- package/dist/core/plugins/impl/rage-click/rage-click.test-layer.mjs +0 -18
- package/dist/core/plugins/impl/rage-click/rage-click.test-layer.mjs.map +0 -1
- package/dist/core/plugins/impl/replay/plugin.d.mts +0 -9
- package/dist/core/plugins/impl/replay/plugin.d.mts.map +0 -1
- package/dist/core/plugins/impl/replay/plugin.mjs +0 -83
- package/dist/core/plugins/impl/replay/plugin.mjs.map +0 -1
- package/dist/core/plugins/impl/replay/replay-plugin-api.d.mts +0 -18
- package/dist/core/plugins/impl/replay/replay-plugin-api.d.mts.map +0 -1
- package/dist/core/plugins/impl/replay/replay-plugin-api.mjs +0 -50
- package/dist/core/plugins/impl/replay/replay-plugin-api.mjs.map +0 -1
- package/dist/core/plugins/impl/server-tracing/plugin.d.mts +0 -13
- package/dist/core/plugins/impl/server-tracing/plugin.d.mts.map +0 -1
- package/dist/core/plugins/impl/server-tracing/plugin.mjs +0 -75
- package/dist/core/plugins/impl/server-tracing/plugin.mjs.map +0 -1
- package/dist/core/plugins/impl/server-tracing/server-tracing-plugin-api.d.mts +0 -16
- package/dist/core/plugins/impl/server-tracing/server-tracing-plugin-api.d.mts.map +0 -1
- package/dist/core/plugins/impl/server-tracing/server-tracing-plugin-api.mjs +0 -17
- package/dist/core/plugins/impl/server-tracing/server-tracing-plugin-api.mjs.map +0 -1
- package/dist/core/plugins/impl/server-tracing/tracing-logic.d.mts +0 -29
- package/dist/core/plugins/impl/server-tracing/tracing-logic.d.mts.map +0 -1
- package/dist/core/plugins/impl/server-tracing/tracing-logic.mjs +0 -55
- package/dist/core/plugins/impl/server-tracing/tracing-logic.mjs.map +0 -1
- package/dist/core/plugins/plugin-loader.d.mts +0 -75
- package/dist/core/plugins/plugin-loader.d.mts.map +0 -1
- package/dist/core/plugins/plugin-loader.mjs +0 -79
- package/dist/core/plugins/plugin-loader.mjs.map +0 -1
- package/dist/core/plugins/services/event-capture.d.mts +0 -12
- package/dist/core/plugins/services/event-capture.d.mts.map +0 -1
- package/dist/core/plugins/services/event-capture.layer.d.mts +0 -11
- package/dist/core/plugins/services/event-capture.layer.d.mts.map +0 -1
- package/dist/core/plugins/services/event-capture.layer.mjs +0 -79
- package/dist/core/plugins/services/event-capture.layer.mjs.map +0 -1
- package/dist/core/plugins/services/event-capture.mjs +0 -7
- package/dist/core/plugins/services/event-capture.mjs.map +0 -1
- package/dist/core/plugins/services/event-capture.test-layer.d.mts +0 -17
- package/dist/core/plugins/services/event-capture.test-layer.d.mts.map +0 -1
- package/dist/core/plugins/services/event-capture.test-layer.mjs +0 -21
- package/dist/core/plugins/services/event-capture.test-layer.mjs.map +0 -1
- package/dist/core/plugins/services/plugin-config.d.mts +0 -11
- package/dist/core/plugins/services/plugin-config.d.mts.map +0 -1
- package/dist/core/plugins/services/plugin-config.mjs +0 -7
- package/dist/core/plugins/services/plugin-config.mjs.map +0 -1
- package/dist/core/plugins/services/plugin-config.test-layer.d.mts +0 -60
- package/dist/core/plugins/services/plugin-config.test-layer.d.mts.map +0 -1
- package/dist/core/plugins/services/plugin-config.test-layer.mjs +0 -8
- package/dist/core/plugins/services/plugin-config.test-layer.mjs.map +0 -1
- package/dist/core/plugins/services/plugin-logger.d.mts +0 -14
- package/dist/core/plugins/services/plugin-logger.d.mts.map +0 -1
- package/dist/core/plugins/services/plugin-logger.mjs +0 -7
- package/dist/core/plugins/services/plugin-logger.mjs.map +0 -1
- package/dist/core/plugins/services/plugin-logger.test-layer.d.mts +0 -18
- package/dist/core/plugins/services/plugin-logger.test-layer.d.mts.map +0 -1
- package/dist/core/plugins/services/plugin-logger.test-layer.mjs +0 -28
- package/dist/core/plugins/services/plugin-logger.test-layer.mjs.map +0 -1
- package/dist/core/plugins/services/plugin-runtime.d.mts +0 -10
- package/dist/core/plugins/services/plugin-runtime.d.mts.map +0 -1
- package/dist/core/plugins/services/plugin-runtime.mjs +0 -7
- package/dist/core/plugins/services/plugin-runtime.mjs.map +0 -1
- package/dist/core/plugins/services/plugin-runtime.test-layer.d.mts +0 -16
- package/dist/core/plugins/services/plugin-runtime.test-layer.d.mts.map +0 -1
- package/dist/core/plugins/services/plugin-runtime.test-layer.mjs +0 -21
- package/dist/core/plugins/services/plugin-runtime.test-layer.mjs.map +0 -1
- package/dist/core/plugins/services/session-info.d.mts +0 -11
- package/dist/core/plugins/services/session-info.d.mts.map +0 -1
- package/dist/core/plugins/services/session-info.mjs +0 -7
- package/dist/core/plugins/services/session-info.mjs.map +0 -1
- package/dist/core/plugins/services/session-info.test-layer.d.mts +0 -18
- package/dist/core/plugins/services/session-info.test-layer.d.mts.map +0 -1
- package/dist/core/plugins/services/session-info.test-layer.mjs +0 -20
- package/dist/core/plugins/services/session-info.test-layer.mjs.map +0 -1
- package/dist/core/runtime/config.d.mts +0 -14
- package/dist/core/runtime/config.d.mts.map +0 -1
- package/dist/core/runtime/config.mjs +0 -33
- package/dist/core/runtime/config.mjs.map +0 -1
- package/dist/core/runtime/context.d.mts +0 -50
- package/dist/core/runtime/context.d.mts.map +0 -1
- package/dist/core/runtime/context.mjs +0 -46
- package/dist/core/runtime/context.mjs.map +0 -1
- package/dist/core/runtime/ingest-target.d.mts +0 -10
- package/dist/core/runtime/ingest-target.d.mts.map +0 -1
- package/dist/core/runtime/ingest-target.mjs +0 -15
- package/dist/core/runtime/ingest-target.mjs.map +0 -1
- package/dist/core/runtime/native-fetch.d.mts +0 -32
- package/dist/core/runtime/native-fetch.d.mts.map +0 -1
- package/dist/core/runtime/native-fetch.mjs +0 -49
- package/dist/core/runtime/native-fetch.mjs.map +0 -1
- package/dist/core/schemas.d.mts +0 -26
- package/dist/core/schemas.d.mts.map +0 -1
- package/dist/core/schemas.mjs +0 -1
- package/dist/effect/errors.d.mts +0 -22
- package/dist/effect/errors.d.mts.map +0 -1
- package/dist/effect/errors.mjs +0 -17
- package/dist/effect/errors.mjs.map +0 -1
- package/dist/effect/layers/circuit-breaker.layer.d.mts +0 -9
- package/dist/effect/layers/circuit-breaker.layer.d.mts.map +0 -1
- package/dist/effect/layers/circuit-breaker.layer.mjs +0 -9
- package/dist/effect/layers/circuit-breaker.layer.mjs.map +0 -1
- package/dist/effect/layers/circuit-breaker.layer.test-layer.d.mts +0 -18
- package/dist/effect/layers/circuit-breaker.layer.test-layer.d.mts.map +0 -1
- package/dist/effect/layers/circuit-breaker.layer.test-layer.mjs +0 -43
- package/dist/effect/layers/circuit-breaker.layer.test-layer.mjs.map +0 -1
- package/dist/effect/layers/config.layer.d.mts +0 -13
- package/dist/effect/layers/config.layer.d.mts.map +0 -1
- package/dist/effect/layers/config.layer.mjs +0 -21
- package/dist/effect/layers/config.layer.mjs.map +0 -1
- package/dist/effect/layers/context.layer.d.mts +0 -12
- package/dist/effect/layers/context.layer.d.mts.map +0 -1
- package/dist/effect/layers/context.layer.mjs +0 -14
- package/dist/effect/layers/context.layer.mjs.map +0 -1
- package/dist/effect/layers/http.layer.d.mts +0 -21
- package/dist/effect/layers/http.layer.d.mts.map +0 -1
- package/dist/effect/layers/http.layer.mjs +0 -118
- package/dist/effect/layers/http.layer.mjs.map +0 -1
- package/dist/effect/layers/queue.layer.d.mts +0 -31
- package/dist/effect/layers/queue.layer.d.mts.map +0 -1
- package/dist/effect/layers/queue.layer.mjs +0 -257
- package/dist/effect/layers/queue.layer.mjs.map +0 -1
- package/dist/effect/layers/queue.layer.test-layer.d.mts +0 -19
- package/dist/effect/layers/queue.layer.test-layer.d.mts.map +0 -1
- package/dist/effect/layers/queue.layer.test-layer.mjs +0 -44
- package/dist/effect/layers/queue.layer.test-layer.mjs.map +0 -1
- package/dist/effect/layers/session.layer.d.mts +0 -34
- package/dist/effect/layers/session.layer.d.mts.map +0 -1
- package/dist/effect/layers/session.layer.mjs +0 -127
- package/dist/effect/layers/session.layer.mjs.map +0 -1
- package/dist/effect/layers/storage.layer.d.mts +0 -50
- package/dist/effect/layers/storage.layer.d.mts.map +0 -1
- package/dist/effect/layers/storage.layer.mjs +0 -180
- package/dist/effect/layers/storage.layer.mjs.map +0 -1
- package/dist/effect/layers/test-utils.d.mts +0 -19
- package/dist/effect/layers/test-utils.d.mts.map +0 -1
- package/dist/effect/layers/test-utils.mjs +0 -32
- package/dist/effect/layers/test-utils.mjs.map +0 -1
- package/dist/effect/runtime-services.d.mts +0 -23
- package/dist/effect/runtime-services.d.mts.map +0 -1
- package/dist/effect/runtime-services.mjs +0 -79
- package/dist/effect/runtime-services.mjs.map +0 -1
- package/dist/effect/tags.d.mts +0 -58
- package/dist/effect/tags.d.mts.map +0 -1
- package/dist/effect/tags.mjs +0 -7
- package/dist/effect/tags.mjs.map +0 -1
- package/dist/hooks/use-runtime-and-plugins.d.mts +0 -7
- package/dist/hooks/use-runtime-and-plugins.d.mts.map +0 -1
- package/dist/hooks/use-runtime-and-plugins.mjs +0 -121
- package/dist/hooks/use-runtime-and-plugins.mjs.map +0 -1
- package/dist/hooks/use-session.d.mts +0 -40
- package/dist/hooks/use-session.d.mts.map +0 -1
- package/dist/hooks/use-session.mjs +0 -96
- package/dist/hooks/use-session.mjs.map +0 -1
- package/dist/package.mjs +0 -103
- package/dist/package.mjs.map +0 -1
- package/dist/server/auth.d.mts +0 -15
- package/dist/server/auth.d.mts.map +0 -1
- package/dist/server/auth.mjs +0 -45
- package/dist/server/auth.mjs.map +0 -1
- package/dist/server/capture.d.mts +0 -34
- package/dist/server/capture.d.mts.map +0 -1
- package/dist/server/capture.mjs +0 -172
- package/dist/server/capture.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-info.test-layer.d.mts","names":[],"sources":["../../../../src/core/plugins/services/session-info.test-layer.ts"],"mappings":";;;;UAIU,SAAA;EAAA,SACC,SAAA;AAAA;AAAA,cAGL,SAAA;EAAA;;cAIO,wBAAA,GAAwB,OAAA;EAAA"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { SessionInfo } from "./session-info.mjs";
|
|
2
|
-
import { Effect, Layer, Ref, Runtime } from "effect";
|
|
3
|
-
|
|
4
|
-
//#region src/core/plugins/services/session-info.test-layer.ts
|
|
5
|
-
const TestState = { make: () => Ref.make({ sessionId: null }) };
|
|
6
|
-
const makeSessionInfoTestLayer = Effect.fn("makeSessionInfoTestLayer")(function* (initial) {
|
|
7
|
-
const runtime = yield* Effect.runtime();
|
|
8
|
-
const stateRef = yield* TestState.make();
|
|
9
|
-
if (initial?.sessionId !== void 0) yield* Ref.set(stateRef, { sessionId: initial.sessionId });
|
|
10
|
-
return {
|
|
11
|
-
stateRef,
|
|
12
|
-
layer: Layer.succeed(SessionInfo, SessionInfo.of({
|
|
13
|
-
getSessionId: Ref.get(stateRef).pipe(Effect.map((s) => s.sessionId)),
|
|
14
|
-
getSessionIdSync: () => Runtime.runSync(runtime)(Ref.get(stateRef)).sessionId
|
|
15
|
-
}))
|
|
16
|
-
};
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
//#endregion
|
|
20
|
-
export { makeSessionInfoTestLayer };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-info.test-layer.mjs","names":[],"sources":["../../../../src/core/plugins/services/session-info.test-layer.ts"],"sourcesContent":["import { Effect, Layer, Ref, Runtime } from \"effect\";\n\nimport { SessionInfo } from \"./session-info.js\";\n\ninterface TestState {\n readonly sessionId: string | null;\n}\n\nconst TestState = {\n make: () => Ref.make<TestState>({ sessionId: null }),\n} as const;\n\nexport const makeSessionInfoTestLayer = Effect.fn(\"makeSessionInfoTestLayer\")(\n function* (initial?: { readonly sessionId?: string | null }) {\n const runtime = yield* Effect.runtime();\n const stateRef = yield* TestState.make();\n\n if (initial?.sessionId !== undefined) {\n yield* Ref.set(stateRef, { sessionId: initial.sessionId });\n }\n\n const layer = Layer.succeed(\n SessionInfo,\n SessionInfo.of({\n getSessionId: Ref.get(stateRef).pipe(Effect.map((s) => s.sessionId)),\n getSessionIdSync: () =>\n Runtime.runSync(runtime)(Ref.get(stateRef)).sessionId,\n })\n );\n\n return { stateRef, layer };\n }\n);\n"],"mappings":";;;;AAQA,MAAM,YAAY,EAChB,YAAY,IAAI,KAAgB,EAAE,WAAW,MAAM,CAAC,EACrD;AAED,MAAa,2BAA2B,OAAO,GAAG,2BAA2B,CAC3E,WAAW,SAAkD;CAC3D,MAAM,UAAU,OAAO,OAAO,SAAS;CACvC,MAAM,WAAW,OAAO,UAAU,MAAM;AAExC,KAAI,SAAS,cAAc,OACzB,QAAO,IAAI,IAAI,UAAU,EAAE,WAAW,QAAQ,WAAW,CAAC;AAY5D,QAAO;EAAE;EAAU,OATL,MAAM,QAClB,aACA,YAAY,GAAG;GACb,cAAc,IAAI,IAAI,SAAS,CAAC,KAAK,OAAO,KAAK,MAAM,EAAE,UAAU,CAAC;GACpE,wBACE,QAAQ,QAAQ,QAAQ,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;GAC/C,CAAC,CACH;EAEyB;EAE7B"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Config } from "@interfere/types/sdk/config";
|
|
2
|
-
import { Runtime } from "@interfere/types/sdk/runtime";
|
|
3
|
-
|
|
4
|
-
//#region src/core/runtime/config.d.ts
|
|
5
|
-
declare function getRuntime(): Runtime;
|
|
6
|
-
declare function initConfig(input: unknown): void;
|
|
7
|
-
declare function getConfig(): Config;
|
|
8
|
-
interface IngestTarget {
|
|
9
|
-
headers: Headers;
|
|
10
|
-
url: string;
|
|
11
|
-
}
|
|
12
|
-
declare function resolveIngestTarget(): IngestTarget;
|
|
13
|
-
//#endregion
|
|
14
|
-
export { IngestTarget, getConfig, getRuntime, initConfig, resolveIngestTarget };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.mts","names":[],"sources":["../../../src/core/runtime/config.ts"],"mappings":";;;;iBAKgB,UAAA,CAAA,GAAc,OAAA;AAAA,iBAId,UAAA,CAAW,KAAA;AAAA,iBAMX,SAAA,CAAA,GAAa,MAAA;AAAA,UAQZ,YAAA;EACf,OAAA,EAAS,OAAA;EACT,GAAA;AAAA;AAAA,iBAGc,mBAAA,CAAA,GAAuB,YAAA"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { configSchema } from "@interfere/types/sdk/config";
|
|
2
|
-
import { inferRuntime } from "@interfere/types/sdk/runtime";
|
|
3
|
-
|
|
4
|
-
//#region src/core/runtime/config.ts
|
|
5
|
-
let currentConfig;
|
|
6
|
-
function getRuntime() {
|
|
7
|
-
return inferRuntime({ nextRuntime: process.env.NEXT_RUNTIME });
|
|
8
|
-
}
|
|
9
|
-
function initConfig(input) {
|
|
10
|
-
currentConfig = {
|
|
11
|
-
...configSchema.parse(input),
|
|
12
|
-
runtime: getRuntime()
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
function getConfig() {
|
|
16
|
-
if (!currentConfig) throw new Error("Config not initialized");
|
|
17
|
-
return currentConfig;
|
|
18
|
-
}
|
|
19
|
-
function resolveIngestTarget() {
|
|
20
|
-
const cfg = getConfig();
|
|
21
|
-
if ("proxyUrl" in cfg) return {
|
|
22
|
-
url: cfg.proxyUrl,
|
|
23
|
-
headers: new Headers([["Content-Type", "application/json"]])
|
|
24
|
-
};
|
|
25
|
-
if ("ingestUrl" in cfg && "surfaceToken" in cfg) return {
|
|
26
|
-
url: cfg.ingestUrl,
|
|
27
|
-
headers: new Headers([["Content-Type", "application/json"], ["x-interfere-pub-token", cfg.surfaceToken]])
|
|
28
|
-
};
|
|
29
|
-
throw new Error("Invalid SDK config: must provide proxyUrl or (ingestUrl + surfaceToken)");
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
//#endregion
|
|
33
|
-
export { getConfig, getRuntime, initConfig, resolveIngestTarget };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.mjs","names":[],"sources":["../../../src/core/runtime/config.ts"],"sourcesContent":["import { type Config, configSchema } from \"@interfere/types/sdk/config\";\nimport { inferRuntime, type Runtime } from \"@interfere/types/sdk/runtime\";\n\nlet currentConfig: (Config & { runtime: Runtime }) | undefined;\n\nexport function getRuntime(): Runtime {\n return inferRuntime({ nextRuntime: process.env.NEXT_RUNTIME });\n}\n\nexport function initConfig(input: unknown) {\n const parsed = configSchema.parse(input);\n\n currentConfig = { ...parsed, runtime: getRuntime() };\n}\n\nexport function getConfig(): Config {\n if (!currentConfig) {\n throw new Error(\"Config not initialized\");\n }\n\n return currentConfig;\n}\n\nexport interface IngestTarget {\n headers: Headers;\n url: string;\n}\n\nexport function resolveIngestTarget(): IngestTarget {\n const cfg = getConfig();\n\n if (\"proxyUrl\" in cfg) {\n return {\n url: cfg.proxyUrl,\n headers: new Headers([[\"Content-Type\", \"application/json\"]]),\n };\n }\n\n if (\"ingestUrl\" in cfg && \"surfaceToken\" in cfg) {\n return {\n url: cfg.ingestUrl,\n headers: new Headers([\n [\"Content-Type\", \"application/json\"],\n [\"x-interfere-pub-token\", cfg.surfaceToken],\n ]),\n };\n }\n\n throw new Error(\n \"Invalid SDK config: must provide proxyUrl or (ingestUrl + surfaceToken)\"\n );\n}\n"],"mappings":";;;;AAGA,IAAI;AAEJ,SAAgB,aAAsB;AACpC,QAAO,aAAa,EAAE,aAAa,QAAQ,IAAI,cAAc,CAAC;;AAGhE,SAAgB,WAAW,OAAgB;AAGzC,iBAAgB;EAAE,GAFH,aAAa,MAAM,MAAM;EAEX,SAAS,YAAY;EAAE;;AAGtD,SAAgB,YAAoB;AAClC,KAAI,CAAC,cACH,OAAM,IAAI,MAAM,yBAAyB;AAG3C,QAAO;;AAQT,SAAgB,sBAAoC;CAClD,MAAM,MAAM,WAAW;AAEvB,KAAI,cAAc,IAChB,QAAO;EACL,KAAK,IAAI;EACT,SAAS,IAAI,QAAQ,CAAC,CAAC,gBAAgB,mBAAmB,CAAC,CAAC;EAC7D;AAGH,KAAI,eAAe,OAAO,kBAAkB,IAC1C,QAAO;EACL,KAAK,IAAI;EACT,SAAS,IAAI,QAAQ,CACnB,CAAC,gBAAgB,mBAAmB,EACpC,CAAC,yBAAyB,IAAI,aAAa,CAC5C,CAAC;EACH;AAGH,OAAM,IAAI,MACR,0EACD"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Effect } from "effect";
|
|
2
|
-
import * as _ua_parser_js_pro_enterprise0 from "@ua-parser-js/pro-enterprise";
|
|
3
|
-
import { IResult } from "@ua-parser-js/pro-enterprise";
|
|
4
|
-
|
|
5
|
-
//#region src/core/runtime/context.d.ts
|
|
6
|
-
interface ScreenProperties {
|
|
7
|
-
screen: {
|
|
8
|
-
screen_height: number;
|
|
9
|
-
screen_width: number;
|
|
10
|
-
};
|
|
11
|
-
viewport: {
|
|
12
|
-
viewport_width: number;
|
|
13
|
-
viewport_height: number;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
interface CaptureSourceProperties {
|
|
17
|
-
sdk: {
|
|
18
|
-
name: string;
|
|
19
|
-
version: string;
|
|
20
|
-
language: string;
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
type ContextProperties = ScreenProperties & CaptureSourceProperties & IResult & Record<string, unknown>;
|
|
24
|
-
declare const getContextProperties: () => Effect.Effect<{
|
|
25
|
-
sdk: {
|
|
26
|
-
name: string;
|
|
27
|
-
version: string;
|
|
28
|
-
language: string;
|
|
29
|
-
};
|
|
30
|
-
screen: {
|
|
31
|
-
screen_height: number;
|
|
32
|
-
screen_width: number;
|
|
33
|
-
};
|
|
34
|
-
viewport: {
|
|
35
|
-
viewport_width: number;
|
|
36
|
-
viewport_height: number;
|
|
37
|
-
};
|
|
38
|
-
browser: _ua_parser_js_pro_enterprise0.IBrowser;
|
|
39
|
-
ua: string;
|
|
40
|
-
cpu: _ua_parser_js_pro_enterprise0.ICPU;
|
|
41
|
-
device: _ua_parser_js_pro_enterprise0.IDevice;
|
|
42
|
-
engine: _ua_parser_js_pro_enterprise0.IEngine;
|
|
43
|
-
os: _ua_parser_js_pro_enterprise0.IOS;
|
|
44
|
-
is(val: string): boolean;
|
|
45
|
-
toString(): string;
|
|
46
|
-
withClientHints(): IResult | PromiseLike<IResult>;
|
|
47
|
-
withFeatureCheck(): IResult | PromiseLike<IResult>;
|
|
48
|
-
}, never, never>;
|
|
49
|
-
//#endregion
|
|
50
|
-
export { ContextProperties, getContextProperties };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.mts","names":[],"sources":["../../../src/core/runtime/context.ts"],"mappings":";;;;;UAKU,gBAAA;EACR,MAAA;IACE,aAAA;IACA,YAAA;EAAA;EAEF,QAAA;IACE,cAAA;IACA,eAAA;EAAA;AAAA;AAAA,UAIM,uBAAA;EACR,GAAA;IACE,IAAA;IACA,OAAA;IACA,QAAA;EAAA;AAAA;AAAA,KAIQ,iBAAA,GAAoB,gBAAA,GAC9B,uBAAA,GACA,OAAA,GACA,MAAA;AAAA,cAEW,oBAAA,QAAoB,MAAA,CAAA,MAAA;;IAX7B,IAAA;IACA,OAAA;IACA,QAAA;EAAA;;IAbA,aAAA;IACA,YAAA;EAAA;;IAGA,cAAA;IACA,eAAA;EAAA;WA8CH,6BAAA,CAAA,QAAA"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import package_default from "../../package.mjs";
|
|
2
|
-
import { Effect } from "effect";
|
|
3
|
-
import { UAParser } from "@ua-parser-js/pro-enterprise";
|
|
4
|
-
|
|
5
|
-
//#region src/core/runtime/context.ts
|
|
6
|
-
const getContextProperties = Effect.fn("getContextProperties")(function* () {
|
|
7
|
-
if (typeof window === "undefined") throw new Error("getContextProperties can only be called in the browser environment");
|
|
8
|
-
const userAgent = window.navigator.userAgent;
|
|
9
|
-
const parser = UAParser(userAgent);
|
|
10
|
-
const result = yield* Effect.sync(() => parser.withClientHints());
|
|
11
|
-
const browser = yield* Effect.sync(() => {
|
|
12
|
-
if (!result.browser) return null;
|
|
13
|
-
return result.browser.withFeatureCheck();
|
|
14
|
-
});
|
|
15
|
-
return {
|
|
16
|
-
...result,
|
|
17
|
-
...browser ? { browser } : {},
|
|
18
|
-
...getScreenProperties(),
|
|
19
|
-
...getCaptureSourceProperties()
|
|
20
|
-
};
|
|
21
|
-
});
|
|
22
|
-
function getScreenProperties() {
|
|
23
|
-
if (typeof window === "undefined") throw new Error("getScreenProperties can only be called in the browser environment");
|
|
24
|
-
return {
|
|
25
|
-
viewport: {
|
|
26
|
-
viewport_width: window.innerWidth,
|
|
27
|
-
viewport_height: window.innerHeight
|
|
28
|
-
},
|
|
29
|
-
screen: {
|
|
30
|
-
screen_height: window.screen.height,
|
|
31
|
-
screen_width: window.screen.width
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
function getCaptureSourceProperties() {
|
|
36
|
-
if (typeof window === "undefined") throw new Error("getCaptureSourceProperties can only be called in the browser environment");
|
|
37
|
-
const { name, version } = package_default;
|
|
38
|
-
return { sdk: {
|
|
39
|
-
name,
|
|
40
|
-
version,
|
|
41
|
-
language: "javascript"
|
|
42
|
-
} };
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
//#endregion
|
|
46
|
-
export { getContextProperties };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.mjs","names":["packageJson"],"sources":["../../../src/core/runtime/context.ts"],"sourcesContent":["import { type IResult, UAParser } from \"@ua-parser-js/pro-enterprise\";\nimport { Effect } from \"effect\";\n\nimport packageJson from \"../../../package.json\" with { type: \"json\" };\n\ninterface ScreenProperties {\n screen: {\n screen_height: number;\n screen_width: number;\n };\n viewport: {\n viewport_width: number;\n viewport_height: number;\n };\n}\n\ninterface CaptureSourceProperties {\n sdk: {\n name: string;\n version: string;\n language: string;\n };\n}\n\nexport type ContextProperties = ScreenProperties &\n CaptureSourceProperties &\n IResult &\n Record<string, unknown>;\n\nexport const getContextProperties = Effect.fn(\"getContextProperties\")(\n function* () {\n if (typeof window === \"undefined\") {\n throw new Error(\n \"getContextProperties can only be called in the browser environment\"\n );\n }\n\n const userAgent = window.navigator.userAgent;\n const parser = UAParser(userAgent);\n\n const result = (yield* Effect.sync(() =>\n parser.withClientHints()\n )) as IResult;\n\n const browser = (yield* Effect.sync(() => {\n if (!result.browser) {\n return null;\n }\n return result.browser.withFeatureCheck();\n })) as IResult[\"browser\"] | null;\n\n return {\n ...result,\n ...(browser ? { browser } : {}),\n ...getScreenProperties(),\n ...getCaptureSourceProperties(),\n } satisfies ContextProperties;\n }\n);\n\nfunction getScreenProperties(): ScreenProperties {\n if (typeof window === \"undefined\") {\n throw new Error(\n \"getScreenProperties can only be called in the browser environment\"\n );\n }\n\n return {\n viewport: {\n viewport_width: window.innerWidth,\n viewport_height: window.innerHeight,\n },\n screen: {\n screen_height: window.screen.height,\n screen_width: window.screen.width,\n },\n };\n}\n\nfunction getCaptureSourceProperties(): CaptureSourceProperties {\n if (typeof window === \"undefined\") {\n throw new Error(\n \"getCaptureSourceProperties can only be called in the browser environment\"\n );\n }\n\n const { name, version } = packageJson;\n\n return {\n sdk: {\n name,\n version,\n language: \"javascript\",\n },\n };\n}\n"],"mappings":";;;;;AA6BA,MAAa,uBAAuB,OAAO,GAAG,uBAAuB,CACnE,aAAa;AACX,KAAI,OAAO,WAAW,YACpB,OAAM,IAAI,MACR,qEACD;CAGH,MAAM,YAAY,OAAO,UAAU;CACnC,MAAM,SAAS,SAAS,UAAU;CAElC,MAAM,SAAU,OAAO,OAAO,WAC5B,OAAO,iBAAiB,CACzB;CAED,MAAM,UAAW,OAAO,OAAO,WAAW;AACxC,MAAI,CAAC,OAAO,QACV,QAAO;AAET,SAAO,OAAO,QAAQ,kBAAkB;GACxC;AAEF,QAAO;EACL,GAAG;EACH,GAAI,UAAU,EAAE,SAAS,GAAG,EAAE;EAC9B,GAAG,qBAAqB;EACxB,GAAG,4BAA4B;EAChC;EAEJ;AAED,SAAS,sBAAwC;AAC/C,KAAI,OAAO,WAAW,YACpB,OAAM,IAAI,MACR,oEACD;AAGH,QAAO;EACL,UAAU;GACR,gBAAgB,OAAO;GACvB,iBAAiB,OAAO;GACzB;EACD,QAAQ;GACN,eAAe,OAAO,OAAO;GAC7B,cAAc,OAAO,OAAO;GAC7B;EACF;;AAGH,SAAS,6BAAsD;AAC7D,KAAI,OAAO,WAAW,YACpB,OAAM,IAAI,MACR,2EACD;CAGH,MAAM,EAAE,MAAM,YAAYA;AAE1B,QAAO,EACL,KAAK;EACH;EACA;EACA,UAAU;EACX,EACF"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Config } from "@interfere/types/sdk/config";
|
|
2
|
-
|
|
3
|
-
//#region src/core/runtime/ingest-target.d.ts
|
|
4
|
-
interface IngestTarget {
|
|
5
|
-
headers: Headers;
|
|
6
|
-
url: string;
|
|
7
|
-
}
|
|
8
|
-
declare function deriveIngestTarget(config: Config): IngestTarget;
|
|
9
|
-
//#endregion
|
|
10
|
-
export { IngestTarget, deriveIngestTarget };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ingest-target.d.mts","names":[],"sources":["../../../src/core/runtime/ingest-target.ts"],"mappings":";;;UAEiB,YAAA;EACf,OAAA,EAAS,OAAA;EACT,GAAA;AAAA;AAAA,iBAGc,kBAAA,CAAmB,MAAA,EAAQ,MAAA,GAAS,YAAA"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
//#region src/core/runtime/ingest-target.ts
|
|
2
|
-
function deriveIngestTarget(config) {
|
|
3
|
-
if ("proxyUrl" in config) return {
|
|
4
|
-
url: config.proxyUrl,
|
|
5
|
-
headers: new Headers([["Content-Type", "application/json"]])
|
|
6
|
-
};
|
|
7
|
-
if ("ingestUrl" in config && "surfaceToken" in config) return {
|
|
8
|
-
url: config.ingestUrl,
|
|
9
|
-
headers: new Headers([["Content-Type", "application/json"], ["x-interfere-pub-token", config.surfaceToken]])
|
|
10
|
-
};
|
|
11
|
-
throw new Error("Invalid SDK config: must provide proxyUrl or (ingestUrl + surfaceToken)");
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
export { deriveIngestTarget };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ingest-target.mjs","names":[],"sources":["../../../src/core/runtime/ingest-target.ts"],"sourcesContent":["import type { Config } from \"@interfere/types/sdk/config\";\n\nexport interface IngestTarget {\n headers: Headers;\n url: string;\n}\n\nexport function deriveIngestTarget(config: Config): IngestTarget {\n if (\"proxyUrl\" in config) {\n return {\n url: config.proxyUrl,\n headers: new Headers([[\"Content-Type\", \"application/json\"]]),\n };\n }\n\n if (\"ingestUrl\" in config && \"surfaceToken\" in config) {\n return {\n url: config.ingestUrl,\n headers: new Headers([\n [\"Content-Type\", \"application/json\"],\n [\"x-interfere-pub-token\", config.surfaceToken],\n ]),\n };\n }\n\n throw new Error(\n \"Invalid SDK config: must provide proxyUrl or (ingestUrl + surfaceToken)\"\n );\n}\n"],"mappings":";AAOA,SAAgB,mBAAmB,QAA8B;AAC/D,KAAI,cAAc,OAChB,QAAO;EACL,KAAK,OAAO;EACZ,SAAS,IAAI,QAAQ,CAAC,CAAC,gBAAgB,mBAAmB,CAAC,CAAC;EAC7D;AAGH,KAAI,eAAe,UAAU,kBAAkB,OAC7C,QAAO;EACL,KAAK,OAAO;EACZ,SAAS,IAAI,QAAQ,CACnB,CAAC,gBAAgB,mBAAmB,EACpC,CAAC,yBAAyB,OAAO,aAAa,CAC/C,CAAC;EACH;AAGH,OAAM,IAAI,MACR,0EACD"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
//#region src/core/runtime/native-fetch.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* Native Fetch Store
|
|
4
|
-
*
|
|
5
|
-
* Captures the pristine `fetch` API before any plugins patch it.
|
|
6
|
-
* This prevents infinite loops when the SDK's own requests fail:
|
|
7
|
-
*
|
|
8
|
-
* 1. Errors plugin patches window.fetch to capture failed requests
|
|
9
|
-
* 2. If SDK uses patched fetch and it fails → captured as error → tries to send → loop
|
|
10
|
-
* 3. By using native fetch for SDK requests, we avoid this recursion
|
|
11
|
-
*
|
|
12
|
-
* This module MUST be imported early, before any plugins initialize.
|
|
13
|
-
*
|
|
14
|
-
* @see https://fetch.spec.whatwg.org/#http-network-or-cache-fetch
|
|
15
|
-
*/
|
|
16
|
-
declare const nativeFetch: typeof fetch;
|
|
17
|
-
/**
|
|
18
|
-
* Symbol used to mark SDK-internal errors.
|
|
19
|
-
* When an error has this property set to true, the errors plugin should NOT
|
|
20
|
-
* capture it to avoid infinite recursion.
|
|
21
|
-
*/
|
|
22
|
-
declare const INTERFERE_INTERNAL_SYMBOL: unique symbol;
|
|
23
|
-
/**
|
|
24
|
-
* Checks if an error is marked as an SDK-internal error.
|
|
25
|
-
*/
|
|
26
|
-
declare function isInterfereInternalError(error: unknown): boolean;
|
|
27
|
-
/**
|
|
28
|
-
* Marks an error as SDK-internal to prevent recursive capture.
|
|
29
|
-
*/
|
|
30
|
-
declare function markAsInterfereInternal<T extends Error>(error: T): T;
|
|
31
|
-
//#endregion
|
|
32
|
-
export { INTERFERE_INTERNAL_SYMBOL, isInterfereInternalError, markAsInterfereInternal, nativeFetch };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native-fetch.d.mts","names":[],"sources":["../../../src/core/runtime/native-fetch.ts"],"mappings":";;AAkCA;;;;;AAOA;;;;;AAKA;;;cAZa,WAAA,SAAW,KAAA;;AAwBxB;;;;cAjBa,yBAAA;;;;iBAKG,wBAAA,CAAyB,KAAA;;;;iBAYzB,uBAAA,WAAkC,KAAA,CAAA,CAAO,KAAA,EAAO,CAAA,GAAI,CAAA"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
//#region src/core/runtime/native-fetch.ts
|
|
2
|
-
/**
|
|
3
|
-
* Native Fetch Store
|
|
4
|
-
*
|
|
5
|
-
* Captures the pristine `fetch` API before any plugins patch it.
|
|
6
|
-
* This prevents infinite loops when the SDK's own requests fail:
|
|
7
|
-
*
|
|
8
|
-
* 1. Errors plugin patches window.fetch to capture failed requests
|
|
9
|
-
* 2. If SDK uses patched fetch and it fails → captured as error → tries to send → loop
|
|
10
|
-
* 3. By using native fetch for SDK requests, we avoid this recursion
|
|
11
|
-
*
|
|
12
|
-
* This module MUST be imported early, before any plugins initialize.
|
|
13
|
-
*
|
|
14
|
-
* @see https://fetch.spec.whatwg.org/#http-network-or-cache-fetch
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* The pristine, un-patched fetch function.
|
|
18
|
-
* Captured at module load time, before any plugins can patch window.fetch.
|
|
19
|
-
*/
|
|
20
|
-
function getPristineFetch() {
|
|
21
|
-
if (typeof window !== "undefined") return window.fetch.bind(window);
|
|
22
|
-
if (typeof globalThis.fetch === "function") return globalThis.fetch.bind(globalThis);
|
|
23
|
-
return (() => {
|
|
24
|
-
throw new Error("fetch is not available in this environment");
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
const nativeFetch = getPristineFetch();
|
|
28
|
-
/**
|
|
29
|
-
* Symbol used to mark SDK-internal errors.
|
|
30
|
-
* When an error has this property set to true, the errors plugin should NOT
|
|
31
|
-
* capture it to avoid infinite recursion.
|
|
32
|
-
*/
|
|
33
|
-
const INTERFERE_INTERNAL_SYMBOL = Symbol.for("__interfere__");
|
|
34
|
-
/**
|
|
35
|
-
* Checks if an error is marked as an SDK-internal error.
|
|
36
|
-
*/
|
|
37
|
-
function isInterfereInternalError(error) {
|
|
38
|
-
return error !== null && typeof error === "object" && INTERFERE_INTERNAL_SYMBOL in error && error[INTERFERE_INTERNAL_SYMBOL] === true;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Marks an error as SDK-internal to prevent recursive capture.
|
|
42
|
-
*/
|
|
43
|
-
function markAsInterfereInternal(error) {
|
|
44
|
-
error[INTERFERE_INTERNAL_SYMBOL] = true;
|
|
45
|
-
return error;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
//#endregion
|
|
49
|
-
export { INTERFERE_INTERNAL_SYMBOL, isInterfereInternalError, markAsInterfereInternal, nativeFetch };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native-fetch.mjs","names":[],"sources":["../../../src/core/runtime/native-fetch.ts"],"sourcesContent":["/**\n * Native Fetch Store\n *\n * Captures the pristine `fetch` API before any plugins patch it.\n * This prevents infinite loops when the SDK's own requests fail:\n *\n * 1. Errors plugin patches window.fetch to capture failed requests\n * 2. If SDK uses patched fetch and it fails → captured as error → tries to send → loop\n * 3. By using native fetch for SDK requests, we avoid this recursion\n *\n * This module MUST be imported early, before any plugins initialize.\n *\n * @see https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\n */\n\n/**\n * The pristine, un-patched fetch function.\n * Captured at module load time, before any plugins can patch window.fetch.\n */\nfunction getPristineFetch(): typeof globalThis.fetch {\n if (typeof window !== \"undefined\") {\n return window.fetch.bind(window);\n }\n\n if (typeof globalThis.fetch === \"function\") {\n return globalThis.fetch.bind(globalThis);\n }\n\n // Fallback for environments without fetch (will fail at runtime if used)\n return (() => {\n throw new Error(\"fetch is not available in this environment\");\n }) as typeof globalThis.fetch;\n}\n\nexport const nativeFetch = getPristineFetch();\n\n/**\n * Symbol used to mark SDK-internal errors.\n * When an error has this property set to true, the errors plugin should NOT\n * capture it to avoid infinite recursion.\n */\nexport const INTERFERE_INTERNAL_SYMBOL = Symbol.for(\"__interfere__\");\n\n/**\n * Checks if an error is marked as an SDK-internal error.\n */\nexport function isInterfereInternalError(error: unknown): boolean {\n return (\n error !== null &&\n typeof error === \"object\" &&\n INTERFERE_INTERNAL_SYMBOL in error &&\n (error as Record<symbol, unknown>)[INTERFERE_INTERNAL_SYMBOL] === true\n );\n}\n\n/**\n * Marks an error as SDK-internal to prevent recursive capture.\n */\nexport function markAsInterfereInternal<T extends Error>(error: T): T {\n (error as T & { [INTERFERE_INTERNAL_SYMBOL]: boolean })[\n INTERFERE_INTERNAL_SYMBOL\n ] = true;\n return error;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAmBA,SAAS,mBAA4C;AACnD,KAAI,OAAO,WAAW,YACpB,QAAO,OAAO,MAAM,KAAK,OAAO;AAGlC,KAAI,OAAO,WAAW,UAAU,WAC9B,QAAO,WAAW,MAAM,KAAK,WAAW;AAI1C,eAAc;AACZ,QAAM,IAAI,MAAM,6CAA6C;;;AAIjE,MAAa,cAAc,kBAAkB;;;;;;AAO7C,MAAa,4BAA4B,OAAO,IAAI,gBAAgB;;;;AAKpE,SAAgB,yBAAyB,OAAyB;AAChE,QACE,UAAU,QACV,OAAO,UAAU,YACjB,6BAA6B,SAC5B,MAAkC,+BAA+B;;;;;AAOtE,SAAgB,wBAAyC,OAAa;AACpE,CAAC,MACC,6BACE;AACJ,QAAO"}
|
package/dist/core/schemas.d.mts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { capture } from "../client.mjs";
|
|
2
|
-
import { PluginDef } from "./plugins/define-plugin.mjs";
|
|
3
|
-
import { ErrorsAPI } from "./plugins/impl/errors/plugin.mjs";
|
|
4
|
-
import { ReplayAPI } from "./plugins/impl/replay/plugin.mjs";
|
|
5
|
-
import { ServerTracingAPI } from "./plugins/impl/server-tracing/plugin.mjs";
|
|
6
|
-
import { Envelope } from "@interfere/types/sdk/envelope";
|
|
7
|
-
|
|
8
|
-
//#region src/core/schemas.d.ts
|
|
9
|
-
type Plugin = PluginDef<string, unknown>;
|
|
10
|
-
interface ProviderContext {
|
|
11
|
-
capture: typeof capture;
|
|
12
|
-
}
|
|
13
|
-
type OptionalPluginApis = Partial<PluginApiMap>;
|
|
14
|
-
type InterfereProviderValue = ProviderContext & OptionalPluginApis;
|
|
15
|
-
interface KnownPluginApis {
|
|
16
|
-
aiSummary: null;
|
|
17
|
-
errors: ErrorsAPI;
|
|
18
|
-
pageEvents: null;
|
|
19
|
-
rageClick: null;
|
|
20
|
-
replay: ReplayAPI;
|
|
21
|
-
serverTracing: ServerTracingAPI;
|
|
22
|
-
}
|
|
23
|
-
type PluginApiMap = KnownPluginApis & Record<string, unknown>;
|
|
24
|
-
type Sender = (envelopes: Envelope[]) => Promise<void>;
|
|
25
|
-
//#endregion
|
|
26
|
-
export { InterfereProviderValue, KnownPluginApis, Plugin, PluginApiMap, Sender };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.mts","names":[],"sources":["../../src/core/schemas.ts"],"mappings":";;;;;;;;KAQY,MAAA,GAAS,SAAA;AAAA,UAGX,eAAA;EACR,OAAA,SAAgB,OAAA;AAAA;AAAA,KAGb,kBAAA,GAAqB,OAAA,CAAQ,YAAA;AAAA,KAEtB,sBAAA,GAAyB,eAAA,GAAkB,kBAAA;AAAA,UAEtC,eAAA;EACf,SAAA;EACA,MAAA,EAAQ,SAAA;EACR,UAAA;EACA,SAAA;EACA,MAAA,EAAQ,SAAA;EACR,aAAA,EAAe,gBAAA;AAAA;AAAA,KAIL,YAAA,GAAe,eAAA,GAAkB,MAAA;AAAA,KAGjC,MAAA,IAAU,SAAA,EAAW,QAAA,OAAe,OAAA"}
|
package/dist/core/schemas.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|
package/dist/effect/errors.d.mts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Schema } from "effect";
|
|
2
|
-
|
|
3
|
-
//#region src/effect/errors.d.ts
|
|
4
|
-
declare const HttpError_base: Schema.TaggedErrorClass<HttpError, "HttpError", {
|
|
5
|
-
readonly _tag: Schema.tag<"HttpError">;
|
|
6
|
-
} & {
|
|
7
|
-
status: typeof Schema.Number;
|
|
8
|
-
message: typeof Schema.String;
|
|
9
|
-
url: Schema.optional<typeof Schema.String>;
|
|
10
|
-
body: Schema.optional<typeof Schema.String>;
|
|
11
|
-
}>;
|
|
12
|
-
declare class HttpError extends HttpError_base {}
|
|
13
|
-
declare const ValidationError_base: Schema.TaggedErrorClass<ValidationError, "ValidationError", {
|
|
14
|
-
readonly _tag: Schema.tag<"ValidationError">;
|
|
15
|
-
} & {
|
|
16
|
-
message: typeof Schema.String;
|
|
17
|
-
payload: Schema.optional<typeof Schema.Unknown>;
|
|
18
|
-
issues: Schema.optional<typeof Schema.Unknown>;
|
|
19
|
-
}>;
|
|
20
|
-
declare class ValidationError extends ValidationError_base {}
|
|
21
|
-
//#endregion
|
|
22
|
-
export { HttpError, ValidationError };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.mts","names":[],"sources":["../../src/effect/errors.ts"],"mappings":";;;cAAgC,cAAA;;;;;;;;cAEnB,SAAA,SAAkB,cAAA;AAAA,cAK1B,oBAAA;;;;;;;cAEQ,eAAA,SAAwB,oBAAA"}
|
package/dist/effect/errors.mjs
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Schema } from "effect";
|
|
2
|
-
|
|
3
|
-
//#region src/effect/errors.ts
|
|
4
|
-
var HttpError = class extends Schema.TaggedError()("HttpError", {
|
|
5
|
-
status: Schema.Number,
|
|
6
|
-
message: Schema.String,
|
|
7
|
-
url: Schema.optional(Schema.String),
|
|
8
|
-
body: Schema.optional(Schema.String)
|
|
9
|
-
}) {};
|
|
10
|
-
var ValidationError = class extends Schema.TaggedError()("ValidationError", {
|
|
11
|
-
message: Schema.String,
|
|
12
|
-
payload: Schema.optional(Schema.Unknown),
|
|
13
|
-
issues: Schema.optional(Schema.Unknown)
|
|
14
|
-
}) {};
|
|
15
|
-
|
|
16
|
-
//#endregion
|
|
17
|
-
export { HttpError, ValidationError };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.mjs","names":[],"sources":["../../src/effect/errors.ts"],"sourcesContent":["import { Schema } from \"effect\";\n\nexport class HttpError extends Schema.TaggedError<HttpError>()(\"HttpError\", {\n status: Schema.Number,\n message: Schema.String,\n url: Schema.optional(Schema.String),\n body: Schema.optional(Schema.String),\n}) {}\n\nexport class ValidationError extends Schema.TaggedError<ValidationError>()(\n \"ValidationError\",\n {\n message: Schema.String,\n payload: Schema.optional(Schema.Unknown),\n issues: Schema.optional(Schema.Unknown),\n }\n) {}\n"],"mappings":";;;AAEA,IAAa,YAAb,cAA+B,OAAO,aAAwB,CAAC,aAAa;CAC1E,QAAQ,OAAO;CACf,SAAS,OAAO;CAChB,KAAK,OAAO,SAAS,OAAO,OAAO;CACnC,MAAM,OAAO,SAAS,OAAO,OAAO;CACrC,CAAC,CAAC;AAEH,IAAa,kBAAb,cAAqC,OAAO,aAA8B,CACxE,mBACA;CACE,SAAS,OAAO;CAChB,SAAS,OAAO,SAAS,OAAO,QAAQ;CACxC,QAAQ,OAAO,SAAS,OAAO,QAAQ;CACxC,CACF,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Context, Layer } from "effect";
|
|
2
|
-
import { CircuitBreaker } from "@interfere/effect-utils/circuit-breaker";
|
|
3
|
-
|
|
4
|
-
//#region src/effect/layers/circuit-breaker.layer.d.ts
|
|
5
|
-
declare const CircuitBreakerTag_base: Context.TagClass<CircuitBreakerTag, "@interfere/react/CircuitBreaker", CircuitBreaker>;
|
|
6
|
-
declare class CircuitBreakerTag extends CircuitBreakerTag_base {}
|
|
7
|
-
declare const CircuitBreakerLive: Layer.Layer<CircuitBreakerTag, never, never>;
|
|
8
|
-
//#endregion
|
|
9
|
-
export { CircuitBreakerLive, CircuitBreakerTag };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.layer.d.mts","names":[],"sources":["../../../src/effect/layers/circuit-breaker.layer.ts"],"mappings":";;;;cAMwC,sBAAA;cAE3B,iBAAA,SAA0B,sBAAA;AAAA,cAI1B,kBAAA,EAAkB,KAAA,CAAA,KAAA,CAAA,iBAAA"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Context, Layer } from "effect";
|
|
2
|
-
import { DEFAULT_CIRCUIT_BREAKER_CONFIG, createCircuitBreaker } from "@interfere/effect-utils/circuit-breaker";
|
|
3
|
-
|
|
4
|
-
//#region src/effect/layers/circuit-breaker.layer.ts
|
|
5
|
-
var CircuitBreakerTag = class extends Context.Tag("@interfere/react/CircuitBreaker")() {};
|
|
6
|
-
const CircuitBreakerLive = Layer.scoped(CircuitBreakerTag, createCircuitBreaker(DEFAULT_CIRCUIT_BREAKER_CONFIG));
|
|
7
|
-
|
|
8
|
-
//#endregion
|
|
9
|
-
export { CircuitBreakerLive, CircuitBreakerTag };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.layer.mjs","names":[],"sources":["../../../src/effect/layers/circuit-breaker.layer.ts"],"sourcesContent":["import {\n type CircuitBreaker,\n createCircuitBreaker,\n DEFAULT_CIRCUIT_BREAKER_CONFIG,\n} from \"@interfere/effect-utils/circuit-breaker\";\n\nimport { Context, Layer } from \"effect\";\n\nexport class CircuitBreakerTag extends Context.Tag(\n \"@interfere/react/CircuitBreaker\"\n)<CircuitBreakerTag, CircuitBreaker>() {}\n\nexport const CircuitBreakerLive = Layer.scoped(\n CircuitBreakerTag,\n createCircuitBreaker(DEFAULT_CIRCUIT_BREAKER_CONFIG)\n);\n"],"mappings":";;;;AAQA,IAAa,oBAAb,cAAuC,QAAQ,IAC7C,kCACD,EAAqC,CAAC;AAEvC,MAAa,qBAAqB,MAAM,OACtC,mBACA,qBAAqB,+BAA+B,CACrD"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { CircuitBreakerTag } from "./circuit-breaker.layer.mjs";
|
|
2
|
-
import { Effect, Layer, Ref } from "effect";
|
|
3
|
-
import { CircuitBreakerState } from "@interfere/effect-utils/circuit-breaker";
|
|
4
|
-
|
|
5
|
-
//#region src/effect/layers/circuit-breaker.layer.test-layer.d.ts
|
|
6
|
-
interface TestState {
|
|
7
|
-
readonly mode: CircuitBreakerState;
|
|
8
|
-
}
|
|
9
|
-
declare const TestState: {
|
|
10
|
-
readonly make: () => Effect.Effect<Ref.Ref<TestState>, never, never>;
|
|
11
|
-
};
|
|
12
|
-
declare const makeCircuitBreakerTestLayer: () => Effect.Effect<{
|
|
13
|
-
layer: Layer.Layer<CircuitBreakerTag, never, never>;
|
|
14
|
-
stateRef: Ref.Ref<TestState>;
|
|
15
|
-
setMode: (mode: CircuitBreakerState) => Effect.Effect<void, never, never>;
|
|
16
|
-
}, never, never>;
|
|
17
|
-
//#endregion
|
|
18
|
-
export { makeCircuitBreakerTestLayer };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.layer.test-layer.d.mts","names":[],"sources":["../../../src/effect/layers/circuit-breaker.layer.test-layer.ts"],"mappings":";;;;;UAaU,SAAA;EAAA,SACC,IAAA,EAAM,mBAAA;AAAA;AAAA,cAGX,SAAA;EAAA;;cAMO,2BAAA,QAA2B,MAAA,CAAA,MAAA"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { CircuitBreakerTag } from "./circuit-breaker.layer.mjs";
|
|
2
|
-
import { Clock, Effect, Layer, Ref } from "effect";
|
|
3
|
-
import { CircuitBreakerOpen } from "@interfere/effect-utils/circuit-breaker";
|
|
4
|
-
|
|
5
|
-
//#region src/effect/layers/circuit-breaker.layer.test-layer.ts
|
|
6
|
-
const TestState = { make: () => Ref.make({ mode: "closed" }) };
|
|
7
|
-
const BREAKER_LAST_FAILURE_OFFSET = 100;
|
|
8
|
-
const makeCircuitBreakerTestLayer = Effect.fn("makeCircuitBreakerTestLayer")(function* () {
|
|
9
|
-
const stateRef = yield* TestState.make();
|
|
10
|
-
const now = yield* Clock.currentTimeMillis;
|
|
11
|
-
const breakerData = yield* Ref.make({
|
|
12
|
-
state: "closed",
|
|
13
|
-
consecutiveFailures: 0,
|
|
14
|
-
consecutiveSuccesses: 0,
|
|
15
|
-
lastFailureTime: now - BREAKER_LAST_FAILURE_OFFSET,
|
|
16
|
-
halfOpenTestCount: 0
|
|
17
|
-
});
|
|
18
|
-
const protect = (eff) => Effect.gen(function* () {
|
|
19
|
-
if ((yield* Ref.get(stateRef)).mode === "open") return yield* new CircuitBreakerOpen({ message: "open" });
|
|
20
|
-
return yield* eff;
|
|
21
|
-
});
|
|
22
|
-
const service = {
|
|
23
|
-
protect,
|
|
24
|
-
getState: Ref.get(stateRef).pipe(Effect.map((s) => s.mode)),
|
|
25
|
-
breakerData
|
|
26
|
-
};
|
|
27
|
-
return {
|
|
28
|
-
layer: Layer.succeed(CircuitBreakerTag, service),
|
|
29
|
-
stateRef,
|
|
30
|
-
setMode: Effect.fn("CircuitBreakerTest.setMode")((mode) => Effect.gen(function* () {
|
|
31
|
-
const now = yield* Clock.currentTimeMillis;
|
|
32
|
-
yield* Ref.set(stateRef, { mode });
|
|
33
|
-
yield* Ref.update(breakerData, (d) => ({
|
|
34
|
-
...d,
|
|
35
|
-
state: mode,
|
|
36
|
-
lastFailureTime: mode === "open" ? now : d.lastFailureTime
|
|
37
|
-
}));
|
|
38
|
-
}))
|
|
39
|
-
};
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
//#endregion
|
|
43
|
-
export { makeCircuitBreakerTestLayer };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.layer.test-layer.mjs","names":[],"sources":["../../../src/effect/layers/circuit-breaker.layer.test-layer.ts"],"sourcesContent":["import {\n type CircuitBreaker,\n CircuitBreakerOpen,\n type CircuitBreakerState,\n} from \"@interfere/effect-utils/circuit-breaker\";\n\nimport { Clock, Effect, Layer, Ref } from \"effect\";\n\nimport { CircuitBreakerTag } from \"./circuit-breaker.layer.js\";\n\ntype CircuitBreakerData =\n CircuitBreaker[\"breakerData\"] extends Ref.Ref<infer A> ? A : never;\n\ninterface TestState {\n readonly mode: CircuitBreakerState;\n}\n\nconst TestState = {\n make: () => Ref.make<TestState>({ mode: \"closed\" }),\n} as const;\n\nconst BREAKER_LAST_FAILURE_OFFSET = 100;\n\nexport const makeCircuitBreakerTestLayer = Effect.fn(\n \"makeCircuitBreakerTestLayer\"\n)(function* () {\n const stateRef = yield* TestState.make();\n const now = yield* Clock.currentTimeMillis;\n\n const breakerData = yield* Ref.make<CircuitBreakerData>({\n state: \"closed\",\n consecutiveFailures: 0,\n consecutiveSuccesses: 0,\n lastFailureTime: now - BREAKER_LAST_FAILURE_OFFSET,\n halfOpenTestCount: 0,\n });\n\n const protect: CircuitBreaker[\"protect\"] = (eff) =>\n Effect.gen(function* () {\n const s = yield* Ref.get(stateRef);\n if (s.mode === \"open\") {\n return yield* new CircuitBreakerOpen({ message: \"open\" });\n }\n\n return yield* eff;\n });\n\n const getState: CircuitBreaker[\"getState\"] = Ref.get(stateRef).pipe(\n Effect.map((s) => s.mode)\n );\n\n const service: CircuitBreaker = { protect, getState, breakerData };\n const layer = Layer.succeed(CircuitBreakerTag, service);\n\n return {\n layer,\n stateRef,\n setMode: Effect.fn(\"CircuitBreakerTest.setMode\")(\n (mode: TestState[\"mode\"]) =>\n Effect.gen(function* () {\n const now = yield* Clock.currentTimeMillis;\n\n yield* Ref.set(stateRef, { mode });\n yield* Ref.update(breakerData, (d) => ({\n ...d,\n state: mode,\n lastFailureTime: mode === \"open\" ? now : d.lastFailureTime,\n }));\n })\n ),\n };\n});\n"],"mappings":";;;;;AAiBA,MAAM,YAAY,EAChB,YAAY,IAAI,KAAgB,EAAE,MAAM,UAAU,CAAC,EACpD;AAED,MAAM,8BAA8B;AAEpC,MAAa,8BAA8B,OAAO,GAChD,8BACD,CAAC,aAAa;CACb,MAAM,WAAW,OAAO,UAAU,MAAM;CACxC,MAAM,MAAM,OAAO,MAAM;CAEzB,MAAM,cAAc,OAAO,IAAI,KAAyB;EACtD,OAAO;EACP,qBAAqB;EACrB,sBAAsB;EACtB,iBAAiB,MAAM;EACvB,mBAAmB;EACpB,CAAC;CAEF,MAAM,WAAsC,QAC1C,OAAO,IAAI,aAAa;AAEtB,OADU,OAAO,IAAI,IAAI,SAAS,EAC5B,SAAS,OACb,QAAO,OAAO,IAAI,mBAAmB,EAAE,SAAS,QAAQ,CAAC;AAG3D,SAAO,OAAO;GACd;CAMJ,MAAM,UAA0B;EAAE;EAAS,UAJE,IAAI,IAAI,SAAS,CAAC,KAC7D,OAAO,KAAK,MAAM,EAAE,KAAK,CAC1B;EAEoD;EAAa;AAGlE,QAAO;EACL,OAHY,MAAM,QAAQ,mBAAmB,QAAQ;EAIrD;EACA,SAAS,OAAO,GAAG,6BAA6B,EAC7C,SACC,OAAO,IAAI,aAAa;GACtB,MAAM,MAAM,OAAO,MAAM;AAEzB,UAAO,IAAI,IAAI,UAAU,EAAE,MAAM,CAAC;AAClC,UAAO,IAAI,OAAO,cAAc,OAAO;IACrC,GAAG;IACH,OAAO;IACP,iBAAiB,SAAS,SAAS,MAAM,EAAE;IAC5C,EAAE;IACH,CACL;EACF;EACD"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Config } from "@interfere/types/sdk/config";
|
|
2
|
-
import { Runtime } from "@interfere/types/sdk/runtime";
|
|
3
|
-
|
|
4
|
-
//#region src/effect/layers/config.layer.d.ts
|
|
5
|
-
type SdkConfig = Config & {
|
|
6
|
-
runtime: Runtime;
|
|
7
|
-
};
|
|
8
|
-
interface ConfigService {
|
|
9
|
-
get: () => SdkConfig;
|
|
10
|
-
}
|
|
11
|
-
declare function createConfigService(input: unknown): ConfigService;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { ConfigService, SdkConfig, createConfigService };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.layer.d.mts","names":[],"sources":["../../../src/effect/layers/config.layer.ts"],"mappings":";;;;KAMY,SAAA,GAAY,MAAA;EAAW,OAAA,EAAS,OAAA;AAAA;AAAA,UAE3B,aAAA;EACf,GAAA,QAAW,SAAA;AAAA;AAAA,iBAQG,mBAAA,CAAoB,KAAA,YAAiB,aAAA"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { getRuntime } from "../../core/runtime/config.mjs";
|
|
2
|
-
import { configSchema } from "@interfere/types/sdk/config";
|
|
3
|
-
|
|
4
|
-
//#region src/effect/layers/config.layer.ts
|
|
5
|
-
const MAX_BATCH_SIZE = 1e3;
|
|
6
|
-
const MIN_BATCH_SIZE = 1;
|
|
7
|
-
const MAX_BATCH_MS = 6e4;
|
|
8
|
-
const MIN_BATCH_MS = 100;
|
|
9
|
-
function createConfigService(input) {
|
|
10
|
-
const parsed = configSchema.parse(input);
|
|
11
|
-
if (parsed.batch.size < MIN_BATCH_SIZE || parsed.batch.size > MAX_BATCH_SIZE) throw new Error(`Invalid batch.size: ${parsed.batch.size}. Must be between ${MIN_BATCH_SIZE} and ${MAX_BATCH_SIZE}`);
|
|
12
|
-
if (parsed.batch.ms < MIN_BATCH_MS || parsed.batch.ms > MAX_BATCH_MS) throw new Error(`Invalid batch.ms: ${parsed.batch.ms}. Must be between ${MIN_BATCH_MS}ms and ${MAX_BATCH_MS}ms`);
|
|
13
|
-
const current = {
|
|
14
|
-
...parsed,
|
|
15
|
-
runtime: getRuntime()
|
|
16
|
-
};
|
|
17
|
-
return { get: () => current };
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
//#endregion
|
|
21
|
-
export { createConfigService };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.layer.mjs","names":[],"sources":["../../../src/effect/layers/config.layer.ts"],"sourcesContent":["import type { Config } from \"@interfere/types/sdk/config\";\nimport { configSchema } from \"@interfere/types/sdk/config\";\nimport type { Runtime } from \"@interfere/types/sdk/runtime\";\n\nimport { getRuntime } from \"../../core/runtime/config.js\";\n\nexport type SdkConfig = Config & { runtime: Runtime };\n\nexport interface ConfigService {\n get: () => SdkConfig;\n}\n\nconst MAX_BATCH_SIZE = 1000;\nconst MIN_BATCH_SIZE = 1;\nconst MAX_BATCH_MS = 60_000;\nconst MIN_BATCH_MS = 100;\n\nexport function createConfigService(input: unknown): ConfigService {\n const parsed = configSchema.parse(input) as Required<Config>;\n\n // Validate batch configuration\n if (\n parsed.batch.size < MIN_BATCH_SIZE ||\n parsed.batch.size > MAX_BATCH_SIZE\n ) {\n throw new Error(\n `Invalid batch.size: ${parsed.batch.size}. Must be between ${MIN_BATCH_SIZE} and ${MAX_BATCH_SIZE}`\n );\n }\n\n if (parsed.batch.ms < MIN_BATCH_MS || parsed.batch.ms > MAX_BATCH_MS) {\n throw new Error(\n `Invalid batch.ms: ${parsed.batch.ms}. Must be between ${MIN_BATCH_MS}ms and ${MAX_BATCH_MS}ms`\n );\n }\n\n const current = { ...parsed, runtime: getRuntime() } as Config & {\n runtime: Runtime;\n };\n return {\n get: () => current,\n };\n}\n"],"mappings":";;;;AAYA,MAAM,iBAAiB;AACvB,MAAM,iBAAiB;AACvB,MAAM,eAAe;AACrB,MAAM,eAAe;AAErB,SAAgB,oBAAoB,OAA+B;CACjE,MAAM,SAAS,aAAa,MAAM,MAAM;AAGxC,KACE,OAAO,MAAM,OAAO,kBACpB,OAAO,MAAM,OAAO,eAEpB,OAAM,IAAI,MACR,uBAAuB,OAAO,MAAM,KAAK,oBAAoB,eAAe,OAAO,iBACpF;AAGH,KAAI,OAAO,MAAM,KAAK,gBAAgB,OAAO,MAAM,KAAK,aACtD,OAAM,IAAI,MACR,qBAAqB,OAAO,MAAM,GAAG,oBAAoB,aAAa,SAAS,aAAa,IAC7F;CAGH,MAAM,UAAU;EAAE,GAAG;EAAQ,SAAS,YAAY;EAAE;AAGpD,QAAO,EACL,WAAW,SACZ"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ContextProperties } from "../../core/runtime/context.mjs";
|
|
2
|
-
import { Context, Effect, Layer } from "effect";
|
|
3
|
-
|
|
4
|
-
//#region src/effect/layers/context.layer.d.ts
|
|
5
|
-
interface ContextService {
|
|
6
|
-
readonly getOnce: () => Effect.Effect<ContextProperties>;
|
|
7
|
-
}
|
|
8
|
-
declare const ContextServiceTag_base: Context.TagClass<ContextServiceTag, "@interfere/react/Context", ContextService>;
|
|
9
|
-
declare class ContextServiceTag extends ContextServiceTag_base {}
|
|
10
|
-
declare const ContextServiceLive: Layer.Layer<ContextServiceTag, never, never>;
|
|
11
|
-
//#endregion
|
|
12
|
-
export { ContextService, ContextServiceLive, ContextServiceTag };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.layer.d.mts","names":[],"sources":["../../../src/effect/layers/context.layer.ts"],"mappings":";;;;UAKiB,cAAA;EAAA,SACN,OAAA,QAAe,MAAA,CAAO,MAAA,CAAO,iBAAA;AAAA;AAAA,cACvC,sBAAA;cAEY,iBAAA,SAA0B,sBAAA;AAAA,cAK1B,kBAAA,EAAkB,KAAA,CAAA,KAAA,CAAA,iBAAA"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { getContextProperties } from "../../core/runtime/context.mjs";
|
|
2
|
-
import { Context, Effect, Layer } from "effect";
|
|
3
|
-
|
|
4
|
-
//#region src/effect/layers/context.layer.ts
|
|
5
|
-
var ContextServiceTag = class extends Context.Tag("@interfere/react/Context")() {};
|
|
6
|
-
const ContextServiceLive = Layer.succeed(ContextServiceTag, (() => {
|
|
7
|
-
let cached = null;
|
|
8
|
-
return { getOnce: () => (cached ? Effect.succeed(cached) : getContextProperties().pipe(Effect.tap((ctx) => Effect.sync(() => {
|
|
9
|
-
cached = ctx;
|
|
10
|
-
})))).pipe(Effect.withSpan("context.getOnce")) };
|
|
11
|
-
})());
|
|
12
|
-
|
|
13
|
-
//#endregion
|
|
14
|
-
export { ContextServiceLive, ContextServiceTag };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.layer.mjs","names":[],"sources":["../../../src/effect/layers/context.layer.ts"],"sourcesContent":["import { Context, Effect, Layer } from \"effect\";\n\nimport type { ContextProperties } from \"../../core/runtime/context.js\";\nimport { getContextProperties } from \"../../core/runtime/context.js\";\n\nexport interface ContextService {\n readonly getOnce: () => Effect.Effect<ContextProperties>;\n}\n\nexport class ContextServiceTag extends Context.Tag(\"@interfere/react/Context\")<\n ContextServiceTag,\n ContextService\n>() {}\n\nexport const ContextServiceLive = Layer.succeed(\n ContextServiceTag,\n (() => {\n let cached: ContextProperties | null = null;\n\n return {\n getOnce: () =>\n (cached\n ? Effect.succeed(cached)\n : getContextProperties().pipe(\n Effect.tap((ctx) =>\n Effect.sync(() => {\n cached = ctx;\n })\n )\n )\n ).pipe(Effect.withSpan(\"context.getOnce\")),\n } satisfies ContextService;\n })()\n);\n"],"mappings":";;;;AASA,IAAa,oBAAb,cAAuC,QAAQ,IAAI,2BAA2B,EAG3E,CAAC;AAEJ,MAAa,qBAAqB,MAAM,QACtC,0BACO;CACL,IAAI,SAAmC;AAEvC,QAAO,EACL,gBACG,SACG,OAAO,QAAQ,OAAO,GACtB,sBAAsB,CAAC,KACrB,OAAO,KAAK,QACV,OAAO,WAAW;AAChB,WAAS;GACT,CACH,CACF,EACH,KAAK,OAAO,SAAS,kBAAkB,CAAC,EAC7C;IACC,CACL"}
|