msw 2.15.0 → 3.0.0
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 +8 -0
- package/cli/init.js +12 -9
- package/cli/invariant.js +2 -2
- package/lib/_chunks/attach-sibling-handlers.js +360 -0
- package/lib/_chunks/attach-sibling-handlers.js.map +1 -0
- package/lib/_chunks/colors.js +18 -0
- package/lib/_chunks/colors.js.map +1 -0
- package/lib/_chunks/cookie-store.js +348 -0
- package/lib/_chunks/cookie-store.js.map +1 -0
- package/lib/_chunks/execute-handlers.js +29 -0
- package/lib/_chunks/execute-handlers.js.map +1 -0
- package/lib/_chunks/handlers-controller.d.ts +262 -0
- package/lib/_chunks/has-ref-counted.js +9 -0
- package/lib/_chunks/has-ref-counted.js.map +1 -0
- package/lib/_chunks/http-handler.d.ts +72 -0
- package/lib/_chunks/http-handler.js +182 -0
- package/lib/_chunks/http-handler.js.map +1 -0
- package/lib/_chunks/http-response.js +137 -0
- package/lib/_chunks/http-response.js.map +1 -0
- package/lib/{core → _chunks}/http.d.ts +15 -18
- package/lib/_chunks/http.js +30 -0
- package/lib/_chunks/http.js.map +1 -0
- package/lib/_chunks/interceptor-source.d.ts +163 -0
- package/lib/_chunks/interceptor-source.js +756 -0
- package/lib/_chunks/interceptor-source.js.map +1 -0
- package/lib/_chunks/is-object.js +11 -0
- package/lib/_chunks/is-object.js.map +1 -0
- package/lib/_chunks/match-request-url.d.ts +14 -0
- package/lib/_chunks/request-handler.d.ts +295 -0
- package/lib/_chunks/request-handler.js +369 -0
- package/lib/_chunks/request-handler.js.map +1 -0
- package/lib/_chunks/shared-options.d.ts +20 -0
- package/lib/_chunks/sse.d.ts +95 -0
- package/lib/_chunks/sse.js +599 -0
- package/lib/_chunks/sse.js.map +1 -0
- package/lib/_chunks/symbols.js +22 -0
- package/lib/_chunks/symbols.js.map +1 -0
- package/lib/_chunks/websocket-upgrade.js +46 -0
- package/lib/_chunks/websocket-upgrade.js.map +1 -0
- package/lib/_chunks/ws.d.ts +133 -0
- package/lib/_chunks/ws.js +293 -0
- package/lib/_chunks/ws.js.map +1 -0
- package/lib/browser/index.d.ts +225 -96
- package/lib/browser/index.js +555 -3694
- package/lib/browser/index.js.map +1 -1
- package/lib/core/experimental/index.d.ts +3 -17
- package/lib/core/experimental/index.js +2 -38
- package/lib/core/index.d.ts +15 -27
- package/lib/core/index.js +15 -64
- package/lib/graphql/index.d.ts +550 -0
- package/lib/graphql/index.js +1244 -0
- package/lib/graphql/index.js.map +1 -0
- package/lib/http/index.d.ts +4 -0
- package/lib/http/index.js +4 -0
- package/lib/iife/index.js +35857 -28422
- package/lib/iife/index.js.map +1 -1
- package/lib/mockServiceWorker.js +185 -86
- package/lib/node/index.d.ts +79 -104
- package/lib/node/index.js +103 -201
- package/lib/node/index.js.map +1 -1
- package/lib/sse/index.d.ts +2 -0
- package/lib/sse/index.js +2 -0
- package/lib/{core → utils}/bypass.d.ts +5 -4
- package/lib/utils/bypass.js +41 -0
- package/lib/utils/bypass.js.map +1 -0
- package/lib/utils/delay.d.ts +15 -0
- package/lib/utils/delay.js +45 -0
- package/lib/utils/delay.js.map +1 -0
- package/lib/utils/get-clean-url-string.d.ts +9 -0
- package/lib/utils/get-clean-url-string.js +15 -0
- package/lib/utils/get-clean-url-string.js.map +1 -0
- package/lib/utils/get-response.d.ts +13 -0
- package/lib/utils/get-response.js +23 -0
- package/lib/utils/get-response.js.map +1 -0
- package/lib/utils/is-common-asset-request.d.ts +22 -0
- package/lib/utils/is-common-asset-request.js +31 -0
- package/lib/utils/is-common-asset-request.js.map +1 -0
- package/lib/utils/passthrough.d.ts +31 -0
- package/lib/utils/passthrough.js +41 -0
- package/lib/utils/passthrough.js.map +1 -0
- package/lib/vite/index.d.ts +44 -0
- package/lib/vite/index.js +90 -0
- package/lib/vite/index.js.map +1 -0
- package/lib/vite/runtime.d.ts +6 -0
- package/lib/vite/runtime.js +77 -0
- package/lib/vite/runtime.js.map +1 -0
- package/lib/ws/index.d.ts +4 -0
- package/lib/ws/index.js +4 -0
- package/package.json +93 -201
- package/src/browser/default-network-options.ts +31 -0
- package/src/browser/glossary.ts +11 -23
- package/src/browser/index.ts +5 -1
- package/src/browser/setup-worker.ts +15 -68
- package/src/browser/sources/fallback-http-source.ts +1 -1
- package/src/browser/sources/service-worker-source.ts +76 -69
- package/src/browser/tsconfig.browser.json +4 -2
- package/src/browser/utils/{deserializeRequest.ts → deserialize-request.ts} +3 -4
- package/src/browser/utils/{getAbsoluteWorkerUrl.test.ts → get-absolute-worker-url.test.ts} +3 -3
- package/src/browser/utils/get-worker-instance.ts +2 -2
- package/src/browser/utils/should-invalidate-worker.test.ts +11 -11
- package/src/browser/utils/should-invalidate-worker.ts +1 -1
- package/src/browser/utils/validate-worker-scope.ts +1 -1
- package/src/browser/utils/{workerChannel.ts → worker-channel.ts} +42 -20
- package/src/core/experimental/define-network.test.ts +43 -8
- package/src/core/experimental/define-network.ts +32 -13
- package/src/core/experimental/frames/http-frame.test.ts +15 -13
- package/src/core/experimental/frames/http-frame.ts +10 -9
- package/src/core/experimental/frames/websocket-frame.test.ts +129 -15
- package/src/core/experimental/frames/websocket-frame.ts +71 -20
- package/src/core/experimental/handlers-controller.test.ts +141 -34
- package/src/core/experimental/handlers-controller.ts +107 -30
- package/src/core/experimental/index.ts +1 -0
- package/src/core/experimental/on-unhandled-frame.test.ts +19 -19
- package/src/core/experimental/on-unhandled-frame.ts +7 -12
- package/src/core/experimental/request-utils.test.ts +4 -29
- package/src/core/experimental/request-utils.ts +0 -14
- package/src/core/experimental/sources/interceptor-source.ts +44 -29
- package/src/core/experimental/sources/network-source.test.ts +3 -3
- package/src/core/experimental/sources/network-source.ts +3 -3
- package/src/core/handlers/handler.ts +42 -0
- package/src/core/handlers/{RequestHandler.ts → request-handler.ts} +26 -41
- package/src/core/index.ts +35 -58
- package/src/core/shared-options.ts +21 -0
- package/src/core/type-utils.ts +18 -0
- package/src/core/utils/{cookieStore.ts → cookie-store.ts} +14 -9
- package/src/core/utils/{executeHandlers.ts → execute-handlers.ts} +2 -2
- package/src/core/utils/http-status-messages.ts +69 -0
- package/src/core/utils/internal/{attachSiblingHandlers.ts → attach-sibling-handlers.ts} +20 -0
- package/src/core/utils/internal/{devUtils.test.ts → dev-utils.test.ts} +3 -3
- package/src/core/utils/internal/{Disposable.ts → disposable.ts} +1 -1
- package/src/core/utils/internal/{getCallFrame.test.ts → get-call-frame.test.ts} +1 -1
- package/src/core/utils/internal/{getCallFrame.ts → get-call-frame.ts} +1 -1
- package/src/core/utils/internal/{hasRefCounted.test.ts → has-ref-counted.test.ts} +4 -4
- package/src/core/utils/internal/{hasRefCounted.ts → has-ref-counted.ts} +1 -1
- package/src/core/utils/internal/{isIterable.test.ts → is-iterable.test.ts} +1 -1
- package/src/core/utils/internal/is-iterable.ts +16 -0
- package/src/core/utils/internal/{isObject.test.ts → is-object.test.ts} +1 -1
- package/src/core/utils/internal/{isStringEqual.test.ts → is-string-equal.test.ts} +7 -7
- package/src/core/utils/internal/{jsonParse.test.ts → json-parse.test.ts} +1 -1
- package/src/core/utils/internal/observe-response-body-stream.test.ts +7 -7
- package/src/core/utils/internal/observe-response-body-stream.ts +3 -4
- package/src/core/utils/internal/{parseMultipartData.test.ts → parse-multipart-data.test.ts} +1 -1
- package/src/core/utils/internal/{parseMultipartData.ts → parse-multipart-data.ts} +1 -1
- package/src/core/utils/internal/{toReadonlyArray.test.ts → to-readonly-array.test.ts} +4 -4
- package/src/core/utils/logging/colors.ts +13 -0
- package/src/core/utils/logging/{getStatusCodeColor.test.ts → get-status-code-color.test.ts} +1 -1
- package/src/core/utils/logging/{getTimestamp.test.ts → get-timestamp.test.ts} +1 -1
- package/src/core/utils/logging/{serializeRequest.test.ts → serialize-request.test.ts} +1 -1
- package/src/core/utils/logging/{serializeResponse.test.ts → serialize-response.test.ts} +8 -10
- package/src/core/utils/logging/{serializeResponse.ts → serialize-response.ts} +2 -4
- package/src/core/utils/matching/match-request-url.test.ts +90 -0
- package/src/core/utils/matching/match-request-url.ts +45 -0
- package/src/core/utils/matching/{normalizePath.node.test.ts → normalize-path.node.test.ts} +2 -4
- package/src/core/utils/matching/{normalizePath.test.ts → normalize-path.test.ts} +2 -4
- package/src/core/utils/matching/{normalizePath.ts → normalize-path.ts} +8 -5
- package/src/core/utils/request/{getAllAcceptedMimeTypes.test.ts → get-all-accepted-mime-types.test.ts} +14 -14
- package/src/core/utils/request/get-request-cookies.ts +76 -0
- package/src/core/utils/request/store-response-cookies.ts +15 -0
- package/src/core/utils/request/{toPublicUrl.node.test.ts → to-public-url.node.test.ts} +1 -1
- package/src/core/utils/request/{toPublicUrl.test.ts → to-public-url.test.ts} +2 -2
- package/src/core/utils/{HttpResponse/decorators.ts → response-decorators.ts} +6 -8
- package/src/core/utils/url/{getAbsoluteUrl.node.test.ts → get-absolute-url.node.test.ts} +5 -7
- package/src/core/utils/url/{getAbsoluteUrl.test.ts → get-absolute-url.test.ts} +7 -7
- package/src/core/utils/url/{getAbsoluteUrl.ts → get-absolute-url.ts} +1 -1
- package/src/core/utils/url/is-absolute-url.test.ts +30 -0
- package/src/{core/handlers/GraphQLHandler.test.ts → graphql/graphql-handler.test.ts} +37 -36
- package/src/{core/handlers/GraphQLHandler.ts → graphql/graphql-handler.ts} +54 -41
- package/src/graphql/graphql-subscription-event.ts +39 -0
- package/src/graphql/graphql-subscription.test.ts +208 -0
- package/src/graphql/graphql-subscription.ts +1487 -0
- package/src/graphql/graphql.test.ts +14 -0
- package/src/graphql/graphql.ts +179 -0
- package/src/graphql/index.ts +34 -0
- package/src/{core/utils/internal/parseGraphQLRequest.test.ts → graphql/parse-graphql-request.test.ts} +47 -6
- package/src/{core/utils/internal/parseGraphQLRequest.ts → graphql/parse-graphql-request.ts} +59 -32
- package/src/{core/handlers/HttpHandler.test.ts → http/http-handler.test.ts} +22 -22
- package/src/{core/handlers/HttpHandler.ts → http/http-handler.ts} +16 -18
- package/src/{core/HttpResponse.test.ts → http/http-response.test.ts} +25 -27
- package/src/{core/HttpResponse.ts → http/http-response.ts} +15 -17
- package/src/{core → http}/http.ts +7 -7
- package/src/http/index.test.ts +19 -0
- package/src/http/index.ts +22 -0
- package/src/http/symbols.ts +19 -0
- package/src/iife/index.ts +2 -0
- package/src/mockServiceWorker.js +183 -84
- package/src/node/async-handlers-controller.test.ts +4 -4
- package/src/node/glossary.ts +8 -4
- package/src/node/index.ts +1 -6
- package/src/node/setup-server-common.ts +16 -73
- package/src/node/setup-server.ts +9 -40
- package/src/sse/index.test.ts +14 -0
- package/src/sse/index.ts +7 -0
- package/src/{core → sse}/sse.ts +25 -21
- package/src/tsconfig.core.build.json +5 -1
- package/src/tsconfig.core.json +8 -1
- package/src/tsconfig.node.json +1 -1
- package/src/tsconfig.src.json +1 -1
- package/src/{core → utils}/bypass.test.ts +22 -5
- package/src/{core → utils}/bypass.ts +11 -0
- package/src/{core → utils}/delay.ts +5 -5
- package/src/utils/get-clean-url-string.test.ts +24 -0
- package/src/utils/get-clean-url-string.ts +16 -0
- package/src/{core/getResponse.test.ts → utils/get-response.test.ts} +9 -9
- package/src/{core/getResponse.ts → utils/get-response.ts} +2 -2
- package/src/{core/isCommonAssetRequest.ts → utils/is-common-asset-request.ts} +4 -3
- package/src/utils/passthrough.test.ts +41 -0
- package/src/utils/passthrough.ts +46 -0
- package/src/vite/client.d.ts +16 -0
- package/src/vite/index.ts +4 -0
- package/src/vite/options.d.ts +5 -0
- package/src/vite/plugin.test.ts +918 -0
- package/src/vite/plugin.ts +133 -0
- package/src/vite/runtime.ts +117 -0
- package/src/vite/tsconfig.build.json +7 -0
- package/src/ws/index.ts +23 -0
- package/src/{core/ws/utils/attachWebSocketLogger.ts → ws/utils/attach-websocket-logger.ts} +45 -23
- package/src/{core/ws/utils/getMessageLength.test.ts → ws/utils/get-message-length.test.ts} +4 -4
- package/src/{core/ws/utils/getMessageLength.ts → ws/utils/get-message-length.ts} +1 -1
- package/src/{core/ws/utils/getPublicData.test.ts → ws/utils/get-public-data.test.ts} +7 -7
- package/src/ws/utils/get-public-data.ts +23 -0
- package/src/{core/ws/utils/truncateMessage.test.ts → ws/utils/truncate-message.test.ts} +3 -3
- package/src/{core/ws/WebSocketClientManager.test.ts → ws/websocket-client-manager.test.ts} +8 -9
- package/src/{core/ws/WebSocketClientManager.ts → ws/websocket-client-manager.ts} +24 -28
- package/src/{core/ws/WebSocketClientStore.ts → ws/websocket-client-store.ts} +2 -2
- package/src/{core/handlers/WebSocketHandler.test.ts → ws/websocket-handler.test.ts} +15 -15
- package/src/{core/handlers/WebSocketHandler.ts → ws/websocket-handler.ts} +144 -32
- package/src/{core/ws/WebSocketIndexedDBClientStore.ts → ws/websocket-indexeddb-client-store.ts} +12 -13
- package/src/{core/ws/WebSocketMemoryClientStore.ts → ws/websocket-memory-client-store.ts} +4 -4
- package/src/ws/websocket-upgrade.ts +83 -0
- package/src/{core → ws}/ws.test.ts +3 -4
- package/src/{core → ws}/ws.ts +106 -53
- package/browser/package.json +0 -31
- package/cli/package.json +0 -3
- package/config/package.json +0 -3
- package/config/scripts/postinstall.js +0 -36
- package/lib/browser/index.d.mts +0 -112
- package/lib/browser/index.mjs +0 -3706
- package/lib/browser/index.mjs.map +0 -1
- package/lib/core/HttpResponse-BE_Y2Ak9.d.mts +0 -389
- package/lib/core/HttpResponse-DL-P1EeG.d.ts +0 -389
- package/lib/core/HttpResponse.d.mts +0 -6
- package/lib/core/HttpResponse.d.ts +0 -6
- package/lib/core/HttpResponse.js +0 -176
- package/lib/core/HttpResponse.js.map +0 -1
- package/lib/core/HttpResponse.mjs +0 -159
- package/lib/core/HttpResponse.mjs.map +0 -1
- package/lib/core/bypass.d.mts +0 -16
- package/lib/core/bypass.js +0 -42
- package/lib/core/bypass.js.map +0 -1
- package/lib/core/bypass.mjs +0 -22
- package/lib/core/bypass.mjs.map +0 -1
- package/lib/core/delay.d.mts +0 -18
- package/lib/core/delay.d.ts +0 -18
- package/lib/core/delay.js +0 -77
- package/lib/core/delay.js.map +0 -1
- package/lib/core/delay.mjs +0 -57
- package/lib/core/delay.mjs.map +0 -1
- package/lib/core/experimental/compat.d.mts +0 -17
- package/lib/core/experimental/compat.d.ts +0 -17
- package/lib/core/experimental/compat.js +0 -55
- package/lib/core/experimental/compat.js.map +0 -1
- package/lib/core/experimental/compat.mjs +0 -37
- package/lib/core/experimental/compat.mjs.map +0 -1
- package/lib/core/experimental/define-network.d.mts +0 -75
- package/lib/core/experimental/define-network.d.ts +0 -75
- package/lib/core/experimental/define-network.js +0 -134
- package/lib/core/experimental/define-network.js.map +0 -1
- package/lib/core/experimental/define-network.mjs +0 -119
- package/lib/core/experimental/define-network.mjs.map +0 -1
- package/lib/core/experimental/frames/http-frame.d.mts +0 -77
- package/lib/core/experimental/frames/http-frame.d.ts +0 -77
- package/lib/core/experimental/frames/http-frame.js +0 -197
- package/lib/core/experimental/frames/http-frame.js.map +0 -1
- package/lib/core/experimental/frames/http-frame.mjs +0 -181
- package/lib/core/experimental/frames/http-frame.mjs.map +0 -1
- package/lib/core/experimental/frames/network-frame.d.mts +0 -12
- package/lib/core/experimental/frames/network-frame.d.ts +0 -12
- package/lib/core/experimental/frames/network-frame.js +0 -35
- package/lib/core/experimental/frames/network-frame.js.map +0 -1
- package/lib/core/experimental/frames/network-frame.mjs +0 -15
- package/lib/core/experimental/frames/network-frame.mjs.map +0 -1
- package/lib/core/experimental/frames/websocket-frame.d.mts +0 -55
- package/lib/core/experimental/frames/websocket-frame.d.ts +0 -55
- package/lib/core/experimental/frames/websocket-frame.js +0 -131
- package/lib/core/experimental/frames/websocket-frame.js.map +0 -1
- package/lib/core/experimental/frames/websocket-frame.mjs +0 -118
- package/lib/core/experimental/frames/websocket-frame.mjs.map +0 -1
- package/lib/core/experimental/handlers-controller.d.mts +0 -36
- package/lib/core/experimental/handlers-controller.d.ts +0 -36
- package/lib/core/experimental/handlers-controller.js +0 -146
- package/lib/core/experimental/handlers-controller.js.map +0 -1
- package/lib/core/experimental/handlers-controller.mjs +0 -126
- package/lib/core/experimental/handlers-controller.mjs.map +0 -1
- package/lib/core/experimental/index.d.mts +0 -17
- package/lib/core/experimental/index.js.map +0 -1
- package/lib/core/experimental/index.mjs +0 -27
- package/lib/core/experimental/index.mjs.map +0 -1
- package/lib/core/experimental/on-unhandled-frame.d.mts +0 -12
- package/lib/core/experimental/on-unhandled-frame.d.ts +0 -12
- package/lib/core/experimental/on-unhandled-frame.js +0 -91
- package/lib/core/experimental/on-unhandled-frame.js.map +0 -1
- package/lib/core/experimental/on-unhandled-frame.mjs +0 -71
- package/lib/core/experimental/on-unhandled-frame.mjs.map +0 -1
- package/lib/core/experimental/request-utils.d.mts +0 -12
- package/lib/core/experimental/request-utils.d.ts +0 -12
- package/lib/core/experimental/request-utils.js +0 -50
- package/lib/core/experimental/request-utils.js.map +0 -1
- package/lib/core/experimental/request-utils.mjs +0 -30
- package/lib/core/experimental/request-utils.mjs.map +0 -1
- package/lib/core/experimental/setup-api.d.mts +0 -33
- package/lib/core/experimental/setup-api.d.ts +0 -33
- package/lib/core/experimental/setup-api.js +0 -58
- package/lib/core/experimental/setup-api.js.map +0 -1
- package/lib/core/experimental/setup-api.mjs +0 -40
- package/lib/core/experimental/setup-api.mjs.map +0 -1
- package/lib/core/experimental/sources/interceptor-source.d.mts +0 -28
- package/lib/core/experimental/sources/interceptor-source.d.ts +0 -28
- package/lib/core/experimental/sources/interceptor-source.js +0 -155
- package/lib/core/experimental/sources/interceptor-source.js.map +0 -1
- package/lib/core/experimental/sources/interceptor-source.mjs +0 -135
- package/lib/core/experimental/sources/interceptor-source.mjs.map +0 -1
- package/lib/core/experimental/sources/network-source.d.mts +0 -31
- package/lib/core/experimental/sources/network-source.d.ts +0 -31
- package/lib/core/experimental/sources/network-source.js +0 -51
- package/lib/core/experimental/sources/network-source.js.map +0 -1
- package/lib/core/experimental/sources/network-source.mjs +0 -32
- package/lib/core/experimental/sources/network-source.mjs.map +0 -1
- package/lib/core/getResponse.d.mts +0 -18
- package/lib/core/getResponse.d.ts +0 -18
- package/lib/core/getResponse.js +0 -35
- package/lib/core/getResponse.js.map +0 -1
- package/lib/core/getResponse.mjs +0 -17
- package/lib/core/getResponse.mjs.map +0 -1
- package/lib/core/graphql.d.mts +0 -76
- package/lib/core/graphql.d.ts +0 -76
- package/lib/core/graphql.js +0 -91
- package/lib/core/graphql.js.map +0 -1
- package/lib/core/graphql.mjs +0 -74
- package/lib/core/graphql.mjs.map +0 -1
- package/lib/core/handlers/GraphQLHandler.d.mts +0 -6
- package/lib/core/handlers/GraphQLHandler.d.ts +0 -6
- package/lib/core/handlers/GraphQLHandler.js +0 -232
- package/lib/core/handlers/GraphQLHandler.js.map +0 -1
- package/lib/core/handlers/GraphQLHandler.mjs +0 -221
- package/lib/core/handlers/GraphQLHandler.mjs.map +0 -1
- package/lib/core/handlers/HttpHandler.d.mts +0 -75
- package/lib/core/handlers/HttpHandler.d.ts +0 -75
- package/lib/core/handlers/HttpHandler.js +0 -129
- package/lib/core/handlers/HttpHandler.js.map +0 -1
- package/lib/core/handlers/HttpHandler.mjs +0 -113
- package/lib/core/handlers/HttpHandler.mjs.map +0 -1
- package/lib/core/handlers/RequestHandler.d.mts +0 -6
- package/lib/core/handlers/RequestHandler.d.ts +0 -6
- package/lib/core/handlers/RequestHandler.js +0 -365
- package/lib/core/handlers/RequestHandler.js.map +0 -1
- package/lib/core/handlers/RequestHandler.mjs +0 -348
- package/lib/core/handlers/RequestHandler.mjs.map +0 -1
- package/lib/core/handlers/WebSocketHandler.d.mts +0 -49
- package/lib/core/handlers/WebSocketHandler.d.ts +0 -49
- package/lib/core/handlers/WebSocketHandler.js +0 -178
- package/lib/core/handlers/WebSocketHandler.js.map +0 -1
- package/lib/core/handlers/WebSocketHandler.mjs +0 -160
- package/lib/core/handlers/WebSocketHandler.mjs.map +0 -1
- package/lib/core/http.d.mts +0 -31
- package/lib/core/http.js +0 -41
- package/lib/core/http.js.map +0 -1
- package/lib/core/http.mjs +0 -25
- package/lib/core/http.mjs.map +0 -1
- package/lib/core/index.d.mts +0 -27
- package/lib/core/index.js.map +0 -1
- package/lib/core/index.mjs +0 -52
- package/lib/core/index.mjs.map +0 -1
- package/lib/core/isCommonAssetRequest.d.mts +0 -20
- package/lib/core/isCommonAssetRequest.d.ts +0 -20
- package/lib/core/isCommonAssetRequest.js +0 -42
- package/lib/core/isCommonAssetRequest.js.map +0 -1
- package/lib/core/isCommonAssetRequest.mjs +0 -22
- package/lib/core/isCommonAssetRequest.mjs.map +0 -1
- package/lib/core/on-unhandled-frame-0KmwUmeV.d.ts +0 -56
- package/lib/core/on-unhandled-frame-gkokW4Rr.d.mts +0 -56
- package/lib/core/passthrough.d.mts +0 -24
- package/lib/core/passthrough.d.ts +0 -24
- package/lib/core/passthrough.js +0 -33
- package/lib/core/passthrough.js.map +0 -1
- package/lib/core/passthrough.mjs +0 -13
- package/lib/core/passthrough.mjs.map +0 -1
- package/lib/core/sharedOptions.d.mts +0 -68
- package/lib/core/sharedOptions.d.ts +0 -68
- package/lib/core/sharedOptions.js +0 -17
- package/lib/core/sharedOptions.js.map +0 -1
- package/lib/core/sharedOptions.mjs +0 -1
- package/lib/core/sharedOptions.mjs.map +0 -1
- package/lib/core/sse.d.mts +0 -102
- package/lib/core/sse.d.ts +0 -102
- package/lib/core/sse.js +0 -690
- package/lib/core/sse.js.map +0 -1
- package/lib/core/sse.mjs +0 -672
- package/lib/core/sse.mjs.map +0 -1
- package/lib/core/typeUtils.d.mts +0 -12
- package/lib/core/typeUtils.d.ts +0 -12
- package/lib/core/typeUtils.js +0 -17
- package/lib/core/typeUtils.js.map +0 -1
- package/lib/core/typeUtils.mjs +0 -1
- package/lib/core/typeUtils.mjs.map +0 -1
- package/lib/core/utils/HttpResponse/decorators.d.mts +0 -22
- package/lib/core/utils/HttpResponse/decorators.d.ts +0 -22
- package/lib/core/utils/HttpResponse/decorators.js +0 -84
- package/lib/core/utils/HttpResponse/decorators.js.map +0 -1
- package/lib/core/utils/HttpResponse/decorators.mjs +0 -54
- package/lib/core/utils/HttpResponse/decorators.mjs.map +0 -1
- package/lib/core/utils/cookieStore.d.mts +0 -13
- package/lib/core/utils/cookieStore.d.ts +0 -13
- package/lib/core/utils/cookieStore.js +0 -90
- package/lib/core/utils/cookieStore.js.map +0 -1
- package/lib/core/utils/cookieStore.mjs +0 -74
- package/lib/core/utils/cookieStore.mjs.map +0 -1
- package/lib/core/utils/executeHandlers.d.mts +0 -6
- package/lib/core/utils/executeHandlers.d.ts +0 -6
- package/lib/core/utils/executeHandlers.js +0 -51
- package/lib/core/utils/executeHandlers.js.map +0 -1
- package/lib/core/utils/executeHandlers.mjs +0 -31
- package/lib/core/utils/executeHandlers.mjs.map +0 -1
- package/lib/core/utils/handleRequest.d.mts +0 -30
- package/lib/core/utils/handleRequest.d.ts +0 -30
- package/lib/core/utils/handleRequest.js +0 -76
- package/lib/core/utils/handleRequest.js.map +0 -1
- package/lib/core/utils/handleRequest.mjs +0 -58
- package/lib/core/utils/handleRequest.mjs.map +0 -1
- package/lib/core/utils/internal/Disposable.d.mts +0 -7
- package/lib/core/utils/internal/Disposable.d.ts +0 -7
- package/lib/core/utils/internal/Disposable.js +0 -51
- package/lib/core/utils/internal/Disposable.js.map +0 -1
- package/lib/core/utils/internal/Disposable.mjs +0 -31
- package/lib/core/utils/internal/Disposable.mjs.map +0 -1
- package/lib/core/utils/internal/attachSiblingHandlers.d.mts +0 -15
- package/lib/core/utils/internal/attachSiblingHandlers.d.ts +0 -15
- package/lib/core/utils/internal/attachSiblingHandlers.js +0 -44
- package/lib/core/utils/internal/attachSiblingHandlers.js.map +0 -1
- package/lib/core/utils/internal/attachSiblingHandlers.mjs +0 -24
- package/lib/core/utils/internal/attachSiblingHandlers.mjs.map +0 -1
- package/lib/core/utils/internal/checkGlobals.d.mts +0 -3
- package/lib/core/utils/internal/checkGlobals.d.ts +0 -3
- package/lib/core/utils/internal/checkGlobals.js +0 -34
- package/lib/core/utils/internal/checkGlobals.js.map +0 -1
- package/lib/core/utils/internal/checkGlobals.mjs +0 -14
- package/lib/core/utils/internal/checkGlobals.mjs.map +0 -1
- package/lib/core/utils/internal/devUtils.d.mts +0 -28
- package/lib/core/utils/internal/devUtils.d.ts +0 -28
- package/lib/core/utils/internal/devUtils.js +0 -48
- package/lib/core/utils/internal/devUtils.js.map +0 -1
- package/lib/core/utils/internal/devUtils.mjs +0 -28
- package/lib/core/utils/internal/devUtils.mjs.map +0 -1
- package/lib/core/utils/internal/getCallFrame.d.mts +0 -6
- package/lib/core/utils/internal/getCallFrame.d.ts +0 -6
- package/lib/core/utils/internal/getCallFrame.js +0 -41
- package/lib/core/utils/internal/getCallFrame.js.map +0 -1
- package/lib/core/utils/internal/getCallFrame.mjs +0 -21
- package/lib/core/utils/internal/getCallFrame.mjs.map +0 -1
- package/lib/core/utils/internal/hasRefCounted.d.mts +0 -3
- package/lib/core/utils/internal/hasRefCounted.d.ts +0 -3
- package/lib/core/utils/internal/hasRefCounted.js +0 -34
- package/lib/core/utils/internal/hasRefCounted.js.map +0 -1
- package/lib/core/utils/internal/hasRefCounted.mjs +0 -14
- package/lib/core/utils/internal/hasRefCounted.mjs.map +0 -1
- package/lib/core/utils/internal/isHandlerKind.d.mts +0 -19
- package/lib/core/utils/internal/isHandlerKind.d.ts +0 -19
- package/lib/core/utils/internal/isHandlerKind.js +0 -30
- package/lib/core/utils/internal/isHandlerKind.js.map +0 -1
- package/lib/core/utils/internal/isHandlerKind.mjs +0 -10
- package/lib/core/utils/internal/isHandlerKind.mjs.map +0 -1
- package/lib/core/utils/internal/isIterable.d.mts +0 -20
- package/lib/core/utils/internal/isIterable.d.ts +0 -20
- package/lib/core/utils/internal/isIterable.js +0 -30
- package/lib/core/utils/internal/isIterable.js.map +0 -1
- package/lib/core/utils/internal/isIterable.mjs +0 -10
- package/lib/core/utils/internal/isIterable.mjs.map +0 -1
- package/lib/core/utils/internal/isObject.d.mts +0 -6
- package/lib/core/utils/internal/isObject.d.ts +0 -6
- package/lib/core/utils/internal/isObject.js +0 -27
- package/lib/core/utils/internal/isObject.js.map +0 -1
- package/lib/core/utils/internal/isObject.mjs +0 -7
- package/lib/core/utils/internal/isObject.mjs.map +0 -1
- package/lib/core/utils/internal/isStringEqual.d.mts +0 -6
- package/lib/core/utils/internal/isStringEqual.d.ts +0 -6
- package/lib/core/utils/internal/isStringEqual.js +0 -27
- package/lib/core/utils/internal/isStringEqual.js.map +0 -1
- package/lib/core/utils/internal/isStringEqual.mjs +0 -7
- package/lib/core/utils/internal/isStringEqual.mjs.map +0 -1
- package/lib/core/utils/internal/jsonParse.d.mts +0 -7
- package/lib/core/utils/internal/jsonParse.d.ts +0 -7
- package/lib/core/utils/internal/jsonParse.js +0 -31
- package/lib/core/utils/internal/jsonParse.js.map +0 -1
- package/lib/core/utils/internal/jsonParse.mjs +0 -11
- package/lib/core/utils/internal/jsonParse.mjs.map +0 -1
- package/lib/core/utils/internal/mergeRight.d.mts +0 -7
- package/lib/core/utils/internal/mergeRight.d.ts +0 -7
- package/lib/core/utils/internal/mergeRight.js +0 -43
- package/lib/core/utils/internal/mergeRight.js.map +0 -1
- package/lib/core/utils/internal/mergeRight.mjs +0 -23
- package/lib/core/utils/internal/mergeRight.mjs.map +0 -1
- package/lib/core/utils/internal/observe-response-body-stream.d.mts +0 -18
- package/lib/core/utils/internal/observe-response-body-stream.d.ts +0 -18
- package/lib/core/utils/internal/observe-response-body-stream.js +0 -64
- package/lib/core/utils/internal/observe-response-body-stream.js.map +0 -1
- package/lib/core/utils/internal/observe-response-body-stream.mjs +0 -44
- package/lib/core/utils/internal/observe-response-body-stream.mjs.map +0 -1
- package/lib/core/utils/internal/parseGraphQLRequest.d.mts +0 -6
- package/lib/core/utils/internal/parseGraphQLRequest.d.ts +0 -6
- package/lib/core/utils/internal/parseGraphQLRequest.js +0 -146
- package/lib/core/utils/internal/parseGraphQLRequest.js.map +0 -1
- package/lib/core/utils/internal/parseGraphQLRequest.mjs +0 -129
- package/lib/core/utils/internal/parseGraphQLRequest.mjs.map +0 -1
- package/lib/core/utils/internal/parseMultipartData.d.mts +0 -14
- package/lib/core/utils/internal/parseMultipartData.d.ts +0 -14
- package/lib/core/utils/internal/parseMultipartData.js +0 -84
- package/lib/core/utils/internal/parseMultipartData.js.map +0 -1
- package/lib/core/utils/internal/parseMultipartData.mjs +0 -64
- package/lib/core/utils/internal/parseMultipartData.mjs.map +0 -1
- package/lib/core/utils/internal/pipeEvents.d.mts +0 -8
- package/lib/core/utils/internal/pipeEvents.d.ts +0 -8
- package/lib/core/utils/internal/pipeEvents.js +0 -37
- package/lib/core/utils/internal/pipeEvents.js.map +0 -1
- package/lib/core/utils/internal/pipeEvents.mjs +0 -17
- package/lib/core/utils/internal/pipeEvents.mjs.map +0 -1
- package/lib/core/utils/internal/toReadonlyArray.d.mts +0 -6
- package/lib/core/utils/internal/toReadonlyArray.d.ts +0 -6
- package/lib/core/utils/internal/toReadonlyArray.js +0 -29
- package/lib/core/utils/internal/toReadonlyArray.js.map +0 -1
- package/lib/core/utils/internal/toReadonlyArray.mjs +0 -9
- package/lib/core/utils/internal/toReadonlyArray.mjs.map +0 -1
- package/lib/core/utils/internal/tryCatch.d.mts +0 -3
- package/lib/core/utils/internal/tryCatch.d.ts +0 -3
- package/lib/core/utils/internal/tryCatch.js +0 -32
- package/lib/core/utils/internal/tryCatch.js.map +0 -1
- package/lib/core/utils/internal/tryCatch.mjs +0 -12
- package/lib/core/utils/internal/tryCatch.mjs.map +0 -1
- package/lib/core/utils/logging/getStatusCodeColor.d.mts +0 -11
- package/lib/core/utils/logging/getStatusCodeColor.d.ts +0 -11
- package/lib/core/utils/logging/getStatusCodeColor.js +0 -40
- package/lib/core/utils/logging/getStatusCodeColor.js.map +0 -1
- package/lib/core/utils/logging/getStatusCodeColor.mjs +0 -20
- package/lib/core/utils/logging/getStatusCodeColor.mjs.map +0 -1
- package/lib/core/utils/logging/getTimestamp.d.mts +0 -9
- package/lib/core/utils/logging/getTimestamp.d.ts +0 -9
- package/lib/core/utils/logging/getTimestamp.js +0 -32
- package/lib/core/utils/logging/getTimestamp.js.map +0 -1
- package/lib/core/utils/logging/getTimestamp.mjs +0 -12
- package/lib/core/utils/logging/getTimestamp.mjs.map +0 -1
- package/lib/core/utils/logging/serializeRequest.d.mts +0 -12
- package/lib/core/utils/logging/serializeRequest.d.ts +0 -12
- package/lib/core/utils/logging/serializeRequest.js +0 -34
- package/lib/core/utils/logging/serializeRequest.js.map +0 -1
- package/lib/core/utils/logging/serializeRequest.mjs +0 -14
- package/lib/core/utils/logging/serializeRequest.mjs.map +0 -1
- package/lib/core/utils/logging/serializeResponse.d.mts +0 -9
- package/lib/core/utils/logging/serializeResponse.d.ts +0 -9
- package/lib/core/utils/logging/serializeResponse.js +0 -48
- package/lib/core/utils/logging/serializeResponse.js.map +0 -1
- package/lib/core/utils/logging/serializeResponse.mjs +0 -18
- package/lib/core/utils/logging/serializeResponse.mjs.map +0 -1
- package/lib/core/utils/matching/matchRequestUrl.d.mts +0 -20
- package/lib/core/utils/matching/matchRequestUrl.d.ts +0 -20
- package/lib/core/utils/matching/matchRequestUrl.js +0 -55
- package/lib/core/utils/matching/matchRequestUrl.js.map +0 -1
- package/lib/core/utils/matching/matchRequestUrl.mjs +0 -35
- package/lib/core/utils/matching/matchRequestUrl.mjs.map +0 -1
- package/lib/core/utils/matching/normalizePath.d.mts +0 -13
- package/lib/core/utils/matching/normalizePath.d.ts +0 -13
- package/lib/core/utils/matching/normalizePath.js +0 -33
- package/lib/core/utils/matching/normalizePath.js.map +0 -1
- package/lib/core/utils/matching/normalizePath.mjs +0 -13
- package/lib/core/utils/matching/normalizePath.mjs.map +0 -1
- package/lib/core/utils/request/getAllAcceptedMimeTypes.d.mts +0 -14
- package/lib/core/utils/request/getAllAcceptedMimeTypes.d.ts +0 -14
- package/lib/core/utils/request/getAllAcceptedMimeTypes.js +0 -61
- package/lib/core/utils/request/getAllAcceptedMimeTypes.js.map +0 -1
- package/lib/core/utils/request/getAllAcceptedMimeTypes.mjs +0 -41
- package/lib/core/utils/request/getAllAcceptedMimeTypes.mjs.map +0 -1
- package/lib/core/utils/request/getRequestCookies.d.mts +0 -3
- package/lib/core/utils/request/getRequestCookies.d.ts +0 -3
- package/lib/core/utils/request/getRequestCookies.js +0 -79
- package/lib/core/utils/request/getRequestCookies.js.map +0 -1
- package/lib/core/utils/request/getRequestCookies.mjs +0 -62
- package/lib/core/utils/request/getRequestCookies.mjs.map +0 -1
- package/lib/core/utils/request/onUnhandledRequest.d.mts +0 -9
- package/lib/core/utils/request/onUnhandledRequest.d.ts +0 -9
- package/lib/core/utils/request/onUnhandledRequest.js +0 -76
- package/lib/core/utils/request/onUnhandledRequest.js.map +0 -1
- package/lib/core/utils/request/onUnhandledRequest.mjs +0 -56
- package/lib/core/utils/request/onUnhandledRequest.mjs.map +0 -1
- package/lib/core/utils/request/storeResponseCookies.d.mts +0 -3
- package/lib/core/utils/request/storeResponseCookies.d.ts +0 -3
- package/lib/core/utils/request/storeResponseCookies.js +0 -32
- package/lib/core/utils/request/storeResponseCookies.js.map +0 -1
- package/lib/core/utils/request/storeResponseCookies.mjs +0 -12
- package/lib/core/utils/request/storeResponseCookies.mjs.map +0 -1
- package/lib/core/utils/request/toPublicUrl.d.mts +0 -7
- package/lib/core/utils/request/toPublicUrl.d.ts +0 -7
- package/lib/core/utils/request/toPublicUrl.js +0 -31
- package/lib/core/utils/request/toPublicUrl.js.map +0 -1
- package/lib/core/utils/request/toPublicUrl.mjs +0 -11
- package/lib/core/utils/request/toPublicUrl.mjs.map +0 -1
- package/lib/core/utils/toResponseInit.d.mts +0 -3
- package/lib/core/utils/toResponseInit.d.ts +0 -3
- package/lib/core/utils/toResponseInit.js +0 -31
- package/lib/core/utils/toResponseInit.js.map +0 -1
- package/lib/core/utils/toResponseInit.mjs +0 -11
- package/lib/core/utils/toResponseInit.mjs.map +0 -1
- package/lib/core/utils/url/cleanUrl.d.mts +0 -7
- package/lib/core/utils/url/cleanUrl.d.ts +0 -7
- package/lib/core/utils/url/cleanUrl.js +0 -31
- package/lib/core/utils/url/cleanUrl.js.map +0 -1
- package/lib/core/utils/url/cleanUrl.mjs +0 -11
- package/lib/core/utils/url/cleanUrl.mjs.map +0 -1
- package/lib/core/utils/url/getAbsoluteUrl.d.mts +0 -6
- package/lib/core/utils/url/getAbsoluteUrl.d.ts +0 -6
- package/lib/core/utils/url/getAbsoluteUrl.js +0 -38
- package/lib/core/utils/url/getAbsoluteUrl.js.map +0 -1
- package/lib/core/utils/url/getAbsoluteUrl.mjs +0 -18
- package/lib/core/utils/url/getAbsoluteUrl.mjs.map +0 -1
- package/lib/core/utils/url/isAbsoluteUrl.d.mts +0 -6
- package/lib/core/utils/url/isAbsoluteUrl.d.ts +0 -6
- package/lib/core/utils/url/isAbsoluteUrl.js +0 -27
- package/lib/core/utils/url/isAbsoluteUrl.js.map +0 -1
- package/lib/core/utils/url/isAbsoluteUrl.mjs +0 -7
- package/lib/core/utils/url/isAbsoluteUrl.mjs.map +0 -1
- package/lib/core/ws/WebSocketClientManager.d.mts +0 -65
- package/lib/core/ws/WebSocketClientManager.d.ts +0 -65
- package/lib/core/ws/WebSocketClientManager.js +0 -163
- package/lib/core/ws/WebSocketClientManager.js.map +0 -1
- package/lib/core/ws/WebSocketClientManager.mjs +0 -143
- package/lib/core/ws/WebSocketClientManager.mjs.map +0 -1
- package/lib/core/ws/WebSocketClientStore.d.mts +0 -13
- package/lib/core/ws/WebSocketClientStore.d.ts +0 -13
- package/lib/core/ws/WebSocketClientStore.js +0 -26
- package/lib/core/ws/WebSocketClientStore.js.map +0 -1
- package/lib/core/ws/WebSocketClientStore.mjs +0 -6
- package/lib/core/ws/WebSocketClientStore.mjs.map +0 -1
- package/lib/core/ws/WebSocketIndexedDBClientStore.d.mts +0 -14
- package/lib/core/ws/WebSocketIndexedDBClientStore.d.ts +0 -14
- package/lib/core/ws/WebSocketIndexedDBClientStore.js +0 -131
- package/lib/core/ws/WebSocketIndexedDBClientStore.js.map +0 -1
- package/lib/core/ws/WebSocketIndexedDBClientStore.mjs +0 -111
- package/lib/core/ws/WebSocketIndexedDBClientStore.mjs.map +0 -1
- package/lib/core/ws/WebSocketMemoryClientStore.d.mts +0 -12
- package/lib/core/ws/WebSocketMemoryClientStore.d.ts +0 -12
- package/lib/core/ws/WebSocketMemoryClientStore.js +0 -42
- package/lib/core/ws/WebSocketMemoryClientStore.js.map +0 -1
- package/lib/core/ws/WebSocketMemoryClientStore.mjs +0 -22
- package/lib/core/ws/WebSocketMemoryClientStore.mjs.map +0 -1
- package/lib/core/ws/handleWebSocketEvent.d.mts +0 -20
- package/lib/core/ws/handleWebSocketEvent.d.ts +0 -20
- package/lib/core/ws/handleWebSocketEvent.js +0 -61
- package/lib/core/ws/handleWebSocketEvent.js.map +0 -1
- package/lib/core/ws/handleWebSocketEvent.mjs +0 -43
- package/lib/core/ws/handleWebSocketEvent.mjs.map +0 -1
- package/lib/core/ws/utils/attachWebSocketLogger.d.mts +0 -18
- package/lib/core/ws/utils/attachWebSocketLogger.d.ts +0 -18
- package/lib/core/ws/utils/attachWebSocketLogger.js +0 -228
- package/lib/core/ws/utils/attachWebSocketLogger.js.map +0 -1
- package/lib/core/ws/utils/attachWebSocketLogger.mjs +0 -208
- package/lib/core/ws/utils/attachWebSocketLogger.mjs.map +0 -1
- package/lib/core/ws/utils/getMessageLength.d.mts +0 -11
- package/lib/core/ws/utils/getMessageLength.d.ts +0 -11
- package/lib/core/ws/utils/getMessageLength.js +0 -34
- package/lib/core/ws/utils/getMessageLength.js.map +0 -1
- package/lib/core/ws/utils/getMessageLength.mjs +0 -14
- package/lib/core/ws/utils/getMessageLength.mjs.map +0 -1
- package/lib/core/ws/utils/getPublicData.d.mts +0 -5
- package/lib/core/ws/utils/getPublicData.d.ts +0 -5
- package/lib/core/ws/utils/getPublicData.js +0 -37
- package/lib/core/ws/utils/getPublicData.js.map +0 -1
- package/lib/core/ws/utils/getPublicData.mjs +0 -17
- package/lib/core/ws/utils/getPublicData.mjs.map +0 -1
- package/lib/core/ws/utils/truncateMessage.d.mts +0 -3
- package/lib/core/ws/utils/truncateMessage.d.ts +0 -3
- package/lib/core/ws/utils/truncateMessage.js +0 -31
- package/lib/core/ws/utils/truncateMessage.js.map +0 -1
- package/lib/core/ws/utils/truncateMessage.mjs +0 -11
- package/lib/core/ws/utils/truncateMessage.mjs.map +0 -1
- package/lib/core/ws/webSocketInterceptor.d.mts +0 -5
- package/lib/core/ws/webSocketInterceptor.d.ts +0 -5
- package/lib/core/ws/webSocketInterceptor.js +0 -26
- package/lib/core/ws/webSocketInterceptor.js.map +0 -1
- package/lib/core/ws/webSocketInterceptor.mjs +0 -6
- package/lib/core/ws/webSocketInterceptor.mjs.map +0 -1
- package/lib/core/ws.d.mts +0 -88
- package/lib/core/ws.d.ts +0 -88
- package/lib/core/ws.js +0 -94
- package/lib/core/ws.js.map +0 -1
- package/lib/core/ws.mjs +0 -80
- package/lib/core/ws.mjs.map +0 -1
- package/lib/native/index.d.mts +0 -66
- package/lib/native/index.d.ts +0 -66
- package/lib/native/index.js +0 -88
- package/lib/native/index.js.map +0 -1
- package/lib/native/index.mjs +0 -67
- package/lib/native/index.mjs.map +0 -1
- package/lib/node/index.d.mts +0 -113
- package/lib/node/index.mjs +0 -185
- package/lib/node/index.mjs.map +0 -1
- package/lib/shims/cookie.d.mts +0 -7
- package/lib/shims/cookie.d.ts +0 -7
- package/lib/shims/cookie.js +0 -294
- package/lib/shims/cookie.mjs +0 -286
- package/lib/shims/statuses.d.mts +0 -6
- package/lib/shims/statuses.d.ts +0 -6
- package/lib/shims/statuses.js +0 -195
- package/lib/shims/statuses.mjs +0 -187
- package/native/package.json +0 -30
- package/node/package.json +0 -33
- package/src/browser/utils/pruneGetRequestBody.test.ts +0 -51
- package/src/browser/utils/pruneGetRequestBody.ts +0 -21
- package/src/core/experimental/compat.ts +0 -50
- package/src/core/experimental/setup-api.ts +0 -55
- package/src/core/graphql.test.ts +0 -11
- package/src/core/graphql.ts +0 -136
- package/src/core/passthrough.test.ts +0 -11
- package/src/core/passthrough.ts +0 -25
- package/src/core/sharedOptions.ts +0 -71
- package/src/core/typeUtils.ts +0 -26
- package/src/core/utils/handleRequest.test.ts +0 -574
- package/src/core/utils/handleRequest.ts +0 -117
- package/src/core/utils/internal/checkGlobals.ts +0 -17
- package/src/core/utils/internal/isHandlerKind.test.ts +0 -62
- package/src/core/utils/internal/isHandlerKind.ts +0 -17
- package/src/core/utils/internal/isIterable.ts +0 -32
- package/src/core/utils/internal/mergeRight.test.ts +0 -43
- package/src/core/utils/internal/mergeRight.ts +0 -30
- package/src/core/utils/internal/pipeEvents.test.ts +0 -14
- package/src/core/utils/internal/pipeEvents.ts +0 -26
- package/src/core/utils/internal/tryCatch.test.ts +0 -29
- package/src/core/utils/internal/tryCatch.ts +0 -11
- package/src/core/utils/matching/matchRequestUrl.test.ts +0 -267
- package/src/core/utils/matching/matchRequestUrl.ts +0 -77
- package/src/core/utils/request/getRequestCookies.ts +0 -88
- package/src/core/utils/request/onUnhandledRequest.node.test.ts +0 -62
- package/src/core/utils/request/onUnhandledRequest.test.ts +0 -226
- package/src/core/utils/request/onUnhandledRequest.ts +0 -81
- package/src/core/utils/request/storeResponseCookies.ts +0 -15
- package/src/core/utils/url/cleanUrl.test.ts +0 -22
- package/src/core/utils/url/cleanUrl.ts +0 -16
- package/src/core/utils/url/isAbsoluteUrl.test.ts +0 -32
- package/src/core/ws/handleWebSocketEvent.ts +0 -68
- package/src/core/ws/utils/getPublicData.ts +0 -18
- package/src/core/ws/webSocketInterceptor.ts +0 -3
- package/src/native/index.ts +0 -44
- package/src/package.json +0 -3
- package/src/shims/cookie.ts +0 -7
- package/src/shims/statuses.ts +0 -6
- /package/src/browser/utils/{getAbsoluteWorkerUrl.ts → get-absolute-worker-url.ts} +0 -0
- /package/src/core/utils/internal/{devUtils.ts → dev-utils.ts} +0 -0
- /package/src/core/utils/internal/{isObject.ts → is-object.ts} +0 -0
- /package/src/core/utils/internal/{isStringEqual.ts → is-string-equal.ts} +0 -0
- /package/src/core/utils/internal/{jsonParse.ts → json-parse.ts} +0 -0
- /package/src/core/utils/internal/{toReadonlyArray.ts → to-readonly-array.ts} +0 -0
- /package/src/core/utils/logging/{getStatusCodeColor.ts → get-status-code-color.ts} +0 -0
- /package/src/core/utils/logging/{getTimestamp.ts → get-timestamp.ts} +0 -0
- /package/src/core/utils/logging/{serializeRequest.ts → serialize-request.ts} +0 -0
- /package/src/core/utils/request/{getAllAcceptedMimeTypes.ts → get-all-accepted-mime-types.ts} +0 -0
- /package/src/core/utils/request/{toPublicUrl.ts → to-public-url.ts} +0 -0
- /package/src/core/utils/{toResponseInit.ts → to-response-init.ts} +0 -0
- /package/src/core/utils/url/{isAbsoluteUrl.ts → is-absolute-url.ts} +0 -0
- /package/src/{core → http}/http.test.ts +0 -0
- /package/src/{core/ws/utils/truncateMessage.ts → ws/utils/truncate-message.ts} +0 -0
|
@@ -0,0 +1,756 @@
|
|
|
1
|
+
import { m as devUtils, p as InternalError, r as toPublicUrl, t as cookieStore, u as getRawSetCookie } from "./cookie-store.js";
|
|
2
|
+
import { n as getSiblingHandlers, o as kAutoConnect, r as isSiblingHandler, s as kConnect } from "./attach-sibling-handlers.js";
|
|
3
|
+
import { t as executeHandlers } from "./execute-handlers.js";
|
|
4
|
+
import { isPassthroughResponse } from "../utils/passthrough.js";
|
|
5
|
+
import { isCommonAssetRequest } from "../utils/is-common-asset-request.js";
|
|
6
|
+
import { invariant } from "outvariant";
|
|
7
|
+
import { BatchInterceptor, createRequestId } from "@mswjs/interceptors";
|
|
8
|
+
import { Emitter, TypedEvent } from "rettime";
|
|
9
|
+
import { until } from "until-async";
|
|
10
|
+
//#region src/core/experimental/sources/network-source.ts
|
|
11
|
+
var NetworkFrameEvent = class extends TypedEvent {
|
|
12
|
+
frame;
|
|
13
|
+
constructor(type, frame) {
|
|
14
|
+
super(...[type, {}]);
|
|
15
|
+
this.frame = frame;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
var NetworkSource = class {
|
|
19
|
+
emitter;
|
|
20
|
+
constructor() {
|
|
21
|
+
this.emitter = new Emitter();
|
|
22
|
+
}
|
|
23
|
+
async queue(frame) {
|
|
24
|
+
await this.emitter.emitAsPromise(new NetworkFrameEvent("frame", frame));
|
|
25
|
+
}
|
|
26
|
+
on(type, listener, options) {
|
|
27
|
+
this.emitter.on(type, listener, options);
|
|
28
|
+
}
|
|
29
|
+
disable() {
|
|
30
|
+
this.emitter.removeAllListeners();
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/core/experimental/handlers-controller.ts
|
|
35
|
+
function addHandlerToGroup(groups, kind, handler) {
|
|
36
|
+
(groups[kind] ||= []).push(handler);
|
|
37
|
+
}
|
|
38
|
+
function prependHandlersToGroup(groups, kind, overridesForKind) {
|
|
39
|
+
const existingForKind = groups[kind];
|
|
40
|
+
groups[kind] = existingForKind ? [...overridesForKind, ...existingForKind.filter((existingHandler) => {
|
|
41
|
+
return !overridesForKind.includes(existingHandler);
|
|
42
|
+
})] : overridesForKind;
|
|
43
|
+
}
|
|
44
|
+
function groupHandlersByKind(handlers) {
|
|
45
|
+
const groups = {};
|
|
46
|
+
const visitedHandlers = /* @__PURE__ */ new Set();
|
|
47
|
+
const visit = (handler) => {
|
|
48
|
+
if (visitedHandlers.has(handler)) return;
|
|
49
|
+
visitedHandlers.add(handler);
|
|
50
|
+
addHandlerToGroup(groups, handler.kind, handler);
|
|
51
|
+
for (const sibling of getSiblingHandlers(handler)) visit(sibling);
|
|
52
|
+
};
|
|
53
|
+
for (const handler of handlers) visit(handler);
|
|
54
|
+
return groups;
|
|
55
|
+
}
|
|
56
|
+
var HandlersController = class {
|
|
57
|
+
getInitialState(initialHandlers) {
|
|
58
|
+
invariant(this.#validateHandlers(initialHandlers), devUtils.formatMessage("Failed to apply given request handlers: invalid input. Did you forget to spread the request handlers Array?"));
|
|
59
|
+
const normalizedInitialHandlers = groupHandlersByKind(initialHandlers);
|
|
60
|
+
return {
|
|
61
|
+
initialHandlers: normalizedInitialHandlers,
|
|
62
|
+
handlers: { ...normalizedInitialHandlers }
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
currentHandlers() {
|
|
66
|
+
return Object.values(this.getState().handlers).flat().filter((handler) => handler != null);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Return the list of explicitly registered handlers.
|
|
70
|
+
* Unlike `currentHandlers()`, this excludes sibling handlers,
|
|
71
|
+
* which are an implementation detail (e.g. the WebSocket upgrade
|
|
72
|
+
* handler or the GraphQL subscription transport).
|
|
73
|
+
*/
|
|
74
|
+
listHandlers() {
|
|
75
|
+
return this.currentHandlers().filter((handler) => {
|
|
76
|
+
return !isSiblingHandler(handler);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Return the list of handlers of the given kind.
|
|
81
|
+
*/
|
|
82
|
+
getHandlersByKind(kind) {
|
|
83
|
+
return this.getState().handlers[kind] || [];
|
|
84
|
+
}
|
|
85
|
+
use(nextHandlers) {
|
|
86
|
+
invariant(this.#validateHandlers(nextHandlers), devUtils.formatMessage("[MSW] Failed to call \"use()\" with the given request handlers: invalid input. Did you forget to spread the array of request handlers?"));
|
|
87
|
+
if (nextHandlers.length === 0) return;
|
|
88
|
+
const { handlers } = this.getState();
|
|
89
|
+
const overrides = groupHandlersByKind(nextHandlers);
|
|
90
|
+
if (overrides.request) prependHandlersToGroup(handlers, "request", overrides.request);
|
|
91
|
+
if (overrides.websocket) prependHandlersToGroup(handlers, "websocket", overrides.websocket);
|
|
92
|
+
this.setState({ handlers });
|
|
93
|
+
}
|
|
94
|
+
reset(nextHandlers) {
|
|
95
|
+
invariant(nextHandlers.length > 0 ? this.#validateHandlers(nextHandlers) : true, devUtils.formatMessage("Failed to replace initial handlers during reset: invalid handlers. Did you forget to spread the handlers array?"));
|
|
96
|
+
for (const handler of this.currentHandlers()) handler.reset();
|
|
97
|
+
const { initialHandlers } = this.getState();
|
|
98
|
+
if (nextHandlers.length === 0) {
|
|
99
|
+
this.setState({ handlers: { ...initialHandlers } });
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const normalizedNextHandlers = groupHandlersByKind(nextHandlers);
|
|
103
|
+
this.setState({
|
|
104
|
+
initialHandlers: normalizedNextHandlers,
|
|
105
|
+
handlers: { ...normalizedNextHandlers }
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
restore() {
|
|
109
|
+
for (const handler of this.currentHandlers()) handler.restore();
|
|
110
|
+
}
|
|
111
|
+
dispose() {
|
|
112
|
+
const pendingDisposals = [];
|
|
113
|
+
for (const handler of this.currentHandlers()) {
|
|
114
|
+
const disposal = handler.dispose();
|
|
115
|
+
if (disposal instanceof Promise) pendingDisposals.push(disposal);
|
|
116
|
+
}
|
|
117
|
+
if (pendingDisposals.length > 0) return Promise.all(pendingDisposals).then(() => {});
|
|
118
|
+
}
|
|
119
|
+
#validateHandlers(handlers) {
|
|
120
|
+
return handlers.every((handler) => !Array.isArray(handler));
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
var InMemoryHandlersController = class extends HandlersController {
|
|
124
|
+
#handlers;
|
|
125
|
+
#initialHandlers;
|
|
126
|
+
constructor(initialHandlers) {
|
|
127
|
+
super();
|
|
128
|
+
const initialState = this.getInitialState(initialHandlers);
|
|
129
|
+
this.#initialHandlers = initialState.initialHandlers;
|
|
130
|
+
this.#handlers = initialState.handlers;
|
|
131
|
+
}
|
|
132
|
+
getState() {
|
|
133
|
+
return {
|
|
134
|
+
initialHandlers: this.#initialHandlers,
|
|
135
|
+
handlers: this.#handlers
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
setState(nextState) {
|
|
139
|
+
if (nextState.initialHandlers) this.#initialHandlers = nextState.initialHandlers;
|
|
140
|
+
if (nextState.handlers) this.#handlers = nextState.handlers;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
//#endregion
|
|
144
|
+
//#region src/core/utils/internal/to-readonly-array.ts
|
|
145
|
+
/**
|
|
146
|
+
* Creates an immutable copy of the given array.
|
|
147
|
+
*/
|
|
148
|
+
function toReadonlyArray(source) {
|
|
149
|
+
const clone = [...source];
|
|
150
|
+
Object.freeze(clone);
|
|
151
|
+
return clone;
|
|
152
|
+
}
|
|
153
|
+
//#endregion
|
|
154
|
+
//#region src/core/utils/internal/disposable.ts
|
|
155
|
+
var Disposable = class {
|
|
156
|
+
subscriptions = [];
|
|
157
|
+
dispose() {
|
|
158
|
+
let subscription;
|
|
159
|
+
const errors = [];
|
|
160
|
+
while (subscription = this.subscriptions.shift()) try {
|
|
161
|
+
subscription();
|
|
162
|
+
} catch (error) {
|
|
163
|
+
if (error instanceof Error) errors.push(error);
|
|
164
|
+
}
|
|
165
|
+
if (errors.length > 0) console.error(new AggregateError(errors, devUtils.formatMessage("Failed to dispose of some side effects. This is likely an issue with MSW, please report it on GitHub: https://github.com/mswjs/msw/issues")));
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/core/experimental/define-network.ts
|
|
170
|
+
function colorlessPromiseAll(values) {
|
|
171
|
+
const promises = [];
|
|
172
|
+
for (const value of values) if (value instanceof Promise) promises.push(value);
|
|
173
|
+
if (promises.length > 0) return Promise.all(promises).then(() => {});
|
|
174
|
+
}
|
|
175
|
+
let NetworkReadyState = /* @__PURE__ */ function(NetworkReadyState) {
|
|
176
|
+
NetworkReadyState[NetworkReadyState["DISABLED"] = 0] = "DISABLED";
|
|
177
|
+
NetworkReadyState[NetworkReadyState["ENABLED"] = 1] = "ENABLED";
|
|
178
|
+
return NetworkReadyState;
|
|
179
|
+
}({});
|
|
180
|
+
/**
|
|
181
|
+
* Define a network instance with the given configuration.
|
|
182
|
+
* @example
|
|
183
|
+
* import { InterceptorSource } from 'msw/experimental'
|
|
184
|
+
* import { handlers } from './handlers'
|
|
185
|
+
*
|
|
186
|
+
* const network = defineNetwork({
|
|
187
|
+
* sources: [new InterceptorSource({ interceptors })],
|
|
188
|
+
* handlers,
|
|
189
|
+
* })
|
|
190
|
+
* await network.enable()
|
|
191
|
+
*/
|
|
192
|
+
function defineNetwork(options) {
|
|
193
|
+
let readyState = 0;
|
|
194
|
+
const events = new Emitter();
|
|
195
|
+
const disposable = new Disposable();
|
|
196
|
+
const deriveHandlersController = (handlers) => {
|
|
197
|
+
return handlers instanceof HandlersController ? handlers : new InMemoryHandlersController(handlers || []);
|
|
198
|
+
};
|
|
199
|
+
let resolvedOptions = { ...options };
|
|
200
|
+
/**
|
|
201
|
+
* @note Create the handlers controller immediately because
|
|
202
|
+
* certain setup APIs, like `setupServer`, don't await `.enable` (`.listen`).
|
|
203
|
+
*/
|
|
204
|
+
let handlersController = deriveHandlersController(resolvedOptions.handlers);
|
|
205
|
+
return {
|
|
206
|
+
get readyState() {
|
|
207
|
+
return readyState;
|
|
208
|
+
},
|
|
209
|
+
events,
|
|
210
|
+
configure(options) {
|
|
211
|
+
invariant(readyState === 0, "Failed to call \"configure()\" on the network: cannot configure an already enabled network.");
|
|
212
|
+
if (options.handlers && !Object.is(options.handlers, resolvedOptions.handlers)) handlersController = deriveHandlersController(options.handlers);
|
|
213
|
+
resolvedOptions = {
|
|
214
|
+
...resolvedOptions,
|
|
215
|
+
...options
|
|
216
|
+
};
|
|
217
|
+
},
|
|
218
|
+
enable() {
|
|
219
|
+
invariant(readyState === 0, "Failed to call \"enable\" on the network: already enabled");
|
|
220
|
+
readyState = 1;
|
|
221
|
+
/**
|
|
222
|
+
* @note Use a session object scoped to the current "enable()"
|
|
223
|
+
* to prevent "frame.events" listeners from surviving across enable/disable cycles.
|
|
224
|
+
* @see The note about `AbortController` below.
|
|
225
|
+
*/
|
|
226
|
+
const session = { active: true };
|
|
227
|
+
disposable["subscriptions"].push(() => {
|
|
228
|
+
session.active = false;
|
|
229
|
+
});
|
|
230
|
+
return colorlessPromiseAll(resolvedOptions.sources.map((source) => {
|
|
231
|
+
/**
|
|
232
|
+
* @note Preemptively disable the network source before enabling.
|
|
233
|
+
* This intentionally calls only the prototype method that clears the
|
|
234
|
+
* event listeners and nothing else. This prevents the "frame" listeners
|
|
235
|
+
* from accumulating across enable/disable in case the source is a singleton.
|
|
236
|
+
*/
|
|
237
|
+
NetworkSource.prototype.disable.call(source);
|
|
238
|
+
source.on("frame", async ({ frame }) => {
|
|
239
|
+
frame.events.on("*", (event) => {
|
|
240
|
+
/**
|
|
241
|
+
* @note Prevent event forwarding manually and not via an AbortController
|
|
242
|
+
* because certain runtimes, like Cloudflare, throw when referencing an
|
|
243
|
+
* AbortController created in a different context. Bear in mind that the frame
|
|
244
|
+
* events run in the patched request client context while the AbortController
|
|
245
|
+
* is created outside, in the "defineNetwork" closure, which is a test context.
|
|
246
|
+
*/
|
|
247
|
+
if (!session.active) return;
|
|
248
|
+
events.emit(event);
|
|
249
|
+
});
|
|
250
|
+
const handlers = frame.getHandlers(handlersController);
|
|
251
|
+
await frame.resolve(handlers, resolvedOptions.onUnhandledFrame || "warn", resolvedOptions.context);
|
|
252
|
+
});
|
|
253
|
+
return source.enable();
|
|
254
|
+
}));
|
|
255
|
+
},
|
|
256
|
+
disable() {
|
|
257
|
+
invariant(readyState === 1, "Failed to call \"disable\" on the network: already disabled");
|
|
258
|
+
readyState = 0;
|
|
259
|
+
const handlersDisposal = handlersController.dispose();
|
|
260
|
+
disposable.dispose();
|
|
261
|
+
/**
|
|
262
|
+
* @note Tear down the sources synchronously, never behind the
|
|
263
|
+
* handlers disposal. `disable()` is not always awaited (e.g.
|
|
264
|
+
* `server.close()` is synchronous), and a deferred teardown would
|
|
265
|
+
* race any `enable()` that follows, disabling the sources that the
|
|
266
|
+
* new session has just enabled.
|
|
267
|
+
*/
|
|
268
|
+
const sourcesDisposal = colorlessPromiseAll(resolvedOptions.sources.map((source) => source.disable()));
|
|
269
|
+
/**
|
|
270
|
+
* @note Await both disposals so neither rejection goes unobserved.
|
|
271
|
+
* Chaining them would leave the source disposal floating whenever
|
|
272
|
+
* the handlers disposal rejects.
|
|
273
|
+
*/
|
|
274
|
+
return handlersDisposal instanceof Promise ? Promise.all([handlersDisposal, sourcesDisposal]).then(() => {}) : sourcesDisposal;
|
|
275
|
+
},
|
|
276
|
+
use(...handlers) {
|
|
277
|
+
handlersController.use(handlers);
|
|
278
|
+
},
|
|
279
|
+
resetHandlers(...handlers) {
|
|
280
|
+
handlersController.reset(handlers);
|
|
281
|
+
},
|
|
282
|
+
restoreHandlers() {
|
|
283
|
+
handlersController.restore();
|
|
284
|
+
},
|
|
285
|
+
listHandlers() {
|
|
286
|
+
return toReadonlyArray(handlersController.listHandlers());
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
//#endregion
|
|
291
|
+
//#region src/core/experimental/frames/network-frame.ts
|
|
292
|
+
/**
|
|
293
|
+
* The base for the network frames. Extend this abstract class
|
|
294
|
+
* to implement custom network frames.
|
|
295
|
+
*/
|
|
296
|
+
var NetworkFrame = class {
|
|
297
|
+
protocol;
|
|
298
|
+
data;
|
|
299
|
+
events;
|
|
300
|
+
constructor(protocol, data) {
|
|
301
|
+
this.protocol = protocol;
|
|
302
|
+
this.data = data;
|
|
303
|
+
this.events = new Emitter();
|
|
304
|
+
}
|
|
305
|
+
};
|
|
306
|
+
//#endregion
|
|
307
|
+
//#region src/core/utils/request/store-response-cookies.ts
|
|
308
|
+
async function storeResponseCookies(request, response) {
|
|
309
|
+
if (cookieStore === null) return;
|
|
310
|
+
for (const responseCookie of getRawSetCookie(response)) await cookieStore.setCookie(responseCookie, request.url);
|
|
311
|
+
}
|
|
312
|
+
//#endregion
|
|
313
|
+
//#region src/core/experimental/request-utils.ts
|
|
314
|
+
function shouldBypassRequest(request) {
|
|
315
|
+
return !!request.headers.get("accept")?.includes("msw/passthrough");
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Remove the internal passthrough instruction from the request's `Accept` header.
|
|
319
|
+
*/
|
|
320
|
+
function deleteRequestPassthroughHeader(request) {
|
|
321
|
+
const acceptHeader = request.headers.get("accept");
|
|
322
|
+
/**
|
|
323
|
+
* @note Remove the internal bypass request header.
|
|
324
|
+
* In the browser, this is done by the worker script.
|
|
325
|
+
* In Node.js, it has to be done here.
|
|
326
|
+
*/
|
|
327
|
+
if (acceptHeader) {
|
|
328
|
+
const nextAcceptHeader = acceptHeader.replace(/(,\s+)?msw\/passthrough/, "");
|
|
329
|
+
if (nextAcceptHeader) request.headers.set("accept", nextAcceptHeader);
|
|
330
|
+
else request.headers.delete("accept");
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
//#endregion
|
|
334
|
+
//#region src/core/experimental/on-unhandled-frame.ts
|
|
335
|
+
async function executeUnhandledFrameHandle(frame, handle) {
|
|
336
|
+
const printStrategyMessage = async (strategy) => {
|
|
337
|
+
if (strategy === "bypass") return;
|
|
338
|
+
const message = await frame.getUnhandledMessage();
|
|
339
|
+
switch (strategy) {
|
|
340
|
+
case "warn": return devUtils.warn("Warning: %s", message);
|
|
341
|
+
case "error": return devUtils.error("Error: %s", message);
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
const applyStrategy = async (strategy) => {
|
|
345
|
+
invariant.as(InternalError, strategy === "bypass" || strategy === "warn" || strategy === "error", devUtils.formatMessage("Failed to react to an unhandled network frame: unknown strategy \"%s\". Please provide one of the supported strategies (\"bypass\", \"warn\", \"error\") or a custom callback function as the value of the \"onUnhandledFrame\" option.", strategy));
|
|
346
|
+
if (strategy === "bypass") return;
|
|
347
|
+
await printStrategyMessage(strategy);
|
|
348
|
+
if (strategy === "error") return Promise.reject(new InternalError(devUtils.formatMessage("Cannot bypass a request when using the \"error\" strategy for the \"onUnhandledFrame\" option.")));
|
|
349
|
+
};
|
|
350
|
+
if (typeof handle === "function") return handle({
|
|
351
|
+
frame,
|
|
352
|
+
defaults: {
|
|
353
|
+
warn: printStrategyMessage.bind(null, "warn"),
|
|
354
|
+
/**
|
|
355
|
+
* @note The defaults only print the corresponding messages now.
|
|
356
|
+
* They do not affect the frame resolution (e.g. do not error the frame).
|
|
357
|
+
* That is only for backward compatibility reasons. In the future, these should
|
|
358
|
+
* be an alias to `applyStrategy.bind(null, 'error')` instead.
|
|
359
|
+
*/
|
|
360
|
+
error: printStrategyMessage.bind(null, "error")
|
|
361
|
+
}
|
|
362
|
+
});
|
|
363
|
+
/**
|
|
364
|
+
* Ignore unhandled common HTTP assets.
|
|
365
|
+
* @note Calling this here applies the common assets check
|
|
366
|
+
* only to the scenarios when `onUnhandledFrame` was set to a predefined strategy.
|
|
367
|
+
* When using a custom function, you need to check for common assets manually.
|
|
368
|
+
*/
|
|
369
|
+
if (frame instanceof HttpNetworkFrame && isCommonAssetRequest(frame.data.request)) return;
|
|
370
|
+
return applyStrategy(handle);
|
|
371
|
+
}
|
|
372
|
+
//#endregion
|
|
373
|
+
//#region src/core/experimental/frames/http-frame.ts
|
|
374
|
+
var RequestEvent = class extends TypedEvent {
|
|
375
|
+
requestId;
|
|
376
|
+
request;
|
|
377
|
+
constructor(type, data) {
|
|
378
|
+
super(...[type, {}]);
|
|
379
|
+
this.requestId = data.requestId;
|
|
380
|
+
this.request = data.request;
|
|
381
|
+
}
|
|
382
|
+
};
|
|
383
|
+
var ResponseEvent = class extends TypedEvent {
|
|
384
|
+
requestId;
|
|
385
|
+
request;
|
|
386
|
+
response;
|
|
387
|
+
constructor(type, data) {
|
|
388
|
+
super(...[type, {}]);
|
|
389
|
+
this.requestId = data.requestId;
|
|
390
|
+
this.request = data.request;
|
|
391
|
+
this.response = data.response;
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
var UnhandledExceptionEvent = class extends TypedEvent {
|
|
395
|
+
error;
|
|
396
|
+
requestId;
|
|
397
|
+
request;
|
|
398
|
+
constructor(type, data) {
|
|
399
|
+
super(...[type, {}]);
|
|
400
|
+
this.error = data.error;
|
|
401
|
+
this.requestId = data.requestId;
|
|
402
|
+
this.request = data.request;
|
|
403
|
+
}
|
|
404
|
+
};
|
|
405
|
+
var HttpNetworkFrame = class extends NetworkFrame {
|
|
406
|
+
constructor(options) {
|
|
407
|
+
const id = options.id || createRequestId();
|
|
408
|
+
super("http", {
|
|
409
|
+
id,
|
|
410
|
+
request: options.request
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
getHandlers(controller) {
|
|
414
|
+
return controller.getHandlersByKind("request");
|
|
415
|
+
}
|
|
416
|
+
async getUnhandledMessage() {
|
|
417
|
+
const { request } = this.data;
|
|
418
|
+
const url = new URL(request.url);
|
|
419
|
+
const publicUrl = toPublicUrl(url) + url.search;
|
|
420
|
+
const requestBody = request.body == null ? null : await request.clone().text();
|
|
421
|
+
return `intercepted a request without a matching request handler:${`\n\n \u2022 ${request.method} ${publicUrl}\n\n${requestBody ? ` \u2022 Request body: ${requestBody}\n\n` : ""}`}If you still wish to intercept this unhandled request, please create a request handler for it.\nRead more: https://mswjs.io/docs/http/intercepting-requests`;
|
|
422
|
+
}
|
|
423
|
+
async resolve(handlers, onUnhandledFrame, resolutionContext) {
|
|
424
|
+
const { id: requestId, request } = this.data;
|
|
425
|
+
const requestCloneForLogs = resolutionContext?.quiet ? null : request.clone();
|
|
426
|
+
this.events.emit(new RequestEvent("request:start", {
|
|
427
|
+
requestId,
|
|
428
|
+
request
|
|
429
|
+
}));
|
|
430
|
+
if (shouldBypassRequest(request)) {
|
|
431
|
+
this.events.emit(new RequestEvent("request:end", {
|
|
432
|
+
requestId,
|
|
433
|
+
request
|
|
434
|
+
}));
|
|
435
|
+
this.passthrough();
|
|
436
|
+
return null;
|
|
437
|
+
}
|
|
438
|
+
const [lookupError, lookupResult] = await until(() => {
|
|
439
|
+
return executeHandlers({
|
|
440
|
+
requestId,
|
|
441
|
+
request,
|
|
442
|
+
handlers,
|
|
443
|
+
resolutionContext: {
|
|
444
|
+
baseUrl: resolutionContext?.baseUrl?.toString(),
|
|
445
|
+
quiet: resolutionContext?.quiet
|
|
446
|
+
}
|
|
447
|
+
});
|
|
448
|
+
});
|
|
449
|
+
if (lookupError != null) {
|
|
450
|
+
if (!this.events.emit(new UnhandledExceptionEvent("unhandledException", {
|
|
451
|
+
error: lookupError,
|
|
452
|
+
requestId,
|
|
453
|
+
request
|
|
454
|
+
}))) {
|
|
455
|
+
console.error(lookupError);
|
|
456
|
+
devUtils.error("Encountered an unhandled exception during the handler lookup for \"%s %s\". Please see the original error above.", request.method, request.url);
|
|
457
|
+
}
|
|
458
|
+
this.errorWith(lookupError);
|
|
459
|
+
return null;
|
|
460
|
+
}
|
|
461
|
+
if (lookupResult == null) {
|
|
462
|
+
this.events.emit(new RequestEvent("request:unhandled", {
|
|
463
|
+
requestId,
|
|
464
|
+
request
|
|
465
|
+
}));
|
|
466
|
+
/**
|
|
467
|
+
* @note The unhandled frame handle must be executed during the request resolution
|
|
468
|
+
* since it can influence it (e.g. error the request if the "error" startegy was used).
|
|
469
|
+
*/
|
|
470
|
+
await executeUnhandledFrameHandle(this, onUnhandledFrame).then(() => this.passthrough(), (error) => this.errorWith(error));
|
|
471
|
+
this.events.emit(new RequestEvent("request:end", {
|
|
472
|
+
requestId,
|
|
473
|
+
request
|
|
474
|
+
}));
|
|
475
|
+
return false;
|
|
476
|
+
}
|
|
477
|
+
const { response, handler, parsedResult } = lookupResult;
|
|
478
|
+
this.events.emit(new RequestEvent("request:match", {
|
|
479
|
+
requestId,
|
|
480
|
+
request
|
|
481
|
+
}));
|
|
482
|
+
if (response == null) {
|
|
483
|
+
this.events.emit(new RequestEvent("request:end", {
|
|
484
|
+
requestId,
|
|
485
|
+
request
|
|
486
|
+
}));
|
|
487
|
+
this.passthrough();
|
|
488
|
+
return null;
|
|
489
|
+
}
|
|
490
|
+
if (isPassthroughResponse(response)) {
|
|
491
|
+
this.events.emit(new RequestEvent("request:end", {
|
|
492
|
+
requestId,
|
|
493
|
+
request
|
|
494
|
+
}));
|
|
495
|
+
this.passthrough();
|
|
496
|
+
return null;
|
|
497
|
+
}
|
|
498
|
+
const responseCloneForLogs = resolutionContext?.quiet ? null : response.clone();
|
|
499
|
+
await storeResponseCookies(request, response);
|
|
500
|
+
this.respondWith(response);
|
|
501
|
+
this.events.emit(new RequestEvent("request:end", {
|
|
502
|
+
requestId,
|
|
503
|
+
request
|
|
504
|
+
}));
|
|
505
|
+
if (!resolutionContext?.quiet) handler.log({
|
|
506
|
+
request: requestCloneForLogs,
|
|
507
|
+
response: responseCloneForLogs,
|
|
508
|
+
parsedResult
|
|
509
|
+
});
|
|
510
|
+
return true;
|
|
511
|
+
}
|
|
512
|
+
};
|
|
513
|
+
//#endregion
|
|
514
|
+
//#region src/core/experimental/frames/websocket-frame.ts
|
|
515
|
+
var WebSocketConnectionEvent = class extends TypedEvent {
|
|
516
|
+
url;
|
|
517
|
+
protocols;
|
|
518
|
+
constructor(type, data) {
|
|
519
|
+
super(...[type, {}]);
|
|
520
|
+
this.url = data.url;
|
|
521
|
+
this.protocols = data.protocols;
|
|
522
|
+
}
|
|
523
|
+
};
|
|
524
|
+
var WebSocketErrorEvent = class extends WebSocketConnectionEvent {
|
|
525
|
+
error;
|
|
526
|
+
constructor(type, data) {
|
|
527
|
+
super(type, data);
|
|
528
|
+
this.error = data.error;
|
|
529
|
+
}
|
|
530
|
+
};
|
|
531
|
+
var WebSocketNetworkFrame = class extends NetworkFrame {
|
|
532
|
+
constructor(options) {
|
|
533
|
+
super("ws", { connection: options.connection });
|
|
534
|
+
}
|
|
535
|
+
getHandlers(controller) {
|
|
536
|
+
return controller.getHandlersByKind("websocket");
|
|
537
|
+
}
|
|
538
|
+
async resolve(handlers, onUnhandledFrame, resolutionContext) {
|
|
539
|
+
const { connection } = this.data;
|
|
540
|
+
this.events.emit(new WebSocketConnectionEvent("websocket:connection", {
|
|
541
|
+
url: connection.client.url,
|
|
542
|
+
protocols: connection.info.protocols
|
|
543
|
+
}));
|
|
544
|
+
const handleSocketError = (event) => {
|
|
545
|
+
this.events.emit(new WebSocketErrorEvent("websocket:error", {
|
|
546
|
+
url: connection.client.url,
|
|
547
|
+
protocols: connection.info.protocols,
|
|
548
|
+
error: getErrorFromEvent(event)
|
|
549
|
+
}));
|
|
550
|
+
};
|
|
551
|
+
connection.client.socket.addEventListener("error", handleSocketError);
|
|
552
|
+
connection.client.socket.addEventListener("close", () => {
|
|
553
|
+
connection.client.socket.removeEventListener("error", handleSocketError);
|
|
554
|
+
}, { once: true });
|
|
555
|
+
if (handlers.length === 0) {
|
|
556
|
+
await executeUnhandledFrameHandle(this, onUnhandledFrame).then(() => this.passthrough(), (error) => this.errorWith(error));
|
|
557
|
+
return false;
|
|
558
|
+
}
|
|
559
|
+
let hasMatchingHandlers = false;
|
|
560
|
+
for (const handler of handlers) {
|
|
561
|
+
const handlerConnection = await handler.run(connection, {
|
|
562
|
+
baseUrl: resolutionContext?.baseUrl?.toString(),
|
|
563
|
+
/**
|
|
564
|
+
* @note Expose an emit-only reference to this frame's events
|
|
565
|
+
* so the handlers can emit additional events not covered by
|
|
566
|
+
* the frame (e.g. "graphql:subscription").
|
|
567
|
+
*/
|
|
568
|
+
events: this.events,
|
|
569
|
+
/**
|
|
570
|
+
* @note Do not emit the handler's "connection" event when running the handler.
|
|
571
|
+
* Use the run only to get the resolved connection object.
|
|
572
|
+
*/
|
|
573
|
+
[kAutoConnect]: false
|
|
574
|
+
});
|
|
575
|
+
if (!handlerConnection) continue;
|
|
576
|
+
hasMatchingHandlers = true;
|
|
577
|
+
/**
|
|
578
|
+
* @note Attach the WebSocket logger *before* emitting the handler's "connection" event.
|
|
579
|
+
* Connection event listeners may perform actions that should be reflected in the logs
|
|
580
|
+
* (e.g. closing the connection immediately). If the logger is attached after the connection,
|
|
581
|
+
* those actions cannot be properly logged.
|
|
582
|
+
*/
|
|
583
|
+
const removeLogger = !resolutionContext?.quiet ? handler.log(connection) : void 0;
|
|
584
|
+
try {
|
|
585
|
+
if (!handler[kConnect](handlerConnection)) removeLogger?.();
|
|
586
|
+
} catch (error) {
|
|
587
|
+
if (!this.events.emit(new WebSocketErrorEvent("unhandledException", {
|
|
588
|
+
error,
|
|
589
|
+
url: connection.client.url,
|
|
590
|
+
protocols: connection.info.protocols
|
|
591
|
+
}))) {
|
|
592
|
+
console.error(error);
|
|
593
|
+
devUtils.error("Encountered an unhandled exception during the handler lookup for \"%s\". Please see the original error above.", connection.client.url);
|
|
594
|
+
}
|
|
595
|
+
/**
|
|
596
|
+
* @note Throw the caught error so it gets picked up by WebSocketInterceptor.
|
|
597
|
+
* It's the interceptor who translates handler errors to WebSocket closures.
|
|
598
|
+
*/
|
|
599
|
+
throw error;
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
if (!hasMatchingHandlers) {
|
|
603
|
+
await executeUnhandledFrameHandle(this, onUnhandledFrame).then(() => this.passthrough(), (error) => this.errorWith(error));
|
|
604
|
+
return false;
|
|
605
|
+
}
|
|
606
|
+
return true;
|
|
607
|
+
}
|
|
608
|
+
async getUnhandledMessage() {
|
|
609
|
+
const { connection } = this.data;
|
|
610
|
+
return `intercepted a WebSocket connection without a matching event handler:${`\n\n \u2022 ${connection.client.url}\n\n`}If you still wish to intercept this unhandled connection, please create an event handler for it.\nRead more: https://mswjs.io/docs/websocket`;
|
|
611
|
+
}
|
|
612
|
+
};
|
|
613
|
+
/**
|
|
614
|
+
* Extract the error from the given "error" event, if any.
|
|
615
|
+
* Supports both the `ErrorEvent.error` property and the `cause`
|
|
616
|
+
* property that MSW sets when erroring the connection itself.
|
|
617
|
+
*/
|
|
618
|
+
function getErrorFromEvent(event) {
|
|
619
|
+
if ("error" in event && event.error != null) return event.error;
|
|
620
|
+
if ("cause" in event && event.cause != null) return event.cause;
|
|
621
|
+
}
|
|
622
|
+
//#endregion
|
|
623
|
+
//#region src/core/experimental/sources/interceptor-source.ts
|
|
624
|
+
/**
|
|
625
|
+
* Create a network source from the given list of interceptors.
|
|
626
|
+
*/
|
|
627
|
+
var InterceptorSource = class extends NetworkSource {
|
|
628
|
+
#interceptor;
|
|
629
|
+
/**
|
|
630
|
+
* @note Frames are keyed by the request instance, not the request ID.
|
|
631
|
+
* The interceptor emits the same request instance on the "request"
|
|
632
|
+
* and "response" events, so the frame can be looked up by identity.
|
|
633
|
+
* A weak reference lets the frame be garbage collected alongside
|
|
634
|
+
* its request once the request settles without producing a response
|
|
635
|
+
* (e.g. a passthrough request failing with a network error).
|
|
636
|
+
* @see https://github.com/mswjs/msw/issues/2792
|
|
637
|
+
*/
|
|
638
|
+
#frames;
|
|
639
|
+
constructor(options) {
|
|
640
|
+
super();
|
|
641
|
+
this.#interceptor = new BatchInterceptor({
|
|
642
|
+
name: "interceptor-source",
|
|
643
|
+
interceptors: options.interceptors
|
|
644
|
+
});
|
|
645
|
+
this.#frames = /* @__PURE__ */ new WeakMap();
|
|
646
|
+
}
|
|
647
|
+
enable() {
|
|
648
|
+
this.#interceptor.apply();
|
|
649
|
+
this.#interceptor.on("request", this.#handleRequest.bind(this)).on("response", this.#handleResponse.bind(this)).on("connection", this.#handleWebSocketConnection.bind(this));
|
|
650
|
+
}
|
|
651
|
+
disable() {
|
|
652
|
+
super.disable();
|
|
653
|
+
this.#interceptor.dispose();
|
|
654
|
+
/**
|
|
655
|
+
* @todo We can also abort any pending frames here, given we implement
|
|
656
|
+
* the `NetworkFrame.abort()` method.
|
|
657
|
+
*/
|
|
658
|
+
this.#frames = /* @__PURE__ */ new WeakMap();
|
|
659
|
+
}
|
|
660
|
+
async #handleRequest(event) {
|
|
661
|
+
const { requestId, request, controller } = event;
|
|
662
|
+
const httpFrame = new InterceptorHttpNetworkFrame({
|
|
663
|
+
id: requestId,
|
|
664
|
+
request,
|
|
665
|
+
controller
|
|
666
|
+
});
|
|
667
|
+
this.#frames.set(request, httpFrame);
|
|
668
|
+
await this.queue(httpFrame);
|
|
669
|
+
}
|
|
670
|
+
async #handleResponse({ requestId, request, response, responseType }) {
|
|
671
|
+
const httpFrame = this.#frames.get(request);
|
|
672
|
+
this.#frames.delete(request);
|
|
673
|
+
if (httpFrame == null) return;
|
|
674
|
+
queueMicrotask(() => {
|
|
675
|
+
try {
|
|
676
|
+
httpFrame.events.emit(new ResponseEvent(responseType === "mock" ? "response:mocked" : "response:bypass", {
|
|
677
|
+
requestId,
|
|
678
|
+
request,
|
|
679
|
+
response
|
|
680
|
+
}));
|
|
681
|
+
} finally {
|
|
682
|
+
/**
|
|
683
|
+
* @note Remove any listeners from this frame.
|
|
684
|
+
* Past this point, it won't emit anything. The removal is crucial
|
|
685
|
+
* to prevent "rettime" from keeping the abort cleanup listeners internally.
|
|
686
|
+
* @see https://github.com/mswjs/msw/issues/2735
|
|
687
|
+
*/
|
|
688
|
+
httpFrame.events.removeAllListeners();
|
|
689
|
+
}
|
|
690
|
+
});
|
|
691
|
+
}
|
|
692
|
+
async #handleWebSocketConnection(connection) {
|
|
693
|
+
await this.queue(new InterceptorWebSocketNetworkFrame({ connection }));
|
|
694
|
+
}
|
|
695
|
+
};
|
|
696
|
+
var InterceptorHttpNetworkFrame = class extends HttpNetworkFrame {
|
|
697
|
+
#controller;
|
|
698
|
+
constructor(options) {
|
|
699
|
+
super({
|
|
700
|
+
id: options.id,
|
|
701
|
+
request: options.request
|
|
702
|
+
});
|
|
703
|
+
this.#controller = options.controller;
|
|
704
|
+
}
|
|
705
|
+
passthrough() {
|
|
706
|
+
deleteRequestPassthroughHeader(this.data.request);
|
|
707
|
+
}
|
|
708
|
+
respondWith(response) {
|
|
709
|
+
if (response) this.#controller.respondWith(response);
|
|
710
|
+
}
|
|
711
|
+
errorWith(reason) {
|
|
712
|
+
if (reason instanceof Response) return this.respondWith(reason);
|
|
713
|
+
if (reason instanceof InternalError) this.#controller.errorWith(reason);
|
|
714
|
+
throw reason;
|
|
715
|
+
}
|
|
716
|
+
};
|
|
717
|
+
var InterceptorWebSocketNetworkFrame = class extends WebSocketNetworkFrame {
|
|
718
|
+
/**
|
|
719
|
+
* The in-process client connection, whose socket
|
|
720
|
+
* the frame dispatches errors on.
|
|
721
|
+
*/
|
|
722
|
+
#client;
|
|
723
|
+
constructor(args) {
|
|
724
|
+
super({ connection: args.connection });
|
|
725
|
+
this.#client = args.connection.client;
|
|
726
|
+
/**
|
|
727
|
+
* @note Provide a similar frame listener cleanup as for HTTP.
|
|
728
|
+
* When the client connection closes, the handler can no longer be used.
|
|
729
|
+
*/
|
|
730
|
+
args.connection.client.addEventListener("close", () => {
|
|
731
|
+
this.events.removeAllListeners();
|
|
732
|
+
}, { once: true });
|
|
733
|
+
}
|
|
734
|
+
errorWith(reason) {
|
|
735
|
+
if (reason instanceof Error) {
|
|
736
|
+
/**
|
|
737
|
+
* Use `client.errorWith(reason)` in the future.
|
|
738
|
+
* @see https://github.com/mswjs/interceptors/issues/747
|
|
739
|
+
*/
|
|
740
|
+
const errorEvent = new Event("error");
|
|
741
|
+
Object.defineProperty(errorEvent, "cause", {
|
|
742
|
+
enumerable: true,
|
|
743
|
+
configurable: false,
|
|
744
|
+
value: reason
|
|
745
|
+
});
|
|
746
|
+
this.#client.socket.dispatchEvent(errorEvent);
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
passthrough() {
|
|
750
|
+
this.data.connection.server.connect();
|
|
751
|
+
}
|
|
752
|
+
};
|
|
753
|
+
//#endregion
|
|
754
|
+
export { NetworkFrame as a, HandlersController as c, ResponseEvent as i, InMemoryHandlersController as l, WebSocketNetworkFrame as n, NetworkReadyState as o, HttpNetworkFrame as r, defineNetwork as s, InterceptorSource as t, NetworkSource as u };
|
|
755
|
+
|
|
756
|
+
//# sourceMappingURL=interceptor-source.js.map
|