@openreplay/tracker 4.1.11 → 5.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.
Files changed (71) hide show
  1. package/.eslintignore +3 -0
  2. package/CHANGELOG.md +20 -0
  3. package/README.md +22 -18
  4. package/cjs/app/guards.d.ts +11 -12
  5. package/cjs/app/guards.js +2 -1
  6. package/cjs/app/index.d.ts +11 -8
  7. package/cjs/app/index.js +27 -8
  8. package/cjs/app/logger.d.ts +3 -3
  9. package/cjs/app/messages.gen.d.ts +8 -6
  10. package/cjs/app/messages.gen.js +116 -94
  11. package/cjs/app/nodes.d.ts +1 -1
  12. package/cjs/app/observer/iframe_offsets.d.ts +1 -1
  13. package/cjs/app/observer/observer.js +5 -5
  14. package/cjs/app/observer/top_observer.d.ts +2 -2
  15. package/cjs/app/observer/top_observer.js +1 -1
  16. package/cjs/app/session.d.ts +2 -2
  17. package/cjs/app/ticker.d.ts +1 -1
  18. package/cjs/common/interaction.d.ts +5 -5
  19. package/cjs/common/messages.gen.d.ts +104 -86
  20. package/cjs/index.d.ts +6 -2
  21. package/cjs/index.js +7 -5
  22. package/cjs/modules/cssrules.js +1 -1
  23. package/cjs/modules/focus.js +2 -2
  24. package/cjs/modules/fonts.js +2 -2
  25. package/cjs/modules/img.js +6 -5
  26. package/cjs/modules/input.d.ts +1 -1
  27. package/cjs/modules/input.js +15 -23
  28. package/cjs/modules/mouse.js +1 -1
  29. package/cjs/modules/network.d.ts +28 -0
  30. package/cjs/modules/network.js +203 -0
  31. package/cjs/modules/timing.js +7 -3
  32. package/cjs/modules/viewport.js +3 -1
  33. package/cjs/vendors/finder/finder.d.ts +1 -1
  34. package/jest.config.js +11 -0
  35. package/lib/app/guards.d.ts +11 -12
  36. package/lib/app/guards.js +2 -1
  37. package/lib/app/index.d.ts +11 -8
  38. package/lib/app/index.js +28 -9
  39. package/lib/app/logger.d.ts +3 -3
  40. package/lib/app/messages.gen.d.ts +8 -6
  41. package/lib/app/messages.gen.js +107 -87
  42. package/lib/app/nodes.d.ts +1 -1
  43. package/lib/app/observer/iframe_offsets.d.ts +1 -1
  44. package/lib/app/observer/observer.js +5 -5
  45. package/lib/app/observer/top_observer.d.ts +2 -2
  46. package/lib/app/observer/top_observer.js +1 -1
  47. package/lib/app/session.d.ts +2 -2
  48. package/lib/app/ticker.d.ts +1 -1
  49. package/lib/common/interaction.d.ts +5 -5
  50. package/lib/common/messages.gen.d.ts +104 -86
  51. package/lib/common/tsconfig.tsbuildinfo +1 -1
  52. package/lib/index.d.ts +6 -2
  53. package/lib/index.js +8 -6
  54. package/lib/modules/cssrules.js +1 -1
  55. package/lib/modules/focus.js +2 -2
  56. package/lib/modules/fonts.js +2 -2
  57. package/lib/modules/img.js +6 -5
  58. package/lib/modules/input.d.ts +1 -1
  59. package/lib/modules/input.js +15 -23
  60. package/lib/modules/mouse.js +1 -1
  61. package/lib/modules/network.d.ts +28 -0
  62. package/lib/modules/network.js +200 -0
  63. package/lib/modules/timing.js +8 -4
  64. package/lib/modules/viewport.js +3 -1
  65. package/lib/vendors/finder/finder.d.ts +1 -1
  66. package/package.json +8 -3
  67. package/tsconfig-base.json +2 -1
  68. package/cjs/app/messages.d.ts +0 -52
  69. package/cjs/app/messages.js +0 -234
  70. package/lib/app/messages.d.ts +0 -52
  71. package/lib/app/messages.js +0 -181
@@ -0,0 +1,200 @@
1
+ import { NetworkRequest } from '../app/messages.gen.js';
2
+ import { getTimeOrigin } from '../utils.js';
3
+ function getXHRRequestDataObject(xhr) {
4
+ // @ts-ignore this is 3x faster than using Map<XHR, XHRRequestData>
5
+ if (!xhr.__or_req_data__) {
6
+ // @ts-ignore
7
+ xhr.__or_req_data__ = { body: undefined, headers: {} };
8
+ }
9
+ // @ts-ignore
10
+ return xhr.__or_req_data__;
11
+ }
12
+ function strMethod(method) {
13
+ return typeof method === 'string' ? method.toUpperCase() : 'GET';
14
+ }
15
+ export default function (app, opts = {}) {
16
+ const options = Object.assign({
17
+ failuresOnly: false,
18
+ ignoreHeaders: ['Cookie', 'Set-Cookie', 'Authorization'],
19
+ capturePayload: false,
20
+ sessionTokenHeader: false,
21
+ }, opts);
22
+ const ignoreHeaders = options.ignoreHeaders;
23
+ const isHIgnored = Array.isArray(ignoreHeaders)
24
+ ? (name) => ignoreHeaders.includes(name)
25
+ : () => ignoreHeaders;
26
+ const stHeader = options.sessionTokenHeader === true ? 'X-OpenReplay-SessionToken' : options.sessionTokenHeader;
27
+ function setSessionTokenHeader(setRequestHeader) {
28
+ if (stHeader) {
29
+ const sessionToken = app.getSessionToken();
30
+ if (sessionToken) {
31
+ app.safe(setRequestHeader)(stHeader, sessionToken);
32
+ }
33
+ }
34
+ }
35
+ function sanitize(reqResInfo) {
36
+ if (!options.capturePayload) {
37
+ delete reqResInfo.request.body;
38
+ delete reqResInfo.response.body;
39
+ }
40
+ if (options.sanitizer) {
41
+ const resBody = reqResInfo.response.body;
42
+ if (typeof resBody === 'string') {
43
+ // Parse response in order to have handy view in sanitisation function
44
+ try {
45
+ reqResInfo.response.body = JSON.parse(resBody);
46
+ }
47
+ catch (_a) { }
48
+ }
49
+ return options.sanitizer(reqResInfo);
50
+ }
51
+ return reqResInfo;
52
+ }
53
+ function stringify(r) {
54
+ if (r && typeof r.body !== 'string') {
55
+ try {
56
+ r.body = JSON.stringify(r.body);
57
+ }
58
+ catch (_a) {
59
+ r.body = '<unable to stringify>';
60
+ app.notify.warn("Openreplay fetch couldn't stringify body:", r.body);
61
+ }
62
+ }
63
+ return JSON.stringify(r);
64
+ }
65
+ /* ====== Fetch ====== */
66
+ const origFetch = window.fetch.bind(window);
67
+ window.fetch = (input, init = {}) => {
68
+ if (!(typeof input === 'string' || input instanceof URL) || app.isServiceURL(String(input))) {
69
+ return origFetch(input, init);
70
+ }
71
+ setSessionTokenHeader(function (name, value) {
72
+ if (init.headers === undefined) {
73
+ init.headers = {};
74
+ }
75
+ if (init.headers instanceof Headers) {
76
+ init.headers.append(name, value);
77
+ }
78
+ else if (Array.isArray(init.headers)) {
79
+ init.headers.push([name, value]);
80
+ }
81
+ else {
82
+ init.headers[name] = value;
83
+ }
84
+ });
85
+ const startTime = performance.now();
86
+ return origFetch(input, init).then((response) => {
87
+ const duration = performance.now() - startTime;
88
+ if (options.failuresOnly && response.status < 400) {
89
+ return response;
90
+ }
91
+ const r = response.clone();
92
+ r.text()
93
+ .then((text) => {
94
+ const reqHs = {};
95
+ const resHs = {};
96
+ if (ignoreHeaders !== true) {
97
+ // request headers
98
+ const writeReqHeader = ([n, v]) => {
99
+ if (!isHIgnored(n)) {
100
+ reqHs[n] = v;
101
+ }
102
+ };
103
+ if (init.headers instanceof Headers) {
104
+ init.headers.forEach((v, n) => writeReqHeader([n, v]));
105
+ }
106
+ else if (Array.isArray(init.headers)) {
107
+ init.headers.forEach(writeReqHeader);
108
+ }
109
+ else if (typeof init.headers === 'object') {
110
+ Object.entries(init.headers).forEach(writeReqHeader);
111
+ }
112
+ // response headers
113
+ r.headers.forEach((v, n) => {
114
+ if (!isHIgnored(n))
115
+ resHs[n] = v;
116
+ });
117
+ }
118
+ const method = strMethod(init.method);
119
+ const reqResInfo = sanitize({
120
+ url: String(input),
121
+ method,
122
+ status: r.status,
123
+ request: {
124
+ headers: reqHs,
125
+ body: init.body,
126
+ },
127
+ response: {
128
+ headers: resHs,
129
+ body: text,
130
+ },
131
+ });
132
+ if (!reqResInfo) {
133
+ return;
134
+ }
135
+ app.send(NetworkRequest('fetch', method, String(reqResInfo.url), stringify(reqResInfo.request), stringify(reqResInfo.response), r.status, startTime + getTimeOrigin(), duration));
136
+ })
137
+ .catch((e) => app.debug.error('Could not process Fetch response:', e));
138
+ return response;
139
+ });
140
+ };
141
+ /* ====== <> ====== */
142
+ /* ====== XHR ====== */
143
+ const nativeOpen = XMLHttpRequest.prototype.open;
144
+ XMLHttpRequest.prototype.open = function (initMethod, url) {
145
+ const xhr = this;
146
+ setSessionTokenHeader((name, value) => xhr.setRequestHeader(name, value));
147
+ let startTime = 0;
148
+ xhr.addEventListener('loadstart', (e) => {
149
+ startTime = e.timeStamp;
150
+ });
151
+ xhr.addEventListener('load', app.safe((e) => {
152
+ const { headers: reqHs, body: reqBody } = getXHRRequestDataObject(xhr);
153
+ const duration = startTime > 0 ? e.timeStamp - startTime : 0;
154
+ const hString = ignoreHeaders ? '' : xhr.getAllResponseHeaders(); // might be null (though only if no response received though)
155
+ const resHs = hString
156
+ ? hString
157
+ .split('\r\n')
158
+ .map((h) => h.split(':'))
159
+ .filter((entry) => !isHIgnored(entry[0]))
160
+ .reduce((hds, [name, value]) => (Object.assign(Object.assign({}, hds), { [name]: value })), {})
161
+ : {};
162
+ const method = strMethod(initMethod);
163
+ const reqResInfo = sanitize({
164
+ url: String(url),
165
+ method,
166
+ status: xhr.status,
167
+ request: {
168
+ headers: reqHs,
169
+ body: reqBody,
170
+ },
171
+ response: {
172
+ headers: resHs,
173
+ body: xhr.response,
174
+ },
175
+ });
176
+ if (!reqResInfo) {
177
+ return;
178
+ }
179
+ app.send(NetworkRequest('xhr', method, String(reqResInfo.url), stringify(reqResInfo.request), stringify(reqResInfo.response), xhr.status, startTime + getTimeOrigin(), duration));
180
+ }));
181
+ //TODO: handle error (though it has no Error API nor any useful information)
182
+ //xhr.addEventListener('error', (e) => {})
183
+ return nativeOpen.apply(this, arguments);
184
+ };
185
+ const nativeSend = XMLHttpRequest.prototype.send;
186
+ XMLHttpRequest.prototype.send = function (body) {
187
+ const rdo = getXHRRequestDataObject(this);
188
+ rdo.body = body;
189
+ return nativeSend.apply(this, arguments);
190
+ };
191
+ const nativeSetRequestHeader = XMLHttpRequest.prototype.setRequestHeader;
192
+ XMLHttpRequest.prototype.setRequestHeader = function (name, value) {
193
+ if (!isHIgnored(name)) {
194
+ const rdo = getXHRRequestDataObject(this);
195
+ rdo.headers[name] = value;
196
+ }
197
+ return nativeSetRequestHeader.apply(this, arguments);
198
+ };
199
+ /* ====== <> ====== */
200
+ }
@@ -1,5 +1,5 @@
1
1
  import { hasTag } from '../app/guards.js';
2
- import { isURL } from '../utils.js';
2
+ import { isURL, getTimeOrigin } from '../utils.js';
3
3
  import { ResourceTiming, PageLoadTiming, PageRenderTiming } from '../app/messages.gen.js';
4
4
  function getPaintBlocks(resources) {
5
5
  const paintBlocks = [];
@@ -8,7 +8,7 @@ function getPaintBlocks(resources) {
8
8
  for (let i = 0; i < elements.length; i++) {
9
9
  const element = elements[i];
10
10
  let src = '';
11
- if (hasTag(element, 'IMG')) {
11
+ if (hasTag(element, 'img')) {
12
12
  src = element.currentSrc || element.src;
13
13
  }
14
14
  if (!src) {
@@ -73,7 +73,7 @@ export default function (app, opts) {
73
73
  if (resources !== null) {
74
74
  resources[entry.name] = entry.startTime + entry.duration;
75
75
  }
76
- app.send(ResourceTiming(entry.startTime + performance.timing.navigationStart, entry.duration, entry.responseStart && entry.startTime ? entry.responseStart - entry.startTime : 0, entry.transferSize > entry.encodedBodySize ? entry.transferSize - entry.encodedBodySize : 0, entry.encodedBodySize || 0, entry.decodedBodySize || 0, entry.name, entry.initiatorType));
76
+ app.send(ResourceTiming(entry.startTime + getTimeOrigin(), entry.duration, entry.responseStart && entry.startTime ? entry.responseStart - entry.startTime : 0, entry.transferSize > entry.encodedBodySize ? entry.transferSize - entry.encodedBodySize : 0, entry.encodedBodySize || 0, entry.decodedBodySize || 0, entry.name, entry.initiatorType));
77
77
  }
78
78
  const observer = new PerformanceObserver((list) => list.getEntries().forEach(resourceTiming));
79
79
  let prevSessionID;
@@ -110,7 +110,11 @@ export default function (app, opts) {
110
110
  }
111
111
  if (performance.timing.loadEventEnd || performance.now() > 30000) {
112
112
  pageLoadTimingSent = true;
113
- const { navigationStart, requestStart, responseStart, responseEnd, domContentLoadedEventStart, domContentLoadedEventEnd, loadEventStart, loadEventEnd, } = performance.timing;
113
+ const {
114
+ // should be ok to use here, (https://github.com/mdn/content/issues/4713)
115
+ // since it is compared with the values obtained on the page load (before any possible sleep state)
116
+ // deprecated though
117
+ navigationStart, requestStart, responseStart, responseEnd, domContentLoadedEventStart, domContentLoadedEventEnd, loadEventStart, loadEventEnd, } = performance.timing;
114
118
  app.send(PageLoadTiming(requestStart - navigationStart || 0, responseStart - navigationStart || 0, responseEnd - navigationStart || 0, domContentLoadedEventStart - navigationStart || 0, domContentLoadedEventEnd - navigationStart || 0, loadEventStart - navigationStart || 0, loadEventEnd - navigationStart || 0, firstPaint, firstContentfulPaint));
115
119
  }
116
120
  }, 30);
@@ -3,12 +3,14 @@ import { SetPageLocation, SetViewportSize, SetPageVisibility } from '../app/mess
3
3
  export default function (app) {
4
4
  let url, width, height;
5
5
  let navigationStart;
6
+ let referrer = document.referrer;
6
7
  const sendSetPageLocation = app.safe(() => {
7
8
  const { URL } = document;
8
9
  if (URL !== url) {
9
10
  url = URL;
10
- app.send(SetPageLocation(url, document.referrer, navigationStart));
11
+ app.send(SetPageLocation(url, referrer, navigationStart));
11
12
  navigationStart = 0;
13
+ referrer = url;
12
14
  }
13
15
  });
14
16
  const sendSetViewportSize = app.safe(() => {
@@ -1,4 +1,4 @@
1
- export declare type Options = {
1
+ export type Options = {
2
2
  root: Element;
3
3
  idName: (name: string) => boolean;
4
4
  className: (name: string) => boolean;
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": "4.1.11",
4
+ "version": "5.0.0",
5
5
  "keywords": [
6
6
  "logging",
7
7
  "replay"
@@ -21,10 +21,12 @@
21
21
  "compile": "node --experimental-modules --experimental-json-modules scripts/compile.cjs",
22
22
  "build": "npm run clean && npm run tscRun && npm run rollup && npm run compile",
23
23
  "prepare": "cd ../../ && husky install tracker/.husky/",
24
- "lint-front": "lint-staged"
24
+ "lint-front": "lint-staged",
25
+ "test": "jest"
25
26
  },
26
27
  "devDependencies": {
27
28
  "@babel/core": "^7.10.2",
29
+ "@jest/globals": "^29.3.1",
28
30
  "@rollup/plugin-babel": "^5.0.3",
29
31
  "@rollup/plugin-node-resolve": "^10.0.0",
30
32
  "@typescript-eslint/eslint-plugin": "^5.30.0",
@@ -33,13 +35,16 @@
33
35
  "eslint-config-prettier": "^8.5.0",
34
36
  "eslint-plugin-prettier": "^4.2.1",
35
37
  "husky": "^8.0.1",
38
+ "jest": "^29.3.1",
39
+ "jest-environment-jsdom": "^29.3.1",
36
40
  "lint-staged": "^13.0.3",
37
41
  "prettier": "^2.7.1",
38
42
  "replace-in-files": "^2.0.3",
39
43
  "rollup": "^2.17.0",
40
44
  "rollup-plugin-terser": "^6.1.0",
41
45
  "semver": "^6.3.0",
42
- "typescript": "4.6.0-dev.20211126"
46
+ "ts-jest": "^29.0.3",
47
+ "typescript": "^4.9.4"
43
48
  },
44
49
  "dependencies": {
45
50
  "error-stack-parser": "^2.0.6"
@@ -10,5 +10,6 @@
10
10
  "target": "es6",
11
11
  "module": "es6",
12
12
  "moduleResolution": "nodenext"
13
- }
13
+ },
14
+ "exclude": ["**/*.test.ts"]
14
15
  }
@@ -1,52 +0,0 @@
1
- import * as Messages from '../common/messages.gen.js';
2
- export { default } from '../common/messages.gen.js';
3
- export declare function BatchMetadata(version: number, pageNo: number, firstIndex: number, timestamp: number, location: string): Messages.BatchMetadata;
4
- export declare function PartitionedMessage(partNo: number, partTotal: number): Messages.PartitionedMessage;
5
- export declare function Timestamp(timestamp: number): Messages.Timestamp;
6
- export declare function SetPageLocation(url: string, referrer: string, navigationStart: number): Messages.SetPageLocation;
7
- export declare function SetViewportSize(width: number, height: number): Messages.SetViewportSize;
8
- export declare function SetViewportScroll(x: number, y: number): Messages.SetViewportScroll;
9
- export declare function CreateDocument(): Messages.CreateDocument;
10
- export declare function CreateElementNode(id: number, parentID: number, index: number, tag: string, svg: boolean): Messages.CreateElementNode;
11
- export declare function CreateTextNode(id: number, parentID: number, index: number): Messages.CreateTextNode;
12
- export declare function MoveNode(id: number, parentID: number, index: number): Messages.MoveNode;
13
- export declare function RemoveNode(id: number): Messages.RemoveNode;
14
- export declare function SetNodeAttribute(id: number, name: string, value: string): Messages.SetNodeAttribute;
15
- export declare function RemoveNodeAttribute(id: number, name: string): Messages.RemoveNodeAttribute;
16
- export declare function SetNodeData(id: number, data: string): Messages.SetNodeData;
17
- export declare function SetNodeScroll(id: number, x: number, y: number): Messages.SetNodeScroll;
18
- export declare function SetInputTarget(id: number, label: string): Messages.SetInputTarget;
19
- export declare function SetInputValue(id: number, value: string, mask: number): Messages.SetInputValue;
20
- export declare function SetInputChecked(id: number, checked: boolean): Messages.SetInputChecked;
21
- export declare function MouseMove(x: number, y: number): Messages.MouseMove;
22
- export declare function ConsoleLog(level: string, value: string): Messages.ConsoleLog;
23
- export declare function PageLoadTiming(requestStart: number, responseStart: number, responseEnd: number, domContentLoadedEventStart: number, domContentLoadedEventEnd: number, loadEventStart: number, loadEventEnd: number, firstPaint: number, firstContentfulPaint: number): Messages.PageLoadTiming;
24
- export declare function PageRenderTiming(speedIndex: number, visuallyComplete: number, timeToInteractive: number): Messages.PageRenderTiming;
25
- export declare function JSException(name: string, message: string, payload: string, metadata: string): Messages.JSException;
26
- export declare function RawCustomEvent(name: string, payload: string): Messages.RawCustomEvent;
27
- export declare function UserID(id: string): Messages.UserID;
28
- export declare function UserAnonymousID(id: string): Messages.UserAnonymousID;
29
- export declare function Metadata(key: string, value: string): Messages.Metadata;
30
- export declare function CSSInsertRule(id: number, rule: string, index: number): Messages.CSSInsertRule;
31
- export declare function CSSDeleteRule(id: number, index: number): Messages.CSSDeleteRule;
32
- export declare function Fetch(method: string, url: string, request: string, response: string, status: number, timestamp: number, duration: number): Messages.Fetch;
33
- export declare function Profiler(name: string, duration: number, args: string, result: string): Messages.Profiler;
34
- export declare function OTable(key: string, value: string): Messages.OTable;
35
- export declare function StateAction(type: string): Messages.StateAction;
36
- export declare function Redux(action: string, state: string, duration: number): Messages.Redux;
37
- export declare function Vuex(mutation: string, state: string): Messages.Vuex;
38
- export declare function MobX(type: string, payload: string): Messages.MobX;
39
- export declare function NgRx(action: string, state: string, duration: number): Messages.NgRx;
40
- export declare function GraphQL(operationKind: string, operationName: string, variables: string, response: string): Messages.GraphQL;
41
- export declare function PerformanceTrack(frames: number, ticks: number, totalJSHeapSize: number, usedJSHeapSize: number): Messages.PerformanceTrack;
42
- export declare function ResourceTiming(timestamp: number, duration: number, ttfb: number, headerSize: number, encodedBodySize: number, decodedBodySize: number, url: string, initiator: string): Messages.ResourceTiming;
43
- export declare function ConnectionInformation(downlink: number, type: string): Messages.ConnectionInformation;
44
- export declare function SetPageVisibility(hidden: boolean): Messages.SetPageVisibility;
45
- export declare function LongTask(timestamp: number, duration: number, context: number, containerType: number, containerSrc: string, containerId: string, containerName: string): Messages.LongTask;
46
- export declare function SetNodeAttributeURLBased(id: number, name: string, value: string, baseURL: string): Messages.SetNodeAttributeURLBased;
47
- export declare function SetCSSDataURLBased(id: number, data: string, baseURL: string): Messages.SetCSSDataURLBased;
48
- export declare function TechnicalInfo(type: string, value: string): Messages.TechnicalInfo;
49
- export declare function CustomIssue(name: string, payload: string): Messages.CustomIssue;
50
- export declare function CSSInsertRuleURLBased(id: number, rule: string, index: number, baseURL: string): Messages.CSSInsertRuleURLBased;
51
- export declare function MouseClick(id: number, hesitationTime: number, label: string, selector: string): Messages.MouseClick;
52
- export declare function CreateIFrameDocument(frameID: number, id: number): Messages.CreateIFrameDocument;
@@ -1,234 +0,0 @@
1
- "use strict";
2
- // Auto-generated, do not edit
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.CreateIFrameDocument = exports.MouseClick = exports.CSSInsertRuleURLBased = exports.CustomIssue = exports.TechnicalInfo = exports.SetCSSDataURLBased = exports.SetNodeAttributeURLBased = exports.LongTask = exports.SetPageVisibility = exports.ConnectionInformation = exports.ResourceTiming = 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.RawCustomEvent = exports.JSException = exports.PageRenderTiming = exports.PageLoadTiming = exports.ConsoleLog = 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 = exports.PartitionedMessage = exports.BatchMetadata = void 0;
5
- function BatchMetadata(version, pageNo, firstIndex, timestamp, location) {
6
- return [81 /* BatchMetadata */, version, pageNo, firstIndex, timestamp, location];
7
- }
8
- exports.BatchMetadata = BatchMetadata;
9
- function PartitionedMessage(partNo, partTotal) {
10
- return [82 /* PartitionedMessage */, partNo, partTotal];
11
- }
12
- exports.PartitionedMessage = PartitionedMessage;
13
- function Timestamp(timestamp) {
14
- return [0 /* Timestamp */, timestamp];
15
- }
16
- exports.Timestamp = Timestamp;
17
- function SetPageLocation(url, referrer, navigationStart) {
18
- return [4 /* SetPageLocation */, url, referrer, navigationStart];
19
- }
20
- exports.SetPageLocation = SetPageLocation;
21
- function SetViewportSize(width, height) {
22
- return [5 /* SetViewportSize */, width, height];
23
- }
24
- exports.SetViewportSize = SetViewportSize;
25
- function SetViewportScroll(x, y) {
26
- return [6 /* SetViewportScroll */, x, y];
27
- }
28
- exports.SetViewportScroll = SetViewportScroll;
29
- function CreateDocument() {
30
- return [7 /* CreateDocument */];
31
- }
32
- exports.CreateDocument = CreateDocument;
33
- function CreateElementNode(id, parentID, index, tag, svg) {
34
- return [8 /* CreateElementNode */, id, parentID, index, tag, svg];
35
- }
36
- exports.CreateElementNode = CreateElementNode;
37
- function CreateTextNode(id, parentID, index) {
38
- return [9 /* CreateTextNode */, id, parentID, index];
39
- }
40
- exports.CreateTextNode = CreateTextNode;
41
- function MoveNode(id, parentID, index) {
42
- return [10 /* MoveNode */, id, parentID, index];
43
- }
44
- exports.MoveNode = MoveNode;
45
- function RemoveNode(id) {
46
- return [11 /* RemoveNode */, id];
47
- }
48
- exports.RemoveNode = RemoveNode;
49
- function SetNodeAttribute(id, name, value) {
50
- return [12 /* SetNodeAttribute */, id, name, value];
51
- }
52
- exports.SetNodeAttribute = SetNodeAttribute;
53
- function RemoveNodeAttribute(id, name) {
54
- return [13 /* RemoveNodeAttribute */, id, name];
55
- }
56
- exports.RemoveNodeAttribute = RemoveNodeAttribute;
57
- function SetNodeData(id, data) {
58
- return [14 /* SetNodeData */, id, data];
59
- }
60
- exports.SetNodeData = SetNodeData;
61
- function SetNodeScroll(id, x, y) {
62
- return [16 /* SetNodeScroll */, id, x, y];
63
- }
64
- exports.SetNodeScroll = SetNodeScroll;
65
- function SetInputTarget(id, label) {
66
- return [17 /* SetInputTarget */, id, label];
67
- }
68
- exports.SetInputTarget = SetInputTarget;
69
- function SetInputValue(id, value, mask) {
70
- return [18 /* SetInputValue */, id, value, mask];
71
- }
72
- exports.SetInputValue = SetInputValue;
73
- function SetInputChecked(id, checked) {
74
- return [19 /* SetInputChecked */, id, checked];
75
- }
76
- exports.SetInputChecked = SetInputChecked;
77
- function MouseMove(x, y) {
78
- return [20 /* MouseMove */, x, y];
79
- }
80
- exports.MouseMove = MouseMove;
81
- function ConsoleLog(level, value) {
82
- return [22 /* ConsoleLog */, level, value];
83
- }
84
- exports.ConsoleLog = ConsoleLog;
85
- function PageLoadTiming(requestStart, responseStart, responseEnd, domContentLoadedEventStart, domContentLoadedEventEnd, loadEventStart, loadEventEnd, firstPaint, firstContentfulPaint) {
86
- return [
87
- 23 /* PageLoadTiming */,
88
- requestStart,
89
- responseStart,
90
- responseEnd,
91
- domContentLoadedEventStart,
92
- domContentLoadedEventEnd,
93
- loadEventStart,
94
- loadEventEnd,
95
- firstPaint,
96
- firstContentfulPaint,
97
- ];
98
- }
99
- exports.PageLoadTiming = PageLoadTiming;
100
- function PageRenderTiming(speedIndex, visuallyComplete, timeToInteractive) {
101
- return [24 /* PageRenderTiming */, speedIndex, visuallyComplete, timeToInteractive];
102
- }
103
- exports.PageRenderTiming = PageRenderTiming;
104
- function JSException(name, message, payload, metadata) {
105
- return [78 /* JSException */, name, message, payload, metadata];
106
- }
107
- exports.JSException = JSException;
108
- function RawCustomEvent(name, payload) {
109
- return [27 /* RawCustomEvent */, name, payload];
110
- }
111
- exports.RawCustomEvent = RawCustomEvent;
112
- function UserID(id) {
113
- return [28 /* UserID */, id];
114
- }
115
- exports.UserID = UserID;
116
- function UserAnonymousID(id) {
117
- return [29 /* UserAnonymousID */, id];
118
- }
119
- exports.UserAnonymousID = UserAnonymousID;
120
- function Metadata(key, value) {
121
- return [30 /* Metadata */, key, value];
122
- }
123
- exports.Metadata = Metadata;
124
- function CSSInsertRule(id, rule, index) {
125
- return [37 /* CSSInsertRule */, id, rule, index];
126
- }
127
- exports.CSSInsertRule = CSSInsertRule;
128
- function CSSDeleteRule(id, index) {
129
- return [38 /* CSSDeleteRule */, id, index];
130
- }
131
- exports.CSSDeleteRule = CSSDeleteRule;
132
- function Fetch(method, url, request, response, status, timestamp, duration) {
133
- return [39 /* Fetch */, method, url, request, response, status, timestamp, duration];
134
- }
135
- exports.Fetch = Fetch;
136
- function Profiler(name, duration, args, result) {
137
- return [40 /* Profiler */, name, duration, args, result];
138
- }
139
- exports.Profiler = Profiler;
140
- function OTable(key, value) {
141
- return [41 /* OTable */, key, value];
142
- }
143
- exports.OTable = OTable;
144
- function StateAction(type) {
145
- return [42 /* StateAction */, type];
146
- }
147
- exports.StateAction = StateAction;
148
- function Redux(action, state, duration) {
149
- return [44 /* Redux */, action, state, duration];
150
- }
151
- exports.Redux = Redux;
152
- function Vuex(mutation, state) {
153
- return [45 /* Vuex */, mutation, state];
154
- }
155
- exports.Vuex = Vuex;
156
- function MobX(type, payload) {
157
- return [46 /* MobX */, type, payload];
158
- }
159
- exports.MobX = MobX;
160
- function NgRx(action, state, duration) {
161
- return [47 /* NgRx */, action, state, duration];
162
- }
163
- exports.NgRx = NgRx;
164
- function GraphQL(operationKind, operationName, variables, response) {
165
- return [48 /* GraphQL */, operationKind, operationName, variables, response];
166
- }
167
- exports.GraphQL = GraphQL;
168
- function PerformanceTrack(frames, ticks, totalJSHeapSize, usedJSHeapSize) {
169
- return [49 /* PerformanceTrack */, frames, ticks, totalJSHeapSize, usedJSHeapSize];
170
- }
171
- exports.PerformanceTrack = PerformanceTrack;
172
- function ResourceTiming(timestamp, duration, ttfb, headerSize, encodedBodySize, decodedBodySize, url, initiator) {
173
- return [
174
- 53 /* ResourceTiming */,
175
- timestamp,
176
- duration,
177
- ttfb,
178
- headerSize,
179
- encodedBodySize,
180
- decodedBodySize,
181
- url,
182
- initiator,
183
- ];
184
- }
185
- exports.ResourceTiming = ResourceTiming;
186
- function ConnectionInformation(downlink, type) {
187
- return [54 /* ConnectionInformation */, downlink, type];
188
- }
189
- exports.ConnectionInformation = ConnectionInformation;
190
- function SetPageVisibility(hidden) {
191
- return [55 /* SetPageVisibility */, hidden];
192
- }
193
- exports.SetPageVisibility = SetPageVisibility;
194
- function LongTask(timestamp, duration, context, containerType, containerSrc, containerId, containerName) {
195
- return [
196
- 59 /* LongTask */,
197
- timestamp,
198
- duration,
199
- context,
200
- containerType,
201
- containerSrc,
202
- containerId,
203
- containerName,
204
- ];
205
- }
206
- exports.LongTask = LongTask;
207
- function SetNodeAttributeURLBased(id, name, value, baseURL) {
208
- return [60 /* SetNodeAttributeURLBased */, id, name, value, baseURL];
209
- }
210
- exports.SetNodeAttributeURLBased = SetNodeAttributeURLBased;
211
- function SetCSSDataURLBased(id, data, baseURL) {
212
- return [61 /* SetCSSDataURLBased */, id, data, baseURL];
213
- }
214
- exports.SetCSSDataURLBased = SetCSSDataURLBased;
215
- function TechnicalInfo(type, value) {
216
- return [63 /* TechnicalInfo */, type, value];
217
- }
218
- exports.TechnicalInfo = TechnicalInfo;
219
- function CustomIssue(name, payload) {
220
- return [64 /* CustomIssue */, name, payload];
221
- }
222
- exports.CustomIssue = CustomIssue;
223
- function CSSInsertRuleURLBased(id, rule, index, baseURL) {
224
- return [67 /* CSSInsertRuleURLBased */, id, rule, index, baseURL];
225
- }
226
- exports.CSSInsertRuleURLBased = CSSInsertRuleURLBased;
227
- function MouseClick(id, hesitationTime, label, selector) {
228
- return [69 /* MouseClick */, id, hesitationTime, label, selector];
229
- }
230
- exports.MouseClick = MouseClick;
231
- function CreateIFrameDocument(frameID, id) {
232
- return [70 /* CreateIFrameDocument */, frameID, id];
233
- }
234
- exports.CreateIFrameDocument = CreateIFrameDocument;
@@ -1,52 +0,0 @@
1
- import * as Messages from '../common/messages.gen.js';
2
- export { default } from '../common/messages.gen.js';
3
- export declare function BatchMetadata(version: number, pageNo: number, firstIndex: number, timestamp: number, location: string): Messages.BatchMetadata;
4
- export declare function PartitionedMessage(partNo: number, partTotal: number): Messages.PartitionedMessage;
5
- export declare function Timestamp(timestamp: number): Messages.Timestamp;
6
- export declare function SetPageLocation(url: string, referrer: string, navigationStart: number): Messages.SetPageLocation;
7
- export declare function SetViewportSize(width: number, height: number): Messages.SetViewportSize;
8
- export declare function SetViewportScroll(x: number, y: number): Messages.SetViewportScroll;
9
- export declare function CreateDocument(): Messages.CreateDocument;
10
- export declare function CreateElementNode(id: number, parentID: number, index: number, tag: string, svg: boolean): Messages.CreateElementNode;
11
- export declare function CreateTextNode(id: number, parentID: number, index: number): Messages.CreateTextNode;
12
- export declare function MoveNode(id: number, parentID: number, index: number): Messages.MoveNode;
13
- export declare function RemoveNode(id: number): Messages.RemoveNode;
14
- export declare function SetNodeAttribute(id: number, name: string, value: string): Messages.SetNodeAttribute;
15
- export declare function RemoveNodeAttribute(id: number, name: string): Messages.RemoveNodeAttribute;
16
- export declare function SetNodeData(id: number, data: string): Messages.SetNodeData;
17
- export declare function SetNodeScroll(id: number, x: number, y: number): Messages.SetNodeScroll;
18
- export declare function SetInputTarget(id: number, label: string): Messages.SetInputTarget;
19
- export declare function SetInputValue(id: number, value: string, mask: number): Messages.SetInputValue;
20
- export declare function SetInputChecked(id: number, checked: boolean): Messages.SetInputChecked;
21
- export declare function MouseMove(x: number, y: number): Messages.MouseMove;
22
- export declare function ConsoleLog(level: string, value: string): Messages.ConsoleLog;
23
- export declare function PageLoadTiming(requestStart: number, responseStart: number, responseEnd: number, domContentLoadedEventStart: number, domContentLoadedEventEnd: number, loadEventStart: number, loadEventEnd: number, firstPaint: number, firstContentfulPaint: number): Messages.PageLoadTiming;
24
- export declare function PageRenderTiming(speedIndex: number, visuallyComplete: number, timeToInteractive: number): Messages.PageRenderTiming;
25
- export declare function JSException(name: string, message: string, payload: string, metadata: string): Messages.JSException;
26
- export declare function RawCustomEvent(name: string, payload: string): Messages.RawCustomEvent;
27
- export declare function UserID(id: string): Messages.UserID;
28
- export declare function UserAnonymousID(id: string): Messages.UserAnonymousID;
29
- export declare function Metadata(key: string, value: string): Messages.Metadata;
30
- export declare function CSSInsertRule(id: number, rule: string, index: number): Messages.CSSInsertRule;
31
- export declare function CSSDeleteRule(id: number, index: number): Messages.CSSDeleteRule;
32
- export declare function Fetch(method: string, url: string, request: string, response: string, status: number, timestamp: number, duration: number): Messages.Fetch;
33
- export declare function Profiler(name: string, duration: number, args: string, result: string): Messages.Profiler;
34
- export declare function OTable(key: string, value: string): Messages.OTable;
35
- export declare function StateAction(type: string): Messages.StateAction;
36
- export declare function Redux(action: string, state: string, duration: number): Messages.Redux;
37
- export declare function Vuex(mutation: string, state: string): Messages.Vuex;
38
- export declare function MobX(type: string, payload: string): Messages.MobX;
39
- export declare function NgRx(action: string, state: string, duration: number): Messages.NgRx;
40
- export declare function GraphQL(operationKind: string, operationName: string, variables: string, response: string): Messages.GraphQL;
41
- export declare function PerformanceTrack(frames: number, ticks: number, totalJSHeapSize: number, usedJSHeapSize: number): Messages.PerformanceTrack;
42
- export declare function ResourceTiming(timestamp: number, duration: number, ttfb: number, headerSize: number, encodedBodySize: number, decodedBodySize: number, url: string, initiator: string): Messages.ResourceTiming;
43
- export declare function ConnectionInformation(downlink: number, type: string): Messages.ConnectionInformation;
44
- export declare function SetPageVisibility(hidden: boolean): Messages.SetPageVisibility;
45
- export declare function LongTask(timestamp: number, duration: number, context: number, containerType: number, containerSrc: string, containerId: string, containerName: string): Messages.LongTask;
46
- export declare function SetNodeAttributeURLBased(id: number, name: string, value: string, baseURL: string): Messages.SetNodeAttributeURLBased;
47
- export declare function SetCSSDataURLBased(id: number, data: string, baseURL: string): Messages.SetCSSDataURLBased;
48
- export declare function TechnicalInfo(type: string, value: string): Messages.TechnicalInfo;
49
- export declare function CustomIssue(name: string, payload: string): Messages.CustomIssue;
50
- export declare function CSSInsertRuleURLBased(id: number, rule: string, index: number, baseURL: string): Messages.CSSInsertRuleURLBased;
51
- export declare function MouseClick(id: number, hesitationTime: number, label: string, selector: string): Messages.MouseClick;
52
- export declare function CreateIFrameDocument(frameID: number, id: number): Messages.CreateIFrameDocument;