@microsoft/useragent-sdk
Version:
SDK for building decentralized identity wallets and enterprise agents.
196 lines (168 loc) • 3.65 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import ServiceEndpoint from './serviceEndpoints/ServiceEndpoint';
import PublicKey from './crypto/keys/PublicKey';
/**
* Interface for defining a identifier document
* public key.
*/
export interface IdentifierDocumentPublicKey {
/**
* The id of the public key in the format
* #{keyIdentifier}.
*/
id: string;
/**
* The type of the public key.
*/
type: string;
/**
* The owner of the key.
*/
owner?: string;
/**
* The JWK public key.
*/
publicKeyJwk: PublicKey;
}
/**
* Interface for defining a identifier document
* authentication reference.
*/
export interface AuthenticationReference {
/**
* The type of the authentication reference.
*/
type: string;
/**
* A public key reference in the format
* #{keyIdentifier}.
*/
publicKeyReference: string;
}
/**
* Interface for defining a identifier document
* service reference.
*/
export interface ServiceReference {
/**
* The type of the service reference.
*/
type: string;
/**
* A public key reference in the format
* #{keyIdentifier}.
*/
publicKeyReference: string;
/**
* The service endpoint for the
* service reference
*/
serviceEndpoint: ServiceEndpoint;
}
/**
* Interface for defining a claim.
*/
export interface Claim {
/**
* The name of the claim
*/
name: string;
/**
* The value of the claim.
*/
value: string;
}
/**
* Interface for defining a URI as outlined in the claim spec.
*/
export interface UriDescription {
/**
* the type of URI.
*/
'@type': string;
/**
* the actual URI.
*/
uri: string;
/**
* the description of the URI.
*/
description: string;
}
/**
* Interface for data inputs that are allowed on a CredentialManifest.
*/
export interface DataInput {
/**
* type of input
*/
type: 'data';
/**
* a variety of proofs/prerequisites that can be accepted.
* e.g. [A]
*/
group: string[];
/**
* what data input is used for.
* e.g. routing_number
*/
field: string;
/**
* contraints on the input
* e.g. maxLength: 9
*/
value: any;
}
/**
* Interface for credential inputs that are allowed on a CredentialManifest.
*/
export interface CredentialInput {
/**
* type of input
*/
type: 'credential';
/**
* a variety of proofs/prerequisites that can be accepted.
* e.g. [A]
*/
group: string[];
/**
* Schema used for the specific credential.
*/
schema: string;
/**
* constraints on the credential
* e.g. what issuers will be accepted.
*/
constraints: {
/**
* issuers that are allowed to have issued claim requested.
*/
issuers: string[]
};
}
/**
* Interface for openid request input that are allowed on a CredentialManifest.
*/
export interface OpenIDInput {
/**
* Type of Input
*/
type: 'openid';
/**
* a variety of proofs/prerequisites that can be accepted.
* e.g. [A]
*/
group: string[];
/**
* redirect URL.
*/
redirect: string;
/**
* parameters for the openid request.
*/
parameters: any;
}