{"_id":"@creofam/veritas-qr","_rev":"2-0236f39c20ab4ac6b77bebec16bc7462","name":"@creofam/veritas-qr","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@creofam/veritas-qr","version":"0.1.0","keywords":["cbe","ethiopia","emv","emvco","payment","qr","sdk","typescript"],"author":{"name":"Leul Zenebe"},"license":"MIT","_id":"@creofam/veritas-qr@0.1.0","maintainers":[{"name":"creofam","email":"me@leulzenebe.pro"}],"dist":{"shasum":"d95e1005e23d4841d19e5896994008c9d7e2ac04","tarball":"https://registry.npmjs.org/@creofam/veritas-qr/-/veritas-qr-0.1.0.tgz","fileCount":8,"integrity":"sha512-B/md5hWvPI8jgFaiesQuE5f8KNWszsZKOMHExJhVdKW87XtG4lOMBdl712iydUzH2UgCe39eLQ7W44ZMcQ8Znw==","signatures":[{"sig":"MEQCIGWvEzwt07AA3x69pEFW6VAUrO5Zg1UcIi3e7Sjtz2KwAiBvhSLMSl8FzoRBGe1YEK28F+U/SivbDQ60aSha1cQS/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61295},"main":"./dist/index.cjs","type":"module","_from":"file:creofam-veritas-qr-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup","clean":"rimraf dist","test:run":"vitest run"},"_npmUser":{"name":"creofam","email":"me@leulzenebe.pro"},"_resolved":"C:\\Users\\leulz\\AppData\\Local\\Temp\\650a88d96984ca5ea6e9a58c822cdccd\\creofam-veritas-qr-0.1.0.tgz","_integrity":"sha512-B/md5hWvPI8jgFaiesQuE5f8KNWszsZKOMHExJhVdKW87XtG4lOMBdl712iydUzH2UgCe39eLQ7W44ZMcQ8Znw==","_npmVersion":"11.2.0","description":"Strict TypeScript SDK for generating CBE-compatible payment QR payloads and QR code images.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"qrcode":"^1.5.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","rimraf":"^6.0.1","vitest":"^4.1.8","typescript":"^5.8.3","@types/node":"^24.0.1","@types/qrcode":"^1.5.5"},"_npmOperationalInternal":{"tmp":"tmp/veritas-qr_0.1.0_1780757387774_0.5554291923814105","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@creofam/veritas-qr","version":"0.1.1","description":"Strict TypeScript SDK for generating CBE-compatible payment QR payloads and QR code images.","keywords":["cbe","ethiopia","emv","emvco","payment","qr","sdk","typescript"],"license":"MIT","author":{"name":"Leul Zenebe"},"sideEffects":false,"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"engines":{"node":">=18"},"publishConfig":{"access":"public"},"dependencies":{"qrcode":"^1.5.4"},"devDependencies":{"@types/node":"^24.0.1","@types/qrcode":"^1.5.5","rimraf":"^6.0.1","tsup":"^8.5.0","typescript":"^5.8.3","vitest":"^4.1.8"},"scripts":{"build":"tsup","clean":"rimraf dist","dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","test:run":"vitest run"},"_id":"@creofam/veritas-qr@0.1.1","_integrity":"sha512-SubO7NKVT90oPVuuDVtBMbXDJd79kkb6KqSxGu5nayWTWvFjaHoMHihktETwzs75dE5fwHweKD2GAn6YUutOkg==","_resolved":"C:\\Users\\leulz\\AppData\\Local\\Temp\\34d75bff1e402611d1b564e7f01af0ee\\creofam-veritas-qr-0.1.1.tgz","_from":"file:creofam-veritas-qr-0.1.1.tgz","_nodeVersion":"22.14.0","_npmVersion":"11.2.0","dist":{"integrity":"sha512-SubO7NKVT90oPVuuDVtBMbXDJd79kkb6KqSxGu5nayWTWvFjaHoMHihktETwzs75dE5fwHweKD2GAn6YUutOkg==","shasum":"da891a5f4f3b8902fe5c8ae1b78e5bc895e9f5d1","tarball":"https://registry.npmjs.org/@creofam/veritas-qr/-/veritas-qr-0.1.1.tgz","fileCount":8,"unpackedSize":61215,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQChCmBAZuXhxhe5Z1QDvINUJj0UdWPRreFWWSUT63XlugIhAOsJWB742Jb2y37GNxAkewGuRlgojwsEJH5muk/Cr2nu"}]},"_npmUser":{"name":"creofam","email":"me@leulzenebe.pro"},"directories":{},"maintainers":[{"name":"creofam","email":"me@leulzenebe.pro"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/veritas-qr_0.1.1_1780953036614_0.30308993723494604"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-06T14:49:47.632Z","modified":"2026-06-08T21:10:36.854Z","0.1.0":"2026-06-06T14:49:47.919Z","0.1.1":"2026-06-08T21:10:36.757Z"},"author":{"name":"Leul Zenebe"},"license":"MIT","keywords":["cbe","ethiopia","emv","emvco","payment","qr","sdk","typescript"],"description":"Strict TypeScript SDK for generating CBE-compatible payment QR payloads and QR code images.","maintainers":[{"name":"creofam","email":"me@leulzenebe.pro"}],"readme":"# veritas-qr\n\nTypeScript SDK for generating CBE-compatible EMV payment QR payloads and QR code images, providing a simple way to request CBE payments programmatically with QR codes.\n\n## Install\n\n```bash\npnpm add veritas-qr\n```\n\n## Overview\n\n- Generates CBE-compatible EMV payloads locally in your app.\n- Can render QR codes as SVG strings or data URLs.\n- `city` is optional and defaults to `Addis Ababa`.\n\n## Basic Usage\n\n```ts\nimport { buildCbePayload, createCbeQrSvg } from \"veritas-qr\";\n\nconst payload = buildCbePayload({\n  name: \"Veritas Cafe\",\n  account: \"1000123456789\",\n  amount: \"150.50\",\n  additionalData: {\n    purpose: \"Invoice 42\",\n  },\n});\n\nconst svg = await createCbeQrSvg({\n  name: \"Veritas Cafe\",\n  account: \"1000123456789\",\n  amount: \"150.50\",\n  additionalData: {\n    purpose: \"Invoice 42\",\n  },\n});\n```\n\n## Next.js Example\n\nThis is the recommended way to show the QR code in a Next.js app: generate the SVG in a server component and render it directly in the UI.\n\n```tsx\nimport { createCbeQrSvg } from \"veritas-qr\";\n\nexport default async function PaymentPage() {\n  const qrSvg = await createCbeQrSvg(\n    {\n      name: \"Veritas Cafe\",\n      account: \"1000123456789\",\n      amount: \"150.50\",\n      additionalData: {\n        purpose: \"Invoice 42\",\n      },\n    },\n    {\n      width: 280,\n    },\n  );\n\n  return (\n    <main style={{ padding: 24 }}>\n      <h1>Pay with CBE</h1>\n      <div\n        style={{ width: 280, height: 280 }}\n        dangerouslySetInnerHTML={{ __html: qrSvg }}\n      />\n    </main>\n  );\n}\n```\n\n## Notes\n\n- Use `amount` to generate a dynamic payment QR.\n- Use `additionalData.purpose` to include a payment reason.\n- Use `buildCbePayload(...)` when you want the raw EMV payload string.\n- Use `createCbeQrSvg(...)` or `createCbeQrDataUrl(...)` when you want something ready to render in the UI.\n","readmeFilename":"README.md"}