@openreplay/tracker 14.0.13 → 15.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.
@@ -37,8 +37,10 @@ export declare function MobX(type: string, payload: string): Messages.MobX;
37
37
  export declare function NgRx(action: string, state: string, duration: number): Messages.NgRx;
38
38
  export declare function GraphQLDeprecated(operationKind: string, operationName: string, variables: string, response: string, duration: number): Messages.GraphQLDeprecated;
39
39
  export declare function PerformanceTrack(frames: number, ticks: number, totalJSHeapSize: number, usedJSHeapSize: number): Messages.PerformanceTrack;
40
- export declare function StringDict(key: number, value: string): Messages.StringDict;
41
- export declare function SetNodeAttributeDict(id: number, nameKey: number, valueKey: number): Messages.SetNodeAttributeDict;
40
+ export declare function StringDictDeprecated(key: number, value: string): Messages.StringDictDeprecated;
41
+ export declare function SetNodeAttributeDictDeprecated(id: number, nameKey: number, valueKey: number): Messages.SetNodeAttributeDictDeprecated;
42
+ export declare function StringDict(key: string, value: string): Messages.StringDict;
43
+ export declare function SetNodeAttributeDict(id: number, name: string, value: string): Messages.SetNodeAttributeDict;
42
44
  export declare function ResourceTimingDeprecated(timestamp: number, duration: number, ttfb: number, headerSize: number, encodedBodySize: number, decodedBodySize: number, url: string, initiator: string): Messages.ResourceTimingDeprecated;
43
45
  export declare function ConnectionInformation(downlink: number, type: string): Messages.ConnectionInformation;
44
46
  export declare function SetPageVisibility(hidden: boolean): Messages.SetPageVisibility;
@@ -76,3 +78,4 @@ export declare function TagTrigger(tagId: number): Messages.TagTrigger;
76
78
  export declare function Redux(action: string, state: string, duration: number, actionTime: number): Messages.Redux;
77
79
  export declare function SetPageLocation(url: string, referrer: string, navigationStart: number, documentTitle: string): Messages.SetPageLocation;
78
80
  export declare function GraphQL(operationKind: string, operationName: string, variables: string, response: string, duration: number): Messages.GraphQL;
81
+ export declare function WebVitals(name: string, value: string): Messages.WebVitals;
@@ -16,7 +16,7 @@ export default class Nodes {
16
16
  private readonly maintainer;
17
17
  constructor(params: NodesOptions);
18
18
  syntheticMode(frameOrder: number): void;
19
- attachNodeCallback(nodeCallback: NodeCallback): number;
19
+ attachNodeCallback: (nodeCallback: NodeCallback) => number;
20
20
  scanTree: (cb: (node: Node | void) => void) => void;
21
21
  attachNodeListener: (node: Node, type: string, listener: EventListener, useCapture?: boolean) => void;
22
22
  registerNode(node: Node): [/*id:*/ number, /*isNew:*/ boolean];
@@ -5,8 +5,28 @@ export declare enum SanitizeLevel {
5
5
  Hidden = 2
6
6
  }
7
7
  export interface Options {
8
+ /**
9
+ * Sanitize emails in text DOM nodes
10
+ *
11
+ * (for inputs, look for obscureInputEmails)
12
+ * */
8
13
  obscureTextEmails: boolean;
14
+ /**
15
+ * Sanitize emails in text DOM nodes
16
+ *
17
+ * (for inputs, look for obscureInputNumbers)
18
+ * */
9
19
  obscureTextNumbers: boolean;
20
+ /**
21
+ * Sanitize the DOM node based on the returned level
22
+ * (Plain = 0, Obscured = 1, Hidden = 2)
23
+ *
24
+ * higher security levels will override other settings or data-params.
25
+ *
26
+ * @param node - the DOM node to sanitize
27
+ * @returns the level of sanitization to apply
28
+ *
29
+ * */
10
30
  domSanitizer?: (node: Element) => SanitizeLevel;
11
31
  }
12
32
  export declare const stringWiper: (input: string) => string;
@@ -42,8 +42,8 @@ export default class Session {
42
42
  setMetadata(key: string, value: string): void;
43
43
  setUserID(userID: string): void;
44
44
  setUserInfo(userInfo: UserInfo): void;
45
- private getPageNumber;
46
- incPageNo(): number;
45
+ getPageNumber: () => number | undefined;
46
+ incPageNo: () => number;
47
47
  getSessionToken(): string | undefined;
48
48
  setSessionToken(token: string): void;
49
49
  applySessionHash(hash: string): void;
@@ -1,8 +1,13 @@
1
1
  import App from '../app/index.js';
2
2
  export declare class StringDictionary {
3
+ private readonly getPageNo;
3
4
  private idx;
5
+ /** backwards dictionary of
6
+ * [repeated str:key]
7
+ * */
4
8
  private backDict;
5
- getKey(str: string): [number, boolean];
9
+ constructor(getPageNo: () => number | undefined);
10
+ getKey: (str: string) => [string, boolean];
6
11
  }
7
12
  export default class AttributeSender {
8
13
  private dict;
@@ -12,7 +17,7 @@ export default class AttributeSender {
12
17
  app: App;
13
18
  isDictDisabled: boolean;
14
19
  });
15
- sendSetAttribute(id: number, name: string, value: string): void;
20
+ sendSetAttribute: (id: number, name: string, value: string) => void;
16
21
  private applyDict;
17
22
  clear(): void;
18
23
  }
@@ -8,10 +8,27 @@ export declare const InputMode: {
8
8
  };
9
9
  export type InputModeT = (typeof InputMode)[keyof typeof InputMode];
10
10
  export interface Options {
11
+ /**
12
+ * Sanitize numbers from DOM input nodes.
13
+ *
14
+ * (for plain text nodes, look for obscureTextNumbers)
15
+ * */
11
16
  obscureInputNumbers: boolean;
17
+ /**
18
+ * Sanitize emails from DOM input nodes.
19
+ *
20
+ * (for plain text nodes, look for obscureTextEmails)
21
+ * */
12
22
  obscureInputEmails: boolean;
13
- defaultInputMode: InputModeT;
23
+ /**
24
+ * Sanitize dates from DOM input nodes.
25
+ * */
14
26
  obscureInputDates: boolean;
27
+ /**
28
+ * Default input mode for all input nodes. Higher security level
29
+ * will override other settings.
30
+ * */
31
+ defaultInputMode: InputModeT;
15
32
  }
16
33
  export default function (app: App, opts: Partial<Options>): void;
17
34
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@openreplay/tracker",
3
3
  "description": "The OpenReplay tracker main package",
4
- "version": "14.0.13",
4
+ "version": "15.0.0",
5
5
  "keywords": [
6
6
  "logging",
7
7
  "replay"
@@ -34,6 +34,7 @@
34
34
  "scripts": {
35
35
  "lint": "eslint src --ext .ts,.js --fix --quiet",
36
36
  "clean": "rm -Rf build && rm -Rf lib && rm -Rf cjs",
37
+ "build:common": "tsc -b src/common",
37
38
  "build": "yarn run clean && rollup --config rollup.config.js",
38
39
  "lint-front": "lint-staged",
39
40
  "test": "jest --coverage=false",
@@ -42,34 +43,35 @@
42
43
  "prepublishOnly": "bun run test && bun run build"
43
44
  },
44
45
  "devDependencies": {
45
- "@babel/core": "^7.10.2",
46
- "@jest/globals": "^29.3.1",
46
+ "@babel/core": "^7.26.0",
47
+ "@jest/globals": "^29.7.0",
47
48
  "@rollup/plugin-babel": "^6.0.4",
48
- "@rollup/plugin-node-resolve": "^15.2.3",
49
+ "@rollup/plugin-node-resolve": "^15.3.0",
49
50
  "@rollup/plugin-replace": "^6.0.1",
50
51
  "@rollup/plugin-terser": "0.4.4",
51
52
  "@rollup/plugin-typescript": "^12.1.1",
52
- "@typescript-eslint/eslint-plugin": "^8.10.0",
53
- "@typescript-eslint/parser": "^8.10.0",
54
- "eslint": "^8.57.1",
55
- "eslint-config-prettier": "^9.0.0",
56
- "eslint-plugin-prettier": "^5.0.1",
57
- "jest": "^29.3.1",
58
- "jest-environment-jsdom": "^29.3.1",
59
- "prettier": "^3.0.3",
53
+ "@typescript-eslint/eslint-plugin": "^8.14.0",
54
+ "@typescript-eslint/parser": "^8.14.0",
55
+ "eslint": "^9.15.0",
56
+ "eslint-config-prettier": "^9.1.0",
57
+ "eslint-plugin-prettier": "^5.2.1",
58
+ "jest": "^29.7.0",
59
+ "jest-environment-jsdom": "^29.7.0",
60
+ "prettier": "^3.3.3",
60
61
  "replace-in-files": "^2.0.3",
61
- "rollup": "^4.1.4",
62
+ "rollup": "^4.27.2",
62
63
  "semver": "^6.3.0",
63
- "ts-jest": "^29.0.3",
64
- "tslib": "^2.8.0",
64
+ "ts-jest": "^29.2.5",
65
+ "tslib": "^2.8.1",
65
66
  "typescript": "^5.6.3"
66
67
  },
67
68
  "dependencies": {
68
69
  "@medv/finder": "^3.2.0",
69
- "@openreplay/network-proxy": "^1.0.3",
70
+ "@openreplay/network-proxy": "^1.0.4",
70
71
  "error-stack-parser": "^2.0.6",
71
72
  "error-stack-parser-es": "^0.1.5",
72
- "fflate": "^0.8.2"
73
+ "fflate": "^0.8.2",
74
+ "web-vitals": "^4.2.3"
73
75
  },
74
76
  "engines": {
75
77
  "node": ">=14.0"