pnpm 10.18.2 → 10.18.3

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 (48) hide show
  1. package/dist/node_modules/.modules.yaml +9 -9
  2. package/dist/node_modules/.pnpm/lock.yaml +4 -4
  3. package/dist/node_modules/.pnpm-workspace-state-v1.json +1 -1
  4. package/dist/node_modules/exponential-backoff/package.json +1 -1
  5. package/dist/node_modules/isexe/LICENSE +1 -1
  6. package/dist/node_modules/isexe/package.json +14 -79
  7. package/dist/node_modules/{cross-spawn/node_modules/which → node-gyp/node_modules/isexe}/LICENSE +1 -1
  8. package/dist/node_modules/node-gyp/node_modules/isexe/package.json +96 -0
  9. package/dist/node_modules/node-gyp/node_modules/which/package.json +52 -0
  10. package/dist/node_modules/which/package.json +20 -29
  11. package/dist/pnpm.cjs +172 -46
  12. package/package.json +1 -1
  13. package/dist/node_modules/cross-spawn/node_modules/isexe/package.json +0 -31
  14. package/dist/node_modules/cross-spawn/node_modules/which/package.json +0 -43
  15. /package/dist/node_modules/{cross-spawn/node_modules/isexe → isexe}/index.js +0 -0
  16. /package/dist/node_modules/{cross-spawn/node_modules/isexe → isexe}/mode.js +0 -0
  17. /package/dist/node_modules/{cross-spawn/node_modules/isexe → isexe}/windows.js +0 -0
  18. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/index.d.ts.map +0 -0
  19. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/index.js +0 -0
  20. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/index.js.map +0 -0
  21. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/options.d.ts.map +0 -0
  22. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/options.js +0 -0
  23. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/options.js.map +0 -0
  24. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/package.json +0 -0
  25. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/posix.d.ts.map +0 -0
  26. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/posix.js +0 -0
  27. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/posix.js.map +0 -0
  28. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/win32.d.ts.map +0 -0
  29. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/win32.js +0 -0
  30. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/cjs/win32.js.map +0 -0
  31. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/index.d.ts.map +0 -0
  32. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/index.js +0 -0
  33. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/index.js.map +0 -0
  34. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/options.d.ts.map +0 -0
  35. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/options.js +0 -0
  36. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/options.js.map +0 -0
  37. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/package.json +0 -0
  38. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/posix.d.ts.map +0 -0
  39. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/posix.js +0 -0
  40. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/posix.js.map +0 -0
  41. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/win32.d.ts.map +0 -0
  42. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/win32.js +0 -0
  43. /package/dist/node_modules/{isexe → node-gyp/node_modules/isexe}/dist/mjs/win32.js.map +0 -0
  44. /package/dist/node_modules/{cross-spawn/node_modules/isexe → node-gyp/node_modules/which}/LICENSE +0 -0
  45. /package/dist/node_modules/{which → node-gyp/node_modules/which}/bin/which.js +0 -0
  46. /package/dist/node_modules/{which → node-gyp/node_modules/which}/lib/index.js +0 -0
  47. /package/dist/node_modules/{cross-spawn/node_modules/which → which}/bin/node-which +0 -0
  48. /package/dist/node_modules/{cross-spawn/node_modules/which → which}/which.js +0 -0
@@ -16,9 +16,9 @@ hoistedLocations:
16
16
  agent-base@7.1.4:
17
17
  - node_modules/agent-base
18
18
  ansi-regex@5.0.1:
19
+ - node_modules/string-width-cjs/node_modules/ansi-regex
19
20
  - node_modules/strip-ansi-cjs/node_modules/ansi-regex
20
21
  - node_modules/wrap-ansi-cjs/node_modules/ansi-regex
21
- - node_modules/string-width-cjs/node_modules/ansi-regex
22
22
  ansi-regex@6.2.2:
23
23
  - node_modules/ansi-regex
24
24
  ansi-styles@4.3.0:
@@ -44,8 +44,8 @@ hoistedLocations:
44
44
  eastasianwidth@0.2.0:
45
45
  - node_modules/eastasianwidth
46
46
  emoji-regex@8.0.0:
47
- - node_modules/wrap-ansi-cjs/node_modules/emoji-regex
48
47
  - node_modules/string-width-cjs/node_modules/emoji-regex
48
+ - node_modules/wrap-ansi-cjs/node_modules/emoji-regex
49
49
  emoji-regex@9.2.2:
50
50
  - node_modules/emoji-regex
51
51
  encoding@0.1.13:
@@ -54,7 +54,7 @@ hoistedLocations:
54
54
  - node_modules/env-paths
55
55
  err-code@2.0.3:
56
56
  - node_modules/err-code
57
- exponential-backoff@3.1.2:
57
+ exponential-backoff@3.1.3:
58
58
  - node_modules/exponential-backoff
59
59
  foreground-child@3.3.1:
60
60
  - node_modules/foreground-child
@@ -79,9 +79,9 @@ hoistedLocations:
79
79
  is-fullwidth-code-point@3.0.0:
80
80
  - node_modules/is-fullwidth-code-point
81
81
  isexe@2.0.0:
82
- - node_modules/cross-spawn/node_modules/isexe
83
- isexe@3.1.1:
84
82
  - node_modules/isexe
83
+ isexe@3.1.1:
84
+ - node_modules/node-gyp/node_modules/isexe
85
85
  jackspeak@3.4.3:
86
86
  - node_modules/jackspeak
87
87
  lru-cache@10.4.3:
@@ -154,8 +154,8 @@ hoistedLocations:
154
154
  string-width@5.1.2:
155
155
  - node_modules/string-width
156
156
  strip-ansi@6.0.1:
157
- - node_modules/wrap-ansi-cjs/node_modules/strip-ansi
158
157
  - node_modules/string-width-cjs/node_modules/strip-ansi
158
+ - node_modules/wrap-ansi-cjs/node_modules/strip-ansi
159
159
  - node_modules/strip-ansi-cjs
160
160
  strip-ansi@7.1.2:
161
161
  - node_modules/strip-ansi
@@ -168,9 +168,9 @@ hoistedLocations:
168
168
  v8-compile-cache@2.4.0:
169
169
  - node_modules/v8-compile-cache
170
170
  which@2.0.2:
171
- - node_modules/cross-spawn/node_modules/which
172
- which@5.0.0:
173
171
  - node_modules/which
172
+ which@5.0.0:
173
+ - node_modules/node-gyp/node_modules/which
174
174
  wrap-ansi@7.0.0:
175
175
  - node_modules/wrap-ansi-cjs
176
176
  wrap-ansi@8.1.0:
@@ -190,7 +190,7 @@ layoutVersion: 5
190
190
  nodeLinker: hoisted
191
191
  packageManager: pnpm@10.16.1
192
192
  pendingBuilds: []
193
- prunedAt: Thu, 09 Oct 2025 16:08:32 GMT
193
+ prunedAt: Tue, 14 Oct 2025 09:43:14 GMT
194
194
  publicHoistPattern: []
195
195
  registries:
196
196
  '@jsr': https://npm.jsr.io/
@@ -145,8 +145,8 @@ packages:
145
145
  err-code@2.0.3:
146
146
  resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
147
147
 
148
- exponential-backoff@3.1.2:
149
- resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==}
148
+ exponential-backoff@3.1.3:
149
+ resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==}
150
150
 
151
151
  foreground-child@3.3.1:
152
152
  resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
@@ -502,7 +502,7 @@ snapshots:
502
502
  err-code@2.0.3:
503
503
  optional: true
504
504
 
505
- exponential-backoff@3.1.2:
505
+ exponential-backoff@3.1.3:
506
506
  optional: true
507
507
 
508
508
  foreground-child@3.3.1:
@@ -651,7 +651,7 @@ snapshots:
651
651
  node-gyp@11.1.0:
652
652
  dependencies:
653
653
  env-paths: 2.2.1
654
- exponential-backoff: 3.1.2
654
+ exponential-backoff: 3.1.3
655
655
  glob: 10.4.5
656
656
  graceful-fs: 4.2.11
657
657
  make-fetch-happen: 14.0.3
@@ -1,5 +1,5 @@
1
1
  {
2
- "lastValidatedTimestamp": 1760026112645,
2
+ "lastValidatedTimestamp": 1760434994350,
3
3
  "projects": {},
4
4
  "pnpmfiles": [],
5
5
  "settings": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exponential-backoff",
3
- "version": "3.1.2",
3
+ "version": "3.1.3",
4
4
  "description": "A utility that allows retrying a function with an exponential delay between attempts.",
5
5
  "files": [
6
6
  "dist/",
@@ -1,6 +1,6 @@
1
1
  The ISC License
2
2
 
3
- Copyright (c) 2016-2022 Isaac Z. Schlueter and Contributors
3
+ Copyright (c) Isaac Z. Schlueter and Contributors
4
4
 
5
5
  Permission to use, copy, modify, and/or distribute this software for any
6
6
  purpose with or without fee is hereby granted, provided that the above
@@ -1,96 +1,31 @@
1
1
  {
2
2
  "name": "isexe",
3
- "version": "3.1.1",
3
+ "version": "2.0.0",
4
4
  "description": "Minimal module to check if a file is executable.",
5
- "main": "./dist/cjs/index.js",
6
- "module": "./dist/mjs/index.js",
7
- "types": "./dist/cjs/index.js",
8
- "files": [
9
- "dist"
10
- ],
11
- "exports": {
12
- ".": {
13
- "import": {
14
- "types": "./dist/mjs/index.d.ts",
15
- "default": "./dist/mjs/index.js"
16
- },
17
- "require": {
18
- "types": "./dist/cjs/index.d.ts",
19
- "default": "./dist/cjs/index.js"
20
- }
21
- },
22
- "./posix": {
23
- "import": {
24
- "types": "./dist/mjs/posix.d.ts",
25
- "default": "./dist/mjs/posix.js"
26
- },
27
- "require": {
28
- "types": "./dist/cjs/posix.d.ts",
29
- "default": "./dist/cjs/posix.js"
30
- }
31
- },
32
- "./win32": {
33
- "import": {
34
- "types": "./dist/mjs/win32.d.ts",
35
- "default": "./dist/mjs/win32.js"
36
- },
37
- "require": {
38
- "types": "./dist/cjs/win32.d.ts",
39
- "default": "./dist/cjs/win32.js"
40
- }
41
- },
42
- "./package.json": "./package.json"
5
+ "main": "index.js",
6
+ "directories": {
7
+ "test": "test"
43
8
  },
44
9
  "devDependencies": {
45
- "@types/node": "^20.4.5",
46
- "@types/tap": "^15.0.8",
47
- "c8": "^8.0.1",
48
10
  "mkdirp": "^0.5.1",
49
- "prettier": "^2.8.8",
50
11
  "rimraf": "^2.5.0",
51
- "sync-content": "^1.0.2",
52
- "tap": "^16.3.8",
53
- "ts-node": "^10.9.1",
54
- "typedoc": "^0.24.8",
55
- "typescript": "^5.1.6"
12
+ "tap": "^10.3.0"
56
13
  },
57
14
  "scripts": {
15
+ "test": "tap test/*.js --100",
58
16
  "preversion": "npm test",
59
17
  "postversion": "npm publish",
60
- "prepublishOnly": "git push origin --follow-tags",
61
- "prepare": "tsc -p tsconfig/cjs.json && tsc -p tsconfig/esm.json && bash ./scripts/fixup.sh",
62
- "pretest": "npm run prepare",
63
- "presnap": "npm run prepare",
64
- "test": "c8 tap",
65
- "snap": "c8 tap",
66
- "format": "prettier --write . --loglevel warn --ignore-path ../../.prettierignore --cache",
67
- "typedoc": "typedoc --tsconfig tsconfig/esm.json ./src/*.ts"
18
+ "postpublish": "git push origin --all; git push origin --tags"
68
19
  },
69
20
  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
70
21
  "license": "ISC",
71
- "tap": {
72
- "coverage": false,
73
- "node-arg": [
74
- "--enable-source-maps",
75
- "--no-warnings",
76
- "--loader",
77
- "ts-node/esm"
78
- ],
79
- "ts": false
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/isaacs/isexe.git"
80
25
  },
81
- "prettier": {
82
- "semi": false,
83
- "printWidth": 75,
84
- "tabWidth": 2,
85
- "useTabs": false,
86
- "singleQuote": true,
87
- "jsxSingleQuote": false,
88
- "bracketSameLine": true,
89
- "arrowParens": "avoid",
90
- "endOfLine": "lf"
26
+ "keywords": [],
27
+ "bugs": {
28
+ "url": "https://github.com/isaacs/isexe/issues"
91
29
  },
92
- "repository": "https://github.com/isaacs/isexe",
93
- "engines": {
94
- "node": ">=16"
95
- }
30
+ "homepage": "https://github.com/isaacs/isexe#readme"
96
31
  }
@@ -1,6 +1,6 @@
1
1
  The ISC License
2
2
 
3
- Copyright (c) Isaac Z. Schlueter and Contributors
3
+ Copyright (c) 2016-2022 Isaac Z. Schlueter and Contributors
4
4
 
5
5
  Permission to use, copy, modify, and/or distribute this software for any
6
6
  purpose with or without fee is hereby granted, provided that the above
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "isexe",
3
+ "version": "3.1.1",
4
+ "description": "Minimal module to check if a file is executable.",
5
+ "main": "./dist/cjs/index.js",
6
+ "module": "./dist/mjs/index.js",
7
+ "types": "./dist/cjs/index.js",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "exports": {
12
+ ".": {
13
+ "import": {
14
+ "types": "./dist/mjs/index.d.ts",
15
+ "default": "./dist/mjs/index.js"
16
+ },
17
+ "require": {
18
+ "types": "./dist/cjs/index.d.ts",
19
+ "default": "./dist/cjs/index.js"
20
+ }
21
+ },
22
+ "./posix": {
23
+ "import": {
24
+ "types": "./dist/mjs/posix.d.ts",
25
+ "default": "./dist/mjs/posix.js"
26
+ },
27
+ "require": {
28
+ "types": "./dist/cjs/posix.d.ts",
29
+ "default": "./dist/cjs/posix.js"
30
+ }
31
+ },
32
+ "./win32": {
33
+ "import": {
34
+ "types": "./dist/mjs/win32.d.ts",
35
+ "default": "./dist/mjs/win32.js"
36
+ },
37
+ "require": {
38
+ "types": "./dist/cjs/win32.d.ts",
39
+ "default": "./dist/cjs/win32.js"
40
+ }
41
+ },
42
+ "./package.json": "./package.json"
43
+ },
44
+ "devDependencies": {
45
+ "@types/node": "^20.4.5",
46
+ "@types/tap": "^15.0.8",
47
+ "c8": "^8.0.1",
48
+ "mkdirp": "^0.5.1",
49
+ "prettier": "^2.8.8",
50
+ "rimraf": "^2.5.0",
51
+ "sync-content": "^1.0.2",
52
+ "tap": "^16.3.8",
53
+ "ts-node": "^10.9.1",
54
+ "typedoc": "^0.24.8",
55
+ "typescript": "^5.1.6"
56
+ },
57
+ "scripts": {
58
+ "preversion": "npm test",
59
+ "postversion": "npm publish",
60
+ "prepublishOnly": "git push origin --follow-tags",
61
+ "prepare": "tsc -p tsconfig/cjs.json && tsc -p tsconfig/esm.json && bash ./scripts/fixup.sh",
62
+ "pretest": "npm run prepare",
63
+ "presnap": "npm run prepare",
64
+ "test": "c8 tap",
65
+ "snap": "c8 tap",
66
+ "format": "prettier --write . --loglevel warn --ignore-path ../../.prettierignore --cache",
67
+ "typedoc": "typedoc --tsconfig tsconfig/esm.json ./src/*.ts"
68
+ },
69
+ "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
70
+ "license": "ISC",
71
+ "tap": {
72
+ "coverage": false,
73
+ "node-arg": [
74
+ "--enable-source-maps",
75
+ "--no-warnings",
76
+ "--loader",
77
+ "ts-node/esm"
78
+ ],
79
+ "ts": false
80
+ },
81
+ "prettier": {
82
+ "semi": false,
83
+ "printWidth": 75,
84
+ "tabWidth": 2,
85
+ "useTabs": false,
86
+ "singleQuote": true,
87
+ "jsxSingleQuote": false,
88
+ "bracketSameLine": true,
89
+ "arrowParens": "avoid",
90
+ "endOfLine": "lf"
91
+ },
92
+ "repository": "https://github.com/isaacs/isexe",
93
+ "engines": {
94
+ "node": ">=16"
95
+ }
96
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "author": "GitHub Inc.",
3
+ "name": "which",
4
+ "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
5
+ "version": "5.0.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/npm/node-which.git"
9
+ },
10
+ "main": "lib/index.js",
11
+ "bin": {
12
+ "node-which": "./bin/which.js"
13
+ },
14
+ "license": "ISC",
15
+ "dependencies": {
16
+ "isexe": "^3.1.1"
17
+ },
18
+ "devDependencies": {
19
+ "@npmcli/eslint-config": "^5.0.0",
20
+ "@npmcli/template-oss": "4.23.3",
21
+ "tap": "^16.3.0"
22
+ },
23
+ "scripts": {
24
+ "test": "tap",
25
+ "lint": "npm run eslint",
26
+ "postlint": "template-oss-check",
27
+ "template-oss-apply": "template-oss-apply --force",
28
+ "lintfix": "npm run eslint -- --fix",
29
+ "snap": "tap",
30
+ "posttest": "npm run lint",
31
+ "eslint": "eslint \"**/*.{js,cjs,ts,mjs,jsx,tsx}\""
32
+ },
33
+ "files": [
34
+ "bin/",
35
+ "lib/"
36
+ ],
37
+ "tap": {
38
+ "check-coverage": true,
39
+ "nyc-arg": [
40
+ "--exclude",
41
+ "tap-snapshots/**"
42
+ ]
43
+ },
44
+ "engines": {
45
+ "node": "^18.17.0 || >=20.5.0"
46
+ },
47
+ "templateOSS": {
48
+ "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
49
+ "version": "4.23.3",
50
+ "publish": "true"
51
+ }
52
+ }
@@ -1,52 +1,43 @@
1
1
  {
2
- "author": "GitHub Inc.",
2
+ "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)",
3
3
  "name": "which",
4
4
  "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
5
- "version": "5.0.0",
5
+ "version": "2.0.2",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "git+https://github.com/npm/node-which.git"
8
+ "url": "git://github.com/isaacs/node-which.git"
9
9
  },
10
- "main": "lib/index.js",
10
+ "main": "which.js",
11
11
  "bin": {
12
- "node-which": "./bin/which.js"
12
+ "node-which": "./bin/node-which"
13
13
  },
14
14
  "license": "ISC",
15
15
  "dependencies": {
16
- "isexe": "^3.1.1"
16
+ "isexe": "^2.0.0"
17
17
  },
18
18
  "devDependencies": {
19
- "@npmcli/eslint-config": "^5.0.0",
20
- "@npmcli/template-oss": "4.23.3",
21
- "tap": "^16.3.0"
19
+ "mkdirp": "^0.5.0",
20
+ "rimraf": "^2.6.2",
21
+ "tap": "^14.6.9"
22
22
  },
23
23
  "scripts": {
24
24
  "test": "tap",
25
- "lint": "npm run eslint",
26
- "postlint": "template-oss-check",
27
- "template-oss-apply": "template-oss-apply --force",
28
- "lintfix": "npm run eslint -- --fix",
29
- "snap": "tap",
30
- "posttest": "npm run lint",
31
- "eslint": "eslint \"**/*.{js,cjs,ts,mjs,jsx,tsx}\""
25
+ "preversion": "npm test",
26
+ "postversion": "npm publish",
27
+ "prepublish": "npm run changelog",
28
+ "prechangelog": "bash gen-changelog.sh",
29
+ "changelog": "git add CHANGELOG.md",
30
+ "postchangelog": "git commit -m 'update changelog - '${npm_package_version}",
31
+ "postpublish": "git push origin --follow-tags"
32
32
  },
33
33
  "files": [
34
- "bin/",
35
- "lib/"
34
+ "which.js",
35
+ "bin/node-which"
36
36
  ],
37
37
  "tap": {
38
- "check-coverage": true,
39
- "nyc-arg": [
40
- "--exclude",
41
- "tap-snapshots/**"
42
- ]
38
+ "check-coverage": true
43
39
  },
44
40
  "engines": {
45
- "node": "^18.17.0 || >=20.5.0"
46
- },
47
- "templateOSS": {
48
- "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
49
- "version": "4.23.3",
50
- "publish": "true"
41
+ "node": ">= 8"
51
42
  }
52
43
  }
package/dist/pnpm.cjs CHANGED
@@ -2972,7 +2972,7 @@ var require_lib4 = __commonJS({
2972
2972
  var load_json_file_1 = __importDefault2(require_load_json_file());
2973
2973
  var defaultManifest = {
2974
2974
  name: true ? "pnpm" : "pnpm",
2975
- version: true ? "10.18.2" : "0.0.0"
2975
+ version: true ? "10.18.3" : "0.0.0"
2976
2976
  };
2977
2977
  var pkgJson;
2978
2978
  if (require.main == null) {
@@ -19403,6 +19403,10 @@ var require_lib20 = __commonJS({
19403
19403
  pnpmConfig[key] = value;
19404
19404
  pnpmConfig.rawConfig[(0, lodash_kebabcase_1.default)(key)] = value;
19405
19405
  }
19406
+ if (process.env.pnpm_config_verify_deps_before_run != null) {
19407
+ pnpmConfig.verifyDepsBeforeRun = process.env.pnpm_config_verify_deps_before_run;
19408
+ pnpmConfig.rawConfig["verify-deps-before-run"] = pnpmConfig.verifyDepsBeforeRun;
19409
+ }
19406
19410
  pnpmConfig.catalogs = (0, catalogs_config_1.getCatalogsFromWorkspaceManifest)(workspaceManifest);
19407
19411
  }
19408
19412
  }
@@ -98023,7 +98027,7 @@ var require_lib69 = __commonJS({
98023
98027
  await (0, symlink_dir_1.default)(cmd.path, externalBinPath);
98024
98028
  await (0, fix_bin_1.default)(cmd.path, 493);
98025
98029
  } catch (err) {
98026
- if (err.code !== "ENOENT") {
98030
+ if (err.code !== "ENOENT" && err.code !== "EISDIR") {
98027
98031
  throw err;
98028
98032
  }
98029
98033
  (0, logger_1.globalWarn)(`Failed to create bin at ${externalBinPath}. ${err.message}`);
@@ -98047,7 +98051,7 @@ var require_lib69 = __commonJS({
98047
98051
  nodeExecPath: cmd.nodeExecPath
98048
98052
  });
98049
98053
  } catch (err) {
98050
- if (err.code !== "ENOENT") {
98054
+ if (err.code !== "ENOENT" && err.code !== "EISDIR") {
98051
98055
  throw err;
98052
98056
  }
98053
98057
  (0, logger_1.globalWarn)(`Failed to create bin at ${externalBinPath}. ${err.message}`);
@@ -136115,11 +136119,19 @@ var require_configGet = __commonJS({
136115
136119
  var parseConfigPropertyPath_js_1 = require_parseConfigPropertyPath();
136116
136120
  var settingShouldFallBackToNpm_js_1 = require_settingShouldFallBackToNpm();
136117
136121
  function configGet(opts, key) {
136118
- if (opts.global && (0, settingShouldFallBackToNpm_js_1.settingShouldFallBackToNpm)(key)) {
136122
+ const isScopedKey = key.startsWith("@");
136123
+ if (opts.global && (0, settingShouldFallBackToNpm_js_1.settingShouldFallBackToNpm)(key) && !isScopedKey) {
136119
136124
  const { status: exitCode } = (0, run_npm_1.runNpm)(opts.npmPath, ["config", "get", key]);
136120
136125
  return { output: "", exitCode: exitCode ?? 0 };
136121
136126
  }
136122
- const config = (0, isStrictlyKebabCase_js_1.isStrictlyKebabCase)(key) ? opts.rawConfig[(0, lodash_kebabcase_1.default)(key)] : getConfigByPropertyPath(opts.rawConfig, key);
136127
+ let config;
136128
+ if ((0, isStrictlyKebabCase_js_1.isStrictlyKebabCase)(key)) {
136129
+ config = opts.rawConfig[(0, lodash_kebabcase_1.default)(key)];
136130
+ } else if (isScopedKey) {
136131
+ config = opts.rawConfig[key];
136132
+ } else {
136133
+ config = getConfigByPropertyPath(opts.rawConfig, key);
136134
+ }
136123
136135
  const output = displayConfig(config, opts);
136124
136136
  return { output, exitCode: 0 };
136125
136137
  }
@@ -136171,6 +136183,46 @@ var require_write_ini_file = __commonJS({
136171
136183
  }
136172
136184
  });
136173
136185
 
136186
+ // ../config/plugin-commands-config/lib/getConfigFilePath.js
136187
+ var require_getConfigFilePath = __commonJS({
136188
+ "../config/plugin-commands-config/lib/getConfigFilePath.js"(exports2) {
136189
+ "use strict";
136190
+ var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
136191
+ return mod && mod.__esModule ? mod : { "default": mod };
136192
+ };
136193
+ Object.defineProperty(exports2, "__esModule", { value: true });
136194
+ exports2.getConfigFilePath = getConfigFilePath;
136195
+ var fs_1 = __importDefault2(require("fs"));
136196
+ var path_1 = __importDefault2(require("path"));
136197
+ function getConfigFilePath(opts) {
136198
+ if (opts.global) {
136199
+ return {
136200
+ configPath: path_1.default.join(opts.configDir, "rc"),
136201
+ isWorkspaceYaml: false
136202
+ };
136203
+ }
136204
+ const workspaceYamlPath = path_1.default.join(opts.dir, "pnpm-workspace.yaml");
136205
+ if (fs_1.default.existsSync(workspaceYamlPath)) {
136206
+ return {
136207
+ configPath: workspaceYamlPath,
136208
+ isWorkspaceYaml: true
136209
+ };
136210
+ }
136211
+ const npmrcPath = path_1.default.join(opts.dir, ".npmrc");
136212
+ if (fs_1.default.existsSync(npmrcPath)) {
136213
+ return {
136214
+ configPath: npmrcPath,
136215
+ isWorkspaceYaml: false
136216
+ };
136217
+ }
136218
+ return {
136219
+ configPath: workspaceYamlPath,
136220
+ isWorkspaceYaml: true
136221
+ };
136222
+ }
136223
+ }
136224
+ });
136225
+
136174
136226
  // ../config/plugin-commands-config/lib/configSet.js
136175
136227
  var require_configSet = __commonJS({
136176
136228
  "../config/plugin-commands-config/lib/configSet.js"(exports2) {
@@ -136181,7 +136233,6 @@ var require_configSet = __commonJS({
136181
136233
  Object.defineProperty(exports2, "__esModule", { value: true });
136182
136234
  exports2.ConfigSetDeepKeyError = exports2.ConfigSetKeyEmptyKeyError = void 0;
136183
136235
  exports2.configSet = configSet;
136184
- var fs_1 = __importDefault2(require("fs"));
136185
136236
  var path_1 = __importDefault2(require("path"));
136186
136237
  var util_1 = __importDefault2(require("util"));
136187
136238
  var config_1 = require_lib20();
@@ -136193,6 +136244,7 @@ var require_configSet = __commonJS({
136193
136244
  var lodash_kebabcase_1 = __importDefault2(require_lodash());
136194
136245
  var read_ini_file_1 = require_read_ini_file();
136195
136246
  var write_ini_file_1 = require_write_ini_file();
136247
+ var getConfigFilePath_js_1 = require_getConfigFilePath();
136196
136248
  var isStrictlyKebabCase_js_1 = require_isStrictlyKebabCase();
136197
136249
  var settingShouldFallBackToNpm_js_1 = require_settingShouldFallBackToNpm();
136198
136250
  async function configSet(opts, key, valueParam) {
@@ -136205,20 +136257,41 @@ var require_configSet = __commonJS({
136205
136257
  if (valueParam != null && opts.json) {
136206
136258
  value = JSON.parse(valueParam);
136207
136259
  }
136208
- if (opts.global && (0, settingShouldFallBackToNpm_js_1.settingShouldFallBackToNpm)(key)) {
136209
- const _runNpm = run_npm_1.runNpm.bind(null, opts.npmPath);
136210
- if (value == null) {
136211
- _runNpm(["config", "delete", key]);
136212
- return;
136213
- }
136214
- if (typeof value === "string") {
136215
- _runNpm(["config", "set", `${key}=${value}`]);
136260
+ if (shouldFallbackToNpm) {
136261
+ if (opts.global) {
136262
+ const _runNpm = run_npm_1.runNpm.bind(null, opts.npmPath);
136263
+ if (value == null) {
136264
+ _runNpm(["config", "delete", key]);
136265
+ return;
136266
+ }
136267
+ if (typeof value === "string") {
136268
+ _runNpm(["config", "set", `${key}=${value}`]);
136269
+ return;
136270
+ }
136271
+ throw new error_1.PnpmError("CONFIG_SET_AUTH_NON_STRING", `Cannot set ${key} to a non-string value (${JSON.stringify(value)})`);
136272
+ } else {
136273
+ const configPath2 = path_1.default.join(opts.dir, ".npmrc");
136274
+ const settings = await safeReadIniFile(configPath2);
136275
+ if (value == null) {
136276
+ if (settings[key] == null)
136277
+ return;
136278
+ delete settings[key];
136279
+ } else {
136280
+ settings[key] = value;
136281
+ }
136282
+ await (0, write_ini_file_1.writeIniFile)(configPath2, settings);
136216
136283
  return;
136217
136284
  }
136218
- throw new error_1.PnpmError("CONFIG_SET_AUTH_NON_STRING", `Cannot set ${key} to a non-string value (${JSON.stringify(value)})`);
136219
136285
  }
136220
- if (opts.global === true || fs_1.default.existsSync(path_1.default.join(opts.dir, ".npmrc"))) {
136221
- const configPath = opts.global ? path_1.default.join(opts.configDir, "rc") : path_1.default.join(opts.dir, ".npmrc");
136286
+ const { configPath, isWorkspaceYaml } = (0, getConfigFilePath_js_1.getConfigFilePath)(opts);
136287
+ if (isWorkspaceYaml) {
136288
+ key = (0, camelcase_1.default)(key);
136289
+ await (0, workspace_manifest_writer_1.updateWorkspaceManifest)(opts.workspaceDir ?? opts.dir, {
136290
+ updatedFields: {
136291
+ [key]: castField(value, (0, lodash_kebabcase_1.default)(key))
136292
+ }
136293
+ });
136294
+ } else {
136222
136295
  const settings = await safeReadIniFile(configPath);
136223
136296
  key = (0, lodash_kebabcase_1.default)(key);
136224
136297
  if (value == null) {
@@ -136229,14 +136302,7 @@ var require_configSet = __commonJS({
136229
136302
  settings[key] = value;
136230
136303
  }
136231
136304
  await (0, write_ini_file_1.writeIniFile)(configPath, settings);
136232
- return;
136233
136305
  }
136234
- key = (0, camelcase_1.default)(key);
136235
- await (0, workspace_manifest_writer_1.updateWorkspaceManifest)(opts.workspaceDir ?? opts.dir, {
136236
- updatedFields: {
136237
- [key]: castField(value, (0, lodash_kebabcase_1.default)(key))
136238
- }
136239
- });
136240
136306
  }
136241
136307
  function castField(value, key) {
136242
136308
  if (typeof value !== "string") {
@@ -136383,7 +136449,7 @@ var require_config3 = __commonJS({
136383
136449
  shortAlias: "-g"
136384
136450
  },
136385
136451
  {
136386
- description: 'When set to "project", the .npmrc file at the nearest package.json will be used. If no .npmrc file is present in the directory, the setting will be written to a pnpm-workspace.yaml file.',
136452
+ description: 'When set to "project", the pnpm-workspace.yaml file will be used if it exists. If only .npmrc exists, it will be used. If neither exists, a pnpm-workspace.yaml file will be created.',
136387
136453
  name: "--location <project|global>"
136388
136454
  },
136389
136455
  {
@@ -152319,6 +152385,7 @@ var require_resolveDependencies = __commonJS({
152319
152385
  exports2.resolveRootDependencies = resolveRootDependencies;
152320
152386
  exports2.resolveDependencies = resolveDependencies;
152321
152387
  exports2.createNodeIdForLinkedLocalPkg = createNodeIdForLinkedLocalPkg;
152388
+ exports2.getManifestFromResponse = getManifestFromResponse;
152322
152389
  var path_1 = __importDefault2(require("path"));
152323
152390
  var catalogs_resolver_1 = require_lib145();
152324
152391
  var core_loggers_1 = require_lib24();
@@ -153082,7 +153149,7 @@ var require_resolveDependencies = __commonJS({
153082
153149
  }
153083
153150
  let prepare;
153084
153151
  let hasBin;
153085
- let pkg = getManifestFromResponse(pkgResponse, wantedDependency);
153152
+ let pkg = getManifestFromResponse(pkgResponse, wantedDependency, currentPkg);
153086
153153
  if (!pkg.dependencies) {
153087
153154
  pkg.dependencies = {};
153088
153155
  }
@@ -153129,7 +153196,7 @@ var require_resolveDependencies = __commonJS({
153129
153196
  if (currentPkg.dependencyLockfile?.deprecated && !pkgResponse.body.updated && !pkg.deprecated) {
153130
153197
  pkg.deprecated = currentPkg.dependencyLockfile.deprecated;
153131
153198
  }
153132
- hasBin = Boolean((pkg.bin && !(pkg.bin === "" || Object.keys(pkg.bin).length === 0)) ?? pkg.directories?.bin);
153199
+ hasBin = currentPkg.dependencyLockfile?.hasBin != null && !pkg.bin ? currentPkg.dependencyLockfile.hasBin : Boolean((pkg.bin && !(pkg.bin === "" || Object.keys(pkg.bin).length === 0)) ?? pkg.directories?.bin);
153133
153200
  }
153134
153201
  if (options.currentDepth === 0 && pkgResponse.body.latest && pkgResponse.body.latest !== pkg.version) {
153135
153202
  ctx.outdatedDependencies[pkgResponse.body.id] = pkgResponse.body.latest;
@@ -153246,9 +153313,15 @@ var require_resolveDependencies = __commonJS({
153246
153313
  publishedAt: pkgResponse.body.publishedAt
153247
153314
  };
153248
153315
  }
153249
- function getManifestFromResponse(pkgResponse, wantedDependency) {
153316
+ function getManifestFromResponse(pkgResponse, wantedDependency, currentPkg) {
153250
153317
  if (pkgResponse.body.manifest)
153251
153318
  return pkgResponse.body.manifest;
153319
+ if (currentPkg?.name && currentPkg?.version) {
153320
+ return {
153321
+ name: currentPkg.name,
153322
+ version: currentPkg.version
153323
+ };
153324
+ }
153252
153325
  return {
153253
153326
  name: wantedDependency.alias ? wantedDependency.alias : wantedDependency.bareSpecifier.split("/").pop(),
153254
153327
  version: "0.0.0"
@@ -185781,24 +185854,23 @@ pnpm outdated gulp-* @babel/core`,
185781
185854
  columnNames,
185782
185855
  ...sortOutdatedPackages(outdatedPackages, { sortBy: opts.sortBy }).map((outdatedPkg) => columnFns.map((fn) => fn(outdatedPkg)))
185783
185856
  ];
185784
- let detailsColumnMaxWidth = 40;
185857
+ const tableOptions = {
185858
+ ...cli_utils_1.TABLE_OPTIONS
185859
+ };
185785
185860
  if (opts.long) {
185786
- detailsColumnMaxWidth = outdatedPackages.filter((pkg) => pkg.latestManifest && !pkg.latestManifest.deprecated).reduce((maxWidth, pkg) => {
185861
+ const detailsColumnMaxWidth = outdatedPackages.filter((pkg) => pkg.latestManifest && !pkg.latestManifest.deprecated).reduce((maxWidth, pkg) => {
185787
185862
  const cellWidth = pkg.latestManifest?.homepage?.length ?? 0;
185788
185863
  return Math.max(maxWidth, cellWidth);
185789
- }, 0);
185790
- }
185791
- return (0, table_1.table)(data, {
185792
- ...cli_utils_1.TABLE_OPTIONS,
185793
- columns: {
185794
- ...cli_utils_1.TABLE_OPTIONS.columns,
185864
+ }, 40);
185865
+ tableOptions.columns = {
185795
185866
  // Detail column:
185796
185867
  3: {
185797
185868
  width: detailsColumnMaxWidth,
185798
185869
  wrapWord: true
185799
185870
  }
185800
- }
185801
- });
185871
+ };
185872
+ }
185873
+ return (0, table_1.table)(data, tableOptions);
185802
185874
  }
185803
185875
  function renderOutdatedList(outdatedPackages, opts) {
185804
185876
  if (outdatedPackages.length === 0)
@@ -187431,6 +187503,7 @@ var require_publish2 = __commonJS({
187431
187503
  exports2.rcOptionsTypes = rcOptionsTypes;
187432
187504
  exports2.cliOptionsTypes = cliOptionsTypes;
187433
187505
  exports2.help = help;
187506
+ exports2.removePnpmSpecificOptions = removePnpmSpecificOptions;
187434
187507
  exports2.handler = handler;
187435
187508
  exports2.publish = publish;
187436
187509
  exports2.runScriptsIfPresent = runScriptsIfPresent;
@@ -187540,6 +187613,34 @@ var require_publish2 = __commonJS({
187540
187613
  });
187541
187614
  }
187542
187615
  var GIT_CHECKS_HINT = 'If you want to disable Git checks on publish, set the "git-checks" setting to "false", or run again with "--no-git-checks".';
187616
+ function removePnpmSpecificOptions(args) {
187617
+ const booleanOptions = /* @__PURE__ */ new Set([
187618
+ "--no-git-checks",
187619
+ "--embed-readme",
187620
+ "--no-embed-readme"
187621
+ ]);
187622
+ const optionsWithValue = /* @__PURE__ */ new Set([
187623
+ "--publish-branch",
187624
+ "--npm-path"
187625
+ ]);
187626
+ const result2 = [];
187627
+ let i = 0;
187628
+ while (i < args.length) {
187629
+ const arg = args[i];
187630
+ if (booleanOptions.has(arg)) {
187631
+ i++;
187632
+ } else if (optionsWithValue.has(arg)) {
187633
+ i++;
187634
+ if (i < args.length && args[i][0] !== "-") {
187635
+ i++;
187636
+ }
187637
+ } else {
187638
+ result2.push(arg);
187639
+ i++;
187640
+ }
187641
+ }
187642
+ return result2;
187643
+ }
187543
187644
  async function handler(opts, params) {
187544
187645
  const result2 = await publish(opts, params);
187545
187646
  if (result2?.manifest)
@@ -187591,14 +187692,7 @@ var require_publish2 = __commonJS({
187591
187692
  if (dirInParams) {
187592
187693
  args = args.filter((arg) => arg !== params[0]);
187593
187694
  }
187594
- const index = args.indexOf("--publish-branch");
187595
- if (index !== -1) {
187596
- if (args[index + 1]?.[0] === "-") {
187597
- args.splice(index, 1);
187598
- } else {
187599
- args.splice(index, 2);
187600
- }
187601
- }
187695
+ args = removePnpmSpecificOptions(args);
187602
187696
  if (dirInParams != null && (dirInParams.endsWith(".tgz") || dirInParams?.endsWith(".tar.gz"))) {
187603
187697
  const { status: status2 } = (0, run_npm_1.runNpm)(opts.npmPath, ["publish", dirInParams, ...args]);
187604
187698
  return { exitCode: status2 ?? 0 };
@@ -189558,8 +189652,11 @@ var require_lib189 = __commonJS({
189558
189652
  exports2.syncInjectedDeps = syncInjectedDeps;
189559
189653
  var path_1 = __importDefault2(require("path"));
189560
189654
  var error_1 = require_lib6();
189655
+ var link_bins_1 = require_lib69();
189561
189656
  var logger_1 = require_lib();
189562
189657
  var modules_yaml_1 = require_lib114();
189658
+ var read_package_json_1 = require_lib59();
189659
+ var workspace_find_packages_1 = require_lib104();
189563
189660
  var normalize_path_1 = __importDefault2(require_normalize_path());
189564
189661
  var DirPatcher_js_1 = require_DirPatcher();
189565
189662
  var logger = (0, logger_1.logger)("skip-sync-injected-deps");
@@ -189598,6 +189695,35 @@ var require_lib189 = __commonJS({
189598
189695
  }
189599
189696
  const patchers = await DirPatcher_js_1.DirPatcher.fromMultipleTargets(pkgRootDir, targetDirs.map((targetDir) => path_1.default.resolve(opts.workspaceDir, targetDir)));
189600
189697
  await Promise.all(patchers.map((patcher) => patcher.apply()));
189698
+ await syncBinLinks(pkgRootDir, targetDirs, opts.workspaceDir);
189699
+ }
189700
+ async function syncBinLinks(pkgRootDir, targetDirs, workspaceDir) {
189701
+ const manifest = await (0, read_package_json_1.safeReadPackageJsonFromDir)(pkgRootDir);
189702
+ if (!manifest?.bin || !manifest?.name) {
189703
+ return;
189704
+ }
189705
+ const binLinkPromises = targetDirs.map(async (targetDir) => {
189706
+ const resolvedTargetDir = path_1.default.resolve(workspaceDir, targetDir);
189707
+ const parentNodeModulesDir = path_1.default.dirname(resolvedTargetDir);
189708
+ const binDir = path_1.default.join(parentNodeModulesDir, ".bin");
189709
+ await (0, link_bins_1.linkBinsOfPackages)([{
189710
+ manifest,
189711
+ location: resolvedTargetDir
189712
+ }], binDir, {});
189713
+ });
189714
+ const allProjects = await (0, workspace_find_packages_1.findWorkspacePackagesNoCheck)(workspaceDir, {});
189715
+ const consumerLinkPromises = allProjects.map(async (project) => {
189716
+ const projectNodeModules = path_1.default.join(project.rootDir, "node_modules");
189717
+ const projectBinDir = path_1.default.join(projectNodeModules, ".bin");
189718
+ await (0, link_bins_1.linkBins)(projectNodeModules, projectBinDir, {
189719
+ allowExoticManifests: true,
189720
+ projectManifest: project.manifest,
189721
+ warn: (msg) => {
189722
+ console.warn(`[linkBins warning] ${msg}`);
189723
+ }
189724
+ });
189725
+ });
189726
+ await Promise.all([...binLinkPromises, ...consumerLinkPromises]);
189601
189727
  }
189602
189728
  }
189603
189729
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pnpm",
3
- "version": "10.18.2",
3
+ "version": "10.18.3",
4
4
  "description": "Fast, disk space efficient package manager",
5
5
  "keywords": [
6
6
  "pnpm",
@@ -1,31 +0,0 @@
1
- {
2
- "name": "isexe",
3
- "version": "2.0.0",
4
- "description": "Minimal module to check if a file is executable.",
5
- "main": "index.js",
6
- "directories": {
7
- "test": "test"
8
- },
9
- "devDependencies": {
10
- "mkdirp": "^0.5.1",
11
- "rimraf": "^2.5.0",
12
- "tap": "^10.3.0"
13
- },
14
- "scripts": {
15
- "test": "tap test/*.js --100",
16
- "preversion": "npm test",
17
- "postversion": "npm publish",
18
- "postpublish": "git push origin --all; git push origin --tags"
19
- },
20
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
21
- "license": "ISC",
22
- "repository": {
23
- "type": "git",
24
- "url": "git+https://github.com/isaacs/isexe.git"
25
- },
26
- "keywords": [],
27
- "bugs": {
28
- "url": "https://github.com/isaacs/isexe/issues"
29
- },
30
- "homepage": "https://github.com/isaacs/isexe#readme"
31
- }
@@ -1,43 +0,0 @@
1
- {
2
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)",
3
- "name": "which",
4
- "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
5
- "version": "2.0.2",
6
- "repository": {
7
- "type": "git",
8
- "url": "git://github.com/isaacs/node-which.git"
9
- },
10
- "main": "which.js",
11
- "bin": {
12
- "node-which": "./bin/node-which"
13
- },
14
- "license": "ISC",
15
- "dependencies": {
16
- "isexe": "^2.0.0"
17
- },
18
- "devDependencies": {
19
- "mkdirp": "^0.5.0",
20
- "rimraf": "^2.6.2",
21
- "tap": "^14.6.9"
22
- },
23
- "scripts": {
24
- "test": "tap",
25
- "preversion": "npm test",
26
- "postversion": "npm publish",
27
- "prepublish": "npm run changelog",
28
- "prechangelog": "bash gen-changelog.sh",
29
- "changelog": "git add CHANGELOG.md",
30
- "postchangelog": "git commit -m 'update changelog - '${npm_package_version}",
31
- "postpublish": "git push origin --follow-tags"
32
- },
33
- "files": [
34
- "which.js",
35
- "bin/node-which"
36
- ],
37
- "tap": {
38
- "check-coverage": true
39
- },
40
- "engines": {
41
- "node": ">= 8"
42
- }
43
- }