@yanglaofish/fishtools 0.5.2 → 0.5.3
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/README.md +23 -11
- package/manual/README.md +23 -11
- package/manual/docs/deployment.md +3 -3
- package/manual/docs/examples/action-plugin/package.json +1 -1
- package/manual/docs/plugin-development.md +15 -4
- package/manual/docs/releases.md +24 -0
- package/manual/docs/superpowers/plans/2026-10-13-command-shortcuts.md +3 -2
- package/manual/docs/superpowers/plans/2026-10-13-global-plugins.md +56 -0
- package/manual/docs/superpowers/plans/2026-10-13-tui-readable-sessions.md +21 -0
- package/manual/docs/superpowers/reviews/2026-10-13-0.5.3-review.md +28 -0
- package/manual/docs/superpowers/reviews/2026-10-13-command-shortcuts-review.md +7 -0
- package/manual/docs/superpowers/reviews/2026-10-13-tui-sessions-review.md +55 -0
- package/manual/docs/superpowers/specs/2026-10-13-issue-4-workflow-menu.md +23 -0
- package/manual/docs/superpowers/specs/2026-10-13-issue-5-results-and-history.md +20 -0
- package/manual/docs/terminal-commands.md +8 -0
- package/manual/docs/verification.md +30 -0
- package/manual/packages/core/README.md +2 -0
- package/manual/packages/core/package.json +1 -1
- package/manual/packages/core/src/application.js +100 -51
- package/manual/packages/core/src/development-watch-worker.js +10 -1
- package/manual/packages/core/src/development.js +1 -1
- package/manual/packages/core/src/plugin-catalog.js +42 -0
- package/manual/packages/core/src/version.js +1 -1
- package/manual/packages/fst-cli/README.md +4 -0
- package/manual/packages/fst-cli/bin/fst.js +7 -6
- package/manual/packages/fst-cli/package.json +1 -1
- package/manual/packages/fst-cli/src/development.js +6 -1
- package/manual/packages/fst-cli/src/terminal/command-menu.js +8 -3
- package/manual/packages/fst-cli/src/terminal/navigation.js +2 -0
- package/manual/packages/fst-cli/src/terminal/presentation.js +4 -3
- package/manual/packages/fst-cli/src/terminal/run-feed.js +69 -13
- package/manual/packages/fst-cli/src/terminal/run-presentation.js +55 -12
- package/manual/packages/fst-cli/src/terminal/run-viewer.js +26 -10
- package/manual/packages/fst-cli/src/terminal/session-history.js +82 -0
- package/manual/packages/fst-cli/src/terminal/session.js +119 -40
- package/manual/packages/fst-cli/src/terminal/view.js +31 -8
- package/manual/packages/fst-cli/src/terminal/workflow-menu.js +14 -9
- package/manual/packages/fst-devtools/package.json +2 -2
- package/manual/packages/fst-devtools/src/plugin-tools.js +1 -1
- package/manual/packages/fst-logs/README.md +23 -2
- package/manual/packages/fst-logs/package.json +2 -1
- package/manual/packages/fst-logs/src/file-identity.js +23 -0
- package/manual/packages/fst-logs/src/markdown-log.js +4 -3
- package/manual/packages/fst-logs/src/run-logs.js +3 -2
- package/manual/packages/fst-logs/src/session-history.js +180 -0
- package/manual/packages/fst-platform/README.md +4 -0
- package/manual/packages/fst-platform/package.json +3 -3
- package/manual/packages/fst-platform/src/process.js +4 -1
- package/manual/packages/fst-platform/src/shell.js +46 -1
- package/manual/packages/fst-plugin/package.json +1 -1
- package/manual/packages/fst-plugin/src/host.js +31 -23
- package/manual/packages/fst-workflow/package.json +1 -1
- package/manual/packages/fst-workflow/src/engine.js +1 -1
- package/manual/packages/fst-workspace/README.md +2 -0
- package/manual/packages/fst-workspace/package.json +2 -1
- package/manual/packages/fst-workspace/src/plugin-registry.js +58 -0
- package/manual/packages/fst-workspace/src/plugins.js +7 -4
- package/manual/packages/fst-workspace/src/workflows.js +5 -3
- package/manual/packages/pack/package.json +3 -3
- package/manual/packages/pack/runtime-cache.js +26 -0
- package/manual/packages/pack/runtime.js +6 -10
- package/manual/plugins/commands/package.json +1 -1
- package/node_modules/@mytools/commands/package.json +1 -1
- package/node_modules/@mytools/core/README.md +2 -0
- package/node_modules/@mytools/core/package.json +1 -1
- package/node_modules/@mytools/core/src/application.js +100 -51
- package/node_modules/@mytools/core/src/development-watch-worker.js +10 -1
- package/node_modules/@mytools/core/src/development.js +1 -1
- package/node_modules/@mytools/core/src/plugin-catalog.js +42 -0
- package/node_modules/@mytools/core/src/version.js +1 -1
- package/node_modules/@mytools/fst-cli/README.md +4 -0
- package/node_modules/@mytools/fst-cli/bin/fst.js +7 -6
- package/node_modules/@mytools/fst-cli/package.json +1 -1
- package/node_modules/@mytools/fst-cli/src/development.js +6 -1
- package/node_modules/@mytools/fst-cli/src/terminal/command-menu.js +8 -3
- package/node_modules/@mytools/fst-cli/src/terminal/navigation.js +2 -0
- package/node_modules/@mytools/fst-cli/src/terminal/presentation.js +4 -3
- package/node_modules/@mytools/fst-cli/src/terminal/run-feed.js +69 -13
- package/node_modules/@mytools/fst-cli/src/terminal/run-presentation.js +55 -12
- package/node_modules/@mytools/fst-cli/src/terminal/run-viewer.js +26 -10
- package/node_modules/@mytools/fst-cli/src/terminal/session-history.js +82 -0
- package/node_modules/@mytools/fst-cli/src/terminal/session.js +119 -40
- package/node_modules/@mytools/fst-cli/src/terminal/view.js +31 -8
- package/node_modules/@mytools/fst-cli/src/terminal/workflow-menu.js +14 -9
- package/node_modules/@mytools/fst-devtools/package.json +2 -2
- package/node_modules/@mytools/fst-devtools/src/plugin-tools.js +1 -1
- package/node_modules/@mytools/fst-logs/README.md +23 -2
- package/node_modules/@mytools/fst-logs/package.json +2 -1
- package/node_modules/@mytools/fst-logs/src/file-identity.js +23 -0
- package/node_modules/@mytools/fst-logs/src/markdown-log.js +4 -3
- package/node_modules/@mytools/fst-logs/src/run-logs.js +3 -2
- package/node_modules/@mytools/fst-logs/src/session-history.js +180 -0
- package/node_modules/@mytools/fst-platform/README.md +4 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/LICENSE +21 -0
- package/node_modules/{undici/docs/docs/index.md → @mytools/fst-platform/node_modules/undici/README.md} +85 -137
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Agent.md +84 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/BalancedPool.md +99 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/CacheStorage.md +30 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/CacheStore.md +164 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Client.md +288 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/ClientStats.md +27 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Connector.md +115 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/ContentType.md +57 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Cookies.md +128 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Debug.md +62 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +317 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Dispatcher.md +1393 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +159 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Errors.md +49 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/EventSource.md +45 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Fetch.md +60 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/GlobalInstallation.md +139 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/H2CClient.md +263 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockAgent.md +603 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockCallHistory.md +197 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +43 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockClient.md +81 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockErrors.md +12 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockPool.md +555 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Pool.md +84 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/PoolStats.md +35 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/ProxyAgent.md +229 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RedirectHandler.md +93 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RetryAgent.md +50 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RetryHandler.md +118 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RoundRobinPool.md +145 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/SnapshotAgent.md +616 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +275 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Util.md +25 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/WebSocket.md +141 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/api-lifecycle.md +91 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/client-certificate.md +64 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/docs/docs/best-practices/crawling.md +1 -3
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/mocking-request.md +190 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/proxy.md +127 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/docs/docs/best-practices/undici-vs-builtin-fetch.md +8 -10
- package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/writing-tests.md +63 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/index-fetch.js +65 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/index.d.ts +3 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/index.js +234 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/abort-signal.js +59 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-connect.js +110 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-pipeline.js +252 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-request.js +214 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-stream.js +209 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-upgrade.js +111 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/index.js +7 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/readable.js +580 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/cache/memory-cache-store.js +3 -3
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/cache/sqlite-cache-store.js +1 -3
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/connect.js +153 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/constants.js +143 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/diagnostics.js +227 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/errors.js +477 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/request.js +485 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/symbols.js +75 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/tree.js +160 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/util.js +992 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/agent.js +158 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/balanced-pool.js +221 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/client-h1.js +1746 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/client-h2.js +1060 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/client.js +668 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/dispatcher-base.js +184 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/dispatcher.js +48 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +146 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/fixed-queue.js +135 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/dispatcher/h2c-client.js +4 -4
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/pool-base.js +214 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/pool.js +118 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/proxy-agent.js +319 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/dispatcher/round-robin-pool.js +10 -32
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/dispatcher/socks5-proxy-agent.js +63 -153
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/global.js +59 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/handler/cache-handler.js +7 -49
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/handler/cache-revalidation-handler.js +0 -10
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/decorator-handler.js +67 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/handler/deduplication-handler.js +10 -29
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/redirect-handler.js +238 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/retry-handler.js +504 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/unwrap-handler.js +106 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/wrap-handler.js +105 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/interceptor/cache.js +26 -79
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/interceptor/decompress.js +3 -13
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/interceptor/deduplicate.js +4 -5
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/dns.js +571 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/dump.js +99 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/redirect.js +21 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/response-error.js +95 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/retry.js +19 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/constants.js +531 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/llhttp-wasm.js +15 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +15 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/utils.js +12 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-agent.js +232 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/mock-call-history.js +1 -1
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-client.js +68 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-errors.js +29 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-interceptor.js +209 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-pool.js +68 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-symbols.js +32 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-utils.js +486 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/snapshot-agent.js +7 -25
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/snapshot-recorder.js +3 -38
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/cache.js +10 -92
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/util/promise.js +28 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/runtime-features.js +34 -3
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/util/timers.js +425 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cache/cache.js +864 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cache/util.js +45 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/constants.js +12 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/index.js +199 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/parse.js +314 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/util.js +352 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/eventsource/eventsource-stream.js +494 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/eventsource/eventsource.js +501 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/eventsource/util.js +29 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/LICENSE +21 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/body.js +509 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/constants.js +131 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/data-url.js +596 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/formdata-parser.js +586 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/formdata.js +259 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/global.js +40 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/headers.js +719 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/index.js +2413 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/request.js +1115 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/response.js +641 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/util.js +1522 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/infra/index.js +1 -16
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/webidl/index.js +21 -7
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/connection.js +339 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/constants.js +126 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/events.js +331 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/frame.js +133 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/permessage-deflate.js +105 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/receiver.js +507 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/sender.js +109 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/websocket/stream/websocketerror.js +10 -13
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/websocket/stream/websocketstream.js +14 -29
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/util.js +347 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/websocket.js +758 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/package.json +152 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/scripts/strip-comments.js +10 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/README.md +6 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/agent.d.ts +32 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/api.d.ts +43 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/balanced-pool.d.ts +30 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/cache.d.ts +36 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/client.d.ts +139 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/connector.d.ts +36 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/content-type.d.ts +21 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/cookies.d.ts +30 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/diagnostics-channel.d.ts +74 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/dispatcher.d.ts +275 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/env-http-proxy-agent.d.ts +22 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/errors.d.ts +177 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/eventsource.d.ts +66 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/fetch.d.ts +231 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/formdata.d.ts +114 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/global-dispatcher.d.ts +9 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/global-origin.d.ts +7 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/h2c-client.d.ts +6 -6
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/handlers.d.ts +14 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/header.d.ts +160 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/index.d.ts +91 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/interceptors.d.ts +82 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-agent.d.ts +68 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-client.d.ts +27 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-errors.d.ts +12 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-interceptor.d.ts +94 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-pool.d.ts +27 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/patch.d.ts +29 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/pool-stats.d.ts +19 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/pool.d.ts +41 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/proxy-agent.d.ts +29 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/readable.d.ts +68 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/retry-agent.d.ts +8 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/retry-handler.d.ts +125 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/round-robin-pool.d.ts +2 -0
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/snapshot-agent.d.ts +0 -4
- package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/socks5-proxy-agent.d.ts +2 -4
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/util.d.ts +18 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/webidl.d.ts +347 -0
- package/node_modules/@mytools/fst-platform/node_modules/undici/types/websocket.d.ts +188 -0
- package/node_modules/@mytools/fst-platform/package.json +3 -3
- package/node_modules/@mytools/fst-platform/src/process.js +4 -1
- package/node_modules/@mytools/fst-platform/src/shell.js +46 -1
- package/node_modules/@mytools/fst-plugin/package.json +1 -1
- package/node_modules/@mytools/fst-plugin/src/host.js +31 -23
- package/node_modules/@mytools/fst-workflow/package.json +1 -1
- package/node_modules/@mytools/fst-workflow/src/engine.js +1 -1
- package/node_modules/@mytools/fst-workspace/README.md +2 -0
- package/node_modules/@mytools/fst-workspace/package.json +2 -1
- package/node_modules/@mytools/fst-workspace/src/plugin-registry.js +58 -0
- package/node_modules/@mytools/fst-workspace/src/plugins.js +7 -4
- package/node_modules/@mytools/fst-workspace/src/workflows.js +5 -3
- package/node_modules/@mytools/pack/package.json +3 -3
- package/node_modules/@mytools/pack/runtime-cache.js +26 -0
- package/node_modules/@mytools/pack/runtime.js +6 -10
- package/node_modules/@mytools/web/public/THIRD_PARTY_NOTICES.txt +953 -963
- package/node_modules/@npmcli/agent/lib/agents.js +0 -10
- package/node_modules/@npmcli/agent/package.json +12 -11
- package/node_modules/@npmcli/arborist/README.md +2 -2
- package/node_modules/@npmcli/arborist/bin/index.js +2 -1
- package/node_modules/@npmcli/arborist/bin/shrinkwrap.js +7 -0
- package/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js +25 -159
- package/node_modules/@npmcli/arborist/lib/arborist/isolated-reifier.js +49 -11
- package/node_modules/@npmcli/arborist/lib/arborist/load-actual.js +0 -67
- package/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js +37 -5
- package/node_modules/@npmcli/arborist/lib/arborist/rebuild.js +8 -15
- package/node_modules/@npmcli/arborist/lib/arborist/reify.js +42 -59
- package/node_modules/@npmcli/arborist/lib/consistent-resolve.js +1 -1
- package/node_modules/@npmcli/arborist/lib/diff.js +22 -17
- package/node_modules/@npmcli/arborist/lib/edge.js +2 -22
- package/node_modules/@npmcli/arborist/lib/index.js +0 -2
- package/node_modules/@npmcli/arborist/lib/isolated-classes.js +1 -4
- package/node_modules/@npmcli/arborist/lib/node.js +9 -13
- package/node_modules/@npmcli/arborist/lib/place-dep.js +0 -6
- package/node_modules/@npmcli/arborist/lib/printable.js +5 -0
- package/node_modules/@npmcli/arborist/lib/shrinkwrap.js +32 -55
- package/node_modules/@npmcli/arborist/package.json +26 -32
- package/node_modules/@npmcli/fs/lib/move-file.js +5 -5
- package/node_modules/@npmcli/fs/package.json +5 -5
- package/node_modules/@npmcli/git/package.json +12 -13
- package/node_modules/@npmcli/installed-package-contents/package.json +7 -7
- package/node_modules/@npmcli/map-workspaces/package.json +7 -7
- package/node_modules/@npmcli/metavuln-calculator/package.json +16 -10
- package/node_modules/@npmcli/name-from-folder/package.json +16 -13
- package/node_modules/@npmcli/node-gyp/package.json +5 -5
- package/node_modules/@npmcli/package-json/lib/index.js +1 -2
- package/node_modules/@npmcli/package-json/lib/normalize.js +22 -23
- package/node_modules/@npmcli/package-json/package.json +10 -11
- package/node_modules/@npmcli/promise-spawn/README.md +2 -1
- package/node_modules/@npmcli/promise-spawn/package.json +5 -5
- package/node_modules/@npmcli/redact/package.json +4 -4
- package/node_modules/@npmcli/run-script/lib/is-server-package.js +11 -0
- package/node_modules/@npmcli/run-script/lib/make-spawn-args.js +6 -5
- package/node_modules/@npmcli/run-script/lib/run-script-pkg.js +13 -4
- package/node_modules/@npmcli/run-script/lib/run-script.js +2 -1
- package/node_modules/@npmcli/run-script/package.json +11 -12
- package/node_modules/@sigstore/bundle/README.md +1 -1
- package/node_modules/@sigstore/bundle/dist/error.js +0 -1
- package/node_modules/@sigstore/bundle/package.json +2 -2
- package/node_modules/@sigstore/core/README.md +1 -1
- package/node_modules/@sigstore/core/dist/asn1/length.js +1 -12
- package/node_modules/@sigstore/core/dist/asn1/obj.js +7 -25
- package/node_modules/@sigstore/core/dist/asn1/parse.js +5 -24
- package/node_modules/@sigstore/core/package.json +2 -2
- package/node_modules/@sigstore/sign/README.md +1 -1
- package/node_modules/@sigstore/sign/dist/signer/fulcio/ephemeral.js +1 -1
- package/node_modules/@sigstore/sign/package.json +9 -9
- package/node_modules/@sigstore/tuf/README.md +1 -1
- package/node_modules/@sigstore/tuf/package.json +4 -4
- package/node_modules/@sigstore/tuf/seeds.json +1 -1
- package/node_modules/@sigstore/verify/README.md +1 -1
- package/node_modules/@sigstore/verify/dist/bundle/dsse.d.ts +0 -1
- package/node_modules/@sigstore/verify/dist/bundle/dsse.js +0 -6
- package/node_modules/@sigstore/verify/dist/bundle/message.d.ts +0 -1
- package/node_modules/@sigstore/verify/dist/bundle/message.js +0 -5
- package/node_modules/@sigstore/verify/dist/policy.d.ts +1 -1
- package/node_modules/@sigstore/verify/dist/policy.js +2 -0
- package/node_modules/@sigstore/verify/dist/shared.types.d.ts +1 -6
- package/node_modules/@sigstore/verify/dist/tlog/checkpoint.js +3 -17
- package/node_modules/@sigstore/verify/dist/tlog/hashedrekord.js +4 -4
- package/node_modules/@sigstore/verify/dist/tlog/index.js +1 -13
- package/node_modules/@sigstore/verify/dist/tlog/merkle.js +1 -12
- package/node_modules/@sigstore/verify/dist/verifier.js +5 -13
- package/node_modules/@sigstore/verify/package.json +5 -5
- package/node_modules/@tufjs/models/package.json +3 -3
- package/node_modules/abbrev/package.json +8 -9
- package/node_modules/agent-base/dist/helpers.d.ts +5 -0
- package/node_modules/agent-base/dist/helpers.d.ts.map +1 -1
- package/node_modules/agent-base/dist/helpers.js +34 -5
- package/node_modules/agent-base/dist/helpers.js.map +1 -1
- package/node_modules/agent-base/dist/index.d.ts +5 -1
- package/node_modules/agent-base/dist/index.d.ts.map +1 -1
- package/node_modules/agent-base/dist/index.js +40 -8
- package/node_modules/agent-base/dist/index.js.map +1 -1
- package/node_modules/agent-base/package.json +12 -12
- package/node_modules/bin-links/README.md +4 -5
- package/node_modules/bin-links/lib/fix-bin.js +1 -3
- package/node_modules/bin-links/lib/index.js +16 -8
- package/node_modules/bin-links/lib/link-mans.js +53 -0
- package/node_modules/bin-links/package.json +12 -11
- package/node_modules/cacache/lib/content/write.js +0 -2
- package/node_modules/cacache/lib/entry-index.js +0 -3
- package/node_modules/cacache/lib/rm.js +0 -1
- package/node_modules/cacache/lib/util/tmp.js +1 -5
- package/node_modules/cacache/lib/verify.js +2 -2
- package/node_modules/cacache/package.json +7 -7
- package/node_modules/cmd-shim/lib/index.js +32 -67
- package/node_modules/cmd-shim/package.json +5 -5
- package/node_modules/hosted-git-info/README.md +1 -1
- package/node_modules/hosted-git-info/lib/parse-url.js +3 -1
- package/node_modules/hosted-git-info/package.json +4 -4
- package/node_modules/http-proxy-agent/dist/index.d.ts +5 -8
- package/node_modules/http-proxy-agent/dist/index.d.ts.map +1 -1
- package/node_modules/http-proxy-agent/dist/index.js +42 -26
- package/node_modules/http-proxy-agent/dist/index.js.map +1 -1
- package/node_modules/http-proxy-agent/package.json +14 -15
- package/node_modules/https-proxy-agent/dist/index.d.ts +5 -9
- package/node_modules/https-proxy-agent/dist/index.d.ts.map +1 -1
- package/node_modules/https-proxy-agent/dist/index.js +44 -98
- package/node_modules/https-proxy-agent/dist/index.js.map +1 -1
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts +3 -0
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts.map +1 -1
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.js +10 -3
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map +1 -1
- package/node_modules/https-proxy-agent/package.json +15 -16
- package/node_modules/ignore-walk/package.json +4 -4
- package/node_modules/ini/package.json +5 -5
- package/node_modules/ip-address/README.md +70 -70
- package/node_modules/ip-address/dist/ipv6.js +7 -4
- package/node_modules/ip-address/dist/ipv6.js.map +1 -1
- package/node_modules/ip-address/dist/v6/constants.d.ts +3 -0
- package/node_modules/ip-address/dist/v6/constants.js +3 -0
- package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
- package/node_modules/ip-address/package.json +2 -1
- package/node_modules/json-parse-even-better-errors/lib/index.js +1 -3
- package/node_modules/json-parse-even-better-errors/package.json +17 -13
- package/node_modules/make-fetch-happen/package.json +11 -11
- package/node_modules/minipass-fetch/package.json +4 -4
- package/node_modules/node-gyp/.release-please-manifest.json +1 -1
- package/node_modules/node-gyp/CHANGELOG.md +0 -102
- package/node_modules/node-gyp/README.md +2 -3
- package/node_modules/node-gyp/eslint.config.js +1 -4
- package/node_modules/node-gyp/gyp/.release-please-manifest.json +1 -1
- package/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +19 -14
- package/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +2 -7
- package/node_modules/node-gyp/gyp/pyproject.toml +1 -1
- package/node_modules/node-gyp/lib/build.js +6 -18
- package/node_modules/node-gyp/lib/create-config-gypi.js +0 -5
- package/node_modules/node-gyp/lib/node-gyp.js +2 -9
- package/node_modules/node-gyp/lib/rebuild.js +3 -3
- package/node_modules/node-gyp/package.json +9 -11
- package/node_modules/nopt/README.md +4 -2
- package/node_modules/nopt/lib/debug.js +5 -0
- package/node_modules/nopt/lib/nopt-lib.js +43 -7
- package/node_modules/nopt/lib/nopt.js +4 -2
- package/node_modules/nopt/lib/type-defs.js +13 -8
- package/node_modules/nopt/package.json +17 -15
- package/node_modules/npm-bundled/package.json +6 -6
- package/node_modules/npm-install-checks/package.json +5 -5
- package/node_modules/npm-normalize-package-bin/package.json +16 -13
- package/node_modules/npm-package-arg/package.json +7 -7
- package/node_modules/npm-packlist/README.md +30 -45
- package/node_modules/npm-packlist/lib/index.js +47 -115
- package/node_modules/npm-packlist/package.json +8 -10
- package/node_modules/npm-pick-manifest/package.json +19 -15
- package/node_modules/npm-registry-fetch/lib/errors.js +3 -8
- package/node_modules/npm-registry-fetch/package.json +12 -12
- package/node_modules/pacote/lib/dir.js +5 -60
- package/node_modules/pacote/lib/fetcher.js +0 -4
- package/node_modules/pacote/lib/git.js +3 -11
- package/node_modules/pacote/lib/util/add-git-sha.js +1 -1
- package/node_modules/pacote/package.json +18 -19
- package/node_modules/parse-conflict-json/package.json +6 -6
- package/node_modules/proc-log/package.json +4 -4
- package/node_modules/read-cmd-shim/lib/index.js +1 -1
- package/node_modules/read-cmd-shim/package.json +18 -14
- package/node_modules/sigstore/README.md +1 -1
- package/node_modules/sigstore/package.json +10 -10
- package/node_modules/socks-proxy-agent/dist/index.d.ts +3 -1
- package/node_modules/socks-proxy-agent/dist/index.d.ts.map +1 -1
- package/node_modules/socks-proxy-agent/dist/index.js +43 -17
- package/node_modules/socks-proxy-agent/dist/index.js.map +1 -1
- package/node_modules/socks-proxy-agent/package.json +15 -15
- package/node_modules/ssri/package.json +4 -4
- package/node_modules/tuf-js/dist/config.d.ts +2 -2
- package/node_modules/tuf-js/dist/fetcher.d.ts +4 -4
- package/node_modules/tuf-js/dist/fetcher.js +16 -55
- package/node_modules/tuf-js/dist/updater.js +2 -2
- package/node_modules/tuf-js/package.json +8 -8
- package/node_modules/undici/README.md +72 -405
- package/node_modules/undici/docs/docs/api/Agent.md +41 -252
- package/node_modules/undici/docs/docs/api/BalancedPool.md +48 -246
- package/node_modules/undici/docs/docs/api/CacheStorage.md +13 -171
- package/node_modules/undici/docs/docs/api/Client.md +139 -395
- package/node_modules/undici/docs/docs/api/Connector.md +35 -118
- package/node_modules/undici/docs/docs/api/ContentType.md +25 -65
- package/node_modules/undici/docs/docs/api/Cookies.md +47 -125
- package/node_modules/undici/docs/docs/api/Debug.md +31 -47
- package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +97 -409
- package/node_modules/undici/docs/docs/api/DispatchInterceptor.md +60 -0
- package/node_modules/undici/docs/docs/api/Dispatcher.md +1011 -500
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +96 -105
- package/node_modules/undici/docs/docs/api/Errors.md +28 -528
- package/node_modules/undici/docs/docs/api/EventSource.md +13 -326
- package/node_modules/undici/docs/docs/api/Fetch.md +24 -693
- package/node_modules/undici/docs/docs/api/MockAgent.md +264 -346
- package/node_modules/undici/docs/docs/api/MockClient.md +31 -153
- package/node_modules/undici/docs/docs/api/MockErrors.md +5 -56
- package/node_modules/undici/docs/docs/api/MockPool.md +253 -324
- package/node_modules/undici/docs/docs/api/Pool.md +41 -235
- package/node_modules/undici/docs/docs/api/PoolStats.md +13 -119
- package/node_modules/undici/docs/docs/api/ProxyAgent.md +81 -198
- package/node_modules/undici/docs/docs/api/RedirectHandler.md +58 -238
- package/node_modules/undici/docs/docs/api/RetryAgent.md +28 -119
- package/node_modules/undici/docs/docs/api/RetryHandler.md +78 -161
- package/node_modules/undici/docs/docs/api/Util.md +11 -68
- package/node_modules/undici/docs/docs/api/WebSocket.md +24 -509
- package/node_modules/undici/docs/docs/api/api-lifecycle.md +33 -101
- package/node_modules/undici/docs/docs/best-practices/client-certificate.md +0 -2
- package/node_modules/undici/docs/docs/best-practices/mocking-request.md +2 -58
- package/node_modules/undici/docs/docs/best-practices/proxy.md +1 -3
- package/node_modules/undici/docs/docs/best-practices/writing-tests.md +0 -45
- package/node_modules/undici/index-fetch.js +4 -34
- package/node_modules/undici/index.d.ts +1 -1
- package/node_modules/undici/index.js +20 -87
- package/node_modules/undici/lib/api/abort-signal.js +0 -2
- package/node_modules/undici/lib/api/api-connect.js +11 -15
- package/node_modules/undici/lib/api/api-pipeline.js +19 -33
- package/node_modules/undici/lib/api/api-request.js +59 -89
- package/node_modules/undici/lib/api/api-stream.js +64 -114
- package/node_modules/undici/lib/api/api-upgrade.js +13 -26
- package/node_modules/undici/lib/api/readable.js +87 -317
- package/node_modules/undici/lib/api/util.js +93 -0
- package/node_modules/undici/lib/core/connect.js +125 -77
- package/node_modules/undici/lib/core/constants.js +9 -11
- package/node_modules/undici/lib/core/diagnostics.js +129 -154
- package/node_modules/undici/lib/core/errors.js +50 -122
- package/node_modules/undici/lib/core/request.js +87 -172
- package/node_modules/undici/lib/core/symbols.js +2 -14
- package/node_modules/undici/lib/core/tree.js +2 -10
- package/node_modules/undici/lib/core/util.js +190 -481
- package/node_modules/undici/lib/dispatcher/agent.js +35 -83
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +38 -46
- package/node_modules/undici/lib/dispatcher/client-h1.js +199 -492
- package/node_modules/undici/lib/dispatcher/client-h2.js +380 -1409
- package/node_modules/undici/lib/dispatcher/client.js +130 -253
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +52 -50
- package/node_modules/undici/lib/dispatcher/dispatcher.js +24 -17
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +45 -75
- package/node_modules/undici/lib/dispatcher/fixed-queue.js +50 -68
- package/node_modules/undici/lib/dispatcher/pool-base.js +54 -153
- package/node_modules/undici/lib/dispatcher/pool-stats.js +34 -0
- package/node_modules/undici/lib/dispatcher/pool.js +16 -135
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +41 -175
- package/node_modules/undici/lib/dispatcher/retry-agent.js +0 -3
- package/node_modules/undici/lib/global.js +9 -59
- package/node_modules/undici/lib/handler/decorator-handler.js +15 -43
- package/node_modules/undici/lib/handler/redirect-handler.js +116 -127
- package/node_modules/undici/lib/handler/retry-handler.js +182 -398
- package/node_modules/undici/lib/interceptor/dns.js +47 -254
- package/node_modules/undici/lib/interceptor/dump.js +56 -32
- package/node_modules/undici/lib/interceptor/redirect-interceptor.js +21 -0
- package/node_modules/undici/lib/interceptor/redirect.js +14 -11
- package/node_modules/undici/lib/interceptor/response-error.js +22 -31
- package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/node_modules/undici/lib/llhttp/constants.js +193 -446
- package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -11
- package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -11
- package/node_modules/undici/lib/llhttp/utils.js +12 -9
- package/node_modules/undici/lib/mock/mock-agent.js +22 -106
- package/node_modules/undici/lib/mock/mock-client.js +4 -13
- package/node_modules/undici/lib/mock/mock-errors.js +2 -3
- package/node_modules/undici/lib/mock/mock-interceptor.js +13 -33
- package/node_modules/undici/lib/mock/mock-pool.js +4 -13
- package/node_modules/undici/lib/mock/mock-symbols.js +1 -10
- package/node_modules/undici/lib/mock/mock-utils.js +51 -404
- package/node_modules/undici/lib/mock/pluralizer.js +29 -0
- package/node_modules/undici/lib/util/timers.js +9 -11
- package/node_modules/undici/lib/web/cache/cache.js +51 -63
- package/node_modules/undici/lib/web/cache/cachestorage.js +7 -13
- package/node_modules/undici/lib/web/cache/symbols.js +5 -0
- package/node_modules/undici/lib/web/cookies/index.js +18 -45
- package/node_modules/undici/lib/web/cookies/parse.js +149 -157
- package/node_modules/undici/lib/web/cookies/util.js +2 -4
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +9 -37
- package/node_modules/undici/lib/web/eventsource/eventsource.js +64 -108
- package/node_modules/undici/lib/web/eventsource/util.js +5 -28
- package/node_modules/undici/lib/web/fetch/body.js +148 -173
- package/node_modules/undici/lib/web/fetch/constants.js +6 -13
- package/node_modules/undici/lib/web/fetch/data-url.js +167 -19
- package/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +46 -0
- package/node_modules/undici/lib/web/fetch/file.js +126 -0
- package/node_modules/undici/lib/web/fetch/formdata-parser.js +117 -229
- package/node_modules/undici/lib/web/fetch/formdata.js +65 -85
- package/node_modules/undici/lib/web/fetch/headers.js +108 -143
- package/node_modules/undici/lib/web/fetch/index.js +446 -627
- package/node_modules/undici/lib/web/fetch/request.js +115 -217
- package/node_modules/undici/lib/web/fetch/response.js +82 -110
- package/node_modules/undici/lib/web/fetch/symbols.js +9 -0
- package/node_modules/undici/lib/web/fetch/util.js +393 -291
- package/node_modules/undici/lib/web/fetch/webidl.js +695 -0
- package/node_modules/undici/lib/web/fileapi/encoding.js +290 -0
- package/node_modules/undici/lib/web/fileapi/filereader.js +344 -0
- package/node_modules/undici/lib/web/fileapi/progressevent.js +78 -0
- package/node_modules/undici/lib/web/fileapi/symbols.js +10 -0
- package/node_modules/undici/lib/web/fileapi/util.js +391 -0
- package/node_modules/undici/lib/web/websocket/connection.js +160 -139
- package/node_modules/undici/lib/web/websocket/constants.js +10 -70
- package/node_modules/undici/lib/web/websocket/events.js +30 -49
- package/node_modules/undici/lib/web/websocket/frame.js +20 -51
- package/node_modules/undici/lib/web/websocket/receiver.js +87 -83
- package/node_modules/undici/lib/web/websocket/sender.js +13 -18
- package/node_modules/undici/lib/web/websocket/symbols.js +12 -0
- package/node_modules/undici/lib/web/websocket/util.js +90 -115
- package/node_modules/undici/lib/web/websocket/websocket.js +171 -359
- package/node_modules/undici/package.json +57 -49
- package/node_modules/undici/scripts/strip-comments.js +1 -3
- package/node_modules/undici/types/agent.d.ts +13 -12
- package/node_modules/undici/types/api.d.ts +26 -26
- package/node_modules/undici/types/balanced-pool.d.ts +12 -13
- package/node_modules/undici/types/client.d.ts +39 -98
- package/node_modules/undici/types/connector.d.ts +2 -5
- package/node_modules/undici/types/cookies.d.ts +1 -3
- package/node_modules/undici/types/diagnostics-channel.d.ts +11 -20
- package/node_modules/undici/types/dispatcher.d.ts +139 -136
- package/node_modules/undici/types/env-http-proxy-agent.d.ts +3 -4
- package/node_modules/undici/types/errors.d.ts +54 -86
- package/node_modules/undici/types/eventsource.d.ts +4 -9
- package/node_modules/undici/types/fetch.d.ts +25 -51
- package/node_modules/undici/types/file.d.ts +39 -0
- package/node_modules/undici/types/filereader.d.ts +54 -0
- package/node_modules/undici/types/formdata.d.ts +7 -7
- package/node_modules/undici/types/global-dispatcher.d.ts +4 -4
- package/node_modules/undici/types/global-origin.d.ts +5 -5
- package/node_modules/undici/types/handlers.d.ts +9 -10
- package/node_modules/undici/types/header.d.ts +1 -162
- package/node_modules/undici/types/index.d.ts +47 -69
- package/node_modules/undici/types/interceptors.d.ts +12 -62
- package/node_modules/undici/types/mock-agent.d.ts +27 -46
- package/node_modules/undici/types/mock-client.d.ts +4 -6
- package/node_modules/undici/types/mock-errors.d.ts +3 -3
- package/node_modules/undici/types/mock-interceptor.d.ts +21 -26
- package/node_modules/undici/types/mock-pool.d.ts +4 -6
- package/node_modules/undici/types/patch.d.ts +4 -0
- package/node_modules/undici/types/pool-stats.d.ts +8 -8
- package/node_modules/undici/types/pool.d.ts +14 -14
- package/node_modules/undici/types/proxy-agent.d.ts +6 -13
- package/node_modules/undici/types/readable.d.ts +16 -19
- package/node_modules/undici/types/retry-agent.d.ts +1 -1
- package/node_modules/undici/types/retry-handler.d.ts +9 -18
- package/node_modules/undici/types/util.d.ts +3 -3
- package/node_modules/undici/types/webidl.d.ts +32 -156
- package/node_modules/undici/types/websocket.d.ts +10 -48
- package/node_modules/validate-npm-package-name/package.json +4 -4
- package/node_modules/which/package.json +4 -4
- package/node_modules/write-file-atomic/package.json +4 -4
- package/package.json +56 -60
- package/node_modules/@npmcli/arborist/lib/npm-extension.js +0 -237
- package/node_modules/@npmcli/arborist/lib/package-extensions.js +0 -236
- package/node_modules/@npmcli/arborist/lib/patch.js +0 -111
- package/node_modules/@npmcli/arborist/lib/patched-dependencies.js +0 -168
- package/node_modules/cacache/lib/util/cache-dir.js +0 -29
- package/node_modules/diff/CONTRIBUTING.md +0 -28
- package/node_modules/diff/LICENSE +0 -29
- package/node_modules/diff/README.md +0 -388
- package/node_modules/diff/dist/diff.js +0 -1782
- package/node_modules/diff/dist/diff.min.js +0 -1
- package/node_modules/diff/eslint.config.mjs +0 -182
- package/node_modules/diff/libcjs/convert/dmp.d.ts +0 -8
- package/node_modules/diff/libcjs/convert/dmp.d.ts.map +0 -1
- package/node_modules/diff/libcjs/convert/dmp.js +0 -24
- package/node_modules/diff/libcjs/convert/xml.d.ts +0 -6
- package/node_modules/diff/libcjs/convert/xml.d.ts.map +0 -1
- package/node_modules/diff/libcjs/convert/xml.js +0 -34
- package/node_modules/diff/libcjs/diff/array.d.ts +0 -19
- package/node_modules/diff/libcjs/diff/array.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/array.js +0 -40
- package/node_modules/diff/libcjs/diff/base.d.ts +0 -20
- package/node_modules/diff/libcjs/diff/base.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/base.js +0 -265
- package/node_modules/diff/libcjs/diff/character.d.ts +0 -19
- package/node_modules/diff/libcjs/diff/character.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/character.js +0 -31
- package/node_modules/diff/libcjs/diff/css.d.ts +0 -18
- package/node_modules/diff/libcjs/diff/css.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/css.js +0 -34
- package/node_modules/diff/libcjs/diff/json.d.ts +0 -24
- package/node_modules/diff/libcjs/diff/json.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/json.js +0 -105
- package/node_modules/diff/libcjs/diff/line.d.ts +0 -24
- package/node_modules/diff/libcjs/diff/line.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/line.js +0 -89
- package/node_modules/diff/libcjs/diff/sentence.d.ts +0 -21
- package/node_modules/diff/libcjs/diff/sentence.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/sentence.js +0 -67
- package/node_modules/diff/libcjs/diff/word.d.ts +0 -35
- package/node_modules/diff/libcjs/diff/word.d.ts.map +0 -1
- package/node_modules/diff/libcjs/diff/word.js +0 -312
- package/node_modules/diff/libcjs/index.d.ts +0 -20
- package/node_modules/diff/libcjs/index.d.ts.map +0 -1
- package/node_modules/diff/libcjs/index.js +0 -64
- package/node_modules/diff/libcjs/package.json +0 -1
- package/node_modules/diff/libcjs/patch/apply.d.ts +0 -62
- package/node_modules/diff/libcjs/patch/apply.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/apply.js +0 -267
- package/node_modules/diff/libcjs/patch/create.d.ts +0 -122
- package/node_modules/diff/libcjs/patch/create.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/create.js +0 -251
- package/node_modules/diff/libcjs/patch/line-endings.d.ts +0 -17
- package/node_modules/diff/libcjs/patch/line-endings.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/line-endings.js +0 -61
- package/node_modules/diff/libcjs/patch/parse.d.ts +0 -8
- package/node_modules/diff/libcjs/patch/parse.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/parse.js +0 -150
- package/node_modules/diff/libcjs/patch/reverse.d.ts +0 -9
- package/node_modules/diff/libcjs/patch/reverse.d.ts.map +0 -1
- package/node_modules/diff/libcjs/patch/reverse.js +0 -37
- package/node_modules/diff/libcjs/types.d.ts +0 -213
- package/node_modules/diff/libcjs/types.d.ts.map +0 -1
- package/node_modules/diff/libcjs/types.js +0 -2
- package/node_modules/diff/libcjs/util/array.d.ts +0 -3
- package/node_modules/diff/libcjs/util/array.d.ts.map +0 -1
- package/node_modules/diff/libcjs/util/array.js +0 -21
- package/node_modules/diff/libcjs/util/distance-iterator.d.ts +0 -2
- package/node_modules/diff/libcjs/util/distance-iterator.d.ts.map +0 -1
- package/node_modules/diff/libcjs/util/distance-iterator.js +0 -40
- package/node_modules/diff/libcjs/util/params.d.ts +0 -4
- package/node_modules/diff/libcjs/util/params.d.ts.map +0 -1
- package/node_modules/diff/libcjs/util/params.js +0 -17
- package/node_modules/diff/libcjs/util/string.d.ts +0 -30
- package/node_modules/diff/libcjs/util/string.d.ts.map +0 -1
- package/node_modules/diff/libcjs/util/string.js +0 -200
- package/node_modules/diff/libesm/convert/dmp.d.ts +0 -8
- package/node_modules/diff/libesm/convert/dmp.d.ts.map +0 -1
- package/node_modules/diff/libesm/convert/dmp.js +0 -21
- package/node_modules/diff/libesm/convert/xml.d.ts +0 -6
- package/node_modules/diff/libesm/convert/xml.d.ts.map +0 -1
- package/node_modules/diff/libesm/convert/xml.js +0 -31
- package/node_modules/diff/libesm/diff/array.d.ts +0 -19
- package/node_modules/diff/libesm/diff/array.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/array.js +0 -16
- package/node_modules/diff/libesm/diff/base.d.ts +0 -20
- package/node_modules/diff/libesm/diff/base.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/base.js +0 -253
- package/node_modules/diff/libesm/diff/character.d.ts +0 -19
- package/node_modules/diff/libesm/diff/character.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/character.js +0 -7
- package/node_modules/diff/libesm/diff/css.d.ts +0 -18
- package/node_modules/diff/libesm/diff/css.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/css.js +0 -10
- package/node_modules/diff/libesm/diff/json.d.ts +0 -24
- package/node_modules/diff/libesm/diff/json.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/json.js +0 -78
- package/node_modules/diff/libesm/diff/line.d.ts +0 -24
- package/node_modules/diff/libesm/diff/line.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/line.js +0 -65
- package/node_modules/diff/libesm/diff/sentence.d.ts +0 -21
- package/node_modules/diff/libesm/diff/sentence.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/sentence.js +0 -43
- package/node_modules/diff/libesm/diff/word.d.ts +0 -35
- package/node_modules/diff/libesm/diff/word.d.ts.map +0 -1
- package/node_modules/diff/libesm/diff/word.js +0 -281
- package/node_modules/diff/libesm/index.d.ts +0 -20
- package/node_modules/diff/libesm/index.d.ts.map +0 -1
- package/node_modules/diff/libesm/index.js +0 -30
- package/node_modules/diff/libesm/package.json +0 -1
- package/node_modules/diff/libesm/patch/apply.d.ts +0 -62
- package/node_modules/diff/libesm/patch/apply.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/apply.js +0 -257
- package/node_modules/diff/libesm/patch/create.d.ts +0 -122
- package/node_modules/diff/libesm/patch/create.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/create.js +0 -228
- package/node_modules/diff/libesm/patch/line-endings.d.ts +0 -17
- package/node_modules/diff/libesm/patch/line-endings.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/line-endings.js +0 -44
- package/node_modules/diff/libesm/patch/parse.d.ts +0 -8
- package/node_modules/diff/libesm/patch/parse.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/parse.js +0 -147
- package/node_modules/diff/libesm/patch/reverse.d.ts +0 -9
- package/node_modules/diff/libesm/patch/reverse.d.ts.map +0 -1
- package/node_modules/diff/libesm/patch/reverse.js +0 -23
- package/node_modules/diff/libesm/types.d.ts +0 -213
- package/node_modules/diff/libesm/types.d.ts.map +0 -1
- package/node_modules/diff/libesm/types.js +0 -1
- package/node_modules/diff/libesm/util/array.d.ts +0 -3
- package/node_modules/diff/libesm/util/array.d.ts.map +0 -1
- package/node_modules/diff/libesm/util/array.js +0 -17
- package/node_modules/diff/libesm/util/distance-iterator.d.ts +0 -2
- package/node_modules/diff/libesm/util/distance-iterator.d.ts.map +0 -1
- package/node_modules/diff/libesm/util/distance-iterator.js +0 -37
- package/node_modules/diff/libesm/util/params.d.ts +0 -4
- package/node_modules/diff/libesm/util/params.d.ts.map +0 -1
- package/node_modules/diff/libesm/util/params.js +0 -14
- package/node_modules/diff/libesm/util/string.d.ts +0 -30
- package/node_modules/diff/libesm/util/string.d.ts.map +0 -1
- package/node_modules/diff/libesm/util/string.js +0 -184
- package/node_modules/diff/package.json +0 -130
- package/node_modules/diff/release-notes.md +0 -432
- package/node_modules/node-gyp/commitlint.config.mjs +0 -3
- package/node_modules/node-gyp/gyp/commitlint.config.js +0 -6
- package/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake_test.py +0 -105
- package/node_modules/node-gyp/zizmor.yml +0 -5
- package/node_modules/proxy-agent-negotiate/dist/index.d.ts +0 -14
- package/node_modules/proxy-agent-negotiate/dist/index.d.ts.map +0 -1
- package/node_modules/proxy-agent-negotiate/dist/index.js +0 -35
- package/node_modules/proxy-agent-negotiate/dist/index.js.map +0 -1
- package/node_modules/proxy-agent-negotiate/package.json +0 -47
- package/node_modules/undici/docs/docs/api/CacheStore.md +0 -360
- package/node_modules/undici/docs/docs/api/ClientStats.md +0 -93
- package/node_modules/undici/docs/docs/api/GlobalInstallation.md +0 -121
- package/node_modules/undici/docs/docs/api/H2CClient.md +0 -385
- package/node_modules/undici/docs/docs/api/Interceptors.md +0 -419
- package/node_modules/undici/docs/docs/api/MockCallHistory.md +0 -371
- package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +0 -206
- package/node_modules/undici/docs/docs/api/RoundRobinPool.md +0 -239
- package/node_modules/undici/docs/docs/api/SnapshotAgent.md +0 -361
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +0 -256
- package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +0 -233
- package/node_modules/undici/docs/docs/getting-started.md +0 -281
- package/node_modules/undici/docs/docs/site.json +0 -125
- package/node_modules/undici/docs/docs/type-map.json +0 -79
- package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +0 -110
- package/node_modules/undici/types/dispatcher1-wrapper.d.ts +0 -7
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/core/socks5-client.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/core/socks5-utils.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/encoding/index.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/llhttp/constants.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/llhttp/utils.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/snapshot-utils.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/date.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/stats.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/subresource-integrity/Readme.md +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/subresource-integrity/subresource-integrity.js +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/cache-interceptor.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/client-stats.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/mock-call-history.d.ts +0 -0
- /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/utility.d.ts +0 -0
|
@@ -1,210 +1,108 @@
|
|
|
1
|
-
# MockPool
|
|
1
|
+
# Class: MockPool
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
<!--type=module-->
|
|
5
|
-
<!-- source_link=lib/mock/mock-pool.js -->
|
|
3
|
+
Extends: `undici.Pool`
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
A mock Pool class that implements the Pool API and is used by MockAgent to intercept real requests and return mocked responses.
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
and replies with mocked responses instead of contacting the network. It is
|
|
11
|
-
created by a [`MockAgent`][] and exposes the same interception API as
|
|
12
|
-
[`MockClient`][].
|
|
7
|
+
## `new MockPool(origin, [options])`
|
|
13
8
|
|
|
14
|
-
|
|
15
|
-
through [`mockAgent.get(origin)`][]. Once registered as the global dispatcher,
|
|
16
|
-
any request whose origin matches the pool is matched against the mocks it holds.
|
|
9
|
+
Arguments:
|
|
17
10
|
|
|
18
|
-
|
|
11
|
+
* **origin** `string` - It should only include the **protocol, hostname, and port**.
|
|
12
|
+
* **options** `MockPoolOptions` - It extends the `Pool` options.
|
|
13
|
+
|
|
14
|
+
Returns: `MockPool`
|
|
15
|
+
|
|
16
|
+
### Parameter: `MockPoolOptions`
|
|
17
|
+
|
|
18
|
+
Extends: `PoolOptions`
|
|
19
|
+
|
|
20
|
+
* **agent** `Agent` - the agent to associate this MockPool with.
|
|
21
|
+
|
|
22
|
+
### Example - Basic MockPool instantiation
|
|
23
|
+
|
|
24
|
+
We can use MockAgent to instantiate a MockPool ready to be used to intercept specified requests. It will not do anything until registered as the agent to use and any mock request are registered.
|
|
25
|
+
|
|
26
|
+
```js
|
|
19
27
|
import { MockAgent } from 'undici'
|
|
20
28
|
|
|
21
29
|
const mockAgent = new MockAgent()
|
|
30
|
+
|
|
22
31
|
const mockPool = mockAgent.get('http://localhost:3000')
|
|
23
32
|
```
|
|
24
33
|
|
|
25
|
-
|
|
26
|
-
const { MockAgent } = require('undici')
|
|
34
|
+
## Instance Methods
|
|
27
35
|
|
|
28
|
-
|
|
29
|
-
const mockPool = mockAgent.get('http://localhost:3000')
|
|
30
|
-
```
|
|
36
|
+
### `MockPool.intercept(options)`
|
|
31
37
|
|
|
32
|
-
|
|
38
|
+
This method defines the interception rules for matching against requests for a MockPool or MockPool. We can intercept multiple times on a single instance, but each intercept is only used once. For example if you expect to make 2 requests inside a test, you need to call `intercept()` twice. Assuming you use `disableNetConnect()` you will get `MockNotMatchedError` on the second request when you only call `intercept()` once.
|
|
33
39
|
|
|
34
|
-
|
|
35
|
-
added: v4.0.0
|
|
36
|
-
-->
|
|
40
|
+
When defining interception rules, all the rules must pass for a request to be intercepted. If a request is not intercepted, a real request will be attempted.
|
|
37
41
|
|
|
38
|
-
|
|
42
|
+
| Matcher type | Condition to pass |
|
|
43
|
+
|:------------:| -------------------------- |
|
|
44
|
+
| `string` | Exact match against string |
|
|
45
|
+
| `RegExp` | Regex must pass |
|
|
46
|
+
| `Function` | Function must return true |
|
|
39
47
|
|
|
40
|
-
|
|
41
|
-
requests made through it to be matched against registered mocks.
|
|
48
|
+
Arguments:
|
|
42
49
|
|
|
43
|
-
|
|
50
|
+
* **options** `MockPoolInterceptOptions` - Interception options.
|
|
44
51
|
|
|
45
|
-
|
|
46
|
-
added: v4.0.0
|
|
47
|
-
-->
|
|
52
|
+
Returns: `MockInterceptor` corresponding to the input options.
|
|
48
53
|
|
|
49
|
-
|
|
50
|
-
include the protocol, hostname, and port.
|
|
51
|
-
* `options` {MockPoolOptions} Extends the [`Pool`][] options.
|
|
52
|
-
* Returns: {MockPool}
|
|
54
|
+
### Parameter: `MockPoolInterceptOptions`
|
|
53
55
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
* **path** `string | RegExp | (path: string) => boolean` - a matcher for the HTTP request path. When a `RegExp` or callback is used, it will match against the request path including all query parameters in alphabetical order. When a `string` is provided, the query parameters can be conveniently specified through the `MockPoolInterceptOptions.query` setting.
|
|
57
|
+
* **method** `string | RegExp | (method: string) => boolean` - (optional) - a matcher for the HTTP request method. Defaults to `GET`.
|
|
58
|
+
* **body** `string | RegExp | (body: string) => boolean` - (optional) - a matcher for the HTTP request body.
|
|
59
|
+
* **headers** `Record<string, string | RegExp | (body: string) => boolean`> - (optional) - a matcher for the HTTP request headers. To be intercepted, a request must match all defined headers. Extra headers not defined here may (or may not) be included in the request and do not affect the interception in any way.
|
|
60
|
+
* **query** `Record<string, any> | null` - (optional) - a matcher for the HTTP request query string params. Only applies when a `string` was provided for `MockPoolInterceptOptions.path`.
|
|
56
61
|
|
|
57
|
-
|
|
62
|
+
### Return: `MockInterceptor`
|
|
58
63
|
|
|
59
|
-
|
|
64
|
+
We can define the behaviour of an intercepted request with the following options.
|
|
65
|
+
|
|
66
|
+
* **reply** `(statusCode: number, replyData: string | Buffer | object | MockInterceptor.MockResponseDataHandler, responseOptions?: MockResponseOptions) => MockScope` - define a reply for a matching request. You can define the replyData as a callback to read incoming request data. Default for `responseOptions` is `{}`.
|
|
67
|
+
* **reply** `(callback: MockInterceptor.MockReplyOptionsCallback) => MockScope` - define a reply for a matching request, allowing dynamic mocking of all reply options rather than just the data.
|
|
68
|
+
* **replyWithError** `(error: Error) => MockScope` - define an error for a matching request to throw.
|
|
69
|
+
* **defaultReplyHeaders** `(headers: Record<string, string>) => MockInterceptor` - define default headers to be included in subsequent replies. These are in addition to headers on a specific reply.
|
|
70
|
+
* **defaultReplyTrailers** `(trailers: Record<string, string>) => MockInterceptor` - define default trailers to be included in subsequent replies. These are in addition to trailers on a specific reply.
|
|
71
|
+
* **replyContentLength** `() => MockInterceptor` - define automatically calculated `content-length` headers to be included in subsequent replies.
|
|
72
|
+
|
|
73
|
+
The reply data of an intercepted request may either be a string, buffer, or JavaScript object. Objects are converted to JSON while strings and buffers are sent as-is.
|
|
74
|
+
|
|
75
|
+
By default, `reply` and `replyWithError` define the behaviour for the first matching request only. Subsequent requests will not be affected (this can be changed using the returned `MockScope`).
|
|
76
|
+
|
|
77
|
+
### Parameter: `MockResponseOptions`
|
|
60
78
|
|
|
61
|
-
* `
|
|
62
|
-
* `
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
Registers a route on the mock pool and returns a [`MockInterceptor`][] for any
|
|
76
|
-
matching request that uses the same origin as this mock pool. The interceptor is
|
|
77
|
-
then used to define the reply, for example with `reply()` or `replyWithError()`.
|
|
78
|
-
|
|
79
|
-
Each `intercept()` call is consumed by a single matching request. To match more
|
|
80
|
-
than one request, call `intercept()` once per expected request, or use
|
|
81
|
-
`persist()` or `times()` on the returned [`MockScope`][]. When no registered
|
|
82
|
-
mock matches a request, a real request is attempted unless network connections
|
|
83
|
-
have been disabled on the [`MockAgent`][], in which case a `MockNotMatchedError`
|
|
84
|
-
is thrown.
|
|
85
|
-
|
|
86
|
-
A request is intercepted only when every defined matcher passes. The accepted
|
|
87
|
-
matcher forms behave as follows:
|
|
88
|
-
|
|
89
|
-
| Matcher type | Condition to pass |
|
|
90
|
-
| :----------: | ---------------------------- |
|
|
91
|
-
| `string` | Exact match against the value |
|
|
92
|
-
| `RegExp` | The expression must match |
|
|
93
|
-
| `Function` | The function must return `true` |
|
|
94
|
-
|
|
95
|
-
#### Parameter: `MockPoolInterceptOptions`
|
|
96
|
-
|
|
97
|
-
* `path` {string|RegExp|Function} A matcher for the HTTP request path. The
|
|
98
|
-
function form has the signature `(path: string) => boolean`. When a `RegExp`
|
|
99
|
-
or function is used, it matches against the request path including all query
|
|
100
|
-
parameters in alphabetical order. When a `string` is used, query parameters
|
|
101
|
-
can instead be supplied through `query`.
|
|
102
|
-
* `method` {string|RegExp|Function} A matcher for the HTTP request method. The
|
|
103
|
-
function form has the signature `(method: string) => boolean`.
|
|
104
|
-
**Default:** `'GET'`.
|
|
105
|
-
* `body` {string|RegExp|Function} A matcher for the HTTP request body. The
|
|
106
|
-
function form has the signature `(body: string) => boolean`.
|
|
107
|
-
* `headers` {Object|Function} A matcher for the HTTP request headers, given
|
|
108
|
-
either as a map of header name to a `string`, `RegExp`, or
|
|
109
|
-
`(value: string) => boolean` matcher, or as a single function that receives
|
|
110
|
-
all headers and returns a `boolean`. When a map is used, the request must
|
|
111
|
-
match every defined header; extra headers not listed here do not affect
|
|
112
|
-
matching.
|
|
113
|
-
* `query` {Object} A matcher for the HTTP request query string parameters. Only
|
|
114
|
-
applies when a `string` was provided for `path`.
|
|
115
|
-
* `ignoreTrailingSlash` {boolean} Whether a trailing slash on `path` is ignored
|
|
116
|
-
when matching. Inherited from the mock pool's `ignoreTrailingSlash` option
|
|
117
|
-
when not set.
|
|
118
|
-
|
|
119
|
-
#### Return: `MockInterceptor`
|
|
120
|
-
|
|
121
|
-
The reply behaviour of a matching request is defined through the returned
|
|
122
|
-
`MockInterceptor`.
|
|
123
|
-
|
|
124
|
-
* `reply(statusCode[, data[, responseOptions]])` {Function} Defines the reply
|
|
125
|
-
for a matching request.
|
|
126
|
-
* `statusCode` {number} The status code of the mocked reply.
|
|
127
|
-
* `data` {string|Buffer|Object|Function} The body of the mocked reply.
|
|
128
|
-
Objects are serialized to JSON; strings and `Buffer`s are sent as-is. The
|
|
129
|
-
function form has the signature
|
|
130
|
-
`(opts: MockResponseCallbackOptions) => string | Buffer | Object` and is
|
|
131
|
-
invoked with the incoming request to compute the reply body.
|
|
132
|
-
* `responseOptions` {MockResponseOptions} Additional reply options.
|
|
133
|
-
**Default:** `{}`.
|
|
134
|
-
* Returns: {MockScope}
|
|
135
|
-
* `reply(callback)` {Function} Defines the reply for a matching request,
|
|
136
|
-
computing all reply options dynamically rather than just the body.
|
|
137
|
-
* `callback` {Function} A `(opts: MockResponseCallbackOptions) =>
|
|
138
|
-
{ statusCode, data, responseOptions }` function invoked with the incoming
|
|
139
|
-
request. The callback may be asynchronous; a returned promise is awaited
|
|
140
|
-
and must resolve to the same shape.
|
|
141
|
-
* Returns: {MockScope}
|
|
142
|
-
* `replyWithError(error)` {Function} Defines an error for a matching request to
|
|
143
|
-
throw.
|
|
144
|
-
* `error` {Error} The error thrown when a request matches.
|
|
145
|
-
* Returns: {MockScope}
|
|
146
|
-
* `defaultReplyHeaders(headers)` {Function} Sets default headers included on
|
|
147
|
-
every subsequent reply defined on this interceptor, in addition to any headers
|
|
148
|
-
set on a specific reply.
|
|
149
|
-
* `headers` {Object} A map of header name to value.
|
|
150
|
-
* Returns: {MockInterceptor}
|
|
151
|
-
* `defaultReplyTrailers(trailers)` {Function} Sets default trailers included on
|
|
152
|
-
every subsequent reply defined on this interceptor, in addition to any
|
|
153
|
-
trailers set on a specific reply.
|
|
154
|
-
* `trailers` {Object} A map of trailer name to value.
|
|
155
|
-
* Returns: {MockInterceptor}
|
|
156
|
-
* `replyContentLength()` {Function} Sets an automatically calculated
|
|
157
|
-
`content-length` header on every subsequent reply defined on this interceptor.
|
|
158
|
-
* Returns: {MockInterceptor}
|
|
159
|
-
|
|
160
|
-
By default, `reply()` and `replyWithError()` define the behaviour for the first
|
|
161
|
-
matching request only; subsequent requests are not affected unless `persist()`
|
|
162
|
-
or `times()` is used on the returned [`MockScope`][].
|
|
163
|
-
|
|
164
|
-
#### Parameter: `MockResponseCallbackOptions`
|
|
165
|
-
|
|
166
|
-
The argument passed to the `reply()` data and options callbacks.
|
|
167
|
-
|
|
168
|
-
* `path` {string} The path of the intercepted request.
|
|
169
|
-
* `method` {string} The method of the intercepted request.
|
|
170
|
-
* `headers` {Object|Headers} The headers of the intercepted request.
|
|
171
|
-
* `origin` {string} The origin of the intercepted request.
|
|
172
|
-
* `body` {string|null} The body of the intercepted request.
|
|
173
|
-
|
|
174
|
-
#### Parameter: `MockResponseOptions`
|
|
175
|
-
|
|
176
|
-
* `headers` {Object} Headers to include on the mocked reply.
|
|
177
|
-
* `trailers` {Object} Trailers to include on the mocked reply.
|
|
178
|
-
|
|
179
|
-
#### Return: `MockScope`
|
|
180
|
-
|
|
181
|
-
A `MockScope` is associated with a single [`MockInterceptor`][] and configures
|
|
182
|
-
how many times the defined reply is used.
|
|
183
|
-
|
|
184
|
-
* `delay(waitInMs)` {Function} Delays the associated reply by a set amount of
|
|
185
|
-
time.
|
|
186
|
-
* `waitInMs` {number} The delay in milliseconds.
|
|
187
|
-
* Returns: {MockScope}
|
|
188
|
-
* `persist()` {Function} Makes the associated reply match indefinitely, so every
|
|
189
|
-
matching request receives the defined response.
|
|
190
|
-
* Returns: {MockScope}
|
|
191
|
-
* `times(repeatTimes)` {Function} Makes the associated reply match a fixed number
|
|
192
|
-
of times. This is overridden by `persist()`.
|
|
193
|
-
* `repeatTimes` {number} The number of matching requests the reply applies to.
|
|
194
|
-
* Returns: {MockScope}
|
|
195
|
-
|
|
196
|
-
The following examples show common interception patterns.
|
|
197
|
-
|
|
198
|
-
```mjs displayName="Basic mocked request"
|
|
79
|
+
* **headers** `Record<string, string>` - headers to be included on the mocked reply.
|
|
80
|
+
* **trailers** `Record<string, string>` - trailers to be included on the mocked reply.
|
|
81
|
+
|
|
82
|
+
### Return: `MockScope`
|
|
83
|
+
|
|
84
|
+
A `MockScope` is associated with a single `MockInterceptor`. With this, we can configure the default behaviour of a intercepted reply.
|
|
85
|
+
|
|
86
|
+
* **delay** `(waitInMs: number) => MockScope` - delay the associated reply by a set amount in ms.
|
|
87
|
+
* **persist** `() => MockScope` - any matching request will always reply with the defined response indefinitely.
|
|
88
|
+
* **times** `(repeatTimes: number) => MockScope` - any matching request will reply with the defined response a fixed amount of times. This is overridden by **persist**.
|
|
89
|
+
|
|
90
|
+
#### Example - Basic Mocked Request
|
|
91
|
+
|
|
92
|
+
```js
|
|
199
93
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
200
94
|
|
|
201
95
|
const mockAgent = new MockAgent()
|
|
202
96
|
setGlobalDispatcher(mockAgent)
|
|
203
97
|
|
|
98
|
+
// MockPool
|
|
204
99
|
const mockPool = mockAgent.get('http://localhost:3000')
|
|
205
100
|
mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
|
|
206
101
|
|
|
207
|
-
const {
|
|
102
|
+
const {
|
|
103
|
+
statusCode,
|
|
104
|
+
body
|
|
105
|
+
} = await request('http://localhost:3000/foo')
|
|
208
106
|
|
|
209
107
|
console.log('response received', statusCode) // response received 200
|
|
210
108
|
|
|
@@ -213,7 +111,9 @@ for await (const data of body) {
|
|
|
213
111
|
}
|
|
214
112
|
```
|
|
215
113
|
|
|
216
|
-
|
|
114
|
+
#### Example - Mocked request using reply data callbacks
|
|
115
|
+
|
|
116
|
+
```js
|
|
217
117
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
218
118
|
|
|
219
119
|
const mockAgent = new MockAgent()
|
|
@@ -223,21 +123,30 @@ const mockPool = mockAgent.get('http://localhost:3000')
|
|
|
223
123
|
|
|
224
124
|
mockPool.intercept({
|
|
225
125
|
path: '/echo',
|
|
226
|
-
method: 'GET'
|
|
227
|
-
|
|
126
|
+
method: 'GET',
|
|
127
|
+
headers: {
|
|
128
|
+
'User-Agent': 'undici',
|
|
129
|
+
Host: 'example.com'
|
|
130
|
+
}
|
|
131
|
+
}).reply(200, ({ headers }) => ({ message: headers.get('message') }))
|
|
228
132
|
|
|
229
|
-
const { statusCode, body } = await request('http://localhost:3000
|
|
230
|
-
headers: {
|
|
133
|
+
const { statusCode, body, headers } = await request('http://localhost:3000', {
|
|
134
|
+
headers: {
|
|
135
|
+
message: 'hello world!'
|
|
136
|
+
}
|
|
231
137
|
})
|
|
232
138
|
|
|
233
139
|
console.log('response received', statusCode) // response received 200
|
|
140
|
+
console.log('headers', headers) // { 'content-type': 'application/json' }
|
|
234
141
|
|
|
235
142
|
for await (const data of body) {
|
|
236
|
-
console.log('data', data.toString('utf8')) // {"message":"hello world!"}
|
|
143
|
+
console.log('data', data.toString('utf8')) // { "message":"hello world!" }
|
|
237
144
|
}
|
|
238
145
|
```
|
|
239
146
|
|
|
240
|
-
|
|
147
|
+
#### Example - Mocked request using reply options callback
|
|
148
|
+
|
|
149
|
+
```js
|
|
241
150
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
242
151
|
|
|
243
152
|
const mockAgent = new MockAgent()
|
|
@@ -247,25 +156,30 @@ const mockPool = mockAgent.get('http://localhost:3000')
|
|
|
247
156
|
|
|
248
157
|
mockPool.intercept({
|
|
249
158
|
path: '/echo',
|
|
250
|
-
method: 'GET'
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
}
|
|
159
|
+
method: 'GET',
|
|
160
|
+
headers: {
|
|
161
|
+
'User-Agent': 'undici',
|
|
162
|
+
Host: 'example.com'
|
|
163
|
+
}
|
|
164
|
+
}).reply(({ headers }) => ({ statusCode: 200, data: { message: headers.get('message') }})))
|
|
255
165
|
|
|
256
|
-
const { statusCode, body } = await request('http://localhost:3000
|
|
257
|
-
headers: {
|
|
166
|
+
const { statusCode, body, headers } = await request('http://localhost:3000', {
|
|
167
|
+
headers: {
|
|
168
|
+
message: 'hello world!'
|
|
169
|
+
}
|
|
258
170
|
})
|
|
259
171
|
|
|
260
172
|
console.log('response received', statusCode) // response received 200
|
|
173
|
+
console.log('headers', headers) // { 'content-type': 'application/json' }
|
|
261
174
|
|
|
262
175
|
for await (const data of body) {
|
|
263
|
-
console.log('data', data.toString('utf8')) // {"message":"hello world!"}
|
|
176
|
+
console.log('data', data.toString('utf8')) // { "message":"hello world!" }
|
|
264
177
|
}
|
|
265
178
|
```
|
|
266
179
|
|
|
267
|
-
|
|
268
|
-
|
|
180
|
+
#### Example - Basic Mocked requests with multiple intercepts
|
|
181
|
+
|
|
182
|
+
```js
|
|
269
183
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
270
184
|
|
|
271
185
|
const mockAgent = new MockAgent()
|
|
@@ -274,45 +188,35 @@ setGlobalDispatcher(mockAgent)
|
|
|
274
188
|
const mockPool = mockAgent.get('http://localhost:3000')
|
|
275
189
|
|
|
276
190
|
mockPool.intercept({
|
|
277
|
-
path: '/
|
|
191
|
+
path: '/foo',
|
|
278
192
|
method: 'GET'
|
|
279
|
-
}).reply(
|
|
280
|
-
statusCode: 200,
|
|
281
|
-
data: await readFile(new URL('./fixture.json', import.meta.url))
|
|
282
|
-
}))
|
|
283
|
-
|
|
284
|
-
const { statusCode, body } = await request('http://localhost:3000/fixture')
|
|
285
|
-
|
|
286
|
-
console.log('response received', statusCode) // response received 200
|
|
287
|
-
|
|
288
|
-
for await (const data of body) {
|
|
289
|
-
console.log('data', data.toString('utf8')) // contents of fixture.json
|
|
290
|
-
}
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
```mjs displayName="Multiple intercepts"
|
|
294
|
-
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
193
|
+
}).reply(200, 'foo')
|
|
295
194
|
|
|
296
|
-
|
|
297
|
-
|
|
195
|
+
mockPool.intercept({
|
|
196
|
+
path: '/hello',
|
|
197
|
+
method: 'GET',
|
|
198
|
+
}).reply(200, 'hello')
|
|
298
199
|
|
|
299
|
-
const
|
|
200
|
+
const result1 = await request('http://localhost:3000/foo')
|
|
300
201
|
|
|
301
|
-
|
|
302
|
-
mockPool.intercept({ path: '/hello', method: 'GET' }).reply(200, 'hello')
|
|
202
|
+
console.log('response received', result1.statusCode) // response received 200
|
|
303
203
|
|
|
304
|
-
const
|
|
305
|
-
for await (const data of fooResult.body) {
|
|
204
|
+
for await (const data of result1.body) {
|
|
306
205
|
console.log('data', data.toString('utf8')) // data foo
|
|
307
206
|
}
|
|
308
207
|
|
|
309
|
-
const
|
|
310
|
-
|
|
208
|
+
const result2 = await request('http://localhost:3000/hello')
|
|
209
|
+
|
|
210
|
+
console.log('response received', result2.statusCode) // response received 200
|
|
211
|
+
|
|
212
|
+
for await (const data of result2.body) {
|
|
311
213
|
console.log('data', data.toString('utf8')) // data hello
|
|
312
214
|
}
|
|
313
215
|
```
|
|
314
216
|
|
|
315
|
-
|
|
217
|
+
#### Example - Mocked request with query body, request headers and response headers and trailers
|
|
218
|
+
|
|
219
|
+
```js
|
|
316
220
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
317
221
|
|
|
318
222
|
const mockAgent = new MockAgent()
|
|
@@ -333,9 +237,12 @@ mockPool.intercept({
|
|
|
333
237
|
trailers: { 'Content-MD5': 'test' }
|
|
334
238
|
})
|
|
335
239
|
|
|
336
|
-
const {
|
|
337
|
-
|
|
338
|
-
|
|
240
|
+
const {
|
|
241
|
+
statusCode,
|
|
242
|
+
headers,
|
|
243
|
+
trailers,
|
|
244
|
+
body
|
|
245
|
+
} = await request('http://localhost:3000/foo?hello=there&see=ya', {
|
|
339
246
|
method: 'POST',
|
|
340
247
|
body: 'form1=data1&form2=data2',
|
|
341
248
|
headers: {
|
|
@@ -343,20 +250,21 @@ const { statusCode, headers, trailers, body } = await request(
|
|
|
343
250
|
'User-Agent': 'undici',
|
|
344
251
|
Host: 'example.com'
|
|
345
252
|
}
|
|
346
|
-
}
|
|
347
|
-
)
|
|
253
|
+
})
|
|
348
254
|
|
|
349
255
|
console.log('response received', statusCode) // response received 200
|
|
350
256
|
console.log('headers', headers) // { 'content-type': 'application/json' }
|
|
351
257
|
|
|
352
258
|
for await (const data of body) {
|
|
353
|
-
console.log('data', data.toString('utf8')) // {"foo":"bar"}
|
|
259
|
+
console.log('data', data.toString('utf8')) // '{"foo":"bar"}'
|
|
354
260
|
}
|
|
355
261
|
|
|
356
262
|
console.log('trailers', trailers) // { 'content-md5': 'test' }
|
|
357
263
|
```
|
|
358
264
|
|
|
359
|
-
|
|
265
|
+
#### Example - Mocked request using different matchers
|
|
266
|
+
|
|
267
|
+
```js
|
|
360
268
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
361
269
|
|
|
362
270
|
const mockAgent = new MockAgent()
|
|
@@ -370,11 +278,14 @@ mockPool.intercept({
|
|
|
370
278
|
body: (value) => value === 'form=data',
|
|
371
279
|
headers: {
|
|
372
280
|
'User-Agent': 'undici',
|
|
373
|
-
Host: /^example
|
|
281
|
+
Host: /^example.com$/
|
|
374
282
|
}
|
|
375
283
|
}).reply(200, 'foo')
|
|
376
284
|
|
|
377
|
-
const {
|
|
285
|
+
const {
|
|
286
|
+
statusCode,
|
|
287
|
+
body
|
|
288
|
+
} = await request('http://localhost:3000/foo', {
|
|
378
289
|
method: 'GET',
|
|
379
290
|
body: 'form=data',
|
|
380
291
|
headers: {
|
|
@@ -391,7 +302,9 @@ for await (const data of body) {
|
|
|
391
302
|
}
|
|
392
303
|
```
|
|
393
304
|
|
|
394
|
-
|
|
305
|
+
#### Example - Mocked request with reply with a defined error
|
|
306
|
+
|
|
307
|
+
```js
|
|
395
308
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
396
309
|
|
|
397
310
|
const mockAgent = new MockAgent()
|
|
@@ -405,13 +318,17 @@ mockPool.intercept({
|
|
|
405
318
|
}).replyWithError(new Error('kaboom'))
|
|
406
319
|
|
|
407
320
|
try {
|
|
408
|
-
await request('http://localhost:3000/foo', {
|
|
321
|
+
await request('http://localhost:3000/foo', {
|
|
322
|
+
method: 'GET'
|
|
323
|
+
})
|
|
409
324
|
} catch (error) {
|
|
410
|
-
console.error(error
|
|
325
|
+
console.error(error) // Error: kaboom
|
|
411
326
|
}
|
|
412
327
|
```
|
|
413
328
|
|
|
414
|
-
|
|
329
|
+
#### Example - Mocked request with defaultReplyHeaders
|
|
330
|
+
|
|
331
|
+
```js
|
|
415
332
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
416
333
|
|
|
417
334
|
const mockAgent = new MockAgent()
|
|
@@ -419,8 +336,10 @@ setGlobalDispatcher(mockAgent)
|
|
|
419
336
|
|
|
420
337
|
const mockPool = mockAgent.get('http://localhost:3000')
|
|
421
338
|
|
|
422
|
-
mockPool.intercept({
|
|
423
|
-
|
|
339
|
+
mockPool.intercept({
|
|
340
|
+
path: '/foo',
|
|
341
|
+
method: 'GET'
|
|
342
|
+
}).defaultReplyHeaders({ foo: 'bar' })
|
|
424
343
|
.reply(200, 'foo')
|
|
425
344
|
|
|
426
345
|
const { headers } = await request('http://localhost:3000/foo')
|
|
@@ -428,7 +347,9 @@ const { headers } = await request('http://localhost:3000/foo')
|
|
|
428
347
|
console.log('headers', headers) // headers { foo: 'bar' }
|
|
429
348
|
```
|
|
430
349
|
|
|
431
|
-
|
|
350
|
+
#### Example - Mocked request with defaultReplyTrailers
|
|
351
|
+
|
|
352
|
+
```js
|
|
432
353
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
433
354
|
|
|
434
355
|
const mockAgent = new MockAgent()
|
|
@@ -436,8 +357,10 @@ setGlobalDispatcher(mockAgent)
|
|
|
436
357
|
|
|
437
358
|
const mockPool = mockAgent.get('http://localhost:3000')
|
|
438
359
|
|
|
439
|
-
mockPool.intercept({
|
|
440
|
-
|
|
360
|
+
mockPool.intercept({
|
|
361
|
+
path: '/foo',
|
|
362
|
+
method: 'GET'
|
|
363
|
+
}).defaultReplyTrailers({ foo: 'bar' })
|
|
441
364
|
.reply(200, 'foo')
|
|
442
365
|
|
|
443
366
|
const { trailers } = await request('http://localhost:3000/foo')
|
|
@@ -445,7 +368,9 @@ const { trailers } = await request('http://localhost:3000/foo')
|
|
|
445
368
|
console.log('trailers', trailers) // trailers { foo: 'bar' }
|
|
446
369
|
```
|
|
447
370
|
|
|
448
|
-
|
|
371
|
+
#### Example - Mocked request with automatic content-length calculation
|
|
372
|
+
|
|
373
|
+
```js
|
|
449
374
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
450
375
|
|
|
451
376
|
const mockAgent = new MockAgent()
|
|
@@ -453,16 +378,19 @@ setGlobalDispatcher(mockAgent)
|
|
|
453
378
|
|
|
454
379
|
const mockPool = mockAgent.get('http://localhost:3000')
|
|
455
380
|
|
|
456
|
-
mockPool.intercept({
|
|
457
|
-
|
|
458
|
-
|
|
381
|
+
mockPool.intercept({
|
|
382
|
+
path: '/foo',
|
|
383
|
+
method: 'GET'
|
|
384
|
+
}).replyContentLength().reply(200, 'foo')
|
|
459
385
|
|
|
460
386
|
const { headers } = await request('http://localhost:3000/foo')
|
|
461
387
|
|
|
462
388
|
console.log('headers', headers) // headers { 'content-length': '3' }
|
|
463
389
|
```
|
|
464
390
|
|
|
465
|
-
|
|
391
|
+
#### Example - Mocked request with automatic content-length calculation on an object
|
|
392
|
+
|
|
393
|
+
```js
|
|
466
394
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
467
395
|
|
|
468
396
|
const mockAgent = new MockAgent()
|
|
@@ -470,13 +398,19 @@ setGlobalDispatcher(mockAgent)
|
|
|
470
398
|
|
|
471
399
|
const mockPool = mockAgent.get('http://localhost:3000')
|
|
472
400
|
|
|
473
|
-
mockPool.intercept({
|
|
401
|
+
mockPool.intercept({
|
|
402
|
+
path: '/foo',
|
|
403
|
+
method: 'GET'
|
|
404
|
+
}).replyContentLength().reply(200, { foo: 'bar' })
|
|
405
|
+
|
|
406
|
+
const { headers } = await request('http://localhost:3000/foo')
|
|
474
407
|
|
|
475
|
-
|
|
476
|
-
await request('http://localhost:3000/foo') // Matches again, indefinitely
|
|
408
|
+
console.log('headers', headers) // headers { 'content-length': '13' }
|
|
477
409
|
```
|
|
478
410
|
|
|
479
|
-
|
|
411
|
+
#### Example - Mocked request with persist enabled
|
|
412
|
+
|
|
413
|
+
```js
|
|
480
414
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
481
415
|
|
|
482
416
|
const mockAgent = new MockAgent()
|
|
@@ -484,23 +418,57 @@ setGlobalDispatcher(mockAgent)
|
|
|
484
418
|
|
|
485
419
|
const mockPool = mockAgent.get('http://localhost:3000')
|
|
486
420
|
|
|
487
|
-
mockPool.intercept({
|
|
421
|
+
mockPool.intercept({
|
|
422
|
+
path: '/foo',
|
|
423
|
+
method: 'GET'
|
|
424
|
+
}).reply(200, 'foo').persist()
|
|
425
|
+
|
|
426
|
+
const result1 = await request('http://localhost:3000/foo')
|
|
427
|
+
// Will match and return mocked data
|
|
488
428
|
|
|
489
|
-
await request('http://localhost:3000/foo')
|
|
490
|
-
|
|
491
|
-
|
|
429
|
+
const result2 = await request('http://localhost:3000/foo')
|
|
430
|
+
// Will match and return mocked data
|
|
431
|
+
|
|
432
|
+
// Etc
|
|
492
433
|
```
|
|
493
434
|
|
|
494
|
-
|
|
435
|
+
#### Example - Mocked request with times enabled
|
|
436
|
+
|
|
437
|
+
```js
|
|
495
438
|
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
496
|
-
import querystring from 'node:querystring'
|
|
497
439
|
|
|
498
440
|
const mockAgent = new MockAgent()
|
|
499
441
|
setGlobalDispatcher(mockAgent)
|
|
500
442
|
|
|
501
443
|
const mockPool = mockAgent.get('http://localhost:3000')
|
|
502
444
|
|
|
503
|
-
|
|
445
|
+
mockPool.intercept({
|
|
446
|
+
path: '/foo',
|
|
447
|
+
method: 'GET'
|
|
448
|
+
}).reply(200, 'foo').times(2)
|
|
449
|
+
|
|
450
|
+
const result1 = await request('http://localhost:3000/foo')
|
|
451
|
+
// Will match and return mocked data
|
|
452
|
+
|
|
453
|
+
const result2 = await request('http://localhost:3000/foo')
|
|
454
|
+
// Will match and return mocked data
|
|
455
|
+
|
|
456
|
+
const result3 = await request('http://localhost:3000/foo')
|
|
457
|
+
// Will not match and make attempt a real request
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
#### Example - Mocked request with path callback
|
|
461
|
+
|
|
462
|
+
```js
|
|
463
|
+
import { MockAgent, setGlobalDispatcher, request } from 'undici'
|
|
464
|
+
import querystring from 'querystring'
|
|
465
|
+
|
|
466
|
+
const mockAgent = new MockAgent()
|
|
467
|
+
setGlobalDispatcher(mockAgent)
|
|
468
|
+
|
|
469
|
+
const mockPool = mockAgent.get('http://localhost:3000')
|
|
470
|
+
|
|
471
|
+
const matchPath = requestPath => {
|
|
504
472
|
const [pathname, search] = requestPath.split('?')
|
|
505
473
|
const requestQuery = querystring.parse(search)
|
|
506
474
|
|
|
@@ -508,26 +476,31 @@ const matchPath = (requestPath) => {
|
|
|
508
476
|
return false
|
|
509
477
|
}
|
|
510
478
|
|
|
511
|
-
|
|
479
|
+
if (!Object.keys(requestQuery).includes('foo') || requestQuery.foo !== 'bar') {
|
|
480
|
+
return false
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
return true
|
|
512
484
|
}
|
|
513
485
|
|
|
514
|
-
mockPool.intercept({
|
|
486
|
+
mockPool.intercept({
|
|
487
|
+
path: matchPath,
|
|
488
|
+
method: 'GET'
|
|
489
|
+
}).reply(200, 'foo')
|
|
515
490
|
|
|
516
|
-
await request('http://localhost:3000/foo?foo=bar')
|
|
491
|
+
const result = await request('http://localhost:3000/foo?foo=bar')
|
|
492
|
+
// Will match and return mocked data
|
|
517
493
|
```
|
|
518
494
|
|
|
519
|
-
### `
|
|
495
|
+
### `MockPool.close()`
|
|
520
496
|
|
|
521
|
-
|
|
522
|
-
added: v4.0.0
|
|
523
|
-
-->
|
|
497
|
+
Closes the mock pool and de-registers from associated MockAgent.
|
|
524
498
|
|
|
525
|
-
|
|
499
|
+
Returns: `Promise<void>`
|
|
526
500
|
|
|
527
|
-
|
|
528
|
-
and removes it from the associated [`MockAgent`][].
|
|
501
|
+
#### Example - clean up after tests are complete
|
|
529
502
|
|
|
530
|
-
```
|
|
503
|
+
```js
|
|
531
504
|
import { MockAgent } from 'undici'
|
|
532
505
|
|
|
533
506
|
const mockAgent = new MockAgent()
|
|
@@ -536,45 +509,31 @@ const mockPool = mockAgent.get('http://localhost:3000')
|
|
|
536
509
|
await mockPool.close()
|
|
537
510
|
```
|
|
538
511
|
|
|
539
|
-
### `
|
|
540
|
-
|
|
541
|
-
<!-- YAML
|
|
542
|
-
added: v4.0.0
|
|
543
|
-
-->
|
|
512
|
+
### `MockPool.dispatch(options, handlers)`
|
|
544
513
|
|
|
545
|
-
|
|
546
|
-
* `handlers` {DispatchHandler} The handlers invoked over the request lifecycle.
|
|
547
|
-
* Returns: {boolean} `false` if the dispatcher is busy and the caller should
|
|
548
|
-
wait before dispatching further requests, otherwise `true`.
|
|
514
|
+
Implements [`Dispatcher.dispatch(options, handlers)`](Dispatcher.md#dispatcherdispatchoptions-handler).
|
|
549
515
|
|
|
550
|
-
|
|
551
|
-
[`dispatcher.dispatch(options, handlers)`][] is what drives the mocking
|
|
552
|
-
behaviour for every higher-level method such as `request`.
|
|
516
|
+
### `MockPool.request(options[, callback])`
|
|
553
517
|
|
|
554
|
-
|
|
518
|
+
See [`Dispatcher.request(options [, callback])`](Dispatcher.md#dispatcherrequestoptions-callback).
|
|
555
519
|
|
|
556
|
-
|
|
557
|
-
added: v4.0.0
|
|
558
|
-
-->
|
|
520
|
+
#### Example - MockPool request
|
|
559
521
|
|
|
560
|
-
|
|
561
|
-
* `callback` {Function} (optional) Invoked with the response when no `Promise`
|
|
562
|
-
is requested.
|
|
563
|
-
* Returns: {Promise} Fulfills with the mocked response when no `callback` is
|
|
564
|
-
provided.
|
|
565
|
-
|
|
566
|
-
Performs a request and resolves it against the registered mocks. Inherited from
|
|
567
|
-
[`Pool`][]; see [`dispatcher.request(options[, callback])`][] for the full
|
|
568
|
-
parameter and return value documentation.
|
|
569
|
-
|
|
570
|
-
```mjs
|
|
522
|
+
```js
|
|
571
523
|
import { MockAgent } from 'undici'
|
|
572
524
|
|
|
573
525
|
const mockAgent = new MockAgent()
|
|
526
|
+
|
|
574
527
|
const mockPool = mockAgent.get('http://localhost:3000')
|
|
575
|
-
mockPool.intercept({
|
|
528
|
+
mockPool.intercept({
|
|
529
|
+
path: '/foo',
|
|
530
|
+
method: 'GET',
|
|
531
|
+
}).reply(200, 'foo')
|
|
576
532
|
|
|
577
|
-
const {
|
|
533
|
+
const {
|
|
534
|
+
statusCode,
|
|
535
|
+
body
|
|
536
|
+
} = await mockPool.request({
|
|
578
537
|
origin: 'http://localhost:3000',
|
|
579
538
|
path: '/foo',
|
|
580
539
|
method: 'GET'
|
|
@@ -586,33 +545,3 @@ for await (const data of body) {
|
|
|
586
545
|
console.log('data', data.toString('utf8')) // data foo
|
|
587
546
|
}
|
|
588
547
|
```
|
|
589
|
-
|
|
590
|
-
### `mockPool.cleanMocks()`
|
|
591
|
-
|
|
592
|
-
<!-- YAML
|
|
593
|
-
added: v7.11.0
|
|
594
|
-
-->
|
|
595
|
-
|
|
596
|
-
* Returns: {undefined}
|
|
597
|
-
|
|
598
|
-
Removes all registered interceptors from the mock pool. Pending mocks defined
|
|
599
|
-
before this call no longer match incoming requests.
|
|
600
|
-
|
|
601
|
-
```mjs
|
|
602
|
-
import { MockAgent } from 'undici'
|
|
603
|
-
|
|
604
|
-
const mockAgent = new MockAgent()
|
|
605
|
-
const mockPool = mockAgent.get('http://localhost:3000')
|
|
606
|
-
|
|
607
|
-
mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
|
|
608
|
-
mockPool.cleanMocks()
|
|
609
|
-
```
|
|
610
|
-
|
|
611
|
-
[`MockAgent`]: MockAgent.md#class-mockagent
|
|
612
|
-
[`MockClient`]: MockClient.md#class-mockclient
|
|
613
|
-
[`MockInterceptor`]: MockPool.md#return-mockinterceptor
|
|
614
|
-
[`MockScope`]: MockPool.md#return-mockscope
|
|
615
|
-
[`Pool`]: Pool.md#class-pool
|
|
616
|
-
[`dispatcher.dispatch(options, handlers)`]: Dispatcher.md#dispatcherdispatchoptions-handler
|
|
617
|
-
[`dispatcher.request(options[, callback])`]: Dispatcher.md#dispatcherrequestoptions-callback
|
|
618
|
-
[`mockAgent.get(origin)`]: MockAgent.md#mockagentgetorigin
|