@yanglaofish/fishtools 0.5.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (871) hide show
  1. package/README.md +24 -12
  2. package/manual/README.md +24 -12
  3. package/manual/docs/deployment.md +3 -3
  4. package/manual/docs/examples/action-plugin/package.json +1 -1
  5. package/manual/docs/modules.md +2 -0
  6. package/manual/docs/plans/2026-10-13-effective-inputs-and-tables.md +39 -0
  7. package/manual/docs/plans/2026-10-13-plugin-defaults.md +45 -0
  8. package/manual/docs/plans/2026-10-14-issue7-recovery.md +33 -0
  9. package/manual/docs/plans/2026-10-14-issue8-10-workflows.md +26 -0
  10. package/manual/docs/plans/2026-10-14-issue9-completion.md +47 -0
  11. package/manual/docs/plans/2026-10-14-managed-execution.md +58 -0
  12. package/manual/docs/plans/2026-10-14-plugin-discovery-history.md +41 -0
  13. package/manual/docs/plans/2026-10-14-structured-reports.md +77 -0
  14. package/manual/docs/plans/2026-10-14-unreleased-review.md +47 -0
  15. package/manual/docs/plugin-development.md +175 -11
  16. package/manual/docs/releases.md +49 -6
  17. package/manual/docs/superpowers/plans/2026-10-13-command-shortcuts.md +3 -2
  18. package/manual/docs/superpowers/plans/2026-10-13-global-plugins.md +56 -0
  19. package/manual/docs/superpowers/plans/2026-10-13-tui-readable-sessions.md +21 -0
  20. package/manual/docs/superpowers/reviews/2026-10-13-0.5.3-review.md +28 -0
  21. package/manual/docs/superpowers/reviews/2026-10-13-command-shortcuts-review.md +7 -0
  22. package/manual/docs/superpowers/reviews/2026-10-13-tui-sessions-review.md +57 -0
  23. package/manual/docs/superpowers/reviews/2026-10-14-0.6.0-release-review.md +19 -0
  24. package/manual/docs/superpowers/specs/2026-10-13-issue-4-workflow-menu.md +23 -0
  25. package/manual/docs/superpowers/specs/2026-10-13-issue-5-results-and-history.md +20 -0
  26. package/manual/docs/terminal-commands.md +8 -0
  27. package/manual/docs/verification.md +47 -0
  28. package/manual/packages/core/README.md +8 -0
  29. package/manual/packages/core/package.json +1 -1
  30. package/manual/packages/core/src/application.js +108 -53
  31. package/manual/packages/core/src/development-watch-worker.js +10 -1
  32. package/manual/packages/core/src/development.js +1 -1
  33. package/manual/packages/core/src/plugin-catalog.js +60 -0
  34. package/manual/packages/core/src/plugin-loading.js +24 -0
  35. package/manual/packages/core/src/version.js +1 -1
  36. package/manual/packages/fst-cli/README.md +8 -0
  37. package/manual/packages/fst-cli/bin/fst.js +7 -6
  38. package/manual/packages/fst-cli/package.json +1 -1
  39. package/manual/packages/fst-cli/src/development.js +6 -1
  40. package/manual/packages/fst-cli/src/terminal/command-menu.js +11 -5
  41. package/manual/packages/fst-cli/src/terminal/file-autocomplete.js +106 -0
  42. package/manual/packages/fst-cli/src/terminal/log-viewer.js +4 -3
  43. package/manual/packages/fst-cli/src/terminal/navigation.js +25 -1
  44. package/manual/packages/fst-cli/src/terminal/presentation.js +5 -3
  45. package/manual/packages/fst-cli/src/terminal/report-presentation.js +38 -0
  46. package/manual/packages/fst-cli/src/terminal/result-table.js +66 -0
  47. package/manual/packages/fst-cli/src/terminal/run-feed.js +104 -23
  48. package/manual/packages/fst-cli/src/terminal/run-presentation.js +91 -14
  49. package/manual/packages/fst-cli/src/terminal/run-viewer.js +34 -15
  50. package/manual/packages/fst-cli/src/terminal/schema.js +114 -4
  51. package/manual/packages/fst-cli/src/terminal/session-history.js +82 -0
  52. package/manual/packages/fst-cli/src/terminal/session.js +158 -54
  53. package/manual/packages/fst-cli/src/terminal/view.js +108 -73
  54. package/manual/packages/fst-cli/src/terminal/workflow-menu.js +17 -10
  55. package/manual/packages/fst-devtools/README.md +2 -0
  56. package/manual/packages/fst-devtools/package.json +2 -2
  57. package/manual/packages/fst-devtools/src/plugin-quality.js +4 -1
  58. package/manual/packages/fst-devtools/src/plugin-tools.js +2 -1
  59. package/manual/packages/fst-devtools/src/process-usage.js +62 -0
  60. package/manual/packages/fst-logs/README.md +23 -2
  61. package/manual/packages/fst-logs/package.json +2 -1
  62. package/manual/packages/fst-logs/src/file-identity.js +23 -0
  63. package/manual/packages/fst-logs/src/markdown-log.js +4 -3
  64. package/manual/packages/fst-logs/src/run-logs.js +3 -2
  65. package/manual/packages/fst-logs/src/session-history.js +180 -0
  66. package/manual/packages/fst-platform/README.md +9 -0
  67. package/manual/packages/fst-platform/package.json +4 -3
  68. package/manual/packages/fst-platform/src/managed-process.js +36 -0
  69. package/manual/packages/fst-platform/src/process.js +11 -3
  70. package/manual/packages/fst-platform/src/shell.js +46 -1
  71. package/manual/packages/fst-plugin/README.md +4 -0
  72. package/manual/packages/fst-plugin/package.json +1 -1
  73. package/manual/packages/fst-plugin/src/contracts.js +3 -0
  74. package/manual/packages/fst-plugin/src/host.js +54 -31
  75. package/manual/packages/fst-plugin/src/runtime.js +14 -8
  76. package/manual/packages/fst-workflow/package.json +1 -1
  77. package/manual/packages/fst-workflow/src/engine.js +1 -1
  78. package/manual/packages/fst-workspace/README.md +6 -0
  79. package/manual/packages/fst-workspace/package.json +2 -1
  80. package/manual/packages/fst-workspace/src/plugin-registry.js +58 -0
  81. package/manual/packages/fst-workspace/src/plugins.js +10 -5
  82. package/manual/packages/fst-workspace/src/workflows.js +32 -12
  83. package/manual/packages/pack/package.json +3 -3
  84. package/manual/packages/pack/runtime-cache.js +26 -0
  85. package/manual/packages/pack/runtime.js +6 -10
  86. package/manual/packages/sdk/README.md +10 -0
  87. package/manual/packages/sdk/inputs.js +53 -0
  88. package/manual/packages/sdk/package.json +2 -0
  89. package/manual/packages/sdk/reports.js +53 -0
  90. package/manual/plugins/commands/package.json +1 -1
  91. package/node_modules/@mytools/commands/package.json +1 -1
  92. package/node_modules/@mytools/core/README.md +8 -0
  93. package/node_modules/@mytools/core/package.json +1 -1
  94. package/node_modules/@mytools/core/src/application.js +108 -53
  95. package/node_modules/@mytools/core/src/development-watch-worker.js +10 -1
  96. package/node_modules/@mytools/core/src/development.js +1 -1
  97. package/node_modules/@mytools/core/src/plugin-catalog.js +60 -0
  98. package/node_modules/@mytools/core/src/plugin-loading.js +24 -0
  99. package/node_modules/@mytools/core/src/version.js +1 -1
  100. package/node_modules/@mytools/fst-cli/README.md +8 -0
  101. package/node_modules/@mytools/fst-cli/bin/fst.js +7 -6
  102. package/node_modules/@mytools/fst-cli/package.json +1 -1
  103. package/node_modules/@mytools/fst-cli/src/development.js +6 -1
  104. package/node_modules/@mytools/fst-cli/src/terminal/command-menu.js +11 -5
  105. package/node_modules/@mytools/fst-cli/src/terminal/file-autocomplete.js +106 -0
  106. package/node_modules/@mytools/fst-cli/src/terminal/log-viewer.js +4 -3
  107. package/node_modules/@mytools/fst-cli/src/terminal/navigation.js +25 -1
  108. package/node_modules/@mytools/fst-cli/src/terminal/presentation.js +5 -3
  109. package/node_modules/@mytools/fst-cli/src/terminal/report-presentation.js +38 -0
  110. package/node_modules/@mytools/fst-cli/src/terminal/result-table.js +66 -0
  111. package/node_modules/@mytools/fst-cli/src/terminal/run-feed.js +104 -23
  112. package/node_modules/@mytools/fst-cli/src/terminal/run-presentation.js +91 -14
  113. package/node_modules/@mytools/fst-cli/src/terminal/run-viewer.js +34 -15
  114. package/node_modules/@mytools/fst-cli/src/terminal/schema.js +114 -4
  115. package/node_modules/@mytools/fst-cli/src/terminal/session-history.js +82 -0
  116. package/node_modules/@mytools/fst-cli/src/terminal/session.js +158 -54
  117. package/node_modules/@mytools/fst-cli/src/terminal/view.js +108 -73
  118. package/node_modules/@mytools/fst-cli/src/terminal/workflow-menu.js +17 -10
  119. package/node_modules/@mytools/fst-devtools/README.md +2 -0
  120. package/node_modules/@mytools/fst-devtools/package.json +2 -2
  121. package/node_modules/@mytools/fst-devtools/src/plugin-quality.js +4 -1
  122. package/node_modules/@mytools/fst-devtools/src/plugin-tools.js +2 -1
  123. package/node_modules/@mytools/fst-devtools/src/process-usage.js +62 -0
  124. package/node_modules/@mytools/fst-logs/README.md +23 -2
  125. package/node_modules/@mytools/fst-logs/package.json +2 -1
  126. package/node_modules/@mytools/fst-logs/src/file-identity.js +23 -0
  127. package/node_modules/@mytools/fst-logs/src/markdown-log.js +4 -3
  128. package/node_modules/@mytools/fst-logs/src/run-logs.js +3 -2
  129. package/node_modules/@mytools/fst-logs/src/session-history.js +180 -0
  130. package/node_modules/@mytools/fst-platform/README.md +9 -0
  131. package/node_modules/@mytools/fst-platform/node_modules/undici/LICENSE +21 -0
  132. package/node_modules/{undici/docs/docs/index.md → @mytools/fst-platform/node_modules/undici/README.md} +85 -137
  133. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Agent.md +84 -0
  134. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/BalancedPool.md +99 -0
  135. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/CacheStorage.md +30 -0
  136. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/CacheStore.md +164 -0
  137. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Client.md +288 -0
  138. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/ClientStats.md +27 -0
  139. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Connector.md +115 -0
  140. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/ContentType.md +57 -0
  141. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Cookies.md +128 -0
  142. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Debug.md +62 -0
  143. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +317 -0
  144. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Dispatcher.md +1393 -0
  145. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +159 -0
  146. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Errors.md +49 -0
  147. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/EventSource.md +45 -0
  148. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Fetch.md +60 -0
  149. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/GlobalInstallation.md +139 -0
  150. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/H2CClient.md +263 -0
  151. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockAgent.md +603 -0
  152. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockCallHistory.md +197 -0
  153. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +43 -0
  154. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockClient.md +81 -0
  155. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockErrors.md +12 -0
  156. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/MockPool.md +555 -0
  157. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Pool.md +84 -0
  158. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/PoolStats.md +35 -0
  159. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/ProxyAgent.md +229 -0
  160. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RedirectHandler.md +93 -0
  161. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RetryAgent.md +50 -0
  162. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RetryHandler.md +118 -0
  163. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/RoundRobinPool.md +145 -0
  164. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/SnapshotAgent.md +616 -0
  165. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +275 -0
  166. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/Util.md +25 -0
  167. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/WebSocket.md +141 -0
  168. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/api/api-lifecycle.md +91 -0
  169. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/client-certificate.md +64 -0
  170. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/docs/docs/best-practices/crawling.md +1 -3
  171. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/mocking-request.md +190 -0
  172. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/proxy.md +127 -0
  173. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/docs/docs/best-practices/undici-vs-builtin-fetch.md +8 -10
  174. package/node_modules/@mytools/fst-platform/node_modules/undici/docs/docs/best-practices/writing-tests.md +63 -0
  175. package/node_modules/@mytools/fst-platform/node_modules/undici/index-fetch.js +65 -0
  176. package/node_modules/@mytools/fst-platform/node_modules/undici/index.d.ts +3 -0
  177. package/node_modules/@mytools/fst-platform/node_modules/undici/index.js +234 -0
  178. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/abort-signal.js +59 -0
  179. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-connect.js +110 -0
  180. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-pipeline.js +252 -0
  181. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-request.js +214 -0
  182. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-stream.js +209 -0
  183. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/api-upgrade.js +111 -0
  184. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/index.js +7 -0
  185. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/api/readable.js +580 -0
  186. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/cache/memory-cache-store.js +3 -3
  187. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/cache/sqlite-cache-store.js +1 -3
  188. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/connect.js +153 -0
  189. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/constants.js +143 -0
  190. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/diagnostics.js +227 -0
  191. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/errors.js +477 -0
  192. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/request.js +485 -0
  193. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/symbols.js +75 -0
  194. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/tree.js +160 -0
  195. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/core/util.js +992 -0
  196. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/agent.js +158 -0
  197. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/balanced-pool.js +221 -0
  198. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/client-h1.js +1746 -0
  199. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/client-h2.js +1060 -0
  200. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/client.js +668 -0
  201. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/dispatcher-base.js +184 -0
  202. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/dispatcher.js +48 -0
  203. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +146 -0
  204. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/fixed-queue.js +135 -0
  205. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/dispatcher/h2c-client.js +4 -4
  206. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/pool-base.js +214 -0
  207. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/pool.js +118 -0
  208. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/proxy-agent.js +319 -0
  209. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
  210. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/dispatcher/round-robin-pool.js +10 -32
  211. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/dispatcher/socks5-proxy-agent.js +63 -153
  212. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/global.js +59 -0
  213. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/handler/cache-handler.js +7 -49
  214. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/handler/cache-revalidation-handler.js +0 -10
  215. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/decorator-handler.js +67 -0
  216. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/handler/deduplication-handler.js +10 -29
  217. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/redirect-handler.js +238 -0
  218. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/retry-handler.js +504 -0
  219. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/unwrap-handler.js +106 -0
  220. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/handler/wrap-handler.js +105 -0
  221. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/interceptor/cache.js +26 -79
  222. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/interceptor/decompress.js +3 -13
  223. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/interceptor/deduplicate.js +4 -5
  224. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/dns.js +571 -0
  225. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/dump.js +99 -0
  226. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/redirect.js +21 -0
  227. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/response-error.js +95 -0
  228. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/interceptor/retry.js +19 -0
  229. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  230. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/constants.js +531 -0
  231. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/llhttp-wasm.js +15 -0
  232. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +15 -0
  233. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/llhttp/utils.js +12 -0
  234. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-agent.js +232 -0
  235. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/mock-call-history.js +1 -1
  236. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-client.js +68 -0
  237. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-errors.js +29 -0
  238. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-interceptor.js +209 -0
  239. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-pool.js +68 -0
  240. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-symbols.js +32 -0
  241. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/mock-utils.js +486 -0
  242. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
  243. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/snapshot-agent.js +7 -25
  244. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/snapshot-recorder.js +3 -38
  245. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/cache.js +10 -92
  246. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/util/promise.js +28 -0
  247. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/runtime-features.js +34 -3
  248. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/util/timers.js +425 -0
  249. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cache/cache.js +864 -0
  250. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
  251. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cache/util.js +45 -0
  252. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/constants.js +12 -0
  253. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/index.js +199 -0
  254. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/parse.js +314 -0
  255. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/cookies/util.js +352 -0
  256. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/eventsource/eventsource-stream.js +494 -0
  257. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/eventsource/eventsource.js +501 -0
  258. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/eventsource/util.js +29 -0
  259. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/LICENSE +21 -0
  260. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/body.js +509 -0
  261. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/constants.js +131 -0
  262. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/data-url.js +596 -0
  263. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/formdata-parser.js +586 -0
  264. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/formdata.js +259 -0
  265. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/global.js +40 -0
  266. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/headers.js +719 -0
  267. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/index.js +2413 -0
  268. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/request.js +1115 -0
  269. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/response.js +641 -0
  270. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/fetch/util.js +1522 -0
  271. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/infra/index.js +1 -16
  272. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/webidl/index.js +21 -7
  273. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/connection.js +339 -0
  274. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/constants.js +126 -0
  275. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/events.js +331 -0
  276. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/frame.js +133 -0
  277. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/permessage-deflate.js +105 -0
  278. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/receiver.js +507 -0
  279. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/sender.js +109 -0
  280. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/websocket/stream/websocketerror.js +10 -13
  281. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/websocket/stream/websocketstream.js +14 -29
  282. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/util.js +347 -0
  283. package/node_modules/@mytools/fst-platform/node_modules/undici/lib/web/websocket/websocket.js +758 -0
  284. package/node_modules/@mytools/fst-platform/node_modules/undici/package.json +152 -0
  285. package/node_modules/@mytools/fst-platform/node_modules/undici/scripts/strip-comments.js +10 -0
  286. package/node_modules/@mytools/fst-platform/node_modules/undici/types/README.md +6 -0
  287. package/node_modules/@mytools/fst-platform/node_modules/undici/types/agent.d.ts +32 -0
  288. package/node_modules/@mytools/fst-platform/node_modules/undici/types/api.d.ts +43 -0
  289. package/node_modules/@mytools/fst-platform/node_modules/undici/types/balanced-pool.d.ts +30 -0
  290. package/node_modules/@mytools/fst-platform/node_modules/undici/types/cache.d.ts +36 -0
  291. package/node_modules/@mytools/fst-platform/node_modules/undici/types/client.d.ts +139 -0
  292. package/node_modules/@mytools/fst-platform/node_modules/undici/types/connector.d.ts +36 -0
  293. package/node_modules/@mytools/fst-platform/node_modules/undici/types/content-type.d.ts +21 -0
  294. package/node_modules/@mytools/fst-platform/node_modules/undici/types/cookies.d.ts +30 -0
  295. package/node_modules/@mytools/fst-platform/node_modules/undici/types/diagnostics-channel.d.ts +74 -0
  296. package/node_modules/@mytools/fst-platform/node_modules/undici/types/dispatcher.d.ts +275 -0
  297. package/node_modules/@mytools/fst-platform/node_modules/undici/types/env-http-proxy-agent.d.ts +22 -0
  298. package/node_modules/@mytools/fst-platform/node_modules/undici/types/errors.d.ts +177 -0
  299. package/node_modules/@mytools/fst-platform/node_modules/undici/types/eventsource.d.ts +66 -0
  300. package/node_modules/@mytools/fst-platform/node_modules/undici/types/fetch.d.ts +231 -0
  301. package/node_modules/@mytools/fst-platform/node_modules/undici/types/formdata.d.ts +114 -0
  302. package/node_modules/@mytools/fst-platform/node_modules/undici/types/global-dispatcher.d.ts +9 -0
  303. package/node_modules/@mytools/fst-platform/node_modules/undici/types/global-origin.d.ts +7 -0
  304. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/h2c-client.d.ts +6 -6
  305. package/node_modules/@mytools/fst-platform/node_modules/undici/types/handlers.d.ts +14 -0
  306. package/node_modules/@mytools/fst-platform/node_modules/undici/types/header.d.ts +160 -0
  307. package/node_modules/@mytools/fst-platform/node_modules/undici/types/index.d.ts +91 -0
  308. package/node_modules/@mytools/fst-platform/node_modules/undici/types/interceptors.d.ts +82 -0
  309. package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-agent.d.ts +68 -0
  310. package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-client.d.ts +27 -0
  311. package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-errors.d.ts +12 -0
  312. package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-interceptor.d.ts +94 -0
  313. package/node_modules/@mytools/fst-platform/node_modules/undici/types/mock-pool.d.ts +27 -0
  314. package/node_modules/@mytools/fst-platform/node_modules/undici/types/patch.d.ts +29 -0
  315. package/node_modules/@mytools/fst-platform/node_modules/undici/types/pool-stats.d.ts +19 -0
  316. package/node_modules/@mytools/fst-platform/node_modules/undici/types/pool.d.ts +41 -0
  317. package/node_modules/@mytools/fst-platform/node_modules/undici/types/proxy-agent.d.ts +29 -0
  318. package/node_modules/@mytools/fst-platform/node_modules/undici/types/readable.d.ts +68 -0
  319. package/node_modules/@mytools/fst-platform/node_modules/undici/types/retry-agent.d.ts +8 -0
  320. package/node_modules/@mytools/fst-platform/node_modules/undici/types/retry-handler.d.ts +125 -0
  321. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/round-robin-pool.d.ts +2 -0
  322. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/snapshot-agent.d.ts +0 -4
  323. package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/socks5-proxy-agent.d.ts +2 -4
  324. package/node_modules/@mytools/fst-platform/node_modules/undici/types/util.d.ts +18 -0
  325. package/node_modules/@mytools/fst-platform/node_modules/undici/types/webidl.d.ts +347 -0
  326. package/node_modules/@mytools/fst-platform/node_modules/undici/types/websocket.d.ts +188 -0
  327. package/node_modules/@mytools/fst-platform/package.json +4 -3
  328. package/node_modules/@mytools/fst-platform/src/managed-process.js +36 -0
  329. package/node_modules/@mytools/fst-platform/src/process.js +11 -3
  330. package/node_modules/@mytools/fst-platform/src/shell.js +46 -1
  331. package/node_modules/@mytools/fst-plugin/README.md +4 -0
  332. package/node_modules/@mytools/fst-plugin/package.json +1 -1
  333. package/node_modules/@mytools/fst-plugin/src/contracts.js +3 -0
  334. package/node_modules/@mytools/fst-plugin/src/host.js +54 -31
  335. package/node_modules/@mytools/fst-plugin/src/runtime.js +14 -8
  336. package/node_modules/@mytools/fst-workflow/package.json +1 -1
  337. package/node_modules/@mytools/fst-workflow/src/engine.js +1 -1
  338. package/node_modules/@mytools/fst-workspace/README.md +6 -0
  339. package/node_modules/@mytools/fst-workspace/package.json +2 -1
  340. package/node_modules/@mytools/fst-workspace/src/plugin-registry.js +58 -0
  341. package/node_modules/@mytools/fst-workspace/src/plugins.js +10 -5
  342. package/node_modules/@mytools/fst-workspace/src/workflows.js +32 -12
  343. package/node_modules/@mytools/pack/package.json +3 -3
  344. package/node_modules/@mytools/pack/runtime-cache.js +26 -0
  345. package/node_modules/@mytools/pack/runtime.js +6 -10
  346. package/node_modules/@mytools/sdk/README.md +10 -0
  347. package/node_modules/@mytools/sdk/inputs.js +53 -0
  348. package/node_modules/@mytools/sdk/package.json +2 -0
  349. package/node_modules/@mytools/sdk/reports.js +53 -0
  350. package/node_modules/@mytools/web/public/THIRD_PARTY_NOTICES.txt +1197 -1207
  351. package/node_modules/@npmcli/agent/lib/agents.js +0 -10
  352. package/node_modules/@npmcli/agent/package.json +12 -11
  353. package/node_modules/@npmcli/arborist/README.md +2 -2
  354. package/node_modules/@npmcli/arborist/bin/index.js +2 -1
  355. package/node_modules/@npmcli/arborist/bin/shrinkwrap.js +7 -0
  356. package/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js +25 -159
  357. package/node_modules/@npmcli/arborist/lib/arborist/isolated-reifier.js +49 -11
  358. package/node_modules/@npmcli/arborist/lib/arborist/load-actual.js +0 -67
  359. package/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js +37 -5
  360. package/node_modules/@npmcli/arborist/lib/arborist/rebuild.js +8 -15
  361. package/node_modules/@npmcli/arborist/lib/arborist/reify.js +42 -59
  362. package/node_modules/@npmcli/arborist/lib/consistent-resolve.js +1 -1
  363. package/node_modules/@npmcli/arborist/lib/diff.js +22 -17
  364. package/node_modules/@npmcli/arborist/lib/edge.js +2 -22
  365. package/node_modules/@npmcli/arborist/lib/index.js +0 -2
  366. package/node_modules/@npmcli/arborist/lib/isolated-classes.js +1 -4
  367. package/node_modules/@npmcli/arborist/lib/node.js +9 -13
  368. package/node_modules/@npmcli/arborist/lib/place-dep.js +0 -6
  369. package/node_modules/@npmcli/arborist/lib/printable.js +5 -0
  370. package/node_modules/@npmcli/arborist/lib/shrinkwrap.js +32 -55
  371. package/node_modules/@npmcli/arborist/package.json +26 -32
  372. package/node_modules/@npmcli/fs/lib/move-file.js +5 -5
  373. package/node_modules/@npmcli/fs/package.json +5 -5
  374. package/node_modules/@npmcli/git/package.json +12 -13
  375. package/node_modules/@npmcli/installed-package-contents/package.json +7 -7
  376. package/node_modules/@npmcli/map-workspaces/package.json +7 -7
  377. package/node_modules/@npmcli/metavuln-calculator/package.json +16 -10
  378. package/node_modules/@npmcli/name-from-folder/package.json +16 -13
  379. package/node_modules/@npmcli/node-gyp/package.json +5 -5
  380. package/node_modules/@npmcli/package-json/lib/index.js +1 -2
  381. package/node_modules/@npmcli/package-json/lib/normalize.js +22 -23
  382. package/node_modules/@npmcli/package-json/package.json +10 -11
  383. package/node_modules/@npmcli/promise-spawn/README.md +2 -1
  384. package/node_modules/@npmcli/promise-spawn/package.json +5 -5
  385. package/node_modules/@npmcli/redact/package.json +4 -4
  386. package/node_modules/@npmcli/run-script/lib/is-server-package.js +11 -0
  387. package/node_modules/@npmcli/run-script/lib/make-spawn-args.js +6 -5
  388. package/node_modules/@npmcli/run-script/lib/run-script-pkg.js +13 -4
  389. package/node_modules/@npmcli/run-script/lib/run-script.js +2 -1
  390. package/node_modules/@npmcli/run-script/package.json +11 -12
  391. package/node_modules/@sigstore/bundle/README.md +1 -1
  392. package/node_modules/@sigstore/bundle/dist/error.js +0 -1
  393. package/node_modules/@sigstore/bundle/package.json +2 -2
  394. package/node_modules/@sigstore/core/README.md +1 -1
  395. package/node_modules/@sigstore/core/dist/asn1/length.js +1 -12
  396. package/node_modules/@sigstore/core/dist/asn1/obj.js +7 -25
  397. package/node_modules/@sigstore/core/dist/asn1/parse.js +5 -24
  398. package/node_modules/@sigstore/core/package.json +2 -2
  399. package/node_modules/@sigstore/sign/README.md +1 -1
  400. package/node_modules/@sigstore/sign/dist/signer/fulcio/ephemeral.js +1 -1
  401. package/node_modules/@sigstore/sign/package.json +9 -9
  402. package/node_modules/@sigstore/tuf/README.md +1 -1
  403. package/node_modules/@sigstore/tuf/package.json +4 -4
  404. package/node_modules/@sigstore/tuf/seeds.json +1 -1
  405. package/node_modules/@sigstore/verify/README.md +1 -1
  406. package/node_modules/@sigstore/verify/dist/bundle/dsse.d.ts +0 -1
  407. package/node_modules/@sigstore/verify/dist/bundle/dsse.js +0 -6
  408. package/node_modules/@sigstore/verify/dist/bundle/message.d.ts +0 -1
  409. package/node_modules/@sigstore/verify/dist/bundle/message.js +0 -5
  410. package/node_modules/@sigstore/verify/dist/policy.d.ts +1 -1
  411. package/node_modules/@sigstore/verify/dist/policy.js +2 -0
  412. package/node_modules/@sigstore/verify/dist/shared.types.d.ts +1 -6
  413. package/node_modules/@sigstore/verify/dist/tlog/checkpoint.js +3 -17
  414. package/node_modules/@sigstore/verify/dist/tlog/hashedrekord.js +4 -4
  415. package/node_modules/@sigstore/verify/dist/tlog/index.js +1 -13
  416. package/node_modules/@sigstore/verify/dist/tlog/merkle.js +1 -12
  417. package/node_modules/@sigstore/verify/dist/verifier.js +5 -13
  418. package/node_modules/@sigstore/verify/package.json +5 -5
  419. package/node_modules/@tufjs/models/package.json +3 -3
  420. package/node_modules/abbrev/package.json +8 -9
  421. package/node_modules/agent-base/dist/helpers.d.ts +5 -0
  422. package/node_modules/agent-base/dist/helpers.d.ts.map +1 -1
  423. package/node_modules/agent-base/dist/helpers.js +34 -5
  424. package/node_modules/agent-base/dist/helpers.js.map +1 -1
  425. package/node_modules/agent-base/dist/index.d.ts +5 -1
  426. package/node_modules/agent-base/dist/index.d.ts.map +1 -1
  427. package/node_modules/agent-base/dist/index.js +40 -8
  428. package/node_modules/agent-base/dist/index.js.map +1 -1
  429. package/node_modules/agent-base/package.json +12 -12
  430. package/node_modules/bin-links/README.md +4 -5
  431. package/node_modules/bin-links/lib/fix-bin.js +1 -3
  432. package/node_modules/bin-links/lib/index.js +16 -8
  433. package/node_modules/bin-links/lib/link-mans.js +53 -0
  434. package/node_modules/bin-links/package.json +12 -11
  435. package/node_modules/cacache/lib/content/write.js +0 -2
  436. package/node_modules/cacache/lib/entry-index.js +0 -3
  437. package/node_modules/cacache/lib/rm.js +0 -1
  438. package/node_modules/cacache/lib/util/tmp.js +1 -5
  439. package/node_modules/cacache/lib/verify.js +2 -2
  440. package/node_modules/cacache/package.json +7 -7
  441. package/node_modules/cmd-shim/lib/index.js +32 -67
  442. package/node_modules/cmd-shim/package.json +5 -5
  443. package/node_modules/hosted-git-info/README.md +1 -1
  444. package/node_modules/hosted-git-info/lib/parse-url.js +3 -1
  445. package/node_modules/hosted-git-info/package.json +4 -4
  446. package/node_modules/http-proxy-agent/dist/index.d.ts +5 -8
  447. package/node_modules/http-proxy-agent/dist/index.d.ts.map +1 -1
  448. package/node_modules/http-proxy-agent/dist/index.js +42 -26
  449. package/node_modules/http-proxy-agent/dist/index.js.map +1 -1
  450. package/node_modules/http-proxy-agent/package.json +14 -15
  451. package/node_modules/https-proxy-agent/dist/index.d.ts +5 -9
  452. package/node_modules/https-proxy-agent/dist/index.d.ts.map +1 -1
  453. package/node_modules/https-proxy-agent/dist/index.js +44 -98
  454. package/node_modules/https-proxy-agent/dist/index.js.map +1 -1
  455. package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts +3 -0
  456. package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts.map +1 -1
  457. package/node_modules/https-proxy-agent/dist/parse-proxy-response.js +10 -3
  458. package/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map +1 -1
  459. package/node_modules/https-proxy-agent/package.json +15 -16
  460. package/node_modules/ignore-walk/package.json +4 -4
  461. package/node_modules/ini/package.json +5 -5
  462. package/node_modules/ip-address/README.md +70 -70
  463. package/node_modules/ip-address/dist/ipv6.js +7 -4
  464. package/node_modules/ip-address/dist/ipv6.js.map +1 -1
  465. package/node_modules/ip-address/dist/v6/constants.d.ts +3 -0
  466. package/node_modules/ip-address/dist/v6/constants.js +3 -0
  467. package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
  468. package/node_modules/ip-address/package.json +2 -1
  469. package/node_modules/json-parse-even-better-errors/lib/index.js +1 -3
  470. package/node_modules/json-parse-even-better-errors/package.json +17 -13
  471. package/node_modules/make-fetch-happen/package.json +11 -11
  472. package/node_modules/minipass-fetch/package.json +4 -4
  473. package/node_modules/node-gyp/.release-please-manifest.json +1 -1
  474. package/node_modules/node-gyp/CHANGELOG.md +0 -102
  475. package/node_modules/node-gyp/README.md +2 -3
  476. package/node_modules/node-gyp/eslint.config.js +1 -4
  477. package/node_modules/node-gyp/gyp/.release-please-manifest.json +1 -1
  478. package/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +19 -14
  479. package/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +2 -7
  480. package/node_modules/node-gyp/gyp/pyproject.toml +1 -1
  481. package/node_modules/node-gyp/lib/build.js +6 -18
  482. package/node_modules/node-gyp/lib/create-config-gypi.js +0 -5
  483. package/node_modules/node-gyp/lib/node-gyp.js +2 -9
  484. package/node_modules/node-gyp/lib/rebuild.js +3 -3
  485. package/node_modules/node-gyp/package.json +9 -11
  486. package/node_modules/nopt/README.md +4 -2
  487. package/node_modules/nopt/lib/debug.js +5 -0
  488. package/node_modules/nopt/lib/nopt-lib.js +43 -7
  489. package/node_modules/nopt/lib/nopt.js +4 -2
  490. package/node_modules/nopt/lib/type-defs.js +13 -8
  491. package/node_modules/nopt/package.json +17 -15
  492. package/node_modules/npm-bundled/package.json +6 -6
  493. package/node_modules/npm-install-checks/package.json +5 -5
  494. package/node_modules/npm-normalize-package-bin/package.json +16 -13
  495. package/node_modules/npm-package-arg/package.json +7 -7
  496. package/node_modules/npm-packlist/README.md +30 -45
  497. package/node_modules/npm-packlist/lib/index.js +47 -115
  498. package/node_modules/npm-packlist/package.json +8 -10
  499. package/node_modules/npm-pick-manifest/package.json +19 -15
  500. package/node_modules/npm-registry-fetch/lib/errors.js +3 -8
  501. package/node_modules/npm-registry-fetch/package.json +12 -12
  502. package/node_modules/pacote/lib/dir.js +5 -60
  503. package/node_modules/pacote/lib/fetcher.js +0 -4
  504. package/node_modules/pacote/lib/git.js +3 -11
  505. package/node_modules/pacote/lib/util/add-git-sha.js +1 -1
  506. package/node_modules/pacote/package.json +18 -19
  507. package/node_modules/parse-conflict-json/package.json +6 -6
  508. package/node_modules/proc-log/package.json +4 -4
  509. package/node_modules/read-cmd-shim/lib/index.js +1 -1
  510. package/node_modules/read-cmd-shim/package.json +18 -14
  511. package/node_modules/sigstore/README.md +1 -1
  512. package/node_modules/sigstore/package.json +10 -10
  513. package/node_modules/socks-proxy-agent/dist/index.d.ts +3 -1
  514. package/node_modules/socks-proxy-agent/dist/index.d.ts.map +1 -1
  515. package/node_modules/socks-proxy-agent/dist/index.js +43 -17
  516. package/node_modules/socks-proxy-agent/dist/index.js.map +1 -1
  517. package/node_modules/socks-proxy-agent/package.json +15 -15
  518. package/node_modules/ssri/package.json +4 -4
  519. package/node_modules/tuf-js/dist/config.d.ts +2 -2
  520. package/node_modules/tuf-js/dist/fetcher.d.ts +4 -4
  521. package/node_modules/tuf-js/dist/fetcher.js +16 -55
  522. package/node_modules/tuf-js/dist/updater.js +2 -2
  523. package/node_modules/tuf-js/package.json +8 -8
  524. package/node_modules/undici/README.md +72 -405
  525. package/node_modules/undici/docs/docs/api/Agent.md +41 -252
  526. package/node_modules/undici/docs/docs/api/BalancedPool.md +48 -246
  527. package/node_modules/undici/docs/docs/api/CacheStorage.md +13 -171
  528. package/node_modules/undici/docs/docs/api/Client.md +139 -395
  529. package/node_modules/undici/docs/docs/api/Connector.md +35 -118
  530. package/node_modules/undici/docs/docs/api/ContentType.md +25 -65
  531. package/node_modules/undici/docs/docs/api/Cookies.md +47 -125
  532. package/node_modules/undici/docs/docs/api/Debug.md +31 -47
  533. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +97 -409
  534. package/node_modules/undici/docs/docs/api/DispatchInterceptor.md +60 -0
  535. package/node_modules/undici/docs/docs/api/Dispatcher.md +1011 -500
  536. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +96 -105
  537. package/node_modules/undici/docs/docs/api/Errors.md +28 -528
  538. package/node_modules/undici/docs/docs/api/EventSource.md +13 -326
  539. package/node_modules/undici/docs/docs/api/Fetch.md +24 -693
  540. package/node_modules/undici/docs/docs/api/MockAgent.md +264 -346
  541. package/node_modules/undici/docs/docs/api/MockClient.md +31 -153
  542. package/node_modules/undici/docs/docs/api/MockErrors.md +5 -56
  543. package/node_modules/undici/docs/docs/api/MockPool.md +253 -324
  544. package/node_modules/undici/docs/docs/api/Pool.md +41 -235
  545. package/node_modules/undici/docs/docs/api/PoolStats.md +13 -119
  546. package/node_modules/undici/docs/docs/api/ProxyAgent.md +81 -198
  547. package/node_modules/undici/docs/docs/api/RedirectHandler.md +58 -238
  548. package/node_modules/undici/docs/docs/api/RetryAgent.md +28 -119
  549. package/node_modules/undici/docs/docs/api/RetryHandler.md +78 -161
  550. package/node_modules/undici/docs/docs/api/Util.md +11 -68
  551. package/node_modules/undici/docs/docs/api/WebSocket.md +24 -509
  552. package/node_modules/undici/docs/docs/api/api-lifecycle.md +33 -101
  553. package/node_modules/undici/docs/docs/best-practices/client-certificate.md +0 -2
  554. package/node_modules/undici/docs/docs/best-practices/mocking-request.md +2 -58
  555. package/node_modules/undici/docs/docs/best-practices/proxy.md +1 -3
  556. package/node_modules/undici/docs/docs/best-practices/writing-tests.md +0 -45
  557. package/node_modules/undici/index-fetch.js +4 -34
  558. package/node_modules/undici/index.d.ts +1 -1
  559. package/node_modules/undici/index.js +20 -87
  560. package/node_modules/undici/lib/api/abort-signal.js +0 -2
  561. package/node_modules/undici/lib/api/api-connect.js +11 -15
  562. package/node_modules/undici/lib/api/api-pipeline.js +19 -33
  563. package/node_modules/undici/lib/api/api-request.js +59 -89
  564. package/node_modules/undici/lib/api/api-stream.js +64 -114
  565. package/node_modules/undici/lib/api/api-upgrade.js +13 -26
  566. package/node_modules/undici/lib/api/readable.js +87 -317
  567. package/node_modules/undici/lib/api/util.js +93 -0
  568. package/node_modules/undici/lib/core/connect.js +125 -77
  569. package/node_modules/undici/lib/core/constants.js +9 -11
  570. package/node_modules/undici/lib/core/diagnostics.js +129 -154
  571. package/node_modules/undici/lib/core/errors.js +50 -122
  572. package/node_modules/undici/lib/core/request.js +87 -172
  573. package/node_modules/undici/lib/core/symbols.js +2 -14
  574. package/node_modules/undici/lib/core/tree.js +2 -10
  575. package/node_modules/undici/lib/core/util.js +190 -481
  576. package/node_modules/undici/lib/dispatcher/agent.js +35 -83
  577. package/node_modules/undici/lib/dispatcher/balanced-pool.js +38 -46
  578. package/node_modules/undici/lib/dispatcher/client-h1.js +199 -492
  579. package/node_modules/undici/lib/dispatcher/client-h2.js +380 -1409
  580. package/node_modules/undici/lib/dispatcher/client.js +130 -253
  581. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +52 -50
  582. package/node_modules/undici/lib/dispatcher/dispatcher.js +24 -17
  583. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +45 -75
  584. package/node_modules/undici/lib/dispatcher/fixed-queue.js +50 -68
  585. package/node_modules/undici/lib/dispatcher/pool-base.js +54 -153
  586. package/node_modules/undici/lib/dispatcher/pool-stats.js +34 -0
  587. package/node_modules/undici/lib/dispatcher/pool.js +16 -135
  588. package/node_modules/undici/lib/dispatcher/proxy-agent.js +41 -175
  589. package/node_modules/undici/lib/dispatcher/retry-agent.js +0 -3
  590. package/node_modules/undici/lib/global.js +9 -59
  591. package/node_modules/undici/lib/handler/decorator-handler.js +15 -43
  592. package/node_modules/undici/lib/handler/redirect-handler.js +116 -127
  593. package/node_modules/undici/lib/handler/retry-handler.js +182 -398
  594. package/node_modules/undici/lib/interceptor/dns.js +47 -254
  595. package/node_modules/undici/lib/interceptor/dump.js +56 -32
  596. package/node_modules/undici/lib/interceptor/redirect-interceptor.js +21 -0
  597. package/node_modules/undici/lib/interceptor/redirect.js +14 -11
  598. package/node_modules/undici/lib/interceptor/response-error.js +22 -31
  599. package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  600. package/node_modules/undici/lib/llhttp/constants.js +193 -446
  601. package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -11
  602. package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -11
  603. package/node_modules/undici/lib/llhttp/utils.js +12 -9
  604. package/node_modules/undici/lib/mock/mock-agent.js +22 -106
  605. package/node_modules/undici/lib/mock/mock-client.js +4 -13
  606. package/node_modules/undici/lib/mock/mock-errors.js +2 -3
  607. package/node_modules/undici/lib/mock/mock-interceptor.js +13 -33
  608. package/node_modules/undici/lib/mock/mock-pool.js +4 -13
  609. package/node_modules/undici/lib/mock/mock-symbols.js +1 -10
  610. package/node_modules/undici/lib/mock/mock-utils.js +51 -404
  611. package/node_modules/undici/lib/mock/pluralizer.js +29 -0
  612. package/node_modules/undici/lib/util/timers.js +9 -11
  613. package/node_modules/undici/lib/web/cache/cache.js +51 -63
  614. package/node_modules/undici/lib/web/cache/cachestorage.js +7 -13
  615. package/node_modules/undici/lib/web/cache/symbols.js +5 -0
  616. package/node_modules/undici/lib/web/cookies/index.js +18 -45
  617. package/node_modules/undici/lib/web/cookies/parse.js +149 -157
  618. package/node_modules/undici/lib/web/cookies/util.js +2 -4
  619. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +9 -37
  620. package/node_modules/undici/lib/web/eventsource/eventsource.js +64 -108
  621. package/node_modules/undici/lib/web/eventsource/util.js +5 -28
  622. package/node_modules/undici/lib/web/fetch/body.js +148 -173
  623. package/node_modules/undici/lib/web/fetch/constants.js +6 -13
  624. package/node_modules/undici/lib/web/fetch/data-url.js +167 -19
  625. package/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +46 -0
  626. package/node_modules/undici/lib/web/fetch/file.js +126 -0
  627. package/node_modules/undici/lib/web/fetch/formdata-parser.js +117 -229
  628. package/node_modules/undici/lib/web/fetch/formdata.js +65 -85
  629. package/node_modules/undici/lib/web/fetch/headers.js +108 -143
  630. package/node_modules/undici/lib/web/fetch/index.js +446 -627
  631. package/node_modules/undici/lib/web/fetch/request.js +115 -217
  632. package/node_modules/undici/lib/web/fetch/response.js +82 -110
  633. package/node_modules/undici/lib/web/fetch/symbols.js +9 -0
  634. package/node_modules/undici/lib/web/fetch/util.js +393 -291
  635. package/node_modules/undici/lib/web/fetch/webidl.js +695 -0
  636. package/node_modules/undici/lib/web/fileapi/encoding.js +290 -0
  637. package/node_modules/undici/lib/web/fileapi/filereader.js +344 -0
  638. package/node_modules/undici/lib/web/fileapi/progressevent.js +78 -0
  639. package/node_modules/undici/lib/web/fileapi/symbols.js +10 -0
  640. package/node_modules/undici/lib/web/fileapi/util.js +391 -0
  641. package/node_modules/undici/lib/web/websocket/connection.js +160 -139
  642. package/node_modules/undici/lib/web/websocket/constants.js +10 -70
  643. package/node_modules/undici/lib/web/websocket/events.js +30 -49
  644. package/node_modules/undici/lib/web/websocket/frame.js +20 -51
  645. package/node_modules/undici/lib/web/websocket/receiver.js +87 -83
  646. package/node_modules/undici/lib/web/websocket/sender.js +13 -18
  647. package/node_modules/undici/lib/web/websocket/symbols.js +12 -0
  648. package/node_modules/undici/lib/web/websocket/util.js +90 -115
  649. package/node_modules/undici/lib/web/websocket/websocket.js +171 -359
  650. package/node_modules/undici/package.json +57 -49
  651. package/node_modules/undici/scripts/strip-comments.js +1 -3
  652. package/node_modules/undici/types/agent.d.ts +13 -12
  653. package/node_modules/undici/types/api.d.ts +26 -26
  654. package/node_modules/undici/types/balanced-pool.d.ts +12 -13
  655. package/node_modules/undici/types/client.d.ts +39 -98
  656. package/node_modules/undici/types/connector.d.ts +2 -5
  657. package/node_modules/undici/types/cookies.d.ts +1 -3
  658. package/node_modules/undici/types/diagnostics-channel.d.ts +11 -20
  659. package/node_modules/undici/types/dispatcher.d.ts +139 -136
  660. package/node_modules/undici/types/env-http-proxy-agent.d.ts +3 -4
  661. package/node_modules/undici/types/errors.d.ts +54 -86
  662. package/node_modules/undici/types/eventsource.d.ts +4 -9
  663. package/node_modules/undici/types/fetch.d.ts +25 -51
  664. package/node_modules/undici/types/file.d.ts +39 -0
  665. package/node_modules/undici/types/filereader.d.ts +54 -0
  666. package/node_modules/undici/types/formdata.d.ts +7 -7
  667. package/node_modules/undici/types/global-dispatcher.d.ts +4 -4
  668. package/node_modules/undici/types/global-origin.d.ts +5 -5
  669. package/node_modules/undici/types/handlers.d.ts +9 -10
  670. package/node_modules/undici/types/header.d.ts +1 -162
  671. package/node_modules/undici/types/index.d.ts +47 -69
  672. package/node_modules/undici/types/interceptors.d.ts +12 -62
  673. package/node_modules/undici/types/mock-agent.d.ts +27 -46
  674. package/node_modules/undici/types/mock-client.d.ts +4 -6
  675. package/node_modules/undici/types/mock-errors.d.ts +3 -3
  676. package/node_modules/undici/types/mock-interceptor.d.ts +21 -26
  677. package/node_modules/undici/types/mock-pool.d.ts +4 -6
  678. package/node_modules/undici/types/patch.d.ts +4 -0
  679. package/node_modules/undici/types/pool-stats.d.ts +8 -8
  680. package/node_modules/undici/types/pool.d.ts +14 -14
  681. package/node_modules/undici/types/proxy-agent.d.ts +6 -13
  682. package/node_modules/undici/types/readable.d.ts +16 -19
  683. package/node_modules/undici/types/retry-agent.d.ts +1 -1
  684. package/node_modules/undici/types/retry-handler.d.ts +9 -18
  685. package/node_modules/undici/types/util.d.ts +3 -3
  686. package/node_modules/undici/types/webidl.d.ts +32 -156
  687. package/node_modules/undici/types/websocket.d.ts +10 -48
  688. package/node_modules/validate-npm-package-name/package.json +4 -4
  689. package/node_modules/which/package.json +4 -4
  690. package/node_modules/write-file-atomic/package.json +4 -4
  691. package/package.json +56 -60
  692. package/node_modules/@npmcli/arborist/lib/npm-extension.js +0 -237
  693. package/node_modules/@npmcli/arborist/lib/package-extensions.js +0 -236
  694. package/node_modules/@npmcli/arborist/lib/patch.js +0 -111
  695. package/node_modules/@npmcli/arborist/lib/patched-dependencies.js +0 -168
  696. package/node_modules/cacache/lib/util/cache-dir.js +0 -29
  697. package/node_modules/diff/CONTRIBUTING.md +0 -28
  698. package/node_modules/diff/LICENSE +0 -29
  699. package/node_modules/diff/README.md +0 -388
  700. package/node_modules/diff/dist/diff.js +0 -1782
  701. package/node_modules/diff/dist/diff.min.js +0 -1
  702. package/node_modules/diff/eslint.config.mjs +0 -182
  703. package/node_modules/diff/libcjs/convert/dmp.d.ts +0 -8
  704. package/node_modules/diff/libcjs/convert/dmp.d.ts.map +0 -1
  705. package/node_modules/diff/libcjs/convert/dmp.js +0 -24
  706. package/node_modules/diff/libcjs/convert/xml.d.ts +0 -6
  707. package/node_modules/diff/libcjs/convert/xml.d.ts.map +0 -1
  708. package/node_modules/diff/libcjs/convert/xml.js +0 -34
  709. package/node_modules/diff/libcjs/diff/array.d.ts +0 -19
  710. package/node_modules/diff/libcjs/diff/array.d.ts.map +0 -1
  711. package/node_modules/diff/libcjs/diff/array.js +0 -40
  712. package/node_modules/diff/libcjs/diff/base.d.ts +0 -20
  713. package/node_modules/diff/libcjs/diff/base.d.ts.map +0 -1
  714. package/node_modules/diff/libcjs/diff/base.js +0 -265
  715. package/node_modules/diff/libcjs/diff/character.d.ts +0 -19
  716. package/node_modules/diff/libcjs/diff/character.d.ts.map +0 -1
  717. package/node_modules/diff/libcjs/diff/character.js +0 -31
  718. package/node_modules/diff/libcjs/diff/css.d.ts +0 -18
  719. package/node_modules/diff/libcjs/diff/css.d.ts.map +0 -1
  720. package/node_modules/diff/libcjs/diff/css.js +0 -34
  721. package/node_modules/diff/libcjs/diff/json.d.ts +0 -24
  722. package/node_modules/diff/libcjs/diff/json.d.ts.map +0 -1
  723. package/node_modules/diff/libcjs/diff/json.js +0 -105
  724. package/node_modules/diff/libcjs/diff/line.d.ts +0 -24
  725. package/node_modules/diff/libcjs/diff/line.d.ts.map +0 -1
  726. package/node_modules/diff/libcjs/diff/line.js +0 -89
  727. package/node_modules/diff/libcjs/diff/sentence.d.ts +0 -21
  728. package/node_modules/diff/libcjs/diff/sentence.d.ts.map +0 -1
  729. package/node_modules/diff/libcjs/diff/sentence.js +0 -67
  730. package/node_modules/diff/libcjs/diff/word.d.ts +0 -35
  731. package/node_modules/diff/libcjs/diff/word.d.ts.map +0 -1
  732. package/node_modules/diff/libcjs/diff/word.js +0 -312
  733. package/node_modules/diff/libcjs/index.d.ts +0 -20
  734. package/node_modules/diff/libcjs/index.d.ts.map +0 -1
  735. package/node_modules/diff/libcjs/index.js +0 -64
  736. package/node_modules/diff/libcjs/package.json +0 -1
  737. package/node_modules/diff/libcjs/patch/apply.d.ts +0 -62
  738. package/node_modules/diff/libcjs/patch/apply.d.ts.map +0 -1
  739. package/node_modules/diff/libcjs/patch/apply.js +0 -267
  740. package/node_modules/diff/libcjs/patch/create.d.ts +0 -122
  741. package/node_modules/diff/libcjs/patch/create.d.ts.map +0 -1
  742. package/node_modules/diff/libcjs/patch/create.js +0 -251
  743. package/node_modules/diff/libcjs/patch/line-endings.d.ts +0 -17
  744. package/node_modules/diff/libcjs/patch/line-endings.d.ts.map +0 -1
  745. package/node_modules/diff/libcjs/patch/line-endings.js +0 -61
  746. package/node_modules/diff/libcjs/patch/parse.d.ts +0 -8
  747. package/node_modules/diff/libcjs/patch/parse.d.ts.map +0 -1
  748. package/node_modules/diff/libcjs/patch/parse.js +0 -150
  749. package/node_modules/diff/libcjs/patch/reverse.d.ts +0 -9
  750. package/node_modules/diff/libcjs/patch/reverse.d.ts.map +0 -1
  751. package/node_modules/diff/libcjs/patch/reverse.js +0 -37
  752. package/node_modules/diff/libcjs/types.d.ts +0 -213
  753. package/node_modules/diff/libcjs/types.d.ts.map +0 -1
  754. package/node_modules/diff/libcjs/types.js +0 -2
  755. package/node_modules/diff/libcjs/util/array.d.ts +0 -3
  756. package/node_modules/diff/libcjs/util/array.d.ts.map +0 -1
  757. package/node_modules/diff/libcjs/util/array.js +0 -21
  758. package/node_modules/diff/libcjs/util/distance-iterator.d.ts +0 -2
  759. package/node_modules/diff/libcjs/util/distance-iterator.d.ts.map +0 -1
  760. package/node_modules/diff/libcjs/util/distance-iterator.js +0 -40
  761. package/node_modules/diff/libcjs/util/params.d.ts +0 -4
  762. package/node_modules/diff/libcjs/util/params.d.ts.map +0 -1
  763. package/node_modules/diff/libcjs/util/params.js +0 -17
  764. package/node_modules/diff/libcjs/util/string.d.ts +0 -30
  765. package/node_modules/diff/libcjs/util/string.d.ts.map +0 -1
  766. package/node_modules/diff/libcjs/util/string.js +0 -200
  767. package/node_modules/diff/libesm/convert/dmp.d.ts +0 -8
  768. package/node_modules/diff/libesm/convert/dmp.d.ts.map +0 -1
  769. package/node_modules/diff/libesm/convert/dmp.js +0 -21
  770. package/node_modules/diff/libesm/convert/xml.d.ts +0 -6
  771. package/node_modules/diff/libesm/convert/xml.d.ts.map +0 -1
  772. package/node_modules/diff/libesm/convert/xml.js +0 -31
  773. package/node_modules/diff/libesm/diff/array.d.ts +0 -19
  774. package/node_modules/diff/libesm/diff/array.d.ts.map +0 -1
  775. package/node_modules/diff/libesm/diff/array.js +0 -16
  776. package/node_modules/diff/libesm/diff/base.d.ts +0 -20
  777. package/node_modules/diff/libesm/diff/base.d.ts.map +0 -1
  778. package/node_modules/diff/libesm/diff/base.js +0 -253
  779. package/node_modules/diff/libesm/diff/character.d.ts +0 -19
  780. package/node_modules/diff/libesm/diff/character.d.ts.map +0 -1
  781. package/node_modules/diff/libesm/diff/character.js +0 -7
  782. package/node_modules/diff/libesm/diff/css.d.ts +0 -18
  783. package/node_modules/diff/libesm/diff/css.d.ts.map +0 -1
  784. package/node_modules/diff/libesm/diff/css.js +0 -10
  785. package/node_modules/diff/libesm/diff/json.d.ts +0 -24
  786. package/node_modules/diff/libesm/diff/json.d.ts.map +0 -1
  787. package/node_modules/diff/libesm/diff/json.js +0 -78
  788. package/node_modules/diff/libesm/diff/line.d.ts +0 -24
  789. package/node_modules/diff/libesm/diff/line.d.ts.map +0 -1
  790. package/node_modules/diff/libesm/diff/line.js +0 -65
  791. package/node_modules/diff/libesm/diff/sentence.d.ts +0 -21
  792. package/node_modules/diff/libesm/diff/sentence.d.ts.map +0 -1
  793. package/node_modules/diff/libesm/diff/sentence.js +0 -43
  794. package/node_modules/diff/libesm/diff/word.d.ts +0 -35
  795. package/node_modules/diff/libesm/diff/word.d.ts.map +0 -1
  796. package/node_modules/diff/libesm/diff/word.js +0 -281
  797. package/node_modules/diff/libesm/index.d.ts +0 -20
  798. package/node_modules/diff/libesm/index.d.ts.map +0 -1
  799. package/node_modules/diff/libesm/index.js +0 -30
  800. package/node_modules/diff/libesm/package.json +0 -1
  801. package/node_modules/diff/libesm/patch/apply.d.ts +0 -62
  802. package/node_modules/diff/libesm/patch/apply.d.ts.map +0 -1
  803. package/node_modules/diff/libesm/patch/apply.js +0 -257
  804. package/node_modules/diff/libesm/patch/create.d.ts +0 -122
  805. package/node_modules/diff/libesm/patch/create.d.ts.map +0 -1
  806. package/node_modules/diff/libesm/patch/create.js +0 -228
  807. package/node_modules/diff/libesm/patch/line-endings.d.ts +0 -17
  808. package/node_modules/diff/libesm/patch/line-endings.d.ts.map +0 -1
  809. package/node_modules/diff/libesm/patch/line-endings.js +0 -44
  810. package/node_modules/diff/libesm/patch/parse.d.ts +0 -8
  811. package/node_modules/diff/libesm/patch/parse.d.ts.map +0 -1
  812. package/node_modules/diff/libesm/patch/parse.js +0 -147
  813. package/node_modules/diff/libesm/patch/reverse.d.ts +0 -9
  814. package/node_modules/diff/libesm/patch/reverse.d.ts.map +0 -1
  815. package/node_modules/diff/libesm/patch/reverse.js +0 -23
  816. package/node_modules/diff/libesm/types.d.ts +0 -213
  817. package/node_modules/diff/libesm/types.d.ts.map +0 -1
  818. package/node_modules/diff/libesm/types.js +0 -1
  819. package/node_modules/diff/libesm/util/array.d.ts +0 -3
  820. package/node_modules/diff/libesm/util/array.d.ts.map +0 -1
  821. package/node_modules/diff/libesm/util/array.js +0 -17
  822. package/node_modules/diff/libesm/util/distance-iterator.d.ts +0 -2
  823. package/node_modules/diff/libesm/util/distance-iterator.d.ts.map +0 -1
  824. package/node_modules/diff/libesm/util/distance-iterator.js +0 -37
  825. package/node_modules/diff/libesm/util/params.d.ts +0 -4
  826. package/node_modules/diff/libesm/util/params.d.ts.map +0 -1
  827. package/node_modules/diff/libesm/util/params.js +0 -14
  828. package/node_modules/diff/libesm/util/string.d.ts +0 -30
  829. package/node_modules/diff/libesm/util/string.d.ts.map +0 -1
  830. package/node_modules/diff/libesm/util/string.js +0 -184
  831. package/node_modules/diff/package.json +0 -130
  832. package/node_modules/diff/release-notes.md +0 -432
  833. package/node_modules/node-gyp/commitlint.config.mjs +0 -3
  834. package/node_modules/node-gyp/gyp/commitlint.config.js +0 -6
  835. package/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake_test.py +0 -105
  836. package/node_modules/node-gyp/zizmor.yml +0 -5
  837. package/node_modules/proxy-agent-negotiate/dist/index.d.ts +0 -14
  838. package/node_modules/proxy-agent-negotiate/dist/index.d.ts.map +0 -1
  839. package/node_modules/proxy-agent-negotiate/dist/index.js +0 -35
  840. package/node_modules/proxy-agent-negotiate/dist/index.js.map +0 -1
  841. package/node_modules/proxy-agent-negotiate/package.json +0 -47
  842. package/node_modules/undici/docs/docs/api/CacheStore.md +0 -360
  843. package/node_modules/undici/docs/docs/api/ClientStats.md +0 -93
  844. package/node_modules/undici/docs/docs/api/GlobalInstallation.md +0 -121
  845. package/node_modules/undici/docs/docs/api/H2CClient.md +0 -385
  846. package/node_modules/undici/docs/docs/api/Interceptors.md +0 -419
  847. package/node_modules/undici/docs/docs/api/MockCallHistory.md +0 -371
  848. package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +0 -206
  849. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +0 -239
  850. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +0 -361
  851. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +0 -256
  852. package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +0 -233
  853. package/node_modules/undici/docs/docs/getting-started.md +0 -281
  854. package/node_modules/undici/docs/docs/site.json +0 -125
  855. package/node_modules/undici/docs/docs/type-map.json +0 -79
  856. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +0 -110
  857. package/node_modules/undici/types/dispatcher1-wrapper.d.ts +0 -7
  858. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/core/socks5-client.js +0 -0
  859. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/core/socks5-utils.js +0 -0
  860. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/encoding/index.js +0 -0
  861. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/llhttp/constants.d.ts +0 -0
  862. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/llhttp/utils.d.ts +0 -0
  863. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/mock/snapshot-utils.js +0 -0
  864. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/date.js +0 -0
  865. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/util/stats.js +0 -0
  866. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/subresource-integrity/Readme.md +0 -0
  867. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/lib/web/subresource-integrity/subresource-integrity.js +0 -0
  868. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/cache-interceptor.d.ts +0 -0
  869. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/client-stats.d.ts +0 -0
  870. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/mock-call-history.d.ts +0 -0
  871. /package/node_modules/{undici → @mytools/fst-platform/node_modules/undici}/types/utility.d.ts +0 -0
@@ -2,15 +2,28 @@
2
2
 
3
3
  const { Transform } = require('node:stream')
4
4
  const zlib = require('node:zlib')
5
- const { redirectStatusSet, referrerPolicyTokens, badPortsSet } = require('./constants')
5
+ const { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require('./constants')
6
6
  const { getGlobalOrigin } = require('./global')
7
- const { collectAnHTTPQuotedString, parseMIMEType } = require('./data-url')
7
+ const { collectASequenceOfCodePoints, collectAnHTTPQuotedString, removeChars, parseMIMEType } = require('./data-url')
8
8
  const { performance } = require('node:perf_hooks')
9
- const { isValidHTTPToken, normalizedMethodRecordsBase } = require('../../core/util')
9
+ const { isBlobLike, ReadableStreamFrom, isValidHTTPToken, normalizedMethodRecordsBase } = require('../../core/util')
10
10
  const assert = require('node:assert')
11
11
  const { isUint8Array } = require('node:util/types')
12
- const { webidl } = require('../webidl')
13
- const { isomorphicEncode, collectASequenceOfCodePoints, removeChars } = require('../infra')
12
+ const { webidl } = require('./webidl')
13
+
14
+ let supportedHashes = []
15
+
16
+ // https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable
17
+ /** @type {import('crypto')} */
18
+ let crypto
19
+ try {
20
+ crypto = require('node:crypto')
21
+ const possibleRelevantHashes = ['sha256', 'sha384', 'sha512']
22
+ supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash))
23
+ /* c8 ignore next 3 */
24
+ } catch {
25
+
26
+ }
14
27
 
15
28
  function responseURL (response) {
16
29
  // https://fetch.spec.whatwg.org/#responses
@@ -157,24 +170,29 @@ function isValidHeaderValue (potentialValue) {
157
170
  ) === false
158
171
  }
159
172
 
160
- /**
161
- * Parse a referrer policy from a Referrer-Policy header
162
- * @see https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header
163
- */
164
- function parseReferrerPolicy (actualResponse) {
165
- // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list.
166
- const policyHeader = (actualResponse.headersList.get('referrer-policy', true) ?? '').split(',')
173
+ // https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect
174
+ function setRequestReferrerPolicyOnRedirect (request, actualResponse) {
175
+ // Given a request request and a response actualResponse, this algorithm
176
+ // updates request’s referrer policy according to the Referrer-Policy
177
+ // header (if any) in actualResponse.
167
178
 
168
- // 2. Let policy be the empty string.
169
- let policy = ''
179
+ // 1. Let policy be the result of executing § 8.1 Parse a referrer policy
180
+ // from a Referrer-Policy header on actualResponse.
170
181
 
182
+ // 8.1 Parse a referrer policy from a Referrer-Policy header
183
+ // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list.
184
+ const { headersList } = actualResponse
185
+ // 2. Let policy be the empty string.
171
186
  // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.
187
+ // 4. Return policy.
188
+ const policyHeader = (headersList.get('referrer-policy', true) ?? '').split(',')
172
189
 
173
190
  // Note: As the referrer-policy can contain multiple policies
174
191
  // separated by comma, we need to loop through all of them
175
192
  // and pick the first valid one.
176
193
  // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy
177
- if (policyHeader.length) {
194
+ let policy = ''
195
+ if (policyHeader.length > 0) {
178
196
  // The right-most policy takes precedence.
179
197
  // The left-most policy is the fallback.
180
198
  for (let i = policyHeader.length; i !== 0; i--) {
@@ -186,23 +204,6 @@ function parseReferrerPolicy (actualResponse) {
186
204
  }
187
205
  }
188
206
 
189
- // 4. Return policy.
190
- return policy
191
- }
192
-
193
- /**
194
- * Given a request request and a response actualResponse, this algorithm
195
- * updates request’s referrer policy according to the Referrer-Policy
196
- * header (if any) in actualResponse.
197
- * @see https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect
198
- * @param {import('./request').Request} request
199
- * @param {import('./response').Response} actualResponse
200
- */
201
- function setRequestReferrerPolicyOnRedirect (request, actualResponse) {
202
- // 1. Let policy be the result of executing § 8.1 Parse a referrer policy
203
- // from a Referrer-Policy header on actualResponse.
204
- const policy = parseReferrerPolicy(actualResponse)
205
-
206
207
  // 2. If policy is not the empty string, then set request’s referrer policy to policy.
207
208
  if (policy !== '') {
208
209
  request.referrerPolicy = policy
@@ -227,19 +228,14 @@ function TAOCheck () {
227
228
  return 'success'
228
229
  }
229
230
 
230
- // https://w3c.github.io/webappsec-fetch-metadata/#abstract-opdef-append-the-fetch-metadata-headers-for-a-request
231
231
  function appendFetchMetadata (httpRequest) {
232
- // 1. If r’s url is not a potentially trustworthy URL, return.
233
- if (!isURLPotentiallyTrustworthy(requestCurrentURL(httpRequest))) {
234
- return
235
- }
236
-
237
232
  // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header
238
233
  // TODO
239
234
 
240
235
  // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header
241
236
 
242
237
  // 1. Assert: r’s url is a potentially trustworthy URL.
238
+ // TODO
243
239
 
244
240
  // 2. Let header be a Structured Header whose value is a token.
245
241
  let header = null
@@ -378,16 +374,8 @@ function clonePolicyContainer (policyContainer) {
378
374
  }
379
375
  }
380
376
 
381
- /**
382
- * Determine request’s Referrer
383
- *
384
- * @see https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer
385
- */
377
+ // https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer
386
378
  function determineRequestsReferrer (request) {
387
- // Given a request request, we can determine the correct referrer information
388
- // to send by examining its referrer policy as detailed in the following
389
- // steps, which return either no referrer or a URL:
390
-
391
379
  // 1. Let policy be request's referrer policy.
392
380
  const policy = request.referrerPolicy
393
381
 
@@ -399,8 +387,6 @@ function determineRequestsReferrer (request) {
399
387
  let referrerSource = null
400
388
 
401
389
  // 3. Switch on request’s referrer:
402
-
403
- // "client"
404
390
  if (request.referrer === 'client') {
405
391
  // Note: node isn't a browser and doesn't implement document/iframes,
406
392
  // so we bypass this step and replace it with our own.
@@ -411,10 +397,9 @@ function determineRequestsReferrer (request) {
411
397
  return 'no-referrer'
412
398
  }
413
399
 
414
- // Note: we need to clone it as it's mutated
400
+ // note: we need to clone it as it's mutated
415
401
  referrerSource = new URL(globalOrigin)
416
- // a URL
417
- } else if (webidl.is.URL(request.referrer)) {
402
+ } else if (request.referrer instanceof URL) {
418
403
  // Let referrerSource be request’s referrer.
419
404
  referrerSource = request.referrer
420
405
  }
@@ -433,37 +418,18 @@ function determineRequestsReferrer (request) {
433
418
  referrerURL = referrerOrigin
434
419
  }
435
420
 
436
- // 7. The user agent MAY alter referrerURL or referrerOrigin at this point
437
- // to enforce arbitrary policy considerations in the interests of minimizing
438
- // data leakage. For example, the user agent could strip the URL down to an
439
- // origin, modify its host, replace it with an empty string, etc.
421
+ const areSameOrigin = sameOrigin(request, referrerURL)
422
+ const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&
423
+ !isURLPotentiallyTrustworthy(request.url)
440
424
 
441
425
  // 8. Execute the switch statements corresponding to the value of policy:
442
426
  switch (policy) {
443
- case 'no-referrer':
444
- // Return no referrer
445
- return 'no-referrer'
446
- case 'origin':
447
- // Return referrerOrigin
448
- if (referrerOrigin != null) {
449
- return referrerOrigin
450
- }
451
- return stripURLForReferrer(referrerSource, true)
452
- case 'unsafe-url':
453
- // Return referrerURL.
454
- return referrerURL
455
- case 'strict-origin': {
456
- const currentURL = requestCurrentURL(request)
457
-
458
- // 1. If referrerURL is a potentially trustworthy URL and request’s
459
- // current URL is not a potentially trustworthy URL, then return no
460
- // referrer.
461
- if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {
462
- return 'no-referrer'
463
- }
464
- // 2. Return referrerOrigin
465
- return referrerOrigin
466
- }
427
+ case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)
428
+ case 'unsafe-url': return referrerURL
429
+ case 'same-origin':
430
+ return areSameOrigin ? referrerOrigin : 'no-referrer'
431
+ case 'origin-when-cross-origin':
432
+ return areSameOrigin ? referrerURL : referrerOrigin
467
433
  case 'strict-origin-when-cross-origin': {
468
434
  const currentURL = requestCurrentURL(request)
469
435
 
@@ -483,58 +449,39 @@ function determineRequestsReferrer (request) {
483
449
  // 3. Return referrerOrigin.
484
450
  return referrerOrigin
485
451
  }
486
- case 'same-origin':
487
- // 1. If the origin of referrerURL and the origin of request’s current
488
- // URL are the same, then return referrerURL.
489
- if (sameOrigin(request, referrerURL)) {
490
- return referrerURL
491
- }
492
- // 2. Return no referrer.
493
- return 'no-referrer'
494
- case 'origin-when-cross-origin':
495
- // 1. If the origin of referrerURL and the origin of request’s current
496
- // URL are the same, then return referrerURL.
497
- if (sameOrigin(request, referrerURL)) {
498
- return referrerURL
499
- }
500
- // 2. Return referrerOrigin.
501
- return referrerOrigin
502
- case 'no-referrer-when-downgrade': {
503
- const currentURL = requestCurrentURL(request)
504
-
505
- // 1. If referrerURL is a potentially trustworthy URL and request’s
506
- // current URL is not a potentially trustworthy URL, then return no
507
- // referrer.
508
- if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {
509
- return 'no-referrer'
510
- }
511
- // 2. Return referrerURL.
512
- return referrerURL
513
- }
452
+ case 'strict-origin': // eslint-disable-line
453
+ /**
454
+ * 1. If referrerURL is a potentially trustworthy URL and
455
+ * request’s current URL is not a potentially trustworthy URL,
456
+ * then return no referrer.
457
+ * 2. Return referrerOrigin
458
+ */
459
+ case 'no-referrer-when-downgrade': // eslint-disable-line
460
+ /**
461
+ * 1. If referrerURL is a potentially trustworthy URL and
462
+ * request’s current URL is not a potentially trustworthy URL,
463
+ * then return no referrer.
464
+ * 2. Return referrerOrigin
465
+ */
466
+
467
+ default: // eslint-disable-line
468
+ return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin
514
469
  }
515
470
  }
516
471
 
517
472
  /**
518
- * Certain portions of URLs must not be included when sending a URL as the
519
- * value of a `Referer` header: a URLs fragment, username, and password
520
- * components must be stripped from the URL before it’s sent out. This
521
- * algorithm accepts a origin-only flag, which defaults to false. If set to
522
- * true, the algorithm will additionally remove the URL’s path and query
523
- * components, leaving only the scheme, host, and port.
524
- *
525
473
  * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url
526
474
  * @param {URL} url
527
- * @param {boolean} [originOnly=false]
475
+ * @param {boolean|undefined} originOnly
528
476
  */
529
- function stripURLForReferrer (url, originOnly = false) {
477
+ function stripURLForReferrer (url, originOnly) {
530
478
  // 1. Assert: url is a URL.
531
- assert(webidl.is.URL(url))
479
+ assert(url instanceof URL)
532
480
 
533
- // Note: Create a new URL instance to avoid mutating the original URL.
534
481
  url = new URL(url)
535
482
 
536
483
  // 2. If url’s scheme is a local scheme, then return no referrer.
537
- if (urlIsLocal(url)) {
484
+ if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {
538
485
  return 'no-referrer'
539
486
  }
540
487
 
@@ -548,7 +495,7 @@ function stripURLForReferrer (url, originOnly = false) {
548
495
  url.hash = ''
549
496
 
550
497
  // 6. If the origin-only flag is true, then:
551
- if (originOnly === true) {
498
+ if (originOnly) {
552
499
  // 1. Set url’s path to « the empty string ».
553
500
  url.pathname = ''
554
501
 
@@ -560,128 +507,245 @@ function stripURLForReferrer (url, originOnly = false) {
560
507
  return url
561
508
  }
562
509
 
563
- const isPotentialleTrustworthyIPv4 = RegExp.prototype.test
564
- .bind(/^127\.(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){2}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/)
510
+ function isURLPotentiallyTrustworthy (url) {
511
+ if (!(url instanceof URL)) {
512
+ return false
513
+ }
565
514
 
566
- const isPotentiallyTrustworthyIPv6 = RegExp.prototype.test
567
- .bind(/^(?:(?:0{1,4}:){7}|(?:0{1,4}:){1,6}:|::)0{0,3}1$/)
515
+ // If child of about, return true
516
+ if (url.href === 'about:blank' || url.href === 'about:srcdoc') {
517
+ return true
518
+ }
568
519
 
569
- /**
570
- * Check if host matches one of the CIDR notations 127.0.0.0/8 or ::1/128.
571
- *
572
- * @param {string} origin
573
- * @returns {boolean}
574
- */
575
- function isOriginIPPotentiallyTrustworthy (origin) {
576
- // IPv6
577
- if (origin.includes(':')) {
578
- // Remove brackets from IPv6 addresses
579
- if (origin[0] === '[' && origin[origin.length - 1] === ']') {
580
- origin = origin.slice(1, -1)
520
+ // If scheme is data, return true
521
+ if (url.protocol === 'data:') return true
522
+
523
+ // If file, return true
524
+ if (url.protocol === 'file:') return true
525
+
526
+ return isOriginPotentiallyTrustworthy(url.origin)
527
+
528
+ function isOriginPotentiallyTrustworthy (origin) {
529
+ // If origin is explicitly null, return false
530
+ if (origin == null || origin === 'null') return false
531
+
532
+ const originAsURL = new URL(origin)
533
+
534
+ // If secure, return true
535
+ if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {
536
+ return true
581
537
  }
582
- return isPotentiallyTrustworthyIPv6(origin)
583
- }
584
538
 
585
- // IPv4
586
- return isPotentialleTrustworthyIPv4(origin)
539
+ // If localhost or variants, return true
540
+ if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) ||
541
+ (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||
542
+ (originAsURL.hostname.endsWith('.localhost'))) {
543
+ return true
544
+ }
545
+
546
+ // If any other, return false
547
+ return false
548
+ }
587
549
  }
588
550
 
589
551
  /**
590
- * A potentially trustworthy origin is one which a user agent can generally
591
- * trust as delivering data securely.
592
- *
593
- * Return value `true` means `Potentially Trustworthy`.
594
- * Return value `false` means `Not Trustworthy`.
595
- *
596
- * @see https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy
597
- * @param {string} origin
598
- * @returns {boolean}
552
+ * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist
553
+ * @param {Uint8Array} bytes
554
+ * @param {string} metadataList
599
555
  */
600
- function isOriginPotentiallyTrustworthy (origin) {
601
- // 1. If origin is an opaque origin, return "Not Trustworthy".
602
- if (origin == null || origin === 'null') {
603
- return false
556
+ function bytesMatch (bytes, metadataList) {
557
+ // If node is not built with OpenSSL support, we cannot check
558
+ // a request's integrity, so allow it by default (the spec will
559
+ // allow requests if an invalid hash is given, as precedence).
560
+ /* istanbul ignore if: only if node is built with --without-ssl */
561
+ if (crypto === undefined) {
562
+ return true
604
563
  }
605
564
 
606
- // 2. Assert: origin is a tuple origin.
607
- origin = new URL(origin)
565
+ // 1. Let parsedMetadata be the result of parsing metadataList.
566
+ const parsedMetadata = parseMetadata(metadataList)
608
567
 
609
- // 3. If origin’s scheme is either "https" or "wss",
610
- // return "Potentially Trustworthy".
611
- if (origin.protocol === 'https:' || origin.protocol === 'wss:') {
568
+ // 2. If parsedMetadata is no metadata, return true.
569
+ if (parsedMetadata === 'no metadata') {
612
570
  return true
613
571
  }
614
572
 
615
- // 4. If origin’s host matches one of the CIDR notations 127.0.0.0/8 or
616
- // ::1/128 [RFC4632], return "Potentially Trustworthy".
617
- if (isOriginIPPotentiallyTrustworthy(origin.hostname)) {
573
+ // 3. If response is not eligible for integrity validation, return false.
574
+ // TODO
575
+
576
+ // 4. If parsedMetadata is the empty set, return true.
577
+ if (parsedMetadata.length === 0) {
618
578
  return true
619
579
  }
620
580
 
621
- // 5. If the user agent conforms to the name resolution rules in
622
- // [let-localhost-be-localhost] and one of the following is true:
581
+ // 5. Let metadata be the result of getting the strongest
582
+ // metadata from parsedMetadata.
583
+ const strongest = getStrongestMetadata(parsedMetadata)
584
+ const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest)
623
585
 
624
- // origin’s host is "localhost" or "localhost."
625
- if (origin.hostname === 'localhost' || origin.hostname === 'localhost.') {
626
- return true
586
+ // 6. For each item in metadata:
587
+ for (const item of metadata) {
588
+ // 1. Let algorithm be the alg component of item.
589
+ const algorithm = item.algo
590
+
591
+ // 2. Let expectedValue be the val component of item.
592
+ const expectedValue = item.hash
593
+
594
+ // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e
595
+ // "be liberal with padding". This is annoying, and it's not even in the spec.
596
+
597
+ // 3. Let actualValue be the result of applying algorithm to bytes.
598
+ let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')
599
+
600
+ if (actualValue[actualValue.length - 1] === '=') {
601
+ if (actualValue[actualValue.length - 2] === '=') {
602
+ actualValue = actualValue.slice(0, -2)
603
+ } else {
604
+ actualValue = actualValue.slice(0, -1)
605
+ }
606
+ }
607
+
608
+ // 4. If actualValue is a case-sensitive match for expectedValue,
609
+ // return true.
610
+ if (compareBase64Mixed(actualValue, expectedValue)) {
611
+ return true
612
+ }
627
613
  }
628
614
 
629
- // origin’s host ends with ".localhost" or ".localhost."
630
- if (origin.hostname.endsWith('.localhost') || origin.hostname.endsWith('.localhost.')) {
631
- return true
615
+ // 7. Return false.
616
+ return false
617
+ }
618
+
619
+ // https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options
620
+ // https://www.w3.org/TR/CSP2/#source-list-syntax
621
+ // https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1
622
+ const parseHashWithOptions = /(?<algo>sha256|sha384|sha512)-((?<hash>[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i
623
+
624
+ /**
625
+ * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata
626
+ * @param {string} metadata
627
+ */
628
+ function parseMetadata (metadata) {
629
+ // 1. Let result be the empty set.
630
+ /** @type {{ algo: string, hash: string }[]} */
631
+ const result = []
632
+
633
+ // 2. Let empty be equal to true.
634
+ let empty = true
635
+
636
+ // 3. For each token returned by splitting metadata on spaces:
637
+ for (const token of metadata.split(' ')) {
638
+ // 1. Set empty to false.
639
+ empty = false
640
+
641
+ // 2. Parse token as a hash-with-options.
642
+ const parsedToken = parseHashWithOptions.exec(token)
643
+
644
+ // 3. If token does not parse, continue to the next token.
645
+ if (
646
+ parsedToken === null ||
647
+ parsedToken.groups === undefined ||
648
+ parsedToken.groups.algo === undefined
649
+ ) {
650
+ // Note: Chromium blocks the request at this point, but Firefox
651
+ // gives a warning that an invalid integrity was given. The
652
+ // correct behavior is to ignore these, and subsequently not
653
+ // check the integrity of the resource.
654
+ continue
655
+ }
656
+
657
+ // 4. Let algorithm be the hash-algo component of token.
658
+ const algorithm = parsedToken.groups.algo.toLowerCase()
659
+
660
+ // 5. If algorithm is a hash function recognized by the user
661
+ // agent, add the parsed token to result.
662
+ if (supportedHashes.includes(algorithm)) {
663
+ result.push(parsedToken.groups)
664
+ }
632
665
  }
633
666
 
634
- // 6. If origin’s scheme is "file", return "Potentially Trustworthy".
635
- if (origin.protocol === 'file:') {
636
- return true
667
+ // 4. Return no metadata if empty is true, otherwise return result.
668
+ if (empty === true) {
669
+ return 'no metadata'
637
670
  }
638
671
 
639
- // 7. If origin’s scheme component is one which the user agent considers to
640
- // be authenticated, return "Potentially Trustworthy".
672
+ return result
673
+ }
641
674
 
642
- // 8. If origin has been configured as a trustworthy origin, return
643
- // "Potentially Trustworthy".
675
+ /**
676
+ * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList
677
+ */
678
+ function getStrongestMetadata (metadataList) {
679
+ // Let algorithm be the algo component of the first item in metadataList.
680
+ // Can be sha256
681
+ let algorithm = metadataList[0].algo
682
+ // If the algorithm is sha512, then it is the strongest
683
+ // and we can return immediately
684
+ if (algorithm[3] === '5') {
685
+ return algorithm
686
+ }
644
687
 
645
- // 9. Return "Not Trustworthy".
646
- return false
688
+ for (let i = 1; i < metadataList.length; ++i) {
689
+ const metadata = metadataList[i]
690
+ // If the algorithm is sha512, then it is the strongest
691
+ // and we can break the loop immediately
692
+ if (metadata.algo[3] === '5') {
693
+ algorithm = 'sha512'
694
+ break
695
+ // If the algorithm is sha384, then a potential sha256 or sha384 is ignored
696
+ } else if (algorithm[3] === '3') {
697
+ continue
698
+ // algorithm is sha256, check if algorithm is sha384 and if so, set it as
699
+ // the strongest
700
+ } else if (metadata.algo[3] === '3') {
701
+ algorithm = 'sha384'
702
+ }
703
+ }
704
+ return algorithm
705
+ }
706
+
707
+ function filterMetadataListByAlgorithm (metadataList, algorithm) {
708
+ if (metadataList.length === 1) {
709
+ return metadataList
710
+ }
711
+
712
+ let pos = 0
713
+ for (let i = 0; i < metadataList.length; ++i) {
714
+ if (metadataList[i].algo === algorithm) {
715
+ metadataList[pos++] = metadataList[i]
716
+ }
717
+ }
718
+
719
+ metadataList.length = pos
720
+
721
+ return metadataList
647
722
  }
648
723
 
649
724
  /**
650
- * A potentially trustworthy URL is one which either inherits context from its
651
- * creator (about:blank, about:srcdoc, data) or one whose origin is a
652
- * potentially trustworthy origin.
653
- *
654
- * Return value `true` means `Potentially Trustworthy`.
655
- * Return value `false` means `Not Trustworthy`.
725
+ * Compares two base64 strings, allowing for base64url
726
+ * in the second string.
656
727
  *
657
- * @see https://www.w3.org/TR/secure-contexts/#is-url-trustworthy
658
- * @param {URL} url
728
+ * @param {string} actualValue always base64
729
+ * @param {string} expectedValue base64 or base64url
659
730
  * @returns {boolean}
660
731
  */
661
- function isURLPotentiallyTrustworthy (url) {
662
- // Given a URL record (url), the following algorithm returns "Potentially
663
- // Trustworthy" or "Not Trustworthy" as appropriate:
664
- if (!webidl.is.URL(url)) {
732
+ function compareBase64Mixed (actualValue, expectedValue) {
733
+ if (actualValue.length !== expectedValue.length) {
665
734
  return false
666
735
  }
667
-
668
- // 1. If url is "about:blank" or "about:srcdoc",
669
- // return "Potentially Trustworthy".
670
- if (url.href === 'about:blank' || url.href === 'about:srcdoc') {
671
- return true
736
+ for (let i = 0; i < actualValue.length; ++i) {
737
+ if (actualValue[i] !== expectedValue[i]) {
738
+ if (
739
+ (actualValue[i] === '+' && expectedValue[i] === '-') ||
740
+ (actualValue[i] === '/' && expectedValue[i] === '_')
741
+ ) {
742
+ continue
743
+ }
744
+ return false
745
+ }
672
746
  }
673
747
 
674
- // 2. If url’s scheme is "data", return "Potentially Trustworthy".
675
- if (url.protocol === 'data:') return true
676
-
677
- // Note: The origin of blob: URLs is the origin of the context in which they
678
- // were created. Therefore, blobs created in a trustworthy origin will
679
- // themselves be potentially trustworthy.
680
- if (url.protocol === 'blob:') return true
681
-
682
- // 3. Return the result of executing § 3.1 Is origin potentially trustworthy?
683
- // on url’s origin.
684
- return isOriginPotentiallyTrustworthy(url.origin)
748
+ return true
685
749
  }
686
750
 
687
751
  // https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request
@@ -710,6 +774,17 @@ function sameOrigin (A, B) {
710
774
  return false
711
775
  }
712
776
 
777
+ function createDeferredPromise () {
778
+ let res
779
+ let rej
780
+ const promise = new Promise((resolve, reject) => {
781
+ res = resolve
782
+ rej = reject
783
+ })
784
+
785
+ return { promise, resolve: res, reject: rej }
786
+ }
787
+
713
788
  function isAborted (fetchParams) {
714
789
  return fetchParams.controller.state === 'aborted'
715
790
  }
@@ -727,13 +802,30 @@ function normalizeMethod (method) {
727
802
  return normalizedMethodRecordsBase[method.toLowerCase()] ?? method
728
803
  }
729
804
 
805
+ // https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string
806
+ function serializeJavascriptValueToJSONString (value) {
807
+ // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »).
808
+ const result = JSON.stringify(value)
809
+
810
+ // 2. If result is undefined, then throw a TypeError.
811
+ if (result === undefined) {
812
+ throw new TypeError('Value is not JSON serializable')
813
+ }
814
+
815
+ // 3. Assert: result is a string.
816
+ assert(typeof result === 'string')
817
+
818
+ // 4. Return result.
819
+ return result
820
+ }
821
+
730
822
  // https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object
731
823
  const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))
732
824
 
733
825
  /**
734
826
  * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object
735
827
  * @param {string} name name of the instance
736
- * @param {((target: any) => any)} kInternalIterator
828
+ * @param {symbol} kInternalIterator
737
829
  * @param {string | number} [keyIndex]
738
830
  * @param {string | number} [valueIndex]
739
831
  */
@@ -775,7 +867,7 @@ function createIterator (name, kInternalIterator, keyIndex = 0, valueIndex = 1)
775
867
  // 7. Let kind be object’s kind.
776
868
  // 8. Let values be object’s target's value pairs to iterate over.
777
869
  const index = this.#index
778
- const values = kInternalIterator(this.#target)
870
+ const values = this.#target[kInternalIterator]
779
871
 
780
872
  // 9. Let len be the length of values.
781
873
  const len = values.length
@@ -869,12 +961,11 @@ function createIterator (name, kInternalIterator, keyIndex = 0, valueIndex = 1)
869
961
  * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object
870
962
  * @param {string} name name of the instance
871
963
  * @param {any} object class
872
- * @param {(target: any) => any} kInternalIterator
964
+ * @param {symbol} kInternalIterator
873
965
  * @param {string | number} [keyIndex]
874
966
  * @param {string | number} [valueIndex]
875
- * @param {import('../../../types/webidl').WebidlIsFunction} brandCheck
876
967
  */
877
- function iteratorMixin (name, object, kInternalIterator, keyIndex = 0, valueIndex = 1, brandCheck) {
968
+ function iteratorMixin (name, object, kInternalIterator, keyIndex = 0, valueIndex = 1) {
878
969
  const makeIterator = createIterator(name, kInternalIterator, keyIndex, valueIndex)
879
970
 
880
971
  const properties = {
@@ -883,7 +974,7 @@ function iteratorMixin (name, object, kInternalIterator, keyIndex = 0, valueInde
883
974
  enumerable: true,
884
975
  configurable: true,
885
976
  value: function keys () {
886
- webidl.brandCheck(this, brandCheck)
977
+ webidl.brandCheck(this, object)
887
978
  return makeIterator(this, 'key')
888
979
  }
889
980
  },
@@ -892,7 +983,7 @@ function iteratorMixin (name, object, kInternalIterator, keyIndex = 0, valueInde
892
983
  enumerable: true,
893
984
  configurable: true,
894
985
  value: function values () {
895
- webidl.brandCheck(this, brandCheck)
986
+ webidl.brandCheck(this, object)
896
987
  return makeIterator(this, 'value')
897
988
  }
898
989
  },
@@ -901,7 +992,7 @@ function iteratorMixin (name, object, kInternalIterator, keyIndex = 0, valueInde
901
992
  enumerable: true,
902
993
  configurable: true,
903
994
  value: function entries () {
904
- webidl.brandCheck(this, brandCheck)
995
+ webidl.brandCheck(this, object)
905
996
  return makeIterator(this, 'key+value')
906
997
  }
907
998
  },
@@ -910,7 +1001,7 @@ function iteratorMixin (name, object, kInternalIterator, keyIndex = 0, valueInde
910
1001
  enumerable: true,
911
1002
  configurable: true,
912
1003
  value: function forEach (callbackfn, thisArg = globalThis) {
913
- webidl.brandCheck(this, brandCheck)
1004
+ webidl.brandCheck(this, object)
914
1005
  webidl.argumentLengthCheck(arguments, 1, `${name}.forEach`)
915
1006
  if (typeof callbackfn !== 'function') {
916
1007
  throw new TypeError(
@@ -936,14 +1027,9 @@ function iteratorMixin (name, object, kInternalIterator, keyIndex = 0, valueInde
936
1027
  }
937
1028
 
938
1029
  /**
939
- * @param {import('./body').ExtractBodyResult} body
940
- * @param {(bytes: Uint8Array) => void} processBody
941
- * @param {(error: Error) => void} processBodyError
942
- * @returns {void}
943
- *
944
1030
  * @see https://fetch.spec.whatwg.org/#body-fully-read
945
1031
  */
946
- function fullyReadBody (body, processBody, processBodyError) {
1032
+ async function fullyReadBody (body, processBody, processBodyError) {
947
1033
  // 1. If taskDestination is null, then set taskDestination to
948
1034
  // the result of starting a new parallel queue.
949
1035
 
@@ -955,19 +1041,33 @@ function fullyReadBody (body, processBody, processBodyError) {
955
1041
  // with taskDestination.
956
1042
  const errorSteps = processBodyError
957
1043
 
958
- try {
959
1044
  // 4. Let reader be the result of getting a reader for body’s stream.
960
1045
  // If that threw an exception, then run errorSteps with that
961
1046
  // exception and return.
962
- const reader = body.stream.getReader()
1047
+ let reader
963
1048
 
964
- // 5. Read all bytes from reader, given successSteps and errorSteps.
965
- readAllBytes(reader, successSteps, errorSteps)
1049
+ try {
1050
+ reader = body.stream.getReader()
1051
+ } catch (e) {
1052
+ errorSteps(e)
1053
+ return
1054
+ }
1055
+
1056
+ // 5. Read all bytes from reader, given successSteps and errorSteps.
1057
+ try {
1058
+ successSteps(await readAllBytes(reader))
966
1059
  } catch (e) {
967
1060
  errorSteps(e)
968
1061
  }
969
1062
  }
970
1063
 
1064
+ function isReadableStreamLike (stream) {
1065
+ return stream instanceof ReadableStream || (
1066
+ stream[Symbol.toStringTag] === 'ReadableStream' &&
1067
+ typeof stream.tee === 'function'
1068
+ )
1069
+ }
1070
+
971
1071
  /**
972
1072
  * @param {ReadableStreamController<Uint8Array>} controller
973
1073
  */
@@ -983,59 +1083,62 @@ function readableStreamClose (controller) {
983
1083
  }
984
1084
  }
985
1085
 
1086
+ const invalidIsomorphicEncodeValueRegex = /[^\x00-\xFF]/ // eslint-disable-line
1087
+
1088
+ /**
1089
+ * @see https://infra.spec.whatwg.org/#isomorphic-encode
1090
+ * @param {string} input
1091
+ */
1092
+ function isomorphicEncode (input) {
1093
+ // 1. Assert: input contains no code points greater than U+00FF.
1094
+ assert(!invalidIsomorphicEncodeValueRegex.test(input))
1095
+
1096
+ // 2. Return a byte sequence whose length is equal to input’s code
1097
+ // point length and whose bytes have the same values as the
1098
+ // values of input’s code points, in the same order
1099
+ return input
1100
+ }
1101
+
986
1102
  /**
987
1103
  * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes
988
1104
  * @see https://streams.spec.whatwg.org/#read-loop
989
- * @param {ReadableStream<Uint8Array<ArrayBuffer>>} reader
990
- * @param {(bytes: Uint8Array) => void} successSteps
991
- * @param {(error: Error) => void} failureSteps
992
- * @returns {Promise<void>}
1105
+ * @param {ReadableStreamDefaultReader} reader
993
1106
  */
994
- async function readAllBytes (reader, successSteps, failureSteps) {
995
- try {
996
- const bytes = []
997
- let byteLength = 0
1107
+ async function readAllBytes (reader) {
1108
+ const bytes = []
1109
+ let byteLength = 0
998
1110
 
999
- do {
1000
- const { done, value: chunk } = await reader.read()
1111
+ while (true) {
1112
+ const { done, value: chunk } = await reader.read()
1001
1113
 
1002
- if (done) {
1003
- // 1. Call successSteps with bytes.
1004
- successSteps(Buffer.concat(bytes, byteLength))
1005
- return
1006
- }
1114
+ if (done) {
1115
+ // 1. Call successSteps with bytes.
1116
+ return Buffer.concat(bytes, byteLength)
1117
+ }
1007
1118
 
1008
- // 1. If chunk is not a Uint8Array object, call failureSteps
1009
- // with a TypeError and abort these steps.
1010
- if (!isUint8Array(chunk)) {
1011
- failureSteps(new TypeError('Received non-Uint8Array chunk'))
1012
- return
1013
- }
1119
+ // 1. If chunk is not a Uint8Array object, call failureSteps
1120
+ // with a TypeError and abort these steps.
1121
+ if (!isUint8Array(chunk)) {
1122
+ throw new TypeError('Received non-Uint8Array chunk')
1123
+ }
1014
1124
 
1015
- // 2. Append the bytes represented by chunk to bytes.
1016
- bytes.push(chunk)
1017
- byteLength += chunk.length
1125
+ // 2. Append the bytes represented by chunk to bytes.
1126
+ bytes.push(chunk)
1127
+ byteLength += chunk.length
1018
1128
 
1019
1129
  // 3. Read-loop given reader, bytes, successSteps, and failureSteps.
1020
- } while (true)
1021
- } catch (e) {
1022
- // 1. Call failureSteps with e.
1023
- failureSteps(e)
1024
1130
  }
1025
1131
  }
1026
1132
 
1027
1133
  /**
1028
1134
  * @see https://fetch.spec.whatwg.org/#is-local
1029
1135
  * @param {URL} url
1030
- * @returns {boolean}
1031
1136
  */
1032
1137
  function urlIsLocal (url) {
1033
1138
  assert('protocol' in url) // ensure it's a url object
1034
1139
 
1035
1140
  const protocol = url.protocol
1036
1141
 
1037
- // A URL is local if its scheme is a local scheme.
1038
- // A local scheme is "about", "blob", or "data".
1039
1142
  return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'
1040
1143
  }
1041
1144
 
@@ -1070,17 +1173,10 @@ function urlIsHttpHttpsScheme (url) {
1070
1173
  return protocol === 'http:' || protocol === 'https:'
1071
1174
  }
1072
1175
 
1073
- /**
1074
- * @typedef {Object} RangeHeaderValue
1075
- * @property {number|null} rangeStartValue
1076
- * @property {number|null} rangeEndValue
1077
- */
1078
-
1079
1176
  /**
1080
1177
  * @see https://fetch.spec.whatwg.org/#simple-range-header-value
1081
1178
  * @param {string} value
1082
1179
  * @param {boolean} allowWhitespace
1083
- * @return {RangeHeaderValue|'failure'}
1084
1180
  */
1085
1181
  function simpleRangeHeaderValue (value, allowWhitespace) {
1086
1182
  // 1. Let data be the isomorphic decoding of value.
@@ -1201,10 +1297,7 @@ function simpleRangeHeaderValue (value, allowWhitespace) {
1201
1297
  // 18. If rangeStartValue and rangeEndValue are numbers, and rangeStartValue is
1202
1298
  // greater than rangeEndValue, then return failure.
1203
1299
  // Note: ... when can they not be numbers?
1204
- // Note: rangeStartValue or rangeEndValue may be null for open-ended ranges
1205
- // such as `bytes=5-` or `bytes=-5`. A null value must not be coerced to 0
1206
- // in the comparison, so this check only applies when both are numbers.
1207
- if (rangeStartValue !== null && rangeEndValue !== null && rangeStartValue > rangeEndValue) {
1300
+ if (rangeStartValue > rangeEndValue) {
1208
1301
  return 'failure'
1209
1302
  }
1210
1303
 
@@ -1438,28 +1531,32 @@ function getDecodeSplit (name, list) {
1438
1531
  return gettingDecodingSplitting(value)
1439
1532
  }
1440
1533
 
1441
- function hasAuthenticationEntry (request) {
1442
- return false
1443
- }
1534
+ const textDecoder = new TextDecoder()
1444
1535
 
1445
1536
  /**
1446
- * @see https://url.spec.whatwg.org/#include-credentials
1447
- * @param {URL} url
1537
+ * @see https://encoding.spec.whatwg.org/#utf-8-decode
1538
+ * @param {Buffer} buffer
1448
1539
  */
1449
- function includesCredentials (url) {
1450
- // A URL includes credentials if its username or password is not the empty string.
1451
- return !!(url.username || url.password)
1452
- }
1540
+ function utf8DecodeBytes (buffer) {
1541
+ if (buffer.length === 0) {
1542
+ return ''
1543
+ }
1453
1544
 
1454
- /**
1455
- * @see https://html.spec.whatwg.org/multipage/document-sequences.html#traversable-navigable
1456
- * @param {object|string} navigable
1457
- */
1458
- function isTraversableNavigable (navigable) {
1459
- // Returns true only if we have an actual traversable navigable object
1460
- // that can prompt the user for credentials. In Node.js, this will always
1461
- // be false since there's no Window object or navigable.
1462
- return navigable != null && navigable !== 'client' && navigable !== 'no-traversable'
1545
+ // 1. Let buffer be the result of peeking three bytes from
1546
+ // ioQueue, converted to a byte sequence.
1547
+
1548
+ // 2. If buffer is 0xEF 0xBB 0xBF, then read three
1549
+ // bytes from ioQueue. (Do nothing with those bytes.)
1550
+ if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {
1551
+ buffer = buffer.subarray(3)
1552
+ }
1553
+
1554
+ // 3. Process a queue with an instance of UTF-8’s
1555
+ // decoder, ioQueue, output, and "replacement".
1556
+ const output = textDecoder.decode(buffer)
1557
+
1558
+ // 4. Return output.
1559
+ return output
1463
1560
  }
1464
1561
 
1465
1562
  class EnvironmentSettingsObjectBase {
@@ -1484,6 +1581,8 @@ module.exports = {
1484
1581
  isAborted,
1485
1582
  isCancelled,
1486
1583
  isValidEncodedURL,
1584
+ createDeferredPromise,
1585
+ ReadableStreamFrom,
1487
1586
  tryUpgradeRequestToAPotentiallyTrustworthyURL,
1488
1587
  clampAndCoarsenConnectionTimingInfo,
1489
1588
  coarsenedSharedCurrentTime,
@@ -1502,29 +1601,32 @@ module.exports = {
1502
1601
  requestCurrentURL,
1503
1602
  responseURL,
1504
1603
  responseLocationURL,
1604
+ isBlobLike,
1505
1605
  isURLPotentiallyTrustworthy,
1506
1606
  isValidReasonPhrase,
1507
1607
  sameOrigin,
1508
1608
  normalizeMethod,
1609
+ serializeJavascriptValueToJSONString,
1509
1610
  iteratorMixin,
1510
1611
  createIterator,
1511
1612
  isValidHeaderName,
1512
1613
  isValidHeaderValue,
1513
1614
  isErrorLike,
1514
1615
  fullyReadBody,
1616
+ bytesMatch,
1617
+ isReadableStreamLike,
1515
1618
  readableStreamClose,
1619
+ isomorphicEncode,
1516
1620
  urlIsLocal,
1517
1621
  urlHasHttpsScheme,
1518
1622
  urlIsHttpHttpsScheme,
1519
1623
  readAllBytes,
1520
1624
  simpleRangeHeaderValue,
1521
1625
  buildContentRange,
1626
+ parseMetadata,
1522
1627
  createInflate,
1523
1628
  extractMimeType,
1524
1629
  getDecodeSplit,
1525
- environmentSettingsObject,
1526
- isOriginIPPotentiallyTrustworthy,
1527
- hasAuthenticationEntry,
1528
- includesCredentials,
1529
- isTraversableNavigable
1630
+ utf8DecodeBytes,
1631
+ environmentSettingsObject
1530
1632
  }