jason-trace-log 0.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 (47) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +50 -0
  3. package/dist/lib/baseTrace.js +405 -0
  4. package/dist/lib/baseTrace.js.map +1 -0
  5. package/dist/lib/constants.js +26 -0
  6. package/dist/lib/constants.js.map +1 -0
  7. package/dist/lib/core/fetch.js +138 -0
  8. package/dist/lib/core/fetch.js.map +1 -0
  9. package/dist/lib/core/fingerprint.js +66 -0
  10. package/dist/lib/core/fingerprint.js.map +1 -0
  11. package/dist/lib/core/interface.js +3 -0
  12. package/dist/lib/core/interface.js.map +1 -0
  13. package/dist/lib/core/request.js +26 -0
  14. package/dist/lib/core/request.js.map +1 -0
  15. package/dist/lib/core/send.js +176 -0
  16. package/dist/lib/core/send.js.map +1 -0
  17. package/dist/lib/core/util.js +186 -0
  18. package/dist/lib/core/util.js.map +1 -0
  19. package/dist/lib/core/webvitals.js +63 -0
  20. package/dist/lib/core/webvitals.js.map +1 -0
  21. package/dist/lib/index.js +19 -0
  22. package/dist/lib/index.js.map +1 -0
  23. package/dist/lib/trace.js +27 -0
  24. package/dist/lib/trace.js.map +1 -0
  25. package/dist/lib/typings/common.js +131 -0
  26. package/dist/lib/typings/common.js.map +1 -0
  27. package/dist/trace-log.esm.js +1391 -0
  28. package/dist/trace-log.esm.js.map +1 -0
  29. package/dist/trace-log.umd.js +1400 -0
  30. package/dist/trace-log.umd.js.map +1 -0
  31. package/dist/trace-sdk.esm.js +1391 -0
  32. package/dist/trace-sdk.esm.js.map +1 -0
  33. package/dist/trace-sdk.umd.js +1401 -0
  34. package/dist/trace-sdk.umd.js.map +1 -0
  35. package/dist/types/baseTrace.d.ts +58 -0
  36. package/dist/types/constants.d.ts +12 -0
  37. package/dist/types/core/fetch.d.ts +21 -0
  38. package/dist/types/core/fingerprint.d.ts +14 -0
  39. package/dist/types/core/interface.d.ts +10 -0
  40. package/dist/types/core/request.d.ts +3 -0
  41. package/dist/types/core/send.d.ts +84 -0
  42. package/dist/types/core/util.d.ts +19 -0
  43. package/dist/types/core/webvitals.d.ts +8 -0
  44. package/dist/types/index.d.ts +4 -0
  45. package/dist/types/trace.d.ts +3 -0
  46. package/dist/types/typings/common.d.ts +84 -0
  47. package/package.json +140 -0
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFingerprintId = void 0;
4
+ // https://www.cnblogs.com/cute/p/13142139.html
5
+ function bin2hex(str) {
6
+ // discuss at: http://phpjs.org/functions/bin2hex/
7
+ // original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
8
+ // bugfixed by: Onno Marsman
9
+ // bugfixed by: Linuxworld
10
+ // improved by: ntoniazzi (http://phpjs.org/functions/bin2hex:361#comment_177616)
11
+ // example 1: bin2hex('Kev');
12
+ // returns 1: '4b6576'
13
+ // example 2: bin2hex(String.fromCharCode(0x00));
14
+ // returns 2: '00'
15
+ // https://gist.github.com/cythrawll/8603752
16
+ // let i = 0
17
+ var o = '';
18
+ // let l: number
19
+ var n = null;
20
+ str += '';
21
+ for (var i = 0, l = str.length; i < l; i++) {
22
+ n = str.charCodeAt(i).toString(16);
23
+ o += n.length < 2 ? '0' + n : n;
24
+ }
25
+ return o;
26
+ }
27
+ var DEFAULT_FINGPRINT_OPTIONS = {
28
+ font: "14px 'Arial'",
29
+ reactStyle: "#f60",
30
+ contentStyle: "#f60",
31
+ textBaseline: "top"
32
+ };
33
+ /**
34
+ * 生成唯一ID(非用户ID)
35
+ * 通过HTML5 Canvas API创建一个接近不重复的唯一指纹ID
36
+ * @param content
37
+ * @returns
38
+ */
39
+ var getFingerprintId = function (content, options) {
40
+ if (!content) {
41
+ console.error("content is empty");
42
+ return null;
43
+ }
44
+ var canvas = document.createElement('canvas');
45
+ var ctx = canvas.getContext("2d");
46
+ // 如果不存在,则返回空值,说明不支持Canvas指纹
47
+ if (!ctx)
48
+ return null;
49
+ var txt = content || 'geekbang';
50
+ ctx.textBaseline = options && options.textBaseline ? options.textBaseline : "top";
51
+ ctx.font = options && options.font ? options.font : "14px 'Arial'";
52
+ ctx.fillStyle = options && options.reactStyle ? options.reactStyle : "#f60";
53
+ // 先画一个62x20矩形内容
54
+ ctx.fillRect(125, 1, 62, 20);
55
+ ctx.fillStyle = options && options.contentStyle ? options.contentStyle : "#069";
56
+ // 把字填充到矩形内
57
+ ctx.fillText(txt, 2, 15);
58
+ // ctx.fillStyle = "rgba(102, 204, 0, 0.7)";
59
+ // ctx.fillText(txt, 4, 17);
60
+ var b64 = canvas.toDataURL().replace("data:image/png;base64,", "");
61
+ var bin = atob(b64);
62
+ var crc = bin2hex(bin.slice(-16, -12));
63
+ return crc;
64
+ };
65
+ exports.getFingerprintId = getFingerprintId;
66
+ //# sourceMappingURL=fingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../../src/core/fingerprint.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,SAAS,OAAO,CAAC,GAAW;IAC1B,kDAAkD;IAClD,mEAAmE;IACnE,4BAA4B;IAC5B,0BAA0B;IAC1B,iFAAiF;IACjF,6BAA6B;IAC7B,sBAAsB;IACtB,iDAAiD;IACjD,kBAAkB;IAElB,4CAA4C;IAE5C,YAAY;IACZ,IAAI,CAAC,GAAG,EAAE,CAAA;IACV,gBAAgB;IAChB,IAAI,CAAC,GAAG,IAAI,CAAA;IACZ,GAAG,IAAI,EAAE,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AASD,IAAM,yBAAyB,GAAuB;IACpD,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,MAAM;IAClB,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,KAAK;CACpB,CAAA;AAED;;;;;GAKG;AACI,IAAM,gBAAgB,GAAG,UAAC,OAAe,EAAE,OAA4B;IAC5E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,4BAA4B;IAC5B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,IAAM,GAAG,GAAG,OAAO,IAAI,UAAU,CAAC;IAClC,GAAG,CAAC,YAAY,GAAG,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;IAClF,GAAG,CAAC,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;IAEnE,GAAG,CAAC,SAAS,GAAG,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,gBAAgB;IAChB,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAE7B,GAAG,CAAC,SAAS,GAAG,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;IAChF,WAAW;IACX,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACzB,4CAA4C;IAC5C,4BAA4B;IAE5B,IAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,wBAAwB,EAAC,EAAE,CAAC,CAAC;IACpE,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,OAAO,GAAG,CAAC;AACb,CAAC,CAAA;AA5BY,QAAA,gBAAgB,oBA4B5B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/core/interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.xhr = exports.fetch = exports.sendBeacon = void 0;
4
+ var sendBeacon = function (dsn, body) {
5
+ if (typeof navigator === 'undefined')
6
+ return;
7
+ navigator.sendBeacon && navigator.sendBeacon(dsn, body);
8
+ };
9
+ exports.sendBeacon = sendBeacon;
10
+ var fetch = function (dsn, body) {
11
+ // @ts-ignore
12
+ (0, exports.fetch)(dsn, {
13
+ body: body,
14
+ method: 'POST',
15
+ keepalive: true
16
+ });
17
+ };
18
+ exports.fetch = fetch;
19
+ var xhr = function (dsn, body) {
20
+ var client = new XMLHttpRequest();
21
+ client.open('POST', dsn, false); // third parameter indicates sync xhr
22
+ client.setRequestHeader('Content-Type', 'text/plain;charset=UTF-8');
23
+ client.send(body);
24
+ };
25
+ exports.xhr = xhr;
26
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/core/request.ts"],"names":[],"mappings":";;;AACO,IAAM,UAAU,GAAG,UAAC,GAAW,EAAE,IAAY;IAClD,IAAI,OAAO,SAAS,KAAK,WAAW;QAAE,OAAM;IAC5C,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACzD,CAAC,CAAA;AAHY,QAAA,UAAU,cAGtB;AAEM,IAAM,KAAK,GAAG,UAAC,GAAW,EAAE,IAAY;IAC7C,aAAa;IACb,IAAA,aAAK,EAAC,GAAG,EAAE;QACT,IAAI,MAAA;QACJ,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC,CAAA;AAPY,QAAA,KAAK,SAOjB;AAGM,IAAM,GAAG,GAAG,UAAC,GAAW,EAAE,IAAY;IAC3C,IAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAA;IACnC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,qCAAqC;IACrE,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAA;IACnE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnB,CAAC,CAAA;AALY,QAAA,GAAG,OAKf"}
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDeviceClient = getDeviceClient;
4
+ exports.convertTraceDataToLTS = convertTraceDataToLTS;
5
+ exports.sendByLTS = sendByLTS;
6
+ exports.sendBeacon = sendBeacon;
7
+ exports.sendByImg = sendByImg;
8
+ exports.sendByXHR = sendByXHR;
9
+ exports.send = send;
10
+ var util_1 = require("./util");
11
+ var common_1 = require("../typings/common");
12
+ // @ts-ignore
13
+ var lts_web_sdk_1 = require("lts-web-sdk");
14
+ var ltsInstance = null;
15
+ function getDeviceClient() {
16
+ var _a, _b, _c;
17
+ if (typeof navigator === 'undefined') {
18
+ return {};
19
+ }
20
+ return {
21
+ name: navigator.userAgent,
22
+ version: navigator.appVersion,
23
+ language: navigator.language,
24
+ platform: navigator.platform,
25
+ screen: {
26
+ width: ((_a = window.screen) === null || _a === void 0 ? void 0 : _a.width) || 0,
27
+ height: ((_b = window.screen) === null || _b === void 0 ? void 0 : _b.height) || 0,
28
+ colorDepth: ((_c = window.screen) === null || _c === void 0 ? void 0 : _c.colorDepth) || 0
29
+ },
30
+ viewport: {
31
+ width: window.innerWidth || 0,
32
+ height: window.innerHeight || 0
33
+ }
34
+ };
35
+ }
36
+ function convertTraceDataToLTS(traceData) {
37
+ var data = traceData.data;
38
+ var hasStack = data && 'stack' in data && data.stack;
39
+ var exception = hasStack
40
+ ? {
41
+ values: [
42
+ {
43
+ value: data.message || data.name || 'Unknown error',
44
+ stacktrace: {
45
+ frames: data.stack.split('\n').map(function (line) {
46
+ var _a, _b, _c, _d;
47
+ return ({
48
+ filename: ((_a = line.match(/\((.+):\d+:\d+\)/)) === null || _a === void 0 ? void 0 : _a.pop()) || 'unknown',
49
+ lineno: parseInt(((_b = line.match(/:(\d+):/)) === null || _b === void 0 ? void 0 : _b.pop()) || '0'),
50
+ colno: parseInt(((_c = line.match(/:\d+:(\d+)\)/)) === null || _c === void 0 ? void 0 : _c.pop()) || '0'),
51
+ function: ((_d = line.match(/at\s+(.+)\s+\(/)) === null || _d === void 0 ? void 0 : _d.pop()) || 'unknown'
52
+ });
53
+ })
54
+ }
55
+ }
56
+ ]
57
+ }
58
+ : undefined;
59
+ var tags = {};
60
+ if (traceData.fpId)
61
+ tags.fpId = traceData.fpId;
62
+ if (traceData.pid)
63
+ tags.pid = traceData.pid;
64
+ if (traceData.appId)
65
+ tags.appId = traceData.appId;
66
+ if (traceData.uid)
67
+ tags.uid = String(traceData.uid);
68
+ if (data && 'tag' in data && data.tag) {
69
+ tags.tag = data.tag;
70
+ }
71
+ var hasUrl = data && 'url' in data && data.url;
72
+ var request = hasUrl
73
+ ? {
74
+ url: data.url || '',
75
+ method: 'method' in data && data.method ? data.method : 'GET',
76
+ headers: {},
77
+ data: 'body' in data && data.body ? data.body : undefined
78
+ }
79
+ : undefined;
80
+ return {
81
+ client: getDeviceClient(),
82
+ environment: traceData.bt || 'unknown',
83
+ tags: tags,
84
+ level: traceData.level || 'info',
85
+ exception: exception,
86
+ transaction: traceData.traceId,
87
+ extra: {
88
+ type: traceData.type,
89
+ url: traceData.url,
90
+ ua: traceData.ua,
91
+ createdAt: traceData.createdAt,
92
+ updatedAt: traceData.updatedAt,
93
+ breadcrumbs: traceData.breadcrumbs,
94
+ perf: traceData.perf
95
+ },
96
+ request: request
97
+ };
98
+ }
99
+ function sendByLTS(ltsConfig, data) {
100
+ try {
101
+ if (!ltsInstance) {
102
+ ltsInstance = new lts_web_sdk_1.default({
103
+ region: ltsConfig.region,
104
+ projectId: ltsConfig.projectId,
105
+ groupId: ltsConfig.groupId,
106
+ streamId: ltsConfig.streamId,
107
+ debug: ltsConfig.debug || false
108
+ });
109
+ }
110
+ var ltsData = convertTraceDataToLTS(data);
111
+ ltsInstance.reportImmediately(ltsData);
112
+ }
113
+ catch (error) {
114
+ console.error('Failed to send data to LTS:', error);
115
+ }
116
+ }
117
+ // 使用sendBeacon发送数据
118
+ function sendBeacon(url, data) {
119
+ if (typeof navigator === 'undefined')
120
+ return;
121
+ navigator.sendBeacon && navigator.sendBeacon(url, JSON.stringify(data));
122
+ }
123
+ // 使用img发送数据
124
+ function sendByImg(url, data) {
125
+ var spliceStr = url.indexOf('?') === -1 ? '?' : '&';
126
+ var imageUrl = "".concat(url).concat(spliceStr, "data=").concat(encodeURIComponent((0, util_1.safeStringify)(data)));
127
+ var img = new Image();
128
+ img.src = imageUrl;
129
+ img.onload = function () {
130
+ console.log('Tracking data sent successfully!');
131
+ img = null;
132
+ };
133
+ img.onerror = function (err) {
134
+ console.error('Failed to send tracking data.', err);
135
+ img = null;
136
+ };
137
+ }
138
+ // 使用XMLHttpRequest发送数据
139
+ function sendByXHR(url, data) {
140
+ var xhr = new XMLHttpRequest();
141
+ xhr.open('get', url);
142
+ xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
143
+ xhr.withCredentials = true;
144
+ xhr.send((0, util_1.safeStringify)(data));
145
+ }
146
+ // 统一的发送接口
147
+ function send(method, url, ltsConfig, data) {
148
+ switch (method) {
149
+ case common_1.SendMethod.BEACON:
150
+ if (url) {
151
+ sendBeacon(url, data);
152
+ }
153
+ else {
154
+ console.warn('dsn is required for beacon method');
155
+ }
156
+ break;
157
+ case common_1.SendMethod.LTS:
158
+ if (ltsConfig) {
159
+ sendByLTS(ltsConfig, data);
160
+ }
161
+ else {
162
+ console.warn('ltsConfig is required for lts method');
163
+ }
164
+ break;
165
+ case common_1.SendMethod.IMG:
166
+ default:
167
+ if (url) {
168
+ sendByImg(url, data);
169
+ }
170
+ else {
171
+ console.warn('dsn is required for img method');
172
+ }
173
+ break;
174
+ }
175
+ }
176
+ //# sourceMappingURL=send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/core/send.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isResourceTarget = exports.getFetchStatusLevel = exports.getTimestamp = void 0;
4
+ exports.hashCode = hashCode;
5
+ exports.dataTypes2BreadcrumbsType = dataTypes2BreadcrumbsType;
6
+ exports.dataCategory2BreadcrumbsCategory = dataCategory2BreadcrumbsCategory;
7
+ exports.getTraceDataLevel = getTraceDataLevel;
8
+ exports.getTraceDataType = getTraceDataType;
9
+ exports.getPerfLevel = getPerfLevel;
10
+ exports.uuid = uuid;
11
+ exports.safeStringify = safeStringify;
12
+ var common_1 = require("../typings/common");
13
+ // 获取时间
14
+ var getTimestamp = function () { return Date.now(); };
15
+ exports.getTimestamp = getTimestamp;
16
+ var getFetchStatusLevel = function (status) {
17
+ if (status >= 500) {
18
+ return common_1.TraceDataSeverity.Critical;
19
+ }
20
+ else if (status >= 400) {
21
+ return common_1.TraceDataSeverity.Error;
22
+ }
23
+ else if (status >= 300) {
24
+ return common_1.TraceDataSeverity.Warning;
25
+ }
26
+ else if (status >= 200) {
27
+ return common_1.TraceDataSeverity.Info;
28
+ }
29
+ else {
30
+ return common_1.TraceDataSeverity.Else;
31
+ }
32
+ };
33
+ exports.getFetchStatusLevel = getFetchStatusLevel;
34
+ var isResourceTarget = function (target) {
35
+ return target instanceof HTMLScriptElement ||
36
+ target instanceof HTMLLinkElement ||
37
+ target instanceof HTMLImageElement ||
38
+ target instanceof HTMLVideoElement ||
39
+ target instanceof HTMLAudioElement;
40
+ };
41
+ exports.isResourceTarget = isResourceTarget;
42
+ /**
43
+ * 根据字符串生成hashcode
44
+ *
45
+ * @export
46
+ * @param {string} str
47
+ * @return {*} {number} 可为正数和负数
48
+ */
49
+ function hashCode(str) {
50
+ var hash = 0;
51
+ if (str.length == 0)
52
+ return hash;
53
+ for (var i = 0; i < str.length; i++) {
54
+ var char = str.charCodeAt(i);
55
+ hash = (hash << 5) - hash + char;
56
+ hash = hash & hash;
57
+ }
58
+ return hash;
59
+ }
60
+ function dataTypes2BreadcrumbsType(data) {
61
+ switch (data) {
62
+ case common_1.TraceDataTypes.JAVASCRIPT:
63
+ case common_1.TraceDataTypes.UNKNOWN:
64
+ case common_1.TraceDataTypes.UNKNOWN_FUNCTION:
65
+ case common_1.TraceDataTypes.REACT:
66
+ case common_1.TraceDataTypes.VUE:
67
+ return common_1.BreadcrumbTypes.CODE_ERROR;
68
+ case common_1.TraceDataTypes.PROMISE:
69
+ return common_1.BreadcrumbTypes.UNHANDLEDREJECTION;
70
+ case common_1.TraceDataTypes.HTTP:
71
+ return common_1.BreadcrumbTypes.FETCH;
72
+ case common_1.TraceDataTypes.PERF:
73
+ case common_1.TraceDataTypes.LOG:
74
+ return common_1.BreadcrumbTypes.CONSOLE;
75
+ case common_1.TraceDataTypes.RESOURCE:
76
+ return common_1.BreadcrumbTypes.RESOURCE;
77
+ case common_1.TraceDataTypes.ROUTE:
78
+ return common_1.BreadcrumbTypes.ROUTE;
79
+ default:
80
+ return common_1.BreadcrumbTypes.CUSTOMER;
81
+ }
82
+ }
83
+ function dataCategory2BreadcrumbsCategory(data) {
84
+ switch (data) {
85
+ case common_1.TraceDataTypes.JAVASCRIPT:
86
+ case common_1.TraceDataTypes.UNKNOWN:
87
+ case common_1.TraceDataTypes.UNKNOWN_FUNCTION:
88
+ return common_1.BreadcrumbsCategorys.Exception;
89
+ case common_1.TraceDataTypes.REACT:
90
+ case common_1.TraceDataTypes.VUE:
91
+ return common_1.BreadcrumbsCategorys.Lifecycle;
92
+ case common_1.TraceDataTypes.PROMISE:
93
+ return common_1.BreadcrumbsCategorys.Exception;
94
+ case common_1.TraceDataTypes.HTTP:
95
+ return common_1.BreadcrumbsCategorys.Http;
96
+ case common_1.TraceDataTypes.PERF:
97
+ case common_1.TraceDataTypes.LOG:
98
+ return common_1.BreadcrumbsCategorys.Debug;
99
+ case common_1.TraceDataTypes.RESOURCE:
100
+ return common_1.BreadcrumbsCategorys.Http;
101
+ case common_1.TraceDataTypes.ROUTE:
102
+ return common_1.BreadcrumbsCategorys.Lifecycle;
103
+ }
104
+ }
105
+ function getTraceDataLevel(level) {
106
+ switch (level) {
107
+ case common_1.TraceDataSeverity.High:
108
+ case common_1.TraceDataSeverity.Critical:
109
+ case common_1.TraceDataSeverity.Error:
110
+ return common_1.TraceLevelType.Error;
111
+ case common_1.TraceDataSeverity.Warning:
112
+ return common_1.TraceLevelType.Warn;
113
+ case common_1.TraceDataSeverity.Debug:
114
+ case common_1.TraceDataSeverity.Low:
115
+ return common_1.TraceLevelType.Debug;
116
+ default:
117
+ return common_1.TraceLevelType.Info;
118
+ }
119
+ }
120
+ function getTraceDataType(type) {
121
+ switch (type) {
122
+ case common_1.TraceDataTypes.PROMISE:
123
+ case common_1.TraceDataTypes.UNKNOWN:
124
+ case common_1.TraceDataTypes.UNKNOWN_FUNCTION:
125
+ case common_1.TraceDataTypes.JAVASCRIPT:
126
+ return common_1.TraceTypes.CODE_ERROR;
127
+ case common_1.TraceDataTypes.REACT:
128
+ case common_1.TraceDataTypes.VUE:
129
+ case common_1.TraceDataTypes.ROUTE:
130
+ return common_1.TraceTypes.EVENT;
131
+ case common_1.TraceDataTypes.PERF:
132
+ return common_1.TraceTypes.PERF;
133
+ case common_1.TraceDataTypes.HTTP:
134
+ return common_1.TraceTypes.FETCH;
135
+ case common_1.TraceDataTypes.RESOURCE:
136
+ return common_1.TraceTypes.RESOURCE;
137
+ default:
138
+ return common_1.TraceTypes.CUSTOMER;
139
+ }
140
+ }
141
+ function getPerfLevel(data) {
142
+ var level = common_1.TraceLevelType.Info;
143
+ if (data.LCPRating === 'poor'
144
+ || data.FIDRating === 'poor'
145
+ || data.FCPRating === 'poor'
146
+ || data.TTFBRating === 'poor'
147
+ || data.CLSRating === 'poor'
148
+ || data.INPRating === 'poor') {
149
+ // console.log('[getPerfLevel] error')
150
+ level = common_1.TraceLevelType.Error;
151
+ return;
152
+ }
153
+ if (data.LCPRating === 'needs improvement'
154
+ || data.CLSRating === 'needs improvement'
155
+ || data.FCPRating === 'needs improvement'
156
+ || data.FIDRating === 'needs improvement'
157
+ || data.INPRating === 'needs improvement'
158
+ || data.TTFBRating === 'needs improvement') {
159
+ // console.log('[getPerfLevel] warn')
160
+ level = common_1.TraceLevelType.Warn;
161
+ return;
162
+ }
163
+ return level;
164
+ }
165
+ function uuid() {
166
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
167
+ /* tslint:disable */
168
+ var r = (Math.random() * 16) | 0;
169
+ /* tslint:disable */
170
+ var v = c === 'x' ? r : (r & 0x3) | 0x8;
171
+ return v.toString(16);
172
+ });
173
+ }
174
+ function safeStringify(obj) {
175
+ var set = new Set();
176
+ var str = JSON.stringify(obj, function (_key, value) {
177
+ if (set.has(value)) {
178
+ return '';
179
+ }
180
+ typeof value === 'object' && set.add(value);
181
+ return value;
182
+ });
183
+ set.clear();
184
+ return str;
185
+ }
186
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/core/util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.onVitals = void 0;
4
+ exports.generateUniqueId = generateUniqueId;
5
+ exports.mapMetric = mapMetric;
6
+ var web_vitals_1 = require("web-vitals");
7
+ var web_vitals_reporter_1 = require("web-vitals-reporter");
8
+ var SCORE_RANGE_LCP = [2500, 4500];
9
+ var SCORE_RANGE_FID = [100, 300];
10
+ var SCORE_RANGE_CLS = [0.1, 0.25];
11
+ var SCORE_RANGE_FCP = [1.8, 3];
12
+ var SCORE_RANGE_INP = [200, 500];
13
+ var SCORE_RANGE_TTFB = [800, 1800];
14
+ var score = function (value, range) {
15
+ return value < range[0] ? 'good' : value < range[1] ? 'needs improvement' : 'poor';
16
+ };
17
+ function generateUniqueId() {
18
+ return "v1-".concat(Date.now(), "-").concat(Math.floor(Math.random() * (9e12 - 1)) + 1e12);
19
+ }
20
+ function round(val, precision) {
21
+ if (precision === void 0) { precision = 0; }
22
+ // @ts-ignore
23
+ return +(Math.round("".concat(val, "e+").concat(precision)) + "e-".concat(precision));
24
+ }
25
+ function mapMetric(metric) {
26
+ var _a;
27
+ var isWebVital = ['FCP', 'TTFB', 'LCP', 'CLS', 'FID'].indexOf(metric.name) !== -1;
28
+ return _a = {},
29
+ _a[metric.name] = isWebVital ? round(metric.value, metric.name === 'CLS' ? 4 : 0) : metric.value,
30
+ _a["".concat(metric.name, "Rating")] = metric.rating,
31
+ _a;
32
+ }
33
+ ;
34
+ var sendToAnalytics = (0, web_vitals_reporter_1.createApiReporter)('/analytics', {
35
+ initial: (0, web_vitals_reporter_1.getDeviceInfo)(),
36
+ beforeSend: function (result) {
37
+ console.log('beforeSend');
38
+ var LCP = result.LCP, FID = result.FID, CLS = result.CLS;
39
+ console.info('web-vitals: ', result);
40
+ if (!LCP || !FID || !CLS)
41
+ return; // Core Web Vitals are not supported
42
+ // return extra attributes to merge into the final result
43
+ return {
44
+ LCPScore: score(LCP, SCORE_RANGE_LCP),
45
+ // FIDScore: FID < 100 ? 'good' : FID < 300 ? 'needs improvement' : 'poor',
46
+ FIDScore: score(FID, SCORE_RANGE_FID),
47
+ // CLSScore: CLS < 0.1 ? 'good' : CLS < 0.25 ? 'needs improvement' : 'poor'
48
+ CLSScore: score(CLS, SCORE_RANGE_CLS),
49
+ };
50
+ },
51
+ });
52
+ var onVitals = function (saveMetric) {
53
+ console.log('webvitals setup');
54
+ (0, web_vitals_1.onLCP)(saveMetric);
55
+ (0, web_vitals_1.onFID)(saveMetric);
56
+ (0, web_vitals_1.onCLS)(saveMetric);
57
+ // onTTFB(saveMetric)
58
+ // onINP(saveMetric)
59
+ // onFCP(saveMetric)
60
+ };
61
+ exports.onVitals = onVitals;
62
+ exports.default = {};
63
+ //# sourceMappingURL=webvitals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webvitals.js","sourceRoot":"","sources":["../../../src/core/webvitals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SendMethod = exports.init = void 0;
4
+ var trace_1 = require("./trace");
5
+ var common_1 = require("./typings/common");
6
+ Object.defineProperty(exports, "SendMethod", { enumerable: true, get: function () { return common_1.SendMethod; } });
7
+ var instance;
8
+ var init = function (options) {
9
+ if (instance) {
10
+ return instance;
11
+ }
12
+ instance = trace_1.default.init(options);
13
+ console.log('instance: ', instance);
14
+ return instance;
15
+ };
16
+ exports.init = init;
17
+ // @ts-ignore
18
+ window.traceSdkInit = exports.init;
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AACA,iCAA+B;AAC/B,2CAA8C;AAcrC,2FAdA,mBAAU,OAcA;AAZnB,IAAI,QAAa,CAAC;AAEX,IAAM,IAAI,GAAG,UAAC,OAAqB;IAExC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,QAAQ,GAAG,eAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IACnC,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAC;AARW,QAAA,IAAI,QAQf;AAIF,aAAa;AACb,MAAM,CAAC,YAAY,GAAG,YAAI,CAAA"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ var baseTrace_1 = require("./baseTrace");
19
+ var TraceSdk = /** @class */ (function (_super) {
20
+ __extends(TraceSdk, _super);
21
+ function TraceSdk() {
22
+ return _super !== null && _super.apply(this, arguments) || this;
23
+ }
24
+ return TraceSdk;
25
+ }(baseTrace_1.BaseTrace));
26
+ exports.default = TraceSdk;
27
+ //# sourceMappingURL=trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/trace.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAwC;AAExC;IAAsC,4BAAS;IAA/C;;IAEA,CAAC;IAAD,eAAC;AAAD,CAAC,AAFD,CAAsC,qBAAS,GAE9C"}