emvco-qr-sdk
Version:
A robust TypeScript SDK for decoding, validating, and processing EMVCo-compliant QR codes used in digital payment systems.
42 lines (41 loc) • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.acquirerNetworkStrategy = void 0;
const acquirer_network_util_1 = require("../../utils/acquirer/acquirer-network.util");
/**
* Mapping strategy for tag 49 - Acquirer Network Identifier.
*
* Tag 49 contains:
* - Subtag 00: GUI (Globally Unique Identifier, e.g., CO.COM.CRB.RED)
* - Subtag 01: Short code (e.g., CRB)
*
* This strategy resolves and maps the subtags, and adds a human-readable network name.
*
* Example output:
* ```ts
* {
* gui: "CO.COM.CRB.RED",
* networkId: "CRB",
* networkName: "Credibanco"
* }
* ```
*
* @param tlv - TLV entity for tag 49
* @returns An object with `gui`, `networkId`, and resolved `networkName`
*/
const acquirerNetworkStrategy = (tlv) => {
var _a;
const subTags = (_a = tlv.subTags) !== null && _a !== void 0 ? _a : [];
const result = {};
const guiTag = subTags.find((sub) => sub.tag === '00');
const networkIdTag = subTags.find((sub) => sub.tag === '01');
if (guiTag) {
result['gui'] = guiTag.value;
result['networkName'] = (0, acquirer_network_util_1.resolveAcquirerNetworkName)(guiTag.value);
}
if (networkIdTag) {
result['networkId'] = networkIdTag.value;
}
return result;
};
exports.acquirerNetworkStrategy = acquirerNetworkStrategy;