emvco-qr-sdk
Version:
A robust TypeScript SDK for decoding, validating, and processing EMVCo-compliant QR codes used in digital payment systems.
57 lines (56 loc) • 2.53 kB
JavaScript
;
/**
* Central registry of tag mapping strategies used during TLV transformation.
*
* Each entry in the registry defines how a tag is interpreted for a specific region
* (e.g., CO, GLOBAL, DEFAULT). Strategies are pure functions that receive a TLV entity
* and return a structured object for output.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.TagMappingRegistryStrategy = void 0;
const qr_constant_1 = require("../../constants/qr.constant");
const tag49_acquirer_network_strategy_1 = require("../co/tag49-acquirer-network.strategy");
const tag95_account_strategy_1 = require("../co/tag95-account.strategy");
const tag96_account_strategy_1 = require("../co/tag96-account.strategy");
const tag98_transfer_product_strategy_1 = require("../co/tag98-transfer-product.strategy");
const default_strategy_1 = require("../defaults/default.strategy");
const generic_gui_strategy_1 = require("../shared/generic-gui.strategy");
const gui_and_typed_strategy_1 = require("../shared/gui-and-typed.strategy");
const register_generic_strategy_1 = require("../shared/register-generic-strategy");
const registry = {};
registry['26'] = {
CO: gui_and_typed_strategy_1.guiAndTypedStrategy,
GLOBAL: default_strategy_1.defaultStrategy,
DEFAULT: default_strategy_1.defaultStrategy,
};
registry['80'] = {
CO: gui_and_typed_strategy_1.guiAndTypedStrategy,
GLOBAL: default_strategy_1.defaultStrategy,
DEFAULT: default_strategy_1.defaultStrategy,
};
registry['49'] = {
CO: tag49_acquirer_network_strategy_1.acquirerNetworkStrategy,
GLOBAL: default_strategy_1.defaultStrategy,
DEFAULT: default_strategy_1.defaultStrategy,
};
registry['95'] = {
CO: tag95_account_strategy_1.accountFieldStrategy95,
GLOBAL: default_strategy_1.defaultStrategy,
DEFAULT: default_strategy_1.defaultStrategy,
};
registry['96'] = {
CO: tag96_account_strategy_1.accountFieldStrategy96,
GLOBAL: default_strategy_1.defaultStrategy,
DEFAULT: default_strategy_1.defaultStrategy,
};
registry['98'] = {
CO: tag98_transfer_product_strategy_1.transferProductTypeStrategy,
GLOBAL: default_strategy_1.defaultStrategy,
DEFAULT: default_strategy_1.defaultStrategy,
};
(0, register_generic_strategy_1.registerGenericStrategyForTags)(registry, qr_constant_1.TAGS_WITH_GENERIC_GUI_STRATEGY, generic_gui_strategy_1.genericGuiStrategy);
/**
* Exports the final registry used by mappers to determine
* how to decode TLV tag values.
*/
exports.TagMappingRegistryStrategy = registry;