@visulima/vis 4.2.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/bin.js +1 -1
  3. package/dist/binx.js +1 -1
  4. package/dist/config/index.d.ts +96 -0
  5. package/dist/packem_chunks/CONFIG_FILES.js +3 -3
  6. package/dist/packem_chunks/bloom-status.js +1 -1
  7. package/dist/packem_chunks/bloom-sync.js +1 -1
  8. package/dist/packem_chunks/cargo-plan.js +3 -0
  9. package/dist/packem_chunks/catalog.js +46 -46
  10. package/dist/packem_chunks/cli-exec.js +1 -1
  11. package/dist/packem_chunks/cli-main.js +138 -138
  12. package/dist/packem_chunks/composer-projects.js +2 -0
  13. package/dist/packem_chunks/dart-plan.js +1 -0
  14. package/dist/packem_chunks/dart-projects.js +1 -0
  15. package/dist/packem_chunks/dispatch.js +1 -1
  16. package/dist/packem_chunks/fix.js +8 -8
  17. package/dist/packem_chunks/gem-plan.js +2 -0
  18. package/dist/packem_chunks/gem-projects.js +1 -0
  19. package/dist/packem_chunks/git.js +5 -5
  20. package/dist/packem_chunks/go-plan.js +1 -0
  21. package/dist/packem_chunks/go-projects.js +2 -0
  22. package/dist/packem_chunks/gradle-plan.js +1 -0
  23. package/dist/packem_chunks/handler.js +1 -1
  24. package/dist/packem_chunks/handler10.js +3 -3
  25. package/dist/packem_chunks/handler11.js +1 -1
  26. package/dist/packem_chunks/handler12.js +2 -2
  27. package/dist/packem_chunks/handler13.js +1 -1
  28. package/dist/packem_chunks/handler14.js +1 -1
  29. package/dist/packem_chunks/handler15.js +1 -1
  30. package/dist/packem_chunks/handler16.js +1 -1
  31. package/dist/packem_chunks/handler17.js +1 -1
  32. package/dist/packem_chunks/handler18.js +1 -1
  33. package/dist/packem_chunks/handler19.js +1 -1
  34. package/dist/packem_chunks/handler2.js +1 -1
  35. package/dist/packem_chunks/handler20.js +2 -2
  36. package/dist/packem_chunks/handler21.js +1 -1
  37. package/dist/packem_chunks/handler22.js +1 -1
  38. package/dist/packem_chunks/handler23.js +1 -1
  39. package/dist/packem_chunks/handler24.js +1 -1
  40. package/dist/packem_chunks/handler26.js +1 -1
  41. package/dist/packem_chunks/handler27.js +1 -1
  42. package/dist/packem_chunks/handler28.js +1 -1
  43. package/dist/packem_chunks/handler29.js +1 -1
  44. package/dist/packem_chunks/handler3.js +1 -1
  45. package/dist/packem_chunks/handler30.js +1 -1
  46. package/dist/packem_chunks/handler39.js +6 -6
  47. package/dist/packem_chunks/handler4.js +3 -3
  48. package/dist/packem_chunks/handler5.js +1 -1
  49. package/dist/packem_chunks/handler50.js +1 -1
  50. package/dist/packem_chunks/handler51.js +1 -1
  51. package/dist/packem_chunks/handler53.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/handler58.js +2 -2
  55. package/dist/packem_chunks/handler59.js +1 -1
  56. package/dist/packem_chunks/handler6.js +5 -5
  57. package/dist/packem_chunks/handler60.js +8 -8
  58. package/dist/packem_chunks/handler61.js +1 -1
  59. package/dist/packem_chunks/handler62.js +16 -16
  60. package/dist/packem_chunks/handler63.js +2 -2
  61. package/dist/packem_chunks/handler64.js +1 -1
  62. package/dist/packem_chunks/handler65.js +4 -4
  63. package/dist/packem_chunks/handler66.js +2 -2
  64. package/dist/packem_chunks/handler67.js +3 -3
  65. package/dist/packem_chunks/handler68.js +2 -2
  66. package/dist/packem_chunks/handler69.js +3 -3
  67. package/dist/packem_chunks/handler7.js +1 -1
  68. package/dist/packem_chunks/handler70.js +4 -4
  69. package/dist/packem_chunks/handler71.js +5 -5
  70. package/dist/packem_chunks/handler72.js +2 -2
  71. package/dist/packem_chunks/handler73.js +87 -86
  72. package/dist/packem_chunks/handler74.js +1 -1
  73. package/dist/packem_chunks/handler75.js +33 -33
  74. package/dist/packem_chunks/handler76.js +6 -6
  75. package/dist/packem_chunks/handler77.js +2 -2
  76. package/dist/packem_chunks/handler78.js +19 -19
  77. package/dist/packem_chunks/handler8.js +1 -1
  78. package/dist/packem_chunks/handler9.js +1 -1
  79. package/dist/packem_chunks/heal-accept.js +1 -1
  80. package/dist/packem_chunks/heal.js +1 -1
  81. package/dist/packem_chunks/help-command.js +1 -1
  82. package/dist/packem_chunks/hex-plan.js +3 -0
  83. package/dist/packem_chunks/hex-projects.js +1 -0
  84. package/dist/packem_chunks/index2.js +52 -42
  85. package/dist/packem_chunks/index4.js +58 -802
  86. package/dist/packem_chunks/index5.js +802 -7
  87. package/dist/packem_chunks/index6.js +7 -58
  88. package/dist/packem_chunks/keys-refresh.js +1 -1
  89. package/dist/packem_chunks/lean.js +1 -1
  90. package/dist/packem_chunks/list.js +2 -2
  91. package/dist/packem_chunks/loader.js +1 -1
  92. package/dist/packem_chunks/maven-plan.js +1 -0
  93. package/dist/packem_chunks/maven-projects.js +1 -0
  94. package/dist/packem_chunks/nuget-plan.js +1 -0
  95. package/dist/packem_chunks/nuget-projects.js +1 -0
  96. package/dist/packem_chunks/orchestrator.js +33 -33
  97. package/dist/packem_chunks/prune.js +1 -1
  98. package/dist/packem_chunks/python-plan.js +3 -0
  99. package/dist/packem_chunks/python-projects.js +1 -0
  100. package/dist/packem_chunks/security.js +1 -1
  101. package/dist/packem_chunks/snapshot.js +2 -2
  102. package/dist/packem_chunks/status.js +1 -1
  103. package/dist/packem_chunks/swift-projects.js +1 -0
  104. package/dist/packem_chunks/sync.js +3 -2
  105. package/dist/packem_chunks/sync2.js +1 -1
  106. package/dist/packem_chunks/tripwire.js +2 -2
  107. package/dist/packem_chunks/ts-loader.js +5 -5
  108. package/dist/packem_chunks/verify-lockfile.js +2 -2
  109. package/dist/packem_chunks/version-resolver.js +3 -3
  110. package/dist/packem_chunks/zig-plan.js +1 -0
  111. package/dist/packem_chunks/zig-projects.js +1 -0
  112. package/dist/packem_shared/{affected-selection-M7riOi5-.js → affected-selection-BzIbfpA1.js} +1 -1
  113. package/dist/packem_shared/{affected-shas-CAwpSPmP.js → affected-shas-B2V84O0g.js} +1 -1
  114. package/dist/packem_shared/{ai-analysis-DSQQDFU9.js → ai-analysis-Cfj24UAy.js} +1 -1
  115. package/dist/packem_shared/{ai-fix-BTm1Z5og.js → ai-fix-DeRUtT-s.js} +1 -1
  116. package/dist/packem_shared/{augment-CBv1hwMR.js → augment-B9kSZuvW.js} +1 -1
  117. package/dist/packem_shared/{bin-Cbs_ix6l.js → bin-D9TsVhq2.js} +1 -1
  118. package/dist/packem_shared/build-scripts-CEDx_nJp.js +1 -0
  119. package/dist/packem_shared/{command-runtime-BD-4UmPB.js → command-runtime-p4IXiIf6.js} +1 -1
  120. package/dist/packem_shared/composer-DR3D-Psb.js +1 -0
  121. package/dist/packem_shared/dart-pubspec-BK_cK2EP.js +2 -0
  122. package/dist/packem_shared/dependency-scan-B8jroa1D.js +1 -0
  123. package/dist/packem_shared/{docker-1jgKW5Wd.js → docker-DXqV-07f.js} +3 -3
  124. package/dist/packem_shared/ecosystem-gate-1M3wnsTr.js +6 -0
  125. package/dist/packem_shared/failure-log-D2x5BT8S.js +2 -0
  126. package/dist/packem_shared/formatBytes-BHAzNIrn-CrusHOew.js +4 -0
  127. package/dist/packem_shared/gemspec-K7N05xxc.js +3 -0
  128. package/dist/packem_shared/go-modules-BsVqtyeC.js +1 -0
  129. package/dist/packem_shared/gradle-build-CHZDHyjI.js +8 -0
  130. package/dist/packem_shared/index-BO8qIogg.js +1 -0
  131. package/dist/packem_shared/index-BzhrR_iC.js +22 -0
  132. package/dist/packem_shared/{index-Cq-J2MdB.js → index-CNYv9D8g.js} +1 -1
  133. package/dist/packem_shared/{isAccessibleSync-DYKTrrvc-K2xhg6sV.js → isAccessibleSync-DYKTrrvc-C-_5cgwu.js} +1 -1
  134. package/dist/packem_shared/lifecycle-D6PMPor-.js +2 -0
  135. package/dist/packem_shared/lockfile-CiUtEbnt.js +1 -0
  136. package/dist/packem_shared/manifests-Du4yKlf_.js +1 -0
  137. package/dist/packem_shared/maven-pom-B0KG9kJQ.js +1 -0
  138. package/dist/packem_shared/{min-release-age-Da4V046o.js → min-release-age-JViyQuBM.js} +7 -7
  139. package/dist/packem_shared/missing-package-json-DnHMxRnG.js +1 -0
  140. package/dist/packem_shared/mix-project-RYvdZp3_.js +2 -0
  141. package/dist/packem_shared/multi-eco-lockfiles-CUUxUjHK.js +1 -0
  142. package/dist/packem_shared/{native-config-sync-CEB0rWlk.js → native-config-sync-TdTWjVgI.js} +1 -1
  143. package/dist/packem_shared/nuget-project-RApYSW_y.js +4 -0
  144. package/dist/packem_shared/{osv-bloom-BRacgzs7.js → osv-bloom-BCAX5ARR.js} +1 -1
  145. package/dist/packem_shared/package-version-DUcG-b7S.js +4 -0
  146. package/dist/packem_shared/packument-CyGSNquL.js +1 -0
  147. package/dist/packem_shared/pm-runner-CMSml1Bj.js +1 -0
  148. package/dist/packem_shared/{project-name-filter-zrdrEQbu.js → project-name-filter--bq-FL2f.js} +1 -1
  149. package/dist/packem_shared/{provenance-CFPT_FQA.js → provenance-DyF0b6KX.js} +1 -1
  150. package/dist/packem_shared/readJsonSync-CbryXYxN-EWl7_7KX.js +1 -0
  151. package/dist/packem_shared/registry-keys-DwB3ZXS_.js +1 -0
  152. package/dist/packem_shared/{resolve-explicit-opfIkxoY.js → resolve-explicit-BjCEm0s-.js} +1 -1
  153. package/dist/packem_shared/resolve-runtime-CNiHcVtx.js +1 -0
  154. package/dist/packem_shared/run-file-UBukWaha.js +1 -0
  155. package/dist/packem_shared/runtime-check-1U8HrQd9.js +1 -0
  156. package/dist/packem_shared/s1ngularity-YfmkD_AH.js +1 -0
  157. package/dist/packem_shared/{scan-progress-BGB9hIrD.js → scan-progress-C_zaZjyY.js} +2 -2
  158. package/dist/packem_shared/{selectors-CjIZ3gy2.js → selectors-edwcgNl3.js} +1 -1
  159. package/dist/packem_shared/{signatures-DpqZVmmU.js → signatures-CL3ckp_Y.js} +1 -1
  160. package/dist/packem_shared/spinner-DuB0K0Am.js +1 -0
  161. package/dist/packem_shared/swift-package-B6X5kzQE.js +1 -0
  162. package/dist/packem_shared/{tabs-Dz6xVpfX.js → tabs-RZd_e1M0.js} +1 -1
  163. package/dist/packem_shared/{target-merge-hsawesT4.js → target-merge-DVJl-7Qz.js} +1 -1
  164. package/dist/packem_shared/target-options-DsHFmRZH.js +1 -0
  165. package/dist/packem_shared/toolchain-BRdpaAC4.js +5 -0
  166. package/dist/packem_shared/typosquats-8u0drCqQ.js +1 -0
  167. package/dist/packem_shared/{use-measured-height-BPQg2q_p.js → use-measured-height-DWkDV9Dj.js} +1 -1
  168. package/dist/packem_shared/verify-B_MblU_Q.js +1 -0
  169. package/dist/packem_shared/{vis-update-app-D9KWJ9Ir.js → vis-update-app-D73C__fx.js} +1 -1
  170. package/dist/packem_shared/{vis-user-error-Bdg9NRuJ.js → vis-user-error-Cpg2FqA4.js} +1 -1
  171. package/dist/packem_shared/watch-CcTketln.js +1 -0
  172. package/dist/packem_shared/watch-loop-qRn0IHPG.js +11 -0
  173. package/dist/packem_shared/{writeFileSync-DJoHk3Ks-O9zOKqeM.js → writeFileSync-DJoHk3Ks-BPRoepNw.js} +1 -1
  174. package/dist/packem_shared/zig-manifest-P7ydLEOa.js +7 -0
  175. package/dist/release/plugin-sdk.d.ts +1 -1
  176. package/dist/release/types.d.ts +133 -7
  177. package/dist/runtime/preload.js +1 -1
  178. package/index.d.ts +204 -204
  179. package/index.js +52 -52
  180. package/package.json +11 -11
  181. package/schemas/vis-config.schema.json +265 -5
  182. package/schemas/vis-release-config.schema.json +132 -5
  183. package/dist/packem_shared/advisories-BSpzRIXP.js +0 -1
  184. package/dist/packem_shared/build-scripts-BIgkWVgY.js +0 -1
  185. package/dist/packem_shared/cyclonedx-CT1rtKxV.js +0 -4
  186. package/dist/packem_shared/dependency-scan-W9b2X0a1.js +0 -1
  187. package/dist/packem_shared/failure-log-B91LvYWw.js +0 -2
  188. package/dist/packem_shared/formatBytes-BHAzNIrn-CLYsxlUj.js +0 -4
  189. package/dist/packem_shared/index-CVBR-Kit.js +0 -22
  190. package/dist/packem_shared/index-onibYJkv.js +0 -1
  191. package/dist/packem_shared/lifecycle-DDJzp-4H.js +0 -2
  192. package/dist/packem_shared/lockfile-Bi1mw9jJ.js +0 -1
  193. package/dist/packem_shared/manifests-D671Sb1T.js +0 -1
  194. package/dist/packem_shared/missing-package-json-CMoHdvmj.js +0 -1
  195. package/dist/packem_shared/package-version-C5EPMgRw.js +0 -4
  196. package/dist/packem_shared/packument-DuEV-qSE.js +0 -1
  197. package/dist/packem_shared/path-CxEa27Rz-pjheKk6v.js +0 -1
  198. package/dist/packem_shared/pm-runner-9L6ocnu2.js +0 -1
  199. package/dist/packem_shared/readJsonSync-CbryXYxN-BxKjDZnF.js +0 -1
  200. package/dist/packem_shared/registry-keys-C3EsP_s4.js +0 -1
  201. package/dist/packem_shared/resolve-runtime-lJ5L9gU4.js +0 -1
  202. package/dist/packem_shared/run-file-DZff6GqY.js +0 -1
  203. package/dist/packem_shared/runtime-check-DAbveBr_.js +0 -1
  204. package/dist/packem_shared/s1ngularity-DTvrfWIM.js +0 -1
  205. package/dist/packem_shared/spinner-BVCEMm3G.js +0 -1
  206. package/dist/packem_shared/target-options-Bxb0Y5qa.js +0 -1
  207. package/dist/packem_shared/toolchain-887JoquG.js +0 -5
  208. package/dist/packem_shared/typosquats-Xv6dN4sr.js +0 -1
  209. package/dist/packem_shared/verify-BLoaI7En.js +0 -1
  210. package/dist/packem_shared/watch-BTZw2Y8Q.js +0 -1
  211. package/dist/packem_shared/watch-loop-Cjh2wlUl.js +0 -11
@@ -0,0 +1,5 @@
1
+ import{createRequire as z}from"node:module";import{e as p,l as H,z as M}from"./index-BzhrR_iC.js";import{y as v}from"./isAccessibleSync-DYKTrrvc-C-_5cgwu.js";import{p as A}from"./readJsonSync-CbryXYxN-EWl7_7KX.js";let B;const D=e=>(B??=z(import.meta.url))(e),k=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,T=e=>{if(typeof k<"u"&&k.versions&&k.versions.node){const[n,t]=k.versions.node.split(".").map(Number);if(n>22||n===22&&t>=3||n===20&&t>=16)return k.getBuiltinModule(e)}return D(e)},{execFileSync:P}=T("node:child_process"),{randomBytes:L}=T("node:crypto"),{writeFileSync:V,renameSync:q,unlinkSync:R}=T("node:fs"),{delimiter:U}=T("node:path"),J=["proto","mise","fnm","volta","asdf","nvm","corepack"],G={asdf:["bun","deno","go","node","npm","pnpm","python","ruby","rust","yarn"],corepack:["npm","pnpm","yarn"],fnm:["node"],mise:["aube","bun","deno","go","node","npm","pnpm","python","ruby","rust","yarn"],nvm:["node"],proto:["bun","deno","go","node","npm","pnpm","python","ruby","rust","yarn"],volta:["node","npm","pnpm","yarn"]},Z=["proto","mise","fnm","volta","asdf","nvm","corepack"],O={asdf:[".tool-versions"],corepack:[],fnm:[".nvmrc",".node-version"],mise:[".mise.toml",".config/mise.toml","mise.toml"],nvm:[".nvmrc"],proto:[".prototools"],volta:[]},y=new Map,b=e=>{const n=y.get(e);if(n!==void 0||y.has(e))return n;const t=process.env.PATH;if(!t){y.set(e,void 0);return}const o=process.platform==="win32"?["",...(process.env.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";")]:[""];for(const i of t.split(U)){const c=i.replaceAll(/^["']|["']$/g,"").trim();if(c!=="")for(const s of o){const a=`${c}${H}${e}${s}`;if(v(a))return y.set(e,a),a}}y.set(e,void 0)},S=(e,n=["--version"])=>{try{const t=P(e,n,{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3}),r=/\d+\.\d+(?:\.\d+)?/.exec(t);return r?r[0]:t.trim()||void 0}catch{return}},j=(e,n)=>{const t=p(e,"package.json");if(!v(t))return[];try{const o=A(t)[n];if(n==="volta"&&typeof o=="object"&&o!==null&&Object.keys(o).length>0)return["package.json"];if(n==="packageManager"&&typeof o=="string"&&o.length>0)return["package.json"]}catch{}return[]},X=(e,n)=>e==="volta"?j(n,"volta"):e==="corepack"?j(n,"packageManager"):O[e].filter(t=>v(p(n,t))),x=new Map,Y=()=>{x.clear(),y.clear()},N=(e,n)=>{{const i=x.get(e);if(i)return i}const t=[],r=!!b("pnpm")||!!b("yarn");for(const i of Z){const c=i==="nvm"?void 0:b(i),s=i==="nvm"&&!!process.env.NVM_DIR,a=X(i,e),l=!!c||s;i==="corepack"&&!l&&(!(a.length>0)||r)||!l&&a.length===0||t.push({binPath:c,configFiles:a,installed:l,name:i,version:c?S(c):void 0})}const o=Object.freeze(t);return x.set(e,o),o},$n=(e,n,t)=>{const r=N(e);return n?.preferredManager&&n.preferredManager!=="none"?r.find(o=>o.name===n.preferredManager)??{configFiles:[],installed:!1,name:n.preferredManager}:r.find(o=>o.installed&&o.configFiles.length>0)??r.find(o=>o.installed)??r.find(o=>o.configFiles.length>0)??{configFiles:[],installed:!1,name:"none"}},K=(e,n)=>{for(const t of n){const r=p(e,t);if(v(r))try{const o=M(r).trim();if(o!=="")return{name:t,value:o.replace(/^v/,"")}}catch{}}},Q=/^([a-z][\w-]*)\s*=\s*"?([^"\n#]+?)"?\s*(?:#.*)?$/i,nn=e=>{const n=p(e,".prototools");if(!v(n))return[];const t=M(n),r=[];let o=!1;for(const i of t.split(/\r?\n/)){const c=i.trim();if(c===""||c.startsWith("#"))continue;if(c.startsWith("[")){o=!0;continue}if(o)continue;const s=Q.exec(c);if(!s)continue;const[,a,l]=s,f=g(a);f&&r.push({source:".prototools",tool:f,version:l.trim()})}return r},en=/^\[tools\]\s*$/i,tn=/^([a-z][\w-]*)\s*=\s*"?([^"\n#]+?)"?\s*(?:#.*)?$/i,on=e=>{for(const n of O.mise){const t=p(e,n);if(!v(t))continue;const r=[],o=M(t);let i=!1;for(const c of o.split(/\r?\n/)){const s=c.trim();if(s===""||s.startsWith("#"))continue;if(s.startsWith("[")){i=en.test(s);continue}if(!i)continue;const a=tn.exec(s);if(!a)continue;const[,l,f]=a,d=g(l);d&&r.push({source:".mise.toml",tool:d,version:f.trim()})}if(r.length>0)return r}return[]},rn=e=>{const n=p(e,".tool-versions");if(!v(n))return[];const t=M(n),r=[];for(const o of t.split(/\r?\n/)){const i=o.trim();if(i===""||i.startsWith("#"))continue;const c=i.split(/\s+/);if(c.length<2)continue;const[s,...a]=c,l=g(s);l&&a[0]&&r.push({source:".tool-versions",tool:l,version:a[0]})}return r},g=e=>{switch(e.toLowerCase()){case"aube":return"aube";case"bun":return"bun";case"deno":return"deno";case"go":case"golang":return"go";case"node":case"nodejs":return"node";case"npm":return"npm";case"pnpm":return"pnpm";case"python":case"python3":return"python";case"ruby":return"ruby";case"rust":case"rustc":return"rust";case"yarn":return"yarn";default:return}},sn=e=>{const[n]=e.split("+",1),t=/^(pnpm|yarn|npm|bun)@(.+)$/.exec(n??"");if(!t)return;const r=g(t[1]);if(r)return{source:"packageManager",tool:r,version:t[2]}},an=(e,n)=>{const t=new Map,r=s=>{t.set(s.tool,s)},o=p(e,"package.json");let i={};try{v(o)&&(i=A(o))}catch{}if(i.engines)for(const[s,a]of Object.entries(i.engines)){const l=g(s);l&&typeof a=="string"&&r({source:"engines",tool:l,version:a})}if(i.packageManager){const s=sn(i.packageManager);s&&r(s)}if(i.volta)for(const[s,a]of Object.entries(i.volta)){const l=g(s);l&&typeof a=="string"&&r({source:"volta",tool:l,version:a})}const c=K(e,[".nvmrc",".node-version"]);c&&r({source:c.name===".nvmrc"?".nvmrc":".node-version",tool:"node",version:c.value});for(const s of rn(e))r(s);for(const s of on(e))r(s);for(const s of nn(e))r(s);if(n?.tools)for(const[s,a]of Object.entries(n.tools)){const l=g(s);l&&typeof a=="string"&&r({source:"vis.config.ts",tool:l,version:a})}return[...t.values()]},E={aube:{args:["--version"],binaries:["aube"]},bun:{args:["--version"],binaries:["bun"]},deno:{args:["--version"],binaries:["deno"]},go:{args:["version"],binaries:["go"]},node:{args:["--version"],binaries:["node"]},npm:{args:["--version"],binaries:["npm"]},pnpm:{args:["--version"],binaries:["pnpm"]},python:{args:["--version"],binaries:["python","python3"]},ruby:{args:["--version"],binaries:["ruby"]},rust:{args:["--version"],binaries:["rustc"]},yarn:{args:["--version"],binaries:["yarn"]}},F=e=>{const n=E[e];for(const t of n.binaries){const r=b(t);if(r)return S(r,n.args)}if(e==="node")return process.versions.node},W=(e,n)=>{const t=n.trim();if(t===""||t==="*"||t==="latest")return!0;if(/^\d[\d.]*$/.test(t))return e===t||e.startsWith(`${t}.`);const r=s=>s.split(/[.\-+]/).map(a=>Number.parseInt(a,10)||0),o=(s,a)=>{const l=r(s),f=r(a),d=Math.max(l.length,f.length);for(let h=0;h<d;h++){const $=l[h]??0,u=f[h]??0;if($!==u)return $-u}return 0},i=s=>{for(const a of s)if(a.startsWith(">=")){if(o(e,a.slice(2).trim())<0)return!1}else if(a.startsWith("<=")){if(o(e,a.slice(2).trim())>0)return!1}else if(a.startsWith(">")){if(o(e,a.slice(1).trim())<=0)return!1}else if(a.startsWith("<")){if(o(e,a.slice(1).trim())>=0)return!1}else if(a.startsWith("^")||a.startsWith("~")){const l=a.slice(1).trim(),[f,d]=r(l),[h,$]=r(e);if(h!==f||a.startsWith("~")&&$!==d||o(e,l)<0)return!1}return!0},c=t.split("||").map(s=>s.trim().split(/\s+/).filter(Boolean)).filter(s=>s.length>0);return c.length===0?!0:c.some(s=>i(s))},cn=(e,n)=>{switch(e){case".mise.toml":return["mise"];case".node-version":case".nvmrc":return["fnm","nvm","volta","proto","mise","asdf"];case".prototools":return["proto"];case".tool-versions":return["asdf","mise"];case"packageManager":return n==="pnpm"||n==="yarn"?["self-activate","volta","proto","mise","corepack"]:n==="npm"?["volta","proto","mise","asdf","corepack"]:n==="aube"?["mise"]:n==="bun"?["proto","mise","asdf"]:["volta","proto","mise"];case"volta":return["volta"];default:return["proto","mise","fnm","volta","asdf","nvm","corepack"]}},ln=(e,n,t)=>{if(t?.preferredManager&&t.preferredManager!=="none"&&_(t.preferredManager,e.tool)){const o=n.find(i=>i.name===t.preferredManager);return o?{installed:o.installed,name:o.name}:{installed:!1,name:t.preferredManager,note:`${t.preferredManager} is the preferred manager but isn't on PATH`}}const r=cn(e.source,e.tool);for(const o of r){if(o==="self-activate"){if((e.tool==="pnpm"||e.tool==="yarn")&&b(e.tool))return{installed:!0,name:"self-activate",note:`${e.tool} will activate ${e.version} from the packageManager field on next invocation`};continue}if(!_(o,e.tool))continue;if(n.find(c=>c.name===o)?.installed)return{installed:!0,name:o}}for(const o of r)if(!(o==="self-activate"||!_(o,e.tool)))return{installed:!1,name:o,note:`${o} can install ${e.tool} — run \`vis toolchain install\` after adding it to PATH`};return{installed:!1,name:"none",note:"No manager knows how to install this tool"}},_=(e,n)=>e==="none"?!1:e==="self-activate"?n==="pnpm"||n==="yarn":G[e].includes(n),fn=(e,n)=>{const t=N(e),o=an(e,n).map(i=>{const c=F(i.tool),s=c!==void 0&&W(c,i.version),a=ln(i,t,n);return{actual:c,expected:i,manager:a,matches:s}});return{detected:t,tools:o}},un=(e,n)=>{switch(e){case"asdf":return n?{args:["install",n.tool,n.version],bin:"asdf"}:void 0;case"corepack":return n?{args:["prepare",`${n.tool}@${n.version}`,"--activate"],bin:"corepack"}:{args:["prepare","--activate"],bin:"corepack",hint:"reads the packageManager field in package.json"};case"fnm":return n?.tool!=="node"?void 0:{args:["install",n.version],bin:"fnm"};case"mise":return n?{args:["install",`${n.tool}@${n.version}`],bin:"mise"}:void 0;case"none":return;case"nvm":return{args:[],bin:"nvm",hint:"nvm is a shell function — run `nvm install` / `nvm use` from your shell"};case"proto":return n?{args:["install",n.tool,n.version],bin:"proto"}:void 0;case"self-activate":return{args:[],bin:n?.tool??"pnpm",hint:`${n?.tool??"pnpm"} will self-activate on next invocation — no install needed`};case"volta":return n?{args:["install",`${n.tool}@${n.version}`],bin:"volta"}:{args:["install","node@lts"],bin:"volta",hint:"volta pins per-tool; specify <tool>@<version>"};default:{const t=e;throw new Error(`Unknown manager: ${t}`)}}},yn=(e,n)=>{switch(e){case"asdf":return{args:["local",n.tool,n.version],bin:"asdf",configChange:{file:".tool-versions",hint:`Pins ${n.tool} ${n.version}`}};case"corepack":return n.tool!=="npm"&&n.tool!=="pnpm"&&n.tool!=="yarn"?void 0:{args:["use",`${n.tool}@${n.version}`],bin:"corepack",configChange:{file:"package.json",hint:`Writes packageManager: "${n.tool}@${n.version}"`}};case"fnm":return n.tool==="node"?{args:["use",n.version],bin:"fnm"}:void 0;case"mise":return{args:["use","--",`${n.tool}@${n.version}`],bin:"mise",configChange:{file:".mise.toml",hint:`Pins ${n.tool} ${n.version}`}};case"none":return;case"nvm":return n.tool==="node"?{args:[],bin:"nvm",configChange:{file:".nvmrc",hint:"Write version to .nvmrc manually (nvm doesn't persist)."}}:void 0;case"proto":return{args:["pin",n.tool,n.version],bin:"proto",configChange:{file:".prototools",hint:`Pins ${n.tool} ${n.version}`}};case"self-activate":return{args:[],bin:n.tool,configChange:{file:"package.json",hint:`Set packageManager: "${n.tool}@${n.version}" — ${n.tool} will self-activate on next invocation`}};case"volta":return{args:["pin",`${n.tool}@${n.version}`],bin:"volta",configChange:{file:"package.json",hint:`Writes volta.${n.tool}`}};default:{const t=e;throw new Error(`Unknown manager: ${t}`)}}},Mn=e=>{for(const n of E[e].binaries){const t=b(n);if(t)return t}},wn=(e,n)=>{const t=E[n].binaries;if(e.installed&&e.binPath&&(e.name==="proto"||e.name==="mise"||e.name==="asdf"||e.name==="volta"||e.name==="fnm"))for(const r of t)try{const i=P(e.binPath,["which",r],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3}).trim();if(i)return i}catch{}for(const r of t){const o=b(r);if(o)return o}},I=(e,n)=>{const t=`${e}.${process.pid}.${L(6).toString("hex")}.tmp`;V(t,n);try{q(t,e)}catch(r){try{R(t)}catch{}throw r}},dn=(e,n)=>{if("packageManager"in e)return e.packageManager=n,e;const t={};let r=!1;for(const[o,i]of Object.entries(e))!r&&(o==="dependencies"||o==="devDependencies"||o==="peerDependencies"||o==="optionalDependencies")&&(t.packageManager=n,r=!0),t[o]=i;return r||(t.packageManager=n),t},kn=(e,n)=>{if(n.tool!=="pnpm"&&n.tool!=="yarn"&&n.tool!=="npm"&&n.tool!=="bun")return;const t=p(e,"package.json");if(!v(t))throw new Error(`Cannot pin ${n.tool}: ${t} does not exist.`);const r=M(t),i=/\n([ \t]+)/.exec(r)?.[1]??" ";let c;try{c=JSON.parse(r)}catch(f){throw new Error(`${t} is not valid JSON — fix it before running \`vis toolchain use\`. Underlying error: ${f.message}`,{cause:f})}const s=`${n.tool}@${n.version}`,a=dn(c,s),l=r.endsWith(`
2
+ `)?`
3
+ `:"";return I(t,`${JSON.stringify(a,void 0,i)}${l}`),s},Tn=(e,n)=>{const t=p(e,"package.json");if(!v(t))return;const r=M(t);let o;try{o=JSON.parse(r)}catch(a){throw new Error(`${t} is not valid JSON — fix it before running \`vis toolchain use\`. Underlying error: ${a.message}`,{cause:a})}if(o.engines?.[n.tool]===void 0||o.engines[n.tool]===n.version)return;o.engines[n.tool]=n.version;const c=/\n([ \t]+)/.exec(r)?.[1]??" ",s=r.endsWith(`
4
+ `)?`
5
+ `:"";return I(t,`${JSON.stringify(o,void 0,c)}${s}`),n.version},Pn=e=>{const n=/^([a-z][\w-]*)@(.+)$/i.exec(e.trim());if(!n)return;const t=g(n[1]);if(t)return{source:"vis.config.ts",tool:t,version:n[2]}},mn=async(e,n,t)=>{const r=fn(e,n),o=r.tools.filter(f=>!f.matches);if(o.length===0)return{attempted:[],failed:[],upToDate:!0};const i=r.detected.some(f=>f.installed);if(!(n?.autoInstall??i))return{attempted:[],failed:[],upToDate:!1};const s=[],a=[],l=new Map;for(const f of o){const d=l.get(f.manager.name);d?d.push(f):l.set(f.manager.name,[f])}for(const[f,d]of l){if(f==="self-activate"){for(const{expected:u}of d)t.info(`toolchain: ${u.tool} ${u.version} will self-activate on next ${u.tool} invocation`),s.push(u);continue}if(f==="none"){for(const{expected:u}of d)a.push({error:`no manager can install ${u.tool} — install one of ${J.join(", ")}`,spec:u});continue}if(!r.detected.find(u=>u.name===f)?.installed){for(const{expected:u}of d)a.push({error:`${f} is not on PATH`,spec:u});continue}const $=d.map(u=>({invocation:un(f,u.expected),tool:u})).filter(u=>u.invocation!==void 0);for(const{invocation:u,tool:C}of $){const{expected:m}=C;if(u.bin==="nvm"&&u.args.length===0){const w=F(m.tool);if(w!==void 0&&W(w,m.version)){t.info(`toolchain: ${m.tool} ${w} already satisfies ${m.version}; skipping nvm shell activation`),s.push(m);continue}t.warn(`toolchain: nvm requires a shell-side activation for ${m.tool} ${m.version}. Run \`nvm install\` / \`nvm use\` manually.`),a.push({error:"nvm requires shell-side activation",spec:m});continue}t.info(`toolchain: $ ${u.bin} ${u.args.join(" ")}`);try{P(u.bin,u.args,{cwd:e,stdio:"inherit"}),s.push(m),f==="fnm"&&vn(u.bin,t)}catch(w){a.push({error:w.message,spec:m});break}}}return Y(),{attempted:s,failed:a,upToDate:!1}},_n=async(e,n,t,r=!1)=>{if(r)return;const o=await mn(e,n,t);for(const i of o.failed)t.warn(`toolchain: ${i.spec.tool} ${i.spec.version} — ${i.error}`)},vn=(e,n)=>{const t=process.platform==="win32"?"powershell":"bash";try{const r=P(e,["env","--shell",t],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3});for(const o of r.split(/\r?\n/)){const i=o.trim();if(i==="")continue;const c=/^\$env:([A-Z_]\w*)\s*=\s*(.+)$/i.exec(i);if(c){const[,l,f]=c;process.env[l]=f.replaceAll(/^["']|["']$/g,"");continue}const s=/^set\s+"?([A-Z_]\w*)=(.*?)"?$/i.exec(i);if(s){const[,l,f]=s;process.env[l]=f;continue}const a=/^(?:export\s+)?([A-Z_]\w*)=(.+)$/i.exec(i);if(a){const[,l,f]=a;process.env[l]=f.replaceAll(/^["']|["']$/g,"")}}}catch(r){n.warn(`toolchain: could not activate fnm env (${r.message}). Subsequent tasks may use the previous Node version.`)}};export{J as S,Pn as a,un as b,ln as c,yn as d,wn as e,N as f,fn as g,Mn as h,$n as p,_n as r,Tn as u,kn as w};
@@ -0,0 +1 @@
1
+ import{createRequire as $}from"node:module";import{X as j,b as k}from"./index.server-sXNQYpsl.js";import{e as D}from"./index-BzhrR_iC.js";import{g as M}from"./_commonjsHelpers-DTfxOvZk.js";import{c as g,p as i}from"../packem_chunks/cli-main.js";import{y as A}from"./isAccessibleSync-DYKTrrvc-C-_5cgwu.js";import{p as R}from"./readJsonSync-CbryXYxN-EWl7_7KX.js";let _;const z=e=>(_??=$(import.meta.url))(e),l=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,T=e=>{if(typeof l<"u"&&l.versions&&l.versions.node){const[o,r]=l.versions.node.split(".").map(Number);if(o>22||o===22&&r>=3||o===20&&r>=16)return l.getBuiltinModule(e)}return z(e)},{createInterface:S}=T("node:readline");var B=["aj","aju","av","avj","ejv","jav","jv"],C=["angula","angular-node","angularjs"],E=["auto-prefixer"],L=["aaxios","aios","axio","axioos","axios-node","axioss","axis","axiso","axois","axos","axxios"],O=["abel","babbel","babe","babel-js","babel-node","babl","bable","bbael","bebel"],F=["bcrpyt","bcrypt-node","brcypt","crypt","dcrypt"],I=["bcryptjs-node","dcryptjs"],P=["bunan","bunya","bunyan-node","buynan"],U=["cai","cha","chaijs","chal","chi","chia","hai"],W=["cahlk","calk","cchalk","ch4lk","cha1k","chaalk","chaik","chak","chakl","chalk-node","chalkk","challk","chhalk","chlak","chlk","halk","hcalk"],V=["cheero","cherio"],X=["c0lor","ccolor","clor","colo","coloor","color-js","colorjs","colorr","colr","coolor","coolr"],J=["ccolors","colors-node","colorss","colorz","colrs","coolors"],Y=["c0mmander","ccommander","cmmander","cmomander","co-mmander","comamnder","comander","comm4nder","commaander","commader","commadner","commamder","command3r","commandder","commande","commandeer","commander-js","commanderr","commandr","commandre","commanedr","commaner","commannder","commender","commmander","commnader","commnder","coommander","ocmmander","ommander"],G=["cor","corss","cos","cosr","cros","crs","ors"],H=["days"],K=["d3bug","dbeug","dbug","ddebug","debbug","debg","debgu","debu","debu9","debug-js","debug-node","debugg","debugjs","debuug","deebug","deubg","deug","ebug","edbug"],Q=["dot-env","dotenv-node","dotenvjs","dotevn"],Z=["3lectron","eectron","eelctron","eelectron","el3ctron","elcetron","elctron","elecctron","elecron","elecrton","electon","electorn","electr0n","electrn","electrno","electro","electrom","electron-node","electronn","electroon","electrron","electtron","eleectron","eletcron","eletron","ellectron","lectron","leectron"],N=["asbuild","ebuild","esbuild-node","esbuildjs","ezbuild","sbuild"],ee=["aslint","elint","eslint-js","eslint-node","eslit","ezlint","slint"],oe=["eexpress","epress","epxress","experss","expess","exppress","expreess","expres","express-node","expressjs","expresss","exprress","exprses","exprss","exress","exrpess","exxpress","xepress","xpress"],se=["astify"],re=["firebasejs"],te=["form1dable"],ae=["glb","glo","glob-js","globjs","gob","golb","lob"],ce=["go","goot","gotjs","gott","gt","gto","ogt","ot","qot"],ne=["helmetjs","helnet"],ie=["homo","hon","hoo","hoon","ohno","ono"],de=["inquire","inquirer-js","nquirer"],le=["iredis"],me=["ejst","est","jast","jes","jestjs","jestt","jet","jets","jst"],pe=["imp","jim","jip","jmp"],ue=["ji","jio","jo","joii","jol","oi","oji"],he=["jdom","jsdm","jsdo","jsdom-js","jsdon","jsom","sdom"],ve=["jsonwebtoken-js","jsonwebtoken-node"],be=["ka","kao","ko","koaa","koajs","koe","oa","oka"],je=["1odash","iodash","l0dash","ldash","ldoash","llodash","lo-dash","loadsh","loash","lobash","lod4sh","lodaash","lodah","lodahs","lodas","lodash-node","lodashh","lodassh","loddash","lodesh","lodsah","lodsh","loodash","odash","oldash"],ke=["luca","luci","lucie"],fe=["luon","luxo","luxon-js"],ge=["imcromatch","mciromatch","micormatch","micrmoatch","micro-match","microamtch","micromacth","micromathc","micromtach","mircomatch"],ye=["minimath"],xe=["mcha","mmocha","moca","moch","mocha-js","moha","nocha","ocha"],we=["m0ment","mment","mmoent","mmoment","moemnt","moent","mom3nt","momeent","momemt","momen","momen7","momennt","moment-js","momentjs","momentt","momet","mometn","momment","momnet","momnt","monent","mooment","oment","omment"],qe=["mognoose","mogoose","mongoos","mongose","monqoose","moongoose"],$e=["moran","organ"],_e=["muler","multer-js","muter"],ze=["mysql"],Te=["ext","mext","n3xt","naxt","net","netx","nex","next-js","next-node","nextjs","nxt"],Se=["node-mailer","nodemailer-js"],De=["nodemo","nodemonjs","nodmeon"],Me=["oar","or","ora-node","ore","ra","roa"],Ae=["arcel","parce","parceljs"],Re=["passport-js"],Be=["phase","phaser-node"],Ce=["ino","pimo","pin","pino-node","pinojs","pio","pion"],Ee=["playright","playwright-js"],Le=["postcss-js","postcss-node","potscss"],Oe=["pettier","pprettier","pretier","prettierjs","prettierr","prtetier"],Fe=["prima","prism","prisma-js","prismajs","prizma"],Ie=["pupeteer"],Pe=["rada","rama","ramd","randa"],Ue=["eact","eract","r3act","raact","ract","raect","re4ct","reaact","reac","reac7","reacct","react-node","reactjs","reactt","reat","reatc","recat","rect","reeact","reect","rreact"],We=["erdis","radis","rdis","redi","redis-js","redis-node","rediss","rediz","reds","reis","rredis"],Ve=["resen","rsend"],Xe=["ollup","rollup-js","rollup-node"],Je=["ass","asss","sas","sass-node","sess","ssas","sss"],Ye=["emver","seemver","semver-node","semvre","senver","sever"],Ge=["sequelize-js","sequelize-node"],He=["harp","shap","shar","sharp-js","sharpjs"],Ke=["stipe","strip","stripe-node","tripe"],Qe=["supabase-js"],Ze=["suelte","svelt3","svelte-js","sveltejs","velte"],Ne=["tailwindcss-js"],eo=["auri","taui"],oo=["hree","htree","thee","there","three-js","three-node","tree"],so=["stx","sx","ts","tsxx","ttsx","tx","txs","tzx"],ro=["ttypescript","typecript","typescipt","typescript-node","typescriptjs","typescrit","typescritp"],to=["udnerscore","undercore","underscoer","underscore-node","underscroe","undersocre","undesrcore"],ao=["uid","uud","uudi","uui","uuid-js","uuid-node","uuidjs","vuid"],co=["ite","vie","vit","vita","vite-node","vitee","vlte","vte"],no=["itest","uitest","vitestjs","vitezt","vittest","vtest"],io=["ue","uue","uve","ve","veu","vu","vu3","vua","vue-node","vuee","vuejs","vuue","vve","vvue"],lo=["web-pack","weback","webpac","webpack-node","webpackjs","webpak","weebpack","wepack","wepback"],mo=["winson","winston-js","winstoon"],po=["up","uyp","yp","yu","yupjs","yupp"],uo=["od","zd","zdo","zo","zob","zod-js","zodjs"];const ho={ajv:B,angular:C,autoprefixer:E,"aws-sdk":["awssdk","ews-sdk"],axios:L,babel:O,bcrypt:F,bcryptjs:I,"body-parser":["body-paresr","body-parse","body-parser-js","body_parser"],bunyan:P,chai:U,chalk:W,cheerio:V,color:X,colors:J,commander:Y,"cookie-parser":["cookie-parse","cookieparser"],cors:G,"cross-env":["crossenv"],"date-fns":["data-fns","date-fn"],dayjs:H,debug:K,dotenv:Q,electron:Z,esbuild:N,eslint:ee,express:oe,fastify:se,firebase:re,formidable:te,glob:ae,got:ce,helmet:ne,hono:ie,inquirer:de,ioredis:le,jest:me,jimp:pe,joi:ue,jsdom:he,jsonwebtoken:ve,koa:be,lodash:je,lucia:ke,luxon:fe,micromatch:ge,minimatch:ye,mocha:xe,moment:we,mongoose:qe,morgan:$e,multer:_e,mysql2:ze,next:Te,"node-fetch":["node-fecth","node-fethc","node.fetch"],nodemailer:Se,nodemon:De,ora:Me,parcel:Ae,passport:Re,phaser:Be,pino:Ce,playwright:Ee,postcss:Le,prettier:Oe,prisma:Fe,puppeteer:Ie,ramda:Pe,react:Ue,"react-dom":["eact-dom","eract-dom","r3act-dom","ract-dom","raect-dom","re4ct-dom","reaact-dom","reac-dom","reac7-dom","reacct-dom","react-bom","react-d0m","react-ddom","react-dm","react-dmo","react-do","react-domm","react-don","react-doom","react-odm","react-om","react.dom","reactdom","reactt-dom","reat-dom","reatc-dom","recat-dom","rect-dom","reeact-dom","rreact-dom"],redis:We,resend:Ve,rollup:Xe,sass:Je,semver:Ye,sequelize:Ge,sharp:He,"socket.io":["ocket.io","oscket.io","scket.io","scoket.io","soccket.io","socekt.io","socet.io","sock3t.io","socke.io","socke7.io","sockeet.io","socket.1o","socket.i","socket.iio","socket.ioo","socket.lo","socket.o","socket.oi","sockett.io","sockket.io","sockt.io","sockte.io","sokcet.io","soket.io","soocket.io","ssocket.io"],stripe:Ke,supabase:Qe,svelte:Ze,tailwindcss:Ne,tauri:eo,three:oo,"ts-node":["tts-node"],tsx:so,typescript:ro,underscore:to,uuid:ao,vite:co,vitest:no,vue:io,webpack:lo,winston:mo,yup:po,zod:uo};var h,f;function vo(){return f||(f=1,h={"@tanstack/start":["start-tanstack-app","tanstack","tanstack-app","tanstack-start"]}),h}var bo=vo();const jo=M(bo),ko={a:["4","e"],b:["d"],d:["b"],e:["3","a"],g:["9","q"],i:["1","l"],l:["1","i"],m:["n"],n:["m"],o:["0"],s:["5","z"],t:["7"],u:["v"],v:["u"]},fo=["app","cli","core","kit","lib","pkg","sdk"],go=e=>{const o=new Set;if(e.length<3)return o;for(let s=0;s<e.length;s++){const a=e[s],c=a==="-"||a==="."||a==="_";if(c||o.add(e.slice(0,s)+e.slice(s+1)),c||o.add(e.slice(0,s)+a+e.slice(s)),s<e.length-1&&e[s]!==e[s+1]){const u=e[s+1]==="-"||e[s+1]==="."||e[s+1]==="_";if(!c&&!u){const d=[...e];[d[s],d[s+1]]=[d[s+1],d[s]],o.add(d.join(""))}}const n=e[s].toLowerCase(),b=ko[n];if(b)for(const u of b)o.add(e.slice(0,s)+u+e.slice(s+1))}const r=/[-._]/g;if(r.test(e))o.add(e.replaceAll(r,"")),o.add(e.replaceAll(r,"-")),o.add(e.replaceAll(r,".")),o.add(e.replaceAll(r,"_"));else if(e.length>5)for(let s=2;s<e.length-2;s++)o.add(`${e.slice(0,s)}-${e.slice(s)}`),o.add(`${e.slice(0,s)}.${e.slice(s)}`),o.add(`${e.slice(0,s)}_${e.slice(s)}`);if(e.startsWith("@")||(o.add(`${e}-js`),o.add(`${e}js`),o.add(`${e}-node`)),e.startsWith("@")){const s=e.indexOf("/");if(s>1&&s<e.length-1){const a=e.slice(1,s),c=e.slice(s+1);a.length>=3&&o.add(a);for(const n of["","-",".","_"])o.add(`${a}${n}${c}`),o.add(`${c}${n}${a}`);for(const n of fo)o.add(`${a}-${n}`),o.add(`${c}-${a}-${n}`),o.add(`${n}-${a}-${c}`)}}return o.delete(e),o};let v,p,m;const y=()=>{if(!v){const e={};for(const o of[ho,jo])for(const[r,t]of Object.entries(o)){const s=e[r]??(e[r]=[]);for(const a of t)s.includes(a)||s.push(a)}v=e}return v},yo=()=>{if(!p){p=new Map;for(const[e,o]of Object.entries(y()))for(const r of o)p.set(r,e)}return p},xo=()=>{if(!m){m=new Map;for(const e of Object.keys(y()))for(const o of go(e))m.has(o)||m.set(o,e)}return m},wo=e=>e.startsWith("@")?e.split("/")[1]??e:e,qo=e=>{const o=wo(e),r=yo().get(o);if(r)return{input:e,legitimate:r,method:"blocklist"};const t=xo().get(o);if(t)return{input:e,legitimate:t,method:"heuristic"}},x=(e,o)=>{const r=o?new Set(o):void 0,t=[];for(const s of e){if(r?.has(s))continue;const a=qo(s);a&&t.push(a)}return t},w=(e,o)=>{i.warn(""),i.warn(j(`Possible typosquat${e.length===1?"":"s"} ${o}:`));for(const r of e){const t=r.method==="blocklist"?"known typosquat":"similar name";i.warn(` ${k("⚠")} ${j(r.input)} — did you mean ${k(r.legitimate)}? (${t})`)}i.warn("")},q=async e=>{if(!process.stdin.isTTY){i.warn("Aborting: potential typosquat detected in non-interactive mode. Use --no-typosquat-check to skip.");return}const o=S({input:process.stdin,output:process.stdout}),r=await new Promise(t=>{o.question(e,s=>{t(s.trim().toLowerCase())})});return o.close(),r},Co=async(e,o)=>{if(g("typosquats"))return{ok:!0,packages:e};const r=x(e,o);if(r.length===0)return{ok:!0,packages:e};w(r,"detected");const t=await q(`Use suggested package${r.length===1?"":"s"} instead? [S]uggested / [y]es, keep original / [N]o, abort (default: N) `);if(t===void 0)return{ok:!1,packages:e};if(t==="s"||t==="suggested"){const s=new Map(r.map(c=>[c.input,c.legitimate]));return{ok:!0,packages:e.map(c=>s.get(c)??c)}}return t==="y"||t==="yes"?{ok:!0,packages:e}:{ok:!1,packages:e}},$o=/^(?:npm|pnpm|yarn):(.+?)(?:@.*)?$/,_o=e=>$o.exec(e)?.[1],zo=e=>{if(!A(e))return[];const o=R(e),r={...o.dependencies,...o.devDependencies,...o.optionalDependencies,...o.peerDependencies},t=new Set;for(const[s,a]of Object.entries(r)){t.add(s);const c=_o(a);c&&t.add(c)}return[...t]},Eo=async(e,o)=>{if(g("typosquats"))return!0;const r=D(e,"package.json"),t=zo(r);if(t.length===0)return!0;const s=x(t,o);if(s.length===0)return!0;w(s,"in package.json dependencies"),i.warn("Fix the package name in package.json before proceeding.");const a=await q("Continue anyway? [y/N] ");return a==="y"||a==="yes"};export{Co as r,Eo as s};
@@ -1 +1 @@
1
- import{u as r,z as a}from"../packem_chunks/catalog.js";const f=(u,n)=>{const t=r.useRef(null),[s,o]=r.useState(u);return r.useLayoutEffect(()=>{if(!t.current)return;const{height:e}=a(t.current);e>0&&e!==s&&(o(e),n?.(e))}),{measuredHeight:s,ref:t}};export{f as u};
1
+ import{x as r,z as a}from"../packem_chunks/catalog.js";const f=(u,n)=>{const t=r.useRef(null),[s,o]=r.useState(u);return r.useLayoutEffect(()=>{if(!t.current)return;const{height:e}=a(t.current);e>0&&e!==s&&(o(e),n?.(e))}),{measuredHeight:s,ref:t}};export{f as u};
@@ -0,0 +1 @@
1
+ import{createRequire as y}from"node:module";import{e as o,z as f}from"./index-BzhrR_iC.js";import{l as b}from"../packem_chunks/ts-loader.js";import{y as a}from"./isAccessibleSync-DYKTrrvc-C-_5cgwu.js";let u;const h=c=>(u??=y(import.meta.url))(c),p=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,m=c=>{if(typeof p<"u"&&p.versions&&p.versions.node){const[t,e]=p.versions.node.split(".").map(Number);if(t>22||t===22&&e>=3||t===20&&e>=16)return p.getBuiltinModule(c)}return h(c)},{readdirSync:j}=m("node:fs"),v=[".husky/pre-commit",".vis/hooks/pre-commit",".git/hooks/pre-commit"],_=[".secretlintrc",".secretlintrc.json",".secretlintrc.js",".secretlintrc.mjs",".secretlintrc.cjs",".secretlintrc.yml",".secretlintrc.yaml"],$=[".syncpackrc",".syncpackrc.json",".syncpackrc.yaml",".syncpackrc.yml",".syncpackrc.cjs",".syncpackrc.js",".syncpackrc.mjs",".syncpackrc.ts","syncpack.config.cjs","syncpack.config.js","syncpack.config.mjs","syncpack.config.ts"],w=c=>{const t=o(c,"package.json");if(!a(t))return[];let e;try{e=JSON.parse(f(t))}catch{return[]}const n=[];if(e.scripts)for(const[s,i]of Object.entries(e.scripts))typeof i=="string"&&(/\bgitleaks\b/.test(i)&&n.push({detail:`Script "${s}" still invokes gitleaks: ${i}`,kind:"script",location:"package.json",tool:"gitleaks"}),/\bsecretlint\b/.test(i)&&n.push({detail:`Script "${s}" still invokes secretlint: ${i}`,kind:"script",location:"package.json",tool:"secretlint"}),/\bsyncpack\b/.test(i)&&n.push({detail:`Script "${s}" still invokes syncpack: ${i}`,kind:"script",location:"package.json",tool:"syncpack"}),/\bsherif\b/.test(i)&&n.push({detail:`Script "${s}" still invokes sherif: ${i}`,kind:"script",location:"package.json",tool:"sherif"}));if(e.devDependencies)for(const s of Object.keys(e.devDependencies))(s==="gitleaks"||s==="@gitleaks/cli")&&n.push({detail:`devDependency \`${s}\` is still installed`,kind:"devDep",location:"package.json",tool:"gitleaks"}),(s==="secretlint"||s.startsWith("@secretlint/"))&&n.push({detail:`devDependency \`${s}\` is still installed`,kind:"devDep",location:"package.json",tool:"secretlint"}),s==="syncpack"&&n.push({detail:`devDependency \`${s}\` is still installed`,kind:"devDep",location:"package.json",tool:"syncpack"}),s==="sherif"&&n.push({detail:`devDependency \`${s}\` is still installed`,kind:"devDep",location:"package.json",tool:"sherif"});return e.sherif&&n.push({detail:"`sherif` config block still present in package.json",kind:"config",location:"package.json",tool:"sherif"}),n},C=c=>{const t=[];for(const e of v){const n=o(c,e);if(!a(n))continue;const s=f(n);/\bgitleaks\b/.test(s)&&t.push({detail:"gitleaks invocation still present in hook",kind:"hook",location:e,tool:"gitleaks"}),/\bsecretlint\b/.test(s)&&t.push({detail:"secretlint invocation still present in hook",kind:"hook",location:e,tool:"secretlint"}),/\bsyncpack\b/.test(s)&&t.push({detail:"syncpack invocation still present in hook",kind:"hook",location:e,tool:"syncpack"}),/\bsherif\b/.test(s)&&t.push({detail:"sherif invocation still present in hook",kind:"hook",location:e,tool:"sherif"})}return t},D=c=>{const t=[];for(const e of _)a(o(c,e))&&t.push({detail:"secretlint config should be removed after migration",kind:"config",location:e,tool:"secretlint"});for(const e of $)a(o(c,e))&&t.push({detail:"syncpack config should be removed after migration",kind:"config",location:e,tool:"syncpack"});return t},S=[".github/workflows",".gitlab-ci.yml",".circleci/config.yml",".woodpecker.yml",".drone.yml"],I=c=>{const t=[],e=n=>{const s=o(c,n);if(!a(s))return;const i=f(s);/\bsyncpack\b/.test(i)&&t.push({detail:"syncpack invocation still present in CI",kind:"ci",location:n,tool:"syncpack"}),/\bsherif\b/.test(i)&&t.push({detail:"sherif invocation still present in CI",kind:"ci",location:n,tool:"sherif"})};for(const n of S){const s=o(c,n);if(a(s)){if(n===".github/workflows"){try{for(const i of j(s))(i.endsWith(".yml")||i.endsWith(".yaml"))&&e(`.github/workflows/${i}`)}catch{}continue}e(n)}}return t},N=c=>{const t=[],e=o(c,"pnpm-workspace.yaml");if(a(e)){let s;try{s=b(e)}catch{s=void 0}if(s&&typeof s=="object"){const i=s.catalog;i&&typeof i.syncpack=="string"&&t.push({detail:"`syncpack` still listed in pnpm-workspace.yaml#catalog",kind:"catalog",location:"pnpm-workspace.yaml",tool:"syncpack"});const l=s.catalogs;if(l&&typeof l=="object")for(const[k,r]of Object.entries(l))r&&typeof r.syncpack=="string"&&t.push({detail:`\`syncpack\` still listed in pnpm-workspace.yaml#catalogs.${k}`,kind:"catalog",location:"pnpm-workspace.yaml",tool:"syncpack"})}}const n=o(c,"package.json");if(a(n)){let s;try{s=JSON.parse(f(n))}catch{return t}const i=s.workspaces;if(i&&typeof i=="object"&&!Array.isArray(i)){const k=i.catalog;k&&typeof k.syncpack=="string"&&t.push({detail:"`syncpack` still listed in package.json#workspaces.catalog",kind:"catalog",location:"package.json",tool:"syncpack"});const r=i.catalogs;if(r&&typeof r=="object")for(const[g,d]of Object.entries(r))d&&typeof d.syncpack=="string"&&t.push({detail:`\`syncpack\` still listed in package.json#workspaces.catalogs.${g}`,kind:"catalog",location:"package.json",tool:"syncpack"})}const l=s.catalog;l&&typeof l.syncpack=="string"&&t.push({detail:"`syncpack` still listed in package.json#catalog",kind:"catalog",location:"package.json",tool:"syncpack"})}return t},O=c=>[...w(c),...C(c),...D(c),...I(c),...N(c)],F=(c,t)=>{const e=O(c);if(e.length===0)return t.info("✓ No unmigrated gitleaks/secretlint/sherif/syncpack references found."),[];t.warn(`Found ${String(e.length)} unmigrated reference(s):`);for(const n of e)t.warn(` [${n.kind}] ${n.location} — ${n.detail}`);return e};export{O as s,F as v};
@@ -1 +1 @@
1
- import{A as e,X as t,m as r,u as p}from"../packem_chunks/catalog.js";import{T as ae,U as je,V as pe,W as fe,v as me,X as z,Y as ce}from"../packem_chunks/cli-main.js";import{l as we}from"./spinner-BVCEMm3G.js";import{s as xe}from"./formatBytes-BHAzNIrn-CLYsxlUj.js";import{n as Ce,a as be}from"./tabs-Dz6xVpfX.js";import{u as Te}from"./use-measured-height-BPQg2q_p.js";const _e=({current:a,total:l})=>{const{columns:i}=ae(),s=i||80,d=l>0?Math.min(1,a/l):0,h=`${String(Math.round(d*100)).padStart(3)}%`,f=`${String(a)}/${String(l)}`,w=Math.max(10,s-2-h.length-1),g=Math.round(w*d),j=w-g;return e.jsxs(t,{flexDirection:"column",paddingX:1,children:[e.jsxs(t,{children:[e.jsx(we,{type:"dots"}),e.jsx(r,{children:" Checking catalog dependencies "}),e.jsx(r,{dimColor:!0,children:f})]}),e.jsxs(t,{children:[e.jsx(r,{color:"cyan",children:"━".repeat(g)}),e.jsx(r,{dimColor:!0,children:"─".repeat(j)}),e.jsxs(r,{dimColor:!0,children:[" ",h]})]})]})},Z=["default","name","updateType","severity"],ne=a=>{const l=a.vulnerabilities?.map(i=>i.severity)??[];return l.includes("CRITICAL")?4:l.includes("HIGH")?3:l.includes("MODERATE")?2:l.includes("LOW")?1:0},de={digest:0,major:3,minor:2,patch:1,pin:0,unknown:0},he=(a,l)=>{if(l==="default")return a;const i=[...a];return l==="name"?i.sort((s,d)=>s.packageName.localeCompare(d.packageName)):l==="updateType"?i.sort((s,d)=>(de[d.updateType]??0)-(de[s.updateType]??0)||s.packageName.localeCompare(d.packageName)):i.sort((s,d)=>ne(d)-ne(s)||s.packageName.localeCompare(d.packageName)),i},J=a=>`${a.ecosystem}|${a.file}:${String(a.line)}|${a.name}`,I=a=>`${a.catalogName} ${a.packageName}`,W=a=>{const l=new Map;for(const i of a){const s=l.get(i.catalogName);s?s.push(i):l.set(i.catalogName,[i])}return l},$=(a,l,i)=>{let s=a;if(l!=="all"&&(s=l==="security"?s.filter(d=>d.vulnerabilities&&d.vulnerabilities.length>0||d.socketReport&&d.socketReport.alerts.length>0):s.filter(d=>d.updateType===l)),i){const d=i.toLowerCase();s=s.filter(h=>h.packageName.toLowerCase().includes(d))}return s};class Ke{#e;#t=new Set;#l;#s;#i=null;constructor(l,i=null,s=[]){this.#l=l,this.#s=s,i&&(this.#i=new Map(i.recommendations.map(d=>[d.package,d]))),this.#e={aiResult:i,allChecked:!0,applyProgress:null,checkedEcosystemKeys:new Set(s.map(d=>J(d))),checkedEntries:new Set(l.map(d=>I(d))),ecosystemEntries:s,entries:l,error:null,filterActive:!1,filterText:"",filterType:"all",focusedPanel:"list",groupedByCatalog:W(l),phase:"browsing",selectedIndex:0,sortMode:"default"}}getSnapshot=()=>this.#e;subscribe=l=>(this.#t.add(l),()=>{this.#t.delete(l)});getFilteredEntries(){return he($(this.#l,this.#e.filterType,this.#e.filterText),this.#e.sortMode)}setSortMode(l){if(l===this.#e.sortMode)return;const s=this.getFilteredEntries()[this.#e.selectedIndex]?.packageName,d=he($(this.#l,this.#e.filterType,this.#e.filterText),l),h=s?Math.max(0,d.findIndex(f=>f.packageName===s)):0;this.#r({...this.#e,selectedIndex:h,sortMode:l})}cycleSortMode(){const l=Z.indexOf(this.#e.sortMode),i=Z[(l+1)%Z.length]??"default";this.setSortMode(i)}getRecommendation(l){return this.#i?.get(l)}getCheckedEntries(){return this.#l.filter(l=>this.#e.checkedEntries.has(I(l)))}getCheckedEcosystemEntries(){return this.#s.filter(l=>this.#e.checkedEcosystemKeys.has(J(l)))}toggleEcosystemCheck(l){const i=new Set(this.#e.checkedEcosystemKeys);i.has(l)?i.delete(l):i.add(l),this.#r({...this.#e,checkedEcosystemKeys:i})}checkAllEcosystem(){this.#r({...this.#e,checkedEcosystemKeys:new Set(this.#s.map(l=>J(l)))})}uncheckAllEcosystem(){this.#r({...this.#e,checkedEcosystemKeys:new Set})}setSelectedIndex(l){const i=this.getFilteredEntries(),s=Math.max(0,Math.min(l,i.length-1));s!==this.#e.selectedIndex&&this.#r({...this.#e,selectedIndex:s})}setFocusedPanel(l){l!==this.#e.focusedPanel&&this.#r({...this.#e,focusedPanel:l})}setFilterType(l){if(l!==this.#e.filterType){const i=$(this.#l,l,this.#e.filterText);this.#r({...this.#e,entries:i,filterType:l,groupedByCatalog:W(i),selectedIndex:0})}}setFilter(l){const i=$(this.#l,this.#e.filterType,l);this.#r({...this.#e,entries:i,filterText:l,groupedByCatalog:W(i),selectedIndex:0})}setFilterActive(l){if(l!==this.#e.filterActive)if(l)this.#r({...this.#e,filterActive:!0});else{const i=$(this.#l,this.#e.filterType,"");this.#r({...this.#e,entries:i,filterActive:!1,filterText:"",groupedByCatalog:W(i),selectedIndex:0})}}toggleCheck(l){const i=I(l),s=new Set(this.#e.checkedEntries);s.has(i)?s.delete(i):s.add(i),this.#r({...this.#e,allChecked:s.size===this.#l.length,checkedEntries:s})}checkAll(){this.#r({...this.#e,allChecked:!0,checkedEntries:new Set(this.#l.map(l=>I(l)))})}uncheckAll(){this.#r({...this.#e,allChecked:!1,checkedEntries:new Set})}toggleAll(){this.#e.allChecked?this.uncheckAll():this.checkAll()}startApply(){const l=this.getCheckedEntries();this.#r({...this.#e,applyProgress:{current:0,total:l.length},phase:"applying"})}updateApplyProgress(l){this.#e.applyProgress&&this.#r({...this.#e,applyProgress:{...this.#e.applyProgress,current:l}})}markDone(){this.#r({...this.#e,phase:"done"})}setError(l){this.#r({...this.#e,error:l,phase:"error"})}#r(l){this.#e=l;for(const i of this.#t)try{i()}catch{}}}const Se={major:"red",minor:"yellow",patch:"green"},ke={CRITICAL:"red",HIGH:"red",LOW:"gray",MODERATE:"yellow",UNKNOWN:"gray"},Re={critical:"red",high:"red",low:"gray",medium:"yellow"},ye={critical:"red",high:"red",low:"green",medium:"yellow"},Ee={defer:"gray",review:"yellow",skip:"red",update:"green"},Ae=({changelogUrl:a,entry:l,focused:i,recommendation:s,scrollRef:d})=>{const h=i?"white":"gray";if(!l)return e.jsx(t,{alignItems:"center",borderColor:"gray",borderStyle:"single",flexDirection:"column",flexGrow:1,justifyContent:"center",children:e.jsx(r,{dimColor:!0,children:"No package selected"})});const f=Se[l.updateType]??"white",w=l.vulnerabilities&&l.vulnerabilities.length>0,g=l.socketReport?.score.overall??0,j=l.socketReport?xe(g):"gray";return e.jsxs(t,{borderColor:h,borderStyle:"single",flexDirection:"column",flexGrow:1,children:[e.jsx(t,{flexShrink:0,paddingTop:1,paddingX:2,children:e.jsx(r,{bold:!0,color:"white",children:l.displayName??l.packageName})}),e.jsxs(je,{flexGrow:1,flexShrink:1,paddingX:2,ref:d,scrollbar:!0,scrollbarColor:"gray",scrollbarStyle:"block",children:[e.jsx(r,{}),e.jsxs(t,{children:[e.jsx(t,{width:12,children:e.jsx(r,{dimColor:!0,children:"Current:"})}),e.jsx(r,{children:l.currentRange})]}),e.jsxs(t,{children:[e.jsx(t,{width:12,children:e.jsx(r,{dimColor:!0,children:"Target:"})}),e.jsx(r,{children:l.newRange}),e.jsxs(r,{bold:!0,color:f,children:[" ","(",l.updateType,")"]})]}),e.jsxs(t,{children:[e.jsx(t,{width:12,children:e.jsx(r,{dimColor:!0,children:"Version:"})}),e.jsx(r,{children:l.targetVersion})]}),e.jsxs(t,{children:[e.jsx(t,{width:12,children:e.jsx(r,{dimColor:!0,children:l.kind==="ecosystem"?"Source:":"Catalog:"})}),e.jsx(r,{color:l.kind==="ecosystem"?"cyan":void 0,children:l.catalogName})]}),l.acceptedRisk&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{color:"gray",children:"── "}),e.jsx(r,{bold:!0,color:"gray",children:"ACKNOWLEDGED RISK"}),e.jsxs(t,{flexDirection:"column",paddingLeft:2,children:[e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Reason: "}),e.jsx(r,{children:l.acceptedRisk.reason})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Accepted: "}),e.jsx(r,{children:l.acceptedRisk.acceptedAt.slice(0,10)})]})]})]}),w&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"red",children:"SECURITY"}),e.jsx(r,{}),l.vulnerabilities.map(c=>e.jsxs(t,{flexDirection:"column",marginBottom:1,children:[e.jsxs(t,{gap:1,children:[e.jsxs(r,{bold:!0,color:ke[c.severity]??"gray",children:["⚠"," ",c.severity]}),e.jsx(r,{bold:!0,children:c.id})]}),e.jsx(t,{paddingLeft:2,children:e.jsx(r,{children:c.summary})}),e.jsxs(t,{gap:2,paddingLeft:2,children:[c.cvssScore!==void 0&&e.jsxs(r,{dimColor:!0,children:["CVSS:",String(c.cvssScore)]}),c.fixedVersions.length>0&&e.jsxs(r,{dimColor:!0,children:["Fixed in:",c.fixedVersions.join(", ")]})]})]},c.id))]}),l.socketReport&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"cyan",children:"SOCKET.DEV"}),e.jsx(r,{}),e.jsxs(t,{gap:2,children:[e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Overall: "}),e.jsxs(r,{bold:!0,color:j,children:[String(Math.round(g*100)),"%"]})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Supply Chain: "}),e.jsxs(r,{children:[String(Math.round(l.socketReport.score.supplyChain*100)),"%"]})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Quality: "}),e.jsxs(r,{children:[String(Math.round(l.socketReport.score.quality*100)),"%"]})]})]}),e.jsxs(t,{gap:2,children:[e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Maintenance: "}),e.jsxs(r,{children:[String(Math.round(l.socketReport.score.maintenance*100)),"%"]})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Vulnerability: "}),e.jsxs(r,{children:[String(Math.round(l.socketReport.score.vulnerability*100)),"%"]})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"License: "}),e.jsxs(r,{children:[l.socketReport.license||"unknown"," ","(",String(Math.round(l.socketReport.score.license*100)),"%)"]})]})]}),l.socketReport.alerts.length>0&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsxs(r,{bold:!0,color:"yellow",children:["⚠"," ",String(l.socketReport.alerts.length)," ","alert",l.socketReport.alerts.length===1?"":"s",":"]}),l.socketReport.alerts.map(c=>e.jsxs(t,{gap:1,paddingLeft:2,children:[e.jsxs(r,{bold:!0,color:Re[c.severity]??"gray",children:["[",c.severity.toUpperCase(),"]"]}),e.jsx(r,{children:c.type}),e.jsxs(r,{dimColor:!0,children:["(",c.category,")"]})]},c.key))]})]}),s&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"AI ANALYSIS"}),e.jsx(r,{}),e.jsxs(t,{gap:2,children:[e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Action: "}),e.jsx(r,{bold:!0,color:Ee[s.action]??"white",children:s.action})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Risk: "}),e.jsx(r,{bold:!0,color:ye[s.riskLevel]??"white",children:s.riskLevel})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Effort: "}),e.jsx(r,{bold:!0,children:s.effort})]})]}),s.reason&&e.jsx(t,{marginTop:1,paddingLeft:2,children:e.jsx(r,{children:s.reason})}),s.breakingChanges.length>0&&e.jsxs(t,{flexDirection:"column",marginTop:1,paddingLeft:2,children:[e.jsx(r,{bold:!0,color:"yellow",children:"Breaking changes:"}),s.breakingChanges.map((c,v)=>e.jsxs(r,{children:[" ","•"," ",c]},String(v)))]})]}),a&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"CHANGELOG"}),e.jsx(t,{marginTop:1,paddingLeft:2,children:e.jsx(r,{color:"cyan",underline:!0,children:a})})]}),e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"LINKS"}),e.jsx(t,{flexDirection:"column",marginTop:1,paddingLeft:2,children:l.kind==="ecosystem"?e.jsx(r,{color:"cyan",underline:!0,children:l.detailUrl??l.displayName??l.packageName}):e.jsxs(r,{color:"cyan",underline:!0,children:["https://npmx.dev/",l.packageName]})})]}),!s&&l.kind!=="ecosystem"&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"GUIDANCE"}),e.jsxs(t,{flexDirection:"column",marginTop:1,paddingLeft:2,children:[l.updateType==="major"&&e.jsxs(e.Fragment,{children:[e.jsxs(r,{color:"red",children:["⚠"," ","Major update — likely contains breaking changes."]}),e.jsx(r,{dimColor:!0,children:" Review the changelog before updating."}),e.jsx(r,{dimColor:!0,children:" Use --changelog to fetch release URLs."})]}),l.updateType==="minor"&&e.jsxs(e.Fragment,{children:[e.jsxs(r,{color:"yellow",children:["ℹ"," ","Minor update — new features, backward compatible."]}),e.jsx(r,{dimColor:!0,children:" Generally safe to update."})]}),l.updateType==="patch"&&e.jsxs(e.Fragment,{children:[e.jsxs(r,{color:"green",children:["✓"," ","Patch update — bug fixes only."]}),e.jsx(r,{dimColor:!0,children:" Safe to update."})]}),!s&&e.jsx(r,{dimColor:!0,children:" Use --ai to get AI-powered analysis."})]})]})]})]})},Ie={major:"red",minor:"yellow",patch:"green"},ve=[{id:"all",label:"All"},{id:"major",label:"Major"},{id:"minor",label:"Minor"},{id:"patch",label:"Patch"},{id:"security",label:"Security"}],Me=({checked:a,entry:l,isSelected:i})=>{const s=Ie[l.updateType]??"white",d=l.vulnerabilities&&l.vulnerabilities.length>0,h=l.socketReport&&l.socketReport.alerts.length>0,f=!!l.acceptedRisk,w=a?"☑":"☐",g=l.socketReport?`${String(Math.round(l.socketReport.score.overall*100))}%`:"",j=l.socketReport?xe(l.socketReport.score.overall):"gray";return e.jsxs(t,{flexShrink:0,height:1,children:[e.jsx(r,{children:i?">":" "}),e.jsxs(r,{color:a?"white":"gray",children:[" ",w," "]}),d||h?e.jsx(r,{color:f?"gray":"red",children:f?"✓ ":"⚠ "}):e.jsx(r,{children:" "}),e.jsx(t,{flexGrow:1,children:e.jsxs(r,{bold:i,inverse:i,wrap:"truncate",children:[l.displayName??l.packageName,f?" [ack]":""]})}),g&&e.jsxs(r,{color:j,children:[" ",g]}),e.jsxs(r,{dimColor:!0,children:[" ",l.currentRange]}),e.jsxs(r,{dimColor:!0,children:[" ","→"," "]}),e.jsxs(r,{children:[l.newRange," "]}),e.jsx(r,{bold:!0,color:s,children:l.updateType})]})},Ne=({count:a,ecosystem:l=!1,name:i})=>e.jsxs(t,{flexShrink:0,height:1,marginTop:1,children:[e.jsxs(r,{color:l?"cyan":void 0,dimColor:!l,children:[l?"◈":"▼"," "]}),e.jsx(r,{bold:!0,color:l?"cyan":"white",children:i.toUpperCase()}),e.jsxs(r,{dimColor:!0,children:[" ","(",a,")"]}),l&&e.jsxs(r,{color:"cyan",dimColor:!0,children:[" ","ci/cd refs"]})]}),De=({checkedEntries:a,entries:l,filterActive:i,filteredOutCount:s,filterText:d,filterType:h,focused:f,groupedByCatalog:w,isDryRun:g,onViewportHeightChange:j,scrollOffset:c,selectedIndex:v,totalCatalogEntries:M,totalChecked:y,totalEntries:U,viewportHeight:P})=>{const B=f?"white":"gray",{measuredHeight:m,ref:E}=Te(P,j);let V=0,R=0,N=0,A=0;for(const u of l)u.updateType==="major"?V++:u.updateType==="minor"?R++:N++,(u.vulnerabilities&&u.vulnerabilities.length>0||u.socketReport&&u.socketReport.alerts.length>0)&&A++;const b=[];V>0&&b.push(`${V} major`),R>0&&b.push(`${R} minor`),N>0&&b.push(`${N} patch`),A>0&&b.push(`${A} vulnerable`);const D=b.length>0?` (${b.join(", ")})`:"",C=l.filter(u=>u.kind==="ecosystem").length,T=l.length-C;let F=0;for(const u of l)a.has(I(u))&&F++;const O=[];let H=0;for(const[u,S]of w){O.push(e.jsx(Ne,{count:S.length,ecosystem:S[0]?.kind==="ecosystem",name:u},`hdr-${u}`));for(const k of S){const X=H;O.push(e.jsx(Me,{checked:a.has(I(k)),entry:k,isSelected:X===v},I(k))),H++}}let L=0;for(const[,u]of w)L+=2+u.length;const _=L>m&&m>0;return e.jsxs(t,{borderColor:B,borderStyle:"single",flexDirection:"column",flexGrow:1,children:[e.jsxs(t,{flexShrink:0,gap:1,paddingX:1,children:[e.jsx(r,{bold:!0,inverse:!0,children:" VIS "}),e.jsxs(r,{wrap:"truncate",children:[C>0?T:U,y>0?`/${y}`:""," ",C>0?"pkgs":"outdated",D,M>y?` · ${M-y} dupes`:""]}),C>0&&e.jsxs(r,{color:"cyan",children:[" ","◈",C," ","ci/cd"]}),!g&&F>0&&e.jsxs(r,{dimColor:!0,children:[" ","—",F," ","selected"]})]}),e.jsx(t,{flexShrink:0,paddingX:1,paddingY:1,children:e.jsx(Ce,{isFocused:f,keyMap:{next:[],previous:[],useNumbers:!1,useTab:!1},onChange:()=>{},showIndex:!1,value:h,children:ve.map(({id:u,label:S})=>e.jsx(be,{name:u,children:S},u))})}),i&&e.jsxs(t,{flexShrink:0,paddingX:1,children:[e.jsx(r,{bold:!0,color:"white",children:"/ "}),e.jsx(r,{children:d}),e.jsx(r,{inverse:!0,children:" "})]}),s>0&&e.jsx(t,{flexShrink:0,paddingX:1,children:e.jsxs(r,{color:"yellow",children:["⚠"," ",s," ","package",s===1?"":"s"," ","filtered out by target constraint — press"," ",e.jsx(r,{bold:!0,color:"white",children:"f"})," ","to view"]})}),e.jsxs(t,{flexDirection:"row",flexGrow:1,overflow:"hidden",ref:E,children:[e.jsx(t,{flexDirection:"column",flexGrow:1,overflow:"hidden",paddingLeft:1,children:e.jsx(t,{flexDirection:"column",marginTop:-c,children:O})}),_&&e.jsx(t,{flexShrink:0,marginLeft:1,marginRight:1,children:e.jsx(pe,{contentHeight:L,placement:"inset",scrollOffset:c,style:"block",viewportHeight:m})})]},`list-${h}-${d}`)]})},Le=100,Pe=40,Be=10,Ve=[],G=["all","major","minor","patch","security"],Ye=({autoExitSeconds:a=0,changelogUrls:l,checkedCount:i=0,filteredOutEntries:s=Ve,isDryRun:d,store:h,totalCatalogEntries:f=0})=>{const{exit:w}=fe(),{columns:g,rows:j}=ae(),c=p.useSyncExternalStore(h.subscribe,h.getSnapshot),[v,M]=p.useState(!1),[y,U]=p.useState(!1),P=p.useRef(null),B=p.useRef(null),m=p.useRef(null),E=p.useRef(null),[V,R]=p.useState(0),[N,A]=p.useState(!1),[b,D]=p.useState(!1),C=p.useMemo(()=>h.getFilteredEntries(),[c.entries,c.filterType,c.filterText,c.sortMode]),T=C[c.selectedIndex]??null,F=T?h.getRecommendation(T.packageName):void 0,O=T&&l?l.get(T.packageName):void 0,H=p.useCallback(o=>{let n=0,x=0;for(const[,Q]of c.groupedByCatalog){n+=2;for(let oe=0;oe<Q.length;oe++){if(x===o)return n;n+=1,x++}}return n},[c.groupedByCatalog]),L=Math.max(1,j-8-(c.filterActive?1:0)),[_,u]=p.useState(L),S=_>0?_:L,k=p.useCallback(o=>{const n=H(o);R(x=>n>x+S-2?Math.max(0,n-S+2):n<x+1?Math.max(0,n-1):x)},[H,S]);if(p.useEffect(()=>{m.current?.scrollToTop()},[T?.packageName]),me((o,n)=>{if(o==="c"&&n.ctrl){w();return}if(!b){if(y){n.escape||o==="f"||o==="q"?U(!1):n.downArrow||o==="j"?B.current?.scrollBy(1):(n.upArrow||o==="k")&&B.current?.scrollBy(-1);return}if(N){o==="u"||n.return?(A(!1),h.startApply(),w(h.getCheckedEntries())):n.escape||o==="q"?A(!1):n.downArrow||o==="j"?E.current?.scrollBy(1):n.upArrow||o==="k"?E.current?.scrollBy(-1):n.pageDown?E.current?.scrollBy(5):n.pageUp&&E.current?.scrollBy(-5);return}if(v){n.escape||o==="?"?M(!1):o==="q"?(M(!1),D(!0)):n.downArrow||o==="j"?P.current?.scrollBy(1):(n.upArrow||o==="k")&&P.current?.scrollBy(-1);return}if(o==="?"){M(!0);return}if(o==="q"){D(!0);return}if(n.tab){h.setFocusedPanel(c.focusedPanel==="list"?"detail":"list");return}if(c.focusedPanel==="list"&&(n.leftArrow||n.rightArrow)){const x=G.indexOf(c.filterType),Q=n.rightArrow?(x+1)%G.length:(x-1+G.length)%G.length;R(0),m.current?.scrollToTop(),h.setFilterType(G[Q]);return}if(o==="f"&&s.length>0){U(x=>!x);return}if(c.filterActive){if(n.escape){h.setFilterActive(!1);return}if(n.return){h.setFilterActive(!1);return}if(n.backspace){R(0),h.setFilter(c.filterText.slice(0,-1));return}if(o&&!n.ctrl&&!n.meta){R(0),h.setFilter(c.filterText+o);return}return}if(c.focusedPanel==="list"){if(n.downArrow||o==="j"){const x=Math.min(c.selectedIndex+1,C.length-1);h.setSelectedIndex(x),k(x);return}if(n.upArrow||o==="k"){const x=Math.max(c.selectedIndex-1,0);h.setSelectedIndex(x),k(x);return}if(n.pageDown){const x=Math.min(c.selectedIndex+10,C.length-1);h.setSelectedIndex(x),k(x);return}if(n.pageUp){const x=Math.max(c.selectedIndex-10,0);h.setSelectedIndex(x),k(x);return}if(n.home){h.setSelectedIndex(0),R(0);return}if(n.end){const x=C.length-1;h.setSelectedIndex(x),k(x);return}if(o===" "||n.return){T&&h.toggleCheck(T);return}if(o==="a"){h.toggleAll();return}if(o==="s"){h.cycleSortMode(),k(h.getSnapshot().selectedIndex);return}if(o==="/"){h.setFilterActive(!0);return}if(o==="u"&&!d&&c.checkedEntries.size>0){A(!0);return}if(n.rightArrow){h.setFocusedPanel("detail");return}return}if(c.focusedPanel==="detail"){if(n.escape||n.leftArrow){h.setFocusedPanel("list");return}if(n.downArrow||o==="j"){m.current?.scrollBy(1);return}if(n.upArrow||o==="k"){m.current?.scrollBy(-1);return}if(n.pageDown){m.current?.scrollBy(10);return}if(n.pageUp){m.current?.scrollBy(-10);return}if(n.home){m.current?.scrollToTop();return}n.end&&m.current?.scrollToBottom()}}},{isActive:!0}),g<Pe||j<Be)return e.jsx(t,{alignItems:"center",height:j,justifyContent:"center",width:g,children:e.jsxs(r,{color:"yellow",children:["Terminal too small (",g,"x",j,")"]})});const X=g>=Le,K=[e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"q"}),e.jsx(r,{dimColor:!0,children:"QUIT"})]},"q"),e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"?"}),e.jsx(r,{dimColor:!0,children:"HELP"})]},"?"),e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"↑↓"}),e.jsx(r,{dimColor:!0,children:"NAV"})]},"nav"),e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"Space"}),e.jsx(r,{dimColor:!0,children:"CHECK"})]},"sp"),e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"a"}),e.jsx(r,{dimColor:!0,children:"ALL"})]},"a")];!d&&c.checkedEntries.size>0&&K.push(e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"green",children:"u"}),e.jsx(r,{dimColor:!0,children:"APPLY"})]},"u")),s.length>0&&K.push(e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"yellow",children:"f"}),e.jsxs(r,{dimColor:!0,children:["FILTERED (",s.length,")"]})]},"fo")),K.push(e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"←→"}),e.jsx(r,{dimColor:!0,children:"FILTER"})]},"lr"),e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"/"}),e.jsx(r,{dimColor:!0,children:"SEARCH"})]},"f"),e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"Tab"}),e.jsx(r,{dimColor:!0,children:"PANEL"})]},"t"));const ee=e.jsx(t,{borderBottom:!1,borderColor:"gray",borderLeft:!1,borderRight:!1,borderStyle:"single",flexShrink:0,children:e.jsx(t,{flexWrap:"wrap",gap:2,paddingX:1,children:K})}),re=e.jsxs(z,{footer:e.jsxs(r,{dimColor:!0,children:[e.jsx(r,{bold:!0,color:"white",children:"↑↓"})," ","scroll"," ",e.jsx(r,{bold:!0,color:"white",children:"?"}),"/",e.jsx(r,{bold:!0,color:"white",children:"Esc"})," ","close"]}),scrollRef:P,title:"KEYBOARD SHORTCUTS",visible:v,width:52,children:[e.jsxs(t,{flexDirection:"column",marginBottom:1,children:[e.jsxs(t,{marginBottom:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"NAVIGATION"})]}),e.jsxs(t,{children:[e.jsx(t,{width:24,children:e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","↑","/k"]}),e.jsx(r,{dimColor:!0,children:" Move up"})]})}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","↓","/j"]}),e.jsx(r,{dimColor:!0,children:" Move down"})]})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","Tab"]}),e.jsx(r,{dimColor:!0,children:" Switch panel"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","→","/","←"]}),e.jsx(r,{dimColor:!0,children:" Focus detail/list"})]})]}),e.jsxs(t,{flexDirection:"column",marginBottom:1,children:[e.jsxs(t,{marginBottom:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"SELECTION"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","Space"]}),e.jsx(r,{dimColor:!0,children:" Toggle check on package"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","a"]}),e.jsx(r,{dimColor:!0,children:" Toggle check all"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","s"]}),e.jsx(r,{dimColor:!0,children:" Cycle sort (default / name / type / severity)"})]})]}),e.jsxs(t,{flexDirection:"column",marginBottom:1,children:[e.jsxs(t,{marginBottom:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"FILTERS"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","←→"]}),e.jsx(r,{dimColor:!0,children:" Switch filter tab"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","/"]}),e.jsx(r,{dimColor:!0,children:" Text filter"})]}),s.length>0&&e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","f"]}),e.jsx(r,{dimColor:!0,children:" View filtered-out packages"})]})]}),e.jsxs(t,{flexDirection:"column",children:[e.jsxs(t,{marginBottom:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"ACTIONS"})]}),!d&&e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","u"]}),e.jsx(r,{dimColor:!0,children:" Apply selected updates"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","q"]}),e.jsx(r,{dimColor:!0,children:" Quit"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","?"]}),e.jsx(r,{dimColor:!0,children:" Toggle help"})]})]})]}),Y=h.getCheckedEntries(),q=Y.filter(o=>o.updateType==="major").length,ue=e.jsxs(t,{alignItems:"center",flexDirection:"column",children:[q>0&&e.jsx(t,{marginBottom:1,marginTop:1,children:e.jsxs(r,{color:"yellow",children:["⚠"," ",q," ","major update",q===1?"":"s"," ","— review breaking changes"]})}),e.jsxs(r,{dimColor:!0,children:["Press"," ",e.jsx(r,{bold:!0,color:"white",children:"u"})," ","or"," ",e.jsx(r,{bold:!0,color:"white",children:"Enter"})," ","to confirm,"," ",e.jsx(r,{bold:!0,color:"white",children:"Esc"})," ","to cancel"]})]}),le=e.jsx(z,{footer:ue,scrollRef:E,title:`Apply ${Y.length} update${Y.length===1?"":"s"}?`,visible:N,width:70,children:Y.map(o=>e.jsxs(t,{gap:1,children:[e.jsxs(r,{children:[" ",o.displayName??o.packageName]}),e.jsxs(r,{dimColor:!0,children:[o.currentRange," ","→"," ",o.newRange]}),e.jsx(r,{bold:!0,color:o.updateType==="major"?"red":o.updateType==="minor"?"yellow":"green",children:o.updateType})]},o.packageName))}),te=s.length>0?e.jsx(z,{footer:e.jsxs(r,{dimColor:!0,children:[e.jsx(r,{bold:!0,color:"white",children:"↑↓"})," ","scroll"," ",e.jsx(r,{bold:!0,color:"white",children:"f"}),"/",e.jsx(r,{bold:!0,color:"white",children:"Esc"})," ","close"]}),scrollRef:B,title:`${s.length} PACKAGE${s.length===1?"":"S"} FILTERED BY TARGET`,visible:y,width:70,children:e.jsxs(t,{flexDirection:"column",children:[e.jsx(t,{marginBottom:1,children:e.jsxs(r,{dimColor:!0,children:["These packages have newer versions available but are excluded by the current target constraint. Use"," ",e.jsx(r,{bold:!0,color:"white",children:"--target latest"})," ","to include them."]})}),s.map(o=>e.jsxs(t,{gap:1,children:[e.jsxs(r,{children:[" ",o.packageName]}),e.jsxs(r,{dimColor:!0,children:[o.currentRange," ","→"," ",o.newRange]}),e.jsx(r,{bold:!0,color:o.updateType==="major"?"red":o.updateType==="minor"?"yellow":"green",children:o.updateType})]},o.packageName))]})}):null,se=e.jsx(De,{checkedEntries:c.checkedEntries,entries:C,filterActive:c.filterActive,filteredOutCount:s.length,filterText:c.filterText,filterType:c.filterType,focused:c.focusedPanel==="list",groupedByCatalog:c.groupedByCatalog,isDryRun:d,onViewportHeightChange:u,scrollOffset:V,selectedIndex:c.selectedIndex,totalCatalogEntries:f,totalChecked:i,totalEntries:C.length,viewportHeight:S}),ie=e.jsx(Ae,{changelogUrl:O,entry:T,focused:c.focusedPanel==="detail",recommendation:F,scrollRef:m});if(X){const o=Math.floor(g*.35);return e.jsxs(t,{flexDirection:"column",height:j,width:g,children:[e.jsxs(t,{flexDirection:"row",flexGrow:1,children:[e.jsx(t,{flexGrow:1,children:se}),e.jsx(t,{width:o,children:ie})]}),ee,le,te,e.jsx(ce,{autoExitSeconds:a||3,onCancel:()=>{D(!1)},visible:b}),re]})}const ge=Math.floor(j*.55);return e.jsxs(t,{flexDirection:"column",height:j,width:g,children:[e.jsx(t,{height:ge,children:se}),e.jsx(t,{flexGrow:1,children:ie}),ee,le,te,e.jsx(ce,{autoExitSeconds:a||3,onCancel:()=>{D(!1)},visible:b}),re]})};export{_e as C,Ke as U,Ye as V,J as e};
1
+ import{G as e,X as t,o as r,x as p}from"../packem_chunks/catalog.js";import{T as ae,U as je,V as pe,W as fe,v as me,X as z,Y as ce}from"../packem_chunks/cli-main.js";import{l as we}from"./spinner-DuB0K0Am.js";import{s as xe}from"./formatBytes-BHAzNIrn-CrusHOew.js";import{n as Ce,a as be}from"./tabs-RZd_e1M0.js";import{u as Te}from"./use-measured-height-DWkDV9Dj.js";const _e=({current:a,total:l})=>{const{columns:i}=ae(),s=i||80,d=l>0?Math.min(1,a/l):0,h=`${String(Math.round(d*100)).padStart(3)}%`,f=`${String(a)}/${String(l)}`,w=Math.max(10,s-2-h.length-1),g=Math.round(w*d),j=w-g;return e.jsxs(t,{flexDirection:"column",paddingX:1,children:[e.jsxs(t,{children:[e.jsx(we,{type:"dots"}),e.jsx(r,{children:" Checking catalog dependencies "}),e.jsx(r,{dimColor:!0,children:f})]}),e.jsxs(t,{children:[e.jsx(r,{color:"cyan",children:"━".repeat(g)}),e.jsx(r,{dimColor:!0,children:"─".repeat(j)}),e.jsxs(r,{dimColor:!0,children:[" ",h]})]})]})},Z=["default","name","updateType","severity"],ne=a=>{const l=a.vulnerabilities?.map(i=>i.severity)??[];return l.includes("CRITICAL")?4:l.includes("HIGH")?3:l.includes("MODERATE")?2:l.includes("LOW")?1:0},de={digest:0,major:3,minor:2,patch:1,pin:0,unknown:0},he=(a,l)=>{if(l==="default")return a;const i=[...a];return l==="name"?i.sort((s,d)=>s.packageName.localeCompare(d.packageName)):l==="updateType"?i.sort((s,d)=>(de[d.updateType]??0)-(de[s.updateType]??0)||s.packageName.localeCompare(d.packageName)):i.sort((s,d)=>ne(d)-ne(s)||s.packageName.localeCompare(d.packageName)),i},J=a=>`${a.ecosystem}|${a.file}:${String(a.line)}|${a.name}`,I=a=>`${a.catalogName} ${a.packageName}`,W=a=>{const l=new Map;for(const i of a){const s=l.get(i.catalogName);s?s.push(i):l.set(i.catalogName,[i])}return l},$=(a,l,i)=>{let s=a;if(l!=="all"&&(s=l==="security"?s.filter(d=>d.vulnerabilities&&d.vulnerabilities.length>0||d.socketReport&&d.socketReport.alerts.length>0):s.filter(d=>d.updateType===l)),i){const d=i.toLowerCase();s=s.filter(h=>h.packageName.toLowerCase().includes(d))}return s};class Ke{#e;#t=new Set;#l;#s;#i=null;constructor(l,i=null,s=[]){this.#l=l,this.#s=s,i&&(this.#i=new Map(i.recommendations.map(d=>[d.package,d]))),this.#e={aiResult:i,allChecked:!0,applyProgress:null,checkedEcosystemKeys:new Set(s.map(d=>J(d))),checkedEntries:new Set(l.map(d=>I(d))),ecosystemEntries:s,entries:l,error:null,filterActive:!1,filterText:"",filterType:"all",focusedPanel:"list",groupedByCatalog:W(l),phase:"browsing",selectedIndex:0,sortMode:"default"}}getSnapshot=()=>this.#e;subscribe=l=>(this.#t.add(l),()=>{this.#t.delete(l)});getFilteredEntries(){return he($(this.#l,this.#e.filterType,this.#e.filterText),this.#e.sortMode)}setSortMode(l){if(l===this.#e.sortMode)return;const s=this.getFilteredEntries()[this.#e.selectedIndex]?.packageName,d=he($(this.#l,this.#e.filterType,this.#e.filterText),l),h=s?Math.max(0,d.findIndex(f=>f.packageName===s)):0;this.#r({...this.#e,selectedIndex:h,sortMode:l})}cycleSortMode(){const l=Z.indexOf(this.#e.sortMode),i=Z[(l+1)%Z.length]??"default";this.setSortMode(i)}getRecommendation(l){return this.#i?.get(l)}getCheckedEntries(){return this.#l.filter(l=>this.#e.checkedEntries.has(I(l)))}getCheckedEcosystemEntries(){return this.#s.filter(l=>this.#e.checkedEcosystemKeys.has(J(l)))}toggleEcosystemCheck(l){const i=new Set(this.#e.checkedEcosystemKeys);i.has(l)?i.delete(l):i.add(l),this.#r({...this.#e,checkedEcosystemKeys:i})}checkAllEcosystem(){this.#r({...this.#e,checkedEcosystemKeys:new Set(this.#s.map(l=>J(l)))})}uncheckAllEcosystem(){this.#r({...this.#e,checkedEcosystemKeys:new Set})}setSelectedIndex(l){const i=this.getFilteredEntries(),s=Math.max(0,Math.min(l,i.length-1));s!==this.#e.selectedIndex&&this.#r({...this.#e,selectedIndex:s})}setFocusedPanel(l){l!==this.#e.focusedPanel&&this.#r({...this.#e,focusedPanel:l})}setFilterType(l){if(l!==this.#e.filterType){const i=$(this.#l,l,this.#e.filterText);this.#r({...this.#e,entries:i,filterType:l,groupedByCatalog:W(i),selectedIndex:0})}}setFilter(l){const i=$(this.#l,this.#e.filterType,l);this.#r({...this.#e,entries:i,filterText:l,groupedByCatalog:W(i),selectedIndex:0})}setFilterActive(l){if(l!==this.#e.filterActive)if(l)this.#r({...this.#e,filterActive:!0});else{const i=$(this.#l,this.#e.filterType,"");this.#r({...this.#e,entries:i,filterActive:!1,filterText:"",groupedByCatalog:W(i),selectedIndex:0})}}toggleCheck(l){const i=I(l),s=new Set(this.#e.checkedEntries);s.has(i)?s.delete(i):s.add(i),this.#r({...this.#e,allChecked:s.size===this.#l.length,checkedEntries:s})}checkAll(){this.#r({...this.#e,allChecked:!0,checkedEntries:new Set(this.#l.map(l=>I(l)))})}uncheckAll(){this.#r({...this.#e,allChecked:!1,checkedEntries:new Set})}toggleAll(){this.#e.allChecked?this.uncheckAll():this.checkAll()}startApply(){const l=this.getCheckedEntries();this.#r({...this.#e,applyProgress:{current:0,total:l.length},phase:"applying"})}updateApplyProgress(l){this.#e.applyProgress&&this.#r({...this.#e,applyProgress:{...this.#e.applyProgress,current:l}})}markDone(){this.#r({...this.#e,phase:"done"})}setError(l){this.#r({...this.#e,error:l,phase:"error"})}#r(l){this.#e=l;for(const i of this.#t)try{i()}catch{}}}const Se={major:"red",minor:"yellow",patch:"green"},ke={CRITICAL:"red",HIGH:"red",LOW:"gray",MODERATE:"yellow",UNKNOWN:"gray"},Re={critical:"red",high:"red",low:"gray",medium:"yellow"},ye={critical:"red",high:"red",low:"green",medium:"yellow"},Ee={defer:"gray",review:"yellow",skip:"red",update:"green"},Ae=({changelogUrl:a,entry:l,focused:i,recommendation:s,scrollRef:d})=>{const h=i?"white":"gray";if(!l)return e.jsx(t,{alignItems:"center",borderColor:"gray",borderStyle:"single",flexDirection:"column",flexGrow:1,justifyContent:"center",children:e.jsx(r,{dimColor:!0,children:"No package selected"})});const f=Se[l.updateType]??"white",w=l.vulnerabilities&&l.vulnerabilities.length>0,g=l.socketReport?.score.overall??0,j=l.socketReport?xe(g):"gray";return e.jsxs(t,{borderColor:h,borderStyle:"single",flexDirection:"column",flexGrow:1,children:[e.jsx(t,{flexShrink:0,paddingTop:1,paddingX:2,children:e.jsx(r,{bold:!0,color:"white",children:l.displayName??l.packageName})}),e.jsxs(je,{flexGrow:1,flexShrink:1,paddingX:2,ref:d,scrollbar:!0,scrollbarColor:"gray",scrollbarStyle:"block",children:[e.jsx(r,{}),e.jsxs(t,{children:[e.jsx(t,{width:12,children:e.jsx(r,{dimColor:!0,children:"Current:"})}),e.jsx(r,{children:l.currentRange})]}),e.jsxs(t,{children:[e.jsx(t,{width:12,children:e.jsx(r,{dimColor:!0,children:"Target:"})}),e.jsx(r,{children:l.newRange}),e.jsxs(r,{bold:!0,color:f,children:[" ","(",l.updateType,")"]})]}),e.jsxs(t,{children:[e.jsx(t,{width:12,children:e.jsx(r,{dimColor:!0,children:"Version:"})}),e.jsx(r,{children:l.targetVersion})]}),e.jsxs(t,{children:[e.jsx(t,{width:12,children:e.jsx(r,{dimColor:!0,children:l.kind==="ecosystem"?"Source:":"Catalog:"})}),e.jsx(r,{color:l.kind==="ecosystem"?"cyan":void 0,children:l.catalogName})]}),l.acceptedRisk&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{color:"gray",children:"── "}),e.jsx(r,{bold:!0,color:"gray",children:"ACKNOWLEDGED RISK"}),e.jsxs(t,{flexDirection:"column",paddingLeft:2,children:[e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Reason: "}),e.jsx(r,{children:l.acceptedRisk.reason})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Accepted: "}),e.jsx(r,{children:l.acceptedRisk.acceptedAt.slice(0,10)})]})]})]}),w&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"red",children:"SECURITY"}),e.jsx(r,{}),l.vulnerabilities.map(c=>e.jsxs(t,{flexDirection:"column",marginBottom:1,children:[e.jsxs(t,{gap:1,children:[e.jsxs(r,{bold:!0,color:ke[c.severity]??"gray",children:["⚠"," ",c.severity]}),e.jsx(r,{bold:!0,children:c.id})]}),e.jsx(t,{paddingLeft:2,children:e.jsx(r,{children:c.summary})}),e.jsxs(t,{gap:2,paddingLeft:2,children:[c.cvssScore!==void 0&&e.jsxs(r,{dimColor:!0,children:["CVSS:",String(c.cvssScore)]}),c.fixedVersions.length>0&&e.jsxs(r,{dimColor:!0,children:["Fixed in:",c.fixedVersions.join(", ")]})]})]},c.id))]}),l.socketReport&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"cyan",children:"SOCKET.DEV"}),e.jsx(r,{}),e.jsxs(t,{gap:2,children:[e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Overall: "}),e.jsxs(r,{bold:!0,color:j,children:[String(Math.round(g*100)),"%"]})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Supply Chain: "}),e.jsxs(r,{children:[String(Math.round(l.socketReport.score.supplyChain*100)),"%"]})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Quality: "}),e.jsxs(r,{children:[String(Math.round(l.socketReport.score.quality*100)),"%"]})]})]}),e.jsxs(t,{gap:2,children:[e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Maintenance: "}),e.jsxs(r,{children:[String(Math.round(l.socketReport.score.maintenance*100)),"%"]})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Vulnerability: "}),e.jsxs(r,{children:[String(Math.round(l.socketReport.score.vulnerability*100)),"%"]})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"License: "}),e.jsxs(r,{children:[l.socketReport.license||"unknown"," ","(",String(Math.round(l.socketReport.score.license*100)),"%)"]})]})]}),l.socketReport.alerts.length>0&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsxs(r,{bold:!0,color:"yellow",children:["⚠"," ",String(l.socketReport.alerts.length)," ","alert",l.socketReport.alerts.length===1?"":"s",":"]}),l.socketReport.alerts.map(c=>e.jsxs(t,{gap:1,paddingLeft:2,children:[e.jsxs(r,{bold:!0,color:Re[c.severity]??"gray",children:["[",c.severity.toUpperCase(),"]"]}),e.jsx(r,{children:c.type}),e.jsxs(r,{dimColor:!0,children:["(",c.category,")"]})]},c.key))]})]}),s&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"AI ANALYSIS"}),e.jsx(r,{}),e.jsxs(t,{gap:2,children:[e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Action: "}),e.jsx(r,{bold:!0,color:Ee[s.action]??"white",children:s.action})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Risk: "}),e.jsx(r,{bold:!0,color:ye[s.riskLevel]??"white",children:s.riskLevel})]}),e.jsxs(t,{children:[e.jsx(r,{dimColor:!0,children:"Effort: "}),e.jsx(r,{bold:!0,children:s.effort})]})]}),s.reason&&e.jsx(t,{marginTop:1,paddingLeft:2,children:e.jsx(r,{children:s.reason})}),s.breakingChanges.length>0&&e.jsxs(t,{flexDirection:"column",marginTop:1,paddingLeft:2,children:[e.jsx(r,{bold:!0,color:"yellow",children:"Breaking changes:"}),s.breakingChanges.map((c,v)=>e.jsxs(r,{children:[" ","•"," ",c]},String(v)))]})]}),a&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"CHANGELOG"}),e.jsx(t,{marginTop:1,paddingLeft:2,children:e.jsx(r,{color:"cyan",underline:!0,children:a})})]}),e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"LINKS"}),e.jsx(t,{flexDirection:"column",marginTop:1,paddingLeft:2,children:l.kind==="ecosystem"?e.jsx(r,{color:"cyan",underline:!0,children:l.detailUrl??l.displayName??l.packageName}):e.jsxs(r,{color:"cyan",underline:!0,children:["https://npmx.dev/",l.packageName]})})]}),!s&&l.kind!=="ecosystem"&&e.jsxs(t,{flexDirection:"column",marginTop:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"GUIDANCE"}),e.jsxs(t,{flexDirection:"column",marginTop:1,paddingLeft:2,children:[l.updateType==="major"&&e.jsxs(e.Fragment,{children:[e.jsxs(r,{color:"red",children:["⚠"," ","Major update — likely contains breaking changes."]}),e.jsx(r,{dimColor:!0,children:" Review the changelog before updating."}),e.jsx(r,{dimColor:!0,children:" Use --changelog to fetch release URLs."})]}),l.updateType==="minor"&&e.jsxs(e.Fragment,{children:[e.jsxs(r,{color:"yellow",children:["ℹ"," ","Minor update — new features, backward compatible."]}),e.jsx(r,{dimColor:!0,children:" Generally safe to update."})]}),l.updateType==="patch"&&e.jsxs(e.Fragment,{children:[e.jsxs(r,{color:"green",children:["✓"," ","Patch update — bug fixes only."]}),e.jsx(r,{dimColor:!0,children:" Safe to update."})]}),!s&&e.jsx(r,{dimColor:!0,children:" Use --ai to get AI-powered analysis."})]})]})]})]})},Ie={major:"red",minor:"yellow",patch:"green"},ve=[{id:"all",label:"All"},{id:"major",label:"Major"},{id:"minor",label:"Minor"},{id:"patch",label:"Patch"},{id:"security",label:"Security"}],Me=({checked:a,entry:l,isSelected:i})=>{const s=Ie[l.updateType]??"white",d=l.vulnerabilities&&l.vulnerabilities.length>0,h=l.socketReport&&l.socketReport.alerts.length>0,f=!!l.acceptedRisk,w=a?"☑":"☐",g=l.socketReport?`${String(Math.round(l.socketReport.score.overall*100))}%`:"",j=l.socketReport?xe(l.socketReport.score.overall):"gray";return e.jsxs(t,{flexShrink:0,height:1,children:[e.jsx(r,{children:i?">":" "}),e.jsxs(r,{color:a?"white":"gray",children:[" ",w," "]}),d||h?e.jsx(r,{color:f?"gray":"red",children:f?"✓ ":"⚠ "}):e.jsx(r,{children:" "}),e.jsx(t,{flexGrow:1,children:e.jsxs(r,{bold:i,inverse:i,wrap:"truncate",children:[l.displayName??l.packageName,f?" [ack]":""]})}),g&&e.jsxs(r,{color:j,children:[" ",g]}),e.jsxs(r,{dimColor:!0,children:[" ",l.currentRange]}),e.jsxs(r,{dimColor:!0,children:[" ","→"," "]}),e.jsxs(r,{children:[l.newRange," "]}),e.jsx(r,{bold:!0,color:s,children:l.updateType})]})},Ne=({count:a,ecosystem:l=!1,name:i})=>e.jsxs(t,{flexShrink:0,height:1,marginTop:1,children:[e.jsxs(r,{color:l?"cyan":void 0,dimColor:!l,children:[l?"◈":"▼"," "]}),e.jsx(r,{bold:!0,color:l?"cyan":"white",children:i.toUpperCase()}),e.jsxs(r,{dimColor:!0,children:[" ","(",a,")"]}),l&&e.jsxs(r,{color:"cyan",dimColor:!0,children:[" ","ci/cd refs"]})]}),De=({checkedEntries:a,entries:l,filterActive:i,filteredOutCount:s,filterText:d,filterType:h,focused:f,groupedByCatalog:w,isDryRun:g,onViewportHeightChange:j,scrollOffset:c,selectedIndex:v,totalCatalogEntries:M,totalChecked:y,totalEntries:U,viewportHeight:P})=>{const B=f?"white":"gray",{measuredHeight:m,ref:E}=Te(P,j);let V=0,R=0,N=0,A=0;for(const u of l)u.updateType==="major"?V++:u.updateType==="minor"?R++:N++,(u.vulnerabilities&&u.vulnerabilities.length>0||u.socketReport&&u.socketReport.alerts.length>0)&&A++;const b=[];V>0&&b.push(`${V} major`),R>0&&b.push(`${R} minor`),N>0&&b.push(`${N} patch`),A>0&&b.push(`${A} vulnerable`);const D=b.length>0?` (${b.join(", ")})`:"",C=l.filter(u=>u.kind==="ecosystem").length,T=l.length-C;let F=0;for(const u of l)a.has(I(u))&&F++;const O=[];let H=0;for(const[u,S]of w){O.push(e.jsx(Ne,{count:S.length,ecosystem:S[0]?.kind==="ecosystem",name:u},`hdr-${u}`));for(const k of S){const X=H;O.push(e.jsx(Me,{checked:a.has(I(k)),entry:k,isSelected:X===v},I(k))),H++}}let L=0;for(const[,u]of w)L+=2+u.length;const _=L>m&&m>0;return e.jsxs(t,{borderColor:B,borderStyle:"single",flexDirection:"column",flexGrow:1,children:[e.jsxs(t,{flexShrink:0,gap:1,paddingX:1,children:[e.jsx(r,{bold:!0,inverse:!0,children:" VIS "}),e.jsxs(r,{wrap:"truncate",children:[C>0?T:U,y>0?`/${y}`:""," ",C>0?"pkgs":"outdated",D,M>y?` · ${M-y} dupes`:""]}),C>0&&e.jsxs(r,{color:"cyan",children:[" ","◈",C," ","ci/cd"]}),!g&&F>0&&e.jsxs(r,{dimColor:!0,children:[" ","—",F," ","selected"]})]}),e.jsx(t,{flexShrink:0,paddingX:1,paddingY:1,children:e.jsx(Ce,{isFocused:f,keyMap:{next:[],previous:[],useNumbers:!1,useTab:!1},onChange:()=>{},showIndex:!1,value:h,children:ve.map(({id:u,label:S})=>e.jsx(be,{name:u,children:S},u))})}),i&&e.jsxs(t,{flexShrink:0,paddingX:1,children:[e.jsx(r,{bold:!0,color:"white",children:"/ "}),e.jsx(r,{children:d}),e.jsx(r,{inverse:!0,children:" "})]}),s>0&&e.jsx(t,{flexShrink:0,paddingX:1,children:e.jsxs(r,{color:"yellow",children:["⚠"," ",s," ","package",s===1?"":"s"," ","filtered out by target constraint — press"," ",e.jsx(r,{bold:!0,color:"white",children:"f"})," ","to view"]})}),e.jsxs(t,{flexDirection:"row",flexGrow:1,overflow:"hidden",ref:E,children:[e.jsx(t,{flexDirection:"column",flexGrow:1,overflow:"hidden",paddingLeft:1,children:e.jsx(t,{flexDirection:"column",marginTop:-c,children:O})}),_&&e.jsx(t,{flexShrink:0,marginLeft:1,marginRight:1,children:e.jsx(pe,{contentHeight:L,placement:"inset",scrollOffset:c,style:"block",viewportHeight:m})})]},`list-${h}-${d}`)]})},Le=100,Pe=40,Be=10,Ve=[],G=["all","major","minor","patch","security"],Ye=({autoExitSeconds:a=0,changelogUrls:l,checkedCount:i=0,filteredOutEntries:s=Ve,isDryRun:d,store:h,totalCatalogEntries:f=0})=>{const{exit:w}=fe(),{columns:g,rows:j}=ae(),c=p.useSyncExternalStore(h.subscribe,h.getSnapshot),[v,M]=p.useState(!1),[y,U]=p.useState(!1),P=p.useRef(null),B=p.useRef(null),m=p.useRef(null),E=p.useRef(null),[V,R]=p.useState(0),[N,A]=p.useState(!1),[b,D]=p.useState(!1),C=p.useMemo(()=>h.getFilteredEntries(),[c.entries,c.filterType,c.filterText,c.sortMode]),T=C[c.selectedIndex]??null,F=T?h.getRecommendation(T.packageName):void 0,O=T&&l?l.get(T.packageName):void 0,H=p.useCallback(o=>{let n=0,x=0;for(const[,Q]of c.groupedByCatalog){n+=2;for(let oe=0;oe<Q.length;oe++){if(x===o)return n;n+=1,x++}}return n},[c.groupedByCatalog]),L=Math.max(1,j-8-(c.filterActive?1:0)),[_,u]=p.useState(L),S=_>0?_:L,k=p.useCallback(o=>{const n=H(o);R(x=>n>x+S-2?Math.max(0,n-S+2):n<x+1?Math.max(0,n-1):x)},[H,S]);if(p.useEffect(()=>{m.current?.scrollToTop()},[T?.packageName]),me((o,n)=>{if(o==="c"&&n.ctrl){w();return}if(!b){if(y){n.escape||o==="f"||o==="q"?U(!1):n.downArrow||o==="j"?B.current?.scrollBy(1):(n.upArrow||o==="k")&&B.current?.scrollBy(-1);return}if(N){o==="u"||n.return?(A(!1),h.startApply(),w(h.getCheckedEntries())):n.escape||o==="q"?A(!1):n.downArrow||o==="j"?E.current?.scrollBy(1):n.upArrow||o==="k"?E.current?.scrollBy(-1):n.pageDown?E.current?.scrollBy(5):n.pageUp&&E.current?.scrollBy(-5);return}if(v){n.escape||o==="?"?M(!1):o==="q"?(M(!1),D(!0)):n.downArrow||o==="j"?P.current?.scrollBy(1):(n.upArrow||o==="k")&&P.current?.scrollBy(-1);return}if(o==="?"){M(!0);return}if(o==="q"){D(!0);return}if(n.tab){h.setFocusedPanel(c.focusedPanel==="list"?"detail":"list");return}if(c.focusedPanel==="list"&&(n.leftArrow||n.rightArrow)){const x=G.indexOf(c.filterType),Q=n.rightArrow?(x+1)%G.length:(x-1+G.length)%G.length;R(0),m.current?.scrollToTop(),h.setFilterType(G[Q]);return}if(o==="f"&&s.length>0){U(x=>!x);return}if(c.filterActive){if(n.escape){h.setFilterActive(!1);return}if(n.return){h.setFilterActive(!1);return}if(n.backspace){R(0),h.setFilter(c.filterText.slice(0,-1));return}if(o&&!n.ctrl&&!n.meta){R(0),h.setFilter(c.filterText+o);return}return}if(c.focusedPanel==="list"){if(n.downArrow||o==="j"){const x=Math.min(c.selectedIndex+1,C.length-1);h.setSelectedIndex(x),k(x);return}if(n.upArrow||o==="k"){const x=Math.max(c.selectedIndex-1,0);h.setSelectedIndex(x),k(x);return}if(n.pageDown){const x=Math.min(c.selectedIndex+10,C.length-1);h.setSelectedIndex(x),k(x);return}if(n.pageUp){const x=Math.max(c.selectedIndex-10,0);h.setSelectedIndex(x),k(x);return}if(n.home){h.setSelectedIndex(0),R(0);return}if(n.end){const x=C.length-1;h.setSelectedIndex(x),k(x);return}if(o===" "||n.return){T&&h.toggleCheck(T);return}if(o==="a"){h.toggleAll();return}if(o==="s"){h.cycleSortMode(),k(h.getSnapshot().selectedIndex);return}if(o==="/"){h.setFilterActive(!0);return}if(o==="u"&&!d&&c.checkedEntries.size>0){A(!0);return}if(n.rightArrow){h.setFocusedPanel("detail");return}return}if(c.focusedPanel==="detail"){if(n.escape||n.leftArrow){h.setFocusedPanel("list");return}if(n.downArrow||o==="j"){m.current?.scrollBy(1);return}if(n.upArrow||o==="k"){m.current?.scrollBy(-1);return}if(n.pageDown){m.current?.scrollBy(10);return}if(n.pageUp){m.current?.scrollBy(-10);return}if(n.home){m.current?.scrollToTop();return}n.end&&m.current?.scrollToBottom()}}},{isActive:!0}),g<Pe||j<Be)return e.jsx(t,{alignItems:"center",height:j,justifyContent:"center",width:g,children:e.jsxs(r,{color:"yellow",children:["Terminal too small (",g,"x",j,")"]})});const X=g>=Le,K=[e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"q"}),e.jsx(r,{dimColor:!0,children:"QUIT"})]},"q"),e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"?"}),e.jsx(r,{dimColor:!0,children:"HELP"})]},"?"),e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"↑↓"}),e.jsx(r,{dimColor:!0,children:"NAV"})]},"nav"),e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"Space"}),e.jsx(r,{dimColor:!0,children:"CHECK"})]},"sp"),e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"a"}),e.jsx(r,{dimColor:!0,children:"ALL"})]},"a")];!d&&c.checkedEntries.size>0&&K.push(e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"green",children:"u"}),e.jsx(r,{dimColor:!0,children:"APPLY"})]},"u")),s.length>0&&K.push(e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"yellow",children:"f"}),e.jsxs(r,{dimColor:!0,children:["FILTERED (",s.length,")"]})]},"fo")),K.push(e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"←→"}),e.jsx(r,{dimColor:!0,children:"FILTER"})]},"lr"),e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"/"}),e.jsx(r,{dimColor:!0,children:"SEARCH"})]},"f"),e.jsxs(t,{gap:1,children:[e.jsx(r,{bold:!0,color:"white",children:"Tab"}),e.jsx(r,{dimColor:!0,children:"PANEL"})]},"t"));const ee=e.jsx(t,{borderBottom:!1,borderColor:"gray",borderLeft:!1,borderRight:!1,borderStyle:"single",flexShrink:0,children:e.jsx(t,{flexWrap:"wrap",gap:2,paddingX:1,children:K})}),re=e.jsxs(z,{footer:e.jsxs(r,{dimColor:!0,children:[e.jsx(r,{bold:!0,color:"white",children:"↑↓"})," ","scroll"," ",e.jsx(r,{bold:!0,color:"white",children:"?"}),"/",e.jsx(r,{bold:!0,color:"white",children:"Esc"})," ","close"]}),scrollRef:P,title:"KEYBOARD SHORTCUTS",visible:v,width:52,children:[e.jsxs(t,{flexDirection:"column",marginBottom:1,children:[e.jsxs(t,{marginBottom:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"NAVIGATION"})]}),e.jsxs(t,{children:[e.jsx(t,{width:24,children:e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","↑","/k"]}),e.jsx(r,{dimColor:!0,children:" Move up"})]})}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","↓","/j"]}),e.jsx(r,{dimColor:!0,children:" Move down"})]})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","Tab"]}),e.jsx(r,{dimColor:!0,children:" Switch panel"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","→","/","←"]}),e.jsx(r,{dimColor:!0,children:" Focus detail/list"})]})]}),e.jsxs(t,{flexDirection:"column",marginBottom:1,children:[e.jsxs(t,{marginBottom:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"SELECTION"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","Space"]}),e.jsx(r,{dimColor:!0,children:" Toggle check on package"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","a"]}),e.jsx(r,{dimColor:!0,children:" Toggle check all"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","s"]}),e.jsx(r,{dimColor:!0,children:" Cycle sort (default / name / type / severity)"})]})]}),e.jsxs(t,{flexDirection:"column",marginBottom:1,children:[e.jsxs(t,{marginBottom:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"FILTERS"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","←→"]}),e.jsx(r,{dimColor:!0,children:" Switch filter tab"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","/"]}),e.jsx(r,{dimColor:!0,children:" Text filter"})]}),s.length>0&&e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","f"]}),e.jsx(r,{dimColor:!0,children:" View filtered-out packages"})]})]}),e.jsxs(t,{flexDirection:"column",children:[e.jsxs(t,{marginBottom:1,children:[e.jsx(r,{dimColor:!0,children:"── "}),e.jsx(r,{bold:!0,color:"white",children:"ACTIONS"})]}),!d&&e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","u"]}),e.jsx(r,{dimColor:!0,children:" Apply selected updates"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","q"]}),e.jsx(r,{dimColor:!0,children:" Quit"})]}),e.jsxs(r,{children:[e.jsxs(r,{bold:!0,color:"white",children:[" ","?"]}),e.jsx(r,{dimColor:!0,children:" Toggle help"})]})]})]}),Y=h.getCheckedEntries(),q=Y.filter(o=>o.updateType==="major").length,ue=e.jsxs(t,{alignItems:"center",flexDirection:"column",children:[q>0&&e.jsx(t,{marginBottom:1,marginTop:1,children:e.jsxs(r,{color:"yellow",children:["⚠"," ",q," ","major update",q===1?"":"s"," ","— review breaking changes"]})}),e.jsxs(r,{dimColor:!0,children:["Press"," ",e.jsx(r,{bold:!0,color:"white",children:"u"})," ","or"," ",e.jsx(r,{bold:!0,color:"white",children:"Enter"})," ","to confirm,"," ",e.jsx(r,{bold:!0,color:"white",children:"Esc"})," ","to cancel"]})]}),le=e.jsx(z,{footer:ue,scrollRef:E,title:`Apply ${Y.length} update${Y.length===1?"":"s"}?`,visible:N,width:70,children:Y.map(o=>e.jsxs(t,{gap:1,children:[e.jsxs(r,{children:[" ",o.displayName??o.packageName]}),e.jsxs(r,{dimColor:!0,children:[o.currentRange," ","→"," ",o.newRange]}),e.jsx(r,{bold:!0,color:o.updateType==="major"?"red":o.updateType==="minor"?"yellow":"green",children:o.updateType})]},o.packageName))}),te=s.length>0?e.jsx(z,{footer:e.jsxs(r,{dimColor:!0,children:[e.jsx(r,{bold:!0,color:"white",children:"↑↓"})," ","scroll"," ",e.jsx(r,{bold:!0,color:"white",children:"f"}),"/",e.jsx(r,{bold:!0,color:"white",children:"Esc"})," ","close"]}),scrollRef:B,title:`${s.length} PACKAGE${s.length===1?"":"S"} FILTERED BY TARGET`,visible:y,width:70,children:e.jsxs(t,{flexDirection:"column",children:[e.jsx(t,{marginBottom:1,children:e.jsxs(r,{dimColor:!0,children:["These packages have newer versions available but are excluded by the current target constraint. Use"," ",e.jsx(r,{bold:!0,color:"white",children:"--target latest"})," ","to include them."]})}),s.map(o=>e.jsxs(t,{gap:1,children:[e.jsxs(r,{children:[" ",o.packageName]}),e.jsxs(r,{dimColor:!0,children:[o.currentRange," ","→"," ",o.newRange]}),e.jsx(r,{bold:!0,color:o.updateType==="major"?"red":o.updateType==="minor"?"yellow":"green",children:o.updateType})]},o.packageName))]})}):null,se=e.jsx(De,{checkedEntries:c.checkedEntries,entries:C,filterActive:c.filterActive,filteredOutCount:s.length,filterText:c.filterText,filterType:c.filterType,focused:c.focusedPanel==="list",groupedByCatalog:c.groupedByCatalog,isDryRun:d,onViewportHeightChange:u,scrollOffset:V,selectedIndex:c.selectedIndex,totalCatalogEntries:f,totalChecked:i,totalEntries:C.length,viewportHeight:S}),ie=e.jsx(Ae,{changelogUrl:O,entry:T,focused:c.focusedPanel==="detail",recommendation:F,scrollRef:m});if(X){const o=Math.floor(g*.35);return e.jsxs(t,{flexDirection:"column",height:j,width:g,children:[e.jsxs(t,{flexDirection:"row",flexGrow:1,children:[e.jsx(t,{flexGrow:1,children:se}),e.jsx(t,{width:o,children:ie})]}),ee,le,te,e.jsx(ce,{autoExitSeconds:a||3,onCancel:()=>{D(!1)},visible:b}),re]})}const ge=Math.floor(j*.55);return e.jsxs(t,{flexDirection:"column",height:j,width:g,children:[e.jsx(t,{height:ge,children:se}),e.jsx(t,{flexGrow:1,children:ie}),ee,le,te,e.jsx(ce,{autoExitSeconds:a||3,onCancel:()=>{D(!1)},visible:b}),re]})};export{_e as C,Ke as U,Ye as V,J as e};
@@ -1,4 +1,4 @@
1
- import{createRequire as Dt}from"node:module";import{b as fe,u as Bt,c as F,h as Wt,i as Oe,d as zt,a as Ft,l as Gt,e as Me}from"./package-version-C5EPMgRw.js";let Tt;const Vt=t=>(Tt??=Dt(import.meta.url))(t),se=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,jt=t=>{if(typeof se<"u"&&se.versions&&se.versions.node){const[e,n]=se.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return se.getBuiltinModule(t)}return Vt(t)},{createRequire:Rt}=jt("node:module"),qt=16,we=32,Ht=64,R=128,he="positionals";let oe=class extends Error{loc;title;hint;type="VisulimaError";constructor({cause:e,hint:n,location:o,message:i,name:s,stack:l,title:r}){super(i,{cause:e}),this.title=r,this.name=s,this.stack=l??this.stack,this.loc=o,this.hint=n}setLocation(e){this.loc=e}setName(e){this.name=e}setMessage(e){this.message=e}setHint(e){this.hint=e}},b=class extends oe{code;context;constructor(e,n,o){super({message:e,name:"CerebroError"}),this.code=n,this.context=o}},Jt=class extends b{argument;choices;value;constructor(e,n,o){super(`Invalid value "${n}" for argument "${e}". Allowed values: ${o.join(", ")}`,"INVALID_CHOICE",{argument:e,choices:o,value:n}),this.name="InvalidArgumentChoiceError",this.argument=e,this.value=n,this.choices=o,this.hint=`Pass one of: ${o.join(", ")}`}};class Kt extends b{commandName;missingArguments;constructor(e,n){super(`Command "${e}" is missing required arguments: ${n.join(", ")}`,"MISSING_ARGUMENT",{commandName:e,missingArguments:n}),this.name="MissingArgumentError",this.commandName=e,this.missingArguments=n,this.hint=`Provide the following positional arguments: ${n.join(", ")}`}}let Zt=class extends b{commandName;surplusArguments;constructor(e,n,o){super(`Command "${e}" accepts ${String(o)} positional argument${o===1?"":"s"}, but got ${String(n.length)} extra: ${n.join(", ")}`,"SURPLUS_ARGUMENT",{commandName:e,surplusArguments:[...n]}),this.name="SurplusArgumentError",this.commandName=e,this.surplusArguments=n,this.hint=`Remove the extra argument${n.length===1?"":"s"}, or declare a trailing "multiple: true" argument to collect them.`}};const at=String.raw,Pe=at`\p{Emoji}(?:\p{EMod}|[\u{E0020}-\u{E007E}]+\u{E007F}|\uFE0F?\u20E3?)`,Yt=()=>new RegExp(at`\p{RI}{2}|(?![#*\d](?!\uFE0F?\u20E3))${Pe}(?:\u200D${Pe})*`,"gu");Object.freeze(new Map([[0,0],[1,22],[2,22],[3,23],[4,24],[7,27],[8,28],[9,29],[30,39],[31,39],[32,39],[33,39],[34,39],[35,39],[36,39],[37,39],[40,49],[41,49],[42,49],[43,49],[44,49],[45,49],[46,49],[47,49],[90,39]]));const yi=/[\u001B\u009B](?:[[()#;?]{0,10}(?:\d{1,4}(?:;\d{0,4})*)?[0-9A-ORZcf-nqry=><]|\]8;;[^\u0007\u001B]{0,100}(?:\u0007|\u001B\\))/g,$i=/[\u0000-\u0008\n-\u001F\u007F-\u009F]{1,1000}/y,G=Yt(),Qt=/[-_./\s]+/g,pe=/(\u001B\[[0-9;]*[a-z])/i,Ue=new RegExp("\\p{Script=Arabic}","u"),Xt=new RegExp("\\p{Script=Bengali}","u"),ee=new RegExp("\\p{Script=Cyrillic}","u"),en=new RegExp("\\p{Script=Devanagari}","u"),tn=new RegExp("\\p{Script=Ethiopic}","u"),ve=new RegExp("\\p{Script=Greek}","u"),De=new RegExp("\\p{Script=Greek}+|\\p{Script=Latin}+|[^\\p{Script=Greek}\\p{Script=Latin}]+","gu"),nn=new RegExp("\\p{Script=Gujarati}","u"),on=new RegExp("\\p{Script=Gurmukhi}","u"),Te=new RegExp("\\p{Script=Hangul}","u"),Ve=new RegExp("\\p{Script=Hebrew}","u"),sn=new RegExp("\\p{Script=Hiragana}","u"),je=new RegExp("\\p{Script=Han}","u"),rn=new RegExp("\\p{Script=Kannada}","u"),an=new RegExp("\\p{Script=Katakana}","u"),cn=new RegExp("\\p{Script=Khmer}","u"),ln=new RegExp("\\p{Script=Lao}","u"),L=new RegExp("\\p{Script=Latin}","u"),un=new RegExp("\\p{Script=Malayalam}","u"),hn=new RegExp("\\p{Script=Myanmar}","u"),pn=new RegExp("\\p{Script=Oriya}","u"),dn=new RegExp("\\p{Script=Sinhala}","u"),fn=new RegExp("\\p{Script=Tamil}","u"),mn=new RegExp("\\p{Script=Telugu}","u"),gn=new RegExp("\\p{Script=Thai}","u"),wn=new RegExp("\\p{Script=Tibetan}","u"),Re=/[\u02BB\u02BC\u0027]/u,vn=t=>t.replace(G,""),V={COMMAND_NOT_FOUND:"COMMAND_NOT_FOUND",COMMAND_VALIDATION_ERROR:"COMMAND_VALIDATION_ERROR",CONFLICTING_OPTIONS:"CONFLICTING_OPTIONS",INVALID_ARGUMENT:"INVALID_ARGUMENT",INVALID_CHOICE:"INVALID_CHOICE",INVALID_INPUT:"INVALID_INPUT",MISSING_ARGUMENT:"MISSING_ARGUMENT",SURPLUS_ARGUMENT:"SURPLUS_ARGUMENT",UNKNOWN_OPTION:"UNKNOWN_OPTION"},yn=new Set([V.COMMAND_NOT_FOUND,V.COMMAND_VALIDATION_ERROR,V.CONFLICTING_OPTIONS,V.INVALID_ARGUMENT,V.INVALID_CHOICE,V.INVALID_INPUT,V.MISSING_ARGUMENT,V.SURPLUS_ARGUMENT,V.UNKNOWN_OPTION]),$n=t=>{const e=t?.code;return typeof e=="string"&&yn.has(e)},_e=t=>{if(!$n(t))return;const{hint:e,message:n}=t,o=(Array.isArray(e)?e:[e]).filter(i=>typeof i=="string"&&i.length>0);return o.length>0?[n,...o].join(`
1
+ import{createRequire as Dt}from"node:module";import{b as fe,u as Bt,c as F,h as Wt,i as Oe,d as zt,a as Ft,l as Gt,e as Me}from"./package-version-DUcG-b7S.js";let Tt;const Vt=t=>(Tt??=Dt(import.meta.url))(t),se=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,jt=t=>{if(typeof se<"u"&&se.versions&&se.versions.node){const[e,n]=se.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return se.getBuiltinModule(t)}return Vt(t)},{createRequire:Rt}=jt("node:module"),qt=16,we=32,Ht=64,R=128,he="positionals";let oe=class extends Error{loc;title;hint;type="VisulimaError";constructor({cause:e,hint:n,location:o,message:i,name:s,stack:l,title:r}){super(i,{cause:e}),this.title=r,this.name=s,this.stack=l??this.stack,this.loc=o,this.hint=n}setLocation(e){this.loc=e}setName(e){this.name=e}setMessage(e){this.message=e}setHint(e){this.hint=e}},b=class extends oe{code;context;constructor(e,n,o){super({message:e,name:"CerebroError"}),this.code=n,this.context=o}},Jt=class extends b{argument;choices;value;constructor(e,n,o){super(`Invalid value "${n}" for argument "${e}". Allowed values: ${o.join(", ")}`,"INVALID_CHOICE",{argument:e,choices:o,value:n}),this.name="InvalidArgumentChoiceError",this.argument=e,this.value=n,this.choices=o,this.hint=`Pass one of: ${o.join(", ")}`}};class Kt extends b{commandName;missingArguments;constructor(e,n){super(`Command "${e}" is missing required arguments: ${n.join(", ")}`,"MISSING_ARGUMENT",{commandName:e,missingArguments:n}),this.name="MissingArgumentError",this.commandName=e,this.missingArguments=n,this.hint=`Provide the following positional arguments: ${n.join(", ")}`}}let Zt=class extends b{commandName;surplusArguments;constructor(e,n,o){super(`Command "${e}" accepts ${String(o)} positional argument${o===1?"":"s"}, but got ${String(n.length)} extra: ${n.join(", ")}`,"SURPLUS_ARGUMENT",{commandName:e,surplusArguments:[...n]}),this.name="SurplusArgumentError",this.commandName=e,this.surplusArguments=n,this.hint=`Remove the extra argument${n.length===1?"":"s"}, or declare a trailing "multiple: true" argument to collect them.`}};const at=String.raw,Pe=at`\p{Emoji}(?:\p{EMod}|[\u{E0020}-\u{E007E}]+\u{E007F}|\uFE0F?\u20E3?)`,Yt=()=>new RegExp(at`\p{RI}{2}|(?![#*\d](?!\uFE0F?\u20E3))${Pe}(?:\u200D${Pe})*`,"gu");Object.freeze(new Map([[0,0],[1,22],[2,22],[3,23],[4,24],[7,27],[8,28],[9,29],[30,39],[31,39],[32,39],[33,39],[34,39],[35,39],[36,39],[37,39],[40,49],[41,49],[42,49],[43,49],[44,49],[45,49],[46,49],[47,49],[90,39]]));const yi=/[\u001B\u009B](?:[[()#;?]{0,10}(?:\d{1,4}(?:;\d{0,4})*)?[0-9A-ORZcf-nqry=><]|\]8;;[^\u0007\u001B]{0,100}(?:\u0007|\u001B\\))/g,$i=/[\u0000-\u0008\n-\u001F\u007F-\u009F]{1,1000}/y,G=Yt(),Qt=/[-_./\s]+/g,pe=/(\u001B\[[0-9;]*[a-z])/i,Ue=new RegExp("\\p{Script=Arabic}","u"),Xt=new RegExp("\\p{Script=Bengali}","u"),ee=new RegExp("\\p{Script=Cyrillic}","u"),en=new RegExp("\\p{Script=Devanagari}","u"),tn=new RegExp("\\p{Script=Ethiopic}","u"),ve=new RegExp("\\p{Script=Greek}","u"),De=new RegExp("\\p{Script=Greek}+|\\p{Script=Latin}+|[^\\p{Script=Greek}\\p{Script=Latin}]+","gu"),nn=new RegExp("\\p{Script=Gujarati}","u"),on=new RegExp("\\p{Script=Gurmukhi}","u"),Te=new RegExp("\\p{Script=Hangul}","u"),Ve=new RegExp("\\p{Script=Hebrew}","u"),sn=new RegExp("\\p{Script=Hiragana}","u"),je=new RegExp("\\p{Script=Han}","u"),rn=new RegExp("\\p{Script=Kannada}","u"),an=new RegExp("\\p{Script=Katakana}","u"),cn=new RegExp("\\p{Script=Khmer}","u"),ln=new RegExp("\\p{Script=Lao}","u"),L=new RegExp("\\p{Script=Latin}","u"),un=new RegExp("\\p{Script=Malayalam}","u"),hn=new RegExp("\\p{Script=Myanmar}","u"),pn=new RegExp("\\p{Script=Oriya}","u"),dn=new RegExp("\\p{Script=Sinhala}","u"),fn=new RegExp("\\p{Script=Tamil}","u"),mn=new RegExp("\\p{Script=Telugu}","u"),gn=new RegExp("\\p{Script=Thai}","u"),wn=new RegExp("\\p{Script=Tibetan}","u"),Re=/[\u02BB\u02BC\u0027]/u,vn=t=>t.replace(G,""),V={COMMAND_NOT_FOUND:"COMMAND_NOT_FOUND",COMMAND_VALIDATION_ERROR:"COMMAND_VALIDATION_ERROR",CONFLICTING_OPTIONS:"CONFLICTING_OPTIONS",INVALID_ARGUMENT:"INVALID_ARGUMENT",INVALID_CHOICE:"INVALID_CHOICE",INVALID_INPUT:"INVALID_INPUT",MISSING_ARGUMENT:"MISSING_ARGUMENT",SURPLUS_ARGUMENT:"SURPLUS_ARGUMENT",UNKNOWN_OPTION:"UNKNOWN_OPTION"},yn=new Set([V.COMMAND_NOT_FOUND,V.COMMAND_VALIDATION_ERROR,V.CONFLICTING_OPTIONS,V.INVALID_ARGUMENT,V.INVALID_CHOICE,V.INVALID_INPUT,V.MISSING_ARGUMENT,V.SURPLUS_ARGUMENT,V.UNKNOWN_OPTION]),$n=t=>{const e=t?.code;return typeof e=="string"&&yn.has(e)},_e=t=>{if(!$n(t))return;const{hint:e,message:n}=t,o=(Array.isArray(e)?e:[e]).filter(i=>typeof i=="string"&&i.length>0);return o.length>0?[n,...o].join(`
2
2
  `):n},B=new Uint32Array(65536),Nn=(t,e)=>{const n=t.length,o=e.length,i=1<<n-1;let s=-1,l=0,r=n,u=n;for(;u--;)B[t.charCodeAt(u)]|=1<<u;for(u=0;u<o;u++){let a=B[e.charCodeAt(u)];const c=a|l;a|=(a&s)+s^s,l|=~(a|s),s&=a,l&i&&r++,s&i&&r--,l=l<<1|1,s=s<<1|~(c|l),l&=c}for(u=n;u--;)B[t.charCodeAt(u)]=0;return r},An=(t,e)=>{const n=e.length,o=t.length,i=[],s=[],l=Math.ceil(n/32),r=Math.ceil(o/32);for(let p=0;p<l;p++)s[p]=-1,i[p]=0;let u=0;for(;u<r-1;u++){let p=0,w=-1;const $=u*32,m=Math.min(32,o)+$;for(let y=$;y<m;y++)B[t.charCodeAt(y)]|=1<<y;for(let y=0;y<n;y++){const A=B[e.charCodeAt(y)],O=s[y/32|0]>>>y&1,C=i[y/32|0]>>>y&1,D=A|p,E=((A|C)&w)+w^w|A|C;let g=p|~(E|w),v=w&E;g>>>31^O&&(s[y/32|0]^=1<<y),v>>>31^C&&(i[y/32|0]^=1<<y),g=g<<1|O,v=v<<1|C,w=v|~(D|g),p=g&D}for(let y=$;y<m;y++)B[t.charCodeAt(y)]=0}let a=0,c=-1;const d=u*32,h=Math.min(32,o-d)+d;for(let p=d;p<h;p++)B[t.charCodeAt(p)]|=1<<p;let f=o;for(let p=0;p<n;p++){const w=B[e.charCodeAt(p)],$=s[p/32|0]>>>p&1,m=i[p/32|0]>>>p&1,y=w|a,A=((w|m)&c)+c^c|w|m;let O=a|~(A|c),C=c&A;f+=O>>>o-1&1,f-=C>>>o-1&1,O>>>31^$&&(s[p/32|0]^=1<<p),C>>>31^m&&(i[p/32|0]^=1<<p),O=O<<1|$,C=C<<1|m,c=C|~(y|O),a=O&y}for(let p=d;p<h;p++)B[t.charCodeAt(p)]=0;return f},xn=(t,e)=>{if(t.length<e.length){const n=e;e=t,t=n}return e.length===0?t.length:t.length<=32?Nn(t,e):An(t,e)};let bn;const Cn=t=>(bn??=Rt(import.meta.url))(t),ie=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,On=t=>{if(typeof ie<"u"&&ie.versions&&ie.versions.node){const[e,n]=ie.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return ie.getBuiltinModule(t)}return Cn(t)},{writeFile:_n,stat:In,rm:En,readFile:Be,readdir:kn,mkdir:Sn,access:Ln}=On("node:fs/promises"),ce=[{alias:"v",description:"Turn on verbose output",group:"global",name:"verbose",type:Boolean},{description:"Turn on debugging output",group:"global",name:"debug",type:Boolean},{alias:"h",description:"Print out helpful usage information",group:"global",name:"help",type:Boolean},{alias:"q",description:"Silence output",group:"global",name:"quiet",type:Boolean},{alias:"V",description:"Print version info",group:"global",name:"version",type:Boolean},{description:"Turn off colored output",group:"global",name:"no-color",type:Boolean},{description:"Force colored output",group:"global",name:"color",type:Boolean}];let H=class extends b{commandName;constructor(e,n=[]){const o=`Command "${e}" not found${n.length>0?`. Did you mean: ${n.join(", ")}?`:""}`;super(o,"COMMAND_NOT_FOUND",{commandName:e,suggestions:n}),this.name="CommandNotFoundError",this.commandName=e,n.length>0&&(this.hint=`Try one of these commands: ${n.join(", ")}`)}};class ct extends b{option1;option2;constructor(e,n){super(`Options "${e}" and "${n}" cannot be used together`,"CONFLICTING_OPTIONS",{option1:e,option2:n}),this.name="ConflictingOptionsError",this.option1=e,this.option2=n,this.hint=`Remove either --${e} or --${n}`}}class Mn extends b{unknownOptions;constructor(e,n){const o=e.join(", "),i=`Found unknown ${e.length===1?"option":"options"}: ${o}`;super(i,"UNKNOWN_OPTION",{suggestions:n,unknownOptions:e}),this.name="UnknownOptionError",this.unknownOptions=e,n&&n.length>0&&(this.hint=`Did you mean: ${n.join(", ")}?`)}}class Pn extends b{pluginName;constructor(e,n,o){super(`Plugin "${e}" error: ${n}`,"PLUGIN_ERROR",{originalError:o,pluginName:e}),this.name="PluginError",this.pluginName=e,o&&(this.cause=o)}}class Un{logger;plugins=new Map;initialized=!1;cachedDependencyOrder=void 0;constructor(e){this.logger=e}hasPlugins(){return this.plugins.size>0}register(e){if(this.initialized)throw new Error(`Cannot register plugin "${e.name}" after initialization`);if(this.plugins.has(e.name))throw new Error(`Plugin "${e.name}" is already registered`);fe().CEREBRO_OUTPUT_LEVEL===String(R)&&this.logger.debug(`registering plugin: ${e.name}`),this.plugins.set(e.name,e),this.cachedDependencyOrder=void 0}async init(e){if(this.initialized)throw new Error("PluginManager already initialized");if(this.plugins.size===0){this.logger.debug("no plugins registered, skipping initialization"),this.initialized=!0;return}this.validateDependencies();const n=this.getDependencyOrder();this.logger.debug(`initializing ${String(n.length)} plugin(s)...`);for(const o of n)if(typeof o.init=="function"){this.logger.debug(`initializing plugin: ${o.name}`);try{await o.init(e)}catch(i){const s=new Pn(o.name,`Failed to initialize: ${i instanceof Error?i.message:String(i)}`,i instanceof Error?i:void 0);throw this.logger.error(s.message),s}}this.initialized=!0}async executeLifecycle(e,n,o){if(!this.initialized)throw new Error("PluginManager not initialized");if(this.plugins.size===0)return;const i=this.getDependencyOrder();for(const s of i){const l=s[e];if(typeof l=="function"){this.logger.debug(`executing ${e} hook for plugin: ${s.name}`);try{await(e==="afterCommand"?l(n,o):l(n))}catch(r){throw this.logger.error(`Error in ${e} hook for plugin "${s.name}":`,r),r}}}}async executeErrorHandlers(e,n){if(!this.initialized||this.plugins.size===0)return;const o=this.getDependencyOrder();for(const i of o)if(typeof i.onError=="function"){this.logger.debug(`executing error handler for plugin: ${i.name}`);try{await i.onError(e,n)}catch(s){this.logger.error(`Error in error handler for plugin "${i.name}":`,s)}}}getDependencyOrder(){if(this.cachedDependencyOrder!==void 0)return this.cachedDependencyOrder;const e=[],n=new Set,o=new Set,i=s=>{if(n.has(s))return;if(o.has(s))throw new Error(`Circular dependency detected involving plugin "${s}"`);const l=this.plugins.get(s);if(!l)throw new Error(`Plugin "${s}" not found`);if(o.add(s),l.dependencies)for(const r of l.dependencies)i(r);o.delete(s),n.add(s),e.push(l)};for(const s of this.plugins.keys())i(s);return this.cachedDependencyOrder=e,e}validateDependencies(){for(const e of this.plugins.values())if(e.dependencies){for(const n of e.dependencies)if(!this.plugins.has(n))throw new Error(`Plugin "${e.name}" depends on "${n}" which is not registered`)}}}const re=t=>t.type?.name==="Boolean",Dn=t=>{let e=t.type?t.type.name.toLowerCase():"string";const n=t.multiple??t.lazyMultiple?"[]":"";return e&&(e=e==="boolean"?"":`{underline ${e}${n}}`),e},We=t=>(re(t)||(t.typeLabel=t.typeLabel??Dn(t),t.defaultOption&&(t.typeLabel=`${t.typeLabel} (D)`),t.required&&(t.typeLabel=`${t.typeLabel} (R)`)),t),Tn=new RegExp(/^-([^\d-])$/),Vn=new RegExp(/^--(\S+)/),jn=new RegExp(/^-([^\d-]{2,})$/),Rn=t=>Tn.test(t)||Vn.test(t)||jn.test(t),Bn=(t,e)=>{const n=e[0]&&Rn(e[0])||e.length===0?null:e.shift()??null;if(!t.includes(n)){const o=new Error(`Command not recognised: ${String(n)}`);throw o.command=n,o.name="INVALID_COMMAND",o}return{argv:e,command:n}};let Wn=class lt extends oe{optionName;value;constructor(e,n,o){super({hint:`Pass a valid ${o} value for '${e}'.`,message:`Invalid ${o} value '${n}' for option '${e}'`,name:"INVALID_VALUE",title:"Invalid Value"}),this.optionName=e,this.value=n,Object.setPrototypeOf(this,lt.prototype)}},zn=class ut extends oe{optionName;constructor(e){super({cause:void 0,hint:`Remove the duplicate option '${e}' from your command line arguments.`,location:void 0,message:`Option '${e}' is already set`,name:"ALREADY_SET",stack:void 0,title:"Option Already Set"}),this.optionName=e,Object.setPrototypeOf(this,ut.prototype)}},ze=class ht extends oe{optionName;constructor(e){super({cause:void 0,hint:`Check your option definitions or remove the unknown option '${e}' from your command line arguments.`,location:void 0,message:`Unknown option: --${e}`,name:"UNKNOWN_OPTION",stack:void 0,title:"Unknown Option"}),this.optionName=`--${e}`,Object.setPrototypeOf(this,ht.prototype)}},Fn=class pt extends oe{value;constructor(e){super({hint:"Use a defined option or add a defaultOption to capture this value.",message:`Unknown value: ${e}`,name:"UNKNOWN_VALUE",title:"Unknown Value"}),this.value=e,Object.setPrototypeOf(this,pt.prototype)}},M=class dt extends oe{constructor(e,n){super({cause:void 0,hint:n,location:void 0,message:e,name:"INVALID_DEFINITIONS",stack:void 0,title:"Invalid Option Definition"}),Object.setPrototypeOf(this,dt.prototype)}};const Z=t=>t===Boolean||typeof t=="function"&&t.name==="Boolean",Ie=t=>t===Number||typeof t=="function"&&t.name==="Number",Fe=t=>t===String||typeof t=="function"&&t.name==="String",Ge=(t,e,n)=>{const o=Number(t);if(e&&Number.isNaN(o)&&String(t).trim().toLowerCase()!=="nan")throw new Wn(n??"",String(t),"Number");return o},Gn=(t,e,n={})=>{const{optionName:o,strictTypes:i}=n;return Array.isArray(t)?Z(e)?t.map(Boolean):Ie(e)?t.map(s=>Ge(s,i,o)):Fe(e)?t.map(String):t.map(s=>e(String(s))):t===null?null:Z(e)?!!t:Ie(e)?Ge(t,i,o):Fe(e)?typeof t=="string"?t:String(t):e(typeof t=="string"?t:String(t))},I=(t,e,n,...o)=>{t&&console.debug(`[command-line-args:${n}] ${e}`,...o)},qn=/-([a-z])/g,Hn=/^\d+$/,Jn=t=>t.codePointAt(0)===95,qe=(t,e)=>Array.isArray(t)?[...t,...e]:[t,...e],He=t=>t==="__proto__"||t==="constructor"||t==="prototype",ye=(t,e,n,o=!1)=>{t[e]===void 0?t[e]=o?[n]:n:o&&Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]},Je=(t,e,n,o,i)=>{let s=e.get(t)??n.get(t);if(!s&&o){const l=t.toLowerCase();s=o.get(l)??i?.get(l)}return s},Kn=(t,e,n,o)=>{const i=n.debug??!1;I(i,"resolveArgs called with options:","resolver",{partial:n.partial,stopAtFirstUnknown:n.stopAtFirstUnknown}),I(i,"Starting argument resolution","resolver"),I(i,"Tokens:","resolver",t),I(i,"Definitions:","resolver",e),I(i,"Processing tokens...","resolver");const s=new Map,l=new Map,r=n.caseInsensitive?new Map:void 0,u=n.caseInsensitive?new Map:void 0,a=n.camelCase?new Map:void 0,c=n.camelCase?new Map:void 0;for(const g of e)if(s.set(g.name,g),g.alias&&l.set(g.alias,g),n.caseInsensitive&&r&&(r.set(g.name.toLowerCase(),g),g.alias&&u&&u.set(g.alias.toLowerCase(),g)),n.camelCase&&a&&c){const v=g.name.replaceAll(qn,(N,k)=>k.toUpperCase());a.set(g.name,v),c.set(v,g.name)}const d=Object.create(null),h=Object.create(null),f=[],p=[],w=new Set;let $=!1;const m=e.find(g=>g.defaultOption),y=e.some(g=>g.group),A=e.find(g=>Ie(g.type));for(let g=0;g<t.length;g++){const v=t[g];if(v.kind==="option-terminator"){d._unknown=o.slice(v.index),$=!0;break}if(v.kind==="option"&&v.name){let N=Je(v.name,s,l,r,u);!N&&v.value===void 0&&A&&Hn.test(v.name)&&(N=A,v.value=v.name,v.name=A.name);let k=!1;if(!N&&n.negation&&v.value===void 0&&v.name.startsWith("no-")){const _=v.name.slice(3),U=Je(_,s,l,r,u);U?.type&&Z(U.type)&&(N=U,k=!0)}const x=N?N.name:v.name,S=N?.multiple,P=N?.lazyMultiple;if(Object.hasOwn(h,x)&&h[x]!==void 0&&!S&&!P&&!n.partial)throw new zn(x);if(!N&&n.partial){const _=v.rawName??`--${v.name}${v.value!==void 0&&v.inlineValue?`=${v.value}`:""}`;f.push({index:v.index,value:_});continue}if(!N&&n.stopAtFirstUnknown){d._unknown=o.slice(v.index);break}if(!N&&!n.partial)throw new ze(v.name);if(v.value===void 0){const _=t[g+1],U=_?.kind==="option"&&!("name"in _)&&_.value!==void 0,T=_&&N&&!(N.type&&Z(N.type))&&(_.kind==="positional"||U),Ut=N&&N.defaultOption&&!N.multiple&&!N.lazyMultiple;if(T&&(!N?.defaultOption||Ut))if(S){let j=g+1;const ge=[];for(;j<t.length&&(t[j].kind==="positional"||t[j].kind==="option"&&!("name"in t[j])&&t[j].value!==void 0);)ge.push(t[j].value),w.add(t[j].index),j++;h[x]=h[x]===void 0?ge:qe(h[x],ge),g=j-1}else P?(ye(h,x,_.value,!0),w.add(_.index),g++):(h[x]=_.value,w.add(_.index),g++);else N?.type&&Z(N.type)?ye(h,x,!k,S):(S||P)&&h[x]!==void 0?ye(h,x,null,!0):h[x]=S?[]:null}else{let{value:_}=v;if(N?.type&&Z(N.type))switch(_){case"":{if(n.partial){const T=`${v.rawName??`--${v.name}`}${v.value?`=${v.value}`:""}`;p.push({index:v.index,value:T}),_=!0}else throw new ze(v.name);break}case"false":{_=!1;break}case"true":{_=!0;break}default:_=!0}const U=[_];if(S){let T=g+1;for(;T<t.length&&t[T].kind==="positional";)U.push(t[T].value),w.add(t[T].index),T++;g=T-1}h[x]===void 0?h[x]=S||P?U:_:S||P?h[x]=qe(h[x],U):h[x]=_}}else if(v.kind==="positional"&&n.stopAtFirstUnknown&&!w.has(v.index)&&!m){I(i,`Found unconsumed positional token at index ${String(v.index)}, stopping processing`,"resolver"),d._unknown=o.slice(v.index);break}}for(const[g,v]of Object.entries(h)){const N=s.get(g);N&&(N.multiple||N.lazyMultiple)&&!Array.isArray(v)&&(h[g]=[v])}const O=g=>g.kind==="option"&&!s.has(g.name??"")&&!l.has(g.name??"")&&(!n.caseInsensitive||!r?.has(g.name?.toLowerCase()??"")&&!u?.has(g.name?.toLowerCase()??""));let C=-1,D=Number.POSITIVE_INFINITY;if(n.stopAtFirstUnknown&&!$&&(C=t.findIndex(g=>O(g)),C!==-1&&(D=t[C].index)),m){const g=[],v=[];for(const N of t)N.kind==="positional"&&!w.has(N.index)&&N.index<D&&(g.push(N.value),v.push(N));if(g.length>0){const N=h[m.name],k=m.multiple??m.lazyMultiple;N===void 0?k?(v.forEach(x=>w.add(x.index)),h[m.name]=g):(w.add(v[0].index),h[m.name]=g[0]):k&&(v.forEach(x=>w.add(x.index)),h[m.name]=Array.isArray(N)?[...g,...N]:[...g,N])}}if(!n.partial){for(const g of t)if(g.kind==="positional"&&!w.has(g.index))throw new Fn(o[g.index])}if(n.partial&&!n.stopAtFirstUnknown){const g=[...f];for(const v of p)g.push({index:v.index,value:v.value});for(const v of t)v.kind==="positional"&&!w.has(v.index)&&g.push({index:v.index,value:o[v.index]});g.length>0&&(g.sort((v,N)=>v.index-N.index),d._unknown=g.map(v=>v.value))}if(n.stopAtFirstUnknown&&!$){const g=t.findIndex(N=>N.kind==="positional"&&!w.has(N.index));let v=-1;if(C!==-1&&g!==-1?v=Math.min(C,g):C!==-1?v=C:g!==-1&&(v=g),v>=0){const N=t[v].index;d._unknown=o.slice(N)}}for(const[g,v]of Object.entries(h)){const N=n.camelCase?a?.get(g)??g:g,k=s.get(g);k?.type?d[N]=Gn(v,k.type,{optionName:k.name,strictTypes:n.strictTypes}):d[N]=v===void 0?null:v}for(const g of e){const v=n.camelCase?a?.get(g.name)??g.name:g.name;!(v in d)&&g.defaultValue!==void 0&&(g.multiple??g.lazyMultiple?d[v]=Array.isArray(g.defaultValue)?[...g.defaultValue]:[g.defaultValue]:d[v]=g.defaultValue)}if(y){const g={},v={},N={};for(const x of e)if(x.group){const S=Array.isArray(x.group)?x.group:[x.group];for(const P of S)He(P)||(g[P]??={})}for(const x of Object.keys(d))if(!Jn(x)){v[x]=d[x];let S=x;n.camelCase&&(S=c?.get(x)??x);const P=s.get(S);if(P?.group){const _=Array.isArray(P.group)?P.group:[P.group];for(const U of _)He(U)||g[U]&&(g[U][x]=d[x])}else N[x]=d[x]}const k={_all:v};for(const[x,S]of Object.entries(g))k[x]=S;Object.keys(N).length>0&&(k._none=N),d._unknown&&(k._unknown=d._unknown),Object.keys(d).forEach(x=>delete d[x]),Object.assign(d,k)}const E=Object.defineProperties({},Object.getOwnPropertyDescriptors(d));return I(i,"Final parsed result:","resolver",E),E},ft="-",ne=ft.codePointAt(0),Y="=",Zn=Y.codePointAt(0),Yn="--",Qn=ft,Xn="--",mt=t=>t.length>2&&t.startsWith(Xn),eo=t=>mt(t)&&!t.includes(Y,3),to=t=>mt(t)&&t.includes(Y,3),no=t=>{if(t.length!==2||t.codePointAt(0)!==ne||t.codePointAt(1)===ne)return!1;const e=t.codePointAt(1);return e!==void 0&&(e<48||e>57)},oo=t=>{if(t.length<=2||t.codePointAt(0)!==ne||t.codePointAt(1)===ne)return!1;const e=t.codePointAt(1);return!(e!==void 0&&e>=48&&e<=57)},so=t=>{const e=[];let n=0,o=[],i=0,s=-1,l=0;for(;i<o.length||n<t.length;){let r;if(i<o.length?(r=o[i],i++):(r=t[n],n++),l>0?l--:s++,r===Yn){e.push({index:s,kind:"option-terminator"});const u=[...o.slice(i),...t.slice(n)],a=u.map((c,d)=>({index:s+d+1,kind:"positional",value:c}));e.push(...a),s+=u.length;break}if(no(r)){const u=r.charAt(1);e.push({index:s,kind:"option",name:u,rawName:r});continue}if(oo(r)&&!r.includes(Y)){const u=[];let a="",c=!1;for(let d=1;d<r.length;d++){const h=r.charAt(d);c?a+=h:h.codePointAt(0)===Zn?c=!0:u.push(`${Qn}${h}`)}if(c)if(u.length>0){const d=u.pop();u.push(`${d}=${a}`)}else u.push(a);o=i<o.length?[...u,...o.slice(i)]:u,i=0,l=u.length;continue}if(eo(r)){const u=r.slice(2);e.push({index:s,kind:"option",name:u,rawName:r});continue}if(to(r)){const u=r.indexOf(Y),a=r.slice(2,u),c=r.slice(u+1);e.push({index:s,inlineValue:!0,kind:"option",name:a,rawName:r,value:c});continue}if(r.length>2&&r.codePointAt(0)===ne&&r.codePointAt(1)!==ne&&r.includes(Y)){const u=r.indexOf(Y),a=r.charAt(1),c=r.slice(u+1);e.push({index:s,inlineValue:!0,kind:"option",name:a,rawName:r,value:c});continue}e.push({index:s,kind:"positional",value:r})}return e},io=/\d/,ro=t=>typeof t=="function",ao=(t,e,n)=>{const o=n?.debug??!1;I(o,"Validating definitions:","validation",t,"caseInsensitive:",e);const i=new Set,s=new Set,l=new Set,r=new Set;let u=0;for(const a of t){if(I(o,"Checking definition:","validation",a),!a.name)throw I(o,"Validation failed: name is required","validation"),new M("Invalid option definition: name is required");if(typeof a.name!="string")throw new M("Invalid option definition: name must be a string");if(a.name.trim()==="")throw new M("Invalid option definition: name cannot be empty");const c=e?a.name.toLowerCase():"";if(i.has(a.name)||e&&l.has(c))throw new M(`Invalid option definition: duplicate name '${a.name}'`);if(s.has(a.name)||e&&r.has(c))throw new M(`Invalid option definition: name '${a.name}' conflicts with an existing alias`);if(i.add(a.name),e&&l.add(c),a.alias!==void 0){if(typeof a.alias!="string")throw new M("Invalid option definition: alias must be a string");if(a.alias.length!==1)throw new M("Invalid option definition: alias must be a single character");if(io.test(a.alias))throw new M("Invalid option definition: alias cannot be numeric");if(a.alias==="-")throw new M('Invalid option definition: alias cannot be "-"');const d=e?a.alias.toLowerCase():"";if(s.has(a.alias)||e&&r.has(d))throw new M(`Invalid option definition: duplicate alias '${a.alias}'`);if(i.has(a.alias)||e&&l.has(d))throw new M(`Invalid option definition: alias '${a.alias}' conflicts with an existing option name`);s.add(a.alias),e&&r.add(d)}if(a.defaultOption&&(u++,a.type!==void 0&&Z(a.type)))throw new M("Invalid option definition: defaultOption cannot be Boolean type");if(a.type!==void 0&&!(a.type===Boolean||a.type===Number||a.type===String||typeof a.type=="function"&&ro(a.type)))throw new M("Invalid option definition: invalid type")}if(u>1)throw I(o,"Validation failed: multiple defaultOptions not allowed","validation"),new M("Invalid option definition: multiple defaultOptions not allowed");I(o,"Validation completed successfully","validation")};function co(t,e={}){const n=e.debug??!1;I(n,"Starting command-line-args parsing","index"),I(n,"Options:","index",e);const o={...e};o.stopAtFirstUnknown&&(o.partial=!0);const i=Array.isArray(t)?t:[t];I(n,"Normalized definitions:","index",i),ao(i,o.caseInsensitive,n?o:void 0);let{argv:s}=o;s??=process.argv.slice(2),I(n,"Using argv:","index",s);let l=s;o.caseInsensitive&&(l=s.map(a=>{if(a.startsWith("--")){const c=a.indexOf("="),d=(c===-1?a.slice(2):a.slice(2,c)).toLowerCase();return c===-1?`--${d}`:`--${d}${a.slice(c)}`}if(a.startsWith("-")&&!a.startsWith("--")&&a.length>1){const c=a.indexOf("="),d=c===-1?a.slice(1):a.slice(1,c);if(!d)return a;const h=d.toLowerCase();return c===-1?`-${h}`:`-${h}${a.slice(c)}`}return a}));const r=so(l.map(String));I(n,"Tokenized arguments:","index",r);const u=Kn(r,i,o,s);return I(n,"Command-line-args parsing completed","index"),u}class lo{result;argv;options;argument;args;command;commandName;env;logger;console;fs;process;runtime;rawUnknown;rawArgv;constructor(e,n){this.commandName=e,this.command=n}}let $e=class extends b{commandName;constructor(e,n,o){super(`Failed to load command "${e}": ${n}`,"COMMAND_LOADER_ERROR",{commandName:e,reason:n}),this.name="CommandLoaderError",this.commandName=e,this.hint="Ensure the loader resolves to a module with a default export that is the command handler function.",o!==void 0&&(this.cause=o)}};const uo=/^-{1,2}(\w+)(=(.+))?$/,gt=(t,e,n,o)=>{const i=uo.exec(t);if(i===null)return{};const s=i[1];if(!s)return{};const l=n&&o?n.get(s)??o.get(s):e.find(r=>r.name===s||r.alias===s);return l!==void 0?{argName:l.name,argValue:i[3],option:l}:{}},Ke=(t,e)=>{if(e.type===void 0)return t;if(e.type.name==="Boolean"){if(t==="true"||t==="1")return e.type(!0);if(t==="false"||t==="0")return e.type(!1)}return e.type(t)},ho=new Set(["0","1","false","true"]),po=(t,e,n,o)=>{if(e.length===0||t.length===0)return{};const i=(s,l)=>{const{argName:r,argValue:u,option:a}=gt(l,e,n,o),{lastOption:c}=s;return a&&re(a)&&u&&r?s.partial[r]=Ke(u,a):s.lastName&&c&&re(c)&&ho.has(l)&&(s.partial[s.lastName]=Ke(l,c)),{lastName:r,lastOption:a,partial:s.partial}};return t.reduce(i,{partial:{}}).partial},fo=new Set(["0","1","false","true"]),mo=(t,e,n,o)=>{if(e.length===0||t.length===0)return t;const i=(s,l)=>{const{argValue:r,option:u}=gt(l,e,n,o),{lastOption:a}=s;if(a&&re(a)&&fo.has(l)){const{args:c}=s;return{args:c.slice(0,-1)}}return u&&re(u)&&r?{args:s.args}:{args:[...s.args,l],lastOption:u}};return t.reduce(i,{args:[]}).args},go=t=>{const e=new Map;for(const n of t){const o=e.get(n.name);o?e.set(n.name,{...o,...n}):e.set(n.name,n)}return[...e.values()]},wo=t=>{if(t===void 0)return;const e=t.toLowerCase().trim();return e==="true"||e==="1"||e==="yes"||e==="on"},vo=(t,e)=>{if(!t.type)return e;if(e!==void 0){if(t.type===Boolean||typeof t.type=="function"&&t.type.name==="Boolean")return wo(e);if(t.type===Number||typeof t.type=="function"&&t.type.name==="Number"){const n=Number.parseFloat(e);return Number.isNaN(n)?void 0:n}return t.type===String||typeof t.type=="function"&&t.type.name==="String"?e:t.type(e)}},yo=/_./g,$o=/^[A-Z]/,No=t=>t.toLowerCase().replaceAll(yo,e=>e[1]?.toUpperCase()??e).replace($o,e=>e.toLowerCase()),Ao=(t,e=fe())=>{if(!t||t.length===0)return{};const n={};for(const o of t){const i=e[o.name],s=vo(o,i),l=s===void 0?o.defaultValue:s,r=No(o.name);n[r]=l}return n},xo=/-([a-z])/g,wt=t=>t.replaceAll(xo,(e,n)=>n.toUpperCase()),Ze=(t,e)=>t.type===void 0?e:t.type(e),bo=(t,e)=>{const{choices:n}=t;if(!n||n.length===0)return[];const o=[];for(const i of e)n.includes(i)||o.push({choices:n,name:t.name,value:i});return o},Co=(t,e)=>e&&t.defaultValue!==void 0&&!Array.isArray(t.defaultValue)?[t.defaultValue]:t.defaultValue,Oo=(t,e)=>{const n={},o=[],i=[],s=t.length-1;let l=0;for(const[r,u]of t.entries()){const a=wt(u.name),c=r===s&&u.multiple===!0,d=c?e.slice(r):e.slice(r,r+1);if(d.length===0){u.required===!0&&o.push(u.name),n[a]=Co(u,c);continue}i.push(...bo(u,d)),l=r+d.length,n[a]=c?d.map(h=>Ze(u,h)):Ze(u,d[0])}return{invalid:i,missing:o,resolved:n,surplus:e.slice(l)}},_o=t=>{const e=new Map,n=new Map;for(const o of t)if(e.set(o.name,o),o.alias){const i=Array.isArray(o.alias)?o.alias:[o.alias];for(const s of i)n.set(s,o)}return{optionMapByAlias:n,optionMapByName:e}},vt=async t=>{if(typeof t.__resolvedExecute__=="function")return t.__resolvedExecute__;if(typeof t.loader!="function")throw new $e(t.name,"no execute or loader defined");let e;try{e=await t.loader()}catch(o){throw new $e(t.name,o instanceof Error?o.message:String(o),o)}const n=e.default;if(typeof n!="function")throw new $e(t.name,"loader did not return a module with a default-exported handler function");return t.__resolvedExecute__=n,n},Io=(t,e,n,o,i,s=[])=>{const l=new lo(t.name,t),{_all:r,_unknown:u,positionals:a}=e,c=Object.keys(n).length>0?{...r,...n}:r;he in c&&delete c[he],l.argument=a?.[he]??[],l.args={},l.rawUnknown=[...u??[]],l.rawArgv=[...s];const d=Object.keys(o).length>0;return l.options=d?{...c,...o}:c,l.env=Ao(t.env,i),l},Eo=(t,e,n)=>{const o=t.options??[],i=o.length>0;let s=go(i?[...o,...n]:n);if(s.length>0){for(const c of s)if(c.multiple&&c.lazyMultiple)throw new Error(`Argument "${c.name}" cannot have both multiple and lazyMultiple options, please choose one.`)}const l=t.arguments!==void 0&&t.arguments.length>0;(t.argument||l)&&(s=[{defaultOption:!0,description:t.argument?.description,group:"positionals",multiple:!0,name:he,type:t.argument?.type??String,typeLabel:t.argument?.typeLabel},...s]);let r,u;if(i){const{optionMapByAlias:c,optionMapByName:d}=_o(o);r=mo(e,o,d,c),u=po(e,o,d,c)}else r=e,u={};const a=co(s,{argv:r,camelCase:!0,partial:!0,stopAtFirstUnknown:!0});return{arguments_:s,booleanValues:u,parsedArgs:a}},Ne=async(t,e,n)=>typeof t.execute=="function"?t.execute(e):(await vt(t))(e),ko=(t,e)=>{if(!t.arguments||t.arguments.length===0)return;const n=e.rawUnknown.indexOf("--"),o=n===-1?[]:e.rawUnknown.slice(n+1),i=o.length===0?e.argument:e.argument.slice(0,Math.max(0,e.argument.length-o.length)),s=Oo(t.arguments,i);if(e.args=s.resolved,s.missing.length>0)throw new Kt(t.name,s.missing);const[l]=s.invalid;if(l)throw new Jt(l.name,l.value,l.choices);if(s.surplus.length>0)throw new Zt(t.name,s.surplus,t.arguments.length)};class So{capacity;cache;constructor(e){this.capacity=e,this.cache=new Map}get(e){if(!this.cache.has(e))return;const n=this.cache.get(e);return this.cache.delete(e),this.cache.set(e,n),n}has(e){return this.cache.has(e)}set(e,n){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.capacity){const o=this.cache.keys().next().value;o!==void 0&&this.cache.delete(o)}this.cache.set(e,n)}delete(e){this.cache.delete(e)}clear(){this.cache.clear()}size(){return this.cache.size}}const Lo=(t,e)=>typeof t!="string"||t===""?"":t[0].toLowerCase()+t.slice(1),Mo=new RegExp("[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))","g"),Po=t=>{if(typeof t!="string")throw new TypeError(`The "value" argument must be of type string. Received ${typeof t}`);return t.replaceAll(Mo,"")},Ae=new So(1e3),Uo=/[.*+?^${}()|[\]\\]/g,Do=t=>{const e=t.join("");if(Ae.has(e)){const i=Ae.get(e);return i.lastIndex=0,i}const n=t.map(i=>i.replaceAll(Uo,String.raw`\$&`)).join("|"),o=new RegExp(n,"g");return Ae.set(e,o),o},To=t=>{const e=[];let n=0,o;for(G.lastIndex=0;(o=G.exec(t))!==null;)o.index>n&&e.push(t.slice(n,o.index)),e.push(o[0]),n=G.lastIndex;return n<t.length&&e.push(t.slice(n)),e.filter(Boolean)},Vo=/[ČŠŽĐ]/i,yt=new Uint8Array(128),$t=new Uint8Array(128),Nt=new Uint8Array(128);for(let t=0;t<128;t++)yt[t]=t>=65&&t<=90?1:0,$t[t]=t>=97&&t<=122?1:0,Nt[t]=t>=48&&t<=57?1:0;const xe=t=>yt[t],Ye=t=>$t[t],be=t=>Nt[t],W=(t,e,n,o,i)=>{if(t.length===0)return[];let s=!1;const l=Object.values(e);for(const f of l)if(f(t[0])){s=!0;break}if(!s&&!n)return[t];const r=[...t],u=[];let a=r[0],c="other";const d=Object.entries(e);for(const f of d){const[p,w]=f;if(w(r[0])){c=p;break}}let h=n&&o?r[0]===r[0].toLocaleUpperCase(o):!1;for(let f=1;f<r.length;f++){const p=r[f];let w="other";for(const y of d){const[A,O]=y;if(O(p)){w=A;break}}const $=n&&o?p===p.toLocaleUpperCase(o):!1;let m=!1;i?m=i(c,w,h,$,p,f,r):(c!==w&&c!=="other"&&w!=="other"&&(m=!0),n&&w!=="other"&&!h&&$&&(m=!0)),m?(u.push(a),a=p):a+=p,c=w,n&&(h=$)}return a&&a.length>0&&u.push(a),u.length>0?u:[t]},jo=(t,e,n,o)=>{if(n.size===0)return e;for(const i of n)if(t.startsWith(i,e))return o.push(i),e+i.length;return e},At=(t,e=new Set)=>{if(t.length===0)return[];if(t.toUpperCase()===t)return[t];let n=0;const o=[],i=t.length;for(let s=1;s<i;s++){const l=jo(t,n,e,o);if(l!==n){n=l,s=n-1;continue}const r=t.codePointAt(s-1),u=t.codePointAt(s),a=r&&r<128&&xe(r),c=u&&u<128&&xe(u),d=r&&r<128&&Ye(r),h=r&&r<128&&be(r),f=u&&u<128&&be(u);if(d&&c){o.push(t.slice(n,s)),n=s;continue}if(h&&!f||!h&&f){o.push(t.slice(n,s)),n=s;continue}if(f&&!h){let p=!1,w=!1;if(s+1<i){const $=t.codePointAt(s+1);p=$&&$<128&&xe($),w=$&&$<128&&be($)}if(!w&&p){o.push(t.slice(n,s),t.slice(s,s+1)),n=s+1;continue}}if(s+1<i){const p=t.codePointAt(s+1),w=p&&p<128&&Ye(p);if(a&&c&&w){const $=t.slice(n,s+1);e.has($)||(o.push(t.slice(n,s)),n=s)}}}return n<i&&o.push(t.slice(n)),o.filter(s=>s!=="")},xt=(t,e,n)=>{if(t.length===0)return[];const o=t===t.toLocaleUpperCase(e);if(e.startsWith("de")){if(!o&&t.replaceAll("ß","SS")===t.toLocaleUpperCase(e))return[t];const a=[...t],c=a.length,d=[];let h=a[0],f=a[0]===a[0].toLocaleUpperCase(e),p=f,w=f?0:-1;for(let $=1;$<c;$++){const m=a[$],y=m===m.toLocaleUpperCase(e);if(y===f)h+=m;else if(y)h&&h.length>0&&(d.push(h),h=m),p=!0,w=$;else{if(p&&$-w>1){const A=a[$-1],O=h.slice(0,-1);O&&O.length>0&&d.push(O),h=A+m}else h+=m;p=!1,w=-1}f=y}return h&&h.length>0&&d.push(h),d}if(e.startsWith("uk")||e.startsWith("ru")||e.startsWith("bg")||e.startsWith("sr")||e.startsWith("mk")||e.startsWith("be")){if(!ee.test(t)&&!L.test(t))return[t];const a=[...t],c=a.length,d=[];let h=a[0];const f=a[0];let p;ee.test(f)?p=1:L.test(f)?p=2:p=0;let w=f===f.toLocaleUpperCase(e);for(let m=1;m<c;m++){const y=a[m];let A;ee.test(y)?A=1:L.test(y)?A=2:A=0;const O=y===y.toLocaleUpperCase(e);p!==A&&(p===1||p===2)&&(A===1||A===2)||A===p&&!w&&O?(d.push(h),h=y):h+=y,p=A,w=O}h&&h.length>0&&d.push(h);const $=[];for(let m=0;m<d.length;m++)m<d.length-1&&d[m].length===1&&L.test(d[m])&&ee.test(d[m+1][0])?($.push(d[m]+d[m+1]),m+=1):$.push(d[m]);return $}if(e.startsWith("el")){if(!ve.test(t)&&!L.test(t))return[t];const a=[];De.lastIndex=0;let c;for(;(c=De.exec(t))!==null;)a.push(c[0]);a.length===0&&a.push(t);const d=[];if(a.length===1){const h=a[0];if(!h||!ve.test(h[0])||h.length===1)return[h??t]}for(const h of a){if(!h)continue;if(!ve.test(h[0])||h.length===1){d.push(h);continue}const f=h.length;let p=h[0],w=h[0]===h[0].toLocaleUpperCase(e);for(let $=1;$<f;$++){const m=h[$],y=m===m.toLocaleUpperCase(e);!w&&y?(d.push(p),p=m):p+=m,w=y}p&&d.push(p)}return d}if(e.startsWith("ja")||e.startsWith("ko")){const a=e.startsWith("ja"),c=a?{hiragana:h=>sn.test(h),kanji:h=>je.test(h),katakana:h=>an.test(h),latin:h=>L.test(h)}:{hangul:h=>Te.test(h),latin:h=>L.test(h)},d=new Set(["が","で","と","に","の","は","へ","も","や","を"]);if(a){const h=W(t,c,!1,e,(p,w)=>p==="hiragana"&&w==="katakana"||p==="katakana"&&w==="hiragana"||p==="hiragana"&&w==="latin"||p==="katakana"&&w==="latin"||p==="kanji"&&w==="latin"||p==="latin"&&(w==="hiragana"||w==="katakana"||w==="kanji")),f=[];for(const p of h){const w=p;w.length===1&&d.has(w)&&f.length>0?f[f.length-1]=f.at(-1)+w:f.push(w)}return f.length>0?f:[t]}return W(t,c,!1,e,(h,f)=>h==="hangul"&&f==="latin"||h==="latin"&&f==="hangul")}if(e.startsWith("sl")){const a=[...t],c=a.length,d=[];let h=a[0],f=a[0]===a[0].toLocaleUpperCase(e);for(let p=1;p<c;p++){const w=a[p],$=w===w.toLocaleUpperCase(e),m=Vo.test(w),y=p<c-1&&a[p+1]===a[p+1].toLocaleUpperCase(e);!f&&$||m&&y?(d.push(h),h=w,m&&y&&(d.push(h),h="")):h+=w,f=$}return h&&h.length>0&&d.push(h),d}if(e.startsWith("zh"))return W(t,{han:a=>je.test(a),latin:a=>L.test(a)},!1,e);if(["ar","fa","he","ur"].includes(e.split("-")[0])){const a=c=>Ve.test(c)||Ue.test(c);return W(t,{latin:c=>L.test(c),rtl:c=>a(c)},!1,e)}if(["am","bn","gu","hi","km","kn","lo","ml","mr","ne","or","pa","si","ta","te","th"].includes(e.split("-")[0])){const a=c=>en.test(c)||Xt.test(c)||nn.test(c)||on.test(c)||rn.test(c)||fn.test(c)||mn.test(c)||un.test(c)||dn.test(c)||gn.test(c)||ln.test(c)||wn.test(c)||hn.test(c)||tn.test(c)||cn.test(c)||pn.test(c);return W(t,{indic:c=>a(c),latin:c=>L.test(c)},!1,e)}if(["be","bg","ru","sr","uk"].includes(e))return W(t,{cyrillic:a=>ee.test(a),latin:a=>L.test(a)},!0,e);if(["ar","fa","he"].includes(e))return W(t,{latin:a=>L.test(a),rtl:a=>Ve.test(a)||Ue.test(a)},!1,e);if(e.startsWith("ko"))return W(t,{hangul:a=>Te.test(a),latin:a=>L.test(a)},!1,e);if(e.startsWith("uz")){if(!ee.test(t)&&!L.test(t))return[t];const a=[...t],c=a.length,d=[];let h=a[0],f=a[0]===a[0].toLocaleUpperCase(e);for(let p=1;p<c;p++){const w=a[p],$=w===w.toLocaleUpperCase(e);if(Re.test(w)||Re.test(a[p-1])){h+=w;continue}!f&&$?(d.push(h),h=w):h+=w,f=$}return h&&h.length>0&&d.push(h),d}const i=[...t],s=i.length,l=[];let r=i[0],u=i[0]===i[0].toLocaleUpperCase(e);for(const a of n)if(t.startsWith(a)){l.push(a),r=i[a.length],u=r===r.toLocaleUpperCase(e);break}for(let a=1;a<s;a++){const c=i[a],d=c===c.toLocaleUpperCase(e);let h=0;for(const f of n)if(t.startsWith(f,a)){l.push(r,f),h=f.length,r="";const p=f.at(-1);p&&(u=p===p.toLocaleUpperCase(e));break}if(h>0){a+=h-1;continue}!u&&d?(l.push(r),r=c):r+=c,u=d}return r&&l.push(r),l},Ro=(t,e,n)=>{const o=[],i=pe.test(t)?t.split(pe).filter(Boolean):[t];for(const s of i){const l=s;if(pe.test(l))o.push(l);else{G.lastIndex=0;const r=G.test(l)?To(l).filter(Boolean):[l];for(const u of r)if(G.lastIndex=0,G.test(u))o.push(u);else if(e){const a=e.toLowerCase().split("-")[0];o.push(...xt(u,a,n))}else o.push(...At(u,n))}}return o},Bo=(t,e={})=>{if(!t||typeof t!="string")return[];const{handleAnsi:n=!1,handleEmoji:o=!1,knownAcronyms:i=[],locale:s,normalize:l=!1,separators:r,stripAnsi:u=!1,stripEmoji:a=!1}=e,c=new Set([...i].toSorted((m,y)=>y.length-m.length));let d=t;u&&(d=Po(d)),a&&(d=vn(d));let h;Array.isArray(r)?h=Do(r):r instanceof RegExp?h=r:h=Qt;const f=[];let p=d;const w=h.flags.includes("g")?h:new RegExp(h.source,`${h.flags}g`);for(;p.length>0;){const m=w.exec(p);if(!m){p===".."?f.push(".."):p==="."?f.push("."):p.length>0&&f.push(p);break}const y=m.index,A=m[0],O=A.length,C=p.slice(0,y),D=p.slice(y+O);if(A.startsWith("../"))f.push(".."),p=p.slice(y+3);else if(A.startsWith("./"))f.push("."),p=p.slice(y+2);else if(y===0&&A==="..")f.push(".."),p=p.slice(2);else if(y===0&&A===".")f.push("."),p=p.slice(1);else{C.length>0&&f.push(C);let E=0;for(;(E=A.indexOf("../",E))!==-1;)f.push(".."),E+=3;for(E=0;(E=A.indexOf("./",E))!==-1;)(E===0||A[E-1]!==".")&&f.push("."),E+=2;let g=D;for(;g.startsWith("../");)f.push(".."),g=g.slice(3);for(;g.startsWith("./");)f.push("."),g=g.slice(2);if(g===".."){f.push("..");break}else if(g==="."){f.push(".");break}else p=g}w.lastIndex=0}if(f.length===0){const m=d.split(h).filter(Boolean);f.push(...m)}let $=[];for(const m of f)n||o?$.push(...Ro(m,s,c)):s?$.push(...xt(m,s,c)):$.push(...At(m,c));return l&&($=$.map(m=>c.has(m)?m:s&&m===m.toLocaleUpperCase(s)?m[0]+m.slice(1).toLocaleLowerCase(s):m.toUpperCase()===m&&!c.has(m)?m.slice(0,1)+m.slice(1).toLowerCase():m)),$},Wo=(t,e)=>typeof t!="string"||t===""?"":t[0].toUpperCase()+t.slice(1),zo=(t,e)=>{const{length:n}=t;if(n===0)return"";if(n===1)return t[0];const o=[];let i="",s="";for(let l=0;l<n;l++){const r=t[l];if(pe.test(r)){i?(o.push(i+s+r),i="",s=""):(o.length>0&&o.push(e),i=r);continue}i?(s&&(s+=e),s+=r):(o.length>0&&o.push(e),o.push(r))}return o.join("")},te=(t,e)=>{if(typeof t!="string"||!t)return"";let n=!0;return zo(Bo(t,{handleAnsi:e?.handleAnsi,handleEmoji:e?.handleEmoji,knownAcronyms:e?.knownAcronyms,locale:e?.locale,normalize:e?.normalize,separators:void 0,stripAnsi:e?.stripAnsi,stripEmoji:e?.stripEmoji}).map(o=>{const i=o,s=i.toLowerCase();return n?(n=!1,Lo(s)):Wo(s)}),"")};class Fo extends b{commandName;missingOptions;constructor(e,n){super(`Command "${e}" is missing required options: ${n.join(", ")}`,"COMMAND_VALIDATION_ERROR",{commandName:e,missingOptions:n}),this.name="CommandValidationError",this.commandName=e,this.missingOptions=n,this.hint=`Provide the following required options: ${n.join(", ")}`}}class Go extends b{choices;option;value;constructor(e,n,o){super(`Invalid value "${n}" for option "${e}". Allowed values: ${o.join(", ")}`,"INVALID_CHOICE",{choices:o,option:e,value:n}),this.name="InvalidChoiceError",this.option=e,this.value=n,this.choices=o,this.hint=`Use one of: ${o.map(i=>`--${e} ${i}`).join(", ")}`}}const Qe=(t,e,n=!1)=>{const o=[],i=e._all??e;for(const s of t){if(!n&&!s.required)continue;const l=s.__camelCaseName__??s.name;if(i[l]===void 0){if(s.type?.name==="Boolean"){e[l]=!1;continue}o.push(s)}}return o},qo=(t,e)=>e.includes(t)?!0:Math.abs(t.length-e.length)>t.length/2?!1:xn(t,e)<=t.length/3,z=(t,e)=>{const n=t.toLowerCase();return e.filter(o=>qo(o.toLowerCase(),n))},Ho=(t,e)=>{const n=[];if(t._unknown&&t._unknown.forEach(o=>{const i=o.startsWith("--");let s=`Found unknown ${i?"option":"argument"} "${o}"`;if(i){const l=z(o.replace("--",""),(e.options??[]).map(r=>r.name));if(l.length>0){const[r,...u]=l.map(a=>`--${a}`);s+=u.length>0?`, did you mean ${r??""} or ${u.join(", ")}?`:`, did you mean ${r??""}?`}}n.push(s)}),n.length>0)throw new b(n.join(`
3
3
  `),V.UNKNOWN_OPTION,{unknownOptions:[...t._unknown??[]]})},K=(t,e)=>new b(`Command "${t}" ${e}`,"INVALID_COMMAND",{commandName:t}),Jo=(t,e)=>{const n=new Set;for(const[o,i]of t.entries()){if(typeof i!="object"||i===null)throw K(e,`has a positional argument at index ${String(o)} that is not an object`);const{name:s}=i;if(typeof s!="string"||s.length===0)throw K(e,`has a positional argument at index ${String(o)} without a name`);const l=wt(s);if(n.has(l))throw K(e,`declares duplicate positional argument "${s}"`);n.add(l);const r=o===0?void 0:t[o-1];if(i.required===!0&&r!==void 0&&r.required!==!0)throw K(e,`declares required positional "${s}" after an optional one, which can never be satisfied`);if(i.multiple===!0&&o!==t.length-1)throw K(e,`declares a variadic positional "${s}" that is not the last one`)}},Ko=(t,e,n)=>{const o=n.__requiredOptions__,i=o?Qe(o,e,!0):Qe(t,e,!1);if(i.length>0)throw new Fo(n.name,i.map(s=>s.name));e._unknown&&e._unknown.length>0&&!n.argument&&!n.arguments?.length&&Ho(e,n)},Zo=(t,e,n)=>{const o=n.__conflictingOptions__??t.filter(i=>i.conflicts!==void 0);if(o.length>0){const i=o.find(s=>{const l=s.__camelCaseName__??te(s.name);return Array.isArray(s.conflicts)?s.conflicts.some(r=>e[te(r)]!==void 0)&&e[l]!==void 0:e[te(s.conflicts)]!==void 0&&e[l]!==void 0});if(i)throw new ct(i.name,typeof i.conflicts=="string"?i.conflicts:i.conflicts?.[0]??"unknown")}},Yo=(t,e)=>{const n=e.options;if(n)for(const o of n){if(!o.choices||o.choices.length===0)continue;const i=o.__camelCaseName__??te(o.name),s=t[i];if(s==null)continue;const l=Array.isArray(s)?s:[s];for(const r of l){const u=String(r);if(!o.choices.includes(u))throw new Go(o.name,u,o.choices)}}},Qo=t=>{if(!Array.isArray(t.options))return;const e=new Map,n=new Map;for(const i of t.options){if(i.name){const s=e.get(i.name)??[];s.push(i),e.set(i.name,s)}if(typeof i.alias=="string"&&i.alias.length>0){const s=n.get(i.alias)??[];s.push(i),n.set(i.alias,s)}else if(Array.isArray(i.alias)){for(const s of i.alias)if(s.length>0){const l=n.get(s)??[];l.push(i),n.set(s,l)}}}const o=[];for(const[i,s]of e)s.length>1&&o.push(`Duplicate option name "${i}" in command "${t.name}": ${JSON.stringify(s)}`);for(const[i,s]of n)s.length>1&&o.push(`Duplicate option alias "-${i}" used by options ${s.map(l=>`"${l.name}"`).join(", ")} in command "${t.name}"`);if(o.length>0)throw new Error(o.join(`
4
4
  `))},Xo=t=>{const{arguments:e}=t;if(e!==void 0){if(!Array.isArray(e))throw K(t.name,'must declare "arguments" as an array — slot order is significant, so a record cannot express it');if(t.argument!==void 0)throw K(t.name,'cannot define both "argument" and "arguments" — choose one');Jo(e,t.name)}},es=(t,e)=>{if(e.length===0)return{argv:[],commandPath:void 0};const n=[];let o;for(let i=1;i<=e.length;i+=1){const s=e[i-1];if(s===void 0||s.startsWith("-"))break;n.push(s);const l=n.join(" ");t.has(l)&&(o={commandPath:[...n],depth:i})}return o?{argv:e.slice(o.depth),commandPath:o.commandPath}:{argv:e,commandPath:void 0}},J=t=>t.join(" "),Xe=(t,e)=>e&&e.length>0?[...e,t]:[t],et=t=>t===void 0||Array.isArray(t)?t:Object.entries(t).map(([e,n])=>({...n,name:e})),ts=t=>{const e=et(t.options),n=et(t.env);return e===t.options&&n===t.env?t:Object.assign(Object.create(Object.getPrototypeOf(t)),t,{env:n,options:e})},ns=/^no-/,os=t=>{t.options?.forEach(e=>{e.__camelCaseName__=te(e.name)})},ss=t=>{if(!Array.isArray(t.options)||t.options.length===0)return;const e=new Set;for(const o of t.options)e.add(o.name);const n=[];for(const o of t.options)if(o.name.startsWith("no-")){const i=o.name.replace(ns,"");if(!e.has(i)){if(o.type!==Boolean)throw new Error(`Cannot add negated option "${o.name}" to command "${t.name}" because it is not a boolean.`);const s={...o,alias:void 0,defaultValue:o.defaultValue===void 0?!0:!o.defaultValue,description:`Inverse of --${o.name}.`,name:i};n.push(s),e.add(i)}}n.length>0&&t.options.push(...n)},is=(t,e)=>{if(!e.options||e.options.length===0)return;const{options:n}=t,o=new Map;for(const s of e.options)if(s.name.startsWith("no-")){const l=te(s.name);o.set(l,s)}const i=Object.keys(n).filter(s=>o.has(s));if(i.length!==0)for(const s of i){const l=s.charAt(2);if(!l)continue;const r=l.toLowerCase()+s.slice(3),u=o.get(s);u&&(u.__negated__=!0),n[r]=!n[s],Reflect.deleteProperty(n,s)}},rs=(t,e)=>{if(!e.options||e.options.length===0)return;const n=new Map;for(const i of e.options)i.__camelCaseName__&&i.__negated__===void 0&&i.implies!==void 0&&n.set(i.__camelCaseName__,i);if(n.size===0)return;const{options:o}=t;for(const i of Object.keys(o)){const s=n.get(i);if(s?.implies){const{implies:l}=s;for(const[r,u]of Object.entries(l))o[r]===void 0&&(o[r]=u)}}},as=()=>!!process.versions.electron,cs=()=>as()&&!process.defaultApp,ls=()=>cs()?0:1,us=t=>t.slice(ls()+1),hs=" ",ps=(t,e)=>t===e?!0:t.length!==e.length?!1:t.every((n,o)=>n===e[o]),ds=t=>{if(typeof t=="string")return t.split(hs);const e=Oe();return ps(t,e)?us(t):t},fs=t=>{const e=s=>{t.error(`Uncaught exception: ${s.message||s}`),s.stack&&t.error(s.stack),F(1)},n=(s,l)=>{if(s instanceof Error)t.error(`Promise rejection: ${s.message||s}`),s.stack&&t.error(s.stack);else{let r;if(typeof s=="string")r=s;else try{r=JSON.stringify(s)}catch{r=String(s)}t.error(`Promise rejection: ${r}`)}F(1)},o=Me("uncaughtException",e),i=Me("unhandledRejection",n);return()=>{o(),i()}},tt=100,ms=/^[a-z][\w-]*$/i,Ee=(t,e)=>{if(typeof t!="string"||t.trim().length===0)throw new b(`${e} must be a non-empty string`,"INVALID_INPUT",{fieldName:e,value:t});return t.trim()},nt=(t,e)=>{if(!Array.isArray(t)||!t.every(n=>typeof n=="string"))throw new b(`${e} must be an array of strings`,"INVALID_INPUT",{fieldName:e,value:t});return t},le=(t,e)=>{if(typeof t!="object"||t===null)throw new b(`${e} must be an object`,"INVALID_INPUT",{fieldName:e,value:t});return t},ue=t=>{const e=Ee(t,"Command name");if(e.length>tt)throw new b(`Command name is too long (maximum ${String(tt)} characters)`,"INVALID_COMMAND_NAME",{commandName:e,length:e.length});if(e.includes("..")||e.includes("/")||e.includes("\\")||e.includes(";")||e.includes("|")||e.includes("&"))throw new b(`Command name "${e}" contains invalid characters`,"INVALID_COMMAND_NAME",{commandName:e});if(!ms.test(e))throw new b(`Command name "${e}" must start with a letter and contain only letters, numbers, hyphens, and underscores`,"INVALID_COMMAND_NAME",{commandName:e});return e},gs=1e6,ws=1e5,vs=new Set([`
@@ -0,0 +1 @@
1
+ import{createRequire as b}from"node:module";import{U as v,m as j,a as R}from"./index-BzhrR_iC.js";import{p as h}from"../packem_chunks/cli-main.js";let y;const $=o=>(y??=b(import.meta.url))(o),m=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,w=o=>{if(typeof m<"u"&&m.versions&&m.versions.node){const[c,r]=m.versions.node.split(".").map(Number);if(c>22||c===22&&r>=3||c===20&&r>=16)return m.getBuiltinModule(o)}return $(o)},{watch:T}=w("node:fs"),{execFileSync:S}=w("node:child_process"),{createRequire:W}=w("node:module"),g=W(import.meta.url);let p;const q=()=>{if(p!==void 0)return p;try{g.resolve("fb-watchman")}catch{return p=!1,!1}try{S("watchman",["--version"],{stdio:"ignore",timeout:2e3})}catch{return p=!1,!1}return p=!0,!0},k=(o,c)=>{if(!q())return;let r;try{r=g("fb-watchman")}catch(s){h.warn(`[vis watch] fb-watchman failed to load, using native watcher: ${s.message}`);return}const a=new r.Client;a.on("error",s=>{h.warn(`[vis watch] watchman error: ${s.message}`)}),a.on("subscription",s=>{const t=s;if(!t.is_fresh_instance)for(const e of t.files??[])c(e)});for(const[s,t]of o.entries()){const e=v(t),i=`vis-watch-${s}-${process.pid}`;a.command(["watch-project",e],(l,u)=>{if(l){h.warn(`[vis watch] watchman could not watch ${t}: ${l.message}`);return}const f={expression:["allof",["type","f"]],fields:["name"]};u.relative_path&&(f.relative_root=u.relative_path),a.command(["subscribe",u.watch,i,f],n=>{n&&h.warn(`[vis watch] watchman subscribe failed for ${t}: ${n.message}`)})})}return{close:()=>{try{a.end()}catch{}}}},A=[/node_modules(?:\/|$)/,/\.git(?:\/|$)/,/\.vis(?:\/|$)/],M=(o,c)=>{const r=new Set,a=new Set;for(const[,e]of o){const i=e.task.hashDetails?.nodes;if(i)for(const l of Object.keys(i))r.add(l),a.add(j(v(c,l)))}const s=[...a].sort(),t=[];for(const e of s)t.some(i=>e===i||e.startsWith(`${i}/`))||t.push(e);return{directories:t,files:r}},z=(o,c,r)=>{const a=new Set;for(const s of o){const t=v(c,s);for(const e of r)if(t===e||t.startsWith(`${e}/`)){const i=R(e,t);i.length>0&&a.add(i)}}return s=>{const t=s.replaceAll("\\","/");return a.has(t)}},P=o=>{const c=o.replaceAll("\\","/");return A.some(r=>r.test(c))},B=o=>{const{debounceMs:c=150,filter:r,onChange:a,paths:s}=o;let t=new Set,e;const i=()=>{e=void 0;const n=[...t];t=new Set,n.length!==0&&Promise.resolve(a(n)).catch(d=>{h.error("[vis watch] onChange handler failed:",d)})},l=n=>{P(n)||r&&!r(n)||(t.add(n),e&&clearTimeout(e),e=setTimeout(i,c))},u=k(s,l);if(u)return{close:()=>{e&&clearTimeout(e),u.close()}};const f=[];for(const n of s)try{const d=T(n,{recursive:!0},(x,_)=>{_&&l(_)});f.push(d)}catch(d){h.warn(`[vis watch] unable to watch ${n}: ${d.message}`)}return{close:()=>{e&&clearTimeout(e);for(const n of f)try{n.close()}catch{}}}};export{z as a,M as c,B as s};
@@ -0,0 +1,11 @@
1
+ import{createRequire as K}from"node:module";import{e as h,z as H,v as S,U as Y,m as Q}from"./index-BzhrR_iC.js";import{T as w}from"../packem_chunks/catalog.js";import{y as C}from"./isAccessibleSync-DYKTrrvc-C-_5cgwu.js";import{p as ee}from"./readJsonSync-CbryXYxN-EWl7_7KX.js";import{h as le}from"./writeFileSync-DJoHk3Ks-BPRoepNw.js";import{s as ue}from"./watch-CcTketln.js";let z;const G=e=>(z??=K(import.meta.url))(e),x=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,A=e=>{if(typeof x<"u"&&x.versions&&x.versions.node){const[t,n]=x.versions.node.split(".").map(Number);if(t>22||t===22&&n>=3||t===20&&n>=16)return x.getBuiltinModule(e)}return G(e)},{createHash:g}=A("node:crypto"),{fileURLToPath:X,pathToFileURL:Z}=A("node:url"),{spawnSync:te,spawn:ne}=A("node:child_process"),{openSync:se,writeSync:re,closeSync:oe,statSync:ie,readFileSync:P,mkdirSync:ce,writeFileSync:ae}=A("node:fs"),{availableParallelism:k}=A("node:os"),D=(e,t)=>{for(const n of["dependencies","devDependencies","optionalDependencies","peerDependencies"]){const s=e[n];if(s&&typeof s[t]=="string")return s[t]}},F=(e,t)=>{for(const n of t){const s=h(e,n);if(C(s))return s}},de=e=>{const t=h(e,"package.json");if(!C(t))return{};try{return ee(t)}catch{return{}}},rt=(e,t)=>{const n=de(e),s=new Map;for(const o of t){const r=o.detect(e,n);r&&s.set(o.id,r)}return s},fe={error:"error",info:"info",information:"info",warning:"warning"},ot={argsCheck:(e,t)=>I(e,t,!1),argsFix:(e,t)=>I(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 g("sha256").update(n.join("|")).digest("hex").slice(0,16)},detect:(e,t)=>{const n=D(t,w.biome.packageNames[0]),s=F(e,w.biome.configFiles);if(!(!n&&!s))return{adapter:"biome",configFile:s,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 s=[];for(const o of n.diagnostics??[]){const r=o.location?.start,i=o.location?.end,c=pe(t.root,o.location?.path),u=o.category??"",a=u==="format"||u.startsWith("format/");s.push({adapter:"biome",column:r?.column&&r.column>0?r.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:r?.line&&r.line>0?r.line:void 0,message:a?"Code style issues would be auto-fixed":o.message??"",ruleId:u||void 0,severity:fe[o.severity??""]??"warning"})}return s}},I=(e,t,n)=>{const s=["check","--reporter=json"];return n&&s.push("--write"),typeof t.maxWarnings=="number"&&s.push(`--max-diagnostics=${String(t.maxWarnings)}`),t.extraArgs?.length&&s.push(...t.extraArgs),s.push(...e),s},pe=(e,t)=>{const n=typeof t=="string"?t:t?.file;return n?n.startsWith("/")||/^[a-z]:[\\/]/i.test(n)?n:h(e,n):e},N=e=>t=>{const n=F(t,w.deno.configFiles);if(n)return{adapter:e,configFile:n,declared:!1,root:t}},O=e=>e.startsWith("/")||/^[a-z]:[\\/]/i.test(e),it={argsCheck:(e,t)=>b(e,t,!1),argsFix:(e,t)=>b(e,t,!0),bin:()=>["deno","lint"],cacheKey:(e,t)=>{const n=["deno-lint",e.configFile??"no-config",t.quiet?"q":"",...t.extraArgs??[]];return g("sha256").update(n.join("|")).digest("hex").slice(0,16)},detect:N("deno-lint"),extensions:["js","jsx","mjs","mts","ts","tsx"],id:"deno-lint",kind:"lint",parse:(e,t)=>{if(!e.stdout.trim())return[];let n;try{n=JSON.parse(e.stdout)}catch{return[{adapter:"deno-lint",file:t.root,fixable:!1,message:`deno lint output was not valid JSON (exit ${e.exitCode})`,severity:"error"}]}const s=[];for(const o of n.diagnostics??[]){const r=o.range?.start,i=o.range?.end;s.push({adapter:"deno-lint",column:r?.col===void 0?void 0:r.col+1,endColumn:i?.col===void 0?void 0:i.col+1,endLine:i?.line===void 0?void 0:i.line+1,file:he(o.filename??t.root,t.root),fixable:!1,line:r?.line===void 0?void 0:r.line+1,message:o.message??"",ruleId:o.code,severity:"warning"})}return s}},ct={argsCheck:(e,t)=>R(e,t,!1),argsFix:(e,t)=>R(e,t,!0),bin:()=>["deno","fmt"],cacheKey:(e,t)=>{const n=["deno-fmt",e.configFile??"no-config",t.quiet?"q":"",...t.extraArgs??[]];return g("sha256").update(n.join("|")).digest("hex").slice(0,16)},detect:N("deno-fmt"),extensions:["astro","cjs","css","cts","html","ipynb","js","json","jsonc","jsx","less","md","mjs","mts","sass","scss","sql","svelte","ts","tsx","vue","yaml","yml"],id:"deno-fmt",kind:"fmt",parse:(e,t)=>{if(e.exitCode===0)return[];const n=[],s=new Set;for(const o of e.stdout.split(/\r?\n/)){const r=/^from (.+):$/.exec(o);if(!r)continue;const i=r[1];s.has(i)||(s.add(i),n.push({adapter:"deno-fmt",file:O(i)?i:`${t.root}/${i}`,fixable:!0,message:"Code style issues would be auto-fixed",severity:"info"}))}return n}},b=(e,t,n)=>{const s=["--json"];return n&&s.push("--fix"),t.extraArgs?.length&&s.push(...t.extraArgs),s.push(...e),s},R=(e,t,n)=>{const s=[];return n||s.push("--check"),t.quiet&&s.push("--quiet"),t.extraArgs?.length&&s.push(...t.extraArgs),s.push(...e),s},he=(e,t)=>e.startsWith("file://")?X(e):O(e)?e:`${t}/${e}`,W="pyproject.toml",me=/^\[tool\.ruff(?:\.[\w-]+)*\]\s*$/m,ge=/^Would reformat:?\s+(.+)$/,ye=e=>{const t=h(e,W);if(!C(t))return!1;try{const n=H(t);return me.test(n)}catch{return!1}},B=e=>(t,n)=>{const s=w.ruff.packageNames.map(c=>D(n,c)).find(c=>c!==void 0),o=F(t,w.ruff.configFiles),r=o?void 0:ye(t)?h(t,W):void 0,i=o??r;if(!(!s&&!i))return{adapter:e,configFile:i,declared:!!s,declaredVersion:s,root:t}},xe=e=>e.startsWith("/")||/^[a-z]:[\\/]/i.test(e),J=(e,t)=>e?xe(e)?e:h(t,e):t,ve=e=>ge.exec(e)?.[1]?.trim(),at={argsCheck:(e,t)=>T(e,t,!1),argsFix:(e,t)=>T(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 g("sha256").update(n.join("|")).digest("hex").slice(0,16)},detect:B("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 s=[];for(const o of n){const r=o.location,i=o.end_location;s.push({adapter:"ruff-check",column:r?.column,endColumn:i?.column,endLine:i?.row,file:J(o.filename,t.root),fixable:!!o.fix,line:r?.row,message:o.message??"",ruleId:o.code,severity:"warning"})}return s}},lt={argsCheck:(e,t)=>L(e,t,!1),argsFix:(e,t)=>L(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 g("sha256").update(n.join("|")).digest("hex").slice(0,16)},detect:B("ruff-fmt"),extensions:["py","pyi"],id:"ruff-fmt",kind:"fmt",parse:(e,t)=>{if(e.exitCode===0)return[];const n=[],s=new Set;for(const o of e.stdout.split(/\r?\n/)){const r=ve(o);!r||s.has(r)||(s.add(r),n.push({adapter:"ruff-fmt",file:J(r,t.root),fixable:!0,message:"Code style issues would be auto-fixed",severity:"info"}))}return n}},T=(e,t,n)=>{const s=["--output-format=json"];return n&&s.push("--fix"),t.quiet&&s.push("--quiet"),t.extraArgs?.length&&s.push(...t.extraArgs),s.push(...e),s},L=(e,t,n)=>{const s=[];return n||s.push("--check"),t.quiet&&s.push("--quiet"),t.extraArgs?.length&&s.push(...t.extraArgs),s.push(...e),s},ut=(e,t)=>{const n=v(e,["diff","--name-only","--diff-filter=ACMR","-z",`${t}...HEAD`]);if(n===void 0)return;const s=v(e,["diff","--name-only","--diff-filter=ACMR","-z"]),o=v(e,["diff","--name-only","--diff-filter=ACMR","--cached","-z"]),r=v(e,["ls-files","--others","--exclude-standard","-z"]),i=new Set;for(const c of[n,s??"",o??"",r??""])for(const u of c.split("\0"))u.length!==0&&i.add(S(u)?u:h(e,u));return[...i].sort()},dt=e=>{const t=v(e,["diff","--name-only","--diff-filter=ACMR","--cached","-z"]);if(t===void 0)return;const n=new Set;for(const s of t.split("\0"))s.length!==0&&n.add(S(s)?s:h(e,s));return[...n].sort()},v=(e,t)=>{const n=te("git",[...t],{cwd:e,encoding:"utf8",timeout:1e4});if(n.status===0)return n.stdout},ft=(e,t)=>{const n=new Set(t.map(r=>r.toLowerCase())),s=[],o=new Set;for(const r of e){const i=r.lastIndexOf(".");if(i===-1||i===r.length-1)continue;const c=r.slice(i+1).toLowerCase();n.has(c)&&(o.has(r)||(o.add(r),s.push(r)))}return s},we=new Set(["-","stdout"]),_=e=>({close:()=>{},write:t=>{e.write(t)}}),Ae=e=>{le(Q(e));const t=se(e,"w");let n=[];return{close:()=>{n.length>0&&(re(t,n.join("")),n=[]),oe(t)},write:s=>{n.push(s)}}},pt=e=>{const{cwd:t,target:n}=e;if(n===void 0||we.has(n))return _(process.stdout);if(n==="stderr")return _(process.stderr);const s=S(n)?n:Y(t,n);return Ae(s)},j=["oxlint","oxfmt","biome","eslint","dprint","prettier","stylelint","ruff-check","ruff-fmt","markdownlint","shellcheck","deno-lint","deno-fmt"],ht=(e,t)=>{const n=new Map(e.map(i=>[i.id,i])),s=[],o=new Set,r=t&&t.length>0?t:j;for(const i of r){const c=n.get(i);c&&!o.has(i)&&(s.push(c),o.add(i))}if(t&&t.length>0)for(const i of j){const c=n.get(i);c&&!o.has(i)&&(s.push(c),o.add(i))}for(const i of e)o.has(i.id)||(s.push(i),o.add(i.id));return s},mt=(e,t,n)=>{const s=[];for(const o of t){const r=e.get(o.id);r&&Se(o.kind,n)&&s.push({adapter:o,presence:r})}return s},Se=(e,t)=>e===t||e==="both",gt=(e,t,n={})=>{const s=new Map;for(const o of e){const r=$e(o),i=Ce(r,t,n);if(!i)continue;const c=s.get(i);c?c.push(o):s.set(i,[o])}return s},$e=e=>{const t=e.lastIndexOf(".");return t===-1||t===e.length-1?"":e.slice(t+1).toLowerCase()},Ce=(e,t,n)=>{const s=n[e];if(s&&t.some(o=>o.adapter.id===s))return s;for(const{adapter:o}of t)if(o.extensions.includes(e))return o.id},Fe=e=>e==="error"?"error":e==="warning"?"warning":"notice",V=e=>e.replaceAll("%","%25").replaceAll("\r","%0D").replaceAll(`
2
+ `,"%0A"),M=e=>V(e).replaceAll(",","%2C").replaceAll(":","%3A").replaceAll("=","%3D"),ke=(e,t)=>t&&e.startsWith(`${t}/`)?e.slice(t.length+1):e,Ie=(e,t)=>e.file!==t.file?e.file<t.file?-1:1:(e.line??0)-(t.line??0)||(e.column??0)-(t.column??0),be=(e,t)=>{const n=Fe(e.severity),s=ke(e.file,t),o=e.ruleId?`${e.adapter}(${e.ruleId})`:e.adapter,r=[`file=${M(s)}`];return e.line!==void 0&&r.push(`line=${String(e.line)}`),e.endLine!==void 0&&r.push(`endLine=${String(e.endLine)}`),e.column!==void 0&&r.push(`col=${String(e.column)}`),e.endColumn!==void 0&&r.push(`endColumn=${String(e.endColumn)}`),r.push(`title=${M(o)}`),`::${n} ${r.join(",")}::${V(e.message)}
3
+ `},yt=e=>e.runs.flatMap(n=>[...n.findings]).sort(Ie).map(n=>be(n,e.workspaceRoot)).join(""),y=e=>e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&apos;"),Re=e=>`<![CDATA[${e.replaceAll("]]>","]]]]><![CDATA[>")}]]>`,Te=(e,t)=>e.file!==t.file?e.file<t.file?-1:1:(e.line??0)-(t.line??0)||(e.column??0)-(t.column??0),Le=e=>e==="error"?"error":e==="warning"?"warning":"info",_e=(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)}`},je=(e,t,n)=>{const s=_e(e,n),o=Le(e.severity),r=e.ruleId?`[${e.ruleId}] ${e.message}`:e.message;return[` <testcase classname="${y(t)}" name="${y(s)}">`,` <failure type="${y(o)}" message="${y(r)}">${Re(e.message)}</failure>`," </testcase>",""].join(`
4
+ `)},Me=(e,t,n)=>{const s=[...e.findings].sort(Te),o=s.filter(d=>d.severity==="error").length,r=s.filter(d=>d.severity==="warning").length,i=s.length,c=(e.durationMs/1e3).toFixed(3),u=s.map(d=>je(d,e.adapter,n)).join("");return` <testsuite ${[`name="${y(e.adapter)}"`,`tests="${String(i)}"`,`failures="${String(o)}"`,'errors="0"',`skipped="${String(r)}"`,`time="${c}"`,`timestamp="${t}"`].join(" ")}>
5
+ ${u} </testsuite>
6
+ `},xt=e=>{const t=(e.now??new Date).toISOString(),n=e.suiteName??"vis-lint-fmt",s=e.runs.map(a=>Me(a,t,e.workspaceRoot)).join(""),o=e.runs.reduce((a,d)=>a+d.findings.length,0),r=e.runs.reduce((a,d)=>a+d.findings.filter(l=>l.severity==="error").length,0),i=e.runs.reduce((a,d)=>a+d.findings.filter(l=>l.severity==="warning").length,0),c=(e.runs.reduce((a,d)=>a+d.durationMs,0)/1e3).toFixed(3);return`<?xml version="1.0" encoding="UTF-8"?>
7
+ <testsuites ${[`name="${y(n)}"`,`tests="${String(o)}"`,`failures="${String(r)}"`,'errors="0"',`skipped="${String(i)}"`,`time="${c}"`].join(" ")}>
8
+ ${s}</testsuites>
9
+ `},Ee="2.1.0",qe="https://json.schemastore.org/sarif-2.1.0.json",Pe=e=>e==="error"?"error":e==="warning"?"warning":"note",De=(e,t)=>t&&e.startsWith(`${t}/`)?{uri:e.slice(t.length+1),uriBaseId:"SRCROOT"}:{uri:e},Ne=e=>{const{href:t}=Z(e);return t.endsWith("/")?t:`${t}/`},Oe=(e,t)=>e.file!==t.file?e.file<t.file?-1:1:(e.line??0)-(t.line??0)||(e.column??0)-(t.column??0),We=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()]},Be=(e,t)=>{const{uri:n,uriBaseId:s}=De(e.file,t),o={artifactLocation:s?{uri:n,uriBaseId:s}:{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 r={level:Pe(e.severity),locations:[{physicalLocation:o}],message:{text:e.message}};return e.ruleId&&(r.ruleId=e.ruleId),r},Je=(e,t)=>{const n=[...e.findings].sort(Oe),s=We(n),o={name:e.adapter,rules:s};e.presence?.declaredVersion&&(o.version=e.presence.declaredVersion);const r={results:n.map(i=>Be(i,t)),tool:{driver:o}};return t&&(r.originalUriBaseIds={SRCROOT:{uri:Ne(t)}}),r},vt=e=>{const t={$schema:qe,runs:e.runs.map(n=>Je(n,e.workspaceRoot)),version:Ee};return`${JSON.stringify(t,void 0,2)}
10
+ `},E={error:3,info:1,warning:2},wt=e=>{const t=[],n=[];let s,o=!1;for(const r of e){n.push({adapter:r.adapter,durationMs:r.durationMs,exitCode:r.exitCode,findingCount:r.findings.length}),r.exitCode!==0&&r.exitCode!==null&&r.findings.length===0&&(o=!0);for(const i of r.findings)t.push(i),(!s||E[i.severity]>E[s])&&(s=i.severity)}return{findings:t,hadProcessFailure:o,maxSeverity:s,runs:n}},At=e=>{const t=new Map;for(const n of e){const s=t.get(n.file);s?s.push(n):t.set(n.file,[n])}return t},St=e=>e.hadProcessFailure||e.maxSeverity==="error"?1:0,Ve=(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},Ue=e=>{try{const t=P(e);return g("sha256").update(t).digest("hex")}catch{return}},Ke=(e,t,n,s,o)=>{const r=e.cacheKey(t,s),i=[];for(const u of[...n].sort()){const a=S(u)?u:h(t.root,u);try{ie(a)}catch{return}const d=Ue(a);if(!d)return;i.push({hash:d,path:a})}const c=g("sha256");c.update(e.id),c.update("\0"),c.update(r),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")}},U=(e,t)=>h(e,"lint-fmt",t),ze=(e,t,n)=>{const s=h(U(e,t.id),`${n}.json`);try{const o=P(s,"utf8"),r=JSON.parse(o);return r.schema!==1?void 0:r}catch{return}},Ge=(e,t,n,s,o)=>{const r=U(e,t.id),i={fileHashes:o,result:s,savedAt:Date.now(),schema:1};try{ce(r,{recursive:!0}),ae(h(r,`${n}.json`),JSON.stringify(i))}catch{}},q=async(e,t,n,s,o)=>{const r=e.bin(t),i=[...r.slice(1),...o==="fix"?e.argsFix(n,s):e.argsCheck(n,s)];return new Promise(c=>{const u=Date.now(),a=ne(r[0],i,{cwd:t.root}),d=[],l=[];let m=!1;const p=setTimeout(()=>{m=!0,a.kill("SIGKILL")},6e4);a.stdout.on("data",f=>d.push(f)),a.stderr.on("data",f=>l.push(f)),a.on("error",f=>{clearTimeout(p),c({durationMs:Date.now()-u,exitCode:null,stderr:f.message,stdout:""})}),a.on("close",f=>{clearTimeout(p),c({durationMs:Date.now()-u,exitCode:m?null:f,stderr:Buffer.concat(l).toString("utf8"),stdout:Buffer.concat(d).toString("utf8")})})})},$t=async(e,t,n,s=k())=>{if(e.length===0)return[];const{cacheRoot:o,concurrency:r}=typeof s=="number"?{concurrency:s}:{cacheRoot:s.cacheRoot,concurrency:s.concurrency??k()},i=async l=>{const m=l.options??t;if(o&&Ve(l.files,n)){const p=Ke(l.adapter,l.presence,l.files,m,n);if(p){const f=ze(o,l.adapter,p.key);if(f)return f.result;const $=await q(l.adapter,l.presence,l.files,m,n);return $.exitCode!==null&&Ge(o,l.adapter,p.key,$,p.fileHashes),$}}return q(l.adapter,l.presence,l.files,m,n)};if(process.env.VIS_LINT_FMT_SERIAL==="1"){const l=[];for(const m of e)l.push(await i(m));return l}const c=Math.max(1,Math.min(r,e.length)),u=Array.from({length:e.length});let a=0;const d=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},()=>d())),u},He=e=>{const t=new Set;for(const n of e)t.add(n.toLowerCase());return t},Ye=(e,t)=>{const n=e.lastIndexOf(".");return n===-1||n===e.length-1?!1:t.has(e.slice(n+1).toLowerCase())},Ct=async e=>{const{extensions:t,initialFiles:n,label:s,log:o,runCycle:r,workspaceRoot:i}=e,c=o??(p=>{process.stdout.write(`${p}
11
+ `)}),u=He(t);await r(n),c(`▸ ${s}: watching workspace — press Ctrl-C to exit`);let a=new Set,d=!1;const l=async()=>{for(;a.size>0;){const p=[...a];a=new Set;try{await r(p)}catch(f){c(`✗ ${s}: watch cycle failed — ${f.message}`)}}},m=ue({debounceMs:200,filter:p=>Ye(p,u),onChange:async p=>{for(const f of p)a.add(S(f)?f:h(i,f));if(!d){d=!0;try{await l()}finally{d=!1}}},paths:[i]});await new Promise(p=>{const f=()=>{m.close(),process.off("SIGINT",f),process.off("SIGTERM",f),p()};process.once("SIGINT",f),process.once("SIGTERM",f)})};export{rt as a,mt as b,ut as c,D as d,Ct as e,F as f,ot as g,lt as h,ct as i,gt as j,$t as k,wt as l,pt as m,vt as n,xt as o,yt as p,St as q,ht as r,dt as s,At as t,at as u,it as v,ft as w};
@@ -1 +1 @@
1
- import{createRequire as v}from"node:module";import{n as w,C as x,o as B,$ as A}from"./index-CVBR-Kit.js";import{y}from"./isAccessibleSync-DYKTrrvc-K2xhg6sV.js";let S;const T=e=>(S??=v(import.meta.url))(e),n=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,_=e=>{if(typeof n<"u"&&n.versions&&n.versions.node){const[r,t]=n.versions.node.split(".").map(Number);if(r>22||r===22&&t>=3||r===20&&t>=16)return n.getBuiltinModule(e)}return T(e)},{createRequire:l}=_("node:module");let k=class extends Error{constructor(r){super(`EEXIST: ${r}`)}get code(){return"EEXIST"}set code(r){throw new Error("Cannot overwrite code EEXIST")}get name(){return"AlreadyExistsError"}set name(r){throw new Error("Cannot overwrite name of AlreadyExistsError")}};const g=e=>{if(e.isFile())return"file";if(e.isDirectory())return"dir";if(e.isSymbolicLink())return"symlink"};let j;const $=e=>(j??=l(import.meta.url))(e),i=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,F=e=>{if(typeof i<"u"&&i.versions&&i.versions.node){const[r,t]=i.versions.node.split(".").map(Number);if(r>22||r===22&&t>=3||r===20&&t>=16)return i.getBuiltinModule(e)}return $(e)},{lstatSync:m,mkdirSync:N}=F("node:fs"),re=e=>{w(e);try{const r=m(e);if(!r.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${String(g(r))}'`);return}catch(r){if(r.code!=="ENOENT")throw r}try{N(e,{recursive:!0})}catch(r){if(r.code!=="EEXIST")throw r;const t=m(e);if(!t.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${String(g(t))}'`,{cause:r})}},q=e=>{if(typeof e!="string"&&!(e instanceof ArrayBuffer)&&!ArrayBuffer.isView(e))throw new TypeError("File contents must be a string, ArrayBuffer, or ArrayBuffer view.")};let I;const M=e=>(I??=l(import.meta.url))(e),c=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,R=e=>{if(typeof c<"u"&&c.versions&&c.versions.node){const[r,t]=c.versions.node.split(".").map(Number);if(r>22||r===22&&t>=3||r===20&&t>=16)return c.getBuiltinModule(e)}return M(e)},{randomBytes:U}=R("node:crypto"),X=e=>`${e}.${process.pid.toString(36)}.${U(6).toString("hex")}.tmp`,C=new TextEncoder,D=e=>{if(e instanceof Uint8Array)return e;if(typeof e=="string")return C.encode(e);if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e)){const r=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return new Uint8Array(r)}throw new TypeError("Invalid contents type. Expected string or ArrayBuffer.")};let O;const L=e=>(O??=l(import.meta.url))(e),u=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,V=e=>{if(typeof u<"u"&&u.versions&&u.versions.node){const[r,t]=u.versions.node.split(".").map(Number);if(r>22||r===22&&t>=3||r===20&&t>=16)return u.getBuiltinModule(e)}return L(e)},{mkdirSync:P,readFileSync:z,writeFileSync:G,statSync:H,renameSync:h,chownSync:J,chmodSync:K,unlinkSync:Q}=V("node:fs"),te=(e,r,t)=>{t={backup:!1,encoding:"utf8",flag:"w",overwrite:!0,recursive:!0,...t},w(e),q(r),e=x(e);const f=y(e,B),d=t.flag??"w",b=d.includes("a"),E=d.includes("x");if(f&&(!t.overwrite||E))throw new k(`file already exists, open '${e}'`);const s=X(e);try{!f&&t.recursive&&P(A(e),{recursive:!0});let o,a=typeof r=="string"?Buffer.from(r,t.encoding??"utf8"):D(r);if(b&&f&&(a=Buffer.concat([z(e),a])),G(s,a,{flag:"wx"}),f&&t.backup&&(o=H(e),t.chown??={gid:o.gid,uid:o.uid},h(e,`${e}.bak`)),t.chown)try{J(s,t.chown.uid,t.chown.gid)}catch{}const p=o&&t.mode===void 0?o.mode:t.mode;p!==void 0&&K(s,p),h(s,e)}catch(o){throw new Error(`Failed to write file at: ${e} - ${o.message}`,{cause:o})}finally{y(s)&&Q(s)}};export{te as U,re as h,g as r};
1
+ import{createRequire as v}from"node:module";import{n as w,C as x,o as B,m as A}from"./index-BzhrR_iC.js";import{y}from"./isAccessibleSync-DYKTrrvc-C-_5cgwu.js";let S;const T=e=>(S??=v(import.meta.url))(e),n=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,_=e=>{if(typeof n<"u"&&n.versions&&n.versions.node){const[r,t]=n.versions.node.split(".").map(Number);if(r>22||r===22&&t>=3||r===20&&t>=16)return n.getBuiltinModule(e)}return T(e)},{createRequire:l}=_("node:module");let k=class extends Error{constructor(r){super(`EEXIST: ${r}`)}get code(){return"EEXIST"}set code(r){throw new Error("Cannot overwrite code EEXIST")}get name(){return"AlreadyExistsError"}set name(r){throw new Error("Cannot overwrite name of AlreadyExistsError")}};const m=e=>{if(e.isFile())return"file";if(e.isDirectory())return"dir";if(e.isSymbolicLink())return"symlink"};let j;const F=e=>(j??=l(import.meta.url))(e),i=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,N=e=>{if(typeof i<"u"&&i.versions&&i.versions.node){const[r,t]=i.versions.node.split(".").map(Number);if(r>22||r===22&&t>=3||r===20&&t>=16)return i.getBuiltinModule(e)}return F(e)},{lstatSync:g,mkdirSync:q}=N("node:fs"),re=e=>{w(e);try{const r=g(e);if(!r.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${String(m(r))}'`);return}catch(r){if(r.code!=="ENOENT")throw r}try{q(e,{recursive:!0})}catch(r){if(r.code!=="EEXIST")throw r;const t=g(e);if(!t.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${String(m(t))}'`,{cause:r})}},I=e=>{if(typeof e!="string"&&!(e instanceof ArrayBuffer)&&!ArrayBuffer.isView(e))throw new TypeError("File contents must be a string, ArrayBuffer, or ArrayBuffer view.")};let M;const $=e=>(M??=l(import.meta.url))(e),c=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,R=e=>{if(typeof c<"u"&&c.versions&&c.versions.node){const[r,t]=c.versions.node.split(".").map(Number);if(r>22||r===22&&t>=3||r===20&&t>=16)return c.getBuiltinModule(e)}return $(e)},{randomBytes:U}=R("node:crypto"),X=e=>`${e}.${process.pid.toString(36)}.${U(6).toString("hex")}.tmp`,C=new TextEncoder,D=e=>{if(e instanceof Uint8Array)return e;if(typeof e=="string")return C.encode(e);if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e)){const r=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return new Uint8Array(r)}throw new TypeError("Invalid contents type. Expected string or ArrayBuffer.")};let O;const L=e=>(O??=l(import.meta.url))(e),u=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,V=e=>{if(typeof u<"u"&&u.versions&&u.versions.node){const[r,t]=u.versions.node.split(".").map(Number);if(r>22||r===22&&t>=3||r===20&&t>=16)return u.getBuiltinModule(e)}return L(e)},{mkdirSync:P,readFileSync:z,writeFileSync:G,statSync:H,renameSync:h,chownSync:J,chmodSync:K,unlinkSync:Q}=V("node:fs"),te=(e,r,t)=>{t={backup:!1,encoding:"utf8",flag:"w",overwrite:!0,recursive:!0,...t},w(e),I(r),e=x(e);const f=y(e,B),d=t.flag??"w",b=d.includes("a"),E=d.includes("x");if(f&&(!t.overwrite||E))throw new k(`file already exists, open '${e}'`);const s=X(e);try{!f&&t.recursive&&P(A(e),{recursive:!0});let o,a=typeof r=="string"?Buffer.from(r,t.encoding??"utf8"):D(r);if(b&&f&&(a=Buffer.concat([z(e),a])),G(s,a,{flag:"wx"}),f&&t.backup&&(o=H(e),t.chown??={gid:o.gid,uid:o.uid},h(e,`${e}.bak`)),t.chown)try{J(s,t.chown.uid,t.chown.gid)}catch{}const p=o&&t.mode===void 0?o.mode:t.mode;p!==void 0&&K(s,p),h(s,e)}catch(o){throw new Error(`Failed to write file at: ${e} - ${o.message}`,{cause:o})}finally{y(s)&&Q(s)}};export{te as U,re as h,m as r};
@@ -0,0 +1,7 @@
1
+ import{createRequire as R}from"node:module";let q;const B=n=>(q??=R(import.meta.url))(n),y=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,D=n=>{if(typeof y<"u"&&y.versions&&y.versions.node){const[i,e]=y.versions.node.split(".").map(Number);if(i>22||i===22&&e>=3||i===20&&e>=16)return y.getBuiltinModule(n)}return B(n)},{existsSync:L,readFileSync:O}=D("node:fs"),{join:A,resolve:W,relative:H,sep:P,isAbsolute:V}=D("node:path");class g extends Error{constructor(i,e){super(e),this.file=i,this.name="ZigManifestError"}file}const C=/[A-Z_]\w*/iy,z=/^[A-Z_]/i,G=/[\w.+\-@]+/y,F=(n,i)=>{let e=0;const r=(t,s=e)=>{const o=n.slice(0,s).split(`
2
+ `).length;throw new g(i,`${i} line ${o}: ${t}`)},f=t=>n.slice(0,t).split(`
3
+ `).length,a=()=>{for(;;){const t=n[e];if(t===" "||t===" "||t==="\r"||t===`
4
+ `)e+=1;else if(t==="/"&&n[e+1]==="/"){const s=n.indexOf(`
5
+ `,e);e=s===-1?n.length:s}else return}},p=t=>{t.lastIndex=e;const s=t.exec(n);if(s!==null)return e=t.lastIndex,s[0]},c=()=>n[e]==="@"&&n[e+1]==='"'?(e+=1,m().value):p(C)??r("expected a field or enum name"),m=()=>{const t=e,s=f(e);n[e]!=='"'&&r("expected a string literal"),e+=1;let o="";for(;;){const l=n[e];if((l===void 0||l===`
6
+ `)&&r("unterminated string literal",t),l==='"')return e+=1,{end:e,kind:"string",line:s,start:t,value:o};if(l==="\\"){const d=n[e+1],k=d===void 0?void 0:{'"':'"',"'":"'","\\":"\\",n:`
7
+ `,r:"\r",t:" "}[d];k===void 0&&r(`unsupported escape \\${d??""}; vis reads only plain string literals`),o+=k,e+=2}else o+=l,e+=1}},$=()=>{a(),n[e]!==","&&n[e]!=="}"&&r('expected "," or "}" after a value; vis reads only plain literals, not expressions')},S=()=>{const t=f(e);e+=2;const s=[],o=[];for(;;){if(a(),e>=n.length&&r("unterminated struct literal",0),n[e]==="}")return e+=1,{fields:s,items:o,kind:"struct",line:t};if(n[e]===","){e+=1;continue}const l=e;if(n[e]==="."&&(z.test(n.charAt(e+1))||n[e+1]==="@")){e+=1;const d=c();if(a(),n[e]==="="){e+=1,s.push({line:f(l),name:d,value:v()}),$();continue}e=l}o.push(v()),$()}},v=()=>{a();const t=n[e],s=f(e);return t==='"'?m():t==="\\"?r('multiline string literals are not supported; vis reads only a plain "…" literal'):t==="."&&n[e+1]==="{"?S():t==="."&&(z.test(n.charAt(e+1))||n[e+1]==="@")?(e+=1,{kind:"enum",line:s,name:c()}):p(G)===void 0?r("expected a value"):{kind:"other",line:s}};a(),(n[e]!=="."||n[e+1]!=="{")&&r('a build.zig.zon manifest is a struct literal starting with ".{"');const T=v();a(),e<n.length&&r("unexpected text after the manifest struct"),T.kind!=="struct"&&r("a build.zig.zon manifest is a struct literal");const N=t=>T.kind==="struct"?T.fields.filter(s=>s.name===t):[],b=t=>{const s=N(t);return s.length>1&&r(`declares .${t} ${String(s.length)} times (lines ${s.map(o=>String(o.line)).join(", ")})`,0),s[0]},u=b("name");let j;if(u!==void 0)if(u.value.kind==="enum")j={line:u.line,value:u.value.name};else if(u.value.kind==="string")j={line:u.line,value:u.value.value};else throw new g(i,`${i} sets .name on line ${String(u.line)} to something other than a literal. vis reads an enum literal (.name = .foo) or a string.`);const h=b("version");let M;if(h!==void 0){if(h.value.kind!=="string")throw new g(i,`${i} sets .version on line ${String(h.line)} to something other than a string literal. vis reads only a plain "…" version.`);M={end:h.value.end,line:h.line,start:h.value.start,value:h.value.value}}const Z=[],I=[],_=b("dependencies");if(_!==void 0){if(_.value.kind!=="struct")throw new g(i,`${i} sets .dependencies on line ${String(_.line)} to something other than a struct.`);for(const t of _.value.fields){if(t.value.kind!=="struct")throw new g(i,`${i} line ${String(t.line)}: dependency .${t.name} is not a struct.`);const s=l=>{const d=t.value.kind==="struct"?t.value.fields.filter(k=>k.name===l):[];if(d.length===0)return;const x=d[0];if(x?.value.kind!=="string")throw new g(i,`${i} line ${String(x?.line??t.line)}: dependency .${t.name} sets .${l} to something other than a string literal.`);return x.value.value},o=s("path");o!==void 0&&Z.push(o),I.push({hash:s("hash"),line:t.line,name:t.name,path:o,url:s("url")})}}return{dependencies:I,name:j,pathDependencies:Z,version:M}},E="build.zig.zon",J=(n,i)=>{const e=H(n,i);return e===""||e!==".."&&!e.startsWith(`..${P}`)&&!V(e)},U=(n,i,e)=>{const r=[],f=new Set,a=p=>{const c=A(p,E);if(f.has(c))return;f.add(c);const m=e(c);if(m===void 0)return;const $=F(m,c);r.push({dir:p,manifest:$,path:c});for(const S of $.pathDependencies){const v=W(p,S);J(i,v)&&a(v)}};return a(n),r},K=n=>L(n)?O(n,"utf8"):void 0,X=n=>{try{return F(K(A(n,E))??"",A(n,E)).name?.value}catch{return}};export{g as Z,X as a,F as p,K as r,U as w};
@@ -5,7 +5,7 @@ export { A as AfterAllProjectsVersioned, type a as AfterAllVersionedContext, typ
5
5
  export type { e as PublishResult } from "../packem_shared/interface.d-CRqRz4jt.js";
6
6
  export {
7
7
  /**
8
- * Author a lifecycle plugin (tegami parity). Unlike the single-purpose
8
+ * Author a lifecycle plugin. Unlike the single-purpose
9
9
  * `define*` helpers above, a plugin hooks arbitrary points of the release
10
10
  * lifecycle — `applyDraft`, `willPublish`, `afterPublish`, `afterPublishAll`.
11
11
  *