@preventive/triage 1.0.0-alpha.4 → 1.0.0-alpha.41
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/LICENSE-APACHE +202 -0
- package/README.md +16 -0
- package/api/reap.ts +17 -0
- package/cli.js +6 -0
- package/client/dependency-paths.d.ts +2 -0
- package/client/dependency-paths.js +24 -0
- package/client/finding-link.js +305 -0
- package/client/linked-findings.d.ts +1 -0
- package/client/linked-findings.js +112 -0
- package/common/bundle-commit.d.ts +1 -0
- package/common/bundle-commit.js +4 -0
- package/common/bundle-compare-diff.d.ts +3 -0
- package/common/bundle-compare-diff.js +522 -0
- package/common/bundle-compare-inputs.d.ts +2 -0
- package/common/bundle-compare-inputs.js +65 -0
- package/common/bundle-metadata.d.ts +14 -0
- package/common/bundle-metadata.js +226 -0
- package/common/bundle-pkg-of.d.ts +1 -0
- package/common/bundle-pkg-of.js +90 -0
- package/common/bundle-reasons.d.ts +2 -0
- package/common/bundle-reasons.js +21 -0
- package/common/bundle-source-links.d.ts +6 -0
- package/common/bundle-source-links.js +216 -0
- package/common/bundle-sourcemap.d.ts +10 -0
- package/common/bundle-sourcemap.js +100 -0
- package/common/bundle-sources.d.ts +7 -0
- package/common/bundle-sources.js +310 -0
- package/common/bundle-stats.js +41 -0
- package/common/bundle-tabs.js +1 -0
- package/common/code-language.js +65 -0
- package/common/default-scan-models.ts +31 -0
- package/common/dependency-reviews.d.ts +23 -0
- package/common/dependency-reviews.js +81 -0
- package/common/finding-duplicates.js +58 -0
- package/common/finding-filters.js +274 -0
- package/common/finding-id.js +47 -0
- package/common/github-issue-labels.d.ts +1 -0
- package/common/github-issue-labels.js +11 -0
- package/common/github-pr.ts +56 -0
- package/common/gzip.js +59 -0
- package/common/line-diff.d.ts +8 -0
- package/common/line-diff.js +56 -0
- package/common/linked-workspace-groups.js +63 -0
- package/common/managed/comments.ts +34 -0
- package/common/managed/npm-packages.d.ts +5 -0
- package/common/managed/npm-packages.js +34 -0
- package/common/managed/permissions.ts +31 -0
- package/common/managed/report-content.ts +72 -0
- package/common/managed/report-filter.ts +108 -0
- package/common/managed/repository-alias.ts +65 -0
- package/common/managed/roles.ts +28 -0
- package/common/managed/routes.d.ts +2 -0
- package/common/managed/routes.js +254 -0
- package/common/managed/scan-models.ts +6 -0
- package/common/managed/team-app.d.ts +2 -0
- package/common/managed/team-app.js +31 -0
- package/common/managed/triage.ts +83 -0
- package/common/managed/upload-seal.ts +126 -0
- package/common/pretty-print.d.ts +5 -0
- package/common/pretty-print.js +24 -0
- package/common/revalidation-conflicts.js +48 -0
- package/common/revalidation-input-groups.js +56 -0
- package/common/save-error-reason.ts +20 -7
- package/common/scan-server.ts +13 -0
- package/common/server-info.ts +35 -0
- package/common/utf8.d.ts +3 -0
- package/common/utf8.js +45 -0
- package/common/workspace-app.js +23 -0
- package/common/workspace-groups.js +176 -0
- package/out/brotli-fallback.js +3 -3
- package/out/chunk-2AFQKRAM.js +51 -0
- package/out/chunk-2KBF5TZ7.js +2 -0
- package/out/chunk-2XUEZHIP.js +28 -0
- package/out/chunk-35VE6CDH.js +2 -0
- package/out/chunk-3BZ7JERB.js +1 -0
- package/out/chunk-4F6JSF57.js +3 -0
- package/out/chunk-4XCDFGDP.js +10 -0
- package/out/chunk-C4Z6ZBXV.js +10 -0
- package/out/chunk-CMQA4DM6.js +1 -0
- package/out/chunk-CVVJAXVY.js +2 -0
- package/out/chunk-DIJJNTRH.js +10 -0
- package/out/chunk-GJ4IUCNS.js +1 -0
- package/out/chunk-GNXOKIGP.js +80 -0
- package/out/chunk-GZ4MS3TE.js +13 -0
- package/out/chunk-IU3CCINR.js +3 -0
- package/out/chunk-K3X5EJBQ.js +2 -0
- package/out/chunk-KEX2ATEW.js +2 -0
- package/out/chunk-KVEUXIEU.js +1 -0
- package/out/chunk-KYCNJVB7.js +1 -0
- package/out/chunk-NRPC74AM.js +1 -0
- package/out/chunk-OOJM4CTU.js +1 -0
- package/out/chunk-PNHBZGDD.js +1 -0
- package/out/chunk-QZ3A376W.js +1 -0
- package/out/chunk-R5O6FAW4.js +2 -0
- package/out/chunk-RFZQQXSG.js +17 -0
- package/out/chunk-RSHMVYNS.js +1 -0
- package/out/chunk-TUII34K2.js +1 -0
- package/out/chunk-TY4RZD3Z.js +226 -0
- package/out/chunk-TZ5KB2Y5.js +10 -0
- package/out/chunk-U6OPEXIA.js +1 -0
- package/out/chunk-UNTRGE26.js +2 -0
- package/out/chunk-UXNUAIIC.js +33 -0
- package/out/chunk-UYAXVRVL.js +1 -0
- package/out/chunk-UZAZM2SX.js +2 -0
- package/out/chunk-V3ME6FI5.js +2 -0
- package/out/chunk-V5O7M2YT.js +1 -0
- package/out/chunk-VIHGO77Y.js +1 -0
- package/out/chunk-VQJCXGIY.js +7 -0
- package/out/chunk-W4J3MGLB.js +1 -0
- package/out/chunk-WGG7KQUH.js +1 -0
- package/out/chunk-WZDTZE64.js +1 -0
- package/out/chunk-XL35ZV6R.js +1 -0
- package/out/chunk-XYFXXB2G.js +10 -0
- package/out/chunk-YVZH5SHP.js +1 -0
- package/out/chunk-ZBBOBQ43.js +1 -0
- package/out/chunk-ZMQQCGF6.js +2 -0
- package/out/client-managed-import.js +4 -0
- package/out/client-managed.js +37 -0
- package/out/client-sync.js +10 -13
- package/out/github-issue-authorized.html +3 -0
- package/out/github-issue-authorized.js +1 -0
- package/out/graph.js +17 -4
- package/out/index.html +90 -8
- package/out/prism.js +6 -2
- package/out/stasis.svg +20 -0
- package/out/terminal.js +365 -39
- package/out/view.css +1 -1
- package/out/view.js +83 -117
- package/package.json +298 -59
- package/risk/files/characters.js +196 -0
- package/risk/files/hosts.js +205 -0
- package/risk/files/readability.js +171 -0
- package/risk/files/runs-code.js +595 -0
- package/risk/files/script.js +114 -0
- package/risk/files/stamps.js +46 -0
- package/risk/index.d.ts +156 -0
- package/risk/index.js +7 -0
- package/risk/npm/assess.js +223 -0
- package/risk/npm/combined.js +65 -0
- package/risk/npm/compare.js +228 -0
- package/risk/npm/dependencies.js +153 -0
- package/risk/npm/diff.js +43 -0
- package/risk/npm/downloads.js +84 -0
- package/risk/npm/files.js +34 -0
- package/risk/npm/held.js +60 -0
- package/risk/npm/install-scripts.js +34 -0
- package/risk/npm/malware.js +36 -0
- package/risk/npm/manifest.js +65 -0
- package/risk/npm/new-dependency.js +30 -0
- package/risk/npm/old-version.js +108 -0
- package/risk/npm/registry.js +282 -0
- package/risk/npm/release.js +85 -0
- package/risk/npm/score.js +59 -0
- package/risk/npm/specs.js +124 -0
- package/risk/npm/tarball.js +113 -0
- package/server-common/database-config.ts +16 -0
- package/server-common/initialize.ts +18 -0
- package/server-common/npm-advisories.ts +101 -0
- package/{server → server-common}/origin.ts +5 -5
- package/server-common/reap.ts +48 -0
- package/server-common/scan-config.ts +19 -0
- package/server-common/standalone.ts +29 -0
- package/server-common/storage-crypto.ts +182 -0
- package/server-common/storage-log.ts +38 -0
- package/server-common/vercel-blob.ts +103 -0
- package/server-e2e/app.ts +486 -0
- package/{server → server-e2e}/auth.ts +5 -1
- package/{server → server-e2e}/bus-receiver.ts +2 -1
- package/{server → server-e2e}/cli.js +9 -4
- package/{server → server-e2e}/config.ts +56 -35
- package/{server → server-e2e}/db-neon.ts +2 -2
- package/{server → server-e2e}/db-revision-sql.ts +1 -1
- package/{server → server-e2e}/db-stmt.ts +2 -2
- package/{server → server-e2e}/db.ts +7 -7
- package/{server → server-e2e}/http.ts +116 -18
- package/{server → server-e2e}/hub.ts +40 -9
- package/server-e2e/index.ts +17 -0
- package/server-e2e/lifecycle.ts +95 -0
- package/{server → server-e2e}/neon-driver.ts +2 -2
- package/{server → server-e2e}/npm-proxy.ts +12 -145
- package/{server → server-e2e}/objstore/blob-vercel.ts +10 -114
- package/{server → server-e2e}/objstore/blob.ts +1 -1
- package/server-e2e/objstore/fetch-mint-guard.ts +74 -0
- package/{server → server-e2e}/objstore/handlers.ts +9 -8
- package/{server → server-e2e}/objstore/init.ts +35 -18
- package/{server → server-e2e}/objstore/reaper.ts +1 -1
- package/server-e2e/objstore/rest-deny.ts +28 -0
- package/server-e2e/objstore/rest-mint.ts +224 -0
- package/{server → server-e2e}/objstore/rest.ts +27 -26
- package/{server → server-e2e}/objstore/sign.ts +105 -0
- package/{server → server-e2e}/objstore/store-neon.ts +6 -10
- package/{server → server-e2e}/objstore/store.ts +7 -7
- package/{server → server-e2e}/objstore/tokens.ts +2 -2
- package/{server → server-e2e}/pubsub.ts +12 -9
- package/{server → server-e2e}/sign.ts +4 -4
- package/{server → server-e2e}/sse-server.ts +102 -68
- package/{server → server-e2e}/sse-session.ts +28 -8
- package/{server → server-e2e}/static.ts +31 -21
- package/server-e2e/sync-handlers.ts +408 -0
- package/{server → server-e2e}/ws-server.ts +20 -9
- package/server-managed/activity.ts +245 -0
- package/server-managed/avatar-store.ts +12 -0
- package/server-managed/blob-store.ts +17 -0
- package/server-managed/brotli.ts +10 -0
- package/server-managed/bundle-advisories.ts +120 -0
- package/server-managed/bundle-advisory-inventory.ts +77 -0
- package/server-managed/bundle-build-diagnostics.d.ts +10 -0
- package/server-managed/bundle-build-diagnostics.js +23 -0
- package/server-managed/bundle-build-leases.ts +41 -0
- package/server-managed/bundle-build-worker.js +111 -0
- package/server-managed/bundle-build.ts +198 -0
- package/server-managed/bundle-cache.ts +199 -0
- package/server-managed/bundle-catalog.ts +29 -0
- package/server-managed/bundle-commits.ts +140 -0
- package/server-managed/bundle-store.ts +24 -0
- package/server-managed/bundle-summary-cache.ts +130 -0
- package/server-managed/bundle.ts +120 -0
- package/server-managed/cache-storage.ts +19 -0
- package/server-managed/cli.js +21 -0
- package/server-managed/combined.ts +46 -0
- package/server-managed/comments.ts +151 -0
- package/server-managed/config.ts +158 -0
- package/server-managed/content-access.ts +15 -0
- package/server-managed/crypto.ts +25 -0
- package/server-managed/db-methods.ts +1725 -0
- package/server-managed/db-neon.ts +367 -0
- package/server-managed/db-schema.ts +227 -0
- package/server-managed/db-table-names.ts +22 -0
- package/server-managed/db.ts +132 -0
- package/server-managed/dependency-reviews.ts +248 -0
- package/server-managed/github-app.ts +391 -0
- package/server-managed/github-errors.ts +68 -0
- package/server-managed/github-issue-links.ts +127 -0
- package/server-managed/github-issue-oauth.ts +47 -0
- package/server-managed/github-issues.ts +152 -0
- package/server-managed/github-metadata.ts +213 -0
- package/server-managed/github-oauth.ts +235 -0
- package/server-managed/github-pulls.ts +227 -0
- package/server-managed/http-response.ts +50 -0
- package/server-managed/http.ts +3472 -0
- package/server-managed/import-triage.ts +51 -0
- package/server-managed/index.ts +187 -0
- package/server-managed/kept.ts +28 -0
- package/server-managed/link-reports.ts +158 -0
- package/server-managed/locked-packages.ts +85 -0
- package/server-managed/lru.ts +30 -0
- package/server-managed/managed-issues.ts +75 -0
- package/server-managed/management-catalog.ts +45 -0
- package/server-managed/management.ts +99 -0
- package/server-managed/npm-insights.ts +440 -0
- package/server-managed/npm-kept.ts +65 -0
- package/server-managed/npm-loads.ts +167 -0
- package/server-managed/npm-manifest.ts +115 -0
- package/server-managed/npm-packages.ts +378 -0
- package/server-managed/npm-provenance.ts +123 -0
- package/server-managed/npm-risk.ts +177 -0
- package/server-managed/object-storage-disk.ts +148 -0
- package/server-managed/object-storage-vercel.ts +67 -0
- package/server-managed/object-storage.ts +74 -0
- package/server-managed/package-entry-points.ts +51 -0
- package/server-managed/pretty-print.ts +352 -0
- package/server-managed/public-workspace.ts +220 -0
- package/server-managed/rename-diff-worker.js +26 -0
- package/server-managed/rename-diff.ts +270 -0
- package/server-managed/repo-path.ts +21 -0
- package/server-managed/report-migration.ts +35 -0
- package/server-managed/report-query.ts +10 -0
- package/server-managed/report-response.ts +16 -0
- package/server-managed/report-sources.ts +178 -0
- package/server-managed/report-store.ts +47 -0
- package/server-managed/repository-aliases.ts +91 -0
- package/server-managed/repository-browser.ts +153 -0
- package/server-managed/repository-discovery.ts +82 -0
- package/server-managed/repository-policy.ts +27 -0
- package/server-managed/repository-risk.ts +420 -0
- package/server-managed/revisions.ts +35 -0
- package/server-managed/session.ts +92 -0
- package/server-managed/slugs.ts +38 -0
- package/server-managed/solidity-entry-points.ts +69 -0
- package/server-managed/sql-postgres.ts +31 -0
- package/server-managed/sql.ts +76 -0
- package/server-managed/static.ts +28 -0
- package/server-managed/storage-command.ts +16 -0
- package/server-managed/storage-db.ts +175 -0
- package/server-managed/storage-encryption.ts +279 -0
- package/server-managed/storage-maintenance.ts +256 -0
- package/server-managed/storage-payload.ts +103 -0
- package/server-managed/storage-stores.ts +85 -0
- package/server-managed/storage.ts +78 -0
- package/server-managed/team-app.ts +94 -0
- package/server-managed/team-catalog.ts +7 -0
- package/server-managed/team-feed.ts +173 -0
- package/server-managed/team-npm-scopes.ts +77 -0
- package/server-managed/team-reports.ts +228 -0
- package/server-managed/triage-response.ts +16 -0
- package/server-managed/type-only-worker.js +19 -0
- package/server-managed/type-only.ts +103 -0
- package/server-managed/uploads.ts +86 -0
- package/server-managed/upstream-cache.ts +215 -0
- package/server-managed/view-as.ts +58 -0
- package/server-managed/workspace-shares.ts +166 -0
- package/server.ts +50 -0
- package/server/index.ts +0 -477
- package/server/lifecycle.ts +0 -204
- package/server/sync-handlers.ts +0 -320
- /package/{LICENSE → LICENSE-MIT} +0 -0
- /package/{server → server-e2e}/config.example.json +0 -0
- /package/{server → server-e2e}/objstore/blob-fs.ts +0 -0
- /package/{server → server-e2e}/objstore/fs.ts +0 -0
- /package/{server → server-e2e}/peer.ts +0 -0
- /package/{server → server-e2e}/util.ts +0 -0
- /package/{server → server-e2e}/validation.ts +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var n=`.managed-comment{container:managed-comment / inline-size;white-space:normal}.managed-comment-row{display:grid;grid-template-columns:minmax(0,max-content) minmax(0,1fr) auto;align-items:start;gap:.35rem .65rem;line-height:1.5}.managed-comment-author{grid-column:1;grid-row:1;display:flex;align-items:center;gap:.45rem;min-width:0;max-width:14rem;& strong{overflow:hidden;text-overflow:ellipsis;font-weight:600}}.managed-comment-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:1.3rem;height:1.3rem;overflow:hidden;border-radius:50%;background:rgb(from var(--muted) r g b / .15);color:var(--muted);font-size:.65rem;font-weight:600;& img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}& img[hidden]{display:none}}.managed-comment-body{grid-column:2;grid-row:1;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;& a{color:var(--accent);text-decoration:none}& a:hover{text-decoration:underline}& a.comment-self-ref{text-decoration:underline dotted;text-underline-offset:2px}& a.comment-self-ref:hover{text-decoration:underline solid}}.managed-comment-time{color:var(--muted);font-size:.7rem;font-weight:400;white-space:nowrap;text-align:right}.managed-comment-meta{grid-column:3;grid-row:1;justify-self:end;display:flex;align-items:center;gap:.5rem;min-height:1.3rem}.managed-comment-actions{display:flex;align-items:center;gap:.15rem}.managed-comment-row:not(:has(.managed-comment-author)){grid-template-columns:minmax(0,1fr) auto;.managed-comment-body{grid-column:1}.managed-comment-meta{grid-column:2}}@container managed-comment (max-width: 28rem){.managed-comment-row:has(.managed-comment-meta){grid-template-columns:minmax(0,max-content) minmax(0,1fr);.managed-comment-meta{grid-column:1 / -1;grid-row:1}.managed-comment-author,.managed-comment-body{grid-row:2}}.managed-comment-row:not(:has(.managed-comment-author)){grid-template-columns:minmax(0,1fr)}.managed-comment-author{max-width:9rem}}
|
|
2
|
+
`;export{n as a};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
var M=globalThis,N=M.ShadowRoot&&(M.ShadyCSS===void 0||M.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,z=Symbol(),Q=new WeakMap,C=class{constructor(t,e,s){if(this._$cssResult$=!0,s!==z)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o,e=this.t;if(N&&t===void 0){let s=e!==void 0&&e.length===1;s&&(t=Q.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),s&&Q.set(e,t))}return t}toString(){return this.cssText}},X=r=>new C(typeof r=="string"?r:r+"",void 0,z),_t=(r,...t)=>{let e=r.length===1?r[0]:t.reduce((s,i,o)=>s+(n=>{if(n._$cssResult$===!0)return n.cssText;if(typeof n=="number")return n;throw Error("Value passed to 'css' function must be a 'css' function result: "+n+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+r[o+1],r[0]);return new C(e,r,z)},Y=(r,t)=>{if(N)r.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let e of t){let s=document.createElement("style"),i=M.litNonce;i!==void 0&&s.setAttribute("nonce",i),s.textContent=e.cssText,r.appendChild(s)}},I=N?r=>r:r=>r instanceof CSSStyleSheet?(t=>{let e="";for(let s of t.cssRules)e+=s.cssText;return X(e)})(r):r;var{is:ft,defineProperty:At,getOwnPropertyDescriptor:mt,getOwnPropertyNames:gt,getOwnPropertySymbols:yt,getPrototypeOf:vt}=Object,T=globalThis,tt=T.trustedTypes,St=tt?tt.emptyScript:"",Et=T.reactiveElementPolyfillSupport,w=(r,t)=>r,V={toAttribute(r,t){switch(t){case Boolean:r=r?St:null;break;case Object:case Array:r=r==null?r:JSON.stringify(r)}return r},fromAttribute(r,t){let e=r;switch(t){case Boolean:e=r!==null;break;case Number:e=r===null?null:Number(r);break;case Object:case Array:try{e=JSON.parse(r)}catch{e=null}}return e}},st=(r,t)=>!ft(r,t),et={attribute:!0,type:String,converter:V,reflect:!1,useDefault:!1,hasChanged:st};Symbol.metadata??=Symbol("metadata"),T.litPropertyMetadata??=new WeakMap;var $=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=et){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){let s=Symbol(),i=this.getPropertyDescriptor(t,s,e);i!==void 0&&At(this.prototype,t,i)}}static getPropertyDescriptor(t,e,s){let{get:i,set:o}=mt(this.prototype,t)??{get(){return this[e]},set(n){this[e]=n}};return{get:i,set(n){let l=i?.call(this);o?.call(this,n),this.requestUpdate(t,l,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??et}static _$Ei(){if(this.hasOwnProperty(w("elementProperties")))return;let t=vt(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(w("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(w("properties"))){let e=this.properties,s=[...gt(e),...yt(e)];for(let i of s)this.createProperty(i,e[i])}let t=this[Symbol.metadata];if(t!==null){let e=litPropertyMetadata.get(t);if(e!==void 0)for(let[s,i]of e)this.elementProperties.set(s,i)}this._$Eh=new Map;for(let[e,s]of this.elementProperties){let i=this._$Eu(e,s);i!==void 0&&this._$Eh.set(i,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){let e=[];if(Array.isArray(t)){let s=new Set(t.flat(1/0).reverse());for(let i of s)e.unshift(I(i))}else t!==void 0&&e.push(I(t));return e}static _$Eu(t,e){let s=e.attribute;return s===!1?void 0:typeof s=="string"?s:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){let t=new Map,e=this.constructor.elementProperties;for(let s of e.keys())this.hasOwnProperty(s)&&(t.set(s,this[s]),delete this[s]);t.size>0&&(this._$Ep=t)}createRenderRoot(){let t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Y(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,e,s){this._$AK(t,s)}_$ET(t,e){let s=this.constructor.elementProperties.get(t),i=this.constructor._$Eu(t,s);if(i!==void 0&&s.reflect===!0){let o=(s.converter?.toAttribute!==void 0?s.converter:V).toAttribute(e,s.type);this._$Em=t,o==null?this.removeAttribute(i):this.setAttribute(i,o),this._$Em=null}}_$AK(t,e){let s=this.constructor,i=s._$Eh.get(t);if(i!==void 0&&this._$Em!==i){let o=s.getPropertyOptions(i),n=typeof o.converter=="function"?{fromAttribute:o.converter}:o.converter?.fromAttribute!==void 0?o.converter:V;this._$Em=i;let l=n.fromAttribute(e,o.type);this[i]=l??this._$Ej?.get(i)??l,this._$Em=null}}requestUpdate(t,e,s,i=!1,o){if(t!==void 0){let n=this.constructor;if(i===!1&&(o=this[t]),s??=n.getPropertyOptions(t),!((s.hasChanged??st)(o,e)||s.useDefault&&s.reflect&&o===this._$Ej?.get(t)&&!this.hasAttribute(n._$Eu(t,s))))return;this.C(t,e,s)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,e,{useDefault:s,reflect:i,wrapped:o},n){s&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,n??e??this[t]),o!==!0||n!==void 0)||(this._$AL.has(t)||(this.hasUpdated||s||(e=void 0),this._$AL.set(t,e)),i===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[i,o]of this._$Ep)this[i]=o;this._$Ep=void 0}let s=this.constructor.elementProperties;if(s.size>0)for(let[i,o]of s){let{wrapped:n}=o,l=this[i];n!==!0||this._$AL.has(i)||l===void 0||this.C(i,void 0,o,l)}}let t=!1,e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach(s=>s.hostUpdate?.()),this.update(e)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(t){}firstUpdated(t){}};$.elementStyles=[],$.shadowRootOptions={mode:"open"},$[w("elementProperties")]=new Map,$[w("finalized")]=new Map,Et?.({ReactiveElement:$}),(T.reactiveElementVersions??=[]).push("2.1.2");var q=globalThis,it=r=>r,R=q.trustedTypes,rt=R?R.createPolicy("lit-html",{createHTML:r=>r}):void 0,K="$lit$",_=`lit$${Math.random().toFixed(9).slice(2)}$`,F="?"+_,bt=`<${F}>`,g=document,P=()=>g.createComment(""),U=r=>r===null||typeof r!="object"&&typeof r!="function",J=Array.isArray,ct=r=>J(r)||typeof r?.[Symbol.iterator]=="function",W=`[
|
|
2
|
+
\f\r]`,x=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ot=/-->/g,nt=/>/g,A=RegExp(`>|${W}(?:([^\\s"'>=/]+)(${W}*=${W}*(?:[^
|
|
3
|
+
\f\r"'\`<>=]|("|')|))|$)`,"g"),ht=/'/g,at=/"/g,pt=/^(?:script|style|textarea|title)$/i,Z=r=>(t,...e)=>({_$litType$:r,strings:t,values:e}),Ht=Z(1),Mt=Z(2),Nt=Z(3),y=Symbol.for("lit-noChange"),p=Symbol.for("lit-nothing"),lt=new WeakMap,m=g.createTreeWalker(g,129);function dt(r,t){if(!J(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return rt!==void 0?rt.createHTML(t):t}var ut=(r,t)=>{let e=r.length-1,s=[],i,o=t===2?"<svg>":t===3?"<math>":"",n=x;for(let l=0;l<e;l++){let h=r[l],c,d,a=-1,u=0;for(;u<h.length&&(n.lastIndex=u,d=n.exec(h),d!==null);)u=n.lastIndex,n===x?d[1]==="!--"?n=ot:d[1]!==void 0?n=nt:d[2]!==void 0?(pt.test(d[2])&&(i=RegExp("</"+d[2],"g")),n=A):d[3]!==void 0&&(n=A):n===A?d[0]===">"?(n=i??x,a=-1):d[1]===void 0?a=-2:(a=n.lastIndex-d[2].length,c=d[1],n=d[3]===void 0?A:d[3]==='"'?at:ht):n===at||n===ht?n=A:n===ot||n===nt?n=x:(n=A,i=void 0);let f=n===A&&r[l+1].startsWith("/>")?" ":"";o+=n===x?h+bt:a>=0?(s.push(c),h.slice(0,a)+K+h.slice(a)+_+f):h+_+(a===-2?l:f)}return[dt(r,o+(r[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),s]},O=class r{constructor({strings:t,_$litType$:e},s){let i;this.parts=[];let o=0,n=0,l=t.length-1,h=this.parts,[c,d]=ut(t,e);if(this.el=r.createElement(c,s),m.currentNode=this.el.content,e===2||e===3){let a=this.el.content.firstChild;a.replaceWith(...a.childNodes)}for(;(i=m.nextNode())!==null&&h.length<l;){if(i.nodeType===1){if(i.hasAttributes())for(let a of i.getAttributeNames())if(a.endsWith(K)){let u=d[n++],f=i.getAttribute(a).split(_),H=/([.?@])?(.*)/.exec(u);h.push({type:1,index:o,name:H[2],strings:f,ctor:H[1]==="."?k:H[1]==="?"?D:H[1]==="@"?j:S}),i.removeAttribute(a)}else a.startsWith(_)&&(h.push({type:6,index:o}),i.removeAttribute(a));if(pt.test(i.tagName)){let a=i.textContent.split(_),u=a.length-1;if(u>0){i.textContent=R?R.emptyScript:"";for(let f=0;f<u;f++)i.append(a[f],P()),m.nextNode(),h.push({type:2,index:++o});i.append(a[u],P())}}}else if(i.nodeType===8)if(i.data===F)h.push({type:2,index:o});else{let a=-1;for(;(a=i.data.indexOf(_,a+1))!==-1;)h.push({type:7,index:o}),a+=_.length-1}o++}}static createElement(t,e){let s=g.createElement("template");return s.innerHTML=t,s}};function v(r,t,e=r,s){if(t===y)return t;let i=s!==void 0?e._$Co?.[s]:e._$Cl,o=U(t)?void 0:t._$litDirective$;return i?.constructor!==o&&(i?._$AO?.(!1),o===void 0?i=void 0:(i=new o(r),i._$AT(r,e,s)),s!==void 0?(e._$Co??=[])[s]=i:e._$Cl=i),i!==void 0&&(t=v(r,i._$AS(r,t.values),i,s)),t}var L=class{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){let{el:{content:e},parts:s}=this._$AD,i=(t?.creationScope??g).importNode(e,!0);m.currentNode=i;let o=m.nextNode(),n=0,l=0,h=s[0];for(;h!==void 0;){if(n===h.index){let c;h.type===2?c=new E(o,o.nextSibling,this,t):h.type===1?c=new h.ctor(o,h.name,h.strings,this,t):h.type===6&&(c=new B(o,this,t)),this._$AV.push(c),h=s[++l]}n!==h?.index&&(o=m.nextNode(),n++)}return m.currentNode=g,i}p(t){let e=0;for(let s of this._$AV)s!==void 0&&(s.strings!==void 0?(s._$AI(t,s,e),e+=s.strings.length-2):s._$AI(t[e])),e++}},E=class r{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,s,i){this.type=2,this._$AH=p,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=s,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode,e=this._$AM;return e!==void 0&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=v(this,t,e),U(t)?t===p||t==null||t===""?(this._$AH!==p&&this._$AR(),this._$AH=p):t!==this._$AH&&t!==y&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):ct(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==p&&U(this._$AH)?this._$AA.nextSibling.data=t:this.T(g.createTextNode(t)),this._$AH=t}$(t){let{values:e,_$litType$:s}=t,i=typeof s=="number"?this._$AC(t):(s.el===void 0&&(s.el=O.createElement(dt(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===i)this._$AH.p(e);else{let o=new L(i,this),n=o.u(this.options);o.p(e),this.T(n),this._$AH=o}}_$AC(t){let e=lt.get(t.strings);return e===void 0&<.set(t.strings,e=new O(t)),e}k(t){J(this._$AH)||(this._$AH=[],this._$AR());let e=this._$AH,s,i=0;for(let o of t)i===e.length?e.push(s=new r(this.O(P()),this.O(P()),this,this.options)):s=e[i],s._$AI(o),i++;i<e.length&&(this._$AR(s&&s._$AB.nextSibling,i),e.length=i)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t!==this._$AB;){let s=it(t).nextSibling;it(t).remove(),t=s}}setConnected(t){this._$AM===void 0&&(this._$Cv=t,this._$AP?.(t))}},S=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,s,i,o){this.type=1,this._$AH=p,this._$AN=void 0,this.element=t,this.name=e,this._$AM=i,this.options=o,s.length>2||s[0]!==""||s[1]!==""?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=p}_$AI(t,e=this,s,i){let o=this.strings,n=!1;if(o===void 0)t=v(this,t,e,0),n=!U(t)||t!==this._$AH&&t!==y,n&&(this._$AH=t);else{let l=t,h,c;for(t=o[0],h=0;h<o.length-1;h++)c=v(this,l[s+h],e,h),c===y&&(c=this._$AH[h]),n||=!U(c)||c!==this._$AH[h],c===p?t=p:t!==p&&(t+=(c??"")+o[h+1]),this._$AH[h]=c}n&&!i&&this.j(t)}j(t){t===p?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},k=class extends S{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===p?void 0:t}},D=class extends S{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==p)}},j=class extends S{constructor(t,e,s,i,o){super(t,e,s,i,o),this.type=5}_$AI(t,e=this){if((t=v(this,t,e,0)??p)===y)return;let s=this._$AH,i=t===p&&s!==p||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,o=t!==p&&(s===p||i);i&&this.element.removeEventListener(this.name,this,s),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}},B=class{constructor(t,e,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){v(this,t)}},Tt={M:K,P:_,A:F,C:1,L:ut,R:L,D:ct,V:v,I:E,H:S,N:D,U:j,B:k,F:B},Ct=q.litHtmlPolyfillSupport;Ct?.(O,E),(q.litHtmlVersions??=[]).push("3.3.3");var $t=(r,t,e)=>{let s=e?.renderBefore??t,i=s._$litPart$;if(i===void 0){let o=e?.renderBefore??null;s._$litPart$=i=new E(t.insertBefore(P(),o),o,void 0,e??{})}return i._$AI(r),i};var G=globalThis,b=class extends ${constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=$t(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return y}};b._$litElement$=!0,b.finalized=!0,G.litElementHydrateSupport?.({LitElement:b});var wt=G.litElementPolyfillSupport;wt?.({LitElement:b});(G.litElementVersions??=[]).push("4.2.2");export{X as a,_t as b,Ht as c,Mt as d,Nt as e,y as f,p as g,Tt as h,$t as i,b as j};
|
|
4
|
+
/*! Bundled license information:
|
|
5
|
+
|
|
6
|
+
@lit/reactive-element/css-tag.js:
|
|
7
|
+
(**
|
|
8
|
+
* @license
|
|
9
|
+
* Copyright 2019 Google LLC
|
|
10
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
11
|
+
*)
|
|
12
|
+
|
|
13
|
+
@lit/reactive-element/reactive-element.js:
|
|
14
|
+
lit-html/lit-html.js:
|
|
15
|
+
lit-element/lit-element.js:
|
|
16
|
+
(**
|
|
17
|
+
* @license
|
|
18
|
+
* Copyright 2017 Google LLC
|
|
19
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
20
|
+
*)
|
|
21
|
+
|
|
22
|
+
lit-html/is-server.js:
|
|
23
|
+
(**
|
|
24
|
+
* @license
|
|
25
|
+
* Copyright 2022 Google LLC
|
|
26
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
27
|
+
*)
|
|
28
|
+
*/
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as n}from"./chunk-DIJJNTRH.js";import{c as t,g as i}from"./chunk-2XUEZHIP.js";import{c as d,l as s,m}from"./chunk-V5O7M2YT.js";var c=[["manage","Overview"],["manage-bundles","Bundles"],["manage-scans","Scans"],["manage-reports","Reports"],["manage-deduplication","Deduplication","admin"],["manage-repos","Repositories","admin"],["admin-users","Users","admin"],["manage-teams","Teams","admin"],["manage-import","Import","admin"],["manage-links","Links"],["manage-history","History"]];function h(e,r,l=!1){return t`<header class="manage-header"><nav class="manage-nav" aria-label="Management pages">${c.filter(([a,,o])=>(o==null||o===r)&&(a!=="manage-links"||l)).map(([a,o])=>t`<button type="button" aria-current="${e===a?"page":i}" @click="${()=>{document.dispatchEvent(new CustomEvent("managed-admin-navigate",{detail:{view:a},bubbles:!0,composed:!0}))}}">${o}</button>`)}</nav></header>`}function v(e){if(e==="bundle")return n(d);if(e==="report"||e==="preview")return n(m);if(e==="scan")return n(s);let r={users:"M10.75 4.75a2.75 2.75 0 1 1-5.5 0 2.75 2.75 0 0 1 5.5 0ZM3 14v-1.5A3.5 3.5 0 0 1 6.5 9h3a3.5 3.5 0 0 1 3.5 3.5V14",team:"M8.5 5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0ZM1.5 14v-1.5A3.5 3.5 0 0 1 5 9h2a3.5 3.5 0 0 1 3.5 3.5V14M11 2.75a2.5 2.5 0 0 1 0 4.5m1 2a3 3 0 0 1 2.5 3V14",repo:"M3 12.5V3a1.5 1.5 0 0 1 1.5-1.5H13v13H4.5a1.5 1.5 0 0 1 0-3H13M7 1.5v6l2-1.5 2 1.5v-6",history:"M2 5a6.25 6.25 0 1 1-.25 5M1.5 1.5V5H5M8 4.5V8l3 1.5",arrow:"M3 8h10M9 4l4 4-4 4",show:"M1 8s2.5-4.5 7-4.5S15 8 15 8s-2.5 4.5-7 4.5S1 8 1 8Zm9 0a2 2 0 1 0-4 0 2 2 0 0 0 4 0",hide:"m2 2 12 12M6 3.75A8 8 0 0 1 8 3.5c4.5 0 7 4.5 7 4.5a12 12 0 0 1-2 2.5M3.5 5A13 13 0 0 0 1 8s2.5 4.5 7 4.5a8 8 0 0 0 3-.6",download:"M8 2v8M5 7l3 3 3-3M2 11v3h12v-3",upload:"M8 11V2m-3 3 3-3 3 3M2 10v4h12v-4"};return t`<svg class="${e==="repo"?"repo-icon":i}" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="${r[e]??r.repo}"></path></svg>`}var w=`:host{display:flex;flex-direction:column;position:relative;padding:0 clamp(1rem,3vw,3rem) 3rem;color:var(--text);container-type:inline-size;font-family:var(--sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:.875rem;line-height:1.5;--panel:color-mix(in srgb, var(--bg) 50%, var(--surface));--panel-hover:color-mix(in srgb, var(--text) 3%, var(--panel))}*,*:before,*:after{box-sizing:border-box}button,summary,select,label,legend,h1,h2,h3,.section-heading,.ui-hint,.page-intro>.intro,.count,.result-count,.repository-count,.breadcrumb-separator,.list-head,.report-list-head,.history-head,.bundle-group-head,.drop-copy,.local-import-copy,.location-field>span,.empty:not(.error,[role=alert]),.msg:not(.error,[role=alert]),.local-import-message:not(.error,[role=status]),.data-empty,.revision-empty{cursor:default;user-select:none;-webkit-user-select:none}input:not([type=checkbox],[type=radio]),textarea,[contenteditable],pre,code,.mono{cursor:text;user-select:text;-webkit-user-select:text}.wrap{width:100%;max-width:76rem;margin:0 auto;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:none;scrollbar-gutter:stable}.manage-header{position:sticky;top:0;z-index:2}.wrap:has(>.manage-list){display:flex;flex-direction:column;overflow:hidden;scrollbar-gutter:auto}.wrap:has(>.manage-list)>:not(.manage-list){flex:none}.manage-list{position:relative;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.manage-nav button{flex:0 0 auto;position:relative;min-height:3.7rem;padding:.9rem 0;border:0;border-radius:0;color:var(--muted);background:none;font-size:.8rem;font-weight:500;white-space:nowrap}.manage-nav button:hover,.manage-nav button[aria-current=page]{color:var(--text)}.manage-nav button[aria-current=page]:after{content:"";position:absolute;bottom:.6rem;inset-inline:0;height:2px;background:var(--accent);border-radius:var(--ui-radius, 2px)}.manage-nav button:focus-visible{outline-offset:-3px}.head{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem;margin:0 0 .5rem}h1,.head h1{margin:0;font-size:1.9rem;font-weight:600;letter-spacing:-.045em;line-height:1.2}.count{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;padding:.12rem .5rem;border:1px solid var(--border);border-radius:6px;color:var(--muted);background:var(--surface);font-size:.73rem;font-weight:500;font-variant-numeric:tabular-nums}button,input,select{font:inherit}button,select,input[type=checkbox]{cursor:default}button,a,input,select{-webkit-app-region:no-drag}button,a{transition:background .15s,color .15s,border-color .15s}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled,select:disabled{opacity:.45}input:not([type=checkbox]),select{min-width:0;min-height:2.25rem;padding:.45rem .65rem;border:1px solid var(--border);border-radius:var(--ui-radius, 7px);background:var(--bg);color:var(--text);font-size:.8rem}input::placeholder{color:var(--muted)}input[type=checkbox]{accent-color:var(--accent)}.btn,.drop-browse{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.25rem;height:auto;padding:.45rem .8rem;border:1px solid var(--border);border-radius:var(--ui-radius, 7px);background:var(--surface);color:var(--text);font-size:.8rem;font-weight:500;text-decoration:none;white-space:nowrap}.btn:hover:not(:disabled),.drop-browse:hover:not(:disabled){background:var(--surface-active);border-color:var(--muted)}.btn.primary,.drop-browse{color:var(--bg);background:var(--accent);border-color:var(--accent)}.btn.primary:hover:not(:disabled),.drop-browse:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.btn svg,.icon-btn svg{width:1rem;height:1rem}.icon-btn{width:2rem;height:2rem}.avatar{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg));border:1px solid color-mix(in srgb,var(--accent) 16%,var(--border))}.breadcrumb{display:flex;align-items:center;flex-basis:100%;gap:.4rem;margin-bottom:.8rem}.breadcrumb-manage{padding:.1rem 0;border:0;background:transparent;color:var(--muted);font-size:.78rem}.breadcrumb-manage:hover{color:var(--text)}.breadcrumb-separator{color:var(--muted)}.msg{margin:1rem 0;padding:1.1rem 1.25rem;border:1px solid var(--border);border-radius:var(--ui-radius, 9px);color:var(--muted);font-size:.85rem}.msg.error{color:var(--critical);border-color:color-mix(in srgb,var(--critical) 35%,var(--border))}.empty{padding:3.5rem 1.5rem;border:1px dashed var(--border);border-radius:var(--ui-radius, 10px);color:var(--muted);text-align:center}.empty strong{display:block;margin-bottom:.4rem;color:var(--text);font-size:.95rem;font-weight:500}.empty p{margin:0;font-size:.85rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@container (max-width: 35rem){.drop-copy>span{display:none}.manage-nav{gap:1.2rem;margin-bottom:1.75rem}.manage-nav button{min-height:3.25rem}h1,.head h1{font-size:1.65rem}.intro{margin-bottom:1.5rem}}@media(prefers-reduced-motion:reduce){button,a{transition:none}}.collection-toolbar input{flex:1;max-width:26rem;min-width:10rem}.collection-toolbar select{min-width:10rem}.result-count{text-align:right;white-space:nowrap;margin-left:auto;color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums}@container (max-width: 35rem){.collection-toolbar input{flex-basis:100%;max-width:none}}.manage-nav{display:flex;gap:1.35rem;align-items:stretch;overflow-x:auto;scrollbar-width:thin;border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding:0 .1rem}.wrap>:not(.manage-header),.manage-nav{-webkit-app-region:no-drag;app-region:no-drag}@media(display-mode:window-controls-overlay){.manage-header{display:flow-root}.manage-header:before{content:"";float:right;width:var(--wco-right-toolbar, 0px);height:var(--wco-titlebar-height)}.manage-nav{width:max-content;max-width:100%;border-bottom:0}.manage-nav button{min-height:var(--wco-titlebar-height);padding-block:.35rem}.manage-nav button[aria-current=page]:after{bottom:0}}.intro{margin:0 0 1.25rem;max-width:46rem;color:var(--muted);font-size:.875rem;line-height:1.65}.collection-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:.85rem}.page-intro{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1.25rem}.page-intro .intro{margin:0}.page-intro>.btn{margin-block:calc(-.45rem - 1px)}a{cursor:default}.loading-rows{border:1px solid var(--border);border-radius:var(--ui-radius, 10px);overflow:hidden}.loading-row{display:grid;align-content:center;gap:.6rem;min-height:4.25rem;padding:.85rem 1rem}.loading-row+.loading-row{border-top:1px solid var(--border)}.loading-row span{width:40%;height:.65rem;border-radius:3px;background:color-mix(in srgb,var(--muted) 15%,transparent)}.loading-row span+span{width:65%;height:.5rem}.drop-card{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.7rem .85rem;border:1px dashed color-mix(in srgb,var(--muted) 35%,var(--border));border-radius:var(--ui-radius, 8px);background:var(--panel)}.drop-icon{display:grid;place-items:center;flex-shrink:0;width:1.8rem;height:1.8rem;color:var(--muted)}.drop-icon svg{width:1.1rem;height:1.1rem}.drop-copy{min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem .6rem}.drop-copy strong{font-size:.8rem;font-weight:500}.drop-copy>span{color:var(--muted);font-size:.75rem}.drop-browse{min-width:7rem;margin-left:auto;flex-shrink:0}.content-hidden .filename,.content-hidden .report-name,.content-hidden .report-uploader{color:var(--muted)}.status{display:inline-flex;align-items:center;gap:.3rem;width:fit-content;padding:.1rem .4rem;border:1px solid var(--border);border-radius:5px;color:var(--muted);font-size:.65rem}.status:before{content:"";width:.25rem;height:.25rem;border-radius:50%;background:currentcolor}.status.visible{color:var(--green);border-color:rgb(from var(--green) r g b / .2);background:rgb(from var(--green) r g b / .06)}
|
|
2
|
+
`;export{h as a,v as b,w as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function n(t){return typeof t=="string"&&/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/u.test(t)?t:null}export{n as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{b as w,c as f,j as m,l as k}from"./chunk-WZDTZE64.js";import{a as h}from"./chunk-TUII34K2.js";var x=3,y=4,H=/^[\w-]{4}$/u,_=/^[\w-]{8}$/u,u="AAAA",R={report:`deepview/finding-link/report/v1
|
|
2
|
+
`,workspace:`deepview/finding-link/workspace/v1
|
|
3
|
+
`},p=new Map;function $(t,e){return`${t}\0${e}`}function I(t){return typeof t=="string"&&H.test(t)}async function T(t,e){let n=R[t];if(!n||typeof e!="string"||!e)return null;let i=$(t,e),o=p.get(i);if(o!==void 0)return o;let r;try{let s=await crypto.subtle.digest("SHA-256",h(n+e));r=new Uint8Array(s).slice(0,x).toBase64({alphabet:"base64url",omitPadding:!0})}catch{return null}return p.set(i,r),r}function E(t,e){return typeof e!="string"||!e?null:p.get($(t,e))??null}function N(t,e){let n=[];for(let[i,o]of[["report",t],["workspace",e]]){if(o==null||o===""){n.push(u);continue}if(!I(o))throw new TypeError(`encodeFindingRef: ${i} must be a link hint token, not a name`);n.push(o)}return n.every(i=>i===u)?null:n[0]===u?`w${n[1]}`:n.join("")}function b(t){let e=[t.slice(0,y),t.slice(y)].map(n=>n===u?null:n);return{report:e[0],workspace:e[1]}}function a({id:t,report:e,workspace:n}={}){if(!f(t))throw new TypeError("encodeFindingRef: a persistent finding id is required");let i=[`finding=${encodeURIComponent(t)}`],o=N(e,n);return o&&i.push(`v=${o}`),i.join("&")}function O(t,e){let n=a(t);return typeof location>"u"?`${e??""}#${n}`:`${location.origin}${e??location.pathname}#${n}`}function A(t){let e=typeof t=="string"?t:typeof location>"u"?"":location.hash;if(!e)return null;let n=e.replace(/^#/u,"");if(!n)return null;let i={id:null,report:null,workspace:null};for(let o of n.split("&")){let r=o.indexOf("=");if(r<0)continue;let s=o.slice(0,r),c=o.slice(r+1);if(!c)continue;if(s==="v"){if(c.length===5&&c[0]==="w"&&I(c.slice(1))){let g=c.slice(1);Object.assign(i,{report:null,workspace:g===u?null:g});continue}if(!_.test(c))continue;Object.assign(i,b(c));continue}if(s!=="finding"||c.length>w*3)continue;let d;try{d=decodeURIComponent(c)}catch{continue}f(d)&&(i.id=d)}return i.id?i:null}function U(t,{managed:e=!1}={}){if(typeof location>"u")return null;let n;try{n=new URL(t)}catch{return null}if(n.href!==t||n.protocol!==location.protocol||n.host!==location.host||n.username||n.password)return null;let i=k(n);if(i?.finding)return{id:i.finding.id,fragment:a(i.finding),path:m(i)};if(e&&i?.view!=="home"&&!/\/(?:index|view)\.html$/u.test(n.pathname))return null;let o=A(n.hash);if(!o)return null;let r=a(o);return{id:o.id,fragment:r,path:`/#${r}`}}function l(t,e){if(typeof t!="string")return!1;let n=t.replaceAll("\\","/");return n.startsWith(`${e}/`)||n.includes(`/${e}/`)}function C(t){let e=!1;for(let n of t){for(let i of n.groups??[])for(let o of i){if(l(o.file,"node_modules"))return"node_modules";l(o.file,"vendor")&&(e=!0)}for(let i of Object.keys(n.tree??{})){if(l(i,"node_modules"))return"node_modules";l(i,"vendor")&&(e=!0)}}return e?"vendor":"dependencies"}export{l as a,C as b,T as c,E as d,a as e,O as f,A as g,U as h};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import{d as o}from"./chunk-XYFXXB2G.js";import{b as s,c as i}from"./chunk-C4Z6ZBXV.js";import{g as r}from"./chunk-2XUEZHIP.js";var u=s(class extends i{constructor(){super(...arguments),this.key=r}render(t,e){return this.key=t,e}update(t,[e,m]){return e!==this.key&&(o(t),this.key=e),m}});export{u as a};
|
|
2
|
+
/*! Bundled license information:
|
|
3
|
+
|
|
4
|
+
lit-html/directives/keyed.js:
|
|
5
|
+
(**
|
|
6
|
+
* @license
|
|
7
|
+
* Copyright 2021 Google LLC
|
|
8
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
9
|
+
*)
|
|
10
|
+
*/
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
var T={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},_=r=>(...t)=>({_$litDirective$:r,values:t}),s=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};export{T as a,_ as b,s as c};
|
|
2
|
+
/*! Bundled license information:
|
|
3
|
+
|
|
4
|
+
lit-html/directive.js:
|
|
5
|
+
(**
|
|
6
|
+
* @license
|
|
7
|
+
* Copyright 2017 Google LLC
|
|
8
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
9
|
+
*)
|
|
10
|
+
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as W}from"./chunk-3BZ7JERB.js";import{i as B}from"./chunk-2XUEZHIP.js";import{c as k,p as R,q as I,r as $}from"./chunk-V5O7M2YT.js";var X={commit:I},O=8;function nt(t){let n;try{n=t?JSON.parse(t):null}catch{return null}let e=s=>typeof s=="string"&&s?s:null;return n&&{tags:Array.isArray(n.tags)?n.tags.filter(e):[],details:typeof n.title=="string"?{title:n.title,authorName:e(n.authorName),authorLogin:e(n.authorLogin),date:Number.isSafeInteger(n.date)?n.date:null}:null}}function ot({title:t,authorName:n,authorLogin:e,date:s}){let d=document.createElement("div");d.className="tooltip-commit-details";let f=document.createElement("span");f.className="tooltip-commit-message",f.textContent=t;let p=document.createElement("span");p.className="tooltip-commit-meta";let u=n&&e&&n!==e?`${n} (@${e})`:n??(e&&`@${e}`);return p.textContent=[u,s===null?"":new Date(s).toLocaleString(void 0,{dateStyle:"medium",timeStyle:"short"})].filter(Boolean).join(" \xB7 "),d.append(...t?[f]:[],p),d}var c;function st(){return c||(c=document.createElement("div"),c.id="styled-tooltip",c.setAttribute("popover","manual"),document.body.append(c),c)}function at(t){typeof t.showPopover=="function"&&(t.matches(":popover-open")&&t.hidePopover(),t.showPopover())}var m=null,V="",E=null,h=null,q=0,z=0,j=!1;function w(){if(!j){j=!0,document.addEventListener("mousemove",t=>{q=t.clientX,z=t.clientY},{passive:!0});for(let t of["pointerdown","wheel","scroll"])document.addEventListener(t,()=>l(),{capture:!0,passive:!0});document.addEventListener("keydown",t=>{t.key==="Escape"&&l()}),window.addEventListener("blur",()=>l())}}var it=100,ct=14,lt=8,b=8;function rt(t,{placement:n="cursor"}={}){w(),clearTimeout(E),E=null,h=null,t.prepareTooltip?.(t),n=t.dataset.tooltipPlacement??n;let e=st(),s=t.dataset.tooltip??"",d=Object.hasOwn(X,t.dataset.tooltipIcon??"")?t.dataset.tooltipIcon:"",f=t.dataset.tooltipRepo??"",p=W(t.dataset.tooltipCommit),u=nt(t.dataset.tooltipCommitInfo),v=["stasis","sourcemap"].includes(t.dataset.tooltipBundle)?t.dataset.tooltipBundle:"",C=t.dataset.tooltipStats??"",L=t.dataset.tooltipBuilt==="true",x=t.dataset.tooltipPackage??"",F=t.dataset.tooltipEcosystem??"",_=t.dataset.tooltipVersion??"",N=t.dataset.tooltipFiles??"",M=t.dataset.tooltipLoc??"",P=t.dataset.tooltipSize??"",T=t.tooltipContent??null,H=T??JSON.stringify([s,d,f,p,u,v,C,L,x,F,_,N,M,P]);if(!s){l();return}if(m===t&&V===H)return;if(e.textContent=d||T?"":s,T){let o=document.createElement("div");o.className="tooltip-rich",B(T,o),e.append(o)}if(d){let o=document.createElement("span");o.className="tooltip-text",o.innerHTML=X[d];let a=document.createElement("span");a.textContent=s,o.append(a),e.append(o)}if(x){let o=document.createElement("div");o.className="tooltip-package";let a=(t.querySelector("[data-tooltip-package-icon] svg")??t.querySelector("svg"))?.cloneNode(!0);a&&o.append(a);let i=document.createElement("span");i.className="tooltip-package-details";let r=(g,y)=>/^\d+$/u.test(g)?`${Number(g).toLocaleString()} ${y}`:"";for(let g of[x,_,r(N,N==="1"?"file":"files"),r(M,"LoC"),P].filter(Boolean)){let y=document.createElement("span");y.textContent=g,i.append(y)}o.append(i),e.append(o)}if(f||p){let o=document.createElement("div");if(o.className="tooltip-repo",f){o.innerHTML=R;let a=document.createElement("span");a.textContent=f,o.append(a)}if(p){let a=document.createElement("span");a.className="tooltip-commit",a.innerHTML=I;let i=document.createElement("span");i.textContent=p.slice(0,7),a.append(i),o.append(a)}if(e.append(o),p&&u?.tags.length){let a=document.createElement("div");a.className="tooltip-tags";for(let i of u.tags.slice(0,O)){let r=document.createElement("span");r.className="tooltip-tag",r.innerHTML=$;let g=document.createElement("span");g.textContent=i,r.append(g),a.append(r)}if(u.tags.length>O){let i=document.createElement("span");i.className="tooltip-tag-more",i.textContent=`+${(u.tags.length-O).toLocaleString()} more`,a.append(i)}e.append(a)}}if(u?.details&&e.append(ot(u.details)),v||C||L){let o=document.createElement("div");if(o.className="tooltip-bundle",v==="stasis"){let r=document.createElement("img");r.src="./stasis.svg",r.alt="",o.append(r)}else o.innerHTML=k;let a=document.createElement("span"),i=v==="stasis"?"Stasis":v==="sourcemap"?"Sourcemap":"";a.textContent=[i,L?"Built on server":"",C].filter(Boolean).join(" \xB7 "),o.append(a),e.append(o)}at(e),e.style.left="0px",e.style.top="0px",e.style.transform="none",e.classList.add("visible");let G=q,S=z+ct;if(n==="right"||n==="right-start"){let o=t.getBoundingClientRect();G=o.right+lt,S=o.top+(n==="right"?o.height/2:0)}let K=window.innerWidth-e.offsetWidth-b,Q=Math.max(b,Math.min(G,K));e.style.left=`${Math.round(Q)}px`;let A=e.offsetHeight,Z=n==="right"?S-A/2:S,tt=window.innerHeight-A-b,et=Math.max(b,Math.min(Z,tt));e.style.top=`${Math.round(et)}px`,m=t,V=H}function l(t){t&&!t.contains(m)&&!t.contains(h)||(clearTimeout(E),E=null,h=null,c&&(c.classList.remove("visible"),typeof c.hidePopover=="function"&&c.matches(":popover-open")&&c.hidePopover()),m=null)}function J(t,{gate:n,placement:e}={}){w();let s=()=>t.isConnected!==!1&&(!Object.hasOwn(t.dataset,"tooltipTruncated")||t.scrollWidth>t.clientWidth||t.scrollHeight>t.clientHeight)&&(!n||n(t));if(!s()){l();return}t===m||t===h||(l(),h=t,E=setTimeout(()=>{E=null,h=null,s()&&rt(t,{placement:e})},it))}var D=new WeakSet;function U(t,n){for(let e of t.composedPath()){if(e===n)break;if(e.nodeType===1&&Object.hasOwn(e.dataset,"tooltip"))return e}return null}function dt(t,n){!t||D.has(t)||(D.add(t),t.ownerDocument&&w(),t.addEventListener("mouseover",e=>{if(e.buttons){l();return}let s=U(e,t);if(!s){l();return}s!==m&&J(s,n)}),t.addEventListener("mouseout",e=>{let s=U(e,t),d=e.relatedTarget?.closest?.("[data-tooltip]")??null;s&&s===d||l()}),t.addEventListener("scroll",()=>l(t),{capture:!0,passive:!0}))}var Y=!1;function ft(){Y||(Y=!0,w(),document.addEventListener("tooltip-root-connected",t=>{dt(t.composedPath()[0]?.shadowRoot)}),document.body.addEventListener("mouseover",t=>{if(t.target.closest("[data-tooltip-managed]"))return;if(t.buttons){l();return}let n=t.target.closest("[data-tooltip]");!n||n===m||J(n)}),document.body.addEventListener("mouseout",t=>{t.target.closest("[data-tooltip-managed]")||t.relatedTarget?.closest?.("[data-tooltip-managed]")||!m&&!E||(m??h)?.contains(t.relatedTarget)||l()}))}export{rt as a,l as b,J as c,dt as d,ft as e};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as p}from"./chunk-CMQA4DM6.js";import{a as l,c as s,i as c,j as u}from"./chunk-2XUEZHIP.js";var v=document.querySelector("#drop-zone"),x=document.querySelector("#report"),y=document.querySelector("app-sidebar");function w(o,e){let t=URL.createObjectURL(o),r=document.createElement("span");r.style.display="none",c(s`<a href="${t}" download="${e}"></a>`,r),document.body.append(r),r.firstElementChild.click(),r.remove(),URL.revokeObjectURL(t)}function m(o){return new Error("Another dialog is already open. Close it and try again.",{cause:o})}function d(o=document){if(o.querySelector(":modal"))return!0;for(let e of o.querySelectorAll("*"))if(e.shadowRoot&&d(e.shadowRoot))return!0;return!1}var b=`a{cursor:default}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}button,summary,select,label,legend,header h3,.section-title,.ui-hint,.hint,.note,.lwd-note,.lwd-empty,.empty:not(.error,[role=alert]),.empty-discussion,.history-state[role=status],.history-summary{cursor:default;user-select:none;-webkit-user-select:none}input:not([type=checkbox],[type=radio]),textarea,[contenteditable],pre,code,.mono{cursor:text;user-select:text;-webkit-user-select:text}dialog{margin-top:5rem;margin-inline:auto;border:1px solid var(--border);border-radius:var(--ui-radius, 10px);background:var(--surface);color:var(--text);padding:1.1rem 1.25rem 1rem;max-width:480px;width:min(94vw,480px);box-shadow:0 20px 60px #00000059;&::backdrop{background:rgb(from var(--theme-bar) r g b / .55);backdrop-filter:blur(2px)}}header h3{margin:0 0 .6rem;font-size:1rem;font-weight:600}.nwd-input{display:block;width:100%;box-sizing:border-box;padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--ui-radius, 6px);background:var(--bg, var(--surface));color:var(--text);font:inherit;font-size:.88rem;&:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgb(from var(--accent) r g b / .18)}&::placeholder{color:var(--muted)}}.nwd-note{margin:.55rem 0 0;color:var(--muted);font-size:.74rem;line-height:1.45}.nwd-intro{margin:0 0 .8rem;color:var(--muted);font-size:.82rem;line-height:1.5}.nwd-actions{display:flex;align-items:center;gap:.4rem;margin-top:.8rem;padding-top:.7rem;border-top:1px solid var(--border)}.nwd-spacer{flex:1}.nwd-actions button{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:var(--ui-radius, 5px);padding:.35rem .9rem;font:inherit;font-size:.8rem;&:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}&.primary{background:var(--accent);color:var(--surface);border-color:var(--accent);&:hover:not(:disabled){color:var(--surface);filter:brightness(1.08)}}&.quiet{border-color:transparent;color:var(--muted);&:hover:not(:disabled){border-color:transparent}}&.danger{color:var(--critical, #f87171);border-color:var(--border);&:hover:not(:disabled){border-color:var(--critical, #f87171);color:var(--critical, #f87171)}}&:disabled{opacity:.5}}@media(display-mode:window-controls-overlay){dialog{-webkit-app-region:no-drag;app-region:no-drag}}
|
|
2
|
+
`;var f=class extends u{static styles=[l(b)];exclusive=!1;firstUpdated(){p(this.renderRoot),this.beforeOpen();let e=this.renderRoot.querySelector("dialog");if(e){if(this.exclusive&&d()){this._conflict(new DOMException("Another modal dialog is already open","InvalidStateError"));return}try{e.showModal()}catch(t){this._conflict(t);return}this.focusInitial()}}_conflict(e){this._settled=!0,this.dispatchEvent(new CustomEvent("modal-conflict",{detail:{cause:e}}))}beforeOpen(){}focusInitial(){(this.renderRoot.querySelector("input, textarea")??this.renderRoot.querySelector("button.primary")??this.renderRoot.querySelector("button"))?.focus()}_finish(e){this._settled||(this._settled=!0,this.renderRoot.querySelector("dialog")?.close(),this.dispatchEvent(new CustomEvent("resolve",{detail:e})))}_onClose=()=>this._finish(null);_onBackdrop=e=>{if(e.target!==e.currentTarget)return;let{left:t,right:r,top:a,bottom:n}=e.currentTarget.getBoundingClientRect();(e.clientX<t||e.clientX>r||e.clientY<a||e.clientY>n)&&this._onClose()}};function L(o,e={}){return new Promise(t=>{let r=document.createElement(o);Object.assign(r,e),r.addEventListener("resolve",a=>{r.remove(),t(a.detail)}),document.body.append(r)})}function z(o,e,t){return new Promise((r,a)=>{let n=document.createElement(o);Object.assign(n,e),n.exclusive=!0,n.addEventListener("resolve",i=>{n.remove(),r(i.detail)}),n.addEventListener("modal-conflict",i=>{t(n),n.remove(),a(m(i.detail?.cause))}),document.body.append(n)})}export{v as a,x as b,y as c,w as d,m as e,d as f,f as g,L as h,z as i};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import{a as n,b as o,c as a}from"./chunk-C4Z6ZBXV.js";import{f as r,g as s}from"./chunk-2XUEZHIP.js";var i=class extends a{constructor(t){if(super(t),this.it=s,t.type!==n.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===s||t==null)return this._t=void 0,this.it=t;if(t===r)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this._t;this.it=t;let e=[t];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}};i.directiveName="unsafeHTML",i.resultType=1;var f=o(i);export{f as a};
|
|
2
|
+
/*! Bundled license information:
|
|
3
|
+
|
|
4
|
+
lit-html/directives/unsafe-html.js:
|
|
5
|
+
(**
|
|
6
|
+
* @license
|
|
7
|
+
* Copyright 2017 Google LLC
|
|
8
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
9
|
+
*)
|
|
10
|
+
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
async function e(t){let a=await crypto.subtle.digest("SHA-512",t);return`sha512-${new Uint8Array(a).toBase64()}`}export{e as a};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
var yn=new TextEncoder;function Oe(e){if(typeof e!="string")throw new TypeError(`encodeUtf8 expects a string, got ${typeof e}`);if(!e.isWellFormed())throw new TypeError("encodeUtf8: input contains lone surrogates");return yn.encode(e)}async function xn(e){let t=typeof e=="string"?Oe(e):e,n=new Uint8Array(await crypto.subtle.digest("SHA-512",t));return`sha512-${btoa(String.fromCodePoint(...n))}`}async function Sn(e){let t=Oe(JSON.stringify(e)),n=await crypto.subtle.digest("SHA-256",t),r=new Uint8Array(n,0,16);r[6]=r[6]&15|64,r[8]=r[8]&63|128;let i=Array.from(r,o=>o.toString(16).padStart(2,"0")).join("");return`${i.slice(0,8)}-${i.slice(8,12)}-${i.slice(12,16)}-${i.slice(16,20)}-${i.slice(20,32)}`}async function Fe(e){if(typeof crypto?.subtle?.digest!="function")return null;let t=ne(e);try{return await Sn(t)}catch{return null}}function ne(e){if(e._idBasis)return e._idBasis;let{severity:t,description:n}=e;return e.fileHash?{severity:t,description:n,fileHash:e.fileHash}:e.location?{severity:t,description:n,location:e.location}:{severity:t,description:n,file:e.file,line:e.line}}var pe=new Map([["CRITICAL","critical"],["HIGH","high"],["MEDIUM","medium"],["LOW","low"],["INFO","informational"],["INFORMATIONAL","informational"],["INFORMATIVE","informative"]]);function C(e){return typeof e=="string"&&e.trim().toLowerCase()==="informative"?"informational":e}function E(e,t=e.severity){let n=C(e.severity);return n!==e.severity&&(!e.id&&!e._idBasis&&(e._idBasis=ne({...e,severity:t})),e.severity=n),e.correctedSeverity!==void 0&&(e.correctedSeverity=C(e.correctedSeverity)),e}var de={critical:"Critical",high:"High",medium:"Medium",low:"Low",high_bug:"High bug",bug:"Bug",informational:"Informational"},me={inprogress:"In progress",fixed:"Fixed",invalid:"Invalid",deleted:"Deleted",ignored:"Ignored"},Be={red:"Red",blue:"Blue",green:"Green",gray:"Gray",none:"Unmarked"},_={"claude-security":"Claude Security","codex-security":"Codex Security",deepsec:"DeepSec",piolium:"Piolium","markdown-generic":"Markdown (generic)"};function k(e){return de[C(e)]??String(e??"")}var gt=/^( *)(`{3,}|~{3,})(.*)$/u,vn=/^ {0,3}(?:#{1,6}(?:[ \t]|$)|>|([-*_])(?:[ \t]*\1){2,}[ \t]*$)/u,mt=/^ {0,3}([-*_])(?:[ \t]*\1){2,}[ \t]*$/u,wn=/^ {0,3}(?:=+|-+)[ \t]*$/u,j=/^( *)(?:[-*+]|\d{1,9}[.)]) +(?=\S)/u,bn=/^ *(?:[-*+]|\d{1,9}[.)])[ \t]*$/u,ht=/^\s*$/u,En=[[/^<(script|pre|textarea|style)(?:\s|>|$)/iu,/<\/(?:script|pre|textarea|style)>/iu,e=>`</${e[1].toLowerCase()}>`],[/^<!--/u,/-->/u,"-->"],[/^<\?/u,/\?>/u,"?>"],[/^<![A-Za-z]/u,/>/u,"<!-- -->"],[/^<!\[CDATA\[/u,/\]\]>/u,"]]>"],[/^<\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|search|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\s|\/?>|$)/iu,ht,null]],$n=/^(?:<[A-Za-z][\dA-Za-z-]*(?:\s+[:A-Z_a-z][\w.:-]*(?:\s*=\s*(?:[^\s"'<=>`]+|'[^']*'|"[^"]*"))?)*\s*\/?>|<\/[A-Za-z][\dA-Za-z-]*\s*>)\s*$/u;function ge(e,t,n=t){let r=/^ */u.exec(e)[0].length;if(r>3)return null;if(t&&n&&wn.test(e))return!0;let i=gt.exec(e);if(i&&!(i[2][0]==="`"&&i[3].includes("`")))return{fence:i[2]};let o=e.slice(r);for(let[l,a,u]of En){let p=l.exec(o);if(p)return{html:a,close:typeof u=="function"?u(p):u}}if(!t&&$n.test(o))return{html:ht,close:null};let s=mt.test(e)?null:j.exec(e);if(s&&!(t&&n&&/^ *(?:\d*[02-9]|\d+\d)[.)]/u.test(s[0]))){let l=/ +$/u.exec(s[0])[0].length;return{item:l>4?s[0].length-l+1:s[0].length}}let c=mt.test(e)||t&&n?null:bn.exec(e);return c?{item:c[0].trimEnd().length+1}:vn.test(e)||null}function I(e){return he(e).ranges}function Rn(e,t){let n=e.replace(/^(?: {0,3}> ?)+/u,""),r=ge(n,t);for(;r?.item;)n=n.slice(r.item),r=ge(n,!1);return n.trim()!==""&&!r&&/^ */u.exec(n)[0].length<4}function he(e){let t=[],n=-1,r="",i=null,o=0,s=[],c=!1,l=!1,a=!1,u=0;for(let f of e.split(`
|
|
2
|
+
`)){let m=u;u+=f.length+1;let h=/^ */u.exec(f)[0].length;if(n!==-1||i){let $=o>0&&f.trim()!==""&&h<o,w=!$&&(i?i.ends.test(f):h<=o+3&&yt(r,f));if(($||w)&&(n!==-1&&t.push([n,$?m-1:m+f.length]),n=-1,i=null),!$)continue}if(!f.trim()){a&&s.pop(),a=!1,c=!1;continue}let d=s.length;for(;d>0&&h<s[d-1];)d--;let g=d>0?s[d-1]:0,y=f.slice(g),S=ge(y,c,d===s.length&&!l);if(c&&!S)continue;for(s.length=d;S?.item;)g+=S.item,y=y.slice(S.item),s.push(g),S=ge(y,!1);a=y.trim()==="",S?.fence?[n,r,o]=[m,S.fence,g]:S?.html&&([i,o]=[S.html.test(y)?null:{ends:S.html,close:S.close},g]);let x=c&&l;l=/^ {0,3}>/u.test(y),c=l?Rn(y,x):!S&&!a&&/^ */u.exec(y)[0].length<4}n!==-1&&t.push([n,e.length]);let p=n===-1?i?.close:r;return{ranges:t,closer:p?" ".repeat(o)+p:null}}function yt(e,t){let n=gt.exec(t);return n!==null&&n[2][0]===e[0]&&n[2].length>=e.length&&!n[3].trim()}function F(e,t){let n=0,r=e.length;for(;n<r;){let i=n+r>>>1;e[i][1]<=t?n=i+1:r=i}return n<e.length&&t>=e[n][0]}function R(e){return String(e??"").replaceAll(/\r\n?/gu,`
|
|
3
|
+
`)}var ye=/^## +(.*)$/gmu,ie=/^### +(.*)$/gmu,B=/^#### +(.*)$/gmu,xt=/^##### +(.*)$/gmu,De=/^(.+):(\d+(?:-\d+)?)$/u;function W(e){return/^[0-9a-f]{7,64}$/iu.test(e)}function St(e,t){let n=I(e);return[...e.matchAll(t)].filter(r=>!F(n,r.index))}function K(e,t){let n=St(e,t);return[e.slice(0,n[0]?.index),...n.map((r,i)=>e.slice(r.index+r[0].length,n[i+1]?.index))]}function D(e,t){let n=St(e,t);return{head:e.slice(0,n[0]?.index),subs:n.map((r,i)=>({heading:r[1],body:e.slice(r.index+r[0].length+1,n[i+1]?.index)}))}}function N(e,t){return D(e,t).subs}function H(e){let t=e.indexOf(`
|
|
4
|
+
`);return t===-1?{title:e.trim(),body:""}:{title:e.slice(0,t).trim(),body:e.slice(t+1)}}function re(e){let t=e.split(`
|
|
5
|
+
`).map(r=>r.trim()).filter(r=>r.startsWith("|")&&!(/^[\s:|-]+$/u.test(r)&&r.includes("-"))).map(r=>r.replace(/^\|/u,"").replace(/\|$/u,"").split("|").map(i=>i.trim()));if(t.length<2)return[];let n=t[0].map(r=>r.toLowerCase());return t.slice(1).filter(r=>r.length!==n.length||r.some((i,o)=>i.toLowerCase()!==n[o])).map(r=>Object.fromEntries(n.flatMap((i,o)=>i?[[i,r[o]??""]]:[])))}function vt(e){let t=Object.create(null),n=Object.create(null),r=[],i=null,o="",s=[],c="",l=(p,f,m)=>{!p||p in t||(t[p]=m.trim(),n[p]=f)},a=()=>{i&&l(i,o,s.join(`
|
|
6
|
+
`)),i=null,o="",s=[]},u=p=>{(i?s:r).push(p)};for(let p of e.split(`
|
|
7
|
+
`)){let f=/^ {0,3}(```|~~~)/u.exec(p),m=f!==null&&(!c||f[1]===c);if(m&&(c=c?"":f[1]),m||c){u(p);continue}if(!p.trim()){i?a():r.push(p);continue}let h=/^\s*(?:[-*] +)?\*\*([^:*]+):\*\*\s*(.*)$/u.exec(p);if(h){a();let d=h[1].trim(),g=h[2],y;for(;(y=/\s+[·•]\s+\*\*([^:*]+):\*\*\s*/u.exec(g))!==null;)l(d.toLowerCase(),d,g.slice(0,y.index)),d=y[1].trim(),g=g.slice(y.index+y[0].length);i=d.toLowerCase(),o=d,s=[g];continue}if(/^\s*(?:#{1,6} |\||[-=*_]{3,}\s*$)/u.test(p)){a();continue}u(p)}return a(),{fields:t,labels:n,prose:r.join(`
|
|
8
|
+
`).trim()}}function wt(e){let t=(e||"").trim(),n="",r=Y(t);r&&(t=r.label.trim(),n=r.url.trim());let i=/#L(\d+)/u.exec(n)?.[1]??"",c=[...t.matchAll(/`([^`]+)`/gu)].map(u=>u[1].trim()).find(u=>!u.includes("(")&&(u.includes("/")||/\.\w/u.test(u)))??(t.replaceAll("`","").trim().split(/[\s,]+/u).find(Boolean)||""),l=/^(.*?)#L(\d+)(?:-L?\d+)?$/u.exec(c);l&&(c=l[1],i||(i=l[2]));let a=De.exec(c);return a?(i||(i=a[2]),{file:a[1],line:i,locationLink:n}):{file:c,line:i||"?",locationLink:n}}function Ne(e){return e.replaceAll("**","")}function Y(e){let t=String(e??""),n=Ln(t,An(t)),r=Cn(t),i=t.indexOf("]");for(let o=t.indexOf("[");o!==-1;o=t.indexOf("[",o+1)){for(;i!==-1&&i<=o;)i=t.indexOf("]",i+1);for(let s of[i,n.get(o)??-1]){if(s===-1||s===o+1||t[s+1]!=="(")continue;let c=_n(t,s+1,r);if(c!==null)return{label:t.slice(o+1,s),url:c,index:o}}}return null}function Ln(e,t){let n=new Map,r=[];for(let i=0;i<e.length;i++){let o=e[i];bt(e,i)?i++:o==="`"?i=t.get(i)??i:o==="["?r.push(i):o==="]"&&r.length>0&&n.set(r.pop(),i)}return n}function An(e){let t=[];for(let i=e.indexOf("`");i!==-1;i=e.indexOf("`",i)){let o=1;for(;e[i+o]==="`";)o++;t.push([i,o]),i+=o}let n=new Map,r=new Map;for(let i=t.length-1;i>=0;i--){let[o,s]=t[i],c=r.get(s);c!==void 0&&n.set(o,c+s-1),r.set(s,o)}return n}function Cn(e){let t=e.length,n=new Int32Array(t+1).fill(-1),r=new Int32Array(t+1).fill(-1),i=new Int32Array(t+1).fill(-1),o=new Int32Array(t+1).fill(-1);for(let l=t-1;l>=0;l--)n[l]=e[l]===")"?l:n[l+1],r[l]=/\s/u.test(e[l])?l:r[l+1],i[l]=e[l]===">"?l:i[l+1],o[l]=e[l]===`
|
|
9
|
+
`?l:o[l+1];let s=new Map,c=[];for(let l=0;l<t;l++){let a=e[l];bt(e,l)?l++:r[l]===l?c.length=0:a==="("?c.push(l):a===")"&&c.length>0&&s.set(c.pop(),l)}return{balanced:s,nextClose:n,nextSpace:r,nextAngle:i,nextLine:o}}function _n(e,t,n){let r=kn(e,t,n);if(r)return r;let i=n.balanced.get(t);if(i!==void 0)return i>t+1?e.slice(t+1,i):null;let o=n.nextClose[t+1],s=n.nextSpace[t+1];return o===-1||o===t+1||s!==-1&&s<o?null:e.slice(t+1,o)}function kn(e,t,n){if(e[t+1]!=="<")return"";let r=n.nextAngle[t+2],i=n.nextLine[t+2];return r===-1||i!==-1&&i<r||e[r+1]!==")"?"":e.slice(t+2,r)}var In=/\\([!-/:-@[-`{-~])/gu,Tn=/[!-/:-@[-`{-~]/u;function bt(e,t){return e[t]==="\\"&&Tn.test(e[t+1]??"")}function ze(e){return typeof e=="string"?e.replace(In,"$1"):e}function Et(e){let t=/^\[(.+)\]$/u.exec(e.trim());return t?t[1].trim():e.trim()}function U(e){let t=(e||"").trim();return/^[-–—]+$/u.test(t)?"":t}var $t={critical:6,high:5,medium:4,low:3,high_bug:2,bug:1,informational:0},Z=["critical","high","medium","low","high_bug","bug","informational"];function Rt(e){return e=C(e),e!=null&&e in $t?e:null}function xe(e){return Rt(e?.correctedSeverity)??C(e?.severity)}function Se(e){let t=Rt(e?.correctedSeverity);return t!=null&&t!==C(e?.severity)}function oe(e,t){return t==="original"?C(e?.severity):xe(e)}function je(e){let t=e?._correctedByReport;return t&&new Set(Object.values(t).map(r=>C(r?.severity))).size>1?t:null}var ve=["revalidation","refuted","unreachable","confirmed","partial","unknown"],Mn=new Set(ve);function se(e){return Mn.has(e?.revalidate)?e.revalidate:""}function On(e,t=e?.source){return Object.hasOwn(_,t)||se(e)==="revalidation"}function He(e,t=e?._source??e?.source){let n=typeof t=="string"&&t!==""&&t!=="deepview",r=n?t:e?.analyzer??e?.type??e?._analyzer;return e?.security===!0||(r==="security"||r==="dependencies")&&e?.security!==!1||n&&["critical","high","medium","low"].includes(e?.severity)}function Lt(e){return e&&e.replace(/^[^/]+\//u,"").replace(/^claude-/u,"").replaceAll("-"," ")}function Ue(e,t=!0){let n=t&&se(e)==="revalidation"?"revalidate":"";return[e?.type,n,Lt(e?.model),e?.effort,e?.exportsMode].filter(Boolean).join(" \xB7 ")}function q(e,t){if(!e)return e;let n=e;t?.exportsMode==="isolate"&&(n=n.replace(/^\((?:[^()]|\([^()]*\))*\): \[export:\s*\w+\] /u,""),n=n.replace(/^\[export:\s*\w+\] /u,""));let r=[t?.exportName,t?.methodName].filter(Boolean).map(i=>i.replaceAll(/[.*+?^${}()|[\]\\]/gu,"\\$&"));for(let i of r)n=n.replaceAll(new RegExp(`\\[export:\\s*${i}\\]\\s*`,"gu"),"");for(let i of r)n=n.replace(new RegExp(`^\\(\`?${i}\`?\\): `,"u"),"");return n}function Ve(e){let t=e?.exportName,n=e?.methodName;return t&&n&&t!==n?`${t}.${n}`:t||n||""}function J(e){return e?e.split(`
|
|
10
|
+
`).find(t=>t.trim())?.trim()??"":""}function Pe(e){return typeof e?.title=="string"?e.title.trim():""}function Q(e){return Pe(e)||J(q(e?.description,e))}function we(e){let t=q(e?.description,e)||"",n=Pe(e);if(n){let o=t.trim(),s=H(o);return{title:n,body:s.title===n?s.body.replace(/^\s+/u,""):o}}let r=t.indexOf(`
|
|
11
|
+
`);if(r<0)return{title:"",body:t};if(I(t.slice(0,r))[0]?.[0]===0)return{title:"",body:t};let i=t.slice(r+1).replace(/^\s+/u,"");return i?{title:t.slice(0,r).trim(),body:i}:{title:"",body:t}}function Fn(e){let t=Pe(e);if(!t)return q(e?.description,e)||"";let{body:n}=we(e);return n?`${t}
|
|
12
|
+
|
|
13
|
+
${n}`:t}var Bn=/^\*\*([^*\n]+):\*\*[ \t]*/u;function Ge(e){let t=[];for(let n of K(e||"",/\n{2,}/gu)){if(!n.trim())continue;let r=Bn.exec(n);if(r){t.push({label:r[1].trim(),body:n.slice(r[0].length).trim()});continue}let i=t.at(-1);i&&i.label===null?i.body+=`
|
|
14
|
+
|
|
15
|
+
${n}`:t.push({label:null,body:n})}return t}function T(e){return Number.isFinite(parseInt(e?.line,10))?`${e.file}:${e.line}`:e?.file??""}function We(e){let t=n=>typeof n=="string"?n:"";return`${t(e?.observation)}
|
|
16
|
+
${t(e?.text)}`.trim()}function A(e){if(typeof e!="string"||e.length===0)return!1;try{let t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}function Ke(e){return String(e??"").replaceAll(/\s*\n\s*/gu," ").replaceAll("|","\\|").trim()}function b(e){let t=String(e??"");if(t==="")return"";let n=Math.max(0,...[...t.matchAll(/`+/gu)].map(o=>o[0].length)),r="`".repeat(n+1),i=t.startsWith("`")||t.endsWith("`")?" ":"";return`${r}${i}${t}${i}${r}`}function At(e){return String(e??"").replaceAll(/[[\]]/gu,"\\$&")}function V(e,t){let n=/[\s()<>]/u.test(t)?`<${t.replaceAll(">","%3E")}>`:t;return`[${e}](${n})`}function be(e){return A(e)?`<${e}>`:String(e??"")}function Ct(e,t){let n=String(e??"").toLowerCase().replaceAll(/[^\p{L}\p{N}\p{M}\s_-]/gu,"").replaceAll(/\s/gu,"-"),r=n;for(let i=1;t.has(r);i++)r=`${n}-${i}`;return t.add(r),r}function M(e,t){return`${"#".repeat(Math.min(6,Math.max(1,e)))} ${t}`}function Ye(e,t,n=[]){let r=e.map((i,o)=>n[o]==="right"?"---:":"---");return[e,r,...t].map(i=>`| ${i.join(" | ")} |`).join(`
|
|
17
|
+
`)}function _t(e){let t=e instanceof Date?e:new Date(e);if(Number.isNaN(t.getTime()))return"";let n=r=>String(r).padStart(2,"0");return`${t.getUTCFullYear()}-${n(t.getUTCMonth()+1)}-${n(t.getUTCDate())} ${n(t.getUTCHours())}:${n(t.getUTCMinutes())} UTC`}function X(e,t,n=`${t}s`){return`${e} ${e===1?t:n}`}function ce(e){return e.filter(t=>typeof t=="string"&&t.trim()).map(t=>t.replace(/\s+$/u,"")).join(`
|
|
18
|
+
|
|
19
|
+
`)}var Dn=/^( {0,3})(\\*#)/u;function ee(e){let t=R(e).trim();if(!t)return"";let n=kt(t,i=>i.replace(Dn,"$1\\$2")),{closer:r}=he(n);return r===null?n:`${n}
|
|
20
|
+
${r}`}function kt(e,t){let n=I(e),r=0;return e.split(`
|
|
21
|
+
`).map(i=>{let o=r;return r+=i.length+1,F(n,o)?i:t(i)}).join(`
|
|
22
|
+
`)}function P(e){return kt(String(e??""),t=>t.replace(/^( {0,3})\\(\\*#)/u,"$1$2"))}function It(e,t){let n=" ".repeat(e.length);return t.split(`
|
|
23
|
+
`).map(r=>r?n+r:"").join(`
|
|
24
|
+
`)}var Nn=/^## ([A-Z][A-Z_]*)\s*\(\d+\)\s*\n/mu,zn=new Map([...pe,["HIGH_BUG","high_bug"],["BUG","bug"]]),Ot=e=>String(e??"").toLowerCase().replaceAll(/[^a-z]+/gu,""),Tt=new Map([["high",8],["medium",6],["low",4]]);function jn(e){if(e!==void 0)return Tt.get(Ot(e))??Tt.get("medium")}var Hn=new Map([["confirmed","confirmed"],["falsepositive","refuted"],["uncertain","unknown"]]);function Ft(e){let n=R(e).trim().split(Nn);if(n.length===1)return null;let r=[];for(let i=1;i<n.length;i+=2){let o=zn.get(n[i].toUpperCase())??"medium";for(let s of K(n[i+1],/^### /gmu).slice(1)){let c=Mt(s,o);if(!c)continue;let l=s.indexOf(`
|
|
25
|
+
### `);l!==-1&&(c._idBasis=ne(Mt(s.slice(0,l+1),o))),r.push(c)}}return r.length===0?null:{type:"security",source:"deepsec",findings:r}}function Mt(e,t){let{title:n,body:r}=H(e);if(!n)return null;let i=r.replace(/\n---\s*$/u,"").trim(),o=Object.fromEntries([...i.matchAll(/^- \*\*([^:*]+):\*\*\s*(.+)$/gmu)].map(g=>[g[1].trim().toLowerCase(),g[2].trim()])),s=/^\*\*Recommendation:\*\*\s*/mu.exec(i),c=s?i.slice(0,s.index):i,l=s?i.slice(s.index+s[0].length).trim():"",a=c.split(`
|
|
26
|
+
`).filter(g=>!/^\s*- \*\*/u.test(g)).join(`
|
|
27
|
+
`).replaceAll("**","").trim(),u=[n,a].filter(Boolean).join(`
|
|
28
|
+
|
|
29
|
+
`),p=(o.file||"unknown").replace(/^`(.*)`$/u,"$1"),f=(o.lines||"").split(",").map(g=>g.trim()).find(Boolean)||"?",m={file:p,line:f,severity:t,description:u};l&&(m.recommendation=l.replaceAll("**",""));let h=jn(o.confidence);h!==void 0&&(m.confidence=h);let d=Hn.get(Ot(o.revalidation));return d&&(m.revalidate=d,m.revalidateSource="deepsec",o.reasoning&&(m.revalidateVerdict=o.reasoning.replaceAll("**",""))),o.slug&&(m.slug=o.slug),E(m,t==="informative"?"medium":t)}var Bt=["type","model","think","effort","exportsMode"];function Un(e,t){if(!t.source)for(let n of Bt)e[n]==null&&t[n]!=null&&(e[n]=t[n])}var Vn=/^(?:https?:\/\/)?(?:www\.)?github\.com\/([^/?#]+)\/([^/?#]+?)(?:\.git)?(?:[/?#].*)?$/iu,Pn=/^[\w.-]+\/[\w.-]+$/u;function le(e){return Pn.test(e)}function Gn(e){let t=e?.repo?.github;if(typeof t!="string")return null;let n=t.trim().replace(/\/+$/u,"");if(!n)return null;let r=Vn.exec(n),i=(r?`${r[1]}/${r[2]}`:n).replace(/\.git$/u,"");return le(i)?i:null}function Wn(e){let n=(typeof e?.directory=="string"?e.directory.trim():"").replace(/^(?:\.\/)+/u,"").replaceAll(/^\/+|\/+$/gu,"").replaceAll(/\/{2,}/gu,"/");return!n||n==="."||/[?#]/u.test(n)||n.split("/").includes("..")?"":n}var Ze=120;function zt(e){let t=Q(e)||T(e)||"Untitled finding";return t.length>Ze?`${t.slice(0,Ze-1).trimEnd()}\u2026`:t}function qe(e){let t=String(e??"").trim();return A(t)?be(t):le(t)?V(t,`https://github.com/${t}`):t}function jt(e,t,n){return t?_[t]??String(t):Ue(e,n)}var Je=[["Impact","impact",!1],["Reproduction","reproduction",!1],["Recommendation","recommendation",!1],["Confidence reasoning","confidenceReason",!1],["Revalidation verdict","revalidateVerdict",!0],["Revalidation recommendation","revalidateRecommendation",!0]],Qe=[["Status","status"],["Branch","branch"],["Date created","dateCreated"],["Detected at","detectedAt"],["Committed at","committedAt"],["PoC status","pocStatus"],["Variant of","parent"],["Slug","slug"],["Priority","priority"]],Xe=[["Detailed report","reportPath"],["Commit audited","auditedCommit"],["ID","id"]];function O(e){return typeof e=="number"?Number.isFinite(e)?String(e):"":typeof e=="string"?e.replaceAll(/\s*\n\s*/gu," ").trim():""}function Dt(e){return typeof e=="string"?e.trim():""}function Kn(e,t){let n=t.severityMode==="original",r=k(oe(e,t.severityMode));Se(e)&&(r+=n?` \u2014 corrected to ${k(xe(e))}`:` \u2014 corrected from ${k(e.severity)}`);let i=je(e);if(i){let o=Object.entries(i).map(([s,c])=>`${s||"this report"}: ${k(c?.severity)}`);r+=` (varies across reports \u2014 ${o.join("; ")})`}return e.critical===!0&&(r+=" \xB7 flagged critical by the analyzer"),r}function Yn(e,t){let n=T(e);if(!n)return"";let r=t.hooks.location(e),i=A(r)?V(b(n),r):b(n),o=Ve(e);return o?`${i} \xB7 ${b(o)}`:i}function Zn(e){if(!e)return"";let t=[],n=me[e.triage]??(e.ignored?me.ignored:"");return n&&t.push(n),e.color&&t.push(`${Be[e.color]??e.color} mark`),e.flagged===!0&&t.push("Flagged"),t.join(" \xB7 ")}function qn(e,t){let n=O(e.commitHash);if(!n)return"";let r=t.hooks.commit(e);return A(r)?V(b(n.slice(0,7)),r):b(n)}function Jn(e,t,n){let r=[],i=(p,f)=>{f&&r.push(`- **${p}:** ${f}`)};i("Location",Yn(e,t)),i("Severity",Kn(e,t)),e.confidence!==void 0&&e.confidence!==null&&i("Confidence",`${e.confidence}/10`),t.showAnalyzer&&i("Analyzer",t.analyzerOf(e)),i("Category",O(e.category));let o=t.revalidation?se(e):"";o&&i("Revalidation",o==="revalidation"?"the revalidation pass itself":o);let s=O(e.revalidateSource);o&&i("Revalidated by",_[s]??s),i("Triage",Zn(n)),n?.fix&&i("Fix",be(String(n.fix).trim())),t.showReport&&i("Report",b(t.hooks.report(e)??""));let c=O(e.repo?.github);c&&c!==t.repo&&i("Repository",qe(c)),i("Introduced in",qn(e,t));let l=O(e.discoveredIn);l&&l!==String(e.file??"").trim()&&i("Found while analyzing",b(l));let a=e.package?.npm,u=O(a?.name);u&&i("Package",b(O(a.version)?`${u}@${O(a.version)}`:u));for(let[p,f]of Qe)i(p,O(e[f]));for(let[p,f]of Xe)i(p,b(O(e[f])));return r.join(`
|
|
30
|
+
`)}function Ee(e,t,n){let r=ee(n);return r?`${M(e,t)}
|
|
31
|
+
|
|
32
|
+
${r}`:M(e,t)}function Qn(e,t){return(Array.isArray(e.evidence)?e.evidence:[]).map((r,i)=>{let o=`${i+1}. `,s=T(r),c=t.hooks.evidence(r,e,i),l="";s?l=A(c)?V(b(s),c):b(s):A(c)&&(l=be(c));let a=ee(We(r)),u=o+(l||"(no reference)");return a?`${u}
|
|
33
|
+
|
|
34
|
+
${It(o,a)}`:u}).join(`
|
|
35
|
+
|
|
36
|
+
`)}function Xn(e,t,n){let r=we(e),i=R(r.body),o=Q(e),s=o.length>Ze,c=!s&&!r.title&&i.trim()===o,l=s&&J(i)!==o?`${o}
|
|
37
|
+
|
|
38
|
+
${i}`:i,a=Ge(c?"":l),u=a.findIndex(d=>d.label!==null),p=u===-1?a:a.slice(0,u),f=u===-1?[]:a.slice(u),m=p.map(d=>ee(d.body)),h=Qn(e,t);h&&m.push(`${M(n,"Evidence")}
|
|
39
|
+
|
|
40
|
+
${h}`);for(let d of f)m.push(d.label===null?ee(d.body):Ee(n,d.label,d.body));return m}function Nt(e,t,n){let r=t.hooks.annotation(e),i=[Jn(e,t,r),...Xn(e,t,n)];for(let[s,c,l]of Je){if(l&&!t.revalidation)continue;let a=e[c],u=typeof a=="string"?q(a,e):"";u.trim()&&i.push(Ee(n,s,u))}Se(e)&&Dt(e.correctedSeverityReason)&&i.push(Ee(n,"Severity correction",e.correctedSeverityReason));let o=Dt(r?.comment);return o&&i.push(Ee(n,"Comment",o)),i}function Ht(e,t,{headingText:n,depth:r}){let i=[M(r,n)];if(e.length===1)return ce([...i,...Nt(e[0],t,r+1)]);let o=[...new Set(e.map(l=>t.hooks.report(l)).filter(Boolean))],s=o.length>1?` \u2014 reported in ${o.map(l=>b(l)).join(", ")}`:"";i.push(`${X(e.length,"case")} of this finding${s}.`);let c=Q(e[0]);return e.forEach((l,a)=>{let u=T(l);i.push(M(r+1,`Case ${a+1} of ${e.length}${u?` \u2014 ${b(u)}`:""}`));let p=Q(l);p&&p!==c&&i.push(ee(p)),i.push(...Nt(l,t,r+2))}),ce(i)}var ei=new Map(Object.entries(de).map(([e,t])=>[t.toLowerCase(),e])),Vt=new Map(Object.entries(_).map(([e,t])=>[t.toLowerCase(),e]));function G(e){let t=/(`+)(.+?)\1(?!`)/u.exec(String(e??""));if(!t)return null;let n=t[2];if(n.length>2&&n.startsWith(" ")&&n.endsWith(" ")){let r=n.slice(1,-1);if(r.startsWith("`")||r.endsWith("`"))return r}return n}function Re(e){let t=Y(String(e??""));return t?.index===0?{label:t.label,url:t.url}:null}function Pt(e){let t=/^<(https?:[^>\s]*)>$/u.exec(e.trim());return t?t[1]:null}function Gt(e){let t=De.exec(e);return t?{file:t[1],line:t[2]}:{file:e,line:"?"}}function ti(e){let t=e.indexOf(".");return t>0?{exportName:e.slice(0,t),methodName:e.slice(t+1)}:{exportName:e}}function $e(e){let t=String(e??"").trim();return ei.get(t.toLowerCase())??t}function ni(e){let t={},n=e.trim(),r=/ · (`+)(.+?)\1$/u.exec(n);r&&(Object.assign(t,ti(G(r[0]))),n=n.slice(0,r.index));let i=Re(n),o=G(i?i.label:n);return o!==null&&Object.assign(t,Gt(o)),i&&A(i.url)&&(t.location=i.url),t}var Ut=" \xB7 flagged critical by the analyzer",ii=" (varies across reports \u2014 ";function ri(e){let t={},n=e.trim();n.endsWith(Ut)&&(t.critical=!0,n=n.slice(0,-Ut.length));let r=n.indexOf(ii);r!==-1&&(n=n.slice(0,r));let i=/^(.*?) — corrected (from|to) (.*)$/u.exec(n);return i?[t.severity,t.correctedSeverity]=(i[2]==="from"?[i[3],i[1]]:[i[1],i[3]]).map($e):t.severity=$e(n),t}var oi=new Set(["max","xhigh","high","medium","low","minimal"]),si=new Set(["list","isolate"]);function ci(e){return/\d/u.test(e)||/^(?:opus|sonnet|haiku|gpt|gemini|fable|mythos|llama|mistral)\b/iu.test(e)}function Le(e){let t=e.trim(),n=Vt.get(t.toLowerCase());if(n)return{source:n};let r={},i=[];for(let o of t.split(" \xB7 ").map(s=>s.trim()).filter(Boolean))o==="revalidate"&&!r.revalidate?r.revalidate="revalidation":si.has(o)&&!r.exportsMode?r.exportsMode=o:oi.has(o)&&!r.effort?r.effort=o:i.push(o);return i.length>1?[r.type,r.model]=i:i.length===1&&(r[ci(i[0])?"model":"type"]=i[0]),{run:r}}function et(e){let t=e.trim(),n=Re(t);return n?n.label.trim():Pt(t)??t}function li(e){let t=Re(e.trim());if(t){let n=t.url.split("/").at(-1)??"";return W(n)?n:G(t.label)??n}return G(e)??e.trim()}function ai(e){let t=G(e)??e.trim(),n=t.lastIndexOf("@");return{npm:n>0?{name:t.slice(0,n),version:t.slice(n+1)}:{name:t}}}function ui(e){let t=e.trim().toLowerCase();return t==="the revalidation pass itself"?"revalidation":ve.includes(t)?t:void 0}var fi=new Map([...[["Category","category"],...Qe].map(([e,t])=>[e.toLowerCase(),(n,r)=>{n[t]=r}]),...[...Xe,["Found while analyzing","discoveredIn"]].map(([e,t])=>[e.toLowerCase(),(n,r)=>{n[t]=G(r)??r}]),["location",(e,t)=>Object.assign(e,ni(t))],["severity",(e,t)=>Object.assign(e,ri(t))],["confidence",(e,t)=>{let n=/^(\d+(?:\.\d+)?)\/10$/u.exec(t);n&&(e.confidence=Number(n[1]))}],["revalidation",(e,t)=>{let n=ui(t);n&&(e.revalidate=n)}],["revalidated by",(e,t)=>{let n=t.trim();n&&(e.revalidateSource=Vt.get(n.toLowerCase())??n)}],["repository",(e,t)=>{e.repo={github:et(t)}}],["introduced in",(e,t)=>{e.commitHash=li(t)}],["package",(e,t)=>{e.package=ai(t)}],["priority",(e,t)=>{e.priority=/^-?\d+(?:\.\d+)?$/u.test(t)?Number(t):t}]]);function Wt(e,t,n){let r=fi.get(t.trim().toLowerCase());r&&r(e,n.trim())}var pi=/^- \*\*([^*\n]+?):\*\* ?(.*)$/u;function Kt(e){let t=e.split(`
|
|
41
|
+
`),n=0,r=()=>{for(;n<t.length&&!t[n].trim();)n++},i=()=>{let c=[];for(let l;(l=pi.exec(t[n]??""))!==null;n++)c.push([l[1].trim(),l[2].trim()]);return c};r();let o=i();if(o.length>0)return{title:"",facts:o,rest:t.slice(n).join(`
|
|
42
|
+
`)};let s=[];for(;n<t.length&&t[n].trim();)s.push(t[n++]);return r(),o=i(),o.length===0?{title:"",facts:o,rest:e}:{title:P(s.join(`
|
|
43
|
+
`).trim()),facts:o,rest:t.slice(n).join(`
|
|
44
|
+
`)}}var di=/^(\d+)\. (.*)$/u;function Yt(e){let t=[],n=I(e),r=0;for(let i of e.split(`
|
|
45
|
+
`)){let o=F(n,r)?null:di.exec(i);r+=i.length+1,o?t.push({ref:o[2].trim(),indent:o[1].length+2,note:[]}):t.length>0&&t.at(-1).note.push(i)}return t.map(i=>mi(i))}function mi({ref:e,indent:t,note:n}){let r={},i=Re(e),o=Pt(e),s=o===null?G(i?i.label:e):null;s!==null&&Object.assign(r,Gt(s));let c=i?i.url:o;A(c)&&(r.url=c);let l=P(n.map(a=>a.slice(Math.min(t,/^ */u.exec(a)[0].length))).join(`
|
|
46
|
+
`).trim());return l&&(r.text=l),r}var Zt=new Map(Je.map(([e,t])=>[e.toLowerCase(),t])),gi=[...Zt.keys()];function qt(e){let t=e.length,n=1/0;for(let r=e.length-1;r>=0;r--){let i=gi.indexOf(e[r].label.toLowerCase());if(i===-1||i>=n)break;n=i,t=r}return{paragraphs:e.slice(0,t),fields:e.slice(t).map(r=>[Zt.get(r.label.toLowerCase()),r.body])}}function Jt(e,t,n){let r=[],i=J(t),o=e.endsWith("\u2026")?e.slice(0,-1).trimEnd():"";!e||i===e||o&&i.startsWith(o)?r.push(t):r.push(e,t);for(let{label:s,body:c}of n)r.push(c?`**${s}:** ${c}`:`**${s}:**`);return r.filter(Boolean).join(`
|
|
47
|
+
|
|
48
|
+
`)}var hi=/^<!--\s*DeepView findings export\b[^>]*-->/u,yi=/^Case \d+ of \d+(?:\s|$)/u,xi=/^- \*\*([^*\n]+?):\*\* ?(.*)$/gmu,Si=new Set(["evidence","severity correction","comment"]);function Xt(e){let t=R(e).trim();if(!hi.test(t))return null;let{head:n,subs:r}=D(t,ye),i=[];for(let{heading:o,body:s}of r){if(o.trim().toLowerCase()==="summary")continue;let c=vi(o);for(let l of N(s,ie))i.push(bi(l,c))}return $i(wi(n),i)}function vi(e){let t=/^(.*?)\s*\(\d+\)\s*$/u.exec(e.trim());return $e(t?t[1]:e)}function wi(e){let t=new Map;for(let n of e.matchAll(xi)){let r=n[1].trim().toLowerCase();t.has(r)||t.set(r,n[2].trim())}return{sources:(t.get("source")??"").split(",").map(n=>Le(n).source).filter(Boolean),analyzers:(t.get("analyzer")??t.get("analyzers")??"").split(";").map(n=>n.trim()).filter(Boolean),repo:t.has("repository")?et(t.get("repository")):""}}function bi({heading:e,body:t},n){let r=e.trim().replace(/^\d+\.\s+/u,""),i=N(t,B).filter(o=>yi.test(o.heading.trim()));return i.length===0?[Qt(t,B,r,n)]:i.map(o=>Qt(o.body,xt,r,n))}function Qt(e,t,n,r){let{title:i,facts:o,rest:s}=Kt(e),{head:c,subs:l}=D(s,t),a=l.map(x=>({label:x.heading.trim(),body:x.body.trim()})),u={file:"unknown",line:"?"},p=null;for(let[x,$]of o)x.trim().toLowerCase()==="analyzer"?p=Le($):Wt(u,x,$);u.severity||(u.severity=r||"medium");let f=i||n,m=f!=="Untitled finding"&&f!==T(u),h=a.filter(x=>!Si.has(x.label.toLowerCase())).map(x=>({label:x.label,body:P(x.body)})),{paragraphs:d,fields:g}=qt(h);u.description=Jt(m?f:"",P(c.trim()),d);let y=a.filter(x=>x.label.toLowerCase()==="evidence").flatMap(x=>Yt(x.body));y.length>0&&(u.evidence=y);for(let[x,$]of g)u[x]=$;let S=a.find(x=>x.label.toLowerCase()==="severity correction");return S?.body&&(u.correctedSeverityReason=P(S.body)),{finding:E(u),analyzer:p}}function Ei(e,t){let n={source:null,run:{}};if(t.some(i=>i.analyzer!==null)){let i=new Set(t.map(o=>o.analyzer?.source??null));i.size===1&&!i.has(null)&&([n.source]=i);for(let o of t)o.analyzer?.run?Object.assign(o.finding,o.analyzer.run):o.analyzer?.source&&!n.source&&(o.finding.source=o.analyzer.source);return n}let r=e.analyzers.length===1?Le(e.analyzers[0]):null;return r?.source?n.source=r.source:r?.run?n.run=r.run:e.analyzers.length===0&&e.sources.length===1&&([n.source]=e.sources),n}function $i(e,t){let n=t.flat(),{source:r,run:i}=Ei(e,n),o={},s=new Set(n.map(a=>a.finding.type).filter(Boolean)),c=i.type??(s.size===1?[...s][0]:null)??(r?"security":null);c&&(o.type=c),r&&(o.source=r);for(let a of["model","effort","exportsMode"])i[a]&&(o[a]=i[a]);e.repo&&(o.repo={github:e.repo});let l=t.map(a=>a.map(u=>u.finding));return l.every(a=>a.length===1)?o.findings=l.flat():o.groups=l,o}var tt="markdown-generic",Ri=["#","id","product","priority","vulnerability"],Li=["title","description","root cause","code references","attack scenario","steps to reproduce","impact","patch"],Ai=/^(?:#{3,6}[ \t]+)?(?:\*\*)?(Title|Description|Root Cause|Code references|Attack Scenario|Steps to Reproduce(?:[ \t]+.*?)?|Impact|Patch):?(?:\*\*)?(?:[ \t]+#+)?[ \t]*$/gimu,en={P0:"critical",P1:"high",P2:"medium",P3:"low",P4:"informational"},te=e=>e.trim().slice(1,-1).split("|").map(t=>t.trim());function v(e,t){if(!e)throw new Error(`Markdown (generic): unsupported ${t}`)}function Ci(e){return[...new Set(e.split(`
|
|
49
|
+
`).map(t=>t.trim()).filter(Boolean))].map(t=>{v(/^https?:\/\/[^\s()[\]{}"'<>`\\]+$/iu.test(t)&&!/[.,;!?]$/u.test(t),"link syntax; use bare URLs on separate lines");let n;try{n=new URL(t)}catch{v(!1,"URL")}let[r,i,o,s,...c]=n.pathname.slice(1).split("/");v(["github.com","www.github.com"].includes(n.hostname)&&!n.username&&!n.password&&!n.port&&[r,i].every(p=>p&&/^[\w-][\w.-]*$/u.test(p)),"repository URL"),v(c.every(Boolean),"repository path; empty components");let l=`${r}/${i.replace(/\.git$/iu,"")}`.toLowerCase(),a=/^#L(\d+)(?:-L?(\d+))?$/u.exec(n.hash),u=o==="blob"?c.slice(0,-1):o==="tree"?c:[];try{u=u.map(decodeURIComponent)}catch{v(!1,"repository directory encoding")}return v(u.every(p=>p===p.trim()&&!/[\\/:?#\p{Cc}]/u.test(p)),"repository directory"),{repo:l,ref:s,directory:u,...o==="blob"&&c.length&&{evidence:{file:c.join("/"),line:a?a.slice(1).filter(Boolean).join("-"):"?",url:t}}}})}function _i(e,t,n,r){let i=Ci(n),o=i[0]?.repo;v(o&&i.every(l=>l.repo===o),`repository set for finding ${e.id}; expected exactly one repository`),v(!e.group.github||e.group.github===o,`repository set for product ${e.product}; expected exactly one repository`);let s=r.get(o);v(s===void 0||s===e.prefix,`repository ID prefixes for ${o}; expected ${s}, got ${e.prefix} (${e.id})`),r.set(o,e.prefix),e.group.github=o,e.group.directories.push(...i.map(l=>l.directory));let c=i.flatMap(l=>l.evidence??[]);if(c.length){Object.assign(t,{file:c[0].file,line:c[0].line,location:c[0].url,evidence:c});let l=i.find(a=>a.evidence).ref;W(l)&&(t.commitHash=l)}}function ki(e){let t=e[0];for(let n of e.slice(1)){let r=0;for(;r<t.length&&t[r]===n[r];)r++;t=t.slice(0,r)}return t.join("/")}function tn(e){let t=R(e).trim(),n=[...t.matchAll(/^## +(.*)$/gmu)];if(!n.some(u=>/^\d+\.\s+\S+/u.test(u[1]))&&(n.length||t.startsWith("# ")))return null;let r=[...t.matchAll(/^\|[^\n]*\|$/gmu)].find(([u])=>te(u).map(p=>p.toLowerCase()).join()===Ri.join());if(!r)return null;let i=t.slice(0,r.index).trim();v(!i||/^# [^\n]+$/u.test(i),"summary preamble"),v(r.index<(n[0]?.index??t.length),"summary position");let o=t.slice(r.index,n[0]?.index).trim().split(`
|
|
50
|
+
`),s=new Set(te(o[0]).map(u=>u.toLowerCase()));v(o[1]&&te(o[1]).length===5&&te(o[1]).every(u=>/^:?-{3,}:?$/u.test(u)),"summary separator");let c=new Map,l=new Map,a=new Map;for(let u of o.slice(2).filter(p=>p.trim())){v(/^\|.*\|$/u.test(u)&&te(u).length===5,"summary row");let[p,f,m,h]=te(u),d=/^(.+-)\d+$/u.exec(f)?.[1];v(/^\d+$/u.test(p)&&d&&m&&Object.hasOwn(en,h)&&!a.has(f),`summary values for ${f}`);let g=c.get(m)??{directories:[],rows:[]},y={raw:u,id:f,prefix:d,product:m,priority:h,group:g};a.set(f,y),g.rows.push(y),c.set(m,g)}v(a.size,"empty summary");for(let[u,p]of n.entries()){let f=/^\d+\.\s+(\S+)\s*$/u.exec(p[1])?.[1],m=a.get(f);v(m&&!m.finding,`finding section ${p[1]}`);let h=t.slice(p.index,n[u+1]?.index),d=h.slice(p[0].length+1),g=new Map,y=[...d.matchAll(Ai)];for(let[w,L]of y.entries()){let Me=L[1],dt=Me.toLowerCase().replace(/^steps to reproduce\b.*$/u,"steps to reproduce");v(!g.has(dt),`duplicate section ${Me}`),g.set(dt,{heading:Me,body:d.slice(L.index+L[0].length,y[w+1]?.index).trim()})}v(Li.every(w=>g.has(w)),`missing required headers for ${f}`),v(!d.slice(0,y[0].index).trim(),`text before field headers for ${f}`);let S=g.get("title")?.body;v(S,`missing Title for ${f}`);let x={sourceId:f,_idBasis:{source:tt,row:m.raw.trim(),section:h.trim()},product:m.product,priority:m.priority,severity:en[m.priority],file:"unknown",line:"?"};s.has("vulnerability")&&(x.security=!0);let $=[S];for(let[w,L]of g)w==="title"||w==="code references"||(w==="steps to reproduce"?x.reproduction=L.body:w==="patch"?x.recommendation=L.body:$.push(w==="description"?L.body:`**${L.heading}:**
|
|
51
|
+
${L.body}`));x.description=$.join(`
|
|
52
|
+
|
|
53
|
+
`),_i(m,x,g.get("code references").body,l),m.finding=x}return v([...a.values()].every(u=>u.finding),"missing finding sections"),[...c].map(([u,p])=>{let f={github:p.github,directory:ki(p.directories)},m=p.rows.map(({finding:h})=>({...h,repo:{github:p.github}}));return{displayName:u,data:{type:"security",source:tt,product:u,repo:f,findings:m}}})}function nn(e){let t=tn(e);return t===null?null:t.length===1?t[0].data:{type:"security",source:tt,findings:t.flatMap(({data:n})=>n.findings)}}var Ii=new Set(["critical","high","medium","low","high_bug","bug","informational"]);function rn(e){let t=Ti(e);if(!t)return null;let{severity:n,description:r,location:i,file:o,line:s}=t;return i?{severity:n,description:r,location:i}:{severity:n,description:r,file:o,line:s}}function Ti(e){let t=e.indexOf(`
|
|
54
|
+
`),n=(t===-1?e:e.slice(0,t)).trim();if(!n)return null;let r=t===-1?"":e.slice(t+1),{sectionsText:i,metaText:o}=Mi(r),s=Oi(i),c=Fi(o),{file:l,line:a,locationLink:u}=Bi(s.location||""),p=(c.severity||"").toLowerCase();return{severity:Ii.has(p)?p:"medium",description:Di(n,s),location:u,file:l||"unknown",line:a}}function Mi(e){let t=/^---\s*$/mu,n=t.exec(e);if(!n)return{sectionsText:e,metaText:""};let r=e.slice(0,n.index).trim(),i=e.slice(n.index+n[0].length).replace(/^\n/u,""),o=t.exec(i),s=o?i.slice(0,o.index):i;return{sectionsText:r,metaText:s}}function Oi(e){let t={},n=e.split(/^## /mu);for(let r=1;r<n.length;r++){let i=n[r],o=i.indexOf(`
|
|
55
|
+
`),s=(o===-1?i:i.slice(0,o)).trim().toLowerCase(),c=(o===-1?"":i.slice(o+1)).trim();s&&(t[s]=c)}return t}function Fi(e){let t={};for(let n of e.matchAll(/\*\*([^:]+):\*\*\s*(.+)/gu))t[n[1].trim().toLowerCase()]=n[2].trim();return t}function Bi(e){let t="",n="?",r="",i=e.match(/\[([^\]]+)\]\(([^)]+)\)/u);if(i){t=i[1].trim(),r=i[2];let s=i[2].match(/#L(\d+)/u);s&&(n=s[1])}else t=e.trim(),r=e.trim();let o=t.match(/^(.+):(\d+)$/u);return o&&(t=o[1],n==="?"&&(n=o[2])),{file:t,line:n,locationLink:r}}function Di(e,t){let n=[e];return t.details&&n.push(t.details),t.impact&&n.push(`Impact: ${t.impact}`),t["reproduction steps"]&&n.push(`Reproduction: ${t["reproduction steps"]}`),Ni(n.join(`
|
|
56
|
+
|
|
57
|
+
`))}function Ni(e){return e.replaceAll("**","")}var zi=new Set([...Z,"informative"]);function cn(e){let t=R(e).trim();if(!t.startsWith("# "))return null;let r=K(t,/^# /gmu).slice(1).filter(i=>i.trim().length>0).map(i=>ji(i)).filter(Boolean);return r.length===0?null:{type:"security",source:"claude-security",findings:r}}function ji(e){let{title:t,body:n}=H(e);if(!t)return null;let{sectionsText:r,metaText:i}=Hi(n),o=Ui(r),s=Object.fromEntries([...i.matchAll(/\*\*([^:]+):\*\*\s*(.+)/gu)].map(y=>[y[1].trim().toLowerCase(),y[2].trim()])),c=Wi(o.evidence||""),{file:l,line:a,locationLink:u}=ln(o.location||c[0]?.ref||""),p=(s.severity||"").toLowerCase(),f=zi.has(p)?p:"medium",m=Yi(t,o,c.length>0),h={file:l||"unknown",line:a,severity:f,description:m};u&&(h.location=u),c.length>0&&(h.evidence=c.map(Ki)),o["reproduction steps"]&&(h.reproduction=Vi(o["reproduction steps"])),o["recommended fix"]&&(h.recommendation=o["recommended fix"]),s.repository&&(h.repo={github:s.repository}),s.branch&&(h.branch=s.branch),s["date created"]&&(h.dateCreated=s["date created"]),s.status&&(h.status=s.status),s.category&&(h.category=s.category);let d=e.indexOf(`
|
|
58
|
+
# `),g=rn(d===-1?e:e.slice(0,d+1));return g&&(h._idBasis=g),E(h)}function Hi(e){let t=/^---\s*$/mu,n=t.exec(e);if(!n)return{sectionsText:e,metaText:""};let r=e.slice(0,n.index).trim(),i=e.slice(n.index+n[0].length).replace(/^\n/u,""),o=t.exec(i),s=o?i.slice(0,o.index):i;return{sectionsText:r,metaText:s}}function Ui(e){let t=e.split(/^## /mu).slice(1).map(n=>H(n));return Object.fromEntries(t.filter(n=>n.title).map(n=>[n.title.toLowerCase(),n.body.trim()]))}function ln(e){let t="",n="?",r="",i=Y(e);if(i){t=i.label.trim(),r=i.url.trim();let s=r.match(/#L(\d+)(?:-L?(\d+))?/u);s&&(n=s[2]?`${s[1]}-${s[2]}`:s[1])}else t=e.trim(),r=e.trim();t=ze(t.replaceAll("`","")).trim();let o=t.match(/^(.+):(\d+)(?:\s*[-–—]\s*L?(\d+))?$/u);return o&&(t=o[1],n==="?"&&(n=o[3]?`${o[2]}-${o[3]}`:o[2])),{file:t,line:n,locationLink:r,linked:i!==null}}function Vi(e){let t=e.split(`
|
|
59
|
+
`),n=t.findIndex(c=>c.trim());if(n===-1||!j.test(t[n])||t.some((c,l)=>l!==n&&j.test(c)))return e;let r=t[n].replace(/^ */u,""),i=r.replace(j,"");if(!i.trim())return e;let o=on(i)??on(r);if(o===null&&(j.test(i)||Gi.test(r)))return e;let s=o===null?[i]:o.length===1?[o[0].step]:o.map(({number:c,step:l})=>`${c}. ${l}`);return t.splice(n,1,...s),t.join(`
|
|
60
|
+
`)}var Pi=/(?:^|[ \t])(\d{1,9})\)(?=[ \t]|$)/gu,Gi=/^\d{1,9}\)(?=[ \t]|$)/u;function on(e){let t=[...e.matchAll(Pi)];if(t.length===0||t[0].index!==0)return null;let n=[];for(let[r,i]of t.entries()){let o=Number(i[1]);if(r>0&&o<=n[r-1].number)return null;let s=e.slice(i.index+i[0].length,t[r+1]?.index).trim();if(!s)return null;n.push({number:o,step:s})}return n}var sn=/^[ \t]*(?:\d+[.)]|[-*+])\s+/u;function Wi(e){let t=[];for(let n of e.split(`
|
|
61
|
+
`))sn.test(n)?t.push({ref:n.replace(sn,"").trim(),note:[]}):t.length>0&&n.trim()&&t.at(-1).note.push(n.trim());if(t.length===0){let n=e.split(`
|
|
62
|
+
`).map(o=>o.trim()).filter(Boolean),r=n.findIndex(o=>Y(o)!==null);if(r===-1&&n.length!==1)return[];let i=r===-1?0:r;t.push({ref:n[i],note:n.filter((o,s)=>s!==i)})}return t.filter(n=>n.ref)}function Ki({ref:e,note:t}){let{file:n,line:r,locationLink:i,linked:o}=ln(e),s={file:n||"unknown",line:r};i&&o&&(s.url=i);let c=t.join(`
|
|
63
|
+
`);return c&&(s.text=c),s}function Yi(e,t,n){let r=[e];return t.details&&r.push(t.details),t.evidence&&!n&&r.push(`**Evidence:**
|
|
64
|
+
${t.evidence}`),t.impact&&r.push(`**Impact:** ${t.impact}`),r.join(`
|
|
65
|
+
|
|
66
|
+
`)}function Zi(e){let t=(e||"").trim(),n="",r=/\[([^\]]+)\]\(([^)]+)\)/u.exec(t);r&&(t=r[1].trim(),n=r[2].trim());let i="",o=/#L(\d+)/u.exec(n);o&&(i=o[1]);let l=[...t.matchAll(/`([^`]+)`/gu)].map(p=>p[1].trim()).find(p=>!p.includes("(")&&(p.includes("/")||/\.\w/u.test(p)))??(t.replaceAll("`","").trim().split(/[\s,]+/u).find(Boolean)||""),a=/^(.*?)#L(\d+)(?:-L?\d+)?$/u.exec(l);a&&(l=a[1],i||(i=a[2]));let u=/^(.+):(\d+(?:-\d+)?)$/u.exec(l);return u?(i||(i=u[2]),{file:u[1],line:i,locationLink:n}):{file:l,line:i||"?",locationLink:n}}function an({severity:e,description:t,ref:n,lineBullet:r="",id:i=""}){let o=Zi(n),s=o.file||"unknown",c=o.line==="?"&&r?r:o.line,l=o.locationLink||(s==="unknown"&&i?`piolium:${i}`:"");return l?{severity:e,description:t,location:l}:{severity:e,description:t,file:s,line:c}}function z(e){let t=((e||"").trim().split(/\s+/u)[0]||"").replaceAll(/[`*]+/gu,"");return pe.get(t.toUpperCase())??""}function ae(...e){return{severity:e.find(Boolean)||"medium",identitySeverity:e.find(t=>t&&t!=="informative")||"medium"}}function ue(e){let t=/^([CHML])-?\d+$/iu.exec((e||"").trim());return t?{C:"critical",H:"high",M:"medium",L:"low"}[t[1].toUpperCase()]:""}function nt(e){return z(/^(critical|high|medium|low|informational|informative|info)(?:[ -](?:severity|risk))?(?:[ -]findings?)?(?:\s*\(\d+\))?$/iu.exec((e||"").trim())?.[1])}function un(e){return z(/^(critical|high|medium|low|informational|informative|info)\b/iu.exec((e||"").trim())?.[1])}function Ce(e){return/^variants?\s*(?:\(\d+\))?\s*:?$/iu.test((e||"").trim())}function _e(e){let t=/^([CHML]-?\d{1,4}|(?:p|q|b|r|m|l|x|diff)\d{0,4}-\d{2,4})(?:-([A-Za-z0-9][\w-]*))?$/iu.exec(e||"");return t?{id:t[1].toUpperCase(),slug:t[2]||""}:null}function Ae(e){return(e||"").replaceAll("-"," ")}function fe(e){let t=(e||"").trim(),n=/^\[([^\]]+)\]\([^)]*\)$/u.exec(t);return Et(n?n[1]:t).toUpperCase()}function it(e){let t=/^\[([^\]]+)\]\(([^)]+)\)\s*[:—–-]*\s*(.*)$/u.exec(e);return t?{text:t[3]?`${t[1].trim()} ${t[3].trim()}`:t[1].trim(),link:t[2].trim()}:null}function rt(e){let t=e.search(/\s/u),n=(t===-1?e:e.slice(0,t)).replace(/[:.,—–-]+$/u,""),r=_e(n);if(!r)return null;let i=(t===-1?"":e.slice(t+1)).replace(/^[:—–-]+\s*/u,"").trim();return{id:r.id,slug:r.slug,rest:i}}function ot(e){let{text:t,link:n}=it(e)??{text:e,link:""},r=/^\[([^\]]+)\] *(.*)$/u.exec(t);if(r){let o=_e(r[1].trim());return o?{id:o.id,title:r[2].trim()||Ae(o.slug)||o.id,link:n}:{id:r[1].trim().toUpperCase(),title:r[2].trim(),link:n}}let i=rt(t);return i?{id:i.id,title:i.rest||Ae(i.slug)||i.id,link:n}:{id:"",title:t.trim(),link:n}}function fn(e){let t={},n=o=>{let s=o.exec(e||"")?.[1];return s===void 0?"":(/`([^`]+)`/u.exec(s)?.[1]??s.split(/\s+/u)[0]??"").trim()},r=n(/^\s*(?:[-*] +)?\*\*Target:?\*\*\s*(.*)$/imu);le(r)&&(t.repo=r);let i=n(/^\s*(?:[-*] +)?\*\*Commit[^:*]*:?\*\*\s*(.*)$/imu);return W(i)&&(t.commitHash=i),t}var st=["key code reference","key code","code reference","location","affected file","file","path"];function ke(e){return{id:fe(e.id||""),title:U(e.title),severity:U(e.severity),pocStatus:U(e["poc status"]||e.poc),status:U(e.status),parent:fe(U(e.parent||"")),location:U(e.location)}}function Ie(e,t=""){let{severity:n,identitySeverity:r}=ae(z(e.severity),t,ue(e.id)),i=ct({ref:e.location||"",id:e.id,severity:n,identitySeverity:r,description:Ne(e.title||e.id)});for(let o of["pocStatus","status","parent"])e[o]&&(i[o]=e[o]);return E(i)}function ct({ref:e,lineBullet:t="",id:n,severity:r,identitySeverity:i,description:o}){let{file:s,line:c,locationLink:l}=wt(e),a={file:s||"unknown",line:c==="?"&&t?t:c,severity:r,description:o};return l?a.location=l:a.file==="unknown"&&n&&(a.location=`piolium:${n}`),a._idBasis=an({severity:i,description:o,ref:e,lineBullet:t,id:n}),a}function lt(e,t,n){let r=[];for(let i of e.split(`
|
|
67
|
+
`)){let o=/^\s{0,3}(?:[-*+]|\d{1,3}[.)])\s+(.+)$/u.exec(i);if(!o)continue;let s=o[1].trim();if(/^\*\*[^:*]+:\*\*/u.test(s))continue;let c=it(s),l=c?.link??"";if(c)s=c.text;else{let g=/^\*\*([^*]+)\*\*\s*[:—–-]*\s*(.*)$/u.exec(s);g&&(s=g[2]?`${g[1].trim()} ${g[2].trim()}`:g[1].trim())}if(/^(?:none\b|no |n\/a\b)/iu.test(s))continue;let a=rt(s),u=a?.id??"",p=s;if(a){let g=Ae(a.slug);p=g&&a.rest?`${g}
|
|
68
|
+
|
|
69
|
+
${a.rest}`:a.rest||g||a.id}let f=n.get(u),{severity:m,identitySeverity:h}=ae(z(f?.severity),t,ue(u)),d={file:"unknown",line:"?",severity:m,description:Ne(p)};u?d.location=`piolium:${u}`:l&&(d.location=l),l.endsWith("report.md")&&(d.reportPath=l);for(let g of["pocStatus","status","parent"])f?.[g]&&(d[g]=f[g]);r.push({id:u,finding:E(d,h)})}return r}function at(e,t,n,r=""){let i=[];for(let s of re(e)){let c=ke(s);!c.id&&!c.title||(!c.parent&&n&&(c.parent=n),c.id&&!t.has(c.id)&&t.set(c.id,c),i.push({id:c.id,finding:Ie(c,r)}))}if(i.length>0)return i;let o=lt(e,r,t);for(let s of o)n&&!s.finding.parent&&(s.finding.parent=n);return o}var qi=new Set(["technical findings detail","technical findings","detailed findings","findings detail","findings"]),Ji=/^(?:summary of findings\b|deferred|methodolog|executive|conclusion|attack surface|coverage|discoveries|scope\b|table of contents|contents\b|appendix|recommendation|remediation)/u;function pn(e){let{id:t}=ot(e);return!!(t&&_e(t))}function Qi(e){let t=N(e,ie);return(t.length>0?t:N(e,B)).some(({heading:r})=>pn(r))}function dn(e){let t=R(e).trim();if(!/^# +Security Audit Report\b/mu.test(t)&&!/^## +Technical Findings Detail\s*$/imu.test(t)&&!/^## +Findings by Severity\b/imu.test(t))return null;let{head:n,subs:r}=D(t,ye),i=nr(r),o=new Map(re(i["summary of findings"]||"").map(ke).filter(f=>f.id).map(f=>[f.id,f])),s=fn(n),c=[],l=new Set,a=[],u=({id:f,finding:m})=>{c.push(m),f&&l.add(f)},p=f=>{for(let m of f)u(m)};for(let[f,m]of Object.entries(i)){let h=nt(f);h||qi.has(f)||f.startsWith("findings by severity")?p(ut(m,h,o,a)):!Ji.test(f)&&Qi(m)&&p(ut(m,un(f),o,a))}for(let f of a)(!f.id||!l.has(f.id))&&u(f);for(let f of o.values())l.has(f.id)||u({id:f.id,finding:Ie(f)});if(c.length===0)return null;for(let f of c)s.repo&&(f.repo={github:s.repo}),s.commitHash&&!f.auditedCommit&&(f.auditedCommit=s.commitHash);return{type:"security",source:"piolium",findings:c}}function Xi(e,t,n,r){let i=[],o="";for(let{heading:s,body:c}of e){let l=nt(s);if(l)i.push(...ut(c,l,t,n)),o="";else if(Ce(s))i.push(...tr(c,t,o,n,r));else{let a=er(s,c,t,n,r);i.push(...a),o=a[0]?.id||o}}return i}function er(e,t,n,r,i){let{head:o,subs:s}=D(t,B),c=mn(e,o,n,i),l=c!==null&&!c.id&&s.some(u=>!Ce(u.heading)&&pn(u.heading)),a=c&&!l?[c]:[];return a.push(...ft(s,n,r,i,c?.id||"")),a}function tr(e,t,n,r,i){let{head:o,subs:s}=D(e,B);return r.push(...at(o,t,n,i)),ft(s,t,r,i,"")}function ft(e,t,n,r,i){let o=[],s="";for(let{heading:c,body:l}of e){if(Ce(c)){n.push(...at(l,t,i??s,r));continue}let a=mn(c,l,t,r);a&&(o.push(a),s=a.id||s)}return o}function ut(e,t,n,r){let i=N(e,ie);if(i.length>0)return Xi(i,n,r,t);let o=ft(N(e,B),n,r,t,null);if(o.length>0)return o;let s=re(e).map(ke).filter(c=>c.id||c.title);for(let c of s)!c.severity&&t&&(c.severity=t),c.id&&!n.has(c.id)?n.set(c.id,c):c.id||r.push({id:"",finding:Ie(c,t)});return s.length===0&&r.push(...lt(e,t,n)),[]}function mn(e,t,n,r=""){let i=e.trim();if(!i)return null;let{id:o,title:s,link:c}=ot(i),l=n.get(o);if(!o&&s){let w=s.toLowerCase();l=[...n.values()].find(L=>L.title.toLowerCase()===w),o=l?.id??""}let{fields:a,labels:u,prose:p}=vt(t),{severity:f,identitySeverity:m}=ae(z(a.severity),z(l?.severity),r,ue(o)),h=/\d+/u.exec(a.line||a.lines||"")?.[0]??"",d=/\*\*Variant of:?\*\*\s*\[?([^\]\s)]+)/iu.exec(t),g=p.split(`
|
|
70
|
+
`).filter(w=>!/^\s*<a\s[^>]*>\s*<\/a>\s*$/iu.test(w)&&!/\*\*Variant of:?\*\*/iu.test(w)).join(`
|
|
71
|
+
`).trim(),y=ct({ref:st.map(w=>a[w]).find(Boolean)??"",lineBullet:h,id:o,severity:f,identitySeverity:m,description:rr(s||o,a,u,g)}),S=a["poc status"]||a.poc||l?.pocStatus;S&&(y.pocStatus=S);let x=a["detailed report"]||(c.endsWith("report.md")?c:"");x&&(y.reportPath=x),l?.status&&(y.status=l.status);let $=l?.parent||(d?fe(d[1]):"");return $&&(y.parent=$),{id:o,finding:E(y)}}function nr(e){let t=Object.create(null);for(let{heading:n,body:r}of e){let i=n.trim().toLowerCase();i&&(t[i]=i in t?`${t[i]}
|
|
72
|
+
${r}`:r)}return t}var ir=new Set([...st,"severity","summary","files","poc","poc status","line","lines","detailed report","proof of concept","evidence","variant of","pattern","status","id","title"]);function rr(e,t,n,r){let i=[e];t.summary&&i.push(t.summary),r&&i.push(r);for(let[o,s]of Object.entries(t))!s||ir.has(o)||i.push(`**${n[o]||o}:** ${s}`);return i.filter(Boolean).join(`
|
|
73
|
+
|
|
74
|
+
`)}var or=["finding_url","repository","title","description","severity","configured_scan_id","relevant_paths"];function sr(e){let t=[],n=[],r="",i=!1;for(let o=0;o<e.length;o++){let s=e[o];i?s==='"'?e[o+1]==='"'?(r+='"',o++):i=!1:r+=s:s==='"'?i=!0:s===","?(n.push(r),r=""):s===`
|
|
75
|
+
`||s==="\r"?(n.push(r),t.push(n),n=[],r="",s==="\r"&&e[o+1]===`
|
|
76
|
+
`&&o++):r+=s}for((r!==""||n.length>0)&&(n.push(r),t.push(n));t.length>0&&t.at(-1).length===1&&t.at(-1)[0]==="";)t.pop();return t}function cr(e,t){return t.map(n=>{let r=Object.create(null);return e.forEach((i,o)=>{r[i]=n[o]??""}),r})}function lr(e){let t=sr(e);if(t.length<2)throw new Error("Codex CSV: empty or missing header row");let[n,...r]=t;for(let s of or)if(!n.includes(s))throw new Error(`Codex CSV: missing required column "${s}"`);let i=Map.groupBy(cr(n,r).filter(s=>s.configured_scan_id),s=>s.configured_scan_id);if(i.size===0)throw new Error("Codex CSV: no rows with a configured_scan_id");let o=[];for(let[s,c]of i){let l=new Set(c.map(p=>p.repository).filter(Boolean));if(l.size>1)throw new Error(`Codex CSV: scan ${s} contains multiple repositories: ${[...l].join(", ")}`);let u=`${[...l][0]||"unknown-repo"}:${s.replace(/^[^:]+:/u,"")}`;o.push({displayName:u,data:{type:"security",source:"codex-security",findings:c.map(ar)}})}return o}function ar(e){let t=e.relevant_paths.split(" | ").map(i=>i.trim()).find(Boolean)||"unknown",n=[e.title,e.description].filter(Boolean).join(`
|
|
77
|
+
|
|
78
|
+
`),r={id:e.finding_url,file:t,line:"?",severity:(e.severity||"medium").toLowerCase(),description:n,repo:{github:e.repository}};return e.commit_hash&&(r.commitHash=e.commit_hash),e.detected_at&&(r.detectedAt=e.detected_at),e.committed_at&&(r.committedAt=e.committed_at),E(r)}function ur(){let e=[],t=new Map,n=o=>{if(!t.has(o)){let s={security:!1};s.parent=s,t.set(o,s),typeof o=="string"&&e.push(o)}return t.get(o)},r=o=>{let s=o;for(;s.parent!==s;)s=s.parent;for(;o.parent!==o;){let c=o.parent;o.parent=s,o=c}return s};return{nodeFor:n,root:r,join:(o,s)=>{o=r(o),s=r(s),o!==s&&(s.parent=o,o.security||=s.security)},ids:e}}function fr(e,{source:t,linkedIds:n=()=>[],knownRows:r=()=>[]}={}){let{nodeFor:i,root:o,join:s,ids:c}=ur(),l=[],a=(f,m=!1)=>{let h;for(let d of f){if(!d||typeof d!="object")continue;let g=i(d.id||d);o(g).security||=m?d.isSecurity===!0:He(d,d._source??d.source??t),h?s(h,g):h=g,m||l.push([d,g])}};for(let f of e)a(f);let u=new Set;for(let f=0;f<c.length;f++){let m=c[f],h=i(m);for(let d of n(m))s(h,i(d));for(let d of r([m]))u.has(d)||(u.add(d),a(d.members,!0))}let p=!1;for(let[f,m]of l){let h=o(m).security;f.isSecurity!==h&&(f.isSecurity=h,p=!0)}return p}var pr="<!-- DeepView findings export -->",dr={annotation:()=>null,location:e=>typeof e?.location=="string"?e.location:null,evidence:e=>typeof e?.url=="string"?e.url:null,commit:()=>null,report:()=>null};function mr(e,t){let n=i=>typeof i?.source=="string"&&i.source?i.source:null;if(e.length===1)return i=>n(i)??e[0].source??null;let r=new Map(e.map(i=>[i.name,i.source??null]));return i=>n(i)??r.get(t.report(i))??null}function gr(e,t,n){let r=e.view?.revalidation!==!1,i=(Array.isArray(e.reports)?e.reports:[]).filter(a=>a&&typeof a=="object"),o=mr(i,t),s=a=>jt(a,o(a),r),c=new Set(n.map(s)),l=new Set(n.map(a=>t.report(a)).filter(Boolean));return{hooks:t,analyzerOf:s,severityMode:e.view?.severityMode==="original"?"original":"corrected",revalidation:r,showAnalyzer:c.size>1,showReport:l.size>1||i.length>1,repo:typeof e.repo=="string"&&e.repo?e.repo:null}}function hr(e){if(!e)return"";let t=[e.bucket?`${e.bucket} findings`:"Live findings"];return e.severityMode==="original"?t.push("original analyzer severities"):e.severityMode==="corrected"&&t.push("corrected severities"),e.revalidation===!1?t.push("code view \u2014 the revalidation pass is not applied"):e.revalidation===!0&&(e.revalidationDetail===!0?t.push("detailed app view \u2014 the revalidation pass is applied, with the rows it re-rated"):e.revalidationDetail===!1?t.push("app view \u2014 the revalidation pass is applied, standing in for the rows it re-rated"):t.push("app view \u2014 the revalidation pass is applied")),t.join(" \xB7 ")}function yr(e){if(!e)return"";let t=Number(e.included)||0,n=Number(e.total)||0;return n===0?"no findings":t>=n?`all ${X(n,"finding")}`:`${t} of ${X(n,"finding")} (${n-t} filtered out)`}function xr(e,t,n){let r=[],i=(u,p)=>{p&&r.push(`- **${u}:** ${p}`)},o=Array.isArray(e.reports)?e.reports:[],s=[...new Set(o.map(u=>_[u?.source]??"").filter(Boolean))];i("Source",s.join(", "));let c=o.map(u=>u?.name).filter(Boolean);i(c.length===1?"Report":"Reports",c.map(u=>b(u)).join(", ")),i("Workspace",typeof e.workspace=="string"?e.workspace.trim():""),t.repo&&i("Repository",qe(t.repo));let l=[...new Set(n.map(t.analyzerOf).filter(Boolean))],a=l.length===s.length&&l.every(u=>s.includes(u));return l.length>0&&!a&&i(l.length===1?"Analyzer":"Analyzers",l.join("; ")),e.generatedAt&&i("Exported",_t(e.generatedAt)),i("View",hr(e.view)),Array.isArray(e.filters)&&i("Filters",e.filters.length>0?e.filters.map(u=>`${u.label}: ${u.value}`).join(" \xB7 "):"none"),i("Included",yr(e.counts)),r.join(`
|
|
79
|
+
`)}function Sr(e,t){let n=Map.groupBy(e,s=>oe(s[0],t.severityMode)??"informational"),r=[...Z,...[...n.keys()].filter(s=>!Z.includes(s))],i=new Set,o=[];for(let s of r)for(let c of n.get(s)??[]){let l=o.length+1,a=zt(c[0]),u=`${l}. ${a}`;o.push({group:c,number:l,severity:s,title:a,headingText:u,slug:Ct(u,i)})}return o}function gn(e){let t=new Map;for(let n of e)t.set(n.severity,(t.get(n.severity)??0)+1);return t}var vr=[["flagged",e=>e.flagged===!0],["colour-marked",e=>e.color],["commented",e=>e.comment],["with a fix link",e=>e.fix]];function wr(e,t){let n=e.flatMap(({group:i})=>i.map(o=>t.hooks.annotation(o))).filter(Boolean),r=vr.map(([i,o])=>[n.filter(o).length,i]).filter(([i])=>i>0).map(([i,o])=>`${i} ${o}`);return r.length>0?`Annotations: ${r.join(", ")}.`:""}function br(e){let t=e.some(({group:i})=>i.some(o=>o.confidence!==void 0&&o.confidence!==null)),n=["#","Severity","Finding","Location"];t&&n.push("Confidence");let r=e.map(i=>{let o=i.group[0],s=i.group.length>1?` (${X(i.group.length,"case")})`:"",c=T(o),l=[String(i.number),k(i.severity),V(Ke(At(i.title)),`#${i.slug}`)+s,c?Ke(b(c)):""];return t&&l.push(o.confidence===void 0||o.confidence===null?"":`${o.confidence}/10`),l});return Ye(n,r,["right"])}function Er(e,t){let n=[M(2,"Summary")];if(e.length===0)return[...n,"No findings are included."];let r=[...gn(e)].map(([o,s])=>[k(o),String(s)]);r.push(["**Total**",`**${e.length}**`]),n.push(Ye(["Severity","Findings"],r,["left","right"]));let i=wr(e,t);return i&&n.push(i),n.push(br(e)),n}function $r(e,t){let n=gn(e),r=[],i=null;for(let o of e)o.severity!==i&&(i=o.severity,r.push(M(2,`${k(i)} (${n.get(i)})`))),r.push(Ht(o.group,t,{headingText:o.headingText,depth:3}));return r}function Rr(e={},t={}){let n=Object.fromEntries(Object.entries(dr).map(([l,a])=>[l,typeof t?.[l]=="function"?t[l]:a])),r=(Array.isArray(e.groups)?e.groups:[]).map(l=>Array.isArray(l)?l:[l]).map(l=>l.filter(a=>a&&typeof a=="object")).filter(l=>l.length>0),i=r.flat(),o=gr(e,n,i),s=Sr(r,o),c=[pr,M(1,typeof e.title=="string"&&e.title.trim()?e.title.trim():"Findings"),xr(e,o,i),...Er(s,o),...$r(s,o)];return`${ce(c)}
|
|
80
|
+
`}var Lr=[["deepview-md",Xt],["markdown-generic",nn],["deepsec",Ft],["piolium",dn],["claude-security",cn]];function Te(e){return Array.isArray(e?.findings)?e.findings:Array.isArray(e?.groups)?e.groups:null}function ts(e,t){return typeof t=="string"&&/\.csv$/iu.test(t)?"codex":pt(e).format}function pt(e){let t;try{let n=JSON.parse(e);if(Te(n)){for(let r of hn(Te(n)))E(r);return{data:n,format:"json",reason:null}}return{data:null,format:null,reason:"JSON, but not a report: no findings array"}}catch(n){t=n}for(let[n,r]of Lr)try{let i=r(e);if(i)return{data:i,format:n,reason:null}}catch(i){if(n!=="markdown-generic")throw i;return{data:null,format:n,reason:i.message}}return{data:null,format:null,reason:`Not JSON, and not a recognized markdown format. (JSON error: ${t.message})`}}function ns(e){let{data:t}=pt(e);return t?{count:Te(t).length,source:t.source,recognized:!0}:{count:0,recognized:!1}}function hn(e){return e.flat().filter(t=>t&&typeof t=="object")}async function Ar(e){for(let r of e)E(r);let t=e.filter(r=>!r.id);if(t.length===0)return;let n=await Promise.all(t.map(Fe));t.forEach((r,i)=>{n[i]&&(r.id=n[i])})}async function is(e){let{data:t,format:n}=pt(e);if(!t)return null;let r=hn(Te(t));return await Ar(r),{format:n,data:t,findings:r}}export{xn as a,I as b,F as c,ze as d,de as e,me as f,Be as g,_ as h,$t as i,Z as j,xe as k,Se as l,oe as m,je as n,ve as o,se as p,On as q,Lt as r,Ue as s,q as t,Ve as u,Q as v,we as w,Fn as x,Ge as y,T as z,We as A,A as B,Un as C,Gn as D,Wn as E,tn as F,lr as G,fr as H,Rr as I,Te as J,ts as K,pt as L,ns as M,Ar as N,is as O};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{g as x,h as R}from"./chunk-CVVJAXVY.js";import{d as S}from"./chunk-IU3CCINR.js";import"./chunk-UYAXVRVL.js";import"./chunk-PNHBZGDD.js";import"./chunk-CMQA4DM6.js";import"./chunk-3BZ7JERB.js";import{t as y,y as U,z as I}from"./chunk-GNXOKIGP.js";import{a as C,c as o,g as u}from"./chunk-2XUEZHIP.js";import"./chunk-TUII34K2.js";import"./chunk-V5O7M2YT.js";import"./chunk-OOJM4CTU.js";var G=new Set(["github-unavailable","unavailable","shutting-down","github-create-failed"]);async function w(a,e,s,i=null){let c=`/api/teams/${encodeURIComponent(a)}/issues`,n,l;try{n=await S(i?c:`${c}?${new URLSearchParams(e)}`,{method:i?"POST":"GET",credentials:"same-origin",headers:{accept:"application/json",...i?{"content-type":"application/json","x-csrf-token":s}:{}},...i?{body:JSON.stringify({...e,...i})}:{}}),l=await n.json()}catch{throw new Error(i?"github-create-uncertain":"github-unavailable")}if(!n.ok){let p=typeof l?.error=="string"&&l.error?l.error:null;throw new Error(i&&n.status>=500&&!G.has(p)?"github-create-uncertain":p??(i?"github-create-uncertain":"github-unavailable"))}return l}var f=[["impact","Impact"],["evidence","Evidence"],["reproduction","Reproduction"],["recommendation","Recommendation"],["confidenceReason","Confidence reason"],["revalidateVerdict","Revalidation verdict"],["revalidateRecommendation","Revalidation recommendation"]],z=a=>a.toLowerCase().replaceAll(/[^\p{L}\p{N}]/gu,""),T=new Map([...f.map(([a,e])=>[z(e),a]),["reproductionsteps","reproduction"],["recommendedfix","recommendation"]]);function D(a,{sourceUrl:e,evidence:s="",showRevalidation:i=!0}={}){let c=[],n=new Map,l=(t,d,h)=>{if(!h?.trim())return;let b=n.get(t)??{id:t,label:d,parts:[]};b.parts.includes(h.trim())||b.parts.push(h.trim()),n.set(t,b)},p=I(a);a.file&&c.push(`File: ${e?`[${p}](${e})`:p}`);let r=null;for(let t of U(y(a.description,a))){if(t.label!==null){let d=z(t.label);r=["description","details","summary"].includes(d)?null:{id:T.get(d)??d,label:t.label}}r?l(r.id,r.label,t.body):c.push(t.label?`**${t.label}:** ${t.body}`:t.body)}a.confidence!=null&&c.push(`Confidence: ${a.confidence}/10`);for(let[t,d]of f){if(t.startsWith("revalidate")&&!i){n.delete(t);continue}let h=t==="evidence"?s.replace(/^\*\*Evidence:\*\*\n/u,""):y(a[t],a);l(t,d,h)}let m=[...f.map(([t])=>n.get(t)).filter(Boolean),...[...n.values()].filter(t=>!f.some(([d])=>d===t.id))],g={body:c.join(`
|
|
2
|
+
|
|
3
|
+
`),sections:m.map(({id:t,label:d,parts:h})=>({id:t,label:d,text:`**${d}:**
|
|
4
|
+
${h.join(`
|
|
5
|
+
|
|
6
|
+
`)}`,selected:!1,start:0,end:0}))};return n.has("impact")&&(g=v(g,"impact",!0)),g}function E(a,e){let s=a.body;if(e===s)return a;let i=s.length,c=e.length,n=0;for(;n<i&&n<c&&s[n]===e[n];)n++;for(;i>n&&c>n&&s[i-1]===e[c-1];)i--,c--;let l=e.length-s.length,p=a.sections.map(r=>r.selected?n>=r.start&&i<=r.end?{...r,end:r.end+l}:i<=r.start?{...r,start:r.start+l,end:r.end+l}:n>=r.end?r:{...r,text:s.slice(r.start,r.end),selected:!1,start:0,end:0}:r);return{body:e,sections:p}}function v(a,e,s){let i=a.sections.find(t=>t.id===e);if(!i||i.selected===s)return a;if(s){let t=!a.body||a.body.endsWith(`
|
|
7
|
+
|
|
8
|
+
`)?"":a.body.endsWith(`
|
|
9
|
+
`)?`
|
|
10
|
+
`:`
|
|
11
|
+
|
|
12
|
+
`,d=a.body+t+i.text,h=a.body.length+t.length;return{body:d,sections:a.sections.map(b=>b===i?{...b,selected:s,separator:t,start:h,end:d.length}:b)}}let c=a.body.slice(i.start,i.end),n=i.separator??"",l=i.start-n.length,r=a.body.slice(l,i.start)===n&&!a.sections.some(t=>t!==i&&t.selected&&t.start<i.start&&t.end>l)?l:i.start,m=a.body.slice(0,r)+a.body.slice(i.end),g=r-i.end;return{body:m,sections:a.sections.map(t=>t===i?{...t,text:c,selected:s,start:0,end:0}:t.selected&&t.start>=i.end?{...t,start:t.start+g,end:t.end+g}:t)}}var _=`dialog{max-width:1040px;width:min(1040px,calc(100vw - 32px));margin-top:2rem;max-height:calc(100dvh - 4rem);overflow:hidden}dialog[open]{display:flex;flex-direction:column}header,.nwd-actions{flex-shrink:0}.dialog-content{min-height:0;overflow:auto;scrollbar-gutter:stable;padding:3px}.nwd-intro{overflow-wrap:anywhere}label{display:flex;flex-direction:column;gap:6px;margin:12px 0}textarea{min-height:clamp(240px,45dvh,540px);resize:vertical;line-height:1.55}.description-heading{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:16px 0 6px}.description-heading label{margin:0}.description-sections{display:flex;flex:1;flex-wrap:wrap;justify-content:flex-end;gap:6px}.description-sections label{flex-direction:row;align-items:center;font-size:.8rem;line-height:1.3;cursor:default;padding:5px 8px;border:1px solid var(--border);border-radius:var(--ui-radius, 6px);color:var(--muted);background:var(--surface)}.description-sections label:has(input:checked){color:var(--text);border-color:color-mix(in srgb,var(--accent) 65%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.description-sections label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.description-sections label:has(input:disabled){opacity:.55}.description-sections input{accent-color:var(--accent);flex-shrink:0}.description-help{margin:0 0 8px}.nwd-actions{flex-wrap:wrap}.nwd-actions a{font-size:.8rem}@media(width<=600px){dialog{margin-top:1rem;max-height:calc(100dvh - 2rem)}.description-sections{flex-basis:100%;justify-content:flex-start}}a{color:var(--accent)}.created-issue{padding:16px;border:1px solid var(--border);border-radius:var(--ui-radius, 8px)}.issue-heading{display:flex;align-items:center;gap:8px;margin-bottom:12px}.issue-status{padding:3px 10px;border-radius:20px;background:#238636;color:#fff;font-size:.8rem}.issue-status.closed{background:#8250df}.issue-status.not_planned,.issue-status.duplicate,.issue-status.unknown{background:#656d76}.issue-number{color:var(--muted)}h4{font-size:1.15rem;line-height:1.4;overflow-wrap:anywhere}.issue-description{margin-top:16px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:40vh;overflow:auto;line-height:1.5;font-size:.9rem}.issue-labels{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.issue-labels span{border:1px solid var(--border);border-radius:12px;padding:2px 8px;font-size:.75rem}.para+.para,.md-list{margin-top:.75em}.md-list{padding-left:1.5em}.inline-code,.code-block{font-family:monospace;background:var(--bg, var(--surface));border-radius:4px}.inline-code{padding:1px 4px}.code-block{white-space:pre;overflow:auto;padding:10px;margin:10px 0}
|
|
13
|
+
`;var $={"github-unavailable":"GitHub could not be reached. Try checking again.","github-issue-forbidden":"GitHub did not permit issue creation. Check your repository access and authorization.","github-create-uncertain":"GitHub may have created this issue. Check the repository before trying again.","github-create-failed":"GitHub could not create the issue. Check the title and description before trying again.",unauthenticated:"Your session expired. Sign in again before creating an issue.","workspace-changed":"Your workspace access changed. Reopen the finding before creating an issue.","bad-issue-repository":"The finding\u2019s repository changed. Reopen the finding before creating an issue.","no-finding":"This finding is no longer available in this workspace."},k=class extends x{static styles=[...x.styles,C(_)];static properties={teamId:{attribute:!1},context:{attribute:!1},session:{attribute:!1},formUrl:{attribute:!1},title:{state:!0},body:{state:!0},prepared:{state:!0},busy:{state:!0},creating:{state:!0},message:{state:!0},uncertain:{state:!0},createdUrl:{state:!0},createdIssue:{state:!0},detailsUnavailable:{state:!0},sections:{state:!0}};constructor(){super(),this.title="",this.body="",this.prepared=null,this.busy=!1,this.creating=!1,this.message="",this.uncertain=!1,this.createdUrl="",this.createdIssue=null,this.detailsUnavailable=!1,this.sections=[]}beforeOpen(){this.finding&&Object.assign(this,D(this.finding,this.draftOptions)),this.check(!0)}editBody(e){Object.assign(this,E(this,e))}toggleSection(e,s){Object.assign(this,v(this,e,s))}current(){return!this._settled&&this.isCurrent()}fallbackUrl(){let e=new URL(this.formUrl);return e.searchParams.set("title",this.title),e.searchParams.set("body",this.body),this.prepared?.labels&&e.searchParams.set("labels",this.prepared.labels.join(",")),e.href}async check(e=!1){if(!(this.busy||!this.current())){this.busy=!0,this.message="";try{let s=await w(this.teamId,this.context,this.session.csrfToken);if(!this.current())return;this.prepared=s,this.uncertain=!1,s.mode==="existing"&&(this.onCreated?.(s.url),window.location.assign(s.url)),e&&s.mode==="form"&&window.location.assign(this.fallbackUrl())}catch(s){!this.uncertain&&!["pending","created-unavailable"].includes(this.prepared?.mode)&&(this.prepared=null),this.message=$[s.message]??"Unable to check this issue. Please retry."}finally{this.busy=!1}}}async create(){if(!(this.busy||this.uncertain||this.createdUrl||this.prepared?.mode!=="api")){if(!this.current()){this.message=$["workspace-changed"],this.prepared=null;return}this.busy=!0,this.creating=!0,this.message="";try{let e=await w(this.teamId,this.context,this.session.csrfToken,{title:this.title,body:this.body});if(!this.current())return;e.mode==="existing"?(this.onCreated?.(e.url),window.location.assign(e.url)):e.url?(this.createdUrl=e.url,this.createdIssue=e.issue,this.detailsUnavailable=e.detailsUnavailable===!0,this.onCreated?.(e.url)):this.prepared=e}catch(e){e.message==="github-authorization-required"?this.prepared={mode:"authorize",authorizationPath:"/api/oauth/github/issues/login"}:(this.uncertain=e.message==="github-create-uncertain",["workspace-changed","bad-issue-repository","no-team","no-report","no-finding","unauthenticated","forbidden"].includes(e.message)&&(this.prepared=null),this.message=$[e.message]??"Could not create this issue. Check the title, description, and repository access.")}finally{this.busy=!1,this.creating=!1}}}render(){let e=this.createdIssue,s=this.prepared,i=s?.mode==="created-unavailable",c=this.createdUrl||i,n=this.uncertain||s?.mode==="pending",l=this.creating||n,p=!this.busy&&!n&&s?.mode==="form";return o`<dialog aria-labelledby="issue-dialog-title" @close="${this._onClose}" @cancel="${r=>{this.creating&&r.preventDefault()}}"><header><h3 id="issue-dialog-title">${c?"Issue created":"Create a GitHub issue"}</h3></header><div class="dialog-content"><p class="nwd-intro">${c?"Created":"Create"} in <strong>${this.context?.repository}</strong> as <strong>@${this.session?.login}</strong>.</p>${this.createdUrl?o`<section class="created-issue" aria-label="Created GitHub issue"><div class="issue-heading"><span class="${`issue-status ${e?.status??"open"} ${e?.stateReason??""}`}">${e?.status==="closed"?e.stateReason==="not_planned"?"Not planned":e.stateReason==="duplicate"?"Duplicate":e.stateReason==="completed"?"Completed":"Closed":"Open"}</span> <span class="issue-number">${e?.number?`#${e.number}`:""}</span></div><h4><a href="${this.createdUrl}" target="_blank" rel="noopener">${e?.title??this.title}</a></h4><p class="nwd-note">Opened by @${e?.author??this.session?.login}</p>${e?.labels?.length?o`<div class="issue-labels">${e.labels.map(r=>o`<span>${r}</span>`)}</div>`:u}<div class="issue-description">${this.renderBody?this.renderBody(e?.description??this.body):e?.description??this.body}</div><p class="nwd-note ui-hint">Linked permanently to this finding. The Issue button will open this issue next time.</p>${this.detailsUnavailable?o`<p class="nwd-note">GitHub’s latest details could not be loaded. The issue was created and its link is saved.</p>`:u}</section>`:i?o`<p role="status">The issue was created and linked permanently to this finding. Its details cannot be shown because workspace access could not be confirmed. Check its status again once workspace access is available.</p>`:o`<label>Title<input class="nwd-input" maxlength="256" .value="${this.title}" ?disabled="${l}" @input="${r=>{this.title=r.target.value}}"></label><div class="description-heading"><label for="issue-description">Description</label> ${this.sections.length>0?o`<div class="description-sections" role="group" aria-label="Include in description">${this.sections.map(r=>o`<label><input type="checkbox" .checked="${r.selected}" ?disabled="${l}" @change="${m=>this.toggleSection(r.id,m.target.checked)}">${r.label}</label>`)}</div>`:u}</div><p id="description-help" class="nwd-note description-help ui-hint">${this.sections.length>0?"Add or remove sections above. Your edits are kept when toggling them.":"Edit the description before creating the issue."}</p><textarea id="issue-description" class="nwd-input" maxlength="65536" .value="${this.body}" aria-describedby="description-help" ?disabled="${l}" @input="${r=>this.editBody(r.target.value)}"></textarea> ${s?.labels?.length?o`<p class="nwd-note">Labels: ${s.labels.join(", ")}</p>`:u} ${s?.mode==="permissions"?o`<p>Ask a repository owner to approve the app’s Issues read and write permission. ${s.authorizationPath?o`<a href="${s.authorizationPath}" target="_blank" rel="noopener">Review repository permissions</a>`:u}</p>`:u} ${s?.mode==="authorize"?o`<p><a href="${s.authorizationPath}" target="_blank" rel="noopener">Authorize GitHub</a>, then check authorization here.</p>`:u} ${s?.mode==="pending"?o`<p role="status">An issue is being created, or its creation could not be confirmed. Check its status before continuing; another issue will not be created.</p>`:u} ${s?.mode==="unavailable"?o`<p role="status">This finding already has a managed issue in a repository outside this workspace.</p>`:u}`} ${!this.createdUrl&&this.message?o`<p class="nwd-note" role="status">${this.message}</p>`:u} ${!this.createdUrl&&this.busy?o`<p role="status">${this.creating?"Creating issue\u2026":"Checking repository access\u2026"}</p>`:u}</div><footer class="nwd-actions">${this.createdUrl?o`<a href="${this.createdUrl}" target="_blank" rel="noopener">Open issue on GitHub</a>`:!this.busy&&n?o`<a href="${s?.repositoryUrl??`https://github.com/${this.context?.repository}/issues`}" target="_blank" rel="noopener">Check repository issues</a>`:p?o`<a href="${this.fallbackUrl()}" target="_blank" rel="noopener">Use GitHub form</a>`:u} <span class="nwd-spacer"></span> ${!this.createdUrl&&s?.mode!=="unavailable"?s?.mode==="api"&&!this.uncertain?o`<button class="primary" ?disabled="${this.busy||!this.title.trim()}" @click="${this.create}">Create issue</button>`:o`<button ?disabled="${this.busy}" @click="${()=>this.check()}">${n||i?"Check issue status":"Check authorization"}</button>`:u} <button ?disabled="${this.creating}" @click="${()=>this._finish(null)}">${c?"Close":"Cancel"}</button></footer></dialog>`}};customElements.define("managed-issue-dialog",k);function M(a){return R("managed-issue-dialog",a)}export{M as openManagedIssueDialog};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as U,b as v,c as T,d as R,f as _}from"./chunk-UYAXVRVL.js";import{a as S}from"./chunk-TUII34K2.js";var B=["dependencies","security"],X={dependencies:"Dependencies",security:"Security"};var P=R(),M=Object.freeze(P.models),x=P.defaultModel;var D="x-upload-encryption",L=1,O=1,I={name:"X25519"},C=34;var A=1024*1024,K=64*1024,N="deepview-managed-upload.v1.content-key";function j(e,r){let t=new Uint8Array(12);return new DataView(t.buffer).setUint32(7,e),t[11]=r?1:0,t}async function G(e,r,t){let n=await crypto.subtle.importKey("raw",e,"HKDF",!1,["deriveKey"]);return await crypto.subtle.deriveKey({name:"HKDF",hash:"SHA-256",salt:r,info:S(N)},n,{name:"AES-GCM",length:256},!1,[t])}async function H(e){let r=new Uint8Array(await e.slice(0,K).arrayBuffer());if(r.includes(0))return!1;try{return new TextDecoder("utf-8",{fatal:!0}).decode(r,{stream:!0}),!0}catch{return!1}}async function k(e,r,t){let n=await H(e),[a,s]=await Promise.all([crypto.subtle.importKey("raw",r,I,!1,[]),crypto.subtle.generateKey(I,!1,["deriveBits"])]),o=new Uint8Array(C);o[0]=L,o[1]=n?O:0,o.set(new Uint8Array(await crypto.subtle.exportKey("raw",s.publicKey)),2);let i=await G(await crypto.subtle.deriveBits({name:"X25519",public:a},s.privateKey,256),o,"encrypt"),c=[new Blob([o])],d=new Uint8Array(A),p=0,u=0,w=async l=>{c.push(new Blob([await crypto.subtle.encrypt({name:"AES-GCM",iv:j(u++,l)},i,d.subarray(0,p))])),p=0},y=(n?e.stream().pipeThrough(new CompressionStream("gzip")):e.stream()).getReader();try{for(let l=await y.read();!l.done;l=await y.read()){t?.throwIfAborted();for(let h=0;h<l.value.length;){p===A&&await w(!1);let g=Math.min(A-p,l.value.length-h);d.set(l.value.subarray(h,h+g),p),p+=g,h+=g}}}catch(l){throw await y.cancel(l).catch(()=>{}),l}return await w(!0),new Blob(c)}var m=null,b=0;function ce(){return m?.user.role??null}function le(e){if(e!==null&&!v(e))throw new TypeError(`Unknown managed preview role: ${e}. Expected ${U.join(", ")}.`);b++,m=e===null?null:{user:{id:`preview:${e}`,login:e,name:e[0].toUpperCase()+e.slice(1),role:e,avatarUrl:null,lastSeenAt:Date.now(),lastActivityAt:null},csrfToken:null}}function z(e,r){let t=new URL(e,"http://managed-preview.invalid").pathname,n=(r?.method??"GET").toUpperCase();if(n==="POST"&&t==="/api/auth/logout")return Response.json({ok:!0});if(n!=="GET")throw new Error("Changes are not saved in the managed UI preview");if(t==="/api/auth/session")return Response.json(m);if(t==="/api/teams")return Response.json({teams:[]});if(t.startsWith("/api/admin/")&&!T(m.user.role,"manage"))return Response.json({error:"forbidden"},{status:403});if(["/api/admin/users","/api/admin/teams","/api/admin/repositories","/api/admin/repositories/aliases","/api/admin/repositories/risk"].includes(t)&&m.user.role!=="admin")return Response.json({error:"forbidden"},{status:403});if(t==="/api/admin/repositories/risk")return new Response(`{"type":"repos","repos":[]}
|
|
2
|
+
{"type":"done"}
|
|
3
|
+
`,{headers:{"content-type":"application/x-ndjson"}});let a={"/api/admin/users":{users:[m.user]},"/api/admin/teams":{teams:[],users:[m.user],repos:[],permissions:B},"/api/admin/links":{shares:[]},"/api/admin/repositories":{repositories:[],total:0,connectedCount:0,installUrl:null,tokenMissing:!1},"/api/admin/repositories/aliases":{aliases:[],repos:[]},"/api/admin/repositories/resolve":{location:null},"/api/admin/reports":{reports:[],repos:[],maxBytes:26214400},"/api/admin/bundles":{bundles:[],repos:[],maxBytes:209715200},"/api/admin/history":{history:[],total:0,page:1,limit:100,filters:{repos:[],users:[]}},"/api/admin/scan/models":{models:M,defaultModel:x},"/api/admin/scan-results":{bundles:[],results:[]}};return Object.hasOwn(a,t)?Response.json(a[t]):Response.json({error:"not-found"},{status:404})}var E=3*1024*1024,F=new Set(["/api/admin/reports","/api/admin/bundles","/api/admin/deduplication"]);async function V(e,r){let t=await r("/api/admin/uploads/key",{credentials:"same-origin",signal:e.signal});if(t.status===404||t.status===405)return e;if(!t.ok)return t;let n=(await t.json())?.key;if(typeof n!="string")throw new Error("The server sent an invalid upload key");let a=new Headers(e.headers);return a.set(D,"1"),{...e,headers:a,body:await k(e.body,Uint8Array.fromBase64(n,{alphabet:"base64url"}),e.signal)}}async function Y(e,r,t){let n=null;if(e!=="/api/admin/deduplication"&&r.body.size>E){let s=await t("/api/config",{credentials:"same-origin",signal:r.signal});if(!s.ok)return s;let o=(await s.json()).managed,i=o?.uploadMaxBytes?.[e.endsWith("/reports")?"reports":"bundles"];if(Number.isSafeInteger(i)&&i>0&&r.body.size>i)return Response.json({error:"too-large"},{status:413});let c=o?.uploadChunkBytes;Number.isSafeInteger(c)&&c>0&&c<=E&&(n=c)}let a=await V(r,t);return a instanceof Response?a:n==null||a.body.size<=E?await t(e,a):await $(e,a,t,n)}async function $(e,r,t,n){let a=r.body,s=crypto.randomUUID(),o=e.endsWith("/reports")?"reports":"bundles",i=Math.ceil(a.size/n),c=new Headers(r.headers);c.set("content-type","application/octet-stream");let d=0,p=!1;try{for(let f=0;f<i;f++){d=f+1;let y=await t(`/api/admin/uploads/${o}/${s}/${f}`,{...r,headers:c,body:a.slice(f*n,(f+1)*n)});if(!y.ok)return y}let u=new Headers(r.headers);u.set("x-upload-id",s),u.set("x-upload-parts",String(i)),u.set("x-upload-size",String(a.size));let w=await t(e,{...r,headers:u,body:""});return p=w.ok,w}finally{if(!p&&d>0){let u=new Headers(r.headers);u.set("x-upload-parts",String(d)),await t(`/api/admin/uploads/${o}/${s}`,{...r,method:"DELETE",headers:u,body:void 0,signal:AbortSignal.timeout(1e4)}).catch(()=>{})}}}async function W(e){await e.json().then(t=>t?.error,()=>null)==="view-only"&&globalThis.document?.dispatchEvent(new CustomEvent("managed-view-only"))}async function de(e,r){if(r?.signal?.throwIfAborted(),m)return z(e,r);let t=b;async function n(a,s){if(t!==b)throw new DOMException("Managed session changed","AbortError");let o=_();if(o){if(new URL(a,globalThis.location.origin).origin!==globalThis.location.origin)throw new Error("Public workspace requests must be same-origin");let d=new Headers(s?.headers);d.set("x-deepview-share",o.token),s={...s,headers:d,credentials:"omit",redirect:"error"}}let i=await fetch(a,{...s,cache:"no-store"});if(t!==b)throw new DOMException("Managed session changed","AbortError");return i.status===403&&!["GET","HEAD"].includes((s?.method??"GET").toUpperCase())&&W(i.clone()),i}return r?.method==="POST"&&F.has(e)&&r.body instanceof Blob?await Y(e,r,n):await n(e,r)}export{X as a,ce as b,le as c,de as d};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{f as o}from"./chunk-UYAXVRVL.js";import{a as i}from"./chunk-4XCDFGDP.js";import{c as a,g as e}from"./chunk-2XUEZHIP.js";function s(t,r){return t?i(t,a`<span class="managed-comment-avatar" aria-hidden="true"><span>${(r?.[0]??"?").toUpperCase()}</span> ${o()?e:a`<img alt="" src="${`/api/avatar/${encodeURIComponent(t)}`}" loading="lazy" @error="${n=>{n.currentTarget.hidden=!0}}">`}</span>`):e}function u(t){let r=t.version>1&&t.updatedAt!=null,n=t.createdAt??(r?t.updatedAt:null);if(n==null)return e;let d=new Date(n),l=[t.createdAt==null?"":`Posted ${new Date(t.createdAt).toLocaleString()}`,r?`Edited ${new Date(t.updatedAt).toLocaleString()}`:""].filter(Boolean).join(`
|
|
2
|
+
`);return a`<time class="managed-comment-time" datetime="${d.toISOString()}" data-tooltip="${l}">${t.createdAt==null?"edited ":""}${d.toLocaleString(void 0,{dateStyle:"short",timeStyle:"short"})}${r&&t.createdAt!=null?" (edited)":""}</time>`}function p(t,r,n=e){let d=u(t);return a`<div class="managed-comment"><div class="managed-comment-row">${t.authorId||t.authorLogin?a`<span class="managed-comment-author">${s(t.authorId,t.authorLogin)} ${t.authorLogin?a`<strong>${t.authorLogin}</strong>`:e}</span>`:e}<div class="managed-comment-body">${r}</div>${d===e&&n===e?e:a`<div class="managed-comment-meta">${n===e?e:a`<div class="managed-comment-actions">${n}</div>`} ${d}</div>`}</div></div>`}export{s as a,p as b};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var o=`dialog{max-width:640px;width:min(94vw,640px)}header h3{margin:0 0 .4rem}.finding{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.35rem}.loc{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.desc{font-size:.78rem;color:var(--muted);margin:0 0 .7rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}textarea{display:block;width:100%;box-sizing:border-box;min-height:9rem;max-height:50vh;resize:vertical;padding:.55rem .65rem;border:1px solid var(--border);border-radius:var(--ui-radius, 6px);background:var(--bg, var(--surface));color:var(--text);font:inherit;font-size:.88rem;line-height:1.4;&:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgb(from var(--accent) r g b / .18)}&::placeholder{color:var(--muted)}}
|
|
2
|
+
`;export{o as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{nd as a,od as b,pd as c,qd as d,rd as e}from"./chunk-TY4RZD3Z.js";import"./chunk-K3X5EJBQ.js";import"./chunk-CVVJAXVY.js";import"./chunk-VIHGO77Y.js";import"./chunk-RFZQQXSG.js";import"./chunk-RSHMVYNS.js";import"./chunk-2AFQKRAM.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var f=class{constructor(s=()=>{}){this.resources=new Map,this.session=null,this.teamCatalog=null,this.reportCatalog=null,this.bundleCatalog=null,this.generation=0,this.sessionController=new AbortController,this.notify=s}setSession(s){(this.session?.id!==s?.id||this.session?.role!==s?.role)&&this.reset(),this.session=s}reset(){this.generation++,this.sessionController.abort(),this.sessionController=new AbortController,this.invalidate(),this.session=null,this.teamCatalog=null,this.reportCatalog=null,this.bundleCatalog=null}setReportCatalog(s){let l=new Set,r=new Map(s.map(t=>[t.id,JSON.stringify([t.cacheKey??null,t.reports.map(e=>[e.id,e.cacheKey??null,e.visible!==!1]).toSorted(),(t.bundles??[]).map(e=>[e.id,e.filename,e.repoFullName,e.repoDirectory??""]).toSorted()])]));for(let t of new Set([...this.teamCatalog?.keys()??[],...r.keys()]))this.teamCatalog?.get(t)!==r.get(t)&&l.add(`team:${t}`);for(let t of this.resources.keys()){let e="reports:content:team:";if(t.startsWith(e)){let[h]=t.slice(e.length).split(":");(!r.has(h)||this.teamCatalog?.get(h)!==r.get(h))&&this.invalidate([t])}}this.teamCatalog=r;let n=new Map;for(let t of s)for(let e of t.reports){let h=n.get(e.id)??[];h.push(JSON.stringify([t.id,e.cacheKey??null])),n.set(e.id,h)}let a=new Map([...n].map(([t,e])=>[t,JSON.stringify(e.toSorted())])),u=this.reportCatalog;this.reportCatalog=a;let d=new Set(l);for(let t of new Set([...u?.keys()??[],...a.keys()]))u?.get(t)!==a.get(t)&&d.add(t);for(let t of this.resources.keys()){if(!t.startsWith("reports:content:")||t.startsWith("reports:content:team:"))continue;let e=t.slice(16);(!a.has(e)||d.has(e))&&(this.invalidate([t]),d.add(e))}let o=new Map;for(let t of s)for(let e of t.bundles??[]){let h=o.get(e.id)??[];h.push(JSON.stringify([t.id,t.cacheKey??null,e.filename,e.repoFullName,e.repoDirectory??""])),o.set(e.id,h)}let i=!1,c=new Map([...o].map(([t,e])=>[t,JSON.stringify(e.toSorted())]));for(let t of new Set([...this.bundleCatalog?.keys()??[],...c.keys()]))this.bundleCatalog?.get(t)!==c.get(t)&&(i=!0,d.add(`bundle:${t}`),this.invalidate([`bundle-metadata:${t}`]));this.bundleCatalog=c;for(let t of this.resources.keys()){if(!t.startsWith("report-sources:")&&!t.startsWith("finding-history:"))continue;let[,e,h]=t.split(":");(e?l.has(`team:${e}`):i||d.has(h))&&this.invalidate([t])}return d}read(s){return this.resources.get(s)?.data}invalidate(s){for(let[l,r]of this.resources)s&&!s.some(n=>l===n||l.startsWith(`${n}:`))||(r.controller?.abort(),this.resources.delete(l))}async mutate(s,l){let r=this.generation,n;try{n=await s()}catch(a){throw r===this.generation&&a?.name!=="AbortError"&&this.notify(`Couldn't save changes: ${a?.message??a}`),a}if(r!==this.generation)throw new DOMException("Managed session changed","AbortError");return this.invalidate(l),n}async load(s,l,r,{signal:n,apply:a=()=>{},retryInvalidated:u=!1}={}){let d=this.generation;for(;;){n?.throwIfAborted();let o=this.resources.get(s);if(o||(o={},this.resources.set(s,o)),o.data!==void 0&&a(o.data),!o.pending){let i=o.controller=new AbortController;o.pending=(async()=>{try{let c=await r(i.signal);return i.signal.throwIfAborted(),o.data=c,c}catch(c){throw!i.signal.aborted&&c?.name!=="AbortError"&&this.notify(`Couldn't refresh ${l}: ${c?.message??c}`),c}})().finally(()=>{o.pending=null})}try{let i=await o.pending;if(n?.throwIfAborted(),this.resources.get(s)!==o)throw new DOMException("Managed data changed","AbortError");return a(i),i}catch(i){if(!u||i?.name!=="AbortError"||n?.aborted||d!==this.generation||this.resources.get(s)===o)throw i}}}},p=new f(g=>{document.dispatchEvent(new CustomEvent("managed-notice",{detail:{message:g}}))});function y(g){p.setSession(g)}function m(g){return p.setReportCatalog(g)}function w(){p.reset()}export{p as a,y as b,m as c,w as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function s(t,e){return!t||e===t||e.startsWith(`${t}/`)}function u(t,e){if(s(t.oldPath,e)){let r=e.slice(t.oldPath.length).replace(/^\//u,"");return{directory:[t.newPath,r].filter(Boolean).join("/"),filePrefix:""}}if(!s(e,t.oldPath))return null;let o=t.oldPath.slice(e.length).replace(/^\//u,"");return t.newPath===o?{directory:"",filePrefix:o}:t.newPath.endsWith(`/${o}`)?{directory:t.newPath.slice(0,-o.length-1),filePrefix:o}:null}function c(t,e,o,r=""){let n=null,f=-1;for(let i of o){if(i.oldRepo.toLowerCase()!==t.toLowerCase())continue;let l=u(i,e);!l||!s(l.filePrefix,r)||i.oldPath.length<=f||(n={repoId:i.repoId,directory:l.directory},f=i.oldPath.length)}return n}function h(t){let e;for(let o of t){let r=o.split("/");if(r.some(n=>!n||n==="."||n==="..")||o.includes("\\"))return"";if(r.pop(),e===void 0)e=r;else{let n=0;for(;n<e.length&&n<r.length&&e[n]===r[n];)n++;e.length=n}if(e.length===0)return""}return e?.join("/")??""}export{c as a,h as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var g=Object.create;var e=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>()=>{try{return a||b((a={exports:{}}).exports,a),a.exports}catch(c){throw a=0,c}},n=(b,a)=>{for(var c in a)e(b,c,{get:a[c],enumerable:!0})},l=(b,a,c,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of i(a))!k.call(b,d)&&d!==c&&e(b,d,{get:()=>a[d],enumerable:!(f=h(a,d))||f.enumerable});return b};var o=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?e(c,"default",{value:b,enumerable:!0}):c,b));export{m as a,n as b,o as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as p,c as u}from"./chunk-TUII34K2.js";async function w(e){let t=new Blob([e]).stream().pipeThrough(new CompressionStream("gzip"));return new Uint8Array(await new Response(t).arrayBuffer())}async function g(e,{maxBytes:t}={}){let o=new Blob([e]).stream().pipeThrough(new DecompressionStream("gzip"));if(t==null)return new Uint8Array(await new Response(o).arrayBuffer());let a=o.getReader(),s=[],r=0;for(;;){let{value:n,done:f}=await a.read();if(f)break;if(r+=n.length,r>t){try{await a.cancel()}catch{}throw new RangeError(`gunzipBytes: decompressed size exceeds ${t}-byte cap`)}s.push(n)}let i=new Uint8Array(r),c=0;for(let n of s)i.set(n,c),c+=n.length;return i}async function h(e){return await w(p(e))}async function l(e){return u(await g(e))}export{w as a,g as b,h as c,l as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Tc as a,Uc as b,Vc as c,Wc as d,Xc as e}from"./chunk-TY4RZD3Z.js";import"./chunk-K3X5EJBQ.js";import"./chunk-CVVJAXVY.js";import"./chunk-VIHGO77Y.js";import"./chunk-RFZQQXSG.js";import"./chunk-RSHMVYNS.js";import"./chunk-2AFQKRAM.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};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=`.detail-action{width:22px;height:22px;display:grid;place-items:center;padding:0;background:transparent;border:0;border-radius:var(--ui-radius, 4px);color:var(--muted);font:500 16px/1 ui-monospace,monospace;cursor:default;&:hover{color:var(--accent);background:var(--surface-active)}&:focus-visible{outline:2px solid var(--accent);outline-offset:1px}}
|
|
2
|
+
`;export{e as a};
|