@relative-ci/core 6.0.0-beta.3 → 6.0.0-beta.5
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 +4 -4
- package/lib/cjs/__/@actions/github/lib/context.js.map +1 -1
- package/lib/cjs/__/@actions/github/lib/github.js.map +1 -1
- package/lib/cjs/__/@actions/github/lib/internal/utils.js.map +1 -1
- package/lib/cjs/__/@actions/github/lib/utils.js.map +1 -1
- package/lib/cjs/__/@actions/http-client/lib/index.js.map +1 -1
- package/lib/cjs/__/@actions/http-client/lib/proxy.js.map +1 -1
- package/lib/cjs/__/@octokit/auth-token/dist-bundle/index.js.map +1 -1
- package/lib/cjs/__/@octokit/core/dist-src/index.js.map +1 -1
- package/lib/cjs/__/@octokit/core/dist-src/version.js +1 -1
- package/lib/cjs/__/@octokit/core/dist-src/version.js.map +1 -1
- package/lib/cjs/__/@octokit/endpoint/dist-bundle/index.js.map +1 -1
- package/lib/cjs/__/@octokit/graphql/dist-bundle/index.js.map +1 -1
- package/lib/cjs/__/@octokit/plugin-paginate-rest/dist-bundle/index.js.map +1 -1
- package/lib/cjs/__/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js.map +1 -1
- package/lib/cjs/__/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js.map +1 -1
- package/lib/cjs/__/@octokit/plugin-rest-endpoint-methods/dist-src/index.js.map +1 -1
- package/lib/cjs/__/@octokit/plugin-rest-endpoint-methods/dist-src/version.js.map +1 -1
- package/lib/cjs/__/@octokit/request/dist-bundle/index.js +3 -3
- package/lib/cjs/__/@octokit/request/dist-bundle/index.js.map +1 -1
- package/lib/cjs/__/@octokit/request-error/dist-src/index.js.map +1 -1
- package/lib/cjs/__/before-after-hook/index.js.map +1 -1
- package/lib/cjs/__/before-after-hook/lib/add.js.map +1 -1
- package/lib/cjs/__/before-after-hook/lib/register.js.map +1 -1
- package/lib/cjs/__/before-after-hook/lib/remove.js.map +1 -1
- package/lib/cjs/__/content-type/dist/index.js +124 -178
- package/lib/cjs/__/content-type/dist/index.js.map +1 -1
- package/lib/cjs/__/cross-spawn/index.js +1 -1
- package/lib/cjs/__/cross-spawn/index.js.map +1 -1
- package/lib/cjs/__/cross-spawn/lib/enoent.js.map +1 -1
- package/lib/cjs/__/cross-spawn/lib/parse.js.map +1 -1
- package/lib/cjs/__/cross-spawn/lib/util/escape.js.map +1 -1
- package/lib/cjs/__/cross-spawn/lib/util/readShebang.js.map +1 -1
- package/lib/cjs/__/cross-spawn/lib/util/resolveCommand.js.map +1 -1
- package/lib/cjs/__/env-ci/index.js.map +1 -1
- package/lib/cjs/__/env-ci/lib/git.js +1 -1
- package/lib/cjs/__/env-ci/lib/git.js.map +1 -1
- package/lib/cjs/__/env-ci/lib/utils.js.map +1 -1
- package/lib/cjs/__/env-ci/services/appveyor.js.map +1 -1
- package/lib/cjs/__/env-ci/services/azure-pipelines.js.map +1 -1
- package/lib/cjs/__/env-ci/services/bamboo.js.map +1 -1
- package/lib/cjs/__/env-ci/services/bitbucket.js.map +1 -1
- package/lib/cjs/__/env-ci/services/bitrise.js.map +1 -1
- package/lib/cjs/__/env-ci/services/buddy.js.map +1 -1
- package/lib/cjs/__/env-ci/services/buildkite.js.map +1 -1
- package/lib/cjs/__/env-ci/services/circleci.js.map +1 -1
- package/lib/cjs/__/env-ci/services/cirrus.js.map +1 -1
- package/lib/cjs/__/env-ci/services/cloudflare-pages.js.map +1 -1
- package/lib/cjs/__/env-ci/services/codebuild.js.map +1 -1
- package/lib/cjs/__/env-ci/services/codefresh.js.map +1 -1
- package/lib/cjs/__/env-ci/services/codeship.js.map +1 -1
- package/lib/cjs/__/env-ci/services/drone.js.map +1 -1
- package/lib/cjs/__/env-ci/services/git.js.map +1 -1
- package/lib/cjs/__/env-ci/services/github.js.map +1 -1
- package/lib/cjs/__/env-ci/services/gitlab.js.map +1 -1
- package/lib/cjs/__/env-ci/services/jenkins.js.map +1 -1
- package/lib/cjs/__/env-ci/services/jetbrains-space.js.map +1 -1
- package/lib/cjs/__/env-ci/services/netlify.js.map +1 -1
- package/lib/cjs/__/env-ci/services/puppet.js.map +1 -1
- package/lib/cjs/__/env-ci/services/sail.js.map +1 -1
- package/lib/cjs/__/env-ci/services/screwdriver.js.map +1 -1
- package/lib/cjs/__/env-ci/services/scrutinizer.js.map +1 -1
- package/lib/cjs/__/env-ci/services/semaphore.js.map +1 -1
- package/lib/cjs/__/env-ci/services/shippable.js.map +1 -1
- package/lib/cjs/__/env-ci/services/teamcity.js.map +1 -1
- package/lib/cjs/__/env-ci/services/travis.js.map +1 -1
- package/lib/cjs/__/env-ci/services/vela.js.map +1 -1
- package/lib/cjs/__/env-ci/services/vercel.js.map +1 -1
- package/lib/cjs/__/env-ci/services/wercker.js.map +1 -1
- package/lib/cjs/__/env-ci/services/woodpecker.js.map +1 -1
- package/lib/cjs/__/{env-ci/__/execa → execa}/index.js +1 -1
- package/lib/cjs/__/execa/index.js.map +1 -0
- package/lib/cjs/__/execa/lib/command.js.map +1 -0
- package/lib/cjs/__/execa/lib/error.js.map +1 -0
- package/lib/cjs/__/execa/lib/promise.js.map +1 -0
- package/lib/cjs/__/execa/lib/stdio.js.map +1 -0
- package/lib/cjs/__/{env-ci/__/execa → execa}/lib/stream.js +1 -1
- package/lib/cjs/__/execa/lib/stream.js.map +1 -0
- package/lib/cjs/__/execa/lib/verbose.js.map +1 -0
- package/lib/cjs/__/get-stream/source/array-buffer.js.map +1 -0
- package/lib/cjs/__/human-signals/build/src/core.js.map +1 -0
- package/lib/cjs/__/human-signals/build/src/main.js.map +1 -0
- package/lib/cjs/__/human-signals/build/src/realtime.js.map +1 -0
- package/lib/cjs/__/human-signals/build/src/signals.js.map +1 -0
- package/lib/cjs/__/is-stream/index.js.map +1 -0
- package/lib/cjs/__/isexe/index.js.map +1 -1
- package/lib/cjs/__/isexe/mode.js.map +1 -1
- package/lib/cjs/__/isexe/windows.js.map +1 -1
- package/lib/cjs/__/java-properties/dist-node/index.js.map +1 -1
- package/lib/cjs/__/json-with-bigint/json-with-bigint.js +1 -1
- package/lib/cjs/__/json-with-bigint/json-with-bigint.js.map +1 -1
- package/lib/cjs/__/merge-stream/index.js.map +1 -1
- package/lib/cjs/__/npm-run-path/__/path-key/index.js.map +1 -0
- package/lib/cjs/__/{env-ci/__/npm-run-path → npm-run-path}/index.js +1 -1
- package/lib/cjs/__/npm-run-path/index.js.map +1 -0
- package/lib/cjs/__/path-key/index.js +1 -1
- package/lib/cjs/__/path-key/index.js.map +1 -1
- package/lib/cjs/__/shebang-command/index.js.map +1 -1
- package/lib/cjs/__/shebang-regex/index.js.map +1 -1
- package/lib/cjs/__/signal-exit/dist/mjs/index.js.map +1 -0
- package/lib/cjs/__/signal-exit/dist/mjs/signals.js.map +1 -0
- package/lib/cjs/__/strip-final-newline/index.js.map +1 -0
- package/lib/cjs/__/tunnel/index.js.map +1 -1
- package/lib/cjs/__/tunnel/lib/tunnel.js.map +1 -1
- package/lib/cjs/__/undici/index.js +1 -1
- package/lib/cjs/__/undici/index.js.map +1 -1
- package/lib/cjs/__/undici/lib/api/abort-signal.js.map +1 -1
- package/lib/cjs/__/undici/lib/api/api-connect.js.map +1 -1
- package/lib/cjs/__/undici/lib/api/api-pipeline.js.map +1 -1
- package/lib/cjs/__/undici/lib/api/api-request.js.map +1 -1
- package/lib/cjs/__/undici/lib/api/api-stream.js.map +1 -1
- package/lib/cjs/__/undici/lib/api/api-upgrade.js.map +1 -1
- package/lib/cjs/__/undici/lib/api/index.js +1 -1
- package/lib/cjs/__/undici/lib/api/index.js.map +1 -1
- package/lib/cjs/__/undici/lib/api/readable.js.map +1 -1
- package/lib/cjs/__/undici/lib/api/util.js.map +1 -1
- package/lib/cjs/__/undici/lib/core/connect.js.map +1 -1
- package/lib/cjs/__/undici/lib/core/constants.js.map +1 -1
- package/lib/cjs/__/undici/lib/core/diagnostics.js.map +1 -1
- package/lib/cjs/__/undici/lib/core/errors.js.map +1 -1
- package/lib/cjs/__/undici/lib/core/request.js.map +1 -1
- package/lib/cjs/__/undici/lib/core/symbols.js.map +1 -1
- package/lib/cjs/__/undici/lib/core/tree.js.map +1 -1
- package/lib/cjs/__/undici/lib/core/util.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/agent.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/balanced-pool.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/client-h1.js +12 -4
- package/lib/cjs/__/undici/lib/dispatcher/client-h1.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/client-h2.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/client.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/dispatcher-base.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/dispatcher.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/env-http-proxy-agent.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/fixed-queue.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/pool-base.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/pool-stats.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/pool.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/proxy-agent.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/retry-agent.js.map +1 -1
- package/lib/cjs/__/undici/lib/global.js.map +1 -1
- package/lib/cjs/__/undici/lib/handler/decorator-handler.js.map +1 -1
- package/lib/cjs/__/undici/lib/handler/redirect-handler.js.map +1 -1
- package/lib/cjs/__/undici/lib/handler/retry-handler.js +29 -3
- package/lib/cjs/__/undici/lib/handler/retry-handler.js.map +1 -1
- package/lib/cjs/__/undici/lib/interceptor/dns.js.map +1 -1
- package/lib/cjs/__/undici/lib/interceptor/dump.js.map +1 -1
- package/lib/cjs/__/undici/lib/interceptor/redirect-interceptor.js.map +1 -1
- package/lib/cjs/__/undici/lib/interceptor/redirect.js.map +1 -1
- package/lib/cjs/__/undici/lib/interceptor/retry.js.map +1 -1
- package/lib/cjs/__/undici/lib/llhttp/constants.js.map +1 -1
- package/lib/cjs/__/undici/lib/llhttp/llhttp-wasm.js.map +1 -1
- package/lib/cjs/__/undici/lib/llhttp/llhttp_simd-wasm.js.map +1 -1
- package/lib/cjs/__/undici/lib/llhttp/utils.js.map +1 -1
- package/lib/cjs/__/undici/lib/mock/mock-agent.js.map +1 -1
- package/lib/cjs/__/undici/lib/mock/mock-client.js.map +1 -1
- package/lib/cjs/__/undici/lib/mock/mock-errors.js.map +1 -1
- package/lib/cjs/__/undici/lib/mock/mock-interceptor.js.map +1 -1
- package/lib/cjs/__/undici/lib/mock/mock-pool.js.map +1 -1
- package/lib/cjs/__/undici/lib/mock/mock-symbols.js.map +1 -1
- package/lib/cjs/__/undici/lib/mock/mock-utils.js.map +1 -1
- package/lib/cjs/__/undici/lib/mock/pending-interceptors-formatter.js.map +1 -1
- package/lib/cjs/__/undici/lib/mock/pluralizer.js.map +1 -1
- package/lib/cjs/__/undici/lib/util/timers.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/cache/cache.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/cache/cachestorage.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/cache/symbols.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/cache/util.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/cookies/constants.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/cookies/index.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/cookies/parse.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/cookies/util.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/eventsource/eventsource-stream.js +246 -151
- package/lib/cjs/__/undici/lib/web/eventsource/eventsource-stream.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/eventsource/eventsource.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/eventsource/util.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/body.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/constants.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/data-url.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/dispatcher-weakref.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/file.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/formdata-parser.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/formdata.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/global.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/headers.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/index.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/request.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/response.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/symbols.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/util.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/webidl.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fileapi/encoding.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fileapi/filereader.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fileapi/progressevent.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fileapi/symbols.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fileapi/util.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/connection.js +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/connection.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/constants.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/events.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/frame.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/permessage-deflate.js +5 -0
- package/lib/cjs/__/undici/lib/web/websocket/permessage-deflate.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/receiver.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/sender.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/symbols.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/util.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/websocket.js.map +1 -1
- package/lib/cjs/__/universal-user-agent/index.js.map +1 -1
- package/lib/cjs/__/which/which.js.map +1 -1
- package/lib/cjs/_virtual/_commonjsHelpers.js.map +1 -1
- package/lib/cjs/_virtual/api-request.js.map +1 -1
- package/lib/cjs/_virtual/constants.js.map +1 -1
- package/lib/cjs/_virtual/context.js.map +1 -1
- package/lib/cjs/_virtual/escape.js.map +1 -1
- package/lib/cjs/_virtual/github.js.map +1 -1
- package/lib/cjs/_virtual/github2.js.map +1 -1
- package/lib/cjs/_virtual/index.js.map +1 -1
- package/lib/cjs/_virtual/index10.js.map +1 -1
- package/lib/cjs/_virtual/index11.js +2 -2
- package/lib/cjs/_virtual/index11.js.map +1 -1
- package/lib/cjs/_virtual/index12.js +2 -2
- package/lib/cjs/_virtual/index12.js.map +1 -1
- package/lib/cjs/_virtual/index2.js.map +1 -1
- package/lib/cjs/_virtual/index3.js.map +1 -1
- package/lib/cjs/_virtual/index4.js.map +1 -1
- package/lib/cjs/_virtual/index5.js.map +1 -1
- package/lib/cjs/_virtual/index6.js.map +1 -1
- package/lib/cjs/_virtual/index7.js.map +1 -1
- package/lib/cjs/_virtual/index8.js +2 -2
- package/lib/cjs/_virtual/index8.js.map +1 -1
- package/lib/cjs/_virtual/index9.js +2 -4
- package/lib/cjs/_virtual/index9.js.map +1 -1
- package/lib/cjs/_virtual/mock-interceptor.js.map +1 -1
- package/lib/cjs/_virtual/proxy.js.map +1 -1
- package/lib/cjs/_virtual/tunnel.js.map +1 -1
- package/lib/cjs/_virtual/utils.js.map +1 -1
- package/lib/cjs/_virtual/utils2.js.map +1 -1
- package/lib/cjs/_virtual/utils3.js.map +1 -1
- package/lib/cjs/artifacts/filter-artifacts.js.map +1 -1
- package/lib/cjs/artifacts/validate-webpack-stats.js.map +1 -1
- package/lib/cjs/constants.js.map +1 -1
- package/lib/cjs/env/agent-env.js.map +1 -1
- package/lib/cjs/env/ci-env.js.map +1 -1
- package/lib/cjs/env/git/commit-message.js.map +1 -1
- package/lib/cjs/env/git/slug.js.map +1 -1
- package/lib/cjs/env/load.js +1 -1
- package/lib/cjs/env/load.js.map +1 -1
- package/lib/cjs/env/service/github.js.map +1 -1
- package/lib/cjs/index.js +4 -4
- package/lib/cjs/ingest/ingest.js +1 -1
- package/lib/cjs/ingest/ingest.js.map +1 -1
- package/lib/cjs/locales/en.js.map +1 -1
- package/lib/cjs/process.env.js.map +1 -1
- package/lib/cjs/utils/debug.js.map +1 -1
- package/lib/cjs/utils/file-size.js.map +1 -1
- package/lib/cjs/utils/log-response.js.map +1 -1
- package/lib/cjs/utils/logger.js.map +1 -1
- package/lib/cjs/utils/mask-object-property.js.map +1 -1
- package/lib/cjs/utils/round.js.map +1 -1
- package/lib/esm/__/@actions/github/lib/context.js.map +1 -1
- package/lib/esm/__/@actions/github/lib/github.js.map +1 -1
- package/lib/esm/__/@actions/github/lib/internal/utils.js.map +1 -1
- package/lib/esm/__/@actions/github/lib/utils.js.map +1 -1
- package/lib/esm/__/@actions/http-client/lib/index.js.map +1 -1
- package/lib/esm/__/@actions/http-client/lib/proxy.js.map +1 -1
- package/lib/esm/__/@octokit/auth-token/dist-bundle/index.js.map +1 -1
- package/lib/esm/__/@octokit/core/dist-src/index.js.map +1 -1
- package/lib/esm/__/@octokit/core/dist-src/version.js +1 -1
- package/lib/esm/__/@octokit/core/dist-src/version.js.map +1 -1
- package/lib/esm/__/@octokit/endpoint/dist-bundle/index.js.map +1 -1
- package/lib/esm/__/@octokit/graphql/dist-bundle/index.js.map +1 -1
- package/lib/esm/__/@octokit/plugin-paginate-rest/dist-bundle/index.js.map +1 -1
- package/lib/esm/__/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js.map +1 -1
- package/lib/esm/__/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js.map +1 -1
- package/lib/esm/__/@octokit/plugin-rest-endpoint-methods/dist-src/index.js.map +1 -1
- package/lib/esm/__/@octokit/plugin-rest-endpoint-methods/dist-src/version.js.map +1 -1
- package/lib/esm/__/@octokit/request/dist-bundle/index.js +3 -3
- package/lib/esm/__/@octokit/request/dist-bundle/index.js.map +1 -1
- package/lib/esm/__/@octokit/request-error/dist-src/index.js.map +1 -1
- package/lib/esm/__/before-after-hook/index.js.map +1 -1
- package/lib/esm/__/before-after-hook/lib/add.js.map +1 -1
- package/lib/esm/__/before-after-hook/lib/register.js.map +1 -1
- package/lib/esm/__/before-after-hook/lib/remove.js.map +1 -1
- package/lib/esm/__/content-type/dist/index.js +124 -178
- package/lib/esm/__/content-type/dist/index.js.map +1 -1
- package/lib/esm/__/cross-spawn/index.js +1 -1
- package/lib/esm/__/cross-spawn/index.js.map +1 -1
- package/lib/esm/__/cross-spawn/lib/enoent.js.map +1 -1
- package/lib/esm/__/cross-spawn/lib/parse.js.map +1 -1
- package/lib/esm/__/cross-spawn/lib/util/escape.js.map +1 -1
- package/lib/esm/__/cross-spawn/lib/util/readShebang.js.map +1 -1
- package/lib/esm/__/cross-spawn/lib/util/resolveCommand.js.map +1 -1
- package/lib/esm/__/env-ci/index.js.map +1 -1
- package/lib/esm/__/env-ci/lib/git.js +1 -1
- package/lib/esm/__/env-ci/lib/git.js.map +1 -1
- package/lib/esm/__/env-ci/lib/utils.js.map +1 -1
- package/lib/esm/__/env-ci/services/appveyor.js.map +1 -1
- package/lib/esm/__/env-ci/services/azure-pipelines.js.map +1 -1
- package/lib/esm/__/env-ci/services/bamboo.js.map +1 -1
- package/lib/esm/__/env-ci/services/bitbucket.js.map +1 -1
- package/lib/esm/__/env-ci/services/bitrise.js.map +1 -1
- package/lib/esm/__/env-ci/services/buddy.js.map +1 -1
- package/lib/esm/__/env-ci/services/buildkite.js.map +1 -1
- package/lib/esm/__/env-ci/services/circleci.js.map +1 -1
- package/lib/esm/__/env-ci/services/cirrus.js.map +1 -1
- package/lib/esm/__/env-ci/services/cloudflare-pages.js.map +1 -1
- package/lib/esm/__/env-ci/services/codebuild.js.map +1 -1
- package/lib/esm/__/env-ci/services/codefresh.js.map +1 -1
- package/lib/esm/__/env-ci/services/codeship.js.map +1 -1
- package/lib/esm/__/env-ci/services/drone.js.map +1 -1
- package/lib/esm/__/env-ci/services/git.js.map +1 -1
- package/lib/esm/__/env-ci/services/github.js.map +1 -1
- package/lib/esm/__/env-ci/services/gitlab.js.map +1 -1
- package/lib/esm/__/env-ci/services/jenkins.js.map +1 -1
- package/lib/esm/__/env-ci/services/jetbrains-space.js.map +1 -1
- package/lib/esm/__/env-ci/services/netlify.js.map +1 -1
- package/lib/esm/__/env-ci/services/puppet.js.map +1 -1
- package/lib/esm/__/env-ci/services/sail.js.map +1 -1
- package/lib/esm/__/env-ci/services/screwdriver.js.map +1 -1
- package/lib/esm/__/env-ci/services/scrutinizer.js.map +1 -1
- package/lib/esm/__/env-ci/services/semaphore.js.map +1 -1
- package/lib/esm/__/env-ci/services/shippable.js.map +1 -1
- package/lib/esm/__/env-ci/services/teamcity.js.map +1 -1
- package/lib/esm/__/env-ci/services/travis.js.map +1 -1
- package/lib/esm/__/env-ci/services/vela.js.map +1 -1
- package/lib/esm/__/env-ci/services/vercel.js.map +1 -1
- package/lib/esm/__/env-ci/services/wercker.js.map +1 -1
- package/lib/esm/__/env-ci/services/woodpecker.js.map +1 -1
- package/lib/esm/__/{env-ci/__/execa → execa}/index.js +1 -1
- package/lib/esm/__/execa/index.js.map +1 -0
- package/lib/esm/__/execa/lib/command.js.map +1 -0
- package/lib/esm/__/execa/lib/error.js.map +1 -0
- package/lib/esm/__/execa/lib/promise.js.map +1 -0
- package/lib/esm/__/execa/lib/stdio.js.map +1 -0
- package/lib/esm/__/{env-ci/__/execa → execa}/lib/stream.js +1 -1
- package/lib/esm/__/execa/lib/stream.js.map +1 -0
- package/lib/esm/__/execa/lib/verbose.js.map +1 -0
- package/lib/esm/__/get-stream/source/array-buffer.js.map +1 -0
- package/lib/esm/__/human-signals/build/src/core.js.map +1 -0
- package/lib/esm/__/human-signals/build/src/main.js.map +1 -0
- package/lib/esm/__/human-signals/build/src/realtime.js.map +1 -0
- package/lib/esm/__/human-signals/build/src/signals.js.map +1 -0
- package/lib/esm/__/is-stream/index.js.map +1 -0
- package/lib/esm/__/isexe/index.js.map +1 -1
- package/lib/esm/__/isexe/mode.js.map +1 -1
- package/lib/esm/__/isexe/windows.js.map +1 -1
- package/lib/esm/__/java-properties/dist-node/index.js.map +1 -1
- package/lib/esm/__/json-with-bigint/json-with-bigint.js +1 -1
- package/lib/esm/__/json-with-bigint/json-with-bigint.js.map +1 -1
- package/lib/esm/__/merge-stream/index.js.map +1 -1
- package/lib/esm/__/npm-run-path/__/path-key/index.js.map +1 -0
- package/lib/esm/__/{env-ci/__/npm-run-path → npm-run-path}/index.js +1 -1
- package/lib/esm/__/npm-run-path/index.js.map +1 -0
- package/lib/esm/__/path-key/index.js +1 -1
- package/lib/esm/__/path-key/index.js.map +1 -1
- package/lib/esm/__/shebang-command/index.js.map +1 -1
- package/lib/esm/__/shebang-regex/index.js.map +1 -1
- package/lib/esm/__/signal-exit/dist/mjs/index.js.map +1 -0
- package/lib/esm/__/signal-exit/dist/mjs/signals.js.map +1 -0
- package/lib/esm/__/strip-final-newline/index.js.map +1 -0
- package/lib/esm/__/tunnel/index.js.map +1 -1
- package/lib/esm/__/tunnel/lib/tunnel.js.map +1 -1
- package/lib/esm/__/undici/index.js +1 -1
- package/lib/esm/__/undici/index.js.map +1 -1
- package/lib/esm/__/undici/lib/api/abort-signal.js.map +1 -1
- package/lib/esm/__/undici/lib/api/api-connect.js.map +1 -1
- package/lib/esm/__/undici/lib/api/api-pipeline.js.map +1 -1
- package/lib/esm/__/undici/lib/api/api-request.js.map +1 -1
- package/lib/esm/__/undici/lib/api/api-stream.js.map +1 -1
- package/lib/esm/__/undici/lib/api/api-upgrade.js.map +1 -1
- package/lib/esm/__/undici/lib/api/index.js +1 -1
- package/lib/esm/__/undici/lib/api/index.js.map +1 -1
- package/lib/esm/__/undici/lib/api/readable.js.map +1 -1
- package/lib/esm/__/undici/lib/api/util.js.map +1 -1
- package/lib/esm/__/undici/lib/core/connect.js.map +1 -1
- package/lib/esm/__/undici/lib/core/constants.js.map +1 -1
- package/lib/esm/__/undici/lib/core/diagnostics.js.map +1 -1
- package/lib/esm/__/undici/lib/core/errors.js.map +1 -1
- package/lib/esm/__/undici/lib/core/request.js.map +1 -1
- package/lib/esm/__/undici/lib/core/symbols.js.map +1 -1
- package/lib/esm/__/undici/lib/core/tree.js.map +1 -1
- package/lib/esm/__/undici/lib/core/util.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/agent.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/balanced-pool.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/client-h1.js +12 -4
- package/lib/esm/__/undici/lib/dispatcher/client-h1.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/client-h2.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/client.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/dispatcher-base.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/dispatcher.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/env-http-proxy-agent.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/fixed-queue.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/pool-base.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/pool-stats.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/pool.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/proxy-agent.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/retry-agent.js.map +1 -1
- package/lib/esm/__/undici/lib/global.js.map +1 -1
- package/lib/esm/__/undici/lib/handler/decorator-handler.js.map +1 -1
- package/lib/esm/__/undici/lib/handler/redirect-handler.js.map +1 -1
- package/lib/esm/__/undici/lib/handler/retry-handler.js +29 -3
- package/lib/esm/__/undici/lib/handler/retry-handler.js.map +1 -1
- package/lib/esm/__/undici/lib/interceptor/dns.js.map +1 -1
- package/lib/esm/__/undici/lib/interceptor/dump.js.map +1 -1
- package/lib/esm/__/undici/lib/interceptor/redirect-interceptor.js.map +1 -1
- package/lib/esm/__/undici/lib/interceptor/redirect.js.map +1 -1
- package/lib/esm/__/undici/lib/interceptor/retry.js.map +1 -1
- package/lib/esm/__/undici/lib/llhttp/constants.js.map +1 -1
- package/lib/esm/__/undici/lib/llhttp/llhttp-wasm.js.map +1 -1
- package/lib/esm/__/undici/lib/llhttp/llhttp_simd-wasm.js.map +1 -1
- package/lib/esm/__/undici/lib/llhttp/utils.js.map +1 -1
- package/lib/esm/__/undici/lib/mock/mock-agent.js.map +1 -1
- package/lib/esm/__/undici/lib/mock/mock-client.js.map +1 -1
- package/lib/esm/__/undici/lib/mock/mock-errors.js.map +1 -1
- package/lib/esm/__/undici/lib/mock/mock-interceptor.js.map +1 -1
- package/lib/esm/__/undici/lib/mock/mock-pool.js.map +1 -1
- package/lib/esm/__/undici/lib/mock/mock-symbols.js.map +1 -1
- package/lib/esm/__/undici/lib/mock/mock-utils.js.map +1 -1
- package/lib/esm/__/undici/lib/mock/pending-interceptors-formatter.js.map +1 -1
- package/lib/esm/__/undici/lib/mock/pluralizer.js.map +1 -1
- package/lib/esm/__/undici/lib/util/timers.js.map +1 -1
- package/lib/esm/__/undici/lib/web/cache/cache.js.map +1 -1
- package/lib/esm/__/undici/lib/web/cache/cachestorage.js.map +1 -1
- package/lib/esm/__/undici/lib/web/cache/symbols.js.map +1 -1
- package/lib/esm/__/undici/lib/web/cache/util.js.map +1 -1
- package/lib/esm/__/undici/lib/web/cookies/constants.js.map +1 -1
- package/lib/esm/__/undici/lib/web/cookies/index.js.map +1 -1
- package/lib/esm/__/undici/lib/web/cookies/parse.js.map +1 -1
- package/lib/esm/__/undici/lib/web/cookies/util.js.map +1 -1
- package/lib/esm/__/undici/lib/web/eventsource/eventsource-stream.js +246 -151
- package/lib/esm/__/undici/lib/web/eventsource/eventsource-stream.js.map +1 -1
- package/lib/esm/__/undici/lib/web/eventsource/eventsource.js.map +1 -1
- package/lib/esm/__/undici/lib/web/eventsource/util.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/body.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/constants.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/data-url.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/dispatcher-weakref.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/file.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/formdata-parser.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/formdata.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/global.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/headers.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/index.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/request.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/response.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/symbols.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/util.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/webidl.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fileapi/encoding.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fileapi/filereader.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fileapi/progressevent.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fileapi/symbols.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fileapi/util.js.map +1 -1
- package/lib/esm/__/undici/lib/web/websocket/connection.js +1 -1
- package/lib/esm/__/undici/lib/web/websocket/connection.js.map +1 -1
- package/lib/esm/__/undici/lib/web/websocket/constants.js.map +1 -1
- package/lib/esm/__/undici/lib/web/websocket/events.js.map +1 -1
- package/lib/esm/__/undici/lib/web/websocket/frame.js.map +1 -1
- package/lib/esm/__/undici/lib/web/websocket/permessage-deflate.js +5 -0
- package/lib/esm/__/undici/lib/web/websocket/permessage-deflate.js.map +1 -1
- package/lib/esm/__/undici/lib/web/websocket/receiver.js.map +1 -1
- package/lib/esm/__/undici/lib/web/websocket/sender.js.map +1 -1
- package/lib/esm/__/undici/lib/web/websocket/symbols.js.map +1 -1
- package/lib/esm/__/undici/lib/web/websocket/util.js.map +1 -1
- package/lib/esm/__/undici/lib/web/websocket/websocket.js.map +1 -1
- package/lib/esm/__/universal-user-agent/index.js.map +1 -1
- package/lib/esm/__/which/which.js.map +1 -1
- package/lib/esm/_virtual/_commonjsHelpers.js.map +1 -1
- package/lib/esm/_virtual/api-request.js.map +1 -1
- package/lib/esm/_virtual/constants.js.map +1 -1
- package/lib/esm/_virtual/context.js.map +1 -1
- package/lib/esm/_virtual/escape.js.map +1 -1
- package/lib/esm/_virtual/github.js.map +1 -1
- package/lib/esm/_virtual/github2.js.map +1 -1
- package/lib/esm/_virtual/index.js.map +1 -1
- package/lib/esm/_virtual/index10.js.map +1 -1
- package/lib/esm/_virtual/index11.js +2 -2
- package/lib/esm/_virtual/index11.js.map +1 -1
- package/lib/esm/_virtual/index12.js +2 -2
- package/lib/esm/_virtual/index12.js.map +1 -1
- package/lib/esm/_virtual/index2.js.map +1 -1
- package/lib/esm/_virtual/index3.js.map +1 -1
- package/lib/esm/_virtual/index4.js.map +1 -1
- package/lib/esm/_virtual/index5.js.map +1 -1
- package/lib/esm/_virtual/index6.js.map +1 -1
- package/lib/esm/_virtual/index8.js +2 -2
- package/lib/esm/_virtual/index8.js.map +1 -1
- package/lib/esm/_virtual/index9.js +2 -4
- package/lib/esm/_virtual/index9.js.map +1 -1
- package/lib/esm/_virtual/mock-interceptor.js.map +1 -1
- package/lib/esm/_virtual/proxy.js.map +1 -1
- package/lib/esm/_virtual/tunnel.js.map +1 -1
- package/lib/esm/_virtual/utils.js.map +1 -1
- package/lib/esm/_virtual/utils2.js.map +1 -1
- package/lib/esm/_virtual/utils3.js.map +1 -1
- package/lib/esm/artifacts/filter-artifacts.js.map +1 -1
- package/lib/esm/artifacts/validate-webpack-stats.js.map +1 -1
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/env/agent-env.js.map +1 -1
- package/lib/esm/env/ci-env.js.map +1 -1
- package/lib/esm/env/git/commit-message.js.map +1 -1
- package/lib/esm/env/git/slug.js.map +1 -1
- package/lib/esm/env/load.js +1 -1
- package/lib/esm/env/load.js.map +1 -1
- package/lib/esm/env/service/github.js.map +1 -1
- package/lib/esm/index.js +2 -2
- package/lib/esm/ingest/ingest.js.map +1 -1
- package/lib/esm/locales/en.js.map +1 -1
- package/lib/esm/process.env.js.map +1 -1
- package/lib/esm/utils/debug.js.map +1 -1
- package/lib/esm/utils/file-size.js.map +1 -1
- package/lib/esm/utils/log-response.js.map +1 -1
- package/lib/esm/utils/logger.js.map +1 -1
- package/lib/esm/utils/mask-object-property.js.map +1 -1
- package/lib/esm/utils/round.js.map +1 -1
- package/package.json +10 -10
- package/lib/cjs/__/env-ci/__/execa/index.js.map +0 -1
- package/lib/cjs/__/env-ci/__/execa/lib/command.js.map +0 -1
- package/lib/cjs/__/env-ci/__/execa/lib/error.js.map +0 -1
- package/lib/cjs/__/env-ci/__/execa/lib/promise.js.map +0 -1
- package/lib/cjs/__/env-ci/__/execa/lib/stdio.js.map +0 -1
- package/lib/cjs/__/env-ci/__/execa/lib/stream.js.map +0 -1
- package/lib/cjs/__/env-ci/__/execa/lib/verbose.js.map +0 -1
- package/lib/cjs/__/env-ci/__/get-stream/source/array-buffer.js.map +0 -1
- package/lib/cjs/__/env-ci/__/human-signals/build/src/core.js.map +0 -1
- package/lib/cjs/__/env-ci/__/human-signals/build/src/main.js.map +0 -1
- package/lib/cjs/__/env-ci/__/human-signals/build/src/realtime.js.map +0 -1
- package/lib/cjs/__/env-ci/__/human-signals/build/src/signals.js.map +0 -1
- package/lib/cjs/__/env-ci/__/is-stream/index.js.map +0 -1
- package/lib/cjs/__/env-ci/__/npm-run-path/index.js.map +0 -1
- package/lib/cjs/__/env-ci/__/path-key/index.js.map +0 -1
- package/lib/cjs/__/env-ci/__/signal-exit/dist/mjs/index.js.map +0 -1
- package/lib/cjs/__/env-ci/__/signal-exit/dist/mjs/signals.js.map +0 -1
- package/lib/cjs/__/env-ci/__/strip-final-newline/index.js.map +0 -1
- package/lib/cjs/_virtual/index13.js +0 -6
- package/lib/cjs/_virtual/index13.js.map +0 -1
- package/lib/cjs/_virtual/index14.js +0 -6
- package/lib/cjs/_virtual/index14.js.map +0 -1
- package/lib/esm/__/env-ci/__/execa/index.js.map +0 -1
- package/lib/esm/__/env-ci/__/execa/lib/command.js.map +0 -1
- package/lib/esm/__/env-ci/__/execa/lib/error.js.map +0 -1
- package/lib/esm/__/env-ci/__/execa/lib/promise.js.map +0 -1
- package/lib/esm/__/env-ci/__/execa/lib/stdio.js.map +0 -1
- package/lib/esm/__/env-ci/__/execa/lib/stream.js.map +0 -1
- package/lib/esm/__/env-ci/__/execa/lib/verbose.js.map +0 -1
- package/lib/esm/__/env-ci/__/get-stream/source/array-buffer.js.map +0 -1
- package/lib/esm/__/env-ci/__/human-signals/build/src/core.js.map +0 -1
- package/lib/esm/__/env-ci/__/human-signals/build/src/main.js.map +0 -1
- package/lib/esm/__/env-ci/__/human-signals/build/src/realtime.js.map +0 -1
- package/lib/esm/__/env-ci/__/human-signals/build/src/signals.js.map +0 -1
- package/lib/esm/__/env-ci/__/is-stream/index.js.map +0 -1
- package/lib/esm/__/env-ci/__/npm-run-path/index.js.map +0 -1
- package/lib/esm/__/env-ci/__/path-key/index.js.map +0 -1
- package/lib/esm/__/env-ci/__/signal-exit/dist/mjs/index.js.map +0 -1
- package/lib/esm/__/env-ci/__/signal-exit/dist/mjs/signals.js.map +0 -1
- package/lib/esm/__/env-ci/__/strip-final-newline/index.js.map +0 -1
- package/lib/esm/_virtual/index13.js +0 -4
- package/lib/esm/_virtual/index13.js.map +0 -1
- package/lib/esm/_virtual/index14.js +0 -4
- package/lib/esm/_virtual/index14.js.map +0 -1
- /package/lib/cjs/__/{env-ci/__/execa → execa}/lib/command.js +0 -0
- /package/lib/cjs/__/{env-ci/__/execa → execa}/lib/error.js +0 -0
- /package/lib/cjs/__/{env-ci/__/execa → execa}/lib/promise.js +0 -0
- /package/lib/cjs/__/{env-ci/__/execa → execa}/lib/stdio.js +0 -0
- /package/lib/cjs/__/{env-ci/__/execa → execa}/lib/verbose.js +0 -0
- /package/lib/cjs/__/{env-ci/__/get-stream → get-stream}/source/array-buffer.js +0 -0
- /package/lib/cjs/__/{env-ci/__/human-signals → human-signals}/build/src/core.js +0 -0
- /package/lib/cjs/__/{env-ci/__/human-signals → human-signals}/build/src/main.js +0 -0
- /package/lib/cjs/__/{env-ci/__/human-signals → human-signals}/build/src/realtime.js +0 -0
- /package/lib/cjs/__/{env-ci/__/human-signals → human-signals}/build/src/signals.js +0 -0
- /package/lib/cjs/__/{env-ci/__/is-stream → is-stream}/index.js +0 -0
- /package/lib/cjs/__/{env-ci → npm-run-path}/__/path-key/index.js +0 -0
- /package/lib/cjs/__/{env-ci/__/signal-exit → signal-exit}/dist/mjs/index.js +0 -0
- /package/lib/cjs/__/{env-ci/__/signal-exit → signal-exit}/dist/mjs/signals.js +0 -0
- /package/lib/cjs/__/{env-ci/__/strip-final-newline → strip-final-newline}/index.js +0 -0
- /package/lib/esm/__/{env-ci/__/execa → execa}/lib/command.js +0 -0
- /package/lib/esm/__/{env-ci/__/execa → execa}/lib/error.js +0 -0
- /package/lib/esm/__/{env-ci/__/execa → execa}/lib/promise.js +0 -0
- /package/lib/esm/__/{env-ci/__/execa → execa}/lib/stdio.js +0 -0
- /package/lib/esm/__/{env-ci/__/execa → execa}/lib/verbose.js +0 -0
- /package/lib/esm/__/{env-ci/__/get-stream → get-stream}/source/array-buffer.js +0 -0
- /package/lib/esm/__/{env-ci/__/human-signals → human-signals}/build/src/core.js +0 -0
- /package/lib/esm/__/{env-ci/__/human-signals → human-signals}/build/src/main.js +0 -0
- /package/lib/esm/__/{env-ci/__/human-signals → human-signals}/build/src/realtime.js +0 -0
- /package/lib/esm/__/{env-ci/__/human-signals → human-signals}/build/src/signals.js +0 -0
- /package/lib/esm/__/{env-ci/__/is-stream → is-stream}/index.js +0 -0
- /package/lib/esm/__/{env-ci → npm-run-path}/__/path-key/index.js +0 -0
- /package/lib/esm/__/{env-ci/__/signal-exit → signal-exit}/dist/mjs/index.js +0 -0
- /package/lib/esm/__/{env-ci/__/signal-exit → signal-exit}/dist/mjs/signals.js +0 -0
- /package/lib/esm/__/{env-ci/__/strip-final-newline → strip-final-newline}/index.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/connection.js"],"sourcesContent":["'use strict'\n\nconst { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose,\n kResponse\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection, isClosing, isClosed, isEstablished, parseExtensions } = require('./util')\nconst { channels } = require('../../core/diagnostics')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers, getHeadersList } = require('../fetch/headers')\nconst { getDecodeSplit } = require('../fetch/util')\nconst { WebsocketFrameSend } = require('./frame')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('node:crypto')\n/* c8 ignore next 3 */\n} catch {\n\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any, extensions: string[] | undefined) => void} onEstablish\n * @param {Partial<import('../../types/websocket').WebSocketInit>} options\n */\nfunction establishWebSocketConnection (url, protocols, client, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url’s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n client,\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = getHeadersList(new Headers(options.headers))\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request’s header list.\n // 4. Append (`Connection`, `Upgrade`) to request’s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = crypto.randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request’s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n const permessageDeflate = 'permessage-deflate; client_max_window_bits'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request’s header list.\n request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher,\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response’s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n let extensions\n\n if (secExtension !== null) {\n extensions = parseExtensions(secExtension)\n\n if (!extensions.has('permessage-deflate')) {\n failWebsocketConnection(ws, 'Sec-WebSocket-Extensions header does not match.')\n return\n }\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null) {\n const requestProtocols = getDecodeSplit('sec-websocket-protocol', request.headersList)\n\n // The client can request that the server use a specific subprotocol by\n // including the |Sec-WebSocket-Protocol| field in its handshake. If it\n // is specified, the server needs to include the same field and one of\n // the selected subprotocol values in its response for the connection to\n // be established.\n if (!requestProtocols.includes(secProtocol)) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response, extensions)\n }\n })\n\n return controller\n}\n\nfunction closeWebSocketConnection (ws, code, reason, reasonByteLength) {\n if (isClosing(ws) || isClosed(ws)) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(ws)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(ws, 'Connection was closed before it was established.')\n ws[kReadyState] = states.CLOSING\n } else if (ws[kSentClose] === sentCloseFrameState.NOT_SENT) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n ws[kSentClose] = sentCloseFrameState.PROCESSING\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = ws[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE))\n\n ws[kSentClose] = sentCloseFrameState.SENT\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n ws[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n ws[kReadyState] = states.CLOSING\n }\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n const { [kResponse]: response } = ws\n\n response.socket.off('data', onSocketData)\n response.socket.off('close', onSocketClose)\n response.socket.off('error', onSocketError)\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] === sentCloseFrameState.SENT && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result && !result.error) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kReceivedClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n // TODO: process.nextTick\n fireEvent('close', ws, (type, init) => new CloseEvent(type, init), {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection,\n closeWebSocketConnection\n}\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"connection.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/connection.js"],"sourcesContent":["'use strict'\n\nconst { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose,\n kResponse\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection, isClosing, isClosed, isEstablished, parseExtensions } = require('./util')\nconst { channels } = require('../../core/diagnostics')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers, getHeadersList } = require('../fetch/headers')\nconst { getDecodeSplit } = require('../fetch/util')\nconst { WebsocketFrameSend } = require('./frame')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('node:crypto')\n/* c8 ignore next 3 */\n} catch {\n\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any, extensions: string[] | undefined) => void} onEstablish\n * @param {Partial<import('../../types/websocket').WebSocketInit>} options\n */\nfunction establishWebSocketConnection (url, protocols, client, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url’s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n client,\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = getHeadersList(new Headers(options.headers))\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request’s header list.\n // 4. Append (`Connection`, `Upgrade`) to request’s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = crypto.randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request’s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n const permessageDeflate = 'permessage-deflate; client_max_window_bits'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request’s header list.\n request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher,\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response’s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n let extensions\n\n if (secExtension !== null) {\n extensions = parseExtensions(secExtension)\n\n if (!extensions.has('permessage-deflate')) {\n failWebsocketConnection(ws, 'Sec-WebSocket-Extensions header does not match.')\n return\n }\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null) {\n const requestProtocols = getDecodeSplit('sec-websocket-protocol', request.headersList)\n\n // The client can request that the server use a specific subprotocol by\n // including the |Sec-WebSocket-Protocol| field in its handshake. If it\n // is specified, the server needs to include the same field and one of\n // the selected subprotocol values in its response for the connection to\n // be established.\n if (requestProtocols === null || !requestProtocols.includes(secProtocol)) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response, extensions)\n }\n })\n\n return controller\n}\n\nfunction closeWebSocketConnection (ws, code, reason, reasonByteLength) {\n if (isClosing(ws) || isClosed(ws)) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(ws)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(ws, 'Connection was closed before it was established.')\n ws[kReadyState] = states.CLOSING\n } else if (ws[kSentClose] === sentCloseFrameState.NOT_SENT) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n ws[kSentClose] = sentCloseFrameState.PROCESSING\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = ws[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE))\n\n ws[kSentClose] = sentCloseFrameState.SENT\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n ws[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n ws[kReadyState] = states.CLOSING\n }\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n const { [kResponse]: response } = ws\n\n response.socket.off('data', onSocketData)\n response.socket.off('close', onSocketClose)\n response.socket.off('error', onSocketError)\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] === sentCloseFrameState.SENT && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result && !result.error) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kReceivedClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n // TODO: process.nextTick\n fireEvent('close', ws, (type, init) => new CloseEvent(type, init), {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection,\n closeWebSocketConnection\n}\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/constants.js"],"sourcesContent":["'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst sentCloseFrameState = {\n NOT_SENT: 0,\n PROCESSING: 1,\n SENT: 2\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nconst sendHints = {\n string: 1,\n typedArray: 2,\n arrayBuffer: 3,\n blob: 4\n}\n\nmodule.exports = {\n uid,\n sentCloseFrameState,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer,\n sendHints\n}\n"],"names":[],"mappings":";;;;;;;;;AAEA;AACA;AACA;AACA;AACA,CAAA,MAAM,GAAG,GAAG;;AAEZ;AACA,CAAA,MAAM,yBAAyB,GAAG;GAChC,UAAU,EAAE,IAAI;GAChB,QAAQ,EAAE,KAAK;AACjB,GAAE,YAAY,EAAE;AAChB;;AAEA,CAAA,MAAM,MAAM,GAAG;GACb,UAAU,EAAE,CAAC;GACb,IAAI,EAAE,CAAC;GACP,OAAO,EAAE,CAAC;AACZ,GAAE,MAAM,EAAE;AACV;;AAEA,CAAA,MAAM,mBAAmB,GAAG;GAC1B,QAAQ,EAAE,CAAC;GACX,UAAU,EAAE,CAAC;AACf,GAAE,IAAI,EAAE;AACR;;AAEA,CAAA,MAAM,OAAO,GAAG;GACd,YAAY,EAAE,GAAG;GACjB,IAAI,EAAE,GAAG;GACT,MAAM,EAAE,GAAG;GACX,KAAK,EAAE,GAAG;GACV,IAAI,EAAE,GAAG;AACX,GAAE,IAAI,EAAE;AACR;;AAEA,CAAA,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAC;;AAEpC,CAAA,MAAM,YAAY,GAAG;GACnB,IAAI,EAAE,CAAC;GACP,gBAAgB,EAAE,CAAC;GACnB,gBAAgB,EAAE,CAAC;AACrB,GAAE,SAAS,EAAE;AACb;;AAEA,CAAA,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;;AAExC,CAAA,MAAM,SAAS,GAAG;GAChB,MAAM,EAAE,CAAC;GACT,UAAU,EAAE,CAAC;GACb,WAAW,EAAE,CAAC;AAChB,GAAE,IAAI,EAAE;AACR;;AAEA,CAAA,SAAc,GAAG;AACjB,GAAE,GAAG;AACL,GAAE,mBAAmB;AACrB,GAAE,yBAAyB;AAC3B,GAAE,MAAM;AACR,GAAE,OAAO;AACT,GAAE,gBAAgB;AAClB,GAAE,YAAY;AACd,GAAE,WAAW;GACX;AACF
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/constants.js"],"sourcesContent":["'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst sentCloseFrameState = {\n NOT_SENT: 0,\n PROCESSING: 1,\n SENT: 2\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nconst sendHints = {\n string: 1,\n typedArray: 2,\n arrayBuffer: 3,\n blob: 4\n}\n\nmodule.exports = {\n uid,\n sentCloseFrameState,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer,\n sendHints\n}\n"],"names":[],"mappings":";;;;;;;;;AAEA;AACA;AACA;AACA;AACA,CAAA,MAAM,GAAG,GAAG;;AAEZ;AACA,CAAA,MAAM,yBAAyB,GAAG;GAChC,UAAU,EAAE,IAAI;GAChB,QAAQ,EAAE,KAAK;AACjB,GAAE,YAAY,EAAE;AAChB;;AAEA,CAAA,MAAM,MAAM,GAAG;GACb,UAAU,EAAE,CAAC;GACb,IAAI,EAAE,CAAC;GACP,OAAO,EAAE,CAAC;AACZ,GAAE,MAAM,EAAE;AACV;;AAEA,CAAA,MAAM,mBAAmB,GAAG;GAC1B,QAAQ,EAAE,CAAC;GACX,UAAU,EAAE,CAAC;AACf,GAAE,IAAI,EAAE;AACR;;AAEA,CAAA,MAAM,OAAO,GAAG;GACd,YAAY,EAAE,GAAG;GACjB,IAAI,EAAE,GAAG;GACT,MAAM,EAAE,GAAG;GACX,KAAK,EAAE,GAAG;GACV,IAAI,EAAE,GAAG;AACX,GAAE,IAAI,EAAE;AACR;;AAEA,CAAA,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAC;;AAEpC,CAAA,MAAM,YAAY,GAAG;GACnB,IAAI,EAAE,CAAC;GACP,gBAAgB,EAAE,CAAC;GACnB,gBAAgB,EAAE,CAAC;AACrB,GAAE,SAAS,EAAE;AACb;;AAEA,CAAA,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;;AAExC,CAAA,MAAM,SAAS,GAAG;GAChB,MAAM,EAAE,CAAC;GACT,UAAU,EAAE,CAAC;GACb,WAAW,EAAE,CAAC;AAChB,GAAE,IAAI,EAAE;AACR;;AAEA,CAAA,SAAc,GAAG;AACjB,GAAE,GAAG;AACL,GAAE,mBAAmB;AACrB,GAAE,yBAAyB;AAC3B,GAAE,MAAM;AACR,GAAE,OAAO;AACT,GAAE,gBAAgB;AAClB,GAAE,YAAY;AACd,GAAE,WAAW;GACX;AACF;;;;","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/events.js"],"sourcesContent":["'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../../core/util')\nconst { kConstruct } = require('../../core/symbols')\nconst { MessagePort } = require('node:worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n if (type === kConstruct) {\n super(arguments[1], arguments[2])\n webidl.util.markAsUncloneable(this)\n return\n }\n\n const prefix = 'MessageEvent constructor'\n webidl.argumentLengthCheck(arguments, 1, prefix)\n\n type = webidl.converters.DOMString(type, prefix, 'type')\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict, prefix, 'eventInitDict')\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n webidl.util.markAsUncloneable(this)\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, 'MessageEvent.initMessageEvent')\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n\n static createFastMessageEvent (type, init) {\n const messageEvent = new MessageEvent(kConstruct, type, init)\n messageEvent.#eventInit = init\n messageEvent.#eventInit.data ??= null\n messageEvent.#eventInit.origin ??= ''\n messageEvent.#eventInit.lastEventId ??= ''\n messageEvent.#eventInit.source ??= null\n messageEvent.#eventInit.ports ??= []\n return messageEvent\n }\n}\n\nconst { createFastMessageEvent } = MessageEvent\ndelete MessageEvent.createFastMessageEvent\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n const prefix = 'CloseEvent constructor'\n webidl.argumentLengthCheck(arguments, 1, prefix)\n\n type = webidl.converters.DOMString(type, prefix, 'type')\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n webidl.util.markAsUncloneable(this)\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n const prefix = 'ErrorEvent constructor'\n webidl.argumentLengthCheck(arguments, 1, prefix)\n\n super(type, eventInitDict)\n webidl.util.markAsUncloneable(this)\n\n type = webidl.converters.DOMString(type, prefix, 'type')\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: () => false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: () => false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: () => false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: () => null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: () => ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: () => ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: () => null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence<MessagePort>'],\n defaultValue: () => new Array(0)\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: () => false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: () => 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: () => ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: () => ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: () => ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: () => 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: () => 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent,\n createFastMessageEvent\n}\n"],"names":["webidl","require$$0","require$$1","require$$2","require$$3"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"events.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/events.js"],"sourcesContent":["'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../../core/util')\nconst { kConstruct } = require('../../core/symbols')\nconst { MessagePort } = require('node:worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n if (type === kConstruct) {\n super(arguments[1], arguments[2])\n webidl.util.markAsUncloneable(this)\n return\n }\n\n const prefix = 'MessageEvent constructor'\n webidl.argumentLengthCheck(arguments, 1, prefix)\n\n type = webidl.converters.DOMString(type, prefix, 'type')\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict, prefix, 'eventInitDict')\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n webidl.util.markAsUncloneable(this)\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, 'MessageEvent.initMessageEvent')\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n\n static createFastMessageEvent (type, init) {\n const messageEvent = new MessageEvent(kConstruct, type, init)\n messageEvent.#eventInit = init\n messageEvent.#eventInit.data ??= null\n messageEvent.#eventInit.origin ??= ''\n messageEvent.#eventInit.lastEventId ??= ''\n messageEvent.#eventInit.source ??= null\n messageEvent.#eventInit.ports ??= []\n return messageEvent\n }\n}\n\nconst { createFastMessageEvent } = MessageEvent\ndelete MessageEvent.createFastMessageEvent\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n const prefix = 'CloseEvent constructor'\n webidl.argumentLengthCheck(arguments, 1, prefix)\n\n type = webidl.converters.DOMString(type, prefix, 'type')\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n webidl.util.markAsUncloneable(this)\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n const prefix = 'ErrorEvent constructor'\n webidl.argumentLengthCheck(arguments, 1, prefix)\n\n super(type, eventInitDict)\n webidl.util.markAsUncloneable(this)\n\n type = webidl.converters.DOMString(type, prefix, 'type')\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: () => false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: () => false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: () => false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: () => null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: () => ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: () => ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: () => null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence<MessagePort>'],\n defaultValue: () => new Array(0)\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: () => false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: () => 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: () => ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: () => ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: () => ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: () => 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: () => 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent,\n createFastMessageEvent\n}\n"],"names":["webidl","require$$0","require$$1","require$$2","require$$3"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/frame.js"],"sourcesContent":["'use strict'\n\nconst { maxUnsigned16Bit } = require('./constants')\n\nconst BUFFER_SIZE = 16386\n\n/** @type {import('crypto')} */\nlet crypto\nlet buffer = null\nlet bufIdx = BUFFER_SIZE\n\ntry {\n crypto = require('node:crypto')\n/* c8 ignore next 3 */\n} catch {\n crypto = {\n // not full compatibility, but minimum.\n randomFillSync: function randomFillSync (buffer, _offset, _size) {\n for (let i = 0; i < buffer.length; ++i) {\n buffer[i] = Math.random() * 255 | 0\n }\n return buffer\n }\n }\n}\n\nfunction generateMask () {\n if (bufIdx === BUFFER_SIZE) {\n bufIdx = 0\n crypto.randomFillSync((buffer ??= Buffer.allocUnsafe(BUFFER_SIZE)), 0, BUFFER_SIZE)\n }\n return [buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++]]\n}\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n }\n\n createFrame (opcode) {\n const frameData = this.frameData\n const maskKey = generateMask()\n const bodyLength = frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */\n buffer[offset - 4] = maskKey[0]\n buffer[offset - 3] = maskKey[1]\n buffer[offset - 2] = maskKey[2]\n buffer[offset - 1] = maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; ++i) {\n buffer[offset + i] = frameData[i] ^ maskKey[i & 3]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n"],"names":["require$$0"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"frame.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/frame.js"],"sourcesContent":["'use strict'\n\nconst { maxUnsigned16Bit } = require('./constants')\n\nconst BUFFER_SIZE = 16386\n\n/** @type {import('crypto')} */\nlet crypto\nlet buffer = null\nlet bufIdx = BUFFER_SIZE\n\ntry {\n crypto = require('node:crypto')\n/* c8 ignore next 3 */\n} catch {\n crypto = {\n // not full compatibility, but minimum.\n randomFillSync: function randomFillSync (buffer, _offset, _size) {\n for (let i = 0; i < buffer.length; ++i) {\n buffer[i] = Math.random() * 255 | 0\n }\n return buffer\n }\n }\n}\n\nfunction generateMask () {\n if (bufIdx === BUFFER_SIZE) {\n bufIdx = 0\n crypto.randomFillSync((buffer ??= Buffer.allocUnsafe(BUFFER_SIZE)), 0, BUFFER_SIZE)\n }\n return [buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++]]\n}\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n }\n\n createFrame (opcode) {\n const frameData = this.frameData\n const maskKey = generateMask()\n const bodyLength = frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */\n buffer[offset - 4] = maskKey[0]\n buffer[offset - 3] = maskKey[1]\n buffer[offset - 2] = maskKey[2]\n buffer[offset - 1] = maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; ++i) {\n buffer[offset + i] = frameData[i] ^ maskKey[i & 3]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n"],"names":["require$$0"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -78,7 +78,12 @@ function requirePermessageDeflate () {
|
|
|
78
78
|
|
|
79
79
|
if (this.#maxPayloadSize > 0 && this.#inflate[kLength] > this.#maxPayloadSize) {
|
|
80
80
|
callback(new MessageSizeExceededError());
|
|
81
|
+
// The inflater may still hold buffered input that can emit a late
|
|
82
|
+
// zlib error. Remove the data listener, then deterministically stop
|
|
83
|
+
// the stream so a subsequent 'error' cannot fire without a listener
|
|
84
|
+
// (which would terminate the process as an unhandled error event).
|
|
81
85
|
this.#inflate.removeAllListeners();
|
|
86
|
+
this.#inflate.destroy();
|
|
82
87
|
this.#inflate = null;
|
|
83
88
|
return
|
|
84
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permessage-deflate.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/permessage-deflate.js"],"sourcesContent":["'use strict'\n\nconst { createInflateRaw, Z_DEFAULT_WINDOWBITS } = require('node:zlib')\nconst { isValidClientWindowBits } = require('./util')\nconst { MessageSizeExceededError } = require('../../core/errors')\n\nconst tail = Buffer.from([0x00, 0x00, 0xff, 0xff])\nconst kBuffer = Symbol('kBuffer')\nconst kLength = Symbol('kLength')\n\nclass PerMessageDeflate {\n /** @type {import('node:zlib').InflateRaw} */\n #inflate\n\n #options = {}\n\n #maxPayloadSize = 0\n\n /**\n * @param {Map<string, string>} extensions\n */\n constructor (extensions, options) {\n this.#options.serverNoContextTakeover = extensions.has('server_no_context_takeover')\n this.#options.serverMaxWindowBits = extensions.get('server_max_window_bits')\n\n this.#maxPayloadSize = options.maxPayloadSize\n }\n\n /**\n * Decompress a compressed payload.\n * @param {Buffer} chunk Compressed data\n * @param {boolean} fin Final fragment flag\n * @param {Function} callback Callback function\n */\n decompress (chunk, fin, callback) {\n // An endpoint uses the following algorithm to decompress a message.\n // 1. Append 4 octets of 0x00 0x00 0xff 0xff to the tail end of the\n // payload of the message.\n // 2. Decompress the resulting data using DEFLATE.\n if (!this.#inflate) {\n let windowBits = Z_DEFAULT_WINDOWBITS\n\n if (this.#options.serverMaxWindowBits) { // empty values default to Z_DEFAULT_WINDOWBITS\n if (!isValidClientWindowBits(this.#options.serverMaxWindowBits)) {\n callback(new Error('Invalid server_max_window_bits'))\n return\n }\n\n windowBits = Number.parseInt(this.#options.serverMaxWindowBits)\n }\n\n try {\n this.#inflate = createInflateRaw({ windowBits })\n } catch (err) {\n callback(err)\n return\n }\n this.#inflate[kBuffer] = []\n this.#inflate[kLength] = 0\n\n this.#inflate.on('data', (data) => {\n this.#inflate[kLength] += data.length\n\n if (this.#maxPayloadSize > 0 && this.#inflate[kLength] > this.#maxPayloadSize) {\n callback(new MessageSizeExceededError())\n this.#inflate.removeAllListeners()\n this.#inflate = null\n return\n }\n\n this.#inflate[kBuffer].push(data)\n })\n\n this.#inflate.on('error', (err) => {\n this.#inflate = null\n callback(err)\n })\n }\n\n this.#inflate.write(chunk)\n if (fin) {\n this.#inflate.write(tail)\n }\n\n this.#inflate.flush(() => {\n if (!this.#inflate) {\n return\n }\n\n const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength])\n\n this.#inflate[kBuffer].length = 0\n this.#inflate[kLength] = 0\n\n callback(null, full)\n })\n }\n}\n\nmodule.exports = { PerMessageDeflate }\n"],"names":["require$$0","require$$1","require$$2"],"mappings":";;;;;;;;;;;;;;;;;AAEA,CAAA,MAAM,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,GAAGA;CACnD,MAAM,EAAE,uBAAuB,EAAE,GAAGC,cAAA;CACpC,MAAM,EAAE,wBAAwB,EAAE,GAAGC,gBAAA;;AAErC,CAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACjD,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS;AAChC,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS;;AAEhC,CAAA,MAAM,iBAAiB,CAAC;AACxB;GACE;;AAEF,GAAE,QAAQ,GAAG;;AAEb,GAAE,eAAe,GAAG;;AAEpB;AACA;AACA;AACA,GAAE,WAAW,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE;KAChC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,GAAG,UAAU,CAAC,GAAG,CAAC,4BAA4B;KACnF,IAAI,CAAC,QAAQ,CAAC,mBAAmB,GAAG,UAAU,CAAC,GAAG,CAAC,wBAAwB;;AAE/E,KAAI,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;AACnC,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE;AACpC;AACA;AACA;AACA;AACA,KAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;OAClB,IAAI,UAAU,GAAG;;AAEvB,OAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE;SACrC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;AACzE,WAAU,QAAQ,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC;WACpD;AACV,SAAA;;SAEQ,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB;AACtE,OAAA;;AAEA,OAAM,IAAI;SACF,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,EAAE,UAAU,EAAE;OACvD,CAAO,CAAC,OAAO,GAAG,EAAE;SACZ,QAAQ,CAAC,GAAG;SACZ;AACR,OAAA;AACA,OAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG;AAC/B,OAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG;;OAEzB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK;SACjC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;;AAEvC,SAAQ,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE;AACvF,WAAU,QAAQ,CAAC,IAAI,wBAAwB,EAAE;AACjD,WAAU,IAAI,CAAC,QAAQ,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"permessage-deflate.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/permessage-deflate.js"],"sourcesContent":["'use strict'\n\nconst { createInflateRaw, Z_DEFAULT_WINDOWBITS } = require('node:zlib')\nconst { isValidClientWindowBits } = require('./util')\nconst { MessageSizeExceededError } = require('../../core/errors')\n\nconst tail = Buffer.from([0x00, 0x00, 0xff, 0xff])\nconst kBuffer = Symbol('kBuffer')\nconst kLength = Symbol('kLength')\n\nclass PerMessageDeflate {\n /** @type {import('node:zlib').InflateRaw} */\n #inflate\n\n #options = {}\n\n #maxPayloadSize = 0\n\n /**\n * @param {Map<string, string>} extensions\n */\n constructor (extensions, options) {\n this.#options.serverNoContextTakeover = extensions.has('server_no_context_takeover')\n this.#options.serverMaxWindowBits = extensions.get('server_max_window_bits')\n\n this.#maxPayloadSize = options.maxPayloadSize\n }\n\n /**\n * Decompress a compressed payload.\n * @param {Buffer} chunk Compressed data\n * @param {boolean} fin Final fragment flag\n * @param {Function} callback Callback function\n */\n decompress (chunk, fin, callback) {\n // An endpoint uses the following algorithm to decompress a message.\n // 1. Append 4 octets of 0x00 0x00 0xff 0xff to the tail end of the\n // payload of the message.\n // 2. Decompress the resulting data using DEFLATE.\n if (!this.#inflate) {\n let windowBits = Z_DEFAULT_WINDOWBITS\n\n if (this.#options.serverMaxWindowBits) { // empty values default to Z_DEFAULT_WINDOWBITS\n if (!isValidClientWindowBits(this.#options.serverMaxWindowBits)) {\n callback(new Error('Invalid server_max_window_bits'))\n return\n }\n\n windowBits = Number.parseInt(this.#options.serverMaxWindowBits)\n }\n\n try {\n this.#inflate = createInflateRaw({ windowBits })\n } catch (err) {\n callback(err)\n return\n }\n this.#inflate[kBuffer] = []\n this.#inflate[kLength] = 0\n\n this.#inflate.on('data', (data) => {\n this.#inflate[kLength] += data.length\n\n if (this.#maxPayloadSize > 0 && this.#inflate[kLength] > this.#maxPayloadSize) {\n callback(new MessageSizeExceededError())\n // The inflater may still hold buffered input that can emit a late\n // zlib error. Remove the data listener, then deterministically stop\n // the stream so a subsequent 'error' cannot fire without a listener\n // (which would terminate the process as an unhandled error event).\n this.#inflate.removeAllListeners()\n this.#inflate.destroy()\n this.#inflate = null\n return\n }\n\n this.#inflate[kBuffer].push(data)\n })\n\n this.#inflate.on('error', (err) => {\n this.#inflate = null\n callback(err)\n })\n }\n\n this.#inflate.write(chunk)\n if (fin) {\n this.#inflate.write(tail)\n }\n\n this.#inflate.flush(() => {\n if (!this.#inflate) {\n return\n }\n\n const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength])\n\n this.#inflate[kBuffer].length = 0\n this.#inflate[kLength] = 0\n\n callback(null, full)\n })\n }\n}\n\nmodule.exports = { PerMessageDeflate }\n"],"names":["require$$0","require$$1","require$$2"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receiver.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/receiver.js"],"sourcesContent":["'use strict'\n\nconst { Writable } = require('node:stream')\nconst assert = require('node:assert')\nconst { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { channels } = require('../../core/diagnostics')\nconst {\n isValidStatusCode,\n isValidOpcode,\n failWebsocketConnection,\n websocketMessageReceived,\n utf8Decode,\n isControlFrame,\n isTextBinaryFrame,\n isContinuationFrame\n} = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\nconst { closeWebSocketConnection } = require('./connection')\nconst { PerMessageDeflate } = require('./permessage-deflate')\nconst { MessageSizeExceededError } = require('../../core/errors')\n\nfunction failWebsocketConnectionWithCode (ws, code, reason) {\n closeWebSocketConnection(ws, code, reason, Buffer.byteLength(reason))\n failWebsocketConnection(ws, reason)\n}\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nclass ByteParser extends Writable {\n #buffers = []\n #fragmentsBytes = 0\n #byteOffset = 0\n #loop = false\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n /** @type {Map<string, PerMessageDeflate>} */\n #extensions\n\n /** @type {number} */\n #maxFragments\n\n /** @type {number} */\n #maxPayloadSize\n\n /**\n * @param {import('./websocket').WebSocket} ws\n * @param {Map<string, string>|null} extensions\n * @param {{ maxFragments?: number, maxPayloadSize?: number }} [options]\n */\n constructor (ws, extensions, options = {}) {\n super()\n\n this.ws = ws\n this.#extensions = extensions == null ? new Map() : extensions\n this.#maxFragments = options.maxFragments ?? 0\n this.#maxPayloadSize = options.maxPayloadSize ?? 0\n\n if (this.#extensions.has('permessage-deflate')) {\n this.#extensions.set('permessage-deflate', new PerMessageDeflate(extensions, options))\n }\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n this.#loop = true\n\n this.run(callback)\n }\n\n #validatePayloadLength () {\n if (\n this.#maxPayloadSize > 0 &&\n !isControlFrame(this.#info.opcode) &&\n this.#info.payloadLength + this.#fragmentsBytes > this.#maxPayloadSize\n ) {\n failWebsocketConnectionWithCode(this.ws, 1009, 'Payload size exceeds maximum allowed size')\n return false\n }\n\n return true\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (this.#loop) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n const fin = (buffer[0] & 0x80) !== 0\n const opcode = buffer[0] & 0x0F\n const masked = (buffer[1] & 0x80) === 0x80\n\n const fragmented = !fin && opcode !== opcodes.CONTINUATION\n const payloadLength = buffer[1] & 0x7F\n\n const rsv1 = buffer[0] & 0x40\n const rsv2 = buffer[0] & 0x20\n const rsv3 = buffer[0] & 0x10\n\n if (!isValidOpcode(opcode)) {\n failWebsocketConnection(this.ws, 'Invalid opcode received')\n return callback()\n }\n\n if (masked) {\n failWebsocketConnection(this.ws, 'Frame cannot be masked')\n return callback()\n }\n\n // MUST be 0 unless an extension is negotiated that defines meanings\n // for non-zero values. If a nonzero value is received and none of\n // the negotiated extensions defines the meaning of such a nonzero\n // value, the receiving endpoint MUST _Fail the WebSocket\n // Connection_.\n // This document allocates the RSV1 bit of the WebSocket header for\n // PMCEs and calls the bit the \"Per-Message Compressed\" bit. On a\n // WebSocket connection where a PMCE is in use, this bit indicates\n // whether a message is compressed or not.\n if (rsv1 !== 0 && !this.#extensions.has('permessage-deflate')) {\n failWebsocketConnection(this.ws, 'Expected RSV1 to be clear.')\n return\n }\n\n if (rsv2 !== 0 || rsv3 !== 0) {\n failWebsocketConnection(this.ws, 'RSV1, RSV2, RSV3 must be clear')\n return\n }\n\n if (fragmented && !isTextBinaryFrame(opcode)) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n // If we are already parsing a text/binary frame and do not receive either\n // a continuation frame or close frame, fail the connection.\n if (isTextBinaryFrame(opcode) && this.#fragments.length > 0) {\n failWebsocketConnection(this.ws, 'Expected continuation frame')\n return\n }\n\n if (this.#info.fragmented && fragmented) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n }\n\n // \"All control frames MUST have a payload length of 125 bytes or less\n // and MUST NOT be fragmented.\"\n if ((payloadLength > 125 || fragmented) && isControlFrame(opcode)) {\n failWebsocketConnection(this.ws, 'Control frame either too large or fragmented')\n return\n }\n\n if (isContinuationFrame(opcode) && this.#fragments.length === 0 && !this.#info.compressed) {\n failWebsocketConnection(this.ws, 'Unexpected continuation frame')\n return\n }\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n\n if (!this.#validatePayloadLength()) {\n return\n }\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (isTextBinaryFrame(opcode)) {\n this.#info.binaryType = opcode\n this.#info.compressed = rsv1 !== 0\n }\n\n this.#info.opcode = opcode\n this.#info.masked = masked\n this.#info.fin = fin\n this.#info.fragmented = fragmented\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n\n if (!this.#validatePayloadLength()) {\n return\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n const lower = buffer.readUInt32BE(4)\n\n // 2^31 is the maximum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper !== 0 || lower > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n this.#info.payloadLength = lower\n this.#state = parserStates.READ_DATA\n\n if (!this.#validatePayloadLength()) {\n return\n }\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n return callback()\n }\n\n const body = this.consume(this.#info.payloadLength)\n\n if (isControlFrame(this.#info.opcode)) {\n this.#loop = this.parseControlFrame(body)\n this.#state = parserStates.INFO\n } else {\n if (!this.#info.compressed) {\n if (!this.writeFragments(body)) {\n return\n }\n\n if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) {\n failWebsocketConnectionWithCode(this.ws, 1009, new MessageSizeExceededError().message)\n return\n }\n\n // If the frame is not fragmented, a message has been received.\n // If the frame is fragmented, it will terminate with a fin bit set\n // and an opcode of 0 (continuation), therefore we handle that when\n // parsing continuation frames, not here.\n if (!this.#info.fragmented && this.#info.fin) {\n websocketMessageReceived(this.ws, this.#info.binaryType, this.consumeFragments())\n }\n\n this.#state = parserStates.INFO\n } else {\n this.#extensions.get('permessage-deflate').decompress(\n body,\n this.#info.fin,\n (error, data) => {\n if (error) {\n const code = error instanceof MessageSizeExceededError ? 1009 : 1007\n failWebsocketConnectionWithCode(this.ws, code, error.message)\n return\n }\n\n if (!this.writeFragments(data)) {\n return\n }\n\n if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) {\n failWebsocketConnectionWithCode(this.ws, 1009, new MessageSizeExceededError().message)\n return\n }\n\n if (!this.#info.fin) {\n this.#state = parserStates.INFO\n this.#loop = true\n this.run(callback)\n return\n }\n\n websocketMessageReceived(this.ws, this.#info.binaryType, this.consumeFragments())\n\n this.#loop = true\n this.#state = parserStates.INFO\n this.run(callback)\n }\n )\n\n this.#loop = false\n break\n }\n }\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n throw new Error('Called consume() before buffers satiated.')\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n writeFragments (fragment) {\n if (\n this.#maxFragments > 0 &&\n this.#fragments.length === this.#maxFragments\n ) {\n failWebsocketConnectionWithCode(this.ws, 1008, 'Too many message fragments')\n return false\n }\n\n this.#fragmentsBytes += fragment.length\n this.#fragments.push(fragment)\n return true\n }\n\n consumeFragments () {\n const fragments = this.#fragments\n\n if (fragments.length === 1) {\n this.#fragmentsBytes = 0\n return fragments.shift()\n }\n\n const output = Buffer.concat(fragments, this.#fragmentsBytes)\n this.#fragments = []\n this.#fragmentsBytes = 0\n\n return output\n }\n\n parseCloseBody (data) {\n assert(data.length !== 1)\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return { code: 1002, reason: 'Invalid status code', error: true }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n try {\n reason = utf8Decode(reason)\n } catch {\n return { code: 1007, reason: 'Invalid UTF-8', error: true }\n }\n\n return { code, reason, error: false }\n }\n\n /**\n * Parses control frames.\n * @param {Buffer} body\n */\n parseControlFrame (body) {\n const { opcode, payloadLength } = this.#info\n\n if (opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return false\n }\n\n this.#info.closeInfo = this.parseCloseBody(body)\n\n if (this.#info.closeInfo.error) {\n const { code, reason } = this.#info.closeInfo\n\n closeWebSocketConnection(this.ws, code, reason, reason.length)\n failWebsocketConnection(this.ws, reason)\n return false\n }\n\n if (this.ws[kSentClose] !== sentCloseFrameState.SENT) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n let body = emptyBuffer\n if (this.#info.closeInfo.code) {\n body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n }\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = sentCloseFrameState.SENT\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n return false\n } else if (opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n } else if (opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n }\n\n return true\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"receiver.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/receiver.js"],"sourcesContent":["'use strict'\n\nconst { Writable } = require('node:stream')\nconst assert = require('node:assert')\nconst { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { channels } = require('../../core/diagnostics')\nconst {\n isValidStatusCode,\n isValidOpcode,\n failWebsocketConnection,\n websocketMessageReceived,\n utf8Decode,\n isControlFrame,\n isTextBinaryFrame,\n isContinuationFrame\n} = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\nconst { closeWebSocketConnection } = require('./connection')\nconst { PerMessageDeflate } = require('./permessage-deflate')\nconst { MessageSizeExceededError } = require('../../core/errors')\n\nfunction failWebsocketConnectionWithCode (ws, code, reason) {\n closeWebSocketConnection(ws, code, reason, Buffer.byteLength(reason))\n failWebsocketConnection(ws, reason)\n}\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nclass ByteParser extends Writable {\n #buffers = []\n #fragmentsBytes = 0\n #byteOffset = 0\n #loop = false\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n /** @type {Map<string, PerMessageDeflate>} */\n #extensions\n\n /** @type {number} */\n #maxFragments\n\n /** @type {number} */\n #maxPayloadSize\n\n /**\n * @param {import('./websocket').WebSocket} ws\n * @param {Map<string, string>|null} extensions\n * @param {{ maxFragments?: number, maxPayloadSize?: number }} [options]\n */\n constructor (ws, extensions, options = {}) {\n super()\n\n this.ws = ws\n this.#extensions = extensions == null ? new Map() : extensions\n this.#maxFragments = options.maxFragments ?? 0\n this.#maxPayloadSize = options.maxPayloadSize ?? 0\n\n if (this.#extensions.has('permessage-deflate')) {\n this.#extensions.set('permessage-deflate', new PerMessageDeflate(extensions, options))\n }\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n this.#loop = true\n\n this.run(callback)\n }\n\n #validatePayloadLength () {\n if (\n this.#maxPayloadSize > 0 &&\n !isControlFrame(this.#info.opcode) &&\n this.#info.payloadLength + this.#fragmentsBytes > this.#maxPayloadSize\n ) {\n failWebsocketConnectionWithCode(this.ws, 1009, 'Payload size exceeds maximum allowed size')\n return false\n }\n\n return true\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (this.#loop) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n const fin = (buffer[0] & 0x80) !== 0\n const opcode = buffer[0] & 0x0F\n const masked = (buffer[1] & 0x80) === 0x80\n\n const fragmented = !fin && opcode !== opcodes.CONTINUATION\n const payloadLength = buffer[1] & 0x7F\n\n const rsv1 = buffer[0] & 0x40\n const rsv2 = buffer[0] & 0x20\n const rsv3 = buffer[0] & 0x10\n\n if (!isValidOpcode(opcode)) {\n failWebsocketConnection(this.ws, 'Invalid opcode received')\n return callback()\n }\n\n if (masked) {\n failWebsocketConnection(this.ws, 'Frame cannot be masked')\n return callback()\n }\n\n // MUST be 0 unless an extension is negotiated that defines meanings\n // for non-zero values. If a nonzero value is received and none of\n // the negotiated extensions defines the meaning of such a nonzero\n // value, the receiving endpoint MUST _Fail the WebSocket\n // Connection_.\n // This document allocates the RSV1 bit of the WebSocket header for\n // PMCEs and calls the bit the \"Per-Message Compressed\" bit. On a\n // WebSocket connection where a PMCE is in use, this bit indicates\n // whether a message is compressed or not.\n if (rsv1 !== 0 && !this.#extensions.has('permessage-deflate')) {\n failWebsocketConnection(this.ws, 'Expected RSV1 to be clear.')\n return\n }\n\n if (rsv2 !== 0 || rsv3 !== 0) {\n failWebsocketConnection(this.ws, 'RSV1, RSV2, RSV3 must be clear')\n return\n }\n\n if (fragmented && !isTextBinaryFrame(opcode)) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n // If we are already parsing a text/binary frame and do not receive either\n // a continuation frame or close frame, fail the connection.\n if (isTextBinaryFrame(opcode) && this.#fragments.length > 0) {\n failWebsocketConnection(this.ws, 'Expected continuation frame')\n return\n }\n\n if (this.#info.fragmented && fragmented) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n }\n\n // \"All control frames MUST have a payload length of 125 bytes or less\n // and MUST NOT be fragmented.\"\n if ((payloadLength > 125 || fragmented) && isControlFrame(opcode)) {\n failWebsocketConnection(this.ws, 'Control frame either too large or fragmented')\n return\n }\n\n if (isContinuationFrame(opcode) && this.#fragments.length === 0 && !this.#info.compressed) {\n failWebsocketConnection(this.ws, 'Unexpected continuation frame')\n return\n }\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n\n if (!this.#validatePayloadLength()) {\n return\n }\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (isTextBinaryFrame(opcode)) {\n this.#info.binaryType = opcode\n this.#info.compressed = rsv1 !== 0\n }\n\n this.#info.opcode = opcode\n this.#info.masked = masked\n this.#info.fin = fin\n this.#info.fragmented = fragmented\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n\n if (!this.#validatePayloadLength()) {\n return\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n const lower = buffer.readUInt32BE(4)\n\n // 2^31 is the maximum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper !== 0 || lower > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n this.#info.payloadLength = lower\n this.#state = parserStates.READ_DATA\n\n if (!this.#validatePayloadLength()) {\n return\n }\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n return callback()\n }\n\n const body = this.consume(this.#info.payloadLength)\n\n if (isControlFrame(this.#info.opcode)) {\n this.#loop = this.parseControlFrame(body)\n this.#state = parserStates.INFO\n } else {\n if (!this.#info.compressed) {\n if (!this.writeFragments(body)) {\n return\n }\n\n if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) {\n failWebsocketConnectionWithCode(this.ws, 1009, new MessageSizeExceededError().message)\n return\n }\n\n // If the frame is not fragmented, a message has been received.\n // If the frame is fragmented, it will terminate with a fin bit set\n // and an opcode of 0 (continuation), therefore we handle that when\n // parsing continuation frames, not here.\n if (!this.#info.fragmented && this.#info.fin) {\n websocketMessageReceived(this.ws, this.#info.binaryType, this.consumeFragments())\n }\n\n this.#state = parserStates.INFO\n } else {\n this.#extensions.get('permessage-deflate').decompress(\n body,\n this.#info.fin,\n (error, data) => {\n if (error) {\n const code = error instanceof MessageSizeExceededError ? 1009 : 1007\n failWebsocketConnectionWithCode(this.ws, code, error.message)\n return\n }\n\n if (!this.writeFragments(data)) {\n return\n }\n\n if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) {\n failWebsocketConnectionWithCode(this.ws, 1009, new MessageSizeExceededError().message)\n return\n }\n\n if (!this.#info.fin) {\n this.#state = parserStates.INFO\n this.#loop = true\n this.run(callback)\n return\n }\n\n websocketMessageReceived(this.ws, this.#info.binaryType, this.consumeFragments())\n\n this.#loop = true\n this.#state = parserStates.INFO\n this.run(callback)\n }\n )\n\n this.#loop = false\n break\n }\n }\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n throw new Error('Called consume() before buffers satiated.')\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n writeFragments (fragment) {\n if (\n this.#maxFragments > 0 &&\n this.#fragments.length === this.#maxFragments\n ) {\n failWebsocketConnectionWithCode(this.ws, 1008, 'Too many message fragments')\n return false\n }\n\n this.#fragmentsBytes += fragment.length\n this.#fragments.push(fragment)\n return true\n }\n\n consumeFragments () {\n const fragments = this.#fragments\n\n if (fragments.length === 1) {\n this.#fragmentsBytes = 0\n return fragments.shift()\n }\n\n const output = Buffer.concat(fragments, this.#fragmentsBytes)\n this.#fragments = []\n this.#fragmentsBytes = 0\n\n return output\n }\n\n parseCloseBody (data) {\n assert(data.length !== 1)\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return { code: 1002, reason: 'Invalid status code', error: true }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n try {\n reason = utf8Decode(reason)\n } catch {\n return { code: 1007, reason: 'Invalid UTF-8', error: true }\n }\n\n return { code, reason, error: false }\n }\n\n /**\n * Parses control frames.\n * @param {Buffer} body\n */\n parseControlFrame (body) {\n const { opcode, payloadLength } = this.#info\n\n if (opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return false\n }\n\n this.#info.closeInfo = this.parseCloseBody(body)\n\n if (this.#info.closeInfo.error) {\n const { code, reason } = this.#info.closeInfo\n\n closeWebSocketConnection(this.ws, code, reason, reason.length)\n failWebsocketConnection(this.ws, reason)\n return false\n }\n\n if (this.ws[kSentClose] !== sentCloseFrameState.SENT) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n let body = emptyBuffer\n if (this.#info.closeInfo.code) {\n body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n }\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = sentCloseFrameState.SENT\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n return false\n } else if (opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n } else if (opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n }\n\n return true\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;CAEA,MAAM,EAAE,QAAQ,EAAE,GAAGA;AACrB,CAAA,MAAM,MAAM,GAAGC;CACf,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAGC,mBAAA;CAC5E,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,GAAGC,iBAAA;CAC/D,MAAM,EAAE,QAAQ,EAAE,GAAGC,qBAAA;CACrB,MAAM;AACN,GAAE,iBAAiB;AACnB,GAAE,aAAa;AACf,GAAE,uBAAuB;AACzB,GAAE,wBAAwB;AAC1B,GAAE,UAAU;AACZ,GAAE,cAAc;AAChB,GAAE,iBAAiB;GACjB;AACF,EAAC,GAAGC,cAAA;CACJ,MAAM,EAAE,kBAAkB,EAAE,GAAGC,eAAA;CAC/B,MAAM,EAAE,wBAAwB,EAAE,GAAGC,oBAAA;CACrC,MAAM,EAAE,iBAAiB,EAAE,GAAGC,2BAAA;CAC9B,MAAM,EAAE,wBAAwB,EAAE,GAAGC,gBAAA;;AAErC,CAAA,SAAS,+BAA+B,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AAC5D,GAAE,wBAAwB,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;AACtE,GAAE,uBAAuB,CAAC,EAAE,EAAE,MAAM;AACpC,CAAA;;AAEA;AACA;AACA;AACA;;CAEA,MAAM,UAAU,SAAS,QAAQ,CAAC;AAClC,GAAE,QAAQ,GAAG;AACb,GAAE,eAAe,GAAG;AACpB,GAAE,WAAW,GAAG;AAChB,GAAE,KAAK,GAAG;;GAER,MAAM,GAAG,YAAY,CAAC;;AAExB,GAAE,KAAK,GAAG;AACV,GAAE,UAAU,GAAG;;AAEf;GACE;;AAEF;GACE;;AAEF;GACE;;AAEF;AACA;AACA;AACA;AACA;GACE,WAAW,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,GAAG,EAAE,EAAE;AAC7C,KAAI,KAAK;;KAEL,IAAI,CAAC,EAAE,GAAG;KACV,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;AACxD,KAAI,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI;AACjD,KAAI,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,IAAI;;KAEjD,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AACpD,OAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC;AAC3F,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA;GACE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE;AAC9B,KAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK;AAC5B,KAAI,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;KAC1B,IAAI,CAAC,KAAK,GAAG;;AAEjB,KAAI,IAAI,CAAC,GAAG,CAAC,QAAQ;AACrB,GAAA;;GAEE,sBAAsB,CAAC,GAAG;KACxB;AACJ,OAAM,IAAI,CAAC,eAAe,GAAG,CAAC;OACxB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;OAClC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;OACvD;OACA,+BAA+B,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,2CAA2C;AAChG,OAAM,OAAO;AACb,KAAA;;AAEA,KAAI,OAAO;AACX,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;AACjB,KAAI,OAAO,IAAI,CAAC,KAAK,EAAE;OACjB,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,IAAI,EAAE;AAC7C;AACA,SAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AAClC,WAAU,OAAO,QAAQ;AACzB,SAAA;;AAEA,SAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;SAC7B,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM;AAC3C,SAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG;SAC3B,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM;;SAEtC,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,MAAM,KAAK,OAAO,CAAC;AACtD,SAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG;;AAE1C,SAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG;AACjC,SAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG;AACjC,SAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG;;AAEjC,SAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;AACpC,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAyB;AACpE,WAAU,OAAO,QAAQ;AACzB,SAAA;;SAEQ,IAAI,MAAM,EAAE;AACpB,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,wBAAwB;AACnE,WAAU,OAAO,QAAQ;AACzB,SAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AACvE,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,4BAA4B;WAC7D;AACV,SAAA;;SAEQ,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;AACtC,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,gCAAgC;WACjE;AACV,SAAA;;SAEQ,IAAI,UAAU,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;AACtD;AACA,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,oCAAoC;WACrE;AACV,SAAA;;AAEA;AACA;AACA,SAAQ,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACrE,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,6BAA6B;WAC9D;AACV,SAAA;;SAEQ,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,UAAU,EAAE;AACjD;AACA,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,sCAAsC;WACvE;AACV,SAAA;;AAEA;AACA;AACA,SAAQ,IAAI,CAAC,aAAa,GAAG,GAAG,IAAI,UAAU,KAAK,cAAc,CAAC,MAAM,CAAC,EAAE;AAC3E,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,8CAA8C;WAC/E;AACV,SAAA;;SAEQ,IAAI,mBAAmB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AACnG,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,+BAA+B;WAChE;AACV,SAAA;;AAEA,SAAQ,IAAI,aAAa,IAAI,GAAG,EAAE;AAClC,WAAU,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG;AACrC,WAAU,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;;AAErC,WAAU,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE;aAClC;AACZ,WAAA;AACA,SAAA,CAAS,MAAM,IAAI,aAAa,KAAK,GAAG,EAAE;AAC1C,WAAU,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;AACrC,SAAA,CAAS,MAAM,IAAI,aAAa,KAAK,GAAG,EAAE;AAC1C,WAAU,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;AACrC,SAAA;;AAEA,SAAQ,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE;AACvC,WAAU,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG;AAClC,WAAU,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,KAAK;AAC3C,SAAA;;AAEA,SAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG;AAC5B,SAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG;AAC5B,SAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG;AACzB,SAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG;OAChC,CAAO,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,gBAAgB,EAAE;AAChE,SAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AAClC,WAAU,OAAO,QAAQ;AACzB,SAAA;;AAEA,SAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;;SAE7B,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACxD,SAAQ,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;;AAEnC,SAAQ,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE;WAClC;AACV,SAAA;OACA,CAAO,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,gBAAgB,EAAE;AAChE,SAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AAClC,WAAU,OAAO,QAAQ;AACzB,SAAA;;AAEA,SAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AACrC,SAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAC3C,SAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AAChD,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,uCAAuC;WACxE;AACV,SAAA;;AAEA,SAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG;AACnC,SAAQ,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;;AAEnC,SAAQ,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE;WAClC;AACV,SAAA;OACA,CAAO,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,SAAS,EAAE;SACjD,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AACzD,WAAU,OAAO,QAAQ;AACzB,SAAA;;SAEQ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa;;SAElD,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;WACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI;AAClD,WAAU,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;AACrC,SAAA,CAAS,MAAM;AACf,WAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;aAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;eAC9B;AACd,aAAA;;AAEA,aAAY,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;AACzF,eAAc,+BAA+B,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,wBAAwB,EAAE,CAAC,OAAO;eACrF;AACd,aAAA;;AAEA;AACA;AACA;AACA;AACA,aAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;AAC1D,eAAc,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE;AAC9F,aAAA;;AAEA,aAAY,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;AACvC,WAAA,CAAW,MAAM;aACL,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,UAAU;AACjE,eAAc,IAAI;AAClB,eAAc,IAAI,CAAC,KAAK,CAAC,GAAG;AAC5B,eAAc,CAAC,KAAK,EAAE,IAAI,KAAK;iBACf,IAAI,KAAK,EAAE;mBACT,MAAM,IAAI,GAAG,KAAK,YAAY,wBAAwB,GAAG,IAAI,GAAG;mBAChE,+BAA+B,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO;mBAC5D;AAClB,iBAAA;;iBAEgB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;mBAC9B;AAClB,iBAAA;;AAEA,iBAAgB,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;AAC7F,mBAAkB,+BAA+B,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,wBAAwB,EAAE,CAAC,OAAO;mBACrF;AAClB,iBAAA;;AAEA,iBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;AACrC,mBAAkB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;mBAC3B,IAAI,CAAC,KAAK,GAAG;AAC/B,mBAAkB,IAAI,CAAC,GAAG,CAAC,QAAQ;mBACjB;AAClB,iBAAA;;AAEA,iBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE;;iBAEhF,IAAI,CAAC,KAAK,GAAG;AAC7B,iBAAgB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;AAC3C,iBAAgB,IAAI,CAAC,GAAG,CAAC,QAAQ;AACjC,eAAA;AACA;;aAEY,IAAI,CAAC,KAAK,GAAG;aACb;AACZ,WAAA;AACA,SAAA;AACA,OAAA;AACA,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,KAAI,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;AAC9B,OAAM,MAAM,IAAI,KAAK,CAAC,2CAA2C;AACjE,KAAA,CAAK,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;AACxB,OAAM,OAAO;AACb,KAAA;;KAEI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;OACjC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC3C,OAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK;AAChC,KAAA;;AAEA,KAAI,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;KACnC,IAAI,MAAM,GAAG;;AAEjB,KAAI,OAAO,MAAM,KAAK,CAAC,EAAE;AACzB,OAAM,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClC,OAAM,MAAM,EAAE,MAAM,EAAE,GAAG;;AAEzB,OAAM,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,EAAE;SACzB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM;SACxC;AACR,OAAA,CAAO,MAAM,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE;AACtC,SAAQ,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM;AACvD,SAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM;SAC3C;AACR,OAAA,CAAO,MAAM;SACL,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM;SACxC,MAAM,IAAI,IAAI,CAAC;AACvB,OAAA;AACA,KAAA;;KAEI,IAAI,CAAC,WAAW,IAAI;;AAExB,KAAI,OAAO;AACX,GAAA;;AAEA,GAAE,cAAc,CAAC,CAAC,QAAQ,EAAE;KACxB;AACJ,OAAM,IAAI,CAAC,aAAa,GAAG,CAAC;AAC5B,OAAM,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC;OAChC;OACA,+BAA+B,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,4BAA4B;AACjF,OAAM,OAAO;AACb,KAAA;;AAEA,KAAI,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC;AACrC,KAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ;AACjC,KAAI,OAAO;AACX,GAAA;;GAEE,gBAAgB,CAAC,GAAG;AACtB,KAAI,MAAM,SAAS,GAAG,IAAI,CAAC;;AAE3B,KAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;OAC1B,IAAI,CAAC,eAAe,GAAG;OACvB,OAAO,SAAS,CAAC,KAAK;AAC5B,KAAA;;KAEI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe;KAC5D,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,eAAe,GAAG;;AAE3B,KAAI,OAAO;AACX,GAAA;;AAEA,GAAE,cAAc,CAAC,CAAC,IAAI,EAAE;AACxB,KAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;;AAE5B;AACA;AACA,KAAI,IAAI;;AAER,KAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B;AACA;AACA;AACA,OAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;AAChC,KAAA;;KAEI,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AACxD,OAAM,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI;AACrE,KAAA;;AAEA;AACA;AACA,KAAI,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAEhC;KACI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACxE,OAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,KAAA;;AAEA,KAAI,IAAI;AACR,OAAM,MAAM,GAAG,UAAU,CAAC,MAAM;AAChC,KAAA,CAAK,CAAC,MAAM;AACZ,OAAM,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI;AAC/D,KAAA;;KAEI,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;AACvC,GAAA;;AAEA;AACA;AACA;AACA;AACA,GAAE,iBAAiB,CAAC,CAAC,IAAI,EAAE;KACvB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;;AAE3C,KAAI,IAAI,MAAM,KAAK,OAAO,CAAC,KAAK,EAAE;AAClC,OAAM,IAAI,aAAa,KAAK,CAAC,EAAE;AAC/B,SAAQ,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,0CAA0C;AACnF,SAAQ,OAAO;AACf,OAAA;;OAEM,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI;;OAE/C,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE;SAC9B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;;AAE5C,SAAQ,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM;AACrE,SAAQ,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM;AAC/C,SAAQ,OAAO;AACf,OAAA;;OAEM,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,mBAAmB,CAAC,IAAI,EAAE;AAC5D;AACA;AACA;AACA;SACQ,IAAI,IAAI,GAAG;SACX,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;AACvC,WAAU,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACrC,WAAU,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACzD,SAAA;AACA,SAAQ,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,IAAI;;SAE9C,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK;AACvC,WAAU,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;WACrC,CAAC,GAAG,KAAK;aACP,IAAI,CAAC,GAAG,EAAE;eACR,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAAC;AACxD,aAAA;AACA,WAAA;AACA;AACA,OAAA;;AAEA;AACA;AACA;OACM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;AACpC,OAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG;;AAEhC,OAAM,OAAO;AACb,KAAA,CAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE;AACxC;AACA;AACA;AACA;;OAEM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE;AACpC,SAAQ,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,IAAI;;AAEjD,SAAQ,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;;AAEvE,SAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE;AAC1C,WAAU,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAChC,aAAY,OAAO,EAAE;YACV;AACX,SAAA;AACA,OAAA;AACA,KAAA,CAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE;AACxC;AACA;AACA;;AAEA,OAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE;AACxC,SAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9B,WAAU,OAAO,EAAE;UACV;AACT,OAAA;AACA,KAAA;;AAEA,KAAI,OAAO;AACX,GAAA;;GAEE,IAAI,WAAW,CAAC,GAAG;AACrB,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAA;AACA;;AAEA,CAAA,QAAc,GAAG;GACf;AACF;;;;","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sender.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/sender.js"],"sourcesContent":["'use strict'\n\nconst { WebsocketFrameSend } = require('./frame')\nconst { opcodes, sendHints } = require('./constants')\nconst FixedQueue = require('../../dispatcher/fixed-queue')\n\n/** @type {typeof Uint8Array} */\nconst FastBuffer = Buffer[Symbol.species]\n\n/**\n * @typedef {object} SendQueueNode\n * @property {Promise<void> | null} promise\n * @property {((...args: any[]) => any)} callback\n * @property {Buffer | null} frame\n */\n\nclass SendQueue {\n /**\n * @type {FixedQueue}\n */\n #queue = new FixedQueue()\n\n /**\n * @type {boolean}\n */\n #running = false\n\n /** @type {import('node:net').Socket} */\n #socket\n\n constructor (socket) {\n this.#socket = socket\n }\n\n add (item, cb, hint) {\n if (hint !== sendHints.blob) {\n const frame = createFrame(item, hint)\n if (!this.#running) {\n // fast-path\n this.#socket.write(frame, cb)\n } else {\n /** @type {SendQueueNode} */\n const node = {\n promise: null,\n callback: cb,\n frame\n }\n this.#queue.push(node)\n }\n return\n }\n\n /** @type {SendQueueNode} */\n const node = {\n promise: item.arrayBuffer().then((ab) => {\n node.promise = null\n node.frame = createFrame(ab, hint)\n }),\n callback: cb,\n frame: null\n }\n\n this.#queue.push(node)\n\n if (!this.#running) {\n this.#run()\n }\n }\n\n async #run () {\n this.#running = true\n const queue = this.#queue\n while (!queue.isEmpty()) {\n const node = queue.shift()\n // wait pending promise\n if (node.promise !== null) {\n await node.promise\n }\n // write\n this.#socket.write(node.frame, node.callback)\n // cleanup\n node.callback = node.frame = null\n }\n this.#running = false\n }\n}\n\nfunction createFrame (data, hint) {\n return new WebsocketFrameSend(toBuffer(data, hint)).createFrame(hint === sendHints.string ? opcodes.TEXT : opcodes.BINARY)\n}\n\nfunction toBuffer (data, hint) {\n switch (hint) {\n case sendHints.string:\n return Buffer.from(data)\n case sendHints.arrayBuffer:\n case sendHints.blob:\n return new FastBuffer(data)\n case sendHints.typedArray:\n return new FastBuffer(data.buffer, data.byteOffset, data.byteLength)\n }\n}\n\nmodule.exports = { SendQueue }\n"],"names":["require$$0","require$$1","require$$2"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sender.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/sender.js"],"sourcesContent":["'use strict'\n\nconst { WebsocketFrameSend } = require('./frame')\nconst { opcodes, sendHints } = require('./constants')\nconst FixedQueue = require('../../dispatcher/fixed-queue')\n\n/** @type {typeof Uint8Array} */\nconst FastBuffer = Buffer[Symbol.species]\n\n/**\n * @typedef {object} SendQueueNode\n * @property {Promise<void> | null} promise\n * @property {((...args: any[]) => any)} callback\n * @property {Buffer | null} frame\n */\n\nclass SendQueue {\n /**\n * @type {FixedQueue}\n */\n #queue = new FixedQueue()\n\n /**\n * @type {boolean}\n */\n #running = false\n\n /** @type {import('node:net').Socket} */\n #socket\n\n constructor (socket) {\n this.#socket = socket\n }\n\n add (item, cb, hint) {\n if (hint !== sendHints.blob) {\n const frame = createFrame(item, hint)\n if (!this.#running) {\n // fast-path\n this.#socket.write(frame, cb)\n } else {\n /** @type {SendQueueNode} */\n const node = {\n promise: null,\n callback: cb,\n frame\n }\n this.#queue.push(node)\n }\n return\n }\n\n /** @type {SendQueueNode} */\n const node = {\n promise: item.arrayBuffer().then((ab) => {\n node.promise = null\n node.frame = createFrame(ab, hint)\n }),\n callback: cb,\n frame: null\n }\n\n this.#queue.push(node)\n\n if (!this.#running) {\n this.#run()\n }\n }\n\n async #run () {\n this.#running = true\n const queue = this.#queue\n while (!queue.isEmpty()) {\n const node = queue.shift()\n // wait pending promise\n if (node.promise !== null) {\n await node.promise\n }\n // write\n this.#socket.write(node.frame, node.callback)\n // cleanup\n node.callback = node.frame = null\n }\n this.#running = false\n }\n}\n\nfunction createFrame (data, hint) {\n return new WebsocketFrameSend(toBuffer(data, hint)).createFrame(hint === sendHints.string ? opcodes.TEXT : opcodes.BINARY)\n}\n\nfunction toBuffer (data, hint) {\n switch (hint) {\n case sendHints.string:\n return Buffer.from(data)\n case sendHints.arrayBuffer:\n case sendHints.blob:\n return new FastBuffer(data)\n case sendHints.typedArray:\n return new FastBuffer(data.buffer, data.byteOffset, data.byteLength)\n }\n}\n\nmodule.exports = { SendQueue }\n"],"names":["require$$0","require$$1","require$$2"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/symbols.js"],"sourcesContent":["'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n"],"names":[],"mappings":";;;;;;;;;AAEA,CAAA,OAAc,GAAG;AACjB,GAAE,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC;AAC9B,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;AACpC,GAAE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC;AACnC,GAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;AAC/B,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;AACpC,GAAE,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;AAClC,GAAE,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa;AACnC
|
|
1
|
+
{"version":3,"file":"symbols.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/symbols.js"],"sourcesContent":["'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n"],"names":[],"mappings":";;;;;;;;;AAEA,CAAA,OAAc,GAAG;AACjB,GAAE,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC;AAC9B,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;AACpC,GAAE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC;AACnC,GAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;AAC/B,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;AACpC,GAAE,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;AAClC,GAAE,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa;AACnC;;;;","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/util.js"],"sourcesContent":["'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { ErrorEvent, createFastMessageEvent } = require('./events')\nconst { isUtf8 } = require('node:buffer')\nconst { collectASequenceOfCodePointsFast, removeHTTPWhitespace } = require('../fetch/data-url')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @returns {boolean}\n */\nfunction isConnecting (ws) {\n // If the WebSocket connection is not yet established, and the connection\n // is not yet closed, then the WebSocket connection is in the CONNECTING state.\n return ws[kReadyState] === states.CONNECTING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @returns {boolean}\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @returns {boolean}\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @returns {boolean}\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {(...args: ConstructorParameters<typeof Event>) => Event} eventFactory\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventFactory = (type, init) => new Event(type, init), eventInitDict = {}) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event’s type attribute to e.\n const event = eventFactory(e, eventInitDict)\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = utf8Decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = toArrayBuffer(data)\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object’s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, createFastMessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\nfunction toArrayBuffer (buffer) {\n if (buffer.byteLength === buffer.buffer.byteLength) {\n return buffer.buffer\n }\n return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength)\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (let i = 0; i < protocol.length; ++i) {\n const code = protocol.charCodeAt(i)\n\n if (\n code < 0x21 || // CTL, contains SP (0x20) and HT (0x09)\n code > 0x7E ||\n code === 0x22 || // \"\n code === 0x28 || // (\n code === 0x29 || // )\n code === 0x2C || // ,\n code === 0x2F || // /\n code === 0x3A || // :\n code === 0x3B || // ;\n code === 0x3C || // <\n code === 0x3D || // =\n code === 0x3E || // >\n code === 0x3F || // ?\n code === 0x40 || // @\n code === 0x5B || // [\n code === 0x5C || // \\\n code === 0x5D || // ]\n code === 0x7B || // {\n code === 0x7D // }\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n // TODO: process.nextTick\n fireEvent('error', ws, (type, init) => new ErrorEvent(type, init), {\n error: new Error(reason),\n message: reason\n })\n }\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-5.5\n * @param {number} opcode\n */\nfunction isControlFrame (opcode) {\n return (\n opcode === opcodes.CLOSE ||\n opcode === opcodes.PING ||\n opcode === opcodes.PONG\n )\n}\n\nfunction isContinuationFrame (opcode) {\n return opcode === opcodes.CONTINUATION\n}\n\nfunction isTextBinaryFrame (opcode) {\n return opcode === opcodes.TEXT || opcode === opcodes.BINARY\n}\n\nfunction isValidOpcode (opcode) {\n return isTextBinaryFrame(opcode) || isContinuationFrame(opcode) || isControlFrame(opcode)\n}\n\n/**\n * Parses a Sec-WebSocket-Extensions header value.\n * @param {string} extensions\n * @returns {Map<string, string>}\n */\n// TODO(@Uzlopak, @KhafraDev): make compliant https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\nfunction parseExtensions (extensions) {\n const position = { position: 0 }\n const extensionList = new Map()\n\n while (position.position < extensions.length) {\n const pair = collectASequenceOfCodePointsFast(';', extensions, position)\n const [name, value = ''] = pair.split('=')\n\n extensionList.set(\n removeHTTPWhitespace(name, true, false),\n removeHTTPWhitespace(value, false, true)\n )\n\n position.position++\n }\n\n return extensionList\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7692#section-7.1.2.2\n * @description \"client-max-window-bits = 1*DIGIT\"\n * @param {string} value\n */\nfunction isValidClientWindowBits (value) {\n // Must have at least one character\n if (value.length === 0) {\n return false\n }\n\n // Check all characters are ASCII digits\n for (let i = 0; i < value.length; i++) {\n const byte = value.charCodeAt(i)\n\n if (byte < 0x30 || byte > 0x39) {\n return false\n }\n }\n\n // Check numeric range: zlib requires windowBits in range 8-15\n const num = Number.parseInt(value, 10)\n return num >= 8 && num <= 15\n}\n\n// https://nodejs.org/api/intl.html#detecting-internationalization-support\nconst hasIntl = typeof process.versions.icu === 'string'\nconst fatalDecoder = hasIntl ? new TextDecoder('utf-8', { fatal: true }) : undefined\n\n/**\n * Converts a Buffer to utf-8, even on platforms without icu.\n * @param {Buffer} buffer\n */\nconst utf8Decode = hasIntl\n ? fatalDecoder.decode.bind(fatalDecoder)\n : function (buffer) {\n if (isUtf8(buffer)) {\n return buffer.toString('utf-8')\n }\n throw new TypeError('Invalid utf-8 received.')\n }\n\nmodule.exports = {\n isConnecting,\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived,\n utf8Decode,\n isControlFrame,\n isContinuationFrame,\n isTextBinaryFrame,\n isValidOpcode,\n parseExtensions,\n isValidClientWindowBits\n}\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"util.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/util.js"],"sourcesContent":["'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { ErrorEvent, createFastMessageEvent } = require('./events')\nconst { isUtf8 } = require('node:buffer')\nconst { collectASequenceOfCodePointsFast, removeHTTPWhitespace } = require('../fetch/data-url')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @returns {boolean}\n */\nfunction isConnecting (ws) {\n // If the WebSocket connection is not yet established, and the connection\n // is not yet closed, then the WebSocket connection is in the CONNECTING state.\n return ws[kReadyState] === states.CONNECTING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @returns {boolean}\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @returns {boolean}\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @returns {boolean}\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {(...args: ConstructorParameters<typeof Event>) => Event} eventFactory\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventFactory = (type, init) => new Event(type, init), eventInitDict = {}) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event’s type attribute to e.\n const event = eventFactory(e, eventInitDict)\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = utf8Decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = toArrayBuffer(data)\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object’s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, createFastMessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\nfunction toArrayBuffer (buffer) {\n if (buffer.byteLength === buffer.buffer.byteLength) {\n return buffer.buffer\n }\n return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength)\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (let i = 0; i < protocol.length; ++i) {\n const code = protocol.charCodeAt(i)\n\n if (\n code < 0x21 || // CTL, contains SP (0x20) and HT (0x09)\n code > 0x7E ||\n code === 0x22 || // \"\n code === 0x28 || // (\n code === 0x29 || // )\n code === 0x2C || // ,\n code === 0x2F || // /\n code === 0x3A || // :\n code === 0x3B || // ;\n code === 0x3C || // <\n code === 0x3D || // =\n code === 0x3E || // >\n code === 0x3F || // ?\n code === 0x40 || // @\n code === 0x5B || // [\n code === 0x5C || // \\\n code === 0x5D || // ]\n code === 0x7B || // {\n code === 0x7D // }\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n // TODO: process.nextTick\n fireEvent('error', ws, (type, init) => new ErrorEvent(type, init), {\n error: new Error(reason),\n message: reason\n })\n }\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-5.5\n * @param {number} opcode\n */\nfunction isControlFrame (opcode) {\n return (\n opcode === opcodes.CLOSE ||\n opcode === opcodes.PING ||\n opcode === opcodes.PONG\n )\n}\n\nfunction isContinuationFrame (opcode) {\n return opcode === opcodes.CONTINUATION\n}\n\nfunction isTextBinaryFrame (opcode) {\n return opcode === opcodes.TEXT || opcode === opcodes.BINARY\n}\n\nfunction isValidOpcode (opcode) {\n return isTextBinaryFrame(opcode) || isContinuationFrame(opcode) || isControlFrame(opcode)\n}\n\n/**\n * Parses a Sec-WebSocket-Extensions header value.\n * @param {string} extensions\n * @returns {Map<string, string>}\n */\n// TODO(@Uzlopak, @KhafraDev): make compliant https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\nfunction parseExtensions (extensions) {\n const position = { position: 0 }\n const extensionList = new Map()\n\n while (position.position < extensions.length) {\n const pair = collectASequenceOfCodePointsFast(';', extensions, position)\n const [name, value = ''] = pair.split('=')\n\n extensionList.set(\n removeHTTPWhitespace(name, true, false),\n removeHTTPWhitespace(value, false, true)\n )\n\n position.position++\n }\n\n return extensionList\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7692#section-7.1.2.2\n * @description \"client-max-window-bits = 1*DIGIT\"\n * @param {string} value\n */\nfunction isValidClientWindowBits (value) {\n // Must have at least one character\n if (value.length === 0) {\n return false\n }\n\n // Check all characters are ASCII digits\n for (let i = 0; i < value.length; i++) {\n const byte = value.charCodeAt(i)\n\n if (byte < 0x30 || byte > 0x39) {\n return false\n }\n }\n\n // Check numeric range: zlib requires windowBits in range 8-15\n const num = Number.parseInt(value, 10)\n return num >= 8 && num <= 15\n}\n\n// https://nodejs.org/api/intl.html#detecting-internationalization-support\nconst hasIntl = typeof process.versions.icu === 'string'\nconst fatalDecoder = hasIntl ? new TextDecoder('utf-8', { fatal: true }) : undefined\n\n/**\n * Converts a Buffer to utf-8, even on platforms without icu.\n * @param {Buffer} buffer\n */\nconst utf8Decode = hasIntl\n ? fatalDecoder.decode.bind(fatalDecoder)\n : function (buffer) {\n if (isUtf8(buffer)) {\n return buffer.toString('utf-8')\n }\n throw new TypeError('Invalid utf-8 received.')\n }\n\nmodule.exports = {\n isConnecting,\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived,\n utf8Decode,\n isControlFrame,\n isContinuationFrame,\n isTextBinaryFrame,\n isValidOpcode,\n parseExtensions,\n isValidClientWindowBits\n}\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4"],"mappings":"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","x_google_ignoreList":[0]}
|