@pnpm/exe 11.0.5 → 11.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node-gyp-bin/node-gyp +0 -0
- package/dist/node-gyp-bin/node-gyp.cmd +0 -0
- package/dist/node_modules/node-gyp/.release-please-manifest.json +1 -1
- package/dist/node_modules/node-gyp/bin/node-gyp.js +0 -0
- package/dist/node_modules/node-gyp/gyp/.release-please-manifest.json +1 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +11 -3
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +2 -3
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +1 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +2 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +26 -16
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +1 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +1 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +2 -2
- package/dist/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +3 -20
- package/dist/node_modules/node-gyp/gyp/pylib/packaging/tags.py +2 -14
- package/dist/node_modules/node-gyp/gyp/pyproject.toml +5 -3
- package/dist/node_modules/node-gyp/lib/download.js +55 -8
- package/dist/node_modules/node-gyp/lib/find-visualstudio.js +1 -1
- package/dist/node_modules/node-gyp/lib/process-release.js +17 -19
- package/dist/node_modules/node-gyp/package.json +3 -3
- package/dist/node_modules/{safer-buffer → undici}/LICENSE +1 -1
- package/dist/node_modules/undici/index-fetch.js +35 -0
- package/dist/node_modules/undici/index.js +169 -0
- package/dist/node_modules/undici/lib/api/abort-signal.js +57 -0
- package/dist/node_modules/undici/lib/api/api-connect.js +108 -0
- package/dist/node_modules/undici/lib/api/api-pipeline.js +251 -0
- package/dist/node_modules/undici/lib/api/api-request.js +214 -0
- package/dist/node_modules/undici/lib/api/api-stream.js +220 -0
- package/dist/node_modules/undici/lib/api/api-upgrade.js +108 -0
- package/dist/node_modules/undici/lib/api/index.js +7 -0
- package/dist/node_modules/undici/lib/api/readable.js +385 -0
- package/dist/node_modules/undici/lib/api/util.js +93 -0
- package/dist/node_modules/undici/lib/core/connect.js +240 -0
- package/dist/node_modules/undici/lib/core/constants.js +118 -0
- package/dist/node_modules/undici/lib/core/diagnostics.js +202 -0
- package/dist/node_modules/undici/lib/core/errors.js +425 -0
- package/dist/node_modules/undici/lib/core/request.js +405 -0
- package/dist/node_modules/undici/lib/core/symbols.js +67 -0
- package/dist/node_modules/undici/lib/core/tree.js +152 -0
- package/dist/node_modules/undici/lib/core/util.js +719 -0
- package/dist/node_modules/undici/lib/dispatcher/agent.js +130 -0
- package/dist/node_modules/undici/lib/dispatcher/balanced-pool.js +209 -0
- package/dist/node_modules/undici/lib/dispatcher/client-h1.js +1370 -0
- package/dist/node_modules/undici/lib/dispatcher/client-h2.js +744 -0
- package/dist/node_modules/undici/lib/dispatcher/client.js +623 -0
- package/dist/node_modules/undici/lib/dispatcher/dispatcher-base.js +198 -0
- package/dist/node_modules/undici/lib/dispatcher/dispatcher.js +65 -0
- package/dist/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +160 -0
- package/dist/node_modules/undici/lib/dispatcher/fixed-queue.js +117 -0
- package/dist/node_modules/undici/lib/dispatcher/pool-base.js +194 -0
- package/dist/node_modules/undici/lib/dispatcher/pool-stats.js +34 -0
- package/dist/node_modules/undici/lib/dispatcher/pool.js +107 -0
- package/dist/node_modules/undici/lib/dispatcher/proxy-agent.js +274 -0
- package/dist/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
- package/dist/node_modules/undici/lib/global.js +32 -0
- package/dist/node_modules/undici/lib/handler/decorator-handler.js +44 -0
- package/dist/node_modules/undici/lib/handler/redirect-handler.js +232 -0
- package/dist/node_modules/undici/lib/handler/retry-handler.js +374 -0
- package/dist/node_modules/undici/lib/interceptor/dns.js +375 -0
- package/dist/node_modules/undici/lib/interceptor/dump.js +123 -0
- package/dist/node_modules/undici/lib/interceptor/redirect-interceptor.js +21 -0
- package/dist/node_modules/undici/lib/interceptor/redirect.js +24 -0
- package/dist/node_modules/undici/lib/interceptor/response-error.js +86 -0
- package/dist/node_modules/undici/lib/interceptor/retry.js +19 -0
- package/dist/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/dist/node_modules/undici/lib/llhttp/constants.js +278 -0
- package/dist/node_modules/undici/lib/llhttp/llhttp-wasm.js +5 -0
- package/dist/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +5 -0
- package/dist/node_modules/undici/lib/llhttp/utils.js +15 -0
- package/dist/node_modules/undici/lib/mock/mock-agent.js +160 -0
- package/dist/node_modules/undici/lib/mock/mock-client.js +59 -0
- package/dist/node_modules/undici/lib/mock/mock-errors.js +28 -0
- package/dist/node_modules/undici/lib/mock/mock-interceptor.js +207 -0
- package/dist/node_modules/undici/lib/mock/mock-pool.js +59 -0
- package/dist/node_modules/undici/lib/mock/mock-symbols.js +23 -0
- package/dist/node_modules/undici/lib/mock/mock-utils.js +367 -0
- package/dist/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
- package/dist/node_modules/undici/lib/mock/pluralizer.js +29 -0
- package/dist/node_modules/undici/lib/util/timers.js +423 -0
- package/dist/node_modules/undici/lib/web/cache/cache.js +859 -0
- package/dist/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
- package/dist/node_modules/undici/lib/web/cache/symbols.js +5 -0
- package/dist/node_modules/undici/lib/web/cache/util.js +45 -0
- package/dist/node_modules/undici/lib/web/cookies/constants.js +12 -0
- package/dist/node_modules/undici/lib/web/cookies/index.js +184 -0
- package/dist/node_modules/undici/lib/web/cookies/parse.js +317 -0
- package/dist/node_modules/undici/lib/web/cookies/util.js +282 -0
- package/dist/node_modules/undici/lib/web/eventsource/eventsource-stream.js +398 -0
- package/dist/node_modules/undici/lib/web/eventsource/eventsource.js +480 -0
- package/dist/node_modules/undici/lib/web/eventsource/util.js +37 -0
- package/dist/node_modules/{@npmcli/redact → undici/lib/web/fetch}/LICENSE +1 -1
- package/dist/node_modules/undici/lib/web/fetch/body.js +529 -0
- package/dist/node_modules/undici/lib/web/fetch/constants.js +124 -0
- package/dist/node_modules/undici/lib/web/fetch/data-url.js +744 -0
- package/dist/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +46 -0
- package/dist/node_modules/undici/lib/web/fetch/file.js +126 -0
- package/dist/node_modules/undici/lib/web/fetch/formdata-parser.js +474 -0
- package/dist/node_modules/undici/lib/web/fetch/formdata.js +252 -0
- package/dist/node_modules/undici/lib/web/fetch/global.js +40 -0
- package/dist/node_modules/undici/lib/web/fetch/headers.js +687 -0
- package/dist/node_modules/undici/lib/web/fetch/index.js +2272 -0
- package/dist/node_modules/undici/lib/web/fetch/request.js +1037 -0
- package/dist/node_modules/undici/lib/web/fetch/response.js +610 -0
- package/dist/node_modules/undici/lib/web/fetch/symbols.js +9 -0
- package/dist/node_modules/undici/lib/web/fetch/util.js +1632 -0
- package/dist/node_modules/undici/lib/web/fetch/webidl.js +695 -0
- package/dist/node_modules/undici/lib/web/fileapi/encoding.js +290 -0
- package/dist/node_modules/undici/lib/web/fileapi/filereader.js +344 -0
- package/dist/node_modules/undici/lib/web/fileapi/progressevent.js +78 -0
- package/dist/node_modules/undici/lib/web/fileapi/symbols.js +10 -0
- package/dist/node_modules/undici/lib/web/fileapi/util.js +391 -0
- package/dist/node_modules/undici/lib/web/websocket/connection.js +371 -0
- package/dist/node_modules/undici/lib/web/websocket/constants.js +66 -0
- package/dist/node_modules/undici/lib/web/websocket/events.js +329 -0
- package/dist/node_modules/undici/lib/web/websocket/frame.js +96 -0
- package/dist/node_modules/undici/lib/web/websocket/permessage-deflate.js +100 -0
- package/dist/node_modules/undici/lib/web/websocket/receiver.js +490 -0
- package/dist/node_modules/undici/lib/web/websocket/sender.js +104 -0
- package/dist/node_modules/undici/lib/web/websocket/symbols.js +12 -0
- package/dist/node_modules/undici/lib/web/websocket/util.js +322 -0
- package/dist/node_modules/undici/lib/web/websocket/websocket.js +592 -0
- package/dist/node_modules/undici/package.json +160 -0
- package/dist/node_modules/undici/scripts/strip-comments.js +8 -0
- package/dist/node_modules/yallist/package.json +51 -12
- package/dist/pnpm.mjs +5915 -5140
- package/dist/worker.js +70 -67
- package/package.json +21 -13
- package/setup.js +17 -3
- package/dist/node_modules/@gar/promise-retry/LICENSE +0 -20
- package/dist/node_modules/@gar/promise-retry/lib/index.js +0 -62
- package/dist/node_modules/@gar/promise-retry/lib/retry.js +0 -109
- package/dist/node_modules/@gar/promise-retry/package.json +0 -45
- package/dist/node_modules/@npmcli/agent/lib/agents.js +0 -206
- package/dist/node_modules/@npmcli/agent/lib/dns.js +0 -53
- package/dist/node_modules/@npmcli/agent/lib/errors.js +0 -61
- package/dist/node_modules/@npmcli/agent/lib/index.js +0 -56
- package/dist/node_modules/@npmcli/agent/lib/options.js +0 -86
- package/dist/node_modules/@npmcli/agent/lib/proxy.js +0 -88
- package/dist/node_modules/@npmcli/agent/package.json +0 -60
- package/dist/node_modules/@npmcli/fs/lib/common/get-options.js +0 -20
- package/dist/node_modules/@npmcli/fs/lib/common/node.js +0 -9
- package/dist/node_modules/@npmcli/fs/lib/cp/LICENSE +0 -15
- package/dist/node_modules/@npmcli/fs/lib/cp/errors.js +0 -129
- package/dist/node_modules/@npmcli/fs/lib/cp/index.js +0 -22
- package/dist/node_modules/@npmcli/fs/lib/cp/polyfill.js +0 -428
- package/dist/node_modules/@npmcli/fs/lib/index.js +0 -13
- package/dist/node_modules/@npmcli/fs/lib/move-file.js +0 -78
- package/dist/node_modules/@npmcli/fs/lib/readdir-scoped.js +0 -20
- package/dist/node_modules/@npmcli/fs/lib/with-temp-dir.js +0 -39
- package/dist/node_modules/@npmcli/fs/package.json +0 -54
- package/dist/node_modules/@npmcli/redact/lib/deep-map.js +0 -71
- package/dist/node_modules/@npmcli/redact/lib/error.js +0 -28
- package/dist/node_modules/@npmcli/redact/lib/index.js +0 -44
- package/dist/node_modules/@npmcli/redact/lib/matchers.js +0 -88
- package/dist/node_modules/@npmcli/redact/lib/server.js +0 -59
- package/dist/node_modules/@npmcli/redact/lib/utils.js +0 -202
- package/dist/node_modules/@npmcli/redact/package.json +0 -52
- package/dist/node_modules/agent-base/LICENSE +0 -22
- package/dist/node_modules/agent-base/dist/helpers.js +0 -66
- package/dist/node_modules/agent-base/dist/index.js +0 -178
- package/dist/node_modules/agent-base/package.json +0 -46
- package/dist/node_modules/balanced-match/dist/commonjs/index.js +0 -59
- package/dist/node_modules/balanced-match/dist/esm/index.js +0 -54
- package/dist/node_modules/balanced-match/package.json +0 -68
- package/dist/node_modules/brace-expansion/LICENSE +0 -23
- package/dist/node_modules/brace-expansion/dist/commonjs/index.js +0 -201
- package/dist/node_modules/brace-expansion/dist/commonjs/package.json +0 -3
- package/dist/node_modules/brace-expansion/dist/esm/index.js +0 -197
- package/dist/node_modules/brace-expansion/dist/esm/package.json +0 -3
- package/dist/node_modules/brace-expansion/package.json +0 -64
- package/dist/node_modules/cacache/lib/content/path.js +0 -29
- package/dist/node_modules/cacache/lib/content/read.js +0 -165
- package/dist/node_modules/cacache/lib/content/rm.js +0 -18
- package/dist/node_modules/cacache/lib/content/write.js +0 -206
- package/dist/node_modules/cacache/lib/entry-index.js +0 -336
- package/dist/node_modules/cacache/lib/get.js +0 -170
- package/dist/node_modules/cacache/lib/index.js +0 -42
- package/dist/node_modules/cacache/lib/memoization.js +0 -72
- package/dist/node_modules/cacache/lib/put.js +0 -80
- package/dist/node_modules/cacache/lib/rm.js +0 -31
- package/dist/node_modules/cacache/lib/util/glob.js +0 -7
- package/dist/node_modules/cacache/lib/util/hash-to-segments.js +0 -7
- package/dist/node_modules/cacache/lib/util/tmp.js +0 -32
- package/dist/node_modules/cacache/lib/verify.js +0 -258
- package/dist/node_modules/cacache/package.json +0 -81
- package/dist/node_modules/debug/LICENSE +0 -20
- package/dist/node_modules/debug/package.json +0 -64
- package/dist/node_modules/debug/src/browser.js +0 -272
- package/dist/node_modules/debug/src/common.js +0 -292
- package/dist/node_modules/debug/src/index.js +0 -10
- package/dist/node_modules/debug/src/node.js +0 -263
- package/dist/node_modules/fs-minipass/LICENSE +0 -15
- package/dist/node_modules/fs-minipass/lib/index.js +0 -443
- package/dist/node_modules/fs-minipass/package.json +0 -54
- package/dist/node_modules/glob/dist/commonjs/glob.js +0 -248
- package/dist/node_modules/glob/dist/commonjs/has-magic.js +0 -27
- package/dist/node_modules/glob/dist/commonjs/ignore.js +0 -119
- package/dist/node_modules/glob/dist/commonjs/index.js +0 -68
- package/dist/node_modules/glob/dist/commonjs/index.min.js +0 -4
- package/dist/node_modules/glob/dist/commonjs/package.json +0 -3
- package/dist/node_modules/glob/dist/commonjs/pattern.js +0 -223
- package/dist/node_modules/glob/dist/commonjs/processor.js +0 -301
- package/dist/node_modules/glob/dist/commonjs/walker.js +0 -387
- package/dist/node_modules/glob/dist/esm/glob.js +0 -244
- package/dist/node_modules/glob/dist/esm/has-magic.js +0 -23
- package/dist/node_modules/glob/dist/esm/ignore.js +0 -115
- package/dist/node_modules/glob/dist/esm/index.js +0 -55
- package/dist/node_modules/glob/dist/esm/index.min.js +0 -4
- package/dist/node_modules/glob/dist/esm/package.json +0 -3
- package/dist/node_modules/glob/dist/esm/pattern.js +0 -219
- package/dist/node_modules/glob/dist/esm/processor.js +0 -294
- package/dist/node_modules/glob/dist/esm/walker.js +0 -381
- package/dist/node_modules/glob/package.json +0 -98
- package/dist/node_modules/http-cache-semantics/LICENSE +0 -9
- package/dist/node_modules/http-cache-semantics/index.js +0 -928
- package/dist/node_modules/http-cache-semantics/package.json +0 -22
- package/dist/node_modules/http-proxy-agent/LICENSE +0 -22
- package/dist/node_modules/http-proxy-agent/dist/index.js +0 -148
- package/dist/node_modules/http-proxy-agent/package.json +0 -47
- package/dist/node_modules/https-proxy-agent/LICENSE +0 -22
- package/dist/node_modules/https-proxy-agent/dist/index.js +0 -180
- package/dist/node_modules/https-proxy-agent/dist/parse-proxy-response.js +0 -101
- package/dist/node_modules/https-proxy-agent/package.json +0 -50
- package/dist/node_modules/iconv-lite/LICENSE +0 -21
- package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -532
- package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +0 -185
- package/dist/node_modules/iconv-lite/encodings/index.js +0 -23
- package/dist/node_modules/iconv-lite/encodings/internal.js +0 -218
- package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -75
- package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
- package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +0 -178
- package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
- package/dist/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
- package/dist/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
- package/dist/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
- package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
- package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
- package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -56
- package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
- package/dist/node_modules/iconv-lite/encodings/utf16.js +0 -187
- package/dist/node_modules/iconv-lite/encodings/utf32.js +0 -307
- package/dist/node_modules/iconv-lite/encodings/utf7.js +0 -283
- package/dist/node_modules/iconv-lite/lib/bom-handling.js +0 -48
- package/dist/node_modules/iconv-lite/lib/helpers/merge-exports.js +0 -13
- package/dist/node_modules/iconv-lite/lib/index.js +0 -182
- package/dist/node_modules/iconv-lite/lib/streams.js +0 -105
- package/dist/node_modules/iconv-lite/package.json +0 -70
- package/dist/node_modules/ip-address/LICENSE +0 -19
- package/dist/node_modules/ip-address/dist/address-error.js +0 -12
- package/dist/node_modules/ip-address/dist/common.js +0 -46
- package/dist/node_modules/ip-address/dist/ip-address.js +0 -35
- package/dist/node_modules/ip-address/dist/ipv4.js +0 -360
- package/dist/node_modules/ip-address/dist/ipv6.js +0 -1003
- package/dist/node_modules/ip-address/dist/v4/constants.js +0 -8
- package/dist/node_modules/ip-address/dist/v6/constants.js +0 -76
- package/dist/node_modules/ip-address/dist/v6/helpers.js +0 -45
- package/dist/node_modules/ip-address/dist/v6/regular-expressions.js +0 -95
- package/dist/node_modules/ip-address/package.json +0 -78
- package/dist/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +0 -10
- package/dist/node_modules/lru-cache/dist/commonjs/index.js +0 -1692
- package/dist/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
- package/dist/node_modules/lru-cache/dist/commonjs/package.json +0 -3
- package/dist/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.js +0 -4
- package/dist/node_modules/lru-cache/dist/esm/browser/index.js +0 -1688
- package/dist/node_modules/lru-cache/dist/esm/browser/index.min.js +0 -2
- package/dist/node_modules/lru-cache/dist/esm/diagnostics-channel.js +0 -19
- package/dist/node_modules/lru-cache/dist/esm/index.js +0 -1688
- package/dist/node_modules/lru-cache/dist/esm/index.min.js +0 -2
- package/dist/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +0 -7
- package/dist/node_modules/lru-cache/dist/esm/node/index.js +0 -1688
- package/dist/node_modules/lru-cache/dist/esm/node/index.min.js +0 -2
- package/dist/node_modules/lru-cache/dist/esm/package.json +0 -3
- package/dist/node_modules/lru-cache/package.json +0 -126
- package/dist/node_modules/make-fetch-happen/LICENSE +0 -16
- package/dist/node_modules/make-fetch-happen/lib/cache/entry.js +0 -471
- package/dist/node_modules/make-fetch-happen/lib/cache/errors.js +0 -11
- package/dist/node_modules/make-fetch-happen/lib/cache/index.js +0 -49
- package/dist/node_modules/make-fetch-happen/lib/cache/key.js +0 -17
- package/dist/node_modules/make-fetch-happen/lib/cache/policy.js +0 -161
- package/dist/node_modules/make-fetch-happen/lib/fetch.js +0 -118
- package/dist/node_modules/make-fetch-happen/lib/index.js +0 -41
- package/dist/node_modules/make-fetch-happen/lib/options.js +0 -59
- package/dist/node_modules/make-fetch-happen/lib/pipeline.js +0 -41
- package/dist/node_modules/make-fetch-happen/lib/remote.js +0 -134
- package/dist/node_modules/make-fetch-happen/package.json +0 -75
- package/dist/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +0 -14
- package/dist/node_modules/minimatch/dist/commonjs/ast.js +0 -845
- package/dist/node_modules/minimatch/dist/commonjs/brace-expressions.js +0 -150
- package/dist/node_modules/minimatch/dist/commonjs/escape.js +0 -30
- package/dist/node_modules/minimatch/dist/commonjs/index.js +0 -1127
- package/dist/node_modules/minimatch/dist/commonjs/package.json +0 -3
- package/dist/node_modules/minimatch/dist/commonjs/unescape.js +0 -38
- package/dist/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -10
- package/dist/node_modules/minimatch/dist/esm/ast.js +0 -841
- package/dist/node_modules/minimatch/dist/esm/brace-expressions.js +0 -146
- package/dist/node_modules/minimatch/dist/esm/escape.js +0 -26
- package/dist/node_modules/minimatch/dist/esm/index.js +0 -1114
- package/dist/node_modules/minimatch/dist/esm/package.json +0 -3
- package/dist/node_modules/minimatch/dist/esm/unescape.js +0 -34
- package/dist/node_modules/minimatch/package.json +0 -73
- package/dist/node_modules/minipass-collect/LICENSE +0 -15
- package/dist/node_modules/minipass-collect/index.js +0 -71
- package/dist/node_modules/minipass-collect/package.json +0 -30
- package/dist/node_modules/minipass-fetch/LICENSE +0 -28
- package/dist/node_modules/minipass-fetch/lib/abort-error.js +0 -17
- package/dist/node_modules/minipass-fetch/lib/blob.js +0 -97
- package/dist/node_modules/minipass-fetch/lib/body.js +0 -360
- package/dist/node_modules/minipass-fetch/lib/fetch-error.js +0 -32
- package/dist/node_modules/minipass-fetch/lib/headers.js +0 -267
- package/dist/node_modules/minipass-fetch/lib/index.js +0 -376
- package/dist/node_modules/minipass-fetch/lib/request.js +0 -282
- package/dist/node_modules/minipass-fetch/lib/response.js +0 -90
- package/dist/node_modules/minipass-fetch/package.json +0 -70
- package/dist/node_modules/minipass-flush/index.js +0 -39
- package/dist/node_modules/minipass-flush/node_modules/minipass/LICENSE +0 -15
- package/dist/node_modules/minipass-flush/node_modules/minipass/index.js +0 -649
- package/dist/node_modules/minipass-flush/node_modules/minipass/package.json +0 -56
- package/dist/node_modules/minipass-flush/package.json +0 -42
- package/dist/node_modules/minipass-pipeline/LICENSE +0 -15
- package/dist/node_modules/minipass-pipeline/index.js +0 -128
- package/dist/node_modules/minipass-pipeline/node_modules/minipass/LICENSE +0 -15
- package/dist/node_modules/minipass-pipeline/node_modules/minipass/index.js +0 -649
- package/dist/node_modules/minipass-pipeline/node_modules/minipass/package.json +0 -56
- package/dist/node_modules/minipass-pipeline/package.json +0 -29
- package/dist/node_modules/minipass-sized/LICENSE +0 -15
- package/dist/node_modules/minipass-sized/dist/commonjs/index.js +0 -69
- package/dist/node_modules/minipass-sized/dist/commonjs/package.json +0 -3
- package/dist/node_modules/minipass-sized/dist/esm/index.js +0 -64
- package/dist/node_modules/minipass-sized/dist/esm/package.json +0 -3
- package/dist/node_modules/minipass-sized/package.json +0 -69
- package/dist/node_modules/ms/index.js +0 -162
- package/dist/node_modules/ms/package.json +0 -38
- package/dist/node_modules/negotiator/LICENSE +0 -24
- package/dist/node_modules/negotiator/index.js +0 -83
- package/dist/node_modules/negotiator/lib/charset.js +0 -169
- package/dist/node_modules/negotiator/lib/encoding.js +0 -205
- package/dist/node_modules/negotiator/lib/language.js +0 -179
- package/dist/node_modules/negotiator/lib/mediaType.js +0 -294
- package/dist/node_modules/negotiator/package.json +0 -43
- package/dist/node_modules/p-map/index.js +0 -283
- package/dist/node_modules/p-map/license +0 -9
- package/dist/node_modules/p-map/package.json +0 -57
- package/dist/node_modules/path-scurry/dist/commonjs/index.js +0 -2018
- package/dist/node_modules/path-scurry/dist/commonjs/package.json +0 -3
- package/dist/node_modules/path-scurry/dist/esm/index.js +0 -1983
- package/dist/node_modules/path-scurry/dist/esm/package.json +0 -3
- package/dist/node_modules/path-scurry/package.json +0 -72
- package/dist/node_modules/safer-buffer/dangerous.js +0 -58
- package/dist/node_modules/safer-buffer/package.json +0 -34
- package/dist/node_modules/safer-buffer/safer.js +0 -77
- package/dist/node_modules/safer-buffer/tests.js +0 -406
- package/dist/node_modules/smart-buffer/.prettierrc.yaml +0 -5
- package/dist/node_modules/smart-buffer/LICENSE +0 -20
- package/dist/node_modules/smart-buffer/build/smartbuffer.js +0 -1233
- package/dist/node_modules/smart-buffer/build/utils.js +0 -108
- package/dist/node_modules/smart-buffer/package.json +0 -79
- package/dist/node_modules/socks/.eslintrc.cjs +0 -11
- package/dist/node_modules/socks/.prettierrc.yaml +0 -7
- package/dist/node_modules/socks/LICENSE +0 -20
- package/dist/node_modules/socks/build/client/socksclient.js +0 -793
- package/dist/node_modules/socks/build/common/constants.js +0 -108
- package/dist/node_modules/socks/build/common/helpers.js +0 -167
- package/dist/node_modules/socks/build/common/receivebuffer.js +0 -43
- package/dist/node_modules/socks/build/common/util.js +0 -25
- package/dist/node_modules/socks/build/index.js +0 -18
- package/dist/node_modules/socks/package.json +0 -58
- package/dist/node_modules/socks-proxy-agent/LICENSE +0 -22
- package/dist/node_modules/socks-proxy-agent/dist/index.js +0 -195
- package/dist/node_modules/socks-proxy-agent/package.json +0 -142
- package/dist/node_modules/ssri/lib/index.js +0 -550
- package/dist/node_modules/ssri/package.json +0 -66
- package/dist/node_modules/tar/node_modules/yallist/dist/commonjs/package.json +0 -3
- package/dist/node_modules/tar/node_modules/yallist/dist/esm/package.json +0 -3
- package/dist/node_modules/tar/node_modules/yallist/package.json +0 -68
- package/dist/node_modules/yallist/LICENSE +0 -15
- package/dist/node_modules/yallist/iterator.js +0 -8
- package/dist/node_modules/yallist/yallist.js +0 -426
- /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/commonjs/index.js +0 -0
- /package/dist/node_modules/{balanced-match → yallist}/dist/commonjs/package.json +0 -0
- /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/esm/index.js +0 -0
- /package/dist/node_modules/{balanced-match → yallist}/dist/esm/package.json +0 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const { kClients } = require('../core/symbols')
|
|
4
|
+
const Agent = require('../dispatcher/agent')
|
|
5
|
+
const {
|
|
6
|
+
kAgent,
|
|
7
|
+
kMockAgentSet,
|
|
8
|
+
kMockAgentGet,
|
|
9
|
+
kDispatches,
|
|
10
|
+
kIsMockActive,
|
|
11
|
+
kNetConnect,
|
|
12
|
+
kGetNetConnect,
|
|
13
|
+
kOptions,
|
|
14
|
+
kFactory
|
|
15
|
+
} = require('./mock-symbols')
|
|
16
|
+
const MockClient = require('./mock-client')
|
|
17
|
+
const MockPool = require('./mock-pool')
|
|
18
|
+
const { matchValue, buildMockOptions } = require('./mock-utils')
|
|
19
|
+
const { InvalidArgumentError, UndiciError } = require('../core/errors')
|
|
20
|
+
const Dispatcher = require('../dispatcher/dispatcher')
|
|
21
|
+
const Pluralizer = require('./pluralizer')
|
|
22
|
+
const PendingInterceptorsFormatter = require('./pending-interceptors-formatter')
|
|
23
|
+
|
|
24
|
+
class MockAgent extends Dispatcher {
|
|
25
|
+
constructor (opts) {
|
|
26
|
+
super(opts)
|
|
27
|
+
|
|
28
|
+
this[kNetConnect] = true
|
|
29
|
+
this[kIsMockActive] = true
|
|
30
|
+
|
|
31
|
+
// Instantiate Agent and encapsulate
|
|
32
|
+
if ((opts?.agent && typeof opts.agent.dispatch !== 'function')) {
|
|
33
|
+
throw new InvalidArgumentError('Argument opts.agent must implement Agent')
|
|
34
|
+
}
|
|
35
|
+
const agent = opts?.agent ? opts.agent : new Agent(opts)
|
|
36
|
+
this[kAgent] = agent
|
|
37
|
+
|
|
38
|
+
this[kClients] = agent[kClients]
|
|
39
|
+
this[kOptions] = buildMockOptions(opts)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
get (origin) {
|
|
43
|
+
let dispatcher = this[kMockAgentGet](origin)
|
|
44
|
+
|
|
45
|
+
if (!dispatcher) {
|
|
46
|
+
dispatcher = this[kFactory](origin)
|
|
47
|
+
this[kMockAgentSet](origin, dispatcher)
|
|
48
|
+
}
|
|
49
|
+
return dispatcher
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
dispatch (opts, handler) {
|
|
53
|
+
// Call MockAgent.get to perform additional setup before dispatching as normal
|
|
54
|
+
this.get(opts.origin)
|
|
55
|
+
return this[kAgent].dispatch(opts, handler)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async close () {
|
|
59
|
+
await this[kAgent].close()
|
|
60
|
+
this[kClients].clear()
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
deactivate () {
|
|
64
|
+
this[kIsMockActive] = false
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
activate () {
|
|
68
|
+
this[kIsMockActive] = true
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
enableNetConnect (matcher) {
|
|
72
|
+
if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {
|
|
73
|
+
if (Array.isArray(this[kNetConnect])) {
|
|
74
|
+
this[kNetConnect].push(matcher)
|
|
75
|
+
} else {
|
|
76
|
+
this[kNetConnect] = [matcher]
|
|
77
|
+
}
|
|
78
|
+
} else if (typeof matcher === 'undefined') {
|
|
79
|
+
this[kNetConnect] = true
|
|
80
|
+
} else {
|
|
81
|
+
throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
disableNetConnect () {
|
|
86
|
+
this[kNetConnect] = false
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// This is required to bypass issues caused by using global symbols - see:
|
|
90
|
+
// https://github.com/nodejs/undici/issues/1447
|
|
91
|
+
get isMockActive () {
|
|
92
|
+
return this[kIsMockActive]
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
[kMockAgentSet] (origin, dispatcher) {
|
|
96
|
+
this[kClients].set(origin, dispatcher)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
[kFactory] (origin) {
|
|
100
|
+
const mockOptions = Object.assign({ agent: this }, this[kOptions])
|
|
101
|
+
return this[kOptions] && this[kOptions].connections === 1
|
|
102
|
+
? new MockClient(origin, mockOptions)
|
|
103
|
+
: new MockPool(origin, mockOptions)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
[kMockAgentGet] (origin) {
|
|
107
|
+
// First check if we can immediately find it
|
|
108
|
+
const client = this[kClients].get(origin)
|
|
109
|
+
if (client) {
|
|
110
|
+
return client
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// If the origin is not a string create a dummy parent pool and return to user
|
|
114
|
+
if (typeof origin !== 'string') {
|
|
115
|
+
const dispatcher = this[kFactory]('http://localhost:9999')
|
|
116
|
+
this[kMockAgentSet](origin, dispatcher)
|
|
117
|
+
return dispatcher
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// If we match, create a pool and assign the same dispatches
|
|
121
|
+
for (const [keyMatcher, nonExplicitDispatcher] of Array.from(this[kClients])) {
|
|
122
|
+
if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {
|
|
123
|
+
const dispatcher = this[kFactory](origin)
|
|
124
|
+
this[kMockAgentSet](origin, dispatcher)
|
|
125
|
+
dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]
|
|
126
|
+
return dispatcher
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
[kGetNetConnect] () {
|
|
132
|
+
return this[kNetConnect]
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
pendingInterceptors () {
|
|
136
|
+
const mockAgentClients = this[kClients]
|
|
137
|
+
|
|
138
|
+
return Array.from(mockAgentClients.entries())
|
|
139
|
+
.flatMap(([origin, scope]) => scope[kDispatches].map(dispatch => ({ ...dispatch, origin })))
|
|
140
|
+
.filter(({ pending }) => pending)
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {
|
|
144
|
+
const pending = this.pendingInterceptors()
|
|
145
|
+
|
|
146
|
+
if (pending.length === 0) {
|
|
147
|
+
return
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)
|
|
151
|
+
|
|
152
|
+
throw new UndiciError(`
|
|
153
|
+
${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:
|
|
154
|
+
|
|
155
|
+
${pendingInterceptorsFormatter.format(pending)}
|
|
156
|
+
`.trim())
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
module.exports = MockAgent
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const { promisify } = require('node:util')
|
|
4
|
+
const Client = require('../dispatcher/client')
|
|
5
|
+
const { buildMockDispatch } = require('./mock-utils')
|
|
6
|
+
const {
|
|
7
|
+
kDispatches,
|
|
8
|
+
kMockAgent,
|
|
9
|
+
kClose,
|
|
10
|
+
kOriginalClose,
|
|
11
|
+
kOrigin,
|
|
12
|
+
kOriginalDispatch,
|
|
13
|
+
kConnected
|
|
14
|
+
} = require('./mock-symbols')
|
|
15
|
+
const { MockInterceptor } = require('./mock-interceptor')
|
|
16
|
+
const Symbols = require('../core/symbols')
|
|
17
|
+
const { InvalidArgumentError } = require('../core/errors')
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* MockClient provides an API that extends the Client to influence the mockDispatches.
|
|
21
|
+
*/
|
|
22
|
+
class MockClient extends Client {
|
|
23
|
+
constructor (origin, opts) {
|
|
24
|
+
super(origin, opts)
|
|
25
|
+
|
|
26
|
+
if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {
|
|
27
|
+
throw new InvalidArgumentError('Argument opts.agent must implement Agent')
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
this[kMockAgent] = opts.agent
|
|
31
|
+
this[kOrigin] = origin
|
|
32
|
+
this[kDispatches] = []
|
|
33
|
+
this[kConnected] = 1
|
|
34
|
+
this[kOriginalDispatch] = this.dispatch
|
|
35
|
+
this[kOriginalClose] = this.close.bind(this)
|
|
36
|
+
|
|
37
|
+
this.dispatch = buildMockDispatch.call(this)
|
|
38
|
+
this.close = this[kClose]
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
get [Symbols.kConnected] () {
|
|
42
|
+
return this[kConnected]
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Sets up the base interceptor for mocking replies from undici.
|
|
47
|
+
*/
|
|
48
|
+
intercept (opts) {
|
|
49
|
+
return new MockInterceptor(opts, this[kDispatches])
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async [kClose] () {
|
|
53
|
+
await promisify(this[kOriginalClose])()
|
|
54
|
+
this[kConnected] = 0
|
|
55
|
+
this[kMockAgent][Symbols.kClients].delete(this[kOrigin])
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
module.exports = MockClient
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const { UndiciError } = require('../core/errors')
|
|
4
|
+
|
|
5
|
+
const kMockNotMatchedError = Symbol.for('undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED')
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The request does not match any registered mock dispatches.
|
|
9
|
+
*/
|
|
10
|
+
class MockNotMatchedError extends UndiciError {
|
|
11
|
+
constructor (message) {
|
|
12
|
+
super(message)
|
|
13
|
+
Error.captureStackTrace(this, MockNotMatchedError)
|
|
14
|
+
this.name = 'MockNotMatchedError'
|
|
15
|
+
this.message = message || 'The request does not match any registered mock dispatches'
|
|
16
|
+
this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static [Symbol.hasInstance] (instance) {
|
|
20
|
+
return instance && instance[kMockNotMatchedError] === true
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
[kMockNotMatchedError] = true
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
module.exports = {
|
|
27
|
+
MockNotMatchedError
|
|
28
|
+
}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')
|
|
4
|
+
const {
|
|
5
|
+
kDispatches,
|
|
6
|
+
kDispatchKey,
|
|
7
|
+
kDefaultHeaders,
|
|
8
|
+
kDefaultTrailers,
|
|
9
|
+
kContentLength,
|
|
10
|
+
kMockDispatch
|
|
11
|
+
} = require('./mock-symbols')
|
|
12
|
+
const { InvalidArgumentError } = require('../core/errors')
|
|
13
|
+
const { buildURL } = require('../core/util')
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Defines the scope API for an interceptor reply
|
|
17
|
+
*/
|
|
18
|
+
class MockScope {
|
|
19
|
+
constructor (mockDispatch) {
|
|
20
|
+
this[kMockDispatch] = mockDispatch
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Delay a reply by a set amount in ms.
|
|
25
|
+
*/
|
|
26
|
+
delay (waitInMs) {
|
|
27
|
+
if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {
|
|
28
|
+
throw new InvalidArgumentError('waitInMs must be a valid integer > 0')
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
this[kMockDispatch].delay = waitInMs
|
|
32
|
+
return this
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* For a defined reply, never mark as consumed.
|
|
37
|
+
*/
|
|
38
|
+
persist () {
|
|
39
|
+
this[kMockDispatch].persist = true
|
|
40
|
+
return this
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Allow one to define a reply for a set amount of matching requests.
|
|
45
|
+
*/
|
|
46
|
+
times (repeatTimes) {
|
|
47
|
+
if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {
|
|
48
|
+
throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
this[kMockDispatch].times = repeatTimes
|
|
52
|
+
return this
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Defines an interceptor for a Mock
|
|
58
|
+
*/
|
|
59
|
+
class MockInterceptor {
|
|
60
|
+
constructor (opts, mockDispatches) {
|
|
61
|
+
if (typeof opts !== 'object') {
|
|
62
|
+
throw new InvalidArgumentError('opts must be an object')
|
|
63
|
+
}
|
|
64
|
+
if (typeof opts.path === 'undefined') {
|
|
65
|
+
throw new InvalidArgumentError('opts.path must be defined')
|
|
66
|
+
}
|
|
67
|
+
if (typeof opts.method === 'undefined') {
|
|
68
|
+
opts.method = 'GET'
|
|
69
|
+
}
|
|
70
|
+
// See https://github.com/nodejs/undici/issues/1245
|
|
71
|
+
// As per RFC 3986, clients are not supposed to send URI
|
|
72
|
+
// fragments to servers when they retrieve a document,
|
|
73
|
+
if (typeof opts.path === 'string') {
|
|
74
|
+
if (opts.query) {
|
|
75
|
+
opts.path = buildURL(opts.path, opts.query)
|
|
76
|
+
} else {
|
|
77
|
+
// Matches https://github.com/nodejs/undici/blob/main/lib/web/fetch/index.js#L1811
|
|
78
|
+
const parsedURL = new URL(opts.path, 'data://')
|
|
79
|
+
opts.path = parsedURL.pathname + parsedURL.search
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (typeof opts.method === 'string') {
|
|
83
|
+
opts.method = opts.method.toUpperCase()
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
this[kDispatchKey] = buildKey(opts)
|
|
87
|
+
this[kDispatches] = mockDispatches
|
|
88
|
+
this[kDefaultHeaders] = {}
|
|
89
|
+
this[kDefaultTrailers] = {}
|
|
90
|
+
this[kContentLength] = false
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
createMockScopeDispatchData ({ statusCode, data, responseOptions }) {
|
|
94
|
+
const responseData = getResponseData(data)
|
|
95
|
+
const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}
|
|
96
|
+
const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }
|
|
97
|
+
const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }
|
|
98
|
+
|
|
99
|
+
return { statusCode, data, headers, trailers }
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
validateReplyParameters (replyParameters) {
|
|
103
|
+
if (typeof replyParameters.statusCode === 'undefined') {
|
|
104
|
+
throw new InvalidArgumentError('statusCode must be defined')
|
|
105
|
+
}
|
|
106
|
+
if (typeof replyParameters.responseOptions !== 'object' || replyParameters.responseOptions === null) {
|
|
107
|
+
throw new InvalidArgumentError('responseOptions must be an object')
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Mock an undici request with a defined reply.
|
|
113
|
+
*/
|
|
114
|
+
reply (replyOptionsCallbackOrStatusCode) {
|
|
115
|
+
// Values of reply aren't available right now as they
|
|
116
|
+
// can only be available when the reply callback is invoked.
|
|
117
|
+
if (typeof replyOptionsCallbackOrStatusCode === 'function') {
|
|
118
|
+
// We'll first wrap the provided callback in another function,
|
|
119
|
+
// this function will properly resolve the data from the callback
|
|
120
|
+
// when invoked.
|
|
121
|
+
const wrappedDefaultsCallback = (opts) => {
|
|
122
|
+
// Our reply options callback contains the parameter for statusCode, data and options.
|
|
123
|
+
const resolvedData = replyOptionsCallbackOrStatusCode(opts)
|
|
124
|
+
|
|
125
|
+
// Check if it is in the right format
|
|
126
|
+
if (typeof resolvedData !== 'object' || resolvedData === null) {
|
|
127
|
+
throw new InvalidArgumentError('reply options callback must return an object')
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
const replyParameters = { data: '', responseOptions: {}, ...resolvedData }
|
|
131
|
+
this.validateReplyParameters(replyParameters)
|
|
132
|
+
// Since the values can be obtained immediately we return them
|
|
133
|
+
// from this higher order function that will be resolved later.
|
|
134
|
+
return {
|
|
135
|
+
...this.createMockScopeDispatchData(replyParameters)
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.
|
|
140
|
+
const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)
|
|
141
|
+
return new MockScope(newMockDispatch)
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// We can have either one or three parameters, if we get here,
|
|
145
|
+
// we should have 1-3 parameters. So we spread the arguments of
|
|
146
|
+
// this function to obtain the parameters, since replyData will always
|
|
147
|
+
// just be the statusCode.
|
|
148
|
+
const replyParameters = {
|
|
149
|
+
statusCode: replyOptionsCallbackOrStatusCode,
|
|
150
|
+
data: arguments[1] === undefined ? '' : arguments[1],
|
|
151
|
+
responseOptions: arguments[2] === undefined ? {} : arguments[2]
|
|
152
|
+
}
|
|
153
|
+
this.validateReplyParameters(replyParameters)
|
|
154
|
+
|
|
155
|
+
// Send in-already provided data like usual
|
|
156
|
+
const dispatchData = this.createMockScopeDispatchData(replyParameters)
|
|
157
|
+
const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)
|
|
158
|
+
return new MockScope(newMockDispatch)
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Mock an undici request with a defined error.
|
|
163
|
+
*/
|
|
164
|
+
replyWithError (error) {
|
|
165
|
+
if (typeof error === 'undefined') {
|
|
166
|
+
throw new InvalidArgumentError('error must be defined')
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })
|
|
170
|
+
return new MockScope(newMockDispatch)
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Set default reply headers on the interceptor for subsequent replies
|
|
175
|
+
*/
|
|
176
|
+
defaultReplyHeaders (headers) {
|
|
177
|
+
if (typeof headers === 'undefined') {
|
|
178
|
+
throw new InvalidArgumentError('headers must be defined')
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
this[kDefaultHeaders] = headers
|
|
182
|
+
return this
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Set default reply trailers on the interceptor for subsequent replies
|
|
187
|
+
*/
|
|
188
|
+
defaultReplyTrailers (trailers) {
|
|
189
|
+
if (typeof trailers === 'undefined') {
|
|
190
|
+
throw new InvalidArgumentError('trailers must be defined')
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
this[kDefaultTrailers] = trailers
|
|
194
|
+
return this
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Set reply content length header for replies on the interceptor
|
|
199
|
+
*/
|
|
200
|
+
replyContentLength () {
|
|
201
|
+
this[kContentLength] = true
|
|
202
|
+
return this
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
module.exports.MockInterceptor = MockInterceptor
|
|
207
|
+
module.exports.MockScope = MockScope
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const { promisify } = require('node:util')
|
|
4
|
+
const Pool = require('../dispatcher/pool')
|
|
5
|
+
const { buildMockDispatch } = require('./mock-utils')
|
|
6
|
+
const {
|
|
7
|
+
kDispatches,
|
|
8
|
+
kMockAgent,
|
|
9
|
+
kClose,
|
|
10
|
+
kOriginalClose,
|
|
11
|
+
kOrigin,
|
|
12
|
+
kOriginalDispatch,
|
|
13
|
+
kConnected
|
|
14
|
+
} = require('./mock-symbols')
|
|
15
|
+
const { MockInterceptor } = require('./mock-interceptor')
|
|
16
|
+
const Symbols = require('../core/symbols')
|
|
17
|
+
const { InvalidArgumentError } = require('../core/errors')
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* MockPool provides an API that extends the Pool to influence the mockDispatches.
|
|
21
|
+
*/
|
|
22
|
+
class MockPool extends Pool {
|
|
23
|
+
constructor (origin, opts) {
|
|
24
|
+
super(origin, opts)
|
|
25
|
+
|
|
26
|
+
if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {
|
|
27
|
+
throw new InvalidArgumentError('Argument opts.agent must implement Agent')
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
this[kMockAgent] = opts.agent
|
|
31
|
+
this[kOrigin] = origin
|
|
32
|
+
this[kDispatches] = []
|
|
33
|
+
this[kConnected] = 1
|
|
34
|
+
this[kOriginalDispatch] = this.dispatch
|
|
35
|
+
this[kOriginalClose] = this.close.bind(this)
|
|
36
|
+
|
|
37
|
+
this.dispatch = buildMockDispatch.call(this)
|
|
38
|
+
this.close = this[kClose]
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
get [Symbols.kConnected] () {
|
|
42
|
+
return this[kConnected]
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Sets up the base interceptor for mocking replies from undici.
|
|
47
|
+
*/
|
|
48
|
+
intercept (opts) {
|
|
49
|
+
return new MockInterceptor(opts, this[kDispatches])
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async [kClose] () {
|
|
53
|
+
await promisify(this[kOriginalClose])()
|
|
54
|
+
this[kConnected] = 0
|
|
55
|
+
this[kMockAgent][Symbols.kClients].delete(this[kOrigin])
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
module.exports = MockPool
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
kAgent: Symbol('agent'),
|
|
5
|
+
kOptions: Symbol('options'),
|
|
6
|
+
kFactory: Symbol('factory'),
|
|
7
|
+
kDispatches: Symbol('dispatches'),
|
|
8
|
+
kDispatchKey: Symbol('dispatch key'),
|
|
9
|
+
kDefaultHeaders: Symbol('default headers'),
|
|
10
|
+
kDefaultTrailers: Symbol('default trailers'),
|
|
11
|
+
kContentLength: Symbol('content length'),
|
|
12
|
+
kMockAgent: Symbol('mock agent'),
|
|
13
|
+
kMockAgentSet: Symbol('mock agent set'),
|
|
14
|
+
kMockAgentGet: Symbol('mock agent get'),
|
|
15
|
+
kMockDispatch: Symbol('mock dispatch'),
|
|
16
|
+
kClose: Symbol('close'),
|
|
17
|
+
kOriginalClose: Symbol('original agent close'),
|
|
18
|
+
kOrigin: Symbol('origin'),
|
|
19
|
+
kIsMockActive: Symbol('is mock active'),
|
|
20
|
+
kNetConnect: Symbol('net connect'),
|
|
21
|
+
kGetNetConnect: Symbol('get net connect'),
|
|
22
|
+
kConnected: Symbol('connected')
|
|
23
|
+
}
|