@tencentcloud/sdk-mcp 1.2.6 → 1.2.7

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 (351) hide show
  1. package/package.json +1 -1
  2. package/resource/doc/chatuikit/faq/common/server_error_code.md +74 -0
  3. package/resource/doc/chatuikit/faq/{freq_qa.md → native_sdk/faq.md} +2 -1
  4. package/resource/doc/chatuikit/faq/web_sdk/error_code.md +47 -0
  5. package/resource/doc/chatuikit/faq/web_sdk/faq.md +115 -0
  6. package/resource/doc/chatuikit/flutter/faq.md +117 -0
  7. package/resource/doc/chatuikit/iOS/faq.md +117 -0
  8. package/resource/doc/chatuikit/react/faq.md +26 -0
  9. package/resource/doc/chatuikit/vue/faq.md +35 -0
  10. package/resource/doc/livekit/faq/common/error_code.md +89 -0
  11. package/resource/doc/roomkit/common/error_code.md +67 -0
  12. package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
  13. package/resource/doc/tuicallkit/android/faq.md +1000 -0
  14. package/resource/doc/tuicallkit/faq/common/error_code.md +47 -0
  15. package/resource/doc/tuicallkit/flutter/faq.md +981 -0
  16. package/resource/doc/tuicallkit/{faq → iOS}/faq.md +0 -72
  17. package/resource/doc/tuicallkit/react/faq.md +986 -0
  18. package/resource/doc/tuicallkit/vue/faq.md +986 -0
  19. package/tools/call/get-native-call-integration.js +4 -10
  20. package/tools/call/get-native-call-integration.js.map +1 -1
  21. package/tools/call/get-web-call-api.js +4 -7
  22. package/tools/call/get-web-call-api.js.map +1 -1
  23. package/tools/call/get-web-call-integration.js +4 -9
  24. package/tools/call/get-web-call-integration.js.map +1 -1
  25. package/tools/chat/get-native-chat-integration.js +4 -8
  26. package/tools/chat/get-native-chat-integration.js.map +1 -1
  27. package/tools/chat/get-web-chat-component-detail.js +5 -10
  28. package/tools/chat/get-web-chat-component-detail.js.map +1 -1
  29. package/tools/chat/get-web-chat-integration.js +4 -12
  30. package/tools/chat/get-web-chat-integration.js.map +1 -1
  31. package/tools/chat/get-web-chat-uikit-init.js +5 -6
  32. package/tools/chat/get-web-chat-uikit-init.js.map +1 -1
  33. package/tools/chat/get-web-chat-window-integration.js +4 -12
  34. package/tools/chat/get-web-chat-window-integration.js.map +1 -1
  35. package/tools/chat/{create-group.js → get-web-create-group-doc.js} +5 -6
  36. package/tools/chat/get-web-create-group-doc.js.map +1 -0
  37. package/tools/common/get-faq.js +93 -0
  38. package/tools/common/get-faq.js.map +1 -0
  39. package/tools/common/get-usersig.js +9 -18
  40. package/tools/common/get-usersig.js.map +1 -1
  41. package/tools/common/present-framework-choice.js +3 -10
  42. package/tools/common/present-framework-choice.js.map +1 -1
  43. package/tools/common/record-prompt.js +5 -12
  44. package/tools/common/record-prompt.js.map +1 -1
  45. package/tools/common/record-result.js +7 -11
  46. package/tools/common/record-result.js.map +1 -1
  47. package/tools/definitions/get_faq_def.js +28 -0
  48. package/tools/definitions/get_faq_def.js.map +1 -0
  49. package/tools/definitions/get_native_call_uikit_integration_def.js +21 -0
  50. package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -0
  51. package/tools/definitions/get_native_chat_uikit_integration_def.js +21 -0
  52. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -0
  53. package/tools/definitions/get_usersig_def.js +34 -0
  54. package/tools/definitions/get_usersig_def.js.map +1 -0
  55. package/tools/definitions/get_web_call_uikit_api_def.js +23 -0
  56. package/tools/definitions/get_web_call_uikit_api_def.js.map +1 -0
  57. package/tools/definitions/get_web_call_uikit_integration_def.js +20 -0
  58. package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -0
  59. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +24 -0
  60. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +1 -0
  61. package/tools/definitions/get_web_chat_uikit_init_def.js +23 -0
  62. package/tools/definitions/get_web_chat_uikit_init_def.js.map +1 -0
  63. package/tools/definitions/get_web_chat_uikit_integration_def.js +26 -0
  64. package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -0
  65. package/tools/definitions/get_web_chat_window_integration_def.js +26 -0
  66. package/tools/definitions/get_web_chat_window_integration_def.js.map +1 -0
  67. package/tools/definitions/get_web_create_group_doc_def.js +18 -0
  68. package/tools/definitions/get_web_create_group_doc_def.js.map +1 -0
  69. package/tools/definitions/get_web_live_state_detail_def.js +19 -0
  70. package/tools/definitions/get_web_live_state_detail_def.js.map +1 -0
  71. package/tools/definitions/get_web_live_uikit_component_detail_def.js +21 -0
  72. package/tools/definitions/get_web_live_uikit_component_detail_def.js.map +1 -0
  73. package/tools/definitions/get_web_room_state_detail_def.js +19 -0
  74. package/tools/definitions/get_web_room_state_detail_def.js.map +1 -0
  75. package/tools/definitions/present_framework_choice_def.js +24 -0
  76. package/tools/definitions/present_framework_choice_def.js.map +1 -0
  77. package/tools/definitions/record_prompt_def.js +22 -0
  78. package/tools/definitions/record_prompt_def.js.map +1 -0
  79. package/tools/definitions/record_result_def.js +22 -0
  80. package/tools/definitions/record_result_def.js.map +1 -0
  81. package/tools/index.js +7 -9
  82. package/tools/index.js.map +1 -1
  83. package/tools/live/get-web-live-component-detail.js +5 -7
  84. package/tools/live/get-web-live-component-detail.js.map +1 -1
  85. package/tools/live/get-web-live-state-detail.js +5 -7
  86. package/tools/live/get-web-live-state-detail.js.map +1 -1
  87. package/tools/room/get-web-room-state-detail.js +5 -7
  88. package/tools/room/get-web-room-state-detail.js.map +1 -1
  89. package/utils/report-cls-client.js +1 -1
  90. package/utils/report-es-client.js +1 -1
  91. package/libs/@tencent/aegis-node-sdk/CHANGELOG.md +0 -8
  92. package/libs/@tencent/aegis-node-sdk/LICENSE +0 -21
  93. package/libs/@tencent/aegis-node-sdk/README.md +0 -562
  94. package/libs/@tencent/aegis-node-sdk/lib/aegis.min.js +0 -1
  95. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/constant/config.d.ts +0 -14
  96. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/constant/global.d.ts +0 -1
  97. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/constant/index.d.ts +0 -9
  98. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/constant/report-ignore.d.ts +0 -2
  99. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/core.d.ts +0 -85
  100. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/afterRequestHooks.d.ts +0 -3
  101. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/beforeRequestHooks.d.ts +0 -9
  102. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/modifyRequestHooks.d.ts +0 -3
  103. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/index.d.ts +0 -9
  104. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/interface/config.d.ts +0 -62
  105. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/interface/env.d.ts +0 -11
  106. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/interface/index.d.ts +0 -4
  107. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/interface/log.d.ts +0 -130
  108. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/interface/send.d.ts +0 -34
  109. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/format.d.ts +0 -2
  110. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/index.d.ts +0 -18
  111. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/length-limit.d.ts +0 -8
  112. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/pv.d.ts +0 -8
  113. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/remove-payload.d.ts +0 -2
  114. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/repeat-limit.d.ts +0 -4
  115. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/report.d.ts +0 -10
  116. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/sample.d.ts +0 -3
  117. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/throttle.d.ts +0 -3
  118. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/index.d.ts +0 -34
  119. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/jwt.d.ts +0 -12
  120. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/ot-js.d.ts +0 -14
  121. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/uuid.d.ts +0 -2
  122. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/whitelist.d.ts +0 -12
  123. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/write-before.d.ts +0 -3
  124. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/plugin.d.ts +0 -33
  125. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/util/destroy.d.ts +0 -2
  126. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/util/event-emitter.d.ts +0 -18
  127. package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/util/index.d.ts +0 -60
  128. package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/index.d.ts +0 -15
  129. package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/interface/selector.d.ts +0 -5
  130. package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/pipes/batch-report-pipe.d.ts +0 -6
  131. package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/protocol/protocol_base.d.ts +0 -18
  132. package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/protocol/protocol_http.d.ts +0 -12
  133. package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/ip_selector.d.ts +0 -10
  134. package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/polaris_selector.d.ts +0 -20
  135. package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/selector_base.d.ts +0 -27
  136. package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/util/eval_require.d.ts +0 -2
  137. package/libs/@tencent/aegis-node-sdk/package.json +0 -19
  138. package/libs/@tencent/polaris/README.md +0 -407
  139. package/libs/@tencent/polaris/dist/consumer/health.d.ts +0 -126
  140. package/libs/@tencent/polaris/dist/consumer/health.js +0 -283
  141. package/libs/@tencent/polaris/dist/consumer/health.js.map +0 -1
  142. package/libs/@tencent/polaris/dist/consumer/index.d.ts +0 -120
  143. package/libs/@tencent/polaris/dist/consumer/index.js +0 -348
  144. package/libs/@tencent/polaris/dist/consumer/index.js.map +0 -1
  145. package/libs/@tencent/polaris/dist/consumer/monitor.d.ts +0 -145
  146. package/libs/@tencent/polaris/dist/consumer/monitor.js +0 -343
  147. package/libs/@tencent/polaris/dist/consumer/monitor.js.map +0 -1
  148. package/libs/@tencent/polaris/dist/consumer/selector.d.ts +0 -73
  149. package/libs/@tencent/polaris/dist/consumer/selector.js +0 -316
  150. package/libs/@tencent/polaris/dist/consumer/selector.js.map +0 -1
  151. package/libs/@tencent/polaris/dist/errors.d.ts +0 -373
  152. package/libs/@tencent/polaris/dist/errors.js +0 -154
  153. package/libs/@tencent/polaris/dist/errors.js.map +0 -1
  154. package/libs/@tencent/polaris/dist/global.d.ts +0 -16
  155. package/libs/@tencent/polaris/dist/global.js +0 -18
  156. package/libs/@tencent/polaris/dist/global.js.map +0 -1
  157. package/libs/@tencent/polaris/dist/index.d.ts +0 -62
  158. package/libs/@tencent/polaris/dist/index.js +0 -145
  159. package/libs/@tencent/polaris/dist/index.js.map +0 -1
  160. package/libs/@tencent/polaris/dist/instance.d.ts +0 -109
  161. package/libs/@tencent/polaris/dist/instance.js +0 -38
  162. package/libs/@tencent/polaris/dist/instance.js.map +0 -1
  163. package/libs/@tencent/polaris/dist/limiter/bucket.d.ts +0 -51
  164. package/libs/@tencent/polaris/dist/limiter/bucket.js +0 -152
  165. package/libs/@tencent/polaris/dist/limiter/bucket.js.map +0 -1
  166. package/libs/@tencent/polaris/dist/limiter/index.d.ts +0 -73
  167. package/libs/@tencent/polaris/dist/limiter/index.js +0 -149
  168. package/libs/@tencent/polaris/dist/limiter/index.js.map +0 -1
  169. package/libs/@tencent/polaris/dist/limiter/ratelimit.d.ts +0 -27
  170. package/libs/@tencent/polaris/dist/limiter/ratelimit.js +0 -134
  171. package/libs/@tencent/polaris/dist/limiter/ratelimit.js.map +0 -1
  172. package/libs/@tencent/polaris/dist/limiter/ratelimiter/base.d.ts +0 -17
  173. package/libs/@tencent/polaris/dist/limiter/ratelimiter/base.js +0 -15
  174. package/libs/@tencent/polaris/dist/limiter/ratelimiter/base.js.map +0 -1
  175. package/libs/@tencent/polaris/dist/limiter/ratelimiter/global.d.ts +0 -59
  176. package/libs/@tencent/polaris/dist/limiter/ratelimiter/global.js +0 -397
  177. package/libs/@tencent/polaris/dist/limiter/ratelimiter/global.js.map +0 -1
  178. package/libs/@tencent/polaris/dist/limiter/ratelimiter/index.d.ts +0 -3
  179. package/libs/@tencent/polaris/dist/limiter/ratelimiter/index.js +0 -19
  180. package/libs/@tencent/polaris/dist/limiter/ratelimiter/index.js.map +0 -1
  181. package/libs/@tencent/polaris/dist/limiter/ratelimiter/local.d.ts +0 -17
  182. package/libs/@tencent/polaris/dist/limiter/ratelimiter/local.js +0 -52
  183. package/libs/@tencent/polaris/dist/limiter/ratelimiter/local.js.map +0 -1
  184. package/libs/@tencent/polaris/dist/location.d.ts +0 -48
  185. package/libs/@tencent/polaris/dist/location.js +0 -67
  186. package/libs/@tencent/polaris/dist/location.js.map +0 -1
  187. package/libs/@tencent/polaris/dist/logging.d.ts +0 -106
  188. package/libs/@tencent/polaris/dist/logging.js +0 -130
  189. package/libs/@tencent/polaris/dist/logging.js.map +0 -1
  190. package/libs/@tencent/polaris/dist/metadata.d.ts +0 -78
  191. package/libs/@tencent/polaris/dist/metadata.js +0 -119
  192. package/libs/@tencent/polaris/dist/metadata.js.map +0 -1
  193. package/libs/@tencent/polaris/dist/plugins/breaker/polaris.d.ts +0 -47
  194. package/libs/@tencent/polaris/dist/plugins/breaker/polaris.js +0 -162
  195. package/libs/@tencent/polaris/dist/plugins/breaker/polaris.js.map +0 -1
  196. package/libs/@tencent/polaris/dist/plugins/lb/base.d.ts +0 -24
  197. package/libs/@tencent/polaris/dist/plugins/lb/base.js +0 -32
  198. package/libs/@tencent/polaris/dist/plugins/lb/base.js.map +0 -1
  199. package/libs/@tencent/polaris/dist/plugins/lb/edf.d.ts +0 -24
  200. package/libs/@tencent/polaris/dist/plugins/lb/edf.js +0 -77
  201. package/libs/@tencent/polaris/dist/plugins/lb/edf.js.map +0 -1
  202. package/libs/@tencent/polaris/dist/plugins/lb/hashring.d.ts +0 -24
  203. package/libs/@tencent/polaris/dist/plugins/lb/hashring.js +0 -53
  204. package/libs/@tencent/polaris/dist/plugins/lb/hashring.js.map +0 -1
  205. package/libs/@tencent/polaris/dist/plugins/lb/sticky.d.ts +0 -31
  206. package/libs/@tencent/polaris/dist/plugins/lb/sticky.js +0 -88
  207. package/libs/@tencent/polaris/dist/plugins/lb/sticky.js.map +0 -1
  208. package/libs/@tencent/polaris/dist/plugins/lb/swrr.d.ts +0 -25
  209. package/libs/@tencent/polaris/dist/plugins/lb/swrr.js +0 -72
  210. package/libs/@tencent/polaris/dist/plugins/lb/swrr.js.map +0 -1
  211. package/libs/@tencent/polaris/dist/plugins/lb/wr.d.ts +0 -17
  212. package/libs/@tencent/polaris/dist/plugins/lb/wr.js +0 -50
  213. package/libs/@tencent/polaris/dist/plugins/lb/wr.js.map +0 -1
  214. package/libs/@tencent/polaris/dist/plugins/lb/wrr.d.ts +0 -19
  215. package/libs/@tencent/polaris/dist/plugins/lb/wrr.js +0 -81
  216. package/libs/@tencent/polaris/dist/plugins/lb/wrr.js.map +0 -1
  217. package/libs/@tencent/polaris/dist/plugins/logging/console.d.ts +0 -10
  218. package/libs/@tencent/polaris/dist/plugins/logging/console.js +0 -38
  219. package/libs/@tencent/polaris/dist/plugins/logging/console.js.map +0 -1
  220. package/libs/@tencent/polaris/dist/plugins/naming/local-server/index.d.ts +0 -32
  221. package/libs/@tencent/polaris/dist/plugins/naming/local-server/index.js +0 -88
  222. package/libs/@tencent/polaris/dist/plugins/naming/local-server/index.js.map +0 -1
  223. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/base.d.ts +0 -124
  224. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/base.js +0 -398
  225. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/base.js.map +0 -1
  226. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/discover.d.ts +0 -27
  227. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/discover.js +0 -287
  228. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/discover.js.map +0 -1
  229. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/index.d.ts +0 -15
  230. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/index.js +0 -43
  231. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/index.js.map +0 -1
  232. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/monitor.d.ts +0 -28
  233. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/monitor.js +0 -249
  234. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/monitor.js.map +0 -1
  235. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/ratelimit.d.ts +0 -19
  236. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/ratelimit.js +0 -222
  237. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/ratelimit.js.map +0 -1
  238. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/bidi.d.ts +0 -26
  239. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/bidi.js +0 -99
  240. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/bidi.js.map +0 -1
  241. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/index.d.ts +0 -60
  242. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/index.js +0 -259
  243. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/index.js.map +0 -1
  244. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/pb/discover.proto +0 -24
  245. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/pb/monitor.proto +0 -18
  246. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/pb/ratelimit.proto +0 -12
  247. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/http/index.d.ts +0 -39
  248. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/http/index.js +0 -115
  249. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/http/index.js.map +0 -1
  250. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/api.proto +0 -24
  251. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/client.proto +0 -22
  252. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/model.proto +0 -28
  253. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/ratelimit.proto +0 -80
  254. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/request.proto +0 -18
  255. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/response.proto +0 -65
  256. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/routing.proto +0 -66
  257. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/service.proto +0 -95
  258. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/types.d.ts +0 -1568
  259. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/index.d.ts +0 -36
  260. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/index.js +0 -51
  261. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/index.js.map +0 -1
  262. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/api.proto +0 -18
  263. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/circuitbreak.proto +0 -67
  264. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/request.proto +0 -82
  265. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/response.proto +0 -11
  266. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/sdkcache.proto +0 -46
  267. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/sdkconfiguration.proto +0 -16
  268. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/sdktoken.proto +0 -10
  269. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/types.d.ts +0 -1102
  270. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/pool.d.ts +0 -29
  271. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/pool.js +0 -77
  272. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/pool.js.map +0 -1
  273. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/ratelimit-pb/api.proto +0 -12
  274. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/ratelimit-pb/ratelimit.proto +0 -28
  275. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/ratelimit-pb/types.d.ts +0 -395
  276. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/rules.d.ts +0 -13
  277. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/rules.js +0 -116
  278. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/rules.js.map +0 -1
  279. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/types.d.ts +0 -67
  280. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/types.js +0 -67
  281. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/types.js.map +0 -1
  282. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/utils.d.ts +0 -99
  283. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/utils.js +0 -217
  284. package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/utils.js.map +0 -1
  285. package/libs/@tencent/polaris/dist/plugins/registry/memory.d.ts +0 -10
  286. package/libs/@tencent/polaris/dist/plugins/registry/memory.js +0 -50
  287. package/libs/@tencent/polaris/dist/plugins/registry/memory.js.map +0 -1
  288. package/libs/@tencent/polaris/dist/plugins/router/polaris/nearby.d.ts +0 -51
  289. package/libs/@tencent/polaris/dist/plugins/router/polaris/nearby.js +0 -145
  290. package/libs/@tencent/polaris/dist/plugins/router/polaris/nearby.js.map +0 -1
  291. package/libs/@tencent/polaris/dist/plugins/router/polaris/rule.d.ts +0 -11
  292. package/libs/@tencent/polaris/dist/plugins/router/polaris/rule.js +0 -174
  293. package/libs/@tencent/polaris/dist/plugins/router/polaris/rule.js.map +0 -1
  294. package/libs/@tencent/polaris/dist/plugins/router/trpc/canary.d.ts +0 -25
  295. package/libs/@tencent/polaris/dist/plugins/router/trpc/canary.js +0 -36
  296. package/libs/@tencent/polaris/dist/plugins/router/trpc/canary.js.map +0 -1
  297. package/libs/@tencent/polaris/dist/plugins/router/trpc/env.d.ts +0 -10
  298. package/libs/@tencent/polaris/dist/plugins/router/trpc/env.js +0 -34
  299. package/libs/@tencent/polaris/dist/plugins/router/trpc/env.js.map +0 -1
  300. package/libs/@tencent/polaris/dist/plugins/router/trpc/set.d.ts +0 -56
  301. package/libs/@tencent/polaris/dist/plugins/router/trpc/set.js +0 -106
  302. package/libs/@tencent/polaris/dist/plugins/router/trpc/set.js.map +0 -1
  303. package/libs/@tencent/polaris/dist/plugins/shaping/unirate.d.ts +0 -31
  304. package/libs/@tencent/polaris/dist/plugins/shaping/unirate.js +0 -124
  305. package/libs/@tencent/polaris/dist/plugins/shaping/unirate.js.map +0 -1
  306. package/libs/@tencent/polaris/dist/plugins/shaping/warmup.d.ts +0 -61
  307. package/libs/@tencent/polaris/dist/plugins/shaping/warmup.js +0 -171
  308. package/libs/@tencent/polaris/dist/plugins/shaping/warmup.js.map +0 -1
  309. package/libs/@tencent/polaris/dist/plugins/weight/polaris.d.ts +0 -23
  310. package/libs/@tencent/polaris/dist/plugins/weight/polaris.js +0 -159
  311. package/libs/@tencent/polaris/dist/plugins/weight/polaris.js.map +0 -1
  312. package/libs/@tencent/polaris/dist/plugins.d.ts +0 -619
  313. package/libs/@tencent/polaris/dist/plugins.js +0 -91
  314. package/libs/@tencent/polaris/dist/plugins.js.map +0 -1
  315. package/libs/@tencent/polaris/dist/polaris.d.ts +0 -33
  316. package/libs/@tencent/polaris/dist/polaris.js +0 -59
  317. package/libs/@tencent/polaris/dist/polaris.js.map +0 -1
  318. package/libs/@tencent/polaris/dist/provider/index.d.ts +0 -102
  319. package/libs/@tencent/polaris/dist/provider/index.js +0 -168
  320. package/libs/@tencent/polaris/dist/provider/index.js.map +0 -1
  321. package/libs/@tencent/polaris/dist/registry.d.ts +0 -174
  322. package/libs/@tencent/polaris/dist/registry.js +0 -660
  323. package/libs/@tencent/polaris/dist/registry.js.map +0 -1
  324. package/libs/@tencent/polaris/dist/rules.d.ts +0 -163
  325. package/libs/@tencent/polaris/dist/rules.js +0 -24
  326. package/libs/@tencent/polaris/dist/rules.js.map +0 -1
  327. package/libs/@tencent/polaris/dist/scripts/postinstall.d.ts +0 -1
  328. package/libs/@tencent/polaris/dist/scripts/postinstall.js +0 -71
  329. package/libs/@tencent/polaris/dist/scripts/postinstall.js.map +0 -1
  330. package/libs/@tencent/polaris/dist/service.d.ts +0 -18
  331. package/libs/@tencent/polaris/dist/service.js +0 -3
  332. package/libs/@tencent/polaris/dist/service.js.map +0 -1
  333. package/libs/@tencent/polaris/dist/skeleton.d.ts +0 -87
  334. package/libs/@tencent/polaris/dist/skeleton.js +0 -282
  335. package/libs/@tencent/polaris/dist/skeleton.js.map +0 -1
  336. package/libs/@tencent/polaris/dist/utils.d.ts +0 -36
  337. package/libs/@tencent/polaris/dist/utils.js +0 -74
  338. package/libs/@tencent/polaris/dist/utils.js.map +0 -1
  339. package/libs/@tencent/polaris/dist/weak.d.ts +0 -11
  340. package/libs/@tencent/polaris/dist/weak.js +0 -44
  341. package/libs/@tencent/polaris/dist/weak.js.map +0 -1
  342. package/libs/@tencent/polaris/package.json +0 -114
  343. package/resource/doc/chatuikit/faq/web_qa.md +0 -118
  344. package/tools/call/get-call-faq.js +0 -29
  345. package/tools/call/get-call-faq.js.map +0 -1
  346. package/tools/chat/create-group.js.map +0 -1
  347. package/tools/chat/get-chat-faq.js +0 -29
  348. package/tools/chat/get-chat-faq.js.map +0 -1
  349. /package/resource/doc/chatuikit/{faq/sdk_qa.md → android/faq.md} +0 -0
  350. /package/{libs/@tencent/aegis-node-sdk/lib/packages/core/src/polyfill.d.ts → resource/doc/livekit/vue/faq.md} +0 -0
  351. /package/resource/doc/{chatuikit/faq/vue_qa.md → roomkit/vue/faq.md} +0 -0
@@ -1,24 +0,0 @@
1
- import { Instance } from "../../instance";
2
- import { LoadBalancerPlugin, PluginType, WeightType } from "../../plugins";
3
- declare const kDefaultOptions: {
4
- /**
5
- * 是否开启动态权重
6
- */
7
- dynamicWeight: boolean;
8
- };
9
- export declare type StatelessLoadBalancerOptions = typeof kDefaultOptions;
10
- export declare abstract class StatelessLoadBalancer implements LoadBalancerPlugin {
11
- readonly type = PluginType.LoadBalancer;
12
- readonly supportedWeightType = WeightType.Dynamic;
13
- protected readonly options: StatelessLoadBalancerOptions;
14
- abstract readonly name: string;
15
- constructor(options?: Partial<StatelessLoadBalancerOptions>);
16
- instanceWeight(instance: Instance): number;
17
- /**
18
- * 随机 `choose` 多次,
19
- * 避免请求顺序固定导致的后端访问不均衡
20
- */
21
- protected randomChoose<CallArgsType>(namespace: string, service: string, instances: Instance[], args?: CallArgsType): void;
22
- abstract choose<CallArgsType>(namespace: string, service: string, instances: Instance[], args?: CallArgsType): Instance;
23
- }
24
- export {};
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StatelessLoadBalancer = void 0;
4
- const plugins_1 = require("../../plugins");
5
- const kDefaultOptions = {
6
- /**
7
- * 是否开启动态权重
8
- */
9
- dynamicWeight: true
10
- };
11
- class StatelessLoadBalancer {
12
- constructor(options) {
13
- this.type = plugins_1.PluginType.LoadBalancer;
14
- this.supportedWeightType = 0 /* Dynamic */;
15
- this.options = Object.assign(Object.assign({}, kDefaultOptions), options);
16
- }
17
- instanceWeight(instance) {
18
- return instance.staticWeight + (this.options.dynamicWeight ? instance.dynamicWeight : 0);
19
- }
20
- /**
21
- * 随机 `choose` 多次,
22
- * 避免请求顺序固定导致的后端访问不均衡
23
- */
24
- randomChoose(namespace, service, instances, args) {
25
- const chooseCount = ~~(Math.random() * instances.length);
26
- for (let i = 0; i < chooseCount; i += 1) {
27
- this.choose(namespace, service, instances, args);
28
- }
29
- }
30
- }
31
- exports.StatelessLoadBalancer = StatelessLoadBalancer;
32
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/plugins/lb/base.ts"],"names":[],"mappings":";;;AACA,2CAA2E;AAE3E,MAAM,eAAe,GAAG;IACtB;;OAEG;IACH,aAAa,EAAE,IAAI;CACpB,CAAC;AAIF,MAAsB,qBAAqB;IAMzC,YAAY,OAA+C;QALlD,SAAI,GAAG,oBAAU,CAAC,YAAY,CAAC;QAC/B,wBAAmB,mBAAsB;QAKhD,IAAI,CAAC,OAAO,mCACP,eAAe,GACf,OAAO,CACX,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,QAAkB;QAC/B,OAAO,QAAQ,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED;;;OAGG;IACO,YAAY,CAAe,SAAiB,EAAE,OAAe,EAAE,SAAqB,EAAE,IAAmB;QACjH,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;SAClD;IACH,CAAC;CAKF;AA/BD,sDA+BC"}
@@ -1,24 +0,0 @@
1
- import { Instance, InstanceStatus } from "../../instance";
2
- import { StatelessLoadBalancer } from "./base";
3
- /**
4
- * Earliest Deadline First (EDF) Load Balancer
5
- * (https://en.wikipedia.org/wiki/Earliest_deadline_first_scheduling)
6
- *
7
- * @description
8
- * Algorithm:
9
- * 1. `S` = {S0, S1, S2, ..., Sn}, `W(Si)` = Si.weight, `D(Si)` = Si.deadline
10
- * 2. Sx = Pick(Min(D(Si)))
11
- * 3. D(Sx) = D(Sx) + 1 / W(Sx)
12
- * 4. return Sx
13
- */
14
- export declare class EDFLoadBalancer extends StatelessLoadBalancer {
15
- readonly name: string;
16
- private readonly callStat;
17
- /**
18
- * 1. 选取拥有最小 `deadline` 的实例
19
- * 2. 将当前时间 `currentTime` 置为选取实例的 `deadline`
20
- * 3. 将选取实例的 `deadline` 增加一个 `step`
21
- */
22
- choose(namespace: string, service: string, instances: Instance[]): Instance;
23
- onStatusChange(namespace: string, service: string, instance: Instance, prevStatus: InstanceStatus): void;
24
- }
@@ -1,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EDFLoadBalancer = void 0;
4
- const utils_1 = require("../../utils");
5
- const base_1 = require("./base");
6
- /**
7
- * Earliest Deadline First (EDF) Load Balancer
8
- * (https://en.wikipedia.org/wiki/Earliest_deadline_first_scheduling)
9
- *
10
- * @description
11
- * Algorithm:
12
- * 1. `S` = {S0, S1, S2, ..., Sn}, `W(Si)` = Si.weight, `D(Si)` = Si.deadline
13
- * 2. Sx = Pick(Min(D(Si)))
14
- * 3. D(Sx) = D(Sx) + 1 / W(Sx)
15
- * 4. return Sx
16
- */
17
- class EDFLoadBalancer extends base_1.StatelessLoadBalancer {
18
- constructor() {
19
- super(...arguments);
20
- this.name = "EDFLoadBalancer";
21
- this.callStat = Object.create(null);
22
- }
23
- /**
24
- * 1. 选取拥有最小 `deadline` 的实例
25
- * 2. 将当前时间 `currentTime` 置为选取实例的 `deadline`
26
- * 3. 将选取实例的 `deadline` 增加一个 `step`
27
- */
28
- choose(namespace, service, instances) {
29
- let callStat = this.callStat[`${namespace}.${service}`];
30
- if (!callStat) {
31
- callStat = {
32
- currentTime: 0,
33
- instanceDeadline: new WeakMap()
34
- };
35
- this.callStat[`${namespace}.${service}`] = callStat;
36
- this.randomChoose(namespace, service, instances);
37
- }
38
- let earliestDeadline = Infinity;
39
- let selectedInstance;
40
- for (let i = 0; i < instances.length; i += 1) { // eslint-disable-line @typescript-eslint/prefer-for-of
41
- const instance = instances[i];
42
- let deadline = callStat.instanceDeadline.get(instance);
43
- // 正常情况下 `deadline` 应大于当前时间; 但是由于某些前置的条件,导致某 `instance` 不在 `instances` 中
44
- // 则此 `instance` 的 `deadline` 有可能滞后于 `currentTime`,需要为其重置 `deadline`
45
- if (typeof deadline === "undefined" || deadline < callStat.currentTime) {
46
- deadline = callStat.currentTime + (1 / this.instanceWeight(instance));
47
- callStat.instanceDeadline.set(instance, deadline);
48
- }
49
- if (deadline < earliestDeadline) {
50
- earliestDeadline = deadline;
51
- selectedInstance = instance;
52
- }
53
- }
54
- if (selectedInstance) {
55
- callStat.instanceDeadline.set(selectedInstance, earliestDeadline + (1 / this.instanceWeight(selectedInstance)));
56
- callStat.currentTime = earliestDeadline;
57
- return selectedInstance;
58
- }
59
- (0, utils_1.UNREACHABLE)();
60
- }
61
- onStatusChange(namespace, service, instance, prevStatus) {
62
- // 发生以下两种状态转移时,不希望实例被太早选出,因此重置其 deadline
63
- if (
64
- /* eslint-disable max-len */
65
- (instance.status === 2 /* HalfClose */ && prevStatus === 1 /* HalfOpen */) /** `HalfOpen` ---> `HalfClose` */
66
- || (instance.status === 0 /* Normal */ && prevStatus === 3 /* Fused */) /** `Fused` ---> `Normal` */
67
- /* eslint-enable max-len */
68
- ) {
69
- const callStat = this.callStat[`${namespace}.${service}`];
70
- if (callStat) {
71
- callStat.instanceDeadline.delete(instance);
72
- }
73
- }
74
- }
75
- }
76
- exports.EDFLoadBalancer = EDFLoadBalancer;
77
- //# sourceMappingURL=edf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edf.js","sourceRoot":"","sources":["../../../src/plugins/lb/edf.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAC1C,iCAA+C;AAE/C;;;;;;;;;;GAUG;AACH,MAAa,eAAgB,SAAQ,4BAAqB;IAA1D;;QACW,SAAI,GAAW,iBAAiB,CAAC;QACzB,aAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAG3C,CAAC;IA2DN,CAAC;IAzDC;;;;OAIG;IACH,MAAM,CAAC,SAAiB,EAAE,OAAe,EAAE,SAAqB;QAC9D,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG;gBACT,WAAW,EAAE,CAAC;gBACd,gBAAgB,EAAE,IAAI,OAAO,EAAE;aAChC,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SAClD;QAED,IAAI,gBAAgB,GAAG,QAAQ,CAAC;QAChC,IAAI,gBAAsC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,uDAAuD;YACrG,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvD,wEAAwE;YACxE,oEAAoE;YACpE,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE;gBACtE,QAAQ,GAAG,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACtE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aACnD;YACD,IAAI,QAAQ,GAAG,gBAAgB,EAAE;gBAC/B,gBAAgB,GAAG,QAAQ,CAAC;gBAC5B,gBAAgB,GAAG,QAAQ,CAAC;aAC7B;SACF;QAED,IAAI,gBAAgB,EAAE;YACpB,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAChH,QAAQ,CAAC,WAAW,GAAG,gBAAgB,CAAC;YAExC,OAAO,gBAAgB,CAAC;SACzB;QAED,IAAA,mBAAW,GAAE,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,SAAiB,EAAE,OAAe,EAAE,QAAkB,EAAE,UAA0B;QAC/F,wCAAwC;QACxC;QACE,4BAA4B;QAC5B,CAAC,QAAQ,CAAC,MAAM,sBAA6B,IAAI,UAAU,qBAA4B,CAAC,CAAC,kCAAkC;eACxH,CAAC,QAAQ,CAAC,MAAM,mBAA0B,IAAI,UAAU,kBAAyB,CAAC,CAAC,4BAA4B;QAClH,2BAA2B;UAC3B;YACA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC;YAC1D,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAC5C;SACF;IACH,CAAC;CACF;AAhED,0CAgEC"}
@@ -1,24 +0,0 @@
1
- /// <reference types="node" />
2
- import * as HashRing from "hashring";
3
- import { Instance } from "../../instance";
4
- import { LoadBalancerPlugin, PluginType, WeightType } from "../../plugins";
5
- export declare type HashRingCallArgs = string;
6
- export declare type HashRingLoadBalancerOptions = HashRing.HashRingOptions & {
7
- /**
8
- * 哈希算法(可自定义实现),默认为 `md5`
9
- */
10
- "algorithm": string | ((key: string) => string | Buffer);
11
- };
12
- /**
13
- * Consistent Hash Load Balancer
14
- * Implemented by using a third-party [hashring](https://github.com/3rd-Eden/node-hashring) module
15
- */
16
- export declare class HashRingLoadBalancer implements LoadBalancerPlugin {
17
- readonly name = "HashRingLoadBalancer";
18
- readonly type = PluginType.LoadBalancer;
19
- readonly supportedWeightType = WeightType.None;
20
- private readonly callStat;
21
- private readonly options;
22
- constructor(options?: Partial<HashRingLoadBalancerOptions>);
23
- choose<CallArgsType>(namespace: string, service: string, instances: Instance[], args: CallArgsType): Instance;
24
- }
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HashRingLoadBalancer = void 0;
4
- const HashRing = require("hashring");
5
- const plugins_1 = require("../../plugins");
6
- const utils_1 = require("../../utils");
7
- const isHashRingCallArgs = (args) => {
8
- return typeof args === "string";
9
- };
10
- /**
11
- * Consistent Hash Load Balancer
12
- * Implemented by using a third-party [hashring](https://github.com/3rd-Eden/node-hashring) module
13
- */
14
- class HashRingLoadBalancer {
15
- constructor(options) {
16
- this.name = "HashRingLoadBalancer";
17
- this.type = plugins_1.PluginType.LoadBalancer;
18
- this.supportedWeightType = 2 /* None */;
19
- this.callStat = Object.create(null);
20
- this.options = options || {};
21
- }
22
- choose(namespace, service, instances, args) {
23
- let callArgs;
24
- if (isHashRingCallArgs(args)) {
25
- callArgs = args;
26
- }
27
- else {
28
- throw new Error("Illegal parameter");
29
- }
30
- const sign = instances.map(instance => instance.id).join("|");
31
- let callStat = this.callStat[`${namespace}.${service}`];
32
- if (!callStat || callStat.sign !== sign) {
33
- if (callStat && callStat.sign !== sign) {
34
- callStat.ring.end();
35
- }
36
- callStat = {
37
- sign,
38
- ring: new HashRing(instances.map(instance => `${instance.host}:${instance.port}`), this.options.algorithm || "md5", this.options)
39
- };
40
- this.callStat[`${namespace}.${service}`] = callStat;
41
- }
42
- const address = callStat.ring.get(callArgs);
43
- for (let i = 0; i < instances.length; i += 1) { // eslint-disable-line @typescript-eslint/prefer-for-of
44
- const instance = instances[i];
45
- if (address === `${instance.host}:${instance.port}`) {
46
- return instance;
47
- }
48
- }
49
- (0, utils_1.UNREACHABLE)();
50
- }
51
- }
52
- exports.HashRingLoadBalancer = HashRingLoadBalancer;
53
- //# sourceMappingURL=hashring.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hashring.js","sourceRoot":"","sources":["../../../src/plugins/lb/hashring.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAGrC,2CAA2E;AAC3E,uCAA0C;AAI1C,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAA4B,EAAE;IACrE,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AAClC,CAAC,CAAC;AASF;;;GAGG;AACH,MAAa,oBAAoB;IAW/B,YAAY,OAA8C;QAVjD,SAAI,GAAG,sBAAsB,CAAC;QAC9B,SAAI,GAAG,oBAAU,CAAC,YAAY,CAAC;QAC/B,wBAAmB,gBAAmB;QAC9B,aAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAG3C,CAAC;QAKF,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,CAAe,SAAiB,EAAE,OAAe,EAAE,SAAqB,EAAE,IAAkB;QAChG,IAAI,QAA0B,CAAC;QAC/B,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;YAC5B,QAAQ,GAAG,IAAI,CAAC;SACjB;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;SACtC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;YACvC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;gBACtC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACrB;YACD,QAAQ,GAAG;gBACT,IAAI;gBACJ,IAAI,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;aAClI,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC;SACrD;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,uDAAuD;YACrG,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,OAAO,KAAK,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE;gBACnD,OAAO,QAAQ,CAAC;aACjB;SACF;QAED,IAAA,mBAAW,GAAE,CAAC;IAChB,CAAC;CACF;AA9CD,oDA8CC"}
@@ -1,31 +0,0 @@
1
- import { Instance } from "../../instance";
2
- import { LoadBalancerPlugin, PluginType } from "../../plugins";
3
- declare const kDefaultOptions: {
4
- /**
5
- * 过期时间
6
- * * 当值 ≤0 时:则不启用此插件
7
- * * 当值为 `Infinity` 时:不启用过期
8
- */
9
- expireTime: number;
10
- };
11
- export declare type StickyLoadBalancerOptions = typeof kDefaultOptions;
12
- /**
13
- * Sticky Load Balancer
14
- * The returned instance of each call is the same
15
- * until it is not appear in the instance list or exceed expiration time
16
- */
17
- export declare class StickyLoadBalancer implements LoadBalancerPlugin {
18
- private readonly next;
19
- readonly name = "StickyLoadBalancer";
20
- readonly type = PluginType.LoadBalancer;
21
- readonly supportedWeightType: import("../../plugins").WeightType;
22
- private disposed;
23
- private readonly options;
24
- private readonly sessions;
25
- constructor(next: LoadBalancerPlugin, options?: Partial<StickyLoadBalancerOptions>);
26
- dispose(): void;
27
- get isDisposed(): boolean;
28
- choose<CallArgsType>(namespace: string, service: string, instances: Instance[], args?: CallArgsType): Instance;
29
- private buildOrRefreshTimer;
30
- }
31
- export {};
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StickyLoadBalancer = void 0;
4
- const __1 = require("../..");
5
- const plugins_1 = require("../../plugins");
6
- const utils_1 = require("../../utils");
7
- const weak_1 = require("../../weak");
8
- const kDefaultOptions = {
9
- /**
10
- * 过期时间
11
- * * 当值 ≤0 时:则不启用此插件
12
- * * 当值为 `Infinity` 时:不启用过期
13
- */
14
- expireTime: 10 * utils_1.kMinutes
15
- };
16
- /**
17
- * Sticky Load Balancer
18
- * The returned instance of each call is the same
19
- * until it is not appear in the instance list or exceed expiration time
20
- */
21
- class StickyLoadBalancer {
22
- constructor(next, options) {
23
- this.next = next;
24
- this.name = "StickyLoadBalancer";
25
- this.type = plugins_1.PluginType.LoadBalancer;
26
- this.disposed = false;
27
- this.sessions = Object.create(null);
28
- this.options = Object.assign(Object.assign({}, kDefaultOptions), options);
29
- this.supportedWeightType = next.supportedWeightType;
30
- }
31
- // #region dispose
32
- dispose() {
33
- if (!this.disposed) {
34
- Object.values(this.sessions).forEach((session) => {
35
- clearTimeout(session.timer);
36
- });
37
- this.disposed = true;
38
- }
39
- }
40
- get isDisposed() {
41
- return this.disposed;
42
- }
43
- // #endregion
44
- choose(namespace, service, instances, args) {
45
- if (this.disposed) {
46
- throw new __1.StateError("Already disposed");
47
- }
48
- if (this.options.expireTime <= 0) {
49
- return this.next.choose(namespace, service, instances, args);
50
- }
51
- const session = this.sessions[`${namespace}.${service}`];
52
- let stickiedInstance;
53
- if (session) {
54
- const { ref, timer } = session;
55
- stickiedInstance = ref.find(instances);
56
- if (stickiedInstance === undefined) {
57
- stickiedInstance = this.next.choose(namespace, service, instances, args);
58
- ref.reset(stickiedInstance);
59
- session.timer = this.buildOrRefreshTimer(namespace, service, timer);
60
- }
61
- }
62
- else {
63
- stickiedInstance = this.next.choose(namespace, service, instances, args);
64
- this.sessions[`${namespace}.${service}`] = {
65
- ref: new weak_1.WeakReference(stickiedInstance),
66
- timer: this.buildOrRefreshTimer(namespace, service)
67
- };
68
- }
69
- return stickiedInstance;
70
- }
71
- buildOrRefreshTimer(namespace, service, timer) {
72
- if (this.options.expireTime === Infinity) {
73
- return;
74
- }
75
- if (typeof (timer === null || timer === void 0 ? void 0 : timer.refresh) === "function") { /** Timeout.refresh() only available for Node.js 10.2.0 and higher */
76
- timer.refresh();
77
- return timer;
78
- }
79
- if (timer) {
80
- clearTimeout(timer);
81
- }
82
- return setTimeout(() => {
83
- delete this.sessions[`${namespace}.${service}`];
84
- }, this.options.expireTime).unref();
85
- }
86
- }
87
- exports.StickyLoadBalancer = StickyLoadBalancer;
88
- //# sourceMappingURL=sticky.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sticky.js","sourceRoot":"","sources":["../../../src/plugins/lb/sticky.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import { Instance, InstanceStatus } from "../../instance";
2
- import { StatelessLoadBalancer } from "./base";
3
- /**
4
- * Smooth Weighted Round-Robin (SWRR) Load Balancer
5
- * (https://www.nginx.com/resources/glossary/round-robin-load-balancing/)
6
- *
7
- * @description
8
- * Algorithm:
9
- * 1. `S` = {S0, S1, S2, ..., Sn}, `EW(Si)` = Si.weight, `CW(Si)` = 0
10
- * 2. CW(Si) = CW(Si) + EW(Si)
11
- * 3. Sx = Pick(Max(CW(Si)))
12
- * 4. CW(Sx) = CW(Sx) - Sum(EW(S))
13
- * 5. return Sx
14
- */
15
- export declare class NginxLoadBalancer extends StatelessLoadBalancer {
16
- readonly name: string;
17
- private readonly callStat;
18
- /**
19
- * 1. 将各个实例的 `currentWeight` 增加 `effectiveWeight`
20
- * 2. 选取拥有最大 `currentWeight` 的实例
21
- * 3. 将选取实例的 `currentWeight` 减少 `totalEffectiveWeight`
22
- */
23
- choose(namespace: string, service: string, instances: Instance[]): Instance;
24
- onStatusChange(namespace: string, service: string, instance: Instance, prevStatus: InstanceStatus): void;
25
- }
@@ -1,72 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NginxLoadBalancer = void 0;
4
- const utils_1 = require("../../utils");
5
- const base_1 = require("./base");
6
- /**
7
- * Smooth Weighted Round-Robin (SWRR) Load Balancer
8
- * (https://www.nginx.com/resources/glossary/round-robin-load-balancing/)
9
- *
10
- * @description
11
- * Algorithm:
12
- * 1. `S` = {S0, S1, S2, ..., Sn}, `EW(Si)` = Si.weight, `CW(Si)` = 0
13
- * 2. CW(Si) = CW(Si) + EW(Si)
14
- * 3. Sx = Pick(Max(CW(Si)))
15
- * 4. CW(Sx) = CW(Sx) - Sum(EW(S))
16
- * 5. return Sx
17
- */
18
- class NginxLoadBalancer extends base_1.StatelessLoadBalancer {
19
- constructor() {
20
- super(...arguments);
21
- this.name = "NginxLoadBalancer";
22
- this.callStat = Object.create(null);
23
- }
24
- /**
25
- * 1. 将各个实例的 `currentWeight` 增加 `effectiveWeight`
26
- * 2. 选取拥有最大 `currentWeight` 的实例
27
- * 3. 将选取实例的 `currentWeight` 减少 `totalEffectiveWeight`
28
- */
29
- choose(namespace, service, instances) {
30
- let callStat = this.callStat[`${namespace}.${service}`];
31
- if (!callStat) {
32
- callStat = new WeakMap();
33
- this.callStat[`${namespace}.${service}`] = callStat;
34
- this.randomChoose(namespace, service, instances);
35
- }
36
- let totalEffectiveWeight = 0;
37
- let bestWeight = -Infinity;
38
- let selectedInstance;
39
- for (let i = 0; i < instances.length; i += 1) { // eslint-disable-line @typescript-eslint/prefer-for-of
40
- const instance = instances[i];
41
- const effectiveWeight = this.instanceWeight(instance);
42
- let currentWeight = callStat.get(instance) || 0;
43
- currentWeight += effectiveWeight;
44
- totalEffectiveWeight += effectiveWeight;
45
- if (!selectedInstance || bestWeight < currentWeight) {
46
- selectedInstance = instance;
47
- bestWeight = currentWeight;
48
- }
49
- callStat.set(instance, currentWeight);
50
- }
51
- if (selectedInstance) {
52
- callStat.set(selectedInstance, bestWeight - totalEffectiveWeight);
53
- return selectedInstance;
54
- }
55
- (0, utils_1.UNREACHABLE)();
56
- }
57
- onStatusChange(namespace, service, instance, prevStatus) {
58
- if (
59
- /* eslint-disable max-len */
60
- (instance.status === 2 /* HalfClose */ && prevStatus === 1 /* HalfOpen */) /** `HalfOpen` ---> `HalfClose` */
61
- || (instance.status === 0 /* Normal */ && prevStatus === 3 /* Fused */) /** `Fused` ---> `Normal` */
62
- /* eslint-enable max-len */
63
- ) {
64
- const callStat = this.callStat[`${namespace}.${service}`];
65
- if (callStat) {
66
- callStat.delete(instance);
67
- }
68
- }
69
- }
70
- }
71
- exports.NginxLoadBalancer = NginxLoadBalancer;
72
- //# sourceMappingURL=swrr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"swrr.js","sourceRoot":"","sources":["../../../src/plugins/lb/swrr.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAC1C,iCAA+C;AAE/C;;;;;;;;;;;GAWG;AACH,MAAa,iBAAkB,SAAQ,4BAAqB;IAA5D;;QACW,SAAI,GAAW,mBAAmB,CAAC;QAC3B,aAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAuD,CAAC;IAoDxG,CAAC;IAlDC;;;;OAIG;IACH,MAAM,CAAC,SAAiB,EAAE,OAAe,EAAE,SAAqB;QAC9D,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SAClD;QAED,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAC7B,IAAI,UAAU,GAAG,CAAC,QAAQ,CAAC;QAC3B,IAAI,gBAAsC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAG,uDAAuD;YACtG,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAChD,aAAa,IAAI,eAAe,CAAC;YACjC,oBAAoB,IAAI,eAAe,CAAC;YACxC,IAAI,CAAC,gBAAgB,IAAI,UAAU,GAAG,aAAa,EAAE;gBACnD,gBAAgB,GAAG,QAAQ,CAAC;gBAC5B,UAAU,GAAG,aAAa,CAAC;aAC5B;YACD,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;SACvC;QAED,IAAI,gBAAgB,EAAE;YACpB,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,GAAG,oBAAoB,CAAC,CAAC;YAClE,OAAO,gBAAgB,CAAC;SACzB;QAED,IAAA,mBAAW,GAAE,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,SAAiB,EAAE,OAAe,EAAE,QAAkB,EAAE,UAA0B;QAC/F;QACE,4BAA4B;QAC5B,CAAC,QAAQ,CAAC,MAAM,sBAA6B,IAAI,UAAU,qBAA4B,CAAC,CAAC,kCAAkC;eACxH,CAAC,QAAQ,CAAC,MAAM,mBAA0B,IAAI,UAAU,kBAAyB,CAAC,CAAC,4BAA4B;QAClH,2BAA2B;UAC3B;YACA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC;YAC1D,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAC3B;SACF;IACH,CAAC;CACF;AAtDD,8CAsDC"}
@@ -1,17 +0,0 @@
1
- import { Instance } from "../../instance";
2
- import { StatelessLoadBalancer, StatelessLoadBalancerOptions } from "./base";
3
- export declare type WRLoadBalancerOptions = StatelessLoadBalancerOptions;
4
- /**
5
- * Weight Random Load Balancer
6
- *
7
- * @description
8
- * Algorithm:
9
- * 1. `S` = {S0, S1, S2, ..., Sn}, `W(Si)` = Si.weight
10
- * 2. selected_value = random_value % Sum(W(S))
11
- * 3. Sx = Pick(selected_value ∈ [Sum(W(S0)...W(Si-1)), Sum(W(S0)...W(Si))))
12
- * 4. return Sx
13
- */
14
- export declare class WRLoadBalancer extends StatelessLoadBalancer {
15
- readonly name: string;
16
- choose(namespace: string, service: string, instances: Instance[]): Instance;
17
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WRLoadBalancer = void 0;
4
- const utils_1 = require("../../utils");
5
- const base_1 = require("./base");
6
- /**
7
- * Weight Random Load Balancer
8
- *
9
- * @description
10
- * Algorithm:
11
- * 1. `S` = {S0, S1, S2, ..., Sn}, `W(Si)` = Si.weight
12
- * 2. selected_value = random_value % Sum(W(S))
13
- * 3. Sx = Pick(selected_value ∈ [Sum(W(S0)...W(Si-1)), Sum(W(S0)...W(Si))))
14
- * 4. return Sx
15
- */
16
- class WRLoadBalancer extends base_1.StatelessLoadBalancer {
17
- constructor() {
18
- super(...arguments);
19
- this.name = "WRLoadBalancer";
20
- }
21
- choose(namespace, service, instances) {
22
- // #region Round 1
23
- /*
24
- * Round 1:
25
- * 计算各节点实际权重
26
- */
27
- let totalWeight = 0;
28
- const weights = instances.map((instance) => {
29
- const weight = ~~this.instanceWeight(instance);
30
- totalWeight += weight;
31
- return weight;
32
- });
33
- // #endregion
34
- // #region Round 2
35
- const selectedValue = Math.random() * totalWeight;
36
- let begin = 0;
37
- let end = 0;
38
- for (let i = 0; i < weights.length; i += 1) {
39
- end = begin + weights[i];
40
- if (selectedValue >= begin && selectedValue < end) {
41
- return instances[i];
42
- }
43
- begin = end;
44
- }
45
- // #endregion
46
- (0, utils_1.UNREACHABLE)();
47
- }
48
- }
49
- exports.WRLoadBalancer = WRLoadBalancer;
50
- //# sourceMappingURL=wr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wr.js","sourceRoot":"","sources":["../../../src/plugins/lb/wr.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAC1C,iCAA6E;AAI7E;;;;;;;;;GASG;AACH,MAAa,cAAe,SAAQ,4BAAqB;IAAzD;;QACW,SAAI,GAAW,gBAAgB,CAAC;IA+B3C,CAAC;IA7BC,MAAM,CAAC,SAAiB,EAAE,OAAe,EAAE,SAAqB;QAC9D,kBAAkB;QAClB;;;WAGG;QACH,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC/C,WAAW,IAAI,MAAM,CAAC;YACtB,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,aAAa;QAEb,kBAAkB;QAClB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC;QAClD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC1C,GAAG,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,aAAa,IAAI,KAAK,IAAI,aAAa,GAAG,GAAG,EAAE;gBACjD,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;aACrB;YACD,KAAK,GAAG,GAAG,CAAC;SACb;QACD,aAAa;QAEb,IAAA,mBAAW,GAAE,CAAC;IAChB,CAAC;CACF;AAhCD,wCAgCC"}
@@ -1,19 +0,0 @@
1
- import { Instance } from "../../instance";
2
- import { StatelessLoadBalancer } from "./base";
3
- /**
4
- * Weighted Round-Robin Load Balancer
5
- *
6
- * @description
7
- * Algorithm:
8
- * 1. `S` = {S0, S1, S2, ..., Sn}, `W(Si)` = Si.weight
9
- * 2. CW(Si) = W(Si) / GCD(W(S))
10
- * 3. remaining_value = total_calls % Sum(CW(S))
11
- * 4. Sx = Pick(remaining_value ∈ [Sum(CW(S0)...CW(Si-1)), Sum(CW(S0)...CW(Si))))
12
- * 5. total_calls = total_calls + 1
13
- * 6. return Sx
14
- */
15
- export declare class WRRLoadBalancer extends StatelessLoadBalancer {
16
- readonly name: string;
17
- private readonly callStat;
18
- choose(namespace: string, service: string, instances: Instance[]): Instance;
19
- }