@learncard/vc-plugin 1.1.49 → 1.1.51

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.
@@ -119,11 +119,11 @@ var getVCPlugin = /* @__PURE__ */ __name((learnCard) => {
119
119
  getTestVc: (_learnCard, subject = "did:example:d23dd687a7dc6787646f2eb98d0") => {
120
120
  const did = _learnCard.id.did();
121
121
  return {
122
- "@context": ["https://www.w3.org/2018/credentials/v1"],
123
- id: "http://example.org/credentials/3731",
122
+ "@context": ["https://www.w3.org/ns/credentials/v2"],
123
+ id: `urn:uuid:${crypto.randomUUID()}`,
124
124
  type: ["VerifiableCredential"],
125
125
  issuer: did,
126
- issuanceDate: "2020-08-19T21:41:50Z",
126
+ validFrom: new Date().toISOString(),
127
127
  credentialSubject: { id: subject }
128
128
  };
129
129
  },
@@ -131,7 +131,7 @@ var getVCPlugin = /* @__PURE__ */ __name((learnCard) => {
131
131
  const credential = _credential || await _learnCard.invoke.issueCredential(_learnCard.invoke.getTestVc());
132
132
  const did = _learnCard.id.did();
133
133
  return {
134
- "@context": ["https://www.w3.org/2018/credentials/v1"],
134
+ "@context": ["https://www.w3.org/ns/credentials/v2"],
135
135
  type: ["VerifiablePresentation"],
136
136
  holder: did,
137
137
  verifiableCredential: credential
@@ -140,7 +140,7 @@ var getVCPlugin = /* @__PURE__ */ __name((learnCard) => {
140
140
  getDidAuthVp: async (_learnCard, options = {}) => {
141
141
  const did = _learnCard.id.did();
142
142
  const unsignedVP = {
143
- "@context": ["https://www.w3.org/2018/credentials/v1"],
143
+ "@context": ["https://www.w3.org/ns/credentials/v2"],
144
144
  type: ["VerifiablePresentation"],
145
145
  holder: did
146
146
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/helpers.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 { VCImplicitLearnCard } from './types';\n\n/**\n * Determines the default verification method to use for a given did by resolving it and looking\n * for a keypair that matches the default keypair for the LearnCard\n */\nexport const getDefaultVerificationMethod = async (\n learnCard: VCImplicitLearnCard,\n issuerDid: string\n) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) {\n throw new Error('Cannot get default verification method: unable to get subject keypair');\n }\n\n const issuerDidDoc = await learnCard.invoke.resolveDid(issuerDid);\n\n const verificationMethodEntry =\n typeof issuerDidDoc === 'string'\n ? undefined\n : issuerDidDoc?.verificationMethod?.find(entry =>\n typeof entry === 'string' ? false : entry?.publicKeyJwk?.x === kp.x\n );\n\n const verificationMethod =\n (typeof verificationMethodEntry !== 'string' && verificationMethodEntry?.id) ||\n (await learnCard.invoke.didToVerificationMethod(issuerDid));\n\n return verificationMethod;\n};\n", "import { UnsignedVC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\nimport { getDefaultVerificationMethod } from './helpers';\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 options = {\n proofPurpose: 'assertionMethod',\n type: 'Ed25519Signature2020',\n ...signingOptions,\n };\n\n if (!('verificationMethod' in options)) {\n const issuerDid =\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id!;\n\n options.verificationMethod = await getDefaultVerificationMethod(learnCard, issuerDid);\n }\n\n learnCard.debug?.('Signing with these options', {\n credential,\n options,\n kp,\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';\nimport { getDefaultVerificationMethod } from './helpers';\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 options = {\n ...(signingOptions.proofFormat === 'jwt'\n ? {}\n : { proofPurpose: 'assertionMethod', type: 'Ed25519Signature2020' }),\n ...signingOptions,\n };\n\n if (!('verificationMethod' in options)) {\n options.verificationMethod = await getDefaultVerificationMethod(\n learnCard,\n learnCard.id.did()\n );\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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",
4
+ "sourcesContent": ["export { getVCPlugin } from './vc';\nexport * from './types';\n", "import { VCImplicitLearnCard } from './types';\n\n/**\n * Determines the default verification method to use for a given did by resolving it and looking\n * for a keypair that matches the default keypair for the LearnCard\n */\nexport const getDefaultVerificationMethod = async (\n learnCard: VCImplicitLearnCard,\n issuerDid: string\n) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) {\n throw new Error('Cannot get default verification method: unable to get subject keypair');\n }\n\n const issuerDidDoc = await learnCard.invoke.resolveDid(issuerDid);\n\n const verificationMethodEntry =\n typeof issuerDidDoc === 'string'\n ? undefined\n : issuerDidDoc?.verificationMethod?.find(entry =>\n typeof entry === 'string' ? false : entry?.publicKeyJwk?.x === kp.x\n );\n\n const verificationMethod =\n (typeof verificationMethodEntry !== 'string' && verificationMethodEntry?.id) ||\n (await learnCard.invoke.didToVerificationMethod(issuerDid));\n\n return verificationMethod;\n};\n", "import { UnsignedVC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\nimport { getDefaultVerificationMethod } from './helpers';\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 options = {\n proofPurpose: 'assertionMethod',\n type: 'Ed25519Signature2020',\n ...signingOptions,\n };\n\n if (!('verificationMethod' in options)) {\n const issuerDid =\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id!;\n\n options.verificationMethod = await getDefaultVerificationMethod(learnCard, issuerDid);\n }\n\n learnCard.debug?.('Signing with these options', {\n credential,\n options,\n kp,\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';\nimport { getDefaultVerificationMethod } from './helpers';\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 options = {\n ...(signingOptions.proofFormat === 'jwt'\n ? {}\n : { proofPurpose: 'assertionMethod', type: 'Ed25519Signature2020' }),\n ...signingOptions,\n };\n\n if (!('verificationMethod' in options)) {\n options.verificationMethod = await getDefaultVerificationMethod(\n learnCard,\n learnCard.id.did()\n );\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/ns/credentials/v2'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential'],\n issuer: did,\n validFrom: new Date().toISOString(),\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/ns/credentials/v2'],\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/ns/credentials/v2'],\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": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMO,IAAM,+BAA+B,8BACxC,WACA,cACC;AACD,QAAM,KAAK,UAAU,GAAG,QAAQ;AAEhC,MAAI,CAAC,IAAI;AACL,UAAM,IAAI,MAAM,uEAAuE;AAAA,EAC3F;AAEA,QAAM,eAAe,MAAM,UAAU,OAAO,WAAW,SAAS;AAEhE,QAAM,0BACF,OAAO,iBAAiB,WAClB,SACA,cAAc,oBAAoB;AAAA,IAAK,WACrC,OAAO,UAAU,WAAW,QAAQ,OAAO,cAAc,MAAM,GAAG;AAAA,EACtE;AAER,QAAM,qBACD,OAAO,4BAA4B,YAAY,yBAAyB,MACxE,MAAM,UAAU,OAAO,wBAAwB,SAAS;AAE7D,SAAO;AACX,GAxB4C;;;ACArC,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,UAAU;AAAA,MACZ,cAAc;AAAA,MACd,MAAM;AAAA,MACN,GAAG;AAAA,IACP;AAEA,QAAI,EAAE,wBAAwB,UAAU;AACpC,YAAM,YACF,OAAO,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW,OAAO;AAElF,cAAQ,qBAAqB,MAAM,6BAA6B,WAAW,SAAS;AAAA,IACxF;AAEA,cAAU,QAAQ,8BAA8B;AAAA,MAC5C;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAED,WAAO,cAAc,OAAO,gBAAgB,YAAY,SAAS,EAAE;AAAA,EACvE;AACJ,GA/B+B;;;ACDxB,IAAM,mBAAmB,wBAAC,kBAAwC;AACrE,SAAO,OACH,YACA,YACA,WAAkC,CAAC,MAClC;AACD,UAAM,UAAU;AAEhB,QAAI,CAAC,QAAQ,QAAQ;AACjB,cAAQ,SAAS,CAAC,OAAO;AACzB,UAAI,WAAW;AAAkB,gBAAQ,OAAO,KAAK,kBAAkB;AACvE,UAAI,WAAW;AAAkB,gBAAQ,OAAO,KAAK,kBAAkB;AAAA,IAC3E;AAEA,WAAO,cAAc,OAAO,iBAAiB,YAAY,OAAO;AAAA,EACpE;AACJ,GAhBgC;;;ACCzB,IAAM,oBAAoB,wBAAC,kBAAwC;AACtE,SAAO,OACH,WACA,cACA,iBAAwC,CAAC,MACxC;AACD,UAAM,KAAK,UAAU,GAAG,QAAQ;AAEhC,QAAI,CAAC;AAAI,YAAM,IAAI,MAAM,wDAAwD;AAEjF,UAAM,UAAU;AAAA,MACZ,GAAI,eAAe,gBAAgB,QAC7B,CAAC,IACD,EAAE,cAAc,mBAAmB,MAAM,uBAAuB;AAAA,MACtE,GAAG;AAAA,IACP;AAEA,QAAI,EAAE,wBAAwB,UAAU;AACpC,cAAQ,qBAAqB,MAAM;AAAA,QAC/B;AAAA,QACA,UAAU,GAAG,IAAI;AAAA,MACrB;AAAA,IACJ;AAEA,WAAO,cAAc,OAAO,kBAAkB,cAAc,SAAS,EAAE;AAAA,EAC3E;AACJ,GA1BiC;;;ACD1B,IAAM,qBAAqB,wBAAC,kBAAwC;AACvE,SAAO,OACH,YACA,cACA,UAAiC,CAAC,MACjC;AACD,WAAO,cAAc,OAAO,mBAAmB,cAAc,OAAO;AAAA,EACxE;AACJ,GARkC;;;ACM3B,IAAM,cAAc,wBAAC,cAA8C;AACtE,SAAO;AAAA,IACH,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACI;AAAA,IACJ,SAAS;AAAA,MACL,iBAAiB,gBAAgB,SAAS;AAAA,MAC1C,kBAAkB,iBAAiB,SAAS;AAAA,MAC5C,mBAAmB,kBAAkB,SAAS;AAAA,MAC9C,oBAAoB,mBAAmB,SAAS;AAAA,MAChD,WAAW,CAAC,YAAY,UAAU,8CAA8C;AAC5E,cAAM,MAAM,WAAW,GAAG,IAAI;AAE9B,eAAO;AAAA,UACH,YAAY,CAAC,sCAAsC;AAAA,UACnD,IAAI,YAAY,OAAO,WAAW;AAAA,UAClC,MAAM,CAAC,sBAAsB;AAAA,UAC7B,QAAQ;AAAA,UACR,WAAW,IAAI,KAAK,EAAE,YAAY;AAAA,UAClC,mBAAmB,EAAE,IAAI,QAAQ;AAAA,QACrC;AAAA,MACJ;AAAA,MACA,WAAW,OAAO,YAAY,gBAAgB;AAC1C,cAAM,aACF,eACC,MAAM,WAAW,OAAO,gBAAgB,WAAW,OAAO,UAAU,CAAC;AAE1E,cAAM,MAAM,WAAW,GAAG,IAAI;AAE9B,eAAO;AAAA,UACH,YAAY,CAAC,sCAAsC;AAAA,UACnD,MAAM,CAAC,wBAAwB;AAAA,UAC/B,QAAQ;AAAA,UACR,sBAAsB;AAAA,QAC1B;AAAA,MACJ;AAAA,MACA,cAAc,OAAO,YAAY,UAAU,CAAC,MAAM;AAC9C,cAAM,MAAM,WAAW,GAAG,IAAI;AAC9B,cAAM,aAAyB;AAAA,UAC3B,YAAY,CAAC,sCAAsC;AAAA,UACnD,MAAM,CAAC,wBAAwB;AAAA,UAC/B,QAAQ;AAAA,QACZ;AAEA,eAAO,WAAW,OAAO,kBAAkB,YAAY;AAAA,UACnD,cAAc;AAAA,UACd,GAAG;AAAA,QACP,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AACJ,GApD2B;",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var d=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var o=(i,e)=>d(i,"name",{value:e,configurable:!0});var g=(i,e)=>{for(var t in e)d(i,t,{get:e[t],enumerable:!0})},P=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of l(e))!h.call(i,r)&&r!==t&&d(i,r,{get:()=>e[r],enumerable:!(n=V(e,r))||n.enumerable});return i};var y=i=>P(d({},"__esModule",{value:!0}),i);var v={};g(v,{getVCPlugin:()=>C});module.exports=y(v);var p=o(async(i,e)=>{let t=i.id.keypair();if(!t)throw new Error("Cannot get default verification method: unable to get subject keypair");let n=await i.invoke.resolveDid(e),r=typeof n=="string"?void 0:n?.verificationMethod?.find(a=>typeof a=="string"?!1:a?.publicKeyJwk?.x===t.x);return typeof r!="string"&&r?.id||await i.invoke.didToVerificationMethod(e)},"getDefaultVerificationMethod");var c=o(i=>async(e,t,n={})=>{let r=e.id.keypair();if(!r)throw new Error("Cannot issue credential: Could not get subject keypair");let s={proofPurpose:"assertionMethod",type:"Ed25519Signature2020",...n};if(!("verificationMethod"in s)){let a=typeof t.issuer=="string"?t.issuer:t.issuer.id;s.verificationMethod=await p(e,a)}return e.debug?.("Signing with these options",{credential:t,options:s,kp:r}),i.invoke.issueCredential(t,s,r)},"issueCredential");var f=o(i=>async(e,t,n={})=>{let r=n;return r.checks||(r.checks=["proof"],t.credentialStatus&&r.checks.push("credentialStatus"),t.credentialSchema&&r.checks.push("credentialSchema")),i.invoke.verifyCredential(t,r)},"verifyCredential");var u=o(i=>async(e,t,n={})=>{let r=e.id.keypair();if(!r)throw new Error("Cannot issue credential: Could not get subject keypair");let s={...n.proofFormat==="jwt"?{}:{proofPurpose:"assertionMethod",type:"Ed25519Signature2020"},...n};return"verificationMethod"in s||(s.verificationMethod=await p(e,e.id.did())),i.invoke.issuePresentation(t,s,r)},"issuePresentation");var m=o(i=>async(e,t,n={})=>i.invoke.verifyPresentation(t,n),"verifyPresentation");var C=o(i=>({name:"VC",displayName:"VC",description:"Handles the infrastructure needed to issue and verify credentials and presentations",methods:{issueCredential:c(i),verifyCredential:f(i),issuePresentation:u(i),verifyPresentation:m(i),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()),r=e.id.did();return{"@context":["https://www.w3.org/2018/credentials/v1"],type:["VerifiablePresentation"],holder:r,verifiableCredential:n}},getDidAuthVp:async(e,t={})=>{let n=e.id.did(),r={"@context":["https://www.w3.org/2018/credentials/v1"],type:["VerifiablePresentation"],holder:n};return e.invoke.issuePresentation(r,{proofPurpose:"authentication",...t})}}}),"getVCPlugin");
1
+ "use strict";var d=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var o=(i,e)=>d(i,"name",{value:e,configurable:!0});var h=(i,e)=>{for(var t in e)d(i,t,{get:e[t],enumerable:!0})},P=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of l(e))!g.call(i,r)&&r!==t&&d(i,r,{get:()=>e[r],enumerable:!(n=V(e,r))||n.enumerable});return i};var y=i=>P(d({},"__esModule",{value:!0}),i);var v={};h(v,{getVCPlugin:()=>C});module.exports=y(v);var p=o(async(i,e)=>{let t=i.id.keypair();if(!t)throw new Error("Cannot get default verification method: unable to get subject keypair");let n=await i.invoke.resolveDid(e),r=typeof n=="string"?void 0:n?.verificationMethod?.find(a=>typeof a=="string"?!1:a?.publicKeyJwk?.x===t.x);return typeof r!="string"&&r?.id||await i.invoke.didToVerificationMethod(e)},"getDefaultVerificationMethod");var c=o(i=>async(e,t,n={})=>{let r=e.id.keypair();if(!r)throw new Error("Cannot issue credential: Could not get subject keypair");let s={proofPurpose:"assertionMethod",type:"Ed25519Signature2020",...n};if(!("verificationMethod"in s)){let a=typeof t.issuer=="string"?t.issuer:t.issuer.id;s.verificationMethod=await p(e,a)}return e.debug?.("Signing with these options",{credential:t,options:s,kp:r}),i.invoke.issueCredential(t,s,r)},"issueCredential");var f=o(i=>async(e,t,n={})=>{let r=n;return r.checks||(r.checks=["proof"],t.credentialStatus&&r.checks.push("credentialStatus"),t.credentialSchema&&r.checks.push("credentialSchema")),i.invoke.verifyCredential(t,r)},"verifyCredential");var u=o(i=>async(e,t,n={})=>{let r=e.id.keypair();if(!r)throw new Error("Cannot issue credential: Could not get subject keypair");let s={...n.proofFormat==="jwt"?{}:{proofPurpose:"assertionMethod",type:"Ed25519Signature2020"},...n};return"verificationMethod"in s||(s.verificationMethod=await p(e,e.id.did())),i.invoke.issuePresentation(t,s,r)},"issuePresentation");var m=o(i=>async(e,t,n={})=>i.invoke.verifyPresentation(t,n),"verifyPresentation");var C=o(i=>({name:"VC",displayName:"VC",description:"Handles the infrastructure needed to issue and verify credentials and presentations",methods:{issueCredential:c(i),verifyCredential:f(i),issuePresentation:u(i),verifyPresentation:m(i),getTestVc:(e,t="did:example:d23dd687a7dc6787646f2eb98d0")=>{let n=e.id.did();return{"@context":["https://www.w3.org/ns/credentials/v2"],id:`urn:uuid:${crypto.randomUUID()}`,type:["VerifiableCredential"],issuer:n,validFrom:new Date().toISOString(),credentialSubject:{id:t}}},getTestVp:async(e,t)=>{let n=t||await e.invoke.issueCredential(e.invoke.getTestVc()),r=e.id.did();return{"@context":["https://www.w3.org/ns/credentials/v2"],type:["VerifiablePresentation"],holder:r,verifiableCredential:n}},getDidAuthVp:async(e,t={})=>{let n=e.id.did(),r={"@context":["https://www.w3.org/ns/credentials/v2"],type:["VerifiablePresentation"],holder:n};return e.invoke.issuePresentation(r,{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/helpers.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 { VCImplicitLearnCard } from './types';\n\n/**\n * Determines the default verification method to use for a given did by resolving it and looking\n * for a keypair that matches the default keypair for the LearnCard\n */\nexport const getDefaultVerificationMethod = async (\n learnCard: VCImplicitLearnCard,\n issuerDid: string\n) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) {\n throw new Error('Cannot get default verification method: unable to get subject keypair');\n }\n\n const issuerDidDoc = await learnCard.invoke.resolveDid(issuerDid);\n\n const verificationMethodEntry =\n typeof issuerDidDoc === 'string'\n ? undefined\n : issuerDidDoc?.verificationMethod?.find(entry =>\n typeof entry === 'string' ? false : entry?.publicKeyJwk?.x === kp.x\n );\n\n const verificationMethod =\n (typeof verificationMethodEntry !== 'string' && verificationMethodEntry?.id) ||\n (await learnCard.invoke.didToVerificationMethod(issuerDid));\n\n return verificationMethod;\n};\n", "import { UnsignedVC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\nimport { getDefaultVerificationMethod } from './helpers';\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 options = {\n proofPurpose: 'assertionMethod',\n type: 'Ed25519Signature2020',\n ...signingOptions,\n };\n\n if (!('verificationMethod' in options)) {\n const issuerDid =\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id!;\n\n options.verificationMethod = await getDefaultVerificationMethod(learnCard, issuerDid);\n }\n\n learnCard.debug?.('Signing with these options', {\n credential,\n options,\n kp,\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';\nimport { getDefaultVerificationMethod } from './helpers';\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 options = {\n ...(signingOptions.proofFormat === 'jwt'\n ? {}\n : { proofPurpose: 'assertionMethod', type: 'Ed25519Signature2020' }),\n ...signingOptions,\n };\n\n if (!('verificationMethod' in options)) {\n options.verificationMethod = await getDefaultVerificationMethod(\n learnCard,\n learnCard.id.did()\n );\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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",
4
+ "sourcesContent": ["export { getVCPlugin } from './vc';\nexport * from './types';\n", "import { VCImplicitLearnCard } from './types';\n\n/**\n * Determines the default verification method to use for a given did by resolving it and looking\n * for a keypair that matches the default keypair for the LearnCard\n */\nexport const getDefaultVerificationMethod = async (\n learnCard: VCImplicitLearnCard,\n issuerDid: string\n) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) {\n throw new Error('Cannot get default verification method: unable to get subject keypair');\n }\n\n const issuerDidDoc = await learnCard.invoke.resolveDid(issuerDid);\n\n const verificationMethodEntry =\n typeof issuerDidDoc === 'string'\n ? undefined\n : issuerDidDoc?.verificationMethod?.find(entry =>\n typeof entry === 'string' ? false : entry?.publicKeyJwk?.x === kp.x\n );\n\n const verificationMethod =\n (typeof verificationMethodEntry !== 'string' && verificationMethodEntry?.id) ||\n (await learnCard.invoke.didToVerificationMethod(issuerDid));\n\n return verificationMethod;\n};\n", "import { UnsignedVC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\nimport { getDefaultVerificationMethod } from './helpers';\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 options = {\n proofPurpose: 'assertionMethod',\n type: 'Ed25519Signature2020',\n ...signingOptions,\n };\n\n if (!('verificationMethod' in options)) {\n const issuerDid =\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id!;\n\n options.verificationMethod = await getDefaultVerificationMethod(learnCard, issuerDid);\n }\n\n learnCard.debug?.('Signing with these options', {\n credential,\n options,\n kp,\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';\nimport { getDefaultVerificationMethod } from './helpers';\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 options = {\n ...(signingOptions.proofFormat === 'jwt'\n ? {}\n : { proofPurpose: 'assertionMethod', type: 'Ed25519Signature2020' }),\n ...signingOptions,\n };\n\n if (!('verificationMethod' in options)) {\n options.verificationMethod = await getDefaultVerificationMethod(\n learnCard,\n learnCard.id.did()\n );\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/ns/credentials/v2'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential'],\n issuer: did,\n validFrom: new Date().toISOString(),\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/ns/credentials/v2'],\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/ns/credentials/v2'],\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": ["src_exports", "__export", "getVCPlugin", "__toCommonJS", "getDefaultVerificationMethod", "__name", "learnCard", "issuerDid", "kp", "issuerDidDoc", "verificationMethodEntry", "entry", "issueCredential", "__name", "initLearnCard", "learnCard", "credential", "signingOptions", "kp", "options", "issuerDid", "getDefaultVerificationMethod", "verifyCredential", "__name", "initLearnCard", "_learnCard", "credential", "_options", "options", "issuePresentation", "__name", "initLearnCard", "learnCard", "presentation", "signingOptions", "kp", "options", "getDefaultVerificationMethod", "verifyPresentation", "__name", "initLearnCard", "_learnCard", "presentation", "options", "getVCPlugin", "__name", "learnCard", "issueCredential", "verifyCredential", "issuePresentation", "verifyPresentation", "_learnCard", "subject", "did", "_credential", "credential", "options", "unsignedVP"]
7
7
  }
@@ -95,11 +95,11 @@ var getVCPlugin = /* @__PURE__ */ __name((learnCard) => {
95
95
  getTestVc: (_learnCard, subject = "did:example:d23dd687a7dc6787646f2eb98d0") => {
96
96
  const did = _learnCard.id.did();
97
97
  return {
98
- "@context": ["https://www.w3.org/2018/credentials/v1"],
99
- id: "http://example.org/credentials/3731",
98
+ "@context": ["https://www.w3.org/ns/credentials/v2"],
99
+ id: `urn:uuid:${crypto.randomUUID()}`,
100
100
  type: ["VerifiableCredential"],
101
101
  issuer: did,
102
- issuanceDate: "2020-08-19T21:41:50Z",
102
+ validFrom: new Date().toISOString(),
103
103
  credentialSubject: { id: subject }
104
104
  };
105
105
  },
@@ -107,7 +107,7 @@ var getVCPlugin = /* @__PURE__ */ __name((learnCard) => {
107
107
  const credential = _credential || await _learnCard.invoke.issueCredential(_learnCard.invoke.getTestVc());
108
108
  const did = _learnCard.id.did();
109
109
  return {
110
- "@context": ["https://www.w3.org/2018/credentials/v1"],
110
+ "@context": ["https://www.w3.org/ns/credentials/v2"],
111
111
  type: ["VerifiablePresentation"],
112
112
  holder: did,
113
113
  verifiableCredential: credential
@@ -116,7 +116,7 @@ var getVCPlugin = /* @__PURE__ */ __name((learnCard) => {
116
116
  getDidAuthVp: async (_learnCard, options = {}) => {
117
117
  const did = _learnCard.id.did();
118
118
  const unsignedVP = {
119
- "@context": ["https://www.w3.org/2018/credentials/v1"],
119
+ "@context": ["https://www.w3.org/ns/credentials/v2"],
120
120
  type: ["VerifiablePresentation"],
121
121
  holder: did
122
122
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/helpers.ts", "../src/issueCredential.ts", "../src/verifyCredential.ts", "../src/issuePresentation.ts", "../src/verifyPresentation.ts", "../src/vc.ts"],
4
- "sourcesContent": ["import { VCImplicitLearnCard } from './types';\n\n/**\n * Determines the default verification method to use for a given did by resolving it and looking\n * for a keypair that matches the default keypair for the LearnCard\n */\nexport const getDefaultVerificationMethod = async (\n learnCard: VCImplicitLearnCard,\n issuerDid: string\n) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) {\n throw new Error('Cannot get default verification method: unable to get subject keypair');\n }\n\n const issuerDidDoc = await learnCard.invoke.resolveDid(issuerDid);\n\n const verificationMethodEntry =\n typeof issuerDidDoc === 'string'\n ? undefined\n : issuerDidDoc?.verificationMethod?.find(entry =>\n typeof entry === 'string' ? false : entry?.publicKeyJwk?.x === kp.x\n );\n\n const verificationMethod =\n (typeof verificationMethodEntry !== 'string' && verificationMethodEntry?.id) ||\n (await learnCard.invoke.didToVerificationMethod(issuerDid));\n\n return verificationMethod;\n};\n", "import { UnsignedVC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\nimport { getDefaultVerificationMethod } from './helpers';\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 options = {\n proofPurpose: 'assertionMethod',\n type: 'Ed25519Signature2020',\n ...signingOptions,\n };\n\n if (!('verificationMethod' in options)) {\n const issuerDid =\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id!;\n\n options.verificationMethod = await getDefaultVerificationMethod(learnCard, issuerDid);\n }\n\n learnCard.debug?.('Signing with these options', {\n credential,\n options,\n kp,\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';\nimport { getDefaultVerificationMethod } from './helpers';\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 options = {\n ...(signingOptions.proofFormat === 'jwt'\n ? {}\n : { proofPurpose: 'assertionMethod', type: 'Ed25519Signature2020' }),\n ...signingOptions,\n };\n\n if (!('verificationMethod' in options)) {\n options.verificationMethod = await getDefaultVerificationMethod(\n learnCard,\n learnCard.id.did()\n );\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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",
4
+ "sourcesContent": ["import { VCImplicitLearnCard } from './types';\n\n/**\n * Determines the default verification method to use for a given did by resolving it and looking\n * for a keypair that matches the default keypair for the LearnCard\n */\nexport const getDefaultVerificationMethod = async (\n learnCard: VCImplicitLearnCard,\n issuerDid: string\n) => {\n const kp = learnCard.id.keypair();\n\n if (!kp) {\n throw new Error('Cannot get default verification method: unable to get subject keypair');\n }\n\n const issuerDidDoc = await learnCard.invoke.resolveDid(issuerDid);\n\n const verificationMethodEntry =\n typeof issuerDidDoc === 'string'\n ? undefined\n : issuerDidDoc?.verificationMethod?.find(entry =>\n typeof entry === 'string' ? false : entry?.publicKeyJwk?.x === kp.x\n );\n\n const verificationMethod =\n (typeof verificationMethodEntry !== 'string' && verificationMethodEntry?.id) ||\n (await learnCard.invoke.didToVerificationMethod(issuerDid));\n\n return verificationMethod;\n};\n", "import { UnsignedVC } from '@learncard/types';\n\nimport { ProofOptions } from '@learncard/didkit-plugin';\nimport { VCDependentLearnCard, VCImplicitLearnCard } from './types';\nimport { getDefaultVerificationMethod } from './helpers';\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 options = {\n proofPurpose: 'assertionMethod',\n type: 'Ed25519Signature2020',\n ...signingOptions,\n };\n\n if (!('verificationMethod' in options)) {\n const issuerDid =\n typeof credential.issuer === 'string' ? credential.issuer : credential.issuer.id!;\n\n options.verificationMethod = await getDefaultVerificationMethod(learnCard, issuerDid);\n }\n\n learnCard.debug?.('Signing with these options', {\n credential,\n options,\n kp,\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';\nimport { getDefaultVerificationMethod } from './helpers';\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 options = {\n ...(signingOptions.proofFormat === 'jwt'\n ? {}\n : { proofPurpose: 'assertionMethod', type: 'Ed25519Signature2020' }),\n ...signingOptions,\n };\n\n if (!('verificationMethod' in options)) {\n options.verificationMethod = await getDefaultVerificationMethod(\n learnCard,\n learnCard.id.did()\n );\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/ns/credentials/v2'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential'],\n issuer: did,\n validFrom: new Date().toISOString(),\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/ns/credentials/v2'],\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/ns/credentials/v2'],\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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@learncard/vc-plugin",
3
- "version": "1.1.49",
3
+ "version": "1.1.51",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/vc-plugin.esm.js",
@@ -30,9 +30,9 @@
30
30
  },
31
31
  "types": "./dist/index.d.ts",
32
32
  "dependencies": {
33
- "@learncard/core": "9.3.31",
33
+ "@learncard/core": "9.3.32",
34
34
  "@learncard/types": "5.8.0",
35
- "@learncard/didkit-plugin": "^1.5.20"
35
+ "@learncard/didkit-plugin": "^1.5.21"
36
36
  },
37
37
  "scripts": {
38
38
  "build": "node ./scripts/build.mjs && shx cp ./scripts/mixedEntypoint.js ./dist/index.js && tsc --p tsconfig.json",