UNPKG

xmldsigjs

Version:

XMLDSIGjs provides an implementation of XMLDSIG in Typescript/Javascript based on WebCrypto

1,419 lines (1,415 loc) 1.4 MB
var XmlDSigJs = (function (exports) { 'use strict'; function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var n = 0, F = function () {}; return { s: F, n: function () { return n >= r.length ? { done: !0 } : { done: !1, value: r[n++] }; }, e: function (r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function () { t = t.call(r); }, n: function () { var r = t.next(); return a = r.done, r; }, e: function (r) { u = !0, o = r; }, f: function () { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _get() { return _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = _superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, _get.apply(null, arguments); } function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } function _isNativeFunction(t) { try { return -1 !== Function.toString.call(t).indexOf("[native code]"); } catch (n) { return "function" == typeof t; } } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); } function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _objectDestructuringEmpty(t) { if (null == t) throw new TypeError("Cannot destructure " + t); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; } function _possibleConstructorReturn(t, e) { if (e && ("object" == typeof e || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } function _regeneratorRuntime() { _regeneratorRuntime = function () { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function (t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == typeof h && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function (t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(typeof e + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function (e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function () { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function (e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function (t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function (t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function (t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function (t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function (e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } function _superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t));); return t; } function _superPropGet(t, e, r, o) { var p = _get(_getPrototypeOf(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; } function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _wrapNativeSuper(t) { var r = "function" == typeof Map ? new Map() : void 0; return _wrapNativeSuper = function (t) { if (null === t || !_isNativeFunction(t)) return t; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== r) { if (r.has(t)) return r.get(t); r.set(t, Wrapper); } function Wrapper() { return _construct(t, arguments, _getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), _setPrototypeOf(Wrapper, t); }, _wrapNativeSuper(t); } var _excluded = ["name", "optional", "primitiveSchema"], _excluded2 = ["value"], _excluded3 = ["isHexOnly"], _excluded4 = ["value", "isIndefiniteForm"], _excluded5 = ["value"], _excluded6 = ["isConstructed"], _excluded7 = ["idBlock", "lenBlock"], _excluded8 = ["unusedBits", "isConstructed"], _excluded9 = ["idBlock", "lenBlock"], _excluded10 = ["value"], _excluded11 = ["valueDec", "isFirstSid"], _excluded12 = ["value"], _excluded13 = ["valueDec"], _excluded14 = ["value"], _excluded15 = ["value", "valueDate"], _excluded16 = ["value"], _excluded17 = ["value", "local"]; var ELEMENT = "element"; var ATTRIBUTE = "attribute"; var CONTENT$1 = "content"; var MAX = 1e9; function assign$1(target) { for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { sources[_key - 1] = arguments[_key]; } var res = arguments[0]; for (var i = 1; i < arguments.length; i++) { var obj = arguments[i]; for (var prop in obj) { if (!obj.hasOwnProperty(prop)) { continue; } res[prop] = obj[prop]; } } return res; } function XmlElement(params) { return function (target) { var t = target; t.localName = params.localName || t.name; t.namespaceURI = params.namespaceURI || t.namespaceURI || null; t.prefix = params.prefix || t.prefix || null; t.parser = params.parser || t.parser; if (t.target !== t) { t.items = assign$1({}, t.items); } t.target = target; }; } function XmlChildElement() { var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return function (target, propertyKey) { var t = target.constructor; var key = propertyKey; if (!t.items) { t.items = {}; } if (t.target !== t) { t.items = assign$1({}, t.items); } t.target = target; if (params.parser) { t.items[key] = { parser: params.parser, required: params.required || false, maxOccurs: params.maxOccurs || MAX, minOccurs: params.minOccurs === void 0 ? 0 : params.minOccurs, noRoot: params.noRoot || false }; } else { t.items[key] = { namespaceURI: params.namespaceURI || null, required: params.required || false, prefix: params.prefix || null, defaultValue: params.defaultValue, converter: params.converter, noRoot: params.noRoot || false }; } params.localName = params.localName || params.parser && params.parser.localName || key; t.items[key].namespaceURI = params.namespaceURI || params.parser && params.parser.namespaceURI || null; t.items[key].prefix = params.prefix || params.parser && params.parser.prefix || null; t.items[key].localName = params.localName; t.items[key].type = ELEMENT; defineProperty(target, key, params); }; } function XmlAttribute() { var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { required: false, namespaceURI: null }; return function (target, propertyKey) { var t = target.constructor; var key = propertyKey; if (!params.localName) { params.localName = propertyKey; } if (!t.items) { t.items = {}; } if (t.target !== t) { t.items = assign$1({}, t.items); } t.target = target; t.items[propertyKey] = params; t.items[propertyKey].type = ATTRIBUTE; defineProperty(target, key, params); }; } function defineProperty(target, key, params) { var key2 = "_".concat(key); var opt = { set: function set(v) { if (this[key2] !== v) { this.element = null; this[key2] = v; } }, get: function get() { if (this[key2] === void 0) { var defaultValue = params.defaultValue; if (params.parser) { defaultValue = new params.parser(); defaultValue.localName = params.localName; } this[key2] = defaultValue; } return this[key2]; } }; Object.defineProperty(target, key2, { writable: true, enumerable: false }); Object.defineProperty(target, key, opt); } var Collection = function () { function Collection(items) { _classCallCheck(this, Collection); this.items = new Array(); if (items) { this.items = items; } } return _createClass(Collection, [{ key: "Count", get: function get() { return this.items.length; } }, { key: "Item", value: function Item(index) { return this.items[index] || null; } }, { key: "Add", value: function Add(item) { this.items.push(item); } }, { key: "Pop", value: function Pop() { return this.items.pop(); } }, { key: "RemoveAt", value: function RemoveAt(index) { this.items = this.items.filter(function (item, index2) { return index2 !== index; }); } }, { key: "Clear", value: function Clear() { this.items = new Array(); } }, { key: "GetIterator", value: function GetIterator() { return this.items; } }, { key: "ForEach", value: function ForEach(cb) { this.GetIterator().forEach(cb); } }, { key: "Map", value: function Map(cb) { return new Collection(this.GetIterator().map(cb)); } }, { key: "Filter", value: function Filter(cb) { return new Collection(this.GetIterator().filter(cb)); } }, { key: "Sort", value: function Sort(cb) { return new Collection(this.GetIterator().sort(cb)); } }, { key: "Every", value: function Every(cb) { return this.GetIterator().every(cb); } }, { key: "Some", value: function Some(cb) { return this.GetIterator().some(cb); } }, { key: "IsEmpty", value: function IsEmpty() { return this.Count === 0; } }]); }(); function printf(text) { for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { args[_key2 - 1] = arguments[_key2]; } var msg = text; var regFind = /[^%](%\d+)/g; var match = null; var matches = []; while (match = regFind.exec(msg)) { matches.push({ arg: match[1], index: match.index }); } for (var i = matches.length - 1; i >= 0; i--) { var item = matches[i]; var arg = item.arg.substring(1); var index = item.index + 1; msg = msg.substring(0, index) + arguments[+arg] + msg.substring(index + 1 + arg.length); } msg = msg.replace("%%", "%"); return msg; } function padNum(num, size) { var s = num + ""; while (s.length < size) { s = "0" + s; } return s; } var XmlError = _createClass(function XmlError(code) { for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { args[_key3 - 1] = arguments[_key3]; } _classCallCheck(this, XmlError); this.prefix = "XMLJS"; this.code = code; this.name = this.constructor.name; arguments[0] = xes[code]; var message = printf.apply(this, arguments); this.message = "".concat(this.prefix).concat(padNum(code, 4), ": ").concat(message); this.stack = new Error(this.message).stack; }); var XE; (function (XE) { XE[XE["NONE"] = 0] = "NONE"; XE[XE["NULL_REFERENCE"] = 1] = "NULL_REFERENCE"; XE[XE["NULL_PARAM"] = 2] = "NULL_PARAM"; XE[XE["DECORATOR_NULL_PARAM"] = 3] = "DECORATOR_NULL_PARAM"; XE[XE["COLLECTION_LIMIT"] = 4] = "COLLECTION_LIMIT"; XE[XE["METHOD_NOT_IMPLEMENTED"] = 5] = "METHOD_NOT_IMPLEMENTED"; XE[XE["METHOD_NOT_SUPPORTED"] = 6] = "METHOD_NOT_SUPPORTED"; XE[XE["PARAM_REQUIRED"] = 7] = "PARAM_REQUIRED"; XE[XE["CONVERTER_UNSUPPORTED"] = 8] = "CONVERTER_UNSUPPORTED"; XE[XE["ELEMENT_MALFORMED"] = 9] = "ELEMENT_MALFORMED"; XE[XE["ELEMENT_MISSING"] = 10] = "ELEMENT_MISSING"; XE[XE["ATTRIBUTE_MISSING"] = 11] = "ATTRIBUTE_MISSING"; XE[XE["CONTENT_MISSING"] = 12] = "CONTENT_MISSING"; XE[XE["CRYPTOGRAPHIC"] = 13] = "CRYPTOGRAPHIC"; XE[XE["CRYPTOGRAPHIC_NO_MODULE"] = 14] = "CRYPTOGRAPHIC_NO_MODULE"; XE[XE["CRYPTOGRAPHIC_UNKNOWN_TRANSFORM"] = 15] = "CRYPTOGRAPHIC_UNKNOWN_TRANSFORM"; XE[XE["ALGORITHM_NOT_SUPPORTED"] = 16] = "ALGORITHM_NOT_SUPPORTED"; XE[XE["ALGORITHM_WRONG_NAME"] = 17] = "ALGORITHM_WRONG_NAME"; XE[XE["XML_EXCEPTION"] = 18] = "XML_EXCEPTION"; })(XE || (XE = {})); var xes = {}; xes[XE.NONE] = "No description"; xes[XE.NULL_REFERENCE] = "Null reference"; xes[XE.NULL_PARAM] = "'%1' has empty '%2' object"; xes[XE.DECORATOR_NULL_PARAM] = "Decorator '%1' has empty '%2' parameter"; xes[XE.COLLECTION_LIMIT] = "Collection of '%1' in element '%2' has wrong amount of items"; xes[XE.METHOD_NOT_IMPLEMENTED] = "Method is not implemented"; xes[XE.METHOD_NOT_SUPPORTED] = "Method is not supported"; xes[XE.PARAM_REQUIRED] = "Required parameter is missing '%1'"; xes[XE.CONVERTER_UNSUPPORTED] = "Converter is not supported"; xes[XE.ELEMENT_MALFORMED] = "Malformed element '%1'"; xes[XE.ELEMENT_MISSING] = "Element '%1' is missing in '%2'"; xes[XE.ATTRIBUTE_MISSING] = "Attribute '%1' is missing in '%2'"; xes[XE.CONTENT_MISSING] = "Content is missing in '%1'"; xes[XE.CRYPTOGRAPHIC] = "Cryptographic error: %1"; xes[XE.CRYPTOGRAPHIC_NO_MODULE] = "WebCrypto module is not found"; xes[XE.CRYPTOGRAPHIC_UNKNOWN_TRANSFORM] = "Unknown transform %1"; xes[XE.ALGORITHM_NOT_SUPPORTED] = "Algorithm is not supported '%1'"; xes[XE.ALGORITHM_WRONG_NAME] = "Algorithm wrong name in use '%1'"; xes[XE.XML_EXCEPTION] = "XML exception: %1"; var Convert$1 = function () { function Convert() { _classCallCheck(this, Convert); } return _createClass(Convert, null, [{ key: "ToString", value: function ToString(buffer) { var enc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "utf8"; var buf = new Uint8Array(buffer); switch (enc.toLowerCase()) { case "utf8": return this.ToUtf8String(buf); case "binary": return this.ToBinary(buf); case "hex": return this.ToHex(buf); case "base64": return this.ToBase64(buf); case "base64url": return this.ToBase64Url(buf); default: throw new XmlError(XE.CONVERTER_UNSUPPORTED); } } }, { key: "FromString", value: function FromString(str) { var enc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "utf8"; switch (enc.toLowerCase()) { case "utf8": return this.FromUtf8String(str); case "binary": return this.FromBinary(str); case "hex": return this.FromHex(str); case "base64": return this.FromBase64(str); case "base64url": return this.FromBase64Url(str); default: throw new XmlError(XE.CONVERTER_UNSUPPORTED); } } }, { key: "ToBase64", value: function ToBase64(buf) { if (typeof btoa !== "undefined") { var binary = this.ToString(buf, "binary"); return btoa(binary); } else if (typeof Buffer !== "undefined") { return Buffer.from(buf).toString("base64"); } else { throw new XmlError(XE.CONVERTER_UNSUPPORTED); } } }, { key: "FromBase64", value: function FromBase64(base64Text) { base64Text = base64Text.replace(/\n/g, "").replace(/\r/g, "").replace(/\t/g, "").replace(/\s/g, ""); if (typeof atob !== "undefined") { return this.FromBinary(atob(base64Text)); } else if (typeof Buffer !== "undefined") { return new Uint8Array(Buffer.from(base64Text, "base64")); } else { throw new XmlError(XE.CONVERTER_UNSUPPORTED); } } }, { key: "FromBase64Url", value: function FromBase64Url(base64url) { return this.FromBase64(this.Base64Padding(base64url.replace(/\-/g, "+").replace(/\_/g, "/"))); } }, { key: "ToBase64Url", value: function ToBase64Url(data) { return this.ToBase64(data).replace(/\+/g, "-").replace(/\//g, "_").replace(/\=/g, ""); } }, { key: "FromUtf8String", value: function FromUtf8String(text) { var s = unescape(encodeURIComponent(text)); var uintArray = new Uint8Array(s.length); for (var i = 0; i < s.length; i++) { uintArray[i] = s.charCodeAt(i); } return uintArray; } }, { key: "ToUtf8String", value: function ToUtf8String(buffer) { var encodedString = String.fromCharCode.apply(null, buffer); var decodedString = decodeURIComponent(escape(encodedString)); return decodedString; } }, { key: "FromBinary", value: function FromBinary(text) { var stringLength = text.length; var resultView = new Uint8Array(stringLength); for (var i = 0; i < stringLength; i++) { resultView[i] = text.charCodeAt(i); } return resultView; } }, { key: "ToBinary", value: function ToBinary(buffer) { var resultString = ""; for (var i = 0; i < buffer.length; i++) { resultString = resultString + String.fromCharCode(buffer[i]); } return resultString; } }, { key: "ToHex", value: function ToHex(buffer) { var splitter = ""; var res = []; for (var i = 0; i < buffer.length; i++) { var char = buffer[i].toString(16); res.push(char.length === 1 ? "0" + char : char); } return res.join(splitter); } }, { key: "FromHex", value: function FromHex(hexString) { var res = new Uint8Array(hexString.length / 2); for (var i = 0; i < hexString.length; i = i + 2) { var c = hexString.slice(i, i + 2); res[i / 2] = parseInt(c, 16); } return res; } }, { key: "ToDateTime", value: function ToDateTime(dateTime) { return new Date(dateTime); } }, { key: "FromDateTime", value: function FromDateTime(dateTime) { var str = dateTime.toISOString(); return str; } }, { key: "Base64Padding", value: function Base64Padding(base64) { var padCount = 4 - base64.length % 4; if (padCount < 4) { for (var i = 0; i < padCount; i++) { base64 += "="; } } return base64; } }]); }(); var APPLICATION_XML = "application/xml"; var XmlNodeType; (function (XmlNodeType) { XmlNodeType[XmlNodeType["None"] = 0] = "None"; XmlNodeType[XmlNodeType["Element"] = 1] = "Element"; XmlNodeType[XmlNodeType["Attribute"] = 2] = "Attribute"; XmlNodeType[XmlNodeType["Text"] = 3] = "Text"; XmlNodeType[XmlNodeType["CDATA"] = 4] = "CDATA"; XmlNodeType[XmlNodeType["EntityReference"] = 5] = "EntityReference"; XmlNodeType[XmlNodeType["Entity"] = 6] = "Entity"; XmlNodeType[XmlNodeType["ProcessingInstruction"] = 7] = "ProcessingInstruction"; XmlNodeType[XmlNodeType["Comment"] = 8] = "Comment"; XmlNodeType[XmlNodeType["Document"] = 9] = "Document"; XmlNodeType[XmlNodeType["DocumentType"] = 10] = "DocumentType"; XmlNodeType[XmlNodeType["DocumentFragment"] = 11] = "DocumentFragment"; XmlNodeType[XmlNodeType["Notation"] = 12] = "Notation"; XmlNodeType[XmlNodeType["Whitespace"] = 13] = "Whitespace"; XmlNodeType[XmlNodeType["SignificantWhitespace"] = 14] = "SignificantWhitespace"; XmlNodeType[XmlNodeType["EndElement"] = 15] = "EndElement"; XmlNodeType[XmlNodeType["EndEntity"] = 16] = "EndEntity"; XmlNodeType[XmlNodeType["XmlDeclaration"] = 17] = "XmlDeclaration"; })(XmlNodeType || (XmlNodeType = {})); var xpath = function xpath(node, xPath) { throw new Error("Not implemented"); }; var sWindow; if (typeof self === "undefined") { sWindow = global; var xmldom = require("@xmldom/xmldom"); xpath = require("xpath.js"); sWindow.XMLSerializer = xmldom.XMLSerializer; sWindow.DOMParser = xmldom.DOMParser; sWindow.DOMImplementation = xmldom.DOMImplementation; sWindow.document = new DOMImplementation().createDocument("http://www.w3.org/1999/xhtml", "html", null); } else { sWindow = self; } function SelectNodesEx(node, xPath) { var doc = node.ownerDocument == null ? node : node.ownerDocument; var nsResolver = document.createNSResolver(node.ownerDocument == null ? node.documentElement : node.ownerDocument.documentElement); var personIterator = doc.evaluate(xPath, node, nsResolver, XPathResult.ANY_TYPE, null); var ns = []; var n; while (n = personIterator.iterateNext()) { ns.push(n); } return ns; } var Select = typeof self !== "undefined" ? SelectNodesEx : xpath; function Parse(xmlString) { xmlString = xmlString.replace(/\r\n/g, "\n").replace(/\r/g, "\n"); return new DOMParser().parseFromString(xmlString, APPLICATION_XML); } function Stringify(target) { return new XMLSerializer().serializeToString(target); } function SelectSingleNode(node, path) { var ns = Select(node, path); if (ns && ns.length > 0) { return ns[0]; } return null; } function _SelectNamespaces(node) { var selectedNodes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (isElement(node)) { if (node.namespaceURI && node.namespaceURI !== "http://www.w3.org/XML/1998/namespace" && !selectedNodes[node.prefix || ""]) { selectedNodes[node.prefix ? node.prefix : ""] = node.namespaceURI; } for (var i = 0; i < node.childNodes.length; i++) { var childNode = node.childNodes.item(i); if (childNode && childNode.nodeType === XmlNodeType.Element) { _SelectNamespaces(childNode, selectedNodes); } } } } function SelectNamespaces(node) { var attrs = {}; _SelectNamespaces(node, attrs); return attrs; } function assign(target) { for (var _len4 = arguments.length, sources = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { sources[_key4 - 1] = arguments[_key4]; } var res = arguments[0]; for (var i = 1; i < arguments.length; i++) { var obj = arguments[i]; for (var prop in obj) { if (!obj.hasOwnProperty(prop)) { continue; } res[prop] = obj[prop]; } } return res; } function isNodeType(obj, type) { return obj && obj.nodeType === type; } function isElement(obj) { return isNodeType(obj, XmlNodeType.Element); } function isDocument(obj) { return isNodeType(obj, XmlNodeType.Document); } var XmlBase64Converter = { get: function get(value) { if (value) { return Convert$1.ToBase64(value); } return void 0; }, set: function set(value) { return Convert$1.FromBase64(value); } }; var XmlNumberConverter = { get: function get(value) { if (value) { return value.toString(); } return "0"; }, set: function set(value) { return Number(value); } }; var DEFAULT_ROOT_NAME = "xml_root"; var XmlObject = function () { function XmlObject() { var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; _classCallCheck(this, XmlObject); this.prefix = this.GetStatic().prefix || null; this.localName = this.GetStatic().localName; this.namespaceURI = this.GetStatic().namespaceURI; if (properties) { for (var _i = 0, _Object$entries = Object.entries(properties); _i < _Object$entries.length; _i++) { var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), key = _Object$entries$_i[0], value = _Object$entries$_i[1]; if (value !== undefined) { this[key] = value; } } } } return _createClass(XmlObject, [{ key: "Element", get: function get() { return this.element; } }, { key: "Prefix", get: function get() { return this.prefix; }, set: function set(value) { this.prefix = value; } }, { key: "LocalName", get: function get() { return this.localName; } }, { key: "NamespaceURI", get: function get() { return this.namespaceURI || null; } }, { key: "HasChanged", value: function HasChanged() { var self = this.GetStatic(); if (self.items) { for (var key in self.items) { if (!self.items.hasOwnProperty(key)) { continue; } var item = self.items[key]; var value = this[key]; if (item.parser && value && value.HasChanged()) { return true; } } } return this.element === null; } }, { key: "GetXml", value: function GetXml(hard) { if (!(hard || this.HasChanged())) { return this.element || null; } var thisAny = this; var doc = this.CreateDocument(); var el = this.CreateElement(); var self = this.GetStatic(); var localName = this.localName; if (self.items) { for (var key in self.items) { if (!self.items.hasOwnProperty(key)) { continue; } var parser = thisAny[key]; var selfItem = self.items[key]; switch (selfItem.type) { case CONTENT$1: { var schema = selfItem; var value = schema.converter ? schema.converter.get(parser) : parser; if (schema.required && (value === null || value === void 0)) { throw new XmlError(XE.CONTENT_MISSING, localName); } if (schema.defaultValue !== parser || schema.required) { el.textContent = value; } break; } case ATTRIBUTE: { var _schema2 = selfItem; var _value = _schema2.converter ? _schema2.converter.get(parser) : parser; if (_schema2.required && (_value === null || _value === void 0)) { throw new XmlError(XE.ATTRIBUTE_MISSING, _schema2.localName, localName); } if (_schema2.defaultValue !== parser || _schema2.required) { if (!_schema2.namespaceURI) { el.setAttribute(_schema2.localName, _value); } else { el.setAttributeNS(_schema2.namespaceURI, _schema2.localName, _value); } } break; } case ELEMENT: { var _schema3 = selfItem; var node = null; if (_schema3.parser) { if (_schema3.required && !parser || _schema3.minOccurs && !parser.Count) { throw new XmlError(XE.ELEMENT_MISSING, parser.localName, localName); } if (parser) { node = parser.GetXml(parser.element === void 0 && (_schema3.required || parser.Count)); } } else { var _value2 = _schema3.converter ? _schema3.converter.get(parser) : parser; if (_schema3.required && _value2 === void 0) { throw new XmlError(XE.ELEMENT_MISSING, _schema3.localName, localName); } if (parser !== _schema3.defaultValue || _schema3.required) { if (!_schema3.namespaceURI) { node = doc.createElement("".concat(_schema3.prefix ? _schema3.prefix + ":" : "").concat(_schema3.localName)); } else { node = doc.createElementNS(_schema3.namespaceURI, "".concat(_schema3.prefix ? _schema3.prefix + ":" : "").concat(_schema3.localName)); } if (Array.isArray(_value2)) { var _iterator = _createForOfIteratorHelper(_value2), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var child = _step.value; var val = child instanceof XmlObject ? child.GetXml(true) : child; if (val !== null) { node.appendChild(val); } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } else if (_value2 instanceof XmlObject) { node.appendChild(_value2.GetXml(true)); } else { node.textContent = _value2; } } } if (node) { if (_schema3.noRoot) { var els = []; for (var i = 0; i < node.childNodes.length; i++) { var colNode = node.childNodes.item(i); if (isElement(colNode)) { els.push(colNode); } } if (els.length < _schema3.minOccurs || els.length > _schema3.maxOccurs) { throw new XmlError(XE.COLLECTION_LIMIT, parser.localName, self.localName); } els.forEach(function (e) { return el.appendChild(e.cloneNode(true)); }); } else if (node.childNodes.length < _schema3.minOccurs || node.childNodes.length > _schema3.maxOccurs) { throw new XmlError(XE.COLLECTION_LIMIT, parser.localName, self.localName); } else { el.appendChild(node); } } break; } } } } this.OnGetXml(el); this.element = el; return el; } }, { key: "LoadXml", value: function LoadXml(param) { var element; var thisAny = this; if (typeof param === "string") { var doc = Parse(param); element = doc.documentElement; } else { element = param; } if (!element) { throw new XmlError(XE.PARAM_REQUIRED, "element"); } var self = this.GetStatic(); var localName = this.localName; if (!(element.localName === localName && element.namespaceURI == this.NamespaceURI)) { throw new XmlError(XE.ELEMENT_MALFORMED, localName); } if (self.items) {