@pnpm/exe 11.10.0 → 11.12.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 (440) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/{dist/node_modules/v8-compile-cache/LICENSE → LICENSE} +2 -1
  3. package/package.json +11 -11
  4. package/dist/node-gyp-bin/node-gyp +0 -6
  5. package/dist/node-gyp-bin/node-gyp.cmd +0 -5
  6. package/dist/node_modules/.package-map.json +0 -1
  7. package/dist/node_modules/@isaacs/fs-minipass/LICENSE +0 -15
  8. package/dist/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +0 -430
  9. package/dist/node_modules/@isaacs/fs-minipass/dist/commonjs/package.json +0 -3
  10. package/dist/node_modules/@isaacs/fs-minipass/dist/esm/index.js +0 -420
  11. package/dist/node_modules/@isaacs/fs-minipass/dist/esm/package.json +0 -3
  12. package/dist/node_modules/@isaacs/fs-minipass/package.json +0 -72
  13. package/dist/node_modules/abbrev/LICENSE +0 -46
  14. package/dist/node_modules/abbrev/lib/index.js +0 -53
  15. package/dist/node_modules/abbrev/package.json +0 -41
  16. package/dist/node_modules/chownr/dist/commonjs/index.js +0 -93
  17. package/dist/node_modules/chownr/dist/commonjs/package.json +0 -3
  18. package/dist/node_modules/chownr/dist/esm/index.js +0 -85
  19. package/dist/node_modules/chownr/dist/esm/package.json +0 -3
  20. package/dist/node_modules/chownr/package.json +0 -69
  21. package/dist/node_modules/env-paths/index.js +0 -74
  22. package/dist/node_modules/env-paths/license +0 -9
  23. package/dist/node_modules/env-paths/package.json +0 -45
  24. package/dist/node_modules/exponential-backoff/LICENSE +0 -202
  25. package/dist/node_modules/exponential-backoff/dist/backoff.js +0 -124
  26. package/dist/node_modules/exponential-backoff/dist/delay/always/always.delay.js +0 -25
  27. package/dist/node_modules/exponential-backoff/dist/delay/delay.base.js +0 -45
  28. package/dist/node_modules/exponential-backoff/dist/delay/delay.factory.js +0 -17
  29. package/dist/node_modules/exponential-backoff/dist/delay/delay.interface.js +0 -3
  30. package/dist/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js +0 -82
  31. package/dist/node_modules/exponential-backoff/dist/jitter/full/full.jitter.js +0 -8
  32. package/dist/node_modules/exponential-backoff/dist/jitter/jitter.factory.js +0 -15
  33. package/dist/node_modules/exponential-backoff/dist/jitter/no/no.jitter.js +0 -7
  34. package/dist/node_modules/exponential-backoff/dist/options.js +0 -31
  35. package/dist/node_modules/exponential-backoff/package.json +0 -62
  36. package/dist/node_modules/fdir/LICENSE +0 -7
  37. package/dist/node_modules/fdir/dist/index.cjs +0 -588
  38. package/dist/node_modules/fdir/dist/index.d.cts +0 -155
  39. package/dist/node_modules/fdir/dist/index.d.mts +0 -155
  40. package/dist/node_modules/fdir/dist/index.mjs +0 -570
  41. package/dist/node_modules/fdir/package.json +0 -103
  42. package/dist/node_modules/graceful-fs/LICENSE +0 -15
  43. package/dist/node_modules/graceful-fs/clone.js +0 -23
  44. package/dist/node_modules/graceful-fs/graceful-fs.js +0 -448
  45. package/dist/node_modules/graceful-fs/legacy-streams.js +0 -118
  46. package/dist/node_modules/graceful-fs/package.json +0 -53
  47. package/dist/node_modules/graceful-fs/polyfills.js +0 -355
  48. package/dist/node_modules/isexe/dist/commonjs/index.js +0 -56
  49. package/dist/node_modules/isexe/dist/commonjs/index.min.js +0 -2
  50. package/dist/node_modules/isexe/dist/commonjs/options.js +0 -3
  51. package/dist/node_modules/isexe/dist/commonjs/package.json +0 -3
  52. package/dist/node_modules/isexe/dist/commonjs/posix.js +0 -67
  53. package/dist/node_modules/isexe/dist/commonjs/win32.js +0 -63
  54. package/dist/node_modules/isexe/dist/esm/index.js +0 -16
  55. package/dist/node_modules/isexe/dist/esm/index.min.js +0 -2
  56. package/dist/node_modules/isexe/dist/esm/options.js +0 -2
  57. package/dist/node_modules/isexe/dist/esm/package.json +0 -3
  58. package/dist/node_modules/isexe/dist/esm/posix.js +0 -62
  59. package/dist/node_modules/isexe/dist/esm/win32.js +0 -58
  60. package/dist/node_modules/isexe/package.json +0 -78
  61. package/dist/node_modules/minipass/dist/commonjs/index.js +0 -1038
  62. package/dist/node_modules/minipass/dist/commonjs/package.json +0 -3
  63. package/dist/node_modules/minipass/dist/esm/index.js +0 -1020
  64. package/dist/node_modules/minipass/dist/esm/package.json +0 -3
  65. package/dist/node_modules/minipass/package.json +0 -77
  66. package/dist/node_modules/minizlib/LICENSE +0 -26
  67. package/dist/node_modules/minizlib/dist/commonjs/constants.js +0 -123
  68. package/dist/node_modules/minizlib/dist/commonjs/index.js +0 -416
  69. package/dist/node_modules/minizlib/dist/commonjs/package.json +0 -3
  70. package/dist/node_modules/minizlib/dist/esm/constants.js +0 -117
  71. package/dist/node_modules/minizlib/dist/esm/index.js +0 -363
  72. package/dist/node_modules/minizlib/dist/esm/package.json +0 -3
  73. package/dist/node_modules/minizlib/package.json +0 -80
  74. package/dist/node_modules/node-gyp/.release-please-manifest.json +0 -3
  75. package/dist/node_modules/node-gyp/LICENSE +0 -24
  76. package/dist/node_modules/node-gyp/addon.gypi +0 -204
  77. package/dist/node_modules/node-gyp/bin/node-gyp.js +0 -145
  78. package/dist/node_modules/node-gyp/eslint.config.js +0 -3
  79. package/dist/node_modules/node-gyp/gyp/.release-please-manifest.json +0 -3
  80. package/dist/node_modules/node-gyp/gyp/LICENSE +0 -28
  81. package/dist/node_modules/node-gyp/gyp/data/ninja/build.ninja +0 -4
  82. package/dist/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc +0 -12
  83. package/dist/node_modules/node-gyp/gyp/gyp +0 -8
  84. package/dist/node_modules/node-gyp/gyp/gyp.bat +0 -5
  85. package/dist/node_modules/node-gyp/gyp/gyp_main.py +0 -45
  86. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +0 -365
  87. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +0 -206
  88. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +0 -1283
  89. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +0 -1545
  90. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +0 -59
  91. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +0 -152
  92. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +0 -270
  93. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +0 -607
  94. package/dist/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +0 -706
  95. package/dist/node_modules/node-gyp/gyp/pylib/gyp/common.py +0 -725
  96. package/dist/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +0 -186
  97. package/dist/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +0 -170
  98. package/dist/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +0 -113
  99. package/dist/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +0 -55
  100. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
  101. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +0 -805
  102. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +0 -1169
  103. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +0 -1316
  104. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +0 -128
  105. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +0 -104
  106. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +0 -461
  107. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +0 -88
  108. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +0 -55
  109. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +0 -2755
  110. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +0 -3970
  111. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +0 -44
  112. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +0 -2957
  113. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +0 -77
  114. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +0 -1389
  115. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +0 -26
  116. package/dist/node_modules/node-gyp/gyp/pylib/gyp/input.py +0 -3097
  117. package/dist/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +0 -99
  118. package/dist/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +0 -765
  119. package/dist/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +0 -1255
  120. package/dist/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +0 -174
  121. package/dist/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +0 -61
  122. package/dist/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +0 -371
  123. package/dist/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +0 -1936
  124. package/dist/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation_test.py +0 -54
  125. package/dist/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py +0 -301
  126. package/dist/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +0 -3180
  127. package/dist/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +0 -64
  128. package/dist/node_modules/node-gyp/gyp/pylib/packaging/LICENSE +0 -3
  129. package/dist/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.APACHE +0 -177
  130. package/dist/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.BSD +0 -23
  131. package/dist/node_modules/node-gyp/gyp/pylib/packaging/__init__.py +0 -15
  132. package/dist/node_modules/node-gyp/gyp/pylib/packaging/_elffile.py +0 -107
  133. package/dist/node_modules/node-gyp/gyp/pylib/packaging/_manylinux.py +0 -252
  134. package/dist/node_modules/node-gyp/gyp/pylib/packaging/_musllinux.py +0 -83
  135. package/dist/node_modules/node-gyp/gyp/pylib/packaging/_parser.py +0 -359
  136. package/dist/node_modules/node-gyp/gyp/pylib/packaging/_structures.py +0 -61
  137. package/dist/node_modules/node-gyp/gyp/pylib/packaging/_tokenizer.py +0 -192
  138. package/dist/node_modules/node-gyp/gyp/pylib/packaging/markers.py +0 -251
  139. package/dist/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +0 -807
  140. package/dist/node_modules/node-gyp/gyp/pylib/packaging/py.typed +0 -0
  141. package/dist/node_modules/node-gyp/gyp/pylib/packaging/requirements.py +0 -90
  142. package/dist/node_modules/node-gyp/gyp/pylib/packaging/specifiers.py +0 -1030
  143. package/dist/node_modules/node-gyp/gyp/pylib/packaging/tags.py +0 -541
  144. package/dist/node_modules/node-gyp/gyp/pylib/packaging/utils.py +0 -172
  145. package/dist/node_modules/node-gyp/gyp/pylib/packaging/version.py +0 -563
  146. package/dist/node_modules/node-gyp/gyp/pyproject.toml +0 -116
  147. package/dist/node_modules/node-gyp/gyp/release-please-config.json +0 -11
  148. package/dist/node_modules/node-gyp/gyp/test_gyp.py +0 -260
  149. package/dist/node_modules/node-gyp/lib/Find-VisualStudio.cs +0 -250
  150. package/dist/node_modules/node-gyp/lib/build.js +0 -230
  151. package/dist/node_modules/node-gyp/lib/clean.js +0 -15
  152. package/dist/node_modules/node-gyp/lib/configure.js +0 -328
  153. package/dist/node_modules/node-gyp/lib/create-config-gypi.js +0 -153
  154. package/dist/node_modules/node-gyp/lib/download.js +0 -86
  155. package/dist/node_modules/node-gyp/lib/find-node-directory.js +0 -63
  156. package/dist/node_modules/node-gyp/lib/find-python.js +0 -304
  157. package/dist/node_modules/node-gyp/lib/find-visualstudio.js +0 -606
  158. package/dist/node_modules/node-gyp/lib/install.js +0 -411
  159. package/dist/node_modules/node-gyp/lib/list.js +0 -26
  160. package/dist/node_modules/node-gyp/lib/log.js +0 -168
  161. package/dist/node_modules/node-gyp/lib/node-gyp.js +0 -199
  162. package/dist/node_modules/node-gyp/lib/process-release.js +0 -144
  163. package/dist/node_modules/node-gyp/lib/rebuild.js +0 -12
  164. package/dist/node_modules/node-gyp/lib/remove.js +0 -43
  165. package/dist/node_modules/node-gyp/lib/util.js +0 -81
  166. package/dist/node_modules/node-gyp/macOS_Catalina_acid_test.sh +0 -21
  167. package/dist/node_modules/node-gyp/package.json +0 -52
  168. package/dist/node_modules/node-gyp/release-please-config.json +0 -40
  169. package/dist/node_modules/node-gyp/src/win_delay_load_hook.cc +0 -41
  170. package/dist/node_modules/nopt/LICENSE +0 -15
  171. package/dist/node_modules/nopt/bin/nopt.js +0 -29
  172. package/dist/node_modules/nopt/lib/debug.js +0 -5
  173. package/dist/node_modules/nopt/lib/nopt-lib.js +0 -514
  174. package/dist/node_modules/nopt/lib/nopt.js +0 -34
  175. package/dist/node_modules/nopt/lib/type-defs.js +0 -91
  176. package/dist/node_modules/nopt/package.json +0 -52
  177. package/dist/node_modules/picomatch/LICENSE +0 -21
  178. package/dist/node_modules/picomatch/index.js +0 -17
  179. package/dist/node_modules/picomatch/lib/constants.js +0 -184
  180. package/dist/node_modules/picomatch/lib/parse.js +0 -1416
  181. package/dist/node_modules/picomatch/lib/picomatch.js +0 -361
  182. package/dist/node_modules/picomatch/lib/scan.js +0 -391
  183. package/dist/node_modules/picomatch/lib/utils.js +0 -72
  184. package/dist/node_modules/picomatch/package.json +0 -83
  185. package/dist/node_modules/picomatch/posix.js +0 -3
  186. package/dist/node_modules/proc-log/LICENSE +0 -15
  187. package/dist/node_modules/proc-log/lib/index.js +0 -158
  188. package/dist/node_modules/proc-log/package.json +0 -46
  189. package/dist/node_modules/semver/LICENSE +0 -15
  190. package/dist/node_modules/semver/bin/semver.js +0 -195
  191. package/dist/node_modules/semver/classes/comparator.js +0 -143
  192. package/dist/node_modules/semver/classes/index.js +0 -7
  193. package/dist/node_modules/semver/classes/range.js +0 -577
  194. package/dist/node_modules/semver/classes/semver.js +0 -350
  195. package/dist/node_modules/semver/functions/clean.js +0 -8
  196. package/dist/node_modules/semver/functions/cmp.js +0 -54
  197. package/dist/node_modules/semver/functions/coerce.js +0 -62
  198. package/dist/node_modules/semver/functions/compare-build.js +0 -9
  199. package/dist/node_modules/semver/functions/compare-loose.js +0 -5
  200. package/dist/node_modules/semver/functions/compare.js +0 -7
  201. package/dist/node_modules/semver/functions/diff.js +0 -60
  202. package/dist/node_modules/semver/functions/eq.js +0 -5
  203. package/dist/node_modules/semver/functions/gt.js +0 -5
  204. package/dist/node_modules/semver/functions/gte.js +0 -5
  205. package/dist/node_modules/semver/functions/inc.js +0 -21
  206. package/dist/node_modules/semver/functions/lt.js +0 -5
  207. package/dist/node_modules/semver/functions/lte.js +0 -5
  208. package/dist/node_modules/semver/functions/major.js +0 -5
  209. package/dist/node_modules/semver/functions/minor.js +0 -5
  210. package/dist/node_modules/semver/functions/neq.js +0 -5
  211. package/dist/node_modules/semver/functions/parse.js +0 -18
  212. package/dist/node_modules/semver/functions/patch.js +0 -5
  213. package/dist/node_modules/semver/functions/prerelease.js +0 -8
  214. package/dist/node_modules/semver/functions/rcompare.js +0 -5
  215. package/dist/node_modules/semver/functions/rsort.js +0 -5
  216. package/dist/node_modules/semver/functions/satisfies.js +0 -12
  217. package/dist/node_modules/semver/functions/sort.js +0 -5
  218. package/dist/node_modules/semver/functions/truncate.js +0 -48
  219. package/dist/node_modules/semver/functions/valid.js +0 -8
  220. package/dist/node_modules/semver/index.js +0 -93
  221. package/dist/node_modules/semver/internal/constants.js +0 -37
  222. package/dist/node_modules/semver/internal/debug.js +0 -11
  223. package/dist/node_modules/semver/internal/identifiers.js +0 -29
  224. package/dist/node_modules/semver/internal/lrucache.js +0 -42
  225. package/dist/node_modules/semver/internal/parse-options.js +0 -17
  226. package/dist/node_modules/semver/internal/re.js +0 -223
  227. package/dist/node_modules/semver/package.json +0 -78
  228. package/dist/node_modules/semver/preload.js +0 -4
  229. package/dist/node_modules/semver/range.bnf +0 -17
  230. package/dist/node_modules/semver/ranges/gtr.js +0 -6
  231. package/dist/node_modules/semver/ranges/intersects.js +0 -9
  232. package/dist/node_modules/semver/ranges/ltr.js +0 -6
  233. package/dist/node_modules/semver/ranges/max-satisfying.js +0 -27
  234. package/dist/node_modules/semver/ranges/min-satisfying.js +0 -26
  235. package/dist/node_modules/semver/ranges/min-version.js +0 -63
  236. package/dist/node_modules/semver/ranges/outside.js +0 -82
  237. package/dist/node_modules/semver/ranges/simplify.js +0 -49
  238. package/dist/node_modules/semver/ranges/subset.js +0 -249
  239. package/dist/node_modules/semver/ranges/to-comparators.js +0 -10
  240. package/dist/node_modules/semver/ranges/valid.js +0 -13
  241. package/dist/node_modules/tar/dist/commonjs/create.js +0 -82
  242. package/dist/node_modules/tar/dist/commonjs/cwd-error.js +0 -18
  243. package/dist/node_modules/tar/dist/commonjs/extract.js +0 -88
  244. package/dist/node_modules/tar/dist/commonjs/get-write-flag.js +0 -32
  245. package/dist/node_modules/tar/dist/commonjs/header.js +0 -348
  246. package/dist/node_modules/tar/dist/commonjs/index.js +0 -64
  247. package/dist/node_modules/tar/dist/commonjs/index.min.js +0 -4
  248. package/dist/node_modules/tar/dist/commonjs/large-numbers.js +0 -99
  249. package/dist/node_modules/tar/dist/commonjs/list.js +0 -145
  250. package/dist/node_modules/tar/dist/commonjs/make-command.js +0 -52
  251. package/dist/node_modules/tar/dist/commonjs/mkdir.js +0 -187
  252. package/dist/node_modules/tar/dist/commonjs/mode-fix.js +0 -29
  253. package/dist/node_modules/tar/dist/commonjs/normalize-unicode.js +0 -38
  254. package/dist/node_modules/tar/dist/commonjs/normalize-windows-path.js +0 -12
  255. package/dist/node_modules/tar/dist/commonjs/options.js +0 -66
  256. package/dist/node_modules/tar/dist/commonjs/pack.js +0 -544
  257. package/dist/node_modules/tar/dist/commonjs/package.json +0 -3
  258. package/dist/node_modules/tar/dist/commonjs/parse.js +0 -645
  259. package/dist/node_modules/tar/dist/commonjs/path-reservations.js +0 -170
  260. package/dist/node_modules/tar/dist/commonjs/pax.js +0 -182
  261. package/dist/node_modules/tar/dist/commonjs/process-umask.js +0 -7
  262. package/dist/node_modules/tar/dist/commonjs/read-entry.js +0 -136
  263. package/dist/node_modules/tar/dist/commonjs/replace.js +0 -227
  264. package/dist/node_modules/tar/dist/commonjs/strip-absolute-path.js +0 -29
  265. package/dist/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +0 -18
  266. package/dist/node_modules/tar/dist/commonjs/symlink-error.js +0 -19
  267. package/dist/node_modules/tar/dist/commonjs/types.js +0 -70
  268. package/dist/node_modules/tar/dist/commonjs/unpack.js +0 -932
  269. package/dist/node_modules/tar/dist/commonjs/update.js +0 -33
  270. package/dist/node_modules/tar/dist/commonjs/warn-method.js +0 -31
  271. package/dist/node_modules/tar/dist/commonjs/winchars.js +0 -14
  272. package/dist/node_modules/tar/dist/commonjs/write-entry.js +0 -698
  273. package/dist/node_modules/tar/dist/esm/create.js +0 -76
  274. package/dist/node_modules/tar/dist/esm/cwd-error.js +0 -14
  275. package/dist/node_modules/tar/dist/esm/extract.js +0 -49
  276. package/dist/node_modules/tar/dist/esm/get-write-flag.js +0 -26
  277. package/dist/node_modules/tar/dist/esm/header.js +0 -311
  278. package/dist/node_modules/tar/dist/esm/index.js +0 -20
  279. package/dist/node_modules/tar/dist/esm/index.min.js +0 -4
  280. package/dist/node_modules/tar/dist/esm/large-numbers.js +0 -94
  281. package/dist/node_modules/tar/dist/esm/list.js +0 -105
  282. package/dist/node_modules/tar/dist/esm/make-command.js +0 -48
  283. package/dist/node_modules/tar/dist/esm/mkdir.js +0 -179
  284. package/dist/node_modules/tar/dist/esm/mode-fix.js +0 -25
  285. package/dist/node_modules/tar/dist/esm/normalize-unicode.js +0 -34
  286. package/dist/node_modules/tar/dist/esm/normalize-windows-path.js +0 -9
  287. package/dist/node_modules/tar/dist/esm/options.js +0 -54
  288. package/dist/node_modules/tar/dist/esm/pack.js +0 -502
  289. package/dist/node_modules/tar/dist/esm/package.json +0 -3
  290. package/dist/node_modules/tar/dist/esm/parse.js +0 -641
  291. package/dist/node_modules/tar/dist/esm/path-reservations.js +0 -166
  292. package/dist/node_modules/tar/dist/esm/pax.js +0 -178
  293. package/dist/node_modules/tar/dist/esm/process-umask.js +0 -3
  294. package/dist/node_modules/tar/dist/esm/read-entry.js +0 -132
  295. package/dist/node_modules/tar/dist/esm/replace.js +0 -221
  296. package/dist/node_modules/tar/dist/esm/strip-absolute-path.js +0 -25
  297. package/dist/node_modules/tar/dist/esm/strip-trailing-slashes.js +0 -14
  298. package/dist/node_modules/tar/dist/esm/symlink-error.js +0 -15
  299. package/dist/node_modules/tar/dist/esm/types.js +0 -65
  300. package/dist/node_modules/tar/dist/esm/unpack.js +0 -891
  301. package/dist/node_modules/tar/dist/esm/update.js +0 -30
  302. package/dist/node_modules/tar/dist/esm/warn-method.js +0 -27
  303. package/dist/node_modules/tar/dist/esm/winchars.js +0 -9
  304. package/dist/node_modules/tar/dist/esm/write-entry.js +0 -656
  305. package/dist/node_modules/tar/package.json +0 -298
  306. package/dist/node_modules/tinyglobby/LICENSE +0 -21
  307. package/dist/node_modules/tinyglobby/dist/index.cjs +0 -335
  308. package/dist/node_modules/tinyglobby/dist/index.d.cts +0 -148
  309. package/dist/node_modules/tinyglobby/dist/index.d.mts +0 -148
  310. package/dist/node_modules/tinyglobby/dist/index.mjs +0 -307
  311. package/dist/node_modules/tinyglobby/package.json +0 -70
  312. package/dist/node_modules/undici/LICENSE +0 -21
  313. package/dist/node_modules/undici/index-fetch.js +0 -35
  314. package/dist/node_modules/undici/index.js +0 -169
  315. package/dist/node_modules/undici/lib/api/abort-signal.js +0 -57
  316. package/dist/node_modules/undici/lib/api/api-connect.js +0 -108
  317. package/dist/node_modules/undici/lib/api/api-pipeline.js +0 -251
  318. package/dist/node_modules/undici/lib/api/api-request.js +0 -214
  319. package/dist/node_modules/undici/lib/api/api-stream.js +0 -220
  320. package/dist/node_modules/undici/lib/api/api-upgrade.js +0 -108
  321. package/dist/node_modules/undici/lib/api/index.js +0 -7
  322. package/dist/node_modules/undici/lib/api/readable.js +0 -385
  323. package/dist/node_modules/undici/lib/api/util.js +0 -93
  324. package/dist/node_modules/undici/lib/core/connect.js +0 -240
  325. package/dist/node_modules/undici/lib/core/constants.js +0 -118
  326. package/dist/node_modules/undici/lib/core/diagnostics.js +0 -202
  327. package/dist/node_modules/undici/lib/core/errors.js +0 -425
  328. package/dist/node_modules/undici/lib/core/request.js +0 -405
  329. package/dist/node_modules/undici/lib/core/symbols.js +0 -67
  330. package/dist/node_modules/undici/lib/core/tree.js +0 -152
  331. package/dist/node_modules/undici/lib/core/util.js +0 -719
  332. package/dist/node_modules/undici/lib/dispatcher/agent.js +0 -129
  333. package/dist/node_modules/undici/lib/dispatcher/balanced-pool.js +0 -209
  334. package/dist/node_modules/undici/lib/dispatcher/client-h1.js +0 -1487
  335. package/dist/node_modules/undici/lib/dispatcher/client-h2.js +0 -744
  336. package/dist/node_modules/undici/lib/dispatcher/client.js +0 -623
  337. package/dist/node_modules/undici/lib/dispatcher/dispatcher-base.js +0 -199
  338. package/dist/node_modules/undici/lib/dispatcher/dispatcher.js +0 -65
  339. package/dist/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +0 -160
  340. package/dist/node_modules/undici/lib/dispatcher/fixed-queue.js +0 -117
  341. package/dist/node_modules/undici/lib/dispatcher/pool-base.js +0 -194
  342. package/dist/node_modules/undici/lib/dispatcher/pool-stats.js +0 -34
  343. package/dist/node_modules/undici/lib/dispatcher/pool.js +0 -107
  344. package/dist/node_modules/undici/lib/dispatcher/proxy-agent.js +0 -274
  345. package/dist/node_modules/undici/lib/dispatcher/retry-agent.js +0 -35
  346. package/dist/node_modules/undici/lib/global.js +0 -32
  347. package/dist/node_modules/undici/lib/handler/decorator-handler.js +0 -44
  348. package/dist/node_modules/undici/lib/handler/redirect-handler.js +0 -232
  349. package/dist/node_modules/undici/lib/handler/retry-handler.js +0 -374
  350. package/dist/node_modules/undici/lib/interceptor/dns.js +0 -375
  351. package/dist/node_modules/undici/lib/interceptor/dump.js +0 -123
  352. package/dist/node_modules/undici/lib/interceptor/redirect-interceptor.js +0 -21
  353. package/dist/node_modules/undici/lib/interceptor/redirect.js +0 -24
  354. package/dist/node_modules/undici/lib/interceptor/response-error.js +0 -86
  355. package/dist/node_modules/undici/lib/interceptor/retry.js +0 -19
  356. package/dist/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  357. package/dist/node_modules/undici/lib/llhttp/constants.js +0 -278
  358. package/dist/node_modules/undici/lib/llhttp/llhttp-wasm.js +0 -5
  359. package/dist/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +0 -5
  360. package/dist/node_modules/undici/lib/llhttp/utils.js +0 -15
  361. package/dist/node_modules/undici/lib/mock/mock-agent.js +0 -160
  362. package/dist/node_modules/undici/lib/mock/mock-client.js +0 -59
  363. package/dist/node_modules/undici/lib/mock/mock-errors.js +0 -28
  364. package/dist/node_modules/undici/lib/mock/mock-interceptor.js +0 -207
  365. package/dist/node_modules/undici/lib/mock/mock-pool.js +0 -59
  366. package/dist/node_modules/undici/lib/mock/mock-symbols.js +0 -23
  367. package/dist/node_modules/undici/lib/mock/mock-utils.js +0 -367
  368. package/dist/node_modules/undici/lib/mock/pending-interceptors-formatter.js +0 -43
  369. package/dist/node_modules/undici/lib/mock/pluralizer.js +0 -29
  370. package/dist/node_modules/undici/lib/util/timers.js +0 -423
  371. package/dist/node_modules/undici/lib/web/cache/cache.js +0 -859
  372. package/dist/node_modules/undici/lib/web/cache/cachestorage.js +0 -152
  373. package/dist/node_modules/undici/lib/web/cache/symbols.js +0 -5
  374. package/dist/node_modules/undici/lib/web/cache/util.js +0 -45
  375. package/dist/node_modules/undici/lib/web/cookies/constants.js +0 -12
  376. package/dist/node_modules/undici/lib/web/cookies/index.js +0 -184
  377. package/dist/node_modules/undici/lib/web/cookies/parse.js +0 -310
  378. package/dist/node_modules/undici/lib/web/cookies/util.js +0 -282
  379. package/dist/node_modules/undici/lib/web/eventsource/eventsource-stream.js +0 -398
  380. package/dist/node_modules/undici/lib/web/eventsource/eventsource.js +0 -480
  381. package/dist/node_modules/undici/lib/web/eventsource/util.js +0 -37
  382. package/dist/node_modules/undici/lib/web/fetch/LICENSE +0 -21
  383. package/dist/node_modules/undici/lib/web/fetch/body.js +0 -529
  384. package/dist/node_modules/undici/lib/web/fetch/constants.js +0 -124
  385. package/dist/node_modules/undici/lib/web/fetch/data-url.js +0 -744
  386. package/dist/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +0 -46
  387. package/dist/node_modules/undici/lib/web/fetch/file.js +0 -126
  388. package/dist/node_modules/undici/lib/web/fetch/formdata-parser.js +0 -474
  389. package/dist/node_modules/undici/lib/web/fetch/formdata.js +0 -252
  390. package/dist/node_modules/undici/lib/web/fetch/global.js +0 -40
  391. package/dist/node_modules/undici/lib/web/fetch/headers.js +0 -687
  392. package/dist/node_modules/undici/lib/web/fetch/index.js +0 -2272
  393. package/dist/node_modules/undici/lib/web/fetch/request.js +0 -1037
  394. package/dist/node_modules/undici/lib/web/fetch/response.js +0 -610
  395. package/dist/node_modules/undici/lib/web/fetch/symbols.js +0 -9
  396. package/dist/node_modules/undici/lib/web/fetch/util.js +0 -1632
  397. package/dist/node_modules/undici/lib/web/fetch/webidl.js +0 -695
  398. package/dist/node_modules/undici/lib/web/fileapi/encoding.js +0 -290
  399. package/dist/node_modules/undici/lib/web/fileapi/filereader.js +0 -344
  400. package/dist/node_modules/undici/lib/web/fileapi/progressevent.js +0 -78
  401. package/dist/node_modules/undici/lib/web/fileapi/symbols.js +0 -10
  402. package/dist/node_modules/undici/lib/web/fileapi/util.js +0 -391
  403. package/dist/node_modules/undici/lib/web/websocket/connection.js +0 -371
  404. package/dist/node_modules/undici/lib/web/websocket/constants.js +0 -66
  405. package/dist/node_modules/undici/lib/web/websocket/events.js +0 -329
  406. package/dist/node_modules/undici/lib/web/websocket/frame.js +0 -96
  407. package/dist/node_modules/undici/lib/web/websocket/permessage-deflate.js +0 -100
  408. package/dist/node_modules/undici/lib/web/websocket/receiver.js +0 -513
  409. package/dist/node_modules/undici/lib/web/websocket/sender.js +0 -104
  410. package/dist/node_modules/undici/lib/web/websocket/symbols.js +0 -12
  411. package/dist/node_modules/undici/lib/web/websocket/util.js +0 -322
  412. package/dist/node_modules/undici/lib/web/websocket/websocket.js +0 -595
  413. package/dist/node_modules/undici/package.json +0 -160
  414. package/dist/node_modules/undici/scripts/strip-comments.js +0 -8
  415. package/dist/node_modules/v8-compile-cache/package.json +0 -34
  416. package/dist/node_modules/v8-compile-cache/v8-compile-cache.js +0 -373
  417. package/dist/node_modules/which/LICENSE +0 -15
  418. package/dist/node_modules/which/bin/which.js +0 -52
  419. package/dist/node_modules/which/lib/index.js +0 -111
  420. package/dist/node_modules/which/package.json +0 -52
  421. package/dist/node_modules/yallist/dist/commonjs/index.js +0 -384
  422. package/dist/node_modules/yallist/dist/commonjs/package.json +0 -3
  423. package/dist/node_modules/yallist/dist/esm/index.js +0 -379
  424. package/dist/node_modules/yallist/dist/esm/package.json +0 -3
  425. package/dist/node_modules/yallist/package.json +0 -68
  426. package/dist/pnpm.mjs +0 -307717
  427. package/dist/pnpmrc +0 -2
  428. package/dist/templates/completion.bash +0 -31
  429. package/dist/templates/completion.fish +0 -22
  430. package/dist/templates/completion.ps1 +0 -193
  431. package/dist/templates/completion.zsh +0 -27
  432. package/dist/vendor/fastlist-0.3.0-x64.exe +0 -0
  433. package/dist/vendor/fastlist-0.3.0-x86.exe +0 -0
  434. package/dist/worker.js +0 -11938
  435. package/pn.cmd +0 -2
  436. package/pn.ps1 +0 -1
  437. package/pnpx.cmd +0 -2
  438. package/pnpx.ps1 +0 -1
  439. package/pnx.cmd +0 -2
  440. package/pnx.ps1 +0 -1
@@ -1,153 +0,0 @@
1
- 'use strict'
2
-
3
- const fs = require('graceful-fs').promises
4
- const log = require('./log')
5
- const path = require('path')
6
-
7
- function parseConfigGypi (config) {
8
- // translated from tools/js2c.py of Node.js
9
- // 1. string comments
10
- config = config.replace(/#.*/g, '')
11
- // 2. join multiline strings
12
- config = config.replace(/'$\s+'/mg, '')
13
- // 3. normalize string literals from ' into "
14
- config = config.replace(/'/g, '"')
15
- return JSON.parse(config)
16
- }
17
-
18
- async function getBaseConfigGypi ({ gyp, nodeDir }) {
19
- // try reading $nodeDir/include/node/config.gypi first when:
20
- // 1. --dist-url or --nodedir is specified
21
- // 2. and --force-process-config is not specified
22
- const useCustomHeaders = gyp.opts.nodedir || gyp.opts.disturl || gyp.opts['dist-url']
23
- const shouldReadConfigGypi = useCustomHeaders && !gyp.opts['force-process-config']
24
- if (shouldReadConfigGypi && nodeDir) {
25
- try {
26
- const baseConfigGypiPath = path.resolve(nodeDir, 'include/node/config.gypi')
27
- const baseConfigGypi = await fs.readFile(baseConfigGypiPath)
28
- return parseConfigGypi(baseConfigGypi.toString())
29
- } catch (err) {
30
- log.warn('read config.gypi', err.message)
31
- }
32
- }
33
-
34
- // fallback to process.config if it is invalid
35
- return JSON.parse(JSON.stringify(process.config))
36
- }
37
-
38
- async function getCurrentConfigGypi ({ gyp, nodeDir, vsInfo, python }) {
39
- const config = await getBaseConfigGypi({ gyp, nodeDir })
40
- if (!config.target_defaults) {
41
- config.target_defaults = {}
42
- }
43
- if (!config.variables) {
44
- config.variables = {}
45
- }
46
-
47
- const defaults = config.target_defaults
48
- const variables = config.variables
49
-
50
- // don't inherit the "defaults" from the base config.gypi.
51
- // doing so could cause problems in cases where the `node` executable was
52
- // compiled on a different machine (with different lib/include paths) than
53
- // the machine where the addon is being built to
54
- defaults.cflags = []
55
- defaults.defines = []
56
- defaults.include_dirs = []
57
- defaults.libraries = []
58
-
59
- // set the default_configuration prop
60
- if ('debug' in gyp.opts) {
61
- defaults.default_configuration = gyp.opts.debug ? 'Debug' : 'Release'
62
- }
63
-
64
- if (!defaults.default_configuration) {
65
- defaults.default_configuration = 'Release'
66
- }
67
-
68
- // set the target_arch variable
69
- variables.target_arch = gyp.opts.arch || process.arch || 'ia32'
70
- if (variables.target_arch === 'arm64') {
71
- defaults.msvs_configuration_platform = 'ARM64'
72
- defaults.xcode_configuration_platform = 'arm64'
73
- }
74
-
75
- // set the node development directory
76
- variables.nodedir = nodeDir
77
-
78
- // set the configured Python path
79
- variables.python = python
80
-
81
- // disable -T "thin" static archives by default
82
- variables.standalone_static_library = gyp.opts.thin ? 0 : 1
83
-
84
- if (process.platform === 'win32') {
85
- defaults.msbuild_toolset = vsInfo.toolset
86
- if (vsInfo.sdk) {
87
- defaults.msvs_windows_target_platform_version = vsInfo.sdk
88
- }
89
- if (variables.target_arch === 'arm64') {
90
- if (vsInfo.versionMajor > 15 ||
91
- (vsInfo.versionMajor === 15 && vsInfo.versionMajor >= 9)) {
92
- defaults.msvs_enable_marmasm = 1
93
- } else {
94
- log.warn('Compiling ARM64 assembly is only available in\n' +
95
- 'Visual Studio 2017 version 15.9 and above')
96
- }
97
- }
98
- variables.msbuild_path = vsInfo.msBuild
99
- if (config.variables.clang === 1) {
100
- config.variables.clang = 0
101
- }
102
- }
103
-
104
- // loop through the rest of the opts and add the unknown ones as variables.
105
- // this allows for module-specific configure flags like:
106
- //
107
- // $ node-gyp configure --shared-libxml2
108
- Object.keys(gyp.opts).forEach(function (opt) {
109
- if (opt === 'argv') {
110
- return
111
- }
112
- if (opt in gyp.configDefs) {
113
- return
114
- }
115
- variables[opt.replace(/-/g, '_')] = gyp.opts[opt]
116
- })
117
-
118
- return config
119
- }
120
-
121
- async function createConfigGypi ({ gyp, buildDir, nodeDir, vsInfo, python }) {
122
- const configFilename = 'config.gypi'
123
- const configPath = path.resolve(buildDir, configFilename)
124
-
125
- log.verbose('build/' + configFilename, 'creating config file')
126
-
127
- const config = await getCurrentConfigGypi({ gyp, nodeDir, vsInfo, python })
128
-
129
- // ensures that any boolean values in config.gypi get stringified
130
- function boolsToString (k, v) {
131
- if (typeof v === 'boolean') {
132
- return String(v)
133
- }
134
- return v
135
- }
136
-
137
- log.silly('build/' + configFilename, config)
138
-
139
- // now write out the config.gypi file to the build/ dir
140
- const prefix = '# Do not edit. File was generated by node-gyp\'s "configure" step'
141
-
142
- const json = JSON.stringify(config, boolsToString, 2)
143
- log.verbose('build/' + configFilename, 'writing out config file: %s', configPath)
144
- await fs.writeFile(configPath, [prefix, json, ''].join('\n'))
145
-
146
- return configPath
147
- }
148
-
149
- module.exports = {
150
- createConfigGypi,
151
- parseConfigGypi,
152
- getCurrentConfigGypi
153
- }
@@ -1,86 +0,0 @@
1
- const { Readable } = require('stream')
2
- const { Agent, EnvHttpProxyAgent, RetryAgent, fetch } = require('undici')
3
- const { promises: fs } = require('graceful-fs')
4
- const log = require('./log')
5
-
6
- async function download (gyp, url) {
7
- log.http('GET', url)
8
-
9
- const requestOpts = {
10
- headers: {
11
- 'User-Agent': `node-gyp v${gyp.version} (node ${process.version})`,
12
- Connection: 'keep-alive'
13
- },
14
- dispatcher: await createDispatcher(gyp)
15
- }
16
-
17
- let res
18
- try {
19
- res = await fetch(url, requestOpts)
20
- } catch (err) {
21
- // Built-in fetch wraps low-level errors in "TypeError: fetch failed" with
22
- // the underlying error on .cause. Callers inspect .code (e.g. ENOTFOUND).
23
- if (err.cause) {
24
- throw err.cause
25
- }
26
- throw err
27
- }
28
-
29
- log.http(res.status, res.url)
30
-
31
- const body = res.body ? Readable.fromWeb(res.body) : Readable.from([])
32
- return {
33
- status: res.status,
34
- url: res.url,
35
- body,
36
- text: async () => {
37
- let data = ''
38
- body.setEncoding('utf8')
39
- for await (const chunk of body) {
40
- data += chunk
41
- }
42
- return data
43
- }
44
- }
45
- }
46
-
47
- async function createDispatcher (gyp) {
48
- const env = process.env
49
- const hasProxyEnv = env.http_proxy || env.HTTP_PROXY || env.https_proxy || env.HTTPS_PROXY
50
- if (!gyp.opts.proxy && !gyp.opts.cafile && !hasProxyEnv) {
51
- return new RetryAgent(new Agent(), { maxRetries: 3 })
52
- }
53
-
54
- const opts = {}
55
- if (gyp.opts.cafile) {
56
- const ca = await readCAFile(gyp.opts.cafile)
57
- // EnvHttpProxyAgent forwards opts to both its internal Agent (direct) and
58
- // ProxyAgent (proxied). Agent reads TLS config from `connect`; ProxyAgent
59
- // reads it from `requestTls` (origin) / `proxyTls` (proxy). Set all three
60
- // so the custom CA is applied regardless of which path a request takes.
61
- opts.connect = { ca }
62
- opts.requestTls = { ca }
63
- opts.proxyTls = { ca }
64
- }
65
- if (gyp.opts.proxy) {
66
- opts.httpProxy = gyp.opts.proxy
67
- opts.httpsProxy = gyp.opts.proxy
68
- }
69
- if (gyp.opts.noproxy) {
70
- opts.noProxy = gyp.opts.noproxy
71
- }
72
- return new RetryAgent(new EnvHttpProxyAgent(opts), { maxRetries: 3 })
73
- }
74
-
75
- async function readCAFile (filename) {
76
- // The CA file can contain multiple certificates so split on certificate
77
- // boundaries. [\S\s]*? is used to match everything including newlines.
78
- const ca = await fs.readFile(filename, 'utf8')
79
- const re = /(-----BEGIN CERTIFICATE-----[\S\s]*?-----END CERTIFICATE-----)/g
80
- return ca.match(re)
81
- }
82
-
83
- module.exports = {
84
- download,
85
- readCAFile
86
- }
@@ -1,63 +0,0 @@
1
- 'use strict'
2
-
3
- const path = require('path')
4
- const log = require('./log')
5
-
6
- function findNodeDirectory (scriptLocation, processObj) {
7
- // set dirname and process if not passed in
8
- // this facilitates regression tests
9
- if (scriptLocation === undefined) {
10
- scriptLocation = __dirname
11
- }
12
- if (processObj === undefined) {
13
- processObj = process
14
- }
15
-
16
- // Have a look to see what is above us, to try and work out where we are
17
- const npmParentDirectory = path.join(scriptLocation, '../../../..')
18
- log.verbose('node-gyp root', 'npm_parent_directory is ' +
19
- path.basename(npmParentDirectory))
20
- let nodeRootDir = ''
21
-
22
- log.verbose('node-gyp root', 'Finding node root directory')
23
- if (path.basename(npmParentDirectory) === 'deps') {
24
- // We are in a build directory where this script lives in
25
- // deps/npm/node_modules/node-gyp/lib
26
- nodeRootDir = path.join(npmParentDirectory, '..')
27
- log.verbose('node-gyp root', 'in build directory, root = ' +
28
- nodeRootDir)
29
- } else if (path.basename(npmParentDirectory) === 'node_modules') {
30
- // We are in a node install directory where this script lives in
31
- // lib/node_modules/npm/node_modules/node-gyp/lib or
32
- // node_modules/npm/node_modules/node-gyp/lib depending on the
33
- // platform
34
- if (processObj.platform === 'win32') {
35
- nodeRootDir = path.join(npmParentDirectory, '..')
36
- } else {
37
- nodeRootDir = path.join(npmParentDirectory, '../..')
38
- }
39
- log.verbose('node-gyp root', 'in install directory, root = ' +
40
- nodeRootDir)
41
- } else {
42
- // We don't know where we are, try working it out from the location
43
- // of the node binary
44
- const nodeDir = path.dirname(processObj.execPath)
45
- const directoryUp = path.basename(nodeDir)
46
- if (directoryUp === 'bin') {
47
- nodeRootDir = path.join(nodeDir, '..')
48
- } else if (directoryUp === 'Release' || directoryUp === 'Debug') {
49
- // If we are a recently built node, and the directory structure
50
- // is that of a repository. If we are on Windows then we only need
51
- // to go one level up, everything else, two
52
- if (processObj.platform === 'win32') {
53
- nodeRootDir = path.join(nodeDir, '..')
54
- } else {
55
- nodeRootDir = path.join(nodeDir, '../..')
56
- }
57
- }
58
- // Else return the default blank, "".
59
- }
60
- return nodeRootDir
61
- }
62
-
63
- module.exports = findNodeDirectory
@@ -1,304 +0,0 @@
1
- 'use strict'
2
-
3
- const log = require('./log')
4
- const semver = require('semver')
5
- const { execFile } = require('./util')
6
- const win = process.platform === 'win32'
7
-
8
- function getOsUserInfo () {
9
- try {
10
- return require('os').userInfo().username
11
- } catch {}
12
- }
13
-
14
- const systemDrive = process.env.SystemDrive || 'C:'
15
- const username = process.env.USERNAME || process.env.USER || getOsUserInfo()
16
- const localAppData = process.env.LOCALAPPDATA || `${systemDrive}\\${username}\\AppData\\Local`
17
- const foundLocalAppData = process.env.LOCALAPPDATA || username
18
- const programFiles = process.env.ProgramW6432 || process.env.ProgramFiles || `${systemDrive}\\Program Files`
19
- const programFilesX86 = process.env['ProgramFiles(x86)'] || `${programFiles} (x86)`
20
-
21
- const winDefaultLocationsArray = []
22
- for (const majorMinor of ['311', '310', '39', '38']) {
23
- if (foundLocalAppData) {
24
- winDefaultLocationsArray.push(
25
- `${localAppData}\\Programs\\Python\\Python${majorMinor}\\python.exe`,
26
- `${programFiles}\\Python${majorMinor}\\python.exe`,
27
- `${localAppData}\\Programs\\Python\\Python${majorMinor}-32\\python.exe`,
28
- `${programFiles}\\Python${majorMinor}-32\\python.exe`,
29
- `${programFilesX86}\\Python${majorMinor}-32\\python.exe`
30
- )
31
- } else {
32
- winDefaultLocationsArray.push(
33
- `${programFiles}\\Python${majorMinor}\\python.exe`,
34
- `${programFiles}\\Python${majorMinor}-32\\python.exe`,
35
- `${programFilesX86}\\Python${majorMinor}-32\\python.exe`
36
- )
37
- }
38
- }
39
-
40
- class PythonFinder {
41
- static findPython = (...args) => new PythonFinder(...args).findPython()
42
-
43
- log = log.withPrefix('find Python')
44
- argsExecutable = ['-c', 'import sys; sys.stdout.buffer.write(sys.executable.encode(\'utf-8\'));']
45
- argsVersion = ['-c', 'import sys; print("%s.%s.%s" % sys.version_info[:3]);']
46
- semverRange = '>=3.6.0'
47
-
48
- // These can be overridden for testing:
49
- execFile = execFile
50
- env = process.env
51
- win = win
52
- pyLauncher = 'py.exe'
53
- winDefaultLocations = winDefaultLocationsArray
54
-
55
- constructor (configPython) {
56
- this.configPython = configPython
57
- this.errorLog = []
58
- }
59
-
60
- // Logs a message at verbose level, but also saves it to be displayed later
61
- // at error level if an error occurs. This should help diagnose the problem.
62
- addLog (message) {
63
- this.log.verbose(message)
64
- this.errorLog.push(message)
65
- }
66
-
67
- // Find Python by trying a sequence of possibilities.
68
- // Ignore errors, keep trying until Python is found.
69
- async findPython () {
70
- const SKIP = 0
71
- const FAIL = 1
72
- const toCheck = (() => {
73
- if (this.env.NODE_GYP_FORCE_PYTHON) {
74
- return [{
75
- before: () => {
76
- this.addLog(
77
- 'checking Python explicitly set from NODE_GYP_FORCE_PYTHON')
78
- this.addLog('- process.env.NODE_GYP_FORCE_PYTHON is ' +
79
- `"${this.env.NODE_GYP_FORCE_PYTHON}"`)
80
- },
81
- check: () => this.checkCommand(this.env.NODE_GYP_FORCE_PYTHON)
82
- }]
83
- }
84
-
85
- const checks = [
86
- {
87
- before: () => {
88
- if (!this.configPython) {
89
- this.addLog('--python was not set on the command line')
90
- return SKIP
91
- }
92
- this.addLog(`--python=${this.configPython} was set on the command line`)
93
- },
94
- check: () => this.checkCommand(this.configPython)
95
- },
96
- {
97
- before: () => {
98
- if (!this.env.PYTHON) {
99
- this.addLog('Python is not set from environment variable ' +
100
- 'PYTHON')
101
- return SKIP
102
- }
103
- this.addLog('checking Python explicitly set from environment ' +
104
- 'variable PYTHON')
105
- this.addLog(`- process.env.PYTHON is "${this.env.PYTHON}"`)
106
- },
107
- check: () => this.checkCommand(this.env.PYTHON)
108
- }
109
- ]
110
-
111
- if (this.win) {
112
- checks.push({
113
- before: () => {
114
- this.addLog(
115
- 'checking if the py launcher can be used to find Python 3')
116
- },
117
- check: () => this.checkPyLauncher()
118
- })
119
- }
120
-
121
- checks.push(...[
122
- {
123
- before: () => { this.addLog('checking if "python3" can be used') },
124
- check: () => this.checkCommand('python3')
125
- },
126
- {
127
- before: () => { this.addLog('checking if "python" can be used') },
128
- check: () => this.checkCommand('python')
129
- }
130
- ])
131
-
132
- if (this.win) {
133
- for (let i = 0; i < this.winDefaultLocations.length; ++i) {
134
- const location = this.winDefaultLocations[i]
135
- checks.push({
136
- before: () => this.addLog(`checking if Python is ${location}`),
137
- check: () => this.checkExecPath(location)
138
- })
139
- }
140
- }
141
-
142
- return checks
143
- })()
144
-
145
- for (const check of toCheck) {
146
- const before = check.before()
147
- if (before === SKIP) {
148
- continue
149
- }
150
- if (before === FAIL) {
151
- return this.fail()
152
- }
153
- try {
154
- return await check.check()
155
- } catch (err) {
156
- this.log.silly('runChecks: err = %j', (err && err.stack) || err)
157
- }
158
- }
159
-
160
- return this.fail()
161
- }
162
-
163
- // Check if command is a valid Python to use.
164
- // Will exit the Python finder on success.
165
- // If on Windows, run in a CMD shell to support BAT/CMD launchers.
166
- async checkCommand (command) {
167
- let exec = command
168
- let args = this.argsExecutable
169
- let shell = false
170
- if (this.win) {
171
- // Arguments have to be manually quoted
172
- exec = `"${exec}"`
173
- args = args.map(a => `"${a}"`)
174
- shell = true
175
- }
176
-
177
- this.log.verbose(`- executing "${command}" to get executable path`)
178
- // Possible outcomes:
179
- // - Error: not in PATH, not executable or execution fails
180
- // - Gibberish: the next command to check version will fail
181
- // - Absolute path to executable
182
- try {
183
- const execPath = await this.run(exec, args, shell)
184
- this.addLog(`- executable path is "${execPath}"`)
185
- return this.checkExecPath(execPath)
186
- } catch (err) {
187
- this.addLog(`- "${command}" is not in PATH or produced an error`)
188
- throw err
189
- }
190
- }
191
-
192
- // Check if the py launcher can find a valid Python to use.
193
- // Will exit the Python finder on success.
194
- // Distributions of Python on Windows by default install with the "py.exe"
195
- // Python launcher which is more likely to exist than the Python executable
196
- // being in the $PATH.
197
- // Because the Python launcher supports Python 2 and Python 3, we should
198
- // explicitly request a Python 3 version. This is done by supplying "-3" as
199
- // the first command line argument. Since "py.exe -3" would be an invalid
200
- // executable for "execFile", we have to use the launcher to figure out
201
- // where the actual "python.exe" executable is located.
202
- async checkPyLauncher () {
203
- this.log.verbose(`- executing "${this.pyLauncher}" to get Python 3 executable path`)
204
- // Possible outcomes: same as checkCommand
205
- try {
206
- const execPath = await this.run(this.pyLauncher, ['-3', ...this.argsExecutable], false)
207
- this.addLog(`- executable path is "${execPath}"`)
208
- return this.checkExecPath(execPath)
209
- } catch (err) {
210
- this.addLog(`- "${this.pyLauncher}" is not in PATH or produced an error`)
211
- throw err
212
- }
213
- }
214
-
215
- // Check if a Python executable is the correct version to use.
216
- // Will exit the Python finder on success.
217
- async checkExecPath (execPath) {
218
- this.log.verbose(`- executing "${execPath}" to get version`)
219
- // Possible outcomes:
220
- // - Error: executable can not be run (likely meaning the command wasn't
221
- // a Python executable and the previous command produced gibberish)
222
- // - Gibberish: somehow the last command produced an executable path,
223
- // this will fail when verifying the version
224
- // - Version of the Python executable
225
- try {
226
- const version = await this.run(execPath, this.argsVersion, false)
227
- this.addLog(`- version is "${version}"`)
228
-
229
- const range = new semver.Range(this.semverRange)
230
- let valid = false
231
- try {
232
- valid = range.test(version)
233
- } catch (err) {
234
- this.log.silly('range.test() threw:\n%s', err.stack)
235
- this.addLog(`- "${execPath}" does not have a valid version`)
236
- this.addLog('- is it a Python executable?')
237
- throw err
238
- }
239
- if (!valid) {
240
- this.addLog(`- version is ${version} - should be ${this.semverRange}`)
241
- this.addLog('- THIS VERSION OF PYTHON IS NOT SUPPORTED')
242
- throw new Error(`Found unsupported Python version ${version}`)
243
- }
244
- return this.succeed(execPath, version)
245
- } catch (err) {
246
- this.addLog(`- "${execPath}" could not be run`)
247
- throw err
248
- }
249
- }
250
-
251
- // Run an executable or shell command, trimming the output.
252
- async run (exec, args, shell) {
253
- const env = Object.assign({}, this.env)
254
- env.TERM = 'dumb'
255
- const opts = { env, shell }
256
-
257
- this.log.silly('execFile: exec = %j', exec)
258
- this.log.silly('execFile: args = %j', args)
259
- this.log.silly('execFile: opts = %j', opts)
260
- try {
261
- const [err, stdout, stderr] = await this.execFile(exec, args, opts)
262
- this.log.silly('execFile result: err = %j', (err && err.stack) || err)
263
- this.log.silly('execFile result: stdout = %j', stdout)
264
- this.log.silly('execFile result: stderr = %j', stderr)
265
- return stdout.trim()
266
- } catch (err) {
267
- this.log.silly('execFile: threw:\n%s', err.stack)
268
- throw err
269
- }
270
- }
271
-
272
- succeed (execPath, version) {
273
- this.log.info(`using Python version ${version} found at "${execPath}"`)
274
- return execPath
275
- }
276
-
277
- fail () {
278
- const errorLog = this.errorLog.join('\n')
279
-
280
- const pathExample = this.win
281
- ? 'C:\\Path\\To\\python.exe'
282
- : '/path/to/pythonexecutable'
283
- // For Windows 80 col console, use up to the column before the one marked
284
- // with X (total 79 chars including logger prefix, 58 chars usable here):
285
- // X
286
- const info = [
287
- '**********************************************************',
288
- 'You need to install the latest version of Python.',
289
- 'Node-gyp should be able to find and use Python. If not,',
290
- 'you can try one of the following options:',
291
- `- Use the switch --python="${pathExample}"`,
292
- ' (accepted by both node-gyp and npm)',
293
- '- Set the environment variable PYTHON',
294
- 'For more information consult the documentation at:',
295
- 'https://github.com/nodejs/node-gyp#installation',
296
- '**********************************************************'
297
- ].join('\n')
298
-
299
- this.log.error(`\n${errorLog}\n\n${info}\n`)
300
- throw new Error('Could not find any Python installation to use')
301
- }
302
- }
303
-
304
- module.exports = PythonFinder