@relative-ci/core 5.2.2-beta.0 → 5.3.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/__/@actions/github/__/@octokit/auth-token/dist-bundle/index.js +57 -0
- package/lib/cjs/__/@actions/github/__/@octokit/auth-token/dist-bundle/index.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/@octokit/core/dist-src/index.js +144 -0
- package/lib/cjs/__/@actions/github/__/@octokit/core/dist-src/index.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/@octokit/core/dist-src/version.js +6 -0
- package/lib/cjs/__/@actions/github/__/@octokit/core/dist-src/version.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/@octokit/endpoint/dist-bundle/index.js +349 -0
- package/lib/cjs/__/@actions/github/__/@octokit/endpoint/dist-bundle/index.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/@octokit/graphql/dist-bundle/index.js +125 -0
- package/lib/cjs/__/@actions/github/__/@octokit/graphql/dist-bundle/index.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/@octokit/plugin-paginate-rest/dist-bundle/index.js +417 -0
- package/lib/cjs/__/@actions/github/__/@octokit/plugin-paginate-rest/dist-bundle/index.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js +128 -0
- package/lib/cjs/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js +2295 -0
- package/lib/cjs/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/index.js +24 -0
- package/lib/cjs/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/index.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/version.js +6 -0
- package/lib/cjs/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/version.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/@octokit/request/dist-bundle/index.js +199 -0
- package/lib/cjs/__/@actions/github/__/@octokit/request/dist-bundle/index.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/@octokit/request-error/dist-src/index.js +43 -0
- package/lib/cjs/__/@actions/github/__/@octokit/request-error/dist-src/index.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/before-after-hook/index.js +41 -0
- package/lib/cjs/__/@actions/github/__/before-after-hook/index.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/before-after-hook/lib/add.js +51 -0
- package/lib/cjs/__/@actions/github/__/before-after-hook/lib/add.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/before-after-hook/lib/register.js +32 -0
- package/lib/cjs/__/@actions/github/__/before-after-hook/lib/register.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/before-after-hook/lib/remove.js +24 -0
- package/lib/cjs/__/@actions/github/__/before-after-hook/lib/remove.js.map +1 -0
- package/lib/cjs/__/@actions/github/__/universal-user-agent/index.js +18 -0
- package/lib/cjs/__/@actions/github/__/universal-user-agent/index.js.map +1 -0
- package/lib/cjs/__/@actions/github/lib/context.js +76 -0
- package/lib/cjs/__/@actions/github/lib/context.js.map +1 -0
- package/lib/cjs/__/@actions/github/lib/github.js +66 -0
- package/lib/cjs/__/@actions/github/lib/github.js.map +1 -0
- package/lib/cjs/__/@actions/github/lib/internal/utils.js +94 -0
- package/lib/cjs/__/@actions/github/lib/internal/utils.js.map +1 -0
- package/lib/cjs/__/@actions/github/lib/utils.js +89 -0
- package/lib/cjs/__/@actions/github/lib/utils.js.map +1 -0
- package/lib/cjs/__/@actions/http-client/lib/index.js +760 -0
- package/lib/cjs/__/@actions/http-client/lib/index.js.map +1 -0
- package/lib/cjs/__/@actions/http-client/lib/proxy.js +107 -0
- package/lib/cjs/__/@actions/http-client/lib/proxy.js.map +1 -0
- package/lib/cjs/__/@fastify/busboy/deps/dicer/lib/Dicer.js +236 -0
- package/lib/cjs/__/@fastify/busboy/deps/dicer/lib/Dicer.js.map +1 -0
- package/lib/cjs/__/@fastify/busboy/deps/dicer/lib/HeaderParser.js +122 -0
- package/lib/cjs/__/@fastify/busboy/deps/dicer/lib/HeaderParser.js.map +1 -0
- package/lib/cjs/__/@fastify/busboy/deps/dicer/lib/PartStream.js +33 -0
- package/lib/cjs/__/@fastify/busboy/deps/dicer/lib/PartStream.js.map +1 -0
- package/lib/cjs/__/@fastify/busboy/deps/streamsearch/sbmh.js +248 -0
- package/lib/cjs/__/@fastify/busboy/deps/streamsearch/sbmh.js.map +1 -0
- package/lib/cjs/__/@fastify/busboy/lib/main.js +109 -0
- package/lib/cjs/__/@fastify/busboy/lib/main.js.map +1 -0
- package/lib/cjs/__/@fastify/busboy/lib/types/multipart.js +331 -0
- package/lib/cjs/__/@fastify/busboy/lib/types/multipart.js.map +1 -0
- package/lib/cjs/__/@fastify/busboy/lib/types/urlencoded.js +206 -0
- package/lib/cjs/__/@fastify/busboy/lib/types/urlencoded.js.map +1 -0
- package/lib/cjs/__/@fastify/busboy/lib/utils/Decoder.js +66 -0
- package/lib/cjs/__/@fastify/busboy/lib/utils/Decoder.js.map +1 -0
- package/lib/cjs/__/@fastify/busboy/lib/utils/basename.js +26 -0
- package/lib/cjs/__/@fastify/busboy/lib/utils/basename.js.map +1 -0
- package/lib/cjs/__/@fastify/busboy/lib/utils/decodeText.js +126 -0
- package/lib/cjs/__/@fastify/busboy/lib/utils/decodeText.js.map +1 -0
- package/lib/cjs/__/@fastify/busboy/lib/utils/getLimit.js +28 -0
- package/lib/cjs/__/@fastify/busboy/lib/utils/getLimit.js.map +1 -0
- package/lib/cjs/__/@fastify/busboy/lib/utils/parseParams.js +211 -0
- package/lib/cjs/__/@fastify/busboy/lib/utils/parseParams.js.map +1 -0
- package/lib/cjs/__/cross-spawn/index.js +1 -1
- package/lib/cjs/__/env-ci/__/execa/index.js +3 -3
- package/lib/cjs/__/env-ci/__/execa/index.js.map +1 -1
- package/lib/cjs/__/env-ci/__/execa/lib/stream.js +1 -1
- package/lib/cjs/__/env-ci/__/execa/lib/verbose.js +2 -2
- package/lib/cjs/__/env-ci/__/execa/lib/verbose.js.map +1 -1
- package/lib/cjs/__/env-ci/__/npm-run-path/index.js +3 -3
- package/lib/cjs/__/env-ci/__/npm-run-path/index.js.map +1 -1
- package/lib/cjs/__/fast-content-type-parse/index.js +182 -0
- package/lib/cjs/__/fast-content-type-parse/index.js.map +1 -0
- package/lib/cjs/__/java-properties/dist-node/index.js +1 -1
- package/lib/cjs/__/path-key/index.js +1 -1
- package/lib/cjs/__/tunnel/index.js +16 -0
- package/lib/cjs/__/tunnel/index.js.map +1 -0
- package/lib/cjs/__/tunnel/lib/tunnel.js +289 -0
- package/lib/cjs/__/tunnel/lib/tunnel.js.map +1 -0
- package/lib/cjs/__/undici/index.js +212 -0
- package/lib/cjs/__/undici/index.js.map +1 -0
- package/lib/cjs/__/undici/lib/agent.js +169 -0
- package/lib/cjs/__/undici/lib/agent.js.map +1 -0
- package/lib/cjs/__/undici/lib/api/abort-signal.js +70 -0
- package/lib/cjs/__/undici/lib/api/abort-signal.js.map +1 -0
- package/lib/cjs/__/undici/lib/api/api-connect.js +125 -0
- package/lib/cjs/__/undici/lib/api/api-connect.js.map +1 -0
- package/lib/cjs/__/undici/lib/api/api-pipeline.js +274 -0
- package/lib/cjs/__/undici/lib/api/api-pipeline.js.map +1 -0
- package/lib/cjs/__/undici/lib/api/api-request.js +203 -0
- package/lib/cjs/__/undici/lib/api/api-request.js.map +1 -0
- package/lib/cjs/__/undici/lib/api/api-stream.js +244 -0
- package/lib/cjs/__/undici/lib/api/api-stream.js.map +1 -0
- package/lib/cjs/__/undici/lib/api/api-upgrade.js +128 -0
- package/lib/cjs/__/undici/lib/api/api-upgrade.js.map +1 -0
- package/lib/cjs/__/undici/lib/api/index.js +25 -0
- package/lib/cjs/__/undici/lib/api/index.js.map +1 -0
- package/lib/cjs/__/undici/lib/api/readable.js +342 -0
- package/lib/cjs/__/undici/lib/api/readable.js.map +1 -0
- package/lib/cjs/__/undici/lib/api/util.js +67 -0
- package/lib/cjs/__/undici/lib/api/util.js.map +1 -0
- package/lib/cjs/__/undici/lib/balanced-pool.js +208 -0
- package/lib/cjs/__/undici/lib/balanced-pool.js.map +1 -0
- package/lib/cjs/__/undici/lib/cache/cache.js +867 -0
- package/lib/cjs/__/undici/lib/cache/cache.js.map +1 -0
- package/lib/cjs/__/undici/lib/cache/cachestorage.js +161 -0
- package/lib/cjs/__/undici/lib/cache/cachestorage.js.map +1 -0
- package/lib/cjs/__/undici/lib/cache/symbols.js +19 -0
- package/lib/cjs/__/undici/lib/cache/symbols.js.map +1 -0
- package/lib/cjs/__/undici/lib/cache/util.js +69 -0
- package/lib/cjs/__/undici/lib/cache/util.js.map +1 -0
- package/lib/cjs/__/undici/lib/client.js +2314 -0
- package/lib/cjs/__/undici/lib/client.js.map +1 -0
- package/lib/cjs/__/undici/lib/compat/dispatcher-weakref.js +63 -0
- package/lib/cjs/__/undici/lib/compat/dispatcher-weakref.js.map +1 -0
- package/lib/cjs/__/undici/lib/cookies/constants.js +24 -0
- package/lib/cjs/__/undici/lib/cookies/constants.js.map +1 -0
- package/lib/cjs/__/undici/lib/cookies/index.js +200 -0
- package/lib/cjs/__/undici/lib/cookies/index.js.map +1 -0
- package/lib/cjs/__/undici/lib/cookies/parse.js +338 -0
- package/lib/cjs/__/undici/lib/cookies/parse.js.map +1 -0
- package/lib/cjs/__/undici/lib/cookies/util.js +286 -0
- package/lib/cjs/__/undici/lib/cookies/util.js.map +1 -0
- package/lib/cjs/__/undici/lib/core/connect.js +214 -0
- package/lib/cjs/__/undici/lib/core/connect.js.map +1 -0
- package/lib/cjs/__/undici/lib/core/constants.js +130 -0
- package/lib/cjs/__/undici/lib/core/constants.js.map +1 -0
- package/lib/cjs/__/undici/lib/core/errors.js +242 -0
- package/lib/cjs/__/undici/lib/core/errors.js.map +1 -0
- package/lib/cjs/__/undici/lib/core/request.js +521 -0
- package/lib/cjs/__/undici/lib/core/request.js.map +1 -0
- package/lib/cjs/__/undici/lib/core/symbols.js +76 -0
- package/lib/cjs/__/undici/lib/core/symbols.js.map +1 -0
- package/lib/cjs/__/undici/lib/core/util.js +557 -0
- package/lib/cjs/__/undici/lib/core/util.js.map +1 -0
- package/lib/cjs/__/undici/lib/dispatcher-base.js +208 -0
- package/lib/cjs/__/undici/lib/dispatcher-base.js.map +1 -0
- package/lib/cjs/__/undici/lib/dispatcher.js +37 -0
- package/lib/cjs/__/undici/lib/dispatcher.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/body.js +647 -0
- package/lib/cjs/__/undici/lib/fetch/body.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/constants.js +169 -0
- package/lib/cjs/__/undici/lib/fetch/constants.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/dataURL.js +649 -0
- package/lib/cjs/__/undici/lib/fetch/dataURL.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/file.js +369 -0
- package/lib/cjs/__/undici/lib/fetch/file.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/formdata.js +287 -0
- package/lib/cjs/__/undici/lib/fetch/formdata.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/global.js +52 -0
- package/lib/cjs/__/undici/lib/fetch/global.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/headers.js +609 -0
- package/lib/cjs/__/undici/lib/fetch/headers.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/index.js +2114 -0
- package/lib/cjs/__/undici/lib/fetch/index.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/request.js +979 -0
- package/lib/cjs/__/undici/lib/fetch/request.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/response.js +604 -0
- package/lib/cjs/__/undici/lib/fetch/response.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/symbols.js +22 -0
- package/lib/cjs/__/undici/lib/fetch/symbols.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/util.js +1170 -0
- package/lib/cjs/__/undici/lib/fetch/util.js.map +1 -0
- package/lib/cjs/__/undici/lib/fetch/webidl.js +665 -0
- package/lib/cjs/__/undici/lib/fetch/webidl.js.map +1 -0
- package/lib/cjs/__/undici/lib/fileapi/encoding.js +302 -0
- package/lib/cjs/__/undici/lib/fileapi/encoding.js.map +1 -0
- package/lib/cjs/__/undici/lib/fileapi/filereader.js +361 -0
- package/lib/cjs/__/undici/lib/fileapi/filereader.js.map +1 -0
- package/lib/cjs/__/undici/lib/fileapi/progressevent.js +92 -0
- package/lib/cjs/__/undici/lib/fileapi/progressevent.js.map +1 -0
- package/lib/cjs/__/undici/lib/fileapi/symbols.js +22 -0
- package/lib/cjs/__/undici/lib/fileapi/symbols.js.map +1 -0
- package/lib/cjs/__/undici/lib/fileapi/util.js +419 -0
- package/lib/cjs/__/undici/lib/fileapi/util.js.map +1 -0
- package/lib/cjs/__/undici/lib/global.js +47 -0
- package/lib/cjs/__/undici/lib/global.js.map +1 -0
- package/lib/cjs/__/undici/lib/handler/DecoratorHandler.js +47 -0
- package/lib/cjs/__/undici/lib/handler/DecoratorHandler.js.map +1 -0
- package/lib/cjs/__/undici/lib/handler/RedirectHandler.js +226 -0
- package/lib/cjs/__/undici/lib/handler/RedirectHandler.js.map +1 -0
- package/lib/cjs/__/undici/lib/handler/RetryHandler.js +358 -0
- package/lib/cjs/__/undici/lib/handler/RetryHandler.js.map +1 -0
- package/lib/cjs/__/undici/lib/interceptor/redirectInterceptor.js +35 -0
- package/lib/cjs/__/undici/lib/interceptor/redirectInterceptor.js.map +1 -0
- package/lib/cjs/__/undici/lib/llhttp/constants.js +288 -0
- package/lib/cjs/__/undici/lib/llhttp/constants.js.map +1 -0
- package/lib/cjs/__/undici/lib/llhttp/llhttp-wasm.js +14 -0
- package/lib/cjs/__/undici/lib/llhttp/llhttp-wasm.js.map +1 -0
- package/lib/cjs/__/undici/lib/llhttp/llhttp_simd-wasm.js +14 -0
- package/lib/cjs/__/undici/lib/llhttp/llhttp_simd-wasm.js.map +1 -0
- package/lib/cjs/__/undici/lib/llhttp/utils.js +28 -0
- package/lib/cjs/__/undici/lib/llhttp/utils.js.map +1 -0
- package/lib/cjs/__/undici/lib/mock/mock-agent.js +194 -0
- package/lib/cjs/__/undici/lib/mock/mock-agent.js.map +1 -0
- package/lib/cjs/__/undici/lib/mock/mock-client.js +83 -0
- package/lib/cjs/__/undici/lib/mock/mock-client.js.map +1 -0
- package/lib/cjs/__/undici/lib/mock/mock-errors.js +31 -0
- package/lib/cjs/__/undici/lib/mock/mock-errors.js.map +1 -0
- package/lib/cjs/__/undici/lib/mock/mock-interceptor.js +223 -0
- package/lib/cjs/__/undici/lib/mock/mock-interceptor.js.map +1 -0
- package/lib/cjs/__/undici/lib/mock/mock-pool.js +83 -0
- package/lib/cjs/__/undici/lib/mock/mock-pool.js.map +1 -0
- package/lib/cjs/__/undici/lib/mock/mock-symbols.js +35 -0
- package/lib/cjs/__/undici/lib/mock/mock-symbols.js.map +1 -0
- package/lib/cjs/__/undici/lib/mock/mock-utils.js +374 -0
- package/lib/cjs/__/undici/lib/mock/mock-utils.js.map +1 -0
- package/lib/cjs/__/undici/lib/mock/pending-interceptors-formatter.js +60 -0
- package/lib/cjs/__/undici/lib/mock/pending-interceptors-formatter.js.map +1 -0
- package/lib/cjs/__/undici/lib/mock/pluralizer.js +41 -0
- package/lib/cjs/__/undici/lib/mock/pluralizer.js.map +1 -0
- package/lib/cjs/__/undici/lib/node/fixed-queue.js +129 -0
- package/lib/cjs/__/undici/lib/node/fixed-queue.js.map +1 -0
- package/lib/cjs/__/undici/lib/pool-base.js +211 -0
- package/lib/cjs/__/undici/lib/pool-base.js.map +1 -0
- package/lib/cjs/__/undici/lib/pool-stats.js +49 -0
- package/lib/cjs/__/undici/lib/pool-stats.js.map +1 -0
- package/lib/cjs/__/undici/lib/pool.js +127 -0
- package/lib/cjs/__/undici/lib/pool.js.map +1 -0
- package/lib/cjs/__/undici/lib/proxy-agent.js +213 -0
- package/lib/cjs/__/undici/lib/proxy-agent.js.map +1 -0
- package/lib/cjs/__/undici/lib/timers.js +109 -0
- package/lib/cjs/__/undici/lib/timers.js.map +1 -0
- package/lib/cjs/__/undici/lib/websocket/connection.js +318 -0
- package/lib/cjs/__/undici/lib/websocket/connection.js.map +1 -0
- package/lib/cjs/__/undici/lib/websocket/constants.js +63 -0
- package/lib/cjs/__/undici/lib/websocket/constants.js.map +1 -0
- package/lib/cjs/__/undici/lib/websocket/events.js +323 -0
- package/lib/cjs/__/undici/lib/websocket/events.js.map +1 -0
- package/lib/cjs/__/undici/lib/websocket/frame.js +87 -0
- package/lib/cjs/__/undici/lib/websocket/frame.js.map +1 -0
- package/lib/cjs/__/undici/lib/websocket/receiver.js +368 -0
- package/lib/cjs/__/undici/lib/websocket/receiver.js.map +1 -0
- package/lib/cjs/__/undici/lib/websocket/symbols.js +24 -0
- package/lib/cjs/__/undici/lib/websocket/symbols.js.map +1 -0
- package/lib/cjs/__/undici/lib/websocket/util.js +216 -0
- package/lib/cjs/__/undici/lib/websocket/util.js.map +1 -0
- package/lib/cjs/__/undici/lib/websocket/websocket.js +668 -0
- package/lib/cjs/__/undici/lib/websocket/websocket.js.map +1 -0
- package/lib/cjs/_virtual/_commonjsHelpers.js +30 -0
- package/lib/cjs/_virtual/_commonjsHelpers.js.map +1 -1
- package/lib/cjs/_virtual/api-request.js +6 -0
- package/lib/cjs/_virtual/api-request.js.map +1 -0
- package/lib/cjs/_virtual/constants.js +6 -0
- package/lib/cjs/_virtual/constants.js.map +1 -0
- package/lib/cjs/_virtual/context.js +6 -0
- package/lib/cjs/_virtual/context.js.map +1 -0
- package/lib/cjs/_virtual/github.js +8 -0
- package/lib/cjs/_virtual/github.js.map +1 -0
- package/lib/cjs/_virtual/github2.js +6 -0
- package/lib/cjs/_virtual/github2.js.map +1 -0
- package/lib/cjs/_virtual/index10.js +6 -0
- package/lib/cjs/_virtual/index10.js.map +1 -0
- package/lib/cjs/_virtual/index11.js +6 -0
- package/lib/cjs/_virtual/index11.js.map +1 -0
- package/lib/cjs/_virtual/index12.js +6 -0
- package/lib/cjs/_virtual/index12.js.map +1 -0
- package/lib/cjs/_virtual/index13.js +6 -0
- package/lib/cjs/_virtual/index13.js.map +1 -0
- package/lib/cjs/_virtual/index14.js +6 -0
- package/lib/cjs/_virtual/index14.js.map +1 -0
- package/lib/cjs/_virtual/index2.js +5 -2
- package/lib/cjs/_virtual/index2.js.map +1 -1
- package/lib/cjs/_virtual/index3.js +3 -4
- package/lib/cjs/_virtual/index3.js.map +1 -1
- package/lib/cjs/_virtual/index4.js +5 -2
- package/lib/cjs/_virtual/index4.js.map +1 -1
- package/lib/cjs/_virtual/index5.js +2 -2
- package/lib/cjs/_virtual/index6.js +6 -2
- package/lib/cjs/_virtual/index6.js.map +1 -1
- package/lib/cjs/_virtual/index7.js +6 -0
- package/lib/cjs/_virtual/index7.js.map +1 -0
- package/lib/cjs/_virtual/index8.js +6 -0
- package/lib/cjs/_virtual/index8.js.map +1 -0
- package/lib/cjs/_virtual/index9.js +8 -0
- package/lib/cjs/_virtual/index9.js.map +1 -0
- package/lib/cjs/_virtual/main.js +6 -0
- package/lib/cjs/_virtual/main.js.map +1 -0
- package/lib/cjs/_virtual/mock-interceptor.js +6 -0
- package/lib/cjs/_virtual/mock-interceptor.js.map +1 -0
- package/lib/cjs/_virtual/proxy.js +6 -0
- package/lib/cjs/_virtual/proxy.js.map +1 -0
- package/lib/cjs/_virtual/tunnel.js +6 -0
- package/lib/cjs/_virtual/tunnel.js.map +1 -0
- package/lib/cjs/_virtual/utils.js +6 -0
- package/lib/cjs/_virtual/utils.js.map +1 -0
- package/lib/cjs/_virtual/utils2.js +6 -0
- package/lib/cjs/_virtual/utils2.js.map +1 -0
- package/lib/cjs/_virtual/utils3.js +6 -0
- package/lib/cjs/_virtual/utils3.js.map +1 -0
- package/lib/cjs/artifacts/filter-artifacts.js.map +1 -1
- package/lib/cjs/env/ci-env.js +6 -1
- package/lib/cjs/env/ci-env.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 +3 -22
- package/lib/cjs/env/service/github.js.map +1 -1
- package/lib/cjs/ingest/ingest.js +4 -4
- package/lib/cjs/ingest/ingest.js.map +1 -1
- package/lib/cjs/locales/en.js.map +1 -1
- package/lib/esm/__/@actions/github/__/@octokit/auth-token/dist-bundle/index.js +55 -0
- package/lib/esm/__/@actions/github/__/@octokit/auth-token/dist-bundle/index.js.map +1 -0
- package/lib/esm/__/@actions/github/__/@octokit/core/dist-src/index.js +142 -0
- package/lib/esm/__/@actions/github/__/@octokit/core/dist-src/index.js.map +1 -0
- package/lib/esm/__/@actions/github/__/@octokit/core/dist-src/version.js +4 -0
- package/lib/esm/__/@actions/github/__/@octokit/core/dist-src/version.js.map +1 -0
- package/lib/esm/__/@actions/github/__/@octokit/endpoint/dist-bundle/index.js +347 -0
- package/lib/esm/__/@actions/github/__/@octokit/endpoint/dist-bundle/index.js.map +1 -0
- package/lib/esm/__/@actions/github/__/@octokit/graphql/dist-bundle/index.js +122 -0
- package/lib/esm/__/@actions/github/__/@octokit/graphql/dist-bundle/index.js.map +1 -0
- package/lib/esm/__/@actions/github/__/@octokit/plugin-paginate-rest/dist-bundle/index.js +412 -0
- package/lib/esm/__/@actions/github/__/@octokit/plugin-paginate-rest/dist-bundle/index.js.map +1 -0
- package/lib/esm/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js +126 -0
- package/lib/esm/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js.map +1 -0
- package/lib/esm/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js +2293 -0
- package/lib/esm/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js.map +1 -0
- package/lib/esm/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/index.js +21 -0
- package/lib/esm/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/index.js.map +1 -0
- package/lib/esm/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/version.js +4 -0
- package/lib/esm/__/@actions/github/__/@octokit/plugin-rest-endpoint-methods/dist-src/version.js.map +1 -0
- package/lib/esm/__/@actions/github/__/@octokit/request/dist-bundle/index.js +197 -0
- package/lib/esm/__/@actions/github/__/@octokit/request/dist-bundle/index.js.map +1 -0
- package/lib/esm/__/@actions/github/__/@octokit/request-error/dist-src/index.js +41 -0
- package/lib/esm/__/@actions/github/__/@octokit/request-error/dist-src/index.js.map +1 -0
- package/lib/esm/__/@actions/github/__/before-after-hook/index.js +39 -0
- package/lib/esm/__/@actions/github/__/before-after-hook/index.js.map +1 -0
- package/lib/esm/__/@actions/github/__/before-after-hook/lib/add.js +49 -0
- package/lib/esm/__/@actions/github/__/before-after-hook/lib/add.js.map +1 -0
- package/lib/esm/__/@actions/github/__/before-after-hook/lib/register.js +30 -0
- package/lib/esm/__/@actions/github/__/before-after-hook/lib/register.js.map +1 -0
- package/lib/esm/__/@actions/github/__/before-after-hook/lib/remove.js +22 -0
- package/lib/esm/__/@actions/github/__/before-after-hook/lib/remove.js.map +1 -0
- package/lib/esm/__/@actions/github/__/universal-user-agent/index.js +16 -0
- package/lib/esm/__/@actions/github/__/universal-user-agent/index.js.map +1 -0
- package/lib/esm/__/@actions/github/lib/context.js +69 -0
- package/lib/esm/__/@actions/github/lib/context.js.map +1 -0
- package/lib/esm/__/@actions/github/lib/github.js +64 -0
- package/lib/esm/__/@actions/github/lib/github.js.map +1 -0
- package/lib/esm/__/@actions/github/lib/internal/utils.js +92 -0
- package/lib/esm/__/@actions/github/lib/internal/utils.js.map +1 -0
- package/lib/esm/__/@actions/github/lib/utils.js +87 -0
- package/lib/esm/__/@actions/github/lib/utils.js.map +1 -0
- package/lib/esm/__/@actions/http-client/lib/index.js +753 -0
- package/lib/esm/__/@actions/http-client/lib/index.js.map +1 -0
- package/lib/esm/__/@actions/http-client/lib/proxy.js +105 -0
- package/lib/esm/__/@actions/http-client/lib/proxy.js.map +1 -0
- package/lib/esm/__/@fastify/busboy/deps/dicer/lib/Dicer.js +229 -0
- package/lib/esm/__/@fastify/busboy/deps/dicer/lib/Dicer.js.map +1 -0
- package/lib/esm/__/@fastify/busboy/deps/dicer/lib/HeaderParser.js +115 -0
- package/lib/esm/__/@fastify/busboy/deps/dicer/lib/HeaderParser.js.map +1 -0
- package/lib/esm/__/@fastify/busboy/deps/dicer/lib/PartStream.js +26 -0
- package/lib/esm/__/@fastify/busboy/deps/dicer/lib/PartStream.js.map +1 -0
- package/lib/esm/__/@fastify/busboy/deps/streamsearch/sbmh.js +241 -0
- package/lib/esm/__/@fastify/busboy/deps/streamsearch/sbmh.js.map +1 -0
- package/lib/esm/__/@fastify/busboy/lib/main.js +102 -0
- package/lib/esm/__/@fastify/busboy/lib/main.js.map +1 -0
- package/lib/esm/__/@fastify/busboy/lib/types/multipart.js +324 -0
- package/lib/esm/__/@fastify/busboy/lib/types/multipart.js.map +1 -0
- package/lib/esm/__/@fastify/busboy/lib/types/urlencoded.js +204 -0
- package/lib/esm/__/@fastify/busboy/lib/types/urlencoded.js.map +1 -0
- package/lib/esm/__/@fastify/busboy/lib/utils/Decoder.js +64 -0
- package/lib/esm/__/@fastify/busboy/lib/utils/Decoder.js.map +1 -0
- package/lib/esm/__/@fastify/busboy/lib/utils/basename.js +24 -0
- package/lib/esm/__/@fastify/busboy/lib/utils/basename.js.map +1 -0
- package/lib/esm/__/@fastify/busboy/lib/utils/decodeText.js +124 -0
- package/lib/esm/__/@fastify/busboy/lib/utils/decodeText.js.map +1 -0
- package/lib/esm/__/@fastify/busboy/lib/utils/getLimit.js +26 -0
- package/lib/esm/__/@fastify/busboy/lib/utils/getLimit.js.map +1 -0
- package/lib/esm/__/@fastify/busboy/lib/utils/parseParams.js +209 -0
- package/lib/esm/__/@fastify/busboy/lib/utils/parseParams.js.map +1 -0
- package/lib/esm/__/cross-spawn/index.js +1 -1
- package/lib/esm/__/env-ci/__/execa/index.js +1 -1
- package/lib/esm/__/env-ci/__/execa/lib/stream.js +1 -1
- package/lib/esm/__/fast-content-type-parse/index.js +180 -0
- package/lib/esm/__/fast-content-type-parse/index.js.map +1 -0
- package/lib/esm/__/java-properties/dist-node/index.js +1 -1
- package/lib/esm/__/path-key/index.js +1 -1
- package/lib/esm/__/tunnel/index.js +14 -0
- package/lib/esm/__/tunnel/index.js.map +1 -0
- package/lib/esm/__/tunnel/lib/tunnel.js +279 -0
- package/lib/esm/__/tunnel/lib/tunnel.js.map +1 -0
- package/lib/esm/__/undici/index.js +210 -0
- package/lib/esm/__/undici/index.js.map +1 -0
- package/lib/esm/__/undici/lib/agent.js +167 -0
- package/lib/esm/__/undici/lib/agent.js.map +1 -0
- package/lib/esm/__/undici/lib/api/abort-signal.js +68 -0
- package/lib/esm/__/undici/lib/api/abort-signal.js.map +1 -0
- package/lib/esm/__/undici/lib/api/api-connect.js +119 -0
- package/lib/esm/__/undici/lib/api/api-connect.js.map +1 -0
- package/lib/esm/__/undici/lib/api/api-pipeline.js +266 -0
- package/lib/esm/__/undici/lib/api/api-pipeline.js.map +1 -0
- package/lib/esm/__/undici/lib/api/api-request.js +197 -0
- package/lib/esm/__/undici/lib/api/api-request.js.map +1 -0
- package/lib/esm/__/undici/lib/api/api-stream.js +237 -0
- package/lib/esm/__/undici/lib/api/api-stream.js.map +1 -0
- package/lib/esm/__/undici/lib/api/api-upgrade.js +121 -0
- package/lib/esm/__/undici/lib/api/api-upgrade.js.map +1 -0
- package/lib/esm/__/undici/lib/api/index.js +23 -0
- package/lib/esm/__/undici/lib/api/index.js.map +1 -0
- package/lib/esm/__/undici/lib/api/readable.js +335 -0
- package/lib/esm/__/undici/lib/api/readable.js.map +1 -0
- package/lib/esm/__/undici/lib/api/util.js +61 -0
- package/lib/esm/__/undici/lib/api/util.js.map +1 -0
- package/lib/esm/__/undici/lib/balanced-pool.js +206 -0
- package/lib/esm/__/undici/lib/balanced-pool.js.map +1 -0
- package/lib/esm/__/undici/lib/cache/cache.js +861 -0
- package/lib/esm/__/undici/lib/cache/cache.js.map +1 -0
- package/lib/esm/__/undici/lib/cache/cachestorage.js +159 -0
- package/lib/esm/__/undici/lib/cache/cachestorage.js.map +1 -0
- package/lib/esm/__/undici/lib/cache/symbols.js +17 -0
- package/lib/esm/__/undici/lib/cache/symbols.js.map +1 -0
- package/lib/esm/__/undici/lib/cache/util.js +63 -0
- package/lib/esm/__/undici/lib/cache/util.js.map +1 -0
- package/lib/esm/__/undici/lib/client.js +2305 -0
- package/lib/esm/__/undici/lib/client.js.map +1 -0
- package/lib/esm/__/undici/lib/compat/dispatcher-weakref.js +61 -0
- package/lib/esm/__/undici/lib/compat/dispatcher-weakref.js.map +1 -0
- package/lib/esm/__/undici/lib/cookies/constants.js +22 -0
- package/lib/esm/__/undici/lib/cookies/constants.js.map +1 -0
- package/lib/esm/__/undici/lib/cookies/index.js +198 -0
- package/lib/esm/__/undici/lib/cookies/index.js.map +1 -0
- package/lib/esm/__/undici/lib/cookies/parse.js +332 -0
- package/lib/esm/__/undici/lib/cookies/parse.js.map +1 -0
- package/lib/esm/__/undici/lib/cookies/util.js +284 -0
- package/lib/esm/__/undici/lib/cookies/util.js.map +1 -0
- package/lib/esm/__/undici/lib/core/connect.js +206 -0
- package/lib/esm/__/undici/lib/core/connect.js.map +1 -0
- package/lib/esm/__/undici/lib/core/constants.js +128 -0
- package/lib/esm/__/undici/lib/core/constants.js.map +1 -0
- package/lib/esm/__/undici/lib/core/errors.js +240 -0
- package/lib/esm/__/undici/lib/core/errors.js.map +1 -0
- package/lib/esm/__/undici/lib/core/request.js +515 -0
- package/lib/esm/__/undici/lib/core/request.js.map +1 -0
- package/lib/esm/__/undici/lib/core/symbols.js +74 -0
- package/lib/esm/__/undici/lib/core/symbols.js.map +1 -0
- package/lib/esm/__/undici/lib/core/util.js +544 -0
- package/lib/esm/__/undici/lib/core/util.js.map +1 -0
- package/lib/esm/__/undici/lib/dispatcher-base.js +206 -0
- package/lib/esm/__/undici/lib/dispatcher-base.js.map +1 -0
- package/lib/esm/__/undici/lib/dispatcher.js +31 -0
- package/lib/esm/__/undici/lib/dispatcher.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/body.js +638 -0
- package/lib/esm/__/undici/lib/fetch/body.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/constants.js +163 -0
- package/lib/esm/__/undici/lib/fetch/constants.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/dataURL.js +642 -0
- package/lib/esm/__/undici/lib/fetch/dataURL.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/file.js +362 -0
- package/lib/esm/__/undici/lib/fetch/file.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/formdata.js +281 -0
- package/lib/esm/__/undici/lib/fetch/formdata.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/global.js +50 -0
- package/lib/esm/__/undici/lib/fetch/global.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/headers.js +602 -0
- package/lib/esm/__/undici/lib/fetch/headers.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/index.js +2102 -0
- package/lib/esm/__/undici/lib/fetch/index.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/request.js +971 -0
- package/lib/esm/__/undici/lib/fetch/request.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/response.js +596 -0
- package/lib/esm/__/undici/lib/fetch/response.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/symbols.js +20 -0
- package/lib/esm/__/undici/lib/fetch/symbols.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/util.js +1161 -0
- package/lib/esm/__/undici/lib/fetch/util.js.map +1 -0
- package/lib/esm/__/undici/lib/fetch/webidl.js +659 -0
- package/lib/esm/__/undici/lib/fetch/webidl.js.map +1 -0
- package/lib/esm/__/undici/lib/fileapi/encoding.js +300 -0
- package/lib/esm/__/undici/lib/fileapi/encoding.js.map +1 -0
- package/lib/esm/__/undici/lib/fileapi/filereader.js +359 -0
- package/lib/esm/__/undici/lib/fileapi/filereader.js.map +1 -0
- package/lib/esm/__/undici/lib/fileapi/progressevent.js +90 -0
- package/lib/esm/__/undici/lib/fileapi/progressevent.js.map +1 -0
- package/lib/esm/__/undici/lib/fileapi/symbols.js +20 -0
- package/lib/esm/__/undici/lib/fileapi/symbols.js.map +1 -0
- package/lib/esm/__/undici/lib/fileapi/util.js +411 -0
- package/lib/esm/__/undici/lib/fileapi/util.js.map +1 -0
- package/lib/esm/__/undici/lib/global.js +45 -0
- package/lib/esm/__/undici/lib/global.js.map +1 -0
- package/lib/esm/__/undici/lib/handler/DecoratorHandler.js +45 -0
- package/lib/esm/__/undici/lib/handler/DecoratorHandler.js.map +1 -0
- package/lib/esm/__/undici/lib/handler/RedirectHandler.js +219 -0
- package/lib/esm/__/undici/lib/handler/RedirectHandler.js.map +1 -0
- package/lib/esm/__/undici/lib/handler/RetryHandler.js +352 -0
- package/lib/esm/__/undici/lib/handler/RetryHandler.js.map +1 -0
- package/lib/esm/__/undici/lib/interceptor/redirectInterceptor.js +33 -0
- package/lib/esm/__/undici/lib/interceptor/redirectInterceptor.js.map +1 -0
- package/lib/esm/__/undici/lib/llhttp/constants.js +286 -0
- package/lib/esm/__/undici/lib/llhttp/constants.js.map +1 -0
- package/lib/esm/__/undici/lib/llhttp/llhttp-wasm.js +12 -0
- package/lib/esm/__/undici/lib/llhttp/llhttp-wasm.js.map +1 -0
- package/lib/esm/__/undici/lib/llhttp/llhttp_simd-wasm.js +12 -0
- package/lib/esm/__/undici/lib/llhttp/llhttp_simd-wasm.js.map +1 -0
- package/lib/esm/__/undici/lib/llhttp/utils.js +26 -0
- package/lib/esm/__/undici/lib/llhttp/utils.js.map +1 -0
- package/lib/esm/__/undici/lib/mock/mock-agent.js +192 -0
- package/lib/esm/__/undici/lib/mock/mock-agent.js.map +1 -0
- package/lib/esm/__/undici/lib/mock/mock-client.js +77 -0
- package/lib/esm/__/undici/lib/mock/mock-client.js.map +1 -0
- package/lib/esm/__/undici/lib/mock/mock-errors.js +29 -0
- package/lib/esm/__/undici/lib/mock/mock-errors.js.map +1 -0
- package/lib/esm/__/undici/lib/mock/mock-interceptor.js +221 -0
- package/lib/esm/__/undici/lib/mock/mock-interceptor.js.map +1 -0
- package/lib/esm/__/undici/lib/mock/mock-pool.js +77 -0
- package/lib/esm/__/undici/lib/mock/mock-pool.js.map +1 -0
- package/lib/esm/__/undici/lib/mock/mock-symbols.js +33 -0
- package/lib/esm/__/undici/lib/mock/mock-symbols.js.map +1 -0
- package/lib/esm/__/undici/lib/mock/mock-utils.js +367 -0
- package/lib/esm/__/undici/lib/mock/mock-utils.js.map +1 -0
- package/lib/esm/__/undici/lib/mock/pending-interceptors-formatter.js +53 -0
- package/lib/esm/__/undici/lib/mock/pending-interceptors-formatter.js.map +1 -0
- package/lib/esm/__/undici/lib/mock/pluralizer.js +39 -0
- package/lib/esm/__/undici/lib/mock/pluralizer.js.map +1 -0
- package/lib/esm/__/undici/lib/node/fixed-queue.js +127 -0
- package/lib/esm/__/undici/lib/node/fixed-queue.js.map +1 -0
- package/lib/esm/__/undici/lib/pool-base.js +209 -0
- package/lib/esm/__/undici/lib/pool-base.js.map +1 -0
- package/lib/esm/__/undici/lib/pool-stats.js +47 -0
- package/lib/esm/__/undici/lib/pool-stats.js.map +1 -0
- package/lib/esm/__/undici/lib/pool.js +125 -0
- package/lib/esm/__/undici/lib/pool.js.map +1 -0
- package/lib/esm/__/undici/lib/proxy-agent.js +207 -0
- package/lib/esm/__/undici/lib/proxy-agent.js.map +1 -0
- package/lib/esm/__/undici/lib/timers.js +107 -0
- package/lib/esm/__/undici/lib/timers.js.map +1 -0
- package/lib/esm/__/undici/lib/websocket/connection.js +312 -0
- package/lib/esm/__/undici/lib/websocket/connection.js.map +1 -0
- package/lib/esm/__/undici/lib/websocket/constants.js +61 -0
- package/lib/esm/__/undici/lib/websocket/constants.js.map +1 -0
- package/lib/esm/__/undici/lib/websocket/events.js +317 -0
- package/lib/esm/__/undici/lib/websocket/events.js.map +1 -0
- package/lib/esm/__/undici/lib/websocket/frame.js +85 -0
- package/lib/esm/__/undici/lib/websocket/frame.js.map +1 -0
- package/lib/esm/__/undici/lib/websocket/receiver.js +361 -0
- package/lib/esm/__/undici/lib/websocket/receiver.js.map +1 -0
- package/lib/esm/__/undici/lib/websocket/symbols.js +22 -0
- package/lib/esm/__/undici/lib/websocket/symbols.js.map +1 -0
- package/lib/esm/__/undici/lib/websocket/util.js +214 -0
- package/lib/esm/__/undici/lib/websocket/util.js.map +1 -0
- package/lib/esm/__/undici/lib/websocket/websocket.js +662 -0
- package/lib/esm/__/undici/lib/websocket/websocket.js.map +1 -0
- package/lib/esm/_virtual/_commonjsHelpers.js +30 -1
- package/lib/esm/_virtual/_commonjsHelpers.js.map +1 -1
- package/lib/esm/_virtual/api-request.js +4 -0
- package/lib/esm/_virtual/api-request.js.map +1 -0
- package/lib/esm/_virtual/constants.js +4 -0
- package/lib/esm/_virtual/constants.js.map +1 -0
- package/lib/esm/_virtual/context.js +4 -0
- package/lib/esm/_virtual/context.js.map +1 -0
- package/lib/esm/_virtual/github.js +6 -0
- package/lib/esm/_virtual/github.js.map +1 -0
- package/lib/esm/_virtual/github2.js +4 -0
- package/lib/esm/_virtual/github2.js.map +1 -0
- package/lib/esm/_virtual/index10.js +4 -0
- package/lib/esm/_virtual/index10.js.map +1 -0
- package/lib/esm/_virtual/index11.js +4 -0
- package/lib/esm/_virtual/index11.js.map +1 -0
- package/lib/esm/_virtual/index12.js +4 -0
- package/lib/esm/_virtual/index12.js.map +1 -0
- package/lib/esm/_virtual/index13.js +4 -0
- package/lib/esm/_virtual/index13.js.map +1 -0
- package/lib/esm/_virtual/index14.js +4 -0
- package/lib/esm/_virtual/index14.js.map +1 -0
- package/lib/esm/_virtual/index2.js +4 -5
- package/lib/esm/_virtual/index2.js.map +1 -1
- package/lib/esm/_virtual/index3.js +5 -2
- package/lib/esm/_virtual/index3.js.map +1 -1
- package/lib/esm/_virtual/index4.js +5 -2
- package/lib/esm/_virtual/index4.js.map +1 -1
- package/lib/esm/_virtual/index5.js +2 -2
- package/lib/esm/_virtual/index6.js +6 -2
- package/lib/esm/_virtual/index6.js.map +1 -1
- package/lib/esm/_virtual/index7.js +4 -0
- package/lib/esm/_virtual/index7.js.map +1 -0
- package/lib/esm/_virtual/index8.js +6 -0
- package/lib/esm/_virtual/index8.js.map +1 -0
- package/lib/esm/_virtual/index9.js +4 -0
- package/lib/esm/_virtual/index9.js.map +1 -0
- package/lib/esm/_virtual/main.js +4 -0
- package/lib/esm/_virtual/main.js.map +1 -0
- package/lib/esm/_virtual/mock-interceptor.js +4 -0
- package/lib/esm/_virtual/mock-interceptor.js.map +1 -0
- package/lib/esm/_virtual/proxy.js +4 -0
- package/lib/esm/_virtual/proxy.js.map +1 -0
- package/lib/esm/_virtual/tunnel.js +4 -0
- package/lib/esm/_virtual/tunnel.js.map +1 -0
- package/lib/esm/_virtual/utils.js +4 -0
- package/lib/esm/_virtual/utils.js.map +1 -0
- package/lib/esm/_virtual/utils2.js +4 -0
- package/lib/esm/_virtual/utils2.js.map +1 -0
- package/lib/esm/_virtual/utils3.js +4 -0
- package/lib/esm/_virtual/utils3.js.map +1 -0
- package/lib/esm/artifacts/filter-artifacts.js.map +1 -1
- package/lib/esm/env/ci-env.js +6 -1
- package/lib/esm/env/ci-env.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 +3 -3
- package/lib/esm/env/service/github.js.map +1 -1
- package/lib/esm/ingest/ingest.js +1 -1
- package/lib/esm/ingest/ingest.js.map +1 -1
- package/lib/esm/locales/en.js.map +1 -1
- package/package.json +11 -11
|
@@ -0,0 +1,1170 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var constants = require('./constants.js');
|
|
4
|
+
var global = require('./global.js');
|
|
5
|
+
var require$$2 = require('node:perf_hooks');
|
|
6
|
+
var util$1 = require('../core/util.js');
|
|
7
|
+
var require$$0 = require('node:assert');
|
|
8
|
+
var require$$5 = require('node:util/types');
|
|
9
|
+
var require$$14 = require('node:stream/web');
|
|
10
|
+
|
|
11
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
|
|
13
|
+
var require$$2__default = /*#__PURE__*/_interopDefault(require$$2);
|
|
14
|
+
var require$$0__default = /*#__PURE__*/_interopDefault(require$$0);
|
|
15
|
+
var require$$5__default = /*#__PURE__*/_interopDefault(require$$5);
|
|
16
|
+
var require$$14__default = /*#__PURE__*/_interopDefault(require$$14);
|
|
17
|
+
|
|
18
|
+
var util;
|
|
19
|
+
var hasRequiredUtil;
|
|
20
|
+
|
|
21
|
+
function requireUtil () {
|
|
22
|
+
if (hasRequiredUtil) return util;
|
|
23
|
+
hasRequiredUtil = 1;
|
|
24
|
+
|
|
25
|
+
const { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = constants.__require();
|
|
26
|
+
const { getGlobalOrigin } = global.__require();
|
|
27
|
+
const { performance } = require$$2__default.default;
|
|
28
|
+
const { isBlobLike, toUSVString, ReadableStreamFrom } = util$1.__require();
|
|
29
|
+
const assert = require$$0__default.default;
|
|
30
|
+
const { isUint8Array } = require$$5__default.default;
|
|
31
|
+
|
|
32
|
+
let supportedHashes = [];
|
|
33
|
+
|
|
34
|
+
// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable
|
|
35
|
+
/** @type {import('crypto')|undefined} */
|
|
36
|
+
let crypto;
|
|
37
|
+
|
|
38
|
+
try {
|
|
39
|
+
crypto = require('crypto');
|
|
40
|
+
const possibleRelevantHashes = ['sha256', 'sha384', 'sha512'];
|
|
41
|
+
supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash));
|
|
42
|
+
/* c8 ignore next 3 */
|
|
43
|
+
} catch {
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function responseURL (response) {
|
|
47
|
+
// https://fetch.spec.whatwg.org/#responses
|
|
48
|
+
// A response has an associated URL. It is a pointer to the last URL
|
|
49
|
+
// in response’s URL list and null if response’s URL list is empty.
|
|
50
|
+
const urlList = response.urlList;
|
|
51
|
+
const length = urlList.length;
|
|
52
|
+
return length === 0 ? null : urlList[length - 1].toString()
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// https://fetch.spec.whatwg.org/#concept-response-location-url
|
|
56
|
+
function responseLocationURL (response, requestFragment) {
|
|
57
|
+
// 1. If response’s status is not a redirect status, then return null.
|
|
58
|
+
if (!redirectStatusSet.has(response.status)) {
|
|
59
|
+
return null
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// 2. Let location be the result of extracting header list values given
|
|
63
|
+
// `Location` and response’s header list.
|
|
64
|
+
let location = response.headersList.get('location');
|
|
65
|
+
|
|
66
|
+
// 3. If location is a header value, then set location to the result of
|
|
67
|
+
// parsing location with response’s URL.
|
|
68
|
+
if (location !== null && isValidHeaderValue(location)) {
|
|
69
|
+
location = new URL(location, responseURL(response));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// 4. If location is a URL whose fragment is null, then set location’s
|
|
73
|
+
// fragment to requestFragment.
|
|
74
|
+
if (location && !location.hash) {
|
|
75
|
+
location.hash = requestFragment;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// 5. Return location.
|
|
79
|
+
return location
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** @returns {URL} */
|
|
83
|
+
function requestCurrentURL (request) {
|
|
84
|
+
return request.urlList[request.urlList.length - 1]
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function requestBadPort (request) {
|
|
88
|
+
// 1. Let url be request’s current URL.
|
|
89
|
+
const url = requestCurrentURL(request);
|
|
90
|
+
|
|
91
|
+
// 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port,
|
|
92
|
+
// then return blocked.
|
|
93
|
+
if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) {
|
|
94
|
+
return 'blocked'
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// 3. Return allowed.
|
|
98
|
+
return 'allowed'
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function isErrorLike (object) {
|
|
102
|
+
return object instanceof Error || (
|
|
103
|
+
object?.constructor?.name === 'Error' ||
|
|
104
|
+
object?.constructor?.name === 'DOMException'
|
|
105
|
+
)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Check whether |statusText| is a ByteString and
|
|
109
|
+
// matches the Reason-Phrase token production.
|
|
110
|
+
// RFC 2616: https://tools.ietf.org/html/rfc2616
|
|
111
|
+
// RFC 7230: https://tools.ietf.org/html/rfc7230
|
|
112
|
+
// "reason-phrase = *( HTAB / SP / VCHAR / obs-text )"
|
|
113
|
+
// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116
|
|
114
|
+
function isValidReasonPhrase (statusText) {
|
|
115
|
+
for (let i = 0; i < statusText.length; ++i) {
|
|
116
|
+
const c = statusText.charCodeAt(i);
|
|
117
|
+
if (
|
|
118
|
+
!(
|
|
119
|
+
(
|
|
120
|
+
c === 0x09 || // HTAB
|
|
121
|
+
(c >= 0x20 && c <= 0x7e) || // SP / VCHAR
|
|
122
|
+
(c >= 0x80 && c <= 0xff)
|
|
123
|
+
) // obs-text
|
|
124
|
+
)
|
|
125
|
+
) {
|
|
126
|
+
return false
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return true
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* @see https://tools.ietf.org/html/rfc7230#section-3.2.6
|
|
134
|
+
* @param {number} c
|
|
135
|
+
*/
|
|
136
|
+
function isTokenCharCode (c) {
|
|
137
|
+
switch (c) {
|
|
138
|
+
case 0x22:
|
|
139
|
+
case 0x28:
|
|
140
|
+
case 0x29:
|
|
141
|
+
case 0x2c:
|
|
142
|
+
case 0x2f:
|
|
143
|
+
case 0x3a:
|
|
144
|
+
case 0x3b:
|
|
145
|
+
case 0x3c:
|
|
146
|
+
case 0x3d:
|
|
147
|
+
case 0x3e:
|
|
148
|
+
case 0x3f:
|
|
149
|
+
case 0x40:
|
|
150
|
+
case 0x5b:
|
|
151
|
+
case 0x5c:
|
|
152
|
+
case 0x5d:
|
|
153
|
+
case 0x7b:
|
|
154
|
+
case 0x7d:
|
|
155
|
+
// DQUOTE and "(),/:;<=>?@[\]{}"
|
|
156
|
+
return false
|
|
157
|
+
default:
|
|
158
|
+
// VCHAR %x21-7E
|
|
159
|
+
return c >= 0x21 && c <= 0x7e
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* @param {string} characters
|
|
165
|
+
*/
|
|
166
|
+
function isValidHTTPToken (characters) {
|
|
167
|
+
if (characters.length === 0) {
|
|
168
|
+
return false
|
|
169
|
+
}
|
|
170
|
+
for (let i = 0; i < characters.length; ++i) {
|
|
171
|
+
if (!isTokenCharCode(characters.charCodeAt(i))) {
|
|
172
|
+
return false
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return true
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* @see https://fetch.spec.whatwg.org/#header-name
|
|
180
|
+
* @param {string} potentialValue
|
|
181
|
+
*/
|
|
182
|
+
function isValidHeaderName (potentialValue) {
|
|
183
|
+
return isValidHTTPToken(potentialValue)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* @see https://fetch.spec.whatwg.org/#header-value
|
|
188
|
+
* @param {string} potentialValue
|
|
189
|
+
*/
|
|
190
|
+
function isValidHeaderValue (potentialValue) {
|
|
191
|
+
// - Has no leading or trailing HTTP tab or space bytes.
|
|
192
|
+
// - Contains no 0x00 (NUL) or HTTP newline bytes.
|
|
193
|
+
if (
|
|
194
|
+
potentialValue.startsWith('\t') ||
|
|
195
|
+
potentialValue.startsWith(' ') ||
|
|
196
|
+
potentialValue.endsWith('\t') ||
|
|
197
|
+
potentialValue.endsWith(' ')
|
|
198
|
+
) {
|
|
199
|
+
return false
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (
|
|
203
|
+
potentialValue.includes('\0') ||
|
|
204
|
+
potentialValue.includes('\r') ||
|
|
205
|
+
potentialValue.includes('\n')
|
|
206
|
+
) {
|
|
207
|
+
return false
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
return true
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect
|
|
214
|
+
function setRequestReferrerPolicyOnRedirect (request, actualResponse) {
|
|
215
|
+
// Given a request request and a response actualResponse, this algorithm
|
|
216
|
+
// updates request’s referrer policy according to the Referrer-Policy
|
|
217
|
+
// header (if any) in actualResponse.
|
|
218
|
+
|
|
219
|
+
// 1. Let policy be the result of executing § 8.1 Parse a referrer policy
|
|
220
|
+
// from a Referrer-Policy header on actualResponse.
|
|
221
|
+
|
|
222
|
+
// 8.1 Parse a referrer policy from a Referrer-Policy header
|
|
223
|
+
// 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list.
|
|
224
|
+
const { headersList } = actualResponse;
|
|
225
|
+
// 2. Let policy be the empty string.
|
|
226
|
+
// 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.
|
|
227
|
+
// 4. Return policy.
|
|
228
|
+
const policyHeader = (headersList.get('referrer-policy') ?? '').split(',');
|
|
229
|
+
|
|
230
|
+
// Note: As the referrer-policy can contain multiple policies
|
|
231
|
+
// separated by comma, we need to loop through all of them
|
|
232
|
+
// and pick the first valid one.
|
|
233
|
+
// Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy
|
|
234
|
+
let policy = '';
|
|
235
|
+
if (policyHeader.length > 0) {
|
|
236
|
+
// The right-most policy takes precedence.
|
|
237
|
+
// The left-most policy is the fallback.
|
|
238
|
+
for (let i = policyHeader.length; i !== 0; i--) {
|
|
239
|
+
const token = policyHeader[i - 1].trim();
|
|
240
|
+
if (referrerPolicyTokens.has(token)) {
|
|
241
|
+
policy = token;
|
|
242
|
+
break
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
// 2. If policy is not the empty string, then set request’s referrer policy to policy.
|
|
248
|
+
if (policy !== '') {
|
|
249
|
+
request.referrerPolicy = policy;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check
|
|
254
|
+
function crossOriginResourcePolicyCheck () {
|
|
255
|
+
// TODO
|
|
256
|
+
return 'allowed'
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// https://fetch.spec.whatwg.org/#concept-cors-check
|
|
260
|
+
function corsCheck () {
|
|
261
|
+
// TODO
|
|
262
|
+
return 'success'
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// https://fetch.spec.whatwg.org/#concept-tao-check
|
|
266
|
+
function TAOCheck () {
|
|
267
|
+
// TODO
|
|
268
|
+
return 'success'
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
function appendFetchMetadata (httpRequest) {
|
|
272
|
+
// https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header
|
|
273
|
+
// TODO
|
|
274
|
+
|
|
275
|
+
// https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header
|
|
276
|
+
|
|
277
|
+
// 1. Assert: r’s url is a potentially trustworthy URL.
|
|
278
|
+
// TODO
|
|
279
|
+
|
|
280
|
+
// 2. Let header be a Structured Header whose value is a token.
|
|
281
|
+
let header = null;
|
|
282
|
+
|
|
283
|
+
// 3. Set header’s value to r’s mode.
|
|
284
|
+
header = httpRequest.mode;
|
|
285
|
+
|
|
286
|
+
// 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list.
|
|
287
|
+
httpRequest.headersList.set('sec-fetch-mode', header);
|
|
288
|
+
|
|
289
|
+
// https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header
|
|
290
|
+
// TODO
|
|
291
|
+
|
|
292
|
+
// https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header
|
|
293
|
+
// TODO
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
// https://fetch.spec.whatwg.org/#append-a-request-origin-header
|
|
297
|
+
function appendRequestOriginHeader (request) {
|
|
298
|
+
// 1. Let serializedOrigin be the result of byte-serializing a request origin with request.
|
|
299
|
+
let serializedOrigin = request.origin;
|
|
300
|
+
|
|
301
|
+
// 2. If request’s response tainting is "cors" or request’s mode is "websocket", then append (`Origin`, serializedOrigin) to request’s header list.
|
|
302
|
+
if (request.responseTainting === 'cors' || request.mode === 'websocket') {
|
|
303
|
+
if (serializedOrigin) {
|
|
304
|
+
request.headersList.append('origin', serializedOrigin);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then:
|
|
308
|
+
} else if (request.method !== 'GET' && request.method !== 'HEAD') {
|
|
309
|
+
// 1. Switch on request’s referrer policy:
|
|
310
|
+
switch (request.referrerPolicy) {
|
|
311
|
+
case 'no-referrer':
|
|
312
|
+
// Set serializedOrigin to `null`.
|
|
313
|
+
serializedOrigin = null;
|
|
314
|
+
break
|
|
315
|
+
case 'no-referrer-when-downgrade':
|
|
316
|
+
case 'strict-origin':
|
|
317
|
+
case 'strict-origin-when-cross-origin':
|
|
318
|
+
// If request’s origin is a tuple origin, its scheme is "https", and request’s current URL’s scheme is not "https", then set serializedOrigin to `null`.
|
|
319
|
+
if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {
|
|
320
|
+
serializedOrigin = null;
|
|
321
|
+
}
|
|
322
|
+
break
|
|
323
|
+
case 'same-origin':
|
|
324
|
+
// If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`.
|
|
325
|
+
if (!sameOrigin(request, requestCurrentURL(request))) {
|
|
326
|
+
serializedOrigin = null;
|
|
327
|
+
}
|
|
328
|
+
break
|
|
329
|
+
// Do nothing.
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
if (serializedOrigin) {
|
|
333
|
+
// 2. Append (`Origin`, serializedOrigin) to request’s header list.
|
|
334
|
+
request.headersList.append('origin', serializedOrigin);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
function coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {
|
|
340
|
+
// TODO
|
|
341
|
+
return performance.now()
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info
|
|
345
|
+
function createOpaqueTimingInfo (timingInfo) {
|
|
346
|
+
return {
|
|
347
|
+
startTime: timingInfo.startTime ?? 0,
|
|
348
|
+
redirectStartTime: 0,
|
|
349
|
+
redirectEndTime: 0,
|
|
350
|
+
postRedirectStartTime: timingInfo.startTime ?? 0,
|
|
351
|
+
finalServiceWorkerStartTime: 0,
|
|
352
|
+
finalNetworkResponseStartTime: 0,
|
|
353
|
+
finalNetworkRequestStartTime: 0,
|
|
354
|
+
endTime: 0,
|
|
355
|
+
encodedBodySize: 0,
|
|
356
|
+
decodedBodySize: 0,
|
|
357
|
+
finalConnectionTimingInfo: null
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
// https://html.spec.whatwg.org/multipage/origin.html#policy-container
|
|
362
|
+
function makePolicyContainer () {
|
|
363
|
+
// Note: the fetch spec doesn't make use of embedder policy or CSP list
|
|
364
|
+
return {
|
|
365
|
+
referrerPolicy: 'strict-origin-when-cross-origin'
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container
|
|
370
|
+
function clonePolicyContainer (policyContainer) {
|
|
371
|
+
return {
|
|
372
|
+
referrerPolicy: policyContainer.referrerPolicy
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer
|
|
377
|
+
function determineRequestsReferrer (request) {
|
|
378
|
+
// 1. Let policy be request's referrer policy.
|
|
379
|
+
const policy = request.referrerPolicy;
|
|
380
|
+
|
|
381
|
+
// Note: policy cannot (shouldn't) be null or an empty string.
|
|
382
|
+
assert(policy);
|
|
383
|
+
|
|
384
|
+
// 2. Let environment be request’s client.
|
|
385
|
+
|
|
386
|
+
let referrerSource = null;
|
|
387
|
+
|
|
388
|
+
// 3. Switch on request’s referrer:
|
|
389
|
+
if (request.referrer === 'client') {
|
|
390
|
+
// Note: node isn't a browser and doesn't implement document/iframes,
|
|
391
|
+
// so we bypass this step and replace it with our own.
|
|
392
|
+
|
|
393
|
+
const globalOrigin = getGlobalOrigin();
|
|
394
|
+
|
|
395
|
+
if (!globalOrigin || globalOrigin.origin === 'null') {
|
|
396
|
+
return 'no-referrer'
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// note: we need to clone it as it's mutated
|
|
400
|
+
referrerSource = new URL(globalOrigin);
|
|
401
|
+
} else if (request.referrer instanceof URL) {
|
|
402
|
+
// Let referrerSource be request’s referrer.
|
|
403
|
+
referrerSource = request.referrer;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
// 4. Let request’s referrerURL be the result of stripping referrerSource for
|
|
407
|
+
// use as a referrer.
|
|
408
|
+
let referrerURL = stripURLForReferrer(referrerSource);
|
|
409
|
+
|
|
410
|
+
// 5. Let referrerOrigin be the result of stripping referrerSource for use as
|
|
411
|
+
// a referrer, with the origin-only flag set to true.
|
|
412
|
+
const referrerOrigin = stripURLForReferrer(referrerSource, true);
|
|
413
|
+
|
|
414
|
+
// 6. If the result of serializing referrerURL is a string whose length is
|
|
415
|
+
// greater than 4096, set referrerURL to referrerOrigin.
|
|
416
|
+
if (referrerURL.toString().length > 4096) {
|
|
417
|
+
referrerURL = referrerOrigin;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
const areSameOrigin = sameOrigin(request, referrerURL);
|
|
421
|
+
const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&
|
|
422
|
+
!isURLPotentiallyTrustworthy(request.url);
|
|
423
|
+
|
|
424
|
+
// 8. Execute the switch statements corresponding to the value of policy:
|
|
425
|
+
switch (policy) {
|
|
426
|
+
case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)
|
|
427
|
+
case 'unsafe-url': return referrerURL
|
|
428
|
+
case 'same-origin':
|
|
429
|
+
return areSameOrigin ? referrerOrigin : 'no-referrer'
|
|
430
|
+
case 'origin-when-cross-origin':
|
|
431
|
+
return areSameOrigin ? referrerURL : referrerOrigin
|
|
432
|
+
case 'strict-origin-when-cross-origin': {
|
|
433
|
+
const currentURL = requestCurrentURL(request);
|
|
434
|
+
|
|
435
|
+
// 1. If the origin of referrerURL and the origin of request’s current
|
|
436
|
+
// URL are the same, then return referrerURL.
|
|
437
|
+
if (sameOrigin(referrerURL, currentURL)) {
|
|
438
|
+
return referrerURL
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
// 2. If referrerURL is a potentially trustworthy URL and request’s
|
|
442
|
+
// current URL is not a potentially trustworthy URL, then return no
|
|
443
|
+
// referrer.
|
|
444
|
+
if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {
|
|
445
|
+
return 'no-referrer'
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
// 3. Return referrerOrigin.
|
|
449
|
+
return referrerOrigin
|
|
450
|
+
}
|
|
451
|
+
case 'strict-origin': // eslint-disable-line
|
|
452
|
+
/**
|
|
453
|
+
* 1. If referrerURL is a potentially trustworthy URL and
|
|
454
|
+
* request’s current URL is not a potentially trustworthy URL,
|
|
455
|
+
* then return no referrer.
|
|
456
|
+
* 2. Return referrerOrigin
|
|
457
|
+
*/
|
|
458
|
+
case 'no-referrer-when-downgrade': // eslint-disable-line
|
|
459
|
+
/**
|
|
460
|
+
* 1. If referrerURL is a potentially trustworthy URL and
|
|
461
|
+
* request’s current URL is not a potentially trustworthy URL,
|
|
462
|
+
* then return no referrer.
|
|
463
|
+
* 2. Return referrerOrigin
|
|
464
|
+
*/
|
|
465
|
+
|
|
466
|
+
default: // eslint-disable-line
|
|
467
|
+
return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* @see https://w3c.github.io/webappsec-referrer-policy/#strip-url
|
|
473
|
+
* @param {URL} url
|
|
474
|
+
* @param {boolean|undefined} originOnly
|
|
475
|
+
*/
|
|
476
|
+
function stripURLForReferrer (url, originOnly) {
|
|
477
|
+
// 1. Assert: url is a URL.
|
|
478
|
+
assert(url instanceof URL);
|
|
479
|
+
|
|
480
|
+
// 2. If url’s scheme is a local scheme, then return no referrer.
|
|
481
|
+
if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {
|
|
482
|
+
return 'no-referrer'
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
// 3. Set url’s username to the empty string.
|
|
486
|
+
url.username = '';
|
|
487
|
+
|
|
488
|
+
// 4. Set url’s password to the empty string.
|
|
489
|
+
url.password = '';
|
|
490
|
+
|
|
491
|
+
// 5. Set url’s fragment to null.
|
|
492
|
+
url.hash = '';
|
|
493
|
+
|
|
494
|
+
// 6. If the origin-only flag is true, then:
|
|
495
|
+
if (originOnly) {
|
|
496
|
+
// 1. Set url’s path to « the empty string ».
|
|
497
|
+
url.pathname = '';
|
|
498
|
+
|
|
499
|
+
// 2. Set url’s query to null.
|
|
500
|
+
url.search = '';
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
// 7. Return url.
|
|
504
|
+
return url
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
function isURLPotentiallyTrustworthy (url) {
|
|
508
|
+
if (!(url instanceof URL)) {
|
|
509
|
+
return false
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
// If child of about, return true
|
|
513
|
+
if (url.href === 'about:blank' || url.href === 'about:srcdoc') {
|
|
514
|
+
return true
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
// If scheme is data, return true
|
|
518
|
+
if (url.protocol === 'data:') return true
|
|
519
|
+
|
|
520
|
+
// If file, return true
|
|
521
|
+
if (url.protocol === 'file:') return true
|
|
522
|
+
|
|
523
|
+
return isOriginPotentiallyTrustworthy(url.origin)
|
|
524
|
+
|
|
525
|
+
function isOriginPotentiallyTrustworthy (origin) {
|
|
526
|
+
// If origin is explicitly null, return false
|
|
527
|
+
if (origin == null || origin === 'null') return false
|
|
528
|
+
|
|
529
|
+
const originAsURL = new URL(origin);
|
|
530
|
+
|
|
531
|
+
// If secure, return true
|
|
532
|
+
if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {
|
|
533
|
+
return true
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
// If localhost or variants, return true
|
|
537
|
+
if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) ||
|
|
538
|
+
(originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||
|
|
539
|
+
(originAsURL.hostname.endsWith('.localhost'))) {
|
|
540
|
+
return true
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
// If any other, return false
|
|
544
|
+
return false
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist
|
|
550
|
+
* @param {Uint8Array} bytes
|
|
551
|
+
* @param {string} metadataList
|
|
552
|
+
*/
|
|
553
|
+
function bytesMatch (bytes, metadataList) {
|
|
554
|
+
// If node is not built with OpenSSL support, we cannot check
|
|
555
|
+
// a request's integrity, so allow it by default (the spec will
|
|
556
|
+
// allow requests if an invalid hash is given, as precedence).
|
|
557
|
+
/* istanbul ignore if: only if node is built with --without-ssl */
|
|
558
|
+
if (crypto === undefined) {
|
|
559
|
+
return true
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
// 1. Let parsedMetadata be the result of parsing metadataList.
|
|
563
|
+
const parsedMetadata = parseMetadata(metadataList);
|
|
564
|
+
|
|
565
|
+
// 2. If parsedMetadata is no metadata, return true.
|
|
566
|
+
if (parsedMetadata === 'no metadata') {
|
|
567
|
+
return true
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
// 3. If response is not eligible for integrity validation, return false.
|
|
571
|
+
// TODO
|
|
572
|
+
|
|
573
|
+
// 4. If parsedMetadata is the empty set, return true.
|
|
574
|
+
if (parsedMetadata.length === 0) {
|
|
575
|
+
return true
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
// 5. Let metadata be the result of getting the strongest
|
|
579
|
+
// metadata from parsedMetadata.
|
|
580
|
+
const strongest = getStrongestMetadata(parsedMetadata);
|
|
581
|
+
const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest);
|
|
582
|
+
|
|
583
|
+
// 6. For each item in metadata:
|
|
584
|
+
for (const item of metadata) {
|
|
585
|
+
// 1. Let algorithm be the alg component of item.
|
|
586
|
+
const algorithm = item.algo;
|
|
587
|
+
|
|
588
|
+
// 2. Let expectedValue be the val component of item.
|
|
589
|
+
const expectedValue = item.hash;
|
|
590
|
+
|
|
591
|
+
// See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e
|
|
592
|
+
// "be liberal with padding". This is annoying, and it's not even in the spec.
|
|
593
|
+
|
|
594
|
+
// 3. Let actualValue be the result of applying algorithm to bytes.
|
|
595
|
+
let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64');
|
|
596
|
+
|
|
597
|
+
if (actualValue[actualValue.length - 1] === '=') {
|
|
598
|
+
if (actualValue[actualValue.length - 2] === '=') {
|
|
599
|
+
actualValue = actualValue.slice(0, -2);
|
|
600
|
+
} else {
|
|
601
|
+
actualValue = actualValue.slice(0, -1);
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
// 4. If actualValue is a case-sensitive match for expectedValue,
|
|
606
|
+
// return true.
|
|
607
|
+
if (compareBase64Mixed(actualValue, expectedValue)) {
|
|
608
|
+
return true
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
// 7. Return false.
|
|
613
|
+
return false
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options
|
|
617
|
+
// https://www.w3.org/TR/CSP2/#source-list-syntax
|
|
618
|
+
// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1
|
|
619
|
+
const parseHashWithOptions = /(?<algo>sha256|sha384|sha512)-((?<hash>[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;
|
|
620
|
+
|
|
621
|
+
/**
|
|
622
|
+
* @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata
|
|
623
|
+
* @param {string} metadata
|
|
624
|
+
*/
|
|
625
|
+
function parseMetadata (metadata) {
|
|
626
|
+
// 1. Let result be the empty set.
|
|
627
|
+
/** @type {{ algo: string, hash: string }[]} */
|
|
628
|
+
const result = [];
|
|
629
|
+
|
|
630
|
+
// 2. Let empty be equal to true.
|
|
631
|
+
let empty = true;
|
|
632
|
+
|
|
633
|
+
// 3. For each token returned by splitting metadata on spaces:
|
|
634
|
+
for (const token of metadata.split(' ')) {
|
|
635
|
+
// 1. Set empty to false.
|
|
636
|
+
empty = false;
|
|
637
|
+
|
|
638
|
+
// 2. Parse token as a hash-with-options.
|
|
639
|
+
const parsedToken = parseHashWithOptions.exec(token);
|
|
640
|
+
|
|
641
|
+
// 3. If token does not parse, continue to the next token.
|
|
642
|
+
if (
|
|
643
|
+
parsedToken === null ||
|
|
644
|
+
parsedToken.groups === undefined ||
|
|
645
|
+
parsedToken.groups.algo === undefined
|
|
646
|
+
) {
|
|
647
|
+
// Note: Chromium blocks the request at this point, but Firefox
|
|
648
|
+
// gives a warning that an invalid integrity was given. The
|
|
649
|
+
// correct behavior is to ignore these, and subsequently not
|
|
650
|
+
// check the integrity of the resource.
|
|
651
|
+
continue
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
// 4. Let algorithm be the hash-algo component of token.
|
|
655
|
+
const algorithm = parsedToken.groups.algo.toLowerCase();
|
|
656
|
+
|
|
657
|
+
// 5. If algorithm is a hash function recognized by the user
|
|
658
|
+
// agent, add the parsed token to result.
|
|
659
|
+
if (supportedHashes.includes(algorithm)) {
|
|
660
|
+
result.push(parsedToken.groups);
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
// 4. Return no metadata if empty is true, otherwise return result.
|
|
665
|
+
if (empty === true) {
|
|
666
|
+
return 'no metadata'
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
return result
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
/**
|
|
673
|
+
* @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList
|
|
674
|
+
*/
|
|
675
|
+
function getStrongestMetadata (metadataList) {
|
|
676
|
+
// Let algorithm be the algo component of the first item in metadataList.
|
|
677
|
+
// Can be sha256
|
|
678
|
+
let algorithm = metadataList[0].algo;
|
|
679
|
+
// If the algorithm is sha512, then it is the strongest
|
|
680
|
+
// and we can return immediately
|
|
681
|
+
if (algorithm[3] === '5') {
|
|
682
|
+
return algorithm
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
for (let i = 1; i < metadataList.length; ++i) {
|
|
686
|
+
const metadata = metadataList[i];
|
|
687
|
+
// If the algorithm is sha512, then it is the strongest
|
|
688
|
+
// and we can break the loop immediately
|
|
689
|
+
if (metadata.algo[3] === '5') {
|
|
690
|
+
algorithm = 'sha512';
|
|
691
|
+
break
|
|
692
|
+
// If the algorithm is sha384, then a potential sha256 or sha384 is ignored
|
|
693
|
+
} else if (algorithm[3] === '3') {
|
|
694
|
+
continue
|
|
695
|
+
// algorithm is sha256, check if algorithm is sha384 and if so, set it as
|
|
696
|
+
// the strongest
|
|
697
|
+
} else if (metadata.algo[3] === '3') {
|
|
698
|
+
algorithm = 'sha384';
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
return algorithm
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
function filterMetadataListByAlgorithm (metadataList, algorithm) {
|
|
705
|
+
if (metadataList.length === 1) {
|
|
706
|
+
return metadataList
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
let pos = 0;
|
|
710
|
+
for (let i = 0; i < metadataList.length; ++i) {
|
|
711
|
+
if (metadataList[i].algo === algorithm) {
|
|
712
|
+
metadataList[pos++] = metadataList[i];
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
metadataList.length = pos;
|
|
717
|
+
|
|
718
|
+
return metadataList
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
/**
|
|
722
|
+
* Compares two base64 strings, allowing for base64url
|
|
723
|
+
* in the second string.
|
|
724
|
+
*
|
|
725
|
+
* @param {string} actualValue always base64
|
|
726
|
+
* @param {string} expectedValue base64 or base64url
|
|
727
|
+
* @returns {boolean}
|
|
728
|
+
*/
|
|
729
|
+
function compareBase64Mixed (actualValue, expectedValue) {
|
|
730
|
+
if (actualValue.length !== expectedValue.length) {
|
|
731
|
+
return false
|
|
732
|
+
}
|
|
733
|
+
for (let i = 0; i < actualValue.length; ++i) {
|
|
734
|
+
if (actualValue[i] !== expectedValue[i]) {
|
|
735
|
+
if (
|
|
736
|
+
(actualValue[i] === '+' && expectedValue[i] === '-') ||
|
|
737
|
+
(actualValue[i] === '/' && expectedValue[i] === '_')
|
|
738
|
+
) {
|
|
739
|
+
continue
|
|
740
|
+
}
|
|
741
|
+
return false
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
return true
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request
|
|
749
|
+
function tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {
|
|
750
|
+
// TODO
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
/**
|
|
754
|
+
* @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}
|
|
755
|
+
* @param {URL} A
|
|
756
|
+
* @param {URL} B
|
|
757
|
+
*/
|
|
758
|
+
function sameOrigin (A, B) {
|
|
759
|
+
// 1. If A and B are the same opaque origin, then return true.
|
|
760
|
+
if (A.origin === B.origin && A.origin === 'null') {
|
|
761
|
+
return true
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
// 2. If A and B are both tuple origins and their schemes,
|
|
765
|
+
// hosts, and port are identical, then return true.
|
|
766
|
+
if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {
|
|
767
|
+
return true
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
// 3. Return false.
|
|
771
|
+
return false
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
function createDeferredPromise () {
|
|
775
|
+
let res;
|
|
776
|
+
let rej;
|
|
777
|
+
const promise = new Promise((resolve, reject) => {
|
|
778
|
+
res = resolve;
|
|
779
|
+
rej = reject;
|
|
780
|
+
});
|
|
781
|
+
|
|
782
|
+
return { promise, resolve: res, reject: rej }
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
function isAborted (fetchParams) {
|
|
786
|
+
return fetchParams.controller.state === 'aborted'
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
function isCancelled (fetchParams) {
|
|
790
|
+
return fetchParams.controller.state === 'aborted' ||
|
|
791
|
+
fetchParams.controller.state === 'terminated'
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
const normalizeMethodRecord = {
|
|
795
|
+
delete: 'DELETE',
|
|
796
|
+
DELETE: 'DELETE',
|
|
797
|
+
get: 'GET',
|
|
798
|
+
GET: 'GET',
|
|
799
|
+
head: 'HEAD',
|
|
800
|
+
HEAD: 'HEAD',
|
|
801
|
+
options: 'OPTIONS',
|
|
802
|
+
OPTIONS: 'OPTIONS',
|
|
803
|
+
post: 'POST',
|
|
804
|
+
POST: 'POST',
|
|
805
|
+
put: 'PUT',
|
|
806
|
+
PUT: 'PUT'
|
|
807
|
+
};
|
|
808
|
+
|
|
809
|
+
// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.
|
|
810
|
+
Object.setPrototypeOf(normalizeMethodRecord, null);
|
|
811
|
+
|
|
812
|
+
/**
|
|
813
|
+
* @see https://fetch.spec.whatwg.org/#concept-method-normalize
|
|
814
|
+
* @param {string} method
|
|
815
|
+
*/
|
|
816
|
+
function normalizeMethod (method) {
|
|
817
|
+
return normalizeMethodRecord[method.toLowerCase()] ?? method
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string
|
|
821
|
+
function serializeJavascriptValueToJSONString (value) {
|
|
822
|
+
// 1. Let result be ? Call(%JSON.stringify%, undefined, « value »).
|
|
823
|
+
const result = JSON.stringify(value);
|
|
824
|
+
|
|
825
|
+
// 2. If result is undefined, then throw a TypeError.
|
|
826
|
+
if (result === undefined) {
|
|
827
|
+
throw new TypeError('Value is not JSON serializable')
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
// 3. Assert: result is a string.
|
|
831
|
+
assert(typeof result === 'string');
|
|
832
|
+
|
|
833
|
+
// 4. Return result.
|
|
834
|
+
return result
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object
|
|
838
|
+
const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));
|
|
839
|
+
|
|
840
|
+
/**
|
|
841
|
+
* @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object
|
|
842
|
+
* @param {() => unknown[]} iterator
|
|
843
|
+
* @param {string} name name of the instance
|
|
844
|
+
* @param {'key'|'value'|'key+value'} kind
|
|
845
|
+
*/
|
|
846
|
+
function makeIterator (iterator, name, kind) {
|
|
847
|
+
const object = {
|
|
848
|
+
index: 0,
|
|
849
|
+
kind,
|
|
850
|
+
target: iterator
|
|
851
|
+
};
|
|
852
|
+
|
|
853
|
+
const i = {
|
|
854
|
+
next () {
|
|
855
|
+
// 1. Let interface be the interface for which the iterator prototype object exists.
|
|
856
|
+
|
|
857
|
+
// 2. Let thisValue be the this value.
|
|
858
|
+
|
|
859
|
+
// 3. Let object be ? ToObject(thisValue).
|
|
860
|
+
|
|
861
|
+
// 4. If object is a platform object, then perform a security
|
|
862
|
+
// check, passing:
|
|
863
|
+
|
|
864
|
+
// 5. If object is not a default iterator object for interface,
|
|
865
|
+
// then throw a TypeError.
|
|
866
|
+
if (Object.getPrototypeOf(this) !== i) {
|
|
867
|
+
throw new TypeError(
|
|
868
|
+
`'next' called on an object that does not implement interface ${name} Iterator.`
|
|
869
|
+
)
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
// 6. Let index be object’s index.
|
|
873
|
+
// 7. Let kind be object’s kind.
|
|
874
|
+
// 8. Let values be object’s target's value pairs to iterate over.
|
|
875
|
+
const { index, kind, target } = object;
|
|
876
|
+
const values = target();
|
|
877
|
+
|
|
878
|
+
// 9. Let len be the length of values.
|
|
879
|
+
const len = values.length;
|
|
880
|
+
|
|
881
|
+
// 10. If index is greater than or equal to len, then return
|
|
882
|
+
// CreateIterResultObject(undefined, true).
|
|
883
|
+
if (index >= len) {
|
|
884
|
+
return { value: undefined, done: true }
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
// 11. Let pair be the entry in values at index index.
|
|
888
|
+
const pair = values[index];
|
|
889
|
+
|
|
890
|
+
// 12. Set object’s index to index + 1.
|
|
891
|
+
object.index = index + 1;
|
|
892
|
+
|
|
893
|
+
// 13. Return the iterator result for pair and kind.
|
|
894
|
+
return iteratorResult(pair, kind)
|
|
895
|
+
},
|
|
896
|
+
// The class string of an iterator prototype object for a given interface is the
|
|
897
|
+
// result of concatenating the identifier of the interface and the string " Iterator".
|
|
898
|
+
[Symbol.toStringTag]: `${name} Iterator`
|
|
899
|
+
};
|
|
900
|
+
|
|
901
|
+
// The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.
|
|
902
|
+
Object.setPrototypeOf(i, esIteratorPrototype);
|
|
903
|
+
// esIteratorPrototype needs to be the prototype of i
|
|
904
|
+
// which is the prototype of an empty object. Yes, it's confusing.
|
|
905
|
+
return Object.setPrototypeOf({}, i)
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
// https://webidl.spec.whatwg.org/#iterator-result
|
|
909
|
+
function iteratorResult (pair, kind) {
|
|
910
|
+
let result;
|
|
911
|
+
|
|
912
|
+
// 1. Let result be a value determined by the value of kind:
|
|
913
|
+
switch (kind) {
|
|
914
|
+
case 'key': {
|
|
915
|
+
// 1. Let idlKey be pair’s key.
|
|
916
|
+
// 2. Let key be the result of converting idlKey to an
|
|
917
|
+
// ECMAScript value.
|
|
918
|
+
// 3. result is key.
|
|
919
|
+
result = pair[0];
|
|
920
|
+
break
|
|
921
|
+
}
|
|
922
|
+
case 'value': {
|
|
923
|
+
// 1. Let idlValue be pair’s value.
|
|
924
|
+
// 2. Let value be the result of converting idlValue to
|
|
925
|
+
// an ECMAScript value.
|
|
926
|
+
// 3. result is value.
|
|
927
|
+
result = pair[1];
|
|
928
|
+
break
|
|
929
|
+
}
|
|
930
|
+
case 'key+value': {
|
|
931
|
+
// 1. Let idlKey be pair’s key.
|
|
932
|
+
// 2. Let idlValue be pair’s value.
|
|
933
|
+
// 3. Let key be the result of converting idlKey to an
|
|
934
|
+
// ECMAScript value.
|
|
935
|
+
// 4. Let value be the result of converting idlValue to
|
|
936
|
+
// an ECMAScript value.
|
|
937
|
+
// 5. Let array be ! ArrayCreate(2).
|
|
938
|
+
// 6. Call ! CreateDataProperty(array, "0", key).
|
|
939
|
+
// 7. Call ! CreateDataProperty(array, "1", value).
|
|
940
|
+
// 8. result is array.
|
|
941
|
+
result = pair;
|
|
942
|
+
break
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
// 2. Return CreateIterResultObject(result, false).
|
|
947
|
+
return { value: result, done: false }
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
/**
|
|
951
|
+
* @see https://fetch.spec.whatwg.org/#body-fully-read
|
|
952
|
+
*/
|
|
953
|
+
async function fullyReadBody (body, processBody, processBodyError) {
|
|
954
|
+
// 1. If taskDestination is null, then set taskDestination to
|
|
955
|
+
// the result of starting a new parallel queue.
|
|
956
|
+
|
|
957
|
+
// 2. Let successSteps given a byte sequence bytes be to queue a
|
|
958
|
+
// fetch task to run processBody given bytes, with taskDestination.
|
|
959
|
+
const successSteps = processBody;
|
|
960
|
+
|
|
961
|
+
// 3. Let errorSteps be to queue a fetch task to run processBodyError,
|
|
962
|
+
// with taskDestination.
|
|
963
|
+
const errorSteps = processBodyError;
|
|
964
|
+
|
|
965
|
+
// 4. Let reader be the result of getting a reader for body’s stream.
|
|
966
|
+
// If that threw an exception, then run errorSteps with that
|
|
967
|
+
// exception and return.
|
|
968
|
+
let reader;
|
|
969
|
+
|
|
970
|
+
try {
|
|
971
|
+
reader = body.stream.getReader();
|
|
972
|
+
} catch (e) {
|
|
973
|
+
errorSteps(e);
|
|
974
|
+
return
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
// 5. Read all bytes from reader, given successSteps and errorSteps.
|
|
978
|
+
try {
|
|
979
|
+
const result = await readAllBytes(reader);
|
|
980
|
+
successSteps(result);
|
|
981
|
+
} catch (e) {
|
|
982
|
+
errorSteps(e);
|
|
983
|
+
}
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
/** @type {ReadableStream} */
|
|
987
|
+
let ReadableStream = globalThis.ReadableStream;
|
|
988
|
+
|
|
989
|
+
function isReadableStreamLike (stream) {
|
|
990
|
+
if (!ReadableStream) {
|
|
991
|
+
ReadableStream = require$$14__default.default.ReadableStream;
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
return stream instanceof ReadableStream || (
|
|
995
|
+
stream[Symbol.toStringTag] === 'ReadableStream' &&
|
|
996
|
+
typeof stream.tee === 'function'
|
|
997
|
+
)
|
|
998
|
+
}
|
|
999
|
+
|
|
1000
|
+
const MAXIMUM_ARGUMENT_LENGTH = 65535;
|
|
1001
|
+
|
|
1002
|
+
/**
|
|
1003
|
+
* @see https://infra.spec.whatwg.org/#isomorphic-decode
|
|
1004
|
+
* @param {number[]|Uint8Array} input
|
|
1005
|
+
*/
|
|
1006
|
+
function isomorphicDecode (input) {
|
|
1007
|
+
// 1. To isomorphic decode a byte sequence input, return a string whose code point
|
|
1008
|
+
// length is equal to input’s length and whose code points have the same values
|
|
1009
|
+
// as the values of input’s bytes, in the same order.
|
|
1010
|
+
|
|
1011
|
+
if (input.length < MAXIMUM_ARGUMENT_LENGTH) {
|
|
1012
|
+
return String.fromCharCode(...input)
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
return input.reduce((previous, current) => previous + String.fromCharCode(current), '')
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
/**
|
|
1019
|
+
* @param {ReadableStreamController<Uint8Array>} controller
|
|
1020
|
+
*/
|
|
1021
|
+
function readableStreamClose (controller) {
|
|
1022
|
+
try {
|
|
1023
|
+
controller.close();
|
|
1024
|
+
} catch (err) {
|
|
1025
|
+
// TODO: add comment explaining why this error occurs.
|
|
1026
|
+
if (!err.message.includes('Controller is already closed')) {
|
|
1027
|
+
throw err
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
/**
|
|
1033
|
+
* @see https://infra.spec.whatwg.org/#isomorphic-encode
|
|
1034
|
+
* @param {string} input
|
|
1035
|
+
*/
|
|
1036
|
+
function isomorphicEncode (input) {
|
|
1037
|
+
// 1. Assert: input contains no code points greater than U+00FF.
|
|
1038
|
+
for (let i = 0; i < input.length; i++) {
|
|
1039
|
+
assert(input.charCodeAt(i) <= 0xFF);
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
// 2. Return a byte sequence whose length is equal to input’s code
|
|
1043
|
+
// point length and whose bytes have the same values as the
|
|
1044
|
+
// values of input’s code points, in the same order
|
|
1045
|
+
return input
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
/**
|
|
1049
|
+
* @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes
|
|
1050
|
+
* @see https://streams.spec.whatwg.org/#read-loop
|
|
1051
|
+
* @param {ReadableStreamDefaultReader} reader
|
|
1052
|
+
*/
|
|
1053
|
+
async function readAllBytes (reader) {
|
|
1054
|
+
const bytes = [];
|
|
1055
|
+
let byteLength = 0;
|
|
1056
|
+
|
|
1057
|
+
while (true) {
|
|
1058
|
+
const { done, value: chunk } = await reader.read();
|
|
1059
|
+
|
|
1060
|
+
if (done) {
|
|
1061
|
+
// 1. Call successSteps with bytes.
|
|
1062
|
+
return Buffer.concat(bytes, byteLength)
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
// 1. If chunk is not a Uint8Array object, call failureSteps
|
|
1066
|
+
// with a TypeError and abort these steps.
|
|
1067
|
+
if (!isUint8Array(chunk)) {
|
|
1068
|
+
throw new TypeError('Received non-Uint8Array chunk')
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
// 2. Append the bytes represented by chunk to bytes.
|
|
1072
|
+
bytes.push(chunk);
|
|
1073
|
+
byteLength += chunk.length;
|
|
1074
|
+
|
|
1075
|
+
// 3. Read-loop given reader, bytes, successSteps, and failureSteps.
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
/**
|
|
1080
|
+
* @see https://fetch.spec.whatwg.org/#is-local
|
|
1081
|
+
* @param {URL} url
|
|
1082
|
+
*/
|
|
1083
|
+
function urlIsLocal (url) {
|
|
1084
|
+
assert('protocol' in url); // ensure it's a url object
|
|
1085
|
+
|
|
1086
|
+
const protocol = url.protocol;
|
|
1087
|
+
|
|
1088
|
+
return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
/**
|
|
1092
|
+
* @param {string|URL} url
|
|
1093
|
+
*/
|
|
1094
|
+
function urlHasHttpsScheme (url) {
|
|
1095
|
+
if (typeof url === 'string') {
|
|
1096
|
+
return url.startsWith('https:')
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1099
|
+
return url.protocol === 'https:'
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1102
|
+
/**
|
|
1103
|
+
* @see https://fetch.spec.whatwg.org/#http-scheme
|
|
1104
|
+
* @param {URL} url
|
|
1105
|
+
*/
|
|
1106
|
+
function urlIsHttpHttpsScheme (url) {
|
|
1107
|
+
assert('protocol' in url); // ensure it's a url object
|
|
1108
|
+
|
|
1109
|
+
const protocol = url.protocol;
|
|
1110
|
+
|
|
1111
|
+
return protocol === 'http:' || protocol === 'https:'
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
/**
|
|
1115
|
+
* Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.
|
|
1116
|
+
*/
|
|
1117
|
+
const hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key));
|
|
1118
|
+
|
|
1119
|
+
util = {
|
|
1120
|
+
isAborted,
|
|
1121
|
+
isCancelled,
|
|
1122
|
+
createDeferredPromise,
|
|
1123
|
+
ReadableStreamFrom,
|
|
1124
|
+
toUSVString,
|
|
1125
|
+
tryUpgradeRequestToAPotentiallyTrustworthyURL,
|
|
1126
|
+
coarsenedSharedCurrentTime,
|
|
1127
|
+
determineRequestsReferrer,
|
|
1128
|
+
makePolicyContainer,
|
|
1129
|
+
clonePolicyContainer,
|
|
1130
|
+
appendFetchMetadata,
|
|
1131
|
+
appendRequestOriginHeader,
|
|
1132
|
+
TAOCheck,
|
|
1133
|
+
corsCheck,
|
|
1134
|
+
crossOriginResourcePolicyCheck,
|
|
1135
|
+
createOpaqueTimingInfo,
|
|
1136
|
+
setRequestReferrerPolicyOnRedirect,
|
|
1137
|
+
isValidHTTPToken,
|
|
1138
|
+
requestBadPort,
|
|
1139
|
+
requestCurrentURL,
|
|
1140
|
+
responseURL,
|
|
1141
|
+
responseLocationURL,
|
|
1142
|
+
isBlobLike,
|
|
1143
|
+
isURLPotentiallyTrustworthy,
|
|
1144
|
+
isValidReasonPhrase,
|
|
1145
|
+
sameOrigin,
|
|
1146
|
+
normalizeMethod,
|
|
1147
|
+
serializeJavascriptValueToJSONString,
|
|
1148
|
+
makeIterator,
|
|
1149
|
+
isValidHeaderName,
|
|
1150
|
+
isValidHeaderValue,
|
|
1151
|
+
hasOwn,
|
|
1152
|
+
isErrorLike,
|
|
1153
|
+
fullyReadBody,
|
|
1154
|
+
bytesMatch,
|
|
1155
|
+
isReadableStreamLike,
|
|
1156
|
+
readableStreamClose,
|
|
1157
|
+
isomorphicEncode,
|
|
1158
|
+
isomorphicDecode,
|
|
1159
|
+
urlIsLocal,
|
|
1160
|
+
urlHasHttpsScheme,
|
|
1161
|
+
urlIsHttpHttpsScheme,
|
|
1162
|
+
readAllBytes,
|
|
1163
|
+
normalizeMethodRecord,
|
|
1164
|
+
parseMetadata
|
|
1165
|
+
};
|
|
1166
|
+
return util;
|
|
1167
|
+
}
|
|
1168
|
+
|
|
1169
|
+
exports.__require = requireUtil;
|
|
1170
|
+
//# sourceMappingURL=util.js.map
|