@visulima/vis 6.0.1 → 6.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.
Files changed (185) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/bin.js +1 -1
  3. package/dist/binx.js +1 -1
  4. package/dist/config/index.d.ts +1226 -1216
  5. package/dist/packem_chunks/bloom-sync.js +1 -1
  6. package/dist/packem_chunks/cargo-lock.js +5 -0
  7. package/dist/packem_chunks/cargo-plan.js +3 -3
  8. package/dist/packem_chunks/catalog-detector.js +1 -1
  9. package/dist/packem_chunks/catalog.js +1 -94
  10. package/dist/packem_chunks/catalog2.js +11 -0
  11. package/dist/packem_chunks/cli-exec.js +1 -1
  12. package/dist/packem_chunks/cli-main.js +156 -174
  13. package/dist/packem_chunks/context.js +8 -0
  14. package/dist/packem_chunks/fix.js +1 -1
  15. package/dist/packem_chunks/handler10.js +1 -1
  16. package/dist/packem_chunks/handler12.js +4 -4
  17. package/dist/packem_chunks/handler13.js +1 -1
  18. package/dist/packem_chunks/handler14.js +1 -1
  19. package/dist/packem_chunks/handler15.js +1 -1
  20. package/dist/packem_chunks/handler19.js +5 -5
  21. package/dist/packem_chunks/handler2.js +1 -1
  22. package/dist/packem_chunks/handler20.js +1 -1
  23. package/dist/packem_chunks/handler21.js +1 -1
  24. package/dist/packem_chunks/handler23.js +1 -1
  25. package/dist/packem_chunks/handler24.js +1 -1
  26. package/dist/packem_chunks/handler25.js +1 -1
  27. package/dist/packem_chunks/handler26.js +4 -4
  28. package/dist/packem_chunks/handler28.js +1 -1
  29. package/dist/packem_chunks/handler3.js +1 -1
  30. package/dist/packem_chunks/handler31.js +1 -1
  31. package/dist/packem_chunks/handler32.js +1 -1
  32. package/dist/packem_chunks/handler33.js +1 -1
  33. package/dist/packem_chunks/handler34.js +3 -3
  34. package/dist/packem_chunks/handler35.js +1 -1
  35. package/dist/packem_chunks/handler36.js +1 -1
  36. package/dist/packem_chunks/handler38.js +2 -2
  37. package/dist/packem_chunks/handler39.js +5 -5
  38. package/dist/packem_chunks/handler4.js +4 -4
  39. package/dist/packem_chunks/handler40.js +1 -1
  40. package/dist/packem_chunks/handler41.js +1 -1
  41. package/dist/packem_chunks/handler42.js +1 -1
  42. package/dist/packem_chunks/handler43.js +1 -1
  43. package/dist/packem_chunks/handler44.js +1 -1
  44. package/dist/packem_chunks/handler45.js +1 -1
  45. package/dist/packem_chunks/handler46.js +1 -1
  46. package/dist/packem_chunks/handler47.js +1 -1
  47. package/dist/packem_chunks/handler48.js +1 -1
  48. package/dist/packem_chunks/handler49.js +1 -1
  49. package/dist/packem_chunks/handler5.js +4 -4
  50. package/dist/packem_chunks/handler50.js +5 -5
  51. package/dist/packem_chunks/handler52.js +1 -1
  52. package/dist/packem_chunks/handler54.js +2 -2
  53. package/dist/packem_chunks/handler55.js +1 -1
  54. package/dist/packem_chunks/handler56.js +3 -3
  55. package/dist/packem_chunks/handler57.js +4 -4
  56. package/dist/packem_chunks/handler58.js +4 -4
  57. package/dist/packem_chunks/handler59.js +2 -2
  58. package/dist/packem_chunks/handler6.js +7 -7
  59. package/dist/packem_chunks/handler60.js +1 -1
  60. package/dist/packem_chunks/handler61.js +3 -3
  61. package/dist/packem_chunks/handler62.js +1 -1
  62. package/dist/packem_chunks/handler63.js +3 -3
  63. package/dist/packem_chunks/handler64.js +3 -3
  64. package/dist/packem_chunks/handler65.js +4 -4
  65. package/dist/packem_chunks/handler66.js +2 -2
  66. package/dist/packem_chunks/handler67.js +5 -5
  67. package/dist/packem_chunks/handler68.js +12 -25
  68. package/dist/packem_chunks/handler69.js +25 -22
  69. package/dist/packem_chunks/handler7.js +1 -1
  70. package/dist/packem_chunks/handler70.js +22 -10
  71. package/dist/packem_chunks/handler71.js +10 -153
  72. package/dist/packem_chunks/handler72.js +133 -23
  73. package/dist/packem_chunks/handler73.js +23 -323
  74. package/dist/packem_chunks/handler74.js +274 -659
  75. package/dist/packem_chunks/handler75.js +708 -48
  76. package/dist/packem_chunks/handler76.js +48 -27
  77. package/dist/packem_chunks/handler77.js +27 -3
  78. package/dist/packem_chunks/handler78.js +3 -191
  79. package/dist/packem_chunks/handler79.js +191 -0
  80. package/dist/packem_chunks/handler8.js +1 -1
  81. package/dist/packem_chunks/heal.js +2 -2
  82. package/dist/packem_chunks/help-command.js +1 -1
  83. package/dist/packem_chunks/index2.js +3 -58
  84. package/dist/packem_chunks/index3.js +40 -3
  85. package/dist/packem_chunks/index6.js +135 -7
  86. package/dist/packem_chunks/index7.js +7 -135
  87. package/dist/packem_chunks/keys-refresh.js +1 -1
  88. package/dist/packem_chunks/list.js +2 -2
  89. package/dist/packem_chunks/prune.js +1 -1
  90. package/dist/packem_chunks/python-plan.js +3 -3
  91. package/dist/packem_chunks/python-projects.js +1 -1
  92. package/dist/packem_chunks/python.js +1 -0
  93. package/dist/packem_chunks/run.js +1 -1
  94. package/dist/packem_chunks/snapshot.js +2 -2
  95. package/dist/packem_chunks/state.js +2 -2
  96. package/dist/packem_chunks/status.js +1 -1
  97. package/dist/packem_chunks/sync.js +1 -1
  98. package/dist/packem_chunks/verify-lockfile.js +1 -1
  99. package/dist/packem_chunks/version-resolver.js +1 -1
  100. package/dist/packem_chunks/workspace.js +2 -2
  101. package/dist/packem_shared/ReleaseClient-CWD9BC5w.js +1 -0
  102. package/dist/packem_shared/advisories-BodWQ5DQ.js +1 -0
  103. package/dist/packem_shared/{affected-selection-CrW7fWEd.js → affected-selection-QaMUnFqe.js} +1 -1
  104. package/dist/packem_shared/{ai-analysis-pldoS_N4.js → ai-analysis-D7jlbJky.js} +3 -3
  105. package/dist/packem_shared/ai-cache-iSIyY3So.js +1 -0
  106. package/dist/packem_shared/{ai-fix-D9MxigBQ.js → ai-fix-CgCyO65Q.js} +6 -6
  107. package/dist/packem_shared/apply-DoeQAAGm.js +6 -0
  108. package/dist/packem_shared/apply-release-plan-BalHtK-g.js +15 -0
  109. package/dist/packem_shared/{bin-D3TtXgz6.js → bin-LyW9KY0i.js} +1 -1
  110. package/dist/packem_shared/clean-package-json-rutwkKl-.js +1 -0
  111. package/dist/packem_shared/createAdapter-DMK4bBET.js +1 -0
  112. package/dist/packem_shared/createVersionActions-DXo4z8VN.js +1 -0
  113. package/dist/packem_shared/dependency-scan-DFnt1mni.js +1 -0
  114. package/dist/packem_shared/detect-CbMRSXkM.js +1 -0
  115. package/dist/packem_shared/{ecosystem-gate-ByxWtzPE.js → ecosystem-gate-Bdz-gK_Y.js} +1 -1
  116. package/dist/packem_shared/env-BSXG3QKH.js +4 -0
  117. package/dist/packem_shared/env-consistency-B4rU4MQb.js +1 -0
  118. package/dist/packem_shared/failure-log-DIsKBKaI.js +2 -0
  119. package/dist/packem_shared/formatBytes-_HvjOy8a-iHCer6uX.js +1 -0
  120. package/dist/packem_shared/glob-Cyk1H9ZL-DRlUeuow.js +1 -0
  121. package/dist/packem_shared/{index-BKbMnn8K.js → index-B1ZsG3oa.js} +1 -1
  122. package/dist/packem_shared/index-CgNfNk12.js +1 -0
  123. package/dist/packem_shared/lifecycle-CQjeMPY0.js +2 -0
  124. package/dist/packem_shared/missing-package-json-dtwl6w-S.js +1 -0
  125. package/dist/packem_shared/multi-eco-lockfiles-CyIfYw4u.js +1 -0
  126. package/dist/packem_shared/npmrc-CHsOyMvA.js +2 -0
  127. package/dist/packem_shared/osv-C53WUoSW.js +1 -0
  128. package/dist/packem_shared/{package-version-QFmE9anh.js → package-version-DqYSd_ia.js} +1 -1
  129. package/dist/packem_shared/packument-CbTmbHU4.js +1 -0
  130. package/dist/packem_shared/{project-name-filter-DIqpdsvP.js → project-name-filter-mwTJC1IK.js} +1 -1
  131. package/dist/packem_shared/{provenance-L1M2FPy_.js → provenance-SX1MxPUZ.js} +1 -1
  132. package/dist/packem_shared/publish-Dc0XGH3K.js +34 -0
  133. package/dist/packem_shared/registry-CkoaWkjP.js +81 -0
  134. package/dist/packem_shared/registry-keys-z038Ecb4.js +1 -0
  135. package/dist/packem_shared/removeSync-g1D5kONg-LbjATA8v.js +1 -0
  136. package/dist/packem_shared/renderToString-DR0zDUjh-C7p-L6AO.js +3 -0
  137. package/dist/packem_shared/{resolve-explicit-CQa37JSq.js → resolve-explicit-D9kdTNvl.js} +1 -1
  138. package/dist/packem_shared/{run-D-uVGHQ4.js → run-DLvd3RIZ.js} +1 -1
  139. package/dist/packem_shared/run-summary-utils-CMeURYtS.js +1 -0
  140. package/dist/packem_shared/runtime-check-D3cRDuoi.js +1 -0
  141. package/dist/packem_shared/s1ngularity-BuU9Cxpy.js +1 -0
  142. package/dist/packem_shared/scaffold-files-Bje3_Ixv.js +28 -0
  143. package/dist/packem_shared/scan-progress-D8ojNcKt.js +2 -0
  144. package/dist/packem_shared/{signatures-DIqFUOfs.js → signatures-CeL0bOEo.js} +1 -1
  145. package/dist/packem_shared/spinner-Bqjpz3i4.js +1 -0
  146. package/dist/packem_shared/table-DDAJalPF.js +1 -0
  147. package/dist/packem_shared/tabs-CC0GJLww.js +1 -0
  148. package/dist/packem_shared/{task-env-DzR4RkOj.js → task-env-C2lmxvzA.js} +1 -1
  149. package/dist/packem_shared/toolchain-CP79HNVy.js +5 -0
  150. package/dist/packem_shared/typosquats-BFKus_aM.js +1 -0
  151. package/dist/packem_shared/use-measured-height-_nYuZ-Au.js +1 -0
  152. package/dist/packem_shared/vis-update-app-Ba5ce8Jd.js +1 -0
  153. package/dist/packem_shared/{vis-user-error-S0Fesz5y.js → vis-user-error-D_ekz9rF.js} +1 -1
  154. package/dist/packem_shared/watch-loop-DWr41vHM.js +11 -0
  155. package/dist/packem_shared/xxh3-BLHlvhgT.js +1 -0
  156. package/dist/release/core/package-managers/index.js +1 -1
  157. package/dist/release/core/version-actions/index.js +1 -1
  158. package/dist/release/index.js +1 -1
  159. package/index.js +26 -26
  160. package/package.json +9 -9
  161. package/dist/packem_chunks/orchestrator.js +0 -46
  162. package/dist/packem_shared/ReleaseClient-DAvbxCdo.js +0 -1
  163. package/dist/packem_shared/createAdapter-F7GidOzU.js +0 -1
  164. package/dist/packem_shared/createVersionActions-ByaJ1Nbv.js +0 -1
  165. package/dist/packem_shared/dependency-scan-B8jroa1D.js +0 -1
  166. package/dist/packem_shared/env-consistency-Dt_uDbSP.js +0 -1
  167. package/dist/packem_shared/failure-log-BP-gCUb5.js +0 -2
  168. package/dist/packem_shared/formatBytes-_HvjOy8a-B_qQr4Hw.js +0 -4
  169. package/dist/packem_shared/glob-Cyk1H9ZL-Dxlf9Swz.js +0 -1
  170. package/dist/packem_shared/index-DGdD4w-b.js +0 -1
  171. package/dist/packem_shared/lifecycle-DvmDIRbb.js +0 -2
  172. package/dist/packem_shared/missing-package-json-Cu5YVAot.js +0 -1
  173. package/dist/packem_shared/multi-eco-lockfiles-B2X3yhyo.js +0 -1
  174. package/dist/packem_shared/packument-zb18Jnlw.js +0 -1
  175. package/dist/packem_shared/registry-keys-DxdqMzyp.js +0 -1
  176. package/dist/packem_shared/runtime-check-1U8HrQd9.js +0 -1
  177. package/dist/packem_shared/s1ngularity-CO5GkkqX.js +0 -1
  178. package/dist/packem_shared/scan-progress-RwCRxJdX.js +0 -2
  179. package/dist/packem_shared/spinner-BJjbNl1F.js +0 -1
  180. package/dist/packem_shared/tabs--uxJGL8N.js +0 -1
  181. package/dist/packem_shared/toolchain-Bz70UIcp.js +0 -5
  182. package/dist/packem_shared/typosquats-D4DEHhFy.js +0 -1
  183. package/dist/packem_shared/use-measured-height-DUZyyias.js +0 -1
  184. package/dist/packem_shared/vis-update-app-9b2kSk9f.js +0 -1
  185. package/dist/packem_shared/watch-loop-BEnGuMBn.js +0 -11
@@ -0,0 +1,34 @@
1
+ import{DEFAULT_CHANGES_DIR as V}from"../packem_chunks/DEFAULT_CLEAN_KEEP.js";import{createShellRunner as _}from"../packem_chunks/shell-runner.js";import{r as F,b as W}from"./apply-DoeQAAGm.js";import{parseCatalogs as D}from"../packem_chunks/catalog.js";import{c as E}from"../packem_chunks/index3.js";import{r as M}from"../packem_chunks/context.js";import{escapeMarkdown as L}from"../packem_chunks/security.js";import{VisReleaseError as O}from"./VisReleaseError-DZtgcKf8.js";const B=/\{(name|version|previousVersion|date|repo|contributors)\}/g,U=(e,s)=>e.replaceAll(B,(i,p)=>s[p]??""),K=(e,s={})=>{const i=new Set;for(const n of s.internalAuthors??[]){const u=n.trim().toLowerCase().replace(/^@/,"");u.length>0&&i.add(u)}const p=new Set,g=[];for(const n of e){const u=n.meta?.author;if(u)for(const t of u.split(",")){const o=t.trim();if(!o)continue;const h=o.replace(/^@/,"");if(h.length===0)continue;const r=h.toLowerCase();p.has(r)||i.has(r)||(p.add(r),g.push(L(o)))}}return g.length===0?"":g.map(n=>`- ${n}`).join(`
2
+ `)},J=e=>e.length===0?"":`## Related releases
3
+
4
+ ${e.map(i=>`- [${i.name}](${i.url})`).join(`
5
+ `)}`,Y=(e,s,i)=>{if(!s||!s.header&&!s.footer)return e;const p=n=>U(n,{contributors:i.contributors??"",date:i.date,name:i.name,previousVersion:i.previousVersion,repo:i.repo,version:i.version}).replaceAll(/\n{3,}/g,`
6
+
7
+ `).replace(/\s+$/,""),g=[];if(s.header){const n=p(s.header);n.length>0&&g.push(n)}if(g.push(e),s.footer){const n=p(s.footer);n.length>0&&g.push(n)}return g.join(`
8
+
9
+ `)},z=e=>{if(!Array.isArray(e))return;const[s,i]=e;if(s!=="github"||typeof i!="object"||i===null)return;const{internalAuthors:p}=i;if(Array.isArray(p))return p.filter(g=>typeof g=="string")},q=e=>(e.config.publish?.publishArgs??[]).includes("--provenance")&&e.pm.id!=="bun",X=async(e,s)=>{const{options:i,persistState:p,releases:g,result:n,state:u}=s,{removePendingStages:t,upsertPendingStages:o}=await import("../packem_chunks/staged-registry.js"),h=await e.pm.readCatalogYaml(e.cwd),r=D(h),c=e.depGraph.topologicalSort(g.map(l=>l.name)),w=new Map(g.map(l=>[l.name,l])),y=new Set,C=new Map;for(const l of e.plan.releases){const m=e.depGraph.getPackage(l.name);m&&C.set(l.name,{...m.manifest,version:l.newVersion})}const P={config:e.config,cwd:e.cwd},R=e.config.plugins?.length?await import("../packem_chunks/defineReleasePlugin.js"):void 0;for(const l of c){const m=w.get(l);if(!m){n.skipped.push({name:l,reason:"topo-sort returned a name not in the release plan (internal bug)"});continue}const f=e.depGraph.getPackage(l);if(!f)continue;const b=[...new Set(e.depGraph.getDependencies(l).filter(d=>d.kind!=="devDependencies"&&y.has(d.name)).map(d=>d.name))];if(b.length>0){n.skipped.push({name:l,reason:`dependency-failed: not published because ${b.join(", ")} failed to publish (publishing would orphan this package's dependency range)`}),y.add(l);continue}const a=e.perPackageConfig.get(l)??{},v=M(f,a),$=i.publishActionsOverride??E(v),k=i.tag??e.channel?.tag;if(R){const d=await R.runWillPublishHooks(P,{dir:f.dir,name:l,oldVersion:m.oldVersion,version:m.newVersion});if(d.skip){n.skipped.push({name:l,reason:`plugin-skipped${d.by?` by "${d.by}"`:""}`}),y.add(l);continue}}const A=s.stagedRegistry.pending.find(d=>d.name===l&&d.version===m.newVersion);try{const d=await $.publish({catalogs:r,cleanPackageJsonConfig:e.config.publish?.cleanPackageJson,dryRun:i.dryRun,otp:i.otp,perPackageConfig:a,pkg:f,pm:e.pm,provenance:q(e),registry:a.registry,release:m,resumeStageId:A?.id,tag:k,versionedManifestByName:C,workspaceConfig:e.config});if(d.published||d.alreadyPublished){const T=s.stagedRegistry.pending.filter(H=>H.name===l&&H.version===m.newVersion).map(H=>H.id);T.length>0&&(s.stagedRegistry=t(s.stagedRegistry,T))}if(d.published)n.published.push({name:l,stageId:d.stageId,tarball:d.tarball,version:m.newVersion}),u.published.push(`${l}@${m.newVersion}`),R&&await R.runAfterPublishHooks(P,{dir:f.dir,name:l,oldVersion:m.oldVersion,version:m.newVersion});else if(d.alreadyPublished)n.skipped.push({name:l,reason:"already-published"}),u.published.push(`${l}@${m.newVersion}`);else if(n.skipped.push({name:l,reason:d.output??"skipped"}),d.stageId){const T=(d.output??"").startsWith("stage-rejected")?"rejected":"timeout";s.stagedRegistry=o(s.stagedRegistry,[{id:d.stageId,name:l,reason:T,stagedAt:new Date().toISOString(),tag:k??"latest",version:m.newVersion}])}await p()}catch(d){n.failed.push({name:l,reason:d.message}),y.add(l)}}R&&await R.runAfterPublishAllHooks(P,{failed:n.failed.map(l=>({name:l.name,reason:l.reason})),published:n.published.map(l=>({name:l.name,version:l.version})),skipped:n.skipped.map(l=>({name:l.name,reason:l.reason}))})},Q=async(e,s,i,p)=>{const{createRemoteClient:g,detectRemoteProvider:n}=await import("../packem_chunks/detect.js"),u=await n(e.cwd,i,e.config.provider),t=g(u,{githubHost:e.config.githubHost,gitlabHost:e.config.gitlabHost,httpProxy:e.config.httpProxy}),o=await t.detectRepoSlug(e.cwd,i);if(!o)return;const h=typeof e.config.aggregateRelease=="object"?e.config.aggregateRelease:{enabled:e.config.aggregateRelease===!0},r=e.config.publish?.draftRelease===!0,c=e.config.publish?.discussionCategory,w=e.config.publish?.addReleases;if(h.enabled){const a=new Date().toISOString().slice(0,10),$=(h.title??"Release {date}").replaceAll("{date}",a),k=`release-${a}`,A=s.published.map(d=>`- \`${d.name}\` → ${d.version}`).join(`
10
+ `);try{const d=await t.createRelease(i,{body:A,cwd:e.cwd,discussionCategory:c,draft:r,repo:o,tag:k,title:$});if(d?.url)for(const T of s.published)T.url=d.url}catch{}return}const{defaultTagFor:y,renderTagPattern:C}=await import("../packem_chunks/git.js"),P=e.config.releaseTagPattern,R=e.channel?.tag,l=e.config.publish?.releaseAssets??{},m=new Date().toISOString().slice(0,10),f=z(e.config.changelog),b=K(e.plan.consumedChangeFiles??[],{internalAuthors:f});for(const a of p.groups){const v=a.members.map($=>`- \`${$}\` → ${s.published.find(k=>k.name===$)?.version??a.version}`).join(`
11
+ `);try{const $=await t.createRelease(i,{body:v,cwd:e.cwd,discussionCategory:c,draft:r,prerelease:a.version.includes("-"),repo:o,tag:a.tag,title:`${a.name} ${a.version}`});if($?.url)for(const k of s.published)a.members.includes(k.name)&&(k.url=$.url)}catch($){console.warn(`createRelease failed for group ${a.name} (tag ${a.tag}): ${$.message}`)}}for(const a of s.published){if(p.grouped.has(a.name))continue;const $=e.perPackageConfig.get(a.name)?.releaseTagPattern??P,k=$?C($,{channel:R,name:a.name,version:a.version}):y(a.name,a.version),A=a.version.includes("-");let d=`Release of ${a.name}@${a.version}.`;if(a.stageId&&(d=`${d}
12
+
13
+ > ⏳ **Staged — not yet installable.** Approve via \`vis release stage approve ${a.stageId}\` or the npmjs.com web UI.`),l.stampHashes&&a.tarball&&(d=`${d}
14
+
15
+ ### Tarball integrity
16
+
17
+ - size: \`${a.tarball.size}\` bytes
18
+ - sha256: \`${a.tarball.sha256}\`
19
+ - sha512: \`${a.tarball.sha512}\``),w!==void 0&&w!==!1)try{const N=k.lastIndexOf("@"),S=N>0?k.slice(0,N+1):"",j=await t.listRecentReleases(i,{cwd:e.cwd,excludeTag:k,limit:5,repo:o,tagPrefix:S}),I=J(j);I&&(d=w==="top"?`${I}
20
+
21
+ ${d}`:`${d}
22
+
23
+ ${I}`)}catch{}const{releaseNoteTemplate:T}=e.config;if(T){const S=e.plan.releases.find(j=>j.name===a.name)?.oldVersion??"";d=Y(d,T,{contributors:b,date:m,name:a.name,previousVersion:S,repo:o,version:a.version})}const H=[];l.uploadTarball&&a.tarball&&H.push(a.tarball.path);try{const N=await t.createRelease(i,{assets:H.length>0?H:void 0,body:d,cwd:e.cwd,discussionCategory:c,draft:r,prerelease:A,repo:o,tag:k,title:`${a.name} v${a.version}`});N?.url&&(a.url=N.url)}catch(N){console.warn(`createRelease failed for ${a.name}@${a.version} (tag ${k}): ${N.message}`)}}},Z=async(e,s,i)=>{const{changesDir:p,options:g,persistState:n,result:u,runner:t,state:o}=s,{writeStagedRegistry:h}=await import("../packem_chunks/staged-registry.js");if(!g.dryRun&&u.published.length>0&&u.tagsPushed){e.config.publish?.noRelease!==!0&&await Q(e,u,t,i);try{const{walkSuccessfulRelease:r}=await import("../packem_chunks/success-walk.js"),{createRemoteClient:c,detectRemoteProvider:w}=await import("../packem_chunks/detect.js"),{resolveFormatter:y}=await import("../packem_chunks/resolveFormatter.js"),C=await w(e.cwd,t,e.config.provider),P=c(C,{githubHost:e.config.githubHost,gitlabHost:e.config.gitlabHost,httpProxy:e.config.httpProxy}),R=await P.detectRepoSlug(e.cwd,t),l=await y(e.config.changelog,e.cwd),{recordRecentlyWalked:m}=await import("../packem_chunks/staged-registry.js"),f=new Set([...o.walked??[],...(s.stagedRegistry.recentlyWalked??[]).map(a=>a.key)]),b={...u,published:u.published.filter(a=>!f.has(`${a.name}@${a.version}`))};if(b.published.length>0){const a=await r(e,b,t,{client:P,formatter:l,repo:R}),v=b.published.map($=>`${$.name}@${$.version}`);o.walked=[...o.walked??[],...v],await n(),s.stagedRegistry=m(s.stagedRegistry,v),a.warnings.length>0&&e.plan.warnings.push(...a.warnings)}}catch(r){e.plan.warnings.push(`successWalk: could not run post-release walk: ${r.message}`)}if(e.config.notifications)try{const{dispatchNotifications:r}=await import("../packem_chunks/interface.js"),{createRemoteClient:c,detectRemoteProvider:w}=await import("../packem_chunks/detect.js"),y=await w(e.cwd,t,e.config.provider),P=await c(y,{githubHost:e.config.githubHost,gitlabHost:e.config.gitlabHost,httpProxy:e.config.httpProxy}).detectRepoSlug(e.cwd,t);let R;try{const f=`${e.cwd}/package.json`,b=await import("node:fs/promises");R=JSON.parse(await b.readFile(f,"utf8")).name}catch{}const l=new Set([...o.notified??[],...(s.stagedRegistry.recentlyNotified??[]).map(f=>f.key)]),m=u.published.filter(f=>!l.has(`${f.name}@${f.version}`));if(m.length>0){const f=await r(e.config.notifications,{channel:e.channel?.tag,completedAt:new Date().toISOString(),...R===void 0?{}:{monorepoName:R},published:m.map(b=>({name:b.name,tag:e.channel?.tag,...b.url===void 0?{}:{url:b.url},version:b.version})),...P===void 0?{}:{repo:P},skipped:u.skipped.map(b=>({name:b.name,reason:b.reason}))},{warn:b=>e.plan.warnings.push(b)});if(f.succeeded.length>0){const b=m.map(v=>`${v.name}@${v.version}`);o.notified=[...o.notified??[],...b],await n();const{recordRecentlyNotified:a}=await import("../packem_chunks/staged-registry.js");s.stagedRegistry=a(s.stagedRegistry,b)}if(f.failed.length>0||f.succeeded.length>0){const b=f.succeeded.length+f.failed.length;if(f.failed.length>0){e.plan.warnings.push(`[notifications] dispatched ${f.succeeded.length}/${b} channels${f.succeeded.length>0?` (succeeded: ${f.succeeded.join(", ")})`:""}; ${f.failed.length} failed.`);for(const a of f.failed)e.plan.warnings.push(`[notifications:${a.id}] ${a.error}`)}}}}catch(r){e.plan.warnings.push(`notifications: dispatch failed: ${r.message}`)}if(!g.dryRun)try{const r=await h(e.cwd,p,s.stagedRegistry);if(r.changed){const{stageAndCommitFile:c}=await import("../packem_chunks/git.js");try{await c({cwd:e.cwd,runner:t},r.path,"chore(release): record cross-runner notify/walk dedupe [skip ci]",{author:e.config.gitUser,push:!g.noPush,sign:e.config.gitSignCommits===!0})}catch(w){process.stderr.write(`[vis release] Warning: could not commit ${r.path} (notify/walk dedupe): ${w.message}
24
+ `)}}}catch(r){process.stderr.write(`[vis release] Warning: could not update cross-runner dedupe registry: ${r.message}
25
+ `)}}},x=async e=>{const{defaultTagFor:s,floatingMajorTagFor:i,renderTagPattern:p}=await import("../packem_chunks/git.js"),{resolveSyncTagGroups:g}=await import("../packem_chunks/group-tags.js"),n=e.plan.releases.filter(r=>e.depGraph.getPackage(r.name)?.manifest?.private!==!0).map(r=>({name:r.name,version:r.newVersion})),u=g(e.config,n),t=u.groups.map(r=>r.tag),o=[],h=!!e.channel?.prerelease||!!e.preMode;for(const{name:r,version:c}of n){if(u.grouped.has(r))continue;const w=e.perPackageConfig.get(r),y=w?.releaseTagPattern??e.config.releaseTagPattern;if(t.push(y?p(y,{channel:e.channel?.tag,name:r,version:c}):s(r,c)),e.config.floatingMajorTag===!0&&!h&&!y?.includes("{major}")&&w?.skipNpmPublish!==!0){const C=i(r,c);C!==void 0&&o.push(C)}}return{created:t,updated:o}},ee=async(e,s,i)=>{if((await s.run("git",["remote","get-url","--push","origin"],{cwd:e.cwd,silent:!0})).exitCode!==0)return;const{getCurrentBranch:g,resolvePushCredentials:n,verifyPushAccess:u}=await import("../packem_chunks/git.js"),t={cwd:e.cwd,runner:s},o=await u(t);if(o!==void 0)return`Cannot push to origin, nothing was published. Set VIS_GH_TOKEN (or GITHUB_TOKEN / GITLAB_TOKEN) with write access, or pass --no-push. git said: ${o}`;const{createRemoteClient:h,detectRemoteProvider:r}=await import("../packem_chunks/detect.js");let c;try{c=await r(e.cwd,s,e.config.provider)}catch{return}if(c!=="github")return;const y=await h(c,{githubHost:e.config.githubHost,httpProxy:e.config.httpProxy}).detectRepoSlug(e.cwd,s);if(!y)return;const C=await n(t),P={...process.env};C!==void 0&&(P.GH_TOKEN=C.token),e.config.githubHost&&(P.GH_HOST=e.config.githubHost),e.config.httpProxy&&(P.HTTPS_PROXY=e.config.httpProxy,P.HTTP_PROXY=e.config.httpProxy);const{checkGithubPushRules:R}=await import("../packem_chunks/github-push-rules.js"),l=i.noTag?{created:[],updated:[]}:await x(e),m=await R(s,{branch:await g(t),createdTags:l.created,cwd:e.cwd,env:P,repo:y,signedCommits:e.config.gitSignCommits===!0,updatedTags:l.updated});for(const f of m.warnings)process.stderr.write(`[vis release] Warning: ${f}
26
+ `);if(m.blocked.length>0)return`GitHub push rules would reject this release, nothing was published:
27
+ - ${m.blocked.join(`
28
+ - `)}
29
+ Grant the pushing token a bypass, adjust the ruleset, or pass --no-push / --no-tag.`},ae=async(e,s,i,p)=>{if(!i.dryRun&&e.channel?.mode==="version-pr"){const{createRemoteClient:g,detectRemoteProvider:n}=await import("../packem_chunks/detect.js"),u=await n(e.cwd,s,e.config.provider),o=await g(u,{githubHost:e.config.githubHost,gitlabHost:e.config.gitlabHost,httpProxy:e.config.httpProxy}).detectRepoSlug(e.cwd,s),h=e.config.versionPr?.branch??"vis-release/version-packages";if(o)try{const r=await s.run("gh",["pr","list","--head",h,"--state","open","--json","number"],{cwd:e.cwd,silent:!0});if(r.exitCode===0&&r.stdout.trim()&&r.stdout.trim()!=="[]"){const c=JSON.parse(r.stdout);if(c[0])return p.failed.push({name:"_preflight",reason:`Open release PR #${c[0].number} exists. Merge or close it before publishing locally. (Override: --no-push then \`git push --tags\` manually.)`}),!0}}catch{}}if(!i.dryRun&&e.config.prePublishCommand)try{await F(e.cwd,e.config.prePublishCommand,"prePublishCommand")}catch(g){return p.failed.push({name:"_prePublishCommand",reason:g.message}),!0}if(!i.dryRun&&!i.noPush){const g=await ee(e,s,{noTag:i.noTag===!0});if(g!==void 0)return p.failed.push({name:"_pushAccess",reason:g}),!0}return!1},se=async(e,s)=>{const{changesDir:i,options:p,runner:g}=s,{writeStagedRegistry:n}=await import("../packem_chunks/staged-registry.js");if(!p.dryRun){const u=s.priorRegistrySnapshot.pending.length,t=s.stagedRegistry.pending.length,o=await n(e.cwd,i,s.stagedRegistry);if(o.changed){const{stageAndCommitFile:h}=await import("../packem_chunks/git.js");let r;if(o.removed)r="chore(release): clear pending stage registry [skip ci]";else if(t>u){const c=t-u;r=`chore(release): record ${c} new pending stage${c===1?"":"s"} [skip ci]`}else if(t<u){const c=u-t;r=`chore(release): drain ${c} resolved stage${c===1?"":"s"} [skip ci]`}else r=`chore(release): update pending stage registry (${t} pending) [skip ci]`;try{await h({cwd:e.cwd,runner:g},o.path,r,{author:e.config.gitUser,push:!p.noPush,sign:e.config.gitSignCommits===!0})}catch(c){process.stderr.write(`[vis release] Warning: could not commit ${o.path}: ${c.message}
30
+ `)}}}},ie=async(e,s)=>{const{options:i,result:p,runner:g}=s;if(!i.dryRun&&p.published.length>0&&e.config.workspaceChangelog!==!1){const n=e.config.workspaceChangelog,u=typeof n=="object"?n:void 0,t=typeof e.config.aggregateRelease=="object"?e.config.aggregateRelease.enabled:e.config.aggregateRelease===!0;if(u!==void 0||t)try{const{writeWorkspaceChangelogWave:o}=await import("../packem_chunks/workspace.js"),h=new Set(p.published.map(w=>w.name)),r=e.plan.releases.filter(w=>h.has(w.name)),c=await o({changelogConfig:e.config.changelog,cwd:e.cwd,workspaceChangelog:e.config.workspaceChangelog},r);if(c)try{const{stageAndCommitFile:w}=await import("../packem_chunks/git.js");await w({cwd:e.cwd,runner:g},c,"chore(release): record wave [skip ci]",{author:e.config.gitUser,push:!i.noPush,sign:e.config.gitSignCommits===!0})}catch(w){process.stderr.write(`[vis release] Warning: could not commit workspace CHANGELOG.md: ${w.message}
31
+ `)}}catch(o){process.stderr.write(`[vis release] Warning: could not write workspace CHANGELOG.md wave entry: ${o.message}
32
+ `)}}},G=async(e,s,i,p,g)=>{const{stageAndCommitFile:n}=await import("../packem_chunks/git.js"),{stateFilePath:u}=await import("../packem_chunks/state.js");try{const t=await n({cwd:e.cwd,runner:s},u(e.cwd,i,!0),`chore(release): ${p} publish lock [skip ci]`,{author:e.config.gitUser,push:!g.noPush,sign:e.config.gitSignCommits===!0});!g.noPush&&t.committed&&!t.pushed&&process.stderr.write(`[vis release] Warning: publish lock (${p}) was committed locally but could not be pushed — cross-runner resume may use a stale lock.
33
+ `)}catch(t){process.stderr.write(`[vis release] Warning: could not commit publish lock (${p}): ${t.message}
34
+ `)}},re=async(e,s,i,p)=>{const{filterPlanByState:g,newState:n,readState:u,writeState:t}=await import("../packem_chunks/state.js"),{readStagedRegistry:o}=await import("../packem_chunks/staged-registry.js"),h=e.config.changesDir??V,r=e.config.publish?.lockInGit===!0;let c=i.resume||r?await u(e.cwd,h,r):void 0;c&&r&&(c.channel=e.channel?.tag);const w=async()=>{i.dryRun||!c||(await t(e.cwd,h,c,r),r&&await G(e,s,h,"progress",{noPush:i.noPush}))};let y=await o(e.cwd,h);await W(e,"publish",y,{runner:s}),y=await o(e.cwd,h);const C={...y,pending:[...y.pending]};let{releases:P}=e.plan;return c?P=g(P,c):(c=n(e.channel?.tag,e.plan.releases),i.dryRun||(await t(e.cwd,h,c,r),r&&await G(e,s,h,"open",{noPush:i.noPush}))),{changesDir:h,lockInGit:r,options:i,persistState:w,priorRegistrySnapshot:C,releases:P,result:p,runner:s,stagedRegistry:y,state:c}},te=async(e,s,i)=>{const{changesDir:p,lockInGit:g,options:n,persistState:u,result:t,runner:o,state:h}=s,{clearState:r}=await import("../packem_chunks/state.js");if(!n.dryRun&&!n.noTag&&t.published.length>0){const{createOrUpdateFloatingTag:c,createTag:w,defaultTagFor:y,floatingMajorTagFor:C,pushTags:P,renderTagPattern:R}=await import("../packem_chunks/git.js"),l=e.config.releaseTagPattern,m=e.channel?.tag,f=e.config.floatingMajorTag===!0,b=!!e.channel?.prerelease||!!e.preMode;for(const{name:a,version:v}of t.published){if(i.grouped.has(a))continue;const k=e.perPackageConfig.get(a)?.releaseTagPattern??l,A=k?R(k,{channel:m,name:a,version:v}):y(a,v);try{await w({cwd:e.cwd,runner:o},A,`Release ${a}@${v}`,{signing:e.config.signing,skipRemoteCheck:e.firstRelease}),t.tags.push(A)}catch(S){e.firstRelease&&S instanceof O&&S.code==="TAG_COLLISION"?t.skipped.push({name:A,reason:"tag-creation: tag already exists (first-release — skipped)"}):t.failed.push({name:A,reason:`tag-creation: ${S.message}`})}const d=e.depGraph.getPackage(a),T=e.perPackageConfig.get(a),H=d?.manifest?.private===!0,N=T?.skipNpmPublish===!0;if(f&&!b&&!k?.includes("{major}")&&!H&&!N){const S=C(a,v);if(S!==void 0)try{await c({cwd:e.cwd,runner:o},S,{push:!n.noPush,signing:e.config.signing}),t.tags.push(S)}catch(j){t.skipped.push({name:S,reason:`floating-major-tag: ${j.message}`})}}}for(const a of i.groups)try{await w({cwd:e.cwd,runner:o},a.tag,`Release ${a.name} ${a.version}`,{signing:e.config.signing,skipRemoteCheck:e.firstRelease}),t.tags.push(a.tag)}catch(v){e.firstRelease&&v instanceof O&&v.code==="TAG_COLLISION"?t.skipped.push({name:a.tag,reason:"tag-creation: tag already exists (first-release — skipped)"}):t.failed.push({name:a.tag,reason:`tag-creation: ${v.message}`})}if(!n.noPush&&t.tags.length>0)try{await P({cwd:e.cwd,runner:o}),t.tagsPushed=!0}catch(a){t.tagsPushed=!1,t.failed.push({name:"_pushTags",reason:`git push --tags failed: ${a.message}. Retry with: git push --tags`})}h.tagged=[...t.tags],h.pushed=t.tagsPushed,await u(),t.failed.length===0&&!n.dryRun&&(await r(e.cwd,p,g),g&&await G(e,o,p,"close",{noPush:n.noPush}))}},he=async(e,s={})=>{const i={failed:[],published:[],skipped:[],tags:[],tagsPushed:!1},p=_();if(e.plan.releases.length===0||await ae(e,p,s,i))return i;const g=e.config.changesDir??V,{acquireLock:n,releaseLock:u}=await import("../packem_chunks/state.js");let t=!1;if(!s.dryRun)try{await n(e.cwd,g),t=!0}catch(o){return i.failed.push({name:"_lock",reason:o.message}),i}try{const o=await re(e,p,s,i);await X(e,o);const{resolveSyncTagGroups:h}=await import("../packem_chunks/group-tags.js"),r=h(e.config,i.published);if(await te(e,o,r),await se(e,o),await ie(e,o),await Z(e,o,r),!s.dryRun&&e.config.postPublishCommand)try{await F(e.cwd,e.config.postPublishCommand,"postPublishCommand")}catch(c){i.failed.push({name:"_postPublishCommand",reason:c.message})}return i}finally{t&&await u(e.cwd,g)}};export{he as p};