UNPKG

ws-support

Version:

A web service transformation support tool

140 lines (131 loc) 5.2 kB
import _slicedToArray from '@babel/runtime-corejs3/helpers/slicedToArray'; import _indexOfInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/index-of'; import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/for-each'; import _concatInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/concat'; import _JSON$stringify from '@babel/runtime-corejs3/core-js-stable/json/stringify'; import _Promise from '@babel/runtime-corejs3/core-js-stable/promise'; import _sliceInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/slice'; var CryptoJS = require('crypto-js'); // 引用AES源码js var key = CryptoJS.enc.Utf8.parse('1111222233334444'); // 十六位十六进制数作为密钥 var iv = CryptoJS.enc.Utf8.parse('1234567876543210'); // 十六位十六进制数作为密钥偏移量 // 加密方法 function Encrypt$1(word) { var srcs = CryptoJS.enc.Utf8.parse(word); var encryptResult = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); var encryptResultString = encryptResult.toString(); return encryptResultString; } // 解密方法 function Decrypt$1(word) { var bytes = CryptoJS.AES.decrypt(word.toString(), key, { iv: iv, mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); var decryptResult = bytes.toString(CryptoJS.enc.Utf8); return decryptResult.toString(); } var crypto = { Encrypt: Encrypt$1, Decrypt: Decrypt$1 }; function urlParamsToObj$1(url) { var data; if (_indexOfInstanceProperty(url).call(url, '?') === -1) { data = null; } else { var paramsArray = url.split('?'); var paramsPairString = paramsArray[1]; var paramsPairArray = paramsPairString.split('&'); var params = {}; _forEachInstanceProperty(paramsPairArray).call(paramsPairArray, function (paramsPair) { var _paramsPair$split = paramsPair.split('='), _paramsPair$split2 = _slicedToArray(_paramsPair$split, 2), key = _paramsPair$split2[0], value = _paramsPair$split2[1]; params[key] = value; }); data = params; } return data; } function getXmlData$1(params, method) { var _context; var xmlData = _concatInstanceProperty(_context = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n <soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <soap:Body>\n <request>\n <method>".concat(method, "</method>\n <body>")).call(_context, params ? Buffer.from(_JSON$stringify(params), 'utf8').toString('base64') : '', "</body>\n </request>\n </soap:Body>\n </soap:Envelope>"); return xmlData; } var request = { urlParamsToObj: urlParamsToObj$1, getXmlData: getXmlData$1 }; var xml2js = require('xml2js'); function parseXML$1(xml) { return new _Promise(function (resolve, reject) { var parser = new xml2js.Parser(); parser.parseStringPromise(xml).then(function (result) { var keys = ['soap:Envelope', 'soap:Body']; var arrayKeys = ['result']; var keysResult = getKeysResult(result, keys); var arrayKeysResult = getKeysResult(keysResult, arrayKeys, 0); var data = Buffer.from(decodeURIComponent(arrayKeysResult || ''), 'base64').toString('utf8'); data = data ? JSON.parse(data) : ''; resolve(data); })["catch"](function (err) { console.error(err); reject(err); }); }); } function getKeysResult(obj, keys) { var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1; var result = obj; _forEachInstanceProperty(keys).call(keys, function (key) { result = index === -1 ? result[key] : result[index][key]; }); return index === -1 ? result : result[index]; } function handleDTDString$1(xmlData, isGetPreviewContent) { var startString = '<!DOCTYPE'; var endString = '</html>'; var startIndex = _indexOfInstanceProperty(xmlData).call(xmlData, startString); var endIndex = _indexOfInstanceProperty(xmlData).call(xmlData, endString); var textContent = _sliceInstanceProperty(xmlData).call(xmlData, startIndex, endIndex + endString.length); var resultXmlData; if (isGetPreviewContent) { resultXmlData = ''; } else { var startArray = xmlData.split(startString); var startContent = startArray[0]; var handleContent = startArray[1]; var endArray = handleContent.split(endString); var endContent = endArray[1]; resultXmlData = startContent + endContent; } return { resultXmlData: resultXmlData, textContent: textContent }; } var response = { parseXML: parseXML$1, handleDTDString: handleDTDString$1 }; var urlParamsToObj = request.urlParamsToObj; var getXmlData = request.getXmlData; var parseXML = response.parseXML; var handleDTDString = response.handleDTDString; var Encrypt = crypto.Encrypt; var Decrypt = crypto.Decrypt; var main = { urlParamsToObj: urlParamsToObj, getXmlData: getXmlData, parseXML: parseXML, handleDTDString: handleDTDString, Encrypt: Encrypt, Decrypt: Decrypt }; export { main as default };