fix: fix compliance with Keyoxide v2 spec

This commit is contained in:
Yarmo Mackenbach 2023-07-10 10:25:17 +02:00
parent 58561d6e0d
commit 6eb2435127
No known key found for this signature in database
GPG key ID: 3C57D093219103A3
3 changed files with 26 additions and 8 deletions

View file

@ -321,20 +321,24 @@ export class Claim {
*/
toJSON () {
let displayName = this._uri
let displayUrl = ''
let displayServiceProviderName = ''
let displayUrl = null
let displayServiceProviderName = null
if (this._status >= 200 && this._status < 300) {
displayName = this._matches[0].profile.display
displayUrl = this._matches[0].profile.uri
displayServiceProviderName = this._matches[0].about.id
displayServiceProviderName = this._matches[0].about.name
} else if (this._status == ClaimStatus.MATCHED && !this.isAmbiguous()) {
displayName = this._matches[0].profile.display
displayUrl = this._matches[0].profile.uri
displayServiceProviderName = this._matches[0].about.name
}
return {
claimVersion: 2,
uri: this._uri,
proofs: [this._fingerprint],
matches: this._matches,
matches: this._matches.map(x => x.toJSON()),
status: this._status,
display: {
name: displayName,

View file

@ -84,7 +84,7 @@ export class Profile {
*/
encoding: PublicKeyEncoding.NONE,
/**
* The raw cryptographic key
* The encoded cryptographic key
* @type {string | null}
* @public
*/
@ -164,8 +164,8 @@ export class Profile {
primaryPersonaIndex: this.primaryPersonaIndex,
publicKey: {
keyType: this.publicKey.keyType,
format: this.publicKey.format,
keyData: this.publicKey.keyData,
encoding: this.publicKey.encoding,
encodedKey: this.publicKey.encodedKey,
fetch: {
method: this.publicKey.fetch.method,
query: this.publicKey.fetch.query,

View file

@ -94,7 +94,7 @@ export class ServiceProvider {
request: {
/**
* Location of the proof
* @type {string}
* @type {string | null}
*/
uri: spObj.proof.request.uri,
/**
@ -131,4 +131,18 @@ export class ServiceProvider {
target: spObj.proof.target
}
}
/**
* Get a JSON representation of the ServiceProvider object
* @function
* @returns {object}
*/
toJSON () {
return {
about: this.about,
profile: this.profile,
claim: this.claim,
proof: this.proof
}
}
}