vercel 59.20.0 → 59.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/dist/chunks/{add-CC6U36WJ.js → add-JVSHQKWC.js} +1 -1
  2. package/dist/chunks/{add-PSEVULRF.js → add-UKFIETLE.js} +1 -1
  3. package/dist/chunks/{add-UO2IFTKH.js → add-Z3CJT63N.js} +1 -1
  4. package/dist/chunks/{build-G54Y245T.js → build-SMQYQX23.js} +1 -1
  5. package/dist/chunks/{chunk-NYEPIN3U.js → chunk-2HEC5TDU.js} +1 -1
  6. package/dist/chunks/{chunk-NUVOJI4D.js → chunk-2SLHYWMC.js} +1 -1
  7. package/dist/chunks/{chunk-6V3JGAVJ.js → chunk-32QBGZ2Z.js} +1 -1
  8. package/dist/chunks/{chunk-GWPIATTW.js → chunk-3GUBYJN6.js} +1 -1
  9. package/dist/chunks/{chunk-IERVS47L.js → chunk-4WSAOLBH.js} +1 -1
  10. package/dist/chunks/{chunk-YHN4IZVJ.js → chunk-4YVA7TSY.js} +2 -2
  11. package/dist/chunks/{chunk-WDO3QBQI.js → chunk-5YA32S6K.js} +1 -1
  12. package/dist/chunks/{chunk-6ARDCI6T.js → chunk-64NJHVA3.js} +4 -4
  13. package/dist/chunks/{chunk-X446JLEO.js → chunk-66RYR2GI.js} +1 -1
  14. package/dist/chunks/{chunk-DLKR2CG6.js → chunk-6BZCSVH6.js} +1 -1
  15. package/dist/chunks/{chunk-XNQR2W4A.js → chunk-6C7LA5RA.js} +1 -1
  16. package/dist/chunks/{chunk-U6TAKLJ6.js → chunk-6LE3FU2P.js} +1 -1
  17. package/dist/chunks/{chunk-IH2HZFLM.js → chunk-6LE44WCK.js} +1 -1
  18. package/dist/chunks/{chunk-RVJ2E3BM.js → chunk-6OI6SRHZ.js} +1 -1
  19. package/dist/chunks/{chunk-IESZKIFF.js → chunk-6SA6SOHU.js} +1 -1
  20. package/dist/chunks/{chunk-4Q2FGJAG.js → chunk-73G2MHUX.js} +1 -1
  21. package/dist/chunks/{chunk-PNRWNSM2.js → chunk-7B5NNJ2P.js} +1 -1
  22. package/dist/chunks/{chunk-W2XUH2WW.js → chunk-A5VLP25I.js} +1 -1
  23. package/dist/chunks/chunk-ABSRS5KC.js +9 -0
  24. package/dist/chunks/chunk-AZ6NRDHG.js +7 -0
  25. package/dist/chunks/{chunk-WR5OOWD6.js → chunk-BX5KDMLT.js} +1 -1
  26. package/dist/chunks/{chunk-NPMNS7IG.js → chunk-DL665Q3Z.js} +1 -1
  27. package/dist/chunks/{chunk-EGG7SPNM.js → chunk-DQ2KI6FO.js} +1 -1
  28. package/dist/chunks/{chunk-QFFD4LBE.js → chunk-E4X2DH4K.js} +1 -1
  29. package/dist/chunks/{chunk-HOD3FQAX.js → chunk-EHTHHCNG.js} +2 -0
  30. package/dist/chunks/{chunk-RTRCTYW6.js → chunk-EWWFNMPZ.js} +4 -3
  31. package/dist/chunks/{chunk-ZVFZIWBV.js → chunk-FA6O7FPC.js} +1 -1
  32. package/dist/chunks/chunk-FB5TMOLQ.js +7 -0
  33. package/dist/chunks/{chunk-3XIEKCNF.js → chunk-FZH7RIRX.js} +4 -4
  34. package/dist/chunks/{chunk-QPCDEH6H.js → chunk-GGNZLN4R.js} +1 -1
  35. package/dist/chunks/{chunk-E4CRGS56.js → chunk-GHULCYAR.js} +1 -1
  36. package/dist/chunks/{chunk-JDR2WXM4.js → chunk-GL2AUBAI.js} +1 -1
  37. package/dist/chunks/{chunk-YWFECCBH.js → chunk-GR3DLKYP.js} +1 -1
  38. package/dist/chunks/{chunk-HBF4YJR2.js → chunk-GRDPI246.js} +1 -1
  39. package/dist/chunks/{chunk-Q2Z6EXCT.js → chunk-GTJ2OLYI.js} +1 -1
  40. package/dist/chunks/{chunk-GUSSSCV7.js → chunk-HOYHUMBD.js} +1 -1
  41. package/dist/chunks/{chunk-7O3KGTQ3.js → chunk-HWWHR7H3.js} +1 -1
  42. package/dist/chunks/{chunk-5ZIZD5ZG.js → chunk-J5X5YRBH.js} +1 -1
  43. package/dist/chunks/{chunk-QQNFAXDX.js → chunk-JGPECEYY.js} +1 -1
  44. package/dist/chunks/{chunk-OXH3RM6U.js → chunk-KBKN7EI7.js} +1 -1
  45. package/dist/chunks/{chunk-JDQP267R.js → chunk-KUVMCIR4.js} +1 -1
  46. package/dist/chunks/{chunk-BQU3N4EK.js → chunk-KXYR43H5.js} +1 -1
  47. package/dist/chunks/{chunk-GI6G3FJJ.js → chunk-LKI6FRNM.js} +1 -1
  48. package/dist/chunks/{chunk-GGZODU6S.js → chunk-LQBC5QPO.js} +1 -1
  49. package/dist/chunks/{chunk-ONOSMF2T.js → chunk-M6A7UH4U.js} +1 -1
  50. package/dist/chunks/{chunk-DBBMJTPG.js → chunk-NYOQMU3P.js} +3 -3
  51. package/dist/chunks/{chunk-CFY5RS7I.js → chunk-NZKBBY2A.js} +1 -1
  52. package/dist/chunks/{chunk-UXTHEQVJ.js → chunk-OI263FBO.js} +1 -1
  53. package/dist/chunks/chunk-PS645CWM.js +32 -0
  54. package/dist/chunks/{chunk-J2ONOQCQ.js → chunk-QI3JSWD6.js} +1 -1
  55. package/dist/chunks/{chunk-7NYQ7CTP.js → chunk-R3B67TKQ.js} +1 -1
  56. package/dist/chunks/chunk-RRQTVE2P.js +31 -0
  57. package/dist/chunks/{chunk-74CMQMYR.js → chunk-SFTXBTMI.js} +1 -1
  58. package/dist/chunks/{chunk-PIKD5KTH.js → chunk-SOQ5DE44.js} +1 -1
  59. package/dist/chunks/{chunk-ZRS5X7M2.js → chunk-T4AZ3U7O.js} +1 -1
  60. package/dist/chunks/{chunk-4P66SQRS.js → chunk-TBBU37TD.js} +1 -1
  61. package/dist/chunks/{chunk-Q3LIZ6SZ.js → chunk-TJKM3345.js} +1 -1
  62. package/dist/chunks/{chunk-MNACJRE7.js → chunk-TOGR3HUB.js} +1 -1
  63. package/dist/chunks/{chunk-2Q47GHFX.js → chunk-U6N2RNDI.js} +1 -1
  64. package/dist/chunks/{chunk-KEFIUUAJ.js → chunk-UGXNE4YE.js} +1 -1
  65. package/dist/chunks/{chunk-TM3W2CAF.js → chunk-UUM2N6IG.js} +2 -2
  66. package/dist/chunks/{chunk-LKVMIJCF.js → chunk-UWZ5VIIQ.js} +1 -1
  67. package/dist/chunks/{chunk-LZTGSYL3.js → chunk-UXCTETFN.js} +1 -1
  68. package/dist/chunks/{chunk-GTK7TBLW.js → chunk-V5DCSHYJ.js} +1 -1
  69. package/dist/chunks/{chunk-XV6SDZIO.js → chunk-V6IKQCOT.js} +1 -1
  70. package/dist/chunks/{chunk-NNP5NITU.js → chunk-V6MR45PD.js} +1 -1
  71. package/dist/chunks/{chunk-BW24TEUN.js → chunk-VIR3KDCQ.js} +1 -1
  72. package/dist/chunks/{chunk-QYPQGOSO.js → chunk-WDVSYGZS.js} +1 -1
  73. package/dist/chunks/{chunk-CWTXZPUV.js → chunk-WHYH7DVI.js} +2 -1
  74. package/dist/chunks/{chunk-TKBORMUF.js → chunk-WKZ6JSGZ.js} +1 -1
  75. package/dist/chunks/{chunk-DWSG55I2.js → chunk-X4X5RB2V.js} +1 -1
  76. package/dist/chunks/{chunk-EHEMFUGQ.js → chunk-YGJO25LP.js} +1 -1
  77. package/dist/chunks/{chunk-4VGOAPFY.js → chunk-YMM3VY3J.js} +1 -1
  78. package/dist/chunks/{chunk-TCS3FDID.js → chunk-Z4VR6CQ2.js} +1 -1
  79. package/dist/chunks/{chunk-CTO5XEIQ.js → chunk-Z6LKARXP.js} +1 -1
  80. package/dist/chunks/chunk-Z7PBDQNR.js +65 -0
  81. package/dist/chunks/{chunk-OWEH7BYO.js → chunk-ZDORSGCG.js} +1 -1
  82. package/dist/chunks/{chunk-XKNCIFFB.js → chunk-ZKWM4JBE.js} +1 -1
  83. package/dist/chunks/{clear-TJQM33RO.js → clear-6IXTTZO6.js} +1 -1
  84. package/dist/chunks/{compile-vercel-config-UQGJ4WJF.js → compile-vercel-config-ZFMPTU47.js} +1 -1
  85. package/dist/chunks/config-HLVJQKP7.js +7 -0
  86. package/dist/chunks/{config-SRY5IPK6.js → config-XXHMPW46.js} +1 -1
  87. package/dist/chunks/{connect-git-provider-LSTDI4TC.js → connect-git-provider-P3SGOW6X.js} +1 -1
  88. package/dist/chunks/{constants-NCE2LWSS.js → constants-G4UYVLOF.js} +1 -1
  89. package/dist/chunks/{delete-V45ALBXM.js → delete-52QKO73X.js} +1 -1
  90. package/dist/chunks/{delete-TSYNQ23W.js → delete-6VOUZDIR.js} +1 -1
  91. package/dist/chunks/{detect-projects-64MZJZ6M.js → detect-projects-WLAFT5HC.js} +1 -1
  92. package/dist/chunks/detect-services-YYT3LUUX.js +7 -0
  93. package/dist/chunks/{disable-WD4S6HSS.js → disable-7FGR2S56.js} +1 -1
  94. package/dist/chunks/{discard-KFBXLAVB.js → discard-XKPTY3DC.js} +1 -1
  95. package/dist/chunks/{edit-TJ4JLJRE.js → edit-A3HJCNPW.js} +1 -1
  96. package/dist/chunks/{edit-AWY54Q7X.js → edit-A7WGTO6K.js} +1 -1
  97. package/dist/chunks/{enable-ANIHAF35.js → enable-NGKLGHJ2.js} +1 -1
  98. package/dist/chunks/{exec-ZLT5KH2Z.js → exec-YH5WUJ4C.js} +1 -1
  99. package/dist/chunks/{export-RPFCJCOY.js → export-QCBAQNTT.js} +1 -1
  100. package/dist/chunks/{future-LU77KNDL.js → future-BB7OE645.js} +1 -1
  101. package/dist/chunks/{generate-cert-for-deploy-NVQ43MLT.js → generate-cert-for-deploy-U7JF3HF3.js} +1 -1
  102. package/dist/chunks/{image-WWX3Q3GG.js → image-DU7GJZR2.js} +1 -1
  103. package/dist/chunks/import-builders-IFZM44NL.js +7 -0
  104. package/dist/chunks/{inspect-WIXPYMMS.js → inspect-CPOFKE4X.js} +1 -1
  105. package/dist/chunks/{inspect-YG2GUQH2.js → inspect-EMWJLBAW.js} +1 -1
  106. package/dist/chunks/{inspect-7LLKIX3Q.js → inspect-IVJOEZC4.js} +1 -1
  107. package/dist/chunks/{inspect-QVPDZHUE.js → inspect-PHUMEO4A.js} +1 -1
  108. package/dist/chunks/{inspect-67J25RHR.js → inspect-Q7OVSWFO.js} +1 -1
  109. package/dist/chunks/{list-HKOHGU6B.js → list-G4JM2TYX.js} +1 -1
  110. package/dist/chunks/{list-UGNPHXFH.js → list-KYZNCXBM.js} +1 -1
  111. package/dist/chunks/{list-LY73G263.js → list-ZE2VPPXI.js} +1 -1
  112. package/dist/chunks/{login-IMHVC657.js → login-AVVJFLSC.js} +1 -1
  113. package/dist/chunks/{login-YQ7QPK4A.js → login-RMAISH4F.js} +1 -1
  114. package/dist/chunks/{logs-4GPA2QJ2.js → logs-3LTU2N25.js} +1 -1
  115. package/dist/chunks/{ls-GXGGGB3C.js → ls-4M2OBNG6.js} +1 -1
  116. package/dist/chunks/{ls-PSZDUCI4.js → ls-7O63WIES.js} +1 -1
  117. package/dist/chunks/{ls-XZYIM72L.js → ls-AKGRKWHM.js} +1 -1
  118. package/dist/chunks/{ls-IDH4SZXE.js → ls-DU5QTKKA.js} +1 -1
  119. package/dist/chunks/{ls-JAD3EACY.js → ls-HWUYP3XY.js} +1 -1
  120. package/dist/chunks/{ls-MO2Y6TNW.js → ls-P6LKMT33.js} +1 -1
  121. package/dist/chunks/{ls-XZ25NS63.js → ls-Y4QR3I6O.js} +1 -1
  122. package/dist/chunks/{mutate-FKH7JHLN.js → mutate-KOAALPIL.js} +1 -1
  123. package/dist/chunks/{notifications-JI6HIQYR.js → notifications-3RDFNJSD.js} +1 -1
  124. package/dist/chunks/{open-WVYJ6DJS.js → open-VD4F6MAO.js} +1 -1
  125. package/dist/chunks/{openapi-YEDROCHV.js → openapi-DKMCRF2V.js} +1 -1
  126. package/dist/chunks/{permissions-TALTFA2U.js → permissions-AE5JO26V.js} +1 -1
  127. package/dist/chunks/{prompt-missing-credentials-YVS4S7X2.js → prompt-missing-credentials-QY4MZDT6.js} +1 -1
  128. package/dist/chunks/{publish-ZE5GEK7Q.js → publish-YXVJXBQT.js} +1 -1
  129. package/dist/chunks/pull-QLC2CV4J.js +7 -0
  130. package/dist/chunks/{purchase-domain-if-available-6HLN6HG2.js → purchase-domain-if-available-74ZYVVBE.js} +1 -1
  131. package/dist/chunks/{push-ETAA3BQY.js → push-TMPPU5NU.js} +1 -1
  132. package/dist/chunks/{query-2FV3SCH5.js → query-PHAGR43V.js} +1 -1
  133. package/dist/chunks/{reauthenticate-APC7ZYFC.js → reauthenticate-O6C2AW3J.js} +1 -1
  134. package/dist/chunks/{reorder-GHLKIK3C.js → reorder-OAJ3NXQQ.js} +1 -1
  135. package/dist/chunks/{reply-2PEJJCP7.js → reply-Q3JFRFA3.js} +1 -1
  136. package/dist/chunks/{resolve-APTMIYGJ.js → resolve-XXJVOXNE.js} +1 -1
  137. package/dist/chunks/{restore-N6O2H27S.js → restore-MO4B2EQV.js} +1 -1
  138. package/dist/chunks/{rm-CWEDAZXF.js → rm-63LFH6NA.js} +1 -1
  139. package/dist/chunks/{rm-Y3PIBNO3.js → rm-F2XD2XKB.js} +1 -1
  140. package/dist/chunks/{rm-QJDB2QO6.js → rm-GMG2DZOV.js} +1 -1
  141. package/dist/chunks/{rm-ZWCGOTK3.js → rm-P6KA5RSP.js} +1 -1
  142. package/dist/chunks/{rm-ZUOJPP33.js → rm-SZ4HWA4R.js} +1 -1
  143. package/dist/chunks/{routes-ZD7XUKLY.js → routes-IPGKJ2E4.js} +1 -1
  144. package/dist/chunks/{rule-inspect-AHQRHKO3.js → rule-inspect-JKAXOBII.js} +1 -1
  145. package/dist/chunks/{rules-LFVEAZJ7.js → rules-6TZ6GSKT.js} +1 -1
  146. package/dist/chunks/{schema-ET4DYRVX.js → schema-5CZLK6NI.js} +1 -1
  147. package/dist/chunks/{schema-OKQUOZEH.js → schema-S2ZAREKF.js} +1 -1
  148. package/dist/chunks/{select-org-5OUQKTNI.js → select-org-F2A5JJFH.js} +1 -1
  149. package/dist/chunks/{set-OQCFBVJB.js → set-PIKLGKT6.js} +1 -1
  150. package/dist/chunks/setup-and-link-O5QSQ5K2.js +7 -0
  151. package/dist/chunks/{tags-23ZFVGUC.js → tags-C3HWJLJ4.js} +1 -1
  152. package/dist/chunks/{types-BTHJ46LC.js → types-H3B56MH6.js} +1 -1
  153. package/dist/chunks/{update-GUA544N4.js → update-5HE4X45O.js} +1 -1
  154. package/dist/chunks/{utils-BG3TNJBX.js → utils-5BFO5HC4.js} +1 -1
  155. package/dist/commands/build/index.js +1 -1
  156. package/dist/commands/deploy/index.js +7 -7
  157. package/dist/commands/dev/index.js +20 -19
  158. package/dist/commands/env/index.js +1 -1
  159. package/dist/commands/link/index.js +2 -2
  160. package/dist/commands/list/index.js +1 -1
  161. package/dist/commands-bulk.js +698 -699
  162. package/dist/help.js +1 -1
  163. package/dist/index.js +3 -3
  164. package/dist/version.mjs +1 -1
  165. package/package.json +25 -24
  166. package/dist/chunks/chunk-DB2P55YY.js +0 -9
  167. package/dist/chunks/chunk-JEIMW3CO.js +0 -7
  168. package/dist/chunks/chunk-K2RAW5DI.js +0 -10
  169. package/dist/chunks/chunk-LASMHNUP.js +0 -62
  170. package/dist/chunks/chunk-XQWBEAKZ.js +0 -9
  171. package/dist/chunks/chunk-XZYKYDQO.js +0 -7
  172. package/dist/chunks/config-XEI4UIQD.js +0 -7
  173. package/dist/chunks/detect-services-3DFPW53F.js +0 -7
  174. package/dist/chunks/import-builders-FUR24WH3.js +0 -7
  175. package/dist/chunks/pull-33THLIV4.js +0 -7
  176. package/dist/chunks/setup-and-link-YCM7WRCA.js +0 -7
@@ -1,9 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __dirname_ } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- const __filename = __fileURLToPath(import.meta.url);
6
- const __dirname = __dirname_(__filename);
7
- import{output_manager_default}from"./chunk-RTRCTYW6.js";import{readFile,writeFile}from"node:fs/promises";import{access}from"node:fs/promises";import{dirname,join,resolve}from"node:path";import{homedir}from"node:os";import{spawn}from"node:child_process";import{KNOWN_AGENTS}from"@vercel/detect-agent";import{z}from"zod";var PREFS_FILE="agent-preferences.json",CLAUDE_LEGACY_PLUGIN_ID="vercel-plugin@vercel",CLAUDE_OFFICIAL_PLUGIN_ID="vercel@claude-plugins-official",VERCEL_PLUGIN_VERSION_URL="https://raw.githubusercontent.com/vercel/vercel-plugin/main/.claude-plugin/plugin.json",AGENT_TO_TARGET={[KNOWN_AGENTS.CLAUDE]:"claude-code",[KNOWN_AGENTS.COWORK]:"claude-code"};function getPluginTargetForAgent(agentName){if(agentName)return agentName===KNOWN_AGENTS.CLAUDE||agentName.startsWith("claude-code")||agentName===KNOWN_AGENTS.COWORK?"claude-code":AGENT_TO_TARGET[agentName]}var promptedAtSchema=z.codec(z.union([z.iso.date(),z.iso.datetime()]),z.date(),{decode:value=>new Date(value),encode:value=>value.toISOString()}),agentPreferencesSchema=z.object({pluginDeclined:z.boolean().optional(),pluginAutoUpdate:z.boolean().optional(),lastPromptedAt:promptedAtSchema.optional(),lastPluginAutoUpdateAttemptedAt:promptedAtSchema.optional(),lastPluginAutoUpdateAttemptedKey:z.string().optional()});async function fileExists(filePath){try{return await access(filePath),!0}catch{return!1}}async function readPrefs(client){return await client.maybeReadConfig(PREFS_FILE,agentPreferencesSchema)??{}}async function writePrefs(client,prefs){try{await client.writeConfig(PREFS_FILE,agentPreferencesSchema,prefs)}catch{}}function encodeClaudeProjectDir(projectPath){return projectPath.replace(/[^A-Za-z0-9]/g,"-")}async function projectHasUsedClaudeCode(cwd){let home=homedir(),projectsDir=join(home,".claude","projects"),dir=resolve(cwd);for(;dir!==home;){if(await fileExists(join(projectsDir,encodeClaudeProjectDir(dir))))return!0;let parent=dirname(dir);if(parent===dir)break;dir=parent}return!1}async function getPluginTargets(agentName,cwd){let targetForAgent=getPluginTargetForAgent(agentName);return targetForAgent?[targetForAgent]:agentName?[]:cwd&&await projectHasUsedClaudeCode(cwd)?["claude-code"]:[]}async function readClaudeInstalledPluginsFromRegistry(){try{let raw=await readFile(getClaudeInstalledPluginsRegistryPath(),"utf-8"),plugins=JSON.parse(raw)?.plugins??{},entries=[];for(let[id,installs]of Object.entries(plugins))if(Array.isArray(installs))for(let install of installs)!install||typeof install!="object"||entries.push({id,...install,enabled:!0});return entries}catch{return[]}}function getClaudeInstalledPluginsRegistryPath(){return join(homedir(),".claude","plugins","installed_plugins.json")}async function markStaleClaudePluginInstalls(plugins){return Promise.all(plugins.map(async plugin=>plugin.installPath&&!await fileExists(plugin.installPath)?{...plugin,stale:!0}:plugin))}async function removeClaudePluginFromRegistry(pluginId){try{let registryPath=getClaudeInstalledPluginsRegistryPath(),raw=await readFile(registryPath,"utf-8"),data=JSON.parse(raw);return!data.plugins||!(pluginId in data.plugins)?!1:(delete data.plugins[pluginId],await writeFile(registryPath,`${JSON.stringify(data,null,2)}
8
- `,"utf-8"),!0)}catch(err){return output_manager_default.debug(`Failed to remove Claude plugin registry entry: ${err}`),!1}}async function isPluginInstalledForTarget(target){return target==="claude-code"?(await getClaudePluginStatus()).state==="official-only":!1}async function confirm(client,message){return client.nonInteractive||!client.stdin.isTTY?!1:client.input.confirm(message,!0)}function isSameDay(left,right){return left.getFullYear()===right.getFullYear()&&left.getMonth()===right.getMonth()&&left.getDate()===right.getDate()}function wasPromptedToday(prefs){return prefs.lastPromptedAt?isSameDay(prefs.lastPromptedAt,new Date):!1}function wasPluginAutoUpdateAttemptedToday(prefs,attemptKey){return prefs.lastPluginAutoUpdateAttemptedKey===attemptKey&&!!prefs.lastPluginAutoUpdateAttemptedAt&&isSameDay(prefs.lastPluginAutoUpdateAttemptedAt,new Date)}async function markPromptedToday(client,prefs){prefs.lastPromptedAt=new Date,await writePrefs(client,prefs)}function markPluginAutoUpdateAttempted(prefs,attemptKey){attemptKey&&(prefs.lastPluginAutoUpdateAttemptedAt=new Date,prefs.lastPluginAutoUpdateAttemptedKey=attemptKey)}async function runCommand(command,args){return await new Promise(resolve2=>{let child=spawn(command,args,{stdio:"pipe"}),stdout="",stderr="";child.stdout.on("data",chunk=>{stdout+=chunk.toString()}),child.stderr.on("data",chunk=>{stderr+=chunk.toString()}),child.on("close",code=>{resolve2({exitCode:code??1,stdout,stderr})}),child.on("error",err=>{resolve2({exitCode:1,stdout,stderr:`${stderr}${String(err)}`})})})}async function getClaudeInstalledPlugins(){let result=await runCommand("claude",["plugins","list","--json"]);if(result.exitCode===0)try{let parsed=JSON.parse(result.stdout);if(Array.isArray(parsed))return markStaleClaudePluginInstalls(parsed)}catch(err){output_manager_default.debug(`Failed to parse Claude plugin list JSON: ${err}`)}else result.stderr.trim().length>0&&output_manager_default.debug(`Failed to run 'claude plugins list --json': ${result.stderr}`);return markStaleClaudePluginInstalls(await readClaudeInstalledPluginsFromRegistry())}async function fetchLatestVercelPluginVersion(){try{let response=await fetch(VERCEL_PLUGIN_VERSION_URL);if(!response.ok){output_manager_default.debug(`Failed to fetch latest Vercel plugin version: ${response.status}`);return}let manifest=await response.json();return typeof manifest.version=="string"?manifest.version:void 0}catch(err){output_manager_default.debug(`Failed to fetch latest Vercel plugin version: ${err}`);return}}function comparePluginVersions(a,b){if(!a&&!b)return 0;if(!a)return-1;if(!b)return 1;let parse=value=>value.split(".").map(part=>Number.parseInt(part,10)||0),left=parse(a),right=parse(b),maxLength=Math.max(left.length,right.length);for(let i=0;i<maxLength;i++){let l=left[i]??0,r=right[i]??0;if(l>r)return 1;if(l<r)return-1}return 0}function buildClaudePluginStatus(installedPlugins,latestVersion){let legacy=installedPlugins.find(plugin=>plugin.id===CLAUDE_LEGACY_PLUGIN_ID),official=installedPlugins.find(plugin=>plugin.id===CLAUDE_OFFICIAL_PLUGIN_ID),state="none";return legacy&&official?state="both":legacy?state="legacy-only":official&&(state="official-only"),{state,legacy,official,latestVersion}}function buildClaudePluginMigrationPlan(status){let plan={installOfficial:!1,updateOfficial:!1,removeLegacy:!1,removeLegacyMarketplace:!1};switch(status.state){case"none":plan.installOfficial=!0;break;case"legacy-only":plan.installOfficial=!0,plan.removeLegacy=!0,plan.removeLegacyMarketplace=!0;break;case"both":plan.removeLegacy=!0,plan.removeLegacyMarketplace=!0;break;case"official-only":break}return status.official?.version&&status.latestVersion&&comparePluginVersions(status.official.version,status.latestVersion)<0&&(plan.updateOfficial=!0),plan}function hasClaudeMigrationActions(plan){return plan.installOfficial||plan.updateOfficial||plan.removeLegacy||plan.removeLegacyMarketplace}function getClaudeAutoUpdateAttemptKey(status,plan){return[status.state,status.legacy?.version??"none",status.official?.version??"none",status.latestVersion??"unknown",plan.installOfficial?"install":"",plan.updateOfficial?"update":"",plan.removeLegacy?"remove-legacy":"",plan.removeLegacyMarketplace?"remove-marketplace":""].join(":")}function buildClaudePromptCopy(status,plan){if(plan.installOfficial&&status.state==="none")return{message:"Vercel Plugin for Claude Code is not installed.",confirm:"Would you like to install it now?"};if(plan.installOfficial&&status.state==="legacy-only")return{message:"Update available for Vercel Plugin for Claude Code (legacy -> official).",confirm:"Would you like to update now?"};if(status.state==="both"&&plan.removeLegacy)return{message:"Vercel Plugin for Claude Code has a legacy install to clean up.",confirm:"Would you like to update now?"};if(plan.updateOfficial){let fromVersion=status.official?.version,toVersion=status.latestVersion;return{message:`Update available for Vercel Plugin for Claude Code${fromVersion&&toVersion?` (v${fromVersion} -> v${toVersion})`:""}.`,confirm:"Would you like to update now?"}}return{message:"The Vercel plugin needs attention in Claude Code before your agent harness is fully up to date.",confirm:"Apply the Vercel plugin changes for Claude Code?"}}async function runClaudeCommand(spinnerMessage,successMessage,failureMessage,args,options){output_manager_default.spinner(spinnerMessage);let result=await runCommand("claude",args);return output_manager_default.stopSpinner(),result.exitCode===0?(options?.quietSuccess||output_manager_default.success(successMessage),!0):(output_manager_default.warn(failureMessage),output_manager_default.debug(`Claude command failed: claude ${args.join(" ")}
9
- ${result.stderr||result.stdout}`),!1)}async function removeStaleLegacyClaudePlugin(removeMarketplace){output_manager_default.spinner("Removing the stale legacy Vercel Claude plugin...");let removedRegistryEntry=await removeClaudePluginFromRegistry(CLAUDE_LEGACY_PLUGIN_ID);return output_manager_default.stopSpinner(),removedRegistryEntry?(output_manager_default.success("Removed the stale legacy Vercel Claude plugin"),removeMarketplace&&(await runClaudeCommand("Removing the legacy Vercel marketplace...","Removed the legacy Vercel marketplace","Removed the stale legacy Vercel plugin, but could not remove the legacy marketplace.",["plugins","marketplace","remove","vercel"],{quietSuccess:!0})||output_manager_default.log("Cleanup command: claude plugins marketplace remove vercel")),!0):(output_manager_default.warn("Could not remove the stale legacy Vercel Claude plugin registry entry."),!1)}async function runClaudeMigration(plan){let removedStaleLegacy=!1;if(plan.removeLegacy&&(await getClaudePluginStatus()).legacy?.stale&&(removedStaleLegacy=await removeStaleLegacyClaudePlugin(plan.removeLegacyMarketplace)),plan.installOfficial){if(!await runClaudeCommand("Installing the official Vercel Claude plugin...","Updated the Vercel plugin","Failed to install the official Vercel Claude plugin.",["plugins","install",CLAUDE_OFFICIAL_PLUGIN_ID]))return}else plan.updateOfficial&&await runClaudeCommand("Updating the official Vercel Claude plugin...","Updated the Vercel plugin","Failed to update the official Vercel Claude plugin.",["plugins","update",CLAUDE_OFFICIAL_PLUGIN_ID]);let statusAfterInstall=await getClaudePluginStatus();if(!statusAfterInstall.official){output_manager_default.warn("Skipping Claude cleanup because the official Vercel plugin is not installed.");return}if(plan.removeLegacy&&statusAfterInstall.legacy&&!await runClaudeCommand("Removing the legacy Vercel Claude plugin...","Removed the legacy Vercel Claude plugin","Installed the official Vercel Claude plugin, but could not remove the legacy install.",["plugins","uninstall",CLAUDE_LEGACY_PLUGIN_ID],{quietSuccess:!0})){output_manager_default.log(`Cleanup command: claude plugins uninstall ${CLAUDE_LEGACY_PLUGIN_ID}`);return}plan.removeLegacyMarketplace&&!removedStaleLegacy&&((await getClaudePluginStatus()).legacy||await runClaudeCommand("Removing the legacy Vercel marketplace...","Removed the legacy Vercel marketplace","Removed the legacy Vercel plugin, but could not remove the legacy marketplace.",["plugins","marketplace","remove","vercel"],{quietSuccess:!0})||output_manager_default.log("Cleanup command: claude plugins marketplace remove vercel"))}async function getClaudePluginStatus(){let[installedPlugins,latestVersion]=await Promise.all([getClaudeInstalledPlugins(),fetchLatestVercelPluginVersion()]);return buildClaudePluginStatus(installedPlugins,latestVersion)}async function applyPluginActions(targets,claudePlan){for(let target of targets)target==="claude-code"&&claudePlan?await runClaudeMigration(claudePlan):output_manager_default.debug(`Skipping unsupported plugin target: ${target}`)}async function autoInstallVercelPlugin(client,options){try{let prefs=await readPrefs(client),applyMode=options?.mode==="apply";if(!prefs.pluginDeclined||prefs.pluginAutoUpdate||applyMode){let targets=await getPluginTargets(client.agentName,client.cwd),uninstalledTargets=[],claudeStatus=targets.includes("claude-code")?await getClaudePluginStatus():void 0,claudePlan=claudeStatus?buildClaudePluginMigrationPlan(claudeStatus):void 0,claudeAutoUpdateAttemptKey=claudeStatus&&claudePlan?getClaudeAutoUpdateAttemptKey(claudeStatus,claudePlan):void 0;for(let target of targets){if(target==="claude-code"){claudePlan&&hasClaudeMigrationActions(claudePlan)&&uninstalledTargets.push(target);continue}await isPluginInstalledForTarget(target)||uninstalledTargets.push(target)}if(uninstalledTargets.length>0){if(prefs.pluginAutoUpdate){if(claudeAutoUpdateAttemptKey&&wasPluginAutoUpdateAttemptedToday(prefs,claudeAutoUpdateAttemptKey))return;prefs.pluginDeclined=!1,markPluginAutoUpdateAttempted(prefs,claudeAutoUpdateAttemptKey),await writePrefs(client,prefs),await applyPluginActions(uninstalledTargets,claudePlan);return}if(!applyMode&&wasPromptedToday(prefs))return;if(applyMode){prefs.pluginDeclined=!1,prefs.pluginAutoUpdate=!0,await writePrefs(client,prefs),await applyPluginActions(uninstalledTargets,claudePlan);return}let promptMessages=[],confirmMessage="Install the Vercel plugin?";if(uninstalledTargets.includes("claude-code")&&claudeStatus&&claudePlan){let claudePrompt=buildClaudePromptCopy(claudeStatus,claudePlan);promptMessages.push(claudePrompt.message),confirmMessage=claudePrompt.confirm}let promptMessage=promptMessages.join(" ").trim();promptMessage&&output_manager_default.log(promptMessage);let accepted=await confirm(client,confirmMessage);await markPromptedToday(client,prefs),accepted?(prefs.pluginDeclined=!1,prefs.pluginAutoUpdate=!0,await writePrefs(client,prefs),await applyPluginActions(uninstalledTargets,claudePlan)):(prefs.pluginDeclined=!0,prefs.pluginAutoUpdate=!1,await writePrefs(client,prefs))}}}catch(err){output_manager_default.debug(`Auto-install agent tooling failed: ${err}`)}}export{autoInstallVercelPlugin};
@@ -1,7 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __dirname_ } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- const __filename = __fileURLToPath(import.meta.url);
6
- const __dirname = __dirname_(__filename);
7
- import{require_dist,require_dist2}from"./chunk-LASMHNUP.js";import{require_types}from"./chunk-GHM7V3GG.js";import{require_build_utils}from"./chunk-RTRCTYW6.js";import{__commonJS,__toESM}from"./chunk-6L236MNA.js";var require_dist3=__commonJS({"../../internals/service-topology/dist/index.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),src_exports={};__export(src_exports,{INTERNAL_SERVICE_PREFIX:()=>import_fs_detectors2.INTERNAL_SERVICE_PREFIX,autoDetectServices:()=>import_fs_detectors2.autoDetectServices,detectServices:()=>import_fs_detectors2.detectServices,generateServiceRewrites:()=>import_fs_detectors2.generateServiceRewrites,generateServicesRoutes:()=>import_fs_detectors2.generateServicesRoutes,getInternalServiceCronPath:()=>import_fs_detectors2.getInternalServiceCronPath,getInternalServiceCronPathPrefix:()=>import_fs_detectors2.getInternalServiceCronPathPrefix,getInternalServiceFunctionPath:()=>import_fs_detectors2.getInternalServiceFunctionPath,getInternalServiceWorkerPath:()=>import_fs_detectors2.getInternalServiceWorkerPath,getInternalServiceWorkerPathPrefix:()=>import_fs_detectors2.getInternalServiceWorkerPathPrefix,isExperimentalService:()=>import_fs_detectors2.isExperimentalService,isExperimentalServiceV2:()=>import_fs_detectors2.isExperimentalServiceV2,isRouteOwningBuilder:()=>import_fs_detectors2.isRouteOwningBuilder,isStaticBuild:()=>import_fs_detectors2.isStaticBuild,resolveAllConfiguredServicesV2:()=>import_fs_detectors2.resolveAllConfiguredServicesV2,resolveConfiguredServiceV2:()=>import_fs_detectors2.resolveConfiguredServiceV2,validateServiceConfigV2:()=>import_fs_detectors2.validateServiceConfigV2});module.exports=__toCommonJS(src_exports);var import_fs_detectors2=require_dist2()}});var import_routing_utils=__toESM(require_dist(),1),import_build_utils=__toESM(require_build_utils(),1),import_types=__toESM(require_types(),1),import_fs_detectors=__toESM(require_dist2(),1);import{getConfigValidator}from"./config-validator.mjs";var imagesSchema={type:"object",additionalProperties:!1,required:["sizes"],properties:{contentDispositionType:{enum:["inline","attachment"]},contentSecurityPolicy:{type:"string",minLength:1,maxLength:256},dangerouslyAllowSVG:{type:"boolean"},domains:{type:"array",minItems:0,maxItems:50,items:{type:"string",minLength:1,maxLength:256}},formats:{type:"array",minItems:1,maxItems:4,items:{enum:["image/avif","image/webp","image/jpeg","image/png"]}},localPatterns:{type:"array",minItems:0,maxItems:25,items:{type:"object",additionalProperties:!1,properties:{pathname:{type:"string",minLength:1,maxLength:256},search:{type:"string",minLength:0,maxLength:256}}}},minimumCacheTTL:{type:"integer",minimum:1,maximum:31536e4},qualities:{type:"array",minItems:1,maxItems:20,items:{type:"integer",minimum:1,maximum:100}},remotePatterns:{type:"array",minItems:0,maxItems:50,items:{type:"object",additionalProperties:!1,required:["hostname"],properties:{protocol:{enum:["http","https"]},hostname:{type:"string",minLength:1,maxLength:256},port:{type:"string",minLength:0,maxLength:5},pathname:{type:"string",minLength:1,maxLength:256},search:{type:"string",minLength:0,maxLength:256}}}},sizes:{type:"array",minItems:1,maxItems:50,items:{type:"number"}}}},cronsSchema={type:"array",minItems:0,items:{type:"object",additionalProperties:!1,required:["path","schedule"],properties:{path:{type:"string",minLength:1,maxLength:512,pattern:"^/.*"},schedule:{type:"string",minLength:9,maxLength:256}}}},schedulesSchema={type:"array",minItems:0,maxItems:100,items:{type:"object",additionalProperties:!1,required:["expression","target","name"],properties:{expression:{type:"object",additionalProperties:!1,required:["cron"],properties:{cron:{type:"string"},jitter:{type:"integer",minimum:1,maximum:15}}},target:{oneOf:[{type:"object",additionalProperties:!1,required:["function"],properties:{function:{type:"string",minLength:1}}},{type:"object",additionalProperties:!1,required:["topic"],properties:{topic:{type:"string",minLength:1,maxLength:256}}}]},name:{type:"string",minLength:1,maxLength:256},timezone:{type:"string",minLength:1,maxLength:50,description:"IANA timezone for cron evaluation. Defaults to UTC."},payload:{}}}},experimentalServicesMountSchema={oneOf:[{type:"string",minLength:1,maxLength:512},{type:"object",additionalProperties:!1,properties:{path:{type:"string",minLength:1,maxLength:512},subdomain:{type:"string",minLength:1,maxLength:63}},anyOf:[{required:["path"]},{required:["subdomain"]}]}]},staticExperimentalServiceScheduleSchema={type:"string",minLength:9,maxLength:256,not:{const:"<dynamic>"}},experimentalServiceScheduleSchema={oneOf:[{type:"string",minLength:9,maxLength:256},{type:"array",minItems:1,items:staticExperimentalServiceScheduleSchema}]},experimentalServiceQueueTopicSchema={type:"object",additionalProperties:!1,required:["topic"],properties:{topic:{type:"string",minLength:1,maxLength:256},retryAfterSeconds:{type:"integer",minimum:1,maximum:86400},initialDelaySeconds:{type:"integer",minimum:0,maximum:86400}}},experimentalServiceTopicsSchema={oneOf:[{type:"array",minItems:1,items:{type:"string",minLength:1,maxLength:256}},{type:"array",minItems:1,items:experimentalServiceQueueTopicSchema}]},envVarNamesSchema={pattern:"^[A-Za-z_][A-Za-z0-9_]*$",maxLength:256},getExperimentalServicesCommonProperties=()=>({entrypoint:{type:"string",minLength:1,maxLength:512},root:{type:"string",minLength:1,maxLength:512},workspace:{type:"string",minLength:1,maxLength:512},framework:{type:"string",minLength:1,maxLength:256},builder:{type:"string",minLength:1,maxLength:256},runtime:{type:"string",minLength:1,maxLength:256},buildCommand:{type:"string",minLength:1,maxLength:2048},installCommand:{type:"string",minLength:1,maxLength:2048},preDeployCommand:{type:"string",minLength:1,maxLength:2048},command:{oneOf:[{type:"string",minLength:1,maxLength:2048},{type:"array",minItems:1,items:{type:"string",minLength:1,maxLength:2048}}]},memory:{type:"integer",minimum:128,maximum:10240},maxDuration:(0,import_build_utils.getMaxDurationSchema)(),includeFiles:{oneOf:[{type:"string",minLength:1},{type:"array",items:{type:"string",minLength:1}}]},excludeFiles:{oneOf:[{type:"string",minLength:1},{type:"array",items:{type:"string",minLength:1}}]}}),experimentalServicesRoutableProperties={mount:experimentalServicesMountSchema,routePrefix:{type:"string",minLength:1,maxLength:512},subdomain:{type:"string",minLength:1,maxLength:63}},getExperimentalServicesServiceConfigSchema=()=>({oneOf:[{type:"object",additionalProperties:!1,properties:{...getExperimentalServicesCommonProperties(),...experimentalServicesRoutableProperties,type:{enum:["web"]}}},{type:"object",additionalProperties:!1,required:["type","trigger","schedule"],properties:{...getExperimentalServicesCommonProperties(),type:{const:"job"},trigger:{const:"schedule"},schedule:experimentalServiceScheduleSchema}},{type:"object",additionalProperties:!1,required:["type","trigger","topics"],properties:{...getExperimentalServicesCommonProperties(),type:{const:"job"},trigger:{const:"queue"},topics:experimentalServiceTopicsSchema,consumer:{type:"string",minLength:1,maxLength:256}}},{type:"object",additionalProperties:!1,required:["type","trigger","entrypoint"],properties:{...getExperimentalServicesCommonProperties(),type:{const:"job"},trigger:{const:"workflow"}}},{type:"object",additionalProperties:!1,required:["type"],properties:{...getExperimentalServicesCommonProperties(),type:{const:"worker"},topics:{type:"array",items:{type:"string",minLength:1,maxLength:256},minItems:1},consumer:{type:"string",minLength:1,maxLength:256}}},{type:"object",additionalProperties:!1,required:["type","schedule"],properties:{...getExperimentalServicesCommonProperties(),type:{const:"cron"},schedule:experimentalServiceScheduleSchema}}]}),getExperimentalServicesSchema=()=>({type:"object",propertyNames:{pattern:"^[a-zA-Z]([a-zA-Z0-9_-]*[a-zA-Z0-9])?$",maxLength:64},additionalProperties:getExperimentalServicesServiceConfigSchema()}),experimentalServiceGroupsSchema={type:"object",propertyNames:{pattern:"^[a-zA-Z]([a-zA-Z0-9_-]*[a-zA-Z0-9])?$",maxLength:64},additionalProperties:{type:"array",items:{type:"string",minLength:1,maxLength:256}}},servicesPathSchema={type:"string",minLength:1,maxLength:512},servicesCommandSchema={type:"string",minLength:1,maxLength:2048},servicesServiceNamePattern="^[a-z]([a-z_-]*[a-z])?$",servicesBindingSchema={type:"object",additionalProperties:!1,required:["service","format","env"],properties:{type:{description:"Optional binding type marker. Currently the only supported type is `service`. When present this must be `service`.",const:"service"},service:{type:"string",minLength:1,maxLength:64,pattern:servicesServiceNamePattern},format:{const:"url"},env:{type:"string",...envVarNamesSchema}}},servicesBindingsSchema={type:"array",maxItems:100,items:servicesBindingSchema},getServicesServiceConfigSchema=()=>({type:"object",additionalProperties:!1,required:["root"],properties:{root:servicesPathSchema,framework:{type:"string",minLength:1,maxLength:256},runtime:{type:"string",minLength:1,maxLength:256},entrypoint:servicesPathSchema,command:{oneOf:[{type:"string"},{type:"array",items:{type:"string"}}]},installCommand:servicesCommandSchema,buildCommand:servicesCommandSchema,devCommand:servicesCommandSchema,ignoreCommand:servicesCommandSchema,outputDirectory:servicesPathSchema,bindings:servicesBindingsSchema,functions:(0,import_build_utils.getFunctionsSchema)(),headers:import_routing_utils.headersSchema,redirects:import_routing_utils.redirectsSchema,rewrites:import_routing_utils.rewritesSchema,routes:import_routing_utils.routesSchema,cleanUrls:import_routing_utils.cleanUrlsSchema,trailingSlash:import_routing_utils.trailingSlashSchema}}),getServicesSchema=()=>({type:"object",propertyNames:{pattern:servicesServiceNamePattern,maxLength:64},additionalProperties:getServicesServiceConfigSchema()}),proxySchema={type:"object",additionalProperties:!1,required:["entrypoint"],properties:{entrypoint:{type:"string",minLength:1},matcher:{oneOf:[{type:"string",minLength:1},{type:"array",minItems:1,items:{type:"string",minLength:1}}]}}};function buildVercelConfigSchema(){return{type:"object",additionalProperties:!0,properties:{builds:import_build_utils.buildsSchema,routes:import_routing_utils.routesSchema,cleanUrls:import_routing_utils.cleanUrlsSchema,headers:import_routing_utils.headersSchema,redirects:import_routing_utils.redirectsSchema,rewrites:import_routing_utils.rewritesSchema,trailingSlash:import_routing_utils.trailingSlashSchema,functions:(0,import_build_utils.getFunctionsSchema)(),images:imagesSchema,crons:cronsSchema,schedules:schedulesSchema,bunVersion:{type:"string"},proxy:proxySchema,experimentalServices:getExperimentalServicesSchema(),experimentalServiceGroups:experimentalServiceGroupsSchema,services:getServicesSchema(),experimentalServicesV2:getServicesSchema()}}}function validateConfig(config){let validate=getConfigValidator(buildVercelConfigSchema);if(!validate(config)&&validate.errors&&validate.errors[0]){let error=validate.errors[0],fileName=config[import_types.fileNameSymbol]||"vercel.json",niceError=(0,import_build_utils.getPrettyError)(error);return niceError.message=`Invalid ${fileName} - ${niceError.message}`,niceError}for(let[index,schedule]of(config.schedules??[]).entries())if(schedule.timezone!==void 0)try{if(!/^[A-Za-z][A-Za-z0-9_+/-]*$/.test(schedule.timezone))throw new RangeError("Expected a named timezone");new Intl.DateTimeFormat("en-US",{timeZone:schedule.timezone})}catch{return new import_build_utils.NowBuildError({code:"INVALID_SCHEDULE_TIMEZONE",message:`Invalid ${config[import_types.fileNameSymbol]||"vercel.json"} - \`schedules[${index}].timezone\` must be a valid IANA timezone, such as "America/New_York". Omit it to use UTC.`})}for(let[pattern,fn]of Object.entries(config.functions??{}))if(fn.affinity!==void 0)return new import_build_utils.NowBuildError({code:"FUNCTION_AFFINITY_REQUIRES_SERVICE",message:`Function affinity can only be configured under a service. Move functions[${JSON.stringify(pattern)}].affinity into the relevant service's functions configuration.`,link:"https://vercel.com/docs/concepts/projects/project-configuration#functions"});let functionMaps=[config.functions,...Object.values(config.services??{}).map(service=>service.functions),...Object.values(config.experimentalServicesV2??{}).map(service=>service.functions)];for(let functions of functionMaps)for(let[pattern,fn]of Object.entries(functions??{})){let regions=[...new Set(fn.regions)];if(fn.affinity?.mode==="strict"&&(regions.includes("all")||regions.length>1))return new import_build_utils.NowBuildError({code:"INVALID_FUNCTION_AFFINITY_REGIONS",message:`Function affinity mode "strict" requires at most one statically configured region. Update \`functions[${JSON.stringify(pattern)}].regions\` to contain a single region.`,link:"https://vercel.com/docs/concepts/projects/project-configuration#functions"})}if(config.proxy){let proxyError=(0,import_fs_detectors.validateProxyConfig)(config.proxy);if(proxyError)return new import_build_utils.NowBuildError({code:proxyError.code.toUpperCase(),message:proxyError.message})}if(config.functions&&config.builds)return new import_build_utils.NowBuildError({code:"FUNCTIONS_AND_BUILDS",message:"The `functions` property cannot be used in conjunction with the `builds` property. Please remove one of them.",link:"https://vercel.link/functions-and-builds"});if(config.proxy&&config.builds)return new import_build_utils.NowBuildError({code:"PROXY_AND_BUILDS",message:"The `proxy` property cannot be used with the `builds` property. Remove `builds` to use an explicit proxy entrypoint."});let hasExperimentalServices=!!config.experimentalServices;if(hasExperimentalServices&&config.builds)return new import_build_utils.NowBuildError({code:"EXPERIMENTAL_SERVICES_AND_BUILDS",message:"The `experimentalServices` property cannot be used in conjunction with the `builds` property. Please remove one of them."});if(hasExperimentalServices&&config.functions)return new import_build_utils.NowBuildError({code:"EXPERIMENTAL_SERVICES_AND_FUNCTIONS",message:"The `experimentalServices` property cannot be used in conjunction with the `functions` property. Please remove one of them."});if(config.experimentalServiceGroups&&!config.experimentalServices)return new import_build_utils.NowBuildError({code:"SERVICE_GROUPS_WITHOUT_SERVICES",message:"The `experimentalServiceGroups` property requires `experimentalServices` to be defined. Service groups reference services by name."});let hasServices=config.services!=null,hasExperimentalServicesV2=config.experimentalServicesV2!=null;if(hasServices&&hasExperimentalServicesV2)return new import_build_utils.NowBuildError({code:"SERVICES_AND_EXPERIMENTAL_SERVICES_V2",message:"The `services` property cannot be used in conjunction with its deprecated alias `experimentalServicesV2`. Please use only `services`."});let servicesConfig=config.services??config.experimentalServicesV2,servicesConfigKey=hasServices?"services":"experimentalServicesV2",servicesErrorCodePrefix=hasServices?"SERVICES":"EXPERIMENTAL_SERVICES_V2";if(servicesConfig&&hasExperimentalServices)return new import_build_utils.NowBuildError({code:`${servicesErrorCodePrefix}_AND_EXPERIMENTAL_SERVICES`,message:`The \`${servicesConfigKey}\` property cannot be used in conjunction with the \`experimentalServices\` property. Please use only one services configuration.`});if(servicesConfig&&config.builds)return new import_build_utils.NowBuildError({code:`${servicesErrorCodePrefix}_AND_BUILDS`,message:`The \`${servicesConfigKey}\` property cannot be used in conjunction with the \`builds\` property. Please remove one of them.`});if(servicesConfig){let ambiguousTopLevel=[];if(config.functions!=null&&ambiguousTopLevel.push("functions"),config.installCommand!=null&&ambiguousTopLevel.push("installCommand"),config.buildCommand!=null&&ambiguousTopLevel.push("buildCommand"),config.devCommand!=null&&ambiguousTopLevel.push("devCommand"),config.ignoreCommand!=null&&ambiguousTopLevel.push("ignoreCommand"),config.outputDirectory!=null&&ambiguousTopLevel.push("outputDirectory"),config.framework!=null&&ambiguousTopLevel.push("framework"),ambiguousTopLevel.length>0){let count=ambiguousTopLevel.length,fields=ambiguousTopLevel.map(field=>`\`${field}\``).join(", ");return new import_build_utils.NowBuildError({code:`${servicesErrorCodePrefix}_AND_TOP_LEVEL_BUILD_SETTINGS`,message:`The top-level ${count>1?"properties":"property"} ${fields} cannot be used with \`${servicesConfigKey}\` because the owning service is ambiguous. Move ${count>1?"them":"it"} under the relevant service in \`${servicesConfigKey}\`.`})}}if(servicesConfig){let serviceNames=new Set(Object.keys(servicesConfig));for(let[serviceName,serviceConfig]of Object.entries(servicesConfig))for(let binding of serviceConfig.bindings??[])if(!serviceNames.has(binding.service))return new import_build_utils.NowBuildError({code:`${servicesErrorCodePrefix}_BINDING_UNKNOWN_SERVICE`,message:`Service "${serviceName}" declares a binding to unknown service "${binding.service}". Add "${binding.service}" to \`${servicesConfigKey}\` or fix the binding.`})}return null}export{require_dist3 as require_dist,validateConfig};
@@ -1,7 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __dirname_ } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- const __filename = __fileURLToPath(import.meta.url);
6
- const __dirname = __dirname_(__filename);
7
- import{getSubcommand}from"./chunk-ETV3C2CV.js";import{getCommandAliases}from"./chunk-DB2P55YY.js";import{tracesCommand}from"./chunk-M5AV545M.js";import"./chunk-65JYSI26.js";import"./chunk-YMVDWVMO.js";import"./chunk-O7G3CZ42.js";import"./chunk-N3N5UHIL.js";import{lsSubcommand,rmSubcommand,setSubcommand,tracesConfigCommand}from"./chunk-IVWPQYIH.js";import"./chunk-WUZD4KBL.js";import"./chunk-3QHJYVCY.js";import"./chunk-NBVY237X.js";import"./chunk-MEAY2K5Z.js";import"./chunk-EQ52F4LH.js";import"./chunk-EIXOJUNN.js";import"./chunk-OAKO6LVS.js";import"./chunk-CVKB54WW.js";import"./chunk-JKTQV2QJ.js";import"./chunk-JEIMW3CO.js";import"./chunk-ZKYS7EAB.js";import"./chunk-U6TAKLJ6.js";import"./chunk-JDQP267R.js";import{help}from"./chunk-XV6SDZIO.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import{TelemetryClient}from"./chunk-W2XUH2WW.js";import"./chunk-RCTYVKM5.js";import"./chunk-7T6TL3GQ.js";import"./chunk-F2ZWW2IO.js";import"./chunk-OSCCYU74.js";import"./chunk-JAJW3P42.js";import"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-RTRCTYW6.js";import"./chunk-QGIQK47P.js";import"./chunk-BRK4OB4B.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";var TracesConfigTelemetryClient=class extends TelemetryClient{trackCliSubcommandLs(actual){this.trackCliSubcommand({subcommand:"ls",value:actual})}trackCliSubcommandSet(actual){this.trackCliSubcommand({subcommand:"set",value:actual})}trackCliSubcommandRm(actual){this.trackCliSubcommand({subcommand:"rm",value:actual})}};var COMMAND_CONFIG={ls:getCommandAliases(lsSubcommand),set:getCommandAliases(setSubcommand),rm:getCommandAliases(rmSubcommand)},SUBCOMMAND_METADATA={ls:lsSubcommand,set:setSubcommand,rm:rmSubcommand};async function config(client,{args,needHelp,subcommandOriginal,telemetry}){let{subcommand:action,subcommandOriginal:actionOriginal}=getSubcommand(args,COMMAND_CONFIG),actionMetadata=typeof action=="string"?SUBCOMMAND_METADATA[action]:void 0;function printHelp(command,nested){return output_manager_default.print(help(command,{parent:nested?{...tracesCommand,name:"traces config"}:tracesCommand,columns:client.stderr.columns})),2}if(needHelp)return telemetry.trackCliFlagHelp("traces",subcommandOriginal),actionMetadata?printHelp(actionMetadata,!0):printHelp(tracesConfigCommand,!1);telemetry.trackCliSubcommandConfig(subcommandOriginal);let configTelemetry=new TracesConfigTelemetryClient({opts:{store:client.telemetryEventStore}});switch(action){case"ls":return configTelemetry.trackCliSubcommandLs(actionOriginal),(await import("./ls-GXGGGB3C.js")).default(client);case"set":return configTelemetry.trackCliSubcommandSet(actionOriginal),(await import("./set-OQCFBVJB.js")).default(client);case"rm":return configTelemetry.trackCliSubcommandRm(actionOriginal),(await import("./rm-QJDB2QO6.js")).default(client);default:return printHelp(tracesConfigCommand,!1)}}export{config as default};
@@ -1,7 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __dirname_ } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- const __filename = __fileURLToPath(import.meta.url);
6
- const __dirname = __dirname_(__filename);
7
- import{getServicesConfigWriteBlocker,isExperimentalServicesEnabled,tryDetectServices,writeServicesConfig}from"./chunk-J2ONOQCQ.js";import"./chunk-XZYKYDQO.js";import"./chunk-LASMHNUP.js";import"./chunk-Q3LIZ6SZ.js";import"./chunk-K2RAW5DI.js";import"./chunk-4Q2FGJAG.js";import"./chunk-GHM7V3GG.js";import"./chunk-L3JDEHCQ.js";import"./chunk-QR7QPUFN.js";import"./chunk-SOJCELXH.js";import"./chunk-KK4AJES5.js";import"./chunk-N6CNMMSZ.js";import"./chunk-6ARDCI6T.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-4VGOAPFY.js";import"./chunk-GTK7TBLW.js";import"./chunk-VOZEB6PD.js";import"./chunk-GI6G3FJJ.js";import"./chunk-FI772UVH.js";import"./chunk-RTRCTYW6.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";export{getServicesConfigWriteBlocker,isExperimentalServicesEnabled,tryDetectServices,writeServicesConfig};
@@ -1,7 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __dirname_ } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- const __filename = __fileURLToPath(import.meta.url);
6
- const __dirname = __dirname_(__filename);
7
- import{importBuilders,import_import_builders}from"./chunk-MNACJRE7.js";import"./chunk-CJPM2DXZ.js";import"./chunk-LASMHNUP.js";import"./chunk-KKS7XWEX.js";import"./chunk-Q3LIZ6SZ.js";import"./chunk-K2RAW5DI.js";import"./chunk-4Q2FGJAG.js";import"./chunk-L3JDEHCQ.js";import"./chunk-QR7QPUFN.js";import"./chunk-7O3KGTQ3.js";import"./chunk-2I64AYHG.js";import"./chunk-SOJCELXH.js";import"./chunk-KK4AJES5.js";import"./chunk-N6CNMMSZ.js";import"./chunk-7T6TL3GQ.js";import"./chunk-6ARDCI6T.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-4VGOAPFY.js";import"./chunk-GTK7TBLW.js";import"./chunk-VOZEB6PD.js";import"./chunk-GI6G3FJJ.js";import"./chunk-FI772UVH.js";import"./chunk-RTRCTYW6.js";import"./chunk-QGIQK47P.js";import"./chunk-BRK4OB4B.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";var export_formatResolvedBuilders=import_import_builders.formatResolvedBuilders;var export_getBuildersDir=import_import_builders.getBuildersDir;export{export_formatResolvedBuilders as formatResolvedBuilders,export_getBuildersDir as getBuildersDir,importBuilders};
@@ -1,7 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __dirname_ } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- const __filename = __fileURLToPath(import.meta.url);
6
- const __dirname = __dirname_(__filename);
7
- import{SENSITIVE_PLACEHOLDER,envPullCommandLogic,pull}from"./chunk-QQNFAXDX.js";import"./chunk-X446JLEO.js";import"./chunk-CWTXZPUV.js";import"./chunk-ULLWCOYC.js";import"./chunk-KK4AJES5.js";import"./chunk-N6CNMMSZ.js";import"./chunk-BW24TEUN.js";import"./chunk-74CMQMYR.js";import"./chunk-YWFECCBH.js";import"./chunk-EQP3SW72.js";import"./chunk-JDQP267R.js";import"./chunk-SXUEGVWB.js";import"./chunk-DLKR2CG6.js";import"./chunk-7NYQ7CTP.js";import"./chunk-E4CRGS56.js";import"./chunk-LZTGSYL3.js";import"./chunk-6V3JGAVJ.js";import"./chunk-W2XUH2WW.js";import"./chunk-RCTYVKM5.js";import"./chunk-5XJNPXQK.js";import"./chunk-4P66SQRS.js";import"./chunk-ZRS5X7M2.js";import"./chunk-MY4MONOH.js";import"./chunk-7T6TL3GQ.js";import"./chunk-6ARDCI6T.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-WR5OOWD6.js";import"./chunk-JAJW3P42.js";import"./chunk-4VGOAPFY.js";import"./chunk-GTK7TBLW.js";import"./chunk-VOZEB6PD.js";import"./chunk-GI6G3FJJ.js";import"./chunk-FI772UVH.js";import"./chunk-RTRCTYW6.js";import"./chunk-QGIQK47P.js";import"./chunk-BRK4OB4B.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";export{SENSITIVE_PLACEHOLDER,pull as default,envPullCommandLogic};
@@ -1,7 +0,0 @@
1
- import { createRequire as __createRequire } from 'node:module';
2
- import { fileURLToPath as __fileURLToPath } from 'node:url';
3
- import { dirname as __dirname_ } from 'node:path';
4
- const require = __createRequire(import.meta.url);
5
- const __filename = __fileURLToPath(import.meta.url);
6
- const __dirname = __dirname_(__filename);
7
- import{applyGitConnectIntent,connectGitRepository,resolveGitConnectIntent,setupAndLink,shouldPromptForRootDirectory}from"./chunk-YHN4IZVJ.js";import"./chunk-J2ONOQCQ.js";import"./chunk-QYPQGOSO.js";import"./chunk-7RR7MIMT.js";import"./chunk-IH2HZFLM.js";import"./chunk-QHJLRTVY.js";import"./chunk-CTO5XEIQ.js";import"./chunk-IERVS47L.js";import"./chunk-2H77IRPI.js";import"./chunk-OHDEHZLX.js";import"./chunk-M2W3HKV3.js";import"./chunk-PHW54NU5.js";import"./chunk-NPMNS7IG.js";import"./chunk-P2O5DOYE.js";import"./chunk-XZYKYDQO.js";import"./chunk-LASMHNUP.js";import"./chunk-Q3LIZ6SZ.js";import"./chunk-K2RAW5DI.js";import"./chunk-4Q2FGJAG.js";import"./chunk-GHM7V3GG.js";import"./chunk-L3JDEHCQ.js";import"./chunk-QR7QPUFN.js";import"./chunk-SOJCELXH.js";import"./chunk-QQNFAXDX.js";import"./chunk-X446JLEO.js";import"./chunk-CWTXZPUV.js";import"./chunk-ULLWCOYC.js";import"./chunk-KK4AJES5.js";import"./chunk-N6CNMMSZ.js";import"./chunk-BW24TEUN.js";import"./chunk-74CMQMYR.js";import"./chunk-YWFECCBH.js";import"./chunk-EQP3SW72.js";import"./chunk-JDQP267R.js";import"./chunk-SXUEGVWB.js";import"./chunk-DLKR2CG6.js";import"./chunk-6TAQ6OWD.js";import"./chunk-7NYQ7CTP.js";import"./chunk-E4CRGS56.js";import"./chunk-LZTGSYL3.js";import"./chunk-WPS6JZF6.js";import"./chunk-6V3JGAVJ.js";import"./chunk-W2XUH2WW.js";import"./chunk-RCTYVKM5.js";import"./chunk-5XJNPXQK.js";import"./chunk-4P66SQRS.js";import"./chunk-ZRS5X7M2.js";import"./chunk-MY4MONOH.js";import"./chunk-7T6TL3GQ.js";import"./chunk-6ARDCI6T.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-OSCCYU74.js";import"./chunk-WR5OOWD6.js";import"./chunk-JAJW3P42.js";import"./chunk-4VGOAPFY.js";import"./chunk-GTK7TBLW.js";import"./chunk-VOZEB6PD.js";import"./chunk-GI6G3FJJ.js";import"./chunk-FI772UVH.js";import"./chunk-RTRCTYW6.js";import"./chunk-QGIQK47P.js";import"./chunk-BRK4OB4B.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";export{applyGitConnectIntent,connectGitRepository,setupAndLink as default,resolveGitConnectIntent,shouldPromptForRootDirectory};