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,18 +1,18 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
WebSocketData,
|
|
3
|
-
|
|
3
|
+
WebSocketClientHandle,
|
|
4
4
|
WebSocketClientEventMap,
|
|
5
5
|
} from '@mswjs/interceptors/WebSocket'
|
|
6
|
-
import type { WebSocketClientStore } from './
|
|
7
|
-
import { WebSocketMemoryClientStore } from './
|
|
8
|
-
import { WebSocketIndexedDBClientStore } from './
|
|
6
|
+
import type { WebSocketClientStore } from './websocket-client-store'
|
|
7
|
+
import { WebSocketMemoryClientStore } from './websocket-memory-client-store'
|
|
8
|
+
import { WebSocketIndexedDBClientStore } from './websocket-indexeddb-client-store'
|
|
9
9
|
|
|
10
|
-
export type WebSocketBroadcastChannelMessage =
|
|
10
|
+
export type WebSocketBroadcastChannelMessage<Message = WebSocketData> =
|
|
11
11
|
| {
|
|
12
12
|
type: 'extraneous:send'
|
|
13
13
|
payload: {
|
|
14
14
|
clientId: string
|
|
15
|
-
data:
|
|
15
|
+
data: Message
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
| {
|
|
@@ -28,10 +28,10 @@ export type WebSocketBroadcastChannelMessage =
|
|
|
28
28
|
* A manager responsible for accumulating WebSocket client
|
|
29
29
|
* connections across different browser runtimes.
|
|
30
30
|
*/
|
|
31
|
-
export class WebSocketClientManager {
|
|
31
|
+
export class WebSocketClientManager<Message = WebSocketData> {
|
|
32
32
|
private store: WebSocketClientStore
|
|
33
|
-
private runtimeClients: Map<string,
|
|
34
|
-
private allClients: Set<
|
|
33
|
+
private runtimeClients: Map<string, WebSocketClientHandle<Message>>
|
|
34
|
+
private allClients: Set<WebSocketClientHandle<Message>>
|
|
35
35
|
|
|
36
36
|
constructor(private channel: BroadcastChannel) {
|
|
37
37
|
// Store the clients in the IndexedDB in the browser,
|
|
@@ -74,7 +74,7 @@ export class WebSocketClientManager {
|
|
|
74
74
|
return runtimeClient
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
return new WebSocketRemoteClientConnection(
|
|
77
|
+
return new WebSocketRemoteClientConnection<Message>(
|
|
78
78
|
client.id,
|
|
79
79
|
new URL(client.url),
|
|
80
80
|
this.channel,
|
|
@@ -93,7 +93,7 @@ export class WebSocketClientManager {
|
|
|
93
93
|
/**
|
|
94
94
|
* All active WebSocket client connections.
|
|
95
95
|
*/
|
|
96
|
-
get clients(): Set<
|
|
96
|
+
get clients(): Set<WebSocketClientHandle<Message>> {
|
|
97
97
|
return this.allClients
|
|
98
98
|
}
|
|
99
99
|
|
|
@@ -105,9 +105,7 @@ export class WebSocketClientManager {
|
|
|
105
105
|
this.channel.postMessage({ type: 'db:update' })
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
private async addClient(
|
|
109
|
-
client: WebSocketClientConnectionProtocol,
|
|
110
|
-
): Promise<void> {
|
|
108
|
+
private async addClient(client: WebSocketClientHandle): Promise<void> {
|
|
111
109
|
await this.store.add(client)
|
|
112
110
|
// Sync the in-memory clients in this runtime with the
|
|
113
111
|
// updated database. This pulls in all the stored clients.
|
|
@@ -121,9 +119,7 @@ export class WebSocketClientManager {
|
|
|
121
119
|
* connection object because `addConnection()` is called only
|
|
122
120
|
* for the opened connections in the same runtime.
|
|
123
121
|
*/
|
|
124
|
-
public async addConnection(
|
|
125
|
-
client: WebSocketClientConnectionProtocol,
|
|
126
|
-
): Promise<void> {
|
|
122
|
+
public async addConnection(client: WebSocketClientHandle): Promise<void> {
|
|
127
123
|
// Store this client in the map of clients created in this runtime.
|
|
128
124
|
// This way, the manager can distinguish between this runtime clients
|
|
129
125
|
// and extraneous runtime clients when synchronizing clients storage.
|
|
@@ -136,7 +132,7 @@ export class WebSocketClientManager {
|
|
|
136
132
|
// that attempt to control this runtime (via a remote connection wrapper).
|
|
137
133
|
// E.g. another runtime calling `client.send()` for the client in this runtime.
|
|
138
134
|
const handleExtraneousMessage = (
|
|
139
|
-
message: MessageEvent<WebSocketBroadcastChannelMessage
|
|
135
|
+
message: MessageEvent<WebSocketBroadcastChannelMessage<Message>>,
|
|
140
136
|
) => {
|
|
141
137
|
const { type, payload } = message.data
|
|
142
138
|
|
|
@@ -183,23 +179,23 @@ export class WebSocketClientManager {
|
|
|
183
179
|
* on the given `BroadcastChannel` to communicate instructions
|
|
184
180
|
* with the client connections from other runtimes.
|
|
185
181
|
*/
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
{
|
|
182
|
+
class WebSocketRemoteClientConnection<
|
|
183
|
+
Message = WebSocketData,
|
|
184
|
+
> implements WebSocketClientHandle<Message> {
|
|
189
185
|
constructor(
|
|
190
186
|
public readonly id: string,
|
|
191
187
|
public readonly url: URL,
|
|
192
188
|
private channel: BroadcastChannel,
|
|
193
189
|
) {}
|
|
194
190
|
|
|
195
|
-
send(data:
|
|
191
|
+
send(data: Message): void {
|
|
196
192
|
this.channel.postMessage({
|
|
197
193
|
type: 'extraneous:send',
|
|
198
194
|
payload: {
|
|
199
195
|
clientId: this.id,
|
|
200
196
|
data,
|
|
201
197
|
},
|
|
202
|
-
} as WebSocketBroadcastChannelMessage)
|
|
198
|
+
} as WebSocketBroadcastChannelMessage<Message>)
|
|
203
199
|
}
|
|
204
200
|
|
|
205
201
|
close(code?: number | undefined, reason?: string | undefined): void {
|
|
@@ -210,14 +206,14 @@ export class WebSocketRemoteClientConnection
|
|
|
210
206
|
code,
|
|
211
207
|
reason,
|
|
212
208
|
},
|
|
213
|
-
} as WebSocketBroadcastChannelMessage)
|
|
209
|
+
} as WebSocketBroadcastChannelMessage<Message>)
|
|
214
210
|
}
|
|
215
211
|
|
|
216
|
-
addEventListener<EventType extends keyof WebSocketClientEventMap
|
|
212
|
+
addEventListener<EventType extends keyof WebSocketClientEventMap<Message>>(
|
|
217
213
|
_type: EventType,
|
|
218
214
|
_listener: (
|
|
219
215
|
this: WebSocket,
|
|
220
|
-
event: WebSocketClientEventMap[EventType],
|
|
216
|
+
event: WebSocketClientEventMap<Message>[EventType],
|
|
221
217
|
) => void,
|
|
222
218
|
_options?: AddEventListenerOptions | boolean,
|
|
223
219
|
): void {
|
|
@@ -226,11 +222,11 @@ export class WebSocketRemoteClientConnection
|
|
|
226
222
|
)
|
|
227
223
|
}
|
|
228
224
|
|
|
229
|
-
removeEventListener<EventType extends keyof WebSocketClientEventMap
|
|
225
|
+
removeEventListener<EventType extends keyof WebSocketClientEventMap<Message>>(
|
|
230
226
|
_event: EventType,
|
|
231
227
|
_listener: (
|
|
232
228
|
this: WebSocket,
|
|
233
|
-
event: WebSocketClientEventMap[EventType],
|
|
229
|
+
event: WebSocketClientEventMap<Message>[EventType],
|
|
234
230
|
) => void,
|
|
235
231
|
_options?: EventListenerOptions | boolean,
|
|
236
232
|
): void {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { WebSocketClientHandle } from '@mswjs/interceptors/WebSocket'
|
|
2
2
|
|
|
3
3
|
export interface SerializedWebSocketClient {
|
|
4
4
|
id: string
|
|
@@ -6,7 +6,7 @@ export interface SerializedWebSocketClient {
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export abstract class WebSocketClientStore {
|
|
9
|
-
public abstract add(client:
|
|
9
|
+
public abstract add(client: WebSocketClientHandle): Promise<void>
|
|
10
10
|
|
|
11
11
|
public abstract getAll(): Promise<Array<SerializedWebSocketClient>>
|
|
12
12
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { WebSocketHandler } from './
|
|
1
|
+
import { WebSocketHandler } from './websocket-handler'
|
|
2
2
|
|
|
3
3
|
describe('parse', () => {
|
|
4
|
-
|
|
4
|
+
test('matches an exact url', () => {
|
|
5
5
|
expect(
|
|
6
6
|
new WebSocketHandler('ws://localhost:3000').parse({
|
|
7
7
|
url: new URL('ws://localhost:3000'),
|
|
@@ -14,7 +14,7 @@ describe('parse', () => {
|
|
|
14
14
|
})
|
|
15
15
|
})
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
test('ignores trailing slash', () => {
|
|
18
18
|
expect(
|
|
19
19
|
new WebSocketHandler('ws://localhost:3000').parse({
|
|
20
20
|
url: new URL('ws://localhost:3000/'),
|
|
@@ -38,7 +38,7 @@ describe('parse', () => {
|
|
|
38
38
|
})
|
|
39
39
|
})
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
test('supports path parameters', () => {
|
|
42
42
|
expect(
|
|
43
43
|
new WebSocketHandler('ws://localhost:3000/:serviceName').parse({
|
|
44
44
|
url: new URL('ws://localhost:3000/auth'),
|
|
@@ -53,7 +53,7 @@ describe('parse', () => {
|
|
|
53
53
|
})
|
|
54
54
|
})
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
test('ignores "/socket.io/" prefix in the client url', () => {
|
|
57
57
|
expect(
|
|
58
58
|
new WebSocketHandler('ws://localhost:3000').parse({
|
|
59
59
|
url: new URL(
|
|
@@ -81,7 +81,7 @@ describe('parse', () => {
|
|
|
81
81
|
})
|
|
82
82
|
})
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
test('preserves non-prefix "/socket.io/" path segment', () => {
|
|
85
85
|
/**
|
|
86
86
|
* @note It is highly unlikely but we still shouldn't modify the
|
|
87
87
|
* WebSocket client URL if it contains a user-defined "socket.io" segment.
|
|
@@ -109,7 +109,7 @@ describe('parse', () => {
|
|
|
109
109
|
})
|
|
110
110
|
})
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
test('supports a custom resolution context (base url)', () => {
|
|
113
113
|
expect(
|
|
114
114
|
new WebSocketHandler('/api/ws').parse({
|
|
115
115
|
url: new URL('ws://localhost:3000/api/ws'),
|
|
@@ -127,19 +127,19 @@ describe('parse', () => {
|
|
|
127
127
|
})
|
|
128
128
|
|
|
129
129
|
describe('test', () => {
|
|
130
|
-
|
|
130
|
+
test('returns true for a matching string', () => {
|
|
131
131
|
expect(
|
|
132
132
|
new WebSocketHandler('ws://localhost/ws').test('ws://localhost/ws'),
|
|
133
133
|
).toBe(true)
|
|
134
134
|
})
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
test('returns false for a non-matching string', () => {
|
|
137
137
|
expect(
|
|
138
138
|
new WebSocketHandler('ws://localhost/ws').test('ws://localhost/other'),
|
|
139
139
|
).toBe(false)
|
|
140
140
|
})
|
|
141
141
|
|
|
142
|
-
|
|
142
|
+
test('returns true for a relative matching string', () => {
|
|
143
143
|
expect(
|
|
144
144
|
new WebSocketHandler('ws://localhost/ws').test('/ws', {
|
|
145
145
|
baseUrl: 'ws://localhost',
|
|
@@ -147,7 +147,7 @@ describe('test', () => {
|
|
|
147
147
|
).toBe(true)
|
|
148
148
|
})
|
|
149
149
|
|
|
150
|
-
|
|
150
|
+
test('returns false for a relative non-matching string', () => {
|
|
151
151
|
expect(
|
|
152
152
|
new WebSocketHandler('ws://localhost/ws').test('/other', {
|
|
153
153
|
baseUrl: 'ws://localhost',
|
|
@@ -155,7 +155,7 @@ describe('test', () => {
|
|
|
155
155
|
).toBe(false)
|
|
156
156
|
})
|
|
157
157
|
|
|
158
|
-
|
|
158
|
+
test('returns true for a matching URL', () => {
|
|
159
159
|
expect(
|
|
160
160
|
new WebSocketHandler('ws://localhost/ws').test(
|
|
161
161
|
new URL('ws://localhost/ws'),
|
|
@@ -163,7 +163,7 @@ describe('test', () => {
|
|
|
163
163
|
).toBe(true)
|
|
164
164
|
})
|
|
165
165
|
|
|
166
|
-
|
|
166
|
+
test('returns false for a non-matching URL', () => {
|
|
167
167
|
expect(
|
|
168
168
|
new WebSocketHandler('ws://localhost/ws').test(
|
|
169
169
|
new URL('ws://localhost/other'),
|
|
@@ -171,13 +171,13 @@ describe('test', () => {
|
|
|
171
171
|
).toBe(false)
|
|
172
172
|
})
|
|
173
173
|
|
|
174
|
-
|
|
174
|
+
test('returns true for a matching HTTP url string', () => {
|
|
175
175
|
expect(
|
|
176
176
|
new WebSocketHandler('ws://localhost/ws').test('http://localhost/ws'),
|
|
177
177
|
).toBe(true)
|
|
178
178
|
})
|
|
179
179
|
|
|
180
|
-
|
|
180
|
+
test('returns false for a non-matching HTTP url string', () => {
|
|
181
181
|
expect(
|
|
182
182
|
new WebSocketHandler('ws://localhost/ws').test('http://localhost/other'),
|
|
183
183
|
).toBe(false)
|
|
@@ -1,56 +1,142 @@
|
|
|
1
|
-
import { Emitter } from '
|
|
1
|
+
import { Emitter, TypedEvent } from 'rettime'
|
|
2
2
|
import { createRequestId, resolveWebSocketUrl } from '@mswjs/interceptors'
|
|
3
3
|
import type {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
WebSocketData,
|
|
5
|
+
WebSocketExtension,
|
|
6
|
+
WebSocketExtensionMessage,
|
|
7
|
+
WebSocketExtensionApi,
|
|
8
|
+
WebSocketConnectionInfo,
|
|
9
|
+
WebSocketConnectionEventData,
|
|
10
|
+
WebSocketClientHandle,
|
|
11
|
+
WebSocketServerHandle,
|
|
7
12
|
} from '@mswjs/interceptors/WebSocket'
|
|
13
|
+
/**
|
|
14
|
+
* @note A type-only import to prevent a runtime module cycle
|
|
15
|
+
* (the frame module imports this handler at runtime).
|
|
16
|
+
*/
|
|
17
|
+
import type { WebSocketNetworkFrameEventMap } from '#core/experimental/frames/websocket-frame'
|
|
8
18
|
import {
|
|
9
19
|
type Match,
|
|
10
20
|
type Path,
|
|
11
21
|
type PathParams,
|
|
12
22
|
matchRequestUrl,
|
|
13
|
-
} from '
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
23
|
+
} from '#core/utils/matching/match-request-url'
|
|
24
|
+
import { isAbsoluteUrl } from '#core/utils/url/is-absolute-url'
|
|
25
|
+
import { Handler } from '#core/handlers/handler'
|
|
26
|
+
import { getCallFrame } from '#core/utils/internal/get-call-frame'
|
|
27
|
+
import { attachWebSocketLogger } from './utils/attach-websocket-logger'
|
|
16
28
|
|
|
17
29
|
type WebSocketHandlerParsedResult = {
|
|
18
30
|
match: Match
|
|
19
31
|
}
|
|
20
32
|
|
|
21
|
-
export
|
|
22
|
-
|
|
33
|
+
export interface WebSocketHandlerOptions {
|
|
34
|
+
/**
|
|
35
|
+
* WebSocket extensions applied to every connection matched by this handler,
|
|
36
|
+
* left to right. The last one applied encodes and decodes the traffic,
|
|
37
|
+
* and every one of them extends the connection event with its own API.
|
|
38
|
+
*/
|
|
39
|
+
extensions?: ReadonlyArray<AnyWebSocketExtension>
|
|
23
40
|
}
|
|
24
41
|
|
|
25
|
-
export
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
42
|
+
export type AnyWebSocketExtension = WebSocketExtension<unknown, unknown>
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The connection event of a handler with the given extension:
|
|
46
|
+
* the connection speaks the extension's messages and the event
|
|
47
|
+
* carries the extension's own API (e.g. rooms).
|
|
48
|
+
*/
|
|
49
|
+
export type WebSocketHandlerConnectionEvent<
|
|
50
|
+
Extension extends AnyWebSocketExtension = WebSocketExtension,
|
|
51
|
+
> = WebSocketConnectionEvent<WebSocketExtensionMessage<Extension>> &
|
|
52
|
+
WebSocketExtensionApi<Extension>
|
|
53
|
+
|
|
54
|
+
export type WebSocketHandlerEventMap<
|
|
55
|
+
Extension extends AnyWebSocketExtension = WebSocketExtension,
|
|
56
|
+
> = {
|
|
57
|
+
connection: WebSocketHandlerConnectionEvent<Extension>
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* The connection matched by a handler.
|
|
62
|
+
*
|
|
63
|
+
* @note Typed against the connection handles, not the connection classes,
|
|
64
|
+
* so a handler accepts connections living anywhere (e.g. in another
|
|
65
|
+
* runtime, or a custom implementation of the handles).
|
|
66
|
+
*/
|
|
67
|
+
export interface WebSocketHandlerConnection<Message = WebSocketData> {
|
|
68
|
+
client: WebSocketClientHandle<Message>
|
|
69
|
+
server: WebSocketServerHandle<Message>
|
|
70
|
+
info: WebSocketConnectionInfo
|
|
29
71
|
params: PathParams
|
|
30
72
|
}
|
|
31
73
|
|
|
74
|
+
export class WebSocketConnectionEvent<Message = WebSocketData>
|
|
75
|
+
extends TypedEvent<void, void, 'connection'>
|
|
76
|
+
implements WebSocketHandlerConnection<Message>
|
|
77
|
+
{
|
|
78
|
+
public readonly client: WebSocketClientHandle<Message>
|
|
79
|
+
public readonly server: WebSocketServerHandle<Message>
|
|
80
|
+
public readonly info: WebSocketConnectionInfo
|
|
81
|
+
public readonly params: PathParams
|
|
82
|
+
|
|
83
|
+
constructor(connection: WebSocketHandlerConnection<Message>) {
|
|
84
|
+
super('connection')
|
|
85
|
+
this.client = connection.client
|
|
86
|
+
this.server = connection.server
|
|
87
|
+
this.info = connection.info
|
|
88
|
+
this.params = connection.params
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* The connection resolved by a handler: the matched connection
|
|
94
|
+
* extended with the handler extension's own API.
|
|
95
|
+
*/
|
|
96
|
+
export type WebSocketHandlerResolvedConnection<
|
|
97
|
+
Extension extends AnyWebSocketExtension = WebSocketExtension,
|
|
98
|
+
> = WebSocketHandlerConnection<WebSocketExtensionMessage<Extension>> &
|
|
99
|
+
WebSocketExtensionApi<Extension>
|
|
100
|
+
|
|
32
101
|
export interface WebSocketResolutionContext {
|
|
33
102
|
baseUrl?: string
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* An emit-only reference to the network frame's events.
|
|
106
|
+
* Allows handlers to emit additional events not covered by the frame
|
|
107
|
+
* into the network's life-cycle event stream (e.g. `server.events`).
|
|
108
|
+
*/
|
|
109
|
+
events?: Pick<Emitter<WebSocketNetworkFrameEventMap>, 'emit'>
|
|
110
|
+
|
|
34
111
|
[kAutoConnect]?: boolean
|
|
35
112
|
}
|
|
36
113
|
|
|
37
114
|
export const kEmitter = Symbol('kEmitter')
|
|
38
|
-
export const kSender = Symbol('kSender')
|
|
39
115
|
export const kConnect = Symbol('kConnect')
|
|
40
116
|
export const kAutoConnect = Symbol('kAutoConnect')
|
|
41
117
|
|
|
42
118
|
const kStopPropagationPatched = Symbol('kStopPropagationPatched')
|
|
43
119
|
const KOnStopPropagation = Symbol('KOnStopPropagation')
|
|
44
120
|
|
|
45
|
-
export class WebSocketHandler
|
|
121
|
+
export class WebSocketHandler<
|
|
122
|
+
Extension extends AnyWebSocketExtension = WebSocketExtension,
|
|
123
|
+
> extends Handler {
|
|
46
124
|
public id: string
|
|
47
125
|
public callFrame?: string
|
|
48
|
-
public kind = 'websocket' as const
|
|
49
126
|
|
|
50
|
-
|
|
127
|
+
public readonly kind = 'websocket'
|
|
128
|
+
|
|
129
|
+
protected [kEmitter]: Emitter<WebSocketHandlerEventMap<Extension>>
|
|
130
|
+
protected readonly extensions: ReadonlyArray<AnyWebSocketExtension>
|
|
131
|
+
|
|
132
|
+
constructor(
|
|
133
|
+
protected readonly url: Path,
|
|
134
|
+
options?: WebSocketHandlerOptions,
|
|
135
|
+
) {
|
|
136
|
+
super()
|
|
51
137
|
|
|
52
|
-
constructor(protected readonly url: Path) {
|
|
53
138
|
this.id = createRequestId()
|
|
139
|
+
this.extensions = options?.extensions ?? []
|
|
54
140
|
|
|
55
141
|
this[kEmitter] = new Emitter()
|
|
56
142
|
this.callFrame = getCallFrame(new Error())
|
|
@@ -63,11 +149,15 @@ export class WebSocketHandler {
|
|
|
63
149
|
const clientUrl = new URL(args.url)
|
|
64
150
|
|
|
65
151
|
// Resolve the WebSocket handler path:
|
|
66
|
-
// -
|
|
152
|
+
// - Relative string URLs are resolved against the base URL (via Interceptors).
|
|
153
|
+
// - Absolute string URLs are preserved. Parsing them as a URL would
|
|
154
|
+
// percent-encode wildcards in the host (e.g. "ws://*" becomes "ws://%2A").
|
|
67
155
|
// - String URLs starting with a wildcard are preserved (prepending a scheme there will break them).
|
|
68
156
|
// - RegExp paths are preserved.
|
|
69
157
|
const resolvedHandlerUrl =
|
|
70
|
-
this.url instanceof RegExp ||
|
|
158
|
+
this.url instanceof RegExp ||
|
|
159
|
+
isAbsoluteUrl(this.url) ||
|
|
160
|
+
this.url.startsWith('*')
|
|
71
161
|
? this.url
|
|
72
162
|
: this.#resolveWebSocketUrl(this.url, args.resolutionContext?.baseUrl)
|
|
73
163
|
|
|
@@ -104,20 +194,38 @@ export class WebSocketHandler {
|
|
|
104
194
|
}
|
|
105
195
|
|
|
106
196
|
public async run(
|
|
107
|
-
connection:
|
|
197
|
+
connection: WebSocketConnectionEventData,
|
|
108
198
|
resolutionContext?: WebSocketResolutionContext,
|
|
109
|
-
): Promise<
|
|
199
|
+
): Promise<WebSocketHandlerResolvedConnection<Extension> | null> {
|
|
110
200
|
const parsedResult = this.#match(connection.client.url, resolutionContext)
|
|
111
201
|
|
|
112
202
|
if (parsedResult == null) {
|
|
113
203
|
return null
|
|
114
204
|
}
|
|
115
205
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
206
|
+
// Every consumer of the connection objects (listeners, `link.broadcast()`,
|
|
207
|
+
// the logger) speaks the extensions' message domain from here on.
|
|
208
|
+
for (const extension of this.extensions) {
|
|
209
|
+
extension.apply(connection)
|
|
119
210
|
}
|
|
120
211
|
|
|
212
|
+
/**
|
|
213
|
+
* @note Expose the extensions' own APIs (e.g. rooms) on the connection
|
|
214
|
+
* event, merged left to right. The link infers the merged type from the
|
|
215
|
+
* extensions it was given; `Object.assign` with a spread of sources is
|
|
216
|
+
* untyped, which is what allows the merged value to take that type.
|
|
217
|
+
*/
|
|
218
|
+
const resolvedConnection: WebSocketHandlerResolvedConnection<Extension> =
|
|
219
|
+
Object.assign(
|
|
220
|
+
{
|
|
221
|
+
client: connection.client,
|
|
222
|
+
server: connection.server,
|
|
223
|
+
info: connection.info,
|
|
224
|
+
params: parsedResult.match.params || {},
|
|
225
|
+
},
|
|
226
|
+
...this.extensions.map((extension) => extension.extend?.(connection)),
|
|
227
|
+
)
|
|
228
|
+
|
|
121
229
|
if (resolutionContext?.[kAutoConnect] ?? true) {
|
|
122
230
|
if (this[kConnect](resolvedConnection)) {
|
|
123
231
|
return resolvedConnection
|
|
@@ -154,7 +262,9 @@ export class WebSocketHandler {
|
|
|
154
262
|
return null
|
|
155
263
|
}
|
|
156
264
|
|
|
157
|
-
protected [kConnect](
|
|
265
|
+
protected [kConnect](
|
|
266
|
+
connection: WebSocketHandlerResolvedConnection<Extension>,
|
|
267
|
+
): boolean {
|
|
158
268
|
// Support `event.stopPropagation()` for various client/server events.
|
|
159
269
|
connection.client.addEventListener(
|
|
160
270
|
'message',
|
|
@@ -183,13 +293,16 @@ export class WebSocketHandler {
|
|
|
183
293
|
)
|
|
184
294
|
|
|
185
295
|
/**
|
|
186
|
-
* @fixme
|
|
187
|
-
* exceptions propagate properly.
|
|
296
|
+
* @fixme Await these events (e.g. via `.emitAsPromise()`) to have
|
|
297
|
+
* exceptions from asynchronous listeners propagate properly.
|
|
188
298
|
*/
|
|
189
|
-
return this[kEmitter].emit(
|
|
299
|
+
return this[kEmitter].emit(
|
|
300
|
+
// Carry the extension's own API (e.g. rooms) over to the event.
|
|
301
|
+
Object.assign(new WebSocketConnectionEvent(connection), connection),
|
|
302
|
+
)
|
|
190
303
|
}
|
|
191
304
|
|
|
192
|
-
public log(connection:
|
|
305
|
+
public log(connection: WebSocketConnectionEventData): () => void {
|
|
193
306
|
return attachWebSocketLogger(connection)
|
|
194
307
|
}
|
|
195
308
|
|
|
@@ -217,8 +330,7 @@ export class WebSocketHandler {
|
|
|
217
330
|
function createStopPropagationListener(handler: WebSocketHandler) {
|
|
218
331
|
return function stopPropagationListener(event: Event) {
|
|
219
332
|
const propagationStoppedAt = Reflect.get(event, 'kPropagationStoppedAt') as
|
|
220
|
-
|
|
|
221
|
-
| undefined
|
|
333
|
+
string | undefined
|
|
222
334
|
|
|
223
335
|
if (propagationStoppedAt && handler.id !== propagationStoppedAt) {
|
|
224
336
|
event.stopImmediatePropagation()
|
package/src/{core/ws/WebSocketIndexedDBClientStore.ts → ws/websocket-indexeddb-client-store.ts}
RENAMED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import { type SerializedWebSocketClient } from './WebSocketClientStore'
|
|
1
|
+
import type { WebSocketClientHandle } from '@mswjs/interceptors/WebSocket'
|
|
2
|
+
import type { WebSocketClientStore } from './websocket-client-store'
|
|
3
|
+
import type { SerializedWebSocketClient } from './websocket-client-store'
|
|
5
4
|
|
|
6
5
|
const DB_NAME = 'msw-websocket-clients'
|
|
7
6
|
const DB_STORE_NAME = 'clients'
|
|
@@ -13,8 +12,8 @@ export class WebSocketIndexedDBClientStore implements WebSocketClientStore {
|
|
|
13
12
|
this.db = this.createDatabase()
|
|
14
13
|
}
|
|
15
14
|
|
|
16
|
-
public async add(client:
|
|
17
|
-
const promise =
|
|
15
|
+
public async add(client: WebSocketClientHandle): Promise<void> {
|
|
16
|
+
const promise = Promise.withResolvers<void>()
|
|
18
17
|
const store = await this.getStore()
|
|
19
18
|
|
|
20
19
|
/**
|
|
@@ -40,11 +39,11 @@ export class WebSocketIndexedDBClientStore implements WebSocketClientStore {
|
|
|
40
39
|
)
|
|
41
40
|
}
|
|
42
41
|
|
|
43
|
-
return promise
|
|
42
|
+
return promise.promise
|
|
44
43
|
}
|
|
45
44
|
|
|
46
45
|
public async getAll(): Promise<Array<SerializedWebSocketClient>> {
|
|
47
|
-
const promise =
|
|
46
|
+
const promise = Promise.withResolvers<Array<SerializedWebSocketClient>>()
|
|
48
47
|
const store = await this.getStore()
|
|
49
48
|
const request = store.getAll() as IDBRequest<
|
|
50
49
|
Array<SerializedWebSocketClient>
|
|
@@ -62,11 +61,11 @@ export class WebSocketIndexedDBClientStore implements WebSocketClientStore {
|
|
|
62
61
|
)
|
|
63
62
|
}
|
|
64
63
|
|
|
65
|
-
return promise
|
|
64
|
+
return promise.promise
|
|
66
65
|
}
|
|
67
66
|
|
|
68
67
|
public async deleteMany(clientIds: Array<string>): Promise<void> {
|
|
69
|
-
const promise =
|
|
68
|
+
const promise = Promise.withResolvers<void>()
|
|
70
69
|
const store = await this.getStore()
|
|
71
70
|
|
|
72
71
|
for (const clientId of clientIds) {
|
|
@@ -85,11 +84,11 @@ export class WebSocketIndexedDBClientStore implements WebSocketClientStore {
|
|
|
85
84
|
)
|
|
86
85
|
}
|
|
87
86
|
|
|
88
|
-
return promise
|
|
87
|
+
return promise.promise
|
|
89
88
|
}
|
|
90
89
|
|
|
91
90
|
private async createDatabase(): Promise<IDBDatabase> {
|
|
92
|
-
const promise =
|
|
91
|
+
const promise = Promise.withResolvers<IDBDatabase>()
|
|
93
92
|
const request = indexedDB.open(DB_NAME, 1)
|
|
94
93
|
|
|
95
94
|
request.onsuccess = ({ currentTarget }) => {
|
|
@@ -128,7 +127,7 @@ export class WebSocketIndexedDBClientStore implements WebSocketClientStore {
|
|
|
128
127
|
)
|
|
129
128
|
}
|
|
130
129
|
|
|
131
|
-
return promise
|
|
130
|
+
return promise.promise
|
|
132
131
|
}
|
|
133
132
|
|
|
134
133
|
private async getStore(): Promise<IDBObjectStore> {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { WebSocketClientStore } from './
|
|
3
|
-
import {
|
|
1
|
+
import type { WebSocketClientHandle } from '@mswjs/interceptors/WebSocket'
|
|
2
|
+
import type { WebSocketClientStore } from './websocket-client-store'
|
|
3
|
+
import type { SerializedWebSocketClient } from './websocket-client-store'
|
|
4
4
|
|
|
5
5
|
export class WebSocketMemoryClientStore implements WebSocketClientStore {
|
|
6
6
|
private store: Map<string, SerializedWebSocketClient>
|
|
@@ -9,7 +9,7 @@ export class WebSocketMemoryClientStore implements WebSocketClientStore {
|
|
|
9
9
|
this.store = new Map()
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
public async add(client:
|
|
12
|
+
public async add(client: WebSocketClientHandle): Promise<void> {
|
|
13
13
|
this.store.set(client.id, { id: client.id, url: client.url.href })
|
|
14
14
|
}
|
|
15
15
|
|