vercel 60.1.3 → 61.1.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 (168) hide show
  1. package/dist/chunks/{add-5INBQVKB.js → add-2QHHI447.js} +1 -1
  2. package/dist/chunks/{add-IEQXYKXU.js → add-H5XUOIW4.js} +1 -1
  3. package/dist/chunks/{add-QJSYPE26.js → add-KDIVCEEY.js} +1 -1
  4. package/dist/chunks/{build-Z7KM3GMP.js → build-EFC6AC3A.js} +1 -1
  5. package/dist/chunks/chunk-23NBYS6R.js +36 -0
  6. package/dist/chunks/{chunk-AP36GAOG.js → chunk-2UNDQZGO.js} +1 -1
  7. package/dist/chunks/{chunk-R7ZRVA7E.js → chunk-3PU3JKJU.js} +7 -5
  8. package/dist/chunks/{chunk-3MVT26LH.js → chunk-3QIFLB5M.js} +1 -1
  9. package/dist/chunks/{chunk-JSKGZLE4.js → chunk-3Y2HZ7ZE.js} +1 -1
  10. package/dist/chunks/{chunk-LFQTA3CF.js → chunk-46JKXCHX.js} +1 -1
  11. package/dist/chunks/{chunk-H4FTGLWV.js → chunk-5E6XT7UP.js} +1 -1
  12. package/dist/chunks/{chunk-IVWPQYIH.js → chunk-5VEVDIX4.js} +1 -1
  13. package/dist/chunks/{chunk-YJZFFNUB.js → chunk-5XUEYLPX.js} +1 -1
  14. package/dist/chunks/{chunk-WUZD4KBL.js → chunk-6BWY63F2.js} +1 -1
  15. package/dist/chunks/{chunk-3B4P7YHO.js → chunk-6H37RZR4.js} +1 -1
  16. package/dist/chunks/chunk-6UV6HXVD.js +8 -0
  17. package/dist/chunks/{chunk-JM3BFUXX.js → chunk-7IU5MZY3.js} +1 -1
  18. package/dist/chunks/{chunk-E3EJLJFQ.js → chunk-7K5WQAIL.js} +1 -1
  19. package/dist/chunks/{chunk-KCARCOP5.js → chunk-7QZ3V4GA.js} +1 -1
  20. package/dist/chunks/{chunk-RMYQX7NP.js → chunk-APMYUYG3.js} +1 -1
  21. package/dist/chunks/{chunk-YMVDWVMO.js → chunk-ARM6TNWM.js} +1 -1
  22. package/dist/chunks/{chunk-M5Y335WI.js → chunk-B3CNVVZG.js} +1 -1
  23. package/dist/chunks/{chunk-UO2ECTIU.js → chunk-BN3XAVPG.js} +1 -1
  24. package/dist/chunks/{chunk-B6PMTBCU.js → chunk-C7FA3F6Y.js} +1 -1
  25. package/dist/chunks/chunk-CMMKTIUX.js +7 -0
  26. package/dist/chunks/{chunk-3HLNS2I4.js → chunk-DQKTW6TS.js} +4 -4
  27. package/dist/chunks/{chunk-OCWSKPV4.js → chunk-DT3EUC6S.js} +2 -2
  28. package/dist/chunks/{chunk-Y7PHTVZ6.js → chunk-ELOOLQEA.js} +1 -1
  29. package/dist/chunks/{chunk-FZKWLGRG.js → chunk-EMDAZAWN.js} +1 -1
  30. package/dist/chunks/{chunk-TAG2AZXS.js → chunk-EXTNOWQX.js} +1 -1
  31. package/dist/chunks/{chunk-DKV4IVH5.js → chunk-FCQ4OFIG.js} +1 -1
  32. package/dist/chunks/{chunk-ZKYS7EAB.js → chunk-FMIOMNT4.js} +1 -1
  33. package/dist/chunks/{chunk-D2ZPYXZ6.js → chunk-FPGLRLJB.js} +1 -1
  34. package/dist/chunks/{chunk-TTMLSKF7.js → chunk-FUYYSBG6.js} +1 -1
  35. package/dist/chunks/chunk-G6DJSRIM.js +7 -0
  36. package/dist/chunks/{chunk-MDZ2JJP3.js → chunk-GBPKXYFF.js} +3 -3
  37. package/dist/chunks/{chunk-U6AYMUHX.js → chunk-GS56NXBA.js} +4 -4
  38. package/dist/chunks/{chunk-QLS2XUFL.js → chunk-GT6CQWQC.js} +1 -1
  39. package/dist/chunks/{chunk-WWB66KP5.js → chunk-H24CDOLQ.js} +1 -1
  40. package/dist/chunks/chunk-HNGB3J6J.js +9 -0
  41. package/dist/chunks/{chunk-7CTHRXTG.js → chunk-HNQC4E2A.js} +2 -2
  42. package/dist/chunks/{chunk-VCB6KNW3.js → chunk-HQ3OQQIJ.js} +1 -1
  43. package/dist/chunks/{chunk-2R6NQXTQ.js → chunk-HWPICTAW.js} +1 -1
  44. package/dist/chunks/chunk-I3JY5FFO.js +9 -0
  45. package/dist/chunks/{chunk-IS43O66T.js → chunk-IJMVTAUG.js} +1 -1
  46. package/dist/chunks/chunk-IZPS6TSQ.js +9 -0
  47. package/dist/chunks/{chunk-CN4SCEIP.js → chunk-J4GDZSR6.js} +1 -1
  48. package/dist/chunks/{chunk-25LSRUTF.js → chunk-JT3YGQNY.js} +1 -1
  49. package/dist/chunks/{chunk-DV4Z4WSD.js → chunk-LIQM7J3Q.js} +1 -1
  50. package/dist/chunks/{chunk-MEAY2K5Z.js → chunk-LN3L5MUD.js} +1 -1
  51. package/dist/chunks/{chunk-3RV2B7D3.js → chunk-LRARKX6U.js} +1 -1
  52. package/dist/chunks/chunk-LYGUPV4A.js +7 -0
  53. package/dist/chunks/{chunk-TTKDYUJD.js → chunk-MDPHTALV.js} +4 -4
  54. package/dist/chunks/{chunk-YXTE2H6I.js → chunk-METJ7TPN.js} +1 -1
  55. package/dist/chunks/{chunk-NR367IWV.js → chunk-MOZORTXV.js} +1 -1
  56. package/dist/chunks/{chunk-JZUVWAOK.js → chunk-NQKUT3UM.js} +2 -2
  57. package/dist/chunks/{chunk-N3N5UHIL.js → chunk-OT7KL3CN.js} +1 -1
  58. package/dist/chunks/{chunk-EQ52F4LH.js → chunk-P7YEHZCP.js} +1 -1
  59. package/dist/chunks/{chunk-7QVVD3WT.js → chunk-PK44ANGQ.js} +1 -1
  60. package/dist/chunks/{chunk-UFZ4W2PA.js → chunk-QKSHLX2T.js} +1 -1
  61. package/dist/chunks/{chunk-QVAZWF3J.js → chunk-QS4HMEHM.js} +1 -1
  62. package/dist/chunks/{chunk-WSZHNPA6.js → chunk-R4XQKQFD.js} +1 -1
  63. package/dist/chunks/{chunk-5ENY7DSN.js → chunk-SUQDXU5Q.js} +1 -1
  64. package/dist/chunks/{chunk-YXBDDHPL.js → chunk-TAIDD65X.js} +1 -1
  65. package/dist/chunks/{chunk-BEGUGOL7.js → chunk-UIYOY4VY.js} +1 -1
  66. package/dist/chunks/chunk-UJRKHDLO.js +7 -0
  67. package/dist/chunks/{chunk-65JYSI26.js → chunk-UZCUQNR2.js} +1 -1
  68. package/dist/chunks/{chunk-HJ3E752K.js → chunk-VCLA7W76.js} +1 -1
  69. package/dist/chunks/{chunk-WH6M54KF.js → chunk-VRDAMDMZ.js} +3 -3
  70. package/dist/chunks/{chunk-BHVHQKUZ.js → chunk-WWIZKLDF.js} +1 -1
  71. package/dist/chunks/{chunk-JAJW3P42.js → chunk-XGGZRQRW.js} +1 -1
  72. package/dist/chunks/{chunk-LAYFSD5A.js → chunk-XYPCSFQH.js} +1 -1
  73. package/dist/chunks/{chunk-UTVDFSQS.js → chunk-Y2TKN7DM.js} +1 -1
  74. package/dist/chunks/{chunk-O7G3CZ42.js → chunk-YIWCEDDM.js} +1 -1
  75. package/dist/chunks/{chunk-QFPCR4NL.js → chunk-ZQAKHK55.js} +1 -1
  76. package/dist/chunks/{clear-AZWSIGIF.js → clear-XPCPE7IB.js} +1 -1
  77. package/dist/chunks/{compile-vercel-config-56X2X4Z3.js → compile-vercel-config-T3UH6HUK.js} +1 -1
  78. package/dist/chunks/config-57JYCPQE.js +7 -0
  79. package/dist/chunks/{config-NGVEJABO.js → config-RUQTGUAU.js} +1 -1
  80. package/dist/chunks/{delete-LX44AJYC.js → delete-AQLS65EZ.js} +1 -1
  81. package/dist/chunks/{delete-TA6UVDSJ.js → delete-YEG4PO32.js} +1 -1
  82. package/dist/chunks/{detect-projects-LEVGWMQE.js → detect-projects-325QE23N.js} +1 -1
  83. package/dist/chunks/{detect-services-KO3GQ2ZK.js → detect-services-O5R4LQYE.js} +1 -1
  84. package/dist/chunks/{disable-E7TU3QIX.js → disable-2IMTXHPN.js} +1 -1
  85. package/dist/chunks/{discard-SVF5HBYG.js → discard-LGTYXVWA.js} +1 -1
  86. package/dist/chunks/{edit-VCOF42GW.js → edit-5SAXFIIQ.js} +1 -1
  87. package/dist/chunks/{edit-2RLFRAOJ.js → edit-FLQUQJRB.js} +1 -1
  88. package/dist/chunks/{enable-H6RL2XIW.js → enable-ZU4EEGQU.js} +1 -1
  89. package/dist/chunks/{export-JW3FFP7N.js → export-YJLMAKU6.js} +1 -1
  90. package/dist/chunks/{future-IGDV62BF.js → future-GCRZEKNU.js} +1 -1
  91. package/dist/chunks/{generate-cert-for-deploy-25UQ2477.js → generate-cert-for-deploy-C2MZFJSD.js} +1 -1
  92. package/dist/chunks/{image-MHAVMOJB.js → image-TBIQVQTJ.js} +1 -1
  93. package/dist/chunks/{import-builders-5UODCCVF.js → import-builders-VIQ3AQKA.js} +1 -1
  94. package/dist/chunks/{inspect-HJF2XFBX.js → inspect-BCJ4576B.js} +1 -1
  95. package/dist/chunks/{inspect-43UJHR4K.js → inspect-DYSG64DM.js} +1 -1
  96. package/dist/chunks/{inspect-KBJ7F64J.js → inspect-EJGQIBO6.js} +1 -1
  97. package/dist/chunks/{inspect-LIGFVYDM.js → inspect-UBQLT7TK.js} +1 -1
  98. package/dist/chunks/{inspect-VETXDYUD.js → inspect-ZY7JD2NB.js} +1 -1
  99. package/dist/chunks/{list-EGYYRTG5.js → list-ACZ53KGA.js} +1 -1
  100. package/dist/chunks/{list-NAABRL7N.js → list-KILCIYI3.js} +1 -1
  101. package/dist/chunks/{list-KAGIR3PD.js → list-RSBMDKH3.js} +1 -1
  102. package/dist/chunks/{login-MZ67I5ZB.js → login-LEHHYIMB.js} +1 -1
  103. package/dist/chunks/{login-X3KPMMEP.js → login-XLBBDBF5.js} +1 -1
  104. package/dist/chunks/{logs-GHHH2DZA.js → logs-GGM6OIP5.js} +1 -1
  105. package/dist/chunks/{ls-MMA5XS6S.js → ls-7RJVN7NA.js} +1 -1
  106. package/dist/chunks/{ls-YA4OQL3F.js → ls-CXCMINIH.js} +1 -1
  107. package/dist/chunks/{ls-7JFKEA5P.js → ls-E52ZQKU2.js} +1 -1
  108. package/dist/chunks/{ls-GOLB26ER.js → ls-EYIOIUW4.js} +1 -1
  109. package/dist/chunks/{ls-UAQ2QDGG.js → ls-PMZQBH7M.js} +1 -1
  110. package/dist/chunks/{ls-JHJPWFMF.js → ls-TZZHYEUP.js} +1 -1
  111. package/dist/chunks/{ls-QXEB3MBD.js → ls-UANS2YOR.js} +1 -1
  112. package/dist/chunks/{mutate-AJYMI5UB.js → mutate-LDKQTMVQ.js} +1 -1
  113. package/dist/chunks/{notifications-DKZMDRHS.js → notifications-TNNPHJ2A.js} +1 -1
  114. package/dist/chunks/{open-L5DJKOV4.js → open-XULXWO4J.js} +1 -1
  115. package/dist/chunks/{openapi-7JUPKBWV.js → openapi-VOEHNJDC.js} +1 -1
  116. package/dist/chunks/{permissions-BRSVLT6O.js → permissions-BJCB363U.js} +1 -1
  117. package/dist/chunks/{prompt-missing-credentials-PPUSNDNC.js → prompt-missing-credentials-XYATS6AR.js} +1 -1
  118. package/dist/chunks/{publish-PXKC5GXE.js → publish-RHYABJG2.js} +1 -1
  119. package/dist/chunks/{pull-ZBELCNJJ.js → pull-Z7HGCSCC.js} +1 -1
  120. package/dist/chunks/{purchase-domain-if-available-BI7AHJMX.js → purchase-domain-if-available-METET7NV.js} +1 -1
  121. package/dist/chunks/{push-G4JYPC5S.js → push-K6JZXF3F.js} +1 -1
  122. package/dist/chunks/{query-JGUDFRPJ.js → query-IRE2AHWJ.js} +1 -1
  123. package/dist/chunks/{reauthenticate-DIFJZWC5.js → reauthenticate-SKNZW44L.js} +1 -1
  124. package/dist/chunks/{reorder-VTFBS2DW.js → reorder-XA4D4ETX.js} +1 -1
  125. package/dist/chunks/{reply-HXGAMNR6.js → reply-2J6FSDE3.js} +1 -1
  126. package/dist/chunks/{resolve-IGQSKGRI.js → resolve-LPG666BQ.js} +1 -1
  127. package/dist/chunks/{resolve-deployment-framework-preset-XF3NJIDS.js → resolve-deployment-framework-preset-QEPJNWVF.js} +1 -1
  128. package/dist/chunks/{restore-XKLJMOKB.js → restore-AUJYHVXJ.js} +1 -1
  129. package/dist/chunks/{rm-C2OYOAJY.js → rm-K72H7VZV.js} +1 -1
  130. package/dist/chunks/{rm-3REOGKTJ.js → rm-OWKRDHCM.js} +1 -1
  131. package/dist/chunks/{rm-DTF2JN5L.js → rm-RKSFOTDA.js} +1 -1
  132. package/dist/chunks/{rm-DL7NRDLF.js → rm-RUYNLXQI.js} +1 -1
  133. package/dist/chunks/{rm-SQM4TQOV.js → rm-ZQVXKO7U.js} +1 -1
  134. package/dist/chunks/{rule-inspect-PQUJOWHR.js → rule-inspect-GLIMHHLI.js} +1 -1
  135. package/dist/chunks/{rules-IX7WN6XW.js → rules-DKX7ZITE.js} +1 -1
  136. package/dist/chunks/{schema-WFKR7ULE.js → schema-4I7CTH47.js} +1 -1
  137. package/dist/chunks/{schema-R2J4TS6Q.js → schema-DR4YJJXD.js} +1 -1
  138. package/dist/chunks/{select-org-6AA7XX6E.js → select-org-6HKDVPLO.js} +1 -1
  139. package/dist/chunks/set-5B652FAX.js +7 -0
  140. package/dist/chunks/setup-and-link-YJDTNH73.js +7 -0
  141. package/dist/chunks/{tags-FE4GVQQO.js → tags-COAUKFHG.js} +1 -1
  142. package/dist/chunks/{types-UYIFBCCL.js → types-JMTJJVOR.js} +1 -1
  143. package/dist/chunks/{update-27EMACWZ.js → update-J5LPVY6R.js} +1 -1
  144. package/dist/chunks/{vlt-builder-importer-QEWS6M2P.js → vlt-builder-importer-W63QEXYX.js} +2 -2
  145. package/dist/commands/build/index.js +1 -1
  146. package/dist/commands/deploy/index.js +9 -9
  147. package/dist/commands/dev/index.js +2 -2
  148. package/dist/commands/env/index.js +1 -1
  149. package/dist/commands/link/index.js +1 -1
  150. package/dist/commands/list/index.js +1 -1
  151. package/dist/commands-bulk.js +37 -36
  152. package/dist/index.js +2 -2
  153. package/dist/internal-build-worker.js +2 -2
  154. package/dist/vc.js +1 -1
  155. package/dist/version.mjs +1 -1
  156. package/package.json +58 -58
  157. package/dist/chunks/chunk-5U25FWD5.js +0 -8
  158. package/dist/chunks/chunk-5UOVEMYX.js +0 -7
  159. package/dist/chunks/chunk-CVKB54WW.js +0 -7
  160. package/dist/chunks/chunk-GL7HB5ZK.js +0 -7
  161. package/dist/chunks/chunk-KK4AJES5.js +0 -36
  162. package/dist/chunks/chunk-KOOED3TJ.js +0 -9
  163. package/dist/chunks/chunk-N5AIKGEO.js +0 -9
  164. package/dist/chunks/chunk-SW7MNF4H.js +0 -7
  165. package/dist/chunks/chunk-V54UKUGF.js +0 -7
  166. package/dist/chunks/config-A53AXEGB.js +0 -7
  167. package/dist/chunks/set-763MJP2G.js +0 -7
  168. package/dist/chunks/setup-and-link-57NI3GOM.js +0 -7
@@ -5,7 +5,7 @@ const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import{require_cli_config}from"./chunk-BRK4OB4B.js";import{__toESM}from"./chunk-6L236MNA.js";var import_cli_config=__toESM(require_cli_config(),1);import{createHash,randomBytes}from"node:crypto";import{link,lstat,mkdir,open,readFile,rename,rm,unlink,writeFile}from"node:fs/promises";import{join}from"node:path";import{install}from"@vltpkg/graph";import{PackageInfoClient}from"@vltpkg/package-info";import{PackageJson}from"@vltpkg/package-json";import{PathScurry}from"path-scurry";var LOCK_RETRY_MS=50,LOCK_WAIT_MS=5*60*1e3,LOCK_EMPTY_GRACE_MS=1e3,REMOVE_MAX_RETRIES=5,REMOVE_RETRY_DELAY_MS=100,activeInstallations=new Map;function compareKeys(a,b){return a<b?-1:a>b?1:0}function canonicalize(value){return Array.isArray(value)?value.map(canonicalize):value&&typeof value=="object"?Object.fromEntries(Object.entries(value).sort(([a],[b])=>compareKeys(a,b)).map(([key,child])=>[key,canonicalize(child)])):value}function validateGraph(graph){let{hash,...contents}=graph;if(createHash("sha256").update(JSON.stringify(canonicalize(contents))).digest("hex")!==hash)throw new Error(`The embedded vlt Builder graph for ${graph.name} is invalid.`)}async function wait(ms){await new Promise(resolve=>setTimeout(resolve,ms))}function hasErrorCode(error,code){return error instanceof Error&&"code"in error&&error.code===code}function isProcessAlive(pid){try{return process.kill(pid,0),!0}catch(error){return hasErrorCode(error,"EPERM")}}async function isLockHolderAlive(path){try{let pid=Number.parseInt((await readFile(path,"utf8")).trim(),10);return Number.isInteger(pid)&&pid>0&&isProcessAlive(pid)}catch{return!1}}async function tryStealStaleLock(path,emptyGraceMs){let first;try{first=await lstat(path)}catch{return!0}if(first.size===0&&Date.now()-first.mtimeMs<emptyGraceMs||await isLockHolderAlive(path))return!1;let second;try{second=await lstat(path)}catch{return!0}if(second.dev!==first.dev||second.ino!==first.ino||second.mtimeMs!==first.mtimeMs||second.size!==first.size)return!1;try{return await unlink(path),!0}catch{return!1}}async function acquireLock(path,{waitMs=LOCK_WAIT_MS,emptyGraceMs=LOCK_EMPTY_GRACE_MS}={}){await mkdir(join(path,".."),{recursive:!0});let startedAt=Date.now();for(;;){let tmp=`${path}.${process.pid}-${randomBytes(6).toString("hex")}`;await writeFile(tmp,`${process.pid}
8
- `,{flag:"wx"});try{return await link(tmp,path),await unlink(tmp).catch(()=>{}),await open(path,"r")}catch(error){if(await unlink(tmp).catch(()=>{}),!hasErrorCode(error,"EEXIST"))throw error;if(await tryStealStaleLock(path,emptyGraceMs))continue;if(Date.now()-startedAt>waitMs)throw new Error(`Timed out waiting for vlt Builder lock "${path}".`);await wait(LOCK_RETRY_MS)}}}async function removeInstallation(path){await rm(path,{recursive:!0,force:!0,maxRetries:REMOVE_MAX_RETRIES,retryDelay:REMOVE_RETRY_DELAY_MS})}async function installationComplete(root,graph){try{return(await readFile(join(root,".vercel-builder-graph"),"utf8")).trim()===graph.hash}catch{return!1}}async function reifyGraph(root,graph,packageInfoFactory){let packageJson=new PackageJson,packageInfoCache=join(root,".vlt-package-info-cache"),packageInfo=packageInfoFactory({...graph.lockfile.options,projectRoot:root,packageJson,cache:packageInfoCache});try{await install({...graph.lockfile.options,projectRoot:root,packageJson,packageInfo,scurry:new PathScurry(root),allowScripts:":not(*)",frozenLockfile:!0,cleanInstall:!0})}finally{await rm(packageInfoCache,{recursive:!0,force:!0})}}async function ensureGraph(graph,cacheRoot,packageInfoFactory){validateGraph(graph);let root=join(cacheRoot,graph.hash),active=activeInstallations.get(root);if(active)return active;let installation=(async()=>{if(await installationComplete(root,graph))return root;let lockPath=join(cacheRoot,"locks",`${graph.hash}.lock`),lock=await acquireLock(lockPath),temporaryRoot;try{return await installationComplete(root,graph)||(await removeInstallation(root),temporaryRoot=process.platform==="win32"?root:join(cacheRoot,"tmp",`${graph.hash}-${process.pid}-${randomBytes(6).toString("hex")}`),await mkdir(temporaryRoot,{recursive:!0}),await writeFile(join(temporaryRoot,"package.json"),`${JSON.stringify(graph.manifest,null,2)}
8
+ `,{flag:"wx"});try{return await link(tmp,path),await unlink(tmp).catch(()=>{}),await open(path,"r")}catch(error){if(await unlink(tmp).catch(()=>{}),!hasErrorCode(error,"EEXIST"))throw error;if(await tryStealStaleLock(path,emptyGraceMs))continue;if(Date.now()-startedAt>waitMs)throw new Error(`Timed out waiting for vlt Builder lock "${path}".`);await wait(LOCK_RETRY_MS)}}}async function removeInstallation(path){await rm(path,{recursive:!0,force:!0,maxRetries:REMOVE_MAX_RETRIES,retryDelay:REMOVE_RETRY_DELAY_MS})}async function installationComplete(root,graph){try{return(await readFile(join(root,".vercel-builder-graph"),"utf8")).trim()===graph.hash}catch{return!1}}async function removePackageInfoCache(packageInfo,path){try{await(await packageInfo.getRegistryClient()).cache.promise()}catch{}await removeInstallation(path).catch(()=>{})}async function reifyGraph(root,graph,packageInfoFactory){let packageJson=new PackageJson,packageInfoCache=join(root,".vlt-package-info-cache"),packageInfo=packageInfoFactory({...graph.lockfile.options,projectRoot:root,packageJson,cache:packageInfoCache});try{await install({...graph.lockfile.options,projectRoot:root,packageJson,packageInfo,scurry:new PathScurry(root),allowScripts:":not(*)",frozenLockfile:!0,cleanInstall:!0})}finally{await removePackageInfoCache(packageInfo,packageInfoCache)}}async function ensureGraph(graph,cacheRoot,packageInfoFactory){validateGraph(graph);let root=join(cacheRoot,graph.hash),active=activeInstallations.get(root);if(active)return active;let installation=(async()=>{if(await installationComplete(root,graph))return root;let lockPath=join(cacheRoot,"locks",`${graph.hash}.lock`),lock=await acquireLock(lockPath),temporaryRoot;try{return await installationComplete(root,graph)||(await removeInstallation(root),temporaryRoot=process.platform==="win32"?root:join(cacheRoot,"tmp",`${graph.hash}-${process.pid}-${randomBytes(6).toString("hex")}`),await mkdir(temporaryRoot,{recursive:!0}),await writeFile(join(temporaryRoot,"package.json"),`${JSON.stringify(graph.manifest,null,2)}
9
9
  `),await writeFile(join(temporaryRoot,"vlt-lock.json"),`${JSON.stringify(graph.lockfile,null,2)}
10
10
  `),await reifyGraph(temporaryRoot,graph,packageInfoFactory),await writeFile(join(temporaryRoot,".vercel-builder-graph"),`${graph.hash}
11
- `),temporaryRoot!==root&&(await mkdir(join(root,".."),{recursive:!0}),await rename(temporaryRoot,root)),temporaryRoot=void 0),root}finally{await lock.close(),await unlink(lockPath).catch(()=>{}),temporaryRoot&&await removeInstallation(temporaryRoot)}})();activeInstallations.set(root,installation);let clearInstallation=()=>{activeInstallations.get(root)===installation&&activeInstallations.delete(root)};return installation.then(clearInstallation,clearInstallation),installation}function createVltBuilderImporter({graphs,loadGraphs=async()=>graphs,require:require2,cacheRoot=join((0,import_cli_config.getCachePath)(),"builders-vlt"),packageInfoFactory=options=>new PackageInfoClient(options),debug=()=>{}}){return async function(specs){if(specs.size===0)return new Map;let loadedGraphs=await loadGraphs();if(loadedGraphs.schemaVersion!==1)throw new Error("The embedded vlt Builder graph index is invalid.");let builders=new Map;return await Promise.all([...specs].map(async([spec,name])=>{let graph=loadedGraphs.builders[name];if(!graph)throw new Error(`No pinned vlt graph exists for ${name}.`);let root=await ensureGraph(graph,cacheRoot,packageInfoFactory),pkgPath=require2.resolve(`${name}/package.json`,{paths:[root]}),pkg=JSON.parse(await readFile(pkgPath,"utf8"));if(pkg.name!==name||pkg.version!==graph.version)throw new Error(`The vlt Builder graph materialized ${String(pkg.name)}@${String(pkg.version)} instead of ${name}@${graph.version}.`);let path=require2.resolve(name,{paths:[root]});debug(`Resolved ${name}@${graph.version} with vlt from ${root}`),builders.set(spec,{path,pkgPath,pkg:{...pkg,name},builder:require2(path),dynamicallyInstalled:!0})})),builders}}export{acquireLock,createVltBuilderImporter};
11
+ `),temporaryRoot!==root&&(await mkdir(join(root,".."),{recursive:!0}),await rename(temporaryRoot,root)),temporaryRoot=void 0),root}finally{await lock.close(),await unlink(lockPath).catch(()=>{}),temporaryRoot&&await removeInstallation(temporaryRoot)}})();activeInstallations.set(root,installation);let clearInstallation=()=>{activeInstallations.get(root)===installation&&activeInstallations.delete(root)};return installation.then(clearInstallation,clearInstallation),installation}function createVltBuilderImporter({graphs,loadGraphs=async()=>graphs,require:require2,cacheRoot=join((0,import_cli_config.getCachePath)(),"builders-vlt"),packageInfoFactory=options=>new PackageInfoClient(options),debug=()=>{}}){return async function(specs){if(specs.size===0)return new Map;let loadedGraphs=await loadGraphs();if(loadedGraphs.schemaVersion!==1)throw new Error("The embedded vlt Builder graph index is invalid.");let builders=new Map;return await Promise.all([...specs].map(async([spec,name])=>{let graph=loadedGraphs.builders[name];if(!graph)throw new Error(`No pinned vlt graph exists for ${name}.`);let root=await ensureGraph(graph,cacheRoot,packageInfoFactory),pkgPath=require2.resolve(`${name}/package.json`,{paths:[root]}),pkg=JSON.parse(await readFile(pkgPath,"utf8"));if(pkg.name!==name||pkg.version!==graph.version)throw new Error(`The vlt Builder graph materialized ${String(pkg.name)}@${String(pkg.version)} instead of ${name}@${graph.version}.`);let path=require2.resolve(name,{paths:[root]});debug(`Resolved ${name}@${graph.version} with vlt from ${root}`),builders.set(spec,{path,pkgPath,pkg:{...pkg,name},builder:require2(path),dynamicallyInstalled:!0})})),builders}}export{acquireLock,createVltBuilderImporter,removePackageInfoCache};