vercel 50.25.3 → 50.25.4

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.
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-KY2ZFZU3.js";
24
24
  import {
25
25
  CommandTimeout
26
- } from "./chunk-5H72X3JL.js";
26
+ } from "./chunk-GEECDT5M.js";
27
27
  import {
28
28
  require_dist as require_dist3
29
29
  } from "./chunk-5UCDAO2E.js";
@@ -2367,13 +2367,25 @@ var discoverSubcommand = {
2367
2367
  name: "discover",
2368
2368
  aliases: [],
2369
2369
  description: "Discover available marketplace integrations",
2370
- arguments: [],
2370
+ arguments: [
2371
+ {
2372
+ name: "query",
2373
+ required: false
2374
+ }
2375
+ ],
2371
2376
  options: [formatOption, jsonOption],
2372
2377
  examples: [
2373
2378
  {
2374
2379
  name: "Discover marketplace integrations",
2375
2380
  value: [`${packageName} integration discover`]
2376
2381
  },
2382
+ {
2383
+ name: "Search for integrations matching a query",
2384
+ value: [
2385
+ `${packageName} integration discover postgres`,
2386
+ `${packageName} integration discover aws`
2387
+ ]
2388
+ },
2377
2389
  {
2378
2390
  name: "Discover marketplace integrations as JSON",
2379
2391
  value: [`${packageName} integration discover --format=json`]
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-XHZTNEED.js";
13
13
  import {
14
14
  loginCommand
15
- } from "./chunk-5H72X3JL.js";
15
+ } from "./chunk-GEECDT5M.js";
16
16
  import {
17
17
  help
18
18
  } from "./chunk-JC42I36Q.js";
@@ -812,7 +812,7 @@ async function doBuild(client, project, buildsJson, cwd, outputDir, span, standa
812
812
  try {
813
813
  const { builder, pkg: builderPkg } = builderWithPkg;
814
814
  const service = hasDetectedServices ? servicesByBuilderSrc.get(build.src) : void 0;
815
- const stripServiceRoutePrefix = !!service?.routePrefix && service?.routePrefix !== "/" && service?.routePrefixSource === "generated";
815
+ const stripServiceRoutePrefix = !!service?.routePrefix && service.routePrefix !== "/";
816
816
  let buildWorkPath = workPath;
817
817
  let buildEntrypoint = build.src;
818
818
  let buildFiles = filesMap;
@@ -1007,7 +1007,33 @@ async function doBuild(client, project, buildsJson, cwd, outputDir, span, standa
1007
1007
  allServices: detectedServices
1008
1008
  });
1009
1009
  }
1010
- buildResults.set(build, buildResult);
1010
+ let mergedBuildResult = buildResult;
1011
+ if ("buildOutputPath" in buildResult) {
1012
+ const buildOutputConfigPath = join2(
1013
+ buildResult.buildOutputPath,
1014
+ "config.json"
1015
+ );
1016
+ const buildOutputConfig = await readJSONFile(
1017
+ buildOutputConfigPath
1018
+ );
1019
+ if (buildOutputConfig instanceof CantParseJSONFile) {
1020
+ throw buildOutputConfig;
1021
+ }
1022
+ if (buildOutputConfig) {
1023
+ if (buildOutputConfig.overrides) {
1024
+ overrides.push(buildOutputConfig.overrides);
1025
+ }
1026
+ if (hasDetectedServices && service && Array.isArray(buildOutputConfig.routes) && detectedServices) {
1027
+ buildOutputConfig.routes = scopeRoutesToServiceOwnership({
1028
+ routes: buildOutputConfig.routes,
1029
+ owner: service,
1030
+ allServices: detectedServices
1031
+ });
1032
+ }
1033
+ mergedBuildResult = buildOutputConfig;
1034
+ }
1035
+ }
1036
+ buildResults.set(build, mergedBuildResult);
1011
1037
  let buildOutputLength = 0;
1012
1038
  if ("output" in buildResult) {
1013
1039
  buildOutputLength = Array.isArray(buildResult.output) ? buildResult.output.length : 1;
@@ -1109,13 +1135,6 @@ async function doBuild(client, project, buildsJson, cwd, outputDir, span, standa
1109
1135
  if (existingConfig.overrides) {
1110
1136
  overrides.push(existingConfig.overrides);
1111
1137
  }
1112
- for (const [build, buildResult] of buildResults.entries()) {
1113
- if ("buildOutputPath" in buildResult) {
1114
- output_manager_default.debug(`Using "config.json" for "${build.use}`);
1115
- buildResults.set(build, existingConfig);
1116
- break;
1117
- }
1118
- }
1119
1138
  }
1120
1139
  const builderRoutes = Array.from(
1121
1140
  buildResults.entries()
@@ -13,7 +13,7 @@ import {
13
13
  purchaseDomainIfAvailable,
14
14
  require_cjs,
15
15
  setupDomain
16
- } from "../../chunks/chunk-AQ443YWV.js";
16
+ } from "../../chunks/chunk-7PX7XQE5.js";
17
17
  import {
18
18
  readLocalConfig
19
19
  } from "../../chunks/chunk-XHZTNEED.js";
@@ -38,7 +38,7 @@ import {
38
38
  deprecatedArchiveSplitTgz,
39
39
  getCommandAliases,
40
40
  initSubcommand
41
- } from "../../chunks/chunk-5H72X3JL.js";
41
+ } from "../../chunks/chunk-GEECDT5M.js";
42
42
  import "../../chunks/chunk-LTTGCN2M.js";
43
43
  import "../../chunks/chunk-VZ2TAK5O.js";
44
44
  import "../../chunks/chunk-CNPRAFKN.js";
@@ -17611,15 +17611,16 @@ function createServiceLogger(serviceName, colorIndex, maxNameLength) {
17611
17611
  const color = SERVICE_COLORS[colorIndex % SERVICE_COLORS.length];
17612
17612
  const padding = " ".repeat(maxNameLength - serviceName.length);
17613
17613
  const prefix = color(`[${serviceName}]`) + padding;
17614
- const createTransform = () => {
17614
+ const createTransform = (streamLabel) => {
17615
17615
  let buffer = "";
17616
+ const labelPrefix = output_manager_default.debugEnabled ? `${prefix} ${import_chalk.default.gray(`(${streamLabel})`)}` : prefix;
17616
17617
  return new Transform({
17617
17618
  transform(chunk, _encoding, callback) {
17618
17619
  buffer += chunk.toString();
17619
17620
  const lines = buffer.split("\n");
17620
17621
  buffer = lines.pop() || "";
17621
17622
  if (lines.length > 0) {
17622
- const prefixed = lines.map((line) => `${prefix} ${line}`).join("\n");
17623
+ const prefixed = lines.map((line) => `${labelPrefix} ${line}`).join("\n");
17623
17624
  callback(null, prefixed + "\n");
17624
17625
  } else {
17625
17626
  callback(null, "");
@@ -17627,7 +17628,7 @@ function createServiceLogger(serviceName, colorIndex, maxNameLength) {
17627
17628
  },
17628
17629
  flush(callback) {
17629
17630
  if (buffer) {
17630
- callback(null, `${prefix} ${buffer}
17631
+ callback(null, `${labelPrefix} ${buffer}
17631
17632
  `);
17632
17633
  } else {
17633
17634
  callback(null, "");
@@ -17635,8 +17636,8 @@ function createServiceLogger(serviceName, colorIndex, maxNameLength) {
17635
17636
  }
17636
17637
  });
17637
17638
  };
17638
- const stdout = createTransform();
17639
- const stderr = createTransform();
17639
+ const stdout = createTransform("stdout");
17640
+ const stderr = createTransform("stderr");
17640
17641
  stdout.pipe(process.stdout);
17641
17642
  stderr.pipe(process.stderr);
17642
17643
  const cleanup = () => {
@@ -17778,9 +17779,7 @@ var ServicesOrchestrator = class {
17778
17779
  );
17779
17780
  if (service.routePrefix && service.routePrefix !== "/") {
17780
17781
  env.VERCEL_SERVICE_ROUTE_PREFIX = service.routePrefix;
17781
- if (service.routePrefixSource === "generated") {
17782
- env.VERCEL_SERVICE_ROUTE_PREFIX_STRIP = "1";
17783
- }
17782
+ env.VERCEL_SERVICE_ROUTE_PREFIX_STRIP = "1";
17784
17783
  }
17785
17784
  const builderSpec = framework?.useRuntime?.use || service.builder?.use;
17786
17785
  if (builderSpec) {
@@ -28,7 +28,7 @@ import {
28
28
  } from "../../chunks/chunk-YPQSDAEW.js";
29
29
  import {
30
30
  getCommandAliases
31
- } from "../../chunks/chunk-5H72X3JL.js";
31
+ } from "../../chunks/chunk-GEECDT5M.js";
32
32
  import "../../chunks/chunk-LTTGCN2M.js";
33
33
  import "../../chunks/chunk-VZ2TAK5O.js";
34
34
  import "../../chunks/chunk-CNPRAFKN.js";
@@ -11,7 +11,7 @@ import {
11
11
  addSubcommand6 as addSubcommand,
12
12
  getCommandAliases,
13
13
  linkCommand
14
- } from "../../chunks/chunk-5H72X3JL.js";
14
+ } from "../../chunks/chunk-GEECDT5M.js";
15
15
  import "../../chunks/chunk-LTTGCN2M.js";
16
16
  import "../../chunks/chunk-VZ2TAK5O.js";
17
17
  import "../../chunks/chunk-CNPRAFKN.js";
@@ -52,7 +52,7 @@ import {
52
52
  did_you_mean_default,
53
53
  executeUpgrade,
54
54
  login
55
- } from "./chunks/chunk-VHQHLKWP.js";
55
+ } from "./chunks/chunk-KH2E2YV4.js";
56
56
  import {
57
57
  getUpdateCommand,
58
58
  isGlobal
@@ -78,7 +78,7 @@ import {
78
78
  require_format,
79
79
  require_jsonlines,
80
80
  setupDomain
81
- } from "./chunks/chunk-AQ443YWV.js";
81
+ } from "./chunks/chunk-7PX7XQE5.js";
82
82
  import {
83
83
  processRevocationResponse,
84
84
  require_open,
@@ -267,7 +267,7 @@ import {
267
267
  v0Subcommand,
268
268
  webhooksCommand,
269
269
  whoamiCommand
270
- } from "./chunks/chunk-5H72X3JL.js";
270
+ } from "./chunks/chunk-GEECDT5M.js";
271
271
  import {
272
272
  addSubcommand as addSubcommand8,
273
273
  deleteSubcommand,
@@ -15549,6 +15549,14 @@ var IntegrationDiscoverTelemetryClient = class extends TelemetryClient {
15549
15549
  this.trackCliFlag("json");
15550
15550
  }
15551
15551
  }
15552
+ trackCliArgumentQuery(v) {
15553
+ if (v) {
15554
+ this.trackCliArgument({
15555
+ arg: "query",
15556
+ value: this.redactedValue
15557
+ });
15558
+ }
15559
+ }
15552
15560
  };
15553
15561
 
15554
15562
  // src/util/integration/fetch-marketplace-integrations-list.ts
@@ -15603,12 +15611,14 @@ async function discover(client, args) {
15603
15611
  store: client.telemetryEventStore
15604
15612
  }
15605
15613
  });
15606
- if (parsedArguments.args.length > 0) {
15614
+ if (parsedArguments.args.length > 1) {
15607
15615
  output_manager_default.error(
15608
- "Invalid number of arguments. Usage: `vercel integration discover`"
15616
+ "Invalid number of arguments. Usage: `vercel integration discover [query]`"
15609
15617
  );
15610
15618
  return 1;
15611
15619
  }
15620
+ const query = parsedArguments.args[0] ?? "";
15621
+ telemetry2.trackCliArgumentQuery(query);
15612
15622
  const formatResult = validateJsonOutput(parsedArguments.flags);
15613
15623
  if (!formatResult.valid) {
15614
15624
  output_manager_default.error(formatResult.error);
@@ -15676,11 +15686,12 @@ async function discover(client, args) {
15676
15686
  }
15677
15687
  }
15678
15688
  output_manager_default.stopSpinner();
15689
+ const filtered = query ? results.filter((product) => matchesSearchTerm(product, query)) : results;
15679
15690
  if (asJson) {
15680
15691
  client.stdout.write(
15681
15692
  `${JSON.stringify(
15682
15693
  {
15683
- products: results
15694
+ products: filtered
15684
15695
  },
15685
15696
  null,
15686
15697
  2
@@ -15689,12 +15700,16 @@ async function discover(client, args) {
15689
15700
  );
15690
15701
  return 0;
15691
15702
  }
15692
- if (results.length === 0) {
15693
- output_manager_default.log("No marketplace products found.");
15703
+ if (filtered.length === 0) {
15704
+ if (query) {
15705
+ output_manager_default.log(`No marketplace products matching "${query}" found.`);
15706
+ } else {
15707
+ output_manager_default.log("No marketplace products found.");
15708
+ }
15694
15709
  return 0;
15695
15710
  }
15696
15711
  const useCompactFormat = client.stderr.columns > 0 && client.stderr.columns < 120;
15697
- const formattedOutput = useCompactFormat ? formatCompactList(results) : formatTable2(results);
15712
+ const formattedOutput = useCompactFormat ? formatCompactList(filtered) : formatTable2(filtered);
15698
15713
  output_manager_default.log("Available marketplace products:\n" + formattedOutput);
15699
15714
  return 0;
15700
15715
  }
@@ -15714,6 +15729,10 @@ function formatTable2(products) {
15714
15729
  { hsep: 4 }
15715
15730
  );
15716
15731
  }
15732
+ function matchesSearchTerm(product, term) {
15733
+ const lower = term.toLowerCase();
15734
+ return product.name.toLowerCase().includes(lower) || product.slug.toLowerCase().includes(lower) || product.provider.toLowerCase().includes(lower) || product.description.toLowerCase().includes(lower) || product.tags.some((tag) => tag.toLowerCase().includes(lower));
15735
+ }
15717
15736
  function formatCompactList(products) {
15718
15737
  return products.map((product) => {
15719
15738
  return [
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  did_you_mean_default,
16
16
  executeUpgrade,
17
17
  login
18
- } from "./chunks/chunk-VHQHLKWP.js";
18
+ } from "./chunks/chunk-KH2E2YV4.js";
19
19
  import {
20
20
  getUpdateCommand
21
21
  } from "./chunks/chunk-MRMQ6KI4.js";
@@ -37,7 +37,7 @@ import {
37
37
  import {
38
38
  commandNames,
39
39
  commands
40
- } from "./chunks/chunk-5H72X3JL.js";
40
+ } from "./chunks/chunk-GEECDT5M.js";
41
41
  import "./chunks/chunk-LTTGCN2M.js";
42
42
  import "./chunks/chunk-VZ2TAK5O.js";
43
43
  import "./chunks/chunk-CNPRAFKN.js";
package/dist/version.mjs CHANGED
@@ -1 +1 @@
1
- export const version = "50.25.3";
1
+ export const version = "50.25.4";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "50.25.3",
3
+ "version": "50.25.4",
4
4
  "type": "module",
5
5
  "preferGlobal": true,
6
6
  "license": "Apache-2.0",
@@ -30,26 +30,26 @@
30
30
  "jose": "5.9.6",
31
31
  "luxon": "^3.4.0",
32
32
  "proxy-agent": "6.4.0",
33
+ "@vercel/build-utils": "13.6.1",
33
34
  "@vercel/detect-agent": "1.1.0",
34
35
  "@vercel/backends": "0.0.39",
35
- "@vercel/build-utils": "13.6.1",
36
36
  "@vercel/express": "0.1.51",
37
+ "@vercel/elysia": "0.1.42",
37
38
  "@vercel/fastify": "0.1.45",
38
39
  "@vercel/go": "3.4.3",
39
40
  "@vercel/h3": "0.1.51",
40
41
  "@vercel/hono": "0.2.45",
41
42
  "@vercel/hydrogen": "1.3.5",
43
+ "@vercel/koa": "0.1.25",
42
44
  "@vercel/nestjs": "0.2.46",
43
45
  "@vercel/next": "4.15.36",
44
- "@vercel/koa": "0.1.25",
45
46
  "@vercel/node": "5.6.9",
46
- "@vercel/python": "6.18.1",
47
- "@vercel/remix-builder": "5.6.0",
48
- "@vercel/elysia": "0.1.42",
49
47
  "@vercel/redwood": "2.4.9",
48
+ "@vercel/python": "6.19.0",
49
+ "@vercel/remix-builder": "5.6.0",
50
50
  "@vercel/ruby": "2.3.2",
51
- "@vercel/rust": "1.0.5",
52
- "@vercel/static-build": "2.8.43"
51
+ "@vercel/static-build": "2.8.43",
52
+ "@vercel/rust": "1.0.5"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@alex_neo/jest-expect-message": "1.0.5",
@@ -179,12 +179,12 @@
179
179
  "yauzl-promise": "2.1.3",
180
180
  "@vercel-internals/constants": "1.0.4",
181
181
  "@vercel-internals/get-package-json": "1.0.0",
182
- "@vercel-internals/types": "3.0.6",
183
182
  "@vercel/client": "17.2.50",
184
183
  "@vercel/error-utils": "2.0.3",
185
184
  "@vercel/frameworks": "3.19.1",
186
- "@vercel/fs-detectors": "5.8.13",
187
- "@vercel/routing-utils": "6.0.1"
185
+ "@vercel-internals/types": "3.0.6",
186
+ "@vercel/routing-utils": "6.0.1",
187
+ "@vercel/fs-detectors": "5.8.13"
188
188
  },
189
189
  "scripts": {
190
190
  "test": "jest --reporters=default --reporters=jest-junit --env node --verbose --bail",