@rushstack/lockfile-explorer 0.0.2 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(){"use strict";var e,t={302:function(e,t,n){var a,r,c=n(823),s=n(998),l="HK80a6ZVkdxoTKzrP9Eq",o=n(201);!function(e){e[e.DEPENDENCY=0]="DEPENDENCY",e[e.DEV_DEPENDENCY=1]="DEV_DEPENDENCY",e[e.PEER_DEPENDENCY=2]="PEER_DEPENDENCY"}(a||(a={}));class i{constructor(e,t,n,r,c){if(this.entryId="",this.name=e,this.version=t,this.dependencyType=n,this.containingEntry=r,this.peerDependencyMeta={},this.version.startsWith("link:")){const t=this.version.substring("link:".length),n=new o.y(".").relative(new o.y(r.packageJsonFolderPath).concat(t));if(!n)return void console.error("No root relative path for dependency!",e);this.entryId="project:"+n.toString()}else this.version.startsWith("/")?this.entryId=this.version:this.dependencyType===a.PEER_DEPENDENCY?(null==c?void 0:c.peerDependencies)?(this.peerDependencyMeta={name:this.name,version:c.peerDependencies[this.name],optional:!(!c.peerDependenciesMeta||!c.peerDependenciesMeta[this.name])&&c.peerDependenciesMeta[this.name].optional},this.entryId="Peer: "+this.name):console.error("Peer dependencies info missing!",c):this.entryId="/"+this.name+"/"+this.version}static parseDependencies(e,t,n){if(n.dependencies)for(const[r,c]of Object.entries(n.dependencies))e.push(new i(r,c,a.DEPENDENCY,t));if(n.devDependencies)for(const[r,c]of Object.entries(n.devDependencies))e.push(new i(r,c,a.DEV_DEPENDENCY,t));if(n.peerDependencies)for(const[r,c]of Object.entries(n.peerDependencies))e.push(new i(r,c,a.PEER_DEPENDENCY,t,n));if(n.transitivePeerDependencies)for(const e of n.transitivePeerDependencies)t.transitivePeerDependencies.add(e)}}!function(e){e[e.Project=0]="Project",e[e.Package=1]="Package",e[e.SideBySide=2]="SideBySide",e[e.Doppelganger=3]="Doppelganger"}(r||(r={}));class d{constructor(e){this.entryId="",this.packageJsonFolderPath="",this.entryPackageName="",this.displayText="",this.dependencies=[],this.transitivePeerDependencies=new Set,this.referrers=[],this.entryPackageVersion="",this.entrySuffix="";const{rawEntryId:t,kind:n,rawYamlData:a}=e;if(this.rawEntryId=t,this.kind=n,"."!==t){if(n===r.Project){const e=new o.y("common/temp/package.json").dirname()||"",n=new o.y(".").relative(new o.y(e).concat(t)),a=new o.y(t).basename();if(!n||!a)return void console.error("Could not construct path for entry: ",t);this.packageJsonFolderPath=n.toString(),this.entryId="project:"+this.packageJsonFolderPath,this.entryPackageName=a.toString(),this.displayText="Project: "+this.entryPackageName}else{this.displayText=t;const e=d._packageEntryIdRegex.exec(t);if(e){const[,t,n]=e;this.entryPackageName=t;const a=n.indexOf("_");if(a>=0){const e=n.substring(0,a),r=n.substring(a+1);this.entryPackageVersion=e,this.entrySuffix=r,this.displayText=t+" "+e+" ("+r+")"}else this.entryPackageVersion=n,this.displayText=t+" "+n}this.packageJsonFolderPath="common/temp/node_modules/.pnpm/"+this.entryPackageName.replace("/","+")+"@"+this.entryPackageVersion+(this.entrySuffix?`_${this.entrySuffix}`:"")+"/node_modules/"+this.entryPackageName}i.parseDependencies(this.dependencies,this,a)}}}d._packageEntryIdRegex=new RegExp("/(.*)/([^/]+)$");const p=window.appContext.serviceUrl;var m="IWEAxDEzQLw3g5TI_6up";const E=null;var u=n(300);const y=u.I0,f=u.v9;var k=n(329);const h="LOCKFILE_EXPLORER_BOOKMARKS",g="LOCKFILE_EXPLORER_PROJECT_FILTER",v="LOCKFILE_EXPLORER_PACKAGE_FILTER",P=e=>e===r.Project?localStorage.getItem(g)||"":localStorage.getItem(v)||"",N={allEntries:[],filters:{[r.Project]:!1,[r.Package]:!0,[r.SideBySide]:!1,[r.Doppelganger]:!1},selectedEntryStack:[],selectedEntryForwardStack:[],bookmarkedEntries:[]},S=(0,k.oM)({name:"entry",initialState:N,reducers:{loadEntries:(e,t)=>{e.allEntries=t.payload;const n=(()=>{const e=JSON.parse(localStorage.getItem(h)||"{}"),t=new Set;for(const n of Object.keys(e))t.add(n);return t})();for(const a of t.payload)n.has(a.rawEntryId)&&e.bookmarkedEntries.push(a)},setFilter:(e,t)=>{e.filters[t.payload.filter]=t.payload.state},clearStackAndPush:(e,t)=>{e.selectedEntryStack=[t.payload],e.selectedEntryForwardStack=[]},pushToStack:(e,t)=>{e.selectedEntryStack.push(t.payload),e.selectedEntryForwardStack=[],t.payload.kind===r.Package?(e.filters[r.Project]=!1,e.filters[r.Package]=!0):(e.filters[r.Project]=!0,e.filters[r.Package]=!1)},popStack:e=>{if(e.selectedEntryStack.length>1){const t=e.selectedEntryStack.pop();e.selectedEntryForwardStack.push(t),e.selectedEntryStack.length>=1&&(e.selectedEntryStack[e.selectedEntryStack.length-1].kind===r.Package?(e.filters[r.Project]=!1,e.filters[r.Package]=!0):(e.filters[r.Project]=!0,e.filters[r.Package]=!1))}},forwardStack:e=>{if(e.selectedEntryForwardStack.length>0){const t=e.selectedEntryForwardStack.pop();e.selectedEntryStack.push(t),t.kind===r.Package?(e.filters[r.Project]=!1,e.filters[r.Package]=!0):(e.filters[r.Project]=!0,e.filters[r.Package]=!1)}},addBookmark:(e,t)=>{e.bookmarkedEntries.includes(t.payload)||(e.bookmarkedEntries.push(t.payload),(e=>{const t=e.rawEntryId,n=JSON.parse(localStorage.getItem(h)||"{}");n[t]=!0,localStorage.setItem(h,JSON.stringify(n))})(t.payload))},removeBookmark:(e,t)=>{e.bookmarkedEntries=e.bookmarkedEntries.filter((e=>e.rawEntryId!==t.payload.rawEntryId)),(e=>{const t=e.rawEntryId,n=JSON.parse(localStorage.getItem(h)||"{}");delete n[t],localStorage.setItem(h,JSON.stringify(n))})(t.payload)}}}),w=e=>e.entry.selectedEntryStack.length?e.entry.selectedEntryStack[e.entry.selectedEntryStack.length-1]:void 0,C=e=>{const t=[];return e.entry.filters[r.Package]?t.push(...e.entry.allEntries.filter((e=>e.kind===r.Package))):e.entry.filters[r.Project]&&t.push(...e.entry.allEntries.filter((e=>e.kind===r.Project))),t},{loadEntries:D,setFilter:b,clearStackAndPush:j,pushToStack:O,popStack:I,forwardStack:x,addBookmark:_,removeBookmark:A}=S.actions,T=S.reducer;const K=({options:e})=>c.createElement("div",{className:"b1H6mzJXpxsG350hyeU_"},e.map((e=>c.createElement("div",{key:e.text,className:"mWhs4CnCA0TKj6CRR8gk "+(e.active?"Q9WEwAuQb3UsVbcHr0oI":""),onClick:e.onClick},e.text)))),R=({group:e})=>{const t=f(w),n=y(),a=(0,c.useRef)(),r=(0,c.useCallback)((e=>()=>{n(O(e))}),[]);return(0,c.useEffect)((()=>{t&&t.entryPackageName===e.entryName&&a.current.scrollIntoView({behavior:"smooth"})}),[t,e]),c.createElement("div",{className:"OcndyDBetZor3ptzTnTX",ref:a},c.createElement("h5",null,e.entryName),e.versions.map((e=>c.createElement("div",{key:e.rawEntryId,onClick:r(e),className:"Wg5pG3RVf6SQ51i0tVkd "+((null==t?void 0:t.rawEntryId)===e.rawEntryId?"NBIr3yosJ9gX6LZcnC7T":"")},c.createElement("p",null,e.entryPackageVersion||e.entryPackageName," ",e.entrySuffix&&`[${e.entrySuffix}]`)))))},F=()=>{const e=y(),[t,n]=(0,c.useState)(""),[a,s]=(0,c.useState)(""),l=f(C),o=f((e=>e.entry.filters)),i=(0,c.useCallback)((e=>t=>{e===r.Project?n(t.target.value):s(t.target.value),((e,t)=>{t===r.Project?localStorage.setItem(g,e):localStorage.setItem(v,e)})(t.target.value,e)}),[]);if((0,c.useEffect)((()=>{n(P(r.Project)),s(P(r.Package))}),[]),!l)return E;const d=(0,c.useCallback)(((t,n)=>()=>{e(b({filter:t,state:n}))}),[]),p=(0,c.useCallback)((t=>()=>{t===r.Project?(e(b({filter:r.Project,state:!0})),e(b({filter:r.Package,state:!1}))):(e(b({filter:r.Package,state:!0})),e(b({filter:r.Project,state:!1})))}),[o]);return c.createElement("div",{className:"yk7wrFMnnNyYLABMBhz_"},c.createElement(K,{options:[{text:"Projects",active:o[r.Project],onClick:p(r.Project)},{text:"Packages",active:o[r.Package],onClick:p(r.Package)}]}),c.createElement("div",{className:"X00sOTmx1ir4Oc41DIvM HK80a6ZVkdxoTKzrP9Eq"},c.createElement("div",{className:"oq4FJVnF_fONdOKuiK0w"},c.createElement("h5",null,"Filter:"),c.createElement("input",{type:"text",value:o[r.Project]?t:a,onChange:i(o[r.Project]?r.Project:r.Package)})),c.createElement("div",{className:"PoJj8_8xv9BXiMVPKFVE"},(()=>{let e=l;t&&o[r.Project]?e=l.filter((e=>-1!==e.entryPackageName.indexOf(t))):a&&o[r.Package]&&(e=l.filter((e=>-1!==e.entryPackageName.indexOf(a))));const n=e.reduce(((e,t)=>{const n=e[t.entryPackageName]||[];return n.push(t),e[t.entryPackageName]=n,e}),{});let c=[];for(const[e,t]of Object.entries(n))c.push({entryName:e,versions:t});return o[r.SideBySide]&&(c=c.filter((e=>e.versions.length>1))),o[r.Doppelganger]&&(c=c.filter((e=>(e=>{const t=new Set;for(const n of e){if(t.has(n.entryPackageVersion))return!0;t.add(n.entryPackageVersion)}return!1})(e.versions)))),c})().map((e=>c.createElement(R,{group:e,key:e.entryName})))),o[r.Package]?c.createElement("div",{className:"K6dDN5KzjLkbPPFWUaly"},c.createElement("h5",null,"Filters"),c.createElement("div",{className:m,onClick:d(r.SideBySide,!o[r.SideBySide])},c.createElement("input",{type:"checkbox",checked:o[r.SideBySide],readOnly:!0}),c.createElement("h5",null,"Must have side-by-side versions")),c.createElement("div",{className:m,onClick:d(r.Doppelganger,!o[r.Doppelganger])},c.createElement("input",{type:"checkbox",checked:o[r.Doppelganger],readOnly:!0}),c.createElement("h5",null,"Must have doppelgangers"))):null))},J=window.appContext.serviceUrl;var M="rXOH6AJQU2eYrNAXbp4V";const H={specChanges:new Map},V=(0,k.oM)({name:"workspace",initialState:H,reducers:{loadSpecChanges:(e,t)=>{e.specChanges=t.payload}}}),{loadSpecChanges:z}=V.actions,Y=V.reducer,G=(e,t)=>{var n;switch(null===(n=e.get(t))||void 0===n?void 0:n.type){case"add":return"[Added by .pnpmfile.cjs]";case"diff":return"[Changed from {specChanges.get(dep)?.from}]";case"remove":return"[Deleted by .pnpmfile.cjs]";default:return"No Change"}},L=(e,t)=>{if(!e)return!1;for(const n of e.dependencies)if(t.has(n.name))return!0;return!1};var Z;!function(e){e[e.PACKAGE_JSON=0]="PACKAGE_JSON",e[e.PACKAGE_SPEC=1]="PACKAGE_SPEC",e[e.PARSED_PACKAGE_JSON=2]="PARSED_PACKAGE_JSON"}(Z||(Z={}));const B=()=>{const e=y(),[t,n]=(0,c.useState)(void 0),[a,r]=(0,c.useState)(void 0),[s,o]=(0,c.useState)(""),i=f(w),d=f((e=>e.workspace.specChanges)),[p,m]=(0,c.useState)(Z.PARSED_PACKAGE_JSON),E=(0,c.useCallback)((e=>()=>m(e)),[]);(0,c.useEffect)((()=>{(async function(){const e=await(async()=>{try{const e=await fetch(`${J}/api/pnpmfile`);return await e.text()}catch(e){return console.error("Could not load cjs file: ",e),"Missing CJS"}})();o(e)})().catch((e=>{console.error(`Failed to load project's pnpm file: ${e}`)}))}),[]),(0,c.useEffect)((()=>{i&&(i.entryPackageName?async function(t){const a=await(async e=>{try{const t=await fetch(`${J}/api/package-json`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:e})});return await t.json()}catch(e){return void console.error("Could not load package json file: ",e)}})(t);n(a);const c=await(async e=>{try{const t=await fetch(`${J}/api/package-spec`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:e})});return await t.json()}catch(e){return void console.error("Could not load cjs file: ",e)}})(t);if(r(c),a&&c){const t=((e,t)=>{const n=new Map,a=new Map;for(const[t,a]of Object.entries(Object.assign(Object.assign(Object.assign({},e.dependencies),e.devDependencies),e.peerDependencies)))n.set(t,a);for(const[e,n]of Object.entries(Object.assign(Object.assign(Object.assign({},t.dependencies),t.devDependencies),t.peerDependencies)))a.set(e,n);const r=new Map;for(const e of n.keys())a.has(e)?a.get(e)!==n.get(e)&&r.set(e,{type:"diff",packageName:e,from:n.get(e),to:a.get(e)}):r.set(e,{type:"remove",packageName:e});for(const e of a.keys())n.has(e)||r.set(e,{type:"add",packageName:e});return r})(a,c);e(z(t))}}(i.packageJsonFolderPath).catch((e=>{console.error(`Failed to load project information: ${e}`)})):console.log("The selected entry has no entry name: ",i.entryPackageName))}),[i]);const u=e=>t=>{var n;const[a,r]=t;if(!d.has(a))return e?c.createElement("p",{key:a},a,":"):c.createElement("p",{key:a},r);switch(null===(n=d.get(a))||void 0===n?void 0:n.type){case"add":return e?c.createElement("p",{key:a},c.createElement("span",{className:"nTIc62ACgp5xMWIvZ4cn"},a)):c.createElement("p",{key:a},r," ",G(d,a));case"diff":return e?c.createElement("p",{key:a},c.createElement("span",{className:"I4A8ZZlpCL3Op0c53VjN"},a)):c.createElement("p",{key:a},r," ",G(d,a));case"remove":return e?c.createElement("p",{key:a},c.createElement("span",{className:"iavWjvHy9s5MhCZ_ncgb"},a)):c.createElement("p",{key:a},r," ",G(d,a));default:return e?c.createElement("p",{key:a},a,":"):c.createElement("p",{key:a},r)}};return c.createElement("div",{className:"kzgyQkswpx6xUEo4zOa8"},c.createElement(K,{options:[{text:"package spec "+(L(i,d)?"*":""),active:p===Z.PARSED_PACKAGE_JSON,onClick:E(Z.PARSED_PACKAGE_JSON)},{text:"package.json",active:p===Z.PACKAGE_JSON,onClick:E(Z.PACKAGE_JSON)},{text:".pnpmfile.cjs",active:p===Z.PACKAGE_SPEC,onClick:E(Z.PACKAGE_SPEC)}]}),c.createElement("div",{className:l},c.createElement("div",{className:"e2KEBfZCHwEMeH4j6wS7"},(()=>{switch(p){case Z.PACKAGE_JSON:return t?c.createElement("pre",null,JSON.stringify(t,null,2)):c.createElement("h5",null,"Please select a Project or Package to view it's package.json");case Z.PACKAGE_SPEC:return s?c.createElement("pre",null,s):c.createElement("h5",null,"Couldn't load the pnpmfile.cjs file - does it exist in the expected location? (/common/config/rush/.pnpmfile.cjs)");case Z.PARSED_PACKAGE_JSON:return a?c.createElement("div",{className:"Ko0YQxSlY0hCIDTfmNlr"},c.createElement("div",{className:M},c.createElement("h5",null,"Package Name:"),c.createElement("p",null,null==i?void 0:i.displayText)),c.createElement("div",{className:M},c.createElement("h5",null,"Version:"),c.createElement("p",null,null==i?void 0:i.entryPackageVersion)),c.createElement("div",{className:"hqNteMkwhYXuZqHE_8MJ"},c.createElement("div",null,c.createElement("h5",null,"Dependencies"),a.dependencies&&Object.entries(a.dependencies).map(u(!0)),c.createElement("h5",null,"Dev Dependencies"),a.devDependencies&&Object.entries(a.devDependencies).map(u(!0)),c.createElement("h5",null,"Peer Dependencies"),a.peerDependencies&&Object.entries(a.peerDependencies).map(u(!0))),c.createElement("div",null,c.createElement("h5",null," "),a.dependencies&&Object.entries(a.dependencies).map(u(!1)),c.createElement("h5",null," "),a.devDependencies&&Object.entries(a.devDependencies).map(u(!1)),c.createElement("h5",null," "),a.peerDependencies&&Object.entries(a.peerDependencies).map(u(!1))))):c.createElement("h5",null,"Please select a Project or Package to view the parsed package.json");default:return null}})())))};var X,q="_R50_3JsFs2FC9kVffQL",Q="mRQWdzXzOM1NpFUpYnhP",W="wzeVrHi3oyOhEe6qD3PX",$="lGp34XdOFjHfZNwiilgC";!function(e){e[e.Determinant=0]="Determinant",e[e.TransitiveReferrer=1]="TransitiveReferrer"}(X||(X={}));const U=()=>{var e,t;const n=f(w),r=f((e=>e.workspace.specChanges)),s=y(),[o,i]=(0,c.useState)(null),[d,p]=(0,c.useState)([]);(0,c.useEffect)((()=>{n&&i(null)}),[n]);const m=(0,c.useCallback)((e=>()=>{if(o&&o.entryId===e.entryId)e.resolvedEntry?s(O(e.resolvedEntry)):((...e)=>{window.appContext.debugMode&&console.log("Diagnostic: ",...e)})("No resolved entry for dependency:",e);else if(n){if(console.log("dependency to trace: ",e),i(e),e.dependencyType!==a.PEER_DEPENDENCY)return;const t=[n],r=new Set,c=new Set,s=new Set;for(s.add(n);t.length;){const n=t.pop();if(n)for(const a of n.referrers){let l=!1;for(const t of a.dependencies)if(t.name===e.name){r.add(a),l=!0;break}if(!l){a.transitivePeerDependencies.has(e.name)?c.add(a):console.error('Error analyzing influencers: A referrer appears to be missing its "transitivePeerDependencies" field in the YAML file: ',e,a,n);for(const e of n.referrers)s.has(e)||(t.push(e),s.add(e))}}}const l=[];for(const e of r.values())l.push({entry:e,type:X.Determinant});for(const e of c.values())l.push({entry:e,type:X.TransitiveReferrer});p(l)}}),[n,o]),u=(0,c.useCallback)((e=>()=>{console.log("going to entry: ",e),s(O(e))}),[n]);return n?c.createElement(c.Fragment,null,c.createElement("div",{className:"KWDuEbG1GmwLxFmPPppw"},c.createElement("div",{className:l},c.createElement("h5",null,"Direct Referrers"),c.createElement("div",{className:q},null===(e=n.referrers)||void 0===e?void 0:e.map((e=>c.createElement("div",{className:Q,key:e.rawEntryId,onClick:u(e)},c.createElement("h5",null,"Name: ",e.displayText),c.createElement("div",null,c.createElement("p",null,"Entry ID: ",e.rawEntryId))))))),c.createElement("div",{className:l},c.createElement("h5",null,"Direct Dependencies"),c.createElement("div",{className:q},null===(t=n.dependencies)||void 0===t?void 0:t.map((e=>c.createElement("div",{className:`mRQWdzXzOM1NpFUpYnhP ${(null==o?void 0:o.entryId)===e.entryId&&"GbZbP1wHbcReGrxpZ3Ra"}`,key:e.entryId||e.name,onClick:m(e)},c.createElement("h5",null,"Name: ",e.name," ",e.dependencyType===a.PEER_DEPENDENCY?(e.peerDependencyMeta.optional?"(Optional)":"(Non-optional)")+" Peer Dependency":""),c.createElement("div",null,c.createElement("p",null,"Version: ",e.version),c.createElement("p",null,"Entry ID: ",e.entryId)))))))),o?c.createElement("div",{className:"HK80a6ZVkdxoTKzrP9Eq xSxHmjxIXTOSskLhma3A"},c.createElement("div",{className:$},c.createElement("h5",null,"Selected Dependency: "),c.createElement("span",null,o.name,": ",o.version)),c.createElement("div",{className:$},c.createElement("h5",null,"package.json spec: "),c.createElement("span",null,o.dependencyType===a.PEER_DEPENDENCY?`"${o.peerDependencyMeta.version}" ${o.peerDependencyMeta.optional?"Optional":"Required"} Peer`:o.version)),c.createElement("div",{className:$},c.createElement("h5",null,".pnpmfile.cjs: "),c.createElement("span",null,r.has(o.name)?G(r,o.name):"No Effect"))):E,n?n.dependencies.filter((e=>e.dependencyType===a.PEER_DEPENDENCY)).length?o&&o.dependencyType===a.PEER_DEPENDENCY?c.createElement("div",{className:"HK80a6ZVkdxoTKzrP9Eq rIv2KvSZ0CKMbctSHL04"},c.createElement("h5",null,"Determinants:"),d.filter((e=>e.type===X.Determinant)).map((({entry:e})=>c.createElement("a",{className:W,key:e.rawEntryId,onClick:u(e)},e.displayText))),c.createElement("h5",null,"Transitive Referencers:"),d.filter((e=>e.type===X.TransitiveReferrer)).map((({entry:e})=>c.createElement("a",{className:W,key:e.rawEntryId,onClick:u(e)},e.displayText)))):c.createElement("div",{className:"HK80a6ZVkdxoTKzrP9Eq rIv2KvSZ0CKMbctSHL04"},c.createElement("h5",null,"Select a peer dependency to view its influencers")):c.createElement("div",{className:"HK80a6ZVkdxoTKzrP9Eq rIv2KvSZ0CKMbctSHL04"},c.createElement("h5",null,"No peer dependencies.")):E):c.createElement("div",{className:"HK80a6ZVkdxoTKzrP9Eq rIv2KvSZ0CKMbctSHL04"},c.createElement("h5",null,"Select an entry to view its details"))};const ee=()=>{const e=f((e=>e.entry.bookmarkedEntries)),t=y(),n=(0,c.useCallback)((e=>()=>{t(j(e))}),[]),a=(0,c.useCallback)((e=>()=>{t(A(e))}),[]);return c.createElement("div",{className:"HK80a6ZVkdxoTKzrP9Eq aM5oGgiHs9rRHcHdAqFh"},c.createElement("h5",null,"Bookmarks"),c.createElement("hr",null),e.map((e=>c.createElement("div",{key:e.rawEntryId,className:"Ci1rEoM4eR29ZJcnvJJE"},c.createElement("p",{onClick:n(e)},e.displayText),c.createElement("button",{onClick:a(e)},"Remove")))))};var te="dklLbMzvzbuzLd2XJh3W",ne="vJvmAdZ2VafvyXjc16Mz";const ae=()=>{const e=f(w),t=f((t=>!!e&&t.entry.bookmarkedEntries.includes(e))),n=f((e=>e.entry.selectedEntryStack)),a=f((e=>e.entry.selectedEntryForwardStack)),r=y(),s=(0,c.useCallback)((()=>{e&&r(_(e))}),[e]),l=(0,c.useCallback)((()=>{e&&r(A(e))}),[e]),o=(0,c.useCallback)((()=>{r(I())}),[]),i=(0,c.useCallback)((()=>{r(x())}),[]),d=()=>c.createElement("div",{className:"LkGUkEuAC1lrNLYWXZAB"},c.createElement("button",{disabled:n.length<=1,onClick:o},"Back"),c.createElement("button",{disabled:0===a.length,onClick:i},"Forward"),t?c.createElement("button",{onClick:l,disabled:!e},"Remove Bookmark"):c.createElement("button",{onClick:s,disabled:!e},"Add Bookmark"));return e?c.createElement("div",{className:te},c.createElement("div",{className:ne},c.createElement("div",{className:"Hd2WYHIwrFrldD0I8qDj"},c.createElement("h5",null,"Selected entry:"),c.createElement("span",null,e.displayText)),d()),c.createElement("div",null,c.createElement("p",null,"Package Entry: ",e.rawEntryId),c.createElement("p",null,"Package JSON path: ",e.packageJsonFolderPath))):c.createElement("div",{className:te},c.createElement("div",{className:ne},c.createElement("h5",null,"No Entry Selected"),d()))};var re="wR2C2OTixe7QR738j44h",ce="Oo_rkIqOkO0j8slDAm5V";const se=()=>{const e=window.appContext.appVersion;return c.createElement("div",{className:"mqcpXwTQfD4A2eS4QRMa"},c.createElement("div",{className:"gxAXHLK7j_oYpFDmIJLR"},c.createElement("img",{className:re,src:n(769)})),c.createElement("div",null,c.createElement("a",{href:"https://www.npmjs.com/package/@rushstack/lockfile-explorer",target:"_blank",rel:"noreferrer"},c.createElement("div",{className:"rHArsuIMBTbIFs5o2cuw"},c.createElement("img",{className:re,src:n(500)})),c.createElement("div",{className:"P6XzPBuW8Osze59RSui1"},c.createElement("img",{className:re,src:n(126)})),c.createElement("div",{className:ce},e)),c.createElement("a",{href:"https://rushstack.io/",target:"_blank",rel:"noreferrer"},c.createElement("div",{className:ce},"rushstack.io"))))},le=(0,k.xC)({reducer:{entry:T,workspace:Y},middleware:e=>e({serializableCheck:!1})}),oe=document.getElementById("root");s.render(c.createElement(u.zt,{store:le},c.createElement((()=>{const e=y();return(0,c.useEffect)((()=>{(async function(){const t=await(async()=>{const e=await fetch(`${p}/`);return(e=>{const t=[],n={},c=[];if(e.importers)for(const[a,s]of Object.entries(e.importers)){const e=new d({rawEntryId:a,kind:r.Project,rawYamlData:s});c.push(e),t.push(e),n[e.entryId]=e}const s=[];if(e.packages)for(const[a,c]of Object.entries(e.packages)){const e=new d({rawEntryId:a,kind:r.Package,rawYamlData:c});s.push(e),t.push(e),n[a]=e}for(const e of t)for(const t of e.dependencies){if(t.dependencyType===a.PEER_DEPENDENCY)continue;const r=n[t.entryId];r?(t.resolvedEntry=r,r.referrers.push(e)):console.error("Could not resolve dependency entryId: ",t.entryId)}return t})(await e.json())})();e(D(t))})().catch((e=>{console.log(`Failed to read lockfile: ${e}`)}))}),[]),c.createElement("div",{className:"uXEYthi0e8fjYu_FisVm"},c.createElement("div",{className:"ms-Grid",dir:"ltr"},c.createElement("div",{className:"ms-Grid-row"},c.createElement("div",{className:"ms-Grid-col ms-sm3 HqAzbQwu1zc9yH8ZQESI"},c.createElement(F,null)),c.createElement("div",{className:"ms-Grid-col ms-sm7 HqAzbQwu1zc9yH8ZQESI"},c.createElement(ae,null),c.createElement(B,null),c.createElement(U,null)),c.createElement("div",{className:"ms-Grid-col ms-sm2 HqAzbQwu1zc9yH8ZQESI"},c.createElement(se,null),c.createElement(ee,null)))))}),null)),oe)},769:function(e,t,n){e.exports=n.p+"d39919ddc699d58b84ba.svg"},500:function(e,t,n){e.exports=n.p+"d13d30e9b42faf842d2f.svg"},126:function(e,t,n){e.exports=n.p+"510f03f81080fd3cfd63.svg"}},n={};function a(e){var r=n[e];if(void 0!==r)return r.exports;var c=n[e]={exports:{}};return t[e](c,c.exports,a),c.exports}a.m=t,e=[],a.O=function(t,n,r,c){if(!n){var s=1/0;for(d=0;d<e.length;d++){n=e[d][0],r=e[d][1],c=e[d][2];for(var l=!0,o=0;o<n.length;o++)(!1&c||s>=c)&&Object.keys(a.O).every((function(e){return a.O[e](n[o])}))?n.splice(o--,1):(l=!1,c<s&&(s=c));if(l){e.splice(d--,1);var i=r();void 0!==i&&(t=i)}}return t}c=c||0;for(var d=e.length;d>0&&e[d-1][2]>c;d--)e[d]=e[d-1];e[d]=[n,r,c]},a.d=function(e,t){for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e}(),function(){var e={143:0};a.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,c,s=n[0],l=n[1],o=n[2],i=0;if(s.some((function(t){return 0!==e[t]}))){for(r in l)a.o(l,r)&&(a.m[r]=l[r]);if(o)var d=o(a)}for(t&&t(n);i<s.length;i++)c=s[i],a.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return a.O(d)},n=self.webpackChunk_rushstack_lockfile_explorer_web=self.webpackChunk_rushstack_lockfile_explorer_web||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}();var r=a.O(void 0,[671],(function(){return a(302)}));r=a.O(r)}();
|
package/dist/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>Lockfile Explorer</title><link rel="stylesheet" href="https://static2.sharepointonline.com/files/fabric/office-ui-fabric-core/11.0.0/css/fabric.min.css"/><script defer="defer" src="initappcontext.js"></script><script defer="defer" src="671.7d28fb3bed4d33f53049.js"></script><script defer="defer" src="app.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>Lockfile Explorer</title><link rel="stylesheet" href="https://static2.sharepointonline.com/files/fabric/office-ui-fabric-core/11.0.0/css/fabric.min.css"/><script defer="defer" src="initappcontext.js"></script><script defer="defer" src="671.7d28fb3bed4d33f53049.js"></script><script defer="defer" src="app.d95bf1e71ba0734b9b85.js"></script><link href="app.f193c3b9231f507f3e67.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
package/lib/start.js
CHANGED
|
@@ -46,7 +46,8 @@ app.post('/api/package-json', (req, res) => {
|
|
|
46
46
|
const fileLocation = path_1.default.resolve(appState.projectRoot, projectPath, 'package.json');
|
|
47
47
|
if (!fs_1.default.existsSync(fileLocation)) {
|
|
48
48
|
return res.status(400).send({
|
|
49
|
-
message: `Could not load package.json file
|
|
49
|
+
message: `Could not load package.json file for this package. Have you installed all the dependencies for this workspace?`,
|
|
50
|
+
error: `No package.json in location: ${projectPath}`
|
|
50
51
|
});
|
|
51
52
|
}
|
|
52
53
|
const packageJson = fs_1.default.readFileSync(fileLocation);
|
package/lib/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;AAE3D,sDAA8B;AAC9B,sDAA2B;AAC3B,gDAAwB;AACxB,4CAAoB;AACpB,sDAA8B;AAC9B,gDAAwB;AACxB,gDAAwB;AACxB,iCAA8B;AAK9B,MAAM,IAAI,GAAW,IAAI,CAAC;AAC1B,iCAAiC;AACjC,MAAM,WAAW,GAAW,oBAAoB,IAAI,EAAE,CAAC;AACvD,MAAM,OAAO,GAAW,GAAG,WAAW,OAAO,CAAC;AAE9C,MAAM,QAAQ,GAAc,IAAA,WAAI,GAAE,CAAC;AAEnC,iBAAO,CAAC,KAAK,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1C,MAAM,GAAG,GAAwB,IAAA,iBAAO,GAAE,CAAC;AAC3C,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACxB,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;AAEhB,kGAAkG;AAClG,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,GAAoB,EAAE,GAAqB,EAAE,EAAE;IAChF,MAAM,UAAU,GAAgB;QAC9B,UAAU,EAAE,WAAW;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,SAAS,EAAE,iBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;KAChD,CAAC;IACF,MAAM,UAAU,GAAW;QACzB,0CAA0C;QAC1C,gBAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;KAC7C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAEpE,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,iBAAO,CAAC,MAAM,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAEtG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAoB,EAAE,GAAqB,EAAE,EAAE;IAC3D,MAAM,GAAG,GAAG,iBAAI,CAAC,IAAI,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjF,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,IAAI,CACN,mBAAmB,EACnB,CAAC,GAAyD,EAAE,GAAqB,EAAE,EAAE;IACnF,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IACjC,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IACrF,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;QAChC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport express from 'express';\nimport yaml from 'js-yaml';\nimport cors from 'cors';\nimport fs from 'fs';\nimport process from 'process';\nimport path from 'path';\nimport open from 'open';\nimport { init } from './init';\n\nimport { IAppState } from './state';\nimport type { IAppContext } from '@rushstack/lockfile-explorer-web/lib/AppContext';\n\nconst PORT: number = 8091;\n// Must not have a trailing slash\nconst SERVICE_URL: string = `http://localhost:${PORT}`;\nconst APP_URL: string = `${SERVICE_URL}/app/`;\n\nconst appState: IAppState = init();\n\nprocess.chdir(path.join(__dirname, '..'));\nconst app: express.Application = express();\napp.use(express.json());\napp.use(cors());\n\n// This takes precedence over the `/app` static route, which also has an `initappcontext.js` file.\napp.get('/app/initappcontext.js', (req: express.Request, res: express.Response) => {\n const appContext: IAppContext = {\n serviceUrl: SERVICE_URL,\n appVersion: appState.appVersion,\n debugMode: process.argv.indexOf('--debug') >= 0\n };\n const sourceCode: string = [\n `console.log('Loaded initappcontext.js');`,\n `appContext = ${JSON.stringify(appContext)}`\n ].join('\\n');\n\n res.type('application/javascript').send(sourceCode);\n});\n\napp.use('/app', express.static(path.resolve(__dirname, '../dist')));\n\napp.use('/favicon.ico', express.static(path.resolve(__dirname, '../dist'), { index: 'favicon.ico' }));\n\napp.get('/', (req: express.Request, res: express.Response) => {\n const doc = yaml.load(fs.readFileSync(appState.pnpmLockfileLocation).toString());\n res.send(doc);\n});\n\napp.post(\n '/api/package-json',\n (req: express.Request<{}, {}, { projectPath: string }, {}>, res: express.Response) => {\n const { projectPath } = req.body;\n const fileLocation = path.resolve(appState.projectRoot, projectPath, 'package.json');\n if (!fs.existsSync(fileLocation)) {\n return res.status(400).send({\n message: `Could not load package.json file for this package. Have you installed all the dependencies for this workspace?`,\n error: `No package.json in location: ${projectPath}`\n });\n }\n const packageJson = fs.readFileSync(fileLocation);\n res.send(packageJson);\n }\n);\n\napp.get('/api/pnpmfile', (req: express.Request, res: express.Response) => {\n const cjsFile = fs.readFileSync(path.resolve(appState.pnpmfileLocation));\n res.send(cjsFile);\n});\n\napp.post(\n '/api/package-spec',\n (req: express.Request<{}, {}, { projectPath: string }, {}>, res: express.Response) => {\n const { projectPath } = req.body;\n const fileLocation = path.resolve(appState.projectRoot, projectPath, 'package.json');\n if (!fs.existsSync(fileLocation)) {\n return res.status(400).send({\n message: `Could not load package.json file in location: ${projectPath}`\n });\n }\n const packageJson = fs.readFileSync(fileLocation).toString();\n\n const {\n hooks: { readPackage }\n } = require(path.resolve(appState.pnpmfileLocation));\n const parsedPackage = readPackage(JSON.parse(packageJson));\n res.send(parsedPackage);\n }\n);\n\napp.listen(PORT, async () => {\n console.log(`Rush Lockfile Explorer ${appState.appVersion} running at ${APP_URL}`);\n\n if (!process.argv.includes('--debug')) {\n try {\n // Launch the web browser\n await open(APP_URL);\n } catch (e) {\n console.error('Error launching browser: ' + e.toString());\n }\n }\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rushstack/lockfile-explorer",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "Rush Lockfile Explorer: The UI for solving version conflicts quickly in a large monorepo",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"conflict",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@rushstack/eslint-config": "3.1.1",
|
|
31
|
-
"@rushstack/heft-node-rig": "1.11.
|
|
32
|
-
"@rushstack/heft": "0.48.
|
|
31
|
+
"@rushstack/heft-node-rig": "1.11.8",
|
|
32
|
+
"@rushstack/heft": "0.48.8",
|
|
33
33
|
"@rushstack/lockfile-explorer-web": "0.0.0",
|
|
34
34
|
"@types/express": "4.17.13",
|
|
35
35
|
"@types/heft-jest": "1.0.1",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(){"use strict";var e,t={259:function(e,t,n){var r,a,s=n(823),c=n(998),l="HK80a6ZVkdxoTKzrP9Eq",i=n(201);!function(e){e[e.DEPENDENCY=0]="DEPENDENCY",e[e.DEV_DEPENDENCY=1]="DEV_DEPENDENCY",e[e.PEER_DEPENDENCY=2]="PEER_DEPENDENCY"}(r||(r={}));class o{constructor(e,t,n,a,s){if(this.entryId="",this.name=e,this.version=t,this.dependencyType=n,this.containingEntry=a,this.peerDependencyMeta={},this.version.startsWith("link:")){const t=this.version.substring("link:".length),n=new i.y(".").relative(new i.y(a.packageJsonFolderPath).concat(t));if(!n)return void console.error("No root relative path for dependency!",e);this.entryId="project:"+n.toString()}else this.version.startsWith("/")?this.entryId=this.version:this.dependencyType===r.PEER_DEPENDENCY?(null==s?void 0:s.peerDependencies)?this.peerDependencyMeta={name:this.name,version:s.peerDependencies[this.name],optional:!(!s.peerDependenciesMeta||!s.peerDependenciesMeta[this.name])&&s.peerDependenciesMeta[this.name].optional}:console.error("Peer dependencies info missing!",s):this.entryId="/"+this.name+"/"+this.version}static parseDependencies(e,t,n){if(n.dependencies)for(const[a,s]of Object.entries(n.dependencies))e.push(new o(a,s,r.DEPENDENCY,t));if(n.devDependencies)for(const[a,s]of Object.entries(n.devDependencies))e.push(new o(a,s,r.DEV_DEPENDENCY,t));if(n.peerDependencies)for(const[a,s]of Object.entries(n.peerDependencies))e.push(new o(a,s,r.PEER_DEPENDENCY,t,n));if(n.transitivePeerDependencies)for(const e of n.transitivePeerDependencies)t.transitivePeerDependencies.add(e)}}!function(e){e[e.Project=0]="Project",e[e.Package=1]="Package",e[e.SideBySide=2]="SideBySide",e[e.Doppelganger=3]="Doppelganger"}(a||(a={}));class d{constructor(e){this.entryId="",this.packageJsonFolderPath="",this.entryPackageName="",this.displayText="",this.dependencies=[],this.transitivePeerDependencies=new Set,this.referrers=[],this.entryPackageVersion="",this.entrySuffix="";const{rawEntryId:t,kind:n,rawYamlData:r}=e;if(this.rawEntryId=t,this.kind=n,"."!==t){if(n===a.Project){const e=new i.y("common/temp/package.json").dirname()||"",n=new i.y(".").relative(new i.y(e).concat(t)),r=new i.y(t).basename();if(!n||!r)return void console.error("Could not construct path for entry: ",t);this.packageJsonFolderPath=n.toString(),this.entryId="project:"+this.packageJsonFolderPath,this.entryPackageName=r.toString(),this.displayText="Project: "+this.entryPackageName}else{this.displayText=t;const e=d._packageEntryIdRegex.exec(t);if(e){const[,t,n]=e;this.entryPackageName=t;const r=n.indexOf("_");if(r>=0){const e=n.substring(0,r),a=n.substring(r+1);this.entryPackageVersion=e,this.entrySuffix=a,this.displayText=t+" "+e+" ("+a+")"}else this.entryPackageVersion=n,this.displayText=t+" "+n}this.packageJsonFolderPath="common/temp/node_modules/.pnpm/"+this.entryPackageName.replace("/","+")+"@"+this.entryPackageVersion+(this.entrySuffix?`_${this.entrySuffix}`:"")+"/node_modules/"+this.entryPackageName}o.parseDependencies(this.dependencies,this,r)}}}d._packageEntryIdRegex=new RegExp("/(.*)/([^/]+)$");const p=window.appContext.serviceUrl;var m="IWEAxDEzQLw3g5TI_6up",E=n(300);const u=E.I0,f=E.v9;var y=n(329);const h={allEntries:[],filters:{[a.Project]:!1,[a.Package]:!0,[a.SideBySide]:!1,[a.Doppelganger]:!1},selectedEntryStack:[],bookmarkedEntries:[]},k=(0,y.oM)({name:"entry",initialState:h,reducers:{loadEntries:(e,t)=>{e.allEntries=t.payload},setFilter:(e,t)=>{e.filters[t.payload.filter]=t.payload.state},clearStackAndPush:(e,t)=>{e.selectedEntryStack=[t.payload]},pushToStack:(e,t)=>{e.selectedEntryStack.push(t.payload)},popStack:e=>{e.selectedEntryStack.length>1&&e.selectedEntryStack.pop()},addBookmark:(e,t)=>{e.bookmarkedEntries.includes(t.payload)||e.bookmarkedEntries.push(t.payload)},removeBookmark:(e,t)=>{e.bookmarkedEntries=e.bookmarkedEntries.filter((e=>e.rawEntryId!==t.payload.rawEntryId))}}}),v=e=>e.entry.selectedEntryStack.length?e.entry.selectedEntryStack[e.entry.selectedEntryStack.length-1]:void 0,g=e=>{const t=[];return e.entry.filters[a.Package]?t.push(...e.entry.allEntries.filter((e=>e.kind===a.Package))):e.entry.filters[a.Project]&&t.push(...e.entry.allEntries.filter((e=>e.kind===a.Project))),t},{loadEntries:N,setFilter:P,clearStackAndPush:D,pushToStack:w,popStack:S,addBookmark:b,removeBookmark:C}=k.actions,j=k.reducer;const x=({options:e})=>s.createElement("div",{className:"b1H6mzJXpxsG350hyeU_"},e.map((e=>s.createElement("div",{key:e.text,className:"mWhs4CnCA0TKj6CRR8gk "+(e.active?"Q9WEwAuQb3UsVbcHr0oI":""),onClick:e.onClick},e.text)))),O=({group:e})=>{const t=f(v),n=u(),r=(0,s.useRef)(),a=(0,s.useCallback)((e=>()=>{n(D(e))}),[]);return(0,s.useEffect)((()=>{t&&t.entryPackageName===e.entryName&&r.current.scrollIntoView({behavior:"smooth"})}),[t,e]),s.createElement("div",{className:"OcndyDBetZor3ptzTnTX",ref:r},s.createElement("h5",null,e.entryName),e.versions.map((e=>s.createElement("div",{key:e.rawEntryId,onClick:a(e),className:"Wg5pG3RVf6SQ51i0tVkd "+((null==t?void 0:t.rawEntryId)===e.rawEntryId?"NBIr3yosJ9gX6LZcnC7T":"")},s.createElement("p",null,e.entryPackageVersion||e.entryPackageName," ",e.entrySuffix&&`[${e.entrySuffix}]`)))))},_=()=>{const[e,t]=(0,s.useState)(""),n=f(g),r=f((e=>e.entry.filters)),c=(0,s.useCallback)((e=>t(e.target.value)),[]),l=f((e=>e.entry.selectedEntryStack)),i=u();if(!n)return null;const o=(0,s.useCallback)((()=>{i(S())}),[]),d=(0,s.useCallback)((e=>t=>{i(P({filter:e,state:t.target.checked}))}),[]),p=(0,s.useCallback)((e=>()=>{e===a.Project?(i(P({filter:e,state:!r[e]})),i(P({filter:a.Package,state:!1}))):(i(P({filter:e,state:!r[e]})),i(P({filter:a.Project,state:!1})))}),[r]);return s.createElement(s.Fragment,null,s.createElement(x,{options:[{text:"Projects",active:r[a.Project],onClick:p(a.Project)},{text:"Packages",active:r[a.Package],onClick:p(a.Package)}]}),s.createElement("div",{className:"HK80a6ZVkdxoTKzrP9Eq yk7wrFMnnNyYLABMBhz_"},s.createElement("div",{className:"oq4FJVnF_fONdOKuiK0w"},l.length>1?s.createElement("button",{onClick:o},"back"):null,s.createElement("h5",null,"filter:"),s.createElement("input",{type:"text",value:e,onChange:c})),s.createElement("div",{className:"PoJj8_8xv9BXiMVPKFVE"},(()=>{let t=[];t=e?n.filter((t=>-1!==t.entryPackageName.indexOf(e))):n;const s=t.reduce(((e,t)=>{const n=e[t.entryPackageName]||[];return n.push(t),e[t.entryPackageName]=n,e}),{});let c=[];for(const[e,t]of Object.entries(s))c.push({entryName:e,versions:t});return r[a.SideBySide]&&(c=c.filter((e=>e.versions.length>1))),r[a.Doppelganger]&&(c=c.filter((e=>(e=>{const t=new Set;for(const n of e){if(t.has(n.entryPackageVersion))return!0;t.add(n.entryPackageVersion)}return!1})(e.versions)))),c})().map((e=>s.createElement(O,{group:e,key:e.entryName})))),s.createElement("div",{className:"K6dDN5KzjLkbPPFWUaly"},s.createElement("h5",null,"Filters"),s.createElement("div",{className:m},s.createElement("input",{type:"checkbox",checked:r[a.SideBySide],onChange:d(a.SideBySide)}),s.createElement("h5",null,"Must have side-by-side versions")),s.createElement("div",{className:m},s.createElement("input",{type:"checkbox",checked:r[a.Doppelganger],onChange:d(a.Doppelganger)}),s.createElement("h5",null,"Must have doppelgangers")))))},I=window.appContext.serviceUrl;var A;!function(e){e[e.PACKAGE_JSON=0]="PACKAGE_JSON",e[e.CJS=1]="CJS",e[e.PARSED_PACKAGE_JSON=2]="PARSED_PACKAGE_JSON"}(A||(A={}));const T=()=>{const[e,t]=(0,s.useState)(void 0),[n,r]=(0,s.useState)(void 0),[a,c]=(0,s.useState)(new Map),[i,o]=(0,s.useState)(""),d=f(v),[p,m]=(0,s.useState)(A.PARSED_PACKAGE_JSON),E=(0,s.useCallback)((e=>()=>m(e)),[]);(0,s.useEffect)((()=>{d&&(d.entryPackageName?async function(e){const n=await(async()=>{try{const e=await fetch(`${I}/api/pnpmfile`);return await e.text()}catch(e){return console.error("Could not load cjs file: ",e),"Missing CJS"}})();o(n);const a=await(async e=>{try{const t=await fetch(`${I}/api/package-json`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:e})});return await t.json()}catch(e){return void console.error("Could not load package json file: ",e)}})(e);t(a);const s=await(async e=>{try{const t=await fetch(`${I}/api/package-spec`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:e})});return await t.json()}catch(e){return void console.error("Could not load cjs file: ",e)}})(e);if(r(s),a&&s){const e=((e,t)=>{const n=new Map,r=new Map;for(const[t,r]of Object.entries(Object.assign(Object.assign(Object.assign({},e.dependencies),e.devDependencies),e.peerDependencies)))n.set(t,r);for(const[e,n]of Object.entries(Object.assign(Object.assign(Object.assign({},t.dependencies),t.devDependencies),t.peerDependencies)))r.set(e,n);const a=new Map;for(const e of n.keys())r.has(e)?r.get(e)!==n.get(e)&&a.set(e,{type:"diff",packageName:e,from:n.get(e),to:r.get(e)}):a.set(e,{type:"remove",packageName:e});for(const e of r.keys())n.has(e)||a.set(e,{type:"add",packageName:e});return a})(a,s);c(e)}}(d.packageJsonFolderPath).catch((e=>{console.error(`Failed to load project information: ${e}`)})):console.log("The selected entry has no entry name: ",d.entryPackageName))}),[d]);const u=e=>{var t,n;const[r,c]=e;if(!a.has(r))return s.createElement("p",{key:r},r,": ",c);switch(null===(t=a.get(r))||void 0===t?void 0:t.type){case"add":return s.createElement("p",{key:r},s.createElement("span",{className:"nTIc62ACgp5xMWIvZ4cn"},r,": ",c)," ","[Added by .pnpmfile.cjs]");case"diff":return s.createElement("p",{key:r},s.createElement("span",{className:"I4A8ZZlpCL3Op0c53VjN"},r,": ",c)," ","[Changed from ",null===(n=a.get(r))||void 0===n?void 0:n.from,"]");case"remove":return s.createElement("p",{key:r},s.createElement("span",{className:"iavWjvHy9s5MhCZ_ncgb"},r,": ",c)," ","[Deleted by .pnpmfile.cjs]");default:return s.createElement("p",{key:r},r,": ",c)}};return s.createElement("div",null,s.createElement(x,{options:[{text:"package spec",active:p===A.PARSED_PACKAGE_JSON,onClick:E(A.PARSED_PACKAGE_JSON)},{text:"package.json",active:p===A.PACKAGE_JSON,onClick:E(A.PACKAGE_JSON)},{text:".pnpmfile.cjs",active:p===A.CJS,onClick:E(A.CJS)}]}),s.createElement("div",{className:l},s.createElement("div",{className:"e2KEBfZCHwEMeH4j6wS7"},(()=>{switch(p){case A.PACKAGE_JSON:return e?s.createElement("pre",null,JSON.stringify(e,null,2)):null;case A.CJS:return s.createElement("pre",null,i);case A.PARSED_PACKAGE_JSON:return n?s.createElement("div",{className:"Ko0YQxSlY0hCIDTfmNlr"},s.createElement("h5",null,"Dependencies"),n.dependencies&&Object.entries(n.dependencies).map(u),s.createElement("h5",null,"Dev Dependencies"),n.devDependencies&&Object.entries(n.devDependencies).map(u),s.createElement("h5",null,"Peer Dependencies"),n.peerDependencies&&Object.entries(n.peerDependencies).map(u)):null;default:return null}})())))};var R,J="_R50_3JsFs2FC9kVffQL",F="mRQWdzXzOM1NpFUpYnhP";!function(e){e[e.Determinant=0]="Determinant",e[e.TransitiveReferrer=1]="TransitiveReferrer"}(R||(R={}));const M=()=>{var e,t;const n=f(v),a=u(),[c,i]=(0,s.useState)(null),[o,d]=(0,s.useState)([]);(0,s.useEffect)((()=>{n&&i(null)}),[n]);const p=(0,s.useCallback)((e=>()=>{if(c&&c.name===e.name)e.resolvedEntry?a(w(e.resolvedEntry)):((...e)=>{console.log("Diagnostic: ",...e)})("No resolved entry for dependency:",e);else if(n){i(e);const t=[n],r=new Set,a=new Set,s=new Set;for(s.add(n);t.length;){const n=t.pop();if(n)for(const c of n.referrers){let l=!1;for(const t of c.dependencies)if(t.name===e.name){r.add(c),l=!0;break}if(!l){c.transitivePeerDependencies.has(e.name)?a.add(c):console.error('Error analyzing influencers: A referrer appears to be missing its "transitivePeerDependencies" field in the YAML file: ',c);for(const e of n.referrers)s.has(e)||(t.push(e),s.add(e))}}}const c=[];for(const e of r.values())c.push({entry:e,type:R.Determinant});for(const e of a.values())c.push({entry:e,type:R.TransitiveReferrer});d(c)}}),[n,c]),m=(0,s.useCallback)((e=>()=>{a(w(e))}),[n]);return n?s.createElement(s.Fragment,null,s.createElement("div",{className:"KWDuEbG1GmwLxFmPPppw"},s.createElement("div",{className:l},s.createElement("h5",null,"Direct Referrers"),s.createElement("div",{className:J},null===(e=n.referrers)||void 0===e?void 0:e.map((e=>s.createElement("div",{className:F,key:e.rawEntryId,onClick:m(e)},s.createElement("h5",null,"Name: ",e.displayText),s.createElement("div",null,s.createElement("p",null,"Entry ID: ",e.rawEntryId))))))),s.createElement("div",{className:l},s.createElement("h5",null,"Direct Dependencies"),s.createElement("div",{className:J},null===(t=n.dependencies)||void 0===t?void 0:t.map((e=>s.createElement("div",{className:`mRQWdzXzOM1NpFUpYnhP ${(null==c?void 0:c.name)===e.name&&"GbZbP1wHbcReGrxpZ3Ra"}`,key:e.entryId||e.name,onClick:p(e)},s.createElement("h5",null,"Name: ",e.name," ",e.dependencyType===r.PEER_DEPENDENCY?(e.peerDependencyMeta.optional?"(Optional)":"(Non-optional)")+" Peer Dependency":""),s.createElement("div",null,s.createElement("p",null,"Version: ",e.version),s.createElement("p",null,"Entry ID: ",e.entryId)))))))),n?n.dependencies.filter((e=>e.dependencyType===r.PEER_DEPENDENCY)).length?c&&c.dependencyType===r.PEER_DEPENDENCY?s.createElement("div",{className:l},s.createElement("h5",null,"Influencers:"),o.filter((e=>e.type===R.Determinant)).map((({entry:e})=>s.createElement("div",{key:e.rawEntryId},e.displayText))),s.createElement("h5",null,"Transitive Referencers:"),o.filter((e=>e.type===R.TransitiveReferrer)).map((({entry:e})=>s.createElement("div",{key:e.rawEntryId},e.displayText)))):s.createElement("div",null,s.createElement("h5",null,"Select a peer dependency to view its influencers")):s.createElement("div",{className:l},s.createElement("h5",null,"No peer dependencies.")):null):s.createElement("div",{className:l},s.createElement("h5",null,"Select an entry to view its details"))};const K=()=>{const e=f((e=>e.entry.bookmarkedEntries)),t=u(),n=(0,s.useCallback)((e=>()=>{t(D(e))}),[]),r=(0,s.useCallback)((e=>()=>{t(C(e))}),[]);return s.createElement("div",{className:"HK80a6ZVkdxoTKzrP9Eq aM5oGgiHs9rRHcHdAqFh"},s.createElement("h5",null,"Bookmarks"),s.createElement("hr",null),e.map((e=>s.createElement("div",{key:e.rawEntryId,className:"Ci1rEoM4eR29ZJcnvJJE"},s.createElement("p",{onClick:n(e)},e.displayText),s.createElement("button",{onClick:r(e)},"Remove")))))};var Y="dklLbMzvzbuzLd2XJh3W";const V=()=>{const e=f(v),t=f((t=>!!e&&t.entry.bookmarkedEntries.includes(e))),n=u(),r=(0,s.useCallback)((()=>{e&&n(b(e))}),[e]),a=(0,s.useCallback)((()=>{e&&n(C(e))}),[e]);return e?s.createElement("div",{className:Y},s.createElement("div",{className:"Hd2WYHIwrFrldD0I8qDj"},s.createElement("h5",null,"Selected entry:"),s.createElement("span",null,e.displayText)),s.createElement("p",null,"Package Entry: ",e.rawEntryId),s.createElement("p",null,"Package JSON path: ",e.packageJsonFolderPath),t?s.createElement("button",{onClick:a},"Remove Bookmark"):s.createElement("button",{onClick:r},"Add Bookmark")):s.createElement("div",{className:Y},s.createElement("h5",null,"No Entry Selected"))};var z="wR2C2OTixe7QR738j44h",B="Oo_rkIqOkO0j8slDAm5V";const G=()=>{const e=window.appContext.appVersion;return s.createElement("div",{className:"mqcpXwTQfD4A2eS4QRMa"},s.createElement("a",{href:"https://www.npmjs.com/package/@rushstack/lockfile-explorer",target:"_blank",rel:"noreferrer"},s.createElement("div",{className:"gxAXHLK7j_oYpFDmIJLR"},s.createElement("img",{className:z,src:n(769)})),s.createElement("div",{className:"rHArsuIMBTbIFs5o2cuw"},s.createElement("img",{className:z,src:n(500)})),s.createElement("div",{className:"P6XzPBuW8Osze59RSui1"},s.createElement("img",{className:z,src:n(126)})),s.createElement("div",{className:B},e),s.createElement("div",{className:B},"rushstack.io")))},H=(0,y.xC)({reducer:{entry:j},middleware:e=>e({serializableCheck:!1})}),W=document.getElementById("root");c.render(s.createElement(E.zt,{store:H},s.createElement((()=>{const e=u();return(0,s.useEffect)((()=>{(async function(){const t=await(async()=>{const e=await fetch(`${p}/`);return(e=>{const t=[],n={},r=[];if(e.importers)for(const[s,c]of Object.entries(e.importers)){const e=new d({rawEntryId:s,kind:a.Project,rawYamlData:c});r.push(e),t.push(e),n[e.entryId]=e}const s=[];if(e.packages)for(const[r,c]of Object.entries(e.packages)){const e=new d({rawEntryId:r,kind:a.Package,rawYamlData:c});s.push(e),t.push(e),n[r]=e}for(const e of t)for(const t of e.dependencies){const r=n[t.entryId];r?(t.resolvedEntry=r,r.referrers.push(e)):console.error("Could not resolve dependency entryId: ",t.entryId)}return t})(await e.json())})();e(N(t))})().catch((e=>{console.log(`Failed to read lockfile: ${e}`)}))}),[]),s.createElement("div",{className:"uXEYthi0e8fjYu_FisVm"},s.createElement("div",{className:"FFuReYR1pIswEW7Az6w9"},s.createElement("div",{className:"ms-Grid",dir:"ltr"},s.createElement("div",{className:"ms-Grid-row"},s.createElement("div",{className:"ms-Grid-col ms-sm3"},s.createElement(_,null)),s.createElement("div",{className:"ms-Grid-col ms-sm7 HqAzbQwu1zc9yH8ZQESI"},s.createElement(V,null),s.createElement(T,null),s.createElement(M,null)),s.createElement("div",{className:"ms-Grid-col ms-sm2"},s.createElement(K,null))))),s.createElement(G,null))}),null)),W)},769:function(e,t,n){e.exports=n.p+"d39919ddc699d58b84ba.svg"},500:function(e,t,n){e.exports=n.p+"d13d30e9b42faf842d2f.svg"},126:function(e,t,n){e.exports=n.p+"510f03f81080fd3cfd63.svg"}},n={};function r(e){var a=n[e];if(void 0!==a)return a.exports;var s=n[e]={exports:{}};return t[e](s,s.exports,r),s.exports}r.m=t,e=[],r.O=function(t,n,a,s){if(!n){var c=1/0;for(d=0;d<e.length;d++){n=e[d][0],a=e[d][1],s=e[d][2];for(var l=!0,i=0;i<n.length;i++)(!1&s||c>=s)&&Object.keys(r.O).every((function(e){return r.O[e](n[i])}))?n.splice(i--,1):(l=!1,s<c&&(c=s));if(l){e.splice(d--,1);var o=a();void 0!==o&&(t=o)}}return t}s=s||0;for(var d=e.length;d>0&&e[d-1][2]>s;d--)e[d]=e[d-1];e[d]=[n,a,s]},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e}(),function(){var e={143:0};r.O.j=function(t){return 0===e[t]};var t=function(t,n){var a,s,c=n[0],l=n[1],i=n[2],o=0;if(c.some((function(t){return 0!==e[t]}))){for(a in l)r.o(l,a)&&(r.m[a]=l[a]);if(i)var d=i(r)}for(t&&t(n);o<c.length;o++)s=c[o],r.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return r.O(d)},n=self.webpackChunk_rushstack_lockfile_explorer_web=self.webpackChunk_rushstack_lockfile_explorer_web||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}();var a=r.O(void 0,[671],(function(){return r(259)}));a=r.O(a)}();
|