|
@ -22,7 +22,7 @@ export interface AgreeVerifiableCredential { |
|
|
"@type": string; |
|
|
"@type": string; |
|
|
// "any" because arbitrary objects can be subject of agreement
|
|
|
// "any" because arbitrary objects can be subject of agreement
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
object: Record<any, any>; |
|
|
object: Record<string, any>; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
export interface GiverInputInfo { |
|
|
export interface GiverInputInfo { |
|
@ -46,6 +46,7 @@ export interface ClaimResult { |
|
|
export interface GenericVerifiableCredential { |
|
|
export interface GenericVerifiableCredential { |
|
|
"@context": string; |
|
|
"@context": string; |
|
|
"@type": string; |
|
|
"@type": string; |
|
|
|
|
|
[key: string]: any; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
export interface GenericServerRecord extends GenericVerifiableCredential { |
|
|
export interface GenericServerRecord extends GenericVerifiableCredential { |
|
@ -54,7 +55,7 @@ export interface GenericServerRecord extends GenericVerifiableCredential { |
|
|
issuedAt: string; |
|
|
issuedAt: string; |
|
|
issuer: string; |
|
|
issuer: string; |
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
claim: Record<any, any>; |
|
|
claim: Record<string, any>; |
|
|
claimType?: string; |
|
|
claimType?: string; |
|
|
} |
|
|
} |
|
|
export const BLANK_GENERIC_SERVER_RECORD: GenericServerRecord = { |
|
|
export const BLANK_GENERIC_SERVER_RECORD: GenericServerRecord = { |
|
@ -330,7 +331,7 @@ export function addLastClaimOrHandleAsIdIfMissing( |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// return clone of object without any nested *VisibleToDids keys
|
|
|
// return clone of object without any nested *VisibleToDids keys
|
|
|
// similar logic is found in endorser-mobile
|
|
|
// similar code is also contained in endorser-mobile
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
export function removeVisibleToDids(input: any): any { |
|
|
export function removeVisibleToDids(input: any): any { |
|
|
if (input instanceof Object) { |
|
|
if (input instanceof Object) { |
|
@ -340,7 +341,6 @@ export function removeVisibleToDids(input: any): any { |
|
|
const result: Record<string, any> = {}; |
|
|
const result: Record<string, any> = {}; |
|
|
for (const key in input) { |
|
|
for (const key in input) { |
|
|
if (!key.endsWith("VisibleToDids")) { |
|
|
if (!key.endsWith("VisibleToDids")) { |
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
|
|
|
result[key] = removeVisibleToDids(R.clone(input[key])); |
|
|
result[key] = removeVisibleToDids(R.clone(input[key])); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -349,7 +349,6 @@ export function removeVisibleToDids(input: any): any { |
|
|
// it's an array
|
|
|
// it's an array
|
|
|
return R.map(removeVisibleToDids, input); |
|
|
return R.map(removeVisibleToDids, input); |
|
|
} |
|
|
} |
|
|
return false; |
|
|
|
|
|
} else { |
|
|
} else { |
|
|
return input; |
|
|
return input; |
|
|
} |
|
|
} |
|
@ -518,6 +517,28 @@ export async function createAndSubmitOffer( |
|
|
); |
|
|
); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// similar logic is found in endorser-mobile
|
|
|
|
|
|
export const createAndSubmitConfirmation = async ( |
|
|
|
|
|
identifier: IIdentifier, |
|
|
|
|
|
claim: GenericVerifiableCredential, |
|
|
|
|
|
lastClaimId: string, // used to set the lastClaimId
|
|
|
|
|
|
handleId: string | undefined, |
|
|
|
|
|
apiServer: string, |
|
|
|
|
|
axios: Axios, |
|
|
|
|
|
) => { |
|
|
|
|
|
const goodClaim = removeSchemaContext( |
|
|
|
|
|
removeVisibleToDids( |
|
|
|
|
|
addLastClaimOrHandleAsIdIfMissing(claim, lastClaimId, handleId), |
|
|
|
|
|
), |
|
|
|
|
|
); |
|
|
|
|
|
const confirmationClaim: GenericVerifiableCredential = { |
|
|
|
|
|
"@context": "https://schema.org", |
|
|
|
|
|
"@type": "AgreeAction", |
|
|
|
|
|
object: goodClaim, |
|
|
|
|
|
}; |
|
|
|
|
|
return createAndSubmitClaim(confirmationClaim, identifier, apiServer, axios); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
export async function createAndSubmitClaim( |
|
|
export async function createAndSubmitClaim( |
|
|
vcClaim: GenericVerifiableCredential, |
|
|
vcClaim: GenericVerifiableCredential, |
|
|
identity: IIdentifier, |
|
|
identity: IIdentifier, |
|
@ -583,7 +604,7 @@ export async function createAndSubmitClaim( |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
export const isAccept = (claim: Record<any, any>) => { |
|
|
export const isAccept = (claim: Record<string, any>) => { |
|
|
return ( |
|
|
return ( |
|
|
claim && |
|
|
claim && |
|
|
claim["@context"] === SCHEMA_ORG_CONTEXT && |
|
|
claim["@context"] === SCHEMA_ORG_CONTEXT && |
|
@ -592,7 +613,7 @@ export const isAccept = (claim: Record<any, any>) => { |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
export const isOffer = (claim: Record<any, any>) => { |
|
|
export const isOffer = (claim: Record<string, any>) => { |
|
|
return ( |
|
|
return ( |
|
|
claim && |
|
|
claim && |
|
|
claim["@context"] === SCHEMA_ORG_CONTEXT && |
|
|
claim["@context"] === SCHEMA_ORG_CONTEXT && |
|
@ -622,7 +643,7 @@ export const capitalizeAndInsertSpacesBeforeCaps = (text: string) => { |
|
|
similar code is also contained in endorser-mobile |
|
|
similar code is also contained in endorser-mobile |
|
|
**/ |
|
|
**/ |
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
const claimSummary = (claim: Record<any, any>) => { |
|
|
const claimSummary = (claim: Record<string, any>) => { |
|
|
if (!claim) { |
|
|
if (!claim) { |
|
|
// to differentiate from "something" above
|
|
|
// to differentiate from "something" above
|
|
|
return "something"; |
|
|
return "something"; |
|
@ -630,7 +651,7 @@ const claimSummary = (claim: Record<any, any>) => { |
|
|
if (claim.claim) { |
|
|
if (claim.claim) { |
|
|
// probably a Verified Credential
|
|
|
// probably a Verified Credential
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
claim = claim.claim as Record<any, any>; |
|
|
claim = claim.claim as Record<string, any>; |
|
|
} |
|
|
} |
|
|
if (Array.isArray(claim)) { |
|
|
if (Array.isArray(claim)) { |
|
|
if (claim.length === 1) { |
|
|
if (claim.length === 1) { |
|
|