@visulima/vis 1.0.7 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/LICENSE.md +210 -2733
- package/dist/bin.js +1 -1
- package/dist/binx.js +1 -1
- package/dist/packem_chunks/CONFIG_FILES.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 +163 -163
- package/dist/packem_chunks/devtools.js +1 -1
- package/dist/packem_chunks/dispatch.js +1 -1
- package/dist/packem_chunks/fix.js +1 -1
- package/dist/packem_chunks/handler.js +1 -1
- package/dist/packem_chunks/handler10.js +1 -1
- package/dist/packem_chunks/handler11.js +1 -1
- package/dist/packem_chunks/handler12.js +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/packem_chunks/handler5.js +5 -5
- package/dist/packem_chunks/handler50.js +6 -6
- package/dist/packem_chunks/handler51.js +1 -1
- package/dist/packem_chunks/handler53.js +1 -1
- package/dist/packem_chunks/handler54.js +1 -1
- package/dist/packem_chunks/handler55.js +1 -1
- package/dist/packem_chunks/handler58.js +3 -3
- 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 +1 -1
- package/dist/packem_chunks/handler62.js +2 -2
- package/dist/packem_chunks/handler63.js +1 -1
- package/dist/packem_chunks/handler64.js +4 -4
- package/dist/packem_chunks/handler66.js +1 -1
- package/dist/packem_chunks/handler67.js +19 -19
- package/dist/packem_chunks/handler68.js +3 -3
- package/dist/packem_chunks/handler69.js +1 -1
- package/dist/packem_chunks/handler7.js +1 -1
- package/dist/packem_chunks/handler70.js +4 -4
- package/dist/packem_chunks/handler71.js +1 -1
- package/dist/packem_chunks/handler72.js +13 -13
- package/dist/packem_chunks/handler73.js +4 -4
- package/dist/packem_chunks/handler74.js +7 -7
- package/dist/packem_chunks/handler75.js +3 -27
- package/dist/packem_chunks/handler76.js +27 -3
- package/dist/packem_chunks/handler77.js +32 -32
- package/dist/packem_chunks/handler78.js +25 -23
- package/dist/packem_chunks/handler8.js +1 -1
- package/dist/packem_chunks/handler9.js +1 -1
- package/dist/packem_chunks/heal-accept.js +1 -1
- package/dist/packem_chunks/heal.js +1 -1
- package/dist/packem_chunks/help-command.js +56 -23
- package/dist/packem_chunks/index3.js +1 -1
- package/dist/packem_chunks/keys-refresh.js +1 -1
- package/dist/packem_chunks/lean.js +1 -1
- package/dist/packem_chunks/list.js +1 -1
- package/dist/packem_chunks/loader.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 +1 -1
- package/dist/packem_chunks/verify-lockfile.js +1 -1
- package/dist/packem_shared/{affected-shas-DkrQVQla.js → affected-shas-BOeR4vEc.js} +1 -1
- package/dist/packem_shared/{ai-analysis-DWBi9tSU.js → ai-analysis-D7HOdUwd.js} +3 -3
- package/dist/packem_shared/{ai-fix-BocGeQu4.js → ai-fix-CLfWbyqY.js} +1 -1
- package/dist/packem_shared/{augment-BIUGEy1Q.js → augment-BVuj3ee7.js} +1 -1
- package/dist/packem_shared/{bin-BZ_m_tag.js → bin-CkfFJCAM.js} +1 -1
- package/dist/packem_shared/{build-scripts-CpTeQE1L.js → build-scripts-CfAqHBlq.js} +1 -1
- package/dist/packem_shared/{command-runtime-Buz4F5LM.js → command-runtime-DTbo12cP.js} +1 -1
- package/dist/packem_shared/{cyclonedx-DFlz2HRz.js → cyclonedx--L7NbMBH.js} +1 -1
- package/dist/packem_shared/{dependency-scan-173U3WXB.js → dependency-scan-DZcSlSFp.js} +1 -1
- package/dist/packem_shared/{docker-B2h5KRZH.js → docker-69ybb6g7.js} +1 -1
- package/dist/packem_shared/{en-BRcjb70R.js → en-C26W78--.js} +1 -1
- package/dist/packem_shared/{failure-log-C3c5AVfc.js → failure-log-BZQqxffZ.js} +1 -1
- package/dist/packem_shared/glob-DMbPwGSj-D2Hk3lFG.js +1 -0
- package/dist/packem_shared/{index-D75r1yKp.js → index-2LCHaVNX.js} +1 -1
- package/dist/packem_shared/{index-BtbefKtY.js → index-Bhzio2RB.js} +1 -1
- package/dist/packem_shared/{index-ZfYDID5E.js → index-Bq6YEpiq.js} +1 -1
- package/dist/packem_shared/{lifecycle-CG0Ccu4h.js → lifecycle-BcCMt9wn.js} +1 -1
- package/dist/packem_shared/{lockfile-D_JiWcwS.js → lockfile-Cwt0Nwr0.js} +1 -1
- package/dist/packem_shared/{manifests-mFrrpzXW.js → manifests-BshBdSb-.js} +1 -1
- package/dist/packem_shared/{min-release-age-Cdh1dLz1.js → min-release-age-hK604veF.js} +1 -1
- package/dist/packem_shared/{missing-package-json-sYPP3cm-.js → missing-package-json-Cu0iWMT2.js} +1 -1
- package/dist/packem_shared/{native-config-sync-DW8549FX.js → native-config-sync-DDKjAy0i.js} +1 -1
- package/dist/packem_shared/{package-version-DBJLduJL.js → package-version-TsxLc6w2.js} +2 -2
- package/dist/packem_shared/{packument-BFekEvwn.js → packument-CtVAoNo7.js} +1 -1
- package/dist/packem_shared/{pm-runner-D5NWL8yv.js → pm-runner-CfyxALPK.js} +1 -1
- package/dist/packem_shared/{provenance-ByHgofYo.js → provenance-CRBV9cko.js} +1 -1
- package/dist/packem_shared/{readJsonSync-DuMMeB3s-wlhgSHes.js → readJsonSync-DuMMeB3s-B9cGBVbJ.js} +1 -1
- package/dist/packem_shared/{registry-keys-BCD7Ir8g.js → registry-keys-Ci2keQNi.js} +1 -1
- package/dist/packem_shared/{resolve-explicit-CnEsy-zC.js → resolve-explicit-BX6aMYl-.js} +1 -1
- package/dist/packem_shared/{resolve-runtime-Z2n59SEd.js → resolve-runtime-COyiEML3.js} +1 -1
- package/dist/packem_shared/{run-file-u9hMNu8K.js → run-file-CTJfIZ0I.js} +1 -1
- package/dist/packem_shared/{runtime-check-B1OF152E.js → runtime-check-fzDkedMW.js} +1 -1
- package/dist/packem_shared/{s1ngularity-DkNDQiKU.js → s1ngularity-Cq1cCSpU.js} +1 -1
- package/dist/packem_shared/scan-progress-DQ9qIGzr.js +2 -0
- package/dist/packem_shared/{selectors-DiZWa7R4.js → selectors-B9dOMIMq.js} +1 -1
- package/dist/packem_shared/{signatures-kvrwi3Un.js → signatures-DvD1E8Xa.js} +1 -1
- package/dist/packem_shared/{target-options-BJIDkfDf.js → target-options-aPqByoww.js} +1 -1
- package/dist/packem_shared/{toolchain-CAbopPwK.js → toolchain-CiaW3bx4.js} +1 -1
- package/dist/packem_shared/{typosquats-DWB80Gyv.js → typosquats-CRnvlYPw.js} +1 -1
- package/dist/packem_shared/use-measured-height-DfNxp6nf.js +1 -0
- package/dist/packem_shared/{verify-BajubByH.js → verify-23b6IfSg.js} +1 -1
- package/dist/packem_shared/vis-update-app-De8JjZm0.js +1 -0
- package/dist/packem_shared/{watch-B8WT65yN.js → watch-B3P2dwoG.js} +1 -1
- package/dist/packem_shared/{watch-loop-CZazUnGB.js → watch-loop-B3_O8hF-.js} +1 -1
- package/dist/runtime/preload.js +1 -1
- package/index.d.ts +204 -204
- package/index.js +26 -26
- package/package.json +11 -10
- package/dist/packem_shared/MultiSpinner-B9U0-aE3-B-gIXhFk.js +0 -3
- package/dist/packem_shared/Table-BGIHvenQ-D2oJtNQj.js +0 -34
- package/dist/packem_shared/glob-DMbPwGSj-DFkUYBco.js +0 -1
- package/dist/packem_shared/scan-progress-CHdHWhVw.js +0 -2
- package/dist/packem_shared/spinner-DuJJvFTl.js +0 -1
- package/dist/packem_shared/tabs-CgxCvjCY.js +0 -1
- package/dist/packem_shared/use-measured-height-C4jA0yNy.js +0 -1
- package/dist/packem_shared/vis-update-app-M3dw6XRC.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{y as U,m as I,u as H,I as K,v as b}from"../packem_shared/index-
|
|
1
|
+
import{y as U,m as I,u as H,I as K,v as b}from"../packem_shared/index-2LCHaVNX.js";import{E as X}from"../packem_shared/public-api-WqUCiyIe.js";import{p as Z}from"./cli-main.js";import{k as N,j as A,l as x}from"../packem_shared/en-C26W78--.js";const ee=(e,t)=>typeof e!="string"||e===""?"":e[0].toLowerCase()+e.slice(1),k=(e,t)=>typeof e!="string"||e===""?"":(t?.locale?e[0].toLocaleUpperCase(t.locale):e[0].toUpperCase())+e.slice(1),te=(e,t)=>`${e}::${t?.joiner??""}::${t?.locale??""}::${t?.knownAcronyms?.join(",")??""}::${t?.normalize?"true":"false"}`,$=(e,t)=>{const{length:r}=e;if(r===0)return"";if(r===1)return e[0];const n=[];let o="",s="";for(let i=0;i<r;i++){const l=e[i];if(N.test(l)){o?(n.push(o+s+l),o="",s=""):(n.length>0&&n.push(t),o=l);continue}o?(s&&(s+=t),s+=l):(n.length>0&&n.push(t),n.push(l))}return n.join("")},ne=/(?<![a-zß])SS(?![a-z])/g,re=e=>e.replaceAll(ne,"ß"),oe=(e,t)=>{if(typeof e!="string"||!e)return"";let r=!0;return $(A(e,{handleAnsi:t?.handleAnsi,handleEmoji:t?.handleEmoji,knownAcronyms:t?.knownAcronyms,locale:t?.locale,normalize:t?.normalize,separators:void 0,stripAnsi:t?.stripAnsi,stripEmoji:t?.stripEmoji}).map(o=>{const s=o,i=s.toLowerCase();return r?(r=!1,ee(i)):k(i,t)}),"")},se=new x(1e3),S=(e,t)=>{if(typeof e!="string")return"";const r=t?.cache??!1,n=t?.cacheStore??se;let o;if(r&&(o=te(e,t)),r&&o&&n.has(o))return n.get(o);const s=A(e,{handleAnsi:t?.handleAnsi,handleEmoji:t?.handleEmoji,knownAcronyms:t?.knownAcronyms,locale:t?.locale,normalize:t?.normalize,separators:void 0,stripAnsi:t?.stripAnsi,stripEmoji:t?.stripEmoji}).map(l=>{if(t?.handleAnsi&&N.test(l))return l;if(t?.toUpperCase)return t.locale?l.toLocaleUpperCase(t.locale):l.toUpperCase();const a=t?.locale?.startsWith("de")?re(l):l;return t?.locale?a.toLocaleLowerCase(t.locale):a.toLowerCase()}),i=$(s,t?.joiner??"-");return r&&o&&n.set(o,i),i},ie=new x(1e3),le=(e,t)=>S(e,{cacheStore:ie,...t,joiner:"_",toUpperCase:!0}),ae=(e,t)=>typeof e!="string"||!e?"":$(A(e,{handleAnsi:t?.handleAnsi,handleEmoji:t?.handleEmoji,knownAcronyms:t?.knownAcronyms,locale:t?.locale,normalize:t?.normalize,separators:void 0,stripAnsi:t?.stripAnsi,stripEmoji:t?.stripEmoji}).map(n=>k(n.toLowerCase(),{locale:t?.locale})),""),ce=new x(1e3),fe=(e,t)=>S(e,{cacheStore:ce,...t,joiner:"_"}),ue=(e,t)=>typeof e!="string"?"":$(A(e,{handleAnsi:t?.handleAnsi,handleEmoji:t?.handleEmoji,knownAcronyms:t?.knownAcronyms,locale:t?.locale,normalize:t?.normalize,separators:void 0,stripAnsi:t?.stripAnsi,stripEmoji:t?.stripEmoji}).map(n=>k(n,{locale:t?.locale})),"-"),m=e=>e==null?"":typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"?String(e):JSON.stringify(e),T={camel_case:e=>oe(m(e)),kebab_case:e=>S(m(e)),lower_case:e=>m(e).toLowerCase(),pascal_case:e=>ae(m(e)),path_join:(e,...t)=>{const r=[m(e),...t.map(n=>m(n))];return I(...r)},path_relative:(e,t)=>U(m(t),m(e)),snake_case:e=>fe(m(e)),upper_case:e=>m(e).toUpperCase(),upper_kebab_case:e=>ue(m(e)),upper_snake_case:e=>le(m(e))},R=(e,t,r=[])=>{const n=T[e];if(!n)throw new Error(`Unknown filter "${e}". Known filters: ${Object.keys(T).sort().join(", ")}.`);return n(t,...r)},z=e=>{const t=[];let r=0,n=0,o,s=-1;for(const i of e){if(s+=1,o){i===o&&(o=void 0);continue}if(i==='"'||i==="'"){o=i;continue}i==="("?r+=1:i===")"?r-=1:i===","&&r===0&&(t.push(e.slice(n,s)),n=s+1)}return t.push(e.slice(n)),t},pe=e=>{if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return e.slice(1,-1)},me=/\[([^\]]+)\]/g,de=e=>{const t=e.trim(),r=t.indexOf("(");if(r===-1)return{args:[],name:t};if(!t.endsWith(")"))throw new Error(`Filter call "${e}" missing closing ")"`);const n=t.slice(0,r).trim(),o=t.slice(r+1,-1).trim();return o===""?{args:[],name:n}:{args:z(o).map(s=>{const i=s.trim();return pe(i)??i}),name:n}},he=e=>{const t=e.split("|").map(n=>n.trim()),r=t[0]??"";if(!r)throw new Error(`Empty variable name in expression "${e}"`);return{filters:t.slice(1).map(n=>de(n)),name:r}},ye=e=>e==null?"":typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"?String(e):JSON.stringify(e),ge=(e,t)=>{const r=e.replaceAll(me,(n,o)=>{const{filters:s,name:i}=he(o);if(!Object.hasOwn(t,i))throw new Error(`Variable "${i}" used in filename "${e}" but not defined`);let l=t[i];for(const a of s)l=R(a.name,l,a.args);return ye(l)});return P(r)},P=e=>e.split("/").map(t=>t.endsWith(".tera")||t.endsWith(".twig")?t.slice(0,-5):t).join("/"),we=e=>e.endsWith(".raw")?e.slice(0,-4):e,be=e=>{const t=e.split("/");return(t.at(-1)??"").startsWith("_")?!0:t.slice(0,-1).includes("partials")},Ee=(e,t)=>{if(!e.startsWith(`---
|
|
2
2
|
`)&&!e.startsWith(`---\r
|
|
3
3
|
`))return{body:e};const r=e.indexOf(`
|
|
4
4
|
---`,3);if(r===-1)return{body:e};let n=r+1+3;e[n]==="\r"&&(n+=1),e[n]===`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as r}from"./cli-main.js";import{c as i,f as a}from"../packem_shared/registry-keys-
|
|
1
|
+
import{p as r}from"./cli-main.js";import{c as i,f as a}from"../packem_shared/registry-keys-Ci2keQNi.js";const n=async({options:s})=>{if(s.clear){const t=i();if(s.json){process.stdout.write(`${JSON.stringify({cleared:t,refetched:!1},void 0,2)}
|
|
2
2
|
`);return}r.success(t?"Cleared cached npm signing keys.":"No cached npm signing keys to clear.");return}const e=await a({forceRefresh:!0});if(e===void 0){if(s.json){process.stdout.write(`${JSON.stringify({cleared:!1,error:"fetch-failed",refetched:!1},void 0,2)}
|
|
3
3
|
`),process.exitCode=1;return}r.error("Failed to fetch npm signing keys (network error and no cached keys available)."),process.exitCode=1;return}if(s.json){process.stdout.write(`${JSON.stringify({cleared:!1,fromCache:e.fromCache,keyCount:e.keys.length,refetched:!e.fromCache,stale:e.stale??!1},void 0,2)}
|
|
4
4
|
`);return}if(e.fromCache&&e.stale===!0){r.warn(`Network fetch failed — falling back to expired cache (${String(e.keys.length)} keys).`);return}r.success(`Refreshed npm signing keys (${String(e.keys.length)} keys).`)};export{n as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{A as a,B as p}from"../packem_shared/index-
|
|
1
|
+
import{A as a,B as p}from"../packem_shared/index-2LCHaVNX.js";import{r as l}from"../packem_shared/resolve-runtime-COyiEML3.js";import{r as f}from"../packem_shared/run-file-CTJfIZ0I.js";const m=o=>{let t,n=!1,i;const s=[];for(let e=0;e<o.length;e+=1){const r=o[e];if(i===void 0){if(r==="--node"){n=!0;continue}if(r==="--runtime"){t=o[e+1],e+=1;continue}if(r.startsWith("--runtime=")){t=r.slice(10);continue}i=r;continue}s.push(r)}return s[0]==="--"&&s.shift(),{file:i,node:n,runtimeFlag:t,scriptArguments:s}},h=async o=>{const{file:t,node:n,runtimeFlag:i,scriptArguments:s}=m(o);if(t===void 0){process.stderr.write(`No file specified. Usage: vis x <file> [args...]
|
|
2
2
|
`),process.exitCode=1;return}const e=process.cwd(),r=a(t)?t:p(e,t);if(n){const d=await f(r,s,"node",e,{node:!0});d!==0&&(process.exitCode=d);return}let c;try{c=l(e,{flag:i})}catch(d){process.stderr.write(`${d.message}
|
|
3
3
|
`),process.exitCode=1;return}c.deferredNotice!==void 0&&process.stderr.write(`${c.deferredNotice}
|
|
4
4
|
`);const u=await f(r,s,c.runtime,e);u!==0&&(process.exitCode=u)};export{m as parseLeanXArgs,h as runLeanX};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{createRequire as _}from"node:module";import{h as x,p as o,v as B}from"./cli-main.js";import{A as R}from"../packem_shared/pm-runner-
|
|
1
|
+
import{createRequire as _}from"node:module";import{h as x,p as o,v as B}from"./cli-main.js";import{A as R}from"../packem_shared/pm-runner-CfyxALPK.js";import{W as V}from"../packem_shared/build-scripts-CfAqHBlq.js";import{m as y,f as w}from"../packem_shared/index-2LCHaVNX.js";import{a as W}from"../packem_shared/readJsonSync-DuMMeB3s-B9cGBVbJ.js";const j=_(import.meta.url),v=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,D=c=>{if(typeof v<"u"&&v.versions&&v.versions.node){const[r,f]=v.versions.node.split(".").map(Number);if(r>22||r===22&&f>=3||r===20&&f>=16)return v.getBuiltinModule(c)}return j(c)},{readdirSync:S,statSync:M}=D("node:fs"),q=(c,r={})=>{const f=y(c,"node_modules");if(!w(f))return[];const l=new Map,p=new Set,$=(n,s,t)=>{const e=`${s}@${t}`;if(p.has(e))return;p.add(e);const i=t.startsWith(c)?t.slice(c.length+1):t;let u=l.get(n);u||(u=[],l.set(n,u)),u.some(b=>b.name===s)||u.push({name:s,relativePath:i})},d=(n,s="")=>{let t;try{t=S(n)}catch{return}for(const e of t){const i=y(n,e);if(e.startsWith("@")){d(i,`${e}/`);continue}if(e===".pnpm"&&s===""){let a;try{a=S(i)}catch{continue}for(const m of a){const h=y(i,m,"node_modules");w(h)&&d(h)}continue}if(e.startsWith("."))continue;const u=s+e,b=y(i,"package.json");try{if(!M(i).isDirectory()||!w(b))continue;const a=W(b),m=typeof a.name=="string"?a.name:u;if(typeof a.bin=="string"){const k=m.includes("/")?m.split("/").pop():m;$(k,m,i)}else if(a.bin&&typeof a.bin=="object")for(const k of Object.keys(a.bin))$(k,m,i);const h=y(i,"node_modules");w(h)&&d(h)}catch{}}};d(f);const g=[];for(const[n,s]of l)s.length<2||r[n]===!0||s.every(t=>r[`${t.name}#${n}`]===!0)||g.push({bin:n,packages:s});return g.sort((n,s)=>n.bin.localeCompare(s.bin))},A=new Set(["bun","npm","pnpm","yarn"]),J=({options:c,visConfig:r,workspaceRoot:f})=>{const l=f??process.cwd(),p=R(l),$=r?.security?.policies?.installScripts?.allow??{},d=r?.security?.allowBins??{},g=r?.security?.pinVersions===!0,n=V(l,$,{pinVersions:g}),s=q(l,d),t=r&&A.has(p.name)?x(r,p.name,l):void 0;if(c.json){process.stdout.write(`${JSON.stringify({binConflicts:s,drift:t,excess:n.excess,installed:n.installed.map(e=>({hooks:e.hooks,name:e.name,version:e.version})),packageManager:p.name,pinVersions:g,unapproved:n.unapproved.map(e=>({hooks:e.hooks,name:e.name,version:e.version})),versionDrift:n.versionDrift},void 0,2)}
|
|
2
2
|
`);return}if(o.info(`Build-script status (${p.name}):
|
|
3
3
|
`),n.installed.length===0&&n.unapproved.length===0&&o.success(" No installed packages declare lifecycle scripts."),n.installed.length>0){o.success(` Approved (${String(n.installed.length)}):`);for(const e of n.installed)o.info(` ✓ ${e.name} — ${e.hooks.join(", ")}`)}if(n.unapproved.length>0){o.info(""),o.warn(` Unapproved (${String(n.unapproved.length)}):`);for(const e of n.unapproved)o.info(` ✗ ${e.name} — ${e.hooks.join(", ")}`);o.notice(" Run 'vis approve-builds' to review.")}if(n.excess.length>0){o.info(""),o.warn(` Stale allowlist entries (${String(n.excess.length)}):`);for(const e of n.excess)o.info(` ! ${e}`);o.notice(" Remove these from vis.config.ts security.policies.installScripts.allow.")}if(n.versionDrift.length>0){o.info(""),o.warn(` Version drift (pinVersions: true) — ${String(n.versionDrift.length)} entr${n.versionDrift.length===1?"y":"ies"} point at outdated versions:`);for(const{from:e,to:i}of n.versionDrift)o.info(` ${e} → ${i}`);o.notice(" Update vis.config.ts security.policies.installScripts.allow keys to migrate.")}if(s.length>0){o.info(""),o.warn(` Bin conflicts (${String(s.length)}) — multiple packages expose the same bin name:`);for(const e of s)o.info(` ${e.bin} ← ${e.packages.map(i=>i.name).join(", ")}`);o.notice(" Add the bin (or 'pkg#bin') to vis.config.ts security.allowBins to silence this.")}if(t?.hasDrift){o.info("");for(const e of B(t))o.warn(e)}};export{J as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as m}from"node:module";import{A as d,j as _}from"../packem_shared/pm-runner-
|
|
1
|
+
import{createRequire as m}from"node:module";import{A as d,j as _}from"../packem_shared/pm-runner-CfyxALPK.js";const w=m(import.meta.url),o=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,g=e=>{if(typeof o<"u"&&o.versions&&o.versions.node){const[t,r]=o.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return o.getBuiltinModule(e)}return w(e)},{createInterface:y}=g("node:readline"),s="sigstore",$=()=>!!process.stdout.isTTY&&process.env.CI!=="true",v=e=>new Promise(t=>{const r=y({input:process.stdin,output:process.stderr});r.question(`${e} (Y/n) `,i=>{r.close();const n=i.trim().toLowerCase();t(n===""||n==="y"||n==="yes")})}),h=e=>{const t=d(e),r=_(t,{exact:!1,filter:[],global:!1,optional:!1,packages:[s],peer:!1,saveDev:!0,workspace:!1,workspaceRoot:!1},e,console);return Promise.resolve({exitCode:r})},R=()=>{try{return import.meta.resolve(s),!0}catch{return!1}},I=e=>{let t="pnpm";try{t=d(e).name}catch{}switch(t){case"bun":return`bun add -d ${s}`;case"npm":return`npm install -D ${s}`;case"yarn":return`yarn add -D ${s}`;default:return`pnpm add -D ${s}`}},D=()=>import("sigstore"),T=async(e={})=>{const t=e.interactive??$(),r=e.prompt??v,i=e.runInstall??h,n=e.importImpl??D,l=e.workspaceRoot??process.cwd(),a=I(l);try{return await n()}catch(p){const{code:u,message:f}=p;if(!(u==="ERR_MODULE_NOT_FOUND"||u==="MODULE_NOT_FOUND")||!f.includes(s))throw p}if(!t)throw new Error(`${s} is not installed. \`vis attest\` needs it for keyless signing/verification. Install it in your repo first:
|
|
2
2
|
${a}`);if(!await r(`${s} isn't installed. Install it now?`))throw new Error(`${s} install declined. Re-run \`vis attest\` after installing manually:
|
|
3
3
|
${a}`);const c=await i(l);if(c.exitCode!==0)throw new Error(`Install of ${s} failed (exit ${String(c.exitCode)}). Install manually and retry:
|
|
4
4
|
${a}`);return await n()};export{I as installCommandFor,R as isSigstoreInstalled,T as loadOptionalSigstore};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{E as g}from"../packem_shared/index.server-qvZ-cy29.js";import{p as c}from"./cli-main.js";import{s as $}from"../packem_shared/scan-progress-
|
|
1
|
+
import{E as g}from"../packem_shared/index.server-qvZ-cy29.js";import{p as c}from"./cli-main.js";import{s as $}from"../packem_shared/scan-progress-DQ9qIGzr.js";import{s as w,D as v}from"../packem_shared/advisories-B76fBVL-.js";const S=t=>t?.security?.audit?.advisories??{},D=t=>t?t.split(",").map(r=>r.trim()).filter(r=>r.length>0):["npm"],b=async({logger:t,options:r,visConfig:h,workspaceRoot:d})=>{if(!d)throw new Error("Could not determine workspace root. Run this command inside a workspace.");const l=r.format==="json",u=S(h),m=r.source??u.source??v,p=D(r.ecosystem),y=p.map(s=>({id:s,label:`Sync ${s} advisories`})),n=$(y,{live:!l}),i=[];try{for(const s of p){n.start(s);const o=Date.now();try{const e=await w({allowedHosts:u.allowedHosts,dbPath:r.db,ecosystem:s,force:!!r.force,source:m,workspaceRoot:d});i.push({ecosystem:s,result:e}),e.upToDate?n.finish(s,"ok",`up to date · ${f(Date.now()-o)}`):n.finish(s,"ok",`${e.advisoriesIngested.toLocaleString()} advisories · ${f(e.durationMs)}`)}catch(e){const a=e instanceof Error?e.message:String(e);i.push({ecosystem:s,error:a}),n.finish(s,"error",a)}}}finally{n.stop()}if(l){const s={ecosystems:i.map(o=>({advisoriesIngested:o.result?.advisoriesIngested??0,dbPath:o.result?.dbPath??null,durationMs:o.result?.durationMs??0,ecosystem:o.ecosystem,error:o.error??null,upToDate:o.result?.upToDate??!1})),source:m};process.stdout.write(`${JSON.stringify(s,void 0,2)}
|
|
2
2
|
`)}else{const s=i.filter(a=>a.error),o=i.filter(a=>a.result),e=o[0];e?.result?.dbPath&&c.info(g(`DB: ${e.result.dbPath}`)),s.length===0?c.success(`Synced ${o.length} ecosystem${o.length===1?"":"s"}.`):c.error(`${s.length} ecosystem${s.length===1?"":"s"} failed to sync.`)}i.some(s=>s.error)&&(process.exitCode=1)},f=t=>t>=1e3?`${(t/1e3).toFixed(1)}s`:`${Math.round(t)}ms`,R=b;export{R as advisoriesSyncExecute};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as e}from"./cli-main.js";import{A as u}from"../packem_shared/pm-runner-
|
|
1
|
+
import{p as e}from"./cli-main.js";import{A as u}from"../packem_shared/pm-runner-CfyxALPK.js";import{O as g}from"../packem_shared/native-config-sync-DDKjAy0i.js";import{S as l}from"../packem_shared/min-release-age-hK604veF.js";const y=new Set(["bun","npm","pnpm","yarn"]),k=({options:r,visConfig:c,workspaceRoot:f})=>{const s=f??process.cwd(),n=u(s);if(!y.has(n.name)){e.warn(`Package manager '${n.name}' has no native security config to sync.`);return}if(!c?.security){e.warn("vis.config has no `security` block — nothing to sync.");return}const t=c.security.policies??{},a=Object.fromEntries(Object.entries(t.installScripts?.allow??{}).filter(([,o])=>o)),m=t.firstSeen?.minutes,p=t.firstSeen?.exclude??[],i=[];if(Object.keys(a).length>0&&!r.skipAllowBuilds&&i.push(...g(n.name,s,a)),r.skipMinReleaseAge||i.push(...l(n.name,s,m,p)),i.length===0){e.success("Nothing to sync — vis.config and native PM config are aligned.");return}e.info(`Syncing vis.config security settings to ${n.name} native config…
|
|
2
2
|
`);for(const o of i)e.success(` ${o}`)};export{k as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as m}from"node:module";import{m as d,f as p,T as v}from"../packem_shared/index-
|
|
1
|
+
import{createRequire as m}from"node:module";import{m as d,f as p,T as v}from"../packem_shared/index-2LCHaVNX.js";import{p as e}from"./cli-main.js";import{A as h}from"../packem_shared/pm-runner-CfyxALPK.js";import{a as u}from"../packem_shared/readJsonSync-DuMMeB3s-B9cGBVbJ.js";const g=m(import.meta.url),c=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,y=o=>{if(typeof c<"u"&&c.versions&&c.versions.node){const[t,s]=c.versions.node.split(".").map(Number);if(t>22||t===22&&s>=3||t===20&&s>=16)return c.getBuiltinModule(o)}return g(o)},{spawnSync:w}=y("node:child_process"),n="@lavamoat/preinstall-always-fail",l=o=>{const t=d(o,"package.json");if(!p(t))return"no-package-json";try{const s=u(t);if(s.devDependencies?.[n]||s.dependencies?.[n])return"installed"}catch{}return"missing"},$=o=>{const t=d(o,"package.json");if(!p(t))return!1;try{const s=u(t);let i=!1;const a=r=>!r||!(n in r)?r:(i=!0,Object.fromEntries(Object.entries(r).filter(([f])=>f!==n)));return s.devDependencies=a(s.devDependencies),s.dependencies=a(s.dependencies),i&&v(t,`${JSON.stringify(s,null,2)}
|
|
2
2
|
`),i}catch{return!1}},D=({options:o,workspaceRoot:t})=>{const s=t??process.cwd();if(o.status){switch(l(s)){case"installed":{e.success(`Preinstall tripwire is installed (${n}).`),e.info("Removing 'ignore-scripts=true' will cause future installs to fail loudly.");break}case"missing":{e.warn("Preinstall tripwire is not installed."),e.info(`Run 'vis security tripwire' to add ${n} as a devDependency.`);break}default:e.error("No package.json found at the workspace root."),process.exitCode=1}return}if(o.remove){$(s)?e.success(`Removed ${n} from package.json. Run your PM's install to clean node_modules.`):e.info(`${n} was not present in package.json.`);return}if(l(s)==="installed"){e.info(`${n} is already installed.`);return}const i=h(s),a={bun:["add","-d",n],npm:["install","--save-dev",n],pnpm:["add","-D","-w",n],yarn:["add","-D",n]}[i.name];if(!a){e.error(`Cannot install tripwire — unsupported package manager '${i.name}'.`),process.exitCode=1;return}e.info(`Installing ${n} via ${i.name}…`);const r=w(i.name,a,{cwd:s,stdio:"inherit"});if(r.error){e.error(`Failed to install tripwire: ${r.error.message}`),process.exitCode=1;return}if(r.signal!==null){e.error(`${i.name} was terminated by signal ${r.signal}`),process.exitCode=1;return}if(r.status!==0){e.error(`${i.name} exited with code ${String(r.status)}`),process.exitCode=r.status??1;return}e.success(`Installed ${n} as a devDependency.`),e.notice(""),e.notice("How the tripwire works:"),e.notice(` ${n} declares a preinstall script that always fails.`),e.notice(" When 'ignore-scripts=true' is set (.npmrc / bunfig.toml / .yarnrc.yml),"),e.notice(" the script is skipped and installs succeed normally. If someone deletes"),e.notice(" that setting, the next install fails — loudly — instead of silently"),e.notice(" running every dependency's lifecycle scripts.")};export{D as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as qe}from"node:module";import{v as F,i as ze,z as Qe,s as Ye,U as Xe,L as Ze,B as S,H as N,y as H,e as Ne,m as w,A as be,g as te,w as et,h as tt,f as $,F as oe,u as ot}from"../packem_shared/index-
|
|
1
|
+
import{createRequire as qe}from"node:module";import{v as F,i as ze,z as Qe,s as Ye,U as Xe,L as Ze,B as S,H as N,y as H,e as Ne,m as w,A as be,g as te,w as et,h as tt,f as $,F as oe,u as ot}from"../packem_shared/index-2LCHaVNX.js";import{parse as rt}from"./index5.js";import"../packem_shared/public-api-WqUCiyIe.js";import{transformTs as Le}from"#native";const Ke=qe(import.meta.url),B=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ge=e=>{if(typeof B<"u"&&B.versions&&B.versions.node){const[o,s]=B.versions.node.split(".").map(Number);if(o>22||o===22&&s>=3||o===20&&s>=16)return B.getBuiltinModule(e)}return Ke(e)},{readFileSync:Oe,statSync:Ie,writeFileSync:Ge,unlinkSync:He}=ge("node:fs"),fe=ge("node:module"),{createRequire:D}=fe,{fileURLToPath:Y,pathToFileURL:ee}=ge("node:url");function st(e,o,s){const{beforeParse:t,buffer:r,compression:c,encoding:i="utf8",flag:l}={},a=F(e,{buffer:r,compression:c,encoding:i,flag:l}),p=typeof t=="function"?t(a):a;return ze.parse(p,o)}const it=D(import.meta.url),U=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,nt=e=>{if(typeof U<"u"&&U.versions&&U.versions.node){const[o,s]=U.versions.node.split(".").map(Number);if(o>22||o===22&&s>=3||o===20&&s>=16)return U.getBuiltinModule(e)}return it(e)};nt("node:fs/promises");const ct=D(import.meta.url),P=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,lt=e=>{if(typeof P<"u"&&P.versions&&P.versions.node){const[o,s]=P.versions.node.split(".").map(Number);if(o>22||o===22&&s>=3||o===20&&s>=16)return P.getBuiltinModule(e)}return ct(e)};lt("node:fs");function at(e,o=!1){const s=e.length;let t=0,r="",c=0,i=16,l=0,a=0,p=0,f=0,d=0;function v(n,g){let b=0,m=0;for(;b<n;){let u=e.charCodeAt(t);if(u>=48&&u<=57)m=m*16+u-48;else if(u>=65&&u<=70)m=m*16+u-65+10;else if(u>=97&&u<=102)m=m*16+u-97+10;else break;t++,b++}return b<n&&(m=-1),m}function O(n){t=n,r="",c=0,i=16,d=0}function k(){let n=t;if(e.charCodeAt(t)===48)t++;else for(t++;t<e.length&&L(e.charCodeAt(t));)t++;if(t<e.length&&e.charCodeAt(t)===46)if(t++,t<e.length&&L(e.charCodeAt(t)))for(t++;t<e.length&&L(e.charCodeAt(t));)t++;else return d=3,e.substring(n,t);let g=t;if(t<e.length&&(e.charCodeAt(t)===69||e.charCodeAt(t)===101))if(t++,(t<e.length&&e.charCodeAt(t)===43||e.charCodeAt(t)===45)&&t++,t<e.length&&L(e.charCodeAt(t))){for(t++;t<e.length&&L(e.charCodeAt(t));)t++;g=t}else d=3;return e.substring(n,g)}function T(){let n="",g=t;for(;;){if(t>=s){n+=e.substring(g,t),d=2;break}const b=e.charCodeAt(t);if(b===34){n+=e.substring(g,t),t++;break}if(b===92){if(n+=e.substring(g,t),t++,t>=s){d=2;break}switch(e.charCodeAt(t++)){case 34:n+='"';break;case 92:n+="\\";break;case 47:n+="/";break;case 98:n+="\b";break;case 102:n+="\f";break;case 110:n+=`
|
|
2
2
|
`;break;case 114:n+="\r";break;case 116:n+=" ";break;case 117:const m=v(4);m>=0?n+=String.fromCharCode(m):d=4;break;default:d=5}g=t;continue}if(b>=0&&b<=31)if(W(b)){n+=e.substring(g,t),d=2;break}else d=6;t++}return n}function A(){if(r="",d=0,c=t,a=l,f=p,t>=s)return c=s,i=17;let n=e.charCodeAt(t);if(ne(n)){do t++,r+=String.fromCharCode(n),n=e.charCodeAt(t);while(ne(n));return i=15}if(W(n))return t++,r+=String.fromCharCode(n),n===13&&e.charCodeAt(t)===10&&(t++,r+=`
|
|
3
3
|
`),l++,p=t,i=14;switch(n){case 123:return t++,i=1;case 125:return t++,i=2;case 91:return t++,i=3;case 93:return t++,i=4;case 58:return t++,i=6;case 44:return t++,i=5;case 34:return t++,r=T(),i=10;case 47:const g=t-1;if(e.charCodeAt(t+1)===47){for(t+=2;t<s&&!W(e.charCodeAt(t));)t++;return r=e.substring(g,t),i=12}if(e.charCodeAt(t+1)===42){t+=2;const b=s-1;let m=!1;for(;t<b;){const u=e.charCodeAt(t);if(u===42&&e.charCodeAt(t+1)===47){t+=2,m=!0;break}t++,W(u)&&(u===13&&e.charCodeAt(t)===10&&t++,l++,p=t)}return m||(t++,d=1),r=e.substring(g,t),i=13}return r+=String.fromCharCode(n),t++,i=16;case 45:if(r+=String.fromCharCode(n),t++,t===s||!L(e.charCodeAt(t)))return i=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return r+=k(),i=11;default:for(;t<s&&I(n);)t++,n=e.charCodeAt(t);if(c!==t){switch(r=e.substring(c,t),r){case"true":return i=8;case"false":return i=9;case"null":return i=7}return i=16}return r+=String.fromCharCode(n),t++,i=16}}function I(n){if(ne(n)||W(n))return!1;switch(n){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function h(){let n;do n=A();while(n>=12&&n<=15);return n}return{setPosition:O,getPosition:()=>t,scan:o?h:A,getToken:()=>i,getTokenValue:()=>r,getTokenOffset:()=>c,getTokenLength:()=>t-c,getTokenStartLine:()=>a,getTokenStartCharacter:()=>c-f,getTokenError:()=>d}}function ne(e){return e===32||e===9}function W(e){return e===10||e===13}function L(e){return e>=48&&e<=57}var ke;(function(e){e[e.lineFeed=10]="lineFeed",e[e.carriageReturn=13]="carriageReturn",e[e.space=32]="space",e[e._0=48]="_0",e[e._1=49]="_1",e[e._2=50]="_2",e[e._3=51]="_3",e[e._4=52]="_4",e[e._5=53]="_5",e[e._6=54]="_6",e[e._7=55]="_7",e[e._8=56]="_8",e[e._9=57]="_9",e[e.a=97]="a",e[e.b=98]="b",e[e.c=99]="c",e[e.d=100]="d",e[e.e=101]="e",e[e.f=102]="f",e[e.g=103]="g",e[e.h=104]="h",e[e.i=105]="i",e[e.j=106]="j",e[e.k=107]="k",e[e.l=108]="l",e[e.m=109]="m",e[e.n=110]="n",e[e.o=111]="o",e[e.p=112]="p",e[e.q=113]="q",e[e.r=114]="r",e[e.s=115]="s",e[e.t=116]="t",e[e.u=117]="u",e[e.v=118]="v",e[e.w=119]="w",e[e.x=120]="x",e[e.y=121]="y",e[e.z=122]="z",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.asterisk=42]="asterisk",e[e.backslash=92]="backslash",e[e.closeBrace=125]="closeBrace",e[e.closeBracket=93]="closeBracket",e[e.colon=58]="colon",e[e.comma=44]="comma",e[e.dot=46]="dot",e[e.doubleQuote=34]="doubleQuote",e[e.minus=45]="minus",e[e.openBrace=123]="openBrace",e[e.openBracket=91]="openBracket",e[e.plus=43]="plus",e[e.slash=47]="slash",e[e.formFeed=12]="formFeed",e[e.tab=9]="tab"})(ke||(ke={}));new Array(20).fill(0).map((e,o)=>" ".repeat(o));const j=200;new Array(j).fill(0).map((e,o)=>`
|
|
4
4
|
`+" ".repeat(o)),new Array(j).fill(0).map((e,o)=>"\r"+" ".repeat(o)),new Array(j).fill(0).map((e,o)=>`\r
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p}from"./cli-main.js";import{A as b}from"../packem_shared/pm-runner-
|
|
1
|
+
import{p}from"./cli-main.js";import{A as b}from"../packem_shared/pm-runner-CfyxALPK.js";import{r as m,l as w,L as $}from"../packem_shared/dependency-scan-DZcSlSFp.js";import{v,m as y,f as C}from"../packem_shared/index-2LCHaVNX.js";import{D as S}from"../packem_shared/package-version-TsxLc6w2.js";import"../packem_shared/public-api-WqUCiyIe.js";import{e as x}from"../packem_shared/index-Bhzio2RB.js";const M=e=>{const s=e.trim();return s===""?!1:/^(?:git\+|git:\/\/|git@|ssh:\/\/)/i.test(s)||/^(?:github|gitlab|bitbucket|gist):/i.test(s)||/^[\w.-]+\/[\w.-]+(?:#.+)?$/.test(s)&&!s.includes("@")?!0:/^https?:\/\//i.test(s)},L=(e,s)=>{for(const t of s)if(t===e||t.endsWith("*")&&e.startsWith(t.slice(0,-1)))return!0;return!1},D=(e,s,t={})=>{const o=m(e,s);if(!o)return[];let i;try{i=v(y(e,o.file))}catch{return[]}const n=S(i,o.type);if(n.length===0)return[];const c=t.allow??[],l=[],f=new Set;for(const r of n){const a=`${r.name}@${r.version}`;for(const d of[r.dependencies,r.optionalDependencies])if(d){for(const[u,h]of Object.entries(d))if(!L(u,c))for(const k of h){if(!M(k))continue;const g=`${a}->${u}@${k}`;f.has(g)||(f.add(g),l.push({declaredBy:a,packageName:u,source:k}))}}}return l.sort((r,a)=>r.packageName.localeCompare(a.packageName)||r.declaredBy.localeCompare(a.declaredBy))},E=new Set(["firstSeen","publisherChange"]),N=e=>e.severity==="block"&&e.acceptedRisk===void 0,R=e=>{const s=e.security?.policies?.firstSeen?.minutes,t=typeof s=="number"&&s>0,o=e.security?.policies?.publisherChange?.mode==="no-downgrade",i=e.security?.blockExoticSubdeps===!0;return t||o||i},V=async e=>{const{offline:s=!1,packageManager:t,visConfig:o,workspaceRoot:i}=e,n=Date.now();if(!R(o))return{decisions:[],durationMs:Date.now()-n,entryCount:0,exoticViolations:[],lockfileMissing:!1,status:"skipped"};const c=m(i,t);if(!c||!C(y(i,c.file)))return{decisions:[],durationMs:Date.now()-n,entryCount:0,exoticViolations:[],lockfileMissing:!0,status:"fail"};const l=w(i,t,{includeDev:!0}),f=l.length,r=await x({offline:s,packageManager:t,packages:l,workspaceRoot:i},"install",{enabledPolicies:new Set(E),visConfig:o}),a=o.security?.blockExoticSubdeps===!0?D(i,t,{allow:o.security.exoticSubdepsAllow}):[],d=r.some(u=>N(u))||a.length>0;return{decisions:r,durationMs:Date.now()-n,entryCount:f,exoticViolations:a,lockfileMissing:!1,status:d?"fail":"pass"}},B=e=>e<1e3?`${String(e)}ms`:`${(e/1e3).toFixed(1)}s`,P=e=>{if(e.status==="skipped")return["– Lockfile supply-chain verification skipped (no firstSeen / publisherChange / blockExoticSubdeps policy configured)"];if(e.lockfileMissing)return["✗ Lockfile supply-chain verification failed — no lockfile found, the resolved closure cannot be attested"];const s=`(${String(e.entryCount)} ${e.entryCount===1?"entry":"entries"}, ${B(e.durationMs)})`;if(e.status==="pass")return[`✓ Lockfile passes supply-chain policies ${s}`];const t=[`✗ Lockfile failed supply-chain policy check ${s}`];for(const o of e.decisions)o.severity==="block"&&o.acceptedRisk===void 0&&t.push(` [${o.policy}] ${o.reason}`);for(const o of e.exoticViolations)t.push(` [blockExoticSubdeps] ${o.packageName} pulled from exotic source by ${o.declaredBy}: ${o.source}`);return t},K=async({options:e,visConfig:s,workspaceRoot:t})=>{const o=t??process.cwd(),i=b(o);if(!$[i.name]){p.warn(`Package manager '${i.name}' has no lockfile vis can verify.`);return}const n=await V({offline:!!e.offline,packageManager:i.name,visConfig:s??{},workspaceRoot:o});if(e.json){process.stdout.write(`${JSON.stringify(n,void 0,2)}
|
|
2
2
|
`),n.status==="fail"&&(process.exitCode=1);return}const[c,...l]=P(n);if(n.status==="skipped"){p.info(c);return}if(n.status==="pass"){p.success(c);return}p.error(c);for(const f of l)p.error(f);process.exitCode=1};export{K as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as l}from"node:module";import{f as g,v as h}from"./index-
|
|
1
|
+
import{createRequire as l}from"node:module";import{f as g,v as h}from"./index-2LCHaVNX.js";const E=l(import.meta.url),_=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,d=e=>{if(typeof _<"u"&&_.versions&&_.versions.node){const[s,r]=_.versions.node.split(".").map(Number);if(s>22||s===22&&r>=3||s===20&&r>=16)return _.getBuiltinModule(e)}return E(e)},{spawnSync:p}=d("node:child_process"),b="0000000000000000000000000000000000000000",A=e=>{if(g(e))try{const s=h(e);return JSON.parse(s)}catch{return}},f=(e,s)=>{const r=p("git",e,{cwd:s,encoding:"utf8"});if(!(r.error||typeof r.status!="number"||r.status!==0))return typeof r.stdout=="string"?r.stdout.trim():void 0},c=e=>typeof e=="string"&&e.length>0&&e!==b,I=(e,s,r)=>{const i=[],o=e.GITHUB_BASE_REF,t=e.GITHUB_SHA??"HEAD";if(o&&o.length>0)return i.push(`pull_request: $GITHUB_BASE_REF=${o}`),{base:`origin/${o}`,head:t,notes:i,provider:"github"};const a=e.GITHUB_EVENT_PATH,n=a?r(a):void 0;if(n){const u=typeof n.before=="string"?n.before:void 0;if(c(u))return i.push(`push: event.before=${u}`),{base:u,head:t,notes:i,provider:"github"}}return i.push(`fallback: origin/${s}`),{base:`origin/${s}`,head:t,notes:i,provider:"github"}},R=(e,s)=>{const r=[],i=e.CI_COMMIT_SHA??"HEAD";if(e.CI_PIPELINE_SOURCE==="merge_request_event"){const a=e.CI_MERGE_REQUEST_DIFF_BASE_SHA;if(c(a))return r.push(`merge_request: $CI_MERGE_REQUEST_DIFF_BASE_SHA=${a}`),{base:a,head:i,notes:r,provider:"gitlab"};const n=e.CI_MERGE_REQUEST_TARGET_BRANCH_NAME;if(n&&n.length>0)return r.push(`merge_request: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME=${n}`),{base:`origin/${n}`,head:i,notes:r,provider:"gitlab"}}const o=e.CI_COMMIT_BEFORE_SHA;if(c(o))return r.push(`push: $CI_COMMIT_BEFORE_SHA=${o}`),{base:o,head:i,notes:r,provider:"gitlab"};const t=e.CI_DEFAULT_BRANCH??s;return r.push(`fallback: origin/${t}`),{base:`origin/${t}`,head:i,notes:r,provider:"gitlab"}},C=(e,s)=>{const r=[],i=e.BUILDKITE_COMMIT??"HEAD",o=e.BUILDKITE_PULL_REQUEST_BASE_BRANCH;return o&&o.length>0?(r.push(`pull_request: $BUILDKITE_PULL_REQUEST_BASE_BRANCH=${o}`),{base:`origin/${o}`,head:i,notes:r,provider:"buildkite"}):(r.push(`fallback: origin/${s} (buildkite has no canonical previous-build SHA env)`),{base:`origin/${s}`,head:i,notes:r,provider:"buildkite"})},v=(e,s)=>{const r=[],i=e.CIRCLE_SHA1??"HEAD",o=e.CIRCLE_PR_BASE_BRANCH;return o&&o.length>0?(r.push(`pull_request: $CIRCLE_PR_BASE_BRANCH=${o}`),{base:`origin/${o}`,head:i,notes:r,provider:"circleci"}):(r.push(`fallback: origin/${s} (circleci has no canonical previous-build SHA env)`),{base:`origin/${s}`,head:i,notes:r,provider:"circleci"})},T=(e,s,r)=>{const i=[],o=s(["merge-base","HEAD",`origin/${e}`],r);return o&&o.length>0?(i.push(`local: git merge-base HEAD origin/${e}=${o}`),{base:o,head:"HEAD",notes:i,provider:"local"}):(i.push(`local fallback: origin/${e} (no merge-base available)`),{base:`origin/${e}`,head:"HEAD",notes:i,provider:"local"})},H=e=>{const s=e?.env??process.env,r=e?.defaultBase??"main",i=e?.readEventPayload??A,o=e?.runGit??f,t=e?.workspaceRoot??process.cwd();return s.GITHUB_ACTIONS==="true"?I(s,r,i):s.GITLAB_CI==="true"?R(s,r):s.BUILDKITE==="true"?C(s,r):s.CIRCLECI==="true"?v(s,r):T(r,o,t)};export{H as r};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as X}from"node:module";import{h as te,d as h,
|
|
1
|
+
import{createRequire as X}from"node:module";import{h as te,d as h,m as ae,g as E}from"../packem_chunks/catalog.js";import"./en-C26W78--.js";import{Table as ne}from"@visulima/tui-kit/table";import{Q as ie,T as re,U as se,V as oe}from"../packem_chunks/cli-main.js";const Q=X(import.meta.url),k=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,R=e=>{if(typeof k<"u"&&k.versions&&k.versions.node){const[t,a]=k.versions.node.split(".").map(Number);if(t>22||t===22&&a>=3||t===20&&a>=16)return k.getBuiltinModule(e)}return Q(e)},{execFile:x,spawn:Z,execFileSync:G}=R("node:child_process"),{existsSync:N}=R("node:fs"),{platform:ee,homedir:j}=R("node:os"),{join:g}=R("node:path"),{promisify:H}=R("node:util"),ce=/v?(\d+\.\d+\.\d+(?:-[\w.]+)?)/,de=5e3,le=1e4,ue=3e5,pe=4096,C=ee()==="win32",V=["amp","claude","codex","copilot","crush","cursor","droid","gemini","kimi","opencode","qwen"],me={alternateCommands:[],buildArgs:(e,{dangerous:t})=>{const a=["-x",e];return t&&a.push("--dangerously-allow-all"),a},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},fe={alternateCommands:[],buildArgs:(e,{dangerous:t,model:a})=>{const n=[];return t&&n.push("--dangerously-skip-permissions"),a&&n.push("--model",a),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},ge={alternateCommands:["openai-codex"],buildArgs:(e,{dangerous:t,model:a})=>{const n=["exec"];return a&&n.push("--model",a),t&&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},he={alternateCommands:[],buildArgs:(e,{dangerous:t,model:a})=>{const n=["-p",e];return t&&n.push("--allow-all-tools"),a&&n.push("--model",a),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},be={alternateCommands:[],buildArgs:(e,{dangerous:t,model:a})=>{const n=["run"];return t&&n.push("--yolo"),a&&n.push("-m",a),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},ve={alternateCommands:["cursor"],buildArgs:(e,{dangerous:t,model:a})=>{const n=["-p"];return t&&n.push("--force"),n.push("--output-format","text"),a&&n.push("--model",a),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},ye={alternateCommands:[],buildArgs:(e,{dangerous:t,model:a})=>{const n=[e];return t&&n.push("--skip-permissions-unsafe"),n.push("-o","text"),a&&n.push("-m",a),n},command:"droid",defaultModel:"",displayName:"Droid",envVariable:"DROID_PATH",sessionMarkers:[],supportsMaxTokens:!1,supportsModel:!0},Ee={alternateCommands:["gemini-cli"],buildArgs:(e,{dangerous:t,maxTokens:a,model:n})=>{const i=[];return t||i.push("--sandbox"),n&&i.push("--model",n),i.push("--max-output-tokens",String(a),"-p",e),i},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},Ae={alternateCommands:[],buildArgs:(e,{model:t})=>{const a=["--quiet","-p",e];return t&&a.push("-m",t),a},command:"kimi",defaultModel:"",displayName:"Kimi CLI",envVariable:"KIMI_PATH",sessionMarkers:[],supportsMaxTokens:!1,supportsModel:!0},ke={alternateCommands:[],buildArgs:(e,{model:t})=>{const a=["run",e];return t&&a.push("-m",t),a},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},Re={alternateCommands:["qwen-code"],buildArgs:(e,{dangerous:t,model:a})=>{const n=["-p",e];return t&&n.push("--yolo"),n.push("-o","text"),a&&n.push("-m",a),n},command:"qwen",defaultModel:"",displayName:"Qwen Code",envVariable:"QWEN_PATH",sessionMarkers:[{confidence:"definite",equals:"1",variable:"QWEN_CODE"}],supportsMaxTokens:!1,supportsModel:!0},w={amp:me,claude:fe,codex:ge,copilot:he,crush:be,cursor:ve,droid:ye,gemini:Ee,kimi:Ae,opencode:ke,qwen:Re};class A extends Error{exitCode;durationMs;provider;stderr;stdout;timedOut;aborted;constructor(t,a){super(t),this.name="AiRunError",this.provider=a.provider,this.exitCode=a.exitCode??null,this.durationMs=a.durationMs,this.stdout=a.stdout??"",this.stderr=a.stderr??"",this.timedOut=a.timedOut??!1,this.aborted=a.aborted??!1}}H(x);const Me=[{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"]]}}],_e={ambient:"interactive",definite:"agent"},q=(e,t,a)=>{const n={agent:e.agent??t,confidence:e.confidence,provider:a,type:e.type??_e[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]}},we=(e,t)=>t.sessionMarkers.map(a=>q(a,t.displayName,e));[...Object.keys(w).flatMap(e=>we(e,w[e])),...Me.map(e=>q(e,e.agent,e.provider))].toSorted((e,t)=>e.confidence===t.confidence?0:e.confidence==="definite"?-1:1);H(x);const Ce=/\.(?:bat|cmd)$/i,U=e=>C&&Ce.test(e),$=e=>`"${e.replaceAll('"','""')}"`,L=e=>e==="~"||e.startsWith("~/")||C&&e.startsWith("~\\")?g(j(),e.slice(2)):e,Te=e=>{try{const t=G(C?"where":"which",[e],{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:de}).trim().split(`
|
|
2
2
|
`)[0]?.trim();return t&&t.length>0?t:void 0}catch{return}},Ie=e=>{const t=j();if(C){const a=process.env.APPDATA??"",n=process.env.LOCALAPPDATA??"",i=process.env.ProgramFiles??"";return[g(a,"npm",`${e}.cmd`),g(a,"npm",e),g(n,"Programs",e,`${e}.exe`),g(i,e,`${e}.exe`),g(t,".npm-global","bin",`${e}.cmd`)]}return[`/opt/homebrew/bin/${e}`,`/usr/local/bin/${e}`,g(t,".npm-global","bin",e),g(t,".local","bin",e),g(t,".cargo","bin",e)]},Oe=e=>{try{const t=G(e,["--version"],{encoding:"utf8",shell:U(e),stdio:["pipe","pipe","pipe"],timeout:le}),a=ce.exec(t);return a?a[1]:void 0}catch{return}},F=(e,t={})=>{const a=w[e],n={available:!1,name:e},i=t.version!==!1,r=o=>{if(i)return Oe(o)},s=process.env[a.envVariable];if(s&&N(L(s))){const o=L(s);return{...n,available:!0,detectionMethod:"envvar",path:o,version:r(o)}}const d=[a.command,...a.alternateCommands];for(const o of d){const c=Te(o);if(c)return{...n,available:!0,detectionMethod:"which",path:c,version:r(c)}}for(const o of d)for(const c of Ie(o))if(N(c))return{...n,available:!0,detectionMethod:"known-path",path:c,version:r(c)};return n},Se=(e={})=>V.map(t=>F(t,e)),Pe=(e={})=>Se(e).filter(t=>t.available),Ne=(e,t,a={})=>{const n=w[e],i=a.model??n.defaultModel,r=a.maxTokens!==void 0&&Number.isFinite(a.maxTokens)?a.maxTokens:pe;return n.buildArgs(t,{dangerous:a.dangerous===!0,maxTokens:r,model:i})},$e=async(e,t,a={})=>{if(!e.available||!e.path)throw new A(`AI provider "${e.name}" is not available.`,{durationMs:0,provider:e.name});const n=Ne(e.name,t,a),i=a.timeoutMs!==void 0&&Number.isFinite(a.timeoutMs)?a.timeoutMs:ue,r=e.path,s=U(r),d=Date.now();if(a.signal?.aborted)throw new A(`${e.name} CLI run was aborted.`,{aborted:!0,durationMs:0,provider:e.name});return new Promise((o,c)=>{const m={cwd:a.cwd,env:{...process.env,...a.env,FORCE_COLOR:"0",NO_COLOR:"1"},shell:s,stdio:["pipe","pipe","pipe"]},u=s?n.map(l=>$(l)):n,f=Z(s?$(r):r,u,m);f.stdin?.end();let b="",v="",y=!1,O,S,M;const T=()=>{clearTimeout(S),clearTimeout(O),M&&a.signal?.removeEventListener("abort",M)},Y=()=>{f.kill("SIGKILL")},P=l=>{if(y)return;y=!0,f.kill("SIGTERM"),O=setTimeout(Y,5e3),T();const p=Date.now()-d,z=l?new A(`${e.name} CLI run was aborted.`,{aborted:!0,durationMs:p,provider:e.name,stderr:v,stdout:b}):new A(`${e.name} CLI timed out after ${String(i)}ms`,{durationMs:p,provider:e.name,stderr:v,stdout:b,timedOut:!0});c(z)};S=setTimeout(P,i,!1),M=()=>{P(!0)},a.signal?.addEventListener("abort",M,{once:!0}),f.stdout?.on("data",l=>{const p=l.toString("utf8");b+=p,a.onStdout?.(p)}),f.stderr?.on("data",l=>{const p=l.toString("utf8");v+=p,a.onStderr?.(p)}),f.on("close",l=>{if(y)return;y=!0,T();const p=Date.now()-d;l===0?o({durationMs:p,exitCode:l,provider:e.name,stderr:v,stdout:b}):c(new A(`${e.name} CLI exited with code ${String(l)}: ${v||b}`,{durationMs:p,exitCode:l,provider:e.name,stderr:v,stdout:b}))}),f.on("error",l=>{y||(y=!0,T(),c(new A(`Failed to spawn ${e.name} CLI: ${l.message}`,{durationMs:Date.now()-d,provider:e.name,stderr:v,stdout:b})))})})},Le=12e4,De=2,xe=1e3,Ge=e=>new Promise(t=>{setTimeout(t,e)}),B=async(e,t,a=De)=>{let n;for(let i=0;i<=a;i+=1)try{return(await $e(e,t,{timeoutMs:Le})).stdout}catch(r){if(n=r instanceof Error?r:new Error(String(r)),n.message.includes("timed out"))throw n;if(i<a){const s=xe*2**i;await Ge(s)}}throw n??new Error("AI request failed after retries")},je={amp:30,claude:80,codex:60,copilot:50,crush:35,cursor:40,droid:20,gemini:100,kimi:25,opencode:35,qwen:30},He=e=>{if(e?.provider){if(!V.includes(e.provider))return;const n=F(e.provider);return n.available?n:void 0}const t=Pe();if(t.length===0)return;const a={...je,...e?.priority};return t.toSorted((n,i)=>(a[i.name]??0)-(a[n.name]??0))[0]},Ve=new Set(["defer","review","skip","update"]),qe=new Set(["critical","high","low","medium"]),Ue=new Set(["high","low","medium"]),Fe=50,I=30,Be=e=>e.map(t=>{const a=t.vulnerabilities&&t.vulnerabilities.length>0?` [VULNERABILITIES: ${t.vulnerabilities.map(i=>`${i.severity} ${i.id}`).join(", ")}]`:"";let n="";if(t.socketReport){const i=Math.round(t.socketReport.score.overall*100),r=[`score:${String(i)}%`];if(t.socketReport.alerts.length>0){const s={};for(const o of t.socketReport.alerts)s[o.severity]=(s[o.severity]??0)+1;const d=Object.entries(s).map(([o,c])=>`${String(c)} ${o}`).join(", ");r.push(`alerts: ${d}`)}r.push(`supply-chain:${String(Math.round(t.socketReport.score.supplyChain*100))}%`),r.push(`quality:${String(Math.round(t.socketReport.score.quality*100))}%`),n=` [SOCKET.DEV: ${r.join(", ")}]`}return`- ${t.packageName}: ${t.currentRange} → ${t.newRange} (${t.updateType})${a}${n}`}).join(`
|
|
3
3
|
`),_=`Respond ONLY with valid JSON in this exact structure:
|
|
4
4
|
{
|
|
@@ -60,9 +60,9 @@ For each package:
|
|
|
60
60
|
5. Flag any packages where skipping the update poses security risk
|
|
61
61
|
6. If Socket.dev scores are provided, factor in supply chain and quality scores — low scores indicate higher risk
|
|
62
62
|
|
|
63
|
-
${_}`},Ke=new Set(["compatibility","impact","recommend","security"]),
|
|
63
|
+
${_}`},Ke=new Set(["compatibility","impact","recommend","security"]),ot=e=>Ke.has(e)?e:"impact",W=(e,t="impact")=>{const a=Be(e);return We[t](a)},Je=/```(?:json)?\s*([\s\S]*?)```/,Ye=/\{[\s\S]*\}/,ze=e=>{try{return JSON.parse(e)}catch{}const t=Je.exec(e);if(t?.[1])try{return JSON.parse(t[1])}catch{}const a=Ye.exec(e);if(a?.[0])try{return JSON.parse(a[0])}catch{}},Xe=e=>({action:Ve.has(e.action)?e.action:"review",breakingChanges:Array.isArray(e.breakingChanges)?e.breakingChanges:[],effort:Ue.has(e.effort)?e.effort:"medium",package:typeof e.package=="string"?e.package:"",reason:typeof e.reason=="string"?e.reason:"",riskLevel:qe.has(e.riskLevel)?e.riskLevel:"medium"}),K=(e,t,a)=>{const n=ze(e);if(!n||typeof n!="object")return{analysisType:a,provider:t,recommendations:[],summary:"Failed to parse AI response.",warnings:["AI response was not valid JSON."]};const i=n,r=Array.isArray(i.recommendations)?i.recommendations:[];return{analysisType:a,provider:t,recommendations:r.map(s=>Xe(s)),summary:typeof i.summary=="string"?i.summary:"",warnings:Array.isArray(i.warnings)?i.warnings:[]}},Qe={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"]},Ze=new Set(["bcrypt","cors","crypto-js","express-session","helmet","jose","jsonwebtoken","node-forge","oauth","passport"]),D=(e,t)=>{const a=e.map(n=>{const i=n.vulnerabilities&&n.vulnerabilities.length>0,r=Ze.has(n.packageName),s=Qe[n.packageName]??[];let d="low",o="update",c="low",m="Patch/minor update, safe to apply.";return n.updateType==="major"?(d="high",o=s.length>0?"review":"update",c="medium",m=s.length>0?`Major update with known breaking changes: ${s[0]}`:"Major version update, review changelog before applying."):n.updateType==="minor"&&(d="medium",m="Minor update, generally safe."),i&&(d="high",o="update",m="Security update — current version has known vulnerabilities."),r&&n.updateType==="major"&&(o="review",m="Security-sensitive package with major update, careful review needed.",c="high"),{action:o,breakingChanges:s,effort:c,package:n.packageName,reason:m,riskLevel:d}});return{analysisType:t,provider:"rule-engine",recommendations:a,summary:`Rule-based ${t} analysis for ${String(e.length)} packages.`,warnings:["No AI provider available — using built-in rule engine."]}},et=async(e,t,a)=>{const n=W(t,a),i=await B(e,n);return K(i,e.name,a)},tt=(e,t,a)=>{const n=[],i=[],r=[];for(const s of e)n.push(...s.recommendations),i.push(...s.warnings),s.summary&&r.push(s.summary);return{analysisType:a,provider:t,recommendations:n,summary:r.length===1?r[0]??"":`Analyzed ${String(n.length)} packages in ${String(e.length)} batches.`,warnings:[...new Set(i)]}},J={compatibility:"Compatibility",impact:"Impact",recommend:"Recommendations",security:"Security"},ct=e=>{const t=`${J[e.analysisType]??e.analysisType} Analysis (${e.provider})`,a=e.recommendations.flatMap(i=>{const r=[{action:i.action,effort:i.effort,package:i.package,reason:i.reason,risk:i.riskLevel}];return i.breakingChanges.length>0&&r.push({action:"",effort:"",package:"",reason:`Breaking: ${i.breakingChanges.join("; ")}`,risk:""}),r}),n=process.stdout.columns||80;return te(h.createElement(ae,{borderStyle:"round",flexDirection:"column",paddingLeft:1,paddingRight:1},h.createElement(E,{bold:!0},t),h.createElement(E,null,""),h.createElement(E,null,e.summary),h.createElement(E,null,""),h.createElement(ne,{borderStyle:"none",data:a}),...e.warnings.length>0?[h.createElement(E,null,""),...e.warnings.map((i,r)=>h.createElement(E,{dimColor:!0,key:String(r)},` ${i}`))]:[]),{columns:n})},dt=async(e,t,a,n="impact")=>{const i=He(a);if(!i)return t.info(`No AI CLI tool found, using rule-based analysis.
|
|
64
64
|
`),D(e,n);const r=ie(i.name,n,e),s=re(r);if(s)return t.info(`Using cached ${n} analysis from ${s.provider}.
|
|
65
65
|
`),s;const d=J[n]??n;t.info(`Running ${d.toLowerCase()} analysis with ${i.name}...
|
|
66
66
|
`);try{let o;if(e.length>Fe){t.info(`Splitting ${String(e.length)} packages into batches of ${String(I)}...
|
|
67
67
|
`);const c=[];for(let u=0;u<e.length;u+=I)c.push(e.slice(u,u+I));const m=[];for(let u=0;u<c.length;u+=1){t.info(` Batch ${String(u+1)}/${String(c.length)}...`);const f=c[u];f&&m.push(await et(i,f,n))}o=tt(m,i.name,n)}else{const c=await B(i,W(e,n));o=K(c,i.name,n)}return se(r,o,oe(n,a?.cacheTtl)),o}catch(o){const c=o instanceof Error?o.message:String(o);return t.warn(`AI analysis failed (${c}), falling back to rule engine.
|
|
68
|
-
`),D(e,n)}};export{Se as F,
|
|
68
|
+
`),D(e,n)}};export{Se as F,ot as K,He as R,je as S,ct as W,dt as Z,ze as b,$e as p,B as r};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as b}from"node:module";import{readLastRunSummary as O}from"@visulima/task-runner";import{a as T}from"./failure-log-
|
|
1
|
+
import{createRequire as b}from"node:module";import{readLastRunSummary as O}from"@visulima/task-runner";import{a as T}from"./failure-log-BZQqxffZ.js";import{c as w,d as j,e as k,r as C,O as D,B as P,N as F}from"../packem_chunks/cli-main.js";import{c as N}from"./en-C26W78--.js";import{A as y,B as x,m as R,y as A}from"./index-2LCHaVNX.js";import{R as E,r as M,b as q}from"./ai-analysis-D7HOdUwd.js";const $=b(import.meta.url),d=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,I=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 $(t)},{readFile:_,writeFile:B}=I("node:fs/promises"),H=32*1024,W=(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
2
|
${a}`},L=async(t,e)=>e===void 0?O(t,{dataDirectory:N(t)}):C(t,e),ht=async(t,e,a={})=>{const o=a.terminalOutputLimit??H,[s,n]=await Promise.all([T(t,e),L(t,a.runId)]),i=n?w(n,e):void 0;if(!s&&!i)return;let r,c;if(n&&i){const h=await j(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?Y(i):void 0),target:i?.target.target,taskId:e,terminalOutput:W(u,o),terminalOutputCaptured:!!s,timestamp:s?.timestamp??i?.endTime??i?.startTime}},Y=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}},J=3600*1e3,v=80,K=new Set(["high","low","medium"]),U=()=>`You are an expert software engineer helping fix a failing build/test/lint task.
|
|
3
3
|
|
|
4
4
|
You will be given:
|
|
@@ -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-aPqByoww.js";import{m as R}from"./index-2LCHaVNX.js";const E=T(import.meta.url),m=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,h=e=>{if(typeof m<"u"&&m.versions&&m.versions.node){const[r,t]=m.versions.node.split(".").map(Number);if(r>22||r===22&&t>=3||r===20&&t>=16)return m.getBuiltinModule(e)}return E(e)},{createRequire:j}=h("node:module"),{pathToFileURL:L}=h("node:url"),y=["temporal","urlpattern","reporterror","regexp-escape","promise-try","float16array","error-iserror","navigator-locks"],q=e=>{const r=e.trim().toLowerCase();return r===""||r==="all"||r==="1"||r==="true"?y:r.split(",").map(t=>t.trim()).filter(t=>y.includes(t))},v=async(e,r)=>{try{const t=j(R(r,"__vis_polyfill_resolver__.js")).resolve(e);return await import(L(t).href)}catch{return}},F=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},x=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},O=()=>{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
|
`)})},k=()=>{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}},I=()=>{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)},A=()=>{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)})},N=()=>{typeof Error.isError!="function"&&(Error.isError=e=>typeof e=="object"&&e!==null&&Object.prototype.toString.call(e)==="[object Error]")},U=()=>{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})},$={"error-iserror":N,float16array:A,"navigator-locks":U,"promise-try":I,"regexp-escape":k,reporterror:O},M=async(e,r=process.cwd())=>{const t=q(e);await Promise.all(t.map(async o=>{o==="temporal"?await F(r):o==="urlpattern"?await x(r):$[o]?.()}))},B=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 M(process.env.VIS_POLYFILL,e)};export{B as p};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as g}from"node:module";import{c as b}from"./compile-cache-B_Vf_WxT.js";import{i as y,h as w,t as $,p as m,c as M,m as R}from"./package-version-
|
|
1
|
+
import{createRequire as g}from"node:module";import{c as b}from"./compile-cache-B_Vf_WxT.js";import{i as y,h as w,t as $,p as m,c as M,m as R}from"./package-version-TsxLc6w2.js";import{I as S}from"./index-B0EsgdzO.js";const _=g(import.meta.url),r=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,x=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 _(e)},{createRequire:T}=x("node:module"),O=T(import.meta.url),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 O(e)},{execFileSync:j}=f("node:child_process"),{totalmem:N}=f("node:os"),q=/--max-old-space-size=(\d+)/,z=/--max-semi-space-size=(\d+)/,C=e=>Math.floor(N()/1024/1024*e),B=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)}},E=e=>{const o=[...M()],n=[...y()],a=d(q,o),p=d(z,o);if(a!==void 0&&p!==void 0)return;const l=a??C(.75),h=p??B(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{j(w(),[...c,...o,...n.slice(1)],{env:$(),stdio:"inherit"}),m(0)}catch(v){const u=v.status;m(typeof u=="number"?u:1)}},I=()=>{process.env.VIS_VERSION=R()},Y=e=>{!process.stdout.isTTY||S||process.env.TERM==="dumb"||process.stdout.write(`\x1B]0;${e}\x07`)},L=new Set(["","--help","--version","-h","-v","completion","dlx","exec","x"]),i=process.argv[2]??"";!L.has(i)&&!process.argv.includes("--help")&&!process.argv.includes("-h")&&E();process.argv.includes("--no-color")&&(process.env.NO_COLOR="1",process.env.FORCE_COLOR="0");I();b();(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.an);await e()})();export{Y as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as j}from"node:module";import{m as h,f as y}from"./index-
|
|
1
|
+
import{createRequire as j}from"node:module";import{m as h,f as y}from"./index-2LCHaVNX.js";import{a as q}from"./readJsonSync-DuMMeB3s-B9cGBVbJ.js";const $=j(import.meta.url),g=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,k=e=>{if(typeof g<"u"&&g.versions&&g.versions.node){const[s,n]=g.versions.node.split(".").map(Number);if(s>22||s===22&&n>=3||s===20&&n>=16)return g.getBuiltinModule(e)}return $(e)},{readdirSync:_,statSync:M}=k("node:fs"),w=["preinstall","install","postinstall","prepare"],x=e=>{const s=h(e,"node_modules");if(!y(s))return[];const n=new Map,o=(l,p="")=>{let u;try{u=_(l)}catch{return}for(const r of u){const i=h(l,r);if(r.startsWith("@")){o(i,`${r}/`);continue}if(r===".pnpm"&&p===""){let f;try{f=_(i)}catch{continue}for(const a of f){const c=h(i,a,"node_modules");y(c)&&o(c)}continue}if(r.startsWith("."))continue;const m=p+r,t=h(i,"package.json");try{if(!M(i).isDirectory()||!y(t))continue;const f=q(t),a=f.scripts??{},c=w.filter(v=>a[v]);!a.preinstall&&!a.install&&!a.postinstall&&y(h(i,"binding.gyp"))&&c.push("install (binding.gyp)"),c.length>0&&!n.has(m)&&n.set(m,{directory:i,hooks:c,name:m,version:typeof f.version=="string"?f.version:void 0});const d=h(i,"node_modules");y(d)&&o(d)}catch{}}};return o(s),[...n.values()]},W=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)}},B=(e,s,n)=>{for(const[o,l]of Object.entries(s)){if(!l)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}=W(o);if(p===e.name&&(!n||u===void 0||e.version===u))return!0}return!1},O=(e,s,n={})=>{const o=n.pinVersions===!0,l=x(e),p=[],u=[],r=new Map(l.map(t=>[t.name,t]));for(const t of l)B(t,s,o)?u.push(t):p.push(t);const i=[],m=[];for(const[t,f]of Object.entries(s)){if(!f)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(b=>b.startsWith(v))||i.push(t);continue}const{name:a,version:c}=W(t),d=r.get(a);if(!d){i.push(t);continue}o&&c!==void 0&&c!=="*"&&d.version&&d.version!==c&&m.push({from:t,to:`${a}@${d.version}`})}return{excess:i,installed:u,unapproved:p,versionDrift:m}},S=(e,s)=>O(e,s).unapproved.map(n=>`${n.name} (${n.hooks.join(", ")})`);export{O as W,S as w};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o}from"./resolve-runtime-
|
|
1
|
+
import{r as o}from"./resolve-runtime-COyiEML3.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{m as E,v as ue}from"./index-
|
|
1
|
+
import{createRequire as ie}from"node:module";import{m as E,v as ue}from"./index-2LCHaVNX.js";import{r as le}from"./docker-69ybb6g7.js";import{a as oe}from"./readJsonSync-DuMMeB3s-B9cGBVbJ.js";import{e as fe}from"./license-t5KnNX6v.js";import{D as de}from"./package-version-TsxLc6w2.js";import"./public-api-WqUCiyIe.js";import{u as he}from"./index-BAe6e0XE.js";const ae=ie(import.meta.url),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 ae(e)},{randomUUID:pe}=se("node:crypto"),{readdirSync:me}=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"},_e=[m.STRING,m.NUMBER,m.BOOLEAN],ge='<?xml version="1.0" encoding="UTF-8"?>',ee=["_selfCloseTag","_attrs"],ye=(e="",n=0)=>e.repeat(n),Y=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},be=(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},[]),$e=(e={},n,t,s)=>{const r=be(e,n,t,s);return r.length===0?"":` ${r.join(" ")}`},Oe=(e={})=>Object.keys(e).map(n=>({_name:n,_content:e[n]})),ve=e=>_e.includes(Y(e)),je=e=>!e.match("<"),ke=({header:e,isOutputStart:n})=>e&&n?typeof e===m.BOOLEAN?ge: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,..._},G=typeof F=="boolean"&&!F?{}:{...ne,...F},D=typeof s=="string",k=ye(s,t),W=Y(e),L=ke({header:h,isOutputStart:p}),N=p&&!L&&r&&t===0,R=D&&!N?`
|
|
2
2
|
`:"";let b="";switch(W){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(j=>U({_name:f,_content:j},{...n,depth:t,_isOutputStart:!1})).join("");if(ee.includes(f))break;const g=U(u,{...n,depth:t+1,_isOutputStart:N}),w=Y(g),O=je(g),v=re(g),x=`${R}${k}`;if(f==="_comment"){b+=`${x}<!-- ${u} -->`;break}const H=w==="undefined"||g==="",c=B,o=e._selfCloseTag,a=typeof o===m.BOOLEAN?H&&o:H&&c,i=a?"/":"",l=$e(e._attrs,J,y,$),d=`<${f}${l}${i}>`,T=D&&!O&&!v?`
|
|
3
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 w={...n,_isFirstItem:g===0,_isLastItem:g+1===f.length,_isOutputStart:N},O={_name:u};if(Y(e[u])===m.OBJECT&&(ee.forEach(v=>{const x=e[u][v];typeof x<"u"&&(O[v]=x,delete e[u][v])}),typeof e[u]._content<"u"&&Object.keys(e[u]).length>1)){const v=Object.assign({},e[u]);delete v._content,O._content=[...Oe(v),e[u]._content]}return typeof O._content>"u"&&(O._content=e[u]),U(O,w)},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,G,M);break}}return`${L}${b}`},Q=e=>{try{return oe(e)}catch{return}},Te=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("/")},Se=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=me(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 $}},we=(e,n,t)=>{const s=Q(E(e,"node_modules",n,"package.json"));return s?.version===t?s:void 0},xe=(e,n,t)=>{if(!(!Te(n)||!Se(t)))return Ae(e,n,t)??we(e,n,t)},De={sha256:"SHA-256",sha384:"SHA-384",sha512:"SHA-512"},Ne={sha256:64,sha384:96,sha512:128},Re=e=>{const n={name:e.name,version:e.version},{integrity:t}=e;return t&&t.hex.length===Ne[t.algorithm]&&(n.hash={alg:De[t.algorithm],content:t.hex}),e.dependencies&&(n.dependencies=e.dependencies),e.peerDependencies&&(n.peerDependencies=e.peerDependencies),e.optionalDependencies&&(n.optionalDependencies=e.optionalDependencies),n},Ce=[{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"}],Ee=e=>{for(const{file:n,type:t}of Ce){let s;try{s=ue(E(e,n))}catch{continue}const r=new Map;for(const p of de(s,t))r.set(`${p.name}@${p.version}`,Re(p));return{packages:r,type:t}}},Me=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=Me(n);if(r!==n&&s.has(r))return r;const p=[...s];return he.maxSatisfying(p,r,{includePrerelease:!0})||p[0]},Be="1.7",Le="CycloneDX",Ie="http://cyclonedx.org/schema/bom-1.7.schema.json",Ue="@visulima/vis",te=e=>{try{return oe(e)}catch{return}},Fe=e=>{if(e){if(typeof e=="string")return e;if(typeof e=="object"&&e.name)return e.email?`${e.name} <${e.email}>`:e.name}},Je=e=>{if(e)return typeof e=="string"?e:e.url},qe=e=>{if(e)return typeof e=="string"?e:e.url},Pe=e=>{const n=[];e.homepage&&n.push({type:"website",url:e.homepage});const t=Je(e.repository);t&&n.push({type:"vcs",url:t});const s=qe(e.bugs);return s&&n.push({type:"issue-tracker",url:s}),n.length>0?n:void 0},Xe=e=>e==="application"||e==="service"||e==="tool"?"application":"library",K=(e,n)=>{if(!n)return;n.description&&(e.description=n.description);const t=Fe(n.author);t&&(e.author=t);const s=fe(n);s&&(e.licenses=s);const r=Pe(n);r&&(e.externalReferences=r)},tn=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?[...le(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:Xe(o.projectType),version:i};K(d,a),B.push(d)}const G=Ee(y),D=new Map,k=new Map;if(G)for(const c of G.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 W=[],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,j]of Object.entries(T)){if(F.has(S)){const I=J.get(S);I&&i.add(I);continue}const A=V(S,j,k);A&&(i.add(C(S,A)),d.push(`${S}@${A}`))}};for(const d of a)l(W,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 j of S)if(j)for(const[A,I]of Object.entries(j))for(const q of I){const z=V(A,q,k);z&&(T.add(C(A,z)),a.push(`${A}@${z}`))}if(d.optionalDependencies)for(const[j,A]of Object.entries(d.optionalDependencies))for(const I of A){const q=V(j,I,k);q&&(T.add(C(j,q)),L.push(`${j}@${q}`))}T.size>0&&b.set(i,T)}};f(W,"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,xe(y,o.name,o.version)),u.push(i)}const w=[];for(const[c,o]of N){const a=J.get(c);if(!a)continue;const i=[...o].sort();w.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():[];w.push(l.length>0?{dependsOn:l,ref:a}:{ref:a})}w.sort((c,o)=>c.ref.localeCompare(o.ref));const O=te(E(y,"package.json")),v=(()=>{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=v["bom-ref"],H=x?B.filter(c=>c["bom-ref"]!==x):B;return{$schema:Ie,bomFormat:Le,components:[...H,...u],dependencies:w,metadata:{component:v,lifecycles:[{phase:"build"}],timestamp:r.toISOString(),tools:{components:[{name:Ue,type:"application",...t?{version:t}:{}}]}},serialNumber:h??`urn:uuid:${pe()}`,specVersion:Be,version:1}},sn=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{tn as b,sn as s,C as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{v as u,m as l,f as g}from"./index-
|
|
1
|
+
import{v as u,m as l,f as g}from"./index-2LCHaVNX.js";import{D as d}from"./package-version-TsxLc6w2.js";import"./public-api-WqUCiyIe.js";import{E as D,W as v}from"../packem_chunks/catalog.js";const w={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=w[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=D(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=v(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},E=(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))},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=[],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{w as L,M as a,E as f,A as l,m as r};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as Qo}from"node:module";import{m as Ie,f as ia,y as oa,H as xn,T as fi,a as aa}from"./index-
|
|
1
|
+
import{createRequire as Qo}from"node:module";import{m as Ie,f as ia,y as oa,H as xn,T as fi,a as aa}from"./index-2LCHaVNX.js";import{h as sa,L as ua}from"./public-api-WqUCiyIe.js";import{a as ro}from"./readJsonSync-DuMMeB3s-B9cGBVbJ.js";const ea=Qo(import.meta.url),zt=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ta=l=>{if(typeof zt<"u"&&zt.versions&&zt.versions.node){const[d,A]=zt.versions.node.split(".").map(Number);if(d>22||d===22&&A>=3||d===20&&A>=16)return zt.getBuiltinModule(l)}return ea(l)},{rmSync:_n,existsSync:eo,readFileSync:li,cpSync:to,lstatSync:ra,readdirSync:na}=ta("node:fs");class et extends Error{constructor(d){super(d),this.name="LockfilePruneError"}}const no=l=>{let d=l.startsWith("/")?l.slice(1):l;const A=d.indexOf("(");return A!==-1&&(d=d.slice(0,A)),d},ca=(l,d)=>{if(!(d.startsWith("link:")||d.startsWith("file:")||d.startsWith("workspace:")))return`${l}@${d}`},la=l=>{const d=[];for(const A of[l.dependencies,l.devDependencies,l.optionalDependencies])if(A)for(const[o,h]of Object.entries(A))h?.version&&d.push({name:o,version:h.version});return d},pi=l=>{const d=[];for(const A of[l.dependencies,l.optionalDependencies])if(A)for(const[o,h]of Object.entries(A))typeof h=="string"&&d.push({name:o,version:h});return d},hi=l=>{const d=new Map;if(!l)return d;for(const A of Object.keys(l)){const o=no(A),h=d.get(o);h?h.push(A):d.set(o,[A])}return d},io=l=>{const d=l.displayName??"pnpm-lock.yaml",A=typeof l.lockfileContent=="string"?l.lockfileContent:l.lockfileContent.toString("utf8");let o;try{o=sa(A)}catch(Z){throw new et(`${d}: parse failed — ${Z.message}`)}const h=Z=>Z.packages?Object.keys(Z.packages).length:0;let e;for(const Z of o){const[te]=Z.errors;if(te)throw new et(`${d}: parse failed — ${te.message}`);const q=Z.toJS();if(!q||typeof q!="object")continue;const ue=q;(e===void 0||h(ue)>h(e))&&(e=ue)}if(e===void 0)throw new et(`${d}: top-level value is not an object`);const g=e.importers??{},C=hi(e.packages),m=hi(e.snapshots),S=new Set(["."]);for(const Z of l.closure)S.add(Z.relativeRoot===""?".":Z.relativeRoot);const E={};for(const[Z,te]of Object.entries(g))S.has(Z)&&(E[Z]=te);const Y=new Set,y=new Set,b=[];for(const Z of Object.values(E))for(const te of la(Z))b.push(te);for(;b.length>0;){const{name:Z,version:te}=b.shift(),q=ca(Z,te);if(!q)continue;const ue=no(q),Ce=m.get(ue)??m.get(q)??[];for(const Ae of Ce){if(y.has(Ae))continue;y.add(Ae);const Ee=e.snapshots?.[Ae];if(Ee)for(const je of pi(Ee))b.push(je)}const ge=C.get(ue)??C.get(q)??[];for(const Ae of ge){if(Y.has(Ae))continue;Y.add(Ae);const Ee=e.packages?.[Ae];if(Ee&&!e.snapshots)for(const je of pi(Ee))b.push(je)}}const v={lockfileVersion:e.lockfileVersion};for(const Z of["settings","overrides","patchedDependencies","catalogs"])e[Z]!==void 0&&(v[Z]=e[Z]);if(v.importers=E,e.packages){const Z={};for(const te of Object.keys(e.packages))Y.has(te)&&(Z[te]=e.packages[te]);v.packages=Z}if(e.snapshots){const Z={};for(const te of Object.keys(e.snapshots))y.has(te)&&(Z[te]=e.snapshots[te]);v.snapshots=Z}const M=Object.keys(e.packages??{}).length,re=Object.keys(v.packages??{}).length,ae=M-re,O=Object.keys(g).length-Object.keys(E).length;return{content:ua(v,{lineWidth:0}),message:`${d}: kept ${re}/${M} packages and ${Object.keys(E).length} importers (dropped ${ae} packages, ${O} importers)`,status:"pruned"}},fa=l=>io({...l,displayName:l.displayName??"aube-lock.yaml"}),pa=l=>{let d="",A=!1,o=!1,h=!1;for(let e=0;e<l.length;e+=1){const g=l[e],C=l[e+1];if(o){g===`
|
|
2
2
|
`&&(o=!1,d+=g);continue}if(h){g==="*"&&C==="/"&&(h=!1,e+=1);continue}if(A){if(g==="\\"){d+=g,C!==void 0&&(d+=C,e+=1);continue}g==='"'&&(A=!1),d+=g;continue}if(g==='"'){A=!0,d+=g;continue}if(g==="/"&&C==="/"){o=!0,e+=1;continue}if(g==="/"&&C==="*"){h=!0,e+=1;continue}d+=g}return d},ha=l=>{const d=[];for(const A of[l.dependencies,l.devDependencies,l.optionalDependencies,l.peerDependencies])if(A)for(const[o,h]of Object.entries(A))typeof h=="string"&&d.push({name:o,spec:h});return d},da=l=>{for(const d of l)if(typeof d=="object"&&!Array.isArray(d))return d},ga=l=>{if(!l)return[];const d=[];for(const A of["dependencies","optionalDependencies","peerDependencies"]){const o=l[A];o!==null&&typeof o=="object"&&!Array.isArray(o)&&d.push(...Object.keys(o))}return d},ma=l=>{if(Buffer.isBuffer(l.lockfileContent))return{message:"bun.lockb is binary; run `bun install --save-text-lockfile` to regenerate as bun.lock, then rerun `vis docker scaffold`.",status:"skipped"};const d=pa(l.lockfileContent);let A;try{A=JSON.parse(d)}catch(M){throw new et(`bun.lock: parse failed — ${M.message}`)}if(!A||typeof A!="object")throw new et("bun.lock: top-level value is not an object");const o=A.workspaces??{},h=A.packages??{},e=new Set([""]);for(const M of l.closure)e.add(M.relativeRoot===""?"":M.relativeRoot);const g={},C=[];for(const[M,re]of Object.entries(o))e.has(M)&&(g[M]=re,C.push(...ha(re)));const m=new Set;for(const{name:M}of C)m.add(M);const S=[...m];for(;S.length>0;){const M=S.shift();for(const re of Object.keys(h)){if(re.split("/")[0]!==M&&re!==M)continue;const ae=da(h[re]);for(const O of ga(ae))m.has(O)||(m.add(O),S.push(O))}}const E={};for(const[M,re]of Object.entries(h)){const ae=M.split("/")[0];(m.has(ae)||m.has(M))&&(E[M]=re)}const Y={...A,packages:E,workspaces:g},y=Object.keys(h).length,b=Object.keys(E).length,v=y-b;return{content:`${JSON.stringify(Y,null,2)}
|
|
3
3
|
`,message:`bun.lock: kept ${b}/${y} packages (dropped ${v})`,status:"pruned"}},Jr="node_modules/",ya=(l,d,A)=>{let o=d;for(;;){const h=o===""?`${Jr}${A}`:`${o}/${Jr}${A}`;if(l[h]!==void 0)return h;if(o==="")return;const e=o.lastIndexOf(`/${Jr.slice(0,-1)}/`);o=e===-1?"":o.slice(0,e)}},va=l=>{const d=[];for(const A of[l.dependencies,l.devDependencies,l.optionalDependencies,l.peerDependencies])if(A)for(const o of Object.keys(A))d.push(o);return d},Aa=l=>{const d=l.displayName??"package-lock.json",A=typeof l.lockfileContent=="string"?l.lockfileContent:l.lockfileContent.toString("utf8");let o;try{o=JSON.parse(A)}catch(v){throw new et(`${d}: parse failed — ${v.message}`)}if(!o||typeof o!="object")throw new et(`${d}: top-level value is not an object`);const h=o.packages??{},e=new Set([""]);for(const v of l.closure)v.relativeRoot!==""&&e.add(v.relativeRoot);const g=new Set,C=[];for(const v of Object.keys(h))e.has(v)&&(g.add(v),C.push(v));for(const[v,M]of Object.entries(h))M.link===!0&&typeof M.resolved=="string"&&e.has(M.resolved)&&g.add(v);for(;C.length>0;){const v=C.shift(),M=h[v];if(M)for(const re of va(M)){const ae=ya(h,v,re);if(!ae||g.has(ae))continue;g.add(ae);const O=h[ae];O.link===!0&&typeof O.resolved=="string"&&h[O.resolved]!==void 0&&!g.has(O.resolved)?(g.add(O.resolved),C.push(O.resolved)):C.push(ae)}}const m={};for(const v of Object.keys(h))g.has(v)&&(m[v]=h[v]);const S=m[""];S&&Array.isArray(S.workspaces)&&(S.workspaces=S.workspaces.filter(v=>{if(typeof v!="string")return!1;const M=v.replace(/\/?\*+$/,"").replace(/\/$/,"");if(M===""||M==="*")return!0;for(const re of e)if(re===v||re===M||re.startsWith(`${M}/`))return!0;return!1}));const E={...o,packages:m};delete E.dependencies;const Y=Object.keys(h).length,y=Object.keys(m).length,b=Y-y;return{content:`${JSON.stringify(E,null,2)}
|
|
4
4
|
`,message:`${d}: kept ${y}/${Y} entries (dropped ${b})`,status:"pruned"}};var Vr={},Oe={},Zr,di;function ba(){if(di)return Zr;di=1;function l(o,h){function e(){this.constructor=o}e.prototype=h.prototype,o.prototype=new e}function d(o,h,e,g){this.message=o,this.expected=h,this.found=e,this.location=g,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,d)}l(d,Error),d.buildMessage=function(o,h){var e={literal:function(y){return'"'+C(y.text)+'"'},class:function(y){var b="",v;for(v=0;v<y.parts.length;v++)b+=y.parts[v]instanceof Array?m(y.parts[v][0])+"-"+m(y.parts[v][1]):m(y.parts[v]);return"["+(y.inverted?"^":"")+b+"]"},any:function(y){return"any character"},end:function(y){return"end of input"},other:function(y){return y.description}};function g(y){return y.charCodeAt(0).toString(16).toUpperCase()}function C(y){return y.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(b){return"\\x0"+g(b)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(b){return"\\x"+g(b)})}function m(y){return y.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(b){return"\\x0"+g(b)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(b){return"\\x"+g(b)})}function S(y){return e[y.type](y)}function E(y){var b=new Array(y.length),v,M;for(v=0;v<y.length;v++)b[v]=S(y[v]);if(b.sort(),b.length>0){for(v=1,M=1;v<b.length;v++)b[v-1]!==b[v]&&(b[M]=b[v],M++);b.length=M}switch(b.length){case 1:return b[0];case 2:return b[0]+" or "+b[1];default:return b.slice(0,-1).join(", ")+", or "+b[b.length-1]}}function Y(y){return y?'"'+C(y)+'"':"end of input"}return"Expected "+E(o)+" but "+Y(h)+" found."};function A(o,h){h=h!==void 0?h:{};var e={},g={Start:Gn},C=Gn,m=function(t){return t||[]},S=function(t,i,a){return[{command:t,type:i}].concat(a||[])},E=function(t,i){return[{command:t,type:i||";"}]},Y=function(t){return t},y=";",b=ce(";",!1),v="&",M=ce("&",!1),re=function(t,i){return i?{chain:t,then:i}:{chain:t}},ae=function(t,i){return{type:t,line:i}},O="&&",Z=ce("&&",!1),te="||",q=ce("||",!1),ue=function(t,i){return i?{...t,then:i}:t},Ce=function(t,i){return{type:t,chain:i}},ge="|&",Ae=ce("|&",!1),Ee="|",je=ce("|",!1),Fe="=",Ue=ce("=",!1),ye=function(t,i){return{name:t,args:[i]}},Me=function(t){return{name:t,args:[]}},Ze="(",$e=ce("(",!1),ee=")",Ne=ce(")",!1),De=function(t,i){return{type:"subshell",subshell:t,args:i}},Te="{",qe=ce("{",!1),we="}",W=ce("}",!1),U=function(t,i){return{type:"group",group:t,args:i}},ie=function(t,i){return{type:"command",args:i,envs:t}},ve=function(t){return{type:"envs",envs:t}},Ge=function(t){return t},ze=function(t){return t},Pe=/^[0-9]/,Ye=We([["0","9"]],!1,!1),tt=function(t,i,a){return{type:"redirection",subtype:i,fd:t!==null?parseInt(t):null,args:[a]}},rt=">>",Ct=ce(">>",!1),st=">&",ut=ce(">&",!1),wt=">",He=ce(">",!1),ht="<<<",Xe=ce("<<<",!1),Je="<&",dt=ce("<&",!1),St="<",gt=ce("<",!1),r=function(t){return{type:"argument",segments:[].concat(...t)}},$=function(t){return t},x="$'",V=ce("$'",!1),P="'",u=ce("'",!1),w=function(t){return[{type:"text",text:t}]},j='""',T=ce('""',!1),N=function(){return{type:"text",text:""}},H='"',R=ce('"',!1),z=function(t){return t},K=function(t){return{type:"arithmetic",arithmetic:t,quoted:!0}},ne=function(t){return{type:"shell",shell:t,quoted:!0}},de=function(t){return{type:"variable",...t,quoted:!0}},le=function(t){return{type:"text",text:t}},_e=function(t){return{type:"arithmetic",arithmetic:t,quoted:!1}},kr=function(t){return{type:"shell",shell:t,quoted:!1}},Er=function(t){return{type:"variable",...t,quoted:!1}},nr=function(t){return{type:"glob",pattern:t}},Rt=/^[^']/,Lt=We(["'"],!0,!1),mt=function(t){return t.join("")},ir=/^[^$"]/,or=We(["$",'"'],!0,!1),Ht=`\\
|