@lsby/net-core 0.12.3 → 0.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/dist/bin/gen-api-list/bin.cjs +14 -2
  2. package/dist/bin/gen-api-list/index.cjs +14 -2
  3. package/dist/bin/gen-api-type/bin.cjs +53 -34
  4. package/dist/bin/gen-api-type/index.cjs +53 -34
  5. package/dist/bin/gen-test/bin.cjs +16 -4
  6. package/dist/bin/gen-test/index.cjs +16 -4
  7. package/dist/cjs/bin/gen-api-list/bin.cjs +14 -2
  8. package/dist/cjs/bin/gen-api-list/index.cjs +14 -2
  9. package/dist/cjs/bin/gen-api-type/bin.cjs +53 -34
  10. package/dist/cjs/bin/gen-api-type/index.cjs +53 -34
  11. package/dist/cjs/bin/gen-test/bin.cjs +16 -4
  12. package/dist/cjs/bin/gen-test/index.cjs +16 -4
  13. package/dist/cjs/global/log.cjs +31 -0
  14. package/dist/cjs/global/log.d.cts +5 -0
  15. package/dist/cjs/global/model/hub.cjs +84 -0
  16. package/dist/cjs/global/model/hub.d.cts +26 -0
  17. package/dist/cjs/global/model/web-socket.cjs +166 -0
  18. package/dist/cjs/global/model/web-socket.d.cts +21 -0
  19. package/dist/cjs/global/web-socket.cjs +169 -0
  20. package/dist/cjs/global/web-socket.d.cts +7 -0
  21. package/dist/cjs/help/help.cjs +151 -2
  22. package/dist/cjs/help/help.d.cts +12 -5
  23. package/dist/cjs/help/interior.cjs +12 -1
  24. package/dist/cjs/help/interior.d.cts +6 -3
  25. package/dist/cjs/index.cjs +701 -473
  26. package/dist/cjs/index.d.cts +29 -18
  27. package/dist/cjs/interface/interface-base.cjs +15 -17
  28. package/dist/cjs/interface/interface-base.d.cts +43 -5
  29. package/dist/cjs/interface/interface-logic.cjs +148 -12
  30. package/dist/cjs/interface/interface-logic.d.cts +131 -7
  31. package/dist/cjs/interface/interface-plugin.cjs +45 -0
  32. package/dist/cjs/interface/interface-plugin.d.cts +37 -0
  33. package/dist/cjs/{plugin/plug.cjs → interface/interface-returner.cjs} +7 -17
  34. package/dist/cjs/interface/interface-returner.d.cts +32 -0
  35. package/dist/cjs/interface/interface-test.cjs +41 -9
  36. package/dist/cjs/interface/interface-test.d.cts +29 -6
  37. package/dist/cjs/plugin/{extend/custom-data.cjs → custom-data.cjs} +18 -11
  38. package/dist/cjs/plugin/custom-data.d.cts +16 -0
  39. package/dist/cjs/plugin/custom.cjs +54 -0
  40. package/dist/cjs/plugin/custom.d.cts +18 -0
  41. package/dist/cjs/plugin/form.cjs +109 -0
  42. package/dist/cjs/plugin/form.d.cts +37 -0
  43. package/dist/cjs/plugin/{extend/json.cjs → json.cjs} +22 -18
  44. package/dist/cjs/plugin/json.d.cts +36 -0
  45. package/dist/cjs/plugin/{extend/log-headers.cjs → log-headers.cjs} +18 -12
  46. package/dist/cjs/plugin/log-headers.d.cts +17 -0
  47. package/dist/cjs/plugin/parse-path.cjs +100 -0
  48. package/dist/cjs/plugin/parse-path.d.cts +73 -0
  49. package/dist/cjs/plugin/{extend/query.cjs → query.cjs} +24 -20
  50. package/dist/cjs/plugin/query.d.cts +36 -0
  51. package/dist/cjs/plugin/urlencoded.cjs +103 -0
  52. package/dist/cjs/plugin/urlencoded.d.cts +36 -0
  53. package/dist/cjs/plugin/web-socket.cjs +183 -0
  54. package/dist/cjs/plugin/web-socket.d.cts +31 -0
  55. package/dist/cjs/returner/common.cjs +107 -0
  56. package/dist/cjs/returner/common.d.cts +36 -0
  57. package/dist/cjs/returner/custom.cjs +55 -0
  58. package/dist/cjs/returner/custom.d.cts +26 -0
  59. package/dist/cjs/returner/file-stream-download.cjs +111 -0
  60. package/dist/cjs/returner/file-stream-download.d.cts +33 -0
  61. package/dist/cjs/returner/static-file.cjs +95 -0
  62. package/dist/cjs/returner/static-file.d.cts +30 -0
  63. package/dist/cjs/returner/virtual-file.cjs +66 -0
  64. package/dist/cjs/returner/virtual-file.d.cts +30 -0
  65. package/dist/cjs/server/server.cjs +184 -152
  66. package/dist/cjs/server/server.d.cts +37 -4
  67. package/dist/cjs/symbol/export-type.cjs +1 -1
  68. package/dist/cjs/types/types.cjs +18 -0
  69. package/dist/cjs/types/types.d.cts +22 -0
  70. package/dist/esm/bin/gen-api-list/bin.js +2 -1
  71. package/dist/esm/bin/gen-api-list/index.js +2 -1
  72. package/dist/esm/bin/gen-api-type/bin.js +1 -1
  73. package/dist/esm/bin/gen-api-type/index.js +1 -1
  74. package/dist/esm/bin/gen-test/bin.js +2 -1
  75. package/dist/esm/bin/gen-test/index.js +2 -1
  76. package/dist/esm/{chunk-ZIVQ3WZA.js → chunk-2CGBESLT.js} +12 -2
  77. package/dist/esm/{chunk-GC5W4SQN.js → chunk-7GT72IUT.js} +22 -19
  78. package/dist/esm/chunk-7OU27OBO.js +14 -0
  79. package/dist/esm/chunk-7S6SPW32.js +35 -0
  80. package/dist/esm/{chunk-2NYRVBAS.js → chunk-AB35ZHL3.js} +48 -59
  81. package/dist/esm/chunk-AG36MLAF.js +65 -0
  82. package/dist/esm/chunk-EGIJQJFI.js +21 -0
  83. package/dist/esm/chunk-F5IAX56T.js +7 -0
  84. package/dist/esm/chunk-FP6Q65NN.js +7 -0
  85. package/dist/esm/chunk-GAL77HPJ.js +43 -0
  86. package/dist/esm/chunk-GGNRLQAM.js +48 -0
  87. package/dist/esm/chunk-HINGVOU6.js +21 -0
  88. package/dist/esm/{chunk-ZF7EC2OM.js → chunk-HT7VG4BT.js} +1 -1
  89. package/dist/esm/{chunk-AFWSZAXR.js → chunk-HWIV3BTW.js} +7 -4
  90. package/dist/esm/{chunk-2FCXR6G7.js → chunk-J3N2TUYJ.js} +53 -34
  91. package/dist/esm/chunk-J5BX4WJJ.js +69 -0
  92. package/dist/esm/chunk-JLNRCPJD.js +34 -0
  93. package/dist/esm/chunk-JSMTJQ3K.js +69 -0
  94. package/dist/esm/chunk-MRTIZDKN.js +88 -0
  95. package/dist/esm/{chunk-7LQRWJ3X.js → chunk-MVMDWJTB.js} +14 -1
  96. package/dist/esm/chunk-NTDDPUP7.js +59 -0
  97. package/dist/esm/chunk-OEABQXPT.js +29 -0
  98. package/dist/esm/chunk-P23ZAK4I.js +10 -0
  99. package/dist/esm/chunk-PAP3X3RJ.js +37 -0
  100. package/dist/esm/chunk-QQFE27NG.js +37 -0
  101. package/dist/esm/chunk-RVEKW2PT.js +31 -0
  102. package/dist/esm/chunk-RWSXMQQI.js +22 -0
  103. package/dist/esm/{chunk-E23EZWBE.js → chunk-TE6CG2FF.js} +9 -13
  104. package/dist/esm/{chunk-UKAZDGUR.js → chunk-W7HT4TA6.js} +5 -2
  105. package/dist/esm/chunk-WXTNTK3M.js +40 -0
  106. package/dist/esm/global/log.d.ts +5 -0
  107. package/dist/esm/global/log.js +6 -0
  108. package/dist/esm/global/model/hub.d.ts +26 -0
  109. package/dist/esm/global/model/hub.js +8 -0
  110. package/dist/esm/global/model/web-socket.d.ts +21 -0
  111. package/dist/esm/global/model/web-socket.js +8 -0
  112. package/dist/esm/global/web-socket.d.ts +7 -0
  113. package/dist/esm/global/web-socket.js +9 -0
  114. package/dist/esm/help/help.d.ts +12 -5
  115. package/dist/esm/help/help.js +9 -3
  116. package/dist/esm/help/interior.d.ts +6 -3
  117. package/dist/esm/help/interior.js +3 -1
  118. package/dist/esm/index.d.ts +29 -18
  119. package/dist/esm/index.js +65 -57
  120. package/dist/esm/interface/interface-base.d.ts +43 -5
  121. package/dist/esm/interface/interface-base.js +1 -1
  122. package/dist/esm/interface/interface-logic.d.ts +131 -7
  123. package/dist/esm/interface/interface-logic.js +6 -2
  124. package/dist/esm/interface/interface-plugin.d.ts +37 -0
  125. package/dist/esm/{plugin/plug.js → interface/interface-plugin.js} +1 -1
  126. package/dist/esm/interface/interface-returner.d.ts +32 -0
  127. package/dist/esm/interface/interface-returner.js +6 -0
  128. package/dist/esm/interface/interface-test.d.ts +29 -6
  129. package/dist/esm/interface/interface-test.js +5 -3
  130. package/dist/esm/plugin/custom-data.d.ts +16 -0
  131. package/dist/esm/plugin/{extend/custom-data.js → custom-data.js} +2 -2
  132. package/dist/esm/plugin/custom.d.ts +18 -0
  133. package/dist/esm/plugin/custom.js +7 -0
  134. package/dist/esm/plugin/form.d.ts +37 -0
  135. package/dist/esm/plugin/form.js +8 -0
  136. package/dist/esm/plugin/json.d.ts +36 -0
  137. package/dist/esm/plugin/json.js +8 -0
  138. package/dist/esm/plugin/log-headers.d.ts +17 -0
  139. package/dist/esm/plugin/{extend/log-headers.js → log-headers.js} +2 -2
  140. package/dist/esm/plugin/parse-path.d.ts +73 -0
  141. package/dist/esm/plugin/parse-path.js +8 -0
  142. package/dist/esm/plugin/query.d.ts +36 -0
  143. package/dist/esm/plugin/query.js +8 -0
  144. package/dist/esm/plugin/urlencoded.d.ts +36 -0
  145. package/dist/esm/plugin/urlencoded.js +8 -0
  146. package/dist/esm/plugin/web-socket.d.ts +31 -0
  147. package/dist/esm/plugin/web-socket.js +8 -0
  148. package/dist/esm/returner/common.d.ts +36 -0
  149. package/dist/esm/returner/common.js +8 -0
  150. package/dist/esm/returner/custom.d.ts +26 -0
  151. package/dist/esm/returner/custom.js +7 -0
  152. package/dist/esm/returner/file-stream-download.d.ts +33 -0
  153. package/dist/esm/returner/file-stream-download.js +8 -0
  154. package/dist/esm/returner/static-file.d.ts +30 -0
  155. package/dist/esm/returner/static-file.js +7 -0
  156. package/dist/esm/returner/virtual-file.d.ts +30 -0
  157. package/dist/esm/returner/virtual-file.js +7 -0
  158. package/dist/esm/server/server.d.ts +37 -4
  159. package/dist/esm/server/server.js +5 -3
  160. package/dist/esm/symbol/export-type.js +1 -1
  161. package/dist/esm/types/types.d.ts +22 -0
  162. package/dist/esm/types/types.js +1 -0
  163. package/package.json +35 -40
  164. package/dist/bin/gen-api-list/test.cjs +0 -1
  165. package/dist/bin/gen-api-list/test.d.cts +0 -2
  166. package/dist/bin/gen-api-type/test.cjs +0 -1
  167. package/dist/bin/gen-api-type/test.d.cts +0 -2
  168. package/dist/cjs/action/action.bak.cjs +0 -158
  169. package/dist/cjs/action/action.bak.d.cts +0 -99
  170. package/dist/cjs/bin/gen-api-list/test.cjs +0 -1
  171. package/dist/cjs/bin/gen-api-list/test.d.cts +0 -2
  172. package/dist/cjs/bin/gen-api-type/test.cjs +0 -1
  173. package/dist/cjs/bin/gen-api-type/test.d.cts +0 -2
  174. package/dist/cjs/global/global.cjs +0 -107
  175. package/dist/cjs/global/global.d.cts +0 -23
  176. package/dist/cjs/interface/interface-result.cjs +0 -59
  177. package/dist/cjs/interface/interface-result.d.cts +0 -8
  178. package/dist/cjs/interface/interface-retuen.cjs +0 -49
  179. package/dist/cjs/interface/interface-retuen.d.cts +0 -30
  180. package/dist/cjs/interface-base-gRngpxki.d.cts +0 -235
  181. package/dist/cjs/plugin/extend/custom-data.d.cts +0 -17
  182. package/dist/cjs/plugin/extend/json.d.cts +0 -25
  183. package/dist/cjs/plugin/extend/log-headers.d.cts +0 -15
  184. package/dist/cjs/plugin/extend/query.d.cts +0 -25
  185. package/dist/cjs/plugin/extend/urlencoded.cjs +0 -76
  186. package/dist/cjs/plugin/extend/urlencoded.d.cts +0 -16
  187. package/dist/cjs/plugin/extend/web-socket.cjs +0 -199
  188. package/dist/cjs/plugin/extend/web-socket.d.cts +0 -29
  189. package/dist/cjs/plugin/plug.d.cts +0 -8
  190. package/dist/cjs/wrapper/common-wrapper-return.cjs +0 -103
  191. package/dist/cjs/wrapper/common-wrapper-return.d.cts +0 -29
  192. package/dist/cjs/wrapper/common-wrapper.cjs +0 -99
  193. package/dist/cjs/wrapper/common-wrapper.d.cts +0 -27
  194. package/dist/cjs/wrapper/deferred-result-wrapper.cjs +0 -99
  195. package/dist/cjs/wrapper/deferred-result-wrapper.d.cts +0 -26
  196. package/dist/cjs/wrapper/express-compatible-wrapper.cjs +0 -228
  197. package/dist/cjs/wrapper/express-compatible-wrapper.d.cts +0 -55
  198. package/dist/cjs/wrapper/file-download-wrapper.cjs +0 -131
  199. package/dist/cjs/wrapper/file-download-wrapper.d.cts +0 -80
  200. package/dist/esm/action/action.bak.d.ts +0 -99
  201. package/dist/esm/action/action.bak.js +0 -133
  202. package/dist/esm/bin/gen-api-list/test.d.ts +0 -2
  203. package/dist/esm/bin/gen-api-type/test.d.ts +0 -2
  204. package/dist/esm/bin/gen-api-type/test.js +0 -0
  205. package/dist/esm/chunk-3YGTOEO2.js +0 -82
  206. package/dist/esm/chunk-43GZE5YL.js +0 -17
  207. package/dist/esm/chunk-6RQPNF75.js +0 -24
  208. package/dist/esm/chunk-7MHKNSNT.js +0 -20
  209. package/dist/esm/chunk-FYEIC5J3.js +0 -24
  210. package/dist/esm/chunk-GKABWQWT.js +0 -24
  211. package/dist/esm/chunk-IM3E5KN4.js +0 -61
  212. package/dist/esm/chunk-KENYGKWI.js +0 -37
  213. package/dist/esm/chunk-MDUWXEQ7.js +0 -37
  214. package/dist/esm/chunk-N7TPWCQ5.js +0 -17
  215. package/dist/esm/chunk-P75EGBKC.js +0 -33
  216. package/dist/esm/chunk-SGOVPJHV.js +0 -54
  217. package/dist/esm/chunk-UUXGAK5S.js +0 -31
  218. package/dist/esm/chunk-VMCAX3QH.js +0 -18
  219. package/dist/esm/chunk-VRF5WLKI.js +0 -30
  220. package/dist/esm/chunk-XBAKTT6S.js +0 -23
  221. package/dist/esm/global/global.d.ts +0 -23
  222. package/dist/esm/global/global.js +0 -8
  223. package/dist/esm/interface/interface-result.d.ts +0 -8
  224. package/dist/esm/interface/interface-result.js +0 -10
  225. package/dist/esm/interface/interface-retuen.d.ts +0 -30
  226. package/dist/esm/interface/interface-retuen.js +0 -10
  227. package/dist/esm/interface-base-DDfmN_Dg.d.ts +0 -235
  228. package/dist/esm/plugin/extend/custom-data.d.ts +0 -17
  229. package/dist/esm/plugin/extend/json.d.ts +0 -25
  230. package/dist/esm/plugin/extend/json.js +0 -8
  231. package/dist/esm/plugin/extend/log-headers.d.ts +0 -15
  232. package/dist/esm/plugin/extend/query.d.ts +0 -25
  233. package/dist/esm/plugin/extend/query.js +0 -8
  234. package/dist/esm/plugin/extend/urlencoded.d.ts +0 -16
  235. package/dist/esm/plugin/extend/urlencoded.js +0 -7
  236. package/dist/esm/plugin/extend/web-socket.d.ts +0 -29
  237. package/dist/esm/plugin/extend/web-socket.js +0 -8
  238. package/dist/esm/plugin/plug.d.ts +0 -8
  239. package/dist/esm/wrapper/common-wrapper-return.d.ts +0 -29
  240. package/dist/esm/wrapper/common-wrapper-return.js +0 -9
  241. package/dist/esm/wrapper/common-wrapper.d.ts +0 -27
  242. package/dist/esm/wrapper/common-wrapper.js +0 -9
  243. package/dist/esm/wrapper/deferred-result-wrapper.d.ts +0 -26
  244. package/dist/esm/wrapper/deferred-result-wrapper.js +0 -9
  245. package/dist/esm/wrapper/express-compatible-wrapper.d.ts +0 -55
  246. package/dist/esm/wrapper/express-compatible-wrapper.js +0 -11
  247. package/dist/esm/wrapper/file-download-wrapper.d.ts +0 -80
  248. package/dist/esm/wrapper/file-download-wrapper.js +0 -9
  249. /package/dist/esm/{bin/gen-api-list/test.js → chunk-BWFSM5FK.js} +0 -0
@@ -74,36 +74,46 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
74
74
  await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
75
75
  let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
76
76
  let \u4EE3\u7801 = `
77
- import {
78
- \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u8F93\u51FA,
79
- \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u8F93\u5165,
80
- \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C,
81
- \u5408\u5E76GET\u63D2\u4EF6\u7ED3\u679C,
82
- \u83B7\u5F97\u63A5\u53E3\u65B9\u6CD5\u7C7B\u578B,
83
- \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0F,
84
- \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B,
85
- \u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B,
86
- \u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B,
87
- \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0F,
88
- GetNetCoreExportTypeName,
89
- GetNetCoreExportTypeDefine
90
- } from '@lsby/net-core'
91
- import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"
77
+ import {
78
+ GetNetCoreExportTypeDefine,
79
+ GetNetCoreExportTypeName,
80
+ \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u8F93\u5165,
81
+ \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u8F93\u51FA,
82
+ \u5408\u5E76Query\u63D2\u4EF6\u7ED3\u679C,
83
+ \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C,
84
+ \u5408\u5E76UrlEncoded\u53C2\u6570\u89E3\u6790\u63D2\u4EF6\u7ED3\u679C,
85
+ \u8BA1\u7B97\u63A5\u53E3\u903B\u8F91Form\u53C2\u6570,
86
+ \u83B7\u5F97\u63A5\u53E3\u65B9\u6CD5\u7C7B\u578B,
87
+ \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B,
88
+ \u83B7\u5F97\u63A5\u53E3\u8FD4\u56DE\u5668\u63A5\u53E3\u6B63\u786E\u7C7B\u578B,
89
+ \u83B7\u5F97\u63A5\u53E3\u8FD4\u56DE\u5668\u63A5\u53E3\u9519\u8BEF\u7C7B\u578B,
90
+ \u83B7\u5F97\u63A5\u53E3\u8FD4\u56DE\u5668\u7C7B\u578B,
91
+ \u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B,
92
+ \u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B,
93
+ } from '@lsby/net-core'
94
+ import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"
92
95
 
93
- type jsonPath = \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B<typeof \u5BFC\u5165>
94
- type jsonMethod = \u83B7\u5F97\u63A5\u53E3\u65B9\u6CD5\u7C7B\u578B<typeof \u5BFC\u5165>
95
- type getInput = \u5408\u5E76GET\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
96
- type jsonInput = \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
97
- type jsonErrorOutput = \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0F<typeof \u5BFC\u5165>
98
- type jsonSuccessOutput = \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0F<typeof \u5BFC\u5165>
99
- type wsInput = \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u8F93\u5165<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
100
- type wsOutput = \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u8F93\u51FA<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
101
- type JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C = jsonPath extends never
102
- ? never
103
- : jsonPath extends infer _
104
- ? jsonMethod extends infer _
105
- ? getInput extends infer _
106
- ? jsonInput extends infer _
96
+ type jsonPath = \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B<typeof \u5BFC\u5165>
97
+ type jsonMethod = \u83B7\u5F97\u63A5\u53E3\u65B9\u6CD5\u7C7B\u578B<typeof \u5BFC\u5165>
98
+ type \u662F\u5426\u4E3A\u6B63\u5219 = jsonPath extends RegExp ? true : false
99
+ type getInput = \u5408\u5E76Query\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
100
+ type jsonInput = \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
101
+ type urlEncodedInput = \u5408\u5E76UrlEncoded\u53C2\u6570\u89E3\u6790\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
102
+ type formDataInput = \u8BA1\u7B97\u63A5\u53E3\u903B\u8F91Form\u53C2\u6570<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>
103
+ type jsonErrorOutput = \u83B7\u5F97\u63A5\u53E3\u8FD4\u56DE\u5668\u63A5\u53E3\u9519\u8BEF\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u8FD4\u56DE\u5668\u7C7B\u578B<typeof \u5BFC\u5165>>
104
+ type jsonSuccessOutput = \u83B7\u5F97\u63A5\u53E3\u8FD4\u56DE\u5668\u63A5\u53E3\u6B63\u786E\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u8FD4\u56DE\u5668\u7C7B\u578B<typeof \u5BFC\u5165>>
105
+ type wsInput = \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u8F93\u5165<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
106
+ type wsOutput = \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u8F93\u51FA<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
107
+ type JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C = \u662F\u5426\u4E3A\u6B63\u5219 extends true
108
+ ? never
109
+ : jsonPath extends never
110
+ ? never
111
+ : jsonPath extends infer _
112
+ ? jsonMethod extends infer _
113
+ ? getInput extends infer _
114
+ ? jsonInput extends infer _
115
+ ? urlEncodedInput extends infer _
116
+ ? formDataInput extends infer _
107
117
  ? jsonErrorOutput extends infer _
108
118
  ? jsonSuccessOutput extends infer _
109
119
  ? wsOutput extends infer _
@@ -111,7 +121,12 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
111
121
  ? {
112
122
  path: jsonPath
113
123
  method: jsonMethod
114
- input: jsonMethod extends 'post' ? jsonInput['body'] : jsonMethod extends 'get' ? getInput['query'] : {}
124
+ input: {
125
+ json: 'json' extends keyof jsonInput ? jsonInput['json'] : never
126
+ query: 'query' extends keyof getInput ? getInput['query'] : never
127
+ urlencoded: 'urlencoded' extends keyof urlEncodedInput ? urlEncodedInput['urlencoded'] : never
128
+ form: 'form' extends keyof formDataInput ? formDataInput['form'] : never
129
+ }
115
130
  errorOutput: jsonErrorOutput
116
131
  successOutput: jsonSuccessOutput
117
132
  wsOutput: wsOutput
@@ -125,9 +140,11 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
125
140
  : never
126
141
  : never
127
142
  : never
143
+ : never
144
+ : never
128
145
 
129
- type \u5BFC\u51FA\u7C7B\u578B\u540D\u79F0 = GetNetCoreExportTypeName<\u5BFC\u5165>
130
- type \u5BFC\u51FA\u7C7B\u578B\u5B9A\u4E49 = GetNetCoreExportTypeDefine<\u5BFC\u5165>
146
+ type \u5BFC\u51FA\u7C7B\u578B\u540D\u79F0 = GetNetCoreExportTypeName<\u5BFC\u5165>
147
+ type \u5BFC\u51FA\u7C7B\u578B\u5B9A\u4E49 = GetNetCoreExportTypeDefine<\u5BFC\u5165>
131
148
  `;
132
149
  return import_typescript.default.createSourceFile(a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"), \u4EE3\u7801, import_typescript.default.ScriptTarget.Latest);
133
150
  });
@@ -190,7 +207,8 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
190
207
  \u7C7B\u578B\u5B9A\u4E49\u7C7B\u578B = "aliasSymbol";
191
208
  \u5BFC\u51FA\u7C7B\u578B\u5B9A\u4E49 = type.aliasSymbol.declarations?.[0]?.getText();
192
209
  } else {
193
- log.warn(`\u65E0\u6CD5\u627E\u5230\u7C7B\u578B\u5B9A\u4E49`).catch((a) => `\u65E5\u5FD7\u8F93\u51FA\u9519\u8BEF: ${a}: \u65E5\u5FD7\u5185\u5BB9: ${`\u65E0\u6CD5\u627E\u5230\u7C7B\u578B\u5B9A\u4E49`}`);
210
+ \u7C7B\u578B\u5B9A\u4E49\u7C7B\u578B = "symbol";
211
+ \u5BFC\u51FA\u7C7B\u578B\u5B9A\u4E49 = \u5B57\u7B26\u4E32\u7ED3\u679C;
194
212
  }
195
213
  }
196
214
  }
@@ -215,7 +233,8 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
215
233
  let \u6700\u7EC8\u4EE3\u7801 = [
216
234
  `// \u8BE5\u6587\u4EF6\u7531\u811A\u672C\u81EA\u52A8\u751F\u6210, \u8BF7\u52FF\u4FEE\u6539.`,
217
235
  ...\u6700\u7EC8\u7ED3\u679C_\u5BFC\u51FA\u7C7B\u578B,
218
- `export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C_JSON.join(",")}]`
236
+ `export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C_JSON.join(",")}]`,
237
+ ""
219
238
  ];
220
239
  await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
221
240
  let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
@@ -29,11 +29,23 @@ var import_node_path2 = __toESM(require("path"), 1);
29
29
 
30
30
  // src/bin/gen-test/index.ts
31
31
  var import_ts_log = require("@lsby/ts-log");
32
- var import_lodash = __toESM(require("lodash"), 1);
33
32
  var import_node_crypto = require("crypto");
34
33
  var import_node_fs = __toESM(require("fs"), 1);
35
34
  var import_node_path = __toESM(require("path"), 1);
36
35
  var import_typescript = __toESM(require("typescript"), 1);
36
+
37
+ // src/help/interior.ts
38
+ function \u6570\u7EC4\u5408\u5E76(...\u6570\u7EC4\u4EEC) {
39
+ if (\u6570\u7EC4\u4EEC.length === 0) return [];
40
+ let \u6700\u5927\u957F\u5EA6 = Math.max(...\u6570\u7EC4\u4EEC.map((a) => a.length));
41
+ let \u7ED3\u679C = [];
42
+ for (let i = 0; i < \u6700\u5927\u957F\u5EA6; i++) {
43
+ \u7ED3\u679C.push(\u6570\u7EC4\u4EEC.map((a) => a[i]));
44
+ }
45
+ return \u7ED3\u679C;
46
+ }
47
+
48
+ // src/bin/gen-test/index.ts
37
49
  function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
38
50
  for (let statement of \u6E90\u6587\u4EF6.statements) {
39
51
  if (import_typescript.default.isExportAssignment(statement) && (statement.isExportEquals ?? null) === null) {
@@ -82,10 +94,10 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
82
94
  await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
83
95
  let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
84
96
  let \u4EE3\u7801 = [
85
- `import { \u63A5\u53E3\u6D4B\u8BD5 } from '@lsby/net-core'`,
97
+ `import { \u4EFB\u610F\u63A5\u53E3\u6D4B\u8BD5, \u63A5\u53E3\u903B\u8F91\u6D4B\u8BD5 } from '@lsby/net-core'`,
86
98
  `import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
87
99
  ``,
88
- `type \u8BA1\u7B97\u7ED3\u679C = typeof \u5BFC\u5165 extends \u63A5\u53E3\u6D4B\u8BD5 ? true : false`
100
+ `type \u8BA1\u7B97\u7ED3\u679C = typeof \u5BFC\u5165 extends \u4EFB\u610F\u63A5\u53E3\u6D4B\u8BD5 ? true : typeof \u5BFC\u5165 extends \u63A5\u53E3\u903B\u8F91\u6D4B\u8BD5 ? true : false`
89
101
  ];
90
102
  return import_typescript.default.createSourceFile(
91
103
  a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
@@ -119,7 +131,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
119
131
  });
120
132
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
121
133
  }
122
- let \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] === true).map((a) => a[0] ?? null).filter((a) => a !== null);
134
+ let \u6700\u7EC8\u7ED3\u679C = \u6570\u7EC4\u5408\u5E76(\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] === true).map((a) => a[0]);
123
135
  await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u6D4B\u8BD5\u7528\u4F8B`);
124
136
  let \u6700\u7EC8\u4EE3\u7801 = [
125
137
  `// \u8BE5\u6587\u4EF6\u7531\u811A\u672C\u81EA\u52A8\u751F\u6210, \u8BF7\u52FF\u4FEE\u6539.`,
@@ -34,11 +34,23 @@ __export(gen_test_exports, {
34
34
  });
35
35
  module.exports = __toCommonJS(gen_test_exports);
36
36
  var import_ts_log = require("@lsby/ts-log");
37
- var import_lodash = __toESM(require("lodash"), 1);
38
37
  var import_node_crypto = require("crypto");
39
38
  var import_node_fs = __toESM(require("fs"), 1);
40
39
  var import_node_path = __toESM(require("path"), 1);
41
40
  var import_typescript = __toESM(require("typescript"), 1);
41
+
42
+ // src/help/interior.ts
43
+ function \u6570\u7EC4\u5408\u5E76(...\u6570\u7EC4\u4EEC) {
44
+ if (\u6570\u7EC4\u4EEC.length === 0) return [];
45
+ let \u6700\u5927\u957F\u5EA6 = Math.max(...\u6570\u7EC4\u4EEC.map((a) => a.length));
46
+ let \u7ED3\u679C = [];
47
+ for (let i = 0; i < \u6700\u5927\u957F\u5EA6; i++) {
48
+ \u7ED3\u679C.push(\u6570\u7EC4\u4EEC.map((a) => a[i]));
49
+ }
50
+ return \u7ED3\u679C;
51
+ }
52
+
53
+ // src/bin/gen-test/index.ts
42
54
  function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
43
55
  for (let statement of \u6E90\u6587\u4EF6.statements) {
44
56
  if (import_typescript.default.isExportAssignment(statement) && (statement.isExportEquals ?? null) === null) {
@@ -87,10 +99,10 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
87
99
  await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
88
100
  let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
89
101
  let \u4EE3\u7801 = [
90
- `import { \u63A5\u53E3\u6D4B\u8BD5 } from '@lsby/net-core'`,
102
+ `import { \u4EFB\u610F\u63A5\u53E3\u6D4B\u8BD5, \u63A5\u53E3\u903B\u8F91\u6D4B\u8BD5 } from '@lsby/net-core'`,
91
103
  `import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
92
104
  ``,
93
- `type \u8BA1\u7B97\u7ED3\u679C = typeof \u5BFC\u5165 extends \u63A5\u53E3\u6D4B\u8BD5 ? true : false`
105
+ `type \u8BA1\u7B97\u7ED3\u679C = typeof \u5BFC\u5165 extends \u4EFB\u610F\u63A5\u53E3\u6D4B\u8BD5 ? true : typeof \u5BFC\u5165 extends \u63A5\u53E3\u903B\u8F91\u6D4B\u8BD5 ? true : false`
94
106
  ];
95
107
  return import_typescript.default.createSourceFile(
96
108
  a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
@@ -124,7 +136,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
124
136
  });
125
137
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
126
138
  }
127
- let \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] === true).map((a) => a[0] ?? null).filter((a) => a !== null);
139
+ let \u6700\u7EC8\u7ED3\u679C = \u6570\u7EC4\u5408\u5E76(\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] === true).map((a) => a[0]);
128
140
  await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u6D4B\u8BD5\u7528\u4F8B`);
129
141
  let \u6700\u7EC8\u4EE3\u7801 = [
130
142
  `// \u8BE5\u6587\u4EF6\u7531\u811A\u672C\u81EA\u52A8\u751F\u6210, \u8BF7\u52FF\u4FEE\u6539.`,
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/global/log.ts
21
+ var log_exports = {};
22
+ __export(log_exports, {
23
+ \u5168\u5C40\u65E5\u5FD7\u5355\u4F8B: () => \u5168\u5C40\u65E5\u5FD7\u5355\u4F8B
24
+ });
25
+ module.exports = __toCommonJS(log_exports);
26
+ var import_ts_log = require("@lsby/ts-log");
27
+ var \u5168\u5C40\u65E5\u5FD7\u5355\u4F8B = new import_ts_log.Log("@lsby:net-core");
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ \u5168\u5C40\u65E5\u5FD7\u5355\u4F8B
31
+ });
@@ -0,0 +1,5 @@
1
+ import { Log } from '@lsby/ts-log';
2
+
3
+ declare let 全局日志单例: Log;
4
+
5
+ export { 全局日志单例 };
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/global/model/hub.ts
21
+ var hub_exports = {};
22
+ __export(hub_exports, {
23
+ \u96C6\u7EBF\u5668\u6A21\u578B: () => \u96C6\u7EBF\u5668\u6A21\u578B,
24
+ \u96C6\u7EBF\u5668\u76D1\u542C\u5668\u6301\u6709\u8005: () => \u96C6\u7EBF\u5668\u76D1\u542C\u5668\u6301\u6709\u8005
25
+ });
26
+ module.exports = __toCommonJS(hub_exports);
27
+ var \u96C6\u7EBF\u5668\u76D1\u542C\u5668\u6301\u6709\u8005 = class {
28
+ constructor(\u76D1\u542C\u5668) {
29
+ this.\u76D1\u542C\u5668 = \u76D1\u542C\u5668;
30
+ }
31
+ };
32
+ var \u96C6\u7EBF\u5668\u6A21\u578B = class _\u96C6\u7EBF\u5668\u6A21\u578B {
33
+ // 使用 WeakRef + FinalizationRegistry 防止"反向持有" this
34
+ static \u6E05\u7406\u6CE8\u518C\u5668 = new FinalizationRegistry(({ \u5B9E\u4F8B\u5F15\u7528, \u76D1\u542C\u5668 }) => {
35
+ let \u5B9E\u4F8B = \u5B9E\u4F8B\u5F15\u7528.deref();
36
+ if (\u5B9E\u4F8B === void 0) return;
37
+ let \u7D22\u5F15 = \u5B9E\u4F8B.\u76D1\u542C\u5668\u5217\u8868.indexOf(\u76D1\u542C\u5668);
38
+ if (\u7D22\u5F15 !== -1) \u5B9E\u4F8B.\u76D1\u542C\u5668\u5217\u8868.splice(\u7D22\u5F15, 1);
39
+ });
40
+ \u76D1\u542C\u5668\u5217\u8868 = [];
41
+ \u6301\u6709\u8005\u6620\u5C04 = /* @__PURE__ */ new WeakMap();
42
+ \u9519\u8BEF\u5904\u7406\u5668 = null;
43
+ /**
44
+ * 设置广播错误时的处理器。
45
+ */
46
+ \u8BBE\u7F6E\u9519\u8BEF\u5904\u7406\u5668(\u5904\u7406\u5668) {
47
+ this.\u9519\u8BEF\u5904\u7406\u5668 = \u5904\u7406\u5668;
48
+ }
49
+ /**
50
+ * 注册监听器。
51
+ * 若外部不再持有返回的 `监听器持有者`,监听器会在未来某个时间自动移除。
52
+ * ⚠️ 自动清理是非确定性的,不能依赖它实现实时释放。
53
+ */
54
+ \u6DFB\u52A0\u76D1\u542C\u5668(\u76D1\u542C\u5668) {
55
+ this.\u76D1\u542C\u5668\u5217\u8868.push(\u76D1\u542C\u5668);
56
+ let \u6301\u6709\u8005 = new \u96C6\u7EBF\u5668\u76D1\u542C\u5668\u6301\u6709\u8005(\u76D1\u542C\u5668);
57
+ this.\u6301\u6709\u8005\u6620\u5C04.set(\u6301\u6709\u8005, \u76D1\u542C\u5668);
58
+ let \u5B9E\u4F8B\u5F31\u5F15\u7528 = new WeakRef(this);
59
+ _\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);
60
+ return \u6301\u6709\u8005;
61
+ }
62
+ \u79FB\u9664\u76D1\u542C\u5668(\u6301\u6709\u8005) {
63
+ let \u76D1\u542C\u5668 = this.\u6301\u6709\u8005\u6620\u5C04.get(\u6301\u6709\u8005);
64
+ if (\u76D1\u542C\u5668 === void 0) return;
65
+ let \u7D22\u5F15 = this.\u76D1\u542C\u5668\u5217\u8868.indexOf(\u76D1\u542C\u5668);
66
+ if (\u7D22\u5F15 !== -1) this.\u76D1\u542C\u5668\u5217\u8868.splice(\u7D22\u5F15, 1);
67
+ _\u96C6\u7EBF\u5668\u6A21\u578B.\u6E05\u7406\u6CE8\u518C\u5668.unregister(\u6301\u6709\u8005);
68
+ this.\u6301\u6709\u8005\u6620\u5C04.delete(\u6301\u6709\u8005);
69
+ }
70
+ async \u5E7F\u64AD(\u6570\u636E) {
71
+ let snapshot = [...this.\u76D1\u542C\u5668\u5217\u8868];
72
+ let \u7ED3\u679C = await Promise.allSettled(snapshot.map((l) => l(\u6570\u636E)));
73
+ for (let [\u7D22\u5F15, \u7ED3\u679C\u9879] of \u7ED3\u679C.entries()) {
74
+ if (\u7ED3\u679C\u9879.status === "rejected" && this.\u9519\u8BEF\u5904\u7406\u5668 !== null) {
75
+ await Promise.resolve(this.\u9519\u8BEF\u5904\u7406\u5668(\u6570\u636E, \u7D22\u5F15, \u7ED3\u679C\u9879.reason));
76
+ }
77
+ }
78
+ }
79
+ };
80
+ // Annotate the CommonJS export names for ESM import in node:
81
+ 0 && (module.exports = {
82
+ \u96C6\u7EBF\u5668\u6A21\u578B,
83
+ \u96C6\u7EBF\u5668\u76D1\u542C\u5668\u6301\u6709\u8005
84
+ });
@@ -0,0 +1,26 @@
1
+ type 集线器监听器<T> = (数据: T) => Promise<void>;
2
+ type 广播错误处理<T> = (数据: T, 索引: number, 错误: unknown) => Promise<void> | void;
3
+ declare class 集线器监听器持有者<T> {
4
+ readonly 监听器: 集线器监听器<T>;
5
+ constructor(监听器: 集线器监听器<T>);
6
+ }
7
+ declare class 集线器模型<T> {
8
+ private static 清理注册器;
9
+ private 监听器列表;
10
+ private 持有者映射;
11
+ private 错误处理器;
12
+ /**
13
+ * 设置广播错误时的处理器。
14
+ */
15
+ 设置错误处理器(处理器: 广播错误处理<T>): void;
16
+ /**
17
+ * 注册监听器。
18
+ * 若外部不再持有返回的 `监听器持有者`,监听器会在未来某个时间自动移除。
19
+ * ⚠️ 自动清理是非确定性的,不能依赖它实现实时释放。
20
+ */
21
+ 添加监听器(监听器: 集线器监听器<T>): 集线器监听器持有者<T>;
22
+ 移除监听器(持有者: 集线器监听器持有者<T>): void;
23
+ 广播(数据: T): Promise<void>;
24
+ }
25
+
26
+ export { type 广播错误处理, 集线器模型, type 集线器监听器, 集线器监听器持有者 };
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/global/model/web-socket.ts
21
+ var web_socket_exports = {};
22
+ __export(web_socket_exports, {
23
+ WebSocket\u7BA1\u7406\u5668: () => WebSocket\u7BA1\u7406\u5668
24
+ });
25
+ module.exports = __toCommonJS(web_socket_exports);
26
+
27
+ // src/global/log.ts
28
+ var import_ts_log = require("@lsby/ts-log");
29
+ var \u5168\u5C40\u65E5\u5FD7\u5355\u4F8B = new import_ts_log.Log("@lsby:net-core");
30
+
31
+ // src/global/model/hub.ts
32
+ var \u96C6\u7EBF\u5668\u76D1\u542C\u5668\u6301\u6709\u8005 = class {
33
+ constructor(\u76D1\u542C\u5668) {
34
+ this.\u76D1\u542C\u5668 = \u76D1\u542C\u5668;
35
+ }
36
+ };
37
+ var \u96C6\u7EBF\u5668\u6A21\u578B = class _\u96C6\u7EBF\u5668\u6A21\u578B {
38
+ // 使用 WeakRef + FinalizationRegistry 防止"反向持有" this
39
+ static \u6E05\u7406\u6CE8\u518C\u5668 = new FinalizationRegistry(({ \u5B9E\u4F8B\u5F15\u7528, \u76D1\u542C\u5668 }) => {
40
+ let \u5B9E\u4F8B = \u5B9E\u4F8B\u5F15\u7528.deref();
41
+ if (\u5B9E\u4F8B === void 0) return;
42
+ let \u7D22\u5F15 = \u5B9E\u4F8B.\u76D1\u542C\u5668\u5217\u8868.indexOf(\u76D1\u542C\u5668);
43
+ if (\u7D22\u5F15 !== -1) \u5B9E\u4F8B.\u76D1\u542C\u5668\u5217\u8868.splice(\u7D22\u5F15, 1);
44
+ });
45
+ \u76D1\u542C\u5668\u5217\u8868 = [];
46
+ \u6301\u6709\u8005\u6620\u5C04 = /* @__PURE__ */ new WeakMap();
47
+ \u9519\u8BEF\u5904\u7406\u5668 = null;
48
+ /**
49
+ * 设置广播错误时的处理器。
50
+ */
51
+ \u8BBE\u7F6E\u9519\u8BEF\u5904\u7406\u5668(\u5904\u7406\u5668) {
52
+ this.\u9519\u8BEF\u5904\u7406\u5668 = \u5904\u7406\u5668;
53
+ }
54
+ /**
55
+ * 注册监听器。
56
+ * 若外部不再持有返回的 `监听器持有者`,监听器会在未来某个时间自动移除。
57
+ * ⚠️ 自动清理是非确定性的,不能依赖它实现实时释放。
58
+ */
59
+ \u6DFB\u52A0\u76D1\u542C\u5668(\u76D1\u542C\u5668) {
60
+ this.\u76D1\u542C\u5668\u5217\u8868.push(\u76D1\u542C\u5668);
61
+ let \u6301\u6709\u8005 = new \u96C6\u7EBF\u5668\u76D1\u542C\u5668\u6301\u6709\u8005(\u76D1\u542C\u5668);
62
+ this.\u6301\u6709\u8005\u6620\u5C04.set(\u6301\u6709\u8005, \u76D1\u542C\u5668);
63
+ let \u5B9E\u4F8B\u5F31\u5F15\u7528 = new WeakRef(this);
64
+ _\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);
65
+ return \u6301\u6709\u8005;
66
+ }
67
+ \u79FB\u9664\u76D1\u542C\u5668(\u6301\u6709\u8005) {
68
+ let \u76D1\u542C\u5668 = this.\u6301\u6709\u8005\u6620\u5C04.get(\u6301\u6709\u8005);
69
+ if (\u76D1\u542C\u5668 === void 0) return;
70
+ let \u7D22\u5F15 = this.\u76D1\u542C\u5668\u5217\u8868.indexOf(\u76D1\u542C\u5668);
71
+ if (\u7D22\u5F15 !== -1) this.\u76D1\u542C\u5668\u5217\u8868.splice(\u7D22\u5F15, 1);
72
+ _\u96C6\u7EBF\u5668\u6A21\u578B.\u6E05\u7406\u6CE8\u518C\u5668.unregister(\u6301\u6709\u8005);
73
+ this.\u6301\u6709\u8005\u6620\u5C04.delete(\u6301\u6709\u8005);
74
+ }
75
+ async \u5E7F\u64AD(\u6570\u636E) {
76
+ let snapshot = [...this.\u76D1\u542C\u5668\u5217\u8868];
77
+ let \u7ED3\u679C = await Promise.allSettled(snapshot.map((l) => l(\u6570\u636E)));
78
+ for (let [\u7D22\u5F15, \u7ED3\u679C\u9879] of \u7ED3\u679C.entries()) {
79
+ if (\u7ED3\u679C\u9879.status === "rejected" && this.\u9519\u8BEF\u5904\u7406\u5668 !== null) {
80
+ await Promise.resolve(this.\u9519\u8BEF\u5904\u7406\u5668(\u6570\u636E, \u7D22\u5F15, \u7ED3\u679C\u9879.reason));
81
+ }
82
+ }
83
+ }
84
+ };
85
+
86
+ // src/global/model/web-socket.ts
87
+ var WebSocket\u7BA1\u7406\u5668 = class {
88
+ log = \u5168\u5C40\u65E5\u5FD7\u5355\u4F8B.extend("WebSocket\u7BA1\u7406\u5668");
89
+ \u8FDE\u63A5\u8868 = {};
90
+ \u6D88\u606F\u76D1\u542C\u8868 = {};
91
+ \u8FDE\u63A5\u6E05\u7406\u6A21\u578B = new \u96C6\u7EBF\u5668\u6A21\u578B();
92
+ \u8FDE\u63A5\u6301\u6709\u8005\u8868 = {};
93
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
94
+ \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
95
+ if (id in this.\u8FDE\u63A5\u8868) this.\u5220\u9664\u8FDE\u63A5(id);
96
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
97
+ if (!(id in this.\u6D88\u606F\u76D1\u542C\u8868)) {
98
+ let \u6A21\u578B = new \u96C6\u7EBF\u5668\u6A21\u578B();
99
+ \u6A21\u578B.\u8BBE\u7F6E\u9519\u8BEF\u5904\u7406\u5668(async (\u6570\u636E, \u7D22\u5F15, \u9519\u8BEF) => {
100
+ await this.log.warn(`WebSocket \u76D1\u542C\u5668\u6267\u884C\u5931\u8D25, id: ${id}, \u7D22\u5F15: ${\u7D22\u5F15}, \u9519\u8BEF: ${\u9519\u8BEF}`);
101
+ });
102
+ this.\u6D88\u606F\u76D1\u542C\u8868[id] = \u6A21\u578B;
103
+ }
104
+ this.\u6CE8\u518Conmessage(id, ws\u53E5\u67C4);
105
+ let \u6301\u6709\u8005 = this.\u8FDE\u63A5\u6E05\u7406\u6A21\u578B.\u6DFB\u52A0\u76D1\u542C\u5668(async () => {
106
+ if (id in this.\u8FDE\u63A5\u8868) this.\u5220\u9664\u8FDE\u63A5(id);
107
+ });
108
+ this.\u8FDE\u63A5\u6301\u6709\u8005\u8868[id] = \u6301\u6709\u8005;
109
+ return \u6301\u6709\u8005;
110
+ }
111
+ \u5220\u9664\u8FDE\u63A5(id) {
112
+ let ws = this.\u8FDE\u63A5\u8868[id];
113
+ if (ws !== null && ws !== void 0) {
114
+ ws.onmessage = null;
115
+ ws.once("error", (err) => void this.log.error(`WebSocket \u5F02\u6B65\u9519\u8BEF, id: ${id}, \u9519\u8BEF: ${err}`));
116
+ ws.once(
117
+ "close",
118
+ (code, reason) => void this.log.debug(`WebSocket \u5DF2\u5173\u95ED, id: ${id}, \u5173\u95ED\u7801: ${code}, \u539F\u56E0: ${reason}`)
119
+ );
120
+ try {
121
+ ws.close(1e3, "\u670D\u52A1\u5668\u4E3B\u52A8\u5173\u95ED");
122
+ } catch (err) {
123
+ void this.log.error(`WebSocket \u540C\u6B65\u5173\u95ED\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`);
124
+ }
125
+ }
126
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
127
+ 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}`));
128
+ delete this.\u8FDE\u63A5\u8868[id];
129
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
130
+ delete this.\u6D88\u606F\u76D1\u542C\u8868[id];
131
+ let \u6301\u6709\u8005 = this.\u8FDE\u63A5\u6301\u6709\u8005\u8868[id];
132
+ if (\u6301\u6709\u8005 !== void 0) {
133
+ this.\u8FDE\u63A5\u6E05\u7406\u6A21\u578B.\u79FB\u9664\u76D1\u542C\u5668(\u6301\u6709\u8005);
134
+ delete this.\u8FDE\u63A5\u6301\u6709\u8005\u8868[id];
135
+ }
136
+ }
137
+ \u6CE8\u518Conmessage(id, ws\u53E5\u67C4) {
138
+ ws\u53E5\u67C4.onmessage = async (event) => {
139
+ try {
140
+ let \u6570\u636E = JSON.parse(event.data.toString());
141
+ let \u6A21\u578B = this.\u6D88\u606F\u76D1\u542C\u8868[id];
142
+ if (\u6A21\u578B !== void 0) await \u6A21\u578B.\u5E7F\u64AD(\u6570\u636E);
143
+ } catch (err) {
144
+ await this.log.warn(`WebSocket \u6D88\u606F\u5904\u7406\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`);
145
+ }
146
+ };
147
+ }
148
+ \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
149
+ return id in this.\u8FDE\u63A5\u8868;
150
+ }
151
+ async \u83B7\u5F97ws\u53E5\u67C4(id) {
152
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
153
+ }
154
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
155
+ if (id in this.\u8FDE\u63A5\u8868) this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
156
+ }
157
+ \u8BBE\u7F6E\u6D88\u606F\u76D1\u542C(id, \u56DE\u8C03\u51FD\u6570) {
158
+ let \u6A21\u578B = this.\u6D88\u606F\u76D1\u542C\u8868[id];
159
+ if (\u6A21\u578B === void 0) return null;
160
+ return \u6A21\u578B.\u6DFB\u52A0\u76D1\u542C\u5668(\u56DE\u8C03\u51FD\u6570);
161
+ }
162
+ };
163
+ // Annotate the CommonJS export names for ESM import in node:
164
+ 0 && (module.exports = {
165
+ WebSocket\u7BA1\u7406\u5668
166
+ });
@@ -0,0 +1,21 @@
1
+ import { WebSocket } from 'ws';
2
+ import { 集线器监听器持有者 as _________ } from './hub.cjs';
3
+
4
+ type id = string;
5
+ declare class WebSocket管理器 {
6
+ private log;
7
+ private 连接表;
8
+ private 消息监听表;
9
+ private 连接清理模型;
10
+ private 连接持有者表;
11
+ private 清理函数表;
12
+ 增加连接(id: id, ws句柄: WebSocket): _________<void>;
13
+ 删除连接(id: string): void;
14
+ private 注册onmessage;
15
+ 查询连接存在(id: string): boolean;
16
+ 获得ws句柄(id: id): Promise<WebSocket | null>;
17
+ 设置清理函数(id: string, 清理函数: () => Promise<void>): Promise<void>;
18
+ 设置消息监听(id: string, 回调函数: (数据: any) => Promise<void>): _________<unknown> | null;
19
+ }
20
+
21
+ export { WebSocket管理器 };