@hangox/mg-cli 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +119 -39
- package/dist/cli.js.map +1 -1
- package/dist/daemon-runner.js +79 -7
- package/dist/daemon-runner.js.map +1 -1
- package/dist/{index-CM3G8ywC.d.ts → index-DorC5U6y.d.ts} +5 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +77 -4
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.js +76 -4
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -45,6 +45,7 @@ var MessageType = /* @__PURE__ */ ((MessageType2) => {
|
|
|
45
45
|
MessageType2["OPEN_PAGE"] = "open_page";
|
|
46
46
|
MessageType2["NAVIGATE_TO_NODE"] = "navigate_to_node";
|
|
47
47
|
MessageType2["GET_SERVER_STATUS"] = "get_server_status";
|
|
48
|
+
MessageType2["TRACK_ANALYTICS"] = "track_analytics";
|
|
48
49
|
MessageType2["RESPONSE"] = "response";
|
|
49
50
|
MessageType2["ERROR"] = "error";
|
|
50
51
|
return MessageType2;
|
|
@@ -665,8 +666,8 @@ var ConnectionManager = class {
|
|
|
665
666
|
allConnections = /* @__PURE__ */ new Map();
|
|
666
667
|
/** 心跳检查定时器 */
|
|
667
668
|
heartbeatTimer = null;
|
|
668
|
-
constructor(
|
|
669
|
-
this.logger =
|
|
669
|
+
constructor(logger2) {
|
|
670
|
+
this.logger = logger2;
|
|
670
671
|
}
|
|
671
672
|
/**
|
|
672
673
|
* 启动心跳检查
|
|
@@ -893,9 +894,9 @@ var RequestHandler = class {
|
|
|
893
894
|
connectionManager;
|
|
894
895
|
/** 待处理的请求 */
|
|
895
896
|
pendingRequests = /* @__PURE__ */ new Map();
|
|
896
|
-
constructor(connectionManager,
|
|
897
|
+
constructor(connectionManager, logger2) {
|
|
897
898
|
this.connectionManager = connectionManager;
|
|
898
|
-
this.logger =
|
|
899
|
+
this.logger = logger2;
|
|
899
900
|
}
|
|
900
901
|
/**
|
|
901
902
|
* 处理 Consumer 请求
|
|
@@ -1080,6 +1081,60 @@ function isVersionMatch(version1, version2) {
|
|
|
1080
1081
|
return version1 === version2;
|
|
1081
1082
|
}
|
|
1082
1083
|
|
|
1084
|
+
// src/server/analytics.ts
|
|
1085
|
+
import { PostHog } from "posthog-node";
|
|
1086
|
+
var POSTHOG_API_KEY = "phc_cSZZIxZOPhWOlsw92Wz8tmKQ5z8eQYsI3m9aM2Ujia9";
|
|
1087
|
+
var POSTHOG_HOST = "https://us.i.posthog.com";
|
|
1088
|
+
var posthogClient = null;
|
|
1089
|
+
var logger = null;
|
|
1090
|
+
function isTelemetryDisabled() {
|
|
1091
|
+
return process.env.MG_TELEMETRY_DISABLED === "1" || process.env.MG_TELEMETRY_DISABLED === "true" || process.env.DO_NOT_TRACK === "1" || process.env.DO_NOT_TRACK === "true";
|
|
1092
|
+
}
|
|
1093
|
+
function initServerAnalytics(serverLogger) {
|
|
1094
|
+
logger = serverLogger;
|
|
1095
|
+
if (isTelemetryDisabled()) {
|
|
1096
|
+
logger.info("\u9065\u6D4B\u5DF2\u7981\u7528 (MG_TELEMETRY_DISABLED \u6216 DO_NOT_TRACK)");
|
|
1097
|
+
return;
|
|
1098
|
+
}
|
|
1099
|
+
if (!posthogClient) {
|
|
1100
|
+
posthogClient = new PostHog(POSTHOG_API_KEY, {
|
|
1101
|
+
host: POSTHOG_HOST,
|
|
1102
|
+
// Server 端使用批量模式,减少网络请求
|
|
1103
|
+
flushAt: 10,
|
|
1104
|
+
flushInterval: 3e4
|
|
1105
|
+
// 30 秒
|
|
1106
|
+
});
|
|
1107
|
+
logger.info("PostHog Analytics \u5DF2\u521D\u59CB\u5316");
|
|
1108
|
+
}
|
|
1109
|
+
}
|
|
1110
|
+
function trackEvent(eventData) {
|
|
1111
|
+
if (!posthogClient) {
|
|
1112
|
+
return;
|
|
1113
|
+
}
|
|
1114
|
+
try {
|
|
1115
|
+
posthogClient.capture({
|
|
1116
|
+
distinctId: eventData.distinctId,
|
|
1117
|
+
event: eventData.event,
|
|
1118
|
+
properties: eventData.properties
|
|
1119
|
+
});
|
|
1120
|
+
logger?.info(`\u7EDF\u8BA1\u4E8B\u4EF6\u5DF2\u8BB0\u5F55: ${eventData.event}`, eventData.properties);
|
|
1121
|
+
} catch (error) {
|
|
1122
|
+
logger?.error("\u7EDF\u8BA1\u4E8B\u4EF6\u8BB0\u5F55\u5931\u8D25:", error);
|
|
1123
|
+
}
|
|
1124
|
+
}
|
|
1125
|
+
async function shutdownServerAnalytics() {
|
|
1126
|
+
if (posthogClient) {
|
|
1127
|
+
try {
|
|
1128
|
+
logger?.info("\u6B63\u5728\u53D1\u9001\u5269\u4F59\u7EDF\u8BA1\u4E8B\u4EF6...");
|
|
1129
|
+
await posthogClient.shutdown();
|
|
1130
|
+
logger?.info("PostHog Analytics \u5DF2\u5173\u95ED");
|
|
1131
|
+
} catch (error) {
|
|
1132
|
+
logger?.error("\u5173\u95ED PostHog \u5931\u8D25:", error);
|
|
1133
|
+
}
|
|
1134
|
+
posthogClient = null;
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1083
1138
|
// src/server/websocket-server.ts
|
|
1084
1139
|
var MGServer = class {
|
|
1085
1140
|
wss = null;
|
|
@@ -1111,6 +1166,7 @@ var MGServer = class {
|
|
|
1111
1166
|
this.startedAt = /* @__PURE__ */ new Date();
|
|
1112
1167
|
this.logger.info(`Server \u542F\u52A8\u6210\u529F\uFF0C\u76D1\u542C\u7AEF\u53E3: ${port}`);
|
|
1113
1168
|
this.connectionManager.startHeartbeatCheck(HEARTBEAT_INTERVAL);
|
|
1169
|
+
initServerAnalytics(this.logger);
|
|
1114
1170
|
resolve2(port);
|
|
1115
1171
|
});
|
|
1116
1172
|
this.wss.on("error", (error) => {
|
|
@@ -1170,6 +1226,10 @@ var MGServer = class {
|
|
|
1170
1226
|
this.handleRegister(ws, message);
|
|
1171
1227
|
return;
|
|
1172
1228
|
}
|
|
1229
|
+
if (message.type === "track_analytics" /* TRACK_ANALYTICS */) {
|
|
1230
|
+
this.handleTrackAnalytics(message);
|
|
1231
|
+
return;
|
|
1232
|
+
}
|
|
1173
1233
|
const managedWs = ws;
|
|
1174
1234
|
if (!managedWs.connectionId) {
|
|
1175
1235
|
this.logger.warn("\u672A\u6CE8\u518C\u7684\u8FDE\u63A5\u53D1\u9001\u6D88\u606F\uFF0C\u5FFD\u7565");
|
|
@@ -1247,6 +1307,9 @@ var MGServer = class {
|
|
|
1247
1307
|
case "navigate_to_node" /* NAVIGATE_TO_NODE */:
|
|
1248
1308
|
this.handleNavigateToNode(ws, message);
|
|
1249
1309
|
break;
|
|
1310
|
+
case "track_analytics" /* TRACK_ANALYTICS */:
|
|
1311
|
+
this.handleTrackAnalytics(message);
|
|
1312
|
+
break;
|
|
1250
1313
|
case "response" /* RESPONSE */:
|
|
1251
1314
|
case "error" /* ERROR */:
|
|
1252
1315
|
this.requestHandler.handleResponse(message);
|
|
@@ -1392,6 +1455,15 @@ var MGServer = class {
|
|
|
1392
1455
|
}
|
|
1393
1456
|
});
|
|
1394
1457
|
}
|
|
1458
|
+
/**
|
|
1459
|
+
* 处理统计事件
|
|
1460
|
+
*/
|
|
1461
|
+
handleTrackAnalytics(message) {
|
|
1462
|
+
const eventData = message.data;
|
|
1463
|
+
if (eventData) {
|
|
1464
|
+
trackEvent(eventData);
|
|
1465
|
+
}
|
|
1466
|
+
}
|
|
1395
1467
|
/**
|
|
1396
1468
|
* 处理节点导航请求
|
|
1397
1469
|
*/
|
|
@@ -1465,6 +1537,7 @@ var MGServer = class {
|
|
|
1465
1537
|
return;
|
|
1466
1538
|
}
|
|
1467
1539
|
this.logger.info("\u6B63\u5728\u505C\u6B62 Server...");
|
|
1540
|
+
await shutdownServerAnalytics();
|
|
1468
1541
|
this.requestHandler.cleanupAll();
|
|
1469
1542
|
this.connectionManager.closeAll();
|
|
1470
1543
|
return new Promise((resolve2) => {
|