From ccffa5134761eb48e4a0d97deeca60b7fdf517e2 Mon Sep 17 00:00:00 2001 From: Sreenadh S <32409698+sree96@users.noreply.github.com> Date: Thu, 5 Sep 2024 14:33:34 +0530 Subject: [PATCH] Use pixelpass to generate QR code Signed-off-by: Sreenadh S <32409698+sree96@users.noreply.github.com> --- services/credentials-service/package.json | 2 +- .../utils/rendering.utils.service.ts | 14 ++--- services/credentials-service/yarn.lock | 51 ++++++++----------- 3 files changed, 26 insertions(+), 41 deletions(-) diff --git a/services/credentials-service/package.json b/services/credentials-service/package.json index 8b44e44a4..df14b3411 100644 --- a/services/credentials-service/package.json +++ b/services/credentials-service/package.json @@ -30,6 +30,7 @@ "@digitalbazaar/vc": "^6.3.0", "@fastify/static": "^7.0.4", "@fastify/view": "^9.1.0", + "@mosip/pixelpass": "^0.2.1", "@nestjs/axios": "^3.0.2", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", @@ -51,7 +52,6 @@ "jsonld": "^8.3.2", "jsonld-signatures": "7.0.0", "jsonwebtoken": "^8.5.1", - "jszip": "^3.10.1", "prisma": "4.8.1", "qrcode": "^1.5.3", "reflect-metadata": "^0.1.13", diff --git a/services/credentials-service/src/credentials/utils/rendering.utils.service.ts b/services/credentials-service/src/credentials/utils/rendering.utils.service.ts index 296487d0b..2defedc7c 100644 --- a/services/credentials-service/src/credentials/utils/rendering.utils.service.ts +++ b/services/credentials-service/src/credentials/utils/rendering.utils.service.ts @@ -8,7 +8,7 @@ import { JwtCredentialSubject } from 'src/app.interface'; import * as wkhtmltopdf from 'wkhtmltopdf'; import { compile } from 'handlebars'; import * as QRCode from 'qrcode'; -import JSZip from 'jszip'; +import {generateQRCode } from '@mosip/pixelpass'; @Injectable() export class RenderingUtilsService { @@ -21,17 +21,9 @@ export class RenderingUtilsService { } let qrData = `${process.env.CREDENTIAL_SERVICE_BASE_URL}/credentials/${cred.id}/verify`; if(process?.env?.QR_TYPE === "W3C_VC") { - const zip = new JSZip(); - zip.file("certificate.json", JSON.stringify(cred), { - compression: "DEFLATE" - }); - qrData = await zip.generateAsync({type: 'string', compression: "DEFLATE"}) - .then(function (content) { - return content; - }); - return QRCode.toDataURL(qrData, {scale: 3}); + return generateQRCode(JSON.stringify(cred)); } - return QRCode.toDataURL(qrData); + return generateQRCode(qrData); } catch (err) { console.log(err); this.logger.error('Error rendering QR: ', err); diff --git a/services/credentials-service/yarn.lock b/services/credentials-service/yarn.lock index b7606402f..2a2d0eaf6 100644 --- a/services/credentials-service/yarn.lock +++ b/services/credentials-service/yarn.lock @@ -885,6 +885,16 @@ resolved "https://registry.yarnpkg.com/@lukeed/ms/-/ms-2.0.2.tgz#07f09e59a74c52f4d88c6db5c1054e819538e2a8" integrity sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA== +"@mosip/pixelpass@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@mosip/pixelpass/-/pixelpass-0.2.1.tgz#6919909bef10fc39d0cc77c6af89af7b1fce2ad5" + integrity sha512-phAQJtGuZLIdrTSicg9KBZe2ciKcdPn8ic50knTwO5qg3K4IKgn0PeJNWphJV/lCSSxN9G7UVfWSjtulSBPqNw== + dependencies: + base45-web "^1.0.2" + cbor-web "^9.0.2" + pako "^2.1.0" + qrcode "^1.5.3" + "@multiformats/base-x@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@multiformats/base-x/-/base-x-4.0.1.tgz#95ff0fa58711789d53aefb2590a8b7a4e715d121" @@ -1947,6 +1957,11 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" +base45-web@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/base45-web/-/base45-web-1.0.2.tgz#890c11271656f83d005755b7dbb133334113a741" + integrity sha512-9GS/w7MkVbXIKWzG9FjIoSJP/kfxcbvkKEL8gemZxNB21MOyBypSCL7qqFFQSEi699E6bdUA6kPPXFu5THLAPg== + base58-universal@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/base58-universal/-/base58-universal-2.0.0.tgz#243c8256591afa7d5210f87ad1655e05081f4be4" @@ -2184,6 +2199,11 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== +cbor-web@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/cbor-web/-/cbor-web-9.0.2.tgz#1915f1ef1a72ea905db07480f71cf12ff601c661" + integrity sha512-N6gU2GsJS8RR5gy1d9wQcSPgn9FGJFY7KNvdDRlwHfz6kCxrQr2TDnrjXHmr6TFSl6Fd0FC4zRnityEldjRGvQ== + chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -3810,11 +3830,6 @@ ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== - import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -4697,16 +4712,6 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -jszip@^3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" - integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== - dependencies: - lie "~3.3.0" - pako "~1.0.2" - readable-stream "~2.3.6" - setimmediate "^1.0.5" - jwa@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" @@ -4762,13 +4767,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -lie@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" - integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== - dependencies: - immediate "~3.0.5" - light-my-request@5.9.1: version "5.9.1" resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.9.1.tgz#076f8d4cc4639408cc48381d4f2860212d469d4b" @@ -5328,16 +5326,11 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@^2.0.4: +pako@^2.0.4, pako@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== -pako@~1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -5673,7 +5666,7 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -readable-stream@^2.2.2, readable-stream@~2.3.6: +readable-stream@^2.2.2: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==