@dangao/bun-server 2.2.0 → 3.0.0

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 (166) hide show
  1. package/README.md +81 -3
  2. package/dist/ai/providers/anthropic-provider.d.ts.map +1 -1
  3. package/dist/ai/providers/google-provider.d.ts.map +1 -1
  4. package/dist/ai/providers/ollama-provider.d.ts.map +1 -1
  5. package/dist/ai/providers/openai-provider.d.ts.map +1 -1
  6. package/dist/ai/service.d.ts.map +1 -1
  7. package/dist/ai/types.d.ts +5 -0
  8. package/dist/ai/types.d.ts.map +1 -1
  9. package/dist/auth/jwt.d.ts.map +1 -1
  10. package/dist/config/service.d.ts +0 -1
  11. package/dist/config/service.d.ts.map +1 -1
  12. package/dist/core/application.d.ts +30 -0
  13. package/dist/core/application.d.ts.map +1 -1
  14. package/dist/core/cluster.d.ts.map +1 -1
  15. package/dist/core/context.d.ts +5 -0
  16. package/dist/core/context.d.ts.map +1 -1
  17. package/dist/core/server.d.ts +29 -9
  18. package/dist/core/server.d.ts.map +1 -1
  19. package/dist/dashboard/controller.d.ts.map +1 -1
  20. package/dist/database/connection-pool.d.ts +3 -3
  21. package/dist/database/connection-pool.d.ts.map +1 -1
  22. package/dist/database/sql-manager.d.ts +8 -4
  23. package/dist/database/sql-manager.d.ts.map +1 -1
  24. package/dist/database/sqlite-adapter.d.ts +7 -3
  25. package/dist/database/sqlite-adapter.d.ts.map +1 -1
  26. package/dist/debug/recorder.d.ts +0 -1
  27. package/dist/debug/recorder.d.ts.map +1 -1
  28. package/dist/files/static-middleware.d.ts.map +1 -1
  29. package/dist/files/storage.d.ts.map +1 -1
  30. package/dist/index.d.ts +2 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +40335 -3523
  33. package/dist/index.node.mjs +17689 -0
  34. package/dist/mcp/server.d.ts +5 -2
  35. package/dist/mcp/server.d.ts.map +1 -1
  36. package/dist/middleware/builtin/static-file.d.ts +4 -2
  37. package/dist/middleware/builtin/static-file.d.ts.map +1 -1
  38. package/dist/platform/bun/crypto.d.ts +3 -0
  39. package/dist/platform/bun/crypto.d.ts.map +1 -0
  40. package/dist/platform/bun/fs.d.ts +3 -0
  41. package/dist/platform/bun/fs.d.ts.map +1 -0
  42. package/dist/platform/bun/http.d.ts +15 -0
  43. package/dist/platform/bun/http.d.ts.map +1 -0
  44. package/dist/platform/bun/index.d.ts +3 -0
  45. package/dist/platform/bun/index.d.ts.map +1 -0
  46. package/dist/platform/bun/parser.d.ts +3 -0
  47. package/dist/platform/bun/parser.d.ts.map +1 -0
  48. package/dist/platform/bun/process.d.ts +3 -0
  49. package/dist/platform/bun/process.d.ts.map +1 -0
  50. package/dist/platform/detector.d.ts +9 -0
  51. package/dist/platform/detector.d.ts.map +1 -0
  52. package/dist/platform/index.d.ts +4 -0
  53. package/dist/platform/index.d.ts.map +1 -0
  54. package/dist/platform/node/crypto.d.ts +3 -0
  55. package/dist/platform/node/crypto.d.ts.map +1 -0
  56. package/dist/platform/node/fs.d.ts +3 -0
  57. package/dist/platform/node/fs.d.ts.map +1 -0
  58. package/dist/platform/node/http.d.ts +3 -0
  59. package/dist/platform/node/http.d.ts.map +1 -0
  60. package/dist/platform/node/index.d.ts +3 -0
  61. package/dist/platform/node/index.d.ts.map +1 -0
  62. package/dist/platform/node/parser.d.ts +3 -0
  63. package/dist/platform/node/parser.d.ts.map +1 -0
  64. package/dist/platform/node/process.d.ts +3 -0
  65. package/dist/platform/node/process.d.ts.map +1 -0
  66. package/dist/platform/runtime.d.ts +14 -0
  67. package/dist/platform/runtime.d.ts.map +1 -0
  68. package/dist/platform/types.d.ts +139 -0
  69. package/dist/platform/types.d.ts.map +1 -0
  70. package/dist/prompt/stores/file-store.d.ts.map +1 -1
  71. package/dist/rag/service.d.ts.map +1 -1
  72. package/dist/request/response.d.ts +3 -1
  73. package/dist/request/response.d.ts.map +1 -1
  74. package/dist/security/guards/execution-context.d.ts +2 -2
  75. package/dist/security/guards/execution-context.d.ts.map +1 -1
  76. package/dist/security/guards/types.d.ts +2 -2
  77. package/dist/security/guards/types.d.ts.map +1 -1
  78. package/dist/swagger/generator.d.ts.map +1 -1
  79. package/dist/websocket/registry.d.ts +4 -4
  80. package/dist/websocket/registry.d.ts.map +1 -1
  81. package/docs/deployment.md +31 -7
  82. package/docs/design/query-interceptor-design.md +381 -0
  83. package/docs/idle-timeout.md +101 -8
  84. package/docs/migration.md +43 -0
  85. package/docs/platform.md +299 -0
  86. package/docs/testing.md +60 -0
  87. package/docs/zh/deployment.md +30 -7
  88. package/docs/zh/idle-timeout.md +99 -6
  89. package/docs/zh/migration.md +42 -0
  90. package/docs/zh/platform.md +299 -0
  91. package/docs/zh/testing.md +60 -0
  92. package/package.json +24 -6
  93. package/src/ai/providers/anthropic-provider.ts +5 -2
  94. package/src/ai/providers/google-provider.ts +3 -0
  95. package/src/ai/providers/ollama-provider.ts +3 -0
  96. package/src/ai/providers/openai-provider.ts +5 -2
  97. package/src/ai/service.ts +17 -5
  98. package/src/ai/types.ts +5 -0
  99. package/src/auth/jwt.ts +4 -3
  100. package/src/config/service.ts +7 -6
  101. package/src/core/application.ts +38 -1
  102. package/src/core/cluster.ts +16 -14
  103. package/src/core/context.ts +7 -0
  104. package/src/core/server.ts +162 -46
  105. package/src/dashboard/controller.ts +3 -2
  106. package/src/database/connection-pool.ts +32 -20
  107. package/src/database/database-module.ts +1 -1
  108. package/src/database/db-proxy.ts +2 -2
  109. package/src/database/orm/transaction-manager.ts +1 -1
  110. package/src/database/sql-manager.ts +48 -13
  111. package/src/database/sqlite-adapter.ts +45 -12
  112. package/src/debug/recorder.ts +4 -3
  113. package/src/files/static-middleware.ts +3 -2
  114. package/src/files/storage.ts +2 -1
  115. package/src/index.ts +13 -0
  116. package/src/mcp/server.ts +6 -15
  117. package/src/middleware/builtin/static-file.ts +8 -5
  118. package/src/platform/bun/crypto.ts +30 -0
  119. package/src/platform/bun/fs.ts +52 -0
  120. package/src/platform/bun/http.ts +106 -0
  121. package/src/platform/bun/index.ts +17 -0
  122. package/src/platform/bun/parser.ts +19 -0
  123. package/src/platform/bun/process.ts +37 -0
  124. package/src/platform/detector.ts +36 -0
  125. package/src/platform/index.ts +20 -0
  126. package/src/platform/node/crypto.ts +40 -0
  127. package/src/platform/node/fs.ts +115 -0
  128. package/src/platform/node/http.ts +196 -0
  129. package/src/platform/node/index.ts +17 -0
  130. package/src/platform/node/parser.ts +34 -0
  131. package/src/platform/node/process.ts +51 -0
  132. package/src/platform/runtime.ts +50 -0
  133. package/src/platform/types.ts +150 -0
  134. package/src/prompt/stores/file-store.ts +6 -5
  135. package/src/rag/service.ts +2 -1
  136. package/src/request/response.ts +7 -4
  137. package/src/security/guards/execution-context.ts +4 -4
  138. package/src/security/guards/types.ts +2 -2
  139. package/src/swagger/generator.ts +2 -1
  140. package/src/websocket/registry.ts +6 -7
  141. package/tests/controller/path-combination.test.ts +196 -2
  142. package/tests/files/static-middleware.test.ts +5 -2
  143. package/tests/middleware/static-file.test.ts +5 -2
  144. package/tests/platform/bun/crypto.test.ts +8 -0
  145. package/tests/platform/bun/database.test.ts +8 -0
  146. package/tests/platform/bun/fs.test.ts +8 -0
  147. package/tests/platform/bun/parser.test.ts +8 -0
  148. package/tests/platform/bun/process.test.ts +8 -0
  149. package/tests/platform/bun/websocket.test.ts +8 -0
  150. package/tests/platform/detector.test.ts +57 -0
  151. package/tests/platform/node/build-smoke.test.ts +92 -0
  152. package/tests/platform/node/crypto.test.ts +9 -0
  153. package/tests/platform/node/database.test.ts +9 -0
  154. package/tests/platform/node/fs.test.ts +9 -0
  155. package/tests/platform/node/parser.test.ts +9 -0
  156. package/tests/platform/node/process.test.ts +9 -0
  157. package/tests/platform/node/websocket.test.ts +9 -0
  158. package/tests/platform/shared/crypto.cases.ts +49 -0
  159. package/tests/platform/shared/database.cases.ts +43 -0
  160. package/tests/platform/shared/fs.cases.ts +82 -0
  161. package/tests/platform/shared/parser.cases.ts +55 -0
  162. package/tests/platform/shared/process.cases.ts +26 -0
  163. package/tests/platform/shared/suite.ts +33 -0
  164. package/tests/platform/shared/websocket.cases.ts +61 -0
  165. package/tests/request/response.test.ts +5 -2
  166. package/tests/router/router-extended.test.ts +53 -0
@@ -20,8 +20,11 @@ export declare class McpServer {
20
20
  */
21
21
  handleHttp(req: Request): Promise<Response>;
22
22
  /**
23
- * Create an SSE response that keeps the connection open for streaming
24
- * This is the SSE transport endpoint
23
+ * Create an SSE response that keeps the connection open for streaming.
24
+ *
25
+ * Heartbeat / keep-alive pings are handled automatically by the framework's
26
+ * SSE post-processor (`sseKeepAlive`), so this method no longer injects its
27
+ * own `setInterval`.
25
28
  */
26
29
  createSseResponse(): Response;
27
30
  private dispatch;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAExB,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa;IAKnE;;OAEG;IACU,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBtE;;;OAGG;IACU,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQxD;;;OAGG;IACI,iBAAiB,IAAI,QAAQ;YAmCtB,QAAQ;CAkEvB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAExB,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa;IAKnE;;OAEG;IACU,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBtE;;;OAGG;IACU,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQxD;;;;;;OAMG;IACI,iBAAiB,IAAI,QAAQ;YAuBtB,QAAQ;CAkEvB"}
@@ -1,14 +1,16 @@
1
1
  import type { Middleware } from '../middleware';
2
- import type { HeadersInit } from 'bun';
2
+ /** Cross-runtime compatible headers input type */
3
+ type HeadersInput = Headers | string[][] | Record<string, string>;
3
4
  export interface StaticFileOptions {
4
5
  root: string;
5
6
  prefix?: string;
6
7
  indexFile?: string;
7
8
  enableCache?: boolean;
8
- headers?: HeadersInit | Headers;
9
+ headers?: HeadersInput;
9
10
  }
10
11
  /**
11
12
  * 静态文件服务中间件
12
13
  */
13
14
  export declare function createStaticFileMiddleware(options: StaticFileOptions): Middleware;
15
+ export {};
14
16
  //# sourceMappingURL=static-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"static-file.d.ts","sourceRoot":"","sources":["../../../src/middleware/builtin/static-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;AAEtC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;CACjC;AAYD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CA2DjF"}
1
+ {"version":3,"file":"static-file.d.ts","sourceRoot":"","sources":["../../../src/middleware/builtin/static-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,kDAAkD;AAClD,KAAK,YAAY,GAAG,OAAO,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAYD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CA2DjF"}
@@ -0,0 +1,3 @@
1
+ import type { ICryptoAdapter } from '../types';
2
+ export declare const bunCryptoAdapter: ICryptoAdapter;
3
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/platform/bun/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAW,MAAM,UAAU,CAAC;AAyBxD,eAAO,MAAM,gBAAgB,EAAE,cAI9B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IFsAdapter } from '../types';
2
+ export declare const bunFsAdapter: IFsAdapter;
3
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/platform/bun/fs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,UAAU,CAAC;AAsCrD,eAAO,MAAM,YAAY,EAAE,UAa1B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { IHttpDriver, IWebSocket } from '../types';
2
+ /**
3
+ * Bun ServerWebSocket 的 IWebSocket 包装
4
+ */
5
+ export declare class BunWebSocket<T> implements IWebSocket<T> {
6
+ private readonly ws;
7
+ constructor(ws: import('bun').ServerWebSocket<T>);
8
+ get data(): T;
9
+ get readyState(): number;
10
+ send(data: string | Buffer | Uint8Array): void;
11
+ close(code?: number, reason?: string): void;
12
+ getNative(): import('bun').ServerWebSocket<T>;
13
+ }
14
+ export declare const bunHttpAdapter: IHttpDriver;
15
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/platform/bun/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAmC,UAAU,EAAqB,MAAM,UAAU,CAAC;AAE5G;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,OAAO,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;IAExE,IAAW,IAAI,IAAI,CAAC,CAEnB;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAEM,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI;IAI9C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3C,SAAS,IAAI,OAAO,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;CAGrD;AAgDD,eAAO,MAAM,cAAc,EAAE,WA8B5B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IPlatform } from '../types';
2
+ export declare function createBunPlatform(): IPlatform;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/bun/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAO1C,wBAAgB,iBAAiB,IAAI,SAAS,CAS7C"}
@@ -0,0 +1,3 @@
1
+ import type { IParserAdapter } from '../types';
2
+ export declare const bunParserAdapter: IParserAdapter;
3
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/platform/bun/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,gBAAgB,EAAE,cAgB9B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IProcessAdapter } from '../types';
2
+ export declare const bunProcessAdapter: IProcessAdapter;
3
+ //# sourceMappingURL=process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/platform/bun/process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,UAAU,CAAC;AAsB7E,eAAO,MAAM,iBAAiB,EAAE,eAc/B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { PlatformEngine } from './types';
2
+ /**
3
+ * 解析运行时平台引擎
4
+ * 优先级:bootstrap config > CLI arg (--platform=) > env var (BUN_SERVER_PLATFORM) > auto-detect
5
+ *
6
+ * @param bootstrapConfig - 应用启动时显式指定的平台(最高优先级)
7
+ */
8
+ export declare function resolvePlatform(bootstrapConfig?: PlatformEngine): PlatformEngine;
9
+ //# sourceMappingURL=detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/platform/detector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,eAAe,CAAC,EAAE,cAAc,GAAG,cAAc,CA2BhF"}
@@ -0,0 +1,4 @@
1
+ export type { PlatformEngine, IPlatform, IFsAdapter, IFileRef, ICryptoAdapter, IHasher, IParserAdapter, IProcessAdapter, IChildProcess, SpawnOptions, IHttpDriver, IServerHandle, IWebSocket, WebSocketHandlers, HttpServeOptions, } from './types';
2
+ export { resolvePlatform } from './detector';
3
+ export { initRuntime, getRuntime, _resetRuntime } from './runtime';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,SAAS,EACT,UAAU,EACV,QAAQ,EACR,cAAc,EACd,OAAO,EACP,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ICryptoAdapter } from '../types';
2
+ export declare const nodeCryptoAdapter: ICryptoAdapter;
3
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/platform/node/crypto.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAW,MAAM,UAAU,CAAC;AAkCxD,eAAO,MAAM,iBAAiB,EAAE,cAI/B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IFsAdapter } from '../types';
2
+ export declare const nodeFsAdapter: IFsAdapter;
3
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/platform/node/fs.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,UAAU,CAAC;AAuDrD,eAAO,MAAM,aAAa,EAAE,UA6C3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IHttpDriver } from '../types';
2
+ export declare const nodeHttpAdapter: IHttpDriver;
3
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/platform/node/http.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAkE,MAAM,UAAU,CAAC;AAsH5G,eAAO,MAAM,eAAe,EAAE,WA4C7B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IPlatform } from '../types';
2
+ export declare function createNodePlatform(): IPlatform;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAO1C,wBAAgB,kBAAkB,IAAI,SAAS,CAS9C"}
@@ -0,0 +1,3 @@
1
+ import type { IParserAdapter } from '../types';
2
+ export declare const nodeParserAdapter: IParserAdapter;
3
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/platform/node/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,iBAAiB,EAAE,cA+B/B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IProcessAdapter } from '../types';
2
+ export declare const nodeProcessAdapter: IProcessAdapter;
3
+ //# sourceMappingURL=process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/platform/node/process.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,UAAU,CAAC;AAgC7E,eAAO,MAAM,kBAAkB,EAAE,eAiBhC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { IPlatform, PlatformEngine } from './types';
2
+ /**
3
+ * 初始化全局运行时平台
4
+ * 应在 Application 构造函数中最先调用
5
+ *
6
+ * @param engine - 显式指定平台(优先级最高),省略则走优先级检测链
7
+ */
8
+ export declare function initRuntime(engine?: PlatformEngine): void;
9
+ /**
10
+ * 获取当前已初始化的平台运行时
11
+ * 必须在 initRuntime() 调用之后使用
12
+ */
13
+ export declare function getRuntime(): IPlatform;
14
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/platform/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKzD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAezD;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,SAAS,CAStC"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * 支持的运行时平台标识
3
+ */
4
+ export type PlatformEngine = 'bun' | 'node';
5
+ /**
6
+ * 文件引用抽象接口(替代 BunFile 的直接使用)
7
+ */
8
+ export interface IFileRef {
9
+ readonly type: string;
10
+ readonly size: number;
11
+ text(): Promise<string>;
12
+ bytes(): Promise<Uint8Array>;
13
+ arrayBuffer(): Promise<ArrayBuffer>;
14
+ exists(): Promise<boolean>;
15
+ /** 返回可读流,用于 new Response(file.stream(), ...) */
16
+ stream(): ReadableStream<Uint8Array>;
17
+ }
18
+ /**
19
+ * 文件系统适配器接口
20
+ */
21
+ export interface IFsAdapter {
22
+ /** 获取文件引用 */
23
+ file(path: string): IFileRef;
24
+ /** 写入文件 */
25
+ write(path: string, data: string | Uint8Array | ArrayBuffer): Promise<void>;
26
+ /** 匹配文件列表 */
27
+ glob(pattern: string, cwd?: string): string[];
28
+ }
29
+ /**
30
+ * 哈希器接口(替代 Bun.CryptoHasher)
31
+ */
32
+ export interface IHasher {
33
+ update(data: string | Uint8Array | ArrayBuffer): IHasher;
34
+ digest(): Uint8Array;
35
+ digest(encoding: 'hex' | 'base64' | 'base64url'): string;
36
+ }
37
+ /**
38
+ * 加密适配器接口
39
+ */
40
+ export interface ICryptoAdapter {
41
+ createHasher(algorithm: string): IHasher;
42
+ }
43
+ /**
44
+ * 解析器适配器接口
45
+ */
46
+ export interface IParserAdapter {
47
+ parseJSONC(content: string): unknown;
48
+ parseJSON5(content: string): unknown;
49
+ parseJSONL(content: string): unknown[];
50
+ renderMarkdown(md: string): string;
51
+ }
52
+ /**
53
+ * 子进程接口
54
+ */
55
+ export interface IChildProcess {
56
+ readonly pid: number;
57
+ readonly exited: Promise<number | null>;
58
+ kill(signal?: string | number): void;
59
+ }
60
+ /**
61
+ * spawn 选项
62
+ */
63
+ export interface SpawnOptions {
64
+ cmd: string[];
65
+ env?: Record<string, string | undefined>;
66
+ stdout?: 'inherit' | 'pipe' | 'ignore';
67
+ stderr?: 'inherit' | 'pipe' | 'ignore';
68
+ }
69
+ /**
70
+ * 进程适配器接口
71
+ */
72
+ export interface IProcessAdapter {
73
+ spawn(options: SpawnOptions): IChildProcess;
74
+ sleep(ms: number): Promise<void>;
75
+ }
76
+ /**
77
+ * WebSocket 连接抽象接口(替代 Bun.ServerWebSocket)
78
+ */
79
+ export interface IWebSocket<T = unknown> {
80
+ readonly data: T;
81
+ readonly readyState: number;
82
+ send(data: string | Buffer | Uint8Array): void;
83
+ close(code?: number, reason?: string): void;
84
+ }
85
+ /**
86
+ * WebSocket 事件处理器集合
87
+ */
88
+ export interface WebSocketHandlers<T = unknown> {
89
+ open?: (ws: IWebSocket<T>) => void | Promise<void>;
90
+ message?: (ws: IWebSocket<T>, msg: string | Buffer) => void | Promise<void>;
91
+ close?: (ws: IWebSocket<T>, code: number, reason: string) => void | Promise<void>;
92
+ }
93
+ /**
94
+ * HTTP 服务启动选项
95
+ */
96
+ export interface HttpServeOptions<T = unknown> {
97
+ port?: number;
98
+ hostname?: string;
99
+ reusePort?: boolean;
100
+ idleTimeout?: number;
101
+ /** Unix socket 路径(cluster proxy 模式使用) */
102
+ unix?: string;
103
+ fetch: (request: Request, server: IServerHandle) => Response | Promise<Response | undefined> | undefined;
104
+ websocket?: WebSocketHandlers<T>;
105
+ }
106
+ /**
107
+ * 服务器句柄接口(替代 Bun.Server)
108
+ */
109
+ export interface IServerHandle {
110
+ readonly port: number;
111
+ readonly hostname?: string;
112
+ stop(): void;
113
+ /** 升级 WebSocket 连接(Bun 原生升级) */
114
+ upgrade?(request: Request, options?: {
115
+ data?: unknown;
116
+ }): boolean;
117
+ /** 设置连接超时(Bun 专属) */
118
+ timeout?(request: Request, seconds: number): void;
119
+ /** 获取底层原生服务器实例(不推荐,类型为 unknown) */
120
+ getNative(): unknown;
121
+ }
122
+ /**
123
+ * HTTP 驱动适配器接口
124
+ */
125
+ export interface IHttpDriver {
126
+ serve<T = unknown>(options: HttpServeOptions<T>): Promise<IServerHandle>;
127
+ }
128
+ /**
129
+ * 平台接口聚合
130
+ */
131
+ export interface IPlatform {
132
+ readonly engine: PlatformEngine;
133
+ readonly fs: IFsAdapter;
134
+ readonly crypto: ICryptoAdapter;
135
+ readonly parser: IParserAdapter;
136
+ readonly process: IProcessAdapter;
137
+ readonly http: IHttpDriver;
138
+ }
139
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/platform/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-store.d.ts","sourceRoot":"","sources":["../../../src/prompt/stores/file-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,UAAU,CAAC;AAIlB,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,MAAM,CAAS;gBAEJ,MAAM,GAAE,qBAA0B;IAKxC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAK/C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAKvE,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAKjC,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAOjE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAO7E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAcnC,YAAY;YAiCZ,SAAS;CAkBxB"}
1
+ {"version":3,"file":"file-store.d.ts","sourceRoot":"","sources":["../../../src/prompt/stores/file-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,MAAM,CAAS;gBAEJ,MAAM,GAAE,qBAA0B;IAKxC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAK/C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAKvE,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAKjC,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAOjE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAO7E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAcnC,YAAY;YAiCZ,SAAS;CAkBxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/rag/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAmB,MAAM,SAAS,CAAC;AAK3F;;;;;GAKG;AACH,qBACa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAGrB,OAAO,EAAE,gBAAgB,EACnB,gBAAgB,EAAE,gBAAgB,EACvC,WAAW,EAAE,WAAW;IAStD;;;;;OAKG;IACU,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoC/E;;;;OAIG;IACU,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAuB9E;;OAEG;IACU,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAMtE,QAAQ;CAiBvB"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/rag/service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAmB,MAAM,SAAS,CAAC;AAK3F;;;;;GAKG;AACH,qBACa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAGrB,OAAO,EAAE,gBAAgB,EACnB,gBAAgB,EAAE,gBAAgB,EACvC,WAAW,EAAE,WAAW;IAStD;;;;;OAKG;IACU,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoC/E;;;;OAIG;IACU,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAuB9E;;OAEG;IACU,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAMtE,QAAQ;CAiBvB"}
@@ -1,4 +1,5 @@
1
- import type { HeadersInit } from 'bun';
1
+ /** Cross-runtime compatible headers input type */
2
+ type HeadersInit = Headers | string[][] | Record<string, string>;
2
3
  /**
3
4
  * 响应封装类
4
5
  * 提供便捷的响应创建方法
@@ -62,4 +63,5 @@ export declare class ResponseBuilder {
62
63
  headers?: HeadersInit;
63
64
  }): Response;
64
65
  }
66
+ export {};
65
67
  //# sourceMappingURL=response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/request/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,WAAW,EAAE,MAAM,KAAK,CAAC;AAEjD;;;GAGG;AACH,qBAAa,eAAe;IAC1B;;;;;;OAMG;WACW,IAAI,CAChB,IAAI,EAAE,OAAO,EACb,MAAM,GAAE,MAAY,EACpB,OAAO,CAAC,EAAE,WAAW,GACpB,QAAQ;IAUX;;;;;;OAMG;WACW,IAAI,CAChB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAY,EACpB,OAAO,CAAC,EAAE,WAAW,GACpB,QAAQ;IAUX;;;;;;OAMG;WACW,IAAI,CAChB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAY,EACpB,OAAO,CAAC,EAAE,WAAW,GACpB,QAAQ;IAUX;;;;;OAKG;WACW,KAAK,CAAC,MAAM,GAAE,MAAY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,QAAQ;IAQ1E;;;;;OAKG;WACW,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY,GAAG,QAAQ;IASnE;;;;;OAKG;WACW,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY,GAAG,QAAQ;IAIpE;;;;;OAKG;WACW,IAAI,CAChB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,eAAe,EACrD,OAAO,GAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,WAAW,CAAC;KAClB,GACL,QAAQ;CAyBZ"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/request/response.ts"],"names":[],"mappings":"AAEA,kDAAkD;AAClD,KAAK,WAAW,GAAG,OAAO,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjE;;;GAGG;AACH,qBAAa,eAAe;IAC1B;;;;;;OAMG;WACW,IAAI,CAChB,IAAI,EAAE,OAAO,EACb,MAAM,GAAE,MAAY,EACpB,OAAO,CAAC,EAAE,WAAW,GACpB,QAAQ;IAUX;;;;;;OAMG;WACW,IAAI,CAChB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAY,EACpB,OAAO,CAAC,EAAE,WAAW,GACpB,QAAQ;IAUX;;;;;;OAMG;WACW,IAAI,CAChB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAY,EACpB,OAAO,CAAC,EAAE,WAAW,GACpB,QAAQ;IAUX;;;;;OAKG;WACW,KAAK,CAAC,MAAM,GAAE,MAAY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,QAAQ;IAQ1E;;;;;OAKG;WACW,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY,GAAG,QAAQ;IASnE;;;;;OAKG;WACW,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY,GAAG,QAAQ;IAIpE;;;;;OAKG;WACW,IAAI,CAChB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,eAAe,EACrD,OAAO,GAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,WAAW,CAAC;KAClB,GACL,QAAQ;CAyBZ"}
@@ -1,5 +1,5 @@
1
1
  import 'reflect-metadata';
2
- import type { ServerWebSocket } from 'bun';
2
+ import type { IWebSocket } from '../../platform/types';
3
3
  import type { Context } from '../../core/context';
4
4
  import type { ResponseBuilder } from '../../request/response';
5
5
  import type { Constructor } from '../../core/types';
@@ -21,7 +21,7 @@ export declare class ExecutionContextImpl implements ExecutionContext {
21
21
  * @param client - WebSocket 客户端
22
22
  * @param data - 消息数据
23
23
  */
24
- setWsContext(client: ServerWebSocket<unknown>, data: unknown): void;
24
+ setWsContext(client: IWebSocket<unknown>, data: unknown): void;
25
25
  /**
26
26
  * 获取 HTTP 上下文
27
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../../src/security/guards/execution-context.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAChB,MAAM,SAAS,CAAC;AAkDjB;;GAEG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAKzD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IARvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAAC,CAAkB;gBAGd,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,EACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,EACjB,IAAI,GAAE,OAAO,EAAO,EACrC,eAAe,CAAC,EAAE,eAAe;IAKnC;;;;OAIG;IACI,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAI1E;;OAEG;IACI,YAAY,IAAI,iBAAiB;IAIxC;;OAEG;IACI,UAAU,IAAI,eAAe;IAOpC;;OAEG;IACI,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC;IAIvC;;OAEG;IACI,UAAU,IAAI,QAAQ;IAI7B;;OAEG;IACI,aAAa,IAAI,MAAM;IAI9B;;;;OAIG;IACI,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS;IAe1D;;OAEG;IACI,OAAO,IAAI,OAAO,EAAE;CAG5B"}
1
+ {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../../src/security/guards/execution-context.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAChB,MAAM,SAAS,CAAC;AAkDjB;;GAEG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAKzD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IARvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAAC,CAAkB;gBAGd,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,EACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,EACjB,IAAI,GAAE,OAAO,EAAO,EACrC,eAAe,CAAC,EAAE,eAAe;IAKnC;;;;OAIG;IACI,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAIrE;;OAEG;IACI,YAAY,IAAI,iBAAiB;IAIxC;;OAEG;IACI,UAAU,IAAI,eAAe;IAOpC;;OAEG;IACI,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC;IAIvC;;OAEG;IACI,UAAU,IAAI,QAAQ;IAI7B;;OAEG;IACI,aAAa,IAAI,MAAM;IAI9B;;;;OAIG;IACI,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS;IAe1D;;OAEG;IACI,OAAO,IAAI,OAAO,EAAE;CAG5B"}
@@ -1,7 +1,7 @@
1
1
  import type { Context } from '../../core/context';
2
2
  import type { ResponseBuilder } from '../../request/response';
3
3
  import type { Constructor } from '../../core/types';
4
- import type { ServerWebSocket } from 'bun';
4
+ import type { IWebSocket } from '../../platform/types';
5
5
  /**
6
6
  * 守卫接口
7
7
  * 守卫用于决定请求是否可以继续执行
@@ -39,7 +39,7 @@ export interface WsArgumentsHost {
39
39
  * 获取 WebSocket 客户端
40
40
  * @returns WebSocket 连接对象
41
41
  */
42
- getClient(): ServerWebSocket<unknown>;
42
+ getClient(): IWebSocket<unknown>;
43
43
  /**
44
44
  * 获取消息数据
45
45
  * @returns 消息数据
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/security/guards/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC;IAEtB;;;OAGG;IACH,WAAW,IAAI,eAAe,GAAG,SAAS,CAAC;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;IAEtC;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,YAAY,IAAI,iBAAiB,CAAC;IAElC;;;OAGG;IACH,UAAU,IAAI,eAAe,CAAC;IAE9B;;;OAGG;IACH,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IAEjC;;;OAGG;IACH,UAAU,IAAI,QAAQ,CAAC;IAEvB;;;OAGG;IACH,aAAa,IAAI,MAAM,CAAC;IAExB;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAEpD;;;OAGG;IACH,OAAO,IAAI,OAAO,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,eAAsC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAA8C,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAAqC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/security/guards/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC;IAEtB;;;OAGG;IACH,WAAW,IAAI,eAAe,GAAG,SAAS,CAAC;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,SAAS,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IAEjC;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,YAAY,IAAI,iBAAiB,CAAC;IAElC;;;OAGG;IACH,UAAU,IAAI,eAAe,CAAC;IAE9B;;;OAGG;IACH,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IAEjC;;;OAGG;IACH,UAAU,IAAI,QAAQ,CAAC;IAEvB;;;OAGG;IACH,aAAa,IAAI,MAAM,CAAC;IAExB;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAEpD;;;OAGG;IACH,OAAO,IAAI,OAAO,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,eAAsC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAA8C,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAAqC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/swagger/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAC;AAWhF;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAEtB,OAAO,EAAE,cAAc;IAI1C;;OAEG;IACI,QAAQ,IAAI,eAAe;IAgMlC;;;OAGG;IACI,gBAAgB,IAAI,MAAM;IAuFjC;;;OAGG;IACI,oBAAoB,IAAI,MAAM;IAKrC;;OAEG;IACH,OAAO,CAAC,aAAa;CAatB"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/swagger/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAC;AAYhF;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAEtB,OAAO,EAAE,cAAc;IAI1C;;OAEG;IACI,QAAQ,IAAI,eAAe;IAgMlC;;;OAGG;IACI,gBAAgB,IAAI,MAAM;IAuFjC;;;OAGG;IACI,oBAAoB,IAAI,MAAM;IAKrC;;OAEG;IACH,OAAO,CAAC,aAAa;CAatB"}
@@ -1,4 +1,4 @@
1
- import type { ServerWebSocket } from 'bun';
1
+ import type { IWebSocket } from '../platform/types';
2
2
  import { Context } from '../core/context';
3
3
  import type { Constructor } from '@/core/types';
4
4
  export interface WebSocketConnectionData {
@@ -44,8 +44,8 @@ export declare class WebSocketGatewayRegistry {
44
44
  * @param args - 原始参数(message, code, reason 等,不包括 ws)
45
45
  */
46
46
  private invokeHandler;
47
- handleOpen(ws: ServerWebSocket<WebSocketConnectionData>): Promise<void>;
48
- handleMessage(ws: ServerWebSocket<WebSocketConnectionData>, message: string | ArrayBuffer | ArrayBufferView): Promise<void>;
49
- handleClose(ws: ServerWebSocket<WebSocketConnectionData>, code: number, reason: string): Promise<void>;
47
+ handleOpen(ws: IWebSocket<WebSocketConnectionData>): Promise<void>;
48
+ handleMessage(ws: IWebSocket<WebSocketConnectionData>, message: string | ArrayBuffer | ArrayBufferView | Buffer): Promise<void>;
49
+ handleClose(ws: IWebSocket<WebSocketConnectionData>, code: number, reason: string): Promise<void>;
50
50
  }
51
51
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/websocket/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAO3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAehD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2B;IAE3D,OAAO;WAIO,WAAW,IAAI,wBAAwB;IAOrD,OAAO,CAAC,MAAM,CAAC,SAAS;IAYjB,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAoCzD;;;;OAIG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAcjC,KAAK,IAAI,IAAI;IAMpB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAoBlB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;;;OAMG;YACW,aAAa;IA0Gd,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvE,aAAa,CACxB,EAAE,EAAE,eAAe,CAAC,uBAAuB,CAAC,EAC5C,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,eAAe,GAC9C,OAAO,CAAC,IAAI,CAAC;IAcH,WAAW,CACtB,EAAE,EAAE,eAAe,CAAC,uBAAuB,CAAC,EAC5C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;CAQjB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/websocket/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAehD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2B;IAE3D,OAAO;WAIO,WAAW,IAAI,wBAAwB;IAOrD,OAAO,CAAC,MAAM,CAAC,SAAS;IAYjB,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAoCzD;;;;OAIG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAcjC,KAAK,IAAI,IAAI;IAMpB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAoBlB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;;;OAMG;YACW,aAAa;IA0Gd,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAclE,aAAa,CACxB,EAAE,EAAE,UAAU,CAAC,uBAAuB,CAAC,EACvC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,eAAe,GAAG,MAAM,GACvD,OAAO,CAAC,IAAI,CAAC;IAcH,WAAW,CACtB,EAAE,EAAE,UAAU,CAAC,uBAAuB,CAAC,EACvC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;CAQjB"}
@@ -1,11 +1,13 @@
1
1
  # Production Deployment Guide
2
2
 
3
3
  This guide covers best practices for deploying Bun Server Framework applications
4
- to production.
4
+ to production. The framework supports both **Bun** (optimal performance) and
5
+ **Node.js 22+** runtimes — choose the one that fits your infrastructure.
5
6
 
6
7
  ## Table of Contents
7
8
 
8
9
  - [Prerequisites](#prerequisites)
10
+ - [Runtime Selection](#runtime-selection)
9
11
  - [Environment Setup](#environment-setup)
10
12
  - [Configuration](#configuration)
11
13
  - [Process Management](#process-management)
@@ -16,23 +18,45 @@ to production.
16
18
 
17
19
  ## Prerequisites
18
20
 
19
- - Bun runtime (latest stable version)
20
- - Node.js 18+ (for compatibility)
21
- - Production-ready database (PostgreSQL, MySQL, etc.)
21
+ - **Bun** >= 1.3.10 (Bun deployment) **or** **Node.js** >= 22.0.0 (Node.js deployment)
22
+ - Production-ready database (PostgreSQL, MySQL, SQLite, etc.)
22
23
  - Reverse proxy (Nginx, Caddy, etc.)
23
24
 
25
+ ## Runtime Selection
26
+
27
+ | Criteria | Bun | Node.js |
28
+ |---|---|---|
29
+ | Performance | Optimal (native APIs) | Good |
30
+ | Ecosystem | Growing | Mature |
31
+ | Docker image | `oven/bun` | `node:22-alpine` |
32
+ | `idleTimeout` / `reusePort` | Supported | Not available |
33
+ | Recommended for | New projects, latency-sensitive | Existing Node.js infra |
34
+
35
+ The framework auto-detects the runtime at startup. See [Platform Guide](./platform.md) for details.
36
+
24
37
  ## Environment Setup
25
38
 
26
- ### Install Bun
39
+ ### Option A — Bun Runtime
27
40
 
28
41
  ```bash
29
- # On Linux/macOS
42
+ # Install Bun (Linux/macOS)
30
43
  curl -fsSL https://bun.sh/install | bash
31
44
 
32
- # Verify installation
45
+ # Verify
33
46
  bun --version
34
47
  ```
35
48
 
49
+ ### Option B — Node.js Runtime
50
+
51
+ ```bash
52
+ # Use Node.js 22+ (LTS)
53
+ node --version # should be v22+
54
+
55
+ # Build TypeScript to JS
56
+ bun build src/main.ts --target=node --outdir=dist
57
+ # or: npx tsc
58
+ ```
59
+
36
60
  ### Set Environment Variables
37
61
 
38
62
  Create a `.env.production` file: