Class: CoreDocument
identity_wasm.CoreDocument
A method-agnostic DID Document.
Note: All methods that involve reading from this class may potentially raise an error if the object is being concurrently modified.
Table of contents
Constructors
Methods
- toJSON
- toString
- id
- setId
- controller
- setController
- alsoKnownAs
- setAlsoKnownAs
- verificationMethod
- authentication
- assertionMethod
- keyAgreement
- capabilityDelegation
- capabilityInvocation
- properties
- setPropertyUnchecked
- service
- insertService
- removeService
- resolveService
- methods
- verificationRelationships
- insertMethod
- removeMethod
- resolveMethod
- attachMethodRelationship
- detachMethodRelationship
- verifyJws
- revokeCredentials
- unrevokeCredentials
- clone
- _shallowCloneInternal
- _strongCountInternal
- fromJSON
- generateMethod
- purgeMethod
- createJws
- createCredentialJwt
- createPresentationJwt
- expandDIDJwk
Constructors
constructor
• new CoreDocument(values
)
Creates a new CoreDocument with the given properties.
Parameters
Name | Type |
---|---|
values | ICoreDocument |
Methods
toJSON
▸ toJSON(): Object
- Return copy of self without private attributes.
Returns
Object
▸ toJSON(): any
Serializes to a plain JS representation.
Returns
any
toString
▸ toString(): string
Return stringified version of self.
Returns
string
id
▸ id(): CoreDID
Returns a copy of the DID Document id
.
Returns
setId
▸ setId(id
): void
Sets the DID of the document.
Warning
Changing the identifier can drastically alter the results of
resolve_method
, resolve_service
and the related
DID URL dereferencing algorithm.
Parameters
Name | Type |
---|---|
id | CoreDID |
Returns
void
controller
▸ controller(): CoreDID
[]
Returns a copy of the document controllers.
Returns
CoreDID
[]
setController
▸ setController(controllers
): void
Sets the controllers of the DID Document.
Note: Duplicates will be ignored.
Use null
to remove all controllers.
Parameters
Name | Type |
---|---|
controllers | null | CoreDID | CoreDID [] |
Returns
void
alsoKnownAs
▸ alsoKnownAs(): string
[]
Returns a copy of the document's alsoKnownAs
set.
Returns
string
[]
setAlsoKnownAs
▸ setAlsoKnownAs(urls
): void
Sets the alsoKnownAs
property in the DID document.
Parameters
Name | Type |
---|---|
urls | null | string | string [] |
Returns
void
verificationMethod
▸ verificationMethod(): VerificationMethod
[]
Returns a copy of the document's verificationMethod
set.
Returns
authentication
▸ authentication(): (DIDUrl
| VerificationMethod
)[]
Returns a copy of the document's authentication
set.
Returns
(DIDUrl
| VerificationMethod
)[]
assertionMethod
▸ assertionMethod(): (DIDUrl
| VerificationMethod
)[]
Returns a copy of the document's assertionMethod
set.
Returns
(DIDUrl
| VerificationMethod
)[]
keyAgreement
▸ keyAgreement(): (DIDUrl
| VerificationMethod
)[]
Returns a copy of the document's keyAgreement
set.
Returns
(DIDUrl
| VerificationMethod
)[]
capabilityDelegation
▸ capabilityDelegation(): (DIDUrl
| VerificationMethod
)[]
Returns a copy of the document's capabilityDelegation
set.
Returns
(DIDUrl
| VerificationMethod
)[]
capabilityInvocation
▸ capabilityInvocation(): (DIDUrl
| VerificationMethod
)[]
Returns a copy of the document's capabilityInvocation
set.
Returns
(DIDUrl
| VerificationMethod
)[]
properties
▸ properties(): Map
\<string
, any
>
Returns a copy of the custom DID Document properties.
Returns
Map
\<string
, any
>
setPropertyUnchecked
▸ setPropertyUnchecked(key
, value
): void
Sets a custom property in the DID Document.
If the value is set to null
, the custom property will be removed.
WARNING
This method can overwrite existing properties like id
and result in an invalid document.
Parameters
Name | Type |
---|---|
key | string |
value | any |
Returns
void
service
▸ service(): Service
[]
Returns a set of all Service in the document.
Returns
Service
[]
insertService
▸ insertService(service
): void
Add a new Service to the document.
Errors if there already exists a service or verification method with the same id.
Parameters
Name | Type |
---|---|
service | Service |
Returns
void
removeService
▸ removeService(didUrl
): undefined
| Service
Remove a Service identified by the given DIDUrl from the document.
Returns true
if the service was removed.
Parameters
Name | Type |
---|---|
didUrl | DIDUrl |
Returns
undefined
| Service
resolveService
▸ resolveService(query
): undefined
| Service
Returns the first Service with an id
property matching the provided query
,
if present.
Parameters
Name | Type |
---|---|
query | string | DIDUrl |
Returns
undefined
| Service
methods
▸ methods(scope?
): VerificationMethod
[]
Returns a list of all VerificationMethod in the DID Document,
whose verification relationship matches scope
.
If scope
is not set, a list over the embedded methods is returned.
Parameters
Name | Type |
---|---|
scope? | MethodScope |
Returns
verificationRelationships
▸ verificationRelationships(): (DIDUrl
| VerificationMethod
)[]
Returns an array of all verification relationships.
Returns
(DIDUrl
| VerificationMethod
)[]
insertMethod
▸ insertMethod(method
, scope
): void
Adds a new method
to the document in the given scope
.
Parameters
Name | Type |
---|---|
method | VerificationMethod |
scope | MethodScope |
Returns
void
removeMethod
▸ removeMethod(did
): undefined
| VerificationMethod
Removes all references to the specified Verification Method.
Parameters
Name | Type |
---|---|
did | DIDUrl |
Returns
undefined
| VerificationMethod
resolveMethod
▸ resolveMethod(query
, scope?
): undefined
| VerificationMethod
Returns a copy of the first verification method with an id
property
matching the provided query
and the verification relationship
specified by scope
, if present.
Parameters
Name | Type |
---|---|
query | string | DIDUrl |
scope? | MethodScope |
Returns
undefined
| VerificationMethod
attachMethodRelationship
▸ attachMethodRelationship(didUrl
, relationship
): boolean
Attaches the relationship to the given method, if the method exists.
Note: The method needs to be in the set of verification methods, so it cannot be an embedded one.
Parameters
Name | Type |
---|---|
didUrl | DIDUrl |
relationship | MethodRelationship |
Returns
boolean
detachMethodRelationship
▸ detachMethodRelationship(didUrl
, relationship
): boolean
Detaches the given relationship from the given method, if the method exists.
Parameters
Name | Type |
---|---|
didUrl | DIDUrl |
relationship | MethodRelationship |
Returns
boolean
verifyJws
▸ verifyJws(jws
, options
, signatureVerifier?
, detachedPayload?
): DecodedJws
Decodes and verifies the provided JWS according to the passed options
and signatureVerifier
.
If a signatureVerifier
is provided it will be used when
verifying decoded JWS signatures, otherwise a default verifier capable of handling the EdDSA
, ES256
, ES256K
algorithms will be used.
Regardless of which options are passed the following conditions must be met in order for a verification attempt to take place.
- The JWS must be encoded according to the JWS compact serialization.
- The
kid
value in the protected header must be an identifier of a verification method in this DID document, or set explicitly in theoptions
.
Parameters
Name | Type |
---|---|
jws | Jws |
options | JwsVerificationOptions |
signatureVerifier? | IJwsVerifier |
detachedPayload? | string |
Returns
revokeCredentials
▸ revokeCredentials(serviceQuery
, indices
): void
If the document has a RevocationBitmap service identified by serviceQuery
,
revoke all specified indices
.
Parameters
Name | Type |
---|---|
serviceQuery | string | DIDUrl |
indices | number | number [] |
Returns
void
unrevokeCredentials
▸ unrevokeCredentials(serviceQuery
, indices
): void
If the document has a RevocationBitmap service identified by serviceQuery
,
unrevoke all specified indices
.
Parameters
Name | Type |
---|---|
serviceQuery | string | DIDUrl |
indices | number | number [] |
Returns
void
clone
▸ clone(): CoreDocument
Deep clones the CoreDocument.
Returns
_shallowCloneInternal
▸ _shallowCloneInternal(): CoreDocument
Warning
This is for internal use only. Do not rely on or call this method.
Returns
_strongCountInternal
▸ _strongCountInternal(): number
Warning
This is for internal use only. Do not rely on or call this method.
Returns
number
fromJSON
▸ Static
fromJSON(json
): CoreDocument
Deserializes an instance from a plain JS representation.
Parameters
Name | Type |
---|---|
json | any |
Returns
generateMethod
▸ generateMethod(storage
, keyType
, alg
, fragment
, scope
): Promise
\<string
>
Generate new key material in the given storage
and insert a new verification method with the corresponding
public key material into the DID document.
- If no fragment is given the
kid
of the generated JWK is used, if it is set, otherwise an error is returned. - The
keyType
must be compatible with the givenstorage
.Storage
s are expected to export key type constants for that use case.
The fragment of the generated method is returned.
Parameters
Name | Type |
---|---|
storage | Storage |
keyType | string |
alg | JwsAlgorithm |
fragment | undefined | string |
scope | MethodScope |
Returns
Promise
\<string
>
purgeMethod
▸ purgeMethod(storage
, id
): Promise
\<void
>
Remove the method identified by the fragment
from the document and delete the corresponding key material in
the storage
.
Parameters
Name | Type |
---|---|
storage | Storage |
id | DIDUrl |
Returns
Promise
\<void
>
createJws
▸ createJws(storage
, fragment
, payload
, options
): Promise
\<Jws
>
Sign the payload
according to options
with the storage backed private key corresponding to the public key
material in the verification method identified by the given `fragment.
Upon success a string representing a JWS encoded according to the Compact JWS Serialization format is returned. See RFC7515 section 3.1.
Parameters
Name | Type |
---|---|
storage | Storage |
fragment | string |
payload | string |
options | JwsSignatureOptions |
Returns
Promise
\<Jws
>
createCredentialJwt
▸ createCredentialJwt(storage
, fragment
, credential
, options
, custom_claims?
): Promise
\<Jwt
>
Produces a JWT where the payload is produced from the given credential
in accordance with VC Data Model v1.1.
Unless the kid
is explicitly set in the options, the kid
in the protected header is the id
of the method identified by fragment
and the JWS signature will be produced by the corresponding
private key backed by the storage
in accordance with the passed options
.
The custom_claims
can be used to set additional claims on the resulting JWT.
Parameters
Name | Type |
---|---|
storage | Storage |
fragment | string |
credential | Credential |
options | JwsSignatureOptions |
custom_claims? | Record \<string , any > |
Returns
Promise
\<Jwt
>
createPresentationJwt
▸ createPresentationJwt(storage
, fragment
, presentation
, signature_options
, presentation_options
): Promise
\<Jwt
>
Produces a JWT where the payload is produced from the given presentation. in accordance with VC Data Model v1.1.
Unless the kid
is explicitly set in the options, the kid
in the protected header is the id
of the method identified by fragment
and the JWS signature will be produced by the corresponding
private key backed by the storage
in accordance with the passed options
.
Parameters
Name | Type |
---|---|
storage | Storage |
fragment | string |
presentation | Presentation |
signature_options | JwsSignatureOptions |
presentation_options | JwtPresentationOptions |
Returns
Promise
\<Jwt
>
expandDIDJwk
▸ Static
expandDIDJwk(did
): CoreDocument
Creates a CoreDocument from the given DIDJwk.
Parameters
Name | Type |
---|---|
did | DIDJwk |