sa2kit 1.6.29 → 1.6.31
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/AliyunOSSProvider-P6TOVKMM.mjs +6 -0
- package/dist/{AliyunOSSProvider-I7I5YGLB.mjs.map → AliyunOSSProvider-P6TOVKMM.mjs.map} +1 -1
- package/dist/AliyunOSSProvider-Z5BRBCG6.js +15 -0
- package/dist/{AliyunOSSProvider-L7JWMKS4.js.map → AliyunOSSProvider-Z5BRBCG6.js.map} +1 -1
- package/dist/ConfigService-3DIC6C3Q.js +21 -0
- package/dist/{ConfigService-7MEZXKJ5.js.map → ConfigService-3DIC6C3Q.js.map} +1 -1
- package/dist/ConfigService-V6ZK273Z.mjs +4 -0
- package/dist/{ConfigService-BV57YYFW.mjs.map → ConfigService-V6ZK273Z.mjs.map} +1 -1
- package/dist/LocalStorageProvider-3RVPCQB3.mjs +6 -0
- package/dist/{LocalStorageProvider-FVLLHBHO.mjs.map → LocalStorageProvider-3RVPCQB3.mjs.map} +1 -1
- package/dist/LocalStorageProvider-PP7MA5OT.js +15 -0
- package/dist/{LocalStorageProvider-NBNHHWLY.js.map → LocalStorageProvider-PP7MA5OT.js.map} +1 -1
- package/dist/PMXParser-2VTA737I.js +13 -0
- package/dist/{PMXParser-YBS3B6HM.js.map → PMXParser-2VTA737I.js.map} +1 -1
- package/dist/PMXParser-RNVQL76A.mjs +4 -0
- package/dist/{PMXParser-L6IWHL4I.mjs.map → PMXParser-RNVQL76A.mjs.map} +1 -1
- package/dist/analytics/index.js +46 -45
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/index.mjs +45 -44
- package/dist/analytics/index.mjs.map +1 -1
- package/dist/analytics/server/index.js +4 -4
- package/dist/analytics/server/index.js.map +1 -1
- package/dist/analytics/server/index.mjs +4 -4
- package/dist/analytics/server/index.mjs.map +1 -1
- package/dist/api/index.js +5 -5
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +5 -5
- package/dist/api/index.mjs.map +1 -1
- package/dist/audioDetection/index.js +17 -16
- package/dist/audioDetection/index.js.map +1 -1
- package/dist/audioDetection/index.mjs +17 -16
- package/dist/audioDetection/index.mjs.map +1 -1
- package/dist/auth/client/index.js +4 -4
- package/dist/auth/client/index.mjs +1 -1
- package/dist/auth/components/index.js +3 -3
- package/dist/auth/components/index.js.map +1 -1
- package/dist/auth/components/index.mjs +3 -3
- package/dist/auth/components/index.mjs.map +1 -1
- package/dist/auth/index.js +29 -29
- package/dist/auth/index.mjs +5 -5
- package/dist/auth/middleware/index.js +3 -3
- package/dist/auth/middleware/index.mjs +2 -2
- package/dist/auth/routes/index.js +14 -14
- package/dist/auth/routes/index.mjs +2 -2
- package/dist/auth/services/index.js +7 -7
- package/dist/auth/services/index.mjs +1 -1
- package/dist/calendar/index.js +146 -182
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/index.mjs +139 -175
- package/dist/calendar/index.mjs.map +1 -1
- package/dist/calendar/routes/index.js +1 -1
- package/dist/calendar/routes/index.js.map +1 -1
- package/dist/calendar/routes/index.mjs +1 -1
- package/dist/calendar/routes/index.mjs.map +1 -1
- package/dist/{chunk-5YQ5B7IZ.js → chunk-24HGREE6.js} +5 -5
- package/dist/{chunk-5YQ5B7IZ.js.map → chunk-24HGREE6.js.map} +1 -1
- package/dist/{chunk-6PRFP5EG.js → chunk-25OFOKNF.js} +6 -6
- package/dist/chunk-25OFOKNF.js.map +1 -0
- package/dist/{chunk-KQGP6BTS.mjs → chunk-3DXPQ4YV.mjs} +6 -6
- package/dist/chunk-3DXPQ4YV.mjs.map +1 -0
- package/dist/{chunk-3BGPZN4X.mjs → chunk-3NHAT7D4.mjs} +12 -12
- package/dist/chunk-3NHAT7D4.mjs.map +1 -0
- package/dist/{chunk-MW4BCIZC.mjs → chunk-4HC6M7FK.mjs} +3 -3
- package/dist/chunk-4HC6M7FK.mjs.map +1 -0
- package/dist/{chunk-ESRCX5TQ.mjs → chunk-52TN2QSS.mjs} +3 -3
- package/dist/{chunk-ESRCX5TQ.mjs.map → chunk-52TN2QSS.mjs.map} +1 -1
- package/dist/{chunk-DW2ZTOCV.js → chunk-5A7ERLKK.js} +105 -106
- package/dist/chunk-5A7ERLKK.js.map +1 -0
- package/dist/{chunk-CNTILN5J.mjs → chunk-5YQ62BKX.mjs} +20 -19
- package/dist/chunk-5YQ62BKX.mjs.map +1 -0
- package/dist/{chunk-6W5BMXJG.js → chunk-6OWNMJKG.js} +4 -4
- package/dist/{chunk-6W5BMXJG.js.map → chunk-6OWNMJKG.js.map} +1 -1
- package/dist/{chunk-WSNM4EU5.mjs → chunk-77M5AQG3.mjs} +37 -41
- package/dist/chunk-77M5AQG3.mjs.map +1 -0
- package/dist/{chunk-DUHZ7VZP.js → chunk-7VRT55ZD.js} +3 -3
- package/dist/chunk-7VRT55ZD.js.map +1 -0
- package/dist/{chunk-LX4XX6W7.js → chunk-C54W2CMK.js} +16 -16
- package/dist/chunk-C54W2CMK.js.map +1 -0
- package/dist/{chunk-3WOAPLEG.mjs → chunk-EB4NR623.mjs} +27 -26
- package/dist/chunk-EB4NR623.mjs.map +1 -0
- package/dist/{chunk-CD77U7LZ.js → chunk-GBPLX42J.js} +9 -9
- package/dist/chunk-GBPLX42J.js.map +1 -0
- package/dist/{chunk-TFQF2HDO.mjs → chunk-HDEOCX2L.mjs} +12 -12
- package/dist/chunk-HDEOCX2L.mjs.map +1 -0
- package/dist/{chunk-LFG6FPM5.mjs → chunk-KIP2CERU.mjs} +37 -38
- package/dist/chunk-KIP2CERU.mjs.map +1 -0
- package/dist/{chunk-6YKMCPQI.mjs → chunk-KZKIH4AS.mjs} +4 -4
- package/dist/chunk-KZKIH4AS.mjs.map +1 -0
- package/dist/{chunk-6MQUBPKB.mjs → chunk-LJ4CCSSY.mjs} +3 -3
- package/dist/{chunk-6MQUBPKB.mjs.map → chunk-LJ4CCSSY.mjs.map} +1 -1
- package/dist/{chunk-TOC5FSHP.js → chunk-NJ2SNXBJ.js} +12 -12
- package/dist/chunk-NJ2SNXBJ.js.map +1 -0
- package/dist/{chunk-OCR5DS4C.mjs → chunk-PE5EAHZK.mjs} +3 -3
- package/dist/chunk-PE5EAHZK.mjs.map +1 -0
- package/dist/{chunk-TKCYPDWU.js → chunk-Q5EDCKQA.js} +27 -29
- package/dist/chunk-Q5EDCKQA.js.map +1 -0
- package/dist/{chunk-CLKKZSPZ.js → chunk-RBKGYWME.js} +20 -19
- package/dist/chunk-RBKGYWME.js.map +1 -0
- package/dist/{chunk-VRTRSEEH.mjs → chunk-RSJSZ7QH.mjs} +11 -11
- package/dist/chunk-RSJSZ7QH.mjs.map +1 -0
- package/dist/{chunk-E7RGBAYJ.js → chunk-TDCDEBGP.js} +30 -29
- package/dist/chunk-TDCDEBGP.js.map +1 -0
- package/dist/{chunk-T5OZHYVM.mjs → chunk-TVROG2Q4.mjs} +15 -15
- package/dist/chunk-TVROG2Q4.mjs.map +1 -0
- package/dist/{chunk-JZXJQMVE.js → chunk-UIFFDRTE.js} +11 -11
- package/dist/chunk-UIFFDRTE.js.map +1 -0
- package/dist/{chunk-UOFTHYIH.js → chunk-UL6XJGUZ.js} +4 -4
- package/dist/chunk-UL6XJGUZ.js.map +1 -0
- package/dist/{chunk-A3UP56MS.js → chunk-WA67GZSZ.js} +3 -3
- package/dist/chunk-WA67GZSZ.js.map +1 -0
- package/dist/{chunk-OLHGZXN3.mjs → chunk-WEEXCPSE.mjs} +5 -5
- package/dist/chunk-WEEXCPSE.mjs.map +1 -0
- package/dist/{chunk-5GCHAXY5.js → chunk-X3UU7JHT.js} +38 -42
- package/dist/chunk-X3UU7JHT.js.map +1 -0
- package/dist/{chunk-QU5OT4DF.js → chunk-XJ7ZAGC5.js} +5 -5
- package/dist/chunk-XJ7ZAGC5.js.map +1 -0
- package/dist/{chunk-GSTLV3MB.mjs → chunk-YOTQG4NP.mjs} +26 -28
- package/dist/chunk-YOTQG4NP.mjs.map +1 -0
- package/dist/{chunk-QAT2RWAO.mjs → chunk-Z36R3P62.mjs} +7 -7
- package/dist/chunk-Z36R3P62.mjs.map +1 -0
- package/dist/{chunk-7Z5LLJ3A.js → chunk-ZWQJSZEY.js} +13 -13
- package/dist/chunk-ZWQJSZEY.js.map +1 -0
- package/dist/config/index.js +6 -6
- package/dist/config/index.js.map +1 -1
- package/dist/config/index.mjs +6 -6
- package/dist/config/index.mjs.map +1 -1
- package/dist/config/server/index.js +37 -37
- package/dist/config/server/index.js.map +1 -1
- package/dist/config/server/index.mjs +37 -37
- package/dist/config/server/index.mjs.map +1 -1
- package/dist/i18n/index.d.mts +2 -2
- package/dist/i18n/index.d.ts +2 -2
- package/dist/i18n/index.js +16 -17
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/index.mjs +16 -17
- package/dist/i18n/index.mjs.map +1 -1
- package/dist/imageCrop/index.js +11 -10
- package/dist/imageCrop/index.js.map +1 -1
- package/dist/imageCrop/index.mjs +11 -10
- package/dist/imageCrop/index.mjs.map +1 -1
- package/dist/index.js +221 -246
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +79 -104
- package/dist/index.mjs.map +1 -1
- package/dist/logger/index.js +6 -6
- package/dist/logger/index.mjs +1 -1
- package/dist/mmd/admin/index.js +11 -10
- package/dist/mmd/admin/index.js.map +1 -1
- package/dist/mmd/admin/index.mjs +11 -10
- package/dist/mmd/admin/index.mjs.map +1 -1
- package/dist/mmd/index.js +223 -241
- package/dist/mmd/index.js.map +1 -1
- package/dist/mmd/index.mjs +220 -238
- package/dist/mmd/index.mjs.map +1 -1
- package/dist/mmd/server/index.js +6 -6
- package/dist/mmd/server/index.js.map +1 -1
- package/dist/mmd/server/index.mjs +6 -6
- package/dist/mmd/server/index.mjs.map +1 -1
- package/dist/music/index.js +16 -16
- package/dist/music/index.mjs +2 -2
- package/dist/music/server/index.js +8 -8
- package/dist/music/server/index.mjs +1 -1
- package/dist/request/index.js +2 -2
- package/dist/request/index.js.map +1 -1
- package/dist/request/index.mjs +2 -2
- package/dist/request/index.mjs.map +1 -1
- package/dist/storage/index.js +11 -11
- package/dist/storage/index.mjs +2 -2
- package/dist/testYourself/admin/index.js +3 -3
- package/dist/testYourself/admin/index.mjs +1 -1
- package/dist/testYourself/index.js +22 -22
- package/dist/testYourself/index.js.map +1 -1
- package/dist/testYourself/index.mjs +14 -14
- package/dist/testYourself/index.mjs.map +1 -1
- package/dist/testYourself/server/index.js +4 -4
- package/dist/testYourself/server/index.mjs +1 -1
- package/dist/universalExport/index.d.mts +3 -3
- package/dist/universalExport/index.d.ts +3 -3
- package/dist/universalExport/index.js +48 -47
- package/dist/universalExport/index.js.map +1 -1
- package/dist/universalExport/index.mjs +48 -47
- package/dist/universalExport/index.mjs.map +1 -1
- package/dist/universalExport/server/index.js +29 -29
- package/dist/universalExport/server/index.js.map +1 -1
- package/dist/universalExport/server/index.mjs +28 -28
- package/dist/universalExport/server/index.mjs.map +1 -1
- package/dist/universalFile/index.d.mts +3 -3
- package/dist/universalFile/index.d.ts +3 -3
- package/dist/universalFile/index.js +73 -72
- package/dist/universalFile/index.js.map +1 -1
- package/dist/universalFile/index.mjs +73 -72
- package/dist/universalFile/index.mjs.map +1 -1
- package/dist/universalFile/server/index.js +258 -260
- package/dist/universalFile/server/index.js.map +1 -1
- package/dist/universalFile/server/index.mjs +244 -246
- package/dist/universalFile/server/index.mjs.map +1 -1
- package/dist/utils/index.js +11 -11
- package/dist/utils/index.mjs +2 -2
- package/package.json +1 -1
- package/dist/AliyunOSSProvider-I7I5YGLB.mjs +0 -6
- package/dist/AliyunOSSProvider-L7JWMKS4.js +0 -15
- package/dist/ConfigService-7MEZXKJ5.js +0 -21
- package/dist/ConfigService-BV57YYFW.mjs +0 -4
- package/dist/LocalStorageProvider-FVLLHBHO.mjs +0 -6
- package/dist/LocalStorageProvider-NBNHHWLY.js +0 -15
- package/dist/PMXParser-L6IWHL4I.mjs +0 -4
- package/dist/PMXParser-YBS3B6HM.js +0 -13
- package/dist/chunk-3BGPZN4X.mjs.map +0 -1
- package/dist/chunk-3WOAPLEG.mjs.map +0 -1
- package/dist/chunk-5GCHAXY5.js.map +0 -1
- package/dist/chunk-6PRFP5EG.js.map +0 -1
- package/dist/chunk-6YKMCPQI.mjs.map +0 -1
- package/dist/chunk-7Z5LLJ3A.js.map +0 -1
- package/dist/chunk-A3UP56MS.js.map +0 -1
- package/dist/chunk-CD77U7LZ.js.map +0 -1
- package/dist/chunk-CLKKZSPZ.js.map +0 -1
- package/dist/chunk-CNTILN5J.mjs.map +0 -1
- package/dist/chunk-DUHZ7VZP.js.map +0 -1
- package/dist/chunk-DW2ZTOCV.js.map +0 -1
- package/dist/chunk-E7RGBAYJ.js.map +0 -1
- package/dist/chunk-GSTLV3MB.mjs.map +0 -1
- package/dist/chunk-JZXJQMVE.js.map +0 -1
- package/dist/chunk-KQGP6BTS.mjs.map +0 -1
- package/dist/chunk-LFG6FPM5.mjs.map +0 -1
- package/dist/chunk-LX4XX6W7.js.map +0 -1
- package/dist/chunk-MW4BCIZC.mjs.map +0 -1
- package/dist/chunk-OCR5DS4C.mjs.map +0 -1
- package/dist/chunk-OLHGZXN3.mjs.map +0 -1
- package/dist/chunk-QAT2RWAO.mjs.map +0 -1
- package/dist/chunk-QU5OT4DF.js.map +0 -1
- package/dist/chunk-T5OZHYVM.mjs.map +0 -1
- package/dist/chunk-TFQF2HDO.mjs.map +0 -1
- package/dist/chunk-TKCYPDWU.js.map +0 -1
- package/dist/chunk-TOC5FSHP.js.map +0 -1
- package/dist/chunk-UOFTHYIH.js.map +0 -1
- package/dist/chunk-VRTRSEEH.mjs.map +0 -1
- package/dist/chunk-WSNM4EU5.mjs.map +0 -1
package/dist/analytics/index.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { WebStorageAdapter } from '../chunk-
|
|
1
|
+
import { WebStorageAdapter } from '../chunk-WEEXCPSE.mjs';
|
|
2
2
|
import '../chunk-BJTO5JO5.mjs';
|
|
3
3
|
import React5, { useEffect, useCallback, useRef, useState } from 'react';
|
|
4
|
+
import { clsx } from 'clsx';
|
|
4
5
|
|
|
5
6
|
// src/analytics/types.ts
|
|
6
7
|
var EventType = /* @__PURE__ */ ((EventType2) => {
|
|
@@ -222,7 +223,7 @@ var Uploader = class {
|
|
|
222
223
|
* 添加到重试队列
|
|
223
224
|
*/
|
|
224
225
|
async addToRetryQueue(events) {
|
|
225
|
-
const key =
|
|
226
|
+
const key = Date.now() + "_" + Math.random();
|
|
226
227
|
this.retryQueue.set(key, {
|
|
227
228
|
events,
|
|
228
229
|
retryCount: 0
|
|
@@ -336,7 +337,7 @@ var Analytics = class {
|
|
|
336
337
|
this.startBatchTimer();
|
|
337
338
|
if (typeof window !== "undefined") {
|
|
338
339
|
window.addEventListener("analytics-debug-changed", ((e) => {
|
|
339
|
-
this.log(
|
|
340
|
+
this.log("Debug mode changed: " + (e.detail.enabled ? "enabled" : "disabled"));
|
|
340
341
|
}));
|
|
341
342
|
}
|
|
342
343
|
this.initialized = true;
|
|
@@ -573,7 +574,7 @@ var Analytics = class {
|
|
|
573
574
|
}
|
|
574
575
|
} catch (error) {
|
|
575
576
|
console.error("Failed to init device info:", error);
|
|
576
|
-
this.deviceId =
|
|
577
|
+
this.deviceId = "temp_" + Date.now() + "_" + Math.random();
|
|
577
578
|
}
|
|
578
579
|
}
|
|
579
580
|
/**
|
|
@@ -620,13 +621,13 @@ var Analytics = class {
|
|
|
620
621
|
* 生成事件ID
|
|
621
622
|
*/
|
|
622
623
|
generateEventId() {
|
|
623
|
-
return
|
|
624
|
+
return Date.now() + "_" + Math.random().toString(36).substring(2, 15);
|
|
624
625
|
}
|
|
625
626
|
/**
|
|
626
627
|
* 生成会话ID
|
|
627
628
|
*/
|
|
628
629
|
generateSessionId() {
|
|
629
|
-
return
|
|
630
|
+
return "session_" + Date.now() + "_" + Math.random().toString(36).substring(2, 15);
|
|
630
631
|
}
|
|
631
632
|
/**
|
|
632
633
|
* 获取平台标识
|
|
@@ -640,7 +641,7 @@ var Analytics = class {
|
|
|
640
641
|
log(message, data) {
|
|
641
642
|
const dynamicDebug = typeof window !== "undefined" ? localStorage.getItem("analytics-debug") === "true" : false;
|
|
642
643
|
if (this.config.debug || dynamicDebug) {
|
|
643
|
-
console.log(
|
|
644
|
+
console.log("[Analytics] " + message, data ?? "");
|
|
644
645
|
}
|
|
645
646
|
}
|
|
646
647
|
/**
|
|
@@ -817,7 +818,7 @@ function mergeEventProperties(baseProperties, ...additionalProperties) {
|
|
|
817
818
|
function generateUniqueId(prefix = "") {
|
|
818
819
|
const timestamp = Date.now();
|
|
819
820
|
const random = Math.random().toString(36).substring(2, 15);
|
|
820
|
-
return prefix ?
|
|
821
|
+
return prefix ? prefix + "_" + timestamp + "_" + random : timestamp + "_" + random;
|
|
821
822
|
}
|
|
822
823
|
function isMobile() {
|
|
823
824
|
if (typeof navigator === "undefined") return false;
|
|
@@ -903,7 +904,7 @@ function Track(eventName, priority = 1 /* NORMAL */) {
|
|
|
903
904
|
} catch (error) {
|
|
904
905
|
analytics?.track(
|
|
905
906
|
"error" /* ERROR */,
|
|
906
|
-
|
|
907
|
+
finalEventName + "_error",
|
|
907
908
|
{
|
|
908
909
|
success: false,
|
|
909
910
|
duration: Date.now() - startTime,
|
|
@@ -1251,7 +1252,7 @@ var WebNetworkAdapter = class {
|
|
|
1251
1252
|
} else {
|
|
1252
1253
|
return {
|
|
1253
1254
|
success: false,
|
|
1254
|
-
message:
|
|
1255
|
+
message: "HTTP " + response.status,
|
|
1255
1256
|
code: response.status
|
|
1256
1257
|
};
|
|
1257
1258
|
}
|
|
@@ -1288,12 +1289,12 @@ var WebDeviceAdapter = class {
|
|
|
1288
1289
|
if (typeof window !== "undefined") {
|
|
1289
1290
|
let deviceId = localStorage.getItem("analytics:device_id");
|
|
1290
1291
|
if (!deviceId) {
|
|
1291
|
-
deviceId =
|
|
1292
|
+
deviceId = "web_" + Date.now() + "_" + Math.random().toString(36).substring(2, 15);
|
|
1292
1293
|
localStorage.setItem("analytics:device_id", deviceId);
|
|
1293
1294
|
}
|
|
1294
1295
|
return deviceId;
|
|
1295
1296
|
}
|
|
1296
|
-
return
|
|
1297
|
+
return "web_" + Date.now() + "_" + Math.random().toString(36).substring(2, 15);
|
|
1297
1298
|
}
|
|
1298
1299
|
getOSName() {
|
|
1299
1300
|
if (typeof navigator === "undefined") return "unknown";
|
|
@@ -1424,7 +1425,7 @@ var MobileNetworkAdapter = class {
|
|
|
1424
1425
|
} else {
|
|
1425
1426
|
return {
|
|
1426
1427
|
success: false,
|
|
1427
|
-
message:
|
|
1428
|
+
message: "HTTP " + response.status,
|
|
1428
1429
|
code: response.status
|
|
1429
1430
|
};
|
|
1430
1431
|
}
|
|
@@ -1475,11 +1476,11 @@ var MobileDeviceAdapter = class {
|
|
|
1475
1476
|
async generateDeviceId() {
|
|
1476
1477
|
const timestamp = Date.now();
|
|
1477
1478
|
const random = Math.random().toString(36).substring(2, 15);
|
|
1478
|
-
return
|
|
1479
|
+
return "mobile_" + timestamp + "_" + random;
|
|
1479
1480
|
}
|
|
1480
1481
|
getDefaultDeviceInfo() {
|
|
1481
1482
|
return {
|
|
1482
|
-
device_id:
|
|
1483
|
+
device_id: "mobile_" + Date.now(),
|
|
1483
1484
|
os_name: "unknown",
|
|
1484
1485
|
os_version: "unknown",
|
|
1485
1486
|
screen_width: 0,
|
|
@@ -1602,7 +1603,7 @@ var MiniappNetworkAdapter = class {
|
|
|
1602
1603
|
} else {
|
|
1603
1604
|
return {
|
|
1604
1605
|
success: false,
|
|
1605
|
-
message:
|
|
1606
|
+
message: "HTTP " + response.statusCode,
|
|
1606
1607
|
code: response.statusCode
|
|
1607
1608
|
};
|
|
1608
1609
|
}
|
|
@@ -1657,11 +1658,11 @@ var MiniappDeviceAdapter = class {
|
|
|
1657
1658
|
async generateDeviceId() {
|
|
1658
1659
|
const timestamp = Date.now();
|
|
1659
1660
|
const random = Math.random().toString(36).substring(2, 15);
|
|
1660
|
-
return
|
|
1661
|
+
return "miniapp_" + timestamp + "_" + random;
|
|
1661
1662
|
}
|
|
1662
1663
|
getDefaultDeviceInfo() {
|
|
1663
1664
|
return {
|
|
1664
|
-
device_id:
|
|
1665
|
+
device_id: "miniapp_" + Date.now(),
|
|
1665
1666
|
os_name: "wechat",
|
|
1666
1667
|
os_version: "unknown",
|
|
1667
1668
|
screen_width: 0,
|
|
@@ -1775,7 +1776,7 @@ var DesktopNetworkAdapter = class {
|
|
|
1775
1776
|
} else {
|
|
1776
1777
|
return {
|
|
1777
1778
|
success: false,
|
|
1778
|
-
message:
|
|
1779
|
+
message: "HTTP " + response.status,
|
|
1779
1780
|
code: response.status
|
|
1780
1781
|
};
|
|
1781
1782
|
}
|
|
@@ -1812,12 +1813,12 @@ var DesktopDeviceAdapter = class {
|
|
|
1812
1813
|
if (typeof window !== "undefined") {
|
|
1813
1814
|
let deviceId = localStorage.getItem("analytics:device_id");
|
|
1814
1815
|
if (!deviceId) {
|
|
1815
|
-
deviceId =
|
|
1816
|
+
deviceId = "desktop_" + Date.now() + "_" + Math.random().toString(36).substring(2, 15);
|
|
1816
1817
|
localStorage.setItem("analytics:device_id", deviceId);
|
|
1817
1818
|
}
|
|
1818
1819
|
return deviceId;
|
|
1819
1820
|
}
|
|
1820
|
-
return
|
|
1821
|
+
return "desktop_" + Date.now() + "_" + Math.random().toString(36).substring(2, 15);
|
|
1821
1822
|
}
|
|
1822
1823
|
getOSName() {
|
|
1823
1824
|
if (typeof navigator === "undefined") return "unknown";
|
|
@@ -1844,12 +1845,12 @@ var StatCard = ({
|
|
|
1844
1845
|
return /* @__PURE__ */ React5.createElement(
|
|
1845
1846
|
"div",
|
|
1846
1847
|
{
|
|
1847
|
-
className:
|
|
1848
|
+
className: clsx("bg-white rounded-lg shadow-sm p-6 border border-gray-200 hover:shadow-md transition-shadow", className)
|
|
1848
1849
|
},
|
|
1849
1850
|
/* @__PURE__ */ React5.createElement("div", { className: "flex items-start justify-between" }, /* @__PURE__ */ React5.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React5.createElement("p", { className: "text-sm font-medium text-gray-600 mb-1" }, title), /* @__PURE__ */ React5.createElement("p", { className: "text-3xl font-bold text-gray-900" }, value.toLocaleString()), subtitle && /* @__PURE__ */ React5.createElement("p", { className: "text-sm text-gray-500 mt-2" }, subtitle), trend && /* @__PURE__ */ React5.createElement("div", { className: "flex items-center mt-2" }, /* @__PURE__ */ React5.createElement(
|
|
1850
1851
|
"span",
|
|
1851
1852
|
{
|
|
1852
|
-
className:
|
|
1853
|
+
className: clsx("text-sm font-medium", trend.isPositive ? "text-green-600" : "text-red-600")
|
|
1853
1854
|
},
|
|
1854
1855
|
trend.isPositive ? "\u2191" : "\u2193",
|
|
1855
1856
|
" ",
|
|
@@ -1865,10 +1866,10 @@ var EventList = ({
|
|
|
1865
1866
|
className = ""
|
|
1866
1867
|
}) => {
|
|
1867
1868
|
if (loading) {
|
|
1868
|
-
return /* @__PURE__ */ React5.createElement("div", { className:
|
|
1869
|
+
return /* @__PURE__ */ React5.createElement("div", { className: clsx("bg-white rounded-lg shadow-sm p-6", className) }, /* @__PURE__ */ React5.createElement("div", { className: "animate-pulse space-y-4" }, [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ React5.createElement("div", { key: i, className: "h-16 bg-gray-200 rounded" }))));
|
|
1869
1870
|
}
|
|
1870
1871
|
if (events.length === 0) {
|
|
1871
|
-
return /* @__PURE__ */ React5.createElement("div", { className:
|
|
1872
|
+
return /* @__PURE__ */ React5.createElement("div", { className: clsx("bg-white rounded-lg shadow-sm p-12 text-center", className) }, /* @__PURE__ */ React5.createElement("div", { className: "text-gray-400 text-5xl mb-4" }, "\u{1F4CA}"), /* @__PURE__ */ React5.createElement("p", { className: "text-gray-600 text-lg font-medium" }, "\u6682\u65E0\u6570\u636E"), /* @__PURE__ */ React5.createElement("p", { className: "text-gray-500 text-sm mt-2" }, "\u5C1D\u8BD5\u8C03\u6574\u7B5B\u9009\u6761\u4EF6"));
|
|
1872
1873
|
}
|
|
1873
1874
|
const getPlatformColor = (platform) => {
|
|
1874
1875
|
const colors = {
|
|
@@ -1897,12 +1898,12 @@ var EventList = ({
|
|
|
1897
1898
|
const hours = Math.floor(minutes / 60);
|
|
1898
1899
|
const days = Math.floor(hours / 24);
|
|
1899
1900
|
if (minutes < 1) return "\u521A\u521A";
|
|
1900
|
-
if (minutes < 60) return
|
|
1901
|
-
if (hours < 24) return
|
|
1902
|
-
if (days < 7) return
|
|
1901
|
+
if (minutes < 60) return minutes + "\u5206\u949F\u524D";
|
|
1902
|
+
if (hours < 24) return hours + "\u5C0F\u65F6\u524D";
|
|
1903
|
+
if (days < 7) return days + "\u5929\u524D";
|
|
1903
1904
|
return date.toLocaleDateString("zh-CN");
|
|
1904
1905
|
};
|
|
1905
|
-
return /* @__PURE__ */ React5.createElement("div", { className:
|
|
1906
|
+
return /* @__PURE__ */ React5.createElement("div", { className: clsx("bg-white rounded-lg shadow-sm overflow-hidden", className) }, /* @__PURE__ */ React5.createElement("div", { className: "overflow-x-auto" }, /* @__PURE__ */ React5.createElement("table", { className: "min-w-full divide-y divide-gray-200" }, /* @__PURE__ */ React5.createElement("thead", { className: "bg-gray-50" }, /* @__PURE__ */ React5.createElement("tr", null, /* @__PURE__ */ React5.createElement("th", { className: "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" }, "\u4E8B\u4EF6"), /* @__PURE__ */ React5.createElement("th", { className: "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" }, "\u5E73\u53F0"), /* @__PURE__ */ React5.createElement("th", { className: "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" }, "\u9875\u9762"), /* @__PURE__ */ React5.createElement("th", { className: "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" }, "\u7528\u6237"), /* @__PURE__ */ React5.createElement("th", { className: "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" }, "\u65F6\u95F4"), /* @__PURE__ */ React5.createElement("th", { className: "px-6 py-3 text-right text-xs font-medium text-gray-500 uppercase tracking-wider" }, "\u64CD\u4F5C"))), /* @__PURE__ */ React5.createElement("tbody", { className: "bg-white divide-y divide-gray-200" }, events.map((event) => /* @__PURE__ */ React5.createElement(
|
|
1906
1907
|
"tr",
|
|
1907
1908
|
{
|
|
1908
1909
|
key: event.id,
|
|
@@ -1912,18 +1913,18 @@ var EventList = ({
|
|
|
1912
1913
|
/* @__PURE__ */ React5.createElement("td", { className: "px-6 py-4 whitespace-nowrap" }, /* @__PURE__ */ React5.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React5.createElement(
|
|
1913
1914
|
"span",
|
|
1914
1915
|
{
|
|
1915
|
-
className:
|
|
1916
|
+
className: clsx("inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium", getEventTypeColor(
|
|
1916
1917
|
event.eventType
|
|
1917
|
-
)
|
|
1918
|
+
), "w-fit mb-1")
|
|
1918
1919
|
},
|
|
1919
1920
|
event.eventType
|
|
1920
1921
|
), /* @__PURE__ */ React5.createElement("span", { className: "text-sm text-gray-900" }, event.eventName))),
|
|
1921
1922
|
/* @__PURE__ */ React5.createElement("td", { className: "px-6 py-4 whitespace-nowrap" }, /* @__PURE__ */ React5.createElement(
|
|
1922
1923
|
"span",
|
|
1923
1924
|
{
|
|
1924
|
-
className:
|
|
1925
|
+
className: clsx("inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium", getPlatformColor(
|
|
1925
1926
|
event.platform
|
|
1926
|
-
)
|
|
1927
|
+
))
|
|
1927
1928
|
},
|
|
1928
1929
|
event.platform
|
|
1929
1930
|
)),
|
|
@@ -1994,7 +1995,7 @@ var FilterPanel = ({
|
|
|
1994
1995
|
setFilters(emptyFilters);
|
|
1995
1996
|
onFilterChange(emptyFilters);
|
|
1996
1997
|
};
|
|
1997
|
-
return /* @__PURE__ */ React5.createElement("div", { className:
|
|
1998
|
+
return /* @__PURE__ */ React5.createElement("div", { className: clsx("bg-white rounded-xl shadow-sm border border-gray-200", className) }, /* @__PURE__ */ React5.createElement("div", { className: "flex items-center justify-between mb-4 p-4 bg-gradient-to-r from-gray-50 to-gray-100 -m-6 mb-4 rounded-t-xl border-b border-gray-200" }, /* @__PURE__ */ React5.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React5.createElement(
|
|
1998
1999
|
"svg",
|
|
1999
2000
|
{
|
|
2000
2001
|
className: "w-5 h-5 text-indigo-600",
|
|
@@ -2094,9 +2095,9 @@ var FilterPanel = ({
|
|
|
2094
2095
|
))), /* @__PURE__ */ React5.createElement("div", { className: "px-4 py-3 bg-gray-50 -mx-6 -mb-6 mt-4 rounded-b-xl border-t border-gray-200" }, /* @__PURE__ */ React5.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React5.createElement(
|
|
2095
2096
|
"div",
|
|
2096
2097
|
{
|
|
2097
|
-
className:
|
|
2098
|
+
className: clsx("w-2 h-2 rounded-full", Object.keys(filters).length > 0 ? "bg-green-500" : "bg-gray-300")
|
|
2098
2099
|
}
|
|
2099
|
-
), /* @__PURE__ */ React5.createElement("p", { className: "text-xs text-gray-600" }, Object.keys(filters).length === 0 ? "\u672A\u5E94\u7528\u7B5B\u9009" :
|
|
2100
|
+
), /* @__PURE__ */ React5.createElement("p", { className: "text-xs text-gray-600" }, Object.keys(filters).length === 0 ? "\u672A\u5E94\u7528\u7B5B\u9009" : Object.keys(filters).length + " \u4E2A\u7B5B\u9009"))));
|
|
2100
2101
|
};
|
|
2101
2102
|
var PieChart = ({ data, title, className = "" }) => {
|
|
2102
2103
|
const total = data.reduce((sum, item) => sum + item.value, 0);
|
|
@@ -2110,26 +2111,26 @@ var PieChart = ({ data, title, className = "" }) => {
|
|
|
2110
2111
|
"bg-red-500",
|
|
2111
2112
|
"bg-cyan-500"
|
|
2112
2113
|
];
|
|
2113
|
-
return /* @__PURE__ */ React5.createElement("div", { className:
|
|
2114
|
+
return /* @__PURE__ */ React5.createElement("div", { className: clsx("bg-white rounded-lg shadow-sm p-6", className) }, title && /* @__PURE__ */ React5.createElement("h3", { className: "text-lg font-semibold text-gray-900 mb-4" }, title), /* @__PURE__ */ React5.createElement("div", { className: "space-y-3" }, data.map((item, index) => {
|
|
2114
2115
|
const percentage = total > 0 ? (item.value / total * 100).toFixed(1) : 0;
|
|
2115
2116
|
return /* @__PURE__ */ React5.createElement("div", { key: index }, /* @__PURE__ */ React5.createElement("div", { className: "flex items-center justify-between text-sm mb-1" }, /* @__PURE__ */ React5.createElement("span", { className: "text-gray-700 font-medium" }, item.name), /* @__PURE__ */ React5.createElement("span", { className: "text-gray-600" }, item.value.toLocaleString(), " (", percentage, "%)")), /* @__PURE__ */ React5.createElement("div", { className: "w-full bg-gray-200 rounded-full h-2" }, /* @__PURE__ */ React5.createElement(
|
|
2116
2117
|
"div",
|
|
2117
2118
|
{
|
|
2118
|
-
className:
|
|
2119
|
-
style: { width:
|
|
2119
|
+
className: clsx("h-2 rounded-full", colors[index % colors.length]),
|
|
2120
|
+
style: { width: percentage + "%" }
|
|
2120
2121
|
}
|
|
2121
2122
|
)));
|
|
2122
2123
|
})));
|
|
2123
2124
|
};
|
|
2124
2125
|
var BarChart = ({ data, title, className = "" }) => {
|
|
2125
2126
|
const maxValue = Math.max(...data.map((item) => item.value), 1);
|
|
2126
|
-
return /* @__PURE__ */ React5.createElement("div", { className:
|
|
2127
|
+
return /* @__PURE__ */ React5.createElement("div", { className: clsx("bg-white rounded-lg shadow-sm p-6", className) }, title && /* @__PURE__ */ React5.createElement("h3", { className: "text-lg font-semibold text-gray-900 mb-4" }, title), /* @__PURE__ */ React5.createElement("div", { className: "space-y-4" }, data.map((item, index) => {
|
|
2127
2128
|
const percentage = item.value / maxValue * 100;
|
|
2128
2129
|
return /* @__PURE__ */ React5.createElement("div", { key: index, className: "flex items-center gap-4" }, /* @__PURE__ */ React5.createElement("div", { className: "w-32 text-sm text-gray-700 font-medium truncate" }, item.name), /* @__PURE__ */ React5.createElement("div", { className: "flex-1 flex items-center gap-2" }, /* @__PURE__ */ React5.createElement("div", { className: "flex-1 bg-gray-200 rounded-full h-8 relative overflow-hidden" }, /* @__PURE__ */ React5.createElement(
|
|
2129
2130
|
"div",
|
|
2130
2131
|
{
|
|
2131
2132
|
className: "h-full bg-gradient-to-r from-indigo-500 to-purple-600 flex items-center justify-end px-3",
|
|
2132
|
-
style: { width:
|
|
2133
|
+
style: { width: percentage + "%", minWidth: "40px" }
|
|
2133
2134
|
},
|
|
2134
2135
|
/* @__PURE__ */ React5.createElement("span", { className: "text-xs text-white font-semibold" }, item.value.toLocaleString())
|
|
2135
2136
|
))));
|
|
@@ -2159,7 +2160,7 @@ var AnalyticsDashboard = ({
|
|
|
2159
2160
|
if (filters.platform) {
|
|
2160
2161
|
params.append("platform", filters.platform);
|
|
2161
2162
|
}
|
|
2162
|
-
const response = await fetch(
|
|
2163
|
+
const response = await fetch(apiBaseUrl + "/stats?" + params);
|
|
2163
2164
|
const data = await response.json();
|
|
2164
2165
|
if (data.success) {
|
|
2165
2166
|
setStats(data.data);
|
|
@@ -2191,7 +2192,7 @@ var AnalyticsDashboard = ({
|
|
|
2191
2192
|
params.append("offset", ((currentPage - 1) * pageSize).toString());
|
|
2192
2193
|
params.append("orderBy", "timestamp");
|
|
2193
2194
|
params.append("orderDirection", "desc");
|
|
2194
|
-
const response = await fetch(
|
|
2195
|
+
const response = await fetch(apiBaseUrl + "/query?" + params);
|
|
2195
2196
|
const data = await response.json();
|
|
2196
2197
|
if (data.success) {
|
|
2197
2198
|
setEvents(data.data);
|
|
@@ -2218,7 +2219,7 @@ var AnalyticsDashboard = ({
|
|
|
2218
2219
|
setSelectedEvent(null);
|
|
2219
2220
|
};
|
|
2220
2221
|
const totalPages = Math.ceil(totalEvents / pageSize);
|
|
2221
|
-
return /* @__PURE__ */ React5.createElement("div", { className:
|
|
2222
|
+
return /* @__PURE__ */ React5.createElement("div", { className: clsx("space-y-6", className) }, /* @__PURE__ */ React5.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React5.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React5.createElement("div", { className: "flex items-center gap-2 text-sm text-gray-600" }, /* @__PURE__ */ React5.createElement(
|
|
2222
2223
|
"svg",
|
|
2223
2224
|
{
|
|
2224
2225
|
className: "w-5 h-5 text-indigo-600",
|