64 lines
2.1 KiB
JavaScript
64 lines
2.1 KiB
JavaScript
|
"use strict";
|
||
|
exports.__esModule = true;
|
||
|
exports.xmlEscape = exports.splitQName = exports.findPrefix = exports.TNS_PREFIX = exports.passwordDigest = void 0;
|
||
|
var crypto = require("crypto");
|
||
|
function passwordDigest(nonce, created, password) {
|
||
|
// digest = base64 ( sha1 ( nonce + created + password ) )
|
||
|
var pwHash = crypto.createHash('sha1');
|
||
|
var NonceBytes = Buffer.from(nonce || '', 'base64');
|
||
|
var CreatedBytes = Buffer.from(created || '', 'utf8');
|
||
|
var PasswordBytes = Buffer.from(password || '', 'utf8');
|
||
|
var FullBytes = Buffer.concat([NonceBytes, CreatedBytes, PasswordBytes]);
|
||
|
pwHash.update(FullBytes);
|
||
|
return pwHash.digest('base64');
|
||
|
}
|
||
|
exports.passwordDigest = passwordDigest;
|
||
|
exports.TNS_PREFIX = '__tns__'; // Prefix for targetNamespace
|
||
|
/**
|
||
|
* Find a key from an object based on the value
|
||
|
* @param {Object} Namespace prefix/uri mapping
|
||
|
* @param {*} nsURI value
|
||
|
* @returns {String} The matching key
|
||
|
*/
|
||
|
function findPrefix(xmlnsMapping, nsURI) {
|
||
|
for (var n in xmlnsMapping) {
|
||
|
if (n === exports.TNS_PREFIX) {
|
||
|
continue;
|
||
|
}
|
||
|
if (xmlnsMapping[n] === nsURI) {
|
||
|
return n;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
exports.findPrefix = findPrefix;
|
||
|
function splitQName(nsName) {
|
||
|
if (typeof nsName !== 'string') {
|
||
|
return {
|
||
|
prefix: exports.TNS_PREFIX,
|
||
|
name: nsName
|
||
|
};
|
||
|
}
|
||
|
var topLevelName = nsName.split('|')[0];
|
||
|
var prefixOffset = topLevelName.indexOf(':');
|
||
|
return {
|
||
|
prefix: topLevelName.substring(0, prefixOffset) || exports.TNS_PREFIX,
|
||
|
name: topLevelName.substring(prefixOffset + 1)
|
||
|
};
|
||
|
}
|
||
|
exports.splitQName = splitQName;
|
||
|
function xmlEscape(obj) {
|
||
|
if (typeof (obj) === 'string') {
|
||
|
if (obj.substr(0, 9) === '<![CDATA[' && obj.substr(-3) === ']]>') {
|
||
|
return obj;
|
||
|
}
|
||
|
return obj
|
||
|
.replace(/&/g, '&')
|
||
|
.replace(/</g, '<')
|
||
|
.replace(/>/g, '>')
|
||
|
.replace(/"/g, '"')
|
||
|
.replace(/'/g, ''');
|
||
|
}
|
||
|
return obj;
|
||
|
}
|
||
|
exports.xmlEscape = xmlEscape;
|
||
|
//# sourceMappingURL=utils.js.map
|