@pluve/logger-sdk 0.0.7 → 0.0.9

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 (100) hide show
  1. package/README.html +681 -0
  2. package/README.md +131 -153
  3. package/dist/cjs/capture/jsError.js +48 -0
  4. package/dist/cjs/capture/promiseError.js +49 -0
  5. package/dist/cjs/capture/resourceError.js +48 -0
  6. package/dist/cjs/capture/wechatError.js +95 -0
  7. package/dist/cjs/compress/compression.js +84 -0
  8. package/dist/cjs/config/index.js +55 -0
  9. package/dist/cjs/core/fingerprint.js +36 -0
  10. package/dist/cjs/core/httpClient.js +96 -0
  11. package/dist/cjs/core/loggerSDK.js +641 -0
  12. package/dist/cjs/core/queueManager.js +249 -0
  13. package/dist/cjs/core/retryManager.js +127 -0
  14. package/dist/cjs/index.js +29 -0
  15. package/dist/cjs/stack/stacktrace.js +48 -0
  16. package/dist/cjs/transport/beaconTransport.js +64 -0
  17. package/dist/cjs/transport/pixelImageTransport.js +100 -0
  18. package/dist/cjs/transport/transport.js +17 -0
  19. package/dist/cjs/transport/transportAdapter.js +56 -0
  20. package/dist/cjs/transport/wechatTransport.js +103 -0
  21. package/dist/cjs/types/api.js +17 -0
  22. package/dist/cjs/types/env.js +17 -0
  23. package/dist/cjs/types/external.d.ts +21 -0
  24. package/dist/cjs/types/logEvent.js +17 -0
  25. package/dist/cjs/types/logEventLevel.js +17 -0
  26. package/dist/cjs/types/sdkOptions.js +17 -0
  27. package/dist/cjs/types/trackOptions.js +17 -0
  28. package/dist/cjs/utils/environment.js +183 -0
  29. package/dist/cjs/utils/session.js +31 -0
  30. package/dist/cjs/utils/tools.js +82 -0
  31. package/dist/cjs/utils/uuid.js +35 -0
  32. package/dist/esm/capture/jsError.js +45 -0
  33. package/dist/esm/capture/promiseError.js +46 -0
  34. package/dist/esm/capture/resourceError.js +24 -0
  35. package/dist/esm/capture/wechatError.js +92 -0
  36. package/dist/esm/compress/compression.js +82 -0
  37. package/dist/esm/config/index.js +28 -0
  38. package/dist/esm/core/fingerprint.js +12 -0
  39. package/dist/esm/core/httpClient.js +95 -0
  40. package/dist/esm/core/loggerSDK.js +650 -0
  41. package/dist/esm/core/queueManager.js +269 -0
  42. package/dist/esm/core/retryManager.js +129 -0
  43. package/dist/esm/index.js +5 -0
  44. package/dist/esm/stack/stacktrace.js +37 -0
  45. package/dist/esm/transport/beaconTransport.js +81 -0
  46. package/dist/esm/transport/pixelImageTransport.js +99 -0
  47. package/dist/esm/transport/transport.js +0 -0
  48. package/dist/esm/transport/transportAdapter.js +32 -0
  49. package/dist/esm/transport/wechatTransport.js +120 -0
  50. package/dist/esm/types/api.js +0 -0
  51. package/dist/esm/types/env.js +0 -0
  52. package/dist/esm/types/external.d.ts +21 -0
  53. package/dist/esm/types/logEvent.js +0 -0
  54. package/dist/esm/types/logEventLevel.js +0 -0
  55. package/dist/esm/types/sdkOptions.js +0 -0
  56. package/dist/esm/types/trackOptions.js +0 -0
  57. package/dist/esm/utils/environment.js +154 -0
  58. package/dist/esm/utils/session.js +7 -0
  59. package/dist/esm/utils/tools.js +76 -0
  60. package/dist/esm/utils/uuid.js +11 -0
  61. package/dist/types/capture/jsError.d.ts +2 -0
  62. package/dist/types/capture/promiseError.d.ts +2 -0
  63. package/dist/types/capture/resourceError.d.ts +2 -0
  64. package/dist/types/capture/wechatError.d.ts +3 -0
  65. package/dist/types/compress/compression.d.ts +10 -0
  66. package/dist/types/config/index.d.ts +9 -0
  67. package/dist/types/core/fingerprint.d.ts +8 -0
  68. package/dist/types/core/httpClient.d.ts +11 -0
  69. package/dist/{loggerSDK.d.ts → types/core/loggerSDK.d.ts} +27 -2
  70. package/dist/{queueManager.d.ts → types/core/queueManager.d.ts} +9 -1
  71. package/dist/{retryManager.d.ts → types/core/retryManager.d.ts} +0 -4
  72. package/dist/types/index.d.ts +1 -0
  73. package/dist/types/stack/stacktrace.d.ts +2 -0
  74. package/dist/types/transport/beaconTransport.d.ts +11 -0
  75. package/dist/types/transport/pixelImageTransport.d.ts +11 -0
  76. package/dist/types/transport/transport.d.ts +14 -0
  77. package/dist/types/transport/transportAdapter.d.ts +10 -0
  78. package/dist/types/transport/wechatTransport.d.ts +11 -0
  79. package/dist/types/types/api.d.ts +12 -0
  80. package/dist/types/types/env.d.ts +14 -0
  81. package/dist/types/types/logEvent.d.ts +57 -0
  82. package/dist/types/types/logEventLevel.d.ts +2 -0
  83. package/dist/{types.d.ts → types/types/sdkOptions.d.ts} +23 -42
  84. package/dist/types/types/trackOptions.d.ts +7 -0
  85. package/dist/types/utils/environment.d.ts +21 -0
  86. package/dist/types/utils/session.d.ts +1 -0
  87. package/dist/types/utils/tools.d.ts +12 -0
  88. package/dist/types/utils/uuid.d.ts +7 -0
  89. package/dist/umd/logger-sdk.min.js +1 -0
  90. package/package.json +29 -5
  91. package/dist/index.d.ts +0 -10
  92. package/dist/index.js +0 -13
  93. package/dist/loggerSDK.js +0 -560
  94. package/dist/queueManager.js +0 -186
  95. package/dist/retryManager.js +0 -224
  96. package/dist/transportAdapter.d.ts +0 -51
  97. package/dist/transportAdapter.js +0 -315
  98. package/dist/types.js +0 -1
  99. package/dist/utils.d.ts +0 -52
  100. package/dist/utils.js +0 -348
@@ -0,0 +1,56 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/transport/transportAdapter.ts
20
+ var transportAdapter_exports = {};
21
+ __export(transportAdapter_exports, {
22
+ TransportAdapter: () => TransportAdapter
23
+ });
24
+ module.exports = __toCommonJS(transportAdapter_exports);
25
+ var import_environment = require("../utils/environment");
26
+ var import_beaconTransport = require("./beaconTransport");
27
+ var import_pixelImageTransport = require("./pixelImageTransport");
28
+ var import_wechatTransport = require("./wechatTransport");
29
+ var TransportAdapter = class {
30
+ constructor(opts) {
31
+ this.beaconTransport = new import_beaconTransport.BeaconTransport(opts);
32
+ this.pixelImageTransport = new import_pixelImageTransport.PixelImageTransport(opts);
33
+ this.wechatTransport = new import_wechatTransport.WechatTransport(opts);
34
+ }
35
+ static getInstance(opts) {
36
+ if (!TransportAdapter.instance) {
37
+ TransportAdapter.instance = new TransportAdapter(opts);
38
+ }
39
+ return TransportAdapter.instance;
40
+ }
41
+ getTransporter() {
42
+ if ((0, import_environment.isWeChatMiniProgram)()) {
43
+ return this.wechatTransport;
44
+ }
45
+ const transports = [this.beaconTransport, this.pixelImageTransport];
46
+ const transporter = transports.find((t) => t.isSupported());
47
+ if (!transporter) {
48
+ return this.pixelImageTransport;
49
+ }
50
+ return transporter;
51
+ }
52
+ };
53
+ // Annotate the CommonJS export names for ESM import in node:
54
+ 0 && (module.exports = {
55
+ TransportAdapter
56
+ });
@@ -0,0 +1,103 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/transport/wechatTransport.ts
20
+ var wechatTransport_exports = {};
21
+ __export(wechatTransport_exports, {
22
+ WechatTransport: () => WechatTransport
23
+ });
24
+ module.exports = __toCommonJS(wechatTransport_exports);
25
+ var import_compression = require("../compress/compression");
26
+ var import_config = require("../config");
27
+ var import_environment = require("../utils/environment");
28
+ var import_tools = require("../utils/tools");
29
+ var WechatTransport = class {
30
+ constructor(opts) {
31
+ /** 传输器名称 */
32
+ this.name = "wechat";
33
+ this.opts = opts;
34
+ }
35
+ // eslint-disable-next-line class-methods-use-this
36
+ isSupported() {
37
+ return (0, import_environment.isWeChatMiniProgram)();
38
+ }
39
+ async send(payload) {
40
+ var _a, _b, _c, _d, _e;
41
+ let body = typeof payload === "string" ? payload : (0, import_tools.safeStringify)(payload);
42
+ const endpoint = (0, import_config.getReportApi)(((_a = this.opts) == null ? void 0 : _a.env) || "develop");
43
+ const timeout = 1e4;
44
+ let contentType = "application/json";
45
+ if (((_b = this.opts) == null ? void 0 : _b.enableGzip) && (!((_c = this.opts) == null ? void 0 : _c.gzipOnlyInBatchMode) || payload.items.length > 0)) {
46
+ const t = (0, import_tools.now)();
47
+ (0, import_tools.logDebug)(!!((_d = this.opts) == null ? void 0 : _d.debug), "WeChat request enable gzip compress: ", t);
48
+ const compressedItems = await (0, import_compression.gzipCompress)((0, import_tools.safeStringify)(payload.items));
49
+ body = (0, import_tools.safeStringify)({
50
+ ...payload,
51
+ items: compressedItems
52
+ });
53
+ (0, import_tools.logDebug)(!!((_e = this.opts) == null ? void 0 : _e.debug), "WeChat request gzip compress cost: ", (0, import_tools.now)() - t);
54
+ contentType = "application/json; charset=utf-8";
55
+ }
56
+ return new Promise((resolve, reject) => {
57
+ var _a2;
58
+ let timeoutId = null;
59
+ let settled = false;
60
+ timeoutId = setTimeout(() => {
61
+ if (!settled) {
62
+ settled = true;
63
+ reject(new Error(`WeChat request timeout after ${timeout}ms`));
64
+ }
65
+ }, timeout);
66
+ wx.request({
67
+ url: endpoint,
68
+ method: "POST",
69
+ data: body,
70
+ header: {
71
+ "Content-Type": contentType,
72
+ token: ((_a2 = this.opts) == null ? void 0 : _a2.token) || ""
73
+ },
74
+ success(res) {
75
+ if (timeoutId)
76
+ clearTimeout(timeoutId);
77
+ if (!settled) {
78
+ settled = true;
79
+ if (res.statusCode >= 200 && res.statusCode < 300) {
80
+ resolve();
81
+ } else {
82
+ reject(new Error(`HTTP ${res.statusCode}`));
83
+ }
84
+ }
85
+ },
86
+ fail(err) {
87
+ var _a3;
88
+ if (timeoutId)
89
+ clearTimeout(timeoutId);
90
+ if (!settled) {
91
+ settled = true;
92
+ (0, import_tools.logDebug)(!!((_a3 = this.opts) == null ? void 0 : _a3.debug), "WeChat request failed", err);
93
+ reject(new Error(`WeChat request failed: ${err.errMsg || "unknown error"}`));
94
+ }
95
+ }
96
+ });
97
+ });
98
+ }
99
+ };
100
+ // Annotate the CommonJS export names for ESM import in node:
101
+ 0 && (module.exports = {
102
+ WechatTransport
103
+ });
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+
15
+ // src/types/api.ts
16
+ var api_exports = {};
17
+ module.exports = __toCommonJS(api_exports);
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+
15
+ // src/types/env.ts
16
+ var env_exports = {};
17
+ module.exports = __toCommonJS(env_exports);
@@ -0,0 +1,21 @@
1
+ declare module 'fflate' {
2
+ export function gzipSync(input: Uint8Array | string): Uint8Array;
3
+ }
4
+
5
+ declare module 'js-base64' {
6
+ export const Base64: {
7
+ encode(input: string | Uint8Array, urlSafe?: boolean): string;
8
+ decode(input: string): string;
9
+ fromUint8Array(input: Uint8Array, urlSafe?: boolean): string;
10
+ toUint8Array(input: string): Uint8Array;
11
+ };
12
+ }
13
+
14
+ declare class CompressionStream {
15
+ constructor(format: 'gzip' | 'deflate');
16
+ readable: ReadableStream<any>;
17
+
18
+ writable: WritableStream<any>;
19
+ }
20
+
21
+ declare let Buffer: any;
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+
15
+ // src/types/logEvent.ts
16
+ var logEvent_exports = {};
17
+ module.exports = __toCommonJS(logEvent_exports);
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+
15
+ // src/types/logEventLevel.ts
16
+ var logEventLevel_exports = {};
17
+ module.exports = __toCommonJS(logEventLevel_exports);
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+
15
+ // src/types/sdkOptions.ts
16
+ var sdkOptions_exports = {};
17
+ module.exports = __toCommonJS(sdkOptions_exports);
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+
15
+ // src/types/trackOptions.ts
16
+ var trackOptions_exports = {};
17
+ module.exports = __toCommonJS(trackOptions_exports);
@@ -0,0 +1,183 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/utils/environment.ts
20
+ var environment_exports = {};
21
+ __export(environment_exports, {
22
+ collectEnvironmentTags: () => collectEnvironmentTags,
23
+ getCurrentUrl: () => getCurrentUrl,
24
+ getEnvironmentInfo: () => getEnvironmentInfo,
25
+ isBrowser: () => isBrowser,
26
+ isWeChatMiniProgram: () => isWeChatMiniProgram,
27
+ parseBrowserInfo: () => parseBrowserInfo
28
+ });
29
+ module.exports = __toCommonJS(environment_exports);
30
+ function isBrowser() {
31
+ try {
32
+ return typeof window !== "undefined" && typeof window.document !== "undefined";
33
+ } catch (e) {
34
+ return false;
35
+ }
36
+ }
37
+ function isWeChatMiniProgram() {
38
+ try {
39
+ return typeof wx !== "undefined" && typeof wx.getSystemInfo === "function";
40
+ } catch (e) {
41
+ return false;
42
+ }
43
+ }
44
+ function getCurrentUrl() {
45
+ if (isWeChatMiniProgram()) {
46
+ try {
47
+ const pages = getCurrentPages();
48
+ if (pages && pages.length > 0) {
49
+ const currentPage = pages[pages.length - 1];
50
+ return currentPage.route || "";
51
+ }
52
+ } catch (e) {
53
+ return "";
54
+ }
55
+ }
56
+ if (isBrowser()) {
57
+ return window.location.href;
58
+ }
59
+ return "";
60
+ }
61
+ function getEnvironmentInfo() {
62
+ const envInfo = {
63
+ platform: "unknown"
64
+ };
65
+ if (isWeChatMiniProgram()) {
66
+ envInfo.platform = "wechat";
67
+ try {
68
+ const systemInfo = wx.getSystemInfoSync();
69
+ envInfo.systemInfo = {
70
+ brand: systemInfo.brand,
71
+ model: systemInfo.model,
72
+ system: systemInfo.system,
73
+ platform: systemInfo.platform,
74
+ version: systemInfo.version,
75
+ SDKVersion: systemInfo.SDKVersion
76
+ };
77
+ envInfo.screenWidth = systemInfo.screenWidth;
78
+ envInfo.screenHeight = systemInfo.screenHeight;
79
+ envInfo.language = systemInfo.language;
80
+ } catch (e) {
81
+ }
82
+ } else if (isBrowser()) {
83
+ envInfo.platform = "browser";
84
+ envInfo.userAgent = navigator.userAgent;
85
+ envInfo.screenWidth = window.screen.width;
86
+ envInfo.screenHeight = window.screen.height;
87
+ envInfo.language = navigator.language;
88
+ }
89
+ return envInfo;
90
+ }
91
+ function parseBrowserInfo(userAgent) {
92
+ const ua = userAgent.toLowerCase();
93
+ let browser = "Unknown";
94
+ let browserVersion = "";
95
+ let os = "Unknown";
96
+ let osVersion = "";
97
+ if (ua.indexOf("chrome") > -1 && ua.indexOf("edge") === -1) {
98
+ browser = "Chrome";
99
+ const match = ua.match(/chrome\/(\d+\.\d+)/);
100
+ browserVersion = match ? match[1] : "";
101
+ } else if (ua.indexOf("safari") > -1 && ua.indexOf("chrome") === -1) {
102
+ browser = "Safari";
103
+ const match = ua.match(/version\/(\d+\.\d+)/);
104
+ browserVersion = match ? match[1] : "";
105
+ } else if (ua.indexOf("firefox") > -1) {
106
+ browser = "Firefox";
107
+ const match = ua.match(/firefox\/(\d+\.\d+)/);
108
+ browserVersion = match ? match[1] : "";
109
+ } else if (ua.indexOf("edge") > -1) {
110
+ browser = "Edge";
111
+ const match = ua.match(/edge\/(\d+\.\d+)/);
112
+ browserVersion = match ? match[1] : "";
113
+ }
114
+ if (ua.indexOf("iphone") > -1 || ua.indexOf("ipad") > -1) {
115
+ os = "iOS";
116
+ const match = ua.match(/os (\d+[._]\d+)/);
117
+ osVersion = match ? match[1].replace("_", ".") : "";
118
+ } else if (ua.indexOf("windows") > -1) {
119
+ os = "Windows";
120
+ if (ua.indexOf("windows nt 10") > -1)
121
+ osVersion = "10";
122
+ else if (ua.indexOf("windows nt 6.3") > -1)
123
+ osVersion = "8.1";
124
+ else if (ua.indexOf("windows nt 6.2") > -1)
125
+ osVersion = "8";
126
+ else if (ua.indexOf("windows nt 6.1") > -1)
127
+ osVersion = "7";
128
+ } else if (ua.indexOf("mac os") > -1) {
129
+ os = "macOS";
130
+ const match = ua.match(/mac os x (\d+[._]\d+)/);
131
+ osVersion = match ? match[1].replace("_", ".") : "";
132
+ } else if (ua.indexOf("android") > -1) {
133
+ os = "Android";
134
+ const match = ua.match(/android (\d+(?:\.\d+)?)/);
135
+ if (match) {
136
+ const [, version] = match;
137
+ osVersion = version;
138
+ if (osVersion.indexOf(".") === -1) {
139
+ osVersion = `${osVersion}.0`;
140
+ }
141
+ } else {
142
+ osVersion = "";
143
+ }
144
+ } else if (ua.indexOf("linux") > -1) {
145
+ os = "Linux";
146
+ }
147
+ return { browser, browserVersion, os, osVersion };
148
+ }
149
+ function collectEnvironmentTags() {
150
+ const envInfo = getEnvironmentInfo();
151
+ const tags = {
152
+ platform: envInfo.platform
153
+ };
154
+ if (envInfo.platform === "browser" && envInfo.userAgent) {
155
+ const browserInfo = parseBrowserInfo(envInfo.userAgent);
156
+ tags.browser = browserInfo.browser;
157
+ tags.browserVersion = browserInfo.browserVersion;
158
+ tags.os = browserInfo.os;
159
+ tags.osVersion = browserInfo.osVersion;
160
+ tags.screenWidth = envInfo.screenWidth;
161
+ tags.screenHeight = envInfo.screenHeight;
162
+ tags.language = envInfo.language;
163
+ } else if (envInfo.platform === "wechat" && envInfo.systemInfo) {
164
+ tags.brand = envInfo.systemInfo.brand;
165
+ tags.model = envInfo.systemInfo.model;
166
+ tags.system = envInfo.systemInfo.system;
167
+ tags.wechatVersion = envInfo.systemInfo.version;
168
+ tags.SDKVersion = envInfo.systemInfo.SDKVersion;
169
+ tags.screenWidth = envInfo.screenWidth;
170
+ tags.screenHeight = envInfo.screenHeight;
171
+ tags.language = envInfo.language;
172
+ }
173
+ return tags;
174
+ }
175
+ // Annotate the CommonJS export names for ESM import in node:
176
+ 0 && (module.exports = {
177
+ collectEnvironmentTags,
178
+ getCurrentUrl,
179
+ getEnvironmentInfo,
180
+ isBrowser,
181
+ isWeChatMiniProgram,
182
+ parseBrowserInfo
183
+ });
@@ -0,0 +1,31 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/utils/session.ts
20
+ var session_exports = {};
21
+ __export(session_exports, {
22
+ getSessionId: () => getSessionId
23
+ });
24
+ module.exports = __toCommonJS(session_exports);
25
+ function getSessionId() {
26
+ return `${Date.now()}_${Math.random().toString(36).substring(2, 15)}`;
27
+ }
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ getSessionId
31
+ });
@@ -0,0 +1,82 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/utils/tools.ts
20
+ var tools_exports = {};
21
+ __export(tools_exports, {
22
+ flattenStack: () => flattenStack,
23
+ hashToProb: () => hashToProb,
24
+ logDebug: () => logDebug,
25
+ normalizeMessage: () => normalizeMessage,
26
+ now: () => now,
27
+ safeStringify: () => safeStringify
28
+ });
29
+ module.exports = __toCommonJS(tools_exports);
30
+ var import_stacktrace = require("../stack/stacktrace");
31
+ var now = () => Date.now();
32
+ function safeStringify(obj) {
33
+ const seen = /* @__PURE__ */ new WeakSet();
34
+ return JSON.stringify(obj, (_k, v) => {
35
+ if (v && typeof v === "object") {
36
+ if (seen.has(v))
37
+ return "[Circular]";
38
+ seen.add(v);
39
+ }
40
+ return v;
41
+ });
42
+ }
43
+ function normalizeMessage(message) {
44
+ return message.replace(/\d+/g, "{n}").replace(/https?:\/\/\S+/g, "{url}").replace(/[a-f0-9]{16,}/gi, "{id}").slice(0, 200);
45
+ }
46
+ function logDebug(debug, ...args) {
47
+ if (debug)
48
+ console.debug("[LoggerSDK]", ...args);
49
+ }
50
+ function hashToProb(s) {
51
+ let h = 2166136261 >>> 0;
52
+ for (let i = 0; i < s.length; i += 1) {
53
+ h ^= s.charCodeAt(i);
54
+ h = h + (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24) >>> 0;
55
+ }
56
+ return h % 1e4 / 1e4;
57
+ }
58
+ async function flattenStack(error) {
59
+ if (!error) {
60
+ return {
61
+ location: "",
62
+ throwable: ""
63
+ };
64
+ }
65
+ const stackFrames = await (0, import_stacktrace.parseStack)(error);
66
+ return stackFrames && stackFrames.length > 0 ? {
67
+ location: [stackFrames[0]].map((frame) => `${frame.file}:${frame.line}:${frame.column}`).join("\n "),
68
+ throwable: stackFrames.map((frame) => `${frame.file}:${frame.line}:${frame.column}`).join("\n ")
69
+ } : {
70
+ location: "",
71
+ throwable: ""
72
+ };
73
+ }
74
+ // Annotate the CommonJS export names for ESM import in node:
75
+ 0 && (module.exports = {
76
+ flattenStack,
77
+ hashToProb,
78
+ logDebug,
79
+ normalizeMessage,
80
+ now,
81
+ safeStringify
82
+ });
@@ -0,0 +1,35 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/utils/uuid.ts
20
+ var uuid_exports = {};
21
+ __export(uuid_exports, {
22
+ uuid: () => uuid
23
+ });
24
+ module.exports = __toCommonJS(uuid_exports);
25
+ function uuid() {
26
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
27
+ const r = Math.floor(Math.random() * 16);
28
+ const v = c === "x" ? r : Math.floor(r % 4 + 8);
29
+ return v.toString(16);
30
+ });
31
+ }
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ uuid
35
+ });
@@ -0,0 +1,45 @@
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+
22
+ // src/capture/jsError.ts
23
+ import { parseStack } from "../stack/stacktrace";
24
+ import { logDebug } from "../utils/tools";
25
+ function registerJsErrorCapture(debug, callback) {
26
+ if (typeof window === "undefined")
27
+ return void 0;
28
+ const handler = (e) => __async(this, null, function* () {
29
+ logDebug(debug, "registerJsErrorCapture error", e);
30
+ if (!e.error)
31
+ return;
32
+ const stack = yield parseStack(e.error);
33
+ callback({
34
+ type: "js",
35
+ message: e.error.message,
36
+ stack,
37
+ throwable: e.error.stack || ""
38
+ });
39
+ });
40
+ window.addEventListener("error", handler);
41
+ return () => window.removeEventListener("error", handler);
42
+ }
43
+ export {
44
+ registerJsErrorCapture
45
+ };