@vercel/build-utils 7.1.0 → 7.1.1
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.
- package/CHANGELOG.md +8 -0
- package/build.mjs +3 -0
- package/dist/clone-env.js +39 -30
- package/dist/debug.js +28 -9
- package/dist/edge-function.js +36 -16
- package/dist/errors.js +83 -74
- package/dist/file-blob.js +63 -32
- package/dist/file-fs-ref.js +99 -65
- package/dist/file-ref.js +97 -77
- package/dist/fs/download.js +121 -91
- package/dist/fs/get-writable-directory.js +29 -9
- package/dist/fs/glob.js +104 -77
- package/dist/fs/node-version.js +115 -82
- package/dist/fs/normalize-path.js +28 -8
- package/dist/fs/read-config-file.js +66 -40
- package/dist/fs/rename.js +27 -14
- package/dist/fs/run-user-scripts.js +457 -419
- package/dist/fs/stream-to-buffer.js +51 -24
- package/dist/get-ignore-filter.js +80 -49
- package/dist/get-platform-env.js +41 -22
- package/dist/get-prefixed-env-vars.js +48 -32
- package/dist/hard-link-dir.js +90 -70
- package/dist/index.js +22266 -29403
- package/dist/lambda.js +208 -144
- package/dist/nodejs-lambda.js +40 -12
- package/dist/prerender.js +109 -64
- package/dist/schemas.js +83 -57
- package/dist/should-serve.js +43 -16
- package/dist/types.d.ts +4 -0
- package/dist/types.js +15 -1
- package/dist/validate-npmrc.js +38 -24
- package/package.json +3 -3
- package/build.js +0 -30
package/dist/fs/node-version.js
CHANGED
@@ -1,97 +1,130 @@
|
|
1
1
|
"use strict";
|
2
|
-
var
|
3
|
-
|
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 __export = (target, all) => {
|
9
|
+
for (var name in all)
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
4
11
|
};
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
14
|
+
for (let key of __getOwnPropNames(from))
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
17
|
+
}
|
18
|
+
return to;
|
19
|
+
};
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
26
|
+
mod
|
27
|
+
));
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
29
|
+
var node_version_exports = {};
|
30
|
+
__export(node_version_exports, {
|
31
|
+
getDiscontinuedNodeVersions: () => getDiscontinuedNodeVersions,
|
32
|
+
getLatestNodeVersion: () => getLatestNodeVersion,
|
33
|
+
getSupportedNodeVersion: () => getSupportedNodeVersion
|
34
|
+
});
|
35
|
+
module.exports = __toCommonJS(node_version_exports);
|
36
|
+
var import_semver = require("semver");
|
37
|
+
var import_errors = require("../errors");
|
38
|
+
var import_debug = __toESM(require("../debug"));
|
10
39
|
function getOptions() {
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
const options = [
|
41
|
+
{ major: 18, range: "18.x", runtime: "nodejs18.x" },
|
42
|
+
{
|
43
|
+
major: 16,
|
44
|
+
range: "16.x",
|
45
|
+
runtime: "nodejs16.x",
|
46
|
+
discontinueDate: /* @__PURE__ */ new Date("2024-02-06")
|
47
|
+
},
|
48
|
+
{
|
49
|
+
major: 14,
|
50
|
+
range: "14.x",
|
51
|
+
runtime: "nodejs14.x",
|
52
|
+
discontinueDate: /* @__PURE__ */ new Date("2023-08-15")
|
53
|
+
},
|
54
|
+
{
|
55
|
+
major: 12,
|
56
|
+
range: "12.x",
|
57
|
+
runtime: "nodejs12.x",
|
58
|
+
discontinueDate: /* @__PURE__ */ new Date("2022-10-03")
|
59
|
+
},
|
60
|
+
{
|
61
|
+
major: 10,
|
62
|
+
range: "10.x",
|
63
|
+
runtime: "nodejs10.x",
|
64
|
+
discontinueDate: /* @__PURE__ */ new Date("2021-04-20")
|
65
|
+
},
|
66
|
+
{
|
67
|
+
major: 8,
|
68
|
+
range: "8.10.x",
|
69
|
+
runtime: "nodejs8.10",
|
70
|
+
discontinueDate: /* @__PURE__ */ new Date("2020-01-06")
|
71
|
+
}
|
72
|
+
];
|
73
|
+
return options;
|
45
74
|
}
|
46
75
|
function getHint(isAuto = false) {
|
47
|
-
|
48
|
-
|
49
|
-
? `Please set Node.js Version to ${range} in your Project Settings to use Node.js ${major}.`
|
50
|
-
: `Please set "engines": { "node": "${range}" } in your \`package.json\` file to use Node.js ${major}.`;
|
76
|
+
const { major, range } = getLatestNodeVersion();
|
77
|
+
return isAuto ? `Please set Node.js Version to ${range} in your Project Settings to use Node.js ${major}.` : `Please set "engines": { "node": "${range}" } in your \`package.json\` file to use Node.js ${major}.`;
|
51
78
|
}
|
52
79
|
function getLatestNodeVersion() {
|
53
|
-
|
80
|
+
return getOptions()[0];
|
54
81
|
}
|
55
|
-
exports.getLatestNodeVersion = getLatestNodeVersion;
|
56
82
|
function getDiscontinuedNodeVersions() {
|
57
|
-
|
83
|
+
return getOptions().filter(isDiscontinued);
|
58
84
|
}
|
59
|
-
exports.getDiscontinuedNodeVersions = getDiscontinuedNodeVersions;
|
60
85
|
async function getSupportedNodeVersion(engineRange, isAuto = false) {
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
});
|
76
|
-
}
|
77
|
-
}
|
78
|
-
if (isDiscontinued(selection)) {
|
79
|
-
const intro = `Node.js Version "${selection.range}" is discontinued and must be upgraded.`;
|
80
|
-
throw new errors_1.NowBuildError({
|
81
|
-
code: 'BUILD_UTILS_NODE_VERSION_DISCONTINUED',
|
82
|
-
link: 'http://vercel.link/node-version',
|
83
|
-
message: `${intro} ${getHint(isAuto)}`,
|
84
|
-
});
|
85
|
-
}
|
86
|
-
(0, debug_1.default)(`Selected Node.js ${selection.range}`);
|
87
|
-
if (selection.discontinueDate) {
|
88
|
-
const d = selection.discontinueDate.toISOString().split('T')[0];
|
89
|
-
console.warn(`Error: Node.js version ${selection.range} has reached End-of-Life. Deployments created on or after ${d} will fail to build. ${getHint(isAuto)}`);
|
86
|
+
let selection = getLatestNodeVersion();
|
87
|
+
if (engineRange) {
|
88
|
+
const found = (0, import_semver.validRange)(engineRange) && getOptions().some((o) => {
|
89
|
+
selection = o;
|
90
|
+
return (0, import_semver.intersects)(o.range, engineRange);
|
91
|
+
});
|
92
|
+
if (!found) {
|
93
|
+
throw new import_errors.NowBuildError({
|
94
|
+
code: "BUILD_UTILS_NODE_VERSION_INVALID",
|
95
|
+
link: "http://vercel.link/node-version",
|
96
|
+
message: `Found invalid Node.js Version: "${engineRange}". ${getHint(
|
97
|
+
isAuto
|
98
|
+
)}`
|
99
|
+
});
|
90
100
|
}
|
91
|
-
|
101
|
+
}
|
102
|
+
if (isDiscontinued(selection)) {
|
103
|
+
const intro = `Node.js Version "${selection.range}" is discontinued and must be upgraded.`;
|
104
|
+
throw new import_errors.NowBuildError({
|
105
|
+
code: "BUILD_UTILS_NODE_VERSION_DISCONTINUED",
|
106
|
+
link: "http://vercel.link/node-version",
|
107
|
+
message: `${intro} ${getHint(isAuto)}`
|
108
|
+
});
|
109
|
+
}
|
110
|
+
(0, import_debug.default)(`Selected Node.js ${selection.range}`);
|
111
|
+
if (selection.discontinueDate) {
|
112
|
+
const d = selection.discontinueDate.toISOString().split("T")[0];
|
113
|
+
console.warn(
|
114
|
+
`Error: Node.js version ${selection.range} has reached End-of-Life. Deployments created on or after ${d} will fail to build. ${getHint(
|
115
|
+
isAuto
|
116
|
+
)}`
|
117
|
+
);
|
118
|
+
}
|
119
|
+
return selection;
|
92
120
|
}
|
93
|
-
exports.getSupportedNodeVersion = getSupportedNodeVersion;
|
94
121
|
function isDiscontinued({ discontinueDate }) {
|
95
|
-
|
96
|
-
|
122
|
+
const today = Date.now();
|
123
|
+
return discontinueDate !== void 0 && discontinueDate.getTime() <= today;
|
97
124
|
}
|
125
|
+
// Annotate the CommonJS export names for ESM import in node:
|
126
|
+
0 && (module.exports = {
|
127
|
+
getDiscontinuedNodeVersions,
|
128
|
+
getLatestNodeVersion,
|
129
|
+
getSupportedNodeVersion
|
130
|
+
});
|
@@ -1,11 +1,31 @@
|
|
1
1
|
"use strict";
|
2
|
-
Object.defineProperty
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __export = (target, all) => {
|
7
|
+
for (var name in all)
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
+
};
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
+
for (let key of __getOwnPropNames(from))
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
+
}
|
16
|
+
return to;
|
17
|
+
};
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
+
var normalize_path_exports = {};
|
20
|
+
__export(normalize_path_exports, {
|
21
|
+
normalizePath: () => normalizePath
|
22
|
+
});
|
23
|
+
module.exports = __toCommonJS(normalize_path_exports);
|
24
|
+
const isWin = process.platform === "win32";
|
8
25
|
function normalizePath(p) {
|
9
|
-
|
26
|
+
return isWin ? p.replace(/\\/g, "/") : p;
|
10
27
|
}
|
11
|
-
|
28
|
+
// Annotate the CommonJS export names for ESM import in node:
|
29
|
+
0 && (module.exports = {
|
30
|
+
normalizePath
|
31
|
+
});
|
@@ -1,50 +1,76 @@
|
|
1
1
|
"use strict";
|
2
|
-
var
|
3
|
-
|
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 __export = (target, all) => {
|
9
|
+
for (var name in all)
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
4
11
|
};
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
14
|
+
for (let key of __getOwnPropNames(from))
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
17
|
+
}
|
18
|
+
return to;
|
19
|
+
};
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
26
|
+
mod
|
27
|
+
));
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
29
|
+
var read_config_file_exports = {};
|
30
|
+
__export(read_config_file_exports, {
|
31
|
+
readConfigFile: () => readConfigFile
|
32
|
+
});
|
33
|
+
module.exports = __toCommonJS(read_config_file_exports);
|
34
|
+
var import_js_yaml = __toESM(require("js-yaml"));
|
35
|
+
var import_toml = __toESM(require("@iarna/toml"));
|
36
|
+
var import_fs_extra = require("fs-extra");
|
37
|
+
var import_error_utils = require("@vercel/error-utils");
|
11
38
|
async function readFileOrNull(file) {
|
12
|
-
|
13
|
-
|
14
|
-
|
39
|
+
try {
|
40
|
+
const data = await (0, import_fs_extra.readFile)(file);
|
41
|
+
return data;
|
42
|
+
} catch (error) {
|
43
|
+
if (!(0, import_error_utils.isErrnoException)(error)) {
|
44
|
+
throw error;
|
15
45
|
}
|
16
|
-
|
17
|
-
|
18
|
-
throw error;
|
19
|
-
}
|
20
|
-
if (error.code !== 'ENOENT') {
|
21
|
-
throw error;
|
22
|
-
}
|
46
|
+
if (error.code !== "ENOENT") {
|
47
|
+
throw error;
|
23
48
|
}
|
24
|
-
|
49
|
+
}
|
50
|
+
return null;
|
25
51
|
}
|
26
52
|
async function readConfigFile(files) {
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
else if (name.endsWith('.yaml') || name.endsWith('.yml')) {
|
40
|
-
return js_yaml_1.default.safeLoad(str, { filename: name });
|
41
|
-
}
|
42
|
-
}
|
43
|
-
catch (error) {
|
44
|
-
console.log(`Error while parsing config file: "${name}"`);
|
45
|
-
}
|
53
|
+
files = Array.isArray(files) ? files : [files];
|
54
|
+
for (const name of files) {
|
55
|
+
const data = await readFileOrNull(name);
|
56
|
+
if (data) {
|
57
|
+
const str = data.toString("utf8");
|
58
|
+
try {
|
59
|
+
if (name.endsWith(".json")) {
|
60
|
+
return JSON.parse(str);
|
61
|
+
} else if (name.endsWith(".toml")) {
|
62
|
+
return import_toml.default.parse(str);
|
63
|
+
} else if (name.endsWith(".yaml") || name.endsWith(".yml")) {
|
64
|
+
return import_js_yaml.default.safeLoad(str, { filename: name });
|
46
65
|
}
|
66
|
+
} catch (error) {
|
67
|
+
console.log(`Error while parsing config file: "${name}"`);
|
68
|
+
}
|
47
69
|
}
|
48
|
-
|
70
|
+
}
|
71
|
+
return null;
|
49
72
|
}
|
50
|
-
|
73
|
+
// Annotate the CommonJS export names for ESM import in node:
|
74
|
+
0 && (module.exports = {
|
75
|
+
readConfigFile
|
76
|
+
});
|
package/dist/fs/rename.js
CHANGED
@@ -1,17 +1,30 @@
|
|
1
1
|
"use strict";
|
2
|
-
Object.defineProperty
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __export = (target, all) => {
|
7
|
+
for (var name in all)
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
+
};
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
+
for (let key of __getOwnPropNames(from))
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
+
}
|
16
|
+
return to;
|
17
|
+
};
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
+
var rename_exports = {};
|
20
|
+
__export(rename_exports, {
|
21
|
+
default: () => rename
|
22
|
+
});
|
23
|
+
module.exports = __toCommonJS(rename_exports);
|
10
24
|
function rename(files, delegate) {
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
25
|
+
const result = {};
|
26
|
+
for (const [name, file] of Object.entries(files)) {
|
27
|
+
result[delegate(name)] = file;
|
28
|
+
}
|
29
|
+
return result;
|
16
30
|
}
|
17
|
-
exports.default = rename;
|