UNPKG

@pix.js/qrcode

Version:

A set of utilities for working with Pix QRCode

101 lines (98 loc) 3.76 kB
// src/dynamic.ts import { PixQrCodeType, PointOfInitiationMethod, dynamicPixSchema, toDynamicPix } from "@pix.js/core"; import { toDataURL } from "qrcode"; var createDynamic = (params) => { const payloadWithDefaultValues = { merchantAccountInfo: { gui: params.merchantAccountInfo.gui ?? "br.gov.bcb.pix", url: params.merchantAccountInfo.url, merchantAdditionalInfo: params.merchantAccountInfo.merchantAdditionalInfo, fss: params.merchantAccountInfo.fss }, pointOfInitiationMethod: params.pointOfInitiationMethod ?? PointOfInitiationMethod.OnTimeOnly, merchantCategoryCode: params.merchantCategoryCode ?? "0000", transactionCurrency: params.transactionCurrency ?? "986", countryCode: params.countryCode ?? "BR", merchantName: params.merchantName ?? "", merchantCity: params.merchantCity ?? "", additionalData: { txId: params.additionalData?.txId ?? "***" }, value: params.value, postalCode: params.postalCode, unreservedTemplate: { gui: params.unreservedTemplate?.gui, url: params.unreservedTemplate?.url } }; const parsed = dynamicPixSchema.parse(payloadWithDefaultValues); const brcode = toDynamicPix(parsed); return { brcode, toBase64: () => toDataURL(brcode), toDataUrl: () => toDataURL(brcode), type: PixQrCodeType.Dynamic, getPayload: async (getPayloadParams) => { const url = new URL(`https://${params.merchantAccountInfo.url}`); if (getPayloadParams?.dpp) url.searchParams.append("dpp", getPayloadParams.dpp); if (getPayloadParams?.codMun) url.searchParams.append("codMun", getPayloadParams.codMun); const res = await fetch(url.toString()); const jwt = await res.text(); const parts = jwt.split(".").map((b64) => Buffer.from(b64, "base64").toString("utf-8")); const header = JSON.parse(parts[0]); const payload = JSON.parse(parts[1]); return { payload, header }; } }; }; // src/static.ts import { PixQrCodeType as PixQrCodeType2, getPixKeyType, staticPixSchema, toStaticPix } from "@pix.js/core"; import { toDataURL as toDataURL2 } from "qrcode"; var createStatic = (params) => { const payloadWithDefaultValues = { merchantAccountInfo: { gui: params.merchantAccountInfo.gui ?? "br.gov.bcb.pix", key: params.merchantAccountInfo.key, merchantAdditionalInfo: params.merchantAccountInfo.merchantAdditionalInfo, fss: params.merchantAccountInfo.fss }, merchantCategoryCode: params.merchantCategoryCode ?? "0000", transactionCurrency: params.transactionCurrency ?? "986", countryCode: params.countryCode ?? "BR", merchantName: params.merchantName ?? "", merchantCity: params.merchantCity ?? "", additionalData: { txId: params.additionalData?.txId ?? "***" }, value: params.value, postalCode: params.postalCode ?? "", unreservedTemplate: { gui: params.unreservedTemplate?.gui, url: params.unreservedTemplate?.url } }; const parsed = staticPixSchema.parse(payloadWithDefaultValues); const brcode = toStaticPix(parsed); return { brcode, toBase64: toDataURL2(brcode), type: PixQrCodeType2.Static, keyType: getPixKeyType(params.merchantAccountInfo.key) }; }; // src/index.ts export * from "@pix.js/core"; // src/types.ts var DynamicStatus = /* @__PURE__ */ ((DynamicStatus2) => { DynamicStatus2["Ativa"] = "ATIVA"; DynamicStatus2["Concluida"] = "CONCLUIDA"; DynamicStatus2["RemovidaPeloUsuarioRecebedor"] = "REMOVIDA_PELO_USUARIO_RECEBEDOR"; DynamicStatus2["RemovidaPeloPsp"] = "REMOVIDA_PELO_PSP"; return DynamicStatus2; })(DynamicStatus || {}); export { DynamicStatus, createDynamic, createStatic }; //# sourceMappingURL=index.js.map