@visulima/vis 1.0.0-alpha.24 → 1.0.0-alpha.26

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 (98) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/LICENSE.md +1154 -179
  3. package/README.md +5 -3
  4. package/dist/bin.js +1 -1
  5. package/dist/binx.js +1 -1
  6. package/dist/config/index.d.ts +19 -0
  7. package/dist/packem_chunks/bin.js +299 -290
  8. package/dist/packem_chunks/bloom-status.js +1 -1
  9. package/dist/packem_chunks/bloom-sync.js +1 -1
  10. package/dist/packem_chunks/config.js +15 -15
  11. package/dist/packem_chunks/fix.js +1 -1
  12. package/dist/packem_chunks/handler.js +1 -1
  13. package/dist/packem_chunks/handler10.js +2 -2
  14. package/dist/packem_chunks/handler11.js +1 -1
  15. package/dist/packem_chunks/handler12.js +1 -1
  16. package/dist/packem_chunks/handler13.js +1 -1
  17. package/dist/packem_chunks/handler14.js +10 -10
  18. package/dist/packem_chunks/handler15.js +1 -1
  19. package/dist/packem_chunks/handler16.js +1 -1
  20. package/dist/packem_chunks/handler17.js +1 -1
  21. package/dist/packem_chunks/handler18.js +1 -1
  22. package/dist/packem_chunks/handler19.js +1 -1
  23. package/dist/packem_chunks/handler2.js +2 -2
  24. package/dist/packem_chunks/handler20.js +1 -1
  25. package/dist/packem_chunks/handler21.js +5 -5
  26. package/dist/packem_chunks/handler22.js +2 -2
  27. package/dist/packem_chunks/handler23.js +2 -2
  28. package/dist/packem_chunks/handler24.js +1 -1
  29. package/dist/packem_chunks/handler25.js +1 -1
  30. package/dist/packem_chunks/handler27.js +1 -1
  31. package/dist/packem_chunks/handler28.js +1 -1
  32. package/dist/packem_chunks/handler29.js +1 -1
  33. package/dist/packem_chunks/handler3.js +1 -1
  34. package/dist/packem_chunks/handler30.js +1 -1
  35. package/dist/packem_chunks/handler31.js +1 -1
  36. package/dist/packem_chunks/handler32.js +3 -3
  37. package/dist/packem_chunks/handler34.js +5 -28
  38. package/dist/packem_chunks/handler35.js +22 -5
  39. package/dist/packem_chunks/handler36.js +60 -21
  40. package/dist/packem_chunks/handler37.js +6 -61
  41. package/dist/packem_chunks/handler38.js +24 -6
  42. package/dist/packem_chunks/handler39.js +152 -707
  43. package/dist/packem_chunks/handler4.js +1 -1
  44. package/dist/packem_chunks/handler40.js +10 -24
  45. package/dist/packem_chunks/handler41.js +25 -286
  46. package/dist/packem_chunks/handler42.js +707 -152
  47. package/dist/packem_chunks/handler43.js +24 -10
  48. package/dist/packem_chunks/handler44.js +322 -25
  49. package/dist/packem_chunks/handler45.js +46 -24
  50. package/dist/packem_chunks/handler46.js +1 -1
  51. package/dist/packem_chunks/handler47.js +7 -7
  52. package/dist/packem_chunks/handler48.js +66 -58
  53. package/dist/packem_chunks/handler5.js +3 -3
  54. package/dist/packem_chunks/handler6.js +1 -1
  55. package/dist/packem_chunks/handler8.js +1 -1
  56. package/dist/packem_chunks/handler9.js +1 -1
  57. package/dist/packem_chunks/heal-accept.js +1 -1
  58. package/dist/packem_chunks/heal.js +1 -1
  59. package/dist/packem_chunks/help-command.js +16 -16
  60. package/dist/packem_chunks/index.js +6 -6
  61. package/dist/packem_chunks/list.js +1 -1
  62. package/dist/packem_chunks/loader.js +1 -1
  63. package/dist/packem_chunks/prune.js +3 -3
  64. package/dist/packem_chunks/run.js +1 -1
  65. package/dist/packem_chunks/status.js +1 -1
  66. package/dist/packem_chunks/sync.js +1 -1
  67. package/dist/packem_chunks/sync2.js +1 -1
  68. package/dist/packem_chunks/tripwire.js +1 -1
  69. package/dist/packem_chunks/verify-lockfile.js +1 -1
  70. package/dist/packem_shared/{advisories-U1QKY_tg.js → advisories-DS8JEB_g.js} +1 -1
  71. package/dist/packem_shared/affected-shas-Dm7eqcI8.js +1 -0
  72. package/dist/packem_shared/{ai-analysis-B8pDCOuT.js → ai-analysis-Csn82p17.js} +1 -1
  73. package/dist/packem_shared/{ai-fix-DiGSrGKv.js → ai-fix-BlYyz5bI.js} +3 -3
  74. package/dist/packem_shared/{cyclonedx-DPEW0nwS.js → cyclonedx-ja1cbU69.js} +1 -1
  75. package/dist/packem_shared/dependency-scan-s2MD0vi-.js +1 -0
  76. package/dist/packem_shared/{docker-_pBC9Loj.js → docker-Bw9gKo69.js} +1 -1
  77. package/dist/packem_shared/{index-D_tAc2nS.js → index-88UK-tt_.js} +1 -1
  78. package/dist/packem_shared/index-CS6a2wFB.js +29 -0
  79. package/dist/packem_shared/lifecycle-ChCFTm5Q.js +2 -0
  80. package/dist/packem_shared/{lockfile-CQLFNyVa.js → lockfile-BG1HvBzH.js} +1 -1
  81. package/dist/packem_shared/{min-release-age-Cz6HbF-I.js → min-release-age-heJgeP7o.js} +1 -1
  82. package/dist/packem_shared/{osv-bloom-CyCDpXBl.js → osv-bloom-QSAn2Dcw.js} +2 -2
  83. package/dist/packem_shared/{pm-runner-Dnj9J3KF.js → pm-runner-BzGZmzYs.js} +1 -1
  84. package/dist/packem_shared/{provenance-yESbF7Vs.js → provenance-BsBn1f5S.js} +1 -1
  85. package/dist/packem_shared/{resolve-explicit-BpxcFRuk.js → resolve-explicit-CBPr617N.js} +1 -1
  86. package/dist/packem_shared/{s1ngularity-B_xjP4lC.js → s1ngularity-j_ArCZAs.js} +1 -1
  87. package/dist/packem_shared/{signatures-DBwSnMBB.js → signatures-CaXzNuEn.js} +1 -1
  88. package/dist/packem_shared/{typosquats-Citu7BRY.js → typosquats-C1e6RNjF.js} +1 -1
  89. package/dist/packem_shared/vis-update-app-qhQPV97i.js +1 -0
  90. package/index.d.ts +201 -201
  91. package/index.js +52 -52
  92. package/package.json +14 -25
  93. package/schemas/project.schema.json +4 -0
  94. package/schemas/vis-config.schema.json +5 -0
  95. package/dist/packem_shared/dependency-scan-BbtivycX.js +0 -1
  96. package/dist/packem_shared/index-B8Ko8mwG.js +0 -29
  97. package/dist/packem_shared/lifecycle-DJDsjoic.js +0 -2
  98. package/dist/packem_shared/vis-update-app-BWA1kA1q.js +0 -1
@@ -1 +1 @@
1
- var D=Object.defineProperty;var v=(t,e)=>D(t,"name",{value:e,configurable:!0});import{m as w,D as C,g as S,f as A}from"./provenance-yESbF7Vs.js";import{L as m}from"../packem_chunks/bin.js";import{x as W}from"./build-scripts-3E2pmscY.js";import{n as b}from"./license-zZU7aavK.js";import{a as j,C as F,$ as U}from"./readFileSync-CGmzMUF2-D6rUjGDn.js";import{F as E}from"./lockfile-CQLFNyVa.js";import{L as N}from"./dependency-scan-BbtivycX.js";var I=Object.defineProperty,L=v((t,e)=>I(t,"name",{value:e,configurable:!0}),"i");const g={CRITICAL:0,HIGH:1,LOW:3,MODERATE:2,UNKNOWN:4},we=L((t,e)=>{const i=g[(t.vulnerability.severity??"UNKNOWN").toUpperCase()]??4,n=g[(e.vulnerability.severity??"UNKNOWN").toUpperCase()]??4;return i-n||t.packageName.localeCompare(e.packageName)||t.packageVersion.localeCompare(e.packageVersion)},"compareFindingsForDisplay"),M=L((t,e)=>{const i=g[e.toUpperCase()]??2;return(g[t.toUpperCase()]??4)<=i},"severityPassesFilter"),P=["firstSeen","installScripts","license","malware","publisherChange","score","unexpectedDeps","vulnerability"];var V=Object.defineProperty,R=v((t,e)=>V(t,"name",{value:e,configurable:!0}),"r");const $=6e4,_=R((t,e,i)=>{for(const n of i)if(n===t||n===`${t}@${e}`||n.endsWith("*")&&t.startsWith(n.slice(0,-1)))return!0;return!1},"isExcluded"),T=R(async(t,e)=>{const i=e.security?.policies?.firstSeen;if(i?.minutes===void 0||i.minutes<=0)return[];const{minutes:n}=i,a=i.exclude??[],o=e.security?.acceptedRisks,c=n*$,s=Date.now();return(await w(t.packages,C,async r=>{if(_(r.name,r.version,a))return;const l=await S(r.name,{workspaceRoot:t.workspaceRoot});if(l===void 0)return;const p=l.time?.[r.version];if(p===void 0)return;const u=Date.parse(p);if(Number.isNaN(u))return;const f=s-u;if(f>=c)return;const k=Math.max(0,Math.floor(f/$));return{acceptedRisk:m(r.name,r.version,o,"firstSeen"),data:{ageMinutes:k,minimumMinutes:n,publishedAt:p},packageName:r.name,policy:"firstSeen",reason:`${r.name}@${r.version} was published ${String(k)} min ago — below the ${String(n)} min firstSeen cooldown.`,severity:"block",version:r.version}})).filter(r=>r!==void 0)},"evaluateFirstSeenPolicy");var K=Object.defineProperty,H=v((t,e)=>K(t,"name",{value:e,configurable:!0}),"n");const q=H((t,e)=>{const i=e.security?.policies?.installScripts;if(!i)return[];const n=i.allow??{},a=i.strict===!0;if(!a&&Object.keys(n).length===0)return[];const o=W(t.workspaceRoot,n,{pinVersions:e.security?.pinVersions===!0});if(o.unapproved.length===0)return[];const c=e.security?.acceptedRisks,s=a?"block":"warn";return o.unapproved.map(r=>({acceptedRisk:m(r.name,r.version??"*",c,"installScripts"),data:{hooks:r.hooks},packageName:r.name,policy:"installScripts",reason:`${r.name}${r.version?`@${r.version}`:""} declares unapproved build script(s): ${r.hooks.join(", ")}`,severity:s,version:r.version??"*"}))},"evaluateInstallScriptsPolicy");var z=Object.defineProperty,y=v((t,e)=>z(t,"name",{value:e,configurable:!0}),"a");const Y=new Set(["AND","OR"]),B=y(t=>{const e=t.replaceAll("("," ").replaceAll(")"," ").split(/\s+/).map(a=>a.trim()).filter(a=>a.length>0),i=[];let n=!1;for(const a of e){const o=a.toUpperCase();if(n){n=!1;continue}if(o==="WITH"){n=!0;continue}if(Y.has(o))continue;const c=a.endsWith("+"),s=c?a.slice(0,-1):a,r=b(s)??s;i.push(r),c&&i.push(`${r}-or-later`)}return i},"extractSpdxLeaves"),G=y(t=>{if(typeof t.license=="string"){const e=t.license.trim();return e.length>0?e:void 0}if(t.license&&typeof t.license=="object"&&typeof t.license.type=="string"){const e=t.license.type.trim();if(e.length>0)return e}if(Array.isArray(t.licenses)&&t.licenses.length>0){const e=t.licenses.map(i=>i&&typeof i.type=="string"?i.type.trim():"").filter(i=>i.length>0);if(e.length>0)return e.length===1?e[0]:`(${e.join(" OR ")})`}},"declaredLicense"),J=y((t,e)=>{if(e.length===0)return;const i=new Set(e.map(n=>b(n)??n).map(n=>n.toLowerCase()));for(const n of t)if(i.has(n.toLowerCase()))return n},"findDeniedLeaf"),Q=y((t,e)=>{if(e.length===0)return;const i=new Set(e.map(n=>b(n)??n).map(n=>n.toLowerCase()));for(const n of t)if(!i.has(n.toLowerCase()))return n},"findUnallowedLeaf"),X=y((t,e)=>{const i=e.security?.policies?.license;if(!i)return[];const n=i.allow??[],a=i.deny??[];if(n.length===0&&a.length===0)return[];const o=e.security?.acceptedRisks,c=[];for(const s of t.packages){const r=t.manifestData?.get(`${s.name}@${s.version}`),l=r?G(r):void 0;if(!l){n.length>0&&c.push({acceptedRisk:m(s.name,s.version,o,"license"),data:{declaredLicense:null},packageName:s.name,policy:"license",reason:`${s.name}@${s.version} declares no license; allow-list mode requires one of: ${n.join(", ")}`,severity:"block",version:s.version});continue}const p=B(l),u=J(p,a);if(u){c.push({acceptedRisk:m(s.name,s.version,o,"license"),data:{declaredLicense:l,deniedLicense:u},packageName:s.name,policy:"license",reason:`${s.name}@${s.version} uses denied license '${u}' (declared: ${l})`,severity:"block",version:s.version});continue}const f=Q(p,n);f&&c.push({acceptedRisk:m(s.name,s.version,o,"license"),data:{allowList:n,declaredLicense:l,unallowedLicense:f},packageName:s.name,policy:"license",reason:`${s.name}@${s.version} uses license '${f}' which is not on the allow-list (declared: ${l})`,severity:"block",version:s.version})}return c},"evaluateLicensePolicy");var Z=Object.defineProperty,O=v((t,e)=>Z(t,"name",{value:e,configurable:!0}),"c$1");const ee=6e4,te=O((t,e,i)=>{for(const n of i)if(n===t||n===`${t}@${e}`||n.endsWith("*")&&t.startsWith(n.slice(0,-1)))return!0;return!1},"isExcluded"),ie=O(async(t,e)=>{const i=e.security?.policies?.publisherChange;if(i?.mode!=="no-downgrade")return[];const n=i.exclude??[],a=typeof i.ignoreAfter=="number"?i.ignoreAfter*ee:void 0,o=e.security?.acceptedRisks,c=Date.now();return(await w(t.packages,C,async s=>{if(te(s.name,s.version,n))return;const r=await S(s.name,{workspaceRoot:t.workspaceRoot});if(r===void 0)return;if(a!==void 0){const p=r.time?.[s.version],u=p===void 0?Number.NaN:Date.parse(p);if(!Number.isNaN(u)&&c-u>a)return}if(r.versions[s.version]?.dist?.attestations?.provenance!==void 0)return;const l=A(r,s.version);if(l!==void 0)return{acceptedRisk:m(s.name,s.version,o,"publisherChange"),data:{priorVersionWithProvenance:l},packageName:s.name,policy:"publisherChange",reason:`${s.name}@${s.version} dropped the provenance attestation that ${s.name}@${l} carried — publisher trust downgrade.`,severity:"block",version:s.version}})).filter(s=>s!==void 0)},"evaluatePublisherChangePolicy");var ne=Object.defineProperty,h=v((t,e)=>ne(t,"name",{value:e,configurable:!0}),"l$1");const se=h(t=>{for(const e of Object.values(N))for(const i of[e.file,...e.aliases??[]])if(t===i||t.endsWith(`/${i}`)||t.endsWith(`.${i}`))return e.type},"detectLockfileType"),re=h((t,e,i)=>{const n=j(e)?e:F(t,e);let a;try{a=U(n)}catch{return}const o=se(n)??N[i]?.type;if(!o)return;const c=E(a,o);if(c.length===0)return;const s=new Set;for(const r of c)s.add(`${r.name}@${r.version}`);return s},"loadBaselineKeys"),oe=h((t,e)=>{for(const i of e)if(i===t||i.endsWith("*")&&t.startsWith(i.slice(0,-1)))return!0;return!1},"matchesAllowList"),ae=h((t,e)=>{const i=e.security?.policies?.unexpectedDeps;if(!i)return[];const n=i.allow??[],a=i.baselineLockfile;if(n.length===0&&!a)return[];const o=a?re(t.workspaceRoot,a,t.packageManager):void 0,c=e.security?.acceptedRisks,s=[];for(const r of t.packages){const l=n.length===0||oe(r.name,n),p=o?o.has(`${r.name}@${r.version}`):!0;if(l&&p)continue;const u=[],f={};l||(u.push(`not on allow-list (${n.length} entr${n.length===1?"y":"ies"})`),f.allowList=n),!p&&o&&(u.push(`not present in baseline lockfile (${a})`),f.baselineLockfile=a),s.push({acceptedRisk:m(r.name,r.version,c,"unexpectedDeps"),data:f,packageName:r.name,policy:"unexpectedDeps",reason:`${r.name}@${r.version} is unexpected: ${u.join("; ")}`,severity:"block",version:r.version})}return s},"evaluateUnexpectedDepsPolicy");var ce=Object.defineProperty,le=v((t,e)=>ce(t,"name",{value:e,configurable:!0}),"c");const ue=le((t,e)=>{if(!t.osvFindings||t.osvFindings.size===0)return[];const i=e.security?.policies?.vulnerability?.failOn,n=e.security?.acceptedRisks,a=[];for(const o of t.packages){const c=t.osvFindings.get(o.name);if(!(!c||c.length===0))for(const s of c){const r=i?M(s.severity,i)?"block":"warn":"info";a.push({acceptedRisk:m(o.name,o.version,n,"vulnerability"),data:{advisoryId:s.id,aliases:s.aliases??[],cvssScore:s.cvssScore,fixedVersions:s.fixedVersions,severity:s.severity,summary:s.summary},packageName:o.name,policy:"vulnerability",reason:`${s.severity} ${s.id} affects ${o.name}@${o.version}: ${s.summary}`,severity:r,version:o.version})}}return a},"evaluateVulnerabilityPolicy");var pe=Object.defineProperty,d=v((t,e)=>pe(t,"name",{value:e,configurable:!0}),"t");const x=[{evaluate:ue,isConfigured:d(t=>t.security?.policies?.vulnerability!==void 0,"isConfigured"),name:"vulnerability",offlineSupported:!0,surfaces:["audit","doctor"]},{evaluate:X,isConfigured:d(t=>{const e=t.security?.policies?.license;return!!(e&&(e.allow&&e.allow.length>0||e.deny&&e.deny.length>0))},"isConfigured"),name:"license",offlineSupported:!0,surfaces:["audit","doctor","install"]},{evaluate:q,isConfigured:d(t=>{const e=t.security?.policies?.installScripts;return!!(e&&(e.allow&&Object.keys(e.allow).length>0||e.strict===!0))},"isConfigured"),name:"installScripts",offlineSupported:!0,surfaces:["audit","doctor","install"]},{evaluate:ae,isConfigured:d(t=>{const e=t.security?.policies?.unexpectedDeps;return!!(e&&(e.allow&&e.allow.length>0||typeof e.baselineLockfile=="string"))},"isConfigured"),name:"unexpectedDeps",offlineSupported:!0,surfaces:["audit","doctor","install"]},{evaluate:T,isConfigured:d(t=>{const e=t.security?.policies?.firstSeen?.minutes;return typeof e=="number"&&e>0},"isConfigured"),name:"firstSeen",offlineSupported:!1,surfaces:["audit","doctor","install"]},{evaluate:ie,isConfigured:d(t=>t.security?.policies?.publisherChange?.mode==="no-downgrade","isConfigured"),name:"publisherChange",offlineSupported:!1,surfaces:["audit","doctor","install"]}],fe=d((t,e,i)=>x.filter(n=>n.surfaces.includes(t)?i!==void 0?i.has(n.name):n.isConfigured(e):!1),"selectModules"),Ce=d(async(t,e,i)=>{const n=fe(e,i.visConfig,i.enabledPolicies),a=[];for(const o of n){if(t.offline&&!o.offlineSupported){a.push({packageName:"*",policy:o.name,reason:`policy.${o.name} skipped: requires network (--offline)`,severity:"info",version:"*"});continue}try{const c=await o.evaluate(t,i.visConfig);a.push(...c)}catch(c){const s=c instanceof Error?c.message:String(c);a.push({packageName:"*",policy:o.name,reason:`policy.${o.name} failed: ${s}`,severity:"info",version:"*"})}}return a},"evaluatePolicies"),de=(()=>{const t=new Map;for(const e of P)t.set(e.toLowerCase(),e);return t})(),Se=d(()=>x.map(t=>t.name),"getRegisteredPolicyNames"),Ne=d((t,e)=>{if(t===void 0)return;const i=t.trim().toLowerCase();if(i===""||i==="none")return new Set;if(i==="all")return new Set(P);const n=new Set;for(const a of t.split(",").map(o=>o.trim()).filter(o=>o.length>0)){const o=a.replace(/^_+/,"").replaceAll(/_+([a-z])/g,(s,r)=>r.toUpperCase()),c=de.get(o.toLowerCase());c===void 0?e?.(a):n.add(c)}return n},"parsePoliciesFlag");export{we as c,Ce as e,Se as g,Ne as p,M as s};
1
+ var D=Object.defineProperty;var v=(t,e)=>D(t,"name",{value:e,configurable:!0});import{m as w,D as C,g as S,f as A}from"./provenance-BsBn1f5S.js";import{L as m}from"../packem_chunks/bin.js";import{x as W}from"./build-scripts-3E2pmscY.js";import{n as b}from"./license-zZU7aavK.js";import{a as j,C as F,$ as U}from"./readFileSync-CGmzMUF2-D6rUjGDn.js";import{F as E}from"./lockfile-BG1HvBzH.js";import{L as N}from"./dependency-scan-s2MD0vi-.js";var I=Object.defineProperty,L=v((t,e)=>I(t,"name",{value:e,configurable:!0}),"i");const g={CRITICAL:0,HIGH:1,LOW:3,MODERATE:2,UNKNOWN:4},we=L((t,e)=>{const i=g[(t.vulnerability.severity??"UNKNOWN").toUpperCase()]??4,n=g[(e.vulnerability.severity??"UNKNOWN").toUpperCase()]??4;return i-n||t.packageName.localeCompare(e.packageName)||t.packageVersion.localeCompare(e.packageVersion)},"compareFindingsForDisplay"),M=L((t,e)=>{const i=g[e.toUpperCase()]??2;return(g[t.toUpperCase()]??4)<=i},"severityPassesFilter"),P=["firstSeen","installScripts","license","malware","publisherChange","score","unexpectedDeps","vulnerability"];var V=Object.defineProperty,R=v((t,e)=>V(t,"name",{value:e,configurable:!0}),"r");const $=6e4,_=R((t,e,i)=>{for(const n of i)if(n===t||n===`${t}@${e}`||n.endsWith("*")&&t.startsWith(n.slice(0,-1)))return!0;return!1},"isExcluded"),T=R(async(t,e)=>{const i=e.security?.policies?.firstSeen;if(i?.minutes===void 0||i.minutes<=0)return[];const{minutes:n}=i,a=i.exclude??[],o=e.security?.acceptedRisks,c=n*$,s=Date.now();return(await w(t.packages,C,async r=>{if(_(r.name,r.version,a))return;const l=await S(r.name,{workspaceRoot:t.workspaceRoot});if(l===void 0)return;const p=l.time?.[r.version];if(p===void 0)return;const u=Date.parse(p);if(Number.isNaN(u))return;const f=s-u;if(f>=c)return;const k=Math.max(0,Math.floor(f/$));return{acceptedRisk:m(r.name,r.version,o,"firstSeen"),data:{ageMinutes:k,minimumMinutes:n,publishedAt:p},packageName:r.name,policy:"firstSeen",reason:`${r.name}@${r.version} was published ${String(k)} min ago — below the ${String(n)} min firstSeen cooldown.`,severity:"block",version:r.version}})).filter(r=>r!==void 0)},"evaluateFirstSeenPolicy");var K=Object.defineProperty,H=v((t,e)=>K(t,"name",{value:e,configurable:!0}),"n");const q=H((t,e)=>{const i=e.security?.policies?.installScripts;if(!i)return[];const n=i.allow??{},a=i.strict===!0;if(!a&&Object.keys(n).length===0)return[];const o=W(t.workspaceRoot,n,{pinVersions:e.security?.pinVersions===!0});if(o.unapproved.length===0)return[];const c=e.security?.acceptedRisks,s=a?"block":"warn";return o.unapproved.map(r=>({acceptedRisk:m(r.name,r.version??"*",c,"installScripts"),data:{hooks:r.hooks},packageName:r.name,policy:"installScripts",reason:`${r.name}${r.version?`@${r.version}`:""} declares unapproved build script(s): ${r.hooks.join(", ")}`,severity:s,version:r.version??"*"}))},"evaluateInstallScriptsPolicy");var z=Object.defineProperty,y=v((t,e)=>z(t,"name",{value:e,configurable:!0}),"a");const Y=new Set(["AND","OR"]),B=y(t=>{const e=t.replaceAll("("," ").replaceAll(")"," ").split(/\s+/).map(a=>a.trim()).filter(a=>a.length>0),i=[];let n=!1;for(const a of e){const o=a.toUpperCase();if(n){n=!1;continue}if(o==="WITH"){n=!0;continue}if(Y.has(o))continue;const c=a.endsWith("+"),s=c?a.slice(0,-1):a,r=b(s)??s;i.push(r),c&&i.push(`${r}-or-later`)}return i},"extractSpdxLeaves"),G=y(t=>{if(typeof t.license=="string"){const e=t.license.trim();return e.length>0?e:void 0}if(t.license&&typeof t.license=="object"&&typeof t.license.type=="string"){const e=t.license.type.trim();if(e.length>0)return e}if(Array.isArray(t.licenses)&&t.licenses.length>0){const e=t.licenses.map(i=>i&&typeof i.type=="string"?i.type.trim():"").filter(i=>i.length>0);if(e.length>0)return e.length===1?e[0]:`(${e.join(" OR ")})`}},"declaredLicense"),J=y((t,e)=>{if(e.length===0)return;const i=new Set(e.map(n=>b(n)??n).map(n=>n.toLowerCase()));for(const n of t)if(i.has(n.toLowerCase()))return n},"findDeniedLeaf"),Q=y((t,e)=>{if(e.length===0)return;const i=new Set(e.map(n=>b(n)??n).map(n=>n.toLowerCase()));for(const n of t)if(!i.has(n.toLowerCase()))return n},"findUnallowedLeaf"),X=y((t,e)=>{const i=e.security?.policies?.license;if(!i)return[];const n=i.allow??[],a=i.deny??[];if(n.length===0&&a.length===0)return[];const o=e.security?.acceptedRisks,c=[];for(const s of t.packages){const r=t.manifestData?.get(`${s.name}@${s.version}`),l=r?G(r):void 0;if(!l){n.length>0&&c.push({acceptedRisk:m(s.name,s.version,o,"license"),data:{declaredLicense:null},packageName:s.name,policy:"license",reason:`${s.name}@${s.version} declares no license; allow-list mode requires one of: ${n.join(", ")}`,severity:"block",version:s.version});continue}const p=B(l),u=J(p,a);if(u){c.push({acceptedRisk:m(s.name,s.version,o,"license"),data:{declaredLicense:l,deniedLicense:u},packageName:s.name,policy:"license",reason:`${s.name}@${s.version} uses denied license '${u}' (declared: ${l})`,severity:"block",version:s.version});continue}const f=Q(p,n);f&&c.push({acceptedRisk:m(s.name,s.version,o,"license"),data:{allowList:n,declaredLicense:l,unallowedLicense:f},packageName:s.name,policy:"license",reason:`${s.name}@${s.version} uses license '${f}' which is not on the allow-list (declared: ${l})`,severity:"block",version:s.version})}return c},"evaluateLicensePolicy");var Z=Object.defineProperty,O=v((t,e)=>Z(t,"name",{value:e,configurable:!0}),"c$1");const ee=6e4,te=O((t,e,i)=>{for(const n of i)if(n===t||n===`${t}@${e}`||n.endsWith("*")&&t.startsWith(n.slice(0,-1)))return!0;return!1},"isExcluded"),ie=O(async(t,e)=>{const i=e.security?.policies?.publisherChange;if(i?.mode!=="no-downgrade")return[];const n=i.exclude??[],a=typeof i.ignoreAfter=="number"?i.ignoreAfter*ee:void 0,o=e.security?.acceptedRisks,c=Date.now();return(await w(t.packages,C,async s=>{if(te(s.name,s.version,n))return;const r=await S(s.name,{workspaceRoot:t.workspaceRoot});if(r===void 0)return;if(a!==void 0){const p=r.time?.[s.version],u=p===void 0?Number.NaN:Date.parse(p);if(!Number.isNaN(u)&&c-u>a)return}if(r.versions[s.version]?.dist?.attestations?.provenance!==void 0)return;const l=A(r,s.version);if(l!==void 0)return{acceptedRisk:m(s.name,s.version,o,"publisherChange"),data:{priorVersionWithProvenance:l},packageName:s.name,policy:"publisherChange",reason:`${s.name}@${s.version} dropped the provenance attestation that ${s.name}@${l} carried — publisher trust downgrade.`,severity:"block",version:s.version}})).filter(s=>s!==void 0)},"evaluatePublisherChangePolicy");var ne=Object.defineProperty,h=v((t,e)=>ne(t,"name",{value:e,configurable:!0}),"l$1");const se=h(t=>{for(const e of Object.values(N))for(const i of[e.file,...e.aliases??[]])if(t===i||t.endsWith(`/${i}`)||t.endsWith(`.${i}`))return e.type},"detectLockfileType"),re=h((t,e,i)=>{const n=j(e)?e:F(t,e);let a;try{a=U(n)}catch{return}const o=se(n)??N[i]?.type;if(!o)return;const c=E(a,o);if(c.length===0)return;const s=new Set;for(const r of c)s.add(`${r.name}@${r.version}`);return s},"loadBaselineKeys"),oe=h((t,e)=>{for(const i of e)if(i===t||i.endsWith("*")&&t.startsWith(i.slice(0,-1)))return!0;return!1},"matchesAllowList"),ae=h((t,e)=>{const i=e.security?.policies?.unexpectedDeps;if(!i)return[];const n=i.allow??[],a=i.baselineLockfile;if(n.length===0&&!a)return[];const o=a?re(t.workspaceRoot,a,t.packageManager):void 0,c=e.security?.acceptedRisks,s=[];for(const r of t.packages){const l=n.length===0||oe(r.name,n),p=o?o.has(`${r.name}@${r.version}`):!0;if(l&&p)continue;const u=[],f={};l||(u.push(`not on allow-list (${n.length} entr${n.length===1?"y":"ies"})`),f.allowList=n),!p&&o&&(u.push(`not present in baseline lockfile (${a})`),f.baselineLockfile=a),s.push({acceptedRisk:m(r.name,r.version,c,"unexpectedDeps"),data:f,packageName:r.name,policy:"unexpectedDeps",reason:`${r.name}@${r.version} is unexpected: ${u.join("; ")}`,severity:"block",version:r.version})}return s},"evaluateUnexpectedDepsPolicy");var ce=Object.defineProperty,le=v((t,e)=>ce(t,"name",{value:e,configurable:!0}),"c");const ue=le((t,e)=>{if(!t.osvFindings||t.osvFindings.size===0)return[];const i=e.security?.policies?.vulnerability?.failOn,n=e.security?.acceptedRisks,a=[];for(const o of t.packages){const c=t.osvFindings.get(o.name);if(!(!c||c.length===0))for(const s of c){const r=i?M(s.severity,i)?"block":"warn":"info";a.push({acceptedRisk:m(o.name,o.version,n,"vulnerability"),data:{advisoryId:s.id,aliases:s.aliases??[],cvssScore:s.cvssScore,fixedVersions:s.fixedVersions,severity:s.severity,summary:s.summary},packageName:o.name,policy:"vulnerability",reason:`${s.severity} ${s.id} affects ${o.name}@${o.version}: ${s.summary}`,severity:r,version:o.version})}}return a},"evaluateVulnerabilityPolicy");var pe=Object.defineProperty,d=v((t,e)=>pe(t,"name",{value:e,configurable:!0}),"t");const x=[{evaluate:ue,isConfigured:d(t=>t.security?.policies?.vulnerability!==void 0,"isConfigured"),name:"vulnerability",offlineSupported:!0,surfaces:["audit","doctor"]},{evaluate:X,isConfigured:d(t=>{const e=t.security?.policies?.license;return!!(e&&(e.allow&&e.allow.length>0||e.deny&&e.deny.length>0))},"isConfigured"),name:"license",offlineSupported:!0,surfaces:["audit","doctor","install"]},{evaluate:q,isConfigured:d(t=>{const e=t.security?.policies?.installScripts;return!!(e&&(e.allow&&Object.keys(e.allow).length>0||e.strict===!0))},"isConfigured"),name:"installScripts",offlineSupported:!0,surfaces:["audit","doctor","install"]},{evaluate:ae,isConfigured:d(t=>{const e=t.security?.policies?.unexpectedDeps;return!!(e&&(e.allow&&e.allow.length>0||typeof e.baselineLockfile=="string"))},"isConfigured"),name:"unexpectedDeps",offlineSupported:!0,surfaces:["audit","doctor","install"]},{evaluate:T,isConfigured:d(t=>{const e=t.security?.policies?.firstSeen?.minutes;return typeof e=="number"&&e>0},"isConfigured"),name:"firstSeen",offlineSupported:!1,surfaces:["audit","doctor","install"]},{evaluate:ie,isConfigured:d(t=>t.security?.policies?.publisherChange?.mode==="no-downgrade","isConfigured"),name:"publisherChange",offlineSupported:!1,surfaces:["audit","doctor","install"]}],fe=d((t,e,i)=>x.filter(n=>n.surfaces.includes(t)?i!==void 0?i.has(n.name):n.isConfigured(e):!1),"selectModules"),Ce=d(async(t,e,i)=>{const n=fe(e,i.visConfig,i.enabledPolicies),a=[];for(const o of n){if(t.offline&&!o.offlineSupported){a.push({packageName:"*",policy:o.name,reason:`policy.${o.name} skipped: requires network (--offline)`,severity:"info",version:"*"});continue}try{const c=await o.evaluate(t,i.visConfig);a.push(...c)}catch(c){const s=c instanceof Error?c.message:String(c);a.push({packageName:"*",policy:o.name,reason:`policy.${o.name} failed: ${s}`,severity:"info",version:"*"})}}return a},"evaluatePolicies"),de=(()=>{const t=new Map;for(const e of P)t.set(e.toLowerCase(),e);return t})(),Se=d(()=>x.map(t=>t.name),"getRegisteredPolicyNames"),Ne=d((t,e)=>{if(t===void 0)return;const i=t.trim().toLowerCase();if(i===""||i==="none")return new Set;if(i==="all")return new Set(P);const n=new Set;for(const a of t.split(",").map(o=>o.trim()).filter(o=>o.length>0)){const o=a.replace(/^_+/,"").replaceAll(/_+([a-z])/g,(s,r)=>r.toUpperCase()),c=de.get(o.toLowerCase());c===void 0?e?.(a):n.add(c)}return n},"parsePoliciesFlag");export{we as c,Ce as e,Se as g,Ne as p,M as s};
@@ -0,0 +1,29 @@
1
+ var Fn=Object.defineProperty;var N=(t,e)=>Fn(t,"name",{value:e,configurable:!0});import{createRequire as zn}from"node:module";import __cjs_mod__ from "node:module"; // -- packem CommonJS require shim --
2
+ const require = __cjs_mod__.createRequire(import.meta.url);
3
+ const Wn=zn(import.meta.url),fe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,qn=N(t=>{if(typeof fe<"u"&&fe.versions&&fe.versions.node){const[e,n]=fe.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return fe.getBuiltinModule(t)}return Wn(t)},"__cjs_getBuiltinModule"),{createRequire:Je}=qn("node:module"),Gn=16,tt=32,Hn=64,re=128,xe="positionals";var Kn=Object.defineProperty,Lt=N((t,e)=>Kn(t,"name",{value:e,configurable:!0}),"i$6"),Jn=Object.defineProperty,St=Lt((t,e)=>Jn(t,"name",{value:e,configurable:!0}),"s"),Zn=Object.defineProperty,Tt=St((t,e)=>Zn(t,"name",{value:e,configurable:!0}),"s"),Yn=Object.defineProperty,It=Tt((t,e)=>Yn(t,"name",{value:e,configurable:!0}),"i"),Qn=Object.defineProperty,Mt=It((t,e)=>Qn(t,"name",{value:e,configurable:!0}),"t");Mt(t=>t instanceof Error&&t.type==="VisulimaError","isVisulimaError");let Xn=class extends Error{static{N(this,"V")}static{Lt(this,"g")}static{St(this,"p")}static{Tt(this,"V")}static{It(this,"VisulimaError")}static{Mt(this,"VisulimaError")}loc;title;hint;type="VisulimaError";constructor({cause:e,hint:n,location:i,message:r,name:o,stack:l,title:s}){super(r,{cause:e}),this.title=s,this.name=o,this.stack=l??this.stack,this.loc=i,this.hint=n}setLocation(e){this.loc=e}setName(e){this.name=e}setMessage(e){this.message=e}setHint(e){this.hint=e}};var ei=Object.defineProperty,Vt=N((t,e)=>ei(t,"name",{value:e,configurable:!0}),"t$4"),ti=Object.defineProperty,Dt=Vt((t,e)=>ti(t,"name",{value:e,configurable:!0}),"t"),ni=Object.defineProperty,ii=Dt((t,e)=>ni(t,"name",{value:e,configurable:!0}),"e");let A=class extends Xn{static{N(this,"m")}static{Vt(this,"u")}static{Dt(this,"c")}static{ii(this,"CerebroError")}code;context;constructor(e,n,i){super({message:e,name:"CerebroError"}),this.code=n,this.context=i}};var oi=Object.defineProperty,ri=N((t,e)=>oi(t,"name",{value:e,configurable:!0}),"a$2"),ai=Object.defineProperty,si=ri((t,e)=>ai(t,"name",{value:e,configurable:!0}),"l"),li=Object.defineProperty,T=si((t,e)=>li(t,"name",{value:e,configurable:!0}),"r");const U=T(t=>"Deno"in t,"hasDeno"),B=T(t=>"Bun"in t,"hasBun"),Pe=T(()=>{if(U(globalThis)){const t=globalThis.Deno,e=t.execPath();let n=e;try{const{importMeta:i}=globalThis;i?.url&&(n=i.url)}catch{}return[e,n,...t.args]}return B(globalThis)?globalThis.Bun.process.argv:process.argv},"getArgv"),ci=T(()=>U(globalThis)?globalThis.Deno.cwd():B(globalThis)?globalThis.Bun.process.cwd():process.cwd(),"getCwd"),H=T(()=>{if(U(globalThis)){const t=globalThis.Deno;return new Proxy(t.env.toObject(),{get:T((e,n)=>typeof n=="string"?t.env.get(n):e[n],"get"),has:T((e,n)=>typeof n=="string"?t.env.has(n):n in e,"has"),set:T((e,n,i)=>typeof n=="string"?(i===void 0||t.env.set(n,i),!0):!1,"set")})}return B(globalThis)?globalThis.Bun.process.env:process.env},"getEnv"),Ut=T(()=>U(globalThis)?[]:B(globalThis)?globalThis.Bun.process.execArgv:process.execArgv,"getExecArgv"),Bt=T(()=>U(globalThis)?globalThis.Deno.execPath():B(globalThis)?globalThis.Bun.process.execPath:process.execPath,"getExecPath"),ui=T(()=>{if(U(globalThis)){const t=globalThis.Deno.build?.os??"unknown";return t==="windows"?"win32":t}return B(globalThis)?globalThis.Bun.platform??"unknown":process.platform},"getPlatform"),pi=T(()=>{if(U(globalThis)){const t=globalThis.Deno.build?.arch??"unknown";return t==="x86_64"?"x64":t==="aarch64"?"arm64":t}return B(globalThis)?globalThis.Bun.process.arch:process.arch},"getArch");T(()=>{if(U(globalThis)){const t=globalThis.Deno,e={};return t.version?.deno&&(e.deno=t.version.deno),t.version?.v8&&(e.v8=t.version.v8),t.version?.typescript&&(e.typescript=t.version.typescript),e}if(B(globalThis)){const t=globalThis.Bun,e={...t.process.versions};return t.version&&(e.bun=t.version),e}return process.versions},"getVersions");const W=T((t=0)=>{if(U(globalThis))throw globalThis.Deno.exit(t),new Error("Deno exit failed");if(B(globalThis))throw globalThis.Bun.process.exit(t),new Error("Bun exit failed");process.exit(t)},"exitProcess"),nt=T((t,e)=>{if(U(globalThis))return()=>{};if(B(globalThis)){try{const i=globalThis.Bun;if(i.process?.on)return i.process.on(t,e),()=>{i.process?.removeListener&&i.process.removeListener(t,e)}}catch{}return()=>{}}const n=process;return n.on(t,e),()=>{n.removeListener(t,e)}},"onProcessEvent");var fi=Object.defineProperty,Ne=N((t,e)=>fi(t,"name",{value:e,configurable:!0}),"k$2");const z=new Uint32Array(65536),di=Ne((t,e)=>{const n=t.length,i=e.length,r=1<<n-1;let o=-1,l=0,s=n,p=n;for(;p--;)z[t.charCodeAt(p)]|=1<<p;for(p=0;p<i;p++){let a=z[e.charCodeAt(p)];const c=a|l;a|=(a&o)+o^o,l|=~(a|o),o&=a,l&r&&s++,o&r&&s--,l=l<<1|1,o=o<<1|~(c|l),l&=c}for(p=n;p--;)z[t.charCodeAt(p)]=0;return s},"myers_32"),hi=Ne((t,e)=>{const n=e.length,i=t.length,r=[],o=[],l=Math.ceil(n/32),s=Math.ceil(i/32);for(let u=0;u<l;u++)o[u]=-1,r[u]=0;let p=0;for(;p<s-1;p++){let u=0,v=-1;const w=p*32,y=Math.min(32,i)+w;for(let O=w;O<y;O++)z[t.charCodeAt(O)]|=1<<O;for(let O=0;O<n;O++){const E=z[e.charCodeAt(O)],h=o[O/32|0]>>>O&1,m=r[O/32|0]>>>O&1,b=E|u,$=((E|m)&v)+v^v|E|m;let P=u|~($|v),k=v&$;P>>>31^h&&(o[O/32|0]^=1<<O),k>>>31^m&&(r[O/32|0]^=1<<O),P=P<<1|h,k=k<<1|m,v=k|~(b|P),u=P&b}for(let O=w;O<y;O++)z[t.charCodeAt(O)]=0}let a=0,c=-1;const d=p*32,f=Math.min(32,i-d)+d;for(let u=d;u<f;u++)z[t.charCodeAt(u)]|=1<<u;let g=i;for(let u=0;u<n;u++){const v=z[e.charCodeAt(u)],w=o[u/32|0]>>>u&1,y=r[u/32|0]>>>u&1,O=v|a,E=((v|y)&c)+c^c|v|y;let h=a|~(E|c),m=c&E;g+=h>>>i-1&1,g-=m>>>i-1&1,h>>>31^w&&(o[u/32|0]^=1<<u),m>>>31^y&&(r[u/32|0]^=1<<u),h=h<<1|w,m=m<<1|y,c=m|~(O|h),a=h&O}for(let u=d;u<f;u++)z[t.charCodeAt(u)]=0;return g},"myers_x"),Rt=Ne((t,e)=>{if(t.length<e.length){const n=e;e=t,t=n}return e.length===0?t.length:t.length<=32?di(t,e):hi(t,e)},"distance");Ne((t,e)=>{let n=1/0,i=0;for(let r=0;r<e.length;r++){const o=Rt(t,e[r]);o<n&&(n=o,i=r)}return e[i]},"closest");var mi=Object.defineProperty,gi=N((t,e)=>mi(t,"name",{value:e,configurable:!0}),"a$1"),vi=Object.defineProperty,bi=gi((t,e)=>vi(t,"name",{value:e,configurable:!0}),"a"),yi=Object.defineProperty,wi=bi((t,e)=>yi(t,"name",{value:e,configurable:!0}),"p"),$i=Object.defineProperty,Ft=wi((t,e)=>$i(t,"name",{value:e,configurable:!0}),"e"),Oi=Object.defineProperty,xi=Ft((t,e)=>Oi(t,"name",{value:e,configurable:!0}),"E");const zt=String.raw,it=zt`\p{Emoji}(?:\p{EMod}|[\u{E0020}-\u{E007E}]+\u{E007F}|\uFE0F?\u20E3?)`,Pi=xi(()=>new RegExp(zt`\p{RI}{2}|(?![#*\d](?!\uFE0F?\u20E3))${it}(?:\u200D${it})*`,"gu"),"default");var Ei=Object.defineProperty,Ai=Ft((t,e)=>Ei(t,"name",{value:e,configurable:!0}),"p");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 Rc=/[\u001B\u009B](?:[[()#;?]{0,10}(?:\d{1,4}(?:;\d{0,4})*)?[0-9A-ORZcf-nqry=><]|\]8;;[^\u0007\u001B]{0,100}(?:\u0007|\u001B\\))/g,Fc=/[\u0000-\u0008\n-\u001F\u007F-\u009F]{1,1000}/y,se=Pi(),Ni=/[-_./\s]+/g,ve=/(\u001B\[[0-9;]*[a-z])/i,ot=new RegExp("\\p{Script=Arabic}","u"),Ci=new RegExp("\\p{Script=Bengali}","u"),ie=new RegExp("\\p{Script=Cyrillic}","u"),ji=new RegExp("\\p{Script=Devanagari}","u"),ki=new RegExp("\\p{Script=Ethiopic}","u"),Ue=new RegExp("\\p{Script=Greek}","u"),rt=new RegExp("\\p{Script=Greek}+|\\p{Script=Latin}+|[^\\p{Script=Greek}\\p{Script=Latin}]+","gu"),_i=new RegExp("\\p{Script=Gujarati}","u"),Li=new RegExp("\\p{Script=Gurmukhi}","u"),at=new RegExp("\\p{Script=Hangul}","u"),st=new RegExp("\\p{Script=Hebrew}","u"),Si=new RegExp("\\p{Script=Hiragana}","u"),lt=new RegExp("\\p{Script=Han}","u"),Ti=new RegExp("\\p{Script=Kannada}","u"),Ii=new RegExp("\\p{Script=Katakana}","u"),Mi=new RegExp("\\p{Script=Khmer}","u"),Vi=new RegExp("\\p{Script=Lao}","u"),I=new RegExp("\\p{Script=Latin}","u"),Di=new RegExp("\\p{Script=Malayalam}","u"),Ui=new RegExp("\\p{Script=Myanmar}","u"),Bi=new RegExp("\\p{Script=Oriya}","u"),Ri=new RegExp("\\p{Script=Sinhala}","u"),Fi=new RegExp("\\p{Script=Tamil}","u"),zi=new RegExp("\\p{Script=Telugu}","u"),Wi=new RegExp("\\p{Script=Thai}","u"),qi=new RegExp("\\p{Script=Tibetan}","u"),ct=/[\u02BB\u02BC\u0027]/u,Gi=Ai(t=>t.replace(se,""),"stripEmoji");var Hi=Object.defineProperty,S=N((t,e)=>Hi(t,"name",{value:e,configurable:!0}),"x$2"),Ki=Object.defineProperty,x=S((t,e)=>Ki(t,"name",{value:e,configurable:!0}),"O");const Ji=Je(import.meta.url),de=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Wt=x(t=>{if(typeof de<"u"&&de.versions&&de.versions.node){const[e,n]=de.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return de.getBuiltinModule(t)}return Ji(t)},"__cjs_getBuiltinModule"),{writeFile:Zi,stat:Yi,rm:Qi,readFile:ut,readdir:Xi,mkdir:eo,access:to}=Wt("node:fs/promises"),{createRequire:no}=Wt("node:module"),we=[{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}];var io=Object.defineProperty,oo=x((t,e)=>io(t,"name",{value:e,configurable:!0}),"t$9");let K=class extends A{static{N(this,"D")}static{S(this,"S")}static{x(this,"a")}static{oo(this,"CommandNotFoundError")}commandName;constructor(e,n=[]){const i=`Command "${e}" not found${n.length>0?`. Did you mean: ${n.join(", ")}?`:""}`;super(i,"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(", ")}`)}};var ro=Object.defineProperty,ao=x((t,e)=>ro(t,"name",{value:e,configurable:!0}),"e$7");let qt=class extends A{static{N(this,"at")}static{S(this,"at")}static{x(this,"o")}static{ao(this,"ConflictingOptionsError")}option1;option2;constructor(t,e){super(`Options "${t}" and "${e}" cannot be used together`,"CONFLICTING_OPTIONS",{option1:t,option2:e}),this.name="ConflictingOptionsError",this.option1=t,this.option2=e,this.hint=`Remove either --${t} or --${e}`}};var so=Object.defineProperty,lo=x((t,e)=>so(t,"name",{value:e,configurable:!0}),"e$6");let co=class extends A{static{N(this,"jn")}static{S(this,"jn")}static{x(this,"o")}static{lo(this,"PluginError")}pluginName;constructor(t,e,n){super(`Plugin "${t}" error: ${e}`,"PLUGIN_ERROR",{originalError:n,pluginName:t}),this.name="PluginError",this.pluginName=t,n&&(this.cause=n)}};var uo=Object.defineProperty,pt=x((t,e)=>uo(t,"name",{value:e,configurable:!0}),"d$7");let po=class{static{N(this,"Mn")}static{S(this,"Un")}static{x(this,"p")}static{pt(this,"PluginManager")}logger;plugins=new Map;initialized=!1;cachedDependencyOrder=void 0;constructor(t){this.logger=t}hasPlugins(){return this.plugins.size>0}register(t){if(this.initialized)throw new Error(`Cannot register plugin "${t.name}" after initialization`);if(this.plugins.has(t.name))throw new Error(`Plugin "${t.name}" is already registered`);H().CEREBRO_OUTPUT_LEVEL===String(re)&&this.logger.debug(`registering plugin: ${t.name}`),this.plugins.set(t.name,t),this.cachedDependencyOrder=void 0}async init(t){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 e=this.getDependencyOrder();this.logger.debug(`initializing ${String(e.length)} plugin(s)...`);for(const n of e)if(typeof n.init=="function"){this.logger.debug(`initializing plugin: ${n.name}`);try{await n.init(t)}catch(i){const r=new co(n.name,`Failed to initialize: ${i instanceof Error?i.message:String(i)}`,i instanceof Error?i:void 0);throw this.logger.error(r.message),r}}this.initialized=!0}async executeLifecycle(t,e,n){if(!this.initialized)throw new Error("PluginManager not initialized");if(this.plugins.size===0)return;const i=this.getDependencyOrder();for(const r of i){const o=r[t];if(typeof o=="function"){this.logger.debug(`executing ${t} hook for plugin: ${r.name}`);try{await(t==="afterCommand"?o(e,n):o(e))}catch(l){throw this.logger.error(`Error in ${t} hook for plugin "${r.name}":`,l),l}}}}async executeErrorHandlers(t,e){if(!this.initialized||this.plugins.size===0)return;const n=this.getDependencyOrder();for(const i of n)if(typeof i.onError=="function"){this.logger.debug(`executing error handler for plugin: ${i.name}`);try{await i.onError(t,e)}catch(r){this.logger.error(`Error in error handler for plugin "${i.name}":`,r)}}}getDependencyOrder(){if(this.cachedDependencyOrder!==void 0)return this.cachedDependencyOrder;const t=[],e=new Set,n=new Set,i=pt(r=>{if(e.has(r))return;if(n.has(r))throw new Error(`Circular dependency detected involving plugin "${r}"`);const o=this.plugins.get(r);if(!o)throw new Error(`Plugin "${r}" not found`);if(n.add(r),o.dependencies)for(const l of o.dependencies)i(l);n.delete(r),e.add(r),t.push(o)},"visit");for(const r of this.plugins.keys())i(r);return this.cachedDependencyOrder=t,t}validateDependencies(){for(const t of this.plugins.values())if(t.dependencies){for(const e of t.dependencies)if(!this.plugins.has(e))throw new Error(`Plugin "${t.name}" depends on "${e}" which is not registered`)}}};var fo=Object.defineProperty,ho=x((t,e)=>fo(t,"name",{value:e,configurable:!0}),"n$a");const be=ho(t=>t.type?.name==="Boolean","optionIsBoolean");var mo=Object.defineProperty,Gt=x((t,e)=>mo(t,"name",{value:e,configurable:!0}),"p$9");const go=Gt(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},"getTypeLabel"),ft=Gt(t=>(be(t)||(t.typeLabel=t.typeLabel??go(t),t.defaultOption&&(t.typeLabel=`${t.typeLabel} (D)`),t.required&&(t.typeLabel=`${t.typeLabel} (R)`)),t),"mapOptionTypeLabel");var vo=Object.defineProperty,Ht=x((t,e)=>vo(t,"name",{value:e,configurable:!0}),"e$4");const bo=new RegExp(/^-([^\d-])$/),yo=new RegExp(/^--(\S+)/),wo=new RegExp(/^-([^\d-]{2,})$/),$o=Ht(t=>bo.test(t)||yo.test(t)||wo.test(t),"isOption"),Oo=Ht((t,e)=>{const n=e[0]&&$o(e[0])||e.length===0?null:e.shift()??null;if(!t.includes(n)){const i=new Error(`Command not recognised: ${String(n)}`);throw i.command=n,i.name="INVALID_COMMAND",i}return{argv:e,command:n}},"commandLineCommands");var xo=Object.defineProperty,Kt=x((t,e)=>xo(t,"name",{value:e,configurable:!0}),"i$b"),Po=Object.defineProperty,Jt=Kt((t,e)=>Po(t,"name",{value:e,configurable:!0}),"i"),Eo=Object.defineProperty,Zt=Jt((t,e)=>Eo(t,"name",{value:e,configurable:!0}),"s"),Ao=Object.defineProperty,Yt=Zt((t,e)=>Ao(t,"name",{value:e,configurable:!0}),"i"),No=Object.defineProperty,Qt=Yt((t,e)=>No(t,"name",{value:e,configurable:!0}),"t");Qt(t=>t instanceof Error&&t.type==="VisulimaError","isVisulimaError");let Ce=class extends Error{static{N(this,"ue")}static{S(this,"ce")}static{x(this,"v")}static{Kt(this,"g")}static{Jt(this,"p")}static{Zt(this,"V")}static{Yt(this,"VisulimaError")}static{Qt(this,"VisulimaError")}loc;title;hint;type="VisulimaError";constructor({cause:e,hint:n,location:i,message:r,name:o,stack:l,title:s}){super(r,{cause:e}),this.title=s,this.name=o,this.stack=l??this.stack,this.loc=i,this.hint=n}setLocation(e){this.loc=e}setName(e){this.name=e}setMessage(e){this.message=e}setHint(e){this.hint=e}};var Co=Object.defineProperty,Xt=x((t,e)=>Co(t,"name",{value:e,configurable:!0}),"o$b"),jo=Object.defineProperty,en=Xt((t,e)=>jo(t,"name",{value:e,configurable:!0}),"o"),ko=Object.defineProperty,_o=en((t,e)=>ko(t,"name",{value:e,configurable:!0}),"i");let Lo=class tn extends Ce{static{N(this,"mt")}static{S(this,"ht")}static{x(this,"a")}static{Xt(this,"a")}static{en(this,"t")}static{_o(this,"AlreadySetError")}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,tn.prototype)}};var So=Object.defineProperty,nn=x((t,e)=>So(t,"name",{value:e,configurable:!0}),"t$7"),To=Object.defineProperty,on=nn((t,e)=>To(t,"name",{value:e,configurable:!0}),"e"),Io=Object.defineProperty,Mo=on((t,e)=>Io(t,"name",{value:e,configurable:!0}),"e");let dt=class rn extends Ce{static{N(this,"yt")}static{S(this,"vt")}static{x(this,"n")}static{nn(this,"n")}static{on(this,"o")}static{Mo(this,"UnknownOptionError")}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,rn.prototype)}};var Vo=Object.defineProperty,an=x((t,e)=>Vo(t,"name",{value:e,configurable:!0}),"a$9"),Do=Object.defineProperty,sn=an((t,e)=>Do(t,"name",{value:e,configurable:!0}),"a"),Uo=Object.defineProperty,Bo=sn((t,e)=>Uo(t,"name",{value:e,configurable:!0}),"o");let Ro=class ln extends Ce{static{N(this,"Ot")}static{S(this,"bt")}static{x(this,"n")}static{an(this,"o")}static{sn(this,"e")}static{Bo(this,"UnknownValueError")}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,ln.prototype)}};var Fo=Object.defineProperty,cn=x((t,e)=>Fo(t,"name",{value:e,configurable:!0}),"i$8"),zo=Object.defineProperty,un=cn((t,e)=>zo(t,"name",{value:e,configurable:!0}),"i"),Wo=Object.defineProperty,qo=un((t,e)=>Wo(t,"name",{value:e,configurable:!0}),"i");let M=class pn extends Ce{static{N(this,"Nt")}static{S(this,"Pt")}static{x(this,"a")}static{cn(this,"o")}static{un(this,"e")}static{qo(this,"InvalidDefinitionsError")}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,pn.prototype)}};var Go=Object.defineProperty,Ho=x((t,e)=>Go(t,"name",{value:e,configurable:!0}),"z"),Ko=Object.defineProperty,ce=Ho((t,e)=>Ko(t,"name",{value:e,configurable:!0}),"S"),Jo=Object.defineProperty,je=ce((t,e)=>Jo(t,"name",{value:e,configurable:!0}),"o");const ht=je(t=>t===Boolean||typeof t=="function"&&t.name.startsWith("Boolean"),"isBooleanType"),mt=je(t=>t===Number||typeof t=="function"&&t.name==="Number","isNumberType"),gt=je(t=>t===String||typeof t=="function"&&t.name==="String","isStringType"),Zo=je((t,e)=>Array.isArray(t)?ht(e)?t.map(Boolean):mt(e)?t.map(Number):gt(e)?t.map(String):t.map(n=>e(String(n))):t===null?null:ht(e)?!!t:mt(e)?Number(t):gt(e)?typeof t=="string"?t:String(t):e(typeof t=="string"?t:String(t)),"convertValue");var Yo=Object.defineProperty,Qo=ce((t,e)=>Yo(t,"name",{value:e,configurable:!0}),"e");const L=Qo((t,e,n,...i)=>{t&&console.debug(`[command-line-args:${n}] ${e}`,...i)},"debug");var Xo=Object.defineProperty,te=ce((t,e)=>Xo(t,"name",{value:e,configurable:!0}),"h$1");const er=/-([a-z])/g,tr=/^\d+$/,Be=te(t=>t===Boolean||typeof t=="function"&&t.name.startsWith("Boolean"),"isBooleanType"),nr=te(t=>t.codePointAt(0)===95,"isSpecialKey"),vt=te((t,e)=>Array.isArray(t)?[...t,...e]:[t,...e],"appendToArrayMultiple"),bt=te(t=>t==="__proto__"||t==="constructor"||t==="prototype","isUnsafeKey"),yt=te((t,e,n,i=!1)=>{t[e]===void 0?t[e]=i?[n]:n:i&&Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]},"createOrAppendArray"),ir=te((t,e,n,i,r)=>{let o=e.get(t)??n.get(t);if(!o&&i){const l=t.toLowerCase();o=i.get(l)??r?.get(l)}return o},"getDefinition"),or=te((t,e,n,i)=>{const r=n.debug??!1;L(r,"resolveArgs called with options:","resolver",{partial:n.partial,stopAtFirstUnknown:n.stopAtFirstUnknown}),L(r,"Starting argument resolution","resolver"),L(r,"Tokens:","resolver",t),L(r,"Definitions:","resolver",e),L(r,"Processing tokens...","resolver");const o=new Map,l=new Map,s=n.caseInsensitive?new Map:void 0,p=n.caseInsensitive?new Map:void 0,a=n.camelCase?new Map:void 0,c=n.camelCase?new Map:void 0;for(const h of e)if(o.set(h.name,h),h.alias&&l.set(h.alias,h),n.caseInsensitive&&s&&(s.set(h.name.toLowerCase(),h),h.alias&&p&&p.set(h.alias.toLowerCase(),h)),n.camelCase&&a&&c){const m=h.name.replaceAll(er,(b,$)=>$.toUpperCase());a.set(h.name,m),c.set(m,h.name)}const d={},f={},g=[],u=new Set;let v=!1;const w=e.find(h=>h.defaultOption),y=e.some(h=>h.group),O=e.some(h=>h.type===Number);for(let h=0;h<t.length;h++){const m=t[h];if(m.kind==="option-terminator"){d._unknown=i.slice(m.index),v=!0;break}if(m.kind==="option"&&m.name){let b=ir(m.name,o,l,s,p);if(!b&&m.value===void 0&&O&&tr.test(m.name)){const C=e.find(R=>R.type===Number);C&&(b=C,m.value=m.name,m.name=C.name)}const $=b?b.name:m.name,P=b?.multiple,k=b?.lazyMultiple;if(f[$]!==void 0&&!P&&!k&&!n.partial)throw new Lo($);if(!b&&n.partial){const C=m.rawName??`--${m.name}${m.value!==void 0&&m.inlineValue?`=${m.value}`:""}`;g.push({index:m.index,value:C});continue}if(!b&&n.stopAtFirstUnknown){d._unknown=i.slice(m.index);break}if(!b&&!n.partial)throw new dt(m.name);if(m.value===void 0){const C=t[h+1],R=C?.kind==="option"&&!("name"in C)&&C.value!==void 0,V=C&&b&&!(b.type&&Be(b.type))&&(C.kind==="positional"||R),Rn=b&&b.defaultOption&&!b.multiple&&!b.lazyMultiple;if(V&&(!b?.defaultOption||Rn))if(P){let F=h+1;const De=[];for(;F<t.length&&(t[F].kind==="positional"||t[F].kind==="option"&&!("name"in t[F])&&t[F].value!==void 0);)De.push(t[F].value),u.add(t[F].index),F++;f[$]=f[$]===void 0?De:vt(f[$],De),h=F-1}else k?(yt(f,$,C.value,!0),u.add(C.index),h++):(f[$]=C.value,u.add(C.index),h++);else b?.type&&Be(b.type)?yt(f,$,!0,P):f[$]=P?[]:null}else{let{value:C}=m;if(b?.type&&Be(b.type))switch(C){case"":{if(n.partial)f._unknown??=[],f._unknown.push(`${m.rawName??`--${m.name}`}${m.value?`=${m.value}`:""}`),C=!0;else throw new dt(m.name);break}case"false":{C=!1;break}case"true":{C=!0;break}default:C=!0}const R=[C];if(P){let V=h+1;for(;V<t.length&&t[V].kind==="positional";)R.push(t[V].value),u.add(t[V].index),V++;h=V-1}f[$]===void 0?f[$]=P||k?R:C:P||k?f[$]=vt(f[$],R):f[$]=C}}else if(m.kind==="positional"&&n.stopAtFirstUnknown&&!u.has(m.index)&&!w){L(r,`Found unconsumed positional token at index ${String(m.index)}, stopping processing`,"resolver"),d._unknown=i.slice(m.index);break}}for(const[h,m]of Object.entries(f)){const b=o.get(h);b&&(b.multiple||b.lazyMultiple)&&!Array.isArray(m)&&(f[h]=[m])}let E=Number.POSITIVE_INFINITY;if(n.stopAtFirstUnknown&&!v){for(const h of t)if(h.kind==="option"&&!o.has(h.name??"")&&!l.has(h.name??"")&&(!n.caseInsensitive||!s?.has(h.name?.toLowerCase()??"")&&!p?.has(h.name?.toLowerCase()??""))){E=h.index;break}}if(w){const h=[],m=[];for(const b of t)b.kind==="positional"&&!u.has(b.index)&&b.index<E&&(h.push(b.value),m.push(b));if(h.length>0){const b=f[w.name],$=w.multiple??w.lazyMultiple;b===void 0?$?(m.forEach(P=>u.add(P.index)),f[w.name]=h):(u.add(m[0].index),f[w.name]=h[0]):$&&(m.forEach(P=>u.add(P.index)),f[w.name]=Array.isArray(b)?[...h,...b]:[...h,b])}}if(!n.partial){for(const h of t)if(h.kind==="positional"&&!u.has(h.index))throw new Ro(i[h.index])}if(n.partial&&!n.stopAtFirstUnknown){const h=[...g];if(f._unknown){const m=new Map;for(const[b,$]of i.entries())m.set($,b);for(const b of f._unknown){const $=m.get(b);$!==void 0&&h.push({index:$,value:b})}}for(const m of t)m.kind==="positional"&&!u.has(m.index)&&h.push({index:m.index,value:i[m.index]});h.length>0&&(h.sort((m,b)=>m.index-b.index),d._unknown=h.map(m=>m.value))}if(n.stopAtFirstUnknown&&!v){const h=t.findIndex($=>$.kind==="option"&&!o.has($.name??"")&&!l.has($.name??"")&&(!n.caseInsensitive||!s?.has($.name?.toLowerCase()??"")&&!p?.has($.name?.toLowerCase()??""))),m=t.findIndex($=>$.kind==="positional"&&!u.has($.index));let b=-1;if(h!==-1&&m!==-1?b=Math.min(h,m):h!==-1?b=h:m!==-1&&(b=m),b>=0){const $=t[b].index;d._unknown=i.slice($)}}else g.length>0&&!n.partial&&(d._unknown=g.map(h=>h.value));for(const[h,m]of Object.entries(f)){const b=n.camelCase?a?.get(h)??h:h,$=o.get(h);d[b]=$?.type?Zo(m,$.type):m===void 0?null:m}for(const h of e){const m=n.camelCase?a?.get(h.name)??h.name:h.name;!(m in d)&&h.defaultValue!==void 0&&(h.multiple??h.lazyMultiple?d[m]=Array.isArray(h.defaultValue)?[...h.defaultValue]:[h.defaultValue]:d[m]=h.defaultValue)}if(y){const h={},m={},b={};for(const P of e)if(P.group){const k=Array.isArray(P.group)?P.group:[P.group];for(const C of k)bt(C)||(h[C]??={})}for(const P of Object.keys(d))if(!nr(P)){m[P]=d[P];let k=P;n.camelCase&&(k=c?.get(P)??P);const C=o.get(k);if(C?.group){const R=Array.isArray(C.group)?C.group:[C.group];for(const V of R)bt(V)||h[V]&&(h[V][P]=d[P])}else b[P]=d[P]}const $={_all:m};for(const[P,k]of Object.entries(h))$[P]=k;Object.keys(b).length>0&&($._none=b),d._unknown&&($._unknown=d._unknown),Object.keys(d).forEach(P=>delete d[P]),Object.assign(d,$)}return L(r,"Final parsed result:","resolver",d),d},"resolveArgs");var rr=Object.defineProperty,ne=ce((t,e)=>rr(t,"name",{value:e,configurable:!0}),"l");const Q="-".codePointAt(0),Y="=",ar=Y.codePointAt(0),sr="--",lr="-",cr="--",fn=ne(t=>t.length>2&&t.startsWith(cr),"hasLongOptionPrefix"),ur=ne(t=>fn(t)&&!t.includes(Y,3),"isLongOption"),pr=ne(t=>fn(t)&&t.includes(Y,3),"isLongOptionAndValue"),fr=ne(t=>t!==void 0&&t.length>0&&t.codePointAt(0)!==Q,"hasOptionValue"),dr=ne(t=>{if(t.length!==2||t.codePointAt(0)!==Q||t.codePointAt(1)===Q)return!1;const e=t.codePointAt(1);return e!==void 0&&(e<48||e>57)},"isShortOption"),hr=ne(t=>!(t.length<=2||t.codePointAt(0)!==Q||t.codePointAt(1)===Q),"isShortOptionGroup"),mr=ne(t=>{const e=[],n=[...t];let i=-1,r=0;for(;n.length>0;){const o=n.shift();if(o===void 0)break;const l=n[0];if(r>0?r--:i++,o===sr){e.push({index:i,kind:"option-terminator"});const s=n.map((p,a)=>({index:i+a+1,kind:"positional",value:p}));e.push(...s),i+=n.length;break}if(dr(o)){const s=o.charAt(1);let p;r?(e.push({index:i,kind:"option",name:s,rawName:o,value:p}),r===1&&fr(l)&&(p=n.shift(),e.push({index:i,kind:"option",value:p}))):e.push({index:i,kind:"option",name:s,rawName:o,value:p}),p!==void 0&&++i;continue}if(hr(o)&&!o.includes(Y)){const s=[];let p="",a=!1;for(let c=1;c<o.length;c++){const d=o.charAt(c);a?p+=d:d.codePointAt(0)===ar?a=!0:s.push(`${lr}${d}`)}if(a)if(s.length>0){const c=s.pop();s.push(`${c}=${p}`)}else s.push(p);n.unshift(...s),r=s.length;continue}if(ur(o)){const s=o.slice(2);e.push({index:i,kind:"option",name:s,rawName:o});continue}if(pr(o)){const s=o.indexOf(Y),p=o.slice(2,s),a=o.slice(s+1);e.push({index:i,inlineValue:!0,kind:"option",name:p,rawName:o,value:a});continue}if(o.length>2&&o.codePointAt(0)===Q&&o.codePointAt(1)!==Q&&o.includes(Y)){const s=o.indexOf(Y),p=o.charAt(1),a=o.slice(s+1);e.push({index:i,inlineValue:!0,kind:"option",name:p,rawName:o,value:a});continue}e.push({index:i,kind:"positional",value:o})}return e},"parseArgsTokens");var gr=Object.defineProperty,Ze=ce((t,e)=>gr(t,"name",{value:e,configurable:!0}),"d");const vr=/\d/,br=Ze(t=>t!=null&&(t===Boolean||typeof t=="function"&&t.name.startsWith("Boolean")),"isBooleanType"),yr=Ze(t=>typeof t=="function","isValidCustomTypeFunction"),wr=Ze((t,e,n)=>{const i=n?.debug??!1;L(i,"Validating definitions:","validation",t,"caseInsensitive:",e);const r=new Set,o=new Set,l=new Set,s=new Set;let p=0;for(const a of t){if(L(i,"Checking definition:","validation",a),!a.name)throw L(i,"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(r.has(a.name)||e&&l.has(c))throw new M(`Invalid option definition: duplicate name '${a.name}'`);if(o.has(a.name)||e&&s.has(c))throw new M(`Invalid option definition: name '${a.name}' conflicts with an existing alias`);if(r.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(vr.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(o.has(a.alias)||e&&s.has(d))throw new M(`Invalid option definition: duplicate alias '${a.alias}'`);if(r.has(a.alias)||e&&l.has(d))throw new M(`Invalid option definition: alias '${a.alias}' conflicts with an existing option name`);o.add(a.alias),e&&s.add(d)}if(a.defaultOption&&(p++,a.type!==void 0&&br(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"&&yr(a.type)))throw new M("Invalid option definition: invalid type")}if(p>1)throw L(i,"Validation failed: multiple defaultOptions not allowed","validation"),new M("Invalid option definition: multiple defaultOptions not allowed");L(i,"Validation completed successfully","validation")},"validateDefinitions");var $r=Object.defineProperty,Or=ce((t,e)=>$r(t,"name",{value:e,configurable:!0}),"O");const xr=Or((t,e={})=>{const n=e.debug??!1;L(n,"Starting command-line-args parsing","index"),L(n,"Options:","index",e);const i={...e};i.stopAtFirstUnknown&&(i.partial=!0);const r=Array.isArray(t)?t:[t];L(n,"Normalized definitions:","index",r),wr(r,i.caseInsensitive,n?i:void 0);let{argv:o}=i;if(!o&&(o=process.argv.slice(2),process.execArgv.length>0)){const a=new Set(process.execArgv);o=o.filter(c=>!a.has(c))}L(n,"Using argv:","index",o);let l=o;i.caseInsensitive&&(l=o.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.slice(1).split("=",2),d=c[0],f=c[1];if(!d)return a;const g=d.toLowerCase();return f===void 0?`-${g}`:`-${g}=${f}`}return a}));const s=mr(l.map(String));L(n,"Tokenized arguments:","index",s);const p=or(s,r,i,o);return L(n,"Command-line-args parsing completed","index"),p},"commandLineArgs");var Pr=Object.defineProperty,Er=x((t,e)=>Pr(t,"name",{value:e,configurable:!0}),"b$2");let Ar=class{static{N(this,"Yi")}static{S(this,"Ki")}static{x(this,"m")}static{Er(this,"EmptyToolbox")}result;argv;options;argument;command;commandName;env;logger;console;fs;process;runtime;rawUnknown;constructor(t,e){this.commandName=t,this.command=e}};var Nr=Object.defineProperty,Cr=x((t,e)=>Nr(t,"name",{value:e,configurable:!0}),"n$6");let Re=class extends A{static{N(this,"Oe")}static{S(this,"be")}static{x(this,"i")}static{Cr(this,"CommandLoaderError")}commandName;constructor(e,n,i){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.",i!==void 0&&(this.cause=i)}};var jr=Object.defineProperty,kr=x((t,e)=>jr(t,"name",{value:e,configurable:!0}),"f$5");const _r=/^-{1,2}(\w+)(=(.+))?$/,dn=kr((t,e,n,i)=>{const r=_r.exec(t);if(r===null)return{};const o=r[1];if(!o)return{};const l=n&&i?n.get(o)??i.get(o):e.find(s=>s.name===o||s.alias===o);return l!==void 0?{argName:l.name,argValue:r[3],option:l}:{}},"getParameterOption");var Lr=Object.defineProperty,Ke=x((t,e)=>Lr(t,"name",{value:e,configurable:!0}),"e$3");const wt=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)},"convertType"),Sr=new Set(["0","1","false","true"]),Tr=Ke((t,e,n,i)=>{if(e.length===0||t.length===0)return{};const r=Ke((o,l)=>{const{argName:s,argValue:p,option:a}=dn(l,e,n,i),{lastOption:c}=o;return a&&be(a)&&p&&s?o.partial[s]=wt(p,a):o.lastName&&c&&be(c)&&Sr.has(l)&&(o.partial[o.lastName]=wt(l,c)),{lastName:s,lastOption:a,partial:o.partial}},"getBooleanValue");return t.reduce(r,{partial:{}}).partial},"getBooleanValues");var Ir=Object.defineProperty,$t=x((t,e)=>Ir(t,"name",{value:e,configurable:!0}),"s$8");const Mr=new Set(["0","1","false","true"]),Vr=$t((t,e,n,i)=>{if(e.length===0||t.length===0)return t;const r=$t((o,l)=>{const{argValue:s,option:p}=dn(l,e,n,i),{lastOption:a}=o;if(a&&be(a)&&Mr.has(l)){const{args:c}=o;return{args:c.slice(0,-1)}}return p&&be(p)&&s?{args:o.args}:{args:[...o.args,l],lastOption:p}},"removeBooleanArguments");return t.reduce(r,{args:[]}).args},"removeBooleanValues");var Dr=Object.defineProperty,Ur=x((t,e)=>Dr(t,"name",{value:e,configurable:!0}),"o$8");const Br=Ur(t=>{const e=new Map;for(const n of t){const i=e.get(n.name);i?e.set(n.name,{...i,...n}):e.set(n.name,n)}return[...e.values()]},"mergeArguments");var Rr=Object.defineProperty,ke=x((t,e)=>Rr(t,"name",{value:e,configurable:!0}),"o$7");const Fr=ke(t=>{if(t===void 0)return;const e=t.toLowerCase().trim();return e==="true"||e==="1"||e==="yes"||e==="on"},"transformBooleanEnv"),zr=ke((t,e)=>{if(!t.type)return e;if(e!==void 0){if(t.type===Boolean||typeof t.type=="function"&&t.type.name==="Boolean")return Fr(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)}},"transformEnvValue"),Wr=/_./g,qr=/^[A-Z]/,Gr=ke(t=>t.toLowerCase().replaceAll(Wr,e=>e[1]?.toUpperCase()??e).replace(qr,e=>e.toLowerCase()),"toCamelCase"),Hr=ke(t=>{if(!t||t.length===0)return{};const e={},n=H();for(const i of t){const r=n[i.name],o=zr(i,r),l=o===void 0?i.defaultValue:o,s=Gr(i.name);e[s]=l}return e},"processEnvVariables");var Kr=Object.defineProperty,ye=x((t,e)=>Kr(t,"name",{value:e,configurable:!0}),"a$5");const Jr=ye(t=>{const e=new Map,n=new Map;for(const i of t)if(e.set(i.name,i),i.alias){const r=Array.isArray(i.alias)?i.alias:[i.alias];for(const o of r)n.set(o,i)}return{optionMapByAlias:n,optionMapByName:e}},"buildOptionMaps"),hn=ye(async t=>{if(typeof t.__resolvedExecute__=="function")return t.__resolvedExecute__;if(typeof t.loader!="function")throw new Re(t.name,"no execute or loader defined");let e;try{e=await t.loader()}catch(i){throw new Re(t.name,i instanceof Error?i.message:String(i),i)}const n=e.default;if(typeof n!="function")throw new Re(t.name,"loader did not return a module with a default-exported handler function");return t.__resolvedExecute__=n,n},"loadLazyHandler"),Zr=ye((t,e,n,i)=>{const r=new Ar(t.name,t),{_all:o,_unknown:l,positionals:s}=e,p=Object.keys(n).length>0?{...o,...n}:o;xe in p&&delete p[xe],r.argument=s?.[xe]??[],r.rawUnknown=[...l??[]];const a=Object.keys(i).length>0;return r.options=a?{...p,...i}:p,r.env=Hr(t.env),r},"prepareToolbox"),Yr=ye((t,e,n)=>{const i=t.options??[],r=i.length>0;let o=Br(r?[...i,...n]:n);if(o.length>0){for(const a of o)if(a.multiple&&a.lazyMultiple)throw new Error(`Argument "${a.name}" cannot have both multiple and lazyMultiple options, please choose one.`)}t.argument&&(o=[{defaultOption:!0,description:t.argument.description,group:"positionals",multiple:!0,name:xe,type:t.argument.type,typeLabel:t.argument.typeLabel},...o]);let l,s;if(r){const{optionMapByAlias:a,optionMapByName:c}=Jr(i);l=Vr(e,i,c,a),s=Tr(e,i,c,a)}else l=e,s={};const p=xr(o,{argv:l,camelCase:!0,partial:!0,stopAtFirstUnknown:!0});return{arguments_:o,booleanValues:s,parsedArgs:p}},"processCommandArgs"),oe=ye(async(t,e,n)=>typeof t.execute=="function"?t.execute(e):(await hn(t))(e),"executeCommand");var Qr=Object.defineProperty,Xr=x((t,e)=>Qr(t,"name",{value:e,configurable:!0}),"n$5");let ea=class extends A{static{N(this,"No")}static{S(this,"$a")}static{x(this,"s")}static{Xr(this,"CommandValidationError")}commandName;missingOptions;constructor(t,e){super(`Command "${t}" is missing required options: ${e.join(", ")}`,"COMMAND_VALIDATION_ERROR",{commandName:t,missingOptions:e}),this.name="CommandValidationError",this.commandName=t,this.missingOptions=e,this.hint=`Provide the following required options: ${e.join(", ")}`}};var ta=Object.defineProperty,na=x((t,e)=>ta(t,"name",{value:e,configurable:!0}),"t$5");const Ot=na((t,e,n=!1)=>{const i=[];for(const r of t)if(!(!n&&!r.required)&&e[r.name]===void 0){if(r.type?.name==="Boolean"){e[r.name]=!1;continue}i.push(r)}return i},"listMissingArguments");var ia=Object.defineProperty,mn=x((t,e)=>ia(t,"name",{value:e,configurable:!0}),"n$4");const oa=mn((t,e)=>e.includes(t)?!0:Math.abs(t.length-e.length)>t.length/2?!1:Rt(t,e)<=t.length/3,"isSimilar"),Z=mn((t,e)=>{const n=t.toLowerCase();return e.filter(i=>oa(i.toLowerCase(),n))},"findAlternatives");var ra=Object.defineProperty,_e=x((t,e)=>ra(t,"name",{value:e,configurable:!0}),"a$4");const aa=_e((t,e)=>{const n=[];if(t._unknown&&t._unknown.forEach(i=>{const r=i.startsWith("--");let o=`Found unknown ${r?"option":"argument"} "${i}"`;if(r){const l=Z(i.replace("--",""),(e.options??[]).map(s=>s.name));if(l.length>0){const[s,...p]=l.map(a=>`--${a}`);o+=p.length>0?`, did you mean ${s??""} or ${p.join(", ")}?`:`, did you mean ${s??""}?`}}n.push(o)}),n.length>0)throw new Error(n.join(`
4
+ `))},"validateUnknownOptions"),sa=_e((t,e,n)=>{const i=n.__requiredOptions__,r=i?Ot(i,e,!0):Ot(t,e,!1);if(r.length>0)throw new ea(n.name,r.map(o=>o.name));e._unknown&&e._unknown.length>0&&!n.argument&&aa(e,n)},"validateRequiredOptions"),la=_e((t,e,n)=>{const i=n.__conflictingOptions__??t.filter(r=>r.conflicts!==void 0);if(i.length>0){const r=i.find(o=>Array.isArray(o.conflicts)?o.conflicts.some(l=>e[l]!==void 0)&&e[o.name]!==void 0:e[o.conflicts]!==void 0&&e[o.name]!==void 0);if(r)throw new qt(r.name,typeof r.conflicts=="string"?r.conflicts:r.conflicts?.[0]??"unknown")}},"validateConflictingOptions"),ca=_e(t=>{if(!Array.isArray(t.options))return;const e=new Map,n=new Map;for(const r of t.options){if(r.name){const o=e.get(r.name)??[];o.push(r),e.set(r.name,o)}if(typeof r.alias=="string"&&r.alias.length>0){const o=n.get(r.alias)??[];o.push(r),n.set(r.alias,o)}else if(Array.isArray(r.alias)){for(const o of r.alias)if(o.length>0){const l=n.get(o)??[];l.push(r),n.set(o,l)}}}const i=[];for(const[r,o]of e)o.length>1&&i.push(`Duplicate option name "${r}" in command "${t.name}": ${JSON.stringify(o)}`);for(const[r,o]of n)o.length>1&&i.push(`Duplicate option alias "-${r}" used by options ${o.map(l=>`"${l.name}"`).join(", ")} in command "${t.name}"`);if(i.length>0)throw new Error(i.join(`
5
+ `))},"validateDuplicateOptions");var ua=Object.defineProperty,Ye=x((t,e)=>ua(t,"name",{value:e,configurable:!0}),"s$4");const pa=Ye((t,e)=>{if(e.length===0)return{argv:[],commandPath:void 0};const n=[];let i;for(let r=1;r<=e.length;r+=1){const o=e[r-1];if(o===void 0||o.startsWith("-"))break;n.push(o);const l=n.join(" ");t.has(l)&&(i={commandPath:[...n],depth:r})}return i?{argv:e.slice(i.depth),commandPath:i.commandPath}:{argv:e,commandPath:void 0}},"parseNestedCommand"),J=Ye(t=>t.join(" "),"getCommandPathKey"),xt=Ye((t,e)=>e&&e.length>0?[...e,t]:[t],"getFullCommandPath");var fa=Object.defineProperty,gn=x((t,e)=>fa(t,"name",{value:e,configurable:!0}),"i$5"),da=Object.defineProperty,vn=gn((t,e)=>da(t,"name",{value:e,configurable:!0}),"r"),ha=Object.defineProperty,ma=vn((t,e)=>ha(t,"name",{value:e,configurable:!0}),"c");let bn=class{static{N(this,"xt")}static{S(this,"xt")}static{x(this,"l")}static{gn(this,"y")}static{vn(this,"s")}static{ma(this,"LRUCache")}capacity;cache;keyOrder;constructor(t){this.capacity=t,this.cache=new Map,this.keyOrder=[]}get(t){if(this.cache.has(t))return this.keyOrder=this.keyOrder.filter(e=>e!==t),this.keyOrder.push(t),this.cache.get(t)}has(t){return this.cache.has(t)}set(t,e){if(this.cache.has(t))this.keyOrder=this.keyOrder.filter(n=>n!==t);else if(this.cache.size>=this.capacity){const n=this.keyOrder.shift();n!==void 0&&this.cache.delete(n)}this.cache.set(t,e),this.keyOrder.push(t)}delete(t){this.cache.delete(t),this.keyOrder=this.keyOrder.filter(e=>e!==t)}clear(){this.cache.clear(),this.keyOrder=[]}size(){return this.cache.size}};var ga=Object.defineProperty,va=x((t,e)=>ga(t,"name",{value:e,configurable:!0}),"r$5"),ba=Object.defineProperty,ya=va((t,e)=>ba(t,"name",{value:e,configurable:!0}),"a"),wa=Object.defineProperty,$a=ya((t,e)=>wa(t,"name",{value:e,configurable:!0}),"s");const Oa=$a((t,e)=>typeof t!="string"||t===""?"":(e?.locale?t[0].toLocaleLowerCase(e.locale):t[0].toLowerCase())+t.slice(1),"lowerFirst");var xa=Object.defineProperty,Pa=x((t,e)=>xa(t,"name",{value:e,configurable:!0}),"I"),Ea=Object.defineProperty,Le=Pa((t,e)=>Ea(t,"name",{value:e,configurable:!0}),"W");const Aa=no(import.meta.url),he=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Na=Le(t=>{if(typeof he<"u"&&he.versions&&he.versions.node){const[e,n]=he.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return he.getBuiltinModule(t)}return Aa(t)},"__cjs_getBuiltinModule"),{stripVTControlCharacters:Ca}=Na("node:util");var ja=Object.defineProperty,ka=Le((t,e)=>ja(t,"name",{value:e,configurable:!0}),"g");const Fe=new bn(1e3),_a=/[.*+?^${}()|[\]\\]/g,La=ka(t=>{const e=t.join("");if(Fe.has(e))return Fe.get(e);const n=t.map(r=>r.replaceAll(_a,String.raw`\$&`)).join("|"),i=new RegExp(n,"g");return Fe.set(e,i),i},"getSeparatorsRegex");var Sa=Object.defineProperty,Ta=Le((t,e)=>Sa(t,"name",{value:e,configurable:!0}),"t");const Ia=Ta(t=>{const e=[];let n=0,i;for(se.lastIndex=0;(i=se.exec(t))!==null;)i.index>n&&e.push(t.slice(n,i.index)),e.push(i[0]),n=se.lastIndex;return n<t.length&&e.push(t.slice(n)),e.filter(Boolean)},"splitByEmoji");var Ma=Object.defineProperty,j=Le((t,e)=>Ma(t,"name",{value:e,configurable:!0}),"u");const Va=/[ČŠŽĐ]/i,yn=new Uint8Array(128),wn=new Uint8Array(128),$n=new Uint8Array(128);for(let t=0;t<128;t++)yn[t]=t>=65&&t<=90?1:0,wn[t]=t>=97&&t<=122?1:0,$n[t]=t>=48&&t<=57?1:0;const ze=j(t=>yn[t],"isUpper"),Pt=j(t=>wn[t],"isLower"),We=j(t=>$n[t],"isDigit"),G=j((t,e,n,i,r)=>{if(t.length===0)return[];let o=!1;const l=Object.values(e);for(const g of l)if(g(t[0])){o=!0;break}if(!o&&!n)return[t];const s=[...t],p=[];let a=s[0],c="other";const d=Object.entries(e);for(const g of d){const[u,v]=g;if(v(s[0])){c=u;break}}let f=n&&i?s[0]===s[0].toLocaleUpperCase(i):!1;for(let g=1;g<s.length;g++){const u=s[g];let v="other";for(const O of d){const[E,h]=O;if(h(u)){v=E;break}}const w=n&&i?u===u.toLocaleUpperCase(i):!1;let y=!1;r?y=r(c,v,f,w,u,g,s):(c!==v&&c!=="other"&&v!=="other"&&(y=!0),n&&v!=="other"&&!f&&w&&(y=!0)),y?(p.push(a),a=u):a+=u,c=v,n&&(f=w)}return a&&a.length>0&&p.push(a),p.length>0?p:[t]},"handleScriptTransitions"),Da=j((t,e,n,i)=>{if(n.size===0)return e;for(const r of n)if(t.startsWith(r,e))return i.push(r),e+r.length;return e},"detectAndProcessAcronym"),On=j((t,e=new Set)=>{if(t.length===0)return[];if(t.toUpperCase()===t)return[t];let n=0;const i=[],r=t.length;for(let o=1;o<r;o++){const l=Da(t,n,e,i);if(l!==n){n=l,o=n-1;continue}const s=t.codePointAt(o-1),p=t.codePointAt(o),a=s&&s<128&&ze(s),c=p&&p<128&&ze(p),d=s&&s<128&&Pt(s),f=s&&s<128&&We(s),g=p&&p<128&&We(p);if(d&&c){i.push(t.slice(n,o)),n=o;continue}if(f&&!g||!f&&g){i.push(t.slice(n,o)),n=o;continue}if(g&&!f){let u=!1,v=!1;if(o+1<r){const w=t.codePointAt(o+1);u=w&&w<128&&ze(w),v=w&&w<128&&We(w)}if(!v&&u){i.push(t.slice(n,o),t.slice(o,o+1)),n=o+1;continue}}if(o+1<r){const u=t.codePointAt(o+1),v=u&&u<128&&Pt(u);if(a&&c&&v){const w=t.slice(n,o+1);e.has(w)||(i.push(t.slice(n,o)),n=o)}}}return n<r&&i.push(t.slice(n)),i.filter(o=>o!=="")},"splitCamelCaseFast"),xn=j((t,e,n)=>{if(t.length===0)return[];const i=t===t.toLocaleUpperCase(e);if(e.startsWith("de")){if(!i&&t.replaceAll("ß","SS")===t.toLocaleUpperCase(e))return[t];const a=[...t],c=a.length,d=[];let f=a[0],g=a[0]===a[0].toLocaleUpperCase(e),u=g,v=g?0:-1;for(let w=1;w<c;w++){const y=a[w],O=y===y.toLocaleUpperCase(e);if(O===g)f+=y;else if(O)f&&f.length>0&&(d.push(f),f=y),u=!0,v=w;else{if(u&&w-v>1){const E=a[w-1],h=f.slice(0,-1);h&&h.length>0&&d.push(h),f=E+y}else f+=y;u=!1,v=-1}g=O}return f&&f.length>0&&d.push(f),d}if(e.startsWith("uk")||e.startsWith("ru")||e.startsWith("bg")||e.startsWith("sr")||e.startsWith("mk")||e.startsWith("be")){if(!ie.test(t)&&!I.test(t))return[t];const a=[...t],c=a.length,d=[];let f=a[0];const g=a[0];let u;ie.test(g)?u=1:I.test(g)?u=2:u=0;let v=g===g.toLocaleUpperCase(e);for(let y=1;y<c;y++){const O=a[y];let E;ie.test(O)?E=1:I.test(O)?E=2:E=0;const h=O===O.toLocaleUpperCase(e);u!==E&&(u===1||u===2)&&(E===1||E===2)||E===u&&!v&&h?(d.push(f),f=O):f+=O,u=E,v=h}f&&f.length>0&&d.push(f);const w=[];for(let y=0;y<d.length;y++)y<d.length-1&&d[y].length===1&&I.test(d[y])&&ie.test(d[y+1][0])?(w.push(d[y]+d[y+1]),y+=1):w.push(d[y]);return w}if(e.startsWith("el")){if(!Ue.test(t)&&!I.test(t))return[t];const a=[];rt.lastIndex=0;let c;for(;(c=rt.exec(t))!==null;)a.push(c[0]);a.length===0&&a.push(t);const d=[];if(a.length===1){const f=a[0];if(!f||!Ue.test(f[0])||f.length===1)return[f??t]}for(const f of a){if(!f)continue;if(!Ue.test(f[0])||f.length===1){d.push(f);continue}const g=f.length;let u=f[0],v=f[0]===f[0].toLocaleUpperCase(e);for(let w=1;w<g;w++){const y=f[w],O=y===y.toLocaleUpperCase(e);!v&&O?(d.push(u),u=y):u+=y,v=O}u&&d.push(u)}return d}if(e.startsWith("ja")||e.startsWith("ko")){const a=e.startsWith("ja"),c=a?{hiragana:j(f=>Si.test(f),"hiragana"),kanji:j(f=>lt.test(f),"kanji"),katakana:j(f=>Ii.test(f),"katakana"),latin:j(f=>I.test(f),"latin")}:{hangul:j(f=>at.test(f),"hangul"),latin:j(f=>I.test(f),"latin")},d=new Set(["が","で","と","に","の","は","へ","も","や","を"]);if(a){const f=G(t,c,!1,e,(u,v)=>u==="hiragana"&&v==="katakana"||u==="katakana"&&v==="hiragana"||u==="hiragana"&&v==="latin"||u==="katakana"&&v==="latin"||u==="kanji"&&v==="latin"||u==="latin"&&(v==="hiragana"||v==="katakana"||v==="kanji")),g=[];for(const u of f){const v=u;v.length===1&&d.has(v)&&g.length>0?g[g.length-1]=g.at(-1)+v:g.push(v)}return g.length>0?g:[t]}return G(t,c,!1,e,(f,g)=>f==="hangul"&&g==="latin"||f==="latin"&&g==="hangul")}if(e.startsWith("sl")){const a=[...t],c=a.length,d=[];let f=a[0],g=a[0]===a[0].toLocaleUpperCase(e);for(let u=1;u<c;u++){const v=a[u],w=v===v.toLocaleUpperCase(e),y=Va.test(v),O=u<c-1&&a[u+1]===a[u+1].toLocaleUpperCase(e);!g&&w||y&&O?(d.push(f),f=v,y&&O&&(d.push(f),f="")):f+=v,g=w}return f&&f.length>0&&d.push(f),d}if(e.startsWith("zh"))return G(t,{han:j(a=>lt.test(a),"han"),latin:j(a=>I.test(a),"latin")},!1,e);if(["ar","fa","he","ur"].includes(e.split("-")[0])){const a=j(c=>st.test(c)||ot.test(c),"isRtlChar");return G(t,{latin:j(c=>I.test(c),"latin"),rtl:j(c=>a(c),"rtl")},!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=j(c=>ji.test(c)||Ci.test(c)||_i.test(c)||Li.test(c)||Ti.test(c)||Fi.test(c)||zi.test(c)||Di.test(c)||Ri.test(c)||Wi.test(c)||Vi.test(c)||qi.test(c)||Ui.test(c)||ki.test(c)||Mi.test(c)||Bi.test(c),"isIndicChar");return G(t,{indic:j(c=>a(c),"indic"),latin:j(c=>I.test(c),"latin")},!1,e)}if(["be","bg","ru","sr","uk"].includes(e))return G(t,{cyrillic:j(a=>ie.test(a),"cyrillic"),latin:j(a=>I.test(a),"latin")},!0,e);if(["ar","fa","he"].includes(e))return G(t,{latin:j(a=>I.test(a),"latin"),rtl:j(a=>st.test(a)||ot.test(a),"rtl")},!1,e);if(e.startsWith("ko"))return G(t,{hangul:j(a=>at.test(a),"hangul"),latin:j(a=>I.test(a),"latin")},!1,e);if(e.startsWith("uz")){if(!ie.test(t)&&!I.test(t))return[t];const a=[...t],c=a.length,d=[];let f=a[0],g=a[0]===a[0].toLocaleUpperCase(e);for(let u=1;u<c;u++){const v=a[u],w=v===v.toLocaleUpperCase(e);if(ct.test(v)||ct.test(a[u-1])){f+=v;continue}!g&&w?(d.push(f),f=v):f+=v,g=w}return f&&f.length>0&&d.push(f),d}const r=[...t],o=r.length,l=[];let s=r[0],p=r[0]===r[0].toLocaleUpperCase(e);for(const a of n)if(t.startsWith(a)){l.push(a),s=r[a.length],p=s===s.toLocaleUpperCase(e);break}for(let a=1;a<o;a++){const c=r[a],d=c===c.toLocaleUpperCase(e);let f=0;for(const g of n)if(t.startsWith(g,a)){l.push(s,g),f=g.length,s="";const u=g.at(-1);u&&(p=u===u.toLocaleUpperCase(e));break}if(f>0){a+=f-1;continue}!p&&d?(l.push(s),s=c):s+=c,p=d}return s&&l.push(s),l},"splitCamelCaseLocale"),Ua=j((t,e,n)=>{const i=[],r=ve.test(t)?t.split(ve).filter(Boolean):[t];for(const o of r){const l=o;if(ve.test(l))i.push(l);else{const s=se.test(l)?Ia(l).filter(Boolean):[l];for(const p of s)if(se.test(p))i.push(p);else if(e){const a=e.toLowerCase().split("-")[0];i.push(...xn(p,a,n))}else i.push(...On(p,n))}}return i},"processTextWithAnsiEmoji"),Ba=j((t,e={})=>{if(!t||typeof t!="string")return[];const{handleAnsi:n=!1,handleEmoji:i=!1,knownAcronyms:r=[],locale:o,normalize:l=!1,separators:s,stripAnsi:p=!1,stripEmoji:a=!1}=e,c=new Set([...r].toSorted((y,O)=>O.length-y.length));let d=t;p&&(d=Ca(d)),a&&(d=Gi(d));let f;Array.isArray(s)?f=La(s):s instanceof RegExp?f=s:f=Ni;const g=[];let u=d;const v=f.flags.includes("g")?f:new RegExp(f.source,`${f.flags}g`);for(;u.length>0;){const y=v.exec(u);if(!y){u===".."?g.push(".."):u==="."?g.push("."):u.length>0&&g.push(u);break}const O=y.index,E=y[0],h=E.length,m=u.slice(0,O),b=u.slice(O+h);if(E.startsWith("../"))g.push(".."),u=u.slice(O+3);else if(E.startsWith("./"))g.push("."),u=u.slice(O+2);else if(O===0&&E==="..")g.push(".."),u=u.slice(2);else if(O===0&&E===".")g.push("."),u=u.slice(1);else{m.length>0&&g.push(m);let $=0;for(;($=E.indexOf("../",$))!==-1;)g.push(".."),$+=3;for($=0;($=E.indexOf("./",$))!==-1;)($===0||E[$-1]!==".")&&g.push("."),$+=2;let P=b;for(;P.startsWith("../");)g.push(".."),P=P.slice(3);for(;P.startsWith("./");)g.push("."),P=P.slice(2);if(P===".."){g.push("..");break}else if(P==="."){g.push(".");break}else u=P}v.lastIndex=0}if(g.length===0){const y=d.split(f).filter(Boolean);g.push(...y)}let w=[];for(const y of g)n||i?w.push(...Ua(y,o,c)):o?w.push(...xn(y,o,c)):w.push(...On(y,c));return l&&(w=w.map(y=>c.has(y)?y:o&&y===y.toLocaleUpperCase(o)?y[0]+y.slice(1).toLocaleLowerCase(o):y.toUpperCase()===y&&!c.has(y)?y.slice(0,1)+y.slice(1).toLowerCase():y)),w},"splitByCase");var Ra=Object.defineProperty,Fa=x((t,e)=>Ra(t,"name",{value:e,configurable:!0}),"r$4"),za=Object.defineProperty,Wa=Fa((t,e)=>za(t,"name",{value:e,configurable:!0}),"o"),qa=Object.defineProperty,Ga=Wa((t,e)=>qa(t,"name",{value:e,configurable:!0}),"s");const Ha=Ga((t,e)=>typeof t!="string"||t===""?"":(e?.locale?t[0].toLocaleUpperCase(e.locale):t[0].toUpperCase())+t.slice(1),"upperFirst");var Ka=Object.defineProperty,Ja=x((t,e)=>Ka(t,"name",{value:e,configurable:!0}),"r$3"),Za=Object.defineProperty,Ya=Ja((t,e)=>Za(t,"name",{value:e,configurable:!0}),"r"),Qa=Object.defineProperty,Xa=Ya((t,e)=>Qa(t,"name",{value:e,configurable:!0}),"n");const es=Xa((t,e)=>`${t}::${e?.joiner??""}::${e?.locale??""}::${e?.knownAcronyms?.join(",")??""}::${e?.normalize?"true":"false"}`,"generateCacheKey");var ts=Object.defineProperty,ns=x((t,e)=>ts(t,"name",{value:e,configurable:!0}),"i$3"),is=Object.defineProperty,os=ns((t,e)=>is(t,"name",{value:e,configurable:!0}),"f"),rs=Object.defineProperty,as=os((t,e)=>rs(t,"name",{value:e,configurable:!0}),"l");const ss=as((t,e)=>{const{length:n}=t;if(n===0)return"";if(n===1)return t[0];const i=[];let r="",o="";for(let l=0;l<n;l++){const s=t[l];if(ve.test(s)){r?(i.push(r+o+s),r="",o=""):(i.length>0&&i.push(e),r=s);continue}r?(o&&(o+=e),o+=s):(i.length>0&&i.push(e),i.push(s))}return i.join("")},"joinSegments");var ls=Object.defineProperty,cs=x((t,e)=>ls(t,"name",{value:e,configurable:!0}),"r$2"),us=Object.defineProperty,ps=cs((t,e)=>us(t,"name",{value:e,configurable:!0}),"a"),fs=Object.defineProperty,ds=ps((t,e)=>fs(t,"name",{value:e,configurable:!0}),"e");const hs=/(?<![a-zß])SS(?![a-z])/g,ms=ds(t=>t.replaceAll(hs,"ß"),"normalizeGermanEszett");var gs=Object.defineProperty,vs=x((t,e)=>gs(t,"name",{value:e,configurable:!0}),"c$2"),bs=Object.defineProperty,ys=vs((t,e)=>bs(t,"name",{value:e,configurable:!0}),"c"),ws=Object.defineProperty,$s=ys((t,e)=>ws(t,"name",{value:e,configurable:!0}),"o");const Os=new bn(1e3),Pn=$s((t,e)=>{if(typeof t!="string"||!t)return"";const n=e?.cache??!1,i=e?.cacheStore??Os;let r;if(n&&(r=es(t,e)),n&&r&&i.has(r))return i.get(r);let o=!0;const l=ss(Ba(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(s=>{if(e?.handleAnsi&&ve.test(s))return s;const p=e?.locale?.startsWith("de")?ms(s):s,a=e?.locale?p.toLocaleLowerCase(e.locale):p.toLowerCase();return o?(o=!1,Oa(a,e)):Ha(a,e)}),"");return n&&r&&i.set(r,l),l},"camelCase");var xs=Object.defineProperty,Se=x((t,e)=>xs(t,"name",{value:e,configurable:!0}),"a$2");const Ps=Se(t=>{t.options?.forEach(e=>{e.__camelCaseName__=Pn(e.name)})},"processOptionNames"),Es=Se(t=>{if(!Array.isArray(t.options)||t.options.length===0)return;const e=new Set;for(const i of t.options)e.add(i.name);const n=[];for(const i of t.options)if(i.name.startsWith("no-")){const r=i.name.replace("no-","");if(!e.has(r)){if(i.type!==Boolean)throw new Error(`Cannot add negated option "${i.name}" to command "${t.name}" because it is not a boolean.`);const o={...i,defaultValue:i.defaultValue===void 0?!0:!i.defaultValue,name:r};n.push(o),e.add(r)}}n.length>0&&t.options.push(...n)},"addNegatableOptions"),As=Se((t,e)=>{if(!e.options||e.options.length===0)return;const{options:n}=t,i=new Map;for(const o of e.options)if(o.name.startsWith("no-")){const l=Pn(o.name);i.set(l,o)}const r=Object.keys(n).filter(o=>i.has(o));if(r.length!==0)for(const o of r){const l=o.charAt(2);if(!l)continue;const s=l.toLowerCase()+o.slice(3),p=i.get(o);p&&(p.__negated__=!0),n[s]=!n[o],Reflect.deleteProperty(n,o)}},"mapNegatableOptions"),Ns=Se((t,e)=>{if(!e.options||e.options.length===0)return;const n=new Map;for(const r of e.options)r.__camelCaseName__&&r.__negated__===void 0&&r.implies!==void 0&&n.set(r.__camelCaseName__,r);if(n.size===0)return;const{options:i}=t;for(const r of Object.keys(i)){const o=n.get(r);if(o?.implies){const{implies:l}=o;for(const[s,p]of Object.entries(l))i[s]===void 0&&(i[s]=p)}}},"mapImpliedOptions");var Cs=Object.defineProperty,Te=x((t,e)=>Cs(t,"name",{value:e,configurable:!0}),"e$2");const js=Te(()=>!!process.versions.electron,"isElectronApp"),ks=Te(()=>js()&&!process.defaultApp,"isBundledElectronApp"),_s=Te(()=>ks()?0:1,"getProcessArgvBinIndex"),Ls=Te(t=>t.slice(_s()+1),"hideBin");var Ss=Object.defineProperty,En=x((t,e)=>Ss(t,"name",{value:e,configurable:!0}),"e$1");const Ts=" ",Is=En((t,e)=>t===e?!0:t.length!==e.length?!1:t.every((n,i)=>n===e[i]),"equals"),Ms=En(t=>{if(typeof t=="string")return t.split(Ts);const e=Pe();return Is(t,e)?Ls(t):t},"parseRawCommand");var Vs=Object.defineProperty,qe=x((t,e)=>Vs(t,"name",{value:e,configurable:!0}),"r");const Ds=qe(t=>{const e=qe(o=>{t.error(`Uncaught exception: ${o.message||o}`),o.stack&&t.error(o.stack),W(1)},"uncaughtExceptionHandler"),n=qe((o,l)=>{if(o instanceof Error)t.error(`Promise rejection: ${o.message||o}`),o.stack&&t.error(o.stack);else{let s;if(typeof o=="string")s=o;else try{s=JSON.stringify(o)}catch{s=String(o)}t.error(`Promise rejection: ${s}`)}W(1)},"unhandledRejectionHandler"),i=nt("uncaughtException",e),r=nt("unhandledRejection",n);return()=>{i(),r()}},"registerExceptionHandler");var Us=Object.defineProperty,ue=x((t,e)=>Us(t,"name",{value:e,configurable:!0}),"e");const Ee=100,An=/^[a-z][\w-]*$/i,Ae=ue((t,e)=>{if(typeof t!="string"||t.trim().length===0)throw new A(`${e} must be a non-empty string`,"INVALID_INPUT",{fieldName:e,value:t});return t.trim()},"validateNonEmptyString"),Et=ue((t,e)=>{if(!Array.isArray(t)||!t.every(n=>typeof n=="string"))throw new A(`${e} must be an array of strings`,"INVALID_INPUT",{fieldName:e,value:t});return t},"validateStringArray");ue((t,e)=>{if(typeof t!="function")throw new A(`${e} must be a function`,"INVALID_INPUT",{fieldName:e,value:t});return t},"validateFunction");const Ge=ue((t,e)=>{if(typeof t!="object"||t===null)throw new A(`${e} must be an object`,"INVALID_INPUT",{fieldName:e,value:t});return t},"validateObject"),$e=ue(t=>{const e=Ae(t,"Command name");if(e.length>Ee)throw new A(`Command name is too long (maximum ${String(Ee)} characters)`,"INVALID_COMMAND_NAME",{commandName:e,length:e.length});if(e.includes("..")||e.includes("/")||e.includes("\\")||e.includes(";")||e.includes("|")||e.includes("&"))throw new A(`Command name "${e}" contains invalid characters`,"INVALID_COMMAND_NAME",{commandName:e});if(!An.test(e))throw new A(`Command name "${e}" must start with a letter and contain only letters, numbers, hyphens, and underscores`,"INVALID_COMMAND_NAME",{commandName:e});return e},"validateCommandName");ue(t=>{const e=Ae(t,"Plugin name");if(e.length>Ee)throw new A(`Plugin name is too long (maximum ${String(Ee)} characters)`,"INVALID_PLUGIN_NAME",{length:e.length,pluginName:e});if(e.includes("..")||e.includes("/")||e.includes("\\")||e.includes(";")||e.includes("|")||e.includes("&"))throw new A(`Plugin name "${e}" contains invalid characters`,"INVALID_PLUGIN_NAME",{pluginName:e});if(!An.test(e))throw new A(`Plugin name "${e}" must start with a letter and contain only letters, numbers, hyphens, and underscores`,"INVALID_PLUGIN_NAME",{pluginName:e});return e},"validatePluginName");var Bs=Object.defineProperty,Ie=x((t,e)=>Bs(t,"name",{value:e,configurable:!0}),"s");const Rs=new Set([`
6
+ `,"\r"," ","\0",'"',"$","&","'","(",")",";","<",">","[","\\","]","`","{","|","}"]),Fs=/^[A-Z]:/i,zs=Ie(t=>{if(typeof t!="string")throw new TypeError("Argument must be a string");if(t.length>1e4)throw new Error(`Argument is too long (maximum ${String(1e4)} characters)`);for(const e of t)if(Rs.has(e))throw new Error(`Argument contains dangerous character: ${e}`);return t.trim()},"sanitizeArgument"),At=Ie(t=>{if(!Array.isArray(t))throw new TypeError("Arguments must be an array");if(t.length>100)throw new Error(`Too many arguments (maximum ${String(100)})`);return t.map(e=>zs(e))},"sanitizeArguments");Ie(t=>{if(typeof t!="string")throw new TypeError("Path must be a string");const e=t.trim();if(e.includes("..")||e.includes("../")||e.includes("..\\"))throw new Error("Path contains directory traversal sequences");if(e.startsWith("/")||Fs.test(e))throw new Error("Absolute paths are not allowed");if(e.length>1e3)throw new Error("Path is too long");return e},"validateSafePath");class Gc{static{N(this,"$s")}static{S(this,"Ir")}static{x(this,"RateLimiter")}static{Ie(this,"RateLimiter")}attempts=new Map;maxAttempts;windowMs;constructor(e=5,n=6e4){if(e<=0||n<=0)throw new Error("maxAttempts and windowMs must be positive numbers");this.maxAttempts=e,this.windowMs=n}checkLimit(e){const n=Date.now(),i=this.attempts.get(e);return!i||n>i.resetTime?(this.attempts.set(e,{count:1,resetTime:n+this.windowMs}),this.cleanup(n),!0):i.count>=this.maxAttempts?!1:(i.count+=1,!0)}reset(e){this.attempts.delete(e)}cleanup(e){for(const[n,i]of this.attempts.entries())e>i.resetTime&&this.attempts.delete(n)}}var Ws=Object.defineProperty,D=x((t,e)=>Ws(t,"name",{value:e,configurable:!0}),"b");const qs=/^-([^\d-])$/,Gs=/^--(\S+)/,Hs=/^-([^\d-]{2,})$/,He=D(t=>qs.test(t)||Gs.test(t)||Hs.test(t),"isOption"),Ks={access:D((t,e)=>to(t,e),"access"),mkdir:D((t,e)=>eo(t,e),"mkdir"),readdir:D(t=>Xi(t),"readdir"),readFile:D((async(t,e)=>e===void 0?ut(t):ut(t,e)),"readFile"),rm:D((t,e)=>Qi(t,e),"rm"),stat:D(t=>Yi(t),"stat"),writeFile:D((t,e,n)=>Zi(t,e,n),"writeFile")};let Js=class Nn{static{N(this,"Ie")}static{S(this,"Dt")}static{x(this,"Cli")}static{D(this,"Cli")}#t;#e;#c;#u;#f;#d;#y;#w;#$;#O;#x;#p;#n;#i;#o;#r;#a;#h=!1;#P;#E=!1;#m;#g;#v;#l=[];#k(){return this.#m===void 0&&(this.#m=[...this.#i.keys()]),this.#m}#A(){return this.#g===void 0&&(this.#g=[...this.#n.keys()]),this.#g}#s(){return this.#v===void 0&&(this.#v=[...this.#k(),...this.#A()]),this.#v}#N(){return this.#l.length===0?we:[...we,...this.#l]}#C(){this.#m=void 0,this.#g=void 0,this.#v=void 0}#b(){if(this.#c===void 0){const e=Ms(this.#e.argv);this.#c=At(e),this.#_()}return this.#c}#_(){if(!this.#c)return;const e=H();let n=!1;for(const i of this.#c){if(i==="--quiet"||i==="-q"){e.CEREBRO_OUTPUT_LEVEL=String(Gn),n=!0;break}if(i==="--verbose"||i==="-v"){e.CEREBRO_OUTPUT_LEVEL=String(Hn),n=!0;break}if(i==="--debug"||i==="-vvv"){e.CEREBRO_OUTPUT_LEVEL=String(re),n=!0;break}}n||(e.CEREBRO_OUTPUT_LEVEL=Object.hasOwn(e,"DEBUG")?String(re):String(tt))}#L(){this.#E||(this.#P=Ds(this.#t),this.#E=!0)}#S(){return{arch:pi(),argv:this.#b(),cwd:this.#u,env:this.#O??H(),exit:this.#$??(e=>W(e??0)),platform:ui(),stdin:this.#x}}#j(e,n,i,r){this.#t.debug(`command '${r}' found, parsing command args: ${n.join(", ")}`);const{arguments_:o,booleanValues:l,parsedArgs:s}=Yr(e,n,this.#N()),p=Object.keys(l).length>0;let a=s;p&&(a={...s,_all:{...s._all,...l}}),sa(o,a,e);const c=Zr(e,s,l,i);c.runtime=this,c.argv=this.#b(),c.fs=this.#w??Ks,c.process=this.#S(),c.console=this.#t;const d=e.options&&e.options.length>0;if(d&&e.options){const f=e.options.filter(g=>g.name.startsWith("no-"));for(const g of f){const u=g.name.replace("no-",""),v=`--${g.name}`,w=`--${u}`,y=n.includes(v),O=n.includes(w);if(y&&O)throw new qt(u,g.name)}}return d&&(As(c,e),Ns(c,e)),la(o,c.options,e),H().CEREBRO_OUTPUT_LEVEL===String(re)&&(this.#t.debug("command options parsed from options:"),this.#t.debug(JSON.stringify(c.options,null,2)),this.#t.debug("command argument parsed from argument:"),this.#t.debug(JSON.stringify(c.argument,null,2))),{arguments_:o,booleanValues:l,commandArgs:a,parsedArgs:s,toolbox:c}}constructor(e,n={}){if(typeof e!="string"||e.trim().length===0)throw new A("CLI name must be a non-empty string","INVALID_INPUT",{cliName:e});this.#f=e.trim();const i=n.argv??Pe(),r=n.cwd??ci();if(this.#e={...n,argv:i,cwd:r},this.#e.argv&&!Array.isArray(this.#e.argv))throw new A("CLI argv option must be an array of strings","INVALID_INPUT",{argv:this.#e.argv});if(this.#e.cwd&&typeof this.#e.cwd!="string")throw new A("CLI cwd option must be a string","INVALID_INPUT",{cwd:this.#e.cwd});if(this.#e.packageName&&typeof this.#e.packageName!="string")throw new A("CLI packageName option must be a string","INVALID_INPUT",{packageName:this.#e.packageName});if(this.#e.packageVersion&&typeof this.#e.packageVersion!="string")throw new A("CLI packageVersion option must be a string","INVALID_INPUT",{packageVersion:this.#e.packageVersion});const o=H();if(o.CEREBRO_OUTPUT_LEVEL=String(tt),typeof this.#e.logger=="object"){const c=["debug","error","info","log","warn"],d=[],f=this.#e.logger;for(const g of c)typeof f[g]!="function"&&d.push(g);if(d.length>0)throw new A(`Logger object is missing required methods: ${d.join(", ")}`,"INVALID_INPUT",{logger:this.#e.logger,missingMethods:d});this.#t=this.#e.logger}else this.#t={...console,debug:D((...c)=>{o.CEREBRO_OUTPUT_LEVEL===String(re)&&console.debug(...c)},"debug")};this.#d=this.#e.packageVersion,this.#y=this.#e.packageName,this.#u=this.#e.cwd,this.#r="help",this.#a={};const l=n.fs;if(l!==void 0&&(typeof l!="object"||l===null))throw new A("CLI fs option must be an object implementing the CerebroFs interface","INVALID_INPUT",{fs:n.fs});const s=n.exit;if(s!==void 0&&typeof s!="function")throw new A("CLI exit option must be a function","INVALID_INPUT",{exit:n.exit});const p=n.env;if(p!==void 0&&(typeof p!="object"||p===null))throw new A("CLI env option must be a record of string keys","INVALID_INPUT",{env:n.env});const a=n.stdin;if(a!==void 0&&typeof a!="string")throw new A("CLI stdin option must be a string","INVALID_INPUT",{stdin:n.stdin});this.#w=n.fs,this.#$=n.exit,this.#O=n.env,this.#x=n.stdin??"",this.#n=new Map,this.#i=new Map,this.#o=new Map}setCommandSection(e){return this.#a=e,this}getCommandSection(){return this.#a.header||(this.#a.header=`${this.#f}${this.#d?` v${this.#d}`:""}`),this.#a}setDefaultCommand(e){return this.#r=e,this}get defaultCommand(){return this.#r}addCommand(e){Ge(e,"Command"),$e(e.name);const n=typeof e.execute=="function",i=typeof e.loader=="function";if(n&&i)throw new A(`Command "${e.name}" cannot define both "execute" and "loader" — choose one`,"INVALID_COMMAND",{commandName:e.name});if(!n&&!i)throw new A(`Command "${e.name}" must define either "execute" or "loader"`,"INVALID_COMMAND",{commandName:e.name});e.alias&&(typeof e.alias=="string"?$e(e.alias):Et(e.alias,"Command alias").forEach(a=>$e(a))),e.argument&&Ge(e.argument,"Command argument"),e.options&&Ge(e.options,"Command options"),e.commandPath&&(Et(e.commandPath,"Command commandPath"),e.commandPath.forEach(a=>{$e(a)}));const r=xt(e.name,e.commandPath),o=J(r);if(this.#i.has(o))throw new A(`Command with path "${o}" already exists`,"DUPLICATE_COMMAND",{commandName:e.name,commandPath:e.commandPath});const l=Array.isArray(e.commandPath)&&e.commandPath.length>0,s=this.#n.get(e.name),p=s!==void 0&&(s.commandPath===void 0||s.commandPath.length===0);if(!l&&p)throw new A(`Command with name "${e.name}" already exists`,"DUPLICATE_COMMAND",{commandName:e.name});if(e.options)for(const a of e.options)ft(a);if(ca(e),Es(e),Ps(e),e.options&&(e.__conflictingOptions__=e.options.filter(a=>a.conflicts!==void 0),e.__requiredOptions__=e.options.filter(a=>a.required===!0)),l&&s!==void 0)this.#n.set(o,e);else{if(!l&&s!==void 0&&!p){const a=xt(s.name,s.commandPath);this.#n.set(J(a),s)}this.#n.set(e.name,e)}if(this.#i.set(o,r),this.#o.set(o,e),this.#C(),e.alias!==void 0){const a=typeof e.alias=="string"?[e.alias]:e.alias;for(const c of a){if(H().CEREBRO_OUTPUT_LEVEL===String(re)&&this.#t.debug("adding alias",c),this.#n.has(c))throw new A(`Command alias "${c}" conflicts with existing command`,"DUPLICATE_COMMAND",{alias:c,commandName:e.name});this.#n.set(c,e)}}return this}addGlobalOption(e){const n=e,i=new Set(we.map(o=>o.name)),r=new Set(we.map(o=>o.alias).filter(Boolean));if(i.has(n.name))throw new A(`Cannot add global option "--${n.name}": it conflicts with a built-in global option`,"DUPLICATE_OPTION",{optionName:n.name});if(n.alias&&r.has(n.alias))throw new A(`Cannot add global option with alias "-${n.alias}": it conflicts with a built-in global option alias`,"DUPLICATE_OPTION",{alias:n.alias,optionName:n.name});if(new Set(this.#l.map(o=>o.name)).has(n.name))throw new A(`Global option "--${n.name}" has already been added`,"DUPLICATE_OPTION",{optionName:n.name});return n.group="global",ft(n),this.#l.push(n),this}getGlobalOptions(){return this.#N()}addPlugin(e){return this.getPluginManager().register(e),this}getPluginManager(){return this.#p?this.#p:(this.#p=new po(this.#t),this.#p.register({description:"Attaches the logger to the toolbox",execute:D(e=>{e.logger=this.#t,e.console=e.logger},"execute"),name:"logger"}),this.#p)}getCliName(){return this.#f}getPackageVersion(){return this.#d}getPackageName(){return this.#y}getCommands(){return this.#n}getCwd(){return this.#u}dispose(){this.#P?.()}async run(e={}){const{autoDispose:n=!0,shouldExitProcess:i=!0,...r}=e;if(!this.#n.has("help")){const{default:m}=await import("../packem_chunks/help-command.js");this.addCommand(new m(this.#n))}const o=this.#A(),l=this.#i;this.#L();const s=this.#b();let p,a=[...s];const c=Bt(),d=Ut(),f=Pe();this.#t.debug(`process.execPath: ${c}`),this.#t.debug(`process.execArgv: ${d.join(" ")}`),this.#t.debug(`process.argv: ${f.join(" ")}`);const g=pa(l,[...s]);if(g.commandPath)p=g.commandPath,a=g.argv;else{if(s.length>1&&s[0]&&s[1]&&!He(s[0])&&!He(s[1])){const b=[];let $=0;for(;$<s.length;){const k=s[$];if(!k||He(k))break;b.push(k),$+=1}const P=J(b);if(b[0]&&!o.includes(b[0])){const k=this.#s(),C=Z(P,k);throw new K(P,C)}}let m;try{m=Oo([null,...o],[...s])}catch(b){if(b instanceof Error&&b.name==="INVALID_COMMAND"&&"command"in b){const $=b.command,P=this.#s(),k=Z($,P);throw new K($,k)}throw b}m.command&&(p=[m.command],a=m.argv)}if(!p)if(this.#r)p=[this.#r];else{const m=this.#s();throw new K("",m)}const u=J(p),v=this.#i.get(u);let w;if(v){if(w=this.#o.get(u),!w||J(v)!==u){const m=this.#s(),b=Z(u,m);throw new K(u,b)}}else{const m=p.at(-1);if(w=m?this.#n.get(m):void 0,!w){const b=this.#s(),$=Z(u,b);throw new K(u,$)}}if(typeof w.execute!="function"&&typeof w.loader!="function")return this.#t.error(`Command "${w.name}" has no function to execute.`),i?W(1):void 0;const y=a;let O,E;try{({commandArgs:O,toolbox:E}=this.#j(w,y,r,u))}catch(m){if(this.#t.error(m),i)return W(1);throw m}const h=this.getPluginManager();try{!this.#h&&h.hasPlugins()&&(await h.init({cli:this,cwd:this.#u,logger:this.#t}),this.#h=!0),await h.executeLifecycle("execute",E),await h.executeLifecycle("beforeCommand",E);let m;const b=O.global;if(b?.help){const $=this.#n.get("help");if(!$)throw new A("Help command not found","COMMAND_NOT_FOUND");m=await oe($,E,O)}else if(b?.version??b?.V){const $=this.#n.get("version");if(!$)throw new A("Version command not found","COMMAND_NOT_FOUND");m=await oe($,E,O)}else m=await oe(w,E,O);return await h.executeLifecycle("afterCommand",E,m),i?W(0):void 0}catch(m){throw await h.executeErrorHandlers(m,E),m}finally{n&&this.dispose()}}async runCommand(e,n={}){const{argv:i=[],...r}=n;Ae(e,"Command name");const o=e.split(" ").filter(Boolean),l=J(o),s=this.#i.get(l)?this.#o.get(l):this.#n.get(e);if(!s){const f=this.#s(),g=Z(l||e,f);throw new K(e,g)}if(typeof s.execute!="function"&&typeof s.loader!="function")throw new A(`Command "${s.name}" has no function to execute`,"INVALID_COMMAND",{commandName:s.name});const p=[...At(i)];this.#t.debug(`running command '${e}' programmatically with args: ${p.join(", ")}`);const{commandArgs:a,toolbox:c}=this.#j(s,p,r,l||e),d=this.getPluginManager();try{!this.#h&&d.hasPlugins()&&(await d.init({cli:this,cwd:this.#u,logger:this.#t}),this.#h=!0),await d.executeLifecycle("execute",c),await d.executeLifecycle("beforeCommand",c);let f;const g=a.global;if(g?.help){const u=this.#n.get("help");if(!u)throw new A("Help command not found","COMMAND_NOT_FOUND");f=await oe(u,c,a)}else if(g?.version??g?.V){const u=this.#n.get("version");if(!u)throw new A("Version command not found","COMMAND_NOT_FOUND");f=await oe(u,c,a)}else f=await oe(s,c,a);return await d.executeLifecycle("afterCommand",c,f),f}catch(f){throw await d.executeErrorHandlers(f,c),f}}clone(e){const n={...this.#e,...e},i=new Nn(this.#f,n);for(const[r,o]of this.#n)i.#n.set(r,o);for(const[r,o]of this.#i)i.#i.set(r,[...o]);for(const[r,o]of this.#o)i.#o.set(r,o);for(const r of this.#l)i.#l.push(r);return i.#r=this.#r,i.#a={...this.#a},i.#C(),i}async getAction(e){Ae(e,"Command name");const n=e.split(" ").filter(Boolean),i=J(n),r=this.#i.get(i)?this.#o.get(i):this.#n.get(e);if(!r){const o=this.#s(),l=Z(i||e,o);throw new K(e,l)}if(typeof r.execute=="function")return r.execute;if(typeof r.loader=="function")return hn(r);throw new A(`Command "${r.name}" has no execute or loader defined`,"INVALID_COMMAND",{commandName:r.name})}};var Zs=Object.defineProperty,Ys=N((t,e)=>Zs(t,"name",{value:e,configurable:!0}),"e$1"),Qs=Object.defineProperty,Xs=Ys((t,e)=>Qs(t,"name",{value:e,configurable:!0}),"o"),el=Object.defineProperty,tl=Xs((t,e)=>el(t,"name",{value:e,configurable:!0}),"t");const Hc=tl((t,e)=>new Js(t,e),"createCerebro");var nl=Object.defineProperty,le=N((t,e)=>nl(t,"name",{value:e,configurable:!0}),"t$1");function il(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}N(il,"getDefaultExportFromCjs");le(il,"getDefaultExportFromCjs");function ol(t){return t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}N(ol,"getDefaultExportFromNamespaceIfPresent");le(ol,"getDefaultExportFromNamespaceIfPresent");function rl(t){return t&&Object.prototype.hasOwnProperty.call(t,"default")&&Object.keys(t).length===1?t.default:t}N(rl,"getDefaultExportFromNamespaceIfNotNamed");le(rl,"getDefaultExportFromNamespaceIfNotNamed");function al(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if(typeof e=="function"){var n=le(N(function i(){var r=!1;try{r=this instanceof i}catch{}return r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)},"a"),"a");n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(i){var r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(n,i,r.get?r:{enumerable:!0,get:le(function(){return t[i]},"get")})}),n}N(al,"getAugmentedNamespace");le(al,"getAugmentedNamespace");var sl=Object.defineProperty,ll=N((t,e)=>sl(t,"name",{value:e,configurable:!0}),"r$1"),cl=Object.defineProperty,ul=ll((t,e)=>cl(t,"name",{value:e,configurable:!0}),"r"),pl=Object.defineProperty,fl=ul((t,e)=>pl(t,"name",{value:e,configurable:!0}),"o");const Kc=fl(()=>{try{const t=require("node:module");if(typeof t.enableCompileCache=="function"){t.enableCompileCache();return}}catch{}try{require("v8-compile-cache")}catch{}},"enableCompileCache");var dl=Object.defineProperty,hl=N((t,e)=>dl(t,"name",{value:e,configurable:!0}),"u$2"),ml=Object.defineProperty,Cn=hl((t,e)=>ml(t,"name",{value:e,configurable:!0}),"p");const gl=Je(import.meta.url),me=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,jn=Cn(t=>{if(typeof me<"u"&&me.versions&&me.versions.node){const[e,n]=me.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return me.getBuiltinModule(t)}return gl(t)},"__cjs_getBuiltinModule"),{execFileSync:vl}=jn("node:child_process"),{totalmem:bl}=jn("node:os");var yl=Object.defineProperty,Me=Cn((t,e)=>yl(t,"name",{value:e,configurable:!0}),"r");const wl=/--max-old-space-size=(\d+)/,$l=/--max-semi-space-size=(\d+)/,Ol=Me(t=>Math.floor(bl()/1024/1024*t),"getDefaultMaxOldSpaceSize"),xl=Me(t=>t<=512?4:t<=1024?8:t<=2048?16:t<=4096?32:t<=8192?64:Math.floor(Math.log2(t))*8,"getSemiSpaceSize"),Nt=Me((t,e)=>{for(const n of e){const i=t.exec(n);if(i)return Number.parseInt(i[1],10)}},"extractFlag"),Jc=Me(t=>{const e=t?.maxOldSpacePercent??.75,n=[...Ut()],i=[...Pe()],r=Nt(wl,n),o=Nt($l,n);if(r!==void 0&&o!==void 0)return;const l=r??Ol(e),s=o??xl(l),p=[];if(r===void 0&&p.push(`--max-old-space-size=${String(l)}`),o===void 0&&p.push(`--max-semi-space-size=${String(s)}`),p.length!==0)try{vl(Bt(),[...p,...n,...i.slice(1)],{env:H(),stdio:"inherit"}),W(0)}catch(a){const c=a.status;W(typeof c=="number"?c:1)}},"applyHeapTuning");var Pl=Object.defineProperty,El=N((t,e)=>Pl(t,"name",{value:e,configurable:!0}),"T"),Al=Object.defineProperty,Ve=El((t,e)=>Al(t,"name",{value:e,configurable:!0}),"N");const Nl=Je(import.meta.url),ge=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Cl=Ve(t=>{if(typeof ge<"u"&&ge.versions&&ge.versions.node){const[e,n]=ge.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return ge.getBuiltinModule(t)}return Nl(t)},"__cjs_getBuiltinModule"),{createRequire:jl}=Cl("node:module");var kl=Object.defineProperty,_l=Ve((t,e)=>kl(t,"name",{value:e,configurable:!0}),"A$2"),Ll=Object.defineProperty,Qe=_l((t,e)=>Ll(t,"name",{value:e,configurable:!0}),"$"),Sl=Object.defineProperty,Tl=Qe((t,e)=>Sl(t,"name",{value:e,configurable:!0}),"r$1");const Il=Tl(t=>t.replaceAll(/\r\n|\r(?!\n)|\n/gu,`
7
+ `),"normalizeLF"),Ml=globalThis.process??Object.create(null),Ct={versions:{}},jt=new Proxy(Ml,{get(t,e){if(e in t)return t[e];if(e in Ct)return Ct[e]}});var Vl=Object.defineProperty,Dl=Qe((t,e)=>Vl(t,"name",{value:e,configurable:!0}),"b");const Ul=Dl((t,e,n,i)=>{const r={column:0,line:-1,...t.start},o={...r,...t.end},l=r.line,s=r.column,p=o.line,a=o.column;let c=Math.max(l-(n+1),0),d=Math.min(e.length,p+i);l===-1&&(c=0),p===-1&&(d=e.length);const f=p-l,g={};if(f)for(let u=0;u<=f;u++){const v=u+l;if(!s)g[v]=!0;else if(u===0){const w=e[v-1]?.length;g[v]=[s,(w??0)-s+1]}else if(u===f)g[v]=[0,a];else{const w=e[v-u]?.length;g[v]=[0,w]}}else s===a?g[l]=s?[s,0]:!0:g[l]=[s,(a??0)-(s??0)];return{end:d,markerLines:g,start:c}},"getMarkerLines");var Bl=Object.defineProperty,Oe=Qe((t,e)=>Bl(t,"name",{value:e,configurable:!0}),"t");const Rl=jt.platform==="win32"&&!jt.env?.WT_SESSION?">":"❯",Fl=Oe((t,e,n)=>{const i={linesAbove:2,linesBelow:3,prefix:"",showGutter:!0,tabWidth:4,...n,color:{gutter:Oe(u=>u,"gutter"),marker:Oe(u=>u,"marker"),message:Oe(u=>u,"message"),...n?.color}},r=typeof e.start.column=="number";let o=Il(t).split(`
8
+ `);typeof i.tabWidth=="number"&&(o=o.map(u=>u.replaceAll(" "," ".repeat(i.tabWidth))));const{end:l,markerLines:s,start:p}=Ul(e,o,i.linesAbove,i.linesBelow),a=String(l).length,{gutter:c,marker:d,message:f}=i.color;let g=o.slice(p,l).map((u,v)=>{const w=p+1+v,y=s[w],O=` ${String(w)}`.slice(-a),E=!s[w+1],h=` ${O}${i.showGutter?" |":""}`;if(y){let m="";if(Array.isArray(y)){const b=u.replaceAll(/[^\t]/g," ").slice(0,Math.max(y[0]-1,0)),$=y[1]||1;m=[`
9
+ `,i.prefix+c(h.replaceAll(/\d/g," "))," ",b,d("^").repeat($)].join(""),E&&i.message&&(m+=` ${f(i.message)}`)}return[i.prefix+d(Rl),c(h),u.length>0?` ${u}`:"",m].join("")}return`${i.prefix} ${c(h)}${u.length>0?` ${u}`:""}`}).join(`
10
+ `);return i.message&&!r&&(g=`${i.prefix+" ".repeat(a+1)+i.message}
11
+ ${g}`),g},"codeFrame");var zl=Object.defineProperty,Wl=Ve((t,e)=>zl(t,"name",{value:e,configurable:!0}),"x$1"),ql=Object.defineProperty,Gl=Wl((t,e)=>ql(t,"name",{value:e,configurable:!0}),"x"),Hl=Object.defineProperty,q=Gl((t,e)=>Hl(t,"name",{value:e,configurable:!0}),"u");const X=q((t,...e)=>{process.env.DEBUG&&process.env.DEBUG==="true"&&console.debug(`error:parse-stacktrace: ${t}`,...e)},"debugLog"),ee="<unknown>",Kl=/^.*?\s*at\s(?:(.+?\)(?:\s\[.+\])?|\(?.*?)\s?\((?:address\sat\s)?)?(?:async\s)?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Jl=/\((\S+)\),\s(<[^>]+>)?:(\d+)?:(\d+)?\)?/,Zl=/(.*?):(\d+):(\d+)(?:\s<-\s.+:\d+:\d+)?/,Yl=/eval\sat\s(<anonymous>)\s\((.*)\)?:(\d+)?:(\d+)\),\s*<anonymous>?:(\d+)?:(\d+)/,Ql=/^\s*in\s(?:([^\\/]+(?:\s\[as\s\S+\])?)\s\(?)?\(at?\s?(.*?):(\d+)(?::(\d+))?\)?\s*$/,Xl=/in\s(.*)\s\(at\s(.+)\)\sat/,ec=/^(?:.*@)?(.*):(\d+):(\d+)$/,tc=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. \/=]+)(?::(\d+))?(?::(\d+))?\s*$/i,nc=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,ic=/(\S[^\s[]*\[.*\]|.*?)@(.*):(\d+):(\d+)/,kt=/\(error: (.*)\)/,oc=/at\s/,rc=/^(\S+):(\d+):(\d+)$|^(\S+):(\d+)$/,ac=/\S*(?:Error: |AggregateError:)/,kn=/^Anonymous function$/,sc=/^\s*in\s.*/,lc=/^.*?\s*at\s.*/,cc=/^.*?\s*@.*|\[native code\]/,_n=q((t,e)=>{const n=t.includes("safari-extension"),i=t.includes("safari-web-extension");return n||i?[t.includes("@")?t.split("@")[0]:ee,n?`safari-extension:${e}`:`safari-web-extension:${e}`]:[t,e]},"extractSafariExtensionDetails"),Ln=q((t,e)=>{const n=Zl.exec(e);n&&(t.file=n[1],t.line=+n[2],t.column=+n[3])},"parseMapped"),uc=q(t=>{const e=Xl.exec(t);if(e){X(`parse nested node error stack line: "${t}"`,`found: ${JSON.stringify(e)}`);const i=e[2].split(":");return{column:i[2]?+i[2]:void 0,file:i[0],line:i[1]?+i[1]:void 0,methodName:e[1]??ee,raw:t,type:void 0}}const n=Ql.exec(t);if(n){X(`parse node error stack line: "${t}"`,`found: ${JSON.stringify(n)}`);const i={column:n[4]?+n[4]:void 0,file:n[2]?n[2].replace(oc,""):void 0,line:n[3]?+n[3]:void 0,methodName:n[1]??ee,raw:t,type:t.startsWith("internal")?"internal":void 0};return Ln(i,`${n[2]}:${n[3]}:${n[4]}`),i}},"parseNode"),pc=q(t=>{const e=Kl.exec(t);if(e){X(`parse chrome error stack line: "${t}"`,`found: ${JSON.stringify(e)}`);const n=e[2]?.startsWith("native"),i=e[2]?.startsWith("eval")||e[1]?.startsWith("eval");let r,o;if(i){const a=Jl.exec(t);if(a){const c=rc.exec(a[1]);c?(e[2]=c[4]??c[1],e[3]=c[5]??c[2],e[4]=c[3]):a[2]&&(e[2]=a[1]),a[2]&&(r={column:a[4]?+a[4]:void 0,file:a[2],line:a[3]?+a[3]:void 0,methodName:"eval",raw:t,type:"eval"})}else{const c=Yl.exec(t);c&&(o={column:c[4]?+c[4]:void 0,file:c[2],line:c[3]?+c[3]:void 0},r={column:c[6]?+c[6]:void 0,file:c[1],line:c[5]?+c[5]:void 0,methodName:"eval",raw:c[0],type:"eval"})}}const[l,s]=_n(e[1]?e[1].replace(kn,"<anonymous>"):ee,e[2]),p={column:e[4]?+e[4]:void 0,evalOrigin:r,file:s,line:e[3]?+e[3]:void 0,methodName:l,raw:t,type:i?"eval":n?"native":void 0};return o?(p.column=o.column,p.file=o.file,p.line=o.line):Ln(p,`${s}:${e[3]}:${e[4]}`),p}},"parseChromium"),fc=q((t,e)=>{const n=tc.exec(t);if(n){X(`parse gecko error stack line: "${t}"`,`found: ${JSON.stringify(n)}`);const i=n[3]?.includes(" > eval"),r=i&&n[3]&&nc.exec(n[3]);let o;i&&r&&(n[3]=r[1],o={column:n[5]?+n[5]:void 0,file:n[3],line:n[4]?+n[4]:void 0,methodName:"eval",raw:t,type:"eval"},n[4]=r[2]);const[l,s]=_n(n[1]?n[1].replace(kn,"<anonymous>"):ee,n[3]);let p;(e?.type==="safari"||!i&&e?.type==="firefox")&&e.column?p=e.column:!i&&n[5]&&(p=+n[5]);let a;return(e?.type==="safari"||!i&&e?.type==="firefox")&&e.line?a=e.line:n[4]&&(a=+n[4]),{column:p,evalOrigin:o,file:s,line:a,methodName:l,raw:t,type:i?"eval":s.includes("[native code]")?"native":void 0}}},"parseGecko"),dc=q((t,e)=>{const n=ic.exec(t);if(!(n&&n[2].includes(" > eval"))&&n)return X(`parse firefox error stack line: "${t}"`,`found: ${JSON.stringify(n)}`),{column:n[4]?+n[4]:e?.column??void 0,file:n[2],line:n[3]?+n[3]:e?.line??void 0,methodName:n[1]||ee,raw:t,type:void 0}},"parseFirefox"),hc=q(t=>{const e=ec.exec(t);if(e)return X(`parse react android native error stack line: "${t}"`,`found: ${JSON.stringify(e)}`),{column:e[3]?+e[3]:void 0,file:e[1],line:e[2]?+e[2]:void 0,methodName:ee,raw:t,type:void 0}},"parseReactAndroidNative"),Sn=q((t,{filter:e,frameLimit:n=50}={})=>{const i=t;let r=(typeof i.stacktrace=="string"?i.stacktrace:t.stack??"").split(`
12
+ `).map(o=>(kt.test(o)?o.replace(kt,"$1"):o).trim()).filter(o=>!ac.test(o)&&o!=="eval code");return e&&(r=r.filter(o=>e(o))),r=r.slice(0,n),r.reduce((o,l,s)=>{if(!l||l.length>1024)return o;let p;if(sc.test(l))p=uc(l);else if(lc.test(l))p=pc(l);else if(cc.test(l)){let a;if(s===0){const c=t,d=c.columnNumber,f=c.lineNumber,g=c.line,u=c.column;d||f?a={column:d,line:f,type:"firefox"}:(g||u)&&(a={column:u,line:g,type:"safari"})}p=dc(l,a)??fc(l,a)}else p=hc(l);return p?o.push(p):X(`parse error stack line: "${l}"`,"not parser found"),o},[])},"parseStacktrace");var mc=Object.defineProperty,gc=Ve((t,e)=>mc(t,"name",{value:e,configurable:!0}),"p"),vc=Object.defineProperty,Tn=gc((t,e)=>vc(t,"name",{value:e,configurable:!0}),"m");const bc=jl(import.meta.url),ae=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Xe=Tn(t=>{if(typeof ae<"u"&&ae.versions&&ae.versions.node){const[e,n]=ae.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return ae.getBuiltinModule(t)}return bc(t)},"__cjs_getBuiltinModule"),{existsSync:yc,readFileSync:wc}=Xe("node:fs"),{relative:$c}=Xe("node:path"),{cwd:Oc}=ae,{fileURLToPath:xc}=Xe("node:url");var Pc=Object.defineProperty,_=Tn((t,e)=>Pc(t,"name",{value:e,configurable:!0}),"o");const pe=_((t,e,n)=>n===0?t:e===" "?t+" ".repeat(n):t+" ".repeat(e*n),"getPrefix"),Ec=_((t,e)=>{const n=t.replace("async file:","file:");return $c(e,n.startsWith("file:")?xc(n):n)},"getRelativePath"),Ac=_((t,e,n)=>{if(e)return n.title(t.message);const i=t.message?`: ${t.message}`:"";return n.title(t.name+i)},"getTitleText"),In=_((t,{color:e,hideErrorTitle:n,indentation:i,prefix:r},o)=>`${pe(r,i,o)}${Ac(t,n,e)}
13
+ `,"getMessage"),Mn=_((t,{color:e,indentation:n,prefix:i},r)=>{if(t.hint===void 0)return;const o=pe(i,n,r);let l="";if(Array.isArray(t.hint))for(const s of t.hint)l+=`${o+s}
14
+ `;else l+=o+t.hint;return e.hint(l)},"getHint"),et=_((t,{color:e,cwd:n,displayShortPath:i,indentation:r,prefix:o},l=0)=>{const s=i?Ec(t.file,n):t.file,{fileLine:p,method:a}=e;return`${pe(o,r,l)}at ${t.methodName?`${a(t.methodName)} `:""}${p(s)}:${p(t.line?.toString()??"")}`},"getMainFrame"),Vn=_((t,{color:e,indentation:n,linesAbove:i,linesBelow:r,prefix:o,showGutter:l,showLineNumbers:s,tabWidth:p},a)=>{if(t.file===void 0)return;const c=t.file.replace("file://","");if(!yc(c))return;const d=wc(c,"utf8");return Fl(d,{start:{column:t.column,line:t.line}},{color:e,linesAbove:i,linesBelow:r,prefix:pe(o,n,a),showGutter:l,showLineNumbers:s,tabWidth:p})},"getCode"),Dn=_((t,e,n)=>{if(t.errors.length===0)return;let i=`${pe(e.prefix,e.indentation,n)}Errors:
15
+
16
+ `,r=!0;for(const o of t.errors)r?r=!1:i+=`
17
+
18
+ `,i+=Bn(o,{...e,framesMaxLimit:1,hideErrorCodeView:e.hideErrorErrorsCodeView},n+1);return`
19
+ ${i}`},"getErrors"),Un=_((t,e,n)=>{let i=`${pe(e.prefix,e.indentation,n)}Caused by:
20
+
21
+ `;const r=t.cause;i+=In(r,e,n);const o=Sn(r).shift(),l=Mn(r,e,n);if(l&&(i+=`${l}
22
+ `),o&&(i+=et(o,e,n),!e.hideErrorCauseCodeView)){const s=Vn(o,e,n);s!==void 0&&(i+=`
23
+ ${s}`)}if(r.cause)i+=`
24
+ ${Un(r,e,n+1)}`;else if(r instanceof AggregateError){const s=Dn(r,e,n);s!==void 0&&(i+=`
25
+ ${s}`)}return`
26
+ ${i}`},"getCause"),Nc=_((t,e)=>(t.length>0?`
27
+ `:"")+t.map(n=>et(n,e)).join(`
28
+ `),"getStacktrace"),Bn=_((t,e,n)=>{const i={cwd:Oc(),displayShortPath:!1,filterStacktrace:void 0,framesMaxLimit:Number.POSITIVE_INFINITY,hideErrorCauseCodeView:!1,hideErrorCodeView:!1,hideErrorErrorsCodeView:!1,hideErrorTitle:!1,hideMessage:!1,indentation:4,linesAbove:2,linesBelow:3,prefix:"",showGutter:!0,showLineNumbers:!0,tabWidth:4,...e,color:{fileLine:_(l=>l,"fileLine"),gutter:_(l=>l,"gutter"),hint:_(l=>l,"hint"),marker:_(l=>l,"marker"),message:_(l=>l,"message"),method:_(l=>l,"method"),title:_(l=>l,"title"),...e.color}},r=Sn(t,{filter:e.filterStacktrace,frameLimit:i.framesMaxLimit}),o=r.shift();return[e.hideMessage?void 0:In(t,i,n),Mn(t,i,n),o?et(o,i,n):void 0,o&&!i.hideErrorCodeView?Vn(o,i,n):void 0,t instanceof AggregateError?Dn(t,i,n):void 0,t.cause===void 0?void 0:Un(t,i,n),r.length>0?Nc(r,i):void 0].filter(Boolean).join(`
29
+ `).replaceAll("\\","/")},"internalRenderError"),Cc=_((t,e={})=>{if(e.framesMaxLimit!==void 0&&e.framesMaxLimit<=0)throw new RangeError("The 'framesMaxLimit' option must be a positive number");return Bn(t,e,0)},"renderError");var jc=Object.defineProperty,kc=N((t,e)=>jc(t,"name",{value:e,configurable:!0}),"i$1"),_c=Object.defineProperty,Lc=kc((t,e)=>_c(t,"name",{value:e,configurable:!0}),"n"),Sc=Object.defineProperty,_t=Lc((t,e)=>Sc(t,"name",{value:e,configurable:!0}),"n");const Zc=_t((t={})=>({description:"Enhanced error handling and reporting with beautiful code frames",name:"error-handler",onError:_t((e,n)=>{const{logger:i,runtime:r}=n,{detailed:o=!1,exitOnError:l=!0,formatter:s,logErrors:p=!0,renderOptions:a={}}=t;if(p)if(s)i.error(s(e));else if(o){const c=r.getCwd(),d=Cc(e,{cwd:c,hideErrorCodeView:!1,hideErrorTitle:!1,hideMessage:!1,linesAbove:2,linesBelow:3,...a});i.error(d)}else i.error(e);l&&W(1)},"handleError"),version:"1.0.0"}),"errorHandlerPlugin");var Tc="1.0.0-alpha.25";const Yc={version:Tc};var Ic=Object.defineProperty,Mc=N((t,e)=>Ic(t,"name",{value:e,configurable:!0}),"e");const Qc={argument:{description:"Package to execute (optionally with @version)",name:"package",type:String},description:"Execute a remote package without permanent installation",examples:[["vis dlx create-vite my-app","Scaffold a new project"],["vis dlx typescript@5.5.4 tsc --version","Run specific version"],["vis dlx -p cowsay -p lolcatjs -c 'echo hi | cowsay | lolcatjs'","Multiple packages with shell"],["vis install && vis dlx --offline typescript tsc --version","Hardened: pre-install + offline (no registry fetch on dlx)"]],group:"Run & Execute",loader:Mc(()=>import("../packem_chunks/handler9.js"),"loader"),name:"dlx",options:[{alias:"p",description:"Additional packages to install (repeatable)",multiple:!0,name:"package",type:String},{alias:"c",defaultValue:!1,description:"Execute within shell environment",name:"shell-mode",type:Boolean},{alias:"s",defaultValue:!1,description:"Suppress output except command results",name:"silent",type:Boolean},{defaultValue:!1,description:"Resolve from local store only — fail rather than fetch from the registry. Pair with `vis install` for hardened npx-style workflows.",name:"offline",type:Boolean}]};export{Jc as N,Hc as T,Qc as a,H as b,Rc as c,A as d,al as e,Fc as f,il as g,Kc as i,Yc as m,se as n,Zc as w};
@@ -0,0 +1,2 @@
1
+ var z=Object.defineProperty;var n=(t,e)=>z(t,"name",{value:e,configurable:!0});import{createRequire as Q}from"node:module";import{f as tt,M as w}from"./readFileSync-CGmzMUF2-D6rUjGDn.js";import{d as j}from"../packem_chunks/config.js";import{aB as ht,B as dt,aC as L}from"../packem_chunks/bin.js";import{withEnhancedPath as wt}from"@visulima/task-runner";const Z=Q(import.meta.url),m=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,p=n(t=>{if(typeof m<"u"&&m.versions&&m.versions.node){const[e,o]=m.versions.node.split(".").map(Number);if(e>22||e===22&&o>=3||e===20&&o>=16)return m.getBuiltinModule(t)}return Z(t)},"__cjs_getBuiltinModule"),{Socket:et}=p("node:net"),{randomBytes:ot}=p("node:crypto"),{readdir:st,writeFile:rt,rm:M,rename:it,open:nt,readFile:at,stat:ct,unlink:O}=p("node:fs/promises"),{createRequire:lt}=p("node:module"),{spawn:ut}=p("node:child_process"),{openSync:ft,closeSync:pt}=p("node:fs");var kt=Object.defineProperty,mt=n((t,e)=>kt(t,"name",{value:e,configurable:!0}),"i$1"),vt=Object.defineProperty,W=mt((t,e)=>vt(t,"name",{value:e,configurable:!0}),"s");const gt=lt(import.meta.url),v=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,yt=W(t=>{if(typeof v<"u"&&v.versions&&v.versions.node){const[e,o]=v.versions.node.split(".").map(Number);if(e>22||e===22&&o>=3||e===20&&o>=16)return v.getBuiltinModule(t)}return gt(t)},"__cjs_getBuiltinModule"),{lstat:C,mkdir:_t}=yt("node:fs/promises");var bt=Object.defineProperty,$t=W((t,e)=>bt(t,"name",{value:e,configurable:!0}),"o");const Et=$t(async t=>{tt(t);try{const e=await C(t);if(!e.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${String(j(e))}'`);return}catch(e){if(e.code!=="ENOENT")throw e}try{await _t(t,{recursive:!0})}catch(e){if(e.code!=="EEXIST")throw e;const o=await C(t);if(!o.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${String(j(o))}'`,{cause:e})}},"ensureDir");var St=Object.defineProperty,u=n((t,e)=>St(t,"name",{value:e,configurable:!0}),"s$1");const Ht=3e4,N=100;class Pt extends Error{static{n(this,"ServiceReadinessError")}constructor(e,o){super(e),this.elapsedMs=o,this.name="ServiceReadinessError"}elapsedMs;static{u(this,"ServiceReadinessError")}}const Mt=u(async t=>{const e=t.host??"127.0.0.1",{port:o}=t,s=t.timeoutMs??Ht,r=Date.now();for(;Date.now()-r<s;){if(await Rt(e,o))return;await Tt(N)}throw new Pt(`Timed out waiting for ${e}:${String(o)} to accept TCP connections (${String(s)}ms)`,Date.now()-r)},"waitForTcp"),Rt=u((t,e)=>new Promise(o=>{const s=new et,r=u(i=>{s.removeAllListeners(),s.destroy(),o(i)},"onDone");s.once("connect",()=>{r(!0)}),s.once("error",()=>{r(!1)}),s.setTimeout(N,()=>{r(!1)});try{s.connect(e,t)}catch{r(!1)}}),"tryConnect"),Tt=u(t=>new Promise(e=>{setTimeout(e,t)}),"delay"),Dt=u(async(t,e)=>{const o=t.readiness??(t.port===void 0?void 0:{tcp:{port:t.port}});o&&await Mt({host:o.tcp.host,port:o.tcp.port,timeoutMs:e?.timeoutMs??o.tcp.timeoutMs})},"runReadiness");var Ot=Object.defineProperty,h=n((t,e)=>Ot(t,"name",{value:e,configurable:!0}),"o");const R=384,x=5e3,jt=50,Ct=3e4,k=h(async t=>{const e=w(ht(t),"services");try{await Et(e)}catch(o){throw o.code==="ENOTDIR"?new Error(`Service registry path ${e} exists but is not a directory. Remove it or move the conflicting file before running \`vis service\`.`,{cause:o}):o}return e},"getRegistryDir"),T=h(t=>t.replaceAll("/","_").replaceAll(":","__"),"slugify"),D=h((t,e)=>w(t,`${T(e)}.json`),"entryPath"),xt=h((t,e)=>w(t,`${T(e)}.lock`),"lockPath"),b=h(async(t,e)=>{const o=await k(t),s=D(o,e);if(await dt(s))try{return await L(s)}catch{return}},"readEntry"),At=h(async t=>{const e=await k(t);let o;try{o=await st(e)}catch{return[]}const s=[];for(const r of o)if(r.endsWith(".json"))try{const i=await L(w(e,r));s.push(i)}catch{}return s},"readAllEntries"),It=h(async(t,e)=>{const o=await k(t),s=D(o,e.id),r=w(o,`.${ot(8).toString("hex")}.tmp`);await rt(r,`${JSON.stringify(e,void 0,2)}
2
+ `,{mode:R});try{await Nt(r,s)}catch(i){throw await M(r,{force:!0}).catch(()=>{}),i}},"writeEntry"),Ft=new Set(["EACCES","EBUSY","EPERM"]),Lt=8,Wt=20,Nt=h(async(t,e)=>{let o=0;for(;;)try{await it(t,e);return}catch(s){const{code:r}=s;if(!(r!==void 0&&Ft.has(r))||o>=Lt)throw s;const i=Wt*2**o;await new Promise(c=>{setTimeout(c,i)}),o+=1}},"renameWithRetry"),g=h(async(t,e,o)=>{const s=await k(t),r=o??await b(t,e);await M(D(s,e),{force:!0}),r&&await M(r.logFile,{force:!0}).catch(()=>{})},"deleteEntry"),f=h(t=>{try{return process.kill(t,0),!0}catch{return!1}},"isAlive"),le=h(async t=>{const e=await At(t),o=[],s=[];for(const r of e){if(f(r.pid)){s.push(r);continue}const i=await b(t,r.id);if(i&&i.pid!==r.pid){s.push(i);continue}await g(t,r.id,r).catch(()=>{}),o.push(r.id)}return{pruned:o,surviving:s}},"pruneDead"),Bt=h(t=>new Promise(e=>{setTimeout(e,t)}),"sleep"),Gt=h(async t=>{try{const e=await nt(t,"wx",R);try{await e.writeFile(String(process.pid))}finally{await e.close().catch(()=>{})}return!0}catch(e){if(e.code==="EEXIST")return!1;throw e}},"tryClaimLock"),Vt=h(async t=>{let e;try{const o=await at(t,"utf8"),s=Number.parseInt(o.trim(),10);e=Number.isFinite(s)?s:void 0}catch{return!0}if(e!==void 0&&!f(e))return!0;try{const o=await ct(t);return Date.now()-o.mtimeMs>Ct}catch{return!0}},"isLockStale"),B=h(async(t,e,o)=>{const s=await k(t),r=xt(s,e),i=Date.now();for(;!await Gt(r);){if(await Vt(r)){await O(r).catch(()=>{});continue}if(Date.now()-i>=x)throw new Error(`Could not acquire service lock for ${e} within ${String(x)}ms — another \`vis service\` invocation appears to be holding it.`);await Bt(jt)}try{return await o()}finally{await O(r).catch(()=>{})}},"withServiceLock");var qt=Object.defineProperty,l=n((t,e)=>qt(t,"name",{value:e,configurable:!0}),"r");function y(t,e={},o){for(const s in t){const r=t[s],i=o?`${o}:${s}`:s;typeof r=="object"&&r!==null?y(r,e,i):typeof r=="function"&&(e[i]=r)}return e}n(y,"c");l(y,"flatHooks");function Xt(...t){const e={};for(const o of t){const s=y(o);for(const r in s)e[r]?e[r].push(s[r]):e[r]=[s[r]]}for(const o in e)if(e[o].length>1){const s=e[o];e[o]=(...r)=>G(s,i=>i(...r))}else e[o]=e[o][0];return e}n(Xt,"v");l(Xt,"mergeHooks");function G(t,e){return t.reduce((o,s)=>o.then(()=>e(s)),Promise.resolve())}n(G,"d$1");l(G,"serial");const V=(()=>{if(console.createTask)return console.createTask;const t={run:l(e=>e(),"run")};return()=>t})();function $(t,e,o,s){for(let r=o;r<t.length;r+=1)try{const i=s?s.run(()=>t[r](...e)):t[r](...e);if(i&&typeof i.then=="function")return Promise.resolve(i).then(()=>$(t,e,r+1,s))}catch(i){return Promise.reject(i)}}n($,"k");l($,"callHooks");function q(t,e,o){if(t.length>0)return $(t,e,0,V(o))}n(q,"y");l(q,"serialTaskCaller");function X(t,e,o){if(t.length>0){const s=V(o);return Promise.all(t.map(r=>s.run(()=>r(...e))))}}n(X,"m");l(X,"parallelTaskCaller");function Yt(t,e){return t.reduce((o,s)=>o.then(()=>s(...e||[])),Promise.resolve())}n(Yt,"x");l(Yt,"serialCaller");function Jt(t,e){return Promise.all(t.map(o=>o(...e||[])))}n(Jt,"P");l(Jt,"parallelCaller");function _(t,e){for(const o of[...t])o(e)}n(_,"a");l(_,"callEachWith");var Kt=class{static{n(this,"p")}static{l(this,"Hookable")}_hooks;_before;_after;_deprecatedHooks;_deprecatedMessages;constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(t,e,o={}){if(!t||typeof e!="function")return()=>{};const s=t;let r;for(;this._deprecatedHooks[t];)r=this._deprecatedHooks[t],t=r.to;if(r&&!o.allowDeprecated){let i=r.message;i||(i=`${s} hook has been deprecated`+(r.to?`, please use ${r.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(i)||(console.warn(i),this._deprecatedMessages.add(i))}if(!e.name)try{Object.defineProperty(e,"name",{get:l(()=>"_"+t.replace(/\W+/g,"_")+"_hook_cb","get"),configurable:!0})}catch{}return this._hooks[t]=this._hooks[t]||[],this._hooks[t].push(e),()=>{e&&(this.removeHook(t,e),e=void 0)}}hookOnce(t,e){let o,s=l((...r)=>(typeof o=="function"&&o(),o=void 0,s=void 0,e(...r)),"_function");return o=this.hook(t,s),o}removeHook(t,e){const o=this._hooks[t];if(o){const s=o.indexOf(e);s!==-1&&o.splice(s,1),o.length===0&&(this._hooks[t]=void 0)}}clearHook(t){this._hooks[t]=void 0}deprecateHook(t,e){this._deprecatedHooks[t]=typeof e=="string"?{to:e}:e;const o=this._hooks[t]||[];this._hooks[t]=void 0;for(const s of o)this.hook(t,s)}deprecateHooks(t){for(const e in t)this.deprecateHook(e,t[e])}addHooks(t){const e=y(t),o=Object.keys(e).map(s=>this.hook(s,e[s]));return()=>{for(const s of o)s();o.length=0}}removeHooks(t){const e=y(t);for(const o in e)this.removeHook(o,e[o])}removeAllHooks(){this._hooks={}}callHook(t,...e){return this.callHookWith(q,t,e)}callHookParallel(t,...e){return this.callHookWith(X,t,e)}callHookWith(t,e,o){const s=this._before||this._after?{name:e,args:o,context:{}}:void 0;this._before&&_(this._before,s);const r=t(this._hooks[e]?[...this._hooks[e]]:[],o,e);return r instanceof Promise?r.finally(()=>{this._after&&s&&_(this._after,s)}):(this._after&&s&&_(this._after,s),r)}beforeEach(t){return this._before=this._before||[],this._before.push(t),()=>{if(this._before!==void 0){const e=this._before.indexOf(t);e!==-1&&this._before.splice(e,1)}}}afterEach(t){return this._after=this._after||[],this._after.push(t),()=>{if(this._after!==void 0){const e=this._after.indexOf(t);e!==-1&&this._after.splice(e,1)}}}};function Y(){return new Kt}n(Y,"w$1");l(Y,"createHooks");(class{static{l(this,"HookableCore")}_hooks;constructor(){this._hooks={}}hook(t,e){return!t||typeof e!="function"?()=>{}:(this._hooks[t]=this._hooks[t]||[],this._hooks[t].push(e),()=>{e&&(this.removeHook(t,e),e=void 0)})}removeHook(t,e){const o=this._hooks[t];if(o){const s=o.indexOf(e);s!==-1&&o.splice(s,1),o.length===0&&(this._hooks[t]=void 0)}}callHook(t,...e){const o=this._hooks[t];if(!(!o||o.length===0))return $(o,e,0)}});const A=typeof window<"u";function Ut(t,e={}){const o={inspect:A,group:A,filter:l(()=>!0,"filter"),...e},s=o.filter,r=typeof s=="string"?a=>a.startsWith(s):s,i=o.tag?`[${o.tag}] `:"",c=l(a=>i+a.name+"".padEnd(a._id,"\0"),"logPrefix"),d={},H=t.beforeEach(a=>{r!==void 0&&!r(a.name)||(d[a.name]=d[a.name]||0,a._id=d[a.name]++,console.time(c(a)))}),P=t.afterEach(a=>{r!==void 0&&!r(a.name)||(o.group&&console.groupCollapsed(a.name),o.inspect?console.timeLog(c(a),a.args):console.timeEnd(c(a)),o.group&&console.groupEnd(),d[a.name]--)});return{close:l(()=>{H(),P()},"close")}}n(Ut,"W");l(Ut,"createDebugger");var zt=Object.defineProperty,E=n((t,e)=>zt(t,"name",{value:e,configurable:!0}),"t$1");const he=E(()=>Y(),"createVisHooks"),de=E(async(t,e)=>{if(!(!e||e.length===0))for(const o of e){if(o.hooks)for(const[s,r]of Object.entries(o.hooks)){const i=Array.isArray(r)?r:[r];for(const c of i)t.hook(s,c)}o.setup&&await o.setup(t)}},"registerPlugins");class ue{static{n(this,"HookableLifeCycle")}static{E(this,"HookableLifeCycle")}#o;#e;#s=new Map;constructor(e,o){this.#o=e,this.#e=o}startTasks(e){for(const o of e)this.#s.set(o.id,o),this.#t("task:before",o)}endTasks(e){for(const o of e)this.#s.delete(o.task.id),this.#t("task:after",o.task,o),o.status==="failure"?this.#t("task:failure",o.task,o):Qt(o.status)&&this.#t("task:cacheHit",o.task,o)}printCacheMiss(e,o){this.#t("task:cacheMiss",e,o)}onTaskStdout(e,o){this.#t("task:stdout",e,o)}onTaskStderr(e,o){this.#t("task:stderr",e,o)}#t(e,...o){Promise.resolve(this.#o.callHook(e,...o)).catch(s=>{if(this.#e)try{this.#e(e,s)}catch{}})}}const Qt=E(t=>t==="local-cache"||t==="local-cache-kept-existing"||t==="remote-cache","isCacheStatus");var Zt=Object.defineProperty,te=n((t,e)=>Zt(t,"name",{value:e,configurable:!0}),"i");const I=process.platform==="win32",ee=te(async t=>{const{command:e,cwd:o,env:s,logFile:r}=t,i=ft(r,"a",R);let c;const d=I?"cmd":"/bin/sh",H=I?["/d","/s","/c",e]:["-c",e];try{c=ut(d,H,{cwd:o,detached:!0,env:wt({...process.env,...s},o),stdio:["ignore",i,i],windowsHide:!0})}finally{pt(i)}if(c.pid===void 0&&await new Promise((P,a)=>{c.once("spawn",()=>{P()}),c.once("error",U=>{a(U)})}),c.pid===void 0)throw new Error(`Failed to spawn detached process for command: ${e}`);return c.unref(),{pid:c.pid}},"spawnDetached");var oe=Object.defineProperty,S=n((t,e)=>oe(t,"name",{value:e,configurable:!0}),"t");const J=5e3,fe=S(async t=>B(t.workspaceRoot,t.id,async()=>{const e=await b(t.workspaceRoot,t.id);if(e&&f(e.pid))throw new Error(`Service ${t.id} is already running (pid ${String(e.pid)})`);e&&await g(t.workspaceRoot,t.id,e);const o=await k(t.workspaceRoot),s=T(t.id),r=w(o,`${s}.log`),{pid:i}=await ee({command:t.command,cwd:t.cwd,env:t.env,logFile:r}),c={command:t.command,config:t.config,cwd:t.cwd,env:t.config.env??{},id:t.id,logFile:r,pid:i,slug:s,startedAt:new Date().toISOString(),visVersion:process.env.VIS_VERSION??"0.0.0"};if(await It(t.workspaceRoot,c),t.skipReadiness!==!0)try{await Dt(t.config,{timeoutMs:t.readinessTimeoutMs})}catch(d){throw await K(i,t.config.killGracePeriodMs??J).catch(()=>{}),await g(t.workspaceRoot,t.id,c).catch(()=>{}),d}return{entry:c}}),"startService"),pe=S(async t=>B(t.workspaceRoot,t.id,async()=>{const e=await b(t.workspaceRoot,t.id);if(!e)return{stopped:!1};if(!f(e.pid))return await g(t.workspaceRoot,t.id,e),{stopped:!1};const o=t.graceMs??e.config.killGracePeriodMs??J;return await K(e.pid,o),await g(t.workspaceRoot,t.id,e),{stopped:!0}}),"stopService"),K=S(async(t,e)=>{F(t,"SIGTERM");const o=Date.now();for(;Date.now()-o<e;){if(!f(t))return;await new Promise(s=>{setTimeout(s,100)})}f(t)&&F(t,"SIGKILL")},"stopServiceByPid"),F=S((t,e)=>{try{process.platform==="win32"?process.kill(t,e):process.kill(-t,e)}catch(o){if(o.code==="ESRCH")return;throw o}},"sendSignalToServiceGroup");export{ue as H,Pt as S,b as a,pe as b,he as c,At as d,Dt as e,g as f,f as i,le as p,de as r,fe as s};
@@ -1 +1 @@
1
- var T=Object.defineProperty;var j=(n,e)=>T(n,"name",{value:e,configurable:!0});import{createRequire as A}from"node:module";import{k as R,h as C}from"../packem_chunks/bin.js";const B=A(import.meta.url),h=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,q=j(n=>{if(typeof h<"u"&&h.versions&&h.versions.node){const[e,t]=h.versions.node.split(".").map(Number);if(e>22||e===22&&t>=3||e===20&&t>=16)return h.getBuiltinModule(n)}return B(n)},"__cjs_getBuiltinModule"),{createRequire:N}=q("node:module");var U=Object.defineProperty,z=j((n,e)=>U(n,"name",{value:e,configurable:!0}),"L"),I=Object.defineProperty,F=z((n,e)=>I(n,"name",{value:e,configurable:!0}),"F");const J=N(import.meta.url),y=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,S=F(n=>{if(typeof y<"u"&&y.versions&&y.versions.node){const[e,t]=y.versions.node.split(".").map(Number);if(e>22||e===22&&t>=3||e===20&&t>=16)return y.getBuiltinModule(n)}return J(n)},"__cjs_getBuiltinModule"),{readFileSync:Y}=S("node:fs"),{readFile:Z}=S("node:fs/promises");var K=Object.defineProperty,l=F((n,e)=>K(n,"name",{value:e,configurable:!0}),"g");const G={sha256:"sha256",sha384:"sha384",sha512:"sha512"},H=1024,Q=/^[A-Z0-9+/]+={0,2}$/i,V=/.*node_modules\/((?:@[^/]+\/)?[^/]+)$/,k=/^['"]/,v=/['"]$/,X=/^[a-z][a-zA-Z0-9]*:\s*$/m,ee=/resolution:\s*\{[^}]*integrity:\s*([^,}\s]+)/,ne=/^["']?((?:@[^/@"']+\/)?[^@"'\n]+)@[^"'\n]+["']?:?[\t\v\f\r \u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*\n((?:[\t ][^\n]*\n?)+)/gm,te=/^\s+version:?\s+"?([^"\n]+)"?/m,se=/^\s+integrity[\s:]+"?([^"\s]+)"?/m,x=l(n=>{if(n.length>H)return;const e=n.indexOf("-");if(e<=0)return;const t=G[n.slice(0,e).toLowerCase()];if(!t)return;const s=n.slice(e+1);if(Q.test(s))try{const i=Buffer.from(s,"base64");return i.length===0?void 0:{algorithm:t,hex:i.toString("hex")}}catch{return}},"decodeSriIntegrity"),w=l((n,e,t)=>{const s=`${t.name}@${t.version}`;e.has(s)||(e.add(s),n.push(t))},"pushUniqueEntry"),m=l((n,e,t)=>{t&&Object.keys(t).length>0&&(n[e]={...t})},"copyDepMap"),g=l(n=>{if(!n)return;const e={};for(const[t,s]of Object.entries(n))e[t]=[s];return Object.keys(e).length>0?e:void 0},"liftDepMap"),re=l(n=>{const e=[],t=new Set;let s;try{s=JSON.parse(n)}catch{return e}if(!s.packages)return e;for(const[i,r]of Object.entries(s.packages)){if(!i||!r.version)continue;const p=V.exec(i);if(!p?.[1])continue;const c=r.name??p[1];if(c.startsWith("."))continue;const o={name:c,version:r.version};if(r.integrity){const a=x(r.integrity);a&&(o.integrity=a)}m(o,"dependencies",g(r.dependencies)),m(o,"peerDependencies",g(r.peerDependencies)),m(o,"optionalDependencies",g(r.optionalDependencies)),w(e,t,o)}return e},"parseNpmLockFile"),_=l(n=>{let e=n.trim();e.startsWith("/")&&(e=e.slice(1)),e=e.replace(k,"").replace(v,"");const t=e.indexOf("(");t>0&&(e=e.slice(0,t));const s=e.lastIndexOf("@");if(s<=0)return;const i=e.slice(0,s),r=e.slice(s+1);if(!(!i||!r||r.startsWith("link:")||r.startsWith("workspace:")||r.startsWith("file:")))return{name:i,version:r}},"splitPnpmPackageKey"),W=l((n,e)=>{const t=new RegExp(String.raw`^${e}:\s*$`,"m").exec(n);if(!t)return;const s=t.index+t[0].length,i=X.exec(n.slice(s));return n.slice(s,i?s+i.index:n.length)},"sliceTopLevelSection"),oe=l(n=>{const e=new Map,t=W(n,"snapshots");if(!t)return e;const s=/^ {2}(['"]?[^\s:][^:\n]*?['"]?):\s*\n((?: {4}[^\n]*\n?)+)/gm;let i;for(;(i=s.exec(t)??void 0)!==void 0;){const r=_(i[1]);if(!r)continue;const p=`${r.name}@${r.version}`,c=i[2],o=e.get(p)??{};for(const a of["dependencies","peerDependencies","optionalDependencies"]){const u=b(c,a);if(!u)continue;const d=o[a]??{};for(const[f,P]of Object.entries(u)){const D=d[f]??[];for(const $ of P)D.includes($)||D.push($);d[f]=D}o[a]=d}e.set(p,o)}return e},"parsePnpmSnapshotEdges"),ie=l(n=>{const e=[],t=new Set,s=W(n,"packages");if(!s)return e;const i=oe(n),r=/^ {2}(['"]?[^\s:][^:\n]*?['"]?):\s*\n((?: {4}[^\n]*\n?)+)/gm;let p;for(;(p=r.exec(s)??void 0)!==void 0;){const c=_(p[1]);if(!c)continue;const o=p[2],a=ee.exec(o),u={name:c.name,version:c.version};if(a?.[1]){const f=x(a[1]);f&&(u.integrity=f)}const d=i.get(`${c.name}@${c.version}`);m(u,"dependencies",d?.dependencies??b(o,"dependencies")),m(u,"peerDependencies",d?.peerDependencies??b(o,"peerDependencies")),m(u,"optionalDependencies",d?.optionalDependencies??b(o,"optionalDependencies")),w(e,t,u)}return e},"parsePnpmLockFile"),b=l((n,e)=>{const t=new RegExp(String.raw`^ {4}${e}:\s*\n((?: {6,}[^\n]*\n?)+)`,"m").exec(n);if(!t?.[1])return;const s={},i=/^ {6}([^\s:]+):\s*([^\n]+)/gm;let r;for(;(r=i.exec(t[1])??void 0)!==void 0;){const p=r[1].replace(k,"").replace(v,"");let c=r[2].trim();c=c.replace(k,"").replace(v,"");const o=c.indexOf("(");if(o>0&&(c=c.slice(0,o).trim()),!p||!c)continue;const a=s[p]??[];a.includes(c)||a.push(c),s[p]=a}return Object.keys(s).length>0?s:void 0},"extractPnpmDependencyMap"),ce=l(n=>{const e=[],t=new Set,s=ne;s.lastIndex=0;let i;for(;(i=s.exec(n)??void 0)!==void 0;){const r=i[1].replace(k,"").replace(v,"");if(!r)continue;const p=i[2],c=te.exec(p);if(!c?.[1])continue;const o={name:r,version:c[1].trim()},a=se.exec(p);if(a?.[1]){const u=x(a[1]);u&&(o.integrity=u)}m(o,"dependencies",O(p,"dependencies")),m(o,"peerDependencies",O(p,"peerDependencies")),m(o,"optionalDependencies",O(p,"optionalDependencies")),w(e,t,o)}return e},"parseYarnLockFile"),O=l((n,e)=>{const t=new RegExp(String.raw`^ {2}${e}:\s*\n((?: {4,}[^\n]*\n?)+)`,"m").exec(n);if(!t?.[1])return;const s={},i=/^ {4}(['"]?[^\s:'"]+['"]?)\s*(?::\s*)?['"]([^'"\n]+)['"]/gm;let r;for(;(r=i.exec(t[1])??void 0)!==void 0;){const p=r[1].replace(k,"").replace(v,""),c=r[2];if(p&&c){const o=s[p]??[];o.includes(c)||o.push(c),s[p]=o}}return Object.keys(s).length>0?s:void 0},"extractYarnDependencyMap"),pe=/,(?=\s*[}\]])/g,ae=l(n=>{const e=[],t=new Set;let s;try{s=JSON.parse(n.replaceAll(pe,""))}catch{return e}if(!s.packages)return e;for(const i of Object.values(s.packages)){const r=i[0];if(typeof r!="string")continue;const p=r.indexOf("@",1);if(p<=0)continue;const c=r.slice(0,p),o=r.slice(p+1);if(!c||!o||o.startsWith("workspace:")||o.startsWith("link:")||o.startsWith("file:"))continue;const a={name:c,version:o},u=i[3];if(typeof u=="string"&&u.length>0){const f=x(u);f&&(a.integrity=f)}const d=i[2];if(d&&typeof d=="object"&&!Array.isArray(d)){const f=d;m(a,"dependencies",g(f.dependencies)),m(a,"peerDependencies",g(f.peerDependencies)),m(a,"optionalDependencies",g(f.optionalDependencies))}w(e,t,a)}return e},"parseBunLockFile"),E=l(n=>{if(n.endsWith("pnpm-lock.yaml"))return"pnpm";if(n.endsWith("package-lock.json"))return"npm";if(n.endsWith("yarn.lock"))return"yarn";if(n.endsWith("bun.lock"))return"bun"},"inferLockFileType"),L=l((n,e)=>{switch(e){case"bun":return ae(n);case"npm":return re(n);case"pnpm":return ie(n);case"yarn":return ce(n);default:return[]}},"parseLockFileContent"),M=["pnpm-lock.yaml","package-lock.json","yarn.lock","bun.lock"];l(async n=>{const e=await R(M,{type:"file",...n&&{cwd:n}});if(!e)throw new Error("Could not find a supported lock file (pnpm-lock.yaml, package-lock.json, yarn.lock, bun.lock)");const t=E(e);if(!t)throw new Error(`Unsupported lock file: ${e}`);const s=await Z(e,"utf8");return{entries:L(s,t),path:e,type:t}},"parseLockFile");l(n=>{const e=C(M,{type:"file",...n&&{cwd:n}});if(!e)throw new Error("Could not find a supported lock file (pnpm-lock.yaml, package-lock.json, yarn.lock, bun.lock)");const t=E(e);if(!t)throw new Error(`Unsupported lock file: ${e}`);return{entries:L(Y(e,"utf8"),t),path:e,type:t}},"parseLockFileSync");export{L as F};
1
+ var T=Object.defineProperty;var j=(n,e)=>T(n,"name",{value:e,configurable:!0});import{createRequire as A}from"node:module";import{k as R,j as C}from"../packem_chunks/bin.js";const B=A(import.meta.url),h=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,q=j(n=>{if(typeof h<"u"&&h.versions&&h.versions.node){const[e,t]=h.versions.node.split(".").map(Number);if(e>22||e===22&&t>=3||e===20&&t>=16)return h.getBuiltinModule(n)}return B(n)},"__cjs_getBuiltinModule"),{createRequire:N}=q("node:module");var U=Object.defineProperty,z=j((n,e)=>U(n,"name",{value:e,configurable:!0}),"L"),I=Object.defineProperty,F=z((n,e)=>I(n,"name",{value:e,configurable:!0}),"F");const J=N(import.meta.url),y=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,S=F(n=>{if(typeof y<"u"&&y.versions&&y.versions.node){const[e,t]=y.versions.node.split(".").map(Number);if(e>22||e===22&&t>=3||e===20&&t>=16)return y.getBuiltinModule(n)}return J(n)},"__cjs_getBuiltinModule"),{readFileSync:Y}=S("node:fs"),{readFile:Z}=S("node:fs/promises");var K=Object.defineProperty,l=F((n,e)=>K(n,"name",{value:e,configurable:!0}),"g");const G={sha256:"sha256",sha384:"sha384",sha512:"sha512"},H=1024,Q=/^[A-Z0-9+/]+={0,2}$/i,V=/.*node_modules\/((?:@[^/]+\/)?[^/]+)$/,k=/^['"]/,v=/['"]$/,X=/^[a-z][a-zA-Z0-9]*:\s*$/m,ee=/resolution:\s*\{[^}]*integrity:\s*([^,}\s]+)/,ne=/^["']?((?:@[^/@"']+\/)?[^@"'\n]+)@[^"'\n]+["']?:?[\t\v\f\r \u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*\n((?:[\t ][^\n]*\n?)+)/gm,te=/^\s+version:?\s+"?([^"\n]+)"?/m,se=/^\s+integrity[\s:]+"?([^"\s]+)"?/m,x=l(n=>{if(n.length>H)return;const e=n.indexOf("-");if(e<=0)return;const t=G[n.slice(0,e).toLowerCase()];if(!t)return;const s=n.slice(e+1);if(Q.test(s))try{const i=Buffer.from(s,"base64");return i.length===0?void 0:{algorithm:t,hex:i.toString("hex")}}catch{return}},"decodeSriIntegrity"),w=l((n,e,t)=>{const s=`${t.name}@${t.version}`;e.has(s)||(e.add(s),n.push(t))},"pushUniqueEntry"),m=l((n,e,t)=>{t&&Object.keys(t).length>0&&(n[e]={...t})},"copyDepMap"),g=l(n=>{if(!n)return;const e={};for(const[t,s]of Object.entries(n))e[t]=[s];return Object.keys(e).length>0?e:void 0},"liftDepMap"),re=l(n=>{const e=[],t=new Set;let s;try{s=JSON.parse(n)}catch{return e}if(!s.packages)return e;for(const[i,r]of Object.entries(s.packages)){if(!i||!r.version)continue;const p=V.exec(i);if(!p?.[1])continue;const c=r.name??p[1];if(c.startsWith("."))continue;const o={name:c,version:r.version};if(r.integrity){const a=x(r.integrity);a&&(o.integrity=a)}m(o,"dependencies",g(r.dependencies)),m(o,"peerDependencies",g(r.peerDependencies)),m(o,"optionalDependencies",g(r.optionalDependencies)),w(e,t,o)}return e},"parseNpmLockFile"),_=l(n=>{let e=n.trim();e.startsWith("/")&&(e=e.slice(1)),e=e.replace(k,"").replace(v,"");const t=e.indexOf("(");t>0&&(e=e.slice(0,t));const s=e.lastIndexOf("@");if(s<=0)return;const i=e.slice(0,s),r=e.slice(s+1);if(!(!i||!r||r.startsWith("link:")||r.startsWith("workspace:")||r.startsWith("file:")))return{name:i,version:r}},"splitPnpmPackageKey"),W=l((n,e)=>{const t=new RegExp(String.raw`^${e}:\s*$`,"m").exec(n);if(!t)return;const s=t.index+t[0].length,i=X.exec(n.slice(s));return n.slice(s,i?s+i.index:n.length)},"sliceTopLevelSection"),oe=l(n=>{const e=new Map,t=W(n,"snapshots");if(!t)return e;const s=/^ {2}(['"]?[^\s:][^:\n]*?['"]?):\s*\n((?: {4}[^\n]*\n?)+)/gm;let i;for(;(i=s.exec(t)??void 0)!==void 0;){const r=_(i[1]);if(!r)continue;const p=`${r.name}@${r.version}`,c=i[2],o=e.get(p)??{};for(const a of["dependencies","peerDependencies","optionalDependencies"]){const u=b(c,a);if(!u)continue;const d=o[a]??{};for(const[f,P]of Object.entries(u)){const D=d[f]??[];for(const $ of P)D.includes($)||D.push($);d[f]=D}o[a]=d}e.set(p,o)}return e},"parsePnpmSnapshotEdges"),ie=l(n=>{const e=[],t=new Set,s=W(n,"packages");if(!s)return e;const i=oe(n),r=/^ {2}(['"]?[^\s:][^:\n]*?['"]?):\s*\n((?: {4}[^\n]*\n?)+)/gm;let p;for(;(p=r.exec(s)??void 0)!==void 0;){const c=_(p[1]);if(!c)continue;const o=p[2],a=ee.exec(o),u={name:c.name,version:c.version};if(a?.[1]){const f=x(a[1]);f&&(u.integrity=f)}const d=i.get(`${c.name}@${c.version}`);m(u,"dependencies",d?.dependencies??b(o,"dependencies")),m(u,"peerDependencies",d?.peerDependencies??b(o,"peerDependencies")),m(u,"optionalDependencies",d?.optionalDependencies??b(o,"optionalDependencies")),w(e,t,u)}return e},"parsePnpmLockFile"),b=l((n,e)=>{const t=new RegExp(String.raw`^ {4}${e}:\s*\n((?: {6,}[^\n]*\n?)+)`,"m").exec(n);if(!t?.[1])return;const s={},i=/^ {6}([^\s:]+):\s*([^\n]+)/gm;let r;for(;(r=i.exec(t[1])??void 0)!==void 0;){const p=r[1].replace(k,"").replace(v,"");let c=r[2].trim();c=c.replace(k,"").replace(v,"");const o=c.indexOf("(");if(o>0&&(c=c.slice(0,o).trim()),!p||!c)continue;const a=s[p]??[];a.includes(c)||a.push(c),s[p]=a}return Object.keys(s).length>0?s:void 0},"extractPnpmDependencyMap"),ce=l(n=>{const e=[],t=new Set,s=ne;s.lastIndex=0;let i;for(;(i=s.exec(n)??void 0)!==void 0;){const r=i[1].replace(k,"").replace(v,"");if(!r)continue;const p=i[2],c=te.exec(p);if(!c?.[1])continue;const o={name:r,version:c[1].trim()},a=se.exec(p);if(a?.[1]){const u=x(a[1]);u&&(o.integrity=u)}m(o,"dependencies",O(p,"dependencies")),m(o,"peerDependencies",O(p,"peerDependencies")),m(o,"optionalDependencies",O(p,"optionalDependencies")),w(e,t,o)}return e},"parseYarnLockFile"),O=l((n,e)=>{const t=new RegExp(String.raw`^ {2}${e}:\s*\n((?: {4,}[^\n]*\n?)+)`,"m").exec(n);if(!t?.[1])return;const s={},i=/^ {4}(['"]?[^\s:'"]+['"]?)\s*(?::\s*)?['"]([^'"\n]+)['"]/gm;let r;for(;(r=i.exec(t[1])??void 0)!==void 0;){const p=r[1].replace(k,"").replace(v,""),c=r[2];if(p&&c){const o=s[p]??[];o.includes(c)||o.push(c),s[p]=o}}return Object.keys(s).length>0?s:void 0},"extractYarnDependencyMap"),pe=/,(?=\s*[}\]])/g,ae=l(n=>{const e=[],t=new Set;let s;try{s=JSON.parse(n.replaceAll(pe,""))}catch{return e}if(!s.packages)return e;for(const i of Object.values(s.packages)){const r=i[0];if(typeof r!="string")continue;const p=r.indexOf("@",1);if(p<=0)continue;const c=r.slice(0,p),o=r.slice(p+1);if(!c||!o||o.startsWith("workspace:")||o.startsWith("link:")||o.startsWith("file:"))continue;const a={name:c,version:o},u=i[3];if(typeof u=="string"&&u.length>0){const f=x(u);f&&(a.integrity=f)}const d=i[2];if(d&&typeof d=="object"&&!Array.isArray(d)){const f=d;m(a,"dependencies",g(f.dependencies)),m(a,"peerDependencies",g(f.peerDependencies)),m(a,"optionalDependencies",g(f.optionalDependencies))}w(e,t,a)}return e},"parseBunLockFile"),E=l(n=>{if(n.endsWith("pnpm-lock.yaml"))return"pnpm";if(n.endsWith("package-lock.json"))return"npm";if(n.endsWith("yarn.lock"))return"yarn";if(n.endsWith("bun.lock"))return"bun"},"inferLockFileType"),L=l((n,e)=>{switch(e){case"bun":return ae(n);case"npm":return re(n);case"pnpm":return ie(n);case"yarn":return ce(n);default:return[]}},"parseLockFileContent"),M=["pnpm-lock.yaml","package-lock.json","yarn.lock","bun.lock"];l(async n=>{const e=await R(M,{type:"file",...n&&{cwd:n}});if(!e)throw new Error("Could not find a supported lock file (pnpm-lock.yaml, package-lock.json, yarn.lock, bun.lock)");const t=E(e);if(!t)throw new Error(`Unsupported lock file: ${e}`);const s=await Z(e,"utf8");return{entries:L(s,t),path:e,type:t}},"parseLockFile");l(n=>{const e=C(M,{type:"file",...n&&{cwd:n}});if(!e)throw new Error("Could not find a supported lock file (pnpm-lock.yaml, package-lock.json, yarn.lock, bun.lock)");const t=E(e);if(!t)throw new Error(`Unsupported lock file: ${e}`);return{entries:L(Y(e,"utf8"),t),path:e,type:t}},"parseLockFileSync");export{L as F};
@@ -1,4 +1,4 @@
1
- var E=Object.defineProperty;var R=(u,p)=>E(u,"name",{value:p,configurable:!0});import{M as d,i as o,$}from"./readFileSync-CGmzMUF2-D6rUjGDn.js";import{B as h}from"../packem_chunks/config.js";import{l as x}from"../packem_chunks/bin.js";var S=Object.defineProperty,b=R((u,p)=>S(u,"name",{value:p,configurable:!0}),"k");const U=b((u,p,A,m=[])=>{const i=[];if(A===void 0)return i.push("minimumReleaseAge not set in vis.config; skipping native sync."),i;const r=Number.isFinite(A)?Math.max(0,Math.round(A)):0;switch(u){case"bun":{const n=d(p,"bunfig.toml");let e=o(n)?$(n):"";const a=r*60,t=`minimumReleaseAge = ${String(a)}`,s=m.length>0?`minimumReleaseAgeExcludes = [${m.map(c=>`"${c.replaceAll(String.raw`"`,String.raw`\"`)}"`).join(", ")}]`:void 0,g=/^\[install\][ \t]*\n/m.exec(e);if(g?.index===void 0){const c=s?`${t}
1
+ var E=Object.defineProperty;var R=(u,p)=>E(u,"name",{value:p,configurable:!0});import{M as d,i as o,$}from"./readFileSync-CGmzMUF2-D6rUjGDn.js";import{B as h}from"../packem_chunks/config.js";import{m as x}from"../packem_chunks/bin.js";var S=Object.defineProperty,b=R((u,p)=>S(u,"name",{value:p,configurable:!0}),"k");const U=b((u,p,A,m=[])=>{const i=[];if(A===void 0)return i.push("minimumReleaseAge not set in vis.config; skipping native sync."),i;const r=Number.isFinite(A)?Math.max(0,Math.round(A)):0;switch(u){case"bun":{const n=d(p,"bunfig.toml");let e=o(n)?$(n):"";const a=r*60,t=`minimumReleaseAge = ${String(a)}`,s=m.length>0?`minimumReleaseAgeExcludes = [${m.map(c=>`"${c.replaceAll(String.raw`"`,String.raw`\"`)}"`).join(", ")}]`:void 0,g=/^\[install\][ \t]*\n/m.exec(e);if(g?.index===void 0){const c=s?`${t}
2
2
  ${s}`:t;e=`${e.trimEnd()?`${e.trimEnd()}
3
3
 
4
4
  `:""}[install]
@@ -1,2 +1,2 @@
1
- var U=Object.defineProperty;var l=(e,o)=>U(e,"name",{value:o,configurable:!0});import{createRequire as P}from"node:module";import{K as z}from"../packem_chunks/config.js";import{NATIVE_BINDING_VERSION as M,osvBloomDecode as Y,osvBloomProbe as Q,osvBloomProbeBatch as X}from"#native";const V=P(import.meta.url),d=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,O=l(e=>{if(typeof d<"u"&&d.versions&&d.versions.node){const[o,t]=d.versions.node.split(".").map(Number);if(o>22||o===22&&t>=3||o===20&&t>=16)return d.getBuiltinModule(e)}return V(e)},"__cjs_getBuiltinModule"),{randomUUID:H,createHash:F}=O("node:crypto"),{existsSync:p}=O("node:fs"),{readFile:y,mkdir:L,stat:I,rm:q,writeFile:G,rename:J,unlink:K}=O("node:fs/promises"),{join:w,dirname:W}=O("node:path");var Z=Object.defineProperty,s=l((e,o)=>Z(e,"name",{value:o,configurable:!0}),"r");const N=5;if(M!==N)throw new Error(`vis native binding ABI mismatch in osv-bloom: expected ${N}, got ${M}. Rebuild via \`pnpm --filter @visulima/vis run build:native\` or reinstall the platform binding package.`);const ut="https://endevco.github.io/osv-bloom",tt=new Set(["endevco.github.io"]);class g extends Error{static{l(this,"OsvBloomSourceNotAllowedError")}static{s(this,"OsvBloomSourceNotAllowedError")}cause="OSV_BLOOM_SOURCE_NOT_ALLOWED";constructor(o){super(`osv-bloom source host '${o}' is not in the built-in allowlist. Add it to \`security.audit.advisories.bloom.allowedHosts\` if intentional.`),this.name="OsvBloomSourceNotAllowedError"}}class B extends Error{static{l(this,"OsvBloomNetworkError")}static{s(this,"OsvBloomNetworkError")}cause="OSV_BLOOM_NETWORK";constructor(o,t){super(`osv-bloom fetch failed for ${o}: ${t}. Check connectivity, proxy env vars, or --source.`),this.name="OsvBloomNetworkError"}}class et extends Error{static{l(this,"OsvBloomIntegrityError")}static{s(this,"OsvBloomIntegrityError")}cause="OSV_BLOOM_INTEGRITY";constructor(o,t){super(`osv-bloom filter.bin sha256 mismatch (expected ${o}, got ${t}). Refusing to install a corrupted filter.`),this.name="OsvBloomIntegrityError"}}class v extends Error{static{l(this,"OsvBloomManifestError")}static{s(this,"OsvBloomManifestError")}cause="OSV_BLOOM_MANIFEST";constructor(o){super(`osv-bloom manifest invalid: ${o}`),this.name="OsvBloomManifestError"}}class ot extends Error{static{l(this,"OsvBloomCacheMissError")}static{s(this,"OsvBloomCacheMissError")}cause="OSV_BLOOM_CACHE_MISS";constructor(o){super(`No osv-bloom cache at ${o}. Run 'vis advisories bloom sync' first.`),this.name="OsvBloomCacheMissError"}}const b=s(e=>{const o=z("vis",{create:!0,cwd:e})??w(e,"node_modules",".cache","vis");return w(o,"osv-bloom")},"resolveOsvBloomCacheDir"),h=s(e=>w(e,"filter.bin"),"filterPath"),R=s(e=>w(e,"manifest.json"),"manifestPath"),T=s(e=>w(e,"state.json"),"statePath"),st=s((e,o)=>{let t;try{t=new URL(e)}catch{throw new g(e)}if(!t.host)throw new g(e);if(t.protocol!=="https:")throw new g(`${t.protocol}//${t.host}`);if(!new Set([...tt,...o??[]]).has(t.host))throw new g(t.host);return t},"validateOsvBloomSource"),ht=s(async e=>{const o=Date.now(),t=e.cacheDir??b(e.workspaceRoot);await L(t,{recursive:!0});const r=st(e.source,e.allowedHosts),a=new URL("manifest.json",$(r.toString())),i=new URL("filter.bin",$(r.toString())),n=await x(a,{method:"GET"});if(!n.ok)throw new B(a.toString(),n.status);const S=await n.text(),c=k(S),m=await C(t);if(!e.force&&m?.setDigestSha256===c.setDigestSha256&&p(h(t)))return{bytesOnDisk:(await I(h(t))).size,cacheDir:t,durationMs:Date.now()-o,manifest:c,upToDate:!0};const E={};!e.force&&m?.filterEtag&&(E.headers={"if-none-match":m.filterEtag});const f=await x(i,{...E,method:"GET"});if(f.status===304&&m&&p(h(t)))return await A(t,S,{fetchedAtIso:new Date().toISOString(),filterEtag:m.filterEtag,setDigestSha256:c.setDigestSha256}),{bytesOnDisk:(await I(h(t))).size,cacheDir:t,durationMs:Date.now()-o,manifest:c,upToDate:!0};if(!f.ok||!f.body)throw new B(i.toString(),f.status);const u=Buffer.from(await f.arrayBuffer());e.onProgress&&e.onProgress(u.length,u.length);const D=rt(u);if(D!==c.filterSha256)throw new et(c.filterSha256,D);if(u.length!==c.bloomByteLen)throw new v(`filter.bin length ${u.length} does not match manifest.bloom_byte_len ${c.bloomByteLen}`);const j=f.headers.get("etag")??void 0;return await _(h(t),u),await A(t,S,{fetchedAtIso:new Date().toISOString(),filterEtag:j,setDigestSha256:c.setDigestSha256}),{bytesOnDisk:u.length,cacheDir:t,durationMs:Date.now()-o,manifest:c,upToDate:!1}},"syncOsvBloom"),ft=s(async(e,o)=>{const t=o?.cacheDir??b(e),r=h(t);if(!p(r)){if(o?.softFail)return null;throw new ot(t)}const a=await y(r);return Y(a)},"loadOsvBloomHandle");s((e,o,t)=>Q(e,o,t),"probeOsvBloom");const mt=s((e,o)=>X(e,o),"probeOsvBloomBatch"),dt=s(async(e,o)=>{const t=o??b(e);if(!p(h(t)))return{cacheDir:t,present:!1};let r,a;try{r=k(await y(R(t),"utf8"))}catch{}try{a=await C(t)}catch{}return{cacheDir:t,fetchedAtIso:a?.fetchedAtIso,manifest:r,present:!0}},"getOsvBloomStatus");s(async(e,o)=>{const t=o??b(e);await q(t,{force:!0,recursive:!0})},"clearOsvBloomCache");const k=s(e=>{let o;try{o=JSON.parse(e)}catch(i){throw new v(i instanceof Error?i.message:String(i))}const t=s(i=>{const n=o[i];if(typeof n!="number"||Number.isNaN(n))throw new v(`field '${i}' missing or non-numeric`);return n},"requireNumber"),r=s(i=>{const n=o[i];if(typeof n!="string"||n.length===0)throw new v(`field '${i}' missing or empty`);return n},"requireString"),a=t("format_version");if(a!==1)throw new v(`unsupported format_version ${a} (this build expects v1)`);return{advisoryCount:t("advisory_count"),bloomByteLen:t("bloom_byte_len"),bloomKHashes:t("bloom_k_hashes"),bloomMBits:t("bloom_m_bits"),builtAtRfc3339:r("built_at_rfc3339"),builtAtUnix:t("built_at_unix"),entryCount:t("entry_count"),filterSha256:r("filter_sha256"),formatVersion:a,setDigestSha256:r("set_digest_sha256"),sourceUrl:r("source_url"),targetFpr:t("target_fpr")}},"parseManifest"),C=s(async e=>{try{const o=await y(T(e),"utf8"),t=JSON.parse(o);return typeof t.setDigestSha256!="string"||typeof t.fetchedAtIso!="string"?void 0:{fetchedAtIso:t.fetchedAtIso,filterEtag:typeof t.filterEtag=="string"?t.filterEtag:void 0,setDigestSha256:t.setDigestSha256}}catch{return}},"readState"),A=s(async(e,o,t)=>{await _(R(e),Buffer.from(o,"utf8")),await _(T(e),Buffer.from(`${JSON.stringify(t,void 0,2)}
2
- `,"utf8"))},"persistManifestAndState"),_=s(async(e,o)=>{await L(W(e),{recursive:!0});const t=`${e}.${process.pid}.${H()}.tmp`;try{await G(t,o),await J(t,e)}catch(r){throw await K(t).catch(()=>{}),r}},"atomicWrite"),rt=s(e=>F("sha256").update(e).digest("hex"),"sha256Hex"),$=s(e=>e.endsWith("/")?e:`${e}/`,"ensureTrailingSlash"),it=3e4,x=s(async(e,o)=>{try{return await fetch(e,{...o,signal:AbortSignal.timeout(it)})}catch(t){throw new B(e.toString(),t instanceof Error?t.message:String(t))}},"safeFetch");export{ut as D,ot as O,dt as g,ft as l,mt as p,ht as s};
1
+ var U=Object.defineProperty;var l=(e,o)=>U(e,"name",{value:o,configurable:!0});import{createRequire as P}from"node:module";import{D as K}from"../packem_chunks/config.js";import{NATIVE_BINDING_VERSION as M,osvBloomDecode as Y,osvBloomProbe as Q,osvBloomProbeBatch as X}from"#native";const V=P(import.meta.url),d=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,O=l(e=>{if(typeof d<"u"&&d.versions&&d.versions.node){const[o,t]=d.versions.node.split(".").map(Number);if(o>22||o===22&&t>=3||o===20&&t>=16)return d.getBuiltinModule(e)}return V(e)},"__cjs_getBuiltinModule"),{randomUUID:H,createHash:F}=O("node:crypto"),{existsSync:p}=O("node:fs"),{readFile:y,mkdir:L,stat:I,rm:q,writeFile:G,rename:J,unlink:W}=O("node:fs/promises"),{join:w,dirname:z}=O("node:path");var Z=Object.defineProperty,s=l((e,o)=>Z(e,"name",{value:o,configurable:!0}),"r");const N=5;if(M!==N)throw new Error(`vis native binding ABI mismatch in osv-bloom: expected ${N}, got ${M}. Rebuild via \`pnpm --filter @visulima/vis run build:native\` or reinstall the platform binding package.`);const ut="https://endevco.github.io/osv-bloom",tt=new Set(["endevco.github.io"]);class g extends Error{static{l(this,"OsvBloomSourceNotAllowedError")}static{s(this,"OsvBloomSourceNotAllowedError")}cause="OSV_BLOOM_SOURCE_NOT_ALLOWED";constructor(o){super(`osv-bloom source host '${o}' is not in the built-in allowlist. Add it to \`security.audit.advisories.bloom.allowedHosts\` if intentional.`),this.name="OsvBloomSourceNotAllowedError"}}class B extends Error{static{l(this,"OsvBloomNetworkError")}static{s(this,"OsvBloomNetworkError")}cause="OSV_BLOOM_NETWORK";constructor(o,t){super(`osv-bloom fetch failed for ${o}: ${t}. Check connectivity, proxy env vars, or --source.`),this.name="OsvBloomNetworkError"}}class et extends Error{static{l(this,"OsvBloomIntegrityError")}static{s(this,"OsvBloomIntegrityError")}cause="OSV_BLOOM_INTEGRITY";constructor(o,t){super(`osv-bloom filter.bin sha256 mismatch (expected ${o}, got ${t}). Refusing to install a corrupted filter.`),this.name="OsvBloomIntegrityError"}}class v extends Error{static{l(this,"OsvBloomManifestError")}static{s(this,"OsvBloomManifestError")}cause="OSV_BLOOM_MANIFEST";constructor(o){super(`osv-bloom manifest invalid: ${o}`),this.name="OsvBloomManifestError"}}class ot extends Error{static{l(this,"OsvBloomCacheMissError")}static{s(this,"OsvBloomCacheMissError")}cause="OSV_BLOOM_CACHE_MISS";constructor(o){super(`No osv-bloom cache at ${o}. Run 'vis advisories bloom sync' first.`),this.name="OsvBloomCacheMissError"}}const b=s(e=>{const o=K("vis",{create:!0,cwd:e})??w(e,"node_modules",".cache","vis");return w(o,"osv-bloom")},"resolveOsvBloomCacheDir"),h=s(e=>w(e,"filter.bin"),"filterPath"),R=s(e=>w(e,"manifest.json"),"manifestPath"),T=s(e=>w(e,"state.json"),"statePath"),st=s((e,o)=>{let t;try{t=new URL(e)}catch{throw new g(e)}if(!t.host)throw new g(e);if(t.protocol!=="https:")throw new g(`${t.protocol}//${t.host}`);if(!new Set([...tt,...o??[]]).has(t.host))throw new g(t.host);return t},"validateOsvBloomSource"),ht=s(async e=>{const o=Date.now(),t=e.cacheDir??b(e.workspaceRoot);await L(t,{recursive:!0});const r=st(e.source,e.allowedHosts),a=new URL("manifest.json",$(r.toString())),i=new URL("filter.bin",$(r.toString())),n=await x(a,{method:"GET"});if(!n.ok)throw new B(a.toString(),n.status);const S=await n.text(),c=k(S),m=await C(t);if(!e.force&&m?.setDigestSha256===c.setDigestSha256&&p(h(t)))return{bytesOnDisk:(await I(h(t))).size,cacheDir:t,durationMs:Date.now()-o,manifest:c,upToDate:!0};const E={};!e.force&&m?.filterEtag&&(E.headers={"if-none-match":m.filterEtag});const f=await x(i,{...E,method:"GET"});if(f.status===304&&m&&p(h(t)))return await A(t,S,{fetchedAtIso:new Date().toISOString(),filterEtag:m.filterEtag,setDigestSha256:c.setDigestSha256}),{bytesOnDisk:(await I(h(t))).size,cacheDir:t,durationMs:Date.now()-o,manifest:c,upToDate:!0};if(!f.ok||!f.body)throw new B(i.toString(),f.status);const u=Buffer.from(await f.arrayBuffer());e.onProgress&&e.onProgress(u.length,u.length);const D=rt(u);if(D!==c.filterSha256)throw new et(c.filterSha256,D);if(u.length!==c.bloomByteLen)throw new v(`filter.bin length ${u.length} does not match manifest.bloom_byte_len ${c.bloomByteLen}`);const j=f.headers.get("etag")??void 0;return await _(h(t),u),await A(t,S,{fetchedAtIso:new Date().toISOString(),filterEtag:j,setDigestSha256:c.setDigestSha256}),{bytesOnDisk:u.length,cacheDir:t,durationMs:Date.now()-o,manifest:c,upToDate:!1}},"syncOsvBloom"),ft=s(async(e,o)=>{const t=o?.cacheDir??b(e),r=h(t);if(!p(r)){if(o?.softFail)return null;throw new ot(t)}const a=await y(r);return Y(a)},"loadOsvBloomHandle");s((e,o,t)=>Q(e,o,t),"probeOsvBloom");const mt=s((e,o)=>X(e,o),"probeOsvBloomBatch"),dt=s(async(e,o)=>{const t=o??b(e);if(!p(h(t)))return{cacheDir:t,present:!1};let r,a;try{r=k(await y(R(t),"utf8"))}catch{}try{a=await C(t)}catch{}return{cacheDir:t,fetchedAtIso:a?.fetchedAtIso,manifest:r,present:!0}},"getOsvBloomStatus");s(async(e,o)=>{const t=o??b(e);await q(t,{force:!0,recursive:!0})},"clearOsvBloomCache");const k=s(e=>{let o;try{o=JSON.parse(e)}catch(i){throw new v(i instanceof Error?i.message:String(i))}const t=s(i=>{const n=o[i];if(typeof n!="number"||Number.isNaN(n))throw new v(`field '${i}' missing or non-numeric`);return n},"requireNumber"),r=s(i=>{const n=o[i];if(typeof n!="string"||n.length===0)throw new v(`field '${i}' missing or empty`);return n},"requireString"),a=t("format_version");if(a!==1)throw new v(`unsupported format_version ${a} (this build expects v1)`);return{advisoryCount:t("advisory_count"),bloomByteLen:t("bloom_byte_len"),bloomKHashes:t("bloom_k_hashes"),bloomMBits:t("bloom_m_bits"),builtAtRfc3339:r("built_at_rfc3339"),builtAtUnix:t("built_at_unix"),entryCount:t("entry_count"),filterSha256:r("filter_sha256"),formatVersion:a,setDigestSha256:r("set_digest_sha256"),sourceUrl:r("source_url"),targetFpr:t("target_fpr")}},"parseManifest"),C=s(async e=>{try{const o=await y(T(e),"utf8"),t=JSON.parse(o);return typeof t.setDigestSha256!="string"||typeof t.fetchedAtIso!="string"?void 0:{fetchedAtIso:t.fetchedAtIso,filterEtag:typeof t.filterEtag=="string"?t.filterEtag:void 0,setDigestSha256:t.setDigestSha256}}catch{return}},"readState"),A=s(async(e,o,t)=>{await _(R(e),Buffer.from(o,"utf8")),await _(T(e),Buffer.from(`${JSON.stringify(t,void 0,2)}
2
+ `,"utf8"))},"persistManifestAndState"),_=s(async(e,o)=>{await L(z(e),{recursive:!0});const t=`${e}.${process.pid}.${H()}.tmp`;try{await G(t,o),await J(t,e)}catch(r){throw await W(t).catch(()=>{}),r}},"atomicWrite"),rt=s(e=>F("sha256").update(e).digest("hex"),"sha256Hex"),$=s(e=>e.endsWith("/")?e:`${e}/`,"ensureTrailingSlash"),it=3e4,x=s(async(e,o)=>{try{return await fetch(e,{...o,signal:AbortSignal.timeout(it)})}catch(t){throw new B(e.toString(),t instanceof Error?t.message:String(t))}},"safeFetch");export{ut as D,ot as O,dt as g,ft as l,mt as p,ht as s};