@vercel/build-utils 7.10.0 → 7.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @vercel/build-utils
2
2
 
3
+ ## 7.11.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add `getOsRelease()` and `getProvidedRuntime()` functions ([#11370](https://github.com/vercel/vercel/pull/11370))
8
+
3
9
  ## 7.10.0
4
10
 
5
11
  ### Minor Changes
package/dist/index.d.ts CHANGED
@@ -22,6 +22,7 @@ export { FileBlob, FileFsRef, FileRef, Lambda, NodejsLambda, createLambda, Prere
22
22
  export { EdgeFunction } from './edge-function';
23
23
  export { readConfigFile } from './fs/read-config-file';
24
24
  export { normalizePath } from './fs/normalize-path';
25
+ export { getOsRelease, getProvidedRuntime } from './os';
25
26
  export * from './should-serve';
26
27
  export * from './schemas';
27
28
  export * from './types';
package/dist/index.js CHANGED
@@ -2893,8 +2893,8 @@ var require_graceful_fs = __commonJS({
2893
2893
  fs6.createReadStream = createReadStream;
2894
2894
  fs6.createWriteStream = createWriteStream;
2895
2895
  var fs$readFile = fs6.readFile;
2896
- fs6.readFile = readFile3;
2897
- function readFile3(path7, options, cb) {
2896
+ fs6.readFile = readFile4;
2897
+ function readFile4(path7, options, cb) {
2898
2898
  if (typeof options === "function")
2899
2899
  cb = options, options = null;
2900
2900
  return go$readFile(path7, options, cb);
@@ -4639,7 +4639,7 @@ var require_jsonfile = __commonJS({
4639
4639
  }
4640
4640
  return obj;
4641
4641
  }
4642
- var readFile3 = universalify.fromPromise(_readFile);
4642
+ var readFile4 = universalify.fromPromise(_readFile);
4643
4643
  function readFileSync(file, options = {}) {
4644
4644
  if (typeof options === "string") {
4645
4645
  options = { encoding: options };
@@ -4671,7 +4671,7 @@ var require_jsonfile = __commonJS({
4671
4671
  return fs5.writeFileSync(file, str, options);
4672
4672
  }
4673
4673
  var jsonfile = {
4674
- readFile: readFile3,
4674
+ readFile: readFile4,
4675
4675
  readFileSync,
4676
4676
  writeFile,
4677
4677
  writeFileSync
@@ -20379,7 +20379,7 @@ var require_dist = __commonJS({
20379
20379
  var src_exports2 = {};
20380
20380
  __export2(src_exports2, {
20381
20381
  errorToString: () => errorToString,
20382
- isErrnoException: () => isErrnoException2,
20382
+ isErrnoException: () => isErrnoException3,
20383
20383
  isError: () => isError,
20384
20384
  isErrorLike: () => isErrorLike,
20385
20385
  isObject: () => isObject,
@@ -20392,7 +20392,7 @@ var require_dist = __commonJS({
20392
20392
  var isError = (error) => {
20393
20393
  return import_node_util.default.types.isNativeError(error);
20394
20394
  };
20395
- var isErrnoException2 = (error) => {
20395
+ var isErrnoException3 = (error) => {
20396
20396
  return isError(error) && "code" in error;
20397
20397
  };
20398
20398
  var isErrorLike = (error) => isObject(error) && "message" in error;
@@ -20410,7 +20410,7 @@ var require_dist = __commonJS({
20410
20410
  return isErrorLike(error) ? Object.assign(new Error(errorMessage), error) : new Error(errorMessage);
20411
20411
  };
20412
20412
  function isSpawnError(v) {
20413
- return isErrnoException2(v) && "spawnargs" in v;
20413
+ return isErrnoException3(v) && "spawnargs" in v;
20414
20414
  }
20415
20415
  }
20416
20416
  });
@@ -20734,10 +20734,12 @@ __export(src_exports, {
20734
20734
  getNodeBinPath: () => getNodeBinPath,
20735
20735
  getNodeBinPaths: () => getNodeBinPaths,
20736
20736
  getNodeVersion: () => getNodeVersion,
20737
+ getOsRelease: () => getOsRelease,
20737
20738
  getPathForPackageManager: () => getPathForPackageManager,
20738
20739
  getPlatformEnv: () => getPlatformEnv,
20739
20740
  getPrefixedEnvVars: () => getPrefixedEnvVars,
20740
20741
  getPrettyError: () => getPrettyError,
20742
+ getProvidedRuntime: () => getProvidedRuntime,
20741
20743
  getScriptName: () => getScriptName,
20742
20744
  getSpawnOptions: () => getSpawnOptions,
20743
20745
  getSupportedNodeVersion: () => getSupportedNodeVersion,
@@ -22297,7 +22299,7 @@ function clearRelative(s) {
22297
22299
  return s.replace(/(\n|^)\.\//g, "$1");
22298
22300
  }
22299
22301
  async function get_ignore_filter_default(downloadPath, rootDirectory) {
22300
- const readFile3 = async (p) => {
22302
+ const readFile4 = async (p) => {
22301
22303
  try {
22302
22304
  return await import_fs_extra8.default.readFile(p, "utf8");
22303
22305
  } catch (error) {
@@ -22320,7 +22322,7 @@ async function get_ignore_filter_default(downloadPath, rootDirectory) {
22320
22322
  const ignoreContents = [];
22321
22323
  try {
22322
22324
  ignoreContents.push(
22323
- ...(await Promise.all([readFile3(vercelIgnorePath), readFile3(nowIgnorePath)])).filter(Boolean)
22325
+ ...(await Promise.all([readFile4(vercelIgnorePath), readFile4(nowIgnorePath)])).filter(Boolean)
22324
22326
  );
22325
22327
  } catch (error) {
22326
22328
  if (isCodedError(error) && error.code === "ENOTDIR") {
@@ -22470,6 +22472,39 @@ var EdgeFunction = class {
22470
22472
  }
22471
22473
  };
22472
22474
 
22475
+ // src/os.ts
22476
+ var import_fs_extra9 = __toESM(require_lib());
22477
+ var import_error_utils2 = __toESM(require_dist());
22478
+ async function getOsRelease() {
22479
+ try {
22480
+ const data = await (0, import_fs_extra9.readFile)("/etc/os-release", "utf8");
22481
+ return await parseOsRelease(data);
22482
+ } catch (err) {
22483
+ if ((0, import_error_utils2.isErrnoException)(err) && err.code === "ENOENT") {
22484
+ return null;
22485
+ }
22486
+ throw err;
22487
+ }
22488
+ }
22489
+ async function parseOsRelease(data) {
22490
+ const obj = {};
22491
+ for (const line of data.trim().split("\n")) {
22492
+ const m = /(?<key>.*)="(?<value>.*)"/.exec(line);
22493
+ if (!m?.groups) {
22494
+ continue;
22495
+ }
22496
+ obj[m.groups.key] = m.groups.value;
22497
+ }
22498
+ return obj;
22499
+ }
22500
+ async function getProvidedRuntime() {
22501
+ const os = await getOsRelease();
22502
+ if (!os) {
22503
+ return "provided.al2023";
22504
+ }
22505
+ return os.PRETTY_NAME === "Amazon Linux 2" ? "provided.al2" : "provided.al2023";
22506
+ }
22507
+
22473
22508
  // src/should-serve.ts
22474
22509
  var import_path9 = require("path");
22475
22510
  var shouldServe = ({
@@ -22578,10 +22613,12 @@ var buildsSchema = {
22578
22613
  getNodeBinPath,
22579
22614
  getNodeBinPaths,
22580
22615
  getNodeVersion,
22616
+ getOsRelease,
22581
22617
  getPathForPackageManager,
22582
22618
  getPlatformEnv,
22583
22619
  getPrefixedEnvVars,
22584
22620
  getPrettyError,
22621
+ getProvidedRuntime,
22585
22622
  getScriptName,
22586
22623
  getSpawnOptions,
22587
22624
  getSupportedNodeVersion,
package/dist/os.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export declare function getOsRelease(): Promise<Record<string, string> | null>;
2
+ export declare function parseOsRelease(data: string): Promise<Record<string, string>>;
3
+ export declare function getProvidedRuntime(): Promise<"provided.al2023" | "provided.al2">;
package/dist/os.js ADDED
@@ -0,0 +1,62 @@
1
+ "use strict";
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 os_exports = {};
20
+ __export(os_exports, {
21
+ getOsRelease: () => getOsRelease,
22
+ getProvidedRuntime: () => getProvidedRuntime,
23
+ parseOsRelease: () => parseOsRelease
24
+ });
25
+ module.exports = __toCommonJS(os_exports);
26
+ var import_fs_extra = require("fs-extra");
27
+ var import_error_utils = require("@vercel/error-utils");
28
+ async function getOsRelease() {
29
+ try {
30
+ const data = await (0, import_fs_extra.readFile)("/etc/os-release", "utf8");
31
+ return await parseOsRelease(data);
32
+ } catch (err) {
33
+ if ((0, import_error_utils.isErrnoException)(err) && err.code === "ENOENT") {
34
+ return null;
35
+ }
36
+ throw err;
37
+ }
38
+ }
39
+ async function parseOsRelease(data) {
40
+ const obj = {};
41
+ for (const line of data.trim().split("\n")) {
42
+ const m = /(?<key>.*)="(?<value>.*)"/.exec(line);
43
+ if (!m?.groups) {
44
+ continue;
45
+ }
46
+ obj[m.groups.key] = m.groups.value;
47
+ }
48
+ return obj;
49
+ }
50
+ async function getProvidedRuntime() {
51
+ const os = await getOsRelease();
52
+ if (!os) {
53
+ return "provided.al2023";
54
+ }
55
+ return os.PRETTY_NAME === "Amazon Linux 2" ? "provided.al2" : "provided.al2023";
56
+ }
57
+ // Annotate the CommonJS export names for ESM import in node:
58
+ 0 && (module.exports = {
59
+ getOsRelease,
60
+ getProvidedRuntime,
61
+ parseOsRelease
62
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercel/build-utils",
3
- "version": "7.10.0",
3
+ "version": "7.11.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.js",