UNPKG

falcotura-atv-sdk

Version:

Librería (SDK) de Javascript/NodeJS para acceder al API de Administración Tributaria Virtual (ATV) del Ministerio de Hacienda.

53 lines 2.42 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseElectronicBillXML = exports.genXML = exports.objToXML = void 0; const fast_xml_parser_1 = require("fast-xml-parser"); const xmlSchemaHeaderMap_1 = require("../../xmlSchemaHeaderMap"); const index_1 = __importDefault(require("./sigXML/index")); const objToXML = (xmlStructure, obj) => { const parser = new fast_xml_parser_1.j2xParser(xmlSchemaHeaderMap_1.defaultOptions); // eslint-disable-line new-cap const mainKey = Object.keys(obj)[0]; obj[mainKey].attr = xmlSchemaHeaderMap_1.xmlExtructures[xmlStructure]; return xmlSchemaHeaderMap_1.declaration + parser.parse(obj); }; exports.objToXML = objToXML; // tipoDocKey = xmlStructure function genXML(xmlStructure, obj, options) { return __awaiter(this, void 0, void 0, function* () { const xml = (0, exports.objToXML)(xmlStructure, obj); if (!options) return xml; // @ts-expect-error pending-to-fix const signedXML = yield (0, index_1.default)(xml, options.buffer, options.password); return signedXML; }); } exports.genXML = genXML; const parseElectronicBillXML = (xml) => { try { const json = (0, fast_xml_parser_1.parse)(xml, { ignoreAttributes: false, ignoreNameSpace: false, parseNodeValue: false }); return json.FacturaElectronica; } catch (err) { // @ts-expect-error pending-to-fix return null; } }; exports.parseElectronicBillXML = parseElectronicBillXML; //# sourceMappingURL=index.js.map