@tencentcloud/sdk-mcp 1.2.6 → 1.2.8
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.
- package/package.json +1 -1
- package/resource/doc/chatuikit/faq/common/server_error_code.md +74 -0
- package/resource/doc/chatuikit/faq/{freq_qa.md → native_sdk/faq.md} +2 -1
- package/resource/doc/chatuikit/faq/web_sdk/error_code.md +47 -0
- package/resource/doc/chatuikit/faq/web_sdk/faq.md +115 -0
- package/resource/doc/chatuikit/flutter/faq.md +117 -0
- package/resource/doc/chatuikit/iOS/faq.md +117 -0
- package/resource/doc/chatuikit/react/faq.md +26 -0
- package/resource/doc/chatuikit/vue/faq.md +35 -0
- package/resource/doc/livekit/faq/common/error_code.md +89 -0
- package/resource/doc/roomkit/common/error_code.md +67 -0
- package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
- package/resource/doc/tuicallkit/android/faq.md +1000 -0
- package/resource/doc/tuicallkit/faq/common/error_code.md +47 -0
- package/resource/doc/tuicallkit/flutter/faq.md +981 -0
- package/resource/doc/tuicallkit/{faq → iOS}/faq.md +0 -72
- package/resource/doc/tuicallkit/react/faq.md +986 -0
- package/resource/doc/tuicallkit/vue/faq.md +986 -0
- package/tools/call/get-native-call-integration.js +4 -10
- package/tools/call/get-native-call-integration.js.map +1 -1
- package/tools/call/get-web-call-api.js +4 -7
- package/tools/call/get-web-call-api.js.map +1 -1
- package/tools/call/get-web-call-integration.js +4 -9
- package/tools/call/get-web-call-integration.js.map +1 -1
- package/tools/chat/get-native-chat-integration.js +4 -8
- package/tools/chat/get-native-chat-integration.js.map +1 -1
- package/tools/chat/get-web-chat-component-detail.js +5 -10
- package/tools/chat/get-web-chat-component-detail.js.map +1 -1
- package/tools/chat/get-web-chat-integration.js +4 -12
- package/tools/chat/get-web-chat-integration.js.map +1 -1
- package/tools/chat/get-web-chat-uikit-init.js +5 -6
- package/tools/chat/get-web-chat-uikit-init.js.map +1 -1
- package/tools/chat/get-web-chat-window-integration.js +4 -12
- package/tools/chat/get-web-chat-window-integration.js.map +1 -1
- package/tools/chat/{create-group.js → get-web-create-group-doc.js} +5 -6
- package/tools/chat/get-web-create-group-doc.js.map +1 -0
- package/tools/common/get-faq.js +93 -0
- package/tools/common/get-faq.js.map +1 -0
- package/tools/common/get-usersig.js +9 -18
- package/tools/common/get-usersig.js.map +1 -1
- package/tools/common/present-framework-choice.js +3 -10
- package/tools/common/present-framework-choice.js.map +1 -1
- package/tools/common/record-prompt.js +5 -12
- package/tools/common/record-prompt.js.map +1 -1
- package/tools/common/record-result.js +7 -11
- package/tools/common/record-result.js.map +1 -1
- package/tools/definitions/get_faq_def.js +28 -0
- package/tools/definitions/get_faq_def.js.map +1 -0
- package/tools/definitions/get_native_call_uikit_integration_def.js +21 -0
- package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -0
- package/tools/definitions/get_native_chat_uikit_integration_def.js +21 -0
- package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -0
- package/tools/definitions/get_usersig_def.js +34 -0
- package/tools/definitions/get_usersig_def.js.map +1 -0
- package/tools/definitions/get_web_call_uikit_api_def.js +23 -0
- package/tools/definitions/get_web_call_uikit_api_def.js.map +1 -0
- package/tools/definitions/get_web_call_uikit_integration_def.js +20 -0
- package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -0
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js +24 -0
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +1 -0
- package/tools/definitions/get_web_chat_uikit_init_def.js +23 -0
- package/tools/definitions/get_web_chat_uikit_init_def.js.map +1 -0
- package/tools/definitions/get_web_chat_uikit_integration_def.js +26 -0
- package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -0
- package/tools/definitions/get_web_chat_window_integration_def.js +26 -0
- package/tools/definitions/get_web_chat_window_integration_def.js.map +1 -0
- package/tools/definitions/get_web_create_group_doc_def.js +18 -0
- package/tools/definitions/get_web_create_group_doc_def.js.map +1 -0
- package/tools/definitions/get_web_live_state_detail_def.js +19 -0
- package/tools/definitions/get_web_live_state_detail_def.js.map +1 -0
- package/tools/definitions/get_web_live_uikit_component_detail_def.js +21 -0
- package/tools/definitions/get_web_live_uikit_component_detail_def.js.map +1 -0
- package/tools/definitions/get_web_room_state_detail_def.js +19 -0
- package/tools/definitions/get_web_room_state_detail_def.js.map +1 -0
- package/tools/definitions/present_framework_choice_def.js +24 -0
- package/tools/definitions/present_framework_choice_def.js.map +1 -0
- package/tools/definitions/record_prompt_def.js +22 -0
- package/tools/definitions/record_prompt_def.js.map +1 -0
- package/tools/definitions/record_result_def.js +22 -0
- package/tools/definitions/record_result_def.js.map +1 -0
- package/tools/index.js +7 -9
- package/tools/index.js.map +1 -1
- package/tools/live/get-web-live-component-detail.js +5 -7
- package/tools/live/get-web-live-component-detail.js.map +1 -1
- package/tools/live/get-web-live-state-detail.js +5 -7
- package/tools/live/get-web-live-state-detail.js.map +1 -1
- package/tools/room/get-web-room-state-detail.js +5 -7
- package/tools/room/get-web-room-state-detail.js.map +1 -1
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
- package/libs/@tencent/aegis-node-sdk/CHANGELOG.md +0 -8
- package/libs/@tencent/aegis-node-sdk/LICENSE +0 -21
- package/libs/@tencent/aegis-node-sdk/README.md +0 -562
- package/libs/@tencent/aegis-node-sdk/lib/aegis.min.js +0 -1
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/constant/config.d.ts +0 -14
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/constant/global.d.ts +0 -1
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/constant/index.d.ts +0 -9
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/constant/report-ignore.d.ts +0 -2
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/core.d.ts +0 -85
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/afterRequestHooks.d.ts +0 -3
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/beforeRequestHooks.d.ts +0 -9
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/modifyRequestHooks.d.ts +0 -3
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/index.d.ts +0 -9
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/interface/config.d.ts +0 -62
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/interface/env.d.ts +0 -11
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/interface/index.d.ts +0 -4
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/interface/log.d.ts +0 -130
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/interface/send.d.ts +0 -34
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/format.d.ts +0 -2
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/index.d.ts +0 -18
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/length-limit.d.ts +0 -8
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/pv.d.ts +0 -8
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/remove-payload.d.ts +0 -2
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/repeat-limit.d.ts +0 -4
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/report.d.ts +0 -10
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/sample.d.ts +0 -3
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/throttle.d.ts +0 -3
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/index.d.ts +0 -34
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/jwt.d.ts +0 -12
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/ot-js.d.ts +0 -14
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/uuid.d.ts +0 -2
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/whitelist.d.ts +0 -12
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/write-before.d.ts +0 -3
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/plugin.d.ts +0 -33
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/util/destroy.d.ts +0 -2
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/util/event-emitter.d.ts +0 -18
- package/libs/@tencent/aegis-node-sdk/lib/packages/core/src/util/index.d.ts +0 -60
- package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/index.d.ts +0 -15
- package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/interface/selector.d.ts +0 -5
- package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/pipes/batch-report-pipe.d.ts +0 -6
- package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/protocol/protocol_base.d.ts +0 -18
- package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/protocol/protocol_http.d.ts +0 -12
- package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/ip_selector.d.ts +0 -10
- package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/polaris_selector.d.ts +0 -20
- package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/selector_base.d.ts +0 -27
- package/libs/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/util/eval_require.d.ts +0 -2
- package/libs/@tencent/aegis-node-sdk/package.json +0 -19
- package/libs/@tencent/polaris/README.md +0 -407
- package/libs/@tencent/polaris/dist/consumer/health.d.ts +0 -126
- package/libs/@tencent/polaris/dist/consumer/health.js +0 -283
- package/libs/@tencent/polaris/dist/consumer/health.js.map +0 -1
- package/libs/@tencent/polaris/dist/consumer/index.d.ts +0 -120
- package/libs/@tencent/polaris/dist/consumer/index.js +0 -348
- package/libs/@tencent/polaris/dist/consumer/index.js.map +0 -1
- package/libs/@tencent/polaris/dist/consumer/monitor.d.ts +0 -145
- package/libs/@tencent/polaris/dist/consumer/monitor.js +0 -343
- package/libs/@tencent/polaris/dist/consumer/monitor.js.map +0 -1
- package/libs/@tencent/polaris/dist/consumer/selector.d.ts +0 -73
- package/libs/@tencent/polaris/dist/consumer/selector.js +0 -316
- package/libs/@tencent/polaris/dist/consumer/selector.js.map +0 -1
- package/libs/@tencent/polaris/dist/errors.d.ts +0 -373
- package/libs/@tencent/polaris/dist/errors.js +0 -154
- package/libs/@tencent/polaris/dist/errors.js.map +0 -1
- package/libs/@tencent/polaris/dist/global.d.ts +0 -16
- package/libs/@tencent/polaris/dist/global.js +0 -18
- package/libs/@tencent/polaris/dist/global.js.map +0 -1
- package/libs/@tencent/polaris/dist/index.d.ts +0 -62
- package/libs/@tencent/polaris/dist/index.js +0 -145
- package/libs/@tencent/polaris/dist/index.js.map +0 -1
- package/libs/@tencent/polaris/dist/instance.d.ts +0 -109
- package/libs/@tencent/polaris/dist/instance.js +0 -38
- package/libs/@tencent/polaris/dist/instance.js.map +0 -1
- package/libs/@tencent/polaris/dist/limiter/bucket.d.ts +0 -51
- package/libs/@tencent/polaris/dist/limiter/bucket.js +0 -152
- package/libs/@tencent/polaris/dist/limiter/bucket.js.map +0 -1
- package/libs/@tencent/polaris/dist/limiter/index.d.ts +0 -73
- package/libs/@tencent/polaris/dist/limiter/index.js +0 -149
- package/libs/@tencent/polaris/dist/limiter/index.js.map +0 -1
- package/libs/@tencent/polaris/dist/limiter/ratelimit.d.ts +0 -27
- package/libs/@tencent/polaris/dist/limiter/ratelimit.js +0 -134
- package/libs/@tencent/polaris/dist/limiter/ratelimit.js.map +0 -1
- package/libs/@tencent/polaris/dist/limiter/ratelimiter/base.d.ts +0 -17
- package/libs/@tencent/polaris/dist/limiter/ratelimiter/base.js +0 -15
- package/libs/@tencent/polaris/dist/limiter/ratelimiter/base.js.map +0 -1
- package/libs/@tencent/polaris/dist/limiter/ratelimiter/global.d.ts +0 -59
- package/libs/@tencent/polaris/dist/limiter/ratelimiter/global.js +0 -397
- package/libs/@tencent/polaris/dist/limiter/ratelimiter/global.js.map +0 -1
- package/libs/@tencent/polaris/dist/limiter/ratelimiter/index.d.ts +0 -3
- package/libs/@tencent/polaris/dist/limiter/ratelimiter/index.js +0 -19
- package/libs/@tencent/polaris/dist/limiter/ratelimiter/index.js.map +0 -1
- package/libs/@tencent/polaris/dist/limiter/ratelimiter/local.d.ts +0 -17
- package/libs/@tencent/polaris/dist/limiter/ratelimiter/local.js +0 -52
- package/libs/@tencent/polaris/dist/limiter/ratelimiter/local.js.map +0 -1
- package/libs/@tencent/polaris/dist/location.d.ts +0 -48
- package/libs/@tencent/polaris/dist/location.js +0 -67
- package/libs/@tencent/polaris/dist/location.js.map +0 -1
- package/libs/@tencent/polaris/dist/logging.d.ts +0 -106
- package/libs/@tencent/polaris/dist/logging.js +0 -130
- package/libs/@tencent/polaris/dist/logging.js.map +0 -1
- package/libs/@tencent/polaris/dist/metadata.d.ts +0 -78
- package/libs/@tencent/polaris/dist/metadata.js +0 -119
- package/libs/@tencent/polaris/dist/metadata.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/breaker/polaris.d.ts +0 -47
- package/libs/@tencent/polaris/dist/plugins/breaker/polaris.js +0 -162
- package/libs/@tencent/polaris/dist/plugins/breaker/polaris.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/lb/base.d.ts +0 -24
- package/libs/@tencent/polaris/dist/plugins/lb/base.js +0 -32
- package/libs/@tencent/polaris/dist/plugins/lb/base.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/lb/edf.d.ts +0 -24
- package/libs/@tencent/polaris/dist/plugins/lb/edf.js +0 -77
- package/libs/@tencent/polaris/dist/plugins/lb/edf.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/lb/hashring.d.ts +0 -24
- package/libs/@tencent/polaris/dist/plugins/lb/hashring.js +0 -53
- package/libs/@tencent/polaris/dist/plugins/lb/hashring.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/lb/sticky.d.ts +0 -31
- package/libs/@tencent/polaris/dist/plugins/lb/sticky.js +0 -88
- package/libs/@tencent/polaris/dist/plugins/lb/sticky.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/lb/swrr.d.ts +0 -25
- package/libs/@tencent/polaris/dist/plugins/lb/swrr.js +0 -72
- package/libs/@tencent/polaris/dist/plugins/lb/swrr.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/lb/wr.d.ts +0 -17
- package/libs/@tencent/polaris/dist/plugins/lb/wr.js +0 -50
- package/libs/@tencent/polaris/dist/plugins/lb/wr.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/lb/wrr.d.ts +0 -19
- package/libs/@tencent/polaris/dist/plugins/lb/wrr.js +0 -81
- package/libs/@tencent/polaris/dist/plugins/lb/wrr.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/logging/console.d.ts +0 -10
- package/libs/@tencent/polaris/dist/plugins/logging/console.js +0 -38
- package/libs/@tencent/polaris/dist/plugins/logging/console.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/local-server/index.d.ts +0 -32
- package/libs/@tencent/polaris/dist/plugins/naming/local-server/index.js +0 -88
- package/libs/@tencent/polaris/dist/plugins/naming/local-server/index.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/base.d.ts +0 -124
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/base.js +0 -398
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/base.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/discover.d.ts +0 -27
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/discover.js +0 -287
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/discover.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/index.d.ts +0 -15
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/index.js +0 -43
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/index.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/monitor.d.ts +0 -28
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/monitor.js +0 -249
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/monitor.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/ratelimit.d.ts +0 -19
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/ratelimit.js +0 -222
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/ratelimit.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/bidi.d.ts +0 -26
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/bidi.js +0 -99
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/bidi.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/index.d.ts +0 -60
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/index.js +0 -259
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/index.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/pb/discover.proto +0 -24
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/pb/monitor.proto +0 -18
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/pb/ratelimit.proto +0 -12
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/http/index.d.ts +0 -39
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/http/index.js +0 -115
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/connector/http/index.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/api.proto +0 -24
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/client.proto +0 -22
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/model.proto +0 -28
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/ratelimit.proto +0 -80
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/request.proto +0 -18
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/response.proto +0 -65
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/routing.proto +0 -66
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/service.proto +0 -95
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/types.d.ts +0 -1568
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/index.d.ts +0 -36
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/index.js +0 -51
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/index.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/api.proto +0 -18
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/circuitbreak.proto +0 -67
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/request.proto +0 -82
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/response.proto +0 -11
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/sdkcache.proto +0 -46
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/sdkconfiguration.proto +0 -16
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/sdktoken.proto +0 -10
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/types.d.ts +0 -1102
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/pool.d.ts +0 -29
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/pool.js +0 -77
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/pool.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/ratelimit-pb/api.proto +0 -12
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/ratelimit-pb/ratelimit.proto +0 -28
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/ratelimit-pb/types.d.ts +0 -395
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/rules.d.ts +0 -13
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/rules.js +0 -116
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/rules.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/types.d.ts +0 -67
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/types.js +0 -67
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/types.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/utils.d.ts +0 -99
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/utils.js +0 -217
- package/libs/@tencent/polaris/dist/plugins/naming/polaris-server/utils.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/registry/memory.d.ts +0 -10
- package/libs/@tencent/polaris/dist/plugins/registry/memory.js +0 -50
- package/libs/@tencent/polaris/dist/plugins/registry/memory.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/router/polaris/nearby.d.ts +0 -51
- package/libs/@tencent/polaris/dist/plugins/router/polaris/nearby.js +0 -145
- package/libs/@tencent/polaris/dist/plugins/router/polaris/nearby.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/router/polaris/rule.d.ts +0 -11
- package/libs/@tencent/polaris/dist/plugins/router/polaris/rule.js +0 -174
- package/libs/@tencent/polaris/dist/plugins/router/polaris/rule.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/router/trpc/canary.d.ts +0 -25
- package/libs/@tencent/polaris/dist/plugins/router/trpc/canary.js +0 -36
- package/libs/@tencent/polaris/dist/plugins/router/trpc/canary.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/router/trpc/env.d.ts +0 -10
- package/libs/@tencent/polaris/dist/plugins/router/trpc/env.js +0 -34
- package/libs/@tencent/polaris/dist/plugins/router/trpc/env.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/router/trpc/set.d.ts +0 -56
- package/libs/@tencent/polaris/dist/plugins/router/trpc/set.js +0 -106
- package/libs/@tencent/polaris/dist/plugins/router/trpc/set.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/shaping/unirate.d.ts +0 -31
- package/libs/@tencent/polaris/dist/plugins/shaping/unirate.js +0 -124
- package/libs/@tencent/polaris/dist/plugins/shaping/unirate.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/shaping/warmup.d.ts +0 -61
- package/libs/@tencent/polaris/dist/plugins/shaping/warmup.js +0 -171
- package/libs/@tencent/polaris/dist/plugins/shaping/warmup.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins/weight/polaris.d.ts +0 -23
- package/libs/@tencent/polaris/dist/plugins/weight/polaris.js +0 -159
- package/libs/@tencent/polaris/dist/plugins/weight/polaris.js.map +0 -1
- package/libs/@tencent/polaris/dist/plugins.d.ts +0 -619
- package/libs/@tencent/polaris/dist/plugins.js +0 -91
- package/libs/@tencent/polaris/dist/plugins.js.map +0 -1
- package/libs/@tencent/polaris/dist/polaris.d.ts +0 -33
- package/libs/@tencent/polaris/dist/polaris.js +0 -59
- package/libs/@tencent/polaris/dist/polaris.js.map +0 -1
- package/libs/@tencent/polaris/dist/provider/index.d.ts +0 -102
- package/libs/@tencent/polaris/dist/provider/index.js +0 -168
- package/libs/@tencent/polaris/dist/provider/index.js.map +0 -1
- package/libs/@tencent/polaris/dist/registry.d.ts +0 -174
- package/libs/@tencent/polaris/dist/registry.js +0 -660
- package/libs/@tencent/polaris/dist/registry.js.map +0 -1
- package/libs/@tencent/polaris/dist/rules.d.ts +0 -163
- package/libs/@tencent/polaris/dist/rules.js +0 -24
- package/libs/@tencent/polaris/dist/rules.js.map +0 -1
- package/libs/@tencent/polaris/dist/scripts/postinstall.d.ts +0 -1
- package/libs/@tencent/polaris/dist/scripts/postinstall.js +0 -71
- package/libs/@tencent/polaris/dist/scripts/postinstall.js.map +0 -1
- package/libs/@tencent/polaris/dist/service.d.ts +0 -18
- package/libs/@tencent/polaris/dist/service.js +0 -3
- package/libs/@tencent/polaris/dist/service.js.map +0 -1
- package/libs/@tencent/polaris/dist/skeleton.d.ts +0 -87
- package/libs/@tencent/polaris/dist/skeleton.js +0 -282
- package/libs/@tencent/polaris/dist/skeleton.js.map +0 -1
- package/libs/@tencent/polaris/dist/utils.d.ts +0 -36
- package/libs/@tencent/polaris/dist/utils.js +0 -74
- package/libs/@tencent/polaris/dist/utils.js.map +0 -1
- package/libs/@tencent/polaris/dist/weak.d.ts +0 -11
- package/libs/@tencent/polaris/dist/weak.js +0 -44
- package/libs/@tencent/polaris/dist/weak.js.map +0 -1
- package/libs/@tencent/polaris/package.json +0 -114
- package/resource/doc/chatuikit/faq/web_qa.md +0 -118
- package/tools/call/get-call-faq.js +0 -29
- package/tools/call/get-call-faq.js.map +0 -1
- package/tools/chat/create-group.js.map +0 -1
- package/tools/chat/get-chat-faq.js +0 -29
- package/tools/chat/get-chat-faq.js.map +0 -1
- /package/resource/doc/chatuikit/{faq/sdk_qa.md → android/faq.md} +0 -0
- /package/{libs/@tencent/aegis-node-sdk/lib/packages/core/src/polyfill.d.ts → resource/doc/livekit/vue/faq.md} +0 -0
- /package/resource/doc/{chatuikit/faq/vue_qa.md → roomkit/vue/faq.md} +0 -0
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var _a, _b;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.Limiter = void 0;
|
|
5
|
-
const process_1 = require("process");
|
|
6
|
-
const errors_1 = require("../errors");
|
|
7
|
-
const plugins_1 = require("../plugins");
|
|
8
|
-
const console_1 = require("../plugins/logging/console");
|
|
9
|
-
const memory_1 = require("../plugins/registry/memory");
|
|
10
|
-
const unirate_1 = require("../plugins/shaping/unirate");
|
|
11
|
-
const warmup_1 = require("../plugins/shaping/warmup");
|
|
12
|
-
const registry_1 = require("../registry");
|
|
13
|
-
const skeleton_1 = require("../skeleton");
|
|
14
|
-
const utils_1 = require("../utils");
|
|
15
|
-
const ratelimit_1 = require("./ratelimit");
|
|
16
|
-
const isRatelimitServicePlugin = ((plugin) => (plugin.type & plugins_1.PluginType.RatelimitService) !== 0);
|
|
17
|
-
const kRatelimit = Symbol("kRatelimit");
|
|
18
|
-
const kRegistry = Symbol("kRegistry");
|
|
19
|
-
const kCurrentInstances = Symbol("kCurrentInstances");
|
|
20
|
-
const KMaxInstances = Symbol("KMaxInstances");
|
|
21
|
-
class Limiter extends skeleton_1.SkeletonClass {
|
|
22
|
-
/**
|
|
23
|
-
* Create Limiter
|
|
24
|
-
* @param plugins 插件
|
|
25
|
-
* @param options 配置参数(可选)
|
|
26
|
-
*/
|
|
27
|
-
constructor(plugins, options = {}) {
|
|
28
|
-
Limiter[kCurrentInstances] += 1;
|
|
29
|
-
if (Limiter[kCurrentInstances] >= Limiter[KMaxInstances]) {
|
|
30
|
-
(0, skeleton_1.emitMaxInstancesExceededWarning)("Consumer", Limiter[KMaxInstances]);
|
|
31
|
-
}
|
|
32
|
-
// #region plugins
|
|
33
|
-
const pluginList = {
|
|
34
|
-
[plugins_1.PluginType.RatelimitService]: plugins[plugins_1.PluginType.RatelimitService],
|
|
35
|
-
[plugins_1.PluginType.TrafficShaping]: (plugins[plugins_1.PluginType.TrafficShaping] || []).concat(new unirate_1.UnirateTrafficShaping(), new warmup_1.WarmUpTrafficShaping()),
|
|
36
|
-
[plugins_1.PluginType.NamingService]: plugins[plugins_1.PluginType.NamingService],
|
|
37
|
-
[plugins_1.PluginType.LocalRegistry]: plugins[plugins_1.PluginType.LocalRegistry] || new memory_1.MemoryOnlyRegistry(),
|
|
38
|
-
[plugins_1.PluginType.TraceLogging]: plugins[plugins_1.PluginType.TraceLogging] || [new console_1.ConsoleTraceLogging()],
|
|
39
|
-
[plugins_1.PluginType.StatReporter]: plugins[plugins_1.PluginType.StatReporter] || []
|
|
40
|
-
};
|
|
41
|
-
const naming = pluginList[plugins_1.PluginType.NamingService];
|
|
42
|
-
/**
|
|
43
|
-
* 在某些特殊场景下,为了避免死循环与内存开销,
|
|
44
|
-
* `NamingService` 与 `StatReporter` 插件实现在一个对象内
|
|
45
|
-
*/
|
|
46
|
-
if ((0, skeleton_1.isStatReporterPlugin)(naming)) {
|
|
47
|
-
pluginList[plugins_1.PluginType.StatReporter].push(naming);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* 在 `RatelimitService`(为空)没有配置情况下,
|
|
51
|
-
* 查找 `NamingService` 插件是否实现此功能
|
|
52
|
-
*/
|
|
53
|
-
if (typeof pluginList[plugins_1.PluginType.RatelimitService] === "undefined") {
|
|
54
|
-
if (isRatelimitServicePlugin(naming)) {
|
|
55
|
-
pluginList[plugins_1.PluginType.RatelimitService] = naming;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
throw new errors_1.ConfigError("RatelimitService plugin not provided");
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
super(pluginList, options);
|
|
62
|
-
// #endregion
|
|
63
|
-
this[kRegistry] = new registry_1.LocalRegistry(this[skeleton_1.kLogger], naming, this.plugins[plugins_1.PluginType.LocalRegistry], this.plugins[plugins_1.PluginType.StatReporter], this.plugins[plugins_1.PluginType.RatelimitService], options);
|
|
64
|
-
this[kRatelimit] = new ratelimit_1.Ratelimit(this[skeleton_1.kGlobal], this[skeleton_1.kLogger], this[kRegistry], this.plugins[plugins_1.PluginType.RatelimitService], this.plugins[plugins_1.PluginType.TrafficShaping], options);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* 当前可实例化的最大次数
|
|
68
|
-
*/
|
|
69
|
-
static get maxInstances() {
|
|
70
|
-
return Limiter[KMaxInstances];
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* 设置可实例化的最大次数
|
|
74
|
-
* @param n 最大次数
|
|
75
|
-
*/
|
|
76
|
-
static setMaxInstances(n) {
|
|
77
|
-
if (typeof n !== "number" || n < 0 || Number.isNaN(n)) {
|
|
78
|
-
throw new errors_1.ArgumentError("|n| must be a non-negative number");
|
|
79
|
-
}
|
|
80
|
-
Limiter[KMaxInstances] = n;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* 销毁(释放)所占资源
|
|
84
|
-
*
|
|
85
|
-
* @description
|
|
86
|
-
* dispose order:
|
|
87
|
-
* Ratelimit -> Registry -> [plguins]
|
|
88
|
-
*
|
|
89
|
-
* @param sync 是否同步释放(可选)
|
|
90
|
-
*/
|
|
91
|
-
dispose(sync = false) {
|
|
92
|
-
if (this[skeleton_1.kDisposed]) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
this[kRatelimit].dispose();
|
|
96
|
-
this[kRegistry].dispose();
|
|
97
|
-
super.dispose(sync);
|
|
98
|
-
Limiter[kCurrentInstances] -= 1;
|
|
99
|
-
if (Limiter[kCurrentInstances] < 0) {
|
|
100
|
-
(0, utils_1.UNREACHABLE)();
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* 通过条件获取配额分配对象
|
|
105
|
-
* @param namespace 命名空间
|
|
106
|
-
* @param service 服务名
|
|
107
|
-
* @param amount 请求的配额数
|
|
108
|
-
* @param cluster 集群名(可选)
|
|
109
|
-
* @param labels 标签集合(可选)
|
|
110
|
-
* @param id 唯一 ID(可选)
|
|
111
|
-
*/
|
|
112
|
-
async acquire(namespace, service, amount, cluster = "", labels = {}, id) {
|
|
113
|
-
const startTime = (0, process_1.uptime)();
|
|
114
|
-
let err;
|
|
115
|
-
try {
|
|
116
|
-
this[skeleton_1.kMaybeAlreadyDisposed]();
|
|
117
|
-
const rule = await this[kRatelimit].query(namespace, service, cluster, labels, id);
|
|
118
|
-
return {
|
|
119
|
-
quotas: this[kRatelimit].acquire(namespace, service, amount, rule),
|
|
120
|
-
id: rule === null || rule === void 0 ? void 0 : rule.id
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
catch (e) {
|
|
124
|
-
err = e;
|
|
125
|
-
}
|
|
126
|
-
finally {
|
|
127
|
-
this[skeleton_1.kAPICollector]("Limiter.acquire", ((0, process_1.uptime)() - startTime) * utils_1.kSeconds, err);
|
|
128
|
-
}
|
|
129
|
-
throw err;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
exports.Limiter = Limiter;
|
|
133
|
-
_a = Limiter, _b = kCurrentInstances;
|
|
134
|
-
/**
|
|
135
|
-
* note:
|
|
136
|
-
* 由于类包含专用标识符时,`super` 调用必须是构造函数中的第一个语句。
|
|
137
|
-
* 所以这里采用 `Symbol` 来实现 __私有静态属性__
|
|
138
|
-
*/
|
|
139
|
-
Limiter[_b] = 0;
|
|
140
|
-
(() => {
|
|
141
|
-
let maxInstances = 3;
|
|
142
|
-
const { POLARIS_LIMITER_INSTANCE_LIMIT } = process.env;
|
|
143
|
-
if (POLARIS_LIMITER_INSTANCE_LIMIT !== undefined) {
|
|
144
|
-
maxInstances = parseInt(POLARIS_LIMITER_INSTANCE_LIMIT, 10);
|
|
145
|
-
maxInstances = (maxInstances === 0 /** Unlimited */ ? Infinity : maxInstances);
|
|
146
|
-
}
|
|
147
|
-
_a.setMaxInstances(maxInstances);
|
|
148
|
-
})();
|
|
149
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/limiter/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { GlobalOptions } from "../global";
|
|
2
|
-
import { Logger } from "../logging";
|
|
3
|
-
import { Metadata } from "../metadata";
|
|
4
|
-
import { RatelimitServicePlugin, TrafficShapingPlugin } from "../plugins";
|
|
5
|
-
import { LocalRegistry } from "../registry";
|
|
6
|
-
import { RatelimitRule } from "../rules";
|
|
7
|
-
import { GlobalRatelimiterOptions, LocalRatelimiterOptions } from "./ratelimiter";
|
|
8
|
-
declare const kDefaultOptions: LocalRatelimiterOptions | GlobalRatelimiterOptions;
|
|
9
|
-
export declare type RatelimitOptions = typeof kDefaultOptions;
|
|
10
|
-
export declare type Quota = Promise<(() => Promise<void>) | void>;
|
|
11
|
-
export declare class Ratelimit {
|
|
12
|
-
private readonly global;
|
|
13
|
-
private readonly logger;
|
|
14
|
-
private readonly registry;
|
|
15
|
-
private readonly ratelimit;
|
|
16
|
-
private readonly shaping;
|
|
17
|
-
private readonly limiters;
|
|
18
|
-
private readonly options;
|
|
19
|
-
private disposed;
|
|
20
|
-
constructor(global: GlobalOptions, logger: Logger, registry: LocalRegistry, ratelimit: RatelimitServicePlugin, shaping: TrafficShapingPlugin[], options?: Partial<RatelimitOptions>);
|
|
21
|
-
dispose(): void;
|
|
22
|
-
query(namespace: string, service: string, cluster: string | undefined, labels: Metadata, id?: string): Promise<RatelimitRule | undefined>;
|
|
23
|
-
acquire(namespace: string, service: string, amount: number, rule?: RatelimitRule): Quota[];
|
|
24
|
-
private allocation;
|
|
25
|
-
private produce;
|
|
26
|
-
}
|
|
27
|
-
export {};
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Ratelimit = void 0;
|
|
4
|
-
const errors_1 = require("../errors");
|
|
5
|
-
const metadata_1 = require("../metadata");
|
|
6
|
-
const plugins_1 = require("../plugins");
|
|
7
|
-
const rules_1 = require("../rules");
|
|
8
|
-
const utils_1 = require("../utils");
|
|
9
|
-
const ratelimiter_1 = require("./ratelimiter");
|
|
10
|
-
const kDefaultOptions = {
|
|
11
|
-
outdatedPeriod: 2,
|
|
12
|
-
idlePeriod: 10,
|
|
13
|
-
instanceUpdateTime: 5 * utils_1.kSeconds,
|
|
14
|
-
updatePercent: 0.8
|
|
15
|
-
};
|
|
16
|
-
class Ratelimit {
|
|
17
|
-
constructor(global, logger, registry, ratelimit, shaping, options) {
|
|
18
|
-
this.global = global;
|
|
19
|
-
this.logger = logger;
|
|
20
|
-
this.registry = registry;
|
|
21
|
-
this.ratelimit = ratelimit;
|
|
22
|
-
this.shaping = shaping;
|
|
23
|
-
this.limiters = new WeakMap();
|
|
24
|
-
this.disposed = false;
|
|
25
|
-
this.options = Object.assign(Object.assign({}, kDefaultOptions), options);
|
|
26
|
-
}
|
|
27
|
-
dispose() {
|
|
28
|
-
this.disposed = true;
|
|
29
|
-
}
|
|
30
|
-
async query(namespace, service, cluster = "", labels, id) {
|
|
31
|
-
if (this.disposed) {
|
|
32
|
-
throw new errors_1.StateError("Already disposed");
|
|
33
|
-
}
|
|
34
|
-
const rules = await this.registry.fetch(plugins_1.RegistryCategory.Ratelimit, namespace, service);
|
|
35
|
-
let selectedRule;
|
|
36
|
-
if (typeof id === "string" && id !== "") { /** fast case */
|
|
37
|
-
selectedRule = rules.find(rule => rule.id === id);
|
|
38
|
-
}
|
|
39
|
-
if (typeof selectedRule === "undefined") {
|
|
40
|
-
const { globalVariables } = this.global;
|
|
41
|
-
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
42
|
-
for (let i = 0; i < rules.length; i += 1) { /** slow case */
|
|
43
|
-
const rule = rules[i];
|
|
44
|
-
if (rule.cluster === cluster
|
|
45
|
-
&& (0, metadata_1.isMetadataMatch)(labels, rule.labels, globalVariables)
|
|
46
|
-
&& (selectedRule === undefined || rule.priority > selectedRule.priority)) {
|
|
47
|
-
selectedRule = rule;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return selectedRule;
|
|
52
|
-
}
|
|
53
|
-
acquire(namespace, service, amount, rule) {
|
|
54
|
-
const quotas = [];
|
|
55
|
-
if (this.disposed) {
|
|
56
|
-
const err = new errors_1.StateError("Already disposed");
|
|
57
|
-
for (let i = 0; i < amount; i += 1) {
|
|
58
|
-
quotas.push(Promise.reject(err));
|
|
59
|
-
}
|
|
60
|
-
return quotas;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* 当规则不存在时,默认放通所有配额
|
|
64
|
-
*/
|
|
65
|
-
if (typeof rule === "undefined") {
|
|
66
|
-
for (let i = 0; i < amount; i += 1) {
|
|
67
|
-
quotas.push(Promise.resolve());
|
|
68
|
-
}
|
|
69
|
-
return quotas;
|
|
70
|
-
}
|
|
71
|
-
let limiter;
|
|
72
|
-
if (!this.limiters.has(rule)) {
|
|
73
|
-
switch (rule.type) {
|
|
74
|
-
case rules_1.LimitType.Local: {
|
|
75
|
-
limiter = new ratelimiter_1.LocalRatelimiter(rule, this.options);
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
78
|
-
case rules_1.LimitType.Global: {
|
|
79
|
-
limiter = new ratelimiter_1.GlobalRatelimiter(namespace, service, rule, this.logger, this.registry, this.ratelimit, this.options);
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
default: {
|
|
83
|
-
(0, utils_1.UNREACHABLE)();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
this.limiters.set(rule, limiter);
|
|
87
|
-
}
|
|
88
|
-
let shaping;
|
|
89
|
-
if (rule.action !== "") {
|
|
90
|
-
shaping = this.shaping.find(plugin => plugin.name === rule.action);
|
|
91
|
-
if (typeof shaping === "undefined") {
|
|
92
|
-
throw new errors_1.PluginError(`action(${rule.action}) implement not found`);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
for (let i = 0; i < amount; i += 1) {
|
|
96
|
-
let quota = Promise.resolve();
|
|
97
|
-
if (rule.enable) {
|
|
98
|
-
if (typeof shaping !== "undefined") {
|
|
99
|
-
quota = quota
|
|
100
|
-
.then(() => limiter.getPartition())
|
|
101
|
-
.then(partition => shaping.inFlow(rule, partition));
|
|
102
|
-
}
|
|
103
|
-
quota = quota
|
|
104
|
-
.then(() => this.allocation(rule))
|
|
105
|
-
.then(result => this.produce(rule, result));
|
|
106
|
-
}
|
|
107
|
-
quotas.push(quota);
|
|
108
|
-
}
|
|
109
|
-
return quotas;
|
|
110
|
-
}
|
|
111
|
-
allocation(rule) {
|
|
112
|
-
const limiter = this.limiters.get(rule);
|
|
113
|
-
if (typeof limiter === "undefined") {
|
|
114
|
-
throw new errors_1.StateError("current rate limit rule has been changed, all allocations are rejected");
|
|
115
|
-
}
|
|
116
|
-
return limiter.consume();
|
|
117
|
-
}
|
|
118
|
-
produce(rule, result) {
|
|
119
|
-
if (!result) {
|
|
120
|
-
throw new errors_1.StateError("no available quota");
|
|
121
|
-
}
|
|
122
|
-
if (rule.resource === rules_1.LimitResource.Concurrency) {
|
|
123
|
-
return () => {
|
|
124
|
-
const limiter = this.limiters.get(rule);
|
|
125
|
-
if (typeof limiter === "undefined") {
|
|
126
|
-
throw new errors_1.StateError("current rate limit rule has been changed, all releases are rejected");
|
|
127
|
-
}
|
|
128
|
-
return limiter.return();
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
exports.Ratelimit = Ratelimit;
|
|
134
|
-
//# sourceMappingURL=ratelimit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ratelimit.js","sourceRoot":"","sources":["../../src/limiter/ratelimit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { BasicBucket } from "../bucket";
|
|
2
|
-
export declare const deduction: <T extends BasicBucket>(buckets: T[], tokens: number, preroll: boolean) => boolean;
|
|
3
|
-
export interface Ratelimiter {
|
|
4
|
-
/**
|
|
5
|
-
* 消费令牌
|
|
6
|
-
* @param preroll 是否实际扣减
|
|
7
|
-
*/
|
|
8
|
-
consume(preroll?: boolean): Promise<boolean>;
|
|
9
|
-
/**
|
|
10
|
-
* 放回令牌
|
|
11
|
-
*/
|
|
12
|
-
return(): Promise<void>;
|
|
13
|
-
/**
|
|
14
|
-
* 获得当前分区数
|
|
15
|
-
*/
|
|
16
|
-
getPartition(): Promise<number>;
|
|
17
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deduction = void 0;
|
|
4
|
-
const deduction = (buckets, tokens, preroll) => {
|
|
5
|
-
const isEnough = tokens > 0 ? buckets.every(bucket => bucket.consume(tokens, true)) : true;
|
|
6
|
-
if (!isEnough || preroll) {
|
|
7
|
-
return isEnough;
|
|
8
|
-
}
|
|
9
|
-
buckets.forEach((bucket) => {
|
|
10
|
-
bucket.consume(tokens, false);
|
|
11
|
-
});
|
|
12
|
-
return true;
|
|
13
|
-
};
|
|
14
|
-
exports.deduction = deduction;
|
|
15
|
-
//# sourceMappingURL=base.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/limiter/ratelimiter/base.ts"],"names":[],"mappings":";;;AAEO,MAAM,SAAS,GAAG,CAAwB,OAAY,EAAE,MAAc,EAAE,OAAgB,EAAE,EAAE;IACjG,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE;QACxB,OAAO,QAAQ,CAAC;KACjB;IAED,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAXW,QAAA,SAAS,aAWpB"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { Logger } from "../../logging";
|
|
2
|
-
import { RatelimitServicePlugin } from "../../plugins";
|
|
3
|
-
import { LocalRegistry } from "../../registry";
|
|
4
|
-
import { RatelimitRule } from "../../rules";
|
|
5
|
-
import { Ratelimiter } from "./base";
|
|
6
|
-
export interface GlobalRatelimiterOptions {
|
|
7
|
-
/**
|
|
8
|
-
* 远端令牌桶,过期判定周期数
|
|
9
|
-
*/
|
|
10
|
-
outdatedPeriod: number;
|
|
11
|
-
/**
|
|
12
|
-
* 令牌桶空闲回收,判定周期数
|
|
13
|
-
*/
|
|
14
|
-
idlePeriod: number;
|
|
15
|
-
/**
|
|
16
|
-
* 实例数更新时间 (ms)
|
|
17
|
-
*/
|
|
18
|
-
instanceUpdateTime: number;
|
|
19
|
-
/**
|
|
20
|
-
* 使用了百分之多少配额后,启动一次实时上报
|
|
21
|
-
* 范围 (0,1]
|
|
22
|
-
*/
|
|
23
|
-
updatePercent: number;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* 全局令牌桶
|
|
27
|
-
* 对应 `LimitType.Global` 全局限流
|
|
28
|
-
*/
|
|
29
|
-
export declare class GlobalRatelimiter implements Ratelimiter {
|
|
30
|
-
private readonly namespace;
|
|
31
|
-
private readonly service;
|
|
32
|
-
private readonly rule;
|
|
33
|
-
private readonly logger;
|
|
34
|
-
private readonly registry;
|
|
35
|
-
private readonly backend;
|
|
36
|
-
private readonly options;
|
|
37
|
-
private readonly buckets;
|
|
38
|
-
private readonly taskInfo;
|
|
39
|
-
private indexes?;
|
|
40
|
-
private wakePromise;
|
|
41
|
-
private partition;
|
|
42
|
-
private idlePeriods;
|
|
43
|
-
private isAccessed;
|
|
44
|
-
private maxDuration;
|
|
45
|
-
private status;
|
|
46
|
-
private readonly updateConfig;
|
|
47
|
-
constructor(namespace: string, service: string, rule: RatelimitRule, logger: Logger, registry: LocalRegistry, backend: RatelimitServicePlugin, options: GlobalRatelimiterOptions);
|
|
48
|
-
consume(preroll?: boolean): Promise<boolean>;
|
|
49
|
-
return(): Promise<void>;
|
|
50
|
-
getPartition(): Promise<number>;
|
|
51
|
-
private dispose;
|
|
52
|
-
private wake;
|
|
53
|
-
private sleep;
|
|
54
|
-
private scheduleTask;
|
|
55
|
-
private updatePartition;
|
|
56
|
-
private syncQuota;
|
|
57
|
-
private checkOutdated;
|
|
58
|
-
private shouldSleep;
|
|
59
|
-
}
|