@learncard/vc-plugin 1.0.12 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/types.d.ts +1 -1
- package/dist/vc-plugin.cjs.development.js +9 -1
- package/dist/vc-plugin.cjs.development.js.map +2 -2
- package/dist/vc-plugin.cjs.production.min.js +1 -1
- package/dist/vc-plugin.cjs.production.min.js.map +2 -2
- package/dist/vc-plugin.esm.js +9 -1
- package/dist/vc-plugin.esm.js.map +2 -2
- package/dist/verifyCredential.d.ts +1 -1
- package/package.json +3 -3
package/dist/types.d.ts
CHANGED
@@ -29,7 +29,7 @@ export type VCDependentLearnCard = LearnCard<any, 'id', VCPluginDependentMethods
|
|
29
29
|
export type VCImplicitLearnCard = LearnCard<any, 'id', VCPluginMethods & VCPluginDependentMethods>;
|
30
30
|
/** @group VC Plugin */
|
31
31
|
export type VerifyExtension = {
|
32
|
-
verifyCredential: (credential: VC) => Promise<VerificationCheck>;
|
32
|
+
verifyCredential: (credential: VC, options?: Partial<ProofOptions>) => Promise<VerificationCheck>;
|
33
33
|
};
|
34
34
|
/** @group VC Plugin */
|
35
35
|
export type VCPlugin = Plugin<'VC', any, VCPluginMethods, 'id', VCPluginDependentMethods>;
|
@@ -43,7 +43,15 @@ var issueCredential = /* @__PURE__ */ __name((initLearnCard) => {
|
|
43
43
|
|
44
44
|
// src/verifyCredential.ts
|
45
45
|
var verifyCredential = /* @__PURE__ */ __name((initLearnCard) => {
|
46
|
-
return async (_learnCard, credential,
|
46
|
+
return async (_learnCard, credential, _options = {}) => {
|
47
|
+
const options = _options;
|
48
|
+
if (!options.checks) {
|
49
|
+
options.checks = ["proof"];
|
50
|
+
if (credential.credentialStatus)
|
51
|
+
options.checks.push("credentialStatus");
|
52
|
+
if (credential.credentialSchema)
|
53
|
+
options.checks.push("credentialSchema");
|
54
|
+
}
|
47
55
|
return initLearnCard.invoke.verifyCredential(credential, options);
|
48
56
|
};
|
49
57
|
}, "verifyCredential");
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../src/index.ts", "../src/issueCredential.ts", "../src/verifyCredential.ts", "../src/issuePresentation.ts", "../src/verifyPresentation.ts", "../src/vc.ts"],
|
4
|
-
"sourcesContent": ["export { getVCPlugin } from './vc';\nexport * from './types';\n", "import { UnsignedVC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const issueCredential = (initLearnCard: VCDependentLearnCard) => {\n return async (\n learnCard: VCImplicitLearnCard,\n credential: UnsignedVC,\n signingOptions: Partial<ProofOptions> = {}\n ) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) throw new Error('Cannot issue credential: Could not get subject keypair');\n\n const verificationMethod = await learnCard.invoke.didToVerificationMethod(\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id!\n );\n\n const options = {\n verificationMethod,\n proofPurpose: 'assertionMethod',\n type: 'Ed25519Signature2020',\n ...signingOptions,\n };\n\n return initLearnCard.invoke.issueCredential(credential, options, kp);\n };\n};\n", "import { VC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const verifyCredential = (initLearnCard: VCDependentLearnCard) => {\n return async (\n _learnCard: VCImplicitLearnCard,\n credential: VC,\n
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,kBAAkB,wBAAC,kBAAwC;AACpE,SAAO,OACH,WACA,YACA,iBAAwC,CAAC,MACxC;AACD,UAAM,KAAK,UAAU,GAAG,QAAQ;AAEhC,QAAI,CAAC;AAAI,YAAM,IAAI,MAAM,wDAAwD;AAEjF,UAAM,qBAAqB,MAAM,UAAU,OAAO,wBAC9C,OAAO,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW,OAAO,EAClF;AAEA,UAAM,UAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,MACd,MAAM;AAAA,SACH;AAAA,IACP;AAEA,WAAO,cAAc,OAAO,gBAAgB,YAAY,SAAS,EAAE;AAAA,EACvE;AACJ,GAvB+B;;;ACAxB,IAAM,mBAAmB,wBAAC,kBAAwC;AACrE,SAAO,OACH,YACA,YACA,
|
4
|
+
"sourcesContent": ["export { getVCPlugin } from './vc';\nexport * from './types';\n", "import { UnsignedVC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const issueCredential = (initLearnCard: VCDependentLearnCard) => {\n return async (\n learnCard: VCImplicitLearnCard,\n credential: UnsignedVC,\n signingOptions: Partial<ProofOptions> = {}\n ) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) throw new Error('Cannot issue credential: Could not get subject keypair');\n\n const verificationMethod = await learnCard.invoke.didToVerificationMethod(\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id!\n );\n\n const options = {\n verificationMethod,\n proofPurpose: 'assertionMethod',\n type: 'Ed25519Signature2020',\n ...signingOptions,\n };\n\n return initLearnCard.invoke.issueCredential(credential, options, kp);\n };\n};\n", "import { VC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const verifyCredential = (initLearnCard: VCDependentLearnCard) => {\n return async (\n _learnCard: VCImplicitLearnCard,\n credential: VC,\n _options: Partial<ProofOptions> = {}\n ) => {\n const options = _options;\n\n if (!options.checks) {\n options.checks = ['proof'];\n if (credential.credentialStatus) options.checks.push('credentialStatus');\n if (credential.credentialSchema) options.checks.push('credentialSchema');\n }\n\n return initLearnCard.invoke.verifyCredential(credential, options);\n };\n};\n", "import { UnsignedVP } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const issuePresentation = (initLearnCard: VCDependentLearnCard) => {\n return async (\n learnCard: VCImplicitLearnCard,\n presentation: UnsignedVP,\n signingOptions: Partial<ProofOptions> = {}\n ) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) throw new Error('Cannot issue credential: Could not get subject keypair');\n\n const verificationMethod = await learnCard.invoke.didToVerificationMethod(\n learnCard.id.did()\n );\n\n const options = {\n verificationMethod,\n ...(signingOptions.proofFormat === 'jwt' ? {} : { proofPurpose: 'assertionMethod' }),\n ...(signingOptions.proofFormat === 'jwt' ? {} : { type: 'Ed25519Signature2020' }),\n ...signingOptions,\n };\n\n return initLearnCard.invoke.issuePresentation(presentation, options, kp);\n };\n};\n", "import { VP } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const verifyPresentation = (initLearnCard: VCDependentLearnCard) => {\n return async (\n _learnCard: VCImplicitLearnCard,\n presentation: VP | string,\n options: Partial<ProofOptions> = {}\n ) => {\n return initLearnCard.invoke.verifyPresentation(presentation, options);\n };\n};\n", "import { issueCredential } from './issueCredential';\nimport { verifyCredential } from './verifyCredential';\nimport { issuePresentation } from './issuePresentation';\nimport { verifyPresentation } from './verifyPresentation';\n\nimport { VCDependentLearnCard, VCPlugin } from './types';\nimport { UnsignedVP } from '@learncard/types';\n\n/**\n * @group Plugins\n */\nexport const getVCPlugin = (learnCard: VCDependentLearnCard): VCPlugin => {\n return {\n name: 'VC',\n displayName: 'VC',\n description:\n 'Handles the infrastructure needed to issue and verify credentials and presentations',\n methods: {\n issueCredential: issueCredential(learnCard),\n verifyCredential: verifyCredential(learnCard),\n issuePresentation: issuePresentation(learnCard),\n verifyPresentation: verifyPresentation(learnCard),\n getTestVc: (_learnCard, subject = 'did:example:d23dd687a7dc6787646f2eb98d0') => {\n const did = _learnCard.id.did();\n\n return {\n '@context': ['https://www.w3.org/2018/credentials/v1'],\n id: 'http://example.org/credentials/3731',\n type: ['VerifiableCredential'],\n issuer: did,\n issuanceDate: '2020-08-19T21:41:50Z',\n credentialSubject: { id: subject },\n };\n },\n getTestVp: async (_learnCard, _credential) => {\n const credential =\n _credential ||\n (await _learnCard.invoke.issueCredential(_learnCard.invoke.getTestVc()));\n\n const did = _learnCard.id.did();\n\n return {\n '@context': ['https://www.w3.org/2018/credentials/v1'],\n type: ['VerifiablePresentation'],\n holder: did,\n verifiableCredential: credential,\n };\n },\n getDidAuthVp: async (_learnCard, options = {}) => {\n const did = _learnCard.id.did();\n const unsignedVP: UnsignedVP = {\n '@context': ['https://www.w3.org/2018/credentials/v1'],\n type: ['VerifiablePresentation'],\n holder: did,\n };\n\n return _learnCard.invoke.issuePresentation(unsignedVP, {\n proofPurpose: 'authentication',\n ...options,\n });\n },\n },\n };\n};\n"],
|
5
|
+
"mappings": "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",
|
6
6
|
"names": []
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
var s=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var o=(
|
1
|
+
var s=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var o=(r,e)=>s(r,"name",{value:e,configurable:!0});var P=(r,e)=>{for(var t in e)s(r,t,{get:e[t],enumerable:!0})},h=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of V(e))!l.call(r,i)&&i!==t&&s(r,i,{get:()=>e[i],enumerable:!(n=u(e,i))||n.enumerable});return r};var v=r=>h(s({},"__esModule",{value:!0}),r);var y={};P(y,{getVCPlugin:()=>m});module.exports=v(y);var d=o(r=>async(e,t,n={})=>{let i=e.id.keypair();if(!i)throw new Error("Cannot issue credential: Could not get subject keypair");let a={verificationMethod:await e.invoke.didToVerificationMethod(typeof t.issuer=="string"?t.issuer:t.issuer.id),proofPurpose:"assertionMethod",type:"Ed25519Signature2020",...n};return r.invoke.issueCredential(t,a,i)},"issueCredential");var p=o(r=>async(e,t,n={})=>{let i=n;return i.checks||(i.checks=["proof"],t.credentialStatus&&i.checks.push("credentialStatus"),t.credentialSchema&&i.checks.push("credentialSchema")),r.invoke.verifyCredential(t,i)},"verifyCredential");var c=o(r=>async(e,t,n={})=>{let i=e.id.keypair();if(!i)throw new Error("Cannot issue credential: Could not get subject keypair");let a={verificationMethod:await e.invoke.didToVerificationMethod(e.id.did()),...n.proofFormat==="jwt"?{}:{proofPurpose:"assertionMethod"},...n.proofFormat==="jwt"?{}:{type:"Ed25519Signature2020"},...n};return r.invoke.issuePresentation(t,a,i)},"issuePresentation");var f=o(r=>async(e,t,n={})=>r.invoke.verifyPresentation(t,n),"verifyPresentation");var m=o(r=>({name:"VC",displayName:"VC",description:"Handles the infrastructure needed to issue and verify credentials and presentations",methods:{issueCredential:d(r),verifyCredential:p(r),issuePresentation:c(r),verifyPresentation:f(r),getTestVc:(e,t="did:example:d23dd687a7dc6787646f2eb98d0")=>{let n=e.id.did();return{"@context":["https://www.w3.org/2018/credentials/v1"],id:"http://example.org/credentials/3731",type:["VerifiableCredential"],issuer:n,issuanceDate:"2020-08-19T21:41:50Z",credentialSubject:{id:t}}},getTestVp:async(e,t)=>{let n=t||await e.invoke.issueCredential(e.invoke.getTestVc()),i=e.id.did();return{"@context":["https://www.w3.org/2018/credentials/v1"],type:["VerifiablePresentation"],holder:i,verifiableCredential:n}},getDidAuthVp:async(e,t={})=>{let n=e.id.did(),i={"@context":["https://www.w3.org/2018/credentials/v1"],type:["VerifiablePresentation"],holder:n};return e.invoke.issuePresentation(i,{proofPurpose:"authentication",...t})}}}),"getVCPlugin");
|
2
2
|
//# sourceMappingURL=vc-plugin.cjs.production.min.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../src/index.ts", "../src/issueCredential.ts", "../src/verifyCredential.ts", "../src/issuePresentation.ts", "../src/verifyPresentation.ts", "../src/vc.ts"],
|
4
|
-
"sourcesContent": ["export { getVCPlugin } from './vc';\nexport * from './types';\n", "import { UnsignedVC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const issueCredential = (initLearnCard: VCDependentLearnCard) => {\n return async (\n learnCard: VCImplicitLearnCard,\n credential: UnsignedVC,\n signingOptions: Partial<ProofOptions> = {}\n ) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) throw new Error('Cannot issue credential: Could not get subject keypair');\n\n const verificationMethod = await learnCard.invoke.didToVerificationMethod(\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id!\n );\n\n const options = {\n verificationMethod,\n proofPurpose: 'assertionMethod',\n type: 'Ed25519Signature2020',\n ...signingOptions,\n };\n\n return initLearnCard.invoke.issueCredential(credential, options, kp);\n };\n};\n", "import { VC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const verifyCredential = (initLearnCard: VCDependentLearnCard) => {\n return async (\n _learnCard: VCImplicitLearnCard,\n credential: VC,\n
|
5
|
-
"mappings": "+cAAA,sDCKO,GAAM,GAAkB,EAAC,GACrB,MACH,EACA,EACA,EAAwC,CAAC,IACxC,CACD,GAAM,GAAK,EAAU,GAAG,QAAQ,EAEhC,GAAI,CAAC,EAAI,KAAM,IAAI,OAAM,wDAAwD,EAMjF,GAAM,GAAU,CACZ,mBALuB,KAAM,GAAU,OAAO,wBAC9C,MAAO,GAAW,QAAW,SAAW,EAAW,OAAS,EAAW,OAAO,EAClF,EAII,aAAc,kBACd,KAAM,0BACH,CACP,EAEA,MAAO,GAAc,OAAO,gBAAgB,EAAY,EAAS,CAAE,CACvE,EAtB2B,mBCAxB,GAAM,GAAmB,EAAC,GACtB,MACH,EACA,EACA,
|
4
|
+
"sourcesContent": ["export { getVCPlugin } from './vc';\nexport * from './types';\n", "import { UnsignedVC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const issueCredential = (initLearnCard: VCDependentLearnCard) => {\n return async (\n learnCard: VCImplicitLearnCard,\n credential: UnsignedVC,\n signingOptions: Partial<ProofOptions> = {}\n ) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) throw new Error('Cannot issue credential: Could not get subject keypair');\n\n const verificationMethod = await learnCard.invoke.didToVerificationMethod(\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id!\n );\n\n const options = {\n verificationMethod,\n proofPurpose: 'assertionMethod',\n type: 'Ed25519Signature2020',\n ...signingOptions,\n };\n\n return initLearnCard.invoke.issueCredential(credential, options, kp);\n };\n};\n", "import { VC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const verifyCredential = (initLearnCard: VCDependentLearnCard) => {\n return async (\n _learnCard: VCImplicitLearnCard,\n credential: VC,\n _options: Partial<ProofOptions> = {}\n ) => {\n const options = _options;\n\n if (!options.checks) {\n options.checks = ['proof'];\n if (credential.credentialStatus) options.checks.push('credentialStatus');\n if (credential.credentialSchema) options.checks.push('credentialSchema');\n }\n\n return initLearnCard.invoke.verifyCredential(credential, options);\n };\n};\n", "import { UnsignedVP } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const issuePresentation = (initLearnCard: VCDependentLearnCard) => {\n return async (\n learnCard: VCImplicitLearnCard,\n presentation: UnsignedVP,\n signingOptions: Partial<ProofOptions> = {}\n ) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) throw new Error('Cannot issue credential: Could not get subject keypair');\n\n const verificationMethod = await learnCard.invoke.didToVerificationMethod(\n learnCard.id.did()\n );\n\n const options = {\n verificationMethod,\n ...(signingOptions.proofFormat === 'jwt' ? {} : { proofPurpose: 'assertionMethod' }),\n ...(signingOptions.proofFormat === 'jwt' ? {} : { type: 'Ed25519Signature2020' }),\n ...signingOptions,\n };\n\n return initLearnCard.invoke.issuePresentation(presentation, options, kp);\n };\n};\n", "import { VP } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const verifyPresentation = (initLearnCard: VCDependentLearnCard) => {\n return async (\n _learnCard: VCImplicitLearnCard,\n presentation: VP | string,\n options: Partial<ProofOptions> = {}\n ) => {\n return initLearnCard.invoke.verifyPresentation(presentation, options);\n };\n};\n", "import { issueCredential } from './issueCredential';\nimport { verifyCredential } from './verifyCredential';\nimport { issuePresentation } from './issuePresentation';\nimport { verifyPresentation } from './verifyPresentation';\n\nimport { VCDependentLearnCard, VCPlugin } from './types';\nimport { UnsignedVP } from '@learncard/types';\n\n/**\n * @group Plugins\n */\nexport const getVCPlugin = (learnCard: VCDependentLearnCard): VCPlugin => {\n return {\n name: 'VC',\n displayName: 'VC',\n description:\n 'Handles the infrastructure needed to issue and verify credentials and presentations',\n methods: {\n issueCredential: issueCredential(learnCard),\n verifyCredential: verifyCredential(learnCard),\n issuePresentation: issuePresentation(learnCard),\n verifyPresentation: verifyPresentation(learnCard),\n getTestVc: (_learnCard, subject = 'did:example:d23dd687a7dc6787646f2eb98d0') => {\n const did = _learnCard.id.did();\n\n return {\n '@context': ['https://www.w3.org/2018/credentials/v1'],\n id: 'http://example.org/credentials/3731',\n type: ['VerifiableCredential'],\n issuer: did,\n issuanceDate: '2020-08-19T21:41:50Z',\n credentialSubject: { id: subject },\n };\n },\n getTestVp: async (_learnCard, _credential) => {\n const credential =\n _credential ||\n (await _learnCard.invoke.issueCredential(_learnCard.invoke.getTestVc()));\n\n const did = _learnCard.id.did();\n\n return {\n '@context': ['https://www.w3.org/2018/credentials/v1'],\n type: ['VerifiablePresentation'],\n holder: did,\n verifiableCredential: credential,\n };\n },\n getDidAuthVp: async (_learnCard, options = {}) => {\n const did = _learnCard.id.did();\n const unsignedVP: UnsignedVP = {\n '@context': ['https://www.w3.org/2018/credentials/v1'],\n type: ['VerifiablePresentation'],\n holder: did,\n };\n\n return _learnCard.invoke.issuePresentation(unsignedVP, {\n proofPurpose: 'authentication',\n ...options,\n });\n },\n },\n };\n};\n"],
|
5
|
+
"mappings": "+cAAA,sDCKO,GAAM,GAAkB,EAAC,GACrB,MACH,EACA,EACA,EAAwC,CAAC,IACxC,CACD,GAAM,GAAK,EAAU,GAAG,QAAQ,EAEhC,GAAI,CAAC,EAAI,KAAM,IAAI,OAAM,wDAAwD,EAMjF,GAAM,GAAU,CACZ,mBALuB,KAAM,GAAU,OAAO,wBAC9C,MAAO,GAAW,QAAW,SAAW,EAAW,OAAS,EAAW,OAAO,EAClF,EAII,aAAc,kBACd,KAAM,0BACH,CACP,EAEA,MAAO,GAAc,OAAO,gBAAgB,EAAY,EAAS,CAAE,CACvE,EAtB2B,mBCAxB,GAAM,GAAmB,EAAC,GACtB,MACH,EACA,EACA,EAAkC,CAAC,IAClC,CACD,GAAM,GAAU,EAEhB,MAAK,GAAQ,QACT,GAAQ,OAAS,CAAC,OAAO,EACrB,EAAW,kBAAkB,EAAQ,OAAO,KAAK,kBAAkB,EACnE,EAAW,kBAAkB,EAAQ,OAAO,KAAK,kBAAkB,GAGpE,EAAc,OAAO,iBAAiB,EAAY,CAAO,CACpE,EAf4B,oBCAzB,GAAM,GAAoB,EAAC,GACvB,MACH,EACA,EACA,EAAwC,CAAC,IACxC,CACD,GAAM,GAAK,EAAU,GAAG,QAAQ,EAEhC,GAAI,CAAC,EAAI,KAAM,IAAI,OAAM,wDAAwD,EAMjF,GAAM,GAAU,CACZ,mBALuB,KAAM,GAAU,OAAO,wBAC9C,EAAU,GAAG,IAAI,CACrB,KAIQ,EAAe,cAAgB,MAAQ,CAAC,EAAI,CAAE,aAAc,iBAAkB,KAC9E,EAAe,cAAgB,MAAQ,CAAC,EAAI,CAAE,KAAM,sBAAuB,KAC5E,CACP,EAEA,MAAO,GAAc,OAAO,kBAAkB,EAAc,EAAS,CAAE,CAC3E,EAtB6B,qBCA1B,GAAM,GAAqB,EAAC,GACxB,MACH,EACA,EACA,EAAiC,CAAC,IAE3B,EAAc,OAAO,mBAAmB,EAAc,CAAO,EAN1C,sBCM3B,GAAM,GAAc,EAAC,GACjB,EACH,KAAM,KACN,YAAa,KACb,YACI,sFACJ,QAAS,CACL,gBAAiB,EAAgB,CAAS,EAC1C,iBAAkB,EAAiB,CAAS,EAC5C,kBAAmB,EAAkB,CAAS,EAC9C,mBAAoB,EAAmB,CAAS,EAChD,UAAW,CAAC,EAAY,EAAU,4CAA8C,CAC5E,GAAM,GAAM,EAAW,GAAG,IAAI,EAE9B,MAAO,CACH,WAAY,CAAC,wCAAwC,EACrD,GAAI,sCACJ,KAAM,CAAC,sBAAsB,EAC7B,OAAQ,EACR,aAAc,uBACd,kBAAmB,CAAE,GAAI,CAAQ,CACrC,CACJ,EACA,UAAW,MAAO,EAAY,IAAgB,CAC1C,GAAM,GACF,GACC,KAAM,GAAW,OAAO,gBAAgB,EAAW,OAAO,UAAU,CAAC,EAEpE,EAAM,EAAW,GAAG,IAAI,EAE9B,MAAO,CACH,WAAY,CAAC,wCAAwC,EACrD,KAAM,CAAC,wBAAwB,EAC/B,OAAQ,EACR,qBAAsB,CAC1B,CACJ,EACA,aAAc,MAAO,EAAY,EAAU,CAAC,IAAM,CAC9C,GAAM,GAAM,EAAW,GAAG,IAAI,EACxB,EAAyB,CAC3B,WAAY,CAAC,wCAAwC,EACrD,KAAM,CAAC,wBAAwB,EAC/B,OAAQ,CACZ,EAEA,MAAO,GAAW,OAAO,kBAAkB,EAAY,CACnD,aAAc,oBACX,CACP,CAAC,CACL,CACJ,CACJ,GAnDuB",
|
6
6
|
"names": []
|
7
7
|
}
|
package/dist/vc-plugin.esm.js
CHANGED
@@ -20,7 +20,15 @@ var issueCredential = /* @__PURE__ */ __name((initLearnCard) => {
|
|
20
20
|
|
21
21
|
// src/verifyCredential.ts
|
22
22
|
var verifyCredential = /* @__PURE__ */ __name((initLearnCard) => {
|
23
|
-
return async (_learnCard, credential,
|
23
|
+
return async (_learnCard, credential, _options = {}) => {
|
24
|
+
const options = _options;
|
25
|
+
if (!options.checks) {
|
26
|
+
options.checks = ["proof"];
|
27
|
+
if (credential.credentialStatus)
|
28
|
+
options.checks.push("credentialStatus");
|
29
|
+
if (credential.credentialSchema)
|
30
|
+
options.checks.push("credentialSchema");
|
31
|
+
}
|
24
32
|
return initLearnCard.invoke.verifyCredential(credential, options);
|
25
33
|
};
|
26
34
|
}, "verifyCredential");
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../src/issueCredential.ts", "../src/verifyCredential.ts", "../src/issuePresentation.ts", "../src/verifyPresentation.ts", "../src/vc.ts"],
|
4
|
-
"sourcesContent": ["import { UnsignedVC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const issueCredential = (initLearnCard: VCDependentLearnCard) => {\n return async (\n learnCard: VCImplicitLearnCard,\n credential: UnsignedVC,\n signingOptions: Partial<ProofOptions> = {}\n ) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) throw new Error('Cannot issue credential: Could not get subject keypair');\n\n const verificationMethod = await learnCard.invoke.didToVerificationMethod(\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id!\n );\n\n const options = {\n verificationMethod,\n proofPurpose: 'assertionMethod',\n type: 'Ed25519Signature2020',\n ...signingOptions,\n };\n\n return initLearnCard.invoke.issueCredential(credential, options, kp);\n };\n};\n", "import { VC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const verifyCredential = (initLearnCard: VCDependentLearnCard) => {\n return async (\n _learnCard: VCImplicitLearnCard,\n credential: VC,\n
|
5
|
-
"mappings": ";;;;AAKO,IAAM,kBAAkB,wBAAC,kBAAwC;AACpE,SAAO,OACH,WACA,YACA,iBAAwC,CAAC,MACxC;AACD,UAAM,KAAK,UAAU,GAAG,QAAQ;AAEhC,QAAI,CAAC;AAAI,YAAM,IAAI,MAAM,wDAAwD;AAEjF,UAAM,qBAAqB,MAAM,UAAU,OAAO,wBAC9C,OAAO,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW,OAAO,EAClF;AAEA,UAAM,UAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,MACd,MAAM;AAAA,SACH;AAAA,IACP;AAEA,WAAO,cAAc,OAAO,gBAAgB,YAAY,SAAS,EAAE;AAAA,EACvE;AACJ,GAvB+B;;;ACAxB,IAAM,mBAAmB,wBAAC,kBAAwC;AACrE,SAAO,OACH,YACA,YACA,
|
4
|
+
"sourcesContent": ["import { UnsignedVC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const issueCredential = (initLearnCard: VCDependentLearnCard) => {\n return async (\n learnCard: VCImplicitLearnCard,\n credential: UnsignedVC,\n signingOptions: Partial<ProofOptions> = {}\n ) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) throw new Error('Cannot issue credential: Could not get subject keypair');\n\n const verificationMethod = await learnCard.invoke.didToVerificationMethod(\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id!\n );\n\n const options = {\n verificationMethod,\n proofPurpose: 'assertionMethod',\n type: 'Ed25519Signature2020',\n ...signingOptions,\n };\n\n return initLearnCard.invoke.issueCredential(credential, options, kp);\n };\n};\n", "import { VC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const verifyCredential = (initLearnCard: VCDependentLearnCard) => {\n return async (\n _learnCard: VCImplicitLearnCard,\n credential: VC,\n _options: Partial<ProofOptions> = {}\n ) => {\n const options = _options;\n\n if (!options.checks) {\n options.checks = ['proof'];\n if (credential.credentialStatus) options.checks.push('credentialStatus');\n if (credential.credentialSchema) options.checks.push('credentialSchema');\n }\n\n return initLearnCard.invoke.verifyCredential(credential, options);\n };\n};\n", "import { UnsignedVP } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const issuePresentation = (initLearnCard: VCDependentLearnCard) => {\n return async (\n learnCard: VCImplicitLearnCard,\n presentation: UnsignedVP,\n signingOptions: Partial<ProofOptions> = {}\n ) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) throw new Error('Cannot issue credential: Could not get subject keypair');\n\n const verificationMethod = await learnCard.invoke.didToVerificationMethod(\n learnCard.id.did()\n );\n\n const options = {\n verificationMethod,\n ...(signingOptions.proofFormat === 'jwt' ? {} : { proofPurpose: 'assertionMethod' }),\n ...(signingOptions.proofFormat === 'jwt' ? {} : { type: 'Ed25519Signature2020' }),\n ...signingOptions,\n };\n\n return initLearnCard.invoke.issuePresentation(presentation, options, kp);\n };\n};\n", "import { VP } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\n\nexport const verifyPresentation = (initLearnCard: VCDependentLearnCard) => {\n return async (\n _learnCard: VCImplicitLearnCard,\n presentation: VP | string,\n options: Partial<ProofOptions> = {}\n ) => {\n return initLearnCard.invoke.verifyPresentation(presentation, options);\n };\n};\n", "import { issueCredential } from './issueCredential';\nimport { verifyCredential } from './verifyCredential';\nimport { issuePresentation } from './issuePresentation';\nimport { verifyPresentation } from './verifyPresentation';\n\nimport { VCDependentLearnCard, VCPlugin } from './types';\nimport { UnsignedVP } from '@learncard/types';\n\n/**\n * @group Plugins\n */\nexport const getVCPlugin = (learnCard: VCDependentLearnCard): VCPlugin => {\n return {\n name: 'VC',\n displayName: 'VC',\n description:\n 'Handles the infrastructure needed to issue and verify credentials and presentations',\n methods: {\n issueCredential: issueCredential(learnCard),\n verifyCredential: verifyCredential(learnCard),\n issuePresentation: issuePresentation(learnCard),\n verifyPresentation: verifyPresentation(learnCard),\n getTestVc: (_learnCard, subject = 'did:example:d23dd687a7dc6787646f2eb98d0') => {\n const did = _learnCard.id.did();\n\n return {\n '@context': ['https://www.w3.org/2018/credentials/v1'],\n id: 'http://example.org/credentials/3731',\n type: ['VerifiableCredential'],\n issuer: did,\n issuanceDate: '2020-08-19T21:41:50Z',\n credentialSubject: { id: subject },\n };\n },\n getTestVp: async (_learnCard, _credential) => {\n const credential =\n _credential ||\n (await _learnCard.invoke.issueCredential(_learnCard.invoke.getTestVc()));\n\n const did = _learnCard.id.did();\n\n return {\n '@context': ['https://www.w3.org/2018/credentials/v1'],\n type: ['VerifiablePresentation'],\n holder: did,\n verifiableCredential: credential,\n };\n },\n getDidAuthVp: async (_learnCard, options = {}) => {\n const did = _learnCard.id.did();\n const unsignedVP: UnsignedVP = {\n '@context': ['https://www.w3.org/2018/credentials/v1'],\n type: ['VerifiablePresentation'],\n holder: did,\n };\n\n return _learnCard.invoke.issuePresentation(unsignedVP, {\n proofPurpose: 'authentication',\n ...options,\n });\n },\n },\n };\n};\n"],
|
5
|
+
"mappings": "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",
|
6
6
|
"names": []
|
7
7
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { VC } from '@learncard/types';
|
2
2
|
import { ProofOptions } from '@learncard/didkit-plugin';
|
3
3
|
import { VCDependentLearnCard, VCImplicitLearnCard } from './types';
|
4
|
-
export declare const verifyCredential: (initLearnCard: VCDependentLearnCard) => (_learnCard: VCImplicitLearnCard, credential: VC,
|
4
|
+
export declare const verifyCredential: (initLearnCard: VCDependentLearnCard) => (_learnCard: VCImplicitLearnCard, credential: VC, _options?: Partial<ProofOptions>) => Promise<{
|
5
5
|
checks: string[];
|
6
6
|
warnings: string[];
|
7
7
|
errors: string[];
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@learncard/vc-plugin",
|
3
|
-
"version": "1.0
|
3
|
+
"version": "1.1.0",
|
4
4
|
"description": "",
|
5
5
|
"main": "./dist/index.js",
|
6
6
|
"module": "./dist/vc-plugin.esm.js",
|
@@ -30,8 +30,8 @@
|
|
30
30
|
},
|
31
31
|
"types": "./dist/index.d.ts",
|
32
32
|
"dependencies": {
|
33
|
-
"@learncard/core": "9.0
|
34
|
-
"@learncard/didkit-plugin": "^1.
|
33
|
+
"@learncard/core": "9.1.0",
|
34
|
+
"@learncard/didkit-plugin": "^1.3.0",
|
35
35
|
"@learncard/types": "5.3.2"
|
36
36
|
},
|
37
37
|
"scripts": {
|