vafast 0.4.4 → 0.4.8

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 (168) hide show
  1. package/README.md +43 -8
  2. package/dist/base-server-B7MYJNsl.mjs +112 -0
  3. package/dist/{base-server-CSkyjEaY.mjs.map → base-server-B7MYJNsl.mjs.map} +1 -1
  4. package/dist/{base-server-DvGS6ATg.d.mts → base-server-DLxtulAO.d.mts} +2 -2
  5. package/dist/{base64url-CwQnvZyp.mjs → base64url-C2zopQdH.mjs} +1 -1
  6. package/dist/{base64url-CwQnvZyp.mjs.map → base64url-C2zopQdH.mjs.map} +1 -1
  7. package/dist/{base64url-0N9uQPjZ.d.mts → base64url-Dwi2Afhc.d.mts} +1 -1
  8. package/dist/{component-route-CZawYn61.d.mts → component-route-nrrO0iSI.d.mts} +2 -2
  9. package/dist/{component-router-CErbGh2A.mjs → component-router-RwPL20vN.mjs} +10 -11
  10. package/dist/{component-router-CErbGh2A.mjs.map → component-router-RwPL20vN.mjs.map} +1 -1
  11. package/dist/component-server-DomPJ_7S.mjs +119 -0
  12. package/dist/{component-server-DAbIyIPI.mjs.map → component-server-DomPJ_7S.mjs.map} +1 -1
  13. package/dist/{component-server-CGzU4bss.d.mts → component-server-JqpDC7wy.d.mts} +4 -4
  14. package/dist/{create-handler-Bo-hvWp-.d.mts → create-handler-DKw-sQOV.d.mts} +2 -2
  15. package/dist/{create-handler-B_pfxh3m.mjs → create-handler-RconAcAB.mjs} +5 -6
  16. package/dist/{create-handler-B_pfxh3m.mjs.map → create-handler-RconAcAB.mjs.map} +1 -1
  17. package/dist/defineRoute.d.mts +3 -3
  18. package/dist/{dependency-manager-C6vFWP2L.d.mts → dependency-manager-C3_7ic4h.d.mts} +1 -1
  19. package/dist/dependency-manager-DCmh7xFc.mjs +60 -0
  20. package/dist/{dependency-manager-Czg7Po2j.mjs.map → dependency-manager-DCmh7xFc.mjs.map} +1 -1
  21. package/dist/{formats-CYLwo9GJ.d.mts → formats-Dk-DSBY4.d.mts} +1 -1
  22. package/dist/{go-await-BGAGJfrB.mjs → go-await-C4ZdEUwY.mjs} +1 -1
  23. package/dist/{go-await-BGAGJfrB.mjs.map → go-await-C4ZdEUwY.mjs.map} +1 -1
  24. package/dist/{go-await-DRItVwwh.d.mts → go-await-DL1A_-4X.d.mts} +1 -1
  25. package/dist/{handle-D0TFoOiX.d.mts → handle-BhR3oyky.d.mts} +1 -1
  26. package/dist/{handle-Csjtywdc.mjs → handle-BxJwSvV0.mjs} +2 -2
  27. package/dist/{handle-Csjtywdc.mjs.map → handle-BxJwSvV0.mjs.map} +1 -1
  28. package/dist/{html-renderer-CMGKJoIy.d.mts → html-renderer-CfKK2BrP.d.mts} +1 -1
  29. package/dist/{html-renderer-CczE8mwC.mjs → html-renderer-DTtJ_Yic.mjs} +26 -27
  30. package/dist/{html-renderer-CczE8mwC.mjs.map → html-renderer-DTtJ_Yic.mjs.map} +1 -1
  31. package/dist/{index-Ci52vt55.d.mts → index-CEfOqqvd.d.mts} +5 -5
  32. package/dist/index.d.mts +25 -25
  33. package/dist/index.mjs +21 -25
  34. package/dist/index.mjs.map +1 -1
  35. package/dist/middleware/component-router.d.mts +1 -1
  36. package/dist/middleware/component-router.mjs +1 -2
  37. package/dist/middleware-CewKbtb4.mjs +182 -0
  38. package/dist/middleware-CewKbtb4.mjs.map +1 -0
  39. package/dist/middleware-KXEoefLX.d.mts +23 -0
  40. package/dist/middleware.d.mts +4 -25
  41. package/dist/middleware.mjs +1 -2
  42. package/dist/monitoring/index.d.mts +8 -33
  43. package/dist/monitoring/index.mjs +1 -25
  44. package/dist/monitoring/native-monitor.d.mts +148 -27
  45. package/dist/monitoring/native-monitor.mjs +320 -114
  46. package/dist/monitoring/native-monitor.mjs.map +1 -1
  47. package/dist/node-server/index.d.mts +1 -1
  48. package/dist/node-server/index.mjs +3 -3
  49. package/dist/node-server/request.mjs +1 -1
  50. package/dist/node-server/response.mjs +1 -1
  51. package/dist/node-server/serve.d.mts +1 -1
  52. package/dist/node-server/serve.mjs +2 -2
  53. package/dist/{parsers-7lvt3Oss.d.mts → parsers-BerGr2_q.d.mts} +1 -1
  54. package/dist/{parsers-CI_TZ7pO.mjs → parsers-DpH_mD0H.mjs} +1 -1
  55. package/dist/{parsers-CI_TZ7pO.mjs.map → parsers-DpH_mD0H.mjs.map} +1 -1
  56. package/dist/path-matcher-CGczAIl_.mjs +61 -0
  57. package/dist/{path-matcher-73cJd5Y7.mjs.map → path-matcher-CGczAIl_.mjs.map} +1 -1
  58. package/dist/radix-tree-qqSjnVXF.mjs +163 -0
  59. package/dist/{radix-tree-D0XYaJKb.mjs.map → radix-tree-qqSjnVXF.mjs.map} +1 -1
  60. package/dist/{request-CKC3Ox6M.mjs → request-B-Nct5f7.mjs} +1 -1
  61. package/dist/{request-CKC3Ox6M.mjs.map → request-B-Nct5f7.mjs.map} +1 -1
  62. package/dist/{request-validator-_J5HloRq.mjs → request-validator-Bz9X48FX.mjs} +3 -3
  63. package/dist/{request-validator-_J5HloRq.mjs.map → request-validator-Bz9X48FX.mjs.map} +1 -1
  64. package/dist/{request-validator-42lY21gn.d.mts → request-validator-Coo8dI-p.d.mts} +2 -2
  65. package/dist/response-BMfdEcTm.d.mts +48 -0
  66. package/dist/{response-Cf5FgtmE.mjs → response-BnkYA4pj.mjs} +1 -1
  67. package/dist/{response-Cf5FgtmE.mjs.map → response-BnkYA4pj.mjs.map} +1 -1
  68. package/dist/{route-BJ-40LNI.d.mts → route-6A7umH7b.d.mts} +2 -2
  69. package/dist/{route-9pAVP1GC.mjs → route-Ds53PR4M.mjs} +1 -1
  70. package/dist/{route-9pAVP1GC.mjs.map → route-Ds53PR4M.mjs.map} +1 -1
  71. package/dist/{route-registry--tx1PNui.d.mts → route-registry-CmABJA2V.d.mts} +2 -2
  72. package/dist/route-registry-emTmRrWQ.mjs +226 -0
  73. package/dist/{route-registry-mcTG0M-t.mjs.map → route-registry-emTmRrWQ.mjs.map} +1 -1
  74. package/dist/router/index.d.mts +2 -2
  75. package/dist/router/index.mjs +3 -9
  76. package/dist/router/radix-tree.d.mts +3 -3
  77. package/dist/router/radix-tree.mjs +1 -2
  78. package/dist/{router-B9HUUCkR.mjs → router-xWzwz_1a.mjs} +2 -5
  79. package/dist/{router-B9HUUCkR.mjs.map → router-xWzwz_1a.mjs.map} +1 -1
  80. package/dist/router.d.mts +3 -3
  81. package/dist/router.mjs +1 -2
  82. package/dist/{schema-CPQudJpE.d.mts → schema-B6DFN5c2.d.mts} +1 -1
  83. package/dist/{serve-Be6NvuQk.mjs → serve-48LEIkPa.mjs} +3 -3
  84. package/dist/{serve-Be6NvuQk.mjs.map → serve-48LEIkPa.mjs.map} +1 -1
  85. package/dist/{serve-B5WmhK6m.d.mts → serve-AG80VaIr.d.mts} +1 -1
  86. package/dist/serve.d.mts +1 -1
  87. package/dist/serve.mjs +2 -2
  88. package/dist/server/base-server.d.mts +3 -3
  89. package/dist/server/base-server.mjs +1 -2
  90. package/dist/server/component-server.d.mts +4 -4
  91. package/dist/server/component-server.mjs +2 -3
  92. package/dist/server/index.d.mts +6 -6
  93. package/dist/server/index.mjs +6 -6
  94. package/dist/server/server-factory.d.mts +6 -6
  95. package/dist/server/server-factory.mjs +5 -4
  96. package/dist/server/server.d.mts +4 -4
  97. package/dist/server/server.mjs +2 -2
  98. package/dist/server-C75o1b-a.mjs +70 -0
  99. package/dist/server-C75o1b-a.mjs.map +1 -0
  100. package/dist/{server-D9gjszHe.d.mts → server-DGA3dd5s.d.mts} +3 -3
  101. package/dist/server-L_FNwdap.mjs +137 -0
  102. package/dist/{server-BmPKs8oM.mjs.map → server-L_FNwdap.mjs.map} +1 -1
  103. package/dist/{sse-BMM6KTfy.d.mts → sse-BgLhEo43.d.mts} +2 -2
  104. package/dist/{sse-BT5yyLgX.mjs → sse-CBl-szg1.mjs} +3 -3
  105. package/dist/{sse-BT5yyLgX.mjs.map → sse-CBl-szg1.mjs.map} +1 -1
  106. package/dist/types/component-route.d.mts +1 -1
  107. package/dist/types/index.d.mts +5 -5
  108. package/dist/types/index.mjs +1 -1
  109. package/dist/types/route.d.mts +1 -1
  110. package/dist/types/route.mjs +1 -1
  111. package/dist/types/schema.d.mts +1 -1
  112. package/dist/types/types.d.mts +1 -1
  113. package/dist/{types-DuTa8AVN.d.mts → types-D1PUFkda.d.mts} +1 -1
  114. package/dist/utils/base64url.d.mts +1 -1
  115. package/dist/utils/base64url.mjs +1 -1
  116. package/dist/utils/create-handler.d.mts +2 -2
  117. package/dist/utils/create-handler.mjs +4 -3
  118. package/dist/utils/dependency-manager.d.mts +1 -1
  119. package/dist/utils/dependency-manager.mjs +1 -2
  120. package/dist/utils/formats.d.mts +1 -1
  121. package/dist/utils/go-await.d.mts +1 -1
  122. package/dist/utils/go-await.mjs +1 -1
  123. package/dist/utils/handle.d.mts +1 -1
  124. package/dist/utils/handle.mjs +2 -2
  125. package/dist/utils/html-renderer.d.mts +1 -1
  126. package/dist/utils/html-renderer.mjs +1 -2
  127. package/dist/utils/index.d.mts +17 -16
  128. package/dist/utils/index.mjs +13 -21
  129. package/dist/utils/parsers.d.mts +1 -1
  130. package/dist/utils/parsers.mjs +1 -1
  131. package/dist/utils/path-matcher.mjs +1 -2
  132. package/dist/utils/request-validator.d.mts +2 -2
  133. package/dist/utils/request-validator.mjs +3 -3
  134. package/dist/utils/response.d.mts +5 -2
  135. package/dist/utils/response.mjs +2 -3
  136. package/dist/utils/route-registry.d.mts +3 -3
  137. package/dist/utils/route-registry.mjs +1 -2
  138. package/dist/utils/sse.d.mts +2 -2
  139. package/dist/utils/sse.mjs +3 -3
  140. package/dist/utils/validators/validators.d.mts +1 -1
  141. package/dist/utils/validators/validators.mjs +1 -1
  142. package/dist/{validators-CPmnj_y9.d.mts → validators-Ch71zkT8.d.mts} +1 -1
  143. package/dist/{validators-BBrGePBr.mjs → validators-DBkyw6BG.mjs} +1 -1
  144. package/dist/{validators-BBrGePBr.mjs.map → validators-DBkyw6BG.mjs.map} +1 -1
  145. package/package.json +6 -1
  146. package/dist/base-server-CSkyjEaY.mjs +0 -113
  147. package/dist/chunk-DW4-Jl94.mjs +0 -37
  148. package/dist/component-server-DAbIyIPI.mjs +0 -124
  149. package/dist/dependency-manager-Czg7Po2j.mjs +0 -61
  150. package/dist/middleware-Byp3Hjae.mjs +0 -59
  151. package/dist/middleware-Byp3Hjae.mjs.map +0 -1
  152. package/dist/monitoring/index.mjs.map +0 -1
  153. package/dist/monitoring/types.d.mts +0 -150
  154. package/dist/path-matcher-73cJd5Y7.mjs +0 -62
  155. package/dist/radix-tree-D0XYaJKb.mjs +0 -157
  156. package/dist/response-A-sZZiJ7.d.mts +0 -21
  157. package/dist/response-DXg4i_yh.mjs +0 -97
  158. package/dist/response-DXg4i_yh.mjs.map +0 -1
  159. package/dist/route-registry-mcTG0M-t.mjs +0 -225
  160. package/dist/router/index.mjs.map +0 -1
  161. package/dist/schema-CtVBNfnQ.mjs +0 -1
  162. package/dist/server-BmPKs8oM.mjs +0 -137
  163. package/dist/server-Cbd3Ia51.mjs +0 -88
  164. package/dist/server-Cbd3Ia51.mjs.map +0 -1
  165. package/dist/utils/index.mjs.map +0 -1
  166. /package/dist/{component-route-CYxLOnci.mjs → component-route-DNgAj6VC.mjs} +0 -0
  167. /package/dist/{index-CzItj62a.d.mts → index-CREkvfw9.d.mts} +0 -0
  168. /package/dist/{monitoring/types.mjs → schema-1fwiv7cm.mjs} +0 -0
@@ -0,0 +1,23 @@
1
+ import { o as Middleware, r as Handler } from "./types-D1PUFkda.mjs";
2
+
3
+ //#region src/middleware.d.ts
4
+ /** 中间件类型:使用 next() 传递给下一个处理 */
5
+ /** Vafast 自定义错误类型 */
6
+ declare class VafastError extends Error {
7
+ status: number;
8
+ type: string;
9
+ expose: boolean;
10
+ constructor(message: string, options?: {
11
+ status?: number;
12
+ type?: string;
13
+ expose?: boolean;
14
+ cause?: unknown;
15
+ });
16
+ }
17
+ /**
18
+ * 组合类型: 自动注入错误处理器进行中间件组合
19
+ */
20
+ declare function composeMiddleware(middleware: Middleware[], finalHandler: Handler): (req: Request) => Promise<Response>;
21
+ //#endregion
22
+ export { composeMiddleware as n, VafastError as t };
23
+ //# sourceMappingURL=middleware-KXEoefLX.d.mts.map
@@ -1,25 +1,4 @@
1
- import { o as Middleware, r as Handler } from "./types-DuTa8AVN.mjs";
2
- import "./schema-CPQudJpE.mjs";
3
- import "./index-CzItj62a.mjs";
4
-
5
- //#region src/middleware.d.ts
6
- /** 中间件类型:使用 next() 传递给下一个处理 */
7
- /** Vafast 自定义错误类型 */
8
- declare class VafastError extends Error {
9
- status: number;
10
- type: string;
11
- expose: boolean;
12
- constructor(message: string, options?: {
13
- status?: number;
14
- type?: string;
15
- expose?: boolean;
16
- cause?: unknown;
17
- });
18
- }
19
- /**
20
- * 组合类型: 自动注入错误处理器进行中间件组合
21
- */
22
- declare function composeMiddleware(middleware: Middleware[], finalHandler: Handler): (req: Request) => Promise<Response>;
23
- //#endregion
24
- export { VafastError, composeMiddleware };
25
- //# sourceMappingURL=middleware.d.mts.map
1
+ import "./schema-B6DFN5c2.mjs";
2
+ import "./index-CREkvfw9.mjs";
3
+ import { n as composeMiddleware, t as VafastError } from "./middleware-KXEoefLX.mjs";
4
+ export { VafastError, composeMiddleware };
@@ -1,4 +1,3 @@
1
- import { n as composeMiddleware, r as init_middleware, t as VafastError } from "./middleware-Byp3Hjae.mjs";
1
+ import { n as composeMiddleware, t as VafastError } from "./middleware-CewKbtb4.mjs";
2
2
 
3
- init_middleware();
4
3
  export { VafastError, composeMiddleware };
@@ -1,33 +1,8 @@
1
- import "../schema-CPQudJpE.mjs";
2
- import "../index-CzItj62a.mjs";
3
- import "../base-server-DvGS6ATg.mjs";
4
- import "../server-D9gjszHe.mjs";
5
- import "../component-server-CGzU4bss.mjs";
6
- import "../index-Ci52vt55.mjs";
7
- import { AggregatedMetrics, BaseMetrics, MonitoringConfig, MonitoringEvent, PerformanceMetrics, PerformanceReport } from "./types.mjs";
8
- import { MonitoredServer, NativeMonitoringConfig, NativeMonitoringMetrics, createMonitoredServer, withMonitoring } from "./native-monitor.mjs";
9
-
10
- //#region src/monitoring/index.d.ts
11
- declare const defaultMonitoringConfig: {
12
- enabled: boolean;
13
- console: boolean;
14
- slowThreshold: number;
15
- errorThreshold: number;
16
- tags: {
17
- framework: string;
18
- version: string;
19
- };
20
- };
21
- declare function createMonitoringConfig(config?: Partial<typeof defaultMonitoringConfig>): {
22
- enabled: boolean;
23
- console: boolean;
24
- slowThreshold: number;
25
- errorThreshold: number;
26
- tags: {
27
- framework: string;
28
- version: string;
29
- };
30
- };
31
- //#endregion
32
- export { AggregatedMetrics, BaseMetrics, MonitoredServer, MonitoringConfig, MonitoringEvent, NativeMonitoringConfig, NativeMonitoringMetrics, PerformanceMetrics, PerformanceReport, createMonitoredServer, createMonitoringConfig, defaultMonitoringConfig, withMonitoring };
33
- //# sourceMappingURL=index.d.mts.map
1
+ import "../schema-B6DFN5c2.mjs";
2
+ import "../index-CREkvfw9.mjs";
3
+ import "../base-server-DLxtulAO.mjs";
4
+ import "../server-DGA3dd5s.mjs";
5
+ import "../component-server-JqpDC7wy.mjs";
6
+ import "../index-CEfOqqvd.mjs";
7
+ import { MemoryInfo, MonitoredServer, MonitoringConfig, MonitoringMetrics, MonitoringStatus, PathStats, StatusCodeDistribution, TimeWindowStats, createMonitoredServer, withMonitoring } from "./native-monitor.mjs";
8
+ export { type MemoryInfo, type MonitoredServer, type MonitoringConfig, type MonitoringMetrics, type MonitoringStatus, type PathStats, type StatusCodeDistribution, type TimeWindowStats, createMonitoredServer, withMonitoring };
@@ -1,27 +1,3 @@
1
- import "../dependency-manager-Czg7Po2j.mjs";
2
- import "../component-server-DAbIyIPI.mjs";
3
- import "../server-Cbd3Ia51.mjs";
4
- import "./types.mjs";
5
1
  import { createMonitoredServer, withMonitoring } from "./native-monitor.mjs";
6
2
 
7
- //#region src/monitoring/index.ts
8
- const defaultMonitoringConfig = {
9
- enabled: true,
10
- console: true,
11
- slowThreshold: 1e3,
12
- errorThreshold: .05,
13
- tags: {
14
- framework: "vafast",
15
- version: "2.0.0"
16
- }
17
- };
18
- function createMonitoringConfig(config = {}) {
19
- return {
20
- ...defaultMonitoringConfig,
21
- ...config
22
- };
23
- }
24
-
25
- //#endregion
26
- export { createMonitoredServer, createMonitoringConfig, defaultMonitoringConfig, withMonitoring };
27
- //# sourceMappingURL=index.mjs.map
3
+ export { createMonitoredServer, withMonitoring };
@@ -1,48 +1,169 @@
1
- import "../schema-CPQudJpE.mjs";
2
- import "../index-CzItj62a.mjs";
3
- import "../base-server-DvGS6ATg.mjs";
4
- import { t as Server } from "../server-D9gjszHe.mjs";
5
- import "../component-server-CGzU4bss.mjs";
6
- import "../index-Ci52vt55.mjs";
1
+ import "../schema-B6DFN5c2.mjs";
2
+ import "../index-CREkvfw9.mjs";
3
+ import "../base-server-DLxtulAO.mjs";
4
+ import { t as Server } from "../server-DGA3dd5s.mjs";
5
+ import "../component-server-JqpDC7wy.mjs";
6
+ import "../index-CEfOqqvd.mjs";
7
7
 
8
8
  //#region src/monitoring/native-monitor.d.ts
9
- /**
10
- * 原生监控装饰器
11
- *
12
- * 通过装饰器模式为 Server 添加监控能力,完全不入侵原类
13
- *
14
- * @author Framework Team
15
- * @version 2.0.0
16
- * @license MIT
17
- */
18
- interface NativeMonitoringConfig {
9
+
10
+ /** 监控配置 */
11
+ interface MonitoringConfig {
12
+ /** 是否启用监控,默认 true */
19
13
  enabled?: boolean;
14
+ /** 是否输出到控制台,默认 true */
20
15
  console?: boolean;
16
+ /** 慢请求阈值(毫秒),默认 1000 */
21
17
  slowThreshold?: number;
22
- errorThreshold?: number;
18
+ /** 最大记录数,默认 1000 */
19
+ maxRecords?: number;
20
+ /** 采样率 0-1,默认 1(全部记录) */
21
+ samplingRate?: number;
22
+ /** 排除的路径(不记录) */
23
+ excludePaths?: string[];
24
+ /** 自定义标签 */
23
25
  tags?: Record<string, string>;
26
+ /** 请求完成回调 */
27
+ onRequest?: (metrics: MonitoringMetrics) => void;
28
+ /** 慢请求回调 */
29
+ onSlowRequest?: (metrics: MonitoringMetrics) => void;
24
30
  }
25
- interface NativeMonitoringMetrics {
31
+ /** 监控指标 */
32
+ interface MonitoringMetrics {
26
33
  requestId: string;
27
34
  method: string;
28
35
  path: string;
29
36
  statusCode: number;
30
37
  totalTime: number;
31
38
  timestamp: number;
39
+ memoryUsage: MemoryInfo;
40
+ }
41
+ /** 内存信息 */
42
+ interface MemoryInfo {
43
+ heapUsed: number;
44
+ heapTotal: number;
45
+ }
46
+ /** 路径统计 */
47
+ interface PathStats {
48
+ count: number;
49
+ totalTime: number;
50
+ avgTime: number;
51
+ minTime: number;
52
+ maxTime: number;
53
+ errorCount: number;
54
+ }
55
+ /** 时间窗口统计 */
56
+ interface TimeWindowStats {
57
+ /** 请求数 */
58
+ requests: number;
59
+ /** 成功数 */
60
+ successful: number;
61
+ /** 失败数 */
62
+ failed: number;
63
+ /** 错误率 */
64
+ errorRate: number;
65
+ /** 平均响应时间 */
66
+ avgTime: number;
67
+ /** RPS(每秒请求数) */
68
+ rps: number;
69
+ }
70
+ /** 状态码分布 */
71
+ interface StatusCodeDistribution {
72
+ /** 2xx 成功 */
73
+ "2xx": number;
74
+ /** 3xx 重定向 */
75
+ "3xx": number;
76
+ /** 4xx 客户端错误 */
77
+ "4xx": number;
78
+ /** 5xx 服务器错误 */
79
+ "5xx": number;
80
+ /** 详细分布 */
81
+ detail: Record<number, number>;
82
+ }
83
+ /** 监控状态 */
84
+ interface MonitoringStatus {
85
+ enabled: boolean;
86
+ /** 服务运行时间(毫秒) */
87
+ uptime: number;
88
+ totalRequests: number;
89
+ successfulRequests: number;
90
+ failedRequests: number;
91
+ errorRate: number;
92
+ /** 平均响应时间(毫秒) */
93
+ avgResponseTime: number;
94
+ /** P50 响应时间(毫秒) */
95
+ p50: number;
96
+ /** P95 响应时间(毫秒) */
97
+ p95: number;
98
+ /** P99 响应时间(毫秒) */
99
+ p99: number;
100
+ /** 最小响应时间 */
101
+ minTime: number;
102
+ /** 最大响应时间 */
103
+ maxTime: number;
104
+ /** 当前 RPS */
105
+ rps: number;
106
+ /** 状态码分布 */
107
+ statusCodes: StatusCodeDistribution;
108
+ /** 时间窗口统计 */
109
+ timeWindows: {
110
+ /** 最近 1 分钟 */
111
+ last1min: TimeWindowStats;
112
+ /** 最近 5 分钟 */
113
+ last5min: TimeWindowStats;
114
+ /** 最近 1 小时 */
115
+ last1hour: TimeWindowStats;
116
+ };
117
+ /** 按路径统计 */
118
+ byPath: Record<string, PathStats>;
119
+ /** 内存使用 */
32
120
  memoryUsage: {
33
- heapUsed: number;
34
- heapTotal: number;
121
+ heapUsed: string;
122
+ heapTotal: string;
35
123
  };
124
+ /** 最近请求 */
125
+ recentRequests: MonitoringMetrics[];
36
126
  }
127
+ /** 带监控的 Server */
37
128
  interface MonitoredServer extends Server {
38
- getMonitoringStatus(): any;
39
- getMonitoringMetrics(): NativeMonitoringMetrics[];
129
+ getMonitoringStatus(): MonitoringStatus;
130
+ getMonitoringMetrics(): MonitoringMetrics[];
131
+ getPathStats(path: string): PathStats | undefined;
132
+ getTimeWindowStats(windowMs: number): TimeWindowStats;
133
+ getRPS(): number;
134
+ getStatusCodeDistribution(): StatusCodeDistribution;
40
135
  resetMonitoring(): void;
41
- fetch: (req: Request) => Promise<Response>;
42
- use: (mw: any) => void;
43
136
  }
44
- declare function withMonitoring(server: Server, config?: NativeMonitoringConfig): MonitoredServer;
45
- declare function createMonitoredServer(routes: any[], config?: NativeMonitoringConfig): MonitoredServer;
137
+ /**
138
+ * Server 添加监控能力
139
+ *
140
+ * @example
141
+ * ```ts
142
+ * const server = new Server(routes)
143
+ * const monitored = withMonitoring(server, {
144
+ * slowThreshold: 500,
145
+ * excludePaths: ['/health'],
146
+ * onSlowRequest: (m) => console.warn('Slow!', m.path)
147
+ * })
148
+ *
149
+ * // 获取完整状态
150
+ * const status = monitored.getMonitoringStatus()
151
+ * console.log(`P99: ${status.p99}ms`)
152
+ * console.log(`RPS: ${status.rps}`)
153
+ * console.log(`Last 1min errors: ${status.timeWindows.last1min.errorRate}`)
154
+ *
155
+ * // 单独获取 RPS
156
+ * console.log(`Current RPS: ${monitored.getRPS()}`)
157
+ *
158
+ * // 自定义时间窗口
159
+ * const last30sec = monitored.getTimeWindowStats(30000)
160
+ * ```
161
+ */
162
+ declare function withMonitoring(server: Server, config?: MonitoringConfig): MonitoredServer;
163
+ /**
164
+ * 创建带监控的 Server(便捷函数)
165
+ */
166
+ declare function createMonitoredServer(ServerClass: typeof Server, routes: ConstructorParameters<typeof Server>[0], config?: MonitoringConfig): MonitoredServer;
46
167
  //#endregion
47
- export { MonitoredServer, NativeMonitoringConfig, NativeMonitoringMetrics, createMonitoredServer, withMonitoring };
168
+ export { MemoryInfo, MonitoredServer, MonitoringConfig, MonitoringMetrics, MonitoringStatus, PathStats, StatusCodeDistribution, TimeWindowStats, createMonitoredServer, withMonitoring };
48
169
  //# sourceMappingURL=native-monitor.d.mts.map