package Ġid . walt . issuer . backend Ċ Ċ import Ġid . walt . model . oidc . Credential Claim Ċ import Ġid . walt . vc lib . model . Abstract Ver ifiable Credential Ċ import Ġid . walt . vc lib . model . Credential Subject Ċ import Ġid . walt . vc lib . registry . Vc Type Registry Ċ import Ġid . walt . vc lib . templates . Vc Template Manager Ċ Ċ data Ġclass ĠIss uable Credential Ġ( ĊĠ Ġval Ġschema Id : ĠString , ĊĠ Ġval Ġtype : ĠString , ĊĠ Ġval Ġcredential Data : ĠMap < String , ĠAny >? Ġ= Ġnull Ċ ) Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġfrom Template Id ( template Id : ĠString ): ĠIss uable Credential Ġ{ ĊĠĠĠĠĠ Ġval Ġtmpl Ġ= ĠV c Template Manager . load Template ( template Id ) ĊĠĠĠĠĠ Ġreturn ĠIss uable Credential ( ĊĠĠĠĠĠĠĠ Ġtmpl !!. credential Schema !!. id , ĊĠĠĠĠĠĠĠ Ġtmpl . type . last (), ĊĠĠĠĠĠĠĠ Ġmap Of ( Pair (" credential Subject ", Ġ( tmpl Ġas ĠAbstract Ver ifiable Credential < out ĠCredential Subject >). credential Subject !! ))) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠIss u ables Ġ( ĊĠ Ġval Ġcredentials : ĠList < Iss uable Credential > ĊĠĠĠ Ġ) Ċ { ĊĠ Ġval Ġcredentials ByType ĊĠĠĠ Ġget () Ġ= Ġcredentials . associate By Ġ{ Ġit . type Ġ} ĊĠ Ġval Ġcredentials By Schema Id ĊĠĠĠ Ġget () Ġ= Ġcredentials . associate By Ġ{ Ġit . schema Id Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġfrom Credential Claims ( credential Claims : ĠList < Credential Claim >): ĠIss u ables Ġ{ ĊĠĠĠĠĠ Ġreturn ĠIss u ables ( ĊĠĠĠĠĠĠĠ Ġcredentials Ġ= Ġcredential Claims . flatMap Ġ{ Ġclaim Ġ-> ĠV c Type Registry . get Types With Template (). values ĊĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . metadata . template !! () Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . credential Schema Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġ( is Schema ( claim . type !! ) Ġ&& Ġit . credential Schema !!. id Ġ== Ġclaim . type ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! is Schema ( claim . type !! ) Ġ&& Ġit . type . last () Ġ== Ġclaim . type ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . type . last () Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġ. map Ġ{ ĠIss uable Credential . from Template Id ( it ) Ġ} ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠN once Response ( ĊĠ Ġval Ġp _ nonce : ĠString , ĊĠ Ġval Ġexpires _ in : ĠString ? Ġ= Ġnull Ċ ) Ċ