@learncard/vc-plugin 1.0.12 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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": {
|