@openclaw/slack 2026.9.5 → 2026.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/icon.png +0 -0
- package/dist/.setup/{account-inspect-B86OaUEt.mjs → account-inspect-DWBXpER6.mjs} +1 -1
- package/dist/.setup/{accounts-C1FspRF-.mjs → accounts-D_N9IqNA.mjs} +33 -10
- package/dist/.setup/{action-runtime-Aa-h24Fq.mjs → action-runtime-DfWvuiZd.mjs} +46 -65
- package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +2 -0
- package/dist/.setup/{actions-BvGUGk3w.mjs → actions-Df0CzcDl.mjs} +148 -204
- package/dist/.setup/{approval-handler.runtime-BcZNF-VP.mjs → approval-handler.runtime-Ed6Sw5VK.mjs} +37 -47
- package/dist/.setup/{approval-message-updates-Cy1cxfBn.mjs → approval-message-updates-BadvtA7R.mjs} +1 -2
- package/dist/.setup/{channel-DrBm0NFw.mjs → channel-C7bgPSTE.mjs} +192 -280
- package/dist/.setup/channel-meta-C443t-lI.mjs +27 -0
- package/dist/.setup/{channel-type-osC0XOES.mjs → channel-type-ClOttrZ5.mjs} +13 -21
- package/dist/.setup/{channel.setup-BSY5hzVz.mjs → channel.setup-Dh2jzAjN.mjs} +35 -42
- package/dist/.setup/{config-schema-DrY3S7Ee.mjs → config-schema-BZCxmHKG.mjs} +32 -21
- package/dist/.setup/{directory-config-CTs7YyuU.mjs → directory-config-BOUWH3hR.mjs} +7 -10
- package/dist/.setup/{directory-live-Btq0063Q.mjs → directory-live-B2O4B_Ho.mjs} +9 -21
- package/dist/.setup/doctor-contract-CRN1Z_c7.mjs +342 -0
- package/dist/.setup/{message-tool-api-DRnDCVdY.mjs → message-tool-api-Cu4lwlGy.mjs} +34 -48
- package/dist/.setup/{provider-w36VTgZ3.mjs → monitor-BPVfkumU.mjs} +2191 -2704
- package/dist/.setup/{outbound-adapter-K3Ek1iSR.mjs → outbound-adapter-Bv48XUjq.mjs} +10 -21
- package/dist/.setup/{pipeline.runtime-BZqGcbfi.mjs → pipeline.runtime-B1H63Frf.mjs} +901 -892
- package/dist/.setup/{plugin-routes-C3X0eVaK.mjs → plugin-routes-B8tooDLj.mjs} +1 -1
- package/dist/.setup/{policy-Db_QWCZZ.mjs → policy-D-jfM174.mjs} +5 -5
- package/dist/.setup/{probe-64C6k3_Q.mjs → probe-B2Y9qc_z.mjs} +101 -39
- package/dist/.setup/{registry-bbjH7IHX.mjs → registry-CIbMfuf8.mjs} +6 -2
- package/dist/.setup/{relay-source-CDqY76Vp.mjs → relay-source-BpKdjsll.mjs} +10 -12
- package/dist/.setup/{replies-CWFhjS9S.mjs → replies-BAnUtr2f.mjs} +16 -76
- package/dist/.setup/{reply-blocks-9uCeAJts.mjs → reply-blocks-SE1kTE3I.mjs} +27 -154
- package/dist/.setup/{resolve-channels-x8fX1SEt.mjs → resolve-channels-XXBn8UU_.mjs} +4 -5
- package/dist/.setup/{resolve-users-B8BpBnH2.mjs → resolve-users-DW0ngD03.mjs} +20 -22
- package/dist/.setup/{scopes-CJ-6l4v4.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-6GCb3lBP.mjs → send-BOVLQi3n.mjs} +102 -199
- package/dist/.setup/{session-status-BhG6pdiH.mjs → session-status-DscajIsd.mjs} +323 -250
- package/dist/.setup/{setup-plugin-api-DtCEByQB.mjs → setup-plugin-api-DTtbTKNk.mjs} +1 -1
- package/dist/.setup/{setup-surface-DsE0hsYY.mjs → setup-surface-Dn7QgWRE.mjs} +24 -56
- package/dist/.setup/{shared-BNmqCPgQ.mjs → shared-qau-uDGl.mjs} +30 -56
- package/dist/.setup/{slash-dispatch.runtime-Io4ASZsY.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/web-globals/streams.d.ts +4 -0
- 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/web-globals/streams.d.ts +4 -0
- 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/node_modules/zod/README.md +2 -2
- package/node_modules/zod/compile.cjs +19 -0
- package/node_modules/zod/index.cjs +19 -0
- package/node_modules/zod/locales/index.cjs +19 -0
- package/node_modules/zod/mini/index.cjs +19 -0
- package/node_modules/zod/package.json +8 -7
- package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
- package/node_modules/zod/src/v4/classic/external.ts +2 -0
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +248 -25
- package/node_modules/zod/src/v4/classic/schemas.ts +243 -168
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +60 -9
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +6 -0
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +265 -0
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +112 -6
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +130 -1
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +157 -0
- package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +40 -2
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +27 -7
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +88 -56
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +39 -0
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +56 -0
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +3 -2
- package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
- package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +46 -1
- package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +95 -1
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +33 -1
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +234 -38
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +569 -0
- package/node_modules/zod/src/v4/core/api.ts +44 -28
- package/node_modules/zod/src/v4/core/checks.ts +62 -102
- package/node_modules/zod/src/v4/core/compile.ts +218 -93
- package/node_modules/zod/src/v4/core/core.ts +1 -3
- package/node_modules/zod/src/v4/core/doc.ts +6 -2
- package/node_modules/zod/src/v4/core/errors.ts +3 -6
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +2 -2
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +185 -81
- package/node_modules/zod/src/v4/core/memoizer.ts +75 -28
- package/node_modules/zod/src/v4/core/parse.ts +37 -16
- package/node_modules/zod/src/v4/core/regexes.ts +14 -4
- package/node_modules/zod/src/v4/core/schemas.ts +296 -132
- package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
- package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +35 -0
- package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +399 -2
- package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
- package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
- package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +118 -16
- package/node_modules/zod/src/v4/core/to-json-schema.ts +9 -7
- package/node_modules/zod/src/v4/core/util.ts +218 -147
- package/node_modules/zod/src/v4/core/versions.ts +2 -2
- package/node_modules/zod/src/v4/locales/ar.ts +2 -0
- package/node_modules/zod/src/v4/locales/az.ts +2 -0
- package/node_modules/zod/src/v4/locales/be.ts +2 -0
- package/node_modules/zod/src/v4/locales/bg.ts +2 -0
- package/node_modules/zod/src/v4/locales/bn.ts +2 -0
- package/node_modules/zod/src/v4/locales/ca.ts +2 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +2 -0
- package/node_modules/zod/src/v4/locales/cs.ts +2 -0
- package/node_modules/zod/src/v4/locales/da.ts +2 -0
- package/node_modules/zod/src/v4/locales/de.ts +2 -0
- package/node_modules/zod/src/v4/locales/el.ts +2 -0
- package/node_modules/zod/src/v4/locales/en.ts +2 -0
- package/node_modules/zod/src/v4/locales/eo.ts +2 -0
- package/node_modules/zod/src/v4/locales/es.ts +2 -0
- package/node_modules/zod/src/v4/locales/fa.ts +2 -0
- package/node_modules/zod/src/v4/locales/fi.ts +2 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +2 -0
- package/node_modules/zod/src/v4/locales/fr.ts +2 -0
- package/node_modules/zod/src/v4/locales/gu.ts +2 -0
- package/node_modules/zod/src/v4/locales/he.ts +2 -0
- package/node_modules/zod/src/v4/locales/hi.ts +2 -0
- package/node_modules/zod/src/v4/locales/hr.ts +2 -0
- package/node_modules/zod/src/v4/locales/hu.ts +2 -0
- package/node_modules/zod/src/v4/locales/hy.ts +2 -0
- package/node_modules/zod/src/v4/locales/id.ts +2 -0
- package/node_modules/zod/src/v4/locales/index.ts +1 -0
- package/node_modules/zod/src/v4/locales/is.ts +2 -0
- package/node_modules/zod/src/v4/locales/it.ts +2 -0
- package/node_modules/zod/src/v4/locales/ja.ts +2 -0
- package/node_modules/zod/src/v4/locales/ka.ts +2 -0
- package/node_modules/zod/src/v4/locales/km.ts +2 -0
- package/node_modules/zod/src/v4/locales/kn.ts +2 -0
- package/node_modules/zod/src/v4/locales/ko.ts +2 -0
- package/node_modules/zod/src/v4/locales/lt.ts +2 -0
- package/node_modules/zod/src/v4/locales/mk.ts +2 -0
- package/node_modules/zod/src/v4/locales/ms.ts +2 -0
- package/node_modules/zod/src/v4/locales/ne.ts +2 -0
- package/node_modules/zod/src/v4/locales/nl.ts +2 -0
- package/node_modules/zod/src/v4/locales/nn.ts +2 -0
- package/node_modules/zod/src/v4/locales/no.ts +2 -0
- package/node_modules/zod/src/v4/locales/ota.ts +2 -0
- package/node_modules/zod/src/v4/locales/pl.ts +2 -0
- package/node_modules/zod/src/v4/locales/ps.ts +2 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +2 -0
- package/node_modules/zod/src/v4/locales/pt.ts +2 -0
- package/node_modules/zod/src/v4/locales/ro.ts +2 -0
- package/node_modules/zod/src/v4/locales/ru.ts +2 -0
- package/node_modules/zod/src/v4/locales/sk.ts +2 -0
- package/node_modules/zod/src/v4/locales/sl.ts +2 -0
- package/node_modules/zod/src/v4/locales/sv.ts +2 -0
- package/node_modules/zod/src/v4/locales/ta.ts +2 -0
- package/node_modules/zod/src/v4/locales/tg.ts +135 -0
- package/node_modules/zod/src/v4/locales/th.ts +2 -0
- package/node_modules/zod/src/v4/locales/tk.ts +2 -0
- package/node_modules/zod/src/v4/locales/tr.ts +2 -0
- package/node_modules/zod/src/v4/locales/uk.ts +2 -0
- package/node_modules/zod/src/v4/locales/ur.ts +2 -0
- package/node_modules/zod/src/v4/locales/uz.ts +2 -0
- package/node_modules/zod/src/v4/locales/vi.ts +2 -0
- package/node_modules/zod/src/v4/locales/yo.ts +2 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +2 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +2 -0
- package/node_modules/zod/src/v4/mini/external.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +32 -7
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +1 -1
- package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +86 -0
- package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +23 -0
- package/node_modules/zod/v3/ZodError.cjs +19 -0
- package/node_modules/zod/v3/errors.cjs +19 -0
- package/node_modules/zod/v3/external.cjs +19 -0
- package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
- package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
- package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
- package/node_modules/zod/v3/helpers/util.cjs +19 -0
- package/node_modules/zod/v3/index.cjs +19 -0
- package/node_modules/zod/v3/standard-schema.cjs +19 -0
- package/node_modules/zod/v3/types.cjs +19 -0
- package/node_modules/zod/v4/classic/checks.cjs +19 -0
- package/node_modules/zod/v4/classic/coerce.cjs +19 -0
- package/node_modules/zod/v4/classic/compat.cjs +19 -0
- package/node_modules/zod/v4/classic/deep-partial.cjs +19 -0
- package/node_modules/zod/v4/classic/errors.cjs +19 -0
- package/node_modules/zod/v4/classic/external.cjs +22 -1
- package/node_modules/zod/v4/classic/external.d.cts +1 -1
- package/node_modules/zod/v4/classic/external.d.ts +1 -1
- package/node_modules/zod/v4/classic/external.js +1 -1
- package/node_modules/zod/v4/classic/from-json-schema.cjs +264 -24
- package/node_modules/zod/v4/classic/from-json-schema.js +245 -24
- package/node_modules/zod/v4/classic/in-out.cjs +19 -0
- package/node_modules/zod/v4/classic/index.cjs +19 -0
- package/node_modules/zod/v4/classic/iso.cjs +19 -0
- package/node_modules/zod/v4/classic/parse.cjs +19 -0
- package/node_modules/zod/v4/classic/schemas.cjs +100 -35
- package/node_modules/zod/v4/classic/schemas.d.cts +15 -1
- package/node_modules/zod/v4/classic/schemas.d.ts +15 -1
- package/node_modules/zod/v4/classic/schemas.js +77 -33
- package/node_modules/zod/v4/core/api.cjs +45 -22
- package/node_modules/zod/v4/core/api.d.cts +12 -6
- package/node_modules/zod/v4/core/api.d.ts +12 -6
- package/node_modules/zod/v4/core/api.js +25 -22
- package/node_modules/zod/v4/core/checks.cjs +51 -97
- package/node_modules/zod/v4/core/checks.d.cts +17 -1
- package/node_modules/zod/v4/core/checks.d.ts +17 -1
- package/node_modules/zod/v4/core/checks.js +31 -96
- package/node_modules/zod/v4/core/compile.cjs +173 -78
- package/node_modules/zod/v4/core/compile.d.cts +18 -4
- package/node_modules/zod/v4/core/compile.d.ts +18 -4
- package/node_modules/zod/v4/core/compile.js +154 -79
- package/node_modules/zod/v4/core/core.cjs +20 -1
- package/node_modules/zod/v4/core/core.js +1 -1
- package/node_modules/zod/v4/core/doc.cjs +26 -2
- package/node_modules/zod/v4/core/doc.js +7 -2
- package/node_modules/zod/v4/core/errors.cjs +21 -5
- package/node_modules/zod/v4/core/errors.js +2 -5
- package/node_modules/zod/v4/core/index.cjs +19 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +20 -1
- package/node_modules/zod/v4/core/json-schema-generator.js +2 -2
- package/node_modules/zod/v4/core/json-schema-processors.cjs +188 -72
- package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
- package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
- package/node_modules/zod/v4/core/json-schema-processors.js +170 -74
- package/node_modules/zod/v4/core/json-schema.cjs +19 -0
- package/node_modules/zod/v4/core/memoizer.cjs +111 -23
- package/node_modules/zod/v4/core/memoizer.js +69 -23
- package/node_modules/zod/v4/core/parse.cjs +56 -16
- package/node_modules/zod/v4/core/parse.js +37 -16
- package/node_modules/zod/v4/core/regexes.cjs +31 -6
- package/node_modules/zod/v4/core/regexes.d.cts +3 -0
- package/node_modules/zod/v4/core/regexes.d.ts +3 -0
- package/node_modules/zod/v4/core/regexes.js +10 -4
- package/node_modules/zod/v4/core/registries.cjs +19 -0
- package/node_modules/zod/v4/core/schemas.cjs +302 -114
- package/node_modules/zod/v4/core/schemas.d.cts +28 -8
- package/node_modules/zod/v4/core/schemas.d.ts +28 -8
- package/node_modules/zod/v4/core/schemas.js +279 -113
- package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
- package/node_modules/zod/v4/core/to-json-schema.cjs +28 -7
- package/node_modules/zod/v4/core/to-json-schema.d.cts +4 -3
- package/node_modules/zod/v4/core/to-json-schema.d.ts +4 -3
- package/node_modules/zod/v4/core/to-json-schema.js +7 -6
- package/node_modules/zod/v4/core/util.cjs +177 -143
- package/node_modules/zod/v4/core/util.d.cts +25 -4
- package/node_modules/zod/v4/core/util.d.ts +25 -4
- package/node_modules/zod/v4/core/util.js +156 -143
- package/node_modules/zod/v4/core/versions.cjs +21 -2
- package/node_modules/zod/v4/core/versions.d.cts +1 -1
- package/node_modules/zod/v4/core/versions.d.ts +1 -1
- package/node_modules/zod/v4/core/versions.js +2 -2
- package/node_modules/zod/v4/core/visit.cjs +19 -0
- package/node_modules/zod/v4/index.cjs +19 -0
- package/node_modules/zod/v4/locales/ar.cjs +2 -0
- package/node_modules/zod/v4/locales/ar.js +2 -0
- package/node_modules/zod/v4/locales/az.cjs +2 -0
- package/node_modules/zod/v4/locales/az.js +2 -0
- package/node_modules/zod/v4/locales/be.cjs +2 -0
- package/node_modules/zod/v4/locales/be.js +2 -0
- package/node_modules/zod/v4/locales/bg.cjs +2 -0
- package/node_modules/zod/v4/locales/bg.js +2 -0
- package/node_modules/zod/v4/locales/bn.cjs +2 -0
- package/node_modules/zod/v4/locales/bn.js +2 -0
- package/node_modules/zod/v4/locales/ca.cjs +2 -0
- package/node_modules/zod/v4/locales/ca.js +2 -0
- package/node_modules/zod/v4/locales/ckb.cjs +2 -0
- package/node_modules/zod/v4/locales/ckb.js +2 -0
- package/node_modules/zod/v4/locales/cs.cjs +2 -0
- package/node_modules/zod/v4/locales/cs.js +2 -0
- package/node_modules/zod/v4/locales/da.cjs +2 -0
- package/node_modules/zod/v4/locales/da.js +2 -0
- package/node_modules/zod/v4/locales/de.cjs +2 -0
- package/node_modules/zod/v4/locales/de.js +2 -0
- package/node_modules/zod/v4/locales/el.cjs +2 -0
- package/node_modules/zod/v4/locales/el.js +2 -0
- package/node_modules/zod/v4/locales/en.cjs +2 -0
- package/node_modules/zod/v4/locales/en.js +2 -0
- package/node_modules/zod/v4/locales/eo.cjs +2 -0
- package/node_modules/zod/v4/locales/eo.js +2 -0
- package/node_modules/zod/v4/locales/es.cjs +2 -0
- package/node_modules/zod/v4/locales/es.js +2 -0
- package/node_modules/zod/v4/locales/fa.cjs +2 -0
- package/node_modules/zod/v4/locales/fa.js +2 -0
- package/node_modules/zod/v4/locales/fi.cjs +2 -0
- package/node_modules/zod/v4/locales/fi.js +2 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
- package/node_modules/zod/v4/locales/fr-CA.js +2 -0
- package/node_modules/zod/v4/locales/fr.cjs +2 -0
- package/node_modules/zod/v4/locales/fr.js +2 -0
- package/node_modules/zod/v4/locales/gu.cjs +2 -0
- package/node_modules/zod/v4/locales/gu.js +2 -0
- package/node_modules/zod/v4/locales/he.cjs +2 -0
- package/node_modules/zod/v4/locales/he.js +2 -0
- package/node_modules/zod/v4/locales/hi.cjs +2 -0
- package/node_modules/zod/v4/locales/hi.js +2 -0
- package/node_modules/zod/v4/locales/hr.cjs +2 -0
- package/node_modules/zod/v4/locales/hr.js +2 -0
- package/node_modules/zod/v4/locales/hu.cjs +2 -0
- package/node_modules/zod/v4/locales/hu.js +2 -0
- package/node_modules/zod/v4/locales/hy.cjs +2 -0
- package/node_modules/zod/v4/locales/hy.js +2 -0
- package/node_modules/zod/v4/locales/id.cjs +2 -0
- package/node_modules/zod/v4/locales/id.js +2 -0
- package/node_modules/zod/v4/locales/index.cjs +22 -1
- package/node_modules/zod/v4/locales/index.d.cts +1 -0
- package/node_modules/zod/v4/locales/index.d.ts +1 -0
- package/node_modules/zod/v4/locales/index.js +1 -0
- package/node_modules/zod/v4/locales/is.cjs +2 -0
- package/node_modules/zod/v4/locales/is.js +2 -0
- package/node_modules/zod/v4/locales/it.cjs +2 -0
- package/node_modules/zod/v4/locales/it.js +2 -0
- package/node_modules/zod/v4/locales/ja.cjs +2 -0
- package/node_modules/zod/v4/locales/ja.js +2 -0
- package/node_modules/zod/v4/locales/ka.cjs +2 -0
- package/node_modules/zod/v4/locales/ka.js +2 -0
- package/node_modules/zod/v4/locales/km.cjs +2 -0
- package/node_modules/zod/v4/locales/km.js +2 -0
- package/node_modules/zod/v4/locales/kn.cjs +2 -0
- package/node_modules/zod/v4/locales/kn.js +2 -0
- package/node_modules/zod/v4/locales/ko.cjs +2 -0
- package/node_modules/zod/v4/locales/ko.js +2 -0
- package/node_modules/zod/v4/locales/lt.cjs +2 -0
- package/node_modules/zod/v4/locales/lt.js +2 -0
- package/node_modules/zod/v4/locales/mk.cjs +2 -0
- package/node_modules/zod/v4/locales/mk.js +2 -0
- package/node_modules/zod/v4/locales/ms.cjs +2 -0
- package/node_modules/zod/v4/locales/ms.js +2 -0
- package/node_modules/zod/v4/locales/ne.cjs +2 -0
- package/node_modules/zod/v4/locales/ne.js +2 -0
- package/node_modules/zod/v4/locales/nl.cjs +2 -0
- package/node_modules/zod/v4/locales/nl.js +2 -0
- package/node_modules/zod/v4/locales/nn.cjs +2 -0
- package/node_modules/zod/v4/locales/nn.js +2 -0
- package/node_modules/zod/v4/locales/no.cjs +2 -0
- package/node_modules/zod/v4/locales/no.js +2 -0
- package/node_modules/zod/v4/locales/ota.cjs +2 -0
- package/node_modules/zod/v4/locales/ota.js +2 -0
- package/node_modules/zod/v4/locales/pl.cjs +2 -0
- package/node_modules/zod/v4/locales/pl.js +2 -0
- package/node_modules/zod/v4/locales/ps.cjs +2 -0
- package/node_modules/zod/v4/locales/ps.js +2 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +2 -0
- package/node_modules/zod/v4/locales/pt-BR.js +2 -0
- package/node_modules/zod/v4/locales/pt.cjs +2 -0
- package/node_modules/zod/v4/locales/pt.js +2 -0
- package/node_modules/zod/v4/locales/ro.cjs +2 -0
- package/node_modules/zod/v4/locales/ro.js +2 -0
- package/node_modules/zod/v4/locales/ru.cjs +2 -0
- package/node_modules/zod/v4/locales/ru.js +2 -0
- package/node_modules/zod/v4/locales/sk.cjs +2 -0
- package/node_modules/zod/v4/locales/sk.js +2 -0
- package/node_modules/zod/v4/locales/sl.cjs +2 -0
- package/node_modules/zod/v4/locales/sl.js +2 -0
- package/node_modules/zod/v4/locales/sv.cjs +2 -0
- package/node_modules/zod/v4/locales/sv.js +2 -0
- package/node_modules/zod/v4/locales/ta.cjs +2 -0
- package/node_modules/zod/v4/locales/ta.js +2 -0
- package/node_modules/zod/v4/locales/tg.cjs +144 -0
- package/node_modules/zod/v4/locales/tg.d.cts +5 -0
- package/node_modules/zod/v4/locales/tg.d.ts +4 -0
- package/node_modules/zod/v4/locales/tg.js +117 -0
- package/node_modules/zod/v4/locales/th.cjs +2 -0
- package/node_modules/zod/v4/locales/th.js +2 -0
- package/node_modules/zod/v4/locales/tk.cjs +2 -0
- package/node_modules/zod/v4/locales/tk.js +2 -0
- package/node_modules/zod/v4/locales/tr.cjs +2 -0
- package/node_modules/zod/v4/locales/tr.js +2 -0
- package/node_modules/zod/v4/locales/uk.cjs +2 -0
- package/node_modules/zod/v4/locales/uk.js +2 -0
- package/node_modules/zod/v4/locales/ur.cjs +2 -0
- package/node_modules/zod/v4/locales/ur.js +2 -0
- package/node_modules/zod/v4/locales/uz.cjs +2 -0
- package/node_modules/zod/v4/locales/uz.js +2 -0
- package/node_modules/zod/v4/locales/vi.cjs +2 -0
- package/node_modules/zod/v4/locales/vi.js +2 -0
- package/node_modules/zod/v4/locales/yo.cjs +2 -0
- package/node_modules/zod/v4/locales/yo.js +2 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
- package/node_modules/zod/v4/locales/zh-CN.js +2 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
- package/node_modules/zod/v4/locales/zh-TW.js +2 -0
- package/node_modules/zod/v4/mini/checks.cjs +19 -0
- package/node_modules/zod/v4/mini/coerce.cjs +19 -0
- package/node_modules/zod/v4/mini/deep-partial.cjs +19 -0
- package/node_modules/zod/v4/mini/external.cjs +22 -1
- package/node_modules/zod/v4/mini/external.d.cts +1 -1
- package/node_modules/zod/v4/mini/external.d.ts +1 -1
- package/node_modules/zod/v4/mini/external.js +1 -1
- package/node_modules/zod/v4/mini/in-out.cjs +19 -0
- package/node_modules/zod/v4/mini/index.cjs +19 -0
- package/node_modules/zod/v4/mini/iso.cjs +19 -0
- package/node_modules/zod/v4/mini/parse.cjs +19 -0
- package/node_modules/zod/v4/mini/schemas.cjs +44 -8
- package/node_modules/zod/v4/mini/schemas.d.cts +6 -1
- package/node_modules/zod/v4/mini/schemas.d.ts +6 -1
- package/node_modules/zod/v4/mini/schemas.js +21 -6
- package/node_modules/zod/v4-mini/index.cjs +19 -0
- package/openclaw.plugin.json +49 -3
- package/package.json +8 -8
- package/dist/.setup/accounts.runtime-BpWv-6-2.mjs +0 -2
- package/dist/.setup/action-runtime.runtime-DwH3NdpT.mjs +0 -2
- package/dist/.setup/doctor-contract-CtMUqjvk.mjs +0 -186
- package/dist/.setup/monitor-Dw5uuKWM.mjs +0 -13
- package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
- package/dist/.setup/send.runtime-BmqRP-WG.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
|
@@ -16,6 +16,7 @@ const {
|
|
|
16
16
|
hasSafeIterator,
|
|
17
17
|
isBlobLike,
|
|
18
18
|
serializePathWithQuery,
|
|
19
|
+
parseHeaders,
|
|
19
20
|
assertRequestHandler,
|
|
20
21
|
getServerName,
|
|
21
22
|
normalizedMethodRecords,
|
|
@@ -43,6 +44,55 @@ function isValidContentLengthHeaderValue (val) {
|
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
const kHandler = Symbol('handler')
|
|
47
|
+
const kController = Symbol('controller')
|
|
48
|
+
const kResume = Symbol('resume')
|
|
49
|
+
|
|
50
|
+
class RequestController {
|
|
51
|
+
#paused = false
|
|
52
|
+
#reason = null
|
|
53
|
+
#aborted = false
|
|
54
|
+
#abort
|
|
55
|
+
|
|
56
|
+
[kResume] = null
|
|
57
|
+
|
|
58
|
+
rawHeaders = null
|
|
59
|
+
rawTrailers = null
|
|
60
|
+
|
|
61
|
+
constructor (abort) {
|
|
62
|
+
this.#abort = abort
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
pause () {
|
|
66
|
+
this.#paused = true
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
resume () {
|
|
70
|
+
if (this.#paused) {
|
|
71
|
+
this.#paused = false
|
|
72
|
+
this[kResume]?.()
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
abort (reason) {
|
|
77
|
+
if (!this.#aborted) {
|
|
78
|
+
this.#aborted = true
|
|
79
|
+
this.#reason = reason
|
|
80
|
+
this.#abort(reason)
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
get aborted () {
|
|
85
|
+
return this.#aborted
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
get reason () {
|
|
89
|
+
return this.#reason
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
get paused () {
|
|
93
|
+
return this.#paused
|
|
94
|
+
}
|
|
95
|
+
}
|
|
46
96
|
|
|
47
97
|
class Request {
|
|
48
98
|
constructor (origin, {
|
|
@@ -123,7 +173,7 @@ class Request {
|
|
|
123
173
|
|
|
124
174
|
this.method = method
|
|
125
175
|
|
|
126
|
-
this.typeOfService = typeOfService
|
|
176
|
+
this.typeOfService = typeOfService
|
|
127
177
|
|
|
128
178
|
this.abort = null
|
|
129
179
|
|
|
@@ -175,7 +225,7 @@ class Request {
|
|
|
175
225
|
this.protocol = getProtocolFromUrlString(origin)
|
|
176
226
|
|
|
177
227
|
this.idempotent = idempotent == null
|
|
178
|
-
? method === 'HEAD' || method === 'GET'
|
|
228
|
+
? method === 'HEAD' || method === 'GET' || method === 'QUERY'
|
|
179
229
|
: idempotent
|
|
180
230
|
|
|
181
231
|
this.blocking = blocking ?? this.method !== 'HEAD'
|
|
@@ -256,23 +306,26 @@ class Request {
|
|
|
256
306
|
}
|
|
257
307
|
}
|
|
258
308
|
|
|
259
|
-
|
|
309
|
+
onRequestStart (abort, context) {
|
|
260
310
|
assert(!this.aborted)
|
|
261
311
|
assert(!this.completed)
|
|
262
312
|
|
|
313
|
+
this[kController] = new RequestController(abort)
|
|
314
|
+
|
|
263
315
|
if (this.error) {
|
|
264
|
-
abort(this.error)
|
|
265
|
-
|
|
266
|
-
this.abort = abort
|
|
267
|
-
return this[kHandler].onConnect(abort)
|
|
316
|
+
this[kController].abort(this.error)
|
|
317
|
+
return
|
|
268
318
|
}
|
|
319
|
+
|
|
320
|
+
this.abort = abort
|
|
321
|
+
return this[kHandler].onRequestStart(this[kController], context)
|
|
269
322
|
}
|
|
270
323
|
|
|
271
324
|
onResponseStarted () {
|
|
272
325
|
return this[kHandler].onResponseStarted?.()
|
|
273
326
|
}
|
|
274
327
|
|
|
275
|
-
|
|
328
|
+
onResponseStart (statusCode, headers, resume, statusText) {
|
|
276
329
|
assert(!this.aborted)
|
|
277
330
|
assert(!this.completed)
|
|
278
331
|
|
|
@@ -280,36 +333,56 @@ class Request {
|
|
|
280
333
|
channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })
|
|
281
334
|
}
|
|
282
335
|
|
|
336
|
+
const controller = this[kController]
|
|
337
|
+
if (controller) {
|
|
338
|
+
controller[kResume] = resume
|
|
339
|
+
controller.rawHeaders = headers
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
const parsedHeaders = Array.isArray(headers) ? parseHeaders(headers) : headers
|
|
343
|
+
|
|
283
344
|
try {
|
|
284
|
-
|
|
345
|
+
this[kHandler].onResponseStart?.(controller, statusCode, parsedHeaders, statusText)
|
|
346
|
+
return !controller?.paused
|
|
285
347
|
} catch (err) {
|
|
286
348
|
this.abort(err)
|
|
349
|
+
return false
|
|
287
350
|
}
|
|
288
351
|
}
|
|
289
352
|
|
|
290
|
-
|
|
353
|
+
onResponseData (chunk) {
|
|
291
354
|
assert(!this.aborted)
|
|
292
355
|
assert(!this.completed)
|
|
293
356
|
|
|
294
357
|
if (channels.bodyChunkReceived.hasSubscribers) {
|
|
295
358
|
channels.bodyChunkReceived.publish({ request: this, chunk })
|
|
296
359
|
}
|
|
360
|
+
|
|
361
|
+
const controller = this[kController]
|
|
297
362
|
try {
|
|
298
|
-
|
|
363
|
+
this[kHandler].onResponseData?.(controller, chunk)
|
|
364
|
+
return !controller?.paused
|
|
299
365
|
} catch (err) {
|
|
300
366
|
this.abort(err)
|
|
301
367
|
return false
|
|
302
368
|
}
|
|
303
369
|
}
|
|
304
370
|
|
|
305
|
-
|
|
371
|
+
onRequestUpgrade (statusCode, headers, socket) {
|
|
306
372
|
assert(!this.aborted)
|
|
307
373
|
assert(!this.completed)
|
|
308
374
|
|
|
309
|
-
|
|
375
|
+
const controller = this[kController]
|
|
376
|
+
if (controller) {
|
|
377
|
+
controller.rawHeaders = headers
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
const parsedHeaders = Array.isArray(headers) ? parseHeaders(headers) : headers
|
|
381
|
+
|
|
382
|
+
return this[kHandler].onRequestUpgrade?.(controller, statusCode, parsedHeaders, socket)
|
|
310
383
|
}
|
|
311
384
|
|
|
312
|
-
|
|
385
|
+
onResponseEnd (trailers) {
|
|
313
386
|
this.onFinally()
|
|
314
387
|
|
|
315
388
|
assert(!this.aborted)
|
|
@@ -320,15 +393,22 @@ class Request {
|
|
|
320
393
|
channels.trailers.publish({ request: this, trailers })
|
|
321
394
|
}
|
|
322
395
|
|
|
396
|
+
const controller = this[kController]
|
|
397
|
+
if (controller) {
|
|
398
|
+
controller.rawTrailers = trailers
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
const parsedTrailers = Array.isArray(trailers) ? parseHeaders(trailers) : trailers
|
|
402
|
+
|
|
323
403
|
try {
|
|
324
|
-
return this[kHandler].
|
|
404
|
+
return this[kHandler].onResponseEnd?.(controller, parsedTrailers)
|
|
325
405
|
} catch (err) {
|
|
326
406
|
// TODO (fix): This might be a bad idea?
|
|
327
|
-
this.
|
|
407
|
+
this.onResponseError(err)
|
|
328
408
|
}
|
|
329
409
|
}
|
|
330
410
|
|
|
331
|
-
|
|
411
|
+
onResponseError (error) {
|
|
332
412
|
this.onFinally()
|
|
333
413
|
|
|
334
414
|
if (channels.error.hasSubscribers) {
|
|
@@ -340,7 +420,9 @@ class Request {
|
|
|
340
420
|
}
|
|
341
421
|
this.aborted = true
|
|
342
422
|
|
|
343
|
-
|
|
423
|
+
const controller = this[kController]
|
|
424
|
+
|
|
425
|
+
return this[kHandler].onResponseError?.(controller, error)
|
|
344
426
|
}
|
|
345
427
|
|
|
346
428
|
onFinally () {
|
|
@@ -5,6 +5,8 @@ module.exports = {
|
|
|
5
5
|
kDestroy: Symbol('destroy'),
|
|
6
6
|
kDispatch: Symbol('dispatch'),
|
|
7
7
|
kUrl: Symbol('url'),
|
|
8
|
+
kRequestOrigin: Symbol('request origin'),
|
|
9
|
+
kOriginless: Symbol('originless'),
|
|
8
10
|
kWriting: Symbol('writing'),
|
|
9
11
|
kResuming: Symbol('resuming'),
|
|
10
12
|
kQueue: Symbol('queue'),
|
|
@@ -56,12 +58,14 @@ module.exports = {
|
|
|
56
58
|
kCounter: Symbol('socket request counter'),
|
|
57
59
|
kMaxResponseSize: Symbol('max response size'),
|
|
58
60
|
kHTTP2Session: Symbol('http2Session'),
|
|
61
|
+
kHTTP2Options: Symbol('http2 options'),
|
|
59
62
|
kHTTP2SessionState: Symbol('http2Session state'),
|
|
60
63
|
kRetryHandlerDefaultRetry: Symbol('retry agent default retry'),
|
|
61
64
|
kConstruct: Symbol('constructable'),
|
|
62
65
|
kListeners: Symbol('listeners'),
|
|
63
66
|
kHTTPContext: Symbol('http context'),
|
|
64
67
|
kMaxConcurrentStreams: Symbol('max concurrent streams'),
|
|
68
|
+
kHostAuthority: Symbol('host authority'),
|
|
65
69
|
kHTTP2InitialWindowSize: Symbol('http2 initial window size'),
|
|
66
70
|
kHTTP2ConnectionWindowSize: Symbol('http2 connection window size'),
|
|
67
71
|
kEnableConnectProtocol: Symbol('http2session connect protocol'),
|
|
@@ -6,14 +6,12 @@ const { IncomingMessage } = require('node:http')
|
|
|
6
6
|
const stream = require('node:stream')
|
|
7
7
|
const net = require('node:net')
|
|
8
8
|
const { stringify } = require('node:querystring')
|
|
9
|
-
const { EventEmitter: EE } = require('node:events')
|
|
9
|
+
const { EventEmitter: EE, addAbortListener: addAbortListenerNative } = require('node:events')
|
|
10
10
|
const timers = require('../util/timers')
|
|
11
11
|
const { InvalidArgumentError, ConnectTimeoutError } = require('./errors')
|
|
12
12
|
const { headerNameLowerCasedRecord } = require('./constants')
|
|
13
13
|
const { tree } = require('./tree')
|
|
14
14
|
|
|
15
|
-
const [nodeMajor, nodeMinor] = process.versions.node.split('.', 2).map(v => Number(v))
|
|
16
|
-
|
|
17
15
|
class BodyAsyncIterable {
|
|
18
16
|
constructor (body) {
|
|
19
17
|
this[kBody] = body
|
|
@@ -85,23 +83,9 @@ function isStream (obj) {
|
|
|
85
83
|
/**
|
|
86
84
|
* @param {*} object
|
|
87
85
|
* @returns {object is Blob}
|
|
88
|
-
* based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)
|
|
89
86
|
*/
|
|
90
87
|
function isBlobLike (object) {
|
|
91
|
-
|
|
92
|
-
return false
|
|
93
|
-
} else if (object instanceof Blob) {
|
|
94
|
-
return true
|
|
95
|
-
} else if (typeof object !== 'object') {
|
|
96
|
-
return false
|
|
97
|
-
} else {
|
|
98
|
-
const sTag = object[Symbol.toStringTag]
|
|
99
|
-
|
|
100
|
-
return (sTag === 'Blob' || sTag === 'File') && (
|
|
101
|
-
('stream' in object && typeof object.stream === 'function') ||
|
|
102
|
-
('arrayBuffer' in object && typeof object.arrayBuffer === 'function')
|
|
103
|
-
)
|
|
104
|
-
}
|
|
88
|
+
return object instanceof Blob
|
|
105
89
|
}
|
|
106
90
|
|
|
107
91
|
/**
|
|
@@ -337,7 +321,7 @@ function isIterable (obj) {
|
|
|
337
321
|
*/
|
|
338
322
|
function hasSafeIterator (obj) {
|
|
339
323
|
const prototype = Object.getPrototypeOf(obj)
|
|
340
|
-
const ownIterator = Object.
|
|
324
|
+
const ownIterator = Object.hasOwn(obj, Symbol.iterator)
|
|
341
325
|
return ownIterator || (prototype != null && prototype !== Object.prototype && typeof obj[Symbol.iterator] === 'function')
|
|
342
326
|
}
|
|
343
327
|
|
|
@@ -386,7 +370,12 @@ function destroy (stream, err) {
|
|
|
386
370
|
stream.socket = null
|
|
387
371
|
}
|
|
388
372
|
|
|
389
|
-
|
|
373
|
+
try {
|
|
374
|
+
stream.destroy(err)
|
|
375
|
+
} catch {
|
|
376
|
+
// stream.destroy may throw on managed sockets (e.g., http2).
|
|
377
|
+
// Silently ignore — the socket lifecycle is handled by the subsystem.
|
|
378
|
+
}
|
|
390
379
|
} else if (err) {
|
|
391
380
|
queueMicrotask(() => {
|
|
392
381
|
stream.emit('error', err)
|
|
@@ -480,10 +469,30 @@ function parseHeaders (headers, obj) {
|
|
|
480
469
|
}
|
|
481
470
|
|
|
482
471
|
/**
|
|
483
|
-
* @param {Buffer[]} headers
|
|
472
|
+
* @param {Buffer[] | string[] | Record<string, string | string[]> | null | undefined} headers
|
|
484
473
|
* @returns {string[]}
|
|
485
474
|
*/
|
|
486
475
|
function parseRawHeaders (headers) {
|
|
476
|
+
if (headers == null) {
|
|
477
|
+
return []
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
if (!Array.isArray(headers)) {
|
|
481
|
+
const rawHeaders = []
|
|
482
|
+
|
|
483
|
+
for (const [name, value] of Object.entries(headers)) {
|
|
484
|
+
if (Array.isArray(value)) {
|
|
485
|
+
for (const entry of value) {
|
|
486
|
+
rawHeaders.push(name, `${entry}`)
|
|
487
|
+
}
|
|
488
|
+
} else {
|
|
489
|
+
rawHeaders.push(name, `${value}`)
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
return rawHeaders
|
|
494
|
+
}
|
|
495
|
+
|
|
487
496
|
const headersLength = headers.length
|
|
488
497
|
/**
|
|
489
498
|
* @type {string[]}
|
|
@@ -507,6 +516,26 @@ function parseRawHeaders (headers) {
|
|
|
507
516
|
return ret
|
|
508
517
|
}
|
|
509
518
|
|
|
519
|
+
/**
|
|
520
|
+
* @param {Record<string, string | string[]>} headers
|
|
521
|
+
* @returns {Buffer[]}
|
|
522
|
+
*/
|
|
523
|
+
function toRawHeaders (headers) {
|
|
524
|
+
const rawHeaders = []
|
|
525
|
+
|
|
526
|
+
for (const [name, value] of Object.entries(headers)) {
|
|
527
|
+
if (Array.isArray(value)) {
|
|
528
|
+
for (const entry of value) {
|
|
529
|
+
rawHeaders.push(Buffer.from(name, 'latin1'), Buffer.from(`${entry}`, 'latin1'))
|
|
530
|
+
}
|
|
531
|
+
} else {
|
|
532
|
+
rawHeaders.push(Buffer.from(name, 'latin1'), Buffer.from(`${value}`, 'latin1'))
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
return rawHeaders
|
|
537
|
+
}
|
|
538
|
+
|
|
510
539
|
/**
|
|
511
540
|
* @param {string[]} headers
|
|
512
541
|
* @param {Buffer[]} headers
|
|
@@ -540,38 +569,37 @@ function assertRequestHandler (handler, method, upgrade) {
|
|
|
540
569
|
throw new InvalidArgumentError('handler must be an object')
|
|
541
570
|
}
|
|
542
571
|
|
|
543
|
-
if (typeof handler.onRequestStart
|
|
544
|
-
|
|
545
|
-
return
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
if (typeof handler.onConnect !== 'function') {
|
|
549
|
-
throw new InvalidArgumentError('invalid onConnect method')
|
|
572
|
+
if (typeof handler.onRequestStart !== 'function') {
|
|
573
|
+
throw new InvalidArgumentError('invalid onRequestStart method')
|
|
550
574
|
}
|
|
551
575
|
|
|
552
|
-
if (typeof handler.
|
|
553
|
-
throw new InvalidArgumentError('invalid
|
|
576
|
+
if (typeof handler.onResponseError !== 'function') {
|
|
577
|
+
throw new InvalidArgumentError('invalid onResponseError method')
|
|
554
578
|
}
|
|
555
579
|
|
|
556
580
|
if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {
|
|
557
581
|
throw new InvalidArgumentError('invalid onBodySent method')
|
|
558
582
|
}
|
|
559
583
|
|
|
584
|
+
if (typeof handler.onRequestSent !== 'function' && handler.onRequestSent !== undefined) {
|
|
585
|
+
throw new InvalidArgumentError('invalid onRequestSent method')
|
|
586
|
+
}
|
|
587
|
+
|
|
560
588
|
if (upgrade || method === 'CONNECT') {
|
|
561
|
-
if (typeof handler.
|
|
562
|
-
throw new InvalidArgumentError('invalid
|
|
589
|
+
if (typeof handler.onRequestUpgrade !== 'function') {
|
|
590
|
+
throw new InvalidArgumentError('invalid onRequestUpgrade method')
|
|
563
591
|
}
|
|
564
592
|
} else {
|
|
565
|
-
if (typeof handler.
|
|
566
|
-
throw new InvalidArgumentError('invalid
|
|
593
|
+
if (typeof handler.onResponseStart !== 'function') {
|
|
594
|
+
throw new InvalidArgumentError('invalid onResponseStart method')
|
|
567
595
|
}
|
|
568
596
|
|
|
569
|
-
if (typeof handler.
|
|
570
|
-
throw new InvalidArgumentError('invalid
|
|
597
|
+
if (typeof handler.onResponseData !== 'function') {
|
|
598
|
+
throw new InvalidArgumentError('invalid onResponseData method')
|
|
571
599
|
}
|
|
572
600
|
|
|
573
|
-
if (typeof handler.
|
|
574
|
-
throw new InvalidArgumentError('invalid
|
|
601
|
+
if (typeof handler.onResponseEnd !== 'function') {
|
|
602
|
+
throw new InvalidArgumentError('invalid onResponseEnd method')
|
|
575
603
|
}
|
|
576
604
|
}
|
|
577
605
|
}
|
|
@@ -675,7 +703,11 @@ function isFormDataLike (object) {
|
|
|
675
703
|
}
|
|
676
704
|
|
|
677
705
|
function addAbortListener (signal, listener) {
|
|
678
|
-
if ('
|
|
706
|
+
if (!signal || 'aborted' in signal) {
|
|
707
|
+
return addAbortListenerNative(signal, listener)[Symbol.dispose]
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
if (typeof signal.addEventListener === 'function') {
|
|
679
711
|
signal.addEventListener('abort', listener, { once: true })
|
|
680
712
|
return () => signal.removeEventListener('abort', listener)
|
|
681
713
|
}
|
|
@@ -748,7 +780,7 @@ function isValidHeaderValue (characters) {
|
|
|
748
780
|
return !headerCharRegex.test(characters)
|
|
749
781
|
}
|
|
750
782
|
|
|
751
|
-
const rangeHeaderRegex = /^bytes (\d+)-(\d+)\/(\d
|
|
783
|
+
const rangeHeaderRegex = /^bytes (\d+)-(\d+)\/(\d+|\*)?$/
|
|
752
784
|
|
|
753
785
|
/**
|
|
754
786
|
* @typedef {object} RangeHeader
|
|
@@ -765,13 +797,14 @@ const rangeHeaderRegex = /^bytes (\d+)-(\d+)\/(\d+)?$/
|
|
|
765
797
|
*/
|
|
766
798
|
function parseRangeHeader (range) {
|
|
767
799
|
if (range == null || range === '') return { start: 0, end: null, size: null }
|
|
800
|
+
if (!range) return null
|
|
768
801
|
|
|
769
|
-
const m =
|
|
802
|
+
const m = rangeHeaderRegex.exec(range)
|
|
770
803
|
return m
|
|
771
804
|
? {
|
|
772
805
|
start: parseInt(m[1]),
|
|
773
806
|
end: m[2] ? parseInt(m[2]) : null,
|
|
774
|
-
size: m[3] ? parseInt(m[3]) : null
|
|
807
|
+
size: m[3] && m[3] !== '*' ? parseInt(m[3]) : null
|
|
775
808
|
}
|
|
776
809
|
: null
|
|
777
810
|
}
|
|
@@ -812,7 +845,7 @@ function removeAllListeners (obj) {
|
|
|
812
845
|
*/
|
|
813
846
|
function errorRequest (client, request, err) {
|
|
814
847
|
try {
|
|
815
|
-
request.
|
|
848
|
+
request.onResponseError(err)
|
|
816
849
|
assert(request.aborted)
|
|
817
850
|
} catch (err) {
|
|
818
851
|
client.emit('error', err)
|
|
@@ -891,11 +924,32 @@ function onConnectTimeout (socket, opts) {
|
|
|
891
924
|
destroy(socket, new ConnectTimeoutError(message))
|
|
892
925
|
}
|
|
893
926
|
|
|
927
|
+
let lastUrlString = null
|
|
928
|
+
let lastProtocol = null
|
|
929
|
+
|
|
894
930
|
/**
|
|
895
931
|
* @param {string} urlString
|
|
896
932
|
* @returns {string}
|
|
897
933
|
*/
|
|
898
934
|
function getProtocolFromUrlString (urlString) {
|
|
935
|
+
// Requests are typically dispatched against the same origin over and over,
|
|
936
|
+
// so cache the last (urlString, protocol) pair to skip re-parsing.
|
|
937
|
+
if (urlString === lastUrlString) {
|
|
938
|
+
return lastProtocol
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
const protocol = getProtocolFromUrlStringSlow(urlString)
|
|
942
|
+
lastUrlString = urlString
|
|
943
|
+
lastProtocol = protocol
|
|
944
|
+
|
|
945
|
+
return protocol
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
/**
|
|
949
|
+
* @param {string} urlString
|
|
950
|
+
* @returns {string}
|
|
951
|
+
*/
|
|
952
|
+
function getProtocolFromUrlStringSlow (urlString) {
|
|
899
953
|
if (
|
|
900
954
|
urlString[0] === 'h' &&
|
|
901
955
|
urlString[1] === 't' &&
|
|
@@ -915,8 +969,10 @@ function getProtocolFromUrlString (urlString) {
|
|
|
915
969
|
return urlString.slice(0, urlString.indexOf(':') + 1)
|
|
916
970
|
}
|
|
917
971
|
|
|
918
|
-
const kEnumerableProperty =
|
|
919
|
-
|
|
972
|
+
const kEnumerableProperty = {
|
|
973
|
+
__proto__: null,
|
|
974
|
+
enumerable: true
|
|
975
|
+
}
|
|
920
976
|
|
|
921
977
|
const normalizedMethodRecordsBase = {
|
|
922
978
|
delete: 'DELETE',
|
|
@@ -930,7 +986,9 @@ const normalizedMethodRecordsBase = {
|
|
|
930
986
|
post: 'POST',
|
|
931
987
|
POST: 'POST',
|
|
932
988
|
put: 'PUT',
|
|
933
|
-
PUT: 'PUT'
|
|
989
|
+
PUT: 'PUT',
|
|
990
|
+
query: 'QUERY',
|
|
991
|
+
QUERY: 'QUERY'
|
|
934
992
|
}
|
|
935
993
|
|
|
936
994
|
const normalizedMethodRecords = {
|
|
@@ -961,6 +1019,7 @@ module.exports = {
|
|
|
961
1019
|
removeAllListeners,
|
|
962
1020
|
errorRequest,
|
|
963
1021
|
parseRawHeaders,
|
|
1022
|
+
toRawHeaders,
|
|
964
1023
|
encodeRawHeaders,
|
|
965
1024
|
parseHeaders,
|
|
966
1025
|
parseKeepAliveTimeout,
|
|
@@ -983,8 +1042,6 @@ module.exports = {
|
|
|
983
1042
|
normalizedMethodRecords,
|
|
984
1043
|
isValidPort,
|
|
985
1044
|
isHttpOrHttpsPrefixed,
|
|
986
|
-
nodeMajor,
|
|
987
|
-
nodeMinor,
|
|
988
1045
|
safeHTTPMethods: Object.freeze(['GET', 'HEAD', 'OPTIONS', 'TRACE']),
|
|
989
1046
|
wrapRequestBody,
|
|
990
1047
|
setupConnectTimeout,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
3
|
const { InvalidArgumentError, MaxOriginsReachedError } = require('../core/errors')
|
|
4
|
-
const { kClients, kRunning, kClose, kDestroy, kDispatch, kUrl } = require('../core/symbols')
|
|
4
|
+
const { kBusy, kClients, kConnected, kRunning, kPending, kClose, kDestroy, kDispatch, kUrl } = require('../core/symbols')
|
|
5
5
|
const DispatcherBase = require('./dispatcher-base')
|
|
6
6
|
const Pool = require('./pool')
|
|
7
7
|
const Client = require('./client')
|
|
@@ -65,60 +65,79 @@ class Agent extends DispatcherBase {
|
|
|
65
65
|
|
|
66
66
|
get [kRunning] () {
|
|
67
67
|
let ret = 0
|
|
68
|
-
for (const
|
|
68
|
+
for (const dispatcher of this[kClients].values()) {
|
|
69
69
|
ret += dispatcher[kRunning]
|
|
70
70
|
}
|
|
71
71
|
return ret
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
[kDispatch] (opts, handler) {
|
|
75
|
-
let
|
|
75
|
+
let origin
|
|
76
76
|
if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {
|
|
77
|
-
|
|
77
|
+
origin = String(opts.origin)
|
|
78
78
|
} else {
|
|
79
79
|
throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
const allowH2 = opts.allowH2 ?? this[kOptions].allowH2
|
|
83
|
+
const key = allowH2 === false ? `${origin}#http1-only` : origin
|
|
84
|
+
|
|
85
|
+
if (this[kOrigins].size >= this[kOptions].maxOrigins && !this[kOrigins].has(origin)) {
|
|
83
86
|
throw new MaxOriginsReachedError()
|
|
84
87
|
}
|
|
85
88
|
|
|
86
|
-
|
|
87
|
-
let dispatcher = result && result.dispatcher
|
|
89
|
+
let dispatcher = this[kClients].get(key)
|
|
88
90
|
if (!dispatcher) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
91
|
+
dispatcher = this[kFactory](opts.origin, allowH2 === false
|
|
92
|
+
? { ...this[kOptions], allowH2: false }
|
|
93
|
+
: this[kOptions])
|
|
94
|
+
|
|
95
|
+
const closeClientIfUnused = () => {
|
|
96
|
+
if (this[kClients].get(key) !== dispatcher) {
|
|
97
|
+
return
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// A GOAWAY detaches the HTTP/2 session before requeued requests are
|
|
101
|
+
// dispatched on a replacement connection. At that point the pool has
|
|
102
|
+
// no connected clients and is not busy, but it still has pending work.
|
|
103
|
+
// Closing it here lets the replacement Client finish those requests
|
|
104
|
+
// and then destroys that new connection with ClientDestroyedError.
|
|
105
|
+
if (dispatcher[kConnected] > 0 || dispatcher[kBusy] || dispatcher[kPending] > 0) {
|
|
106
|
+
return
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
this[kClients].delete(key)
|
|
110
|
+
if (!dispatcher.destroyed) {
|
|
111
|
+
dispatcher.close()
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
let hasOrigin = false
|
|
115
|
+
for (const k of this[kClients].keys()) {
|
|
116
|
+
if (k === origin || k === `${origin}#http1-only`) {
|
|
117
|
+
hasOrigin = true
|
|
118
|
+
break
|
|
98
119
|
}
|
|
99
|
-
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (!hasOrigin) {
|
|
123
|
+
this[kOrigins].delete(origin)
|
|
100
124
|
}
|
|
101
125
|
}
|
|
102
|
-
|
|
126
|
+
|
|
127
|
+
dispatcher
|
|
103
128
|
.on('drain', this[kOnDrain])
|
|
104
|
-
.on('connect',
|
|
105
|
-
const result = this[kClients].get(key)
|
|
106
|
-
if (result) {
|
|
107
|
-
result.count += 1
|
|
108
|
-
}
|
|
109
|
-
this[kOnConnect](origin, targets)
|
|
110
|
-
})
|
|
129
|
+
.on('connect', this[kOnConnect])
|
|
111
130
|
.on('disconnect', (origin, targets, err) => {
|
|
112
|
-
closeClientIfUnused(
|
|
131
|
+
closeClientIfUnused()
|
|
113
132
|
this[kOnDisconnect](origin, targets, err)
|
|
114
133
|
})
|
|
115
134
|
.on('connectionError', (origin, targets, err) => {
|
|
116
|
-
closeClientIfUnused(
|
|
135
|
+
closeClientIfUnused()
|
|
117
136
|
this[kOnConnectionError](origin, targets, err)
|
|
118
137
|
})
|
|
119
138
|
|
|
120
|
-
this[kClients].set(key,
|
|
121
|
-
this[kOrigins].add(
|
|
139
|
+
this[kClients].set(key, dispatcher)
|
|
140
|
+
this[kOrigins].add(origin)
|
|
122
141
|
}
|
|
123
142
|
|
|
124
143
|
return dispatcher.dispatch(opts, handler)
|
|
@@ -126,7 +145,7 @@ class Agent extends DispatcherBase {
|
|
|
126
145
|
|
|
127
146
|
[kClose] () {
|
|
128
147
|
const closePromises = []
|
|
129
|
-
for (const
|
|
148
|
+
for (const dispatcher of this[kClients].values()) {
|
|
130
149
|
closePromises.push(dispatcher.close())
|
|
131
150
|
}
|
|
132
151
|
this[kClients].clear()
|
|
@@ -136,7 +155,7 @@ class Agent extends DispatcherBase {
|
|
|
136
155
|
|
|
137
156
|
[kDestroy] (err) {
|
|
138
157
|
const destroyPromises = []
|
|
139
|
-
for (const
|
|
158
|
+
for (const dispatcher of this[kClients].values()) {
|
|
140
159
|
destroyPromises.push(dispatcher.destroy(err))
|
|
141
160
|
}
|
|
142
161
|
this[kClients].clear()
|
|
@@ -146,7 +165,7 @@ class Agent extends DispatcherBase {
|
|
|
146
165
|
|
|
147
166
|
get stats () {
|
|
148
167
|
const allClientStats = {}
|
|
149
|
-
for (const
|
|
168
|
+
for (const dispatcher of this[kClients].values()) {
|
|
150
169
|
if (dispatcher.stats) {
|
|
151
170
|
allClientStats[dispatcher[kUrl].origin] = dispatcher.stats
|
|
152
171
|
}
|