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.
Files changed (237) hide show
  1. package/dist/AliyunOSSProvider-P6TOVKMM.mjs +6 -0
  2. package/dist/{AliyunOSSProvider-I7I5YGLB.mjs.map → AliyunOSSProvider-P6TOVKMM.mjs.map} +1 -1
  3. package/dist/AliyunOSSProvider-Z5BRBCG6.js +15 -0
  4. package/dist/{AliyunOSSProvider-L7JWMKS4.js.map → AliyunOSSProvider-Z5BRBCG6.js.map} +1 -1
  5. package/dist/ConfigService-3DIC6C3Q.js +21 -0
  6. package/dist/{ConfigService-7MEZXKJ5.js.map → ConfigService-3DIC6C3Q.js.map} +1 -1
  7. package/dist/ConfigService-V6ZK273Z.mjs +4 -0
  8. package/dist/{ConfigService-BV57YYFW.mjs.map → ConfigService-V6ZK273Z.mjs.map} +1 -1
  9. package/dist/LocalStorageProvider-3RVPCQB3.mjs +6 -0
  10. package/dist/{LocalStorageProvider-FVLLHBHO.mjs.map → LocalStorageProvider-3RVPCQB3.mjs.map} +1 -1
  11. package/dist/LocalStorageProvider-PP7MA5OT.js +15 -0
  12. package/dist/{LocalStorageProvider-NBNHHWLY.js.map → LocalStorageProvider-PP7MA5OT.js.map} +1 -1
  13. package/dist/PMXParser-2VTA737I.js +13 -0
  14. package/dist/{PMXParser-YBS3B6HM.js.map → PMXParser-2VTA737I.js.map} +1 -1
  15. package/dist/PMXParser-RNVQL76A.mjs +4 -0
  16. package/dist/{PMXParser-L6IWHL4I.mjs.map → PMXParser-RNVQL76A.mjs.map} +1 -1
  17. package/dist/analytics/index.js +46 -45
  18. package/dist/analytics/index.js.map +1 -1
  19. package/dist/analytics/index.mjs +45 -44
  20. package/dist/analytics/index.mjs.map +1 -1
  21. package/dist/analytics/server/index.js +4 -4
  22. package/dist/analytics/server/index.js.map +1 -1
  23. package/dist/analytics/server/index.mjs +4 -4
  24. package/dist/analytics/server/index.mjs.map +1 -1
  25. package/dist/api/index.js +5 -5
  26. package/dist/api/index.js.map +1 -1
  27. package/dist/api/index.mjs +5 -5
  28. package/dist/api/index.mjs.map +1 -1
  29. package/dist/audioDetection/index.js +17 -16
  30. package/dist/audioDetection/index.js.map +1 -1
  31. package/dist/audioDetection/index.mjs +17 -16
  32. package/dist/audioDetection/index.mjs.map +1 -1
  33. package/dist/auth/client/index.js +4 -4
  34. package/dist/auth/client/index.mjs +1 -1
  35. package/dist/auth/components/index.js +3 -3
  36. package/dist/auth/components/index.js.map +1 -1
  37. package/dist/auth/components/index.mjs +3 -3
  38. package/dist/auth/components/index.mjs.map +1 -1
  39. package/dist/auth/index.js +29 -29
  40. package/dist/auth/index.mjs +5 -5
  41. package/dist/auth/middleware/index.js +3 -3
  42. package/dist/auth/middleware/index.mjs +2 -2
  43. package/dist/auth/routes/index.js +14 -14
  44. package/dist/auth/routes/index.mjs +2 -2
  45. package/dist/auth/services/index.js +7 -7
  46. package/dist/auth/services/index.mjs +1 -1
  47. package/dist/calendar/index.js +146 -182
  48. package/dist/calendar/index.js.map +1 -1
  49. package/dist/calendar/index.mjs +139 -175
  50. package/dist/calendar/index.mjs.map +1 -1
  51. package/dist/calendar/routes/index.js +1 -1
  52. package/dist/calendar/routes/index.js.map +1 -1
  53. package/dist/calendar/routes/index.mjs +1 -1
  54. package/dist/calendar/routes/index.mjs.map +1 -1
  55. package/dist/{chunk-5YQ5B7IZ.js → chunk-24HGREE6.js} +5 -5
  56. package/dist/{chunk-5YQ5B7IZ.js.map → chunk-24HGREE6.js.map} +1 -1
  57. package/dist/{chunk-6PRFP5EG.js → chunk-25OFOKNF.js} +6 -6
  58. package/dist/chunk-25OFOKNF.js.map +1 -0
  59. package/dist/{chunk-KQGP6BTS.mjs → chunk-3DXPQ4YV.mjs} +6 -6
  60. package/dist/chunk-3DXPQ4YV.mjs.map +1 -0
  61. package/dist/{chunk-3BGPZN4X.mjs → chunk-3NHAT7D4.mjs} +12 -12
  62. package/dist/chunk-3NHAT7D4.mjs.map +1 -0
  63. package/dist/{chunk-MW4BCIZC.mjs → chunk-4HC6M7FK.mjs} +3 -3
  64. package/dist/chunk-4HC6M7FK.mjs.map +1 -0
  65. package/dist/{chunk-ESRCX5TQ.mjs → chunk-52TN2QSS.mjs} +3 -3
  66. package/dist/{chunk-ESRCX5TQ.mjs.map → chunk-52TN2QSS.mjs.map} +1 -1
  67. package/dist/{chunk-DW2ZTOCV.js → chunk-5A7ERLKK.js} +105 -106
  68. package/dist/chunk-5A7ERLKK.js.map +1 -0
  69. package/dist/{chunk-CNTILN5J.mjs → chunk-5YQ62BKX.mjs} +20 -19
  70. package/dist/chunk-5YQ62BKX.mjs.map +1 -0
  71. package/dist/{chunk-6W5BMXJG.js → chunk-6OWNMJKG.js} +4 -4
  72. package/dist/{chunk-6W5BMXJG.js.map → chunk-6OWNMJKG.js.map} +1 -1
  73. package/dist/{chunk-WSNM4EU5.mjs → chunk-77M5AQG3.mjs} +37 -41
  74. package/dist/chunk-77M5AQG3.mjs.map +1 -0
  75. package/dist/{chunk-DUHZ7VZP.js → chunk-7VRT55ZD.js} +3 -3
  76. package/dist/chunk-7VRT55ZD.js.map +1 -0
  77. package/dist/{chunk-LX4XX6W7.js → chunk-C54W2CMK.js} +16 -16
  78. package/dist/chunk-C54W2CMK.js.map +1 -0
  79. package/dist/{chunk-3WOAPLEG.mjs → chunk-EB4NR623.mjs} +27 -26
  80. package/dist/chunk-EB4NR623.mjs.map +1 -0
  81. package/dist/{chunk-CD77U7LZ.js → chunk-GBPLX42J.js} +9 -9
  82. package/dist/chunk-GBPLX42J.js.map +1 -0
  83. package/dist/{chunk-TFQF2HDO.mjs → chunk-HDEOCX2L.mjs} +12 -12
  84. package/dist/chunk-HDEOCX2L.mjs.map +1 -0
  85. package/dist/{chunk-LFG6FPM5.mjs → chunk-KIP2CERU.mjs} +37 -38
  86. package/dist/chunk-KIP2CERU.mjs.map +1 -0
  87. package/dist/{chunk-6YKMCPQI.mjs → chunk-KZKIH4AS.mjs} +4 -4
  88. package/dist/chunk-KZKIH4AS.mjs.map +1 -0
  89. package/dist/{chunk-6MQUBPKB.mjs → chunk-LJ4CCSSY.mjs} +3 -3
  90. package/dist/{chunk-6MQUBPKB.mjs.map → chunk-LJ4CCSSY.mjs.map} +1 -1
  91. package/dist/{chunk-TOC5FSHP.js → chunk-NJ2SNXBJ.js} +12 -12
  92. package/dist/chunk-NJ2SNXBJ.js.map +1 -0
  93. package/dist/{chunk-OCR5DS4C.mjs → chunk-PE5EAHZK.mjs} +3 -3
  94. package/dist/chunk-PE5EAHZK.mjs.map +1 -0
  95. package/dist/{chunk-TKCYPDWU.js → chunk-Q5EDCKQA.js} +27 -29
  96. package/dist/chunk-Q5EDCKQA.js.map +1 -0
  97. package/dist/{chunk-CLKKZSPZ.js → chunk-RBKGYWME.js} +20 -19
  98. package/dist/chunk-RBKGYWME.js.map +1 -0
  99. package/dist/{chunk-VRTRSEEH.mjs → chunk-RSJSZ7QH.mjs} +11 -11
  100. package/dist/chunk-RSJSZ7QH.mjs.map +1 -0
  101. package/dist/{chunk-E7RGBAYJ.js → chunk-TDCDEBGP.js} +30 -29
  102. package/dist/chunk-TDCDEBGP.js.map +1 -0
  103. package/dist/{chunk-T5OZHYVM.mjs → chunk-TVROG2Q4.mjs} +15 -15
  104. package/dist/chunk-TVROG2Q4.mjs.map +1 -0
  105. package/dist/{chunk-JZXJQMVE.js → chunk-UIFFDRTE.js} +11 -11
  106. package/dist/chunk-UIFFDRTE.js.map +1 -0
  107. package/dist/{chunk-UOFTHYIH.js → chunk-UL6XJGUZ.js} +4 -4
  108. package/dist/chunk-UL6XJGUZ.js.map +1 -0
  109. package/dist/{chunk-A3UP56MS.js → chunk-WA67GZSZ.js} +3 -3
  110. package/dist/chunk-WA67GZSZ.js.map +1 -0
  111. package/dist/{chunk-OLHGZXN3.mjs → chunk-WEEXCPSE.mjs} +5 -5
  112. package/dist/chunk-WEEXCPSE.mjs.map +1 -0
  113. package/dist/{chunk-5GCHAXY5.js → chunk-X3UU7JHT.js} +38 -42
  114. package/dist/chunk-X3UU7JHT.js.map +1 -0
  115. package/dist/{chunk-QU5OT4DF.js → chunk-XJ7ZAGC5.js} +5 -5
  116. package/dist/chunk-XJ7ZAGC5.js.map +1 -0
  117. package/dist/{chunk-GSTLV3MB.mjs → chunk-YOTQG4NP.mjs} +26 -28
  118. package/dist/chunk-YOTQG4NP.mjs.map +1 -0
  119. package/dist/{chunk-QAT2RWAO.mjs → chunk-Z36R3P62.mjs} +7 -7
  120. package/dist/chunk-Z36R3P62.mjs.map +1 -0
  121. package/dist/{chunk-7Z5LLJ3A.js → chunk-ZWQJSZEY.js} +13 -13
  122. package/dist/chunk-ZWQJSZEY.js.map +1 -0
  123. package/dist/config/index.js +6 -6
  124. package/dist/config/index.js.map +1 -1
  125. package/dist/config/index.mjs +6 -6
  126. package/dist/config/index.mjs.map +1 -1
  127. package/dist/config/server/index.js +37 -37
  128. package/dist/config/server/index.js.map +1 -1
  129. package/dist/config/server/index.mjs +37 -37
  130. package/dist/config/server/index.mjs.map +1 -1
  131. package/dist/i18n/index.d.mts +2 -2
  132. package/dist/i18n/index.d.ts +2 -2
  133. package/dist/i18n/index.js +16 -17
  134. package/dist/i18n/index.js.map +1 -1
  135. package/dist/i18n/index.mjs +16 -17
  136. package/dist/i18n/index.mjs.map +1 -1
  137. package/dist/imageCrop/index.js +11 -10
  138. package/dist/imageCrop/index.js.map +1 -1
  139. package/dist/imageCrop/index.mjs +11 -10
  140. package/dist/imageCrop/index.mjs.map +1 -1
  141. package/dist/index.js +221 -246
  142. package/dist/index.js.map +1 -1
  143. package/dist/index.mjs +79 -104
  144. package/dist/index.mjs.map +1 -1
  145. package/dist/logger/index.js +6 -6
  146. package/dist/logger/index.mjs +1 -1
  147. package/dist/mmd/admin/index.js +11 -10
  148. package/dist/mmd/admin/index.js.map +1 -1
  149. package/dist/mmd/admin/index.mjs +11 -10
  150. package/dist/mmd/admin/index.mjs.map +1 -1
  151. package/dist/mmd/index.js +223 -241
  152. package/dist/mmd/index.js.map +1 -1
  153. package/dist/mmd/index.mjs +220 -238
  154. package/dist/mmd/index.mjs.map +1 -1
  155. package/dist/mmd/server/index.js +6 -6
  156. package/dist/mmd/server/index.js.map +1 -1
  157. package/dist/mmd/server/index.mjs +6 -6
  158. package/dist/mmd/server/index.mjs.map +1 -1
  159. package/dist/music/index.js +16 -16
  160. package/dist/music/index.mjs +2 -2
  161. package/dist/music/server/index.js +8 -8
  162. package/dist/music/server/index.mjs +1 -1
  163. package/dist/request/index.js +2 -2
  164. package/dist/request/index.js.map +1 -1
  165. package/dist/request/index.mjs +2 -2
  166. package/dist/request/index.mjs.map +1 -1
  167. package/dist/storage/index.js +11 -11
  168. package/dist/storage/index.mjs +2 -2
  169. package/dist/testYourself/admin/index.js +3 -3
  170. package/dist/testYourself/admin/index.mjs +1 -1
  171. package/dist/testYourself/index.js +22 -22
  172. package/dist/testYourself/index.js.map +1 -1
  173. package/dist/testYourself/index.mjs +14 -14
  174. package/dist/testYourself/index.mjs.map +1 -1
  175. package/dist/testYourself/server/index.js +4 -4
  176. package/dist/testYourself/server/index.mjs +1 -1
  177. package/dist/universalExport/index.d.mts +3 -3
  178. package/dist/universalExport/index.d.ts +3 -3
  179. package/dist/universalExport/index.js +48 -47
  180. package/dist/universalExport/index.js.map +1 -1
  181. package/dist/universalExport/index.mjs +48 -47
  182. package/dist/universalExport/index.mjs.map +1 -1
  183. package/dist/universalExport/server/index.js +29 -29
  184. package/dist/universalExport/server/index.js.map +1 -1
  185. package/dist/universalExport/server/index.mjs +28 -28
  186. package/dist/universalExport/server/index.mjs.map +1 -1
  187. package/dist/universalFile/index.d.mts +3 -3
  188. package/dist/universalFile/index.d.ts +3 -3
  189. package/dist/universalFile/index.js +73 -72
  190. package/dist/universalFile/index.js.map +1 -1
  191. package/dist/universalFile/index.mjs +73 -72
  192. package/dist/universalFile/index.mjs.map +1 -1
  193. package/dist/universalFile/server/index.js +258 -260
  194. package/dist/universalFile/server/index.js.map +1 -1
  195. package/dist/universalFile/server/index.mjs +244 -246
  196. package/dist/universalFile/server/index.mjs.map +1 -1
  197. package/dist/utils/index.js +11 -11
  198. package/dist/utils/index.mjs +2 -2
  199. package/package.json +1 -1
  200. package/dist/AliyunOSSProvider-I7I5YGLB.mjs +0 -6
  201. package/dist/AliyunOSSProvider-L7JWMKS4.js +0 -15
  202. package/dist/ConfigService-7MEZXKJ5.js +0 -21
  203. package/dist/ConfigService-BV57YYFW.mjs +0 -4
  204. package/dist/LocalStorageProvider-FVLLHBHO.mjs +0 -6
  205. package/dist/LocalStorageProvider-NBNHHWLY.js +0 -15
  206. package/dist/PMXParser-L6IWHL4I.mjs +0 -4
  207. package/dist/PMXParser-YBS3B6HM.js +0 -13
  208. package/dist/chunk-3BGPZN4X.mjs.map +0 -1
  209. package/dist/chunk-3WOAPLEG.mjs.map +0 -1
  210. package/dist/chunk-5GCHAXY5.js.map +0 -1
  211. package/dist/chunk-6PRFP5EG.js.map +0 -1
  212. package/dist/chunk-6YKMCPQI.mjs.map +0 -1
  213. package/dist/chunk-7Z5LLJ3A.js.map +0 -1
  214. package/dist/chunk-A3UP56MS.js.map +0 -1
  215. package/dist/chunk-CD77U7LZ.js.map +0 -1
  216. package/dist/chunk-CLKKZSPZ.js.map +0 -1
  217. package/dist/chunk-CNTILN5J.mjs.map +0 -1
  218. package/dist/chunk-DUHZ7VZP.js.map +0 -1
  219. package/dist/chunk-DW2ZTOCV.js.map +0 -1
  220. package/dist/chunk-E7RGBAYJ.js.map +0 -1
  221. package/dist/chunk-GSTLV3MB.mjs.map +0 -1
  222. package/dist/chunk-JZXJQMVE.js.map +0 -1
  223. package/dist/chunk-KQGP6BTS.mjs.map +0 -1
  224. package/dist/chunk-LFG6FPM5.mjs.map +0 -1
  225. package/dist/chunk-LX4XX6W7.js.map +0 -1
  226. package/dist/chunk-MW4BCIZC.mjs.map +0 -1
  227. package/dist/chunk-OCR5DS4C.mjs.map +0 -1
  228. package/dist/chunk-OLHGZXN3.mjs.map +0 -1
  229. package/dist/chunk-QAT2RWAO.mjs.map +0 -1
  230. package/dist/chunk-QU5OT4DF.js.map +0 -1
  231. package/dist/chunk-T5OZHYVM.mjs.map +0 -1
  232. package/dist/chunk-TFQF2HDO.mjs.map +0 -1
  233. package/dist/chunk-TKCYPDWU.js.map +0 -1
  234. package/dist/chunk-TOC5FSHP.js.map +0 -1
  235. package/dist/chunk-UOFTHYIH.js.map +0 -1
  236. package/dist/chunk-VRTRSEEH.mjs.map +0 -1
  237. package/dist/chunk-WSNM4EU5.mjs.map +0 -1
@@ -1,6 +1,7 @@
1
- import { WebStorageAdapter } from '../chunk-OLHGZXN3.mjs';
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 = `${Date.now()}_${Math.random()}`;
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(`Debug mode changed: ${e.detail.enabled ? "enabled" : "disabled"}`);
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 = `temp_${Date.now()}_${Math.random()}`;
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 `${Date.now()}_${Math.random().toString(36).substring(2, 15)}`;
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 `session_${Date.now()}_${Math.random().toString(36).substring(2, 15)}`;
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(`[Analytics] ${message}`, data ?? "");
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 ? `${prefix}_${timestamp}_${random}` : `${timestamp}_${random}`;
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
- `${finalEventName}_error`,
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: `HTTP ${response.status}`,
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 = `web_${Date.now()}_${Math.random().toString(36).substring(2, 15)}`;
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 `web_${Date.now()}_${Math.random().toString(36).substring(2, 15)}`;
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: `HTTP ${response.status}`,
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 `mobile_${timestamp}_${random}`;
1479
+ return "mobile_" + timestamp + "_" + random;
1479
1480
  }
1480
1481
  getDefaultDeviceInfo() {
1481
1482
  return {
1482
- device_id: `mobile_${Date.now()}`,
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: `HTTP ${response.statusCode}`,
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 `miniapp_${timestamp}_${random}`;
1661
+ return "miniapp_" + timestamp + "_" + random;
1661
1662
  }
1662
1663
  getDefaultDeviceInfo() {
1663
1664
  return {
1664
- device_id: `miniapp_${Date.now()}`,
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: `HTTP ${response.status}`,
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 = `desktop_${Date.now()}_${Math.random().toString(36).substring(2, 15)}`;
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 `desktop_${Date.now()}_${Math.random().toString(36).substring(2, 15)}`;
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: `bg-white rounded-lg shadow-sm p-6 border border-gray-200 hover:shadow-md transition-shadow ${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: `text-sm font-medium ${trend.isPositive ? "text-green-600" : "text-red-600"}`
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: `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
+ 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: `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
+ 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 `${minutes}\u5206\u949F\u524D`;
1901
- if (hours < 24) return `${hours}\u5C0F\u65F6\u524D`;
1902
- if (days < 7) return `${days}\u5929\u524D`;
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: `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
+ 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: `inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${getEventTypeColor(
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
- )} w-fit mb-1`
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: `inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${getPlatformColor(
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: `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
+ 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: `w-2 h-2 rounded-full ${Object.keys(filters).length > 0 ? "bg-green-500" : "bg-gray-300"}`
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" : `${Object.keys(filters).length} \u4E2A\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: `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
+ 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: `h-2 rounded-full ${colors[index % colors.length]}`,
2119
- style: { width: `${percentage}%` }
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: `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
+ 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: `${percentage}%`, minWidth: "40px" }
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(`${apiBaseUrl}/stats?${params}`);
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(`${apiBaseUrl}/query?${params}`);
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: `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
+ 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",