vercel-cli 48.5.0__py3-none-any.whl → 48.6.6__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.
@@ -49550,7 +49550,7 @@ var require_package = __commonJS2({
49550
49550
  "../client/package.json"(exports2, module2) {
49551
49551
  module2.exports = {
49552
49552
  name: "@vercel/client",
49553
- version: "17.0.4",
49553
+ version: "17.1.2",
49554
49554
  main: "dist/index.js",
49555
49555
  typings: "dist/index.d.ts",
49556
49556
  homepage: "https://vercel.com",
@@ -49589,10 +49589,10 @@ var require_package = __commonJS2({
49589
49589
  vitest: "2.0.1"
49590
49590
  },
49591
49591
  dependencies: {
49592
- "@vercel/build-utils": "12.1.3",
49592
+ "@vercel/build-utils": "12.2.1",
49593
49593
  "@vercel/error-utils": "2.0.3",
49594
49594
  "@vercel/microfrontends": "1.2.2",
49595
- "@vercel/routing-utils": "5.2.0",
49595
+ "@vercel/routing-utils": "5.2.1",
49596
49596
  "async-retry": "1.2.3",
49597
49597
  "async-sema": "3.0.0",
49598
49598
  "fs-extra": "8.0.1",
@@ -120639,6 +120639,9 @@ var require_detect_builders = __commonJS2({
120639
120639
  config2.excludeFiles = func.excludeFiles;
120640
120640
  }
120641
120641
  }
120642
+ if (options.bunVersion) {
120643
+ config2.bunVersion = options.bunVersion;
120644
+ }
120642
120645
  const builder = {
120643
120646
  use,
120644
120647
  src: fileName,
@@ -120695,6 +120698,9 @@ var require_detect_builders = __commonJS2({
120695
120698
  if (projectSettings.outputDirectory) {
120696
120699
  config2.outputDirectory = projectSettings.outputDirectory;
120697
120700
  }
120701
+ if (options.bunVersion) {
120702
+ config2.bunVersion = options.bunVersion;
120703
+ }
120698
120704
  if (pkg && (framework === void 0 || framework !== "storybook" && createdAt < Date.parse("2020-03-01"))) {
120699
120705
  const deps = {
120700
120706
  ...pkg.dependencies,
@@ -120815,7 +120821,7 @@ var require_detect_builders = __commonJS2({
120815
120821
  }
120816
120822
  if (frontendBuilder && (0, import_is_official_runtime.isOfficialRuntime)("next", frontendBuilder.use)) {
120817
120823
  for (const fnKey of unusedFunctions.values()) {
120818
- if (fnKey.startsWith("pages/") || fnKey.startsWith("src/pages") || fnKey.startsWith("app/") || fnKey.startsWith("src/app/")) {
120824
+ if (fnKey.startsWith("pages/") || fnKey.startsWith("src/pages") || fnKey.startsWith("app/") || fnKey.startsWith("src/app/") || fnKey.startsWith("middleware") || fnKey.startsWith("src/middleware")) {
120819
120825
  unusedFunctions.delete(fnKey);
120820
120826
  } else {
120821
120827
  return {
@@ -133019,7 +133025,7 @@ var require_superstatic = __commonJS2({
133019
133025
  convertTrailingSlash: () => convertTrailingSlash,
133020
133026
  getCleanUrls: () => getCleanUrls2,
133021
133027
  pathToRegexp: () => pathToRegexp,
133022
- sourceToRegex: () => sourceToRegex
133028
+ sourceToRegex: () => sourceToRegex3
133023
133029
  });
133024
133030
  module2.exports = __toCommonJS4(superstatic_exports);
133025
133031
  var import_url20 = require("url");
@@ -133097,7 +133103,7 @@ var require_superstatic = __commonJS2({
133097
133103
  }
133098
133104
  function convertRedirects(redirects, defaultStatus = 308) {
133099
133105
  return redirects.map((r) => {
133100
- const { src, segments } = sourceToRegex(r.source);
133106
+ const { src, segments } = sourceToRegex3(r.source);
133101
133107
  const hasSegments = collectHasSegments(r.has);
133102
133108
  normalizeHasKeys(r.has);
133103
133109
  normalizeHasKeys(r.missing);
@@ -133130,7 +133136,7 @@ var require_superstatic = __commonJS2({
133130
133136
  }
133131
133137
  function convertRewrites(rewrites, internalParamNames) {
133132
133138
  return rewrites.map((r) => {
133133
- const { src, segments } = sourceToRegex(r.source);
133139
+ const { src, segments } = sourceToRegex3(r.source);
133134
133140
  const hasSegments = collectHasSegments(r.has);
133135
133141
  normalizeHasKeys(r.has);
133136
133142
  normalizeHasKeys(r.missing);
@@ -133161,7 +133167,7 @@ var require_superstatic = __commonJS2({
133161
133167
  function convertHeaders(headers) {
133162
133168
  return headers.map((h) => {
133163
133169
  const obj = {};
133164
- const { src, segments } = sourceToRegex(h.source);
133170
+ const { src, segments } = sourceToRegex3(h.source);
133165
133171
  const hasSegments = collectHasSegments(h.has);
133166
133172
  normalizeHasKeys(h.has);
133167
133173
  normalizeHasKeys(h.missing);
@@ -133223,7 +133229,7 @@ var require_superstatic = __commonJS2({
133223
133229
  }
133224
133230
  return routes2;
133225
133231
  }
133226
- function sourceToRegex(source) {
133232
+ function sourceToRegex3(source) {
133227
133233
  const keys = [];
133228
133234
  const r = pathToRegexp("632", source, keys, {
133229
133235
  strict: true,
@@ -134275,7 +134281,8 @@ var require_dist23 = __commonJS2({
134275
134281
  isHandler: () => isHandler2,
134276
134282
  isValidHandleValue: () => isValidHandleValue,
134277
134283
  mergeRoutes: () => import_merge2.mergeRoutes,
134278
- normalizeRoutes: () => normalizeRoutes2
134284
+ normalizeRoutes: () => normalizeRoutes2,
134285
+ sourceToRegex: () => import_superstatic2.sourceToRegex
134279
134286
  });
134280
134287
  module2.exports = __toCommonJS4(src_exports2);
134281
134288
  var import_url20 = require("url");
@@ -145932,11 +145939,8 @@ var init_unzip = __esm({
145932
145939
  // src/util/build/write-build-result.ts
145933
145940
  async function writeBuildResult(repoRootPath, outputDir, buildResult, build2, builder, builderPkg, vercelConfig, standalone = false) {
145934
145941
  let version2 = builder.version;
145935
- if ("experimentalVersion" in builder && process.env.VERCEL_EXPERIMENTAL_EXPRESS_BUILD === "1" && "name" in builder && builder.name === "express") {
145936
- version2 = builder.experimentalVersion;
145937
- }
145938
- if ("experimentalVersion" in builder && process.env.VERCEL_EXPERIMENTAL_HONO_BUILD === "1" && "name" in builder && builder.name === "hono") {
145939
- version2 = builder.experimentalVersion;
145942
+ if ((0, import_build_utils11.isExperimentalBackendsEnabled)() && "output" in buildResult) {
145943
+ version2 = 2;
145940
145944
  }
145941
145945
  if (typeof version2 !== "number" || version2 === 2) {
145942
145946
  return writeBuildResultV2(
@@ -146081,6 +146085,37 @@ async function writeBuildResultV2(repoRootPath, outputDir, buildResult, build2,
146081
146085
  }
146082
146086
  async function writeBuildResultV3(repoRootPath, outputDir, buildResult, build2, vercelConfig, standalone = false) {
146083
146087
  const { output: output2 } = buildResult;
146088
+ if (process.env.VERCEL_EXPERIMENTAL_ROUTES_JSON === "1") {
146089
+ const routesJsonPath = (0, import_path21.join)(outputDir, "..", "routes.json");
146090
+ if ((0, import_fs_extra12.existsSync)(routesJsonPath)) {
146091
+ try {
146092
+ const newOutput = {
146093
+ index: output2
146094
+ };
146095
+ const routesJson = await import_fs_extra12.default.readJSON(routesJsonPath);
146096
+ if (routesJson && typeof routesJson === "object" && "routes" in routesJson && Array.isArray(routesJson.routes)) {
146097
+ for (const route of routesJson.routes) {
146098
+ if (route.source === "/") {
146099
+ continue;
146100
+ }
146101
+ if (route.source) {
146102
+ newOutput[route.source] = output2;
146103
+ }
146104
+ }
146105
+ }
146106
+ return writeBuildResultV2(
146107
+ repoRootPath,
146108
+ outputDir,
146109
+ { output: newOutput, routes: buildResult.routes },
146110
+ build2,
146111
+ vercelConfig,
146112
+ standalone
146113
+ );
146114
+ } catch (error3) {
146115
+ output_manager_default.error(`Failed to read routes.json: ${error3}`);
146116
+ }
146117
+ }
146118
+ }
146084
146119
  const src = build2.src;
146085
146120
  if (typeof src !== "string") {
146086
146121
  throw new Error(`Expected "build.src" to be a string`);
@@ -146356,6 +146391,7 @@ var init_write_build_result = __esm({
146356
146391
  init_unzip();
146357
146392
  init_link2();
146358
146393
  import_client3 = __toESM3(require_dist7());
146394
+ init_output_manager();
146359
146395
  ({ normalize: normalize2 } = import_path21.posix);
146360
146396
  OUTPUT_DIR = (0, import_path21.join)(VERCEL_DIR2, "output");
146361
146397
  }
@@ -146798,7 +146834,8 @@ var init_validate_config = __esm({
146798
146834
  trailingSlash: import_routing_utils.trailingSlashSchema,
146799
146835
  functions: import_build_utils12.functionsSchema,
146800
146836
  images: imagesSchema,
146801
- crons: cronsSchema
146837
+ crons: cronsSchema,
146838
+ bunVersion: { type: "string" }
146802
146839
  }
146803
146840
  };
146804
146841
  ajv = new import_ajv2.default();
@@ -148307,8 +148344,12 @@ async function doBuild(client2, project, buildsJson, cwd, outputDir, span, stand
148307
148344
  devCommand: projectSettings.devCommand ?? void 0,
148308
148345
  buildCommand: projectSettings.buildCommand ?? void 0,
148309
148346
  framework: projectSettings.framework,
148310
- nodeVersion: projectSettings.nodeVersion
148311
- } : build2.config || {};
148347
+ nodeVersion: projectSettings.nodeVersion,
148348
+ bunVersion: localConfig.bunVersion ?? void 0
148349
+ } : {
148350
+ ...build2.config || {},
148351
+ bunVersion: localConfig.bunVersion ?? void 0
148352
+ };
148312
148353
  const builderSpan = span.child("vc.builder", {
148313
148354
  name: builderPkg.name
148314
148355
  });
@@ -148328,11 +148369,6 @@ async function doBuild(client2, project, buildsJson, cwd, outputDir, span, stand
148328
148369
  try {
148329
148370
  buildResult = await builderSpan.trace(
148330
148371
  () => {
148331
- if (process.env.VERCEL_EXPERIMENTAL_EXPRESS_BUILD === "1" && "name" in builder && builder.name === "express" && "experimentalBuild" in builder && typeof builder.experimentalBuild === "function") {
148332
- return builder.experimentalBuild(buildOptions);
148333
- } else if (process.env.VERCEL_EXPERIMENTAL_HONO_BUILD === "1" && "name" in builder && builder.name === "hono" && "experimentalBuild" in builder && typeof builder.experimentalBuild === "function") {
148334
- return builder.experimentalBuild(buildOptions);
148335
- }
148336
148372
  return builder.build(buildOptions);
148337
148373
  }
148338
148374
  );
@@ -148366,6 +148402,49 @@ async function doBuild(client2, project, buildsJson, cwd, outputDir, span, stand
148366
148402
  });
148367
148403
  }
148368
148404
  }
148405
+ const backendBuilders = [
148406
+ "@vercel/express",
148407
+ "@vercel/hono",
148408
+ "@vercel/fastify"
148409
+ ];
148410
+ const isBackendBuilder = build2.use && backendBuilders.includes(build2.use);
148411
+ if (process.env.VERCEL_EXPERIMENTAL_ROUTES_JSON === "1") {
148412
+ if ("output" in buildResult && buildResult.output && isBackendBuilder) {
148413
+ const routesJsonPath = (0, import_path27.join)(outputDir, "..", "routes.json");
148414
+ if ((0, import_fs_extra18.existsSync)(routesJsonPath)) {
148415
+ try {
148416
+ const routesJson = await readJSONFile(routesJsonPath);
148417
+ if (routesJson && typeof routesJson === "object" && "routes" in routesJson && Array.isArray(routesJson.routes)) {
148418
+ const convertedRoutes = [];
148419
+ for (const route of routesJson.routes) {
148420
+ if (typeof route.source !== "string") {
148421
+ continue;
148422
+ }
148423
+ const { src } = (0, import_routing_utils2.sourceToRegex)(route.source);
148424
+ const newRoute = {
148425
+ src,
148426
+ dest: route.source
148427
+ };
148428
+ if (route.methods) {
148429
+ newRoute.methods = route.methods;
148430
+ }
148431
+ if (route.source === "/") {
148432
+ continue;
148433
+ }
148434
+ convertedRoutes.push(newRoute);
148435
+ }
148436
+ buildResult.routes = [
148437
+ { handle: "filesystem" },
148438
+ ...convertedRoutes,
148439
+ { src: "/(.*)", dest: "/" }
148440
+ ];
148441
+ }
148442
+ } catch (error3) {
148443
+ output_manager_default.error(`Failed to read routes.json: ${error3}`);
148444
+ }
148445
+ }
148446
+ }
148447
+ }
148369
148448
  buildResults.set(build2, buildResult);
148370
148449
  let buildOutputLength = 0;
148371
148450
  if ("output" in buildResult) {
@@ -169464,7 +169543,7 @@ async function getBuildMatches(vercelConfig, cwd, devServer, fileList) {
169464
169543
  if (src[0] === "/") {
169465
169544
  src = src.substring(1);
169466
169545
  }
169467
- if (buildConfig.config?.framework === "hono" || buildConfig.config?.framework === "express" || buildConfig.config?.framework === "h3" || buildConfig.config?.framework === "nestjs" || buildConfig.config?.framework === "fastify") {
169546
+ if ((0, import_build_utils16.isBackendFramework)(buildConfig.config?.framework)) {
169468
169547
  src = "package.json";
169469
169548
  }
169470
169549
  if (buildConfig.config?.framework === "fastapi" || buildConfig.config?.framework === "flask") {
@@ -171122,6 +171201,9 @@ Please ensure that ${cmd(err.path)} is properly installed`;
171122
171201
  return defaults;
171123
171202
  }
171124
171203
  }
171204
+ if ((0, import_build_utils17.isExperimentalBackendsEnabled)()) {
171205
+ return "npx @vercel/cervel dev";
171206
+ }
171125
171207
  }
171126
171208
  return void 0;
171127
171209
  }
@@ -3,9 +3,9 @@
3
3
  "requires": true,
4
4
  "packages": {
5
5
  "node_modules/@vercel/build-utils": {
6
- "version": "12.1.3",
7
- "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-12.1.3.tgz",
8
- "integrity": "sha512-bK6klHtVoPeaNoRbfURRLQThyyJ11tffzIGXgjneGmbABTe1jIojAcU2byAn4Z2Czp7pnIuyyIbdQQWd1IEcRA==",
6
+ "version": "12.2.1",
7
+ "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-12.2.1.tgz",
8
+ "integrity": "sha512-IomevtBkebGsdSklmugLO2ECiqRUpFR9wLVbjYlyjDtcx67UGMtgdjhfxXSOIYcGzJFiOxy820YI4ajUq88qUg==",
9
9
  "license": "Apache-2.0"
10
10
  },
11
11
  "node_modules/@vercel/detect-agent": {
@@ -1,5 +1,17 @@
1
1
  # @vercel/build-utils
2
2
 
3
+ ## 12.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Add backend util helpers ([#14152](https://github.com/vercel/vercel/pull/14152))
8
+
9
+ ## 12.2.0
10
+
11
+ ### Minor Changes
12
+
13
+ - Add support for Bun through a vercel.json property ([#14130](https://github.com/vercel/vercel/pull/14130))
14
+
3
15
  ## 12.1.3
4
16
 
5
17
  ### Patch Changes
@@ -0,0 +1,17 @@
1
+ /**
2
+ * List of backend frameworks supported by the experimental backends feature
3
+ */
4
+ export declare const BACKEND_FRAMEWORKS: readonly ["express", "hono", "h3", "nestjs", "fastify"];
5
+ export type BackendFramework = (typeof BACKEND_FRAMEWORKS)[number];
6
+ /**
7
+ * Checks if the given framework is a backend framework
8
+ */
9
+ export declare function isBackendFramework(framework: string | null | undefined): framework is BackendFramework;
10
+ /**
11
+ * Checks if experimental backends are enabled via environment variable
12
+ */
13
+ export declare function isExperimentalBackendsEnabled(): boolean;
14
+ /**
15
+ * Checks if experimental backends are enabled AND the framework is a backend framework
16
+ */
17
+ export declare function shouldUseExperimentalBackends(framework: string | null | undefined): boolean;
@@ -0,0 +1,52 @@
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 framework_helpers_exports = {};
20
+ __export(framework_helpers_exports, {
21
+ BACKEND_FRAMEWORKS: () => BACKEND_FRAMEWORKS,
22
+ isBackendFramework: () => isBackendFramework,
23
+ isExperimentalBackendsEnabled: () => isExperimentalBackendsEnabled,
24
+ shouldUseExperimentalBackends: () => shouldUseExperimentalBackends
25
+ });
26
+ module.exports = __toCommonJS(framework_helpers_exports);
27
+ const BACKEND_FRAMEWORKS = [
28
+ "express",
29
+ "hono",
30
+ "h3",
31
+ "nestjs",
32
+ "fastify"
33
+ ];
34
+ function isBackendFramework(framework) {
35
+ if (!framework)
36
+ return false;
37
+ return BACKEND_FRAMEWORKS.includes(framework);
38
+ }
39
+ function isExperimentalBackendsEnabled() {
40
+ return process.env.VERCEL_EXPERIMENTAL_BACKENDS === "1" || // Previously used for experimental express and hono builds
41
+ process.env.VERCEL_EXPERIMENTAL_EXPRESS_BUILD === "1" || process.env.VERCEL_EXPERIMENTAL_HONO_BUILD === "1";
42
+ }
43
+ function shouldUseExperimentalBackends(framework) {
44
+ return isExperimentalBackendsEnabled() && isBackendFramework(framework);
45
+ }
46
+ // Annotate the CommonJS export names for ESM import in node:
47
+ 0 && (module.exports = {
48
+ BACKEND_FRAMEWORKS,
49
+ isBackendFramework,
50
+ isExperimentalBackendsEnabled,
51
+ shouldUseExperimentalBackends
52
+ });
@@ -1,10 +1,13 @@
1
- import { NodeVersion } from '../types';
1
+ import { BunVersion, NodeVersion, Version } from '../types';
2
2
  export type NodeVersionMajor = ReturnType<typeof getOptions>[number]['major'];
3
3
  export declare const NODE_VERSIONS: NodeVersion[];
4
+ export declare const BUN_VERSIONS: BunVersion[];
4
5
  export declare function getNodeVersionByMajor(major: number): NodeVersion | undefined;
5
6
  declare function getOptions(): NodeVersion[];
6
7
  export declare function getAvailableNodeVersions(): NodeVersionMajor[];
7
8
  export declare function getLatestNodeVersion(availableVersions?: NodeVersionMajor[]): NodeVersion;
8
9
  export declare function getDiscontinuedNodeVersions(): NodeVersion[];
9
10
  export declare function getSupportedNodeVersion(engineRange: string | undefined, isAuto?: boolean, availableVersions?: NodeVersionMajor[]): Promise<NodeVersion>;
11
+ export declare function getSupportedBunVersion(engineRange: string): BunVersion;
12
+ export declare function isBunVersion(version: Version): boolean;
10
13
  export {};
@@ -28,12 +28,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var node_version_exports = {};
30
30
  __export(node_version_exports, {
31
+ BUN_VERSIONS: () => BUN_VERSIONS,
31
32
  NODE_VERSIONS: () => NODE_VERSIONS,
32
33
  getAvailableNodeVersions: () => getAvailableNodeVersions,
33
34
  getDiscontinuedNodeVersions: () => getDiscontinuedNodeVersions,
34
35
  getLatestNodeVersion: () => getLatestNodeVersion,
35
36
  getNodeVersionByMajor: () => getNodeVersionByMajor,
36
- getSupportedNodeVersion: () => getSupportedNodeVersion
37
+ getSupportedBunVersion: () => getSupportedBunVersion,
38
+ getSupportedNodeVersion: () => getSupportedNodeVersion,
39
+ isBunVersion: () => isBunVersion
37
40
  });
38
41
  module.exports = __toCommonJS(node_version_exports);
39
42
  var import_fs = require("fs");
@@ -89,6 +92,13 @@ const NODE_VERSIONS = [
89
92
  discontinueDate: /* @__PURE__ */ new Date("2020-01-06")
90
93
  })
91
94
  ];
95
+ const BUN_VERSIONS = [
96
+ new import_types.BunVersion({
97
+ major: 1,
98
+ range: "1.x",
99
+ runtime: "bun1.x"
100
+ })
101
+ ];
92
102
  function getNodeVersionByMajor(major) {
93
103
  return NODE_VERSIONS.find((v) => v.major === major);
94
104
  }
@@ -175,12 +185,36 @@ async function getSupportedNodeVersion(engineRange, isAuto = false, availableVer
175
185
  }
176
186
  return selection;
177
187
  }
188
+ function getSupportedBunVersion(engineRange) {
189
+ if ((0, import_semver.validRange)(engineRange)) {
190
+ const selected = BUN_VERSIONS.find((version) => {
191
+ return (0, import_semver.intersects)(version.range, engineRange);
192
+ });
193
+ if (selected) {
194
+ return new import_types.BunVersion({
195
+ major: selected.major,
196
+ range: selected.range,
197
+ runtime: selected.runtime
198
+ });
199
+ }
200
+ }
201
+ throw new import_errors.NowBuildError({
202
+ message: `Found invalid Bun Version: "${engineRange}".`,
203
+ code: "BUILD_UTILS_BUN_VERSION_INVALID"
204
+ });
205
+ }
206
+ function isBunVersion(version) {
207
+ return version.runtime.startsWith("bun");
208
+ }
178
209
  // Annotate the CommonJS export names for ESM import in node:
179
210
  0 && (module.exports = {
211
+ BUN_VERSIONS,
180
212
  NODE_VERSIONS,
181
213
  getAvailableNodeVersions,
182
214
  getDiscontinuedNodeVersions,
183
215
  getLatestNodeVersion,
184
216
  getNodeVersionByMajor,
185
- getSupportedNodeVersion
217
+ getSupportedBunVersion,
218
+ getSupportedNodeVersion,
219
+ isBunVersion
186
220
  });
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { SpawnOptions } from 'child_process';
3
- import { Meta, PackageJson, NodeVersion, Config } from '../types';
3
+ import { Meta, PackageJson, NodeVersion, Config, BunVersion } from '../types';
4
4
  export type CliType = 'yarn' | 'npm' | 'pnpm' | 'bun' | 'vlt';
5
5
  export interface ScanParentDirsResult {
6
6
  /**
@@ -85,23 +85,22 @@ export declare function getNodeBinPath({ cwd, }: {
85
85
  export declare function getNodeBinPaths({ start, base, }: TraverseUpDirectoriesProps): string[];
86
86
  export declare function runShellScript(fsPath: string, args?: string[], spawnOpts?: SpawnOptions): Promise<boolean>;
87
87
  export declare function getSpawnOptions(meta: Meta, nodeVersion: NodeVersion): SpawnOptions;
88
- export declare function getNodeVersion(destPath: string, fallbackVersion?: string | undefined, config?: Config, meta?: Meta, availableVersions?: number[]): Promise<NodeVersion>;
88
+ export declare function getNodeVersion(destPath: string, fallbackVersion?: string | undefined, config?: Config, meta?: Meta, availableVersions?: number[]): Promise<NodeVersion | BunVersion>;
89
89
  export declare function scanParentDirs(destPath: string, readPackageJson?: boolean, base?: string): Promise<ScanParentDirsResult>;
90
90
  export declare function turboVersionSpecifierSupportsCorepack(turboVersionSpecifier: string): boolean;
91
91
  export declare function usingCorepack(env: {
92
92
  [x: string]: string | undefined;
93
93
  }, packageJsonPackageManager: string | undefined, turboSupportsCorepackHome: boolean | undefined): boolean;
94
94
  export declare function walkParentDirs({ base, start, filename, }: WalkParentDirsProps): Promise<string | null>;
95
- export declare function runNpmInstall(destPath: string, args?: string[], spawnOpts?: SpawnOptions, meta?: Meta, nodeVersion?: NodeVersion, projectCreatedAt?: number): Promise<boolean>;
95
+ export declare function runNpmInstall(destPath: string, args?: string[], spawnOpts?: SpawnOptions, meta?: Meta, projectCreatedAt?: number): Promise<boolean>;
96
96
  /**
97
97
  * Prepares the input environment based on the used package manager and lockfile
98
98
  * versions.
99
99
  */
100
- export declare function getEnvForPackageManager({ cliType, lockfileVersion, packageJsonPackageManager, nodeVersion, env, packageJsonEngines, turboSupportsCorepackHome, projectCreatedAt, }: {
100
+ export declare function getEnvForPackageManager({ cliType, lockfileVersion, packageJsonPackageManager, env, packageJsonEngines, turboSupportsCorepackHome, projectCreatedAt, }: {
101
101
  cliType: CliType;
102
102
  lockfileVersion: number | undefined;
103
103
  packageJsonPackageManager?: string | undefined;
104
- nodeVersion: NodeVersion | undefined;
105
104
  env: {
106
105
  [x: string]: string | undefined;
107
106
  };
@@ -120,7 +119,6 @@ export declare function getPathOverrideForPackageManager({ cliType, lockfileVers
120
119
  cliType: CliType;
121
120
  lockfileVersion: number | undefined;
122
121
  corepackPackageManager: string | undefined;
123
- nodeVersion: NodeVersion | undefined;
124
122
  corepackEnabled?: boolean;
125
123
  packageJsonEngines?: PackageJson.Engines;
126
124
  projectCreatedAt?: number;
@@ -160,10 +158,9 @@ export declare function detectPackageManager(cliType: CliType, lockfileVersion:
160
158
  * Note: Make sure it doesn't contain any `console.log` calls.
161
159
  * @deprecated use `getEnvForPackageManager` instead
162
160
  */
163
- export declare function getPathForPackageManager({ cliType, lockfileVersion, nodeVersion, env, }: {
161
+ export declare function getPathForPackageManager({ cliType, lockfileVersion, env, }: {
164
162
  cliType: CliType;
165
163
  lockfileVersion: number | undefined;
166
- nodeVersion: NodeVersion | undefined;
167
164
  env: {
168
165
  [x: string]: string | undefined;
169
166
  };
@@ -187,10 +184,9 @@ export declare function getPathForPackageManager({ cliType, lockfileVersion, nod
187
184
  */
188
185
  yarnNodeLinker: string | undefined;
189
186
  };
190
- export declare function runCustomInstallCommand({ destPath, installCommand, nodeVersion, spawnOpts, projectCreatedAt, }: {
187
+ export declare function runCustomInstallCommand({ destPath, installCommand, spawnOpts, projectCreatedAt, }: {
191
188
  destPath: string;
192
189
  installCommand: string;
193
- nodeVersion: NodeVersion;
194
190
  spawnOpts?: SpawnOptions;
195
191
  projectCreatedAt?: number;
196
192
  }): Promise<void>;
@@ -182,6 +182,9 @@ function getSpawnOptions(meta, nodeVersion) {
182
182
  const opts = {
183
183
  env: (0, import_clone_env.cloneEnv)(process.env)
184
184
  };
185
+ if ((0, import_node_version.isBunVersion)(nodeVersion)) {
186
+ return opts;
187
+ }
185
188
  if (!meta.isDev) {
186
189
  let found = false;
187
190
  const oldPath = opts.env.PATH || process.env.PATH || "";
@@ -200,6 +203,9 @@ function getSpawnOptions(meta, nodeVersion) {
200
203
  return opts;
201
204
  }
202
205
  async function getNodeVersion(destPath, fallbackVersion = process.env.VERCEL_PROJECT_SETTINGS_NODE_VERSION, config = {}, meta = {}, availableVersions = (0, import_node_version.getAvailableNodeVersions)()) {
206
+ if (config.bunVersion) {
207
+ return (0, import_node_version.getSupportedBunVersion)(config.bunVersion);
208
+ }
203
209
  const latestVersion = (0, import_node_version.getLatestNodeVersion)(availableVersions);
204
210
  if (meta.isDev) {
205
211
  latestVersion.runtime = "nodejs";
@@ -520,7 +526,7 @@ function checkIfAlreadyInstalled(runNpmInstallSet, packageJsonPath) {
520
526
  return { alreadyInstalled, runNpmInstallSet: initializedRunNpmInstallSet };
521
527
  }
522
528
  const runNpmInstallSema = new import_async_sema.default(1);
523
- async function runNpmInstall(destPath, args = [], spawnOpts, meta, nodeVersion, projectCreatedAt) {
529
+ async function runNpmInstall(destPath, args = [], spawnOpts, meta, projectCreatedAt) {
524
530
  if (meta?.isDev) {
525
531
  (0, import_debug.default)("Skipping dependency installation because dev mode is enabled");
526
532
  return false;
@@ -573,7 +579,6 @@ async function runNpmInstall(destPath, args = [], spawnOpts, meta, nodeVersion,
573
579
  cliType,
574
580
  lockfileVersion,
575
581
  packageJsonPackageManager,
576
- nodeVersion,
577
582
  env,
578
583
  packageJsonEngines: packageJson?.engines,
579
584
  turboSupportsCorepackHome,
@@ -600,7 +605,6 @@ function getEnvForPackageManager({
600
605
  cliType,
601
606
  lockfileVersion,
602
607
  packageJsonPackageManager,
603
- nodeVersion,
604
608
  env,
605
609
  packageJsonEngines,
606
610
  turboSupportsCorepackHome,
@@ -619,7 +623,6 @@ function getEnvForPackageManager({
619
623
  cliType,
620
624
  lockfileVersion,
621
625
  corepackPackageManager: packageJsonPackageManager,
622
- nodeVersion,
623
626
  corepackEnabled,
624
627
  packageJsonEngines,
625
628
  projectCreatedAt
@@ -913,15 +916,13 @@ function detectPackageManager(cliType, lockfileVersion, projectCreatedAt) {
913
916
  function getPathForPackageManager({
914
917
  cliType,
915
918
  lockfileVersion,
916
- nodeVersion,
917
919
  env
918
920
  }) {
919
921
  const corepackEnabled = env.ENABLE_EXPERIMENTAL_COREPACK === "1";
920
922
  let overrides = getPathOverrideForPackageManager({
921
923
  cliType,
922
924
  lockfileVersion,
923
- corepackPackageManager: void 0,
924
- nodeVersion
925
+ corepackPackageManager: void 0
925
926
  });
926
927
  if (corepackEnabled) {
927
928
  overrides = NO_OVERRIDE;
@@ -947,7 +948,6 @@ function getPathForPackageManager({
947
948
  async function runCustomInstallCommand({
948
949
  destPath,
949
950
  installCommand,
950
- nodeVersion,
951
951
  spawnOpts,
952
952
  projectCreatedAt
953
953
  }) {
@@ -963,7 +963,6 @@ async function runCustomInstallCommand({
963
963
  cliType,
964
964
  lockfileVersion,
965
965
  packageJsonPackageManager,
966
- nodeVersion,
967
966
  env: spawnOpts?.env || {},
968
967
  packageJsonEngines: packageJson?.engines,
969
968
  turboSupportsCorepackHome,
@@ -1000,7 +999,6 @@ async function runPackageJsonScript(destPath, scriptNames, spawnOpts, projectCre
1000
999
  cliType,
1001
1000
  lockfileVersion,
1002
1001
  packageJsonPackageManager,
1003
- nodeVersion: void 0,
1004
1002
  env: (0, import_clone_env.cloneEnv)(process.env, spawnOpts?.env),
1005
1003
  packageJsonEngines: packageJson?.engines,
1006
1004
  turboSupportsCorepackHome,
@@ -9,7 +9,7 @@ import getWriteableDirectory from './fs/get-writable-directory';
9
9
  import glob, { GlobOptions } from './fs/glob';
10
10
  import rename from './fs/rename';
11
11
  import { spawnAsync, execCommand, spawnCommand, walkParentDirs, getScriptName, installDependencies, runPackageJsonScript, runNpmInstall, runBundleInstall, runPipInstall, runShellScript, runCustomInstallCommand, getEnvForPackageManager, getNodeVersion, getPathForPackageManager, detectPackageManager, getSpawnOptions, getNodeBinPath, getNodeBinPaths, scanParentDirs, traverseUpDirectories } from './fs/run-user-scripts';
12
- import { getLatestNodeVersion, getDiscontinuedNodeVersions, getSupportedNodeVersion } from './fs/node-version';
12
+ import { getLatestNodeVersion, getDiscontinuedNodeVersions, getSupportedNodeVersion, isBunVersion, getSupportedBunVersion } from './fs/node-version';
13
13
  import streamToBuffer, { streamToBufferChunks } from './fs/stream-to-buffer';
14
14
  import debug from './debug';
15
15
  import getIgnoreFilter from './get-ignore-filter';
@@ -18,7 +18,7 @@ import { getPrefixedEnvVars } from './get-prefixed-env-vars';
18
18
  import { cloneEnv } from './clone-env';
19
19
  import { hardLinkDir } from './hard-link-dir';
20
20
  import { validateNpmrc } from './validate-npmrc';
21
- export { FileBlob, FileFsRef, FileRef, Lambda, NodejsLambda, createLambda, Prerender, download, downloadFile, DownloadedFiles, getWriteableDirectory, glob, GlobOptions, rename, spawnAsync, getScriptName, installDependencies, runPackageJsonScript, execCommand, spawnCommand, walkParentDirs, getNodeBinPath, getNodeBinPaths, getSupportedNodeVersion, detectPackageManager, runNpmInstall, runBundleInstall, runPipInstall, runShellScript, runCustomInstallCommand, getEnvForPackageManager, getNodeVersion, getPathForPackageManager, getLatestNodeVersion, getDiscontinuedNodeVersions, getSpawnOptions, getPlatformEnv, getPrefixedEnvVars, streamToBuffer, streamToBufferChunks, debug, isSymbolicLink, isDirectory, getLambdaOptionsFromFunction, scanParentDirs, getIgnoreFilter, cloneEnv, hardLinkDir, traverseUpDirectories, validateNpmrc, };
21
+ export { FileBlob, FileFsRef, FileRef, Lambda, NodejsLambda, createLambda, Prerender, download, downloadFile, DownloadedFiles, getWriteableDirectory, glob, GlobOptions, rename, spawnAsync, getScriptName, installDependencies, runPackageJsonScript, execCommand, spawnCommand, walkParentDirs, getNodeBinPath, getNodeBinPaths, getSupportedNodeVersion, isBunVersion, getSupportedBunVersion, detectPackageManager, runNpmInstall, runBundleInstall, runPipInstall, runShellScript, runCustomInstallCommand, getEnvForPackageManager, getNodeVersion, getPathForPackageManager, getLatestNodeVersion, getDiscontinuedNodeVersions, getSpawnOptions, getPlatformEnv, getPrefixedEnvVars, streamToBuffer, streamToBufferChunks, debug, isSymbolicLink, isDirectory, getLambdaOptionsFromFunction, scanParentDirs, getIgnoreFilter, cloneEnv, hardLinkDir, traverseUpDirectories, validateNpmrc, };
22
22
  export { EdgeFunction } from './edge-function';
23
23
  export { readConfigFile } from './fs/read-config-file';
24
24
  export { normalizePath } from './fs/normalize-path';
@@ -32,3 +32,4 @@ export { NODE_VERSIONS } from './fs/node-version';
32
32
  export { getInstalledPackageVersion } from './get-installed-package-version';
33
33
  export { defaultCachePathGlob } from './default-cache-path-glob';
34
34
  export { generateNodeBuilderFunctions } from './generate-node-builder-functions';
35
+ export { BACKEND_FRAMEWORKS, BackendFramework, isBackendFramework, isExperimentalBackendsEnabled, shouldUseExperimentalBackends, } from './framework-helpers';
@@ -21817,8 +21817,10 @@ var require_ignore = __commonJS({
21817
21817
  // src/index.ts
21818
21818
  var src_exports = {};
21819
21819
  __export(src_exports, {
21820
+ BACKEND_FRAMEWORKS: () => BACKEND_FRAMEWORKS,
21820
21821
  BUILDER_COMPILE_STEP: () => BUILDER_COMPILE_STEP,
21821
21822
  BUILDER_INSTALLER_STEP: () => BUILDER_INSTALLER_STEP,
21823
+ BunVersion: () => BunVersion,
21822
21824
  EdgeFunction: () => EdgeFunction,
21823
21825
  FileBlob: () => FileBlob,
21824
21826
  FileFsRef: () => file_fs_ref_default,
@@ -21859,12 +21861,16 @@ __export(src_exports, {
21859
21861
  getProvidedRuntime: () => getProvidedRuntime,
21860
21862
  getScriptName: () => getScriptName,
21861
21863
  getSpawnOptions: () => getSpawnOptions,
21864
+ getSupportedBunVersion: () => getSupportedBunVersion,
21862
21865
  getSupportedNodeVersion: () => getSupportedNodeVersion,
21863
21866
  getWriteableDirectory: () => getWritableDirectory,
21864
21867
  glob: () => glob,
21865
21868
  hardLinkDir: () => hardLinkDir,
21866
21869
  installDependencies: () => installDependencies,
21870
+ isBackendFramework: () => isBackendFramework,
21871
+ isBunVersion: () => isBunVersion,
21867
21872
  isDirectory: () => isDirectory,
21873
+ isExperimentalBackendsEnabled: () => isExperimentalBackendsEnabled,
21868
21874
  isSymbolicLink: () => isSymbolicLink,
21869
21875
  normalizePath: () => normalizePath,
21870
21876
  readConfigFile: () => readConfigFile,
@@ -21877,6 +21883,7 @@ __export(src_exports, {
21877
21883
  runShellScript: () => runShellScript,
21878
21884
  scanParentDirs: () => scanParentDirs,
21879
21885
  shouldServe: () => shouldServe,
21886
+ shouldUseExperimentalBackends: () => shouldUseExperimentalBackends,
21880
21887
  spawnAsync: () => spawnAsync,
21881
21888
  spawnCommand: () => spawnCommand,
21882
21889
  streamToBuffer: () => streamToBuffer,
@@ -22948,6 +22955,8 @@ var Version = class {
22948
22955
  };
22949
22956
  var NodeVersion = class extends Version {
22950
22957
  };
22958
+ var BunVersion = class extends Version {
22959
+ };
22951
22960
 
22952
22961
  // src/fs/node-version.ts
22953
22962
  var NODE_VERSIONS = [
@@ -22998,6 +23007,13 @@ var NODE_VERSIONS = [
22998
23007
  discontinueDate: /* @__PURE__ */ new Date("2020-01-06")
22999
23008
  })
23000
23009
  ];
23010
+ var BUN_VERSIONS = [
23011
+ new BunVersion({
23012
+ major: 1,
23013
+ range: "1.x",
23014
+ runtime: "bun1.x"
23015
+ })
23016
+ ];
23001
23017
  function getOptions() {
23002
23018
  return NODE_VERSIONS;
23003
23019
  }
@@ -23081,6 +23097,27 @@ async function getSupportedNodeVersion(engineRange, isAuto = false, availableVer
23081
23097
  }
23082
23098
  return selection;
23083
23099
  }
23100
+ function getSupportedBunVersion(engineRange) {
23101
+ if ((0, import_semver.validRange)(engineRange)) {
23102
+ const selected = BUN_VERSIONS.find((version) => {
23103
+ return (0, import_semver.intersects)(version.range, engineRange);
23104
+ });
23105
+ if (selected) {
23106
+ return new BunVersion({
23107
+ major: selected.major,
23108
+ range: selected.range,
23109
+ runtime: selected.runtime
23110
+ });
23111
+ }
23112
+ }
23113
+ throw new NowBuildError({
23114
+ message: `Found invalid Bun Version: "${engineRange}".`,
23115
+ code: "BUILD_UTILS_BUN_VERSION_INVALID"
23116
+ });
23117
+ }
23118
+ function isBunVersion(version) {
23119
+ return version.runtime.startsWith("bun");
23120
+ }
23084
23121
 
23085
23122
  // src/fs/read-config-file.ts
23086
23123
  var import_js_yaml = __toESM(require_js_yaml2());
@@ -23257,6 +23294,9 @@ function getSpawnOptions(meta, nodeVersion) {
23257
23294
  const opts = {
23258
23295
  env: cloneEnv(process.env)
23259
23296
  };
23297
+ if (isBunVersion(nodeVersion)) {
23298
+ return opts;
23299
+ }
23260
23300
  if (!meta.isDev) {
23261
23301
  let found = false;
23262
23302
  const oldPath = opts.env.PATH || process.env.PATH || "";
@@ -23275,6 +23315,9 @@ function getSpawnOptions(meta, nodeVersion) {
23275
23315
  return opts;
23276
23316
  }
23277
23317
  async function getNodeVersion(destPath, fallbackVersion = process.env.VERCEL_PROJECT_SETTINGS_NODE_VERSION, config = {}, meta = {}, availableVersions = getAvailableNodeVersions()) {
23318
+ if (config.bunVersion) {
23319
+ return getSupportedBunVersion(config.bunVersion);
23320
+ }
23278
23321
  const latestVersion = getLatestNodeVersion(availableVersions);
23279
23322
  if (meta.isDev) {
23280
23323
  latestVersion.runtime = "nodejs";
@@ -23595,7 +23638,7 @@ function checkIfAlreadyInstalled(runNpmInstallSet, packageJsonPath) {
23595
23638
  return { alreadyInstalled, runNpmInstallSet: initializedRunNpmInstallSet };
23596
23639
  }
23597
23640
  var runNpmInstallSema = new import_async_sema4.default(1);
23598
- async function runNpmInstall(destPath, args = [], spawnOpts, meta, nodeVersion, projectCreatedAt) {
23641
+ async function runNpmInstall(destPath, args = [], spawnOpts, meta, projectCreatedAt) {
23599
23642
  if (meta?.isDev) {
23600
23643
  debug("Skipping dependency installation because dev mode is enabled");
23601
23644
  return false;
@@ -23648,7 +23691,6 @@ async function runNpmInstall(destPath, args = [], spawnOpts, meta, nodeVersion,
23648
23691
  cliType,
23649
23692
  lockfileVersion,
23650
23693
  packageJsonPackageManager,
23651
- nodeVersion,
23652
23694
  env,
23653
23695
  packageJsonEngines: packageJson?.engines,
23654
23696
  turboSupportsCorepackHome,
@@ -23675,7 +23717,6 @@ function getEnvForPackageManager({
23675
23717
  cliType,
23676
23718
  lockfileVersion,
23677
23719
  packageJsonPackageManager,
23678
- nodeVersion,
23679
23720
  env,
23680
23721
  packageJsonEngines,
23681
23722
  turboSupportsCorepackHome,
@@ -23694,7 +23735,6 @@ function getEnvForPackageManager({
23694
23735
  cliType,
23695
23736
  lockfileVersion,
23696
23737
  corepackPackageManager: packageJsonPackageManager,
23697
- nodeVersion,
23698
23738
  corepackEnabled,
23699
23739
  packageJsonEngines,
23700
23740
  projectCreatedAt
@@ -23988,15 +24028,13 @@ function detectPackageManager(cliType, lockfileVersion, projectCreatedAt) {
23988
24028
  function getPathForPackageManager({
23989
24029
  cliType,
23990
24030
  lockfileVersion,
23991
- nodeVersion,
23992
24031
  env
23993
24032
  }) {
23994
24033
  const corepackEnabled = env.ENABLE_EXPERIMENTAL_COREPACK === "1";
23995
24034
  let overrides = getPathOverrideForPackageManager({
23996
24035
  cliType,
23997
24036
  lockfileVersion,
23998
- corepackPackageManager: void 0,
23999
- nodeVersion
24037
+ corepackPackageManager: void 0
24000
24038
  });
24001
24039
  if (corepackEnabled) {
24002
24040
  overrides = NO_OVERRIDE;
@@ -24022,7 +24060,6 @@ function getPathForPackageManager({
24022
24060
  async function runCustomInstallCommand({
24023
24061
  destPath,
24024
24062
  installCommand,
24025
- nodeVersion,
24026
24063
  spawnOpts,
24027
24064
  projectCreatedAt
24028
24065
  }) {
@@ -24038,7 +24075,6 @@ async function runCustomInstallCommand({
24038
24075
  cliType,
24039
24076
  lockfileVersion,
24040
24077
  packageJsonPackageManager,
24041
- nodeVersion,
24042
24078
  env: spawnOpts?.env || {},
24043
24079
  packageJsonEngines: packageJson?.engines,
24044
24080
  turboSupportsCorepackHome,
@@ -24075,7 +24111,6 @@ async function runPackageJsonScript(destPath, scriptNames, spawnOpts, projectCre
24075
24111
  cliType,
24076
24112
  lockfileVersion,
24077
24113
  packageJsonPackageManager,
24078
- nodeVersion: void 0,
24079
24114
  env: cloneEnv(process.env, spawnOpts?.env),
24080
24115
  packageJsonEngines: packageJson?.engines,
24081
24116
  turboSupportsCorepackHome,
@@ -24730,10 +24765,33 @@ ${entrypointsForMessage}`
24730
24765
  entrypointCallback
24731
24766
  };
24732
24767
  }
24768
+
24769
+ // src/framework-helpers.ts
24770
+ var BACKEND_FRAMEWORKS = [
24771
+ "express",
24772
+ "hono",
24773
+ "h3",
24774
+ "nestjs",
24775
+ "fastify"
24776
+ ];
24777
+ function isBackendFramework(framework) {
24778
+ if (!framework)
24779
+ return false;
24780
+ return BACKEND_FRAMEWORKS.includes(framework);
24781
+ }
24782
+ function isExperimentalBackendsEnabled() {
24783
+ return process.env.VERCEL_EXPERIMENTAL_BACKENDS === "1" || // Previously used for experimental express and hono builds
24784
+ process.env.VERCEL_EXPERIMENTAL_EXPRESS_BUILD === "1" || process.env.VERCEL_EXPERIMENTAL_HONO_BUILD === "1";
24785
+ }
24786
+ function shouldUseExperimentalBackends(framework) {
24787
+ return isExperimentalBackendsEnabled() && isBackendFramework(framework);
24788
+ }
24733
24789
  // Annotate the CommonJS export names for ESM import in node:
24734
24790
  0 && (module.exports = {
24791
+ BACKEND_FRAMEWORKS,
24735
24792
  BUILDER_COMPILE_STEP,
24736
24793
  BUILDER_INSTALLER_STEP,
24794
+ BunVersion,
24737
24795
  EdgeFunction,
24738
24796
  FileBlob,
24739
24797
  FileFsRef,
@@ -24774,12 +24832,16 @@ ${entrypointsForMessage}`
24774
24832
  getProvidedRuntime,
24775
24833
  getScriptName,
24776
24834
  getSpawnOptions,
24835
+ getSupportedBunVersion,
24777
24836
  getSupportedNodeVersion,
24778
24837
  getWriteableDirectory,
24779
24838
  glob,
24780
24839
  hardLinkDir,
24781
24840
  installDependencies,
24841
+ isBackendFramework,
24842
+ isBunVersion,
24782
24843
  isDirectory,
24844
+ isExperimentalBackendsEnabled,
24783
24845
  isSymbolicLink,
24784
24846
  normalizePath,
24785
24847
  readConfigFile,
@@ -24792,6 +24854,7 @@ ${entrypointsForMessage}`
24792
24854
  runShellScript,
24793
24855
  scanParentDirs,
24794
24856
  shouldServe,
24857
+ shouldUseExperimentalBackends,
24795
24858
  spawnAsync,
24796
24859
  spawnCommand,
24797
24860
  streamToBuffer,
@@ -22,6 +22,7 @@ export interface Files {
22
22
  [filePath: string]: File;
23
23
  }
24
24
  export interface Config {
25
+ bunVersion?: string;
25
26
  maxLambdaSize?: string;
26
27
  includeFiles?: string | string[];
27
28
  excludeFiles?: string | string[];
@@ -318,6 +319,8 @@ export declare class Version implements BaseVersion {
318
319
  }
319
320
  export declare class NodeVersion extends Version {
320
321
  }
322
+ export declare class BunVersion extends Version {
323
+ }
321
324
  export interface Builder {
322
325
  use: string;
323
326
  src?: string;
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var types_exports = {};
20
20
  __export(types_exports, {
21
+ BunVersion: () => BunVersion,
21
22
  NodeVersion: () => NodeVersion,
22
23
  Version: () => Version
23
24
  });
@@ -44,8 +45,11 @@ class Version {
44
45
  }
45
46
  class NodeVersion extends Version {
46
47
  }
48
+ class BunVersion extends Version {
49
+ }
47
50
  // Annotate the CommonJS export names for ESM import in node:
48
51
  0 && (module.exports = {
52
+ BunVersion,
49
53
  NodeVersion,
50
54
  Version
51
55
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercel/build-utils",
3
- "version": "12.1.3",
3
+ "version": "12.2.1",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.js",
@@ -27,7 +27,7 @@
27
27
  "@types/semver": "6.0.0",
28
28
  "@types/yazl": "2.4.2",
29
29
  "@vercel/error-utils": "2.0.3",
30
- "@vercel/routing-utils": "5.2.0",
30
+ "@vercel/routing-utils": "5.2.1",
31
31
  "aggregate-error": "3.0.1",
32
32
  "async-retry": "1.2.3",
33
33
  "async-sema": "2.1.4",
@@ -4,7 +4,7 @@
4
4
  "vercel": "./dist/vc.js"
5
5
  },
6
6
  "dependencies": {
7
- "@vercel/build-utils": "12.1.3",
7
+ "@vercel/build-utils": "12.2.1",
8
8
  "@vercel/detect-agent": "1.0.0",
9
9
  "@vercel/python": "5.0.10"
10
10
  },
@@ -33,9 +33,9 @@
33
33
  "test-e2e": "rimraf test/fixtures/integration && pnpm test test/integration-1.test.ts test/integration-2.test.ts test/integration-3.test.ts",
34
34
  "type-check": "tsc --noEmit",
35
35
  "vc": "pnpm vercel",
36
- "vercel": "ts-node ./src/index.ts",
36
+ "vercel": "pnpm build && node ./dist/vc.js",
37
37
  "vitest-run": "vitest --config ./vitest.config.mts",
38
38
  "vitest-unit": "jest test/unit/ --listTests"
39
39
  },
40
- "version": "48.5.0"
40
+ "version": "48.6.6"
41
41
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vercel-cli
3
- Version: 48.5.0
3
+ Version: 48.6.6
4
4
  Summary: Vercel CLI packaged for Python (bundled Node.js, vendored npm)
5
5
  Project-URL: Homepage, https://github.com/nuage-studio/vercel-cli-python
6
6
  Project-URL: Repository, https://github.com/nuage-studio/vercel-cli-python
@@ -1,20 +1,20 @@
1
1
  vercel_cli/vendor/LICENSE,sha256=sHDXe_ssUqHdaZbeDOX2TEmgylXIibFjqWPd9csAHuI,11343
2
2
  vercel_cli/vendor/README.md,sha256=2ZrJzd7x21xlpsOZ9QKG6478zbXb8-3YN8cPyzPxZNk,1799
3
- vercel_cli/vendor/package.json,sha256=XVbnrhyL4baMAzLFeikDzNyjFDIDl5QaKB6Qhhnxhcs,1262
3
+ vercel_cli/vendor/package.json,sha256=jB7obU4RW4A438T2N5vXDoPmbfNiMx2HkJDhQ19I0_M,1271
4
4
  vercel_cli/vendor/dist/VERCEL_DIR_README.txt,sha256=9dHtD1AyrhKJMfRkWbX6oa9jGfwt-z56X-VKhL-T29Y,520
5
5
  vercel_cli/vendor/dist/builder-worker.js,sha256=RgutTXJcurRisV2NtlruuPDtCBOi8eHSGCo3n4GcCIM,1969
6
6
  vercel_cli/vendor/dist/get-latest-worker.js,sha256=w7nK8nQtlYad_SKuFQGw_sg7_bb-p0uHOf1MYiwrUNs,7964
7
- vercel_cli/vendor/dist/index.js,sha256=TlJrWGYiVqgDNXI_tVfVPhqZDYAQ458kZvaa41XG19M,8922649
7
+ vercel_cli/vendor/dist/index.js,sha256=f80_H5glyWjM8vvOUOJUFyqTPzw962qRn-_Cd7yncYY,8925167
8
8
  vercel_cli/vendor/dist/vc.js,sha256=AAC4u6uwjpO0KfFVuLRs5YWXjW4aMCkgSj_45hR3W8k,340
9
- vercel_cli/vendor/node_modules/.package-lock.json,sha256=Lw1SannGfehBiyqTl-DbIVw01GN_aMw3OjzKB2AMDes,1055
10
- vercel_cli/vendor/node_modules/@vercel/build-utils/CHANGELOG.md,sha256=rxP_tNO7r-LfoYGHx-JkXq1GT9jhqJYd-VBqlJCxmcw,18452
9
+ vercel_cli/vendor/node_modules/.package-lock.json,sha256=xSHD7kVBnIuSasSM3Pt3vIRzEcx590SO-rur6T2r1oc,1055
10
+ vercel_cli/vendor/node_modules/@vercel/build-utils/CHANGELOG.md,sha256=nNVvKFPTep1aAET8z64_f681pKl0xvCqE67iRkBDCSM,18706
11
11
  vercel_cli/vendor/node_modules/@vercel/build-utils/LICENSE,sha256=sHDXe_ssUqHdaZbeDOX2TEmgylXIibFjqWPd9csAHuI,11343
12
12
  vercel_cli/vendor/node_modules/@vercel/build-utils/build.mjs,sha256=UCAJgPaur_bxtLTnQxSkBwoq246SSCBvI-0w_PvbAVU,132
13
13
  vercel_cli/vendor/node_modules/@vercel/build-utils/file-blob.js,sha256=aRpphtlekNrjt2il5QT0F2bXAkqFTO_V1krxIOq4hrI,51
14
14
  vercel_cli/vendor/node_modules/@vercel/build-utils/file-fs-ref.js,sha256=fOL25R1bIwSeLf_imxHGMUUhjRLF_BE1_Zu7id4zQHQ,52
15
15
  vercel_cli/vendor/node_modules/@vercel/build-utils/file-ref.js,sha256=Zagnve_F2XviRbTHabnkueLyODg4bS0YrNSqd3nfIl8,50
16
16
  vercel_cli/vendor/node_modules/@vercel/build-utils/lambda.js,sha256=KAiW9B7zt1YNj6DpnUErjD8pZJUq7MP1xCTG8oFzCKU,42
17
- vercel_cli/vendor/node_modules/@vercel/build-utils/package.json,sha256=YnPJtsOJ89xXjNDuORCKOhaVlnswdTGWVbfO50Fi-sk,1847
17
+ vercel_cli/vendor/node_modules/@vercel/build-utils/package.json,sha256=ZH3vU6W223QO8aeFskaXMjmFQLFRNI7f8LNvGZVbJOM,1847
18
18
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/clone-env.d.ts,sha256=j_d2xvRDDMBB4yXz53kyZ-plZRvg0Rg1d9-lFFvjVRo,415
19
19
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/clone-env.js,sha256=LzFB8CsnB1G7wZ2pl5D25siWq0kuY2eTvRlZMj6tbg0,1423
20
20
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/debug.d.ts,sha256=zh9K0T0QHcac03_UpCv9r4q3w8aia11XqtWd7Jsfhos,76
@@ -31,6 +31,8 @@ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-fs-ref.d.ts,sha256=
31
31
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-fs-ref.js,sha256=AXyXrTwRJTeqLOBhWGKm_KMkAiMxjOJpQlrW4lFotiU,3910
32
32
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-ref.d.ts,sha256=TavWfLrgq6soixSDYhdsvt8MtzIB_qLJPcbo02pm_Ts,1098
33
33
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-ref.js,sha256=7rTV64WuFTvLurFsNE8JWCC4Y7EFFgiqwtCAe9Co3CU,4929
34
+ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/framework-helpers.d.ts,sha256=IRG_QtqC8nldsMuBFyRmUzVTLDwBa5beZ8WtE82tVFk,772
35
+ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/framework-helpers.js,sha256=3kXU2W2xicW5bwcFKIFQ3RVhaCNu9qtOG4Zi0KVWeNA,1991
34
36
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/generate-node-builder-functions.d.ts,sha256=Qb_-JRWbd1gWWZBjNCRbXGzKneYF9QLQufU4IW0o2g8,509
35
37
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/generate-node-builder-functions.js,sha256=DhEN1dmoC8xRb3BMVefBCEpOZ6yhZrmdqvRcUFhWCB4,7550
36
38
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-ignore-filter.d.ts,sha256=Rr_2-k8x2nv7naAZFeV-vDiMjOiyQRn3ldqdSeh3jaE,113
@@ -43,8 +45,8 @@ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-prefixed-env-vars.d.
43
45
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-prefixed-env-vars.js,sha256=6rhb9L9lDw-oGmJk-CKgpZxgCzBWy2yBUxW6uD_fDMU,1827
44
46
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/hard-link-dir.d.ts,sha256=HplXUbwTLeD9eY-mSorms1O1mucLWBH-edAPIvAiYSM,85
45
47
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/hard-link-dir.js,sha256=K4utFK-gzVTfepi8P488t4cFBHBA8virdMyFumvu8E8,3685
46
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/index.d.ts,sha256=7H6JjqvY8N90MfHff-rb8zHbsNxWGfvKxUk3TZns8xU,2924
47
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/index.js,sha256=I4vJYDBODhcODDY9h8pANxTZs_vly3XCgdlBCwpVZpQ,1136196
48
+ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/index.d.ts,sha256=uhPAgdJem38X_WAjhOp_nMSTjcq-1JltuFiCxuyVT7g,3159
49
+ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/index.js,sha256=_cBhEInmUL5-gWKG1-K9bq1IBJEMGaTzUyR2NzWKgks,1138121
48
50
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/lambda.d.ts,sha256=wpPR6WTT3dvm0RBJ0KqaPW9ATmHMav4_uFvAnuxeWQQ,4746
49
51
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/lambda.js,sha256=MZS-MK-rCX6B5FPUiecss3a5wqSbSm--6mMp6Pu-Tu4,11598
50
52
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/nodejs-lambda.d.ts,sha256=LwC890Vt5ilvPpMhqRt8X0eOycQHa_vAsCeBf3KoKik,595
@@ -57,8 +59,8 @@ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/schemas.d.ts,sha256=cmMr
57
59
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/schemas.js,sha256=VjKaaJ48LyK_49jT5Om7d4_OvF0BG3tT_CW345-7lgc,3032
58
60
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/should-serve.d.ts,sha256=rYxmRjKfduI6QBQe8jOcOW97NkVvIsjbYmXj5Em5Hcg,91
59
61
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/should-serve.js,sha256=1M_tNAXPzxG6HnzqHtiIEy3oy65NMSBAKVQQ5215XJU,1599
60
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/types.d.ts,sha256=mrdWV95dorA5a4MyVnLrr99liY688AOXTu5Oit0--c0,16156
61
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/types.js,sha256=TvYaM5sNbX2hfy_eUrIz4JWgIpMPrTi_jcqHZDvP-kg,1678
62
+ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/types.d.ts,sha256=coRI14e5bbUb7vu3vcf1JmH1UdOCuKcwZVsvEpBCYNE,16233
63
+ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/types.js,sha256=9PxiJg7nYBdHioU_39mWy4O4CJuKb-VndGq1rfH690o,1761
62
64
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/validate-npmrc.d.ts,sha256=YxDG9YaXL8YMWe-UBrtmVS_aKzZsDlSc6AxWN_OeMB8,527
63
65
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/validate-npmrc.js,sha256=ZZSYts47i3Gu4FReelJVy_jNbeV-tx2Ii2AWJvwrPBI,1593
64
66
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/download.d.ts,sha256=cCEqH4vEnCnTZ0SZ_XjY52uMXAZ1vCAGlYNXVMrwrGM,472
@@ -67,16 +69,16 @@ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/get-writable-director
67
69
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/get-writable-directory.js,sha256=YMcrgL69VnilYYsxocXiqVUU_Qh2k217eDwBv1qh-uk,1349
68
70
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/glob.d.ts,sha256=wEBK0FOg-tOiWcp-QZLtA2r5bRbibV-Ic75A5qg2bFk,364
69
71
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/glob.js,sha256=SRM_-ufdBHgeqJaW_nBwujRjmfjLsxbHFho5k5tO1bY,4519
70
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/node-version.d.ts,sha256=0eIUt7sMhWZqH6bJtJVK9S-758p1YSqH41XtN_LqxZY,717
71
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/node-version.js,sha256=0pIUPPUDeSsKdis6y9WB9kxondGXNEssr_DvuRSYHPI,6331
72
+ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/node-version.d.ts,sha256=_VdEAqvrWqkBmCkv75b_0nHcDJ9kJZ9xMQINXggufBk,933
73
+ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/node-version.js,sha256=-qUIEFes4WA5I3WRaUZOxkVXvuv_RfM0dfuCabyEI9A,7280
72
74
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/normalize-path.d.ts,sha256=pMZyTNN1scwUc7cBCWEk8-lwxI5KIjazfNLqkInqVrg,116
73
75
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/normalize-path.js,sha256=mdFXSxNkmBBpEs5szUMVt7yVFcnTANXt84_BnyNqpBI,1188
74
76
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/read-config-file.d.ts,sha256=KO7AYZGrouVIOwaCYyOoqyVd6e7UFrZa9yWqsoHqU4Y,88
75
77
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/read-config-file.js,sha256=Ccakw-Y8sFtHjQmAIU3GdbIdyXg9I0sRW9EU02KEMOw,2866
76
78
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/rename.d.ts,sha256=v6WioV6U1QxczX6tOCZbSjXjeCN2ouyK2bujhvvPJTI,378
77
79
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/rename.js,sha256=55SeRvSvb6gVVlLRNlFA0WaMVHikvBdMI9YRUxDn2yU,1094
78
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/run-user-scripts.d.ts,sha256=sC9LgBU_TbYTaBQyrNM0TMSFgjRuKcfx7tJMoKa2FIc,8698
79
- vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/run-user-scripts.js,sha256=b_NKixXsJ6aOYKA2pNFizjuK4zzbWG551pWNI-ao2hQ,38028
80
+ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/run-user-scripts.d.ts,sha256=sRNZHwOzoIsq0UzCYHlCT5nh_CiquUUQ80ZJ6l6-VlA,8501
81
+ vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/run-user-scripts.js,sha256=JD4e_YiKjQzBtUda0glBDZPJAsFYr3SWqWb2ynaB1So,38064
80
82
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/stream-to-buffer.d.ts,sha256=ARoCtv0o8IIUW0myrosVJhv6d_odcaJUisA2LDHZSKM,235
81
83
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/stream-to-buffer.js,sha256=R4Z_RpbNJKFvoVX5AvyWzoVoJqrQaSz4CZSSFJV6vVQ,3158
82
84
  vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/constants.d.ts,sha256=Z0MsKjgTcB8igokDmq1MxRJpCIGCEUgFXQId2yGiahM,132
@@ -103,7 +105,7 @@ vercel_cli/vendor/node_modules/@vercel/python/vc_init.py,sha256=A7949hQi18B9yqPk
103
105
  vercel_cli/vendor/node_modules/@vercel/python/vc_init_dev_asgi.py,sha256=pV9s5Jz4AS_JswthCOP3L6SPWVgk_2kRD1REgA9GKIQ,3078
104
106
  vercel_cli/vendor/node_modules/@vercel/python/vc_init_dev_wsgi.py,sha256=pnNGrPJtPF9OdioaiIdD_OgA3qdio4HqGmKaenogtAk,4078
105
107
  vercel_cli/vendor/node_modules/@vercel/python/dist/index.js,sha256=fAumiV0j6qLydhmE1mcuKhUarPee09cOpcOlwrUOz_0,136129
106
- vercel_cli-48.5.0.dist-info/METADATA,sha256=V9N7KqxT5Y9Srqgc1E2nI21QQSuE2U7KTSg3LxqnhiU,7085
107
- vercel_cli-48.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
108
- vercel_cli-48.5.0.dist-info/entry_points.txt,sha256=3iHkg20gi2BZorK1g5UlyZY3tN5E1vJX6PX5-ibn9fI,83
109
- vercel_cli-48.5.0.dist-info/RECORD,,
108
+ vercel_cli-48.6.6.dist-info/METADATA,sha256=07u99WZnHZg-iLy-p8OCOw07CulCDKncVnTKjrJsej4,7085
109
+ vercel_cli-48.6.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
110
+ vercel_cli-48.6.6.dist-info/entry_points.txt,sha256=3iHkg20gi2BZorK1g5UlyZY3tN5E1vJX6PX5-ibn9fI,83
111
+ vercel_cli-48.6.6.dist-info/RECORD,,