@vlian/framework 1.2.25 → 1.2.38

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 (319) hide show
  1. package/dist/analytics.umd.js +208 -2395
  2. package/dist/analytics.umd.js.map +1 -1
  3. package/dist/core/Test.cjs +2 -2
  4. package/dist/core/Test.cjs.map +1 -1
  5. package/dist/core/Test.js +1 -1
  6. package/dist/core/Test.js.map +1 -1
  7. package/dist/core/config/ConfigLoader.cjs +7 -7
  8. package/dist/core/config/ConfigLoader.cjs.map +1 -1
  9. package/dist/core/config/ConfigLoader.js +1 -1
  10. package/dist/core/config/ConfigLoader.js.map +1 -1
  11. package/dist/core/error/ErrorBoundary.cjs +6 -6
  12. package/dist/core/error/ErrorBoundary.cjs.map +1 -1
  13. package/dist/core/error/ErrorBoundary.d.ts +1 -1
  14. package/dist/core/error/ErrorBoundary.js +2 -2
  15. package/dist/core/error/ErrorBoundary.js.map +1 -1
  16. package/dist/core/error/ErrorHandler.cjs +19 -19
  17. package/dist/core/error/ErrorHandler.cjs.map +1 -1
  18. package/dist/core/error/ErrorHandler.d.ts +2 -2
  19. package/dist/core/error/ErrorHandler.js +2 -2
  20. package/dist/core/error/ErrorHandler.js.map +1 -1
  21. package/dist/core/event/AppEventBus.cjs +5 -5
  22. package/dist/core/event/AppEventBus.cjs.map +1 -1
  23. package/dist/core/event/AppEventBus.js +1 -1
  24. package/dist/core/event/AppEventBus.js.map +1 -1
  25. package/dist/core/initialization/InitializationErrorThrower.cjs.map +1 -1
  26. package/dist/core/initialization/InitializationErrorThrower.js.map +1 -1
  27. package/dist/core/initialization/initialization.cjs +3 -3
  28. package/dist/core/initialization/initialization.cjs.map +1 -1
  29. package/dist/core/initialization/initialization.d.ts +1 -1
  30. package/dist/core/initialization/initialization.js +1 -1
  31. package/dist/core/initialization/initialization.js.map +1 -1
  32. package/dist/core/initialization/initializationErrorState.cjs +2 -2
  33. package/dist/core/initialization/initializationErrorState.cjs.map +1 -1
  34. package/dist/core/initialization/initializationErrorState.d.ts +1 -1
  35. package/dist/core/initialization/initializationErrorState.js +1 -1
  36. package/dist/core/initialization/initializationErrorState.js.map +1 -1
  37. package/dist/core/kernel/defaultAdapters.cjs +14 -13
  38. package/dist/core/kernel/defaultAdapters.cjs.map +1 -1
  39. package/dist/core/kernel/defaultAdapters.js +2 -1
  40. package/dist/core/kernel/defaultAdapters.js.map +1 -1
  41. package/dist/core/kernel/types.d.ts +1 -1
  42. package/dist/core/kernel/types.js.map +1 -1
  43. package/dist/core/router/RouterManager.cjs +9 -9
  44. package/dist/core/router/RouterManager.cjs.map +1 -1
  45. package/dist/core/router/RouterManager.js +1 -1
  46. package/dist/core/router/RouterManager.js.map +1 -1
  47. package/dist/core/router/adapter/AdapterManager.cjs +10 -10
  48. package/dist/core/router/adapter/AdapterManager.cjs.map +1 -1
  49. package/dist/core/router/adapter/AdapterManager.js +1 -1
  50. package/dist/core/router/adapter/AdapterManager.js.map +1 -1
  51. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs +4 -4
  52. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs.map +1 -1
  53. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js +1 -1
  54. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js.map +1 -1
  55. package/dist/core/router/dynamic/DynamicRouteManager.cjs +8 -8
  56. package/dist/core/router/dynamic/DynamicRouteManager.cjs.map +1 -1
  57. package/dist/core/router/dynamic/DynamicRouteManager.js +1 -1
  58. package/dist/core/router/dynamic/DynamicRouteManager.js.map +1 -1
  59. package/dist/core/router/errors/RouterError.cjs +4 -4
  60. package/dist/core/router/errors/RouterError.cjs.map +1 -1
  61. package/dist/core/router/errors/RouterError.d.ts +1 -1
  62. package/dist/core/router/errors/RouterError.js +1 -1
  63. package/dist/core/router/errors/RouterError.js.map +1 -1
  64. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs +8 -8
  65. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs.map +1 -1
  66. package/dist/core/router/lifecycle/RouterLifecycleManager.js +1 -1
  67. package/dist/core/router/lifecycle/RouterLifecycleManager.js.map +1 -1
  68. package/dist/core/router/middleware/RouterMiddlewareManager.cjs +11 -11
  69. package/dist/core/router/middleware/RouterMiddlewareManager.cjs.map +1 -1
  70. package/dist/core/router/middleware/RouterMiddlewareManager.js +1 -1
  71. package/dist/core/router/middleware/RouterMiddlewareManager.js.map +1 -1
  72. package/dist/core/router/middleware/auth.cjs +4 -4
  73. package/dist/core/router/middleware/auth.cjs.map +1 -1
  74. package/dist/core/router/middleware/auth.js +1 -1
  75. package/dist/core/router/middleware/auth.js.map +1 -1
  76. package/dist/core/router/monitoring/RouterMonitoring.cjs +2 -2
  77. package/dist/core/router/monitoring/RouterMonitoring.cjs.map +1 -1
  78. package/dist/core/router/monitoring/RouterMonitoring.js +2 -2
  79. package/dist/core/router/monitoring/RouterMonitoring.js.map +1 -1
  80. package/dist/core/router/navigation/RouterNavigation.cjs +7 -7
  81. package/dist/core/router/navigation/RouterNavigation.cjs.map +1 -1
  82. package/dist/core/router/navigation/RouterNavigation.js +1 -1
  83. package/dist/core/router/navigation/RouterNavigation.js.map +1 -1
  84. package/dist/core/router/performance/RouteCache.cjs +7 -7
  85. package/dist/core/router/performance/RouteCache.cjs.map +1 -1
  86. package/dist/core/router/performance/RouteCache.js +1 -1
  87. package/dist/core/router/performance/RouteCache.js.map +1 -1
  88. package/dist/core/router/performance/RoutePreloader.cjs +6 -6
  89. package/dist/core/router/performance/RoutePreloader.cjs.map +1 -1
  90. package/dist/core/router/performance/RoutePreloader.js +1 -1
  91. package/dist/core/router/performance/RoutePreloader.js.map +1 -1
  92. package/dist/core/router/plugin/RouterPluginManager.cjs +8 -8
  93. package/dist/core/router/plugin/RouterPluginManager.cjs.map +1 -1
  94. package/dist/core/router/plugin/RouterPluginManager.js +1 -1
  95. package/dist/core/router/plugin/RouterPluginManager.js.map +1 -1
  96. package/dist/core/router/utils/adapters/react-router/transform.cjs +6 -2
  97. package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
  98. package/dist/core/router/utils/adapters/react-router/transform.js +5 -1
  99. package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
  100. package/dist/core/router/utils/transform.cjs +13 -12
  101. package/dist/core/router/utils/transform.cjs.map +1 -1
  102. package/dist/core/router/utils/transform.js +2 -1
  103. package/dist/core/router/utils/transform.js.map +1 -1
  104. package/dist/core/router/validation/RouterConfigValidator.cjs +2 -2
  105. package/dist/core/router/validation/RouterConfigValidator.cjs.map +1 -1
  106. package/dist/core/router/validation/RouterConfigValidator.js +1 -1
  107. package/dist/core/router/validation/RouterConfigValidator.js.map +1 -1
  108. package/dist/core/router/version/RouteVersionManager.cjs +6 -6
  109. package/dist/core/router/version/RouteVersionManager.cjs.map +1 -1
  110. package/dist/core/router/version/RouteVersionManager.js +1 -1
  111. package/dist/core/router/version/RouteVersionManager.js.map +1 -1
  112. package/dist/core/splash/SplashScreen.cjs +4 -4
  113. package/dist/core/splash/SplashScreen.cjs.map +1 -1
  114. package/dist/core/splash/SplashScreen.js +1 -1
  115. package/dist/core/splash/SplashScreen.js.map +1 -1
  116. package/dist/core/startup/initializeServices.cjs +15 -15
  117. package/dist/core/startup/initializeServices.cjs.map +1 -1
  118. package/dist/core/startup/initializeServices.d.ts +2 -2
  119. package/dist/core/startup/initializeServices.js +3 -3
  120. package/dist/core/startup/initializeServices.js.map +1 -1
  121. package/dist/core/startup/performanceTracker.cjs.map +1 -1
  122. package/dist/core/startup/performanceTracker.d.ts +1 -1
  123. package/dist/core/startup/performanceTracker.js.map +1 -1
  124. package/dist/core/startup/renderApp.cjs +3 -3
  125. package/dist/core/startup/renderApp.cjs.map +1 -1
  126. package/dist/core/startup/renderApp.d.ts +1 -1
  127. package/dist/core/startup/renderApp.js +2 -2
  128. package/dist/core/startup/renderApp.js.map +1 -1
  129. package/dist/core/startup/startApp.cjs +24 -24
  130. package/dist/core/startup/startApp.cjs.map +1 -1
  131. package/dist/core/startup/startApp.js +5 -5
  132. package/dist/core/startup/startApp.js.map +1 -1
  133. package/dist/core/types.d.ts +3 -3
  134. package/dist/core/types.js.map +1 -1
  135. package/dist/index.cjs +15 -2
  136. package/dist/index.cjs.map +1 -1
  137. package/dist/index.d.ts +6 -4
  138. package/dist/index.js +5 -4
  139. package/dist/index.js.map +1 -1
  140. package/dist/index.umd.js +2150 -23125
  141. package/dist/index.umd.js.map +1 -1
  142. package/dist/kernel/constants.cjs +67 -0
  143. package/dist/kernel/constants.cjs.map +1 -0
  144. package/dist/kernel/constants.d.ts +5 -0
  145. package/dist/kernel/constants.js +43 -0
  146. package/dist/kernel/constants.js.map +1 -0
  147. package/dist/kernel/index.cjs +40 -0
  148. package/dist/kernel/index.cjs.map +1 -0
  149. package/dist/kernel/index.d.ts +3 -0
  150. package/dist/kernel/index.js +4 -0
  151. package/dist/kernel/index.js.map +1 -0
  152. package/dist/kernel/kernel.cjs +296 -0
  153. package/dist/kernel/kernel.cjs.map +1 -0
  154. package/dist/kernel/kernel.d.ts +40 -0
  155. package/dist/kernel/kernel.js +272 -0
  156. package/dist/kernel/kernel.js.map +1 -0
  157. package/dist/kernel/manager/cacheManager.cjs +46 -0
  158. package/dist/kernel/manager/cacheManager.cjs.map +1 -0
  159. package/dist/kernel/manager/cacheManager.d.ts +6 -0
  160. package/dist/kernel/manager/cacheManager.js +36 -0
  161. package/dist/kernel/manager/cacheManager.js.map +1 -0
  162. package/dist/kernel/manager/i18nManager.cjs +68 -0
  163. package/dist/kernel/manager/i18nManager.cjs.map +1 -0
  164. package/dist/kernel/manager/i18nManager.d.ts +8 -0
  165. package/dist/kernel/manager/i18nManager.js +58 -0
  166. package/dist/kernel/manager/i18nManager.js.map +1 -0
  167. package/dist/kernel/manager/index.cjs +30 -0
  168. package/dist/kernel/manager/index.cjs.map +1 -0
  169. package/dist/kernel/manager/index.d.ts +4 -0
  170. package/dist/kernel/manager/index.js +6 -0
  171. package/dist/kernel/manager/index.js.map +1 -0
  172. package/dist/kernel/manager/loggerManager.cjs +70 -0
  173. package/dist/kernel/manager/loggerManager.cjs.map +1 -0
  174. package/dist/kernel/manager/loggerManager.d.ts +14 -0
  175. package/dist/kernel/manager/loggerManager.js +60 -0
  176. package/dist/kernel/manager/loggerManager.js.map +1 -0
  177. package/dist/kernel/manager/persistence.cjs +93 -0
  178. package/dist/kernel/manager/persistence.cjs.map +1 -0
  179. package/dist/kernel/manager/persistence.d.ts +3 -0
  180. package/dist/kernel/manager/persistence.js +75 -0
  181. package/dist/kernel/manager/persistence.js.map +1 -0
  182. package/dist/kernel/manager/themeManager.cjs +85 -0
  183. package/dist/kernel/manager/themeManager.cjs.map +1 -0
  184. package/dist/kernel/manager/themeManager.d.ts +9 -0
  185. package/dist/kernel/manager/themeManager.js +75 -0
  186. package/dist/kernel/manager/themeManager.js.map +1 -0
  187. package/dist/kernel/types.cjs +6 -0
  188. package/dist/kernel/types.cjs.map +1 -0
  189. package/dist/kernel/types.d.ts +72 -0
  190. package/dist/kernel/types.js +3 -0
  191. package/dist/kernel/types.js.map +1 -0
  192. package/dist/library/storage/encryption.cjs +12 -13
  193. package/dist/library/storage/encryption.cjs.map +1 -1
  194. package/dist/library/storage/encryption.js +1 -2
  195. package/dist/library/storage/encryption.js.map +1 -1
  196. package/dist/request/adapter.d.ts +1 -0
  197. package/dist/request/core.d.ts +1 -0
  198. package/dist/request/index.d.ts +1 -42
  199. package/dist/request/plugin/csrfPlugin.d.ts +2 -2
  200. package/dist/request/plugin/queue.d.ts +2 -2
  201. package/dist/request/plugin.d.ts +1 -0
  202. package/dist/request/runtime.d.ts +1 -0
  203. package/dist/request/types.d.ts +1 -394
  204. package/dist/request/utils.d.ts +1 -0
  205. package/dist/state.umd.js +1 -1
  206. package/dist/utils/csrf.cjs +13 -152
  207. package/dist/utils/csrf.cjs.map +1 -1
  208. package/dist/utils/csrf.d.ts +1 -72
  209. package/dist/utils/csrf.js +1 -142
  210. package/dist/utils/csrf.js.map +1 -1
  211. package/dist/utils/errors/ErrorCodes.cjs +6 -76
  212. package/dist/utils/errors/ErrorCodes.cjs.map +1 -1
  213. package/dist/utils/errors/ErrorCodes.d.ts +1 -45
  214. package/dist/utils/errors/ErrorCodes.js +1 -84
  215. package/dist/utils/errors/ErrorCodes.js.map +1 -1
  216. package/dist/utils/errors.cjs +53 -326
  217. package/dist/utils/errors.cjs.map +1 -1
  218. package/dist/utils/errors.d.ts +19 -172
  219. package/dist/utils/errors.js +16 -352
  220. package/dist/utils/errors.js.map +1 -1
  221. package/dist/utils/logger.cjs +5 -374
  222. package/dist/utils/logger.cjs.map +1 -1
  223. package/dist/utils/logger.d.ts +2 -189
  224. package/dist/utils/logger.js +1 -379
  225. package/dist/utils/logger.js.map +1 -1
  226. package/dist/utils/logger.types.cjs +3 -12
  227. package/dist/utils/logger.types.cjs.map +1 -1
  228. package/dist/utils/logger.types.d.ts +2 -57
  229. package/dist/utils/logger.types.js +1 -10
  230. package/dist/utils/logger.types.js.map +1 -1
  231. package/dist/utils/monitoring.cjs +11 -302
  232. package/dist/utils/monitoring.cjs.map +1 -1
  233. package/dist/utils/monitoring.d.ts +1 -163
  234. package/dist/utils/monitoring.js +1 -294
  235. package/dist/utils/monitoring.js.map +1 -1
  236. package/dist/utils/performance.cjs +5 -352
  237. package/dist/utils/performance.cjs.map +1 -1
  238. package/dist/utils/performance.d.ts +2 -246
  239. package/dist/utils/performance.js +1 -354
  240. package/dist/utils/performance.js.map +1 -1
  241. package/dist/utils/resourceLoader.cjs +5 -303
  242. package/dist/utils/resourceLoader.cjs.map +1 -1
  243. package/dist/utils/resourceLoader.d.ts +2 -130
  244. package/dist/utils/resourceLoader.js +1 -305
  245. package/dist/utils/resourceLoader.js.map +1 -1
  246. package/dist/utils/runtimeSecurity.cjs +2 -140
  247. package/dist/utils/runtimeSecurity.cjs.map +1 -1
  248. package/dist/utils/runtimeSecurity.d.ts +2 -104
  249. package/dist/utils/runtimeSecurity.js +1 -141
  250. package/dist/utils/runtimeSecurity.js.map +1 -1
  251. package/dist/utils/security.cjs +3 -314
  252. package/dist/utils/security.cjs.map +1 -1
  253. package/dist/utils/security.d.ts +2 -80
  254. package/dist/utils/security.js +1 -311
  255. package/dist/utils/security.js.map +1 -1
  256. package/dist/utils/traceId.cjs +10 -111
  257. package/dist/utils/traceId.cjs.map +1 -1
  258. package/dist/utils/traceId.d.ts +1 -63
  259. package/dist/utils/traceId.js +1 -116
  260. package/dist/utils/traceId.js.map +1 -1
  261. package/dist/utils/validation.cjs +3 -173
  262. package/dist/utils/validation.cjs.map +1 -1
  263. package/dist/utils/validation.d.ts +2 -110
  264. package/dist/utils/validation.js +1 -175
  265. package/dist/utils/validation.js.map +1 -1
  266. package/package.json +15 -24
  267. package/dist/lazy/index.cjs +0 -104
  268. package/dist/lazy/index.cjs.map +0 -1
  269. package/dist/lazy/index.d.ts +0 -19
  270. package/dist/lazy/index.js +0 -24
  271. package/dist/lazy/index.js.map +0 -1
  272. package/dist/request/adapter/RequestAdapter.cjs +0 -78
  273. package/dist/request/adapter/RequestAdapter.cjs.map +0 -1
  274. package/dist/request/adapter/axiosAdapter.cjs +0 -164
  275. package/dist/request/adapter/axiosAdapter.cjs.map +0 -1
  276. package/dist/request/adapter/fetchAdapter.cjs +0 -134
  277. package/dist/request/adapter/fetchAdapter.cjs.map +0 -1
  278. package/dist/request/adapter/index.cjs +0 -80
  279. package/dist/request/adapter/index.cjs.map +0 -1
  280. package/dist/request/adapter/kyAdapter.cjs +0 -191
  281. package/dist/request/adapter/kyAdapter.cjs.map +0 -1
  282. package/dist/request/adapter/undiciAdapter.cjs +0 -213
  283. package/dist/request/adapter/undiciAdapter.cjs.map +0 -1
  284. package/dist/request/core/RequestClient.cjs +0 -558
  285. package/dist/request/core/RequestClient.cjs.map +0 -1
  286. package/dist/request/core/index.cjs +0 -15
  287. package/dist/request/core/index.cjs.map +0 -1
  288. package/dist/request/index.cjs +0 -149
  289. package/dist/request/index.cjs.map +0 -1
  290. package/dist/request/plugin/RequestPlugin.cjs +0 -218
  291. package/dist/request/plugin/RequestPlugin.cjs.map +0 -1
  292. package/dist/request/plugin/cache.cjs +0 -269
  293. package/dist/request/plugin/cache.cjs.map +0 -1
  294. package/dist/request/plugin/csrfPlugin.cjs +0 -40
  295. package/dist/request/plugin/csrfPlugin.cjs.map +0 -1
  296. package/dist/request/plugin/index.cjs +0 -53
  297. package/dist/request/plugin/index.cjs.map +0 -1
  298. package/dist/request/plugin/monitoring.cjs +0 -216
  299. package/dist/request/plugin/monitoring.cjs.map +0 -1
  300. package/dist/request/plugin/queue.cjs +0 -140
  301. package/dist/request/plugin/queue.cjs.map +0 -1
  302. package/dist/request/plugin/retry.cjs +0 -98
  303. package/dist/request/plugin/retry.cjs.map +0 -1
  304. package/dist/request/plugin/validation.cjs +0 -121
  305. package/dist/request/plugin/validation.cjs.map +0 -1
  306. package/dist/request/runtime/RequestContext.cjs +0 -77
  307. package/dist/request/runtime/RequestContext.cjs.map +0 -1
  308. package/dist/request/runtime/index.cjs +0 -32
  309. package/dist/request/runtime/index.cjs.map +0 -1
  310. package/dist/request/types.cjs +0 -112
  311. package/dist/request/types.cjs.map +0 -1
  312. package/dist/request/utils/RequestQueueManager.cjs +0 -168
  313. package/dist/request/utils/RequestQueueManager.cjs.map +0 -1
  314. package/dist/request/utils/dependencyCheck.cjs +0 -237
  315. package/dist/request/utils/dependencyCheck.cjs.map +0 -1
  316. package/dist/request/utils/index.cjs +0 -30
  317. package/dist/request/utils/index.cjs.map +0 -1
  318. package/dist/request.umd.js +0 -5392
  319. package/dist/request.umd.js.map +0 -1
@@ -2,310 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get MonitoringService () {
13
- return MonitoringService;
14
- },
15
- get getMonitoring () {
16
- return getMonitoring;
17
- },
18
- get initMonitoring () {
19
- return initMonitoring;
20
- }
21
- });
22
- const _logger = require("./logger");
23
- const _errors = require("./errors");
24
- const _performance = require("./performance");
25
- function _define_property(obj, key, value) {
26
- if (key in obj) {
27
- Object.defineProperty(obj, key, {
28
- value: value,
29
- enumerable: true,
30
- configurable: true,
31
- writable: true
32
- });
33
- } else {
34
- obj[key] = value;
35
- }
36
- return obj;
37
- }
38
- let MonitoringService = class MonitoringService {
39
- /**
40
- * 初始化错误捕获
41
- */ initErrorCapture() {
42
- // 捕获未处理的 Promise 错误
43
- this.unhandledRejectionHandler = (event)=>{
44
- const error = _errors.errorUtils.normalizeError(event.reason);
45
- this.captureError(error, {
46
- type: 'unhandledrejection',
47
- reason: event.reason
48
- });
49
- };
50
- window.addEventListener('unhandledrejection', this.unhandledRejectionHandler);
51
- // 捕获全局错误
52
- this.errorHandler = (event)=>{
53
- const error = _errors.errorUtils.normalizeError(event.error || new Error(event.message));
54
- this.captureError(error, {
55
- type: 'global',
56
- filename: event.filename,
57
- lineno: event.lineno,
58
- colno: event.colno
5
+ _export_star(require("@vlian/monitoring"), exports);
6
+ function _export_star(from, to) {
7
+ Object.keys(from).forEach(function(k) {
8
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
9
+ Object.defineProperty(to, k, {
10
+ enumerable: true,
11
+ get: function() {
12
+ return from[k];
13
+ }
59
14
  });
60
- };
61
- window.addEventListener('error', this.errorHandler);
62
- }
63
- /**
64
- * 清理资源
65
- */ destroy() {
66
- // 移除事件监听器
67
- if (typeof window !== 'undefined') {
68
- if (this.unhandledRejectionHandler) {
69
- window.removeEventListener('unhandledrejection', this.unhandledRejectionHandler);
70
- }
71
- if (this.errorHandler) {
72
- window.removeEventListener('error', this.errorHandler);
73
- }
74
- }
75
- // 停止聚合定时器
76
- if (this.aggregationTimer) {
77
- clearInterval(this.aggregationTimer);
78
- this.aggregationTimer = undefined;
79
- }
80
- // 清空错误处理器
81
- this.errorHandlers = [];
82
- this.errorRecords = [];
83
- this.errorAggregations.clear();
84
- }
85
- /**
86
- * 启动错误聚合定时器
87
- */ startAggregationTimer() {
88
- this.aggregationTimer = setInterval(()=>{
89
- this.aggregateErrors();
90
- }, this.errorConfig.aggregationWindow);
91
- }
92
- /**
93
- * 聚合错误
94
- */ aggregateErrors() {
95
- const now = Date.now();
96
- const windowStart = now - this.errorConfig.aggregationWindow;
97
- // 过滤窗口内的错误
98
- const windowErrors = this.errorRecords.filter((record)=>record.timestamp >= windowStart);
99
- // 按错误代码聚合
100
- const aggregations = new Map();
101
- for (const record of windowErrors){
102
- const error = record.error;
103
- const key = `${error.code}_${error.type}`;
104
- if (!aggregations.has(key)) {
105
- aggregations.set(key, {
106
- code: error.code,
107
- message: error.message,
108
- type: error.type,
109
- count: 0,
110
- firstOccurrence: record.timestamp,
111
- lastOccurrence: record.timestamp,
112
- stack: error.originalError?.stack,
113
- context: error.context
114
- });
115
- }
116
- const agg = aggregations.get(key);
117
- agg.count++;
118
- agg.lastOccurrence = Math.max(agg.lastOccurrence, record.timestamp);
119
- }
120
- // 更新聚合结果
121
- this.errorAggregations = aggregations;
122
- }
123
- /**
124
- * 捕获错误
125
- */ captureError(error, context) {
126
- // 采样检查
127
- if (Math.random() > this.errorConfig.sampleRate) {
128
- return;
129
- }
130
- const normalizedError = _errors.errorUtils.normalizeError(error);
131
- // 创建带上下文的错误对象(使用 Object.assign 来更新只读属性)
132
- const errorWithContext = Object.assign(normalizedError, {
133
- context: {
134
- ...normalizedError.context,
135
- ...context,
136
- timestamp: new Date().toISOString(),
137
- userAgent: typeof navigator !== 'undefined' ? navigator.userAgent : undefined,
138
- url: typeof window !== 'undefined' ? window.location.href : undefined
139
- }
140
- });
141
- // 记录错误
142
- const timestamp = Date.now();
143
- this.errorRecords.push({
144
- error: errorWithContext,
145
- timestamp
146
- });
147
- // 限制错误记录数量
148
- if (this.errorRecords.length > this.errorConfig.maxErrorRecords) {
149
- this.errorRecords.shift();
150
- }
151
- // 记录日志
152
- if (this.errorConfig.showInConsole) {
153
- _logger.logger.error('监控服务捕获到错误:', errorWithContext.toJSON());
154
- }
155
- // 调用错误回调
156
- this.errorConfig.onError(errorWithContext, context);
157
- // 调用注册的错误处理器
158
- this.errorHandlers.forEach((handler)=>{
159
- try {
160
- handler(errorWithContext);
161
- } catch (e) {
162
- // 忽略处理器错误
163
- }
164
- });
165
- }
166
- /**
167
- * 获取错误聚合信息
168
- *
169
- * @param code - 错误代码(可选,如果提供则只返回该错误的聚合信息)
170
- * @returns 错误聚合信息
171
- */ getErrorAggregations(code) {
172
- if (code) {
173
- const aggregation = this.errorAggregations.get(code);
174
- return aggregation ? [
175
- aggregation
176
- ] : [];
177
15
  }
178
- return Array.from(this.errorAggregations.values());
179
- }
180
- /**
181
- * 获取错误记录
182
- *
183
- * @param limit - 限制返回的记录数
184
- * @param since - 只返回此时间之后的错误
185
- * @returns 错误记录
186
- */ getErrorRecords(limit, since) {
187
- let records = this.errorRecords;
188
- if (since) {
189
- records = records.filter((record)=>record.timestamp >= since);
190
- }
191
- if (limit) {
192
- records = records.slice(-limit);
193
- }
194
- return [
195
- ...records
196
- ];
197
- }
198
- /**
199
- * 清空错误记录
200
- */ clearErrorRecords() {
201
- this.errorRecords = [];
202
- this.errorAggregations.clear();
203
- }
204
- /**
205
- * 注册错误处理器
206
- */ onError(handler) {
207
- this.errorHandlers.push(handler);
208
- return ()=>{
209
- const index = this.errorHandlers.indexOf(handler);
210
- if (index > -1) {
211
- this.errorHandlers.splice(index, 1);
212
- }
213
- };
214
- }
215
- /**
216
- * 上报性能指标
217
- */ reportPerformance(metrics, context) {
218
- // 将传入的指标转换为带单位的格式
219
- const metricsWithUnits = (0, _performance.convertMetricsToWithUnits)(metrics);
220
- // 合并到现有指标中
221
- this.performanceMetrics = {
222
- ...this.performanceMetrics,
223
- ...metricsWithUnits
224
- };
225
- // 记录性能指标(带上下文)
226
- if (context) {
227
- _logger.logger.debug('性能指标更新:', {
228
- metrics: metricsWithUnits,
229
- context
230
- });
231
- } else {
232
- _logger.logger.debug('性能指标更新:', metricsWithUnits);
233
- }
234
- }
235
- /**
236
- * 批量上报性能指标
237
- */ reportPerformanceBatch(metricsArray) {
238
- for (const { metrics, context } of metricsArray){
239
- this.reportPerformance(metrics, context);
240
- }
241
- }
242
- /**
243
- * 获取性能指标(带单位)
244
- */ getPerformanceMetrics() {
245
- return {
246
- ...this.performanceMetrics
247
- };
248
- }
249
- /**
250
- * 获取性能指标(原始数值格式,向后兼容)
251
- */ getPerformanceMetricsRaw() {
252
- const result = {};
253
- for (const [key, metricValue] of Object.entries(this.performanceMetrics)){
254
- if (metricValue && typeof metricValue === 'object' && 'value' in metricValue) {
255
- result[key] = metricValue.value;
256
- }
257
- }
258
- return result;
259
- }
260
- /**
261
- * 记录用户行为(匿名)
262
- */ trackEvent(eventName, properties) {
263
- _logger.logger.debug('用户事件:', {
264
- eventName,
265
- properties
266
- });
267
- }
268
- constructor(errorConfig = {}){
269
- _define_property(this, "errorConfig", void 0);
270
- _define_property(this, "errorHandlers", []);
271
- _define_property(this, "performanceMetrics", {});
272
- _define_property(this, "unhandledRejectionHandler", void 0);
273
- _define_property(this, "errorHandler", void 0);
274
- _define_property(this, "errorRecords", []);
275
- _define_property(this, "errorAggregations", new Map());
276
- _define_property(this, "aggregationTimer", void 0);
277
- this.errorConfig = {
278
- autoCapture: errorConfig.autoCapture ?? true,
279
- onError: errorConfig.onError ?? (()=>{}),
280
- sampleRate: errorConfig.sampleRate ?? 1.0,
281
- showInConsole: errorConfig.showInConsole ?? true,
282
- enableAggregation: errorConfig.enableAggregation ?? true,
283
- aggregationWindow: errorConfig.aggregationWindow ?? 60000,
284
- maxErrorRecords: errorConfig.maxErrorRecords ?? 1000
285
- };
286
- if (this.errorConfig.autoCapture && typeof window !== 'undefined') {
287
- this.initErrorCapture();
288
- }
289
- // 启动错误聚合定时器
290
- if (this.errorConfig.enableAggregation) {
291
- this.startAggregationTimer();
292
- }
293
- }
294
- };
295
- /**
296
- * 默认监控服务实例
297
- */ let defaultMonitoringService = null;
298
- function initMonitoring(config) {
299
- if (!defaultMonitoringService) {
300
- defaultMonitoringService = new MonitoringService(config);
301
- }
302
- return defaultMonitoringService;
303
- }
304
- function getMonitoring() {
305
- if (!defaultMonitoringService) {
306
- return initMonitoring();
307
- }
308
- return defaultMonitoringService;
16
+ });
17
+ return from;
309
18
  }
310
19
 
311
20
  //# sourceMappingURL=monitoring.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/monitoring.ts"],"sourcesContent":["import { logger } from './logger';\nimport { errorUtils, type FrameworkError } from './errors';\nimport type { PerformanceMetrics, PerformanceMetricsWithUnits, PerformanceMetricValue } from './performance';\nimport { convertMetricsToWithUnits } from './performance';\n\n/**\n * 错误监控配置\n */\nexport interface ErrorMonitorConfig {\n /**\n * 是否自动捕获未处理的错误\n */\n autoCapture?: boolean;\n /**\n * 错误上报回调\n */\n onError?: (error: FrameworkError, context?: Record<string, unknown>) => void;\n /**\n * 采样率 (0-1)\n */\n sampleRate?: number;\n /**\n * 是否在控制台显示错误\n */\n showInConsole?: boolean;\n /**\n * 是否启用错误聚合\n */\n enableAggregation?: boolean;\n /**\n * 错误聚合窗口大小(毫秒)\n */\n aggregationWindow?: number;\n /**\n * 最大错误记录数\n */\n maxErrorRecords?: number;\n}\n\n/**\n * 错误聚合信息\n */\nexport interface ErrorAggregation {\n /**\n * 错误代码\n */\n code: string;\n /**\n * 错误消息\n */\n message: string;\n /**\n * 错误类型\n */\n type: string;\n /**\n * 错误数量\n */\n count: number;\n /**\n * 首次出现时间\n */\n firstOccurrence: number;\n /**\n * 最后出现时间\n */\n lastOccurrence: number;\n /**\n * 错误堆栈(示例)\n */\n stack?: string;\n /**\n * 错误上下文(示例)\n */\n context?: Record<string, unknown>;\n}\n\n/**\n * 监控服务类\n */\nexport class MonitoringService {\n private errorConfig: Required<ErrorMonitorConfig>;\n private errorHandlers: Array<(error: FrameworkError) => void> = [];\n private performanceMetrics: PerformanceMetricsWithUnits = {};\n private unhandledRejectionHandler?: (event: PromiseRejectionEvent) => void;\n private errorHandler?: (event: ErrorEvent) => void;\n private errorRecords: Array<{ error: FrameworkError; timestamp: number }> = [];\n private errorAggregations: Map<string, ErrorAggregation> = new Map();\n private aggregationTimer?: ReturnType<typeof setInterval>;\n\n constructor(errorConfig: ErrorMonitorConfig = {}) {\n this.errorConfig = {\n autoCapture: errorConfig.autoCapture ?? true,\n onError: errorConfig.onError ?? (() => {}),\n sampleRate: errorConfig.sampleRate ?? 1.0,\n showInConsole: errorConfig.showInConsole ?? true,\n enableAggregation: errorConfig.enableAggregation ?? true,\n aggregationWindow: errorConfig.aggregationWindow ?? 60000, // 1分钟\n maxErrorRecords: errorConfig.maxErrorRecords ?? 1000,\n };\n\n if (this.errorConfig.autoCapture && typeof window !== 'undefined') {\n this.initErrorCapture();\n }\n\n // 启动错误聚合定时器\n if (this.errorConfig.enableAggregation) {\n this.startAggregationTimer();\n }\n }\n\n /**\n * 初始化错误捕获\n */\n private initErrorCapture(): void {\n // 捕获未处理的 Promise 错误\n this.unhandledRejectionHandler = (event: PromiseRejectionEvent) => {\n const error = errorUtils.normalizeError(event.reason);\n this.captureError(error, {\n type: 'unhandledrejection',\n reason: event.reason,\n });\n };\n window.addEventListener('unhandledrejection', this.unhandledRejectionHandler);\n\n // 捕获全局错误\n this.errorHandler = (event: ErrorEvent) => {\n const error = errorUtils.normalizeError(event.error || new Error(event.message));\n this.captureError(error, {\n type: 'global',\n filename: event.filename,\n lineno: event.lineno,\n colno: event.colno,\n });\n };\n window.addEventListener('error', this.errorHandler);\n }\n\n /**\n * 清理资源\n */\n destroy(): void {\n // 移除事件监听器\n if (typeof window !== 'undefined') {\n if (this.unhandledRejectionHandler) {\n window.removeEventListener('unhandledrejection', this.unhandledRejectionHandler);\n }\n if (this.errorHandler) {\n window.removeEventListener('error', this.errorHandler);\n }\n }\n\n // 停止聚合定时器\n if (this.aggregationTimer) {\n clearInterval(this.aggregationTimer);\n this.aggregationTimer = undefined;\n }\n\n // 清空错误处理器\n this.errorHandlers = [];\n this.errorRecords = [];\n this.errorAggregations.clear();\n }\n\n /**\n * 启动错误聚合定时器\n */\n private startAggregationTimer(): void {\n this.aggregationTimer = setInterval(() => {\n this.aggregateErrors();\n }, this.errorConfig.aggregationWindow!);\n }\n\n /**\n * 聚合错误\n */\n private aggregateErrors(): void {\n const now = Date.now();\n const windowStart = now - this.errorConfig.aggregationWindow!;\n\n // 过滤窗口内的错误\n const windowErrors = this.errorRecords.filter(\n (record) => record.timestamp >= windowStart\n );\n\n // 按错误代码聚合\n const aggregations = new Map<string, ErrorAggregation>();\n\n for (const record of windowErrors) {\n const error = record.error;\n const key = `${error.code}_${error.type}`;\n\n if (!aggregations.has(key)) {\n aggregations.set(key, {\n code: error.code,\n message: error.message,\n type: error.type,\n count: 0,\n firstOccurrence: record.timestamp,\n lastOccurrence: record.timestamp,\n stack: error.originalError?.stack,\n context: error.context,\n });\n }\n\n const agg = aggregations.get(key)!;\n agg.count++;\n agg.lastOccurrence = Math.max(agg.lastOccurrence, record.timestamp);\n }\n\n // 更新聚合结果\n this.errorAggregations = aggregations;\n }\n\n /**\n * 捕获错误\n */\n captureError(error: unknown, context?: Record<string, unknown>): void {\n // 采样检查\n if (Math.random() > this.errorConfig.sampleRate) {\n return;\n }\n\n const normalizedError = errorUtils.normalizeError(error);\n // 创建带上下文的错误对象(使用 Object.assign 来更新只读属性)\n const errorWithContext = Object.assign(normalizedError, {\n context: {\n ...normalizedError.context,\n ...context,\n timestamp: new Date().toISOString(),\n userAgent: typeof navigator !== 'undefined' ? navigator.userAgent : undefined,\n url: typeof window !== 'undefined' ? window.location.href : undefined,\n },\n });\n\n // 记录错误\n const timestamp = Date.now();\n this.errorRecords.push({\n error: errorWithContext,\n timestamp,\n });\n\n // 限制错误记录数量\n if (this.errorRecords.length > this.errorConfig.maxErrorRecords!) {\n this.errorRecords.shift();\n }\n\n // 记录日志\n if (this.errorConfig.showInConsole) {\n logger.error('监控服务捕获到错误:', errorWithContext.toJSON());\n }\n\n // 调用错误回调\n this.errorConfig.onError(errorWithContext, context);\n\n // 调用注册的错误处理器\n this.errorHandlers.forEach((handler) => {\n try {\n handler(errorWithContext);\n } catch (e) {\n // 忽略处理器错误\n }\n });\n }\n\n /**\n * 获取错误聚合信息\n * \n * @param code - 错误代码(可选,如果提供则只返回该错误的聚合信息)\n * @returns 错误聚合信息\n */\n getErrorAggregations(code?: string): ErrorAggregation[] {\n if (code) {\n const aggregation = this.errorAggregations.get(code);\n return aggregation ? [aggregation] : [];\n }\n return Array.from(this.errorAggregations.values());\n }\n\n /**\n * 获取错误记录\n * \n * @param limit - 限制返回的记录数\n * @param since - 只返回此时间之后的错误\n * @returns 错误记录\n */\n getErrorRecords(limit?: number, since?: number): Array<{ error: FrameworkError; timestamp: number }> {\n let records = this.errorRecords;\n\n if (since) {\n records = records.filter((record) => record.timestamp >= since);\n }\n\n if (limit) {\n records = records.slice(-limit);\n }\n\n return [...records];\n }\n\n /**\n * 清空错误记录\n */\n clearErrorRecords(): void {\n this.errorRecords = [];\n this.errorAggregations.clear();\n }\n\n /**\n * 注册错误处理器\n */\n onError(handler: (error: FrameworkError) => void): () => void {\n this.errorHandlers.push(handler);\n return () => {\n const index = this.errorHandlers.indexOf(handler);\n if (index > -1) {\n this.errorHandlers.splice(index, 1);\n }\n };\n }\n\n /**\n * 上报性能指标\n */\n reportPerformance(metrics: PerformanceMetrics, context?: Record<string, unknown>): void {\n // 将传入的指标转换为带单位的格式\n const metricsWithUnits = convertMetricsToWithUnits(metrics);\n \n // 合并到现有指标中\n this.performanceMetrics = { ...this.performanceMetrics, ...metricsWithUnits };\n \n // 记录性能指标(带上下文)\n if (context) {\n logger.debug('性能指标更新:', { metrics: metricsWithUnits, context });\n } else {\n logger.debug('性能指标更新:', metricsWithUnits);\n }\n }\n\n /**\n * 批量上报性能指标\n */\n reportPerformanceBatch(metricsArray: Array<{ metrics: PerformanceMetrics; context?: Record<string, unknown> }>): void {\n for (const { metrics, context } of metricsArray) {\n this.reportPerformance(metrics, context);\n }\n }\n\n /**\n * 获取性能指标(带单位)\n */\n getPerformanceMetrics(): PerformanceMetricsWithUnits {\n return { ...this.performanceMetrics };\n }\n\n /**\n * 获取性能指标(原始数值格式,向后兼容)\n */\n getPerformanceMetricsRaw(): PerformanceMetrics {\n const result: PerformanceMetrics = {};\n \n for (const [key, metricValue] of Object.entries(this.performanceMetrics)) {\n if (metricValue && typeof metricValue === 'object' && 'value' in metricValue) {\n (result as Record<string, number>)[key] = (metricValue as PerformanceMetricValue).value;\n }\n }\n \n return result;\n }\n\n /**\n * 记录用户行为(匿名)\n */\n trackEvent(eventName: string, properties?: Record<string, unknown>): void {\n logger.debug('用户事件:', { eventName, properties });\n }\n}\n\n/**\n * 默认监控服务实例\n */\nlet defaultMonitoringService: MonitoringService | null = null;\n\n/**\n * 初始化默认监控服务\n */\nexport function initMonitoring(config?: ErrorMonitorConfig): MonitoringService {\n if (!defaultMonitoringService) {\n defaultMonitoringService = new MonitoringService(config);\n }\n return defaultMonitoringService;\n}\n\n/**\n * 获取默认监控服务\n */\nexport function getMonitoring(): MonitoringService {\n if (!defaultMonitoringService) {\n return initMonitoring();\n }\n return defaultMonitoringService;\n}\n"],"names":["MonitoringService","getMonitoring","initMonitoring","initErrorCapture","unhandledRejectionHandler","event","error","errorUtils","normalizeError","reason","captureError","type","window","addEventListener","errorHandler","Error","message","filename","lineno","colno","destroy","removeEventListener","aggregationTimer","clearInterval","undefined","errorHandlers","errorRecords","errorAggregations","clear","startAggregationTimer","setInterval","aggregateErrors","errorConfig","aggregationWindow","now","Date","windowStart","windowErrors","filter","record","timestamp","aggregations","Map","key","code","has","set","count","firstOccurrence","lastOccurrence","stack","originalError","context","agg","get","Math","max","random","sampleRate","normalizedError","errorWithContext","Object","assign","toISOString","userAgent","navigator","url","location","href","push","length","maxErrorRecords","shift","showInConsole","logger","toJSON","onError","forEach","handler","e","getErrorAggregations","aggregation","Array","from","values","getErrorRecords","limit","since","records","slice","clearErrorRecords","index","indexOf","splice","reportPerformance","metrics","metricsWithUnits","convertMetricsToWithUnits","performanceMetrics","debug","reportPerformanceBatch","metricsArray","getPerformanceMetrics","getPerformanceMetricsRaw","result","metricValue","entries","value","trackEvent","eventName","properties","autoCapture","enableAggregation","defaultMonitoringService","config"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/monitoring.ts"],"sourcesContent":["export * from '@vlian/monitoring';\n"],"names":[],"mappings":";;;;qBAAc"}
@@ -1,163 +1 @@
1
- import { type FrameworkError } from './errors';
2
- import type { PerformanceMetrics, PerformanceMetricsWithUnits } from './performance';
3
- /**
4
- * 错误监控配置
5
- */
6
- export interface ErrorMonitorConfig {
7
- /**
8
- * 是否自动捕获未处理的错误
9
- */
10
- autoCapture?: boolean;
11
- /**
12
- * 错误上报回调
13
- */
14
- onError?: (error: FrameworkError, context?: Record<string, unknown>) => void;
15
- /**
16
- * 采样率 (0-1)
17
- */
18
- sampleRate?: number;
19
- /**
20
- * 是否在控制台显示错误
21
- */
22
- showInConsole?: boolean;
23
- /**
24
- * 是否启用错误聚合
25
- */
26
- enableAggregation?: boolean;
27
- /**
28
- * 错误聚合窗口大小(毫秒)
29
- */
30
- aggregationWindow?: number;
31
- /**
32
- * 最大错误记录数
33
- */
34
- maxErrorRecords?: number;
35
- }
36
- /**
37
- * 错误聚合信息
38
- */
39
- export interface ErrorAggregation {
40
- /**
41
- * 错误代码
42
- */
43
- code: string;
44
- /**
45
- * 错误消息
46
- */
47
- message: string;
48
- /**
49
- * 错误类型
50
- */
51
- type: string;
52
- /**
53
- * 错误数量
54
- */
55
- count: number;
56
- /**
57
- * 首次出现时间
58
- */
59
- firstOccurrence: number;
60
- /**
61
- * 最后出现时间
62
- */
63
- lastOccurrence: number;
64
- /**
65
- * 错误堆栈(示例)
66
- */
67
- stack?: string;
68
- /**
69
- * 错误上下文(示例)
70
- */
71
- context?: Record<string, unknown>;
72
- }
73
- /**
74
- * 监控服务类
75
- */
76
- export declare class MonitoringService {
77
- private errorConfig;
78
- private errorHandlers;
79
- private performanceMetrics;
80
- private unhandledRejectionHandler?;
81
- private errorHandler?;
82
- private errorRecords;
83
- private errorAggregations;
84
- private aggregationTimer?;
85
- constructor(errorConfig?: ErrorMonitorConfig);
86
- /**
87
- * 初始化错误捕获
88
- */
89
- private initErrorCapture;
90
- /**
91
- * 清理资源
92
- */
93
- destroy(): void;
94
- /**
95
- * 启动错误聚合定时器
96
- */
97
- private startAggregationTimer;
98
- /**
99
- * 聚合错误
100
- */
101
- private aggregateErrors;
102
- /**
103
- * 捕获错误
104
- */
105
- captureError(error: unknown, context?: Record<string, unknown>): void;
106
- /**
107
- * 获取错误聚合信息
108
- *
109
- * @param code - 错误代码(可选,如果提供则只返回该错误的聚合信息)
110
- * @returns 错误聚合信息
111
- */
112
- getErrorAggregations(code?: string): ErrorAggregation[];
113
- /**
114
- * 获取错误记录
115
- *
116
- * @param limit - 限制返回的记录数
117
- * @param since - 只返回此时间之后的错误
118
- * @returns 错误记录
119
- */
120
- getErrorRecords(limit?: number, since?: number): Array<{
121
- error: FrameworkError;
122
- timestamp: number;
123
- }>;
124
- /**
125
- * 清空错误记录
126
- */
127
- clearErrorRecords(): void;
128
- /**
129
- * 注册错误处理器
130
- */
131
- onError(handler: (error: FrameworkError) => void): () => void;
132
- /**
133
- * 上报性能指标
134
- */
135
- reportPerformance(metrics: PerformanceMetrics, context?: Record<string, unknown>): void;
136
- /**
137
- * 批量上报性能指标
138
- */
139
- reportPerformanceBatch(metricsArray: Array<{
140
- metrics: PerformanceMetrics;
141
- context?: Record<string, unknown>;
142
- }>): void;
143
- /**
144
- * 获取性能指标(带单位)
145
- */
146
- getPerformanceMetrics(): PerformanceMetricsWithUnits;
147
- /**
148
- * 获取性能指标(原始数值格式,向后兼容)
149
- */
150
- getPerformanceMetricsRaw(): PerformanceMetrics;
151
- /**
152
- * 记录用户行为(匿名)
153
- */
154
- trackEvent(eventName: string, properties?: Record<string, unknown>): void;
155
- }
156
- /**
157
- * 初始化默认监控服务
158
- */
159
- export declare function initMonitoring(config?: ErrorMonitorConfig): MonitoringService;
160
- /**
161
- * 获取默认监控服务
162
- */
163
- export declare function getMonitoring(): MonitoringService;
1
+ export * from '@vlian/monitoring';