From bc9d729ee97ef2ba0f5b311597e960c5bc6e78af Mon Sep 17 00:00:00 2001 From: Gerardo Paredes Date: Thu, 2 Oct 2025 14:46:36 -0700 Subject: [PATCH 1/5] update boost templates, support evidence, alignment, source --- .../plugins/vc-templates/src/templates.ts | 12 +++++ packages/plugins/vc-templates/src/types.ts | 46 +++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/packages/plugins/vc-templates/src/templates.ts b/packages/plugins/vc-templates/src/templates.ts index ecf6e36e7..f433f9c79 100644 --- a/packages/plugins/vc-templates/src/templates.ts +++ b/packages/plugins/vc-templates/src/templates.ts @@ -119,6 +119,9 @@ export const VC_TEMPLATES: { familyTitles, skills, groupID = '', + evidence, + alignment, + source, } = {}, crypto ) => ({ @@ -146,8 +149,11 @@ export const VC_TEMPLATES: { criteria: { narrative: achievementNarrative, }, + ...(alignment && { alignment }), + ...(source && { source }), }, }, + ...(Array.isArray(evidence) && evidence.length > 0 && { evidence }), display, familyTitles, image: boostImage, @@ -176,6 +182,9 @@ export const VC_TEMPLATES: { familyTitles, boostID, groupID = '', + evidence, + alignment, + source, } = {}, crypto ) => ({ @@ -204,8 +213,11 @@ export const VC_TEMPLATES: { criteria: { narrative: achievementNarrative, }, + ...(alignment && { alignment }), + ...(source && { source }), }, }, + ...(Array.isArray(evidence) && evidence.length > 0 && { evidence }), ...(address ? { address: { diff --git a/packages/plugins/vc-templates/src/types.ts b/packages/plugins/vc-templates/src/types.ts index 1f4b1f5c1..1512645d8 100644 --- a/packages/plugins/vc-templates/src/types.ts +++ b/packages/plugins/vc-templates/src/types.ts @@ -80,6 +80,49 @@ export type AddressSpec = { longitude?: number | undefined; }; }; + +export type Source = { + type: string[]; + id?: string; + name?: string; + description?: string; + url?: string; + image?: string; + address?: { + type?: string[]; + addressLocality?: string; + addressRegion?: string; + addressCountry?: string; + }; + otherIdentifier?: { + type?: string[]; + identifier?: string; + identifierType?: string; + }[]; + parentOrg?: { + type?: string[]; + name?: string; + url?: string; + }; +}; + +export type Alignment = { + type: string[]; + targetName?: string; // https://purl.imsglobal.org/spec/vc/ob/vocab.html#targetName + targetType?: string; // https://purl.imsglobal.org/spec/vc/ob/vocab.html#targetType + targetFramework?: string; // https://purl.imsglobal.org/spec/vc/ob/vocab.html#targetFramework +}; + +export interface Evidence { + id?: string; + type: [string, ...string[]]; // Changed from string[] to ensure at least one element + name?: string; + narrative?: string; + description?: string; + genre?: string; + audience?: string; +} + export type BoostTemplate = { did?: string; subject?: string; @@ -101,6 +144,9 @@ export type BoostTemplate = { boostID?: BoostID; address?: AddressSpec; groupID?: string; + evidence?: Evidence[]; + alignment?: Alignment; + source?: Source; }; /** @group VC Templates Plugin */ From 82538bc1d101b2ad58642eb91f26e4e160514381 Mon Sep 17 00:00:00 2001 From: Gerardo Paredes Date: Thu, 2 Oct 2025 17:14:56 -0700 Subject: [PATCH 2/5] fix source placemen --- packages/plugins/vc-templates/src/templates.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/plugins/vc-templates/src/templates.ts b/packages/plugins/vc-templates/src/templates.ts index f433f9c79..2b25da6e1 100644 --- a/packages/plugins/vc-templates/src/templates.ts +++ b/packages/plugins/vc-templates/src/templates.ts @@ -150,8 +150,8 @@ export const VC_TEMPLATES: { narrative: achievementNarrative, }, ...(alignment && { alignment }), - ...(source && { source }), }, + ...(source && { source }), }, ...(Array.isArray(evidence) && evidence.length > 0 && { evidence }), display, @@ -214,8 +214,8 @@ export const VC_TEMPLATES: { narrative: achievementNarrative, }, ...(alignment && { alignment }), - ...(source && { source }), }, + ...(source && { source }), }, ...(Array.isArray(evidence) && evidence.length > 0 && { evidence }), ...(address From 6da1b7aa1e2431ab518b3558c8cc915b207dd494 Mon Sep 17 00:00:00 2001 From: Gerardo Paredes Date: Thu, 2 Oct 2025 17:34:35 -0700 Subject: [PATCH 3/5] clean up types --- packages/plugins/vc-templates/src/types.ts | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/packages/plugins/vc-templates/src/types.ts b/packages/plugins/vc-templates/src/types.ts index 1512645d8..11b9bc1b5 100644 --- a/packages/plugins/vc-templates/src/types.ts +++ b/packages/plugins/vc-templates/src/types.ts @@ -94,16 +94,6 @@ export type Source = { addressRegion?: string; addressCountry?: string; }; - otherIdentifier?: { - type?: string[]; - identifier?: string; - identifierType?: string; - }[]; - parentOrg?: { - type?: string[]; - name?: string; - url?: string; - }; }; export type Alignment = { From 8441cccf7a3f76bae4e18a6e0becede087a186a3 Mon Sep 17 00:00:00 2001 From: Gerardo Paredes <40479121+gerardopar@users.noreply.github.com> Date: Thu, 2 Oct 2025 17:57:02 -0700 Subject: [PATCH 4/5] Create wet-rice-tie.md --- .changeset/wet-rice-tie.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/wet-rice-tie.md diff --git a/.changeset/wet-rice-tie.md b/.changeset/wet-rice-tie.md new file mode 100644 index 000000000..d1b18310e --- /dev/null +++ b/.changeset/wet-rice-tie.md @@ -0,0 +1,5 @@ +--- +"@learncard/vc-templates-plugin": patch +--- + +[LC-1350] - Add OBv3 Support to Boost Templates: evidence, alignment, source From 74de3423e6e75499eb2312a703a36ad2d3b69b3e Mon Sep 17 00:00:00 2001 From: Gerardo Paredes <40479121+gerardopar@users.noreply.github.com> Date: Fri, 3 Oct 2025 09:38:04 -0700 Subject: [PATCH 5/5] Update packages/plugins/vc-templates/src/types.ts Co-authored-by: gitstream-cm[bot] <111687743+gitstream-cm[bot]@users.noreply.github.com> --- packages/plugins/vc-templates/src/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/plugins/vc-templates/src/types.ts b/packages/plugins/vc-templates/src/types.ts index 11b9bc1b5..dbdda4263 100644 --- a/packages/plugins/vc-templates/src/types.ts +++ b/packages/plugins/vc-templates/src/types.ts @@ -135,7 +135,7 @@ export type BoostTemplate = { address?: AddressSpec; groupID?: string; evidence?: Evidence[]; - alignment?: Alignment; + alignment?: Alignment[]; source?: Source; };