@lsby/net-core 0.12.3 → 0.13.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 (249) hide show
  1. package/dist/bin/gen-api-list/bin.cjs +14 -2
  2. package/dist/bin/gen-api-list/index.cjs +14 -2
  3. package/dist/bin/gen-api-type/bin.cjs +53 -34
  4. package/dist/bin/gen-api-type/index.cjs +53 -34
  5. package/dist/bin/gen-test/bin.cjs +16 -4
  6. package/dist/bin/gen-test/index.cjs +16 -4
  7. package/dist/cjs/bin/gen-api-list/bin.cjs +14 -2
  8. package/dist/cjs/bin/gen-api-list/index.cjs +14 -2
  9. package/dist/cjs/bin/gen-api-type/bin.cjs +53 -34
  10. package/dist/cjs/bin/gen-api-type/index.cjs +53 -34
  11. package/dist/cjs/bin/gen-test/bin.cjs +16 -4
  12. package/dist/cjs/bin/gen-test/index.cjs +16 -4
  13. package/dist/cjs/global/log.cjs +31 -0
  14. package/dist/cjs/global/log.d.cts +5 -0
  15. package/dist/cjs/global/model/hub.cjs +84 -0
  16. package/dist/cjs/global/model/hub.d.cts +26 -0
  17. package/dist/cjs/global/model/web-socket.cjs +166 -0
  18. package/dist/cjs/global/model/web-socket.d.cts +21 -0
  19. package/dist/cjs/global/web-socket.cjs +169 -0
  20. package/dist/cjs/global/web-socket.d.cts +7 -0
  21. package/dist/cjs/help/help.cjs +151 -2
  22. package/dist/cjs/help/help.d.cts +12 -5
  23. package/dist/cjs/help/interior.cjs +12 -1
  24. package/dist/cjs/help/interior.d.cts +6 -3
  25. package/dist/cjs/index.cjs +701 -473
  26. package/dist/cjs/index.d.cts +29 -18
  27. package/dist/cjs/interface/interface-base.cjs +15 -17
  28. package/dist/cjs/interface/interface-base.d.cts +43 -5
  29. package/dist/cjs/interface/interface-logic.cjs +148 -12
  30. package/dist/cjs/interface/interface-logic.d.cts +131 -7
  31. package/dist/cjs/interface/interface-plugin.cjs +45 -0
  32. package/dist/cjs/interface/interface-plugin.d.cts +37 -0
  33. package/dist/cjs/{plugin/plug.cjs → interface/interface-returner.cjs} +7 -17
  34. package/dist/cjs/interface/interface-returner.d.cts +32 -0
  35. package/dist/cjs/interface/interface-test.cjs +41 -9
  36. package/dist/cjs/interface/interface-test.d.cts +29 -6
  37. package/dist/cjs/plugin/{extend/custom-data.cjs → custom-data.cjs} +18 -11
  38. package/dist/cjs/plugin/custom-data.d.cts +16 -0
  39. package/dist/cjs/plugin/custom.cjs +54 -0
  40. package/dist/cjs/plugin/custom.d.cts +18 -0
  41. package/dist/cjs/plugin/form.cjs +109 -0
  42. package/dist/cjs/plugin/form.d.cts +37 -0
  43. package/dist/cjs/plugin/{extend/json.cjs → json.cjs} +22 -18
  44. package/dist/cjs/plugin/json.d.cts +36 -0
  45. package/dist/cjs/plugin/{extend/log-headers.cjs → log-headers.cjs} +18 -12
  46. package/dist/cjs/plugin/log-headers.d.cts +17 -0
  47. package/dist/cjs/plugin/parse-path.cjs +100 -0
  48. package/dist/cjs/plugin/parse-path.d.cts +73 -0
  49. package/dist/cjs/plugin/{extend/query.cjs → query.cjs} +24 -20
  50. package/dist/cjs/plugin/query.d.cts +36 -0
  51. package/dist/cjs/plugin/urlencoded.cjs +103 -0
  52. package/dist/cjs/plugin/urlencoded.d.cts +36 -0
  53. package/dist/cjs/plugin/web-socket.cjs +183 -0
  54. package/dist/cjs/plugin/web-socket.d.cts +31 -0
  55. package/dist/cjs/returner/common.cjs +107 -0
  56. package/dist/cjs/returner/common.d.cts +36 -0
  57. package/dist/cjs/returner/custom.cjs +55 -0
  58. package/dist/cjs/returner/custom.d.cts +26 -0
  59. package/dist/cjs/returner/file-stream-download.cjs +111 -0
  60. package/dist/cjs/returner/file-stream-download.d.cts +33 -0
  61. package/dist/cjs/returner/static-file.cjs +95 -0
  62. package/dist/cjs/returner/static-file.d.cts +30 -0
  63. package/dist/cjs/returner/virtual-file.cjs +66 -0
  64. package/dist/cjs/returner/virtual-file.d.cts +30 -0
  65. package/dist/cjs/server/server.cjs +184 -152
  66. package/dist/cjs/server/server.d.cts +37 -4
  67. package/dist/cjs/symbol/export-type.cjs +1 -1
  68. package/dist/cjs/types/types.cjs +18 -0
  69. package/dist/cjs/types/types.d.cts +22 -0
  70. package/dist/esm/bin/gen-api-list/bin.js +2 -1
  71. package/dist/esm/bin/gen-api-list/index.js +2 -1
  72. package/dist/esm/bin/gen-api-type/bin.js +1 -1
  73. package/dist/esm/bin/gen-api-type/index.js +1 -1
  74. package/dist/esm/bin/gen-test/bin.js +2 -1
  75. package/dist/esm/bin/gen-test/index.js +2 -1
  76. package/dist/esm/{chunk-ZIVQ3WZA.js → chunk-2CGBESLT.js} +12 -2
  77. package/dist/esm/{chunk-GC5W4SQN.js → chunk-7GT72IUT.js} +22 -19
  78. package/dist/esm/chunk-7OU27OBO.js +14 -0
  79. package/dist/esm/chunk-7S6SPW32.js +35 -0
  80. package/dist/esm/{chunk-2NYRVBAS.js → chunk-AB35ZHL3.js} +48 -59
  81. package/dist/esm/chunk-AG36MLAF.js +65 -0
  82. package/dist/esm/chunk-EGIJQJFI.js +21 -0
  83. package/dist/esm/chunk-F5IAX56T.js +7 -0
  84. package/dist/esm/chunk-FP6Q65NN.js +7 -0
  85. package/dist/esm/chunk-GAL77HPJ.js +43 -0
  86. package/dist/esm/chunk-GGNRLQAM.js +48 -0
  87. package/dist/esm/chunk-HINGVOU6.js +21 -0
  88. package/dist/esm/{chunk-ZF7EC2OM.js → chunk-HT7VG4BT.js} +1 -1
  89. package/dist/esm/{chunk-AFWSZAXR.js → chunk-HWIV3BTW.js} +7 -4
  90. package/dist/esm/{chunk-2FCXR6G7.js → chunk-J3N2TUYJ.js} +53 -34
  91. package/dist/esm/chunk-J5BX4WJJ.js +69 -0
  92. package/dist/esm/chunk-JLNRCPJD.js +34 -0
  93. package/dist/esm/chunk-JSMTJQ3K.js +69 -0
  94. package/dist/esm/chunk-MRTIZDKN.js +88 -0
  95. package/dist/esm/{chunk-7LQRWJ3X.js → chunk-MVMDWJTB.js} +14 -1
  96. package/dist/esm/chunk-NTDDPUP7.js +59 -0
  97. package/dist/esm/chunk-OEABQXPT.js +29 -0
  98. package/dist/esm/chunk-P23ZAK4I.js +10 -0
  99. package/dist/esm/chunk-PAP3X3RJ.js +37 -0
  100. package/dist/esm/chunk-QQFE27NG.js +37 -0
  101. package/dist/esm/chunk-RVEKW2PT.js +31 -0
  102. package/dist/esm/chunk-RWSXMQQI.js +22 -0
  103. package/dist/esm/{chunk-E23EZWBE.js → chunk-TE6CG2FF.js} +9 -13
  104. package/dist/esm/{chunk-UKAZDGUR.js → chunk-W7HT4TA6.js} +5 -2
  105. package/dist/esm/chunk-WXTNTK3M.js +40 -0
  106. package/dist/esm/global/log.d.ts +5 -0
  107. package/dist/esm/global/log.js +6 -0
  108. package/dist/esm/global/model/hub.d.ts +26 -0
  109. package/dist/esm/global/model/hub.js +8 -0
  110. package/dist/esm/global/model/web-socket.d.ts +21 -0
  111. package/dist/esm/global/model/web-socket.js +8 -0
  112. package/dist/esm/global/web-socket.d.ts +7 -0
  113. package/dist/esm/global/web-socket.js +9 -0
  114. package/dist/esm/help/help.d.ts +12 -5
  115. package/dist/esm/help/help.js +9 -3
  116. package/dist/esm/help/interior.d.ts +6 -3
  117. package/dist/esm/help/interior.js +3 -1
  118. package/dist/esm/index.d.ts +29 -18
  119. package/dist/esm/index.js +65 -57
  120. package/dist/esm/interface/interface-base.d.ts +43 -5
  121. package/dist/esm/interface/interface-base.js +1 -1
  122. package/dist/esm/interface/interface-logic.d.ts +131 -7
  123. package/dist/esm/interface/interface-logic.js +6 -2
  124. package/dist/esm/interface/interface-plugin.d.ts +37 -0
  125. package/dist/esm/{plugin/plug.js → interface/interface-plugin.js} +1 -1
  126. package/dist/esm/interface/interface-returner.d.ts +32 -0
  127. package/dist/esm/interface/interface-returner.js +6 -0
  128. package/dist/esm/interface/interface-test.d.ts +29 -6
  129. package/dist/esm/interface/interface-test.js +5 -3
  130. package/dist/esm/plugin/custom-data.d.ts +16 -0
  131. package/dist/esm/plugin/{extend/custom-data.js → custom-data.js} +2 -2
  132. package/dist/esm/plugin/custom.d.ts +18 -0
  133. package/dist/esm/plugin/custom.js +7 -0
  134. package/dist/esm/plugin/form.d.ts +37 -0
  135. package/dist/esm/plugin/form.js +8 -0
  136. package/dist/esm/plugin/json.d.ts +36 -0
  137. package/dist/esm/plugin/json.js +8 -0
  138. package/dist/esm/plugin/log-headers.d.ts +17 -0
  139. package/dist/esm/plugin/{extend/log-headers.js → log-headers.js} +2 -2
  140. package/dist/esm/plugin/parse-path.d.ts +73 -0
  141. package/dist/esm/plugin/parse-path.js +8 -0
  142. package/dist/esm/plugin/query.d.ts +36 -0
  143. package/dist/esm/plugin/query.js +8 -0
  144. package/dist/esm/plugin/urlencoded.d.ts +36 -0
  145. package/dist/esm/plugin/urlencoded.js +8 -0
  146. package/dist/esm/plugin/web-socket.d.ts +31 -0
  147. package/dist/esm/plugin/web-socket.js +8 -0
  148. package/dist/esm/returner/common.d.ts +36 -0
  149. package/dist/esm/returner/common.js +8 -0
  150. package/dist/esm/returner/custom.d.ts +26 -0
  151. package/dist/esm/returner/custom.js +7 -0
  152. package/dist/esm/returner/file-stream-download.d.ts +33 -0
  153. package/dist/esm/returner/file-stream-download.js +8 -0
  154. package/dist/esm/returner/static-file.d.ts +30 -0
  155. package/dist/esm/returner/static-file.js +7 -0
  156. package/dist/esm/returner/virtual-file.d.ts +30 -0
  157. package/dist/esm/returner/virtual-file.js +7 -0
  158. package/dist/esm/server/server.d.ts +37 -4
  159. package/dist/esm/server/server.js +5 -3
  160. package/dist/esm/symbol/export-type.js +1 -1
  161. package/dist/esm/types/types.d.ts +22 -0
  162. package/dist/esm/types/types.js +1 -0
  163. package/package.json +35 -40
  164. package/dist/bin/gen-api-list/test.cjs +0 -1
  165. package/dist/bin/gen-api-list/test.d.cts +0 -2
  166. package/dist/bin/gen-api-type/test.cjs +0 -1
  167. package/dist/bin/gen-api-type/test.d.cts +0 -2
  168. package/dist/cjs/action/action.bak.cjs +0 -158
  169. package/dist/cjs/action/action.bak.d.cts +0 -99
  170. package/dist/cjs/bin/gen-api-list/test.cjs +0 -1
  171. package/dist/cjs/bin/gen-api-list/test.d.cts +0 -2
  172. package/dist/cjs/bin/gen-api-type/test.cjs +0 -1
  173. package/dist/cjs/bin/gen-api-type/test.d.cts +0 -2
  174. package/dist/cjs/global/global.cjs +0 -107
  175. package/dist/cjs/global/global.d.cts +0 -23
  176. package/dist/cjs/interface/interface-result.cjs +0 -59
  177. package/dist/cjs/interface/interface-result.d.cts +0 -8
  178. package/dist/cjs/interface/interface-retuen.cjs +0 -49
  179. package/dist/cjs/interface/interface-retuen.d.cts +0 -30
  180. package/dist/cjs/interface-base-gRngpxki.d.cts +0 -235
  181. package/dist/cjs/plugin/extend/custom-data.d.cts +0 -17
  182. package/dist/cjs/plugin/extend/json.d.cts +0 -25
  183. package/dist/cjs/plugin/extend/log-headers.d.cts +0 -15
  184. package/dist/cjs/plugin/extend/query.d.cts +0 -25
  185. package/dist/cjs/plugin/extend/urlencoded.cjs +0 -76
  186. package/dist/cjs/plugin/extend/urlencoded.d.cts +0 -16
  187. package/dist/cjs/plugin/extend/web-socket.cjs +0 -199
  188. package/dist/cjs/plugin/extend/web-socket.d.cts +0 -29
  189. package/dist/cjs/plugin/plug.d.cts +0 -8
  190. package/dist/cjs/wrapper/common-wrapper-return.cjs +0 -103
  191. package/dist/cjs/wrapper/common-wrapper-return.d.cts +0 -29
  192. package/dist/cjs/wrapper/common-wrapper.cjs +0 -99
  193. package/dist/cjs/wrapper/common-wrapper.d.cts +0 -27
  194. package/dist/cjs/wrapper/deferred-result-wrapper.cjs +0 -99
  195. package/dist/cjs/wrapper/deferred-result-wrapper.d.cts +0 -26
  196. package/dist/cjs/wrapper/express-compatible-wrapper.cjs +0 -228
  197. package/dist/cjs/wrapper/express-compatible-wrapper.d.cts +0 -55
  198. package/dist/cjs/wrapper/file-download-wrapper.cjs +0 -131
  199. package/dist/cjs/wrapper/file-download-wrapper.d.cts +0 -80
  200. package/dist/esm/action/action.bak.d.ts +0 -99
  201. package/dist/esm/action/action.bak.js +0 -133
  202. package/dist/esm/bin/gen-api-list/test.d.ts +0 -2
  203. package/dist/esm/bin/gen-api-type/test.d.ts +0 -2
  204. package/dist/esm/bin/gen-api-type/test.js +0 -0
  205. package/dist/esm/chunk-3YGTOEO2.js +0 -82
  206. package/dist/esm/chunk-43GZE5YL.js +0 -17
  207. package/dist/esm/chunk-6RQPNF75.js +0 -24
  208. package/dist/esm/chunk-7MHKNSNT.js +0 -20
  209. package/dist/esm/chunk-FYEIC5J3.js +0 -24
  210. package/dist/esm/chunk-GKABWQWT.js +0 -24
  211. package/dist/esm/chunk-IM3E5KN4.js +0 -61
  212. package/dist/esm/chunk-KENYGKWI.js +0 -37
  213. package/dist/esm/chunk-MDUWXEQ7.js +0 -37
  214. package/dist/esm/chunk-N7TPWCQ5.js +0 -17
  215. package/dist/esm/chunk-P75EGBKC.js +0 -33
  216. package/dist/esm/chunk-SGOVPJHV.js +0 -54
  217. package/dist/esm/chunk-UUXGAK5S.js +0 -31
  218. package/dist/esm/chunk-VMCAX3QH.js +0 -18
  219. package/dist/esm/chunk-VRF5WLKI.js +0 -30
  220. package/dist/esm/chunk-XBAKTT6S.js +0 -23
  221. package/dist/esm/global/global.d.ts +0 -23
  222. package/dist/esm/global/global.js +0 -8
  223. package/dist/esm/interface/interface-result.d.ts +0 -8
  224. package/dist/esm/interface/interface-result.js +0 -10
  225. package/dist/esm/interface/interface-retuen.d.ts +0 -30
  226. package/dist/esm/interface/interface-retuen.js +0 -10
  227. package/dist/esm/interface-base-DDfmN_Dg.d.ts +0 -235
  228. package/dist/esm/plugin/extend/custom-data.d.ts +0 -17
  229. package/dist/esm/plugin/extend/json.d.ts +0 -25
  230. package/dist/esm/plugin/extend/json.js +0 -8
  231. package/dist/esm/plugin/extend/log-headers.d.ts +0 -15
  232. package/dist/esm/plugin/extend/query.d.ts +0 -25
  233. package/dist/esm/plugin/extend/query.js +0 -8
  234. package/dist/esm/plugin/extend/urlencoded.d.ts +0 -16
  235. package/dist/esm/plugin/extend/urlencoded.js +0 -7
  236. package/dist/esm/plugin/extend/web-socket.d.ts +0 -29
  237. package/dist/esm/plugin/extend/web-socket.js +0 -8
  238. package/dist/esm/plugin/plug.d.ts +0 -8
  239. package/dist/esm/wrapper/common-wrapper-return.d.ts +0 -29
  240. package/dist/esm/wrapper/common-wrapper-return.js +0 -9
  241. package/dist/esm/wrapper/common-wrapper.d.ts +0 -27
  242. package/dist/esm/wrapper/common-wrapper.js +0 -9
  243. package/dist/esm/wrapper/deferred-result-wrapper.d.ts +0 -26
  244. package/dist/esm/wrapper/deferred-result-wrapper.js +0 -9
  245. package/dist/esm/wrapper/express-compatible-wrapper.d.ts +0 -55
  246. package/dist/esm/wrapper/express-compatible-wrapper.js +0 -11
  247. package/dist/esm/wrapper/file-download-wrapper.d.ts +0 -80
  248. package/dist/esm/wrapper/file-download-wrapper.js +0 -9
  249. /package/dist/esm/{bin/gen-api-list/test.js → chunk-BWFSM5FK.js} +0 -0
@@ -31,35 +31,175 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
33
  EXPORT_TYPE: () => EXPORT_TYPE,
34
- Express\u517C\u5BB9\u63A5\u53E3\u5C01\u88C5: () => Express\u517C\u5BB9\u63A5\u53E3\u5C01\u88C5,
35
- GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6: () => GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
34
+ Form\u53C2\u6570\u89E3\u6790\u63D2\u4EF6: () => Form\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
36
35
  JSON\u53C2\u6570\u89E3\u6790\u63D2\u4EF6: () => JSON\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
36
+ Query\u53C2\u6570\u89E3\u6790\u63D2\u4EF6: () => Query\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
37
+ UrlEncoded\u53C2\u6570\u89E3\u6790\u63D2\u4EF6: () => UrlEncoded\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
37
38
  WebSocket\u63D2\u4EF6: () => WebSocket\u63D2\u4EF6,
38
- \u5E38\u7528\u5F62\u5F0F\u5E76\u81EA\u5B9A\u4E49\u8FD4\u56DE\u5668\u63A5\u53E3\u5C01\u88C5: () => \u5E38\u7528\u5F62\u5F0F\u5E76\u81EA\u5B9A\u4E49\u8FD4\u56DE\u5668\u63A5\u53E3\u5C01\u88C5,
39
- \u5E38\u7528\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5: () => \u5E38\u7528\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5,
40
- \u5E38\u7528\u5F62\u5F0F\u8F6C\u6362\u5668: () => \u5E38\u7528\u5F62\u5F0F\u8F6C\u6362\u5668,
41
- \u5E38\u7528\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5: () => \u5E38\u7528\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5,
42
- \u5E38\u7528\u8FD4\u56DE\u5668: () => \u5E38\u7528\u8FD4\u56DE\u5668,
39
+ \u5E38\u7528\u63A5\u53E3\u8FD4\u56DE\u5668: () => \u5E38\u7528\u63A5\u53E3\u8FD4\u56DE\u5668,
43
40
  \u63A5\u53E3: () => \u63A5\u53E3,
44
41
  \u63A5\u53E3\u6D4B\u8BD5: () => \u63A5\u53E3\u6D4B\u8BD5,
45
- \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668: () => \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668,
46
- \u63A5\u53E3\u7ED3\u679C\u8FD4\u56DE\u5668: () => \u63A5\u53E3\u7ED3\u679C\u8FD4\u56DE\u5668,
42
+ \u63A5\u53E3\u8FD4\u56DE\u5668: () => \u63A5\u53E3\u8FD4\u56DE\u5668,
47
43
  \u63A5\u53E3\u903B\u8F91: () => \u63A5\u53E3\u903B\u8F91,
48
44
  \u63A5\u53E3\u903B\u8F91Base: () => \u63A5\u53E3\u903B\u8F91Base,
45
+ \u63A5\u53E3\u903B\u8F91\u6D4B\u8BD5: () => \u63A5\u53E3\u903B\u8F91\u6D4B\u8BD5,
49
46
  \u63D2\u4EF6: () => \u63D2\u4EF6,
50
- \u6587\u4EF6\u4E0B\u8F7D\u63A5\u53E3\u5C01\u88C5: () => \u6587\u4EF6\u4E0B\u8F7D\u63A5\u53E3\u5C01\u88C5,
47
+ \u6587\u4EF6\u6D41\u5F0F\u4E0B\u8F7D\u8FD4\u56DE\u5668: () => \u6587\u4EF6\u6D41\u5F0F\u4E0B\u8F7D\u8FD4\u56DE\u5668,
51
48
  \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76: () => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76,
52
49
  \u670D\u52A1\u5668: () => \u670D\u52A1\u5668,
53
50
  \u6784\u9020\u5143\u7EC4: () => \u6784\u9020\u5143\u7EC4,
54
51
  \u6784\u9020\u5BF9\u8C61: () => \u6784\u9020\u5BF9\u8C61,
55
- \u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668: () => \u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668,
52
+ \u81EA\u5B9A\u4E49\u63A5\u53E3\u8FD4\u56DE\u5668: () => \u81EA\u5B9A\u4E49\u63A5\u53E3\u8FD4\u56DE\u5668,
53
+ \u81EA\u5B9A\u4E49\u63D2\u4EF6: () => \u81EA\u5B9A\u4E49\u63D2\u4EF6,
56
54
  \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6: () => \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6,
57
- \u81EA\u5B9A\u4E49\u8FD4\u56DE\u5668: () => \u81EA\u5B9A\u4E49\u8FD4\u56DE\u5668,
58
- \u8868\u5355\u53C2\u6570\u89E3\u6790\u63D2\u4EF6: () => \u8868\u5355\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
59
- \u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6: () => \u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6
55
+ \u865A\u62DF\u6587\u4EF6\u8FD4\u56DE\u5668: () => \u865A\u62DF\u6587\u4EF6\u8FD4\u56DE\u5668,
56
+ \u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6: () => \u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6,
57
+ \u8DEF\u5F84\u89E3\u6790\u63D2\u4EF6: () => \u8DEF\u5F84\u89E3\u6790\u63D2\u4EF6,
58
+ \u9759\u6001\u6587\u4EF6\u8FD4\u56DE\u5668: () => \u9759\u6001\u6587\u4EF6\u8FD4\u56DE\u5668,
59
+ \u9ED8\u8BA4\u8BF7\u6C42\u9644\u52A0\u53C2\u6570: () => \u9ED8\u8BA4\u8BF7\u6C42\u9644\u52A0\u53C2\u6570
60
60
  });
61
61
  module.exports = __toCommonJS(index_exports);
62
62
 
63
+ // src/global/log.ts
64
+ var import_ts_log = require("@lsby/ts-log");
65
+ var \u5168\u5C40\u65E5\u5FD7\u5355\u4F8B = new import_ts_log.Log("@lsby:net-core");
66
+
67
+ // src/global/model/hub.ts
68
+ var \u96C6\u7EBF\u5668\u76D1\u542C\u5668\u6301\u6709\u8005 = class {
69
+ constructor(\u76D1\u542C\u5668) {
70
+ this.\u76D1\u542C\u5668 = \u76D1\u542C\u5668;
71
+ }
72
+ };
73
+ var \u96C6\u7EBF\u5668\u6A21\u578B = class _\u96C6\u7EBF\u5668\u6A21\u578B {
74
+ // 使用 WeakRef + FinalizationRegistry 防止"反向持有" this
75
+ static \u6E05\u7406\u6CE8\u518C\u5668 = new FinalizationRegistry(({ \u5B9E\u4F8B\u5F15\u7528, \u76D1\u542C\u5668 }) => {
76
+ let \u5B9E\u4F8B = \u5B9E\u4F8B\u5F15\u7528.deref();
77
+ if (\u5B9E\u4F8B === void 0) return;
78
+ let \u7D22\u5F15 = \u5B9E\u4F8B.\u76D1\u542C\u5668\u5217\u8868.indexOf(\u76D1\u542C\u5668);
79
+ if (\u7D22\u5F15 !== -1) \u5B9E\u4F8B.\u76D1\u542C\u5668\u5217\u8868.splice(\u7D22\u5F15, 1);
80
+ });
81
+ \u76D1\u542C\u5668\u5217\u8868 = [];
82
+ \u6301\u6709\u8005\u6620\u5C04 = /* @__PURE__ */ new WeakMap();
83
+ \u9519\u8BEF\u5904\u7406\u5668 = null;
84
+ /**
85
+ * 设置广播错误时的处理器。
86
+ */
87
+ \u8BBE\u7F6E\u9519\u8BEF\u5904\u7406\u5668(\u5904\u7406\u5668) {
88
+ this.\u9519\u8BEF\u5904\u7406\u5668 = \u5904\u7406\u5668;
89
+ }
90
+ /**
91
+ * 注册监听器。
92
+ * 若外部不再持有返回的 `监听器持有者`,监听器会在未来某个时间自动移除。
93
+ * ⚠️ 自动清理是非确定性的,不能依赖它实现实时释放。
94
+ */
95
+ \u6DFB\u52A0\u76D1\u542C\u5668(\u76D1\u542C\u5668) {
96
+ this.\u76D1\u542C\u5668\u5217\u8868.push(\u76D1\u542C\u5668);
97
+ let \u6301\u6709\u8005 = new \u96C6\u7EBF\u5668\u76D1\u542C\u5668\u6301\u6709\u8005(\u76D1\u542C\u5668);
98
+ this.\u6301\u6709\u8005\u6620\u5C04.set(\u6301\u6709\u8005, \u76D1\u542C\u5668);
99
+ let \u5B9E\u4F8B\u5F31\u5F15\u7528 = new WeakRef(this);
100
+ _\u96C6\u7EBF\u5668\u6A21\u578B.\u6E05\u7406\u6CE8\u518C\u5668.register(\u6301\u6709\u8005, { \u5B9E\u4F8B\u5F15\u7528: \u5B9E\u4F8B\u5F31\u5F15\u7528, \u76D1\u542C\u5668 }, \u6301\u6709\u8005);
101
+ return \u6301\u6709\u8005;
102
+ }
103
+ \u79FB\u9664\u76D1\u542C\u5668(\u6301\u6709\u8005) {
104
+ let \u76D1\u542C\u5668 = this.\u6301\u6709\u8005\u6620\u5C04.get(\u6301\u6709\u8005);
105
+ if (\u76D1\u542C\u5668 === void 0) return;
106
+ let \u7D22\u5F15 = this.\u76D1\u542C\u5668\u5217\u8868.indexOf(\u76D1\u542C\u5668);
107
+ if (\u7D22\u5F15 !== -1) this.\u76D1\u542C\u5668\u5217\u8868.splice(\u7D22\u5F15, 1);
108
+ _\u96C6\u7EBF\u5668\u6A21\u578B.\u6E05\u7406\u6CE8\u518C\u5668.unregister(\u6301\u6709\u8005);
109
+ this.\u6301\u6709\u8005\u6620\u5C04.delete(\u6301\u6709\u8005);
110
+ }
111
+ async \u5E7F\u64AD(\u6570\u636E) {
112
+ let snapshot = [...this.\u76D1\u542C\u5668\u5217\u8868];
113
+ let \u7ED3\u679C = await Promise.allSettled(snapshot.map((l) => l(\u6570\u636E)));
114
+ for (let [\u7D22\u5F15, \u7ED3\u679C\u9879] of \u7ED3\u679C.entries()) {
115
+ if (\u7ED3\u679C\u9879.status === "rejected" && this.\u9519\u8BEF\u5904\u7406\u5668 !== null) {
116
+ await Promise.resolve(this.\u9519\u8BEF\u5904\u7406\u5668(\u6570\u636E, \u7D22\u5F15, \u7ED3\u679C\u9879.reason));
117
+ }
118
+ }
119
+ }
120
+ };
121
+
122
+ // src/global/model/web-socket.ts
123
+ var WebSocket\u7BA1\u7406\u5668 = class {
124
+ log = \u5168\u5C40\u65E5\u5FD7\u5355\u4F8B.extend("WebSocket\u7BA1\u7406\u5668");
125
+ \u8FDE\u63A5\u8868 = {};
126
+ \u6D88\u606F\u76D1\u542C\u8868 = {};
127
+ \u8FDE\u63A5\u6E05\u7406\u6A21\u578B = new \u96C6\u7EBF\u5668\u6A21\u578B();
128
+ \u8FDE\u63A5\u6301\u6709\u8005\u8868 = {};
129
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
130
+ \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
131
+ if (id in this.\u8FDE\u63A5\u8868) this.\u5220\u9664\u8FDE\u63A5(id);
132
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
133
+ if (!(id in this.\u6D88\u606F\u76D1\u542C\u8868)) {
134
+ let \u6A21\u578B = new \u96C6\u7EBF\u5668\u6A21\u578B();
135
+ \u6A21\u578B.\u8BBE\u7F6E\u9519\u8BEF\u5904\u7406\u5668(async (\u6570\u636E, \u7D22\u5F15, \u9519\u8BEF) => {
136
+ await this.log.warn(`WebSocket \u76D1\u542C\u5668\u6267\u884C\u5931\u8D25, id: ${id}, \u7D22\u5F15: ${\u7D22\u5F15}, \u9519\u8BEF: ${\u9519\u8BEF}`);
137
+ });
138
+ this.\u6D88\u606F\u76D1\u542C\u8868[id] = \u6A21\u578B;
139
+ }
140
+ this.\u6CE8\u518Conmessage(id, ws\u53E5\u67C4);
141
+ let \u6301\u6709\u8005 = this.\u8FDE\u63A5\u6E05\u7406\u6A21\u578B.\u6DFB\u52A0\u76D1\u542C\u5668(async () => {
142
+ if (id in this.\u8FDE\u63A5\u8868) this.\u5220\u9664\u8FDE\u63A5(id);
143
+ });
144
+ this.\u8FDE\u63A5\u6301\u6709\u8005\u8868[id] = \u6301\u6709\u8005;
145
+ return \u6301\u6709\u8005;
146
+ }
147
+ \u5220\u9664\u8FDE\u63A5(id) {
148
+ let ws = this.\u8FDE\u63A5\u8868[id];
149
+ if (ws !== null && ws !== void 0) {
150
+ ws.onmessage = null;
151
+ ws.once("error", (err) => void this.log.error(`WebSocket \u5F02\u6B65\u9519\u8BEF, id: ${id}, \u9519\u8BEF: ${err}`));
152
+ ws.once(
153
+ "close",
154
+ (code, reason) => void this.log.debug(`WebSocket \u5DF2\u5173\u95ED, id: ${id}, \u5173\u95ED\u7801: ${code}, \u539F\u56E0: ${reason}`)
155
+ );
156
+ try {
157
+ ws.close(1e3, "\u670D\u52A1\u5668\u4E3B\u52A8\u5173\u95ED");
158
+ } catch (err) {
159
+ void this.log.error(`WebSocket \u540C\u6B65\u5173\u95ED\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`);
160
+ }
161
+ }
162
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
163
+ if (\u6E05\u7406\u51FD\u6570 !== void 0) void \u6E05\u7406\u51FD\u6570().catch((err) => this.log.error(`\u6E05\u7406\u8FDE\u63A5\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`));
164
+ delete this.\u8FDE\u63A5\u8868[id];
165
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
166
+ delete this.\u6D88\u606F\u76D1\u542C\u8868[id];
167
+ let \u6301\u6709\u8005 = this.\u8FDE\u63A5\u6301\u6709\u8005\u8868[id];
168
+ if (\u6301\u6709\u8005 !== void 0) {
169
+ this.\u8FDE\u63A5\u6E05\u7406\u6A21\u578B.\u79FB\u9664\u76D1\u542C\u5668(\u6301\u6709\u8005);
170
+ delete this.\u8FDE\u63A5\u6301\u6709\u8005\u8868[id];
171
+ }
172
+ }
173
+ \u6CE8\u518Conmessage(id, ws\u53E5\u67C4) {
174
+ ws\u53E5\u67C4.onmessage = async (event) => {
175
+ try {
176
+ let \u6570\u636E = JSON.parse(event.data.toString());
177
+ let \u6A21\u578B = this.\u6D88\u606F\u76D1\u542C\u8868[id];
178
+ if (\u6A21\u578B !== void 0) await \u6A21\u578B.\u5E7F\u64AD(\u6570\u636E);
179
+ } catch (err) {
180
+ await this.log.warn(`WebSocket \u6D88\u606F\u5904\u7406\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`);
181
+ }
182
+ };
183
+ }
184
+ \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
185
+ return id in this.\u8FDE\u63A5\u8868;
186
+ }
187
+ async \u83B7\u5F97ws\u53E5\u67C4(id) {
188
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
189
+ }
190
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
191
+ if (id in this.\u8FDE\u63A5\u8868) this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
192
+ }
193
+ \u8BBE\u7F6E\u6D88\u606F\u76D1\u542C(id, \u56DE\u8C03\u51FD\u6570) {
194
+ let \u6A21\u578B = this.\u6D88\u606F\u76D1\u542C\u8868[id];
195
+ if (\u6A21\u578B === void 0) return null;
196
+ return \u6A21\u578B.\u6DFB\u52A0\u76D1\u542C\u5668(\u56DE\u8C03\u51FD\u6570);
197
+ }
198
+ };
199
+
200
+ // src/global/web-socket.ts
201
+ var \u5168\u5C40WebSocket\u7BA1\u7406\u5668\u5355\u4F8B = new WebSocket\u7BA1\u7406\u5668();
202
+
63
203
  // src/help/help.ts
64
204
  function \u6784\u9020\u5143\u7EC4(args) {
65
205
  return args;
@@ -86,38 +226,41 @@ function \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(target, source) {
86
226
  }
87
227
  return result;
88
228
  }
229
+ var \u9ED8\u8BA4\u8BF7\u6C42\u9644\u52A0\u53C2\u6570 = {
230
+ log: \u5168\u5C40\u65E5\u5FD7\u5355\u4F8B,
231
+ \u8BF7\u6C42id: "",
232
+ webSocket\u7BA1\u7406\u5668: \u5168\u5C40WebSocket\u7BA1\u7406\u5668\u5355\u4F8B
233
+ };
89
234
 
90
235
  // src/interface/interface-base.ts
91
236
  var \u63A5\u53E3 = class {
92
- constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F912, \u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod, \u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod, \u7ED3\u679C\u8F6C\u6362\u5668, \u7ED3\u679C\u8FD4\u56DE\u5668) {
237
+ constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F912, \u63A5\u53E3\u8FD4\u56DE\u56682) {
93
238
  this.\u8BF7\u6C42\u8DEF\u5F84 = \u8BF7\u6C42\u8DEF\u5F84;
94
239
  this.\u8BF7\u6C42\u65B9\u6CD5 = \u8BF7\u6C42\u65B9\u6CD5;
95
240
  this.\u63A5\u53E3\u903B\u8F91 = \u63A5\u53E3\u903B\u8F912;
96
- this.\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod = \u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod;
97
- this.\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod = \u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod;
98
- this.\u7ED3\u679C\u8F6C\u6362\u5668 = \u7ED3\u679C\u8F6C\u6362\u5668;
99
- this.\u7ED3\u679C\u8FD4\u56DE\u5668 = \u7ED3\u679C\u8FD4\u56DE\u5668;
241
+ this.\u63A5\u53E3\u8FD4\u56DE\u5668 = \u63A5\u53E3\u8FD4\u56DE\u56682;
100
242
  }
101
243
  \u83B7\u5F97\u8DEF\u5F84() {
102
244
  return this.\u8BF7\u6C42\u8DEF\u5F84;
103
245
  }
246
+ \u5339\u914D\u8DEF\u5F84(\u8DEF\u5F84) {
247
+ let \u89C4\u5219 = this.\u8BF7\u6C42\u8DEF\u5F84;
248
+ if (typeof \u89C4\u5219 === "string") {
249
+ return \u89C4\u5219 === \u8DEF\u5F84;
250
+ }
251
+ if (\u89C4\u5219 instanceof RegExp) {
252
+ return \u89C4\u5219.test(\u8DEF\u5F84);
253
+ }
254
+ return false;
255
+ }
104
256
  \u83B7\u5F97\u65B9\u6CD5() {
105
257
  return this.\u8BF7\u6C42\u65B9\u6CD5;
106
258
  }
107
- \u83B7\u5F97\u903B\u8F91() {
259
+ \u83B7\u5F97\u63A5\u53E3\u903B\u8F91() {
108
260
  return this.\u63A5\u53E3\u903B\u8F91;
109
261
  }
110
- \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod() {
111
- return this.\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod;
112
- }
113
- \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod() {
114
- return this.\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod;
115
- }
116
- \u83B7\u5F97\u7ED3\u679C\u8F6C\u6362\u5668() {
117
- return this.\u7ED3\u679C\u8F6C\u6362\u5668;
118
- }
119
- \u83B7\u5F97\u7ED3\u679C\u8FD4\u56DE\u5668() {
120
- return this.\u7ED3\u679C\u8FD4\u56DE\u5668;
262
+ \u83B7\u5F97\u63A5\u53E3\u8FD4\u56DE\u5668() {
263
+ return this.\u63A5\u53E3\u8FD4\u56DE\u5668;
121
264
  }
122
265
  };
123
266
 
@@ -132,7 +275,7 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
132
275
  return _\u63A5\u53E3\u903B\u8F91Base.\u6784\u9020([], async () => new import_ts_fp_data.Right({}));
133
276
  }
134
277
  static \u5B8C\u6574\u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0, \u6E05\u7406\u51FD\u6570, \u4E0A\u6E38\u63A5\u53E3\u903B\u8F91, \u6700\u540E\u63A5\u53E3\u903B\u8F91) {
135
- let c = new class extends _\u63A5\u53E3\u903B\u8F91Base {
278
+ return new class extends _\u63A5\u53E3\u903B\u8F91Base {
136
279
  \u83B7\u5F97\u6E05\u7406\u51FD\u6570() {
137
280
  return \u6E05\u7406\u51FD\u6570;
138
281
  }
@@ -143,7 +286,6 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
143
286
  return \u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
144
287
  }
145
288
  }(\u4E0A\u6E38\u63A5\u53E3\u903B\u8F91, \u6700\u540E\u63A5\u53E3\u903B\u8F91);
146
- return c;
147
289
  }
148
290
  static \u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0, \u6E05\u7406\u51FD\u6570) {
149
291
  return this.\u5B8C\u6574\u6784\u9020(\u63D2\u4EF6\u4EEC, \u5B9E\u73B0, \u6E05\u7406\u51FD\u6570, null, null);
@@ -153,12 +295,13 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
153
295
  let \u6240\u6709\u63D2\u4EF6\u7ED3\u679C = [];
154
296
  for (let \u63D2\u4EF62 of \u63D2\u4EF6\u4EEC) {
155
297
  let \u63D2\u4EF6\u8FD4\u56DE = await \u63D2\u4EF62.\u8FD0\u884C(req, res, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
156
- \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.push(\u63D2\u4EF6\u8FD4\u56DE);
298
+ if (\u63D2\u4EF6\u8FD4\u56DE.isLeft()) return \u63D2\u4EF6\u8FD4\u56DE;
299
+ \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.push(\u63D2\u4EF6\u8FD4\u56DE.assertRight().getRight());
157
300
  }
158
301
  let \u5408\u5E76\u7ED3\u679C = \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.reduce((s, a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(s, a), {});
159
- return \u5408\u5E76\u7ED3\u679C;
302
+ return new import_ts_fp_data.Right(\u5408\u5E76\u7ED3\u679C);
160
303
  }
161
- async \u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
304
+ async \u8C03\u7528(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
162
305
  let \u6E05\u7406\u51FD\u6570 = this.\u83B7\u5F97\u6E05\u7406\u51FD\u6570?.();
163
306
  let \u6700\u7EC8\u7ED3\u679C = void 0;
164
307
  try {
@@ -167,16 +310,12 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
167
310
  return \u6700\u7EC8\u7ED3\u679C;
168
311
  } finally {
169
312
  if (\u6E05\u7406\u51FD\u6570 !== void 0) {
170
- let \u4E0A\u5C42\u6DF7\u5408\u7ED3\u679C = \u6700\u7EC8\u7ED3\u679C !== void 0 && \u6700\u7EC8\u7ED3\u679C.isRight() === true ? \u6700\u7EC8\u7ED3\u679C.assertRight().getRight() : \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570;
171
- await \u6E05\u7406\u51FD\u6570(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4E0A\u5C42\u6DF7\u5408\u7ED3\u679C, \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
313
+ let \u4E0A\u5C42\u7ED1\u5B9A\u7ED3\u679C = \u6700\u7EC8\u7ED3\u679C !== void 0 && \u6700\u7EC8\u7ED3\u679C.isRight() === true ? \u6700\u7EC8\u7ED3\u679C.assertRight().getRight() : \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570;
314
+ await \u6E05\u7406\u51FD\u6570(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4E0A\u5C42\u7ED1\u5B9A\u7ED3\u679C, \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
172
315
  }
173
316
  }
174
317
  }
175
- async \u8FD0\u884C(req, res, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570) {
176
- let \u5408\u5E76\u63D2\u4EF6\u7ED3\u679C = await this.\u8BA1\u7B97\u63D2\u4EF6\u7ED3\u679C(req, res, \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570);
177
- return this.\u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570);
178
- }
179
- \u6DF7\u5408(\u8F93\u5165) {
318
+ \u7ED1\u5B9A(\u8F93\u5165) {
180
319
  let \u4E0A\u6E05\u7406 = this.\u83B7\u5F97\u6E05\u7406\u51FD\u6570?.();
181
320
  let \u4E0B\u6E05\u7406 = \u8F93\u5165.\u83B7\u5F97\u6E05\u7406\u51FD\u6570?.();
182
321
  let \u5408\u5E76\u6E05\u7406 = void 0;
@@ -222,95 +361,98 @@ var \u63A5\u53E3\u903B\u8F91 = class extends \u63A5\u53E3\u903B\u8F91Base {
222
361
  }
223
362
  };
224
363
 
225
- // src/interface/interface-result.ts
226
- var \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668 = class {
227
- };
228
- var \u5E38\u7528\u5F62\u5F0F\u8F6C\u6362\u5668 = class extends \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668 {
229
- \u5B9E\u73B0(\u6570\u636E) {
230
- switch (\u6570\u636E.getTag()) {
231
- case "Left": {
232
- return { status: "fail", data: \u6570\u636E.assertLeft().getLeft() };
233
- }
234
- case "Right": {
235
- return { status: "success", data: \u6570\u636E.assertRight().getRight() };
236
- }
237
- }
238
- }
239
- };
240
- var \u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668 = class extends \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668 {
241
- \u5B9E\u73B0(\u6570\u636E) {
242
- switch (\u6570\u636E.getTag()) {
243
- case "Left": {
244
- return { status: "fail", data: \u6570\u636E.assertLeft().getLeft() };
245
- }
246
- case "Right": {
247
- return \u6570\u636E.assertRight().getRight().data;
248
- }
249
- }
364
+ // src/interface/interface-plugin.ts
365
+ var \u63D2\u4EF6 = class {
366
+ constructor(\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF09, \u6B63\u786E\u7C7B\u578B\u63CF\u8FF03, \u5B9E\u73B0) {
367
+ this.\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF0 = \u9519\u8BEF\u7C7B\u578B\u63CF\u8FF09;
368
+ this.\u6B63\u786E\u7C7B\u578B\u63CF\u8FF0 = \u6B63\u786E\u7C7B\u578B\u63CF\u8FF03;
369
+ this.\u5B9E\u73B0 = \u5B9E\u73B0;
250
370
  }
251
- };
252
-
253
- // src/interface/interface-retuen.ts
254
- var \u63A5\u53E3\u7ED3\u679C\u8FD4\u56DE\u5668 = class {
255
- };
256
- var \u5E38\u7528\u8FD4\u56DE\u5668 = class extends \u63A5\u53E3\u7ED3\u679C\u8FD4\u56DE\u5668 {
257
- \u8FD4\u56DE(req, res, \u7ED3\u679C) {
258
- res.send(\u7ED3\u679C);
371
+ \u83B7\u5F97\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF0() {
372
+ return this.\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF0;
259
373
  }
260
- };
261
- var \u81EA\u5B9A\u4E49\u8FD4\u56DE\u5668 = class extends \u63A5\u53E3\u7ED3\u679C\u8FD4\u56DE\u5668 {
262
- constructor(\u5B9E\u73B0\u51FD\u6570) {
263
- super();
264
- this.\u5B9E\u73B0\u51FD\u6570 = \u5B9E\u73B0\u51FD\u6570;
374
+ \u83B7\u5F97\u6B63\u786E\u7C7B\u578B\u63CF\u8FF0() {
375
+ return this.\u6B63\u786E\u7C7B\u578B\u63CF\u8FF0;
265
376
  }
266
- \u8FD4\u56DE(req, res, \u7ED3\u679C) {
267
- return this.\u5B9E\u73B0\u51FD\u6570(req, res, \u7ED3\u679C);
377
+ \u8FD0\u884C(req, res, \u9644\u52A0\u53C2\u6570) {
378
+ return this.\u5B9E\u73B0(req, res, \u9644\u52A0\u53C2\u6570);
268
379
  }
269
380
  };
270
381
 
382
+ // src/interface/interface-returner.ts
383
+ var \u63A5\u53E3\u8FD4\u56DE\u5668 = class {
384
+ };
385
+
271
386
  // src/interface/interface-test.ts
272
387
  var \u63A5\u53E3\u6D4B\u8BD5 = class {
273
- constructor(\u524D\u7F6E\u5B9E\u73B0, \u4E2D\u7F6E\u5B9E\u73B0, \u540E\u7F6E\u5B9E\u73B0) {
274
- this.\u524D\u7F6E\u5B9E\u73B0 = \u524D\u7F6E\u5B9E\u73B0;
275
- this.\u4E2D\u7F6E\u5B9E\u73B0 = \u4E2D\u7F6E\u5B9E\u73B0;
276
- this.\u540E\u7F6E\u5B9E\u73B0 = \u540E\u7F6E\u5B9E\u73B0;
388
+ constructor(\u63A5\u53E32, \u9884\u671F\u7ED3\u679C, \u524D\u7F6E\u8FC7\u7A0B, \u4E2D\u7F6E\u8FC7\u7A0B, \u540E\u7F6E\u8FC7\u7A0B) {
389
+ this.\u63A5\u53E3 = \u63A5\u53E32;
390
+ this.\u9884\u671F\u7ED3\u679C = \u9884\u671F\u7ED3\u679C;
391
+ this.\u524D\u7F6E\u8FC7\u7A0B = \u524D\u7F6E\u8FC7\u7A0B;
392
+ this.\u4E2D\u7F6E\u8FC7\u7A0B = \u4E2D\u7F6E\u8FC7\u7A0B;
393
+ this.\u540E\u7F6E\u8FC7\u7A0B = \u540E\u7F6E\u8FC7\u7A0B;
277
394
  }
278
395
  async \u8FD0\u884C() {
279
- await this.\u524D\u7F6E\u5B9E\u73B0();
280
- let \u4E2D\u7F6E\u7ED3\u679C = await this.\u4E2D\u7F6E\u5B9E\u73B0();
281
- await this.\u540E\u7F6E\u5B9E\u73B0(\u4E2D\u7F6E\u7ED3\u679C);
396
+ await this.\u524D\u7F6E\u8FC7\u7A0B();
397
+ let \u4E2D\u7F6E\u7ED3\u679C = await this.\u4E2D\u7F6E\u8FC7\u7A0B();
398
+ console.log("\u63A5\u53E3: %o, \u5B9E\u9645\u7ED3\u679C: %o", this.\u63A5\u53E3.\u83B7\u5F97\u8DEF\u5F84(), \u4E2D\u7F6E\u7ED3\u679C);
399
+ let \u5931\u8D25\u7ED3\u679C\u6821\u9A8C = this.\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u8FD4\u56DE\u5668().\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod().safeParse(\u4E2D\u7F6E\u7ED3\u679C);
400
+ let \u6B63\u786E\u7ED3\u679C\u6821\u9A8C = this.\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u8FD4\u56DE\u5668().\u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod().safeParse(\u4E2D\u7F6E\u7ED3\u679C);
401
+ if (this.\u9884\u671F\u7ED3\u679C === "\u5931\u8D25" && \u5931\u8D25\u7ED3\u679C\u6821\u9A8C.success === false) {
402
+ throw new Error("\u65E0\u6CD5\u901A\u8FC7\u5931\u8D25\u7ED3\u679C\u9A8C\u8BC1");
403
+ }
404
+ if (this.\u9884\u671F\u7ED3\u679C === "\u6210\u529F" && \u6B63\u786E\u7ED3\u679C\u6821\u9A8C.success === false) {
405
+ throw new Error("\u65E0\u6CD5\u901A\u8FC7\u6210\u529F\u7ED3\u679C\u9A8C\u8BC1");
406
+ }
407
+ switch (this.\u9884\u671F\u7ED3\u679C) {
408
+ case "\u5931\u8D25": {
409
+ await this.\u540E\u7F6E\u8FC7\u7A0B(\u5931\u8D25\u7ED3\u679C\u6821\u9A8C.data, \u4E2D\u7F6E\u7ED3\u679C);
410
+ break;
411
+ }
412
+ case "\u6210\u529F": {
413
+ await this.\u540E\u7F6E\u8FC7\u7A0B(\u6B63\u786E\u7ED3\u679C\u6821\u9A8C.data, \u4E2D\u7F6E\u7ED3\u679C);
414
+ break;
415
+ }
416
+ }
282
417
  }
283
418
  };
284
-
285
- // src/plugin/plug.ts
286
- var \u63D2\u4EF6 = class {
287
- constructor(\u7C7B\u578B, \u5B9E\u73B0) {
288
- this.\u7C7B\u578B = \u7C7B\u578B;
289
- this.\u5B9E\u73B0 = \u5B9E\u73B0;
419
+ var \u63A5\u53E3\u903B\u8F91\u6D4B\u8BD5 = class {
420
+ constructor(\u524D\u7F6E\u8FC7\u7A0B, \u540E\u7F6E\u8FC7\u7A0B) {
421
+ this.\u524D\u7F6E\u8FC7\u7A0B = \u524D\u7F6E\u8FC7\u7A0B;
422
+ this.\u540E\u7F6E\u8FC7\u7A0B = \u540E\u7F6E\u8FC7\u7A0B;
290
423
  }
291
- \u83B7\u5F97\u7C7B\u578B() {
292
- return this.\u7C7B\u578B;
424
+ async \u8FD0\u884C() {
425
+ await this.\u524D\u7F6E\u8FC7\u7A0B();
426
+ await this.\u540E\u7F6E\u8FC7\u7A0B();
293
427
  }
294
- \u8FD0\u884C(req, res, \u9644\u52A0\u53C2\u6570) {
295
- return this.\u5B9E\u73B0(req, res, \u9644\u52A0\u53C2\u6570);
428
+ };
429
+
430
+ // src/plugin/custom.ts
431
+ var \u81EA\u5B9A\u4E49\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
432
+ constructor(\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF09, \u6B63\u786E\u7C7B\u578B\u63CF\u8FF03, \u5B9E\u73B0) {
433
+ super(\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF09, \u6B63\u786E\u7C7B\u578B\u63CF\u8FF03, \u5B9E\u73B0);
296
434
  }
297
435
  };
298
436
 
299
- // src/plugin/extend/custom-data.ts
300
- var \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
437
+ // src/plugin/custom-data.ts
438
+ var import_ts_fp_data2 = require("@lsby/ts-fp-data");
439
+ var import_zod = require("zod");
440
+ var \u9519\u8BEF\u7C7B\u578B\u63CF\u8FF0 = import_zod.z.never();
441
+ var \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6 = class _\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6 extends \u63D2\u4EF6 {
301
442
  constructor(t, data) {
302
- super(t, async (_res, _req, \u9644\u52A0\u53C2\u6570) => {
303
- let log2 = \u9644\u52A0\u53C2\u6570.log.extend("\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6");
304
- await log2.debug("\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6\u8FD0\u884C, \u7ED3\u679C: %o", data);
305
- return data;
443
+ super(\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF0, t, async (_res, _req, \u9644\u52A0\u53C2\u6570) => {
444
+ let log = \u9644\u52A0\u53C2\u6570.log.extend(_\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6.name);
445
+ await log.debug("\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6\u8FD0\u884C, \u7ED3\u679C: %o", data);
446
+ return new import_ts_fp_data2.Right(data);
306
447
  });
307
448
  }
308
449
  };
309
450
 
310
- // src/plugin/extend/json.ts
311
- var import_express = __toESM(require("express"), 1);
451
+ // src/plugin/form.ts
452
+ var import_ts_fp_data3 = require("@lsby/ts-fp-data");
453
+ var import_multer = __toESM(require("multer"), 1);
312
454
  var import_node_util = require("util");
313
- var import_zod = require("zod");
455
+ var import_zod2 = require("zod");
314
456
 
315
457
  // src/help/interior.ts
316
458
  function \u622A\u65AD\u5B57\u7B26\u4E32(\u5185\u5BB9) {
@@ -324,220 +466,205 @@ function \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E) {
324
466
  if (typeof \u6570\u636E === "object" && \u6570\u636E !== null) {
325
467
  let \u65B0\u6570\u636E = {};
326
468
  for (let key in \u6570\u636E) {
327
- if (\u6570\u636E.hasOwnProperty(key) === true) \u65B0\u6570\u636E[key] = \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E[key]);
469
+ if (Object.prototype.hasOwnProperty.call(\u6570\u636E, key)) \u65B0\u6570\u636E[key] = \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E[key]);
328
470
  }
329
471
  return \u65B0\u6570\u636E;
330
472
  }
331
473
  return \u6570\u636E;
332
474
  }
333
475
 
334
- // src/plugin/extend/json.ts
335
- var \u70D9\u5370 = Symbol();
336
- var JSON\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
337
- [\u70D9\u5370] = ["JSON\u53C2\u6570\u89E3\u6790\u63D2\u4EF6"];
476
+ // src/plugin/form.ts
477
+ var \u9519\u8BEF\u7C7B\u578B\u63CF\u8FF02 = import_zod2.z.object({ code: import_zod2.z.literal(400), data: import_zod2.z.string() });
478
+ var Form\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 = class _Form\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 extends \u63D2\u4EF6 {
479
+ constructor(t, opt) {
480
+ super(\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF02, import_zod2.z.object({ form: t }), async (req, res, \u9644\u52A0\u53C2\u6570) => {
481
+ let log = \u9644\u52A0\u53C2\u6570.log.extend(_Form\u53C2\u6570\u89E3\u6790\u63D2\u4EF6.name);
482
+ let upload = (0, import_multer.default)(opt);
483
+ let multerMiddleware = upload.any();
484
+ await new Promise(
485
+ (pRes, rej) => multerMiddleware(req, res, (err) => {
486
+ if (err !== null) {
487
+ rej(err);
488
+ } else {
489
+ pRes(null);
490
+ }
491
+ })
492
+ );
493
+ await log.debug("\u51C6\u5907\u89E3\u6790 Form \u53C2\u6570\uFF1A%o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(req.body)));
494
+ let parseResult = t.safeParse(req.body);
495
+ if (parseResult.success === false) {
496
+ await log.error("\u89E3\u6790 Form \u53C2\u6570\u5931\u8D25\uFF1A%o", JSON.stringify(parseResult.error));
497
+ return new import_ts_fp_data3.Left({ code: 400, data: (0, import_node_util.format)("\u89E3\u6790 Form \u53C2\u6570\u5931\u8D25: %o", JSON.stringify(parseResult.error)) });
498
+ }
499
+ await log.debug("\u6210\u529F\u89E3\u6790 Form \u53C2\u6570");
500
+ return new import_ts_fp_data3.Right({ form: parseResult.data });
501
+ });
502
+ }
503
+ };
504
+
505
+ // src/plugin/json.ts
506
+ var import_ts_fp_data4 = require("@lsby/ts-fp-data");
507
+ var import_express = __toESM(require("express"), 1);
508
+ var import_node_util2 = require("util");
509
+ var import_zod3 = require("zod");
510
+ var \u9519\u8BEF\u7C7B\u578B\u63CF\u8FF03 = import_zod3.z.object({ code: import_zod3.z.literal(400), data: import_zod3.z.string() });
511
+ var JSON\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 = class _JSON\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 extends \u63D2\u4EF6 {
338
512
  constructor(t, opt) {
339
- super(import_zod.z.object({ body: t }), async (req, res, \u9644\u52A0\u53C2\u6570) => {
340
- let log2 = \u9644\u52A0\u53C2\u6570.log.extend("JSON\u53C2\u6570\u89E3\u6790\u63D2\u4EF6");
513
+ super(\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF03, import_zod3.z.object({ json: t }), async (req, res, \u9644\u52A0\u53C2\u6570) => {
514
+ let log = \u9644\u52A0\u53C2\u6570.log.extend(_JSON\u53C2\u6570\u89E3\u6790\u63D2\u4EF6.name);
341
515
  await new Promise(
342
516
  (pRes, _rej) => import_express.default.json(opt)(req, res, () => {
343
517
  pRes(null);
344
518
  })
345
519
  );
346
- await log2.debug("\u51C6\u5907\u89E3\u6790 JSON\uFF1A%o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(req.body)));
520
+ await log.debug("\u51C6\u5907\u89E3\u6790 JSON \u53C2\u6570\uFF1A%o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(req.body)));
347
521
  let parseResult = t.safeParse(req.body);
348
522
  if (parseResult.success === false) {
349
- await log2.error("\u89E3\u6790 JSON \u5931\u8D25\uFF1A%o", parseResult.error);
350
- throw new Error((0, import_node_util.format)("\u89E3\u6790 JSON \u5931\u8D25: %o", parseResult.error));
523
+ await log.error("\u89E3\u6790 JSON \u53C2\u6570\u5931\u8D25\uFF1A%o", JSON.stringify(parseResult.error));
524
+ return new import_ts_fp_data4.Left({ code: 400, data: (0, import_node_util2.format)("\u89E3\u6790 JSON \u5931\u8D25: %o", JSON.stringify(parseResult.error)) });
351
525
  }
352
- await log2.debug("\u6210\u529F\u89E3\u6790 JSON");
353
- return { body: parseResult.data };
526
+ await log.debug("\u6210\u529F\u89E3\u6790 JSON \u53C2\u6570");
527
+ return new import_ts_fp_data4.Right({ json: parseResult.data });
354
528
  });
355
529
  }
356
530
  };
357
531
 
358
- // src/plugin/extend/log-headers.ts
359
- var import_zod2 = require("zod");
360
- var zod\u7C7B\u578B\u8868\u793A = import_zod2.z.object({});
361
- var \u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
532
+ // src/plugin/log-headers.ts
533
+ var import_ts_fp_data5 = require("@lsby/ts-fp-data");
534
+ var import_zod4 = require("zod");
535
+ var \u9519\u8BEF\u7C7B\u578B\u63CF\u8FF04 = import_zod4.z.never();
536
+ var \u6B63\u786E\u7C7B\u578B\u63CF\u8FF0 = import_zod4.z.object({});
537
+ var \u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6 = class _\u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6 extends \u63D2\u4EF6 {
362
538
  constructor() {
363
- super(zod\u7C7B\u578B\u8868\u793A, async (req, res, \u9644\u52A0\u53C2\u6570) => {
364
- let log2 = \u9644\u52A0\u53C2\u6570.log.extend("\u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6");
365
- await log2.debug(req.headers);
366
- return {};
539
+ super(\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF04, \u6B63\u786E\u7C7B\u578B\u63CF\u8FF0, async (req, res, \u9644\u52A0\u53C2\u6570) => {
540
+ let log = \u9644\u52A0\u53C2\u6570.log.extend(_\u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6.name);
541
+ await log.debug(req.headers);
542
+ return new import_ts_fp_data5.Right({});
367
543
  });
368
544
  }
369
545
  };
370
546
 
371
- // src/plugin/extend/query.ts
372
- var import_node_util2 = require("util");
373
- var import_zod3 = require("zod");
374
- var \u70D9\u53702 = Symbol();
375
- var GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
376
- [\u70D9\u53702] = ["GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6"];
547
+ // src/plugin/parse-path.ts
548
+ var import_ts_fp_data6 = require("@lsby/ts-fp-data");
549
+ var import_node_path = __toESM(require("path"), 1);
550
+ var import_zod5 = require("zod");
551
+ var \u9519\u8BEF\u7C7B\u578B\u63CF\u8FF05 = import_zod5.z.never();
552
+ var \u6B63\u786E\u7C7B\u578B\u63CF\u8FF02 = import_zod5.z.object({
553
+ path: import_zod5.z.object({ rawPath: import_zod5.z.string(), dir: import_zod5.z.string(), file: import_zod5.z.string(), ext: import_zod5.z.string() })
554
+ });
555
+ var \u8DEF\u5F84\u89E3\u6790\u63D2\u4EF6 = class _\u8DEF\u5F84\u89E3\u6790\u63D2\u4EF6 extends \u63D2\u4EF6 {
556
+ constructor() {
557
+ super(\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF05, \u6B63\u786E\u7C7B\u578B\u63CF\u8FF02, async (req, res, \u9644\u52A0\u53C2\u6570) => {
558
+ let log = \u9644\u52A0\u53C2\u6570.log.extend(_\u8DEF\u5F84\u89E3\u6790\u63D2\u4EF6.name);
559
+ let rawPath = decodeURIComponent(req.path);
560
+ await log.debug("\u539F\u59CB\u8DEF\u5F84: %s", rawPath);
561
+ let dir = import_node_path.default.dirname(rawPath);
562
+ let file = import_node_path.default.basename(rawPath);
563
+ let ext = import_node_path.default.extname(rawPath);
564
+ let parsedPath = { rawPath, dir, file, ext };
565
+ await log.debug("\u89E3\u6790\u540E\u7684\u8DEF\u5F84: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(parsedPath)));
566
+ return new import_ts_fp_data6.Right({ path: parsedPath });
567
+ });
568
+ }
569
+ };
570
+
571
+ // src/plugin/query.ts
572
+ var import_ts_fp_data7 = require("@lsby/ts-fp-data");
573
+ var import_node_util3 = require("util");
574
+ var import_zod6 = require("zod");
575
+ var \u9519\u8BEF\u7C7B\u578B\u63CF\u8FF06 = import_zod6.z.object({ code: import_zod6.z.literal(400), data: import_zod6.z.string() });
576
+ var Query\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 = class _Query\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 extends \u63D2\u4EF6 {
377
577
  constructor(t) {
378
- super(import_zod3.z.object({ query: t }), async (req, _res, \u9644\u52A0\u53C2\u6570) => {
379
- let log2 = \u9644\u52A0\u53C2\u6570.log.extend("GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6");
380
- await log2.debug("\u51C6\u5907\u89E3\u6790 GET \u53C2\u6570\uFF1A%o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(req.query)));
578
+ super(\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF06, import_zod6.z.object({ query: t }), async (req, _res, \u9644\u52A0\u53C2\u6570) => {
579
+ let log = \u9644\u52A0\u53C2\u6570.log.extend(_Query\u53C2\u6570\u89E3\u6790\u63D2\u4EF6.name);
580
+ await log.debug("\u51C6\u5907\u89E3\u6790 Query \u53C2\u6570\uFF1A%o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(req.query)));
381
581
  let parseResult = t.safeParse(req.query);
382
582
  if (parseResult.success === false) {
383
- await log2.error("\u89E3\u6790 GET \u53C2\u6570\u5931\u8D25\uFF1A%o", parseResult.error);
384
- throw new Error((0, import_node_util2.format)("\u89E3\u6790 GET \u53C2\u6570\u5931\u8D25: %o", parseResult.error));
583
+ await log.error("\u89E3\u6790 Query \u53C2\u6570\u5931\u8D25\uFF1A%o", JSON.stringify(parseResult.error));
584
+ return new import_ts_fp_data7.Left({ code: 400, data: (0, import_node_util3.format)("\u89E3\u6790 Query \u53C2\u6570\u5931\u8D25: %o", JSON.stringify(parseResult.error)) });
385
585
  }
386
- await log2.debug("\u6210\u529F\u89E3\u6790 GET \u53C2\u6570");
387
- return { query: parseResult.data };
586
+ await log.debug("\u6210\u529F\u89E3\u6790 Query \u53C2\u6570");
587
+ return new import_ts_fp_data7.Right({ query: parseResult.data });
388
588
  });
389
589
  }
390
590
  };
391
591
 
392
- // src/plugin/extend/urlencoded.ts
592
+ // src/plugin/urlencoded.ts
593
+ var import_ts_fp_data8 = require("@lsby/ts-fp-data");
393
594
  var import_express2 = __toESM(require("express"), 1);
394
- var import_node_util3 = require("util");
395
- var import_zod4 = require("zod");
396
- var \u8868\u5355\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
595
+ var import_node_util4 = require("util");
596
+ var import_zod7 = require("zod");
597
+ var \u9519\u8BEF\u7C7B\u578B\u63CF\u8FF07 = import_zod7.z.object({ code: import_zod7.z.literal(400), data: import_zod7.z.string() });
598
+ var UrlEncoded\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 = class _UrlEncoded\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 extends \u63D2\u4EF6 {
397
599
  constructor(t, opt) {
398
- super(import_zod4.z.object({ form: t }), async (req, res, \u9644\u52A0\u53C2\u6570) => {
399
- let log2 = \u9644\u52A0\u53C2\u6570.log.extend("\u8868\u5355\u53C2\u6570\u89E3\u6790\u63D2\u4EF6");
600
+ super(\u9519\u8BEF\u7C7B\u578B\u63CF\u8FF07, import_zod7.z.object({ urlencoded: t }), async (req, res, \u9644\u52A0\u53C2\u6570) => {
601
+ let log = \u9644\u52A0\u53C2\u6570.log.extend(_UrlEncoded\u53C2\u6570\u89E3\u6790\u63D2\u4EF6.name);
400
602
  await new Promise(
401
603
  (pRes, _rej) => import_express2.default.urlencoded({ extended: true, ...opt })(req, res, () => {
402
604
  pRes(null);
403
605
  })
404
606
  );
607
+ await log.debug("\u51C6\u5907\u89E3\u6790UrlEncoded\u6570\u636E\uFF1A%o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(req.body)));
405
608
  let parseResult = t.safeParse(req.body);
406
609
  if (parseResult.success === false) {
407
- await log2.error("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %o", parseResult.error);
408
- throw new Error((0, import_node_util3.format)("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %o", parseResult.error));
610
+ await log.error("\u89E3\u6790UrlEncoded\u6570\u636E\u5931\u8D25\uFF1A%o", JSON.stringify(parseResult.error));
611
+ return new import_ts_fp_data8.Left({ code: 400, data: (0, import_node_util4.format)("\u89E3\u6790UrlEncoded\u6570\u636E\u5931\u8D25: %o", JSON.stringify(parseResult.error)) });
409
612
  }
410
- return { form: parseResult.data };
613
+ await log.debug("\u6210\u529F\u89E3\u6790UrlEncoded\u6570\u636E");
614
+ return new import_ts_fp_data8.Right({ urlencoded: parseResult.data });
411
615
  });
412
616
  }
413
617
  };
414
618
 
415
- // src/plugin/extend/web-socket.ts
416
- var import_ws2 = require("ws");
417
- var import_zod5 = require("zod");
418
-
419
- // src/global/global.ts
420
- var import_ts_global = require("@lsby/ts-global");
421
- var import_ts_log = require("@lsby/ts-log");
619
+ // src/plugin/web-socket.ts
620
+ var import_ts_fp_data9 = require("@lsby/ts-fp-data");
422
621
  var import_ws = require("ws");
423
- var log = new import_ts_log.Log("@lsby:net-core");
424
- var WebSocket\u7BA1\u7406\u5668 = class {
425
- constructor(\u8FDE\u63A5\u8868) {
426
- this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
427
- this.\u5B9A\u65F6\u5668ID = setInterval(
428
- () => {
429
- this.\u6E05\u7406\u65E0\u6548\u8FDE\u63A5().catch((err) => {
430
- this.log.error(`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`).catch((a) => `\u65E5\u5FD7\u8F93\u51FA\u9519\u8BEF: ${a}: \u65E5\u5FD7\u5185\u5BB9: ${`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`}`);
431
- });
432
- },
433
- 5 * 60 * 1e3
434
- );
435
- }
436
- log = log.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668");
437
- \u6E05\u7406\u51FD\u6570\u8868 = {};
438
- \u6D88\u606F\u76D1\u542C\u8868 = {};
439
- \u5B9A\u65F6\u5668ID = null;
440
- \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
441
- this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
442
- }
443
- \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
444
- return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
445
- }
446
- async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
447
- if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false) return;
448
- this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
449
- }
450
- async \u8BBE\u7F6E\u6D88\u606F\u76D1\u542C(id, \u56DE\u8C03\u51FD\u6570) {
451
- if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false) return;
452
- this.\u6D88\u606F\u76D1\u542C\u8868[id] = \u56DE\u8C03\u51FD\u6570;
453
- let ws\u53E5\u67C4 = this.\u8FDE\u63A5\u8868[id];
454
- if (ws\u53E5\u67C4 !== null && ws\u53E5\u67C4 !== void 0) {
455
- ws\u53E5\u67C4.onmessage = async (event) => {
456
- try {
457
- await \u56DE\u8C03\u51FD\u6570(JSON.parse(event.data.toString()));
458
- } catch (err) {
459
- await this.log.warn(`WebSocket \u6D88\u606F\u5904\u7406\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`);
460
- }
461
- };
462
- }
463
- }
464
- async \u83B7\u5F97\u53E5\u67C4(id) {
465
- return this.\u8FDE\u63A5\u8868[id] ?? null;
466
- }
467
- \u5220\u9664\u8FDE\u63A5(id) {
468
- let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
469
- try {
470
- this.\u8FDE\u63A5\u8868[id]?.close(1e3, "\u670D\u52A1\u5668\u4E3B\u52A8\u5173\u95ED");
471
- } catch (err) {
472
- this.log.error(`\u5173\u95ED WebSocket \u53E5\u67C4\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`).catch((a) => `\u65E5\u5FD7\u8F93\u51FA\u9519\u8BEF: ${a}: \u65E5\u5FD7\u5185\u5BB9: ${`\u5173\u95ED WebSocket \u53E5\u67C4\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`}`);
473
- }
474
- \u6E05\u7406\u51FD\u6570?.().catch((err) => this.log.error(`\u6E05\u7406\u8FDE\u63A5\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`));
475
- delete this.\u8FDE\u63A5\u8868[id];
476
- delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
477
- delete this.\u6D88\u606F\u76D1\u542C\u8868[id];
478
- }
479
- async \u6E05\u7406\u65E0\u6548\u8FDE\u63A5() {
480
- let \u6E05\u7406\u6570\u91CF = 0;
481
- for (let [id, ws] of Object.entries(this.\u8FDE\u63A5\u8868)) {
482
- if (ws === null || ws.readyState === import_ws.WebSocket.CLOSED) {
483
- this.\u5220\u9664\u8FDE\u63A5(id);
484
- \u6E05\u7406\u6570\u91CF++;
485
- }
486
- }
487
- if (\u6E05\u7406\u6570\u91CF > 0) {
488
- await this.log.info(`\u6E05\u7406\u4E86 ${\u6E05\u7406\u6570\u91CF} \u4E2A\u65E0\u6548 WebSocket \u8FDE\u63A5`);
489
- }
490
- }
491
- };
492
- var Global = new import_ts_global.GlobalService([
493
- new import_ts_global.GlobalItem("log", log),
494
- new import_ts_global.GlobalItem("WebSocket\u7BA1\u7406\u5668", new WebSocket\u7BA1\u7406\u5668({}))
495
- ]);
496
-
497
- // src/plugin/extend/web-socket.ts
498
- var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
499
- constructor(\u540E\u63A8\u524D\u4FE1\u606F\u63CF\u8FF0, \u524D\u63A8\u540E\u4FE1\u606F\u63CF\u8FF0) {
622
+ var import_zod8 = require("zod");
623
+ var \u9519\u8BEF\u7C7B\u578B\u63CF\u8FF08 = import_zod8.z.never();
624
+ var WebSocket\u63D2\u4EF6 = class _WebSocket\u63D2\u4EF6 extends \u63D2\u4EF6 {
625
+ constructor(\u540E\u63A8\u524D\u4FE1\u606F\u63CF\u8FF0, \u524D\u63A8\u540E\u4FE1\u606F\u63CF\u8FF0, wsKey = "ws-client-id") {
500
626
  super(
501
- import_zod5.z.object({
502
- ws\u64CD\u4F5C: import_zod5.z.object({
503
- \u53D1\u9001ws\u4FE1\u606F: import_zod5.z.function(import_zod5.z.tuple([\u540E\u63A8\u524D\u4FE1\u606F\u63CF\u8FF0]), import_zod5.z.promise(import_zod5.z.void())),
504
- \u76D1\u542Cws\u4FE1\u606F: import_zod5.z.function(
505
- import_zod5.z.tuple([import_zod5.z.function(import_zod5.z.tuple([\u524D\u63A8\u540E\u4FE1\u606F\u63CF\u8FF0]), import_zod5.z.promise(import_zod5.z.void()))]),
506
- import_zod5.z.promise(import_zod5.z.void())
627
+ \u9519\u8BEF\u7C7B\u578B\u63CF\u8FF08,
628
+ import_zod8.z.object({
629
+ ws\u64CD\u4F5C: import_zod8.z.object({
630
+ \u53D1\u9001ws\u4FE1\u606F: import_zod8.z.function(import_zod8.z.tuple([\u540E\u63A8\u524D\u4FE1\u606F\u63CF\u8FF0]), import_zod8.z.promise(import_zod8.z.void())),
631
+ \u76D1\u542Cws\u4FE1\u606F: import_zod8.z.function(
632
+ import_zod8.z.tuple([import_zod8.z.function(import_zod8.z.tuple([\u524D\u63A8\u540E\u4FE1\u606F\u63CF\u8FF0]), import_zod8.z.promise(import_zod8.z.void()))]),
633
+ import_zod8.z.promise(import_zod8.z.union([import_zod8.z.instanceof(\u96C6\u7EBF\u5668\u76D1\u542C\u5668\u6301\u6709\u8005), import_zod8.z.null()]))
507
634
  ),
508
- \u5173\u95EDws\u8FDE\u63A5: import_zod5.z.function(import_zod5.z.tuple([]), import_zod5.z.promise(import_zod5.z.void())),
509
- \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570: import_zod5.z.function(import_zod5.z.tuple([import_zod5.z.function(import_zod5.z.tuple([]), import_zod5.z.promise(import_zod5.z.void()))]), import_zod5.z.promise(import_zod5.z.void()))
510
- }).or(import_zod5.z.null())
635
+ \u5173\u95EDws\u8FDE\u63A5: import_zod8.z.function(import_zod8.z.tuple([]), import_zod8.z.promise(import_zod8.z.void())),
636
+ \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570: import_zod8.z.function(import_zod8.z.tuple([import_zod8.z.function(import_zod8.z.tuple([]), import_zod8.z.promise(import_zod8.z.void()))]), import_zod8.z.promise(import_zod8.z.void()))
637
+ }).or(import_zod8.z.null())
511
638
  }),
512
639
  async (req, _res, \u9644\u52A0\u53C2\u6570) => {
513
- let log2 = \u9644\u52A0\u53C2\u6570.log.extend("webSocket\u63D2\u4EF6");
514
- let WebSocket\u7BA1\u7406\u56682 = await Global.getItem("WebSocket\u7BA1\u7406\u5668");
640
+ let log = \u9644\u52A0\u53C2\u6570.log.extend(_WebSocket\u63D2\u4EF6.name);
641
+ let WebSocket\u7BA1\u7406\u56682 = \u9644\u52A0\u53C2\u6570.webSocket\u7BA1\u7406\u5668;
515
642
  let ws\u53E5\u67C4 = null;
516
- let wsId = req.headers["ws-client-id"];
517
- await log2.debug("\u68C0\u67E5 ws-client-id \u5934\u4FE1\u606F", { wsId });
643
+ let wsId = req.headers[wsKey];
644
+ await log.debug("\u68C0\u67E5\u5934\u4FE1\u606F", { wsId });
518
645
  if (typeof wsId !== "string") {
519
- await log2.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket Id");
520
- return { ws\u64CD\u4F5C: null };
646
+ await log.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket Id");
647
+ return new import_ts_fp_data9.Right({ ws\u64CD\u4F5C: null });
521
648
  }
522
- await log2.debug("\u5DF2\u83B7\u5F97 WebSocket Id: %o", wsId);
523
- return {
649
+ await log.debug("\u5DF2\u83B7\u5F97 WebSocket Id: %o", wsId);
650
+ return new import_ts_fp_data9.Right({
524
651
  ws\u64CD\u4F5C: {
525
652
  async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
526
653
  if (ws\u53E5\u67C4 === null) {
527
- ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u56682.\u83B7\u5F97\u53E5\u67C4(wsId);
654
+ ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u56682.\u83B7\u5F97ws\u53E5\u67C4(wsId);
528
655
  }
529
656
  if (ws\u53E5\u67C4 === null) {
530
- await log2.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
657
+ await log.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
531
658
  return;
532
659
  }
533
- if (ws\u53E5\u67C4.readyState !== import_ws2.WebSocket.OPEN) {
534
- await log2.warn("WebSocket \u672A\u6253\u5F00\uFF0C\u65E0\u6CD5\u53D1\u9001\u6D88\u606F", { wsId });
660
+ if (ws\u53E5\u67C4.readyState !== import_ws.WebSocket.OPEN) {
661
+ await log.warn("WebSocket \u672A\u6253\u5F00\uFF0C\u65E0\u6CD5\u53D1\u9001\u6D88\u606F", { wsId });
535
662
  return;
536
663
  }
537
664
  await new Promise((resolve, reject) => {
538
665
  ws\u53E5\u67C4?.send(JSON.stringify(\u4FE1\u606F), (err) => {
539
666
  if (err !== void 0 && err !== null) {
540
- log2.warn("\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25", { \u9519\u8BEF: err }).catch((a) => `\u65E5\u5FD7\u8F93\u51FA\u9519\u8BEF: ${a}: \u65E5\u5FD7\u5185\u5BB9: ${`\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25: ${err}`}`);
667
+ log.warn("\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25", { \u9519\u8BEF: err }).catch((a) => `\u65E5\u5FD7\u8F93\u51FA\u9519\u8BEF: ${a}: \u65E5\u5FD7\u5185\u5BB9: ${`\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25: ${err}`}`);
541
668
  return reject(err);
542
669
  }
543
670
  resolve();
@@ -545,62 +672,294 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
545
672
  });
546
673
  },
547
674
  async \u5173\u95EDws\u8FDE\u63A5() {
548
- await log2.debug("\u5173\u95ED WebSocket \u8FDE\u63A5", { wsId });
675
+ await log.debug("\u5173\u95ED WebSocket \u8FDE\u63A5", { wsId });
549
676
  WebSocket\u7BA1\u7406\u56682.\u5220\u9664\u8FDE\u63A5(wsId);
550
677
  },
551
678
  async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(\u6E05\u7406\u51FD\u6570) {
552
- await log2.debug("\u8BBE\u7F6E WebSocket \u6E05\u7406\u51FD\u6570", { wsId });
679
+ await log.debug("\u8BBE\u7F6E WebSocket \u6E05\u7406\u51FD\u6570", { wsId });
553
680
  await WebSocket\u7BA1\u7406\u56682.\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(wsId, \u6E05\u7406\u51FD\u6570);
554
681
  },
555
682
  async \u76D1\u542Cws\u4FE1\u606F(\u56DE\u8C03\u51FD\u6570) {
556
683
  if (ws\u53E5\u67C4 === null) {
557
- ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u56682.\u83B7\u5F97\u53E5\u67C4(wsId);
684
+ ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u56682.\u83B7\u5F97ws\u53E5\u67C4(wsId);
558
685
  }
559
686
  if (ws\u53E5\u67C4 === null) {
560
- await log2.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
561
- return;
687
+ await log.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
688
+ return null;
562
689
  }
563
- await log2.debug("\u6CE8\u518C WebSocket \u6D88\u606F\u76D1\u542C", { wsId });
564
- await WebSocket\u7BA1\u7406\u56682.\u8BBE\u7F6E\u6D88\u606F\u76D1\u542C(wsId, \u56DE\u8C03\u51FD\u6570);
690
+ await log.debug("\u6CE8\u518C WebSocket \u6D88\u606F\u76D1\u542C", { wsId });
691
+ return WebSocket\u7BA1\u7406\u56682.\u8BBE\u7F6E\u6D88\u606F\u76D1\u542C(wsId, \u56DE\u8C03\u51FD\u6570);
565
692
  }
566
693
  }
567
- };
694
+ });
568
695
  }
569
696
  );
570
697
  }
571
698
  };
572
699
 
700
+ // src/returner/common.ts
701
+ var import_zod9 = require("zod");
702
+ var \u5E38\u7528\u63A5\u53E3\u8FD4\u56DE\u5668 = class _\u5E38\u7528\u63A5\u53E3\u8FD4\u56DE\u5668 extends \u63A5\u53E3\u8FD4\u56DE\u5668 {
703
+ constructor(\u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod, \u5B9E\u73B0\u6B63\u786E\u7C7B\u578BZod, \u81EA\u5B9A\u4E49\u8FD4\u56DE\u5934) {
704
+ super();
705
+ this.\u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod = \u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod;
706
+ this.\u5B9E\u73B0\u6B63\u786E\u7C7B\u578BZod = \u5B9E\u73B0\u6B63\u786E\u7C7B\u578BZod;
707
+ this.\u81EA\u5B9A\u4E49\u8FD4\u56DE\u5934 = \u81EA\u5B9A\u4E49\u8FD4\u56DE\u5934;
708
+ }
709
+ \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod() {
710
+ return import_zod9.z.object({ status: import_zod9.z.literal("fail"), data: this.\u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod });
711
+ }
712
+ \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod() {
713
+ return import_zod9.z.object({ status: import_zod9.z.literal("success"), data: this.\u5B9E\u73B0\u6B63\u786E\u7C7B\u578BZod });
714
+ }
715
+ \u5B9E\u73B0(req, res, \u6570\u636E, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
716
+ let log = \u8BF7\u6C42\u9644\u52A0\u53C2\u6570.log.extend(_\u5E38\u7528\u63A5\u53E3\u8FD4\u56DE\u5668.name);
717
+ if (this.\u81EA\u5B9A\u4E49\u8FD4\u56DE\u5934 !== void 0) {
718
+ for (let [key, value] of Object.entries(this.\u81EA\u5B9A\u4E49\u8FD4\u56DE\u5934)) {
719
+ res.setHeader(key, value);
720
+ }
721
+ }
722
+ switch (\u6570\u636E.getTag()) {
723
+ case "Left": {
724
+ let \u5B9E\u9645\u6570\u636E = \u6570\u636E.assertLeft().getLeft();
725
+ let \u6821\u9A8C\u7ED3\u679C = this.\u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod.safeParse(\u5B9E\u9645\u6570\u636E);
726
+ if (\u6821\u9A8C\u7ED3\u679C.success === false) {
727
+ let \u7ED3\u679C\u5B57\u7B26\u4E32 = JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u5B9E\u9645\u6570\u636E));
728
+ void log.error(`\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C: ${\u7ED3\u679C\u5B57\u7B26\u4E32}`);
729
+ void log.error("\u9519\u8BEF: %o", JSON.stringify(\u6821\u9A8C\u7ED3\u679C.error));
730
+ throw new Error(`\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C`);
731
+ }
732
+ let \u8FD4\u56DE\u6570\u636E = { status: "fail", data: \u5B9E\u9645\u6570\u636E };
733
+ void log.debug("\u6700\u7EC8\u7ED3\u679C: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u8FD4\u56DE\u6570\u636E)));
734
+ res.send(\u8FD4\u56DE\u6570\u636E);
735
+ break;
736
+ }
737
+ case "Right": {
738
+ let \u5B9E\u9645\u6570\u636E = \u6570\u636E.assertRight().getRight();
739
+ let \u6821\u9A8C\u7ED3\u679C = this.\u5B9E\u73B0\u6B63\u786E\u7C7B\u578BZod.safeParse(\u5B9E\u9645\u6570\u636E);
740
+ if (\u6821\u9A8C\u7ED3\u679C.success === false) {
741
+ let \u7ED3\u679C\u5B57\u7B26\u4E32 = JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u5B9E\u9645\u6570\u636E));
742
+ void log.error(`\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C: ${\u7ED3\u679C\u5B57\u7B26\u4E32}`);
743
+ void log.error("\u9519\u8BEF: %o", JSON.stringify(\u6821\u9A8C\u7ED3\u679C.error));
744
+ throw new Error(`\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C`);
745
+ }
746
+ let \u8FD4\u56DE\u6570\u636E = { status: "success", data: \u5B9E\u9645\u6570\u636E };
747
+ void log.debug("\u6700\u7EC8\u7ED3\u679C: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u8FD4\u56DE\u6570\u636E)));
748
+ res.send(\u8FD4\u56DE\u6570\u636E);
749
+ break;
750
+ }
751
+ }
752
+ }
753
+ };
754
+
755
+ // src/returner/custom.ts
756
+ var \u81EA\u5B9A\u4E49\u63A5\u53E3\u8FD4\u56DE\u5668 = class _\u81EA\u5B9A\u4E49\u63A5\u53E3\u8FD4\u56DE\u5668 extends \u63A5\u53E3\u8FD4\u56DE\u5668 {
757
+ constructor(\u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod, \u5B9E\u73B0\u6B63\u786E\u7C7B\u578BZod, \u63A5\u53E3\u9519\u8BEF\u7C7B\u578BZod, \u63A5\u53E3\u6B63\u786E\u7C7B\u578BZod, \u5B9E\u73B0\u51FD\u6570) {
758
+ super();
759
+ this.\u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod = \u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod;
760
+ this.\u5B9E\u73B0\u6B63\u786E\u7C7B\u578BZod = \u5B9E\u73B0\u6B63\u786E\u7C7B\u578BZod;
761
+ this.\u63A5\u53E3\u9519\u8BEF\u7C7B\u578BZod = \u63A5\u53E3\u9519\u8BEF\u7C7B\u578BZod;
762
+ this.\u63A5\u53E3\u6B63\u786E\u7C7B\u578BZod = \u63A5\u53E3\u6B63\u786E\u7C7B\u578BZod;
763
+ this.\u5B9E\u73B0\u51FD\u6570 = \u5B9E\u73B0\u51FD\u6570;
764
+ }
765
+ \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod() {
766
+ return this.\u63A5\u53E3\u9519\u8BEF\u7C7B\u578BZod;
767
+ }
768
+ \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod() {
769
+ return this.\u63A5\u53E3\u6B63\u786E\u7C7B\u578BZod;
770
+ }
771
+ \u5B9E\u73B0(req, res, \u6570\u636E, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
772
+ let _log = \u8BF7\u6C42\u9644\u52A0\u53C2\u6570.log.extend(_\u81EA\u5B9A\u4E49\u63A5\u53E3\u8FD4\u56DE\u5668.name);
773
+ this.\u5B9E\u73B0\u51FD\u6570(req, res, \u6570\u636E, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
774
+ }
775
+ };
776
+
777
+ // src/returner/file-stream-download.ts
778
+ var import_node_stream = require("stream");
779
+ var import_zod10 = require("zod");
780
+ var \u6587\u4EF6\u6D41\u5F0F\u4E0B\u8F7D\u8FD4\u56DE\u5668 = class _\u6587\u4EF6\u6D41\u5F0F\u4E0B\u8F7D\u8FD4\u56DE\u5668 extends \u63A5\u53E3\u8FD4\u56DE\u5668 {
781
+ constructor(\u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod) {
782
+ super();
783
+ this.\u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod = \u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod;
784
+ }
785
+ \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod() {
786
+ return import_zod10.z.object({ status: import_zod10.z.literal("fail"), data: this.\u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod });
787
+ }
788
+ \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod() {
789
+ return import_zod10.z.any();
790
+ }
791
+ \u5B9E\u73B0(req, res, \u6570\u636E, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
792
+ let log = \u8BF7\u6C42\u9644\u52A0\u53C2\u6570.log.extend(_\u6587\u4EF6\u6D41\u5F0F\u4E0B\u8F7D\u8FD4\u56DE\u5668.name);
793
+ switch (\u6570\u636E.getTag()) {
794
+ case "Left": {
795
+ let \u5B9E\u9645\u6570\u636E = \u6570\u636E.assertLeft().getLeft();
796
+ let \u6821\u9A8C\u7ED3\u679C = this.\u5B9E\u73B0\u9519\u8BEF\u7C7B\u578BZod.safeParse(\u5B9E\u9645\u6570\u636E);
797
+ if (\u6821\u9A8C\u7ED3\u679C.success === false) {
798
+ let \u7ED3\u679C\u5B57\u7B26\u4E32 = JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u5B9E\u9645\u6570\u636E));
799
+ void log.error(`\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C: ${\u7ED3\u679C\u5B57\u7B26\u4E32}`);
800
+ void log.error("\u9519\u8BEF: %o", JSON.stringify(\u6821\u9A8C\u7ED3\u679C.error));
801
+ throw new Error(`\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C`);
802
+ }
803
+ let \u8FD4\u56DE\u6570\u636E = { status: "fail", data: \u5B9E\u9645\u6570\u636E };
804
+ void log.debug("\u6700\u7EC8\u7ED3\u679C: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u8FD4\u56DE\u6570\u636E)));
805
+ res.send(\u8FD4\u56DE\u6570\u636E);
806
+ break;
807
+ }
808
+ case "Right": {
809
+ let \u5B9E\u9645\u6570\u636E = \u6570\u636E.assertRight().getRight();
810
+ let \u5B9E\u73B0\u6B63\u786E\u7C7B\u578BZod = import_zod10.z.object({
811
+ data: import_zod10.z.instanceof(import_node_stream.Readable),
812
+ filename: import_zod10.z.string().optional(),
813
+ mimeType: import_zod10.z.string().optional()
814
+ });
815
+ let \u6821\u9A8C\u7ED3\u679C = \u5B9E\u73B0\u6B63\u786E\u7C7B\u578BZod.safeParse(\u5B9E\u9645\u6570\u636E);
816
+ if (\u6821\u9A8C\u7ED3\u679C.success === false) {
817
+ let \u7ED3\u679C\u5B57\u7B26\u4E32 = JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u5B9E\u9645\u6570\u636E));
818
+ void log.error(`\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C: ${\u7ED3\u679C\u5B57\u7B26\u4E32}`);
819
+ void log.error("\u9519\u8BEF: %o", JSON.stringify(\u6821\u9A8C\u7ED3\u679C.error));
820
+ throw new Error(`\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C`);
821
+ }
822
+ if (\u5B9E\u9645\u6570\u636E.mimeType !== void 0) {
823
+ res.setHeader("Content-Type", \u5B9E\u9645\u6570\u636E.mimeType);
824
+ }
825
+ if (\u5B9E\u9645\u6570\u636E.filename !== void 0) {
826
+ let encodedFilename = encodeURIComponent(\u5B9E\u9645\u6570\u636E.filename);
827
+ res.setHeader("Content-Disposition", `attachment; filename*=UTF-8''${encodedFilename}`);
828
+ }
829
+ \u5B9E\u9645\u6570\u636E.data.pipe(res);
830
+ break;
831
+ }
832
+ }
833
+ }
834
+ };
835
+
836
+ // src/returner/static-file.ts
837
+ var import_promises = require("fs/promises");
838
+ var import_zod11 = require("zod");
839
+ var \u9759\u6001\u6587\u4EF6\u8FD4\u56DE\u5668 = class _\u9759\u6001\u6587\u4EF6\u8FD4\u56DE\u5668 extends \u63A5\u53E3\u8FD4\u56DE\u5668 {
840
+ MIME\u7C7B\u578B\u6620\u5C04;
841
+ \u7F13\u5B58\u63A7\u5236;
842
+ constructor(options) {
843
+ super();
844
+ this.\u7F13\u5B58\u63A7\u5236 = options.\u7F13\u5B58\u63A7\u5236;
845
+ this.MIME\u7C7B\u578B\u6620\u5C04 = new Map([
846
+ [".html", "text/html; charset=utf-8"],
847
+ [".js", "application/javascript"],
848
+ [".css", "text/css"],
849
+ [".json", "application/json"],
850
+ [".png", "image/png"],
851
+ [".jpg", "image/jpeg"],
852
+ [".jpeg", "image/jpeg"],
853
+ [".gif", "image/gif"],
854
+ [".svg", "image/svg+xml"],
855
+ [".txt", "text/plain"],
856
+ [".woff", "font/woff"],
857
+ [".woff2", "font/woff2"],
858
+ [".ttf", "font/ttf"],
859
+ [".eot", "application/vnd.ms-fontobject"],
860
+ [".md", "text/markdown; charset=utf-8"],
861
+ [".xml", "application/xml"],
862
+ ...Object.entries(options.MIME\u7C7B\u578B\u6620\u5C04 ?? {})
863
+ ]);
864
+ }
865
+ \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod() {
866
+ return import_zod11.z.any();
867
+ }
868
+ \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod() {
869
+ return import_zod11.z.any();
870
+ }
871
+ async \u5B9E\u73B0(req, res, \u6570\u636E, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
872
+ let log = \u8BF7\u6C42\u9644\u52A0\u53C2\u6570.log.extend(_\u9759\u6001\u6587\u4EF6\u8FD4\u56DE\u5668.name);
873
+ if (\u6570\u636E.getTag() === "Left") {
874
+ let \u9519\u8BEF\u6D88\u606F = \u6570\u636E.assertLeft().getLeft();
875
+ void log.error("\u6587\u4EF6\u83B7\u53D6\u5931\u8D25: %s", \u9519\u8BEF\u6D88\u606F);
876
+ res.status(404).send({ error: \u9519\u8BEF\u6D88\u606F });
877
+ return;
878
+ }
879
+ let \u6587\u4EF6\u8DEF\u5F84 = \u6570\u636E.assertRight().getRight().filePath;
880
+ try {
881
+ let \u6587\u4EF6\u5185\u5BB9 = await (0, import_promises.readFile)(\u6587\u4EF6\u8DEF\u5F84, "utf-8");
882
+ let \u6269\u5C55\u540D = \u6587\u4EF6\u8DEF\u5F84.substring(\u6587\u4EF6\u8DEF\u5F84.lastIndexOf(".")).toLowerCase();
883
+ let MIME\u7C7B\u578B = this.MIME\u7C7B\u578B\u6620\u5C04.get(\u6269\u5C55\u540D) ?? "application/octet-stream";
884
+ res.setHeader("Content-Type", MIME\u7C7B\u578B);
885
+ let \u7F13\u5B58\u63A7\u5236 = this.\u7F13\u5B58\u63A7\u5236;
886
+ if (\u7F13\u5B58\u63A7\u5236 !== void 0) {
887
+ res.setHeader("Cache-Control", \u7F13\u5B58\u63A7\u5236);
888
+ }
889
+ void log.debug("\u8FD4\u56DE\u6587\u4EF6: %s, MIME\u7C7B\u578B: %s", \u6587\u4EF6\u8DEF\u5F84, MIME\u7C7B\u578B);
890
+ res.send(\u6587\u4EF6\u5185\u5BB9);
891
+ } catch (error) {
892
+ void log.error("\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25: %s, \u9519\u8BEF: %o", \u6587\u4EF6\u8DEF\u5F84, error);
893
+ res.status(500).send({ error: "\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25" });
894
+ }
895
+ }
896
+ };
897
+
898
+ // src/returner/virtual-file.ts
899
+ var import_zod12 = require("zod");
900
+ var \u865A\u62DF\u6587\u4EF6\u8FD4\u56DE\u5668 = class _\u865A\u62DF\u6587\u4EF6\u8FD4\u56DE\u5668 extends \u63A5\u53E3\u8FD4\u56DE\u5668 {
901
+ \u7F13\u5B58\u63A7\u5236;
902
+ constructor(options) {
903
+ super();
904
+ this.\u7F13\u5B58\u63A7\u5236 = options.\u7F13\u5B58\u63A7\u5236;
905
+ }
906
+ \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod() {
907
+ return import_zod12.z.any();
908
+ }
909
+ \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod() {
910
+ return import_zod12.z.any();
911
+ }
912
+ \u5B9E\u73B0(req, res, \u6570\u636E, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
913
+ let log = \u8BF7\u6C42\u9644\u52A0\u53C2\u6570.log.extend(_\u865A\u62DF\u6587\u4EF6\u8FD4\u56DE\u5668.name);
914
+ if (\u6570\u636E.getTag() === "Left") {
915
+ let \u9519\u8BEF\u6D88\u606F = \u6570\u636E.assertLeft().getLeft();
916
+ void log.error("\u6587\u4EF6\u751F\u6210\u5931\u8D25: %s", \u9519\u8BEF\u6D88\u606F);
917
+ res.status(404).send({ error: \u9519\u8BEF\u6D88\u606F });
918
+ return;
919
+ }
920
+ let { fileContent, MIMEType } = \u6570\u636E.assertRight().getRight();
921
+ res.setHeader("Content-Type", MIMEType);
922
+ let \u7F13\u5B58\u63A7\u5236 = this.\u7F13\u5B58\u63A7\u5236;
923
+ if (\u7F13\u5B58\u63A7\u5236 !== void 0) {
924
+ res.setHeader("Cache-Control", \u7F13\u5B58\u63A7\u5236);
925
+ }
926
+ void log.debug("\u8FD4\u56DE\u865A\u62DF\u6587\u4EF6, MIME\u7C7B\u578B: %s", MIMEType);
927
+ res.send(fileContent);
928
+ }
929
+ };
930
+
573
931
  // src/server/server.ts
574
932
  var import_express3 = __toESM(require("express"), 1);
575
- var import_promises = require("fs/promises");
576
933
  var import_node_os = require("os");
577
934
  var import_short_uuid = __toESM(require("short-uuid"), 1);
578
- var import_ws3 = require("ws");
935
+ var import_ws2 = require("ws");
579
936
  var \u670D\u52A1\u5668 = class {
580
937
  log;
581
938
  \u65E5\u5FD7\u56DE\u8C03;
582
939
  \u63A5\u53E3\u4EEC;
583
940
  \u7AEF\u53E3;
584
- \u9759\u6001\u8D44\u6E90\u8DEF\u5F84;
585
- \u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84;
941
+ \u52A8\u6001\u8DEF\u7531\u8868 = [];
942
+ \u9759\u6001\u8DEF\u7531\u8868 = /* @__PURE__ */ new Map();
586
943
  constructor(options) {
587
944
  this.\u63A5\u53E3\u4EEC = options.\u63A5\u53E3\u4EEC;
588
945
  this.\u7AEF\u53E3 = options.\u7AEF\u53E3;
589
- this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 = options.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84;
590
- this.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84 = options.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84;
591
946
  this.\u65E5\u5FD7\u56DE\u8C03 = options.\u65E5\u5FD7\u56DE\u8C03;
592
- this.log = Global.getItem("log").then((a) => {
593
- if (this.\u65E5\u5FD7\u56DE\u8C03 !== void 0) a.pipe(this.\u65E5\u5FD7\u56DE\u8C03);
594
- return a;
595
- });
947
+ this.log = \u5168\u5C40\u65E5\u5FD7\u5355\u4F8B;
948
+ if (this.\u65E5\u5FD7\u56DE\u8C03 !== void 0) this.log = this.log.pipe(this.\u65E5\u5FD7\u56DE\u8C03);
949
+ for (let \u63A5\u53E32 of this.\u63A5\u53E3\u4EEC) {
950
+ let \u8DEF\u5F84 = \u63A5\u53E32.\u83B7\u5F97\u8DEF\u5F84();
951
+ if (typeof \u8DEF\u5F84 === "string") {
952
+ let \u65B9\u6CD5 = \u63A5\u53E32.\u83B7\u5F97\u65B9\u6CD5();
953
+ let \u65B9\u6CD5\u8868 = this.\u9759\u6001\u8DEF\u7531\u8868.get(\u8DEF\u5F84) ?? /* @__PURE__ */ new Map();
954
+ \u65B9\u6CD5\u8868.set(\u65B9\u6CD5, \u63A5\u53E32);
955
+ this.\u9759\u6001\u8DEF\u7531\u8868.set(\u8DEF\u5F84, \u65B9\u6CD5\u8868);
956
+ continue;
957
+ }
958
+ this.\u52A8\u6001\u8DEF\u7531\u8868.push(\u63A5\u53E32);
959
+ }
596
960
  }
597
961
  async run() {
598
- let log2 = await this.log;
599
962
  let app = (0, import_express3.default)();
600
- if (this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 !== void 0) {
601
- await log2.debug(`\u8BBE\u7F6E\u9759\u6001\u8D44\u6E90\u8DEF\u5F84: ${this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84}`);
602
- app.use(import_express3.default.static(this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84));
603
- }
604
963
  app.use(this.\u5904\u7406\u8BF7\u6C42.bind(this));
605
964
  let server = app.listen(this.\u7AEF\u53E3);
606
965
  await this.\u521D\u59CB\u5316WebSocket(server);
@@ -608,91 +967,79 @@ var \u670D\u52A1\u5668 = class {
608
967
  }
609
968
  async \u5904\u7406\u8BF7\u6C42(req, res) {
610
969
  let \u8BF7\u6C42id = (0, import_short_uuid.default)().new();
611
- let log2 = (await this.log).extend(\u8BF7\u6C42id);
970
+ let log = this.log.extend(\u8BF7\u6C42id);
971
+ let \u8BF7\u6C42\u9644\u52A0\u53C2\u6570 = { log, \u8BF7\u6C42id, webSocket\u7BA1\u7406\u5668: \u5168\u5C40WebSocket\u7BA1\u7406\u5668\u5355\u4F8B };
612
972
  let \u5F00\u59CB\u65F6\u95F4 = Date.now();
613
973
  try {
614
974
  let { path: \u8BF7\u6C42\u8DEF\u5F84, method } = req;
615
975
  \u8BF7\u6C42\u8DEF\u5F84 = decodeURIComponent(\u8BF7\u6C42\u8DEF\u5F84);
616
976
  let \u8BF7\u6C42\u65B9\u6CD5 = method.toLowerCase();
617
- await log2.debug("\u6536\u5230\u8BF7\u6C42, \u8DEF\u5F84: %o, \u65B9\u6CD5: %o", \u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5);
618
- let \u76EE\u6807\u63A5\u53E3 = this.\u63A5\u53E3\u4EEC.find((\u63A5\u53E32) => \u8BF7\u6C42\u65B9\u6CD5 === \u63A5\u53E32.\u83B7\u5F97\u65B9\u6CD5() && \u8BF7\u6C42\u8DEF\u5F84 === \u63A5\u53E32.\u83B7\u5F97\u8DEF\u5F84()) ?? null;
977
+ await log.debug("\u6536\u5230\u8BF7\u6C42, \u8DEF\u5F84: %o, \u65B9\u6CD5: %o", \u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5);
978
+ let \u76EE\u6807\u63A5\u53E3 = null;
979
+ let \u65B9\u6CD5\u8868 = this.\u9759\u6001\u8DEF\u7531\u8868.get(\u8BF7\u6C42\u8DEF\u5F84);
980
+ if (\u65B9\u6CD5\u8868 !== void 0) {
981
+ \u76EE\u6807\u63A5\u53E3 = \u65B9\u6CD5\u8868.get(\u8BF7\u6C42\u65B9\u6CD5) ?? null;
982
+ }
983
+ if (\u76EE\u6807\u63A5\u53E3 === null) {
984
+ \u76EE\u6807\u63A5\u53E3 = this.\u52A8\u6001\u8DEF\u7531\u8868.find((\u63A5\u53E32) => \u8BF7\u6C42\u65B9\u6CD5 === \u63A5\u53E32.\u83B7\u5F97\u65B9\u6CD5() && \u63A5\u53E32.\u5339\u914D\u8DEF\u5F84(\u8BF7\u6C42\u8DEF\u5F84)) ?? null;
985
+ }
619
986
  if (\u76EE\u6807\u63A5\u53E3 !== null) {
620
- await this.\u5904\u7406\u63A5\u53E3\u903B\u8F91({ req, res, \u76EE\u6807\u63A5\u53E3, log: log2, \u8BF7\u6C42id });
987
+ await this.\u5904\u7406\u63A5\u53E3\u903B\u8F91({ req, res, \u76EE\u6807\u63A5\u53E3, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570 });
621
988
  return;
622
989
  }
623
- if (this.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84 !== void 0 && \u8BF7\u6C42\u65B9\u6CD5 === "get") {
624
- try {
625
- let \u9ED8\u8BA4\u6587\u4EF6\u5185\u5BB9 = await (0, import_promises.readFile)(this.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84, { encoding: "utf-8" });
626
- res.send(\u9ED8\u8BA4\u6587\u4EF6\u5185\u5BB9);
627
- return;
628
- } catch (e) {
629
- await log2.error("\u8FD4\u56DE\u9ED8\u8BA4get\u6587\u4EF6\u5185\u5BB9\u5931\u8D25: %o", String(e));
630
- }
631
- }
632
- await log2.debug("\u6CA1\u6709\u547D\u4E2D\u4EFB\u4F55\u8D44\u6E90");
990
+ await log.debug("\u6CA1\u6709\u547D\u4E2D\u4EFB\u4F55\u8D44\u6E90");
633
991
  res.status(404).end();
634
992
  } catch (error) {
635
- await log2.error(error);
636
- res.status(500).send("\u670D\u52A1\u5668\u5185\u90E8\u9519\u8BEF");
993
+ await log.error(error);
994
+ res.setHeader("Content-Type", "text/html");
995
+ res.status(500).send("Internal Server Error");
637
996
  } finally {
638
997
  let \u8017\u65F6ms = Date.now() - \u5F00\u59CB\u65F6\u95F4;
639
- await log2.info("\u8BF7\u6C42\u5B8C\u6210, \u8017\u65F6: %o ms", \u8017\u65F6ms);
998
+ await log.info("\u8BF7\u6C42\u5B8C\u6210, \u8017\u65F6: %o ms", \u8017\u65F6ms);
640
999
  }
641
1000
  }
642
1001
  async \u5904\u7406\u63A5\u53E3\u903B\u8F91(opt) {
643
- let { req, res, \u76EE\u6807\u63A5\u53E3, log: log2, \u8BF7\u6C42id } = opt;
644
- let \u63A5\u53E3\u903B\u8F912 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u903B\u8F91();
645
- let \u7ED3\u679C\u8F6C\u6362\u5668 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u7ED3\u679C\u8F6C\u6362\u5668();
646
- let \u7ED3\u679C\u8FD4\u56DE\u5668 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u7ED3\u679C\u8FD4\u56DE\u5668();
1002
+ let { req, res, \u76EE\u6807\u63A5\u53E3, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570 } = opt;
1003
+ let log = \u8BF7\u6C42\u9644\u52A0\u53C2\u6570.log;
1004
+ let \u63A5\u53E3\u903B\u8F912 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u903B\u8F91();
1005
+ let \u63A5\u53E3\u8FD4\u56DE\u56682 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u8FD4\u56DE\u5668();
647
1006
  let \u603B\u5F00\u59CB = Date.now();
648
1007
  let \u5F00\u59CB = Date.now();
649
- await log2.debug("\u8C03\u7528\u63A5\u53E3\u903B\u8F91...");
1008
+ await log.debug("\u8C03\u7528\u63A5\u53E3\u903B\u8F91...");
650
1009
  let \u63D2\u4EF6\u4EEC = \u63A5\u53E3\u903B\u8F912.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
651
- await log2.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63D2\u4EF6\u4EEC.length);
652
- let \u63D2\u4EF6\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F912.\u8BA1\u7B97\u63D2\u4EF6\u7ED3\u679C(req, res, { log: log2, \u8BF7\u6C42id });
653
- await log2.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
654
- await log2.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u5B9E\u73B0...");
655
- let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F912.\u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u63D2\u4EF6\u7ED3\u679C, {}, { log: log2, \u8BF7\u6C42id });
656
- await log2.debug("\u63A5\u53E3\u5B9E\u73B0\u6267\u884C\u5B8C\u6BD5");
657
- let \u63A5\u53E3\u8017\u65F6 = Date.now() - \u5F00\u59CB;
658
- await log2.info("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5, \u8017\u65F6: %o ms", \u63A5\u53E3\u8017\u65F6);
659
- \u5F00\u59CB = Date.now();
660
- let \u8F6C\u6362\u7ED3\u679C = \u7ED3\u679C\u8F6C\u6362\u5668.\u5B9E\u73B0(\u63A5\u53E3\u7ED3\u679C);
661
- let \u9519\u8BEF\u7ED3\u679C = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod().safeParse(\u8F6C\u6362\u7ED3\u679C);
662
- let \u6B63\u786E\u7ED3\u679C = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod().safeParse(\u8F6C\u6362\u7ED3\u679C);
663
- let \u6700\u7EC8\u7ED3\u679C;
664
- if (\u9519\u8BEF\u7ED3\u679C.success === true) {
665
- \u6700\u7EC8\u7ED3\u679C = \u9519\u8BEF\u7ED3\u679C.data;
666
- } else if (\u6B63\u786E\u7ED3\u679C.success === true) {
667
- \u6700\u7EC8\u7ED3\u679C = \u6B63\u786E\u7ED3\u679C.data;
668
- } else {
669
- let \u7ED3\u679C\u5B57\u7B26\u4E32 = JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u8F6C\u6362\u7ED3\u679C));
670
- await log2.error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C: ${\u7ED3\u679C\u5B57\u7B26\u4E32}`);
671
- await log2.error("\u5BF9\u4E8E\u9519\u8BEF\u7ED3\u679C: %o", \u9519\u8BEF\u7ED3\u679C.error);
672
- await log2.error("\u5BF9\u4E8E\u6B63\u786E\u7ED3\u679C: %o", \u6B63\u786E\u7ED3\u679C.error);
673
- throw new Error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C`);
1010
+ await log.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63D2\u4EF6\u4EEC.length);
1011
+ let \u63D2\u4EF6\u7ED3\u679CE = await \u63A5\u53E3\u903B\u8F912.\u8BA1\u7B97\u63D2\u4EF6\u7ED3\u679C(req, res, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
1012
+ if (\u63D2\u4EF6\u7ED3\u679CE.isLeft()) {
1013
+ let error = \u63D2\u4EF6\u7ED3\u679CE.assertLeft().getLeft();
1014
+ await log.warn("\u63D2\u4EF6\u6267\u884C\u62D2\u7EDD: %d %o", error.code, error.data);
1015
+ res.status(error.code).send(error.data);
1016
+ return;
674
1017
  }
675
- let \u8F6C\u6362\u8017\u65F6 = Date.now() - \u5F00\u59CB;
676
- await log2.info("\u7ED3\u679C\u8F6C\u6362\u4E0E\u6821\u9A8C\u5B8C\u6210, \u8017\u65F6: %o ms", \u8F6C\u6362\u8017\u65F6);
677
- await log2.debug("\u6700\u7EC8\u7ED3\u679C: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6700\u7EC8\u7ED3\u679C)));
1018
+ let \u63D2\u4EF6\u7ED3\u679C = \u63D2\u4EF6\u7ED3\u679CE.assertRight().getRight();
1019
+ await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
1020
+ await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u5B9E\u73B0...");
1021
+ let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F912.\u8C03\u7528(\u63D2\u4EF6\u7ED3\u679C, {}, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
1022
+ await log.debug("\u63A5\u53E3\u5B9E\u73B0\u6267\u884C\u5B8C\u6BD5");
1023
+ let \u63A5\u53E3\u8017\u65F6 = Date.now() - \u5F00\u59CB;
1024
+ await log.info("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5, \u8017\u65F6: %o ms", \u63A5\u53E3\u8017\u65F6);
678
1025
  \u5F00\u59CB = Date.now();
679
- await \u7ED3\u679C\u8FD4\u56DE\u5668.\u8FD4\u56DE(req, res, \u6700\u7EC8\u7ED3\u679C);
1026
+ \u63A5\u53E3\u8FD4\u56DE\u56682.\u5B9E\u73B0(req, res, \u63A5\u53E3\u7ED3\u679C, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
680
1027
  let \u8FD4\u56DE\u8017\u65F6 = Date.now() - \u5F00\u59CB;
681
- await log2.info("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5, \u8017\u65F6: %o ms", \u8FD4\u56DE\u8017\u65F6);
1028
+ await log.info("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5, \u8017\u65F6: %o ms", \u8FD4\u56DE\u8017\u65F6);
682
1029
  let \u603B\u8017\u65F6 = Date.now() - \u603B\u5F00\u59CB;
683
- await log2.info("\u63A5\u53E3\u5B8C\u6574\u6267\u884C\u8017\u65F6: %o ms", \u603B\u8017\u65F6);
1030
+ await log.info("\u63A5\u53E3\u5B8C\u6574\u6267\u884C\u8017\u65F6: %o ms", \u603B\u8017\u65F6);
684
1031
  }
685
1032
  async \u521D\u59CB\u5316WebSocket(server) {
686
- let log2 = await this.log;
687
- let wss = new import_ws3.WebSocketServer({ server });
1033
+ let log = this.log;
1034
+ let wss = new import_ws2.WebSocketServer({ server });
688
1035
  wss.on("listening", async () => {
689
- await log2.info("WebSocket \u670D\u52A1\u5668\u5DF2\u542F\u52A8\u5E76\u76D1\u542C");
1036
+ await log.info("WebSocket \u670D\u52A1\u5668\u5DF2\u542F\u52A8\u5E76\u76D1\u542C");
690
1037
  });
691
1038
  wss.on("error", async (err) => {
692
- await log2.error("WebSocket \u670D\u52A1\u5668\u53D1\u751F\u9519\u8BEF: %o", err);
1039
+ await log.error("WebSocket \u670D\u52A1\u5668\u53D1\u751F\u9519\u8BEF: %o", err);
693
1040
  });
694
1041
  wss.on("connection", async (ws, req) => {
695
- let \u8FDE\u63A5log = log2.extend((0, import_short_uuid.default)().new());
1042
+ let \u8FDE\u63A5log = log.extend((0, import_short_uuid.default)().new());
696
1043
  await \u8FDE\u63A5log.debug("\u6536\u5230 WebSocket \u8FDE\u63A5\u8BF7\u6C42: %o", req.url);
697
1044
  let \u5BA2\u6237\u7AEFid = req.url?.split("?id=")[1] ?? null;
698
1045
  if (\u5BA2\u6237\u7AEFid === null) {
@@ -700,7 +1047,7 @@ var \u670D\u52A1\u5668 = class {
700
1047
  return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \u8FDE\u63A5log, 4001, "\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
701
1048
  }
702
1049
  await \u8FDE\u63A5log.debug("\u89E3\u6790\u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
703
- let WebSocket\u7BA1\u7406\u56682 = Global.getItemSync("WebSocket\u7BA1\u7406\u5668");
1050
+ let WebSocket\u7BA1\u7406\u56682 = \u5168\u5C40WebSocket\u7BA1\u7406\u5668\u5355\u4F8B;
704
1051
  let \u8FDE\u63A5\u5DF2\u5B58\u5728 = WebSocket\u7BA1\u7406\u56682.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid);
705
1052
  if (\u8FDE\u63A5\u5DF2\u5B58\u5728) {
706
1053
  await \u8FDE\u63A5log.error("\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728: %s", \u5BA2\u6237\u7AEFid);
@@ -718,8 +1065,8 @@ var \u670D\u52A1\u5668 = class {
718
1065
  });
719
1066
  });
720
1067
  }
721
- async \u5173\u95EDWebSocket\u8FDE\u63A5(ws, log2, code, reason) {
722
- await log2.debug(`\u5173\u95ED WebSocket \u8FDE\u63A5, \u4EE3\u7801: ${code}, \u539F\u56E0: ${reason}`);
1068
+ async \u5173\u95EDWebSocket\u8FDE\u63A5(ws, log, code, reason) {
1069
+ await log.debug(`\u5173\u95ED WebSocket \u8FDE\u63A5, \u4EE3\u7801: ${code}, \u539F\u56E0: ${reason}`);
723
1070
  ws.close(code, reason);
724
1071
  }
725
1072
  \u83B7\u53D6\u672C\u5730\u5730\u5740() {
@@ -728,153 +1075,34 @@ var \u670D\u52A1\u5668 = class {
728
1075
  };
729
1076
 
730
1077
  // src/symbol/export-type.ts
731
- var EXPORT_TYPE = Symbol();
732
-
733
- // src/wrapper/common-wrapper.ts
734
- var import_zod6 = require("zod");
735
- var \u5E38\u7528\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5 = class extends \u63A5\u53E3 {
736
- constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F912, \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod, \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod) {
737
- let \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F = import_zod6.z.object({ status: import_zod6.z.literal("fail"), data: \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod });
738
- let \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F = import_zod6.z.object({ status: import_zod6.z.literal("success"), data: \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod });
739
- let \u63A5\u53E3\u8F6C\u6362\u5668 = new \u5E38\u7528\u5F62\u5F0F\u8F6C\u6362\u5668();
740
- super(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F912, \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F, \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F, \u63A5\u53E3\u8F6C\u6362\u5668, new \u5E38\u7528\u8FD4\u56DE\u5668());
741
- }
742
- };
743
-
744
- // src/wrapper/common-wrapper-return.ts
745
- var import_zod7 = require("zod");
746
- var \u5E38\u7528\u5F62\u5F0F\u5E76\u81EA\u5B9A\u4E49\u8FD4\u56DE\u5668\u63A5\u53E3\u5C01\u88C5 = class extends \u63A5\u53E3 {
747
- constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F912, \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod, \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod, \u8FD4\u56DE\u5668\u5B9E\u73B0) {
748
- let \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F = import_zod7.z.object({ status: import_zod7.z.literal("fail"), data: \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod });
749
- let \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F = import_zod7.z.object({ status: import_zod7.z.literal("success"), data: \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod });
750
- let \u63A5\u53E3\u8F6C\u6362\u5668 = new \u5E38\u7528\u5F62\u5F0F\u8F6C\u6362\u5668();
751
- super(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F912, \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F, \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F, \u63A5\u53E3\u8F6C\u6362\u5668, new \u81EA\u5B9A\u4E49\u8FD4\u56DE\u5668(\u8FD4\u56DE\u5668\u5B9E\u73B0));
752
- }
753
- };
754
-
755
- // src/wrapper/deferred-result-wrapper.ts
756
- var import_zod8 = require("zod");
757
- var \u5E38\u7528\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5 = class extends \u63A5\u53E3 {
758
- constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F912, \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod, \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod) {
759
- let \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F = import_zod8.z.object({ status: import_zod8.z.literal("fail"), data: \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod });
760
- let \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F = \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod;
761
- let \u63A5\u53E3\u8F6C\u6362\u5668 = new \u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668();
762
- super(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F912, \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F, \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F, \u63A5\u53E3\u8F6C\u6362\u5668, new \u5E38\u7528\u8FD4\u56DE\u5668());
763
- }
764
- };
765
-
766
- // src/wrapper/express-compatible-wrapper.ts
767
- var import_ts_fp_data2 = require("@lsby/ts-fp-data");
768
- var import_zod9 = require("zod");
769
- var Express\u517C\u5BB9\u63A5\u53E3\u5C01\u88C5 = class extends \u63A5\u53E3 {
770
- constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u5904\u7406\u51FD\u6570) {
771
- let \u903B\u8F91 = \u63A5\u53E3\u903B\u8F91Base.\u6784\u9020([], async () => {
772
- return new import_ts_fp_data2.Right({});
773
- });
774
- let \u8F6C\u6362\u5668 = new Express\u517C\u5BB9\u7ED3\u679C\u8F6C\u6362\u5668();
775
- let \u8FD4\u56DE\u5668 = new Express\u517C\u5BB9\u8FD4\u56DE\u5668(\u5904\u7406\u51FD\u6570);
776
- super(
777
- \u8BF7\u6C42\u8DEF\u5F84,
778
- \u8BF7\u6C42\u65B9\u6CD5,
779
- \u903B\u8F91,
780
- import_zod9.z.any(),
781
- // 错误形式不做限制
782
- import_zod9.z.any(),
783
- // 正确形式不做限制
784
- \u8F6C\u6362\u5668,
785
- \u8FD4\u56DE\u5668
786
- );
787
- }
788
- };
789
- var Express\u517C\u5BB9\u7ED3\u679C\u8F6C\u6362\u5668 = class extends \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668 {
790
- \u5B9E\u73B0(\u6570\u636E) {
791
- return \u6570\u636E;
792
- }
793
- };
794
- var Express\u517C\u5BB9\u8FD4\u56DE\u5668 = class extends \u63A5\u53E3\u7ED3\u679C\u8FD4\u56DE\u5668 {
795
- constructor(\u5904\u7406\u51FD\u6570) {
796
- super();
797
- this.\u5904\u7406\u51FD\u6570 = \u5904\u7406\u51FD\u6570;
798
- }
799
- \u8FD4\u56DE(req, res, _\u7ED3\u679C) {
800
- return this.\u5904\u7406\u51FD\u6570(req, res);
801
- }
802
- };
803
-
804
- // src/wrapper/file-download-wrapper.ts
805
- var import_node_fs = require("fs");
806
- var import_zod10 = require("zod");
807
- var \u6587\u4EF6\u4E0B\u8F7D\u63A5\u53E3\u5C01\u88C5 = class extends \u63A5\u53E3 {
808
- constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F912, \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod, \u6587\u4EF6\u540D, MIME\u7C7B\u578B) {
809
- let \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F = import_zod10.z.object({ status: import_zod10.z.literal("fail"), data: \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod });
810
- let \u63A5\u53E3\u8F6C\u6362\u5668 = new \u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668();
811
- let \u8FD4\u56DE\u5668 = new \u6587\u4EF6\u4E0B\u8F7D\u8FD4\u56DE\u5668(\u6587\u4EF6\u540D, MIME\u7C7B\u578B);
812
- super(
813
- \u8BF7\u6C42\u8DEF\u5F84,
814
- \u8BF7\u6C42\u65B9\u6CD5,
815
- \u63A5\u53E3\u903B\u8F912,
816
- \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F,
817
- import_zod10.z.any(),
818
- // 正确形式任意
819
- \u63A5\u53E3\u8F6C\u6362\u5668,
820
- \u8FD4\u56DE\u5668
821
- );
822
- }
823
- };
824
- var \u6587\u4EF6\u4E0B\u8F7D\u8FD4\u56DE\u5668 = class extends \u63A5\u53E3\u7ED3\u679C\u8FD4\u56DE\u5668 {
825
- constructor(\u6587\u4EF6\u540D, MIME\u7C7B\u578B) {
826
- super();
827
- this.\u6587\u4EF6\u540D = \u6587\u4EF6\u540D;
828
- this.MIME\u7C7B\u578B = MIME\u7C7B\u578B;
829
- }
830
- async \u8FD4\u56DE(req, res, \u7ED3\u679C) {
831
- if (this.MIME\u7C7B\u578B !== void 0) {
832
- res.setHeader("Content-Type", this.MIME\u7C7B\u578B);
833
- }
834
- if (this.\u6587\u4EF6\u540D !== void 0) {
835
- let encodedFilename = encodeURIComponent(this.\u6587\u4EF6\u540D);
836
- res.setHeader("Content-Disposition", `attachment; filename*=UTF-8''${encodedFilename}`);
837
- }
838
- if (Buffer.isBuffer(\u7ED3\u679C)) {
839
- res.setHeader("Content-Length", \u7ED3\u679C.length);
840
- res.send(\u7ED3\u679C);
841
- } else if (typeof \u7ED3\u679C === "string") {
842
- let \u6D41 = (0, import_node_fs.createReadStream)(\u7ED3\u679C);
843
- \u6D41.pipe(res);
844
- } else if (typeof \u7ED3\u679C.pipe === "function") {
845
- \u7ED3\u679C.pipe(res);
846
- } else {
847
- res.status(400).send("Invalid file data");
848
- }
849
- }
850
- };
1078
+ var EXPORT_TYPE = /* @__PURE__ */ Symbol();
851
1079
  // Annotate the CommonJS export names for ESM import in node:
852
1080
  0 && (module.exports = {
853
1081
  EXPORT_TYPE,
854
- Express\u517C\u5BB9\u63A5\u53E3\u5C01\u88C5,
855
- GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
1082
+ Form\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
856
1083
  JSON\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
1084
+ Query\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
1085
+ UrlEncoded\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
857
1086
  WebSocket\u63D2\u4EF6,
858
- \u5E38\u7528\u5F62\u5F0F\u5E76\u81EA\u5B9A\u4E49\u8FD4\u56DE\u5668\u63A5\u53E3\u5C01\u88C5,
859
- \u5E38\u7528\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5,
860
- \u5E38\u7528\u5F62\u5F0F\u8F6C\u6362\u5668,
861
- \u5E38\u7528\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5,
862
- \u5E38\u7528\u8FD4\u56DE\u5668,
1087
+ \u5E38\u7528\u63A5\u53E3\u8FD4\u56DE\u5668,
863
1088
  \u63A5\u53E3,
864
1089
  \u63A5\u53E3\u6D4B\u8BD5,
865
- \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668,
866
- \u63A5\u53E3\u7ED3\u679C\u8FD4\u56DE\u5668,
1090
+ \u63A5\u53E3\u8FD4\u56DE\u5668,
867
1091
  \u63A5\u53E3\u903B\u8F91,
868
1092
  \u63A5\u53E3\u903B\u8F91Base,
1093
+ \u63A5\u53E3\u903B\u8F91\u6D4B\u8BD5,
869
1094
  \u63D2\u4EF6,
870
- \u6587\u4EF6\u4E0B\u8F7D\u63A5\u53E3\u5C01\u88C5,
1095
+ \u6587\u4EF6\u6D41\u5F0F\u4E0B\u8F7D\u8FD4\u56DE\u5668,
871
1096
  \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76,
872
1097
  \u670D\u52A1\u5668,
873
1098
  \u6784\u9020\u5143\u7EC4,
874
1099
  \u6784\u9020\u5BF9\u8C61,
875
- \u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668,
1100
+ \u81EA\u5B9A\u4E49\u63A5\u53E3\u8FD4\u56DE\u5668,
1101
+ \u81EA\u5B9A\u4E49\u63D2\u4EF6,
876
1102
  \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6,
877
- \u81EA\u5B9A\u4E49\u8FD4\u56DE\u5668,
878
- \u8868\u5355\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
879
- \u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6
1103
+ \u865A\u62DF\u6587\u4EF6\u8FD4\u56DE\u5668,
1104
+ \u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6,
1105
+ \u8DEF\u5F84\u89E3\u6790\u63D2\u4EF6,
1106
+ \u9759\u6001\u6587\u4EF6\u8FD4\u56DE\u5668,
1107
+ \u9ED8\u8BA4\u8BF7\u6C42\u9644\u52A0\u53C2\u6570
880
1108
  });