@sphereon/ssi-sdk.uni-resolver-registrar-api
Version:
121 lines (99 loc) • 3.56 kB
text/typescript
import { DIDDocument } from '@sphereon/did-uni-client'
import { GenericAuthArgs, ISingleEndpointOpts } from '@sphereon/ssi-express-support'
import { JsonWebKey } from '@sphereon/ssi-types'
import { IAgentContext, IDataStoreORM, IDIDManager, IKeyManager, IResolver } from '@veramo/core'
import { VerificationMethod } from 'did-resolver'
export type IRequiredPlugins = IDataStoreORM & IDIDManager & IKeyManager & IResolver
export type IRequiredContext = IAgentContext<IRequiredPlugins>
export interface DidRegistrationCreateRequest {
did?: string
jobId: string
options: DidRegistrationOptions
secret: DidRegistrationSecret
didDocument?: DIDDocument
}
export interface DidRegistrationUpdateRequest {
did: string
jobId: string
options: DidRegistrationOptions
secret: DidRegistrationSecret
didDocumentOperation: DidDocumentOperation[]
didDocument?: DIDDocument[]
}
export interface DidRegistrationDeactivateRequest {
did: string
jobId?: string
options?: DidRegistrationOptions
secret?: DidRegistrationSecret
}
export type DidDocumentOperation = 'setDidDocument' | 'addToDidDocument' | 'removeFromDidDocument' | string
export interface DidRegistrationOptions {
network?: string
storeSecrets?: boolean
returnSecrets?: boolean
[x: string]: any
}
export interface DidRegistrationSecret {
seed?: string
verificationMethod?: CreateVerificationMethod[]
[x: string]: any
}
export interface CreateVerificationMethod extends VerificationMethod {
privateKeyBase58?: string
privateKeyBase64?: string
privateKeyJwk?: JsonWebKey
privateKeyHex?: string
privateKeyMultibase?: string
purpose?: ('authentication' | 'assertionMethod' | 'capabilityDelegation' | 'capabilityInvocation')[]
}
export interface CreateState {
jobId: string
didState: DidState
didRegistrationMetadata?: Record<string, any>
didDocumentMetadata?: Record<string, any>
}
export type DidStateValue = 'finished' | 'failed' | 'action' | 'wait' | 'exists'
export type DidStateAction = 'redirect' | 'getVerificationMethod' | 'signPayload' | 'decryptPayload'
export interface DidState {
state: DidStateValue
action?: DidStateAction
wait?: string
waitTime?: number
did: string
secret?: DidRegistrationSecret
didDocument?: DIDDocument
}
export interface IDidWebServiceOpts {
globalAuth?: GenericAuthArgs
endpointOpts?: IGlobalDidWebEndpointOpts
enableFeatures?: DidWebServiceFeatures[] // Feature to enable. If not defined or empty. Has to be defined or no features will be enabled
}
export interface IDidAPIOpts {
endpointOpts?: IDidAPIEndpointOpts
enableFeatures?: DidApiFeatures[] // Feature to enable. If not defined or empty, all features will be enabled
}
export interface IDidAPIEndpointOpts {
basePath?: string
globalAuth?: GenericAuthArgs
createDid?: ICreateDidEndpointOpts
resolveDid?: IResolveEndpointOpts
deactivateDid?: ISingleEndpointOpts
getDidMethods?: ISingleEndpointOpts
// globalDidWebResolution?: IGlobalDidWebEndpointOpts
}
export interface IGlobalDidWebEndpointOpts extends ISingleEndpointOpts {
hostname?: string
disableWellKnown?: boolean
disableSubPaths?: boolean
}
export interface ICreateDidEndpointOpts extends ISingleEndpointOpts {
kms?: string
storeSecrets?: boolean
noErrorOnExistingDid?: boolean
defaultMethod?: string
}
export interface IResolveEndpointOpts extends ISingleEndpointOpts {
mode?: 'local' | 'hybrid' | 'global'
}
export type DidWebServiceFeatures = 'did-web-global-resolution'
export type DidApiFeatures = 'did-resolve' | 'did-persist'