@visulima/vis 2.0.1 → 2.0.2
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.
- package/CHANGELOG.md +28 -0
- package/LICENSE.md +862 -170
- package/dist/bin.js +1 -1
- package/dist/binx.js +1 -1
- package/dist/packem_chunks/CONFIG_FILES.js +3 -3
- package/dist/packem_chunks/bloom-status.js +1 -1
- package/dist/packem_chunks/bloom-sync.js +1 -1
- package/dist/packem_chunks/catalog.js +68 -68
- package/dist/packem_chunks/cli-exec.js +1 -1
- package/dist/packem_chunks/cli-main.js +145 -143
- package/dist/packem_chunks/dispatch.js +1 -1
- package/dist/packem_chunks/doctor-probe.js +1 -1
- package/dist/packem_chunks/fix.js +3 -3
- package/dist/packem_chunks/handler.js +1 -1
- package/dist/packem_chunks/handler10.js +3 -3
- package/dist/packem_chunks/handler11.js +1 -1
- package/dist/packem_chunks/handler12.js +3 -3
- package/dist/packem_chunks/handler13.js +1 -1
- package/dist/packem_chunks/handler14.js +1 -1
- package/dist/packem_chunks/handler15.js +1 -1
- package/dist/packem_chunks/handler16.js +1 -1
- package/dist/packem_chunks/handler17.js +1 -1
- package/dist/packem_chunks/handler18.js +1 -1
- package/dist/packem_chunks/handler19.js +1 -1
- package/dist/packem_chunks/handler2.js +1 -1
- package/dist/packem_chunks/handler20.js +2 -2
- package/dist/packem_chunks/handler21.js +1 -1
- package/dist/packem_chunks/handler22.js +1 -1
- package/dist/packem_chunks/handler23.js +1 -1
- package/dist/packem_chunks/handler24.js +1 -1
- package/dist/packem_chunks/handler26.js +1 -1
- package/dist/packem_chunks/handler27.js +1 -1
- package/dist/packem_chunks/handler28.js +1 -1
- package/dist/packem_chunks/handler29.js +1 -1
- package/dist/packem_chunks/handler3.js +1 -1
- package/dist/packem_chunks/handler30.js +1 -1
- package/dist/packem_chunks/handler4.js +4 -4
- package/dist/packem_chunks/handler5.js +1 -1
- package/dist/packem_chunks/handler50.js +5 -5
- package/dist/packem_chunks/handler51.js +2 -2
- package/dist/packem_chunks/handler53.js +1 -1
- package/dist/packem_chunks/handler54.js +2 -2
- package/dist/packem_chunks/handler55.js +1 -1
- package/dist/packem_chunks/handler58.js +4 -4
- package/dist/packem_chunks/handler59.js +1 -1
- package/dist/packem_chunks/handler6.js +7 -7
- package/dist/packem_chunks/handler60.js +2 -2
- package/dist/packem_chunks/handler61.js +13 -13
- package/dist/packem_chunks/handler62.js +3 -3
- package/dist/packem_chunks/handler63.js +2 -2
- package/dist/packem_chunks/handler64.js +4 -4
- package/dist/packem_chunks/handler66.js +1 -1
- package/dist/packem_chunks/handler67.js +16 -16
- package/dist/packem_chunks/handler68.js +1 -1
- package/dist/packem_chunks/handler69.js +15 -15
- package/dist/packem_chunks/handler7.js +1 -1
- package/dist/packem_chunks/handler70.js +5 -5
- package/dist/packem_chunks/handler71.js +1 -1
- package/dist/packem_chunks/handler72.js +23 -23
- package/dist/packem_chunks/handler73.js +5 -5
- package/dist/packem_chunks/handler74.js +22 -22
- package/dist/packem_chunks/handler75.js +2 -2
- package/dist/packem_chunks/handler76.js +5 -5
- package/dist/packem_chunks/handler77.js +18 -18
- package/dist/packem_chunks/handler78.js +25 -25
- package/dist/packem_chunks/handler8.js +1 -1
- package/dist/packem_chunks/handler9.js +1 -1
- package/dist/packem_chunks/heal-accept.js +2 -2
- package/dist/packem_chunks/heal.js +4 -4
- package/dist/packem_chunks/help-command.js +46 -46
- package/dist/packem_chunks/index3.js +3 -3
- package/dist/packem_chunks/keys-refresh.js +1 -1
- package/dist/packem_chunks/lean.js +2 -2
- package/dist/packem_chunks/list.js +1 -1
- package/dist/packem_chunks/loader.js +1 -1
- package/dist/packem_chunks/prompts.js +1 -1
- package/dist/packem_chunks/prune.js +1 -1
- package/dist/packem_chunks/status.js +1 -1
- package/dist/packem_chunks/sync.js +1 -1
- package/dist/packem_chunks/sync2.js +1 -1
- package/dist/packem_chunks/tripwire.js +1 -1
- package/dist/packem_chunks/ts-loader.js +6 -6
- package/dist/packem_chunks/verify-lockfile.js +1 -1
- package/dist/packem_shared/{advisories-BGeuHJQg.js → advisories-CCBGdU8U.js} +1 -1
- package/dist/packem_shared/{affected-selection-B85ND6JV.js → affected-selection-Dj-ymxhw.js} +1 -1
- package/dist/packem_shared/{affected-shas-BWRRAB47.js → affected-shas-PwkVbPch.js} +1 -1
- package/dist/packem_shared/ai-analysis-bGCAc1jR.js +68 -0
- package/dist/packem_shared/{ai-fix-BgBU0TOz.js → ai-fix-DV5-dHBY.js} +4 -4
- package/dist/packem_shared/{augment-HVeX6LpU.js → augment-24KX2nkI.js} +1 -1
- package/dist/packem_shared/{bin-DKod8Iqo.js → bin-CtzhnYMp.js} +1 -1
- package/dist/packem_shared/{build-scripts-CM8M1xcG.js → build-scripts-w4SNeR7D.js} +1 -1
- package/dist/packem_shared/{command-runtime-BVi4lL8k.js → command-runtime-BLFPUYAT.js} +1 -1
- package/dist/packem_shared/{cyclonedx-y7VLI-1d.js → cyclonedx-C4KaVTn1.js} +3 -3
- package/dist/packem_shared/{dependency-scan-BAzKpXdW.js → dependency-scan-D_ona0Qm.js} +1 -1
- package/dist/packem_shared/{docker-D1LStSlH.js → docker-DaVs-9wK.js} +27 -27
- package/dist/packem_shared/{en-BxrK-n-J.js → en-D3CfXlO7.js} +13 -13
- package/dist/packem_shared/{failure-log-ChuFC-8f.js → failure-log-CTneNcio.js} +2 -2
- package/dist/packem_shared/glob-BUjyjdE8-C4M8e02u.js +1 -0
- package/dist/packem_shared/index-CTMU29dI.js +1 -0
- package/dist/packem_shared/index-uBVnF4ji.js +35 -0
- package/dist/packem_shared/index.server-CusjRLCh.js +2 -0
- package/dist/packem_shared/{lifecycle-Db0qh6vR.js → lifecycle-B8A2T3gx.js} +1 -1
- package/dist/packem_shared/{lockfile-CDQ0n4P5.js → lockfile-Bccery3L.js} +1 -1
- package/dist/packem_shared/{manifests-Da_no4ZH.js → manifests-BDkwiVbh.js} +1 -1
- package/dist/packem_shared/{min-release-age-V6L6dpiP.js → min-release-age-OaYpLwux.js} +1 -1
- package/dist/packem_shared/missing-package-json-BqS-OnKd.js +1 -0
- package/dist/packem_shared/{native-config-sync-C0pUePad.js → native-config-sync-Ds1FtcrM.js} +3 -3
- package/dist/packem_shared/{osv-bloom-DNFpvSSO.js → osv-bloom-pKp7urSB.js} +2 -2
- package/dist/packem_shared/package-version-C47v64aB.js +4 -0
- package/dist/packem_shared/packument-HBVbyf7x.js +1 -0
- package/dist/packem_shared/pm-runner-C6eTANt1.js +1 -0
- package/dist/packem_shared/{project-name-filter-u2Q7YpQH.js → project-name-filter-CJ3XX2TI.js} +1 -1
- package/dist/packem_shared/{provenance-9OT8sTqn.js → provenance-D4Cza8cp.js} +1 -1
- package/dist/packem_shared/{readJsonSync-BnWiH5-R-BpnwAB0Z.js → readJsonSync-DweZd5ZA-0eZh9sGm.js} +1 -1
- package/dist/packem_shared/{registry-keys-CYHd7qU2.js → registry-keys-C0ez2VND.js} +1 -1
- package/dist/packem_shared/{resolve-explicit-DC3XssJa.js → resolve-explicit-BbT764KS.js} +1 -1
- package/dist/packem_shared/{resolve-runtime-f5l4ODsH.js → resolve-runtime-D_vZovbB.js} +1 -1
- package/dist/packem_shared/{run-file-zB4ACnUy.js → run-file-DyPFFN9U.js} +1 -1
- package/dist/packem_shared/{runtime-check-CWvAfu5u.js → runtime-check-D4um-yQq.js} +1 -1
- package/dist/packem_shared/{s1ngularity-DsmC71xt.js → s1ngularity-St6dhKiq.js} +1 -1
- package/dist/packem_shared/scan-progress-q-N2JtIp.js +2 -0
- package/dist/packem_shared/{selectors-CtxnIT4X.js → selectors-Ce_6UAoY.js} +1 -1
- package/dist/packem_shared/{signatures-Dwx5fD4g.js → signatures-Dyeyg1q9.js} +1 -1
- package/dist/packem_shared/target-merge-Cfy7c__2.js +11 -0
- package/dist/packem_shared/{target-options-BO4Uxt0k.js → target-options-7XcbqGDe.js} +1 -1
- package/dist/packem_shared/{toolchain-BY8lJaSN.js → toolchain-C_pNMBM6.js} +1 -1
- package/dist/packem_shared/{typosquats-BUGgotNu.js → typosquats-xzcAGPiM.js} +1 -1
- package/dist/packem_shared/{use-measured-height-BLZt9dW2.js → use-measured-height-CBjN0fle.js} +1 -1
- package/dist/packem_shared/{verify-B0ztxKMa.js → verify-Dve9PQj3.js} +1 -1
- package/dist/packem_shared/vis-update-app-DMAC2pPf.js +1 -0
- package/dist/packem_shared/vis-user-error-xmha3L4n.js +30 -0
- package/dist/packem_shared/{watch-CGrUW_JD.js → watch-BXOOX7lx.js} +1 -1
- package/dist/packem_shared/{watch-loop-DIwSMjlA.js → watch-loop-Q7UpkVbr.js} +4 -4
- package/dist/runtime/preload.js +1 -1
- package/index.js +52 -52
- package/package.json +16 -16
- package/dist/packem_shared/ai-analysis-oNMAj1wd.js +0 -68
- package/dist/packem_shared/glob-BUjyjdE8-BSrdzgma.js +0 -1
- package/dist/packem_shared/index-BJw7gKD1.js +0 -1
- package/dist/packem_shared/index-DND6ptxQ.js +0 -35
- package/dist/packem_shared/index.server-qvZ-cy29.js +0 -2
- package/dist/packem_shared/missing-package-json-Jw8IEHct.js +0 -1
- package/dist/packem_shared/package-version-DjHDww_5.js +0 -4
- package/dist/packem_shared/packument-N3EWbZpL.js +0 -1
- package/dist/packem_shared/pm-runner-Bssje5qH.js +0 -1
- package/dist/packem_shared/scan-progress-Ch8s3Uwl.js +0 -2
- package/dist/packem_shared/target-merge-b7bE1AEx.js +0 -11
- package/dist/packem_shared/vis-update-app-D1gLJB1O.js +0 -1
- package/dist/packem_shared/vis-user-error-DjFv8uxy.js +0 -28
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import{createRequire as te}from"node:module";import{h as oe,R as v,m as se,i as E}from"../packem_chunks/catalog.js";import"./en-D3CfXlO7.js";import{Table as ce}from"@visulima/tui-kit/table";import{U as de,V as le,W as ue,X as pe}from"../packem_chunks/cli-main.js";let ae;const ne=e=>(ae??=te(import.meta.url))(e),_=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,k=e=>{if(typeof _<"u"&&_.versions&&_.versions.node){const[a,t]=_.versions.node.split(".").map(Number);if(a>22||a===22&&t>=3||a===20&&t>=16)return _.getBuiltinModule(e)}return ne(e)},{execFile:V,spawn:re,execFileSync:U}=k("node:child_process"),{existsSync:G}=k("node:fs"),{platform:ie,homedir:B}=k("node:os"),{join:g}=k("node:path"),{StringDecoder:j}=k("node:string_decoder"),{promisify:F}=k("node:util"),me=/v?(\d+\.\d+\.\d+(?:-[\w.]+)?)/,fe=5e3,ge=1e4,he=3e5,be=4096,O=ie()==="win32",W=["amp","claude","codex","copilot","crush","cursor","droid","gemini","kimi","opencode","qwen"],ve={alternateCommands:[],buildArgs:(e,{dangerous:a})=>{const t=["-x",e];return a&&t.push("--dangerously-allow-all"),t},command:"amp",defaultModel:"",displayName:"Amp",envVariable:"AMP_PATH",sessionMarkers:[{confidence:"definite",variable:"AMP_CURRENT_THREAD_ID"},{confidence:"definite",equals:"amp",variable:"AGENT"}],supportsMaxTokens:!1,supportsModel:!1},ye={alternateCommands:[],buildArgs:(e,{dangerous:a,model:t})=>{const n=[];return a&&n.push("--dangerously-skip-permissions"),t&&n.push("--model",t),n.push("--output-format","text","-p",e),n},command:"claude",defaultModel:"",displayName:"Claude Code",envVariable:"CLAUDE_PATH",sessionMarkers:[{confidence:"definite",variable:"CLAUDECODE"},{confidence:"definite",variable:"CLAUDE_CODE"}],supportsMaxTokens:!1,supportsModel:!0},Ee={alternateCommands:["openai-codex"],buildArgs:(e,{dangerous:a,model:t})=>{const n=["exec"];return t&&n.push("--model",t),a&&n.push("--dangerously-bypass-approvals-and-sandbox"),n.push("--",e),n},command:"codex",defaultModel:"",displayName:"Codex",envVariable:"CODEX_PATH",sessionMarkers:[{confidence:"definite",variable:"CODEX_SANDBOX"},{confidence:"definite",variable:"CODEX_THREAD_ID"},{confidence:"definite",variable:"CODEX_CI"}],supportsMaxTokens:!1,supportsModel:!0},Ae={alternateCommands:[],buildArgs:(e,{dangerous:a,model:t})=>{const n=["-p",e];return a&&n.push("--allow-all-tools"),t&&n.push("--model",t),n},command:"copilot",defaultModel:"",displayName:"GitHub Copilot CLI",envVariable:"COPILOT_PATH",sessionMarkers:[{confidence:"definite",variable:"COPILOT_MODEL"},{confidence:"definite",variable:"COPILOT_ALLOW_ALL"},{confidence:"definite",variable:"COPILOT_GITHUB_TOKEN"},{agent:"GitHub Copilot in VS Code",confidence:"definite",label:"TERM_PROGRAM+GIT_PAGER",match:{all:[["TERM_PROGRAM","vscode"],["GIT_PAGER","cat"]],none:["CURSOR_TRACE_ID"]}}],supportsMaxTokens:!1,supportsModel:!0},ke={alternateCommands:[],buildArgs:(e,{dangerous:a,model:t})=>{const n=["run"];return a&&n.push("--yolo"),t&&n.push("-m",t),n.push("--",e),n},command:"crush",defaultModel:"",displayName:"Crush",envVariable:"CRUSH_PATH",sessionMarkers:[{confidence:"definite",equals:"1",variable:"CRUSH"},{confidence:"definite",equals:"crush",variable:"AGENT"}],supportsMaxTokens:!1,supportsModel:!0},Re={alternateCommands:["cursor"],buildArgs:(e,{dangerous:a,model:t})=>{const n=["-p"];return a&&n.push("--force"),n.push("--output-format","text"),t&&n.push("--model",t),n.push("--",e),n},command:"agent",defaultModel:"",displayName:"Cursor Agent",envVariable:"CURSOR_PATH",sessionMarkers:[{confidence:"definite",variable:"CURSOR_AGENT"},{confidence:"definite",label:"CURSOR_TRACE_ID+PAGER",match:{all:["CURSOR_TRACE_ID",["PAGER","head -n 10000 | cat"]]}},{agent:"Cursor editor",confidence:"ambient",variable:"CURSOR_TRACE_ID"}],supportsMaxTokens:!1,supportsModel:!0},_e={alternateCommands:[],buildArgs:(e,{dangerous:a,model:t})=>{const n=[];return a&&n.push("--skip-permissions-unsafe"),n.push("-o","text"),t&&n.push("-m",t),n.push("--",e),n},command:"droid",defaultModel:"",displayName:"Droid",envVariable:"DROID_PATH",sessionMarkers:[],supportsMaxTokens:!1,supportsModel:!0},we={alternateCommands:["gemini-cli"],buildArgs:(e,{dangerous:a,maxTokens:t,model:n})=>{const r=[];return a||r.push("--sandbox"),n&&r.push("--model",n),r.push("--max-output-tokens",String(t),"-p",e),r},command:"gemini",defaultModel:"gemini-2.5-pro",displayName:"Gemini CLI",envVariable:"GEMINI_PATH",sessionMarkers:[{confidence:"definite",label:"GEMINI_CLI",match:{all:["GEMINI_CLI"],none:["QWEN_CODE"]}}],supportsMaxTokens:!0,supportsModel:!0},Me={alternateCommands:[],buildArgs:(e,{model:a})=>{const t=["--quiet","-p",e];return a&&t.push("-m",a),t},command:"kimi",defaultModel:"",displayName:"Kimi CLI",envVariable:"KIMI_PATH",sessionMarkers:[],supportsMaxTokens:!1,supportsModel:!0},Ce={alternateCommands:[],buildArgs:(e,{model:a})=>{const t=["run"];return a&&t.push("-m",a),t.push("--",e),t},command:"opencode",defaultModel:"",displayName:"opencode",envVariable:"OPENCODE_PATH",sessionMarkers:[{confidence:"definite",label:"OPENCODE",match:{any:["OPENCODE","OPENCODE_BIN_PATH","OPENCODE_SERVER","OPENCODE_APP_INFO","OPENCODE_MODES","OPENCODE_CLIENT"]}}],supportsMaxTokens:!1,supportsModel:!0},Te={alternateCommands:["qwen-code"],buildArgs:(e,{dangerous:a,model:t})=>{const n=["-p",e];return a&&n.push("--yolo"),n.push("-o","text"),t&&n.push("-m",t),n},command:"qwen",defaultModel:"",displayName:"Qwen Code",envVariable:"QWEN_PATH",sessionMarkers:[{confidence:"definite",equals:"1",variable:"QWEN_CODE"}],supportsMaxTokens:!1,supportsModel:!0},T={amp:ve,claude:ye,codex:Ee,copilot:Ae,crush:ke,cursor:Re,droid:_e,gemini:we,kimi:Me,opencode:Ce,qwen:Te};class A extends Error{exitCode;durationMs;provider;stderr;stdout;timedOut;aborted;constructor(a,t){super(a),this.name="AiRunError",this.provider=t.provider,this.exitCode=t.exitCode??null,this.durationMs=t.durationMs,this.stdout=t.stdout??"",this.stderr=t.stderr??"",this.timedOut=t.timedOut??!1,this.aborted=t.aborted??!1}}F(V);const Oe=[{agent:"Cline",confidence:"definite",variable:"CLINE_ACTIVE"},{agent:"Aider",confidence:"definite",label:"OR_APP_NAME|AIDER_API_KEY",match:{any:[["OR_APP_NAME","Aider"],"AIDER_API_KEY"]}},{agent:"Antigravity",confidence:"definite",label:"ANTIGRAVITY_AGENT",match:{any:["ANTIGRAVITY_AGENT","ANTIGRAVITY_PROJECT_ID"]}},{agent:"Augment",confidence:"definite",variable:"AUGMENT_AGENT"},{agent:"Windsurf",confidence:"definite",variable:"CODEIUM_EDITOR_APP_ROOT"},{agent:"Warp",confidence:"definite",variable:"OZ_RUN_ID"},{agent:"Pi",confidence:"definite",equals:"true",variable:"PI_CODING_AGENT"},{agent:"Jules",confidence:"definite",label:"HOME+USER",match:{all:[["HOME","/home/jules"],["USER","swebot"]]}},{agent:"Replit Agent",confidence:"definite",variable:"REPLIT_CLI"},{agent:"Replit Assistant",confidence:"definite",label:"REPL_ID+REPLIT_MODE",match:{all:["REPL_ID",["REPLIT_MODE","assistant"]]}},{agent:"Bolt.new",confidence:"definite",label:"SHELL+npm_config_yes",match:{all:[["SHELL","/bin/jsh"],"npm_config_yes"]}},{agent:"Zed",confidence:"definite",label:"TERM_PROGRAM+PAGER",match:{all:[["TERM_PROGRAM","zed"],["PAGER","cat"]]}},{agent:"Replit workspace",confidence:"ambient",label:"REPL_ID",match:{all:["REPL_ID"],none:[["REPLIT_MODE","assistant"]]}},{agent:"Bolt.new editor",confidence:"ambient",label:"SHELL",match:{all:[["SHELL","/bin/jsh"]],none:["npm_config_yes"]}},{agent:"Zed editor",confidence:"ambient",label:"TERM_PROGRAM",match:{all:[["TERM_PROGRAM","zed"]],none:[["PAGER","cat"]]}}],Ie={ambient:"interactive",definite:"agent"},K=(e,a,t)=>{const n={agent:e.agent??a,confidence:e.confidence,provider:t,type:e.type??Ie[e.confidence]};return"match"in e?{...n,label:e.label,match:e.match}:{...n,label:e.variable,match:e.equals===void 0?e.variable:[e.variable,e.equals]}},Se=(e,a)=>a.sessionMarkers.map(t=>K(t,a.displayName,e));[...Object.keys(T).flatMap(e=>Se(e,T[e])),...Oe.map(e=>K(e,e.agent,e.provider))].toSorted((e,a)=>e.confidence===a.confidence?0:e.confidence==="definite"?-1:1);F(V);const Pe=/\.(?:bat|cmd)$/i,J=e=>O&&Pe.test(e),P=e=>`"${e.replaceAll('"','""')}"`,q=e=>e==="~"||e.startsWith("~/")||O&&e.startsWith("~\\")?g(B(),e.slice(2)):e,Ne=e=>{try{const a=U(O?"where":"which",[e],{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:fe}).trim().split(`
|
|
2
|
+
`)[0]?.trim();return a&&a.length>0?a:void 0}catch{return}},$e=e=>{const a=B();if(O){const t=process.env.APPDATA??"",n=process.env.LOCALAPPDATA??"",r=process.env.ProgramFiles??"";return[g(t,"npm",`${e}.cmd`),g(t,"npm",e),g(n,"Programs",e,`${e}.exe`),g(r,e,`${e}.exe`),g(a,".npm-global","bin",`${e}.cmd`)]}return[`/opt/homebrew/bin/${e}`,`/usr/local/bin/${e}`,g(a,".npm-global","bin",e),g(a,".local","bin",e),g(a,".cargo","bin",e)]},Le=e=>{try{const a=J(e),t=U(a?P(e):e,["--version"],{encoding:"utf8",shell:a,stdio:["pipe","pipe","pipe"],timeout:ge}),n=me.exec(t);return n?n[1]:void 0}catch{return}},Y=(e,a={})=>{const t=T[e],n={available:!1,name:e},r=a.version!==!1,i=s=>{if(r)return Le(s)},o=process.env[t.envVariable];if(o&&G(q(o))){const s=q(o);return{...n,available:!0,detectionMethod:"envvar",path:s,version:i(s)}}const d=[t.command,...t.alternateCommands];for(const s of d){const c=Ne(s);if(c)return{...n,available:!0,detectionMethod:"which",path:c,version:i(c)}}for(const s of d)for(const c of $e(s))if(G(c))return{...n,available:!0,detectionMethod:"known-path",path:c,version:i(c)};return n},De=(e={})=>W.map(a=>Y(a,e)),xe=(e={})=>De(e).filter(a=>a.available),Ge=(e,a,t={})=>{const n=T[e],r=t.model??n.defaultModel,i=t.maxTokens!==void 0&&Number.isFinite(t.maxTokens)?t.maxTokens:be;return n.buildArgs(a,{dangerous:t.dangerous===!0,maxTokens:i,model:r})},je=async(e,a,t={})=>{if(!e.available||!e.path)throw new A(`AI provider "${e.name}" is not available.`,{durationMs:0,provider:e.name});const n=Ge(e.name,a,t),r=t.timeoutMs!==void 0&&Number.isFinite(t.timeoutMs)?t.timeoutMs:he,i=e.path,o=J(i),d=Date.now();if(t.signal?.aborted)throw new A(`${e.name} CLI run was aborted.`,{aborted:!0,durationMs:0,provider:e.name});return new Promise((s,c)=>{const m={cwd:t.cwd,env:{...process.env,...t.env,FORCE_COLOR:"0",NO_COLOR:"1"},shell:o,stdio:["pipe","pipe","pipe"]},p=o?n.map(l=>P(l)):n,f=re(o?P(i):i,p,m);f.stdin?.end();let h="",b="",y=!1;const N=new j("utf8"),$=new j("utf8");let w,L,M;const I=()=>{clearTimeout(L),M&&t.signal?.removeEventListener("abort",M)},ee=()=>{f.kill("SIGKILL")},D=l=>{if(y)return;y=!0,f.kill("SIGTERM"),w=setTimeout(ee,5e3),w.unref(),I();const u=Date.now()-d,R=l?new A(`${e.name} CLI run was aborted.`,{aborted:!0,durationMs:u,provider:e.name,stderr:b,stdout:h}):new A(`${e.name} CLI timed out after ${String(r)}ms`,{durationMs:u,provider:e.name,stderr:b,stdout:h,timedOut:!0});c(R)};L=setTimeout(D,r,!1),M=()=>{D(!0)},t.signal?.addEventListener("abort",M,{once:!0}),f.stdout?.on("data",l=>{const u=N.write(l);u&&(h+=u,t.onStdout?.(u))}),f.stderr?.on("data",l=>{const u=$.write(l);u&&(b+=u,t.onStderr?.(u))}),f.on("close",l=>{clearTimeout(w);const u=N.end();u&&(h+=u,t.onStdout?.(u));const R=$.end();if(R&&(b+=R,t.onStderr?.(R)),y)return;y=!0,I();const x=Date.now()-d;l===0?s({durationMs:x,exitCode:l,provider:e.name,stderr:b,stdout:h}):c(new A(`${e.name} CLI exited with code ${String(l)}: ${b||h}`,{durationMs:x,exitCode:l,provider:e.name,stderr:b,stdout:h}))}),f.on("error",l=>{clearTimeout(w),!y&&(y=!0,I(),c(new A(`Failed to spawn ${e.name} CLI: ${l.message}`,{durationMs:Date.now()-d,provider:e.name,stderr:b,stdout:h})))})})},qe=12e4,He=2,Ve=1e3,Ue=e=>new Promise(a=>{setTimeout(a,e)}),z=async(e,a,t=He)=>{let n;for(let r=0;r<=t;r+=1)try{return(await je(e,a,{timeoutMs:qe})).stdout}catch(i){if(n=i instanceof Error?i:new Error(String(i)),n.message.includes("timed out"))throw n;if(r<t){const o=Ve*2**r;await Ue(o)}}throw n??new Error("AI request failed after retries")},Be={amp:30,claude:80,codex:60,copilot:50,crush:35,cursor:40,droid:20,gemini:100,kimi:25,opencode:35,qwen:30},Fe=e=>{if(e?.provider){if(!W.includes(e.provider))return;const n=Y(e.provider);return n.available?n:void 0}const a=xe();if(a.length===0)return;const t={...Be,...e?.priority};return a.toSorted((n,r)=>(t[r.name]??0)-(t[n.name]??0))[0]},We=new Set(["defer","review","skip","update"]),Ke=new Set(["critical","high","low","medium"]),Je=new Set(["high","low","medium"]),Ye=50,S=30,ze=e=>e.map(a=>{const t=a.vulnerabilities&&a.vulnerabilities.length>0?` [VULNERABILITIES: ${a.vulnerabilities.map(r=>`${r.severity} ${r.id}`).join(", ")}]`:"";let n="";if(a.socketReport){const r=Math.round(a.socketReport.score.overall*100),i=[`score:${String(r)}%`];if(a.socketReport.alerts.length>0){const o={};for(const s of a.socketReport.alerts)o[s.severity]=(o[s.severity]??0)+1;const d=Object.entries(o).map(([s,c])=>`${String(c)} ${s}`).join(", ");i.push(`alerts: ${d}`)}i.push(`supply-chain:${String(Math.round(a.socketReport.score.supplyChain*100))}%`),i.push(`quality:${String(Math.round(a.socketReport.score.quality*100))}%`),n=` [SOCKET.DEV: ${i.join(", ")}]`}return`- ${a.packageName}: ${a.currentRange} → ${a.newRange} (${a.updateType})${t}${n}`}).join(`
|
|
3
|
+
`),C=`Respond ONLY with valid JSON in this exact structure:
|
|
4
|
+
{
|
|
5
|
+
"summary": "Brief overall summary",
|
|
6
|
+
"recommendations": [
|
|
7
|
+
{
|
|
8
|
+
"package": "package-name",
|
|
9
|
+
"action": "update|skip|review|defer",
|
|
10
|
+
"reason": "explanation",
|
|
11
|
+
"riskLevel": "low|medium|high|critical",
|
|
12
|
+
"breakingChanges": ["change1"],
|
|
13
|
+
"effort": "low|medium|high"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"warnings": ["warning1"]
|
|
17
|
+
}`,Xe={compatibility:e=>`Analyze the compatibility of these package updates:
|
|
18
|
+
|
|
19
|
+
${e}
|
|
20
|
+
|
|
21
|
+
For each package:
|
|
22
|
+
1. Check peer dependency compatibility
|
|
23
|
+
2. Identify potential conflicts with other packages in the list
|
|
24
|
+
3. Assess API compatibility between current and target versions
|
|
25
|
+
4. Check for deprecated features being removed
|
|
26
|
+
5. Evaluate Node.js version requirements
|
|
27
|
+
|
|
28
|
+
${C}`,impact:e=>`Analyze the impact of updating these npm packages:
|
|
29
|
+
|
|
30
|
+
${e}
|
|
31
|
+
|
|
32
|
+
For each package, provide:
|
|
33
|
+
1. Risk level (low/medium/high/critical)
|
|
34
|
+
2. Recommended action (update/skip/review/defer)
|
|
35
|
+
3. Reason for recommendation
|
|
36
|
+
4. Known breaking changes (if any)
|
|
37
|
+
5. Estimated migration effort (low/medium/high)
|
|
38
|
+
|
|
39
|
+
${C}`,recommend:e=>`Provide smart recommendations for updating these packages:
|
|
40
|
+
|
|
41
|
+
${e}
|
|
42
|
+
|
|
43
|
+
Consider:
|
|
44
|
+
1. Update priority based on security, features, and stability
|
|
45
|
+
2. Grouping related packages for atomic updates
|
|
46
|
+
3. Best practices for the specific package ecosystem
|
|
47
|
+
4. Risk vs. benefit analysis
|
|
48
|
+
5. Suggested update order
|
|
49
|
+
6. If Socket.dev scores are provided, prioritize packages with low supply chain or quality scores
|
|
50
|
+
|
|
51
|
+
${C}`,security:e=>`Analyze the security implications of these package updates:
|
|
52
|
+
|
|
53
|
+
${e}
|
|
54
|
+
|
|
55
|
+
For each package:
|
|
56
|
+
1. Check if the update fixes known vulnerabilities (use the vulnerability data above)
|
|
57
|
+
2. Assess if the new version introduces security risks
|
|
58
|
+
3. Evaluate if this is a security-sensitive package (auth, crypto, session, etc.)
|
|
59
|
+
4. Recommend urgency of the update based on vulnerability severity
|
|
60
|
+
5. Flag any packages where skipping the update poses security risk
|
|
61
|
+
6. If Socket.dev scores are provided, factor in supply chain and quality scores — low scores indicate higher risk
|
|
62
|
+
|
|
63
|
+
${C}`},Qe=new Set(["compatibility","impact","recommend","security"]),pt=e=>Qe.has(e)?e:"impact",X=(e,a="impact")=>{const t=ze(e);return Xe[a](t)},Ze=/```(?:json)?\s*([\s\S]*?)```/,et=/\{[\s\S]*\}/,tt=e=>{try{return JSON.parse(e)}catch{}const a=Ze.exec(e);if(a?.[1])try{return JSON.parse(a[1])}catch{}const t=et.exec(e);if(t?.[0])try{return JSON.parse(t[0])}catch{}},at=e=>({action:We.has(e.action)?e.action:"review",breakingChanges:Array.isArray(e.breakingChanges)?e.breakingChanges:[],effort:Je.has(e.effort)?e.effort:"medium",package:typeof e.package=="string"?e.package:"",reason:typeof e.reason=="string"?e.reason:"",riskLevel:Ke.has(e.riskLevel)?e.riskLevel:"medium"}),Q=(e,a,t)=>{const n=tt(e);if(!n||typeof n!="object")return{analysisType:t,provider:a,recommendations:[],summary:"Failed to parse AI response.",warnings:["AI response was not valid JSON."]};const r=n,i=Array.isArray(r.recommendations)?r.recommendations:[];return{analysisType:t,provider:a,recommendations:i.map(o=>at(o)),summary:typeof r.summary=="string"?r.summary:"",warnings:Array.isArray(r.warnings)?r.warnings:[]}},nt={eslint:["ESLint 9.0: Flat config required","ESLint 8.0+: New rule formats"],next:["Next.js 13+: App router changes","Next.js 14+: Server components default"],react:["React 17 to 18: Concurrent features","React 18+: Strict mode changes"],typescript:["TypeScript 5.0: New decorators","TypeScript 4.7+: ESM changes"],vite:["Vite 5: Node.js 18+ required"],vue:["Vue 3: Composition API","Vue 3: Breaking template changes"],webpack:["Webpack 5: Node.js polyfills removed"]},rt=new Set(["bcrypt","cors","crypto-js","express-session","helmet","jose","jsonwebtoken","node-forge","oauth","passport"]),H=(e,a)=>{const t=e.map(n=>{const r=n.vulnerabilities&&n.vulnerabilities.length>0,i=rt.has(n.packageName),o=nt[n.packageName]??[];let d="low",s="update",c="low",m="Patch/minor update, safe to apply.";return n.updateType==="major"?(d="high",s=o.length>0?"review":"update",c="medium",m=o.length>0?`Major update with known breaking changes: ${o[0]}`:"Major version update, review changelog before applying."):n.updateType==="minor"&&(d="medium",m="Minor update, generally safe."),r&&(d="high",s="update",m="Security update — current version has known vulnerabilities."),i&&n.updateType==="major"&&(s="review",m="Security-sensitive package with major update, careful review needed.",c="high"),{action:s,breakingChanges:o,effort:c,package:n.packageName,reason:m,riskLevel:d}});return{analysisType:a,provider:"rule-engine",recommendations:t,summary:`Rule-based ${a} analysis for ${String(e.length)} packages.`,warnings:["No AI provider available — using built-in rule engine."]}},it=async(e,a,t)=>{const n=X(a,t),r=await z(e,n);return Q(r,e.name,t)},ot=(e,a,t)=>{const n=[],r=[],i=[];for(const o of e)n.push(...o.recommendations),r.push(...o.warnings),o.summary&&i.push(o.summary);return{analysisType:t,provider:a,recommendations:n,summary:i.length===1?i[0]??"":`Analyzed ${String(n.length)} packages in ${String(e.length)} batches.`,warnings:[...new Set(r)]}},Z={compatibility:"Compatibility",impact:"Impact",recommend:"Recommendations",security:"Security"},mt=e=>{const a=`${Z[e.analysisType]??e.analysisType} Analysis (${e.provider})`,t=e.recommendations.flatMap(r=>{const i=[{action:r.action,effort:r.effort,package:r.package,reason:r.reason,risk:r.riskLevel}];return r.breakingChanges.length>0&&i.push({action:"",effort:"",package:"",reason:`Breaking: ${r.breakingChanges.join("; ")}`,risk:""}),i}),n=process.stdout.columns||80;return oe(v.createElement(se,{borderStyle:"round",flexDirection:"column",paddingLeft:1,paddingRight:1},v.createElement(E,{bold:!0},a),v.createElement(E,null,""),v.createElement(E,null,e.summary),v.createElement(E,null,""),v.createElement(ce,{borderStyle:"none",data:t}),...e.warnings.length>0?[v.createElement(E,null,""),...e.warnings.map((r,i)=>v.createElement(E,{dimColor:!0,key:String(i)},` ${r}`))]:[]),{columns:n})},ft=async(e,a,t,n="impact")=>{const r=Fe(t);if(!r)return a.info(`No AI CLI tool found, using rule-based analysis.
|
|
64
|
+
`),H(e,n);const i=de(r.name,n,e),o=le(i);if(o)return a.info(`Using cached ${n} analysis from ${o.provider}.
|
|
65
|
+
`),o;const d=Z[n]??n;a.info(`Running ${d.toLowerCase()} analysis with ${r.name}...
|
|
66
|
+
`);try{let s;if(e.length>Ye){a.info(`Splitting ${String(e.length)} packages into batches of ${String(S)}...
|
|
67
|
+
`);const c=[];for(let p=0;p<e.length;p+=S)c.push(e.slice(p,p+S));const m=[];for(let p=0;p<c.length;p+=1){a.info(` Batch ${String(p+1)}/${String(c.length)}...`);const f=c[p];f&&m.push(await it(r,f,n))}s=ot(m,r.name,n)}else{const c=await z(r,X(e,n));s=Q(c,r.name,n)}return ue(i,s,pe(n,t?.cacheTtl)),s}catch(s){const c=s instanceof Error?s.message:String(s);return a.warn(`AI analysis failed (${c}), falling back to rule engine.
|
|
68
|
+
`),H(e,n)}};export{pt as K,Fe as R,Be as S,mt as W,ft as Z,De as a,je as b,tt as c,z as r};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as
|
|
2
|
-
${a}`},Y=async(t,e)=>e===void 0?T(t,{dataDirectory:N(t)}):
|
|
1
|
+
import{createRequire as S}from"node:module";import{readLastRunSummary as T}from"@visulima/task-runner";import{a as j}from"./failure-log-CTneNcio.js";import{c as w,d as P,g as k,r as C,O as D,B as F,N as _}from"../packem_chunks/cli-main.js";import{c as N}from"./en-D3CfXlO7.js";import{v as y,P as v,w as B,b as E}from"./index-uBVnF4ji.js";import{R as M,r as q,c as H}from"./ai-analysis-bGCAc1jR.js";let $;const I=t=>($??=S(import.meta.url))(t),d=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,O=t=>{if(typeof d<"u"&&d.versions&&d.versions.node){const[e,a]=d.versions.node.split(".").map(Number);if(e>22||e===22&&a>=3||e===20&&a>=16)return d.getBuiltinModule(t)}return I(t)},{readFile:R,writeFile:A}=O("node:fs/promises"),W=32*1024,L=(t,e)=>{if(t.length<=e)return t;const a=t.slice(-e),o=t.length-a.length;return`[…${String(o)} bytes truncated from head…]
|
|
2
|
+
${a}`},Y=async(t,e)=>e===void 0?T(t,{dataDirectory:N(t)}):C(t,e),dt=async(t,e,a={})=>{const o=a.terminalOutputLimit??W,[s,n]=await Promise.all([j(t,e),Y(t,a.runId)]),i=n?w(n,e):void 0;if(!s&&!i)return;let r,c;if(n&&i){const h=await P(t,n.id),p=h?w(h,e):void 0;r=k(i.hashDetails,p?.hashDetails),c=h?.id}const u=s?.terminalOutput??"";return{command:s?.command??void 0,cwd:s?.cwd??void 0,dependencies:i?.dependencies??[],duration:i?.duration,exitCode:s?.exitCode??i?.exitCode,hash:i?.hash??s?.hash,hashDetails:i?.hashDetails,hashDiff:r,previousRunId:c,project:i?.target.project,runId:n?.id??s?.runId,status:s?.status??(i?J(i):void 0),target:i?.target.target,taskId:e,terminalOutput:L(u,o),terminalOutputCaptured:!!s,timestamp:s?.timestamp??i?.endTime??i?.startTime}},J=t=>{if(t.exitCode!==void 0&&t.exitCode!==0)return"failure";switch(t.cacheStatus){case"HIT":return"local-cache";case"REMOTE_HIT":return"remote-cache";case"SKIPPED":return"skipped";default:return t.exitCode===0?"success":void 0}},K=3600*1e3,x=80,U=new Set(["high","low","medium"]),G=()=>`You are an expert software engineer helping fix a failing build/test/lint task.
|
|
3
3
|
|
|
4
4
|
You will be given:
|
|
5
5
|
- The terminal output (stdout/stderr) from the failed task.
|
|
@@ -37,7 +37,7 @@ ${a.join(`
|
|
|
37
37
|
`)},Q=t=>`${G()}
|
|
38
38
|
|
|
39
39
|
${z(t)}`,X=(t,e)=>{const a=Array.isArray(t.patches)?t.patches:[],o=[];for(const n of a)typeof n.file!="string"||n.file.length===0||typeof n.oldString!="string"||n.oldString.length===0||typeof n.newString=="string"&&o.push({file:n.file,newString:n.newString,oldString:n.oldString,reason:typeof n.reason=="string"&&n.reason.length>0?n.reason:void 0});const s=typeof t.cannotFix=="string"&&t.cannotFix.length>0?t.cannotFix:void 0;return{cannotFix:s,confidence:U.has(t.confidence)?t.confidence:"low",explanation:typeof t.explanation=="string"?t.explanation:"",patches:s?[]:o,provider:e}},Z=(t,e)=>{const a=H(t);return!a||typeof a!="object"?{cannotFix:"AI response was not valid JSON.",confidence:"low",explanation:"Failed to parse AI response.",patches:[],provider:e}:X(a,e)},tt=(t,e)=>_({cwd:e.cwd??null,flow:"ai-fix",hash:e.hash??null,provider:t,taskId:e.taskId,terminalOutput:e.terminalOutput,terminalOutputCaptured:e.terminalOutputCaptured}),lt=async(t,e,a={})=>{const o=M(a.config);if(!o){e.warn(`No AI provider available — install one of: claude, gemini, copilot, codex.
|
|
40
|
-
`);return}const s=a.cache!==!1,n=tt(o.name,t);if(s){const i=
|
|
40
|
+
`);return}const s=a.cache!==!1,n=tt(o.name,t);if(s){const i=D(n);if(i)return e.info(`Using cached fix proposal from ${i.provider}.
|
|
41
41
|
`),i}e.info(`Generating fix proposal with ${o.name}...
|
|
42
42
|
`);try{const i=await q(o,Q(t)),r=Z(i,o.name);return s&&r.patches.length>0&&!r.cannotFix&&F(n,r,K),r}catch(i){const r=i instanceof Error?i.message:String(i);e.warn(`AI fix proposal failed (${r}).
|
|
43
|
-
`);return}},et=(t,e,a)=>y(a)?
|
|
43
|
+
`);return}},et=(t,e,a)=>y(a)?v(a):v(B(e??t,a)),at=(t,e)=>{const a=E(t,e);return a===""?!0:!a.startsWith("..")&&!y(a)},it=(t,e,a)=>{const o=t.indexOf(e),s=Math.max(0,o-x),n=Math.min(t.length,o+e.length+x),i=t.slice(s,n);return{previewAfter:`${t.slice(s,o)}${a}${t.slice(o+e.length,n)}`,previewBefore:i}},pt=async(t,e,a,o={})=>{const s=o.dryRun===!0,n=new Map,i=[];for(const r of a.patches){const c=et(t,e,r.file);if(!at(t,c)){i.push({absolutePath:c,patch:r,status:"outside-workspace"});continue}let u=n.get(c);if(u===void 0){try{u=await R(c,"utf8")}catch(l){const g=l.code;i.push({absolutePath:c,error:g==="ENOENT"?void 0:l.message,patch:r,status:g==="ENOENT"?"missing-file":"error"});continue}n.set(c,u)}const h=u.indexOf(r.oldString);if(h===-1){i.push({absolutePath:c,patch:r,status:"no-match"});continue}if(u.indexOf(r.oldString,h+r.oldString.length)!==-1){i.push({absolutePath:c,patch:r,status:"ambiguous-match"});continue}const{previewAfter:p,previewBefore:b}=it(u,r.oldString,r.newString),m=`${u.slice(0,h)}${r.newString}${u.slice(h+r.oldString.length)}`;if(!s)try{await A(c,m,"utf8")}catch(l){n.delete(c),i.push({absolutePath:c,error:l.message,patch:r,status:"error"});continue}n.set(c,m),i.push({absolutePath:c,patch:r,previewAfter:p,previewBefore:b,status:"applied"})}return i};export{dt as a,pt as b,et as c,lt as r};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as T}from"node:module";import{l as P}from"./target-options-
|
|
1
|
+
import{createRequire as T}from"node:module";import{l as P}from"./target-options-7XcbqGDe.js";import{w as q}from"./index-uBVnF4ji.js";let j;const E=e=>(j??=T(import.meta.url))(e),y=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,h=e=>{if(typeof y<"u"&&y.versions&&y.versions.node){const[r,t]=y.versions.node.split(".").map(Number);if(r>22||r===22&&t>=3||r===20&&t>=16)return y.getBuiltinModule(e)}return E(e)},{createRequire:L}=h("node:module"),{pathToFileURL:R}=h("node:url"),m=["temporal","urlpattern","reporterror","regexp-escape","promise-try","float16array","error-iserror","navigator-locks"],F=e=>{const r=e.trim().toLowerCase();return r===""||r==="all"||r==="1"||r==="true"?m:r.split(",").map(t=>t.trim()).filter(t=>m.includes(t))},v=async(e,r)=>{try{const t=L(q(r,"__vis_polyfill_resolver__.js")).resolve(e);return await import(R(t).href)}catch{return}},x=async e=>{if(globalThis.Temporal!==void 0)return;const r=await v("@js-temporal/polyfill",e);r?.Temporal===void 0?process.stderr.write(`vis: --polyfill temporal requested but @js-temporal/polyfill is not installed in this project.
|
|
2
2
|
`):globalThis.Temporal=r.Temporal},O=async e=>{if(globalThis.URLPattern!==void 0)return;const r=await v("urlpattern-polyfill",e);r?.URLPattern===void 0?process.stderr.write(`vis: --polyfill urlpattern requested but urlpattern-polyfill is not installed in this project.
|
|
3
3
|
`):globalThis.URLPattern=r.URLPattern},k=()=>{typeof globalThis.reportError!="function"&&(globalThis.reportError=e=>{const r=e instanceof Error?e.stack??`${e.name}: ${e.message}`:String(e);process.stderr.write(`${r}
|
|
4
4
|
`)})},I=()=>{if(typeof RegExp.escape=="function")return;const e=new Set(String.raw`^$\.*+?()[]{}|/`),r={"\f":String.raw`\f`,"\n":String.raw`\n`,"\r":String.raw`\r`," ":String.raw`\t`,"\v":String.raw`\v`},t=/\s/u,o=n=>n<=255?String.raw`\x${n.toString(16).padStart(2,"0")}`:String.raw`\u${n.toString(16).padStart(4,"0")}`;RegExp.escape=n=>{if(typeof n!="string")throw new TypeError("RegExp.escape requires a string argument");let a="",i=!0;for(const s of n){const c=s.codePointAt(0);i&&/[\dA-Za-z]/u.test(s)?a+=o(c):e.has(s)?a+=`\\${s}`:r[s]!==void 0?a+=r[s]:t.test(s)?a+=o(c):a+=s,i=!1}return a}},A=()=>{typeof Promise.try!="function"&&(Promise.try=function(e,...r){const t=typeof this=="function"?this:Promise;return new t((o,n)=>{try{o(e(...r))}catch(a){n(a)}})})},w=e=>{const r=new Float32Array(1),t=new Uint32Array(r.buffer);r[0]=e;const o=t[0],n=o>>>16&32768,a=o>>>23&255,i=o&8388607;if(a===255)return i===0?n|31744:n|32256;const s=a-127+15;if(s>=31)return n|31744;if(s<=0){if(s<-10)return n;const l=i|8388608,p=14-s;let d=l>>p;const g=l&(1<<p)-1,u=1<<p-1;return(g>u||g===u&&(d&1)===1)&&(d+=1),n|d}let c=s<<10|i>>13;const f=i&8191;return(f>4096||f===4096&&(c&1)===1)&&(c+=1),n|c},b=e=>{const r=e&32768?-1:1,t=e>>10&31,o=e&1023;return t===0?r*o*2**-24:t===31?o?Number.NaN:r*Number.POSITIVE_INFINITY:r*(1+o/1024)*2**(t-15)},N=()=>{const e=Math;typeof e.f16round!="function"&&(e.f16round=t=>b(w(t)));const r=DataView.prototype;typeof r.getFloat16!="function"&&(r.getFloat16=function(t,o){return b(this.getUint16(t,o))}),typeof r.setFloat16!="function"&&(r.setFloat16=function(t,o,n){this.setUint16(t,w(o),n)})},U=()=>{typeof Error.isError!="function"&&(Error.isError=e=>typeof e=="object"&&e!==null&&Object.prototype.toString.call(e)==="[object Error]")},$=()=>{const e=globalThis,r=e.navigator;if(r?.locks!==void 0)return;const t=new Map,o=new Set,n=i=>i.reason??(typeof DOMException=="function"?new DOMException("The lock request is aborted","AbortError"):Object.assign(new Error("The lock request is aborted"),{name:"AbortError"})),a={request:async(i,s,c)=>{const f=typeof s!="function",l=(f?s:{})??{},p=f?c:s,d=l.mode==="shared"?"shared":"exclusive";if(l.signal?.aborted)throw n(l.signal);if(l.ifAvailable===!0&&o.has(i))return p(null);const g=t.get(i)??Promise.resolve();let u;const _=new Promise(S=>{u=S});if(t.set(i,g.then(()=>_)),await g.catch(()=>{}),l.signal?.aborted)throw u(),n(l.signal);o.add(i);try{return await p({mode:d,name:i})}finally{o.delete(i),u()}}};r===void 0?Object.defineProperty(e,"navigator",{configurable:!0,enumerable:!0,value:{locks:a},writable:!0}):Object.defineProperty(r,"locks",{configurable:!0,enumerable:!0,value:a})},M={"error-iserror":U,float16array:N,"navigator-locks":$,"promise-try":A,"regexp-escape":I,reporterror:k},V=async(e,r=process.cwd())=>{const t=F(e);await Promise.all(t.map(async o=>{o==="temporal"?await x(r):o==="urlpattern"?await O(r):M[o]?.()}))},z=async e=>{for(const[r,t]of Object.entries(P(e,!0)))process.env[r]===void 0&&(process.env[r]=t);process.env.VIS_POLYFILL!==void 0&&await V(process.env.VIS_POLYFILL,e)};export{z as p};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as _}from"node:module";import{c as T}from"./compile-cache-B_Vf_WxT.js";import{
|
|
1
|
+
import{createRequire as _}from"node:module";import{c as T}from"./compile-cache-B_Vf_WxT.js";import{t as w,h as R,a as $,u as m,c as M,m as S}from"./package-version-C47v64aB.js";import{I as j}from"./index-BWl4DbMp.js";let g;const x=e=>(g??=_(import.meta.url))(e),r=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,b=e=>{if(typeof r<"u"&&r.versions&&r.versions.node){const[s,o]=r.versions.node.split(".").map(Number);if(s>22||s===22&&o>=3||s===20&&o>=16)return r.getBuiltinModule(e)}return x(e)},{createRequire:y}=b("node:module");let O;const q=e=>(O??=y(import.meta.url))(e),t=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,f=e=>{if(typeof t<"u"&&t.versions&&t.versions.node){const[s,o]=t.versions.node.split(".").map(Number);if(s>22||s===22&&o>=3||s===20&&o>=16)return t.getBuiltinModule(e)}return q(e)},{execFileSync:N}=f("node:child_process"),{totalmem:z}=f("node:os"),C=/--max-old-space-size=(\d+)/,B=/--max-semi-space-size=(\d+)/,E=e=>Math.floor(z()/1024/1024*e),I=e=>e<=512?4:e<=1024?8:e<=2048?16:e<=4096?32:e<=8192?64:Math.floor(Math.log2(e))*8,d=(e,s)=>{for(const o of s){const n=e.exec(o);if(n)return Number.parseInt(n[1],10)}},L=e=>{const o=[...M()],n=[...w()],a=d(C,o),p=d(B,o);if(a!==void 0&&p!==void 0)return;const l=a??E(.75),h=p??I(l),c=[];if(a===void 0&&c.push(`--max-old-space-size=${String(l)}`),p===void 0&&c.push(`--max-semi-space-size=${String(h)}`),c.length!==0)try{N(R(),[...c,...o,...n.slice(1)],{env:$(),stdio:"inherit"}),m(0)}catch(v){const u=v.status;m(typeof u=="number"?u:1)}},V=()=>{process.env.VIS_VERSION=S()},A=e=>{!process.stdout.isTTY||j||process.env.TERM==="dumb"||process.stdout.write(`\x1B]0;${e}\x07`)},F=new Set(["","--help","--version","-h","-v","completion","dlx","exec","x"]),i=process.argv[2]??"";!F.has(i)&&!process.argv.includes("--help")&&!process.argv.includes("-h")&&L();process.argv.includes("--no-color")&&(process.env.NO_COLOR="1",process.env.FORCE_COLOR="0");V();T();(async()=>{if(i==="__pm-shim"){const{dispatchShim:s}=await import("../packem_chunks/dispatch.js");s(process.argv[3]??"",process.argv.slice(4));return}if(i==="x"){const{runLeanX:s}=await import("../packem_chunks/lean.js");await s(process.argv.slice(3));return}if(i==="exec"||i==="dlx"){const{runExecCli:s}=await import("../packem_chunks/cli-exec.js");await s();return}const{runCli:e}=await import("../packem_chunks/cli-main.js").then(s=>s.ap);await e()})();export{A as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as b}from"node:module";import{
|
|
1
|
+
import{createRequire as b}from"node:module";import{w as m,l as g}from"./index-uBVnF4ji.js";import{a as M}from"./readJsonSync-DweZd5ZA-0eZh9sGm.js";let $;const w=e=>($??=b(import.meta.url))(e),_=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,k=e=>{if(typeof _<"u"&&_.versions&&_.versions.node){const[s,n]=_.versions.node.split(".").map(Number);if(s>22||s===22&&n>=3||s===20&&n>=16)return _.getBuiltinModule(e)}return w(e)},{readdirSync:y,statSync:q}=k("node:fs"),x=["preinstall","install","postinstall","prepare"],B=e=>{const s=m(e,"node_modules");if(!g(s))return[];const n=new Map,o=(f,p="")=>{let u;try{u=y(f)}catch{return}for(const r of u){const i=m(f,r);if(r.startsWith("@")){o(i,`${r}/`);continue}if(r===".pnpm"&&p===""){let l;try{l=y(i)}catch{continue}for(const a of l){const c=m(i,a,"node_modules");g(c)&&o(c)}continue}if(r.startsWith("."))continue;const h=p+r,t=m(i,"package.json");try{if(!q(i).isDirectory()||!g(t))continue;const l=M(t),a=l.scripts??{},c=x.filter(v=>a[v]);!a.preinstall&&!a.install&&!a.postinstall&&g(m(i,"binding.gyp"))&&c.push("install (binding.gyp)"),c.length>0&&!n.has(h)&&n.set(h,{directory:i,hooks:c,name:h,version:typeof l.version=="string"?l.version:void 0});const d=m(i,"node_modules");g(d)&&o(d)}catch{}}};return o(s),[...n.values()]},j=e=>{const s=e.startsWith("@"),n=e.indexOf("@",s?1:0);return n===-1?{name:e}:{name:e.slice(0,n),version:e.slice(n+1)}},O=(e,s,n)=>{for(const[o,f]of Object.entries(s)){if(!f)continue;if(o.endsWith("@*")){if(o.slice(0,-2)===e.name)return!0;continue}if(o.endsWith("*")){if(e.name.startsWith(o.slice(0,-1)))return!0;continue}const{name:p,version:u}=j(o);if(p===e.name&&(!n||u===void 0||e.version===u))return!0}return!1},R=(e,s,n={})=>{const o=n.pinVersions===!0,f=B(e),p=[],u=[],r=new Map(f.map(t=>[t.name,t]));for(const t of f)O(t,s,o)?u.push(t):p.push(t);const i=[],h=[];for(const[t,l]of Object.entries(s)){if(!l)continue;if(t.endsWith("@*")){const v=t.slice(0,-2);r.has(v)||i.push(t);continue}if(t.endsWith("*")){const v=t.slice(0,-1);[...r.keys()].some(W=>W.startsWith(v))||i.push(t);continue}const{name:a,version:c}=j(t),d=r.get(a);if(!d){i.push(t);continue}o&&c!==void 0&&c!=="*"&&d.version&&d.version!==c&&h.push({from:t,to:`${a}@${d.version}`})}return{excess:i,installed:u,unapproved:p,versionDrift:h}},E=(e,s)=>R(e,s).unapproved.map(n=>`${n.name} (${n.hooks.join(", ")})`);export{R as W,E as w};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o}from"./resolve-runtime-
|
|
1
|
+
import{r as o}from"./resolve-runtime-D_vZovbB.js";const i=e=>{if(e!==null&&typeof e=="object"&&"runtime"in e){const r=e.runtime;if(typeof r=="string")return r}},s=(e,r)=>{const t=o(r,{config:e.visConfig?.runtime,flag:i(e.options)});return t.deferredNotice!==void 0&&e.logger?.warn?.(t.deferredNotice),t},u=e=>e.runtime==="bun"?"bun":void 0;export{u as a,s as r};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as ie}from"node:module";import{
|
|
2
|
-
`:"";let b="";switch(G){case m.JSTOXML_OBJECT:{const{_name:f,_content:u}=e;if(u===null&&typeof M!="function"){b=`${R}${k}${f}`;break}if(Array.isArray(u)&&u.every(ve))return u.map(v=>U({_name:f,_content:v},{...n,depth:t,_isOutputStart:!1})).join("");if(ee.includes(f))break;const g=U(u,{...n,depth:t+1,_isOutputStart:N}),
|
|
3
|
-
${k}`:"",S=a?"":`${g}${T}</${f}>`;b+=`${x}${d}${S}`;break}case m.OBJECT:{const f=Object.keys(e);b=f.map((u,g)=>{const
|
|
1
|
+
import{createRequire as ie}from"node:module";import{w as E,z as le}from"./index-uBVnF4ji.js";import{r as me}from"./docker-DaVs-9wK.js";import{a as oe}from"./readJsonSync-DweZd5ZA-0eZh9sGm.js";import{e as de}from"./license-t5KnNX6v.js";import{D as he}from"./package-version-C47v64aB.js";import"./public-api-WqUCiyIe.js";import{u as _e}from"./index-BAe6e0XE.js";let ae;const pe=e=>(ae??=ie(import.meta.url))(e),P=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,se=e=>{if(typeof P<"u"&&P.versions&&P.versions.node){const[n,t]=P.versions.node.split(".").map(Number);if(n>22||n===22&&t>=3||n===20&&t>=16)return P.getBuiltinModule(e)}return pe(e)},{randomUUID:ue}=se("node:crypto"),{readdirSync:fe}=se("node:fs"),X=e=>e.replaceAll(/[^\w.~-]/g,n=>`%${(n.codePointAt(0)??0).toString(16).toUpperCase().padStart(2,"0")}`),C=(e,n)=>{const t=e.toLowerCase();if(t.startsWith("@")){const s=t.indexOf("/");if(s>0){const r=t.slice(0,s),p=t.slice(s+1);return`pkg:npm/${X(r)}/${X(p)}@${X(n)}`}}return`pkg:npm/${X(t)}@${X(n)}`},m={ARRAY:"array",BOOLEAN:"boolean",DATE:"date",FUNCTION:"function",JSTOXML_OBJECT:"jstoxml-object",NULL:"null",NUMBER:"number",OBJECT:"object",STRING:"string"},ge=[m.STRING,m.NUMBER,m.BOOLEAN],ye='<?xml version="1.0" encoding="UTF-8"?>',ee=["_selfCloseTag","_attrs"],be=(e="",n=0)=>e.repeat(n),H=e=>Array.isArray(e)&&m.ARRAY||typeof e===m.OBJECT&&e!==null&&e._name&&m.JSTOXML_OBJECT||e instanceof Date&&m.DATE||e===null&&m.NULL||typeof e,re=e=>e.startsWith("<![CDATA["),ce=(e="",n={},t)=>{let s=e;if(typeof e===m.STRING){if(re(e))return e;const r=new RegExp(`(${Object.keys(n).join("|")})(?!(\\w|#)*;)`,"g");s=String(e).replace(r,(p,h)=>n[h]||"")}return typeof t=="function"?t(s):s},$e=(e={},n,t,s)=>(Array.isArray(e)?e:Object.entries(e).map(([r,p])=>({[r]:p}))).reduce((r,p)=>{const h=Object.keys(p)[0],_=p[h];if(typeof t===m.FUNCTION&&t(h,_))return r;const y=n?ce(_,n):_,$=!s&&y===!0?"":`="${y}"`;return r.push(`${h}${$}`),r},[]),Oe=(e={},n,t,s)=>{const r=$e(e,n,t,s);return r.length===0?"":` ${r.join(" ")}`},je=(e={})=>Object.keys(e).map(n=>({_name:n,_content:e[n]})),ve=e=>ge.includes(H(e)),ke=e=>!e.match("<"),Te=({header:e,isOutputStart:n})=>e&&n?typeof e===m.BOOLEAN?ye:e:"",ne={"<":"<",">":">","&":"&",'"':"""},U=(e={},n={})=>{const{depth:t=0,indent:s,_isFirstItem:r,_isOutputStart:p=!0,header:h,attributeReplacements:_={},attributeFilter:y,attributeExplicitTrue:$=!1,contentReplacements:F={},contentMap:M,selfCloseTags:B=!0}=n,J=typeof _=="boolean"&&!_?{}:{...ne,..._},z=typeof F=="boolean"&&!F?{}:{...ne,...F},D=typeof s=="string",k=be(s,t),G=H(e),L=Te({header:h,isOutputStart:p}),N=p&&!L&&r&&t===0,R=D&&!N?`
|
|
2
|
+
`:"";let b="";switch(G){case m.JSTOXML_OBJECT:{const{_name:f,_content:u}=e;if(u===null&&typeof M!="function"){b=`${R}${k}${f}`;break}if(Array.isArray(u)&&u.every(ve))return u.map(v=>U({_name:f,_content:v},{...n,depth:t,_isOutputStart:!1})).join("");if(ee.includes(f))break;const g=U(u,{...n,depth:t+1,_isOutputStart:N}),A=H(g),O=ke(g),j=re(g),x=`${R}${k}`;if(f==="_comment"){b+=`${x}<!-- ${u} -->`;break}const W=A==="undefined"||g==="",c=B,o=e._selfCloseTag,a=typeof o===m.BOOLEAN?W&&o:W&&c,i=a?"/":"",l=Oe(e._attrs,J,y,$),d=`<${f}${l}${i}>`,T=D&&!O&&!j?`
|
|
3
|
+
${k}`:"",S=a?"":`${g}${T}</${f}>`;b+=`${x}${d}${S}`;break}case m.OBJECT:{const f=Object.keys(e);b=f.map((u,g)=>{const A={...n,_isFirstItem:g===0,_isLastItem:g+1===f.length,_isOutputStart:N},O={_name:u};if(H(e[u])===m.OBJECT&&(ee.forEach(j=>{const x=e[u][j];typeof x<"u"&&(O[j]=x,delete e[u][j])}),typeof e[u]._content<"u"&&Object.keys(e[u]).length>1)){const j=Object.assign({},e[u]);delete j._content,O._content=[...je(j),e[u]._content]}return typeof O._content>"u"&&(O._content=e[u]),U(O,A)},n).join("");break}case m.FUNCTION:{const f=e(n);b=U(f,n);break}case m.ARRAY:{b=e.map((f,u)=>{const g={...n,_isFirstItem:u===0,_isLastItem:u+1===e.length,_isOutputStart:N};return U(f,g)}).join("");break}default:{b=ce(e,z,M);break}}return`${L}${b}`},Q=e=>{try{return oe(e)}catch{return}},Se=e=>{if(e.length===0||e.includes("..")||e.startsWith(".")||e.includes("\0")||e.includes("\\"))return!1;if(e.startsWith("@")){const n=e.indexOf("/");return n>1&&!e.includes("/",n+1)}return!e.includes("/")},we=e=>e.length>0&&!e.includes("/")&&!e.includes("\\")&&!e.includes("..")&&!e.includes("\0"),Ae=(e,n,t)=>{const s=`${n.replaceAll("/","+")}@${t}`,r=E(e,"node_modules",".pnpm"),p=Q(E(r,s,"node_modules",n,"package.json"));if(p)return p;let h;try{h=fe(r)}catch{return}const _=`${s}_`;for(const y of h){if(!y.startsWith(_))continue;const $=Q(E(r,y,"node_modules",n,"package.json"));if($)return $}},xe=(e,n,t)=>{const s=Q(E(e,"node_modules",n,"package.json"));return s?.version===t?s:void 0},De=(e,n,t)=>{if(!(!Se(n)||!we(t)))return Ae(e,n,t)??xe(e,n,t)},Ne={sha256:"SHA-256",sha384:"SHA-384",sha512:"SHA-512"},Re={sha256:64,sha384:96,sha512:128},Ce=e=>{const n={name:e.name,version:e.version},{integrity:t}=e;return t&&t.hex.length===Re[t.algorithm]&&(n.hash={alg:Ne[t.algorithm],content:t.hex}),e.dependencies&&(n.dependencies=e.dependencies),e.peerDependencies&&(n.peerDependencies=e.peerDependencies),e.optionalDependencies&&(n.optionalDependencies=e.optionalDependencies),n},Ee=[{file:"pnpm-lock.yaml",type:"pnpm"},{file:"npm-shrinkwrap.json",type:"npm"},{file:"package-lock.json",type:"npm"},{file:"yarn.lock",type:"yarn"},{file:"bun.lock",type:"bun"}],Me=e=>{for(const{file:n,type:t}of Ee){let s;try{s=le(E(e,n))}catch{continue}const r=new Map;for(const p of he(s,t))r.set(`${p.name}@${p.version}`,Ce(p));return{packages:r,type:t}}},Be=e=>{const n=e.indexOf(":");return n<=0?e:e.slice(0,n)==="npm"?e.slice(n+1):e},V=(e,n,t)=>{const s=t.get(e);if(!s||s.size===0)return;if(s.has(n))return n;const r=Be(n);if(r!==n&&s.has(r))return r;const p=[...s];return _e.maxSatisfying(p,r,{includePrerelease:!0})||p[0]},Le="1.7",Ie="CycloneDX",Ue="http://cyclonedx.org/schema/bom-1.7.schema.json",Fe="@visulima/vis",te=e=>{try{return oe(e)}catch{return}},Je=e=>{if(e){if(typeof e=="string")return e;if(typeof e=="object"&&e.name)return e.email?`${e.name} <${e.email}>`:e.name}},qe=e=>{if(e)return typeof e=="string"?e:e.url},Pe=e=>{if(e)return typeof e=="string"?e:e.url},Xe=e=>{const n=[];e.homepage&&n.push({type:"website",url:e.homepage});const t=qe(e.repository);t&&n.push({type:"vcs",url:t});const s=Pe(e.bugs);return s&&n.push({type:"issue-tracker",url:s}),n.length>0?n:void 0},ze=e=>e==="application"||e==="service"||e==="tool"?"application":"library",K=(e,n)=>{if(!n)return;n.description&&(e.description=n.description);const t=Je(n.author);t&&(e.author=t);const s=de(n);s&&(e.licenses=s);const r=Xe(n);r&&(e.externalReferences=r)},sn=e=>{const{focus:n,generatorVersion:t,includeDev:s=!1,now:r=new Date,projectGraph:p,serialNumber:h,workspace:_,workspaceRoot:y}=e,$=n&&n.length>0?[...me(n,p)].sort():Object.keys(_.projects).sort(),F=new Set($),M=new Map;for(const c of $){const o=_.projects[c];o&&M.set(c,te(E(y,o.root,"package.json")))}const B=[],J=new Map;for(const c of $){const o=_.projects[c];if(!o)continue;const a=M.get(c),i=a?.version??"0.0.0",l=C(c,i);J.set(c,l);const d={"bom-ref":l,name:c,purl:l,type:ze(o.projectType),version:i};K(d,a),B.push(d)}const z=Me(y),D=new Map,k=new Map;if(z)for(const c of z.packages.values()){D.set(`${c.name}@${c.version}`,c);let o=k.get(c.name);o||(o=new Set,k.set(c.name,o)),o.add(c.version)}const G=[],L=[],N=new Map;for(const c of $){const o=M.get(c);if(!o)continue;const a=[o.dependencies,o.peerDependencies];s&&a.push(o.devDependencies);const i=new Set,l=(d,T)=>{if(T)for(const[S,v]of Object.entries(T)){if(F.has(S)){const I=J.get(S);I&&i.add(I);continue}const w=V(S,v,k);w&&(i.add(C(S,w)),d.push(`${S}@${w}`))}};for(const d of a)l(G,d);l(L,o.optionalDependencies),N.set(c,i)}const R=new Map,b=new Map,f=(c,o)=>{const a=[...c];for(;a.length>0;){const i=a.pop(),l=R.get(i);if(l==="required"||l==="optional"&&o==="optional")continue;R.set(i,o);const d=D.get(i);if(!d)continue;const T=b.get(i)??new Set,S=[d.dependencies,d.peerDependencies];for(const v of S)if(v)for(const[w,I]of Object.entries(v))for(const q of I){const Y=V(w,q,k);Y&&(T.add(C(w,Y)),a.push(`${w}@${Y}`))}if(d.optionalDependencies)for(const[v,w]of Object.entries(d.optionalDependencies))for(const I of w){const q=V(v,I,k);q&&(T.add(C(v,q)),L.push(`${v}@${q}`))}T.size>0&&b.set(i,T)}};f(G,"required"),f(L,"optional");const u=[],g=[...R.keys()].sort();for(const c of g){const o=D.get(c);if(!o)continue;const a=C(o.name,o.version),i={"bom-ref":a,name:o.name,purl:a,scope:R.get(c)??"required",type:"library",version:o.version};o.hash&&(i.hashes=[o.hash]),K(i,De(y,o.name,o.version)),u.push(i)}const A=[];for(const[c,o]of N){const a=J.get(c);if(!a)continue;const i=[...o].sort();A.push(i.length>0?{dependsOn:i,ref:a}:{ref:a})}for(const c of g){const o=D.get(c);if(!o)continue;const a=C(o.name,o.version),i=b.get(c),l=i?[...i].sort():[];A.push(l.length>0?{dependsOn:l,ref:a}:{ref:a})}A.sort((c,o)=>c.ref.localeCompare(o.ref));const O=te(E(y,"package.json")),j=(()=>{if(n?.length===1){const l=B.find(d=>d.name===n[0]);if(l)return{"bom-ref":l["bom-ref"],name:l.name,purl:l.purl,type:l.type,version:l.version}}const c=O?.name??"workspace",o=O?.version??"0.0.0",a=C(c,o),i={"bom-ref":a,name:c,purl:a,type:"application",version:o};return K(i,O),i})(),x=j["bom-ref"],W=x?B.filter(c=>c["bom-ref"]!==x):B;return{$schema:Ue,bomFormat:Ie,components:[...W,...u],dependencies:A,metadata:{component:j,lifecycles:[{phase:"build"}],timestamp:r.toISOString(),tools:{components:[{name:Fe,type:"application",...t?{version:t}:{}}]}},serialNumber:h??`urn:uuid:${ue()}`,specVersion:Le,version:1}},on=e=>{const n={version:e.version??1,xmlns:"http://cyclonedx.org/schema/bom/1.7"};e.serialNumber&&(n.serialNumber=e.serialNumber);const t=[];return e.metadata&&t.push(Ge(e.metadata)),e.components&&e.components.length>0&&t.push({_content:e.components.map(s=>Z(s)),_name:"components"}),e.dependencies&&e.dependencies.length>0&&t.push({_content:e.dependencies.map(s=>He(s)),_name:"dependencies"}),`${U({_attrs:n,_content:t,_name:"bom"},{header:!0,indent:" ",selfCloseTags:!0})}
|
|
4
4
|
`},Ge=e=>{const n=[];return e.timestamp&&n.push({timestamp:e.timestamp}),e.lifecycles&&e.lifecycles.length>0&&n.push({_content:e.lifecycles.map(t=>{const s=[];return t.phase&&s.push({phase:t.phase}),t.name&&s.push({name:t.name}),t.description&&s.push({description:t.description}),{_content:s,_name:"lifecycle"}}),_name:"lifecycles"}),e.tools?.components&&n.push({_content:[{_content:e.tools.components.map(t=>Z(t)),_name:"components"}],_name:"tools"}),e.component&&n.push(Z(e.component)),{_content:n,_name:"metadata"}},Z=e=>{const n={type:e.type};e["bom-ref"]&&(n["bom-ref"]=e["bom-ref"]);const t=[];e.group&&t.push({group:e.group}),t.push({name:e.name}),e.version&&t.push({version:e.version}),e.description&&t.push({description:e.description}),e.author&&t.push({author:e.author}),e.hashes&&e.hashes.length>0&&t.push({_content:e.hashes.map(r=>({_attrs:{alg:r.alg},_content:r.content,_name:"hash"})),_name:"hashes"});const s=We(e.licenses);return s&&t.push(s),e.purl&&t.push({purl:e.purl}),e.scope&&t.push({scope:e.scope}),e.externalReferences&&e.externalReferences.length>0&&t.push({_content:e.externalReferences.map(r=>({_attrs:{type:r.type},_content:[{url:r.url}],_name:"reference"})),_name:"externalReferences"}),{_attrs:n,_content:t,_name:"component"}},We=e=>{if(!e||e.length===0)return;const n=[];for(const t of e){if("expression"in t){n.push({expression:t.expression});continue}const s=[];"id"in t.license&&t.license.id?s.push({id:t.license.id}):"name"in t.license&&t.license.name&&s.push({name:t.license.name}),n.push({_content:s,_name:"license"})}return{_content:n,_name:"licenses"}},He=e=>e.dependsOn&&e.dependsOn.length>0?{_attrs:{ref:e.ref},_content:e.dependsOn.map(n=>({_attrs:{ref:n},_name:"dependency"})),_name:"dependency"}:{_attrs:{ref:e.ref},_name:"dependency"};export{sn as b,on as s,C as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z as u,
|
|
1
|
+
import{z as u,w as l,l as g}from"./index-uBVnF4ji.js";import{D as d}from"./package-version-C47v64aB.js";import"./public-api-WqUCiyIe.js";import{x as w,e as D}from"../packem_chunks/catalog.js";const v={bun:{file:"bun.lock",type:"bun"},npm:{aliases:["npm-shrinkwrap.json"],file:"package-lock.json",type:"npm"},pnpm:{file:"pnpm-lock.yaml",type:"pnpm"},yarn:{file:"yarn.lock",type:"yarn"}},j=o=>{const t=v[o];return t?[...t.aliases??[],t.file].map(e=>({file:e,type:t.type})):[]},m=(o,t)=>{const e=j(t);if(e.length!==0)return e.find(r=>g(l(o,r.file)))??e[e.length-1]},k=o=>{try{return JSON.parse(u(o))}catch{return}},y=o=>{const t=[],e=k(l(o,"package.json"));e&&t.push(e);const r=w(o);let c;if(r?c=r:e?.workspaces&&(Array.isArray(e.workspaces)?c=e.workspaces:e.workspaces.packages&&(c=e.workspaces.packages)),!c)return t;const a=D(o,c);for(const s of a){const n=k(l(o,s,"package.json"));n&&t.push(n)}return t},b=(o,t)=>{const e=new Set,r=[],c=new Map;for(const s of t){const n=c.get(s.name);n?n.push(s):c.set(s.name,[s])}const a=s=>{if(s)for(const n of Object.keys(s))e.has(n)||(e.add(n),r.push(n))};for(const s of y(o))a(s.dependencies),a(s.peerDependencies),a(s.optionalDependencies);for(;r.length>0;){const s=r.shift(),n=c.get(s);if(n){for(const i of n)for(const p of[i.dependencies,i.peerDependencies,i.optionalDependencies])if(p)for(const f of Object.keys(p))e.has(f)||(e.add(f),r.push(f))}}return e},A=(o,t,e={})=>{const r=m(o,t);if(!r)return[];let c;try{c=u(l(o,r.file))}catch{return[]}const a=d(c,r.type);if(a.length===0)return[];const s=e.includeDev??!0?void 0:b(o,a),n=new Set,i=[];for(const p of a){if(s&&!s.has(p.name))continue;const f=`${p.name}@${p.version}`;n.has(f)||(n.add(f),i.push({isDev:!1,name:p.name,version:p.version}))}return i},M=(o,t)=>{const e=m(o,t);if(!e)return[];let r;try{r=u(l(o,e.file))}catch{return[]}const c=d(r,e.type);if(c.length===0)return[];const a=new Map;for(const n of c)a.has(n.name)||a.set(n.name,new Set),a.get(n.name).add(n.version);const s=[];for(const[n,i]of a)i.size<=1||s.push({name:n,versions:[...i]});return s.sort((n,i)=>n.name.localeCompare(i.name))},x=(o,t)=>{const e=m(o,t);if(!e)return;let r;try{r=u(l(o,e.file))}catch{return}const c=d(r,e.type);if(c.length===0)return;const a=[],s=new Set;for(const n of y(o))for(const i of[n.dependencies,n.devDependencies,n.peerDependencies,n.optionalDependencies])if(i)for(const[p,f]of Object.entries(i)){const h=`${p}@${f}`;s.has(h)||(s.add(h),a.push({name:p,version:f}))}return{entries:c,roots:a}};export{v as L,x as a,M as f,A as l,m as r};
|