@openclaw/slack 2026.9.6 → 2026.9.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/assets/icon.png +0 -0
- package/dist/.setup/{account-inspect-DP1Bcwj4.mjs → account-inspect-DWBXpER6.mjs} +1 -1
- package/dist/.setup/{accounts-BBHvg0pY.mjs → accounts-D_N9IqNA.mjs} +23 -1
- package/dist/.setup/{action-runtime-B01d85zt.mjs → action-runtime-DfWvuiZd.mjs} +26 -41
- package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +2 -0
- package/dist/.setup/{actions-DKCtBgCI.mjs → actions-Df0CzcDl.mjs} +88 -175
- package/dist/.setup/{approval-handler.runtime-DMszKn_7.mjs → approval-handler.runtime-Ed6Sw5VK.mjs} +37 -47
- package/dist/.setup/{approval-message-updates-Tb_qRokK.mjs → approval-message-updates-BadvtA7R.mjs} +1 -2
- package/dist/.setup/{channel-CErYZ5zw.mjs → channel-C7bgPSTE.mjs} +181 -273
- package/dist/.setup/channel-meta-C443t-lI.mjs +27 -0
- package/dist/.setup/{channel-type-Dxk8VJUb.mjs → channel-type-ClOttrZ5.mjs} +13 -21
- package/dist/.setup/{channel.setup-BVoUtdPn.mjs → channel.setup-Dh2jzAjN.mjs} +35 -42
- package/dist/.setup/{config-schema-CyL279e7.mjs → config-schema-BZCxmHKG.mjs} +24 -21
- package/dist/.setup/{directory-config-CQTSH45W.mjs → directory-config-BOUWH3hR.mjs} +7 -10
- package/dist/.setup/{directory-live-BCcj89QV.mjs → directory-live-B2O4B_Ho.mjs} +9 -21
- package/dist/.setup/doctor-contract-CRN1Z_c7.mjs +342 -0
- package/dist/.setup/{message-tool-api-C0PTFaNV.mjs → message-tool-api-Cu4lwlGy.mjs} +34 -48
- package/dist/.setup/{provider-C-jPaGt2.mjs → monitor-BPVfkumU.mjs} +2181 -2693
- package/dist/.setup/{outbound-adapter-A7Wdn8ZT.mjs → outbound-adapter-Bv48XUjq.mjs} +10 -21
- package/dist/.setup/{pipeline.runtime-BlPOexmJ.mjs → pipeline.runtime-B1H63Frf.mjs} +311 -457
- package/dist/.setup/{plugin-routes-C3X0eVaK.mjs → plugin-routes-B8tooDLj.mjs} +1 -1
- package/dist/.setup/{policy-BApW53pI.mjs → policy-D-jfM174.mjs} +5 -5
- package/dist/.setup/{probe-DiYIMPJo.mjs → probe-B2Y9qc_z.mjs} +101 -39
- package/dist/.setup/{registry-bbjH7IHX.mjs → registry-CIbMfuf8.mjs} +6 -2
- package/dist/.setup/{relay-source-DfOnjJTE.mjs → relay-source-BpKdjsll.mjs} +10 -12
- package/dist/.setup/{replies-BBAJxUOQ.mjs → replies-BAnUtr2f.mjs} +16 -76
- package/dist/.setup/{reply-blocks-Bm8kf6mK.mjs → reply-blocks-SE1kTE3I.mjs} +27 -154
- package/dist/.setup/{resolve-channels-BXbMBbJD.mjs → resolve-channels-XXBn8UU_.mjs} +4 -5
- package/dist/.setup/{resolve-users-65WqvIqD.mjs → resolve-users-DW0ngD03.mjs} +20 -22
- package/dist/.setup/{scopes-h3YB-mMs.mjs → scopes-CasuDvaa.mjs} +6 -17
- package/dist/.setup/{secret-contract-DxmvbxBF.mjs → secret-contract-BaZcu6P_.mjs} +15 -20
- package/dist/.setup/{secret-contract-api-D9UfYujm.mjs → secret-contract-api-Dp6290Vg.mjs} +1 -1
- package/dist/.setup/{security-audit-BypHqcq5.mjs → security-audit-BqDc-6VL.mjs} +1 -1
- package/dist/.setup/{send-Cp6omkOg.mjs → send-BOVLQi3n.mjs} +84 -171
- package/dist/.setup/{session-status-Cf7AvWOt.mjs → session-status-DscajIsd.mjs} +315 -238
- package/dist/.setup/{setup-plugin-api-dLPkL06L.mjs → setup-plugin-api-DTtbTKNk.mjs} +1 -1
- package/dist/.setup/{setup-surface-D3DLcCxu.mjs → setup-surface-Dn7QgWRE.mjs} +24 -56
- package/dist/.setup/{shared-CJ3arAFL.mjs → shared-qau-uDGl.mjs} +30 -56
- package/dist/.setup/{slash-dispatch.runtime-HFy_XvyO.mjs → slash-dispatch.runtime--AEzLVBF.mjs} +1 -1
- package/dist/.setup/{streaming-compat-B-e0mqM0.mjs → streaming-compat-C5Wut626.mjs} +31 -8
- package/dist/.setup/{target-parsing-DEsPjngB.mjs → target-parsing-FFE26kOV.mjs} +1 -7
- package/dist/.setup/{targets-Cku2KCvg.mjs → targets-C6LZQL1Q.mjs} +1 -1
- package/dist/.setup/{thread-ts-CukseRVL.mjs → thread-ts-Cvt7WD6B.mjs} +0 -1
- package/dist/account-inspect-api.js +1 -1
- package/dist/api.js +18 -17
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/directory-contract-api.js +1 -1
- package/dist/doctor-contract-api.js +1 -1
- package/dist/http-routes-api.js +1 -1
- package/dist/index.js +1 -1
- package/dist/message-tool-api.js +1 -1
- package/dist/runtime-api.js +11 -12
- package/dist/secret-contract-api.js +1 -1
- package/dist/security-contract-api.js +1 -1
- package/dist/setup-entry.js +2 -2
- package/dist/setup-plugin-api.js +1 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/child_process.d.ts +1 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +20 -8
- package/node_modules/@slack/bolt/node_modules/@types/node/ffi.d.ts +14 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/http2.d.ts +3 -2
- package/node_modules/@slack/bolt/node_modules/@types/node/net.d.ts +16 -4
- package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/bolt/node_modules/@types/node/process.d.ts +1 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/quic.d.ts +39 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/stream/iter.d.ts +9 -12
- package/node_modules/@slack/bolt/node_modules/@types/node/test/reporters.d.ts +1 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/test.d.ts +72 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/tls.d.ts +14 -10
- package/node_modules/@slack/bolt/node_modules/@types/node/vm.d.ts +2 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/worker_threads.d.ts +4 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +1 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +20 -8
- package/node_modules/@slack/web-api/node_modules/@types/node/ffi.d.ts +14 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +3 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/net.d.ts +16 -4
- package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +1 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +39 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +9 -12
- package/node_modules/@slack/web-api/node_modules/@types/node/test/reporters.d.ts +1 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +72 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/tls.d.ts +14 -10
- package/node_modules/@slack/web-api/node_modules/@types/node/vm.d.ts +2 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/worker_threads.d.ts +4 -1
- package/node_modules/get-east-asian-width/index.js +8 -3
- package/node_modules/get-east-asian-width/lookup-data.js +1 -1
- package/node_modules/get-east-asian-width/lookup.js +4 -4
- package/node_modules/get-east-asian-width/package.json +1 -1
- package/node_modules/typebox/build/compile/code.mjs +1 -2
- package/node_modules/typebox/build/compile/validator.mjs +5 -1
- package/node_modules/typebox/build/format/iri.mjs +16 -9
- package/node_modules/typebox/build/guard/emit.mjs +2 -2
- package/node_modules/typebox/build/guard/guard.d.mts +7 -5
- package/node_modules/typebox/build/guard/guard.mjs +14 -9
- package/node_modules/typebox/build/guard/index.mjs +6 -0
- package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
- package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
- package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
- package/node_modules/typebox/build/schema/build.mjs +2 -3
- package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
- package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
- package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
- package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
- package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
- package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
- package/node_modules/typebox/build/schema/parse.mjs +3 -0
- package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
- package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
- package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
- package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
- package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
- package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
- package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
- package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
- package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
- package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
- package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +3 -1
- package/node_modules/undici/README.md +81 -25
- package/node_modules/undici/docs/docs/api/Agent.md +249 -42
- package/node_modules/undici/docs/docs/api/BalancedPool.md +246 -48
- package/node_modules/undici/docs/docs/api/CacheStorage.md +171 -13
- package/node_modules/undici/docs/docs/api/CacheStore.md +294 -98
- package/node_modules/undici/docs/docs/api/Client.md +407 -162
- package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
- package/node_modules/undici/docs/docs/api/Connector.md +118 -35
- package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
- package/node_modules/undici/docs/docs/api/Cookies.md +122 -71
- package/node_modules/undici/docs/docs/api/Debug.md +34 -18
- package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +364 -164
- package/node_modules/undici/docs/docs/api/Dispatcher.md +490 -1055
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +105 -93
- package/node_modules/undici/docs/docs/api/Errors.md +503 -28
- package/node_modules/undici/docs/docs/api/EventSource.md +326 -13
- package/node_modules/undici/docs/docs/api/Fetch.md +681 -30
- package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -96
- package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
- package/node_modules/undici/docs/docs/api/Interceptors.md +418 -0
- package/node_modules/undici/docs/docs/api/MockAgent.md +333 -314
- package/node_modules/undici/docs/docs/api/MockCallHistory.md +272 -98
- package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +189 -26
- package/node_modules/undici/docs/docs/api/MockClient.md +151 -33
- package/node_modules/undici/docs/docs/api/MockErrors.md +56 -5
- package/node_modules/undici/docs/docs/api/MockPool.md +321 -258
- package/node_modules/undici/docs/docs/api/Pool.md +236 -41
- package/node_modules/undici/docs/docs/api/PoolStats.md +119 -13
- package/node_modules/undici/docs/docs/api/ProxyAgent.md +179 -160
- package/node_modules/undici/docs/docs/api/RedirectHandler.md +238 -55
- package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -27
- package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -79
- package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
- package/node_modules/undici/docs/docs/api/SnapshotAgent.md +262 -517
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +177 -196
- package/node_modules/undici/docs/docs/api/Util.md +68 -11
- package/node_modules/undici/docs/docs/api/WebSocket.md +475 -80
- package/node_modules/undici/docs/docs/api/api-lifecycle.md +100 -32
- package/node_modules/undici/docs/docs/best-practices/client-certificate.md +2 -0
- package/node_modules/undici/docs/docs/best-practices/crawling.md +3 -1
- package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
- package/node_modules/undici/docs/docs/best-practices/mocking-request.md +9 -7
- package/node_modules/undici/docs/docs/best-practices/proxy.md +3 -1
- package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +10 -8
- package/node_modules/undici/docs/docs/best-practices/writing-tests.md +2 -0
- package/node_modules/undici/docs/docs/getting-started.md +281 -0
- package/node_modules/undici/docs/docs/index.md +784 -0
- package/node_modules/undici/docs/docs/site.json +125 -0
- package/node_modules/undici/docs/docs/type-map.json +79 -0
- package/node_modules/undici/index.js +4 -2
- package/node_modules/undici/lib/api/api-connect.js +13 -11
- package/node_modules/undici/lib/api/api-pipeline.js +26 -13
- package/node_modules/undici/lib/api/api-request.js +51 -21
- package/node_modules/undici/lib/api/api-stream.js +81 -20
- package/node_modules/undici/lib/api/api-upgrade.js +21 -11
- package/node_modules/undici/lib/api/readable.js +45 -9
- package/node_modules/undici/lib/cache/memory-cache-store.js +3 -3
- package/node_modules/undici/lib/cache/sqlite-cache-store.js +3 -1
- package/node_modules/undici/lib/core/connect.js +46 -7
- package/node_modules/undici/lib/core/constants.js +1 -24
- package/node_modules/undici/lib/core/errors.js +22 -2
- package/node_modules/undici/lib/core/request.js +100 -18
- package/node_modules/undici/lib/core/symbols.js +4 -0
- package/node_modules/undici/lib/core/util.js +105 -48
- package/node_modules/undici/lib/dispatcher/agent.js +51 -32
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +23 -27
- package/node_modules/undici/lib/dispatcher/client-h1.js +86 -24
- package/node_modules/undici/lib/dispatcher/client-h2.js +1091 -361
- package/node_modules/undici/lib/dispatcher/client.js +109 -36
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +19 -6
- package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -5
- package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +110 -0
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +37 -8
- package/node_modules/undici/lib/dispatcher/h2c-client.js +4 -4
- package/node_modules/undici/lib/dispatcher/pool-base.js +28 -10
- package/node_modules/undici/lib/dispatcher/pool.js +30 -5
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +95 -19
- package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
- package/node_modules/undici/lib/dispatcher/round-robin-pool.js +32 -10
- package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +153 -63
- package/node_modules/undici/lib/global.js +37 -14
- package/node_modules/undici/lib/handler/cache-handler.js +49 -7
- package/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
- package/node_modules/undici/lib/handler/decorator-handler.js +8 -3
- package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
- package/node_modules/undici/lib/handler/redirect-handler.js +66 -66
- package/node_modules/undici/lib/handler/retry-handler.js +191 -50
- package/node_modules/undici/lib/interceptor/cache.js +75 -25
- package/node_modules/undici/lib/interceptor/decompress.js +5 -2
- package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
- package/node_modules/undici/lib/interceptor/dns.js +12 -1
- package/node_modules/undici/lib/interceptor/redirect.js +3 -3
- package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -1
- package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -1
- package/node_modules/undici/lib/mock/mock-agent.js +21 -9
- package/node_modules/undici/lib/mock/mock-call-history.js +1 -1
- package/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
- package/node_modules/undici/lib/mock/mock-utils.js +281 -47
- package/node_modules/undici/lib/mock/snapshot-agent.js +25 -7
- package/node_modules/undici/lib/mock/snapshot-recorder.js +38 -3
- package/node_modules/undici/lib/util/cache.js +92 -10
- package/node_modules/undici/lib/util/runtime-features.js +3 -34
- package/node_modules/undici/lib/web/cache/cache.js +6 -8
- package/node_modules/undici/lib/web/cookies/parse.js +150 -146
- package/node_modules/undici/lib/web/cookies/util.js +1 -1
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
- package/node_modules/undici/lib/web/eventsource/eventsource.js +20 -21
- package/node_modules/undici/lib/web/eventsource/util.js +32 -1
- package/node_modules/undici/lib/web/fetch/body.js +48 -10
- package/node_modules/undici/lib/web/fetch/constants.js +1 -1
- package/node_modules/undici/lib/web/fetch/formdata.js +21 -2
- package/node_modules/undici/lib/web/fetch/index.js +242 -223
- package/node_modules/undici/lib/web/fetch/request.js +35 -6
- package/node_modules/undici/lib/web/fetch/response.js +1 -3
- package/node_modules/undici/lib/web/fetch/util.js +10 -2
- package/node_modules/undici/lib/web/webidl/index.js +5 -7
- package/node_modules/undici/lib/web/websocket/frame.js +1 -7
- package/node_modules/undici/lib/web/websocket/receiver.js +1 -1
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +10 -10
- package/node_modules/undici/lib/web/websocket/websocket.js +25 -3
- package/node_modules/undici/package.json +10 -10
- package/node_modules/undici/types/agent.d.ts +0 -2
- package/node_modules/undici/types/client.d.ts +69 -24
- package/node_modules/undici/types/connector.d.ts +1 -0
- package/node_modules/undici/types/cookies.d.ts +1 -1
- package/node_modules/undici/types/dispatcher.d.ts +8 -30
- package/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
- package/node_modules/undici/types/errors.d.ts +10 -0
- package/node_modules/undici/types/fetch.d.ts +5 -1
- package/node_modules/undici/types/formdata.d.ts +0 -6
- package/node_modules/undici/types/h2c-client.d.ts +6 -6
- package/node_modules/undici/types/handlers.d.ts +2 -0
- package/node_modules/undici/types/header.d.ts +5 -0
- package/node_modules/undici/types/index.d.ts +3 -1
- package/node_modules/undici/types/interceptors.d.ts +1 -1
- package/node_modules/undici/types/mock-agent.d.ts +11 -10
- package/node_modules/undici/types/mock-interceptor.d.ts +5 -1
- package/node_modules/undici/types/pool.d.ts +0 -2
- package/node_modules/undici/types/proxy-agent.d.ts +9 -2
- package/node_modules/undici/types/round-robin-pool.d.ts +0 -2
- package/node_modules/undici/types/snapshot-agent.d.ts +4 -0
- package/node_modules/undici/types/socks5-proxy-agent.d.ts +4 -2
- package/node_modules/undici/types/webidl.d.ts +0 -1
- package/openclaw.plugin.json +31 -3
- package/package.json +7 -7
- package/dist/.setup/accounts.runtime-DN-PPocC.mjs +0 -2
- package/dist/.setup/action-runtime.runtime-C8R8CUan.mjs +0 -2
- package/dist/.setup/doctor-contract-CtMUqjvk.mjs +0 -186
- package/dist/.setup/monitor-_Sht7Dqy.mjs +0 -13
- package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
- package/dist/.setup/send.runtime-B4caZU6T.mjs +0 -2
- package/dist/.setup/slash-commands.runtime-BpSH0b3q.mjs +0 -2
- package/dist/.setup/slash-skill-commands.runtime-Bi1JWZHY.mjs +0 -2
- package/node_modules/undici/lib/handler/unwrap-handler.js +0 -106
- package/node_modules/undici/lib/handler/wrap-handler.js +0 -105
- package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/node_modules/undici/lib/util/promise.js +0 -28
- /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
|
@@ -13,7 +13,7 @@ const {
|
|
|
13
13
|
kGetDispatcher
|
|
14
14
|
} = require('./pool-base')
|
|
15
15
|
const Pool = require('./pool')
|
|
16
|
-
const { kUrl } = require('../core/symbols')
|
|
16
|
+
const { kOriginless, kUrl } = require('../core/symbols')
|
|
17
17
|
const util = require('../core/util')
|
|
18
18
|
const kFactory = Symbol('factory')
|
|
19
19
|
|
|
@@ -56,12 +56,10 @@ class BalancedPool extends PoolBase {
|
|
|
56
56
|
|
|
57
57
|
super(opts)
|
|
58
58
|
|
|
59
|
+
this[kOriginless] = true
|
|
59
60
|
if (connect && typeof connect !== 'function') connect = { ...connect }
|
|
60
61
|
if (tls && typeof tls !== 'function') tls = { ...tls }
|
|
61
62
|
this[kOptions] = { ...util.deepClone(opts), connect, tls }
|
|
62
|
-
this[kOptions].interceptors = opts.interceptors
|
|
63
|
-
? { ...opts.interceptors }
|
|
64
|
-
: undefined
|
|
65
63
|
this[kIndex] = -1
|
|
66
64
|
this[kCurrentWeight] = 0
|
|
67
65
|
|
|
@@ -169,35 +167,14 @@ class BalancedPool extends PoolBase {
|
|
|
169
167
|
throw new BalancedPoolMissingUpstreamError()
|
|
170
168
|
}
|
|
171
169
|
|
|
172
|
-
const dispatcher = this[kClients].find(dispatcher => (
|
|
173
|
-
!dispatcher[kNeedDrain] &&
|
|
174
|
-
dispatcher.closed !== true &&
|
|
175
|
-
dispatcher.destroyed !== true
|
|
176
|
-
))
|
|
177
|
-
|
|
178
|
-
if (!dispatcher) {
|
|
179
|
-
return
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)
|
|
183
|
-
|
|
184
|
-
if (allClientsBusy) {
|
|
185
|
-
return
|
|
186
|
-
}
|
|
187
|
-
|
|
188
170
|
let counter = 0
|
|
189
171
|
|
|
190
|
-
let maxWeightIndex =
|
|
172
|
+
let maxWeightIndex = -1
|
|
191
173
|
|
|
192
174
|
while (counter++ < this[kClients].length) {
|
|
193
175
|
this[kIndex] = (this[kIndex] + 1) % this[kClients].length
|
|
194
176
|
const pool = this[kClients][this[kIndex]]
|
|
195
177
|
|
|
196
|
-
// find pool index with the largest weight
|
|
197
|
-
if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {
|
|
198
|
-
maxWeightIndex = this[kIndex]
|
|
199
|
-
}
|
|
200
|
-
|
|
201
178
|
// decrease the current weight every `this[kClients].length`.
|
|
202
179
|
if (this[kIndex] === 0) {
|
|
203
180
|
// Set the current weight to the next lower weight.
|
|
@@ -207,11 +184,30 @@ class BalancedPool extends PoolBase {
|
|
|
207
184
|
this[kCurrentWeight] = this[kMaxWeightPerServer]
|
|
208
185
|
}
|
|
209
186
|
}
|
|
210
|
-
|
|
187
|
+
|
|
188
|
+
// Skip unavailable pools after updating the current weight for this cycle.
|
|
189
|
+
if (
|
|
190
|
+
pool[kNeedDrain] ||
|
|
191
|
+
pool.closed === true ||
|
|
192
|
+
pool.destroyed === true
|
|
193
|
+
) {
|
|
194
|
+
continue
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// Track the best fallback if no pool matches the current weight.
|
|
198
|
+
if (maxWeightIndex === -1 || pool[kWeight] > this[kClients][maxWeightIndex][kWeight]) {
|
|
199
|
+
maxWeightIndex = this[kIndex]
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (pool[kWeight] >= this[kCurrentWeight]) {
|
|
211
203
|
return pool
|
|
212
204
|
}
|
|
213
205
|
}
|
|
214
206
|
|
|
207
|
+
if (maxWeightIndex === -1) {
|
|
208
|
+
return
|
|
209
|
+
}
|
|
210
|
+
|
|
215
211
|
this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]
|
|
216
212
|
this[kIndex] = maxWeightIndex
|
|
217
213
|
return this[kClients][maxWeightIndex]
|
|
@@ -61,6 +61,7 @@ const removeAllListeners = util.removeAllListeners
|
|
|
61
61
|
const kIdleSocketValidation = Symbol('kIdleSocketValidation')
|
|
62
62
|
const kIdleSocketValidationTimeout = Symbol('kIdleSocketValidationTimeout')
|
|
63
63
|
const kSocketUsed = Symbol('kSocketUsed')
|
|
64
|
+
const kTypeOfService = Symbol('kTypeOfService')
|
|
64
65
|
|
|
65
66
|
let extractBody
|
|
66
67
|
|
|
@@ -192,6 +193,7 @@ let currentBufferRef = null
|
|
|
192
193
|
*/
|
|
193
194
|
let currentBufferSize = 0
|
|
194
195
|
let currentBufferPtr = null
|
|
196
|
+
let currentBuffer = null
|
|
195
197
|
|
|
196
198
|
const USE_NATIVE_TIMER = 0
|
|
197
199
|
const USE_FAST_TIMER = 1
|
|
@@ -236,8 +238,8 @@ class Parser {
|
|
|
236
238
|
this.bytesRead = 0
|
|
237
239
|
|
|
238
240
|
this.keepAlive = ''
|
|
239
|
-
this.contentLength =
|
|
240
|
-
this.
|
|
241
|
+
this.contentLength = -1
|
|
242
|
+
this.connectionKeepAlive = false
|
|
241
243
|
this.maxResponseSize = client[kMaxResponseSize]
|
|
242
244
|
}
|
|
243
245
|
|
|
@@ -327,7 +329,16 @@ class Parser {
|
|
|
327
329
|
currentBufferPtr = llhttp.malloc(currentBufferSize)
|
|
328
330
|
}
|
|
329
331
|
|
|
330
|
-
|
|
332
|
+
if (
|
|
333
|
+
currentBuffer === null ||
|
|
334
|
+
currentBuffer.buffer !== llhttp.memory.buffer ||
|
|
335
|
+
currentBuffer.byteOffset !== currentBufferPtr ||
|
|
336
|
+
currentBuffer.byteLength !== currentBufferSize
|
|
337
|
+
) {
|
|
338
|
+
currentBuffer = new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize)
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
currentBuffer.set(chunk)
|
|
331
342
|
|
|
332
343
|
// Call `execute` on the wasm parser.
|
|
333
344
|
// We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,
|
|
@@ -365,10 +376,32 @@ class Parser {
|
|
|
365
376
|
finish () {
|
|
366
377
|
assert(currentParser === null)
|
|
367
378
|
assert(this.ptr != null)
|
|
368
|
-
assert(!this.paused)
|
|
369
379
|
|
|
370
380
|
const { llhttp } = this
|
|
371
381
|
|
|
382
|
+
// The peer closed the connection. If the body parser was paused by
|
|
383
|
+
// backpressure we must finish parsing before signalling EOF, otherwise
|
|
384
|
+
// llhttp_finish() would crash (it used to assert !paused) or report a
|
|
385
|
+
// half-parsed message. Backpressure is advisory here: onData keeps buffering
|
|
386
|
+
// delivered bytes into the response stream, so resume across pauses and
|
|
387
|
+
// drain whatever is still buffered on the socket. A Content-Length/chunked
|
|
388
|
+
// body reaches on_message_complete during execute(); an EOF-delimited body
|
|
389
|
+
// stays paused (its length is unknown) and is completed by llhttp_finish().
|
|
390
|
+
if (this.paused) {
|
|
391
|
+
let data
|
|
392
|
+
do {
|
|
393
|
+
llhttp.llhttp_resume(this.ptr)
|
|
394
|
+
this.paused = false
|
|
395
|
+
data = this.socket.read() || EMPTY_BUF
|
|
396
|
+
this.execute(data)
|
|
397
|
+
} while (this.paused && data.length > 0)
|
|
398
|
+
|
|
399
|
+
if (this.paused) {
|
|
400
|
+
llhttp.llhttp_resume(this.ptr)
|
|
401
|
+
this.paused = false
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
|
|
372
405
|
let ret
|
|
373
406
|
|
|
374
407
|
try {
|
|
@@ -393,7 +426,7 @@ class Parser {
|
|
|
393
426
|
createError (ret, data) {
|
|
394
427
|
const { llhttp, contentLength, bytesRead } = this
|
|
395
428
|
|
|
396
|
-
if (contentLength && bytesRead !==
|
|
429
|
+
if (contentLength !== -1 && bytesRead !== contentLength) {
|
|
397
430
|
return new ResponseContentLengthMismatchError()
|
|
398
431
|
}
|
|
399
432
|
|
|
@@ -496,10 +529,17 @@ class Parser {
|
|
|
496
529
|
if (headerName === 'keep-alive') {
|
|
497
530
|
this.keepAlive += buf.toString()
|
|
498
531
|
} else if (headerName === 'connection') {
|
|
499
|
-
this.
|
|
532
|
+
this.connectionKeepAlive =
|
|
533
|
+
this.headers[len - 1].length === 10 &&
|
|
534
|
+
util.bufferToLowerCasedHeaderName(this.headers[len - 1]) === 'keep-alive'
|
|
500
535
|
}
|
|
501
536
|
} else if (key.length === 14 && util.bufferToLowerCasedHeaderName(key) === 'content-length') {
|
|
502
|
-
this.contentLength
|
|
537
|
+
if (this.contentLength === -1) {
|
|
538
|
+
this.contentLength = 0
|
|
539
|
+
}
|
|
540
|
+
for (let i = 0; i < buf.length; i++) {
|
|
541
|
+
this.contentLength = (this.contentLength * 10) + (buf[i] - 0x30)
|
|
542
|
+
}
|
|
503
543
|
}
|
|
504
544
|
|
|
505
545
|
this.trackHeader(buf.length)
|
|
@@ -556,7 +596,7 @@ class Parser {
|
|
|
556
596
|
client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))
|
|
557
597
|
|
|
558
598
|
try {
|
|
559
|
-
request.
|
|
599
|
+
request.onRequestUpgrade(statusCode, headers, socket)
|
|
560
600
|
} catch (err) {
|
|
561
601
|
util.destroy(socket, err)
|
|
562
602
|
}
|
|
@@ -608,7 +648,7 @@ class Parser {
|
|
|
608
648
|
this.shouldKeepAlive = (
|
|
609
649
|
shouldKeepAlive ||
|
|
610
650
|
// Override llhttp value which does not allow keepAlive for HEAD.
|
|
611
|
-
(request.method === 'HEAD' && !socket[kReset] && this.
|
|
651
|
+
(request.method === 'HEAD' && !socket[kReset] && this.connectionKeepAlive)
|
|
612
652
|
)
|
|
613
653
|
|
|
614
654
|
if (this.statusCode >= 200) {
|
|
@@ -659,7 +699,7 @@ class Parser {
|
|
|
659
699
|
socket[kReset] = true
|
|
660
700
|
}
|
|
661
701
|
|
|
662
|
-
const pause = request.
|
|
702
|
+
const pause = request.onResponseStart(statusCode, headers, this.resume, statusText) === false
|
|
663
703
|
|
|
664
704
|
if (request.aborted) {
|
|
665
705
|
return -1
|
|
@@ -711,7 +751,7 @@ class Parser {
|
|
|
711
751
|
|
|
712
752
|
this.bytesRead += buf.length
|
|
713
753
|
|
|
714
|
-
if (request.
|
|
754
|
+
if (request.onResponseData(buf) === false) {
|
|
715
755
|
return constants.ERROR.PAUSED
|
|
716
756
|
}
|
|
717
757
|
|
|
@@ -741,9 +781,9 @@ class Parser {
|
|
|
741
781
|
this.statusCode = 0
|
|
742
782
|
this.statusText = ''
|
|
743
783
|
this.bytesRead = 0
|
|
744
|
-
this.contentLength =
|
|
784
|
+
this.contentLength = -1
|
|
745
785
|
this.keepAlive = ''
|
|
746
|
-
this.
|
|
786
|
+
this.connectionKeepAlive = false
|
|
747
787
|
|
|
748
788
|
this.headers = []
|
|
749
789
|
this.headersSize = 0
|
|
@@ -752,12 +792,12 @@ class Parser {
|
|
|
752
792
|
return 0
|
|
753
793
|
}
|
|
754
794
|
|
|
755
|
-
if (request.method !== 'HEAD' && contentLength && bytesRead !==
|
|
795
|
+
if (request.method !== 'HEAD' && contentLength !== -1 && bytesRead !== contentLength) {
|
|
756
796
|
util.destroy(socket, new ResponseContentLengthMismatchError())
|
|
757
797
|
return -1
|
|
758
798
|
}
|
|
759
799
|
|
|
760
|
-
request.
|
|
800
|
+
request.onResponseEnd(headers)
|
|
761
801
|
|
|
762
802
|
client[kQueue][client[kRunningIdx]++] = null
|
|
763
803
|
socket[kSocketUsed] = client[kPending] === 0
|
|
@@ -1104,6 +1144,32 @@ function shouldSendContentLength (method) {
|
|
|
1104
1144
|
return method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS' && method !== 'TRACE' && method !== 'CONNECT'
|
|
1105
1145
|
}
|
|
1106
1146
|
|
|
1147
|
+
function setTypeOfService (socket, request) {
|
|
1148
|
+
if (typeof socket.setTypeOfService !== 'function') {
|
|
1149
|
+
return
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
const typeOfService = request.typeOfService
|
|
1153
|
+
|
|
1154
|
+
if (typeOfService === undefined) {
|
|
1155
|
+
return
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
const currentTypeOfService = socket[kTypeOfService]
|
|
1159
|
+
|
|
1160
|
+
if (currentTypeOfService === typeOfService) {
|
|
1161
|
+
return
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
try {
|
|
1165
|
+
socket.setTypeOfService(typeOfService)
|
|
1166
|
+
socket[kTypeOfService] = typeOfService
|
|
1167
|
+
} catch {
|
|
1168
|
+
// QoS marking is best-effort. setTypeOfService() can throw synchronously on
|
|
1169
|
+
// some platforms depending on socket state, but that must not abort the request.
|
|
1170
|
+
}
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1107
1173
|
/**
|
|
1108
1174
|
* @param {import('./client.js')} client
|
|
1109
1175
|
* @param {import('../core/request.js')} request
|
|
@@ -1207,7 +1273,7 @@ function writeH1 (client, request) {
|
|
|
1207
1273
|
}
|
|
1208
1274
|
|
|
1209
1275
|
try {
|
|
1210
|
-
request.
|
|
1276
|
+
request.onRequestStart(abort, null)
|
|
1211
1277
|
} catch (err) {
|
|
1212
1278
|
util.errorRequest(client, request, err)
|
|
1213
1279
|
}
|
|
@@ -1235,7 +1301,7 @@ function writeH1 (client, request) {
|
|
|
1235
1301
|
socket[kReset] = reset
|
|
1236
1302
|
}
|
|
1237
1303
|
|
|
1238
|
-
if (client[kMaxRequests] && socket[kCounter]
|
|
1304
|
+
if (client[kMaxRequests] && ++socket[kCounter] >= client[kMaxRequests]) {
|
|
1239
1305
|
socket[kReset] = true
|
|
1240
1306
|
}
|
|
1241
1307
|
|
|
@@ -1243,9 +1309,7 @@ function writeH1 (client, request) {
|
|
|
1243
1309
|
socket[kBlocking] = true
|
|
1244
1310
|
}
|
|
1245
1311
|
|
|
1246
|
-
|
|
1247
|
-
socket.setTypeOfService(request.typeOfService)
|
|
1248
|
-
}
|
|
1312
|
+
setTypeOfService(socket, request)
|
|
1249
1313
|
|
|
1250
1314
|
let header = `${method} ${path} HTTP/1.1\r\n`
|
|
1251
1315
|
|
|
@@ -1493,8 +1557,6 @@ function writeBuffer (abort, body, client, request, socket, contentLength, heade
|
|
|
1493
1557
|
* @returns {Promise<void>}
|
|
1494
1558
|
*/
|
|
1495
1559
|
async function writeBlob (abort, body, client, request, socket, contentLength, header, expectsPayload) {
|
|
1496
|
-
assert(contentLength === body.size, 'blob body must have content length')
|
|
1497
|
-
|
|
1498
1560
|
try {
|
|
1499
1561
|
if (contentLength != null && contentLength !== body.size) {
|
|
1500
1562
|
throw new RequestContentLengthMismatchError()
|
|
@@ -1606,7 +1668,7 @@ class AsyncWriter {
|
|
|
1606
1668
|
}
|
|
1607
1669
|
|
|
1608
1670
|
/**
|
|
1609
|
-
* @param {
|
|
1671
|
+
* @param {string|Uint8Array} chunk
|
|
1610
1672
|
* @returns
|
|
1611
1673
|
*/
|
|
1612
1674
|
write (chunk) {
|
|
@@ -1620,7 +1682,7 @@ class AsyncWriter {
|
|
|
1620
1682
|
return false
|
|
1621
1683
|
}
|
|
1622
1684
|
|
|
1623
|
-
const len = Buffer.byteLength(chunk)
|
|
1685
|
+
const len = chunk instanceof Uint8Array ? chunk.byteLength : Buffer.byteLength(chunk)
|
|
1624
1686
|
if (!len) {
|
|
1625
1687
|
return true
|
|
1626
1688
|
}
|