@relative-ci/core 5.3.4-alpha.0 → 6.0.0-beta.3

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.
Files changed (189) hide show
  1. package/lib/cjs/__/@actions/http-client/lib/index.js +1 -1
  2. package/lib/cjs/__/@octokit/core/dist-src/version.js +1 -1
  3. package/lib/cjs/__/@octokit/core/dist-src/version.js.map +1 -1
  4. package/lib/cjs/__/@octokit/graphql/dist-bundle/index.js +4 -0
  5. package/lib/cjs/__/@octokit/graphql/dist-bundle/index.js.map +1 -1
  6. package/lib/cjs/__/@octokit/request/dist-bundle/index.js +10 -6
  7. package/lib/cjs/__/@octokit/request/dist-bundle/index.js.map +1 -1
  8. package/lib/cjs/__/content-type/dist/index.js +183 -0
  9. package/lib/cjs/__/content-type/dist/index.js.map +1 -0
  10. package/lib/cjs/__/cross-spawn/index.js +1 -1
  11. package/lib/cjs/__/{execa → env-ci/__/execa}/index.js +1 -1
  12. package/lib/cjs/__/env-ci/__/execa/index.js.map +1 -0
  13. package/lib/cjs/__/env-ci/__/execa/lib/command.js.map +1 -0
  14. package/lib/cjs/__/env-ci/__/execa/lib/error.js.map +1 -0
  15. package/lib/cjs/__/env-ci/__/execa/lib/promise.js.map +1 -0
  16. package/lib/cjs/__/env-ci/__/execa/lib/stdio.js.map +1 -0
  17. package/lib/cjs/__/{execa → env-ci/__/execa}/lib/stream.js +1 -1
  18. package/lib/cjs/__/env-ci/__/execa/lib/stream.js.map +1 -0
  19. package/lib/cjs/__/env-ci/__/execa/lib/verbose.js.map +1 -0
  20. package/lib/cjs/__/env-ci/__/get-stream/source/array-buffer.js.map +1 -0
  21. package/lib/cjs/__/env-ci/__/human-signals/build/src/core.js.map +1 -0
  22. package/lib/cjs/__/env-ci/__/human-signals/build/src/main.js.map +1 -0
  23. package/lib/cjs/__/env-ci/__/human-signals/build/src/realtime.js.map +1 -0
  24. package/lib/cjs/__/env-ci/__/human-signals/build/src/signals.js.map +1 -0
  25. package/lib/cjs/__/env-ci/__/is-stream/index.js.map +1 -0
  26. package/lib/cjs/__/{npm-run-path → env-ci/__/npm-run-path}/index.js +1 -1
  27. package/lib/cjs/__/env-ci/__/npm-run-path/index.js.map +1 -0
  28. package/lib/cjs/__/env-ci/__/path-key/index.js.map +1 -0
  29. package/lib/cjs/__/env-ci/__/signal-exit/dist/mjs/index.js.map +1 -0
  30. package/lib/cjs/__/env-ci/__/signal-exit/dist/mjs/signals.js.map +1 -0
  31. package/lib/cjs/__/env-ci/__/strip-final-newline/index.js.map +1 -0
  32. package/lib/cjs/__/env-ci/lib/git.js +1 -1
  33. package/lib/cjs/__/json-with-bigint/json-with-bigint.js +419 -60
  34. package/lib/cjs/__/json-with-bigint/json-with-bigint.js.map +1 -1
  35. package/lib/cjs/__/undici/lib/core/request.js +12 -1
  36. package/lib/cjs/__/undici/lib/core/request.js.map +1 -1
  37. package/lib/cjs/__/undici/lib/dispatcher/agent.js +0 -1
  38. package/lib/cjs/__/undici/lib/dispatcher/agent.js.map +1 -1
  39. package/lib/cjs/__/undici/lib/dispatcher/client-h1.js +151 -25
  40. package/lib/cjs/__/undici/lib/dispatcher/client-h1.js.map +1 -1
  41. package/lib/cjs/__/undici/lib/dispatcher/dispatcher-base.js +1 -0
  42. package/lib/cjs/__/undici/lib/dispatcher/dispatcher-base.js.map +1 -1
  43. package/lib/cjs/__/undici/lib/handler/retry-handler.js +34 -0
  44. package/lib/cjs/__/undici/lib/handler/retry-handler.js.map +1 -1
  45. package/lib/cjs/__/undici/lib/web/cookies/parse.js +16 -23
  46. package/lib/cjs/__/undici/lib/web/cookies/parse.js.map +1 -1
  47. package/lib/cjs/__/undici/lib/web/cookies/util.js +79 -9
  48. package/lib/cjs/__/undici/lib/web/cookies/util.js.map +1 -1
  49. package/lib/cjs/__/undici/lib/web/websocket/receiver.js +31 -8
  50. package/lib/cjs/__/undici/lib/web/websocket/receiver.js.map +1 -1
  51. package/lib/cjs/__/undici/lib/web/websocket/websocket.js +4 -1
  52. package/lib/cjs/__/undici/lib/web/websocket/websocket.js.map +1 -1
  53. package/lib/cjs/_virtual/_commonjsHelpers.js +1 -1
  54. package/lib/cjs/_virtual/index10.js +2 -2
  55. package/lib/cjs/_virtual/index11.js +2 -2
  56. package/lib/cjs/_virtual/index13.js +2 -2
  57. package/lib/cjs/_virtual/index9.js +3 -3
  58. package/lib/cjs/env/load.js +1 -1
  59. package/lib/cjs/env/load.js.map +1 -1
  60. package/lib/esm/__/@actions/http-client/lib/index.js +1 -1
  61. package/lib/esm/__/@octokit/core/dist-src/version.js +1 -1
  62. package/lib/esm/__/@octokit/core/dist-src/version.js.map +1 -1
  63. package/lib/esm/__/@octokit/graphql/dist-bundle/index.js +4 -0
  64. package/lib/esm/__/@octokit/graphql/dist-bundle/index.js.map +1 -1
  65. package/lib/esm/__/@octokit/request/dist-bundle/index.js +11 -7
  66. package/lib/esm/__/@octokit/request/dist-bundle/index.js.map +1 -1
  67. package/lib/esm/__/content-type/dist/index.js +181 -0
  68. package/lib/esm/__/content-type/dist/index.js.map +1 -0
  69. package/lib/esm/__/cross-spawn/index.js +1 -1
  70. package/lib/esm/__/{execa → env-ci/__/execa}/index.js +1 -1
  71. package/lib/esm/__/env-ci/__/execa/index.js.map +1 -0
  72. package/lib/esm/__/env-ci/__/execa/lib/command.js.map +1 -0
  73. package/lib/esm/__/env-ci/__/execa/lib/error.js.map +1 -0
  74. package/lib/esm/__/env-ci/__/execa/lib/promise.js.map +1 -0
  75. package/lib/esm/__/env-ci/__/execa/lib/stdio.js.map +1 -0
  76. package/lib/esm/__/{execa → env-ci/__/execa}/lib/stream.js +1 -1
  77. package/lib/esm/__/env-ci/__/execa/lib/stream.js.map +1 -0
  78. package/lib/esm/__/env-ci/__/execa/lib/verbose.js.map +1 -0
  79. package/lib/esm/__/env-ci/__/get-stream/source/array-buffer.js.map +1 -0
  80. package/lib/esm/__/env-ci/__/human-signals/build/src/core.js.map +1 -0
  81. package/lib/esm/__/env-ci/__/human-signals/build/src/main.js.map +1 -0
  82. package/lib/esm/__/env-ci/__/human-signals/build/src/realtime.js.map +1 -0
  83. package/lib/esm/__/env-ci/__/human-signals/build/src/signals.js.map +1 -0
  84. package/lib/esm/__/env-ci/__/is-stream/index.js.map +1 -0
  85. package/lib/esm/__/{npm-run-path → env-ci/__/npm-run-path}/index.js +1 -1
  86. package/lib/esm/__/env-ci/__/npm-run-path/index.js.map +1 -0
  87. package/lib/esm/__/env-ci/__/path-key/index.js.map +1 -0
  88. package/lib/esm/__/env-ci/__/signal-exit/dist/mjs/index.js.map +1 -0
  89. package/lib/esm/__/env-ci/__/signal-exit/dist/mjs/signals.js.map +1 -0
  90. package/lib/esm/__/env-ci/__/strip-final-newline/index.js.map +1 -0
  91. package/lib/esm/__/env-ci/lib/git.js +1 -1
  92. package/lib/esm/__/json-with-bigint/json-with-bigint.js +419 -60
  93. package/lib/esm/__/json-with-bigint/json-with-bigint.js.map +1 -1
  94. package/lib/esm/__/undici/lib/core/request.js +12 -1
  95. package/lib/esm/__/undici/lib/core/request.js.map +1 -1
  96. package/lib/esm/__/undici/lib/dispatcher/agent.js +0 -1
  97. package/lib/esm/__/undici/lib/dispatcher/agent.js.map +1 -1
  98. package/lib/esm/__/undici/lib/dispatcher/client-h1.js +151 -25
  99. package/lib/esm/__/undici/lib/dispatcher/client-h1.js.map +1 -1
  100. package/lib/esm/__/undici/lib/dispatcher/dispatcher-base.js +1 -0
  101. package/lib/esm/__/undici/lib/dispatcher/dispatcher-base.js.map +1 -1
  102. package/lib/esm/__/undici/lib/handler/retry-handler.js +34 -0
  103. package/lib/esm/__/undici/lib/handler/retry-handler.js.map +1 -1
  104. package/lib/esm/__/undici/lib/web/cookies/parse.js +16 -23
  105. package/lib/esm/__/undici/lib/web/cookies/parse.js.map +1 -1
  106. package/lib/esm/__/undici/lib/web/cookies/util.js +79 -9
  107. package/lib/esm/__/undici/lib/web/cookies/util.js.map +1 -1
  108. package/lib/esm/__/undici/lib/web/websocket/receiver.js +31 -8
  109. package/lib/esm/__/undici/lib/web/websocket/receiver.js.map +1 -1
  110. package/lib/esm/__/undici/lib/web/websocket/websocket.js +4 -1
  111. package/lib/esm/__/undici/lib/web/websocket/websocket.js.map +1 -1
  112. package/lib/esm/_virtual/_commonjsHelpers.js +1 -1
  113. package/lib/esm/_virtual/index10.js +2 -2
  114. package/lib/esm/_virtual/index11.js +2 -2
  115. package/lib/esm/_virtual/index13.js +2 -2
  116. package/lib/esm/_virtual/index9.js +3 -3
  117. package/lib/esm/env/load.js +1 -1
  118. package/lib/esm/env/load.js.map +1 -1
  119. package/package.json +12 -12
  120. package/lib/cjs/__/execa/index.js.map +0 -1
  121. package/lib/cjs/__/execa/lib/command.js.map +0 -1
  122. package/lib/cjs/__/execa/lib/error.js.map +0 -1
  123. package/lib/cjs/__/execa/lib/promise.js.map +0 -1
  124. package/lib/cjs/__/execa/lib/stdio.js.map +0 -1
  125. package/lib/cjs/__/execa/lib/stream.js.map +0 -1
  126. package/lib/cjs/__/execa/lib/verbose.js.map +0 -1
  127. package/lib/cjs/__/fast-content-type-parse/index.js +0 -182
  128. package/lib/cjs/__/fast-content-type-parse/index.js.map +0 -1
  129. package/lib/cjs/__/get-stream/source/array-buffer.js.map +0 -1
  130. package/lib/cjs/__/human-signals/build/src/core.js.map +0 -1
  131. package/lib/cjs/__/human-signals/build/src/main.js.map +0 -1
  132. package/lib/cjs/__/human-signals/build/src/realtime.js.map +0 -1
  133. package/lib/cjs/__/human-signals/build/src/signals.js.map +0 -1
  134. package/lib/cjs/__/is-stream/index.js.map +0 -1
  135. package/lib/cjs/__/npm-run-path/__/path-key/index.js.map +0 -1
  136. package/lib/cjs/__/npm-run-path/index.js.map +0 -1
  137. package/lib/cjs/__/signal-exit/dist/mjs/index.js.map +0 -1
  138. package/lib/cjs/__/signal-exit/dist/mjs/signals.js.map +0 -1
  139. package/lib/cjs/__/strip-final-newline/index.js.map +0 -1
  140. package/lib/esm/__/execa/index.js.map +0 -1
  141. package/lib/esm/__/execa/lib/command.js.map +0 -1
  142. package/lib/esm/__/execa/lib/error.js.map +0 -1
  143. package/lib/esm/__/execa/lib/promise.js.map +0 -1
  144. package/lib/esm/__/execa/lib/stdio.js.map +0 -1
  145. package/lib/esm/__/execa/lib/stream.js.map +0 -1
  146. package/lib/esm/__/execa/lib/verbose.js.map +0 -1
  147. package/lib/esm/__/fast-content-type-parse/index.js +0 -180
  148. package/lib/esm/__/fast-content-type-parse/index.js.map +0 -1
  149. package/lib/esm/__/get-stream/source/array-buffer.js.map +0 -1
  150. package/lib/esm/__/human-signals/build/src/core.js.map +0 -1
  151. package/lib/esm/__/human-signals/build/src/main.js.map +0 -1
  152. package/lib/esm/__/human-signals/build/src/realtime.js.map +0 -1
  153. package/lib/esm/__/human-signals/build/src/signals.js.map +0 -1
  154. package/lib/esm/__/is-stream/index.js.map +0 -1
  155. package/lib/esm/__/npm-run-path/__/path-key/index.js.map +0 -1
  156. package/lib/esm/__/npm-run-path/index.js.map +0 -1
  157. package/lib/esm/__/signal-exit/dist/mjs/index.js.map +0 -1
  158. package/lib/esm/__/signal-exit/dist/mjs/signals.js.map +0 -1
  159. package/lib/esm/__/strip-final-newline/index.js.map +0 -1
  160. /package/lib/cjs/__/{execa → env-ci/__/execa}/lib/command.js +0 -0
  161. /package/lib/cjs/__/{execa → env-ci/__/execa}/lib/error.js +0 -0
  162. /package/lib/cjs/__/{execa → env-ci/__/execa}/lib/promise.js +0 -0
  163. /package/lib/cjs/__/{execa → env-ci/__/execa}/lib/stdio.js +0 -0
  164. /package/lib/cjs/__/{execa → env-ci/__/execa}/lib/verbose.js +0 -0
  165. /package/lib/cjs/__/{get-stream → env-ci/__/get-stream}/source/array-buffer.js +0 -0
  166. /package/lib/cjs/__/{human-signals → env-ci/__/human-signals}/build/src/core.js +0 -0
  167. /package/lib/cjs/__/{human-signals → env-ci/__/human-signals}/build/src/main.js +0 -0
  168. /package/lib/cjs/__/{human-signals → env-ci/__/human-signals}/build/src/realtime.js +0 -0
  169. /package/lib/cjs/__/{human-signals → env-ci/__/human-signals}/build/src/signals.js +0 -0
  170. /package/lib/cjs/__/{is-stream → env-ci/__/is-stream}/index.js +0 -0
  171. /package/lib/cjs/__/{npm-run-path → env-ci}/__/path-key/index.js +0 -0
  172. /package/lib/cjs/__/{signal-exit → env-ci/__/signal-exit}/dist/mjs/index.js +0 -0
  173. /package/lib/cjs/__/{signal-exit → env-ci/__/signal-exit}/dist/mjs/signals.js +0 -0
  174. /package/lib/cjs/__/{strip-final-newline → env-ci/__/strip-final-newline}/index.js +0 -0
  175. /package/lib/esm/__/{execa → env-ci/__/execa}/lib/command.js +0 -0
  176. /package/lib/esm/__/{execa → env-ci/__/execa}/lib/error.js +0 -0
  177. /package/lib/esm/__/{execa → env-ci/__/execa}/lib/promise.js +0 -0
  178. /package/lib/esm/__/{execa → env-ci/__/execa}/lib/stdio.js +0 -0
  179. /package/lib/esm/__/{execa → env-ci/__/execa}/lib/verbose.js +0 -0
  180. /package/lib/esm/__/{get-stream → env-ci/__/get-stream}/source/array-buffer.js +0 -0
  181. /package/lib/esm/__/{human-signals → env-ci/__/human-signals}/build/src/core.js +0 -0
  182. /package/lib/esm/__/{human-signals → env-ci/__/human-signals}/build/src/main.js +0 -0
  183. /package/lib/esm/__/{human-signals → env-ci/__/human-signals}/build/src/realtime.js +0 -0
  184. /package/lib/esm/__/{human-signals → env-ci/__/human-signals}/build/src/signals.js +0 -0
  185. /package/lib/esm/__/{is-stream → env-ci/__/is-stream}/index.js +0 -0
  186. /package/lib/esm/__/{npm-run-path → env-ci}/__/path-key/index.js +0 -0
  187. /package/lib/esm/__/{signal-exit → env-ci/__/signal-exit}/dist/mjs/index.js +0 -0
  188. /package/lib/esm/__/{signal-exit → env-ci/__/signal-exit}/dist/mjs/signals.js +0 -0
  189. /package/lib/esm/__/{strip-final-newline → env-ci/__/strip-final-newline}/index.js +0 -0
@@ -361,7 +361,13 @@ function requireRequest () {
361
361
  } else if (typeof val[i] === 'object') {
362
362
  throw new InvalidArgumentError(`invalid ${key} header`)
363
363
  } else {
364
- arr.push(`${val[i]}`);
364
+ // Coerce primitives (and reject unsafe coercions such as functions
365
+ // with a crafted toString/Symbol.toPrimitive).
366
+ const str = `${val[i]}`;
367
+ if (!isValidHeaderValue(str)) {
368
+ throw new InvalidArgumentError(`invalid ${key} header`)
369
+ }
370
+ arr.push(str);
365
371
  }
366
372
  }
367
373
  val = arr;
@@ -372,7 +378,12 @@ function requireRequest () {
372
378
  } else if (val === null) {
373
379
  val = '';
374
380
  } else {
381
+ // Coerce primitives (and reject unsafe coercions such as functions
382
+ // with a crafted toString/Symbol.toPrimitive).
375
383
  val = `${val}`;
384
+ if (!isValidHeaderValue(val)) {
385
+ throw new InvalidArgumentError(`invalid ${key} header`)
386
+ }
376
387
  }
377
388
 
378
389
  if (headerName === 'host') {
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sources":["../../../../../../../../node_modules/undici/lib/core/request.js"],"sourcesContent":["'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('node:assert')\nconst {\n isValidHTTPToken,\n isValidHeaderValue,\n isStream,\n destroy,\n isBuffer,\n isFormDataLike,\n isIterable,\n isBlobLike,\n buildURL,\n validateHandler,\n getServerName,\n normalizedMethodRecords\n} = require('./util')\nconst { channels } = require('./diagnostics.js')\nconst { headerNameLowerCasedRecord } = require('./constants')\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError,\n expectContinue,\n servername\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.test(path)) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (normalizedMethodRecords[method] === undefined && !isValidHTTPToken(method)) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (upgrade && !isValidHeaderValue(upgrade)) {\n throw new InvalidArgumentError('invalid upgrade header')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n if (expectContinue != null && typeof expectContinue !== 'boolean') {\n throw new InvalidArgumentError('invalid expectContinue')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n this.abort = null\n\n if (body == null) {\n this.body = null\n } else if (isStream(body)) {\n this.body = body\n\n const rState = this.body._readableState\n if (!rState || !rState.autoDestroy) {\n this.endHandler = function autoDestroy () {\n destroy(this)\n }\n this.body.on('end', this.endHandler)\n }\n\n this.errorHandler = err => {\n if (this.abort) {\n this.abort(err)\n } else {\n this.error = err\n }\n }\n this.body.on('error', this.errorHandler)\n } else if (isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (isFormDataLike(body) || isIterable(body) || isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = []\n\n // Only for H2\n this.expectContinue = expectContinue != null ? expectContinue : false\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n if (headers[Symbol.iterator]) {\n for (const header of headers) {\n if (!Array.isArray(header) || header.length !== 2) {\n throw new InvalidArgumentError('headers must be in key-value pair format')\n }\n processHeader(this, header[0], header[1])\n }\n } else {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; ++i) {\n processHeader(this, keys[i], headers[keys[i]])\n }\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n validateHandler(handler, method, upgrade)\n\n this.servername = servername || getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n return this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n\n if (this[kHandler].onRequestSent) {\n try {\n return this[kHandler].onRequestSent()\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (this.error) {\n abort(this.error)\n } else {\n this.abort = abort\n return this[kHandler].onConnect(abort)\n }\n }\n\n onResponseStarted () {\n return this[kHandler].onResponseStarted?.()\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n try {\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n } catch (err) {\n this.abort(err)\n }\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n try {\n return this[kHandler].onData(chunk)\n } catch (err) {\n this.abort(err)\n return false\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n this.onFinally()\n\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n\n try {\n return this[kHandler].onComplete(trailers)\n } catch (err) {\n // TODO (fix): This might be a bad idea?\n this.onError(err)\n }\n }\n\n onError (error) {\n this.onFinally()\n\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n\n return this[kHandler].onError(error)\n }\n\n onFinally () {\n if (this.errorHandler) {\n this.body.off('error', this.errorHandler)\n this.errorHandler = null\n }\n\n if (this.endHandler) {\n this.body.off('end', this.endHandler)\n this.endHandler = null\n }\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n let headerName = headerNameLowerCasedRecord[key]\n\n if (headerName === undefined) {\n headerName = key.toLowerCase()\n if (headerNameLowerCasedRecord[headerName] === undefined && !isValidHTTPToken(headerName)) {\n throw new InvalidArgumentError('invalid header key')\n }\n }\n\n if (Array.isArray(val)) {\n const arr = []\n for (let i = 0; i < val.length; i++) {\n if (typeof val[i] === 'string') {\n if (!isValidHeaderValue(val[i])) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n arr.push(val[i])\n } else if (val[i] === null) {\n arr.push('')\n } else if (typeof val[i] === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else {\n arr.push(`${val[i]}`)\n }\n }\n val = arr\n } else if (typeof val === 'string') {\n if (!isValidHeaderValue(val)) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n } else if (val === null) {\n val = ''\n } else {\n val = `${val}`\n }\n\n if (headerName === 'host') {\n if (request.host !== null) {\n throw new InvalidArgumentError('duplicate host header')\n }\n if (typeof val !== 'string') {\n throw new InvalidArgumentError('invalid host header')\n }\n // Consumed by Client\n request.host = val\n } else if (headerName === 'content-length') {\n if (request.contentLength !== null) {\n throw new InvalidArgumentError('duplicate content-length header')\n }\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (request.contentType === null && headerName === 'content-type') {\n request.contentType = val\n request.headers.push(key, val)\n } else if (headerName === 'transfer-encoding' || headerName === 'keep-alive' || headerName === 'upgrade') {\n throw new InvalidArgumentError(`invalid ${headerName} header`)\n } else if (headerName === 'connection') {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n }\n\n if (value === 'close') {\n request.reset = true\n }\n } else if (headerName === 'expect') {\n throw new NotSupportedError('expect header not supported')\n } else {\n request.headers.push(key, val)\n }\n}\n\nmodule.exports = Request\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4"],"mappings":";;;;;;;;;;;;;CAEA,MAAM;AACN,GAAE,oBAAoB;GACpB;AACF,EAAC,GAAGA,aAAA;AACJ,CAAA,MAAM,MAAM,GAAGC;CACf,MAAM;AACN,GAAE,gBAAgB;AAClB,GAAE,kBAAkB;AACpB,GAAE,QAAQ;AACV,GAAE,OAAO;AACT,GAAE,QAAQ;AACV,GAAE,cAAc;AAChB,GAAE,UAAU;AACZ,GAAE,UAAU;AACZ,GAAE,QAAQ;AACV,GAAE,eAAe;AACjB,GAAE,aAAa;GACb;AACF,EAAC,GAAGC,WAAA;CACJ,MAAM,EAAE,QAAQ,EAAE,GAAGC,kBAAA;CACrB,MAAM,EAAE,0BAA0B,EAAE,GAAGC,gBAAA;;AAEvC;AACA,CAAA,MAAM,gBAAgB,GAAG;;AAEzB,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;;AAEjC,CAAA,MAAM,OAAO,CAAC;AACd,GAAE,WAAW,CAAC,CAAC,MAAM,EAAE;AACvB,KAAI,IAAI;AACR,KAAI,MAAM;AACV,KAAI,IAAI;AACR,KAAI,OAAO;AACX,KAAI,KAAK;AACT,KAAI,UAAU;AACd,KAAI,QAAQ;AACZ,KAAI,OAAO;AACX,KAAI,cAAc;AAClB,KAAI,WAAW;AACf,KAAI,KAAK;AACT,KAAI,YAAY;AAChB,KAAI,cAAc;KACd;IACD,EAAE,OAAO,EAAE;AACd,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,OAAM,MAAM,IAAI,oBAAoB,CAAC,uBAAuB;AAC5D,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;AACrB,OAAM,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAClE,OAAM,MAAM,KAAK;OACX;AACN,OAAM,MAAM,IAAI,oBAAoB,CAAC,oDAAoD;KACzF,CAAK,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC5C,OAAM,MAAM,IAAI,oBAAoB,CAAC,sBAAsB;AAC3D,KAAA;;AAEA,KAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACpC,OAAM,MAAM,IAAI,oBAAoB,CAAC,yBAAyB;AAC9D,KAAA,CAAK,MAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;AAC3F,OAAM,MAAM,IAAI,oBAAoB,CAAC,wBAAwB;AAC7D,KAAA;;AAEA,KAAI,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAChD,OAAM,MAAM,IAAI,oBAAoB,CAAC,0BAA0B;AAC/D,KAAA;;KAEI,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;AACjD,OAAM,MAAM,IAAI,oBAAoB,CAAC,wBAAwB;AAC7D,KAAA;;AAEA,KAAI,IAAI,cAAc,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE;AAC5F,OAAM,MAAM,IAAI,oBAAoB,CAAC,wBAAwB;AAC7D,KAAA;;AAEA,KAAI,IAAI,WAAW,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE;AACnF,OAAM,MAAM,IAAI,oBAAoB,CAAC,qBAAqB;AAC1D,KAAA;;KAEI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;AACrD,OAAM,MAAM,IAAI,oBAAoB,CAAC,eAAe;AACpD,KAAA;;KAEI,IAAI,cAAc,IAAI,IAAI,IAAI,OAAO,cAAc,KAAK,SAAS,EAAE;AACvE,OAAM,MAAM,IAAI,oBAAoB,CAAC,wBAAwB;AAC7D,KAAA;;KAEI,IAAI,CAAC,cAAc,GAAG;;KAEtB,IAAI,CAAC,WAAW,GAAG;;AAEvB,KAAI,IAAI,CAAC,YAAY,GAAG,YAAY,KAAK;;KAErC,IAAI,CAAC,MAAM,GAAG;;KAEd,IAAI,CAAC,KAAK,GAAG;;AAEjB,KAAI,IAAI,IAAI,IAAI,IAAI,EAAE;OAChB,IAAI,CAAC,IAAI,GAAG;AAClB,KAAA,CAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;OACzB,IAAI,CAAC,IAAI,GAAG;;AAElB,OAAM,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;OACzB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC1C,SAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,WAAW,IAAI;WACxC,OAAO,CAAC,IAAI;AACtB,SAAA;SACQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU;AAC3C,OAAA;;AAEA,OAAM,IAAI,CAAC,YAAY,GAAG,GAAG,IAAI;AACjC,SAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,WAAU,IAAI,CAAC,KAAK,CAAC,GAAG;AACxB,SAAA,CAAS,MAAM;WACL,IAAI,CAAC,KAAK,GAAG;AACvB,SAAA;AACA,OAAA;OACM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY;AAC7C,KAAA,CAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;OACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG;KAC3C,CAAK,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;OACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG;AACxG,KAAA,CAAK,MAAM,IAAI,IAAI,YAAY,WAAW,EAAE;AAC5C,OAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AACxD,KAAA,CAAK,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACzC,OAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AACpD,KAAA,CAAK,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;OACvE,IAAI,CAAC,IAAI,GAAG;AAClB,KAAA,CAAK,MAAM;AACX,OAAM,MAAM,IAAI,oBAAoB,CAAC,uFAAuF;AAC5H,KAAA;;KAEI,IAAI,CAAC,SAAS,GAAG;;KAEjB,IAAI,CAAC,OAAO,GAAG;;AAEnB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;;AAE9B,KAAI,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG;;KAE5C,IAAI,CAAC,MAAM,GAAG;;AAElB,KAAI,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI;AACpC,SAAQ,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK;SAChC;;KAEJ,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,GAAG,KAAK,GAAG;;KAE3C,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG;;KAEpC,IAAI,CAAC,IAAI,GAAG;;KAEZ,IAAI,CAAC,aAAa,GAAG;;KAErB,IAAI,CAAC,WAAW,GAAG;;KAEnB,IAAI,CAAC,OAAO,GAAG;;AAEnB;KACI,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,GAAG,cAAc,GAAG;;AAEpE,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;OAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACpC,SAAQ,MAAM,IAAI,oBAAoB,CAAC,4BAA4B;AACnE,OAAA;AACA,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAClD,SAAQ,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,OAAA;KACA,CAAK,MAAM,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACvD,OAAM,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AACpC,SAAQ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACtC,WAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7D,aAAY,MAAM,IAAI,oBAAoB,CAAC,0CAA0C;AACrF,WAAA;AACA,WAAU,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAClD,SAAA;AACA,OAAA,CAAO,MAAM;AACb,SAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO;AACxC,SAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC9C,WAAU,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,SAAA;AACA,OAAA;AACA,KAAA,CAAK,MAAM,IAAI,OAAO,IAAI,IAAI,EAAE;AAChC,OAAM,MAAM,IAAI,oBAAoB,CAAC,uCAAuC;AAC5E,KAAA;;AAEA,KAAI,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO;;KAExC,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI;;AAE3D,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG;;AAErB,KAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE;OAClC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAC/C,KAAA;AACA,GAAA;;AAEA,GAAE,UAAU,CAAC,CAAC,KAAK,EAAE;AACrB,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE;AACnC,OAAM,IAAI;SACF,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK;OAC9C,CAAO,CAAC,OAAO,GAAG,EAAE;AACpB,SAAQ,IAAI,CAAC,KAAK,CAAC,GAAG;AACtB,OAAA;AACA,KAAA;AACA,GAAA;;GAEE,aAAa,CAAC,GAAG;AACnB,KAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE;OACpC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACjD,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE;AACtC,OAAM,IAAI;AACV,SAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa;OAC3C,CAAO,CAAC,OAAO,GAAG,EAAE;AACpB,SAAQ,IAAI,CAAC,KAAK,CAAC,GAAG;AACtB,OAAA;AACA,KAAA;AACA,GAAA;;AAEA,GAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO;AACxB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS;;AAE1B,KAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,OAAM,KAAK,CAAC,IAAI,CAAC,KAAK;AACtB,KAAA,CAAK,MAAM;OACL,IAAI,CAAC,KAAK,GAAG;OACb,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK;AAC3C,KAAA;AACA,GAAA;;GAEE,iBAAiB,CAAC,GAAG;AACvB,KAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,iBAAiB;AAC3C,GAAA;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE;AACtD,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO;AACxB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS;;AAE1B,KAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE;OACnC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;AAC/F,KAAA;;AAEA,KAAI,IAAI;AACR,OAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU;KAC7E,CAAK,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,IAAI,CAAC,KAAK,CAAC,GAAG;AACpB,KAAA;AACA,GAAA;;AAEA,GAAE,MAAM,CAAC,CAAC,KAAK,EAAE;AACjB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO;AACxB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS;;AAE1B,KAAI,IAAI;OACF,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK;KACxC,CAAK,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,IAAI,CAAC,KAAK,CAAC,GAAG;AACpB,OAAM,OAAO;AACb,KAAA;AACA,GAAA;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE;AAC1C,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO;AACxB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS;;AAE1B,KAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM;AAC/D,GAAA;;AAEA,GAAE,UAAU,CAAC,CAAC,QAAQ,EAAE;KACpB,IAAI,CAAC,SAAS;;AAElB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO;;KAEpB,IAAI,CAAC,SAAS,GAAG;AACrB,KAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE;AAC1C,OAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC3D,KAAA;;AAEA,KAAI,IAAI;OACF,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ;KAC/C,CAAK,CAAC,OAAO,GAAG,EAAE;AAClB;AACA,OAAM,IAAI,CAAC,OAAO,CAAC,GAAG;AACtB,KAAA;AACA,GAAA;;AAEA,GAAE,OAAO,CAAC,CAAC,KAAK,EAAE;KACd,IAAI,CAAC,SAAS;;AAElB,KAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE;AACvC,OAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;AACrD,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,OAAO,EAAE;OAChB;AACN,KAAA;KACI,IAAI,CAAC,OAAO,GAAG;;KAEf,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK;AACvC,GAAA;;GAEE,SAAS,CAAC,GAAG;AACf,KAAI,IAAI,IAAI,CAAC,YAAY,EAAE;OACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY;OACxC,IAAI,CAAC,YAAY,GAAG;AAC1B,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,UAAU,EAAE;OACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU;OACpC,IAAI,CAAC,UAAU,GAAG;AACxB,KAAA;AACA,GAAA;;AAEA,GAAE,SAAS,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE;AACzB,KAAI,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;AAClC,KAAI,OAAO;AACX,GAAA;AACA;;AAEA,CAAA,SAAS,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE;AAC3C,GAAE,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;KAC3D,MAAM,IAAI,oBAAoB,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;AAC1D,GAAA,CAAG,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE;KAC5B;AACJ,GAAA;;AAEA,GAAE,IAAI,UAAU,GAAG,0BAA0B,CAAC,GAAG;;AAEjD,GAAE,IAAI,UAAU,KAAK,SAAS,EAAE;AAChC,KAAI,UAAU,GAAG,GAAG,CAAC,WAAW;AAChC,KAAI,IAAI,0BAA0B,CAAC,UAAU,CAAC,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;AAC/F,OAAM,MAAM,IAAI,oBAAoB,CAAC,oBAAoB;AACzD,KAAA;AACA,GAAA;;AAEA,GAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;KACtB,MAAM,GAAG,GAAG;AAChB,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;OACnC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;SAC9B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;WAC/B,MAAM,IAAI,oBAAoB,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;AAChE,SAAA;AACA,SAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;OACvB,CAAO,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AAClC,SAAQ,GAAG,CAAC,IAAI,CAAC,EAAE;OACnB,CAAO,MAAM,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;SACrC,MAAM,IAAI,oBAAoB,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;AAC9D,OAAA,CAAO,MAAM;SACL,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,OAAA;AACA,KAAA;AACA,KAAI,GAAG,GAAG;AACV,GAAA,CAAG,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACtC,KAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE;OAC5B,MAAM,IAAI,oBAAoB,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;AAC5D,KAAA;AACA,GAAA,CAAG,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;AAC3B,KAAI,GAAG,GAAG;AACV,GAAA,CAAG,MAAM;AACT,KAAI,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC;AACjB,GAAA;;AAEA,GAAE,IAAI,UAAU,KAAK,MAAM,EAAE;AAC7B,KAAI,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE;AAC/B,OAAM,MAAM,IAAI,oBAAoB,CAAC,uBAAuB;AAC5D,KAAA;AACA,KAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,OAAM,MAAM,IAAI,oBAAoB,CAAC,qBAAqB;AAC1D,KAAA;AACA;KACI,OAAO,CAAC,IAAI,GAAG;AACnB,GAAA,CAAG,MAAM,IAAI,UAAU,KAAK,gBAAgB,EAAE;AAC9C,KAAI,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,EAAE;AACxC,OAAM,MAAM,IAAI,oBAAoB,CAAC,iCAAiC;AACtE,KAAA;KACI,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE;KACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACjD,OAAM,MAAM,IAAI,oBAAoB,CAAC,+BAA+B;AACpE,KAAA;GACA,CAAG,MAAM,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,UAAU,KAAK,cAAc,EAAE;KACxE,OAAO,CAAC,WAAW,GAAG;KACtB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG;AACjC,GAAA,CAAG,MAAM,IAAI,UAAU,KAAK,mBAAmB,IAAI,UAAU,KAAK,YAAY,IAAI,UAAU,KAAK,SAAS,EAAE;KACxG,MAAM,IAAI,oBAAoB,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC;AACjE,GAAA,CAAG,MAAM,IAAI,UAAU,KAAK,YAAY,EAAE;AAC1C,KAAI,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG;KAC5D,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,YAAY,EAAE;AACrD,OAAM,MAAM,IAAI,oBAAoB,CAAC,2BAA2B;AAChE,KAAA;;AAEA,KAAI,IAAI,KAAK,KAAK,OAAO,EAAE;OACrB,OAAO,CAAC,KAAK,GAAG;AACtB,KAAA;AACA,GAAA,CAAG,MAAM,IAAI,UAAU,KAAK,QAAQ,EAAE;AACtC,KAAI,MAAM,IAAI,iBAAiB,CAAC,6BAA6B;AAC7D,GAAA,CAAG,MAAM;KACL,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG;AACjC,GAAA;AACA,CAAA;;AAEA,CAAA,OAAc,GAAG;;;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"request.js","sources":["../../../../../../../../node_modules/undici/lib/core/request.js"],"sourcesContent":["'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('node:assert')\nconst {\n isValidHTTPToken,\n isValidHeaderValue,\n isStream,\n destroy,\n isBuffer,\n isFormDataLike,\n isIterable,\n isBlobLike,\n buildURL,\n validateHandler,\n getServerName,\n normalizedMethodRecords\n} = require('./util')\nconst { channels } = require('./diagnostics.js')\nconst { headerNameLowerCasedRecord } = require('./constants')\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError,\n expectContinue,\n servername\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.test(path)) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (normalizedMethodRecords[method] === undefined && !isValidHTTPToken(method)) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (upgrade && !isValidHeaderValue(upgrade)) {\n throw new InvalidArgumentError('invalid upgrade header')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n if (expectContinue != null && typeof expectContinue !== 'boolean') {\n throw new InvalidArgumentError('invalid expectContinue')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n this.abort = null\n\n if (body == null) {\n this.body = null\n } else if (isStream(body)) {\n this.body = body\n\n const rState = this.body._readableState\n if (!rState || !rState.autoDestroy) {\n this.endHandler = function autoDestroy () {\n destroy(this)\n }\n this.body.on('end', this.endHandler)\n }\n\n this.errorHandler = err => {\n if (this.abort) {\n this.abort(err)\n } else {\n this.error = err\n }\n }\n this.body.on('error', this.errorHandler)\n } else if (isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (isFormDataLike(body) || isIterable(body) || isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = []\n\n // Only for H2\n this.expectContinue = expectContinue != null ? expectContinue : false\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n if (headers[Symbol.iterator]) {\n for (const header of headers) {\n if (!Array.isArray(header) || header.length !== 2) {\n throw new InvalidArgumentError('headers must be in key-value pair format')\n }\n processHeader(this, header[0], header[1])\n }\n } else {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; ++i) {\n processHeader(this, keys[i], headers[keys[i]])\n }\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n validateHandler(handler, method, upgrade)\n\n this.servername = servername || getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n return this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n\n if (this[kHandler].onRequestSent) {\n try {\n return this[kHandler].onRequestSent()\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (this.error) {\n abort(this.error)\n } else {\n this.abort = abort\n return this[kHandler].onConnect(abort)\n }\n }\n\n onResponseStarted () {\n return this[kHandler].onResponseStarted?.()\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n try {\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n } catch (err) {\n this.abort(err)\n }\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n try {\n return this[kHandler].onData(chunk)\n } catch (err) {\n this.abort(err)\n return false\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n this.onFinally()\n\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n\n try {\n return this[kHandler].onComplete(trailers)\n } catch (err) {\n // TODO (fix): This might be a bad idea?\n this.onError(err)\n }\n }\n\n onError (error) {\n this.onFinally()\n\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n\n return this[kHandler].onError(error)\n }\n\n onFinally () {\n if (this.errorHandler) {\n this.body.off('error', this.errorHandler)\n this.errorHandler = null\n }\n\n if (this.endHandler) {\n this.body.off('end', this.endHandler)\n this.endHandler = null\n }\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n let headerName = headerNameLowerCasedRecord[key]\n\n if (headerName === undefined) {\n headerName = key.toLowerCase()\n if (headerNameLowerCasedRecord[headerName] === undefined && !isValidHTTPToken(headerName)) {\n throw new InvalidArgumentError('invalid header key')\n }\n }\n\n if (Array.isArray(val)) {\n const arr = []\n for (let i = 0; i < val.length; i++) {\n if (typeof val[i] === 'string') {\n if (!isValidHeaderValue(val[i])) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n arr.push(val[i])\n } else if (val[i] === null) {\n arr.push('')\n } else if (typeof val[i] === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else {\n // Coerce primitives (and reject unsafe coercions such as functions\n // with a crafted toString/Symbol.toPrimitive).\n const str = `${val[i]}`\n if (!isValidHeaderValue(str)) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n arr.push(str)\n }\n }\n val = arr\n } else if (typeof val === 'string') {\n if (!isValidHeaderValue(val)) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n } else if (val === null) {\n val = ''\n } else {\n // Coerce primitives (and reject unsafe coercions such as functions\n // with a crafted toString/Symbol.toPrimitive).\n val = `${val}`\n if (!isValidHeaderValue(val)) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n }\n\n if (headerName === 'host') {\n if (request.host !== null) {\n throw new InvalidArgumentError('duplicate host header')\n }\n if (typeof val !== 'string') {\n throw new InvalidArgumentError('invalid host header')\n }\n // Consumed by Client\n request.host = val\n } else if (headerName === 'content-length') {\n if (request.contentLength !== null) {\n throw new InvalidArgumentError('duplicate content-length header')\n }\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (request.contentType === null && headerName === 'content-type') {\n request.contentType = val\n request.headers.push(key, val)\n } else if (headerName === 'transfer-encoding' || headerName === 'keep-alive' || headerName === 'upgrade') {\n throw new InvalidArgumentError(`invalid ${headerName} header`)\n } else if (headerName === 'connection') {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n }\n\n if (value === 'close') {\n request.reset = true\n }\n } else if (headerName === 'expect') {\n throw new NotSupportedError('expect header not supported')\n } else {\n request.headers.push(key, val)\n }\n}\n\nmodule.exports = Request\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4"],"mappings":"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","x_google_ignoreList":[0]}
@@ -37,7 +37,6 @@ function requireAgent () {
37
37
 
38
38
  class Agent extends DispatcherBase {
39
39
  constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {
40
-
41
40
  if (typeof factory !== 'function') {
42
41
  throw new InvalidArgumentError('factory must be a function.')
43
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sources":["../../../../../../../../node_modules/undici/lib/dispatcher/agent.js"],"sourcesContent":["'use strict'\n\nconst { InvalidArgumentError } = require('../core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('../core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('../core/util')\nconst createRedirectInterceptor = require('../interceptor/redirect-interceptor')\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n super(options)\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n\n this[kOnDrain] = (origin, targets) => {\n this.emit('drain', origin, [this, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n this.emit('connect', origin, [this, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n this.emit('disconnect', origin, [this, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n this.emit('connectionError', origin, [this, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const client of this[kClients].values()) {\n ret += client[kRunning]\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n let dispatcher = this[kClients].get(key)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n // This introduces a tiny memory leak, as dispatchers are never removed from the map.\n // TODO(mcollina): remove te timer when the client/pool do not have any more\n // active connections.\n this[kClients].set(key, dispatcher)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const client of this[kClients].values()) {\n closePromises.push(client.close())\n }\n this[kClients].clear()\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const client of this[kClients].values()) {\n destroyPromises.push(client.destroy(err))\n }\n this[kClients].clear()\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"agent.js","sources":["../../../../../../../../node_modules/undici/lib/dispatcher/agent.js"],"sourcesContent":["'use strict'\n\nconst { InvalidArgumentError } = require('../core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('../core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('../core/util')\nconst createRedirectInterceptor = require('../interceptor/redirect-interceptor')\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n super(options)\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n\n this[kOnDrain] = (origin, targets) => {\n this.emit('drain', origin, [this, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n this.emit('connect', origin, [this, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n this.emit('disconnect', origin, [this, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n this.emit('connectionError', origin, [this, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const client of this[kClients].values()) {\n ret += client[kRunning]\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n let dispatcher = this[kClients].get(key)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n // This introduces a tiny memory leak, as dispatchers are never removed from the map.\n // TODO(mcollina): remove te timer when the client/pool do not have any more\n // active connections.\n this[kClients].set(key, dispatcher)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const client of this[kClients].values()) {\n closePromises.push(client.close())\n }\n this[kClients].clear()\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const client of this[kClients].values()) {\n destroyPromises.push(client.destroy(err))\n }\n this[kClients].clear()\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6"],"mappings":"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","x_google_ignoreList":[0]}
@@ -26,6 +26,7 @@ function requireClientH1 () {
26
26
  RequestContentLengthMismatchError,
27
27
  ResponseContentLengthMismatchError,
28
28
  RequestAbortedError,
29
+ InvalidArgumentError,
29
30
  HeadersTimeoutError,
30
31
  HeadersOverflowError,
31
32
  SocketError,
@@ -73,6 +74,9 @@ function requireClientH1 () {
73
74
  const FastBuffer = Buffer[Symbol.species];
74
75
  const addListener = util.addListener;
75
76
  const removeAllListeners = util.removeAllListeners;
77
+ const kIdleSocketValidation = Symbol('kIdleSocketValidation');
78
+ const kIdleSocketValidationTimeout = Symbol('kIdleSocketValidationTimeout');
79
+ const kSocketUsed = Symbol('kSocketUsed');
76
80
 
77
81
  let extractBody;
78
82
 
@@ -295,29 +299,71 @@ function requireClientH1 () {
295
299
 
296
300
  const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr;
297
301
 
298
- if (ret === constants.ERROR.PAUSED_UPGRADE) {
299
- this.onUpgrade(data.slice(offset));
300
- } else if (ret === constants.ERROR.PAUSED) {
301
- this.paused = true;
302
- socket.unshift(data.slice(offset));
303
- } else if (ret !== constants.ERROR.OK) {
304
- const ptr = llhttp.llhttp_get_error_reason(this.ptr);
305
- let message = '';
306
- /* istanbul ignore else: difficult to make a test case for */
307
- if (ptr) {
308
- const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0);
309
- message =
310
- 'Response does not match the HTTP/1.1 protocol (' +
311
- Buffer.from(llhttp.memory.buffer, ptr, len).toString() +
312
- ')';
302
+ if (ret !== constants.ERROR.OK) {
303
+ const body = data.subarray(offset);
304
+
305
+ if (ret === constants.ERROR.PAUSED_UPGRADE) {
306
+ this.onUpgrade(body);
307
+ } else if (ret === constants.ERROR.PAUSED) {
308
+ this.paused = true;
309
+ socket.unshift(body);
310
+ } else {
311
+ throw this.createError(ret, body)
313
312
  }
314
- throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))
315
313
  }
316
314
  } catch (err) {
317
315
  util.destroy(socket, err);
318
316
  }
319
317
  }
320
318
 
319
+ finish () {
320
+ assert(currentParser === null);
321
+ assert(this.ptr != null);
322
+ assert(!this.paused);
323
+
324
+ const { llhttp } = this;
325
+
326
+ let ret;
327
+
328
+ try {
329
+ currentParser = this;
330
+ ret = llhttp.llhttp_finish(this.ptr);
331
+ } finally {
332
+ currentParser = null;
333
+ }
334
+
335
+ if (ret === constants.ERROR.OK) {
336
+ return null
337
+ }
338
+
339
+ if (ret === constants.ERROR.PAUSED || ret === constants.ERROR.PAUSED_UPGRADE) {
340
+ this.paused = true;
341
+ return null
342
+ }
343
+
344
+ return this.createError(ret, EMPTY_BUF)
345
+ }
346
+
347
+ createError (ret, data) {
348
+ const { llhttp, contentLength, bytesRead } = this;
349
+
350
+ if (contentLength && bytesRead !== parseInt(contentLength, 10)) {
351
+ return new ResponseContentLengthMismatchError()
352
+ }
353
+
354
+ const ptr = llhttp.llhttp_get_error_reason(this.ptr);
355
+ let message = '';
356
+ if (ptr) {
357
+ const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0);
358
+ message =
359
+ 'Response does not match the HTTP/1.1 protocol (' +
360
+ Buffer.from(llhttp.memory.buffer, ptr, len).toString() +
361
+ ')';
362
+ }
363
+
364
+ return new HTTPParserError(message, constants.ERROR[ret], data)
365
+ }
366
+
321
367
  destroy () {
322
368
  assert(this.ptr != null);
323
369
  assert(currentParser == null);
@@ -345,6 +391,11 @@ function requireClientH1 () {
345
391
  return -1
346
392
  }
347
393
 
394
+ if (client[kRunning] === 0) {
395
+ util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)));
396
+ return -1
397
+ }
398
+
348
399
  const request = client[kQueue][client[kRunningIdx]];
349
400
  if (!request) {
350
401
  return -1
@@ -448,6 +499,11 @@ function requireClientH1 () {
448
499
  return -1
449
500
  }
450
501
 
502
+ if (client[kRunning] === 0) {
503
+ util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)));
504
+ return -1
505
+ }
506
+
451
507
  const request = client[kQueue][client[kRunningIdx]];
452
508
 
453
509
  /* istanbul ignore next: difficult to make a test case for */
@@ -621,6 +677,7 @@ function requireClientH1 () {
621
677
  request.onComplete(headers);
622
678
 
623
679
  client[kQueue][client[kRunningIdx]++] = null;
680
+ socket[kSocketUsed] = true;
624
681
 
625
682
  if (socket[kWriting]) {
626
683
  assert(client[kRunning] === 0);
@@ -679,6 +736,9 @@ function requireClientH1 () {
679
736
  socket[kWriting] = false;
680
737
  socket[kReset] = false;
681
738
  socket[kBlocking] = false;
739
+ socket[kIdleSocketValidation] = 0;
740
+ socket[kIdleSocketValidationTimeout] = null;
741
+ socket[kSocketUsed] = false;
682
742
  socket[kParser] = new Parser(client, socket, llhttpInstance);
683
743
 
684
744
  addListener(socket, 'error', function (err) {
@@ -689,8 +749,11 @@ function requireClientH1 () {
689
749
  // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded
690
750
  // to the user.
691
751
  if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {
692
- // We treat all incoming data so for as a valid response.
693
- parser.onMessageComplete();
752
+ const parserErr = parser.finish();
753
+ if (parserErr) {
754
+ this[kError] = parserErr;
755
+ this[kClient][kOnError](parserErr);
756
+ }
694
757
  return
695
758
  }
696
759
 
@@ -709,8 +772,10 @@ function requireClientH1 () {
709
772
  const parser = this[kParser];
710
773
 
711
774
  if (parser.statusCode && !parser.shouldKeepAlive) {
712
- // We treat all incoming data so far as a valid response.
713
- parser.onMessageComplete();
775
+ const parserErr = parser.finish();
776
+ if (parserErr) {
777
+ util.destroy(this, parserErr);
778
+ }
714
779
  return
715
780
  }
716
781
 
@@ -720,10 +785,11 @@ function requireClientH1 () {
720
785
  const client = this[kClient];
721
786
  const parser = this[kParser];
722
787
 
788
+ clearIdleSocketValidation(this);
789
+
723
790
  if (parser) {
724
791
  if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) {
725
- // We treat all incoming data so far as a valid response.
726
- parser.onMessageComplete();
792
+ this[kError] = parser.finish() || this[kError];
727
793
  }
728
794
 
729
795
  this[kParser].destroy();
@@ -786,7 +852,7 @@ function requireClientH1 () {
786
852
  return socket.destroyed
787
853
  },
788
854
  busy (request) {
789
- if (socket[kWriting] || socket[kReset] || socket[kBlocking]) {
855
+ if (socket[kWriting] || socket[kReset] || socket[kBlocking] || socket[kIdleSocketValidation] === 1) {
790
856
  return true
791
857
  }
792
858
 
@@ -824,6 +890,31 @@ function requireClientH1 () {
824
890
  }
825
891
  }
826
892
 
893
+ function clearIdleSocketValidation (socket) {
894
+ if (socket[kIdleSocketValidationTimeout]) {
895
+ clearTimeout(socket[kIdleSocketValidationTimeout]);
896
+ socket[kIdleSocketValidationTimeout] = null;
897
+ }
898
+
899
+ socket[kIdleSocketValidation] = 0;
900
+ }
901
+
902
+ function scheduleIdleSocketValidation (client, socket) {
903
+ socket[kIdleSocketValidation] = 1;
904
+ socket[kIdleSocketValidationTimeout] = setTimeout(() => {
905
+ socket[kIdleSocketValidationTimeout] = null;
906
+ socket[kIdleSocketValidation] = 2;
907
+
908
+ if (client[kSocket] === socket && !socket.destroyed) {
909
+ client[kResume]();
910
+ }
911
+ }, 0);
912
+ socket[kIdleSocketValidationTimeout].unref?.();
913
+ }
914
+
915
+ /**
916
+ * @param {import('./client.js')} client
917
+ */
827
918
  function resumeH1 (client) {
828
919
  const socket = client[kSocket];
829
920
 
@@ -838,6 +929,32 @@ function requireClientH1 () {
838
929
  socket[kNoRef] = false;
839
930
  }
840
931
 
932
+ if (client[kRunning] === 0 && client[kPending] > 0 && socket[kSocketUsed]) {
933
+ if (socket[kIdleSocketValidation] === 0) {
934
+ scheduleIdleSocketValidation(client, socket);
935
+ socket[kParser].readMore();
936
+ if (socket.destroyed) {
937
+ return
938
+ }
939
+ return
940
+ }
941
+
942
+ if (socket[kIdleSocketValidation] === 1) {
943
+ socket[kParser].readMore();
944
+ if (socket.destroyed) {
945
+ return
946
+ }
947
+ return
948
+ }
949
+ }
950
+
951
+ if (client[kRunning] === 0) {
952
+ socket[kParser].readMore();
953
+ if (socket.destroyed) {
954
+ return
955
+ }
956
+ }
957
+
841
958
  if (client[kSize] === 0) {
842
959
  if (socket[kParser].timeoutType !== TIMEOUT_KEEP_ALIVE) {
843
960
  socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_KEEP_ALIVE);
@@ -893,8 +1010,16 @@ function requireClientH1 () {
893
1010
  }
894
1011
  body = bodyStream.stream;
895
1012
  contentLength = bodyStream.length;
896
- } else if (util.isBlobLike(body) && request.contentType == null && body.type) {
897
- headers.push('content-type', body.type);
1013
+ } else if (util.isBlobLike(body) && request.contentType == null) {
1014
+ const contentType = body.type;
1015
+ if (contentType) {
1016
+ const contentTypeValue = `${contentType}`;
1017
+ if (!util.isValidHeaderValue(contentTypeValue)) {
1018
+ util.errorRequest(client, request, new InvalidArgumentError('invalid content-type header'));
1019
+ return false
1020
+ }
1021
+ headers.push('content-type', contentTypeValue);
1022
+ }
898
1023
  }
899
1024
 
900
1025
  if (body && typeof body.read === 'function') {
@@ -931,6 +1056,7 @@ function requireClientH1 () {
931
1056
  }
932
1057
 
933
1058
  const socket = client[kSocket];
1059
+ clearIdleSocketValidation(socket);
934
1060
 
935
1061
  const abort = (err) => {
936
1062
  if (request.aborted || request.completed) {