@preventive/triage 1.0.0-alpha.42 → 1.0.0-alpha.44
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/common/bundle-compare-diff.js +2 -167
- package/common/bundle-compare-versions.js +172 -0
- package/common/bundle-comparison.d.ts +8 -0
- package/common/bundle-comparison.js +62 -0
- package/common/managed/report-filter.ts +2 -1
- package/common/managed/routes.js +3 -3
- package/common/security-links.d.ts +5 -0
- package/common/security-links.js +33 -0
- package/common/server-info.ts +8 -0
- package/common/workspace-app.js +14 -1
- package/out/chunk-2ABLKCOY.js +46 -0
- package/out/chunk-5LSXOLUS.js +1 -0
- package/out/chunk-5RCM2J63.js +1 -0
- package/out/chunk-7B6HB4D7.js +1 -0
- package/out/{chunk-4F6JSF57.js → chunk-AJ4GTATZ.js} +1 -1
- package/out/chunk-CH4UN6WK.js +225 -0
- package/out/chunk-EDKLBQQN.js +17 -0
- package/out/{chunk-UXNUAIIC.js → chunk-F47DXCEV.js} +1 -1
- package/out/chunk-FK3DZEKL.js +1 -0
- package/out/chunk-G6AJWENO.js +1 -0
- package/out/chunk-GZWM7UQM.js +2 -0
- package/out/chunk-JCIIBLKR.js +1 -0
- package/out/chunk-LPCTJYNA.js +7 -0
- package/out/{chunk-DGVQPIYB.js → chunk-O4RJY5TP.js} +1 -1
- package/out/chunk-OD4LPN3H.js +1 -0
- package/out/{chunk-D7AF2JXL.js → chunk-QWDWTBM7.js} +1 -1
- package/out/chunk-QYWKC557.js +1 -0
- package/out/chunk-R75XOKUP.js +1 -0
- package/out/{chunk-RSHMVYNS.js → chunk-SWTLADW5.js} +1 -1
- package/out/chunk-T7OKH4VW.js +1 -0
- package/out/{chunk-ZMQQCGF6.js → chunk-UTR2LVME.js} +1 -1
- package/out/chunk-ZESLQCTF.js +6 -0
- package/out/client-managed-import.js +1 -1
- package/out/client-managed.js +21 -21
- package/out/client-sync.js +1 -1
- package/out/graph.js +1 -1
- package/out/index.html +14 -10
- package/out/terminal.js +1 -1
- package/out/view.css +1 -1
- package/out/view.js +58 -58
- package/package.json +13 -3
- package/risk/index.d.ts +26 -0
- package/risk/index.js +1 -1
- package/risk/npm/assess.js +66 -15
- package/risk/npm/dependencies.js +22 -3
- package/risk/npm/new-dependency.js +42 -12
- package/risk/npm/registry.js +122 -21
- package/server-managed/comparison.ts +41 -0
- package/server-managed/http.ts +161 -56
- package/server-managed/locked-packages.ts +29 -6
- package/server-managed/npm-kept.ts +38 -14
- package/server-managed/npm-packages.ts +27 -13
- package/server-managed/npm-risk.ts +69 -11
- package/server-managed/pretty-print.ts +14 -9
- package/server-managed/public-workspace.ts +26 -8
- package/server-managed/queue.ts +23 -0
- package/server-managed/report-sources.ts +1 -1
- package/server-managed/repository-risk-assess.ts +105 -0
- package/server-managed/repository-risk-audit.ts +66 -0
- package/server-managed/repository-risk.ts +265 -209
- package/server-managed/scan-downloads.ts +87 -0
- package/server-managed/sql.ts +1 -1
- package/server-managed/team-app.ts +38 -14
- package/server-managed/team-reports.ts +6 -11
- package/server-managed/upstream-cache.ts +16 -0
- package/out/chunk-CLPKNNC7.js +0 -51
- package/out/chunk-Q7ZSIEHP.js +0 -1
- package/out/chunk-RFZQQXSG.js +0 -17
- package/out/chunk-VQJCXGIY.js +0 -7
- package/out/chunk-WOTMRDM3.js +0 -226
- package/out/chunk-WZDTZE64.js +0 -1
- package/out/chunk-YP2537WX.js +0 -1
- package/out/chunk-YQRVLRDH.js +0 -1
- package/out/chunk-YVZH5SHP.js +0 -1
- package/out/chunk-ZBBOBQ43.js +0 -1
package/out/chunk-WZDTZE64.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var A=new Set(["overview","graph","treemap","compare","advisories","issues","code","search","terminal"]);var Z=/^\d+$/u;function D(e){for(let l=0;l<e.length;l++){let a=e.codePointAt(l);if(a<32||a===127)return!0}return!1}var L=512;function G(e){return typeof e=="string"&&e.length>0&&e.length<=L&&!D(e)}function E(e){return G(e)&&!Z.test(e)}var F=/^(?=.{1,214}$)(?:@[\w.-]+\/[\w-]|[\dA-Za-z])[\w.-]*$/u,j=/^(?=.{1,256}$)[\dA-Za-z][\w.+-]*$/u,X=/^@[\da-z~-][\w.~-]*$/u;function $(e){return typeof e=="string"&&F.test(e)}function m(e){return typeof e=="string"&&j.test(e)}function J(e){if(typeof e!="string")return null;let l=e.trim().toLowerCase(),a=l.startsWith("@")?l:`@${l}`;return a.length<=214&&X.test(a)?a:null}var h=new Set(["code","diff"]),ne=e=>h.has(e)?"code":"overview",x=e=>h.has(e)?{compareMode:"code"}:{},y=e=>h.has(e)?"/code":"",M=Object.freeze({manage:"/manage","manage-bundles":"/manage/bundle","manage-scans":"/manage/scans","manage-reports":"/manage/report","manage-repos":"/manage/repositories","manage-repo-risk":"/manage/repositories/risk","admin-users":"/manage/users","manage-teams":"/manage/team","manage-import":"/manage/import","manage-links":"/manage/links","manage-deduplication":"/manage/deduplication","manage-history":"/manage/history"});function O(e){if(!E(e)||e==="."||e==="..")return null;try{return`/finding/${encodeURIComponent(e)}`}catch{return null}}function ae(e){if(!e)return null;if(e.view==="home")return"/";if(e.view==="reviews")return"/my/reviews";if(e.view==="npm")return H(e);if(e.view==="workspace-reports"||e.view==="workspace-bundles")return/^[A-Za-z0-9_-]+$/u.test(e.teamSlug??"")?`/team/${e.teamSlug}/${e.view.slice(10)}`:null;if(e.view==="bundles"){if(!/^[A-Za-z0-9_-]+$/u.test(e.bundleSlug??"")||[e.teamSlug,e.compareSlug].some(u=>u!=null&&!/^[A-Za-z0-9_-]+$/u.test(u)))return null;let n=e.bundleTab??"overview";if(!A.has(n))return null;let r=e.teamSlug?`/team/${e.teamSlug}`:"/manage",o=n==="code"&&g(e.file)?`/${e.file}`:"",s=o&&g(e.line)?`#L${e.line}${g(e.endLine)&&e.endLine>e.line?`-L${e.endLine}`:""}`:"",t=n==="compare"&&e.compareSlug!=null?`/${e.compareSlug}${y(e.compareMode)}`:"";return`${r}/bundle/${e.bundleSlug}${n==="overview"?"":`/${n}`}${o}${t}${s}`}if(Object.hasOwn(M,e.view)){let n=M[e.view];return e.view==="manage-deduplication"&&e.linkId?`${n}?report=${encodeURIComponent(e.linkId)}`:e.view==="manage-bundles"&&Number.isSafeInteger(e.createRepoId)&&e.createRepoId>0?`${n}?createRepo=${e.createRepoId}`:e.view==="manage-scans"&&e.scanMode==="link"?`${n}?mode=link`:e.view==="manage-scans"&&e.bundleId?`${n}?bundle=${encodeURIComponent(e.bundleId)}${e.scanMode==="dependencies"?"&mode=dependencies":""}`:e.view==="manage-history"&&e.actor?`${n}?actor=${encodeURIComponent(e.actor)}`:n}if(!["findings","files"].includes(e.view)||!e.teamSlug||[e.teamSlug,e.reportSlug].some(n=>n!=null&&!/^[A-Za-z0-9_-]+$/u.test(n)))return null;let l=`/team/${encodeURIComponent(e.teamSlug)}`,a=e.reportSlug?`/report/${encodeURIComponent(e.reportSlug)}`:"";if(e.finding){let n=O(e.finding.id);return e.view==="findings"&&n?`${l}${a}${n}`:null}return`${l}${a}${e.view==="files"?"/files":""}`}var B=new Set(["overview","code","compare","review","treemap"]);function H(e){if(e.packageName==null)return"/npm";let l=e.bundleTab??"overview";if(!$(e.packageName)||e.packageSpec!=null&&!m(e.packageSpec)||!B.has(l)||e.compareSpec!=null&&!m(e.compareSpec))return null;if(l==="review"){if(e.reviewPackage!=null&&!$(e.reviewPackage)||e.reviewSpec!=null&&!m(e.reviewSpec))return null;let o=e.reviewPackage==null?"":`/${e.reviewPackage}${e.reviewSpec==null?"":`@${e.reviewSpec}`}`;return`/npm/${e.packageName}${e.packageSpec==null?"":`@${e.packageSpec}`}/review${o}`}let a=l==="code"&&g(e.file)?`/${e.file}`:"",n=a&&g(e.line)?`#L${e.line}${g(e.endLine)&&e.endLine>e.line?`-L${e.endLine}`:""}`:"",r=l==="compare"&&e.compareSpec!=null?`/${e.compareSpec}${y(e.compareMode)}`:"";return`/npm/${e.packageName}${e.packageSpec==null?"":`@${e.packageSpec}`}${l==="overview"?"":`/${l}`}${a}${r}${n}`}function K(e,l){let a=/^\/npm\/((?:@[^/@]+\/)?[^/@]+)(?:@([^/]+))?\/review(?:\/((?:@[^/@]+\/)?[^/@]+)(?:@([^/]+))?)?$/u.exec(e);if(a){if(!$(a[1])||a[2]!=null&&!m(a[2])||a[3]!=null&&!$(a[3])||a[4]!=null&&!m(a[4]))return null;let s=a[3]&&/^\d+\.\d+\.\d+(?:[-+].*)?$/u.test(a[3])&&a[4]==null;return{view:"npm",packageName:a[1],packageSpec:a[2]??null,bundleTab:"review",...a[3]?{reviewPackage:s?a[1]:a[3],reviewSpec:s?a[3]:a[4]??null}:{}}}let n=/^\/npm(?:\/((?:@[^/@]+\/)?[^/@]+)(?:@([^/]+))?(?:\/(code|compare|treemap)(?:\/([^/]+)(?:\/([a-z]+))?)?)?)?$/u.exec(e);if(!n)return;if(n[1]==null)return{view:"npm"};if(!$(n[1])||n[2]!=null&&!m(n[2]))return null;let r={view:"npm",packageName:n[1],packageSpec:n[2]??null,bundleTab:n[3]??"overview"};if(n[4]==null)return r;if(r.bundleTab==="compare")return m(n[4])&&(n[5]==null||h.has(n[5]))?{...r,compareSpec:n[4],...x(n[5])}:null;if(r.bundleTab!=="code")return null;let o=Number(n[4]);return!n[5]&&/^[1-9]\d*$/u.test(n[4])&&Number.isSafeInteger(o)?{...r,file:o,...T(l)}:null}function g(e){return Number.isSafeInteger(e)&&e>0}function T(e){let l=/^#L([1-9]\d*)(?:-L([1-9]\d*))?$/u.exec(e),[a,n]=l?[Number(l[1]),Number(l[2]??l[1])]:[];return!g(a)||!g(n)?{}:a===n?{line:a}:{line:Math.min(a,n),endLine:Math.max(a,n)}}function le(e){let l=e.pathname.replace(/\/$/u,"")||"/";if(l==="/"||l==="/index.html")return{view:"home"};if(l==="/my/reviews")return{view:"reviews"};let a=Object.keys(M).find(t=>M[t]===l);if(a){let t=Number(e.searchParams.get("createRepo"));return{view:a,...a==="manage-deduplication"&&e.searchParams.get("report")?{linkId:e.searchParams.get("report")}:{},...a==="manage-bundles"&&Number.isSafeInteger(t)&&t>0?{createRepoId:t}:{},...a==="manage-history"&&e.searchParams.get("actor")?{actor:e.searchParams.get("actor")}:{},...a==="manage-scans"?e.searchParams.get("mode")==="link"?{scanMode:"link"}:e.searchParams.get("bundle")?{bundleId:e.searchParams.get("bundle"),...e.searchParams.get("mode")==="dependencies"?{scanMode:"dependencies"}:{}}:{}:{}}}let n=/^(?:\/team\/([A-Za-z0-9_-]+)|\/manage)\/bundle\/([A-Za-z0-9_-]+)(?:\/([a-z]+)(?:\/([A-Za-z0-9_-]+)(?:\/([a-z]+))?)?)?$/u.exec(l);if(n){let t=n[3]??"overview";if(!A.has(t))return null;let u={view:"bundles",teamSlug:n[1]??null,bundleSlug:n[2],bundleTab:t};if(n[4]==null)return u;if(t==="compare")return n[5]==null||h.has(n[5])?{...u,compareSlug:n[4],...x(n[5])}:null;let c=Number(n[4]);return t!=="code"||n[5]||!/^[1-9]\d*$/u.test(n[4])||!Number.isSafeInteger(c)?null:{...u,file:c,...T(e.hash)}}let r=K(l,e.hash);if(r!==void 0)return r;let o=/^\/team\/([A-Za-z0-9_-]+)\/(reports|bundles)$/u.exec(l);if(o)return{view:`workspace-${o[2]}`,teamSlug:o[1]};let s=/^\/team\/([^/]+)(?:\/report\/([^/]+))?(?:\/(files)|\/finding\/([^/]+))?$/u.exec(l);if(!s)return null;try{let t=decodeURIComponent(s[1]),u=s[2]?decodeURIComponent(s[2]):null;if([t,u].some(p=>p!=null&&!/^[A-Za-z0-9_-]+$/u.test(p))||s[4]?.length>L*9)return null;let c=s[4]?decodeURIComponent(s[4]):null;return c!=null&&!O(c)?null:{view:s[3]?"files":"findings",teamSlug:t,reportSlug:u,...c==null?{}:{finding:{id:c}}}}catch{return null}}function R(e,l,a=[]){if(e.view==="workspace-reports"||e.view==="workspace-bundles"){let i=l.filter(f=>f.slug===e.teamSlug);return i.length===1?{view:e.view,teamId:i[0].id}:null}if(e.view==="bundles"){let{teamSlug:i,bundleSlug:f,compareSlug:I,compareMode:v,...k}=e,b=i==null?[]:l.filter(S=>S.slug===i);if(i!=null&&b.length!==1)return null;let w=b[0],N=i==null?a:l.flatMap(S=>S.bundles??[]),d=S=>new Set(N.filter(_=>_.slug===S).map(_=>_.id)),z=d(f),P=(w?.bundles??a).find(S=>S.slug===f);if(!f||!P||z.size!==1)return null;let C=I==null?null:d(I),U=C?.size===1?{compareId:[...C][0],...x(v)}:{};return{...k,teamId:w?.id??null,bundleId:P.id,...U}}if(!["findings","files"].includes(e.view))return e;let{teamSlug:n,reportSlug:r,...o}=e,s=l.filter(i=>i.slug===n);if(!n||s.length!==1)return null;let t=s[0];if(r==null)return{...o,teamId:t.id,reportId:null};let u=l.flatMap(i=>i.reports??[]).filter(i=>i.slug===r),c=new Set(u.map(i=>i.id)),p=(t.reports??[]).find(i=>i.slug===r);return p&&c.size===1?{...o,teamId:t.id,reportId:p.id}:null}function ie(e,l,a=[]){if(e.view==="workspace-reports"||e.view==="workspace-bundles"){let c=l.find(i=>i.id===e.teamId),p={view:e.view,teamSlug:c?.slug};return c?.slug&&R(p,l)?p:null}if(e.view==="bundles"){let{teamId:c,bundleId:p,compareId:i,compareMode:f,...I}=e,v=l.find(d=>d.id===c);if(c!=null&&!v?.slug)return null;let k=(v?.bundles??a).find(d=>d.id===p);if(!k?.slug)return null;let b=i==null?null:(c==null?a:l.flatMap(d=>d.bundles??[])).find(d=>d.id===i),w={...I,teamSlug:v?.slug??null,bundleSlug:k.slug,...b?.slug?{compareSlug:b.slug,...x(f)}:{}},N=R(w,l,a);if(!N)return null;if(w.compareSlug!=null&&N.compareId!==i){let{compareSlug:d,compareMode:z,...P}=w;return P}return w}if(!["findings","files"].includes(e.view))return e;let{teamId:n,reportId:r,...o}=e,s=l.find(c=>c.id===n),t=r==null?null:s?.reports?.find(c=>c.id===r);if(!s?.slug||r!=null&&!t?.slug)return null;let u={...o,teamSlug:s.slug,reportSlug:t?.slug??null};return R(u,l)?u:null}export{A as a,L as b,E as c,$ as d,m as e,J as f,ne as g,x as h,M as i,ae as j,B as k,le as l,R as m,ie as n};
|
package/out/chunk-YP2537WX.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Tc as a,Uc as b,Vc as c,Wc as d,Xc as e}from"./chunk-WOTMRDM3.js";import"./chunk-K3X5EJBQ.js";import"./chunk-CVVJAXVY.js";import"./chunk-VIHGO77Y.js";import"./chunk-RFZQQXSG.js";import"./chunk-RSHMVYNS.js";import"./chunk-CLPKNNC7.js";import"./chunk-UYAXVRVL.js";import"./chunk-NRPC74AM.js";import"./chunk-VQJCXGIY.js";import"./chunk-W4J3MGLB.js";import"./chunk-GJ4IUCNS.js";import"./chunk-PNHBZGDD.js";import"./chunk-UXNUAIIC.js";import"./chunk-R5O6FAW4.js";import"./chunk-CMQA4DM6.js";import"./chunk-4F6JSF57.js";import"./chunk-YVZH5SHP.js";import"./chunk-4XCDFGDP.js";import"./chunk-3BZ7JERB.js";import"./chunk-TZ5KB2Y5.js";import"./chunk-XYFXXB2G.js";import"./chunk-DIJJNTRH.js";import"./chunk-WZDTZE64.js";import"./chunk-GNXOKIGP.js";import"./chunk-C4Z6ZBXV.js";import"./chunk-2XUEZHIP.js";import"./chunk-TUII34K2.js";import"./chunk-V5O7M2YT.js";import"./chunk-OOJM4CTU.js";export{e as createManagedAnnotationRead,c as hydrateManagedReportTriage,a as initManagedTriagePush,d as refreshManagedReportTriage,b as resetManagedTriage};
|
package/out/chunk-YQRVLRDH.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{nd as a,od as b,pd as c,qd as d,rd as e}from"./chunk-WOTMRDM3.js";import"./chunk-K3X5EJBQ.js";import"./chunk-CVVJAXVY.js";import"./chunk-VIHGO77Y.js";import"./chunk-RFZQQXSG.js";import"./chunk-RSHMVYNS.js";import"./chunk-CLPKNNC7.js";import"./chunk-UYAXVRVL.js";import"./chunk-NRPC74AM.js";import"./chunk-VQJCXGIY.js";import"./chunk-W4J3MGLB.js";import"./chunk-GJ4IUCNS.js";import"./chunk-PNHBZGDD.js";import"./chunk-UXNUAIIC.js";import"./chunk-R5O6FAW4.js";import"./chunk-CMQA4DM6.js";import"./chunk-4F6JSF57.js";import"./chunk-YVZH5SHP.js";import"./chunk-4XCDFGDP.js";import"./chunk-3BZ7JERB.js";import"./chunk-TZ5KB2Y5.js";import"./chunk-XYFXXB2G.js";import"./chunk-DIJJNTRH.js";import"./chunk-WZDTZE64.js";import"./chunk-GNXOKIGP.js";import"./chunk-C4Z6ZBXV.js";import"./chunk-2XUEZHIP.js";import"./chunk-TUII34K2.js";import"./chunk-V5O7M2YT.js";import"./chunk-OOJM4CTU.js";export{e as configureReportRevalidation,a as refreshGraph2Sidebar,b as refreshGraph2TopPkgs,c as render,d as renderEmptyWorkspace};
|
package/out/chunk-YVZH5SHP.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function c(e){return!Number.isFinite(e)||e<0?"\u2014":e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KiB`:e<1073741824?`${(e/1048576).toFixed(1)} MiB`:`${(e/1073741824).toFixed(1)} GiB`}function s(e){return Array.isArray(e)?e.reduce((n,r)=>({bytes:n.bytes!=null&&Number.isFinite(r.bytes)?n.bytes+r.bytes:null,lines:n.lines!=null&&Number.isFinite(r.lines)?n.lines+r.lines:null}),{bytes:0,lines:0}):{bytes:null,lines:null}}function f(e,n,r){if(Array.isArray(e?.files))return{files:n.length,lines:s(n).lines,packages:new Set(n.map(o=>o.module)).size};let t=o=>Number.isSafeInteger(o)&&o>=0?o:null,u=e?.summary;return{files:t(u?.[r==="code"?"codeFiles":"files"]),lines:t(u?.lines),packages:null}}function _(e){return(e??[]).filter(n=>!["resource:base64","directory"].includes(n.format))}function i(e,{packageDir:n=null}={}){if(n){if(n!=="."){let r=n.match(/(?:^|\/)node_modules\/(@[^/]+\/[^/]+|[^/]+)$/u);return r&&r[1]!==".pnpm"?r[1]:n}}else{let r=/\.sol$/iu.test(e)?/(?:^|\/)(?:node_modules\/(@[^/]+\/[^/]+|[^/]+)|dependencies\/(@[^/]+\/[^/]+|[^/]+)\/)/gu:/(?:^|\/)node_modules\/(@[^/]+\/[^/]+|[^/]+)/gu,t;for(;(t=r.exec(e))!==null;){let u=t[1]??t[2];if(u!==".pnpm")return u}}return"__own__"}function l(e,n=null){return i(e,{packageDir:n})==="__own__"||!!n&&!/(?:^|\/)(?:node_modules|dependencies|vendor)(?:\/|$)/u.test(n)}function m(e,n=null){let r=[],t=[];for(let u of e)(l(u,n?.get(u))?r:t).push(u);return[...r,...t]}function p(e){return e==="__own__"?"Own source":typeof e!="string"?e:e.match(/^(?:.*\/)?vendor\/(.+)$/u)?.[1]??e}export{c as a,s as b,f as c,_ as d,i as e,l as f,m as g,p as h};
|
package/out/chunk-ZBBOBQ43.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as p}from"./chunk-IU3CCINR.js";import{f as h,g as R}from"./chunk-UYAXVRVL.js";import{i as S}from"./chunk-WZDTZE64.js";import{J as C}from"./chunk-GNXOKIGP.js";async function y(e,t=null,n={}){let o;try{o=await p(e,{credentials:"same-origin",headers:{accept:"application/json"},...n})}catch{return t}if(o.status===401||o.status===403)return null;if(!o.ok)return t;try{return await o.json()}catch{return t}}async function T({fallback:e=null}={}){let t;try{let o=h(),s=await p(o?R(o):"/api/auth/session",{credentials:"same-origin",headers:{accept:"application/json"}});if(s.status===401||s.status===403)return null;if(!s.ok)return e;t=await s.json()}catch{return e}let n=t?.user;return n===null?null:n===void 0||typeof n.login!="string"?e:{id:n.id,login:n.login,name:typeof n.name=="string"?n.name:null,avatarUrl:typeof n.avatarUrl=="string"?n.avatarUrl:null,role:typeof n.role=="string"?n.role:"none",csrfToken:typeof t.csrfToken=="string"?t.csrfToken:null,...h()?{publicShare:!0}:{},...typeof t.viewer?.login=="string"?{viewer:{id:t.viewer.id,login:t.viewer.login,name:typeof t.viewer.name=="string"?t.viewer.name:null}}:{}}}function b(e){return e?.appMode===!1?{appMode:!1}:e?.appMode===!0&&Number.isSafeInteger(e.appFindings)&&e.appFindings>=0?{appMode:!0,appFindings:e.appFindings}:null}function O(e){if(typeof e?.sha!="string"||typeof e.github!="string"||!Array.isArray(e.tags))return null;let t=e.details,n=s=>typeof s=="string"?s:null,o=s=>Number.isSafeInteger(s)?s:null;return{sha:e.sha,github:e.github,tags:e.tags.filter(s=>typeof s=="string"),details:typeof t?.subject=="string"?{subject:t.subject,authorName:n(t.authorName),authorLogin:n(t.authorLogin),authoredAt:o(t.authoredAt),committedAt:o(t.committedAt)}:null}}async function F({fallback:e=[],signal:t,onRevision:n}={}){let o=h(),s=o?await y(R(o),null,{signal:t}):null,a=o?{teams:s?.team?[s.team]:[]}:await y("/api/teams",{teams:e},{signal:t}),l=a?.teams;return Array.isArray(l)?(n?.(typeof a.revision=="string"?a.revision:null),l.filter(i=>i!=null&&typeof i.id=="string"&&typeof i.name=="string").map(i=>({id:i.id,slug:i.slug,name:i.name,...!o&&i.dependencyReview===!0?{dependencyReview:!0}:{},...i.permissions?{permissions:{dependencies:i.permissions.dependencies===!0,security:i.permissions.security===!0}}:{},...typeof i.cacheKey=="string"?{cacheKey:i.cacheKey}:{},...b(i.app)?{app:b(i.app)}:{},reports:Array.isArray(i.reports)?i.reports.filter(r=>r!=null&&typeof r.id=="string"&&typeof r.filename=="string").map(r=>({id:r.id,slug:r.slug,filename:r.filename,visible:r.visible!==!1,...r.analyzer===null||typeof r.analyzer=="string"?{analyzer:r.analyzer}:{},repoFullName:typeof r.repoFullName=="string"?r.repoFullName:"",repoDirectory:typeof r.repoDirectory=="string"?r.repoDirectory:"",...typeof r.cacheKey=="string"?{cacheKey:r.cacheKey}:{}})):[],bundles:Array.isArray(i.bundles)?i.bundles.filter(r=>r!=null&&typeof r.id=="string"&&typeof r.filename=="string").map(r=>({id:r.id,slug:r.slug,integrity:r.integrity,byteSize:r.byteSize,repoId:r.repoId,filename:r.filename,kind:r.kind,visible:r.visible!==!1,summary:r.summary??null,summaryRetryAt:Number.isSafeInteger(r.summaryRetryAt)&&r.summaryRetryAt>0?r.summaryRetryAt:null,repoDirectory:typeof r.repoDirectory=="string"?r.repoDirectory:"",repoFullName:typeof r.repoFullName=="string"?r.repoFullName:"",commitInfo:O(r.commitInfo)})):[]}))):a==null?[]:e}function x(e){return e?.links===void 0?[]:Array.isArray(e.links)&&e.links.every(t=>Array.isArray(t)&&t.length>=2&&t.every(n=>typeof n=="string"))?e.links:null}function $(e){return C(e?.data)===null||typeof e.repo?.directory!="string"||e.repo.github!==null&&typeof e.repo.github!="string"||x(e)===null?null:{data:e.data,repo:e.repo,...e.links?{links:e.links}:{}}}async function P(e,{signal:t}={}){return $(await y(`/api/reports/${encodeURIComponent(e)}`,null,{signal:t}))}async function M(e,{signal:t}={}){let n=[...new Set(e)];if(n.length===0)return[];let o=await y("/api/reports/query",null,{method:"POST",signal:t,headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({ids:n})});if(!Array.isArray(o?.reports)||o.reports.length!==n.length)return null;let s=new Map;for(let l of o.reports){let i=$(l);if(!i||!n.includes(l.id)||s.has(l.id))return null;s.set(l.id,i)}let a=x(o);return a===null?null:e.map(l=>({...s.get(l),...a.length>0?{links:a}:{}}))}async function D(e,{signal:t,reportId:n=null}={}){let o=n===null?"":`?reportId=${encodeURIComponent(n)}`,s=await y(`/api/teams/${encodeURIComponent(e)}/reports${o}`,null,{signal:t});if(!Array.isArray(s?.reports))return null;let a=[],l=new Set;for(let r of s.reports){let m=$(r);if(!m||typeof r.id!="string"||typeof r.filename!="string"||l.has(r.id))return null;l.add(r.id),a.push({id:r.id,filename:r.filename,...m})}let i=x(s);return i===null?null:(Object.defineProperty(a,"links",{value:i}),a)}function w(e){return e?`?team=${encodeURIComponent(e)}`:""}async function L(e,{reportId:t,...n}={}){let o=t==null?"":`?reportId=${encodeURIComponent(t)}`,s=await y(`/api/teams/${encodeURIComponent(e)}/annotations${o}`,null,n),{reports:a,entries:l,comments:i,issues:r={}}=s??{};if(!a||typeof a!="object"||Array.isArray(a)||!l||typeof l!="object"||Array.isArray(l)||!Array.isArray(i)||!r||typeof r!="object"||Array.isArray(r)||Object.values(a).some(c=>!Array.isArray(c)||c.some(d=>typeof d!="string"))||i.some(c=>!c||typeof c.findingId!="string"))return null;let m=new Map;for(let[c,d]of i.entries()){let f=d.findingId,g=m.get(f)??[];g.push(c),m.set(f,g)}let j=new Map,A=new Map;return c=>{if(!Object.hasOwn(a,c))return null;if(A.has(c))return A.get(c);let d=JSON.stringify(a[c]),f=j.get(d);if(!f){let g=[...new Set(a[c])],U=g.flatMap(u=>m.get(u)??[]);f={entries:Object.fromEntries(g.filter(u=>Object.hasOwn(l,u)).map(u=>[u,l[u]])),comments:U.toSorted((u,k)=>u-k).map(u=>i[u]),issues:Object.fromEntries(g.filter(u=>Object.hasOwn(r,u)).map(u=>[u,r[u]]))},j.set(d,f)}return A.set(c,f),f}}async function J(e,t,n){let s=(await y(`/api/reports/${encodeURIComponent(e)}/triage${w(t)}`,null,n))?.entries;return s!=null&&typeof s=="object"&&!Array.isArray(s)?s:null}async function z(e,t,n=null){if(h())return[];let o=n===null?"":`?reportId=${encodeURIComponent(n)}`,s=await y(`/api/teams/${encodeURIComponent(e)}/fixes${o}`,null,{signal:t});return Array.isArray(s?.fixes)?s.fixes:null}async function K(e,t,n){let o=await y(`/api/reports/${encodeURIComponent(e)}/comments${w(t)}`,null,n);return Array.isArray(o?.comments)?o.comments:null}async function q(e,{findingId:t,body:n,commentId:o=null,version:s},a,l){let i=o==null?"":`/${encodeURIComponent(o)}`;try{let r=await p(`/api/reports/${encodeURIComponent(e)}/comments${i}${w(l)}`,{method:o==null?"POST":"PATCH",credentials:"same-origin",headers:{"content-type":"application/json",...a?{"x-csrf-token":a}:{}},body:JSON.stringify(o==null?{findingId:t,body:n}:{body:n,version:s})});return{status:r.status,comment:r.ok?(await r.json()).comment:null}}catch{return{status:0,comment:null}}}async function H(e,t,n,o,s){try{return(await p(`/api/reports/${encodeURIComponent(e)}/comments/${encodeURIComponent(t)}${w(s)}`,{method:"DELETE",credentials:"same-origin",headers:{"content-type":"application/json",...o?{"x-csrf-token":o}:{}},body:JSON.stringify({version:n})})).status}catch{return 0}}async function B(e,t,n,o){try{return(await p(`/api/reports/${encodeURIComponent(e)}/triage${w(o)}`,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json",...n?{"x-csrf-token":n}:{}},body:JSON.stringify({entries:t})})).status}catch{return 0}}function G(e){e&&(location.href=e)}async function W(e){if(h()){location.href="/";return}try{await p("/api/auth/logout",{method:"POST",credentials:"same-origin",headers:e?{"x-csrf-token":e}:{}})}catch{}location.reload()}async function _(e,t){let n=await p("/api/auth/view-as",{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json",...t?{"x-csrf-token":t}:{}},body:JSON.stringify({userId:e})});if(!n.ok)throw new Error(`HTTP ${n.status}`);location.assign("/")}async function Q(e){try{await p("/api/auth/view-as",{method:"DELETE",credentials:"same-origin",headers:e?{"x-csrf-token":e}:{}})}catch{}location.assign(S["admin-users"])}async function V(e){let t=await p(`/api/teams/${encodeURIComponent(e)}/share`,{credentials:"same-origin"});if(!t.ok)throw new Error(`Could not load public links (${t.status})`);return(await t.json()).shares}async function X(e,t,{id:n,revoke:o=!1,dependencies:s=!1,security:a=!1}={}){let l=n?`/${encodeURIComponent(n)}`:"",i=await p(`/api/teams/${encodeURIComponent(e)}/share${l}`,{method:o?"DELETE":n?"PATCH":"POST",credentials:"same-origin",headers:{"x-csrf-token":t,"content-type":"application/json"},...o?{}:{body:JSON.stringify({dependencies:s,security:a})}});if(!i.ok)throw new Error(`Could not ${o?"revoke":n?"update":"create"} public link (${i.status})`);return i.json()}async function Y(e,t){let n=await p(`/api/bundles/${encodeURIComponent(e)}/download`,{credentials:"same-origin"});if(!n.ok)throw new Error(`Could not download bundle (${n.status})`);let o=URL.createObjectURL(await n.blob()),s=document.createElement("a");s.href=o,s.download=t,s.click(),setTimeout(()=>URL.revokeObjectURL(o),6e4)}export{T as a,F as b,P as c,M as d,D as e,w as f,L as g,J as h,z as i,K as j,q as k,H as l,B as m,G as n,W as o,_ as p,Q as q,V as r,X as s,Y as t};
|