@lsby/net-core 0.11.2 → 0.13.3

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