@xrkseek/harness 0.2.4 → 0.2.6

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 (309) hide show
  1. package/node_modules/@xrkseek/core-tools/dist/index.d.ts +1 -0
  2. package/node_modules/@xrkseek/core-tools/dist/index.d.ts.map +1 -1
  3. package/node_modules/@xrkseek/core-tools/dist/index.js +1 -0
  4. package/node_modules/@xrkseek/core-tools/dist/index.js.map +1 -1
  5. package/node_modules/@xrkseek/core-tools/dist/settings-tools.d.ts +37 -0
  6. package/node_modules/@xrkseek/core-tools/dist/settings-tools.d.ts.map +1 -0
  7. package/node_modules/@xrkseek/core-tools/dist/settings-tools.js +161 -0
  8. package/node_modules/@xrkseek/core-tools/dist/settings-tools.js.map +1 -0
  9. package/node_modules/@xrkseek/core-tools/dist/std-tools.d.ts +4 -1
  10. package/node_modules/@xrkseek/core-tools/dist/std-tools.d.ts.map +1 -1
  11. package/node_modules/@xrkseek/core-tools/dist/std-tools.js +6 -1
  12. package/node_modules/@xrkseek/core-tools/dist/std-tools.js.map +1 -1
  13. package/node_modules/@xrkseek/exec-fs/dist/read-image.d.ts.map +1 -1
  14. package/node_modules/@xrkseek/exec-fs/dist/read-image.js +20 -2
  15. package/node_modules/@xrkseek/exec-fs/dist/read-image.js.map +1 -1
  16. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  17. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  18. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  19. package/node_modules/@xrkseek/server-config/dist/index.d.ts +2 -2
  20. package/node_modules/@xrkseek/server-config/dist/index.d.ts.map +1 -1
  21. package/node_modules/@xrkseek/server-config/dist/index.js +3 -2
  22. package/node_modules/@xrkseek/server-config/dist/index.js.map +1 -1
  23. package/node_modules/@xrkseek/server-config/dist/mcp-servers.d.ts +12 -1
  24. package/node_modules/@xrkseek/server-config/dist/mcp-servers.d.ts.map +1 -1
  25. package/node_modules/@xrkseek/server-config/dist/mcp-servers.js +56 -1
  26. package/node_modules/@xrkseek/server-config/dist/mcp-servers.js.map +1 -1
  27. package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.d.ts.map +1 -1
  28. package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js +17 -1
  29. package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js.map +1 -1
  30. package/node_modules/@xrkseek/server-face/dist/context.d.ts +16 -0
  31. package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
  32. package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
  33. package/node_modules/@xrkseek/server-face/dist/dispatch.js +5 -1
  34. package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
  35. package/node_modules/@xrkseek/server-face/dist/face-schema.d.ts.map +1 -1
  36. package/node_modules/@xrkseek/server-face/dist/face-schema.js +2 -0
  37. package/node_modules/@xrkseek/server-face/dist/face-schema.js.map +1 -1
  38. package/node_modules/@xrkseek/server-face/dist/handlers/host.d.ts.map +1 -1
  39. package/node_modules/@xrkseek/server-face/dist/handlers/host.js +2 -0
  40. package/node_modules/@xrkseek/server-face/dist/handlers/host.js.map +1 -1
  41. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.d.ts +8 -0
  42. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.d.ts.map +1 -1
  43. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.js +155 -1
  44. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.js.map +1 -1
  45. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
  46. package/node_modules/@xrkseek/server-face/dist/handlers/session.js +11 -112
  47. package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
  48. package/node_modules/@xrkseek/server-face/dist/index.d.ts +3 -2
  49. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  50. package/node_modules/@xrkseek/server-face/dist/index.js +3 -2
  51. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  52. package/node_modules/@xrkseek/server-face/dist/plugin-inventory.d.ts +29 -3
  53. package/node_modules/@xrkseek/server-face/dist/plugin-inventory.d.ts.map +1 -1
  54. package/node_modules/@xrkseek/server-face/dist/plugin-inventory.js +169 -6
  55. package/node_modules/@xrkseek/server-face/dist/plugin-inventory.js.map +1 -1
  56. package/node_modules/@xrkseek/server-face/dist/presets-catalog.d.ts +9 -7
  57. package/node_modules/@xrkseek/server-face/dist/presets-catalog.d.ts.map +1 -1
  58. package/node_modules/@xrkseek/server-face/dist/presets-catalog.js +7 -17
  59. package/node_modules/@xrkseek/server-face/dist/presets-catalog.js.map +1 -1
  60. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts +10 -0
  61. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  62. package/node_modules/@xrkseek/server-face/dist/runtime.js +8 -0
  63. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  64. package/node_modules/@xrkseek/server-face/dist/select-session-model.d.ts +15 -0
  65. package/node_modules/@xrkseek/server-face/dist/select-session-model.d.ts.map +1 -0
  66. package/node_modules/@xrkseek/server-face/dist/select-session-model.js +117 -0
  67. package/node_modules/@xrkseek/server-face/dist/select-session-model.js.map +1 -0
  68. package/node_modules/@xrkseek/server-face/dist/settings-agent-tools.d.ts +7 -0
  69. package/node_modules/@xrkseek/server-face/dist/settings-agent-tools.d.ts.map +1 -0
  70. package/node_modules/@xrkseek/server-face/dist/settings-agent-tools.js +91 -0
  71. package/node_modules/@xrkseek/server-face/dist/settings-agent-tools.js.map +1 -0
  72. package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts +7 -1
  73. package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts.map +1 -1
  74. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js +85 -26
  75. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js.map +1 -1
  76. package/node_modules/@xrkseek/server-face/dist/slash.d.ts +4 -3
  77. package/node_modules/@xrkseek/server-face/dist/slash.d.ts.map +1 -1
  78. package/node_modules/@xrkseek/server-face/dist/slash.js +191 -20
  79. package/node_modules/@xrkseek/server-face/dist/slash.js.map +1 -1
  80. package/node_modules/@xrkseek/server-host/dist/http-proxy.d.ts +11 -0
  81. package/node_modules/@xrkseek/server-host/dist/http-proxy.d.ts.map +1 -0
  82. package/node_modules/@xrkseek/server-host/dist/http-proxy.js +42 -0
  83. package/node_modules/@xrkseek/server-host/dist/http-proxy.js.map +1 -0
  84. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  85. package/node_modules/@xrkseek/server-host/dist/index.js +43 -3
  86. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  87. package/node_modules/@xrkseek/server-host/dist/mcp-wire.d.ts +4 -3
  88. package/node_modules/@xrkseek/server-host/dist/mcp-wire.d.ts.map +1 -1
  89. package/node_modules/@xrkseek/server-host/dist/mcp-wire.js +14 -10
  90. package/node_modules/@xrkseek/server-host/dist/mcp-wire.js.map +1 -1
  91. package/node_modules/@xrkseek/server-host/package.json +57 -56
  92. package/node_modules/@xrkseek/server-http/dist/index.d.ts +1 -0
  93. package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
  94. package/node_modules/@xrkseek/server-http/dist/index.js +1 -0
  95. package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
  96. package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.d.ts.map +1 -1
  97. package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.js +6 -1
  98. package/node_modules/@xrkseek/server-http/dist/xrk/plugin-mutate.js.map +1 -1
  99. package/node_modules/undici/LICENSE +21 -0
  100. package/node_modules/undici/README.md +741 -0
  101. package/node_modules/undici/docs/docs/api/Agent.md +84 -0
  102. package/node_modules/undici/docs/docs/api/BalancedPool.md +99 -0
  103. package/node_modules/undici/docs/docs/api/CacheStorage.md +30 -0
  104. package/node_modules/undici/docs/docs/api/CacheStore.md +164 -0
  105. package/node_modules/undici/docs/docs/api/Client.md +288 -0
  106. package/node_modules/undici/docs/docs/api/ClientStats.md +27 -0
  107. package/node_modules/undici/docs/docs/api/Connector.md +115 -0
  108. package/node_modules/undici/docs/docs/api/ContentType.md +57 -0
  109. package/node_modules/undici/docs/docs/api/Cookies.md +128 -0
  110. package/node_modules/undici/docs/docs/api/Debug.md +62 -0
  111. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +315 -0
  112. package/node_modules/undici/docs/docs/api/Dispatcher.md +1392 -0
  113. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +159 -0
  114. package/node_modules/undici/docs/docs/api/Errors.md +49 -0
  115. package/node_modules/undici/docs/docs/api/EventSource.md +45 -0
  116. package/node_modules/undici/docs/docs/api/Fetch.md +60 -0
  117. package/node_modules/undici/docs/docs/api/GlobalInstallation.md +139 -0
  118. package/node_modules/undici/docs/docs/api/H2CClient.md +263 -0
  119. package/node_modules/undici/docs/docs/api/MockAgent.md +603 -0
  120. package/node_modules/undici/docs/docs/api/MockCallHistory.md +197 -0
  121. package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +43 -0
  122. package/node_modules/undici/docs/docs/api/MockClient.md +81 -0
  123. package/node_modules/undici/docs/docs/api/MockErrors.md +12 -0
  124. package/node_modules/undici/docs/docs/api/MockPool.md +555 -0
  125. package/node_modules/undici/docs/docs/api/Pool.md +84 -0
  126. package/node_modules/undici/docs/docs/api/PoolStats.md +35 -0
  127. package/node_modules/undici/docs/docs/api/ProxyAgent.md +229 -0
  128. package/node_modules/undici/docs/docs/api/RedirectHandler.md +93 -0
  129. package/node_modules/undici/docs/docs/api/RetryAgent.md +50 -0
  130. package/node_modules/undici/docs/docs/api/RetryHandler.md +118 -0
  131. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +145 -0
  132. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +616 -0
  133. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +275 -0
  134. package/node_modules/undici/docs/docs/api/Util.md +25 -0
  135. package/node_modules/undici/docs/docs/api/WebSocket.md +141 -0
  136. package/node_modules/undici/docs/docs/api/api-lifecycle.md +91 -0
  137. package/node_modules/undici/docs/docs/best-practices/client-certificate.md +64 -0
  138. package/node_modules/undici/docs/docs/best-practices/crawling.md +58 -0
  139. package/node_modules/undici/docs/docs/best-practices/mocking-request.md +190 -0
  140. package/node_modules/undici/docs/docs/best-practices/proxy.md +127 -0
  141. package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +224 -0
  142. package/node_modules/undici/docs/docs/best-practices/writing-tests.md +63 -0
  143. package/node_modules/undici/index-fetch.js +65 -0
  144. package/node_modules/undici/index.d.ts +3 -0
  145. package/node_modules/undici/index.js +234 -0
  146. package/node_modules/undici/lib/api/abort-signal.js +59 -0
  147. package/node_modules/undici/lib/api/api-connect.js +110 -0
  148. package/node_modules/undici/lib/api/api-pipeline.js +252 -0
  149. package/node_modules/undici/lib/api/api-request.js +214 -0
  150. package/node_modules/undici/lib/api/api-stream.js +209 -0
  151. package/node_modules/undici/lib/api/api-upgrade.js +111 -0
  152. package/node_modules/undici/lib/api/index.js +7 -0
  153. package/node_modules/undici/lib/api/readable.js +580 -0
  154. package/node_modules/undici/lib/cache/memory-cache-store.js +279 -0
  155. package/node_modules/undici/lib/cache/sqlite-cache-store.js +467 -0
  156. package/node_modules/undici/lib/core/connect.js +153 -0
  157. package/node_modules/undici/lib/core/constants.js +143 -0
  158. package/node_modules/undici/lib/core/diagnostics.js +227 -0
  159. package/node_modules/undici/lib/core/errors.js +477 -0
  160. package/node_modules/undici/lib/core/request.js +464 -0
  161. package/node_modules/undici/lib/core/socks5-client.js +422 -0
  162. package/node_modules/undici/lib/core/socks5-utils.js +212 -0
  163. package/node_modules/undici/lib/core/symbols.js +75 -0
  164. package/node_modules/undici/lib/core/tree.js +160 -0
  165. package/node_modules/undici/lib/core/util.js +992 -0
  166. package/node_modules/undici/lib/dispatcher/agent.js +158 -0
  167. package/node_modules/undici/lib/dispatcher/balanced-pool.js +221 -0
  168. package/node_modules/undici/lib/dispatcher/client-h1.js +1739 -0
  169. package/node_modules/undici/lib/dispatcher/client-h2.js +1051 -0
  170. package/node_modules/undici/lib/dispatcher/client.js +668 -0
  171. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +184 -0
  172. package/node_modules/undici/lib/dispatcher/dispatcher.js +48 -0
  173. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +146 -0
  174. package/node_modules/undici/lib/dispatcher/fixed-queue.js +135 -0
  175. package/node_modules/undici/lib/dispatcher/h2c-client.js +51 -0
  176. package/node_modules/undici/lib/dispatcher/pool-base.js +214 -0
  177. package/node_modules/undici/lib/dispatcher/pool.js +118 -0
  178. package/node_modules/undici/lib/dispatcher/proxy-agent.js +319 -0
  179. package/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
  180. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +137 -0
  181. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +260 -0
  182. package/node_modules/undici/lib/encoding/index.js +33 -0
  183. package/node_modules/undici/lib/global.js +59 -0
  184. package/node_modules/undici/lib/handler/cache-handler.js +776 -0
  185. package/node_modules/undici/lib/handler/cache-revalidation-handler.js +124 -0
  186. package/node_modules/undici/lib/handler/decorator-handler.js +67 -0
  187. package/node_modules/undici/lib/handler/deduplication-handler.js +460 -0
  188. package/node_modules/undici/lib/handler/redirect-handler.js +238 -0
  189. package/node_modules/undici/lib/handler/retry-handler.js +453 -0
  190. package/node_modules/undici/lib/handler/unwrap-handler.js +106 -0
  191. package/node_modules/undici/lib/handler/wrap-handler.js +105 -0
  192. package/node_modules/undici/lib/interceptor/cache.js +621 -0
  193. package/node_modules/undici/lib/interceptor/decompress.js +391 -0
  194. package/node_modules/undici/lib/interceptor/deduplicate.js +117 -0
  195. package/node_modules/undici/lib/interceptor/dns.js +571 -0
  196. package/node_modules/undici/lib/interceptor/dump.js +99 -0
  197. package/node_modules/undici/lib/interceptor/redirect.js +21 -0
  198. package/node_modules/undici/lib/interceptor/response-error.js +95 -0
  199. package/node_modules/undici/lib/interceptor/retry.js +19 -0
  200. package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  201. package/node_modules/undici/lib/llhttp/constants.d.ts +195 -0
  202. package/node_modules/undici/lib/llhttp/constants.js +531 -0
  203. package/node_modules/undici/lib/llhttp/llhttp-wasm.js +15 -0
  204. package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +15 -0
  205. package/node_modules/undici/lib/llhttp/utils.d.ts +2 -0
  206. package/node_modules/undici/lib/llhttp/utils.js +12 -0
  207. package/node_modules/undici/lib/mock/mock-agent.js +232 -0
  208. package/node_modules/undici/lib/mock/mock-call-history.js +248 -0
  209. package/node_modules/undici/lib/mock/mock-client.js +68 -0
  210. package/node_modules/undici/lib/mock/mock-errors.js +29 -0
  211. package/node_modules/undici/lib/mock/mock-interceptor.js +209 -0
  212. package/node_modules/undici/lib/mock/mock-pool.js +68 -0
  213. package/node_modules/undici/lib/mock/mock-symbols.js +32 -0
  214. package/node_modules/undici/lib/mock/mock-utils.js +486 -0
  215. package/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
  216. package/node_modules/undici/lib/mock/snapshot-agent.js +353 -0
  217. package/node_modules/undici/lib/mock/snapshot-recorder.js +588 -0
  218. package/node_modules/undici/lib/mock/snapshot-utils.js +158 -0
  219. package/node_modules/undici/lib/util/cache.js +676 -0
  220. package/node_modules/undici/lib/util/date.js +670 -0
  221. package/node_modules/undici/lib/util/promise.js +28 -0
  222. package/node_modules/undici/lib/util/runtime-features.js +124 -0
  223. package/node_modules/undici/lib/util/stats.js +32 -0
  224. package/node_modules/undici/lib/util/timers.js +425 -0
  225. package/node_modules/undici/lib/web/cache/cache.js +864 -0
  226. package/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
  227. package/node_modules/undici/lib/web/cache/util.js +45 -0
  228. package/node_modules/undici/lib/web/cookies/constants.js +12 -0
  229. package/node_modules/undici/lib/web/cookies/index.js +199 -0
  230. package/node_modules/undici/lib/web/cookies/parse.js +314 -0
  231. package/node_modules/undici/lib/web/cookies/util.js +352 -0
  232. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +494 -0
  233. package/node_modules/undici/lib/web/eventsource/eventsource.js +501 -0
  234. package/node_modules/undici/lib/web/eventsource/util.js +29 -0
  235. package/node_modules/undici/lib/web/fetch/LICENSE +21 -0
  236. package/node_modules/undici/lib/web/fetch/body.js +509 -0
  237. package/node_modules/undici/lib/web/fetch/constants.js +131 -0
  238. package/node_modules/undici/lib/web/fetch/data-url.js +596 -0
  239. package/node_modules/undici/lib/web/fetch/formdata-parser.js +586 -0
  240. package/node_modules/undici/lib/web/fetch/formdata.js +259 -0
  241. package/node_modules/undici/lib/web/fetch/global.js +40 -0
  242. package/node_modules/undici/lib/web/fetch/headers.js +719 -0
  243. package/node_modules/undici/lib/web/fetch/index.js +2413 -0
  244. package/node_modules/undici/lib/web/fetch/request.js +1115 -0
  245. package/node_modules/undici/lib/web/fetch/response.js +641 -0
  246. package/node_modules/undici/lib/web/fetch/util.js +1522 -0
  247. package/node_modules/undici/lib/web/infra/index.js +229 -0
  248. package/node_modules/undici/lib/web/subresource-integrity/Readme.md +9 -0
  249. package/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +307 -0
  250. package/node_modules/undici/lib/web/webidl/index.js +1006 -0
  251. package/node_modules/undici/lib/web/websocket/connection.js +329 -0
  252. package/node_modules/undici/lib/web/websocket/constants.js +126 -0
  253. package/node_modules/undici/lib/web/websocket/events.js +331 -0
  254. package/node_modules/undici/lib/web/websocket/frame.js +133 -0
  255. package/node_modules/undici/lib/web/websocket/permessage-deflate.js +105 -0
  256. package/node_modules/undici/lib/web/websocket/receiver.js +507 -0
  257. package/node_modules/undici/lib/web/websocket/sender.js +109 -0
  258. package/node_modules/undici/lib/web/websocket/stream/websocketerror.js +104 -0
  259. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +496 -0
  260. package/node_modules/undici/lib/web/websocket/util.js +347 -0
  261. package/node_modules/undici/lib/web/websocket/websocket.js +758 -0
  262. package/node_modules/undici/package.json +152 -0
  263. package/node_modules/undici/scripts/strip-comments.js +10 -0
  264. package/node_modules/undici/types/README.md +6 -0
  265. package/node_modules/undici/types/agent.d.ts +32 -0
  266. package/node_modules/undici/types/api.d.ts +43 -0
  267. package/node_modules/undici/types/balanced-pool.d.ts +30 -0
  268. package/node_modules/undici/types/cache-interceptor.d.ts +179 -0
  269. package/node_modules/undici/types/cache.d.ts +36 -0
  270. package/node_modules/undici/types/client-stats.d.ts +15 -0
  271. package/node_modules/undici/types/client.d.ts +139 -0
  272. package/node_modules/undici/types/connector.d.ts +36 -0
  273. package/node_modules/undici/types/content-type.d.ts +21 -0
  274. package/node_modules/undici/types/cookies.d.ts +30 -0
  275. package/node_modules/undici/types/diagnostics-channel.d.ts +74 -0
  276. package/node_modules/undici/types/dispatcher.d.ts +275 -0
  277. package/node_modules/undici/types/env-http-proxy-agent.d.ts +22 -0
  278. package/node_modules/undici/types/errors.d.ts +177 -0
  279. package/node_modules/undici/types/eventsource.d.ts +66 -0
  280. package/node_modules/undici/types/fetch.d.ts +231 -0
  281. package/node_modules/undici/types/formdata.d.ts +114 -0
  282. package/node_modules/undici/types/global-dispatcher.d.ts +9 -0
  283. package/node_modules/undici/types/global-origin.d.ts +7 -0
  284. package/node_modules/undici/types/h2c-client.d.ts +73 -0
  285. package/node_modules/undici/types/handlers.d.ts +14 -0
  286. package/node_modules/undici/types/header.d.ts +160 -0
  287. package/node_modules/undici/types/index.d.ts +91 -0
  288. package/node_modules/undici/types/interceptors.d.ts +82 -0
  289. package/node_modules/undici/types/mock-agent.d.ts +68 -0
  290. package/node_modules/undici/types/mock-call-history.d.ts +111 -0
  291. package/node_modules/undici/types/mock-client.d.ts +27 -0
  292. package/node_modules/undici/types/mock-errors.d.ts +12 -0
  293. package/node_modules/undici/types/mock-interceptor.d.ts +94 -0
  294. package/node_modules/undici/types/mock-pool.d.ts +27 -0
  295. package/node_modules/undici/types/patch.d.ts +29 -0
  296. package/node_modules/undici/types/pool-stats.d.ts +19 -0
  297. package/node_modules/undici/types/pool.d.ts +41 -0
  298. package/node_modules/undici/types/proxy-agent.d.ts +29 -0
  299. package/node_modules/undici/types/readable.d.ts +68 -0
  300. package/node_modules/undici/types/retry-agent.d.ts +8 -0
  301. package/node_modules/undici/types/retry-handler.d.ts +125 -0
  302. package/node_modules/undici/types/round-robin-pool.d.ts +41 -0
  303. package/node_modules/undici/types/snapshot-agent.d.ts +109 -0
  304. package/node_modules/undici/types/socks5-proxy-agent.d.ts +25 -0
  305. package/node_modules/undici/types/util.d.ts +18 -0
  306. package/node_modules/undici/types/utility.d.ts +7 -0
  307. package/node_modules/undici/types/webidl.d.ts +347 -0
  308. package/node_modules/undici/types/websocket.d.ts +188 -0
  309. package/package.json +3 -1
@@ -0,0 +1,670 @@
1
+ 'use strict'
2
+
3
+ /**
4
+ * @see https://www.rfc-editor.org/rfc/rfc9110.html#name-date-time-formats
5
+ *
6
+ * @param {string} date
7
+ * @returns {Date | undefined}
8
+ */
9
+ function parseHttpDate (date) {
10
+ // Sun, 06 Nov 1994 08:49:37 GMT ; IMF-fixdate
11
+ // Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
12
+ // Sunday, 06-Nov-94 08:49:37 GMT ; obsolete RFC 850 format
13
+
14
+ switch (date[3]) {
15
+ case ',': return parseImfDate(date)
16
+ case ' ': return parseAscTimeDate(date)
17
+ default: return parseRfc850Date(date)
18
+ }
19
+ }
20
+
21
+ function makeDate (year, monthIdx, day, hour, minute, second, weekday) {
22
+ const result = new Date(Date.UTC(year, monthIdx, day, hour, minute, second))
23
+
24
+ // Date.UTC treats years 0-99 as 1900-1999. Reset the full year so component
25
+ // checks below validate the HTTP date as written.
26
+ if (year >= 0 && year <= 99) {
27
+ result.setUTCFullYear(year)
28
+ }
29
+
30
+ return result.getUTCFullYear() === year &&
31
+ result.getUTCMonth() === monthIdx &&
32
+ result.getUTCDate() === day &&
33
+ result.getUTCHours() === hour &&
34
+ result.getUTCMinutes() === minute &&
35
+ result.getUTCSeconds() === second &&
36
+ result.getUTCDay() === weekday
37
+ ? result
38
+ : undefined
39
+ }
40
+
41
+ /**
42
+ * @see https://httpwg.org/specs/rfc9110.html#preferred.date.format
43
+ *
44
+ * @param {string} date
45
+ * @returns {Date | undefined}
46
+ */
47
+ function parseImfDate (date) {
48
+ if (
49
+ date.length !== 29 ||
50
+ date[4] !== ' ' ||
51
+ date[7] !== ' ' ||
52
+ date[11] !== ' ' ||
53
+ date[16] !== ' ' ||
54
+ date[19] !== ':' ||
55
+ date[22] !== ':' ||
56
+ date[25] !== ' ' ||
57
+ date[26] !== 'G' ||
58
+ date[27] !== 'M' ||
59
+ date[28] !== 'T'
60
+ ) {
61
+ return undefined
62
+ }
63
+
64
+ let weekday = -1
65
+ if (date[0] === 'S' && date[1] === 'u' && date[2] === 'n') { // Sunday
66
+ weekday = 0
67
+ } else if (date[0] === 'M' && date[1] === 'o' && date[2] === 'n') { // Monday
68
+ weekday = 1
69
+ } else if (date[0] === 'T' && date[1] === 'u' && date[2] === 'e') { // Tuesday
70
+ weekday = 2
71
+ } else if (date[0] === 'W' && date[1] === 'e' && date[2] === 'd') { // Wednesday
72
+ weekday = 3
73
+ } else if (date[0] === 'T' && date[1] === 'h' && date[2] === 'u') { // Thursday
74
+ weekday = 4
75
+ } else if (date[0] === 'F' && date[1] === 'r' && date[2] === 'i') { // Friday
76
+ weekday = 5
77
+ } else if (date[0] === 'S' && date[1] === 'a' && date[2] === 't') { // Saturday
78
+ weekday = 6
79
+ } else {
80
+ return undefined // Not a valid day of the week
81
+ }
82
+
83
+ let day = 0
84
+ if (date[5] === '0') {
85
+ // Single digit day, e.g. "Sun Nov 6 08:49:37 1994"
86
+ const code = date.charCodeAt(6)
87
+ if (code < 49 || code > 57) {
88
+ return undefined // Not a digit
89
+ }
90
+ day = code - 48 // Convert ASCII code to number
91
+ } else {
92
+ const code1 = date.charCodeAt(5)
93
+ if (code1 < 49 || code1 > 51) {
94
+ return undefined // Not a digit between 1 and 3
95
+ }
96
+ const code2 = date.charCodeAt(6)
97
+ if (code2 < 48 || code2 > 57) {
98
+ return undefined // Not a digit
99
+ }
100
+ day = (code1 - 48) * 10 + (code2 - 48) // Convert ASCII codes to number
101
+ }
102
+
103
+ let monthIdx = -1
104
+ if (
105
+ (date[8] === 'J' && date[9] === 'a' && date[10] === 'n')
106
+ ) {
107
+ monthIdx = 0 // Jan
108
+ } else if (
109
+ (date[8] === 'F' && date[9] === 'e' && date[10] === 'b')
110
+ ) {
111
+ monthIdx = 1 // Feb
112
+ } else if (
113
+ (date[8] === 'M' && date[9] === 'a')
114
+ ) {
115
+ if (date[10] === 'r') {
116
+ monthIdx = 2 // Mar
117
+ } else if (date[10] === 'y') {
118
+ monthIdx = 4 // May
119
+ } else {
120
+ return undefined // Invalid month
121
+ }
122
+ } else if (
123
+ (date[8] === 'J')
124
+ ) {
125
+ if (date[9] === 'a' && date[10] === 'n') {
126
+ monthIdx = 0 // Jan
127
+ } else if (date[9] === 'u') {
128
+ if (date[10] === 'n') {
129
+ monthIdx = 5 // Jun
130
+ } else if (date[10] === 'l') {
131
+ monthIdx = 6 // Jul
132
+ } else {
133
+ return undefined // Invalid month
134
+ }
135
+ } else {
136
+ return undefined // Invalid month
137
+ }
138
+ } else if (
139
+ (date[8] === 'A')
140
+ ) {
141
+ if (date[9] === 'p' && date[10] === 'r') {
142
+ monthIdx = 3 // Apr
143
+ } else if (date[9] === 'u' && date[10] === 'g') {
144
+ monthIdx = 7 // Aug
145
+ } else {
146
+ return undefined // Invalid month
147
+ }
148
+ } else if (
149
+ (date[8] === 'S' && date[9] === 'e' && date[10] === 'p')
150
+ ) {
151
+ monthIdx = 8 // Sep
152
+ } else if (
153
+ (date[8] === 'O' && date[9] === 'c' && date[10] === 't')
154
+ ) {
155
+ monthIdx = 9 // Oct
156
+ } else if (
157
+ (date[8] === 'N' && date[9] === 'o' && date[10] === 'v')
158
+ ) {
159
+ monthIdx = 10 // Nov
160
+ } else if (
161
+ (date[8] === 'D' && date[9] === 'e' && date[10] === 'c')
162
+ ) {
163
+ monthIdx = 11 // Dec
164
+ } else {
165
+ // Not a valid month
166
+ return undefined
167
+ }
168
+
169
+ const yearDigit1 = date.charCodeAt(12)
170
+ if (yearDigit1 < 48 || yearDigit1 > 57) {
171
+ return undefined // Not a digit
172
+ }
173
+ const yearDigit2 = date.charCodeAt(13)
174
+ if (yearDigit2 < 48 || yearDigit2 > 57) {
175
+ return undefined // Not a digit
176
+ }
177
+ const yearDigit3 = date.charCodeAt(14)
178
+ if (yearDigit3 < 48 || yearDigit3 > 57) {
179
+ return undefined // Not a digit
180
+ }
181
+ const yearDigit4 = date.charCodeAt(15)
182
+ if (yearDigit4 < 48 || yearDigit4 > 57) {
183
+ return undefined // Not a digit
184
+ }
185
+ const year = (yearDigit1 - 48) * 1000 + (yearDigit2 - 48) * 100 + (yearDigit3 - 48) * 10 + (yearDigit4 - 48)
186
+
187
+ let hour = 0
188
+ if (date[17] === '0') {
189
+ const code = date.charCodeAt(18)
190
+ if (code < 48 || code > 57) {
191
+ return undefined // Not a digit
192
+ }
193
+ hour = code - 48 // Convert ASCII code to number
194
+ } else {
195
+ const code1 = date.charCodeAt(17)
196
+ if (code1 < 48 || code1 > 50) {
197
+ return undefined // Not a digit between 0 and 2
198
+ }
199
+ const code2 = date.charCodeAt(18)
200
+ if (code2 < 48 || code2 > 57) {
201
+ return undefined // Not a digit
202
+ }
203
+ if (code1 === 50 && code2 > 51) {
204
+ return undefined // Hour cannot be greater than 23
205
+ }
206
+ hour = (code1 - 48) * 10 + (code2 - 48) // Convert ASCII codes to number
207
+ }
208
+
209
+ let minute = 0
210
+ if (date[20] === '0') {
211
+ const code = date.charCodeAt(21)
212
+ if (code < 48 || code > 57) {
213
+ return undefined // Not a digit
214
+ }
215
+ minute = code - 48 // Convert ASCII code to number
216
+ } else {
217
+ const code1 = date.charCodeAt(20)
218
+ if (code1 < 48 || code1 > 53) {
219
+ return undefined // Not a digit between 0 and 5
220
+ }
221
+ const code2 = date.charCodeAt(21)
222
+ if (code2 < 48 || code2 > 57) {
223
+ return undefined // Not a digit
224
+ }
225
+ minute = (code1 - 48) * 10 + (code2 - 48) // Convert ASCII codes to number
226
+ }
227
+
228
+ let second = 0
229
+ if (date[23] === '0') {
230
+ const code = date.charCodeAt(24)
231
+ if (code < 48 || code > 57) {
232
+ return undefined // Not a digit
233
+ }
234
+ second = code - 48 // Convert ASCII code to number
235
+ } else {
236
+ const code1 = date.charCodeAt(23)
237
+ if (code1 < 48 || code1 > 53) {
238
+ return undefined // Not a digit between 0 and 5
239
+ }
240
+ const code2 = date.charCodeAt(24)
241
+ if (code2 < 48 || code2 > 57) {
242
+ return undefined // Not a digit
243
+ }
244
+ second = (code1 - 48) * 10 + (code2 - 48) // Convert ASCII codes to number
245
+ }
246
+
247
+ return makeDate(year, monthIdx, day, hour, minute, second, weekday)
248
+ }
249
+
250
+ /**
251
+ * @see https://httpwg.org/specs/rfc9110.html#obsolete.date.formats
252
+ *
253
+ * @param {string} date
254
+ * @returns {Date | undefined}
255
+ */
256
+ function parseAscTimeDate (date) {
257
+ // This is assumed to be in UTC
258
+
259
+ if (
260
+ date.length !== 24 ||
261
+ date[7] !== ' ' ||
262
+ date[10] !== ' ' ||
263
+ date[19] !== ' '
264
+ ) {
265
+ return undefined
266
+ }
267
+
268
+ let weekday = -1
269
+ if (date[0] === 'S' && date[1] === 'u' && date[2] === 'n') { // Sunday
270
+ weekday = 0
271
+ } else if (date[0] === 'M' && date[1] === 'o' && date[2] === 'n') { // Monday
272
+ weekday = 1
273
+ } else if (date[0] === 'T' && date[1] === 'u' && date[2] === 'e') { // Tuesday
274
+ weekday = 2
275
+ } else if (date[0] === 'W' && date[1] === 'e' && date[2] === 'd') { // Wednesday
276
+ weekday = 3
277
+ } else if (date[0] === 'T' && date[1] === 'h' && date[2] === 'u') { // Thursday
278
+ weekday = 4
279
+ } else if (date[0] === 'F' && date[1] === 'r' && date[2] === 'i') { // Friday
280
+ weekday = 5
281
+ } else if (date[0] === 'S' && date[1] === 'a' && date[2] === 't') { // Saturday
282
+ weekday = 6
283
+ } else {
284
+ return undefined // Not a valid day of the week
285
+ }
286
+
287
+ let monthIdx = -1
288
+ if (
289
+ (date[4] === 'J' && date[5] === 'a' && date[6] === 'n')
290
+ ) {
291
+ monthIdx = 0 // Jan
292
+ } else if (
293
+ (date[4] === 'F' && date[5] === 'e' && date[6] === 'b')
294
+ ) {
295
+ monthIdx = 1 // Feb
296
+ } else if (
297
+ (date[4] === 'M' && date[5] === 'a')
298
+ ) {
299
+ if (date[6] === 'r') {
300
+ monthIdx = 2 // Mar
301
+ } else if (date[6] === 'y') {
302
+ monthIdx = 4 // May
303
+ } else {
304
+ return undefined // Invalid month
305
+ }
306
+ } else if (
307
+ (date[4] === 'J')
308
+ ) {
309
+ if (date[5] === 'a' && date[6] === 'n') {
310
+ monthIdx = 0 // Jan
311
+ } else if (date[5] === 'u') {
312
+ if (date[6] === 'n') {
313
+ monthIdx = 5 // Jun
314
+ } else if (date[6] === 'l') {
315
+ monthIdx = 6 // Jul
316
+ } else {
317
+ return undefined // Invalid month
318
+ }
319
+ } else {
320
+ return undefined // Invalid month
321
+ }
322
+ } else if (
323
+ (date[4] === 'A')
324
+ ) {
325
+ if (date[5] === 'p' && date[6] === 'r') {
326
+ monthIdx = 3 // Apr
327
+ } else if (date[5] === 'u' && date[6] === 'g') {
328
+ monthIdx = 7 // Aug
329
+ } else {
330
+ return undefined // Invalid month
331
+ }
332
+ } else if (
333
+ (date[4] === 'S' && date[5] === 'e' && date[6] === 'p')
334
+ ) {
335
+ monthIdx = 8 // Sep
336
+ } else if (
337
+ (date[4] === 'O' && date[5] === 'c' && date[6] === 't')
338
+ ) {
339
+ monthIdx = 9 // Oct
340
+ } else if (
341
+ (date[4] === 'N' && date[5] === 'o' && date[6] === 'v')
342
+ ) {
343
+ monthIdx = 10 // Nov
344
+ } else if (
345
+ (date[4] === 'D' && date[5] === 'e' && date[6] === 'c')
346
+ ) {
347
+ monthIdx = 11 // Dec
348
+ } else {
349
+ // Not a valid month
350
+ return undefined
351
+ }
352
+
353
+ let day = 0
354
+ if (date[8] === ' ') {
355
+ // Single digit day, e.g. "Sun Nov 6 08:49:37 1994"
356
+ const code = date.charCodeAt(9)
357
+ if (code < 49 || code > 57) {
358
+ return undefined // Not a digit
359
+ }
360
+ day = code - 48 // Convert ASCII code to number
361
+ } else {
362
+ const code1 = date.charCodeAt(8)
363
+ if (code1 < 49 || code1 > 51) {
364
+ return undefined // Not a digit between 1 and 3
365
+ }
366
+ const code2 = date.charCodeAt(9)
367
+ if (code2 < 48 || code2 > 57) {
368
+ return undefined // Not a digit
369
+ }
370
+ day = (code1 - 48) * 10 + (code2 - 48) // Convert ASCII codes to number
371
+ }
372
+
373
+ let hour = 0
374
+ if (date[11] === '0') {
375
+ const code = date.charCodeAt(12)
376
+ if (code < 48 || code > 57) {
377
+ return undefined // Not a digit
378
+ }
379
+ hour = code - 48 // Convert ASCII code to number
380
+ } else {
381
+ const code1 = date.charCodeAt(11)
382
+ if (code1 < 48 || code1 > 50) {
383
+ return undefined // Not a digit between 0 and 2
384
+ }
385
+ const code2 = date.charCodeAt(12)
386
+ if (code2 < 48 || code2 > 57) {
387
+ return undefined // Not a digit
388
+ }
389
+ if (code1 === 50 && code2 > 51) {
390
+ return undefined // Hour cannot be greater than 23
391
+ }
392
+ hour = (code1 - 48) * 10 + (code2 - 48) // Convert ASCII codes to number
393
+ }
394
+
395
+ let minute = 0
396
+ if (date[14] === '0') {
397
+ const code = date.charCodeAt(15)
398
+ if (code < 48 || code > 57) {
399
+ return undefined // Not a digit
400
+ }
401
+ minute = code - 48 // Convert ASCII code to number
402
+ } else {
403
+ const code1 = date.charCodeAt(14)
404
+ if (code1 < 48 || code1 > 53) {
405
+ return undefined // Not a digit between 0 and 5
406
+ }
407
+ const code2 = date.charCodeAt(15)
408
+ if (code2 < 48 || code2 > 57) {
409
+ return undefined // Not a digit
410
+ }
411
+ minute = (code1 - 48) * 10 + (code2 - 48) // Convert ASCII codes to number
412
+ }
413
+
414
+ let second = 0
415
+ if (date[17] === '0') {
416
+ const code = date.charCodeAt(18)
417
+ if (code < 48 || code > 57) {
418
+ return undefined // Not a digit
419
+ }
420
+ second = code - 48 // Convert ASCII code to number
421
+ } else {
422
+ const code1 = date.charCodeAt(17)
423
+ if (code1 < 48 || code1 > 53) {
424
+ return undefined // Not a digit between 0 and 5
425
+ }
426
+ const code2 = date.charCodeAt(18)
427
+ if (code2 < 48 || code2 > 57) {
428
+ return undefined // Not a digit
429
+ }
430
+ second = (code1 - 48) * 10 + (code2 - 48) // Convert ASCII codes to number
431
+ }
432
+
433
+ const yearDigit1 = date.charCodeAt(20)
434
+ if (yearDigit1 < 48 || yearDigit1 > 57) {
435
+ return undefined // Not a digit
436
+ }
437
+ const yearDigit2 = date.charCodeAt(21)
438
+ if (yearDigit2 < 48 || yearDigit2 > 57) {
439
+ return undefined // Not a digit
440
+ }
441
+ const yearDigit3 = date.charCodeAt(22)
442
+ if (yearDigit3 < 48 || yearDigit3 > 57) {
443
+ return undefined // Not a digit
444
+ }
445
+ const yearDigit4 = date.charCodeAt(23)
446
+ if (yearDigit4 < 48 || yearDigit4 > 57) {
447
+ return undefined // Not a digit
448
+ }
449
+ const year = (yearDigit1 - 48) * 1000 + (yearDigit2 - 48) * 100 + (yearDigit3 - 48) * 10 + (yearDigit4 - 48)
450
+
451
+ return makeDate(year, monthIdx, day, hour, minute, second, weekday)
452
+ }
453
+
454
+ /**
455
+ * @see https://httpwg.org/specs/rfc9110.html#obsolete.date.formats
456
+ *
457
+ * @param {string} date
458
+ * @returns {Date | undefined}
459
+ */
460
+ function parseRfc850Date (date) {
461
+ let commaIndex = -1
462
+
463
+ let weekday = -1
464
+ if (date[0] === 'S') {
465
+ if (date[1] === 'u' && date[2] === 'n' && date[3] === 'd' && date[4] === 'a' && date[5] === 'y') {
466
+ weekday = 0 // Sunday
467
+ commaIndex = 6
468
+ } else if (date[1] === 'a' && date[2] === 't' && date[3] === 'u' && date[4] === 'r' && date[5] === 'd' && date[6] === 'a' && date[7] === 'y') {
469
+ weekday = 6 // Saturday
470
+ commaIndex = 8
471
+ }
472
+ } else if (date[0] === 'M' && date[1] === 'o' && date[2] === 'n' && date[3] === 'd' && date[4] === 'a' && date[5] === 'y') {
473
+ weekday = 1 // Monday
474
+ commaIndex = 6
475
+ } else if (date[0] === 'T') {
476
+ if (date[1] === 'u' && date[2] === 'e' && date[3] === 's' && date[4] === 'd' && date[5] === 'a' && date[6] === 'y') {
477
+ weekday = 2 // Tuesday
478
+ commaIndex = 7
479
+ } else if (date[1] === 'h' && date[2] === 'u' && date[3] === 'r' && date[4] === 's' && date[5] === 'd' && date[6] === 'a' && date[7] === 'y') {
480
+ weekday = 4 // Thursday
481
+ commaIndex = 8
482
+ }
483
+ } else if (date[0] === 'W' && date[1] === 'e' && date[2] === 'd' && date[3] === 'n' && date[4] === 'e' && date[5] === 's' && date[6] === 'd' && date[7] === 'a' && date[8] === 'y') {
484
+ weekday = 3 // Wednesday
485
+ commaIndex = 9
486
+ } else if (date[0] === 'F' && date[1] === 'r' && date[2] === 'i' && date[3] === 'd' && date[4] === 'a' && date[5] === 'y') {
487
+ weekday = 5 // Friday
488
+ commaIndex = 6
489
+ } else {
490
+ // Not a valid day name
491
+ return undefined
492
+ }
493
+
494
+ if (
495
+ date[commaIndex] !== ',' ||
496
+ (date.length - commaIndex - 1) !== 23 ||
497
+ date[commaIndex + 1] !== ' ' ||
498
+ date[commaIndex + 4] !== '-' ||
499
+ date[commaIndex + 8] !== '-' ||
500
+ date[commaIndex + 11] !== ' ' ||
501
+ date[commaIndex + 14] !== ':' ||
502
+ date[commaIndex + 17] !== ':' ||
503
+ date[commaIndex + 20] !== ' ' ||
504
+ date[commaIndex + 21] !== 'G' ||
505
+ date[commaIndex + 22] !== 'M' ||
506
+ date[commaIndex + 23] !== 'T'
507
+ ) {
508
+ return undefined
509
+ }
510
+
511
+ let day = 0
512
+ if (date[commaIndex + 2] === '0') {
513
+ // Single digit day, e.g. "Sun Nov 6 08:49:37 1994"
514
+ const code = date.charCodeAt(commaIndex + 3)
515
+ if (code < 49 || code > 57) {
516
+ return undefined // Not a digit
517
+ }
518
+ day = code - 48 // Convert ASCII code to number
519
+ } else {
520
+ const code1 = date.charCodeAt(commaIndex + 2)
521
+ if (code1 < 49 || code1 > 51) {
522
+ return undefined // Not a digit between 1 and 3
523
+ }
524
+ const code2 = date.charCodeAt(commaIndex + 3)
525
+ if (code2 < 48 || code2 > 57) {
526
+ return undefined // Not a digit
527
+ }
528
+ day = (code1 - 48) * 10 + (code2 - 48) // Convert ASCII codes to number
529
+ }
530
+
531
+ let monthIdx = -1
532
+ if (
533
+ (date[commaIndex + 5] === 'J' && date[commaIndex + 6] === 'a' && date[commaIndex + 7] === 'n')
534
+ ) {
535
+ monthIdx = 0 // Jan
536
+ } else if (
537
+ (date[commaIndex + 5] === 'F' && date[commaIndex + 6] === 'e' && date[commaIndex + 7] === 'b')
538
+ ) {
539
+ monthIdx = 1 // Feb
540
+ } else if (
541
+ (date[commaIndex + 5] === 'M' && date[commaIndex + 6] === 'a' && date[commaIndex + 7] === 'r')
542
+ ) {
543
+ monthIdx = 2 // Mar
544
+ } else if (
545
+ (date[commaIndex + 5] === 'A' && date[commaIndex + 6] === 'p' && date[commaIndex + 7] === 'r')
546
+ ) {
547
+ monthIdx = 3 // Apr
548
+ } else if (
549
+ (date[commaIndex + 5] === 'M' && date[commaIndex + 6] === 'a' && date[commaIndex + 7] === 'y')
550
+ ) {
551
+ monthIdx = 4 // May
552
+ } else if (
553
+ (date[commaIndex + 5] === 'J' && date[commaIndex + 6] === 'u' && date[commaIndex + 7] === 'n')
554
+ ) {
555
+ monthIdx = 5 // Jun
556
+ } else if (
557
+ (date[commaIndex + 5] === 'J' && date[commaIndex + 6] === 'u' && date[commaIndex + 7] === 'l')
558
+ ) {
559
+ monthIdx = 6 // Jul
560
+ } else if (
561
+ (date[commaIndex + 5] === 'A' && date[commaIndex + 6] === 'u' && date[commaIndex + 7] === 'g')
562
+ ) {
563
+ monthIdx = 7 // Aug
564
+ } else if (
565
+ (date[commaIndex + 5] === 'S' && date[commaIndex + 6] === 'e' && date[commaIndex + 7] === 'p')
566
+ ) {
567
+ monthIdx = 8 // Sep
568
+ } else if (
569
+ (date[commaIndex + 5] === 'O' && date[commaIndex + 6] === 'c' && date[commaIndex + 7] === 't')
570
+ ) {
571
+ monthIdx = 9 // Oct
572
+ } else if (
573
+ (date[commaIndex + 5] === 'N' && date[commaIndex + 6] === 'o' && date[commaIndex + 7] === 'v')
574
+ ) {
575
+ monthIdx = 10 // Nov
576
+ } else if (
577
+ (date[commaIndex + 5] === 'D' && date[commaIndex + 6] === 'e' && date[commaIndex + 7] === 'c')
578
+ ) {
579
+ monthIdx = 11 // Dec
580
+ } else {
581
+ // Not a valid month
582
+ return undefined
583
+ }
584
+
585
+ const yearDigit1 = date.charCodeAt(commaIndex + 9)
586
+ if (yearDigit1 < 48 || yearDigit1 > 57) {
587
+ return undefined // Not a digit
588
+ }
589
+ const yearDigit2 = date.charCodeAt(commaIndex + 10)
590
+ if (yearDigit2 < 48 || yearDigit2 > 57) {
591
+ return undefined // Not a digit
592
+ }
593
+
594
+ let year = (yearDigit1 - 48) * 10 + (yearDigit2 - 48) // Convert ASCII codes to number
595
+
596
+ // RFC 6265 states that the year is in the range 1970-2069.
597
+ // @see https://datatracker.ietf.org/doc/html/rfc6265#section-5.1.1
598
+ //
599
+ // 3. If the year-value is greater than or equal to 70 and less than or
600
+ // equal to 99, increment the year-value by 1900.
601
+ // 4. If the year-value is greater than or equal to 0 and less than or
602
+ // equal to 69, increment the year-value by 2000.
603
+ year += year < 70 ? 2000 : 1900
604
+
605
+ let hour = 0
606
+ if (date[commaIndex + 12] === '0') {
607
+ const code = date.charCodeAt(commaIndex + 13)
608
+ if (code < 48 || code > 57) {
609
+ return undefined // Not a digit
610
+ }
611
+ hour = code - 48 // Convert ASCII code to number
612
+ } else {
613
+ const code1 = date.charCodeAt(commaIndex + 12)
614
+ if (code1 < 48 || code1 > 50) {
615
+ return undefined // Not a digit between 0 and 2
616
+ }
617
+ const code2 = date.charCodeAt(commaIndex + 13)
618
+ if (code2 < 48 || code2 > 57) {
619
+ return undefined // Not a digit
620
+ }
621
+ if (code1 === 50 && code2 > 51) {
622
+ return undefined // Hour cannot be greater than 23
623
+ }
624
+ hour = (code1 - 48) * 10 + (code2 - 48) // Convert ASCII codes to number
625
+ }
626
+
627
+ let minute = 0
628
+ if (date[commaIndex + 15] === '0') {
629
+ const code = date.charCodeAt(commaIndex + 16)
630
+ if (code < 48 || code > 57) {
631
+ return undefined // Not a digit
632
+ }
633
+ minute = code - 48 // Convert ASCII code to number
634
+ } else {
635
+ const code1 = date.charCodeAt(commaIndex + 15)
636
+ if (code1 < 48 || code1 > 53) {
637
+ return undefined // Not a digit between 0 and 5
638
+ }
639
+ const code2 = date.charCodeAt(commaIndex + 16)
640
+ if (code2 < 48 || code2 > 57) {
641
+ return undefined // Not a digit
642
+ }
643
+ minute = (code1 - 48) * 10 + (code2 - 48) // Convert ASCII codes to number
644
+ }
645
+
646
+ let second = 0
647
+ if (date[commaIndex + 18] === '0') {
648
+ const code = date.charCodeAt(commaIndex + 19)
649
+ if (code < 48 || code > 57) {
650
+ return undefined // Not a digit
651
+ }
652
+ second = code - 48 // Convert ASCII code to number
653
+ } else {
654
+ const code1 = date.charCodeAt(commaIndex + 18)
655
+ if (code1 < 48 || code1 > 53) {
656
+ return undefined // Not a digit between 0 and 5
657
+ }
658
+ const code2 = date.charCodeAt(commaIndex + 19)
659
+ if (code2 < 48 || code2 > 57) {
660
+ return undefined // Not a digit
661
+ }
662
+ second = (code1 - 48) * 10 + (code2 - 48) // Convert ASCII codes to number
663
+ }
664
+
665
+ return makeDate(year, monthIdx, day, hour, minute, second, weekday)
666
+ }
667
+
668
+ module.exports = {
669
+ parseHttpDate
670
+ }
@@ -0,0 +1,28 @@
1
+ 'use strict'
2
+
3
+ /**
4
+ * @template {*} T
5
+ * @typedef {Object} DeferredPromise
6
+ * @property {Promise<T>} promise
7
+ * @property {(value?: T) => void} resolve
8
+ * @property {(reason?: any) => void} reject
9
+ */
10
+
11
+ /**
12
+ * @template {*} T
13
+ * @returns {DeferredPromise<T>} An object containing a promise and its resolve/reject methods.
14
+ */
15
+ function createDeferredPromise () {
16
+ let res
17
+ let rej
18
+ const promise = new Promise((resolve, reject) => {
19
+ res = resolve
20
+ rej = reject
21
+ })
22
+
23
+ return { promise, resolve: res, reject: rej }
24
+ }
25
+
26
+ module.exports = {
27
+ createDeferredPromise
28
+ }