vafast 0.4.2 → 0.4.4

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 (293) hide show
  1. package/README.md +6 -10
  2. package/dist/base-server-CSkyjEaY.mjs +113 -0
  3. package/dist/base-server-CSkyjEaY.mjs.map +1 -0
  4. package/dist/base-server-DvGS6ATg.d.mts +40 -0
  5. package/dist/base64url-0N9uQPjZ.d.mts +6 -0
  6. package/dist/base64url-CwQnvZyp.mjs +13 -0
  7. package/dist/base64url-CwQnvZyp.mjs.map +1 -0
  8. package/dist/chunk-DW4-Jl94.mjs +37 -0
  9. package/dist/component-route-CYxLOnci.mjs +1 -0
  10. package/dist/component-route-CZawYn61.d.mts +31 -0
  11. package/dist/component-router-CErbGh2A.mjs +33 -0
  12. package/dist/component-router-CErbGh2A.mjs.map +1 -0
  13. package/dist/component-server-CGzU4bss.d.mts +38 -0
  14. package/dist/component-server-DAbIyIPI.mjs +124 -0
  15. package/dist/component-server-DAbIyIPI.mjs.map +1 -0
  16. package/dist/create-handler-B_pfxh3m.mjs +166 -0
  17. package/dist/create-handler-B_pfxh3m.mjs.map +1 -0
  18. package/dist/{utils/create-handler.d.ts → create-handler-Bo-hvWp-.d.mts} +24 -24
  19. package/dist/{defineRoute.d.ts → defineRoute.d.mts} +20 -17
  20. package/dist/defineRoute.mjs +93 -0
  21. package/dist/defineRoute.mjs.map +1 -0
  22. package/dist/dependency-manager-C6vFWP2L.d.mts +27 -0
  23. package/dist/dependency-manager-Czg7Po2j.mjs +61 -0
  24. package/dist/dependency-manager-Czg7Po2j.mjs.map +1 -0
  25. package/dist/formats-CYLwo9GJ.d.mts +42 -0
  26. package/dist/go-await-BGAGJfrB.mjs +33 -0
  27. package/dist/go-await-BGAGJfrB.mjs.map +1 -0
  28. package/dist/{utils/go-await.d.ts → go-await-DRItVwwh.d.mts} +4 -2
  29. package/dist/handle-Csjtywdc.mjs +30 -0
  30. package/dist/handle-Csjtywdc.mjs.map +1 -0
  31. package/dist/{utils/handle.d.ts → handle-D0TFoOiX.d.mts} +8 -6
  32. package/dist/html-renderer-CMGKJoIy.d.mts +22 -0
  33. package/dist/{utils/html-renderer.js → html-renderer-CczE8mwC.mjs} +34 -29
  34. package/dist/html-renderer-CczE8mwC.mjs.map +1 -0
  35. package/dist/index-Ci52vt55.d.mts +48 -0
  36. package/dist/index-CzItj62a.d.mts +1 -0
  37. package/dist/index.d.mts +30 -0
  38. package/dist/index.mjs +37 -0
  39. package/dist/index.mjs.map +1 -0
  40. package/dist/middleware/{component-renderer.d.ts → component-renderer.d.mts} +3 -1
  41. package/dist/middleware/component-renderer.mjs +119 -0
  42. package/dist/middleware/component-renderer.mjs.map +1 -0
  43. package/dist/middleware/{component-router.d.ts → component-router.d.mts} +5 -4
  44. package/dist/middleware/component-router.mjs +4 -0
  45. package/dist/middleware-Byp3Hjae.mjs +59 -0
  46. package/dist/middleware-Byp3Hjae.mjs.map +1 -0
  47. package/dist/middleware.d.mts +25 -0
  48. package/dist/middleware.mjs +4 -0
  49. package/dist/monitoring/index.d.mts +33 -0
  50. package/dist/monitoring/index.mjs +27 -0
  51. package/dist/monitoring/index.mjs.map +1 -0
  52. package/dist/monitoring/native-monitor.d.mts +48 -0
  53. package/dist/monitoring/native-monitor.mjs +154 -0
  54. package/dist/monitoring/native-monitor.mjs.map +1 -0
  55. package/dist/monitoring/types.d.mts +150 -0
  56. package/dist/monitoring/types.mjs +1 -0
  57. package/dist/node-server/index.d.mts +4 -0
  58. package/dist/node-server/index.mjs +5 -0
  59. package/dist/node-server/{request.d.ts → request.d.mts} +4 -6
  60. package/dist/node-server/request.mjs +3 -0
  61. package/dist/node-server/{response.d.ts → response.d.mts} +4 -6
  62. package/dist/node-server/response.mjs +3 -0
  63. package/dist/node-server/serve.d.mts +2 -0
  64. package/dist/node-server/serve.mjs +4 -0
  65. package/dist/{utils/parsers.d.ts → parsers-7lvt3Oss.d.mts} +10 -8
  66. package/dist/parsers-CI_TZ7pO.mjs +168 -0
  67. package/dist/parsers-CI_TZ7pO.mjs.map +1 -0
  68. package/dist/path-matcher-73cJd5Y7.mjs +62 -0
  69. package/dist/path-matcher-73cJd5Y7.mjs.map +1 -0
  70. package/dist/radix-tree-D0XYaJKb.mjs +157 -0
  71. package/dist/radix-tree-D0XYaJKb.mjs.map +1 -0
  72. package/dist/request-CKC3Ox6M.mjs +133 -0
  73. package/dist/request-CKC3Ox6M.mjs.map +1 -0
  74. package/dist/request-validator-42lY21gn.d.mts +67 -0
  75. package/dist/request-validator-_J5HloRq.mjs +77 -0
  76. package/dist/request-validator-_J5HloRq.mjs.map +1 -0
  77. package/dist/{utils/response.d.ts → response-A-sZZiJ7.d.mts} +4 -2
  78. package/dist/response-Cf5FgtmE.mjs +72 -0
  79. package/dist/response-Cf5FgtmE.mjs.map +1 -0
  80. package/dist/response-DXg4i_yh.mjs +97 -0
  81. package/dist/response-DXg4i_yh.mjs.map +1 -0
  82. package/dist/route-9pAVP1GC.mjs +11 -0
  83. package/dist/route-9pAVP1GC.mjs.map +1 -0
  84. package/dist/route-BJ-40LNI.d.mts +44 -0
  85. package/dist/route-registry--tx1PNui.d.mts +176 -0
  86. package/dist/route-registry-mcTG0M-t.mjs +225 -0
  87. package/dist/route-registry-mcTG0M-t.mjs.map +1 -0
  88. package/dist/router/index.d.mts +5 -0
  89. package/dist/router/index.mjs +10 -0
  90. package/dist/router/index.mjs.map +1 -0
  91. package/dist/router/radix-tree.d.mts +60 -0
  92. package/dist/router/radix-tree.mjs +4 -0
  93. package/dist/router-B9HUUCkR.mjs +71 -0
  94. package/dist/router-B9HUUCkR.mjs.map +1 -0
  95. package/dist/{router.d.ts → router.d.mts} +6 -7
  96. package/dist/router.mjs +4 -0
  97. package/dist/schema-CPQudJpE.d.mts +81 -0
  98. package/dist/schema-CtVBNfnQ.mjs +1 -0
  99. package/dist/serve-B5WmhK6m.d.mts +69 -0
  100. package/dist/serve-Be6NvuQk.mjs +107 -0
  101. package/dist/serve-Be6NvuQk.mjs.map +1 -0
  102. package/dist/serve.d.mts +2 -0
  103. package/dist/serve.mjs +4 -0
  104. package/dist/server/base-server.d.mts +4 -0
  105. package/dist/server/base-server.mjs +4 -0
  106. package/dist/server/component-server.d.mts +5 -0
  107. package/dist/server/component-server.mjs +5 -0
  108. package/dist/server/index.d.mts +7 -0
  109. package/dist/server/index.mjs +8 -0
  110. package/dist/server/server-factory.d.mts +7 -0
  111. package/dist/server/server-factory.mjs +6 -0
  112. package/dist/server/server.d.mts +5 -0
  113. package/dist/server/server.mjs +4 -0
  114. package/dist/server-BmPKs8oM.mjs +137 -0
  115. package/dist/server-BmPKs8oM.mjs.map +1 -0
  116. package/dist/server-Cbd3Ia51.mjs +88 -0
  117. package/dist/server-Cbd3Ia51.mjs.map +1 -0
  118. package/dist/server-D9gjszHe.d.mts +60 -0
  119. package/dist/sse-BMM6KTfy.d.mts +65 -0
  120. package/dist/sse-BT5yyLgX.mjs +87 -0
  121. package/dist/sse-BT5yyLgX.mjs.map +1 -0
  122. package/dist/types/component-route.d.mts +2 -0
  123. package/dist/types/component-route.mjs +1 -0
  124. package/dist/types/index.d.mts +6 -0
  125. package/dist/types/index.mjs +3 -0
  126. package/dist/types/route.d.mts +2 -0
  127. package/dist/types/route.mjs +3 -0
  128. package/dist/types/schema.d.mts +2 -0
  129. package/dist/types/schema.mjs +1 -0
  130. package/dist/types/types.d.mts +2 -0
  131. package/dist/types/types.mjs +1 -0
  132. package/dist/{types/types.d.ts → types-DuTa8AVN.d.mts} +27 -25
  133. package/dist/utils/base64url.d.mts +2 -0
  134. package/dist/utils/base64url.mjs +3 -0
  135. package/dist/utils/create-handler.d.mts +3 -0
  136. package/dist/utils/create-handler.mjs +5 -0
  137. package/dist/utils/dependency-manager.d.mts +2 -0
  138. package/dist/utils/dependency-manager.mjs +4 -0
  139. package/dist/utils/formats.d.mts +2 -0
  140. package/dist/utils/formats.mjs +129 -0
  141. package/dist/utils/formats.mjs.map +1 -0
  142. package/dist/utils/go-await.d.mts +2 -0
  143. package/dist/utils/go-await.mjs +3 -0
  144. package/dist/utils/handle.d.mts +2 -0
  145. package/dist/utils/handle.mjs +4 -0
  146. package/dist/utils/html-renderer.d.mts +2 -0
  147. package/dist/utils/html-renderer.mjs +4 -0
  148. package/dist/utils/index.d.mts +16 -0
  149. package/dist/utils/index.mjs +23 -0
  150. package/dist/utils/index.mjs.map +1 -0
  151. package/dist/utils/parsers.d.mts +2 -0
  152. package/dist/utils/parsers.mjs +3 -0
  153. package/dist/utils/path-matcher.d.mts +27 -0
  154. package/dist/utils/path-matcher.mjs +4 -0
  155. package/dist/utils/request-validator.d.mts +3 -0
  156. package/dist/utils/request-validator.mjs +5 -0
  157. package/dist/utils/response.d.mts +2 -0
  158. package/dist/utils/response.mjs +4 -0
  159. package/dist/utils/route-registry.d.mts +4 -0
  160. package/dist/utils/route-registry.mjs +4 -0
  161. package/dist/utils/sse.d.mts +3 -0
  162. package/dist/utils/sse.mjs +5 -0
  163. package/dist/utils/validators/validators.d.mts +2 -0
  164. package/dist/utils/validators/validators.mjs +3 -0
  165. package/dist/validators-BBrGePBr.mjs +112 -0
  166. package/dist/validators-BBrGePBr.mjs.map +1 -0
  167. package/dist/validators-CPmnj_y9.d.mts +67 -0
  168. package/package.json +16 -18
  169. package/dist/auth/token.d.ts +0 -42
  170. package/dist/auth/token.js +0 -131
  171. package/dist/auth/token.js.map +0 -1
  172. package/dist/defineRoute.js +0 -37
  173. package/dist/defineRoute.js.map +0 -1
  174. package/dist/index.d.ts +0 -32
  175. package/dist/index.js +0 -2578
  176. package/dist/index.js.map +0 -1
  177. package/dist/middleware/auth.d.ts +0 -16
  178. package/dist/middleware/auth.js +0 -205
  179. package/dist/middleware/auth.js.map +0 -1
  180. package/dist/middleware/authMiddleware.d.ts +0 -5
  181. package/dist/middleware/authMiddleware.js +0 -57
  182. package/dist/middleware/authMiddleware.js.map +0 -1
  183. package/dist/middleware/component-renderer.js +0 -139
  184. package/dist/middleware/component-renderer.js.map +0 -1
  185. package/dist/middleware/component-router.js +0 -36
  186. package/dist/middleware/component-router.js.map +0 -1
  187. package/dist/middleware/cors.d.ts +0 -12
  188. package/dist/middleware/cors.js +0 -43
  189. package/dist/middleware/cors.js.map +0 -1
  190. package/dist/middleware/rateLimit.d.ts +0 -10
  191. package/dist/middleware/rateLimit.js +0 -49
  192. package/dist/middleware/rateLimit.js.map +0 -1
  193. package/dist/middleware.d.ts +0 -21
  194. package/dist/middleware.js +0 -102
  195. package/dist/middleware.js.map +0 -1
  196. package/dist/monitoring/index.d.ts +0 -36
  197. package/dist/monitoring/index.js +0 -1487
  198. package/dist/monitoring/index.js.map +0 -1
  199. package/dist/monitoring/native-monitor.d.ts +0 -44
  200. package/dist/monitoring/native-monitor.js +0 -1454
  201. package/dist/monitoring/native-monitor.js.map +0 -1
  202. package/dist/monitoring/types.d.ts +0 -148
  203. package/dist/monitoring/types.js +0 -8
  204. package/dist/monitoring/types.js.map +0 -1
  205. package/dist/node-server/index.d.ts +0 -4
  206. package/dist/node-server/index.js +0 -298
  207. package/dist/node-server/index.js.map +0 -1
  208. package/dist/node-server/request.js +0 -125
  209. package/dist/node-server/request.js.map +0 -1
  210. package/dist/node-server/response.js +0 -76
  211. package/dist/node-server/response.js.map +0 -1
  212. package/dist/node-server/serve.d.ts +0 -71
  213. package/dist/node-server/serve.js +0 -281
  214. package/dist/node-server/serve.js.map +0 -1
  215. package/dist/router/index.d.ts +0 -3
  216. package/dist/router/index.js +0 -232
  217. package/dist/router/index.js.map +0 -1
  218. package/dist/router/radix-tree.d.ts +0 -66
  219. package/dist/router/radix-tree.js +0 -190
  220. package/dist/router/radix-tree.js.map +0 -1
  221. package/dist/router.js +0 -44
  222. package/dist/router.js.map +0 -1
  223. package/dist/serve.d.ts +0 -2
  224. package/dist/serve.js +0 -281
  225. package/dist/serve.js.map +0 -1
  226. package/dist/server/base-server.d.ts +0 -37
  227. package/dist/server/base-server.js +0 -134
  228. package/dist/server/base-server.js.map +0 -1
  229. package/dist/server/component-server.d.ts +0 -37
  230. package/dist/server/component-server.js +0 -488
  231. package/dist/server/component-server.js.map +0 -1
  232. package/dist/server/index.d.ts +0 -8
  233. package/dist/server/index.js +0 -1159
  234. package/dist/server/index.js.map +0 -1
  235. package/dist/server/server-factory.d.ts +0 -48
  236. package/dist/server/server-factory.js +0 -1156
  237. package/dist/server/server-factory.js.map +0 -1
  238. package/dist/server/server.d.ts +0 -64
  239. package/dist/server/server.js +0 -737
  240. package/dist/server/server.js.map +0 -1
  241. package/dist/types/component-route.d.ts +0 -29
  242. package/dist/types/component-route.js +0 -1
  243. package/dist/types/component-route.js.map +0 -1
  244. package/dist/types/index.d.ts +0 -5
  245. package/dist/types/index.js +0 -21
  246. package/dist/types/index.js.map +0 -1
  247. package/dist/types/route.d.ts +0 -42
  248. package/dist/types/route.js +0 -12
  249. package/dist/types/route.js.map +0 -1
  250. package/dist/types/schema.d.ts +0 -79
  251. package/dist/types/schema.js +0 -10
  252. package/dist/types/schema.js.map +0 -1
  253. package/dist/types/types.js +0 -1
  254. package/dist/types/types.js.map +0 -1
  255. package/dist/utils/base64url.d.ts +0 -4
  256. package/dist/utils/base64url.js +0 -14
  257. package/dist/utils/base64url.js.map +0 -1
  258. package/dist/utils/create-handler.js +0 -299
  259. package/dist/utils/create-handler.js.map +0 -1
  260. package/dist/utils/dependency-manager.d.ts +0 -25
  261. package/dist/utils/dependency-manager.js +0 -71
  262. package/dist/utils/dependency-manager.js.map +0 -1
  263. package/dist/utils/formats.d.ts +0 -40
  264. package/dist/utils/formats.js +0 -116
  265. package/dist/utils/formats.js.map +0 -1
  266. package/dist/utils/go-await.js +0 -16
  267. package/dist/utils/go-await.js.map +0 -1
  268. package/dist/utils/handle.js +0 -48
  269. package/dist/utils/handle.js.map +0 -1
  270. package/dist/utils/html-renderer.d.ts +0 -20
  271. package/dist/utils/html-renderer.js.map +0 -1
  272. package/dist/utils/index.d.ts +0 -16
  273. package/dist/utils/index.js +0 -1038
  274. package/dist/utils/index.js.map +0 -1
  275. package/dist/utils/parsers.js +0 -160
  276. package/dist/utils/parsers.js.map +0 -1
  277. package/dist/utils/path-matcher.d.ts +0 -25
  278. package/dist/utils/path-matcher.js +0 -73
  279. package/dist/utils/path-matcher.js.map +0 -1
  280. package/dist/utils/request-validator.d.ts +0 -66
  281. package/dist/utils/request-validator.js +0 -158
  282. package/dist/utils/request-validator.js.map +0 -1
  283. package/dist/utils/response.js +0 -102
  284. package/dist/utils/response.js.map +0 -1
  285. package/dist/utils/route-registry.d.ts +0 -195
  286. package/dist/utils/route-registry.js +0 -152
  287. package/dist/utils/route-registry.js.map +0 -1
  288. package/dist/utils/sse.d.ts +0 -87
  289. package/dist/utils/sse.js +0 -181
  290. package/dist/utils/sse.js.map +0 -1
  291. package/dist/utils/validators/validators.d.ts +0 -76
  292. package/dist/utils/validators/validators.js +0 -97
  293. package/dist/utils/validators/validators.js.map +0 -1
@@ -1,13 +1,15 @@
1
+ //#region src/utils/handle.d.ts
1
2
  /** 获取单个 Cookie 值 */
2
3
  declare function getCookie(req: Request, key: string): string | null;
3
4
  /** 生成 Set-Cookie 头 */
4
5
  declare function setCookie(key: string, value: string, options?: {
5
- path?: string;
6
- httpOnly?: boolean;
7
- maxAge?: number;
8
- secure?: boolean;
6
+ path?: string;
7
+ httpOnly?: boolean;
8
+ maxAge?: number;
9
+ secure?: boolean;
9
10
  }): string;
10
11
  declare function setLocals<T extends object>(req: Request, extras: T): void;
11
12
  declare function getLocals<T extends object>(req: Request): T;
12
-
13
- export { getCookie, getLocals, setCookie, setLocals };
13
+ //#endregion
14
+ export { setLocals as i, getLocals as n, setCookie as r, getCookie as t };
15
+ //# sourceMappingURL=handle-D0TFoOiX.d.mts.map
@@ -0,0 +1,22 @@
1
+ //#region src/utils/html-renderer.d.ts
2
+ /**
3
+ * HTML渲染工具类
4
+ * 提供统一的HTML模板生成功能
5
+ */
6
+ declare class HtmlRenderer {
7
+ /**
8
+ * 生成基础HTML模板
9
+ */
10
+ static generateBaseHtml(content: string, context: any, clientScriptPath?: string): string;
11
+ /**
12
+ * 生成Vue组件HTML
13
+ */
14
+ static generateVueHtml(content: string, context: any, clientScriptPath?: string): string;
15
+ /**
16
+ * 生成React组件HTML
17
+ */
18
+ static generateReactHtml(content: string, context: any, clientScriptPath?: string): string;
19
+ }
20
+ //#endregion
21
+ export { HtmlRenderer as t };
22
+ //# sourceMappingURL=html-renderer-CMGKJoIy.d.mts.map
@@ -1,10 +1,14 @@
1
- // src/utils/html-renderer.ts
2
- var HtmlRenderer = class {
3
- /**
4
- * 生成基础HTML模板
5
- */
6
- static generateBaseHtml(content, context, clientScriptPath = "/client.js") {
7
- return `
1
+ import { t as __esmMin } from "./chunk-DW4-Jl94.mjs";
2
+
3
+ //#region src/utils/html-renderer.ts
4
+ var HtmlRenderer;
5
+ var init_html_renderer = __esmMin((() => {
6
+ HtmlRenderer = class {
7
+ /**
8
+ * 生成基础HTML模板
9
+ */
10
+ static generateBaseHtml(content, context, clientScriptPath = "/client.js") {
11
+ return `
8
12
  <!doctype html>
9
13
  <html>
10
14
  <head>
@@ -20,23 +24,23 @@ var HtmlRenderer = class {
20
24
  query: ${JSON.stringify(context.query || {})},
21
25
  pathname: '${context.pathname}'
22
26
  };
23
- </script>
24
- <script type="module" src="${clientScriptPath}"></script>
27
+ <\/script>
28
+ <script type="module" src="${clientScriptPath}"><\/script>
25
29
  </body>
26
30
  </html>
27
31
  `;
28
- }
29
- /**
30
- * 生成Vue组件HTML
31
- */
32
- static generateVueHtml(content, context, clientScriptPath = "/client.js") {
33
- return this.generateBaseHtml(content, context, clientScriptPath);
34
- }
35
- /**
36
- * 生成React组件HTML
37
- */
38
- static generateReactHtml(content, context, clientScriptPath = "/client.js") {
39
- return `
32
+ }
33
+ /**
34
+ * 生成Vue组件HTML
35
+ */
36
+ static generateVueHtml(content, context, clientScriptPath = "/client.js") {
37
+ return this.generateBaseHtml(content, context, clientScriptPath);
38
+ }
39
+ /**
40
+ * 生成React组件HTML
41
+ */
42
+ static generateReactHtml(content, context, clientScriptPath = "/client.js") {
43
+ return `
40
44
  <!doctype html>
41
45
  <html>
42
46
  <head>
@@ -52,14 +56,15 @@ var HtmlRenderer = class {
52
56
  query: ${JSON.stringify(context.query || {})},
53
57
  pathname: '${context.pathname}'
54
58
  };
55
- </script>
56
- <script type="module" src="${clientScriptPath}"></script>
59
+ <\/script>
60
+ <script type="module" src="${clientScriptPath}"><\/script>
57
61
  </body>
58
62
  </html>
59
63
  `;
60
- }
61
- };
62
- export {
63
- HtmlRenderer
64
- };
65
- //# sourceMappingURL=html-renderer.js.map
64
+ }
65
+ };
66
+ }));
67
+
68
+ //#endregion
69
+ export { init_html_renderer as n, HtmlRenderer as t };
70
+ //# sourceMappingURL=html-renderer-CczE8mwC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-renderer-CczE8mwC.mjs","names":[],"sources":["../src/utils/html-renderer.ts"],"sourcesContent":["/**\n * HTML渲染工具类\n * 提供统一的HTML模板生成功能\n */\nexport class HtmlRenderer {\n /**\n * 生成基础HTML模板\n */\n static generateBaseHtml(\n content: string,\n context: any,\n clientScriptPath: string = \"/client.js\",\n ): string {\n return `\n <!doctype html>\n <html>\n <head>\n <meta charset=\"utf-8\">\n <title>Vafast SSR App</title>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n </head>\n <body>\n <div id=\"app\">${content}</div>\n <script>\n window.__ROUTE_INFO__ = {\n params: ${JSON.stringify(context.params || {})},\n query: ${JSON.stringify(context.query || {})},\n pathname: '${context.pathname}'\n };\n </script>\n <script type=\"module\" src=\"${clientScriptPath}\"></script>\n </body>\n </html>\n `;\n }\n\n /**\n * 生成Vue组件HTML\n */\n static generateVueHtml(\n content: string,\n context: any,\n clientScriptPath: string = \"/client.js\",\n ): string {\n return this.generateBaseHtml(content, context, clientScriptPath);\n }\n\n /**\n * 生成React组件HTML\n */\n static generateReactHtml(\n content: string,\n context: any,\n clientScriptPath: string = \"/client.js\",\n ): string {\n return `\n <!doctype html>\n <html>\n <head>\n <meta charset=\"utf-8\">\n <title>Vafast SSR App</title>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n </head>\n <body>\n <div id=\"root\">${content}</div>\n <script>\n window.__ROUTE_INFO__ = {\n params: ${JSON.stringify(context.params || {})},\n query: ${JSON.stringify(context.query || {})},\n pathname: '${context.pathname}'\n };\n </script>\n <script type=\"module\" src=\"${clientScriptPath}\"></script>\n </body>\n </html>\n `;\n }\n}\n"],"mappings":";;;;;CAIa,eAAb,MAA0B;;;;EAIxB,OAAO,iBACL,SACA,SACA,mBAA2B,cACnB;AACR,UAAO;;;;;;;;;0BASe,QAAQ;;;wBAGV,KAAK,UAAU,QAAQ,UAAU,EAAE,CAAC,CAAC;uBACtC,KAAK,UAAU,QAAQ,SAAS,EAAE,CAAC,CAAC;2BAChC,QAAQ,SAAS;;;uCAGL,iBAAiB;;;;;;;;EAStD,OAAO,gBACL,SACA,SACA,mBAA2B,cACnB;AACR,UAAO,KAAK,iBAAiB,SAAS,SAAS,iBAAiB;;;;;EAMlE,OAAO,kBACL,SACA,SACA,mBAA2B,cACnB;AACR,UAAO;;;;;;;;;2BASgB,QAAQ;;;wBAGX,KAAK,UAAU,QAAQ,UAAU,EAAE,CAAC,CAAC;uBACtC,KAAK,UAAU,QAAQ,SAAS,EAAE,CAAC,CAAC;2BAChC,QAAQ,SAAS;;;uCAGL,iBAAiB"}
@@ -0,0 +1,48 @@
1
+ import { l as Route, s as NestedRoute } from "./types-DuTa8AVN.mjs";
2
+ import { r as NestedComponentRoute, t as ComponentRoute } from "./component-route-CZawYn61.mjs";
3
+ import { t as Server } from "./server-D9gjszHe.mjs";
4
+ import { t as ComponentServer } from "./component-server-CGzU4bss.mjs";
5
+
6
+ //#region src/server/server-factory.d.ts
7
+
8
+ /**
9
+ * 服务器工厂类
10
+ * 用于创建和管理不同类型的服务器
11
+ */
12
+ declare class ServerFactory {
13
+ private servers;
14
+ /**
15
+ * 创建标准REST API服务器
16
+ */
17
+ createRestServer(routes: (Route | NestedRoute)[]): Server;
18
+ /**
19
+ * 创建组件服务器
20
+ */
21
+ createComponentServer(routes: (ComponentRoute | NestedComponentRoute)[]): ComponentServer;
22
+ /**
23
+ * 获取指定类型的服务器
24
+ */
25
+ getServer(type: "rest" | "component"): Server | ComponentServer | undefined;
26
+ /**
27
+ * 获取所有服务器
28
+ */
29
+ getAllServers(): Map<string, Server | ComponentServer>;
30
+ /**
31
+ * 移除指定类型的服务器
32
+ */
33
+ removeServer(type: string): boolean;
34
+ /**
35
+ * 清除所有服务器
36
+ */
37
+ clearServers(): void;
38
+ /**
39
+ * 获取服务器状态信息
40
+ */
41
+ getServerStatus(): Record<string, {
42
+ type: string;
43
+ routes: number;
44
+ }>;
45
+ }
46
+ //#endregion
47
+ export { ServerFactory as t };
48
+ //# sourceMappingURL=index-Ci52vt55.d.mts.map
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,30 @@
1
+ import { a as Method, c as ResponseBody, l as Route, n as FlattenedRoute, o as Middleware, r as Handler, s as NestedRoute } from "./types-DuTa8AVN.mjs";
2
+ import { c as createTypedRoute, l as isTypedRoute, n as CompatibleRoute, o as NestedRouteConfig, r as ExtendedRouteConfig, s as TypedRoute, t as BaseRouteConfig } from "./route-BJ-40LNI.mjs";
3
+ import { n as FlattenedComponentRoute, r as NestedComponentRoute, t as ComponentRoute } from "./component-route-CZawYn61.mjs";
4
+ import { a as TypedHandler, i as RouteSchema, n as HandlerContextWithExtra, o as TypedRouteConfig, r as InferSchema, t as HandlerContext } from "./schema-CPQudJpE.mjs";
5
+ import "./index-CzItj62a.mjs";
6
+ import { i as simpleHandler, n as createHandler, r as createHandlerWithExtra, t as InferableHandler } from "./create-handler-Bo-hvWp-.mjs";
7
+ import { InferableRoute, RouteDefinition, defineRoutes, del, get, patch, post, put, route } from "./defineRoute.mjs";
8
+ import { t as BaseServer } from "./base-server-DvGS6ATg.mjs";
9
+ import { t as Server } from "./server-D9gjszHe.mjs";
10
+ import { t as DependencyManager } from "./dependency-manager-C6vFWP2L.mjs";
11
+ import { t as ComponentServer } from "./component-server-CGzU4bss.mjs";
12
+ import { t as ServerFactory } from "./index-Ci52vt55.mjs";
13
+ import { VafastError, composeMiddleware } from "./middleware.mjs";
14
+ import { a as parseBody, c as parseCookiesFast, d as parseHeaders, f as parseQuery, i as getHeader, p as parseQueryFast, r as getCookie, s as parseCookies } from "./parsers-7lvt3Oss.mjs";
15
+ import { a as redirect, n as html, o as stream, r as json, s as text, t as empty } from "./response-A-sZZiJ7.mjs";
16
+ import { t as goAwait } from "./go-await-DRItVwwh.mjs";
17
+ import { n as base64urlEncode, t as base64urlDecode } from "./base64url-0N9uQPjZ.mjs";
18
+ import { i as setLocals, n as getLocals } from "./handle-D0TFoOiX.mjs";
19
+ import { a as ValidationError, c as getValidatorCacheStats, d as validateFast, f as validateSchema, l as precompileSchemas, o as ValidationResult, p as validateSchemaOrThrow, s as createValidator, t as SchemaConfig, u as validateAllSchemas } from "./validators-CPmnj_y9.mjs";
20
+ import { a as parseAndValidateRequest, i as createRequestValidator, o as parseRequest, s as validateRequest } from "./request-validator-42lY21gn.mjs";
21
+ import { t as HtmlRenderer } from "./html-renderer-CMGKJoIy.mjs";
22
+ import { i as registerFormats, n as hasFormat, r as registerFormat, t as Patterns } from "./formats-CYLwo9GJ.mjs";
23
+ import { a as createSSEHandler, i as SSEMarker, r as SSEHandler, t as SSEEvent } from "./sse-BMM6KTfy.mjs";
24
+ import { a as getAllRoutes, i as filterRoutes, n as RouteRegistry, o as getRoute, r as createRouteRegistry, s as getRouteRegistry, t as RouteMeta } from "./route-registry--tx1PNui.mjs";
25
+ import "./utils/index.mjs";
26
+ import { flattenNestedRoutes, normalizePath } from "./router.mjs";
27
+ import { i as ServeResult, o as serve, r as ServeOptions, t as FetchHandler } from "./serve-B5WmhK6m.mjs";
28
+ import "./serve.mjs";
29
+ import { FormatRegistry, Type } from "@sinclair/typebox";
30
+ export { BaseRouteConfig, BaseServer, CompatibleRoute, ComponentRoute, ComponentServer, DependencyManager, ExtendedRouteConfig, type FetchHandler, FlattenedComponentRoute, FlattenedRoute, FormatRegistry, Handler, HandlerContext, HandlerContextWithExtra, HtmlRenderer, InferSchema, InferableHandler, InferableRoute, Method, Middleware, NestedComponentRoute, NestedRoute, NestedRouteConfig, Patterns, ResponseBody, Route, RouteDefinition, RouteMeta, RouteRegistry, RouteSchema, SSEEvent, SSEHandler, SSEMarker, SchemaConfig, type ServeOptions, type ServeResult, Server, ServerFactory, Type, TypedHandler, TypedRoute, TypedRouteConfig, VafastError, ValidationError, ValidationResult, base64urlDecode, base64urlEncode, composeMiddleware, createHandler, createHandlerWithExtra, createRequestValidator, createRouteRegistry, createSSEHandler, createTypedRoute, createValidator, defineRoutes, del, empty, filterRoutes, flattenNestedRoutes, get, getAllRoutes, getCookie, getHeader, getLocals, getRoute, getRouteRegistry, getValidatorCacheStats, goAwait, hasFormat, html, isTypedRoute, json, normalizePath, parseAndValidateRequest, parseBody, parseCookies, parseCookiesFast, parseHeaders, parseQuery, parseQueryFast, parseRequest, patch, post, precompileSchemas, put, redirect, registerFormat, registerFormats, route, serve, setLocals, simpleHandler, stream, text, validateAllSchemas, validateFast, validateRequest, validateSchema, validateSchemaOrThrow };
package/dist/index.mjs ADDED
@@ -0,0 +1,37 @@
1
+ import { defineRoutes, del, get, patch, post, put, route } from "./defineRoute.mjs";
2
+ import { n as init_router, r as normalizePath, t as flattenNestedRoutes } from "./router-B9HUUCkR.mjs";
3
+ import { c as text, i as json, n as html, o as redirect, s as stream, t as empty } from "./response-DXg4i_yh.mjs";
4
+ import { n as composeMiddleware, r as init_middleware, t as VafastError } from "./middleware-Byp3Hjae.mjs";
5
+ import { t as BaseServer } from "./base-server-CSkyjEaY.mjs";
6
+ import { a as getRoute, i as getAllRoutes, n as createRouteRegistry, o as getRouteRegistry, r as filterRoutes, t as RouteRegistry } from "./route-registry-mcTG0M-t.mjs";
7
+ import { t as Server } from "./server-BmPKs8oM.mjs";
8
+ import { t as HtmlRenderer } from "./html-renderer-CczE8mwC.mjs";
9
+ import { t as DependencyManager } from "./dependency-manager-Czg7Po2j.mjs";
10
+ import { t as ComponentServer } from "./component-server-DAbIyIPI.mjs";
11
+ import { r as ServerFactory, t as init_server } from "./server-Cbd3Ia51.mjs";
12
+ import { a as parseCookies, d as parseQueryFast, l as parseHeaders, n as getHeader, o as parseCookiesFast, r as parseBody, t as getCookie, u as parseQuery } from "./parsers-CI_TZ7pO.mjs";
13
+ import { t as goAwait } from "./go-await-BGAGJfrB.mjs";
14
+ import { a as validateAllSchemas, c as validateSchemaOrThrow, i as precompileSchemas, n as createValidator, o as validateFast, r as getValidatorCacheStats, s as validateSchema } from "./validators-BBrGePBr.mjs";
15
+ import { n as createHandlerWithExtra, r as simpleHandler, t as createHandler } from "./create-handler-B_pfxh3m.mjs";
16
+ import { n as base64urlEncode, t as base64urlDecode } from "./base64url-CwQnvZyp.mjs";
17
+ import { i as setLocals, n as getLocals } from "./handle-Csjtywdc.mjs";
18
+ import { i as validateRequest, n as parseAndValidateRequest, r as parseRequest, t as createRequestValidator } from "./request-validator-_J5HloRq.mjs";
19
+ import { Patterns, hasFormat, registerFormat, registerFormats } from "./utils/formats.mjs";
20
+ import { t as createSSEHandler } from "./sse-BT5yyLgX.mjs";
21
+ import "./utils/index.mjs";
22
+ import { n as isTypedRoute, t as createTypedRoute } from "./route-9pAVP1GC.mjs";
23
+ import "./types/index.mjs";
24
+ import "./request-CKC3Ox6M.mjs";
25
+ import { n as serve } from "./serve-Be6NvuQk.mjs";
26
+ import "./serve.mjs";
27
+ import { FormatRegistry, Type } from "@sinclair/typebox";
28
+
29
+ //#region src/index.ts
30
+ init_server();
31
+ init_middleware();
32
+ init_router();
33
+ registerFormats();
34
+
35
+ //#endregion
36
+ export { BaseServer, ComponentServer, DependencyManager, FormatRegistry, HtmlRenderer, Patterns, RouteRegistry, Server, ServerFactory, Type, VafastError, base64urlDecode, base64urlEncode, composeMiddleware, createHandler, createHandlerWithExtra, createRequestValidator, createRouteRegistry, createSSEHandler, createTypedRoute, createValidator, defineRoutes, del, empty, filterRoutes, flattenNestedRoutes, get, getAllRoutes, getCookie, getHeader, getLocals, getRoute, getRouteRegistry, getValidatorCacheStats, goAwait, hasFormat, html, isTypedRoute, json, normalizePath, parseAndValidateRequest, parseBody, parseCookies, parseCookiesFast, parseHeaders, parseQuery, parseQueryFast, parseRequest, patch, post, precompileSchemas, put, redirect, registerFormat, registerFormats, route, serve, setLocals, simpleHandler, stream, text, validateAllSchemas, validateFast, validateRequest, validateSchema, validateSchemaOrThrow };
37
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["export * from \"./server\";\nexport * from \"./middleware\";\nexport * from \"./utils\";\nexport * from \"./router\";\nexport * from \"./defineRoute\";\nexport * from \"./types\";\n\n// 统一的 serve 函数\nexport { serve } from \"./serve\";\nexport type { ServeOptions, ServeResult, FetchHandler } from \"./serve\";\n\n// 重新导出 TypeBox 类型\nexport { Type, FormatRegistry } from \"@sinclair/typebox\";\n\n// 自动注册内置 format 验证器\nimport { registerFormats } from \"./utils/formats\";\nregisterFormats();\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,iBAAiB"}
@@ -1,8 +1,10 @@
1
+ //#region src/middleware/component-renderer.d.ts
1
2
  /**
2
3
  * 组件渲染中间件 - 专注 SSR
3
4
  * 支持 Vue 和 React 的服务端渲染
4
5
  */
5
6
  declare const vueRenderer: (preloadedDeps?: any) => (req: Request, next: () => Promise<Response>) => Promise<Response>;
6
7
  declare const reactRenderer: (preloadedDeps?: any) => (req: Request, next: () => Promise<Response>) => Promise<Response>;
7
-
8
+ //#endregion
8
9
  export { reactRenderer, vueRenderer };
10
+ //# sourceMappingURL=component-renderer.d.mts.map
@@ -0,0 +1,119 @@
1
+ //#region src/middleware/component-renderer.ts
2
+ /**
3
+ * 组件渲染中间件 - 专注 SSR
4
+ * 支持 Vue 和 React 的服务端渲染
5
+ */
6
+ const renderVueSSR = async (componentImport, req, preloadedDeps) => {
7
+ try {
8
+ const { createSSRApp, renderToString } = preloadedDeps || await Promise.all([import("vue"), import("@vue/server-renderer")]).then(([vue, renderer]) => ({
9
+ createSSRApp: vue.createSSRApp,
10
+ renderToString: renderer.renderToString
11
+ }));
12
+ const componentModule = await componentImport();
13
+ const app = createSSRApp(componentModule.default || componentModule);
14
+ app.provide("routeInfo", {
15
+ params: req.params || {},
16
+ query: Object.fromEntries(new URL(req.url).searchParams),
17
+ pathname: new URL(req.url).pathname
18
+ });
19
+ const html = await renderToString(app);
20
+ return new Response(`
21
+ <!doctype html>
22
+ <html>
23
+ <head>
24
+ <meta charset="utf-8">
25
+ <title>Vue SSR App</title>
26
+ </head>
27
+ <body>
28
+ <div id="app">${html}</div>
29
+ <script>
30
+ window.__ROUTE_INFO__ = {
31
+ params: ${JSON.stringify(req.params || {})},
32
+ query: ${JSON.stringify(Object.fromEntries(new URL(req.url).searchParams))},
33
+ pathname: '${new URL(req.url).pathname}'
34
+ };
35
+ <\/script>
36
+ <script type="module" src="/client.js"><\/script>
37
+ </body>
38
+ </html>
39
+ `, { headers: { "Content-Type": "text/html; charset=utf-8" } });
40
+ } catch (error) {
41
+ console.error("Vue SSR 渲染失败:", error);
42
+ return new Response(`
43
+ <!doctype html>
44
+ <html>
45
+ <head><title>渲染错误</title></head>
46
+ <body>
47
+ <h1>Vue SSR 渲染失败</h1>
48
+ <p>错误信息: ${error instanceof Error ? error.message : "未知错误"}</p>
49
+ </body>
50
+ </html>
51
+ `, { status: 500 });
52
+ }
53
+ };
54
+ const renderReactSSR = async (componentImport, req, preloadedDeps) => {
55
+ try {
56
+ const { createElement, renderToString } = preloadedDeps || await Promise.all([import("react"), import("react-dom/server")]).then(([react, renderer]) => ({
57
+ createElement: react.createElement,
58
+ renderToString: renderer.renderToString
59
+ }));
60
+ const componentModule = await componentImport();
61
+ const html = renderToString(createElement(componentModule.default || componentModule, {
62
+ req,
63
+ params: req.params || {},
64
+ query: Object.fromEntries(new URL(req.url).searchParams)
65
+ }));
66
+ return new Response(`
67
+ <!doctype html>
68
+ <html>
69
+ <head>
70
+ <meta charset="utf-8">
71
+ <title>React SSR App</title>
72
+ </head>
73
+ <body>
74
+ <div id="root">${html}</div>
75
+ <script>
76
+ window.__ROUTE_INFO__ = {
77
+ params: ${JSON.stringify(req.params || {})},
78
+ query: ${JSON.stringify(Object.fromEntries(new URL(req.url).searchParams))},
79
+ pathname: '${new URL(req.url).pathname}'
80
+ };
81
+ <\/script>
82
+ <script type="module" src="/client.js"><\/script>
83
+ </body>
84
+ </html>
85
+ `, { headers: { "Content-Type": "text/html; charset=utf-8" } });
86
+ } catch (error) {
87
+ console.error("React SSR 渲染失败:", error);
88
+ return new Response(`
89
+ <!doctype html>
90
+ <html>
91
+ <head><title>渲染错误</title></head>
92
+ <body>
93
+ <h1>React SSR 渲染失败</h1>
94
+ <p>错误信息: ${error instanceof Error ? error.message : "未知错误"}</p>
95
+ </body>
96
+ </html>
97
+ `, { status: 500 });
98
+ }
99
+ };
100
+ const vueRenderer = (preloadedDeps) => {
101
+ return async (req, next) => {
102
+ req.renderVue = async (componentImport) => {
103
+ return await renderVueSSR(componentImport, req, preloadedDeps);
104
+ };
105
+ return next();
106
+ };
107
+ };
108
+ const reactRenderer = (preloadedDeps) => {
109
+ return async (req, next) => {
110
+ req.renderReact = async (componentImport) => {
111
+ return await renderReactSSR(componentImport, req, preloadedDeps);
112
+ };
113
+ return next();
114
+ };
115
+ };
116
+
117
+ //#endregion
118
+ export { reactRenderer, vueRenderer };
119
+ //# sourceMappingURL=component-renderer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-renderer.mjs","names":[],"sources":["../../src/middleware/component-renderer.ts"],"sourcesContent":["/**\n * 组件渲染中间件 - 专注 SSR\n * 支持 Vue 和 React 的服务端渲染\n */\n\n// Vue SSR 渲染\nconst renderVueSSR = async (\n componentImport: () => Promise<any>,\n req: Request,\n preloadedDeps?: any,\n) => {\n try {\n // 使用预加载的依赖或动态导入\n const { createSSRApp, renderToString } =\n preloadedDeps ||\n (await Promise.all([import(\"vue\"), import(\"@vue/server-renderer\")]).then(\n ([vue, renderer]) => ({\n createSSRApp: vue.createSSRApp,\n renderToString: renderer.renderToString,\n }),\n ));\n\n const componentModule = await componentImport();\n const component = componentModule.default || componentModule;\n\n const app = createSSRApp(component);\n\n // 提供路由信息\n app.provide(\"routeInfo\", {\n params: (req as any).params || {},\n query: Object.fromEntries(new URL(req.url).searchParams),\n pathname: new URL(req.url).pathname,\n });\n\n const html = await renderToString(app);\n\n return new Response(\n `\n <!doctype html>\n <html>\n <head>\n <meta charset=\"utf-8\">\n <title>Vue SSR App</title>\n </head>\n <body>\n <div id=\"app\">${html}</div>\n <script>\n window.__ROUTE_INFO__ = {\n params: ${JSON.stringify((req as any).params || {})},\n query: ${JSON.stringify(Object.fromEntries(new URL(req.url).searchParams))},\n pathname: '${new URL(req.url).pathname}'\n };\n </script>\n <script type=\"module\" src=\"/client.js\"></script>\n </body>\n </html>\n `,\n {\n headers: { \"Content-Type\": \"text/html; charset=utf-8\" },\n },\n );\n } catch (error) {\n console.error(\"Vue SSR 渲染失败:\", error);\n return new Response(\n `\n <!doctype html>\n <html>\n <head><title>渲染错误</title></head>\n <body>\n <h1>Vue SSR 渲染失败</h1>\n <p>错误信息: ${error instanceof Error ? error.message : \"未知错误\"}</p>\n </body>\n </html>\n `,\n { status: 500 },\n );\n }\n};\n\n// React SSR 渲染\nconst renderReactSSR = async (\n componentImport: () => Promise<any>,\n req: Request,\n preloadedDeps?: any,\n) => {\n try {\n // 使用预加载的依赖或动态导入\n const { createElement, renderToString } =\n preloadedDeps ||\n (await Promise.all([import(\"react\"), import(\"react-dom/server\")]).then(\n ([react, renderer]) => ({\n createElement: react.createElement,\n renderToString: renderer.renderToString,\n }),\n ));\n\n const componentModule = await componentImport();\n const Component = componentModule.default || componentModule;\n\n const content = createElement(Component, {\n req,\n params: (req as any).params || {},\n query: Object.fromEntries(new URL(req.url).searchParams),\n });\n\n const html = renderToString(content);\n\n return new Response(\n `\n <!doctype html>\n <html>\n <head>\n <meta charset=\"utf-8\">\n <title>React SSR App</title>\n </head>\n <body>\n <div id=\"root\">${html}</div>\n <script>\n window.__ROUTE_INFO__ = {\n params: ${JSON.stringify((req as any).params || {})},\n query: ${JSON.stringify(Object.fromEntries(new URL(req.url).searchParams))},\n pathname: '${new URL(req.url).pathname}'\n };\n </script>\n <script type=\"module\" src=\"/client.js\"></script>\n </body>\n </html>\n `,\n {\n headers: { \"Content-Type\": \"text/html; charset=utf-8\" },\n },\n );\n } catch (error) {\n console.error(\"React SSR 渲染失败:\", error);\n return new Response(\n `\n <!doctype html>\n <html>\n <head><title>渲染错误</title></head>\n <body>\n <h1>React SSR 渲染失败</h1>\n <p>错误信息: ${error instanceof Error ? error.message : \"未知错误\"}</p>\n </body>\n </html>\n `,\n { status: 500 },\n );\n }\n};\n\n// Vue 组件渲染器 - 专注 SSR\nexport const vueRenderer = (preloadedDeps?: any) => {\n return async (req: Request, next: () => Promise<Response>) => {\n (req as any).renderVue = async (componentImport: () => Promise<any>) => {\n return await renderVueSSR(componentImport, req, preloadedDeps);\n };\n return next();\n };\n};\n\n// React 组件渲染器 - 专注 SSR\nexport const reactRenderer = (preloadedDeps?: any) => {\n return async (req: Request, next: () => Promise<Response>) => {\n (req as any).renderReact = async (componentImport: () => Promise<any>) => {\n return await renderReactSSR(componentImport, req, preloadedDeps);\n };\n return next();\n };\n};\n"],"mappings":";;;;;AAMA,MAAM,eAAe,OACnB,iBACA,KACA,kBACG;AACH,KAAI;EAEF,MAAM,EAAE,cAAc,mBACpB,iBACC,MAAM,QAAQ,IAAI,CAAC,OAAO,QAAQ,OAAO,wBAAwB,CAAC,CAAC,MACjE,CAAC,KAAK,eAAe;GACpB,cAAc,IAAI;GAClB,gBAAgB,SAAS;GAC1B,EACF;EAEH,MAAM,kBAAkB,MAAM,iBAAiB;EAG/C,MAAM,MAAM,aAFM,gBAAgB,WAAW,gBAEV;AAGnC,MAAI,QAAQ,aAAa;GACvB,QAAS,IAAY,UAAU,EAAE;GACjC,OAAO,OAAO,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa;GACxD,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC;GAC5B,CAAC;EAEF,MAAM,OAAO,MAAM,eAAe,IAAI;AAEtC,SAAO,IAAI,SACT;;;;;;;;0BAQoB,KAAK;;;wBAGP,KAAK,UAAW,IAAY,UAAU,EAAE,CAAC,CAAC;uBAC3C,KAAK,UAAU,OAAO,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;2BAC9D,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS;;;;;;OAO/C,EACE,SAAS,EAAE,gBAAgB,4BAA4B,EACxD,CACF;UACM,OAAO;AACd,UAAQ,MAAM,iBAAiB,MAAM;AACrC,SAAO,IAAI,SACT;;;;;;qBAMe,iBAAiB,QAAQ,MAAM,UAAU,OAAO;;;OAI/D,EAAE,QAAQ,KAAK,CAChB;;;AAKL,MAAM,iBAAiB,OACrB,iBACA,KACA,kBACG;AACH,KAAI;EAEF,MAAM,EAAE,eAAe,mBACrB,iBACC,MAAM,QAAQ,IAAI,CAAC,OAAO,UAAU,OAAO,oBAAoB,CAAC,CAAC,MAC/D,CAAC,OAAO,eAAe;GACtB,eAAe,MAAM;GACrB,gBAAgB,SAAS;GAC1B,EACF;EAEH,MAAM,kBAAkB,MAAM,iBAAiB;EAS/C,MAAM,OAAO,eANG,cAFE,gBAAgB,WAAW,iBAEJ;GACvC;GACA,QAAS,IAAY,UAAU,EAAE;GACjC,OAAO,OAAO,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa;GACzD,CAAC,CAEkC;AAEpC,SAAO,IAAI,SACT;;;;;;;;2BAQqB,KAAK;;;wBAGR,KAAK,UAAW,IAAY,UAAU,EAAE,CAAC,CAAC;uBAC3C,KAAK,UAAU,OAAO,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;2BAC9D,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS;;;;;;OAO/C,EACE,SAAS,EAAE,gBAAgB,4BAA4B,EACxD,CACF;UACM,OAAO;AACd,UAAQ,MAAM,mBAAmB,MAAM;AACvC,SAAO,IAAI,SACT;;;;;;qBAMe,iBAAiB,QAAQ,MAAM,UAAU,OAAO;;;OAI/D,EAAE,QAAQ,KAAK,CAChB;;;AAKL,MAAa,eAAe,kBAAwB;AAClD,QAAO,OAAO,KAAc,SAAkC;AAC5D,EAAC,IAAY,YAAY,OAAO,oBAAwC;AACtE,UAAO,MAAM,aAAa,iBAAiB,KAAK,cAAc;;AAEhE,SAAO,MAAM;;;AAKjB,MAAa,iBAAiB,kBAAwB;AACpD,QAAO,OAAO,KAAc,SAAkC;AAC5D,EAAC,IAAY,cAAc,OAAO,oBAAwC;AACxE,UAAO,MAAM,eAAe,iBAAiB,KAAK,cAAc;;AAElE,SAAO,MAAM"}
@@ -1,6 +1,6 @@
1
- import { ComponentRoute, NestedComponentRoute, FlattenedComponentRoute } from '../types/component-route.js';
2
- import '../types/route.js';
3
- import '../types/types.js';
1
+ import { n as FlattenedComponentRoute, r as NestedComponentRoute, t as ComponentRoute } from "../component-route-CZawYn61.mjs";
2
+
3
+ //#region src/middleware/component-router.d.ts
4
4
 
5
5
  /**
6
6
  * 扁平化嵌套组件路由
@@ -11,5 +11,6 @@ declare function flattenComponentRoutes(routes: (ComponentRoute | NestedComponen
11
11
  * 自动检测组件类型并应用相应的渲染器
12
12
  */
13
13
  declare const componentRouter: () => (req: Request, next: () => Promise<Response>) => Promise<Response>;
14
-
14
+ //#endregion
15
15
  export { componentRouter, flattenComponentRoutes };
16
+ //# sourceMappingURL=component-router.d.mts.map
@@ -0,0 +1,4 @@
1
+ import { n as flattenComponentRoutes, r as init_component_router, t as componentRouter } from "../component-router-CErbGh2A.mjs";
2
+
3
+ init_component_router();
4
+ export { componentRouter, flattenComponentRoutes };
@@ -0,0 +1,59 @@
1
+ import { t as __esmMin } from "./chunk-DW4-Jl94.mjs";
2
+ import { a as mapResponse, i as json, r as init_response } from "./response-DXg4i_yh.mjs";
3
+
4
+ //#region src/middleware.ts
5
+ /**
6
+ * 组合类型: 自动注入错误处理器进行中间件组合
7
+ */
8
+ function composeMiddleware(middleware, finalHandler) {
9
+ const all = [errorHandler, ...middleware];
10
+ return function composedHandler(req) {
11
+ let i = -1;
12
+ const dispatch = (index) => {
13
+ if (index <= i) return Promise.reject(/* @__PURE__ */ new Error("next() called multiple times"));
14
+ i = index;
15
+ if (index < all.length) {
16
+ const mw = all[index];
17
+ return Promise.resolve(mw(req, () => dispatch(index + 1)));
18
+ }
19
+ return Promise.resolve(finalHandler(req)).then(mapResponse);
20
+ };
21
+ return dispatch(0);
22
+ };
23
+ }
24
+ var VafastError, errorHandler;
25
+ var init_middleware = __esmMin((() => {
26
+ init_response();
27
+ VafastError = class extends Error {
28
+ status;
29
+ type;
30
+ expose;
31
+ constructor(message, options = {}) {
32
+ super(message);
33
+ this.name = "VafastError";
34
+ this.status = options.status ?? 500;
35
+ this.type = options.type ?? "internal_error";
36
+ this.expose = options.expose ?? false;
37
+ if (options.cause) this.cause = options.cause;
38
+ }
39
+ };
40
+ errorHandler = async (req, next) => {
41
+ try {
42
+ return await next();
43
+ } catch (err) {
44
+ console.error("未处理的错误:", err);
45
+ if (err instanceof VafastError) return json({
46
+ error: err.type,
47
+ message: err.expose ? err.message : "发生了一个错误"
48
+ }, err.status);
49
+ return json({
50
+ error: "internal_error",
51
+ message: "出现了一些问题"
52
+ }, 500);
53
+ }
54
+ };
55
+ }));
56
+
57
+ //#endregion
58
+ export { composeMiddleware as n, init_middleware as r, VafastError as t };
59
+ //# sourceMappingURL=middleware-Byp3Hjae.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware-Byp3Hjae.mjs","names":[],"sources":["../src/middleware.ts"],"sourcesContent":["// src/middleware.ts\n\nimport { json, mapResponse } from \"./utils/response\";\n\nimport type { Handler, Middleware } from \"./types\";\n/** 中间件类型:使用 next() 传递给下一个处理 */\n\n/** Vafast 自定义错误类型 */\nexport class VafastError extends Error {\n status: number;\n type: string;\n expose: boolean;\n\n constructor(\n message: string,\n options: {\n status?: number;\n type?: string;\n expose?: boolean;\n cause?: unknown;\n } = {},\n ) {\n super(message);\n this.name = \"VafastError\";\n this.status = options.status ?? 500;\n this.type = options.type ?? \"internal_error\";\n this.expose = options.expose ?? false;\n if (options.cause) (this as any).cause = options.cause;\n }\n}\n\n/**\n * 组合类型: 自动注入错误处理器进行中间件组合\n */\nexport function composeMiddleware(\n middleware: Middleware[],\n finalHandler: Handler,\n): (req: Request) => Promise<Response> {\n const all = [errorHandler, ...middleware];\n\n return function composedHandler(req: Request): Promise<Response> {\n let i = -1;\n\n const dispatch = (index: number): Promise<Response> => {\n if (index <= i)\n return Promise.reject(new Error(\"next() called multiple times\"));\n i = index;\n\n // 中间件阶段\n if (index < all.length) {\n const mw = all[index];\n return Promise.resolve(mw(req, () => dispatch(index + 1)));\n }\n\n // 最终 handler - 使用 mapResponse 转换返回值\n return Promise.resolve(finalHandler(req)).then(mapResponse);\n };\n\n return dispatch(0);\n };\n}\n\n/** 默认包含的全局错误处理器 */\nconst errorHandler: Middleware = async (req, next) => {\n try {\n return await next();\n } catch (err) {\n console.error(\"未处理的错误:\", err);\n\n if (err instanceof VafastError) {\n return json(\n {\n error: err.type,\n message: err.expose ? err.message : \"发生了一个错误\",\n },\n err.status,\n );\n }\n\n return json({ error: \"internal_error\", message: \"出现了一些问题\" }, 500);\n }\n};\n"],"mappings":";;;;;;;AAkCA,SAAgB,kBACd,YACA,cACqC;CACrC,MAAM,MAAM,CAAC,cAAc,GAAG,WAAW;AAEzC,QAAO,SAAS,gBAAgB,KAAiC;EAC/D,IAAI,IAAI;EAER,MAAM,YAAY,UAAqC;AACrD,OAAI,SAAS,EACX,QAAO,QAAQ,uBAAO,IAAI,MAAM,+BAA+B,CAAC;AAClE,OAAI;AAGJ,OAAI,QAAQ,IAAI,QAAQ;IACtB,MAAM,KAAK,IAAI;AACf,WAAO,QAAQ,QAAQ,GAAG,WAAW,SAAS,QAAQ,EAAE,CAAC,CAAC;;AAI5D,UAAO,QAAQ,QAAQ,aAAa,IAAI,CAAC,CAAC,KAAK,YAAY;;AAG7D,SAAO,SAAS,EAAE;;;;;gBAxD+B;CAMxC,cAAb,cAAiC,MAAM;EACrC;EACA;EACA;EAEA,YACE,SACA,UAKI,EAAE,EACN;AACA,SAAM,QAAQ;AACd,QAAK,OAAO;AACZ,QAAK,SAAS,QAAQ,UAAU;AAChC,QAAK,OAAO,QAAQ,QAAQ;AAC5B,QAAK,SAAS,QAAQ,UAAU;AAChC,OAAI,QAAQ,MAAO,CAAC,KAAa,QAAQ,QAAQ;;;CAoC/C,eAA2B,OAAO,KAAK,SAAS;AACpD,MAAI;AACF,UAAO,MAAM,MAAM;WACZ,KAAK;AACZ,WAAQ,MAAM,WAAW,IAAI;AAE7B,OAAI,eAAe,YACjB,QAAO,KACL;IACE,OAAO,IAAI;IACX,SAAS,IAAI,SAAS,IAAI,UAAU;IACrC,EACD,IAAI,OACL;AAGH,UAAO,KAAK;IAAE,OAAO;IAAkB,SAAS;IAAW,EAAE,IAAI"}
@@ -0,0 +1,25 @@
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
@@ -0,0 +1,4 @@
1
+ import { n as composeMiddleware, r as init_middleware, t as VafastError } from "./middleware-Byp3Hjae.mjs";
2
+
3
+ init_middleware();
4
+ export { VafastError, composeMiddleware };
@@ -0,0 +1,33 @@
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
@@ -0,0 +1,27 @@
1
+ import "../dependency-manager-Czg7Po2j.mjs";
2
+ import "../component-server-DAbIyIPI.mjs";
3
+ import "../server-Cbd3Ia51.mjs";
4
+ import "./types.mjs";
5
+ import { createMonitoredServer, withMonitoring } from "./native-monitor.mjs";
6
+
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/monitoring/index.ts"],"sourcesContent":["/**\n * 原生监控系统入口\n *\n * @author Framework Team\n * @version 2.0.0\n * @license MIT\n */\n\nexport * from \"./types\";\nexport * from \"./native-monitor\";\n\n// 默认监控配置\nexport const defaultMonitoringConfig = {\n enabled: true,\n console: true,\n slowThreshold: 1000, // 1秒\n errorThreshold: 0.05, // 5%\n tags: {\n framework: \"vafast\",\n version: \"2.0.0\",\n },\n};\n\n// 创建监控配置\nexport function createMonitoringConfig(\n config: Partial<typeof defaultMonitoringConfig> = {},\n) {\n return { ...defaultMonitoringConfig, ...config };\n}\n"],"mappings":";;;;;;;AAYA,MAAa,0BAA0B;CACrC,SAAS;CACT,SAAS;CACT,eAAe;CACf,gBAAgB;CAChB,MAAM;EACJ,WAAW;EACX,SAAS;EACV;CACF;AAGD,SAAgB,uBACd,SAAkD,EAAE,EACpD;AACA,QAAO;EAAE,GAAG;EAAyB,GAAG;EAAQ"}