UNPKG

@sphereon/ssi-sdk-ext.identifier-resolution

Version:

1,615 lines (1,613 loc) 179 kB
var __defProp = Object.defineProperty; var __getOwnPropNames = Object.getOwnPropertyNames; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; // plugin.schema.json var require_plugin_schema = __commonJS({ "plugin.schema.json"(exports, module) { module.exports = { IIdentifierResolution: { components: { schemas: { ExternalIdentifierOpts: { anyOf: [ { type: "object", additionalProperties: false, properties: { method: { type: "string", const: "jwk" }, identifier: { $ref: "#/components/schemas/ExternalIdentifierType" }, x5c: { $ref: "#/components/schemas/ExternalIdentifierX5cOpts" } }, required: [ "identifier" ] }, { type: "object", additionalProperties: false, properties: { method: { type: "string", const: "x5c" }, identifier: { $ref: "#/components/schemas/ExternalIdentifierType" }, verify: { type: "boolean" }, verificationTime: { type: "string", format: "date-time" }, trustAnchors: { type: "array", items: { type: "string" } }, allowNoTrustAnchorsFound: { type: "boolean" }, trustRootWhenNoAnchors: { type: "boolean" }, allowSingleNoCAChainElement: { type: "boolean" }, blindlyTrustedAnchors: { type: "array", items: { type: "string" } }, disallowReversedChain: { type: "boolean" }, client: { type: "object", properties: { clientId: { type: "string" }, clientIdScheme: { $ref: "#/components/schemas/ClientIdScheme" } }, required: [ "clientId", "clientIdScheme" ], additionalProperties: false } }, required: [ "identifier" ] }, { type: "object", additionalProperties: false, properties: { method: { type: "string", const: "did" }, identifier: { $ref: "#/components/schemas/ExternalIdentifierType" }, noVerificationMethodFallback: { type: "boolean" }, vmRelationship: { $ref: "#/components/schemas/DIDDocumentSection" }, localResolution: { type: "boolean" }, uniresolverResolution: { type: "boolean" }, resolverResolution: { type: "boolean" } }, required: [ "identifier" ] }, { type: "object", additionalProperties: false, properties: { method: { type: "string", const: "kid" }, identifier: { $ref: "#/components/schemas/ExternalIdentifierType" } }, required: [ "identifier" ] }, { type: "object", additionalProperties: false, properties: { method: { type: "string", const: "cose_key" }, identifier: { $ref: "#/components/schemas/ExternalIdentifierType" } }, required: [ "identifier" ] }, { type: "object", additionalProperties: false, properties: { method: { type: "string", const: "entity_id" }, identifier: { $ref: "#/components/schemas/ExternalIdentifierType" }, trustAnchors: { type: "array", items: { type: "string" } } }, required: [ "identifier" ] } ] }, ExternalIdentifierType: { anyOf: [ { type: "string" }, { type: "array", items: { type: "string" } }, { $ref: "#/components/schemas/JWK" } ], description: "Use whenever we need to resolve an external identifier. We can pass in kids, DIDs, and x5chains\n\nThe functions below can be used to check the type, and they also provide the proper runtime types" }, JWK: { type: "object", properties: { kty: { anyOf: [ { $ref: "#/components/schemas/JwkKeyType" }, { $ref: "#/components/schemas/JwkKeyTypeString" } ] }, crv: { anyOf: [ { $ref: "#/components/schemas/JoseCurve" }, { $ref: "#/components/schemas/JoseCurveString" } ] }, alg: { anyOf: [ { $ref: "#/components/schemas/JoseSignatureAlgorithm" }, { $ref: "#/components/schemas/JoseSignatureAlgorithmString" } ] }, x: { type: "string" }, y: { type: "string" }, e: { type: "string" }, n: { type: "string" }, d: { type: "string" }, dp: { type: "string" }, dq: { type: "string" }, ext: { type: "boolean" }, k: { type: "string" }, key_ops: { type: "array", items: { anyOf: [ { $ref: "#/components/schemas/JoseKeyOperation" }, { $ref: "#/components/schemas/JoseKeyOperationString" } ] } }, kid: { type: "string" }, oth: { type: "array", items: { type: "object", properties: { d: { type: "string" }, r: { type: "string" }, t: { type: "string" } }, additionalProperties: false } }, p: { type: "string" }, q: { type: "string" }, qi: { type: "string" }, use: { type: "string" }, x5c: { type: "array", items: { type: "string" }, description: 'JWK "x5c" (X.509 Certificate Chain) Parameter.' }, x5t: { type: "string", description: 'JWK "x5t" (X.509 Certificate SHA-1 Thumbprint) Parameter.' }, "x5t#S256": { type: "string", description: '"x5t#S256" (X.509 Certificate SHA-256 Thumbprint) Parameter.' }, x5u: { type: "string", description: 'JWK "x5u" (X.509 URL) Parameter.' }, iv: { type: "string" } }, required: [ "kty" ] }, JwkKeyType: { type: "string", enum: [ "EC", "RSA", "oct", "OKP" ] }, JwkKeyTypeString: { type: "string", enum: [ "EC", "RSA", "oct", "OKP" ] }, JoseCurve: { type: "string", enum: [ "P-256", "P-384", "P-521", "X25519", "X448", "EdDSA", "Ed25519", "Ed448", "secp256k1" ] }, JoseCurveString: { type: "string", enum: [ "P-256", "P-384", "P-521", "X25519", "X448", "EdDSA", "Ed25519", "Ed448", "secp256k1" ] }, JoseSignatureAlgorithm: { type: "string", enum: [ "RS256", "RS384", "RS512", "ES256", "ES256K", "ES384", "ES512", "EdDSA", "HS256", "HS384", "HS512", "PS256", "PS384", "PS512", "none" ] }, JoseSignatureAlgorithmString: { type: "string", enum: [ "RS256", "RS384", "RS512", "ES256", "ES256K", "ES384", "ES512", "EdDSA", "HS256", "HS384", "HS512", "PS256", "PS384", "PS512", "none" ] }, JoseKeyOperation: { type: "string", enum: [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] }, JoseKeyOperationString: { type: "string", enum: [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] }, ExternalIdentifierX5cOpts: { type: "object", additionalProperties: false, properties: { method: { type: "string", const: "x5c" }, identifier: { $ref: "#/components/schemas/ExternalIdentifierType" }, verify: { type: "boolean" }, verificationTime: { type: "string", format: "date-time" }, trustAnchors: { type: "array", items: { type: "string" } }, allowNoTrustAnchorsFound: { type: "boolean" }, trustRootWhenNoAnchors: { type: "boolean" }, allowSingleNoCAChainElement: { type: "boolean" }, blindlyTrustedAnchors: { type: "array", items: { type: "string" } }, disallowReversedChain: { type: "boolean" }, client: { type: "object", properties: { clientId: { type: "string" }, clientIdScheme: { $ref: "#/components/schemas/ClientIdScheme" } }, required: [ "clientId", "clientIdScheme" ], additionalProperties: false } }, required: [ "identifier" ] }, ClientIdScheme: { type: "string", enum: [ "x509_san_dns", "x509_san_uri" ] }, DIDDocumentSection: { type: "string", enum: [ "verificationMethod", "publicKey", "service", "authentication", "assertionMethod", "keyAgreement", "capabilityInvocation", "capabilityDelegation" ], description: "Refers to a section of a DID document. Either the list of verification methods or services or one of the verification relationships.\n\nSee {@link https://www.w3.org/TR/did-core/#verification-relationships | verification relationships }" }, ExternalIdentifierResult: { anyOf: [ { type: "object", additionalProperties: false, properties: { method: { $ref: "#/components/schemas/ExternalIdentifierMethod" }, jwks: { type: "array", items: { $ref: "#/components/schemas/ExternalJwkInfo" } }, did: { type: "string" }, didDocument: { $ref: "#/components/schemas/DIDDocument" }, didJwks: { $ref: "#/components/schemas/DidDocumentJwks" }, didResolutionResult: { $ref: '#/components/schemas/Omit<DIDResolutionResult,"didDocument">' }, didParsed: { $ref: "#/components/schemas/IParsedDID" } }, required: [ "did", "didParsed", "didResolutionResult", "jwks", "method" ] }, { type: "object", additionalProperties: false, properties: { method: { $ref: "#/components/schemas/ExternalIdentifierMethod" }, jwks: { type: "array", items: { $ref: "#/components/schemas/ExternalJwkInfo" } }, x5c: { type: "array", items: { type: "string" } }, issuerJWK: { $ref: "#/components/schemas/JWK" }, verificationResult: { $ref: "#/components/schemas/X509ValidationResult" }, certificates: { type: "array", items: {} } }, required: [ "certificates", "issuerJWK", "jwks", "method", "x5c" ] }, { type: "object", additionalProperties: false, properties: { method: { $ref: "#/components/schemas/ExternalIdentifierMethod" }, jwks: { type: "array", items: { $ref: "#/components/schemas/ExternalJwkInfo" } }, jwk: { $ref: "#/components/schemas/JWK" }, x5c: { $ref: "#/components/schemas/ExternalIdentifierX5cResult" } }, required: [ "jwk", "jwks", "method" ] }, { type: "object", additionalProperties: false, properties: { method: { $ref: "#/components/schemas/ExternalIdentifierMethod" }, jwks: { type: "array", items: { $ref: "#/components/schemas/ExternalJwkInfo" } }, trustedAnchors: { type: "array", items: { $ref: "#/components/schemas/TrustedAnchor" } }, errorList: { $ref: "#/components/schemas/Record<TrustedAnchor,ErrorMessage>" }, jwtPayload: { $ref: "#/components/schemas/JwtPayload" }, trustEstablished: { type: "boolean" } }, required: [ "jwks", "method", "trustEstablished", "trustedAnchors" ] }, { type: "object", additionalProperties: false, properties: { method: { $ref: "#/components/schemas/ExternalIdentifierMethod" }, jwks: { type: "array", items: { $ref: "#/components/schemas/ExternalJwkInfo" } }, coseKey: { $ref: "#/components/schemas/ICoseKeyJson" }, x5c: { $ref: "#/components/schemas/ExternalIdentifierX5cResult" } }, required: [ "coseKey", "jwks", "method" ] } ] }, ExternalIdentifierMethod: { type: "string", enum: [ "did", "jwk", "x5c", "kid", "cose_key", "oidc-discovery", "jwks-url", "oid4vci-issuer", "entity_id" ] }, ExternalJwkInfo: { type: "object", properties: { jwk: { $ref: "#/components/schemas/JWK" }, jwkThumbprint: { type: "string" }, kid: { type: "string" }, publicKeyHex: { type: "string" } }, required: [ "jwk", "jwkThumbprint", "publicKeyHex" ], additionalProperties: false }, DIDDocument: { type: "object", additionalProperties: false, properties: { authentication: { type: "array", items: { anyOf: [ { type: "string" }, { $ref: "#/components/schemas/VerificationMethod" } ] } }, assertionMethod: { type: "array", items: { anyOf: [ { type: "string" }, { $ref: "#/components/schemas/VerificationMethod" } ] } }, keyAgreement: { type: "array", items: { anyOf: [ { type: "string" }, { $ref: "#/components/schemas/VerificationMethod" } ] } }, capabilityInvocation: { type: "array", items: { anyOf: [ { type: "string" }, { $ref: "#/components/schemas/VerificationMethod" } ] } }, capabilityDelegation: { type: "array", items: { anyOf: [ { type: "string" }, { $ref: "#/components/schemas/VerificationMethod" } ] } }, "@context": { anyOf: [ { type: "string", const: "https://www.w3.org/ns/did/v1" }, { type: "string" }, { type: "array", items: { type: "string" } } ] }, id: { type: "string" }, alsoKnownAs: { type: "array", items: { type: "string" } }, controller: { anyOf: [ { type: "string" }, { type: "array", items: { type: "string" } } ] }, verificationMethod: { type: "array", items: { $ref: "#/components/schemas/VerificationMethod" } }, service: { type: "array", items: { $ref: "#/components/schemas/Service" } }, publicKey: { type: "array", items: { $ref: "#/components/schemas/VerificationMethod" }, deprecated: true } }, required: [ "id" ], description: "Represents a DID document." }, VerificationMethod: { type: "object", properties: { id: { type: "string" }, type: { type: "string" }, controller: { type: "string" }, publicKeyBase58: { type: "string" }, publicKeyBase64: { type: "string" }, publicKeyJwk: { $ref: "#/components/schemas/JsonWebKey" }, publicKeyHex: { type: "string" }, publicKeyMultibase: { type: "string" }, blockchainAccountId: { type: "string" }, ethereumAddress: { type: "string" }, conditionOr: { type: "array", items: { $ref: "#/components/schemas/VerificationMethod" } }, conditionAnd: { type: "array", items: { $ref: "#/components/schemas/VerificationMethod" } }, threshold: { type: "number" }, conditionThreshold: { type: "array", items: { $ref: "#/components/schemas/VerificationMethod" } }, conditionWeightedThreshold: { type: "array", items: { $ref: "#/components/schemas/ConditionWeightedThreshold" } }, conditionDelegated: { type: "string" }, relationshipParent: { type: "array", items: { type: "string" } }, relationshipChild: { type: "array", items: { type: "string" } }, relationshipSibling: { type: "array", items: { type: "string" } } }, required: [ "id", "type", "controller" ], additionalProperties: false, description: "Represents the properties of a Verification Method listed in a DID document.\n\nThis data type includes public key representations that are no longer present in the spec but are still used by several DID methods / resolvers and kept for backward compatibility." }, JsonWebKey: { type: "object", properties: { alg: { type: "string" }, crv: { type: "string" }, e: { type: "string" }, ext: { type: "boolean" }, key_ops: { type: "array", items: { type: "string" } }, kid: { type: "string" }, kty: { type: "string" }, n: { type: "string" }, use: { type: "string" }, x: { type: "string" }, y: { type: "string" } }, required: [ "kty" ], description: "Encapsulates a JSON web key type that includes only the public properties that can be used in DID documents.\n\nThe private properties are intentionally omitted to discourage the use (and accidental disclosure) of private keys in DID documents." }, ConditionWeightedThreshold: { type: "object", properties: { condition: { $ref: "#/components/schemas/VerificationMethod" }, weight: { type: "number" } }, required: [ "condition", "weight" ], additionalProperties: false }, Service: { type: "object", properties: { id: { type: "string" }, type: { type: "string" }, serviceEndpoint: { anyOf: [ { $ref: "#/components/schemas/ServiceEndpoint" }, { type: "array", items: { $ref: "#/components/schemas/ServiceEndpoint" } } ] } }, required: [ "id", "type", "serviceEndpoint" ], description: "Represents a Service entry in a {@link https://www.w3.org/TR/did-core/#did-document-properties | DID document } ." }, ServiceEndpoint: { anyOf: [ { type: "string" }, { $ref: "#/components/schemas/Record<string,any>" } ], description: "Represents an endpoint of a Service entry in a DID document." }, "Record<string,any>": { type: "object" }, DidDocumentJwks: { $ref: '#/components/schemas/Record<Exclude<DIDDocumentSection,("publicKey"|"service")>,def-interface-.ts-36208-36933-.ts-0-64696[]>' }, 'Record<Exclude<DIDDocumentSection,("publicKey"|"service")>,def-interface-.ts-36208-36933-.ts-0-64696[]>': { type: "object", properties: { verificationMethod: { type: "array", items: { $ref: "#/components/schemas/JWK" } }, authentication: { type: "array", items: { $ref: "#/components/schemas/JWK" } }, assertionMethod: { type: "array", items: { $ref: "#/components/schemas/JWK" } }, keyAgreement: { type: "array", items: { $ref: "#/components/schemas/JWK" } }, capabilityInvocation: { type: "array", items: { $ref: "#/components/schemas/JWK" } }, capabilityDelegation: { type: "array", items: { $ref: "#/components/schemas/JWK" } } }, required: [ "verificationMethod", "authentication", "assertionMethod", "keyAgreement", "capabilityInvocation", "capabilityDelegation" ], additionalProperties: false }, 'Omit<DIDResolutionResult,"didDocument">': { $ref: '#/components/schemas/Pick<DIDResolutionResult,Exclude<("@context"|"didResolutionMetadata"|"didDocument"|"didDocumentMetadata"),"didDocument">>' }, 'Pick<DIDResolutionResult,Exclude<("@context"|"didResolutionMetadata"|"didDocument"|"didDocumentMetadata"),"didDocument">>': { type: "object", properties: { "@context": { anyOf: [ { type: "string", const: "https://w3id.org/did-resolution/v1" }, { type: "string" }, { type: "array", items: { type: "string" } } ] }, didResolutionMetadata: { $ref: "#/components/schemas/DIDResolutionMetadata" }, didDocumentMetadata: { $ref: "#/components/schemas/DIDDocumentMetadata" } }, required: [ "didResolutionMetadata", "didDocumentMetadata" ], additionalProperties: false }, DIDResolutionMetadata: { type: "object", properties: { contentType: { type: "string" }, error: { type: "string" } }, description: "Encapsulates the resolution metadata resulting from a {@link Resolvable.resolve } operation." }, DIDDocumentMetadata: { type: "object", properties: { created: { type: "string" }, updated: { type: "string" }, deactivated: { type: "boolean" }, versionId: { type: "string" }, nextUpdate: { type: "string" }, nextVersionId: { type: "string" }, equivalentId: { type: "string" }, canonicalId: { type: "string" } }, description: "Represents metadata about the DID document resulting from a {@link Resolvable.resolve } operation." }, IParsedDID: { type: "object", properties: { did: { type: "string" }, didUrl: { type: "string" }, method: { type: "string" }, id: { type: "string" }, path: { type: "string" }, fragment: { type: "string" }, query: { type: "string" }, params: { type: "object", additionalProperties: { type: "string" } } }, required: [ "did", "didUrl", "method", "id" ], additionalProperties: false }, X509ValidationResult: { type: "object", properties: { error: { type: "boolean" }, critical: { type: "boolean" }, message: { type: "string" }, detailMessage: { type: "string" }, verificationTime: { type: "string", format: "date-time" }, certificateChain: { type: "array", items: { $ref: "#/components/schemas/CertificateInfo" } }, trustAnchor: { $ref: "#/components/schemas/CertificateInfo" }, client: { type: "object", properties: { clientId: { type: "string" }, clientIdScheme: { $ref: "#/components/schemas/ClientIdScheme" } }, required: [ "clientId", "clientIdScheme" ], additionalProperties: false } }, required: [ "error", "critical", "message", "verificationTime" ], additionalProperties: false }, CertificateInfo: { type: "object", properties: { certificate: {}, notBefore: { type: "string", format: "date-time" }, notAfter: { type: "string", format: "date-time" }, publicKeyJWK: {}, issuer: { type: "object", properties: { dn: { $ref: "#/components/schemas/DNInfo" } }, required: [ "dn" ], additionalProperties: false }, subject: { type: "object", properties: { dn: { $ref: "#/components/schemas/DNInfo" }, subjectAlternativeNames: { type: "array", items: { $ref: "#/components/schemas/SubjectAlternativeName" } } }, required: [ "dn", "subjectAlternativeNames" ], additionalProperties: false } }, required: [ "notBefore", "notAfter", "issuer", "subject" ], additionalProperties: false }, DNInfo: { type: "object", properties: { DN: { type: "string" }, attributes: { $ref: "#/components/schemas/Record<string,string>" } }, required: [ "DN", "attributes" ], additionalProperties: false }, "Record<string,string>": { type: "object", additionalProperties: { type: "string" } }, SubjectAlternativeName: { type: "object", properties: { value: { type: "string" }, type: { $ref: "#/components/schemas/SubjectAlternativeGeneralName" } }, required: [ "value", "type" ], additionalProperties: false }, SubjectAlternativeGeneralName: { type: "number", enum: [ 1, 2, 6, 7 ], description: "otherName [0] OtherName, rfc822Name [1] IA5String, dNSName [2] IA5String, x400Address [3] ORAddress, directoryName [4] Name, ediPartyName [5] EDIPartyName, uniformResourceIdentifier [6] IA5String, iPAddress [7] OCTET STRING, registeredID [8] OBJECT IDENTIFIER }" }, ExternalIdentifierX5cResult: { type: "object", properties: { method: { type: "string", const: "x5c" }, jwks: { type: "array", items: { $ref: "#/components/schemas/ExternalJwkInfo" } }, x5c: { type: "array", items: { type: "string" } }, issuerJWK: { $ref: "#/components/schemas/JWK" }, verificationResult: { $ref: "#/components/schemas/X509ValidationResult" }, certificates: { type: "array", items: {} } }, required: [ "certificates", "issuerJWK", "jwks", "method", "x5c" ], additionalProperties: false }, TrustedAnchor: { type: "string" }, "Record<TrustedAnchor,ErrorMessage>": { type: "object", additionalProperties: { $ref: "#/components/schemas/ErrorMessage" } }, ErrorMessage: { type: "string" }, JwtPayload: { type: "object", properties: { iss: { type: "string" }, sub: { type: "string" }, aud: { anyOf: [ { type: "array", items: { type: "string" } }, { type: "string" } ] }, exp: { type: "number" }, nbf: { type: "number" }, iat: { type: "number" }, jti: { type: "string" } }, additionalProperties: {} }, ICoseKeyJson: { type: "object", properties: { kty: { $ref: "#/components/schemas/ICoseKeyType" }, kid: { type: "string" }, alg: { $ref: "#/components/schemas/ICoseSignatureAlgorithm" }, key_ops: { type: "array", items: { $ref: "#/components/schemas/ICoseKeyOperation" } }, baseIV: { type: "string" }, crv: { $ref: "#/components/schemas/ICoseCurve" }, x: { type: "string" }, y: { type: "string" }, d: { type: "string" }, x5chain: { type: "array", items: { type: "string" } } }, required: [ "kty" ], additionalProperties: {}, description: "See our mdl-mdoc and crypto library for more information https://github.com/Sphereon-Opensource/mdoc-cbor-crypto-multiplatform\n\nConversion functions are available in above library. Conversion functions are also available for TS in our" }, ICoseKeyType: { type: "number", enum: [ 1, 2, 3, 4, 0 ] }, ICoseSignatureAlgorithm: { type: "number", enum: [ -7, -47, -35, -36, -8, 4, 5, 6, 7, -37, -38, -39 ] }, ICoseKeyOperation: { type: "number", enum: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] }, ICoseCurve: { type: "number", enum: [ 1, 2, 3, 4, 5, 6, 7, -1 ] }, ExternalIdentifierCoseKeyOpts: { type: "object", additionalProperties: false, properties: { method: { type: "string", const: "cose_key" }, identifier: { $ref: "#/components/schemas/ExternalIdentifierType" } }, required: [ "identifier" ] }, ExternalIdentifierCoseKeyResult: { type: "object", properties: { method: { type: "string", const: "cose_key" }, jwks: { type: "array", items: { $ref: "#/components/schemas/ExternalJwkInfo" } }, coseKey: { $ref: "#/components/schemas/ICoseKeyJson" }, x5c: { $ref: "#/components/schemas/ExternalIdentifierX5cResult" } }, required: [ "coseKey",