@oneuptime/react-native-replay 13.0.4
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/OneUptimeReactNativeReplay.podspec +20 -0
- package/README.md +264 -0
- package/android/build.gradle +36 -0
- package/android/consumer-rules.pro +26 -0
- package/android/src/main/AndroidManifest.xml +1 -0
- package/android/src/main/java/com/oneuptime/replay/OneUptimeReplayPackage.java +29 -0
- package/android/src/main/java/com/oneuptime/replay/OneUptimeReplayViewTreeModule.java +541 -0
- package/dist/index.cjs +4111 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.js +4088 -0
- package/dist/index.js.map +7 -0
- package/dist/types/ChunkBuffer.d.ts +47 -0
- package/dist/types/ChunkBuffer.d.ts.map +1 -0
- package/dist/types/Config.d.ts +59 -0
- package/dist/types/Config.d.ts.map +1 -0
- package/dist/types/Contract.d.ts +176 -0
- package/dist/types/Contract.d.ts.map +1 -0
- package/dist/types/Events.d.ts +14 -0
- package/dist/types/Events.d.ts.map +1 -0
- package/dist/types/MobileReplayRecorder.d.ts +176 -0
- package/dist/types/MobileReplayRecorder.d.ts.map +1 -0
- package/dist/types/NativeViewTree.d.ts +49 -0
- package/dist/types/NativeViewTree.d.ts.map +1 -0
- package/dist/types/Outbox.d.ts +29 -0
- package/dist/types/Outbox.d.ts.map +1 -0
- package/dist/types/ReplayProvider.d.ts +28 -0
- package/dist/types/ReplayProvider.d.ts.map +1 -0
- package/dist/types/Sanitize.d.ts +29 -0
- package/dist/types/Sanitize.d.ts.map +1 -0
- package/dist/types/Storage.d.ts +30 -0
- package/dist/types/Storage.d.ts.map +1 -0
- package/dist/types/TouchPrivacy.d.ts +15 -0
- package/dist/types/TouchPrivacy.d.ts.map +1 -0
- package/dist/types/Transport.d.ts +36 -0
- package/dist/types/Transport.d.ts.map +1 -0
- package/dist/types/ViewTreeSerializer.d.ts +29 -0
- package/dist/types/ViewTreeSerializer.d.ts.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/ios/OneUptimeReplayViewTreeModule.m +17 -0
- package/ios/OneUptimeReplayViewTreeModule.swift +239 -0
- package/package.json +66 -0
- package/react-native.config.js +15 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { RrwebEvent, SessionReplayFidelityNotice, SessionReplaySignalCounts } from "./Contract";
|
|
2
|
+
export interface BufferedReplaySegment {
|
|
3
|
+
payload: string;
|
|
4
|
+
eventCount: number;
|
|
5
|
+
startUnixMs: number;
|
|
6
|
+
endUnixMs: number;
|
|
7
|
+
hasFullSnapshot: boolean;
|
|
8
|
+
routes: Array<string>;
|
|
9
|
+
signals: SessionReplaySignalCounts;
|
|
10
|
+
fidelityNotices: Array<SessionReplayFidelityNotice>;
|
|
11
|
+
droppedEvents: number;
|
|
12
|
+
}
|
|
13
|
+
export default class ReplayChunkBuffer {
|
|
14
|
+
private events;
|
|
15
|
+
private approximateBytes;
|
|
16
|
+
private startUnixMs;
|
|
17
|
+
private endUnixMs;
|
|
18
|
+
private hasFullSnapshot;
|
|
19
|
+
private routes;
|
|
20
|
+
private readonly fidelity;
|
|
21
|
+
private signals;
|
|
22
|
+
private droppedEvents;
|
|
23
|
+
append(event: RrwebEvent, options?: {
|
|
24
|
+
route?: string;
|
|
25
|
+
fidelityNotices?: Array<SessionReplayFidelityNotice>;
|
|
26
|
+
signal?: keyof SessionReplaySignalCounts;
|
|
27
|
+
}): boolean;
|
|
28
|
+
appendMany(events: Array<RrwebEvent>, options?: {
|
|
29
|
+
route?: string;
|
|
30
|
+
fidelityNotices?: Array<SessionReplayFidelityNotice>;
|
|
31
|
+
}): number;
|
|
32
|
+
shouldFlush(): boolean;
|
|
33
|
+
isEmpty(): boolean;
|
|
34
|
+
take(): BufferedReplaySegment | null;
|
|
35
|
+
clear(): void;
|
|
36
|
+
private reset;
|
|
37
|
+
}
|
|
38
|
+
export declare class RollingReplayBuffer {
|
|
39
|
+
private segments;
|
|
40
|
+
private bytes;
|
|
41
|
+
private overflowed;
|
|
42
|
+
push(segment: BufferedReplaySegment, nowUnixMs: number): void;
|
|
43
|
+
drain(): Array<BufferedReplaySegment>;
|
|
44
|
+
clear(): void;
|
|
45
|
+
get length(): number;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=ChunkBuffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChunkBuffer.d.ts","sourceRoot":"","sources":["../../src/ChunkBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAMV,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,EAAE,yBAAyB,CAAC;IACnC,eAAe,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACpD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CACgB;IACzC,OAAO,CAAC,OAAO,CAAkD;IACjE,OAAO,CAAC,aAAa,CAAa;IAE3B,MAAM,CACX,KAAK,EAAE,UAAU,EACjB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrD,MAAM,CAAC,EAAE,MAAM,yBAAyB,CAAC;KAC1C,GACA,OAAO;IAuCH,UAAU,CACf,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,EACzB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC;KACtD,GACA,MAAM;IAWF,WAAW,IAAI,OAAO;IAItB,OAAO,IAAI,OAAO;IAIlB,IAAI,IAAI,qBAAqB,GAAG,IAAI;IAqBpC,KAAK,IAAI,IAAI;IAIpB,OAAO,CAAC,KAAK;CAWd;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,UAAU,CAAkB;IAE7B,IAAI,CAAC,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAkB7D,KAAK,IAAI,KAAK,CAAC,qBAAqB,CAAC;IAiBrC,KAAK,IAAI,IAAI;IAMpB,IAAW,MAAM,IAAI,MAAM,CAE1B;CACF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { SessionReplayCaptureTrigger, SessionReplayConsentMode, SessionReplayMaskingMode } from "./Contract";
|
|
2
|
+
export declare const CONFIG_FETCH_TIMEOUT_MS: number;
|
|
3
|
+
export interface ReplayFetchResponse {
|
|
4
|
+
ok: boolean;
|
|
5
|
+
status: number;
|
|
6
|
+
headers?: {
|
|
7
|
+
get(name: string): string | null;
|
|
8
|
+
};
|
|
9
|
+
json(): Promise<unknown>;
|
|
10
|
+
}
|
|
11
|
+
export type ReplayFetch = (input: string, init?: {
|
|
12
|
+
method?: string;
|
|
13
|
+
headers?: Record<string, string>;
|
|
14
|
+
body?: unknown;
|
|
15
|
+
signal?: AbortSignal;
|
|
16
|
+
}) => Promise<ReplayFetchResponse>;
|
|
17
|
+
export interface MobileReplayStartOptions {
|
|
18
|
+
/** Ingest origin, for example https://oneuptime.com. */
|
|
19
|
+
host: string;
|
|
20
|
+
/** OneUptime telemetry ingestion key. */
|
|
21
|
+
token: string;
|
|
22
|
+
/** Identifier of the OneUptime RUM application receiving the replay. */
|
|
23
|
+
appIdentifier: string;
|
|
24
|
+
/** Android applicationId or iOS bundle identifier. */
|
|
25
|
+
mobileAppIdentifier: string;
|
|
26
|
+
appName?: string;
|
|
27
|
+
appVersion?: string;
|
|
28
|
+
/** Optional opaque reference used by record-next-session targeting. */
|
|
29
|
+
userRef?: string;
|
|
30
|
+
captureIntervalMs?: number;
|
|
31
|
+
fetch?: ReplayFetch;
|
|
32
|
+
debug?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface ResolvedReplayConfig {
|
|
35
|
+
enabled: boolean;
|
|
36
|
+
captureTrigger: SessionReplayCaptureTrigger;
|
|
37
|
+
consentMode: SessionReplayConsentMode;
|
|
38
|
+
maskingMode: SessionReplayMaskingMode.MaskAllText;
|
|
39
|
+
samplePercentage: number;
|
|
40
|
+
captureUserIdentity: boolean;
|
|
41
|
+
configEpoch: number;
|
|
42
|
+
isTargeted: boolean;
|
|
43
|
+
disabledReason?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface ValidatedStartOptions extends MobileReplayStartOptions {
|
|
46
|
+
host: string;
|
|
47
|
+
token: string;
|
|
48
|
+
appIdentifier: string;
|
|
49
|
+
mobileAppIdentifier: string;
|
|
50
|
+
fetch: ReplayFetch;
|
|
51
|
+
}
|
|
52
|
+
export declare function normalizeMobileAppIdentifier(value: unknown): string | null;
|
|
53
|
+
export declare function normalizeIngestHost(value: unknown): string | null;
|
|
54
|
+
export declare function normalizeRumAppIdentifier(value: unknown): string | null;
|
|
55
|
+
export declare function validateStartOptions(options: MobileReplayStartOptions): ValidatedStartOptions | null;
|
|
56
|
+
export declare function mobileRequestHeaders(options: Pick<ValidatedStartOptions, "token" | "appIdentifier" | "mobileAppIdentifier" | "userRef">, includeUserRef?: boolean): Record<string, string>;
|
|
57
|
+
export declare function normalizeReplayConfig(value: unknown): ResolvedReplayConfig;
|
|
58
|
+
export declare function fetchReplayConfig(options: ValidatedStartOptions, includeUserRef?: boolean, revalidate?: boolean): Promise<ResolvedReplayConfig>;
|
|
59
|
+
//# sourceMappingURL=Config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,2BAA2B,EAE3B,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,uBAAuB,EAAE,MAAc,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;KAClC,CAAC;IACF,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,KACE,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAElC,MAAM,WAAW,wBAAwB;IACvC,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,2BAA2B,CAAC;IAC5C,WAAW,EAAE,wBAAwB,CAAC;IACtC,WAAW,EAAE,wBAAwB,CAAC,WAAW,CAAC;IAClD,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,wBAAwB;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,WAAW,CAAC;CACpB;AAQD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAiC1E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAsBjE;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAevE;AAcD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,wBAAwB,GAChC,qBAAqB,GAAG,IAAI,CAsC9B;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,IAAI,CACX,qBAAqB,EACrB,OAAO,GAAG,eAAe,GAAG,qBAAqB,GAAG,SAAS,CAC9D,EACD,cAAc,GAAE,OAAe,GAC9B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBxB;AAgBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CA+C1E;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,qBAAqB,EAC9B,cAAc,GAAE,OAAe,EAC/B,UAAU,GAAE,OAAe,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CAqD/B"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
export declare const SESSION_REPLAY_WIRE_VERSION: number;
|
|
2
|
+
export declare const SESSION_REPLAY_SCHEMA_VERSION: number;
|
|
3
|
+
export declare const SESSION_REPLAY_CONTENT_TYPE: string;
|
|
4
|
+
export declare const SESSION_REPLAY_APP_IDENTIFIER_HEADER: string;
|
|
5
|
+
export declare const SESSION_REPLAY_RECORDER_KIND_HEADER: string;
|
|
6
|
+
export declare const SESSION_REPLAY_MOBILE_APP_IDENTIFIER_HEADER: string;
|
|
7
|
+
export declare const SESSION_REPLAY_USER_REF_HEADER: string;
|
|
8
|
+
export declare const SESSION_REPLAY_MAX_USER_REF_LENGTH: number;
|
|
9
|
+
export declare const AUTH_TOKEN_HEADER: string;
|
|
10
|
+
export declare const CONFIG_PATH: string;
|
|
11
|
+
export declare const CHUNK_PATH: string;
|
|
12
|
+
export declare const SESSION_REPLAY_FLUSH_INTERVAL_MS: number;
|
|
13
|
+
export declare const SESSION_REPLAY_FLUSH_BYTES: number;
|
|
14
|
+
export declare const SESSION_REPLAY_CHECKOUT_INTERVAL_MS: number;
|
|
15
|
+
export declare const SESSION_REPLAY_ROLLING_BUFFER_MS: number;
|
|
16
|
+
export declare const SESSION_REPLAY_ROLLING_BUFFER_BYTES: number;
|
|
17
|
+
export declare const SESSION_REPLAY_IDLE_ROLLOVER_MS: number;
|
|
18
|
+
export declare const SESSION_REPLAY_MAX_SESSION_MS: number;
|
|
19
|
+
export declare const SESSION_REPLAY_MAX_DECOMPRESSED_FRAME_BYTES: number;
|
|
20
|
+
export declare const MAX_SESSION_REPLAY_CHUNK_BYTES: number;
|
|
21
|
+
export declare const MAX_SESSION_REPLAY_CHUNKS_PER_SESSION: number;
|
|
22
|
+
export declare const MOBILE_CAPTURE_INTERVAL_MS: number;
|
|
23
|
+
type MobileRecorderKind = "rn-view-tree";
|
|
24
|
+
export declare const MOBILE_RECORDER_KIND: MobileRecorderKind;
|
|
25
|
+
export declare const SYNTHETIC_RRWEB_VERSION: string;
|
|
26
|
+
export declare const RECORDER_VERSION: string;
|
|
27
|
+
export declare const SESSION_REPLAY_MOBILE_RECORDER_CAPABILITIES: ReadonlyArray<string>;
|
|
28
|
+
export declare enum SessionReplayMaskingMode {
|
|
29
|
+
MaskSensitiveInputsOnly = "MaskSensitiveInputsOnly",
|
|
30
|
+
MaskInputsOnly = "MaskInputsOnly",
|
|
31
|
+
MaskAllText = "MaskAllText"
|
|
32
|
+
}
|
|
33
|
+
export declare enum SessionReplayConsentMode {
|
|
34
|
+
RequireExplicit = "RequireExplicit",
|
|
35
|
+
NotRequired = "NotRequired"
|
|
36
|
+
}
|
|
37
|
+
export declare enum SessionReplayCaptureTrigger {
|
|
38
|
+
Always = "Always",
|
|
39
|
+
OnErrorOrFrustration = "OnErrorOrFrustration"
|
|
40
|
+
}
|
|
41
|
+
export declare enum SessionReplayTriggerReason {
|
|
42
|
+
Error = "error",
|
|
43
|
+
Frustration = "frustration",
|
|
44
|
+
Sampled = "sampled",
|
|
45
|
+
Manual = "manual",
|
|
46
|
+
Performance = "performance"
|
|
47
|
+
}
|
|
48
|
+
export declare enum SessionReplayFidelityNotice {
|
|
49
|
+
MobileImagesOpaque = "mobile-images-opaque",
|
|
50
|
+
MobileWebViewOpaque = "mobile-webview-opaque",
|
|
51
|
+
MobileCanvasOpaque = "mobile-canvas-opaque",
|
|
52
|
+
MobileAnimationSampled = "mobile-animation-sampled",
|
|
53
|
+
BufferOverflow = "buffer-overflow",
|
|
54
|
+
SnapshotTooLarge = "snapshot-too-large"
|
|
55
|
+
}
|
|
56
|
+
export type SessionReplayConsentState = "Granted" | "NotRequired" | "Unknown";
|
|
57
|
+
export type SessionReplayDirective = "continue" | "stop" | "throttle";
|
|
58
|
+
export type SessionReplayPayloadEncoding = "gzip" | "identity";
|
|
59
|
+
export type SessionReplayRecorderKind = "dom" | "rn-view-tree";
|
|
60
|
+
export interface SessionReplayConfigResponse {
|
|
61
|
+
enabled: boolean;
|
|
62
|
+
recorderVersion: string;
|
|
63
|
+
maskingMode: SessionReplayMaskingMode;
|
|
64
|
+
captureTrigger: string;
|
|
65
|
+
consentMode: SessionReplayConsentMode;
|
|
66
|
+
samplePercentage: number;
|
|
67
|
+
maskSelectors: Array<string>;
|
|
68
|
+
blockSelectors: Array<string>;
|
|
69
|
+
urlAllowlist: Array<string>;
|
|
70
|
+
recordCanvas: boolean;
|
|
71
|
+
captureUserIdentity: boolean;
|
|
72
|
+
ignoreErrorPatterns: Array<string>;
|
|
73
|
+
respectDoNotTrack: boolean;
|
|
74
|
+
configEpoch: number;
|
|
75
|
+
directive: SessionReplayDirective;
|
|
76
|
+
isTargeted?: boolean;
|
|
77
|
+
disabledReason?: string;
|
|
78
|
+
disabledDetail?: string;
|
|
79
|
+
budgetResetsAt?: string;
|
|
80
|
+
debug?: boolean;
|
|
81
|
+
}
|
|
82
|
+
export interface SessionReplaySignalCounts {
|
|
83
|
+
errorCount: number;
|
|
84
|
+
rageClickCount: number;
|
|
85
|
+
deadClickCount: number;
|
|
86
|
+
errorClickCount: number;
|
|
87
|
+
refreshRageCount: number;
|
|
88
|
+
routeCount: number;
|
|
89
|
+
clickCount?: number;
|
|
90
|
+
customEventCount?: number;
|
|
91
|
+
}
|
|
92
|
+
export interface SessionReplayChunkMeta {
|
|
93
|
+
entryUrl: string;
|
|
94
|
+
browserName: string;
|
|
95
|
+
browserVersion: string;
|
|
96
|
+
osName: string;
|
|
97
|
+
deviceType: string;
|
|
98
|
+
viewportWidth: number;
|
|
99
|
+
viewportHeight: number;
|
|
100
|
+
identifiedUserRef?: string;
|
|
101
|
+
visitorId?: string;
|
|
102
|
+
identifiedUserTraits?: Record<string, string>;
|
|
103
|
+
tags?: Record<string, string>;
|
|
104
|
+
}
|
|
105
|
+
export interface SessionReplayChunkEnvelope {
|
|
106
|
+
v: number;
|
|
107
|
+
appIdentifier: string;
|
|
108
|
+
sessionId: string;
|
|
109
|
+
tabId: string;
|
|
110
|
+
chunkIndex: number;
|
|
111
|
+
sessionStartUnixMs: number;
|
|
112
|
+
clientSendUnixMs: number;
|
|
113
|
+
chunkStartOffsetMs: number;
|
|
114
|
+
chunkEndOffsetMs: number;
|
|
115
|
+
eventCount: number;
|
|
116
|
+
hasFullSnapshot: boolean;
|
|
117
|
+
isFinal: boolean;
|
|
118
|
+
recorderKind: SessionReplayRecorderKind;
|
|
119
|
+
schemaVersion: number;
|
|
120
|
+
rrwebVersion: string;
|
|
121
|
+
recorderVersion: string;
|
|
122
|
+
maskingMode: SessionReplayMaskingMode;
|
|
123
|
+
consentState: SessionReplayConsentState;
|
|
124
|
+
triggerReason: SessionReplayTriggerReason;
|
|
125
|
+
payloadEncoding: SessionReplayPayloadEncoding;
|
|
126
|
+
payloadBytes: number;
|
|
127
|
+
url: string;
|
|
128
|
+
routes?: Array<string>;
|
|
129
|
+
signals: SessionReplaySignalCounts;
|
|
130
|
+
fidelityNotices: Array<string>;
|
|
131
|
+
droppedEvents: number;
|
|
132
|
+
flushFailures: number;
|
|
133
|
+
meta?: SessionReplayChunkMeta;
|
|
134
|
+
capabilities?: Array<string>;
|
|
135
|
+
}
|
|
136
|
+
export interface SessionReplayChunkResponse {
|
|
137
|
+
directive: SessionReplayDirective;
|
|
138
|
+
configEpoch: number;
|
|
139
|
+
retryAfterSeconds?: number;
|
|
140
|
+
reason?: string;
|
|
141
|
+
}
|
|
142
|
+
export declare enum RrwebEventType {
|
|
143
|
+
DomContentLoaded = 0,
|
|
144
|
+
Load = 1,
|
|
145
|
+
FullSnapshot = 2,
|
|
146
|
+
IncrementalSnapshot = 3,
|
|
147
|
+
Meta = 4,
|
|
148
|
+
Custom = 5
|
|
149
|
+
}
|
|
150
|
+
export declare enum RrwebIncrementalSource {
|
|
151
|
+
Mutation = 0,
|
|
152
|
+
MouseMove = 1,
|
|
153
|
+
MouseInteraction = 2,
|
|
154
|
+
Scroll = 3,
|
|
155
|
+
ViewportResize = 4,
|
|
156
|
+
Input = 5,
|
|
157
|
+
TouchMove = 6
|
|
158
|
+
}
|
|
159
|
+
export declare enum RrwebMouseInteractionType {
|
|
160
|
+
TouchStart = 7,
|
|
161
|
+
TouchEnd = 9
|
|
162
|
+
}
|
|
163
|
+
export interface RrwebEvent<TData = unknown> {
|
|
164
|
+
type: RrwebEventType;
|
|
165
|
+
data: TData;
|
|
166
|
+
timestamp: number;
|
|
167
|
+
}
|
|
168
|
+
export declare const ROUTE_CUSTOM_EVENT_TAG: string;
|
|
169
|
+
export declare const ERROR_CUSTOM_EVENT_TAG: string;
|
|
170
|
+
export declare const CUSTOM_EVENT_TAG: string;
|
|
171
|
+
export declare const IDENTIFY_CUSTOM_EVENT_TAG: string;
|
|
172
|
+
export declare const TAGS_CUSTOM_EVENT_TAG: string;
|
|
173
|
+
export declare const VISIBILITY_CUSTOM_EVENT_TAG: string;
|
|
174
|
+
export declare const TOUCH_CUSTOM_EVENT_TAG: string;
|
|
175
|
+
export {};
|
|
176
|
+
//# sourceMappingURL=Contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Contract.d.ts","sourceRoot":"","sources":["../../src/Contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { RrwebEvent } from "./Contract";
|
|
2
|
+
export type TouchPhase = "start" | "move" | "end";
|
|
3
|
+
export interface RecordedTouch {
|
|
4
|
+
phase: TouchPhase;
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
timestamp: number;
|
|
8
|
+
targetTag?: number;
|
|
9
|
+
pointerId?: number | string;
|
|
10
|
+
}
|
|
11
|
+
export declare function sanitizeRecordedTouch(value: unknown, nowUnixMs: number): RecordedTouch | null;
|
|
12
|
+
export declare function createTouchEvent(touch: RecordedTouch): RrwebEvent;
|
|
13
|
+
export declare function createCustomEvent(tag: string, payload: unknown, timestamp: number): RrwebEvent;
|
|
14
|
+
//# sourceMappingURL=Events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../src/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAIX,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAUD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,GAChB,aAAa,GAAG,IAAI,CA4CtB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU,CAoCjE;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,GAChB,UAAU,CAMZ"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { SessionReplayConsentState } from "./Contract";
|
|
2
|
+
import { MobileReplayStartOptions, ValidatedStartOptions } from "./Config";
|
|
3
|
+
import { RecordedTouch } from "./Events";
|
|
4
|
+
import { NativeViewTreeAdapter } from "./NativeViewTree";
|
|
5
|
+
import { ReplayStorage } from "./Storage";
|
|
6
|
+
export type MobileReplayStatus = "idle" | "starting" | "recording" | "background" | "consent-required" | "disabled" | "stopped" | "consent-revoked";
|
|
7
|
+
export interface MobileReplayDiagnosticEvent {
|
|
8
|
+
code: string;
|
|
9
|
+
atUnixMs: number;
|
|
10
|
+
details?: Record<string, unknown>;
|
|
11
|
+
}
|
|
12
|
+
export interface MobileReplayDiagnostics {
|
|
13
|
+
status: MobileReplayStatus;
|
|
14
|
+
sessionId: string | null;
|
|
15
|
+
recorderKind: "rn-view-tree";
|
|
16
|
+
configEpoch: number;
|
|
17
|
+
sampled: boolean;
|
|
18
|
+
triggered: boolean;
|
|
19
|
+
consentState: SessionReplayConsentState;
|
|
20
|
+
pendingEvents: number;
|
|
21
|
+
events: Array<MobileReplayDiagnosticEvent>;
|
|
22
|
+
}
|
|
23
|
+
export type MobileReplaySessionChangeListener = (sessionId: string | null) => void;
|
|
24
|
+
interface AppStateSubscription {
|
|
25
|
+
remove(): void;
|
|
26
|
+
}
|
|
27
|
+
export interface ReplayAppState {
|
|
28
|
+
currentState: string | null;
|
|
29
|
+
addEventListener(type: "change", listener: (state: string) => void): AppStateSubscription;
|
|
30
|
+
}
|
|
31
|
+
export interface MobileReplayRecorderDependencies {
|
|
32
|
+
storage?: ReplayStorage;
|
|
33
|
+
nativeViewTree?: NativeViewTreeAdapter;
|
|
34
|
+
appState?: ReplayAppState;
|
|
35
|
+
now?: () => number;
|
|
36
|
+
}
|
|
37
|
+
export declare const MOBILE_POLICY_REFRESH_INTERVAL_MS: number;
|
|
38
|
+
declare function deterministicSample(sessionId: string, percentage: number): boolean;
|
|
39
|
+
export declare function getReplayStorageNamespace(options: Pick<ValidatedStartOptions, "host" | "token" | "appIdentifier" | "mobileAppIdentifier">): string;
|
|
40
|
+
export default class MobileReplayRecorder {
|
|
41
|
+
private readonly storage;
|
|
42
|
+
private readonly nativeViewTree;
|
|
43
|
+
private readonly appState;
|
|
44
|
+
private readonly now;
|
|
45
|
+
private readonly serializer;
|
|
46
|
+
private readonly chunkBuffer;
|
|
47
|
+
private readonly rollingBuffer;
|
|
48
|
+
private diagnosticsStatus;
|
|
49
|
+
private diagnosticsEvents;
|
|
50
|
+
private options;
|
|
51
|
+
private config;
|
|
52
|
+
private sessionStore;
|
|
53
|
+
private identity;
|
|
54
|
+
private outbox;
|
|
55
|
+
private transport;
|
|
56
|
+
private metadata;
|
|
57
|
+
private rootTag;
|
|
58
|
+
private route;
|
|
59
|
+
private entryUrl;
|
|
60
|
+
private captureTimer;
|
|
61
|
+
private flushTimer;
|
|
62
|
+
private appStateSubscription;
|
|
63
|
+
private captureGeneration;
|
|
64
|
+
private running;
|
|
65
|
+
private foreground;
|
|
66
|
+
private forceFullSnapshot;
|
|
67
|
+
private lastFullSnapshotAtUnixMs;
|
|
68
|
+
private sampled;
|
|
69
|
+
private triggered;
|
|
70
|
+
private uploadActive;
|
|
71
|
+
private consentGranted;
|
|
72
|
+
private triggerReason;
|
|
73
|
+
private userRef;
|
|
74
|
+
private traits;
|
|
75
|
+
private tags;
|
|
76
|
+
private metaDirty;
|
|
77
|
+
private droppedEvents;
|
|
78
|
+
private closeQueue;
|
|
79
|
+
private lastTouchMoveAtUnixMs;
|
|
80
|
+
private previousGlobalErrorHandler;
|
|
81
|
+
private installedGlobalErrorHandler;
|
|
82
|
+
private globalErrorUtils;
|
|
83
|
+
private lifecycleGeneration;
|
|
84
|
+
private lifecycleCancellationEpoch;
|
|
85
|
+
private lifecycleQueue;
|
|
86
|
+
private pendingStart;
|
|
87
|
+
private pendingStartCancellation;
|
|
88
|
+
private identityPersisted;
|
|
89
|
+
private sessionLastActivityUnixMs;
|
|
90
|
+
private rotatingSession;
|
|
91
|
+
private rotationPromise;
|
|
92
|
+
private appStateQueue;
|
|
93
|
+
private acceptingEvents;
|
|
94
|
+
private lastPolicyRefreshAtUnixMs;
|
|
95
|
+
private policyRefreshPromise;
|
|
96
|
+
private identityQueue;
|
|
97
|
+
private identityCancellationEpoch;
|
|
98
|
+
private pendingIdentityOperations;
|
|
99
|
+
private readonly sessionChangeListeners;
|
|
100
|
+
private lastNotifiedSessionId;
|
|
101
|
+
private touchPrivacyMap;
|
|
102
|
+
private touchQueue;
|
|
103
|
+
private readonly suppressedTouchPointers;
|
|
104
|
+
private unidentifiedTouchCount;
|
|
105
|
+
private unidentifiedTouchPrivate;
|
|
106
|
+
constructor(dependencies?: MobileReplayRecorderDependencies);
|
|
107
|
+
start(options: MobileReplayStartOptions): Promise<boolean>;
|
|
108
|
+
private startNow;
|
|
109
|
+
private startInternal;
|
|
110
|
+
stop(): Promise<void>;
|
|
111
|
+
private stopInternal;
|
|
112
|
+
grantConsent(): Promise<void>;
|
|
113
|
+
private grantConsentInternal;
|
|
114
|
+
revokeConsent(): Promise<void>;
|
|
115
|
+
private revokeConsentInternal;
|
|
116
|
+
identify(userRef: string, traits?: Record<string, unknown>): void;
|
|
117
|
+
setTags(tags: Record<string, unknown>): void;
|
|
118
|
+
addTag(key: string, value: string | number | boolean): void;
|
|
119
|
+
track(name: string, properties?: Record<string, unknown>): void;
|
|
120
|
+
setRoute(route: string): Promise<void>;
|
|
121
|
+
captureSession(reason?: string): Promise<void>;
|
|
122
|
+
captureError(error: unknown): Promise<void>;
|
|
123
|
+
recordTouch(touch: RecordedTouch): void;
|
|
124
|
+
private recordTouchAfterPrivacyCheck;
|
|
125
|
+
setRootTag(rootTag: number | null): void;
|
|
126
|
+
getDiagnostics(): MobileReplayDiagnostics;
|
|
127
|
+
/** Current consented replay session for host trace/log correlation. */
|
|
128
|
+
getSessionId(): string | null;
|
|
129
|
+
/** Fires immediately when a session exists and again on rotate/clear. */
|
|
130
|
+
onSessionChange(listener: MobileReplaySessionChangeListener): () => void;
|
|
131
|
+
private trigger;
|
|
132
|
+
private activateUpload;
|
|
133
|
+
private captureTick;
|
|
134
|
+
private appendCustom;
|
|
135
|
+
private appendEvent;
|
|
136
|
+
private closeCurrent;
|
|
137
|
+
private processSegment;
|
|
138
|
+
private uploadSegment;
|
|
139
|
+
private buildMeta;
|
|
140
|
+
private consentState;
|
|
141
|
+
private installLifecycle;
|
|
142
|
+
private onAppStateChange;
|
|
143
|
+
private startTimers;
|
|
144
|
+
private clearTimers;
|
|
145
|
+
private installGlobalErrorHandler;
|
|
146
|
+
private restoreGlobalErrorHandler;
|
|
147
|
+
private createTransport;
|
|
148
|
+
private onDirective;
|
|
149
|
+
private haltCapture;
|
|
150
|
+
private notifySessionChange;
|
|
151
|
+
private quiesceCapture;
|
|
152
|
+
private isCurrentGeneration;
|
|
153
|
+
private enqueueLifecycleOperation;
|
|
154
|
+
private isCurrentTouchPrivate;
|
|
155
|
+
private updateTouchSuppression;
|
|
156
|
+
private resetTouchSequences;
|
|
157
|
+
private applyIdentityChange;
|
|
158
|
+
private applyIdentityValues;
|
|
159
|
+
private refreshTargetingConfig;
|
|
160
|
+
private refreshRuntimePolicy;
|
|
161
|
+
private performRuntimePolicyRefresh;
|
|
162
|
+
private applyRuntimePolicy;
|
|
163
|
+
private currentStartOptions;
|
|
164
|
+
private recreateTransport;
|
|
165
|
+
private discardForPolicyStop;
|
|
166
|
+
private ephemeralIdentity;
|
|
167
|
+
private rotationReason;
|
|
168
|
+
private runExternalActivity;
|
|
169
|
+
private maybeRotateSession;
|
|
170
|
+
private performSessionRotation;
|
|
171
|
+
private completeSessionIdentityRotation;
|
|
172
|
+
private disable;
|
|
173
|
+
private diagnostic;
|
|
174
|
+
}
|
|
175
|
+
export { deterministicSample };
|
|
176
|
+
//# sourceMappingURL=MobileReplayRecorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobileReplayRecorder.d.ts","sourceRoot":"","sources":["../../src/MobileReplayRecorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export type NativeViewKind = "view" | "scroll" | "button" | "text" | "input" | "image" | "webview" | "canvas" | "masked" | "unknown";
|
|
2
|
+
export interface NativeViewTreeNode {
|
|
3
|
+
nativeId: number | string;
|
|
4
|
+
kind: NativeViewKind | string;
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
/** Root-only origin in React Native pageX/pageY coordinates; never uploaded. */
|
|
10
|
+
touchOriginX?: number;
|
|
11
|
+
/** Root-only origin in React Native pageX/pageY coordinates; never uploaded. */
|
|
12
|
+
touchOriginY?: number;
|
|
13
|
+
opaque?: boolean;
|
|
14
|
+
masked?: boolean;
|
|
15
|
+
backgroundColor?: string;
|
|
16
|
+
borderColor?: string;
|
|
17
|
+
borderWidth?: number;
|
|
18
|
+
borderRadius?: number;
|
|
19
|
+
opacity?: number;
|
|
20
|
+
zIndex?: number;
|
|
21
|
+
/** Count omitted by the bounded native traversal, present on the root. */
|
|
22
|
+
truncatedNodes?: number;
|
|
23
|
+
children?: Array<NativeViewTreeNode>;
|
|
24
|
+
[key: string]: unknown;
|
|
25
|
+
}
|
|
26
|
+
export interface NativeAppMetadata {
|
|
27
|
+
appName: string;
|
|
28
|
+
appVersion: string;
|
|
29
|
+
osName: string;
|
|
30
|
+
osVersion: string;
|
|
31
|
+
}
|
|
32
|
+
export interface NativeViewTreeAdapter {
|
|
33
|
+
isAvailable?(): boolean;
|
|
34
|
+
captureViewTree(rootTag: number): Promise<NativeViewTreeNode>;
|
|
35
|
+
getAppMetadata(): Promise<NativeAppMetadata>;
|
|
36
|
+
isTouchTargetPrivate?(targetTag: number, replayRootTag: number): Promise<boolean>;
|
|
37
|
+
}
|
|
38
|
+
export declare class ReactNativeViewTreeAdapter implements NativeViewTreeAdapter {
|
|
39
|
+
isAvailable(): boolean;
|
|
40
|
+
captureViewTree(rootTag: number): Promise<NativeViewTreeNode>;
|
|
41
|
+
getAppMetadata(): Promise<NativeAppMetadata>;
|
|
42
|
+
isTouchTargetPrivate(targetTag: number, replayRootTag: number): Promise<boolean>;
|
|
43
|
+
}
|
|
44
|
+
export declare const defaultNativeViewTreeAdapter: NativeViewTreeAdapter;
|
|
45
|
+
export declare function getViewport(): {
|
|
46
|
+
width: number;
|
|
47
|
+
height: number;
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=NativeViewTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeViewTree.d.ts","sourceRoot":"","sources":["../../src/NativeViewTree.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,OAAO,GACP,OAAO,GACP,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAErC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,IAAI,OAAO,CAAC;IACxB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9D,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7C,oBAAoB,CAAC,CACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AA4BD,qBAAa,0BAA2B,YAAW,qBAAqB;IAC/D,WAAW,IAAI,OAAO;IAOhB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAc7D,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA8B5C,oBAAoB,CAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC;CAgBpB;AAED,eAAO,MAAM,4BAA4B,EAAE,qBACT,CAAC;AAEnC,wBAAgB,WAAW,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAE/D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { SessionReplayChunkEnvelope } from "./Contract";
|
|
2
|
+
import { ReplayStorage } from "./Storage";
|
|
3
|
+
export interface PersistedReplayFrame {
|
|
4
|
+
id: string;
|
|
5
|
+
envelope: SessionReplayChunkEnvelope;
|
|
6
|
+
payload: string;
|
|
7
|
+
attempts: number;
|
|
8
|
+
createdAtUnixMs: number;
|
|
9
|
+
}
|
|
10
|
+
export interface OutboxMutationResult {
|
|
11
|
+
dropped: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function frameId(envelope: SessionReplayChunkEnvelope): string;
|
|
14
|
+
export default class ReplayOutbox {
|
|
15
|
+
private readonly storage;
|
|
16
|
+
private readonly key;
|
|
17
|
+
private mutationQueue;
|
|
18
|
+
constructor(storage: ReplayStorage, namespace: string);
|
|
19
|
+
list(): Promise<Array<PersistedReplayFrame>>;
|
|
20
|
+
private readUnlocked;
|
|
21
|
+
enqueue(frame: PersistedReplayFrame): Promise<OutboxMutationResult>;
|
|
22
|
+
remove(id: string): Promise<void>;
|
|
23
|
+
incrementAttempts(id: string): Promise<number>;
|
|
24
|
+
clear(): Promise<void>;
|
|
25
|
+
private removeUnlocked;
|
|
26
|
+
private writeUnlocked;
|
|
27
|
+
private withLock;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=Outbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Outbox.d.ts","sourceRoot":"","sources":["../../src/Outbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAK1C,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,0BAA0B,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAsBD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,0BAA0B,GAAG,MAAM,CAEpE;AAED,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAoC;gBAEtC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM;IAK/C,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAQ3C,YAAY;IA0Bb,OAAO,CAClB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,oBAAoB,CAAC;IA0BnB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAMrB,cAAc;YAQd,aAAa;YAeb,QAAQ;CAYvB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ReactElement, ReactNode } from "react";
|
|
2
|
+
import { GestureResponderEvent, StyleProp, ViewStyle } from "react-native";
|
|
3
|
+
import { MobileReplayStartOptions } from "./Config";
|
|
4
|
+
import MobileReplayRecorder from "./MobileReplayRecorder";
|
|
5
|
+
export declare const defaultMobileReplayRecorder: MobileReplayRecorder;
|
|
6
|
+
export interface OneUptimeReplayProviderProps {
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
recorder?: MobileReplayRecorder;
|
|
9
|
+
/** Optional convenience start; callers may instead call recorder.start(). */
|
|
10
|
+
options?: MobileReplayStartOptions;
|
|
11
|
+
stopOnUnmount?: boolean;
|
|
12
|
+
style?: StyleProp<ViewStyle>;
|
|
13
|
+
}
|
|
14
|
+
export interface GestureTouchPoint {
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function touchPointFromEvent(event: GestureResponderEvent): GestureTouchPoint;
|
|
19
|
+
export declare function OneUptimeReplayProvider(props: OneUptimeReplayProviderProps): ReactElement;
|
|
20
|
+
export declare function useOneUptimeReplay(): MobileReplayRecorder;
|
|
21
|
+
export interface ReplayMaskProps {
|
|
22
|
+
children: ReactNode;
|
|
23
|
+
style?: StyleProp<ViewStyle>;
|
|
24
|
+
}
|
|
25
|
+
/** A hard native traversal boundary; descendants are never serialized. */
|
|
26
|
+
export declare function ReplayMask(props: ReplayMaskProps): ReactElement;
|
|
27
|
+
export declare const ReplayProvider: typeof OneUptimeReplayProvider;
|
|
28
|
+
//# sourceMappingURL=ReplayProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReplayProvider.d.ts","sourceRoot":"","sources":["../../src/ReplayProvider.tsx"],"names":[],"mappings":"AAAA,OAAc,EAEZ,YAAY,EACZ,SAAS,EAIV,MAAM,OAAO,CAAC;AACf,OAAO,EAEL,qBAAqB,EACrB,SAAS,EAET,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D,eAAO,MAAM,2BAA2B,EAAE,oBACd,CAAC;AAK7B,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,qBAAqB,GAC3B,iBAAiB,CAkBnB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAClC,YAAY,CAyEd;AAED,wBAAgB,kBAAkB,IAAI,oBAAoB,CAEzD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAW/D;AAED,eAAO,MAAM,cAAc,EAAE,OAAO,uBACX,CAAC"}
|