msw 2.14.7 → 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 -28289
- package/lib/iife/index.js.map +1 -1
- package/lib/mockServiceWorker.js +204 -93
- 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} +168 -73
- 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 +64 -0
- package/src/core/utils/internal/observe-response-body-stream.ts +76 -0
- 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} +28 -9
- 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} +107 -18
- 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 +202 -91
- 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 +105 -69
- 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-BTyqrRB6.d.mts +0 -371
- package/lib/core/HttpResponse-BXyXQFMJ.d.ts +0 -371
- 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 -300
- package/lib/core/handlers/RequestHandler.js.map +0 -1
- package/lib/core/handlers/RequestHandler.mjs +0 -283
- 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 -672
- package/lib/core/sse.js.map +0 -1
- package/lib/core/sse.mjs +0 -654
- 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 -17
- package/lib/core/utils/HttpResponse/decorators.d.ts +0 -17
- package/lib/core/utils/HttpResponse/decorators.js +0 -71
- package/lib/core/utils/HttpResponse/decorators.js.map +0 -1
- package/lib/core/utils/HttpResponse/decorators.mjs +0 -41
- 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/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
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
// @vitest-environment jsdom
|
|
2
2
|
import { createRequestId, encodeBuffer } from '@mswjs/interceptors'
|
|
3
3
|
import { OperationTypeNode, parse } from 'graphql'
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import
|
|
4
|
+
import {
|
|
5
|
+
isDocumentNode,
|
|
6
|
+
GraphQLHandler,
|
|
7
|
+
type GraphQLRequestBody,
|
|
8
|
+
type GraphQLResolverExtras,
|
|
9
|
+
} from './graphql-handler'
|
|
10
|
+
import { HttpResponse } from '#http/http-response'
|
|
11
|
+
import type { ResponseResolver } from '../core/handlers/request-handler'
|
|
11
12
|
|
|
12
13
|
const resolver: ResponseResolver<GraphQLResolverExtras<{ userId: string }>> = ({
|
|
13
14
|
variables,
|
|
@@ -59,7 +60,7 @@ const LOGIN = `
|
|
|
59
60
|
`
|
|
60
61
|
|
|
61
62
|
describe('info', () => {
|
|
62
|
-
|
|
63
|
+
test('exposes request handler information for query', () => {
|
|
63
64
|
const handler = new GraphQLHandler(
|
|
64
65
|
OperationTypeNode.QUERY,
|
|
65
66
|
'GetUser',
|
|
@@ -72,7 +73,7 @@ describe('info', () => {
|
|
|
72
73
|
expect(handler.info.operationName).toEqual('GetUser')
|
|
73
74
|
})
|
|
74
75
|
|
|
75
|
-
|
|
76
|
+
test('exposes request handler information for mutation', () => {
|
|
76
77
|
const handler = new GraphQLHandler(
|
|
77
78
|
OperationTypeNode.MUTATION,
|
|
78
79
|
'Login',
|
|
@@ -85,7 +86,7 @@ describe('info', () => {
|
|
|
85
86
|
expect(handler.info.operationName).toEqual('Login')
|
|
86
87
|
})
|
|
87
88
|
|
|
88
|
-
|
|
89
|
+
test('parses a query operation name from a given DocumentNode', () => {
|
|
89
90
|
const node = parse(`
|
|
90
91
|
query GetUser {
|
|
91
92
|
user {
|
|
@@ -106,7 +107,7 @@ describe('info', () => {
|
|
|
106
107
|
expect(handler.info).toHaveProperty('operationName', 'GetUser')
|
|
107
108
|
})
|
|
108
109
|
|
|
109
|
-
|
|
110
|
+
test('parses a mutation operation name from a given DocumentNode', () => {
|
|
110
111
|
const node = parse(`
|
|
111
112
|
mutation Login {
|
|
112
113
|
user {
|
|
@@ -126,7 +127,7 @@ describe('info', () => {
|
|
|
126
127
|
expect(handler.info).toHaveProperty('operationName', 'Login')
|
|
127
128
|
})
|
|
128
129
|
|
|
129
|
-
|
|
130
|
+
test('throws an exception given a DocumentNode with a mismatched operation type', () => {
|
|
130
131
|
const node = parse(`
|
|
131
132
|
mutation CreateUser {
|
|
132
133
|
user {
|
|
@@ -145,7 +146,7 @@ describe('info', () => {
|
|
|
145
146
|
|
|
146
147
|
describe('parse', () => {
|
|
147
148
|
describe('query', () => {
|
|
148
|
-
|
|
149
|
+
test('parses a query without variables (GET)', async () => {
|
|
149
150
|
const handler = new GraphQLHandler(
|
|
150
151
|
OperationTypeNode.QUERY,
|
|
151
152
|
'GetUser',
|
|
@@ -171,7 +172,7 @@ describe('parse', () => {
|
|
|
171
172
|
})
|
|
172
173
|
})
|
|
173
174
|
|
|
174
|
-
|
|
175
|
+
test('parses a query with variables (GET)', async () => {
|
|
175
176
|
const handler = new GraphQLHandler(
|
|
176
177
|
OperationTypeNode.QUERY,
|
|
177
178
|
'GetUser',
|
|
@@ -202,7 +203,7 @@ describe('parse', () => {
|
|
|
202
203
|
})
|
|
203
204
|
})
|
|
204
205
|
|
|
205
|
-
|
|
206
|
+
test('parses a query without variables (POST)', async () => {
|
|
206
207
|
const handler = new GraphQLHandler(
|
|
207
208
|
OperationTypeNode.QUERY,
|
|
208
209
|
'GetUser',
|
|
@@ -228,7 +229,7 @@ describe('parse', () => {
|
|
|
228
229
|
})
|
|
229
230
|
})
|
|
230
231
|
|
|
231
|
-
|
|
232
|
+
test('parses a query with variables (POST)', async () => {
|
|
232
233
|
const handler = new GraphQLHandler(
|
|
233
234
|
OperationTypeNode.QUERY,
|
|
234
235
|
'GetUser',
|
|
@@ -261,7 +262,7 @@ describe('parse', () => {
|
|
|
261
262
|
})
|
|
262
263
|
|
|
263
264
|
describe('mutation', () => {
|
|
264
|
-
|
|
265
|
+
test('parses a mutation without variables (GET)', async () => {
|
|
265
266
|
const handler = new GraphQLHandler(
|
|
266
267
|
OperationTypeNode.MUTATION,
|
|
267
268
|
'GetUser',
|
|
@@ -287,7 +288,7 @@ describe('parse', () => {
|
|
|
287
288
|
})
|
|
288
289
|
})
|
|
289
290
|
|
|
290
|
-
|
|
291
|
+
test('parses a mutation with variables (GET)', async () => {
|
|
291
292
|
const handler = new GraphQLHandler(
|
|
292
293
|
OperationTypeNode.MUTATION,
|
|
293
294
|
'GetUser',
|
|
@@ -318,7 +319,7 @@ describe('parse', () => {
|
|
|
318
319
|
})
|
|
319
320
|
})
|
|
320
321
|
|
|
321
|
-
|
|
322
|
+
test('parses a mutation without variables (POST)', async () => {
|
|
322
323
|
const handler = new GraphQLHandler(
|
|
323
324
|
OperationTypeNode.MUTATION,
|
|
324
325
|
'GetUser',
|
|
@@ -344,7 +345,7 @@ describe('parse', () => {
|
|
|
344
345
|
})
|
|
345
346
|
})
|
|
346
347
|
|
|
347
|
-
|
|
348
|
+
test('parses a mutation with variables (POST)', async () => {
|
|
348
349
|
const handler = new GraphQLHandler(
|
|
349
350
|
OperationTypeNode.MUTATION,
|
|
350
351
|
'GetUser',
|
|
@@ -377,7 +378,7 @@ describe('parse', () => {
|
|
|
377
378
|
})
|
|
378
379
|
|
|
379
380
|
describe('with endpoint configuration', () => {
|
|
380
|
-
|
|
381
|
+
test('parses the request and parses grapqhl properties from it when the graphql.link endpoint matches', async () => {
|
|
381
382
|
const handler = new GraphQLHandler(
|
|
382
383
|
OperationTypeNode.QUERY,
|
|
383
384
|
'GetUser',
|
|
@@ -438,7 +439,7 @@ describe('parse', () => {
|
|
|
438
439
|
})
|
|
439
440
|
})
|
|
440
441
|
|
|
441
|
-
|
|
442
|
+
test('parses a request but does not parse graphql properties from it graphql.link hostname does not match', async () => {
|
|
442
443
|
const handler = new GraphQLHandler(
|
|
443
444
|
OperationTypeNode.QUERY,
|
|
444
445
|
'GetUser',
|
|
@@ -487,7 +488,7 @@ describe('parse', () => {
|
|
|
487
488
|
})
|
|
488
489
|
})
|
|
489
490
|
|
|
490
|
-
|
|
491
|
+
test('parses a request but does not parse graphql properties from it graphql.link pathname does not match', async () => {
|
|
491
492
|
const handler = new GraphQLHandler(
|
|
492
493
|
OperationTypeNode.QUERY,
|
|
493
494
|
'GetUser',
|
|
@@ -539,7 +540,7 @@ describe('parse', () => {
|
|
|
539
540
|
})
|
|
540
541
|
|
|
541
542
|
describe('predicate', () => {
|
|
542
|
-
|
|
543
|
+
test('respects operation type', async () => {
|
|
543
544
|
const handler = new GraphQLHandler(
|
|
544
545
|
OperationTypeNode.QUERY,
|
|
545
546
|
'GetUser',
|
|
@@ -567,7 +568,7 @@ describe('predicate', () => {
|
|
|
567
568
|
).toBe(false)
|
|
568
569
|
})
|
|
569
570
|
|
|
570
|
-
|
|
571
|
+
test('respects operation name', async () => {
|
|
571
572
|
const handler = new GraphQLHandler(
|
|
572
573
|
OperationTypeNode.QUERY,
|
|
573
574
|
'GetUser',
|
|
@@ -601,7 +602,7 @@ describe('predicate', () => {
|
|
|
601
602
|
).resolves.toBe(false)
|
|
602
603
|
})
|
|
603
604
|
|
|
604
|
-
|
|
605
|
+
test('allows anonymous GraphQL operations when using "all" expected operation type', async () => {
|
|
605
606
|
const handler = new GraphQLHandler('all', new RegExp('.*'), '*', resolver)
|
|
606
607
|
const request = createPostGraphQLRequest({
|
|
607
608
|
query: `
|
|
@@ -622,7 +623,7 @@ describe('predicate', () => {
|
|
|
622
623
|
).resolves.toBe(true)
|
|
623
624
|
})
|
|
624
625
|
|
|
625
|
-
|
|
626
|
+
test('respects custom endpoint', async () => {
|
|
626
627
|
const handler = new GraphQLHandler(
|
|
627
628
|
OperationTypeNode.QUERY,
|
|
628
629
|
'GetUser',
|
|
@@ -653,7 +654,7 @@ describe('predicate', () => {
|
|
|
653
654
|
).resolves.toBe(false)
|
|
654
655
|
})
|
|
655
656
|
|
|
656
|
-
|
|
657
|
+
test('supports custom predicate function', async () => {
|
|
657
658
|
const handler = new GraphQLHandler(
|
|
658
659
|
OperationTypeNode.QUERY,
|
|
659
660
|
({ query }) => {
|
|
@@ -692,7 +693,7 @@ describe('predicate', () => {
|
|
|
692
693
|
})
|
|
693
694
|
|
|
694
695
|
describe('test', () => {
|
|
695
|
-
|
|
696
|
+
test('respects operation type', async () => {
|
|
696
697
|
const handler = new GraphQLHandler(
|
|
697
698
|
OperationTypeNode.QUERY,
|
|
698
699
|
'GetUser',
|
|
@@ -710,7 +711,7 @@ describe('test', () => {
|
|
|
710
711
|
expect(await handler.test({ request: alienRequest })).toBe(false)
|
|
711
712
|
})
|
|
712
713
|
|
|
713
|
-
|
|
714
|
+
test('respects operation name', async () => {
|
|
714
715
|
const handler = new GraphQLHandler(
|
|
715
716
|
OperationTypeNode.QUERY,
|
|
716
717
|
'GetUser',
|
|
@@ -734,7 +735,7 @@ describe('test', () => {
|
|
|
734
735
|
await expect(handler.test({ request: alienRequest })).resolves.toBe(false)
|
|
735
736
|
})
|
|
736
737
|
|
|
737
|
-
|
|
738
|
+
test('respects custom endpoint', async () => {
|
|
738
739
|
const handler = new GraphQLHandler(
|
|
739
740
|
OperationTypeNode.QUERY,
|
|
740
741
|
'GetUser',
|
|
@@ -757,7 +758,7 @@ describe('test', () => {
|
|
|
757
758
|
})
|
|
758
759
|
|
|
759
760
|
describe('run', () => {
|
|
760
|
-
|
|
761
|
+
test('returns a mocked response given a matching query', async () => {
|
|
761
762
|
const handler = new GraphQLHandler(
|
|
762
763
|
OperationTypeNode.QUERY,
|
|
763
764
|
'GetUser',
|
|
@@ -802,7 +803,7 @@ describe('run', () => {
|
|
|
802
803
|
})
|
|
803
804
|
})
|
|
804
805
|
|
|
805
|
-
|
|
806
|
+
test('returns null given a non-matching query', async () => {
|
|
806
807
|
const handler = new GraphQLHandler(
|
|
807
808
|
OperationTypeNode.QUERY,
|
|
808
809
|
'GetUser',
|
|
@@ -820,7 +821,7 @@ describe('run', () => {
|
|
|
820
821
|
})
|
|
821
822
|
|
|
822
823
|
describe('isDocumentNode', () => {
|
|
823
|
-
|
|
824
|
+
test('returns true given a valid DocumentNode', () => {
|
|
824
825
|
const node = parse(`
|
|
825
826
|
query GetUser {
|
|
826
827
|
user {
|
|
@@ -832,7 +833,7 @@ describe('isDocumentNode', () => {
|
|
|
832
833
|
expect(isDocumentNode(node)).toEqual(true)
|
|
833
834
|
})
|
|
834
835
|
|
|
835
|
-
|
|
836
|
+
test('returns false given an arbitrary input', () => {
|
|
836
837
|
expect(isDocumentNode(null)).toEqual(false)
|
|
837
838
|
expect(isDocumentNode(undefined)).toEqual(false)
|
|
838
839
|
expect(isDocumentNode('')).toEqual(false)
|
|
@@ -842,7 +843,7 @@ describe('isDocumentNode', () => {
|
|
|
842
843
|
})
|
|
843
844
|
|
|
844
845
|
describe('request', () => {
|
|
845
|
-
|
|
846
|
+
test('has parsed operationName', async () => {
|
|
846
847
|
const matchAllResolver = vi.fn()
|
|
847
848
|
const handler = new GraphQLHandler(
|
|
848
849
|
OperationTypeNode.QUERY,
|
|
@@ -12,29 +12,30 @@ import {
|
|
|
12
12
|
type RequestHandlerExecutionResult,
|
|
13
13
|
type RequestHandlerOptions,
|
|
14
14
|
type ResponseResolver,
|
|
15
|
-
} from '
|
|
16
|
-
import { getTimestamp } from '
|
|
17
|
-
import { getStatusCodeColor } from '
|
|
18
|
-
import { serializeRequest } from '
|
|
19
|
-
import { serializeResponse } from '
|
|
15
|
+
} from '#core/handlers/request-handler'
|
|
16
|
+
import { getTimestamp } from '#core/utils/logging/get-timestamp'
|
|
17
|
+
import { getStatusCodeColor } from '#core/utils/logging/get-status-code-color'
|
|
18
|
+
import { serializeRequest } from '#core/utils/logging/serialize-request'
|
|
19
|
+
import { serializeResponse } from '#core/utils/logging/serialize-response'
|
|
20
20
|
import {
|
|
21
|
-
type Match,
|
|
22
21
|
matchRequestUrl,
|
|
22
|
+
type Match,
|
|
23
23
|
type Path,
|
|
24
|
-
} from '
|
|
24
|
+
} from '#core/utils/matching/match-request-url'
|
|
25
25
|
import {
|
|
26
|
-
type ParsedGraphQLRequest,
|
|
27
|
-
type GraphQLMultipartRequestBody,
|
|
28
26
|
parseGraphQLRequest,
|
|
29
27
|
parseDocumentNode,
|
|
28
|
+
type ParsedGraphQLRequest,
|
|
29
|
+
type GraphQLMultipartRequestBody,
|
|
30
30
|
type ParsedGraphQLQuery,
|
|
31
|
-
} from '
|
|
32
|
-
import { toPublicUrl } from '
|
|
33
|
-
import { devUtils } from '
|
|
34
|
-
import { getAllRequestCookies } from '
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import { getAllAcceptedMimeTypes } from '
|
|
31
|
+
} from './parse-graphql-request'
|
|
32
|
+
import { toPublicUrl } from '#core/utils/request/to-public-url'
|
|
33
|
+
import { devUtils } from '#core/utils/internal/dev-utils'
|
|
34
|
+
import { getAllRequestCookies } from '#core/utils/request/get-request-cookies'
|
|
35
|
+
import { kDefaultContentType } from '#http/symbols'
|
|
36
|
+
import type { StrictRequest } from '#http/http-response'
|
|
37
|
+
import { getAllAcceptedMimeTypes } from '#core/utils/request/get-all-accepted-mime-types'
|
|
38
|
+
import type { ResponseResolutionContext } from '#core/utils/execute-handlers'
|
|
38
39
|
|
|
39
40
|
export interface DocumentTypeDecoration<
|
|
40
41
|
Result = { [key: string]: any },
|
|
@@ -110,7 +111,7 @@ export type GraphQLCustomPredicate = (args: {
|
|
|
110
111
|
cookies: Record<string, string>
|
|
111
112
|
}) => GraphQLCustomPredicateResult | Promise<GraphQLCustomPredicateResult>
|
|
112
113
|
|
|
113
|
-
|
|
114
|
+
type GraphQLCustomPredicateResult = boolean | { matches: boolean }
|
|
114
115
|
|
|
115
116
|
export type GraphQLPredicate<Query = any, Variables = any> =
|
|
116
117
|
| GraphQLHandlerNameSelector
|
|
@@ -184,35 +185,49 @@ export class GraphQLHandler extends RequestHandler<
|
|
|
184
185
|
return predicate
|
|
185
186
|
}
|
|
186
187
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
188
|
+
/**
|
|
189
|
+
* Creates a GraphQL handler information object from the given
|
|
190
|
+
* operation predicate. Normalizes `DocumentNode` and typed document
|
|
191
|
+
* string predicates to plain operation names.
|
|
192
|
+
*/
|
|
193
|
+
static parseGraphQLRequestInfo(args: {
|
|
194
|
+
operationType: GraphQLOperationType
|
|
195
|
+
predicate: GraphQLPredicate
|
|
196
|
+
url: Path
|
|
197
|
+
}): GraphQLHandlerInfo {
|
|
194
198
|
const operationName = GraphQLHandler.#parseOperationName(
|
|
195
|
-
predicate,
|
|
196
|
-
operationType,
|
|
199
|
+
args.predicate,
|
|
200
|
+
args.operationType,
|
|
197
201
|
)
|
|
198
202
|
|
|
199
203
|
const displayOperationName =
|
|
200
204
|
typeof operationName === 'function' ? '[custom predicate]' : operationName
|
|
201
205
|
|
|
202
206
|
const header =
|
|
203
|
-
operationType === 'all'
|
|
204
|
-
? `${operationType} (origin: ${
|
|
205
|
-
: `${operationType}${displayOperationName ? ` ${displayOperationName}` : ''} (origin: ${
|
|
207
|
+
args.operationType === 'all'
|
|
208
|
+
? `${args.operationType} (origin: ${args.url.toString()})`
|
|
209
|
+
: `${args.operationType}${displayOperationName ? ` ${displayOperationName}` : ''} (origin: ${args.url.toString()})`
|
|
206
210
|
|
|
211
|
+
return {
|
|
212
|
+
header,
|
|
213
|
+
operationType: args.operationType,
|
|
214
|
+
operationName,
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
constructor(
|
|
219
|
+
operationType: GraphQLOperationType,
|
|
220
|
+
predicate: GraphQLPredicate,
|
|
221
|
+
endpoint: Path,
|
|
222
|
+
resolver: ResponseResolver<GraphQLResolverExtras<any>, any, any>,
|
|
223
|
+
options?: RequestHandlerOptions,
|
|
224
|
+
) {
|
|
207
225
|
super({
|
|
208
|
-
info: {
|
|
209
|
-
header,
|
|
226
|
+
info: GraphQLHandler.parseGraphQLRequestInfo({
|
|
210
227
|
operationType,
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
),
|
|
215
|
-
},
|
|
228
|
+
predicate,
|
|
229
|
+
url: endpoint,
|
|
230
|
+
}),
|
|
216
231
|
resolver,
|
|
217
232
|
options,
|
|
218
233
|
})
|
|
@@ -242,10 +257,8 @@ export class GraphQLHandler extends RequestHandler<
|
|
|
242
257
|
}
|
|
243
258
|
|
|
244
259
|
async parse(args: { request: Request }): Promise<GraphQLRequestParsedResult> {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
* need to parse it since there's no case where we would handle this
|
|
248
|
-
*/
|
|
260
|
+
// If the request doesn't match a specified endpoint, there's no
|
|
261
|
+
// need to parse it since there's no case where we would handle this
|
|
249
262
|
const match = matchRequestUrl(new URL(args.request.url), this.endpoint)
|
|
250
263
|
const cookies = getAllRequestCookies(args.request)
|
|
251
264
|
|
|
@@ -291,7 +304,7 @@ export class GraphQLHandler extends RequestHandler<
|
|
|
291
304
|
devUtils.warn(`\
|
|
292
305
|
Failed to intercept a GraphQL request at "${args.request.method} ${publicUrl}": anonymous GraphQL operations are not supported.
|
|
293
306
|
|
|
294
|
-
Consider naming this operation or using "
|
|
307
|
+
Consider naming this operation or using the "operation()" request handler of "graphql.link()" to intercept GraphQL requests regardless of their operation name/type. Read more: https://mswjs.io/docs/api/graphql/#graphqloperationresolver`)
|
|
295
308
|
return false
|
|
296
309
|
}
|
|
297
310
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { TypedEvent } from 'rettime'
|
|
2
|
+
|
|
3
|
+
export interface GraphQLSubscriptionEventInit {
|
|
4
|
+
operationName: string
|
|
5
|
+
query: string
|
|
6
|
+
variables: Record<string, unknown>
|
|
7
|
+
request: Request
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Emitted when a GraphQL subscription is established over an
|
|
12
|
+
* intercepted WebSocket connection (i.e. matched by a subscription
|
|
13
|
+
* handler and resolved).
|
|
14
|
+
*
|
|
15
|
+
* @note The event is referenced by the WebSocket frame event map so
|
|
16
|
+
* the life-cycle event emitters derived from it (e.g. `server.events`)
|
|
17
|
+
* are typed correctly. It lives in its own module so the emitting
|
|
18
|
+
* `msw/graphql` module doesn't pull the entire frame graph, and the
|
|
19
|
+
* core stays free of the `graphql` dependency (the event carries
|
|
20
|
+
* plain data only).
|
|
21
|
+
*/
|
|
22
|
+
export class GraphQLSubscriptionEvent extends TypedEvent<
|
|
23
|
+
void,
|
|
24
|
+
void,
|
|
25
|
+
'graphql:subscription'
|
|
26
|
+
> {
|
|
27
|
+
public readonly operationName: string
|
|
28
|
+
public readonly query: string
|
|
29
|
+
public readonly variables: Record<string, unknown>
|
|
30
|
+
public readonly request: Request
|
|
31
|
+
|
|
32
|
+
constructor(init: GraphQLSubscriptionEventInit) {
|
|
33
|
+
super('graphql:subscription')
|
|
34
|
+
this.operationName = init.operationName
|
|
35
|
+
this.query = init.query
|
|
36
|
+
this.variables = init.variables
|
|
37
|
+
this.request = init.request
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
// @vitest-environment node
|
|
2
|
+
import { invariant } from 'outvariant'
|
|
3
|
+
import { OperationTypeNode, parse } from 'graphql'
|
|
4
|
+
import { getSiblingHandlers } from '#core/utils/internal/attach-sibling-handlers'
|
|
5
|
+
import { HttpHandler } from '#http/http-handler'
|
|
6
|
+
import { WebSocketHandler } from '#ws/websocket-handler'
|
|
7
|
+
import { WebSocketNetworkFrame } from '#core/experimental/frames/websocket-frame'
|
|
8
|
+
import { InMemoryHandlersController } from '#core/experimental/handlers-controller'
|
|
9
|
+
import { createTestWebSocketConnection } from '../../test/support/ws-test-utils'
|
|
10
|
+
import type { GraphQLHandlerInfo } from './graphql-handler'
|
|
11
|
+
import { graphql } from './graphql'
|
|
12
|
+
import {
|
|
13
|
+
createGraphQLSubscriptionHandler,
|
|
14
|
+
GraphQLSubscriptionTransportHandler,
|
|
15
|
+
} from './graphql-subscription'
|
|
16
|
+
|
|
17
|
+
const subscription = createGraphQLSubscriptionHandler(
|
|
18
|
+
'http://localhost:4000/graphql',
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
describe('info', () => {
|
|
22
|
+
test('resolves handler info for a string operation name', () => {
|
|
23
|
+
expect(
|
|
24
|
+
subscription('OnCommentAdded', () => {}).info,
|
|
25
|
+
).toEqual<GraphQLHandlerInfo>({
|
|
26
|
+
header:
|
|
27
|
+
'subscription OnCommentAdded (origin: ws://localhost:4000/graphql)',
|
|
28
|
+
operationName: 'OnCommentAdded',
|
|
29
|
+
operationType: OperationTypeNode.SUBSCRIPTION,
|
|
30
|
+
})
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
test('resolves handler info for a RegExp operation name', () => {
|
|
34
|
+
expect(subscription(/Comment/, () => {}).info).toEqual<GraphQLHandlerInfo>({
|
|
35
|
+
header: 'subscription /Comment/ (origin: ws://localhost:4000/graphql)',
|
|
36
|
+
operationName: /Comment/,
|
|
37
|
+
operationType: OperationTypeNode.SUBSCRIPTION,
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
test('resolves handler info for a DocumentNode operation name', () => {
|
|
42
|
+
const node = parse(`
|
|
43
|
+
subscription OnCommentAdded {
|
|
44
|
+
comment {
|
|
45
|
+
id
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
`)
|
|
49
|
+
|
|
50
|
+
expect(subscription(node, () => {}).info).toEqual<GraphQLHandlerInfo>({
|
|
51
|
+
header:
|
|
52
|
+
'subscription OnCommentAdded (origin: ws://localhost:4000/graphql)',
|
|
53
|
+
operationName: 'OnCommentAdded',
|
|
54
|
+
operationType: OperationTypeNode.SUBSCRIPTION,
|
|
55
|
+
})
|
|
56
|
+
})
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
describe('predicate', () => {
|
|
60
|
+
test('returns true for a matching WebSocket connection url', () => {
|
|
61
|
+
const handler = subscription('OnCommentAdded', () => {})
|
|
62
|
+
const url = 'ws://localhost:4000/graphql'
|
|
63
|
+
const parsedResult = handler.parse({ url })
|
|
64
|
+
|
|
65
|
+
expect(handler.predicate({ url, parsedResult })).toBe(true)
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
test('returns false for a non-matching WebSocket connection url', () => {
|
|
69
|
+
const handler = subscription('OnCommentAdded', () => {})
|
|
70
|
+
const url = 'ws://example.com/chat'
|
|
71
|
+
const parsedResult = handler.parse({ url })
|
|
72
|
+
|
|
73
|
+
expect(handler.predicate({ url, parsedResult })).toBe(false)
|
|
74
|
+
})
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
describe('protocol discrimination', () => {
|
|
78
|
+
class TestWebSocketFrame extends WebSocketNetworkFrame {
|
|
79
|
+
public passthrough = vi.fn()
|
|
80
|
+
public errorWith = vi.fn()
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function getWebSocketHandlers(
|
|
84
|
+
controller: InMemoryHandlersController,
|
|
85
|
+
): Array<WebSocketHandler> {
|
|
86
|
+
return controller
|
|
87
|
+
.getHandlersByKind('websocket')
|
|
88
|
+
.filter((handler) => handler instanceof WebSocketHandler)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
test('does not claim connections that lack the "graphql-transport-ws" protocol', async () => {
|
|
92
|
+
const api = graphql.link('*')
|
|
93
|
+
const controller = new InMemoryHandlersController([
|
|
94
|
+
api.subscription('OnCommentAdded', vi.fn()),
|
|
95
|
+
api.operation(vi.fn()),
|
|
96
|
+
])
|
|
97
|
+
|
|
98
|
+
// A non-GraphQL WebSocket connection (e.g. HMR, chat) that happens
|
|
99
|
+
// to match the wildcard endpoint. It must stay unhandled so it
|
|
100
|
+
// performs the connection as-is.
|
|
101
|
+
const connection = createTestWebSocketConnection('ws://localhost/socket')
|
|
102
|
+
const frame = new TestWebSocketFrame({ connection })
|
|
103
|
+
const unhandledFrameCallback = vi.fn()
|
|
104
|
+
|
|
105
|
+
const matches = await frame.resolve(
|
|
106
|
+
getWebSocketHandlers(controller),
|
|
107
|
+
unhandledFrameCallback,
|
|
108
|
+
{ quiet: true },
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
expect.soft(matches).toBe(false)
|
|
112
|
+
expect.soft(frame.passthrough).toHaveBeenCalledOnce()
|
|
113
|
+
expect.soft(frame.errorWith).not.toHaveBeenCalled()
|
|
114
|
+
expect
|
|
115
|
+
.soft(unhandledFrameCallback)
|
|
116
|
+
.toHaveBeenCalledExactlyOnceWith(expect.objectContaining({ frame }))
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
test('claims connections that request the "graphql-transport-ws" protocol', async () => {
|
|
120
|
+
const api = graphql.link('*')
|
|
121
|
+
const controller = new InMemoryHandlersController([
|
|
122
|
+
api.subscription('OnCommentAdded', vi.fn()),
|
|
123
|
+
])
|
|
124
|
+
|
|
125
|
+
const connection = createTestWebSocketConnection('ws://localhost/graphql', {
|
|
126
|
+
protocols: ['graphql-transport-ws'],
|
|
127
|
+
})
|
|
128
|
+
const frame = new TestWebSocketFrame({ connection })
|
|
129
|
+
const unhandledFrameCallback = vi.fn()
|
|
130
|
+
|
|
131
|
+
const matches = await frame.resolve(
|
|
132
|
+
getWebSocketHandlers(controller),
|
|
133
|
+
unhandledFrameCallback,
|
|
134
|
+
{ quiet: true },
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
expect.soft(matches).toBe(true)
|
|
138
|
+
expect.soft(frame.passthrough).not.toHaveBeenCalled()
|
|
139
|
+
expect.soft(frame.errorWith).not.toHaveBeenCalled()
|
|
140
|
+
expect.soft(unhandledFrameCallback).not.toHaveBeenCalled()
|
|
141
|
+
})
|
|
142
|
+
|
|
143
|
+
test('ignores upgrade requests that lack the "graphql-transport-ws" protocol', async () => {
|
|
144
|
+
const handler = subscription('OnCommentAdded', () => {})
|
|
145
|
+
const [, upgradeHandler] = getSiblingHandlers(handler)
|
|
146
|
+
|
|
147
|
+
invariant(
|
|
148
|
+
upgradeHandler instanceof HttpHandler,
|
|
149
|
+
'Expected the second sibling to be the upgrade request handler',
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
await expect(
|
|
153
|
+
upgradeHandler.run({
|
|
154
|
+
request: new Request('http://localhost:4000/graphql', {
|
|
155
|
+
headers: {
|
|
156
|
+
upgrade: 'websocket',
|
|
157
|
+
'sec-websocket-key': 'dGhlIHNhbXBsZSBub25jZQ==',
|
|
158
|
+
},
|
|
159
|
+
}),
|
|
160
|
+
requestId: 'upgrade-plain',
|
|
161
|
+
}),
|
|
162
|
+
).resolves.toBeNull()
|
|
163
|
+
})
|
|
164
|
+
|
|
165
|
+
test('confirms the protocol for matching upgrade requests', async () => {
|
|
166
|
+
const handler = subscription('OnCommentAdded', () => {})
|
|
167
|
+
const [, upgradeHandler] = getSiblingHandlers(handler)
|
|
168
|
+
|
|
169
|
+
invariant(
|
|
170
|
+
upgradeHandler instanceof HttpHandler,
|
|
171
|
+
'Expected the second sibling to be the upgrade request handler',
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
const result = await upgradeHandler.run({
|
|
175
|
+
request: new Request('http://localhost:4000/graphql', {
|
|
176
|
+
headers: {
|
|
177
|
+
upgrade: 'websocket',
|
|
178
|
+
'sec-websocket-key': 'dGhlIHNhbXBsZSBub25jZQ==',
|
|
179
|
+
'sec-websocket-protocol': 'graphql-transport-ws',
|
|
180
|
+
},
|
|
181
|
+
}),
|
|
182
|
+
requestId: 'upgrade-graphql',
|
|
183
|
+
})
|
|
184
|
+
|
|
185
|
+
expect(result?.response?.status).toBe(101)
|
|
186
|
+
expect(result?.response?.headers.get('sec-websocket-protocol')).toBe(
|
|
187
|
+
'graphql-transport-ws',
|
|
188
|
+
)
|
|
189
|
+
})
|
|
190
|
+
})
|
|
191
|
+
|
|
192
|
+
describe('sibling handlers', () => {
|
|
193
|
+
test('shares the transport and upgrade handlers between subscription handlers', () => {
|
|
194
|
+
const firstHandler = subscription('OnCommentAdded', () => {})
|
|
195
|
+
const secondHandler = subscription('OnPostAdded', () => {})
|
|
196
|
+
|
|
197
|
+
const firstSiblings = getSiblingHandlers(firstHandler)
|
|
198
|
+
const secondSiblings = getSiblingHandlers(secondHandler)
|
|
199
|
+
|
|
200
|
+
expect(firstSiblings).toHaveLength(2)
|
|
201
|
+
expect(firstSiblings[0]).toBeInstanceOf(GraphQLSubscriptionTransportHandler)
|
|
202
|
+
|
|
203
|
+
// The transport and the upgrade handlers must be shared by reference
|
|
204
|
+
// so the handlers controller dedupes them across subscription handlers.
|
|
205
|
+
expect(secondSiblings[0]).toBe(firstSiblings[0])
|
|
206
|
+
expect(secondSiblings[1]).toBe(firstSiblings[1])
|
|
207
|
+
})
|
|
208
|
+
})
|