package Ġcom . jetbrains . r ider . plugins . unity . package Manager Ċ Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ Ċ enum Ġclass ĠPackage Source Ġ{ ĊĠĠĠ ĠUnknown , ĊĠĠĠ ĠBuilt In , ĊĠĠĠ ĠRegistry , ĊĠĠĠ ĠEmbedded , ĊĠĠĠ ĠLocal , ĊĠĠĠ ĠGit ; ĊĊĠĠĠ Ġfun Ġis Editable (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġ== ĠEmbedded Ġ|| Ġthis Ġ== ĠLocal ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠPackage Data ( val Ġname : ĠString , Ġval Ġpackage Folder : ĠVirtual File ?, Ġval Ġdetails : ĠPackage Details , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource : ĠPackage Source , Ġval Ġgit Details : ĠGit Details ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġunknown ( name : ĠString , Ġversion : ĠString , Ġsource : ĠPackage Source Ġ= ĠPackage Source . Unknown ): ĠPackage Data Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPackage Data ( name , Ġnull , ĠPackage Details ( name , Ġ"$ name @ $ version ", Ġversion , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Cannot Ġresolve Ġpackage Ġ'$ name ' Ġwith Ġversion Ġ'$ version '", Ġ"", Ġmap Of ()), Ġsource ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠCan onical Ġname Ġis Ġthe Ġname Ġfrom Ġpackage . json , Ġor Ġthe Ġpackage 's Ġfolder Ġname Ġif Ġmissing Ċ // ĠDisplay Ġname Ġis Ġthe Ġdisplay Ġname Ġfrom Ġpackage . json , Ġfalling Ġback Ġto Ġpackage . json Ġname Ġand Ġthen Ġfolder Ġname Ċ // ĠFor Ġun resolved Ġpackages , Ġname Ġis Ġthe Ġname Ġfrom Ġmanifest . json Ġand Ġdisplay Ġname Ġis Ġname @ version Ġfrom Ġmanifest . json Ċ data Ġclass ĠPackage Details ( val Ġcanonical Name : ĠString , Ġval ĠdisplayName : ĠString , Ġval Ġversion : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription : ĠString , Ġval Ġauthor : ĠString , Ġval Ġdependencies : ĠMap < String , ĠString >) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Package Json ( package Folder : ĠVirtual File , Ġpackage Json : ĠPackage Json ?): ĠPackage Details ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( package Json Ġ== Ġnull ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġpackage Json . name Ġ?: Ġpackage Folder . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPackage Details ( name , Ġpackage Json . displayName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġname , Ġpackage Json . version Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Json . description Ġ?: Ġ"", Ġget Author ( package Json . author ), Ġpackage Json . dependencies Ġ?: Ġmap Of ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Author ( author : ĠAny ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( author Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( author Ġis ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġauthor ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( author Ġis ĠMap < *, Ġ* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġauthor [" name "] Ġas ĠString ? Ġ?: Ġ""; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ""; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠGit Details ( val Ġurl : ĠString , Ġval Ġrevision : ĠString , Ġval Ġhash : ĠString ) Ċ Ċ // ĠOther Ġproperties Ġare Ġavailable : Ġcategory , Ġkeywords , Ġun ity Ġ( supported Ġversion ) Ċ data Ġclass ĠPackage Json ( val Ġname : ĠString ?, Ġval ĠdisplayName : ĠString ?, Ġval Ġversion : ĠString ?, Ġval Ġdescription : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġauthor : ĠAny ?, Ġval Ġdependencies : ĠMap < String , ĠString > ?) ĊĊ