@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,11 @@
1
+ import{createRequire as q}from"node:module";import{e as m,z as U,v as S,U as J,m as z}from"./index-BzhrR_iC.js";import{s as A}from"./registry-CkoaWkjP.js";import{d as M,f as E}from"./detect-CbMRSXkM.js";import{y as K}from"./isAccessibleSync-DYKTrrvc-C-_5cgwu.js";import{h as ne}from"./writeFileSync-DJoHk3Ks-BPRoepNw.js";import{s as se}from"./watch-CcTketln.js";let B;const V=e=>(B??=q(import.meta.url))(e),y=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,x=e=>{if(typeof y<"u"&&y.versions&&y.versions.node){const[t,n]=y.versions.node.split(".").map(Number);if(t>22||t===22&&n>=3||t===20&&n>=16)return y.getBuiltinModule(e)}return V(e)},{createHash:v}=x("node:crypto"),{spawnSync:G,spawn:H}=x("node:child_process"),{openSync:Y,writeSync:Q,closeSync:X,statSync:Z,readFileSync:O,mkdirSync:ee,writeFileSync:te}=x("node:fs"),{pathToFileURL:re}=x("node:url"),{availableParallelism:F}=x("node:os"),oe={error:"error",info:"info",information:"info",warning:"warning"},Ye={argsCheck:(e,t)=>k(e,t,!1),argsFix:(e,t)=>k(e,t,!0),bin:()=>["pnpm","exec","biome"],cacheKey:(e,t)=>{const n=["biome",e.declaredVersion??"unknown",e.configFile??"no-config",t.maxWarnings===void 0?"":`mw=${t.maxWarnings}`,t.quiet?"q":"",...t.extraArgs??[]];return v("sha256").update(n.join("|")).digest("hex").slice(0,16)},detect:(e,t)=>{const n=M(t,A.biome.packageNames[0]),r=E(e,A.biome.configFiles);if(!(!n&&!r))return{adapter:"biome",configFile:r,declared:!!n,declaredVersion:n,root:e}},extensions:["astro","cjs","css","cts","js","json","jsonc","jsx","mjs","mts","svelte","ts","tsx","vue"],id:"biome",kind:"both",parse:(e,t)=>{if(!e.stdout.trim())return[];let n;try{n=JSON.parse(e.stdout)}catch{return[{adapter:"biome",file:t.root,fixable:!1,message:`biome output was not valid JSON (exit ${e.exitCode})`,severity:"error"}]}const r=[];for(const o of n.diagnostics??[]){const s=o.location?.start,i=o.location?.end,c=ie(t.root,o.location?.path),u=o.category??"",a=u==="format"||u.startsWith("format/");r.push({adapter:"biome",column:s?.column&&s.column>0?s.column:void 0,endColumn:i?.column&&i.column>0?i.column:void 0,endLine:i?.line&&i.line>0?i.line:void 0,file:c,fixable:!0,line:s?.line&&s.line>0?s.line:void 0,message:a?"Code style issues would be auto-fixed":o.message??"",ruleId:u||void 0,severity:oe[o.severity??""]??"warning"})}return r}},k=(e,t,n)=>{const r=["check","--reporter=json"];return n&&r.push("--write"),typeof t.maxWarnings=="number"&&r.push(`--max-diagnostics=${String(t.maxWarnings)}`),t.extraArgs?.length&&r.push(...t.extraArgs),r.push(...e),r},ie=(e,t)=>{const n=typeof t=="string"?t:t?.file;return n?n.startsWith("/")||/^[a-z]:[\\/]/i.test(n)?n:m(e,n):e},j="pyproject.toml",ce=/^\[tool\.ruff(?:\.[\w-]+)*\]\s*$/m,ae=/^Would reformat:?\s+(.+)$/,le=e=>{const t=m(e,j);if(!K(t))return!1;try{const n=U(t);return ce.test(n)}catch{return!1}},N=e=>(t,n)=>{const r=A.ruff.packageNames.map(c=>M(n,c)).find(c=>c!==void 0),o=E(t,A.ruff.configFiles),s=o?void 0:le(t)?m(t,j):void 0,i=o??s;if(!(!r&&!i))return{adapter:e,configFile:i,declared:!!r,declaredVersion:r,root:t}},ue=e=>e.startsWith("/")||/^[a-z]:[\\/]/i.test(e),P=(e,t)=>e?ue(e)?e:m(t,e):t,fe=e=>ae.exec(e)?.[1]?.trim(),Qe={argsCheck:(e,t)=>I(e,t,!1),argsFix:(e,t)=>I(e,t,!0),bin:()=>["ruff","check"],cacheKey:(e,t)=>{const n=["ruff-check",e.declaredVersion??"unknown",e.configFile??"no-config",t.maxWarnings===void 0?"":`mw=${t.maxWarnings}`,t.quiet?"q":"",...t.extraArgs??[]];return v("sha256").update(n.join("|")).digest("hex").slice(0,16)},detect:N("ruff-check"),extensions:["py","pyi"],id:"ruff-check",kind:"lint",parse:(e,t)=>{if(!e.stdout.trim())return[];let n;try{n=JSON.parse(e.stdout)}catch{return[{adapter:"ruff-check",file:t.root,fixable:!1,message:`ruff check output was not valid JSON (exit ${e.exitCode})`,severity:"error"}]}const r=[];for(const o of n){const s=o.location,i=o.end_location;r.push({adapter:"ruff-check",column:s?.column,endColumn:i?.column,endLine:i?.row,file:P(o.filename,t.root),fixable:!!o.fix,line:s?.row,message:o.message??"",ruleId:o.code,severity:"warning"})}return r}},Xe={argsCheck:(e,t)=>R(e,t,!1),argsFix:(e,t)=>R(e,t,!0),bin:()=>["ruff","format"],cacheKey:(e,t)=>{const n=["ruff-fmt",e.declaredVersion??"unknown",e.configFile??"no-config",t.quiet?"q":"",...t.extraArgs??[]];return v("sha256").update(n.join("|")).digest("hex").slice(0,16)},detect:N("ruff-fmt"),extensions:["py","pyi"],id:"ruff-fmt",kind:"fmt",parse:(e,t)=>{if(e.exitCode===0)return[];const n=[],r=new Set;for(const o of e.stdout.split(/\r?\n/)){const s=fe(o);!s||r.has(s)||(r.add(s),n.push({adapter:"ruff-fmt",file:P(s,t.root),fixable:!0,message:"Code style issues would be auto-fixed",severity:"info"}))}return n}},I=(e,t,n)=>{const r=["--output-format=json"];return n&&r.push("--fix"),t.quiet&&r.push("--quiet"),t.extraArgs?.length&&r.push(...t.extraArgs),r.push(...e),r},R=(e,t,n)=>{const r=[];return n||r.push("--check"),t.quiet&&r.push("--quiet"),t.extraArgs?.length&&r.push(...t.extraArgs),r.push(...e),r},Ze=(e,t)=>{const n=w(e,["diff","--name-only","--diff-filter=ACMR","-z",`${t}...HEAD`]);if(n===void 0)return;const r=w(e,["diff","--name-only","--diff-filter=ACMR","-z"]),o=w(e,["diff","--name-only","--diff-filter=ACMR","--cached","-z"]),s=w(e,["ls-files","--others","--exclude-standard","-z"]),i=new Set;for(const c of[n,r??"",o??"",s??""])for(const u of c.split("\0"))u.length!==0&&i.add(S(u)?u:m(e,u));return[...i].sort()},et=e=>{const t=w(e,["diff","--name-only","--diff-filter=ACMR","--cached","-z"]);if(t===void 0)return;const n=new Set;for(const r of t.split("\0"))r.length!==0&&n.add(S(r)?r:m(e,r));return[...n].sort()},w=(e,t)=>{const n=G("git",[...t],{cwd:e,encoding:"utf8",timeout:1e4});if(n.status===0)return n.stdout},tt=(e,t)=>{const n=new Set(t.map(s=>s.toLowerCase())),r=[],o=new Set;for(const s of e){const i=s.lastIndexOf(".");if(i===-1||i===s.length-1)continue;const c=s.slice(i+1).toLowerCase();n.has(c)&&(o.has(s)||(o.add(s),r.push(s)))}return r},de=new Set(["-","stdout"]),T=e=>({close:()=>{},write:t=>{e.write(t)}}),pe=e=>{ne(z(e));const t=Y(e,"w");let n=[];return{close:()=>{n.length>0&&(Q(t,n.join("")),n=[]),X(t)},write:r=>{n.push(r)}}},nt=e=>{const{cwd:t,target:n}=e;if(n===void 0||de.has(n))return T(process.stdout);if(n==="stderr")return T(process.stderr);const r=S(n)?n:J(t,n);return pe(r)},C=["oxlint","oxfmt","biome","eslint","dprint","prettier","stylelint","ruff-check","ruff-fmt","markdownlint","shellcheck","typecheck"],rt=(e,t)=>{const n=new Map(e.map(i=>[i.id,i])),r=[],o=new Set,s=t&&t.length>0?t:C;for(const i of s){const c=n.get(i);c&&!o.has(i)&&(r.push(c),o.add(i))}if(t&&t.length>0)for(const i of C){const c=n.get(i);c&&!o.has(i)&&(r.push(c),o.add(i))}for(const i of e)o.has(i.id)||(r.push(i),o.add(i.id));return r},st=(e,t,n)=>{const r=[];for(const o of t){const s=e.get(o.id);s&&me(o.kind,n)&&r.push({adapter:o,presence:s})}return r},me=(e,t)=>e===t||e==="both",ot=(e,t,n={})=>{const r=new Map;for(const o of e){const s=he(o),i=ge(s,t,n);if(!i)continue;const c=r.get(i);c?c.push(o):r.set(i,[o])}return r},he=e=>{const t=e.lastIndexOf(".");return t===-1||t===e.length-1?"":e.slice(t+1).toLowerCase()},ge=(e,t,n)=>{const r=n[e];if(r&&t.some(o=>o.adapter.id===r))return r;for(const{adapter:o}of t)if(o.extensions.includes(e))return o.id},it=(e,t,n)=>{const r=new Set(C),o=new Set([...n?.order??[],...Object.keys(n?.adapters??{})]);for(const s of o)r.has(s)||e.warn(`vis.config ${t}: unknown adapter "${s}" is ignored.`)},ye=e=>e==="error"?"error":e==="warning"?"warning":"notice",D=e=>e.replaceAll("%","%25").replaceAll("\r","%0D").replaceAll(`
2
+ `,"%0A"),_=e=>D(e).replaceAll(",","%2C").replaceAll(":","%3A").replaceAll("=","%3D"),we=(e,t)=>t&&e.startsWith(`${t}/`)?e.slice(t.length+1):e,xe=(e,t)=>e.file!==t.file?e.file<t.file?-1:1:(e.line??0)-(t.line??0)||(e.column??0)-(t.column??0),ve=(e,t)=>{const n=ye(e.severity),r=we(e.file,t),o=e.ruleId?`${e.adapter}(${e.ruleId})`:e.adapter,s=[`file=${_(r)}`];return e.line!==void 0&&s.push(`line=${String(e.line)}`),e.endLine!==void 0&&s.push(`endLine=${String(e.endLine)}`),e.column!==void 0&&s.push(`col=${String(e.column)}`),e.endColumn!==void 0&&s.push(`endColumn=${String(e.endColumn)}`),s.push(`title=${_(o)}`),`::${n} ${s.join(",")}::${D(e.message)}
3
+ `},ct=e=>e.runs.flatMap(n=>[...n.findings]).sort(xe).map(n=>ve(n,e.workspaceRoot)).join(""),g=e=>e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&apos;"),Se=e=>`<![CDATA[${e.replaceAll("]]>","]]]]><![CDATA[>")}]]>`,Ae=(e,t)=>e.file!==t.file?e.file<t.file?-1:1:(e.line??0)-(t.line??0)||(e.column??0)-(t.column??0),$e=e=>e==="error"?"error":e==="warning"?"warning":"info",Ce=(e,t)=>{let{file:n}=e;return t&&e.file.startsWith(`${t}/`)&&(n=e.file.slice(t.length+1)),e.line===void 0?n:e.column===void 0?`${n}:${String(e.line)}`:`${n}:${String(e.line)}:${String(e.column)}`},Fe=(e,t,n)=>{const r=Ce(e,n),o=$e(e.severity),s=e.ruleId?`[${e.ruleId}] ${e.message}`:e.message;return[` <testcase classname="${g(t)}" name="${g(r)}">`,` <failure type="${g(o)}" message="${g(s)}">${Se(e.message)}</failure>`," </testcase>",""].join(`
4
+ `)},ke=(e,t,n)=>{const r=[...e.findings].sort(Ae),o=r.filter(f=>f.severity==="error").length,s=r.filter(f=>f.severity==="warning").length,i=r.length,c=(e.durationMs/1e3).toFixed(3),u=r.map(f=>Fe(f,e.adapter,n)).join("");return` <testsuite ${[`name="${g(e.adapter)}"`,`tests="${String(i)}"`,`failures="${String(o)}"`,'errors="0"',`skipped="${String(s)}"`,`time="${c}"`,`timestamp="${t}"`].join(" ")}>
5
+ ${u} </testsuite>
6
+ `},at=e=>{const t=(e.now??new Date).toISOString(),n=e.suiteName??"vis-lint-fmt",r=e.runs.map(a=>ke(a,t,e.workspaceRoot)).join(""),o=e.runs.reduce((a,f)=>a+f.findings.length,0),s=e.runs.reduce((a,f)=>a+f.findings.filter(l=>l.severity==="error").length,0),i=e.runs.reduce((a,f)=>a+f.findings.filter(l=>l.severity==="warning").length,0),c=(e.runs.reduce((a,f)=>a+f.durationMs,0)/1e3).toFixed(3);return`<?xml version="1.0" encoding="UTF-8"?>
7
+ <testsuites ${[`name="${g(n)}"`,`tests="${String(o)}"`,`failures="${String(s)}"`,'errors="0"',`skipped="${String(i)}"`,`time="${c}"`].join(" ")}>
8
+ ${r}</testsuites>
9
+ `},Ie="2.1.0",Re="https://json.schemastore.org/sarif-2.1.0.json",Te=e=>e==="error"?"error":e==="warning"?"warning":"note",_e=(e,t)=>t&&e.startsWith(`${t}/`)?{uri:e.slice(t.length+1),uriBaseId:"SRCROOT"}:{uri:e},be=e=>{const{href:t}=re(e);return t.endsWith("/")?t:`${t}/`},Le=(e,t)=>e.file!==t.file?e.file<t.file?-1:1:(e.line??0)-(t.line??0)||(e.column??0)-(t.column??0),Me=e=>{const t=new Map;for(const n of e)n.ruleId&&(t.has(n.ruleId)||t.set(n.ruleId,{id:n.ruleId,name:n.ruleId}));return[...t.values()]},Ee=(e,t)=>{const{uri:n,uriBaseId:r}=_e(e.file,t),o={artifactLocation:r?{uri:n,uriBaseId:r}:{uri:n}};if(e.line!==void 0){const i={startLine:e.line};e.column!==void 0&&(i.startColumn=e.column),e.endLine!==void 0&&(i.endLine=e.endLine),e.endColumn!==void 0&&(i.endColumn=e.endColumn),o.region=i}const s={level:Te(e.severity),locations:[{physicalLocation:o}],message:{text:e.message}};return e.ruleId&&(s.ruleId=e.ruleId),s},Oe=(e,t)=>{const n=[...e.findings].sort(Le),r=Me(n),o={name:e.adapter,rules:r};e.presence?.declaredVersion&&(o.version=e.presence.declaredVersion);const s={results:n.map(i=>Ee(i,t)),tool:{driver:o}};return t&&(s.originalUriBaseIds={SRCROOT:{uri:be(t)}}),s},lt=e=>{const t={$schema:Re,runs:e.runs.map(n=>Oe(n,e.workspaceRoot)),version:Ie};return`${JSON.stringify(t,void 0,2)}
10
+ `},b={error:3,info:1,warning:2},ut=e=>{const t=[],n=[];let r,o=!1;for(const s of e){n.push({adapter:s.adapter,durationMs:s.durationMs,exitCode:s.exitCode,findingCount:s.findings.length}),s.exitCode!==0&&s.exitCode!==null&&s.findings.length===0&&(o=!0);for(const i of s.findings)t.push(i),(!r||b[i.severity]>b[r])&&(r=i.severity)}return{findings:t,hadProcessFailure:o,maxSeverity:r,runs:n}},ft=e=>{const t=new Map;for(const n of e){const r=t.get(n.file);r?r.push(n):t.set(n.file,[n])}return t},dt=e=>e.hadProcessFailure||e.maxSeverity==="error"?1:0,je=(e,t)=>{if(t==="fix"||process.env.VIS_NO_CACHE==="1"||e.length===0)return!1;for(const n of e)if(n==="."||n==="./"||n==="..")return!1;return!0},Ne=e=>{try{const t=O(e);return v("sha256").update(t).digest("hex")}catch{return}},Pe=(e,t,n,r,o)=>{const s=e.cacheKey(t,r),i=[];for(const u of[...n].sort()){const a=S(u)?u:m(t.root,u);try{Z(a)}catch{return}const f=Ne(a);if(!f)return;i.push({hash:f,path:a})}const c=v("sha256");c.update(e.id),c.update("\0"),c.update(s),c.update("\0"),c.update(o);for(const u of i)c.update("\0"),c.update(u.path),c.update("\0"),c.update(u.hash);return{fileHashes:i,key:c.digest("hex")}},W=(e,t)=>m(e,"lint-fmt",t),De=(e,t,n)=>{const r=m(W(e,t.id),`${n}.json`);try{const o=O(r,"utf8"),s=JSON.parse(o);return s.schema!==1?void 0:s}catch{return}},We=(e,t,n,r,o)=>{const s=W(e,t.id),i={fileHashes:o,result:r,savedAt:Date.now(),schema:1};try{ee(s,{recursive:!0}),te(m(s,`${n}.json`),JSON.stringify(i))}catch{}},L=async(e,t,n,r,o)=>{const s=e.bin(t),i=[...s.slice(1),...o==="fix"?e.argsFix(n,r):e.argsCheck(n,r)];return new Promise(c=>{const u=Date.now(),a=H(s[0],i,{cwd:t.root}),f=[],l=[];let h=!1;const p=setTimeout(()=>{h=!0,a.kill("SIGKILL")},6e4);a.stdout.on("data",d=>f.push(d)),a.stderr.on("data",d=>l.push(d)),a.on("error",d=>{clearTimeout(p),c({durationMs:Date.now()-u,exitCode:null,stderr:d.message,stdout:""})}),a.on("close",d=>{clearTimeout(p),c({durationMs:Date.now()-u,exitCode:h?null:d,stderr:Buffer.concat(l).toString("utf8"),stdout:Buffer.concat(f).toString("utf8")})})})},pt=async(e,t,n,r=F())=>{if(e.length===0)return[];const{cacheRoot:o,concurrency:s}=typeof r=="number"?{concurrency:r}:{cacheRoot:r.cacheRoot,concurrency:r.concurrency??F()},i=async l=>{const h=l.options??t;if(o&&je(l.files,n)){const p=Pe(l.adapter,l.presence,l.files,h,n);if(p){const d=De(o,l.adapter,p.key);if(d)return d.result;const $=await L(l.adapter,l.presence,l.files,h,n);return $.exitCode!==null&&We(o,l.adapter,p.key,$,p.fileHashes),$}}return L(l.adapter,l.presence,l.files,h,n)};if(process.env.VIS_LINT_FMT_SERIAL==="1"){const l=[];for(const h of e)l.push(await i(h));return l}const c=Math.max(1,Math.min(s,e.length)),u=Array.from({length:e.length});let a=0;const f=async()=>{for(;;){const l=a;if(a+=1,l>=e.length)return;u[l]=await i(e[l])}};return await Promise.all(Array.from({length:c},()=>f())),u},qe=e=>{const t=new Set;for(const n of e)t.add(n.toLowerCase());return t},Be=(e,t)=>{const n=e.lastIndexOf(".");return n===-1||n===e.length-1?!1:t.has(e.slice(n+1).toLowerCase())},mt=async e=>{const{extensions:t,initialFiles:n,label:r,log:o,runCycle:s,workspaceRoot:i}=e,c=o??(p=>{process.stdout.write(`${p}
11
+ `)}),u=qe(t);await s(n),c(`▸ ${r}: watching workspace — press Ctrl-C to exit`);let a=new Set,f=!1;const l=async()=>{for(;a.size>0;){const p=[...a];a=new Set;try{await s(p)}catch(d){c(`✗ ${r}: watch cycle failed — ${d.message}`)}}},h=se({debounceMs:200,filter:p=>Be(p,u),onChange:async p=>{for(const d of p)a.add(S(d)?d:m(i,d));if(!f){f=!0;try{await l()}finally{f=!1}}},paths:[i]});await new Promise(p=>{const d=()=>{h.close(),process.off("SIGINT",d),process.off("SIGTERM",d),p()};process.once("SIGINT",d),process.once("SIGTERM",d)})};export{st as a,mt as b,Ze as c,Ye as d,Xe as e,ot as f,pt as g,ut as h,nt as i,lt as j,at as k,ct as l,dt as m,ft as n,Qe as o,tt as p,rt as r,et as s,it as w};
@@ -0,0 +1 @@
1
+ const h=(1n<<128n)-1n,e=(1n<<64n)-1n,U=(1n<<32n)-1n,y=0x9E3779B1n,C=0x85EBCA77n,D=0xC2B2AE3Dn,E=0x9E3779B185EBCA87n,s=0xC2B2AE3D27D4EB4Fn,S=0x165667B19E3779F9n,A=0x85EBCA77C2B2AE63n,N=0x27D4EB2F165667C5n,T=0x165667919E3779F9n,H=0x9FB21C651E98DF25n,L=64,w=L/8,X=8,F=Buffer.from("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e","hex"),V=t=>{let n=t&e;return n=(n&0x00000000FFFFFFFFn)<<32n|(n&0xFFFFFFFF00000000n)>>32n,n=(n&0x0000FFFF0000FFFFn)<<16n|(n&0xFFFF0000FFFF0000n)>>16n,n=(n&0x00FF00FF00FF00FFn)<<8n|(n&0xFF00FF00FF00FF00n)>>8n,n&e},d=t=>{let n=t;return n=(n&0x0000FFFFn)<<16n|(n&0xFFFF0000n)>>16n,n=(n&0x00FF00FFn)<<8n|(n&0xFF00FF00n)>>8n,n},Y=(t,n)=>(t&U)*(n&U)&e,j=(t,n)=>(t<<n|t>>32n-n)&U,m=(t,n)=>t^t>>n,M=t=>~t+1n&e,v=(t,n)=>{const o=t*n&h;return o&e^o>>64n},B=t=>{let n=t;return n^=n>>37n,n=n*T&e,n^=n>>32n,n},_=t=>{let n=t;return n^=n>>33n,n=n*s&e,n^=n>>29n,n=n*S&e,n^=n>>32n,n},K=(t,n,o,r=0,i=0)=>{for(let c=0;c<w;c++){const g=n.readBigUInt64LE(r+c*8),l=g^o.readBigUInt64LE(i+c*8);t[c^1]+=g,t[c]+=Y(l,l>>32n)}return t},P=(t,n,o,r,i=0)=>{for(let c=0;c<r;c++)K(t,n,o,i+c*L,c*8);return t},q=(t,n,o=0)=>{for(let r=0;r<w;r++){const i=n.readBigUInt64LE(o+r*8);let c=t[r];c=m(c,47n),c^=i,c*=y,t[r]=c&e}return t},f=(t,n,o,r)=>v(t[n]^o.readBigUInt64LE(r),t[n+1]^o.readBigUInt64LE(r+X)),R=(t,n,o,r)=>{let i=r;return i+=f(t,0,n,o+0),i+=f(t,2,n,o+16),i+=f(t,4,n,o+32),i+=f(t,6,n,o+48),B(i&e)},z=(t,n,o)=>{const r=Math.floor((o.byteLength-L)/8),i=L*r,c=Math.floor((n.byteLength-1)/i);for(let l=0;l<c;l++)P(t,n,o,r,l*i),q(t,o,o.byteLength-L);const g=Math.floor((n.byteLength-1-i*c)/L);return P(t,n,o,g,c*i),K(t,n,o,n.byteLength-L,o.byteLength-L-7),t},G=t=>{const n=Buffer.from(F),o=F.byteLength>>4;for(let r=0;r<o;r++){const i=n.readBigUInt64LE(r*16)+t&e,c=n.readBigUInt64LE(r*16+8)-t&e;n.writeBigUInt64LE(i,r*16),n.writeBigUInt64LE(c,r*16+8)}return n},J=(t,n)=>{const o=new BigUint64Array([D,E,s,S,A,C,N,y]);z(o,t,n);const r=R(o,n,11,BigInt(t.byteLength)*E&e);return R(o,n,n.byteLength-L-11,~(BigInt(t.byteLength)*s)&e)<<64n|r},p=(t,n,o,r,i)=>v((t.readBigUInt64LE(n)^o.readBigUInt64LE(r)+i)&e,(t.readBigUInt64LE(n+8)^o.readBigUInt64LE(r+8)-i)&e),x=(t,n,o,r,i,c,g)=>{let l=t&e,b=t>>64n&e;return l+=p(n,o,i,c,g),l^=n.readBigUInt64LE(r)+n.readBigUInt64LE(r+8),l&=e,b+=p(n,r,i,c+16,g),b^=n.readBigUInt64LE(o)+n.readBigUInt64LE(o+8),b&=e,b<<64n|l},Q=(t,n,o)=>{const r=t.byteLength,i=BigInt(t.readUInt8(r-1))|BigInt(r)<<8n|BigInt(t.readUInt8(0))<<16n|BigInt(t.readUInt8(r>>1))<<24n,c=(BigInt(n.readUInt32LE(0))^BigInt(n.readUInt32LE(4)))+o,g=(i^c)&e,l=(BigInt(n.readUInt32LE(8))^BigInt(n.readUInt32LE(12)))-o,b=(j(d(i),13n)^l)&e;return(_(b)&e)<<64n|_(g)},W=(t,n,o)=>{const r=t.byteLength;o=(o^d(o&U)<<32n)&e;const i=t.readUInt32LE(0),c=t.readUInt32LE(r-4),g=BigInt(i)|BigInt(c)<<32n,l=(n.readBigUInt64LE(16)^n.readBigUInt64LE(24))+o&e;let I=(g^l)*(E+(BigInt(r)<<2n))&h;return I+=(I&e)<<65n,I&=h,I^=I>>67n,m(m(I&e,35n)*H&e,28n)|B(I>>64n)<<64n},Z=(t,n,o)=>{const r=t.byteLength,i=(n.readBigUInt64LE(32)^n.readBigUInt64LE(40))-o&e,c=(n.readBigUInt64LE(48)^n.readBigUInt64LE(56))+o&e,g=t.readBigUInt64LE();let l=t.readBigUInt64LE(r-8),b=(g^l^i)*E;const I=(b&e)+(BigInt(r-1)<<54n);b=b&(h^e)|I,l^=c,b+=l+(l&U)*(C-1n)<<64n,b&=h,b^=V(b>>64n);let u=(b&e)*s;return u+=(b>>64n)*s<<64n,u&=h,B(u&e)|B(u>>64n)<<64n},$=(t,n)=>{const o=t.byteLength;return o>8?Z(t,F,n):o>=4?W(t,F,n):o>0?Q(t,F,n):_(n^F.readBigUInt64LE(64)^F.readBigUInt64LE(72))|_(n^F.readBigUInt64LE(80)^F.readBigUInt64LE(88))<<64n},O=(t,n,o)=>{let r=BigInt(t.byteLength)*E&e,i=BigInt(t.byteLength-1)/32n;for(;i>=0n;){const l=Number(i);r=x(r,t,16*l,t.byteLength-16*(l+1),n,32*l,o),i--}let c=r+(r>>64n)&e;c=B(c);let g=(r&e)*E+(r>>64n)*A+(BigInt(t.byteLength)-o&e)*s;return g&=e,g=M(B(g)),c|g<<64n},a=(t,n,o)=>{let r=BigInt(t.byteLength)*E&e;for(let g=32;g<160;g+=32)r=x(r,t,g-32,g-16,n,g-32,o);r=B(r&e)|B(r>>64n)<<64n;for(let g=160;g<=t.byteLength;g+=32)r=x(r,t,g-32,g-16,n,3+g-160,o);r=x(r,t,t.byteLength-16,t.byteLength-32,n,103,M(o));let i=r+(r>>64n)&e;i=B(i);let c=(r&e)*E+(r>>64n)*A+(BigInt(t.byteLength)-o&e)*s;return c&=e,c=M(B(c)),i|c<<64n},k=(t,n=0n)=>{const o=t.byteLength;return o<=16?$(t,n):o<=128?O(t,F,n):o<=240?a(t,F,n):J(t,n===0n?F:G(n))},nn=t=>{const n=t>>64n&e,o=t&e;return n.toString(16).padStart(16,"0")+o.toString(16).padStart(16,"0")},tn=(t,n=0n)=>nn(k(typeof t=="string"?Buffer.from(t):t,BigInt.asUintN(64,n)));export{tn as x};
@@ -1 +1 @@
1
- import{c as r,d as t}from"../../../packem_chunks/index3.js";export{r as createAdapter,t as detectPackageManager};
1
+ import{c as r,d as t}from"../../../packem_chunks/index2.js";export{r as createAdapter,t as detectPackageManager};
@@ -1 +1 @@
1
- import{AfterAllProjectsVersioned as r,VersionActions as s}from"../../../packem_shared/AfterAllProjectsVersioned-CAKI2nWf.js";import{b as i}from"../../../packem_chunks/index2.js";export{r as AfterAllProjectsVersioned,s as VersionActions,i as createVersionActions};
1
+ import{AfterAllProjectsVersioned as r,VersionActions as s}from"../../../packem_shared/AfterAllProjectsVersioned-CAKI2nWf.js";import{c}from"../../../packem_chunks/index3.js";export{r as AfterAllProjectsVersioned,s as VersionActions,c as createVersionActions};
@@ -1 +1 @@
1
- import{ReleaseClient as s,release as a,releaseChangelog as l,releaseDraft as o,releasePublish as E,releaseSnapshot as i,releaseVersion as n}from"../packem_shared/ReleaseClient-DAvbxCdo.js";import{DEFAULT_CLEAN_KEEP as L,DEFAULT_CLEAN_STRIP as f,DEFAULT_CONFIG as p,DEFAULT_DEPENDENCY_BUMP_RULES as _,defineReleaseConfig as m,resolveCleanStripList as C}from"../packem_chunks/DEFAULT_CLEAN_KEEP.js";import{defineReleasePlugin as D}from"../packem_chunks/defineReleasePlugin.js";import{VisReleaseError as U,visReleaseError as x}from"../packem_shared/VisReleaseError-DZtgcKf8.js";import{BUMP_LEVELS as F,bumpRank as N,maxBump as S}from"./types.js";export{F as BUMP_LEVELS,L as DEFAULT_CLEAN_KEEP,f as DEFAULT_CLEAN_STRIP,p as DEFAULT_CONFIG,_ as DEFAULT_DEPENDENCY_BUMP_RULES,s as ReleaseClient,U as VisReleaseError,N as bumpRank,m as defineReleaseConfig,D as defineReleasePlugin,S as maxBump,a as release,l as releaseChangelog,o as releaseDraft,E as releasePublish,i as releaseSnapshot,n as releaseVersion,C as resolveCleanStripList,x as visReleaseError};
1
+ import{ReleaseClient as s,release as a,releaseChangelog as l,releaseDraft as o,releasePublish as E,releaseSnapshot as i,releaseVersion as n}from"../packem_shared/ReleaseClient-CWD9BC5w.js";import{DEFAULT_CLEAN_KEEP as L,DEFAULT_CLEAN_STRIP as f,DEFAULT_CONFIG as p,DEFAULT_DEPENDENCY_BUMP_RULES as _,defineReleaseConfig as m,resolveCleanStripList as C}from"../packem_chunks/DEFAULT_CLEAN_KEEP.js";import{defineReleasePlugin as D}from"../packem_chunks/defineReleasePlugin.js";import{VisReleaseError as U,visReleaseError as x}from"../packem_shared/VisReleaseError-DZtgcKf8.js";import{BUMP_LEVELS as F,bumpRank as N,maxBump as S}from"./types.js";export{F as BUMP_LEVELS,L as DEFAULT_CLEAN_KEEP,f as DEFAULT_CLEAN_STRIP,p as DEFAULT_CONFIG,_ as DEFAULT_DEPENDENCY_BUMP_RULES,s as ReleaseClient,U as VisReleaseError,N as bumpRank,m as defineReleaseConfig,D as defineReleasePlugin,S as maxBump,a as release,l as releaseChangelog,o as releaseDraft,E as releasePublish,i as releaseSnapshot,n as releaseVersion,C as resolveCleanStripList,x as visReleaseError};
package/index.js CHANGED
@@ -82,7 +82,7 @@ function requireNative() {
82
82
  const binding = require('@visulima/vis-binding-android-arm64')
83
83
  const bindingPackageVersion = require('@visulima/vis-binding-android-arm64/package.json').version
84
84
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
85
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
85
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
86
86
  }
87
87
  return binding
88
88
  } catch (e) {
@@ -98,7 +98,7 @@ function requireNative() {
98
98
  const binding = require('@visulima/vis-binding-android-arm-eabi')
99
99
  const bindingPackageVersion = require('@visulima/vis-binding-android-arm-eabi/package.json').version
100
100
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
101
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
101
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
102
102
  }
103
103
  return binding
104
104
  } catch (e) {
@@ -119,7 +119,7 @@ function requireNative() {
119
119
  const binding = require('@visulima/vis-binding-win32-x64-gnu')
120
120
  const bindingPackageVersion = require('@visulima/vis-binding-win32-x64-gnu/package.json').version
121
121
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
122
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
122
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
123
123
  }
124
124
  return binding
125
125
  } catch (e) {
@@ -135,7 +135,7 @@ function requireNative() {
135
135
  const binding = require('@visulima/vis-binding-win32-x64-msvc')
136
136
  const bindingPackageVersion = require('@visulima/vis-binding-win32-x64-msvc/package.json').version
137
137
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
138
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
138
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
139
139
  }
140
140
  return binding
141
141
  } catch (e) {
@@ -152,7 +152,7 @@ function requireNative() {
152
152
  const binding = require('@visulima/vis-binding-win32-ia32-msvc')
153
153
  const bindingPackageVersion = require('@visulima/vis-binding-win32-ia32-msvc/package.json').version
154
154
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
155
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
155
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
156
156
  }
157
157
  return binding
158
158
  } catch (e) {
@@ -168,7 +168,7 @@ function requireNative() {
168
168
  const binding = require('@visulima/vis-binding-win32-arm64-msvc')
169
169
  const bindingPackageVersion = require('@visulima/vis-binding-win32-arm64-msvc/package.json').version
170
170
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
171
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
171
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
172
172
  }
173
173
  return binding
174
174
  } catch (e) {
@@ -187,7 +187,7 @@ function requireNative() {
187
187
  const binding = require('@visulima/vis-binding-darwin-universal')
188
188
  const bindingPackageVersion = require('@visulima/vis-binding-darwin-universal/package.json').version
189
189
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
190
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
190
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
191
191
  }
192
192
  return binding
193
193
  } catch (e) {
@@ -203,7 +203,7 @@ function requireNative() {
203
203
  const binding = require('@visulima/vis-binding-darwin-x64')
204
204
  const bindingPackageVersion = require('@visulima/vis-binding-darwin-x64/package.json').version
205
205
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
206
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
206
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
207
207
  }
208
208
  return binding
209
209
  } catch (e) {
@@ -219,7 +219,7 @@ function requireNative() {
219
219
  const binding = require('@visulima/vis-binding-darwin-arm64')
220
220
  const bindingPackageVersion = require('@visulima/vis-binding-darwin-arm64/package.json').version
221
221
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
222
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
222
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
223
223
  }
224
224
  return binding
225
225
  } catch (e) {
@@ -239,7 +239,7 @@ function requireNative() {
239
239
  const binding = require('@visulima/vis-binding-freebsd-x64')
240
240
  const bindingPackageVersion = require('@visulima/vis-binding-freebsd-x64/package.json').version
241
241
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
242
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
242
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
243
243
  }
244
244
  return binding
245
245
  } catch (e) {
@@ -255,7 +255,7 @@ function requireNative() {
255
255
  const binding = require('@visulima/vis-binding-freebsd-arm64')
256
256
  const bindingPackageVersion = require('@visulima/vis-binding-freebsd-arm64/package.json').version
257
257
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
258
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
258
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
259
259
  }
260
260
  return binding
261
261
  } catch (e) {
@@ -276,7 +276,7 @@ function requireNative() {
276
276
  const binding = require('@visulima/vis-binding-linux-x64-musl')
277
277
  const bindingPackageVersion = require('@visulima/vis-binding-linux-x64-musl/package.json').version
278
278
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
279
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
279
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
280
280
  }
281
281
  return binding
282
282
  } catch (e) {
@@ -292,7 +292,7 @@ function requireNative() {
292
292
  const binding = require('@visulima/vis-binding-linux-x64-gnu')
293
293
  const bindingPackageVersion = require('@visulima/vis-binding-linux-x64-gnu/package.json').version
294
294
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
295
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
295
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
296
296
  }
297
297
  return binding
298
298
  } catch (e) {
@@ -310,7 +310,7 @@ function requireNative() {
310
310
  const binding = require('@visulima/vis-binding-linux-arm64-musl')
311
311
  const bindingPackageVersion = require('@visulima/vis-binding-linux-arm64-musl/package.json').version
312
312
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
313
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
313
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
314
314
  }
315
315
  return binding
316
316
  } catch (e) {
@@ -326,7 +326,7 @@ function requireNative() {
326
326
  const binding = require('@visulima/vis-binding-linux-arm64-gnu')
327
327
  const bindingPackageVersion = require('@visulima/vis-binding-linux-arm64-gnu/package.json').version
328
328
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
329
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
329
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
330
330
  }
331
331
  return binding
332
332
  } catch (e) {
@@ -344,7 +344,7 @@ function requireNative() {
344
344
  const binding = require('@visulima/vis-binding-linux-arm-musleabihf')
345
345
  const bindingPackageVersion = require('@visulima/vis-binding-linux-arm-musleabihf/package.json').version
346
346
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
347
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
347
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
348
348
  }
349
349
  return binding
350
350
  } catch (e) {
@@ -360,7 +360,7 @@ function requireNative() {
360
360
  const binding = require('@visulima/vis-binding-linux-arm-gnueabihf')
361
361
  const bindingPackageVersion = require('@visulima/vis-binding-linux-arm-gnueabihf/package.json').version
362
362
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
363
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
363
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
364
364
  }
365
365
  return binding
366
366
  } catch (e) {
@@ -378,7 +378,7 @@ function requireNative() {
378
378
  const binding = require('@visulima/vis-binding-linux-loong64-musl')
379
379
  const bindingPackageVersion = require('@visulima/vis-binding-linux-loong64-musl/package.json').version
380
380
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
381
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
381
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
382
382
  }
383
383
  return binding
384
384
  } catch (e) {
@@ -394,7 +394,7 @@ function requireNative() {
394
394
  const binding = require('@visulima/vis-binding-linux-loong64-gnu')
395
395
  const bindingPackageVersion = require('@visulima/vis-binding-linux-loong64-gnu/package.json').version
396
396
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
397
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
397
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
398
398
  }
399
399
  return binding
400
400
  } catch (e) {
@@ -412,7 +412,7 @@ function requireNative() {
412
412
  const binding = require('@visulima/vis-binding-linux-riscv64-musl')
413
413
  const bindingPackageVersion = require('@visulima/vis-binding-linux-riscv64-musl/package.json').version
414
414
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
415
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
415
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
416
416
  }
417
417
  return binding
418
418
  } catch (e) {
@@ -428,7 +428,7 @@ function requireNative() {
428
428
  const binding = require('@visulima/vis-binding-linux-riscv64-gnu')
429
429
  const bindingPackageVersion = require('@visulima/vis-binding-linux-riscv64-gnu/package.json').version
430
430
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
431
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
431
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
432
432
  }
433
433
  return binding
434
434
  } catch (e) {
@@ -445,7 +445,7 @@ function requireNative() {
445
445
  const binding = require('@visulima/vis-binding-linux-ppc64-gnu')
446
446
  const bindingPackageVersion = require('@visulima/vis-binding-linux-ppc64-gnu/package.json').version
447
447
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
448
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
448
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
449
449
  }
450
450
  return binding
451
451
  } catch (e) {
@@ -461,7 +461,7 @@ function requireNative() {
461
461
  const binding = require('@visulima/vis-binding-linux-s390x-gnu')
462
462
  const bindingPackageVersion = require('@visulima/vis-binding-linux-s390x-gnu/package.json').version
463
463
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
464
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
464
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
465
465
  }
466
466
  return binding
467
467
  } catch (e) {
@@ -481,7 +481,7 @@ function requireNative() {
481
481
  const binding = require('@visulima/vis-binding-openharmony-arm64')
482
482
  const bindingPackageVersion = require('@visulima/vis-binding-openharmony-arm64/package.json').version
483
483
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
484
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
484
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
485
485
  }
486
486
  return binding
487
487
  } catch (e) {
@@ -497,7 +497,7 @@ function requireNative() {
497
497
  const binding = require('@visulima/vis-binding-openharmony-x64')
498
498
  const bindingPackageVersion = require('@visulima/vis-binding-openharmony-x64/package.json').version
499
499
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
500
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
500
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
501
501
  }
502
502
  return binding
503
503
  } catch (e) {
@@ -513,7 +513,7 @@ function requireNative() {
513
513
  const binding = require('@visulima/vis-binding-openharmony-arm')
514
514
  const bindingPackageVersion = require('@visulima/vis-binding-openharmony-arm/package.json').version
515
515
  if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
516
- throw new Error(`Native binding package version mismatch, expected 6.0.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
516
+ throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
517
517
  }
518
518
  return binding
519
519
  } catch (e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/vis",
3
- "version": "6.0.1",
3
+ "version": "6.1.1",
4
4
  "description": "A monorepo dev toolkit — task runner, remote caching, security scanning, git hooks, and AI agent integrations — powered by @visulima/task-runner",
5
5
  "keywords": [
6
6
  "build",
@@ -148,14 +148,14 @@
148
148
  }
149
149
  },
150
150
  "optionalDependencies": {
151
- "@visulima/vis-binding-darwin-arm64": "6.0.1",
152
- "@visulima/vis-binding-darwin-x64": "6.0.1",
153
- "@visulima/vis-binding-linux-arm64-gnu": "6.0.1",
154
- "@visulima/vis-binding-linux-arm64-musl": "6.0.1",
155
- "@visulima/vis-binding-linux-x64-gnu": "6.0.1",
156
- "@visulima/vis-binding-linux-x64-musl": "6.0.1",
157
- "@visulima/vis-binding-win32-arm64-msvc": "6.0.1",
158
- "@visulima/vis-binding-win32-x64-msvc": "6.0.1"
151
+ "@visulima/vis-binding-darwin-arm64": "6.1.1",
152
+ "@visulima/vis-binding-darwin-x64": "6.1.1",
153
+ "@visulima/vis-binding-linux-arm64-gnu": "6.1.1",
154
+ "@visulima/vis-binding-linux-arm64-musl": "6.1.1",
155
+ "@visulima/vis-binding-linux-x64-gnu": "6.1.1",
156
+ "@visulima/vis-binding-linux-x64-musl": "6.1.1",
157
+ "@visulima/vis-binding-win32-arm64-msvc": "6.1.1",
158
+ "@visulima/vis-binding-win32-x64-msvc": "6.1.1"
159
159
  },
160
160
  "engines": {
161
161
  "node": "^22.14.0 || >=24.10.0"
@@ -1,46 +0,0 @@
1
- import{createRequire as ta}from"node:module";import{a as J}from"../packem_shared/index-B4AjSxHU.js";import{DEFAULT_CHANGES_DIR as oe,DEFAULT_DEPENDENCY_BUMP_RULES as ga,DEFAULT_CONFIG as ua}from"./DEFAULT_CLEAN_KEEP.js";import{VisReleaseError as E}from"../packem_shared/VisReleaseError-DZtgcKf8.js";import{l as ma,m as fa,p as ha,b as wa}from"./index2.js";import{L as ya}from"../packem_shared/index-BisalDCf.js";import{BUMP_LEVELS as be,maxBump as we,normaliseGroup as $e,bumpRank as ce}from"../release/types.js";import{isValidPackageName as va,escapeMarkdown as ka,assertValidPackageName as Pa}from"./security.js";import le from"./index.js";import{d as ba,c as $a}from"./index3.js";import{createShellRunner as re}from"./shell-runner.js";let ra;const ia=e=>(ra??=ta(import.meta.url))(e),ne=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Pe=e=>{if(typeof ne<"u"&&ne.versions&&ne.versions.node){const[a,s]=ne.versions.node.split(".").map(Number);if(a>22||a===22&&s>=3||a===20&&s>=16)return ne.getBuiltinModule(e)}return ia(e)},{readdir:oa,readFile:ca,writeFile:la,unlink:da}=Pe("node:fs/promises"),{resolve:W,sep:x,join:pa,dirname:ge}=Pe("node:path"),{realpathSync:Ce}=Pe("node:fs"),Ca=/^exit[\s-]prerelease\s*:\s*(.+)$/i,Ra=/^(.+)@(\d+\.\d+\.\d+(?:[-+].*)?)$/,Re=(e,a,s)=>{if(!va(e))throw new E({code:"BUMP_FILE_INVALID",file:s,message:`Invalid replay condition "${a}": ${JSON.stringify(e)} is not a valid package name.`,packageName:e||void 0});return e},Aa=(e,a)=>{if(typeof e!="string"||e.trim()==="")throw new E({code:"BUMP_FILE_INVALID",file:a,message:`Invalid replay condition: ${JSON.stringify(e)}. Expected "name@1.2.0" or "exit-prerelease:name".`});const s=e.trim(),n=Ca.exec(s);if(n)return{kind:"exit-prerelease",package:Re((n[1]??"").trim(),s,a)};const t=Ra.exec(s);if(t)return{kind:"version",package:Re((t[1]??"").trim(),s,a),version:t[2]??""};throw new E({code:"BUMP_FILE_INVALID",file:a,message:`Invalid replay condition "${s}". Expected "name@1.2.0" or "exit-prerelease:name".`})},Na=(e,a)=>{if(!Array.isArray(e))throw new E({code:"BUMP_FILE_INVALID",file:a,message:'`replay` must be a list of conditions (e.g. ["name@1.2.0", "exit-prerelease:name"]).'});return e.map(s=>Aa(s,a))},ye=e=>!("bumps"in e.payload)&&Array.isArray(e.payload.replay)&&e.payload.replay.length>0,Ae=e=>/^\d+\.\d+\.\d+-/.test(e),Ea=(e,a)=>e.package!==a.name?!1:e.kind==="version"?a.newVersion===e.version:Ae(a.oldVersion)&&!Ae(a.newVersion),Ia=(e,a)=>{const s=new Map,n=[],t=[];for(const r of e){if(!ye(r))continue;const l=r.payload.replay;let c=!0;for(const i of l){const o=a.find(d=>Ea(i,d));if(o){const d=s.get(o.name)??[];d.some(u=>u.id===r.id)||d.push(r),s.set(o.name,d)}else c=!1}c?n.push(r):t.push(r)}return{consumed:n,injectionsByPackage:s,retained:t}},Ma=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/,Da=e=>{const a=Ma.exec(e);return a?{body:(a[2]??"").trim(),frontmatter:a[1]??""}:null},ja=/^(?:@[a-z0-9-]+\/)?[\w.-]+(?:\/[\w.-]+)*(?::[\w.-]+)?$/i,_a=214,Sa=e=>e.length===0||e.length>_a||e.startsWith(".")||e.startsWith("_")||e.startsWith("-")?!1:ja.test(e),ve=e=>typeof e=="string"&&be.includes(e),Va=/^ {0,3}(#{1,3})\s+\S/,Fa=/^ {0,3}(?:```|~~~)/,Ta=e=>{let a,s=0,n=!1;for(const t of e.split(/\r?\n/)){if(Fa.test(t)){n=!n;continue}if(n)continue;const r=Va.exec(t);if(!r)continue;const l=(r[1]??"").length,c=4-l;c>s&&(s=c,a=l===1?"major":l===2?"minor":"patch")}return a},La=/^\s*(pr|commit|author)\s*:\s*(.+?)\s*$/i,Oa=e=>{const a=e.split(/\r?\n/),s={};let n=0;for(const r of a){if(r.trim()===""){n+=1;continue}const l=La.exec(r);if(!l)break;const[,c="",i=""]=l;switch(c.toLowerCase()){case"author":{s.author=i.startsWith("@")?i:`@${i}`;break}case"commit":{s.commit=i;break}case"pr":{const d=Number.parseInt(i,10);!Number.isNaN(d)&&d>0&&(s.pr=d);break}}n+=1}const t=a.slice(n).join(`
2
- `).trim();return{meta:Object.keys(s).length>0?s:void 0,remainder:t}},Ne=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&("bump"in e||"replay"in e),Ba=(e,a,s)=>{const n=a.replay!==void 0;if(n&&a.bump!==void 0)throw new E({code:"BUMP_FILE_INVALID",file:s,message:`"${e}" sets both \`bump\` and \`replay\`. Replay files are changelog-only and never bump — remove \`bump\`, or drop \`replay\` to make this a normal change file.`,packageName:e});const t=a.bump===void 0&&n?"none":a.bump;if(!ve(t))throw new E({code:"BUMP_FILE_INVALID",file:s,message:`Invalid bump level for "${e}": ${JSON.stringify(a.bump)}. Expected one of: ${be.join(", ")}`,packageName:e});const r={bump:t,package:e};if(n&&(r.replay=Na(a.replay,s)),a.releaseAs!==void 0){if(typeof a.releaseAs!="string"||!/^\d+\.\d+\.\d+(?:[-+].*)?$/.test(a.releaseAs))throw new E({code:"BUMP_FILE_INVALID",file:s,message:`Invalid releaseAs for "${e}": ${JSON.stringify(a.releaseAs)}. Expected a semver string like "2.0.0" or "2.0.0-rc.1".`,packageName:e});r.releaseAs=a.releaseAs}if(a.cascade!==void 0){if(typeof a.cascade!="object"||a.cascade===null||Array.isArray(a.cascade))throw new E({code:"BUMP_FILE_INVALID",file:s,message:`Cascade block for "${e}" must be an object mapping package globs to bump levels.`,packageName:e});const l={};for(const[c,i]of Object.entries(a.cascade)){if(!ve(i))throw new E({code:"BUMP_FILE_INVALID",file:s,message:`Invalid cascade bump level for "${c}": ${JSON.stringify(i)}.`,packageName:e});l[c]=i}r.cascade=l}return r},ue=e=>e.replaceAll(/^.*[/\\]/g,"").replace(/\.md$/i,""),Ga=(e,a)=>{const s=Da(e);if(!s)throw new E({code:"BUMP_FILE_INVALID",file:a,message:"Change file is missing YAML frontmatter (expected `---` delimiters)."});let n;try{n=ya(s.frontmatter,{strict:!0})}catch(i){throw new E({cause:i,code:"BUMP_FILE_INVALID",file:a,message:`YAML parse failed: ${i.message}`})}if(n==null)return{body:s.body.trim(),id:ue(a),path:a,payload:{bumps:{}}};if(typeof n!="object"||Array.isArray(n))throw new E({code:"BUMP_FILE_INVALID",file:a,message:"Frontmatter must be a YAML object mapping package names to bump levels."});const t=Object.entries(n);if(t.length===0)return{body:s.body.trim(),id:ue(a),path:a,payload:{bumps:{}}};for(const[i]of t)if(!Sa(i))throw new E({code:"BUMP_FILE_INVALID",file:a,message:`Invalid package name: ${JSON.stringify(i)}.`,packageName:i});let r;if(t.length===1&&Ne(t[0][1])){const[i,o]=t[0];r=Ba(i,o,a)}else{const i={},o=[];for(const[d,u]of t){if(Ne(u))throw new E({code:"BUMP_FILE_INVALID",file:a,message:`Mixed simple + nested entries are not allowed. Package "${d}" uses the nested shape but the file has multiple top-level entries.`,packageName:d});if(u==null||u===""){o.push(d);continue}if(!ve(u))throw new E({code:"BUMP_FILE_INVALID",file:a,message:`Invalid bump level for "${d}": ${JSON.stringify(u)}. Expected one of: ${be.join(", ")}`,packageName:d});i[d]=u}if(o.length>0){const d=Ta(s.body);if(!d)throw new E({code:"BUMP_FILE_INVALID",file:a,message:`No bump level for ${o.map(u=>`"${u}"`).join(", ")}: the entry is empty and the body has no markdown heading to infer one from. Add an explicit level (e.g. \`${o[0]}: minor\`) or a heading (\`# major\`, \`## minor\`, \`### patch\`).`,packageName:o[0]});for(const u of o)i[u]=d}r={bumps:i}}const{meta:l,remainder:c}=Oa(s.body);return{body:c,id:ue(a),meta:l,path:a,payload:r}},Bs=(e,a)=>{let s;if("bumps"in e){const n=Object.entries(e.bumps).map(([t,r])=>`${me(t)}: ${r}`);s=n.length>0?n.join(`
3
- `):"{}"}else{const n=[`${me(e.package)}:`,` bump: ${e.bump}`];if(e.releaseAs&&n.push(` releaseAs: ${e.releaseAs}`),e.cascade){n.push(" cascade:");for(const[t,r]of Object.entries(e.cascade))n.push(` ${me(t)}: ${r}`)}if(e.replay&&e.replay.length>0){n.push(" replay:");for(const t of e.replay){const r=t.kind==="version"?`${t.package}@${t.version}`:`exit-prerelease:${t.package}`;n.push(` - "${r}"`)}}s=n.join(`
4
- `)}return`---
5
- ${s}
6
- ---
7
- ${a.trim()===""?"":`${a.trim()}
8
- `}`},me=e=>/^[a-z0-9-]/.test(e)?e:`"${e}"`,Ha=e=>{const a=new Map,s=t=>t==="major"?3:t==="minor"?2:t==="patch"?1:0,n=(t,r)=>{const l=a.get(t);(l===void 0||s(r)>s(l))&&a.set(t,r)};for(const t of e)if("bumps"in t.payload)for(const[r,l]of Object.entries(t.payload.bumps))n(r,l);else n(t.payload.package,t.payload.bump);return a},Ee=(e,a)=>a.filter(s=>"bumps"in s.payload?Object.hasOwn(s.payload.bumps,e):s.payload.package===e),Wa=new Set(["README.md","readme.md"]),Ua=async e=>{const a=e.changesDir??oe,s=W(e.cwd),n=W(e.cwd,a),t=n,r=s.endsWith(x)?s:`${s}${x}`;if(n!==s&&!n.startsWith(r))throw new E({code:"CONFIG_INVALID",message:`changesDir resolves outside the workspace: ${n} (workspace: ${s}). Set release.changesDir to a path inside the repo.`});const l=[];let c;try{c=await oa(t)}catch(d){if(d.code==="ENOENT")return{files:[],warnings:[]};throw new E({cause:d,code:"CONFIG_INVALID",message:`Cannot read change-files directory ${t}: ${d.message}`})}const i=c.filter(d=>!Wa.has(d)&&d.endsWith(".md"));return{files:await Promise.all(i.map(async d=>{const u=pa(t,d),g=await ca(u,"utf8");return Ga(g,u)})),warnings:l}},Ka=(e,a)=>{if(!a)return;if(Object.hasOwn(a,e)){const n=Object.keys(a).filter(t=>t!==e&&Me(t)&&le(t,e));return Ie(e,a[e],n)}const s=[];for(const[n]of Object.entries(a))Me(n)&&le(n,e)&&s.push(n);if(s.length>0){const[n,...t]=s;return Ie(e,a[n],t)}},Ie=(e,a,s=[])=>{let{tag:n}=a;return n==="branch-name"&&(n=za(e)),{branch:e,mode:a.mode??"auto-publish",...s.length>0?{overlapping:s}:{},prerelease:a.prerelease,range:a.range,tag:n}},za=e=>e.toLowerCase().replaceAll(/[^a-z0-9.-]/g,"-").replaceAll(/^-+|-+$/g,"")||"branch",Ya=/[!()*+?@[\]{|}]/,Me=e=>Ya.test(e),Ja=async(e,a)=>{try{const s=await a.run("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:e,silent:!0});if(s.exitCode!==0)return;const n=s.stdout.trim();return n==="HEAD"||n===""?void 0:n}catch{return}},qa=["dependencies","devDependencies","peerDependencies","optionalDependencies"];class Xa{dependents;dependenciesByPackage;packagesByName;constructor(a){this.dependents=new Map,this.dependenciesByPackage=new Map,this.packagesByName=new Map;for(const s of a){if(this.packagesByName.has(s.name))throw new E({code:"DUPLICATE_PACKAGE_NAME",message:`Duplicate package name "${s.name}" — found at ${this.packagesByName.get(s.name).dir} and ${s.dir}.`,packageName:s.name});this.packagesByName.set(s.name,s),this.dependents.set(s.name,[]),this.dependenciesByPackage.set(s.name,[])}for(const s of a)for(const n of qa){const t=s.manifest[n];if(!(!t||typeof t!="object"))for(const[r,l]of Object.entries(t))this.packagesByName.has(r)&&(this.dependents.get(r).push({kind:n,name:s.name,range:l}),this.dependenciesByPackage.get(s.name).push({kind:n,name:r,range:l}))}}getPackage(a){return this.packagesByName.get(a)}allPackages(){return[...this.packagesByName.values()]}isInternal(a){return this.packagesByName.has(a)}getDependents(a){return this.dependents.get(a)??[]}getDependencies(a){return this.dependenciesByPackage.get(a)??[]}topologicalSort(a){const s=a?new Set(a):new Set(this.packagesByName.keys()),n=new Set,t=new Set,r=[],l=(c,i)=>{if(!n.has(c)){if(t.has(c)){const o=i.indexOf(c),d=o===-1?[...i,c]:[...i.slice(o),c];throw new E({code:"CYCLIC_DEPENDENCY",message:`Cyclic dependency detected: ${d.join(" → ")}`})}t.add(c);for(const o of this.getDependencies(c))s.has(o.name)&&o.kind!=="devDependencies"&&l(o.name,[...i,c]);t.delete(c),n.add(c),r.push(c)}};for(const c of s)l(c,[]);return r}get size(){return this.packagesByName.size}}const Za=e=>{const a="/version.rb";if(!e.endsWith(a))return!1;const s=e.length-a.length;let n;if(e.startsWith("lib/"))n=0;else{const r=e.indexOf("/lib/");if(r===-1)return!1;n=r+1}const t=e.slice(n+4,s);return t.length>0&&!/[\n\r\u2028\u2029]/.test(t)},Y=e=>e,Q=(e,a)=>(s,n)=>[...n.versionActions===e?[W(s.dir)]:[],...a===void 0?[]:(n.extraFiles??[]).filter(t=>a.test(t.path)).map(t=>ge(W(s.dir,t.path)))],Qa=e=>({managed:!0,versionActions:e}),Le=e=>a=>({managed:!0,...a.private?{}:{versionActions:e}}),ee=e=>async a=>({touched:await e(a),warnings:[]}),xa=Y({claimedDirs:(e,a)=>ma(e.dir,a).map(s=>ge(s)),configKey:"cargo",discover:async e=>{const{discoverCargoCrates:a}=await import("./index2.js").then(s=>s.q);return a(e)},id:"cargo",perPackage:Le("cargo"),toPackage:e=>e}),Oe=Y({claimedDirs:(e,a)=>a.versionActions==="python"||a.pythonProjectDir!==void 0?[W(e.dir,a.pythonProjectDir??".")]:[],configKey:"python",discover:async e=>{const{discoverPythonProjects:a}=await import("./python-projects.js");return a(e)},id:"python",perPackage:Le("python"),plan:async({context:e,pending:a,releases:s})=>{const{planPythonWorkspace:n}=await import("./python-plan.js"),t=s.flatMap(l=>{const c=e.depGraph.getPackage(l.name);return c?[{manifestPath:c.manifestPath,name:l.name,newVersion:l.newVersion}]:[]}),r=await n({cwd:e.cwd,dependents:e.packages.filter(l=>l.ecosystem==="python").map(l=>({dependencies:l.manifest.dependencies??{},name:l.name})),pending:a,releases:t});return{touched:r.touched,warnings:r.warnings}},toPackage:e=>e}),Be=Y({claimedDirs:(e,a)=>[...a.versionActions==="maven"||a.pomPath!==void 0?[a.pomPath??"pom.xml"]:[],...(a.extraFiles??[]).map(n=>n.path).filter(n=>/(?:^|\/)pom\.xml$/.test(n))].map(n=>ge(W(e.dir,n))),configKey:"maven",discover:async e=>{const{discoverMavenProjects:a}=await import("./maven-projects.js");return a(e)},id:"maven",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planMavenWorkspace:n}=await import("./maven-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),Ge=Y({claimedDirs:Q("gradle",/(?:^|\/)(?:build\.gradle(?:\.kts)?|gradle\.properties)$/),configKey:"gradle",discover:async e=>{const{discoverGradleProjects:a}=await import("./index2.js").then(s=>s.t);return a(e)},id:"gradle",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planGradleWorkspace:n}=await import("./gradle-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),es=Y({claimedDirs:Q("composer",/(?:^|\/)composer\.json$/),configKey:"composer",discover:async e=>{const{discoverComposerProjects:a}=await import("./composer-projects.js");return a(e)},id:"composer",perPackage:e=>e.perPackage,toPackage:e=>e.package}),He=Y({claimedDirs:Q("go",/(?:^|\/)go\.mod$/),configKey:"go",discover:async e=>{const{discoverGoProjects:a}=await import("./go-projects.js");return a(e)},id:"go",perPackage:e=>e.perPackage,toPackage:e=>e.package}),as=Q("swift",/(?:^|\/)Package\.swift$/),ss=Y({claimedDirs:(e,a,s)=>[...e.ecosystem===void 0&&W(e.dir)!==W(s)?[W(e.dir)]:[],...as(e,a)],configKey:"swift",discover:async e=>{const{discoverSwiftProjects:a}=await import("./swift-projects.js");return a(e)},id:"swift",perPackage:(e,a)=>({currentVersionResolver:"git-tag",managed:!0,versionActions:"swift",...W(e.package.dir)===W(a)?{releaseTagPattern:"{version}"}:{}}),toPackage:e=>e.package}),We=Y({claimedDirs:(e,a)=>{const s=a.versionActions==="gem"?[W(e.dir)]:[];for(const n of a.extraFiles??[]){const t=W(e.dir,n.path);if(/\.gemspec$/.test(n.path))s.push(ge(t));else if(Za(n.path)){const r=t.lastIndexOf(`${x}lib${x}`);r!==-1&&s.push(t.slice(0,r))}}return s},configKey:"gem",discover:async e=>{const{discoverGemProjects:a}=await import("./gem-projects.js");return a(e)},id:"gem",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planGemWorkspace:n}=await import("./gem-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),Ue=Y({claimedDirs:Q("hex",/(?:^|\/)mix\.exs$/),configKey:"hex",discover:async e=>{const{discoverHexProjects:a}=await import("./hex-projects.js");return a(e)},id:"hex",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planHexWorkspace:n}=await import("./hex-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),Ke=Y({claimedDirs:Q("nuget",/\.(?:cs|fs)proj$|(?:^|\/)Directory\.Build\.props$/),configKey:"nuget",discover:async e=>{const{discoverNuGetProjects:a}=await import("./nuget-projects.js");return a(e)},id:"nuget",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planNuGetWorkspace:n}=await import("./nuget-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),ze=Y({claimedDirs:Q("zig",/(?:^|\/)build\.zig\.zon$/),configKey:"zig",discover:async e=>{const{discoverZigProjects:a}=await import("./zig-projects.js");return a(e)},id:"zig",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planZigWorkspace:n}=await import("./zig-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),Ye=Y({claimedDirs:Q("dart",/(?:^|\/)pubspec\.yaml$/),configKey:"dart",discover:async e=>{const{discoverDartProjects:a}=await import("./dart-projects.js");return a(e)},id:"dart",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planDartWorkspace:n}=await import("./dart-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),De=[xa,Oe,Be,Ge,es,He,ss,We,Ue,Ke,ze,Ye],ns=[Oe,Be,He,Ge,We,Ue,Ke,ze,Ye],ts=(e,a,s)=>e.perPackage?e.perPackage(a,s):Qa(e.id),je=(e,a)=>!!e[a.configKey]?.discover,rs=/\{(name|version|previousVersion|date|repo|contributors)\}/g,is=(e,a)=>e.replaceAll(rs,(s,n)=>a[n]??""),os=(e,a={})=>{const s=new Set;for(const r of a.internalAuthors??[]){const l=r.trim().toLowerCase().replace(/^@/,"");l.length>0&&s.add(l)}const n=new Set,t=[];for(const r of e){const l=r.meta?.author;if(l)for(const c of l.split(",")){const i=c.trim();if(!i)continue;const o=i.replace(/^@/,"");if(o.length===0)continue;const d=o.toLowerCase();n.has(d)||s.has(d)||(n.add(d),t.push(ka(i)))}}return t.length===0?"":t.map(r=>`- ${r}`).join(`
9
- `)},de=e=>{const{current:a,prerelease:s}=e;let{bump:n}=e;if(!J.valid(a))throw new E({code:"CONFIG_INVALID",message:`Invalid current version: ${JSON.stringify(a)}`});const t=J.parse(a),r=t.prerelease[0],l=t.prerelease.length>0;if(t.major===0&&e.bumpMinorPreMajor&&(n==="major"&&(n="minor"),n==="minor"&&e.bumpPatchForMinorPreMajor&&(n="patch")),n==="none")return(r??void 0)===(s??void 0)?a:!l&&s?`${t.major}.${t.minor}.${t.patch}-${s}.0`:l&&!s?`${t.major}.${t.minor}.${t.patch}`:l&&s?`${t.major}.${t.minor}.${t.patch}-${s}.0`:a;if(l&&s&&r===s){const i=cs(t);if(_e[n]<=_e[i]){const u=J.inc(a,"prerelease",s);if(!u)throw new E({code:"CONFIG_INVALID",message:`semver.inc returned null for prerelease bump on ${a}`});return u}const o=`${t.major}.${t.minor}.${t.patch}`,d=J.inc(o,n);if(!d)throw new E({code:"CONFIG_INVALID",message:`semver.inc returned null for ${n} bump on ${o}`});return`${d}-${s}.0`}if(s){const i=`${t.major}.${t.minor}.${t.patch}`,o=J.inc(i,n);if(!o)throw new E({code:"CONFIG_INVALID",message:`semver.inc returned null for ${n} bump on ${i}`});return`${o}-${s}.0`}if(l){const i=`${t.major}.${t.minor}.${t.patch}`,o=J.inc(i,n);if(!o)throw new E({code:"CONFIG_INVALID",message:`semver.inc returned null for ${n} bump on ${i}`});return o}const c=J.inc(a,n);if(!c)throw new E({code:"CONFIG_INVALID",message:`semver.inc returned null for ${n} bump on ${a}`});return c},_e={major:3,minor:2,patch:1},cs=e=>e.minor===0&&e.patch===0?"major":e.patch===0?"minor":"patch",ls=(e,a)=>{const s=Je(a);return s?J.satisfies(e,s,{includePrerelease:!0}):!0},Je=e=>{if(!e||e.startsWith("catalog:")||e==="*"||e==="workspace:*"||e==="workspace:^"||e==="workspace:~")return null;if(e.startsWith("workspace:")){const a=e.slice(10);return a==="*"||a==="^"||a==="~"?null:a}if(e.startsWith("npm:")){const a=e.lastIndexOf("@");return a>4?e.slice(a+1):null}return e},fe=100,X=(e,a,s,n,{isCascadeBump:t=!1,isDependencyBump:r=!1,isGroupBump:l=!1,source:c}={})=>{const i=e.get(a);if(i){const o=i.type;return i.type=we(i.type,s),i.reasons.add(n),r&&(i.isDependencyBump=!0),l&&(i.isGroupBump=!0),t&&(i.isCascadeBump=!0),c&&i.sources.set(c.name,{bumpType:c.bumpType,newVersion:c.newVersion}),i.type!==o}return e.set(a,{isCascadeBump:t,isDependencyBump:r,isGroupBump:l,name:a,proactiveSeen:!1,reasons:new Set([n]),sources:c?new Map([[c.name,{bumpType:c.bumpType,newVersion:c.newVersion}]]):new Map,type:s}),!0},ds=(e,a,s,n)=>{const t=s?.get(e)?.dependencyBumpRules?.[a];if(t!==void 0)return t;const r=n.dependencyBumpRules?.[a];return r!==void 0?r:ga[a]??!1},Se=(e,a)=>ce(e)>=ce(a),Ve=(e,a)=>a==="match"?e:a,ps=(e,a)=>a===!0?!0:Array.isArray(a)?a.includes(e):!1,gs=10,us=(e,a,s,n,t,r,l)=>{let c=!1;for(const i of e.values()){const o=a.getPackage(i.name);if(!o)continue;const d=n.currentVersions?.get(i.name)??o.version,u=s.get(i.name)??de({bump:i.type,bumpMinorPreMajor:n.bumpMinorPreMajor,bumpPatchForMinorPreMajor:n.bumpPatchForMinorPreMajor,current:d,prerelease:n.prerelease});s.set(i.name,u);for(const g of a.getDependents(i.name)){if(g.kind==="devDependencies"){if(!ps(i.name,r.bumpDevDependencies))continue;if(X(e,g.name,"patch","DEVDEPENDENCY_BUMPED",{isDependencyBump:!0,source:{bumpType:i.type,name:i.name,newVersion:u}})&&(c=!0,s.delete(g.name)),r.bumpDevDependencies===!0){let P=l.get(i.name);P||(P=new Set,l.set(i.name,P)),P.add(g.name)}continue}const p=Je(g.range);if(p===null||ls(u,p))continue;let f,k="DEPENDENCY_OUT_OF_RANGE";g.kind==="peerDependencies"?(f=i.type==="none"?"patch":i.type,k="PEER_DEP_MATCH",p.startsWith("^0.")&&f!=="patch"&&t.push(`^0.x peer dep "${i.name}" → "${g.name}" produced a ${f} bump. Consider widening the range manually.`)):f="patch",X(e,g.name,f,k,{isDependencyBump:!0,source:{bumpType:i.type,name:i.name,newVersion:u}})&&(c=!0,s.delete(g.name))}}return c},ms=(e,a,s)=>{let n=!1;for(const t of s.fixed??[]){const r=$e(t),l=pe(r.packages,a),c=l.filter(o=>e.has(o));if(c.length===0)continue;let i="none";for(const o of c)i=we(i,e.get(o).type);for(const o of l){if(!a.isInternal(o))continue;X(e,o,i,"FIXED_GROUP",{isGroupBump:!0})&&(n=!0)}}for(const t of s.linked??[]){const r=$e(t),c=pe(r.packages,a).filter(o=>e.has(o));if(c.length===0)continue;let i="none";for(const o of c)i=we(i,e.get(o).type);for(const o of c)X(e,o,i,"LINKED_GROUP",{isGroupBump:!0})&&(n=!0)}return n},Fe=new WeakMap,fs=/[!()*+?@[\]{|}]/,pe=(e,a)=>{let s=Fe.get(a);s||(s={allNames:a.allPackages().map(t=>t.name),matched:new Map},Fe.set(a,s));const n=new Set;for(const t of e){if(!fs.test(t)){n.add(t);continue}let r=s.matched.get(t);r||(r=s.allNames.filter(l=>le(t,l)),s.matched.set(t,r));for(const l of r)n.add(l)}return[...n]},hs=(e,a,s,n,t,r)=>{let l=!1;const c=n.updateInternalDependencies??"out-of-range",i=o=>{const d=r.get(o.name);if(d!==void 0)return d;const u=de({bump:o.type,bumpMinorPreMajor:t.bumpMinorPreMajor,bumpPatchForMinorPreMajor:t.bumpPatchForMinorPreMajor,current:t.currentVersions?.get(o.name)??s.getPackage(o.name).version,prerelease:t.prerelease});return r.set(o.name,u),u};for(const o of a){if("bumps"in o.payload||!o.payload.cascade)continue;const d=e.get(o.payload.package);if(!d)continue;const u=r.get(d.name)??de({bump:d.type,bumpMinorPreMajor:t.bumpMinorPreMajor,bumpPatchForMinorPreMajor:t.bumpPatchForMinorPreMajor,current:t.currentVersions?.get(d.name)??s.getPackage(d.name).version,prerelease:t.prerelease});r.set(d.name,u);for(const[g,p]of Object.entries(o.payload.cascade))for(const f of pe([g],s)){if(!s.isInternal(f))continue;X(e,f,p,"CASCADE",{isCascadeBump:!0,source:{bumpType:d.type,name:d.name,newVersion:u}})&&(l=!0)}}for(const o of e.values()){const d=t.perPackageConfig?.get(o.name)?.cascadeTo;if(d)for(const[u,g]of Object.entries(d)){if(!Se(o.type,g.trigger))continue;const p=Ve(o.type,g.bumpAs),f=i(o);for(const k of pe([u],s)){if(!s.isInternal(k))continue;X(e,k,p,"CASCADE_TO",{isCascadeBump:!0,source:{bumpType:o.type,name:o.name,newVersion:f}})&&(l=!0)}}}if(c==="out-of-range")return l;for(const o of e.values())if(!o.proactiveSeen&&!(c==="minor"&&ce(o.type)<ce("minor"))){for(const d of s.getDependents(o.name)){const u=ds(d.name,d.kind,t.perPackageConfig,n);if(u===!1||!Se(o.type,u.trigger))continue;const g=Ve(o.type,u.bumpAs);if(g==="none")continue;const p=i(o);X(e,d.name,g,"DEPENDENCY_BUMPED",{isDependencyBump:!0,source:{bumpType:o.type,name:o.name,newVersion:p}})&&(l=!0)}o.proactiveSeen=!0}return l},ws=(e,a,s,n={})=>{const t=e.filter(p=>ye(p)),r=t.length>0?e.filter(p=>!ye(p)):e,l=new Map,c=[],i=new Map;for(const[p,f]of Ha(r).entries()){if(!a.isInternal(p)){c.push(`Change file references non-workspace package "${p}" — ignored.`);continue}f!=="none"&&X(l,p,f,"EXPLICIT")}for(const p of n.catalogConsumers??[]){if(!a.isInternal(p.packageName))continue;const f=`catalog:${p.catalog}/${p.dep}`;X(l,p.packageName,"patch","CATALOG_CHANGED",{isDependencyBump:!0,source:{bumpType:"patch",name:f,newVersion:p.newVersion??""}})}const o=new Map,d=p=>{const f=Ee(p,r).map(w=>"releaseAs"in w.payload?{file:w.path,version:w.payload.releaseAs}:void 0).filter(w=>w!==void 0&&typeof w.version=="string"),k=new Set(f.map(w=>w.version));if(k.size>1)throw new E({code:"BUMP_FILE_INVALID",message:`Conflicting releaseAs values for ${p}: ${[...k].join(", ")}. Found in: ${f.map(w=>w.file).join(", ")}. Consolidate the change files to a single override.`,packageName:p});return f[0]?.version},u=new Map;for(const p of l.values()){if(p.type==="none")continue;const f=d(p.name);f&&(u.set(p.name,f),i.set(p.name,f))}for(let p=0;p<fe;p+=1){const f=us(l,a,i,n,c,s,o),k=ms(l,a,s),w=hs(l,r,a,s,n,i);if(!f&&!k&&!w)break;p===fe-1&&c.push(`Release plan did not converge after ${fe} iterations — releasing the current best plan. This usually indicates a config bug (cyclic cascade?).`)}for(const[p,f]of o){const k=f.size;k>gs&&c.push(`bumpDevDependencies: true triggered ${k} patch-cascades to distinct dependents from a single devdep bump (${p}). Consider scoping with the array form ['only', 'these', 'sources'].`)}const g=[];for(const p of l.values()){if(p.type==="none")continue;const f=a.getPackage(p.name);if(!f)continue;const k=Ee(p.name,r),w=u.get(p.name),N=n.currentVersions?.get(p.name)??f.version,P=w??i.get(p.name)??de({bump:p.type,bumpMinorPreMajor:n.bumpMinorPreMajor,bumpPatchForMinorPreMajor:n.bumpPatchForMinorPreMajor,current:N,prerelease:n.prerelease});g.push({changeFiles:k,isCascadeBump:p.isCascadeBump,isDependencyBump:p.isDependencyBump,isGroupBump:p.isGroupBump,name:p.name,newVersion:P,oldVersion:N,reasons:[...p.reasons],sources:[...p.sources.entries()].map(([b,y])=>({name:b,...y})),type:p.type})}if(g.sort((p,f)=>p.name.localeCompare(f.name)),t.length>0){const p=Ia(t,g);for(const[f,k]of p.injectionsByPackage){const w=g.find(N=>N.name===f);w&&(w.changeFiles=[...w.changeFiles,...k])}return{consumedChangeFiles:[...r,...p.consumed],releases:g,warnings:c}}return{consumedChangeFiles:r,releases:g,warnings:c}},qe=async(e,a,s={})=>{const n=await e.listPackages(),t=[],r=new Map,l=new Map,c=u=>{const g=W(u);try{return Ce.native(g)}catch{try{return Ce(g)}catch{return g}}},i=s.cwd===void 0?void 0:c(s.cwd),o=u=>u.replaceAll("\\","/"),d=[];for(const{manifest:u,manifestPath:g}of n){const p=ke(typeof u.name=="string"?u.name:"",u,a);if(u.napi!==void 0||p.versionActions==="native-addon"){const k=o(g.replace(/[/\\]package\.json$/i,""));d.push(`${k}/npm/`)}}for(const{manifest:u,manifestPath:g}of n){if(typeof u.name!="string"||u.name==="")continue;const p=o(g.replace(/[/\\]package\.json$/i,""));if(d.some(w=>p.startsWith(w)))continue;if(Pa(u.name),l.has(u.name))throw new E({code:"DUPLICATE_PACKAGE_NAME",message:`Duplicate package name "${u.name}" — at ${l.get(u.name)} and ${g}.`,packageName:u.name});if(l.set(u.name,g),i!==void 0){const w=c(g),N=i.endsWith(x)?i:`${i}${x}`,P=y=>x==="\\"?y.toLowerCase():y,b=P(w);if(b!==P(i)&&!b.startsWith(P(N)))throw new E({code:"CONFIG_INVALID",message:`Package manifest is outside the workspace: ${g} (workspace: ${i}).`,packageName:u.name})}const f=ke(u.name,u,a);if(!Xe(u.name,u,f,a))continue;const k=g.replace(/[/\\]package\.json$/i,"");t.push({dir:k,manifest:u,manifestPath:g,name:u.name,private:u.private===!0,version:typeof u.version=="string"?u.version:"0.0.0"}),r.set(u.name,f)}return{packages:t,perPackageConfig:r}},ke=(e,a,s)=>{const n=s.packages?.[e]??{},t=a["vis-release"]??{};return{...n,...t}},Xe=(e,a,s,n)=>s.managed===!1?!1:s.managed===!0?!0:Te(e,n.ignore??[])?!1:Te(e,n.include??[])?!0:a.private===!0&&!(n.privatePackages?.version??!1)?!1:n.defaultManaged??!1,Te=(e,a)=>a.some(s=>le(s,e)),Ze=(e,a)=>a.versionActions!==void 0?a.versionActions:e.manifest.napi!==void 0?"native-addon":e.private?"private":"npm",Gs=Object.defineProperty({__proto__:null,discoverPackages:qe,isPackageManaged:Xe,mergePerPackageConfig:ke,resolveVersionActionsId:Ze},Symbol.toStringTag,{value:"Module"}),Hs=async(e={})=>{const a=e.cwd??process.cwd(),s=re(),n=await ba(a),t=$a(n,s),r=await t.detectVersion(a);if(r&&!vs(r,t.minVersion))throw new E({code:"PM_VERSION_TOO_LOW",hint:`pnpm install -g ${t.id}@latest (or your equivalent)`,message:`${t.id} version ${r} is below the required minimum ${t.minVersion}. Upgrade ${t.id} to enable release operations.`});let l={};try{const{loadVisConfig:A}=await import("./CONFIG_FILES.js"),v=await A(a);v.release&&(l=v.release)}catch(A){const{code:v}=A,D=A.message??"";if(!(v==="ENOENT"||v==="MODULE_NOT_FOUND"||/cannot find module/i.test(D)))throw A}const c=ys(l,e.config??{});!c.acknowledgeUnstable&&process.env.VIS_RELEASE_SUPPRESS_UNSTABLE!=="1"&&process.stderr.write("[vis release] ⚠ This subsystem is flagged unstable. Set `release.acknowledgeUnstable: true` in vis.config.ts to suppress this warning. (RFC §21.2)\n");const i=e.channel??await Ja(a,s),o=i?Ka(i,c.channels):void 0,d=await import("node:fs/promises"),g=await qe({listPackages:async()=>{const A=await t.listWorkspacePackages(a);return(await Promise.all(A.map(async D=>{const F=`${D.path}/package.json`;try{const G=await d.readFile(F,"utf8");return{manifest:JSON.parse(G),manifestPath:F}}catch{return}}))).filter(D=>D!==void 0)}},c,{cwd:a}),{perPackageConfig:p}=g;let{packages:f}=g;const k=new Map;if(De.some(A=>je(c,A))){for(const v of De){if(!je(c,v))continue;const D=new Set;for(const G of f)for(const z of v.claimedDirs(G,p.get(G.name)??{},a))D.add(z);const F=await v.discover({claimedDirs:D,cwd:a});for(const G of F){const{name:z}=v.toPackage(G);p.set(z,{...ts(v,G,a),...c.packages?.[z]})}f=[...f,...F.map(G=>v.toPackage(G))],k.set(v.id,F)}const A=new Map;for(const v of f){const D=A.get(v.name);if(D!==void 0&&v.ecosystem!==void 0)throw new E({code:"CONFIG_INVALID",message:`${v.name} is discovered as a ${v.ecosystem} project, but ${D.dir} already has that name. Rename one of them in config.packages.`,packageName:v.name});A.set(v.name,v)}}{const{assertSupportedVersionFiles:A}=await import("./index2.js").then(v=>v.v);for(const[v,D]of p)A(v,D.versionFiles??[])}const w=new Xa(f),{files:N}=await Ua({changesDir:c.changesDir,cwd:a}),{readPreMode:P}=await import("./pre-mode.js"),b=await P(a,c.changesDir??".vis/release");let y;b?.mode==="pre"?y=b.tag:b?.mode==="exit-pending"?y=void 0:y=o?.prerelease;const m=e.firstRelease===!0,{resolveCurrentVersionsForWorkspace:_}=await import("./version-resolver.js"),{versions:R,warnings:S}=await _(f,w,c,p,{cwd:a,firstRelease:m,pm:t,runner:s,skipRegistryLookup:e.skipRegistryLookup===!0}),U=[],M=[];if(c.detectCatalogChanges===!0)try{const{detectCatalogChanges:A,findCatalogConsumers:v,parseCatalogs:D}=await import("./catalog-detector.js"),F=await t.readCatalogYaml(a),G=D(F);let z;try{const L=await s.run("git",["show","HEAD~1:pnpm-workspace.yaml"],{cwd:a,silent:!0});L.exitCode===0&&(z=L.stdout)}catch{}const h=D(z),V=A(h,G).filter(L=>L.oldVersion!==void 0&&L.newVersion!==void 0);if(V.length>0){const L=v(f,G);for(const T of V){const K=L.get(T.catalog)?.get(T.dep)??[];for(const H of K)U.push({catalog:T.catalog,dep:T.dep,newVersion:T.newVersion,oldVersion:T.oldVersion,packageName:H.packageName})}U.length>0&&M.push(`Catalog change-detection: ${V.length} catalog dep(s) moved; ${U.length} consumer-package patch bump(s) tagged CATALOG_CHANGED.`)}}catch(A){M.push(`Catalog change-detection skipped: ${A.message}.`)}const O=ws(N,w,c,{bumpMinorPreMajor:c.bumpMinorPreMajor,bumpPatchForMinorPreMajor:c.bumpPatchForMinorPreMajor,catalogConsumers:U,currentVersions:R,perPackageConfig:p,prerelease:y});if(M.length>0&&O.warnings.push(...M),S.length>0&&O.warnings.push(...S),m&&O.warnings.push('First-release mode: currentVersionResolver forced to "disk", remote tag-collision checks skipped. Drop --first-release after the initial wave lands.'),b?.mode==="pre"&&O.warnings.push(`Pre-mode is ACTIVE (tag "${b.tag}"); every version produces a prerelease. Exit with \`vis release pre exit\` when ready to ship stable.`),b?.mode==="exit-pending"&&O.warnings.push(`Pre-mode is EXIT-PENDING (was "${b.tag}"); the next \`vis release version\` will consolidate the prerelease and delete pre.json.`),o?.overlapping&&o.overlapping.length>0&&O.warnings.push(`Branch "${i}" matches multiple channel patterns: "${o.branch}" (active) plus ${o.overlapping.map(A=>`"${A}"`).join(", ")}. Reorder channels in vis.config.ts if this is unintentional.`),e.projects&&e.projects.length>0){const{default:A}=await import("./index.js"),v=e.projects;O.releases=O.releases.filter(D=>v.some(F=>D.name===F||A(F,D.name)))}{const A=O.releases.flatMap(v=>w.getPackage(v.name)?.ecosystem==="go"?[{name:v.name,newVersion:v.newVersion}]:[]);if(A.length>0){const{planGoWorkspace:v}=await import("./go-plan.js");v({projects:k.get("go")??[],releases:A})}}return{branch:i,channel:o?{mode:o.mode,prerelease:o.prerelease,tag:o.tag}:void 0,config:c,cwd:a,depGraph:w,firstRelease:m,packages:f,perPackageConfig:p,plan:O,pm:t,preMode:b,projectsByEcosystem:k}},ys=(...e)=>{let a={...ua};for(const s of e)a={...a,...s};return a},vs=(e,a)=>{const s=J.coerce(e)?.version??e;try{return J.gte(s,a)}catch{return!0}},te=async(e,a,s)=>{if(!a||a.trim()==="")return;const n=re(),t=process.platform==="win32",r=t?"cmd":"sh",l=t?["/c",a]:["-c",a],c=await n.run(r,l,{cwd:e,silent:!1});if(c.exitCode!==0)throw new Error(`${s} failed (exit ${c.exitCode}): ${a}`)},Qe=async(e,a,s,n={})=>{const{findConflictingPendingStages:t,readStagedRegistry:r,removePendingStages:l,writeStagedRegistry:c}=await import("./staged-registry.js"),i=e.config.changesDir??oe;let o=s??await r(e.cwd,i);if(o.pending.length===0)return;const d=new Map(e.plan.releases.map(w=>[w.name,w.newVersion])),u=[...d.keys()];let g=t(o,u).filter(w=>d.get(w.name)!==w.version);if(g.length===0)return;let p=[];if(!n.skipSelfHeal){const w=n.runner??re();p=(await Promise.all(g.map(async P=>{const b=await w.run("npm",["view",`${P.name}@${P.version}`,"dist.tarball","--silent"],{cwd:e.cwd,silent:!0});return b.exitCode===0&&b.stdout.trim().length>0?P.id:void 0}))).filter(P=>P!==void 0)}if(p.length>0){if(o=l(o,p),n.persistSelfHeal!==!1)try{await c(e.cwd,i,o)}catch{}if(g=t(o,u).filter(w=>d.get(w.name)!==w.version),g.length===0)return}const f=g.map(w=>` • ${w.name}@${w.version} — stage ${w.id} (${w.reason}, recorded ${w.stagedAt})`).join(`
10
- `),k=a==="version"?"version":"publish";throw new E({code:"STAGE_PENDING",hint:"Resolve via `vis release stage approve <id>` / `--all` or `vis release stage reject <id>`, commit the updated staged.json, then retry.",message:`Refusing to ${k} — ${g.length} package(s) have a pending stage from a prior wave:
11
- ${f}`})},Ws=async(e,a={})=>{if(e.plan.releases.length===0)return{changedFiles:[],deletedFiles:[],plan:e.plan};if(await Qe(e,"version",void 0,{persistSelfHeal:!1}),!a.dryRun&&e.config.preVersionCommand&&await te(e.cwd,e.config.preVersionCommand,"preVersionCommand"),!a.dryRun&&e.config.groupPreVersionCommands){const{normaliseGroup:g}=await import("../release/types.js"),p=[...e.config.fixed??[],...e.config.linked??[]].map(k=>g(k)),{default:f}=await import("./index.js");for(const[k,w]of Object.entries(e.config.groupPreVersionCommands)){const N=Number.parseInt(k.replace(/^group-/,""),10),P=p[N];!P||!e.plan.releases.some(y=>P.packages.some(m=>y.name===m||f(m,y.name)))||await te(e.cwd,w,`groupPreVersionCommand[${k}]`)}}const s=await import("node:fs/promises"),{readFileSync:n}=await import("node:fs"),{resolveFormatter:t}=await import("./resolveFormatter.js"),{resolveGroupChangelogRouting:r}=await import("./workspace.js"),l=await t(e.config.changelog,e.cwd),c=new Date().toISOString().slice(0,10),i=r(e.config,e.packages,e.cwd),o=await fa(e.plan,e.depGraph,{changelogPath:g=>i.get(g.name)??`${g.dir}/CHANGELOG.md`,readChangelog:g=>{try{return n(g,"utf8")}catch{return}},readManifest:g=>{try{return n(g,"utf8")}catch{return}},renderChangelogEntry:g=>l({changeFiles:g.changeFiles,date:c,release:g,target:"changelog"})}),d=[];{const{applyExtraFilesForRelease:g}=await import("./extra-files.js"),{applyVersionFilesForRelease:p}=await import("./index2.js").then(y=>y.v),{cargoManifestPaths:f}=await import("./index2.js").then(y=>y.o),k=await Promise.all(e.plan.releases.map(async y=>{const m=e.depGraph.getPackage(y.name);if(!m)return{warnings:[],writes:[]};const _=e.perPackageConfig.get(y.name)?.extraFiles??[],R=e.config.publish?.extraFiles??[],S=e.perPackageConfig.get(y.name)?.versionFiles??[],M=_.length>0||R.length>0?await g(e.cwd,m.dir,y.newVersion,y.name,R,_):{warnings:[],writes:[]},O=S.length>0?await p(m.dir,S,y.newVersion,y.name,new Map(M.writes.map(A=>[A.path,A.content]))):{writes:[]};return{warnings:M.warnings,writes:[...M.writes,...O.writes]}})),w=new Map,N=new Set;for(const y of k){for(const m of y.writes)w.set(m.path,m.content),N.add(m.path);d.push(...y.warnings)}const P=e.packages.filter(y=>y.ecosystem==="cargo"),b=e.plan.releases.flatMap(y=>{const m=e.depGraph.getPackage(y.name);if(!m||m.ecosystem!==void 0&&m.ecosystem!=="cargo")return[];const _=m.ecosystem==="cargo"?[m.manifestPath]:f(m.dir,e.perPackageConfig.get(y.name)??{});return _.length>0||m.ecosystem==="cargo"?[{ecosystem:m.ecosystem,manifestPaths:_,name:y.name,newVersion:y.newVersion}]:[]});if(b.length>0){const y=new Set(P.map(R=>R.manifestPath));P.length>0&&y.add(W(e.cwd,"Cargo.toml"));for(const R of e.packages)if(R.ecosystem===void 0)for(const S of f(R.dir,e.perPackageConfig.get(R.name)??{}))y.add(S);const{planCargoWorkspace:m}=await import("./cargo-plan.js"),_=await m({crateManifests:P.map(R=>R.manifestPath),cwd:e.cwd,pending:w,releases:b,rewriteDependents:e.config.cargo?.discover===!0,scanManifests:[...y]});for(const R of _.touched)N.add(R);d.push(..._.warnings)}for(const y of ns){const m=e.plan.releases.flatMap(R=>e.depGraph.getPackage(R.name)?.ecosystem===y.id?[{name:R.name,newVersion:R.newVersion}]:[]);if(m.length===0||y.plan===void 0)continue;const _=await y.plan({context:e,pending:w,projects:e.projectsByEcosystem?.get(y.id)??[],releases:m});for(const R of _.touched)N.add(R);d.push(..._.warnings)}for(const y of N)o.writes.push({content:w.get(y),path:y});d.length>0&&e.plan.warnings.push(...d)}if(a.dryRun)return{changedFiles:o.writes.map(g=>g.path),deletedFiles:o.deletions,plan:e.plan};await Promise.all([...o.writes.map(g=>la(g.path,g.content)),...o.deletions.map(async g=>{try{await da(g)}catch{}})]);try{await e.pm.installLockfileOnly({cwd:e.cwd,silent:!0})}catch{}if(!a.dryRun&&e.config.formatChangedFiles&&await ks(o.writes.map(g=>g.path),e.cwd),e.config.plugins?.length){const{runApplyDraftHooks:g}=await import("./defineReleasePlugin.js");await g({config:e.config,cwd:e.cwd},e.plan)}let u;if(a.commit){const{stageAndCommit:g}=await import("./git.js"),p=re(),f=["pnpm-lock.yaml","package-lock.json","yarn.lock","bun.lock","bun.lockb"],k=await import("node:path"),w=[];for(const P of f)try{await s.access(k.join(e.cwd,P)),w.push(k.join(e.cwd,P))}catch{}const N=e.config.aggregateRelease===!0||typeof e.config.aggregateRelease=="object"&&e.config.aggregateRelease.enabled;if(e.config.oneCommitPerPackage===!0&&!N&&e.plan.releases.length>0){const P=e.channel?.tag??e.branch??"main",b=o.writes.map(_=>_.path),y=new Set,{releases:m}=e.plan;for(let _=0;_<m.length;_+=1){const R=m[_],S=e.depGraph.getPackage(R.name),U=S?`${S.dir}${k.sep}`:void 0,M=U?b.filter(v=>v.startsWith(U)):[];for(const v of M)y.add(v);const O=_===m.length-1?[...b.filter(v=>!y.has(v)),...o.deletions,...w]:[],A=[...M,...O];A.length!==0&&(u=await g({cwd:e.cwd,runner:p},A,`release(${P}): ${R.name}@${R.newVersion} [skip ci]`,{author:e.config.gitUser}))}}else{const P=a.commitMessage??Ps(e),b=[...o.writes.map(y=>y.path),...o.deletions,...w];u=await g({cwd:e.cwd,runner:p},b,P,{author:e.config.gitUser})}}if(!a.dryRun&&e.config.postVersionCommand&&await te(e.cwd,e.config.postVersionCommand,"postVersionCommand"),!a.dryRun&&e.preMode?.mode==="exit-pending"){const{deletePreMode:g,preModeFilePath:p}=await import("./pre-mode.js"),f=e.config.changesDir??".vis/release";await g(e.cwd,f)&&e.plan.warnings.push(`Pre-mode exited: \`${p(e.cwd,f)}\` was deleted. Commit the deletion so the registry stays consistent across CI runs.`)}return{changedFiles:o.writes.map(g=>g.path),commitSha:u,deletedFiles:o.deletions,plan:e.plan}},ks=async(e,a)=>{if(e.length===0)return;const{join:s}=await import("node:path");let n;try{const{createRequire:r}=await import("node:module"),{pathToFileURL:l}=await import("node:url"),c=r(s(a,"package.json"));n=await import(l(c.resolve("prettier")).href)}catch{return}const t=await import("node:fs/promises");for(const r of e)try{const l=await n.getFileInfo(r);if(l.ignored||!l.inferredParser)continue;const c=await t.readFile(r,"utf8"),i=await n.resolveConfig(r),o=await n.format(c,{...i,filepath:r});o!==c&&await t.writeFile(r,o)}catch{}},Ps=e=>{const a=e.channel?.tag??e.branch??"main",{releases:s}=e.plan,n=s.length<=3?s.map(r=>`${r.name}@${r.newVersion}`).join(", "):`version ${s.length} packages`,t=s.map(r=>`- ${r.name}: ${r.oldVersion} → ${r.newVersion}`).join(`
12
- `);return`release(${a}): ${n} [skip ci]
13
-
14
- ${t}`},he=async(e,a,s,n,t)=>{const{stageAndCommitFile:r}=await import("./git.js"),{stateFilePath:l}=await import("./state.js");try{const c=await r({cwd:e.cwd,runner:a},l(e.cwd,s,!0),`chore(release): ${n} publish lock [skip ci]`,{author:e.config.gitUser,push:!t.noPush,sign:e.config.gitSignCommits===!0});!t.noPush&&c.committed&&!c.pushed&&process.stderr.write(`[vis release] Warning: publish lock (${n}) was committed locally but could not be pushed — cross-runner resume may use a stale lock.
15
- `)}catch(c){process.stderr.write(`[vis release] Warning: could not commit publish lock (${n}): ${c.message}
16
- `)}},bs=async e=>{const{defaultTagFor:a,floatingMajorTagFor:s,renderTagPattern:n}=await import("./git.js"),{resolveSyncTagGroups:t}=await import("./group-tags.js"),r=e.plan.releases.filter(d=>e.depGraph.getPackage(d.name)?.manifest?.private!==!0).map(d=>({name:d.name,version:d.newVersion})),l=t(e.config,r),c=l.groups.map(d=>d.tag),i=[],o=!!e.channel?.prerelease||!!e.preMode;for(const{name:d,version:u}of r){if(l.grouped.has(d))continue;const g=e.perPackageConfig.get(d),p=g?.releaseTagPattern??e.config.releaseTagPattern;if(c.push(p?n(p,{channel:e.channel?.tag,name:d,version:u}):a(d,u)),e.config.floatingMajorTag===!0&&!o&&!p?.includes("{major}")&&g?.skipNpmPublish!==!0){const f=s(d,u);f!==void 0&&i.push(f)}}return{created:c,updated:i}},$s=async(e,a,s)=>{if((await a.run("git",["remote","get-url","--push","origin"],{cwd:e.cwd,silent:!0})).exitCode!==0)return;const{getCurrentBranch:t,resolvePushCredentials:r,verifyPushAccess:l}=await import("./git.js"),c={cwd:e.cwd,runner:a},i=await l(c);if(i!==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: ${i}`;const{createRemoteClient:o,detectRemoteProvider:d}=await import("./detect.js");let u;try{u=await d(e.cwd,a,e.config.provider)}catch{return}if(u!=="github")return;const p=await o(u,{githubHost:e.config.githubHost,httpProxy:e.config.httpProxy}).detectRepoSlug(e.cwd,a);if(!p)return;const f=await r(c),k={...process.env};f!==void 0&&(k.GH_TOKEN=f.token),e.config.githubHost&&(k.GH_HOST=e.config.githubHost),e.config.httpProxy&&(k.HTTPS_PROXY=e.config.httpProxy,k.HTTP_PROXY=e.config.httpProxy);const{checkGithubPushRules:w}=await import("./github-push-rules.js"),N=s.noTag?{created:[],updated:[]}:await bs(e),P=await w(a,{branch:await t(c),createdTags:N.created,cwd:e.cwd,env:k,repo:p,signedCommits:e.config.gitSignCommits===!0,updatedTags:N.updated});for(const b of P.warnings)process.stderr.write(`[vis release] Warning: ${b}
17
- `);if(P.blocked.length>0)return`GitHub push rules would reject this release, nothing was published:
18
- - ${P.blocked.join(`
19
- - `)}
20
- Grant the pushing token a bypass, adjust the ruleset, or pass --no-push / --no-tag.`},Us=async(e,a={})=>{const s={failed:[],published:[],skipped:[],tags:[],tagsPushed:!1},n=re();if(e.plan.releases.length===0)return s;if(!a.dryRun&&e.channel?.mode==="version-pr"){const{createRemoteClient:i,detectRemoteProvider:o}=await import("./detect.js"),d=await o(e.cwd,n,e.config.provider),g=await i(d,{githubHost:e.config.githubHost,gitlabHost:e.config.gitlabHost,httpProxy:e.config.httpProxy}).detectRepoSlug(e.cwd,n),p=e.config.versionPr?.branch??"vis-release/version-packages";if(g)try{const f=await n.run("gh",["pr","list","--head",p,"--state","open","--json","number"],{cwd:e.cwd,silent:!0});if(f.exitCode===0&&f.stdout.trim()&&f.stdout.trim()!=="[]"){const k=JSON.parse(f.stdout);if(k[0])return s.failed.push({name:"_preflight",reason:`Open release PR #${k[0].number} exists. Merge or close it before publishing locally. (Override: --no-push then \`git push --tags\` manually.)`}),s}}catch{}}if(!a.dryRun&&e.config.prePublishCommand)try{await te(e.cwd,e.config.prePublishCommand,"prePublishCommand")}catch(i){return s.failed.push({name:"_prePublishCommand",reason:i.message}),s}if(!a.dryRun&&!a.noPush){const i=await $s(e,n,{noTag:a.noTag===!0});if(i!==void 0)return s.failed.push({name:"_pushAccess",reason:i}),s}const t=e.config.changesDir??oe,{acquireLock:r,releaseLock:l}=await import("./state.js");let c=!1;if(!a.dryRun)try{await r(e.cwd,t),c=!0}catch(i){return s.failed.push({name:"_lock",reason:i.message}),s}try{const{clearState:i,filterPlanByState:o,newState:d,readState:u,writeState:g}=await import("./state.js"),{readStagedRegistry:p,removePendingStages:f,upsertPendingStages:k,writeStagedRegistry:w}=await import("./staged-registry.js"),N=e.config.changesDir??oe,P=e.config.publish?.lockInGit===!0;let b=a.resume||P?await u(e.cwd,N,P):void 0;b&&P&&(b.channel=e.channel?.tag);const y=async()=>{a.dryRun||!b||(await g(e.cwd,N,b,P),P&&await he(e,n,N,"progress",{noPush:a.noPush}))};let m=await p(e.cwd,N);await Qe(e,"publish",m,{runner:n}),m=await p(e.cwd,N);const _={...m,pending:[...m.pending]};let{releases:R}=e.plan;b?R=o(R,b):(b=d(e.channel?.tag,e.plan.releases),a.dryRun||(await g(e.cwd,N,b,P),P&&await he(e,n,N,"open",{noPush:a.noPush})));const S=await e.pm.readCatalogYaml(e.cwd),U=ha(S),M=e.depGraph.topologicalSort(R.map(h=>h.name)),O=new Map(R.map(h=>[h.name,h])),A=new Set,v=new Map;for(const h of e.plan.releases){const I=e.depGraph.getPackage(h.name);I&&v.set(h.name,{...I.manifest,version:h.newVersion})}const D={config:e.config,cwd:e.cwd},F=e.config.plugins?.length?await import("./defineReleasePlugin.js"):void 0;for(const h of M){const I=O.get(h);if(!I){s.skipped.push({name:h,reason:"topo-sort returned a name not in the release plan (internal bug)"});continue}const V=e.depGraph.getPackage(h);if(!V)continue;const L=[...new Set(e.depGraph.getDependencies(h).filter($=>$.kind!=="devDependencies"&&A.has($.name)).map($=>$.name))];if(L.length>0){s.skipped.push({name:h,reason:`dependency-failed: not published because ${L.join(", ")} failed to publish (publishing would orphan this package's dependency range)`}),A.add(h);continue}const T=e.perPackageConfig.get(h)??{},B=Ze(V,T),K=a.publishActionsOverride??wa(B),H=a.tag??e.channel?.tag;if(F){const $=await F.runWillPublishHooks(D,{dir:V.dir,name:h,oldVersion:I.oldVersion,version:I.newVersion});if($.skip){s.skipped.push({name:h,reason:`plugin-skipped${$.by?` by "${$.by}"`:""}`}),A.add(h);continue}}const q=m.pending.find($=>$.name===h&&$.version===I.newVersion);try{const $=await K.publish({catalogs:U,cleanPackageJsonConfig:e.config.publish?.cleanPackageJson,dryRun:a.dryRun,otp:a.otp,perPackageConfig:T,pkg:V,pm:e.pm,provenance:Es(e),registry:T.registry,release:I,resumeStageId:q?.id,tag:H,versionedManifestByName:v,workspaceConfig:e.config});if($.published||$.alreadyPublished){const C=m.pending.filter(j=>j.name===h&&j.version===I.newVersion).map(j=>j.id);C.length>0&&(m=f(m,C))}if($.published)s.published.push({name:h,stageId:$.stageId,tarball:$.tarball,version:I.newVersion}),b.published.push(`${h}@${I.newVersion}`),F&&await F.runAfterPublishHooks(D,{dir:V.dir,name:h,oldVersion:I.oldVersion,version:I.newVersion});else if($.alreadyPublished)s.skipped.push({name:h,reason:"already-published"}),b.published.push(`${h}@${I.newVersion}`);else if(s.skipped.push({name:h,reason:$.output??"skipped"}),$.stageId){const C=($.output??"").startsWith("stage-rejected")?"rejected":"timeout";m=k(m,[{id:$.stageId,name:h,reason:C,stagedAt:new Date().toISOString(),tag:H??"latest",version:I.newVersion}])}await y()}catch($){s.failed.push({name:h,reason:$.message}),A.add(h)}}F&&await F.runAfterPublishAllHooks(D,{failed:s.failed.map(h=>({name:h.name,reason:h.reason})),published:s.published.map(h=>({name:h.name,version:h.version})),skipped:s.skipped.map(h=>({name:h.name,reason:h.reason}))});const{resolveSyncTagGroups:G}=await import("./group-tags.js"),z=G(e.config,s.published);if(!a.dryRun&&!a.noTag&&s.published.length>0){const{createOrUpdateFloatingTag:h,createTag:I,defaultTagFor:V,floatingMajorTagFor:L,pushTags:T,renderTagPattern:B}=await import("./git.js"),K=e.config.releaseTagPattern,H=e.channel?.tag,q=e.config.floatingMajorTag===!0,$=!!e.channel?.prerelease||!!e.preMode;for(const{name:C,version:j}of s.published){if(z.grouped.has(C))continue;const se=e.perPackageConfig.get(C)?.releaseTagPattern??K,ie=se?B(se,{channel:H,name:C,version:j}):V(C,j);try{await I({cwd:e.cwd,runner:n},ie,`Release ${C}@${j}`,{signing:e.config.signing,skipRemoteCheck:e.firstRelease}),s.tags.push(ie)}catch(Z){e.firstRelease&&Z instanceof E&&Z.code==="TAG_COLLISION"?s.skipped.push({name:ie,reason:"tag-creation: tag already exists (first-release — skipped)"}):s.failed.push({name:ie,reason:`tag-creation: ${Z.message}`})}const xe=e.depGraph.getPackage(C),ea=e.perPackageConfig.get(C),aa=xe?.manifest?.private===!0,sa=ea?.skipNpmPublish===!0;if(q&&!$&&!se?.includes("{major}")&&!aa&&!sa){const Z=L(C,j);if(Z!==void 0)try{await h({cwd:e.cwd,runner:n},Z,{push:!a.noPush,signing:e.config.signing}),s.tags.push(Z)}catch(na){s.skipped.push({name:Z,reason:`floating-major-tag: ${na.message}`})}}}for(const C of z.groups)try{await I({cwd:e.cwd,runner:n},C.tag,`Release ${C.name} ${C.version}`,{signing:e.config.signing,skipRemoteCheck:e.firstRelease}),s.tags.push(C.tag)}catch(j){e.firstRelease&&j instanceof E&&j.code==="TAG_COLLISION"?s.skipped.push({name:C.tag,reason:"tag-creation: tag already exists (first-release — skipped)"}):s.failed.push({name:C.tag,reason:`tag-creation: ${j.message}`})}if(!a.noPush&&s.tags.length>0)try{await T({cwd:e.cwd,runner:n}),s.tagsPushed=!0}catch(C){s.tagsPushed=!1,s.failed.push({name:"_pushTags",reason:`git push --tags failed: ${C.message}. Retry with: git push --tags`})}b.tagged=[...s.tags],b.pushed=s.tagsPushed,await y(),s.failed.length===0&&!a.dryRun&&(await i(e.cwd,N,P),P&&await he(e,n,N,"close",{noPush:a.noPush}))}if(!a.dryRun){const h=_.pending.length,I=m.pending.length,V=await w(e.cwd,N,m);if(V.changed){const{stageAndCommitFile:L}=await import("./git.js");let T;if(V.removed)T="chore(release): clear pending stage registry [skip ci]";else if(I>h){const B=I-h;T=`chore(release): record ${B} new pending stage${B===1?"":"s"} [skip ci]`}else if(I<h){const B=h-I;T=`chore(release): drain ${B} resolved stage${B===1?"":"s"} [skip ci]`}else T=`chore(release): update pending stage registry (${I} pending) [skip ci]`;try{await L({cwd:e.cwd,runner:n},V.path,T,{author:e.config.gitUser,push:!a.noPush,sign:e.config.gitSignCommits===!0})}catch(B){process.stderr.write(`[vis release] Warning: could not commit ${V.path}: ${B.message}
21
- `)}}}if(!a.dryRun&&s.published.length>0&&e.config.workspaceChangelog!==!1){const h=e.config.workspaceChangelog,I=typeof h=="object"?h:void 0,V=typeof e.config.aggregateRelease=="object"?e.config.aggregateRelease.enabled:e.config.aggregateRelease===!0;if(I!==void 0||V)try{const{writeWorkspaceChangelogWave:L}=await import("./workspace.js"),T=new Set(s.published.map(H=>H.name)),B=e.plan.releases.filter(H=>T.has(H.name)),K=await L({changelogConfig:e.config.changelog,cwd:e.cwd,workspaceChangelog:e.config.workspaceChangelog},B);if(K)try{const{stageAndCommitFile:H}=await import("./git.js");await H({cwd:e.cwd,runner:n},K,"chore(release): record wave [skip ci]",{author:e.config.gitUser,push:!a.noPush,sign:e.config.gitSignCommits===!0})}catch(H){process.stderr.write(`[vis release] Warning: could not commit workspace CHANGELOG.md: ${H.message}
22
- `)}}catch(L){process.stderr.write(`[vis release] Warning: could not write workspace CHANGELOG.md wave entry: ${L.message}
23
- `)}}if(!a.dryRun&&s.published.length>0&&s.tagsPushed){e.config.publish?.noRelease!==!0&&await Ns(e,s,n,z);try{const{walkSuccessfulRelease:h}=await import("./success-walk.js"),{createRemoteClient:I,detectRemoteProvider:V}=await import("./detect.js"),{resolveFormatter:L}=await import("./resolveFormatter.js"),T=await V(e.cwd,n,e.config.provider),B=I(T,{githubHost:e.config.githubHost,gitlabHost:e.config.gitlabHost,httpProxy:e.config.httpProxy}),K=await B.detectRepoSlug(e.cwd,n),H=await L(e.config.changelog,e.cwd),{recordRecentlyWalked:q}=await import("./staged-registry.js"),$=new Set([...b.walked??[],...(m.recentlyWalked??[]).map(j=>j.key)]),C={...s,published:s.published.filter(j=>!$.has(`${j.name}@${j.version}`))};if(C.published.length>0){const j=await h(e,C,n,{client:B,formatter:H,repo:K}),ae=C.published.map(se=>`${se.name}@${se.version}`);b.walked=[...b.walked??[],...ae],await y(),m=q(m,ae),j.warnings.length>0&&e.plan.warnings.push(...j.warnings)}}catch(h){e.plan.warnings.push(`successWalk: could not run post-release walk: ${h.message}`)}if(e.config.notifications)try{const{dispatchNotifications:h}=await import("./interface.js"),{createRemoteClient:I,detectRemoteProvider:V}=await import("./detect.js"),L=await V(e.cwd,n,e.config.provider),B=await I(L,{githubHost:e.config.githubHost,gitlabHost:e.config.gitlabHost,httpProxy:e.config.httpProxy}).detectRepoSlug(e.cwd,n);let K;try{const $=`${e.cwd}/package.json`,C=await import("node:fs/promises");K=JSON.parse(await C.readFile($,"utf8")).name}catch{}const H=new Set([...b.notified??[],...(m.recentlyNotified??[]).map($=>$.key)]),q=s.published.filter($=>!H.has(`${$.name}@${$.version}`));if(q.length>0){const $=await h(e.config.notifications,{channel:e.channel?.tag,completedAt:new Date().toISOString(),...K===void 0?{}:{monorepoName:K},published:q.map(C=>({name:C.name,tag:e.channel?.tag,...C.url===void 0?{}:{url:C.url},version:C.version})),...B===void 0?{}:{repo:B},skipped:s.skipped.map(C=>({name:C.name,reason:C.reason}))},{warn:C=>e.plan.warnings.push(C)});if($.succeeded.length>0){const C=q.map(ae=>`${ae.name}@${ae.version}`);b.notified=[...b.notified??[],...C],await y();const{recordRecentlyNotified:j}=await import("./staged-registry.js");m=j(m,C)}if($.failed.length>0||$.succeeded.length>0){const C=$.succeeded.length+$.failed.length;if($.failed.length>0){e.plan.warnings.push(`[notifications] dispatched ${$.succeeded.length}/${C} channels${$.succeeded.length>0?` (succeeded: ${$.succeeded.join(", ")})`:""}; ${$.failed.length} failed.`);for(const j of $.failed)e.plan.warnings.push(`[notifications:${j.id}] ${j.error}`)}}}}catch(h){e.plan.warnings.push(`notifications: dispatch failed: ${h.message}`)}if(!a.dryRun)try{const h=await w(e.cwd,N,m);if(h.changed){const{stageAndCommitFile:I}=await import("./git.js");try{await I({cwd:e.cwd,runner:n},h.path,"chore(release): record cross-runner notify/walk dedupe [skip ci]",{author:e.config.gitUser,push:!a.noPush,sign:e.config.gitSignCommits===!0})}catch(V){process.stderr.write(`[vis release] Warning: could not commit ${h.path} (notify/walk dedupe): ${V.message}
24
- `)}}}catch(h){process.stderr.write(`[vis release] Warning: could not update cross-runner dedupe registry: ${h.message}
25
- `)}}if(!a.dryRun&&e.config.postPublishCommand)try{await te(e.cwd,e.config.postPublishCommand,"postPublishCommand")}catch(h){s.failed.push({name:"_postPublishCommand",reason:h.message})}return s}finally{c&&await l(e.cwd,t)}},Cs=e=>e.length===0?"":`## Related releases
26
-
27
- ${e.map(s=>`- [${s.name}](${s.url})`).join(`
28
- `)}`,Rs=(e,a,s)=>{if(!a||!a.header&&!a.footer)return e;const n=r=>is(r,{contributors:s.contributors??"",date:s.date,name:s.name,previousVersion:s.previousVersion,repo:s.repo,version:s.version}).replaceAll(/\n{3,}/g,`
29
-
30
- `).replace(/\s+$/,""),t=[];if(a.header){const r=n(a.header);r.length>0&&t.push(r)}if(t.push(e),a.footer){const r=n(a.footer);r.length>0&&t.push(r)}return t.join(`
31
-
32
- `)},As=e=>{if(!Array.isArray(e))return;const[a,s]=e;if(a!=="github"||typeof s!="object"||s===null)return;const{internalAuthors:n}=s;if(Array.isArray(n))return n.filter(t=>typeof t=="string")},Ns=async(e,a,s,n)=>{const{createRemoteClient:t,detectRemoteProvider:r}=await import("./detect.js"),l=await r(e.cwd,s,e.config.provider),c=t(l,{githubHost:e.config.githubHost,gitlabHost:e.config.gitlabHost,httpProxy:e.config.httpProxy}),i=await c.detectRepoSlug(e.cwd,s);if(!i)return;const o=typeof e.config.aggregateRelease=="object"?e.config.aggregateRelease:{enabled:e.config.aggregateRelease===!0},d=e.config.publish?.draftRelease===!0,u=e.config.publish?.discussionCategory,g=e.config.publish?.addReleases;if(o.enabled){const m=new Date().toISOString().slice(0,10),R=(o.title??"Release {date}").replaceAll("{date}",m),S=`release-${m}`,U=a.published.map(M=>`- \`${M.name}\` → ${M.version}`).join(`
33
- `);try{const M=await c.createRelease(s,{body:U,cwd:e.cwd,discussionCategory:u,draft:d,repo:i,tag:S,title:R});if(M?.url)for(const O of a.published)O.url=M.url}catch{}return}const{defaultTagFor:p,renderTagPattern:f}=await import("./git.js"),k=e.config.releaseTagPattern,w=e.channel?.tag,N=e.config.publish?.releaseAssets??{},P=new Date().toISOString().slice(0,10),b=As(e.config.changelog),y=os(e.plan.consumedChangeFiles??[],{internalAuthors:b});for(const m of n.groups){const _=m.members.map(R=>`- \`${R}\` → ${a.published.find(S=>S.name===R)?.version??m.version}`).join(`
34
- `);try{const R=await c.createRelease(s,{body:_,cwd:e.cwd,discussionCategory:u,draft:d,prerelease:m.version.includes("-"),repo:i,tag:m.tag,title:`${m.name} ${m.version}`});if(R?.url)for(const S of a.published)m.members.includes(S.name)&&(S.url=R.url)}catch(R){console.warn(`createRelease failed for group ${m.name} (tag ${m.tag}): ${R.message}`)}}for(const m of a.published){if(n.grouped.has(m.name))continue;const R=e.perPackageConfig.get(m.name)?.releaseTagPattern??k,S=R?f(R,{channel:w,name:m.name,version:m.version}):p(m.name,m.version),U=m.version.includes("-");let M=`Release of ${m.name}@${m.version}.`;if(m.stageId&&(M=`${M}
35
-
36
- > ⏳ **Staged — not yet installable.** Approve via \`vis release stage approve ${m.stageId}\` or the npmjs.com web UI.`),N.stampHashes&&m.tarball&&(M=`${M}
37
-
38
- ### Tarball integrity
39
-
40
- - size: \`${m.tarball.size}\` bytes
41
- - sha256: \`${m.tarball.sha256}\`
42
- - sha512: \`${m.tarball.sha512}\``),g!==void 0&&g!==!1)try{const v=S.lastIndexOf("@"),D=v>0?S.slice(0,v+1):"",F=await c.listRecentReleases(s,{cwd:e.cwd,excludeTag:S,limit:5,repo:i,tagPrefix:D}),G=Cs(F);G&&(M=g==="top"?`${G}
43
-
44
- ${M}`:`${M}
45
-
46
- ${G}`)}catch{}const{releaseNoteTemplate:O}=e.config;if(O){const D=e.plan.releases.find(F=>F.name===m.name)?.oldVersion??"";M=Rs(M,O,{contributors:y,date:P,name:m.name,previousVersion:D,repo:i,version:m.version})}const A=[];N.uploadTarball&&m.tarball&&A.push(m.tarball.path);try{const v=await c.createRelease(s,{assets:A.length>0?A:void 0,body:M,cwd:e.cwd,discussionCategory:u,draft:d,prerelease:U,repo:i,tag:S,title:`${m.name} v${m.version}`});v?.url&&(m.url=v.url)}catch(v){console.warn(`createRelease failed for ${m.name}@${m.version} (tag ${S}): ${v.message}`)}}},Es=e=>(e.config.publish?.publishArgs??[]).includes("--provenance")&&e.pm.id!=="bun";export{Ws as a,Hs as b,Ua as c,Ha as d,Bs as f,Us as p,Ze as r,Gs as w};
@@ -1 +0,0 @@
1
- import{b as i,a as d,p}from"../packem_chunks/orchestrator.js";const y=async(t={})=>{const e=await i(t),a=await d(e,{dryRun:t.dryRun});return{changedFiles:a.changedFiles,deletedFiles:a.deletedFiles,plan:a.plan}},w=async(t={})=>{const e=await i(t),{resolveFormatter:a}=await import("../packem_chunks/resolveFormatter.js"),n=await a(e.config.changelog,e.cwd),r=new Date().toISOString().slice(0,10),s=[];for(const c of e.plan.releases){const l=e.depGraph.getPackage(c.name);if(!l)continue;const o=await n({changeFiles:c.changeFiles,date:r,release:c,target:"changelog"});s.push({content:o,file:`${l.dir}/CHANGELOG.md`,package:c.name})}return{projectChangelogs:s}},F=async(t={})=>{const e=await i(t);return await p(e,{dryRun:t.dryRun,otp:t.otp,tag:t.tag})},m=async(t={})=>{const e=await i(t);let a=!1,n;const r=async()=>{if(n)return n;a=!0;const s=await d(e,{dryRun:t.dryRun});return n={changedFiles:s.changedFiles,deletedFiles:s.deletedFiles,plan:s.plan},n};return{apply:r,discard:()=>{a=!0},plan:e.plan,[Symbol.asyncDispose]:async()=>{a||await r()}}},R=async t=>{const e=await i(t),{runSnapshot:a}=await import("../packem_chunks/snapshot.js"),n=await a({context:e,dryRun:t.dryRun,registry:t.registry,tag:t.tag});return{failed:n.failed,published:n.published,skipped:n.skipped,snapshotVersion:n.snapshotVersion,tag:n.tag}},x=async(t={})=>{const e=await i(t),a=await d(e,{dryRun:t.dryRun}),n={changedFiles:a.changedFiles,deletedFiles:a.deletedFiles,plan:a.plan},{resolveFormatter:r}=await import("../packem_chunks/resolveFormatter.js"),s=await r(e.config.changelog,e.cwd),c=new Date().toISOString().slice(0,10),l=[];for(const g of a.plan.releases){const u=e.depGraph.getPackage(g.name);if(!u)continue;const f=await s({changeFiles:g.changeFiles,date:c,release:g,target:"changelog"});l.push({content:f,file:`${u.dir}/CHANGELOG.md`,package:g.name})}const o={projectChangelogs:l};if(t.skipPublish)return{changelog:o,publish:{failed:[],published:[],skipped:[]},version:n};const h=await p(e,{dryRun:t.dryRun,otp:void 0,tag:void 0});return{changelog:o,publish:h,version:n}};class k{constructor(e={}){this.config=e}config;releaseVersion(e={}){return y({...e,config:this.config})}releaseChangelog(e={}){return w({...e,config:this.config})}releasePublish(e={}){return F({...e,config:this.config})}releaseDraft(e={}){return m({...e,config:this.config})}releaseSnapshot(e){return R({...e,config:this.config})}}export{k as ReleaseClient,x as release,w as releaseChangelog,m as releaseDraft,F as releasePublish,R as releaseSnapshot,y as releaseVersion};
@@ -1 +0,0 @@
1
- import{c as r,d as t}from"../packem_chunks/index3.js";export{r as createAdapter,t as detectPackageManager};
@@ -1 +0,0 @@
1
- import{b as r}from"../packem_chunks/index2.js";export{r as createVersionActions};
@@ -1 +0,0 @@
1
- import{e as l,z as d}from"./index-BzhrR_iC.js";import{S as m}from"./lockfile-DhHAaHN5.js";import{k as v,l as g}from"../packem_chunks/catalog.js";import{y as D}from"./isAccessibleSync-DYKTrrvc-C-_5cgwu.js";const b={bun:{file:"bun.lock",type:"bun"},npm:{aliases:["npm-shrinkwrap.json"],file:"package-lock.json",type:"npm"},pnpm:{file:"pnpm-lock.yaml",type:"pnpm"},yarn:{file:"yarn.lock",type:"yarn"}},P=t=>{const o=b[t];return o?[...o.aliases??[],o.file].map(e=>({file:e,type:o.type})):[]},h=(t,o)=>{const e=P(o);if(e.length!==0)return e.find(r=>D(l(t,r.file)))??e[e.length-1]},k=t=>{try{return JSON.parse(d(t))}catch{return}},y=t=>{const o=[],e=k(l(t,"package.json"));e&&o.push(e);const r=v(t);let c;if(r?c=r:e?.workspaces&&(Array.isArray(e.workspaces)?c=e.workspaces:e.workspaces.packages&&(c=e.workspaces.packages)),!c)return o;const i=g(t,c);for(const s of i){const n=k(l(t,s,"package.json"));n&&o.push(n)}return o},S=(t,o)=>{const e=new Set,r=[],c=new Map;for(const s of o){const n=c.get(s.name);n?n.push(s):c.set(s.name,[s])}const i=s=>{if(s)for(const n of Object.keys(s))e.has(n)||(e.add(n),r.push(n))};for(const s of y(t))i(s.dependencies),i(s.peerDependencies),i(s.optionalDependencies);for(;r.length>0;){const s=r.shift(),n=c.get(s);if(n){for(const a of n)for(const p of[a.dependencies,a.peerDependencies,a.optionalDependencies])if(p)for(const f of Object.keys(p))e.has(f)||(e.add(f),r.push(f))}}return e},O=(t,o,e={})=>{const r=h(t,o);if(!r)return[];let c;try{c=d(l(t,r.file))}catch{return[]}const i=m(c,r.type);if(i.length===0)return[];const n=e.includeDev??!0?void 0:S(t,i),a=new Set,p=[];for(const f of i){if(n&&!n.has(f.name))continue;const u=`${f.name}@${f.version}`;a.has(u)||(a.add(u),p.push({isDev:!1,name:f.name,version:f.version}))}return p},I=(t,o)=>{const e=h(t,o);if(!e)return[];let r;try{r=d(l(t,e.file))}catch{return[]}const c=m(r,e.type);if(c.length===0)return[];const i=new Map;for(const n of c)i.has(n.name)||i.set(n.name,new Set),i.get(n.name).add(n.version);const s=[];for(const[n,a]of i)a.size<=1||s.push({name:n,versions:[...a]});return s.sort((n,a)=>n.name.localeCompare(a.name))},M=(t,o)=>{const e=h(t,o);if(!e)return;let r;try{r=d(l(t,e.file))}catch{return}const c=m(r,e.type);if(c.length===0)return;const i=[],s=new Set;for(const n of y(t))for(const a of[n.dependencies,n.devDependencies,n.peerDependencies,n.optionalDependencies])if(a)for(const[p,f]of Object.entries(a)){const u=`${p}@${f}`;s.has(u)||(s.add(u),i.push({name:p,version:f}))}return{entries:c,roots:i}};export{b as L,M as a,I as f,O as l,h as r};
@@ -1 +0,0 @@
1
- import{e as d,z as u}from"./index-BzhrR_iC.js";import{s as l}from"./index-B4AjSxHU.js";import{y as f}from"./isAccessibleSync-DYKTrrvc-C-_5cgwu.js";import{p as m}from"./readJsonSync-CbryXYxN-EWl7_7KX.js";const v={sha1:40,sha224:56,sha256:64,sha384:96,sha512:128},p=o=>{const n=o.indexOf("+");if(n===-1)return;const t=o.slice(n+1),e=/^([a-z0-9]+)\.([0-9a-f]+)$/.exec(t),s=e?v[e[1]]:void 0;if(!(e&&s!==void 0&&e[2].length===s))return`packageManager "${o}" has a malformed integrity suffix. Expected "+<algo>.<hex>" with algo sha1, sha224, sha256, sha384 or sha512 and lowercase hex of the matching length (sha512 = 128 characters).`},k=[".nvmrc",".node-version"],y=o=>{const n=d(o,"package.json");if(!f(n))return{};try{return m(n)??{}}catch{return{}}},c=(o,n)=>{const t=[];for(const{name:e,version:s}of n){const a=typeof s=="string"&&s.trim()!==""?s.trim():"*";l.validRange(a)!==null&&t.push({name:e,range:a})}if(t.length!==0)return{entries:t,label:o,value:n.map(e=>typeof e.version=="string"&&e.version!==""?`${e.name}@${e.version}`:e.name).join(" | ")}},h=(o,n)=>{const t=Array.isArray(o)?o:[o],e=[];for(const s of t){if(typeof s!="object"||s===null)continue;const{name:a,version:r}=s;typeof a!="string"||n!==void 0&&a!==n||e.push({name:a,version:r})}return e},E=(o,n)=>{const t=d(o,n);if(f(t))try{const e=u(t).trim();return e===""?void 0:e}catch{return}},x=(o,n)=>{const t=[];for(const r of k){const i=E(o,r);i!==void 0&&t.push(c(r,[{name:"node",version:i}]))}const e=n.engines;e&&typeof e.node=="string"&&t.push(c("engines.node",[{name:"node",version:e.node}]));const s=n.devEngines;s?.runtime!==void 0&&t.push(c("devEngines.runtime",h(s.runtime,"node")));const a=n.volta;return a&&typeof a.node=="string"&&t.push(c("volta.node",[{name:"node",version:a.node}])),t.filter(r=>r!==void 0)},$=o=>{const n=[],t=[];if(typeof o.packageManager=="string"){const s=o.packageManager,a=p(s);a&&t.push(a);const[r]=s.split("+",1),i=/^([^@]+)@(.+)$/.exec(r??"");i&&n.push(c("packageManager",[{name:i[1],version:i[2]}]))}const e=o.devEngines;if(e?.packageManager!==void 0){const s=h(e.packageManager);n.push(c("devEngines.packageManager",s))}return{declarations:n.filter(s=>s!==void 0),integrityIssues:t}},M=(o,n)=>o.entries.some(t=>n.entries.some(e=>t.name===e.name&&l.intersects(t.range,e.range))),g=(o,n)=>{const t=[];for(let e=0;e<n.length;e++)for(let s=e+1;s<n.length;s++){const a=n[e],r=n[s];M(a,r)||t.push(`Conflicting ${o} declarations: ${a.label} (${a.value}) and ${r.label} (${r.value}) have no version in common. vis does not pick one; align them.`)}return t},P=o=>{const n=y(o),t=x(o,n),{declarations:e,integrityIssues:s}=$(n),a=t.length+e.length;if(a===0&&s.length===0)return[{id:"env-declarations",message:"No Node.js or package-manager declarations to cross-check.",status:"skip"}];const r=[...g("Node.js",t),...g("package-manager",e)].map(i=>({id:"env-conflict",message:i,status:"warn"}));for(const i of s)r.push({id:"env-integrity",message:i,status:"warn"});return r.length===0?[{id:"env-declarations",message:`Node.js and package-manager declarations agree (${a} checked).`,status:"ok"}]:r};export{P as c};
@@ -1,2 +0,0 @@
1
- import{createRequire as p}from"node:module";import{e as j}from"./index-BzhrR_iC.js";import{a as F}from"./formatBytes-_HvjOy8a-B_qQr4Hw.js";let h;const m=t=>(h??=p(import.meta.url))(t),s=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,c=t=>{if(typeof s<"u"&&s.versions&&s.versions.node){const[e,r]=s.versions.node.split(".").map(Number);if(e>22||e===22&&r>=3||e===20&&r>=16)return s.getBuiltinModule(t)}return m(t)},{mkdirSync:f,writeFileSync:y,readdirSync:g}=c("node:fs"),{readFile:_}=c("node:fs/promises"),i=t=>F(t),a=(t,e)=>j(i(t),`${encodeURIComponent(e)}.json`);class R{#e;#t;constructor(e,r){this.#e=e,this.#t=r}printTaskTerminalOutput(e,r,o){if(r!=="failure")return;const n=i(this.#e);try{f(n,{recursive:!0})}catch{return}const u=e.overrides.command,d=e.projectRoot,l={command:u,cwd:d,exitCode:void 0,hash:e.hash,runId:this.#t,status:r,taskId:e.id,terminalOutput:o,timestamp:new Date().toISOString()};try{y(a(this.#e,e.id),`${JSON.stringify(l,void 0,2)}
2
- `,"utf8")}catch{}}}const S=async(t,e)=>{const r=a(t,e);try{const o=await _(r,"utf8");return JSON.parse(o)}catch{return}},w=t=>{const e=i(t);let r;try{r=g(e)}catch{return[]}const o=[];for(const n of r)if(n.endsWith(".json"))try{o.push(decodeURIComponent(n.slice(0,-5)))}catch{}return o};export{R as F,S as a,w as l};