@learncard/vc-templates-plugin 1.0.67 → 1.0.68

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.
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiC,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,iCAAiC;AACjC,eAAO,MAAM,YAAY,EAAE;KACtB,GAAG,IAAI,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,UAAU;CA+OrF,CAAC"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiC,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,iCAAiC;AACjC,eAAO,MAAM,YAAY,EAAE;KACtB,GAAG,IAAI,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,UAAU;CA2PrF,CAAC"}
package/dist/types.d.ts CHANGED
@@ -67,6 +67,35 @@ export type AddressSpec = {
67
67
  longitude?: number | undefined;
68
68
  };
69
69
  };
70
+ export type Source = {
71
+ type: string[];
72
+ id?: string;
73
+ name?: string;
74
+ description?: string;
75
+ url?: string;
76
+ image?: string;
77
+ address?: {
78
+ type?: string[];
79
+ addressLocality?: string;
80
+ addressRegion?: string;
81
+ addressCountry?: string;
82
+ };
83
+ };
84
+ export type Alignment = {
85
+ type: string[];
86
+ targetName?: string;
87
+ targetType?: string;
88
+ targetFramework?: string;
89
+ };
90
+ export interface Evidence {
91
+ id?: string;
92
+ type: [string, ...string[]];
93
+ name?: string;
94
+ narrative?: string;
95
+ description?: string;
96
+ genre?: string;
97
+ audience?: string;
98
+ }
70
99
  export type BoostTemplate = {
71
100
  did?: string;
72
101
  subject?: string;
@@ -88,6 +117,9 @@ export type BoostTemplate = {
88
117
  boostID?: BoostID;
89
118
  address?: AddressSpec;
90
119
  groupID?: string;
120
+ evidence?: Evidence[];
121
+ alignment?: Alignment[];
122
+ source?: Source;
91
123
  };
92
124
  /** @group VC Templates Plugin */
93
125
  export type VcTemplates = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -127,7 +127,10 @@ var VC_TEMPLATES = {
127
127
  display,
128
128
  familyTitles,
129
129
  skills,
130
- groupID = ""
130
+ groupID = "",
131
+ evidence,
132
+ alignment,
133
+ source
131
134
  } = {}, crypto) => ({
132
135
  "@context": [
133
136
  "https://www.w3.org/ns/credentials/v2",
@@ -152,9 +155,12 @@ var VC_TEMPLATES = {
152
155
  image: achievementImage,
153
156
  criteria: {
154
157
  narrative: achievementNarrative
155
- }
156
- }
158
+ },
159
+ ...alignment && { alignment }
160
+ },
161
+ ...source && { source }
157
162
  },
163
+ ...Array.isArray(evidence) && evidence.length > 0 && { evidence },
158
164
  display,
159
165
  familyTitles,
160
166
  image: boostImage,
@@ -181,7 +187,10 @@ var VC_TEMPLATES = {
181
187
  display,
182
188
  familyTitles,
183
189
  boostID,
184
- groupID = ""
190
+ groupID = "",
191
+ evidence,
192
+ alignment,
193
+ source
185
194
  } = {}, crypto) => ({
186
195
  "@context": [
187
196
  "https://www.w3.org/ns/credentials/v2",
@@ -207,9 +216,12 @@ var VC_TEMPLATES = {
207
216
  image: achievementImage,
208
217
  criteria: {
209
218
  narrative: achievementNarrative
210
- }
211
- }
219
+ },
220
+ ...alignment && { alignment }
221
+ },
222
+ ...source && { source }
212
223
  },
224
+ ...Array.isArray(evidence) && evidence.length > 0 && { evidence },
213
225
  ...address ? {
214
226
  address: {
215
227
  type: ["Address"],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/templates.ts", "../src/vc-templates.ts"],
4
- "sourcesContent": ["export { getVCTemplatesPlugin } from './vc-templates';\nexport * from './types';\n", "import { UnsignedVC, UnsignedAchievementCredential } from '@learncard/types';\n\nimport { VcTemplates } from './types';\n\n/** @group VC Templates Plugin */\nexport const VC_TEMPLATES: {\n [Key in keyof VcTemplates]: (args: VcTemplates[Key], crypto: Crypto) => UnsignedVC;\n} = {\n basic: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ) => ({\n '@context': ['https://www.w3.org/ns/credentials/v2'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential'],\n issuer: did,\n validFrom: issuanceDate,\n credentialSubject: { id: subject },\n }),\n achievement: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n name = 'Teamwork Badge',\n achievementName = 'Teamwork',\n description = 'This badge recognizes the development of the capacity to collaborate within a group environment.',\n criteriaNarrative = 'Team members are nominated for this badge by their peers and recognized upon review by Example Corp management.',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ): UnsignedAchievementCredential => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n ],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential', 'OpenBadgeCredential'],\n issuer: { id: did },\n validFrom: issuanceDate,\n name,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n criteria: { narrative: criteriaNarrative },\n description,\n name: achievementName,\n },\n },\n }),\n jff2: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/2018/credentials/v1',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',\n 'https://w3id.org/security/suites/ed25519-2020/v1',\n ],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential', 'OpenBadgeCredential'],\n name: 'JFF x vc-edu PlugFest 2 Interoperability',\n issuer: {\n type: ['Profile'],\n id: did,\n name: 'Jobs for the Future (JFF)',\n image: {\n id: 'https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png',\n type: 'Image',\n },\n },\n issuanceDate: issuanceDate,\n credentialSubject: {\n type: ['AchievementSubject'],\n id: subject,\n achievement: {\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n name: 'JFF x vc-edu PlugFest 2 Interoperability',\n description:\n 'This credential solution supports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions. This was demonstrated successfully during JFF x vc-edu PlugFest 2.',\n criteria: {\n narrative:\n 'Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets. Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers.',\n },\n image: {\n id: 'https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png',\n type: 'Image',\n },\n },\n },\n }),\n boost: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n expirationDate,\n boostName = 'Example Boost',\n boostImage,\n achievementId,\n achievementType = 'Influencer',\n achievementName = 'Awesome Badge',\n achievementDescription = 'Awesome People Earn Awesome Badge',\n achievementNarrative = 'Earned by being awesome.',\n achievementImage = '',\n attachments,\n display,\n familyTitles,\n skills,\n groupID = '',\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n 'https://ctx.learncard.com/boosts/1.0.2.json',\n ],\n type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n ...(expirationDate && { validUntil: expirationDate }),\n name: boostName,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: achievementId ?? `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n achievementType: achievementType,\n name: achievementName,\n description: achievementDescription,\n image: achievementImage,\n criteria: {\n narrative: achievementNarrative,\n },\n },\n },\n display,\n familyTitles,\n image: boostImage,\n attachments,\n skills,\n groupID,\n }),\n boostID: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n expirationDate,\n boostName = 'Example Boost',\n boostImage,\n achievementId,\n achievementType = 'Influencer',\n achievementName = 'Awesome Badge',\n achievementDescription = 'Awesome People Earn Awesome Badge',\n achievementNarrative = 'Earned by being awesome.',\n achievementImage = '',\n address,\n attachments,\n skills,\n display,\n familyTitles,\n boostID,\n groupID = '',\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n 'https://ctx.learncard.com/boosts/1.0.1.json',\n 'https://ctx.learncard.com/boostIDs/1.0.0.json',\n ],\n type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential', 'BoostID'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n ...(expirationDate && { validUntil: expirationDate }),\n name: boostName,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: achievementId ?? `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n achievementType: achievementType,\n name: achievementName,\n description: achievementDescription,\n image: achievementImage,\n criteria: {\n narrative: achievementNarrative,\n },\n },\n },\n ...(address\n ? {\n address: {\n type: ['Address'],\n ...address,\n ...(address.geo ? { geo: { type: ['GeoCoordinates'], ...address.geo } } : {}),\n },\n }\n : {}),\n display,\n familyTitles,\n image: boostImage,\n attachments,\n skills,\n boostID,\n groupID,\n }),\n delegate: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = new Date().toISOString(),\n access = ['read'],\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://ctx.learncard.com/delegates/1.0.0.json',\n ],\n type: ['VerifiableCredential', 'DelegateCredential'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n credentialSubject: { id: subject },\n permissions: { statementAccess: access },\n }),\n};\n", "import { VC_TEMPLATES } from './templates';\n\nimport { VCTemplatePlugin } from './types';\n\n/**\n * @group Plugins\n */\nexport const getVCTemplatesPlugin = (): VCTemplatePlugin => {\n return {\n name: 'VC Templates',\n displayName: 'VC Templates',\n description: 'Allows for the easy creation of VCs and VPs based on predefined templates',\n methods: {\n newCredential: (_learnCard, args = { type: 'basic' }) => {\n const did = args.did || _learnCard.id.did();\n\n if (!did) throw new Error('Could not get issuer did!');\n\n const defaults = {\n did,\n subject: 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate: new Date().toISOString(),\n };\n\n const { type = 'basic', ...functionArgs } = args;\n\n if (!(type in VC_TEMPLATES)) throw new Error('Invalid Test VC Type!');\n\n return VC_TEMPLATES[type](\n { ...defaults, ...functionArgs },\n _learnCard.invoke.crypto()\n );\n },\n newPresentation: async (_learnCard, credential, args = {}) => {\n const did = args?.did || _learnCard.id.did();\n\n if (!did) throw new Error('Could not get issuer 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 },\n };\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["export { getVCTemplatesPlugin } from './vc-templates';\nexport * from './types';\n", "import { UnsignedVC, UnsignedAchievementCredential } from '@learncard/types';\n\nimport { VcTemplates } from './types';\n\n/** @group VC Templates Plugin */\nexport const VC_TEMPLATES: {\n [Key in keyof VcTemplates]: (args: VcTemplates[Key], crypto: Crypto) => UnsignedVC;\n} = {\n basic: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ) => ({\n '@context': ['https://www.w3.org/ns/credentials/v2'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential'],\n issuer: did,\n validFrom: issuanceDate,\n credentialSubject: { id: subject },\n }),\n achievement: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n name = 'Teamwork Badge',\n achievementName = 'Teamwork',\n description = 'This badge recognizes the development of the capacity to collaborate within a group environment.',\n criteriaNarrative = 'Team members are nominated for this badge by their peers and recognized upon review by Example Corp management.',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ): UnsignedAchievementCredential => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n ],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential', 'OpenBadgeCredential'],\n issuer: { id: did },\n validFrom: issuanceDate,\n name,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n criteria: { narrative: criteriaNarrative },\n description,\n name: achievementName,\n },\n },\n }),\n jff2: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/2018/credentials/v1',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',\n 'https://w3id.org/security/suites/ed25519-2020/v1',\n ],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential', 'OpenBadgeCredential'],\n name: 'JFF x vc-edu PlugFest 2 Interoperability',\n issuer: {\n type: ['Profile'],\n id: did,\n name: 'Jobs for the Future (JFF)',\n image: {\n id: 'https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png',\n type: 'Image',\n },\n },\n issuanceDate: issuanceDate,\n credentialSubject: {\n type: ['AchievementSubject'],\n id: subject,\n achievement: {\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n name: 'JFF x vc-edu PlugFest 2 Interoperability',\n description:\n 'This credential solution supports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions. This was demonstrated successfully during JFF x vc-edu PlugFest 2.',\n criteria: {\n narrative:\n 'Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets. Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers.',\n },\n image: {\n id: 'https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png',\n type: 'Image',\n },\n },\n },\n }),\n boost: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n expirationDate,\n boostName = 'Example Boost',\n boostImage,\n achievementId,\n achievementType = 'Influencer',\n achievementName = 'Awesome Badge',\n achievementDescription = 'Awesome People Earn Awesome Badge',\n achievementNarrative = 'Earned by being awesome.',\n achievementImage = '',\n attachments,\n display,\n familyTitles,\n skills,\n groupID = '',\n evidence,\n alignment,\n source,\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n 'https://ctx.learncard.com/boosts/1.0.2.json',\n ],\n type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n ...(expirationDate && { validUntil: expirationDate }),\n name: boostName,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: achievementId ?? `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n achievementType: achievementType,\n name: achievementName,\n description: achievementDescription,\n image: achievementImage,\n criteria: {\n narrative: achievementNarrative,\n },\n ...(alignment && { alignment }),\n },\n ...(source && { source }),\n },\n ...(Array.isArray(evidence) && evidence.length > 0 && { evidence }),\n display,\n familyTitles,\n image: boostImage,\n attachments,\n skills,\n groupID,\n }),\n boostID: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n expirationDate,\n boostName = 'Example Boost',\n boostImage,\n achievementId,\n achievementType = 'Influencer',\n achievementName = 'Awesome Badge',\n achievementDescription = 'Awesome People Earn Awesome Badge',\n achievementNarrative = 'Earned by being awesome.',\n achievementImage = '',\n address,\n attachments,\n skills,\n display,\n familyTitles,\n boostID,\n groupID = '',\n evidence,\n alignment,\n source,\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n 'https://ctx.learncard.com/boosts/1.0.1.json',\n 'https://ctx.learncard.com/boostIDs/1.0.0.json',\n ],\n type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential', 'BoostID'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n ...(expirationDate && { validUntil: expirationDate }),\n name: boostName,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: achievementId ?? `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n achievementType: achievementType,\n name: achievementName,\n description: achievementDescription,\n image: achievementImage,\n criteria: {\n narrative: achievementNarrative,\n },\n ...(alignment && { alignment }),\n },\n ...(source && { source }),\n },\n ...(Array.isArray(evidence) && evidence.length > 0 && { evidence }),\n ...(address\n ? {\n address: {\n type: ['Address'],\n ...address,\n ...(address.geo ? { geo: { type: ['GeoCoordinates'], ...address.geo } } : {}),\n },\n }\n : {}),\n display,\n familyTitles,\n image: boostImage,\n attachments,\n skills,\n boostID,\n groupID,\n }),\n delegate: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = new Date().toISOString(),\n access = ['read'],\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://ctx.learncard.com/delegates/1.0.0.json',\n ],\n type: ['VerifiableCredential', 'DelegateCredential'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n credentialSubject: { id: subject },\n permissions: { statementAccess: access },\n }),\n};\n", "import { VC_TEMPLATES } from './templates';\n\nimport { VCTemplatePlugin } from './types';\n\n/**\n * @group Plugins\n */\nexport const getVCTemplatesPlugin = (): VCTemplatePlugin => {\n return {\n name: 'VC Templates',\n displayName: 'VC Templates',\n description: 'Allows for the easy creation of VCs and VPs based on predefined templates',\n methods: {\n newCredential: (_learnCard, args = { type: 'basic' }) => {\n const did = args.did || _learnCard.id.did();\n\n if (!did) throw new Error('Could not get issuer did!');\n\n const defaults = {\n did,\n subject: 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate: new Date().toISOString(),\n };\n\n const { type = 'basic', ...functionArgs } = args;\n\n if (!(type in VC_TEMPLATES)) throw new Error('Invalid Test VC Type!');\n\n return VC_TEMPLATES[type](\n { ...defaults, ...functionArgs },\n _learnCard.invoke.crypto()\n );\n },\n newPresentation: async (_learnCard, credential, args = {}) => {\n const did = args?.did || _learnCard.id.did();\n\n if (!did) throw new Error('Could not get issuer 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 },\n };\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,eAET;AAAA,EACA,OAAO,CACH;AAAA,IACI,MAAM;AAAA,IACN,UAAU;AAAA,IACV,eAAe;AAAA,EACnB,IAAI,CAAC,GACL,YACE;AAAA,IACF,YAAY,CAAC,sCAAsC;AAAA,IACnD,IAAI,YAAY,OAAO,WAAW;AAAA,IAClC,MAAM,CAAC,sBAAsB;AAAA,IAC7B,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,mBAAmB,EAAE,IAAI,QAAQ;AAAA,EACrC;AAAA,EACA,aAAa,CACT;AAAA,IACI,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,kBAAkB;AAAA,IAClB,cAAc;AAAA,IACd,oBAAoB;AAAA,IACpB,eAAe;AAAA,EACnB,IAAI,CAAC,GACL,YACiC;AAAA,IACjC,YAAY;AAAA,MACR;AAAA,MACA;AAAA,IACJ;AAAA,IACA,IAAI,YAAY,OAAO,WAAW;AAAA,IAClC,MAAM,CAAC,wBAAwB,qBAAqB;AAAA,IACpD,QAAQ,EAAE,IAAI,IAAI;AAAA,IAClB,WAAW;AAAA,IACX;AAAA,IACA,mBAAmB;AAAA,MACf,IAAI;AAAA,MACJ,MAAM,CAAC,oBAAoB;AAAA,MAC3B,aAAa;AAAA,QACT,IAAI,YAAY,OAAO,WAAW;AAAA,QAClC,MAAM,CAAC,aAAa;AAAA,QACpB,UAAU,EAAE,WAAW,kBAAkB;AAAA,QACzC;AAAA,QACA,MAAM;AAAA,MACV;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,MAAM,CACF;AAAA,IACI,MAAM;AAAA,IACN,UAAU;AAAA,IACV,eAAe;AAAA,EACnB,IAAI,CAAC,GACL,YACE;AAAA,IACF,YAAY;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,IACA,IAAI,YAAY,OAAO,WAAW;AAAA,IAClC,MAAM,CAAC,wBAAwB,qBAAqB;AAAA,IACpD,MAAM;AAAA,IACN,QAAQ;AAAA,MACJ,MAAM,CAAC,SAAS;AAAA,MAChB,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,QACH,IAAI;AAAA,QACJ,MAAM;AAAA,MACV;AAAA,IACJ;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,MACf,MAAM,CAAC,oBAAoB;AAAA,MAC3B,IAAI;AAAA,MACJ,aAAa;AAAA,QACT,IAAI,YAAY,OAAO,WAAW;AAAA,QAClC,MAAM,CAAC,aAAa;AAAA,QACpB,MAAM;AAAA,QACN,aACI;AAAA,QACJ,UAAU;AAAA,UACN,WACI;AAAA,QACR;AAAA,QACA,OAAO;AAAA,UACH,IAAI;AAAA,UACJ,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,OAAO,CACH;AAAA,IACI,MAAM;AAAA,IACN,UAAU;AAAA,IACV,eAAe;AAAA,IACf;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,yBAAyB;AAAA,IACzB,uBAAuB;AAAA,IACvB,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI,CAAC,GACL,YACE;AAAA,IACF,YAAY;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,IACA,MAAM,CAAC,wBAAwB,uBAAuB,iBAAiB;AAAA,IACvE,IAAI,YAAY,OAAO,WAAW;AAAA,IAClC,QAAQ,EAAE,IAAI,IAAI;AAAA,IAClB,WAAW;AAAA,IACX,GAAI,kBAAkB,EAAE,YAAY,eAAe;AAAA,IACnD,MAAM;AAAA,IACN,mBAAmB;AAAA,MACf,IAAI;AAAA,MACJ,MAAM,CAAC,oBAAoB;AAAA,MAC3B,aAAa;AAAA,QACT,IAAI,iBAAiB,YAAY,OAAO,WAAW;AAAA,QACnD,MAAM,CAAC,aAAa;AAAA,QACpB;AAAA,QACA,MAAM;AAAA,QACN,aAAa;AAAA,QACb,OAAO;AAAA,QACP,UAAU;AAAA,UACN,WAAW;AAAA,QACf;AAAA,QACA,GAAI,aAAa,EAAE,UAAU;AAAA,MACjC;AAAA,MACA,GAAI,UAAU,EAAE,OAAO;AAAA,IAC3B;AAAA,IACA,GAAI,MAAM,QAAQ,QAAQ,KAAK,SAAS,SAAS,KAAK,EAAE,SAAS;AAAA,IACjE;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS,CACL;AAAA,IACI,MAAM;AAAA,IACN,UAAU;AAAA,IACV,eAAe;AAAA,IACf;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,yBAAyB;AAAA,IACzB,uBAAuB;AAAA,IACvB,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI,CAAC,GACL,YACE;AAAA,IACF,YAAY;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,IACA,MAAM,CAAC,wBAAwB,uBAAuB,mBAAmB,SAAS;AAAA,IAClF,IAAI,YAAY,OAAO,WAAW;AAAA,IAClC,QAAQ,EAAE,IAAI,IAAI;AAAA,IAClB,WAAW;AAAA,IACX,GAAI,kBAAkB,EAAE,YAAY,eAAe;AAAA,IACnD,MAAM;AAAA,IACN,mBAAmB;AAAA,MACf,IAAI;AAAA,MACJ,MAAM,CAAC,oBAAoB;AAAA,MAC3B,aAAa;AAAA,QACT,IAAI,iBAAiB,YAAY,OAAO,WAAW;AAAA,QACnD,MAAM,CAAC,aAAa;AAAA,QACpB;AAAA,QACA,MAAM;AAAA,QACN,aAAa;AAAA,QACb,OAAO;AAAA,QACP,UAAU;AAAA,UACN,WAAW;AAAA,QACf;AAAA,QACA,GAAI,aAAa,EAAE,UAAU;AAAA,MACjC;AAAA,MACA,GAAI,UAAU,EAAE,OAAO;AAAA,IAC3B;AAAA,IACA,GAAI,MAAM,QAAQ,QAAQ,KAAK,SAAS,SAAS,KAAK,EAAE,SAAS;AAAA,IACjE,GAAI,UACE;AAAA,MACI,SAAS;AAAA,QACL,MAAM,CAAC,SAAS;AAAA,QAChB,GAAG;AAAA,QACH,GAAI,QAAQ,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,GAAG,GAAG,QAAQ,IAAI,EAAE,IAAI,CAAC;AAAA,MAC/E;AAAA,IACJ,IACA,CAAC;AAAA,IACP;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,UAAU,CACN;AAAA,IACI,MAAM;AAAA,IACN,UAAU;AAAA,IACV,eAAe,IAAI,KAAK,EAAE,YAAY;AAAA,IACtC,SAAS,CAAC,MAAM;AAAA,EACpB,IAAI,CAAC,GACL,YACE;AAAA,IACF,YAAY;AAAA,MACR;AAAA,MACA;AAAA,IACJ;AAAA,IACA,MAAM,CAAC,wBAAwB,oBAAoB;AAAA,IACnD,IAAI,YAAY,OAAO,WAAW;AAAA,IAClC,QAAQ,EAAE,IAAI,IAAI;AAAA,IAClB,WAAW;AAAA,IACX,mBAAmB,EAAE,IAAI,QAAQ;AAAA,IACjC,aAAa,EAAE,iBAAiB,OAAO;AAAA,EAC3C;AACJ;;;AC1PO,IAAM,uBAAuB,6BAAwB;AACxD,SAAO;AAAA,IACH,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,MACL,eAAe,CAAC,YAAY,OAAO,EAAE,MAAM,QAAQ,MAAM;AACrD,cAAM,MAAM,KAAK,OAAO,WAAW,GAAG,IAAI;AAE1C,YAAI,CAAC;AAAK,gBAAM,IAAI,MAAM,2BAA2B;AAErD,cAAM,WAAW;AAAA,UACb;AAAA,UACA,SAAS;AAAA,UACT,cAAc,IAAI,KAAK,EAAE,YAAY;AAAA,QACzC;AAEA,cAAM,EAAE,OAAO,YAAY,aAAa,IAAI;AAE5C,YAAI,EAAE,QAAQ;AAAe,gBAAM,IAAI,MAAM,uBAAuB;AAEpE,eAAO,aAAa;AAAA,UAChB,EAAE,GAAG,UAAU,GAAG,aAAa;AAAA,UAC/B,WAAW,OAAO,OAAO;AAAA,QAC7B;AAAA,MACJ;AAAA,MACA,iBAAiB,OAAO,YAAY,YAAY,OAAO,CAAC,MAAM;AAC1D,cAAM,MAAM,MAAM,OAAO,WAAW,GAAG,IAAI;AAE3C,YAAI,CAAC;AAAK,gBAAM,IAAI,MAAM,2BAA2B;AAErD,eAAO;AAAA,UACH,YAAY,CAAC,sCAAsC;AAAA,UACnD,MAAM,CAAC,wBAAwB;AAAA,UAC/B,QAAQ;AAAA,UACR,sBAAsB;AAAA,QAC1B;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ,GAxCoC;",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var x=(t,e)=>c(t,"name",{value:e,configurable:!0});var F=(t,e)=>{for(var i in e)c(t,i,{get:e[i],enumerable:!0})},I=(t,e,i,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of V(e))!A.call(t,a)&&a!==i&&c(t,a,{get:()=>e[a],enumerable:!(d=U(e,a))||d.enumerable});return t};var j=t=>I(c({},"__esModule",{value:!0}),t);var S={};F(S,{getVCTemplatesPlugin:()=>C});module.exports=j(S);var v={basic:({did:t="did:example:d23dd687a7dc6787646f2eb98d0",subject:e="did:example:d23dd687a7dc6787646f2eb98d0",issuanceDate:i="2020-08-19T21:41:50Z"}={},d)=>({"@context":["https://www.w3.org/ns/credentials/v2"],id:`urn:uuid:${d.randomUUID()}`,type:["VerifiableCredential"],issuer:t,validFrom:i,credentialSubject:{id:e}}),achievement:({did:t="did:example:d23dd687a7dc6787646f2eb98d0",subject:e="did:example:d23dd687a7dc6787646f2eb98d0",name:i="Teamwork Badge",achievementName:d="Teamwork",description:a="This badge recognizes the development of the capacity to collaborate within a group environment.",criteriaNarrative:n="Team members are nominated for this badge by their peers and recognized upon review by Example Corp management.",issuanceDate:o="2020-08-19T21:41:50Z"}={},r)=>({"@context":["https://www.w3.org/ns/credentials/v2","https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json"],id:`urn:uuid:${r.randomUUID()}`,type:["VerifiableCredential","OpenBadgeCredential"],issuer:{id:t},validFrom:o,name:i,credentialSubject:{id:e,type:["AchievementSubject"],achievement:{id:`urn:uuid:${r.randomUUID()}`,type:["Achievement"],criteria:{narrative:n},description:a,name:d}}}),jff2:({did:t="did:example:d23dd687a7dc6787646f2eb98d0",subject:e="did:example:d23dd687a7dc6787646f2eb98d0",issuanceDate:i="2020-08-19T21:41:50Z"}={},d)=>({"@context":["https://www.w3.org/2018/credentials/v1","https://purl.imsglobal.org/spec/ob/v3p0/context.json","https://w3id.org/security/suites/ed25519-2020/v1"],id:`urn:uuid:${d.randomUUID()}`,type:["VerifiableCredential","OpenBadgeCredential"],name:"JFF x vc-edu PlugFest 2 Interoperability",issuer:{type:["Profile"],id:t,name:"Jobs for the Future (JFF)",image:{id:"https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png",type:"Image"}},issuanceDate:i,credentialSubject:{type:["AchievementSubject"],id:e,achievement:{id:`urn:uuid:${d.randomUUID()}`,type:["Achievement"],name:"JFF x vc-edu PlugFest 2 Interoperability",description:"This credential solution supports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions. This was demonstrated successfully during JFF x vc-edu PlugFest 2.",criteria:{narrative:"Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets. Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers."},image:{id:"https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png",type:"Image"}}}}),boost:({did:t="did:example:d23dd687a7dc6787646f2eb98d0",subject:e="did:example:d23dd687a7dc6787646f2eb98d0",issuanceDate:i="2020-08-19T21:41:50Z",expirationDate:d,boostName:a="Example Boost",boostImage:n,achievementId:o,achievementType:r="Influencer",achievementName:m="Awesome Badge",achievementDescription:p="Awesome People Earn Awesome Badge",achievementNarrative:u="Earned by being awesome.",achievementImage:g="",attachments:s,display:b,familyTitles:w,skills:h,groupID:f=""}={},l)=>({"@context":["https://www.w3.org/ns/credentials/v2","https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json","https://ctx.learncard.com/boosts/1.0.2.json"],type:["VerifiableCredential","OpenBadgeCredential","BoostCredential"],id:`urn:uuid:${l.randomUUID()}`,issuer:{id:t},validFrom:i,...d&&{validUntil:d},name:a,credentialSubject:{id:e,type:["AchievementSubject"],achievement:{id:o??`urn:uuid:${l.randomUUID()}`,type:["Achievement"],achievementType:r,name:m,description:p,image:g,criteria:{narrative:u}}},display:b,familyTitles:w,image:n,attachments:s,skills:h,groupID:f}),boostID:({did:t="did:example:d23dd687a7dc6787646f2eb98d0",subject:e="did:example:d23dd687a7dc6787646f2eb98d0",issuanceDate:i="2020-08-19T21:41:50Z",expirationDate:d,boostName:a="Example Boost",boostImage:n,achievementId:o,achievementType:r="Influencer",achievementName:m="Awesome Badge",achievementDescription:p="Awesome People Earn Awesome Badge",achievementNarrative:u="Earned by being awesome.",achievementImage:g="",address:s,attachments:b,skills:w,display:h,familyTitles:f,boostID:l,groupID:T=""}={},y)=>({"@context":["https://www.w3.org/ns/credentials/v2","https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json","https://ctx.learncard.com/boosts/1.0.1.json","https://ctx.learncard.com/boostIDs/1.0.0.json"],type:["VerifiableCredential","OpenBadgeCredential","BoostCredential","BoostID"],id:`urn:uuid:${y.randomUUID()}`,issuer:{id:t},validFrom:i,...d&&{validUntil:d},name:a,credentialSubject:{id:e,type:["AchievementSubject"],achievement:{id:o??`urn:uuid:${y.randomUUID()}`,type:["Achievement"],achievementType:r,name:m,description:p,image:g,criteria:{narrative:u}}},...s?{address:{type:["Address"],...s,...s.geo?{geo:{type:["GeoCoordinates"],...s.geo}}:{}}}:{},display:h,familyTitles:f,image:n,attachments:b,skills:w,boostID:l,groupID:T}),delegate:({did:t="did:example:d23dd687a7dc6787646f2eb98d0",subject:e="did:example:d23dd687a7dc6787646f2eb98d0",issuanceDate:i=new Date().toISOString(),access:d=["read"]}={},a)=>({"@context":["https://www.w3.org/ns/credentials/v2","https://ctx.learncard.com/delegates/1.0.0.json"],type:["VerifiableCredential","DelegateCredential"],id:`urn:uuid:${a.randomUUID()}`,issuer:{id:t},validFrom:i,credentialSubject:{id:e},permissions:{statementAccess:d}})};var C=x(()=>({name:"VC Templates",displayName:"VC Templates",description:"Allows for the easy creation of VCs and VPs based on predefined templates",methods:{newCredential:(t,e={type:"basic"})=>{let i=e.did||t.id.did();if(!i)throw new Error("Could not get issuer did!");let d={did:i,subject:"did:example:d23dd687a7dc6787646f2eb98d0",issuanceDate:new Date().toISOString()},{type:a="basic",...n}=e;if(!(a in v))throw new Error("Invalid Test VC Type!");return v[a]({...d,...n},t.invoke.crypto())},newPresentation:async(t,e,i={})=>{let d=i?.did||t.id.did();if(!d)throw new Error("Could not get issuer did!");return{"@context":["https://www.w3.org/ns/credentials/v2"],type:["VerifiablePresentation"],holder:d,verifiableCredential:e}}}}),"getVCTemplatesPlugin");
1
+ "use strict";var u=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var A=(t,e)=>u(t,"name",{value:e,configurable:!0});var S=(t,e)=>{for(var i in e)u(t,i,{get:e[i],enumerable:!0})},D=(t,e,i,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of I(e))!j.call(t,a)&&a!==i&&u(t,a,{get:()=>e[a],enumerable:!(d=F(e,a))||d.enumerable});return t};var B=t=>D(u({},"__esModule",{value:!0}),t);var E={};S(E,{getVCTemplatesPlugin:()=>V});module.exports=B(E);var C={basic:({did:t="did:example:d23dd687a7dc6787646f2eb98d0",subject:e="did:example:d23dd687a7dc6787646f2eb98d0",issuanceDate:i="2020-08-19T21:41:50Z"}={},d)=>({"@context":["https://www.w3.org/ns/credentials/v2"],id:`urn:uuid:${d.randomUUID()}`,type:["VerifiableCredential"],issuer:t,validFrom:i,credentialSubject:{id:e}}),achievement:({did:t="did:example:d23dd687a7dc6787646f2eb98d0",subject:e="did:example:d23dd687a7dc6787646f2eb98d0",name:i="Teamwork Badge",achievementName:d="Teamwork",description:a="This badge recognizes the development of the capacity to collaborate within a group environment.",criteriaNarrative:n="Team members are nominated for this badge by their peers and recognized upon review by Example Corp management.",issuanceDate:l="2020-08-19T21:41:50Z"}={},r)=>({"@context":["https://www.w3.org/ns/credentials/v2","https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json"],id:`urn:uuid:${r.randomUUID()}`,type:["VerifiableCredential","OpenBadgeCredential"],issuer:{id:t},validFrom:l,name:i,credentialSubject:{id:e,type:["AchievementSubject"],achievement:{id:`urn:uuid:${r.randomUUID()}`,type:["Achievement"],criteria:{narrative:n},description:a,name:d}}}),jff2:({did:t="did:example:d23dd687a7dc6787646f2eb98d0",subject:e="did:example:d23dd687a7dc6787646f2eb98d0",issuanceDate:i="2020-08-19T21:41:50Z"}={},d)=>({"@context":["https://www.w3.org/2018/credentials/v1","https://purl.imsglobal.org/spec/ob/v3p0/context.json","https://w3id.org/security/suites/ed25519-2020/v1"],id:`urn:uuid:${d.randomUUID()}`,type:["VerifiableCredential","OpenBadgeCredential"],name:"JFF x vc-edu PlugFest 2 Interoperability",issuer:{type:["Profile"],id:t,name:"Jobs for the Future (JFF)",image:{id:"https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png",type:"Image"}},issuanceDate:i,credentialSubject:{type:["AchievementSubject"],id:e,achievement:{id:`urn:uuid:${d.randomUUID()}`,type:["Achievement"],name:"JFF x vc-edu PlugFest 2 Interoperability",description:"This credential solution supports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions. This was demonstrated successfully during JFF x vc-edu PlugFest 2.",criteria:{narrative:"Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets. Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers."},image:{id:"https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png",type:"Image"}}}}),boost:({did:t="did:example:d23dd687a7dc6787646f2eb98d0",subject:e="did:example:d23dd687a7dc6787646f2eb98d0",issuanceDate:i="2020-08-19T21:41:50Z",expirationDate:d,boostName:a="Example Boost",boostImage:n,achievementId:l,achievementType:r="Influencer",achievementName:g="Awesome Badge",achievementDescription:b="Awesome People Earn Awesome Badge",achievementNarrative:w="Earned by being awesome.",achievementImage:h="",attachments:s,display:f,familyTitles:v,skills:y,groupID:x="",evidence:c,alignment:p,source:o}={},m)=>({"@context":["https://www.w3.org/ns/credentials/v2","https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json","https://ctx.learncard.com/boosts/1.0.2.json"],type:["VerifiableCredential","OpenBadgeCredential","BoostCredential"],id:`urn:uuid:${m.randomUUID()}`,issuer:{id:t},validFrom:i,...d&&{validUntil:d},name:a,credentialSubject:{id:e,type:["AchievementSubject"],achievement:{id:l??`urn:uuid:${m.randomUUID()}`,type:["Achievement"],achievementType:r,name:g,description:b,image:h,criteria:{narrative:w},...p&&{alignment:p}},...o&&{source:o}},...Array.isArray(c)&&c.length>0&&{evidence:c},display:f,familyTitles:v,image:n,attachments:s,skills:y,groupID:x}),boostID:({did:t="did:example:d23dd687a7dc6787646f2eb98d0",subject:e="did:example:d23dd687a7dc6787646f2eb98d0",issuanceDate:i="2020-08-19T21:41:50Z",expirationDate:d,boostName:a="Example Boost",boostImage:n,achievementId:l,achievementType:r="Influencer",achievementName:g="Awesome Badge",achievementDescription:b="Awesome People Earn Awesome Badge",achievementNarrative:w="Earned by being awesome.",achievementImage:h="",address:s,attachments:f,skills:v,display:y,familyTitles:x,boostID:c,groupID:p="",evidence:o,alignment:m,source:T}={},U)=>({"@context":["https://www.w3.org/ns/credentials/v2","https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json","https://ctx.learncard.com/boosts/1.0.1.json","https://ctx.learncard.com/boostIDs/1.0.0.json"],type:["VerifiableCredential","OpenBadgeCredential","BoostCredential","BoostID"],id:`urn:uuid:${U.randomUUID()}`,issuer:{id:t},validFrom:i,...d&&{validUntil:d},name:a,credentialSubject:{id:e,type:["AchievementSubject"],achievement:{id:l??`urn:uuid:${U.randomUUID()}`,type:["Achievement"],achievementType:r,name:g,description:b,image:h,criteria:{narrative:w},...m&&{alignment:m}},...T&&{source:T}},...Array.isArray(o)&&o.length>0&&{evidence:o},...s?{address:{type:["Address"],...s,...s.geo?{geo:{type:["GeoCoordinates"],...s.geo}}:{}}}:{},display:y,familyTitles:x,image:n,attachments:f,skills:v,boostID:c,groupID:p}),delegate:({did:t="did:example:d23dd687a7dc6787646f2eb98d0",subject:e="did:example:d23dd687a7dc6787646f2eb98d0",issuanceDate:i=new Date().toISOString(),access:d=["read"]}={},a)=>({"@context":["https://www.w3.org/ns/credentials/v2","https://ctx.learncard.com/delegates/1.0.0.json"],type:["VerifiableCredential","DelegateCredential"],id:`urn:uuid:${a.randomUUID()}`,issuer:{id:t},validFrom:i,credentialSubject:{id:e},permissions:{statementAccess:d}})};var V=A(()=>({name:"VC Templates",displayName:"VC Templates",description:"Allows for the easy creation of VCs and VPs based on predefined templates",methods:{newCredential:(t,e={type:"basic"})=>{let i=e.did||t.id.did();if(!i)throw new Error("Could not get issuer did!");let d={did:i,subject:"did:example:d23dd687a7dc6787646f2eb98d0",issuanceDate:new Date().toISOString()},{type:a="basic",...n}=e;if(!(a in C))throw new Error("Invalid Test VC Type!");return C[a]({...d,...n},t.invoke.crypto())},newPresentation:async(t,e,i={})=>{let d=i?.did||t.id.did();if(!d)throw new Error("Could not get issuer did!");return{"@context":["https://www.w3.org/ns/credentials/v2"],type:["VerifiablePresentation"],holder:d,verifiableCredential:e}}}}),"getVCTemplatesPlugin");
2
2
  //# sourceMappingURL=vc-templates-plugin.cjs.production.min.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/templates.ts", "../src/vc-templates.ts"],
4
- "sourcesContent": ["export { getVCTemplatesPlugin } from './vc-templates';\nexport * from './types';\n", "import { UnsignedVC, UnsignedAchievementCredential } from '@learncard/types';\n\nimport { VcTemplates } from './types';\n\n/** @group VC Templates Plugin */\nexport const VC_TEMPLATES: {\n [Key in keyof VcTemplates]: (args: VcTemplates[Key], crypto: Crypto) => UnsignedVC;\n} = {\n basic: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ) => ({\n '@context': ['https://www.w3.org/ns/credentials/v2'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential'],\n issuer: did,\n validFrom: issuanceDate,\n credentialSubject: { id: subject },\n }),\n achievement: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n name = 'Teamwork Badge',\n achievementName = 'Teamwork',\n description = 'This badge recognizes the development of the capacity to collaborate within a group environment.',\n criteriaNarrative = 'Team members are nominated for this badge by their peers and recognized upon review by Example Corp management.',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ): UnsignedAchievementCredential => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n ],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential', 'OpenBadgeCredential'],\n issuer: { id: did },\n validFrom: issuanceDate,\n name,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n criteria: { narrative: criteriaNarrative },\n description,\n name: achievementName,\n },\n },\n }),\n jff2: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/2018/credentials/v1',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',\n 'https://w3id.org/security/suites/ed25519-2020/v1',\n ],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential', 'OpenBadgeCredential'],\n name: 'JFF x vc-edu PlugFest 2 Interoperability',\n issuer: {\n type: ['Profile'],\n id: did,\n name: 'Jobs for the Future (JFF)',\n image: {\n id: 'https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png',\n type: 'Image',\n },\n },\n issuanceDate: issuanceDate,\n credentialSubject: {\n type: ['AchievementSubject'],\n id: subject,\n achievement: {\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n name: 'JFF x vc-edu PlugFest 2 Interoperability',\n description:\n 'This credential solution supports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions. This was demonstrated successfully during JFF x vc-edu PlugFest 2.',\n criteria: {\n narrative:\n 'Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets. Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers.',\n },\n image: {\n id: 'https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png',\n type: 'Image',\n },\n },\n },\n }),\n boost: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n expirationDate,\n boostName = 'Example Boost',\n boostImage,\n achievementId,\n achievementType = 'Influencer',\n achievementName = 'Awesome Badge',\n achievementDescription = 'Awesome People Earn Awesome Badge',\n achievementNarrative = 'Earned by being awesome.',\n achievementImage = '',\n attachments,\n display,\n familyTitles,\n skills,\n groupID = '',\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n 'https://ctx.learncard.com/boosts/1.0.2.json',\n ],\n type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n ...(expirationDate && { validUntil: expirationDate }),\n name: boostName,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: achievementId ?? `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n achievementType: achievementType,\n name: achievementName,\n description: achievementDescription,\n image: achievementImage,\n criteria: {\n narrative: achievementNarrative,\n },\n },\n },\n display,\n familyTitles,\n image: boostImage,\n attachments,\n skills,\n groupID,\n }),\n boostID: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n expirationDate,\n boostName = 'Example Boost',\n boostImage,\n achievementId,\n achievementType = 'Influencer',\n achievementName = 'Awesome Badge',\n achievementDescription = 'Awesome People Earn Awesome Badge',\n achievementNarrative = 'Earned by being awesome.',\n achievementImage = '',\n address,\n attachments,\n skills,\n display,\n familyTitles,\n boostID,\n groupID = '',\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n 'https://ctx.learncard.com/boosts/1.0.1.json',\n 'https://ctx.learncard.com/boostIDs/1.0.0.json',\n ],\n type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential', 'BoostID'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n ...(expirationDate && { validUntil: expirationDate }),\n name: boostName,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: achievementId ?? `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n achievementType: achievementType,\n name: achievementName,\n description: achievementDescription,\n image: achievementImage,\n criteria: {\n narrative: achievementNarrative,\n },\n },\n },\n ...(address\n ? {\n address: {\n type: ['Address'],\n ...address,\n ...(address.geo ? { geo: { type: ['GeoCoordinates'], ...address.geo } } : {}),\n },\n }\n : {}),\n display,\n familyTitles,\n image: boostImage,\n attachments,\n skills,\n boostID,\n groupID,\n }),\n delegate: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = new Date().toISOString(),\n access = ['read'],\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://ctx.learncard.com/delegates/1.0.0.json',\n ],\n type: ['VerifiableCredential', 'DelegateCredential'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n credentialSubject: { id: subject },\n permissions: { statementAccess: access },\n }),\n};\n", "import { VC_TEMPLATES } from './templates';\n\nimport { VCTemplatePlugin } from './types';\n\n/**\n * @group Plugins\n */\nexport const getVCTemplatesPlugin = (): VCTemplatePlugin => {\n return {\n name: 'VC Templates',\n displayName: 'VC Templates',\n description: 'Allows for the easy creation of VCs and VPs based on predefined templates',\n methods: {\n newCredential: (_learnCard, args = { type: 'basic' }) => {\n const did = args.did || _learnCard.id.did();\n\n if (!did) throw new Error('Could not get issuer did!');\n\n const defaults = {\n did,\n subject: 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate: new Date().toISOString(),\n };\n\n const { type = 'basic', ...functionArgs } = args;\n\n if (!(type in VC_TEMPLATES)) throw new Error('Invalid Test VC Type!');\n\n return VC_TEMPLATES[type](\n { ...defaults, ...functionArgs },\n _learnCard.invoke.crypto()\n );\n },\n newPresentation: async (_learnCard, credential, args = {}) => {\n const did = args?.did || _learnCard.id.did();\n\n if (!did) throw new Error('Could not get issuer 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 },\n };\n};\n"],
5
- "mappings": "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",
6
- "names": ["src_exports", "__export", "getVCTemplatesPlugin", "__toCommonJS", "VC_TEMPLATES", "did", "subject", "issuanceDate", "crypto", "name", "achievementName", "description", "criteriaNarrative", "expirationDate", "boostName", "boostImage", "achievementId", "achievementType", "achievementDescription", "achievementNarrative", "achievementImage", "attachments", "display", "familyTitles", "skills", "groupID", "address", "boostID", "access", "getVCTemplatesPlugin", "__name", "_learnCard", "args", "did", "defaults", "type", "functionArgs", "VC_TEMPLATES", "credential"]
4
+ "sourcesContent": ["export { getVCTemplatesPlugin } from './vc-templates';\nexport * from './types';\n", "import { UnsignedVC, UnsignedAchievementCredential } from '@learncard/types';\n\nimport { VcTemplates } from './types';\n\n/** @group VC Templates Plugin */\nexport const VC_TEMPLATES: {\n [Key in keyof VcTemplates]: (args: VcTemplates[Key], crypto: Crypto) => UnsignedVC;\n} = {\n basic: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ) => ({\n '@context': ['https://www.w3.org/ns/credentials/v2'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential'],\n issuer: did,\n validFrom: issuanceDate,\n credentialSubject: { id: subject },\n }),\n achievement: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n name = 'Teamwork Badge',\n achievementName = 'Teamwork',\n description = 'This badge recognizes the development of the capacity to collaborate within a group environment.',\n criteriaNarrative = 'Team members are nominated for this badge by their peers and recognized upon review by Example Corp management.',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ): UnsignedAchievementCredential => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n ],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential', 'OpenBadgeCredential'],\n issuer: { id: did },\n validFrom: issuanceDate,\n name,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n criteria: { narrative: criteriaNarrative },\n description,\n name: achievementName,\n },\n },\n }),\n jff2: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/2018/credentials/v1',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',\n 'https://w3id.org/security/suites/ed25519-2020/v1',\n ],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential', 'OpenBadgeCredential'],\n name: 'JFF x vc-edu PlugFest 2 Interoperability',\n issuer: {\n type: ['Profile'],\n id: did,\n name: 'Jobs for the Future (JFF)',\n image: {\n id: 'https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png',\n type: 'Image',\n },\n },\n issuanceDate: issuanceDate,\n credentialSubject: {\n type: ['AchievementSubject'],\n id: subject,\n achievement: {\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n name: 'JFF x vc-edu PlugFest 2 Interoperability',\n description:\n 'This credential solution supports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions. This was demonstrated successfully during JFF x vc-edu PlugFest 2.',\n criteria: {\n narrative:\n 'Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets. Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers.',\n },\n image: {\n id: 'https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png',\n type: 'Image',\n },\n },\n },\n }),\n boost: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n expirationDate,\n boostName = 'Example Boost',\n boostImage,\n achievementId,\n achievementType = 'Influencer',\n achievementName = 'Awesome Badge',\n achievementDescription = 'Awesome People Earn Awesome Badge',\n achievementNarrative = 'Earned by being awesome.',\n achievementImage = '',\n attachments,\n display,\n familyTitles,\n skills,\n groupID = '',\n evidence,\n alignment,\n source,\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n 'https://ctx.learncard.com/boosts/1.0.2.json',\n ],\n type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n ...(expirationDate && { validUntil: expirationDate }),\n name: boostName,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: achievementId ?? `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n achievementType: achievementType,\n name: achievementName,\n description: achievementDescription,\n image: achievementImage,\n criteria: {\n narrative: achievementNarrative,\n },\n ...(alignment && { alignment }),\n },\n ...(source && { source }),\n },\n ...(Array.isArray(evidence) && evidence.length > 0 && { evidence }),\n display,\n familyTitles,\n image: boostImage,\n attachments,\n skills,\n groupID,\n }),\n boostID: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n expirationDate,\n boostName = 'Example Boost',\n boostImage,\n achievementId,\n achievementType = 'Influencer',\n achievementName = 'Awesome Badge',\n achievementDescription = 'Awesome People Earn Awesome Badge',\n achievementNarrative = 'Earned by being awesome.',\n achievementImage = '',\n address,\n attachments,\n skills,\n display,\n familyTitles,\n boostID,\n groupID = '',\n evidence,\n alignment,\n source,\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n 'https://ctx.learncard.com/boosts/1.0.1.json',\n 'https://ctx.learncard.com/boostIDs/1.0.0.json',\n ],\n type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential', 'BoostID'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n ...(expirationDate && { validUntil: expirationDate }),\n name: boostName,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: achievementId ?? `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n achievementType: achievementType,\n name: achievementName,\n description: achievementDescription,\n image: achievementImage,\n criteria: {\n narrative: achievementNarrative,\n },\n ...(alignment && { alignment }),\n },\n ...(source && { source }),\n },\n ...(Array.isArray(evidence) && evidence.length > 0 && { evidence }),\n ...(address\n ? {\n address: {\n type: ['Address'],\n ...address,\n ...(address.geo ? { geo: { type: ['GeoCoordinates'], ...address.geo } } : {}),\n },\n }\n : {}),\n display,\n familyTitles,\n image: boostImage,\n attachments,\n skills,\n boostID,\n groupID,\n }),\n delegate: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = new Date().toISOString(),\n access = ['read'],\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://ctx.learncard.com/delegates/1.0.0.json',\n ],\n type: ['VerifiableCredential', 'DelegateCredential'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n credentialSubject: { id: subject },\n permissions: { statementAccess: access },\n }),\n};\n", "import { VC_TEMPLATES } from './templates';\n\nimport { VCTemplatePlugin } from './types';\n\n/**\n * @group Plugins\n */\nexport const getVCTemplatesPlugin = (): VCTemplatePlugin => {\n return {\n name: 'VC Templates',\n displayName: 'VC Templates',\n description: 'Allows for the easy creation of VCs and VPs based on predefined templates',\n methods: {\n newCredential: (_learnCard, args = { type: 'basic' }) => {\n const did = args.did || _learnCard.id.did();\n\n if (!did) throw new Error('Could not get issuer did!');\n\n const defaults = {\n did,\n subject: 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate: new Date().toISOString(),\n };\n\n const { type = 'basic', ...functionArgs } = args;\n\n if (!(type in VC_TEMPLATES)) throw new Error('Invalid Test VC Type!');\n\n return VC_TEMPLATES[type](\n { ...defaults, ...functionArgs },\n _learnCard.invoke.crypto()\n );\n },\n newPresentation: async (_learnCard, credential, args = {}) => {\n const did = args?.did || _learnCard.id.did();\n\n if (!did) throw new Error('Could not get issuer 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 },\n };\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["src_exports", "__export", "getVCTemplatesPlugin", "__toCommonJS", "VC_TEMPLATES", "did", "subject", "issuanceDate", "crypto", "name", "achievementName", "description", "criteriaNarrative", "expirationDate", "boostName", "boostImage", "achievementId", "achievementType", "achievementDescription", "achievementNarrative", "achievementImage", "attachments", "display", "familyTitles", "skills", "groupID", "evidence", "alignment", "source", "address", "boostID", "access", "getVCTemplatesPlugin", "__name", "_learnCard", "args", "did", "defaults", "type", "functionArgs", "VC_TEMPLATES", "credential"]
7
7
  }
@@ -103,7 +103,10 @@ var VC_TEMPLATES = {
103
103
  display,
104
104
  familyTitles,
105
105
  skills,
106
- groupID = ""
106
+ groupID = "",
107
+ evidence,
108
+ alignment,
109
+ source
107
110
  } = {}, crypto) => ({
108
111
  "@context": [
109
112
  "https://www.w3.org/ns/credentials/v2",
@@ -128,9 +131,12 @@ var VC_TEMPLATES = {
128
131
  image: achievementImage,
129
132
  criteria: {
130
133
  narrative: achievementNarrative
131
- }
132
- }
134
+ },
135
+ ...alignment && { alignment }
136
+ },
137
+ ...source && { source }
133
138
  },
139
+ ...Array.isArray(evidence) && evidence.length > 0 && { evidence },
134
140
  display,
135
141
  familyTitles,
136
142
  image: boostImage,
@@ -157,7 +163,10 @@ var VC_TEMPLATES = {
157
163
  display,
158
164
  familyTitles,
159
165
  boostID,
160
- groupID = ""
166
+ groupID = "",
167
+ evidence,
168
+ alignment,
169
+ source
161
170
  } = {}, crypto) => ({
162
171
  "@context": [
163
172
  "https://www.w3.org/ns/credentials/v2",
@@ -183,9 +192,12 @@ var VC_TEMPLATES = {
183
192
  image: achievementImage,
184
193
  criteria: {
185
194
  narrative: achievementNarrative
186
- }
187
- }
195
+ },
196
+ ...alignment && { alignment }
197
+ },
198
+ ...source && { source }
188
199
  },
200
+ ...Array.isArray(evidence) && evidence.length > 0 && { evidence },
189
201
  ...address ? {
190
202
  address: {
191
203
  type: ["Address"],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/templates.ts", "../src/vc-templates.ts"],
4
- "sourcesContent": ["import { UnsignedVC, UnsignedAchievementCredential } from '@learncard/types';\n\nimport { VcTemplates } from './types';\n\n/** @group VC Templates Plugin */\nexport const VC_TEMPLATES: {\n [Key in keyof VcTemplates]: (args: VcTemplates[Key], crypto: Crypto) => UnsignedVC;\n} = {\n basic: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ) => ({\n '@context': ['https://www.w3.org/ns/credentials/v2'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential'],\n issuer: did,\n validFrom: issuanceDate,\n credentialSubject: { id: subject },\n }),\n achievement: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n name = 'Teamwork Badge',\n achievementName = 'Teamwork',\n description = 'This badge recognizes the development of the capacity to collaborate within a group environment.',\n criteriaNarrative = 'Team members are nominated for this badge by their peers and recognized upon review by Example Corp management.',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ): UnsignedAchievementCredential => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n ],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential', 'OpenBadgeCredential'],\n issuer: { id: did },\n validFrom: issuanceDate,\n name,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n criteria: { narrative: criteriaNarrative },\n description,\n name: achievementName,\n },\n },\n }),\n jff2: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/2018/credentials/v1',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',\n 'https://w3id.org/security/suites/ed25519-2020/v1',\n ],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential', 'OpenBadgeCredential'],\n name: 'JFF x vc-edu PlugFest 2 Interoperability',\n issuer: {\n type: ['Profile'],\n id: did,\n name: 'Jobs for the Future (JFF)',\n image: {\n id: 'https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png',\n type: 'Image',\n },\n },\n issuanceDate: issuanceDate,\n credentialSubject: {\n type: ['AchievementSubject'],\n id: subject,\n achievement: {\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n name: 'JFF x vc-edu PlugFest 2 Interoperability',\n description:\n 'This credential solution supports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions. This was demonstrated successfully during JFF x vc-edu PlugFest 2.',\n criteria: {\n narrative:\n 'Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets. Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers.',\n },\n image: {\n id: 'https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png',\n type: 'Image',\n },\n },\n },\n }),\n boost: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n expirationDate,\n boostName = 'Example Boost',\n boostImage,\n achievementId,\n achievementType = 'Influencer',\n achievementName = 'Awesome Badge',\n achievementDescription = 'Awesome People Earn Awesome Badge',\n achievementNarrative = 'Earned by being awesome.',\n achievementImage = '',\n attachments,\n display,\n familyTitles,\n skills,\n groupID = '',\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n 'https://ctx.learncard.com/boosts/1.0.2.json',\n ],\n type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n ...(expirationDate && { validUntil: expirationDate }),\n name: boostName,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: achievementId ?? `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n achievementType: achievementType,\n name: achievementName,\n description: achievementDescription,\n image: achievementImage,\n criteria: {\n narrative: achievementNarrative,\n },\n },\n },\n display,\n familyTitles,\n image: boostImage,\n attachments,\n skills,\n groupID,\n }),\n boostID: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n expirationDate,\n boostName = 'Example Boost',\n boostImage,\n achievementId,\n achievementType = 'Influencer',\n achievementName = 'Awesome Badge',\n achievementDescription = 'Awesome People Earn Awesome Badge',\n achievementNarrative = 'Earned by being awesome.',\n achievementImage = '',\n address,\n attachments,\n skills,\n display,\n familyTitles,\n boostID,\n groupID = '',\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n 'https://ctx.learncard.com/boosts/1.0.1.json',\n 'https://ctx.learncard.com/boostIDs/1.0.0.json',\n ],\n type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential', 'BoostID'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n ...(expirationDate && { validUntil: expirationDate }),\n name: boostName,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: achievementId ?? `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n achievementType: achievementType,\n name: achievementName,\n description: achievementDescription,\n image: achievementImage,\n criteria: {\n narrative: achievementNarrative,\n },\n },\n },\n ...(address\n ? {\n address: {\n type: ['Address'],\n ...address,\n ...(address.geo ? { geo: { type: ['GeoCoordinates'], ...address.geo } } : {}),\n },\n }\n : {}),\n display,\n familyTitles,\n image: boostImage,\n attachments,\n skills,\n boostID,\n groupID,\n }),\n delegate: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = new Date().toISOString(),\n access = ['read'],\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://ctx.learncard.com/delegates/1.0.0.json',\n ],\n type: ['VerifiableCredential', 'DelegateCredential'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n credentialSubject: { id: subject },\n permissions: { statementAccess: access },\n }),\n};\n", "import { VC_TEMPLATES } from './templates';\n\nimport { VCTemplatePlugin } from './types';\n\n/**\n * @group Plugins\n */\nexport const getVCTemplatesPlugin = (): VCTemplatePlugin => {\n return {\n name: 'VC Templates',\n displayName: 'VC Templates',\n description: 'Allows for the easy creation of VCs and VPs based on predefined templates',\n methods: {\n newCredential: (_learnCard, args = { type: 'basic' }) => {\n const did = args.did || _learnCard.id.did();\n\n if (!did) throw new Error('Could not get issuer did!');\n\n const defaults = {\n did,\n subject: 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate: new Date().toISOString(),\n };\n\n const { type = 'basic', ...functionArgs } = args;\n\n if (!(type in VC_TEMPLATES)) throw new Error('Invalid Test VC Type!');\n\n return VC_TEMPLATES[type](\n { ...defaults, ...functionArgs },\n _learnCard.invoke.crypto()\n );\n },\n newPresentation: async (_learnCard, credential, args = {}) => {\n const did = args?.did || _learnCard.id.did();\n\n if (!did) throw new Error('Could not get issuer 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 },\n };\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { UnsignedVC, UnsignedAchievementCredential } from '@learncard/types';\n\nimport { VcTemplates } from './types';\n\n/** @group VC Templates Plugin */\nexport const VC_TEMPLATES: {\n [Key in keyof VcTemplates]: (args: VcTemplates[Key], crypto: Crypto) => UnsignedVC;\n} = {\n basic: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ) => ({\n '@context': ['https://www.w3.org/ns/credentials/v2'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential'],\n issuer: did,\n validFrom: issuanceDate,\n credentialSubject: { id: subject },\n }),\n achievement: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n name = 'Teamwork Badge',\n achievementName = 'Teamwork',\n description = 'This badge recognizes the development of the capacity to collaborate within a group environment.',\n criteriaNarrative = 'Team members are nominated for this badge by their peers and recognized upon review by Example Corp management.',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ): UnsignedAchievementCredential => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n ],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential', 'OpenBadgeCredential'],\n issuer: { id: did },\n validFrom: issuanceDate,\n name,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n criteria: { narrative: criteriaNarrative },\n description,\n name: achievementName,\n },\n },\n }),\n jff2: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/2018/credentials/v1',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context.json',\n 'https://w3id.org/security/suites/ed25519-2020/v1',\n ],\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['VerifiableCredential', 'OpenBadgeCredential'],\n name: 'JFF x vc-edu PlugFest 2 Interoperability',\n issuer: {\n type: ['Profile'],\n id: did,\n name: 'Jobs for the Future (JFF)',\n image: {\n id: 'https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png',\n type: 'Image',\n },\n },\n issuanceDate: issuanceDate,\n credentialSubject: {\n type: ['AchievementSubject'],\n id: subject,\n achievement: {\n id: `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n name: 'JFF x vc-edu PlugFest 2 Interoperability',\n description:\n 'This credential solution supports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions. This was demonstrated successfully during JFF x vc-edu PlugFest 2.',\n criteria: {\n narrative:\n 'Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets. Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers.',\n },\n image: {\n id: 'https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png',\n type: 'Image',\n },\n },\n },\n }),\n boost: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n expirationDate,\n boostName = 'Example Boost',\n boostImage,\n achievementId,\n achievementType = 'Influencer',\n achievementName = 'Awesome Badge',\n achievementDescription = 'Awesome People Earn Awesome Badge',\n achievementNarrative = 'Earned by being awesome.',\n achievementImage = '',\n attachments,\n display,\n familyTitles,\n skills,\n groupID = '',\n evidence,\n alignment,\n source,\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n 'https://ctx.learncard.com/boosts/1.0.2.json',\n ],\n type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n ...(expirationDate && { validUntil: expirationDate }),\n name: boostName,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: achievementId ?? `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n achievementType: achievementType,\n name: achievementName,\n description: achievementDescription,\n image: achievementImage,\n criteria: {\n narrative: achievementNarrative,\n },\n ...(alignment && { alignment }),\n },\n ...(source && { source }),\n },\n ...(Array.isArray(evidence) && evidence.length > 0 && { evidence }),\n display,\n familyTitles,\n image: boostImage,\n attachments,\n skills,\n groupID,\n }),\n boostID: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = '2020-08-19T21:41:50Z',\n expirationDate,\n boostName = 'Example Boost',\n boostImage,\n achievementId,\n achievementType = 'Influencer',\n achievementName = 'Awesome Badge',\n achievementDescription = 'Awesome People Earn Awesome Badge',\n achievementNarrative = 'Earned by being awesome.',\n achievementImage = '',\n address,\n attachments,\n skills,\n display,\n familyTitles,\n boostID,\n groupID = '',\n evidence,\n alignment,\n source,\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',\n 'https://ctx.learncard.com/boosts/1.0.1.json',\n 'https://ctx.learncard.com/boostIDs/1.0.0.json',\n ],\n type: ['VerifiableCredential', 'OpenBadgeCredential', 'BoostCredential', 'BoostID'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n ...(expirationDate && { validUntil: expirationDate }),\n name: boostName,\n credentialSubject: {\n id: subject,\n type: ['AchievementSubject'],\n achievement: {\n id: achievementId ?? `urn:uuid:${crypto.randomUUID()}`,\n type: ['Achievement'],\n achievementType: achievementType,\n name: achievementName,\n description: achievementDescription,\n image: achievementImage,\n criteria: {\n narrative: achievementNarrative,\n },\n ...(alignment && { alignment }),\n },\n ...(source && { source }),\n },\n ...(Array.isArray(evidence) && evidence.length > 0 && { evidence }),\n ...(address\n ? {\n address: {\n type: ['Address'],\n ...address,\n ...(address.geo ? { geo: { type: ['GeoCoordinates'], ...address.geo } } : {}),\n },\n }\n : {}),\n display,\n familyTitles,\n image: boostImage,\n attachments,\n skills,\n boostID,\n groupID,\n }),\n delegate: (\n {\n did = 'did:example:d23dd687a7dc6787646f2eb98d0',\n subject = 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate = new Date().toISOString(),\n access = ['read'],\n } = {},\n crypto\n ) => ({\n '@context': [\n 'https://www.w3.org/ns/credentials/v2',\n 'https://ctx.learncard.com/delegates/1.0.0.json',\n ],\n type: ['VerifiableCredential', 'DelegateCredential'],\n id: `urn:uuid:${crypto.randomUUID()}`,\n issuer: { id: did },\n validFrom: issuanceDate,\n credentialSubject: { id: subject },\n permissions: { statementAccess: access },\n }),\n};\n", "import { VC_TEMPLATES } from './templates';\n\nimport { VCTemplatePlugin } from './types';\n\n/**\n * @group Plugins\n */\nexport const getVCTemplatesPlugin = (): VCTemplatePlugin => {\n return {\n name: 'VC Templates',\n displayName: 'VC Templates',\n description: 'Allows for the easy creation of VCs and VPs based on predefined templates',\n methods: {\n newCredential: (_learnCard, args = { type: 'basic' }) => {\n const did = args.did || _learnCard.id.did();\n\n if (!did) throw new Error('Could not get issuer did!');\n\n const defaults = {\n did,\n subject: 'did:example:d23dd687a7dc6787646f2eb98d0',\n issuanceDate: new Date().toISOString(),\n };\n\n const { type = 'basic', ...functionArgs } = args;\n\n if (!(type in VC_TEMPLATES)) throw new Error('Invalid Test VC Type!');\n\n return VC_TEMPLATES[type](\n { ...defaults, ...functionArgs },\n _learnCard.invoke.crypto()\n );\n },\n newPresentation: async (_learnCard, credential, args = {}) => {\n const did = args?.did || _learnCard.id.did();\n\n if (!did) throw new Error('Could not get issuer 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 },\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-templates-plugin",
3
- "version": "1.0.67",
3
+ "version": "1.0.68",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/vc-templates-plugin.esm.js",