@pix.js/qrcode
Version:
A set of utilities for working with Pix QRCode
131 lines (126 loc) • 5.11 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var index_exports = {};
__export(index_exports, {
DynamicStatus: () => DynamicStatus,
createDynamic: () => createDynamic,
createStatic: () => createStatic
});
module.exports = __toCommonJS(index_exports);
// src/dynamic.ts
var import_core = require("@pix.js/core");
var import_qrcode = require("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 ?? import_core.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 = import_core.dynamicPixSchema.parse(payloadWithDefaultValues);
const brcode = (0, import_core.toDynamicPix)(parsed);
return {
brcode,
toBase64: () => (0, import_qrcode.toDataURL)(brcode),
toDataUrl: () => (0, import_qrcode.toDataURL)(brcode),
type: import_core.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
var import_core2 = require("@pix.js/core");
var import_qrcode2 = require("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 = import_core2.staticPixSchema.parse(payloadWithDefaultValues);
const brcode = (0, import_core2.toStaticPix)(parsed);
return {
brcode,
toBase64: (0, import_qrcode2.toDataURL)(brcode),
type: import_core2.PixQrCodeType.Static,
keyType: (0, import_core2.getPixKeyType)(params.merchantAccountInfo.key)
};
};
// src/index.ts
__reExport(index_exports, require("@pix.js/core"), module.exports);
// 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 || {});
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
DynamicStatus,
createDynamic,
createStatic,
...require("@pix.js/core")
});
//# sourceMappingURL=index.cjs.map