vercel 53.0.1 → 53.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/dist/chunks/{add-S3BUT3KQ.js → add-UAZIKU22.js} +4 -4
- package/dist/chunks/{chunk-57OG3NFC.js → chunk-3LRN4Q7G.js} +4 -1
- package/dist/chunks/{chunk-RKBCXTHK.js → chunk-3P3YBOCQ.js} +1 -1
- package/dist/chunks/{chunk-NUDNH7KK.js → chunk-5B27ZNJB.js} +5 -5
- package/dist/chunks/{chunk-BQOJ2BDS.js → chunk-5GMV7WTU.js} +5 -5
- package/dist/chunks/{chunk-D2KD42ZV.js → chunk-AES77UB7.js} +6 -4
- package/dist/chunks/{chunk-WTXYVRTW.js → chunk-BAAZFRLH.js} +2 -2
- package/dist/chunks/{chunk-6DECDOGX.js → chunk-C7FXVPAA.js} +1 -1
- package/dist/chunks/{chunk-VLWTUL5F.js → chunk-EYQEF55O.js} +1 -1
- package/dist/chunks/{chunk-CLLHWKQN.js → chunk-GDOCMDCB.js} +1 -1
- package/dist/chunks/{chunk-IWGJIRFK.js → chunk-JDKASMB2.js} +2 -2
- package/dist/chunks/{chunk-L3UAXRIV.js → chunk-JPVQD2PJ.js} +1 -1
- package/dist/chunks/{chunk-WZZBS2SZ.js → chunk-KFFW6MSL.js} +1 -1
- package/dist/chunks/{chunk-WR7S7PWN.js → chunk-KOCX7HWE.js} +6 -6
- package/dist/chunks/{chunk-IFPIVLCE.js → chunk-LDFOVKJS.js} +80 -84
- package/dist/chunks/{chunk-7KSQOBO6.js → chunk-NFAQ5Q3Z.js} +1 -1
- package/dist/chunks/{chunk-PD5HCBBY.js → chunk-SPXTKMOV.js} +9 -4
- package/dist/chunks/{chunk-IC6EDRCI.js → chunk-T2DVW5BM.js} +2 -2
- package/dist/chunks/{chunk-LOS2AA5C.js → chunk-VQSAZO3U.js} +3 -3
- package/dist/chunks/{chunk-2RFTQMCH.js → chunk-WMD7Y6HT.js} +1 -1
- package/dist/chunks/{chunk-BNAHPSLB.js → chunk-WS4HI35O.js} +1 -1
- package/dist/chunks/{chunk-W7MR5OK3.js → chunk-YIK5Y7MI.js} +2 -2
- package/dist/chunks/{compile-vercel-config-PJN7DW4H.js → compile-vercel-config-BUURMPDD.js} +1 -1
- package/dist/chunks/{delete-TBPSIJ2Y.js → delete-GBLJYO3T.js} +2 -2
- package/dist/chunks/{disable-6K46H3LF.js → disable-QFE5TGWG.js} +2 -2
- package/dist/chunks/{discard-7MMLSQCH.js → discard-IPPO7M2N.js} +2 -2
- package/dist/chunks/{edit-OM7SMKFO.js → edit-KQD3MEZA.js} +3 -3
- package/dist/chunks/{enable-EA7VELBO.js → enable-JBL4DMGJ.js} +2 -2
- package/dist/chunks/{export-EDEVEIPT.js → export-KLWZUAYD.js} +2 -2
- package/dist/chunks/{inspect-AUTVRW5N.js → inspect-TWW2XBDE.js} +3 -3
- package/dist/chunks/{list-ZA6FTW2G.js → list-UM77B7WK.js} +3 -3
- package/dist/chunks/{list-7A7YF7LJ.js → list-WJGLZ5ES.js} +2 -2
- package/dist/chunks/{ls-57JSYP5Q.js → ls-WVHDFPT3.js} +4 -4
- package/dist/chunks/{publish-XRQG6WAA.js → publish-45SAIZE4.js} +2 -2
- package/dist/chunks/{query-JWXCJWZG.js → query-VH2TS6IS.js} +2 -2
- package/dist/chunks/{reorder-5GYXEH5H.js → reorder-NYENR2XY.js} +2 -2
- package/dist/chunks/{restore-LYPACI5W.js → restore-H2VIG7KZ.js} +2 -2
- package/dist/chunks/{rm-XNGCDU4C.js → rm-RQEP4KMK.js} +4 -4
- package/dist/chunks/{rule-inspect-3WNGN6TA.js → rule-inspect-GR3RMO2J.js} +4 -4
- package/dist/chunks/{rules-R5LVTCSA.js → rules-EOBQZE3T.js} +6 -6
- package/dist/chunks/{schema-Q7VADI6C.js → schema-OOGMY2SS.js} +2 -2
- package/dist/chunks/{update-HQI4PQCH.js → update-VLOWX7UQ.js} +4 -4
- package/dist/commands/build/index.js +24 -15
- package/dist/commands/deploy/index.js +14 -14
- package/dist/commands/dev/index.js +10 -13
- package/dist/commands/env/index.js +17 -29
- package/dist/commands/link/index.js +8 -9
- package/dist/commands/list/index.js +4 -4
- package/dist/commands-bulk.js +38 -38
- package/dist/index.js +10 -11
- package/dist/version.mjs +1 -1
- package/package.json +13 -13
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
handleRulesApiError,
|
|
10
10
|
parseRulesFlagsAndScope,
|
|
11
11
|
rulesCollectionPath
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-C7FXVPAA.js";
|
|
13
|
+
import "./chunk-YIK5Y7MI.js";
|
|
14
14
|
import "./chunk-HTOH3MSD.js";
|
|
15
15
|
import {
|
|
16
16
|
validateJsonOutput
|
|
@@ -18,11 +18,11 @@ import {
|
|
|
18
18
|
import {
|
|
19
19
|
rulesAddSubcommand
|
|
20
20
|
} from "./chunk-P3H4MP5H.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-EYQEF55O.js";
|
|
22
22
|
import {
|
|
23
23
|
AGENT_REASON
|
|
24
24
|
} from "./chunk-E3NE4SKN.js";
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-SPXTKMOV.js";
|
|
26
26
|
import "./chunk-4Z7KJQGN.js";
|
|
27
27
|
import {
|
|
28
28
|
buildCommandWithGlobalFlags,
|
|
@@ -226,13 +226,16 @@ function buildDescriptionLine(command, options) {
|
|
|
226
226
|
return `${wrappingText}${NEWLINE}`;
|
|
227
227
|
}
|
|
228
228
|
function buildHelpOutput(command, options) {
|
|
229
|
+
const filteredGlobalOptions = command.disabledGlobalOptions ? globalCommandOptions.filter(
|
|
230
|
+
(opt) => !command.disabledGlobalOptions?.includes(opt.name)
|
|
231
|
+
) : globalCommandOptions;
|
|
229
232
|
const outputArray = [
|
|
230
233
|
"",
|
|
231
234
|
buildCommandSynopsisLine(command, options.parent),
|
|
232
235
|
buildDescriptionLine(command, options),
|
|
233
236
|
buildSubcommandLines(command.subcommands, options),
|
|
234
237
|
buildCommandOptionLines(command.options, options, "Options"),
|
|
235
|
-
buildCommandOptionLines(
|
|
238
|
+
buildCommandOptionLines(filteredGlobalOptions, options, "Global Options"),
|
|
236
239
|
buildCommandExampleLines(command),
|
|
237
240
|
""
|
|
238
241
|
];
|
|
@@ -6,24 +6,24 @@ const __filename = __fileURLToPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __dirname_(__filename);
|
|
7
7
|
import {
|
|
8
8
|
writeProjectSettings
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-JPVQD2PJ.js";
|
|
10
10
|
import {
|
|
11
11
|
ensureLink
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-T2DVW5BM.js";
|
|
13
13
|
import {
|
|
14
14
|
autoInstallVercelPlugin,
|
|
15
15
|
pullCommand
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-LDFOVKJS.js";
|
|
17
17
|
import {
|
|
18
18
|
help
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-3LRN4Q7G.js";
|
|
20
20
|
import {
|
|
21
21
|
VERCEL_DIR,
|
|
22
22
|
VERCEL_DIR_PROJECT,
|
|
23
23
|
envPullCommandLogic,
|
|
24
24
|
humanizePath,
|
|
25
25
|
parseTarget
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-SPXTKMOV.js";
|
|
27
27
|
import {
|
|
28
28
|
TelemetryClient
|
|
29
29
|
} from "./chunk-4Z7KJQGN.js";
|
|
@@ -6,21 +6,21 @@ const __filename = __fileURLToPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __dirname_(__filename);
|
|
7
7
|
import {
|
|
8
8
|
getUpdateCommand
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NFAQ5Q3Z.js";
|
|
10
10
|
import {
|
|
11
11
|
login
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-VQSAZO3U.js";
|
|
13
13
|
import {
|
|
14
14
|
apiCommand,
|
|
15
15
|
listSubcommand2 as listSubcommand,
|
|
16
16
|
loginCommand
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-AES77UB7.js";
|
|
18
18
|
import {
|
|
19
19
|
help
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-3LRN4Q7G.js";
|
|
21
21
|
import {
|
|
22
22
|
global_path_default
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-SPXTKMOV.js";
|
|
24
24
|
import {
|
|
25
25
|
TelemetryClient
|
|
26
26
|
} from "./chunk-4Z7KJQGN.js";
|
|
@@ -25,10 +25,10 @@ import {
|
|
|
25
25
|
import {
|
|
26
26
|
buildCommand,
|
|
27
27
|
pullCommand
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-LDFOVKJS.js";
|
|
29
29
|
import {
|
|
30
30
|
envCommand
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-SPXTKMOV.js";
|
|
32
32
|
import {
|
|
33
33
|
confirmOption,
|
|
34
34
|
forceOption,
|
|
@@ -4853,7 +4853,8 @@ var loginCommand = {
|
|
|
4853
4853
|
name: "Sign in to your Vercel account.",
|
|
4854
4854
|
value: `${packageName} login`
|
|
4855
4855
|
}
|
|
4856
|
-
]
|
|
4856
|
+
],
|
|
4857
|
+
disabledGlobalOptions: ["token"]
|
|
4857
4858
|
};
|
|
4858
4859
|
|
|
4859
4860
|
// src/commands/logout/command.ts
|
|
@@ -6900,7 +6901,8 @@ var switchSubcommand = {
|
|
|
6900
6901
|
name: "Switch to a team. If your team's url is 'vercel.com/name', then 'name' is the slug. If the slug is omitted, you can choose interactively",
|
|
6901
6902
|
value: `${packageName} teams switch <slug>`
|
|
6902
6903
|
}
|
|
6903
|
-
]
|
|
6904
|
+
],
|
|
6905
|
+
disabledGlobalOptions: ["token"]
|
|
6904
6906
|
};
|
|
6905
6907
|
var inviteSubcommand = {
|
|
6906
6908
|
name: "invite",
|
|
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __dirname_(__filename);
|
|
7
7
|
import {
|
|
8
8
|
getLocalPathConfig
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-KFFW6MSL.js";
|
|
10
10
|
import {
|
|
11
11
|
table
|
|
12
12
|
} from "./chunk-ABDTA3V2.js";
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
selectAndParseRemoteUrl,
|
|
38
38
|
selectOrg,
|
|
39
39
|
writeServicesConfig
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-SPXTKMOV.js";
|
|
41
41
|
import {
|
|
42
42
|
printError
|
|
43
43
|
} from "./chunk-JNOMOD7R.js";
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-IB5L4LKZ.js";
|
|
10
10
|
import {
|
|
11
11
|
require_execa
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-WMD7Y6HT.js";
|
|
13
13
|
import {
|
|
14
14
|
VERCEL_DIR,
|
|
15
15
|
readJSONFile,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
require_lib,
|
|
19
19
|
require_minimatch,
|
|
20
20
|
require_pluralize
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-SPXTKMOV.js";
|
|
22
22
|
import {
|
|
23
23
|
CantParseJSONFile,
|
|
24
24
|
cmd,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
printIndications,
|
|
10
10
|
require_dist as require_dist2,
|
|
11
11
|
sleep
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-VQSAZO3U.js";
|
|
13
13
|
import {
|
|
14
14
|
suggestNextCommands
|
|
15
15
|
} from "./chunk-LOS7HHU3.js";
|
|
@@ -19,23 +19,23 @@ import {
|
|
|
19
19
|
} from "./chunk-MSJX3VKI.js";
|
|
20
20
|
import {
|
|
21
21
|
CommandTimeout
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-AES77UB7.js";
|
|
23
23
|
import {
|
|
24
24
|
getScope
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-EYQEF55O.js";
|
|
26
26
|
import {
|
|
27
27
|
ua_default
|
|
28
28
|
} from "./chunk-JCLLQ23G.js";
|
|
29
29
|
import {
|
|
30
30
|
showPluginTipIfNeeded
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-LDFOVKJS.js";
|
|
32
32
|
import {
|
|
33
33
|
getProjectByNameOrId,
|
|
34
34
|
param,
|
|
35
35
|
require_dist as require_dist3,
|
|
36
36
|
require_lib3 as require_lib,
|
|
37
37
|
require_pluralize
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-SPXTKMOV.js";
|
|
39
39
|
import {
|
|
40
40
|
require_ms,
|
|
41
41
|
stamp_default
|
|
@@ -4531,7 +4531,7 @@ async function processDeployment({
|
|
|
4531
4531
|
var FunctionsSizeLimitError = class extends Error {
|
|
4532
4532
|
constructor() {
|
|
4533
4533
|
super(...arguments);
|
|
4534
|
-
this.link = "https://vercel.com/docs/
|
|
4534
|
+
this.link = "https://vercel.com/docs/functions/runtimes/python#extended-size-limits-with-functions-beta";
|
|
4535
4535
|
}
|
|
4536
4536
|
};
|
|
4537
4537
|
function handleErrorSolvableWithFunctionsBeta(error) {
|
|
@@ -4,13 +4,10 @@ import { dirname as __dirname_ } from 'node:path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __dirname_(__filename);
|
|
7
|
-
import {
|
|
8
|
-
AGENT_ACTION
|
|
9
|
-
} from "./chunk-E3NE4SKN.js";
|
|
10
7
|
import {
|
|
11
8
|
getEnvTargetPlaceholder,
|
|
12
9
|
global_path_default
|
|
13
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-SPXTKMOV.js";
|
|
14
11
|
import {
|
|
15
12
|
yesOption
|
|
16
13
|
} from "./chunk-JNOMOD7R.js";
|
|
@@ -113,6 +110,9 @@ function getPluginTargetForAgent(agentName) {
|
|
|
113
110
|
if (!agentName) {
|
|
114
111
|
return void 0;
|
|
115
112
|
}
|
|
113
|
+
if (agentName === KNOWN_AGENTS.CLAUDE || agentName.startsWith("claude-code") || agentName === KNOWN_AGENTS.COWORK) {
|
|
114
|
+
return "claude-code";
|
|
115
|
+
}
|
|
116
116
|
return AGENT_TO_TARGET[agentName];
|
|
117
117
|
}
|
|
118
118
|
async function fileExists(filePath) {
|
|
@@ -169,7 +169,7 @@ async function getPluginTargets(agentName) {
|
|
|
169
169
|
async function readClaudeInstalledPluginsFromRegistry() {
|
|
170
170
|
try {
|
|
171
171
|
const raw = await readFile(
|
|
172
|
-
|
|
172
|
+
getClaudeInstalledPluginsRegistryPath(),
|
|
173
173
|
"utf-8"
|
|
174
174
|
);
|
|
175
175
|
const data = JSON.parse(raw);
|
|
@@ -193,6 +193,40 @@ async function readClaudeInstalledPluginsFromRegistry() {
|
|
|
193
193
|
return [];
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
|
+
function getClaudeInstalledPluginsRegistryPath() {
|
|
197
|
+
return join(homedir(), ".claude", "plugins", "installed_plugins.json");
|
|
198
|
+
}
|
|
199
|
+
async function markStaleClaudePluginInstalls(plugins) {
|
|
200
|
+
return Promise.all(
|
|
201
|
+
plugins.map(async (plugin) => {
|
|
202
|
+
if (plugin.installPath && !await fileExists(plugin.installPath)) {
|
|
203
|
+
return { ...plugin, stale: true };
|
|
204
|
+
}
|
|
205
|
+
return plugin;
|
|
206
|
+
})
|
|
207
|
+
);
|
|
208
|
+
}
|
|
209
|
+
async function removeClaudePluginFromRegistry(pluginId) {
|
|
210
|
+
try {
|
|
211
|
+
const registryPath = getClaudeInstalledPluginsRegistryPath();
|
|
212
|
+
const raw = await readFile(registryPath, "utf-8");
|
|
213
|
+
const data = JSON.parse(raw);
|
|
214
|
+
if (!data.plugins || !(pluginId in data.plugins)) {
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
delete data.plugins[pluginId];
|
|
218
|
+
await writeFile(
|
|
219
|
+
registryPath,
|
|
220
|
+
`${JSON.stringify(data, null, 2)}
|
|
221
|
+
`,
|
|
222
|
+
"utf-8"
|
|
223
|
+
);
|
|
224
|
+
return true;
|
|
225
|
+
} catch (err) {
|
|
226
|
+
output_manager_default.debug(`Failed to remove Claude plugin registry entry: ${err}`);
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
196
230
|
async function isPluginInstalledForTarget(target) {
|
|
197
231
|
if (target === "claude-code") {
|
|
198
232
|
const status = await getClaudePluginStatus();
|
|
@@ -241,7 +275,7 @@ async function getClaudeInstalledPlugins() {
|
|
|
241
275
|
try {
|
|
242
276
|
const parsed = JSON.parse(result.stdout);
|
|
243
277
|
if (Array.isArray(parsed)) {
|
|
244
|
-
return parsed;
|
|
278
|
+
return markStaleClaudePluginInstalls(parsed);
|
|
245
279
|
}
|
|
246
280
|
} catch (err) {
|
|
247
281
|
output_manager_default.debug(`Failed to parse Claude plugin list JSON: ${err}`);
|
|
@@ -251,7 +285,9 @@ async function getClaudeInstalledPlugins() {
|
|
|
251
285
|
`Failed to run 'claude plugins list --json': ${result.stderr}`
|
|
252
286
|
);
|
|
253
287
|
}
|
|
254
|
-
return
|
|
288
|
+
return markStaleClaudePluginInstalls(
|
|
289
|
+
await readClaudeInstalledPluginsFromRegistry()
|
|
290
|
+
);
|
|
255
291
|
}
|
|
256
292
|
async function fetchLatestVercelPluginVersion() {
|
|
257
293
|
try {
|
|
@@ -374,60 +410,6 @@ function buildClaudePromptCopy(status, plan) {
|
|
|
374
410
|
confirm: "Apply the Vercel plugin changes for Claude Code?"
|
|
375
411
|
};
|
|
376
412
|
}
|
|
377
|
-
function buildClaudeActionRequiredMessage(status, plan) {
|
|
378
|
-
if (status.state === "legacy-only") {
|
|
379
|
-
return `Working with Vercel is easier with the latest Vercel Plugin for Claude Code. It will run:
|
|
380
|
-
1. claude plugins install ${CLAUDE_OFFICIAL_PLUGIN_ID}
|
|
381
|
-
2. claude plugins uninstall ${CLAUDE_LEGACY_PLUGIN_ID}
|
|
382
|
-
Would you like me to update it?`;
|
|
383
|
-
}
|
|
384
|
-
if (status.state === "both" || plan.removeLegacy) {
|
|
385
|
-
return `Working with Vercel is easier with the latest Vercel Plugin for Claude Code. It will run:
|
|
386
|
-
1. claude plugins uninstall ${CLAUDE_LEGACY_PLUGIN_ID}
|
|
387
|
-
Would you like me to update it?`;
|
|
388
|
-
}
|
|
389
|
-
if (plan.updateOfficial) {
|
|
390
|
-
return `Working with Vercel is easier with the latest Vercel Plugin for Claude Code. It will run:
|
|
391
|
-
1. claude plugins update ${CLAUDE_OFFICIAL_PLUGIN_ID}
|
|
392
|
-
Would you like me to update it?`;
|
|
393
|
-
}
|
|
394
|
-
return `Working with Vercel is easier with the Vercel Plugin for Claude Code. It will run:
|
|
395
|
-
1. claude plugins install ${CLAUDE_OFFICIAL_PLUGIN_ID}
|
|
396
|
-
Would you like me to install it?`;
|
|
397
|
-
}
|
|
398
|
-
function buildClaudeActionRequiredLabel(status, plan) {
|
|
399
|
-
if (status.state === "legacy-only" || status.state === "both" || plan.removeLegacy || plan.updateOfficial) {
|
|
400
|
-
return "Update it";
|
|
401
|
-
}
|
|
402
|
-
return "Install it";
|
|
403
|
-
}
|
|
404
|
-
function getClaudeActionRequiredCommand(status, plan) {
|
|
405
|
-
if (plan.installOfficial && status.state === "none") {
|
|
406
|
-
return `claude plugins install ${CLAUDE_OFFICIAL_PLUGIN_ID}`;
|
|
407
|
-
}
|
|
408
|
-
if (status.state === "both" && plan.removeLegacy) {
|
|
409
|
-
return `claude plugins uninstall ${CLAUDE_LEGACY_PLUGIN_ID}`;
|
|
410
|
-
}
|
|
411
|
-
if (plan.updateOfficial && status.state === "official-only") {
|
|
412
|
-
return `claude plugins update ${CLAUDE_OFFICIAL_PLUGIN_ID}`;
|
|
413
|
-
}
|
|
414
|
-
return `claude plugins install ${CLAUDE_OFFICIAL_PLUGIN_ID}`;
|
|
415
|
-
}
|
|
416
|
-
function getClaudeActionRequiredNextSteps(status, plan) {
|
|
417
|
-
const next = [
|
|
418
|
-
{
|
|
419
|
-
command: getClaudeActionRequiredCommand(status, plan),
|
|
420
|
-
when: buildClaudeActionRequiredLabel(status, plan)
|
|
421
|
-
}
|
|
422
|
-
];
|
|
423
|
-
if (status.state === "legacy-only" && plan.removeLegacy) {
|
|
424
|
-
next.push({
|
|
425
|
-
command: `claude plugins uninstall ${CLAUDE_LEGACY_PLUGIN_ID}`,
|
|
426
|
-
when: "Remove the old plugin after the update"
|
|
427
|
-
});
|
|
428
|
-
}
|
|
429
|
-
return next;
|
|
430
|
-
}
|
|
431
413
|
async function runClaudeCommand(spinnerMessage, successMessage, failureMessage, args, options) {
|
|
432
414
|
output_manager_default.spinner(spinnerMessage);
|
|
433
415
|
const result = await runCommand("claude", args);
|
|
@@ -445,7 +427,43 @@ ${result.stderr || result.stdout}`
|
|
|
445
427
|
);
|
|
446
428
|
return false;
|
|
447
429
|
}
|
|
430
|
+
async function removeStaleLegacyClaudePlugin(removeMarketplace) {
|
|
431
|
+
output_manager_default.spinner("Removing the stale legacy Vercel Claude plugin...");
|
|
432
|
+
const removedRegistryEntry = await removeClaudePluginFromRegistry(
|
|
433
|
+
CLAUDE_LEGACY_PLUGIN_ID
|
|
434
|
+
);
|
|
435
|
+
output_manager_default.stopSpinner();
|
|
436
|
+
if (!removedRegistryEntry) {
|
|
437
|
+
output_manager_default.warn(
|
|
438
|
+
"Could not remove the stale legacy Vercel Claude plugin registry entry."
|
|
439
|
+
);
|
|
440
|
+
return false;
|
|
441
|
+
}
|
|
442
|
+
output_manager_default.success("Removed the stale legacy Vercel Claude plugin");
|
|
443
|
+
if (removeMarketplace) {
|
|
444
|
+
const removedMarketplace = await runClaudeCommand(
|
|
445
|
+
"Removing the legacy Vercel marketplace...",
|
|
446
|
+
"Removed the legacy Vercel marketplace",
|
|
447
|
+
"Removed the stale legacy Vercel plugin, but could not remove the legacy marketplace.",
|
|
448
|
+
["plugins", "marketplace", "remove", "vercel"],
|
|
449
|
+
{ quietSuccess: true }
|
|
450
|
+
);
|
|
451
|
+
if (!removedMarketplace) {
|
|
452
|
+
output_manager_default.log("Cleanup command: claude plugins marketplace remove vercel");
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
return true;
|
|
456
|
+
}
|
|
448
457
|
async function runClaudeMigration(plan) {
|
|
458
|
+
let removedStaleLegacy = false;
|
|
459
|
+
if (plan.removeLegacy) {
|
|
460
|
+
const statusBeforeInstall = await getClaudePluginStatus();
|
|
461
|
+
if (statusBeforeInstall.legacy?.stale) {
|
|
462
|
+
removedStaleLegacy = await removeStaleLegacyClaudePlugin(
|
|
463
|
+
plan.removeLegacyMarketplace
|
|
464
|
+
);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
449
467
|
if (plan.installOfficial) {
|
|
450
468
|
const installed = await runClaudeCommand(
|
|
451
469
|
"Installing the official Vercel Claude plugin...",
|
|
@@ -486,7 +504,7 @@ async function runClaudeMigration(plan) {
|
|
|
486
504
|
return;
|
|
487
505
|
}
|
|
488
506
|
}
|
|
489
|
-
if (plan.removeLegacyMarketplace) {
|
|
507
|
+
if (plan.removeLegacyMarketplace && !removedStaleLegacy) {
|
|
490
508
|
const finalStatus = await getClaudePluginStatus();
|
|
491
509
|
if (!finalStatus.legacy) {
|
|
492
510
|
const removedMarketplace = await runClaudeCommand(
|
|
@@ -556,28 +574,6 @@ async function autoInstallVercelPlugin(client, options) {
|
|
|
556
574
|
confirmMessage = claudePrompt.confirm;
|
|
557
575
|
}
|
|
558
576
|
if (client.isAgent && !client.stdin.isTTY) {
|
|
559
|
-
const actionRequiredMessage = uninstalledTargets.includes("claude-code") && claudeStatus && claudePlan ? buildClaudeActionRequiredMessage(claudeStatus, claudePlan) : promptMessages.join(" ");
|
|
560
|
-
const next = uninstalledTargets.includes("claude-code") && claudeStatus && claudePlan ? getClaudeActionRequiredNextSteps(claudeStatus, claudePlan) : [
|
|
561
|
-
{
|
|
562
|
-
command: `claude plugins install ${CLAUDE_OFFICIAL_PLUGIN_ID}`,
|
|
563
|
-
when: "Install it"
|
|
564
|
-
}
|
|
565
|
-
];
|
|
566
|
-
client.stdout.write(
|
|
567
|
-
`${JSON.stringify(
|
|
568
|
-
{
|
|
569
|
-
status: "action_required",
|
|
570
|
-
reason: "plugin_install",
|
|
571
|
-
action: AGENT_ACTION.CONFIRMATION_REQUIRED,
|
|
572
|
-
message: actionRequiredMessage,
|
|
573
|
-
userActionRequired: true,
|
|
574
|
-
next
|
|
575
|
-
},
|
|
576
|
-
null,
|
|
577
|
-
2
|
|
578
|
-
)}
|
|
579
|
-
`
|
|
580
|
-
);
|
|
581
577
|
await markPromptedToday(prefs);
|
|
582
578
|
return;
|
|
583
579
|
}
|
|
@@ -24588,6 +24588,7 @@ var require_detect_services = __commonJS({
|
|
|
24588
24588
|
hostRewrites: [],
|
|
24589
24589
|
rewrites: [],
|
|
24590
24590
|
defaults: [],
|
|
24591
|
+
fallbacks: [],
|
|
24591
24592
|
crons: [],
|
|
24592
24593
|
workers: []
|
|
24593
24594
|
};
|
|
@@ -24737,6 +24738,7 @@ var require_detect_services = __commonJS({
|
|
|
24737
24738
|
const hostRewrites = [];
|
|
24738
24739
|
const rewrites = [];
|
|
24739
24740
|
const defaults = [];
|
|
24741
|
+
const fallbacks = [];
|
|
24740
24742
|
const crons = [];
|
|
24741
24743
|
const workers = [];
|
|
24742
24744
|
const sortedWebServices = services.filter(
|
|
@@ -24773,13 +24775,12 @@ var require_detect_services = __commonJS({
|
|
|
24773
24775
|
}
|
|
24774
24776
|
if ((0, import_utils4.isStaticBuild)(service)) {
|
|
24775
24777
|
if (routePrefix === "/") {
|
|
24776
|
-
|
|
24777
|
-
defaults.push({
|
|
24778
|
+
fallbacks.push({
|
|
24778
24779
|
src: (0, import_routing_utils2.scopeRouteSourceToOwnership)("/(.*)", ownershipGuard),
|
|
24779
24780
|
dest: "/index.html"
|
|
24780
24781
|
});
|
|
24781
24782
|
} else {
|
|
24782
|
-
|
|
24783
|
+
fallbacks.push({
|
|
24783
24784
|
src: (0, import_routing_utils2.scopeRouteSourceToOwnership)(
|
|
24784
24785
|
`^/${normalizedPrefix}(?:/.*)?$`,
|
|
24785
24786
|
ownershipGuard
|
|
@@ -24817,7 +24818,7 @@ var require_detect_services = __commonJS({
|
|
|
24817
24818
|
check: true
|
|
24818
24819
|
});
|
|
24819
24820
|
}
|
|
24820
|
-
return { hostRewrites, rewrites, defaults, crons, workers };
|
|
24821
|
+
return { hostRewrites, rewrites, defaults, fallbacks, crons, workers };
|
|
24821
24822
|
}
|
|
24822
24823
|
function escapeRegex(str) {
|
|
24823
24824
|
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
@@ -25093,6 +25094,7 @@ var require_get_services_builders = __commonJS({
|
|
|
25093
25094
|
warnings: [],
|
|
25094
25095
|
hostRewriteRoutes: null,
|
|
25095
25096
|
defaultRoutes: null,
|
|
25097
|
+
fallbackRoutes: null,
|
|
25096
25098
|
redirectRoutes: null,
|
|
25097
25099
|
rewriteRoutes: null,
|
|
25098
25100
|
errorRoutes: null
|
|
@@ -25114,6 +25116,7 @@ var require_get_services_builders = __commonJS({
|
|
|
25114
25116
|
warnings: warningResponses,
|
|
25115
25117
|
hostRewriteRoutes: null,
|
|
25116
25118
|
defaultRoutes: null,
|
|
25119
|
+
fallbackRoutes: null,
|
|
25117
25120
|
redirectRoutes: null,
|
|
25118
25121
|
rewriteRoutes: null,
|
|
25119
25122
|
errorRoutes: null
|
|
@@ -25131,6 +25134,7 @@ var require_get_services_builders = __commonJS({
|
|
|
25131
25134
|
warnings: warningResponses,
|
|
25132
25135
|
hostRewriteRoutes: null,
|
|
25133
25136
|
defaultRoutes: null,
|
|
25137
|
+
fallbackRoutes: null,
|
|
25134
25138
|
redirectRoutes: null,
|
|
25135
25139
|
rewriteRoutes: null,
|
|
25136
25140
|
errorRoutes: null
|
|
@@ -25143,6 +25147,7 @@ var require_get_services_builders = __commonJS({
|
|
|
25143
25147
|
warnings: warningResponses,
|
|
25144
25148
|
hostRewriteRoutes: result.routes.hostRewrites.length > 0 ? result.routes.hostRewrites : null,
|
|
25145
25149
|
defaultRoutes: result.routes.defaults.length > 0 ? result.routes.defaults : null,
|
|
25150
|
+
fallbackRoutes: result.routes.fallbacks.length > 0 ? result.routes.fallbacks : null,
|
|
25146
25151
|
redirectRoutes: [],
|
|
25147
25152
|
rewriteRoutes: result.routes.rewrites.length > 0 || result.routes.workers.length > 0 || result.routes.crons.length > 0 ? [
|
|
25148
25153
|
...result.routes.rewrites,
|
|
@@ -6,12 +6,12 @@ const __filename = __fileURLToPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __dirname_(__filename);
|
|
7
7
|
import {
|
|
8
8
|
setupAndLink
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-BAAZFRLH.js";
|
|
10
10
|
import {
|
|
11
11
|
getLinkedProject,
|
|
12
12
|
param,
|
|
13
13
|
resolveProjectCwd
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-SPXTKMOV.js";
|
|
15
15
|
import {
|
|
16
16
|
buildCommandWithYes,
|
|
17
17
|
outputActionRequired
|
|
@@ -12,10 +12,10 @@ import {
|
|
|
12
12
|
} from "./chunk-JCLLQ23G.js";
|
|
13
13
|
import {
|
|
14
14
|
getLocalPathConfig
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-KFFW6MSL.js";
|
|
16
16
|
import {
|
|
17
17
|
autoInstallVercelPlugin
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-LDFOVKJS.js";
|
|
19
19
|
import {
|
|
20
20
|
DEFAULT_VERCEL_CONFIG_FILENAME,
|
|
21
21
|
VERCEL_CONFIG_EXTENSIONS,
|
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
useKeypress,
|
|
42
42
|
usePrefix,
|
|
43
43
|
useState
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-SPXTKMOV.js";
|
|
45
45
|
import {
|
|
46
46
|
require_load_json_file,
|
|
47
47
|
require_write_json_file
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
} from "./chunk-HTOH3MSD.js";
|
|
10
10
|
import {
|
|
11
11
|
getScope
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-EYQEF55O.js";
|
|
13
13
|
import {
|
|
14
14
|
AGENT_REASON
|
|
15
15
|
} from "./chunk-E3NE4SKN.js";
|
|
16
16
|
import {
|
|
17
17
|
getLinkedProject,
|
|
18
18
|
getProjectByNameOrId
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-SPXTKMOV.js";
|
|
20
20
|
import {
|
|
21
21
|
buildCommandWithGlobalFlags,
|
|
22
22
|
outputAgentError
|