@amplitude/plugin-session-replay-browser 0.6.5 → 0.6.7
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 +5 -5
- package/lib/cjs/constants.d.ts +0 -15
- package/lib/cjs/constants.d.ts.map +1 -1
- package/lib/cjs/constants.js +1 -20
- package/lib/cjs/constants.js.map +1 -1
- package/lib/cjs/session-replay.d.ts +13 -2
- package/lib/cjs/session-replay.d.ts.map +1 -1
- package/lib/cjs/session-replay.js +28 -483
- package/lib/cjs/session-replay.js.map +1 -1
- package/lib/cjs/typings/session-replay.d.ts +0 -67
- package/lib/cjs/typings/session-replay.d.ts.map +1 -1
- package/lib/cjs/typings/session-replay.js +0 -6
- package/lib/cjs/typings/session-replay.js.map +1 -1
- package/lib/esm/constants.d.ts +0 -15
- package/lib/esm/constants.d.ts.map +1 -1
- package/lib/esm/constants.js +0 -19
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/session-replay.d.ts +13 -2
- package/lib/esm/session-replay.d.ts.map +1 -1
- package/lib/esm/session-replay.js +29 -484
- package/lib/esm/session-replay.js.map +1 -1
- package/lib/esm/typings/session-replay.d.ts +0 -67
- package/lib/esm/typings/session-replay.d.ts.map +1 -1
- package/lib/esm/typings/session-replay.js +1 -5
- package/lib/esm/typings/session-replay.js.map +1 -1
- package/lib/scripts/amplitude-min.js +1 -1
- package/lib/scripts/amplitude-min.js.gz +0 -0
- package/lib/scripts/amplitude-min.umd.js +1 -1
- package/lib/scripts/amplitude-min.umd.js.gz +0 -0
- package/lib/scripts/constants.d.ts +0 -15
- package/lib/scripts/constants.d.ts.map +1 -1
- package/lib/scripts/session-replay.d.ts +13 -2
- package/lib/scripts/session-replay.d.ts.map +1 -1
- package/lib/scripts/typings/session-replay.d.ts +0 -67
- package/lib/scripts/typings/session-replay.d.ts.map +1 -1
- package/package.json +3 -2
- package/lib/cjs/helpers.d.ts +0 -4
- package/lib/cjs/helpers.d.ts.map +0 -1
- package/lib/cjs/helpers.js +0 -32
- package/lib/cjs/helpers.js.map +0 -1
- package/lib/cjs/messages.d.ts +0 -5
- package/lib/cjs/messages.d.ts.map +0 -1
- package/lib/cjs/messages.js +0 -10
- package/lib/cjs/messages.js.map +0 -1
- package/lib/esm/helpers.d.ts +0 -4
- package/lib/esm/helpers.d.ts.map +0 -1
- package/lib/esm/helpers.js +0 -27
- package/lib/esm/helpers.js.map +0 -1
- package/lib/esm/messages.d.ts +0 -5
- package/lib/esm/messages.d.ts.map +0 -1
- package/lib/esm/messages.js +0 -7
- package/lib/esm/messages.js.map +0 -1
- package/lib/scripts/helpers.d.ts +0 -4
- package/lib/scripts/helpers.d.ts.map +0 -1
- package/lib/scripts/messages.d.ts +0 -5
- package/lib/scripts/messages.d.ts.map +0 -1
|
@@ -1,71 +1,4 @@
|
|
|
1
|
-
import { BrowserConfig, EnrichmentPlugin } from '@amplitude/analytics-types';
|
|
2
|
-
import { record } from 'rrweb';
|
|
3
1
|
export interface SessionReplayOptions {
|
|
4
2
|
sampleRate?: number;
|
|
5
3
|
}
|
|
6
|
-
export type Events = string[];
|
|
7
|
-
export interface SessionReplayContext {
|
|
8
|
-
events: Events;
|
|
9
|
-
sequenceId: number;
|
|
10
|
-
attempts: number;
|
|
11
|
-
timeout: number;
|
|
12
|
-
sessionId: number;
|
|
13
|
-
}
|
|
14
|
-
export declare enum RecordingStatus {
|
|
15
|
-
RECORDING = "recording",
|
|
16
|
-
SENT = "sent"
|
|
17
|
-
}
|
|
18
|
-
export interface IDBStoreSequence {
|
|
19
|
-
events: Events;
|
|
20
|
-
status: RecordingStatus;
|
|
21
|
-
}
|
|
22
|
-
export interface IDBStoreSession {
|
|
23
|
-
currentSequenceId: number;
|
|
24
|
-
sessionSequences: {
|
|
25
|
-
[sequenceId: number]: IDBStoreSequence;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
export interface IDBStore {
|
|
29
|
-
[sessionId: number]: IDBStoreSession;
|
|
30
|
-
}
|
|
31
|
-
export interface SessionReplayEnrichmentPlugin extends EnrichmentPlugin {
|
|
32
|
-
setup: (config: BrowserConfig) => Promise<void>;
|
|
33
|
-
config: BrowserConfig;
|
|
34
|
-
storageKey: string;
|
|
35
|
-
retryTimeout: number;
|
|
36
|
-
events: Events;
|
|
37
|
-
currentSequenceId: number;
|
|
38
|
-
interval: number;
|
|
39
|
-
queue: SessionReplayContext[];
|
|
40
|
-
timeAtLastSend: number | null;
|
|
41
|
-
stopRecordingEvents: ReturnType<typeof record> | null;
|
|
42
|
-
stopRecordingAndSendEvents: (sessionId?: number) => void;
|
|
43
|
-
maxPersistedEventsSize: number;
|
|
44
|
-
initialize: (shouldSendStoredEvents?: boolean) => Promise<void>;
|
|
45
|
-
sendStoredEvents: (storedReplaySessions: IDBStore) => void;
|
|
46
|
-
getShouldRecord: () => boolean;
|
|
47
|
-
recordEvents: () => void;
|
|
48
|
-
shouldSplitEventsList: (nextEventString: string) => boolean;
|
|
49
|
-
sendEventsList: ({ events, sequenceId, sessionId, }: {
|
|
50
|
-
events: string[];
|
|
51
|
-
sequenceId: number;
|
|
52
|
-
sessionId: number;
|
|
53
|
-
}) => void;
|
|
54
|
-
addToQueue: (...list: SessionReplayContext[]) => void;
|
|
55
|
-
schedule: (timeout: number) => void;
|
|
56
|
-
flush: (useRetry?: boolean) => Promise<void>;
|
|
57
|
-
send: (context: SessionReplayContext, useRetry?: boolean) => Promise<void>;
|
|
58
|
-
completeRequest({ context, err, success, removeEvents, }: {
|
|
59
|
-
context: SessionReplayContext;
|
|
60
|
-
err?: string | undefined;
|
|
61
|
-
success?: string | undefined;
|
|
62
|
-
removeEvents?: boolean | undefined;
|
|
63
|
-
}): void;
|
|
64
|
-
getAllSessionEventsFromStore: () => Promise<IDBStore | undefined>;
|
|
65
|
-
storeEventsForSession: (events: Events, sequenceId: number, sessionId: number) => Promise<void>;
|
|
66
|
-
cleanUpSessionEventsStore: (sessionId: number, sequenceId: number) => Promise<void>;
|
|
67
|
-
}
|
|
68
|
-
export interface SessionReplayPlugin {
|
|
69
|
-
(options?: SessionReplayOptions): SessionReplayEnrichmentPlugin;
|
|
70
|
-
}
|
|
71
4
|
//# sourceMappingURL=session-replay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-replay.d.ts","sourceRoot":"","sources":["../../../src/typings/session-replay.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"session-replay.d.ts","sourceRoot":"","sources":["../../../src/typings/session-replay.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -1,8 +1,2 @@
|
|
|
1
1
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
-
exports.RecordingStatus = void 0;
|
|
3
|
-
var RecordingStatus;
|
|
4
|
-
(function (RecordingStatus) {
|
|
5
|
-
RecordingStatus["RECORDING"] = "recording";
|
|
6
|
-
RecordingStatus["SENT"] = "sent";
|
|
7
|
-
})(RecordingStatus = exports.RecordingStatus || (exports.RecordingStatus = {}));
|
|
8
2
|
//# sourceMappingURL=session-replay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-replay.js","sourceRoot":"","sources":["../../../src/typings/session-replay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-replay.js","sourceRoot":"","sources":["../../../src/typings/session-replay.ts"],"names":[],"mappings":"","sourcesContent":["export interface SessionReplayOptions {\n sampleRate?: number;\n}\n"]}
|
package/lib/esm/constants.d.ts
CHANGED
|
@@ -1,17 +1,2 @@
|
|
|
1
|
-
import { IDBStoreSession } from './typings/session-replay';
|
|
2
|
-
export declare const DEFAULT_EVENT_PROPERTY_PREFIX = "[Amplitude]";
|
|
3
|
-
export declare const DEFAULT_SESSION_REPLAY_PROPERTY: string;
|
|
4
1
|
export declare const DEFAULT_SESSION_START_EVENT = "session_start";
|
|
5
|
-
export declare const DEFAULT_SESSION_END_EVENT = "session_end";
|
|
6
|
-
export declare const BLOCK_CLASS = "amp-block";
|
|
7
|
-
export declare const MASK_TEXT_CLASS = "amp-mask";
|
|
8
|
-
export declare const UNMASK_TEXT_CLASS = "amp-unmask";
|
|
9
|
-
export declare const SESSION_REPLAY_SERVER_URL = "https://api-secure.amplitude.com/sessions/track";
|
|
10
|
-
export declare const SESSION_REPLAY_EU_URL = "https://api.eu.amplitude.com/sessions/track";
|
|
11
|
-
export declare const STORAGE_PREFIX: string;
|
|
12
|
-
export declare const MAX_EVENT_LIST_SIZE_IN_BYTES: number;
|
|
13
|
-
export declare const MIN_INTERVAL = 500;
|
|
14
|
-
export declare const MAX_INTERVAL: number;
|
|
15
|
-
export declare const defaultSessionStore: IDBStoreSession;
|
|
16
|
-
export declare const MAX_IDB_STORAGE_LENGTH: number;
|
|
17
2
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,kBAAkB,CAAC"}
|
package/lib/esm/constants.js
CHANGED
|
@@ -1,21 +1,2 @@
|
|
|
1
|
-
import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';
|
|
2
|
-
export var DEFAULT_EVENT_PROPERTY_PREFIX = '[Amplitude]';
|
|
3
|
-
export var DEFAULT_SESSION_REPLAY_PROPERTY = "".concat(DEFAULT_EVENT_PROPERTY_PREFIX, " Session Recorded");
|
|
4
1
|
export var DEFAULT_SESSION_START_EVENT = 'session_start';
|
|
5
|
-
export var DEFAULT_SESSION_END_EVENT = 'session_end';
|
|
6
|
-
export var BLOCK_CLASS = 'amp-block';
|
|
7
|
-
export var MASK_TEXT_CLASS = 'amp-mask';
|
|
8
|
-
export var UNMASK_TEXT_CLASS = 'amp-unmask';
|
|
9
|
-
export var SESSION_REPLAY_SERVER_URL = 'https://api-secure.amplitude.com/sessions/track';
|
|
10
|
-
export var SESSION_REPLAY_EU_URL = 'https://api.eu.amplitude.com/sessions/track';
|
|
11
|
-
export var STORAGE_PREFIX = "".concat(AMPLITUDE_PREFIX, "_replay_unsent");
|
|
12
|
-
var PAYLOAD_ESTIMATED_SIZE_IN_BYTES_WITHOUT_EVENTS = 500; // derived by JSON stringifying an example payload without events
|
|
13
|
-
export var MAX_EVENT_LIST_SIZE_IN_BYTES = 10 * 1000000 - PAYLOAD_ESTIMATED_SIZE_IN_BYTES_WITHOUT_EVENTS;
|
|
14
|
-
export var MIN_INTERVAL = 500; // 500 ms
|
|
15
|
-
export var MAX_INTERVAL = 10 * 1000; // 10 seconds
|
|
16
|
-
export var defaultSessionStore = {
|
|
17
|
-
currentSequenceId: 0,
|
|
18
|
-
sessionSequences: {},
|
|
19
|
-
};
|
|
20
|
-
export var MAX_IDB_STORAGE_LENGTH = 1000 * 60 * 60 * 24 * 3; // 3 days
|
|
21
2
|
//# sourceMappingURL=constants.js.map
|
package/lib/esm/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,2BAA2B,GAAG,eAAe,CAAC","sourcesContent":["export const DEFAULT_SESSION_START_EVENT = 'session_start';\n"]}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { BrowserConfig, EnrichmentPlugin, Event } from '@amplitude/analytics-types';
|
|
2
|
+
import { SessionReplayOptions } from './typings/session-replay';
|
|
3
|
+
export declare class SessionReplayPlugin implements EnrichmentPlugin {
|
|
4
|
+
name: string;
|
|
5
|
+
type: "enrichment";
|
|
6
|
+
config: BrowserConfig;
|
|
7
|
+
options: SessionReplayOptions;
|
|
8
|
+
constructor(options?: SessionReplayOptions);
|
|
9
|
+
setup(config: BrowserConfig): Promise<void>;
|
|
10
|
+
execute(event: Event): Promise<Event>;
|
|
11
|
+
teardown(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export declare const sessionReplayPlugin: (options?: SessionReplayOptions) => EnrichmentPlugin;
|
|
3
14
|
//# sourceMappingURL=session-replay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-replay.d.ts","sourceRoot":"","sources":["../../src/session-replay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-replay.d.ts","sourceRoot":"","sources":["../../src/session-replay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAGpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,qBAAa,mBAAoB,YAAW,gBAAgB;IAC1D,IAAI,SAA8C;IAClD,IAAI,eAAyB;IAI7B,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,oBAAoB,CAAC;gBAElB,OAAO,CAAC,EAAE,oBAAoB;IAIpC,KAAK,CAAC,MAAM,EAAE,aAAa;IAkC3B,OAAO,CAAC,KAAK,EAAE,KAAK;IAcpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC;AAED,eAAO,MAAM,mBAAmB,EAAE,CAAC,OAAO,CAAC,EAAE,oBAAoB,KAAK,gBAIrE,CAAC"}
|