@tencent-rtc/mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/@tencent/aegis-node-sdk/CHANGELOG.md +8 -0
  2. package/@tencent/aegis-node-sdk/LICENSE +21 -0
  3. package/@tencent/aegis-node-sdk/README.md +562 -0
  4. package/@tencent/aegis-node-sdk/lib/aegis.min.js +1 -0
  5. package/@tencent/aegis-node-sdk/lib/packages/core/src/constant/config.d.ts +14 -0
  6. package/@tencent/aegis-node-sdk/lib/packages/core/src/constant/global.d.ts +1 -0
  7. package/@tencent/aegis-node-sdk/lib/packages/core/src/constant/index.d.ts +9 -0
  8. package/@tencent/aegis-node-sdk/lib/packages/core/src/constant/report-ignore.d.ts +2 -0
  9. package/@tencent/aegis-node-sdk/lib/packages/core/src/core.d.ts +85 -0
  10. package/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/afterRequestHooks.d.ts +3 -0
  11. package/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/beforeRequestHooks.d.ts +9 -0
  12. package/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/modifyRequestHooks.d.ts +3 -0
  13. package/@tencent/aegis-node-sdk/lib/packages/core/src/index.d.ts +9 -0
  14. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/config.d.ts +62 -0
  15. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/env.d.ts +11 -0
  16. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/index.d.ts +4 -0
  17. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/log.d.ts +130 -0
  18. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/send.d.ts +34 -0
  19. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/format.d.ts +2 -0
  20. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/index.d.ts +18 -0
  21. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/length-limit.d.ts +8 -0
  22. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/pv.d.ts +8 -0
  23. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/remove-payload.d.ts +2 -0
  24. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/repeat-limit.d.ts +4 -0
  25. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/report.d.ts +10 -0
  26. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/sample.d.ts +3 -0
  27. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/throttle.d.ts +3 -0
  28. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/index.d.ts +34 -0
  29. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/jwt.d.ts +12 -0
  30. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/ot-js.d.ts +14 -0
  31. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/uuid.d.ts +2 -0
  32. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/whitelist.d.ts +12 -0
  33. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/write-before.d.ts +3 -0
  34. package/@tencent/aegis-node-sdk/lib/packages/core/src/plugin.d.ts +33 -0
  35. package/@tencent/aegis-node-sdk/lib/packages/core/src/polyfill.d.ts +0 -0
  36. package/@tencent/aegis-node-sdk/lib/packages/core/src/util/destroy.d.ts +2 -0
  37. package/@tencent/aegis-node-sdk/lib/packages/core/src/util/event-emitter.d.ts +18 -0
  38. package/@tencent/aegis-node-sdk/lib/packages/core/src/util/index.d.ts +60 -0
  39. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/index.d.ts +15 -0
  40. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/interface/selector.d.ts +5 -0
  41. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/pipes/batch-report-pipe.d.ts +6 -0
  42. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/protocol/protocol_base.d.ts +18 -0
  43. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/protocol/protocol_http.d.ts +12 -0
  44. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/ip_selector.d.ts +10 -0
  45. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/polaris_selector.d.ts +20 -0
  46. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/selector_base.d.ts +27 -0
  47. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/util/eval_require.d.ts +2 -0
  48. package/@tencent/aegis-node-sdk/package.json +19 -0
  49. package/@tencent/polaris/README.md +407 -0
  50. package/@tencent/polaris/dist/consumer/health.d.ts +126 -0
  51. package/@tencent/polaris/dist/consumer/health.js +283 -0
  52. package/@tencent/polaris/dist/consumer/health.js.map +1 -0
  53. package/@tencent/polaris/dist/consumer/index.d.ts +120 -0
  54. package/@tencent/polaris/dist/consumer/index.js +348 -0
  55. package/@tencent/polaris/dist/consumer/index.js.map +1 -0
  56. package/@tencent/polaris/dist/consumer/monitor.d.ts +145 -0
  57. package/@tencent/polaris/dist/consumer/monitor.js +343 -0
  58. package/@tencent/polaris/dist/consumer/monitor.js.map +1 -0
  59. package/@tencent/polaris/dist/consumer/selector.d.ts +73 -0
  60. package/@tencent/polaris/dist/consumer/selector.js +316 -0
  61. package/@tencent/polaris/dist/consumer/selector.js.map +1 -0
  62. package/@tencent/polaris/dist/errors.d.ts +373 -0
  63. package/@tencent/polaris/dist/errors.js +154 -0
  64. package/@tencent/polaris/dist/errors.js.map +1 -0
  65. package/@tencent/polaris/dist/global.d.ts +16 -0
  66. package/@tencent/polaris/dist/global.js +18 -0
  67. package/@tencent/polaris/dist/global.js.map +1 -0
  68. package/@tencent/polaris/dist/index.d.ts +62 -0
  69. package/@tencent/polaris/dist/index.js +145 -0
  70. package/@tencent/polaris/dist/index.js.map +1 -0
  71. package/@tencent/polaris/dist/instance.d.ts +109 -0
  72. package/@tencent/polaris/dist/instance.js +38 -0
  73. package/@tencent/polaris/dist/instance.js.map +1 -0
  74. package/@tencent/polaris/dist/limiter/bucket.d.ts +51 -0
  75. package/@tencent/polaris/dist/limiter/bucket.js +152 -0
  76. package/@tencent/polaris/dist/limiter/bucket.js.map +1 -0
  77. package/@tencent/polaris/dist/limiter/index.d.ts +73 -0
  78. package/@tencent/polaris/dist/limiter/index.js +149 -0
  79. package/@tencent/polaris/dist/limiter/index.js.map +1 -0
  80. package/@tencent/polaris/dist/limiter/ratelimit.d.ts +27 -0
  81. package/@tencent/polaris/dist/limiter/ratelimit.js +134 -0
  82. package/@tencent/polaris/dist/limiter/ratelimit.js.map +1 -0
  83. package/@tencent/polaris/dist/limiter/ratelimiter/base.d.ts +17 -0
  84. package/@tencent/polaris/dist/limiter/ratelimiter/base.js +15 -0
  85. package/@tencent/polaris/dist/limiter/ratelimiter/base.js.map +1 -0
  86. package/@tencent/polaris/dist/limiter/ratelimiter/global.d.ts +59 -0
  87. package/@tencent/polaris/dist/limiter/ratelimiter/global.js +397 -0
  88. package/@tencent/polaris/dist/limiter/ratelimiter/global.js.map +1 -0
  89. package/@tencent/polaris/dist/limiter/ratelimiter/index.d.ts +3 -0
  90. package/@tencent/polaris/dist/limiter/ratelimiter/index.js +19 -0
  91. package/@tencent/polaris/dist/limiter/ratelimiter/index.js.map +1 -0
  92. package/@tencent/polaris/dist/limiter/ratelimiter/local.d.ts +17 -0
  93. package/@tencent/polaris/dist/limiter/ratelimiter/local.js +52 -0
  94. package/@tencent/polaris/dist/limiter/ratelimiter/local.js.map +1 -0
  95. package/@tencent/polaris/dist/location.d.ts +48 -0
  96. package/@tencent/polaris/dist/location.js +67 -0
  97. package/@tencent/polaris/dist/location.js.map +1 -0
  98. package/@tencent/polaris/dist/logging.d.ts +106 -0
  99. package/@tencent/polaris/dist/logging.js +130 -0
  100. package/@tencent/polaris/dist/logging.js.map +1 -0
  101. package/@tencent/polaris/dist/metadata.d.ts +78 -0
  102. package/@tencent/polaris/dist/metadata.js +119 -0
  103. package/@tencent/polaris/dist/metadata.js.map +1 -0
  104. package/@tencent/polaris/dist/plugins/breaker/polaris.d.ts +47 -0
  105. package/@tencent/polaris/dist/plugins/breaker/polaris.js +162 -0
  106. package/@tencent/polaris/dist/plugins/breaker/polaris.js.map +1 -0
  107. package/@tencent/polaris/dist/plugins/lb/base.d.ts +24 -0
  108. package/@tencent/polaris/dist/plugins/lb/base.js +32 -0
  109. package/@tencent/polaris/dist/plugins/lb/base.js.map +1 -0
  110. package/@tencent/polaris/dist/plugins/lb/edf.d.ts +24 -0
  111. package/@tencent/polaris/dist/plugins/lb/edf.js +77 -0
  112. package/@tencent/polaris/dist/plugins/lb/edf.js.map +1 -0
  113. package/@tencent/polaris/dist/plugins/lb/hashring.d.ts +24 -0
  114. package/@tencent/polaris/dist/plugins/lb/hashring.js +53 -0
  115. package/@tencent/polaris/dist/plugins/lb/hashring.js.map +1 -0
  116. package/@tencent/polaris/dist/plugins/lb/sticky.d.ts +31 -0
  117. package/@tencent/polaris/dist/plugins/lb/sticky.js +88 -0
  118. package/@tencent/polaris/dist/plugins/lb/sticky.js.map +1 -0
  119. package/@tencent/polaris/dist/plugins/lb/swrr.d.ts +25 -0
  120. package/@tencent/polaris/dist/plugins/lb/swrr.js +72 -0
  121. package/@tencent/polaris/dist/plugins/lb/swrr.js.map +1 -0
  122. package/@tencent/polaris/dist/plugins/lb/wr.d.ts +17 -0
  123. package/@tencent/polaris/dist/plugins/lb/wr.js +50 -0
  124. package/@tencent/polaris/dist/plugins/lb/wr.js.map +1 -0
  125. package/@tencent/polaris/dist/plugins/lb/wrr.d.ts +19 -0
  126. package/@tencent/polaris/dist/plugins/lb/wrr.js +81 -0
  127. package/@tencent/polaris/dist/plugins/lb/wrr.js.map +1 -0
  128. package/@tencent/polaris/dist/plugins/logging/console.d.ts +10 -0
  129. package/@tencent/polaris/dist/plugins/logging/console.js +38 -0
  130. package/@tencent/polaris/dist/plugins/logging/console.js.map +1 -0
  131. package/@tencent/polaris/dist/plugins/naming/local-server/index.d.ts +32 -0
  132. package/@tencent/polaris/dist/plugins/naming/local-server/index.js +88 -0
  133. package/@tencent/polaris/dist/plugins/naming/local-server/index.js.map +1 -0
  134. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/base.d.ts +124 -0
  135. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/base.js +398 -0
  136. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/base.js.map +1 -0
  137. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/discover.d.ts +27 -0
  138. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/discover.js +287 -0
  139. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/discover.js.map +1 -0
  140. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/index.d.ts +15 -0
  141. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/index.js +43 -0
  142. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/index.js.map +1 -0
  143. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/monitor.d.ts +28 -0
  144. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/monitor.js +249 -0
  145. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/monitor.js.map +1 -0
  146. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/ratelimit.d.ts +19 -0
  147. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/ratelimit.js +222 -0
  148. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/ratelimit.js.map +1 -0
  149. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/bidi.d.ts +26 -0
  150. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/bidi.js +99 -0
  151. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/bidi.js.map +1 -0
  152. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/index.d.ts +60 -0
  153. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/index.js +259 -0
  154. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/index.js.map +1 -0
  155. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/pb/discover.proto +24 -0
  156. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/pb/monitor.proto +18 -0
  157. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/pb/ratelimit.proto +12 -0
  158. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/http/index.d.ts +39 -0
  159. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/http/index.js +115 -0
  160. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/http/index.js.map +1 -0
  161. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/api.proto +24 -0
  162. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/client.proto +22 -0
  163. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/model.proto +28 -0
  164. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/ratelimit.proto +80 -0
  165. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/request.proto +18 -0
  166. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/response.proto +65 -0
  167. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/routing.proto +66 -0
  168. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/service.proto +95 -0
  169. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/types.d.ts +1568 -0
  170. package/@tencent/polaris/dist/plugins/naming/polaris-server/index.d.ts +36 -0
  171. package/@tencent/polaris/dist/plugins/naming/polaris-server/index.js +51 -0
  172. package/@tencent/polaris/dist/plugins/naming/polaris-server/index.js.map +1 -0
  173. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/api.proto +18 -0
  174. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/circuitbreak.proto +67 -0
  175. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/request.proto +82 -0
  176. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/response.proto +11 -0
  177. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/sdkcache.proto +46 -0
  178. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/sdkconfiguration.proto +16 -0
  179. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/sdktoken.proto +10 -0
  180. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/types.d.ts +1102 -0
  181. package/@tencent/polaris/dist/plugins/naming/polaris-server/pool.d.ts +29 -0
  182. package/@tencent/polaris/dist/plugins/naming/polaris-server/pool.js +77 -0
  183. package/@tencent/polaris/dist/plugins/naming/polaris-server/pool.js.map +1 -0
  184. package/@tencent/polaris/dist/plugins/naming/polaris-server/ratelimit-pb/api.proto +12 -0
  185. package/@tencent/polaris/dist/plugins/naming/polaris-server/ratelimit-pb/ratelimit.proto +28 -0
  186. package/@tencent/polaris/dist/plugins/naming/polaris-server/ratelimit-pb/types.d.ts +395 -0
  187. package/@tencent/polaris/dist/plugins/naming/polaris-server/rules.d.ts +13 -0
  188. package/@tencent/polaris/dist/plugins/naming/polaris-server/rules.js +116 -0
  189. package/@tencent/polaris/dist/plugins/naming/polaris-server/rules.js.map +1 -0
  190. package/@tencent/polaris/dist/plugins/naming/polaris-server/types.d.ts +67 -0
  191. package/@tencent/polaris/dist/plugins/naming/polaris-server/types.js +67 -0
  192. package/@tencent/polaris/dist/plugins/naming/polaris-server/types.js.map +1 -0
  193. package/@tencent/polaris/dist/plugins/naming/polaris-server/utils.d.ts +99 -0
  194. package/@tencent/polaris/dist/plugins/naming/polaris-server/utils.js +217 -0
  195. package/@tencent/polaris/dist/plugins/naming/polaris-server/utils.js.map +1 -0
  196. package/@tencent/polaris/dist/plugins/registry/memory.d.ts +10 -0
  197. package/@tencent/polaris/dist/plugins/registry/memory.js +50 -0
  198. package/@tencent/polaris/dist/plugins/registry/memory.js.map +1 -0
  199. package/@tencent/polaris/dist/plugins/router/polaris/nearby.d.ts +51 -0
  200. package/@tencent/polaris/dist/plugins/router/polaris/nearby.js +145 -0
  201. package/@tencent/polaris/dist/plugins/router/polaris/nearby.js.map +1 -0
  202. package/@tencent/polaris/dist/plugins/router/polaris/rule.d.ts +11 -0
  203. package/@tencent/polaris/dist/plugins/router/polaris/rule.js +174 -0
  204. package/@tencent/polaris/dist/plugins/router/polaris/rule.js.map +1 -0
  205. package/@tencent/polaris/dist/plugins/router/trpc/canary.d.ts +25 -0
  206. package/@tencent/polaris/dist/plugins/router/trpc/canary.js +36 -0
  207. package/@tencent/polaris/dist/plugins/router/trpc/canary.js.map +1 -0
  208. package/@tencent/polaris/dist/plugins/router/trpc/env.d.ts +10 -0
  209. package/@tencent/polaris/dist/plugins/router/trpc/env.js +34 -0
  210. package/@tencent/polaris/dist/plugins/router/trpc/env.js.map +1 -0
  211. package/@tencent/polaris/dist/plugins/router/trpc/set.d.ts +56 -0
  212. package/@tencent/polaris/dist/plugins/router/trpc/set.js +106 -0
  213. package/@tencent/polaris/dist/plugins/router/trpc/set.js.map +1 -0
  214. package/@tencent/polaris/dist/plugins/shaping/unirate.d.ts +31 -0
  215. package/@tencent/polaris/dist/plugins/shaping/unirate.js +124 -0
  216. package/@tencent/polaris/dist/plugins/shaping/unirate.js.map +1 -0
  217. package/@tencent/polaris/dist/plugins/shaping/warmup.d.ts +61 -0
  218. package/@tencent/polaris/dist/plugins/shaping/warmup.js +171 -0
  219. package/@tencent/polaris/dist/plugins/shaping/warmup.js.map +1 -0
  220. package/@tencent/polaris/dist/plugins/weight/polaris.d.ts +23 -0
  221. package/@tencent/polaris/dist/plugins/weight/polaris.js +159 -0
  222. package/@tencent/polaris/dist/plugins/weight/polaris.js.map +1 -0
  223. package/@tencent/polaris/dist/plugins.d.ts +619 -0
  224. package/@tencent/polaris/dist/plugins.js +91 -0
  225. package/@tencent/polaris/dist/plugins.js.map +1 -0
  226. package/@tencent/polaris/dist/polaris.d.ts +33 -0
  227. package/@tencent/polaris/dist/polaris.js +59 -0
  228. package/@tencent/polaris/dist/polaris.js.map +1 -0
  229. package/@tencent/polaris/dist/provider/index.d.ts +102 -0
  230. package/@tencent/polaris/dist/provider/index.js +168 -0
  231. package/@tencent/polaris/dist/provider/index.js.map +1 -0
  232. package/@tencent/polaris/dist/registry.d.ts +174 -0
  233. package/@tencent/polaris/dist/registry.js +660 -0
  234. package/@tencent/polaris/dist/registry.js.map +1 -0
  235. package/@tencent/polaris/dist/rules.d.ts +163 -0
  236. package/@tencent/polaris/dist/rules.js +24 -0
  237. package/@tencent/polaris/dist/rules.js.map +1 -0
  238. package/@tencent/polaris/dist/scripts/postinstall.d.ts +1 -0
  239. package/@tencent/polaris/dist/scripts/postinstall.js +71 -0
  240. package/@tencent/polaris/dist/scripts/postinstall.js.map +1 -0
  241. package/@tencent/polaris/dist/service.d.ts +18 -0
  242. package/@tencent/polaris/dist/service.js +3 -0
  243. package/@tencent/polaris/dist/service.js.map +1 -0
  244. package/@tencent/polaris/dist/skeleton.d.ts +87 -0
  245. package/@tencent/polaris/dist/skeleton.js +282 -0
  246. package/@tencent/polaris/dist/skeleton.js.map +1 -0
  247. package/@tencent/polaris/dist/utils.d.ts +36 -0
  248. package/@tencent/polaris/dist/utils.js +74 -0
  249. package/@tencent/polaris/dist/utils.js.map +1 -0
  250. package/@tencent/polaris/dist/weak.d.ts +11 -0
  251. package/@tencent/polaris/dist/weak.js +44 -0
  252. package/@tencent/polaris/dist/weak.js.map +1 -0
  253. package/@tencent/polaris/package.json +114 -0
  254. package/README.md +61 -0
  255. package/cursor-setting.png +0 -0
  256. package/index.js +16 -0
  257. package/index.js.map +1 -0
  258. package/mcp-server-prompt.png +0 -0
  259. package/mcp.json +8 -0
  260. package/package.json +49 -0
  261. package/resource/doc/tuicallkit/android/.gitkeep +0 -0
  262. package/resource/doc/tuicallkit/android/api_TUICallKit.md +610 -0
  263. package/resource/doc/tuicallkit/android/api_TUICallObserver.md +784 -0
  264. package/resource/doc/tuicallkit/android/how_to_integrated_android_callkit.md +286 -0
  265. package/resource/doc/tuicallkit/faq/faq.md +127 -0
  266. package/resource/doc/tuicallkit/flutter/api_TUICallDefine.md +938 -0
  267. package/resource/doc/tuicallkit/flutter/api_TUICallKit.md +469 -0
  268. package/resource/doc/tuicallkit/flutter/api_TUICallObserver.md +897 -0
  269. package/resource/doc/tuicallkit/flutter/how_to_integrated_flutter_callkit.md +226 -0
  270. package/resource/doc/tuicallkit/flutter/how_to_run_flutter_callkit_demo.md +101 -0
  271. package/resource/doc/tuicallkit/iOS/api_TUICallKit.md +398 -0
  272. package/resource/doc/tuicallkit/iOS/api_TUICallObserver.md +781 -0
  273. package/resource/doc/tuicallkit/iOS/how_to_integrated_iOS_callkit.md +268 -0
  274. package/resource/doc/tuicallkit/iOS/how_to_run_iOS_callkit_demo.md +98 -0
  275. package/resource/doc/tuicallkit/react/.gitkeep +0 -0
  276. package/resource/doc/tuicallkit/react/api_TUICallKit.md +354 -0
  277. package/resource/doc/tuicallkit/react/how_to_integrated_react_callkit.md +166 -0
  278. package/resource/doc/tuicallkit/react/how_to_run_react_callkit_demo.md +61 -0
  279. package/resource/doc/tuicallkit/vue/.gitkeep +0 -0
  280. package/resource/doc/tuicallkit/vue/api_TUICallKit.md +354 -0
  281. package/resource/doc/tuicallkit/vue/how_to_integrated_vue_callkit.md +187 -0
  282. package/resource/doc/tuicallkit/vue/how_to_run_vue_callkit_demo.md +61 -0
  283. package/server.js +132 -0
  284. package/server.js.map +1 -0
  285. package/streamableHttp.js +74 -0
  286. package/streamableHttp.js.map +1 -0
@@ -0,0 +1,316 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExternalSelector = exports.InternalSelector = void 0;
4
+ const errors_1 = require("../errors");
5
+ const instance_1 = require("../instance");
6
+ const location_1 = require("../location");
7
+ const metadata_1 = require("../metadata");
8
+ const plugins_1 = require("../plugins");
9
+ const kDefaultOptions = {
10
+ /**
11
+ * 探活任务最大探测次数
12
+ */
13
+ maxProbes: 3,
14
+ /**
15
+ * 是否启用全死全活,当节点全部不健康时,是否返回
16
+ */
17
+ enableRecover: true
18
+ };
19
+ /**
20
+ * @description
21
+ * 实例选取规则:
22
+ * in ---> [Router Chain] ---> out
23
+ */
24
+ class InternalSelector {
25
+ constructor(global, logger, health, registry, routers, lb, options) {
26
+ this.global = global;
27
+ this.logger = logger;
28
+ this.health = health;
29
+ this.registry = registry;
30
+ this.routers = routers;
31
+ this.lb = lb;
32
+ this.fuseStat = Object.create(null);
33
+ this.requisite = plugins_1.RequisiteBitfield.None;
34
+ this.disposed = false;
35
+ this.options = Object.assign(Object.assign({}, kDefaultOptions), options);
36
+ /**
37
+ * 合并全部路由插件所需的前置要求
38
+ */
39
+ this.requisite = this.routers.reduce((acc, cur) => acc | cur.requisite, plugins_1.RequisiteBitfield.None);
40
+ }
41
+ dispose() {
42
+ this.disposed = true;
43
+ }
44
+ async select(callee, caller, args = {}) {
45
+ if (this.disposed) {
46
+ throw new errors_1.StateError("Already disposed");
47
+ }
48
+ const { logger } = this;
49
+ const { transaction } = logger;
50
+ let rules;
51
+ // #region RequisiteBitfield.Rule
52
+ if (this.requisite & plugins_1.RequisiteBitfield.Rule) {
53
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "select", transaction, "start fetch callee routing rule");
54
+ const promises = [this.registry.fetch(plugins_1.RegistryCategory.Rule, callee.namespace, callee.service)];
55
+ if (caller) {
56
+ const { namespace, service } = caller;
57
+ /**
58
+ * 主调 `namespace` 与 `service` 均填写才查询规则,
59
+ * 否则仅使用 `metadata` 与规则的 `sources.metadata` 进行匹配
60
+ */
61
+ if (namespace && service) {
62
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "select", transaction, "start fetch caller routing rule");
63
+ promises.push(this.registry.fetch(plugins_1.RegistryCategory.Rule, caller.namespace, caller.service));
64
+ }
65
+ }
66
+ /**
67
+ * 规则路由仅对一方生效
68
+ * 入站规则 `in` 优先于出站规则 `out`
69
+ */
70
+ ({ in: rules } = await promises[0]);
71
+ if (promises.length > 1) {
72
+ if (rules.length === 0) {
73
+ ({ out: rules } = await promises[1]);
74
+ }
75
+ else {
76
+ promises[1].catch(() => { });
77
+ }
78
+ }
79
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "select", transaction, "combined callee and caller routing rule:", rules);
80
+ }
81
+ else {
82
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "select", transaction, "plugins do not require routing rule");
83
+ }
84
+ // #endregion
85
+ const { filtered, recovered, service, transfer } = await this.routing(callee, rules, caller, args[plugins_1.PluginType.ServiceRouter]);
86
+ /**
87
+ * 如果存在 `transfer` 转发,
88
+ * 则将 `transfer` 作为目标服务名,再次调用查询。
89
+ * _当前查询作废(不再进行任何匹配),以新查询结果作为返回_
90
+ */
91
+ if (transfer) {
92
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "select", transaction, "transfer to service:", transfer);
93
+ callee.service = transfer;
94
+ return this.select(callee, caller, args);
95
+ }
96
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "select", transaction, "routing plugins filtered instances is", filtered);
97
+ if (filtered.length > 0) { /** hot path */
98
+ if (recovered) {
99
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "select", transaction, "recovered all instances");
100
+ /*
101
+ * note:
102
+ * 为了更快返回,这里采用异步上报
103
+ */
104
+ setImmediate(() => {
105
+ this.health.recoverAll(callee.namespace, service, filtered);
106
+ });
107
+ }
108
+ const instances = this.choose(callee.namespace, service, filtered, args[plugins_1.PluginType.LoadBalancer]);
109
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "select", transaction, "lb plugin choosen and method returned instance is", filtered);
110
+ return instances;
111
+ }
112
+ return null;
113
+ }
114
+ async list(namespace, service) {
115
+ if (this.disposed) {
116
+ throw new errors_1.StateError("Already disposed");
117
+ }
118
+ return this.registry.fetch(plugins_1.RegistryCategory.Instance, namespace, service);
119
+ }
120
+ async rules(namespace, service) {
121
+ if (this.disposed) {
122
+ throw new errors_1.StateError("Already disposed");
123
+ }
124
+ return this.registry.fetch(plugins_1.RegistryCategory.Rule, namespace, service);
125
+ }
126
+ async executor(callee, destination, source, instances = []) {
127
+ const { service, metadata, level } = destination;
128
+ let requestedService = "";
129
+ let pickedInstances = instances;
130
+ // #region Step 1 - 当备选实例为空时,通过服务名获取服务所有实例
131
+ if (instances.length === 0) {
132
+ /**
133
+ * `service` 不存在、为空或为 `"*""` 时,则认为可访问用户请求的目标服务
134
+ */
135
+ requestedService = !service || service === "*" ? callee.service : service;
136
+ pickedInstances = await this.registry.fetch(plugins_1.RegistryCategory.Instance, callee.namespace, requestedService);
137
+ }
138
+ if (pickedInstances.length === 0) {
139
+ return {
140
+ instances: [],
141
+ service: requestedService
142
+ };
143
+ }
144
+ // #endregion
145
+ // #region Step 2 - 匹配 `Metadata` 规则
146
+ if (metadata) {
147
+ pickedInstances = pickedInstances.filter(instance => { var _a; return (0, metadata_1.isMetadataMatch)(instance.metadata, metadata, this.global.globalVariables, (_a = source === null || source === void 0 ? void 0 : source.parameters) !== null && _a !== void 0 ? _a : {}); });
148
+ }
149
+ if (pickedInstances.length === 0) {
150
+ return {
151
+ instances: [],
152
+ service: requestedService
153
+ };
154
+ }
155
+ // #endregion
156
+ // #region Step 3 - 匹配 `Location` 位置信息
157
+ const { location } = this.registry;
158
+ if (location && level !== undefined) {
159
+ const nearbyInstances = pickedInstances.filter(instance => (0, location_1.isLocationMatch)(instance.location, location, level));
160
+ if (nearbyInstances.length > 0 || level !== 0 /* Region */) {
161
+ pickedInstances = nearbyInstances;
162
+ }
163
+ }
164
+ // #endregion
165
+ return {
166
+ instances: pickedInstances,
167
+ service: requestedService
168
+ };
169
+ }
170
+ /* eslint-enable @typescript-eslint/unified-signatures */
171
+ // eslint-disable-next-line max-lines-per-function
172
+ async routing(callee, rules, caller, args,
173
+ // #region for recursive call only
174
+ routers = this.routers, service = callee.service, filtered = []
175
+ // #endregion
176
+ ) {
177
+ var _a;
178
+ const { logger } = this;
179
+ const { transaction } = logger;
180
+ // #region 栈顶
181
+ if (routers.length === 0) {
182
+ let choosable = filtered.filter(instance => (0, instance_1.isChoosableInstance)(instance));
183
+ let recovered = false;
184
+ if (choosable.length === 0 && this.options.enableRecover) {
185
+ choosable = filtered;
186
+ recovered = true;
187
+ }
188
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "routing", transaction, "reached the top of the stack, and returned instances is", choosable);
189
+ return {
190
+ filtered: choosable,
191
+ service,
192
+ recovered
193
+ };
194
+ }
195
+ // #endregion
196
+ const [router] = routers;
197
+ let routingChain = routers.slice(1);
198
+ let currentInstances = [];
199
+ let currentService = "";
200
+ let hasFound = false;
201
+ let bypassThis = false;
202
+ for (const queryCommand of router.query(callee, rules, caller, args === null || args === void 0 ? void 0 : args[router.name])) {
203
+ const { source, destination, controller } = queryCommand;
204
+ if (logger.tracingEnabled) {
205
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "routing", transaction, `destination query command generated by plugin ${router.name}:`, queryCommand);
206
+ }
207
+ if (destination === null || destination === void 0 ? void 0 : destination.transfer) {
208
+ return {
209
+ filtered: [],
210
+ transfer: destination.transfer,
211
+ service
212
+ };
213
+ }
214
+ const result = await this.executor(callee, destination !== null && destination !== void 0 ? destination : { service: "*" }, source, filtered);
215
+ ({ instances: currentInstances, service: currentService } = result);
216
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "routing", transaction, "execute command and get instances is", currentInstances, "service is", currentService);
217
+ hasFound || (hasFound = currentInstances.length > 0);
218
+ let action;
219
+ if (typeof router.filter === "function") {
220
+ ({ filtered: currentInstances, action } = router.filter(currentInstances, queryCommand, args === null || args === void 0 ? void 0 : args[router.name]));
221
+ if (logger.tracingEnabled) {
222
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "routing", transaction, `plugin ${router.name} implemented filter method and get filtered instances is`, currentInstances);
223
+ }
224
+ }
225
+ // #region Controller
226
+ if (controller) {
227
+ action || (action = controller[hasFound ? plugins_1.RoutingCondition.Found : plugins_1.RoutingCondition.NotFound]);
228
+ }
229
+ let needBreak = false;
230
+ if (action) {
231
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "routing", transaction, "plugin output and override action is", action);
232
+ // #region RoutingAction.Break
233
+ needBreak = (_a = action[plugins_1.RoutingAction.Break]) !== null && _a !== void 0 ? _a : false;
234
+ // #endregion
235
+ // #region RoutingAction.Bypass
236
+ const bypassedRouters = action[plugins_1.RoutingAction.Bypass];
237
+ if (bypassedRouters) {
238
+ routingChain = routingChain.filter(node => bypassedRouters.indexOf(node.name) === -1);
239
+ if (bypassedRouters.indexOf(router.name) !== -1) {
240
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "routing", transaction, "bypass current routing layer");
241
+ currentInstances = filtered;
242
+ bypassThis = true;
243
+ }
244
+ }
245
+ // #endregion
246
+ }
247
+ // #endregion
248
+ if (needBreak || bypassThis || currentInstances.length > 0) {
249
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "routing", transaction, "stop query current plugin");
250
+ break;
251
+ }
252
+ }
253
+ currentService || (currentService = service);
254
+ if (currentInstances.length > 0 || (bypassThis && filtered.length === 0)) {
255
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "routing", transaction, "call next routing layer");
256
+ return this.routing(callee, rules, caller, args, routingChain, currentService, currentInstances);
257
+ }
258
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "routing", transaction, "returned empty instances");
259
+ return {
260
+ filtered: [],
261
+ service: currentService
262
+ };
263
+ }
264
+ choose(namespace, service, instances, args) {
265
+ const { logger } = this;
266
+ const instance = this.lb.choose(namespace, service, instances, args);
267
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "choose", "plugin choosen and returned instance is", instance);
268
+ /*
269
+ * 如负载均衡插件选出的实例状态为 `HalfOpen`,则根据实例调用次数进行不同的处理:
270
+ * * 实例调用次数小于 `maxProbes` 时:返回此实例,并将 _调用次数 + 1_
271
+ * * 实例调用次数等于 `maxProbes` 时:
272
+ * * 设置实例状态为半关闭 `HalfClose`
273
+ * * 将调用次数重置为 0
274
+ */
275
+ if (instance.status === 1 /* HalfOpen */) {
276
+ let fuseStat = this.fuseStat[`${namespace}.${service}`];
277
+ if (!fuseStat) {
278
+ fuseStat = new WeakMap();
279
+ this.fuseStat[`${namespace}.${service}`] = fuseStat;
280
+ }
281
+ const totalCall = (fuseStat.get(instance) || 0) + 1;
282
+ if (totalCall < this.options.maxProbes) {
283
+ fuseStat.set(instance, totalCall);
284
+ }
285
+ else if (totalCall === this.options.maxProbes) {
286
+ if (logger.tracingEnabled) {
287
+ logger.trace("Consumer" /* Consumer */, InternalSelector.name, "choose", "change instance status to HalfClose, because totalCall(${totalCall}) has reached maxProbes(${this.options.maxProbes})");
288
+ }
289
+ this.health.changeStatus(namespace, service, instance, 2 /* HalfClose */, `[selector] [choose], totalCall(${totalCall}) == maxProbes(${this.options.maxProbes})`);
290
+ fuseStat.set(instance, 0);
291
+ }
292
+ }
293
+ return instance;
294
+ }
295
+ }
296
+ exports.InternalSelector = InternalSelector;
297
+ class ExternalSelector {
298
+ constructor(naming) {
299
+ this.naming = naming;
300
+ /**
301
+ * (empty function)
302
+ */
303
+ }
304
+ async select(callee) {
305
+ return this.naming.select(callee.namespace, callee.service, callee.metadata);
306
+ }
307
+ async list(namespace, service) {
308
+ const { data: instances } = await this.naming.list(namespace, service);
309
+ return instances;
310
+ }
311
+ async rules(namespace, service) {
312
+ return (await this.naming.routingRules(namespace, service)).data;
313
+ }
314
+ }
315
+ exports.ExternalSelector = ExternalSelector;
316
+ //# sourceMappingURL=selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/consumer/selector.ts"],"names":[],"mappings":"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"}