@pnpm/exe 12.6.0 → 12.8.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.
@@ -7,6 +7,24 @@
7
7
  # path instead. A dependency's bin cannot stand in for one of them and take over
8
8
  # the shim before it reaches its target. Directories come from `${link%/*}`,
9
9
  # which needs no helper at all.
10
+ #
11
+ # Where no default path is compiled in, as on Nix, `command -p` searches PATH
12
+ # instead, so the helpers run with node_modules and relative entries dropped from
13
+ # PATH.
14
+ caller_path_set=${PATH+set}
15
+ caller_path=${PATH-}
16
+ helper_path=
17
+ rest=$caller_path:
18
+ while [ -n "$rest" ]; do
19
+ dir=${rest%%:*}
20
+ rest=${rest#*:}
21
+ case "$dir" in
22
+ */node_modules/*|*/node_modules) ;;
23
+ /*) helper_path=${helper_path:+$helper_path:}$dir ;;
24
+ esac
25
+ done
26
+ # An empty PATH searches the current directory.
27
+ PATH=${helper_path:-/}
10
28
  link="$0"
11
29
  # `${link%/*}` needs a separator to strip. A bare name came from a PATH lookup
12
30
  # and stands for a file in the current directory.
@@ -31,14 +49,19 @@ msys=""
31
49
 
32
50
  case `command -p uname -a` in
33
51
  *CYGWIN*|*MINGW*|*MSYS*)
34
- if command -v cygpath > /dev/null 2>&1; then
52
+ if converted=$(command -p cygpath -w "$basedir" 2>/dev/null) && [ -n "$converted" ]; then
53
+ basedir_win="$converted"
54
+ elif command -v cygpath > /dev/null 2>&1; then
35
55
  basedir_win=`cygpath -w "$basedir"`
36
56
  fi
37
57
  exe=".exe"
38
58
  msys="true"
39
59
  ;;
40
60
  *WSL2*)
41
- if command -v wslpath > /dev/null 2>&1; then
61
+ if converted=$(command -p wslpath -w "$basedir" 2>/dev/null) && [ -n "$converted" ]; then
62
+ basedir_win="$converted"
63
+ exe=".exe"
64
+ elif command -v wslpath > /dev/null 2>&1; then
42
65
  basedir_win="$(wslpath -w "$basedir" 2> /dev/null)"
43
66
  if [ $? -ne 0 ] || [ -z "$basedir_win" ]; then
44
67
  basedir_win="$basedir"
@@ -48,16 +71,18 @@ case `command -p uname -a` in
48
71
  fi
49
72
  ;;
50
73
  esac
74
+ if [ -n "$caller_path_set" ]; then PATH=$caller_path; else unset PATH; fi
51
75
 
76
+ basedir_abs=$(CDPATH= cd -P -- "$basedir" && pwd -P) || exit $?
52
77
  if [ -n "$exe" ] && [ -x "$basedir/node.exe" ]; then
53
78
  exec "$basedir/node.exe" "$basedir_win/../get-pnpm/bin/get-pnpm.js" "$@"
54
79
  elif [ -x "$basedir/node" ]; then
55
- exec "$basedir/node" "$basedir/../get-pnpm/bin/get-pnpm.js" "$@"
80
+ exec "$basedir/node" "$basedir_abs/../get-pnpm/bin/get-pnpm.js" "$@"
56
81
  elif command -v node >/dev/null 2>&1; then
57
- exec node "$basedir/../get-pnpm/bin/get-pnpm.js" "$@"
82
+ exec node "$basedir_abs/../get-pnpm/bin/get-pnpm.js" "$@"
58
83
  elif [ -n "$exe" ] && command -v node.exe >/dev/null 2>&1; then
59
84
  exec node.exe "$basedir_win/../get-pnpm/bin/get-pnpm.js" "$@"
60
85
  else
61
- exec node "$basedir/../get-pnpm/bin/get-pnpm.js" "$@"
86
+ exec node "$basedir_abs/../get-pnpm/bin/get-pnpm.js" "$@"
62
87
  fi
63
- # cmd-shim-target=/home/runner/_work/pnpm/pnpm/pnpm/npm/pnpm/temp-deploy/node_modules/get-pnpm/bin/get-pnpm.js
88
+ # cmd-shim-target=../get-pnpm/bin/get-pnpm.js
@@ -7,6 +7,24 @@
7
7
  # path instead. A dependency's bin cannot stand in for one of them and take over
8
8
  # the shim before it reaches its target. Directories come from `${link%/*}`,
9
9
  # which needs no helper at all.
10
+ #
11
+ # Where no default path is compiled in, as on Nix, `command -p` searches PATH
12
+ # instead, so the helpers run with node_modules and relative entries dropped from
13
+ # PATH.
14
+ caller_path_set=${PATH+set}
15
+ caller_path=${PATH-}
16
+ helper_path=
17
+ rest=$caller_path:
18
+ while [ -n "$rest" ]; do
19
+ dir=${rest%%:*}
20
+ rest=${rest#*:}
21
+ case "$dir" in
22
+ */node_modules/*|*/node_modules) ;;
23
+ /*) helper_path=${helper_path:+$helper_path:}$dir ;;
24
+ esac
25
+ done
26
+ # An empty PATH searches the current directory.
27
+ PATH=${helper_path:-/}
10
28
  link="$0"
11
29
  # `${link%/*}` needs a separator to strip. A bare name came from a PATH lookup
12
30
  # and stands for a file in the current directory.
@@ -31,14 +49,19 @@ msys=""
31
49
 
32
50
  case `command -p uname -a` in
33
51
  *CYGWIN*|*MINGW*|*MSYS*)
34
- if command -v cygpath > /dev/null 2>&1; then
52
+ if converted=$(command -p cygpath -w "$basedir" 2>/dev/null) && [ -n "$converted" ]; then
53
+ basedir_win="$converted"
54
+ elif command -v cygpath > /dev/null 2>&1; then
35
55
  basedir_win=`cygpath -w "$basedir"`
36
56
  fi
37
57
  exe=".exe"
38
58
  msys="true"
39
59
  ;;
40
60
  *WSL2*)
41
- if command -v wslpath > /dev/null 2>&1; then
61
+ if converted=$(command -p wslpath -w "$basedir" 2>/dev/null) && [ -n "$converted" ]; then
62
+ basedir_win="$converted"
63
+ exe=".exe"
64
+ elif command -v wslpath > /dev/null 2>&1; then
42
65
  basedir_win="$(wslpath -w "$basedir" 2> /dev/null)"
43
66
  if [ $? -ne 0 ] || [ -z "$basedir_win" ]; then
44
67
  basedir_win="$basedir"
@@ -48,16 +71,18 @@ case `command -p uname -a` in
48
71
  fi
49
72
  ;;
50
73
  esac
74
+ if [ -n "$caller_path_set" ]; then PATH=$caller_path; else unset PATH; fi
51
75
 
76
+ basedir_abs=$(CDPATH= cd -P -- "$basedir" && pwd -P) || exit $?
52
77
  if [ -n "$exe" ] && [ -x "$basedir/node.exe" ]; then
53
78
  exec "$basedir/node.exe" "$basedir_win/../node-gyp/bin/node-gyp.js" "$@"
54
79
  elif [ -x "$basedir/node" ]; then
55
- exec "$basedir/node" "$basedir/../node-gyp/bin/node-gyp.js" "$@"
80
+ exec "$basedir/node" "$basedir_abs/../node-gyp/bin/node-gyp.js" "$@"
56
81
  elif command -v node >/dev/null 2>&1; then
57
- exec node "$basedir/../node-gyp/bin/node-gyp.js" "$@"
82
+ exec node "$basedir_abs/../node-gyp/bin/node-gyp.js" "$@"
58
83
  elif [ -n "$exe" ] && command -v node.exe >/dev/null 2>&1; then
59
84
  exec node.exe "$basedir_win/../node-gyp/bin/node-gyp.js" "$@"
60
85
  else
61
- exec node "$basedir/../node-gyp/bin/node-gyp.js" "$@"
86
+ exec node "$basedir_abs/../node-gyp/bin/node-gyp.js" "$@"
62
87
  fi
63
- # cmd-shim-target=/home/runner/_work/pnpm/pnpm/pnpm/npm/pnpm/temp-deploy/node_modules/node-gyp/./bin/node-gyp.js
88
+ # cmd-shim-target=../node-gyp/bin/node-gyp.js
@@ -7,6 +7,24 @@
7
7
  # path instead. A dependency's bin cannot stand in for one of them and take over
8
8
  # the shim before it reaches its target. Directories come from `${link%/*}`,
9
9
  # which needs no helper at all.
10
+ #
11
+ # Where no default path is compiled in, as on Nix, `command -p` searches PATH
12
+ # instead, so the helpers run with node_modules and relative entries dropped from
13
+ # PATH.
14
+ caller_path_set=${PATH+set}
15
+ caller_path=${PATH-}
16
+ helper_path=
17
+ rest=$caller_path:
18
+ while [ -n "$rest" ]; do
19
+ dir=${rest%%:*}
20
+ rest=${rest#*:}
21
+ case "$dir" in
22
+ */node_modules/*|*/node_modules) ;;
23
+ /*) helper_path=${helper_path:+$helper_path:}$dir ;;
24
+ esac
25
+ done
26
+ # An empty PATH searches the current directory.
27
+ PATH=${helper_path:-/}
10
28
  link="$0"
11
29
  # `${link%/*}` needs a separator to strip. A bare name came from a PATH lookup
12
30
  # and stands for a file in the current directory.
@@ -31,14 +49,19 @@ msys=""
31
49
 
32
50
  case `command -p uname -a` in
33
51
  *CYGWIN*|*MINGW*|*MSYS*)
34
- if command -v cygpath > /dev/null 2>&1; then
52
+ if converted=$(command -p cygpath -w "$basedir" 2>/dev/null) && [ -n "$converted" ]; then
53
+ basedir_win="$converted"
54
+ elif command -v cygpath > /dev/null 2>&1; then
35
55
  basedir_win=`cygpath -w "$basedir"`
36
56
  fi
37
57
  exe=".exe"
38
58
  msys="true"
39
59
  ;;
40
60
  *WSL2*)
41
- if command -v wslpath > /dev/null 2>&1; then
61
+ if converted=$(command -p wslpath -w "$basedir" 2>/dev/null) && [ -n "$converted" ]; then
62
+ basedir_win="$converted"
63
+ exe=".exe"
64
+ elif command -v wslpath > /dev/null 2>&1; then
42
65
  basedir_win="$(wslpath -w "$basedir" 2> /dev/null)"
43
66
  if [ $? -ne 0 ] || [ -z "$basedir_win" ]; then
44
67
  basedir_win="$basedir"
@@ -48,16 +71,18 @@ case `command -p uname -a` in
48
71
  fi
49
72
  ;;
50
73
  esac
74
+ if [ -n "$caller_path_set" ]; then PATH=$caller_path; else unset PATH; fi
51
75
 
76
+ basedir_abs=$(CDPATH= cd -P -- "$basedir" && pwd -P) || exit $?
52
77
  if [ -n "$exe" ] && [ -x "$basedir/node.exe" ]; then
53
78
  exec "$basedir/node.exe" "$basedir_win/../which/bin/which.js" "$@"
54
79
  elif [ -x "$basedir/node" ]; then
55
- exec "$basedir/node" "$basedir/../which/bin/which.js" "$@"
80
+ exec "$basedir/node" "$basedir_abs/../which/bin/which.js" "$@"
56
81
  elif command -v node >/dev/null 2>&1; then
57
- exec node "$basedir/../which/bin/which.js" "$@"
82
+ exec node "$basedir_abs/../which/bin/which.js" "$@"
58
83
  elif [ -n "$exe" ] && command -v node.exe >/dev/null 2>&1; then
59
84
  exec node.exe "$basedir_win/../which/bin/which.js" "$@"
60
85
  else
61
- exec node "$basedir/../which/bin/which.js" "$@"
86
+ exec node "$basedir_abs/../which/bin/which.js" "$@"
62
87
  fi
63
- # cmd-shim-target=/home/runner/_work/pnpm/pnpm/pnpm/npm/pnpm/temp-deploy/node_modules/which/./bin/which.js
88
+ # cmd-shim-target=../which/bin/which.js
@@ -7,6 +7,24 @@
7
7
  # path instead. A dependency's bin cannot stand in for one of them and take over
8
8
  # the shim before it reaches its target. Directories come from `${link%/*}`,
9
9
  # which needs no helper at all.
10
+ #
11
+ # Where no default path is compiled in, as on Nix, `command -p` searches PATH
12
+ # instead, so the helpers run with node_modules and relative entries dropped from
13
+ # PATH.
14
+ caller_path_set=${PATH+set}
15
+ caller_path=${PATH-}
16
+ helper_path=
17
+ rest=$caller_path:
18
+ while [ -n "$rest" ]; do
19
+ dir=${rest%%:*}
20
+ rest=${rest#*:}
21
+ case "$dir" in
22
+ */node_modules/*|*/node_modules) ;;
23
+ /*) helper_path=${helper_path:+$helper_path:}$dir ;;
24
+ esac
25
+ done
26
+ # An empty PATH searches the current directory.
27
+ PATH=${helper_path:-/}
10
28
  link="$0"
11
29
  # `${link%/*}` needs a separator to strip. A bare name came from a PATH lookup
12
30
  # and stands for a file in the current directory.
@@ -31,14 +49,19 @@ msys=""
31
49
 
32
50
  case `command -p uname -a` in
33
51
  *CYGWIN*|*MINGW*|*MSYS*)
34
- if command -v cygpath > /dev/null 2>&1; then
52
+ if converted=$(command -p cygpath -w "$basedir" 2>/dev/null) && [ -n "$converted" ]; then
53
+ basedir_win="$converted"
54
+ elif command -v cygpath > /dev/null 2>&1; then
35
55
  basedir_win=`cygpath -w "$basedir"`
36
56
  fi
37
57
  exe=".exe"
38
58
  msys="true"
39
59
  ;;
40
60
  *WSL2*)
41
- if command -v wslpath > /dev/null 2>&1; then
61
+ if converted=$(command -p wslpath -w "$basedir" 2>/dev/null) && [ -n "$converted" ]; then
62
+ basedir_win="$converted"
63
+ exe=".exe"
64
+ elif command -v wslpath > /dev/null 2>&1; then
42
65
  basedir_win="$(wslpath -w "$basedir" 2> /dev/null)"
43
66
  if [ $? -ne 0 ] || [ -z "$basedir_win" ]; then
44
67
  basedir_win="$basedir"
@@ -48,16 +71,18 @@ case `command -p uname -a` in
48
71
  fi
49
72
  ;;
50
73
  esac
74
+ if [ -n "$caller_path_set" ]; then PATH=$caller_path; else unset PATH; fi
51
75
 
76
+ basedir_abs=$(CDPATH= cd -P -- "$basedir" && pwd -P) || exit $?
52
77
  if [ -n "$exe" ] && [ -x "$basedir/node.exe" ]; then
53
78
  exec "$basedir/node.exe" "$basedir_win/../nopt/bin/nopt.js" "$@"
54
79
  elif [ -x "$basedir/node" ]; then
55
- exec "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@"
80
+ exec "$basedir/node" "$basedir_abs/../nopt/bin/nopt.js" "$@"
56
81
  elif command -v node >/dev/null 2>&1; then
57
- exec node "$basedir/../nopt/bin/nopt.js" "$@"
82
+ exec node "$basedir_abs/../nopt/bin/nopt.js" "$@"
58
83
  elif [ -n "$exe" ] && command -v node.exe >/dev/null 2>&1; then
59
84
  exec node.exe "$basedir_win/../nopt/bin/nopt.js" "$@"
60
85
  else
61
- exec node "$basedir/../nopt/bin/nopt.js" "$@"
86
+ exec node "$basedir_abs/../nopt/bin/nopt.js" "$@"
62
87
  fi
63
- # cmd-shim-target=/home/runner/_work/pnpm/pnpm/pnpm/npm/pnpm/temp-deploy/node_modules/nopt/bin/nopt.js
88
+ # cmd-shim-target=../nopt/bin/nopt.js
@@ -7,6 +7,24 @@
7
7
  # path instead. A dependency's bin cannot stand in for one of them and take over
8
8
  # the shim before it reaches its target. Directories come from `${link%/*}`,
9
9
  # which needs no helper at all.
10
+ #
11
+ # Where no default path is compiled in, as on Nix, `command -p` searches PATH
12
+ # instead, so the helpers run with node_modules and relative entries dropped from
13
+ # PATH.
14
+ caller_path_set=${PATH+set}
15
+ caller_path=${PATH-}
16
+ helper_path=
17
+ rest=$caller_path:
18
+ while [ -n "$rest" ]; do
19
+ dir=${rest%%:*}
20
+ rest=${rest#*:}
21
+ case "$dir" in
22
+ */node_modules/*|*/node_modules) ;;
23
+ /*) helper_path=${helper_path:+$helper_path:}$dir ;;
24
+ esac
25
+ done
26
+ # An empty PATH searches the current directory.
27
+ PATH=${helper_path:-/}
10
28
  link="$0"
11
29
  # `${link%/*}` needs a separator to strip. A bare name came from a PATH lookup
12
30
  # and stands for a file in the current directory.
@@ -31,14 +49,19 @@ msys=""
31
49
 
32
50
  case `command -p uname -a` in
33
51
  *CYGWIN*|*MINGW*|*MSYS*)
34
- if command -v cygpath > /dev/null 2>&1; then
52
+ if converted=$(command -p cygpath -w "$basedir" 2>/dev/null) && [ -n "$converted" ]; then
53
+ basedir_win="$converted"
54
+ elif command -v cygpath > /dev/null 2>&1; then
35
55
  basedir_win=`cygpath -w "$basedir"`
36
56
  fi
37
57
  exe=".exe"
38
58
  msys="true"
39
59
  ;;
40
60
  *WSL2*)
41
- if command -v wslpath > /dev/null 2>&1; then
61
+ if converted=$(command -p wslpath -w "$basedir" 2>/dev/null) && [ -n "$converted" ]; then
62
+ basedir_win="$converted"
63
+ exe=".exe"
64
+ elif command -v wslpath > /dev/null 2>&1; then
42
65
  basedir_win="$(wslpath -w "$basedir" 2> /dev/null)"
43
66
  if [ $? -ne 0 ] || [ -z "$basedir_win" ]; then
44
67
  basedir_win="$basedir"
@@ -48,16 +71,18 @@ case `command -p uname -a` in
48
71
  fi
49
72
  ;;
50
73
  esac
74
+ if [ -n "$caller_path_set" ]; then PATH=$caller_path; else unset PATH; fi
51
75
 
76
+ basedir_abs=$(CDPATH= cd -P -- "$basedir" && pwd -P) || exit $?
52
77
  if [ -n "$exe" ] && [ -x "$basedir/node.exe" ]; then
53
78
  exec "$basedir/node.exe" "$basedir_win/../semver/bin/semver.js" "$@"
54
79
  elif [ -x "$basedir/node" ]; then
55
- exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@"
80
+ exec "$basedir/node" "$basedir_abs/../semver/bin/semver.js" "$@"
56
81
  elif command -v node >/dev/null 2>&1; then
57
- exec node "$basedir/../semver/bin/semver.js" "$@"
82
+ exec node "$basedir_abs/../semver/bin/semver.js" "$@"
58
83
  elif [ -n "$exe" ] && command -v node.exe >/dev/null 2>&1; then
59
84
  exec node.exe "$basedir_win/../semver/bin/semver.js" "$@"
60
85
  else
61
- exec node "$basedir/../semver/bin/semver.js" "$@"
86
+ exec node "$basedir_abs/../semver/bin/semver.js" "$@"
62
87
  fi
63
- # cmd-shim-target=/home/runner/_work/pnpm/pnpm/pnpm/npm/pnpm/temp-deploy/node_modules/semver/bin/semver.js
88
+ # cmd-shim-target=../semver/bin/semver.js
@@ -1,9 +1,9 @@
1
1
  {
2
- "lastValidatedTimestamp": 1790093961133,
2
+ "lastValidatedTimestamp": 1790578965103,
3
3
  "projects": {
4
4
  "/home/runner/_work/pnpm/pnpm/pnpm/npm/pnpm/temp-deploy": {
5
5
  "name": "pacquet",
6
- "version": "12.6.0"
6
+ "version": "12.8.0"
7
7
  }
8
8
  },
9
9
  "pnpmfiles": [],
@@ -34,20 +34,17 @@
34
34
  "@openpgp/web-stream-tools": "0.3.1",
35
35
  "@pnpm/byline": "^1.0.0",
36
36
  "@pnpm/colorize-semver-diff": "^2.0.0",
37
- "@pnpm/config.env-replace": "^4.1.0",
38
37
  "@pnpm/exec": "^4.0.0",
39
- "@pnpm/log.group": "4.0.1",
40
38
  "@pnpm/logger": "^1100.0.0",
41
39
  "@pnpm/meta-updater": "2.0.6",
42
40
  "@pnpm/nopt": "^0.3.1",
43
41
  "@pnpm/npm-package-arg": "^2.0.0",
44
- "@pnpm/os.env.path-extender": "^3.0.1",
45
42
  "@pnpm/patch-package": "0.0.1",
46
43
  "@pnpm/semver-diff": "^2.0.0",
47
44
  "@pnpm/tabtab": "^0.5.4",
48
45
  "@pnpm/tgz-fixtures": "0.0.0",
49
46
  "@reflink/reflink": "0.1.19",
50
- "@rushstack/worker-pool": "0.7.27",
47
+ "@rushstack/worker-pool": "0.7.28",
51
48
  "@stylistic/eslint-plugin": "^5.10.0",
52
49
  "@types/adm-zip": "^0.5.8",
53
50
  "@types/archy": "0.0.36",
@@ -86,8 +83,9 @@
86
83
  "@types/which": "^3.0.4",
87
84
  "@types/write-file-atomic": "^4.0.3",
88
85
  "@types/yarnpkg__lockfile": "^1.1.9",
86
+ "@types/yauzl": "^3.4.0",
89
87
  "@types/zkochan__table": "npm:@types/table@6.3.2",
90
- "@typescript-eslint/utils": "^8.70.0",
88
+ "@typescript-eslint/utils": "^8.70.1",
91
89
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
92
90
  "@yarnpkg/core": "4.9.1",
93
91
  "@yarnpkg/extensions": "2.0.7",
@@ -100,13 +98,15 @@
100
98
  "@zkochan/rimraf": "^4.0.0",
101
99
  "@zkochan/table": "^2.0.1",
102
100
  "adm-zip": "^0.6.1",
103
- "amaro": "^1.2.0",
101
+ "agentkeepalive": "^4.6.0",
102
+ "amaro": "^1.2.1",
104
103
  "ansi-diff": "^1.2.0",
105
104
  "archy": "^1.0.0",
106
105
  "better-path-resolve": "2.0.0",
107
106
  "bin-links": "^6.0.2",
108
107
  "bole": "^5.0.29",
109
108
  "boxen": "npm:@zkochan/boxen@5.1.2",
109
+ "bz2": "1.0.1",
110
110
  "c8": "^12.0.0",
111
111
  "camelcase": "^9.0.0",
112
112
  "camelcase-keys": "^10.0.3",
@@ -141,7 +141,7 @@
141
141
  "exists-link": "2.0.0",
142
142
  "fast-deep-equal": "^3.1.3",
143
143
  "fast-glob": "^3.3.3",
144
- "fs-extra": "^11.4.0",
144
+ "fs-extra": "^11.4.1",
145
145
  "fuse-native": "^2.2.6",
146
146
  "get-pnpm": "^0.0.5",
147
147
  "get-port": "^7.2.0",
@@ -149,6 +149,8 @@
149
149
  "graceful-fs": "^4.2.11",
150
150
  "graph-cycles": "3.0.0",
151
151
  "hosted-git-info": "npm:@pnpm/hosted-git-info@1.0.0",
152
+ "http-proxy-agent": "^7.0.2",
153
+ "https-proxy-agent": "^7.0.6",
152
154
  "https-proxy-server-express": "0.1.2",
153
155
  "human-id": "^4.2.1",
154
156
  "husky": "^9.1.7",
@@ -173,7 +175,7 @@
173
175
  "lru-cache": "^11.5.3",
174
176
  "make-empty-dir": "^4.0.0",
175
177
  "mdast-util-to-string": "^4.0.0",
176
- "memfs": "^4.78.1",
178
+ "memfs": "^4.79.0",
177
179
  "memoize": "^11.0.0",
178
180
  "micromatch": "^4.0.8",
179
181
  "msgpackr": "2.1.0",
@@ -200,10 +202,11 @@
200
202
  "path-name": "^1.0.0",
201
203
  "path-temp": "^3.0.0",
202
204
  "pidtree": "^1.0.0",
203
- "preferred-pm": "^5.0.0",
205
+ "preferred-pm": "^5.0.1",
204
206
  "pretty-bytes": "^7.1.3",
205
207
  "pretty-ms": "^9.3.1",
206
208
  "promise-share": "^2.0.1",
209
+ "proxy": "^4.1.0",
207
210
  "proxyquire": "^2.1.3",
208
211
  "ps-list": "^9.0.0",
209
212
  "qrcode-terminal": "^0.12.0",
@@ -228,7 +231,9 @@
228
231
  "semver-utils": "^1.1.4",
229
232
  "shlex": "^3.0.0",
230
233
  "shx": "^0.4.0",
234
+ "signal-exit": "^4.1.0",
231
235
  "socks": "^2.8.10",
236
+ "socks-proxy-agent": "^8.0.5",
232
237
  "sort-keys": "^6.0.1",
233
238
  "spdx-expression-parse": "5.0.0",
234
239
  "split-cmd": "^1.1.0",
@@ -249,7 +254,7 @@
249
254
  "tree-kill": "^1.2.2",
250
255
  "ts-jest-resolver": "2.0.1",
251
256
  "typescript": "6.0.3",
252
- "typescript-eslint": "^8.70.0",
257
+ "typescript-eslint": "^8.70.1",
253
258
  "uid-number": "0.0.6",
254
259
  "undici": "^7.29.0",
255
260
  "unified": "^11.0.5",
@@ -264,7 +269,8 @@
264
269
  "write-package": "7.2.0",
265
270
  "write-yaml-file": "^6.0.0",
266
271
  "yaml": "^2.9.1",
267
- "yaml-tag": "1.1.0"
272
+ "yaml-tag": "1.1.0",
273
+ "yauzl": "^3.4.0"
268
274
  }
269
275
  },
270
276
  "dedupeDirectDeps": false,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/install.js CHANGED
@@ -5,7 +5,10 @@
5
5
  // stay shebang-less because pnpm 11 records its interpreter before installing
6
6
  // the native binary at the same path. npm's global Windows shims still target
7
7
  // the extensionless path after the `bin` rewrite, so postinstall asks npm to
8
- // regenerate them against `pnpm.exe`. When lifecycle scripts are blocked
8
+ // regenerate them against `pnpm.exe`. A global install uses `npm rebuild
9
+ // --global`. A project install passes the project prefix, because the
10
+ // script's working directory is the installed package. Any other install,
11
+ // such as `npm exec`, keeps its shims. When lifecycle scripts are blocked
9
12
  // (`--ignore-scripts`, pnpm/Bun default), the placeholder remains and runs pnpm
10
13
  // through Node.js wherever a shell reaches it (see the `pnpm` file).
11
14
  //
@@ -125,7 +128,6 @@ function relinkNpmWindowsShims () {
125
128
  const npmExecPath = process.env.npm_execpath
126
129
  if (
127
130
  process.platform !== 'win32' ||
128
- process.env.npm_config_global !== 'true' ||
129
131
  npmExecPath == null ||
130
132
  path.basename(npmExecPath).toLowerCase() !== 'npm-cli.js'
131
133
  ) {
@@ -136,13 +138,21 @@ function relinkNpmWindowsShims () {
136
138
  if (typeof packageName !== 'string') {
137
139
  fail('Could not determine the pnpm wrapper package name when regenerating npm shims.')
138
140
  }
139
- const result = spawnSync(process.execPath, [
141
+ const args = [
140
142
  npmExecPath,
141
143
  'rebuild',
142
- '--global',
143
144
  '--ignore-scripts',
144
- packageName,
145
- ], { stdio: 'inherit' })
145
+ ]
146
+ if (process.env.npm_config_global === 'true' || process.env.npm_config_location === 'global') {
147
+ args.push('--global', packageName)
148
+ } else {
149
+ const prefix = findNpmProjectPrefix()
150
+ if (prefix == null) {
151
+ return
152
+ }
153
+ args.push('--prefix', prefix, packageName)
154
+ }
155
+ const result = spawnSync(process.execPath, args, { stdio: 'inherit' })
146
156
  if (result.error != null) {
147
157
  fail(`Could not regenerate the npm shims for pnpm: ${result.error.message}`)
148
158
  }
@@ -151,6 +161,36 @@ function relinkNpmWindowsShims () {
151
161
  }
152
162
  }
153
163
 
164
+ /**
165
+ * The resolved path of the npm project whose `node_modules` holds this
166
+ * wrapper. Returns `null` when npm names no project, when its `node_modules`
167
+ * cannot be resolved, or when it does not contain the wrapper. `npm exec`
168
+ * installs into its own cache while the prefix still names the caller's
169
+ * project, and rebuilding there would touch an unrelated project.
170
+ *
171
+ * @returns {string | null}
172
+ */
173
+ function findNpmProjectPrefix () {
174
+ const prefix = process.env.npm_config_local_prefix
175
+ if (typeof prefix !== 'string' || prefix === '') {
176
+ return null
177
+ }
178
+ let realPrefix
179
+ let realModulesDir
180
+ try {
181
+ realPrefix = fs.realpathSync(prefix)
182
+ realModulesDir = fs.realpathSync(path.join(realPrefix, 'node_modules'))
183
+ } catch {
184
+ return null
185
+ }
186
+ // `wrapperDir` comes from the module URL, which Node resolves through symlinks.
187
+ const relative = path.relative(realModulesDir, wrapperDir)
188
+ if (relative === '' || relative.split(path.sep)[0] === '..' || path.isAbsolute(relative)) {
189
+ return null
190
+ }
191
+ return realPrefix
192
+ }
193
+
154
194
  function removeFileIfPossible (filePath) {
155
195
  try {
156
196
  fs.rmSync(filePath, { force: true })
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "./dist/node_modules/node-gyp/gyp/gyp"
10
10
  ]
11
11
  },
12
- "version": "12.6.0",
12
+ "version": "12.8.0",
13
13
  "description": "Fast, disk space efficient package manager",
14
14
  "keywords": [
15
15
  "pnpm",
@@ -46,20 +46,20 @@
46
46
  "THIRD-PARTY-NOTICES.md"
47
47
  ],
48
48
  "optionalDependencies": {
49
- "@pnpm/exe.win32-x64": "12.6.0",
50
- "@pnpm/exe.win32-arm64": "12.6.0",
51
- "@pnpm/exe.darwin-x64": "12.6.0",
52
- "@pnpm/exe.darwin-arm64": "12.6.0",
53
- "@pnpm/exe.linux-x64": "12.6.0",
54
- "@pnpm/exe.linux-arm64": "12.6.0",
55
- "@pnpm/exe.linux-riscv64": "12.6.0",
56
- "@pnpm/exe.linux-ppc64": "12.6.0",
57
- "@pnpm/exe.linux-s390x": "12.6.0",
58
- "@pnpm/exe.linux-x64-musl": "12.6.0",
59
- "@pnpm/exe.linux-arm64-musl": "12.6.0",
60
- "@pnpm/exe.freebsd-x64": "12.6.0",
61
- "@pnpm/exe.android-arm64": "12.6.0",
62
- "@pnpm/exe.android-x64": "12.6.0"
49
+ "@pnpm/exe.win32-x64": "12.8.0",
50
+ "@pnpm/exe.win32-arm64": "12.8.0",
51
+ "@pnpm/exe.darwin-x64": "12.8.0",
52
+ "@pnpm/exe.darwin-arm64": "12.8.0",
53
+ "@pnpm/exe.linux-x64": "12.8.0",
54
+ "@pnpm/exe.linux-arm64": "12.8.0",
55
+ "@pnpm/exe.linux-riscv64": "12.8.0",
56
+ "@pnpm/exe.linux-ppc64": "12.8.0",
57
+ "@pnpm/exe.linux-s390x": "12.8.0",
58
+ "@pnpm/exe.linux-x64-musl": "12.8.0",
59
+ "@pnpm/exe.linux-arm64-musl": "12.8.0",
60
+ "@pnpm/exe.freebsd-x64": "12.8.0",
61
+ "@pnpm/exe.android-arm64": "12.8.0",
62
+ "@pnpm/exe.android-x64": "12.8.0"
63
63
  },
64
64
  "scripts": {
65
65
  "preinstall": "node install.js",
package/pn CHANGED
@@ -8,6 +8,24 @@
8
8
  # itself first. The hop cap matches the kernel's ELOOP limit, so a cycle cannot
9
9
  # hang the script. Directories come from `${self%/*}` and `readlink` runs through
10
10
  # `command -p`, so the caller's `PATH` decides nothing here.
11
+ #
12
+ # Where no default path is compiled in, as on Nix, `command -p` searches PATH
13
+ # instead, so the helpers run with node_modules and relative entries dropped from
14
+ # PATH.
15
+ caller_path_set=${PATH+set}
16
+ caller_path=${PATH-}
17
+ helper_path=
18
+ rest=$caller_path:
19
+ while [ -n "$rest" ]; do
20
+ dir=${rest%%:*}
21
+ rest=${rest#*:}
22
+ case "$dir" in
23
+ */node_modules/*|*/node_modules) ;;
24
+ /*) helper_path=${helper_path:+$helper_path:}$dir ;;
25
+ esac
26
+ done
27
+ # An empty PATH searches the current directory.
28
+ PATH=${helper_path:-/}
11
29
  self=$0
12
30
  # MSYS and Cygwin can launch this with a native Windows path, which has no slash
13
31
  # for `${self%/*}` to strip. Only a drive letter or a UNC prefix marks one; a
@@ -39,6 +57,7 @@ while [ -L "$self" ] && [ "$hops" -lt 40 ]; do
39
57
  *) self=${self%/*}/$link ;;
40
58
  esac
41
59
  done
60
+ if [ -n "$caller_path_set" ]; then PATH=$caller_path; else unset PATH; fi
42
61
  # The walk has to end at a regular file. Running out of hops leaves $self a
43
62
  # symlink; a chain that changed under us can leave it dangling or a directory, and
44
63
  # a failed readlink leaves a trailing slash. Each case would take `pnpm` from the
package/pnpm CHANGED
@@ -28,6 +28,24 @@ fi
28
28
  # `readlink` runs through `command -p`, which searches the system default path,
29
29
  # and directories come from `${self%/*}`, which runs nothing at all. The caller's
30
30
  # PATH therefore decides only which `node` runs, which is what it is for.
31
+ #
32
+ # Where no default path is compiled in, as on Nix, `command -p` searches PATH
33
+ # instead, so the helpers run with node_modules and relative entries dropped from
34
+ # PATH.
35
+ caller_path_set=${PATH+set}
36
+ caller_path=${PATH-}
37
+ helper_path=
38
+ rest=$caller_path:
39
+ while [ -n "$rest" ]; do
40
+ dir=${rest%%:*}
41
+ rest=${rest#*:}
42
+ case "$dir" in
43
+ */node_modules/*|*/node_modules) ;;
44
+ /*) helper_path=${helper_path:+$helper_path:}$dir ;;
45
+ esac
46
+ done
47
+ # An empty PATH searches the current directory.
48
+ PATH=${helper_path:-/}
31
49
  self=$0
32
50
  # MSYS and Cygwin can launch this with a native Windows path, which has no slash
33
51
  # for `${self%/*}` to strip. Only a drive letter or a UNC prefix marks one; a
@@ -59,5 +77,14 @@ while [ -L "$self" ] && [ "$hops" -lt 40 ]; do
59
77
  *) self=${self%/*}/$link ;;
60
78
  esac
61
79
  done
80
+ if [ -n "$caller_path_set" ]; then PATH=$caller_path; else unset PATH; fi
81
+ # The walk has to end at a regular file. Running out of hops leaves $self a
82
+ # symlink; a chain that changed under us can leave it dangling or a directory, and
83
+ # a failed readlink leaves a trailing slash. Each case would take `bin/pnpm.mjs`
84
+ # from the wrong directory.
85
+ if [ -L "$self" ] || [ ! -f "$self" ]; then
86
+ echo "pnpm: could not resolve $0 to a regular file within 40 symlink hops." >&2
87
+ exit 1
88
+ fi
62
89
 
63
90
  exec node "${self%/*}/bin/pnpm.mjs" "$@"
package/pnpx CHANGED
@@ -8,6 +8,24 @@
8
8
  # itself first. The hop cap matches the kernel's ELOOP limit, so a cycle cannot
9
9
  # hang the script. Directories come from `${self%/*}` and `readlink` runs through
10
10
  # `command -p`, so the caller's `PATH` decides nothing here.
11
+ #
12
+ # Where no default path is compiled in, as on Nix, `command -p` searches PATH
13
+ # instead, so the helpers run with node_modules and relative entries dropped from
14
+ # PATH.
15
+ caller_path_set=${PATH+set}
16
+ caller_path=${PATH-}
17
+ helper_path=
18
+ rest=$caller_path:
19
+ while [ -n "$rest" ]; do
20
+ dir=${rest%%:*}
21
+ rest=${rest#*:}
22
+ case "$dir" in
23
+ */node_modules/*|*/node_modules) ;;
24
+ /*) helper_path=${helper_path:+$helper_path:}$dir ;;
25
+ esac
26
+ done
27
+ # An empty PATH searches the current directory.
28
+ PATH=${helper_path:-/}
11
29
  self=$0
12
30
  # MSYS and Cygwin can launch this with a native Windows path, which has no slash
13
31
  # for `${self%/*}` to strip. Only a drive letter or a UNC prefix marks one; a
@@ -39,6 +57,7 @@ while [ -L "$self" ] && [ "$hops" -lt 40 ]; do
39
57
  *) self=${self%/*}/$link ;;
40
58
  esac
41
59
  done
60
+ if [ -n "$caller_path_set" ]; then PATH=$caller_path; else unset PATH; fi
42
61
  # The walk has to end at a regular file. Running out of hops leaves $self a
43
62
  # symlink; a chain that changed under us can leave it dangling or a directory, and
44
63
  # a failed readlink leaves a trailing slash. Each case would take `pnpm` from the
package/pnx CHANGED
@@ -8,6 +8,24 @@
8
8
  # itself first. The hop cap matches the kernel's ELOOP limit, so a cycle cannot
9
9
  # hang the script. Directories come from `${self%/*}` and `readlink` runs through
10
10
  # `command -p`, so the caller's `PATH` decides nothing here.
11
+ #
12
+ # Where no default path is compiled in, as on Nix, `command -p` searches PATH
13
+ # instead, so the helpers run with node_modules and relative entries dropped from
14
+ # PATH.
15
+ caller_path_set=${PATH+set}
16
+ caller_path=${PATH-}
17
+ helper_path=
18
+ rest=$caller_path:
19
+ while [ -n "$rest" ]; do
20
+ dir=${rest%%:*}
21
+ rest=${rest#*:}
22
+ case "$dir" in
23
+ */node_modules/*|*/node_modules) ;;
24
+ /*) helper_path=${helper_path:+$helper_path:}$dir ;;
25
+ esac
26
+ done
27
+ # An empty PATH searches the current directory.
28
+ PATH=${helper_path:-/}
11
29
  self=$0
12
30
  # MSYS and Cygwin can launch this with a native Windows path, which has no slash
13
31
  # for `${self%/*}` to strip. Only a drive letter or a UNC prefix marks one; a
@@ -39,6 +57,7 @@ while [ -L "$self" ] && [ "$hops" -lt 40 ]; do
39
57
  *) self=${self%/*}/$link ;;
40
58
  esac
41
59
  done
60
+ if [ -n "$caller_path_set" ]; then PATH=$caller_path; else unset PATH; fi
42
61
  # The walk has to end at a regular file. Running out of hops leaves $self a
43
62
  # symlink; a chain that changed under us can leave it dangling or a directory, and
44
63
  # a failed readlink leaves a trailing slash. Each case would take `pnpm` from the