@depup/msw 2.15.0-depup.9 → 3.0.0-depup.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 +5 -11
- package/changes.json +4 -28
- package/cli/init.js +12 -9
- package/cli/invariant.js +2 -2
- package/lib/_chunks/attach-sibling-handlers.js +360 -0
- package/lib/_chunks/attach-sibling-handlers.js.map +1 -0
- package/lib/_chunks/colors.js +18 -0
- package/lib/_chunks/colors.js.map +1 -0
- package/lib/_chunks/cookie-store.js +348 -0
- package/lib/_chunks/cookie-store.js.map +1 -0
- package/lib/_chunks/execute-handlers.js +29 -0
- package/lib/_chunks/execute-handlers.js.map +1 -0
- package/lib/_chunks/handlers-controller.d.ts +262 -0
- package/lib/_chunks/has-ref-counted.js +9 -0
- package/lib/_chunks/has-ref-counted.js.map +1 -0
- package/lib/_chunks/http-handler.d.ts +72 -0
- package/lib/_chunks/http-handler.js +182 -0
- package/lib/_chunks/http-handler.js.map +1 -0
- package/lib/_chunks/http-response.js +137 -0
- package/lib/_chunks/http-response.js.map +1 -0
- package/lib/{core → _chunks}/http.d.ts +15 -18
- package/lib/_chunks/http.js +30 -0
- package/lib/_chunks/http.js.map +1 -0
- package/lib/_chunks/interceptor-source.d.ts +163 -0
- package/lib/_chunks/interceptor-source.js +756 -0
- package/lib/_chunks/interceptor-source.js.map +1 -0
- package/lib/_chunks/is-object.js +11 -0
- package/lib/_chunks/is-object.js.map +1 -0
- package/lib/_chunks/match-request-url.d.ts +14 -0
- package/lib/_chunks/request-handler.d.ts +295 -0
- package/lib/_chunks/request-handler.js +369 -0
- package/lib/_chunks/request-handler.js.map +1 -0
- package/lib/_chunks/shared-options.d.ts +20 -0
- package/lib/_chunks/sse.d.ts +95 -0
- package/lib/_chunks/sse.js +599 -0
- package/lib/_chunks/sse.js.map +1 -0
- package/lib/_chunks/symbols.js +22 -0
- package/lib/_chunks/symbols.js.map +1 -0
- package/lib/_chunks/websocket-upgrade.js +46 -0
- package/lib/_chunks/websocket-upgrade.js.map +1 -0
- package/lib/_chunks/ws.d.ts +133 -0
- package/lib/_chunks/ws.js +293 -0
- package/lib/_chunks/ws.js.map +1 -0
- package/lib/browser/index.d.ts +225 -96
- package/lib/browser/index.js +555 -3694
- package/lib/browser/index.js.map +1 -1
- package/lib/core/experimental/index.d.ts +3 -17
- package/lib/core/experimental/index.js +2 -38
- package/lib/core/index.d.ts +15 -27
- package/lib/core/index.js +15 -64
- package/lib/graphql/index.d.ts +550 -0
- package/lib/graphql/index.js +1244 -0
- package/lib/graphql/index.js.map +1 -0
- package/lib/http/index.d.ts +4 -0
- package/lib/http/index.js +4 -0
- package/lib/iife/index.js +35857 -28422
- package/lib/iife/index.js.map +1 -1
- package/lib/mockServiceWorker.js +185 -86
- package/lib/node/index.d.ts +79 -104
- package/lib/node/index.js +103 -201
- package/lib/node/index.js.map +1 -1
- package/lib/sse/index.d.ts +2 -0
- package/lib/sse/index.js +2 -0
- package/lib/{core → utils}/bypass.d.ts +5 -4
- package/lib/utils/bypass.js +41 -0
- package/lib/utils/bypass.js.map +1 -0
- package/lib/utils/delay.d.ts +15 -0
- package/lib/utils/delay.js +45 -0
- package/lib/utils/delay.js.map +1 -0
- package/lib/utils/get-clean-url-string.d.ts +9 -0
- package/lib/utils/get-clean-url-string.js +15 -0
- package/lib/utils/get-clean-url-string.js.map +1 -0
- package/lib/utils/get-response.d.ts +13 -0
- package/lib/utils/get-response.js +23 -0
- package/lib/utils/get-response.js.map +1 -0
- package/lib/utils/is-common-asset-request.d.ts +22 -0
- package/lib/utils/is-common-asset-request.js +31 -0
- package/lib/utils/is-common-asset-request.js.map +1 -0
- package/lib/utils/passthrough.d.ts +31 -0
- package/lib/utils/passthrough.js +41 -0
- package/lib/utils/passthrough.js.map +1 -0
- package/lib/vite/index.d.ts +44 -0
- package/lib/vite/index.js +90 -0
- package/lib/vite/index.js.map +1 -0
- package/lib/vite/runtime.d.ts +6 -0
- package/lib/vite/runtime.js +77 -0
- package/lib/vite/runtime.js.map +1 -0
- package/lib/ws/index.d.ts +4 -0
- package/lib/ws/index.js +4 -0
- package/package.json +98 -229
- package/src/browser/default-network-options.ts +31 -0
- package/src/browser/glossary.ts +11 -23
- package/src/browser/index.ts +5 -1
- package/src/browser/setup-worker.ts +15 -68
- package/src/browser/sources/fallback-http-source.ts +1 -1
- package/src/browser/sources/service-worker-source.ts +76 -69
- package/src/browser/tsconfig.browser.json +4 -2
- package/src/browser/utils/{deserializeRequest.ts → deserialize-request.ts} +3 -4
- package/src/browser/utils/{getAbsoluteWorkerUrl.test.ts → get-absolute-worker-url.test.ts} +3 -3
- package/src/browser/utils/get-worker-instance.ts +2 -2
- package/src/browser/utils/should-invalidate-worker.test.ts +11 -11
- package/src/browser/utils/should-invalidate-worker.ts +1 -1
- package/src/browser/utils/validate-worker-scope.ts +1 -1
- package/src/browser/utils/{workerChannel.ts → worker-channel.ts} +42 -20
- package/src/core/experimental/define-network.test.ts +43 -8
- package/src/core/experimental/define-network.ts +32 -13
- package/src/core/experimental/frames/http-frame.test.ts +15 -13
- package/src/core/experimental/frames/http-frame.ts +10 -9
- package/src/core/experimental/frames/websocket-frame.test.ts +129 -15
- package/src/core/experimental/frames/websocket-frame.ts +71 -20
- package/src/core/experimental/handlers-controller.test.ts +141 -34
- package/src/core/experimental/handlers-controller.ts +107 -30
- package/src/core/experimental/index.ts +1 -0
- package/src/core/experimental/on-unhandled-frame.test.ts +19 -19
- package/src/core/experimental/on-unhandled-frame.ts +7 -12
- package/src/core/experimental/request-utils.test.ts +4 -29
- package/src/core/experimental/request-utils.ts +0 -14
- package/src/core/experimental/sources/interceptor-source.ts +44 -29
- package/src/core/experimental/sources/network-source.test.ts +3 -3
- package/src/core/experimental/sources/network-source.ts +3 -3
- package/src/core/handlers/handler.ts +42 -0
- package/src/core/handlers/{RequestHandler.ts → request-handler.ts} +26 -41
- package/src/core/index.ts +35 -58
- package/src/core/shared-options.ts +21 -0
- package/src/core/type-utils.ts +18 -0
- package/src/core/utils/{cookieStore.ts → cookie-store.ts} +14 -9
- package/src/core/utils/{executeHandlers.ts → execute-handlers.ts} +2 -2
- package/src/core/utils/http-status-messages.ts +69 -0
- package/src/core/utils/internal/{attachSiblingHandlers.ts → attach-sibling-handlers.ts} +20 -0
- package/src/core/utils/internal/{devUtils.test.ts → dev-utils.test.ts} +3 -3
- package/src/core/utils/internal/{Disposable.ts → disposable.ts} +1 -1
- package/src/core/utils/internal/{getCallFrame.test.ts → get-call-frame.test.ts} +1 -1
- package/src/core/utils/internal/{getCallFrame.ts → get-call-frame.ts} +1 -1
- package/src/core/utils/internal/{hasRefCounted.test.ts → has-ref-counted.test.ts} +4 -4
- package/src/core/utils/internal/{hasRefCounted.ts → has-ref-counted.ts} +1 -1
- package/src/core/utils/internal/{isIterable.test.ts → is-iterable.test.ts} +1 -1
- package/src/core/utils/internal/is-iterable.ts +16 -0
- package/src/core/utils/internal/{isObject.test.ts → is-object.test.ts} +1 -1
- package/src/core/utils/internal/{isStringEqual.test.ts → is-string-equal.test.ts} +7 -7
- package/src/core/utils/internal/{jsonParse.test.ts → json-parse.test.ts} +1 -1
- package/src/core/utils/internal/observe-response-body-stream.test.ts +7 -7
- package/src/core/utils/internal/observe-response-body-stream.ts +3 -4
- package/src/core/utils/internal/{parseMultipartData.test.ts → parse-multipart-data.test.ts} +1 -1
- package/src/core/utils/internal/{parseMultipartData.ts → parse-multipart-data.ts} +1 -1
- package/src/core/utils/internal/{toReadonlyArray.test.ts → to-readonly-array.test.ts} +4 -4
- package/src/core/utils/logging/colors.ts +13 -0
- package/src/core/utils/logging/{getStatusCodeColor.test.ts → get-status-code-color.test.ts} +1 -1
- package/src/core/utils/logging/{getTimestamp.test.ts → get-timestamp.test.ts} +1 -1
- package/src/core/utils/logging/{serializeRequest.test.ts → serialize-request.test.ts} +1 -1
- package/src/core/utils/logging/{serializeResponse.test.ts → serialize-response.test.ts} +8 -10
- package/src/core/utils/logging/{serializeResponse.ts → serialize-response.ts} +2 -4
- package/src/core/utils/matching/match-request-url.test.ts +90 -0
- package/src/core/utils/matching/match-request-url.ts +45 -0
- package/src/core/utils/matching/{normalizePath.node.test.ts → normalize-path.node.test.ts} +2 -4
- package/src/core/utils/matching/{normalizePath.test.ts → normalize-path.test.ts} +2 -4
- package/src/core/utils/matching/{normalizePath.ts → normalize-path.ts} +8 -5
- package/src/core/utils/request/{getAllAcceptedMimeTypes.test.ts → get-all-accepted-mime-types.test.ts} +14 -14
- package/src/core/utils/request/get-request-cookies.ts +76 -0
- package/src/core/utils/request/store-response-cookies.ts +15 -0
- package/src/core/utils/request/{toPublicUrl.node.test.ts → to-public-url.node.test.ts} +1 -1
- package/src/core/utils/request/{toPublicUrl.test.ts → to-public-url.test.ts} +2 -2
- package/src/core/utils/{HttpResponse/decorators.ts → response-decorators.ts} +6 -8
- package/src/core/utils/url/{getAbsoluteUrl.node.test.ts → get-absolute-url.node.test.ts} +5 -7
- package/src/core/utils/url/{getAbsoluteUrl.test.ts → get-absolute-url.test.ts} +7 -7
- package/src/core/utils/url/{getAbsoluteUrl.ts → get-absolute-url.ts} +1 -1
- package/src/core/utils/url/is-absolute-url.test.ts +30 -0
- package/src/{core/handlers/GraphQLHandler.test.ts → graphql/graphql-handler.test.ts} +37 -36
- package/src/{core/handlers/GraphQLHandler.ts → graphql/graphql-handler.ts} +54 -41
- package/src/graphql/graphql-subscription-event.ts +39 -0
- package/src/graphql/graphql-subscription.test.ts +208 -0
- package/src/graphql/graphql-subscription.ts +1487 -0
- package/src/graphql/graphql.test.ts +14 -0
- package/src/graphql/graphql.ts +179 -0
- package/src/graphql/index.ts +34 -0
- package/src/{core/utils/internal/parseGraphQLRequest.test.ts → graphql/parse-graphql-request.test.ts} +47 -6
- package/src/{core/utils/internal/parseGraphQLRequest.ts → graphql/parse-graphql-request.ts} +59 -32
- package/src/{core/handlers/HttpHandler.test.ts → http/http-handler.test.ts} +22 -22
- package/src/{core/handlers/HttpHandler.ts → http/http-handler.ts} +16 -18
- package/src/{core/HttpResponse.test.ts → http/http-response.test.ts} +25 -27
- package/src/{core/HttpResponse.ts → http/http-response.ts} +15 -17
- package/src/{core → http}/http.ts +7 -7
- package/src/http/index.test.ts +19 -0
- package/src/http/index.ts +22 -0
- package/src/http/symbols.ts +19 -0
- package/src/iife/index.ts +2 -0
- package/src/mockServiceWorker.js +183 -84
- package/src/node/async-handlers-controller.test.ts +4 -4
- package/src/node/glossary.ts +8 -4
- package/src/node/index.ts +1 -6
- package/src/node/setup-server-common.ts +16 -73
- package/src/node/setup-server.ts +9 -40
- package/src/sse/index.test.ts +14 -0
- package/src/sse/index.ts +7 -0
- package/src/{core → sse}/sse.ts +25 -21
- package/src/tsconfig.core.build.json +5 -1
- package/src/tsconfig.core.json +8 -1
- package/src/tsconfig.node.json +1 -1
- package/src/tsconfig.src.json +1 -1
- package/src/{core → utils}/bypass.test.ts +22 -5
- package/src/{core → utils}/bypass.ts +11 -0
- package/src/{core → utils}/delay.ts +5 -5
- package/src/utils/get-clean-url-string.test.ts +24 -0
- package/src/utils/get-clean-url-string.ts +16 -0
- package/src/{core/getResponse.test.ts → utils/get-response.test.ts} +9 -9
- package/src/{core/getResponse.ts → utils/get-response.ts} +2 -2
- package/src/{core/isCommonAssetRequest.ts → utils/is-common-asset-request.ts} +4 -3
- package/src/utils/passthrough.test.ts +41 -0
- package/src/utils/passthrough.ts +46 -0
- package/src/vite/client.d.ts +16 -0
- package/src/vite/index.ts +4 -0
- package/src/vite/options.d.ts +5 -0
- package/src/vite/plugin.test.ts +918 -0
- package/src/vite/plugin.ts +133 -0
- package/src/vite/runtime.ts +117 -0
- package/src/vite/tsconfig.build.json +7 -0
- package/src/ws/index.ts +23 -0
- package/src/{core/ws/utils/attachWebSocketLogger.ts → ws/utils/attach-websocket-logger.ts} +45 -23
- package/src/{core/ws/utils/getMessageLength.test.ts → ws/utils/get-message-length.test.ts} +4 -4
- package/src/{core/ws/utils/getMessageLength.ts → ws/utils/get-message-length.ts} +1 -1
- package/src/{core/ws/utils/getPublicData.test.ts → ws/utils/get-public-data.test.ts} +7 -7
- package/src/ws/utils/get-public-data.ts +23 -0
- package/src/{core/ws/utils/truncateMessage.test.ts → ws/utils/truncate-message.test.ts} +3 -3
- package/src/{core/ws/WebSocketClientManager.test.ts → ws/websocket-client-manager.test.ts} +8 -9
- package/src/{core/ws/WebSocketClientManager.ts → ws/websocket-client-manager.ts} +24 -28
- package/src/{core/ws/WebSocketClientStore.ts → ws/websocket-client-store.ts} +2 -2
- package/src/{core/handlers/WebSocketHandler.test.ts → ws/websocket-handler.test.ts} +15 -15
- package/src/{core/handlers/WebSocketHandler.ts → ws/websocket-handler.ts} +144 -32
- package/src/{core/ws/WebSocketIndexedDBClientStore.ts → ws/websocket-indexeddb-client-store.ts} +12 -13
- package/src/{core/ws/WebSocketMemoryClientStore.ts → ws/websocket-memory-client-store.ts} +4 -4
- package/src/ws/websocket-upgrade.ts +83 -0
- package/src/{core → ws}/ws.test.ts +3 -4
- package/src/{core → ws}/ws.ts +106 -53
- package/browser/package.json +0 -31
- package/cli/package.json +0 -3
- package/config/package.json +0 -3
- package/config/scripts/postinstall.js +0 -36
- package/lib/browser/index.d.mts +0 -112
- package/lib/browser/index.mjs +0 -3706
- package/lib/browser/index.mjs.map +0 -1
- package/lib/core/HttpResponse-BE_Y2Ak9.d.mts +0 -389
- package/lib/core/HttpResponse-DL-P1EeG.d.ts +0 -389
- package/lib/core/HttpResponse.d.mts +0 -6
- package/lib/core/HttpResponse.d.ts +0 -6
- package/lib/core/HttpResponse.js +0 -176
- package/lib/core/HttpResponse.js.map +0 -1
- package/lib/core/HttpResponse.mjs +0 -159
- package/lib/core/HttpResponse.mjs.map +0 -1
- package/lib/core/bypass.d.mts +0 -16
- package/lib/core/bypass.js +0 -42
- package/lib/core/bypass.js.map +0 -1
- package/lib/core/bypass.mjs +0 -22
- package/lib/core/bypass.mjs.map +0 -1
- package/lib/core/delay.d.mts +0 -18
- package/lib/core/delay.d.ts +0 -18
- package/lib/core/delay.js +0 -77
- package/lib/core/delay.js.map +0 -1
- package/lib/core/delay.mjs +0 -57
- package/lib/core/delay.mjs.map +0 -1
- package/lib/core/experimental/compat.d.mts +0 -17
- package/lib/core/experimental/compat.d.ts +0 -17
- package/lib/core/experimental/compat.js +0 -55
- package/lib/core/experimental/compat.js.map +0 -1
- package/lib/core/experimental/compat.mjs +0 -37
- package/lib/core/experimental/compat.mjs.map +0 -1
- package/lib/core/experimental/define-network.d.mts +0 -75
- package/lib/core/experimental/define-network.d.ts +0 -75
- package/lib/core/experimental/define-network.js +0 -134
- package/lib/core/experimental/define-network.js.map +0 -1
- package/lib/core/experimental/define-network.mjs +0 -119
- package/lib/core/experimental/define-network.mjs.map +0 -1
- package/lib/core/experimental/frames/http-frame.d.mts +0 -77
- package/lib/core/experimental/frames/http-frame.d.ts +0 -77
- package/lib/core/experimental/frames/http-frame.js +0 -197
- package/lib/core/experimental/frames/http-frame.js.map +0 -1
- package/lib/core/experimental/frames/http-frame.mjs +0 -181
- package/lib/core/experimental/frames/http-frame.mjs.map +0 -1
- package/lib/core/experimental/frames/network-frame.d.mts +0 -12
- package/lib/core/experimental/frames/network-frame.d.ts +0 -12
- package/lib/core/experimental/frames/network-frame.js +0 -35
- package/lib/core/experimental/frames/network-frame.js.map +0 -1
- package/lib/core/experimental/frames/network-frame.mjs +0 -15
- package/lib/core/experimental/frames/network-frame.mjs.map +0 -1
- package/lib/core/experimental/frames/websocket-frame.d.mts +0 -55
- package/lib/core/experimental/frames/websocket-frame.d.ts +0 -55
- package/lib/core/experimental/frames/websocket-frame.js +0 -131
- package/lib/core/experimental/frames/websocket-frame.js.map +0 -1
- package/lib/core/experimental/frames/websocket-frame.mjs +0 -118
- package/lib/core/experimental/frames/websocket-frame.mjs.map +0 -1
- package/lib/core/experimental/handlers-controller.d.mts +0 -36
- package/lib/core/experimental/handlers-controller.d.ts +0 -36
- package/lib/core/experimental/handlers-controller.js +0 -146
- package/lib/core/experimental/handlers-controller.js.map +0 -1
- package/lib/core/experimental/handlers-controller.mjs +0 -126
- package/lib/core/experimental/handlers-controller.mjs.map +0 -1
- package/lib/core/experimental/index.d.mts +0 -17
- package/lib/core/experimental/index.js.map +0 -1
- package/lib/core/experimental/index.mjs +0 -27
- package/lib/core/experimental/index.mjs.map +0 -1
- package/lib/core/experimental/on-unhandled-frame.d.mts +0 -12
- package/lib/core/experimental/on-unhandled-frame.d.ts +0 -12
- package/lib/core/experimental/on-unhandled-frame.js +0 -91
- package/lib/core/experimental/on-unhandled-frame.js.map +0 -1
- package/lib/core/experimental/on-unhandled-frame.mjs +0 -71
- package/lib/core/experimental/on-unhandled-frame.mjs.map +0 -1
- package/lib/core/experimental/request-utils.d.mts +0 -12
- package/lib/core/experimental/request-utils.d.ts +0 -12
- package/lib/core/experimental/request-utils.js +0 -50
- package/lib/core/experimental/request-utils.js.map +0 -1
- package/lib/core/experimental/request-utils.mjs +0 -30
- package/lib/core/experimental/request-utils.mjs.map +0 -1
- package/lib/core/experimental/setup-api.d.mts +0 -33
- package/lib/core/experimental/setup-api.d.ts +0 -33
- package/lib/core/experimental/setup-api.js +0 -58
- package/lib/core/experimental/setup-api.js.map +0 -1
- package/lib/core/experimental/setup-api.mjs +0 -40
- package/lib/core/experimental/setup-api.mjs.map +0 -1
- package/lib/core/experimental/sources/interceptor-source.d.mts +0 -28
- package/lib/core/experimental/sources/interceptor-source.d.ts +0 -28
- package/lib/core/experimental/sources/interceptor-source.js +0 -155
- package/lib/core/experimental/sources/interceptor-source.js.map +0 -1
- package/lib/core/experimental/sources/interceptor-source.mjs +0 -135
- package/lib/core/experimental/sources/interceptor-source.mjs.map +0 -1
- package/lib/core/experimental/sources/network-source.d.mts +0 -31
- package/lib/core/experimental/sources/network-source.d.ts +0 -31
- package/lib/core/experimental/sources/network-source.js +0 -51
- package/lib/core/experimental/sources/network-source.js.map +0 -1
- package/lib/core/experimental/sources/network-source.mjs +0 -32
- package/lib/core/experimental/sources/network-source.mjs.map +0 -1
- package/lib/core/getResponse.d.mts +0 -18
- package/lib/core/getResponse.d.ts +0 -18
- package/lib/core/getResponse.js +0 -35
- package/lib/core/getResponse.js.map +0 -1
- package/lib/core/getResponse.mjs +0 -17
- package/lib/core/getResponse.mjs.map +0 -1
- package/lib/core/graphql.d.mts +0 -76
- package/lib/core/graphql.d.ts +0 -76
- package/lib/core/graphql.js +0 -91
- package/lib/core/graphql.js.map +0 -1
- package/lib/core/graphql.mjs +0 -74
- package/lib/core/graphql.mjs.map +0 -1
- package/lib/core/handlers/GraphQLHandler.d.mts +0 -6
- package/lib/core/handlers/GraphQLHandler.d.ts +0 -6
- package/lib/core/handlers/GraphQLHandler.js +0 -232
- package/lib/core/handlers/GraphQLHandler.js.map +0 -1
- package/lib/core/handlers/GraphQLHandler.mjs +0 -221
- package/lib/core/handlers/GraphQLHandler.mjs.map +0 -1
- package/lib/core/handlers/HttpHandler.d.mts +0 -75
- package/lib/core/handlers/HttpHandler.d.ts +0 -75
- package/lib/core/handlers/HttpHandler.js +0 -129
- package/lib/core/handlers/HttpHandler.js.map +0 -1
- package/lib/core/handlers/HttpHandler.mjs +0 -113
- package/lib/core/handlers/HttpHandler.mjs.map +0 -1
- package/lib/core/handlers/RequestHandler.d.mts +0 -6
- package/lib/core/handlers/RequestHandler.d.ts +0 -6
- package/lib/core/handlers/RequestHandler.js +0 -365
- package/lib/core/handlers/RequestHandler.js.map +0 -1
- package/lib/core/handlers/RequestHandler.mjs +0 -348
- package/lib/core/handlers/RequestHandler.mjs.map +0 -1
- package/lib/core/handlers/WebSocketHandler.d.mts +0 -49
- package/lib/core/handlers/WebSocketHandler.d.ts +0 -49
- package/lib/core/handlers/WebSocketHandler.js +0 -178
- package/lib/core/handlers/WebSocketHandler.js.map +0 -1
- package/lib/core/handlers/WebSocketHandler.mjs +0 -160
- package/lib/core/handlers/WebSocketHandler.mjs.map +0 -1
- package/lib/core/http.d.mts +0 -31
- package/lib/core/http.js +0 -41
- package/lib/core/http.js.map +0 -1
- package/lib/core/http.mjs +0 -25
- package/lib/core/http.mjs.map +0 -1
- package/lib/core/index.d.mts +0 -27
- package/lib/core/index.js.map +0 -1
- package/lib/core/index.mjs +0 -52
- package/lib/core/index.mjs.map +0 -1
- package/lib/core/isCommonAssetRequest.d.mts +0 -20
- package/lib/core/isCommonAssetRequest.d.ts +0 -20
- package/lib/core/isCommonAssetRequest.js +0 -42
- package/lib/core/isCommonAssetRequest.js.map +0 -1
- package/lib/core/isCommonAssetRequest.mjs +0 -22
- package/lib/core/isCommonAssetRequest.mjs.map +0 -1
- package/lib/core/on-unhandled-frame-0KmwUmeV.d.ts +0 -56
- package/lib/core/on-unhandled-frame-gkokW4Rr.d.mts +0 -56
- package/lib/core/passthrough.d.mts +0 -24
- package/lib/core/passthrough.d.ts +0 -24
- package/lib/core/passthrough.js +0 -33
- package/lib/core/passthrough.js.map +0 -1
- package/lib/core/passthrough.mjs +0 -13
- package/lib/core/passthrough.mjs.map +0 -1
- package/lib/core/sharedOptions.d.mts +0 -68
- package/lib/core/sharedOptions.d.ts +0 -68
- package/lib/core/sharedOptions.js +0 -17
- package/lib/core/sharedOptions.js.map +0 -1
- package/lib/core/sharedOptions.mjs +0 -1
- package/lib/core/sharedOptions.mjs.map +0 -1
- package/lib/core/sse.d.mts +0 -102
- package/lib/core/sse.d.ts +0 -102
- package/lib/core/sse.js +0 -690
- package/lib/core/sse.js.map +0 -1
- package/lib/core/sse.mjs +0 -672
- package/lib/core/sse.mjs.map +0 -1
- package/lib/core/typeUtils.d.mts +0 -12
- package/lib/core/typeUtils.d.ts +0 -12
- package/lib/core/typeUtils.js +0 -17
- package/lib/core/typeUtils.js.map +0 -1
- package/lib/core/typeUtils.mjs +0 -1
- package/lib/core/typeUtils.mjs.map +0 -1
- package/lib/core/utils/HttpResponse/decorators.d.mts +0 -22
- package/lib/core/utils/HttpResponse/decorators.d.ts +0 -22
- package/lib/core/utils/HttpResponse/decorators.js +0 -84
- package/lib/core/utils/HttpResponse/decorators.js.map +0 -1
- package/lib/core/utils/HttpResponse/decorators.mjs +0 -54
- package/lib/core/utils/HttpResponse/decorators.mjs.map +0 -1
- package/lib/core/utils/cookieStore.d.mts +0 -13
- package/lib/core/utils/cookieStore.d.ts +0 -13
- package/lib/core/utils/cookieStore.js +0 -90
- package/lib/core/utils/cookieStore.js.map +0 -1
- package/lib/core/utils/cookieStore.mjs +0 -74
- package/lib/core/utils/cookieStore.mjs.map +0 -1
- package/lib/core/utils/executeHandlers.d.mts +0 -6
- package/lib/core/utils/executeHandlers.d.ts +0 -6
- package/lib/core/utils/executeHandlers.js +0 -51
- package/lib/core/utils/executeHandlers.js.map +0 -1
- package/lib/core/utils/executeHandlers.mjs +0 -31
- package/lib/core/utils/executeHandlers.mjs.map +0 -1
- package/lib/core/utils/handleRequest.d.mts +0 -30
- package/lib/core/utils/handleRequest.d.ts +0 -30
- package/lib/core/utils/handleRequest.js +0 -76
- package/lib/core/utils/handleRequest.js.map +0 -1
- package/lib/core/utils/handleRequest.mjs +0 -58
- package/lib/core/utils/handleRequest.mjs.map +0 -1
- package/lib/core/utils/internal/Disposable.d.mts +0 -7
- package/lib/core/utils/internal/Disposable.d.ts +0 -7
- package/lib/core/utils/internal/Disposable.js +0 -51
- package/lib/core/utils/internal/Disposable.js.map +0 -1
- package/lib/core/utils/internal/Disposable.mjs +0 -31
- package/lib/core/utils/internal/Disposable.mjs.map +0 -1
- package/lib/core/utils/internal/attachSiblingHandlers.d.mts +0 -15
- package/lib/core/utils/internal/attachSiblingHandlers.d.ts +0 -15
- package/lib/core/utils/internal/attachSiblingHandlers.js +0 -44
- package/lib/core/utils/internal/attachSiblingHandlers.js.map +0 -1
- package/lib/core/utils/internal/attachSiblingHandlers.mjs +0 -24
- package/lib/core/utils/internal/attachSiblingHandlers.mjs.map +0 -1
- package/lib/core/utils/internal/checkGlobals.d.mts +0 -3
- package/lib/core/utils/internal/checkGlobals.d.ts +0 -3
- package/lib/core/utils/internal/checkGlobals.js +0 -34
- package/lib/core/utils/internal/checkGlobals.js.map +0 -1
- package/lib/core/utils/internal/checkGlobals.mjs +0 -14
- package/lib/core/utils/internal/checkGlobals.mjs.map +0 -1
- package/lib/core/utils/internal/devUtils.d.mts +0 -28
- package/lib/core/utils/internal/devUtils.d.ts +0 -28
- package/lib/core/utils/internal/devUtils.js +0 -48
- package/lib/core/utils/internal/devUtils.js.map +0 -1
- package/lib/core/utils/internal/devUtils.mjs +0 -28
- package/lib/core/utils/internal/devUtils.mjs.map +0 -1
- package/lib/core/utils/internal/getCallFrame.d.mts +0 -6
- package/lib/core/utils/internal/getCallFrame.d.ts +0 -6
- package/lib/core/utils/internal/getCallFrame.js +0 -41
- package/lib/core/utils/internal/getCallFrame.js.map +0 -1
- package/lib/core/utils/internal/getCallFrame.mjs +0 -21
- package/lib/core/utils/internal/getCallFrame.mjs.map +0 -1
- package/lib/core/utils/internal/hasRefCounted.d.mts +0 -3
- package/lib/core/utils/internal/hasRefCounted.d.ts +0 -3
- package/lib/core/utils/internal/hasRefCounted.js +0 -34
- package/lib/core/utils/internal/hasRefCounted.js.map +0 -1
- package/lib/core/utils/internal/hasRefCounted.mjs +0 -14
- package/lib/core/utils/internal/hasRefCounted.mjs.map +0 -1
- package/lib/core/utils/internal/isHandlerKind.d.mts +0 -19
- package/lib/core/utils/internal/isHandlerKind.d.ts +0 -19
- package/lib/core/utils/internal/isHandlerKind.js +0 -30
- package/lib/core/utils/internal/isHandlerKind.js.map +0 -1
- package/lib/core/utils/internal/isHandlerKind.mjs +0 -10
- package/lib/core/utils/internal/isHandlerKind.mjs.map +0 -1
- package/lib/core/utils/internal/isIterable.d.mts +0 -20
- package/lib/core/utils/internal/isIterable.d.ts +0 -20
- package/lib/core/utils/internal/isIterable.js +0 -30
- package/lib/core/utils/internal/isIterable.js.map +0 -1
- package/lib/core/utils/internal/isIterable.mjs +0 -10
- package/lib/core/utils/internal/isIterable.mjs.map +0 -1
- package/lib/core/utils/internal/isObject.d.mts +0 -6
- package/lib/core/utils/internal/isObject.d.ts +0 -6
- package/lib/core/utils/internal/isObject.js +0 -27
- package/lib/core/utils/internal/isObject.js.map +0 -1
- package/lib/core/utils/internal/isObject.mjs +0 -7
- package/lib/core/utils/internal/isObject.mjs.map +0 -1
- package/lib/core/utils/internal/isStringEqual.d.mts +0 -6
- package/lib/core/utils/internal/isStringEqual.d.ts +0 -6
- package/lib/core/utils/internal/isStringEqual.js +0 -27
- package/lib/core/utils/internal/isStringEqual.js.map +0 -1
- package/lib/core/utils/internal/isStringEqual.mjs +0 -7
- package/lib/core/utils/internal/isStringEqual.mjs.map +0 -1
- package/lib/core/utils/internal/jsonParse.d.mts +0 -7
- package/lib/core/utils/internal/jsonParse.d.ts +0 -7
- package/lib/core/utils/internal/jsonParse.js +0 -31
- package/lib/core/utils/internal/jsonParse.js.map +0 -1
- package/lib/core/utils/internal/jsonParse.mjs +0 -11
- package/lib/core/utils/internal/jsonParse.mjs.map +0 -1
- package/lib/core/utils/internal/mergeRight.d.mts +0 -7
- package/lib/core/utils/internal/mergeRight.d.ts +0 -7
- package/lib/core/utils/internal/mergeRight.js +0 -43
- package/lib/core/utils/internal/mergeRight.js.map +0 -1
- package/lib/core/utils/internal/mergeRight.mjs +0 -23
- package/lib/core/utils/internal/mergeRight.mjs.map +0 -1
- package/lib/core/utils/internal/observe-response-body-stream.d.mts +0 -18
- package/lib/core/utils/internal/observe-response-body-stream.d.ts +0 -18
- package/lib/core/utils/internal/observe-response-body-stream.js +0 -64
- package/lib/core/utils/internal/observe-response-body-stream.js.map +0 -1
- package/lib/core/utils/internal/observe-response-body-stream.mjs +0 -44
- package/lib/core/utils/internal/observe-response-body-stream.mjs.map +0 -1
- package/lib/core/utils/internal/parseGraphQLRequest.d.mts +0 -6
- package/lib/core/utils/internal/parseGraphQLRequest.d.ts +0 -6
- package/lib/core/utils/internal/parseGraphQLRequest.js +0 -146
- package/lib/core/utils/internal/parseGraphQLRequest.js.map +0 -1
- package/lib/core/utils/internal/parseGraphQLRequest.mjs +0 -129
- package/lib/core/utils/internal/parseGraphQLRequest.mjs.map +0 -1
- package/lib/core/utils/internal/parseMultipartData.d.mts +0 -14
- package/lib/core/utils/internal/parseMultipartData.d.ts +0 -14
- package/lib/core/utils/internal/parseMultipartData.js +0 -84
- package/lib/core/utils/internal/parseMultipartData.js.map +0 -1
- package/lib/core/utils/internal/parseMultipartData.mjs +0 -64
- package/lib/core/utils/internal/parseMultipartData.mjs.map +0 -1
- package/lib/core/utils/internal/pipeEvents.d.mts +0 -8
- package/lib/core/utils/internal/pipeEvents.d.ts +0 -8
- package/lib/core/utils/internal/pipeEvents.js +0 -37
- package/lib/core/utils/internal/pipeEvents.js.map +0 -1
- package/lib/core/utils/internal/pipeEvents.mjs +0 -17
- package/lib/core/utils/internal/pipeEvents.mjs.map +0 -1
- package/lib/core/utils/internal/toReadonlyArray.d.mts +0 -6
- package/lib/core/utils/internal/toReadonlyArray.d.ts +0 -6
- package/lib/core/utils/internal/toReadonlyArray.js +0 -29
- package/lib/core/utils/internal/toReadonlyArray.js.map +0 -1
- package/lib/core/utils/internal/toReadonlyArray.mjs +0 -9
- package/lib/core/utils/internal/toReadonlyArray.mjs.map +0 -1
- package/lib/core/utils/internal/tryCatch.d.mts +0 -3
- package/lib/core/utils/internal/tryCatch.d.ts +0 -3
- package/lib/core/utils/internal/tryCatch.js +0 -32
- package/lib/core/utils/internal/tryCatch.js.map +0 -1
- package/lib/core/utils/internal/tryCatch.mjs +0 -12
- package/lib/core/utils/internal/tryCatch.mjs.map +0 -1
- package/lib/core/utils/logging/getStatusCodeColor.d.mts +0 -11
- package/lib/core/utils/logging/getStatusCodeColor.d.ts +0 -11
- package/lib/core/utils/logging/getStatusCodeColor.js +0 -40
- package/lib/core/utils/logging/getStatusCodeColor.js.map +0 -1
- package/lib/core/utils/logging/getStatusCodeColor.mjs +0 -20
- package/lib/core/utils/logging/getStatusCodeColor.mjs.map +0 -1
- package/lib/core/utils/logging/getTimestamp.d.mts +0 -9
- package/lib/core/utils/logging/getTimestamp.d.ts +0 -9
- package/lib/core/utils/logging/getTimestamp.js +0 -32
- package/lib/core/utils/logging/getTimestamp.js.map +0 -1
- package/lib/core/utils/logging/getTimestamp.mjs +0 -12
- package/lib/core/utils/logging/getTimestamp.mjs.map +0 -1
- package/lib/core/utils/logging/serializeRequest.d.mts +0 -12
- package/lib/core/utils/logging/serializeRequest.d.ts +0 -12
- package/lib/core/utils/logging/serializeRequest.js +0 -34
- package/lib/core/utils/logging/serializeRequest.js.map +0 -1
- package/lib/core/utils/logging/serializeRequest.mjs +0 -14
- package/lib/core/utils/logging/serializeRequest.mjs.map +0 -1
- package/lib/core/utils/logging/serializeResponse.d.mts +0 -9
- package/lib/core/utils/logging/serializeResponse.d.ts +0 -9
- package/lib/core/utils/logging/serializeResponse.js +0 -48
- package/lib/core/utils/logging/serializeResponse.js.map +0 -1
- package/lib/core/utils/logging/serializeResponse.mjs +0 -18
- package/lib/core/utils/logging/serializeResponse.mjs.map +0 -1
- package/lib/core/utils/matching/matchRequestUrl.d.mts +0 -20
- package/lib/core/utils/matching/matchRequestUrl.d.ts +0 -20
- package/lib/core/utils/matching/matchRequestUrl.js +0 -55
- package/lib/core/utils/matching/matchRequestUrl.js.map +0 -1
- package/lib/core/utils/matching/matchRequestUrl.mjs +0 -35
- package/lib/core/utils/matching/matchRequestUrl.mjs.map +0 -1
- package/lib/core/utils/matching/normalizePath.d.mts +0 -13
- package/lib/core/utils/matching/normalizePath.d.ts +0 -13
- package/lib/core/utils/matching/normalizePath.js +0 -33
- package/lib/core/utils/matching/normalizePath.js.map +0 -1
- package/lib/core/utils/matching/normalizePath.mjs +0 -13
- package/lib/core/utils/matching/normalizePath.mjs.map +0 -1
- package/lib/core/utils/request/getAllAcceptedMimeTypes.d.mts +0 -14
- package/lib/core/utils/request/getAllAcceptedMimeTypes.d.ts +0 -14
- package/lib/core/utils/request/getAllAcceptedMimeTypes.js +0 -61
- package/lib/core/utils/request/getAllAcceptedMimeTypes.js.map +0 -1
- package/lib/core/utils/request/getAllAcceptedMimeTypes.mjs +0 -41
- package/lib/core/utils/request/getAllAcceptedMimeTypes.mjs.map +0 -1
- package/lib/core/utils/request/getRequestCookies.d.mts +0 -3
- package/lib/core/utils/request/getRequestCookies.d.ts +0 -3
- package/lib/core/utils/request/getRequestCookies.js +0 -79
- package/lib/core/utils/request/getRequestCookies.js.map +0 -1
- package/lib/core/utils/request/getRequestCookies.mjs +0 -62
- package/lib/core/utils/request/getRequestCookies.mjs.map +0 -1
- package/lib/core/utils/request/onUnhandledRequest.d.mts +0 -9
- package/lib/core/utils/request/onUnhandledRequest.d.ts +0 -9
- package/lib/core/utils/request/onUnhandledRequest.js +0 -76
- package/lib/core/utils/request/onUnhandledRequest.js.map +0 -1
- package/lib/core/utils/request/onUnhandledRequest.mjs +0 -56
- package/lib/core/utils/request/onUnhandledRequest.mjs.map +0 -1
- package/lib/core/utils/request/storeResponseCookies.d.mts +0 -3
- package/lib/core/utils/request/storeResponseCookies.d.ts +0 -3
- package/lib/core/utils/request/storeResponseCookies.js +0 -32
- package/lib/core/utils/request/storeResponseCookies.js.map +0 -1
- package/lib/core/utils/request/storeResponseCookies.mjs +0 -12
- package/lib/core/utils/request/storeResponseCookies.mjs.map +0 -1
- package/lib/core/utils/request/toPublicUrl.d.mts +0 -7
- package/lib/core/utils/request/toPublicUrl.d.ts +0 -7
- package/lib/core/utils/request/toPublicUrl.js +0 -31
- package/lib/core/utils/request/toPublicUrl.js.map +0 -1
- package/lib/core/utils/request/toPublicUrl.mjs +0 -11
- package/lib/core/utils/request/toPublicUrl.mjs.map +0 -1
- package/lib/core/utils/toResponseInit.d.mts +0 -3
- package/lib/core/utils/toResponseInit.d.ts +0 -3
- package/lib/core/utils/toResponseInit.js +0 -31
- package/lib/core/utils/toResponseInit.js.map +0 -1
- package/lib/core/utils/toResponseInit.mjs +0 -11
- package/lib/core/utils/toResponseInit.mjs.map +0 -1
- package/lib/core/utils/url/cleanUrl.d.mts +0 -7
- package/lib/core/utils/url/cleanUrl.d.ts +0 -7
- package/lib/core/utils/url/cleanUrl.js +0 -31
- package/lib/core/utils/url/cleanUrl.js.map +0 -1
- package/lib/core/utils/url/cleanUrl.mjs +0 -11
- package/lib/core/utils/url/cleanUrl.mjs.map +0 -1
- package/lib/core/utils/url/getAbsoluteUrl.d.mts +0 -6
- package/lib/core/utils/url/getAbsoluteUrl.d.ts +0 -6
- package/lib/core/utils/url/getAbsoluteUrl.js +0 -38
- package/lib/core/utils/url/getAbsoluteUrl.js.map +0 -1
- package/lib/core/utils/url/getAbsoluteUrl.mjs +0 -18
- package/lib/core/utils/url/getAbsoluteUrl.mjs.map +0 -1
- package/lib/core/utils/url/isAbsoluteUrl.d.mts +0 -6
- package/lib/core/utils/url/isAbsoluteUrl.d.ts +0 -6
- package/lib/core/utils/url/isAbsoluteUrl.js +0 -27
- package/lib/core/utils/url/isAbsoluteUrl.js.map +0 -1
- package/lib/core/utils/url/isAbsoluteUrl.mjs +0 -7
- package/lib/core/utils/url/isAbsoluteUrl.mjs.map +0 -1
- package/lib/core/ws/WebSocketClientManager.d.mts +0 -65
- package/lib/core/ws/WebSocketClientManager.d.ts +0 -65
- package/lib/core/ws/WebSocketClientManager.js +0 -163
- package/lib/core/ws/WebSocketClientManager.js.map +0 -1
- package/lib/core/ws/WebSocketClientManager.mjs +0 -143
- package/lib/core/ws/WebSocketClientManager.mjs.map +0 -1
- package/lib/core/ws/WebSocketClientStore.d.mts +0 -13
- package/lib/core/ws/WebSocketClientStore.d.ts +0 -13
- package/lib/core/ws/WebSocketClientStore.js +0 -26
- package/lib/core/ws/WebSocketClientStore.js.map +0 -1
- package/lib/core/ws/WebSocketClientStore.mjs +0 -6
- package/lib/core/ws/WebSocketClientStore.mjs.map +0 -1
- package/lib/core/ws/WebSocketIndexedDBClientStore.d.mts +0 -14
- package/lib/core/ws/WebSocketIndexedDBClientStore.d.ts +0 -14
- package/lib/core/ws/WebSocketIndexedDBClientStore.js +0 -131
- package/lib/core/ws/WebSocketIndexedDBClientStore.js.map +0 -1
- package/lib/core/ws/WebSocketIndexedDBClientStore.mjs +0 -111
- package/lib/core/ws/WebSocketIndexedDBClientStore.mjs.map +0 -1
- package/lib/core/ws/WebSocketMemoryClientStore.d.mts +0 -12
- package/lib/core/ws/WebSocketMemoryClientStore.d.ts +0 -12
- package/lib/core/ws/WebSocketMemoryClientStore.js +0 -42
- package/lib/core/ws/WebSocketMemoryClientStore.js.map +0 -1
- package/lib/core/ws/WebSocketMemoryClientStore.mjs +0 -22
- package/lib/core/ws/WebSocketMemoryClientStore.mjs.map +0 -1
- package/lib/core/ws/handleWebSocketEvent.d.mts +0 -20
- package/lib/core/ws/handleWebSocketEvent.d.ts +0 -20
- package/lib/core/ws/handleWebSocketEvent.js +0 -61
- package/lib/core/ws/handleWebSocketEvent.js.map +0 -1
- package/lib/core/ws/handleWebSocketEvent.mjs +0 -43
- package/lib/core/ws/handleWebSocketEvent.mjs.map +0 -1
- package/lib/core/ws/utils/attachWebSocketLogger.d.mts +0 -18
- package/lib/core/ws/utils/attachWebSocketLogger.d.ts +0 -18
- package/lib/core/ws/utils/attachWebSocketLogger.js +0 -228
- package/lib/core/ws/utils/attachWebSocketLogger.js.map +0 -1
- package/lib/core/ws/utils/attachWebSocketLogger.mjs +0 -208
- package/lib/core/ws/utils/attachWebSocketLogger.mjs.map +0 -1
- package/lib/core/ws/utils/getMessageLength.d.mts +0 -11
- package/lib/core/ws/utils/getMessageLength.d.ts +0 -11
- package/lib/core/ws/utils/getMessageLength.js +0 -34
- package/lib/core/ws/utils/getMessageLength.js.map +0 -1
- package/lib/core/ws/utils/getMessageLength.mjs +0 -14
- package/lib/core/ws/utils/getMessageLength.mjs.map +0 -1
- package/lib/core/ws/utils/getPublicData.d.mts +0 -5
- package/lib/core/ws/utils/getPublicData.d.ts +0 -5
- package/lib/core/ws/utils/getPublicData.js +0 -37
- package/lib/core/ws/utils/getPublicData.js.map +0 -1
- package/lib/core/ws/utils/getPublicData.mjs +0 -17
- package/lib/core/ws/utils/getPublicData.mjs.map +0 -1
- package/lib/core/ws/utils/truncateMessage.d.mts +0 -3
- package/lib/core/ws/utils/truncateMessage.d.ts +0 -3
- package/lib/core/ws/utils/truncateMessage.js +0 -31
- package/lib/core/ws/utils/truncateMessage.js.map +0 -1
- package/lib/core/ws/utils/truncateMessage.mjs +0 -11
- package/lib/core/ws/utils/truncateMessage.mjs.map +0 -1
- package/lib/core/ws/webSocketInterceptor.d.mts +0 -5
- package/lib/core/ws/webSocketInterceptor.d.ts +0 -5
- package/lib/core/ws/webSocketInterceptor.js +0 -26
- package/lib/core/ws/webSocketInterceptor.js.map +0 -1
- package/lib/core/ws/webSocketInterceptor.mjs +0 -6
- package/lib/core/ws/webSocketInterceptor.mjs.map +0 -1
- package/lib/core/ws.d.mts +0 -88
- package/lib/core/ws.d.ts +0 -88
- package/lib/core/ws.js +0 -94
- package/lib/core/ws.js.map +0 -1
- package/lib/core/ws.mjs +0 -80
- package/lib/core/ws.mjs.map +0 -1
- package/lib/native/index.d.mts +0 -66
- package/lib/native/index.d.ts +0 -66
- package/lib/native/index.js +0 -88
- package/lib/native/index.js.map +0 -1
- package/lib/native/index.mjs +0 -67
- package/lib/native/index.mjs.map +0 -1
- package/lib/node/index.d.mts +0 -113
- package/lib/node/index.mjs +0 -185
- package/lib/node/index.mjs.map +0 -1
- package/lib/shims/cookie.d.mts +0 -7
- package/lib/shims/cookie.d.ts +0 -7
- package/lib/shims/cookie.js +0 -294
- package/lib/shims/cookie.mjs +0 -286
- package/lib/shims/statuses.d.mts +0 -6
- package/lib/shims/statuses.d.ts +0 -6
- package/lib/shims/statuses.js +0 -195
- package/lib/shims/statuses.mjs +0 -187
- package/native/package.json +0 -30
- package/node/package.json +0 -33
- package/src/browser/utils/pruneGetRequestBody.test.ts +0 -51
- package/src/browser/utils/pruneGetRequestBody.ts +0 -21
- package/src/core/experimental/compat.ts +0 -50
- package/src/core/experimental/setup-api.ts +0 -55
- package/src/core/graphql.test.ts +0 -11
- package/src/core/graphql.ts +0 -136
- package/src/core/passthrough.test.ts +0 -11
- package/src/core/passthrough.ts +0 -25
- package/src/core/sharedOptions.ts +0 -71
- package/src/core/typeUtils.ts +0 -26
- package/src/core/utils/handleRequest.test.ts +0 -574
- package/src/core/utils/handleRequest.ts +0 -117
- package/src/core/utils/internal/checkGlobals.ts +0 -17
- package/src/core/utils/internal/isHandlerKind.test.ts +0 -62
- package/src/core/utils/internal/isHandlerKind.ts +0 -17
- package/src/core/utils/internal/isIterable.ts +0 -32
- package/src/core/utils/internal/mergeRight.test.ts +0 -43
- package/src/core/utils/internal/mergeRight.ts +0 -30
- package/src/core/utils/internal/pipeEvents.test.ts +0 -14
- package/src/core/utils/internal/pipeEvents.ts +0 -26
- package/src/core/utils/internal/tryCatch.test.ts +0 -29
- package/src/core/utils/internal/tryCatch.ts +0 -11
- package/src/core/utils/matching/matchRequestUrl.test.ts +0 -267
- package/src/core/utils/matching/matchRequestUrl.ts +0 -77
- package/src/core/utils/request/getRequestCookies.ts +0 -88
- package/src/core/utils/request/onUnhandledRequest.node.test.ts +0 -62
- package/src/core/utils/request/onUnhandledRequest.test.ts +0 -226
- package/src/core/utils/request/onUnhandledRequest.ts +0 -81
- package/src/core/utils/request/storeResponseCookies.ts +0 -15
- package/src/core/utils/url/cleanUrl.test.ts +0 -22
- package/src/core/utils/url/cleanUrl.ts +0 -16
- package/src/core/utils/url/isAbsoluteUrl.test.ts +0 -32
- package/src/core/ws/handleWebSocketEvent.ts +0 -68
- package/src/core/ws/utils/getPublicData.ts +0 -18
- package/src/core/ws/webSocketInterceptor.ts +0 -3
- package/src/native/index.ts +0 -44
- package/src/package.json +0 -3
- package/src/shims/cookie.ts +0 -7
- package/src/shims/statuses.ts +0 -6
- /package/src/browser/utils/{getAbsoluteWorkerUrl.ts → get-absolute-worker-url.ts} +0 -0
- /package/src/core/utils/internal/{devUtils.ts → dev-utils.ts} +0 -0
- /package/src/core/utils/internal/{isObject.ts → is-object.ts} +0 -0
- /package/src/core/utils/internal/{isStringEqual.ts → is-string-equal.ts} +0 -0
- /package/src/core/utils/internal/{jsonParse.ts → json-parse.ts} +0 -0
- /package/src/core/utils/internal/{toReadonlyArray.ts → to-readonly-array.ts} +0 -0
- /package/src/core/utils/logging/{getStatusCodeColor.ts → get-status-code-color.ts} +0 -0
- /package/src/core/utils/logging/{getTimestamp.ts → get-timestamp.ts} +0 -0
- /package/src/core/utils/logging/{serializeRequest.ts → serialize-request.ts} +0 -0
- /package/src/core/utils/request/{getAllAcceptedMimeTypes.ts → get-all-accepted-mime-types.ts} +0 -0
- /package/src/core/utils/request/{toPublicUrl.ts → to-public-url.ts} +0 -0
- /package/src/core/utils/{toResponseInit.ts → to-response-init.ts} +0 -0
- /package/src/core/utils/url/{isAbsoluteUrl.ts → is-absolute-url.ts} +0 -0
- /package/src/{core → http}/http.test.ts +0 -0
- /package/src/{core/ws/utils/truncateMessage.ts → ws/utils/truncate-message.ts} +0 -0
package/README.md
CHANGED
|
@@ -13,23 +13,17 @@ npm install @depup/msw
|
|
|
13
13
|
|
|
14
14
|
| Field | Value |
|
|
15
15
|
|-------|-------|
|
|
16
|
-
| Original | [msw](https://www.npmjs.com/package/msw) @
|
|
17
|
-
| Processed | 2026-
|
|
16
|
+
| Original | [msw](https://www.npmjs.com/package/msw) @ 3.0.0 |
|
|
17
|
+
| Processed | 2026-09-28 |
|
|
18
18
|
| Smoke test | passed |
|
|
19
|
-
| Deps updated |
|
|
19
|
+
| Deps updated | 2 |
|
|
20
20
|
|
|
21
21
|
## Dependency Changes
|
|
22
22
|
|
|
23
23
|
| Dependency | From | To |
|
|
24
24
|
|------------|------|-----|
|
|
25
|
-
| @inquirer/confirm | ^6.0.11 | ^6.2
|
|
26
|
-
|
|
|
27
|
-
| cookie | ^1.1.1 | ^2.0.1 |
|
|
28
|
-
| graphql | ^16.13.2 | ^17.0.2 |
|
|
29
|
-
| path-to-regexp | ^6.3.0 | ^8.4.2 |
|
|
30
|
-
| tough-cookie | ^6.0.1 | ^6.0.2 |
|
|
31
|
-
| type-fest | ^5.5.0 | ^5.8.0 |
|
|
32
|
-
| yargs | ^17.7.2 | ^18.1.0 |
|
|
25
|
+
| @inquirer/confirm | ^6.0.11 | ^6.3.2 |
|
|
26
|
+
| type-fest | ^5.5.0 | ^5.10.0 |
|
|
33
27
|
|
|
34
28
|
---
|
|
35
29
|
|
package/changes.json
CHANGED
|
@@ -2,37 +2,13 @@
|
|
|
2
2
|
"bumped": {
|
|
3
3
|
"@inquirer/confirm": {
|
|
4
4
|
"from": "^6.0.11",
|
|
5
|
-
"to": "^6.2
|
|
6
|
-
},
|
|
7
|
-
"@mswjs/interceptors": {
|
|
8
|
-
"from": "^0.41.3",
|
|
9
|
-
"to": "^0.42.3"
|
|
10
|
-
},
|
|
11
|
-
"cookie": {
|
|
12
|
-
"from": "^1.1.1",
|
|
13
|
-
"to": "^2.0.1"
|
|
14
|
-
},
|
|
15
|
-
"graphql": {
|
|
16
|
-
"from": "^16.13.2",
|
|
17
|
-
"to": "^17.0.2"
|
|
18
|
-
},
|
|
19
|
-
"path-to-regexp": {
|
|
20
|
-
"from": "^6.3.0",
|
|
21
|
-
"to": "^8.4.2"
|
|
22
|
-
},
|
|
23
|
-
"tough-cookie": {
|
|
24
|
-
"from": "^6.0.1",
|
|
25
|
-
"to": "^6.0.2"
|
|
5
|
+
"to": "^6.3.2"
|
|
26
6
|
},
|
|
27
7
|
"type-fest": {
|
|
28
8
|
"from": "^5.5.0",
|
|
29
|
-
"to": "^5.
|
|
30
|
-
},
|
|
31
|
-
"yargs": {
|
|
32
|
-
"from": "^17.7.2",
|
|
33
|
-
"to": "^18.1.0"
|
|
9
|
+
"to": "^5.10.0"
|
|
34
10
|
}
|
|
35
11
|
},
|
|
36
|
-
"timestamp": "2026-
|
|
37
|
-
"totalUpdated":
|
|
12
|
+
"timestamp": "2026-09-28T16:11:01.003Z",
|
|
13
|
+
"totalUpdated": 2
|
|
38
14
|
}
|
package/cli/init.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import fs from 'node:fs'
|
|
2
2
|
import path from 'node:path'
|
|
3
|
-
import
|
|
3
|
+
import { styleText } from 'node:util'
|
|
4
4
|
import confirm from '@inquirer/confirm'
|
|
5
5
|
import { invariant } from './invariant.js'
|
|
6
6
|
import { SERVICE_WORKER_BUILD_PATH } from '../config/constants.js'
|
|
@@ -35,7 +35,8 @@ export async function init(args) {
|
|
|
35
35
|
else if (args.save == null) {
|
|
36
36
|
// eslint-disable-next-line no-console
|
|
37
37
|
console.log(`\
|
|
38
|
-
${
|
|
38
|
+
${styleText(
|
|
39
|
+
'cyan',
|
|
39
40
|
'INFO',
|
|
40
41
|
)} In order to ease the future updates to the worker script,
|
|
41
42
|
we recommend saving the path to the worker directory in your package.json.`)
|
|
@@ -144,21 +145,23 @@ async function copyWorkerScript(destination, cwd) {
|
|
|
144
145
|
function printSuccessMessage(paths) {
|
|
145
146
|
// eslint-disable-next-line no-console
|
|
146
147
|
console.log(`
|
|
147
|
-
${
|
|
148
|
-
${paths.map((path) =>
|
|
148
|
+
${styleText('green', 'Worker script successfully copied!')}
|
|
149
|
+
${paths.map((path) => styleText('gray', ` - ${path}\n`))}
|
|
149
150
|
Continue by describing the network in your application:
|
|
150
151
|
|
|
151
152
|
|
|
152
|
-
${
|
|
153
|
+
${styleText(['red', 'bold'], 'https://mswjs.io/docs/quick-start')}
|
|
153
154
|
`)
|
|
154
155
|
}
|
|
155
156
|
|
|
156
157
|
function printFailureMessage(pathsWithErrors) {
|
|
157
158
|
// eslint-disable-next-line no-console
|
|
158
159
|
console.error(`\
|
|
159
|
-
${
|
|
160
|
+
${styleText('red', 'Copying the worker script failed at following paths:')}
|
|
160
161
|
${pathsWithErrors
|
|
161
|
-
.map(
|
|
162
|
+
.map(
|
|
163
|
+
([path, error]) => styleText('gray', ` - ${path}`) + '\n' + ` ${error}`,
|
|
164
|
+
)
|
|
162
165
|
.join('\n\n')}
|
|
163
166
|
`)
|
|
164
167
|
}
|
|
@@ -172,7 +175,7 @@ function saveWorkerDirectory(packageJsonPath, publicDir) {
|
|
|
172
175
|
|
|
173
176
|
// eslint-disable-next-line no-console
|
|
174
177
|
console.log(
|
|
175
|
-
|
|
178
|
+
styleText('gray', 'Updating "msw.workerDirectory" at "%s"...'),
|
|
176
179
|
packageJsonPath,
|
|
177
180
|
)
|
|
178
181
|
|
|
@@ -205,7 +208,7 @@ function saveWorkerDirectory(packageJsonPath, publicDir) {
|
|
|
205
208
|
function promptWorkerDirectoryUpdate(message, packageJsonPath, publicDir) {
|
|
206
209
|
return confirm({
|
|
207
210
|
theme: {
|
|
208
|
-
prefix:
|
|
211
|
+
prefix: styleText('yellowBright', '?'),
|
|
209
212
|
},
|
|
210
213
|
message,
|
|
211
214
|
}).then((answer) => {
|
package/cli/invariant.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { styleText } from 'node:util'
|
|
2
2
|
|
|
3
3
|
export function invariant(predicate, message, ...args) {
|
|
4
4
|
if (!predicate) {
|
|
5
5
|
// eslint-disable-next-line no-console
|
|
6
|
-
console.error(
|
|
6
|
+
console.error(styleText('red', message), ...args)
|
|
7
7
|
process.exit(1)
|
|
8
8
|
}
|
|
9
9
|
}
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
import { a as matchRequestUrl, g as Handler, h as getCallFrame, m as devUtils, o as isAbsoluteUrl, r as toPublicUrl, s as getTimestamp } from "./cookie-store.js";
|
|
2
|
+
import { t as isObject } from "./is-object.js";
|
|
3
|
+
import { t as colors } from "./colors.js";
|
|
4
|
+
import { invariant } from "outvariant";
|
|
5
|
+
import { createRequestId, resolveWebSocketUrl } from "@mswjs/interceptors";
|
|
6
|
+
import { Emitter, TypedEvent } from "rettime";
|
|
7
|
+
import { WebSocketClientConnection, WebSocketServerConnection } from "@mswjs/interceptors/WebSocket";
|
|
8
|
+
//#region src/ws/utils/get-message-length.ts
|
|
9
|
+
/**
|
|
10
|
+
* Returns the byte length of the given WebSocket message.
|
|
11
|
+
* @example
|
|
12
|
+
* getMessageLength('hello') // 5
|
|
13
|
+
* getMessageLength(new Blob(['hello'])) // 5
|
|
14
|
+
*/
|
|
15
|
+
function getMessageLength(data) {
|
|
16
|
+
if (data instanceof Blob) return data.size;
|
|
17
|
+
if (isObject(data) && "byteLength" in data) return data.byteLength;
|
|
18
|
+
return new Blob([data]).size;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region src/ws/utils/truncate-message.ts
|
|
22
|
+
const MAX_LENGTH = 24;
|
|
23
|
+
function truncateMessage(message) {
|
|
24
|
+
if (message.length <= MAX_LENGTH) return message;
|
|
25
|
+
return `${message.slice(0, MAX_LENGTH)}…`;
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region src/ws/utils/get-public-data.ts
|
|
29
|
+
/**
|
|
30
|
+
* Format the given WebSocket data or protocol message for logging.
|
|
31
|
+
*/
|
|
32
|
+
async function getPublicData(data) {
|
|
33
|
+
if (typeof data === "string") return truncateMessage(data);
|
|
34
|
+
if (data instanceof Blob) return `Blob(${truncateMessage(await data.text())})`;
|
|
35
|
+
if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) return `ArrayBuffer(${truncateMessage(new TextDecoder().decode(data))})`;
|
|
36
|
+
return truncateMessage(JSON.stringify(data));
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/ws/utils/attach-websocket-logger.ts
|
|
40
|
+
function attachWebSocketLogger(connection) {
|
|
41
|
+
const { client, server } = connection;
|
|
42
|
+
const controller = new AbortController();
|
|
43
|
+
logConnectionOpen(client);
|
|
44
|
+
/**
|
|
45
|
+
* @todo Provide the reference to the exact event handler
|
|
46
|
+
* that called this `client.send()`.
|
|
47
|
+
*/
|
|
48
|
+
client.addEventListener("message", (event) => {
|
|
49
|
+
logOutgoingClientMessage(event);
|
|
50
|
+
}, { signal: controller.signal });
|
|
51
|
+
client.addEventListener("close", (event) => {
|
|
52
|
+
logConnectionClose(event);
|
|
53
|
+
}, { signal: controller.signal });
|
|
54
|
+
getClientSocket(client)?.addEventListener("error", (event) => {
|
|
55
|
+
logClientError(event);
|
|
56
|
+
}, { signal: controller.signal });
|
|
57
|
+
const { send: originalClientSend } = client;
|
|
58
|
+
client.send = new Proxy(client.send, { apply(target, thisArg, args) {
|
|
59
|
+
const [data] = args;
|
|
60
|
+
const messageEvent = new MessageEvent("message", { data });
|
|
61
|
+
Object.defineProperties(messageEvent, {
|
|
62
|
+
currentTarget: {
|
|
63
|
+
enumerable: true,
|
|
64
|
+
writable: false,
|
|
65
|
+
value: getClientSocket(client)
|
|
66
|
+
},
|
|
67
|
+
target: {
|
|
68
|
+
enumerable: true,
|
|
69
|
+
writable: false,
|
|
70
|
+
value: getClientSocket(client)
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
queueMicrotask(() => {
|
|
74
|
+
logIncomingMockedClientMessage(messageEvent);
|
|
75
|
+
});
|
|
76
|
+
return Reflect.apply(target, thisArg, args);
|
|
77
|
+
} });
|
|
78
|
+
server.addEventListener("open", () => {
|
|
79
|
+
server.addEventListener("message", (event) => {
|
|
80
|
+
logIncomingServerMessage(event);
|
|
81
|
+
});
|
|
82
|
+
}, {
|
|
83
|
+
once: true,
|
|
84
|
+
signal: controller.signal
|
|
85
|
+
});
|
|
86
|
+
const { send: originalServerSend } = server;
|
|
87
|
+
server.send = new Proxy(server.send, { apply(target, thisArg, args) {
|
|
88
|
+
const [data] = args;
|
|
89
|
+
const messageEvent = new MessageEvent("message", { data });
|
|
90
|
+
Object.defineProperties(messageEvent, {
|
|
91
|
+
currentTarget: {
|
|
92
|
+
enumerable: true,
|
|
93
|
+
writable: false,
|
|
94
|
+
value: getServerSocket(server)
|
|
95
|
+
},
|
|
96
|
+
target: {
|
|
97
|
+
enumerable: true,
|
|
98
|
+
writable: false,
|
|
99
|
+
value: getServerSocket(server)
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
logOutgoingMockedClientMessage(messageEvent);
|
|
103
|
+
return Reflect.apply(target, thisArg, args);
|
|
104
|
+
} });
|
|
105
|
+
controller.signal.addEventListener("abort", () => {
|
|
106
|
+
client.send = originalClientSend;
|
|
107
|
+
server.send = originalServerSend;
|
|
108
|
+
}, { once: true });
|
|
109
|
+
return () => {
|
|
110
|
+
controller.abort();
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Prints the WebSocket connection.
|
|
115
|
+
* This is meant to be logged by every WebSocket handler
|
|
116
|
+
* that intercepted this connection. This helps you see
|
|
117
|
+
* what handlers observe this connection.
|
|
118
|
+
*/
|
|
119
|
+
function logConnectionOpen(client) {
|
|
120
|
+
const publicUrl = toPublicUrl(client.url);
|
|
121
|
+
console.groupCollapsed(devUtils.formatMessage(`${getTimestamp()} %c▶%c ${publicUrl}`), `color:${colors.system}`, "color:inherit");
|
|
122
|
+
console.log("Client:", getClientSocket(client) ?? client);
|
|
123
|
+
console.groupEnd();
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Return the underlying `WebSocket` of the given client, if any.
|
|
127
|
+
* Only in-process client connections are backed by a socket;
|
|
128
|
+
* a handle to a connection elsewhere (e.g. another runtime) is not.
|
|
129
|
+
*/
|
|
130
|
+
function getClientSocket(client) {
|
|
131
|
+
if (client instanceof WebSocketClientConnection) return client.socket;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Return the underlying `WebSocket` of the given server, if any.
|
|
135
|
+
* Only in-process server connections are backed by a socket.
|
|
136
|
+
*/
|
|
137
|
+
function getServerSocket(server) {
|
|
138
|
+
if (server instanceof WebSocketServerConnection) return server.socket;
|
|
139
|
+
}
|
|
140
|
+
function logConnectionClose(event) {
|
|
141
|
+
const target = event.target;
|
|
142
|
+
const publicUrl = toPublicUrl(target.url);
|
|
143
|
+
console.groupCollapsed(devUtils.formatMessage(`${getTimestamp({ milliseconds: true })} %c■%c ${publicUrl}`), `color:${colors.system}`, "color:inherit");
|
|
144
|
+
console.log(event);
|
|
145
|
+
console.groupEnd();
|
|
146
|
+
}
|
|
147
|
+
function logClientError(event) {
|
|
148
|
+
const socket = event.target;
|
|
149
|
+
const publicUrl = toPublicUrl(socket.url);
|
|
150
|
+
console.groupCollapsed(devUtils.formatMessage(`${getTimestamp({ milliseconds: true })} %c\u00D7%c ${publicUrl}`), `color:${colors.system}`, "color:inherit");
|
|
151
|
+
console.log(event);
|
|
152
|
+
console.groupEnd();
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Prints the outgoing client message.
|
|
156
|
+
*/
|
|
157
|
+
async function logOutgoingClientMessage(event) {
|
|
158
|
+
const byteLength = getMessageLength(event.data);
|
|
159
|
+
const publicData = await getPublicData(event.data);
|
|
160
|
+
const arrow = event.defaultPrevented ? "⇡" : "⬆";
|
|
161
|
+
console.groupCollapsed(devUtils.formatMessage(`${getTimestamp({ milliseconds: true })} %c${arrow}%c ${publicData} %c${byteLength}%c`), `color:${colors.outgoing}`, "color:inherit", "color:gray;font-weight:normal", "color:inherit;font-weight:inherit");
|
|
162
|
+
console.log(event);
|
|
163
|
+
console.groupEnd();
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Prints the outgoing client message initiated
|
|
167
|
+
* by `server.send()` in the event handler.
|
|
168
|
+
*/
|
|
169
|
+
async function logOutgoingMockedClientMessage(event) {
|
|
170
|
+
const byteLength = getMessageLength(event.data);
|
|
171
|
+
const publicData = await getPublicData(event.data);
|
|
172
|
+
console.groupCollapsed(devUtils.formatMessage(`${getTimestamp({ milliseconds: true })} %c⬆%c ${publicData} %c${byteLength}%c`), `color:${colors.mocked}`, "color:inherit", "color:gray;font-weight:normal", "color:inherit;font-weight:inherit");
|
|
173
|
+
console.log(event);
|
|
174
|
+
console.groupEnd();
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Prints the outgoing client message initiated
|
|
178
|
+
* by `client.send()` in the event handler.
|
|
179
|
+
*/
|
|
180
|
+
async function logIncomingMockedClientMessage(event) {
|
|
181
|
+
const byteLength = getMessageLength(event.data);
|
|
182
|
+
const publicData = await getPublicData(event.data);
|
|
183
|
+
console.groupCollapsed(devUtils.formatMessage(`${getTimestamp({ milliseconds: true })} %c⬇%c ${publicData} %c${byteLength}%c`), `color:${colors.mocked}`, "color:inherit", "color:gray;font-weight:normal", "color:inherit;font-weight:inherit");
|
|
184
|
+
console.log(event);
|
|
185
|
+
console.groupEnd();
|
|
186
|
+
}
|
|
187
|
+
async function logIncomingServerMessage(event) {
|
|
188
|
+
const byteLength = getMessageLength(event.data);
|
|
189
|
+
const publicData = await getPublicData(event.data);
|
|
190
|
+
const arrow = event.defaultPrevented ? "⇣" : "⬇";
|
|
191
|
+
console.groupCollapsed(devUtils.formatMessage(`${getTimestamp({ milliseconds: true })} %c${arrow}%c ${publicData} %c${byteLength}%c`), `color:${colors.incoming}`, "color:inherit", "color:gray;font-weight:normal", "color:inherit;font-weight:inherit");
|
|
192
|
+
console.log(event);
|
|
193
|
+
console.groupEnd();
|
|
194
|
+
}
|
|
195
|
+
//#endregion
|
|
196
|
+
//#region src/ws/websocket-handler.ts
|
|
197
|
+
var WebSocketConnectionEvent = class extends TypedEvent {
|
|
198
|
+
client;
|
|
199
|
+
server;
|
|
200
|
+
info;
|
|
201
|
+
params;
|
|
202
|
+
constructor(connection) {
|
|
203
|
+
super("connection");
|
|
204
|
+
this.client = connection.client;
|
|
205
|
+
this.server = connection.server;
|
|
206
|
+
this.info = connection.info;
|
|
207
|
+
this.params = connection.params;
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
const kEmitter = Symbol("kEmitter");
|
|
211
|
+
const kConnect = Symbol("kConnect");
|
|
212
|
+
const kAutoConnect = Symbol("kAutoConnect");
|
|
213
|
+
const kStopPropagationPatched = Symbol("kStopPropagationPatched");
|
|
214
|
+
const KOnStopPropagation = Symbol("KOnStopPropagation");
|
|
215
|
+
var WebSocketHandler = class extends Handler {
|
|
216
|
+
url;
|
|
217
|
+
id;
|
|
218
|
+
callFrame;
|
|
219
|
+
kind = "websocket";
|
|
220
|
+
[kEmitter];
|
|
221
|
+
extensions;
|
|
222
|
+
constructor(url, options) {
|
|
223
|
+
super();
|
|
224
|
+
this.url = url;
|
|
225
|
+
this.id = createRequestId();
|
|
226
|
+
this.extensions = options?.extensions ?? [];
|
|
227
|
+
this[kEmitter] = new Emitter();
|
|
228
|
+
this.callFrame = getCallFrame(/* @__PURE__ */ new Error());
|
|
229
|
+
}
|
|
230
|
+
parse(args) {
|
|
231
|
+
const clientUrl = new URL(args.url);
|
|
232
|
+
const resolvedHandlerUrl = this.url instanceof RegExp || isAbsoluteUrl(this.url) || this.url.startsWith("*") ? this.url : this.#resolveWebSocketUrl(this.url, args.resolutionContext?.baseUrl);
|
|
233
|
+
/**
|
|
234
|
+
* @note Remove the Socket.IO path prefix from the WebSocket
|
|
235
|
+
* client URL. This is an exception to keep the users from
|
|
236
|
+
* including the implementation details in their handlers.
|
|
237
|
+
*/
|
|
238
|
+
clientUrl.pathname = clientUrl.pathname.replace(/^\/socket.io\//, "/");
|
|
239
|
+
return { match: matchRequestUrl(clientUrl, resolvedHandlerUrl, args.resolutionContext?.baseUrl) };
|
|
240
|
+
}
|
|
241
|
+
predicate(args) {
|
|
242
|
+
return args.parsedResult.match.matches;
|
|
243
|
+
}
|
|
244
|
+
test(url, resolutionContext) {
|
|
245
|
+
return this.#match(url, resolutionContext) != null;
|
|
246
|
+
}
|
|
247
|
+
async run(connection, resolutionContext) {
|
|
248
|
+
const parsedResult = this.#match(connection.client.url, resolutionContext);
|
|
249
|
+
if (parsedResult == null) return null;
|
|
250
|
+
for (const extension of this.extensions) extension.apply(connection);
|
|
251
|
+
/**
|
|
252
|
+
* @note Expose the extensions' own APIs (e.g. rooms) on the connection
|
|
253
|
+
* event, merged left to right. The link infers the merged type from the
|
|
254
|
+
* extensions it was given; `Object.assign` with a spread of sources is
|
|
255
|
+
* untyped, which is what allows the merged value to take that type.
|
|
256
|
+
*/
|
|
257
|
+
const resolvedConnection = Object.assign({
|
|
258
|
+
client: connection.client,
|
|
259
|
+
server: connection.server,
|
|
260
|
+
info: connection.info,
|
|
261
|
+
params: parsedResult.match.params || {}
|
|
262
|
+
}, ...this.extensions.map((extension) => extension.extend?.(connection)));
|
|
263
|
+
if (resolutionContext?.[kAutoConnect] ?? true) {
|
|
264
|
+
if (this[kConnect](resolvedConnection)) return resolvedConnection;
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
267
|
+
return resolvedConnection;
|
|
268
|
+
}
|
|
269
|
+
#match(url, resolutionContext) {
|
|
270
|
+
const resolvedUrl = this.#resolveWebSocketUrl(url.toString(), resolutionContext?.baseUrl);
|
|
271
|
+
const parsedResult = this.parse({
|
|
272
|
+
url: resolvedUrl,
|
|
273
|
+
resolutionContext
|
|
274
|
+
});
|
|
275
|
+
if (this.predicate({
|
|
276
|
+
url,
|
|
277
|
+
parsedResult
|
|
278
|
+
})) return parsedResult;
|
|
279
|
+
return null;
|
|
280
|
+
}
|
|
281
|
+
[kConnect](connection) {
|
|
282
|
+
connection.client.addEventListener("message", createStopPropagationListener(this));
|
|
283
|
+
connection.client.addEventListener("close", createStopPropagationListener(this));
|
|
284
|
+
connection.server.addEventListener("open", createStopPropagationListener(this));
|
|
285
|
+
connection.server.addEventListener("message", createStopPropagationListener(this));
|
|
286
|
+
connection.server.addEventListener("error", createStopPropagationListener(this));
|
|
287
|
+
connection.server.addEventListener("close", createStopPropagationListener(this));
|
|
288
|
+
/**
|
|
289
|
+
* @fixme Await these events (e.g. via `.emitAsPromise()`) to have
|
|
290
|
+
* exceptions from asynchronous listeners propagate properly.
|
|
291
|
+
*/
|
|
292
|
+
return this[kEmitter].emit(Object.assign(new WebSocketConnectionEvent(connection), connection));
|
|
293
|
+
}
|
|
294
|
+
log(connection) {
|
|
295
|
+
return attachWebSocketLogger(connection);
|
|
296
|
+
}
|
|
297
|
+
#resolveWebSocketUrl(url, baseUrl) {
|
|
298
|
+
/**
|
|
299
|
+
* @note Omit the trailing slash.
|
|
300
|
+
* While the browser always produces a trailing slash at the end of a WebSocket URL,
|
|
301
|
+
* having it in as the handler's predicate would mean it is *required* in the actual URL.
|
|
302
|
+
*/
|
|
303
|
+
return resolveWebSocketUrl(baseUrl ? new URL(url, baseUrl) : url).replace(/\/$/, "");
|
|
304
|
+
}
|
|
305
|
+
};
|
|
306
|
+
function createStopPropagationListener(handler) {
|
|
307
|
+
return function stopPropagationListener(event) {
|
|
308
|
+
const propagationStoppedAt = Reflect.get(event, "kPropagationStoppedAt");
|
|
309
|
+
if (propagationStoppedAt && handler.id !== propagationStoppedAt) {
|
|
310
|
+
event.stopImmediatePropagation();
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
Object.defineProperty(event, KOnStopPropagation, {
|
|
314
|
+
value() {
|
|
315
|
+
Object.defineProperty(event, "kPropagationStoppedAt", { value: handler.id });
|
|
316
|
+
},
|
|
317
|
+
configurable: true
|
|
318
|
+
});
|
|
319
|
+
if (!Reflect.get(event, kStopPropagationPatched)) {
|
|
320
|
+
event.stopPropagation = new Proxy(event.stopPropagation, { apply: (target, thisArg, args) => {
|
|
321
|
+
Reflect.get(event, KOnStopPropagation)?.call(handler);
|
|
322
|
+
return Reflect.apply(target, thisArg, args);
|
|
323
|
+
} });
|
|
324
|
+
Object.defineProperty(event, kStopPropagationPatched, {
|
|
325
|
+
value: true,
|
|
326
|
+
configurable: false
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
//#endregion
|
|
332
|
+
//#region src/core/utils/internal/attach-sibling-handlers.ts
|
|
333
|
+
const kSiblingHandlers = Symbol("kSiblingHandlers");
|
|
334
|
+
const kIsSiblingHandler = Symbol("kIsSiblingHandler");
|
|
335
|
+
function attachSiblingHandlers(owner, siblings) {
|
|
336
|
+
invariant(getSiblingHandlers(owner).length === 0, "Failed to merge handlers: the owner \"%s\" handler is already merged", owner.kind);
|
|
337
|
+
Object.defineProperty(owner, kSiblingHandlers, {
|
|
338
|
+
value: siblings,
|
|
339
|
+
enumerable: false,
|
|
340
|
+
writable: false,
|
|
341
|
+
configurable: false
|
|
342
|
+
});
|
|
343
|
+
for (const sibling of siblings) if (!isSiblingHandler(sibling)) Object.defineProperty(sibling, kIsSiblingHandler, {
|
|
344
|
+
value: true,
|
|
345
|
+
enumerable: false,
|
|
346
|
+
writable: false,
|
|
347
|
+
configurable: false
|
|
348
|
+
});
|
|
349
|
+
return owner;
|
|
350
|
+
}
|
|
351
|
+
function getSiblingHandlers(owner) {
|
|
352
|
+
return Reflect.get(owner, kSiblingHandlers) || [];
|
|
353
|
+
}
|
|
354
|
+
function isSiblingHandler(handler) {
|
|
355
|
+
return Reflect.get(handler, kIsSiblingHandler) === true;
|
|
356
|
+
}
|
|
357
|
+
//#endregion
|
|
358
|
+
export { WebSocketHandler as a, kEmitter as c, WebSocketConnectionEvent as i, getSiblingHandlers as n, kAutoConnect as o, isSiblingHandler as r, kConnect as s, attachSiblingHandlers as t };
|
|
359
|
+
|
|
360
|
+
//# sourceMappingURL=attach-sibling-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach-sibling-handlers.js","names":[],"sources":["../../src/ws/utils/get-message-length.ts","../../src/ws/utils/truncate-message.ts","../../src/ws/utils/get-public-data.ts","../../src/ws/utils/attach-websocket-logger.ts","../../src/ws/websocket-handler.ts","../../src/core/utils/internal/attach-sibling-handlers.ts"],"sourcesContent":["import type { WebSocketData } from '@mswjs/interceptors/WebSocket'\nimport { isObject } from '#core/utils/internal/is-object'\n\n/**\n * Returns the byte length of the given WebSocket message.\n * @example\n * getMessageLength('hello') // 5\n * getMessageLength(new Blob(['hello'])) // 5\n */\nexport function getMessageLength(data: WebSocketData): number {\n if (data instanceof Blob) {\n return data.size\n }\n\n if (isObject(data) && 'byteLength' in data) {\n return data.byteLength\n }\n\n return new Blob([data as any]).size\n}\n","const MAX_LENGTH = 24\n\nexport function truncateMessage(message: string): string {\n if (message.length <= MAX_LENGTH) {\n return message\n }\n\n return `${message.slice(0, MAX_LENGTH)}…`\n}\n","import { truncateMessage } from './truncate-message'\n\n/**\n * Format the given WebSocket data or protocol message for logging.\n */\nexport async function getPublicData(data: unknown): Promise<string> {\n if (typeof data === 'string') {\n return truncateMessage(data)\n }\n\n if (data instanceof Blob) {\n const text = await data.text()\n return `Blob(${truncateMessage(text)})`\n }\n\n if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {\n const text = new TextDecoder().decode(data)\n return `ArrayBuffer(${truncateMessage(text)})`\n }\n\n // Protocol messages can be any structured data.\n return truncateMessage(JSON.stringify(data))\n}\n","import {\n WebSocketClientConnection,\n WebSocketServerConnection,\n type WebSocketClientHandle,\n type WebSocketServerHandle,\n type WebSocketConnectionEventData,\n type WebSocketData,\n} from '@mswjs/interceptors/WebSocket'\nimport { devUtils } from '#core/utils/internal/dev-utils'\nimport { getTimestamp } from '#core/utils/logging/get-timestamp'\nimport { toPublicUrl } from '#core/utils/request/to-public-url'\nimport { getMessageLength } from './get-message-length'\nimport { getPublicData } from './get-public-data'\nimport { colors } from '#core/utils/logging/colors'\n\nexport function attachWebSocketLogger(\n connection: WebSocketConnectionEventData,\n): () => void {\n const { client, server } = connection\n const controller = new AbortController()\n\n logConnectionOpen(client)\n\n // Log the events sent from the WebSocket client.\n // WebSocket client connection object is written from the\n // server's perspective so these message events are outgoing.\n /**\n * @todo Provide the reference to the exact event handler\n * that called this `client.send()`.\n */\n client.addEventListener(\n 'message',\n (event) => {\n logOutgoingClientMessage(event)\n },\n { signal: controller.signal },\n )\n\n client.addEventListener(\n 'close',\n (event) => {\n logConnectionClose(event)\n },\n { signal: controller.signal },\n )\n\n // Log client errors (connection closures due to errors).\n getClientSocket(client)?.addEventListener(\n 'error',\n (event) => {\n logClientError(event)\n },\n { signal: controller.signal },\n )\n\n const { send: originalClientSend } = client\n client.send = new Proxy(client.send, {\n apply(target, thisArg, args) {\n const [data] = args\n const messageEvent = new MessageEvent('message', { data })\n Object.defineProperties(messageEvent, {\n currentTarget: {\n enumerable: true,\n writable: false,\n value: getClientSocket(client),\n },\n target: {\n enumerable: true,\n writable: false,\n value: getClientSocket(client),\n },\n })\n\n queueMicrotask(() => {\n logIncomingMockedClientMessage(messageEvent)\n })\n\n return Reflect.apply(target, thisArg, args)\n },\n })\n\n server.addEventListener(\n 'open',\n () => {\n server.addEventListener('message', (event) => {\n logIncomingServerMessage(event)\n })\n },\n {\n once: true,\n signal: controller.signal,\n },\n )\n\n // Log outgoing client events initiated by the event handler.\n // The actual client never sent these but the handler did.\n const { send: originalServerSend } = server\n server.send = new Proxy(server.send, {\n apply(target, thisArg, args) {\n const [data] = args\n const messageEvent = new MessageEvent('message', { data })\n Object.defineProperties(messageEvent, {\n currentTarget: {\n enumerable: true,\n writable: false,\n value: getServerSocket(server),\n },\n target: {\n enumerable: true,\n writable: false,\n value: getServerSocket(server),\n },\n })\n\n logOutgoingMockedClientMessage(messageEvent)\n\n return Reflect.apply(target, thisArg, args)\n },\n })\n\n // Undo method proxies.\n controller.signal.addEventListener(\n 'abort',\n () => {\n client.send = originalClientSend\n server.send = originalServerSend\n },\n { once: true },\n )\n\n return () => {\n controller.abort()\n }\n}\n\n/**\n * Prints the WebSocket connection.\n * This is meant to be logged by every WebSocket handler\n * that intercepted this connection. This helps you see\n * what handlers observe this connection.\n */\nfunction logConnectionOpen(client: WebSocketClientHandle) {\n const publicUrl = toPublicUrl(client.url)\n\n console.groupCollapsed(\n devUtils.formatMessage(`${getTimestamp()} %c▶%c ${publicUrl}`),\n `color:${colors.system}`,\n 'color:inherit',\n )\n // eslint-disable-next-line no-console\n console.log('Client:', getClientSocket(client) ?? client)\n console.groupEnd()\n}\n\n/**\n * Return the underlying `WebSocket` of the given client, if any.\n * Only in-process client connections are backed by a socket;\n * a handle to a connection elsewhere (e.g. another runtime) is not.\n */\nfunction getClientSocket(client: WebSocketClientHandle): WebSocket | undefined {\n if (client instanceof WebSocketClientConnection) {\n return client.socket\n }\n\n return undefined\n}\n\n/**\n * Return the underlying `WebSocket` of the given server, if any.\n * Only in-process server connections are backed by a socket.\n */\nfunction getServerSocket(server: WebSocketServerHandle): WebSocket | undefined {\n if (server instanceof WebSocketServerConnection) {\n return server.socket\n }\n\n return undefined\n}\n\nfunction logConnectionClose(event: CloseEvent) {\n const target = event.target as WebSocket\n const publicUrl = toPublicUrl(target.url)\n\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp({ milliseconds: true })} %c■%c ${publicUrl}`,\n ),\n `color:${colors.system}`,\n 'color:inherit',\n )\n // eslint-disable-next-line no-console\n console.log(event)\n console.groupEnd()\n}\n\nfunction logClientError(event: Event) {\n const socket = event.target as WebSocket\n const publicUrl = toPublicUrl(socket.url)\n\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp({ milliseconds: true })} %c\\u00D7%c ${publicUrl}`,\n ),\n `color:${colors.system}`,\n 'color:inherit',\n )\n // eslint-disable-next-line no-console\n console.log(event)\n console.groupEnd()\n}\n\n/**\n * Prints the outgoing client message.\n */\nasync function logOutgoingClientMessage(event: MessageEvent<WebSocketData>) {\n const byteLength = getMessageLength(event.data)\n const publicData = await getPublicData(event.data)\n const arrow = event.defaultPrevented ? '⇡' : '⬆'\n\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp({ milliseconds: true })} %c${arrow}%c ${publicData} %c${byteLength}%c`,\n ),\n `color:${colors.outgoing}`,\n 'color:inherit',\n 'color:gray;font-weight:normal',\n 'color:inherit;font-weight:inherit',\n )\n // eslint-disable-next-line no-console\n console.log(event)\n console.groupEnd()\n}\n\n/**\n * Prints the outgoing client message initiated\n * by `server.send()` in the event handler.\n */\nasync function logOutgoingMockedClientMessage(\n event: MessageEvent<WebSocketData>,\n) {\n const byteLength = getMessageLength(event.data)\n const publicData = await getPublicData(event.data)\n\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp({ milliseconds: true })} %c⬆%c ${publicData} %c${byteLength}%c`,\n ),\n `color:${colors.mocked}`,\n 'color:inherit',\n 'color:gray;font-weight:normal',\n 'color:inherit;font-weight:inherit',\n )\n // eslint-disable-next-line no-console\n console.log(event)\n console.groupEnd()\n}\n\n/**\n * Prints the outgoing client message initiated\n * by `client.send()` in the event handler.\n */\nasync function logIncomingMockedClientMessage(\n event: MessageEvent<WebSocketData>,\n) {\n const byteLength = getMessageLength(event.data)\n const publicData = await getPublicData(event.data)\n\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp({ milliseconds: true })} %c⬇%c ${publicData} %c${byteLength}%c`,\n ),\n `color:${colors.mocked}`,\n 'color:inherit',\n 'color:gray;font-weight:normal',\n 'color:inherit;font-weight:inherit',\n )\n // eslint-disable-next-line no-console\n console.log(event)\n console.groupEnd()\n}\n\nasync function logIncomingServerMessage(event: MessageEvent<WebSocketData>) {\n const byteLength = getMessageLength(event.data)\n const publicData = await getPublicData(event.data)\n const arrow = event.defaultPrevented ? '⇣' : '⬇'\n\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp({ milliseconds: true })} %c${arrow}%c ${publicData} %c${byteLength}%c`,\n ),\n `color:${colors.incoming}`,\n 'color:inherit',\n 'color:gray;font-weight:normal',\n 'color:inherit;font-weight:inherit',\n )\n // eslint-disable-next-line no-console\n console.log(event)\n console.groupEnd()\n}\n","import { Emitter, TypedEvent } from 'rettime'\nimport { createRequestId, resolveWebSocketUrl } from '@mswjs/interceptors'\nimport type {\n WebSocketData,\n WebSocketExtension,\n WebSocketExtensionMessage,\n WebSocketExtensionApi,\n WebSocketConnectionInfo,\n WebSocketConnectionEventData,\n WebSocketClientHandle,\n WebSocketServerHandle,\n} from '@mswjs/interceptors/WebSocket'\n/**\n * @note A type-only import to prevent a runtime module cycle\n * (the frame module imports this handler at runtime).\n */\nimport type { WebSocketNetworkFrameEventMap } from '#core/experimental/frames/websocket-frame'\nimport {\n type Match,\n type Path,\n type PathParams,\n matchRequestUrl,\n} from '#core/utils/matching/match-request-url'\nimport { isAbsoluteUrl } from '#core/utils/url/is-absolute-url'\nimport { Handler } from '#core/handlers/handler'\nimport { getCallFrame } from '#core/utils/internal/get-call-frame'\nimport { attachWebSocketLogger } from './utils/attach-websocket-logger'\n\ntype WebSocketHandlerParsedResult = {\n match: Match\n}\n\nexport interface WebSocketHandlerOptions {\n /**\n * WebSocket extensions applied to every connection matched by this handler,\n * left to right. The last one applied encodes and decodes the traffic,\n * and every one of them extends the connection event with its own API.\n */\n extensions?: ReadonlyArray<AnyWebSocketExtension>\n}\n\nexport type AnyWebSocketExtension = WebSocketExtension<unknown, unknown>\n\n/**\n * The connection event of a handler with the given extension:\n * the connection speaks the extension's messages and the event\n * carries the extension's own API (e.g. rooms).\n */\nexport type WebSocketHandlerConnectionEvent<\n Extension extends AnyWebSocketExtension = WebSocketExtension,\n> = WebSocketConnectionEvent<WebSocketExtensionMessage<Extension>> &\n WebSocketExtensionApi<Extension>\n\nexport type WebSocketHandlerEventMap<\n Extension extends AnyWebSocketExtension = WebSocketExtension,\n> = {\n connection: WebSocketHandlerConnectionEvent<Extension>\n}\n\n/**\n * The connection matched by a handler.\n *\n * @note Typed against the connection handles, not the connection classes,\n * so a handler accepts connections living anywhere (e.g. in another\n * runtime, or a custom implementation of the handles).\n */\nexport interface WebSocketHandlerConnection<Message = WebSocketData> {\n client: WebSocketClientHandle<Message>\n server: WebSocketServerHandle<Message>\n info: WebSocketConnectionInfo\n params: PathParams\n}\n\nexport class WebSocketConnectionEvent<Message = WebSocketData>\n extends TypedEvent<void, void, 'connection'>\n implements WebSocketHandlerConnection<Message>\n{\n public readonly client: WebSocketClientHandle<Message>\n public readonly server: WebSocketServerHandle<Message>\n public readonly info: WebSocketConnectionInfo\n public readonly params: PathParams\n\n constructor(connection: WebSocketHandlerConnection<Message>) {\n super('connection')\n this.client = connection.client\n this.server = connection.server\n this.info = connection.info\n this.params = connection.params\n }\n}\n\n/**\n * The connection resolved by a handler: the matched connection\n * extended with the handler extension's own API.\n */\nexport type WebSocketHandlerResolvedConnection<\n Extension extends AnyWebSocketExtension = WebSocketExtension,\n> = WebSocketHandlerConnection<WebSocketExtensionMessage<Extension>> &\n WebSocketExtensionApi<Extension>\n\nexport interface WebSocketResolutionContext {\n baseUrl?: string\n\n /**\n * An emit-only reference to the network frame's events.\n * Allows handlers to emit additional events not covered by the frame\n * into the network's life-cycle event stream (e.g. `server.events`).\n */\n events?: Pick<Emitter<WebSocketNetworkFrameEventMap>, 'emit'>\n\n [kAutoConnect]?: boolean\n}\n\nexport const kEmitter = Symbol('kEmitter')\nexport const kConnect = Symbol('kConnect')\nexport const kAutoConnect = Symbol('kAutoConnect')\n\nconst kStopPropagationPatched = Symbol('kStopPropagationPatched')\nconst KOnStopPropagation = Symbol('KOnStopPropagation')\n\nexport class WebSocketHandler<\n Extension extends AnyWebSocketExtension = WebSocketExtension,\n> extends Handler {\n public id: string\n public callFrame?: string\n\n public readonly kind = 'websocket'\n\n protected [kEmitter]: Emitter<WebSocketHandlerEventMap<Extension>>\n protected readonly extensions: ReadonlyArray<AnyWebSocketExtension>\n\n constructor(\n protected readonly url: Path,\n options?: WebSocketHandlerOptions,\n ) {\n super()\n\n this.id = createRequestId()\n this.extensions = options?.extensions ?? []\n\n this[kEmitter] = new Emitter()\n this.callFrame = getCallFrame(new Error())\n }\n\n public parse(args: {\n url: string | URL\n resolutionContext?: WebSocketResolutionContext\n }): WebSocketHandlerParsedResult {\n const clientUrl = new URL(args.url)\n\n // Resolve the WebSocket handler path:\n // - Relative string URLs are resolved against the base URL (via Interceptors).\n // - Absolute string URLs are preserved. Parsing them as a URL would\n // percent-encode wildcards in the host (e.g. \"ws://*\" becomes \"ws://%2A\").\n // - String URLs starting with a wildcard are preserved (prepending a scheme there will break them).\n // - RegExp paths are preserved.\n const resolvedHandlerUrl =\n this.url instanceof RegExp ||\n isAbsoluteUrl(this.url) ||\n this.url.startsWith('*')\n ? this.url\n : this.#resolveWebSocketUrl(this.url, args.resolutionContext?.baseUrl)\n\n /**\n * @note Remove the Socket.IO path prefix from the WebSocket\n * client URL. This is an exception to keep the users from\n * including the implementation details in their handlers.\n */\n clientUrl.pathname = clientUrl.pathname.replace(/^\\/socket.io\\//, '/')\n\n const match = matchRequestUrl(\n clientUrl,\n resolvedHandlerUrl,\n args.resolutionContext?.baseUrl,\n )\n\n return {\n match,\n }\n }\n\n public predicate(args: {\n url: string | URL\n parsedResult: WebSocketHandlerParsedResult\n }): boolean {\n return args.parsedResult.match.matches\n }\n\n public test(\n url: string | URL,\n resolutionContext?: WebSocketResolutionContext & { strict?: boolean },\n ): boolean {\n return this.#match(url, resolutionContext) != null\n }\n\n public async run(\n connection: WebSocketConnectionEventData,\n resolutionContext?: WebSocketResolutionContext,\n ): Promise<WebSocketHandlerResolvedConnection<Extension> | null> {\n const parsedResult = this.#match(connection.client.url, resolutionContext)\n\n if (parsedResult == null) {\n return null\n }\n\n // Every consumer of the connection objects (listeners, `link.broadcast()`,\n // the logger) speaks the extensions' message domain from here on.\n for (const extension of this.extensions) {\n extension.apply(connection)\n }\n\n /**\n * @note Expose the extensions' own APIs (e.g. rooms) on the connection\n * event, merged left to right. The link infers the merged type from the\n * extensions it was given; `Object.assign` with a spread of sources is\n * untyped, which is what allows the merged value to take that type.\n */\n const resolvedConnection: WebSocketHandlerResolvedConnection<Extension> =\n Object.assign(\n {\n client: connection.client,\n server: connection.server,\n info: connection.info,\n params: parsedResult.match.params || {},\n },\n ...this.extensions.map((extension) => extension.extend?.(connection)),\n )\n\n if (resolutionContext?.[kAutoConnect] ?? true) {\n if (this[kConnect](resolvedConnection)) {\n return resolvedConnection\n }\n\n return null\n }\n\n return resolvedConnection\n }\n\n #match(\n url: string | URL,\n resolutionContext?: WebSocketResolutionContext & { strict?: boolean },\n ): WebSocketHandlerParsedResult | null {\n const resolvedUrl = this.#resolveWebSocketUrl(\n url.toString(),\n resolutionContext?.baseUrl,\n )\n const parsedResult = this.parse({\n url: resolvedUrl,\n resolutionContext,\n })\n\n if (\n this.predicate({\n url,\n parsedResult,\n })\n ) {\n return parsedResult\n }\n\n return null\n }\n\n protected [kConnect](\n connection: WebSocketHandlerResolvedConnection<Extension>,\n ): boolean {\n // Support `event.stopPropagation()` for various client/server events.\n connection.client.addEventListener(\n 'message',\n createStopPropagationListener(this),\n )\n connection.client.addEventListener(\n 'close',\n createStopPropagationListener(this),\n )\n\n connection.server.addEventListener(\n 'open',\n createStopPropagationListener(this),\n )\n connection.server.addEventListener(\n 'message',\n createStopPropagationListener(this),\n )\n connection.server.addEventListener(\n 'error',\n createStopPropagationListener(this),\n )\n connection.server.addEventListener(\n 'close',\n createStopPropagationListener(this),\n )\n\n /**\n * @fixme Await these events (e.g. via `.emitAsPromise()`) to have\n * exceptions from asynchronous listeners propagate properly.\n */\n return this[kEmitter].emit(\n // Carry the extension's own API (e.g. rooms) over to the event.\n Object.assign(new WebSocketConnectionEvent(connection), connection),\n )\n }\n\n public log(connection: WebSocketConnectionEventData): () => void {\n return attachWebSocketLogger(connection)\n }\n\n #resolveWebSocketUrl(url: string, baseUrl?: string): string {\n const resolvedUrl = resolveWebSocketUrl(\n baseUrl\n ? /**\n * @note Resolve against the base URL preemtively because `resolveWebSocketUrl` only\n * resolves against `location.href`, which is missing in Node.js. Base URL allows\n * the handler to accept a relative URL in Node.js.\n */\n new URL(url, baseUrl)\n : url,\n )\n\n /**\n * @note Omit the trailing slash.\n * While the browser always produces a trailing slash at the end of a WebSocket URL,\n * having it in as the handler's predicate would mean it is *required* in the actual URL.\n */\n return resolvedUrl.replace(/\\/$/, '')\n }\n}\n\nfunction createStopPropagationListener(handler: WebSocketHandler) {\n return function stopPropagationListener(event: Event) {\n const propagationStoppedAt = Reflect.get(event, 'kPropagationStoppedAt') as\n string | undefined\n\n if (propagationStoppedAt && handler.id !== propagationStoppedAt) {\n event.stopImmediatePropagation()\n return\n }\n\n Object.defineProperty(event, KOnStopPropagation, {\n value(this: WebSocketHandler) {\n Object.defineProperty(event, 'kPropagationStoppedAt', {\n value: handler.id,\n })\n },\n configurable: true,\n })\n\n // Since the same event instance is shared between all client/server objects,\n // make sure to patch its `stopPropagation` method only once.\n if (!Reflect.get(event, kStopPropagationPatched)) {\n event.stopPropagation = new Proxy(event.stopPropagation, {\n apply: (target, thisArg, args) => {\n Reflect.get(event, KOnStopPropagation)?.call(handler)\n return Reflect.apply(target, thisArg, args)\n },\n })\n\n Object.defineProperty(event, kStopPropagationPatched, {\n value: true,\n // If something else attempts to redefine this, throw.\n configurable: false,\n })\n }\n }\n}\n","import { invariant } from 'outvariant'\nimport type { AnyHandler } from '../../experimental/handlers-controller'\n\nconst kSiblingHandlers = Symbol('kSiblingHandlers')\nconst kIsSiblingHandler = Symbol('kIsSiblingHandler')\n\nexport function attachSiblingHandlers<T extends AnyHandler>(\n owner: T,\n siblings: Array<AnyHandler>,\n): T {\n invariant(\n getSiblingHandlers(owner).length === 0,\n 'Failed to merge handlers: the owner \"%s\" handler is already merged',\n owner.kind,\n )\n\n Object.defineProperty(owner, kSiblingHandlers, {\n value: siblings,\n enumerable: false,\n writable: false,\n configurable: false,\n })\n\n // Mark the siblings so introspection (e.g. `.listHandlers()`) can tell\n // explicitly registered handlers from their implementation details.\n // Shared siblings can be attached to multiple owners, so skip the\n // already-marked ones.\n for (const sibling of siblings) {\n if (!isSiblingHandler(sibling)) {\n Object.defineProperty(sibling, kIsSiblingHandler, {\n value: true,\n enumerable: false,\n writable: false,\n configurable: false,\n })\n }\n }\n\n return owner\n}\n\nexport function getSiblingHandlers(owner: AnyHandler): Array<AnyHandler> {\n return Reflect.get(owner, kSiblingHandlers) || []\n}\n\nexport function isSiblingHandler(handler: AnyHandler): boolean {\n return Reflect.get(handler, kIsSiblingHandler) === true\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/core/utils/logging/colors.ts
|
|
2
|
+
/**
|
|
3
|
+
* Colors for logging the direction of intercepted events.
|
|
4
|
+
*
|
|
5
|
+
* @note A standalone module so consumers interested only in the
|
|
6
|
+
* palette (e.g. `sse`, `msw/graphql` loggers) don't pull the entire
|
|
7
|
+
* WebSocket logger into their graph.
|
|
8
|
+
*/
|
|
9
|
+
const colors = {
|
|
10
|
+
system: "#3b82f6",
|
|
11
|
+
outgoing: "#22c55e",
|
|
12
|
+
incoming: "#ef4444",
|
|
13
|
+
mocked: "#ff6a33"
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { colors as t };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.js","names":[],"sources":["../../src/core/utils/logging/colors.ts"],"sourcesContent":["/**\n * Colors for logging the direction of intercepted events.\n *\n * @note A standalone module so consumers interested only in the\n * palette (e.g. `sse`, `msw/graphql` loggers) don't pull the entire\n * WebSocket logger into their graph.\n */\nexport const colors = {\n system: '#3b82f6',\n outgoing: '#22c55e',\n incoming: '#ef4444',\n mocked: '#ff6a33',\n}\n"],"mappings":";;;;;;;;AAOA,MAAa,SAAS;CACpB,QAAQ;CACR,UAAU;CACV,UAAU;CACV,QAAQ;AACV"}
|