@openreplay/tracker 11.0.6 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -2
- package/cjs/app/index.d.ts +84 -6
- package/cjs/app/index.js +427 -58
- package/cjs/app/logger.d.ts +7 -17
- package/cjs/app/logger.js +11 -19
- package/cjs/app/messages.gen.d.ts +2 -0
- package/cjs/app/messages.gen.js +20 -1
- package/cjs/app/observer/iframe_observer.js +4 -1
- package/cjs/app/observer/shadow_root_observer.js +4 -1
- package/cjs/app/observer/top_observer.js +7 -4
- package/cjs/common/interaction.d.ts +5 -2
- package/cjs/common/messages.gen.d.ts +17 -2
- package/cjs/index.d.ts +45 -2
- package/cjs/index.js +237 -106
- package/cjs/modules/Network/beaconProxy.js +4 -1
- package/cjs/modules/Network/fetchProxy.js +24 -1
- package/cjs/modules/Network/index.js +6 -3
- package/cjs/modules/Network/xhrProxy.js +24 -1
- package/cjs/modules/conditionsManager.d.ts +84 -0
- package/cjs/modules/conditionsManager.js +343 -0
- package/cjs/modules/exception.js +4 -1
- package/cjs/modules/featureFlags.d.ts +1 -1
- package/cjs/modules/featureFlags.js +36 -46
- package/cjs/modules/network.js +5 -2
- package/cjs/modules/tagWatcher.d.ts +21 -0
- package/cjs/modules/tagWatcher.js +77 -0
- package/cjs/modules/userTesting/index.js +30 -4
- package/cjs/modules/userTesting/recorder.js +71 -88
- package/coverage/clover.xml +577 -544
- package/coverage/coverage-final.json +8 -8
- package/coverage/lcov-report/index.html +28 -28
- package/coverage/lcov-report/main/app/canvas.ts.html +97 -46
- package/coverage/lcov-report/main/app/guards.ts.html +1 -1
- package/coverage/lcov-report/main/app/index.html +19 -19
- package/coverage/lcov-report/main/app/index.ts.html +62 -35
- package/coverage/lcov-report/main/app/logger.ts.html +1 -1
- package/coverage/lcov-report/main/app/messages.gen.ts.html +32 -5
- package/coverage/lcov-report/main/app/nodes.ts.html +17 -5
- package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/index.html +1 -1
- package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/top_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/sanitizer.ts.html +1 -1
- package/coverage/lcov-report/main/app/session.ts.html +1 -1
- package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
- package/coverage/lcov-report/main/index.html +9 -9
- package/coverage/lcov-report/main/index.ts.html +27 -6
- package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/index.html +1 -1
- package/coverage/lcov-report/main/modules/Network/index.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/utils.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/attributeSender.ts.html +1 -1
- package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/conditionsManager.ts.html +92 -38
- package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
- package/coverage/lcov-report/main/modules/console.ts.html +1 -1
- package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +1 -1
- package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
- package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
- package/coverage/lcov-report/main/modules/featureFlags.ts.html +1 -1
- package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
- package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
- package/coverage/lcov-report/main/modules/img.ts.html +1 -1
- package/coverage/lcov-report/main/modules/index.html +21 -21
- package/coverage/lcov-report/main/modules/input.ts.html +1 -1
- package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
- package/coverage/lcov-report/main/modules/network.ts.html +1 -1
- package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
- package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
- package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
- package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
- package/coverage/lcov-report/main/modules/tagWatcher.ts.html +54 -27
- package/coverage/lcov-report/main/modules/timing.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/SignalManager.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/dnd.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/index.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/index.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/recorder.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/styles.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/utils.ts.html +1 -1
- package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
- package/coverage/lcov-report/main/utils.ts.html +1 -1
- package/coverage/lcov-report/webworker/BatchWriter.ts.html +1 -1
- package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +17 -5
- package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +1 -1
- package/coverage/lcov-report/webworker/QueueSender.ts.html +1 -1
- package/coverage/lcov-report/webworker/index.html +7 -7
- package/coverage/lcov-report/webworker/index.ts.html +1 -1
- package/coverage/lcov.info +1100 -1033
- package/lib/app/index.d.ts +84 -6
- package/lib/app/index.js +387 -44
- package/lib/app/logger.d.ts +7 -17
- package/lib/app/logger.js +11 -19
- package/lib/app/messages.gen.d.ts +2 -0
- package/lib/app/messages.gen.js +17 -0
- package/lib/common/interaction.d.ts +5 -2
- package/lib/common/messages.gen.d.ts +17 -2
- package/lib/common/tsconfig.tsbuildinfo +1 -1
- package/lib/index.d.ts +45 -2
- package/lib/index.js +191 -86
- package/lib/modules/conditionsManager.d.ts +84 -0
- package/lib/modules/conditionsManager.js +340 -0
- package/lib/modules/featureFlags.d.ts +1 -1
- package/lib/modules/featureFlags.js +36 -46
- package/lib/modules/tagWatcher.d.ts +21 -0
- package/lib/modules/tagWatcher.js +74 -0
- package/lib/modules/userTesting/recorder.js +71 -88
- package/package.json +1 -1
- package/tsconfig-base.json +3 -2
package/cjs/app/logger.d.ts
CHANGED
|
@@ -5,22 +5,12 @@ export declare const LogLevel: {
|
|
|
5
5
|
readonly Errors: 2;
|
|
6
6
|
readonly Silent: 0;
|
|
7
7
|
};
|
|
8
|
-
type
|
|
9
|
-
type CustomLevel = {
|
|
10
|
-
error: boolean;
|
|
11
|
-
warn: boolean;
|
|
12
|
-
log: boolean;
|
|
13
|
-
};
|
|
14
|
-
interface _Options {
|
|
15
|
-
level: LogLevel | CustomLevel;
|
|
16
|
-
messages?: number[];
|
|
17
|
-
}
|
|
18
|
-
export type Options = true | _Options | LogLevel;
|
|
8
|
+
export type ILogLevel = (typeof LogLevel)[keyof typeof LogLevel];
|
|
19
9
|
export default class Logger {
|
|
20
|
-
private readonly
|
|
21
|
-
constructor(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
10
|
+
private readonly level;
|
|
11
|
+
constructor(debugLevel?: ILogLevel);
|
|
12
|
+
private shouldLog;
|
|
13
|
+
log(...args: any[]): void;
|
|
14
|
+
warn(...args: any[]): void;
|
|
15
|
+
error(...args: any[]): void;
|
|
25
16
|
}
|
|
26
|
-
export {};
|
package/cjs/app/logger.js
CHANGED
|
@@ -8,36 +8,28 @@ exports.LogLevel = {
|
|
|
8
8
|
Errors: 2,
|
|
9
9
|
Silent: 0,
|
|
10
10
|
};
|
|
11
|
-
function IsCustomLevel(l) {
|
|
12
|
-
return typeof l === 'object';
|
|
13
|
-
}
|
|
14
11
|
class Logger {
|
|
15
|
-
constructor(
|
|
16
|
-
this.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
? { level: options }
|
|
21
|
-
: options;
|
|
12
|
+
constructor(debugLevel = exports.LogLevel.Silent) {
|
|
13
|
+
this.level = debugLevel;
|
|
14
|
+
}
|
|
15
|
+
shouldLog(level) {
|
|
16
|
+
return this.level >= level;
|
|
22
17
|
}
|
|
23
18
|
log(...args) {
|
|
24
|
-
if (
|
|
25
|
-
|
|
26
|
-
: this.options.level >= exports.LogLevel.Log) {
|
|
19
|
+
if (this.shouldLog(exports.LogLevel.Log)) {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
27
21
|
console.log(...args);
|
|
28
22
|
}
|
|
29
23
|
}
|
|
30
24
|
warn(...args) {
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
: this.options.level >= exports.LogLevel.Warnings) {
|
|
25
|
+
if (this.shouldLog(exports.LogLevel.Warnings)) {
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
34
27
|
console.warn(...args);
|
|
35
28
|
}
|
|
36
29
|
}
|
|
37
30
|
error(...args) {
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
: this.options.level >= exports.LogLevel.Errors) {
|
|
31
|
+
if (this.shouldLog(exports.LogLevel.Errors)) {
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
41
33
|
console.error(...args);
|
|
42
34
|
}
|
|
43
35
|
}
|
|
@@ -62,6 +62,7 @@ export declare function Zustand(mutation: string, state: string): Messages.Zusta
|
|
|
62
62
|
export declare function BatchMetadata(version: number, pageNo: number, firstIndex: number, timestamp: number, location: string): Messages.BatchMetadata;
|
|
63
63
|
export declare function PartitionedMessage(partNo: number, partTotal: number): Messages.PartitionedMessage;
|
|
64
64
|
export declare function NetworkRequest(type: string, method: string, url: string, request: string, response: string, status: number, timestamp: number, duration: number, transferredBodySize: number): Messages.NetworkRequest;
|
|
65
|
+
export declare function WSChannel(chType: string, channelName: string, data: string, timestamp: number, dir: string, messageType: string): Messages.WSChannel;
|
|
65
66
|
export declare function InputChange(id: number, value: string, valueMasked: boolean, label: string, hesitationTime: number, inputDuration: number): Messages.InputChange;
|
|
66
67
|
export declare function SelectionChange(selectionStart: number, selectionEnd: number, selection: string): Messages.SelectionChange;
|
|
67
68
|
export declare function MouseThrashing(timestamp: number): Messages.MouseThrashing;
|
|
@@ -70,3 +71,4 @@ export declare function ResourceTiming(timestamp: number, duration: number, ttfb
|
|
|
70
71
|
export declare function TabChange(tabId: string): Messages.TabChange;
|
|
71
72
|
export declare function TabData(tabId: string): Messages.TabData;
|
|
72
73
|
export declare function CanvasNode(nodeId: string, timestamp: number): Messages.CanvasNode;
|
|
74
|
+
export declare function TagTrigger(tagId: number): Messages.TagTrigger;
|
package/cjs/app/messages.gen.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.CSSInsertRuleURLBased = exports.CustomIssue = exports.TechnicalInfo = exports.SetCSSDataURLBased = exports.SetNodeAttributeURLBased = exports.LongTask = exports.SetNodeFocus = exports.LoadFontFace = exports.SetPageVisibility = exports.ConnectionInformation = exports.ResourceTimingDeprecated = exports.SetNodeAttributeDict = exports.StringDict = exports.PerformanceTrack = exports.GraphQL = exports.NgRx = exports.MobX = exports.Vuex = exports.Redux = exports.StateAction = exports.OTable = exports.Profiler = exports.Fetch = exports.CSSDeleteRule = exports.CSSInsertRule = exports.Metadata = exports.UserAnonymousID = exports.UserID = exports.CustomEvent = exports.PageRenderTiming = exports.PageLoadTiming = exports.ConsoleLog = exports.NetworkRequestDeprecated = exports.MouseMove = exports.SetInputChecked = exports.SetInputValue = exports.SetInputTarget = exports.SetNodeScroll = exports.SetNodeData = exports.RemoveNodeAttribute = exports.SetNodeAttribute = exports.RemoveNode = exports.MoveNode = exports.CreateTextNode = exports.CreateElementNode = exports.CreateDocument = exports.SetViewportScroll = exports.SetViewportSize = exports.SetPageLocation = exports.Timestamp = void 0;
|
|
6
|
-
exports.CanvasNode = exports.TabData = exports.TabChange = exports.ResourceTiming = exports.UnbindNodes = exports.MouseThrashing = exports.SelectionChange = exports.InputChange = exports.NetworkRequest = exports.PartitionedMessage = exports.BatchMetadata = exports.Zustand = exports.JSException = exports.AdoptedSSRemoveOwner = exports.AdoptedSSAddOwner = exports.AdoptedSSDeleteRule = exports.AdoptedSSInsertRuleURLBased = exports.AdoptedSSReplaceURLBased = exports.CreateIFrameDocument = exports.MouseClick = void 0;
|
|
6
|
+
exports.TagTrigger = exports.CanvasNode = exports.TabData = exports.TabChange = exports.ResourceTiming = exports.UnbindNodes = exports.MouseThrashing = exports.SelectionChange = exports.InputChange = exports.WSChannel = exports.NetworkRequest = exports.PartitionedMessage = exports.BatchMetadata = exports.Zustand = exports.JSException = exports.AdoptedSSRemoveOwner = exports.AdoptedSSAddOwner = exports.AdoptedSSDeleteRule = exports.AdoptedSSInsertRuleURLBased = exports.AdoptedSSReplaceURLBased = exports.CreateIFrameDocument = exports.MouseClick = void 0;
|
|
7
7
|
function Timestamp(timestamp) {
|
|
8
8
|
return [
|
|
9
9
|
0 /* Messages.Type.Timestamp */,
|
|
@@ -564,6 +564,18 @@ function NetworkRequest(type, method, url, request, response, status, timestamp,
|
|
|
564
564
|
];
|
|
565
565
|
}
|
|
566
566
|
exports.NetworkRequest = NetworkRequest;
|
|
567
|
+
function WSChannel(chType, channelName, data, timestamp, dir, messageType) {
|
|
568
|
+
return [
|
|
569
|
+
84 /* Messages.Type.WSChannel */,
|
|
570
|
+
chType,
|
|
571
|
+
channelName,
|
|
572
|
+
data,
|
|
573
|
+
timestamp,
|
|
574
|
+
dir,
|
|
575
|
+
messageType,
|
|
576
|
+
];
|
|
577
|
+
}
|
|
578
|
+
exports.WSChannel = WSChannel;
|
|
567
579
|
function InputChange(id, value, valueMasked, label, hesitationTime, inputDuration) {
|
|
568
580
|
return [
|
|
569
581
|
112 /* Messages.Type.InputChange */,
|
|
@@ -637,3 +649,10 @@ function CanvasNode(nodeId, timestamp) {
|
|
|
637
649
|
];
|
|
638
650
|
}
|
|
639
651
|
exports.CanvasNode = CanvasNode;
|
|
652
|
+
function TagTrigger(tagId) {
|
|
653
|
+
return [
|
|
654
|
+
120 /* Messages.Type.TagTrigger */,
|
|
655
|
+
tagId,
|
|
656
|
+
];
|
|
657
|
+
}
|
|
658
|
+
exports.TagTrigger = TagTrigger;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const observer_js_1 = require("./observer.js");
|
|
6
|
+
const observer_js_1 = __importDefault(require("./observer.js"));
|
|
4
7
|
const messages_gen_js_1 = require("../messages.gen.js");
|
|
5
8
|
class IFrameObserver extends observer_js_1.default {
|
|
6
9
|
observe(iframe) {
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const observer_js_1 = require("./observer.js");
|
|
6
|
+
const observer_js_1 = __importDefault(require("./observer.js"));
|
|
4
7
|
const messages_gen_js_1 = require("../messages.gen.js");
|
|
5
8
|
class ShadowRootObserver extends observer_js_1.default {
|
|
6
9
|
observe(el) {
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const observer_js_1 = require("./observer.js");
|
|
6
|
+
const observer_js_1 = __importDefault(require("./observer.js"));
|
|
4
7
|
const guards_js_1 = require("../guards.js");
|
|
5
|
-
const iframe_observer_js_1 = require("./iframe_observer.js");
|
|
6
|
-
const shadow_root_observer_js_1 = require("./shadow_root_observer.js");
|
|
7
|
-
const iframe_offsets_js_1 = require("./iframe_offsets.js");
|
|
8
|
+
const iframe_observer_js_1 = __importDefault(require("./iframe_observer.js"));
|
|
9
|
+
const shadow_root_observer_js_1 = __importDefault(require("./shadow_root_observer.js"));
|
|
10
|
+
const iframe_offsets_js_1 = __importDefault(require("./iframe_offsets.js"));
|
|
8
11
|
const messages_gen_js_1 = require("../messages.gen.js");
|
|
9
12
|
const utils_js_1 = require("../../utils.js");
|
|
10
13
|
const attachShadowNativeFn = utils_js_1.IN_BROWSER ? Element.prototype.attachShadow : () => new ShadowRoot();
|
|
@@ -22,13 +22,16 @@ export type ToWorkerData = null | 'stop' | Start | Auth | Array<Message> | {
|
|
|
22
22
|
} | {
|
|
23
23
|
type: 'uncompressed';
|
|
24
24
|
batch: Uint8Array;
|
|
25
|
-
} | 'forceFlushBatch';
|
|
25
|
+
} | 'forceFlushBatch' | 'check_queue';
|
|
26
26
|
type Failure = {
|
|
27
27
|
type: 'failure';
|
|
28
28
|
reason: string;
|
|
29
29
|
};
|
|
30
|
+
type QEmpty = {
|
|
31
|
+
type: 'queue_empty';
|
|
32
|
+
};
|
|
30
33
|
export type FromWorkerData = 'restart' | Failure | 'not_init' | {
|
|
31
34
|
type: 'compress';
|
|
32
35
|
batch: Uint8Array;
|
|
33
|
-
};
|
|
36
|
+
} | QEmpty;
|
|
34
37
|
export {};
|
|
@@ -61,6 +61,7 @@ export declare const enum Type {
|
|
|
61
61
|
BatchMetadata = 81,
|
|
62
62
|
PartitionedMessage = 82,
|
|
63
63
|
NetworkRequest = 83,
|
|
64
|
+
WSChannel = 84,
|
|
64
65
|
InputChange = 112,
|
|
65
66
|
SelectionChange = 113,
|
|
66
67
|
MouseThrashing = 114,
|
|
@@ -68,7 +69,8 @@ export declare const enum Type {
|
|
|
68
69
|
ResourceTiming = 116,
|
|
69
70
|
TabChange = 117,
|
|
70
71
|
TabData = 118,
|
|
71
|
-
CanvasNode = 119
|
|
72
|
+
CanvasNode = 119,
|
|
73
|
+
TagTrigger = 120
|
|
72
74
|
}
|
|
73
75
|
export type Timestamp = [
|
|
74
76
|
Type.Timestamp,
|
|
@@ -444,6 +446,15 @@ export type NetworkRequest = [
|
|
|
444
446
|
number,
|
|
445
447
|
number
|
|
446
448
|
];
|
|
449
|
+
export type WSChannel = [
|
|
450
|
+
Type.WSChannel,
|
|
451
|
+
string,
|
|
452
|
+
string,
|
|
453
|
+
string,
|
|
454
|
+
number,
|
|
455
|
+
string,
|
|
456
|
+
string
|
|
457
|
+
];
|
|
447
458
|
export type InputChange = [
|
|
448
459
|
Type.InputChange,
|
|
449
460
|
number,
|
|
@@ -493,5 +504,9 @@ export type CanvasNode = [
|
|
|
493
504
|
string,
|
|
494
505
|
number
|
|
495
506
|
];
|
|
496
|
-
type
|
|
507
|
+
export type TagTrigger = [
|
|
508
|
+
Type.TagTrigger,
|
|
509
|
+
number
|
|
510
|
+
];
|
|
511
|
+
type Message = Timestamp | SetPageLocation | SetViewportSize | SetViewportScroll | CreateDocument | CreateElementNode | CreateTextNode | MoveNode | RemoveNode | SetNodeAttribute | RemoveNodeAttribute | SetNodeData | SetNodeScroll | SetInputTarget | SetInputValue | SetInputChecked | MouseMove | NetworkRequestDeprecated | ConsoleLog | PageLoadTiming | PageRenderTiming | CustomEvent | UserID | UserAnonymousID | Metadata | CSSInsertRule | CSSDeleteRule | Fetch | Profiler | OTable | StateAction | Redux | Vuex | MobX | NgRx | GraphQL | PerformanceTrack | StringDict | SetNodeAttributeDict | ResourceTimingDeprecated | ConnectionInformation | SetPageVisibility | LoadFontFace | SetNodeFocus | LongTask | SetNodeAttributeURLBased | SetCSSDataURLBased | TechnicalInfo | CustomIssue | CSSInsertRuleURLBased | MouseClick | CreateIFrameDocument | AdoptedSSReplaceURLBased | AdoptedSSInsertRuleURLBased | AdoptedSSDeleteRule | AdoptedSSAddOwner | AdoptedSSRemoveOwner | JSException | Zustand | BatchMetadata | PartitionedMessage | NetworkRequest | WSChannel | InputChange | SelectionChange | MouseThrashing | UnbindNodes | ResourceTiming | TabChange | TabData | CanvasNode | TagTrigger;
|
|
497
512
|
export default Message;
|
package/cjs/index.d.ts
CHANGED
|
@@ -33,16 +33,59 @@ export default class API {
|
|
|
33
33
|
featureFlags: FeatureFlags;
|
|
34
34
|
private readonly app;
|
|
35
35
|
constructor(options: Options);
|
|
36
|
+
checkDoNotTrack: () => boolean | undefined;
|
|
37
|
+
signalStartIssue: (reason: string, missingApi: string[]) => void;
|
|
36
38
|
isFlagEnabled(flagName: string): boolean;
|
|
37
39
|
onFlagsLoad(callback: (flags: IFeatureFlag[]) => void): void;
|
|
38
40
|
clearPersistFlags(): void;
|
|
39
|
-
reloadFlags(): Promise<void
|
|
41
|
+
reloadFlags(): Promise<void> | undefined;
|
|
40
42
|
getFeatureFlag(flagName: string): IFeatureFlag | undefined;
|
|
41
|
-
getAllFeatureFlags(): IFeatureFlag[];
|
|
43
|
+
getAllFeatureFlags(): IFeatureFlag[] | undefined;
|
|
42
44
|
restartCanvasTracking: () => void;
|
|
43
45
|
use<T>(fn: (app: App | null, options?: Options) => T): T;
|
|
44
46
|
isActive(): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Creates a named hook that expects event name, data string and msg direction (up/down),
|
|
49
|
+
* it will skip any message bigger than 5 mb or event name bigger than 255 symbols
|
|
50
|
+
* msg direction is "down" (incoming) by default
|
|
51
|
+
*
|
|
52
|
+
* @returns {(msgType: string, data: string, dir: 'up' | 'down') => void}
|
|
53
|
+
* */
|
|
54
|
+
trackWs(channelName: string): ((msgType: string, data: string, dir: "up" | "down") => void) | undefined;
|
|
45
55
|
start(startOpts?: Partial<StartOptions>): Promise<StartPromiseReturn>;
|
|
56
|
+
browserEnvCheck(): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* start buffering messages without starting the actual session, which gives user 30 seconds to "activate" and record
|
|
59
|
+
* session by calling start() on conditional trigger and we will then send buffered batch, so it won't get lost
|
|
60
|
+
* */
|
|
61
|
+
coldStart(startOpts?: Partial<StartOptions>, conditional?: boolean): Promise<never> | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Starts offline session recording. Keep in mind that only user device time will be used for timestamps.
|
|
64
|
+
* (no backend delay sync)
|
|
65
|
+
*
|
|
66
|
+
* @param {Object} startOpts - options for session start, same as .start()
|
|
67
|
+
* @param {Function} onSessionSent - callback that will be called once session is fully sent
|
|
68
|
+
* @returns methods to manipulate buffer:
|
|
69
|
+
*
|
|
70
|
+
* saveBuffer - to save it in localStorage
|
|
71
|
+
*
|
|
72
|
+
* getBuffer - returns current buffer
|
|
73
|
+
*
|
|
74
|
+
* setBuffer - replaces current buffer with given
|
|
75
|
+
* */
|
|
76
|
+
startOfflineRecording(startOpts: Partial<StartOptions>, onSessionSent: () => void): Promise<never> | {
|
|
77
|
+
saveBuffer: () => void;
|
|
78
|
+
getBuffer: () => import("./common/messages.gen.js").default[];
|
|
79
|
+
setBuffer: (buffer: import("./common/messages.gen.js").default[]) => void;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Uploads the stored session buffer to backend
|
|
83
|
+
* @returns promise that resolves once messages are loaded, it has to be awaited
|
|
84
|
+
* so the session can be uploaded properly
|
|
85
|
+
* @resolve - if messages were loaded into service worker successfully
|
|
86
|
+
* @reject {string} - error message
|
|
87
|
+
* */
|
|
88
|
+
uploadOfflineRecording(): Promise<void> | undefined;
|
|
46
89
|
stop(): string | undefined;
|
|
47
90
|
forceFlushBatch(): void;
|
|
48
91
|
getSessionToken(): string | null | undefined;
|