@pnpm/exe 11.0.6 → 11.0.7

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 (381) hide show
  1. package/dist/node-gyp-bin/node-gyp +0 -0
  2. package/dist/node-gyp-bin/node-gyp.cmd +0 -0
  3. package/dist/node_modules/node-gyp/.release-please-manifest.json +1 -1
  4. package/dist/node_modules/node-gyp/bin/node-gyp.js +0 -0
  5. package/dist/node_modules/node-gyp/gyp/.release-please-manifest.json +1 -1
  6. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +11 -3
  7. package/dist/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +2 -3
  8. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +1 -1
  9. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +2 -1
  10. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +26 -16
  11. package/dist/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +1 -1
  12. package/dist/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +1 -1
  13. package/dist/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +2 -2
  14. package/dist/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +3 -20
  15. package/dist/node_modules/node-gyp/gyp/pylib/packaging/tags.py +2 -14
  16. package/dist/node_modules/node-gyp/gyp/pyproject.toml +5 -3
  17. package/dist/node_modules/node-gyp/lib/download.js +55 -8
  18. package/dist/node_modules/node-gyp/lib/find-visualstudio.js +1 -1
  19. package/dist/node_modules/node-gyp/lib/process-release.js +17 -19
  20. package/dist/node_modules/node-gyp/package.json +3 -3
  21. package/dist/node_modules/{safer-buffer → undici}/LICENSE +1 -1
  22. package/dist/node_modules/undici/index-fetch.js +35 -0
  23. package/dist/node_modules/undici/index.js +169 -0
  24. package/dist/node_modules/undici/lib/api/abort-signal.js +57 -0
  25. package/dist/node_modules/undici/lib/api/api-connect.js +108 -0
  26. package/dist/node_modules/undici/lib/api/api-pipeline.js +251 -0
  27. package/dist/node_modules/undici/lib/api/api-request.js +214 -0
  28. package/dist/node_modules/undici/lib/api/api-stream.js +220 -0
  29. package/dist/node_modules/undici/lib/api/api-upgrade.js +108 -0
  30. package/dist/node_modules/undici/lib/api/index.js +7 -0
  31. package/dist/node_modules/undici/lib/api/readable.js +385 -0
  32. package/dist/node_modules/undici/lib/api/util.js +93 -0
  33. package/dist/node_modules/undici/lib/core/connect.js +240 -0
  34. package/dist/node_modules/undici/lib/core/constants.js +118 -0
  35. package/dist/node_modules/undici/lib/core/diagnostics.js +202 -0
  36. package/dist/node_modules/undici/lib/core/errors.js +425 -0
  37. package/dist/node_modules/undici/lib/core/request.js +405 -0
  38. package/dist/node_modules/undici/lib/core/symbols.js +67 -0
  39. package/dist/node_modules/undici/lib/core/tree.js +152 -0
  40. package/dist/node_modules/undici/lib/core/util.js +719 -0
  41. package/dist/node_modules/undici/lib/dispatcher/agent.js +130 -0
  42. package/dist/node_modules/undici/lib/dispatcher/balanced-pool.js +209 -0
  43. package/dist/node_modules/undici/lib/dispatcher/client-h1.js +1370 -0
  44. package/dist/node_modules/undici/lib/dispatcher/client-h2.js +744 -0
  45. package/dist/node_modules/undici/lib/dispatcher/client.js +623 -0
  46. package/dist/node_modules/undici/lib/dispatcher/dispatcher-base.js +198 -0
  47. package/dist/node_modules/undici/lib/dispatcher/dispatcher.js +65 -0
  48. package/dist/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +160 -0
  49. package/dist/node_modules/undici/lib/dispatcher/fixed-queue.js +117 -0
  50. package/dist/node_modules/undici/lib/dispatcher/pool-base.js +194 -0
  51. package/dist/node_modules/undici/lib/dispatcher/pool-stats.js +34 -0
  52. package/dist/node_modules/undici/lib/dispatcher/pool.js +107 -0
  53. package/dist/node_modules/undici/lib/dispatcher/proxy-agent.js +274 -0
  54. package/dist/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
  55. package/dist/node_modules/undici/lib/global.js +32 -0
  56. package/dist/node_modules/undici/lib/handler/decorator-handler.js +44 -0
  57. package/dist/node_modules/undici/lib/handler/redirect-handler.js +232 -0
  58. package/dist/node_modules/undici/lib/handler/retry-handler.js +374 -0
  59. package/dist/node_modules/undici/lib/interceptor/dns.js +375 -0
  60. package/dist/node_modules/undici/lib/interceptor/dump.js +123 -0
  61. package/dist/node_modules/undici/lib/interceptor/redirect-interceptor.js +21 -0
  62. package/dist/node_modules/undici/lib/interceptor/redirect.js +24 -0
  63. package/dist/node_modules/undici/lib/interceptor/response-error.js +86 -0
  64. package/dist/node_modules/undici/lib/interceptor/retry.js +19 -0
  65. package/dist/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  66. package/dist/node_modules/undici/lib/llhttp/constants.js +278 -0
  67. package/dist/node_modules/undici/lib/llhttp/llhttp-wasm.js +5 -0
  68. package/dist/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +5 -0
  69. package/dist/node_modules/undici/lib/llhttp/utils.js +15 -0
  70. package/dist/node_modules/undici/lib/mock/mock-agent.js +160 -0
  71. package/dist/node_modules/undici/lib/mock/mock-client.js +59 -0
  72. package/dist/node_modules/undici/lib/mock/mock-errors.js +28 -0
  73. package/dist/node_modules/undici/lib/mock/mock-interceptor.js +207 -0
  74. package/dist/node_modules/undici/lib/mock/mock-pool.js +59 -0
  75. package/dist/node_modules/undici/lib/mock/mock-symbols.js +23 -0
  76. package/dist/node_modules/undici/lib/mock/mock-utils.js +367 -0
  77. package/dist/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
  78. package/dist/node_modules/undici/lib/mock/pluralizer.js +29 -0
  79. package/dist/node_modules/undici/lib/util/timers.js +423 -0
  80. package/dist/node_modules/undici/lib/web/cache/cache.js +859 -0
  81. package/dist/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
  82. package/dist/node_modules/undici/lib/web/cache/symbols.js +5 -0
  83. package/dist/node_modules/undici/lib/web/cache/util.js +45 -0
  84. package/dist/node_modules/undici/lib/web/cookies/constants.js +12 -0
  85. package/dist/node_modules/undici/lib/web/cookies/index.js +184 -0
  86. package/dist/node_modules/undici/lib/web/cookies/parse.js +317 -0
  87. package/dist/node_modules/undici/lib/web/cookies/util.js +282 -0
  88. package/dist/node_modules/undici/lib/web/eventsource/eventsource-stream.js +398 -0
  89. package/dist/node_modules/undici/lib/web/eventsource/eventsource.js +480 -0
  90. package/dist/node_modules/undici/lib/web/eventsource/util.js +37 -0
  91. package/dist/node_modules/{@npmcli/redact → undici/lib/web/fetch}/LICENSE +1 -1
  92. package/dist/node_modules/undici/lib/web/fetch/body.js +529 -0
  93. package/dist/node_modules/undici/lib/web/fetch/constants.js +124 -0
  94. package/dist/node_modules/undici/lib/web/fetch/data-url.js +744 -0
  95. package/dist/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +46 -0
  96. package/dist/node_modules/undici/lib/web/fetch/file.js +126 -0
  97. package/dist/node_modules/undici/lib/web/fetch/formdata-parser.js +474 -0
  98. package/dist/node_modules/undici/lib/web/fetch/formdata.js +252 -0
  99. package/dist/node_modules/undici/lib/web/fetch/global.js +40 -0
  100. package/dist/node_modules/undici/lib/web/fetch/headers.js +687 -0
  101. package/dist/node_modules/undici/lib/web/fetch/index.js +2272 -0
  102. package/dist/node_modules/undici/lib/web/fetch/request.js +1037 -0
  103. package/dist/node_modules/undici/lib/web/fetch/response.js +610 -0
  104. package/dist/node_modules/undici/lib/web/fetch/symbols.js +9 -0
  105. package/dist/node_modules/undici/lib/web/fetch/util.js +1632 -0
  106. package/dist/node_modules/undici/lib/web/fetch/webidl.js +695 -0
  107. package/dist/node_modules/undici/lib/web/fileapi/encoding.js +290 -0
  108. package/dist/node_modules/undici/lib/web/fileapi/filereader.js +344 -0
  109. package/dist/node_modules/undici/lib/web/fileapi/progressevent.js +78 -0
  110. package/dist/node_modules/undici/lib/web/fileapi/symbols.js +10 -0
  111. package/dist/node_modules/undici/lib/web/fileapi/util.js +391 -0
  112. package/dist/node_modules/undici/lib/web/websocket/connection.js +371 -0
  113. package/dist/node_modules/undici/lib/web/websocket/constants.js +66 -0
  114. package/dist/node_modules/undici/lib/web/websocket/events.js +329 -0
  115. package/dist/node_modules/undici/lib/web/websocket/frame.js +96 -0
  116. package/dist/node_modules/undici/lib/web/websocket/permessage-deflate.js +100 -0
  117. package/dist/node_modules/undici/lib/web/websocket/receiver.js +490 -0
  118. package/dist/node_modules/undici/lib/web/websocket/sender.js +104 -0
  119. package/dist/node_modules/undici/lib/web/websocket/symbols.js +12 -0
  120. package/dist/node_modules/undici/lib/web/websocket/util.js +322 -0
  121. package/dist/node_modules/undici/lib/web/websocket/websocket.js +592 -0
  122. package/dist/node_modules/undici/package.json +160 -0
  123. package/dist/node_modules/undici/scripts/strip-comments.js +8 -0
  124. package/dist/node_modules/yallist/package.json +51 -12
  125. package/dist/pnpm.mjs +4468 -3877
  126. package/dist/worker.js +70 -67
  127. package/package.json +21 -13
  128. package/setup.js +17 -3
  129. package/dist/node_modules/@gar/promise-retry/LICENSE +0 -20
  130. package/dist/node_modules/@gar/promise-retry/lib/index.js +0 -62
  131. package/dist/node_modules/@gar/promise-retry/lib/retry.js +0 -109
  132. package/dist/node_modules/@gar/promise-retry/package.json +0 -45
  133. package/dist/node_modules/@npmcli/agent/lib/agents.js +0 -206
  134. package/dist/node_modules/@npmcli/agent/lib/dns.js +0 -53
  135. package/dist/node_modules/@npmcli/agent/lib/errors.js +0 -61
  136. package/dist/node_modules/@npmcli/agent/lib/index.js +0 -56
  137. package/dist/node_modules/@npmcli/agent/lib/options.js +0 -86
  138. package/dist/node_modules/@npmcli/agent/lib/proxy.js +0 -88
  139. package/dist/node_modules/@npmcli/agent/package.json +0 -60
  140. package/dist/node_modules/@npmcli/fs/lib/common/get-options.js +0 -20
  141. package/dist/node_modules/@npmcli/fs/lib/common/node.js +0 -9
  142. package/dist/node_modules/@npmcli/fs/lib/cp/LICENSE +0 -15
  143. package/dist/node_modules/@npmcli/fs/lib/cp/errors.js +0 -129
  144. package/dist/node_modules/@npmcli/fs/lib/cp/index.js +0 -22
  145. package/dist/node_modules/@npmcli/fs/lib/cp/polyfill.js +0 -428
  146. package/dist/node_modules/@npmcli/fs/lib/index.js +0 -13
  147. package/dist/node_modules/@npmcli/fs/lib/move-file.js +0 -78
  148. package/dist/node_modules/@npmcli/fs/lib/readdir-scoped.js +0 -20
  149. package/dist/node_modules/@npmcli/fs/lib/with-temp-dir.js +0 -39
  150. package/dist/node_modules/@npmcli/fs/package.json +0 -54
  151. package/dist/node_modules/@npmcli/redact/lib/deep-map.js +0 -71
  152. package/dist/node_modules/@npmcli/redact/lib/error.js +0 -28
  153. package/dist/node_modules/@npmcli/redact/lib/index.js +0 -44
  154. package/dist/node_modules/@npmcli/redact/lib/matchers.js +0 -88
  155. package/dist/node_modules/@npmcli/redact/lib/server.js +0 -59
  156. package/dist/node_modules/@npmcli/redact/lib/utils.js +0 -202
  157. package/dist/node_modules/@npmcli/redact/package.json +0 -52
  158. package/dist/node_modules/agent-base/LICENSE +0 -22
  159. package/dist/node_modules/agent-base/dist/helpers.js +0 -66
  160. package/dist/node_modules/agent-base/dist/index.js +0 -178
  161. package/dist/node_modules/agent-base/package.json +0 -46
  162. package/dist/node_modules/balanced-match/dist/commonjs/index.js +0 -59
  163. package/dist/node_modules/balanced-match/dist/esm/index.js +0 -54
  164. package/dist/node_modules/balanced-match/package.json +0 -68
  165. package/dist/node_modules/brace-expansion/LICENSE +0 -23
  166. package/dist/node_modules/brace-expansion/dist/commonjs/index.js +0 -201
  167. package/dist/node_modules/brace-expansion/dist/commonjs/package.json +0 -3
  168. package/dist/node_modules/brace-expansion/dist/esm/index.js +0 -197
  169. package/dist/node_modules/brace-expansion/dist/esm/package.json +0 -3
  170. package/dist/node_modules/brace-expansion/package.json +0 -64
  171. package/dist/node_modules/cacache/lib/content/path.js +0 -29
  172. package/dist/node_modules/cacache/lib/content/read.js +0 -165
  173. package/dist/node_modules/cacache/lib/content/rm.js +0 -18
  174. package/dist/node_modules/cacache/lib/content/write.js +0 -206
  175. package/dist/node_modules/cacache/lib/entry-index.js +0 -336
  176. package/dist/node_modules/cacache/lib/get.js +0 -170
  177. package/dist/node_modules/cacache/lib/index.js +0 -42
  178. package/dist/node_modules/cacache/lib/memoization.js +0 -72
  179. package/dist/node_modules/cacache/lib/put.js +0 -80
  180. package/dist/node_modules/cacache/lib/rm.js +0 -31
  181. package/dist/node_modules/cacache/lib/util/glob.js +0 -7
  182. package/dist/node_modules/cacache/lib/util/hash-to-segments.js +0 -7
  183. package/dist/node_modules/cacache/lib/util/tmp.js +0 -32
  184. package/dist/node_modules/cacache/lib/verify.js +0 -258
  185. package/dist/node_modules/cacache/package.json +0 -81
  186. package/dist/node_modules/debug/LICENSE +0 -20
  187. package/dist/node_modules/debug/package.json +0 -64
  188. package/dist/node_modules/debug/src/browser.js +0 -272
  189. package/dist/node_modules/debug/src/common.js +0 -292
  190. package/dist/node_modules/debug/src/index.js +0 -10
  191. package/dist/node_modules/debug/src/node.js +0 -263
  192. package/dist/node_modules/fs-minipass/LICENSE +0 -15
  193. package/dist/node_modules/fs-minipass/lib/index.js +0 -443
  194. package/dist/node_modules/fs-minipass/package.json +0 -54
  195. package/dist/node_modules/glob/dist/commonjs/glob.js +0 -248
  196. package/dist/node_modules/glob/dist/commonjs/has-magic.js +0 -27
  197. package/dist/node_modules/glob/dist/commonjs/ignore.js +0 -119
  198. package/dist/node_modules/glob/dist/commonjs/index.js +0 -68
  199. package/dist/node_modules/glob/dist/commonjs/index.min.js +0 -4
  200. package/dist/node_modules/glob/dist/commonjs/package.json +0 -3
  201. package/dist/node_modules/glob/dist/commonjs/pattern.js +0 -223
  202. package/dist/node_modules/glob/dist/commonjs/processor.js +0 -301
  203. package/dist/node_modules/glob/dist/commonjs/walker.js +0 -387
  204. package/dist/node_modules/glob/dist/esm/glob.js +0 -244
  205. package/dist/node_modules/glob/dist/esm/has-magic.js +0 -23
  206. package/dist/node_modules/glob/dist/esm/ignore.js +0 -115
  207. package/dist/node_modules/glob/dist/esm/index.js +0 -55
  208. package/dist/node_modules/glob/dist/esm/index.min.js +0 -4
  209. package/dist/node_modules/glob/dist/esm/package.json +0 -3
  210. package/dist/node_modules/glob/dist/esm/pattern.js +0 -219
  211. package/dist/node_modules/glob/dist/esm/processor.js +0 -294
  212. package/dist/node_modules/glob/dist/esm/walker.js +0 -381
  213. package/dist/node_modules/glob/package.json +0 -98
  214. package/dist/node_modules/http-cache-semantics/LICENSE +0 -9
  215. package/dist/node_modules/http-cache-semantics/index.js +0 -928
  216. package/dist/node_modules/http-cache-semantics/package.json +0 -22
  217. package/dist/node_modules/http-proxy-agent/LICENSE +0 -22
  218. package/dist/node_modules/http-proxy-agent/dist/index.js +0 -148
  219. package/dist/node_modules/http-proxy-agent/package.json +0 -47
  220. package/dist/node_modules/https-proxy-agent/LICENSE +0 -22
  221. package/dist/node_modules/https-proxy-agent/dist/index.js +0 -180
  222. package/dist/node_modules/https-proxy-agent/dist/parse-proxy-response.js +0 -101
  223. package/dist/node_modules/https-proxy-agent/package.json +0 -50
  224. package/dist/node_modules/iconv-lite/LICENSE +0 -21
  225. package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -532
  226. package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +0 -185
  227. package/dist/node_modules/iconv-lite/encodings/index.js +0 -23
  228. package/dist/node_modules/iconv-lite/encodings/internal.js +0 -218
  229. package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -75
  230. package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  231. package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +0 -178
  232. package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  233. package/dist/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  234. package/dist/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  235. package/dist/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  236. package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  237. package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  238. package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -56
  239. package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  240. package/dist/node_modules/iconv-lite/encodings/utf16.js +0 -187
  241. package/dist/node_modules/iconv-lite/encodings/utf32.js +0 -307
  242. package/dist/node_modules/iconv-lite/encodings/utf7.js +0 -283
  243. package/dist/node_modules/iconv-lite/lib/bom-handling.js +0 -48
  244. package/dist/node_modules/iconv-lite/lib/helpers/merge-exports.js +0 -13
  245. package/dist/node_modules/iconv-lite/lib/index.js +0 -182
  246. package/dist/node_modules/iconv-lite/lib/streams.js +0 -105
  247. package/dist/node_modules/iconv-lite/package.json +0 -70
  248. package/dist/node_modules/ip-address/LICENSE +0 -19
  249. package/dist/node_modules/ip-address/dist/address-error.js +0 -12
  250. package/dist/node_modules/ip-address/dist/common.js +0 -46
  251. package/dist/node_modules/ip-address/dist/ip-address.js +0 -35
  252. package/dist/node_modules/ip-address/dist/ipv4.js +0 -360
  253. package/dist/node_modules/ip-address/dist/ipv6.js +0 -1003
  254. package/dist/node_modules/ip-address/dist/v4/constants.js +0 -8
  255. package/dist/node_modules/ip-address/dist/v6/constants.js +0 -76
  256. package/dist/node_modules/ip-address/dist/v6/helpers.js +0 -45
  257. package/dist/node_modules/ip-address/dist/v6/regular-expressions.js +0 -95
  258. package/dist/node_modules/ip-address/package.json +0 -78
  259. package/dist/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +0 -10
  260. package/dist/node_modules/lru-cache/dist/commonjs/index.js +0 -1692
  261. package/dist/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
  262. package/dist/node_modules/lru-cache/dist/commonjs/package.json +0 -3
  263. package/dist/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.js +0 -4
  264. package/dist/node_modules/lru-cache/dist/esm/browser/index.js +0 -1688
  265. package/dist/node_modules/lru-cache/dist/esm/browser/index.min.js +0 -2
  266. package/dist/node_modules/lru-cache/dist/esm/diagnostics-channel.js +0 -19
  267. package/dist/node_modules/lru-cache/dist/esm/index.js +0 -1688
  268. package/dist/node_modules/lru-cache/dist/esm/index.min.js +0 -2
  269. package/dist/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +0 -7
  270. package/dist/node_modules/lru-cache/dist/esm/node/index.js +0 -1688
  271. package/dist/node_modules/lru-cache/dist/esm/node/index.min.js +0 -2
  272. package/dist/node_modules/lru-cache/dist/esm/package.json +0 -3
  273. package/dist/node_modules/lru-cache/package.json +0 -126
  274. package/dist/node_modules/make-fetch-happen/LICENSE +0 -16
  275. package/dist/node_modules/make-fetch-happen/lib/cache/entry.js +0 -471
  276. package/dist/node_modules/make-fetch-happen/lib/cache/errors.js +0 -11
  277. package/dist/node_modules/make-fetch-happen/lib/cache/index.js +0 -49
  278. package/dist/node_modules/make-fetch-happen/lib/cache/key.js +0 -17
  279. package/dist/node_modules/make-fetch-happen/lib/cache/policy.js +0 -161
  280. package/dist/node_modules/make-fetch-happen/lib/fetch.js +0 -118
  281. package/dist/node_modules/make-fetch-happen/lib/index.js +0 -41
  282. package/dist/node_modules/make-fetch-happen/lib/options.js +0 -59
  283. package/dist/node_modules/make-fetch-happen/lib/pipeline.js +0 -41
  284. package/dist/node_modules/make-fetch-happen/lib/remote.js +0 -134
  285. package/dist/node_modules/make-fetch-happen/package.json +0 -75
  286. package/dist/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +0 -14
  287. package/dist/node_modules/minimatch/dist/commonjs/ast.js +0 -845
  288. package/dist/node_modules/minimatch/dist/commonjs/brace-expressions.js +0 -150
  289. package/dist/node_modules/minimatch/dist/commonjs/escape.js +0 -30
  290. package/dist/node_modules/minimatch/dist/commonjs/index.js +0 -1127
  291. package/dist/node_modules/minimatch/dist/commonjs/package.json +0 -3
  292. package/dist/node_modules/minimatch/dist/commonjs/unescape.js +0 -38
  293. package/dist/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -10
  294. package/dist/node_modules/minimatch/dist/esm/ast.js +0 -841
  295. package/dist/node_modules/minimatch/dist/esm/brace-expressions.js +0 -146
  296. package/dist/node_modules/minimatch/dist/esm/escape.js +0 -26
  297. package/dist/node_modules/minimatch/dist/esm/index.js +0 -1114
  298. package/dist/node_modules/minimatch/dist/esm/package.json +0 -3
  299. package/dist/node_modules/minimatch/dist/esm/unescape.js +0 -34
  300. package/dist/node_modules/minimatch/package.json +0 -73
  301. package/dist/node_modules/minipass-collect/LICENSE +0 -15
  302. package/dist/node_modules/minipass-collect/index.js +0 -71
  303. package/dist/node_modules/minipass-collect/package.json +0 -30
  304. package/dist/node_modules/minipass-fetch/LICENSE +0 -28
  305. package/dist/node_modules/minipass-fetch/lib/abort-error.js +0 -17
  306. package/dist/node_modules/minipass-fetch/lib/blob.js +0 -97
  307. package/dist/node_modules/minipass-fetch/lib/body.js +0 -360
  308. package/dist/node_modules/minipass-fetch/lib/fetch-error.js +0 -32
  309. package/dist/node_modules/minipass-fetch/lib/headers.js +0 -267
  310. package/dist/node_modules/minipass-fetch/lib/index.js +0 -376
  311. package/dist/node_modules/minipass-fetch/lib/request.js +0 -282
  312. package/dist/node_modules/minipass-fetch/lib/response.js +0 -90
  313. package/dist/node_modules/minipass-fetch/package.json +0 -70
  314. package/dist/node_modules/minipass-flush/index.js +0 -39
  315. package/dist/node_modules/minipass-flush/node_modules/minipass/LICENSE +0 -15
  316. package/dist/node_modules/minipass-flush/node_modules/minipass/index.js +0 -649
  317. package/dist/node_modules/minipass-flush/node_modules/minipass/package.json +0 -56
  318. package/dist/node_modules/minipass-flush/package.json +0 -42
  319. package/dist/node_modules/minipass-pipeline/LICENSE +0 -15
  320. package/dist/node_modules/minipass-pipeline/index.js +0 -128
  321. package/dist/node_modules/minipass-pipeline/node_modules/minipass/LICENSE +0 -15
  322. package/dist/node_modules/minipass-pipeline/node_modules/minipass/index.js +0 -649
  323. package/dist/node_modules/minipass-pipeline/node_modules/minipass/package.json +0 -56
  324. package/dist/node_modules/minipass-pipeline/package.json +0 -29
  325. package/dist/node_modules/minipass-sized/LICENSE +0 -15
  326. package/dist/node_modules/minipass-sized/dist/commonjs/index.js +0 -69
  327. package/dist/node_modules/minipass-sized/dist/commonjs/package.json +0 -3
  328. package/dist/node_modules/minipass-sized/dist/esm/index.js +0 -64
  329. package/dist/node_modules/minipass-sized/dist/esm/package.json +0 -3
  330. package/dist/node_modules/minipass-sized/package.json +0 -69
  331. package/dist/node_modules/ms/index.js +0 -162
  332. package/dist/node_modules/ms/package.json +0 -38
  333. package/dist/node_modules/negotiator/LICENSE +0 -24
  334. package/dist/node_modules/negotiator/index.js +0 -83
  335. package/dist/node_modules/negotiator/lib/charset.js +0 -169
  336. package/dist/node_modules/negotiator/lib/encoding.js +0 -205
  337. package/dist/node_modules/negotiator/lib/language.js +0 -179
  338. package/dist/node_modules/negotiator/lib/mediaType.js +0 -294
  339. package/dist/node_modules/negotiator/package.json +0 -43
  340. package/dist/node_modules/p-map/index.js +0 -283
  341. package/dist/node_modules/p-map/license +0 -9
  342. package/dist/node_modules/p-map/package.json +0 -57
  343. package/dist/node_modules/path-scurry/dist/commonjs/index.js +0 -2018
  344. package/dist/node_modules/path-scurry/dist/commonjs/package.json +0 -3
  345. package/dist/node_modules/path-scurry/dist/esm/index.js +0 -1983
  346. package/dist/node_modules/path-scurry/dist/esm/package.json +0 -3
  347. package/dist/node_modules/path-scurry/package.json +0 -72
  348. package/dist/node_modules/safer-buffer/dangerous.js +0 -58
  349. package/dist/node_modules/safer-buffer/package.json +0 -34
  350. package/dist/node_modules/safer-buffer/safer.js +0 -77
  351. package/dist/node_modules/safer-buffer/tests.js +0 -406
  352. package/dist/node_modules/smart-buffer/.prettierrc.yaml +0 -5
  353. package/dist/node_modules/smart-buffer/LICENSE +0 -20
  354. package/dist/node_modules/smart-buffer/build/smartbuffer.js +0 -1233
  355. package/dist/node_modules/smart-buffer/build/utils.js +0 -108
  356. package/dist/node_modules/smart-buffer/package.json +0 -79
  357. package/dist/node_modules/socks/.eslintrc.cjs +0 -11
  358. package/dist/node_modules/socks/.prettierrc.yaml +0 -7
  359. package/dist/node_modules/socks/LICENSE +0 -20
  360. package/dist/node_modules/socks/build/client/socksclient.js +0 -793
  361. package/dist/node_modules/socks/build/common/constants.js +0 -108
  362. package/dist/node_modules/socks/build/common/helpers.js +0 -167
  363. package/dist/node_modules/socks/build/common/receivebuffer.js +0 -43
  364. package/dist/node_modules/socks/build/common/util.js +0 -25
  365. package/dist/node_modules/socks/build/index.js +0 -18
  366. package/dist/node_modules/socks/package.json +0 -58
  367. package/dist/node_modules/socks-proxy-agent/LICENSE +0 -22
  368. package/dist/node_modules/socks-proxy-agent/dist/index.js +0 -195
  369. package/dist/node_modules/socks-proxy-agent/package.json +0 -142
  370. package/dist/node_modules/ssri/lib/index.js +0 -550
  371. package/dist/node_modules/ssri/package.json +0 -66
  372. package/dist/node_modules/tar/node_modules/yallist/dist/commonjs/package.json +0 -3
  373. package/dist/node_modules/tar/node_modules/yallist/dist/esm/package.json +0 -3
  374. package/dist/node_modules/tar/node_modules/yallist/package.json +0 -68
  375. package/dist/node_modules/yallist/LICENSE +0 -15
  376. package/dist/node_modules/yallist/iterator.js +0 -8
  377. package/dist/node_modules/yallist/yallist.js +0 -426
  378. /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/commonjs/index.js +0 -0
  379. /package/dist/node_modules/{balanced-match → yallist}/dist/commonjs/package.json +0 -0
  380. /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/esm/index.js +0 -0
  381. /package/dist/node_modules/{balanced-match → yallist}/dist/esm/package.json +0 -0
@@ -1,78 +0,0 @@
1
- const { dirname, join, resolve, relative, isAbsolute } = require('path')
2
- const fs = require('fs/promises')
3
-
4
- const pathExists = async path => {
5
- try {
6
- await fs.access(path)
7
- return true
8
- } catch (er) {
9
- return er.code !== 'ENOENT'
10
- }
11
- }
12
-
13
- const moveFile = async (source, destination, options = {}, root = true, symlinks = []) => {
14
- if (!source || !destination) {
15
- throw new TypeError('`source` and `destination` file required')
16
- }
17
-
18
- options = {
19
- overwrite: true,
20
- ...options,
21
- }
22
-
23
- if (!options.overwrite && await pathExists(destination)) {
24
- throw new Error(`The destination file exists: ${destination}`)
25
- }
26
-
27
- await fs.mkdir(dirname(destination), { recursive: true })
28
-
29
- try {
30
- await fs.rename(source, destination)
31
- } catch (error) {
32
- if (error.code === 'EXDEV' || error.code === 'EPERM') {
33
- const sourceStat = await fs.lstat(source)
34
- if (sourceStat.isDirectory()) {
35
- const files = await fs.readdir(source)
36
- await Promise.all(files.map((file) =>
37
- moveFile(join(source, file), join(destination, file), options, false, symlinks)
38
- ))
39
- } else if (sourceStat.isSymbolicLink()) {
40
- symlinks.push({ source, destination })
41
- } else {
42
- await fs.copyFile(source, destination)
43
- }
44
- } else {
45
- throw error
46
- }
47
- }
48
-
49
- if (root) {
50
- await Promise.all(symlinks.map(async ({ source: symSource, destination: symDestination }) => {
51
- let target = await fs.readlink(symSource)
52
- // junction symlinks in windows will be absolute paths, so we need to
53
- // make sure they point to the symlink destination
54
- if (isAbsolute(target)) {
55
- target = resolve(symDestination, relative(symSource, target))
56
- }
57
- // try to determine what the actual file is so we can create the correct
58
- // type of symlink in windows
59
- let targetStat = 'file'
60
- try {
61
- targetStat = await fs.stat(resolve(dirname(symSource), target))
62
- if (targetStat.isDirectory()) {
63
- targetStat = 'junction'
64
- }
65
- } catch {
66
- // targetStat remains 'file'
67
- }
68
- await fs.symlink(
69
- target,
70
- symDestination,
71
- targetStat
72
- )
73
- }))
74
- await fs.rm(source, { recursive: true, force: true })
75
- }
76
- }
77
-
78
- module.exports = moveFile
@@ -1,20 +0,0 @@
1
- const { readdir } = require('fs/promises')
2
- const { join } = require('path')
3
-
4
- const readdirScoped = async (dir) => {
5
- const results = []
6
-
7
- for (const item of await readdir(dir)) {
8
- if (item.startsWith('@')) {
9
- for (const scopedItem of await readdir(join(dir, item))) {
10
- results.push(join(item, scopedItem))
11
- }
12
- } else {
13
- results.push(item)
14
- }
15
- }
16
-
17
- return results
18
- }
19
-
20
- module.exports = readdirScoped
@@ -1,39 +0,0 @@
1
- const { join, sep } = require('path')
2
-
3
- const getOptions = require('./common/get-options.js')
4
- const { mkdir, mkdtemp, rm } = require('fs/promises')
5
-
6
- // create a temp directory, ensure its permissions match its parent, then call
7
- // the supplied function passing it the path to the directory. clean up after
8
- // the function finishes, whether it throws or not
9
- const withTempDir = async (root, fn, opts) => {
10
- const options = getOptions(opts, {
11
- copy: ['tmpPrefix'],
12
- })
13
- // create the directory
14
- await mkdir(root, { recursive: true })
15
-
16
- const target = await mkdtemp(join(`${root}${sep}`, options.tmpPrefix || ''))
17
- let err
18
- let result
19
-
20
- try {
21
- result = await fn(target)
22
- } catch (_err) {
23
- err = _err
24
- }
25
-
26
- try {
27
- await rm(target, { force: true, recursive: true })
28
- } catch {
29
- // ignore errors
30
- }
31
-
32
- if (err) {
33
- throw err
34
- }
35
-
36
- return result
37
- }
38
-
39
- module.exports = withTempDir
@@ -1,54 +0,0 @@
1
- {
2
- "name": "@npmcli/fs",
3
- "version": "5.0.0",
4
- "description": "filesystem utilities for the npm cli",
5
- "main": "lib/index.js",
6
- "files": [
7
- "bin/",
8
- "lib/"
9
- ],
10
- "scripts": {
11
- "snap": "tap",
12
- "test": "tap",
13
- "npmclilint": "npmcli-lint",
14
- "lint": "npm run eslint",
15
- "lintfix": "npm run eslint -- --fix",
16
- "posttest": "npm run lint",
17
- "postsnap": "npm run lintfix --",
18
- "postlint": "template-oss-check",
19
- "template-oss-apply": "template-oss-apply --force",
20
- "eslint": "eslint \"**/*.{js,cjs,ts,mjs,jsx,tsx}\""
21
- },
22
- "repository": {
23
- "type": "git",
24
- "url": "git+https://github.com/npm/fs.git"
25
- },
26
- "keywords": [
27
- "npm",
28
- "oss"
29
- ],
30
- "author": "GitHub Inc.",
31
- "license": "ISC",
32
- "devDependencies": {
33
- "@npmcli/eslint-config": "^5.0.0",
34
- "@npmcli/template-oss": "4.27.1",
35
- "tap": "^16.0.1"
36
- },
37
- "dependencies": {
38
- "semver": "^7.3.5"
39
- },
40
- "engines": {
41
- "node": "^20.17.0 || >=22.9.0"
42
- },
43
- "templateOSS": {
44
- "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
45
- "version": "4.27.1",
46
- "publish": true
47
- },
48
- "tap": {
49
- "nyc-arg": [
50
- "--exclude",
51
- "tap-snapshots/**"
52
- ]
53
- }
54
- }
@@ -1,71 +0,0 @@
1
- const { serializeError } = require('./error')
2
-
3
- const deepMap = (input, handler = v => v, path = ['$'], seen = new Set([input])) => {
4
- // this is in an effort to maintain bole's error logging behavior
5
- if (path.join('.') === '$' && input instanceof Error) {
6
- return deepMap({ err: serializeError(input) }, handler, path, seen)
7
- }
8
- if (input instanceof Error) {
9
- return deepMap(serializeError(input), handler, path, seen)
10
- }
11
- // allows for non-node js environments, sush as workers
12
- if (typeof Buffer !== 'undefined' && input instanceof Buffer) {
13
- return `[unable to log instanceof buffer]`
14
- }
15
- if (input instanceof Uint8Array) {
16
- return `[unable to log instanceof Uint8Array]`
17
- }
18
-
19
- if (Array.isArray(input)) {
20
- const result = []
21
- for (let i = 0; i < input.length; i++) {
22
- const element = input[i]
23
- const elementPath = [...path, i]
24
- if (element instanceof Object) {
25
- if (!seen.has(element)) { // avoid getting stuck in circular reference
26
- seen.add(element)
27
- result.push(deepMap(handler(element, elementPath), handler, elementPath, seen))
28
- }
29
- } else {
30
- result.push(handler(element, elementPath))
31
- }
32
- }
33
- return result
34
- }
35
-
36
- if (input === null) {
37
- return null
38
- } else if (typeof input === 'object' || typeof input === 'function') {
39
- const result = {}
40
-
41
- for (const propertyName of Object.getOwnPropertyNames(input)) {
42
- // skip logging internal properties
43
- if (propertyName.startsWith('_')) {
44
- continue
45
- }
46
-
47
- try {
48
- const property = input[propertyName]
49
- const propertyPath = [...path, propertyName]
50
- if (property instanceof Object) {
51
- if (!seen.has(property)) { // avoid getting stuck in circular reference
52
- seen.add(property)
53
- result[propertyName] = deepMap(
54
- handler(property, propertyPath), handler, propertyPath, seen
55
- )
56
- }
57
- } else {
58
- result[propertyName] = handler(property, propertyPath)
59
- }
60
- } catch (err) {
61
- // a getter may throw an error
62
- result[propertyName] = `[error getting value: ${err.message}]`
63
- }
64
- }
65
- return result
66
- }
67
-
68
- return handler(input, path)
69
- }
70
-
71
- module.exports = { deepMap }
@@ -1,28 +0,0 @@
1
- /** takes an error object and serializes it to a plan object */
2
- function serializeError (input) {
3
- if (!(input instanceof Error)) {
4
- if (typeof input === 'string') {
5
- const error = new Error(`attempted to serialize a non-error, string String, "${input}"`)
6
- return serializeError(error)
7
- }
8
- const error = new Error(`attempted to serialize a non-error, ${typeof input} ${input?.constructor?.name}`)
9
- return serializeError(error)
10
- }
11
- // different error objects store status code differently
12
- // AxiosError uses `status`, other services use `statusCode`
13
- const statusCode = input.statusCode ?? input.status
14
- // CAUTION: what we serialize here gets add to the size of logs
15
- return {
16
- errorType: input.errorType ?? input.constructor.name,
17
- ...(input.message ? { message: input.message } : {}),
18
- ...(input.stack ? { stack: input.stack } : {}),
19
- // think of this as error code
20
- ...(input.code ? { code: input.code } : {}),
21
- // think of this as http status code
22
- ...(statusCode ? { statusCode } : {}),
23
- }
24
- }
25
-
26
- module.exports = {
27
- serializeError,
28
- }
@@ -1,44 +0,0 @@
1
- const matchers = require('./matchers')
2
- const { redactUrlPassword } = require('./utils')
3
-
4
- const REPLACE = '***'
5
-
6
- const redact = (value) => {
7
- if (typeof value !== 'string' || !value) {
8
- return value
9
- }
10
- return redactUrlPassword(value, REPLACE)
11
- .replace(matchers.NPM_SECRET.pattern, `npm_${REPLACE}`)
12
- .replace(matchers.UUID.pattern, REPLACE)
13
- }
14
-
15
- // split on \s|= similar to how nopt parses options
16
- const splitAndRedact = (str) => {
17
- // stateful regex, don't move out of this scope
18
- const splitChars = /[\s=]/g
19
-
20
- let match = null
21
- let result = ''
22
- let index = 0
23
- while (match = splitChars.exec(str)) {
24
- result += redact(str.slice(index, match.index)) + match[0]
25
- index = splitChars.lastIndex
26
- }
27
-
28
- return result + redact(str.slice(index))
29
- }
30
-
31
- // replaces auth info in an array of arguments or in a strings
32
- const redactLog = (arg) => {
33
- if (typeof arg === 'string') {
34
- return splitAndRedact(arg)
35
- } else if (Array.isArray(arg)) {
36
- return arg.map((a) => typeof a === 'string' ? splitAndRedact(a) : a)
37
- }
38
- return arg
39
- }
40
-
41
- module.exports = {
42
- redact,
43
- redactLog,
44
- }
@@ -1,88 +0,0 @@
1
- const TYPE_REGEX = 'regex'
2
- const TYPE_URL = 'url'
3
- const TYPE_PATH = 'path'
4
-
5
- const NPM_SECRET = {
6
- type: TYPE_REGEX,
7
- pattern: /\b(npms?_)[a-zA-Z0-9]{36,48}\b/gi,
8
- replacement: `[REDACTED_NPM_SECRET]`,
9
- }
10
-
11
- const AUTH_HEADER = {
12
- type: TYPE_REGEX,
13
- pattern: /\b(Basic\s+|Bearer\s+)[\w+=\-.]+\b/gi,
14
- replacement: `[REDACTED_AUTH_HEADER]`,
15
- }
16
-
17
- const JSON_WEB_TOKEN = {
18
- type: TYPE_REGEX,
19
- pattern: /\b[A-Za-z0-9-_]{10,}(?!\.\d+\.)\.[A-Za-z0-9-_]{3,}\.[A-Za-z0-9-_]{20,}\b/gi,
20
- replacement: `[REDACTED_JSON_WEB_TOKEN]`,
21
- }
22
-
23
- const UUID = {
24
- type: TYPE_REGEX,
25
- pattern: /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi,
26
- replacement: `[REDACTED_UUID]`,
27
- }
28
-
29
- const URL_MATCHER = {
30
- type: TYPE_REGEX,
31
- pattern: /(?:https?|ftp):\/\/[^\s/"$.?#].[^\s"]*/gi,
32
- replacement: '[REDACTED_URL]',
33
- }
34
-
35
- const DEEP_HEADER_AUTHORIZATION = {
36
- type: TYPE_PATH,
37
- predicate: ({ path }) => path.endsWith('.headers.authorization'),
38
- replacement: '[REDACTED_HEADER_AUTHORIZATION]',
39
- }
40
-
41
- const DEEP_HEADER_SET_COOKIE = {
42
- type: TYPE_PATH,
43
- predicate: ({ path }) => path.endsWith('.headers.set-cookie'),
44
- replacement: '[REDACTED_HEADER_SET_COOKIE]',
45
- }
46
-
47
- const DEEP_HEADER_COOKIE = {
48
- type: TYPE_PATH,
49
- predicate: ({ path }) => path.endsWith('.headers.cookie'),
50
- replacement: '[REDACTED_HEADER_COOKIE]',
51
- }
52
-
53
- const REWRITE_REQUEST = {
54
- type: TYPE_PATH,
55
- predicate: ({ path }) => path.endsWith('.request'),
56
- replacement: (input) => ({
57
- method: input?.method,
58
- path: input?.path,
59
- headers: input?.headers,
60
- url: input?.url,
61
- }),
62
- }
63
-
64
- const REWRITE_RESPONSE = {
65
- type: TYPE_PATH,
66
- predicate: ({ path }) => path.endsWith('.response'),
67
- replacement: (input) => ({
68
- data: input?.data,
69
- status: input?.status,
70
- headers: input?.headers,
71
- }),
72
- }
73
-
74
- module.exports = {
75
- TYPE_REGEX,
76
- TYPE_URL,
77
- TYPE_PATH,
78
- NPM_SECRET,
79
- AUTH_HEADER,
80
- JSON_WEB_TOKEN,
81
- UUID,
82
- URL_MATCHER,
83
- DEEP_HEADER_AUTHORIZATION,
84
- DEEP_HEADER_SET_COOKIE,
85
- DEEP_HEADER_COOKIE,
86
- REWRITE_REQUEST,
87
- REWRITE_RESPONSE,
88
- }
@@ -1,59 +0,0 @@
1
- const {
2
- AUTH_HEADER,
3
- JSON_WEB_TOKEN,
4
- NPM_SECRET,
5
- DEEP_HEADER_AUTHORIZATION,
6
- DEEP_HEADER_SET_COOKIE,
7
- REWRITE_REQUEST,
8
- REWRITE_RESPONSE,
9
- DEEP_HEADER_COOKIE,
10
- } = require('./matchers')
11
-
12
- const {
13
- redactUrlMatcher,
14
- redactUrlPasswordMatcher,
15
- redactMatchers,
16
- } = require('./utils')
17
-
18
- const { serializeError } = require('./error')
19
-
20
- const { deepMap } = require('./deep-map')
21
-
22
- const _redact = redactMatchers(
23
- NPM_SECRET,
24
- AUTH_HEADER,
25
- JSON_WEB_TOKEN,
26
- DEEP_HEADER_AUTHORIZATION,
27
- DEEP_HEADER_SET_COOKIE,
28
- DEEP_HEADER_COOKIE,
29
- REWRITE_REQUEST,
30
- REWRITE_RESPONSE,
31
- redactUrlMatcher(
32
- redactUrlPasswordMatcher()
33
- )
34
- )
35
-
36
- const redact = (input) => deepMap(input, (value, path) => _redact(value, { path }))
37
-
38
- /** takes an error returns new error keeping some custom properties */
39
- function redactError (input) {
40
- const { message, ...data } = serializeError(input)
41
- const output = new Error(redact(message))
42
- return Object.assign(output, redact(data))
43
- }
44
-
45
- /** runs a function within try / catch and throws error wrapped in redactError */
46
- function redactThrow (func) {
47
- if (typeof func !== 'function') {
48
- throw new Error('redactThrow expects a function')
49
- }
50
- return async (...args) => {
51
- try {
52
- return await func(...args)
53
- } catch (error) {
54
- throw redactError(error)
55
- }
56
- }
57
- }
58
-
59
- module.exports = { redact, redactError, redactThrow }
@@ -1,202 +0,0 @@
1
- const {
2
- URL_MATCHER,
3
- TYPE_URL,
4
- TYPE_REGEX,
5
- TYPE_PATH,
6
- } = require('./matchers')
7
-
8
- /**
9
- * creates a string of asterisks,
10
- * this forces a minimum asterisk for security purposes
11
- */
12
- const asterisk = (length = 0) => {
13
- length = typeof length === 'string' ? length.length : length
14
- if (length < 8) {
15
- return '*'.repeat(8)
16
- }
17
- return '*'.repeat(length)
18
- }
19
-
20
- /**
21
- * escapes all special regex chars
22
- * @see https://stackoverflow.com/a/9310752
23
- * @see https://github.com/tc39/proposal-regex-escaping
24
- */
25
- const escapeRegExp = (text) => {
26
- return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, `\\$&`)
27
- }
28
-
29
- /**
30
- * provieds a regex "or" of the url versions of a string
31
- */
32
- const urlEncodeRegexGroup = (value) => {
33
- const decoded = decodeURIComponent(value)
34
- const encoded = encodeURIComponent(value)
35
- const union = [...new Set([encoded, decoded, value])].map(escapeRegExp).join('|')
36
- return union
37
- }
38
-
39
- /**
40
- * a tagged template literal that returns a regex ensures all variables are excaped
41
- */
42
- const urlEncodeRegexTag = (strings, ...values) => {
43
- let pattern = ''
44
- for (let i = 0; i < values.length; i++) {
45
- pattern += strings[i] + `(${urlEncodeRegexGroup(values[i])})`
46
- }
47
- pattern += strings[strings.length - 1]
48
- return new RegExp(pattern)
49
- }
50
-
51
- /**
52
- * creates a matcher for redacting url hostname
53
- */
54
- const redactUrlHostnameMatcher = ({ hostname, replacement } = {}) => ({
55
- type: TYPE_URL,
56
- predicate: ({ url }) => url.hostname === hostname,
57
- pattern: ({ url }) => {
58
- return urlEncodeRegexTag`(^${url.protocol}//${url.username}:.+@)?${url.hostname}`
59
- },
60
- replacement: `$1${replacement || asterisk()}`,
61
- })
62
-
63
- /**
64
- * creates a matcher for redacting url search / query parameter values
65
- */
66
- const redactUrlSearchParamsMatcher = ({ param, replacement } = {}) => ({
67
- type: TYPE_URL,
68
- predicate: ({ url }) => url.searchParams.has(param),
69
- pattern: ({ url }) => urlEncodeRegexTag`(${param}=)${url.searchParams.get(param)}`,
70
- replacement: `$1${replacement || asterisk()}`,
71
- })
72
-
73
- /** creates a matcher for redacting the url password */
74
- const redactUrlPasswordMatcher = ({ replacement } = {}) => ({
75
- type: TYPE_URL,
76
- predicate: ({ url }) => url.password,
77
- pattern: ({ url }) => urlEncodeRegexTag`(^${url.protocol}//${url.username}:)${url.password}`,
78
- replacement: `$1${replacement || asterisk()}`,
79
- })
80
-
81
- const redactUrlReplacement = (...matchers) => (subValue) => {
82
- try {
83
- const url = new URL(subValue)
84
- return redactMatchers(...matchers)(subValue, { url })
85
- } catch (err) {
86
- return subValue
87
- }
88
- }
89
-
90
- /**
91
- * creates a matcher / submatcher for urls, this function allows you to first
92
- * collect all urls within a larger string and then pass those urls to a
93
- * submatcher
94
- *
95
- * @example
96
- * console.log("this will first match all urls, then pass those urls to the password patcher")
97
- * redactMatchers(redactUrlMatcher(redactUrlPasswordMatcher()))
98
- *
99
- * @example
100
- * console.log(
101
- * "this will assume you are passing in a string that is a url, and will redact the password"
102
- * )
103
- * redactMatchers(redactUrlPasswordMatcher())
104
- *
105
- */
106
- const redactUrlMatcher = (...matchers) => {
107
- return {
108
- ...URL_MATCHER,
109
- replacement: redactUrlReplacement(...matchers),
110
- }
111
- }
112
-
113
- const matcherFunctions = {
114
- [TYPE_REGEX]: (matcher) => (value) => {
115
- if (typeof value === 'string') {
116
- value = value.replace(matcher.pattern, matcher.replacement)
117
- }
118
- return value
119
- },
120
- [TYPE_URL]: (matcher) => (value, ctx) => {
121
- if (typeof value === 'string') {
122
- try {
123
- const url = ctx?.url || new URL(value)
124
- const { predicate, pattern } = matcher
125
- const predicateValue = predicate({ url })
126
- if (predicateValue) {
127
- value = value.replace(pattern({ url }), matcher.replacement)
128
- }
129
- } catch (_e) {
130
- return value
131
- }
132
- }
133
- return value
134
- },
135
- [TYPE_PATH]: (matcher) => (value, ctx) => {
136
- const rawPath = ctx?.path
137
- const path = rawPath.join('.').toLowerCase()
138
- const { predicate, replacement } = matcher
139
- const replace = typeof replacement === 'function' ? replacement : () => replacement
140
- const shouldRun = predicate({ rawPath, path })
141
- if (shouldRun) {
142
- value = replace(value, { rawPath, path })
143
- }
144
- return value
145
- },
146
- }
147
-
148
- /** converts a matcher to a function */
149
- const redactMatcher = (matcher) => {
150
- return matcherFunctions[matcher.type](matcher)
151
- }
152
-
153
- /** converts a series of matchers to a function */
154
- const redactMatchers = (...matchers) => (value, ctx) => {
155
- const flatMatchers = matchers.flat()
156
- return flatMatchers.reduce((result, matcher) => {
157
- const fn = (typeof matcher === 'function') ? matcher : redactMatcher(matcher)
158
- return fn(result, ctx)
159
- }, value)
160
- }
161
-
162
- /**
163
- * replacement handler, keeping $1 (if it exists) and replacing the
164
- * rest of the string with asterisks, maintaining string length
165
- */
166
- const redactDynamicReplacement = () => (value, start) => {
167
- if (typeof start === 'number') {
168
- return asterisk(value)
169
- }
170
- return start + asterisk(value.substring(start.length).length)
171
- }
172
-
173
- /**
174
- * replacement handler, keeping $1 (if it exists) and replacing the
175
- * rest of the string with a fixed number of asterisks
176
- */
177
- const redactFixedReplacement = (length) => (_value, start) => {
178
- if (typeof start === 'number') {
179
- return asterisk(length)
180
- }
181
- return start + asterisk(length)
182
- }
183
-
184
- const redactUrlPassword = (value, replacement) => {
185
- return redactMatchers(redactUrlPasswordMatcher({ replacement }))(value)
186
- }
187
-
188
- module.exports = {
189
- asterisk,
190
- escapeRegExp,
191
- urlEncodeRegexGroup,
192
- urlEncodeRegexTag,
193
- redactUrlHostnameMatcher,
194
- redactUrlSearchParamsMatcher,
195
- redactUrlPasswordMatcher,
196
- redactUrlMatcher,
197
- redactUrlReplacement,
198
- redactDynamicReplacement,
199
- redactFixedReplacement,
200
- redactMatchers,
201
- redactUrlPassword,
202
- }