From 01e2ff8782e82a1cfb7b2cd8872ee8b9014b1930 Mon Sep 17 00:00:00 2001 From: Parth Bhatt Date: Tue, 30 Sep 2025 11:08:41 -0700 Subject: [PATCH 1/5] Remove special characters from SVG to make it work with wallet UI display --- credentials/fema-ics-100/build.js | 18 ++++++++++++++++++ credentials/fema-ics-100/credential.json | 24 ++++++++++++++++-------- 2 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 credentials/fema-ics-100/build.js diff --git a/credentials/fema-ics-100/build.js b/credentials/fema-ics-100/build.js new file mode 100644 index 0000000..857dd20 --- /dev/null +++ b/credentials/fema-ics-100/build.js @@ -0,0 +1,18 @@ +import fs from 'fs'; +import path from 'path'; + +const svgPath = path.join(import.meta.dirname, 'image.svg'); +const jsonPath = path.join(import.meta.dirname, 'credential.json'); + +const svgContent = fs.readFileSync(svgPath, 'utf8'); +// put SVG on a single line and remove excess whitespace +const minifiedSvg = svgContent + .replace(/\r?\n|\r/g, ' ') + .replace(/\s{2,}/g, ' ') + .replace(/>\s+<') + .trim(); + +// add the SVG as the `template` value of the first `renderMethod` property +const json = JSON.parse(fs.readFileSync(jsonPath, 'utf8')); +json.renderMethod[0].template = minifiedSvg; +fs.writeFileSync(jsonPath, JSON.stringify(json, null, 2)); diff --git a/credentials/fema-ics-100/credential.json b/credentials/fema-ics-100/credential.json index 2048d5e..2ce7cc1 100644 --- a/credentials/fema-ics-100/credential.json +++ b/credentials/fema-ics-100/credential.json @@ -10,17 +10,23 @@ ], "name": "FEMA IS-100.C: ICS Foundation Certified", "issuer": { - "type": ["Profile"], + "type": [ + "Profile" + ], "id": "did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn", "name": "ICS Training Group" }, "validFrom": "2024-01-01T00:00:00Z", "validUntil": "2026-02-01T00:00:00Z", "credentialSubject": { - "type": ["AchievementSubject"], + "type": [ + "AchievementSubject" + ], "achievement": { "id": "urn:uuid:ac254bd5-8fad-4bb1-9d29-dfe049647037", - "type": ["Achievement"], + "type": [ + "Achievement" + ], "achievementType": "Certification", "name": "FEMA IS-100.C: ICS Foundation Certified", "description": "Recognizes knowledge of the Incident Command System (ICS). Holders can explain the principles and basic structure of the Incident Command System and the functional and staff roles within the ICS.", @@ -28,12 +34,14 @@ "narrative": "Awarded upon completion of the [Introduction to the Incident Command System (ICS-100.c)](https://training.fema.gov/is/courseoverview.aspx?code=IS-100.c&lang=en) online course.\n\nICS 100, Introduction to the Incident Command System, introduces the Incident Command System (ICS) and provides the foundation for higher level ICS training. This course describes the history, features and principles, and organizational structure of the Incident Command System. It also explains the relationship between ICS and the National Incident Management System (NIMS).\n\nThis course takes approximately 2 hours to complete, self-paced, online." }, "image": { - "id":"https://examples.vcplayground.org/credentials/fema-ics-100/image.png", + "id": "https://examples.vcplayground.org/credentials/fema-ics-100/image.png", "type": "Image" }, "alignment": [ { - "type": ["Alignment"], + "type": [ + "Alignment" + ], "targetName": "IS-100.C: Introduction to the Incident Command System, ICS 100", "targetDescription": "ICS 100, Introduction to the Incident Command System, introduces the Incident Command System (ICS) and provides the foundation for higher level ICS training", "targetFramework": "NIMS Training Program", @@ -45,11 +53,11 @@ }, "renderMethod": [ { - "name": "Badge", - "mediaQuery": "@media (min-width: 1px)", + "name": "FEMA Certification", + "mediaQuery": "@media (orientation: portrait)", "type": "SvgRenderingTemplate2024", "mediaType": "image/svg+xml", - "template": "FEMA IS-100.CICS FoundationCERTIFIEDRecognizes knowledge of the Incident Command System (ICS).Holders can explain the principles and basic structureof ICS and functional staff roles within the system.0.2 CEUs • 2 Hours • Self-Paced OnlineNIMS Training ProgramFEMA Emergency Management InstituteValid: 2024-01-01 to 2026-02-01" + "template": "FEMA IS-100.CICS FoundationCERTIFIED
{{credentialSubject.achievement.description}}
0.2 CEUs | 2 Hours | Self-Paced OnlineNIMS Training ProgramFEMA Emergency Management InstituteValid: {{#formatDate}}{{validFrom}}{{/formatDate}} to {{#formatDate}}{{validUntil}}{{/formatDate}}
" } ] } From e3861b3152d588587f9d873ccf08b0fc62630bd5 Mon Sep 17 00:00:00 2001 From: Parth Bhatt Date: Tue, 30 Sep 2025 12:28:19 -0700 Subject: [PATCH 2/5] Add SVG template and Update image.svg --- .../fema-ics-100/fema_template_version.svg | 106 ++++++++++++++++++ credentials/fema-ics-100/image.svg | 35 ++---- 2 files changed, 114 insertions(+), 27 deletions(-) create mode 100644 credentials/fema-ics-100/fema_template_version.svg diff --git a/credentials/fema-ics-100/fema_template_version.svg b/credentials/fema-ics-100/fema_template_version.svg new file mode 100644 index 0000000..038d391 --- /dev/null +++ b/credentials/fema-ics-100/fema_template_version.svg @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + FEMA IS-100.C + + + + ICS Foundation + + + + CERTIFIED + + + +
+ {{credentialSubject.achievement.description}} +
+
+ + + 0.2 CEUs | 2 Hours | Self-Paced Online + + + + NIMS Training Program + + + + FEMA Emergency Management Institute + + + + + + + Valid: {{#formatDate}}{{validFrom}}{{/formatDate}} to {{#formatDate}}{{validUntil}}{{/formatDate}} + + + +
+ +
\ No newline at end of file diff --git a/credentials/fema-ics-100/image.svg b/credentials/fema-ics-100/image.svg index 2b2817b..14c5371 100644 --- a/credentials/fema-ics-100/image.svg +++ b/credentials/fema-ics-100/image.svg @@ -1,36 +1,28 @@ - - - - - - - - - - - - - Recognizes knowledge of the Incident Command System (ICS). - Holders can explain the principles and basic structure - of ICS and functional staff roles within the system. - + +
+ Recognizes knowledge of the Incident Command System (ICS). Holders can explain the principles and basic structure of the Incident Command System and the functional and staff roles within the ICS. +
+
- - 0.2 CEUs • 2 Hours • Self-Paced Online + 0.2 CEUs | 2 Hours | Self-Paced Online - - - Date: Tue, 30 Sep 2025 13:02:09 -0700 Subject: [PATCH 3/5] fix lint issues, rename template to image.svg, delete old file --- credentials/fema-ics-100/credential.json | 18 +-- .../fema-ics-100/fema_template_version.svg | 106 ------------------ credentials/fema-ics-100/image.svg | 4 +- 3 files changed, 7 insertions(+), 121 deletions(-) delete mode 100644 credentials/fema-ics-100/fema_template_version.svg diff --git a/credentials/fema-ics-100/credential.json b/credentials/fema-ics-100/credential.json index 2ce7cc1..9e8a851 100644 --- a/credentials/fema-ics-100/credential.json +++ b/credentials/fema-ics-100/credential.json @@ -10,23 +10,17 @@ ], "name": "FEMA IS-100.C: ICS Foundation Certified", "issuer": { - "type": [ - "Profile" - ], + "type": ["Profile"], "id": "did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn", "name": "ICS Training Group" }, "validFrom": "2024-01-01T00:00:00Z", "validUntil": "2026-02-01T00:00:00Z", "credentialSubject": { - "type": [ - "AchievementSubject" - ], + "type": ["AchievementSubject"], "achievement": { "id": "urn:uuid:ac254bd5-8fad-4bb1-9d29-dfe049647037", - "type": [ - "Achievement" - ], + "type": ["Achievement"], "achievementType": "Certification", "name": "FEMA IS-100.C: ICS Foundation Certified", "description": "Recognizes knowledge of the Incident Command System (ICS). Holders can explain the principles and basic structure of the Incident Command System and the functional and staff roles within the ICS.", @@ -39,9 +33,7 @@ }, "alignment": [ { - "type": [ - "Alignment" - ], + "type": ["Alignment"], "targetName": "IS-100.C: Introduction to the Incident Command System, ICS 100", "targetDescription": "ICS 100, Introduction to the Incident Command System, introduces the Incident Command System (ICS) and provides the foundation for higher level ICS training", "targetFramework": "NIMS Training Program", @@ -57,7 +49,7 @@ "mediaQuery": "@media (orientation: portrait)", "type": "SvgRenderingTemplate2024", "mediaType": "image/svg+xml", - "template": "FEMA IS-100.CICS FoundationCERTIFIED
{{credentialSubject.achievement.description}}
0.2 CEUs | 2 Hours | Self-Paced OnlineNIMS Training ProgramFEMA Emergency Management InstituteValid: {{#formatDate}}{{validFrom}}{{/formatDate}} to {{#formatDate}}{{validUntil}}{{/formatDate}}
" + "template": " FEMA IS-100.C ICS Foundation CERTIFIED
{{credentialSubject.achievement.description}}
0.2 CEUs | 2 Hours | Self-Paced Online NIMS Training Program FEMA Emergency Management Institute Valid: {{#formatDate}}{{validFrom}}{{/formatDate}} to {{#formatDate}}{{validUntil}}{{/formatDate}}
" } ] } diff --git a/credentials/fema-ics-100/fema_template_version.svg b/credentials/fema-ics-100/fema_template_version.svg deleted file mode 100644 index 038d391..0000000 --- a/credentials/fema-ics-100/fema_template_version.svg +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - - - - - - - FEMA IS-100.C - - - - ICS Foundation - - - - CERTIFIED - - - -
- {{credentialSubject.achievement.description}} -
-
- - - 0.2 CEUs | 2 Hours | Self-Paced Online - - - - NIMS Training Program - - - - FEMA Emergency Management Institute - - - - - - - Valid: {{#formatDate}}{{validFrom}}{{/formatDate}} to {{#formatDate}}{{validUntil}}{{/formatDate}} - - - -
- -
\ No newline at end of file diff --git a/credentials/fema-ics-100/image.svg b/credentials/fema-ics-100/image.svg index 14c5371..038d391 100644 --- a/credentials/fema-ics-100/image.svg +++ b/credentials/fema-ics-100/image.svg @@ -53,7 +53,7 @@
- Recognizes knowledge of the Incident Command System (ICS). Holders can explain the principles and basic structure of the Incident Command System and the functional and staff roles within the ICS. + {{credentialSubject.achievement.description}}
@@ -97,7 +97,7 @@ font-family="Arial, sans-serif" font-size="8" font-weight="500"> - Valid: 2024-01-01 to 2026-02-01 + Valid: {{#formatDate}}{{validFrom}}{{/formatDate}} to {{#formatDate}}{{validUntil}}{{/formatDate}}
From a26df323829075a7bfc32a8adedc035cc08168d0 Mon Sep 17 00:00:00 2001 From: Parth Bhatt Date: Tue, 30 Sep 2025 17:08:13 -0700 Subject: [PATCH 4/5] Correct queries.json to pull from wallet --- credentials/fema-ics-100/queries.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/credentials/fema-ics-100/queries.json b/credentials/fema-ics-100/queries.json index 7c9fc75..96ba94c 100644 --- a/credentials/fema-ics-100/queries.json +++ b/credentials/fema-ics-100/queries.json @@ -10,7 +10,14 @@ "https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json", "https://w3id.org/vc/render-method/v2rc1" ], - "type": ["OpenBadgeCredential"] + "type": ["VerifiableCredential", "OpenBadgeCredential"], + "credentialSubject": { + "type": ["AchievementSubject"], + "achievement": { + "id": "urn:uuid:ac254bd5-8fad-4bb1-9d29-dfe049647037", + "type": ["Achievement"] + } + } }, "acceptedCryptosuites": [ "eddsa-rdfc-2022", From 8fa16a6276bcab2669ddb55cba7ee41544171a40 Mon Sep 17 00:00:00 2001 From: Parth Bhatt Date: Tue, 30 Sep 2025 18:06:24 -0700 Subject: [PATCH 5/5] Update image icon --- credentials/fema-ics-100/image.png | Bin 15649 -> 17263 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/credentials/fema-ics-100/image.png b/credentials/fema-ics-100/image.png index 7450c1a36b5a86c320c9b2d1d6cc5d2c8017e9af..86dc61599bef35472b609b9f83a425f686ae8a9f 100644 GIT binary patch literal 17263 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 MR5an0O4iT*2SOyJ*Z=?k literal 15649 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 I>iGPB0R~vuasU7T