vercel-cli 41.1.0__py3-none-any.whl
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.
Potentially problematic release.
This version of vercel-cli might be problematic. Click here for more details.
- vercel_cli/vendor/LICENSE +202 -0
- vercel_cli/vendor/README.md +63 -0
- vercel_cli/vendor/dist/VERCEL_DIR_README.txt +11 -0
- vercel_cli/vendor/dist/builder-worker.js +62 -0
- vercel_cli/vendor/dist/get-latest-worker.js +272 -0
- vercel_cli/vendor/dist/index.js +172693 -0
- vercel_cli/vendor/dist/vc.js +11 -0
- vercel_cli/vendor/node_modules/.package-lock.json +18 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/CHANGELOG.md +488 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/LICENSE +202 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/build.mjs +3 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/clone-env.d.ts +10 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/clone-env.js +43 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/debug.d.ts +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/debug.js +31 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/default-cache-path-glob.d.ts +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/default-cache-path-glob.js +28 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/edge-function.d.ts +41 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/edge-function.js +40 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/errors.d.ts +39 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/errors.js +95 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-blob.d.ts +23 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-blob.js +67 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-fs-ref.d.ts +27 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-fs-ref.js +113 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-ref.d.ts +38 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-ref.js +147 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/download.d.ts +9 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/download.js +136 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/get-writable-directory.d.ts +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/get-writable-directory.js +32 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/glob.d.ts +10 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/glob.js +111 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/node-version.d.ts +9 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/node-version.js +180 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/normalize-path.d.ts +4 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/normalize-path.js +31 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/read-config-file.d.ts +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/read-config-file.js +76 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/rename.d.ts +11 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/rename.js +30 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/run-user-scripts.d.ts +206 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/run-user-scripts.js +944 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/stream-to-buffer.d.ts +3 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/stream-to-buffer.js +87 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-ignore-filter.d.ts +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-ignore-filter.js +90 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-installed-package-version.d.ts +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-installed-package-version.js +53 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-platform-env.d.ts +5 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-platform-env.js +45 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-prefixed-env-vars.d.ts +14 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-prefixed-env-vars.js +51 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/hard-link-dir.d.ts +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/hard-link-dir.js +104 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/index.d.ts +33 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/index.js +24390 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/lambda.d.ts +81 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/lambda.js +231 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/nodejs-lambda.d.ts +16 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/nodejs-lambda.js +44 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/os.d.ts +3 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/os.js +62 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/prerender.d.ts +37 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/prerender.js +169 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/schemas.d.ts +60 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/schemas.js +87 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/should-serve.d.ts +2 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/should-serve.js +47 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/constants.d.ts +2 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/constants.js +31 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/index.d.ts +3 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/index.js +33 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/trace.d.ts +37 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/trace.js +92 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/types.d.ts +503 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/types.js +51 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/validate-npmrc.d.ts +12 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/validate-npmrc.js +41 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/file-blob.js +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/file-fs-ref.js +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/file-ref.js +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/fs/download.js +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/fs/get-writable-directory.js +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/fs/glob.js +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/fs/rename.js +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/fs/run-user-scripts.js +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/fs/stream-to-buffer.js +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/lambda.js +1 -0
- vercel_cli/vendor/node_modules/@vercel/build-utils/package.json +60 -0
- vercel_cli/vendor/node_modules/@vercel/python/LICENSE +202 -0
- vercel_cli/vendor/node_modules/@vercel/python/dist/index.js +3132 -0
- vercel_cli/vendor/node_modules/@vercel/python/package.json +36 -0
- vercel_cli/vendor/node_modules/@vercel/python/vc_init.py +681 -0
- vercel_cli/vendor/package.json +40 -0
- vercel_cli-41.1.0.dist-info/METADATA +188 -0
- vercel_cli-41.1.0.dist-info/RECORD +99 -0
- vercel_cli-41.1.0.dist-info/WHEEL +4 -0
- vercel_cli-41.1.0.dist-info/entry_points.txt +3 -0
|
@@ -0,0 +1,3132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
9
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
10
|
+
};
|
|
11
|
+
var __export = (target, all) => {
|
|
12
|
+
for (var name in all)
|
|
13
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from))
|
|
18
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
19
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
24
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
25
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
26
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
27
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
28
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
29
|
+
mod
|
|
30
|
+
));
|
|
31
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
32
|
+
|
|
33
|
+
// ../../node_modules/.pnpm/nice-try@1.0.5/node_modules/nice-try/src/index.js
|
|
34
|
+
var require_src = __commonJS({
|
|
35
|
+
"../../node_modules/.pnpm/nice-try@1.0.5/node_modules/nice-try/src/index.js"(exports, module2) {
|
|
36
|
+
"use strict";
|
|
37
|
+
module2.exports = function(fn) {
|
|
38
|
+
try {
|
|
39
|
+
return fn();
|
|
40
|
+
} catch (e) {
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js
|
|
47
|
+
var require_windows = __commonJS({
|
|
48
|
+
"../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js"(exports, module2) {
|
|
49
|
+
module2.exports = isexe;
|
|
50
|
+
isexe.sync = sync;
|
|
51
|
+
var fs2 = require("fs");
|
|
52
|
+
function checkPathExt(path, options) {
|
|
53
|
+
var pathext = options.pathExt !== void 0 ? options.pathExt : process.env.PATHEXT;
|
|
54
|
+
if (!pathext) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
pathext = pathext.split(";");
|
|
58
|
+
if (pathext.indexOf("") !== -1) {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
for (var i = 0; i < pathext.length; i++) {
|
|
62
|
+
var p = pathext[i].toLowerCase();
|
|
63
|
+
if (p && path.substr(-p.length).toLowerCase() === p) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
function checkStat(stat, path, options) {
|
|
70
|
+
if (!stat.isSymbolicLink() && !stat.isFile()) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
return checkPathExt(path, options);
|
|
74
|
+
}
|
|
75
|
+
function isexe(path, options, cb) {
|
|
76
|
+
fs2.stat(path, function(er, stat) {
|
|
77
|
+
cb(er, er ? false : checkStat(stat, path, options));
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function sync(path, options) {
|
|
81
|
+
return checkStat(fs2.statSync(path), path, options);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js
|
|
87
|
+
var require_mode = __commonJS({
|
|
88
|
+
"../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js"(exports, module2) {
|
|
89
|
+
module2.exports = isexe;
|
|
90
|
+
isexe.sync = sync;
|
|
91
|
+
var fs2 = require("fs");
|
|
92
|
+
function isexe(path, options, cb) {
|
|
93
|
+
fs2.stat(path, function(er, stat) {
|
|
94
|
+
cb(er, er ? false : checkStat(stat, options));
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function sync(path, options) {
|
|
98
|
+
return checkStat(fs2.statSync(path), options);
|
|
99
|
+
}
|
|
100
|
+
function checkStat(stat, options) {
|
|
101
|
+
return stat.isFile() && checkMode(stat, options);
|
|
102
|
+
}
|
|
103
|
+
function checkMode(stat, options) {
|
|
104
|
+
var mod = stat.mode;
|
|
105
|
+
var uid = stat.uid;
|
|
106
|
+
var gid = stat.gid;
|
|
107
|
+
var myUid = options.uid !== void 0 ? options.uid : process.getuid && process.getuid();
|
|
108
|
+
var myGid = options.gid !== void 0 ? options.gid : process.getgid && process.getgid();
|
|
109
|
+
var u = parseInt("100", 8);
|
|
110
|
+
var g = parseInt("010", 8);
|
|
111
|
+
var o = parseInt("001", 8);
|
|
112
|
+
var ug = u | g;
|
|
113
|
+
var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && myUid === 0;
|
|
114
|
+
return ret;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
// ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js
|
|
120
|
+
var require_isexe = __commonJS({
|
|
121
|
+
"../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js"(exports, module2) {
|
|
122
|
+
var fs2 = require("fs");
|
|
123
|
+
var core;
|
|
124
|
+
if (process.platform === "win32" || global.TESTING_WINDOWS) {
|
|
125
|
+
core = require_windows();
|
|
126
|
+
} else {
|
|
127
|
+
core = require_mode();
|
|
128
|
+
}
|
|
129
|
+
module2.exports = isexe;
|
|
130
|
+
isexe.sync = sync;
|
|
131
|
+
function isexe(path, options, cb) {
|
|
132
|
+
if (typeof options === "function") {
|
|
133
|
+
cb = options;
|
|
134
|
+
options = {};
|
|
135
|
+
}
|
|
136
|
+
if (!cb) {
|
|
137
|
+
if (typeof Promise !== "function") {
|
|
138
|
+
throw new TypeError("callback not provided");
|
|
139
|
+
}
|
|
140
|
+
return new Promise(function(resolve, reject) {
|
|
141
|
+
isexe(path, options || {}, function(er, is) {
|
|
142
|
+
if (er) {
|
|
143
|
+
reject(er);
|
|
144
|
+
} else {
|
|
145
|
+
resolve(is);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
core(path, options || {}, function(er, is) {
|
|
151
|
+
if (er) {
|
|
152
|
+
if (er.code === "EACCES" || options && options.ignoreErrors) {
|
|
153
|
+
er = null;
|
|
154
|
+
is = false;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
cb(er, is);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
function sync(path, options) {
|
|
161
|
+
try {
|
|
162
|
+
return core.sync(path, options || {});
|
|
163
|
+
} catch (er) {
|
|
164
|
+
if (options && options.ignoreErrors || er.code === "EACCES") {
|
|
165
|
+
return false;
|
|
166
|
+
} else {
|
|
167
|
+
throw er;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
// ../../node_modules/.pnpm/which@1.3.1/node_modules/which/which.js
|
|
175
|
+
var require_which = __commonJS({
|
|
176
|
+
"../../node_modules/.pnpm/which@1.3.1/node_modules/which/which.js"(exports, module2) {
|
|
177
|
+
module2.exports = which2;
|
|
178
|
+
which2.sync = whichSync;
|
|
179
|
+
var isWindows = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
|
|
180
|
+
var path = require("path");
|
|
181
|
+
var COLON = isWindows ? ";" : ":";
|
|
182
|
+
var isexe = require_isexe();
|
|
183
|
+
function getNotFoundError(cmd) {
|
|
184
|
+
var er = new Error("not found: " + cmd);
|
|
185
|
+
er.code = "ENOENT";
|
|
186
|
+
return er;
|
|
187
|
+
}
|
|
188
|
+
function getPathInfo(cmd, opt) {
|
|
189
|
+
var colon = opt.colon || COLON;
|
|
190
|
+
var pathEnv = opt.path || process.env.PATH || "";
|
|
191
|
+
var pathExt = [""];
|
|
192
|
+
pathEnv = pathEnv.split(colon);
|
|
193
|
+
var pathExtExe = "";
|
|
194
|
+
if (isWindows) {
|
|
195
|
+
pathEnv.unshift(process.cwd());
|
|
196
|
+
pathExtExe = opt.pathExt || process.env.PATHEXT || ".EXE;.CMD;.BAT;.COM";
|
|
197
|
+
pathExt = pathExtExe.split(colon);
|
|
198
|
+
if (cmd.indexOf(".") !== -1 && pathExt[0] !== "")
|
|
199
|
+
pathExt.unshift("");
|
|
200
|
+
}
|
|
201
|
+
if (cmd.match(/\//) || isWindows && cmd.match(/\\/))
|
|
202
|
+
pathEnv = [""];
|
|
203
|
+
return {
|
|
204
|
+
env: pathEnv,
|
|
205
|
+
ext: pathExt,
|
|
206
|
+
extExe: pathExtExe
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
function which2(cmd, opt, cb) {
|
|
210
|
+
if (typeof opt === "function") {
|
|
211
|
+
cb = opt;
|
|
212
|
+
opt = {};
|
|
213
|
+
}
|
|
214
|
+
var info = getPathInfo(cmd, opt);
|
|
215
|
+
var pathEnv = info.env;
|
|
216
|
+
var pathExt = info.ext;
|
|
217
|
+
var pathExtExe = info.extExe;
|
|
218
|
+
var found = [];
|
|
219
|
+
(function F(i, l) {
|
|
220
|
+
if (i === l) {
|
|
221
|
+
if (opt.all && found.length)
|
|
222
|
+
return cb(null, found);
|
|
223
|
+
else
|
|
224
|
+
return cb(getNotFoundError(cmd));
|
|
225
|
+
}
|
|
226
|
+
var pathPart = pathEnv[i];
|
|
227
|
+
if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
|
|
228
|
+
pathPart = pathPart.slice(1, -1);
|
|
229
|
+
var p = path.join(pathPart, cmd);
|
|
230
|
+
if (!pathPart && /^\.[\\\/]/.test(cmd)) {
|
|
231
|
+
p = cmd.slice(0, 2) + p;
|
|
232
|
+
}
|
|
233
|
+
;
|
|
234
|
+
(function E(ii, ll) {
|
|
235
|
+
if (ii === ll)
|
|
236
|
+
return F(i + 1, l);
|
|
237
|
+
var ext = pathExt[ii];
|
|
238
|
+
isexe(p + ext, { pathExt: pathExtExe }, function(er, is) {
|
|
239
|
+
if (!er && is) {
|
|
240
|
+
if (opt.all)
|
|
241
|
+
found.push(p + ext);
|
|
242
|
+
else
|
|
243
|
+
return cb(null, p + ext);
|
|
244
|
+
}
|
|
245
|
+
return E(ii + 1, ll);
|
|
246
|
+
});
|
|
247
|
+
})(0, pathExt.length);
|
|
248
|
+
})(0, pathEnv.length);
|
|
249
|
+
}
|
|
250
|
+
function whichSync(cmd, opt) {
|
|
251
|
+
opt = opt || {};
|
|
252
|
+
var info = getPathInfo(cmd, opt);
|
|
253
|
+
var pathEnv = info.env;
|
|
254
|
+
var pathExt = info.ext;
|
|
255
|
+
var pathExtExe = info.extExe;
|
|
256
|
+
var found = [];
|
|
257
|
+
for (var i = 0, l = pathEnv.length; i < l; i++) {
|
|
258
|
+
var pathPart = pathEnv[i];
|
|
259
|
+
if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"')
|
|
260
|
+
pathPart = pathPart.slice(1, -1);
|
|
261
|
+
var p = path.join(pathPart, cmd);
|
|
262
|
+
if (!pathPart && /^\.[\\\/]/.test(cmd)) {
|
|
263
|
+
p = cmd.slice(0, 2) + p;
|
|
264
|
+
}
|
|
265
|
+
for (var j = 0, ll = pathExt.length; j < ll; j++) {
|
|
266
|
+
var cur = p + pathExt[j];
|
|
267
|
+
var is;
|
|
268
|
+
try {
|
|
269
|
+
is = isexe.sync(cur, { pathExt: pathExtExe });
|
|
270
|
+
if (is) {
|
|
271
|
+
if (opt.all)
|
|
272
|
+
found.push(cur);
|
|
273
|
+
else
|
|
274
|
+
return cur;
|
|
275
|
+
}
|
|
276
|
+
} catch (ex) {
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
if (opt.all && found.length)
|
|
281
|
+
return found;
|
|
282
|
+
if (opt.nothrow)
|
|
283
|
+
return null;
|
|
284
|
+
throw getNotFoundError(cmd);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
// ../../node_modules/.pnpm/path-key@2.0.1/node_modules/path-key/index.js
|
|
290
|
+
var require_path_key = __commonJS({
|
|
291
|
+
"../../node_modules/.pnpm/path-key@2.0.1/node_modules/path-key/index.js"(exports, module2) {
|
|
292
|
+
"use strict";
|
|
293
|
+
module2.exports = (opts) => {
|
|
294
|
+
opts = opts || {};
|
|
295
|
+
const env = opts.env || process.env;
|
|
296
|
+
const platform = opts.platform || process.platform;
|
|
297
|
+
if (platform !== "win32") {
|
|
298
|
+
return "PATH";
|
|
299
|
+
}
|
|
300
|
+
return Object.keys(env).find((x) => x.toUpperCase() === "PATH") || "Path";
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
|
|
305
|
+
// ../../node_modules/.pnpm/cross-spawn@6.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js
|
|
306
|
+
var require_resolveCommand = __commonJS({
|
|
307
|
+
"../../node_modules/.pnpm/cross-spawn@6.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js"(exports, module2) {
|
|
308
|
+
"use strict";
|
|
309
|
+
var path = require("path");
|
|
310
|
+
var which2 = require_which();
|
|
311
|
+
var pathKey = require_path_key()();
|
|
312
|
+
function resolveCommandAttempt(parsed, withoutPathExt) {
|
|
313
|
+
const cwd = process.cwd();
|
|
314
|
+
const hasCustomCwd = parsed.options.cwd != null;
|
|
315
|
+
const shouldSwitchCwd = hasCustomCwd && process.chdir !== void 0;
|
|
316
|
+
if (shouldSwitchCwd) {
|
|
317
|
+
try {
|
|
318
|
+
process.chdir(parsed.options.cwd);
|
|
319
|
+
} catch (err) {
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
let resolved;
|
|
323
|
+
try {
|
|
324
|
+
resolved = which2.sync(parsed.command, {
|
|
325
|
+
path: (parsed.options.env || process.env)[pathKey],
|
|
326
|
+
pathExt: withoutPathExt ? path.delimiter : void 0
|
|
327
|
+
});
|
|
328
|
+
} catch (e) {
|
|
329
|
+
} finally {
|
|
330
|
+
if (shouldSwitchCwd) {
|
|
331
|
+
process.chdir(cwd);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
if (resolved) {
|
|
335
|
+
resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved);
|
|
336
|
+
}
|
|
337
|
+
return resolved;
|
|
338
|
+
}
|
|
339
|
+
function resolveCommand(parsed) {
|
|
340
|
+
return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);
|
|
341
|
+
}
|
|
342
|
+
module2.exports = resolveCommand;
|
|
343
|
+
}
|
|
344
|
+
});
|
|
345
|
+
|
|
346
|
+
// ../../node_modules/.pnpm/cross-spawn@6.0.6/node_modules/cross-spawn/lib/util/escape.js
|
|
347
|
+
var require_escape = __commonJS({
|
|
348
|
+
"../../node_modules/.pnpm/cross-spawn@6.0.6/node_modules/cross-spawn/lib/util/escape.js"(exports, module2) {
|
|
349
|
+
"use strict";
|
|
350
|
+
var metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g;
|
|
351
|
+
function escapeCommand(arg) {
|
|
352
|
+
arg = arg.replace(metaCharsRegExp, "^$1");
|
|
353
|
+
return arg;
|
|
354
|
+
}
|
|
355
|
+
function escapeArgument(arg, doubleEscapeMetaChars) {
|
|
356
|
+
arg = `${arg}`;
|
|
357
|
+
arg = arg.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"');
|
|
358
|
+
arg = arg.replace(/(?=(\\+?)?)\1$/, "$1$1");
|
|
359
|
+
arg = `"${arg}"`;
|
|
360
|
+
arg = arg.replace(metaCharsRegExp, "^$1");
|
|
361
|
+
if (doubleEscapeMetaChars) {
|
|
362
|
+
arg = arg.replace(metaCharsRegExp, "^$1");
|
|
363
|
+
}
|
|
364
|
+
return arg;
|
|
365
|
+
}
|
|
366
|
+
module2.exports.command = escapeCommand;
|
|
367
|
+
module2.exports.argument = escapeArgument;
|
|
368
|
+
}
|
|
369
|
+
});
|
|
370
|
+
|
|
371
|
+
// ../../node_modules/.pnpm/shebang-regex@1.0.0/node_modules/shebang-regex/index.js
|
|
372
|
+
var require_shebang_regex = __commonJS({
|
|
373
|
+
"../../node_modules/.pnpm/shebang-regex@1.0.0/node_modules/shebang-regex/index.js"(exports, module2) {
|
|
374
|
+
"use strict";
|
|
375
|
+
module2.exports = /^#!.*/;
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
|
|
379
|
+
// ../../node_modules/.pnpm/shebang-command@1.2.0/node_modules/shebang-command/index.js
|
|
380
|
+
var require_shebang_command = __commonJS({
|
|
381
|
+
"../../node_modules/.pnpm/shebang-command@1.2.0/node_modules/shebang-command/index.js"(exports, module2) {
|
|
382
|
+
"use strict";
|
|
383
|
+
var shebangRegex = require_shebang_regex();
|
|
384
|
+
module2.exports = function(str) {
|
|
385
|
+
var match = str.match(shebangRegex);
|
|
386
|
+
if (!match) {
|
|
387
|
+
return null;
|
|
388
|
+
}
|
|
389
|
+
var arr = match[0].replace(/#! ?/, "").split(" ");
|
|
390
|
+
var bin = arr[0].split("/").pop();
|
|
391
|
+
var arg = arr[1];
|
|
392
|
+
return bin === "env" ? arg : bin + (arg ? " " + arg : "");
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
});
|
|
396
|
+
|
|
397
|
+
// ../../node_modules/.pnpm/cross-spawn@6.0.6/node_modules/cross-spawn/lib/util/readShebang.js
|
|
398
|
+
var require_readShebang = __commonJS({
|
|
399
|
+
"../../node_modules/.pnpm/cross-spawn@6.0.6/node_modules/cross-spawn/lib/util/readShebang.js"(exports, module2) {
|
|
400
|
+
"use strict";
|
|
401
|
+
var fs2 = require("fs");
|
|
402
|
+
var shebangCommand = require_shebang_command();
|
|
403
|
+
function readShebang(command) {
|
|
404
|
+
const size = 150;
|
|
405
|
+
let buffer;
|
|
406
|
+
if (Buffer.alloc) {
|
|
407
|
+
buffer = Buffer.alloc(size);
|
|
408
|
+
} else {
|
|
409
|
+
buffer = new Buffer(size);
|
|
410
|
+
buffer.fill(0);
|
|
411
|
+
}
|
|
412
|
+
let fd;
|
|
413
|
+
try {
|
|
414
|
+
fd = fs2.openSync(command, "r");
|
|
415
|
+
fs2.readSync(fd, buffer, 0, size, 0);
|
|
416
|
+
fs2.closeSync(fd);
|
|
417
|
+
} catch (e) {
|
|
418
|
+
}
|
|
419
|
+
return shebangCommand(buffer.toString());
|
|
420
|
+
}
|
|
421
|
+
module2.exports = readShebang;
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
|
|
425
|
+
// ../../node_modules/.pnpm/semver@5.7.2/node_modules/semver/semver.js
|
|
426
|
+
var require_semver = __commonJS({
|
|
427
|
+
"../../node_modules/.pnpm/semver@5.7.2/node_modules/semver/semver.js"(exports, module2) {
|
|
428
|
+
exports = module2.exports = SemVer;
|
|
429
|
+
var debug3;
|
|
430
|
+
if (typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG)) {
|
|
431
|
+
debug3 = function() {
|
|
432
|
+
var args = Array.prototype.slice.call(arguments, 0);
|
|
433
|
+
args.unshift("SEMVER");
|
|
434
|
+
console.log.apply(console, args);
|
|
435
|
+
};
|
|
436
|
+
} else {
|
|
437
|
+
debug3 = function() {
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
exports.SEMVER_SPEC_VERSION = "2.0.0";
|
|
441
|
+
var MAX_LENGTH = 256;
|
|
442
|
+
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */
|
|
443
|
+
9007199254740991;
|
|
444
|
+
var MAX_SAFE_COMPONENT_LENGTH = 16;
|
|
445
|
+
var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;
|
|
446
|
+
var re = exports.re = [];
|
|
447
|
+
var safeRe = exports.safeRe = [];
|
|
448
|
+
var src = exports.src = [];
|
|
449
|
+
var R = 0;
|
|
450
|
+
var LETTERDASHNUMBER = "[a-zA-Z0-9-]";
|
|
451
|
+
var safeRegexReplacements = [
|
|
452
|
+
["\\s", 1],
|
|
453
|
+
["\\d", MAX_LENGTH],
|
|
454
|
+
[LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]
|
|
455
|
+
];
|
|
456
|
+
function makeSafeRe(value) {
|
|
457
|
+
for (var i2 = 0; i2 < safeRegexReplacements.length; i2++) {
|
|
458
|
+
var token = safeRegexReplacements[i2][0];
|
|
459
|
+
var max = safeRegexReplacements[i2][1];
|
|
460
|
+
value = value.split(token + "*").join(token + "{0," + max + "}").split(token + "+").join(token + "{1," + max + "}");
|
|
461
|
+
}
|
|
462
|
+
return value;
|
|
463
|
+
}
|
|
464
|
+
var NUMERICIDENTIFIER = R++;
|
|
465
|
+
src[NUMERICIDENTIFIER] = "0|[1-9]\\d*";
|
|
466
|
+
var NUMERICIDENTIFIERLOOSE = R++;
|
|
467
|
+
src[NUMERICIDENTIFIERLOOSE] = "\\d+";
|
|
468
|
+
var NONNUMERICIDENTIFIER = R++;
|
|
469
|
+
src[NONNUMERICIDENTIFIER] = "\\d*[a-zA-Z-]" + LETTERDASHNUMBER + "*";
|
|
470
|
+
var MAINVERSION = R++;
|
|
471
|
+
src[MAINVERSION] = "(" + src[NUMERICIDENTIFIER] + ")\\.(" + src[NUMERICIDENTIFIER] + ")\\.(" + src[NUMERICIDENTIFIER] + ")";
|
|
472
|
+
var MAINVERSIONLOOSE = R++;
|
|
473
|
+
src[MAINVERSIONLOOSE] = "(" + src[NUMERICIDENTIFIERLOOSE] + ")\\.(" + src[NUMERICIDENTIFIERLOOSE] + ")\\.(" + src[NUMERICIDENTIFIERLOOSE] + ")";
|
|
474
|
+
var PRERELEASEIDENTIFIER = R++;
|
|
475
|
+
src[PRERELEASEIDENTIFIER] = "(?:" + src[NUMERICIDENTIFIER] + "|" + src[NONNUMERICIDENTIFIER] + ")";
|
|
476
|
+
var PRERELEASEIDENTIFIERLOOSE = R++;
|
|
477
|
+
src[PRERELEASEIDENTIFIERLOOSE] = "(?:" + src[NUMERICIDENTIFIERLOOSE] + "|" + src[NONNUMERICIDENTIFIER] + ")";
|
|
478
|
+
var PRERELEASE = R++;
|
|
479
|
+
src[PRERELEASE] = "(?:-(" + src[PRERELEASEIDENTIFIER] + "(?:\\." + src[PRERELEASEIDENTIFIER] + ")*))";
|
|
480
|
+
var PRERELEASELOOSE = R++;
|
|
481
|
+
src[PRERELEASELOOSE] = "(?:-?(" + src[PRERELEASEIDENTIFIERLOOSE] + "(?:\\." + src[PRERELEASEIDENTIFIERLOOSE] + ")*))";
|
|
482
|
+
var BUILDIDENTIFIER = R++;
|
|
483
|
+
src[BUILDIDENTIFIER] = LETTERDASHNUMBER + "+";
|
|
484
|
+
var BUILD = R++;
|
|
485
|
+
src[BUILD] = "(?:\\+(" + src[BUILDIDENTIFIER] + "(?:\\." + src[BUILDIDENTIFIER] + ")*))";
|
|
486
|
+
var FULL = R++;
|
|
487
|
+
var FULLPLAIN = "v?" + src[MAINVERSION] + src[PRERELEASE] + "?" + src[BUILD] + "?";
|
|
488
|
+
src[FULL] = "^" + FULLPLAIN + "$";
|
|
489
|
+
var LOOSEPLAIN = "[v=\\s]*" + src[MAINVERSIONLOOSE] + src[PRERELEASELOOSE] + "?" + src[BUILD] + "?";
|
|
490
|
+
var LOOSE = R++;
|
|
491
|
+
src[LOOSE] = "^" + LOOSEPLAIN + "$";
|
|
492
|
+
var GTLT = R++;
|
|
493
|
+
src[GTLT] = "((?:<|>)?=?)";
|
|
494
|
+
var XRANGEIDENTIFIERLOOSE = R++;
|
|
495
|
+
src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + "|x|X|\\*";
|
|
496
|
+
var XRANGEIDENTIFIER = R++;
|
|
497
|
+
src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + "|x|X|\\*";
|
|
498
|
+
var XRANGEPLAIN = R++;
|
|
499
|
+
src[XRANGEPLAIN] = "[v=\\s]*(" + src[XRANGEIDENTIFIER] + ")(?:\\.(" + src[XRANGEIDENTIFIER] + ")(?:\\.(" + src[XRANGEIDENTIFIER] + ")(?:" + src[PRERELEASE] + ")?" + src[BUILD] + "?)?)?";
|
|
500
|
+
var XRANGEPLAINLOOSE = R++;
|
|
501
|
+
src[XRANGEPLAINLOOSE] = "[v=\\s]*(" + src[XRANGEIDENTIFIERLOOSE] + ")(?:\\.(" + src[XRANGEIDENTIFIERLOOSE] + ")(?:\\.(" + src[XRANGEIDENTIFIERLOOSE] + ")(?:" + src[PRERELEASELOOSE] + ")?" + src[BUILD] + "?)?)?";
|
|
502
|
+
var XRANGE = R++;
|
|
503
|
+
src[XRANGE] = "^" + src[GTLT] + "\\s*" + src[XRANGEPLAIN] + "$";
|
|
504
|
+
var XRANGELOOSE = R++;
|
|
505
|
+
src[XRANGELOOSE] = "^" + src[GTLT] + "\\s*" + src[XRANGEPLAINLOOSE] + "$";
|
|
506
|
+
var COERCE = R++;
|
|
507
|
+
src[COERCE] = "(?:^|[^\\d])(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "})(?:\\.(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "}))?(?:\\.(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "}))?(?:$|[^\\d])";
|
|
508
|
+
var LONETILDE = R++;
|
|
509
|
+
src[LONETILDE] = "(?:~>?)";
|
|
510
|
+
var TILDETRIM = R++;
|
|
511
|
+
src[TILDETRIM] = "(\\s*)" + src[LONETILDE] + "\\s+";
|
|
512
|
+
re[TILDETRIM] = new RegExp(src[TILDETRIM], "g");
|
|
513
|
+
safeRe[TILDETRIM] = new RegExp(makeSafeRe(src[TILDETRIM]), "g");
|
|
514
|
+
var tildeTrimReplace = "$1~";
|
|
515
|
+
var TILDE = R++;
|
|
516
|
+
src[TILDE] = "^" + src[LONETILDE] + src[XRANGEPLAIN] + "$";
|
|
517
|
+
var TILDELOOSE = R++;
|
|
518
|
+
src[TILDELOOSE] = "^" + src[LONETILDE] + src[XRANGEPLAINLOOSE] + "$";
|
|
519
|
+
var LONECARET = R++;
|
|
520
|
+
src[LONECARET] = "(?:\\^)";
|
|
521
|
+
var CARETTRIM = R++;
|
|
522
|
+
src[CARETTRIM] = "(\\s*)" + src[LONECARET] + "\\s+";
|
|
523
|
+
re[CARETTRIM] = new RegExp(src[CARETTRIM], "g");
|
|
524
|
+
safeRe[CARETTRIM] = new RegExp(makeSafeRe(src[CARETTRIM]), "g");
|
|
525
|
+
var caretTrimReplace = "$1^";
|
|
526
|
+
var CARET = R++;
|
|
527
|
+
src[CARET] = "^" + src[LONECARET] + src[XRANGEPLAIN] + "$";
|
|
528
|
+
var CARETLOOSE = R++;
|
|
529
|
+
src[CARETLOOSE] = "^" + src[LONECARET] + src[XRANGEPLAINLOOSE] + "$";
|
|
530
|
+
var COMPARATORLOOSE = R++;
|
|
531
|
+
src[COMPARATORLOOSE] = "^" + src[GTLT] + "\\s*(" + LOOSEPLAIN + ")$|^$";
|
|
532
|
+
var COMPARATOR = R++;
|
|
533
|
+
src[COMPARATOR] = "^" + src[GTLT] + "\\s*(" + FULLPLAIN + ")$|^$";
|
|
534
|
+
var COMPARATORTRIM = R++;
|
|
535
|
+
src[COMPARATORTRIM] = "(\\s*)" + src[GTLT] + "\\s*(" + LOOSEPLAIN + "|" + src[XRANGEPLAIN] + ")";
|
|
536
|
+
re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], "g");
|
|
537
|
+
safeRe[COMPARATORTRIM] = new RegExp(makeSafeRe(src[COMPARATORTRIM]), "g");
|
|
538
|
+
var comparatorTrimReplace = "$1$2$3";
|
|
539
|
+
var HYPHENRANGE = R++;
|
|
540
|
+
src[HYPHENRANGE] = "^\\s*(" + src[XRANGEPLAIN] + ")\\s+-\\s+(" + src[XRANGEPLAIN] + ")\\s*$";
|
|
541
|
+
var HYPHENRANGELOOSE = R++;
|
|
542
|
+
src[HYPHENRANGELOOSE] = "^\\s*(" + src[XRANGEPLAINLOOSE] + ")\\s+-\\s+(" + src[XRANGEPLAINLOOSE] + ")\\s*$";
|
|
543
|
+
var STAR = R++;
|
|
544
|
+
src[STAR] = "(<|>)?=?\\s*\\*";
|
|
545
|
+
for (i = 0; i < R; i++) {
|
|
546
|
+
debug3(i, src[i]);
|
|
547
|
+
if (!re[i]) {
|
|
548
|
+
re[i] = new RegExp(src[i]);
|
|
549
|
+
safeRe[i] = new RegExp(makeSafeRe(src[i]));
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
var i;
|
|
553
|
+
exports.parse = parse;
|
|
554
|
+
function parse(version2, options) {
|
|
555
|
+
if (!options || typeof options !== "object") {
|
|
556
|
+
options = {
|
|
557
|
+
loose: !!options,
|
|
558
|
+
includePrerelease: false
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
if (version2 instanceof SemVer) {
|
|
562
|
+
return version2;
|
|
563
|
+
}
|
|
564
|
+
if (typeof version2 !== "string") {
|
|
565
|
+
return null;
|
|
566
|
+
}
|
|
567
|
+
if (version2.length > MAX_LENGTH) {
|
|
568
|
+
return null;
|
|
569
|
+
}
|
|
570
|
+
var r = options.loose ? safeRe[LOOSE] : safeRe[FULL];
|
|
571
|
+
if (!r.test(version2)) {
|
|
572
|
+
return null;
|
|
573
|
+
}
|
|
574
|
+
try {
|
|
575
|
+
return new SemVer(version2, options);
|
|
576
|
+
} catch (er) {
|
|
577
|
+
return null;
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
exports.valid = valid;
|
|
581
|
+
function valid(version2, options) {
|
|
582
|
+
var v = parse(version2, options);
|
|
583
|
+
return v ? v.version : null;
|
|
584
|
+
}
|
|
585
|
+
exports.clean = clean;
|
|
586
|
+
function clean(version2, options) {
|
|
587
|
+
var s = parse(version2.trim().replace(/^[=v]+/, ""), options);
|
|
588
|
+
return s ? s.version : null;
|
|
589
|
+
}
|
|
590
|
+
exports.SemVer = SemVer;
|
|
591
|
+
function SemVer(version2, options) {
|
|
592
|
+
if (!options || typeof options !== "object") {
|
|
593
|
+
options = {
|
|
594
|
+
loose: !!options,
|
|
595
|
+
includePrerelease: false
|
|
596
|
+
};
|
|
597
|
+
}
|
|
598
|
+
if (version2 instanceof SemVer) {
|
|
599
|
+
if (version2.loose === options.loose) {
|
|
600
|
+
return version2;
|
|
601
|
+
} else {
|
|
602
|
+
version2 = version2.version;
|
|
603
|
+
}
|
|
604
|
+
} else if (typeof version2 !== "string") {
|
|
605
|
+
throw new TypeError("Invalid Version: " + version2);
|
|
606
|
+
}
|
|
607
|
+
if (version2.length > MAX_LENGTH) {
|
|
608
|
+
throw new TypeError("version is longer than " + MAX_LENGTH + " characters");
|
|
609
|
+
}
|
|
610
|
+
if (!(this instanceof SemVer)) {
|
|
611
|
+
return new SemVer(version2, options);
|
|
612
|
+
}
|
|
613
|
+
debug3("SemVer", version2, options);
|
|
614
|
+
this.options = options;
|
|
615
|
+
this.loose = !!options.loose;
|
|
616
|
+
var m = version2.trim().match(options.loose ? safeRe[LOOSE] : safeRe[FULL]);
|
|
617
|
+
if (!m) {
|
|
618
|
+
throw new TypeError("Invalid Version: " + version2);
|
|
619
|
+
}
|
|
620
|
+
this.raw = version2;
|
|
621
|
+
this.major = +m[1];
|
|
622
|
+
this.minor = +m[2];
|
|
623
|
+
this.patch = +m[3];
|
|
624
|
+
if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
|
|
625
|
+
throw new TypeError("Invalid major version");
|
|
626
|
+
}
|
|
627
|
+
if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
|
|
628
|
+
throw new TypeError("Invalid minor version");
|
|
629
|
+
}
|
|
630
|
+
if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
|
|
631
|
+
throw new TypeError("Invalid patch version");
|
|
632
|
+
}
|
|
633
|
+
if (!m[4]) {
|
|
634
|
+
this.prerelease = [];
|
|
635
|
+
} else {
|
|
636
|
+
this.prerelease = m[4].split(".").map(function(id) {
|
|
637
|
+
if (/^[0-9]+$/.test(id)) {
|
|
638
|
+
var num = +id;
|
|
639
|
+
if (num >= 0 && num < MAX_SAFE_INTEGER) {
|
|
640
|
+
return num;
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
return id;
|
|
644
|
+
});
|
|
645
|
+
}
|
|
646
|
+
this.build = m[5] ? m[5].split(".") : [];
|
|
647
|
+
this.format();
|
|
648
|
+
}
|
|
649
|
+
SemVer.prototype.format = function() {
|
|
650
|
+
this.version = this.major + "." + this.minor + "." + this.patch;
|
|
651
|
+
if (this.prerelease.length) {
|
|
652
|
+
this.version += "-" + this.prerelease.join(".");
|
|
653
|
+
}
|
|
654
|
+
return this.version;
|
|
655
|
+
};
|
|
656
|
+
SemVer.prototype.toString = function() {
|
|
657
|
+
return this.version;
|
|
658
|
+
};
|
|
659
|
+
SemVer.prototype.compare = function(other) {
|
|
660
|
+
debug3("SemVer.compare", this.version, this.options, other);
|
|
661
|
+
if (!(other instanceof SemVer)) {
|
|
662
|
+
other = new SemVer(other, this.options);
|
|
663
|
+
}
|
|
664
|
+
return this.compareMain(other) || this.comparePre(other);
|
|
665
|
+
};
|
|
666
|
+
SemVer.prototype.compareMain = function(other) {
|
|
667
|
+
if (!(other instanceof SemVer)) {
|
|
668
|
+
other = new SemVer(other, this.options);
|
|
669
|
+
}
|
|
670
|
+
return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);
|
|
671
|
+
};
|
|
672
|
+
SemVer.prototype.comparePre = function(other) {
|
|
673
|
+
if (!(other instanceof SemVer)) {
|
|
674
|
+
other = new SemVer(other, this.options);
|
|
675
|
+
}
|
|
676
|
+
if (this.prerelease.length && !other.prerelease.length) {
|
|
677
|
+
return -1;
|
|
678
|
+
} else if (!this.prerelease.length && other.prerelease.length) {
|
|
679
|
+
return 1;
|
|
680
|
+
} else if (!this.prerelease.length && !other.prerelease.length) {
|
|
681
|
+
return 0;
|
|
682
|
+
}
|
|
683
|
+
var i2 = 0;
|
|
684
|
+
do {
|
|
685
|
+
var a = this.prerelease[i2];
|
|
686
|
+
var b = other.prerelease[i2];
|
|
687
|
+
debug3("prerelease compare", i2, a, b);
|
|
688
|
+
if (a === void 0 && b === void 0) {
|
|
689
|
+
return 0;
|
|
690
|
+
} else if (b === void 0) {
|
|
691
|
+
return 1;
|
|
692
|
+
} else if (a === void 0) {
|
|
693
|
+
return -1;
|
|
694
|
+
} else if (a === b) {
|
|
695
|
+
continue;
|
|
696
|
+
} else {
|
|
697
|
+
return compareIdentifiers(a, b);
|
|
698
|
+
}
|
|
699
|
+
} while (++i2);
|
|
700
|
+
};
|
|
701
|
+
SemVer.prototype.inc = function(release, identifier) {
|
|
702
|
+
switch (release) {
|
|
703
|
+
case "premajor":
|
|
704
|
+
this.prerelease.length = 0;
|
|
705
|
+
this.patch = 0;
|
|
706
|
+
this.minor = 0;
|
|
707
|
+
this.major++;
|
|
708
|
+
this.inc("pre", identifier);
|
|
709
|
+
break;
|
|
710
|
+
case "preminor":
|
|
711
|
+
this.prerelease.length = 0;
|
|
712
|
+
this.patch = 0;
|
|
713
|
+
this.minor++;
|
|
714
|
+
this.inc("pre", identifier);
|
|
715
|
+
break;
|
|
716
|
+
case "prepatch":
|
|
717
|
+
this.prerelease.length = 0;
|
|
718
|
+
this.inc("patch", identifier);
|
|
719
|
+
this.inc("pre", identifier);
|
|
720
|
+
break;
|
|
721
|
+
case "prerelease":
|
|
722
|
+
if (this.prerelease.length === 0) {
|
|
723
|
+
this.inc("patch", identifier);
|
|
724
|
+
}
|
|
725
|
+
this.inc("pre", identifier);
|
|
726
|
+
break;
|
|
727
|
+
case "major":
|
|
728
|
+
if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {
|
|
729
|
+
this.major++;
|
|
730
|
+
}
|
|
731
|
+
this.minor = 0;
|
|
732
|
+
this.patch = 0;
|
|
733
|
+
this.prerelease = [];
|
|
734
|
+
break;
|
|
735
|
+
case "minor":
|
|
736
|
+
if (this.patch !== 0 || this.prerelease.length === 0) {
|
|
737
|
+
this.minor++;
|
|
738
|
+
}
|
|
739
|
+
this.patch = 0;
|
|
740
|
+
this.prerelease = [];
|
|
741
|
+
break;
|
|
742
|
+
case "patch":
|
|
743
|
+
if (this.prerelease.length === 0) {
|
|
744
|
+
this.patch++;
|
|
745
|
+
}
|
|
746
|
+
this.prerelease = [];
|
|
747
|
+
break;
|
|
748
|
+
case "pre":
|
|
749
|
+
if (this.prerelease.length === 0) {
|
|
750
|
+
this.prerelease = [0];
|
|
751
|
+
} else {
|
|
752
|
+
var i2 = this.prerelease.length;
|
|
753
|
+
while (--i2 >= 0) {
|
|
754
|
+
if (typeof this.prerelease[i2] === "number") {
|
|
755
|
+
this.prerelease[i2]++;
|
|
756
|
+
i2 = -2;
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
if (i2 === -1) {
|
|
760
|
+
this.prerelease.push(0);
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
if (identifier) {
|
|
764
|
+
if (this.prerelease[0] === identifier) {
|
|
765
|
+
if (isNaN(this.prerelease[1])) {
|
|
766
|
+
this.prerelease = [identifier, 0];
|
|
767
|
+
}
|
|
768
|
+
} else {
|
|
769
|
+
this.prerelease = [identifier, 0];
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
break;
|
|
773
|
+
default:
|
|
774
|
+
throw new Error("invalid increment argument: " + release);
|
|
775
|
+
}
|
|
776
|
+
this.format();
|
|
777
|
+
this.raw = this.version;
|
|
778
|
+
return this;
|
|
779
|
+
};
|
|
780
|
+
exports.inc = inc;
|
|
781
|
+
function inc(version2, release, loose, identifier) {
|
|
782
|
+
if (typeof loose === "string") {
|
|
783
|
+
identifier = loose;
|
|
784
|
+
loose = void 0;
|
|
785
|
+
}
|
|
786
|
+
try {
|
|
787
|
+
return new SemVer(version2, loose).inc(release, identifier).version;
|
|
788
|
+
} catch (er) {
|
|
789
|
+
return null;
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
exports.diff = diff;
|
|
793
|
+
function diff(version1, version2) {
|
|
794
|
+
if (eq(version1, version2)) {
|
|
795
|
+
return null;
|
|
796
|
+
} else {
|
|
797
|
+
var v1 = parse(version1);
|
|
798
|
+
var v2 = parse(version2);
|
|
799
|
+
var prefix = "";
|
|
800
|
+
if (v1.prerelease.length || v2.prerelease.length) {
|
|
801
|
+
prefix = "pre";
|
|
802
|
+
var defaultResult = "prerelease";
|
|
803
|
+
}
|
|
804
|
+
for (var key in v1) {
|
|
805
|
+
if (key === "major" || key === "minor" || key === "patch") {
|
|
806
|
+
if (v1[key] !== v2[key]) {
|
|
807
|
+
return prefix + key;
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
return defaultResult;
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
exports.compareIdentifiers = compareIdentifiers;
|
|
815
|
+
var numeric = /^[0-9]+$/;
|
|
816
|
+
function compareIdentifiers(a, b) {
|
|
817
|
+
var anum = numeric.test(a);
|
|
818
|
+
var bnum = numeric.test(b);
|
|
819
|
+
if (anum && bnum) {
|
|
820
|
+
a = +a;
|
|
821
|
+
b = +b;
|
|
822
|
+
}
|
|
823
|
+
return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;
|
|
824
|
+
}
|
|
825
|
+
exports.rcompareIdentifiers = rcompareIdentifiers;
|
|
826
|
+
function rcompareIdentifiers(a, b) {
|
|
827
|
+
return compareIdentifiers(b, a);
|
|
828
|
+
}
|
|
829
|
+
exports.major = major;
|
|
830
|
+
function major(a, loose) {
|
|
831
|
+
return new SemVer(a, loose).major;
|
|
832
|
+
}
|
|
833
|
+
exports.minor = minor;
|
|
834
|
+
function minor(a, loose) {
|
|
835
|
+
return new SemVer(a, loose).minor;
|
|
836
|
+
}
|
|
837
|
+
exports.patch = patch;
|
|
838
|
+
function patch(a, loose) {
|
|
839
|
+
return new SemVer(a, loose).patch;
|
|
840
|
+
}
|
|
841
|
+
exports.compare = compare;
|
|
842
|
+
function compare(a, b, loose) {
|
|
843
|
+
return new SemVer(a, loose).compare(new SemVer(b, loose));
|
|
844
|
+
}
|
|
845
|
+
exports.compareLoose = compareLoose;
|
|
846
|
+
function compareLoose(a, b) {
|
|
847
|
+
return compare(a, b, true);
|
|
848
|
+
}
|
|
849
|
+
exports.rcompare = rcompare;
|
|
850
|
+
function rcompare(a, b, loose) {
|
|
851
|
+
return compare(b, a, loose);
|
|
852
|
+
}
|
|
853
|
+
exports.sort = sort;
|
|
854
|
+
function sort(list, loose) {
|
|
855
|
+
return list.sort(function(a, b) {
|
|
856
|
+
return exports.compare(a, b, loose);
|
|
857
|
+
});
|
|
858
|
+
}
|
|
859
|
+
exports.rsort = rsort;
|
|
860
|
+
function rsort(list, loose) {
|
|
861
|
+
return list.sort(function(a, b) {
|
|
862
|
+
return exports.rcompare(a, b, loose);
|
|
863
|
+
});
|
|
864
|
+
}
|
|
865
|
+
exports.gt = gt;
|
|
866
|
+
function gt(a, b, loose) {
|
|
867
|
+
return compare(a, b, loose) > 0;
|
|
868
|
+
}
|
|
869
|
+
exports.lt = lt;
|
|
870
|
+
function lt(a, b, loose) {
|
|
871
|
+
return compare(a, b, loose) < 0;
|
|
872
|
+
}
|
|
873
|
+
exports.eq = eq;
|
|
874
|
+
function eq(a, b, loose) {
|
|
875
|
+
return compare(a, b, loose) === 0;
|
|
876
|
+
}
|
|
877
|
+
exports.neq = neq;
|
|
878
|
+
function neq(a, b, loose) {
|
|
879
|
+
return compare(a, b, loose) !== 0;
|
|
880
|
+
}
|
|
881
|
+
exports.gte = gte;
|
|
882
|
+
function gte(a, b, loose) {
|
|
883
|
+
return compare(a, b, loose) >= 0;
|
|
884
|
+
}
|
|
885
|
+
exports.lte = lte;
|
|
886
|
+
function lte(a, b, loose) {
|
|
887
|
+
return compare(a, b, loose) <= 0;
|
|
888
|
+
}
|
|
889
|
+
exports.cmp = cmp;
|
|
890
|
+
function cmp(a, op, b, loose) {
|
|
891
|
+
switch (op) {
|
|
892
|
+
case "===":
|
|
893
|
+
if (typeof a === "object")
|
|
894
|
+
a = a.version;
|
|
895
|
+
if (typeof b === "object")
|
|
896
|
+
b = b.version;
|
|
897
|
+
return a === b;
|
|
898
|
+
case "!==":
|
|
899
|
+
if (typeof a === "object")
|
|
900
|
+
a = a.version;
|
|
901
|
+
if (typeof b === "object")
|
|
902
|
+
b = b.version;
|
|
903
|
+
return a !== b;
|
|
904
|
+
case "":
|
|
905
|
+
case "=":
|
|
906
|
+
case "==":
|
|
907
|
+
return eq(a, b, loose);
|
|
908
|
+
case "!=":
|
|
909
|
+
return neq(a, b, loose);
|
|
910
|
+
case ">":
|
|
911
|
+
return gt(a, b, loose);
|
|
912
|
+
case ">=":
|
|
913
|
+
return gte(a, b, loose);
|
|
914
|
+
case "<":
|
|
915
|
+
return lt(a, b, loose);
|
|
916
|
+
case "<=":
|
|
917
|
+
return lte(a, b, loose);
|
|
918
|
+
default:
|
|
919
|
+
throw new TypeError("Invalid operator: " + op);
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
exports.Comparator = Comparator;
|
|
923
|
+
function Comparator(comp, options) {
|
|
924
|
+
if (!options || typeof options !== "object") {
|
|
925
|
+
options = {
|
|
926
|
+
loose: !!options,
|
|
927
|
+
includePrerelease: false
|
|
928
|
+
};
|
|
929
|
+
}
|
|
930
|
+
if (comp instanceof Comparator) {
|
|
931
|
+
if (comp.loose === !!options.loose) {
|
|
932
|
+
return comp;
|
|
933
|
+
} else {
|
|
934
|
+
comp = comp.value;
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
if (!(this instanceof Comparator)) {
|
|
938
|
+
return new Comparator(comp, options);
|
|
939
|
+
}
|
|
940
|
+
comp = comp.trim().split(/\s+/).join(" ");
|
|
941
|
+
debug3("comparator", comp, options);
|
|
942
|
+
this.options = options;
|
|
943
|
+
this.loose = !!options.loose;
|
|
944
|
+
this.parse(comp);
|
|
945
|
+
if (this.semver === ANY) {
|
|
946
|
+
this.value = "";
|
|
947
|
+
} else {
|
|
948
|
+
this.value = this.operator + this.semver.version;
|
|
949
|
+
}
|
|
950
|
+
debug3("comp", this);
|
|
951
|
+
}
|
|
952
|
+
var ANY = {};
|
|
953
|
+
Comparator.prototype.parse = function(comp) {
|
|
954
|
+
var r = this.options.loose ? safeRe[COMPARATORLOOSE] : safeRe[COMPARATOR];
|
|
955
|
+
var m = comp.match(r);
|
|
956
|
+
if (!m) {
|
|
957
|
+
throw new TypeError("Invalid comparator: " + comp);
|
|
958
|
+
}
|
|
959
|
+
this.operator = m[1];
|
|
960
|
+
if (this.operator === "=") {
|
|
961
|
+
this.operator = "";
|
|
962
|
+
}
|
|
963
|
+
if (!m[2]) {
|
|
964
|
+
this.semver = ANY;
|
|
965
|
+
} else {
|
|
966
|
+
this.semver = new SemVer(m[2], this.options.loose);
|
|
967
|
+
}
|
|
968
|
+
};
|
|
969
|
+
Comparator.prototype.toString = function() {
|
|
970
|
+
return this.value;
|
|
971
|
+
};
|
|
972
|
+
Comparator.prototype.test = function(version2) {
|
|
973
|
+
debug3("Comparator.test", version2, this.options.loose);
|
|
974
|
+
if (this.semver === ANY) {
|
|
975
|
+
return true;
|
|
976
|
+
}
|
|
977
|
+
if (typeof version2 === "string") {
|
|
978
|
+
version2 = new SemVer(version2, this.options);
|
|
979
|
+
}
|
|
980
|
+
return cmp(version2, this.operator, this.semver, this.options);
|
|
981
|
+
};
|
|
982
|
+
Comparator.prototype.intersects = function(comp, options) {
|
|
983
|
+
if (!(comp instanceof Comparator)) {
|
|
984
|
+
throw new TypeError("a Comparator is required");
|
|
985
|
+
}
|
|
986
|
+
if (!options || typeof options !== "object") {
|
|
987
|
+
options = {
|
|
988
|
+
loose: !!options,
|
|
989
|
+
includePrerelease: false
|
|
990
|
+
};
|
|
991
|
+
}
|
|
992
|
+
var rangeTmp;
|
|
993
|
+
if (this.operator === "") {
|
|
994
|
+
rangeTmp = new Range(comp.value, options);
|
|
995
|
+
return satisfies(this.value, rangeTmp, options);
|
|
996
|
+
} else if (comp.operator === "") {
|
|
997
|
+
rangeTmp = new Range(this.value, options);
|
|
998
|
+
return satisfies(comp.semver, rangeTmp, options);
|
|
999
|
+
}
|
|
1000
|
+
var sameDirectionIncreasing = (this.operator === ">=" || this.operator === ">") && (comp.operator === ">=" || comp.operator === ">");
|
|
1001
|
+
var sameDirectionDecreasing = (this.operator === "<=" || this.operator === "<") && (comp.operator === "<=" || comp.operator === "<");
|
|
1002
|
+
var sameSemVer = this.semver.version === comp.semver.version;
|
|
1003
|
+
var differentDirectionsInclusive = (this.operator === ">=" || this.operator === "<=") && (comp.operator === ">=" || comp.operator === "<=");
|
|
1004
|
+
var oppositeDirectionsLessThan = cmp(this.semver, "<", comp.semver, options) && ((this.operator === ">=" || this.operator === ">") && (comp.operator === "<=" || comp.operator === "<"));
|
|
1005
|
+
var oppositeDirectionsGreaterThan = cmp(this.semver, ">", comp.semver, options) && ((this.operator === "<=" || this.operator === "<") && (comp.operator === ">=" || comp.operator === ">"));
|
|
1006
|
+
return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;
|
|
1007
|
+
};
|
|
1008
|
+
exports.Range = Range;
|
|
1009
|
+
function Range(range, options) {
|
|
1010
|
+
if (!options || typeof options !== "object") {
|
|
1011
|
+
options = {
|
|
1012
|
+
loose: !!options,
|
|
1013
|
+
includePrerelease: false
|
|
1014
|
+
};
|
|
1015
|
+
}
|
|
1016
|
+
if (range instanceof Range) {
|
|
1017
|
+
if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) {
|
|
1018
|
+
return range;
|
|
1019
|
+
} else {
|
|
1020
|
+
return new Range(range.raw, options);
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
if (range instanceof Comparator) {
|
|
1024
|
+
return new Range(range.value, options);
|
|
1025
|
+
}
|
|
1026
|
+
if (!(this instanceof Range)) {
|
|
1027
|
+
return new Range(range, options);
|
|
1028
|
+
}
|
|
1029
|
+
this.options = options;
|
|
1030
|
+
this.loose = !!options.loose;
|
|
1031
|
+
this.includePrerelease = !!options.includePrerelease;
|
|
1032
|
+
this.raw = range.trim().split(/\s+/).join(" ");
|
|
1033
|
+
this.set = this.raw.split("||").map(function(range2) {
|
|
1034
|
+
return this.parseRange(range2.trim());
|
|
1035
|
+
}, this).filter(function(c) {
|
|
1036
|
+
return c.length;
|
|
1037
|
+
});
|
|
1038
|
+
if (!this.set.length) {
|
|
1039
|
+
throw new TypeError("Invalid SemVer Range: " + this.raw);
|
|
1040
|
+
}
|
|
1041
|
+
this.format();
|
|
1042
|
+
}
|
|
1043
|
+
Range.prototype.format = function() {
|
|
1044
|
+
this.range = this.set.map(function(comps) {
|
|
1045
|
+
return comps.join(" ").trim();
|
|
1046
|
+
}).join("||").trim();
|
|
1047
|
+
return this.range;
|
|
1048
|
+
};
|
|
1049
|
+
Range.prototype.toString = function() {
|
|
1050
|
+
return this.range;
|
|
1051
|
+
};
|
|
1052
|
+
Range.prototype.parseRange = function(range) {
|
|
1053
|
+
var loose = this.options.loose;
|
|
1054
|
+
var hr = loose ? safeRe[HYPHENRANGELOOSE] : safeRe[HYPHENRANGE];
|
|
1055
|
+
range = range.replace(hr, hyphenReplace);
|
|
1056
|
+
debug3("hyphen replace", range);
|
|
1057
|
+
range = range.replace(safeRe[COMPARATORTRIM], comparatorTrimReplace);
|
|
1058
|
+
debug3("comparator trim", range, safeRe[COMPARATORTRIM]);
|
|
1059
|
+
range = range.replace(safeRe[TILDETRIM], tildeTrimReplace);
|
|
1060
|
+
range = range.replace(safeRe[CARETTRIM], caretTrimReplace);
|
|
1061
|
+
var compRe = loose ? safeRe[COMPARATORLOOSE] : safeRe[COMPARATOR];
|
|
1062
|
+
var set = range.split(" ").map(function(comp) {
|
|
1063
|
+
return parseComparator(comp, this.options);
|
|
1064
|
+
}, this).join(" ").split(/\s+/);
|
|
1065
|
+
if (this.options.loose) {
|
|
1066
|
+
set = set.filter(function(comp) {
|
|
1067
|
+
return !!comp.match(compRe);
|
|
1068
|
+
});
|
|
1069
|
+
}
|
|
1070
|
+
set = set.map(function(comp) {
|
|
1071
|
+
return new Comparator(comp, this.options);
|
|
1072
|
+
}, this);
|
|
1073
|
+
return set;
|
|
1074
|
+
};
|
|
1075
|
+
Range.prototype.intersects = function(range, options) {
|
|
1076
|
+
if (!(range instanceof Range)) {
|
|
1077
|
+
throw new TypeError("a Range is required");
|
|
1078
|
+
}
|
|
1079
|
+
return this.set.some(function(thisComparators) {
|
|
1080
|
+
return thisComparators.every(function(thisComparator) {
|
|
1081
|
+
return range.set.some(function(rangeComparators) {
|
|
1082
|
+
return rangeComparators.every(function(rangeComparator) {
|
|
1083
|
+
return thisComparator.intersects(rangeComparator, options);
|
|
1084
|
+
});
|
|
1085
|
+
});
|
|
1086
|
+
});
|
|
1087
|
+
});
|
|
1088
|
+
};
|
|
1089
|
+
exports.toComparators = toComparators;
|
|
1090
|
+
function toComparators(range, options) {
|
|
1091
|
+
return new Range(range, options).set.map(function(comp) {
|
|
1092
|
+
return comp.map(function(c) {
|
|
1093
|
+
return c.value;
|
|
1094
|
+
}).join(" ").trim().split(" ");
|
|
1095
|
+
});
|
|
1096
|
+
}
|
|
1097
|
+
function parseComparator(comp, options) {
|
|
1098
|
+
debug3("comp", comp, options);
|
|
1099
|
+
comp = replaceCarets(comp, options);
|
|
1100
|
+
debug3("caret", comp);
|
|
1101
|
+
comp = replaceTildes(comp, options);
|
|
1102
|
+
debug3("tildes", comp);
|
|
1103
|
+
comp = replaceXRanges(comp, options);
|
|
1104
|
+
debug3("xrange", comp);
|
|
1105
|
+
comp = replaceStars(comp, options);
|
|
1106
|
+
debug3("stars", comp);
|
|
1107
|
+
return comp;
|
|
1108
|
+
}
|
|
1109
|
+
function isX(id) {
|
|
1110
|
+
return !id || id.toLowerCase() === "x" || id === "*";
|
|
1111
|
+
}
|
|
1112
|
+
function replaceTildes(comp, options) {
|
|
1113
|
+
return comp.trim().split(/\s+/).map(function(comp2) {
|
|
1114
|
+
return replaceTilde(comp2, options);
|
|
1115
|
+
}).join(" ");
|
|
1116
|
+
}
|
|
1117
|
+
function replaceTilde(comp, options) {
|
|
1118
|
+
var r = options.loose ? safeRe[TILDELOOSE] : safeRe[TILDE];
|
|
1119
|
+
return comp.replace(r, function(_, M, m, p, pr) {
|
|
1120
|
+
debug3("tilde", comp, _, M, m, p, pr);
|
|
1121
|
+
var ret;
|
|
1122
|
+
if (isX(M)) {
|
|
1123
|
+
ret = "";
|
|
1124
|
+
} else if (isX(m)) {
|
|
1125
|
+
ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0";
|
|
1126
|
+
} else if (isX(p)) {
|
|
1127
|
+
ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0";
|
|
1128
|
+
} else if (pr) {
|
|
1129
|
+
debug3("replaceTilde pr", pr);
|
|
1130
|
+
ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + (+m + 1) + ".0";
|
|
1131
|
+
} else {
|
|
1132
|
+
ret = ">=" + M + "." + m + "." + p + " <" + M + "." + (+m + 1) + ".0";
|
|
1133
|
+
}
|
|
1134
|
+
debug3("tilde return", ret);
|
|
1135
|
+
return ret;
|
|
1136
|
+
});
|
|
1137
|
+
}
|
|
1138
|
+
function replaceCarets(comp, options) {
|
|
1139
|
+
return comp.trim().split(/\s+/).map(function(comp2) {
|
|
1140
|
+
return replaceCaret(comp2, options);
|
|
1141
|
+
}).join(" ");
|
|
1142
|
+
}
|
|
1143
|
+
function replaceCaret(comp, options) {
|
|
1144
|
+
debug3("caret", comp, options);
|
|
1145
|
+
var r = options.loose ? safeRe[CARETLOOSE] : safeRe[CARET];
|
|
1146
|
+
return comp.replace(r, function(_, M, m, p, pr) {
|
|
1147
|
+
debug3("caret", comp, _, M, m, p, pr);
|
|
1148
|
+
var ret;
|
|
1149
|
+
if (isX(M)) {
|
|
1150
|
+
ret = "";
|
|
1151
|
+
} else if (isX(m)) {
|
|
1152
|
+
ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0";
|
|
1153
|
+
} else if (isX(p)) {
|
|
1154
|
+
if (M === "0") {
|
|
1155
|
+
ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0";
|
|
1156
|
+
} else {
|
|
1157
|
+
ret = ">=" + M + "." + m + ".0 <" + (+M + 1) + ".0.0";
|
|
1158
|
+
}
|
|
1159
|
+
} else if (pr) {
|
|
1160
|
+
debug3("replaceCaret pr", pr);
|
|
1161
|
+
if (M === "0") {
|
|
1162
|
+
if (m === "0") {
|
|
1163
|
+
ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + m + "." + (+p + 1);
|
|
1164
|
+
} else {
|
|
1165
|
+
ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + (+m + 1) + ".0";
|
|
1166
|
+
}
|
|
1167
|
+
} else {
|
|
1168
|
+
ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + (+M + 1) + ".0.0";
|
|
1169
|
+
}
|
|
1170
|
+
} else {
|
|
1171
|
+
debug3("no pr");
|
|
1172
|
+
if (M === "0") {
|
|
1173
|
+
if (m === "0") {
|
|
1174
|
+
ret = ">=" + M + "." + m + "." + p + " <" + M + "." + m + "." + (+p + 1);
|
|
1175
|
+
} else {
|
|
1176
|
+
ret = ">=" + M + "." + m + "." + p + " <" + M + "." + (+m + 1) + ".0";
|
|
1177
|
+
}
|
|
1178
|
+
} else {
|
|
1179
|
+
ret = ">=" + M + "." + m + "." + p + " <" + (+M + 1) + ".0.0";
|
|
1180
|
+
}
|
|
1181
|
+
}
|
|
1182
|
+
debug3("caret return", ret);
|
|
1183
|
+
return ret;
|
|
1184
|
+
});
|
|
1185
|
+
}
|
|
1186
|
+
function replaceXRanges(comp, options) {
|
|
1187
|
+
debug3("replaceXRanges", comp, options);
|
|
1188
|
+
return comp.split(/\s+/).map(function(comp2) {
|
|
1189
|
+
return replaceXRange(comp2, options);
|
|
1190
|
+
}).join(" ");
|
|
1191
|
+
}
|
|
1192
|
+
function replaceXRange(comp, options) {
|
|
1193
|
+
comp = comp.trim();
|
|
1194
|
+
var r = options.loose ? safeRe[XRANGELOOSE] : safeRe[XRANGE];
|
|
1195
|
+
return comp.replace(r, function(ret, gtlt, M, m, p, pr) {
|
|
1196
|
+
debug3("xRange", comp, ret, gtlt, M, m, p, pr);
|
|
1197
|
+
var xM = isX(M);
|
|
1198
|
+
var xm = xM || isX(m);
|
|
1199
|
+
var xp = xm || isX(p);
|
|
1200
|
+
var anyX = xp;
|
|
1201
|
+
if (gtlt === "=" && anyX) {
|
|
1202
|
+
gtlt = "";
|
|
1203
|
+
}
|
|
1204
|
+
if (xM) {
|
|
1205
|
+
if (gtlt === ">" || gtlt === "<") {
|
|
1206
|
+
ret = "<0.0.0";
|
|
1207
|
+
} else {
|
|
1208
|
+
ret = "*";
|
|
1209
|
+
}
|
|
1210
|
+
} else if (gtlt && anyX) {
|
|
1211
|
+
if (xm) {
|
|
1212
|
+
m = 0;
|
|
1213
|
+
}
|
|
1214
|
+
p = 0;
|
|
1215
|
+
if (gtlt === ">") {
|
|
1216
|
+
gtlt = ">=";
|
|
1217
|
+
if (xm) {
|
|
1218
|
+
M = +M + 1;
|
|
1219
|
+
m = 0;
|
|
1220
|
+
p = 0;
|
|
1221
|
+
} else {
|
|
1222
|
+
m = +m + 1;
|
|
1223
|
+
p = 0;
|
|
1224
|
+
}
|
|
1225
|
+
} else if (gtlt === "<=") {
|
|
1226
|
+
gtlt = "<";
|
|
1227
|
+
if (xm) {
|
|
1228
|
+
M = +M + 1;
|
|
1229
|
+
} else {
|
|
1230
|
+
m = +m + 1;
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1233
|
+
ret = gtlt + M + "." + m + "." + p;
|
|
1234
|
+
} else if (xm) {
|
|
1235
|
+
ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0";
|
|
1236
|
+
} else if (xp) {
|
|
1237
|
+
ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0";
|
|
1238
|
+
}
|
|
1239
|
+
debug3("xRange return", ret);
|
|
1240
|
+
return ret;
|
|
1241
|
+
});
|
|
1242
|
+
}
|
|
1243
|
+
function replaceStars(comp, options) {
|
|
1244
|
+
debug3("replaceStars", comp, options);
|
|
1245
|
+
return comp.trim().replace(safeRe[STAR], "");
|
|
1246
|
+
}
|
|
1247
|
+
function hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {
|
|
1248
|
+
if (isX(fM)) {
|
|
1249
|
+
from = "";
|
|
1250
|
+
} else if (isX(fm)) {
|
|
1251
|
+
from = ">=" + fM + ".0.0";
|
|
1252
|
+
} else if (isX(fp)) {
|
|
1253
|
+
from = ">=" + fM + "." + fm + ".0";
|
|
1254
|
+
} else {
|
|
1255
|
+
from = ">=" + from;
|
|
1256
|
+
}
|
|
1257
|
+
if (isX(tM)) {
|
|
1258
|
+
to = "";
|
|
1259
|
+
} else if (isX(tm)) {
|
|
1260
|
+
to = "<" + (+tM + 1) + ".0.0";
|
|
1261
|
+
} else if (isX(tp)) {
|
|
1262
|
+
to = "<" + tM + "." + (+tm + 1) + ".0";
|
|
1263
|
+
} else if (tpr) {
|
|
1264
|
+
to = "<=" + tM + "." + tm + "." + tp + "-" + tpr;
|
|
1265
|
+
} else {
|
|
1266
|
+
to = "<=" + to;
|
|
1267
|
+
}
|
|
1268
|
+
return (from + " " + to).trim();
|
|
1269
|
+
}
|
|
1270
|
+
Range.prototype.test = function(version2) {
|
|
1271
|
+
if (!version2) {
|
|
1272
|
+
return false;
|
|
1273
|
+
}
|
|
1274
|
+
if (typeof version2 === "string") {
|
|
1275
|
+
version2 = new SemVer(version2, this.options);
|
|
1276
|
+
}
|
|
1277
|
+
for (var i2 = 0; i2 < this.set.length; i2++) {
|
|
1278
|
+
if (testSet(this.set[i2], version2, this.options)) {
|
|
1279
|
+
return true;
|
|
1280
|
+
}
|
|
1281
|
+
}
|
|
1282
|
+
return false;
|
|
1283
|
+
};
|
|
1284
|
+
function testSet(set, version2, options) {
|
|
1285
|
+
for (var i2 = 0; i2 < set.length; i2++) {
|
|
1286
|
+
if (!set[i2].test(version2)) {
|
|
1287
|
+
return false;
|
|
1288
|
+
}
|
|
1289
|
+
}
|
|
1290
|
+
if (version2.prerelease.length && !options.includePrerelease) {
|
|
1291
|
+
for (i2 = 0; i2 < set.length; i2++) {
|
|
1292
|
+
debug3(set[i2].semver);
|
|
1293
|
+
if (set[i2].semver === ANY) {
|
|
1294
|
+
continue;
|
|
1295
|
+
}
|
|
1296
|
+
if (set[i2].semver.prerelease.length > 0) {
|
|
1297
|
+
var allowed = set[i2].semver;
|
|
1298
|
+
if (allowed.major === version2.major && allowed.minor === version2.minor && allowed.patch === version2.patch) {
|
|
1299
|
+
return true;
|
|
1300
|
+
}
|
|
1301
|
+
}
|
|
1302
|
+
}
|
|
1303
|
+
return false;
|
|
1304
|
+
}
|
|
1305
|
+
return true;
|
|
1306
|
+
}
|
|
1307
|
+
exports.satisfies = satisfies;
|
|
1308
|
+
function satisfies(version2, range, options) {
|
|
1309
|
+
try {
|
|
1310
|
+
range = new Range(range, options);
|
|
1311
|
+
} catch (er) {
|
|
1312
|
+
return false;
|
|
1313
|
+
}
|
|
1314
|
+
return range.test(version2);
|
|
1315
|
+
}
|
|
1316
|
+
exports.maxSatisfying = maxSatisfying;
|
|
1317
|
+
function maxSatisfying(versions, range, options) {
|
|
1318
|
+
var max = null;
|
|
1319
|
+
var maxSV = null;
|
|
1320
|
+
try {
|
|
1321
|
+
var rangeObj = new Range(range, options);
|
|
1322
|
+
} catch (er) {
|
|
1323
|
+
return null;
|
|
1324
|
+
}
|
|
1325
|
+
versions.forEach(function(v) {
|
|
1326
|
+
if (rangeObj.test(v)) {
|
|
1327
|
+
if (!max || maxSV.compare(v) === -1) {
|
|
1328
|
+
max = v;
|
|
1329
|
+
maxSV = new SemVer(max, options);
|
|
1330
|
+
}
|
|
1331
|
+
}
|
|
1332
|
+
});
|
|
1333
|
+
return max;
|
|
1334
|
+
}
|
|
1335
|
+
exports.minSatisfying = minSatisfying;
|
|
1336
|
+
function minSatisfying(versions, range, options) {
|
|
1337
|
+
var min = null;
|
|
1338
|
+
var minSV = null;
|
|
1339
|
+
try {
|
|
1340
|
+
var rangeObj = new Range(range, options);
|
|
1341
|
+
} catch (er) {
|
|
1342
|
+
return null;
|
|
1343
|
+
}
|
|
1344
|
+
versions.forEach(function(v) {
|
|
1345
|
+
if (rangeObj.test(v)) {
|
|
1346
|
+
if (!min || minSV.compare(v) === 1) {
|
|
1347
|
+
min = v;
|
|
1348
|
+
minSV = new SemVer(min, options);
|
|
1349
|
+
}
|
|
1350
|
+
}
|
|
1351
|
+
});
|
|
1352
|
+
return min;
|
|
1353
|
+
}
|
|
1354
|
+
exports.minVersion = minVersion;
|
|
1355
|
+
function minVersion(range, loose) {
|
|
1356
|
+
range = new Range(range, loose);
|
|
1357
|
+
var minver = new SemVer("0.0.0");
|
|
1358
|
+
if (range.test(minver)) {
|
|
1359
|
+
return minver;
|
|
1360
|
+
}
|
|
1361
|
+
minver = new SemVer("0.0.0-0");
|
|
1362
|
+
if (range.test(minver)) {
|
|
1363
|
+
return minver;
|
|
1364
|
+
}
|
|
1365
|
+
minver = null;
|
|
1366
|
+
for (var i2 = 0; i2 < range.set.length; ++i2) {
|
|
1367
|
+
var comparators = range.set[i2];
|
|
1368
|
+
comparators.forEach(function(comparator) {
|
|
1369
|
+
var compver = new SemVer(comparator.semver.version);
|
|
1370
|
+
switch (comparator.operator) {
|
|
1371
|
+
case ">":
|
|
1372
|
+
if (compver.prerelease.length === 0) {
|
|
1373
|
+
compver.patch++;
|
|
1374
|
+
} else {
|
|
1375
|
+
compver.prerelease.push(0);
|
|
1376
|
+
}
|
|
1377
|
+
compver.raw = compver.format();
|
|
1378
|
+
case "":
|
|
1379
|
+
case ">=":
|
|
1380
|
+
if (!minver || gt(minver, compver)) {
|
|
1381
|
+
minver = compver;
|
|
1382
|
+
}
|
|
1383
|
+
break;
|
|
1384
|
+
case "<":
|
|
1385
|
+
case "<=":
|
|
1386
|
+
break;
|
|
1387
|
+
default:
|
|
1388
|
+
throw new Error("Unexpected operation: " + comparator.operator);
|
|
1389
|
+
}
|
|
1390
|
+
});
|
|
1391
|
+
}
|
|
1392
|
+
if (minver && range.test(minver)) {
|
|
1393
|
+
return minver;
|
|
1394
|
+
}
|
|
1395
|
+
return null;
|
|
1396
|
+
}
|
|
1397
|
+
exports.validRange = validRange;
|
|
1398
|
+
function validRange(range, options) {
|
|
1399
|
+
try {
|
|
1400
|
+
return new Range(range, options).range || "*";
|
|
1401
|
+
} catch (er) {
|
|
1402
|
+
return null;
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
exports.ltr = ltr;
|
|
1406
|
+
function ltr(version2, range, options) {
|
|
1407
|
+
return outside(version2, range, "<", options);
|
|
1408
|
+
}
|
|
1409
|
+
exports.gtr = gtr;
|
|
1410
|
+
function gtr(version2, range, options) {
|
|
1411
|
+
return outside(version2, range, ">", options);
|
|
1412
|
+
}
|
|
1413
|
+
exports.outside = outside;
|
|
1414
|
+
function outside(version2, range, hilo, options) {
|
|
1415
|
+
version2 = new SemVer(version2, options);
|
|
1416
|
+
range = new Range(range, options);
|
|
1417
|
+
var gtfn, ltefn, ltfn, comp, ecomp;
|
|
1418
|
+
switch (hilo) {
|
|
1419
|
+
case ">":
|
|
1420
|
+
gtfn = gt;
|
|
1421
|
+
ltefn = lte;
|
|
1422
|
+
ltfn = lt;
|
|
1423
|
+
comp = ">";
|
|
1424
|
+
ecomp = ">=";
|
|
1425
|
+
break;
|
|
1426
|
+
case "<":
|
|
1427
|
+
gtfn = lt;
|
|
1428
|
+
ltefn = gte;
|
|
1429
|
+
ltfn = gt;
|
|
1430
|
+
comp = "<";
|
|
1431
|
+
ecomp = "<=";
|
|
1432
|
+
break;
|
|
1433
|
+
default:
|
|
1434
|
+
throw new TypeError('Must provide a hilo val of "<" or ">"');
|
|
1435
|
+
}
|
|
1436
|
+
if (satisfies(version2, range, options)) {
|
|
1437
|
+
return false;
|
|
1438
|
+
}
|
|
1439
|
+
for (var i2 = 0; i2 < range.set.length; ++i2) {
|
|
1440
|
+
var comparators = range.set[i2];
|
|
1441
|
+
var high = null;
|
|
1442
|
+
var low = null;
|
|
1443
|
+
comparators.forEach(function(comparator) {
|
|
1444
|
+
if (comparator.semver === ANY) {
|
|
1445
|
+
comparator = new Comparator(">=0.0.0");
|
|
1446
|
+
}
|
|
1447
|
+
high = high || comparator;
|
|
1448
|
+
low = low || comparator;
|
|
1449
|
+
if (gtfn(comparator.semver, high.semver, options)) {
|
|
1450
|
+
high = comparator;
|
|
1451
|
+
} else if (ltfn(comparator.semver, low.semver, options)) {
|
|
1452
|
+
low = comparator;
|
|
1453
|
+
}
|
|
1454
|
+
});
|
|
1455
|
+
if (high.operator === comp || high.operator === ecomp) {
|
|
1456
|
+
return false;
|
|
1457
|
+
}
|
|
1458
|
+
if ((!low.operator || low.operator === comp) && ltefn(version2, low.semver)) {
|
|
1459
|
+
return false;
|
|
1460
|
+
} else if (low.operator === ecomp && ltfn(version2, low.semver)) {
|
|
1461
|
+
return false;
|
|
1462
|
+
}
|
|
1463
|
+
}
|
|
1464
|
+
return true;
|
|
1465
|
+
}
|
|
1466
|
+
exports.prerelease = prerelease;
|
|
1467
|
+
function prerelease(version2, options) {
|
|
1468
|
+
var parsed = parse(version2, options);
|
|
1469
|
+
return parsed && parsed.prerelease.length ? parsed.prerelease : null;
|
|
1470
|
+
}
|
|
1471
|
+
exports.intersects = intersects;
|
|
1472
|
+
function intersects(r1, r2, options) {
|
|
1473
|
+
r1 = new Range(r1, options);
|
|
1474
|
+
r2 = new Range(r2, options);
|
|
1475
|
+
return r1.intersects(r2);
|
|
1476
|
+
}
|
|
1477
|
+
exports.coerce = coerce;
|
|
1478
|
+
function coerce(version2) {
|
|
1479
|
+
if (version2 instanceof SemVer) {
|
|
1480
|
+
return version2;
|
|
1481
|
+
}
|
|
1482
|
+
if (typeof version2 !== "string") {
|
|
1483
|
+
return null;
|
|
1484
|
+
}
|
|
1485
|
+
var match = version2.match(safeRe[COERCE]);
|
|
1486
|
+
if (match == null) {
|
|
1487
|
+
return null;
|
|
1488
|
+
}
|
|
1489
|
+
return parse(match[1] + "." + (match[2] || "0") + "." + (match[3] || "0"));
|
|
1490
|
+
}
|
|
1491
|
+
}
|
|
1492
|
+
});
|
|
1493
|
+
|
|
1494
|
+
// ../../node_modules/.pnpm/cross-spawn@6.0.6/node_modules/cross-spawn/lib/parse.js
|
|
1495
|
+
var require_parse = __commonJS({
|
|
1496
|
+
"../../node_modules/.pnpm/cross-spawn@6.0.6/node_modules/cross-spawn/lib/parse.js"(exports, module2) {
|
|
1497
|
+
"use strict";
|
|
1498
|
+
var path = require("path");
|
|
1499
|
+
var niceTry = require_src();
|
|
1500
|
+
var resolveCommand = require_resolveCommand();
|
|
1501
|
+
var escape = require_escape();
|
|
1502
|
+
var readShebang = require_readShebang();
|
|
1503
|
+
var semver = require_semver();
|
|
1504
|
+
var isWin = process.platform === "win32";
|
|
1505
|
+
var isExecutableRegExp = /\.(?:com|exe)$/i;
|
|
1506
|
+
var isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;
|
|
1507
|
+
var supportsShellOption = niceTry(() => semver.satisfies(process.version, "^4.8.0 || ^5.7.0 || >= 6.0.0", true)) || false;
|
|
1508
|
+
function detectShebang(parsed) {
|
|
1509
|
+
parsed.file = resolveCommand(parsed);
|
|
1510
|
+
const shebang = parsed.file && readShebang(parsed.file);
|
|
1511
|
+
if (shebang) {
|
|
1512
|
+
parsed.args.unshift(parsed.file);
|
|
1513
|
+
parsed.command = shebang;
|
|
1514
|
+
return resolveCommand(parsed);
|
|
1515
|
+
}
|
|
1516
|
+
return parsed.file;
|
|
1517
|
+
}
|
|
1518
|
+
function parseNonShell(parsed) {
|
|
1519
|
+
if (!isWin) {
|
|
1520
|
+
return parsed;
|
|
1521
|
+
}
|
|
1522
|
+
const commandFile = detectShebang(parsed);
|
|
1523
|
+
const needsShell = !isExecutableRegExp.test(commandFile);
|
|
1524
|
+
if (parsed.options.forceShell || needsShell) {
|
|
1525
|
+
const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);
|
|
1526
|
+
parsed.command = path.normalize(parsed.command);
|
|
1527
|
+
parsed.command = escape.command(parsed.command);
|
|
1528
|
+
parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));
|
|
1529
|
+
const shellCommand = [parsed.command].concat(parsed.args).join(" ");
|
|
1530
|
+
parsed.args = ["/d", "/s", "/c", `"${shellCommand}"`];
|
|
1531
|
+
parsed.command = process.env.comspec || "cmd.exe";
|
|
1532
|
+
parsed.options.windowsVerbatimArguments = true;
|
|
1533
|
+
}
|
|
1534
|
+
return parsed;
|
|
1535
|
+
}
|
|
1536
|
+
function parseShell(parsed) {
|
|
1537
|
+
if (supportsShellOption) {
|
|
1538
|
+
return parsed;
|
|
1539
|
+
}
|
|
1540
|
+
const shellCommand = [parsed.command].concat(parsed.args).join(" ");
|
|
1541
|
+
if (isWin) {
|
|
1542
|
+
parsed.command = typeof parsed.options.shell === "string" ? parsed.options.shell : process.env.comspec || "cmd.exe";
|
|
1543
|
+
parsed.args = ["/d", "/s", "/c", `"${shellCommand}"`];
|
|
1544
|
+
parsed.options.windowsVerbatimArguments = true;
|
|
1545
|
+
} else {
|
|
1546
|
+
if (typeof parsed.options.shell === "string") {
|
|
1547
|
+
parsed.command = parsed.options.shell;
|
|
1548
|
+
} else if (process.platform === "android") {
|
|
1549
|
+
parsed.command = "/system/bin/sh";
|
|
1550
|
+
} else {
|
|
1551
|
+
parsed.command = "/bin/sh";
|
|
1552
|
+
}
|
|
1553
|
+
parsed.args = ["-c", shellCommand];
|
|
1554
|
+
}
|
|
1555
|
+
return parsed;
|
|
1556
|
+
}
|
|
1557
|
+
function parse(command, args, options) {
|
|
1558
|
+
if (args && !Array.isArray(args)) {
|
|
1559
|
+
options = args;
|
|
1560
|
+
args = null;
|
|
1561
|
+
}
|
|
1562
|
+
args = args ? args.slice(0) : [];
|
|
1563
|
+
options = Object.assign({}, options);
|
|
1564
|
+
const parsed = {
|
|
1565
|
+
command,
|
|
1566
|
+
args,
|
|
1567
|
+
options,
|
|
1568
|
+
file: void 0,
|
|
1569
|
+
original: {
|
|
1570
|
+
command,
|
|
1571
|
+
args
|
|
1572
|
+
}
|
|
1573
|
+
};
|
|
1574
|
+
return options.shell ? parseShell(parsed) : parseNonShell(parsed);
|
|
1575
|
+
}
|
|
1576
|
+
module2.exports = parse;
|
|
1577
|
+
}
|
|
1578
|
+
});
|
|
1579
|
+
|
|
1580
|
+
// ../../node_modules/.pnpm/cross-spawn@6.0.6/node_modules/cross-spawn/lib/enoent.js
|
|
1581
|
+
var require_enoent = __commonJS({
|
|
1582
|
+
"../../node_modules/.pnpm/cross-spawn@6.0.6/node_modules/cross-spawn/lib/enoent.js"(exports, module2) {
|
|
1583
|
+
"use strict";
|
|
1584
|
+
var isWin = process.platform === "win32";
|
|
1585
|
+
function notFoundError(original, syscall) {
|
|
1586
|
+
return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {
|
|
1587
|
+
code: "ENOENT",
|
|
1588
|
+
errno: "ENOENT",
|
|
1589
|
+
syscall: `${syscall} ${original.command}`,
|
|
1590
|
+
path: original.command,
|
|
1591
|
+
spawnargs: original.args
|
|
1592
|
+
});
|
|
1593
|
+
}
|
|
1594
|
+
function hookChildProcess(cp, parsed) {
|
|
1595
|
+
if (!isWin) {
|
|
1596
|
+
return;
|
|
1597
|
+
}
|
|
1598
|
+
const originalEmit = cp.emit;
|
|
1599
|
+
cp.emit = function(name, arg1) {
|
|
1600
|
+
if (name === "exit") {
|
|
1601
|
+
const err = verifyENOENT(arg1, parsed, "spawn");
|
|
1602
|
+
if (err) {
|
|
1603
|
+
return originalEmit.call(cp, "error", err);
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1606
|
+
return originalEmit.apply(cp, arguments);
|
|
1607
|
+
};
|
|
1608
|
+
}
|
|
1609
|
+
function verifyENOENT(status, parsed) {
|
|
1610
|
+
if (isWin && status === 1 && !parsed.file) {
|
|
1611
|
+
return notFoundError(parsed.original, "spawn");
|
|
1612
|
+
}
|
|
1613
|
+
return null;
|
|
1614
|
+
}
|
|
1615
|
+
function verifyENOENTSync(status, parsed) {
|
|
1616
|
+
if (isWin && status === 1 && !parsed.file) {
|
|
1617
|
+
return notFoundError(parsed.original, "spawnSync");
|
|
1618
|
+
}
|
|
1619
|
+
return null;
|
|
1620
|
+
}
|
|
1621
|
+
module2.exports = {
|
|
1622
|
+
hookChildProcess,
|
|
1623
|
+
verifyENOENT,
|
|
1624
|
+
verifyENOENTSync,
|
|
1625
|
+
notFoundError
|
|
1626
|
+
};
|
|
1627
|
+
}
|
|
1628
|
+
});
|
|
1629
|
+
|
|
1630
|
+
// ../../node_modules/.pnpm/cross-spawn@6.0.6/node_modules/cross-spawn/index.js
|
|
1631
|
+
var require_cross_spawn = __commonJS({
|
|
1632
|
+
"../../node_modules/.pnpm/cross-spawn@6.0.6/node_modules/cross-spawn/index.js"(exports, module2) {
|
|
1633
|
+
"use strict";
|
|
1634
|
+
var cp = require("child_process");
|
|
1635
|
+
var parse = require_parse();
|
|
1636
|
+
var enoent = require_enoent();
|
|
1637
|
+
function spawn(command, args, options) {
|
|
1638
|
+
const parsed = parse(command, args, options);
|
|
1639
|
+
const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);
|
|
1640
|
+
enoent.hookChildProcess(spawned, parsed);
|
|
1641
|
+
return spawned;
|
|
1642
|
+
}
|
|
1643
|
+
function spawnSync(command, args, options) {
|
|
1644
|
+
const parsed = parse(command, args, options);
|
|
1645
|
+
const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);
|
|
1646
|
+
result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);
|
|
1647
|
+
return result;
|
|
1648
|
+
}
|
|
1649
|
+
module2.exports = spawn;
|
|
1650
|
+
module2.exports.spawn = spawn;
|
|
1651
|
+
module2.exports.sync = spawnSync;
|
|
1652
|
+
module2.exports._parse = parse;
|
|
1653
|
+
module2.exports._enoent = enoent;
|
|
1654
|
+
}
|
|
1655
|
+
});
|
|
1656
|
+
|
|
1657
|
+
// ../../node_modules/.pnpm/strip-eof@1.0.0/node_modules/strip-eof/index.js
|
|
1658
|
+
var require_strip_eof = __commonJS({
|
|
1659
|
+
"../../node_modules/.pnpm/strip-eof@1.0.0/node_modules/strip-eof/index.js"(exports, module2) {
|
|
1660
|
+
"use strict";
|
|
1661
|
+
module2.exports = function(x) {
|
|
1662
|
+
var lf = typeof x === "string" ? "\n" : "\n".charCodeAt();
|
|
1663
|
+
var cr = typeof x === "string" ? "\r" : "\r".charCodeAt();
|
|
1664
|
+
if (x[x.length - 1] === lf) {
|
|
1665
|
+
x = x.slice(0, x.length - 1);
|
|
1666
|
+
}
|
|
1667
|
+
if (x[x.length - 1] === cr) {
|
|
1668
|
+
x = x.slice(0, x.length - 1);
|
|
1669
|
+
}
|
|
1670
|
+
return x;
|
|
1671
|
+
};
|
|
1672
|
+
}
|
|
1673
|
+
});
|
|
1674
|
+
|
|
1675
|
+
// ../../node_modules/.pnpm/npm-run-path@2.0.2/node_modules/npm-run-path/index.js
|
|
1676
|
+
var require_npm_run_path = __commonJS({
|
|
1677
|
+
"../../node_modules/.pnpm/npm-run-path@2.0.2/node_modules/npm-run-path/index.js"(exports, module2) {
|
|
1678
|
+
"use strict";
|
|
1679
|
+
var path = require("path");
|
|
1680
|
+
var pathKey = require_path_key();
|
|
1681
|
+
module2.exports = (opts) => {
|
|
1682
|
+
opts = Object.assign({
|
|
1683
|
+
cwd: process.cwd(),
|
|
1684
|
+
path: process.env[pathKey()]
|
|
1685
|
+
}, opts);
|
|
1686
|
+
let prev;
|
|
1687
|
+
let pth = path.resolve(opts.cwd);
|
|
1688
|
+
const ret = [];
|
|
1689
|
+
while (prev !== pth) {
|
|
1690
|
+
ret.push(path.join(pth, "node_modules/.bin"));
|
|
1691
|
+
prev = pth;
|
|
1692
|
+
pth = path.resolve(pth, "..");
|
|
1693
|
+
}
|
|
1694
|
+
ret.push(path.dirname(process.execPath));
|
|
1695
|
+
return ret.concat(opts.path).join(path.delimiter);
|
|
1696
|
+
};
|
|
1697
|
+
module2.exports.env = (opts) => {
|
|
1698
|
+
opts = Object.assign({
|
|
1699
|
+
env: process.env
|
|
1700
|
+
}, opts);
|
|
1701
|
+
const env = Object.assign({}, opts.env);
|
|
1702
|
+
const path2 = pathKey({ env });
|
|
1703
|
+
opts.path = env[path2];
|
|
1704
|
+
env[path2] = module2.exports(opts);
|
|
1705
|
+
return env;
|
|
1706
|
+
};
|
|
1707
|
+
}
|
|
1708
|
+
});
|
|
1709
|
+
|
|
1710
|
+
// ../../node_modules/.pnpm/is-stream@1.1.0/node_modules/is-stream/index.js
|
|
1711
|
+
var require_is_stream = __commonJS({
|
|
1712
|
+
"../../node_modules/.pnpm/is-stream@1.1.0/node_modules/is-stream/index.js"(exports, module2) {
|
|
1713
|
+
"use strict";
|
|
1714
|
+
var isStream = module2.exports = function(stream) {
|
|
1715
|
+
return stream !== null && typeof stream === "object" && typeof stream.pipe === "function";
|
|
1716
|
+
};
|
|
1717
|
+
isStream.writable = function(stream) {
|
|
1718
|
+
return isStream(stream) && stream.writable !== false && typeof stream._write === "function" && typeof stream._writableState === "object";
|
|
1719
|
+
};
|
|
1720
|
+
isStream.readable = function(stream) {
|
|
1721
|
+
return isStream(stream) && stream.readable !== false && typeof stream._read === "function" && typeof stream._readableState === "object";
|
|
1722
|
+
};
|
|
1723
|
+
isStream.duplex = function(stream) {
|
|
1724
|
+
return isStream.writable(stream) && isStream.readable(stream);
|
|
1725
|
+
};
|
|
1726
|
+
isStream.transform = function(stream) {
|
|
1727
|
+
return isStream.duplex(stream) && typeof stream._transform === "function" && typeof stream._transformState === "object";
|
|
1728
|
+
};
|
|
1729
|
+
}
|
|
1730
|
+
});
|
|
1731
|
+
|
|
1732
|
+
// ../../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js
|
|
1733
|
+
var require_wrappy = __commonJS({
|
|
1734
|
+
"../../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js"(exports, module2) {
|
|
1735
|
+
module2.exports = wrappy;
|
|
1736
|
+
function wrappy(fn, cb) {
|
|
1737
|
+
if (fn && cb)
|
|
1738
|
+
return wrappy(fn)(cb);
|
|
1739
|
+
if (typeof fn !== "function")
|
|
1740
|
+
throw new TypeError("need wrapper function");
|
|
1741
|
+
Object.keys(fn).forEach(function(k) {
|
|
1742
|
+
wrapper[k] = fn[k];
|
|
1743
|
+
});
|
|
1744
|
+
return wrapper;
|
|
1745
|
+
function wrapper() {
|
|
1746
|
+
var args = new Array(arguments.length);
|
|
1747
|
+
for (var i = 0; i < args.length; i++) {
|
|
1748
|
+
args[i] = arguments[i];
|
|
1749
|
+
}
|
|
1750
|
+
var ret = fn.apply(this, args);
|
|
1751
|
+
var cb2 = args[args.length - 1];
|
|
1752
|
+
if (typeof ret === "function" && ret !== cb2) {
|
|
1753
|
+
Object.keys(cb2).forEach(function(k) {
|
|
1754
|
+
ret[k] = cb2[k];
|
|
1755
|
+
});
|
|
1756
|
+
}
|
|
1757
|
+
return ret;
|
|
1758
|
+
}
|
|
1759
|
+
}
|
|
1760
|
+
}
|
|
1761
|
+
});
|
|
1762
|
+
|
|
1763
|
+
// ../../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js
|
|
1764
|
+
var require_once = __commonJS({
|
|
1765
|
+
"../../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js"(exports, module2) {
|
|
1766
|
+
var wrappy = require_wrappy();
|
|
1767
|
+
module2.exports = wrappy(once);
|
|
1768
|
+
module2.exports.strict = wrappy(onceStrict);
|
|
1769
|
+
once.proto = once(function() {
|
|
1770
|
+
Object.defineProperty(Function.prototype, "once", {
|
|
1771
|
+
value: function() {
|
|
1772
|
+
return once(this);
|
|
1773
|
+
},
|
|
1774
|
+
configurable: true
|
|
1775
|
+
});
|
|
1776
|
+
Object.defineProperty(Function.prototype, "onceStrict", {
|
|
1777
|
+
value: function() {
|
|
1778
|
+
return onceStrict(this);
|
|
1779
|
+
},
|
|
1780
|
+
configurable: true
|
|
1781
|
+
});
|
|
1782
|
+
});
|
|
1783
|
+
function once(fn) {
|
|
1784
|
+
var f = function() {
|
|
1785
|
+
if (f.called)
|
|
1786
|
+
return f.value;
|
|
1787
|
+
f.called = true;
|
|
1788
|
+
return f.value = fn.apply(this, arguments);
|
|
1789
|
+
};
|
|
1790
|
+
f.called = false;
|
|
1791
|
+
return f;
|
|
1792
|
+
}
|
|
1793
|
+
function onceStrict(fn) {
|
|
1794
|
+
var f = function() {
|
|
1795
|
+
if (f.called)
|
|
1796
|
+
throw new Error(f.onceError);
|
|
1797
|
+
f.called = true;
|
|
1798
|
+
return f.value = fn.apply(this, arguments);
|
|
1799
|
+
};
|
|
1800
|
+
var name = fn.name || "Function wrapped with `once`";
|
|
1801
|
+
f.onceError = name + " shouldn't be called more than once";
|
|
1802
|
+
f.called = false;
|
|
1803
|
+
return f;
|
|
1804
|
+
}
|
|
1805
|
+
}
|
|
1806
|
+
});
|
|
1807
|
+
|
|
1808
|
+
// ../../node_modules/.pnpm/end-of-stream@1.4.4/node_modules/end-of-stream/index.js
|
|
1809
|
+
var require_end_of_stream = __commonJS({
|
|
1810
|
+
"../../node_modules/.pnpm/end-of-stream@1.4.4/node_modules/end-of-stream/index.js"(exports, module2) {
|
|
1811
|
+
var once = require_once();
|
|
1812
|
+
var noop = function() {
|
|
1813
|
+
};
|
|
1814
|
+
var isRequest = function(stream) {
|
|
1815
|
+
return stream.setHeader && typeof stream.abort === "function";
|
|
1816
|
+
};
|
|
1817
|
+
var isChildProcess = function(stream) {
|
|
1818
|
+
return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3;
|
|
1819
|
+
};
|
|
1820
|
+
var eos = function(stream, opts, callback) {
|
|
1821
|
+
if (typeof opts === "function")
|
|
1822
|
+
return eos(stream, null, opts);
|
|
1823
|
+
if (!opts)
|
|
1824
|
+
opts = {};
|
|
1825
|
+
callback = once(callback || noop);
|
|
1826
|
+
var ws = stream._writableState;
|
|
1827
|
+
var rs = stream._readableState;
|
|
1828
|
+
var readable = opts.readable || opts.readable !== false && stream.readable;
|
|
1829
|
+
var writable = opts.writable || opts.writable !== false && stream.writable;
|
|
1830
|
+
var cancelled = false;
|
|
1831
|
+
var onlegacyfinish = function() {
|
|
1832
|
+
if (!stream.writable)
|
|
1833
|
+
onfinish();
|
|
1834
|
+
};
|
|
1835
|
+
var onfinish = function() {
|
|
1836
|
+
writable = false;
|
|
1837
|
+
if (!readable)
|
|
1838
|
+
callback.call(stream);
|
|
1839
|
+
};
|
|
1840
|
+
var onend = function() {
|
|
1841
|
+
readable = false;
|
|
1842
|
+
if (!writable)
|
|
1843
|
+
callback.call(stream);
|
|
1844
|
+
};
|
|
1845
|
+
var onexit = function(exitCode) {
|
|
1846
|
+
callback.call(stream, exitCode ? new Error("exited with error code: " + exitCode) : null);
|
|
1847
|
+
};
|
|
1848
|
+
var onerror = function(err) {
|
|
1849
|
+
callback.call(stream, err);
|
|
1850
|
+
};
|
|
1851
|
+
var onclose = function() {
|
|
1852
|
+
process.nextTick(onclosenexttick);
|
|
1853
|
+
};
|
|
1854
|
+
var onclosenexttick = function() {
|
|
1855
|
+
if (cancelled)
|
|
1856
|
+
return;
|
|
1857
|
+
if (readable && !(rs && (rs.ended && !rs.destroyed)))
|
|
1858
|
+
return callback.call(stream, new Error("premature close"));
|
|
1859
|
+
if (writable && !(ws && (ws.ended && !ws.destroyed)))
|
|
1860
|
+
return callback.call(stream, new Error("premature close"));
|
|
1861
|
+
};
|
|
1862
|
+
var onrequest = function() {
|
|
1863
|
+
stream.req.on("finish", onfinish);
|
|
1864
|
+
};
|
|
1865
|
+
if (isRequest(stream)) {
|
|
1866
|
+
stream.on("complete", onfinish);
|
|
1867
|
+
stream.on("abort", onclose);
|
|
1868
|
+
if (stream.req)
|
|
1869
|
+
onrequest();
|
|
1870
|
+
else
|
|
1871
|
+
stream.on("request", onrequest);
|
|
1872
|
+
} else if (writable && !ws) {
|
|
1873
|
+
stream.on("end", onlegacyfinish);
|
|
1874
|
+
stream.on("close", onlegacyfinish);
|
|
1875
|
+
}
|
|
1876
|
+
if (isChildProcess(stream))
|
|
1877
|
+
stream.on("exit", onexit);
|
|
1878
|
+
stream.on("end", onend);
|
|
1879
|
+
stream.on("finish", onfinish);
|
|
1880
|
+
if (opts.error !== false)
|
|
1881
|
+
stream.on("error", onerror);
|
|
1882
|
+
stream.on("close", onclose);
|
|
1883
|
+
return function() {
|
|
1884
|
+
cancelled = true;
|
|
1885
|
+
stream.removeListener("complete", onfinish);
|
|
1886
|
+
stream.removeListener("abort", onclose);
|
|
1887
|
+
stream.removeListener("request", onrequest);
|
|
1888
|
+
if (stream.req)
|
|
1889
|
+
stream.req.removeListener("finish", onfinish);
|
|
1890
|
+
stream.removeListener("end", onlegacyfinish);
|
|
1891
|
+
stream.removeListener("close", onlegacyfinish);
|
|
1892
|
+
stream.removeListener("finish", onfinish);
|
|
1893
|
+
stream.removeListener("exit", onexit);
|
|
1894
|
+
stream.removeListener("end", onend);
|
|
1895
|
+
stream.removeListener("error", onerror);
|
|
1896
|
+
stream.removeListener("close", onclose);
|
|
1897
|
+
};
|
|
1898
|
+
};
|
|
1899
|
+
module2.exports = eos;
|
|
1900
|
+
}
|
|
1901
|
+
});
|
|
1902
|
+
|
|
1903
|
+
// ../../node_modules/.pnpm/pump@3.0.2/node_modules/pump/index.js
|
|
1904
|
+
var require_pump = __commonJS({
|
|
1905
|
+
"../../node_modules/.pnpm/pump@3.0.2/node_modules/pump/index.js"(exports, module2) {
|
|
1906
|
+
var once = require_once();
|
|
1907
|
+
var eos = require_end_of_stream();
|
|
1908
|
+
var fs2;
|
|
1909
|
+
try {
|
|
1910
|
+
fs2 = require("fs");
|
|
1911
|
+
} catch (e) {
|
|
1912
|
+
}
|
|
1913
|
+
var noop = function() {
|
|
1914
|
+
};
|
|
1915
|
+
var ancient = /^v?\.0/.test(process.version);
|
|
1916
|
+
var isFn = function(fn) {
|
|
1917
|
+
return typeof fn === "function";
|
|
1918
|
+
};
|
|
1919
|
+
var isFS = function(stream) {
|
|
1920
|
+
if (!ancient)
|
|
1921
|
+
return false;
|
|
1922
|
+
if (!fs2)
|
|
1923
|
+
return false;
|
|
1924
|
+
return (stream instanceof (fs2.ReadStream || noop) || stream instanceof (fs2.WriteStream || noop)) && isFn(stream.close);
|
|
1925
|
+
};
|
|
1926
|
+
var isRequest = function(stream) {
|
|
1927
|
+
return stream.setHeader && isFn(stream.abort);
|
|
1928
|
+
};
|
|
1929
|
+
var destroyer = function(stream, reading, writing, callback) {
|
|
1930
|
+
callback = once(callback);
|
|
1931
|
+
var closed = false;
|
|
1932
|
+
stream.on("close", function() {
|
|
1933
|
+
closed = true;
|
|
1934
|
+
});
|
|
1935
|
+
eos(stream, { readable: reading, writable: writing }, function(err) {
|
|
1936
|
+
if (err)
|
|
1937
|
+
return callback(err);
|
|
1938
|
+
closed = true;
|
|
1939
|
+
callback();
|
|
1940
|
+
});
|
|
1941
|
+
var destroyed = false;
|
|
1942
|
+
return function(err) {
|
|
1943
|
+
if (closed)
|
|
1944
|
+
return;
|
|
1945
|
+
if (destroyed)
|
|
1946
|
+
return;
|
|
1947
|
+
destroyed = true;
|
|
1948
|
+
if (isFS(stream))
|
|
1949
|
+
return stream.close(noop);
|
|
1950
|
+
if (isRequest(stream))
|
|
1951
|
+
return stream.abort();
|
|
1952
|
+
if (isFn(stream.destroy))
|
|
1953
|
+
return stream.destroy();
|
|
1954
|
+
callback(err || new Error("stream was destroyed"));
|
|
1955
|
+
};
|
|
1956
|
+
};
|
|
1957
|
+
var call = function(fn) {
|
|
1958
|
+
fn();
|
|
1959
|
+
};
|
|
1960
|
+
var pipe = function(from, to) {
|
|
1961
|
+
return from.pipe(to);
|
|
1962
|
+
};
|
|
1963
|
+
var pump = function() {
|
|
1964
|
+
var streams = Array.prototype.slice.call(arguments);
|
|
1965
|
+
var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop;
|
|
1966
|
+
if (Array.isArray(streams[0]))
|
|
1967
|
+
streams = streams[0];
|
|
1968
|
+
if (streams.length < 2)
|
|
1969
|
+
throw new Error("pump requires two streams per minimum");
|
|
1970
|
+
var error;
|
|
1971
|
+
var destroys = streams.map(function(stream, i) {
|
|
1972
|
+
var reading = i < streams.length - 1;
|
|
1973
|
+
var writing = i > 0;
|
|
1974
|
+
return destroyer(stream, reading, writing, function(err) {
|
|
1975
|
+
if (!error)
|
|
1976
|
+
error = err;
|
|
1977
|
+
if (err)
|
|
1978
|
+
destroys.forEach(call);
|
|
1979
|
+
if (reading)
|
|
1980
|
+
return;
|
|
1981
|
+
destroys.forEach(call);
|
|
1982
|
+
callback(error);
|
|
1983
|
+
});
|
|
1984
|
+
});
|
|
1985
|
+
return streams.reduce(pipe);
|
|
1986
|
+
};
|
|
1987
|
+
module2.exports = pump;
|
|
1988
|
+
}
|
|
1989
|
+
});
|
|
1990
|
+
|
|
1991
|
+
// ../../node_modules/.pnpm/get-stream@4.1.0/node_modules/get-stream/buffer-stream.js
|
|
1992
|
+
var require_buffer_stream = __commonJS({
|
|
1993
|
+
"../../node_modules/.pnpm/get-stream@4.1.0/node_modules/get-stream/buffer-stream.js"(exports, module2) {
|
|
1994
|
+
"use strict";
|
|
1995
|
+
var { PassThrough } = require("stream");
|
|
1996
|
+
module2.exports = (options) => {
|
|
1997
|
+
options = Object.assign({}, options);
|
|
1998
|
+
const { array } = options;
|
|
1999
|
+
let { encoding } = options;
|
|
2000
|
+
const buffer = encoding === "buffer";
|
|
2001
|
+
let objectMode = false;
|
|
2002
|
+
if (array) {
|
|
2003
|
+
objectMode = !(encoding || buffer);
|
|
2004
|
+
} else {
|
|
2005
|
+
encoding = encoding || "utf8";
|
|
2006
|
+
}
|
|
2007
|
+
if (buffer) {
|
|
2008
|
+
encoding = null;
|
|
2009
|
+
}
|
|
2010
|
+
let len = 0;
|
|
2011
|
+
const ret = [];
|
|
2012
|
+
const stream = new PassThrough({ objectMode });
|
|
2013
|
+
if (encoding) {
|
|
2014
|
+
stream.setEncoding(encoding);
|
|
2015
|
+
}
|
|
2016
|
+
stream.on("data", (chunk) => {
|
|
2017
|
+
ret.push(chunk);
|
|
2018
|
+
if (objectMode) {
|
|
2019
|
+
len = ret.length;
|
|
2020
|
+
} else {
|
|
2021
|
+
len += chunk.length;
|
|
2022
|
+
}
|
|
2023
|
+
});
|
|
2024
|
+
stream.getBufferedValue = () => {
|
|
2025
|
+
if (array) {
|
|
2026
|
+
return ret;
|
|
2027
|
+
}
|
|
2028
|
+
return buffer ? Buffer.concat(ret, len) : ret.join("");
|
|
2029
|
+
};
|
|
2030
|
+
stream.getBufferedLength = () => len;
|
|
2031
|
+
return stream;
|
|
2032
|
+
};
|
|
2033
|
+
}
|
|
2034
|
+
});
|
|
2035
|
+
|
|
2036
|
+
// ../../node_modules/.pnpm/get-stream@4.1.0/node_modules/get-stream/index.js
|
|
2037
|
+
var require_get_stream = __commonJS({
|
|
2038
|
+
"../../node_modules/.pnpm/get-stream@4.1.0/node_modules/get-stream/index.js"(exports, module2) {
|
|
2039
|
+
"use strict";
|
|
2040
|
+
var pump = require_pump();
|
|
2041
|
+
var bufferStream = require_buffer_stream();
|
|
2042
|
+
var MaxBufferError = class extends Error {
|
|
2043
|
+
constructor() {
|
|
2044
|
+
super("maxBuffer exceeded");
|
|
2045
|
+
this.name = "MaxBufferError";
|
|
2046
|
+
}
|
|
2047
|
+
};
|
|
2048
|
+
function getStream(inputStream, options) {
|
|
2049
|
+
if (!inputStream) {
|
|
2050
|
+
return Promise.reject(new Error("Expected a stream"));
|
|
2051
|
+
}
|
|
2052
|
+
options = Object.assign({ maxBuffer: Infinity }, options);
|
|
2053
|
+
const { maxBuffer } = options;
|
|
2054
|
+
let stream;
|
|
2055
|
+
return new Promise((resolve, reject) => {
|
|
2056
|
+
const rejectPromise = (error) => {
|
|
2057
|
+
if (error) {
|
|
2058
|
+
error.bufferedData = stream.getBufferedValue();
|
|
2059
|
+
}
|
|
2060
|
+
reject(error);
|
|
2061
|
+
};
|
|
2062
|
+
stream = pump(inputStream, bufferStream(options), (error) => {
|
|
2063
|
+
if (error) {
|
|
2064
|
+
rejectPromise(error);
|
|
2065
|
+
return;
|
|
2066
|
+
}
|
|
2067
|
+
resolve();
|
|
2068
|
+
});
|
|
2069
|
+
stream.on("data", () => {
|
|
2070
|
+
if (stream.getBufferedLength() > maxBuffer) {
|
|
2071
|
+
rejectPromise(new MaxBufferError());
|
|
2072
|
+
}
|
|
2073
|
+
});
|
|
2074
|
+
}).then(() => stream.getBufferedValue());
|
|
2075
|
+
}
|
|
2076
|
+
module2.exports = getStream;
|
|
2077
|
+
module2.exports.buffer = (stream, options) => getStream(stream, Object.assign({}, options, { encoding: "buffer" }));
|
|
2078
|
+
module2.exports.array = (stream, options) => getStream(stream, Object.assign({}, options, { array: true }));
|
|
2079
|
+
module2.exports.MaxBufferError = MaxBufferError;
|
|
2080
|
+
}
|
|
2081
|
+
});
|
|
2082
|
+
|
|
2083
|
+
// ../../node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.js
|
|
2084
|
+
var require_p_finally = __commonJS({
|
|
2085
|
+
"../../node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.js"(exports, module2) {
|
|
2086
|
+
"use strict";
|
|
2087
|
+
module2.exports = (promise, onFinally) => {
|
|
2088
|
+
onFinally = onFinally || (() => {
|
|
2089
|
+
});
|
|
2090
|
+
return promise.then(
|
|
2091
|
+
(val) => new Promise((resolve) => {
|
|
2092
|
+
resolve(onFinally());
|
|
2093
|
+
}).then(() => val),
|
|
2094
|
+
(err) => new Promise((resolve) => {
|
|
2095
|
+
resolve(onFinally());
|
|
2096
|
+
}).then(() => {
|
|
2097
|
+
throw err;
|
|
2098
|
+
})
|
|
2099
|
+
);
|
|
2100
|
+
};
|
|
2101
|
+
}
|
|
2102
|
+
});
|
|
2103
|
+
|
|
2104
|
+
// ../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js
|
|
2105
|
+
var require_signals = __commonJS({
|
|
2106
|
+
"../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js"(exports, module2) {
|
|
2107
|
+
module2.exports = [
|
|
2108
|
+
"SIGABRT",
|
|
2109
|
+
"SIGALRM",
|
|
2110
|
+
"SIGHUP",
|
|
2111
|
+
"SIGINT",
|
|
2112
|
+
"SIGTERM"
|
|
2113
|
+
];
|
|
2114
|
+
if (process.platform !== "win32") {
|
|
2115
|
+
module2.exports.push(
|
|
2116
|
+
"SIGVTALRM",
|
|
2117
|
+
"SIGXCPU",
|
|
2118
|
+
"SIGXFSZ",
|
|
2119
|
+
"SIGUSR2",
|
|
2120
|
+
"SIGTRAP",
|
|
2121
|
+
"SIGSYS",
|
|
2122
|
+
"SIGQUIT",
|
|
2123
|
+
"SIGIOT"
|
|
2124
|
+
// should detect profiler and enable/disable accordingly.
|
|
2125
|
+
// see #21
|
|
2126
|
+
// 'SIGPROF'
|
|
2127
|
+
);
|
|
2128
|
+
}
|
|
2129
|
+
if (process.platform === "linux") {
|
|
2130
|
+
module2.exports.push(
|
|
2131
|
+
"SIGIO",
|
|
2132
|
+
"SIGPOLL",
|
|
2133
|
+
"SIGPWR",
|
|
2134
|
+
"SIGSTKFLT",
|
|
2135
|
+
"SIGUNUSED"
|
|
2136
|
+
);
|
|
2137
|
+
}
|
|
2138
|
+
}
|
|
2139
|
+
});
|
|
2140
|
+
|
|
2141
|
+
// ../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js
|
|
2142
|
+
var require_signal_exit = __commonJS({
|
|
2143
|
+
"../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js"(exports, module2) {
|
|
2144
|
+
var process2 = global.process;
|
|
2145
|
+
var processOk = function(process3) {
|
|
2146
|
+
return process3 && typeof process3 === "object" && typeof process3.removeListener === "function" && typeof process3.emit === "function" && typeof process3.reallyExit === "function" && typeof process3.listeners === "function" && typeof process3.kill === "function" && typeof process3.pid === "number" && typeof process3.on === "function";
|
|
2147
|
+
};
|
|
2148
|
+
if (!processOk(process2)) {
|
|
2149
|
+
module2.exports = function() {
|
|
2150
|
+
return function() {
|
|
2151
|
+
};
|
|
2152
|
+
};
|
|
2153
|
+
} else {
|
|
2154
|
+
assert = require("assert");
|
|
2155
|
+
signals = require_signals();
|
|
2156
|
+
isWin = /^win/i.test(process2.platform);
|
|
2157
|
+
EE = require("events");
|
|
2158
|
+
if (typeof EE !== "function") {
|
|
2159
|
+
EE = EE.EventEmitter;
|
|
2160
|
+
}
|
|
2161
|
+
if (process2.__signal_exit_emitter__) {
|
|
2162
|
+
emitter = process2.__signal_exit_emitter__;
|
|
2163
|
+
} else {
|
|
2164
|
+
emitter = process2.__signal_exit_emitter__ = new EE();
|
|
2165
|
+
emitter.count = 0;
|
|
2166
|
+
emitter.emitted = {};
|
|
2167
|
+
}
|
|
2168
|
+
if (!emitter.infinite) {
|
|
2169
|
+
emitter.setMaxListeners(Infinity);
|
|
2170
|
+
emitter.infinite = true;
|
|
2171
|
+
}
|
|
2172
|
+
module2.exports = function(cb, opts) {
|
|
2173
|
+
if (!processOk(global.process)) {
|
|
2174
|
+
return function() {
|
|
2175
|
+
};
|
|
2176
|
+
}
|
|
2177
|
+
assert.equal(typeof cb, "function", "a callback must be provided for exit handler");
|
|
2178
|
+
if (loaded === false) {
|
|
2179
|
+
load();
|
|
2180
|
+
}
|
|
2181
|
+
var ev = "exit";
|
|
2182
|
+
if (opts && opts.alwaysLast) {
|
|
2183
|
+
ev = "afterexit";
|
|
2184
|
+
}
|
|
2185
|
+
var remove = function() {
|
|
2186
|
+
emitter.removeListener(ev, cb);
|
|
2187
|
+
if (emitter.listeners("exit").length === 0 && emitter.listeners("afterexit").length === 0) {
|
|
2188
|
+
unload();
|
|
2189
|
+
}
|
|
2190
|
+
};
|
|
2191
|
+
emitter.on(ev, cb);
|
|
2192
|
+
return remove;
|
|
2193
|
+
};
|
|
2194
|
+
unload = function unload2() {
|
|
2195
|
+
if (!loaded || !processOk(global.process)) {
|
|
2196
|
+
return;
|
|
2197
|
+
}
|
|
2198
|
+
loaded = false;
|
|
2199
|
+
signals.forEach(function(sig) {
|
|
2200
|
+
try {
|
|
2201
|
+
process2.removeListener(sig, sigListeners[sig]);
|
|
2202
|
+
} catch (er) {
|
|
2203
|
+
}
|
|
2204
|
+
});
|
|
2205
|
+
process2.emit = originalProcessEmit;
|
|
2206
|
+
process2.reallyExit = originalProcessReallyExit;
|
|
2207
|
+
emitter.count -= 1;
|
|
2208
|
+
};
|
|
2209
|
+
module2.exports.unload = unload;
|
|
2210
|
+
emit = function emit2(event, code, signal) {
|
|
2211
|
+
if (emitter.emitted[event]) {
|
|
2212
|
+
return;
|
|
2213
|
+
}
|
|
2214
|
+
emitter.emitted[event] = true;
|
|
2215
|
+
emitter.emit(event, code, signal);
|
|
2216
|
+
};
|
|
2217
|
+
sigListeners = {};
|
|
2218
|
+
signals.forEach(function(sig) {
|
|
2219
|
+
sigListeners[sig] = function listener() {
|
|
2220
|
+
if (!processOk(global.process)) {
|
|
2221
|
+
return;
|
|
2222
|
+
}
|
|
2223
|
+
var listeners = process2.listeners(sig);
|
|
2224
|
+
if (listeners.length === emitter.count) {
|
|
2225
|
+
unload();
|
|
2226
|
+
emit("exit", null, sig);
|
|
2227
|
+
emit("afterexit", null, sig);
|
|
2228
|
+
if (isWin && sig === "SIGHUP") {
|
|
2229
|
+
sig = "SIGINT";
|
|
2230
|
+
}
|
|
2231
|
+
process2.kill(process2.pid, sig);
|
|
2232
|
+
}
|
|
2233
|
+
};
|
|
2234
|
+
});
|
|
2235
|
+
module2.exports.signals = function() {
|
|
2236
|
+
return signals;
|
|
2237
|
+
};
|
|
2238
|
+
loaded = false;
|
|
2239
|
+
load = function load2() {
|
|
2240
|
+
if (loaded || !processOk(global.process)) {
|
|
2241
|
+
return;
|
|
2242
|
+
}
|
|
2243
|
+
loaded = true;
|
|
2244
|
+
emitter.count += 1;
|
|
2245
|
+
signals = signals.filter(function(sig) {
|
|
2246
|
+
try {
|
|
2247
|
+
process2.on(sig, sigListeners[sig]);
|
|
2248
|
+
return true;
|
|
2249
|
+
} catch (er) {
|
|
2250
|
+
return false;
|
|
2251
|
+
}
|
|
2252
|
+
});
|
|
2253
|
+
process2.emit = processEmit;
|
|
2254
|
+
process2.reallyExit = processReallyExit;
|
|
2255
|
+
};
|
|
2256
|
+
module2.exports.load = load;
|
|
2257
|
+
originalProcessReallyExit = process2.reallyExit;
|
|
2258
|
+
processReallyExit = function processReallyExit2(code) {
|
|
2259
|
+
if (!processOk(global.process)) {
|
|
2260
|
+
return;
|
|
2261
|
+
}
|
|
2262
|
+
process2.exitCode = code || /* istanbul ignore next */
|
|
2263
|
+
0;
|
|
2264
|
+
emit("exit", process2.exitCode, null);
|
|
2265
|
+
emit("afterexit", process2.exitCode, null);
|
|
2266
|
+
originalProcessReallyExit.call(process2, process2.exitCode);
|
|
2267
|
+
};
|
|
2268
|
+
originalProcessEmit = process2.emit;
|
|
2269
|
+
processEmit = function processEmit2(ev, arg) {
|
|
2270
|
+
if (ev === "exit" && processOk(global.process)) {
|
|
2271
|
+
if (arg !== void 0) {
|
|
2272
|
+
process2.exitCode = arg;
|
|
2273
|
+
}
|
|
2274
|
+
var ret = originalProcessEmit.apply(this, arguments);
|
|
2275
|
+
emit("exit", process2.exitCode, null);
|
|
2276
|
+
emit("afterexit", process2.exitCode, null);
|
|
2277
|
+
return ret;
|
|
2278
|
+
} else {
|
|
2279
|
+
return originalProcessEmit.apply(this, arguments);
|
|
2280
|
+
}
|
|
2281
|
+
};
|
|
2282
|
+
}
|
|
2283
|
+
var assert;
|
|
2284
|
+
var signals;
|
|
2285
|
+
var isWin;
|
|
2286
|
+
var EE;
|
|
2287
|
+
var emitter;
|
|
2288
|
+
var unload;
|
|
2289
|
+
var emit;
|
|
2290
|
+
var sigListeners;
|
|
2291
|
+
var loaded;
|
|
2292
|
+
var load;
|
|
2293
|
+
var originalProcessReallyExit;
|
|
2294
|
+
var processReallyExit;
|
|
2295
|
+
var originalProcessEmit;
|
|
2296
|
+
var processEmit;
|
|
2297
|
+
}
|
|
2298
|
+
});
|
|
2299
|
+
|
|
2300
|
+
// ../../node_modules/.pnpm/execa@1.0.0/node_modules/execa/lib/errname.js
|
|
2301
|
+
var require_errname = __commonJS({
|
|
2302
|
+
"../../node_modules/.pnpm/execa@1.0.0/node_modules/execa/lib/errname.js"(exports, module2) {
|
|
2303
|
+
"use strict";
|
|
2304
|
+
var util = require("util");
|
|
2305
|
+
var uv;
|
|
2306
|
+
if (typeof util.getSystemErrorName === "function") {
|
|
2307
|
+
module2.exports = util.getSystemErrorName;
|
|
2308
|
+
} else {
|
|
2309
|
+
try {
|
|
2310
|
+
uv = process.binding("uv");
|
|
2311
|
+
if (typeof uv.errname !== "function") {
|
|
2312
|
+
throw new TypeError("uv.errname is not a function");
|
|
2313
|
+
}
|
|
2314
|
+
} catch (err) {
|
|
2315
|
+
console.error("execa/lib/errname: unable to establish process.binding('uv')", err);
|
|
2316
|
+
uv = null;
|
|
2317
|
+
}
|
|
2318
|
+
module2.exports = (code) => errname(uv, code);
|
|
2319
|
+
}
|
|
2320
|
+
module2.exports.__test__ = errname;
|
|
2321
|
+
function errname(uv2, code) {
|
|
2322
|
+
if (uv2) {
|
|
2323
|
+
return uv2.errname(code);
|
|
2324
|
+
}
|
|
2325
|
+
if (!(code < 0)) {
|
|
2326
|
+
throw new Error("err >= 0");
|
|
2327
|
+
}
|
|
2328
|
+
return `Unknown system error ${code}`;
|
|
2329
|
+
}
|
|
2330
|
+
}
|
|
2331
|
+
});
|
|
2332
|
+
|
|
2333
|
+
// ../../node_modules/.pnpm/execa@1.0.0/node_modules/execa/lib/stdio.js
|
|
2334
|
+
var require_stdio = __commonJS({
|
|
2335
|
+
"../../node_modules/.pnpm/execa@1.0.0/node_modules/execa/lib/stdio.js"(exports, module2) {
|
|
2336
|
+
"use strict";
|
|
2337
|
+
var alias = ["stdin", "stdout", "stderr"];
|
|
2338
|
+
var hasAlias = (opts) => alias.some((x) => Boolean(opts[x]));
|
|
2339
|
+
module2.exports = (opts) => {
|
|
2340
|
+
if (!opts) {
|
|
2341
|
+
return null;
|
|
2342
|
+
}
|
|
2343
|
+
if (opts.stdio && hasAlias(opts)) {
|
|
2344
|
+
throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${alias.map((x) => `\`${x}\``).join(", ")}`);
|
|
2345
|
+
}
|
|
2346
|
+
if (typeof opts.stdio === "string") {
|
|
2347
|
+
return opts.stdio;
|
|
2348
|
+
}
|
|
2349
|
+
const stdio = opts.stdio || [];
|
|
2350
|
+
if (!Array.isArray(stdio)) {
|
|
2351
|
+
throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``);
|
|
2352
|
+
}
|
|
2353
|
+
const result = [];
|
|
2354
|
+
const len = Math.max(stdio.length, alias.length);
|
|
2355
|
+
for (let i = 0; i < len; i++) {
|
|
2356
|
+
let value = null;
|
|
2357
|
+
if (stdio[i] !== void 0) {
|
|
2358
|
+
value = stdio[i];
|
|
2359
|
+
} else if (opts[alias[i]] !== void 0) {
|
|
2360
|
+
value = opts[alias[i]];
|
|
2361
|
+
}
|
|
2362
|
+
result[i] = value;
|
|
2363
|
+
}
|
|
2364
|
+
return result;
|
|
2365
|
+
};
|
|
2366
|
+
}
|
|
2367
|
+
});
|
|
2368
|
+
|
|
2369
|
+
// ../../node_modules/.pnpm/execa@1.0.0/node_modules/execa/index.js
|
|
2370
|
+
var require_execa = __commonJS({
|
|
2371
|
+
"../../node_modules/.pnpm/execa@1.0.0/node_modules/execa/index.js"(exports, module2) {
|
|
2372
|
+
"use strict";
|
|
2373
|
+
var path = require("path");
|
|
2374
|
+
var childProcess = require("child_process");
|
|
2375
|
+
var crossSpawn = require_cross_spawn();
|
|
2376
|
+
var stripEof = require_strip_eof();
|
|
2377
|
+
var npmRunPath = require_npm_run_path();
|
|
2378
|
+
var isStream = require_is_stream();
|
|
2379
|
+
var _getStream = require_get_stream();
|
|
2380
|
+
var pFinally = require_p_finally();
|
|
2381
|
+
var onExit = require_signal_exit();
|
|
2382
|
+
var errname = require_errname();
|
|
2383
|
+
var stdio = require_stdio();
|
|
2384
|
+
var TEN_MEGABYTES = 1e3 * 1e3 * 10;
|
|
2385
|
+
function handleArgs(cmd, args, opts) {
|
|
2386
|
+
let parsed;
|
|
2387
|
+
opts = Object.assign({
|
|
2388
|
+
extendEnv: true,
|
|
2389
|
+
env: {}
|
|
2390
|
+
}, opts);
|
|
2391
|
+
if (opts.extendEnv) {
|
|
2392
|
+
opts.env = Object.assign({}, process.env, opts.env);
|
|
2393
|
+
}
|
|
2394
|
+
if (opts.__winShell === true) {
|
|
2395
|
+
delete opts.__winShell;
|
|
2396
|
+
parsed = {
|
|
2397
|
+
command: cmd,
|
|
2398
|
+
args,
|
|
2399
|
+
options: opts,
|
|
2400
|
+
file: cmd,
|
|
2401
|
+
original: {
|
|
2402
|
+
cmd,
|
|
2403
|
+
args
|
|
2404
|
+
}
|
|
2405
|
+
};
|
|
2406
|
+
} else {
|
|
2407
|
+
parsed = crossSpawn._parse(cmd, args, opts);
|
|
2408
|
+
}
|
|
2409
|
+
opts = Object.assign({
|
|
2410
|
+
maxBuffer: TEN_MEGABYTES,
|
|
2411
|
+
buffer: true,
|
|
2412
|
+
stripEof: true,
|
|
2413
|
+
preferLocal: true,
|
|
2414
|
+
localDir: parsed.options.cwd || process.cwd(),
|
|
2415
|
+
encoding: "utf8",
|
|
2416
|
+
reject: true,
|
|
2417
|
+
cleanup: true
|
|
2418
|
+
}, parsed.options);
|
|
2419
|
+
opts.stdio = stdio(opts);
|
|
2420
|
+
if (opts.preferLocal) {
|
|
2421
|
+
opts.env = npmRunPath.env(Object.assign({}, opts, { cwd: opts.localDir }));
|
|
2422
|
+
}
|
|
2423
|
+
if (opts.detached) {
|
|
2424
|
+
opts.cleanup = false;
|
|
2425
|
+
}
|
|
2426
|
+
if (process.platform === "win32" && path.basename(parsed.command) === "cmd.exe") {
|
|
2427
|
+
parsed.args.unshift("/q");
|
|
2428
|
+
}
|
|
2429
|
+
return {
|
|
2430
|
+
cmd: parsed.command,
|
|
2431
|
+
args: parsed.args,
|
|
2432
|
+
opts,
|
|
2433
|
+
parsed
|
|
2434
|
+
};
|
|
2435
|
+
}
|
|
2436
|
+
function handleInput(spawned, input) {
|
|
2437
|
+
if (input === null || input === void 0) {
|
|
2438
|
+
return;
|
|
2439
|
+
}
|
|
2440
|
+
if (isStream(input)) {
|
|
2441
|
+
input.pipe(spawned.stdin);
|
|
2442
|
+
} else {
|
|
2443
|
+
spawned.stdin.end(input);
|
|
2444
|
+
}
|
|
2445
|
+
}
|
|
2446
|
+
function handleOutput(opts, val) {
|
|
2447
|
+
if (val && opts.stripEof) {
|
|
2448
|
+
val = stripEof(val);
|
|
2449
|
+
}
|
|
2450
|
+
return val;
|
|
2451
|
+
}
|
|
2452
|
+
function handleShell(fn, cmd, opts) {
|
|
2453
|
+
let file = "/bin/sh";
|
|
2454
|
+
let args = ["-c", cmd];
|
|
2455
|
+
opts = Object.assign({}, opts);
|
|
2456
|
+
if (process.platform === "win32") {
|
|
2457
|
+
opts.__winShell = true;
|
|
2458
|
+
file = process.env.comspec || "cmd.exe";
|
|
2459
|
+
args = ["/s", "/c", `"${cmd}"`];
|
|
2460
|
+
opts.windowsVerbatimArguments = true;
|
|
2461
|
+
}
|
|
2462
|
+
if (opts.shell) {
|
|
2463
|
+
file = opts.shell;
|
|
2464
|
+
delete opts.shell;
|
|
2465
|
+
}
|
|
2466
|
+
return fn(file, args, opts);
|
|
2467
|
+
}
|
|
2468
|
+
function getStream(process2, stream, { encoding, buffer, maxBuffer }) {
|
|
2469
|
+
if (!process2[stream]) {
|
|
2470
|
+
return null;
|
|
2471
|
+
}
|
|
2472
|
+
let ret;
|
|
2473
|
+
if (!buffer) {
|
|
2474
|
+
ret = new Promise((resolve, reject) => {
|
|
2475
|
+
process2[stream].once("end", resolve).once("error", reject);
|
|
2476
|
+
});
|
|
2477
|
+
} else if (encoding) {
|
|
2478
|
+
ret = _getStream(process2[stream], {
|
|
2479
|
+
encoding,
|
|
2480
|
+
maxBuffer
|
|
2481
|
+
});
|
|
2482
|
+
} else {
|
|
2483
|
+
ret = _getStream.buffer(process2[stream], { maxBuffer });
|
|
2484
|
+
}
|
|
2485
|
+
return ret.catch((err) => {
|
|
2486
|
+
err.stream = stream;
|
|
2487
|
+
err.message = `${stream} ${err.message}`;
|
|
2488
|
+
throw err;
|
|
2489
|
+
});
|
|
2490
|
+
}
|
|
2491
|
+
function makeError(result, options) {
|
|
2492
|
+
const { stdout, stderr } = result;
|
|
2493
|
+
let err = result.error;
|
|
2494
|
+
const { code, signal } = result;
|
|
2495
|
+
const { parsed, joinedCmd } = options;
|
|
2496
|
+
const timedOut = options.timedOut || false;
|
|
2497
|
+
if (!err) {
|
|
2498
|
+
let output = "";
|
|
2499
|
+
if (Array.isArray(parsed.opts.stdio)) {
|
|
2500
|
+
if (parsed.opts.stdio[2] !== "inherit") {
|
|
2501
|
+
output += output.length > 0 ? stderr : `
|
|
2502
|
+
${stderr}`;
|
|
2503
|
+
}
|
|
2504
|
+
if (parsed.opts.stdio[1] !== "inherit") {
|
|
2505
|
+
output += `
|
|
2506
|
+
${stdout}`;
|
|
2507
|
+
}
|
|
2508
|
+
} else if (parsed.opts.stdio !== "inherit") {
|
|
2509
|
+
output = `
|
|
2510
|
+
${stderr}${stdout}`;
|
|
2511
|
+
}
|
|
2512
|
+
err = new Error(`Command failed: ${joinedCmd}${output}`);
|
|
2513
|
+
err.code = code < 0 ? errname(code) : code;
|
|
2514
|
+
}
|
|
2515
|
+
err.stdout = stdout;
|
|
2516
|
+
err.stderr = stderr;
|
|
2517
|
+
err.failed = true;
|
|
2518
|
+
err.signal = signal || null;
|
|
2519
|
+
err.cmd = joinedCmd;
|
|
2520
|
+
err.timedOut = timedOut;
|
|
2521
|
+
return err;
|
|
2522
|
+
}
|
|
2523
|
+
function joinCmd(cmd, args) {
|
|
2524
|
+
let joinedCmd = cmd;
|
|
2525
|
+
if (Array.isArray(args) && args.length > 0) {
|
|
2526
|
+
joinedCmd += " " + args.join(" ");
|
|
2527
|
+
}
|
|
2528
|
+
return joinedCmd;
|
|
2529
|
+
}
|
|
2530
|
+
module2.exports = (cmd, args, opts) => {
|
|
2531
|
+
const parsed = handleArgs(cmd, args, opts);
|
|
2532
|
+
const { encoding, buffer, maxBuffer } = parsed.opts;
|
|
2533
|
+
const joinedCmd = joinCmd(cmd, args);
|
|
2534
|
+
let spawned;
|
|
2535
|
+
try {
|
|
2536
|
+
spawned = childProcess.spawn(parsed.cmd, parsed.args, parsed.opts);
|
|
2537
|
+
} catch (err) {
|
|
2538
|
+
return Promise.reject(err);
|
|
2539
|
+
}
|
|
2540
|
+
let removeExitHandler;
|
|
2541
|
+
if (parsed.opts.cleanup) {
|
|
2542
|
+
removeExitHandler = onExit(() => {
|
|
2543
|
+
spawned.kill();
|
|
2544
|
+
});
|
|
2545
|
+
}
|
|
2546
|
+
let timeoutId = null;
|
|
2547
|
+
let timedOut = false;
|
|
2548
|
+
const cleanup = () => {
|
|
2549
|
+
if (timeoutId) {
|
|
2550
|
+
clearTimeout(timeoutId);
|
|
2551
|
+
timeoutId = null;
|
|
2552
|
+
}
|
|
2553
|
+
if (removeExitHandler) {
|
|
2554
|
+
removeExitHandler();
|
|
2555
|
+
}
|
|
2556
|
+
};
|
|
2557
|
+
if (parsed.opts.timeout > 0) {
|
|
2558
|
+
timeoutId = setTimeout(() => {
|
|
2559
|
+
timeoutId = null;
|
|
2560
|
+
timedOut = true;
|
|
2561
|
+
spawned.kill(parsed.opts.killSignal);
|
|
2562
|
+
}, parsed.opts.timeout);
|
|
2563
|
+
}
|
|
2564
|
+
const processDone = new Promise((resolve) => {
|
|
2565
|
+
spawned.on("exit", (code, signal) => {
|
|
2566
|
+
cleanup();
|
|
2567
|
+
resolve({ code, signal });
|
|
2568
|
+
});
|
|
2569
|
+
spawned.on("error", (err) => {
|
|
2570
|
+
cleanup();
|
|
2571
|
+
resolve({ error: err });
|
|
2572
|
+
});
|
|
2573
|
+
if (spawned.stdin) {
|
|
2574
|
+
spawned.stdin.on("error", (err) => {
|
|
2575
|
+
cleanup();
|
|
2576
|
+
resolve({ error: err });
|
|
2577
|
+
});
|
|
2578
|
+
}
|
|
2579
|
+
});
|
|
2580
|
+
function destroy() {
|
|
2581
|
+
if (spawned.stdout) {
|
|
2582
|
+
spawned.stdout.destroy();
|
|
2583
|
+
}
|
|
2584
|
+
if (spawned.stderr) {
|
|
2585
|
+
spawned.stderr.destroy();
|
|
2586
|
+
}
|
|
2587
|
+
}
|
|
2588
|
+
const handlePromise = () => pFinally(Promise.all([
|
|
2589
|
+
processDone,
|
|
2590
|
+
getStream(spawned, "stdout", { encoding, buffer, maxBuffer }),
|
|
2591
|
+
getStream(spawned, "stderr", { encoding, buffer, maxBuffer })
|
|
2592
|
+
]).then((arr) => {
|
|
2593
|
+
const result = arr[0];
|
|
2594
|
+
result.stdout = arr[1];
|
|
2595
|
+
result.stderr = arr[2];
|
|
2596
|
+
if (result.error || result.code !== 0 || result.signal !== null) {
|
|
2597
|
+
const err = makeError(result, {
|
|
2598
|
+
joinedCmd,
|
|
2599
|
+
parsed,
|
|
2600
|
+
timedOut
|
|
2601
|
+
});
|
|
2602
|
+
err.killed = err.killed || spawned.killed;
|
|
2603
|
+
if (!parsed.opts.reject) {
|
|
2604
|
+
return err;
|
|
2605
|
+
}
|
|
2606
|
+
throw err;
|
|
2607
|
+
}
|
|
2608
|
+
return {
|
|
2609
|
+
stdout: handleOutput(parsed.opts, result.stdout),
|
|
2610
|
+
stderr: handleOutput(parsed.opts, result.stderr),
|
|
2611
|
+
code: 0,
|
|
2612
|
+
failed: false,
|
|
2613
|
+
killed: false,
|
|
2614
|
+
signal: null,
|
|
2615
|
+
cmd: joinedCmd,
|
|
2616
|
+
timedOut: false
|
|
2617
|
+
};
|
|
2618
|
+
}), destroy);
|
|
2619
|
+
crossSpawn._enoent.hookChildProcess(spawned, parsed.parsed);
|
|
2620
|
+
handleInput(spawned, parsed.opts.input);
|
|
2621
|
+
spawned.then = (onfulfilled, onrejected) => handlePromise().then(onfulfilled, onrejected);
|
|
2622
|
+
spawned.catch = (onrejected) => handlePromise().catch(onrejected);
|
|
2623
|
+
return spawned;
|
|
2624
|
+
};
|
|
2625
|
+
module2.exports.stdout = (...args) => module2.exports(...args).then((x) => x.stdout);
|
|
2626
|
+
module2.exports.stderr = (...args) => module2.exports(...args).then((x) => x.stderr);
|
|
2627
|
+
module2.exports.shell = (cmd, opts) => handleShell(module2.exports, cmd, opts);
|
|
2628
|
+
module2.exports.sync = (cmd, args, opts) => {
|
|
2629
|
+
const parsed = handleArgs(cmd, args, opts);
|
|
2630
|
+
const joinedCmd = joinCmd(cmd, args);
|
|
2631
|
+
if (isStream(parsed.opts.input)) {
|
|
2632
|
+
throw new TypeError("The `input` option cannot be a stream in sync mode");
|
|
2633
|
+
}
|
|
2634
|
+
const result = childProcess.spawnSync(parsed.cmd, parsed.args, parsed.opts);
|
|
2635
|
+
result.code = result.status;
|
|
2636
|
+
if (result.error || result.status !== 0 || result.signal !== null) {
|
|
2637
|
+
const err = makeError(result, {
|
|
2638
|
+
joinedCmd,
|
|
2639
|
+
parsed
|
|
2640
|
+
});
|
|
2641
|
+
if (!parsed.opts.reject) {
|
|
2642
|
+
return err;
|
|
2643
|
+
}
|
|
2644
|
+
throw err;
|
|
2645
|
+
}
|
|
2646
|
+
return {
|
|
2647
|
+
stdout: handleOutput(parsed.opts, result.stdout),
|
|
2648
|
+
stderr: handleOutput(parsed.opts, result.stderr),
|
|
2649
|
+
code: 0,
|
|
2650
|
+
failed: false,
|
|
2651
|
+
signal: null,
|
|
2652
|
+
cmd: joinedCmd,
|
|
2653
|
+
timedOut: false
|
|
2654
|
+
};
|
|
2655
|
+
};
|
|
2656
|
+
module2.exports.shellSync = (cmd, opts) => handleShell(module2.exports.sync, cmd, opts);
|
|
2657
|
+
}
|
|
2658
|
+
});
|
|
2659
|
+
|
|
2660
|
+
// ../../node_modules/.pnpm/which@3.0.0/node_modules/which/lib/index.js
|
|
2661
|
+
var require_lib = __commonJS({
|
|
2662
|
+
"../../node_modules/.pnpm/which@3.0.0/node_modules/which/lib/index.js"(exports, module2) {
|
|
2663
|
+
var isexe = require_isexe();
|
|
2664
|
+
var { join: join2, delimiter, sep, posix } = require("path");
|
|
2665
|
+
var isWindows = process.platform === "win32";
|
|
2666
|
+
var rSlash = new RegExp(`[${posix.sep}${sep === posix.sep ? "" : sep}]`.replace(/(\\)/g, "\\$1"));
|
|
2667
|
+
var rRel = new RegExp(`^\\.${rSlash.source}`);
|
|
2668
|
+
var getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: "ENOENT" });
|
|
2669
|
+
var getPathInfo = (cmd, {
|
|
2670
|
+
path: optPath = process.env.PATH,
|
|
2671
|
+
pathExt: optPathExt = process.env.PATHEXT,
|
|
2672
|
+
delimiter: optDelimiter = delimiter
|
|
2673
|
+
}) => {
|
|
2674
|
+
const pathEnv = cmd.match(rSlash) ? [""] : [
|
|
2675
|
+
// windows always checks the cwd first
|
|
2676
|
+
...isWindows ? [process.cwd()] : [],
|
|
2677
|
+
...(optPath || /* istanbul ignore next: very unusual */
|
|
2678
|
+
"").split(optDelimiter)
|
|
2679
|
+
];
|
|
2680
|
+
if (isWindows) {
|
|
2681
|
+
const pathExtExe = optPathExt || [".EXE", ".CMD", ".BAT", ".COM"].join(optDelimiter);
|
|
2682
|
+
const pathExt = pathExtExe.split(optDelimiter);
|
|
2683
|
+
if (cmd.includes(".") && pathExt[0] !== "") {
|
|
2684
|
+
pathExt.unshift("");
|
|
2685
|
+
}
|
|
2686
|
+
return { pathEnv, pathExt, pathExtExe };
|
|
2687
|
+
}
|
|
2688
|
+
return { pathEnv, pathExt: [""] };
|
|
2689
|
+
};
|
|
2690
|
+
var getPathPart = (raw, cmd) => {
|
|
2691
|
+
const pathPart = /^".*"$/.test(raw) ? raw.slice(1, -1) : raw;
|
|
2692
|
+
const prefix = !pathPart && rRel.test(cmd) ? cmd.slice(0, 2) : "";
|
|
2693
|
+
return prefix + join2(pathPart, cmd);
|
|
2694
|
+
};
|
|
2695
|
+
var which2 = async (cmd, opt = {}) => {
|
|
2696
|
+
const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt);
|
|
2697
|
+
const found = [];
|
|
2698
|
+
for (const envPart of pathEnv) {
|
|
2699
|
+
const p = getPathPart(envPart, cmd);
|
|
2700
|
+
for (const ext of pathExt) {
|
|
2701
|
+
const withExt = p + ext;
|
|
2702
|
+
const is = await isexe(withExt, { pathExt: pathExtExe, ignoreErrors: true });
|
|
2703
|
+
if (is) {
|
|
2704
|
+
if (!opt.all) {
|
|
2705
|
+
return withExt;
|
|
2706
|
+
}
|
|
2707
|
+
found.push(withExt);
|
|
2708
|
+
}
|
|
2709
|
+
}
|
|
2710
|
+
}
|
|
2711
|
+
if (opt.all && found.length) {
|
|
2712
|
+
return found;
|
|
2713
|
+
}
|
|
2714
|
+
if (opt.nothrow) {
|
|
2715
|
+
return null;
|
|
2716
|
+
}
|
|
2717
|
+
throw getNotFoundError(cmd);
|
|
2718
|
+
};
|
|
2719
|
+
var whichSync = (cmd, opt = {}) => {
|
|
2720
|
+
const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt);
|
|
2721
|
+
const found = [];
|
|
2722
|
+
for (const pathEnvPart of pathEnv) {
|
|
2723
|
+
const p = getPathPart(pathEnvPart, cmd);
|
|
2724
|
+
for (const ext of pathExt) {
|
|
2725
|
+
const withExt = p + ext;
|
|
2726
|
+
const is = isexe.sync(withExt, { pathExt: pathExtExe, ignoreErrors: true });
|
|
2727
|
+
if (is) {
|
|
2728
|
+
if (!opt.all) {
|
|
2729
|
+
return withExt;
|
|
2730
|
+
}
|
|
2731
|
+
found.push(withExt);
|
|
2732
|
+
}
|
|
2733
|
+
}
|
|
2734
|
+
}
|
|
2735
|
+
if (opt.all && found.length) {
|
|
2736
|
+
return found;
|
|
2737
|
+
}
|
|
2738
|
+
if (opt.nothrow) {
|
|
2739
|
+
return null;
|
|
2740
|
+
}
|
|
2741
|
+
throw getNotFoundError(cmd);
|
|
2742
|
+
};
|
|
2743
|
+
module2.exports = which2;
|
|
2744
|
+
which2.sync = whichSync;
|
|
2745
|
+
}
|
|
2746
|
+
});
|
|
2747
|
+
|
|
2748
|
+
// src/index.ts
|
|
2749
|
+
var src_exports = {};
|
|
2750
|
+
__export(src_exports, {
|
|
2751
|
+
build: () => build,
|
|
2752
|
+
downloadFilesInWorkPath: () => downloadFilesInWorkPath,
|
|
2753
|
+
installRequirement: () => installRequirement,
|
|
2754
|
+
installRequirementsFile: () => installRequirementsFile,
|
|
2755
|
+
shouldServe: () => import_build_utils3.shouldServe,
|
|
2756
|
+
version: () => version
|
|
2757
|
+
});
|
|
2758
|
+
module.exports = __toCommonJS(src_exports);
|
|
2759
|
+
var import_fs = __toESM(require("fs"));
|
|
2760
|
+
var import_execa2 = __toESM(require_execa());
|
|
2761
|
+
var import_util = require("util");
|
|
2762
|
+
var import_path = require("path");
|
|
2763
|
+
var import_build_utils3 = require("@vercel/build-utils");
|
|
2764
|
+
|
|
2765
|
+
// src/install.ts
|
|
2766
|
+
var import_execa = __toESM(require_execa());
|
|
2767
|
+
var import_build_utils = require("@vercel/build-utils");
|
|
2768
|
+
var makeDependencyCheckCode = (dependency) => `
|
|
2769
|
+
from importlib import util
|
|
2770
|
+
dep = '${dependency}'.replace('-', '_')
|
|
2771
|
+
spec = util.find_spec(dep)
|
|
2772
|
+
print(spec.origin)
|
|
2773
|
+
`;
|
|
2774
|
+
async function isInstalled(pythonPath, dependency, cwd) {
|
|
2775
|
+
try {
|
|
2776
|
+
const { stdout } = await (0, import_execa.default)(
|
|
2777
|
+
pythonPath,
|
|
2778
|
+
["-c", makeDependencyCheckCode(dependency)],
|
|
2779
|
+
{
|
|
2780
|
+
stdio: "pipe",
|
|
2781
|
+
cwd
|
|
2782
|
+
}
|
|
2783
|
+
);
|
|
2784
|
+
return stdout.startsWith(cwd);
|
|
2785
|
+
} catch (err) {
|
|
2786
|
+
return false;
|
|
2787
|
+
}
|
|
2788
|
+
}
|
|
2789
|
+
var makeRequirementsCheckCode = (requirementsPath) => `
|
|
2790
|
+
import distutils.text_file
|
|
2791
|
+
import pkg_resources
|
|
2792
|
+
from pkg_resources import DistributionNotFound, VersionConflict
|
|
2793
|
+
dependencies = distutils.text_file.TextFile(filename='${requirementsPath}').readlines()
|
|
2794
|
+
pkg_resources.require(dependencies)
|
|
2795
|
+
`;
|
|
2796
|
+
async function areRequirementsInstalled(pythonPath, requirementsPath, cwd) {
|
|
2797
|
+
try {
|
|
2798
|
+
await (0, import_execa.default)(
|
|
2799
|
+
pythonPath,
|
|
2800
|
+
["-c", makeRequirementsCheckCode(requirementsPath)],
|
|
2801
|
+
{
|
|
2802
|
+
stdio: "pipe",
|
|
2803
|
+
cwd
|
|
2804
|
+
}
|
|
2805
|
+
);
|
|
2806
|
+
return true;
|
|
2807
|
+
} catch (err) {
|
|
2808
|
+
return false;
|
|
2809
|
+
}
|
|
2810
|
+
}
|
|
2811
|
+
async function pipInstall(pipPath, workPath, args) {
|
|
2812
|
+
const target = ".";
|
|
2813
|
+
process.env.PIP_USER = "0";
|
|
2814
|
+
const cmdArgs = [
|
|
2815
|
+
"install",
|
|
2816
|
+
"--disable-pip-version-check",
|
|
2817
|
+
"--target",
|
|
2818
|
+
target,
|
|
2819
|
+
...args
|
|
2820
|
+
];
|
|
2821
|
+
const pretty = `${pipPath} ${cmdArgs.join(" ")}`;
|
|
2822
|
+
(0, import_build_utils.debug)(`Running "${pretty}"...`);
|
|
2823
|
+
try {
|
|
2824
|
+
await (0, import_execa.default)(pipPath, cmdArgs, {
|
|
2825
|
+
cwd: workPath
|
|
2826
|
+
});
|
|
2827
|
+
} catch (err) {
|
|
2828
|
+
console.log(`Failed to run "${pretty}"`);
|
|
2829
|
+
throw err;
|
|
2830
|
+
}
|
|
2831
|
+
}
|
|
2832
|
+
async function installRequirement({
|
|
2833
|
+
pythonPath,
|
|
2834
|
+
pipPath,
|
|
2835
|
+
dependency,
|
|
2836
|
+
version: version2,
|
|
2837
|
+
workPath,
|
|
2838
|
+
meta,
|
|
2839
|
+
args = []
|
|
2840
|
+
}) {
|
|
2841
|
+
if (meta.isDev && await isInstalled(pythonPath, dependency, workPath)) {
|
|
2842
|
+
(0, import_build_utils.debug)(
|
|
2843
|
+
`Skipping ${dependency} dependency installation, already installed in ${workPath}`
|
|
2844
|
+
);
|
|
2845
|
+
return;
|
|
2846
|
+
}
|
|
2847
|
+
const exact = `${dependency}==${version2}`;
|
|
2848
|
+
await pipInstall(pipPath, workPath, [exact, ...args]);
|
|
2849
|
+
}
|
|
2850
|
+
async function installRequirementsFile({
|
|
2851
|
+
pythonPath,
|
|
2852
|
+
pipPath,
|
|
2853
|
+
filePath,
|
|
2854
|
+
workPath,
|
|
2855
|
+
meta,
|
|
2856
|
+
args = []
|
|
2857
|
+
}) {
|
|
2858
|
+
if (meta.isDev && await areRequirementsInstalled(pythonPath, filePath, workPath)) {
|
|
2859
|
+
(0, import_build_utils.debug)(`Skipping requirements file installation, already installed`);
|
|
2860
|
+
return;
|
|
2861
|
+
}
|
|
2862
|
+
await pipInstall(pipPath, workPath, ["--upgrade", "-r", filePath, ...args]);
|
|
2863
|
+
}
|
|
2864
|
+
|
|
2865
|
+
// src/version.ts
|
|
2866
|
+
var import_build_utils2 = require("@vercel/build-utils");
|
|
2867
|
+
var import_which = __toESM(require_lib());
|
|
2868
|
+
var allOptions = [
|
|
2869
|
+
{
|
|
2870
|
+
version: "3.12",
|
|
2871
|
+
pipPath: "pip3.12",
|
|
2872
|
+
pythonPath: "python3.12",
|
|
2873
|
+
runtime: "python3.12"
|
|
2874
|
+
},
|
|
2875
|
+
{
|
|
2876
|
+
version: "3.11",
|
|
2877
|
+
pipPath: "pip3.11",
|
|
2878
|
+
pythonPath: "python3.11",
|
|
2879
|
+
runtime: "python3.11"
|
|
2880
|
+
},
|
|
2881
|
+
{
|
|
2882
|
+
version: "3.10",
|
|
2883
|
+
pipPath: "pip3.10",
|
|
2884
|
+
pythonPath: "python3.10",
|
|
2885
|
+
runtime: "python3.10"
|
|
2886
|
+
},
|
|
2887
|
+
{
|
|
2888
|
+
version: "3.9",
|
|
2889
|
+
pipPath: "pip3.9",
|
|
2890
|
+
pythonPath: "python3.9",
|
|
2891
|
+
runtime: "python3.9"
|
|
2892
|
+
},
|
|
2893
|
+
{
|
|
2894
|
+
version: "3.6",
|
|
2895
|
+
pipPath: "pip3.6",
|
|
2896
|
+
pythonPath: "python3.6",
|
|
2897
|
+
runtime: "python3.6",
|
|
2898
|
+
discontinueDate: /* @__PURE__ */ new Date("2022-07-18")
|
|
2899
|
+
}
|
|
2900
|
+
];
|
|
2901
|
+
function getDevPythonVersion() {
|
|
2902
|
+
return {
|
|
2903
|
+
version: "3",
|
|
2904
|
+
pipPath: "pip3",
|
|
2905
|
+
pythonPath: "python3",
|
|
2906
|
+
runtime: "python3"
|
|
2907
|
+
};
|
|
2908
|
+
}
|
|
2909
|
+
function getLatestPythonVersion({
|
|
2910
|
+
isDev
|
|
2911
|
+
}) {
|
|
2912
|
+
if (isDev) {
|
|
2913
|
+
return getDevPythonVersion();
|
|
2914
|
+
}
|
|
2915
|
+
const selection = allOptions.find(isInstalled2);
|
|
2916
|
+
if (!selection) {
|
|
2917
|
+
throw new import_build_utils2.NowBuildError({
|
|
2918
|
+
code: "PYTHON_NOT_FOUND",
|
|
2919
|
+
link: "http://vercel.link/python-version",
|
|
2920
|
+
message: `Unable to find any supported Python versions.`
|
|
2921
|
+
});
|
|
2922
|
+
}
|
|
2923
|
+
return selection;
|
|
2924
|
+
}
|
|
2925
|
+
function getSupportedPythonVersion({
|
|
2926
|
+
isDev,
|
|
2927
|
+
pipLockPythonVersion
|
|
2928
|
+
}) {
|
|
2929
|
+
if (isDev) {
|
|
2930
|
+
return getDevPythonVersion();
|
|
2931
|
+
}
|
|
2932
|
+
let selection = getLatestPythonVersion({ isDev: false });
|
|
2933
|
+
if (typeof pipLockPythonVersion === "string") {
|
|
2934
|
+
const found = allOptions.find(
|
|
2935
|
+
(o) => o.version === pipLockPythonVersion && isInstalled2(o)
|
|
2936
|
+
);
|
|
2937
|
+
if (found) {
|
|
2938
|
+
selection = found;
|
|
2939
|
+
} else {
|
|
2940
|
+
console.warn(
|
|
2941
|
+
`Warning: Python version "${pipLockPythonVersion}" detected in Pipfile.lock is invalid and will be ignored. http://vercel.link/python-version`
|
|
2942
|
+
);
|
|
2943
|
+
}
|
|
2944
|
+
}
|
|
2945
|
+
if (isDiscontinued(selection)) {
|
|
2946
|
+
throw new import_build_utils2.NowBuildError({
|
|
2947
|
+
code: "BUILD_UTILS_PYTHON_VERSION_DISCONTINUED",
|
|
2948
|
+
link: "http://vercel.link/python-version",
|
|
2949
|
+
message: `Python version "${selection.version}" detected in Pipfile.lock is discontinued and must be upgraded.`
|
|
2950
|
+
});
|
|
2951
|
+
}
|
|
2952
|
+
if (selection.discontinueDate) {
|
|
2953
|
+
const d = selection.discontinueDate.toISOString().split("T")[0];
|
|
2954
|
+
console.warn(
|
|
2955
|
+
`Error: Python version "${selection.version}" detected in Pipfile.lock has reached End-of-Life. Deployments created on or after ${d} will fail to build. http://vercel.link/python-version`
|
|
2956
|
+
);
|
|
2957
|
+
}
|
|
2958
|
+
return selection;
|
|
2959
|
+
}
|
|
2960
|
+
function isDiscontinued({ discontinueDate }) {
|
|
2961
|
+
const today = Date.now();
|
|
2962
|
+
return discontinueDate !== void 0 && discontinueDate.getTime() <= today;
|
|
2963
|
+
}
|
|
2964
|
+
function isInstalled2({ pipPath, pythonPath }) {
|
|
2965
|
+
return Boolean(import_which.default.sync(pipPath, { nothrow: true })) && Boolean(import_which.default.sync(pythonPath, { nothrow: true }));
|
|
2966
|
+
}
|
|
2967
|
+
|
|
2968
|
+
// src/index.ts
|
|
2969
|
+
var readFile = (0, import_util.promisify)(import_fs.default.readFile);
|
|
2970
|
+
var writeFile = (0, import_util.promisify)(import_fs.default.writeFile);
|
|
2971
|
+
async function pipenvConvert(cmd, srcDir) {
|
|
2972
|
+
(0, import_build_utils3.debug)("Running pipfile2req...");
|
|
2973
|
+
try {
|
|
2974
|
+
const out = await import_execa2.default.stdout(cmd, [], {
|
|
2975
|
+
cwd: srcDir
|
|
2976
|
+
});
|
|
2977
|
+
(0, import_build_utils3.debug)("Contents of requirements.txt is: " + out);
|
|
2978
|
+
import_fs.default.writeFileSync((0, import_path.join)(srcDir, "requirements.txt"), out);
|
|
2979
|
+
} catch (err) {
|
|
2980
|
+
console.log('Failed to run "pipfile2req"');
|
|
2981
|
+
throw err;
|
|
2982
|
+
}
|
|
2983
|
+
}
|
|
2984
|
+
var version = 3;
|
|
2985
|
+
async function downloadFilesInWorkPath({
|
|
2986
|
+
entrypoint,
|
|
2987
|
+
workPath,
|
|
2988
|
+
files,
|
|
2989
|
+
meta = {}
|
|
2990
|
+
}) {
|
|
2991
|
+
(0, import_build_utils3.debug)("Downloading user files...");
|
|
2992
|
+
let downloadedFiles = await (0, import_build_utils3.download)(files, workPath, meta);
|
|
2993
|
+
if (meta.isDev) {
|
|
2994
|
+
const { devCacheDir = (0, import_path.join)(workPath, ".now", "cache") } = meta;
|
|
2995
|
+
const destCache = (0, import_path.join)(devCacheDir, (0, import_path.basename)(entrypoint, ".py"));
|
|
2996
|
+
await (0, import_build_utils3.download)(downloadedFiles, destCache);
|
|
2997
|
+
downloadedFiles = await (0, import_build_utils3.glob)("**", destCache);
|
|
2998
|
+
workPath = destCache;
|
|
2999
|
+
}
|
|
3000
|
+
return workPath;
|
|
3001
|
+
}
|
|
3002
|
+
var build = async ({
|
|
3003
|
+
workPath,
|
|
3004
|
+
files: originalFiles,
|
|
3005
|
+
entrypoint,
|
|
3006
|
+
meta = {},
|
|
3007
|
+
config
|
|
3008
|
+
}) => {
|
|
3009
|
+
let pythonVersion = getLatestPythonVersion(meta);
|
|
3010
|
+
workPath = await downloadFilesInWorkPath({
|
|
3011
|
+
workPath,
|
|
3012
|
+
files: originalFiles,
|
|
3013
|
+
entrypoint,
|
|
3014
|
+
meta
|
|
3015
|
+
});
|
|
3016
|
+
try {
|
|
3017
|
+
if (meta.isDev) {
|
|
3018
|
+
const setupCfg = (0, import_path.join)(workPath, "setup.cfg");
|
|
3019
|
+
await writeFile(setupCfg, "[install]\nprefix=\n");
|
|
3020
|
+
}
|
|
3021
|
+
} catch (err) {
|
|
3022
|
+
console.log('Failed to create "setup.cfg" file');
|
|
3023
|
+
throw err;
|
|
3024
|
+
}
|
|
3025
|
+
console.log("Installing required dependencies...");
|
|
3026
|
+
await installRequirement({
|
|
3027
|
+
pythonPath: pythonVersion.pythonPath,
|
|
3028
|
+
pipPath: pythonVersion.pipPath,
|
|
3029
|
+
dependency: "werkzeug",
|
|
3030
|
+
version: "1.0.1",
|
|
3031
|
+
workPath,
|
|
3032
|
+
meta
|
|
3033
|
+
});
|
|
3034
|
+
let fsFiles = await (0, import_build_utils3.glob)("**", workPath);
|
|
3035
|
+
const entryDirectory = (0, import_path.dirname)(entrypoint);
|
|
3036
|
+
const pipfileLockDir = fsFiles[(0, import_path.join)(entryDirectory, "Pipfile.lock")] ? (0, import_path.join)(workPath, entryDirectory) : fsFiles["Pipfile.lock"] ? workPath : null;
|
|
3037
|
+
if (pipfileLockDir) {
|
|
3038
|
+
(0, import_build_utils3.debug)('Found "Pipfile.lock"');
|
|
3039
|
+
let lock = {};
|
|
3040
|
+
try {
|
|
3041
|
+
const json = await readFile((0, import_path.join)(pipfileLockDir, "Pipfile.lock"), "utf8");
|
|
3042
|
+
lock = JSON.parse(json);
|
|
3043
|
+
} catch (err) {
|
|
3044
|
+
throw new import_build_utils3.NowBuildError({
|
|
3045
|
+
code: "INVALID_PIPFILE_LOCK",
|
|
3046
|
+
message: "Unable to parse Pipfile.lock"
|
|
3047
|
+
});
|
|
3048
|
+
}
|
|
3049
|
+
pythonVersion = getSupportedPythonVersion({
|
|
3050
|
+
isDev: meta.isDev,
|
|
3051
|
+
pipLockPythonVersion: lock?._meta?.requires?.python_version
|
|
3052
|
+
});
|
|
3053
|
+
const tempDir = await (0, import_build_utils3.getWriteableDirectory)();
|
|
3054
|
+
await installRequirement({
|
|
3055
|
+
pythonPath: pythonVersion.pythonPath,
|
|
3056
|
+
pipPath: pythonVersion.pipPath,
|
|
3057
|
+
dependency: "pipfile-requirements",
|
|
3058
|
+
version: "0.3.0",
|
|
3059
|
+
workPath: tempDir,
|
|
3060
|
+
meta,
|
|
3061
|
+
args: ["--no-warn-script-location"]
|
|
3062
|
+
});
|
|
3063
|
+
process.env.PYTHONPATH = tempDir;
|
|
3064
|
+
const convertCmd = (0, import_path.join)(tempDir, "bin", "pipfile2req");
|
|
3065
|
+
await pipenvConvert(convertCmd, pipfileLockDir);
|
|
3066
|
+
}
|
|
3067
|
+
fsFiles = await (0, import_build_utils3.glob)("**", workPath);
|
|
3068
|
+
const requirementsTxt = (0, import_path.join)(entryDirectory, "requirements.txt");
|
|
3069
|
+
if (fsFiles[requirementsTxt]) {
|
|
3070
|
+
(0, import_build_utils3.debug)('Found local "requirements.txt"');
|
|
3071
|
+
const requirementsTxtPath = fsFiles[requirementsTxt].fsPath;
|
|
3072
|
+
await installRequirementsFile({
|
|
3073
|
+
pythonPath: pythonVersion.pythonPath,
|
|
3074
|
+
pipPath: pythonVersion.pipPath,
|
|
3075
|
+
filePath: requirementsTxtPath,
|
|
3076
|
+
workPath,
|
|
3077
|
+
meta
|
|
3078
|
+
});
|
|
3079
|
+
} else if (fsFiles["requirements.txt"]) {
|
|
3080
|
+
(0, import_build_utils3.debug)('Found global "requirements.txt"');
|
|
3081
|
+
const requirementsTxtPath = fsFiles["requirements.txt"].fsPath;
|
|
3082
|
+
await installRequirementsFile({
|
|
3083
|
+
pythonPath: pythonVersion.pythonPath,
|
|
3084
|
+
pipPath: pythonVersion.pipPath,
|
|
3085
|
+
filePath: requirementsTxtPath,
|
|
3086
|
+
workPath,
|
|
3087
|
+
meta
|
|
3088
|
+
});
|
|
3089
|
+
}
|
|
3090
|
+
const originalPyPath = (0, import_path.join)(__dirname, "..", "vc_init.py");
|
|
3091
|
+
const originalHandlerPyContents = await readFile(originalPyPath, "utf8");
|
|
3092
|
+
(0, import_build_utils3.debug)("Entrypoint is", entrypoint);
|
|
3093
|
+
const moduleName = entrypoint.replace(/\//g, ".").replace(/\.py$/, "");
|
|
3094
|
+
const suffix = meta.isDev && !entrypoint.endsWith(".py") ? ".py" : "";
|
|
3095
|
+
const entrypointWithSuffix = `${entrypoint}${suffix}`;
|
|
3096
|
+
(0, import_build_utils3.debug)("Entrypoint with suffix is", entrypointWithSuffix);
|
|
3097
|
+
const handlerPyContents = originalHandlerPyContents.replace(/__VC_HANDLER_MODULE_NAME/g, moduleName).replace(/__VC_HANDLER_ENTRYPOINT/g, entrypointWithSuffix);
|
|
3098
|
+
const globOptions = {
|
|
3099
|
+
cwd: workPath,
|
|
3100
|
+
ignore: config && typeof config.excludeFiles === "string" ? config.excludeFiles : [
|
|
3101
|
+
".git/**",
|
|
3102
|
+
".vercel/**",
|
|
3103
|
+
"**/node_modules/**",
|
|
3104
|
+
"**/.next/**",
|
|
3105
|
+
"**/.nuxt/**"
|
|
3106
|
+
]
|
|
3107
|
+
};
|
|
3108
|
+
const files = await (0, import_build_utils3.glob)("**", globOptions);
|
|
3109
|
+
const handlerPyFilename = "vc__handler__python";
|
|
3110
|
+
files[`${handlerPyFilename}.py`] = new import_build_utils3.FileBlob({ data: handlerPyContents });
|
|
3111
|
+
if (config.framework === "fasthtml") {
|
|
3112
|
+
const { SESSKEY = "" } = process.env;
|
|
3113
|
+
files[".sesskey"] = new import_build_utils3.FileBlob({ data: `"${SESSKEY}"` });
|
|
3114
|
+
}
|
|
3115
|
+
const output = new import_build_utils3.Lambda({
|
|
3116
|
+
files,
|
|
3117
|
+
handler: `${handlerPyFilename}.vc_handler`,
|
|
3118
|
+
runtime: pythonVersion.runtime,
|
|
3119
|
+
environment: {},
|
|
3120
|
+
supportsResponseStreaming: true
|
|
3121
|
+
});
|
|
3122
|
+
return { output };
|
|
3123
|
+
};
|
|
3124
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
3125
|
+
0 && (module.exports = {
|
|
3126
|
+
build,
|
|
3127
|
+
downloadFilesInWorkPath,
|
|
3128
|
+
installRequirement,
|
|
3129
|
+
installRequirementsFile,
|
|
3130
|
+
shouldServe,
|
|
3131
|
+
version
|
|
3132
|
+
});
|